@postenbring/hedwig-react 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-ZV4GTALL.mjs → chunk-DRSAVDIE.mjs} +12 -51
- package/dist/chunk-DRSAVDIE.mjs.map +1 -0
- package/dist/{chunk-AQZALI2J.mjs → chunk-DTU7AXY3.mjs} +2 -2
- package/dist/index.js +11 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/navbar/index.js +11 -50
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +2 -2
- package/dist/navbar/navbar-expandable-menu.d.ts.map +1 -1
- package/dist/navbar/navbar-expandable-menu.js +11 -50
- package/dist/navbar/navbar-expandable-menu.js.map +1 -1
- package/dist/navbar/navbar-expandable-menu.mjs +1 -1
- package/dist/navbar/navbar.js +11 -50
- package/dist/navbar/navbar.js.map +1 -1
- package/dist/navbar/navbar.mjs +2 -2
- package/package.json +2 -2
- package/src/navbar/navbar-expandable-menu.tsx +18 -52
- package/dist/chunk-ZV4GTALL.mjs.map +0 -1
- /package/dist/{chunk-AQZALI2J.mjs.map → chunk-DTU7AXY3.mjs.map} +0 -0
|
@@ -60,17 +60,6 @@ var NavbarExpandableMenuTrigger = forwardRef(
|
|
|
60
60
|
"className"
|
|
61
61
|
]);
|
|
62
62
|
const { contentId, open, setOpen } = useNavbarExpendableMenuContext();
|
|
63
|
-
const [textWidth, setTextWidth] = useState(void 0);
|
|
64
|
-
const measurementId = useId();
|
|
65
|
-
useEffect(() => {
|
|
66
|
-
var _a2, _b2, _c, _d;
|
|
67
|
-
const widthWhenOpen = (_b2 = (_a2 = document.getElementById(`${measurementId}-when-open`)) == null ? void 0 : _a2.getBoundingClientRect().width) != null ? _b2 : 0;
|
|
68
|
-
const widthWhenClosed = (_d = (_c = document.getElementById(`${measurementId}-when-closed`)) == null ? void 0 : _c.getBoundingClientRect().width) != null ? _d : 0;
|
|
69
|
-
setTextWidth(widthWhenOpen < widthWhenClosed ? widthWhenClosed : widthWhenOpen);
|
|
70
|
-
}, [measurementId]);
|
|
71
|
-
const text = open ? whenOpenText : whenClosedText;
|
|
72
|
-
const title = open ? whenOpenHelperTitle : whenClosedHelperTitle;
|
|
73
|
-
const icon = open ? /* @__PURE__ */ jsx(CloseIcon, {}) : /* @__PURE__ */ jsx(MenuIcon, {});
|
|
74
63
|
function toggleOpen() {
|
|
75
64
|
setOpen(!open);
|
|
76
65
|
}
|
|
@@ -79,51 +68,23 @@ var NavbarExpandableMenuTrigger = forwardRef(
|
|
|
79
68
|
__spreadProps(__spreadValues({
|
|
80
69
|
"aria-expanded": open,
|
|
81
70
|
"aria-controls": contentId,
|
|
82
|
-
className: clsx(
|
|
71
|
+
className: clsx(
|
|
72
|
+
"hds-navbar__item",
|
|
73
|
+
className,
|
|
74
|
+
open ? "hds-navbar__item--open" : "hds-navbar__item--closed"
|
|
75
|
+
),
|
|
83
76
|
onClick: toggleOpen,
|
|
84
77
|
ref,
|
|
85
|
-
title,
|
|
78
|
+
title: open ? whenOpenHelperTitle : whenClosedHelperTitle,
|
|
86
79
|
type: "button",
|
|
87
80
|
style: __spreadValues({ position: "relative" }, style)
|
|
88
81
|
}, rest), {
|
|
89
82
|
children: [
|
|
90
|
-
/* @__PURE__ */
|
|
91
|
-
"span",
|
|
92
|
-
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
style: {
|
|
96
|
-
position: "absolute",
|
|
97
|
-
visibility: "hidden",
|
|
98
|
-
pointerEvents: "none",
|
|
99
|
-
whiteSpace: "nowrap"
|
|
100
|
-
},
|
|
101
|
-
children: whenOpenText
|
|
102
|
-
}
|
|
103
|
-
),
|
|
104
|
-
/* @__PURE__ */ jsx(
|
|
105
|
-
"span",
|
|
106
|
-
{
|
|
107
|
-
id: `${measurementId}-when-open`,
|
|
108
|
-
"aria-hidden": true,
|
|
109
|
-
style: {
|
|
110
|
-
position: "absolute",
|
|
111
|
-
visibility: "hidden",
|
|
112
|
-
pointerEvents: "none",
|
|
113
|
-
whiteSpace: "nowrap"
|
|
114
|
-
},
|
|
115
|
-
children: whenClosedText
|
|
116
|
-
}
|
|
117
|
-
),
|
|
118
|
-
/* @__PURE__ */ jsx(
|
|
119
|
-
"span",
|
|
120
|
-
{
|
|
121
|
-
style: { width: textWidth, whiteSpace: "nowrap" },
|
|
122
|
-
className: clsx("hds-navbar__item-responsive-text"),
|
|
123
|
-
children: text
|
|
124
|
-
}
|
|
125
|
-
),
|
|
126
|
-
/* @__PURE__ */ jsx("span", { style: { width: 32, height: 32 }, children: icon })
|
|
83
|
+
/* @__PURE__ */ jsxs("span", { className: "hds-navbar__item-responsive-text", children: [
|
|
84
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": !open, className: clsx("hds-navbar__item-whenopentext"), children: whenOpenText }),
|
|
85
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": open, className: clsx("hds-navbar__item-whenclosedtext"), children: whenClosedText })
|
|
86
|
+
] }),
|
|
87
|
+
/* @__PURE__ */ jsx("span", { style: { width: 32, height: 32 }, children: open ? /* @__PURE__ */ jsx(CloseIcon, {}) : /* @__PURE__ */ jsx(MenuIcon, {}) })
|
|
127
88
|
]
|
|
128
89
|
})
|
|
129
90
|
);
|
|
@@ -153,4 +114,4 @@ export {
|
|
|
153
114
|
NavbarExpandableMenuTrigger,
|
|
154
115
|
NavbarExpandableMenuContent
|
|
155
116
|
};
|
|
156
|
-
//# sourceMappingURL=chunk-
|
|
117
|
+
//# sourceMappingURL=chunk-DRSAVDIE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/navbar/navbar-expandable-menu.tsx"],"sourcesContent":["import { createContext, useContext, forwardRef, useState, useEffect, useId } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { focusTrap } from \"../utils/utils\";\nimport { CloseIcon, MenuIcon } from \"./icons\";\n\ninterface ExpandableMenuContextProps {\n open: boolean;\n setOpen: (open: boolean) => void;\n contentId: string;\n}\n\nconst ExpandableMenuContext = createContext<ExpandableMenuContextProps | null>(null);\nexport const useNavbarExpendableMenuContext = () => {\n const value = useContext(ExpandableMenuContext);\n if (value === null) {\n throw new Error(\"useNavbarExpendableMenuContext must be used within a Navbar.ExpandableMenu\");\n }\n return value;\n};\n\nexport interface NavbarExpandableMenuProps {\n children: React.ReactNode;\n}\n\n/**\n * Expandable Menu Provider\n * Handles scroll and focus locking,\n * as well as scrolling the user to the top of the page.\n *\n * If we want a sticky header in the future the scrolling should be configurable\n */\nexport function NavbarExpandableMenu({ children }: NavbarExpandableMenuProps) {\n const contentId = useId();\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open) {\n window.scrollTo(0, 0);\n document.body.classList.add(clsx(\"hds-navbar-scroll-lock\"));\n const releaseFocusTrap = focusTrap(\n document.getElementsByClassName(clsx(\"hds-navbar\"))[0] as HTMLElement,\n );\n\n return () => {\n document.body.classList.remove(clsx(\"hds-navbar-scroll-lock\"));\n releaseFocusTrap();\n };\n }\n }, [open]);\n\n return (\n <ExpandableMenuContext.Provider value={{ contentId, open, setOpen }}>\n {children}\n </ExpandableMenuContext.Provider>\n );\n}\n\nNavbarExpandableMenu.displayName = \"NavbarExpandableMenu\";\n\n/**\n * Trigger\n */\nexport interface NavbarExpandableMenuTriggerProps\n extends Omit<React.HTMLAttributes<HTMLButtonElement>, \"children\"> {\n whenClosedText: React.ReactNode;\n whenClosedHelperTitle?: string;\n\n whenOpenText: React.ReactNode;\n whenOpenHelperTitle?: string;\n}\n\nexport const NavbarExpandableMenuTrigger = forwardRef<\n HTMLButtonElement,\n NavbarExpandableMenuTriggerProps\n>(\n (\n {\n whenClosedText,\n whenClosedHelperTitle,\n\n whenOpenText,\n whenOpenHelperTitle,\n\n style,\n className,\n ...rest\n },\n ref,\n ) => {\n const { contentId, open, setOpen } = useNavbarExpendableMenuContext();\n\n function toggleOpen() {\n setOpen(!open);\n }\n\n return (\n <button\n aria-expanded={open}\n aria-controls={contentId}\n className={clsx(\n \"hds-navbar__item\",\n className as undefined,\n open ? \"hds-navbar__item--open\" : \"hds-navbar__item--closed\",\n )}\n onClick={toggleOpen}\n ref={ref}\n title={open ? whenOpenHelperTitle : whenClosedHelperTitle}\n type=\"button\"\n style={{ position: \"relative\", ...style }}\n {...rest}\n >\n <span className=\"hds-navbar__item-responsive-text\">\n <span aria-hidden={!open} className={clsx(\"hds-navbar__item-whenopentext\")}>\n {whenOpenText}\n </span>\n <span aria-hidden={open} className={clsx(\"hds-navbar__item-whenclosedtext\")}>\n {whenClosedText}\n </span>\n </span>\n <span style={{ width: 32, height: 32 }}>{open ? <CloseIcon /> : <MenuIcon />}</span>\n </button>\n );\n },\n);\nNavbarExpandableMenuTrigger.displayName = \"Navbar.ExpandableMenuTrigger\";\n\n/**\n * Content\n */\nexport interface NavbarExpandableMenuContentProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const NavbarExpandableMenuContent = forwardRef<\n HTMLDivElement,\n NavbarExpandableMenuContentProps\n>(({ children, className, ...rest }, ref) => {\n const { contentId, open } = useNavbarExpendableMenuContext();\n return (\n <section\n {...rest}\n id={contentId}\n className={clsx(\"hds-navbar__expandable-menu-content\", className as undefined)}\n data-state={open ? \"open\" : \"closed\"}\n {...{ inert: open ? undefined : \"true\" }}\n ref={ref}\n >\n <div className={clsx(\"hds-navbar__expandable-menu-content-inner\")}>{children}</div>\n </section>\n );\n});\nNavbarExpandableMenuContent.displayName = \"Navbar.ExpandableMenuContent\";\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,eAAe,YAAY,YAAY,UAAU,WAAW,aAAa;AAClF,SAAS,YAAY;AAkDjB,cA4DI,YA5DJ;AAxCJ,IAAM,wBAAwB,cAAiD,IAAI;AAC5E,IAAM,iCAAiC,MAAM;AAClD,QAAM,QAAQ,WAAW,qBAAqB;AAC9C,MAAI,UAAU,MAAM;AAClB,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAC9F;AACA,SAAO;AACT;AAaO,SAAS,qBAAqB,EAAE,SAAS,GAA8B;AAC5E,QAAM,YAAY,MAAM;AACxB,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAEtC,YAAU,MAAM;AACd,QAAI,MAAM;AACR,aAAO,SAAS,GAAG,CAAC;AACpB,eAAS,KAAK,UAAU,IAAI,KAAK,wBAAwB,CAAC;AAC1D,YAAM,mBAAmB;AAAA,QACvB,SAAS,uBAAuB,KAAK,YAAY,CAAC,EAAE,CAAC;AAAA,MACvD;AAEA,aAAO,MAAM;AACX,iBAAS,KAAK,UAAU,OAAO,KAAK,wBAAwB,CAAC;AAC7D,yBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,SACE,oBAAC,sBAAsB,UAAtB,EAA+B,OAAO,EAAE,WAAW,MAAM,QAAQ,GAC/D,UACH;AAEJ;AAEA,qBAAqB,cAAc;AAc5B,IAAM,8BAA8B;AAAA,EAIzC,CACE,IAWA,QACG;AAZH,iBACE;AAAA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,IApFN,IA4EI,IASK,iBATL,IASK;AAAA,MARH;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA;AAKF,UAAM,EAAE,WAAW,MAAM,QAAQ,IAAI,+BAA+B;AAEpE,aAAS,aAAa;AACpB,cAAQ,CAAC,IAAI;AAAA,IACf;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,OAAO,2BAA2B;AAAA,QACpC;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA,OAAO,OAAO,sBAAsB;AAAA,QACpC,MAAK;AAAA,QACL,OAAO,iBAAE,UAAU,cAAe;AAAA,SAC9B,OAbL;AAAA,QAeC;AAAA,+BAAC,UAAK,WAAU,oCACd;AAAA,gCAAC,UAAK,eAAa,CAAC,MAAM,WAAW,KAAK,+BAA+B,GACtE,wBACH;AAAA,YACA,oBAAC,UAAK,eAAa,MAAM,WAAW,KAAK,iCAAiC,GACvE,0BACH;AAAA,aACF;AAAA,UACA,oBAAC,UAAK,OAAO,EAAE,OAAO,IAAI,QAAQ,GAAG,GAAI,iBAAO,oBAAC,aAAU,IAAK,oBAAC,YAAS,GAAG;AAAA;AAAA;AAAA,IAC/E;AAAA,EAEJ;AACF;AACA,4BAA4B,cAAc;AAUnC,IAAM,8BAA8B,WAGzC,CAAC,IAAkC,QAAQ;AAA1C,eAAE,YAAU,UAzIf,IAyIG,IAA0B,iBAA1B,IAA0B,CAAxB,YAAU;AACb,QAAM,EAAE,WAAW,KAAK,IAAI,+BAA+B;AAC3D,SACE;AAAA,IAAC;AAAA,kEACK,OADL;AAAA,MAEC,IAAI;AAAA,MACJ,WAAW,KAAK,uCAAuC,SAAsB;AAAA,MAC7E,cAAY,OAAO,SAAS;AAAA,QACxB,EAAE,OAAO,OAAO,SAAY,OAAO,IALxC;AAAA,MAMC;AAAA,MAEA,8BAAC,SAAI,WAAW,KAAK,2CAA2C,GAAI,UAAS;AAAA;AAAA,EAC/E;AAEJ,CAAC;AACD,4BAA4B,cAAc;","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
NavbarExpandableMenu,
|
|
3
3
|
NavbarExpandableMenuContent,
|
|
4
4
|
NavbarExpandableMenuTrigger
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DRSAVDIE.mjs";
|
|
6
6
|
import {
|
|
7
7
|
__objRest,
|
|
8
8
|
__spreadProps,
|
|
@@ -133,4 +133,4 @@ export {
|
|
|
133
133
|
NavbarNavigation,
|
|
134
134
|
Navbar
|
|
135
135
|
};
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-DTU7AXY3.mjs.map
|
package/dist/index.js
CHANGED
|
@@ -2056,17 +2056,6 @@ var NavbarExpandableMenuTrigger = (0, import_react38.forwardRef)(
|
|
|
2056
2056
|
"className"
|
|
2057
2057
|
]);
|
|
2058
2058
|
const { contentId, open, setOpen } = useNavbarExpendableMenuContext();
|
|
2059
|
-
const [textWidth, setTextWidth] = (0, import_react38.useState)(void 0);
|
|
2060
|
-
const measurementId = (0, import_react38.useId)();
|
|
2061
|
-
(0, import_react38.useEffect)(() => {
|
|
2062
|
-
var _a2, _b2, _c, _d;
|
|
2063
|
-
const widthWhenOpen = (_b2 = (_a2 = document.getElementById(`${measurementId}-when-open`)) == null ? void 0 : _a2.getBoundingClientRect().width) != null ? _b2 : 0;
|
|
2064
|
-
const widthWhenClosed = (_d = (_c = document.getElementById(`${measurementId}-when-closed`)) == null ? void 0 : _c.getBoundingClientRect().width) != null ? _d : 0;
|
|
2065
|
-
setTextWidth(widthWhenOpen < widthWhenClosed ? widthWhenClosed : widthWhenOpen);
|
|
2066
|
-
}, [measurementId]);
|
|
2067
|
-
const text = open ? whenOpenText : whenClosedText;
|
|
2068
|
-
const title = open ? whenOpenHelperTitle : whenClosedHelperTitle;
|
|
2069
|
-
const icon = open ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CloseIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MenuIcon, {});
|
|
2070
2059
|
function toggleOpen() {
|
|
2071
2060
|
setOpen(!open);
|
|
2072
2061
|
}
|
|
@@ -2075,51 +2064,23 @@ var NavbarExpandableMenuTrigger = (0, import_react38.forwardRef)(
|
|
|
2075
2064
|
__spreadProps(__spreadValues({
|
|
2076
2065
|
"aria-expanded": open,
|
|
2077
2066
|
"aria-controls": contentId,
|
|
2078
|
-
className: (0, import_typed_classname33.clsx)(
|
|
2067
|
+
className: (0, import_typed_classname33.clsx)(
|
|
2068
|
+
"hds-navbar__item",
|
|
2069
|
+
className,
|
|
2070
|
+
open ? "hds-navbar__item--open" : "hds-navbar__item--closed"
|
|
2071
|
+
),
|
|
2079
2072
|
onClick: toggleOpen,
|
|
2080
2073
|
ref,
|
|
2081
|
-
title,
|
|
2074
|
+
title: open ? whenOpenHelperTitle : whenClosedHelperTitle,
|
|
2082
2075
|
type: "button",
|
|
2083
2076
|
style: __spreadValues({ position: "relative" }, style)
|
|
2084
2077
|
}, rest), {
|
|
2085
2078
|
children: [
|
|
2086
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.
|
|
2087
|
-
"span",
|
|
2088
|
-
{
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
style: {
|
|
2092
|
-
position: "absolute",
|
|
2093
|
-
visibility: "hidden",
|
|
2094
|
-
pointerEvents: "none",
|
|
2095
|
-
whiteSpace: "nowrap"
|
|
2096
|
-
},
|
|
2097
|
-
children: whenOpenText
|
|
2098
|
-
}
|
|
2099
|
-
),
|
|
2100
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2101
|
-
"span",
|
|
2102
|
-
{
|
|
2103
|
-
id: `${measurementId}-when-open`,
|
|
2104
|
-
"aria-hidden": true,
|
|
2105
|
-
style: {
|
|
2106
|
-
position: "absolute",
|
|
2107
|
-
visibility: "hidden",
|
|
2108
|
-
pointerEvents: "none",
|
|
2109
|
-
whiteSpace: "nowrap"
|
|
2110
|
-
},
|
|
2111
|
-
children: whenClosedText
|
|
2112
|
-
}
|
|
2113
|
-
),
|
|
2114
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
2115
|
-
"span",
|
|
2116
|
-
{
|
|
2117
|
-
style: { width: textWidth, whiteSpace: "nowrap" },
|
|
2118
|
-
className: (0, import_typed_classname33.clsx)("hds-navbar__item-responsive-text"),
|
|
2119
|
-
children: text
|
|
2120
|
-
}
|
|
2121
|
-
),
|
|
2122
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { style: { width: 32, height: 32 }, children: icon })
|
|
2079
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "hds-navbar__item-responsive-text", children: [
|
|
2080
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": !open, className: (0, import_typed_classname33.clsx)("hds-navbar__item-whenopentext"), children: whenOpenText }),
|
|
2081
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { "aria-hidden": open, className: (0, import_typed_classname33.clsx)("hds-navbar__item-whenclosedtext"), children: whenClosedText })
|
|
2082
|
+
] }),
|
|
2083
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { style: { width: 32, height: 32 }, children: open ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(CloseIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MenuIcon, {}) })
|
|
2123
2084
|
]
|
|
2124
2085
|
})
|
|
2125
2086
|
);
|