@postenbring/hedwig-react 0.0.59 → 0.0.60
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/_tsup-dts-rollup.d.mts +4 -2
- package/dist/_tsup-dts-rollup.d.ts +4 -2
- package/dist/{chunk-WDD7QJP6.mjs → chunk-2E6XPNPX.mjs} +7 -2
- package/dist/chunk-2E6XPNPX.mjs.map +1 -0
- package/dist/{chunk-SBJBQUKE.mjs → chunk-Q3GMWURJ.mjs} +2 -2
- package/dist/index-no-css.js +6 -1
- package/dist/index-no-css.js.map +1 -1
- package/dist/index-no-css.mjs +9 -9
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -9
- package/dist/navbar/index.js +16 -1
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +2 -2
- package/dist/navbar/navbar-expandable-menu.js +16 -1
- package/dist/navbar/navbar-expandable-menu.js.map +1 -1
- package/dist/navbar/navbar-expandable-menu.mjs +1 -1
- package/package.json +4 -3
- package/dist/chunk-WDD7QJP6.mjs.map +0 -1
- /package/dist/{chunk-SBJBQUKE.mjs.map → chunk-Q3GMWURJ.mjs.map} +0 -0
|
@@ -832,6 +832,10 @@ export { InputProps as InputProps_alias_4 }
|
|
|
832
832
|
|
|
833
833
|
export declare const Inverted: Story_16;
|
|
834
834
|
|
|
835
|
+
export declare const JustACheckbox: Story_8;
|
|
836
|
+
|
|
837
|
+
export declare const JustARadiobutton: Story_12;
|
|
838
|
+
|
|
835
839
|
export declare const JustOneItem: Story;
|
|
836
840
|
|
|
837
841
|
export declare const LargeLegend: Story_10;
|
|
@@ -1206,8 +1210,6 @@ export { Radiobutton as Radiobutton_alias_2 }
|
|
|
1206
1210
|
export { Radiobutton as Radiobutton_alias_3 }
|
|
1207
1211
|
export { Radiobutton as Radiobutton_alias_4 }
|
|
1208
1212
|
|
|
1209
|
-
export declare const RadiobuttonInFieldset: Story_12;
|
|
1210
|
-
|
|
1211
1213
|
declare interface RadiobuttonProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "defaultValue"> {
|
|
1212
1214
|
variant?: "plain" | "bounding-box";
|
|
1213
1215
|
hasError?: boolean;
|
|
@@ -832,6 +832,10 @@ export { InputProps as InputProps_alias_4 }
|
|
|
832
832
|
|
|
833
833
|
export declare const Inverted: Story_16;
|
|
834
834
|
|
|
835
|
+
export declare const JustACheckbox: Story_8;
|
|
836
|
+
|
|
837
|
+
export declare const JustARadiobutton: Story_12;
|
|
838
|
+
|
|
835
839
|
export declare const JustOneItem: Story;
|
|
836
840
|
|
|
837
841
|
export declare const LargeLegend: Story_10;
|
|
@@ -1206,8 +1210,6 @@ export { Radiobutton as Radiobutton_alias_2 }
|
|
|
1206
1210
|
export { Radiobutton as Radiobutton_alias_3 }
|
|
1207
1211
|
export { Radiobutton as Radiobutton_alias_4 }
|
|
1208
1212
|
|
|
1209
|
-
export declare const RadiobuttonInFieldset: Story_12;
|
|
1210
|
-
|
|
1211
1213
|
declare interface RadiobuttonProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "defaultValue"> {
|
|
1212
1214
|
variant?: "plain" | "bounding-box";
|
|
1213
1215
|
hasError?: boolean;
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
import { createContext, useContext, forwardRef, useState, useRef, useEffect } from "react";
|
|
13
13
|
import { createRoot } from "react-dom/client";
|
|
14
14
|
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
15
|
+
import FocusTrap from "focus-trap-react";
|
|
15
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
16
17
|
var navbarContext = createContext([
|
|
17
18
|
false,
|
|
@@ -30,7 +31,11 @@ function NavbarExpandableMenu({ children }) {
|
|
|
30
31
|
document.body.classList.remove(clsx("hds-navbar-scroll-lock"));
|
|
31
32
|
}
|
|
32
33
|
};
|
|
33
|
-
|
|
34
|
+
const navbarElement = document.getElementsByClassName(clsx("hds-navbar"))[0];
|
|
35
|
+
return /* @__PURE__ */ jsxs(navbarContext.Provider, { value: [open, toggleOpen], children: [
|
|
36
|
+
open ? /* @__PURE__ */ jsx(FocusTrap, { containerElements: [navbarElement] }) : null,
|
|
37
|
+
children
|
|
38
|
+
] });
|
|
34
39
|
}
|
|
35
40
|
NavbarExpandableMenu.displayName = "NavbarExpandableMenu";
|
|
36
41
|
function RenderButton(_a) {
|
|
@@ -173,4 +178,4 @@ export {
|
|
|
173
178
|
NavbarExpandableMenuTrigger,
|
|
174
179
|
NavbarExpandableMenuContent
|
|
175
180
|
};
|
|
176
|
-
//# sourceMappingURL=chunk-
|
|
181
|
+
//# sourceMappingURL=chunk-2E6XPNPX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/navbar/navbar-expandable-menu.tsx"],"sourcesContent":["import React, { createContext, useContext, forwardRef, useState, useRef, useEffect } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport type { ClassValue } from \"@postenbring/hedwig-css/typed-classname/index.mjs\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport FocusTrap from \"focus-trap-react\";\nimport type { OverridableComponent } from \"../utils\";\nimport { CloseIcon, MenuIcon } from \"./icons\";\n\nconst navbarContext = createContext([\n false as boolean,\n () => {\n // Empty\n },\n] as const);\n\n/**\n * Root\n */\nexport interface NavbarExpandableMenuProps {\n children: React.ReactNode;\n}\nexport function NavbarExpandableMenu({ children }: NavbarExpandableMenuProps) {\n const [open, setOpen] = useState(false);\n const toggleOpen = () => {\n const nextOpenState = !open;\n setOpen(nextOpenState);\n if (nextOpenState) {\n window.scrollTo(0, 0);\n document.body.classList.add(clsx(\"hds-navbar-scroll-lock\"));\n } else {\n document.body.classList.remove(clsx(\"hds-navbar-scroll-lock\"));\n }\n };\n const navbarElement = document.getElementsByClassName(clsx(\"hds-navbar\"))[0];\n return (\n <navbarContext.Provider value={[open, toggleOpen]}>\n {open ? <FocusTrap containerElements={[navbarElement as HTMLElement]} /> : null}\n {children}\n </navbarContext.Provider>\n );\n}\nNavbarExpandableMenu.displayName = \"NavbarExpandableMenu\";\n\ninterface ButtonInterface {\n className?: ClassValue;\n open?: boolean;\n innerRef?: React.RefObject<HTMLButtonElement>;\n ref?: React.ForwardedRef<HTMLButtonElement>;\n text: React.ReactNode;\n title?: string;\n toggleOpen?: () => void;\n width?: number;\n}\n\nfunction RenderButton({\n className,\n innerRef,\n open = false,\n ref,\n text,\n title,\n toggleOpen,\n width,\n ...rest\n}: ButtonInterface) {\n const icon = open ? <CloseIcon /> : <MenuIcon />;\n const style = width ? { width } : {};\n return (\n <button\n className={clsx(\"hds-navbar__button\", className)}\n onClick={toggleOpen}\n ref={ref ?? innerRef}\n style={style}\n title={title}\n type=\"button\"\n {...rest}\n >\n {text} {icon}\n </button>\n );\n}\n\n/**\n * Trigger\n *\n * ## TODO\n * - [ ] Hide text when on mobile\n * - [X] Open / Close icon\n * - [X] Make button have consistant width\n */\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}\nexport const NavbarExpandableMenuTrigger = forwardRef<\n HTMLButtonElement,\n NavbarExpandableMenuTriggerProps\n>(\n (\n {\n whenClosedText,\n whenClosedHelperTitle,\n\n whenOpenText,\n whenOpenHelperTitle,\n\n className,\n ...rest\n },\n ref,\n ) => {\n const [open, toggleOpen] = useContext(navbarContext);\n const [width, setWidth] = useState(0);\n const measureButtonRef = useRef<HTMLButtonElement>(null);\n\n const text: React.ReactNode = open ? whenOpenText : whenClosedText;\n const title = open ? whenOpenHelperTitle : whenClosedHelperTitle;\n\n /**\n *\n * @param element - Button to measure\n * @param callback - report the width back\n */\n const measureButton = (element: React.ReactNode, callback: (width: number) => void) => {\n // Create an empty div to render the Button in\n const container = document.createElement(\"div\");\n container.style.cssText = \"display: inline-block; position: absolute; visibility: hidden\";\n\n // Attach the empty div inside the navigation section\n const c = document.getElementsByClassName(\"hds-navbar__navigation\")[0];\n c.appendChild(container);\n\n // Render the Button here\n const root = createRoot(container as HTMLElement);\n root.render(element);\n\n /**\n * Get the offsetWidth now that it is rendered\n * Also clean up after us\n */\n const getWidth = () => {\n callback(measureButtonRef.current?.offsetWidth ?? 0);\n root.unmount();\n c.removeChild(container);\n };\n // This is instead of the callback that used to be on ReactDOM.render()\n setTimeout(getWidth, 0);\n };\n\n useEffect(() => {\n measureButton(\n <RenderButton\n className={(className ? className : \"\") as ClassValue}\n innerRef={measureButtonRef}\n text={whenClosedText}\n title={title}\n {...rest}\n />,\n (closedWidth: number) => {\n measureButton(\n <RenderButton\n className={(className ? className : \"\") as ClassValue}\n innerRef={measureButtonRef}\n open\n text={whenOpenText}\n title={title}\n {...rest}\n />,\n (openWidth: number) => {\n setWidth(Math.max(openWidth, closedWidth));\n },\n );\n },\n );\n }, [className, rest, title, whenClosedText, whenOpenText]);\n\n return (\n <RenderButton\n className={(className ? className : \"\") as ClassValue}\n open={open}\n ref={ref}\n text={text as string}\n title={title}\n toggleOpen={toggleOpen}\n width={width}\n {...rest}\n />\n );\n },\n);\nNavbarExpandableMenuTrigger.displayName = \"Navbar.ExpandableMenu.Trigger\";\n\n/**\n * Content\n */\nexport interface NavbarExpandableMenuContentProps {\n children: React.ReactNode;\n className?: string;\n}\nexport const NavbarExpandableMenuContent: OverridableComponent<\n NavbarExpandableMenuContentProps,\n HTMLDivElement\n> = forwardRef(({ as: Component = \"section\", children, className, ...rest }, ref) => {\n const [open] = useContext(navbarContext);\n return (\n <Component\n {...rest}\n className={clsx(\"hds-navbar__expandable-menu-content\", className as undefined)}\n data-state={open ? \"open\" : \"closed\"}\n ref={ref}\n >\n <div className={clsx(\"hds-navbar__expandable-menu-content-inner\")}>{children}</div>\n </Component>\n );\n});\nNavbarExpandableMenuContent.displayName = \"Navbar.ExpandableMenu.Content\";\n"],"mappings":"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","names":["_a","_b"]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
NavbarExpandableMenu,
|
|
9
9
|
NavbarExpandableMenuContent,
|
|
10
10
|
NavbarExpandableMenuTrigger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2E6XPNPX.mjs";
|
|
12
12
|
|
|
13
13
|
// src/navbar/index.tsx
|
|
14
14
|
var NavbarExpandableMenuComponent = NavbarExpandableMenu;
|
|
@@ -23,4 +23,4 @@ NavbarComponent.Navigation = NavbarNavigation;
|
|
|
23
23
|
export {
|
|
24
24
|
NavbarComponent
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
26
|
+
//# sourceMappingURL=chunk-Q3GMWURJ.mjs.map
|
package/dist/index-no-css.js
CHANGED
|
@@ -1238,6 +1238,7 @@ NavbarNavigation.displayName = "Navbar.Navigation";
|
|
|
1238
1238
|
var import_react22 = require("react");
|
|
1239
1239
|
var import_client = require("react-dom/client");
|
|
1240
1240
|
var import_typed_classname26 = require("@postenbring/hedwig-css/typed-classname");
|
|
1241
|
+
var import_focus_trap_react = __toESM(require("focus-trap-react"));
|
|
1241
1242
|
|
|
1242
1243
|
// src/navbar/icons.tsx
|
|
1243
1244
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
@@ -1279,7 +1280,11 @@ function NavbarExpandableMenu({ children }) {
|
|
|
1279
1280
|
document.body.classList.remove((0, import_typed_classname26.clsx)("hds-navbar-scroll-lock"));
|
|
1280
1281
|
}
|
|
1281
1282
|
};
|
|
1282
|
-
|
|
1283
|
+
const navbarElement = document.getElementsByClassName((0, import_typed_classname26.clsx)("hds-navbar"))[0];
|
|
1284
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(navbarContext.Provider, { value: [open, toggleOpen], children: [
|
|
1285
|
+
open ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_focus_trap_react.default, { containerElements: [navbarElement] }) : null,
|
|
1286
|
+
children
|
|
1287
|
+
] });
|
|
1283
1288
|
}
|
|
1284
1289
|
NavbarExpandableMenu.displayName = "NavbarExpandableMenu";
|
|
1285
1290
|
function RenderButton(_a) {
|