@trebired/frontend 28.0.0 → 28.2.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 +19 -0
- package/README.md +45 -1
- package/dist/indent/styles/index.scss +30 -0
- package/dist/inputs/advanced/input/styles/field.scss +2 -2
- package/dist/inputs/styles/field.scss +14 -3
- package/dist/language/messages.d.ts.map +1 -1
- package/dist/language/messages.js +8 -0
- package/dist/language/messages.js.map +1 -1
- package/dist/layout/components/site/header/groups.d.ts +42 -0
- package/dist/layout/components/site/header/groups.d.ts.map +1 -0
- package/dist/layout/components/site/header/groups.js +93 -0
- package/dist/layout/components/site/header/groups.js.map +1 -0
- package/dist/layout/components/site/header/search.d.ts +11 -0
- package/dist/layout/components/site/header/search.d.ts.map +1 -0
- package/dist/layout/components/site/header/search.js +81 -0
- package/dist/layout/components/site/header/search.js.map +1 -0
- package/dist/layout/components/site/header/sheet.d.ts +14 -0
- package/dist/layout/components/site/header/sheet.d.ts.map +1 -0
- package/dist/layout/components/site/header/sheet.js +88 -0
- package/dist/layout/components/site/header/sheet.js.map +1 -0
- package/dist/layout/components/site/header.d.ts +1 -0
- package/dist/layout/components/site/header.d.ts.map +1 -1
- package/dist/layout/components/site/header.js +28 -42
- package/dist/layout/components/site/header.js.map +1 -1
- package/dist/layout/components/site/link.d.ts +2 -0
- package/dist/layout/components/site/link.d.ts.map +1 -1
- package/dist/layout/components/site/link.js.map +1 -1
- package/dist/layout/styles/index.scss +1 -0
- package/dist/layout/styles/site/footer.scss +1 -1
- package/dist/layout/styles/site/header.scss +1 -3
- package/dist/layout/styles/site/menu.scss +17 -3
- package/dist/layout/styles/site/sheet.scss +191 -0
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +9 -4
- package/dist/popover/index.js.map +1 -1
- package/dist/popover/styles/index.scss +1 -1
- package/dist/primitives/styles/_link.scss +6 -2
- package/dist/search/site/build.d.ts +33 -0
- package/dist/search/site/build.d.ts.map +1 -0
- package/dist/search/site/build.js +27 -0
- package/dist/search/site/build.js.map +1 -0
- package/dist/search/site/extract.d.ts +13 -0
- package/dist/search/site/extract.d.ts.map +1 -0
- package/dist/search/site/extract.js +82 -0
- package/dist/search/site/extract.js.map +1 -0
- package/dist/search/site/load.d.ts +4 -0
- package/dist/search/site/load.d.ts.map +1 -0
- package/dist/search/site/load.js +25 -0
- package/dist/search/site/load.js.map +1 -0
- package/dist/search/site/query.d.ts +31 -0
- package/dist/search/site/query.d.ts.map +1 -0
- package/dist/search/site/query.js +125 -0
- package/dist/search/site/query.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/src/language/messages.d.ts.map +1 -1
- package/dist/src/language/messages.js +8 -0
- package/dist/src/language/messages.js.map +1 -1
- package/dist/src/layout/components/site/header/groups.d.ts +42 -0
- package/dist/src/layout/components/site/header/groups.d.ts.map +1 -0
- package/dist/src/layout/components/site/header/groups.js +93 -0
- package/dist/src/layout/components/site/header/groups.js.map +1 -0
- package/dist/src/layout/components/site/header/search.d.ts +11 -0
- package/dist/src/layout/components/site/header/search.d.ts.map +1 -0
- package/dist/src/layout/components/site/header/search.js +81 -0
- package/dist/src/layout/components/site/header/search.js.map +1 -0
- package/dist/src/layout/components/site/header/sheet.d.ts +14 -0
- package/dist/src/layout/components/site/header/sheet.d.ts.map +1 -0
- package/dist/src/layout/components/site/header/sheet.js +88 -0
- package/dist/src/layout/components/site/header/sheet.js.map +1 -0
- package/dist/src/layout/components/site/header.d.ts +1 -0
- package/dist/src/layout/components/site/header.d.ts.map +1 -1
- package/dist/src/layout/components/site/header.js +28 -42
- package/dist/src/layout/components/site/header.js.map +1 -1
- package/dist/src/layout/components/site/link.d.ts +2 -0
- package/dist/src/layout/components/site/link.d.ts.map +1 -1
- package/dist/src/layout/components/site/link.js.map +1 -1
- package/dist/src/popover/index.d.ts.map +1 -1
- package/dist/src/popover/index.js +9 -4
- package/dist/src/popover/index.js.map +1 -1
- package/dist/src/search/site/build.d.ts +33 -0
- package/dist/src/search/site/build.d.ts.map +1 -0
- package/dist/src/search/site/build.js +27 -0
- package/dist/src/search/site/build.js.map +1 -0
- package/dist/src/search/site/extract.d.ts +13 -0
- package/dist/src/search/site/extract.d.ts.map +1 -0
- package/dist/src/search/site/extract.js +82 -0
- package/dist/src/search/site/extract.js.map +1 -0
- package/dist/src/search/site/load.d.ts +4 -0
- package/dist/src/search/site/load.d.ts.map +1 -0
- package/dist/src/search/site/load.js +25 -0
- package/dist/src/search/site/load.js.map +1 -0
- package/dist/src/search/site/query.d.ts +31 -0
- package/dist/src/search/site/query.d.ts.map +1 -0
- package/dist/src/search/site/query.js +125 -0
- package/dist/src/search/site/query.js.map +1 -0
- package/dist/src/server/index.d.ts +2 -0
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +1 -0
- package/dist/src/server/index.js.map +1 -1
- package/dist/styles/tokens.scss +1 -0
- package/dist/styles/utils/_tone.scss +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { registerOverlayCloser } from "../../../../spa/closers.js";
|
|
3
|
+
import { frontendDataSelector } from "../../../../namespace/index.js";
|
|
4
|
+
import { SITE_HEADER_DESKTOP_QUERY } from "./state.js";
|
|
5
|
+
const CLOSE_DELAY = 180;
|
|
6
|
+
const HOVER_GRACE = 400;
|
|
7
|
+
function focusFirstLink(header, key) {
|
|
8
|
+
requestAnimationFrame(() => {
|
|
9
|
+
const section = header?.querySelector(`${frontendDataSelector("site-header-section", key)}`);
|
|
10
|
+
section?.querySelector("a[href]")?.focus({ preventScroll: true });
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function useSheetDismissal(headerRef, open, close) {
|
|
14
|
+
useEffect(() => registerOverlayCloser(close), [close]);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
const header = headerRef.current;
|
|
17
|
+
if (!open || !header)
|
|
18
|
+
return undefined;
|
|
19
|
+
const onKeyDown = (event) => {
|
|
20
|
+
if (event.key !== "Escape")
|
|
21
|
+
return;
|
|
22
|
+
const inside = header.contains(document.activeElement);
|
|
23
|
+
close();
|
|
24
|
+
if (inside)
|
|
25
|
+
header.querySelector(frontendDataSelector("site-header-trigger", open))?.focus({ preventScroll: true });
|
|
26
|
+
};
|
|
27
|
+
const onPointerDown = (event) => {
|
|
28
|
+
if (event.target instanceof Node && !header.contains(event.target))
|
|
29
|
+
close();
|
|
30
|
+
};
|
|
31
|
+
const onFocusOut = (event) => {
|
|
32
|
+
if (!(event.relatedTarget instanceof Node) || !header.contains(event.relatedTarget))
|
|
33
|
+
close();
|
|
34
|
+
};
|
|
35
|
+
const media = window.matchMedia?.(SITE_HEADER_DESKTOP_QUERY);
|
|
36
|
+
const onMedia = () => {
|
|
37
|
+
if (!media?.matches)
|
|
38
|
+
close();
|
|
39
|
+
};
|
|
40
|
+
document.addEventListener("keydown", onKeyDown);
|
|
41
|
+
document.addEventListener("pointerdown", onPointerDown);
|
|
42
|
+
header.addEventListener("focusout", onFocusOut);
|
|
43
|
+
media?.addEventListener?.("change", onMedia);
|
|
44
|
+
return () => {
|
|
45
|
+
document.removeEventListener("keydown", onKeyDown);
|
|
46
|
+
document.removeEventListener("pointerdown", onPointerDown);
|
|
47
|
+
header.removeEventListener("focusout", onFocusOut);
|
|
48
|
+
media?.removeEventListener?.("change", onMedia);
|
|
49
|
+
};
|
|
50
|
+
}, [close, headerRef, open]);
|
|
51
|
+
}
|
|
52
|
+
function useSiteHeaderSheet(headerRef) {
|
|
53
|
+
const [open, setOpen] = useState("");
|
|
54
|
+
const [current, setCurrent] = useState("");
|
|
55
|
+
const timer = useRef(0);
|
|
56
|
+
const hoveredAt = useRef(0);
|
|
57
|
+
const stay = useCallback(() => {
|
|
58
|
+
window.clearTimeout(timer.current);
|
|
59
|
+
timer.current = 0;
|
|
60
|
+
}, []);
|
|
61
|
+
const close = useCallback(() => {
|
|
62
|
+
stay();
|
|
63
|
+
setOpen("");
|
|
64
|
+
}, [stay]);
|
|
65
|
+
const hover = useCallback((key) => {
|
|
66
|
+
stay();
|
|
67
|
+
hoveredAt.current = Date.now();
|
|
68
|
+
setCurrent(key);
|
|
69
|
+
setOpen(key);
|
|
70
|
+
}, [stay]);
|
|
71
|
+
const leave = useCallback(() => {
|
|
72
|
+
stay();
|
|
73
|
+
timer.current = window.setTimeout(() => setOpen(""), CLOSE_DELAY);
|
|
74
|
+
}, [stay]);
|
|
75
|
+
const toggle = useCallback((key, keyboard) => {
|
|
76
|
+
stay();
|
|
77
|
+
const closing = open === key && Date.now() - hoveredAt.current >= HOVER_GRACE;
|
|
78
|
+
setCurrent(key);
|
|
79
|
+
setOpen(closing ? "" : key);
|
|
80
|
+
if (keyboard && !closing)
|
|
81
|
+
focusFirstLink(headerRef.current, key);
|
|
82
|
+
}, [headerRef, open, stay]);
|
|
83
|
+
useEffect(() => () => window.clearTimeout(timer.current), []);
|
|
84
|
+
useSheetDismissal(headerRef, open, close);
|
|
85
|
+
return { close, current, hover, leave, open, stay, toggle };
|
|
86
|
+
}
|
|
87
|
+
export { useSiteHeaderSheet };
|
|
88
|
+
//# sourceMappingURL=sheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../../../../src/layout/components/site/header/sheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../../src/layout/components/site/header.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../../src/layout/components/site/header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA4B,SAAS,EAAE,MAAM,OAAO,CAAC;AAgBjF,OAAO,EAAgC,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExE,KAAK,cAAc,GAAG,QAAQ,CAAC;AAE/B,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG;IACrE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AA8IF,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,+BAqCzC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,65 +1,40 @@
|
|
|
1
1
|
import { createElement as _createElement } from "react";
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import { useEffect, useId, useSyncExternalStore } from "react";
|
|
5
|
-
import { PopoverOpenButton, PopoverPanel } from "./../../../popover/components/index.js";
|
|
3
|
+
import { useEffect, useId } from "react";
|
|
6
4
|
import { classNames } from "../../../components/index.js";
|
|
7
5
|
import { frontendClassName, frontendDataAttrs, frontendElementClass } from "../../../namespace/index.js";
|
|
8
6
|
import { A11Y_MAIN_ID } from "./../../../a11y/attributes.js";
|
|
9
7
|
import { useSiteHeaderMenu } from "./header/state.js";
|
|
10
8
|
import { useSiteHeaderFit } from "./header/fit.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
9
|
+
import { useSiteHeaderSheet } from "./header/sheet.js";
|
|
10
|
+
import { SiteHeaderAnchor, SiteHeaderMenuGroup, SiteHeaderNavTrigger, SiteHeaderSheetPanel, useSiteLinkState, } from "./header/groups.js";
|
|
11
|
+
import { isSiteLinkGroup, siteLinkKey } from "./link.js";
|
|
14
12
|
const block = "site-header";
|
|
15
13
|
function SiteHeaderSkipLink({ labels }) {
|
|
16
14
|
return (_jsx("a", { className: frontendClassName("skip-link"), href: `#${A11Y_MAIN_ID}`, children: labels?.skipToContent || "Skip to content" }));
|
|
17
15
|
}
|
|
18
|
-
function SiteHeaderAnchor(props) {
|
|
19
|
-
const { className, currentPaths, hasSection, link, section } = props;
|
|
20
|
-
return (_jsx(SiteLinkAnchor, { active: isSiteLinkActive(link, currentPaths, section, hasSection, props.currentUrl), className: className, link: link, onNavigate: props.onNavigate, plain: props.plain, softRedirect: props.softRedirect, tabIndex: props.tabIndex }));
|
|
21
|
-
}
|
|
22
|
-
function SiteHeaderNavGroup(props) {
|
|
23
|
-
const { currentPaths, hasSection, link, section } = props;
|
|
24
|
-
const panelId = `${useId().replace(/:/gu, "")}_nav_group`;
|
|
25
|
-
const active = isSiteLinkActive(link, currentPaths, section, hasSection, props.currentUrl);
|
|
26
|
-
return (_jsxs(_Fragment, { children: [_jsx(PopoverOpenButton, { "aria-current": active ? "true" : undefined, className: frontendElementClass(block, "nav-trigger"), controls: panelId, hover: true, tabIndex: props.tabIndex, children: _jsx("span", { className: frontendClassName("text-link"), children: link.label }) }), _jsx(PopoverPanel, { id: panelId, children: siteLinkChildren(link).map((child, index) => (_createElement(SiteHeaderAnchor, { ...props, plain: true, className: frontendClassName("popover-item"), key: siteLinkKey(child, index), link: child }))) })] }));
|
|
27
|
-
}
|
|
28
|
-
function SiteHeaderChevron() {
|
|
29
|
-
return (_jsx("span", { "aria-hidden": "true", className: frontendElementClass(block, "menu-group-chevron") }));
|
|
30
|
-
}
|
|
31
|
-
function SiteHeaderMenuGroup(props) {
|
|
32
|
-
return (_jsx(Disclosure, { className: frontendElementClass(block, "menu-group"), panel: _jsx("div", { className: frontendElementClass(block, "menu-group-links"), children: siteLinkChildren(props.link).map((child, index) => (_createElement(SiteHeaderAnchor, { ...props, key: siteLinkKey(child, index), link: child }))) }), trigger: _jsxs(DisclosureButton, { className: frontendElementClass(block, "menu-group-label"), children: [_jsx("span", { children: props.link.label }), _jsx(SiteHeaderChevron, {})] }) }));
|
|
33
|
-
}
|
|
34
16
|
function SiteHeaderLinks(props) {
|
|
35
|
-
const currentUrl = useRenderCurrentUrl();
|
|
36
|
-
const currentPaths = sitePathForms(currentUrl);
|
|
37
|
-
const fragments = props.links.flatMap((link) => (isSiteLinkGroup(link) ? siteLinkChildren(link) : [link]))
|
|
38
|
-
.filter((link) => siteLinkFragment(link) && siteLinkOnCurrentPage(link, currentPaths))
|
|
39
|
-
.map((link) => siteLinkFragment(link));
|
|
40
|
-
const fragmentKey = fragments.join("|");
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
observeSections(fragmentKey ? fragmentKey.split("|") : []);
|
|
43
|
-
}, [fragmentKey]);
|
|
44
|
-
const section = useSyncExternalStore(subscribeActiveSection, activeSection, serverActiveSection);
|
|
45
17
|
const shared = {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
hasSection: fragments.length > 0,
|
|
18
|
+
...useSiteLinkState(props.links),
|
|
19
|
+
lang: props.lang,
|
|
49
20
|
onNavigate: props.onNavigate,
|
|
50
|
-
section,
|
|
51
21
|
softRedirect: props.softRedirect,
|
|
52
22
|
tabIndex: props.tabIndex,
|
|
53
23
|
};
|
|
24
|
+
const { sheet, sheetId } = props;
|
|
54
25
|
return (_jsx(_Fragment, { children: props.links.map((link, index) => {
|
|
55
26
|
const key = siteLinkKey(link, index);
|
|
56
27
|
if (!isSiteLinkGroup(link))
|
|
57
28
|
return _createElement(SiteHeaderAnchor, { ...shared, key: key, link: link });
|
|
58
|
-
if (
|
|
29
|
+
if (!sheet || !sheetId)
|
|
59
30
|
return _createElement(SiteHeaderMenuGroup, { ...shared, key: key, link: link });
|
|
60
|
-
return _createElement(
|
|
31
|
+
return _createElement(SiteHeaderNavTrigger, { ...shared, index: index, key: key, link: link, sheet: sheet, sheetId: sheetId });
|
|
61
32
|
}) }));
|
|
62
33
|
}
|
|
34
|
+
function closeSheetOverLink(event, close) {
|
|
35
|
+
if (event.target instanceof Element && event.target.closest("a[href]"))
|
|
36
|
+
close();
|
|
37
|
+
}
|
|
63
38
|
function closeOnLink(event, close) {
|
|
64
39
|
if (event.target instanceof Element && event.target.closest("a[href]"))
|
|
65
40
|
close();
|
|
@@ -80,15 +55,26 @@ function SiteHeaderToggle(props) {
|
|
|
80
55
|
}
|
|
81
56
|
function SiteHeaderMenu(props) {
|
|
82
57
|
const { actions, labels, links = [], menuActions = actions, menuId, softRedirect, state } = props;
|
|
83
|
-
return (_jsx("div", { "aria-hidden": !state.open, className: frontendElementClass(block, "menu"), id: menuId, inert: !state.open, children: _jsx("div", { className: frontendElementClass(block, "menu-body"), children: _jsxs("div", { className: frontendElementClass(block, "menu-content"), children: [links.length ? (_jsx("nav", { "aria-label": labels?.navigation, className: frontendElementClass(block, "menu-links"), children: _jsx(SiteHeaderLinks, {
|
|
58
|
+
return (_jsx("div", { "aria-hidden": !state.open, className: frontendElementClass(block, "menu"), id: menuId, inert: !state.open, children: _jsx("div", { className: frontendElementClass(block, "menu-body"), children: _jsxs("div", { className: frontendElementClass(block, "menu-content"), children: [links.length ? (_jsx("nav", { "aria-label": labels?.navigation, className: frontendElementClass(block, "menu-links"), children: _jsx(SiteHeaderLinks, { lang: props.lang, links: links, onNavigate: state.close, softRedirect: softRedirect }) })) : null, menuActions ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: frontendElementClass(block, "menu-divider") }), _jsx("div", { className: frontendElementClass(block, "menu-footer"), onClick: (event) => closeOnLink(event, state.close), children: menuActions })] })) : null] }) }) }));
|
|
59
|
+
}
|
|
60
|
+
function SiteHeaderNav(props) {
|
|
61
|
+
const { sheet } = props;
|
|
62
|
+
return (_jsx("nav", { "aria-label": props.labels?.navigation, className: frontendElementClass(block, "nav"), onPointerOver: (event) => closeSheetOverLink(event, sheet.leave), children: _jsx(SiteHeaderLinks, { links: props.links, sheet: sheet, sheetId: props.sheetId, softRedirect: props.softRedirect }) }));
|
|
84
63
|
}
|
|
85
64
|
function SiteHeader(props) {
|
|
86
|
-
const { actions, brand, brandHref = "/", className, labels, links = [], menuActions, softRedirect, ...rest } = props;
|
|
65
|
+
const { actions, brand, brandHref = "/", className, labels, lang, links = [], menuActions, softRedirect, ...rest } = props;
|
|
87
66
|
const state = useSiteHeaderMenu();
|
|
88
|
-
const
|
|
67
|
+
const baseId = useId().replace(/:/gu, "");
|
|
68
|
+
const menuId = `${baseId}_site_menu`;
|
|
69
|
+
const sheetId = `${baseId}_site_sheet`;
|
|
89
70
|
const hasMenu = links.length > 0 || Boolean(menuActions);
|
|
90
71
|
const compact = useSiteHeaderFit(state.headerRef, hasMenu);
|
|
91
|
-
|
|
72
|
+
const sheet = useSiteHeaderSheet(state.headerRef);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
if (compact)
|
|
75
|
+
sheet.close();
|
|
76
|
+
}, [compact, sheet.close]);
|
|
77
|
+
return (_jsxs("header", { ...rest, className: classNames(frontendClassName(block), className), ...frontendDataAttrs({ "site-header": "", "site-header-open": state.open ? "true" : "false" }), ...frontendDataAttrs({ "site-header-menu": hasMenu ? "true" : "false" }), ...frontendDataAttrs({ "site-header-compact": compact ? "true" : undefined }), onPointerEnter: sheet.stay, onPointerLeave: sheet.leave, ref: state.headerRef, children: [_jsx(SiteHeaderSkipLink, { labels: labels }), _jsxs("div", { className: frontendElementClass(block, "bar"), children: [_jsx(SiteHeaderBrand, { brand: brand, brandHref: brandHref, labels: labels, softRedirect: softRedirect }), links.length ? _jsx(SiteHeaderNav, { labels: labels, links: links, sheet: sheet, sheetId: sheetId, softRedirect: softRedirect }) : null, actions ? _jsx("div", { className: frontendElementClass(block, "actions"), children: actions }) : null, hasMenu ? _jsx(SiteHeaderToggle, { ...props, menuId: menuId, state: state }) : null] }), _jsx(SiteHeaderSheetPanel, { lang: lang, links: links, sheet: sheet, sheetId: sheetId, softRedirect: softRedirect }), hasMenu ? _jsx(SiteHeaderMenu, { ...props, menuId: menuId, state: state }) : null] }));
|
|
92
78
|
}
|
|
93
79
|
export { SiteHeader };
|
|
94
80
|
//# sourceMappingURL=header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../../src/layout/components/site/header.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../../src/layout/components/site/header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { MouseEvent, ReactNode } from "react";
|
|
2
2
|
type SiteLink = {
|
|
3
3
|
active?: boolean;
|
|
4
|
+
description?: ReactNode;
|
|
4
5
|
href?: string;
|
|
5
6
|
key?: string;
|
|
6
7
|
label: ReactNode;
|
|
7
8
|
links?: SiteLink[];
|
|
8
9
|
node?: ReactNode;
|
|
9
10
|
rel?: string;
|
|
11
|
+
search?: boolean;
|
|
10
12
|
softRedirect?: boolean;
|
|
11
13
|
target?: string;
|
|
12
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../src/layout/components/site/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKnD,KAAK,QAAQ,GAAG;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,SAAS,cAAc,CAAC;AAQ9B,iBAAS,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI/C;AAOD,iBAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGhD;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAEpD;AAED,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEhD;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAWD,iBAAS,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAG9E;AAED,iBAAS,gBAAgB,CACvB,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,UAAU,SAAK,GACd,OAAO,CAYT;AAED,KAAK,mBAAmB,GAAG;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iBAAS,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAwBjD;AAED,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,aAAa,GACd,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../../src/layout/components/site/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKnD,KAAK,QAAQ,GAAG;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,QAAA,MAAM,SAAS,cAAc,CAAC;AAQ9B,iBAAS,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAI/C;AAOD,iBAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGhD;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAEpD;AAED,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEhD;AAED,iBAAS,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAWD,iBAAS,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAG9E;AAED,iBAAS,gBAAgB,CACvB,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,UAAU,SAAK,GACd,OAAO,CAYT;AAED,KAAK,mBAAmB,GAAG;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iBAAS,cAAc,CAAC,KAAK,EAAE,mBAAmB,+BAwBjD;AAED,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,aAAa,GACd,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../src/layout/components/site/link.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../src/layout/components/site/link.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,7 @@ $tone-motion: token("tone-duration", 320ms) token("tone-easing", cubic-bezier(0.
|
|
|
23
23
|
z-index: token("root-z-index", var(#{ns.css-var("z-header")}, 920));
|
|
24
24
|
color: token("root-color", var(#{ns.css-var("text")}, currentColor));
|
|
25
25
|
border-block-end: token("root-border", 1px solid color-mix(in srgb, currentColor 14%, transparent));
|
|
26
|
-
|
|
27
|
-
background: var(#{ns.css-var("shell-header-surface")});
|
|
26
|
+
background: token("root-bg", var(#{ns.css-var("ground")}, #fff));
|
|
28
27
|
transition:
|
|
29
28
|
color $tone-motion,
|
|
30
29
|
border-color $tone-motion,
|
|
@@ -252,7 +251,6 @@ html:not(#{ns.data("header-tone")}) body:has(main > #{ns.data("dark")}:first-chi
|
|
|
252
251
|
|
|
253
252
|
#{ns.data("site-header")}#{ns.data("dark")} {
|
|
254
253
|
@include tone.on-dark;
|
|
255
|
-
#{ns.css-var("shell-header-surface")}: token("root-bg-dark", var(#{ns.css-var("ink")}, #000));
|
|
256
254
|
}
|
|
257
255
|
|
|
258
256
|
@media (min-width: 768px) {
|
|
@@ -53,8 +53,8 @@ $tone-motion: token("tone-duration", 320ms) token("tone-easing", cubic-bezier(0.
|
|
|
53
53
|
background: transparent;
|
|
54
54
|
cursor: pointer;
|
|
55
55
|
padding-block: token("menu-link-py", 0);
|
|
56
|
-
padding-inline:
|
|
57
|
-
color: token("menu-group-label-color", currentColor);
|
|
56
|
+
padding-inline: 0;
|
|
57
|
+
color: token("menu-group-label-color", var(#{ns.css-var("text-muted")}, currentColor));
|
|
58
58
|
font-family: token("menu-group-label-font-family", inherit);
|
|
59
59
|
font-size: token("menu-group-label-font-size", 0.875rem);
|
|
60
60
|
font-weight: token("menu-group-label-font-weight", inherit);
|
|
@@ -78,7 +78,7 @@ $tone-motion: token("tone-duration", 320ms) token("tone-easing", cubic-bezier(0.
|
|
|
78
78
|
grid-template-rows: 0fr;
|
|
79
79
|
color: token("menu-color", var(#{ns.css-var("text")}, currentColor));
|
|
80
80
|
border-block-end: token("menu-border", var(#{ns.css-var("border-width")}, 1px) solid var(#{ns.css-var("border")}, currentColor));
|
|
81
|
-
background: token("menu-bg", var(#{ns.css-var("
|
|
81
|
+
background: token("menu-bg", var(#{ns.css-var("ground")}, #fff));
|
|
82
82
|
box-shadow: token("menu-shadow", 0 24px 32px -24px rgb(0 0 0 / 18%));
|
|
83
83
|
opacity: 0;
|
|
84
84
|
visibility: hidden;
|
|
@@ -162,3 +162,17 @@ $tone-motion: token("tone-duration", 320ms) token("tone-easing", cubic-bezier(0.
|
|
|
162
162
|
#{ns.data("site-header-compact", "true")} #{ns.element-class("site-header", "menu")} {
|
|
163
163
|
display: grid;
|
|
164
164
|
}
|
|
165
|
+
|
|
166
|
+
#{ns.element-class("site-header", "menu-section")} {
|
|
167
|
+
display: grid;
|
|
168
|
+
gap: token("menu-links-gap", 0);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#{ns.element-class("site-header", "menu-section-links")} {
|
|
172
|
+
display: grid;
|
|
173
|
+
gap: token("menu-links-gap", 0);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
#{ns.element-class("site-header", "menu-section-heading")} {
|
|
177
|
+
padding-block: token("menu-link-py", 0);
|
|
178
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
@use "@trebired/bundler/namespace" as ns;
|
|
2
|
+
|
|
3
|
+
@function token($name, $fallback) {
|
|
4
|
+
@return var(#{ns.css-var("shell-header-" + $name)}, $fallback);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
$motion: token("motion-duration", 500ms) token("motion-easing", cubic-bezier(0.22, 1, 0.36, 1));
|
|
8
|
+
$tone-motion: token("tone-duration", 320ms) token("tone-easing", cubic-bezier(0.22, 1, 0.36, 1));
|
|
9
|
+
$fast: var(#{ns.css-var("transition-fast")}, 160ms) ease;
|
|
10
|
+
|
|
11
|
+
$muted: var(#{ns.css-var("text-muted")}, currentColor);
|
|
12
|
+
|
|
13
|
+
@mixin band($gutter) {
|
|
14
|
+
max-width: calc(#{token("max-width", 72rem)} + #{$gutter} * 2);
|
|
15
|
+
padding-inline: $gutter;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
#{ns.element-class("site-header", "nav-trigger")} {
|
|
19
|
+
display: inline-flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
gap: 0.375rem;
|
|
22
|
+
color: inherit;
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
#{ns.element-class("site-header", "nav-chevron")} {
|
|
27
|
+
flex-shrink: 0;
|
|
28
|
+
width: 0.4rem;
|
|
29
|
+
height: 0.4rem;
|
|
30
|
+
border-inline-end: 1px solid $muted;
|
|
31
|
+
border-block-end: 1px solid $muted;
|
|
32
|
+
transform: translateY(-0.1rem) rotate(45deg);
|
|
33
|
+
transition: transform $fast;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#{ns.element-class("site-header", "nav-trigger")}[aria-expanded="true"] #{ns.element-class("site-header", "nav-chevron")} {
|
|
37
|
+
transform: translateY(0.1rem) rotate(-135deg);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
#{ns.element-class("site-header", "sheet")} {
|
|
41
|
+
position: absolute;
|
|
42
|
+
inset-inline: 0;
|
|
43
|
+
inset-block-start: 100%;
|
|
44
|
+
color: inherit;
|
|
45
|
+
border-block-end: token("root-border", 1px solid color-mix(in srgb, currentColor 14%, transparent));
|
|
46
|
+
background: var(#{ns.css-var("ground")}, #fff);
|
|
47
|
+
box-shadow: 0 24px 32px -24px rgb(0 0 0 / 18%);
|
|
48
|
+
clip-path: inset(0 0 100% 0);
|
|
49
|
+
opacity: 0;
|
|
50
|
+
visibility: hidden;
|
|
51
|
+
transition:
|
|
52
|
+
clip-path $motion,
|
|
53
|
+
opacity $motion,
|
|
54
|
+
background-color $tone-motion,
|
|
55
|
+
visibility 0s linear token("motion-duration", 500ms);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#{ns.element-class("site-header", "sheet")}#{ns.data("site-header-sheet", "open")} {
|
|
59
|
+
clip-path: inset(0 0 -3rem 0);
|
|
60
|
+
opacity: 1;
|
|
61
|
+
visibility: visible;
|
|
62
|
+
transition:
|
|
63
|
+
clip-path $motion,
|
|
64
|
+
opacity $motion,
|
|
65
|
+
background-color $tone-motion,
|
|
66
|
+
visibility 0s;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
#{ns.element-class("site-header", "sheet-body")} {
|
|
70
|
+
max-height: calc(100dvh - var(#{ns.css-var("shell-header-height")}, 5rem));
|
|
71
|
+
overflow-y: auto;
|
|
72
|
+
overscroll-behavior: contain;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
#{ns.element-class("site-header", "sheet-content")} {
|
|
76
|
+
width: 100%;
|
|
77
|
+
box-sizing: border-box;
|
|
78
|
+
margin-inline: auto;
|
|
79
|
+
padding-block: 2rem 2.5rem;
|
|
80
|
+
|
|
81
|
+
@include band(token("bar-px", var(#{ns.css-var("container-px")}, 1.5rem)));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
#{ns.element-class("site-header", "sheet-grid")} {
|
|
85
|
+
display: grid;
|
|
86
|
+
gap: 1.25rem 2rem;
|
|
87
|
+
grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
#{ns.element-class("site-header", "sheet-grid")}#{ns.data("site-header-layout", "columns")} {
|
|
91
|
+
grid-template-columns: repeat(auto-fit, minmax(max(13rem, calc((100% - 6rem) / 4)), 1fr));
|
|
92
|
+
row-gap: 2.5rem;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
#{ns.element-class("site-header", "sheet-section")}[hidden] {
|
|
96
|
+
display: none;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
#{ns.element-class("site-header", "sheet-column")} {
|
|
100
|
+
display: flex;
|
|
101
|
+
min-width: 0;
|
|
102
|
+
flex-direction: column;
|
|
103
|
+
gap: 1rem;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
#{ns.element-class("site-header", "sheet-links")} {
|
|
107
|
+
display: flex;
|
|
108
|
+
width: fit-content;
|
|
109
|
+
max-width: 100%;
|
|
110
|
+
max-height: 15rem;
|
|
111
|
+
flex-direction: column;
|
|
112
|
+
gap: 1rem;
|
|
113
|
+
padding-inline-end: 0.75rem;
|
|
114
|
+
overflow-y: auto;
|
|
115
|
+
overscroll-behavior: contain;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
#{ns.element-class("site-header", "sheet-entry")} {
|
|
119
|
+
display: flex;
|
|
120
|
+
width: fit-content;
|
|
121
|
+
max-width: 100%;
|
|
122
|
+
flex-direction: column;
|
|
123
|
+
gap: 0.25rem;
|
|
124
|
+
color: inherit;
|
|
125
|
+
text-decoration: none;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
#{ns.element-class("site-header", "sheet-description")} {
|
|
129
|
+
color: $muted;
|
|
130
|
+
font-size: 0.8125rem;
|
|
131
|
+
line-height: 1.4;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
#{ns.element-class("site-header", "search")} {
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
gap: 1.5rem;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
#{ns.element-class("site-header", "search-input")} {
|
|
141
|
+
width: 100%;
|
|
142
|
+
max-width: 36rem;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
#{ns.element-class("site-header", "search-list")} {
|
|
146
|
+
display: grid;
|
|
147
|
+
gap: 1.25rem 2rem;
|
|
148
|
+
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
|
|
149
|
+
margin: 0;
|
|
150
|
+
padding: 0;
|
|
151
|
+
list-style: none;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
#{ns.element-class("site-header", "search-results")} mark {
|
|
155
|
+
border-radius: 0.2em;
|
|
156
|
+
color: inherit;
|
|
157
|
+
background: color-mix(in srgb, currentColor 18%, transparent);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
#{ns.element-class("site-header", "menu")} #{ns.element-class("site-header", "search")} {
|
|
161
|
+
gap: 1rem;
|
|
162
|
+
padding-block: 0.5rem;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
#{ns.element-class("site-header", "menu")} #{ns.element-class("site-header", "search-list")} {
|
|
166
|
+
grid-template-columns: minmax(0, 1fr);
|
|
167
|
+
gap: 1rem;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
#{ns.data("site-header-compact", "true")} #{ns.element-class("site-header", "sheet")} {
|
|
171
|
+
display: none;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@media (max-width: 767.98px) {
|
|
175
|
+
#{ns.element-class("site-header", "sheet")} {
|
|
176
|
+
display: none;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@media (min-width: 768px) {
|
|
181
|
+
#{ns.element-class("site-header", "sheet-content")} {
|
|
182
|
+
@include band(token("bar-px-wide", token("bar-px", var(#{ns.css-var("container-px")}, 1rem))));
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@media (prefers-reduced-motion: reduce) {
|
|
187
|
+
#{ns.element-class("site-header", "sheet")},
|
|
188
|
+
#{ns.element-class("site-header", "sheet")}#{ns.data("site-header-sheet", "open")} {
|
|
189
|
+
transition: none;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AASvB,QAAA,MAAM,wBAAwB,QAA8D,CAAC;AAG7F,QAAA,MAAM,sBAAsB,QAAwC,CAAC;AAErE,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AASvB,QAAA,MAAM,wBAAwB,QAA8D,CAAC;AAG7F,QAAA,MAAM,sBAAsB,QAAwC,CAAC;AAErE,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AA8DF,iBAAS,WAAW,CAAC,KAAK,EAAE,YAAY,QAcvC;AAED,iBAAS,WAAW,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,IAAI,WAWzD;AAYD,iBAAS,aAAa,CAAC,KAAK,EAAE,YAAY,QAGzC;AA8DD,iBAAS,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,GAAE,QAAmB,gBAiCjF;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,QAAmB,QAI9C;AAmBD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,GACd,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/popover/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clampNumber, cssEscape, queryAll, setAriaExpanded, } from "../dom/index.js";
|
|
2
2
|
import { moveLayerElementToTop, portalElement, promoteZIndex, } from "../layer/index.js";
|
|
3
|
-
import { frontendDataAttr, frontendDataSelector } from "../namespace/index.js";
|
|
3
|
+
import { frontendCssVar, frontendDataAttr, frontendDataSelector } from "../namespace/index.js";
|
|
4
4
|
const POPOVER_BASE_Z_INDEX = 1040;
|
|
5
5
|
const POPOVER_TRIGGER_SELECTOR = `${frontendDataSelector("popover-trigger")}[aria-controls]`;
|
|
6
6
|
const POPOVER_AUTOFOCUS_ATTR = frontendDataAttr("popover-autofocus");
|
|
@@ -16,12 +16,17 @@ function findPopoverTarget(root, id) {
|
|
|
16
16
|
const global = document.getElementById(id);
|
|
17
17
|
return global instanceof HTMLElement ? global : null;
|
|
18
18
|
}
|
|
19
|
+
function adoptTone(trigger, popover) {
|
|
20
|
+
const dark = getComputedStyle(trigger).getPropertyValue(frontendCssVar("on-dark")).trim() === "1";
|
|
21
|
+
popover.setAttribute(frontendDataAttr("tone"), dark ? "dark" : "light");
|
|
22
|
+
}
|
|
19
23
|
function placePopover(trigger, popover) {
|
|
24
|
+
adoptTone(trigger, popover);
|
|
20
25
|
const anchor = trigger.getBoundingClientRect();
|
|
21
|
-
const rect = popover.
|
|
26
|
+
const rect = { height: popover.offsetHeight, width: popover.offsetWidth };
|
|
22
27
|
const gap = 8;
|
|
23
|
-
const vw = window.innerWidth;
|
|
24
|
-
const vh = window.innerHeight;
|
|
28
|
+
const vw = document.documentElement.clientWidth || window.innerWidth;
|
|
29
|
+
const vh = document.documentElement.clientHeight || window.innerHeight;
|
|
25
30
|
const below = anchor.bottom + gap + rect.height <= vh;
|
|
26
31
|
const top = below
|
|
27
32
|
? anchor.bottom + gap
|