markopress 0.0.2 → 0.0.4

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 (288) hide show
  1. package/dist/build/index.d.ts +0 -1
  2. package/dist/build/index.js +1 -1627
  3. package/dist/build/types.d.ts +0 -1
  4. package/dist/build/types.js +1 -5
  5. package/dist/build/vite-markdown-plugin.d.ts +0 -1
  6. package/dist/build/vite-markdown-plugin.js +1 -147
  7. package/dist/cli/index.d.ts +0 -1
  8. package/dist/cli/index.js +1 -74
  9. package/dist/config/app-root.d.ts +0 -1
  10. package/dist/config/app-root.js +1 -24
  11. package/dist/config/index.d.ts +0 -1
  12. package/dist/config/index.js +1 -6
  13. package/dist/config/loader.d.ts +0 -1
  14. package/dist/config/loader.js +1 -188
  15. package/dist/config/types.d.ts +0 -1
  16. package/dist/config/types.js +1 -5
  17. package/dist/config/validation.d.ts +0 -1
  18. package/dist/config/validation.js +1 -139
  19. package/dist/content/index.d.ts +0 -1
  20. package/dist/content/index.js +1 -6
  21. package/dist/content/registry.d.ts +0 -1
  22. package/dist/content/registry.js +1 -45
  23. package/dist/content/types.d.ts +0 -1
  24. package/dist/content/types.js +1 -5
  25. package/dist/dev/index.d.ts +0 -1
  26. package/dist/dev/index.js +1 -93
  27. package/dist/index.d.ts +0 -1
  28. package/dist/index.js +1 -17
  29. package/dist/markdown/base-path-plugin.d.ts +16 -0
  30. package/dist/markdown/base-path-plugin.js +1 -0
  31. package/dist/markdown/code.d.ts +0 -1
  32. package/dist/markdown/code.js +1 -305
  33. package/dist/markdown/containers.d.ts +0 -1
  34. package/dist/markdown/containers.js +1 -143
  35. package/dist/markdown/includes.d.ts +0 -1
  36. package/dist/markdown/includes.js +1 -9
  37. package/dist/markdown/index.d.ts +0 -1
  38. package/dist/markdown/index.js +1 -8
  39. package/dist/markdown/loader.d.ts +0 -1
  40. package/dist/markdown/loader.js +1 -325
  41. package/dist/markdown/md-link-plugin.d.ts +14 -0
  42. package/dist/markdown/md-link-plugin.js +1 -0
  43. package/dist/markdown/preserve-tags.d.ts +0 -1
  44. package/dist/markdown/preserve-tags.js +1 -233
  45. package/dist/markdown/renderer.d.ts +0 -1
  46. package/dist/markdown/renderer.js +1 -146
  47. package/dist/markdown/tag-validator.d.ts +0 -1
  48. package/dist/markdown/tag-validator.js +1 -118
  49. package/dist/markdown/types.d.ts +2 -1
  50. package/dist/markdown/types.js +1 -5
  51. package/dist/plugin/compat.d.ts +0 -1
  52. package/dist/plugin/compat.js +1 -78
  53. package/dist/plugin/context.d.ts +0 -1
  54. package/dist/plugin/context.js +1 -103
  55. package/dist/plugin/index.d.ts +0 -1
  56. package/dist/plugin/index.js +1 -6
  57. package/dist/plugin/manager.d.ts +0 -1
  58. package/dist/plugin/manager.js +1 -385
  59. package/dist/plugin/types.d.ts +1 -1
  60. package/dist/plugin/types.js +1 -5
  61. package/dist/plugins/blog-index/index.d.ts +0 -1
  62. package/dist/plugins/blog-index/index.js +1 -158
  63. package/dist/plugins/sidenav/index.d.ts +0 -1
  64. package/dist/plugins/sidenav/index.js +1 -86
  65. package/dist/plugins/toc/index.d.ts +0 -1
  66. package/dist/plugins/toc/index.js +1 -79
  67. package/dist/preview/index.d.ts +0 -1
  68. package/dist/preview/index.js +1 -25
  69. package/dist/theme/default/design-systems/default.d.ts +0 -1
  70. package/dist/theme/default/design-systems/default.js +1 -289
  71. package/dist/theme/default/design-systems/docusaurus.d.ts +0 -1
  72. package/dist/theme/default/design-systems/docusaurus.js +1 -299
  73. package/dist/theme/default/design-systems/index.d.ts +0 -1
  74. package/dist/theme/default/design-systems/index.js +1 -54
  75. package/dist/theme/default/design-systems/rspress.d.ts +0 -1
  76. package/dist/theme/default/design-systems/rspress.js +1 -299
  77. package/dist/theme/default/design-systems/types.d.ts +0 -1
  78. package/dist/theme/default/design-systems/types.js +1 -6
  79. package/dist/theme/default/design-systems/vitepress.d.ts +0 -1
  80. package/dist/theme/default/design-systems/vitepress.js +1 -299
  81. package/dist/theme/default/index.d.ts +0 -1
  82. package/dist/theme/default/index.js +1 -44
  83. package/dist/theme/default/theme.d.ts +0 -1
  84. package/dist/theme/default/theme.js +1 -58
  85. package/dist/theme/index.d.ts +0 -1
  86. package/dist/theme/index.js +1 -6
  87. package/dist/theme/loader.d.ts +0 -1
  88. package/dist/theme/loader.js +1 -125
  89. package/dist/theme/types.d.ts +1 -1
  90. package/dist/theme/types.js +1 -5
  91. package/dist/vite/index.d.ts +0 -1
  92. package/dist/vite/index.js +1 -6
  93. package/dist/vite/markdownPlugin.d.ts +0 -1
  94. package/dist/vite/markdownPlugin.js +1 -111
  95. package/dist/vite/plugin.d.ts +0 -1
  96. package/dist/vite/plugin.js +1 -94
  97. package/package.json +3 -2
  98. package/src/theme/default/layouts/blog.marko +1 -1
  99. package/src/theme/default/layouts/default.marko +5 -5
  100. package/src/theme/default/layouts/docs.marko +6 -6
  101. package/src/theme/default/layouts/page.marko +1 -1
  102. package/templates/catch-all-handler.js.template +2 -17
  103. package/dist/build/index.d.ts.map +0 -1
  104. package/dist/build/index.js.map +0 -1
  105. package/dist/build/manifest-generator.d.ts +0 -34
  106. package/dist/build/manifest-generator.d.ts.map +0 -1
  107. package/dist/build/manifest-generator.js +0 -86
  108. package/dist/build/manifest-generator.js.map +0 -1
  109. package/dist/build/security.test.d.ts +0 -6
  110. package/dist/build/security.test.d.ts.map +0 -1
  111. package/dist/build/security.test.js +0 -88
  112. package/dist/build/security.test.js.map +0 -1
  113. package/dist/build/types.d.ts.map +0 -1
  114. package/dist/build/types.js.map +0 -1
  115. package/dist/build/vite-config.test.d.ts +0 -2
  116. package/dist/build/vite-config.test.d.ts.map +0 -1
  117. package/dist/build/vite-config.test.js +0 -53
  118. package/dist/build/vite-config.test.js.map +0 -1
  119. package/dist/build/vite-markdown-plugin.d.ts.map +0 -1
  120. package/dist/build/vite-markdown-plugin.js.map +0 -1
  121. package/dist/build/vite-markdown-plugin.test.d.ts +0 -2
  122. package/dist/build/vite-markdown-plugin.test.d.ts.map +0 -1
  123. package/dist/build/vite-markdown-plugin.test.js +0 -41
  124. package/dist/build/vite-markdown-plugin.test.js.map +0 -1
  125. package/dist/cli/index.d.ts.map +0 -1
  126. package/dist/cli/index.js.map +0 -1
  127. package/dist/config/app-root.d.ts.map +0 -1
  128. package/dist/config/app-root.js.map +0 -1
  129. package/dist/config/app-root.test.d.ts +0 -2
  130. package/dist/config/app-root.test.d.ts.map +0 -1
  131. package/dist/config/app-root.test.js +0 -71
  132. package/dist/config/app-root.test.js.map +0 -1
  133. package/dist/config/index.d.ts.map +0 -1
  134. package/dist/config/index.js.map +0 -1
  135. package/dist/config/loader.d.ts.map +0 -1
  136. package/dist/config/loader.js.map +0 -1
  137. package/dist/config/loader.test.d.ts +0 -2
  138. package/dist/config/loader.test.d.ts.map +0 -1
  139. package/dist/config/loader.test.js +0 -24
  140. package/dist/config/loader.test.js.map +0 -1
  141. package/dist/config/types.d.ts.map +0 -1
  142. package/dist/config/types.js.map +0 -1
  143. package/dist/config/validation.d.ts.map +0 -1
  144. package/dist/config/validation.js.map +0 -1
  145. package/dist/content/index.d.ts.map +0 -1
  146. package/dist/content/index.js.map +0 -1
  147. package/dist/content/registry.d.ts.map +0 -1
  148. package/dist/content/registry.js.map +0 -1
  149. package/dist/content/scanner.d.ts +0 -9
  150. package/dist/content/scanner.d.ts.map +0 -1
  151. package/dist/content/scanner.js +0 -115
  152. package/dist/content/scanner.js.map +0 -1
  153. package/dist/content/types.d.ts.map +0 -1
  154. package/dist/content/types.js.map +0 -1
  155. package/dist/dev/index.d.ts.map +0 -1
  156. package/dist/dev/index.js.map +0 -1
  157. package/dist/index.d.ts.map +0 -1
  158. package/dist/index.js.map +0 -1
  159. package/dist/markdown/code.d.ts.map +0 -1
  160. package/dist/markdown/code.js.map +0 -1
  161. package/dist/markdown/containers.d.ts.map +0 -1
  162. package/dist/markdown/containers.js.map +0 -1
  163. package/dist/markdown/includes.d.ts.map +0 -1
  164. package/dist/markdown/includes.js.map +0 -1
  165. package/dist/markdown/index.d.ts.map +0 -1
  166. package/dist/markdown/index.js.map +0 -1
  167. package/dist/markdown/loader.d.ts.map +0 -1
  168. package/dist/markdown/loader.js.map +0 -1
  169. package/dist/markdown/preserve-tags.d.ts.map +0 -1
  170. package/dist/markdown/preserve-tags.js.map +0 -1
  171. package/dist/markdown/renderer.d.ts.map +0 -1
  172. package/dist/markdown/renderer.js.map +0 -1
  173. package/dist/markdown/tag-validator.d.ts.map +0 -1
  174. package/dist/markdown/tag-validator.js.map +0 -1
  175. package/dist/markdown/types.d.ts.map +0 -1
  176. package/dist/markdown/types.js.map +0 -1
  177. package/dist/plugin/compat.d.ts.map +0 -1
  178. package/dist/plugin/compat.js.map +0 -1
  179. package/dist/plugin/context.d.ts.map +0 -1
  180. package/dist/plugin/context.js.map +0 -1
  181. package/dist/plugin/index.d.ts.map +0 -1
  182. package/dist/plugin/index.js.map +0 -1
  183. package/dist/plugin/manager.d.ts.map +0 -1
  184. package/dist/plugin/manager.js.map +0 -1
  185. package/dist/plugin/types.d.ts.map +0 -1
  186. package/dist/plugin/types.js.map +0 -1
  187. package/dist/plugins/blog-index/index.d.ts.map +0 -1
  188. package/dist/plugins/blog-index/index.js.map +0 -1
  189. package/dist/plugins/sidenav/index.d.ts.map +0 -1
  190. package/dist/plugins/sidenav/index.js.map +0 -1
  191. package/dist/plugins/toc/index.d.ts.map +0 -1
  192. package/dist/plugins/toc/index.js.map +0 -1
  193. package/dist/preview/index.d.ts.map +0 -1
  194. package/dist/preview/index.js.map +0 -1
  195. package/dist/theme/default/build/generate-all.d.ts +0 -9
  196. package/dist/theme/default/build/generate-all.d.ts.map +0 -1
  197. package/dist/theme/default/build/generate-all.js +0 -85
  198. package/dist/theme/default/build/generate-all.js.map +0 -1
  199. package/dist/theme/default/build/generate-css.d.ts +0 -19
  200. package/dist/theme/default/build/generate-css.d.ts.map +0 -1
  201. package/dist/theme/default/build/generate-css.js +0 -199
  202. package/dist/theme/default/build/generate-css.js.map +0 -1
  203. package/dist/theme/default/build/index.d.ts +0 -5
  204. package/dist/theme/default/build/index.d.ts.map +0 -1
  205. package/dist/theme/default/build/index.js +0 -5
  206. package/dist/theme/default/build/index.js.map +0 -1
  207. package/dist/theme/default/design-systems/default.d.ts.map +0 -1
  208. package/dist/theme/default/design-systems/default.js.map +0 -1
  209. package/dist/theme/default/design-systems/docusaurus.d.ts.map +0 -1
  210. package/dist/theme/default/design-systems/docusaurus.js.map +0 -1
  211. package/dist/theme/default/design-systems/index.d.ts.map +0 -1
  212. package/dist/theme/default/design-systems/index.js.map +0 -1
  213. package/dist/theme/default/design-systems/rspress.d.ts.map +0 -1
  214. package/dist/theme/default/design-systems/rspress.js.map +0 -1
  215. package/dist/theme/default/design-systems/types.d.ts.map +0 -1
  216. package/dist/theme/default/design-systems/types.js.map +0 -1
  217. package/dist/theme/default/design-systems/vitepress.d.ts.map +0 -1
  218. package/dist/theme/default/design-systems/vitepress.js.map +0 -1
  219. package/dist/theme/default/index.d.ts.map +0 -1
  220. package/dist/theme/default/index.js.map +0 -1
  221. package/dist/theme/default/theme.d.ts.map +0 -1
  222. package/dist/theme/default/theme.js.map +0 -1
  223. package/dist/theme/index.d.ts.map +0 -1
  224. package/dist/theme/index.js.map +0 -1
  225. package/dist/theme/loader.d.ts.map +0 -1
  226. package/dist/theme/loader.js.map +0 -1
  227. package/dist/theme/types.d.ts.map +0 -1
  228. package/dist/theme/types.js.map +0 -1
  229. package/dist/vite/index.d.ts.map +0 -1
  230. package/dist/vite/index.js.map +0 -1
  231. package/dist/vite/markdownPlugin.d.ts.map +0 -1
  232. package/dist/vite/markdownPlugin.js.map +0 -1
  233. package/dist/vite/plugin.d.ts.map +0 -1
  234. package/dist/vite/plugin.js.map +0 -1
  235. package/src/theme/default/build/generate-all.ts +0 -99
  236. package/src/theme/default/build/generate-css.ts +0 -234
  237. package/src/theme/default/build/index.ts +0 -5
  238. package/src/theme/default/components/doc-footer.marko +0 -180
  239. package/src/theme/default/components/footer.marko +0 -32
  240. package/src/theme/default/components/header.marko +0 -49
  241. package/src/theme/default/components/nav-bar.marko +0 -191
  242. package/src/theme/default/components/page-header.marko +0 -20
  243. package/src/theme/default/components/reading-progress.marko +0 -36
  244. package/src/theme/default/components/search.marko +0 -239
  245. package/src/theme/default/components/sidebar.marko +0 -211
  246. package/src/theme/default/components/site-footer.marko +0 -211
  247. package/src/theme/default/components/skip-link.marko +0 -49
  248. package/src/theme/default/components/theme/theme-aside-bottom.marko +0 -1
  249. package/src/theme/default/components/theme/theme-aside-top.marko +0 -1
  250. package/src/theme/default/components/theme/theme-body-bottom.marko +0 -1
  251. package/src/theme/default/components/theme/theme-body-top.marko +0 -1
  252. package/src/theme/default/components/theme/theme-doc-bottom.marko +0 -1
  253. package/src/theme/default/components/theme/theme-doc-footer-after.marko +0 -1
  254. package/src/theme/default/components/theme/theme-doc-footer-before.marko +0 -1
  255. package/src/theme/default/components/theme/theme-doc-top.marko +0 -1
  256. package/src/theme/default/components/theme/theme-head-bottom.marko +0 -1
  257. package/src/theme/default/components/theme/theme-head-top.marko +0 -1
  258. package/src/theme/default/components/theme/theme-home-features-after.marko +0 -1
  259. package/src/theme/default/components/theme/theme-home-hero-after.marko +0 -1
  260. package/src/theme/default/components/theme/theme-home-hero-before.marko +0 -1
  261. package/src/theme/default/components/theme/theme-navbar-center.marko +0 -5
  262. package/src/theme/default/components/theme/theme-navbar-end.marko +0 -30
  263. package/src/theme/default/components/theme/theme-navbar-start.marko +0 -1
  264. package/src/theme/default/components/theme/theme-page-bottom.marko +0 -1
  265. package/src/theme/default/components/theme/theme-page-top.marko +0 -1
  266. package/src/theme/default/components/theme/theme-sidebar-bottom.marko +0 -1
  267. package/src/theme/default/components/theme/theme-sidebar-top.marko +0 -1
  268. package/src/theme/default/components/theme/theme-toc-item.marko +0 -1
  269. package/src/theme/default/components/theme-toggle.marko +0 -122
  270. package/src/theme/default/components/toc.marko +0 -140
  271. package/src/theme/default/design-systems/default.ts +0 -331
  272. package/src/theme/default/design-systems/docusaurus.ts +0 -341
  273. package/src/theme/default/design-systems/index.ts +0 -67
  274. package/src/theme/default/design-systems/rspress.ts +0 -341
  275. package/src/theme/default/design-systems/types.ts +0 -296
  276. package/src/theme/default/design-systems/vitepress.ts +0 -341
  277. package/src/theme/default/index.ts +0 -107
  278. package/src/theme/default/theme.ts +0 -83
  279. package/templates/example-tags/README.md +0 -212
  280. package/templates/example-tags/alert-box.marko +0 -98
  281. package/templates/example-tags/button-primary.marko +0 -28
  282. package/templates/example-tags/button-secondary.marko +0 -28
  283. package/templates/example-tags/button.marko +0 -6
  284. package/templates/example-tags/card-body.marko +0 -8
  285. package/templates/example-tags/card-footer.marko +0 -7
  286. package/templates/example-tags/card-header.marko +0 -7
  287. package/templates/example-tags/card.marko +0 -20
  288. package/templates/example-tags/icon.marko +0 -149
@@ -1,234 +0,0 @@
1
- /**
2
- * CSS Variable Generator
3
- * Converts design tokens into CSS custom properties
4
- */
5
-
6
- import type { DesignSystem, ColorTokens, TypographyTokens, SpacingTokens, EffectTokens, LayoutTokens } from '../design-systems/types.js';
7
- import { getDarkModeOverride as getDarkOverride, type DesignSystemName } from '../design-systems/index.js';
8
-
9
- /**
10
- * Generate CSS variables from design system
11
- * @param designSystem - Design system object
12
- * @param darkMode - Whether to generate dark mode variables
13
- * @returns CSS string with :root variables
14
- */
15
- export function generateCSSVariables(designSystem: DesignSystem, darkMode: boolean = false): string {
16
- const lines: string[] = [];
17
-
18
- // Root selector
19
- lines.push(darkMode ? ':root.dark,' : ':root,');
20
- lines.push(darkMode ? 'html.dark {' : 'html {');
21
-
22
- // Colors
23
- generateColorVariables(lines, designSystem.colors);
24
-
25
- // Typography
26
- generateTypographyVariables(lines, designSystem.typography);
27
-
28
- // Spacing
29
- generateSpacingVariables(lines, designSystem.spacing);
30
-
31
- // Effects (shadows, border radius, transitions)
32
- generateEffectVariables(lines, designSystem.effects);
33
-
34
- // Layout (dimensions, z-index)
35
- generateLayoutVariables(lines, designSystem.layout);
36
-
37
- lines.push('}');
38
-
39
- return lines.join('\n');
40
- }
41
-
42
- /**
43
- * Generate color CSS variables
44
- */
45
- function generateColorVariables(lines: string[], colors: ColorTokens): void {
46
- // Primary colors
47
- lines.push(` --color-primary-1: ${colors.primary['1']};`);
48
- lines.push(` --color-primary-2: ${colors.primary['2']};`);
49
- lines.push(` --color-primary-3: ${colors.primary['3']};`);
50
- lines.push(` --color-primary-soft: ${colors.primary.soft};`);
51
-
52
- // Semantic colors (success, warning, danger, info)
53
- (['success', 'warning', 'danger', 'info'] as const).forEach((color) => {
54
- lines.push(` --color-${color}-1: ${colors[color]['1']};`);
55
- lines.push(` --color-${color}-2: ${colors[color]['2']};`);
56
- lines.push(` --color-${color}-3: ${colors[color]['3']};`);
57
- lines.push(` --color-${color}-soft: ${colors[color].soft};`);
58
- });
59
-
60
- // Gray scale
61
- lines.push(` --color-gray-1: ${colors.gray['1']};`);
62
- lines.push(` --color-gray-2: ${colors.gray['2']};`);
63
- lines.push(` --color-gray-3: ${colors.gray['3']};`);
64
- lines.push(` --color-gray-soft: ${colors.gray.soft};`);
65
-
66
- // Background colors
67
- lines.push(` --bg-default: ${colors.bg.default};`);
68
- lines.push(` --bg-alt: ${colors.bg.alt};`);
69
- lines.push(` --bg-elevated: ${colors.bg.elevated};`);
70
- lines.push(` --bg-soft: ${colors.bg.soft};`);
71
-
72
- // Text colors
73
- lines.push(` --text-1: ${colors.text['1']};`);
74
- lines.push(` --text-2: ${colors.text['2']};`);
75
- lines.push(` --text-3: ${colors.text['3']};`);
76
-
77
- // Border colors
78
- lines.push(` --border-default: ${colors.border.default};`);
79
- lines.push(` --border-divider: ${colors.border.divider};`);
80
- lines.push(` --border-gutter: ${colors.border.gutter};`);
81
-
82
- // Divider
83
- lines.push(` --divider: ${colors.divider};`);
84
-
85
- // Soft backgrounds
86
- lines.push(` --soft-brand: ${colors.soft.brand};`);
87
- lines.push(` --soft-gray: ${colors.soft.gray};`);
88
- }
89
-
90
- /**
91
- * Generate typography CSS variables
92
- */
93
- function generateTypographyVariables(lines: string[], typography: TypographyTokens): void {
94
- // Font families
95
- lines.push(` --font-sans: ${typography.fontFamily.sans};`);
96
- lines.push(` --font-mono: ${typography.fontFamily.mono};`);
97
-
98
- // Font sizes
99
- lines.push(` --font-size-xs: ${typography.fontSize.xs};`);
100
- lines.push(` --font-size-sm: ${typography.fontSize.sm};`);
101
- lines.push(` --font-size-base: ${typography.fontSize.base};`);
102
- lines.push(` --font-size-lg: ${typography.fontSize.lg};`);
103
- lines.push(` --font-size-xl: ${typography.fontSize.xl};`);
104
- lines.push(` --font-size-2xl: ${typography.fontSize['2xl']};`);
105
- lines.push(` --font-size-3xl: ${typography.fontSize['3xl']};`);
106
- lines.push(` --font-size-4xl: ${typography.fontSize['4xl']};`);
107
-
108
- // Font weights
109
- lines.push(` --font-weight-normal: ${typography.fontWeight.normal};`);
110
- lines.push(` --font-weight-medium: ${typography.fontWeight.medium};`);
111
- lines.push(` --font-weight-semibold: ${typography.fontWeight.semibold};`);
112
- lines.push(` --font-weight-bold: ${typography.fontWeight.bold};`);
113
-
114
- // Line heights
115
- lines.push(` --line-height-tight: ${typography.lineHeight.tight};`);
116
- lines.push(` --line-height-normal: ${typography.lineHeight.normal};`);
117
- lines.push(` --line-height-relaxed: ${typography.lineHeight.relaxed};`);
118
-
119
- // Letter spacing (optional)
120
- if (typography.letterSpacing) {
121
- if (typography.letterSpacing.tight) {
122
- lines.push(` --letter-spacing-tight: ${typography.letterSpacing.tight};`);
123
- }
124
- if (typography.letterSpacing.normal) {
125
- lines.push(` --letter-spacing-normal: ${typography.letterSpacing.normal};`);
126
- }
127
- if (typography.letterSpacing.wide) {
128
- lines.push(` --letter-spacing-wide: ${typography.letterSpacing.wide};`);
129
- }
130
- }
131
- }
132
-
133
- /**
134
- * Generate spacing CSS variables
135
- */
136
- function generateSpacingVariables(lines: string[], spacing: SpacingTokens): void {
137
- lines.push(` --space-xs: ${spacing.scale.xs};`);
138
- lines.push(` --space-sm: ${spacing.scale.sm};`);
139
- lines.push(` --space-md: ${spacing.scale.md};`);
140
- lines.push(` --space-lg: ${spacing.scale.lg};`);
141
- lines.push(` --space-xl: ${spacing.scale.xl};`);
142
- lines.push(` --space-2xl: ${spacing.scale['2xl']};`);
143
- lines.push(` --space-3xl: ${spacing.scale['3xl']};`);
144
- lines.push(` --space-4xl: ${spacing.scale['4xl']};`);
145
- }
146
-
147
- /**
148
- * Generate effect CSS variables (shadows, border radius, transitions)
149
- */
150
- function generateEffectVariables(lines: string[], effects: EffectTokens): void {
151
- // Shadows
152
- lines.push(` --shadow-1: ${effects.shadows['1']};`);
153
- lines.push(` --shadow-2: ${effects.shadows['2']};`);
154
- lines.push(` --shadow-3: ${effects.shadows['3']};`);
155
- lines.push(` --shadow-4: ${effects.shadows['4']};`);
156
- lines.push(` --shadow-5: ${effects.shadows['5']};`);
157
-
158
- // Border radius
159
- lines.push(` --radius-sm: ${effects.borderRadius.sm};`);
160
- lines.push(` --radius-md: ${effects.borderRadius.md};`);
161
- lines.push(` --radius-lg: ${effects.borderRadius.lg};`);
162
-
163
- // Transitions
164
- if (effects.transitions.base) {
165
- lines.push(` --transition-base: ${effects.transitions.base};`);
166
- }
167
- if (effects.transitions.fast) {
168
- lines.push(` --transition-fast: ${effects.transitions.fast};`);
169
- }
170
- if (effects.transitions.slow) {
171
- lines.push(` --transition-slow: ${effects.transitions.slow};`);
172
- }
173
- }
174
-
175
- /**
176
- * Generate layout CSS variables (dimensions, z-index)
177
- */
178
- function generateLayoutVariables(lines: string[], layout: LayoutTokens): void {
179
- // Dimensions
180
- lines.push(` --layout-max-width: ${layout.maxWidth};`);
181
- lines.push(` --navbar-height: ${layout.navbarHeight};`);
182
- lines.push(` --sidebar-width: ${layout.sidebarWidth};`);
183
- if (layout.tocWidth) {
184
- lines.push(` --toc-width: ${layout.tocWidth};`);
185
- }
186
-
187
- // Z-index
188
- lines.push(` --z-footer: ${layout.zIndex.footer};`);
189
- lines.push(` --z-local-nav: ${layout.zIndex.localNav};`);
190
- lines.push(` --z-nav: ${layout.zIndex.nav};`);
191
- lines.push(` --z-layout-top: ${layout.zIndex.layoutTop};`);
192
- lines.push(` --z-backdrop: ${layout.zIndex.backdrop};`);
193
- lines.push(` --z-sidebar: ${layout.zIndex.sidebar};`);
194
- }
195
-
196
- /**
197
- * Generate complete CSS theme file
198
- * @param designSystem - Design system object
199
- * @returns Complete CSS with light and dark mode
200
- */
201
- export function generateThemeCSS(designSystem: DesignSystem): string {
202
- const lines: string[] = [];
203
-
204
- // Header comment
205
- lines.push(`/*`);
206
- lines.push(` * ${designSystem.name} Design System`);
207
- lines.push(` * Version: ${designSystem.version}`);
208
- if (designSystem.description) {
209
- lines.push(` * ${designSystem.description}`);
210
- }
211
- lines.push(` * Auto-generated from design tokens`);
212
- lines.push(` */`);
213
- lines.push('');
214
-
215
- // Light mode
216
- lines.push(generateCSSVariables(designSystem, false));
217
- lines.push('');
218
-
219
- // Dark mode (if override exists)
220
- const darkOverride = getDarkModeOverride(designSystem.name);
221
- if (darkOverride) {
222
- const darkSystem = { ...designSystem, ...darkOverride };
223
- lines.push(generateCSSVariables(darkSystem, true));
224
- }
225
-
226
- return lines.join('\n');
227
- }
228
-
229
- /**
230
- * Get dark mode override for a design system
231
- */
232
- function getDarkModeOverride(name: string): Partial<DesignSystem> | null {
233
- return getDarkOverride(name as DesignSystemName) || null;
234
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Build utilities for theme-default
3
- */
4
-
5
- export { generateCSSVariables, generateThemeCSS } from './generate-css.js';
@@ -1,180 +0,0 @@
1
- /*!
2
- * Documentation Footer Component
3
- * Displays edit link, last updated timestamp, and prev/next navigation
4
- */
5
-
6
- <script>
7
- const formatDate = (date) => {
8
- if (!date) return '';
9
- if (typeof window === 'undefined') return date;
10
-
11
- const d = new Date(date);
12
- return d.toLocaleDateString('en-US', {
13
- year: 'numeric',
14
- month: 'long',
15
- day: 'numeric'
16
- });
17
- };
18
- </script>
19
-
20
- <footer class="doc-footer">
21
- <!-- Edit Link -->
22
- <if=input.editUrl>
23
- <div class="doc-footer-edit">
24
- <a
25
- href=input.editUrl
26
- target="_blank"
27
- rel="noopener noreferrer"
28
- class="edit-link">
29
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
30
- <path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path>
31
- <path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path>
32
- </svg>
33
- <span>Edit this page</span>
34
- </a>
35
- </div>
36
- </if>
37
-
38
- <!-- Last Updated -->
39
- <if=input.lastUpdated>
40
- <div class="doc-footer-updated">
41
- <span class="updated-label">Last updated:</span>
42
- <time datetime=input.lastUpdated>${formatDate(input.lastUpdated)}</time>
43
- </div>
44
- </if>
45
-
46
- <!-- Prev/Next Navigation -->
47
- <if=input.prev || input.next>
48
- <div class="doc-footer-nav">
49
- <!-- Previous Page -->
50
- <if=input.prev>
51
- <a class="page-nav-prev" href=input.prev.link>
52
- <span class="page-nav-label">Previous</span>
53
- <span class="page-nav-title">${input.prev.title}</span>
54
- </a>
55
- <else>
56
- <div class="page-nav-spacer"></div>
57
- </else>
58
-
59
- <!-- Next Page -->
60
- <if=input.next>
61
- <a class="page-nav-next" href=input.next.link>
62
- <span class="page-nav-label">Next</span>
63
- <span class="page-nav-title">${input.next.title}</span>
64
- </a>
65
- </if>
66
- </div>
67
- </if>
68
- </footer>
69
-
70
- <style>
71
- .doc-footer {
72
- margin-top: var(--space-3xl);
73
- padding-top: var(--space-xl);
74
- border-top: 1px solid var(--border-default);
75
- }
76
-
77
- /* Edit Link */
78
- .doc-footer-edit {
79
- margin-bottom: var(--space-md);
80
- }
81
-
82
- .edit-link {
83
- display: inline-flex;
84
- align-items: center;
85
- gap: var(--space-xs);
86
- color: var(--text-2);
87
- font-size: var(--font-size-sm);
88
- text-decoration: none;
89
- transition: color var(--transition-fast);
90
- }
91
-
92
- .edit-link:hover {
93
- color: var(--color-primary-2, #3a5ccc);
94
- }
95
-
96
- .edit-link svg {
97
- flex-shrink: 0;
98
- }
99
-
100
- /* Last Updated */
101
- .doc-footer-updated {
102
- margin-bottom: var(--space-lg);
103
- font-size: var(--font-size-sm);
104
- color: var(--text-3);
105
- }
106
-
107
- .updated-label {
108
- margin-right: var(--space-xs);
109
- }
110
-
111
- /* Prev/Next Navigation */
112
- .doc-footer-nav {
113
- display: grid;
114
- grid-template-columns: 1fr 1fr;
115
- gap: var(--space-md);
116
- margin-top: var(--space-xl);
117
- }
118
-
119
- .page-nav-prev,
120
- .page-nav-next {
121
- display: flex;
122
- flex-direction: column;
123
- gap: var(--space-xs);
124
- padding: var(--space-md);
125
- background: var(--bg-alt);
126
- border: 1px solid var(--border-default);
127
- border-radius: var(--radius-lg, 12px);
128
- text-decoration: none;
129
- color: var(--text-1);
130
- transition: all var(--transition-fast);
131
- }
132
-
133
- .page-nav-prev:hover,
134
- .page-nav-next:hover {
135
- border-color: var(--color-primary-2, #3a5ccc);
136
- background: var(--bg-soft);
137
- }
138
-
139
- .page-nav-prev {
140
- grid-column: 1;
141
- text-align: left;
142
- }
143
-
144
- .page-nav-next {
145
- grid-column: 2;
146
- text-align: right;
147
- }
148
-
149
- .page-nav-spacer {
150
- grid-column: 1;
151
- }
152
-
153
- .page-nav-label {
154
- font-size: var(--font-size-xs);
155
- font-weight: var(--font-weight-semibold);
156
- text-transform: uppercase;
157
- color: var(--text-2);
158
- letter-spacing: 0.05em;
159
- }
160
-
161
- .page-nav-title {
162
- font-size: var(--font-size-base);
163
- font-weight: var(--font-weight-medium);
164
- }
165
-
166
- /* Mobile Responsive */
167
- @media (max-width: 768px) {
168
- .doc-footer-nav {
169
- grid-template-columns: 1fr;
170
- }
171
-
172
- .page-nav-next {
173
- grid-column: 1;
174
- }
175
-
176
- .page-nav-spacer {
177
- display: none;
178
- }
179
- }
180
- </style>
@@ -1,32 +0,0 @@
1
- /**
2
- * Footer component
3
- */
4
-
5
- <let/message=input.message || ''/>
6
- <let/copyright=input.copyright || ''/>
7
-
8
- <div class="site-footer">
9
- <div class="footer-container">
10
- <if=message>
11
- <p class="footer-message">${message}</p>
12
- </if>
13
- <if=copyright>
14
- <p class="footer-copyright">${copyright}</p>
15
- </if>
16
- </div>
17
- </div>
18
-
19
- <style>
20
- .site-footer {
21
- border-top: 1px solid var(--border-color);
22
- padding: 2rem 0;
23
- margin-top: 4rem;
24
- }
25
-
26
- .footer-container {
27
- max-width: 1200px;
28
- margin: 0 auto;
29
- padding: 0 1rem;
30
- text-align: center;
31
- }
32
- </style>
@@ -1,49 +0,0 @@
1
- /**
2
- * Header component
3
- */
4
-
5
- <let/siteTitle=input.siteTitle || 'MarkoPress'/>
6
- <let/navItems=input.navItems || []/>
7
-
8
- <div class="site-header">
9
- <div class="header-container">
10
- <a href="/" class="site-title">${siteTitle}</a>
11
- <nav class="site-nav">
12
- <for|item| in=navItems>
13
- <a href=item.link class="nav-link">${item.text}</a>
14
- </for>
15
- </nav>
16
- </div>
17
- </div>
18
-
19
- <style>
20
- .site-header {
21
- border-bottom: 1px solid var(--border-color);
22
- padding: 1rem 0;
23
- }
24
-
25
- .header-container {
26
- max-width: 1200px;
27
- margin: 0 auto;
28
- padding: 0 1rem;
29
- display: flex;
30
- justify-content: space-between;
31
- align-items: center;
32
- }
33
-
34
- .site-title {
35
- font-weight: bold;
36
- text-decoration: none;
37
- color: inherit;
38
- }
39
-
40
- .site-nav {
41
- display: flex;
42
- gap: 1.5rem;
43
- }
44
-
45
- .nav-link {
46
- text-decoration: none;
47
- color: inherit;
48
- }
49
- </style>
@@ -1,191 +0,0 @@
1
- /*!
2
- * Navbar Component
3
- * Main navigation bar with links and dropdown menus
4
- */
5
-
6
- <let/openDropdown=null/>
7
- <let/currentPath=(typeof window !== 'undefined' && window.location && window.location.pathname) || ''/>
8
-
9
- <nav class="navbar-nav-inner">
10
- <for|item| of=(input.items || [])>
11
- <!-- Dropdown Menu -->
12
- <if=item.items>
13
- <div class="nav-dropdown">
14
- <button
15
- class="nav-link dropdown-trigger"
16
- aria-haspopup="true"
17
- aria-expanded=openDropdown === item.text
18
- onClick(e) {
19
- openDropdown = openDropdown === item.text ? null : item.text;
20
- }>
21
- <span>${item.text}</span>
22
- <svg class="dropdown-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
23
- <polyline points="6 9 12 15 18 9"></polyline>
24
- </svg>
25
- </button>
26
-
27
- <if=openDropdown === item.text>
28
- <div class="dropdown-menu">
29
- <for|subitem| of=item.items>
30
- <a class={"dropdown-item": true, active: currentPath === subitem.link} href=subitem.link>
31
- ${subitem.text}
32
- </a>
33
- </for>
34
- </div>
35
- </if>
36
- </div>
37
- </if>
38
- <if=!item.items>
39
- <a class={"nav-link": true, active: currentPath === item.link} href=item.link>
40
- ${item.text}
41
- </a>
42
- </if>
43
- </for>
44
-
45
- <!-- Language Switcher (if provided) -->
46
- <if=input.locales>
47
- <div class="nav-dropdown">
48
- <button
49
- class="nav-link dropdown-trigger"
50
- aria-haspopup="true"
51
- aria-expanded=openDropdown === 'lang'>
52
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
53
- <circle cx="12" cy="12" r="10"></circle>
54
- <line x1="2" y1="12" x2="22" y2="12"></line>
55
- <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path>
56
- </svg>
57
- </button>
58
-
59
- <if=openDropdown === 'lang'>
60
- <div class="dropdown-menu">
61
- <for|locale| of=input.locales>
62
- <a class={"dropdown-item": true, active: locale.active} href=locale.link>
63
- ${locale.label}
64
- </a>
65
- </for>
66
- </div>
67
- </if>
68
- </div>
69
- </if>
70
-
71
- <!-- GitHub/Repo Link -->
72
- <if=input.repoUrl>
73
- <a
74
- class="nav-link nav-icon"
75
- href=input.repoUrl
76
- target="_blank"
77
- rel="noopener noreferrer"
78
- aria-label="View source on GitHub">
79
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
80
- <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
81
- </svg>
82
- </a>
83
- </if>
84
- </nav>
85
-
86
- <style>
87
- .navbar-nav-inner {
88
- display: flex;
89
- gap: var(--space-sm);
90
- align-items: center;
91
- }
92
-
93
- .nav-link {
94
- display: inline-flex;
95
- align-items: center;
96
- gap: var(--space-xs);
97
- padding: var(--space-sm) var(--space-md);
98
- font-size: var(--text-sm);
99
- font-weight: var(--font-medium);
100
- color: var(--text-secondary);
101
- border-radius: var(--radius-md);
102
- transition: all var(--transition-fast);
103
- cursor: pointer;
104
- border: none;
105
- background: transparent;
106
- text-decoration: none;
107
- }
108
-
109
- .nav-link:hover {
110
- color: var(--text-primary);
111
- background: var(--bg-tertiary);
112
- }
113
-
114
- .nav-link.active {
115
- color: var(--accent-primary);
116
- background: var(--accent-bg);
117
- }
118
-
119
- .nav-icon {
120
- padding: var(--space-sm);
121
- }
122
-
123
- .nav-dropdown {
124
- position: relative;
125
- }
126
-
127
- .dropdown-trigger {
128
- gap: var(--space-xs);
129
- }
130
-
131
- .dropdown-icon {
132
- width: 14px;
133
- height: 14px;
134
- transition: transform var(--transition-fast);
135
- }
136
-
137
- .nav-dropdown[open] .dropdown-icon {
138
- transform: rotate(180deg);
139
- }
140
-
141
- .dropdown-menu {
142
- position: absolute;
143
- top: calc(100% + var(--space-xs));
144
- left: 0;
145
- min-width: 200px;
146
- padding: var(--space-xs);
147
- background: var(--bg-primary);
148
- border: 1px solid var(--border-color);
149
- border-radius: var(--radius-lg);
150
- box-shadow: var(--shadow-lg);
151
- z-index: 100;
152
- }
153
-
154
- .dropdown-item {
155
- display: block;
156
- padding: var(--space-sm) var(--space-md);
157
- font-size: var(--text-sm);
158
- color: var(--text-secondary);
159
- text-decoration: none;
160
- border-radius: var(--radius-md);
161
- transition: all var(--transition-fast);
162
- }
163
-
164
- .dropdown-item:hover {
165
- color: var(--text-primary);
166
- background: var(--bg-tertiary);
167
- }
168
-
169
- .dropdown-item.active {
170
- color: var(--accent-primary);
171
- background: var(--accent-bg);
172
- }
173
-
174
- /* Mobile menu specific styles */
175
- .navbar-mobile-menu .navbar-nav-inner {
176
- flex-direction: column;
177
- align-items: stretch;
178
- gap: var(--space-xs);
179
- }
180
-
181
- .navbar-mobile-menu .nav-dropdown {
182
- width: 100%;
183
- }
184
-
185
- .navbar-mobile-menu .dropdown-menu {
186
- position: static;
187
- box-shadow: none;
188
- border: none;
189
- padding-left: var(--space-lg);
190
- }
191
- </style>