polen 0.9.1-next.1 → 0.10.0-next.10

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 (481) hide show
  1. package/README.md +49 -364
  2. package/build/api/api.d.ts +1 -0
  3. package/build/api/api.d.ts.map +1 -1
  4. package/build/api/api.js +1 -0
  5. package/build/api/api.js.map +1 -1
  6. package/build/api/config/configurator.d.ts +9 -1
  7. package/build/api/config/configurator.d.ts.map +1 -1
  8. package/build/api/config/configurator.js +18 -6
  9. package/build/api/config/configurator.js.map +1 -1
  10. package/build/api/config/load.js +5 -5
  11. package/build/api/config/load.js.map +1 -1
  12. package/build/api/config-resolver/resolve.js +2 -2
  13. package/build/api/config-resolver/resolve.js.map +1 -1
  14. package/build/api/content/$$.d.ts +7 -0
  15. package/build/api/content/$$.d.ts.map +1 -0
  16. package/build/api/content/$$.js +7 -0
  17. package/build/api/content/$$.js.map +1 -0
  18. package/build/api/content/$.d.ts +2 -0
  19. package/build/api/content/$.d.ts.map +1 -0
  20. package/build/api/content/$.js +2 -0
  21. package/build/api/content/$.js.map +1 -0
  22. package/build/api/content/metadata.d.ts +10 -0
  23. package/build/api/content/metadata.d.ts.map +1 -0
  24. package/build/api/content/metadata.js +9 -0
  25. package/build/api/content/metadata.js.map +1 -0
  26. package/build/api/content/navbar.d.ts +10 -0
  27. package/build/api/content/navbar.d.ts.map +1 -0
  28. package/build/api/content/navbar.js +45 -0
  29. package/build/api/content/navbar.js.map +1 -0
  30. package/build/api/content/page.d.ts +11 -0
  31. package/build/api/content/page.d.ts.map +1 -0
  32. package/build/api/content/page.js +2 -0
  33. package/build/api/content/page.js.map +1 -0
  34. package/build/api/content/scan.d.ts +19 -0
  35. package/build/api/content/scan.d.ts.map +1 -0
  36. package/build/api/content/scan.js +90 -0
  37. package/build/api/content/scan.js.map +1 -0
  38. package/build/api/content/sidebar.d.ts +104 -0
  39. package/build/api/content/sidebar.d.ts.map +1 -0
  40. package/build/api/content/sidebar.js +166 -0
  41. package/build/api/content/sidebar.js.map +1 -0
  42. package/build/api/content/utils.d.ts +5 -0
  43. package/build/api/content/utils.d.ts.map +1 -0
  44. package/build/api/content/utils.js +8 -0
  45. package/build/api/content/utils.js.map +1 -0
  46. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts.map +1 -1
  47. package/build/api/schema/data-sources/schema-directory/schema-directory.js +3 -2
  48. package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
  49. package/build/api/static/index.d.ts +2 -0
  50. package/build/api/static/index.d.ts.map +1 -0
  51. package/build/api/static/index.js +2 -0
  52. package/build/api/static/index.js.map +1 -0
  53. package/build/api/static/manifest.d.ts +18 -0
  54. package/build/api/static/manifest.d.ts.map +1 -0
  55. package/build/api/static/manifest.js +13 -0
  56. package/build/api/static/manifest.js.map +1 -0
  57. package/build/api/static/rebase.d.ts +14 -0
  58. package/build/api/static/rebase.d.ts.map +1 -0
  59. package/build/api/static/rebase.js +110 -0
  60. package/build/api/static/rebase.js.map +1 -0
  61. package/build/api/static/static.d.ts +3 -0
  62. package/build/api/static/static.d.ts.map +1 -0
  63. package/build/api/static/static.js +3 -0
  64. package/build/api/static/static.js.map +1 -0
  65. package/build/api/vite/plugins/branding/index.d.ts +4 -0
  66. package/build/api/vite/plugins/branding/index.d.ts.map +1 -0
  67. package/build/api/vite/plugins/branding/index.js +80 -0
  68. package/build/api/vite/plugins/branding/index.js.map +1 -0
  69. package/build/api/vite/plugins/build.d.ts.map +1 -1
  70. package/build/api/vite/plugins/build.js +22 -1
  71. package/build/api/vite/plugins/build.js.map +1 -1
  72. package/build/api/vite/plugins/core.d.ts +2 -2
  73. package/build/api/vite/plugins/core.d.ts.map +1 -1
  74. package/build/api/vite/plugins/core.js +4 -5
  75. package/build/api/vite/plugins/core.js.map +1 -1
  76. package/build/api/vite/plugins/main.d.ts.map +1 -1
  77. package/build/api/vite/plugins/main.js +2 -1
  78. package/build/api/vite/plugins/main.js.map +1 -1
  79. package/build/api/vite/plugins/pages.d.ts +8 -14
  80. package/build/api/vite/plugins/pages.d.ts.map +1 -1
  81. package/build/api/vite/plugins/pages.js +110 -183
  82. package/build/api/vite/plugins/pages.js.map +1 -1
  83. package/build/api/vite/plugins/serve.js +5 -5
  84. package/build/api/vite/plugins/serve.js.map +1 -1
  85. package/build/cli/_/self-contained-mode.js +5 -5
  86. package/build/cli/_/self-contained-mode.js.map +1 -1
  87. package/build/cli/commands/static/$default.d.ts +3 -0
  88. package/build/cli/commands/static/$default.d.ts.map +1 -0
  89. package/build/cli/commands/static/$default.js +38 -0
  90. package/build/cli/commands/static/$default.js.map +1 -0
  91. package/build/cli/commands/static/rebase.d.ts +2 -0
  92. package/build/cli/commands/static/rebase.d.ts.map +1 -0
  93. package/build/cli/commands/static/rebase.js +26 -0
  94. package/build/cli/commands/static/rebase.js.map +1 -0
  95. package/build/cli/commands/static.d.ts +3 -0
  96. package/build/cli/commands/static.d.ts.map +1 -0
  97. package/build/cli/commands/static.js +5 -0
  98. package/build/cli/commands/static.js.map +1 -0
  99. package/build/exports/components.d.ts +2 -0
  100. package/build/exports/components.d.ts.map +1 -0
  101. package/build/exports/components.js +2 -0
  102. package/build/exports/components.js.map +1 -0
  103. package/build/lib/demos/builder.d.ts +83 -0
  104. package/build/lib/demos/builder.d.ts.map +1 -0
  105. package/build/lib/demos/builder.js +237 -0
  106. package/build/lib/demos/builder.js.map +1 -0
  107. package/build/lib/demos/config-schema.d.ts +243 -0
  108. package/build/lib/demos/config-schema.d.ts.map +1 -0
  109. package/build/lib/demos/config-schema.js +52 -0
  110. package/build/lib/demos/config-schema.js.map +1 -0
  111. package/build/lib/demos/config.d.ts +40 -0
  112. package/build/lib/demos/config.d.ts.map +1 -0
  113. package/build/lib/demos/config.js +180 -0
  114. package/build/lib/demos/config.js.map +1 -0
  115. package/build/lib/demos/index.d.ts +9 -0
  116. package/build/lib/demos/index.d.ts.map +1 -0
  117. package/build/lib/demos/index.js +8 -0
  118. package/build/lib/demos/index.js.map +1 -0
  119. package/build/lib/demos/ui/components.d.ts +33 -0
  120. package/build/lib/demos/ui/components.d.ts.map +1 -0
  121. package/build/lib/demos/ui/components.js +699 -0
  122. package/build/lib/demos/ui/components.js.map +1 -0
  123. package/build/lib/demos/ui/data-collector.d.ts +88 -0
  124. package/build/lib/demos/ui/data-collector.d.ts.map +1 -0
  125. package/build/lib/demos/ui/data-collector.js +174 -0
  126. package/build/lib/demos/ui/data-collector.js.map +1 -0
  127. package/build/lib/demos/ui/landing-page-cli.d.ts +3 -0
  128. package/build/lib/demos/ui/landing-page-cli.d.ts.map +1 -0
  129. package/build/lib/demos/ui/landing-page-cli.js +21 -0
  130. package/build/lib/demos/ui/landing-page-cli.js.map +1 -0
  131. package/build/lib/demos/ui/landing-page.d.ts +32 -0
  132. package/build/lib/demos/ui/landing-page.d.ts.map +1 -0
  133. package/build/lib/demos/ui/landing-page.js +83 -0
  134. package/build/lib/demos/ui/landing-page.js.map +1 -0
  135. package/build/lib/demos/ui/page-renderer.d.ts +26 -0
  136. package/build/lib/demos/ui/page-renderer.d.ts.map +1 -0
  137. package/build/lib/demos/ui/page-renderer.js +104 -0
  138. package/build/lib/demos/ui/page-renderer.js.map +1 -0
  139. package/build/lib/demos/utils.d.ts +14 -0
  140. package/build/lib/demos/utils.d.ts.map +1 -0
  141. package/build/lib/demos/utils.js +37 -0
  142. package/build/lib/demos/utils.js.map +1 -0
  143. package/build/lib/deployment/$$.d.ts +3 -0
  144. package/build/lib/deployment/$$.d.ts.map +1 -0
  145. package/build/lib/deployment/$$.js +3 -0
  146. package/build/lib/deployment/$$.js.map +1 -0
  147. package/build/lib/deployment/$.d.ts +2 -0
  148. package/build/lib/deployment/$.d.ts.map +1 -0
  149. package/build/lib/deployment/$.js +2 -0
  150. package/build/lib/deployment/$.js.map +1 -0
  151. package/build/lib/deployment/metadata.d.ts +32 -0
  152. package/build/lib/deployment/metadata.d.ts.map +1 -0
  153. package/build/lib/deployment/metadata.js +37 -0
  154. package/build/lib/deployment/metadata.js.map +1 -0
  155. package/build/lib/deployment/path-manager.d.ts +41 -0
  156. package/build/lib/deployment/path-manager.d.ts.map +1 -0
  157. package/build/lib/deployment/path-manager.js +157 -0
  158. package/build/lib/deployment/path-manager.js.map +1 -0
  159. package/build/lib/file-router/file-router.d.ts +0 -2
  160. package/build/lib/file-router/file-router.d.ts.map +1 -1
  161. package/build/lib/file-router/file-router.js +0 -2
  162. package/build/lib/file-router/file-router.js.map +1 -1
  163. package/build/lib/file-router/route.d.ts +2 -0
  164. package/build/lib/file-router/route.d.ts.map +1 -1
  165. package/build/lib/file-router/route.js.map +1 -1
  166. package/build/lib/file-router/scan.d.ts.map +1 -1
  167. package/build/lib/file-router/scan.js +22 -13
  168. package/build/lib/file-router/scan.js.map +1 -1
  169. package/build/lib/github-actions/git-controller.d.ts +50 -0
  170. package/build/lib/github-actions/git-controller.d.ts.map +1 -0
  171. package/build/lib/github-actions/git-controller.js +90 -0
  172. package/build/lib/github-actions/git-controller.js.map +1 -0
  173. package/build/lib/github-actions/github-actions.d.ts +7 -0
  174. package/build/lib/github-actions/github-actions.d.ts.map +1 -0
  175. package/build/lib/github-actions/github-actions.js +7 -0
  176. package/build/lib/github-actions/github-actions.js.map +1 -0
  177. package/build/lib/github-actions/index.d.ts +2 -0
  178. package/build/lib/github-actions/index.d.ts.map +1 -0
  179. package/build/lib/github-actions/index.js +2 -0
  180. package/build/lib/github-actions/index.js.map +1 -0
  181. package/build/lib/github-actions/lib/get-pr-deployments.d.ts +12 -0
  182. package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +1 -0
  183. package/build/lib/github-actions/lib/get-pr-deployments.js +51 -0
  184. package/build/lib/github-actions/lib/get-pr-deployments.js.map +1 -0
  185. package/build/lib/github-actions/pr-controller.d.ts +39 -0
  186. package/build/lib/github-actions/pr-controller.d.ts.map +1 -0
  187. package/build/lib/github-actions/pr-controller.js +122 -0
  188. package/build/lib/github-actions/pr-controller.js.map +1 -0
  189. package/build/lib/github-actions/run-step-cli.d.ts +9 -0
  190. package/build/lib/github-actions/run-step-cli.d.ts.map +1 -0
  191. package/build/lib/github-actions/run-step-cli.js +71 -0
  192. package/build/lib/github-actions/run-step-cli.js.map +1 -0
  193. package/build/lib/github-actions/runner.d.ts +17 -0
  194. package/build/lib/github-actions/runner.d.ts.map +1 -0
  195. package/build/lib/github-actions/runner.js +195 -0
  196. package/build/lib/github-actions/runner.js.map +1 -0
  197. package/build/lib/github-actions/schemas/context.d.ts +933 -0
  198. package/build/lib/github-actions/schemas/context.d.ts.map +1 -0
  199. package/build/lib/github-actions/schemas/context.js +407 -0
  200. package/build/lib/github-actions/schemas/context.js.map +1 -0
  201. package/build/lib/github-actions/schemas/index.d.ts +5 -0
  202. package/build/lib/github-actions/schemas/index.d.ts.map +1 -0
  203. package/build/lib/github-actions/schemas/index.js +5 -0
  204. package/build/lib/github-actions/schemas/index.js.map +1 -0
  205. package/build/lib/github-actions/search-module.d.ts +38 -0
  206. package/build/lib/github-actions/search-module.d.ts.map +1 -0
  207. package/build/lib/github-actions/search-module.js +40 -0
  208. package/build/lib/github-actions/search-module.js.map +1 -0
  209. package/build/lib/github-actions/step.d.ts +163 -0
  210. package/build/lib/github-actions/step.d.ts.map +1 -0
  211. package/build/lib/github-actions/step.js +121 -0
  212. package/build/lib/github-actions/step.js.map +1 -0
  213. package/build/lib/helpers.d.ts.map +1 -1
  214. package/build/lib/helpers.js +5 -3
  215. package/build/lib/helpers.js.map +1 -1
  216. package/build/lib/kit-temp.d.ts +54 -0
  217. package/build/lib/kit-temp.d.ts.map +1 -1
  218. package/build/lib/kit-temp.js +82 -14
  219. package/build/lib/kit-temp.js.map +1 -1
  220. package/build/lib/kit-temp.test-d.d.ts +2 -0
  221. package/build/lib/kit-temp.test-d.d.ts.map +1 -0
  222. package/build/lib/kit-temp.test-d.js +75 -0
  223. package/build/lib/kit-temp.test-d.js.map +1 -0
  224. package/build/lib/mask/$$.d.ts +3 -0
  225. package/build/lib/mask/$$.d.ts.map +1 -0
  226. package/build/lib/mask/$$.js +3 -0
  227. package/build/lib/mask/$$.js.map +1 -0
  228. package/build/lib/mask/$.d.ts +2 -0
  229. package/build/lib/mask/$.d.ts.map +1 -0
  230. package/build/lib/mask/$.js +2 -0
  231. package/build/lib/mask/$.js.map +1 -0
  232. package/build/lib/mask/apply.d.ts +86 -0
  233. package/build/lib/mask/apply.d.ts.map +1 -0
  234. package/build/lib/mask/apply.js +86 -0
  235. package/build/lib/mask/apply.js.map +1 -0
  236. package/build/lib/mask/mask.d.ts +124 -0
  237. package/build/lib/mask/mask.d.ts.map +1 -0
  238. package/build/lib/mask/mask.js +137 -0
  239. package/build/lib/mask/mask.js.map +1 -0
  240. package/build/lib/mask/mask.test-d.d.ts +2 -0
  241. package/build/lib/mask/mask.test-d.d.ts.map +1 -0
  242. package/build/lib/mask/mask.test-d.js +102 -0
  243. package/build/lib/mask/mask.test-d.js.map +1 -0
  244. package/build/lib/mutation-type.d.ts +18 -0
  245. package/build/lib/mutation-type.d.ts.map +1 -0
  246. package/build/lib/mutation-type.js +16 -0
  247. package/build/lib/mutation-type.js.map +1 -0
  248. package/build/lib/task/$$.d.ts +3 -0
  249. package/build/lib/task/$$.d.ts.map +1 -0
  250. package/build/lib/task/$$.js +3 -0
  251. package/build/lib/task/$$.js.map +1 -0
  252. package/build/lib/task/$.d.ts +2 -0
  253. package/build/lib/task/$.d.ts.map +1 -0
  254. package/build/lib/task/$.js +2 -0
  255. package/build/lib/task/$.js.map +1 -0
  256. package/build/lib/task/report.d.ts +28 -0
  257. package/build/lib/task/report.d.ts.map +1 -0
  258. package/build/lib/task/report.js +33 -0
  259. package/build/lib/task/report.js.map +1 -0
  260. package/build/lib/task/task.d.ts +44 -0
  261. package/build/lib/task/task.d.ts.map +1 -0
  262. package/build/lib/task/task.js +63 -0
  263. package/build/lib/task/task.js.map +1 -0
  264. package/build/lib/version-history/index.d.ts +3 -0
  265. package/build/lib/version-history/index.d.ts.map +1 -0
  266. package/build/lib/version-history/index.js +2 -0
  267. package/build/lib/version-history/index.js.map +1 -0
  268. package/build/lib/version-history/types.d.ts +64 -0
  269. package/build/lib/version-history/types.d.ts.map +1 -0
  270. package/build/lib/version-history/types.js +5 -0
  271. package/build/lib/version-history/types.js.map +1 -0
  272. package/build/lib/version-history/version-history.d.ts +85 -0
  273. package/build/lib/version-history/version-history.d.ts.map +1 -0
  274. package/build/lib/version-history/version-history.js +248 -0
  275. package/build/lib/version-history/version-history.js.map +1 -0
  276. package/build/lib/vite-virtual/debug.d.ts +1 -1
  277. package/build/lib/vite-virtual/debug.d.ts.map +1 -1
  278. package/build/lib/vite-virtual/debug.js +1 -1
  279. package/build/lib/vite-virtual/debug.js.map +1 -1
  280. package/build/project-data.d.ts +0 -1
  281. package/build/project-data.d.ts.map +1 -1
  282. package/build/sandbox.d.ts +2 -0
  283. package/build/sandbox.d.ts.map +1 -0
  284. package/build/sandbox.js +18 -0
  285. package/build/sandbox.js.map +1 -0
  286. package/build/singletons/debug.d.ts +2 -2
  287. package/build/singletons/debug.d.ts.map +1 -1
  288. package/build/singletons/debug.js +2 -2
  289. package/build/singletons/debug.js.map +1 -1
  290. package/build/template/components/HamburgerMenu.d.ts +9 -0
  291. package/build/template/components/HamburgerMenu.d.ts.map +1 -0
  292. package/build/template/components/HamburgerMenu.jsx +53 -0
  293. package/build/template/components/HamburgerMenu.jsx.map +1 -0
  294. package/build/template/components/Link.jsx +1 -1
  295. package/build/template/components/Logo.d.ts +9 -0
  296. package/build/template/components/Logo.d.ts.map +1 -0
  297. package/build/template/components/Logo.jsx +29 -0
  298. package/build/template/components/Logo.jsx.map +1 -0
  299. package/build/template/components/NotFound.d.ts +2 -0
  300. package/build/template/components/NotFound.d.ts.map +1 -0
  301. package/build/template/components/NotFound.jsx +26 -0
  302. package/build/template/components/NotFound.jsx.map +1 -0
  303. package/build/template/components/ThemeToggle.d.ts +3 -0
  304. package/build/template/components/ThemeToggle.d.ts.map +1 -0
  305. package/build/template/components/ThemeToggle.jsx +10 -0
  306. package/build/template/components/ThemeToggle.jsx.map +1 -0
  307. package/build/template/components/content/$$.d.ts +2 -0
  308. package/build/template/components/content/$$.d.ts.map +1 -0
  309. package/build/template/components/content/$$.js +2 -0
  310. package/build/template/components/content/$$.js.map +1 -0
  311. package/build/template/components/sidebar/Sidebar.d.ts +2 -2
  312. package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
  313. package/build/template/components/sidebar/SidebarItem.d.ts +3 -3
  314. package/build/template/components/sidebar/SidebarItem.d.ts.map +1 -1
  315. package/build/template/components/sidebar/SidebarItem.jsx +1 -1
  316. package/build/template/components/sidebar/SidebarItem.jsx.map +1 -1
  317. package/build/template/contexts/ThemeContext.d.ts +12 -0
  318. package/build/template/contexts/ThemeContext.d.ts.map +1 -0
  319. package/build/template/contexts/ThemeContext.jsx +41 -0
  320. package/build/template/contexts/ThemeContext.jsx.map +1 -0
  321. package/build/template/routes/root.d.ts.map +1 -1
  322. package/build/template/routes/root.jsx +66 -53
  323. package/build/template/routes/root.jsx.map +1 -1
  324. package/build/template/server/app.d.ts.map +1 -1
  325. package/build/template/server/app.js +2 -21
  326. package/build/template/server/app.js.map +1 -1
  327. package/package.json +42 -28
  328. package/src/api/api.ts +1 -0
  329. package/src/api/config/configurator.ts +28 -6
  330. package/src/api/config/load.ts +5 -5
  331. package/src/api/config-resolver/resolve.ts +2 -2
  332. package/src/api/content/$$.ts +6 -0
  333. package/src/api/content/$.test.ts +72 -0
  334. package/src/api/content/$.ts +1 -0
  335. package/src/api/content/metadata.ts +11 -0
  336. package/src/api/content/navbar.test.ts +55 -0
  337. package/src/api/content/navbar.ts +61 -0
  338. package/src/api/content/page.ts +12 -0
  339. package/src/api/content/scan.ts +117 -0
  340. package/src/api/content/sidebar.test.ts +297 -0
  341. package/src/api/content/sidebar.ts +283 -0
  342. package/src/api/content/utils.ts +7 -0
  343. package/src/api/schema/data-sources/schema-directory/schema-directory.ts +3 -2
  344. package/src/api/singletons/markdown/markdown.test.ts +1 -1
  345. package/src/api/static/index.ts +1 -0
  346. package/src/api/static/manifest.test.ts +106 -0
  347. package/src/api/static/manifest.ts +16 -0
  348. package/src/api/static/rebase.test.ts +229 -0
  349. package/src/api/static/rebase.ts +140 -0
  350. package/src/api/static/static.ts +2 -0
  351. package/src/api/utils/asset-url/asset-url.test.ts +4 -4
  352. package/src/api/vite/plugins/branding/index.ts +108 -0
  353. package/src/api/vite/plugins/build.ts +25 -1
  354. package/src/api/vite/plugins/core.ts +6 -7
  355. package/src/api/vite/plugins/main.ts +2 -0
  356. package/src/api/vite/plugins/pages.ts +131 -207
  357. package/src/api/vite/plugins/serve.ts +5 -5
  358. package/src/cli/_/self-contained-mode.ts +5 -5
  359. package/src/cli/commands/static/$default.ts +43 -0
  360. package/src/cli/commands/static/rebase.ts +37 -0
  361. package/src/cli/commands/static.ts +6 -0
  362. package/src/exports/components.ts +1 -0
  363. package/src/lib/demos/builder.ts +298 -0
  364. package/src/lib/demos/config-schema.ts +56 -0
  365. package/src/lib/demos/config.test.ts +193 -0
  366. package/src/lib/demos/config.ts +205 -0
  367. package/src/lib/demos/index.ts +9 -0
  368. package/src/lib/demos/ui/components.ts +739 -0
  369. package/src/lib/demos/ui/data-collector.ts +246 -0
  370. package/src/lib/demos/ui/landing-page-cli.ts +23 -0
  371. package/src/lib/demos/ui/landing-page.ts +126 -0
  372. package/src/lib/demos/ui/page-renderer.ts +124 -0
  373. package/src/lib/demos/utils.ts +43 -0
  374. package/src/lib/deployment/$$.ts +2 -0
  375. package/src/lib/deployment/$.test.ts +53 -0
  376. package/src/lib/deployment/$.ts +1 -0
  377. package/src/lib/deployment/metadata.ts +40 -0
  378. package/src/lib/deployment/path-manager.ts +186 -0
  379. package/src/lib/file-router/file-router.ts +0 -2
  380. package/src/lib/file-router/linter.test.ts +2 -0
  381. package/src/lib/file-router/route.ts +2 -0
  382. package/src/lib/file-router/scan.ts +26 -14
  383. package/src/lib/github-actions/git-controller.ts +151 -0
  384. package/src/lib/github-actions/github-actions.ts +6 -0
  385. package/src/lib/github-actions/index.ts +1 -0
  386. package/src/lib/github-actions/lib/get-pr-deployments.ts +76 -0
  387. package/src/lib/github-actions/pr-controller.test.ts +172 -0
  388. package/src/lib/github-actions/pr-controller.ts +183 -0
  389. package/src/lib/github-actions/run-step-cli.ts +84 -0
  390. package/src/lib/github-actions/runner.test.ts +192 -0
  391. package/src/lib/github-actions/runner.ts +226 -0
  392. package/src/lib/github-actions/schemas/context.ts +424 -0
  393. package/src/lib/github-actions/schemas/index.ts +5 -0
  394. package/src/lib/github-actions/search-module.test.ts +110 -0
  395. package/src/lib/github-actions/search-module.ts +76 -0
  396. package/src/lib/github-actions/step.test.ts +149 -0
  397. package/src/lib/github-actions/step.ts +232 -0
  398. package/src/lib/helpers.ts +4 -3
  399. package/src/lib/kit-temp.test-d.ts +115 -0
  400. package/src/lib/kit-temp.test.ts +127 -0
  401. package/src/lib/kit-temp.ts +128 -14
  402. package/src/lib/mask/$$.ts +2 -0
  403. package/src/lib/mask/$.test.ts +248 -0
  404. package/src/lib/mask/$.ts +1 -0
  405. package/src/lib/mask/apply.ts +134 -0
  406. package/src/lib/mask/mask.test-d.ts +144 -0
  407. package/src/lib/mask/mask.ts +244 -0
  408. package/src/lib/mutation-type.ts +20 -0
  409. package/src/lib/shiki/shiki.test.ts +1 -1
  410. package/src/lib/task/$$.ts +2 -0
  411. package/src/lib/task/$.test.ts +209 -0
  412. package/src/lib/task/$.ts +1 -0
  413. package/src/lib/task/report.ts +72 -0
  414. package/src/lib/task/task.ts +112 -0
  415. package/src/lib/version-history/index.test.ts +196 -0
  416. package/src/lib/version-history/index.ts +4 -0
  417. package/src/lib/version-history/types.ts +68 -0
  418. package/src/lib/version-history/version-history.ts +293 -0
  419. package/src/lib/vite-virtual/debug.ts +1 -1
  420. package/src/project-data.ts +0 -1
  421. package/src/sandbox.ts +20 -0
  422. package/src/singletons/debug.ts +2 -2
  423. package/src/template/components/HamburgerMenu.tsx +96 -0
  424. package/src/template/components/Link.tsx +1 -1
  425. package/src/template/components/Logo.tsx +46 -0
  426. package/src/template/components/NotFound.tsx +28 -0
  427. package/src/template/components/ThemeToggle.tsx +21 -0
  428. package/src/template/components/content/$$.ts +1 -0
  429. package/src/template/components/sidebar/Sidebar.tsx +2 -2
  430. package/src/template/components/sidebar/SidebarItem.tsx +8 -8
  431. package/src/template/contexts/ThemeContext.tsx +60 -0
  432. package/src/template/routes/root.tsx +85 -74
  433. package/src/template/server/app.ts +2 -27
  434. package/build/lib/debug/debug.d.ts +0 -13
  435. package/build/lib/debug/debug.d.ts.map +0 -1
  436. package/build/lib/debug/debug.js +0 -86
  437. package/build/lib/debug/debug.js.map +0 -1
  438. package/build/lib/debug/environment-variable.d.ts +0 -6
  439. package/build/lib/debug/environment-variable.d.ts.map +0 -1
  440. package/build/lib/debug/environment-variable.js +0 -48
  441. package/build/lib/debug/environment-variable.js.map +0 -1
  442. package/build/lib/debug/index.d.ts +0 -2
  443. package/build/lib/debug/index.d.ts.map +0 -1
  444. package/build/lib/debug/index.js +0 -2
  445. package/build/lib/debug/index.js.map +0 -1
  446. package/build/lib/file-router/scan-tree.d.ts +0 -20
  447. package/build/lib/file-router/scan-tree.d.ts.map +0 -1
  448. package/build/lib/file-router/scan-tree.js +0 -158
  449. package/build/lib/file-router/scan-tree.js.map +0 -1
  450. package/build/lib/file-router/sidebar/index.d.ts +0 -3
  451. package/build/lib/file-router/sidebar/index.d.ts.map +0 -1
  452. package/build/lib/file-router/sidebar/index.js +0 -4
  453. package/build/lib/file-router/sidebar/index.js.map +0 -1
  454. package/build/lib/file-router/sidebar/sidebar-tree.d.ts +0 -9
  455. package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +0 -1
  456. package/build/lib/file-router/sidebar/sidebar-tree.js +0 -85
  457. package/build/lib/file-router/sidebar/sidebar-tree.js.map +0 -1
  458. package/build/lib/file-router/sidebar/types.d.ts +0 -17
  459. package/build/lib/file-router/sidebar/types.d.ts.map +0 -1
  460. package/build/lib/file-router/sidebar/types.js +0 -2
  461. package/build/lib/file-router/sidebar/types.js.map +0 -1
  462. package/build/lib/tree/index.d.ts +0 -3
  463. package/build/lib/tree/index.d.ts.map +0 -1
  464. package/build/lib/tree/index.js +0 -2
  465. package/build/lib/tree/index.js.map +0 -1
  466. package/build/lib/tree/tree.d.ts +0 -62
  467. package/build/lib/tree/tree.d.ts.map +0 -1
  468. package/build/lib/tree/tree.js +0 -134
  469. package/build/lib/tree/tree.js.map +0 -1
  470. package/src/lib/debug/debug.ts +0 -120
  471. package/src/lib/debug/environment-variable.ts +0 -56
  472. package/src/lib/debug/index.ts +0 -1
  473. package/src/lib/file-router/scan-tree.test.ts +0 -189
  474. package/src/lib/file-router/scan-tree.ts +0 -205
  475. package/src/lib/file-router/sidebar/index.ts +0 -3
  476. package/src/lib/file-router/sidebar/sidebar-tree.test.ts +0 -123
  477. package/src/lib/file-router/sidebar/sidebar-tree.ts +0 -110
  478. package/src/lib/file-router/sidebar/types.ts +0 -19
  479. package/src/lib/tree/index.ts +0 -2
  480. package/src/lib/tree/tree.test.ts +0 -117
  481. package/src/lib/tree/tree.ts +0 -183
@@ -0,0 +1,699 @@
1
+ /**
2
+ * UI component generators for demo landing pages
3
+ */
4
+ import { getDemoConfig } from "../index.js";
5
+ /**
6
+ * CSS styles for the demo landing page
7
+ */
8
+ export const getDemoPageStyles = () => {
9
+ const config = getDemoConfig().fullConfig;
10
+ const theme = config.ui.theme;
11
+ return `
12
+ * {
13
+ margin: 0;
14
+ padding: 0;
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ body {
19
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
20
+ line-height: 1.6;
21
+ color: ${theme.textColor};
22
+ background: ${theme.backgroundColor};
23
+ }
24
+
25
+ .container {
26
+ max-width: 1200px;
27
+ margin: 0 auto;
28
+ padding: 2rem;
29
+ }
30
+
31
+ .header {
32
+ margin-bottom: 4rem;
33
+ padding: 3rem 0;
34
+ border-bottom: 1px solid ${theme.primaryColor};
35
+ }
36
+
37
+ .header h1 {
38
+ font-size: 2.5rem;
39
+ font-weight: 400;
40
+ margin-bottom: 0.5rem;
41
+ letter-spacing: -0.02em;
42
+ }
43
+
44
+ .header p {
45
+ font-size: 1rem;
46
+ color: ${theme.textColor};
47
+ max-width: 600px;
48
+ }
49
+
50
+ .demos-grid {
51
+ display: grid;
52
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
53
+ gap: 2rem;
54
+ margin-bottom: 3rem;
55
+ }
56
+
57
+ .demo-card {
58
+ background: ${theme.backgroundColor};
59
+ padding: 2rem;
60
+ border: 1px solid ${theme.primaryColor};
61
+ transition: all 0.2s ease;
62
+ }
63
+
64
+ .demo-card:hover {
65
+ transform: translateY(-2px);
66
+ }
67
+
68
+ .demo-card h2 {
69
+ font-size: 1.25rem;
70
+ margin-bottom: 0.5rem;
71
+ color: ${theme.textColor};
72
+ font-weight: 600;
73
+ letter-spacing: -0.01em;
74
+ }
75
+
76
+ .demo-card p {
77
+ color: ${theme.textColor};
78
+ margin-bottom: 1.5rem;
79
+ font-size: 0.875rem;
80
+ line-height: 1.5;
81
+ }
82
+
83
+ .demo-link {
84
+ display: inline-flex;
85
+ align-items: center;
86
+ gap: 0.5rem;
87
+ background: ${theme.primaryColor};
88
+ color: ${theme.backgroundColor};
89
+ text-decoration: none;
90
+ padding: 0.625rem 1.25rem;
91
+ font-size: 0.875rem;
92
+ font-weight: 500;
93
+ transition: all 0.2s ease;
94
+ border: 1px solid ${theme.primaryColor};
95
+ }
96
+
97
+ .demo-link:hover {
98
+ background: ${theme.backgroundColor};
99
+ color: ${theme.primaryColor};
100
+ }
101
+
102
+ .demo-link svg {
103
+ width: 16px;
104
+ height: 16px;
105
+ }
106
+
107
+ .demo-links {
108
+ display: flex;
109
+ flex-direction: column;
110
+ gap: 1rem;
111
+ margin-top: 1.5rem;
112
+ }
113
+
114
+ .dist-tags {
115
+ display: flex;
116
+ flex-direction: column;
117
+ gap: 0.75rem;
118
+ }
119
+
120
+ .dist-tag-button {
121
+ display: flex;
122
+ align-items: stretch;
123
+ border: 1px solid ${theme.primaryColor};
124
+ overflow: hidden;
125
+ }
126
+
127
+ .dist-tag-label {
128
+ flex: 1;
129
+ padding: 0.625rem 1.25rem;
130
+ font-size: 0.875rem;
131
+ font-weight: 500;
132
+ display: flex;
133
+ align-items: center;
134
+ gap: 0.5rem;
135
+ background: ${theme.primaryColor};
136
+ color: ${theme.backgroundColor};
137
+ text-decoration: none;
138
+ transition: all 0.2s ease;
139
+ }
140
+
141
+ .dist-tag-label svg {
142
+ width: 16px;
143
+ height: 16px;
144
+ transition: transform 0.2s ease;
145
+ }
146
+
147
+ .dist-tag-label:hover svg {
148
+ transform: translateX(4px);
149
+ }
150
+
151
+ .dist-tag-version {
152
+ padding: 0.625rem 1.25rem;
153
+ border-left: 1px solid rgba(255, 255, 255, 0.2);
154
+ font-family: monospace;
155
+ font-size: 0.875rem;
156
+ background: ${theme.primaryColor};
157
+ color: ${theme.backgroundColor};
158
+ text-decoration: none;
159
+ display: flex;
160
+ align-items: center;
161
+ transition: all 0.2s ease;
162
+ }
163
+
164
+ /* Hover states */
165
+ .dist-tag-button:hover .dist-tag-label,
166
+ .dist-tag-button:hover .dist-tag-version {
167
+ background: ${theme.backgroundColor};
168
+ color: rgba(0, 0, 0, 0.5);
169
+ }
170
+
171
+ .dist-tag-button:hover .dist-tag-version {
172
+ border-left-color: rgba(0, 0, 0, 0.2);
173
+ }
174
+
175
+ .dist-tag-label:hover {
176
+ color: ${theme.primaryColor} !important;
177
+ }
178
+
179
+ .dist-tag-version:hover {
180
+ color: ${theme.primaryColor} !important;
181
+ }
182
+
183
+ .permalink-icon {
184
+ display: inline-block;
185
+ transition: transform 0.2s ease;
186
+ margin-left: 0.75rem;
187
+ transform-origin: center center;
188
+ }
189
+
190
+ .dist-tag-version:hover .permalink-icon {
191
+ transform: rotate(15deg) translateY(-1px);
192
+ }
193
+
194
+ .previous-versions {
195
+ margin-top: 1rem;
196
+ padding-top: 1rem;
197
+ border-top: 1px solid #e0e0e0;
198
+ }
199
+
200
+ .previous-versions h3 {
201
+ font-size: 0.875rem;
202
+ font-weight: 600;
203
+ margin-bottom: 0.5rem;
204
+ }
205
+
206
+ .commit-links {
207
+ display: flex;
208
+ flex-wrap: wrap;
209
+ gap: 0.5rem;
210
+ font-size: 0.75rem;
211
+ }
212
+
213
+ .commit-link {
214
+ padding: 0.25rem 0.5rem;
215
+ border: 1px solid ${theme.primaryColor};
216
+ text-decoration: none;
217
+ color: ${theme.primaryColor};
218
+ font-family: monospace;
219
+ transition: all 0.2s ease;
220
+ }
221
+
222
+ .commit-link:hover {
223
+ background: ${theme.primaryColor};
224
+ color: ${theme.backgroundColor};
225
+ }
226
+
227
+ .current-deployment {
228
+ margin-top: 1rem;
229
+ font-size: 0.875rem;
230
+ color: #666;
231
+ }
232
+
233
+ .current-deployment span {
234
+ color: ${theme.primaryColor};
235
+ }
236
+
237
+ .footer {
238
+ text-align: center;
239
+ padding: 3rem 0;
240
+ color: ${theme.primaryColor};
241
+ border-top: 1px solid ${theme.primaryColor};
242
+ font-size: 0.875rem;
243
+ }
244
+
245
+ .footer a {
246
+ color: ${theme.primaryColor};
247
+ text-decoration: underline;
248
+ }
249
+
250
+ .footer a:hover {
251
+ text-decoration: none;
252
+ }
253
+
254
+ .disabled {
255
+ opacity: 0.4;
256
+ cursor: not-allowed;
257
+ }
258
+
259
+ .disabled .demo-link {
260
+ background: ${theme.backgroundColor};
261
+ color: ${theme.primaryColor};
262
+ pointer-events: none;
263
+ width: 100%;
264
+ justify-content: center;
265
+ }
266
+
267
+ .version-info {
268
+ margin-top: 3rem;
269
+ padding: 2rem;
270
+ background: #f8f8f8;
271
+ border: 1px solid #e0e0e0;
272
+ }
273
+
274
+ .version-info h3 {
275
+ font-size: 1.125rem;
276
+ margin-bottom: 1rem;
277
+ color: ${theme.textColor};
278
+ }
279
+
280
+ .version-list {
281
+ display: flex;
282
+ flex-wrap: wrap;
283
+ gap: 0.5rem;
284
+ }
285
+
286
+ .version-tag {
287
+ padding: 0.25rem 0.75rem;
288
+ background: ${theme.primaryColor};
289
+ color: ${theme.backgroundColor};
290
+ text-decoration: none;
291
+ font-size: 0.75rem;
292
+ font-weight: 500;
293
+ border-radius: 3px;
294
+ }
295
+
296
+ .version-tag.latest {
297
+ background: #0066cc;
298
+ }
299
+
300
+ .version-tag.next {
301
+ background: #ff6600;
302
+ }
303
+
304
+ .pr-section {
305
+ margin-top: 3rem;
306
+ padding: 2rem;
307
+ background: #f0f8ff;
308
+ border: 1px solid #b3d9ff;
309
+ }
310
+
311
+ .pr-section h3 {
312
+ color: #0066cc;
313
+ margin-bottom: 1rem;
314
+ }
315
+
316
+ .pr-list {
317
+ display: grid;
318
+ gap: 1rem;
319
+ }
320
+
321
+ .pr-item {
322
+ padding: 1rem;
323
+ background: white;
324
+ border: 1px solid #ddd;
325
+ }
326
+
327
+ .pr-item h4 {
328
+ color: #0066cc;
329
+ margin-bottom: 0.5rem;
330
+ }
331
+
332
+ .back-link {
333
+ color: ${theme.textColor};
334
+ text-decoration: none;
335
+ display: inline-flex;
336
+ align-items: center;
337
+ gap: 0.5rem;
338
+ margin-bottom: 2rem;
339
+ font-size: 0.875rem;
340
+ }
341
+
342
+ .back-link:hover {
343
+ text-decoration: underline;
344
+ }
345
+
346
+ .pr-banner {
347
+ background: ${theme.primaryColor};
348
+ color: ${theme.backgroundColor};
349
+ padding: 1rem 0;
350
+ margin-bottom: 0;
351
+ border-bottom: 2px solid ${theme.primaryColor};
352
+ }
353
+
354
+ .pr-banner .container {
355
+ display: flex;
356
+ justify-content: space-between;
357
+ align-items: center;
358
+ gap: 2rem;
359
+ flex-wrap: wrap;
360
+ max-width: 1200px;
361
+ margin: 0 auto;
362
+ padding: 0 2rem;
363
+ }
364
+
365
+ .pr-banner-content {
366
+ display: flex;
367
+ align-items: center;
368
+ gap: 1rem;
369
+ }
370
+
371
+ .pr-banner-badge {
372
+ background: ${theme.backgroundColor};
373
+ color: ${theme.primaryColor};
374
+ padding: 0.25rem 0.75rem;
375
+ font-size: 0.75rem;
376
+ font-weight: 600;
377
+ text-transform: uppercase;
378
+ letter-spacing: 0.05em;
379
+ }
380
+
381
+ .pr-banner-text {
382
+ font-size: 0.875rem;
383
+ }
384
+
385
+ .pr-banner-links {
386
+ display: flex;
387
+ gap: 1rem;
388
+ align-items: center;
389
+ }
390
+
391
+ .pr-banner-link {
392
+ color: ${theme.backgroundColor};
393
+ text-decoration: none;
394
+ font-size: 0.875rem;
395
+ display: flex;
396
+ align-items: center;
397
+ gap: 0.5rem;
398
+ padding: 0.5rem 1rem;
399
+ border: 1px solid ${theme.backgroundColor};
400
+ transition: all 0.2s ease;
401
+ }
402
+
403
+ .pr-banner-link:hover {
404
+ background: ${theme.backgroundColor};
405
+ color: ${theme.primaryColor};
406
+ }
407
+
408
+ .pr-banner-link svg {
409
+ width: 16px;
410
+ height: 16px;
411
+ }
412
+
413
+ @media (max-width: 768px) {
414
+ .container {
415
+ padding: 1rem;
416
+ }
417
+
418
+ .header h1 {
419
+ font-size: 2rem;
420
+ }
421
+
422
+ .demos-grid {
423
+ grid-template-columns: 1fr;
424
+ gap: 1rem;
425
+ }
426
+
427
+ .demo-card {
428
+ padding: 1.5rem;
429
+ }
430
+
431
+ .pr-banner .container {
432
+ flex-direction: column;
433
+ align-items: flex-start;
434
+ gap: 1rem;
435
+ padding: 0 1rem;
436
+ }
437
+
438
+ .pr-banner-links {
439
+ width: 100%;
440
+ flex-direction: column;
441
+ align-items: stretch;
442
+ }
443
+
444
+ .pr-banner-link {
445
+ justify-content: center;
446
+ }
447
+ }
448
+ `;
449
+ };
450
+ /**
451
+ * Generate PR banner HTML
452
+ */
453
+ export const generatePrBanner = (prNumber) => {
454
+ // These should be set by the GitHub Actions environment
455
+ const repoOwner = process.env['GITHUB_REPOSITORY_OWNER'] || 'the-guild-org';
456
+ const repoName = process.env['GITHUB_REPOSITORY']?.split('/')[1] || 'polen';
457
+ return `
458
+ <div class="pr-banner">
459
+ <div class="container">
460
+ <div class="pr-banner-content">
461
+ <span class="pr-banner-badge">PR Preview</span>
462
+ <span class="pr-banner-text">You're viewing a preview deployment for Pull Request #${prNumber}</span>
463
+ </div>
464
+ <div class="pr-banner-links">
465
+ <a href="https://github.com/${repoOwner}/${repoName}/pull/${prNumber}" class="pr-banner-link" target="_blank">
466
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
467
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
468
+ </svg>
469
+ View PR on GitHub
470
+ </a>
471
+ <a href="https://${repoOwner}.github.io/${repoName}/" class="pr-banner-link">
472
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
473
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
474
+ </svg>
475
+ Go to Production Demos
476
+ </a>
477
+ </div>
478
+ </div>
479
+ </div>
480
+ `;
481
+ };
482
+ /**
483
+ * Generate header HTML
484
+ */
485
+ export const generateHeader = (data) => {
486
+ const config = getDemoConfig().fullConfig;
487
+ const { mode, prNumber } = data.config;
488
+ let title = config.ui.branding.title;
489
+ let description = config.ui.branding.description;
490
+ if (prNumber) {
491
+ title = `${title} - PR #${prNumber} Preview`;
492
+ description = `Preview of changes in pull request #${prNumber}`;
493
+ }
494
+ return `
495
+ <div class="header">
496
+ <h1>${title}</h1>
497
+ <p>${description}</p>
498
+ </div>
499
+ `;
500
+ };
501
+ /**
502
+ * Generate demo card HTML for the demos landing page
503
+ */
504
+ export const generateDemoCard = (name, metadata, data) => {
505
+ const { title, description, enabled } = metadata;
506
+ const { basePath, prNumber, currentSha } = data.config;
507
+ const { distTags, trunkDeployments, prDeployments } = data;
508
+ if (!enabled) {
509
+ return `<div class="demo-card disabled">
510
+ <h2>${title}</h2>
511
+ <p>${description}</p>
512
+ <span class="demo-link">
513
+ Coming Soon
514
+ </span>
515
+ </div>`;
516
+ }
517
+ // Get previous deployments for PR from the passed data
518
+ let previousDeployments = [];
519
+ if (prNumber && prDeployments) {
520
+ const currentPr = prDeployments.find(pr => pr.number.toString() === prNumber);
521
+ if (currentPr && currentPr.previousDeployments) {
522
+ previousDeployments = currentPr.previousDeployments.filter(sha => sha !== currentSha);
523
+ }
524
+ }
525
+ return `<div class="demo-card">
526
+ <h2>${title}</h2>
527
+ <p>${description}</p>
528
+ <div class="demo-links">
529
+ ${
530
+ // For trunk deployments, show dist-tag buttons
531
+ !prNumber
532
+ ? distTags && Object.entries(distTags).length > 0
533
+ ? `<div class="dist-tags">
534
+ ${Object.entries(distTags)
535
+ .sort(([a], [b]) => a === 'latest' ? -1 : b === 'latest' ? 1 : 0)
536
+ .filter(([tag, version]) => {
537
+ // If next points to the same version as latest, filter it out
538
+ if (tag === 'next' && distTags['latest'] === version) {
539
+ return false;
540
+ }
541
+ return true;
542
+ })
543
+ .map(([tag, version]) => `
544
+ <div class="dist-tag-button">
545
+ <a href="${basePath}${tag}/${name}/" class="dist-tag-label">
546
+ ${tag}
547
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
548
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3" />
549
+ </svg>
550
+ </a>
551
+ <a href="${basePath}${version}/${name}/" class="dist-tag-version">${version}<span class="permalink-icon">¶</span></a>
552
+ </div>
553
+ `).join('')}
554
+ ${
555
+ // Show "no prereleases" message if next === latest
556
+ distTags && distTags['next'] && distTags['next'] === distTags['latest']
557
+ ? '<div class="disabled" style="margin-top: 0.75rem;"><span class="demo-link" style="width: 100%; justify-content: center;">No pre-releases since latest</span></div>'
558
+ : ''}
559
+ </div>`
560
+ : trunkDeployments && trunkDeployments.latest
561
+ ? `<a href="${basePath}latest/${name}/" class="demo-link">
562
+ View Latest (${trunkDeployments.latest.tag || trunkDeployments.latest.shortSha})
563
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
564
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3" />
565
+ </svg>
566
+ </a>`
567
+ : '<p style="color: #666; font-size: 0.875rem;">No deployments available</p>'
568
+ // For PR deployments
569
+ : prDeployments && prDeployments.length > 0
570
+ ? currentSha
571
+ // If we have currentSha, show the specific deployment
572
+ ? `<div class="dist-tags">
573
+ <div class="dist-tag-button">
574
+ <a href="${basePath}latest/${name}/" class="dist-tag-label">
575
+ latest
576
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
577
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3" />
578
+ </svg>
579
+ </a>
580
+ <a href="${basePath}${currentSha}/${name}/" class="dist-tag-version">${currentSha.substring(0, 7)}<span class="permalink-icon">¶</span></a>
581
+ </div>
582
+ </div>`
583
+ // Otherwise show available deployments for this PR
584
+ : prDeployments[0]?.sha
585
+ ? `<div class="dist-tags">
586
+ <div class="dist-tag-button">
587
+ <a href="${basePath}latest/${name}/" class="dist-tag-label">
588
+ latest
589
+ <svg fill="none" viewBox="0 0 24 24" stroke="currentColor">
590
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3" />
591
+ </svg>
592
+ </a>
593
+ <a href="${basePath}${prDeployments[0].sha}/${name}/" class="dist-tag-version">${prDeployments[0].sha}<span class="permalink-icon">¶</span></a>
594
+ </div>
595
+ </div>`
596
+ : '<p style="color: #666; font-size: 0.875rem;">No deployments available</p>'
597
+ : '<p style="color: #666; font-size: 0.875rem;">No deployments available</p>'}
598
+ <div class="previous-versions">
599
+ <h3>Previous Versions</h3>
600
+ ${
601
+ // For trunk deployments, use parsedTrunkDeployments
602
+ !prNumber && trunkDeployments
603
+ ? trunkDeployments.previous.length > 0
604
+ ? `<div class="commit-links">
605
+ ${trunkDeployments.previous.map(deployment => {
606
+ // For semver deployments, tag and sha are the same, so just show once
607
+ const label = deployment.tag || deployment.shortSha;
608
+ return `<a href="${basePath}${deployment.sha}/${name}/" class="commit-link">${label}</a>`;
609
+ }).join('')}
610
+ </div>`
611
+ : '<p style="color: #666; font-size: 0.875rem; margin: 0;">(none)</p>'
612
+ // For PR deployments, use the existing logic
613
+ : previousDeployments.length > 0
614
+ ? `<div class="commit-links">
615
+ ${previousDeployments.map(sha => `
616
+ <a href="${basePath}${sha}/${name}/" class="commit-link">${sha.substring(0, 7)}</a>
617
+ `).join('')}
618
+ </div>`
619
+ : '<p style="color: #666; font-size: 0.875rem; margin: 0;">(none)</p>'}
620
+ </div>
621
+ </div>
622
+ </div>`;
623
+ };
624
+ /**
625
+ * Generate demos grid HTML
626
+ */
627
+ export const generateDemosGrid = (data) => {
628
+ const { demoMetadata, demoExamples } = data;
629
+ const orderedExamples = getDemoConfig().getOrderedDemos(demoExamples);
630
+ // Add disabled demos to the list
631
+ const allDemos = [...orderedExamples];
632
+ for (const [name, metadata] of Object.entries(demoMetadata)) {
633
+ if (!metadata.enabled && !allDemos.includes(name)) {
634
+ allDemos.push(name);
635
+ }
636
+ }
637
+ const demoCards = allDemos
638
+ .map(name => generateDemoCard(name, demoMetadata[name] || { title: name, description: '', enabled: true }, data))
639
+ .join('');
640
+ return `
641
+ <div class="demos-grid">
642
+ ${demoCards}
643
+ </div>
644
+ `;
645
+ };
646
+ /**
647
+ * Generate version information section
648
+ */
649
+ export const generateVersionInfo = (data) => {
650
+ const { trunkDeployments, distTags } = data;
651
+ if (!trunkDeployments)
652
+ return '';
653
+ const basePath = data.config.basePath || '/';
654
+ const distTagsHtml = distTags
655
+ ? Object.entries(distTags)
656
+ .map(([tag, version]) => {
657
+ const className = tag === 'latest'
658
+ ? 'version-tag latest'
659
+ : tag === 'next'
660
+ ? 'version-tag next'
661
+ : 'version-tag';
662
+ return `<a href="${basePath}${version}/" class="${className}">${tag}: ${version}</a>`;
663
+ })
664
+ .join('')
665
+ : '';
666
+ const previousVersionsHtml = trunkDeployments.previous && trunkDeployments.previous.length > 0
667
+ ? trunkDeployments.previous
668
+ .slice(0, 10) // Limit to recent versions
669
+ .map(version => `<a href="${basePath}${version.tag}/" class="version-tag">${version.tag}</a>`)
670
+ .join('')
671
+ : '';
672
+ // Only show the version info section if there's content to display
673
+ if (!distTagsHtml && !previousVersionsHtml) {
674
+ return '';
675
+ }
676
+ return `
677
+ <div class="version-info">
678
+ <h3>Available Versions</h3>
679
+ ${distTagsHtml ? `<div class="version-list">${distTagsHtml}</div>` : ''}
680
+ ${previousVersionsHtml
681
+ ? `
682
+ <h4 style="margin: 1rem 0 0.5rem 0; font-size: 0.875rem; color: #666;">Previous Versions:</h4>
683
+ <div class="version-list">${previousVersionsHtml}</div>
684
+ `
685
+ : ''}
686
+ </div>
687
+ `;
688
+ };
689
+ /**
690
+ * Generate footer section
691
+ */
692
+ export const generateFooter = () => {
693
+ return `
694
+ <div class="footer">
695
+ <p>Built with <a href="https://github.com/the-guild-org/polen" target="_blank">Polen</a> - The delightful GraphQL documentation framework</p>
696
+ </div>
697
+ `;
698
+ };
699
+ //# sourceMappingURL=components.js.map