docyard 0.7.0 → 0.9.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -1
- data/CHANGELOG.md +43 -1
- data/lib/docyard/build/asset_bundler.rb +22 -7
- data/lib/docyard/build/file_copier.rb +49 -27
- data/lib/docyard/build/sitemap_generator.rb +6 -6
- data/lib/docyard/build/static_generator.rb +85 -12
- data/lib/docyard/builder.rb +6 -6
- data/lib/docyard/components/aliases.rb +12 -0
- data/lib/docyard/components/processors/abbreviation_processor.rb +72 -0
- data/lib/docyard/components/processors/accordion_processor.rb +81 -0
- data/lib/docyard/components/processors/badge_processor.rb +72 -0
- data/lib/docyard/components/processors/callout_processor.rb +8 -2
- data/lib/docyard/components/processors/cards_processor.rb +100 -0
- data/lib/docyard/components/processors/code_block_options_preprocessor.rb +23 -2
- data/lib/docyard/components/processors/code_block_processor.rb +6 -0
- data/lib/docyard/components/processors/code_group_processor.rb +198 -0
- data/lib/docyard/components/processors/code_snippet_import_preprocessor.rb +6 -1
- data/lib/docyard/components/processors/custom_anchor_processor.rb +42 -0
- data/lib/docyard/components/processors/file_tree_processor.rb +151 -0
- data/lib/docyard/components/processors/image_caption_processor.rb +96 -0
- data/lib/docyard/components/processors/include_processor.rb +86 -0
- data/lib/docyard/components/processors/steps_processor.rb +89 -0
- data/lib/docyard/components/processors/tabs_processor.rb +9 -1
- data/lib/docyard/components/processors/tooltip_processor.rb +57 -0
- data/lib/docyard/components/processors/video_embed_processor.rb +196 -0
- data/lib/docyard/components/support/code_group/html_builder.rb +122 -0
- data/lib/docyard/components/support/markdown_code_block_helper.rb +56 -0
- data/lib/docyard/config/branding_resolver.rb +121 -17
- data/lib/docyard/config/constants.rb +6 -4
- data/lib/docyard/config/logo_detector.rb +39 -0
- data/lib/docyard/config/validator.rb +122 -99
- data/lib/docyard/config.rb +40 -42
- data/lib/docyard/initializer.rb +15 -76
- data/lib/docyard/navigation/breadcrumb_builder.rb +133 -0
- data/lib/docyard/navigation/prev_next_builder.rb +4 -1
- data/lib/docyard/navigation/sidebar/children_discoverer.rb +51 -0
- data/lib/docyard/navigation/sidebar/config_parser.rb +136 -108
- data/lib/docyard/navigation/sidebar/file_resolver.rb +90 -0
- data/lib/docyard/navigation/sidebar/file_system_scanner.rb +2 -1
- data/lib/docyard/navigation/sidebar/item.rb +50 -7
- data/lib/docyard/navigation/sidebar/local_config_loader.rb +51 -0
- data/lib/docyard/navigation/sidebar/metadata_extractor.rb +71 -0
- data/lib/docyard/navigation/sidebar/metadata_reader.rb +51 -0
- data/lib/docyard/navigation/sidebar/path_prefixer.rb +34 -0
- data/lib/docyard/navigation/sidebar/renderer.rb +60 -38
- data/lib/docyard/navigation/sidebar/sorter.rb +21 -0
- data/lib/docyard/navigation/sidebar/tree_builder.rb +100 -26
- data/lib/docyard/navigation/sidebar/tree_filter.rb +55 -0
- data/lib/docyard/navigation/sidebar_builder.rb +105 -36
- data/lib/docyard/rendering/icon_helpers.rb +13 -0
- data/lib/docyard/rendering/icons/phosphor.rb +26 -1
- data/lib/docyard/rendering/markdown.rb +29 -1
- data/lib/docyard/rendering/renderer.rb +75 -34
- data/lib/docyard/rendering/template_resolver.rb +172 -0
- data/lib/docyard/routing/fallback_resolver.rb +92 -0
- data/lib/docyard/search/build_indexer.rb +1 -1
- data/lib/docyard/search/dev_indexer.rb +51 -6
- data/lib/docyard/search/pagefind_support.rb +2 -0
- data/lib/docyard/server/asset_handler.rb +25 -19
- data/lib/docyard/server/pagefind_handler.rb +63 -0
- data/lib/docyard/server/preview_server.rb +1 -1
- data/lib/docyard/server/rack_application.rb +81 -64
- data/lib/docyard/templates/assets/css/code.css +18 -51
- data/lib/docyard/templates/assets/css/components/abbreviation.css +86 -0
- data/lib/docyard/templates/assets/css/components/accordion.css +138 -0
- data/lib/docyard/templates/assets/css/components/badges.css +47 -0
- data/lib/docyard/templates/assets/css/components/banner.css +202 -0
- data/lib/docyard/templates/assets/css/components/breadcrumbs.css +143 -0
- data/lib/docyard/templates/assets/css/components/callout.css +67 -67
- data/lib/docyard/templates/assets/css/components/cards.css +100 -0
- data/lib/docyard/templates/assets/css/components/code-block.css +190 -282
- data/lib/docyard/templates/assets/css/components/code-group.css +281 -0
- data/lib/docyard/templates/assets/css/components/figure.css +22 -0
- data/lib/docyard/templates/assets/css/components/file-tree.css +124 -0
- data/lib/docyard/templates/assets/css/components/heading-anchor.css +36 -15
- data/lib/docyard/templates/assets/css/components/icon.css +0 -1
- data/lib/docyard/templates/assets/css/components/lightbox.css +65 -0
- data/lib/docyard/templates/assets/css/components/logo.css +0 -2
- data/lib/docyard/templates/assets/css/components/nav-menu.css +237 -0
- data/lib/docyard/templates/assets/css/components/navigation.css +193 -167
- data/lib/docyard/templates/assets/css/components/prev-next.css +68 -48
- data/lib/docyard/templates/assets/css/components/search.css +186 -174
- data/lib/docyard/templates/assets/css/components/steps.css +122 -0
- data/lib/docyard/templates/assets/css/components/tab-bar.css +163 -0
- data/lib/docyard/templates/assets/css/components/table-of-contents.css +127 -114
- data/lib/docyard/templates/assets/css/components/tabs.css +119 -160
- data/lib/docyard/templates/assets/css/components/theme-toggle.css +48 -44
- data/lib/docyard/templates/assets/css/components/tooltip.css +113 -0
- data/lib/docyard/templates/assets/css/components/video.css +41 -0
- data/lib/docyard/templates/assets/css/landing.css +815 -0
- data/lib/docyard/templates/assets/css/layout.css +489 -87
- data/lib/docyard/templates/assets/css/main.css +1 -3
- data/lib/docyard/templates/assets/css/markdown.css +113 -93
- data/lib/docyard/templates/assets/css/reset.css +0 -3
- data/lib/docyard/templates/assets/css/typography.css +43 -41
- data/lib/docyard/templates/assets/css/variables.css +268 -208
- data/lib/docyard/templates/assets/favicon.svg +7 -8
- data/lib/docyard/templates/assets/fonts/Inter-Variable.ttf +0 -0
- data/lib/docyard/templates/assets/js/components/abbreviation.js +85 -0
- data/lib/docyard/templates/assets/js/components/banner.js +81 -0
- data/lib/docyard/templates/assets/js/components/code-block.js +24 -42
- data/lib/docyard/templates/assets/js/components/code-group.js +283 -0
- data/lib/docyard/templates/assets/js/components/file-tree.js +39 -0
- data/lib/docyard/templates/assets/js/components/heading-anchor.js +26 -24
- data/lib/docyard/templates/assets/js/components/lightbox.js +72 -0
- data/lib/docyard/templates/assets/js/components/navigation.js +181 -70
- data/lib/docyard/templates/assets/js/components/search.js +0 -75
- data/lib/docyard/templates/assets/js/components/sidebar-toggle.js +29 -0
- data/lib/docyard/templates/assets/js/components/tab-navigation.js +145 -0
- data/lib/docyard/templates/assets/js/components/table-of-contents.js +153 -66
- data/lib/docyard/templates/assets/js/components/tabs.js +31 -69
- data/lib/docyard/templates/assets/js/components/tooltip.js +118 -0
- data/lib/docyard/templates/assets/js/theme.js +0 -3
- data/lib/docyard/templates/assets/logo-dark.svg +8 -2
- data/lib/docyard/templates/assets/logo.svg +7 -4
- data/lib/docyard/templates/config/docyard.yml.erb +37 -34
- data/lib/docyard/templates/errors/404.html.erb +1 -1
- data/lib/docyard/templates/errors/500.html.erb +1 -1
- data/lib/docyard/templates/layouts/default.html.erb +19 -67
- data/lib/docyard/templates/layouts/splash.html.erb +177 -0
- data/lib/docyard/templates/partials/_accordion.html.erb +9 -0
- data/lib/docyard/templates/partials/_banner.html.erb +27 -0
- data/lib/docyard/templates/partials/_breadcrumbs.html.erb +24 -0
- data/lib/docyard/templates/partials/_card.html.erb +23 -0
- data/lib/docyard/templates/partials/_code_block.html.erb +5 -3
- data/lib/docyard/templates/partials/_doc_footer.html.erb +25 -0
- data/lib/docyard/templates/partials/_features.html.erb +15 -0
- data/lib/docyard/templates/partials/_footer.html.erb +42 -0
- data/lib/docyard/templates/partials/_head.html.erb +22 -0
- data/lib/docyard/templates/partials/_header.html.erb +49 -0
- data/lib/docyard/templates/partials/_heading_anchor.html.erb +3 -1
- data/lib/docyard/templates/partials/_hero.html.erb +27 -0
- data/lib/docyard/templates/partials/_nav_group.html.erb +31 -11
- data/lib/docyard/templates/partials/_nav_leaf.html.erb +4 -1
- data/lib/docyard/templates/partials/_nav_menu.html.erb +42 -0
- data/lib/docyard/templates/partials/_nav_nested_section.html.erb +11 -0
- data/lib/docyard/templates/partials/_nav_section.html.erb +1 -1
- data/lib/docyard/templates/partials/_prev_next.html.erb +8 -2
- data/lib/docyard/templates/partials/_scripts.html.erb +7 -0
- data/lib/docyard/templates/partials/_search_modal.html.erb +2 -6
- data/lib/docyard/templates/partials/_search_trigger.html.erb +2 -6
- data/lib/docyard/templates/partials/_sidebar.html.erb +21 -4
- data/lib/docyard/templates/partials/_step.html.erb +14 -0
- data/lib/docyard/templates/partials/_tab_bar.html.erb +25 -0
- data/lib/docyard/templates/partials/_table_of_contents.html.erb +12 -12
- data/lib/docyard/templates/partials/_table_of_contents_toggle.html.erb +1 -3
- data/lib/docyard/templates/partials/_tabs.html.erb +2 -2
- data/lib/docyard/templates/partials/_theme_toggle.html.erb +2 -11
- data/lib/docyard/version.rb +1 -1
- metadata +70 -5
- data/lib/docyard/templates/markdown/getting-started/installation.md.erb +0 -77
- data/lib/docyard/templates/markdown/guides/configuration.md.erb +0 -202
- data/lib/docyard/templates/markdown/guides/markdown-features.md.erb +0 -247
- data/lib/docyard/templates/markdown/index.md.erb +0 -82
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
/* Search Trigger Button */
|
|
2
1
|
.search-trigger {
|
|
3
2
|
display: flex;
|
|
4
3
|
align-items: center;
|
|
5
|
-
gap: var(--
|
|
6
|
-
padding:
|
|
7
|
-
background-color: var(--
|
|
8
|
-
border: 1px solid var(--
|
|
9
|
-
border-radius:
|
|
4
|
+
gap: var(--spacing-2);
|
|
5
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
6
|
+
background-color: var(--search-trigger-bg);
|
|
7
|
+
border: 1px solid var(--search-trigger-border);
|
|
8
|
+
border-radius: var(--radius-4xl);
|
|
10
9
|
cursor: pointer;
|
|
11
|
-
color: var(--
|
|
12
|
-
font-size: var(--text-
|
|
13
|
-
transition:
|
|
14
|
-
min-width:
|
|
10
|
+
color: var(--muted-foreground);
|
|
11
|
+
font-size: var(--text-sm);
|
|
12
|
+
transition: all var(--transition-fast);
|
|
13
|
+
min-width: 400px;
|
|
14
|
+
height: 2.25rem;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.search-trigger:hover {
|
|
18
|
-
|
|
18
|
+
background-color: var(--search-trigger-bg-hover);
|
|
19
|
+
border-color: var(--search-trigger-border-hover);
|
|
20
|
+
color: var(--foreground);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
.search-trigger:focus-visible {
|
|
22
|
-
outline:
|
|
23
|
-
|
|
24
|
+
outline: none;
|
|
25
|
+
border-color: var(--ring);
|
|
26
|
+
box-shadow: 0 0 0 var(--ring-width) oklch(from var(--ring) l c h / 50%);
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
.search-trigger-icon {
|
|
27
30
|
display: flex;
|
|
28
31
|
flex-shrink: 0;
|
|
32
|
+
color: var(--muted-foreground);
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
.search-trigger-icon svg {
|
|
32
|
-
width:
|
|
33
|
-
height:
|
|
34
|
-
opacity: 1;
|
|
36
|
+
width: 1rem;
|
|
37
|
+
height: 1rem;
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
.search-trigger-text {
|
|
38
41
|
flex: 1;
|
|
39
42
|
text-align: left;
|
|
40
|
-
color: var(--
|
|
41
|
-
font-size: var(--text-
|
|
43
|
+
color: var(--muted-foreground);
|
|
44
|
+
font-size: var(--text-sm);
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
.search-trigger-shortcut {
|
|
@@ -46,8 +49,8 @@
|
|
|
46
49
|
align-items: center;
|
|
47
50
|
gap: 2px;
|
|
48
51
|
font-family: var(--font-mono);
|
|
49
|
-
font-size:
|
|
50
|
-
color: var(--
|
|
52
|
+
font-size: 0.6875rem;
|
|
53
|
+
color: var(--muted-foreground);
|
|
51
54
|
background: none;
|
|
52
55
|
border: none;
|
|
53
56
|
padding: 0;
|
|
@@ -58,16 +61,14 @@
|
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
.search-trigger-shortcut-icon svg {
|
|
61
|
-
width:
|
|
62
|
-
height:
|
|
63
|
-
opacity: 1;
|
|
64
|
+
width: 0.875rem;
|
|
65
|
+
height: 0.875rem;
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
.search-trigger-shortcut-text {
|
|
67
|
-
opacity: 0.
|
|
69
|
+
opacity: 0.8;
|
|
68
70
|
}
|
|
69
71
|
|
|
70
|
-
/* Hide command icon on non-Mac, show "Ctrl" text instead */
|
|
71
72
|
.search-trigger-shortcut[data-os="windows"] .search-trigger-shortcut-icon {
|
|
72
73
|
display: none;
|
|
73
74
|
}
|
|
@@ -76,25 +77,23 @@
|
|
|
76
77
|
content: "Ctrl ";
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
/* Header Actions Container */
|
|
80
80
|
.header-actions {
|
|
81
81
|
display: flex;
|
|
82
82
|
align-items: center;
|
|
83
|
-
gap: var(--
|
|
83
|
+
gap: var(--spacing-3);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
/* Search Modal */
|
|
87
86
|
.search-modal {
|
|
88
87
|
position: fixed;
|
|
89
88
|
inset: 0;
|
|
90
|
-
z-index:
|
|
89
|
+
z-index: var(--z-modal);
|
|
91
90
|
display: flex;
|
|
92
91
|
align-items: flex-start;
|
|
93
92
|
justify-content: center;
|
|
94
|
-
padding-top:
|
|
93
|
+
padding-top: 10vh;
|
|
95
94
|
opacity: 0;
|
|
96
95
|
visibility: hidden;
|
|
97
|
-
transition: opacity
|
|
96
|
+
transition: opacity var(--transition-fast), visibility var(--transition-fast);
|
|
98
97
|
}
|
|
99
98
|
|
|
100
99
|
.search-modal.is-open {
|
|
@@ -109,35 +108,32 @@
|
|
|
109
108
|
.search-modal-backdrop {
|
|
110
109
|
position: fixed;
|
|
111
110
|
inset: 0;
|
|
112
|
-
background-color:
|
|
111
|
+
background-color: var(--overlay-bg);
|
|
112
|
+
backdrop-filter: blur(var(--overlay-blur));
|
|
113
113
|
opacity: 0;
|
|
114
|
-
transition: opacity
|
|
114
|
+
transition: opacity var(--transition-fast);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
.search-modal.is-open .search-modal-backdrop {
|
|
118
118
|
opacity: 1;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
.dark .search-modal-backdrop {
|
|
122
|
-
background-color: rgba(0, 0, 0, 0.5);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
121
|
.search-modal-container {
|
|
126
122
|
position: relative;
|
|
127
123
|
width: 100%;
|
|
128
|
-
max-width:
|
|
129
|
-
max-height:
|
|
130
|
-
margin: 0 var(--
|
|
131
|
-
background-color: var(--
|
|
132
|
-
border: 1px solid var(--
|
|
133
|
-
border-radius:
|
|
134
|
-
box-shadow:
|
|
124
|
+
max-width: 600px;
|
|
125
|
+
max-height: 80vh;
|
|
126
|
+
margin: 0 var(--spacing-4);
|
|
127
|
+
background-color: var(--background);
|
|
128
|
+
border: 1px solid var(--border);
|
|
129
|
+
border-radius: var(--radius-2xl);
|
|
130
|
+
box-shadow: var(--shadow-2xl);
|
|
135
131
|
display: flex;
|
|
136
132
|
flex-direction: column;
|
|
137
133
|
overflow: hidden;
|
|
138
|
-
transform: scale(0.
|
|
134
|
+
transform: scale(0.95) translateY(-10px);
|
|
139
135
|
opacity: 0;
|
|
140
|
-
transition: transform
|
|
136
|
+
transition: transform var(--transition-base), opacity var(--transition-fast);
|
|
141
137
|
}
|
|
142
138
|
|
|
143
139
|
.search-modal.is-open .search-modal-container {
|
|
@@ -145,36 +141,36 @@
|
|
|
145
141
|
opacity: 1;
|
|
146
142
|
}
|
|
147
143
|
|
|
148
|
-
.dark .search-modal-container {
|
|
149
|
-
box-shadow: 0 16px 70px rgba(0, 0, 0, 0.5);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/* Search Modal Header */
|
|
153
144
|
.search-modal-header {
|
|
154
145
|
display: flex;
|
|
155
146
|
align-items: center;
|
|
156
|
-
gap: var(--
|
|
157
|
-
padding:
|
|
147
|
+
gap: var(--spacing-3);
|
|
148
|
+
padding: var(--spacing-4) var(--spacing-5);
|
|
149
|
+
border-bottom: 1px solid var(--border);
|
|
158
150
|
}
|
|
159
151
|
|
|
160
152
|
.search-modal-icon {
|
|
153
|
+
display: flex;
|
|
154
|
+
align-items: center;
|
|
155
|
+
justify-content: center;
|
|
161
156
|
flex-shrink: 0;
|
|
162
|
-
width:
|
|
163
|
-
height:
|
|
164
|
-
color: var(--
|
|
157
|
+
width: 1.25rem;
|
|
158
|
+
height: 1.25rem;
|
|
159
|
+
color: var(--muted-foreground);
|
|
165
160
|
}
|
|
166
161
|
|
|
167
162
|
.search-modal-input {
|
|
168
163
|
flex: 1;
|
|
169
164
|
border: none;
|
|
170
165
|
background: transparent;
|
|
171
|
-
font-size:
|
|
172
|
-
|
|
166
|
+
font-size: var(--text-base);
|
|
167
|
+
font-family: var(--font-sans);
|
|
168
|
+
color: var(--foreground);
|
|
173
169
|
outline: none;
|
|
174
170
|
}
|
|
175
171
|
|
|
176
172
|
.search-modal-input::placeholder {
|
|
177
|
-
color: var(--
|
|
173
|
+
color: var(--muted-foreground);
|
|
178
174
|
}
|
|
179
175
|
|
|
180
176
|
.search-modal-close {
|
|
@@ -184,33 +180,31 @@
|
|
|
184
180
|
background: none;
|
|
185
181
|
border: none;
|
|
186
182
|
cursor: pointer;
|
|
183
|
+
transition: opacity var(--transition-fast);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.search-modal-close:hover {
|
|
187
|
+
opacity: 0.7;
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
.search-modal-close-text {
|
|
190
191
|
font-family: var(--font-mono);
|
|
191
|
-
font-size:
|
|
192
|
+
font-size: 0.625rem;
|
|
192
193
|
text-transform: uppercase;
|
|
193
|
-
letter-spacing: 0.
|
|
194
|
-
color: var(--
|
|
195
|
-
background-color: var(--
|
|
196
|
-
border: 1px solid var(--
|
|
197
|
-
border-radius:
|
|
198
|
-
padding:
|
|
194
|
+
letter-spacing: 0.05em;
|
|
195
|
+
color: var(--muted-foreground);
|
|
196
|
+
background-color: var(--muted);
|
|
197
|
+
border: 1px solid var(--border);
|
|
198
|
+
border-radius: var(--radius-sm);
|
|
199
|
+
padding: var(--spacing-1) var(--spacing-1-5);
|
|
199
200
|
}
|
|
200
201
|
|
|
201
|
-
.search-modal-close:hover .search-modal-close-text {
|
|
202
|
-
color: var(--color-text-secondary);
|
|
203
|
-
border-color: var(--color-border-secondary);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/* Search Modal Body */
|
|
207
202
|
.search-modal-body {
|
|
208
203
|
flex: 1;
|
|
209
204
|
max-height: 400px;
|
|
210
205
|
overflow-y: auto;
|
|
211
206
|
overscroll-behavior: contain;
|
|
212
|
-
padding: var(--
|
|
213
|
-
border-top: 1px solid var(--color-border);
|
|
207
|
+
padding: var(--spacing-2);
|
|
214
208
|
}
|
|
215
209
|
|
|
216
210
|
.search-modal-body[hidden] {
|
|
@@ -221,8 +215,8 @@
|
|
|
221
215
|
display: flex;
|
|
222
216
|
align-items: center;
|
|
223
217
|
justify-content: center;
|
|
224
|
-
padding: var(--
|
|
225
|
-
color: var(--
|
|
218
|
+
padding: var(--spacing-8) var(--spacing-4);
|
|
219
|
+
color: var(--muted-foreground);
|
|
226
220
|
font-size: var(--text-sm);
|
|
227
221
|
}
|
|
228
222
|
|
|
@@ -235,9 +229,9 @@
|
|
|
235
229
|
flex-direction: column;
|
|
236
230
|
align-items: center;
|
|
237
231
|
justify-content: center;
|
|
238
|
-
padding: var(--
|
|
232
|
+
padding: var(--spacing-10) var(--spacing-4);
|
|
239
233
|
text-align: center;
|
|
240
|
-
gap: var(--
|
|
234
|
+
gap: var(--spacing-2);
|
|
241
235
|
}
|
|
242
236
|
|
|
243
237
|
.search-modal-empty[hidden] {
|
|
@@ -245,28 +239,40 @@
|
|
|
245
239
|
}
|
|
246
240
|
|
|
247
241
|
.search-empty-icon {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
242
|
+
display: flex;
|
|
243
|
+
align-items: center;
|
|
244
|
+
justify-content: center;
|
|
245
|
+
color: var(--muted-foreground);
|
|
246
|
+
margin-bottom: var(--spacing-4);
|
|
247
|
+
opacity: 0.4;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.search-empty-icon .docyard-icon {
|
|
251
|
+
width: 4rem;
|
|
252
|
+
height: 4rem;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.search-empty-icon .docyard-icon svg {
|
|
256
|
+
width: 100%;
|
|
257
|
+
height: 100%;
|
|
252
258
|
}
|
|
253
259
|
|
|
254
260
|
.search-empty-title {
|
|
255
|
-
font-size: var(--text-
|
|
256
|
-
font-weight:
|
|
257
|
-
color: var(--
|
|
261
|
+
font-size: var(--text-sm);
|
|
262
|
+
font-weight: var(--font-medium);
|
|
263
|
+
color: var(--foreground);
|
|
258
264
|
}
|
|
259
265
|
|
|
260
266
|
.search-empty-hint {
|
|
261
267
|
font-size: var(--text-sm);
|
|
262
|
-
color: var(--
|
|
268
|
+
color: var(--muted-foreground);
|
|
263
269
|
}
|
|
264
270
|
|
|
265
271
|
.search-modal-spinner {
|
|
266
|
-
width:
|
|
267
|
-
height:
|
|
268
|
-
border: 2px solid var(--
|
|
269
|
-
border-top-color: var(--
|
|
272
|
+
width: 1.25rem;
|
|
273
|
+
height: 1.25rem;
|
|
274
|
+
border: 2px solid var(--border);
|
|
275
|
+
border-top-color: var(--primary);
|
|
270
276
|
border-radius: 50%;
|
|
271
277
|
animation: search-spin 0.6s linear infinite;
|
|
272
278
|
}
|
|
@@ -277,7 +283,6 @@
|
|
|
277
283
|
}
|
|
278
284
|
}
|
|
279
285
|
|
|
280
|
-
/* Search Results */
|
|
281
286
|
.search-modal-results {
|
|
282
287
|
list-style: none;
|
|
283
288
|
padding: 0;
|
|
@@ -288,51 +293,44 @@
|
|
|
288
293
|
display: none;
|
|
289
294
|
}
|
|
290
295
|
|
|
291
|
-
/* Result Group (page + its sections) */
|
|
292
296
|
.search-result-group {
|
|
293
297
|
list-style: none;
|
|
294
298
|
}
|
|
295
299
|
|
|
296
300
|
.search-result-group+.search-result-group {
|
|
297
|
-
margin-top: var(--
|
|
301
|
+
margin-top: var(--spacing-1);
|
|
298
302
|
}
|
|
299
303
|
|
|
300
|
-
/* Base result link */
|
|
301
304
|
.search-result {
|
|
302
305
|
display: flex;
|
|
303
306
|
align-items: flex-start;
|
|
304
|
-
gap: var(--
|
|
305
|
-
padding:
|
|
306
|
-
border-radius:
|
|
307
|
+
gap: var(--spacing-3);
|
|
308
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
309
|
+
border-radius: var(--radius-lg);
|
|
307
310
|
cursor: pointer;
|
|
308
311
|
text-decoration: none;
|
|
309
|
-
color: var(--
|
|
310
|
-
transition: background-color
|
|
312
|
+
color: var(--foreground);
|
|
313
|
+
transition: background-color var(--transition-fast);
|
|
311
314
|
}
|
|
312
315
|
|
|
313
316
|
.search-result:hover,
|
|
314
317
|
.search-result[aria-selected="true"] {
|
|
315
|
-
background-color: var(--
|
|
318
|
+
background-color: var(--accent);
|
|
316
319
|
text-decoration: none;
|
|
317
320
|
}
|
|
318
321
|
|
|
319
322
|
.search-result:hover .search-result-title,
|
|
320
323
|
.search-result[aria-selected="true"] .search-result-title {
|
|
321
|
-
color: var(--
|
|
324
|
+
color: var(--primary);
|
|
322
325
|
text-decoration: none;
|
|
323
326
|
}
|
|
324
327
|
|
|
325
|
-
.dark .search-result:hover,
|
|
326
|
-
.dark .search-result[aria-selected="true"] {
|
|
327
|
-
background-color: rgba(255, 255, 255, 0.08);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
328
|
.search-result-icon {
|
|
331
329
|
flex-shrink: 0;
|
|
332
|
-
width:
|
|
333
|
-
height:
|
|
330
|
+
width: 1rem;
|
|
331
|
+
height: 1rem;
|
|
334
332
|
margin-top: 2px;
|
|
335
|
-
color: var(--
|
|
333
|
+
color: var(--muted-foreground);
|
|
336
334
|
}
|
|
337
335
|
|
|
338
336
|
.search-result-content {
|
|
@@ -345,16 +343,18 @@
|
|
|
345
343
|
|
|
346
344
|
.search-result-title {
|
|
347
345
|
font-size: var(--text-sm);
|
|
348
|
-
font-weight:
|
|
346
|
+
font-weight: var(--font-medium);
|
|
347
|
+
color: var(--foreground);
|
|
349
348
|
white-space: nowrap;
|
|
350
349
|
overflow: hidden;
|
|
351
350
|
text-overflow: ellipsis;
|
|
352
351
|
text-decoration: none;
|
|
352
|
+
transition: color var(--transition-fast);
|
|
353
353
|
}
|
|
354
354
|
|
|
355
355
|
.search-result-excerpt {
|
|
356
356
|
font-size: var(--text-xs);
|
|
357
|
-
color: var(--
|
|
357
|
+
color: var(--muted-foreground);
|
|
358
358
|
white-space: nowrap;
|
|
359
359
|
overflow: hidden;
|
|
360
360
|
text-overflow: ellipsis;
|
|
@@ -362,143 +362,152 @@
|
|
|
362
362
|
}
|
|
363
363
|
|
|
364
364
|
.search-result-excerpt mark {
|
|
365
|
-
background-color:
|
|
365
|
+
background-color: oklch(from var(--primary) l c h / 15%);
|
|
366
366
|
color: inherit;
|
|
367
367
|
font-weight: inherit;
|
|
368
368
|
border-radius: 2px;
|
|
369
369
|
padding: 0 1px;
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
-
/* Title highlight - light background like Stripe */
|
|
373
372
|
.search-title-highlight {
|
|
374
|
-
background-color:
|
|
373
|
+
background-color: oklch(from var(--primary) l c h / 15%);
|
|
375
374
|
color: inherit;
|
|
376
375
|
font-weight: inherit;
|
|
377
376
|
border-radius: 2px;
|
|
378
377
|
padding: 0 1px;
|
|
379
378
|
}
|
|
380
379
|
|
|
381
|
-
/* Page-level results */
|
|
382
380
|
.search-result-page {
|
|
383
|
-
font-weight:
|
|
381
|
+
font-weight: var(--font-medium);
|
|
384
382
|
}
|
|
385
383
|
|
|
386
|
-
/* Sections list */
|
|
387
384
|
.search-result-sections {
|
|
388
385
|
list-style: none;
|
|
389
386
|
padding: 0;
|
|
390
387
|
margin: 0;
|
|
391
|
-
padding-left:
|
|
388
|
+
padding-left: var(--spacing-3);
|
|
392
389
|
}
|
|
393
390
|
|
|
394
391
|
.search-result-section-item {
|
|
395
392
|
position: relative;
|
|
396
393
|
}
|
|
397
394
|
|
|
398
|
-
/* Section result */
|
|
399
395
|
.search-result-section {
|
|
400
|
-
padding-left:
|
|
396
|
+
padding-left: var(--spacing-5);
|
|
401
397
|
}
|
|
402
398
|
|
|
403
399
|
.search-result-section .search-result-title {
|
|
404
|
-
font-weight:
|
|
405
|
-
color: var(--
|
|
400
|
+
font-weight: var(--font-normal);
|
|
401
|
+
color: var(--muted-foreground);
|
|
406
402
|
}
|
|
407
403
|
|
|
408
404
|
.search-result-section:hover .search-result-title,
|
|
409
405
|
.search-result-section[aria-selected="true"] .search-result-title {
|
|
410
|
-
color: var(--
|
|
406
|
+
color: var(--primary);
|
|
411
407
|
}
|
|
412
408
|
|
|
413
|
-
/* Tree connector line */
|
|
414
409
|
.search-result-tree-line {
|
|
415
410
|
position: absolute;
|
|
416
|
-
left:
|
|
411
|
+
left: var(--spacing-3);
|
|
417
412
|
top: 0;
|
|
418
413
|
bottom: 50%;
|
|
419
|
-
width:
|
|
420
|
-
border-left: 1px solid var(--
|
|
421
|
-
border-bottom: 1px solid var(--
|
|
422
|
-
border-radius: 0 0 0
|
|
414
|
+
width: var(--spacing-3);
|
|
415
|
+
border-left: 1px solid var(--border);
|
|
416
|
+
border-bottom: 1px solid var(--border);
|
|
417
|
+
border-radius: 0 0 0 var(--radius-sm);
|
|
423
418
|
}
|
|
424
419
|
|
|
425
420
|
.search-result-section-item:last-child .search-result-tree-line {
|
|
426
421
|
bottom: 50%;
|
|
427
422
|
}
|
|
428
423
|
|
|
429
|
-
/* Continuous line for middle items */
|
|
430
424
|
.search-result-section-item:not(:last-child)::before {
|
|
431
425
|
content: '';
|
|
432
426
|
position: absolute;
|
|
433
|
-
left:
|
|
427
|
+
left: var(--spacing-3);
|
|
434
428
|
top: 50%;
|
|
435
429
|
bottom: -50%;
|
|
436
430
|
width: 1px;
|
|
437
|
-
background-color: var(--
|
|
431
|
+
background-color: var(--border);
|
|
438
432
|
}
|
|
439
433
|
|
|
440
|
-
/* Load More Link */
|
|
441
434
|
.search-load-more {
|
|
442
435
|
list-style: none;
|
|
443
|
-
padding: var(--
|
|
436
|
+
padding: var(--spacing-3);
|
|
444
437
|
}
|
|
445
438
|
|
|
446
439
|
.search-load-more-btn {
|
|
447
|
-
font-size:
|
|
448
|
-
font-weight:
|
|
449
|
-
color: var(--
|
|
440
|
+
font-size: var(--text-sm);
|
|
441
|
+
font-weight: var(--font-medium);
|
|
442
|
+
color: var(--primary);
|
|
450
443
|
background: none;
|
|
451
444
|
border: none;
|
|
452
445
|
padding: 0;
|
|
453
446
|
cursor: pointer;
|
|
447
|
+
transition: opacity var(--transition-fast);
|
|
454
448
|
}
|
|
455
449
|
|
|
456
450
|
.search-load-more-btn:hover {
|
|
457
451
|
opacity: 0.8;
|
|
458
452
|
}
|
|
459
453
|
|
|
460
|
-
.search-load-more-btn:focus {
|
|
454
|
+
.search-load-more-btn:focus-visible {
|
|
461
455
|
outline: none;
|
|
456
|
+
box-shadow: 0 0 0 var(--ring-width) var(--ring);
|
|
457
|
+
border-radius: var(--radius-sm);
|
|
462
458
|
}
|
|
463
459
|
|
|
464
|
-
/* Search Modal Footer */
|
|
465
460
|
.search-modal-footer {
|
|
466
461
|
display: flex;
|
|
467
462
|
align-items: center;
|
|
468
|
-
gap: var(--
|
|
469
|
-
padding:
|
|
470
|
-
border-top: 1px solid var(--
|
|
471
|
-
background-color: var(--
|
|
472
|
-
font-size:
|
|
473
|
-
color: var(--
|
|
463
|
+
gap: var(--spacing-4);
|
|
464
|
+
padding: var(--spacing-3) var(--spacing-5);
|
|
465
|
+
border-top: 1px solid var(--border);
|
|
466
|
+
background-color: var(--muted);
|
|
467
|
+
font-size: 0.6875rem;
|
|
468
|
+
color: var(--muted-foreground);
|
|
474
469
|
}
|
|
475
470
|
|
|
476
471
|
.search-modal-hint {
|
|
477
472
|
display: flex;
|
|
478
473
|
align-items: center;
|
|
479
|
-
gap:
|
|
474
|
+
gap: var(--spacing-1);
|
|
480
475
|
}
|
|
481
476
|
|
|
482
477
|
.search-modal-hint kbd {
|
|
483
478
|
display: inline-flex;
|
|
484
479
|
align-items: center;
|
|
485
480
|
justify-content: center;
|
|
486
|
-
min-width:
|
|
487
|
-
height:
|
|
488
|
-
padding: 0
|
|
481
|
+
min-width: 1.125rem;
|
|
482
|
+
height: 1.125rem;
|
|
483
|
+
padding: 0 var(--spacing-1);
|
|
489
484
|
font-family: var(--font-mono);
|
|
490
|
-
font-size:
|
|
491
|
-
background-color: var(--
|
|
492
|
-
border: 1px solid var(--
|
|
493
|
-
border-radius:
|
|
485
|
+
font-size: 0.625rem;
|
|
486
|
+
background-color: var(--background);
|
|
487
|
+
border: 1px solid var(--border);
|
|
488
|
+
border-radius: var(--radius-sm);
|
|
494
489
|
}
|
|
495
490
|
|
|
496
|
-
|
|
497
|
-
|
|
491
|
+
@media (max-width: 1024px) {
|
|
492
|
+
|
|
493
|
+
|
|
498
494
|
.search-trigger {
|
|
499
495
|
min-width: auto;
|
|
500
|
-
|
|
501
|
-
|
|
496
|
+
width: 2.25rem;
|
|
497
|
+
height: 2.25rem;
|
|
498
|
+
padding: 0;
|
|
499
|
+
background: transparent;
|
|
500
|
+
border-color: transparent;
|
|
501
|
+
justify-content: center;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
.search-trigger:hover {
|
|
505
|
+
background-color: var(--muted);
|
|
506
|
+
border-color: transparent;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
.dark .search-trigger:hover {
|
|
510
|
+
background-color: oklch(from var(--muted) l c h / 50%);
|
|
502
511
|
}
|
|
503
512
|
|
|
504
513
|
.search-trigger-text,
|
|
@@ -506,34 +515,34 @@
|
|
|
506
515
|
display: none;
|
|
507
516
|
}
|
|
508
517
|
|
|
509
|
-
.search-trigger-icon {
|
|
510
|
-
|
|
518
|
+
.search-trigger-icon .docyard-icon {
|
|
519
|
+
width: 1.25rem;
|
|
520
|
+
height: 1.25rem;
|
|
511
521
|
}
|
|
512
522
|
|
|
513
|
-
.
|
|
514
|
-
|
|
515
|
-
|
|
523
|
+
.header-center {
|
|
524
|
+
flex: 0;
|
|
525
|
+
padding: 0;
|
|
526
|
+
margin-left: auto;
|
|
516
527
|
}
|
|
517
528
|
|
|
518
|
-
.search-modal-
|
|
519
|
-
|
|
520
|
-
max-height: 100%;
|
|
521
|
-
margin: 0;
|
|
522
|
-
border-radius: 0;
|
|
523
|
-
border: none;
|
|
529
|
+
.search-modal-header {
|
|
530
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
524
531
|
}
|
|
525
532
|
|
|
526
|
-
.search-modal-
|
|
527
|
-
|
|
533
|
+
.search-modal-input {
|
|
534
|
+
font-size: var(--text-sm);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.search-modal-close {
|
|
538
|
+
display: none;
|
|
528
539
|
}
|
|
529
540
|
|
|
530
541
|
.search-modal-footer {
|
|
531
|
-
|
|
532
|
-
gap: var(--space-2);
|
|
542
|
+
display: none;
|
|
533
543
|
}
|
|
534
544
|
}
|
|
535
545
|
|
|
536
|
-
/* Reduced Motion */
|
|
537
546
|
@media (prefers-reduced-motion: reduce) {
|
|
538
547
|
.search-modal-spinner {
|
|
539
548
|
animation: none;
|
|
@@ -543,7 +552,10 @@
|
|
|
543
552
|
.search-modal-backdrop,
|
|
544
553
|
.search-modal-container,
|
|
545
554
|
.search-trigger,
|
|
546
|
-
.search-result
|
|
555
|
+
.search-result,
|
|
556
|
+
.search-modal-close,
|
|
557
|
+
.search-result-title,
|
|
558
|
+
.search-load-more-btn {
|
|
547
559
|
transition: none;
|
|
548
560
|
}
|
|
549
561
|
}
|