@brillout/docpress 0.8.13-commit-8740149 → 0.8.14
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/Layout.tsx +43 -22
- package/Links.tsx +3 -2
- package/MenuModal.tsx +12 -22
- package/css/colorize-on-hover.css +19 -17
- package/dist/Layout.js +39 -13
- package/dist/Links.d.ts +1 -1
- package/dist/Links.js +2 -1
- package/dist/MenuModal.d.ts +3 -1
- package/dist/MenuModal.js +9 -20
- package/initKeyBindings.ts +1 -6
- package/package.json +1 -1
package/Layout.tsx
CHANGED
|
@@ -61,7 +61,7 @@ function Layout({ children }: { children: React.ReactNode }) {
|
|
|
61
61
|
['--top-nav-height']: `${isLandingPage ? 70 : 60}px`,
|
|
62
62
|
}}
|
|
63
63
|
>
|
|
64
|
-
<MenuModal />
|
|
64
|
+
<MenuModal isTopNav={isLandingPage} />
|
|
65
65
|
<div
|
|
66
66
|
className={isLandingPage ? '' : 'doc-page'}
|
|
67
67
|
style={{
|
|
@@ -113,6 +113,9 @@ function LayoutDocsPage({ children }: { children: React.ReactNode }) {
|
|
|
113
113
|
.page-content {
|
|
114
114
|
margin: auto;
|
|
115
115
|
}
|
|
116
|
+
#menu-modal {
|
|
117
|
+
position: absolute !important;
|
|
118
|
+
}
|
|
116
119
|
`
|
|
117
120
|
if (!hideNavLeftAlways) {
|
|
118
121
|
navLeftHide = css`
|
|
@@ -384,44 +387,42 @@ function NavigationHeader({
|
|
|
384
387
|
)
|
|
385
388
|
}
|
|
386
389
|
|
|
390
|
+
let onMouseIgnore: ReturnType<typeof setTimeout> | undefined
|
|
387
391
|
function MenuLink({ style }: { style: React.CSSProperties }) {
|
|
388
392
|
return (
|
|
389
393
|
<div
|
|
390
394
|
style={{
|
|
391
|
-
height: '
|
|
395
|
+
height: '100%',
|
|
392
396
|
display: 'flex',
|
|
393
397
|
alignItems: 'center',
|
|
398
|
+
cursor: 'default',
|
|
394
399
|
...style,
|
|
395
400
|
}}
|
|
396
|
-
className="colorize-on-hover
|
|
401
|
+
className="colorize-on-hover menu-toggle"
|
|
397
402
|
onClick={(ev) => {
|
|
398
403
|
ev.preventDefault()
|
|
399
404
|
toggleMenuModal()
|
|
400
405
|
}}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
406
|
+
onMouseOver={() => {
|
|
407
|
+
if (onMouseIgnore) return
|
|
408
|
+
openMenuModal()
|
|
409
|
+
}}
|
|
410
|
+
onMouseLeave={() => {
|
|
411
|
+
if (onMouseIgnore) return
|
|
412
|
+
closeMenuModal()
|
|
413
|
+
}}
|
|
414
|
+
onTouchStart={() => {
|
|
415
|
+
onMouseIgnore = setTimeout(() => {
|
|
416
|
+
onMouseIgnore = undefined
|
|
417
|
+
}, 1000)
|
|
418
|
+
}}
|
|
404
419
|
>
|
|
405
|
-
|
|
406
|
-
<style>{css`
|
|
407
|
-
`}</style>
|
|
408
|
-
*/}
|
|
409
|
-
<div
|
|
410
|
-
id="link-bg"
|
|
411
|
-
style={{
|
|
412
|
-
position: 'absolute',
|
|
413
|
-
width: '100%',
|
|
414
|
-
height: 'calc(100% - var(--block-margin))',
|
|
415
|
-
left: 0,
|
|
416
|
-
top: 0,
|
|
417
|
-
}}
|
|
418
|
-
></div>
|
|
419
|
-
<MenuIcon />
|
|
420
|
+
<DocsIcon />
|
|
420
421
|
Docs
|
|
421
422
|
</div>
|
|
422
423
|
)
|
|
423
424
|
}
|
|
424
|
-
function
|
|
425
|
+
function DocsIcon() {
|
|
425
426
|
return (
|
|
426
427
|
<span
|
|
427
428
|
style={{ marginRight: 'calc(var(--icon-text-padding) + 2px)', lineHeight: 0, width: '1.3em' }}
|
|
@@ -431,3 +432,23 @@ function MenuIcon() {
|
|
|
431
432
|
</span>
|
|
432
433
|
)
|
|
433
434
|
}
|
|
435
|
+
/* TODO/now: use for mobile
|
|
436
|
+
function MenuIcon() {
|
|
437
|
+
return (
|
|
438
|
+
<svg
|
|
439
|
+
style={{ marginRight: 'calc(var(--icon-text-padding) + 2px)', lineHeight: 0, width: '1.3em' }}
|
|
440
|
+
className="decolorize-6"
|
|
441
|
+
viewBox="0 0 448 512"
|
|
442
|
+
>
|
|
443
|
+
<path
|
|
444
|
+
fill="currentColor"
|
|
445
|
+
d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"
|
|
446
|
+
></path>
|
|
447
|
+
</svg>
|
|
448
|
+
)
|
|
449
|
+
}
|
|
450
|
+
*/
|
|
451
|
+
|
|
452
|
+
function Style({ children }: { children: string }) {
|
|
453
|
+
return <style dangerouslySetInnerHTML={{ __html: children }} />
|
|
454
|
+
}
|
package/Links.tsx
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// TODO/refactor: rename
|
|
2
|
+
export { Links }
|
|
3
|
+
|
|
1
4
|
import React from 'react'
|
|
2
5
|
import iconGithub from './icons/github.svg'
|
|
3
6
|
import iconTwitter from './icons/twitter.svg'
|
|
@@ -7,8 +10,6 @@ import iconLanguages from './icons/languages.svg'
|
|
|
7
10
|
import { usePageContext } from './renderer/usePageContext'
|
|
8
11
|
import '@docsearch/css'
|
|
9
12
|
|
|
10
|
-
export { Links }
|
|
11
|
-
|
|
12
13
|
function Links({ style }: { style?: React.CSSProperties }) {
|
|
13
14
|
const pageContext = usePageContext()
|
|
14
15
|
const { projectInfo, i18n } = pageContext.config
|
package/MenuModal.tsx
CHANGED
|
@@ -14,36 +14,25 @@ import { getViewportWidth } from './utils/getViewportWidth'
|
|
|
14
14
|
|
|
15
15
|
initCloseListeners()
|
|
16
16
|
|
|
17
|
-
function MenuModal() {
|
|
17
|
+
function MenuModal({ isTopNav }: { isTopNav: boolean }) {
|
|
18
18
|
return (
|
|
19
19
|
<>
|
|
20
20
|
<style>{getStyle()}</style>
|
|
21
21
|
<div
|
|
22
22
|
id="menu-modal"
|
|
23
|
-
className="link-hover-animation"
|
|
23
|
+
className="link-hover-animation add-transition"
|
|
24
24
|
style={{
|
|
25
|
-
position: 'fixed',
|
|
25
|
+
position: isTopNav ? 'absolute' : 'fixed',
|
|
26
26
|
width: '100%',
|
|
27
|
-
/* Do this once Firefox supports `dvh`: https://caniuse.com/?search=dvh
|
|
28
|
-
* - Then also replace all `vh` values with `dvh` values.
|
|
29
|
-
* - https://stackoverflow.com/questions/37112218/css3-100vh-not-constant-in-mobile-browser/72245072#72245072
|
|
30
|
-
height: '100dh',
|
|
31
|
-
/*/
|
|
32
27
|
height: 'calc(100vh - var(--top-nav-height))',
|
|
33
|
-
|
|
34
|
-
top: 'calc(var(--top-nav-height) + var(--block-margin))',
|
|
28
|
+
top: 'var(--top-nav-height)',
|
|
35
29
|
left: 0,
|
|
36
30
|
zIndex: 9999,
|
|
37
31
|
overflow: 'scroll',
|
|
38
|
-
background: '#
|
|
39
|
-
|
|
40
|
-
// boxShadow: 'rgba(0, 0, 0, 0.35) 0 0 13px 3px',
|
|
41
|
-
// boxShadow: 'rgba(6, 24, 44, 0.4) 0px 0px 0px 2px, rgba(6, 24, 44, 0.65) 0px 4px 13px -1px, rgba(255, 255, 255, 0.08) 0px 1px 0px inset',
|
|
42
|
-
boxShadow:
|
|
43
|
-
'rgb(6 24 44 / 8%) 0px 0px 0px 3px, rgba(6, 24, 44, 0.65) 0px 4px 13px -1px, rgba(255, 255, 255, 0.28) 0px 1px 0px inset',
|
|
44
|
-
transition: 'opacity 0.3s ease-in-out',
|
|
32
|
+
background: '#ededef',
|
|
33
|
+
transitionProperty: 'opacity',
|
|
45
34
|
}}
|
|
46
|
-
|
|
35
|
+
onMouseOver={openMenuModal}
|
|
47
36
|
onMouseLeave={closeMenuModal}
|
|
48
37
|
>
|
|
49
38
|
<div
|
|
@@ -58,8 +47,11 @@ function MenuModal() {
|
|
|
58
47
|
}}
|
|
59
48
|
>
|
|
60
49
|
<Nav />
|
|
50
|
+
{/* TODO/now: use for mobile
|
|
51
|
+
<LinksBottom />
|
|
52
|
+
*/}
|
|
61
53
|
</div>
|
|
62
|
-
{/* TODO:
|
|
54
|
+
{/* TODO/now: use for mobile
|
|
63
55
|
<CloseButton />
|
|
64
56
|
*/}
|
|
65
57
|
</div>
|
|
@@ -71,7 +63,6 @@ function Nav() {
|
|
|
71
63
|
const navItems = pageContext.navItemsAll
|
|
72
64
|
return <NavigationContent columnLayout={true} navItems={navItems} />
|
|
73
65
|
}
|
|
74
|
-
// TODO: remove
|
|
75
66
|
function LinksBottom() {
|
|
76
67
|
return (
|
|
77
68
|
<div
|
|
@@ -89,7 +80,7 @@ function getStyle() {
|
|
|
89
80
|
return css`
|
|
90
81
|
html:not(.menu-modal-show) #menu-modal {
|
|
91
82
|
opacity: 0;
|
|
92
|
-
pointer-events:none;
|
|
83
|
+
pointer-events: none;
|
|
93
84
|
}
|
|
94
85
|
// disable scroll of main view
|
|
95
86
|
html.menu-modal-show {
|
|
@@ -103,7 +94,6 @@ html.menu-modal-show {
|
|
|
103
94
|
`
|
|
104
95
|
}
|
|
105
96
|
|
|
106
|
-
// TODO: remove?
|
|
107
97
|
function CloseButton() {
|
|
108
98
|
return (
|
|
109
99
|
<div
|
|
@@ -5,19 +5,32 @@
|
|
|
5
5
|
@media (hover: hover) and (pointer: fine) {
|
|
6
6
|
.colorize-on-hover:hover [class^='decolorize-'],
|
|
7
7
|
.colorize-on-hover:hover [class*=' decolorize-'],
|
|
8
|
-
html.menu-modal-show .
|
|
9
|
-
html.menu-modal-show .
|
|
8
|
+
html.menu-modal-show .menu-toggle [class^='decolorize-'],
|
|
9
|
+
html.menu-modal-show .menu-toggle [class*=' decolorize-'] {
|
|
10
10
|
filter: grayscale(0) opacity(1) !important;
|
|
11
11
|
}
|
|
12
|
-
.link-hover-animation a:hover
|
|
12
|
+
.link-hover-animation a:hover,
|
|
13
|
+
.link-hover-animation .menu-toggle:hover,
|
|
14
|
+
html.menu-modal-show .menu-toggle {
|
|
13
15
|
color: black !important;
|
|
14
16
|
background-color: var(--active-color);
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
[class^='decolorize-'],
|
|
21
|
+
[class*=' decolorize-'],
|
|
22
|
+
.link-hover-animation a,
|
|
23
|
+
.link-hover-animation .menu-toggle,
|
|
24
|
+
.add-transition {
|
|
25
|
+
transition: all 0.4s ease-in-out;
|
|
26
|
+
}
|
|
27
|
+
[class^='decolorize-'],
|
|
28
|
+
[class*=' decolorize-'] {
|
|
29
|
+
transition-property: filter;
|
|
30
|
+
}
|
|
31
|
+
.link-hover-animation a,
|
|
32
|
+
.menu-toggle {
|
|
33
|
+
transition-property: color, background-color;
|
|
21
34
|
}
|
|
22
35
|
|
|
23
36
|
.decolorize-7 {
|
|
@@ -33,17 +46,6 @@
|
|
|
33
46
|
filter: grayscale(1) opacity(0.4);
|
|
34
47
|
}
|
|
35
48
|
|
|
36
|
-
.link-hover-animation a {
|
|
37
|
-
transition: all 0.3s ease-in-out !important;
|
|
38
|
-
transition-property: color, background-color !important;
|
|
39
|
-
}
|
|
40
49
|
body {
|
|
41
50
|
--active-color: rgba(0, 0, 0, 0.03);
|
|
42
51
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/* TODO/refactor: move */
|
|
46
|
-
:has(> #link-bg):hover > #link-bg,
|
|
47
|
-
html.menu-modal-show #link-bg {
|
|
48
|
-
background: var(--active-color)
|
|
49
|
-
}
|
package/dist/Layout.js
CHANGED
|
@@ -70,7 +70,7 @@ function Layout(_a) {
|
|
|
70
70
|
_b['--icon-text-padding'] = '8px',
|
|
71
71
|
_b['--top-nav-height'] = "".concat(isLandingPage ? 70 : 60, "px"),
|
|
72
72
|
_b) },
|
|
73
|
-
React.createElement(MenuModal,
|
|
73
|
+
React.createElement(MenuModal, { isTopNav: isLandingPage }),
|
|
74
74
|
React.createElement("div", { className: isLandingPage ? '' : 'doc-page', style: __assign({
|
|
75
75
|
// We don't add `container` to `body` nor `html` beacuse in Firefox it breaks the `position: fixed` of <MenuModal>
|
|
76
76
|
// https://stackoverflow.com/questions/74601420/css-container-inline-size-and-fixed-child
|
|
@@ -89,7 +89,7 @@ function LayoutDocsPage(_a) {
|
|
|
89
89
|
React.createElement(PageContent, null, children))));
|
|
90
90
|
function getStyle() {
|
|
91
91
|
var style = css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n@container(min-width: ", "px) {\n .low-prio-grow {\n flex-grow: 1;\n }\n #navigation-container {\n width: ", "px !important;\n }\n}"], ["\n@container(min-width: ", "px) {\n .low-prio-grow {\n flex-grow: 1;\n }\n #navigation-container {\n width: ", "px !important;\n }\n}"])), containerQuerySpacing, navWidthMax);
|
|
92
|
-
var navLeftHide = css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n#nav-left {\n display: none;\n}\n.page-wrapper {\n --main-view-padding: 10px !important;\n flex-grow: 1;\n align-items: center;\n}\n.page-content {\n margin: auto;\n}\n"], ["\n#nav-left {\n display: none;\n}\n.page-wrapper {\n --main-view-padding: 10px !important;\n flex-grow: 1;\n align-items: center;\n}\n.page-content {\n margin: auto;\n}\n"])));
|
|
92
|
+
var navLeftHide = css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n#nav-left {\n display: none;\n}\n.page-wrapper {\n --main-view-padding: 10px !important;\n flex-grow: 1;\n align-items: center;\n}\n.page-content {\n margin: auto;\n}\n#menu-modal {\n position: absolute !important;\n}\n"], ["\n#nav-left {\n display: none;\n}\n.page-wrapper {\n --main-view-padding: 10px !important;\n flex-grow: 1;\n align-items: center;\n}\n.page-content {\n margin: auto;\n}\n#menu-modal {\n position: absolute !important;\n}\n"])));
|
|
93
93
|
if (!hideNavLeftAlways) {
|
|
94
94
|
navLeftHide = css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n@container(max-width: ", "px) {\n ", "\n}\n@container(min-width: ", "px) {\n #nav-mobile {\n display: none !important;\n }\n}\n"], ["\n@container(max-width: ", "px) {\n ", "\n}\n@container(min-width: ", "px) {\n #nav-mobile {\n display: none !important;\n }\n}\n"])), containerQueryMobile - 1, navLeftHide, containerQueryMobile);
|
|
95
95
|
}
|
|
@@ -221,23 +221,49 @@ function NavigationHeader(_a) {
|
|
|
221
221
|
React.createElement(SearchLink, { style: __assign(__assign({}, childrenStyle), { flexGrow: 0.5 }) }),
|
|
222
222
|
React.createElement(MenuLink, { style: __assign(__assign({}, childrenStyle), { flexGrow: 1 }) }))));
|
|
223
223
|
}
|
|
224
|
+
var onMouseIgnore;
|
|
224
225
|
function MenuLink(_a) {
|
|
225
226
|
var style = _a.style;
|
|
226
|
-
return (React.createElement("div", { style: __assign({ height: '
|
|
227
|
+
return (React.createElement("div", { style: __assign({ height: '100%', display: 'flex', alignItems: 'center', cursor: 'default' }, style), className: "colorize-on-hover menu-toggle", onClick: function (ev) {
|
|
227
228
|
ev.preventDefault();
|
|
228
229
|
toggleMenuModal();
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
230
|
+
}, onMouseOver: function () {
|
|
231
|
+
if (onMouseIgnore)
|
|
232
|
+
return;
|
|
233
|
+
openMenuModal();
|
|
234
|
+
}, onMouseLeave: function () {
|
|
235
|
+
if (onMouseIgnore)
|
|
236
|
+
return;
|
|
237
|
+
closeMenuModal();
|
|
238
|
+
}, onTouchStart: function () {
|
|
239
|
+
onMouseIgnore = setTimeout(function () {
|
|
240
|
+
onMouseIgnore = undefined;
|
|
241
|
+
}, 1000);
|
|
242
|
+
} },
|
|
243
|
+
React.createElement(DocsIcon, null),
|
|
238
244
|
"Docs"));
|
|
239
245
|
}
|
|
240
|
-
function
|
|
246
|
+
function DocsIcon() {
|
|
241
247
|
return (React.createElement("span", { style: { marginRight: 'calc(var(--icon-text-padding) + 2px)', lineHeight: 0, width: '1.3em' }, className: "decolorize-6" }, "\uD83D\uDCDA"));
|
|
242
248
|
}
|
|
249
|
+
/* TODO/now: use for mobile
|
|
250
|
+
function MenuIcon() {
|
|
251
|
+
return (
|
|
252
|
+
<svg
|
|
253
|
+
style={{ marginRight: 'calc(var(--icon-text-padding) + 2px)', lineHeight: 0, width: '1.3em' }}
|
|
254
|
+
className="decolorize-6"
|
|
255
|
+
viewBox="0 0 448 512"
|
|
256
|
+
>
|
|
257
|
+
<path
|
|
258
|
+
fill="currentColor"
|
|
259
|
+
d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"
|
|
260
|
+
></path>
|
|
261
|
+
</svg>
|
|
262
|
+
)
|
|
263
|
+
}
|
|
264
|
+
*/
|
|
265
|
+
function Style(_a) {
|
|
266
|
+
var children = _a.children;
|
|
267
|
+
return React.createElement("style", { dangerouslySetInnerHTML: { __html: children } });
|
|
268
|
+
}
|
|
243
269
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
package/dist/Links.d.ts
CHANGED
package/dist/Links.js
CHANGED
|
@@ -9,6 +9,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
+
// TODO/refactor: rename
|
|
13
|
+
export { Links };
|
|
12
14
|
import React from 'react';
|
|
13
15
|
import iconGithub from './icons/github.svg';
|
|
14
16
|
import iconTwitter from './icons/twitter.svg';
|
|
@@ -17,7 +19,6 @@ import iconChangelog from './icons/changelog.svg';
|
|
|
17
19
|
import iconLanguages from './icons/languages.svg';
|
|
18
20
|
import { usePageContext } from './renderer/usePageContext';
|
|
19
21
|
import '@docsearch/css';
|
|
20
|
-
export { Links };
|
|
21
22
|
function Links(_a) {
|
|
22
23
|
var style = _a.style;
|
|
23
24
|
var pageContext = usePageContext();
|
package/dist/MenuModal.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ export { toggleMenuModal };
|
|
|
3
3
|
export { openMenuModal };
|
|
4
4
|
export { closeMenuModal };
|
|
5
5
|
import React from 'react';
|
|
6
|
-
declare function MenuModal(
|
|
6
|
+
declare function MenuModal({ isTopNav }: {
|
|
7
|
+
isTopNav: boolean;
|
|
8
|
+
}): React.JSX.Element;
|
|
7
9
|
declare function toggleMenuModal(): void;
|
|
8
10
|
declare function openMenuModal(): void;
|
|
9
11
|
declare function closeMenuModal(): void;
|
package/dist/MenuModal.js
CHANGED
|
@@ -15,30 +15,21 @@ import { Links } from './Links';
|
|
|
15
15
|
import { isBrowser } from './utils/isBrowser';
|
|
16
16
|
import { getViewportWidth } from './utils/getViewportWidth';
|
|
17
17
|
initCloseListeners();
|
|
18
|
-
function MenuModal() {
|
|
18
|
+
function MenuModal(_a) {
|
|
19
|
+
var isTopNav = _a.isTopNav;
|
|
19
20
|
return (React.createElement(React.Fragment, null,
|
|
20
21
|
React.createElement("style", null, getStyle()),
|
|
21
|
-
React.createElement("div", { id: "menu-modal", className: "link-hover-animation", style: {
|
|
22
|
-
position: 'fixed',
|
|
22
|
+
React.createElement("div", { id: "menu-modal", className: "link-hover-animation add-transition", style: {
|
|
23
|
+
position: isTopNav ? 'absolute' : 'fixed',
|
|
23
24
|
width: '100%',
|
|
24
|
-
/* Do this once Firefox supports `dvh`: https://caniuse.com/?search=dvh
|
|
25
|
-
* - Then also replace all `vh` values with `dvh` values.
|
|
26
|
-
* - https://stackoverflow.com/questions/37112218/css3-100vh-not-constant-in-mobile-browser/72245072#72245072
|
|
27
|
-
height: '100dh',
|
|
28
|
-
/*/
|
|
29
25
|
height: 'calc(100vh - var(--top-nav-height))',
|
|
30
|
-
|
|
31
|
-
top: 'calc(var(--top-nav-height) + var(--block-margin))',
|
|
26
|
+
top: 'var(--top-nav-height)',
|
|
32
27
|
left: 0,
|
|
33
28
|
zIndex: 9999,
|
|
34
29
|
overflow: 'scroll',
|
|
35
|
-
background: '#
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// boxShadow: 'rgba(6, 24, 44, 0.4) 0px 0px 0px 2px, rgba(6, 24, 44, 0.65) 0px 4px 13px -1px, rgba(255, 255, 255, 0.08) 0px 1px 0px inset',
|
|
39
|
-
boxShadow: 'rgb(6 24 44 / 8%) 0px 0px 0px 3px, rgba(6, 24, 44, 0.65) 0px 4px 13px -1px, rgba(255, 255, 255, 0.28) 0px 1px 0px inset',
|
|
40
|
-
transition: 'opacity 0.3s ease-in-out',
|
|
41
|
-
}, onMouseEnter: openMenuModal, onMouseLeave: closeMenuModal },
|
|
30
|
+
background: '#ededef',
|
|
31
|
+
transitionProperty: 'opacity',
|
|
32
|
+
}, onMouseOver: openMenuModal, onMouseLeave: closeMenuModal },
|
|
42
33
|
React.createElement("div", { style: {
|
|
43
34
|
// Place <LinksBottom /> to the bottom
|
|
44
35
|
display: 'flex',
|
|
@@ -55,7 +46,6 @@ function Nav() {
|
|
|
55
46
|
var navItems = pageContext.navItemsAll;
|
|
56
47
|
return React.createElement(NavigationContent, { columnLayout: true, navItems: navItems });
|
|
57
48
|
}
|
|
58
|
-
// TODO: remove
|
|
59
49
|
function LinksBottom() {
|
|
60
50
|
return (React.createElement("div", { style: {
|
|
61
51
|
display: 'flex',
|
|
@@ -64,9 +54,8 @@ function LinksBottom() {
|
|
|
64
54
|
React.createElement(Links, { style: { height: 70 } })));
|
|
65
55
|
}
|
|
66
56
|
function getStyle() {
|
|
67
|
-
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\nhtml:not(.menu-modal-show) #menu-modal {\n opacity: 0;\n pointer-events:none;\n}\n// disable scroll of main view\nhtml.menu-modal-show {\n overflow: hidden !important;\n}\n@container(min-width: ", "px) {\n #menu-modal .nav-item-level-3 {\n display: none;\n }\n}\n"], ["\nhtml:not(.menu-modal-show) #menu-modal {\n opacity: 0;\n pointer-events:none;\n}\n// disable scroll of main view\nhtml.menu-modal-show {\n overflow: hidden !important;\n}\n@container(min-width: ", "px) {\n #menu-modal .nav-item-level-3 {\n display: none;\n }\n}\n"])), containerQueryMobile);
|
|
57
|
+
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\nhtml:not(.menu-modal-show) #menu-modal {\n opacity: 0;\n pointer-events: none;\n}\n// disable scroll of main view\nhtml.menu-modal-show {\n overflow: hidden !important;\n}\n@container(min-width: ", "px) {\n #menu-modal .nav-item-level-3 {\n display: none;\n }\n}\n"], ["\nhtml:not(.menu-modal-show) #menu-modal {\n opacity: 0;\n pointer-events: none;\n}\n// disable scroll of main view\nhtml.menu-modal-show {\n overflow: hidden !important;\n}\n@container(min-width: ", "px) {\n #menu-modal .nav-item-level-3 {\n display: none;\n }\n}\n"])), containerQueryMobile);
|
|
68
58
|
}
|
|
69
|
-
// TODO: remove?
|
|
70
59
|
function CloseButton() {
|
|
71
60
|
return (React.createElement("div", { onClick: toggleMenuModal, style: { position: 'fixed', top: 0, right: 0, zIndex: 10, padding: 11, cursor: 'pointer' }, "aria-label": 'Escape\nCtrl\xa0+\xa0M', "data-label-shift": true },
|
|
72
61
|
React.createElement("svg", { width: "48.855", height: "48.855", version: "1.1", viewBox: "0 0 22.901 22.901", xmlns: "http://www.w3.org/2000/svg" },
|
package/initKeyBindings.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { initKeyBindings }
|
|
2
2
|
|
|
3
3
|
import { closeDocsearchModal } from './docsearch/toggleDocsearchModal'
|
|
4
|
-
import { closeMenuModal
|
|
4
|
+
import { closeMenuModal } from './MenuModal'
|
|
5
5
|
|
|
6
6
|
function initKeyBindings() {
|
|
7
7
|
window.addEventListener(
|
|
@@ -14,11 +14,6 @@ function initKeyBindings() {
|
|
|
14
14
|
closeMenuModal()
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
if (key === 'm' && ev.ctrlKey) {
|
|
18
|
-
closeDocsearchModal()
|
|
19
|
-
toggleMenuModal()
|
|
20
|
-
}
|
|
21
|
-
|
|
22
17
|
// Replicates docsearch keybinding
|
|
23
18
|
// https://github.com/algolia/docsearch/blob/90f3c6aabbc324fe49e9a1dfe0906fcd4d90f27b/packages/docsearch-react/src/useDocSearchKeyboardEvents.ts#L45-L49
|
|
24
19
|
if ((key === 'k' && (ev.ctrlKey || ev.metaKey)) || (key === '/' && !isEditingContent(ev))) {
|