gh-here 3.1.0 → 3.2.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.
@@ -0,0 +1,269 @@
1
+ /**
2
+ * File Tree Sidebar Styles
3
+ * Navigation sidebar, tree items, and sidebar controls
4
+ */
5
+
6
+ /* ========================================
7
+ File Tree Sidebar Container
8
+ ======================================== */
9
+
10
+ .file-tree-sidebar {
11
+ align-self: stretch;
12
+ background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);
13
+ border-right: 1px solid var(--border-subtle);
14
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
15
+ display: flex;
16
+ flex-direction: column;
17
+ flex-shrink: 0;
18
+ height: 100vh;
19
+ max-height: 100vh;
20
+ max-width: 300px;
21
+ min-width: 300px;
22
+ overflow-x: hidden;
23
+ overflow-y: auto;
24
+ position: sticky;
25
+ scrollbar-color: var(--border-primary) transparent;
26
+ scrollbar-width: thin;
27
+ top: 0;
28
+ transition: all var(--transition-base);
29
+ width: 300px;
30
+ }
31
+
32
+ [data-theme="light"] .file-tree-sidebar {
33
+ background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);
34
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05);
35
+ }
36
+
37
+ .file-tree-sidebar::-webkit-scrollbar {
38
+ width: 6px;
39
+ }
40
+
41
+ .file-tree-sidebar::-webkit-scrollbar-track {
42
+ background: transparent;
43
+ }
44
+
45
+ .file-tree-sidebar::-webkit-scrollbar-thumb {
46
+ background: var(--border-primary);
47
+ border-radius: 3px;
48
+ }
49
+
50
+ .file-tree-sidebar::-webkit-scrollbar-thumb:hover {
51
+ background: var(--text-secondary);
52
+ }
53
+
54
+ .file-tree-sidebar.hidden {
55
+ display: none;
56
+ }
57
+
58
+ /* ========================================
59
+ File Tree Header
60
+ ======================================== */
61
+
62
+ .file-tree-header {
63
+ align-items: center;
64
+ backdrop-filter: blur(10px);
65
+ background: linear-gradient(180deg, rgba(19, 23, 29, 0.95) 0%, rgba(19, 23, 29, 0.85) 100%);
66
+ border-bottom: 1px solid var(--border-subtle);
67
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
68
+ color: var(--text-primary);
69
+ display: flex;
70
+ font-size: 15px;
71
+ font-weight: 700;
72
+ gap: 12px;
73
+ letter-spacing: -0.01em;
74
+ padding: 18px 24px;
75
+ position: sticky;
76
+ top: 0;
77
+ z-index: 1;
78
+ }
79
+
80
+ [data-theme="light"] .file-tree-header {
81
+ background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(248, 250, 252, 0.85) 100%);
82
+ }
83
+
84
+ .files-icon {
85
+ fill: var(--text-secondary);
86
+ flex-shrink: 0;
87
+ }
88
+
89
+ /* ========================================
90
+ Sidebar Controls
91
+ ======================================== */
92
+
93
+ .sidebar-controls {
94
+ backdrop-filter: blur(5px);
95
+ background: linear-gradient(180deg, rgba(19, 23, 29, 0.4) 0%, transparent 100%);
96
+ border-bottom: 1px solid var(--border-subtle);
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: var(--space-md);
100
+ padding: var(--space-lg) var(--space-lg) var(--space-md);
101
+ }
102
+
103
+ [data-theme="light"] .sidebar-controls {
104
+ background: linear-gradient(180deg, rgba(248, 250, 252, 0.6) 0%, transparent 100%);
105
+ }
106
+
107
+ .sidebar-branch {
108
+ font-size: 12px;
109
+ justify-content: flex-start;
110
+ width: 100%;
111
+ }
112
+
113
+ /* ========================================
114
+ File Tree Container
115
+ ======================================== */
116
+
117
+ .file-tree-container {
118
+ background: var(--bg-secondary);
119
+ padding: 8px 0;
120
+ }
121
+
122
+ /* ========================================
123
+ Tree Item
124
+ ======================================== */
125
+
126
+ .tree-item {
127
+ align-items: center;
128
+ border-radius: var(--radius-md);
129
+ color: var(--text-primary);
130
+ cursor: pointer;
131
+ display: flex;
132
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
133
+ font-size: 13px;
134
+ font-weight: 500;
135
+ gap: 8px;
136
+ line-height: 22px;
137
+ margin: 2px 6px;
138
+ padding: 8px 14px;
139
+ position: relative;
140
+ transition: all var(--transition-base);
141
+ user-select: none;
142
+ }
143
+
144
+ .tree-item::before {
145
+ background: linear-gradient(180deg, var(--link-color) 0%, var(--link-hover) 100%);
146
+ border-radius: 0 3px 3px 0;
147
+ box-shadow: 0 0 8px rgba(96, 165, 250, 0.4);
148
+ content: '';
149
+ height: 0;
150
+ left: 0;
151
+ position: absolute;
152
+ top: 50%;
153
+ transform: translateY(-50%);
154
+ transition: all var(--transition-base);
155
+ width: 3px;
156
+ }
157
+
158
+ .tree-item:hover {
159
+ background: rgba(96, 165, 250, 0.08);
160
+ border-left: 2px solid var(--link-color);
161
+ padding-left: 14px;
162
+ }
163
+
164
+ .tree-item:hover::before {
165
+ display: none;
166
+ }
167
+
168
+ .tree-item.active {
169
+ background: rgba(96, 165, 250, 0.12);
170
+ border-left: 2px solid var(--link-color);
171
+ font-weight: 600;
172
+ padding-left: 14px;
173
+ }
174
+
175
+ .tree-item.active::before {
176
+ box-shadow: 0 0 12px rgba(96, 165, 250, 0.6);
177
+ height: 85%;
178
+ opacity: 1;
179
+ }
180
+
181
+ [data-theme="light"] .tree-item.active {
182
+ background: linear-gradient(90deg, rgba(37, 99, 235, 0.1) 0%, rgba(37, 99, 235, 0.03) 100%);
183
+ border-color: rgba(37, 99, 235, 0.15);
184
+ }
185
+
186
+ .tree-item.hidden,
187
+ .tree-children.hidden {
188
+ display: none;
189
+ }
190
+
191
+ /* ========================================
192
+ Tree Item Components
193
+ ======================================== */
194
+
195
+ .tree-toggle {
196
+ color: var(--text-secondary);
197
+ display: inline-block;
198
+ flex-shrink: 0;
199
+ font-size: 10px;
200
+ text-align: center;
201
+ width: 12px;
202
+ }
203
+
204
+ .tree-spacer {
205
+ flex-shrink: 0;
206
+ width: 12px;
207
+ }
208
+
209
+ .tree-icon {
210
+ fill: var(--text-secondary);
211
+ flex-shrink: 0;
212
+ }
213
+
214
+ .tree-icon.file-icon {
215
+ fill: var(--text-secondary);
216
+ opacity: 0.7;
217
+ }
218
+
219
+ .tree-item .tree-icon:not(.file-icon) {
220
+ fill: #7dd3fc;
221
+ }
222
+
223
+ [data-theme="light"] .tree-item .tree-icon:not(.file-icon) {
224
+ fill: #54adf5;
225
+ }
226
+
227
+ .tree-label {
228
+ flex: 1;
229
+ font-weight: 400;
230
+ letter-spacing: normal;
231
+ overflow: hidden;
232
+ text-overflow: ellipsis;
233
+ white-space: nowrap;
234
+ }
235
+
236
+ .tree-children {
237
+ transition: none;
238
+ }
239
+
240
+ /* ========================================
241
+ Skeleton Loading
242
+ ======================================== */
243
+
244
+ .tree-skeleton {
245
+ padding: 8px;
246
+ }
247
+
248
+ .skeleton-item {
249
+ animation: skeleton-loading 1.5s ease-in-out infinite;
250
+ background: linear-gradient(90deg, var(--bg-secondary) 0%, var(--hover-bg) 50%, var(--bg-secondary) 100%);
251
+ background-size: 200% 100%;
252
+ border-radius: 4px;
253
+ height: 28px;
254
+ margin-bottom: 4px;
255
+ }
256
+
257
+ .skeleton-indent {
258
+ margin-left: 20px;
259
+ width: calc(100% - 20px);
260
+ }
261
+
262
+ @keyframes skeleton-loading {
263
+ 0% {
264
+ background-position: 200% 0;
265
+ }
266
+ 100% {
267
+ background-position: -200% 0;
268
+ }
269
+ }