for-humanity 0.6.0 → 0.7.1
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 +13 -0
- package/LICENSE +1 -1
- package/README.md +3 -3
- package/dist/browser.js +9 -9
- package/dist/cli.css +39 -322
- package/dist/cli.js +123 -309
- package/package.json +4 -3
- package/src/asset/font/ibm-plex-sans-kr/IBMPlexSansKR-Regular.woff2 +0 -0
- package/src/asset/font/ibm-plex-sans-kr/IBMPlexSansKR-SemiBold.woff2 +0 -0
- package/src/asset/font/{pretendard → ibm-plex-sans-kr}/LICENSE.txt +4 -5
- package/src/asset/font/ibm-plex-sans-kr/ibm-plex-sans-kr.css +22 -0
- package/src/asset/font/{jetbrains-mono/LICENSE → monoplex-kr/LICENSE.md} +61 -8
- package/src/asset/font/monoplex-kr/MonoplexKR-Regular.woff2 +0 -0
- package/src/asset/font/monoplex-kr/MonoplexKR-SemiBold.woff2 +0 -0
- package/src/asset/font/monoplex-kr/monoplex-kr.css +20 -0
- package/src/component/widget/navigation/_constant/navigation-data-schema.ts +0 -3
- package/src/component/widget/navigation/_constant/navigation.ts +2 -2
- package/src/component/widget/navigation/_function/to-navigation-data/_to-navigation-document.ts +2 -3
- package/src/component/widget/navigation/_function/to-navigation-data/_to-navigation-group.ts +3 -4
- package/src/component/widget/navigation/_function/to-navigation-data/to-navigation-data.ts +6 -14
- package/src/component/widget/navigation/_type/navigation-data.ts +0 -12
- package/src/component/widget/navigation/_type/navigation-focus-snapshot.ts +0 -4
- package/src/component/widget/navigation/_wg-navigation-nav-list.css +5 -136
- package/src/component/widget/navigation/_wg-navigation-nav-list.tsx +10 -55
- package/src/component/widget/navigation/_wg-navigation-nav.css +2 -8
- package/src/component/widget/navigation/_wg-navigation-nav.tsx +1 -11
- package/src/component/widget/navigation/_wg-navigation-toc.css +12 -207
- package/src/component/widget/navigation/_wg-navigation-toc.tsx +39 -80
- package/src/component/widget/navigation/wg-navigation.css +1 -1
- package/src/component/widget/navigation/wg-navigation.tsx +10 -69
- package/src/component/widget/prose/wg-prose.css +7 -4
- package/src/component/widget/shell/wg-shell.css +7 -11
- package/src/constant/copy.ts +0 -5
- package/src/constant/font.ts +4 -9
- package/src/entry/browser/browser.tsx +1 -1
- package/src/entry/cli/cli.test.ts +6 -8
- package/src/entry/cli/cli.ts +7 -12
- package/src/store/navigation/create-navigation-stores.test.ts +10 -28
- package/src/store/navigation/create-navigation-stores.ts +4 -18
- package/src/store/navigation/navigation-state.ts +0 -10
- package/src/store/navigation/navigation-storage.ts +0 -5
- package/src/style/token.css +21 -20
- package/src/util/font/to-font-css.test.ts +2 -2
- package/src/util/mermaid/render-flow.js +2 -2
- package/src/asset/font/jetbrains-mono/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/src/asset/font/jetbrains-mono/jetbrains-mono.css +0 -11
- package/src/asset/font/pretendard/pretendardvariable-dynamic-subset.css +0 -1008
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.0.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.1.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.10.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.11.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.12.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.13.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.14.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.15.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.16.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.17.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.18.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.19.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.2.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.20.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.21.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.22.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.23.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.24.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.25.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.26.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.27.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.28.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.29.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.3.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.30.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.31.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.32.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.33.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.34.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.35.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.36.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.37.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.38.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.39.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.4.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.40.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.41.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.42.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.43.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.44.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.45.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.46.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.47.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.48.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.49.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.5.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.50.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.51.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.52.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.53.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.54.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.55.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.56.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.57.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.58.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.59.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.6.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.60.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.61.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.62.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.63.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.64.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.65.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.66.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.67.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.68.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.69.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.7.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.70.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.71.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.72.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.73.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.74.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.75.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.76.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.77.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.78.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.79.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.8.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.80.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.81.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.82.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.83.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.84.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.85.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.86.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.87.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.88.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.89.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.9.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.90.woff2 +0 -0
- package/src/asset/font/pretendard/woff2-dynamic-subset/PretendardVariable.subset.91.woff2 +0 -0
- package/src/component/widget/navigation/_function/to-navigation-branch-id.ts +0 -6
- package/src/component/widget/navigation/_wg-navigation-branch-toggle.css +0 -28
- package/src/component/widget/navigation/_wg-navigation-branch-toggle.tsx +0 -48
- package/src/store/navigation/_constant/tree.ts +0 -6
- package/src/store/navigation/to-navigation-tree-state.ts +0 -19
- package/src/store/navigation/use-navigation-tree-store.ts +0 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "for-humanity",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Documents written for humans to read: a docs kit with a sidebar, parts, sections and flowcharts, built on Hono JSX",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"docs",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"korean"
|
|
12
12
|
],
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"author": "
|
|
14
|
+
"author": "nomeehej",
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
17
|
"url": "git+https://github.com/minu-ha/for-humanity.git"
|
|
@@ -86,5 +86,6 @@
|
|
|
86
86
|
"stylelint": "^17.15.0",
|
|
87
87
|
"stylelint-config-standard": "^40.0.0",
|
|
88
88
|
"typescript": "^7.0.2"
|
|
89
|
-
}
|
|
89
|
+
},
|
|
90
|
+
"packageManager": "pnpm@12.9.1+sha512.06b055fff5cd20dc12781de173ced3310ce0951bf2ec620211a16045d5444d5c93a663210764ef29a653a610459ba0368f0e74f84d80c54723cf95aae7bc0d6d"
|
|
90
91
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
Copyright
|
|
2
|
-
with Reserved Font Name Pretendard.
|
|
1
|
+
Copyright © 2017 IBM Corp. with Reserved Font Name "Plex"
|
|
3
2
|
|
|
4
3
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
|
|
5
|
+
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
-----------------------------------------------------------
|
|
@@ -19,7 +18,7 @@ with others.
|
|
|
19
18
|
|
|
20
19
|
The OFL allows the licensed fonts to be used, studied, modified and
|
|
21
20
|
redistributed freely as long as they are not sold by themselves. The
|
|
22
|
-
fonts, including any derivative works, can be bundled, embedded,
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
23
22
|
redistributed and/or sold with any software provided that any reserved
|
|
24
23
|
names are not used by derivative works. The fonts and derivatives,
|
|
25
24
|
however, cannot be released under any other type of license. The
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* IBM Plex Sans KR 1.003 · npm @ibm/plex-sans-kr 1.1.0 · https://github.com/IBM/plex
|
|
3
|
+
* 배포 WOFF2(fonts/complete/woff2/hinted) 원본 그대로 · 라이선스는 옆의 LICENSE.txt
|
|
4
|
+
* 본문의 한글 음절·호환 자모만 담당 · Monoplex KR 한글과 같은 글자의 원래 폭
|
|
5
|
+
*/
|
|
6
|
+
@font-face {
|
|
7
|
+
font-family: "IBM Plex Sans KR";
|
|
8
|
+
font-style: normal;
|
|
9
|
+
font-display: swap;
|
|
10
|
+
font-weight: 400;
|
|
11
|
+
src: url(./IBMPlexSansKR-Regular.woff2) format("woff2");
|
|
12
|
+
unicode-range: U+3131-318E, U+AC00-D7A3;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@font-face {
|
|
16
|
+
font-family: "IBM Plex Sans KR";
|
|
17
|
+
font-style: normal;
|
|
18
|
+
font-display: swap;
|
|
19
|
+
font-weight: 600;
|
|
20
|
+
src: url(./IBMPlexSansKR-SemiBold.woff2) format("woff2");
|
|
21
|
+
unicode-range: U+3131-318E, U+AC00-D7A3;
|
|
22
|
+
}
|
|
@@ -1,13 +1,42 @@
|
|
|
1
|
-
Copyright
|
|
1
|
+
Copyright (c) 2021, Kim Yangsu with Reserved Font Name "Monoplex"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Monoplex Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
The build recipe (https://github.com/y-kim/monoplex) and the build tool it drives,
|
|
5
|
+
hapchija (https://github.com/y-kim/hapchija), are licensed under the MIT License.
|
|
6
6
|
|
|
7
|
+
The fonts carry the copyrights below. Every one of them is licensed under the
|
|
8
|
+
SIL Open Font License, Version 1.1.
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
- Copyright © 2017 IBM Corp. with Reserved Font Name "Plex"
|
|
11
|
+
https://github.com/IBM/plex/
|
|
12
|
+
IBM Plex Mono, IBM Plex Sans KR, IBM Plex Sans JP, IBM Plex Sans TC and
|
|
13
|
+
IBM Plex Sans SC. Nearly every glyph comes from these.
|
|
14
|
+
|
|
15
|
+
- Copyright (c) 2021, Yuko Otawara with Reserved Font Name "PlemolJP"
|
|
16
|
+
https://github.com/yuru7/PlemolJP
|
|
17
|
+
The half-width box drawing and block glyphs, U+2500-U+259F. These were drawn
|
|
18
|
+
for PlemolJP; they are not IBM Plex outlines. The .sfd file that holds them
|
|
19
|
+
(source/AdjustedGlyphs/Box_Drawing_half.sfd) still names IBM Plex Sans JP in
|
|
20
|
+
its header because it was saved out of a working copy of that font, but the
|
|
21
|
+
outlines in it are original work.
|
|
22
|
+
|
|
23
|
+
- Copyright (c) 2014, Ryan L McIntyre (https://ryanlmcintyre.com)
|
|
24
|
+
https://github.com/ryanoasis/nerd-fonts
|
|
25
|
+
Nerd Font variants only. Those variants take icon glyphs, and nothing else,
|
|
26
|
+
from Blex Mono Nerd Font. The icon sets are the work of their own authors and
|
|
27
|
+
keep their own licenses; the upstream release does not restate them.
|
|
28
|
+
Pomicons (U+E000-E00A) are not included.
|
|
29
|
+
|
|
30
|
+
IBM Plex® is a trademark of IBM Corp, registered in many jurisdictions
|
|
31
|
+
worldwide. This notice is carried in the fonts' name table, as OFL FAQ 3.7 asks.
|
|
32
|
+
|
|
33
|
+
Special thanks to PlemolJP (https://github.com/yuru7/PlemolJP). Monoplex began
|
|
34
|
+
as a fork of its generate script, and this repository's history still starts
|
|
35
|
+
there. hapchija has since been rewritten and carries no PlemolJP code.
|
|
36
|
+
|
|
37
|
+
## SIL Open Font License
|
|
38
|
+
|
|
39
|
+
Version 1.1 - 26 February 2007
|
|
11
40
|
|
|
12
41
|
PREAMBLE
|
|
13
42
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
@@ -37,7 +66,7 @@ copyright statement(s).
|
|
|
37
66
|
distributed by the Copyright Holder(s).
|
|
38
67
|
|
|
39
68
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
-
or substituting
|
|
69
|
+
or substituting — in part or in whole — any of the components of the
|
|
41
70
|
Original Version, by changing formats or by porting the Font Software to a
|
|
42
71
|
new environment.
|
|
43
72
|
|
|
@@ -91,3 +120,27 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
|
91
120
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
121
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
122
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
## MIT License
|
|
126
|
+
|
|
127
|
+
Copyright (c) 2021 Kim Yangsu
|
|
128
|
+
|
|
129
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
130
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
131
|
+
in the Software without restriction, including without limitation the rights
|
|
132
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
133
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
134
|
+
furnished to do so, subject to the following conditions:
|
|
135
|
+
|
|
136
|
+
The above copyright notice and this permission notice shall be included in
|
|
137
|
+
all copies or substantial portions of the Software.
|
|
138
|
+
|
|
139
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
140
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
141
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
142
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
143
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
144
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
145
|
+
THE SOFTWARE.
|
|
146
|
+
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Monoplex KR 1.1.0 · https://github.com/y-kim/monoplex/releases/tag/monoplex-kr-1.1.0
|
|
3
|
+
* 릴리스 TTF를 서브셋 없이 WOFF2로만 압축 · OFL FAQ의 이름 유지 조건 · 라이선스는 옆의 LICENSE.md
|
|
4
|
+
* fonttools ttLib.woff2 compress MonoplexKR-Regular.ttf
|
|
5
|
+
*/
|
|
6
|
+
@font-face {
|
|
7
|
+
font-family: "Monoplex KR";
|
|
8
|
+
font-style: normal;
|
|
9
|
+
font-display: swap;
|
|
10
|
+
font-weight: 400;
|
|
11
|
+
src: url(./MonoplexKR-Regular.woff2) format("woff2");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@font-face {
|
|
15
|
+
font-family: "Monoplex KR";
|
|
16
|
+
font-style: normal;
|
|
17
|
+
font-display: swap;
|
|
18
|
+
font-weight: 600;
|
|
19
|
+
src: url(./MonoplexKR-SemiBold.woff2) format("woff2");
|
|
20
|
+
}
|
|
@@ -6,13 +6,11 @@ const navigationDocSchema: ZodMiniType<NavigationDoc> = object({
|
|
|
6
6
|
name: string(),
|
|
7
7
|
label: string(),
|
|
8
8
|
active: boolean(),
|
|
9
|
-
current: boolean(),
|
|
10
9
|
children: lazy(() => array(navigationDocSchema)),
|
|
11
10
|
});
|
|
12
11
|
const navigationGroupSchema: ZodMiniType<NavigationGroup> = object({
|
|
13
12
|
name: string(),
|
|
14
13
|
path: array(string()),
|
|
15
|
-
current: boolean(),
|
|
16
14
|
docs: array(navigationDocSchema),
|
|
17
15
|
groups: lazy(() => array(navigationGroupSchema)),
|
|
18
16
|
});
|
|
@@ -30,6 +28,5 @@ export const navigationDataSchema: ZodMiniType<NavigationData> = object({
|
|
|
30
28
|
sections: array(object({heading: headingSchema, part: optional(string()), subs: array(object({heading: headingSchema}))})).check(minLength(1)),
|
|
31
29
|
}),
|
|
32
30
|
),
|
|
33
|
-
pageId: string(),
|
|
34
31
|
home: boolean(),
|
|
35
32
|
});
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
export const navigation_mobile_query = "(width < 1024px)";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* 양쪽
|
|
7
|
+
* 양쪽 200px 탐색·간격 120px·최소 800px 본문과 스크롤바가 들어가는 3열 기준
|
|
8
8
|
*/
|
|
9
|
-
export const navigation_wide_query = "(width >=
|
|
9
|
+
export const navigation_wide_query = "(width >= 1360px)";
|
package/src/component/widget/navigation/_function/to-navigation-data/_to-navigation-document.ts
CHANGED
|
@@ -2,13 +2,12 @@ import type {DocBranch} from "@/component/widget/navigation/_type/doc-branch";
|
|
|
2
2
|
import type {NavigationDoc} from "@/component/widget/navigation/_type/navigation-data";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* 본문 없는 문서 가지 · 재귀에서도 현재 페이지 한 항목만 표시
|
|
6
6
|
*/
|
|
7
|
-
export const toNavigationDocument = (options: {doc: DocBranch; current?: string
|
|
7
|
+
export const toNavigationDocument = (options: {doc: DocBranch; current?: string}): NavigationDoc => ({
|
|
8
8
|
id: options.doc.id,
|
|
9
9
|
name: options.doc.data.name,
|
|
10
10
|
label: options.doc.data.label,
|
|
11
11
|
active: options.doc.id === options.current,
|
|
12
|
-
current: options.doc.id === options.current || options.ancestors.has(options.doc.id),
|
|
13
12
|
children: options.doc.children === undefined ? [] : options.doc.children.map((doc) => toNavigationDocument({...options, doc})),
|
|
14
13
|
});
|
package/src/component/widget/navigation/_function/to-navigation-data/_to-navigation-group.ts
CHANGED
|
@@ -3,12 +3,11 @@ import type {DocGroup} from "@/component/widget/navigation/_type/doc-group";
|
|
|
3
3
|
import type {NavigationGroup} from "@/component/widget/navigation/_type/navigation-data";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* 전체 묶음 경로와 본문 없는 하위 가지
|
|
6
|
+
* 전체 묶음 경로와 본문 없는 하위 가지
|
|
7
7
|
*/
|
|
8
|
-
export const toNavigationGroup = (options: {group: DocGroup; current?: string
|
|
8
|
+
export const toNavigationGroup = (options: {group: DocGroup; current?: string}): NavigationGroup => ({
|
|
9
9
|
name: options.group.name,
|
|
10
10
|
path: options.group.path,
|
|
11
|
-
|
|
12
|
-
docs: options.group.docs.map((doc) => toNavigationDocument({doc, current: options.current, ancestors: options.ancestors})),
|
|
11
|
+
docs: options.group.docs.map((doc) => toNavigationDocument({doc, current: options.current})),
|
|
13
12
|
groups: options.group.groups.map((group) => toNavigationGroup({...options, group})),
|
|
14
13
|
});
|
|
@@ -9,17 +9,9 @@ import type {SiteConfig} from "@/type/site-config";
|
|
|
9
9
|
/**
|
|
10
10
|
* 현재 문서의 이름·계층·목차만 전송 · 다른 문서 본문은 브라우저 탐색 입력에서 제외
|
|
11
11
|
*/
|
|
12
|
-
export const toNavigationData = (options: {site: SiteConfig; docs: Doc[]; current?: string; outline?: DocOutline}): NavigationData => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
groups: toDocGroups({docs: options.docs, navigation: options.site.navigation}).map((group) =>
|
|
19
|
-
toNavigationGroup({group, current: options.current, ancestors, currentGroup: currentDoc?.data.group}),
|
|
20
|
-
),
|
|
21
|
-
outline: options.outline === undefined ? [] : toTocGroups(options.outline),
|
|
22
|
-
pageId: options.current === undefined ? "/" : options.current,
|
|
23
|
-
home: options.current === undefined,
|
|
24
|
-
};
|
|
25
|
-
};
|
|
12
|
+
export const toNavigationData = (options: {site: SiteConfig; docs: Doc[]; current?: string; outline?: DocOutline}): NavigationData => ({
|
|
13
|
+
title: options.site.title,
|
|
14
|
+
groups: toDocGroups({docs: options.docs, navigation: options.site.navigation}).map((group) => toNavigationGroup({group, current: options.current})),
|
|
15
|
+
outline: options.outline === undefined ? [] : toTocGroups(options.outline),
|
|
16
|
+
home: options.current === undefined,
|
|
17
|
+
});
|
|
@@ -20,10 +20,6 @@ export interface NavigationDoc {
|
|
|
20
20
|
* 현재 페이지 한 항목만 강조
|
|
21
21
|
*/
|
|
22
22
|
active: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* 현재 문서와 조상의 트리 경로
|
|
25
|
-
*/
|
|
26
|
-
current: boolean;
|
|
27
23
|
/**
|
|
28
24
|
* 클릭 가능한 하위 문서
|
|
29
25
|
*/
|
|
@@ -42,10 +38,6 @@ export interface NavigationGroup {
|
|
|
42
38
|
* 최상위부터 현재 묶음까지
|
|
43
39
|
*/
|
|
44
40
|
path: string[];
|
|
45
|
-
/**
|
|
46
|
-
* 현재 페이지가 속한 묶음 경로
|
|
47
|
-
*/
|
|
48
|
-
current: boolean;
|
|
49
41
|
/**
|
|
50
42
|
* 현재 단계의 문서
|
|
51
43
|
*/
|
|
@@ -72,10 +64,6 @@ export interface NavigationData {
|
|
|
72
64
|
* 현재 페이지의 목차
|
|
73
65
|
*/
|
|
74
66
|
outline: TocGroup[];
|
|
75
|
-
/**
|
|
76
|
-
* 목차의 접힘 상태를 구분할 문서 id
|
|
77
|
-
*/
|
|
78
|
-
pageId: string;
|
|
79
67
|
/**
|
|
80
68
|
* README 홈 여부
|
|
81
69
|
*/
|
|
@@ -1,179 +1,48 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* 재귀 문서 목록 · 단계별
|
|
2
|
+
* 재귀 문서 목록 · 단계별 들여쓰기
|
|
3
3
|
*/
|
|
4
4
|
.wg_navigationNavList__root {
|
|
5
|
-
margin: 0
|
|
5
|
+
margin: 0;
|
|
6
6
|
padding: 0;
|
|
7
7
|
list-style: none;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
.wg_navigationNavList__branch {
|
|
11
|
-
/* 하위 묶음도 문서와 같은 첫 줄 기준으로 가지 연결 */
|
|
12
|
-
position: relative;
|
|
13
11
|
display: block;
|
|
14
|
-
padding: var(--app-space-tree-row) 0
|
|
12
|
+
padding: var(--app-space-tree-row) 0;
|
|
15
13
|
color: var(--app-color-text-muted);
|
|
16
14
|
font-size: var(--app-font-size-group);
|
|
17
15
|
line-height: calc(var(--app-font-size-dense) * var(--app-line-height-tight));
|
|
18
16
|
overflow-wrap: anywhere;
|
|
19
|
-
|
|
20
|
-
&::before {
|
|
21
|
-
position: absolute;
|
|
22
|
-
top: calc(0.5lh + var(--app-space-tree-row));
|
|
23
|
-
left: 0;
|
|
24
|
-
width: var(--app-space-tree-indent);
|
|
25
|
-
border-top: 1px solid var(--app-color-border-soft);
|
|
26
|
-
content: "";
|
|
27
|
-
pointer-events: none;
|
|
28
|
-
}
|
|
29
17
|
}
|
|
30
18
|
|
|
31
19
|
.wg_navigationNavList__link {
|
|
32
|
-
/* 가로 가지는 링크 첫 줄 기준 · 여러 줄 제목에서도 연결 위치 유지 */
|
|
33
|
-
position: relative;
|
|
34
20
|
display: block;
|
|
35
|
-
padding: var(--app-space-tree-row) 0
|
|
21
|
+
padding: var(--app-space-tree-row) 0;
|
|
36
22
|
color: var(--app-color-link);
|
|
37
23
|
font-size: var(--app-font-size-dense);
|
|
38
24
|
line-height: var(--app-line-height-tight);
|
|
39
25
|
text-decoration: none;
|
|
40
26
|
overflow-wrap: anywhere;
|
|
41
27
|
|
|
42
|
-
&::before {
|
|
43
|
-
position: absolute;
|
|
44
|
-
top: calc(0.5lh + var(--app-space-tree-row));
|
|
45
|
-
left: 0;
|
|
46
|
-
width: var(--app-space-tree-indent);
|
|
47
|
-
border-top: 1px solid var(--app-color-border-soft);
|
|
48
|
-
content: "";
|
|
49
|
-
pointer-events: none;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
28
|
&:where(:hover) {
|
|
53
29
|
text-decoration: underline;
|
|
54
30
|
}
|
|
55
31
|
|
|
56
|
-
|
|
57
|
-
border-top-color: currentcolor;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* hover와 같은 밑줄·가지선으로 키보드 위치 표시 */
|
|
32
|
+
/* hover와 같은 밑줄로 키보드 위치 표시 */
|
|
61
33
|
&:where(:focus-visible) {
|
|
62
34
|
outline: none;
|
|
63
35
|
text-decoration: underline;
|
|
64
36
|
}
|
|
65
|
-
|
|
66
|
-
&:where(:focus-visible)::before {
|
|
67
|
-
border-top-color: currentcolor;
|
|
68
|
-
}
|
|
69
37
|
}
|
|
70
38
|
|
|
71
39
|
.wg_navigationNavList__link--active {
|
|
72
40
|
color: var(--app-color-link);
|
|
73
41
|
font-weight: var(--app-font-weight-active);
|
|
74
|
-
|
|
75
|
-
&::before {
|
|
76
|
-
border-top-color: currentcolor;
|
|
77
|
-
}
|
|
78
42
|
}
|
|
79
43
|
|
|
80
44
|
.wg_navigationNavList__item {
|
|
81
|
-
/* 하위 목록을 포함해 다음 형제까지 줄기 연결 */
|
|
82
|
-
display: flow-root;
|
|
83
|
-
|
|
84
|
-
/* 세로 줄기는 각 항목 기준 · 마지막 항목의 첫 줄 가운데에서 종료 */
|
|
85
|
-
position: relative;
|
|
86
|
-
|
|
87
|
-
&:has(> .wg_navigationBranchToggle__root) > .wg_navigationNavList__link {
|
|
88
|
-
padding-inline-end: calc(var(--app-size-tree-toggle) + var(--app-space-inline));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
&:has(> .wg_navigationBranchToggle__root) > .wg_navigationNavList__branch {
|
|
92
|
-
padding-inline-end: calc(var(--app-size-tree-toggle) + var(--app-space-inline));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
&::before {
|
|
96
|
-
position: absolute;
|
|
97
|
-
top: 0;
|
|
98
|
-
bottom: 0;
|
|
99
|
-
left: 0;
|
|
100
|
-
border-left: 1px solid var(--app-color-border-soft);
|
|
101
|
-
content: "";
|
|
102
|
-
pointer-events: none;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
&:where(:last-child)::before {
|
|
106
|
-
bottom: auto;
|
|
107
|
-
height: calc(0.5lh + var(--app-space-tree-row));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/* hover·키보드 포커스의 도착점 · 첫 줄 아래는 기본 줄기 유지 */
|
|
111
|
-
&::after {
|
|
112
|
-
position: absolute;
|
|
113
|
-
top: 0;
|
|
114
|
-
left: 0;
|
|
115
|
-
height: calc(0.5lh + var(--app-space-tree-row));
|
|
116
|
-
border-left: 1px solid transparent;
|
|
117
|
-
content: "";
|
|
118
|
-
pointer-events: none;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
&:where(:hover)::after {
|
|
122
|
-
border-left-color: var(--app-color-link);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
&:where(:has(:focus-visible))::after {
|
|
126
|
-
border-left-color: var(--app-color-link);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/* 뒤 항목까지의 세로 경로 · 같은 목록의 형제 안에서만 연결 */
|
|
130
|
-
&:where(:has(~ .wg_navigationNavList__item:hover))::before {
|
|
131
|
-
border-left-color: var(--app-color-link);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
&:where(:has(~ .wg_navigationNavList__item :focus-visible))::before {
|
|
135
|
-
border-left-color: var(--app-color-link);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
45
|
& > .wg_navigationNavList__root {
|
|
139
46
|
margin-left: var(--app-space-tree-indent);
|
|
140
47
|
}
|
|
141
|
-
|
|
142
|
-
/* 하위 문서를 탐색할 때 조상 묶음의 가지도 함께 연결 */
|
|
143
|
-
&:where(:hover) > .wg_navigationNavList__branch::before {
|
|
144
|
-
border-top-color: var(--app-color-link);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
&:where(:has(:focus-visible)) > .wg_navigationNavList__branch::before {
|
|
148
|
-
border-top-color: var(--app-color-link);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/* 자식 문서를 탐색할 때 클릭 가능한 부모 문서의 가지도 연결 */
|
|
152
|
-
&:where(:hover) > .wg_navigationNavList__link::before {
|
|
153
|
-
border-top-color: var(--app-color-link);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
&:where(:has(:focus-visible)) > .wg_navigationNavList__link::before {
|
|
157
|
-
border-top-color: var(--app-color-link);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.wg_navigationNavList__item--trail {
|
|
162
|
-
&::before {
|
|
163
|
-
border-left-color: var(--app-color-link);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
.wg_navigationNavList__item--current {
|
|
168
|
-
&::after {
|
|
169
|
-
border-left-color: var(--app-color-link);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
& > .wg_navigationNavList__branch::before {
|
|
173
|
-
border-top-color: var(--app-color-link);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
& > .wg_navigationNavList__link::before {
|
|
177
|
-
border-top-color: var(--app-color-link);
|
|
178
|
-
}
|
|
179
48
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import clsx from "clsx";
|
|
2
2
|
import {Fragment} from "hono/jsx";
|
|
3
|
-
import {toNavigationBranchId} from "@/component/widget/navigation/_function/to-navigation-branch-id";
|
|
4
3
|
import type {NavigationGroup} from "@/component/widget/navigation/_type/navigation-data";
|
|
5
|
-
import {WgNavigationBranchToggle} from "@/component/widget/navigation/_wg-navigation-branch-toggle";
|
|
6
4
|
import "./_wg-navigation-nav-list.css";
|
|
7
5
|
|
|
8
6
|
/**
|
|
@@ -13,80 +11,38 @@ export interface WgNavigationNavListProps {
|
|
|
13
11
|
* 현재 단계의 문서와 하위 묶음
|
|
14
12
|
*/
|
|
15
13
|
group: NavigationGroup;
|
|
16
|
-
/**
|
|
17
|
-
* 사용자가 접은 가지
|
|
18
|
-
*/
|
|
19
|
-
collapsed: Record<string, boolean>;
|
|
20
|
-
/**
|
|
21
|
-
* 브라우저에서 가지 선택 변경
|
|
22
|
-
*/
|
|
23
|
-
onToggle?: (key: string) => void;
|
|
24
|
-
/**
|
|
25
|
-
* 부모 버튼과 연결할 가지 키 · 루트 묶음·문서 모두 같은 규칙 사용
|
|
26
|
-
*/
|
|
27
|
-
branchKey: string;
|
|
28
14
|
}
|
|
29
15
|
|
|
30
16
|
export const WgNavigationNavList = (props: WgNavigationNavListProps) => {
|
|
31
17
|
const entries = [
|
|
32
|
-
...props.group.docs.map((doc) => {
|
|
33
|
-
|
|
34
|
-
return {kind: "document" as const, key: `doc:${doc.id}`, doc, active, current: doc.current};
|
|
35
|
-
}),
|
|
36
|
-
...props.group.groups.map((group) => ({
|
|
37
|
-
kind: "group" as const,
|
|
38
|
-
key: `group:${JSON.stringify(group.path)}`,
|
|
39
|
-
group,
|
|
40
|
-
current: group.current,
|
|
41
|
-
})),
|
|
18
|
+
...props.group.docs.map((doc) => ({kind: "document" as const, key: `doc:${doc.id}`, doc})),
|
|
19
|
+
...props.group.groups.map((group) => ({kind: "group" as const, key: `group:${JSON.stringify(group.path)}`, group})),
|
|
42
20
|
];
|
|
43
|
-
const currentIndex = entries.findIndex((entry) => entry.current);
|
|
44
21
|
|
|
45
22
|
return (
|
|
46
|
-
<ul
|
|
47
|
-
className={clsx("wg_navigationNavList__root")}
|
|
48
|
-
aria-label={props.group.name}
|
|
49
|
-
id={toNavigationBranchId(props.branchKey)}
|
|
50
|
-
hidden={props.collapsed[props.branchKey] === true}
|
|
51
|
-
>
|
|
23
|
+
<ul className={clsx("wg_navigationNavList__root")} aria-label={props.group.name}>
|
|
52
24
|
{/**
|
|
53
|
-
*
|
|
25
|
+
* 문서 링크는 원래 파일 URL 사용
|
|
54
26
|
*/}
|
|
55
|
-
{entries.map((entry
|
|
56
|
-
<li
|
|
57
|
-
className={clsx("wg_navigationNavList__item", {
|
|
58
|
-
"wg_navigationNavList__item--trail": index < currentIndex,
|
|
59
|
-
"wg_navigationNavList__item--current": entry.current,
|
|
60
|
-
})}
|
|
61
|
-
key={entry.key}
|
|
62
|
-
>
|
|
27
|
+
{entries.map((entry) => (
|
|
28
|
+
<li className={clsx("wg_navigationNavList__item")} key={entry.key}>
|
|
63
29
|
{/**
|
|
64
30
|
* 문서 링크 · 부모도 독립 페이지, 현재 한 문서에만 페이지 상태 부여
|
|
65
31
|
*/}
|
|
66
32
|
{entry.kind === "document" && (
|
|
67
33
|
<Fragment>
|
|
68
34
|
<a
|
|
69
|
-
className={clsx("wg_navigationNavList__link", {"wg_navigationNavList__link--active": entry.active})}
|
|
35
|
+
className={clsx("wg_navigationNavList__link", {"wg_navigationNavList__link--active": entry.doc.active})}
|
|
70
36
|
href={`/${entry.doc.id}/`}
|
|
71
37
|
title={entry.doc.label}
|
|
72
|
-
aria-current={entry.active ? "page" : undefined}
|
|
38
|
+
aria-current={entry.doc.active ? "page" : undefined}
|
|
73
39
|
>
|
|
74
40
|
{entry.doc.name}
|
|
75
41
|
</a>
|
|
76
42
|
{/**
|
|
77
43
|
* 하위 문서 · 부모 아래에서도 기존 목록의 들여쓰기와 키보드 이동 유지
|
|
78
44
|
*/}
|
|
79
|
-
{entry.doc.children.length > 0 &&
|
|
80
|
-
<WgNavigationBranchToggle branchKey={entry.key} label={entry.doc.name} collapsed={props.collapsed} onToggle={props.onToggle} />
|
|
81
|
-
)}
|
|
82
|
-
{entry.doc.children.length > 0 && (
|
|
83
|
-
<WgNavigationNavList
|
|
84
|
-
group={{name: entry.doc.name, path: props.group.path, current: entry.current, docs: entry.doc.children, groups: []}}
|
|
85
|
-
collapsed={props.collapsed}
|
|
86
|
-
onToggle={props.onToggle}
|
|
87
|
-
branchKey={entry.key}
|
|
88
|
-
/>
|
|
89
|
-
)}
|
|
45
|
+
{entry.doc.children.length > 0 && <WgNavigationNavList group={{name: entry.doc.name, path: props.group.path, docs: entry.doc.children, groups: []}} />}
|
|
90
46
|
</Fragment>
|
|
91
47
|
)}
|
|
92
48
|
{/**
|
|
@@ -95,8 +51,7 @@ export const WgNavigationNavList = (props: WgNavigationNavListProps) => {
|
|
|
95
51
|
{entry.kind === "group" && (
|
|
96
52
|
<Fragment>
|
|
97
53
|
<span className={clsx("wg_navigationNavList__branch")}>{entry.group.name}</span>
|
|
98
|
-
<
|
|
99
|
-
<WgNavigationNavList group={entry.group} collapsed={props.collapsed} onToggle={props.onToggle} branchKey={entry.key} />
|
|
54
|
+
<WgNavigationNavList group={entry.group} />
|
|
100
55
|
</Fragment>
|
|
101
56
|
)}
|
|
102
57
|
</li>
|
|
@@ -9,19 +9,13 @@
|
|
|
9
9
|
.wg_navigationNav__docs {
|
|
10
10
|
display: flex;
|
|
11
11
|
flex-direction: column;
|
|
12
|
-
gap: var(--app-space-
|
|
12
|
+
gap: var(--app-space-tree-group);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.wg_navigationNav__group {
|
|
16
|
-
|
|
17
|
-
margin: 0 0 4px;
|
|
16
|
+
margin: 0 0 var(--app-space-tree-label);
|
|
18
17
|
color: var(--app-color-text-muted);
|
|
19
18
|
font-size: var(--app-font-size-group);
|
|
20
19
|
line-height: calc(var(--app-font-size-dense) * var(--app-line-height-tight));
|
|
21
20
|
text-box: trim-start cap alphabetic;
|
|
22
21
|
}
|
|
23
|
-
|
|
24
|
-
.wg_navigationNav__docGroup {
|
|
25
|
-
/* 묶음 접기 버튼의 첫 행 기준 */
|
|
26
|
-
position: relative;
|
|
27
|
-
}
|