@dominikcz/greg 0.9.27

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.
Files changed (183) hide show
  1. package/README.md +397 -0
  2. package/bin/greg.js +241 -0
  3. package/bin/init.js +351 -0
  4. package/bin/templates/docs/getting-started.md +47 -0
  5. package/bin/templates/docs/index.md +11 -0
  6. package/bin/templates/greg.config.js +39 -0
  7. package/bin/templates/greg.config.ts +38 -0
  8. package/bin/templates/index.html +16 -0
  9. package/bin/templates/src/App.svelte +5 -0
  10. package/bin/templates/src/app.css +20 -0
  11. package/bin/templates/src/main.js +9 -0
  12. package/bin/templates/svelte.config.js +1 -0
  13. package/bin/templates/tsconfig.json +21 -0
  14. package/bin/templates/vite.config.js +23 -0
  15. package/docs/__partials/markdown/examples/basic.md +4 -0
  16. package/docs/__partials/markdown/examples/diff.md +10 -0
  17. package/docs/__partials/markdown/examples/focus.md +5 -0
  18. package/docs/__partials/markdown/examples/language-title.md +3 -0
  19. package/docs/__partials/markdown/examples/line-highlighting.md +5 -0
  20. package/docs/__partials/markdown/examples/line-numbers.md +5 -0
  21. package/docs/__partials/note.md +4 -0
  22. package/docs/guide/__shared-warning.md +4 -0
  23. package/docs/guide/asset-handling.md +88 -0
  24. package/docs/guide/deploying.md +162 -0
  25. package/docs/guide/getting-started.md +334 -0
  26. package/docs/guide/index.md +23 -0
  27. package/docs/guide/localization.md +290 -0
  28. package/docs/guide/markdown/code.md +95 -0
  29. package/docs/guide/markdown/components-and-mermaid.md +43 -0
  30. package/docs/guide/markdown/containers.md +110 -0
  31. package/docs/guide/markdown/header-anchors.md +34 -0
  32. package/docs/guide/markdown/includes.md +84 -0
  33. package/docs/guide/markdown/index.md +20 -0
  34. package/docs/guide/markdown/inline-attributes.md +21 -0
  35. package/docs/guide/markdown/links-and-toc.md +64 -0
  36. package/docs/guide/markdown/math.md +54 -0
  37. package/docs/guide/markdown/syntax-highlighting.md +75 -0
  38. package/docs/guide/routing.md +150 -0
  39. package/docs/guide/using-svelte.md +88 -0
  40. package/docs/guide/versioning.md +281 -0
  41. package/docs/incompatibilities.md +48 -0
  42. package/docs/index.md +43 -0
  43. package/docs/reference/badge.md +100 -0
  44. package/docs/reference/carbon-ads.md +46 -0
  45. package/docs/reference/code-group.md +126 -0
  46. package/docs/reference/home-page.md +232 -0
  47. package/docs/reference/index.md +18 -0
  48. package/docs/reference/markdowndocs.md +275 -0
  49. package/docs/reference/outline.md +79 -0
  50. package/docs/reference/search.md +263 -0
  51. package/docs/reference/steps.md +200 -0
  52. package/docs/reference/team-page.md +189 -0
  53. package/docs/reference/theme.md +150 -0
  54. package/fakeDocsGenerator/generate_docs.js +310 -0
  55. package/package.json +92 -0
  56. package/scripts/build-versions.js +609 -0
  57. package/scripts/generate-static.js +79 -0
  58. package/scripts/render-markdown.js +420 -0
  59. package/src/lib/MarkdownDocs/AiChat.svelte +936 -0
  60. package/src/lib/MarkdownDocs/BackToTop.svelte +68 -0
  61. package/src/lib/MarkdownDocs/Breadcrumb.svelte +68 -0
  62. package/src/lib/MarkdownDocs/DocsNavigation.svelte +149 -0
  63. package/src/lib/MarkdownDocs/DocsSiteHeader.svelte +758 -0
  64. package/src/lib/MarkdownDocs/DocsVersionSwitcher.svelte +103 -0
  65. package/src/lib/MarkdownDocs/MarkdownDocs.svelte +2115 -0
  66. package/src/lib/MarkdownDocs/MarkdownRenderer.svelte +487 -0
  67. package/src/lib/MarkdownDocs/Outline.svelte +238 -0
  68. package/src/lib/MarkdownDocs/PrevNext.svelte +115 -0
  69. package/src/lib/MarkdownDocs/SearchModal.svelte +1241 -0
  70. package/src/lib/MarkdownDocs/TreeView.svelte +32 -0
  71. package/src/lib/MarkdownDocs/TreeViewItem.svelte +219 -0
  72. package/src/lib/MarkdownDocs/VersionOutdatedNotice.svelte +72 -0
  73. package/src/lib/MarkdownDocs/__tests__/codeDirectives.test.js +54 -0
  74. package/src/lib/MarkdownDocs/__tests__/common.test.js +41 -0
  75. package/src/lib/MarkdownDocs/__tests__/docsExamplesLint.test.js +77 -0
  76. package/src/lib/MarkdownDocs/__tests__/fixtures/docs/markdown/__partial-basic.md +3 -0
  77. package/src/lib/MarkdownDocs/__tests__/fixtures/docs/markdown/snippet.js +9 -0
  78. package/src/lib/MarkdownDocs/__tests__/fixtures/includes/part.md +11 -0
  79. package/src/lib/MarkdownDocs/__tests__/fixtures/includes/wrapper.md +5 -0
  80. package/src/lib/MarkdownDocs/__tests__/fixtures/snippets/sample.js +8 -0
  81. package/src/lib/MarkdownDocs/__tests__/fixtures/snippets/sample.md +5 -0
  82. package/src/lib/MarkdownDocs/__tests__/helpers.js +67 -0
  83. package/src/lib/MarkdownDocs/__tests__/localeUtils.test.js +204 -0
  84. package/src/lib/MarkdownDocs/__tests__/markdown.test.js +704 -0
  85. package/src/lib/MarkdownDocs/__tests__/markdownRendererRuntime.test.js +65 -0
  86. package/src/lib/MarkdownDocs/__tests__/searchIndexBuilder.test.js +117 -0
  87. package/src/lib/MarkdownDocs/__tests__/sqliteStore.test.js +202 -0
  88. package/src/lib/MarkdownDocs/__tests__/useRouter.test.js +16 -0
  89. package/src/lib/MarkdownDocs/ai/adapters/customAdapter.js +14 -0
  90. package/src/lib/MarkdownDocs/ai/adapters/customAdapter.ts +43 -0
  91. package/src/lib/MarkdownDocs/ai/adapters/ollamaAdapter.js +81 -0
  92. package/src/lib/MarkdownDocs/ai/adapters/ollamaAdapter.ts +116 -0
  93. package/src/lib/MarkdownDocs/ai/adapters/openaiAdapter.js +92 -0
  94. package/src/lib/MarkdownDocs/ai/adapters/openaiAdapter.ts +137 -0
  95. package/src/lib/MarkdownDocs/ai/aiProvider.ts +31 -0
  96. package/src/lib/MarkdownDocs/ai/characters.js +52 -0
  97. package/src/lib/MarkdownDocs/ai/characters.ts +69 -0
  98. package/src/lib/MarkdownDocs/ai/chunkStore.ts +25 -0
  99. package/src/lib/MarkdownDocs/ai/chunker.js +85 -0
  100. package/src/lib/MarkdownDocs/ai/chunker.ts +135 -0
  101. package/src/lib/MarkdownDocs/ai/docLinker.js +26 -0
  102. package/src/lib/MarkdownDocs/ai/docLinker.ts +36 -0
  103. package/src/lib/MarkdownDocs/ai/promptBuilder.js +33 -0
  104. package/src/lib/MarkdownDocs/ai/promptBuilder.ts +53 -0
  105. package/src/lib/MarkdownDocs/ai/ragPipeline.js +54 -0
  106. package/src/lib/MarkdownDocs/ai/ragPipeline.ts +106 -0
  107. package/src/lib/MarkdownDocs/ai/stores/memoryStore.js +88 -0
  108. package/src/lib/MarkdownDocs/ai/stores/memoryStore.ts +112 -0
  109. package/src/lib/MarkdownDocs/ai/stores/sqliteStore.ts +372 -0
  110. package/src/lib/MarkdownDocs/ai/types.ts +71 -0
  111. package/src/lib/MarkdownDocs/aiServer.js +288 -0
  112. package/src/lib/MarkdownDocs/codeDirectives.js +191 -0
  113. package/src/lib/MarkdownDocs/codeFenceInfo.js +45 -0
  114. package/src/lib/MarkdownDocs/codeGroup.ts +46 -0
  115. package/src/lib/MarkdownDocs/common.ts +47 -0
  116. package/src/lib/MarkdownDocs/docsUtils.js +281 -0
  117. package/src/lib/MarkdownDocs/index.plugins.js +22 -0
  118. package/src/lib/MarkdownDocs/layouts/LayoutDoc.svelte +8 -0
  119. package/src/lib/MarkdownDocs/layouts/LayoutHome.svelte +58 -0
  120. package/src/lib/MarkdownDocs/layouts/LayoutPage.svelte +9 -0
  121. package/src/lib/MarkdownDocs/loadGregConfig.js +82 -0
  122. package/src/lib/MarkdownDocs/localeUtils.ts +682 -0
  123. package/src/lib/MarkdownDocs/markdownRendererRuntime.ts +314 -0
  124. package/src/lib/MarkdownDocs/mermaidThemes.js +319 -0
  125. package/src/lib/MarkdownDocs/navigationUtils.js +22 -0
  126. package/src/lib/MarkdownDocs/rehypeCodeGroup.js +326 -0
  127. package/src/lib/MarkdownDocs/rehypeCodeTitle.js +96 -0
  128. package/src/lib/MarkdownDocs/rehypeToc.js +170 -0
  129. package/src/lib/MarkdownDocs/remarkCodeMeta.js +22 -0
  130. package/src/lib/MarkdownDocs/remarkContainers.js +329 -0
  131. package/src/lib/MarkdownDocs/remarkCustomAnchors.js +42 -0
  132. package/src/lib/MarkdownDocs/remarkEscapeSvelte.js +33 -0
  133. package/src/lib/MarkdownDocs/remarkGlobalComponents.js +65 -0
  134. package/src/lib/MarkdownDocs/remarkImports.js +461 -0
  135. package/src/lib/MarkdownDocs/remarkImportsBrowser.js +349 -0
  136. package/src/lib/MarkdownDocs/remarkInlineAttrs.js +95 -0
  137. package/src/lib/MarkdownDocs/remarkMathToHtml.js +138 -0
  138. package/src/lib/MarkdownDocs/searchIndexBuilder.js +497 -0
  139. package/src/lib/MarkdownDocs/searchServer.js +263 -0
  140. package/src/lib/MarkdownDocs/treeViewTypes.ts +11 -0
  141. package/src/lib/MarkdownDocs/useRouter.svelte.ts +114 -0
  142. package/src/lib/MarkdownDocs/useSplitter.svelte.ts +33 -0
  143. package/src/lib/MarkdownDocs/versioningDefaults.js +20 -0
  144. package/src/lib/MarkdownDocs/vitePluginAiServer.js +204 -0
  145. package/src/lib/MarkdownDocs/vitePluginCopyDocs.js +153 -0
  146. package/src/lib/MarkdownDocs/vitePluginFrontmatter.js +109 -0
  147. package/src/lib/MarkdownDocs/vitePluginGregConfig.js +108 -0
  148. package/src/lib/MarkdownDocs/vitePluginSearchIndex.js +57 -0
  149. package/src/lib/MarkdownDocs/vitePluginSearchServer.js +190 -0
  150. package/src/lib/components/Badge.svelte +59 -0
  151. package/src/lib/components/Button.svelte +138 -0
  152. package/src/lib/components/CarbonAds.svelte +99 -0
  153. package/src/lib/components/CodeGroup.svelte +102 -0
  154. package/src/lib/components/Feature.svelte +209 -0
  155. package/src/lib/components/Features.svelte +123 -0
  156. package/src/lib/components/Hero.svelte +399 -0
  157. package/src/lib/components/Image.svelte +128 -0
  158. package/src/lib/components/Link.svelte +105 -0
  159. package/src/lib/components/SocialLink.svelte +84 -0
  160. package/src/lib/components/SocialLinks.svelte +33 -0
  161. package/src/lib/components/Steps.svelte +143 -0
  162. package/src/lib/components/TeamMember.svelte +273 -0
  163. package/src/lib/components/TeamMembers.svelte +81 -0
  164. package/src/lib/components/TeamPage.svelte +65 -0
  165. package/src/lib/components/TeamPageSection.svelte +108 -0
  166. package/src/lib/components/TeamPageTitle.svelte +89 -0
  167. package/src/lib/components/index.js +24 -0
  168. package/src/lib/portal/context.js +12 -0
  169. package/src/lib/portal/index.js +3 -0
  170. package/src/lib/portal/portal.svelte +14 -0
  171. package/src/lib/portal/slot.svelte +8 -0
  172. package/src/lib/scss/__code.scss +128 -0
  173. package/src/lib/scss/__containers.scss +99 -0
  174. package/src/lib/scss/__markdown.scss +447 -0
  175. package/src/lib/scss/__scrollbar.scss +60 -0
  176. package/src/lib/scss/__steps.scss +100 -0
  177. package/src/lib/scss/__theme.scss +238 -0
  178. package/src/lib/scss/__toc.scss +55 -0
  179. package/src/lib/scss/__utilities.scss +7 -0
  180. package/src/lib/scss/greg.scss +9 -0
  181. package/src/lib/spinner/spinner.svelte +42 -0
  182. package/svelte.config.js +146 -0
  183. package/types/index.d.ts +456 -0
@@ -0,0 +1,447 @@
1
+ @use "./__theme.scss" as *;
2
+
3
+ .markdown-body {
4
+ --base-size-4: 0.25rem;
5
+ --base-size-8: 0.5rem;
6
+ --base-size-16: 1rem;
7
+ --base-size-24: 1.5rem;
8
+ --base-size-40: 2.5rem;
9
+ --base-text-weight-normal: 400;
10
+ --base-text-weight-medium: 500;
11
+ --base-text-weight-semibold: 600;
12
+ --fontStack-monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
13
+ --fontStack-sansSerif: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
14
+
15
+ @include greg-light-markdown-vars;
16
+
17
+ @media (prefers-color-scheme: dark) {
18
+ @include greg-dark-markdown-vars;
19
+ color-scheme: dark;
20
+ }
21
+
22
+ .greg[data-theme="dark"] & {
23
+ @include greg-dark-markdown-vars;
24
+ color-scheme: dark;
25
+ }
26
+
27
+ .greg[data-theme="light"] & {
28
+ @include greg-light-markdown-vars;
29
+ color-scheme: light;
30
+ }
31
+
32
+ -ms-text-size-adjust: 100%;
33
+ -webkit-text-size-adjust: 100%;
34
+ margin: 0;
35
+ font-family: var(--fontStack-sansSerif);
36
+ font-size: 16px;
37
+ line-height: 1.75;
38
+ font-weight: var(--base-text-weight-normal);
39
+ color: var(--fgColor-default);
40
+ background-color: var(--bgColor-default);
41
+ word-wrap: break-word;
42
+
43
+ &::before,
44
+ &::after {
45
+ display: table;
46
+ content: "";
47
+ }
48
+
49
+ &::after {
50
+ clear: both;
51
+ }
52
+
53
+ >*:first-child {
54
+ margin-top: 0 !important;
55
+ }
56
+
57
+ >*:last-child {
58
+ margin-bottom: 0 !important;
59
+ }
60
+
61
+ blockquote,
62
+ ul,
63
+ ol,
64
+ dl,
65
+ table,
66
+ pre,
67
+ details {
68
+ margin-top: 0;
69
+ margin-bottom: var(--base-size-16);
70
+ }
71
+
72
+ p {
73
+ margin: 1rem 0 0.4rem 0;
74
+ }
75
+
76
+ img {
77
+ max-width: 100%;
78
+ border-style: none;
79
+ }
80
+
81
+ hr {
82
+ height: 0.25em;
83
+ padding: 0;
84
+ margin: var(--base-size-24) 0;
85
+ background-color: var(--borderColor-default);
86
+ border: 0;
87
+ }
88
+
89
+ a {
90
+ background-color: transparent;
91
+ color: var(--fgColor-accent);
92
+ text-decoration: underline;
93
+ text-decoration-color: color-mix(in srgb, var(--fgColor-accent) 40%, transparent);
94
+ text-underline-offset: 2px;
95
+ transition: color 0.15s, text-decoration-color 0.15s;
96
+
97
+ &:hover {
98
+ color: var(--fgColor-accent);
99
+ text-decoration-color: var(--fgColor-accent);
100
+ }
101
+
102
+ &:not([href]) {
103
+ color: inherit;
104
+ text-decoration: none;
105
+ }
106
+ }
107
+
108
+ h1,
109
+ h2,
110
+ h3,
111
+ h4,
112
+ h5,
113
+ h6 {
114
+ margin-top: var(--base-size-24);
115
+ margin-bottom: var(--base-size-16);
116
+ font-weight: var(--base-text-weight-semibold);
117
+ line-height: 1.25;
118
+
119
+ a:not(.header-anchor) {
120
+ text-decoration: none;
121
+ text-decoration-color: transparent;
122
+
123
+ &:hover {
124
+ text-decoration: underline;
125
+ text-decoration-color: var(--fgColor-accent);
126
+ }
127
+ }
128
+ }
129
+
130
+ h1 {
131
+ font-size: 2em;
132
+ padding-bottom: 0.3em;
133
+ border-bottom: 1px solid var(--borderColor-muted);
134
+ }
135
+
136
+ h2 {
137
+ font-size: 1.5em;
138
+ padding-bottom: 0.3em;
139
+ border-bottom: 1px solid var(--borderColor-muted);
140
+ }
141
+
142
+ h3 { font-size: 1.25em; }
143
+ h4 { font-size: 1em; }
144
+ h5 { font-size: 0.875em; }
145
+ h6 {
146
+ font-size: 0.85em;
147
+ color: var(--fgColor-muted);
148
+ }
149
+
150
+ blockquote {
151
+ margin: 0;
152
+ padding: 0 1em;
153
+ color: var(--fgColor-muted);
154
+ border-left: 0.25em solid var(--borderColor-default);
155
+
156
+ > :first-child {
157
+ margin-top: 0;
158
+ }
159
+
160
+ > :last-child {
161
+ margin-bottom: 0;
162
+ }
163
+ }
164
+
165
+ ul,
166
+ ol {
167
+ padding-left: 2em;
168
+ }
169
+
170
+ ul ul,
171
+ ul ol,
172
+ ol ul,
173
+ ol ol {
174
+ margin-top: 0;
175
+ margin-bottom: 0;
176
+ }
177
+
178
+ li + li {
179
+ margin-top: 0.25em;
180
+ }
181
+
182
+ li > p {
183
+ margin-top: var(--base-size-16);
184
+ }
185
+
186
+ code,
187
+ tt {
188
+ padding: 0.2em 0.4em;
189
+ margin: 0;
190
+ font-family: var(--fontStack-monospace);
191
+ font-size: 85%;
192
+ white-space: break-spaces;
193
+ background-color: var(--bgColor-neutral-muted);
194
+ border-radius: 6px;
195
+ }
196
+
197
+ pre,
198
+ pre code,
199
+ pre tt {
200
+ font-family: var(--fontStack-monospace);
201
+ }
202
+
203
+ pre > code {
204
+ padding: 0;
205
+ margin: 0;
206
+ white-space: pre;
207
+ word-break: normal;
208
+ border: 0;
209
+ background: transparent;
210
+ }
211
+
212
+ kbd {
213
+ display: inline-block;
214
+ padding: var(--base-size-4);
215
+ font: 11px var(--fontStack-monospace);
216
+ line-height: 10px;
217
+ color: var(--fgColor-default);
218
+ vertical-align: middle;
219
+ background-color: var(--bgColor-muted);
220
+ border: 1px solid var(--borderColor-neutral-muted);
221
+ border-radius: 6px;
222
+ box-shadow: inset 0 -1px 0 var(--borderColor-neutral-muted);
223
+ }
224
+
225
+ /* ������ Heading anchors ������������������������������������������������������������������������������������������������������������������������������������������������ */
226
+ h1, h2, h3, h4, h5, h6 {
227
+ &:hover .header-anchor,
228
+ &:has(.header-anchor:focus-within) .header-anchor {
229
+ opacity: 1;
230
+ }
231
+ }
232
+
233
+ .header-anchor {
234
+ float: left;
235
+ margin-left: -0.87em;
236
+ padding-right: 0.23em;
237
+ font-weight: 500;
238
+ user-select: none;
239
+ opacity: 0;
240
+ color: var(--greg-accent);
241
+ text-decoration: none;
242
+ transition: opacity 0.2s, color 0.2s;
243
+
244
+ &:hover {
245
+ opacity: 1;
246
+ text-decoration: none;
247
+ }
248
+ }
249
+
250
+ pre {
251
+ --greg-code-block-pad-x: 24px;
252
+ --greg-code-block-pad-y: 20px;
253
+ --greg-code-line-height: 1.7;
254
+
255
+ overflow: auto;
256
+ scrollbar-gutter: stable;
257
+ padding: 0;
258
+
259
+ &.shiki.shiki-themes {
260
+ border-radius: 8px;
261
+ background-color: var(--greg-code-block-bg) !important;
262
+ color: var(--shiki-light) !important;
263
+ }
264
+
265
+ &.shiki.shiki-themes span {
266
+ color: var(--shiki-light) !important;
267
+ font-style: var(--shiki-light-font-style, normal) !important;
268
+ font-weight: var(--shiki-light-font-weight, 400) !important;
269
+ text-decoration: var(--shiki-light-text-decoration, none) !important;
270
+ }
271
+
272
+ @media (prefers-color-scheme: dark) {
273
+ &.shiki.shiki-themes {
274
+ background-color: var(--greg-code-block-bg) !important;
275
+ color: var(--shiki-dark) !important;
276
+ }
277
+
278
+ &.shiki.shiki-themes span {
279
+ color: var(--shiki-dark) !important;
280
+ font-style: var(--shiki-dark-font-style, normal) !important;
281
+ font-weight: var(--shiki-dark-font-weight, 400) !important;
282
+ text-decoration: var(--shiki-dark-text-decoration, none) !important;
283
+ }
284
+ }
285
+
286
+ .greg[data-theme="dark"] &.shiki.shiki-themes {
287
+ background-color: var(--greg-code-block-bg) !important;
288
+ color: var(--shiki-dark) !important;
289
+ }
290
+
291
+ .greg[data-theme="dark"] &.shiki.shiki-themes span {
292
+ color: var(--shiki-dark) !important;
293
+ font-style: var(--shiki-dark-font-style, normal) !important;
294
+ font-weight: var(--shiki-dark-font-weight, 400) !important;
295
+ text-decoration: var(--shiki-dark-text-decoration, none) !important;
296
+ }
297
+
298
+ .greg[data-theme="light"] &.shiki.shiki-themes {
299
+ background-color: var(--greg-code-block-bg) !important;
300
+ color: var(--shiki-light) !important;
301
+ }
302
+
303
+ .greg[data-theme="light"] &.shiki.shiki-themes span {
304
+ color: var(--shiki-light) !important;
305
+ font-style: var(--shiki-light-font-style, normal) !important;
306
+ font-weight: var(--shiki-light-font-weight, 400) !important;
307
+ text-decoration: var(--shiki-light-text-decoration, none) !important;
308
+ }
309
+
310
+ code {
311
+ display: block;
312
+ overflow: visible;
313
+ padding: var(--greg-code-block-pad-y) var(--greg-code-block-pad-x);
314
+ margin: 0;
315
+ width: fit-content;
316
+ min-width: 100%;
317
+ line-height: var(--greg-code-line-height);
318
+ font-size: 0.875rem;
319
+ }
320
+
321
+ code .line {
322
+ display: inline-block;
323
+ min-width: 100%;
324
+ }
325
+
326
+ code .line.highlighted {
327
+ background: var(--greg-code-line-highlight-color);
328
+ margin-inline: calc(var(--greg-code-block-pad-x) * -1);
329
+ padding-inline: var(--greg-code-block-pad-x);
330
+ width: calc(100% + (2 * var(--greg-code-block-pad-x)));
331
+ }
332
+
333
+ code .line.focused {
334
+ margin-inline: calc(var(--greg-code-block-pad-x) * -1);
335
+ padding-inline: var(--greg-code-block-pad-x);
336
+ width: calc(100% + (2 * var(--greg-code-block-pad-x)));
337
+ }
338
+
339
+ &.has-focused-lines code .line:not(.focused) {
340
+ filter: blur(0.095rem);
341
+ opacity: 0.4;
342
+ transition: filter 0.35s, opacity 0.35s;
343
+ }
344
+
345
+ &:hover.has-focused-lines code .line:not(.focused) {
346
+ filter: blur(0);
347
+ opacity: 1;
348
+ }
349
+
350
+ code .line.diff {
351
+ position: relative;
352
+ margin-inline: calc(var(--greg-code-block-pad-x) * -1);
353
+ padding-inline: var(--greg-code-block-pad-x);
354
+ width: calc(100% + (2 * var(--greg-code-block-pad-x)));
355
+ }
356
+
357
+ code .line.diff.add {
358
+ background: color-mix(in srgb, #2ea043 22%, transparent);
359
+ }
360
+
361
+ &.has-diff code .line.diff::before {
362
+ position: absolute;
363
+ left: 10px;
364
+ width: 1rem;
365
+ text-align: center;
366
+ user-select: none;
367
+ font-weight: 700;
368
+ opacity: 1;
369
+ text-shadow: 0 0 0.01px currentColor;
370
+ }
371
+
372
+ &.has-diff code .line.diff.add::before {
373
+ content: '+';
374
+ color: var(--greg-code-line-diff-add-symbol-color);
375
+ }
376
+
377
+ code .line.diff.remove {
378
+ background: color-mix(in srgb, #cf222e 22%, transparent);
379
+ }
380
+
381
+ &.has-diff code .line.diff.remove::before {
382
+ content: '-';
383
+ color: var(--greg-code-line-diff-remove-symbol-color);
384
+ }
385
+
386
+ code .line.diff.warning {
387
+ background: color-mix(in srgb, #bf8700 22%, transparent);
388
+ }
389
+
390
+ code .line.diff.error {
391
+ background: color-mix(in srgb, #cf222e 28%, transparent);
392
+ }
393
+
394
+ }
395
+
396
+ :not(pre)>code {
397
+ background-color: var(--greg-code-background);
398
+ color: var(--greg-code-inline-color);
399
+ padding: 0.2rem 0.4rem;
400
+ border-radius: 4px;
401
+ font-size: .875em;
402
+ overflow-wrap: break-word;
403
+ border: 1px solid var(--greg-border-color);
404
+ }
405
+
406
+ th {
407
+ text-align: left;
408
+ }
409
+
410
+ /* ������ Tables ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� */
411
+ table {
412
+ border-spacing: 0;
413
+ border-collapse: collapse;
414
+ display: block;
415
+ width: max-content;
416
+ max-width: 100%;
417
+ overflow-x: auto;
418
+ margin: 1rem 0;
419
+ font-size: 0.9em;
420
+ }
421
+
422
+ table th,
423
+ table td {
424
+ padding: 6px 14px;
425
+ border: 1px solid var(--greg-border-color);
426
+ }
427
+
428
+ table thead th {
429
+ font-weight: 600;
430
+ background-color: var(--greg-menu-background);
431
+ color: var(--greg-color);
432
+ }
433
+
434
+ table tbody tr {
435
+ background-color: var(--greg-main-background);
436
+ transition: background-color 0.1s;
437
+ }
438
+
439
+ table tbody tr:nth-child(even) {
440
+ background-color: color-mix(in srgb, var(--greg-menu-background) 60%, var(--greg-main-background));
441
+ }
442
+
443
+ table tbody tr:hover {
444
+ background-color: var(--greg-accent-light);
445
+ }
446
+ }
447
+
@@ -0,0 +1,60 @@
1
+ /* ── Scrollbar ───────────────────────────────────── */
2
+ html,
3
+ body,
4
+ .greg {
5
+ scrollbar-width: thin;
6
+ scrollbar-color: var(--greg-accent) transparent;
7
+ }
8
+
9
+ html::-webkit-scrollbar,
10
+ body::-webkit-scrollbar,
11
+ .greg::-webkit-scrollbar {
12
+ width: 6px;
13
+ height: 6px;
14
+ }
15
+
16
+ html::-webkit-scrollbar-track,
17
+ body::-webkit-scrollbar-track,
18
+ .greg::-webkit-scrollbar-track {
19
+ background: transparent;
20
+ }
21
+
22
+ html::-webkit-scrollbar-thumb,
23
+ body::-webkit-scrollbar-thumb,
24
+ .greg::-webkit-scrollbar-thumb {
25
+ background-color: var(--greg-accent);
26
+ border-radius: 999px;
27
+ opacity: 0.6;
28
+ }
29
+
30
+ html::-webkit-scrollbar-thumb:hover,
31
+ body::-webkit-scrollbar-thumb:hover,
32
+ .greg::-webkit-scrollbar-thumb:hover {
33
+ opacity: 1;
34
+ }
35
+
36
+ .markdown-body,
37
+ .markdown-body * {
38
+ scrollbar-width: thin;
39
+ scrollbar-color: var(--greg-accent) transparent;
40
+ }
41
+
42
+ .markdown-body *::-webkit-scrollbar {
43
+ width: 6px;
44
+ height: 6px;
45
+ }
46
+
47
+ .markdown-body *::-webkit-scrollbar-track {
48
+ background: transparent;
49
+ }
50
+
51
+ .markdown-body *::-webkit-scrollbar-thumb {
52
+ background-color: var(--greg-accent);
53
+ border-radius: 999px;
54
+ opacity: 0.6;
55
+ }
56
+
57
+ .markdown-body *::-webkit-scrollbar-thumb:hover {
58
+ opacity: 1;
59
+ }
60
+
@@ -0,0 +1,100 @@
1
+ /* ── Steps (Starlight-like) ───────────────────────── */
2
+ .markdown-body .greg-steps,
3
+ .markdown-body steps {
4
+ --_size: 1.75rem;
5
+ --_margin: var(--greg-steps-guide-gap, 0.5rem);
6
+ --_guide: var(--greg-steps-guide-color, color-mix(in srgb, var(--greg-accent) 42%, var(--greg-border-color)));
7
+ margin: 1.75rem 0;
8
+ }
9
+
10
+ .markdown-body .greg-steps > ol,
11
+ .markdown-body steps > ol {
12
+ list-style: none;
13
+ counter-reset: greg-steps-counter;
14
+ padding-inline-start: 0;
15
+ margin: 0;
16
+ }
17
+
18
+ .markdown-body .greg-steps > ol > li,
19
+ .markdown-body steps > ol > li {
20
+ counter-increment: greg-steps-counter;
21
+ position: relative;
22
+ list-style: none;
23
+ padding-inline-start: calc(var(--_size) + 1rem);
24
+ padding-bottom: 1px;
25
+ min-height: calc(var(--_size) + var(--_margin));
26
+ }
27
+
28
+ .markdown-body .greg-steps > ol > li::marker,
29
+ .markdown-body steps > ol > li::marker {
30
+ content: '';
31
+ }
32
+
33
+ .markdown-body .greg-steps > ol > li + li,
34
+ .markdown-body steps > ol > li + li {
35
+ margin-top: 0;
36
+ }
37
+
38
+ .markdown-body .greg-steps > ol > li::before,
39
+ .markdown-body steps > ol > li::before {
40
+ content: counter(greg-steps-counter);
41
+ position: absolute;
42
+ top: 0;
43
+ inset-inline-start: 0;
44
+ width: var(--_size);
45
+ height: var(--_size);
46
+ line-height: var(--_size);
47
+ text-align: center;
48
+ font-size: 0.8rem;
49
+ font-weight: 600;
50
+ color: #fff;
51
+ background-color: var(--greg-accent);
52
+ border-radius: 999px;
53
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--greg-accent) 82%, black);
54
+ }
55
+
56
+ .markdown-body .greg-steps > ol > li::after,
57
+ .markdown-body steps > ol > li::after {
58
+ content: '';
59
+ position: absolute;
60
+ top: calc(var(--_size) + var(--_margin));
61
+ /* compensate li padding-bottom:1px so top and bottom gaps are equal */
62
+ bottom: max(0px, calc(var(--_margin) - 1px));
63
+ inset-inline-start: calc((var(--_size) - 2px) / 2);
64
+ width: 2px;
65
+ background-color: var(--_guide);
66
+ }
67
+
68
+ .markdown-body .greg-steps > ol > li:last-child::after,
69
+ .markdown-body steps > ol > li:last-child::after {
70
+ display: none;
71
+ }
72
+
73
+ .markdown-body .greg-steps > ol > li > :first-child,
74
+ .markdown-body steps > ol > li > :first-child {
75
+ --lh: calc(1em * 1.75);
76
+ --shift-y: calc(0.5 * (var(--_size) - var(--lh)));
77
+ margin-top: 0;
78
+ transform: translateY(var(--shift-y));
79
+ margin-bottom: var(--shift-y);
80
+ }
81
+
82
+ @supports (--prop: 1lh) {
83
+ .markdown-body .greg-steps > ol > li > :first-child,
84
+ .markdown-body steps > ol > li > :first-child {
85
+ --lh: 1lh;
86
+ }
87
+ }
88
+
89
+ .markdown-body .greg-steps > ol > li > :first-child:where(h1, h2, h3, h4, h5, h6),
90
+ .markdown-body steps > ol > li > :first-child:where(h1, h2, h3, h4, h5, h6) {
91
+ --lh: calc(1em * 1.3);
92
+ }
93
+
94
+ .markdown-body .greg-steps > ol > li > p:first-child > strong:first-child,
95
+ .markdown-body steps > ol > li > p:first-child > strong:first-child {
96
+ display: block;
97
+ font-weight: 600;
98
+ color: var(--greg-color);
99
+ }
100
+