@staticbolt/docs 0.0.1-beta.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.
Files changed (94) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +148 -0
  3. package/lib/collapsible-plugin-Bwt7dmKE.mjs +132 -0
  4. package/lib/ec-config.mjs +59 -0
  5. package/lib/ec.config.d.mts +5 -0
  6. package/lib/index.d.mts +371 -0
  7. package/lib/plugins.mjs +0 -0
  8. package/package.json +113 -0
  9. package/sources/assets/fonts/KaTeX_AMS-Regular.ttf +0 -0
  10. package/sources/assets/fonts/KaTeX_AMS-Regular.woff +0 -0
  11. package/sources/assets/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  12. package/sources/assets/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  13. package/sources/assets/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  14. package/sources/assets/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  15. package/sources/assets/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  16. package/sources/assets/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  17. package/sources/assets/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  18. package/sources/assets/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  19. package/sources/assets/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  20. package/sources/assets/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  21. package/sources/assets/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  22. package/sources/assets/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  23. package/sources/assets/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  24. package/sources/assets/fonts/KaTeX_Main-Bold.ttf +0 -0
  25. package/sources/assets/fonts/KaTeX_Main-Bold.woff +0 -0
  26. package/sources/assets/fonts/KaTeX_Main-Bold.woff2 +0 -0
  27. package/sources/assets/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  28. package/sources/assets/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  29. package/sources/assets/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  30. package/sources/assets/fonts/KaTeX_Main-Italic.ttf +0 -0
  31. package/sources/assets/fonts/KaTeX_Main-Italic.woff +0 -0
  32. package/sources/assets/fonts/KaTeX_Main-Italic.woff2 +0 -0
  33. package/sources/assets/fonts/KaTeX_Main-Regular.ttf +0 -0
  34. package/sources/assets/fonts/KaTeX_Main-Regular.woff +0 -0
  35. package/sources/assets/fonts/KaTeX_Main-Regular.woff2 +0 -0
  36. package/sources/assets/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  37. package/sources/assets/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  38. package/sources/assets/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  39. package/sources/assets/fonts/KaTeX_Math-Italic.ttf +0 -0
  40. package/sources/assets/fonts/KaTeX_Math-Italic.woff +0 -0
  41. package/sources/assets/fonts/KaTeX_Math-Italic.woff2 +0 -0
  42. package/sources/assets/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  43. package/sources/assets/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  44. package/sources/assets/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  45. package/sources/assets/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  46. package/sources/assets/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  47. package/sources/assets/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  48. package/sources/assets/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  49. package/sources/assets/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  50. package/sources/assets/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  51. package/sources/assets/fonts/KaTeX_Script-Regular.ttf +0 -0
  52. package/sources/assets/fonts/KaTeX_Script-Regular.woff +0 -0
  53. package/sources/assets/fonts/KaTeX_Script-Regular.woff2 +0 -0
  54. package/sources/assets/fonts/KaTeX_Size1-Regular.ttf +0 -0
  55. package/sources/assets/fonts/KaTeX_Size1-Regular.woff +0 -0
  56. package/sources/assets/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  57. package/sources/assets/fonts/KaTeX_Size2-Regular.ttf +0 -0
  58. package/sources/assets/fonts/KaTeX_Size2-Regular.woff +0 -0
  59. package/sources/assets/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  60. package/sources/assets/fonts/KaTeX_Size3-Regular.ttf +0 -0
  61. package/sources/assets/fonts/KaTeX_Size3-Regular.woff +0 -0
  62. package/sources/assets/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  63. package/sources/assets/fonts/KaTeX_Size4-Regular.ttf +0 -0
  64. package/sources/assets/fonts/KaTeX_Size4-Regular.woff +0 -0
  65. package/sources/assets/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  66. package/sources/assets/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  67. package/sources/assets/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  68. package/sources/assets/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  69. package/sources/parts/badge/badge.part.html +3 -0
  70. package/sources/parts/badge/badge.style.css +44 -0
  71. package/sources/parts/callouts/callouts.part.html +30 -0
  72. package/sources/parts/color-scheme-switch/color-scheme-switch.part.html +111 -0
  73. package/sources/parts/color-scheme-switch/color-scheme-switch.style.css +77 -0
  74. package/sources/parts/document/document.part.html +66 -0
  75. package/sources/parts/header/header.part.html +62 -0
  76. package/sources/parts/header/header.style.css +123 -0
  77. package/sources/parts/mermaid/mermaid.part.html +15 -0
  78. package/sources/parts/pagefind/pagefind.part.html +75 -0
  79. package/sources/parts/pagefind/pagefind.style.css +57 -0
  80. package/sources/parts/pagination-links/pagination-links.part.html +81 -0
  81. package/sources/parts/pagination-links/pagination-links.style.css +58 -0
  82. package/sources/parts/sidebar/directory.part.html +13 -0
  83. package/sources/parts/sidebar/item.part.html +9 -0
  84. package/sources/parts/sidebar/sidebar.part.html +106 -0
  85. package/sources/parts/sidebar/sidebar.style.css +202 -0
  86. package/sources/parts/table-of-content/table-of-content-desktop.part.html +122 -0
  87. package/sources/parts/table-of-content/table-of-content-mobile.part.html +24 -0
  88. package/sources/parts/table-of-content/table-of-content.style.css +189 -0
  89. package/sources/scripts/global.d.ts +27 -0
  90. package/sources/scripts/mermaid.ts +75 -0
  91. package/sources/styles/docs.css +9 -0
  92. package/sources/styles/document.css +579 -0
  93. package/sources/styles/global.css +149 -0
  94. package/sources/styles/katex.css +1445 -0
@@ -0,0 +1,371 @@
1
+ import { Plugin } from "@staticbolt/core";
2
+ import { RehypeExpressiveCodeOptions } from "rehype-expressive-code";
3
+ import { ExpressiveCodePlugin } from "@expressive-code/core";
4
+ import { Root } from "hast";
5
+ import { Plugin as Plugin$1 } from "unified";
6
+ import { Root as Root$1 } from "mdast";
7
+ import { Node } from "unist";
8
+ //#region plugins/code-block-plugin.d.ts
9
+ interface HtmlCodeBlockPlugin {
10
+ /**
11
+ * The tag name.
12
+ *
13
+ * @default "code-block"
14
+ */
15
+ tagName?: string;
16
+ rehypeExpressiveCodeOptions?: RehypeExpressiveCodeOptions;
17
+ }
18
+ /**
19
+ * A plugin that uses a custom html element. It takes the code from the tag's text content, or from the `code` attribute, and
20
+ * replaces the tag with a syntax highlighted code block. Use the `lang` attribute to set the language, and the other attributes
21
+ * for the rest of the expressive-code metadata.
22
+ */
23
+ declare function HtmlCodeBlockPlugin(options?: HtmlCodeBlockPlugin): Plugin;
24
+ //#endregion
25
+ //#region plugins/collapsible-plugin.d.ts
26
+ interface CollapsiblePluginOptions {
27
+ /**
28
+ * The number of code lines that stay visible while a block is collapsed.
29
+ *
30
+ * @default 6
31
+ */
32
+ previewLines?: number;
33
+ /**
34
+ * The label of the toggle button while the block is collapsed.
35
+ *
36
+ * @default "Show code"
37
+ */
38
+ expandButtonText?: string;
39
+ /**
40
+ * The label of the toggle button while the block is expanded.
41
+ *
42
+ * @default "Hide code"
43
+ */
44
+ collapseButtonText?: string;
45
+ }
46
+ /**
47
+ * Collapses opted-in code blocks to a fixed number of preview lines.
48
+ *
49
+ * Add the `collapsible` meta flag to collapse a block, or `collapsible=N` to override the number of preview lines for that block.
50
+ * Blocks with no more lines than the preview size are left untouched.
51
+ *
52
+ * The collapsed height is expressed in `lh` units of the rendered code, so blocks render at their final size on first paint
53
+ * without any JavaScript measurements or layout shifts.
54
+ */
55
+ declare function pluginCollapsible(options?: CollapsiblePluginOptions): ExpressiveCodePlugin;
56
+ //#endregion
57
+ //#region plugins/content-plugin/types.d.ts
58
+ /** Customization overrides for a single sidebar node, keyed by its real filesystem path relative to the project root. */
59
+ interface SidebarNodeCustomization {
60
+ /**
61
+ * Overrides the auto-generated display title for this node.\
62
+ * When omitted the title derived from the file/folder name is used.
63
+ */
64
+ label?: string;
65
+ /**
66
+ * Overrides whether this directory is collapsed by default.\
67
+ * Has no effect when applied to a link node.\
68
+ * When omitted the value from `SidebarDirectory.collapsed` is used.
69
+ */
70
+ collapsed?: boolean;
71
+ /**
72
+ * Controls the position of this node within its parent's item list.\
73
+ * Nodes with a lower `order` value appear first. Nodes not listed in `customizations` keep their original filesystem position
74
+ * relative to one another, after all ordered nodes.
75
+ *
76
+ * Every listed node gets an `order` from its position among the entries sharing its parent, so entries only need to be declared
77
+ * in the order they should appear. Set `order` explicitly to override that.
78
+ *
79
+ * NOTE: `order` is 1-based.
80
+ *
81
+ * ```ts
82
+ * contentPlugin({
83
+ * customizations: {
84
+ * "pages/contents/components/button": {}, // first
85
+ * "~/contents/components/accordion": {}, // second - using alias `~` for 'pages'
86
+ * "~/contents/components/dialog": { order: 1 }, // explicit, now first
87
+ * // everything else keeps their original position
88
+ * },
89
+ * });
90
+ * ```
91
+ */
92
+ order?: number;
93
+ /**
94
+ * Arbitrary key/value pairs forwarded as HTML attributes on the directory or link layout tag, e.g. `{ "data-badge": "new" }`.
95
+ *
96
+ * Values are HTML-escaped before being written into the markup.
97
+ */
98
+ data?: Record<string, string>;
99
+ }
100
+ interface ContentPluginOptions {
101
+ /**
102
+ * Glob patterns for files to scan when generating the sidebar.
103
+ *
104
+ * @example
105
+ * ({ include: ["pages/contents/**\/*.{html,md}"] });
106
+ */
107
+ include: string[];
108
+ /**
109
+ * Glob patterns for files to exclude from sidebar generation.
110
+ *
111
+ * @default [ ]
112
+ */
113
+ exclude?: string[];
114
+ /**
115
+ * The directory segment that acts as the root of the sidebar tree.\
116
+ * Everything before this segment in a file path is ignored abd everything after it becomes the tree structure.
117
+ *
118
+ * Given `baseDirectory: "contents"`, the file `pages/contents/components/accordion/accordion.md` produces the tree path
119
+ * `components > accordion > accordion`.
120
+ *
121
+ * @example
122
+ * ({ baseDirectory: "contents" });
123
+ */
124
+ baseDirectory: string;
125
+ /**
126
+ * Per-node customizations, keyed by the real filesystem path of the file or directory relative to the project root.
127
+ *
128
+ * ```ts
129
+ * contentPlugin({
130
+ * customizations: {
131
+ * // Override a directory's title and keep it open by default
132
+ * "pages/contents/components/accordion": { title: "Accordion", collapsed: false },
133
+ *
134
+ * // Add a badge attribute to a link layout
135
+ * "~/contents/components/button/button.md": { data: { "data-badge": "new" } },
136
+ * },
137
+ * });
138
+ * ```
139
+ */
140
+ customizations?: Record<string, SidebarNodeCustomization>;
141
+ /**
142
+ * Directory holding the sidebar icons as `<name>.icon.html` files. Aliases are allowed.\
143
+ * A node whose `data.icon` is `"form"` renders `<icon src="<icons>/form.icon.html">`.\
144
+ * When omitted, `data.icon` is ignored.
145
+ *
146
+ * @example
147
+ * ({ icons: "@parts/sidebar-icons" });
148
+ */
149
+ icons?: string;
150
+ /**
151
+ * Whether pages without a `publish` front matter key are built and listed in the sidebar.\
152
+ * A page's own `publish: true` / `publish: false` always wins. Unpublished pages are dropped from the build entirely.
153
+ *
154
+ * @default true
155
+ */
156
+ publish?: boolean;
157
+ /**
158
+ * Whether directories start closed. A node's own `collapsed` customization wins.
159
+ *
160
+ * @default true
161
+ */
162
+ collapsed?: boolean;
163
+ /** Defines the layout name/path to be used for markdown files. */
164
+ layouts: {
165
+ default: string;
166
+ [key: string]: string;
167
+ };
168
+ /** The layout into which the generated sidebar HTML will be injected. */
169
+ sidebarLayout?: {
170
+ /**
171
+ * Path to the layout file.
172
+ *
173
+ * @default the theme's `sidebar.part.html`
174
+ */
175
+ path?: string;
176
+ /**
177
+ * The custom-element tag name used for this layout.
178
+ *
179
+ * If omitted, the tag name will be auto extracted from the layout path
180
+ */
181
+ tag?: string;
182
+ /**
183
+ * The attribute on the layout tag that holds the source path.
184
+ *
185
+ * @default "src"
186
+ */
187
+ sourceAttribute?: string;
188
+ /**
189
+ * The slot name into which the sidebar is inserted.
190
+ *
191
+ * @default "sidebar"
192
+ */
193
+ slotName?: string;
194
+ };
195
+ /** The layout used to render a collapsible directory node. */
196
+ directoryLayout?: {
197
+ /**
198
+ * Path to the directory layout file.
199
+ *
200
+ * @default the theme's `directory.part.html`
201
+ */
202
+ path?: string;
203
+ /**
204
+ * The custom-element tag name used for this layout.
205
+ *
206
+ * If omitted, the tag name will be auto extracted from the layout path
207
+ */
208
+ tag?: string;
209
+ /**
210
+ * The attribute on the layout tag that holds the source path.
211
+ *
212
+ * @default "src"
213
+ */
214
+ sourceAttribute?: string;
215
+ };
216
+ /** The layout used to render a single navigation link. */
217
+ linkLayout?: {
218
+ /**
219
+ * Path to the link layout file.
220
+ *
221
+ * @default the theme's `item.part.html`
222
+ */
223
+ path?: string;
224
+ /**
225
+ * The custom-element tag name used for this layout.
226
+ *
227
+ * If omitted, the tag name will be auto extracted from the layout path
228
+ */
229
+ tag?: string;
230
+ /**
231
+ * The attribute on the layout tag that holds the source path.
232
+ *
233
+ * @default "src"
234
+ */
235
+ sourceAttribute?: string;
236
+ };
237
+ }
238
+ //#endregion
239
+ //#region plugins/content-plugin/content-plugin.d.ts
240
+ declare function contentPlugin(options: ContentPluginOptions): Plugin;
241
+ //#endregion
242
+ //#region plugins/content-plugin/helpers.d.ts
243
+ declare function normalizeTitle(string: string): string;
244
+ //#endregion
245
+ //#region plugins/ec-cache.d.ts
246
+ declare function sha1(input: string): string;
247
+ /** Invalidates all cached entries when the expressive-code version or its configuration changes. */
248
+ declare const ecCacheSalt: string;
249
+ declare class PersistentCache {
250
+ private readonly filePath;
251
+ private readonly entries;
252
+ private dirty;
253
+ constructor(name: string);
254
+ get(key: string): string | undefined;
255
+ set(key: string, value: string): void;
256
+ save(): void;
257
+ }
258
+ /** Saves all persistent expressive-code caches once the build is done. */
259
+ declare function ecCachePlugin(): Plugin;
260
+ /**
261
+ * Drop-in replacement for `[rehypeExpressiveCode, options]` in a rehype plugin list that caches the transformed tree per document
262
+ * across builds. Unchanged markdown files skip highlighting entirely.
263
+ *
264
+ * The cache is production-only. While serving, every edit hashes to a key that is never read again, and nothing is ever written
265
+ * back because the caches are persisted at the end of a build, so caching there only costs memory and a hash of every tree.
266
+ */
267
+ declare function cachedRehypeExpressiveCode(this: unknown, options: RehypeExpressiveCodeOptions): (tree: Root, ...rest: unknown[]) => Promise<Root | undefined>;
268
+ //#endregion
269
+ //#region plugins/katex-fonts-plugin.d.ts
270
+ /**
271
+ * Ships the KaTeX fonts `katex.css` loads. In production, references into the theme's `sources/assets` are rewritten to
272
+ * `packages/@staticbolt/docs/assets/` and the folder is copied there. The dev server serves the files where they are.
273
+ */
274
+ declare function katexFontsPlugin(): Plugin;
275
+ //#endregion
276
+ //#region plugins/llms-plugin.d.ts
277
+ interface LlmsPluginOptions {
278
+ /** Absolute base URL of the site. Without one the files are not written, since their links have to be absolute. */
279
+ siteUrl?: string;
280
+ /** Heading of both files. */
281
+ title?: string;
282
+ /** One-line summary quoted under the heading. */
283
+ summary?: string;
284
+ }
285
+ /**
286
+ * Writes `llms.txt` and `llms-full.txt`, plus a copy of every page's markdown beside its HTML.
287
+ *
288
+ * `llms.txt` links each page's markdown, grouped by top-level folder. `llms-full.txt` inlines every document so a single fetch
289
+ * needs no link-following. Nothing is curated by hand.
290
+ */
291
+ declare function llmsPlugin(options?: LlmsPluginOptions): Plugin;
292
+ //#endregion
293
+ //#region plugins/mermaid-fence.d.ts
294
+ /**
295
+ * Rehype plugin: converts fenced mermaid code blocks into <pre class="mermaid"> elements.
296
+ *
297
+ * Input (hast produced by remark-parse + remark-rehype): <pre><code class="language-mermaid">diagram content</code></pre>
298
+ *
299
+ * Output: <pre class="mermaid">diagram content</pre>
300
+ */
301
+ declare const rehypeMermaidFence: Plugin$1<[], Root>;
302
+ //#endregion
303
+ //#region plugins/obsidian-comments.d.ts
304
+ interface RemarkObsidianCommentsOptions {
305
+ preservePositions?: boolean;
306
+ }
307
+ /**
308
+ * Remark plugin that removes Obsidian comments.
309
+ *
310
+ * Obsidian comment syntax:
311
+ *
312
+ * %% inline comment %%
313
+ *
314
+ * %% block comment %%
315
+ */
316
+ declare const remarkObsidianComments: Plugin$1<[RemarkObsidianCommentsOptions?], Root$1>;
317
+ //#endregion
318
+ //#region plugins/obsidian-tags.d.ts
319
+ interface ObsidianTagNode {
320
+ type: "obsidianTag";
321
+ value: string;
322
+ data: {
323
+ hName: "span";
324
+ hProperties: {
325
+ className: string[];
326
+ };
327
+ hChildren: Array<{
328
+ type: "text";
329
+ value: string;
330
+ }>;
331
+ };
332
+ }
333
+ declare module "mdast" {
334
+ interface PhrasingContentMap {
335
+ obsidianTag: ObsidianTagNode;
336
+ }
337
+ }
338
+ /**
339
+ * Remark plugin that renders Obsidian tags.
340
+ *
341
+ * Supported:
342
+ *
343
+ * - #tag
344
+ * - #tag/subtag
345
+ * - #tag_123
346
+ * - #tag-name
347
+ *
348
+ * Ignored:
349
+ *
350
+ * - Escaped tags: #tag
351
+ * - Code blocks
352
+ * - Inline code
353
+ * - Links
354
+ */
355
+ declare const remarkObsidianTags: Plugin$1<[], Root$1>;
356
+ //#endregion
357
+ //#region plugins/pagefind-plugin.d.ts
358
+ interface PagefindPluginOptions {
359
+ /**
360
+ * Glob, relative to the output directory, selecting the pages to index.
361
+ *
362
+ * @default "**\/*.html"
363
+ */
364
+ glob?: string;
365
+ }
366
+ declare function pagefindPlugin({ glob }?: PagefindPluginOptions): Plugin;
367
+ //#endregion
368
+ //#region plugins/wrap-table.d.ts
369
+ declare function wrapTables(): (tree: Node) => void;
370
+ //#endregion
371
+ export { CollapsiblePluginOptions, HtmlCodeBlockPlugin, PersistentCache, RemarkObsidianCommentsOptions, cachedRehypeExpressiveCode, contentPlugin, ecCachePlugin, ecCacheSalt, katexFontsPlugin, llmsPlugin, normalizeTitle, pagefindPlugin, pluginCollapsible, rehypeMermaidFence, remarkObsidianComments, remarkObsidianTags, sha1, wrapTables };
Binary file
package/package.json ADDED
@@ -0,0 +1,113 @@
1
+ {
2
+ "name": "@staticbolt/docs",
3
+ "version": "0.0.1-beta.0",
4
+ "description": "Documentation theme for staticbolt: layout parts, styles, and plugins shared by every docs site.",
5
+ "author": "Ahmed ALABSI",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "exports": {
9
+ "./plugins": {
10
+ "types": "./lib/index.d.mts",
11
+ "default": "./lib/plugins.mjs"
12
+ },
13
+ "./ec-config": {
14
+ "types": "./lib/ec.config.d.mts",
15
+ "default": "./lib/ec-config.mjs"
16
+ },
17
+ "./parts/*": "./sources/parts/*",
18
+ "./styles/*": "./sources/styles/*",
19
+ "./scripts/*": "./sources/scripts/*",
20
+ "./assets/*": "./sources/assets/*",
21
+ "./package.json": "./package.json"
22
+ },
23
+ "files": [
24
+ "lib",
25
+ "sources"
26
+ ],
27
+ "engines": {
28
+ "node": ">=22.18"
29
+ },
30
+ "keywords": [
31
+ "staticbolt",
32
+ "documentation",
33
+ "theme"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsdown",
37
+ "watch": "tsdown --watch",
38
+ "prepack": "npm run build",
39
+ "typecheck": "tsc --noEmit",
40
+ "lint": "eslint --config ./eslint.config.mjs .",
41
+ "lint:css": "stylelint \"sources/**/*.{css,html}\" \"docs/sources/**/*.{css,html}\" \"docs/pages/**/*.html\"",
42
+ "fix": "npm run lint -- --fix; npm run lint:css -- --fix",
43
+ "publish-docs": "node scripts/publish-docs.ts"
44
+ },
45
+ "browserslist": [
46
+ "last 2 Chrome versions",
47
+ "last 2 Firefox versions",
48
+ "last 2 Safari versions",
49
+ "last 2 Edge versions",
50
+ "not op_mini all"
51
+ ],
52
+ "peerDependencies": {
53
+ "@staticbolt/core": "beta",
54
+ "@staticview/ui": ">=1.0.0-beta.0",
55
+ "mermaid": "^11.15.0"
56
+ },
57
+ "peerDependenciesMeta": {
58
+ "mermaid": {
59
+ "optional": true
60
+ }
61
+ },
62
+ "dependencies": {
63
+ "@expressive-code/core": "^0.42.0",
64
+ "@expressive-code/plugin-collapsible-sections": "^0.42.0",
65
+ "@expressive-code/plugin-line-numbers": "^0.42.0",
66
+ "@pagefind/component-ui": "^1.5.2",
67
+ "@xt0rted/expressive-code-file-icons": "^1.0.0",
68
+ "expressive-code": "^0.42.0",
69
+ "hast-util-select": "^6.0.2",
70
+ "hast-util-to-html": "^9.0.5",
71
+ "pagefind": "^1.5.2",
72
+ "rehype-expressive-code": "^0.42.0",
73
+ "unified": "^11.0.5",
74
+ "unist-util-visit": "^5.0.0",
75
+ "yaml": "^2.9.0"
76
+ },
77
+ "overrides": {
78
+ "expressive-code": "^0.42.0",
79
+ "@expressive-code/core": "^0.42.0"
80
+ },
81
+ "devDependencies": {
82
+ "@eslint/js": "^10.0.1",
83
+ "@eslint/markdown": "^8.0.1",
84
+ "@html-eslint/eslint-plugin": "^0.60.0",
85
+ "@html-eslint/parser": "^0.60.0",
86
+ "@staticbolt/core": "^1.0.0-beta.29",
87
+ "@stylistic/stylelint-config": "^5.0.0",
88
+ "@trivago/prettier-plugin-sort-imports": "^6.0.2",
89
+ "@types/hast": "^3.0.5",
90
+ "@types/node": "^24.0.0",
91
+ "@types/unist": "^3.0.3",
92
+ "eslint": "^10.3.0",
93
+ "eslint-config-prettier": "^10.1.8",
94
+ "eslint-plugin-compat": "^7.0.2",
95
+ "eslint-plugin-prettier": "^5.5.5",
96
+ "eslint-plugin-unicorn": "^64.0.0",
97
+ "globals": "^17.6.0",
98
+ "mermaid": "^11.15.0",
99
+ "postcss-html": "^1.8.1",
100
+ "prettier": "3.8.3",
101
+ "prettier-plugin-jsdoc": "^1.8.0",
102
+ "prettier-plugin-markdown-html": "^1.4.1",
103
+ "stylelint": "^17.11.0",
104
+ "stylelint-config-recess-order": "^7.7.0",
105
+ "stylelint-config-standard": "^40.0.0",
106
+ "stylelint-define-config": "^17.11.0",
107
+ "stylelint-no-unsupported-browser-features": "^8.1.1",
108
+ "stylelint-use-logical": "^2.1.3",
109
+ "tsdown": "^0.22.14",
110
+ "typescript": "^6.0.3",
111
+ "typescript-eslint": "^8.59.3"
112
+ }
113
+ }
@@ -0,0 +1,3 @@
1
+ <span class="badge {{ $data.variant ?? 'note' }}" title="{{ $data.title ?? '' }}">
2
+ {{ $data.text ?? $data.variant?.toUpperCase() ?? 'NOTE' }}
3
+ </span>