@youtyan/code-viewer 0.12.0 → 0.13.0
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/README.md +14 -0
- package/dist/code-viewer.js +1515 -246
- package/package.json +1 -1
- package/web/app.js +2178 -328
- package/web/index.html +5 -0
- package/web/style.css +335 -39
package/web/index.html
CHANGED
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
<a class="app-menu-item active" data-route="repo" href="/">Repository</a>
|
|
32
32
|
<a class="app-menu-item" data-route="diff" href="/todif?from=HEAD&to=worktree">Diff Viewer</a>
|
|
33
33
|
<a class="app-menu-item" data-route="history" href="/history">History</a>
|
|
34
|
+
<a class="app-menu-item" data-route="worktree" href="/worktree">Worktrees</a>
|
|
34
35
|
<a class="app-menu-item" data-route="journal" href="/journal">Work Log</a>
|
|
35
36
|
<a class="app-menu-item" data-route="database" href="/database">Datastores</a>
|
|
36
37
|
<span class="global-actions-sep app-menu-sep" aria-hidden="true"></span>
|
|
@@ -109,6 +110,10 @@
|
|
|
109
110
|
|
|
110
111
|
<aside id="history-panel" hidden></aside>
|
|
111
112
|
<div id="history-resizer" aria-hidden="true"></div>
|
|
113
|
+
<!-- 作業ツリー画面の一覧。中身は worktree-view が入れる。見た目は
|
|
114
|
+
#history-panel と同じ規則を共有している。変更ファイルは Repository と
|
|
115
|
+
同じ #sidebar、差分は #diff を使うので、増える箱はこれだけ。 -->
|
|
116
|
+
<aside id="worktree-panel" hidden></aside>
|
|
112
117
|
<aside id="sidebar">
|
|
113
118
|
<div class="sb-head">
|
|
114
119
|
<span class="sb-title">Files</span>
|
package/web/style.css
CHANGED
|
@@ -1523,7 +1523,10 @@ body.gdp-diff-page #repo-target-wrap {
|
|
|
1523
1523
|
.gdp-banner-dismiss:hover { color: var(--fg); }
|
|
1524
1524
|
|
|
1525
1525
|
/* ===== Commit history panel ===== */
|
|
1526
|
-
|
|
1526
|
+
/* 作業ツリー画面の 2 枚のパネルも同じ箱を使う。位置だけ Worktrees セクションで
|
|
1527
|
+
上書きし、見た目はここ 1 箇所で決まる。 */
|
|
1528
|
+
#history-panel,
|
|
1529
|
+
#worktree-panel {
|
|
1527
1530
|
display: none;
|
|
1528
1531
|
position: fixed;
|
|
1529
1532
|
left: 0;
|
|
@@ -1563,7 +1566,9 @@ body.gdp-history-page #repo-target-wrap {
|
|
|
1563
1566
|
background: transparent;
|
|
1564
1567
|
transition: background 0.12s;
|
|
1565
1568
|
}
|
|
1566
|
-
|
|
1569
|
+
/* 一覧パネルを持つページ (data-history-list-panel。履歴・作業ツリー) でだけ
|
|
1570
|
+
つまみを出す。 */
|
|
1571
|
+
body[data-history-list-panel] #history-resizer {
|
|
1567
1572
|
display: block;
|
|
1568
1573
|
}
|
|
1569
1574
|
#history-resizer:hover,
|
|
@@ -1576,7 +1581,8 @@ body.gdp-history-resizing #history-resizer {
|
|
|
1576
1581
|
body.gdp-history-page #topbar .ref-pickers {
|
|
1577
1582
|
display: none;
|
|
1578
1583
|
}
|
|
1579
|
-
#history-panel[hidden]
|
|
1584
|
+
#history-panel[hidden],
|
|
1585
|
+
#worktree-panel[hidden] {
|
|
1580
1586
|
display: none !important;
|
|
1581
1587
|
}
|
|
1582
1588
|
.history-head {
|
|
@@ -7855,6 +7861,313 @@ body.gdp-database-page #load-bar {
|
|
|
7855
7861
|
top: var(--global-header-h);
|
|
7856
7862
|
}
|
|
7857
7863
|
|
|
7864
|
+
/* ============================================================
|
|
7865
|
+
Worktrees
|
|
7866
|
+
============================================================ */
|
|
7867
|
+
|
|
7868
|
+
/* 骨格は History と同じ。左の一覧は #history-panel と同じ箱 (セレクタに
|
|
7869
|
+
#worktree-panel を足してある)、中央は Repository と同じ #sidebar の
|
|
7870
|
+
ファイル一覧、右は #diff の差分カード。行の見た目 (.history-item /
|
|
7871
|
+
.subject / .meta2 / .tree-file / .badge / .name / .gdp-file-shell) も
|
|
7872
|
+
全部そのまま使うので、この画面のために作る見た目は下の配置だけ。 */
|
|
7873
|
+
|
|
7874
|
+
/* --chrome-h は上書きしない。この画面は History と同じく上部バーを出すので、
|
|
7875
|
+
基底の「ヘッダ + 上部バー」がそのまま正しい。ヘッダだけに縮めると、
|
|
7876
|
+
左右のパネルと本文が上部バーの下に潜り込む。 */
|
|
7877
|
+
|
|
7878
|
+
body.gdp-worktree-page #query-history-panel {
|
|
7879
|
+
display: none !important;
|
|
7880
|
+
}
|
|
7881
|
+
|
|
7882
|
+
/* topbar は出す。統合 / 分割・空白・構文・テスト非表示は、この画面の差分にも
|
|
7883
|
+
そのまま効く。from/to のピッカーだけは Diff ビューアのもので、ここでは
|
|
7884
|
+
比較する対象を作業ツリー側が決めるので出さない (History と同じ扱い)。 */
|
|
7885
|
+
body.gdp-worktree-page #topbar .ref-pickers {
|
|
7886
|
+
display: none;
|
|
7887
|
+
}
|
|
7888
|
+
|
|
7889
|
+
body.gdp-worktree-page #worktree-panel {
|
|
7890
|
+
display: flex;
|
|
7891
|
+
}
|
|
7892
|
+
|
|
7893
|
+
/* 以下 4 つは History 画面と同じ並べ方 (左パネル → サイドバー → 本文)。 */
|
|
7894
|
+
body.gdp-worktree-page #sidebar {
|
|
7895
|
+
left: var(--history-w);
|
|
7896
|
+
}
|
|
7897
|
+
|
|
7898
|
+
body.gdp-worktree-page main#content {
|
|
7899
|
+
margin-left: calc(var(--history-w) + var(--sidebar-w));
|
|
7900
|
+
}
|
|
7901
|
+
|
|
7902
|
+
body.gdp-worktree-page.gdp-sidebar-hidden main#content {
|
|
7903
|
+
margin-left: var(--history-w);
|
|
7904
|
+
}
|
|
7905
|
+
|
|
7906
|
+
body.gdp-worktree-page #sidebar-resizer {
|
|
7907
|
+
left: calc(var(--history-w) + var(--sidebar-w) - 4px);
|
|
7908
|
+
}
|
|
7909
|
+
|
|
7910
|
+
/* サイドバーで意味を持たないのは「対象 ref」だけ。ツリー / 一覧の切替と
|
|
7911
|
+
全展開・全折りたたみはこの画面でも効く。 */
|
|
7912
|
+
body.gdp-worktree-page #repo-target-wrap {
|
|
7913
|
+
display: none !important;
|
|
7914
|
+
}
|
|
7915
|
+
|
|
7916
|
+
/* 頭のボタンは残り幅の右端に寄せる。 */
|
|
7917
|
+
body.gdp-worktree-page .history-head .worktree-head-btn:first-of-type {
|
|
7918
|
+
margin-left: auto;
|
|
7919
|
+
}
|
|
7920
|
+
|
|
7921
|
+
/* 基準ブランチへそのまま入らない作業ツリーだけ、一覧の中で色を変える。
|
|
7922
|
+
.history-item.active と同じ左罫線の仕組みに乗る。 */
|
|
7923
|
+
.history-item.worktree-conflict {
|
|
7924
|
+
border-left-color: var(--danger);
|
|
7925
|
+
}
|
|
7926
|
+
|
|
7927
|
+
/* 未コミット / コミット済み の区切り。ファイル行ではないので、ツリーの
|
|
7928
|
+
省略ルールから外して 1 行の見出しとして出す。 */
|
|
7929
|
+
#filelist .worktree-file-group,
|
|
7930
|
+
#filelist.tree .worktree-file-group {
|
|
7931
|
+
/* #filelist の li は flex 前提なので、文字だけの見出しは block に戻す。
|
|
7932
|
+
flex のままだと匿名アイテムになって幅を持てず、日本語が縦に潰れる。 */
|
|
7933
|
+
display: block;
|
|
7934
|
+
padding: 8px 12px 2px;
|
|
7935
|
+
color: var(--fg-muted);
|
|
7936
|
+
font-size: 11px;
|
|
7937
|
+
white-space: nowrap;
|
|
7938
|
+
cursor: default;
|
|
7939
|
+
}
|
|
7940
|
+
|
|
7941
|
+
/* 他の作業ツリーも触っているファイル。何本と重なっているかを行末の数で出す。
|
|
7942
|
+
ファイル名の色は変えない (重なりが多いと一覧がまるごと染まるため)。
|
|
7943
|
+
誰と重なっているかは title に入る。 */
|
|
7944
|
+
.worktree-overlap-count {
|
|
7945
|
+
color: var(--attn);
|
|
7946
|
+
font-weight: 600;
|
|
7947
|
+
}
|
|
7948
|
+
|
|
7949
|
+
.worktree-overlap-count::before {
|
|
7950
|
+
content: "⇄";
|
|
7951
|
+
margin-right: 2px;
|
|
7952
|
+
font-weight: 400;
|
|
7953
|
+
}
|
|
7954
|
+
|
|
7955
|
+
/* .meta2 の子は長いと行を横に押し広げる。ブランチ名は自由長なので、
|
|
7956
|
+
溢れるなら省略する (履歴画面の行も同じクラス)。 */
|
|
7957
|
+
.history-item .meta2 > span {
|
|
7958
|
+
min-width: 0;
|
|
7959
|
+
overflow: hidden;
|
|
7960
|
+
text-overflow: ellipsis;
|
|
7961
|
+
white-space: nowrap;
|
|
7962
|
+
}
|
|
7963
|
+
|
|
7964
|
+
/* 作業ツリー行の 1 段目: 名前と状態バッジを両端に。 */
|
|
7965
|
+
.history-item .worktree-row-head {
|
|
7966
|
+
display: flex;
|
|
7967
|
+
align-items: baseline;
|
|
7968
|
+
gap: 8px;
|
|
7969
|
+
}
|
|
7970
|
+
.history-item .worktree-row-head .subject {
|
|
7971
|
+
flex: 1 1 auto;
|
|
7972
|
+
min-width: 0;
|
|
7973
|
+
}
|
|
7974
|
+
.worktree-row-badges {
|
|
7975
|
+
flex: 0 1 auto;
|
|
7976
|
+
min-width: 0;
|
|
7977
|
+
overflow: hidden;
|
|
7978
|
+
text-overflow: ellipsis;
|
|
7979
|
+
white-space: nowrap;
|
|
7980
|
+
color: var(--fg-muted);
|
|
7981
|
+
font-size: var(--ui-font-sm);
|
|
7982
|
+
}
|
|
7983
|
+
|
|
7984
|
+
/* 2 段目のフォルダの場所。パスは末尾が肝心なので、長いときは頭側を省略する。
|
|
7985
|
+
direction: rtl は #filelist li .name と同じ手で、::before の LRM
|
|
7986
|
+
(U+200E) まで込みで 1 組。これが無いと、末尾が記号で終わるパスで並びが
|
|
7987
|
+
崩れる。 */
|
|
7988
|
+
.worktree-row-path {
|
|
7989
|
+
display: block;
|
|
7990
|
+
direction: rtl;
|
|
7991
|
+
text-align: left;
|
|
7992
|
+
overflow: hidden;
|
|
7993
|
+
text-overflow: ellipsis;
|
|
7994
|
+
white-space: nowrap;
|
|
7995
|
+
color: var(--fg-muted);
|
|
7996
|
+
font-size: var(--ui-font-sm);
|
|
7997
|
+
margin-top: 2px;
|
|
7998
|
+
}
|
|
7999
|
+
.worktree-row-path::before {
|
|
8000
|
+
content: "\200E";
|
|
8001
|
+
}
|
|
8002
|
+
|
|
8003
|
+
/* 4 段目に添える「取り込むコマンドをコピー」。文字側 (.author) だけが縮んで
|
|
8004
|
+
省略されるように、ボタンは縮ませない。 */
|
|
8005
|
+
.history-item .meta2 > .gdp-copy-path {
|
|
8006
|
+
flex: 0 0 auto;
|
|
8007
|
+
align-self: center;
|
|
8008
|
+
}
|
|
8009
|
+
|
|
8010
|
+
/* 行の右端の「…」。押すまで操作は 1 つも出さない。
|
|
8011
|
+
ボタンを行に並べると、選んだ瞬間にクリックした場所へ現れて誤爆する。
|
|
8012
|
+
一覧の上に固定すると、今度は削除が画面で一番目立つ場所に居座る。
|
|
8013
|
+
開くまで何も出さないメニューなら、どちらも起きない。 */
|
|
8014
|
+
.worktree-row-menu {
|
|
8015
|
+
flex: 0 0 auto;
|
|
8016
|
+
display: inline-flex;
|
|
8017
|
+
align-items: center;
|
|
8018
|
+
justify-content: center;
|
|
8019
|
+
width: 22px;
|
|
8020
|
+
height: 22px;
|
|
8021
|
+
padding: 0;
|
|
8022
|
+
border: 0;
|
|
8023
|
+
border-radius: 4px;
|
|
8024
|
+
background: none;
|
|
8025
|
+
color: var(--fg-muted);
|
|
8026
|
+
cursor: pointer;
|
|
8027
|
+
/* 行を選んでも消えない。位置が動かないので押し間違えない。 */
|
|
8028
|
+
opacity: 0.55;
|
|
8029
|
+
transition: opacity 0.12s, background 0.12s;
|
|
8030
|
+
}
|
|
8031
|
+
|
|
8032
|
+
.worktree-row-menu:hover,
|
|
8033
|
+
.worktree-row-menu:focus-visible {
|
|
8034
|
+
opacity: 1;
|
|
8035
|
+
background: var(--bg-soft);
|
|
8036
|
+
}
|
|
8037
|
+
|
|
8038
|
+
.history-item.active .worktree-row-menu {
|
|
8039
|
+
opacity: 1;
|
|
8040
|
+
}
|
|
8041
|
+
|
|
8042
|
+
/* メニューの区切り。取り返しのつかない操作を、よく使う操作と続けて置かない。 */
|
|
8043
|
+
.gdp-context-menu-sep {
|
|
8044
|
+
margin: 4px 2px;
|
|
8045
|
+
border: 0;
|
|
8046
|
+
border-top: 1px solid var(--border);
|
|
8047
|
+
}
|
|
8048
|
+
|
|
8049
|
+
/* 変更がまだ無い作業ツリーの案内 (右ペイン)。次にやることをその場に置く。 */
|
|
8050
|
+
.worktree-empty-diff .worktree-empty-diff-actions {
|
|
8051
|
+
display: inline-flex;
|
|
8052
|
+
gap: 8px;
|
|
8053
|
+
margin-top: 8px;
|
|
8054
|
+
}
|
|
8055
|
+
|
|
8056
|
+
/* まだ 1 本も作っていないときの説明カード (右ペイン)。 */
|
|
8057
|
+
.worktree-intro {
|
|
8058
|
+
padding: 24px;
|
|
8059
|
+
max-width: 46em;
|
|
8060
|
+
line-height: 1.7;
|
|
8061
|
+
color: var(--fg-muted);
|
|
8062
|
+
font-size: var(--ui-font-base);
|
|
8063
|
+
}
|
|
8064
|
+
.worktree-intro-title {
|
|
8065
|
+
color: var(--fg);
|
|
8066
|
+
font-weight: 600;
|
|
8067
|
+
font-size: var(--ui-font-md);
|
|
8068
|
+
margin-bottom: 4px;
|
|
8069
|
+
}
|
|
8070
|
+
.worktree-intro p {
|
|
8071
|
+
margin: 0 0 10px;
|
|
8072
|
+
}
|
|
8073
|
+
.worktree-intro button {
|
|
8074
|
+
margin-top: 4px;
|
|
8075
|
+
}
|
|
8076
|
+
|
|
8077
|
+
/* ⇄ の意味。重なりが 1 件も無いときは出さない。 */
|
|
8078
|
+
#filelist .worktree-overlap-legend {
|
|
8079
|
+
display: block;
|
|
8080
|
+
padding: 8px 12px 2px;
|
|
8081
|
+
color: var(--fg-muted);
|
|
8082
|
+
font-size: 11px;
|
|
8083
|
+
cursor: default;
|
|
8084
|
+
}
|
|
8085
|
+
|
|
8086
|
+
/* 追加 / 削除ダイアログの中身。データストアの接続ダイアログ
|
|
8087
|
+
(.db-connection-form) と同じで、入力欄そのものは共通の
|
|
8088
|
+
.gdp-dialog-input を使い、並べ方だけをここで決める。 */
|
|
8089
|
+
.worktree-form {
|
|
8090
|
+
display: flex;
|
|
8091
|
+
flex-direction: column;
|
|
8092
|
+
gap: 10px;
|
|
8093
|
+
min-width: 340px;
|
|
8094
|
+
margin-top: 6px;
|
|
8095
|
+
}
|
|
8096
|
+
|
|
8097
|
+
.worktree-field {
|
|
8098
|
+
display: flex;
|
|
8099
|
+
flex-direction: column;
|
|
8100
|
+
gap: 4px;
|
|
8101
|
+
color: var(--fg-muted);
|
|
8102
|
+
font-size: 12px;
|
|
8103
|
+
}
|
|
8104
|
+
|
|
8105
|
+
.worktree-hint {
|
|
8106
|
+
color: var(--fg-muted);
|
|
8107
|
+
font-size: 11px;
|
|
8108
|
+
}
|
|
8109
|
+
|
|
8110
|
+
/* 追加ダイアログの「作成先」。入力に連動して実パスを出す行。パスは長いので
|
|
8111
|
+
1 行に固定し、頭側を省略する (行が折り返すと下のボタンが動く)。 */
|
|
8112
|
+
.worktree-target {
|
|
8113
|
+
display: flex;
|
|
8114
|
+
align-items: baseline;
|
|
8115
|
+
gap: 8px;
|
|
8116
|
+
font-size: 12px;
|
|
8117
|
+
color: var(--fg-muted);
|
|
8118
|
+
}
|
|
8119
|
+
|
|
8120
|
+
.worktree-target-label {
|
|
8121
|
+
flex: 0 0 auto;
|
|
8122
|
+
}
|
|
8123
|
+
|
|
8124
|
+
.worktree-target-path {
|
|
8125
|
+
flex: 1 1 auto;
|
|
8126
|
+
min-width: 0;
|
|
8127
|
+
direction: rtl;
|
|
8128
|
+
text-align: left;
|
|
8129
|
+
overflow: hidden;
|
|
8130
|
+
text-overflow: ellipsis;
|
|
8131
|
+
white-space: nowrap;
|
|
8132
|
+
color: var(--fg);
|
|
8133
|
+
font-family: var(--mono, monospace);
|
|
8134
|
+
}
|
|
8135
|
+
/* .worktree-row-path と同じ理由の LRM。rtl と 1 組で使う。 */
|
|
8136
|
+
.worktree-target-path::before {
|
|
8137
|
+
content: "\200E";
|
|
8138
|
+
}
|
|
8139
|
+
|
|
8140
|
+
/* 作るかどうかの判断に要らない注記 (.gitignore の話) を本文から下ろす先。
|
|
8141
|
+
押しても何も起きない印なので、寸法も位置も変わらない。 */
|
|
8142
|
+
.worktree-hint-mark {
|
|
8143
|
+
flex: 0 0 auto;
|
|
8144
|
+
display: inline-flex;
|
|
8145
|
+
align-items: center;
|
|
8146
|
+
justify-content: center;
|
|
8147
|
+
width: 15px;
|
|
8148
|
+
height: 15px;
|
|
8149
|
+
border: 1px solid var(--border);
|
|
8150
|
+
border-radius: 50%;
|
|
8151
|
+
font-size: 10px;
|
|
8152
|
+
line-height: 1;
|
|
8153
|
+
color: var(--fg-muted);
|
|
8154
|
+
cursor: help;
|
|
8155
|
+
}
|
|
8156
|
+
|
|
8157
|
+
/* 削除ダイアログの警告。未コミット変更を失うことを、チェックを入れる前に
|
|
8158
|
+
読める位置に出す。 */
|
|
8159
|
+
.worktree-warn {
|
|
8160
|
+
color: var(--danger);
|
|
8161
|
+
font-size: 12px;
|
|
8162
|
+
}
|
|
8163
|
+
|
|
8164
|
+
.worktree-check {
|
|
8165
|
+
display: flex;
|
|
8166
|
+
align-items: center;
|
|
8167
|
+
gap: 6px;
|
|
8168
|
+
font-size: 12px;
|
|
8169
|
+
}
|
|
8170
|
+
|
|
7858
8171
|
/* ============================================================
|
|
7859
8172
|
Journal
|
|
7860
8173
|
============================================================ */
|
|
@@ -14573,11 +14886,10 @@ body.app-panel-docked:has(.app-panel.app-panel-open) {
|
|
|
14573
14886
|
var(--app-panel-max-h)
|
|
14574
14887
|
);
|
|
14575
14888
|
}
|
|
14576
|
-
|
|
14577
|
-
|
|
14578
|
-
|
|
14579
|
-
body.app-panel-docked
|
|
14580
|
-
body.app-panel-docked.gdp-help-page #content {
|
|
14889
|
+
/* #content がスクロール容器になるかはページの属性で決まる。属性は app.ts の
|
|
14890
|
+
setPageMode がページクラスと同じ場所で立てる。ページクラスの列挙はしない
|
|
14891
|
+
(ui-layout.md「ページクラスの列挙をレイアウト規則に書かない」)。 */
|
|
14892
|
+
body.app-panel-docked[data-content-scrolls-when-docked] #content {
|
|
14581
14893
|
position: relative;
|
|
14582
14894
|
top: var(--chrome-h);
|
|
14583
14895
|
height: var(--content-h);
|
|
@@ -14589,41 +14901,22 @@ body.app-panel-docked.gdp-help-page #content {
|
|
|
14589
14901
|
/* Keep the normal page-specific top gap without putting padding on the
|
|
14590
14902
|
scroll container. A sticky child otherwise adds that padding to its top
|
|
14591
14903
|
offset and leaves scrolled content visible above the file header. */
|
|
14592
|
-
body.app-panel-docked
|
|
14593
|
-
body.app-panel-docked.gdp-history-page #diff,
|
|
14594
|
-
body.app-panel-docked.gdp-repo-page #diff,
|
|
14595
|
-
body.app-panel-docked.gdp-file-detail-page #diff,
|
|
14596
|
-
body.app-panel-docked.gdp-help-page #diff {
|
|
14904
|
+
body.app-panel-docked[data-content-scrolls-when-docked] #diff {
|
|
14597
14905
|
padding-top: var(--content-top-gap);
|
|
14598
14906
|
}
|
|
14599
|
-
body.app-panel-docked
|
|
14600
|
-
body.app-panel-docked
|
|
14601
|
-
body.app-panel-docked
|
|
14602
|
-
body.app-panel-docked.gdp-history-page .gdp-shell-header,
|
|
14603
|
-
body.app-panel-docked.gdp-repo-page .d2h-file-header,
|
|
14604
|
-
body.app-panel-docked.gdp-repo-page .gdp-shell-header,
|
|
14605
|
-
body.app-panel-docked.gdp-file-detail-page .d2h-file-header,
|
|
14606
|
-
body.app-panel-docked.gdp-file-detail-page .gdp-shell-header,
|
|
14607
|
-
body.app-panel-docked.gdp-file-detail-page .gdp-file-detail-sticky {
|
|
14907
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .d2h-file-header,
|
|
14908
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .gdp-shell-header,
|
|
14909
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .gdp-file-detail-sticky {
|
|
14608
14910
|
top: 0;
|
|
14609
14911
|
}
|
|
14610
|
-
body.app-panel-docked
|
|
14611
|
-
body.app-panel-docked.gdp-history-page .gdp-markdown-toc,
|
|
14612
|
-
body.app-panel-docked.gdp-repo-page .gdp-markdown-toc,
|
|
14613
|
-
body.app-panel-docked.gdp-file-detail-page .gdp-markdown-toc {
|
|
14912
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .gdp-markdown-toc {
|
|
14614
14913
|
top: 16px;
|
|
14615
14914
|
}
|
|
14616
|
-
body.app-panel-docked
|
|
14915
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .gdp-help-nav {
|
|
14617
14916
|
top: 20px;
|
|
14618
14917
|
}
|
|
14619
|
-
body.app-panel-docked
|
|
14620
|
-
body.app-panel-docked
|
|
14621
|
-
body.app-panel-docked.gdp-history-page .d2h-file-wrapper,
|
|
14622
|
-
body.app-panel-docked.gdp-history-page .gdp-file-shell,
|
|
14623
|
-
body.app-panel-docked.gdp-repo-page .d2h-file-wrapper,
|
|
14624
|
-
body.app-panel-docked.gdp-repo-page .gdp-file-shell,
|
|
14625
|
-
body.app-panel-docked.gdp-file-detail-page .d2h-file-wrapper,
|
|
14626
|
-
body.app-panel-docked.gdp-file-detail-page .gdp-file-shell {
|
|
14918
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .d2h-file-wrapper,
|
|
14919
|
+
body.app-panel-docked[data-content-scrolls-when-docked] .gdp-file-shell {
|
|
14627
14920
|
scroll-margin-top: 8px;
|
|
14628
14921
|
}
|
|
14629
14922
|
body.app-panel-docked #sidebar,
|
|
@@ -14636,10 +14929,13 @@ body.app-panel-docked #annotation-panel {
|
|
|
14636
14929
|
body.app-panel-docked .app-panel.app-panel-open {
|
|
14637
14930
|
box-shadow: none;
|
|
14638
14931
|
}
|
|
14639
|
-
|
|
14640
|
-
|
|
14641
|
-
|
|
14642
|
-
|
|
14932
|
+
/* docked のときに `.journal-page` / `.db-root` を `height: 100%` で上書きしない。
|
|
14933
|
+
この 2 ページは data-content-scrolls-when-docked を持たず、
|
|
14934
|
+
親の `#content` が高さを持たないので、100% は解決先を失って auto に落ち、ページ
|
|
14935
|
+
全体が中身の高さまで縮む (中身が空のとき画面途中で切れる形で表面化した)。両者は
|
|
14936
|
+
既に `height: var(--content-h)` を持ち、--content-h は docked ではパネル占有分が
|
|
14937
|
+
引かれた値になるので、そもそも上書きが要らない。検査は
|
|
14938
|
+
`web-src/test/docked-page-height.test.ts`。 */
|
|
14643
14939
|
|
|
14644
14940
|
.tools-sheet,
|
|
14645
14941
|
.terminal-sheet {
|