@netfoundry/docusaurus-theme 0.10.8 → 0.10.9

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/css/layout.css CHANGED
@@ -11,29 +11,22 @@ html {
11
11
  scrollbar-gutter: stable;
12
12
  }
13
13
 
14
- /* Right navbar order: icons → toggle → resources → search */
14
+ /* Right navbar order: icons → toggle → search */
15
15
  .navbar__items--right > div:has(button.clean-btn),
16
16
  .navbar__items--right > button.clean-btn { order: 10; }
17
- .navbar__items--right > div:has(.nf-picker-trigger) { order: 20; display: flex; align-items: center; }
18
17
  .navbar__items--right > div:has(.DocSearch-Button) { order: 30; }
19
18
 
20
- /* Separator between color mode toggle and resources picker */
21
- .navbar__items--right > div:has(.nf-picker-trigger)::before {
22
- content: '';
23
- display: block;
24
- width: 1px;
25
- height: 1.2em;
26
- background: currentColor;
27
- opacity: 0.2;
28
- margin-right: 0.75rem;
29
- }
30
-
31
19
  /* Discourse navbar icon — multicolor brand logo */
32
20
  .nf-icon-link--discourse:hover {
33
21
  opacity: 0.8;
34
22
  color: inherit;
35
23
  }
36
24
 
25
+ /* Logo fills the navbar height (overrides Docusaurus default of 2rem) */
26
+ .navbar__logo {
27
+ height: var(--ifm-navbar-height);
28
+ }
29
+
37
30
  /* Separator between navbar logo and nav items */
38
31
  .navbar__brand::after {
39
32
  content: '';
@@ -94,17 +94,6 @@
94
94
  z-index: 1000;
95
95
  }
96
96
 
97
- /* CSS bridge: transparent strip above the panel eats the gap */
98
- .nf-picker-panel::before {
99
- content: '';
100
- display: block;
101
- position: absolute;
102
- top: -20px;
103
- left: 0;
104
- right: 0;
105
- height: 20px;
106
- }
107
-
108
97
  /* ── Legacy html-type dropdown panel ────────────────────────────────────── */
109
98
 
110
99
  /*
@@ -11,29 +11,22 @@ html {
11
11
  scrollbar-gutter: stable;
12
12
  }
13
13
 
14
- /* Right navbar order: icons → toggle → resources → search */
14
+ /* Right navbar order: icons → toggle → search */
15
15
  .navbar__items--right > div:has(button.clean-btn),
16
16
  .navbar__items--right > button.clean-btn { order: 10; }
17
- .navbar__items--right > div:has(.nf-picker-trigger) { order: 20; display: flex; align-items: center; }
18
17
  .navbar__items--right > div:has(.DocSearch-Button) { order: 30; }
19
18
 
20
- /* Separator between color mode toggle and resources picker */
21
- .navbar__items--right > div:has(.nf-picker-trigger)::before {
22
- content: '';
23
- display: block;
24
- width: 1px;
25
- height: 1.2em;
26
- background: currentColor;
27
- opacity: 0.2;
28
- margin-right: 0.75rem;
29
- }
30
-
31
19
  /* Discourse navbar icon — multicolor brand logo */
32
20
  .nf-icon-link--discourse:hover {
33
21
  opacity: 0.8;
34
22
  color: inherit;
35
23
  }
36
24
 
25
+ /* Logo fills the navbar height (overrides Docusaurus default of 2rem) */
26
+ .navbar__logo {
27
+ height: var(--ifm-navbar-height);
28
+ }
29
+
37
30
  /* Separator between navbar logo and nav items */
38
31
  .navbar__brand::after {
39
32
  content: '';
@@ -94,17 +94,6 @@
94
94
  z-index: 1000;
95
95
  }
96
96
 
97
- /* CSS bridge: transparent strip above the panel eats the gap */
98
- .nf-picker-panel::before {
99
- content: '';
100
- display: block;
101
- position: absolute;
102
- top: -20px;
103
- left: 0;
104
- right: 0;
105
- height: 20px;
106
- }
107
-
108
97
  /* ── Legacy html-type dropdown panel ────────────────────────────────────── */
109
98
 
110
99
  /*
@@ -12,5 +12,6 @@ export declare function addDocsRedir(base: string, redirectsArr: {
12
12
  to: string;
13
13
  from: string[];
14
14
  }[]): void;
15
+ export declare function pluginReo(context: LoadContext): Plugin;
15
16
  export declare function pluginHotjar(context: LoadContext): Plugin;
16
17
  //# sourceMappingURL=docusaurus-envhelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docusaurus-envhelper.d.ts","sourceRoot":"","sources":["../../src/docusaurus-envhelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoB7D,eAAO,MAAM,gBAAgB,SAAwC,CAAC;AACtE,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,oBAAoB,oBAA8C,CAAC;AAChF,eAAO,MAAM,oBAAoB,oBAA+C,CAAC;AACjF,eAAO,MAAM,2BAA2B,oBAA0E,CAAC;AACnH,eAAO,MAAM,QAAQ,QAA0C,CAAC;AAEhE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,UAEpC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,QAOxF;AAUD,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAgDzD"}
1
+ {"version":3,"file":"docusaurus-envhelper.d.ts","sourceRoot":"","sources":["../../src/docusaurus-envhelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoB7D,eAAO,MAAM,gBAAgB,SAAwC,CAAC;AACtE,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,oBAAoB,oBAA8C,CAAC;AAChF,eAAO,MAAM,oBAAoB,oBAA+C,CAAC;AACjF,eAAO,MAAM,2BAA2B,oBAA0E,CAAC;AACnH,eAAO,MAAM,QAAQ,QAA0C,CAAC;AAEhE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,UAEpC;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,QAOxF;AAUD,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAwCtD;AAMD,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAgDzD"}
@@ -32,6 +32,36 @@ export function addDocsRedir(base, redirectsArr) {
32
32
  });
33
33
  }
34
34
  }
35
+ export function pluginReo(context) {
36
+ const { siteConfig } = context;
37
+ const { themeConfig } = siteConfig;
38
+ const { reo } = themeConfig;
39
+ if (!reo) {
40
+ throw new Error(`You need to specify a 'reo' object in 'themeConfig' with a 'clientId' field to use pluginReo`);
41
+ }
42
+ const { clientId } = reo;
43
+ if (!clientId) {
44
+ throw new Error(`You specified the 'reo' object in 'themeConfig' but the 'clientId' field was missing.`);
45
+ }
46
+ const isProd = process.env.NODE_ENV === 'production';
47
+ return {
48
+ name: 'docusaurus-plugin-reo',
49
+ injectHtmlTags() {
50
+ console.log(`[reo] clientId = ${clientId} isProd = ${isProd}`);
51
+ if (!isProd) {
52
+ return {};
53
+ }
54
+ return {
55
+ headTags: [
56
+ {
57
+ tagName: 'script',
58
+ innerHTML: `!function(){var e,t,n;e="${clientId}",t=function(){Reo.init({clientID:"${clientId}"})};(n=document.createElement("script")).src="https://static.reo.dev/"+e+"/reo.js",n.defer=true,n.onload=t,document.head.appendChild(n)}();`,
59
+ },
60
+ ],
61
+ };
62
+ },
63
+ };
64
+ }
35
65
  export function pluginHotjar(context) {
36
66
  const { siteConfig } = context;
37
67
  const { themeConfig } = siteConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"docusaurus-envhelper.js","sourceRoot":"","sources":["../../src/docusaurus-envhelper.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,GAAQ,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAEnE,MAAM,WAAW,GAAQ,CAAC,GAAG,EAAE;IAC3B,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAU,CAAC;IAChF,IAAI,CAAC,CAAC,kBAAkB;QAAE,OAAO,CAAC,CAAC,kBAAyB,CAAC;IAC7D,OAAO,EAAE,CAAC;AACd,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAU,EAAE,EAAE,CACrC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAuB,CAAC;AAEhD,MAAM,MAAM,GACR,MAAM,CAAC,gBAAgB,CAAC;IACxB,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,MAAM,CAAC;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,6BAA6B,EAAE,gCAAgC,CAAC,CAAC;AACnH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAE,CAAC;AAEhE,MAAM,UAAU,QAAQ,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,IAAY;IAC7C,OAAO,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY;IAClD,OAAO,QAAQ,CAAC,GAAG,IAAI,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,YAA8C;IACrF,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpC,YAAY,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC;YACxC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAChC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC7C,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,WAA6C,CAAC;IAEjE,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACX,uHAAuH,CAC1H,CAAC;IACN,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACX,gGAAgG;YAChG,sCAAsC,CACzC,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IAErD,OAAO;QACH,IAAI,EAAE,0BAA0B;QAEhC,cAAc;YACV,OAAO,CAAC,GAAG,CAAC,4BAA4B,aAAa,aAAa,MAAM,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;YAED,OAAO;gBACH,QAAQ,EAAE;oBACN;wBACI,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE;;wBAEX,aAAa;;;;;qEAKgC;qBAChD;iBACJ;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"docusaurus-envhelper.js","sourceRoot":"","sources":["../../src/docusaurus-envhelper.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ type Props = {
4
4
  className?: string;
5
5
  panelClassName?: string;
6
6
  /** Compute left offset via getBoundingClientRect so the panel stays on-screen.
7
- * Use this for right-side navbar items where CSS positioning would clip. */
7
+ * Use this for navbar items where CSS positioning would clip. */
8
8
  autoPosition?: boolean;
9
9
  children: ReactNode;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NavbarPicker.d.ts","sourceRoot":"","sources":["../../../theme/NavbarItem/NavbarPicker.tsx"],"names":[],"mappings":"AAAA,OAAc,EAA2C,SAAS,EAAC,MAAM,OAAO,CAAC;AAGjF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iFAC6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAoB,EAAE,QAAQ,EAAC,EAAE,KAAK,2CAgF7G"}
1
+ {"version":3,"file":"NavbarPicker.d.ts","sourceRoot":"","sources":["../../../theme/NavbarItem/NavbarPicker.tsx"],"names":[],"mappings":"AAAA,OAAc,EAA2C,SAAS,EAAC,MAAM,OAAO,CAAC;AAGjF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;sEACkE;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAoB,EAAE,QAAQ,EAAC,EAAE,KAAK,2CAwE7G"}
@@ -3,13 +3,9 @@ import { useState, useRef, useEffect, useCallback } from 'react';
3
3
  import clsx from 'clsx';
4
4
  export default function NavbarPicker({ label, className, panelClassName, autoPosition = false, children }) {
5
5
  const wrapRef = useRef(null);
6
- const hasEnteredPanel = useRef(false);
7
6
  const [open, setOpen] = useState(false);
8
7
  const [panelLeft, setPanelLeft] = useState(undefined);
9
- const close = useCallback(() => {
10
- setOpen(false);
11
- hasEnteredPanel.current = false;
12
- }, []);
8
+ const close = useCallback(() => { setOpen(false); }, []);
13
9
  // Close on outside click/touch
14
10
  useEffect(() => {
15
11
  const onOutside = (e) => {
@@ -32,28 +28,28 @@ export default function NavbarPicker({ label, className, panelClassName, autoPos
32
28
  window.addEventListener('nf-picker:open', onOtherOpen);
33
29
  return () => window.removeEventListener('nf-picker:open', onOtherOpen);
34
30
  }, [label, close]);
35
- const handleTriggerEnter = useCallback(() => {
36
- hasEnteredPanel.current = false;
37
- if (autoPosition && wrapRef.current) {
38
- const rect = wrapRef.current.getBoundingClientRect();
39
- const PANEL_MAX_WIDTH = 430;
40
- const MARGIN = 16;
41
- const rightEdge = rect.left + PANEL_MAX_WIDTH;
42
- const overflow = rightEdge - (window.innerWidth - MARGIN);
43
- setPanelLeft(overflow > 0 ? rect.left - overflow : rect.left);
31
+ const handleClick = useCallback((e) => {
32
+ e.preventDefault();
33
+ const opening = !open;
34
+ if (opening) {
35
+ if (autoPosition && wrapRef.current) {
36
+ const rect = wrapRef.current.getBoundingClientRect();
37
+ const PANEL_MAX_WIDTH = 430;
38
+ const MARGIN = 16;
39
+ const rightEdge = rect.left + PANEL_MAX_WIDTH;
40
+ const overflow = rightEdge - (window.innerWidth - MARGIN);
41
+ setPanelLeft(overflow > 0 ? rect.left - overflow : rect.left);
42
+ }
43
+ window.dispatchEvent(new CustomEvent('nf-picker:open', { detail: { label } }));
44
44
  }
45
- window.dispatchEvent(new CustomEvent('nf-picker:open', { detail: { label } }));
46
- setOpen(true);
47
- }, [label, autoPosition]);
48
- const handlePanelEnter = useCallback(() => { hasEnteredPanel.current = true; }, []);
49
- const handlePanelLeave = useCallback(() => { if (hasEnteredPanel.current)
50
- close(); }, [close]);
45
+ setOpen(o => !o);
46
+ }, [open, label, autoPosition]);
51
47
  const panelStyle = autoPosition && panelLeft !== undefined
52
48
  ? { left: panelLeft, right: 'auto', transform: 'none' }
53
49
  : undefined;
54
- return (_jsxs("div", { ref: wrapRef, className: clsx('navbar__item', { 'nf-picker--open': open }), children: [_jsx("a", { role: "button", href: "#", "aria-haspopup": "true", "aria-expanded": open, className: clsx('navbar__link', 'nf-picker-trigger', className), onMouseEnter: handleTriggerEnter, onMouseLeave: () => { }, onClick: e => { e.preventDefault(); setOpen(o => !o); }, onKeyDown: e => { if (e.key === 'Enter') {
50
+ return (_jsxs("div", { ref: wrapRef, className: clsx('navbar__item', { 'nf-picker--open': open }), children: [_jsx("a", { role: "button", href: "#", "aria-haspopup": "true", "aria-expanded": open, className: clsx('navbar__link', 'nf-picker-trigger', className), onClick: handleClick, onKeyDown: e => { if (e.key === 'Enter') {
55
51
  e.preventDefault();
56
52
  setOpen(o => !o);
57
- } }, children: label }), open && (_jsx("div", { className: clsx('nf-picker-panel', panelClassName), style: panelStyle, onMouseDown: e => e.stopPropagation(), onMouseEnter: handlePanelEnter, onMouseLeave: handlePanelLeave, children: children }))] }));
53
+ } }, children: label }), open && (_jsx("div", { className: clsx('nf-picker-panel', panelClassName), style: panelStyle, onMouseDown: e => e.stopPropagation(), children: children }))] }));
58
54
  }
59
55
  //# sourceMappingURL=NavbarPicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavbarPicker.js","sourceRoot":"","sources":["../../../theme/NavbarItem/NavbarPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NavbarPicker.js","sourceRoot":"","sources":["../../../theme/NavbarItem/NavbarPicker.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netfoundry/docusaurus-theme",
3
- "version": "0.10.8",
3
+ "version": "0.10.9",
4
4
  "description": "NetFoundry Docusaurus theme with shared layout, footer, and styling",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -6,21 +6,17 @@ type Props = {
6
6
  className?: string;
7
7
  panelClassName?: string;
8
8
  /** Compute left offset via getBoundingClientRect so the panel stays on-screen.
9
- * Use this for right-side navbar items where CSS positioning would clip. */
9
+ * Use this for navbar items where CSS positioning would clip. */
10
10
  autoPosition?: boolean;
11
11
  children: ReactNode;
12
12
  };
13
13
 
14
14
  export default function NavbarPicker({label, className, panelClassName, autoPosition = false, children}: Props) {
15
15
  const wrapRef = useRef<HTMLDivElement>(null);
16
- const hasEnteredPanel = useRef(false);
17
16
  const [open, setOpen] = useState(false);
18
17
  const [panelLeft, setPanelLeft] = useState<number | undefined>(undefined);
19
18
 
20
- const close = useCallback(() => {
21
- setOpen(false);
22
- hasEnteredPanel.current = false;
23
- }, []);
19
+ const close = useCallback(() => { setOpen(false); }, []);
24
20
 
25
21
  // Close on outside click/touch
26
22
  useEffect(() => {
@@ -44,22 +40,22 @@ export default function NavbarPicker({label, className, panelClassName, autoPosi
44
40
  return () => window.removeEventListener('nf-picker:open', onOtherOpen);
45
41
  }, [label, close]);
46
42
 
47
- const handleTriggerEnter = useCallback(() => {
48
- hasEnteredPanel.current = false;
49
- if (autoPosition && wrapRef.current) {
50
- const rect = wrapRef.current.getBoundingClientRect();
51
- const PANEL_MAX_WIDTH = 430;
52
- const MARGIN = 16;
53
- const rightEdge = rect.left + PANEL_MAX_WIDTH;
54
- const overflow = rightEdge - (window.innerWidth - MARGIN);
55
- setPanelLeft(overflow > 0 ? rect.left - overflow : rect.left);
43
+ const handleClick = useCallback((e: React.MouseEvent) => {
44
+ e.preventDefault();
45
+ const opening = !open;
46
+ if (opening) {
47
+ if (autoPosition && wrapRef.current) {
48
+ const rect = wrapRef.current.getBoundingClientRect();
49
+ const PANEL_MAX_WIDTH = 430;
50
+ const MARGIN = 16;
51
+ const rightEdge = rect.left + PANEL_MAX_WIDTH;
52
+ const overflow = rightEdge - (window.innerWidth - MARGIN);
53
+ setPanelLeft(overflow > 0 ? rect.left - overflow : rect.left);
54
+ }
55
+ window.dispatchEvent(new CustomEvent('nf-picker:open', {detail: {label}}));
56
56
  }
57
- window.dispatchEvent(new CustomEvent('nf-picker:open', {detail: {label}}));
58
- setOpen(true);
59
- }, [label, autoPosition]);
60
-
61
- const handlePanelEnter = useCallback(() => { hasEnteredPanel.current = true; }, []);
62
- const handlePanelLeave = useCallback(() => { if (hasEnteredPanel.current) close(); }, [close]);
57
+ setOpen(o => !o);
58
+ }, [open, label, autoPosition]);
63
59
 
64
60
  const panelStyle = autoPosition && panelLeft !== undefined
65
61
  ? {left: panelLeft, right: 'auto', transform: 'none'} as React.CSSProperties
@@ -73,9 +69,7 @@ export default function NavbarPicker({label, className, panelClassName, autoPosi
73
69
  aria-haspopup="true"
74
70
  aria-expanded={open}
75
71
  className={clsx('navbar__link', 'nf-picker-trigger', className)}
76
- onMouseEnter={handleTriggerEnter}
77
- onMouseLeave={() => {}}
78
- onClick={e => { e.preventDefault(); setOpen(o => !o); }}
72
+ onClick={handleClick}
79
73
  onKeyDown={e => { if (e.key === 'Enter') { e.preventDefault(); setOpen(o => !o); } }}>
80
74
  {label}
81
75
  </a>
@@ -83,9 +77,7 @@ export default function NavbarPicker({label, className, panelClassName, autoPosi
83
77
  <div
84
78
  className={clsx('nf-picker-panel', panelClassName)}
85
79
  style={panelStyle}
86
- onMouseDown={e => e.stopPropagation()}
87
- onMouseEnter={handlePanelEnter}
88
- onMouseLeave={handlePanelLeave}>
80
+ onMouseDown={e => e.stopPropagation()}>
89
81
  {children}
90
82
  </div>
91
83
  )}