@leed-ai/cli 0.0.0-stage → 6.19.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 (263) hide show
  1. package/LICENSE.md +57 -0
  2. package/README.md +125 -2
  3. package/dist/LICENSE.md +57 -0
  4. package/dist/acorn-DAgDT1om.js +5087 -0
  5. package/dist/angular-l0_4PK8N.js +3598 -0
  6. package/dist/authShared-Dray38Ls.js +1161 -0
  7. package/dist/babel-CJeRQd5u.js +10038 -0
  8. package/dist/buildResults-tiq1nugP.js +21180 -0
  9. package/dist/chunk-1VJ9lAw7.js +42 -0
  10. package/dist/cliAuth-38JjD6hw.js +15 -0
  11. package/dist/env-B0bHiXJJ.js +29 -0
  12. package/dist/errors-CqKamGCu.js +481 -0
  13. package/dist/estree-E8WG8UHj.js +6930 -0
  14. package/dist/flow-6xaRIbPQ.js +52255 -0
  15. package/dist/glimmer-aJPjsfbT.js +7272 -0
  16. package/dist/graphql-mcgtPEiZ.js +1901 -0
  17. package/dist/html--eeea3Kl.js +6553 -0
  18. package/dist/leed.eleventy.mjs +6525 -0
  19. package/dist/leed.mjs +88952 -0
  20. package/dist/leed.sources.json +798 -0
  21. package/dist/leedLogger-Zkada5aO.js +78 -0
  22. package/dist/markdown-D73jNKwx.js +6836 -0
  23. package/dist/meriyah-CMp1nDDW.js +8932 -0
  24. package/dist/package.json +101 -0
  25. package/dist/postcss-h4fBr2Fn.js +6760 -0
  26. package/dist/prettier-CwFSKxfN.js +16821 -0
  27. package/dist/static/customer-site-worker/package.json +9 -0
  28. package/dist/static/customer-site-worker/src/assetsHydration.ts +55 -0
  29. package/dist/static/customer-site-worker/src/constants.ts +20 -0
  30. package/dist/static/customer-site-worker/src/cors.ts +120 -0
  31. package/dist/static/customer-site-worker/src/index.ts +242 -0
  32. package/dist/static/customer-site-worker/src/mcp-proxy.ts +98 -0
  33. package/dist/static/customer-site-worker/src/proxy.ts +92 -0
  34. package/dist/static/customer-site-worker/src/proxyHeaders.ts +47 -0
  35. package/dist/static/customer-site-worker/src/tier.ts +40 -0
  36. package/dist/static/customer-site-worker/src/types.ts +82 -0
  37. package/dist/static/customer-site-worker/test/functions-mock.worker.js +50 -0
  38. package/dist/static/customer-site-worker/tsconfig.json +19 -0
  39. package/dist/static/customer-site-worker/vitest.workers.config.ts +61 -0
  40. package/dist/static/install/husky/colors.mjs +5 -0
  41. package/dist/static/install/husky/hooks/commit-msg +1 -0
  42. package/dist/static/install/husky/hooks/pre-commit +1 -0
  43. package/dist/static/install/husky/hooks/pre-push +1 -0
  44. package/dist/static/install/husky/valid-command.mjs +29 -0
  45. package/dist/static/install/husky/valid-commit-msg.mjs +20 -0
  46. package/dist/static/install/package.json +10 -0
  47. package/dist/static/install/packages.txt +4 -0
  48. package/dist/static/install/tasks.json +111 -0
  49. package/dist/static/javascript/detectIncognito.js +195 -0
  50. package/dist/static/javascript/documentation.js +2781 -0
  51. package/dist/static/javascript/fp/fp.esm.js +2896 -0
  52. package/dist/static/javascript/fp/fp.js +3067 -0
  53. package/dist/static/javascript/live-search.js +986 -0
  54. package/dist/static/javascript/lunr-search.js +843 -0
  55. package/dist/static/javascript/timeme.js +451 -0
  56. package/dist/static/javascript/tracker/webmcp.js +67 -0
  57. package/dist/static/javascript/tracker/whisper.js +1 -0
  58. package/dist/static/javascript/utilities.js +819 -0
  59. package/dist/static/javascript/versions.json +74 -0
  60. package/dist/static/javascript/zoomable.js +488 -0
  61. package/dist/static/site/_data/eleventyComputed.js +228 -0
  62. package/dist/static/site/_data/leed-form-data.json +253 -0
  63. package/dist/static/site/_includes/leed/api/bits/array-type.hbs +24 -0
  64. package/dist/static/site/_includes/leed/api/bits/badges.hbs +9 -0
  65. package/dist/static/site/_includes/leed/api/bits/description.hbs +9 -0
  66. package/dist/static/site/_includes/leed/api/bits/examples.hbs +42 -0
  67. package/dist/static/site/_includes/leed/api/bits/scopes.hbs +28 -0
  68. package/dist/static/site/_includes/leed/api/object.hbs +110 -0
  69. package/dist/static/site/_includes/leed/api/parameters.hbs +11 -0
  70. package/dist/static/site/_includes/leed/api/property.hbs +153 -0
  71. package/dist/static/site/_includes/leed/api/request-body.hbs +51 -0
  72. package/dist/static/site/_includes/leed/api/responses.hbs +89 -0
  73. package/dist/static/site/_includes/leed/api/security-constraints.hbs +59 -0
  74. package/dist/static/site/_includes/leed/api/security.hbs +75 -0
  75. package/dist/static/site/_includes/leed/components/pagination.hbs +45 -0
  76. package/dist/static/site/_includes/leed/components/scroll-status-indicator-horizontal.hbs +22 -0
  77. package/dist/static/site/_includes/leed/docs/alpha/api.hbs +6 -0
  78. package/dist/static/site/_includes/leed/docs/alpha/base.hbs +26 -0
  79. package/dist/static/site/_includes/leed/docs/alpha/documentation.hbs +7 -0
  80. package/dist/static/site/_includes/leed/docs/api-article.hbs +75 -0
  81. package/dist/static/site/_includes/leed/docs/bravo/api.hbs +5 -0
  82. package/dist/static/site/_includes/leed/docs/bravo/base.hbs +31 -0
  83. package/dist/static/site/_includes/leed/docs/bravo/documentation.hbs +7 -0
  84. package/dist/static/site/_includes/leed/docs/charlie/api.hbs +6 -0
  85. package/dist/static/site/_includes/leed/docs/charlie/base.hbs +27 -0
  86. package/dist/static/site/_includes/leed/docs/charlie/documentation.hbs +10 -0
  87. package/dist/static/site/_includes/leed/docs/doc-article.hbs +40 -0
  88. package/dist/static/site/_includes/leed/docs/docs-footer.hbs +35 -0
  89. package/dist/static/site/_includes/leed/docs/docs-header.hbs +59 -0
  90. package/dist/static/site/_includes/leed/docs/document-search-modal.hbs +36 -0
  91. package/dist/static/site/_includes/leed/docs/document-search.hbs +23 -0
  92. package/dist/static/site/_includes/leed/docs/footer.hbs +12 -0
  93. package/dist/static/site/_includes/leed/docs/header/brand.hbs +19 -0
  94. package/dist/static/site/_includes/leed/docs/header/chrome.hbs +33 -0
  95. package/dist/static/site/_includes/leed/docs/header/compact.hbs +19 -0
  96. package/dist/static/site/_includes/leed/docs/header/cta.hbs +15 -0
  97. package/dist/static/site/_includes/leed/docs/header/nav.hbs +18 -0
  98. package/dist/static/site/_includes/leed/docs/header/top-search.hbs +15 -0
  99. package/dist/static/site/_includes/leed/docs/mini-bar.hbs +53 -0
  100. package/dist/static/site/_includes/leed/docs/pagination.hbs +19 -0
  101. package/dist/static/site/_includes/leed/docs/shell.hbs +56 -0
  102. package/dist/static/site/_includes/leed/docs/sidebar.hbs +52 -0
  103. package/dist/static/site/_includes/leed/docs/social-icons.hbs +81 -0
  104. package/dist/static/site/_includes/leed/docs/style.hbs +17 -0
  105. package/dist/static/site/_includes/leed/docs/toc.hbs +7 -0
  106. package/dist/static/site/_includes/leed/form.hbs +266 -0
  107. package/dist/static/site/_includes/leed/head.hbs +67 -0
  108. package/dist/static/site/_includes/leed/menu/builder.hbs +35 -0
  109. package/dist/static/site/_includes/leed/menu/item.hbs +67 -0
  110. package/dist/static/site/_includes/leed/menu/link.hbs +59 -0
  111. package/dist/static/site/_includes/leed/metadata/ogCard.hbs +40 -0
  112. package/dist/static/site/_includes/leed/metadata/siteMetadata.hbs +24 -0
  113. package/dist/static/site/_includes/leed/metadata/twitterCard.hbs +34 -0
  114. package/dist/static/site/_includes/leed/popup-video.hbs +21 -0
  115. package/dist/static/site/_includes/leed/stub-template.hbs +17 -0
  116. package/dist/static/site/_includes/leed/unsubscribe-form.hbs +30 -0
  117. package/dist/static/site/_layouts/leed-documentation.hbs +12 -0
  118. package/dist/static/site/leed-feed-atom.hbs +42 -0
  119. package/dist/static/site/leed-feed-json.hbs +56 -0
  120. package/dist/static/site/leed-feed-rss.hbs +39 -0
  121. package/dist/static/site/leed-headers.hbs +38 -0
  122. package/dist/static/site/leed-redirects.hbs +10 -0
  123. package/dist/static/site/leed-sitemap-pageType.hbs +28 -0
  124. package/dist/static/site/leed-sitemap.hbs +19 -0
  125. package/dist/static/site/leed-unsubscribe.hbs +44 -0
  126. package/dist/static/site/leed-unsubscribed.hbs +40 -0
  127. package/dist/static/tailwind/components/alerts.css +132 -0
  128. package/dist/static/tailwind/components/api-methods.css +39 -0
  129. package/dist/static/tailwind/components/breadcrumbs.css +31 -0
  130. package/dist/static/tailwind/components/code.css +88 -0
  131. package/dist/static/tailwind/components/collapsible.css +38 -0
  132. package/dist/static/tailwind/components/document-search.css +222 -0
  133. package/dist/static/tailwind/components/form.css +185 -0
  134. package/dist/static/tailwind/components/kbd.css +7 -0
  135. package/dist/static/tailwind/components/pagination.css +81 -0
  136. package/dist/static/tailwind/components/scroll-status-indicator.css +5 -0
  137. package/dist/static/tailwind/components/tab-groups.css +117 -0
  138. package/dist/static/tailwind/components/tables.css +0 -0
  139. package/dist/static/tailwind/components/toc.css +60 -0
  140. package/dist/static/tailwind/components.css +248 -0
  141. package/dist/static/tailwind/defaults.css +260 -0
  142. package/dist/static/tailwind/docs/api.css +701 -0
  143. package/dist/static/tailwind/docs/components/blockquote.css +5 -0
  144. package/dist/static/tailwind/docs/components/button.css +11 -0
  145. package/dist/static/tailwind/docs/components/docs-pagination.css +71 -0
  146. package/dist/static/tailwind/docs/components/mobile-bar.css +83 -0
  147. package/dist/static/tailwind/docs/components/navigation.css +279 -0
  148. package/dist/static/tailwind/docs/components/table.css +54 -0
  149. package/dist/static/tailwind/docs/components.css +6 -0
  150. package/dist/static/tailwind/docs/docs.css +427 -0
  151. package/dist/static/tailwind/docs/layouts/alpha.css +108 -0
  152. package/dist/static/tailwind/docs/layouts/bravo.css +218 -0
  153. package/dist/static/tailwind/docs/layouts/charlie.css +105 -0
  154. package/dist/static/tailwind/docs/layouts.css +3 -0
  155. package/dist/static/tailwind/docs/themes/amber.css +113 -0
  156. package/dist/static/tailwind/docs/themes/blue.css +94 -0
  157. package/dist/static/tailwind/docs/themes/cyan.css +111 -0
  158. package/dist/static/tailwind/docs/themes/emerald.css +111 -0
  159. package/dist/static/tailwind/docs/themes/fuchsia.css +111 -0
  160. package/dist/static/tailwind/docs/themes/green.css +95 -0
  161. package/dist/static/tailwind/docs/themes/indigo.css +111 -0
  162. package/dist/static/tailwind/docs/themes/lime.css +111 -0
  163. package/dist/static/tailwind/docs/themes/orange.css +111 -0
  164. package/dist/static/tailwind/docs/themes/pink.css +111 -0
  165. package/dist/static/tailwind/docs/themes/purple.css +111 -0
  166. package/dist/static/tailwind/docs/themes/red.css +111 -0
  167. package/dist/static/tailwind/docs/themes/rose.css +111 -0
  168. package/dist/static/tailwind/docs/themes/sky.css +111 -0
  169. package/dist/static/tailwind/docs/themes/teal.css +111 -0
  170. package/dist/static/tailwind/docs/themes/violet.css +111 -0
  171. package/dist/static/tailwind/docs/themes/yellow.css +111 -0
  172. package/dist/static/tailwind/docs/themes.css +84 -0
  173. package/dist/static/tailwind/font-awesome/free-7.3.1/brands.css +2455 -0
  174. package/dist/static/tailwind/font-awesome/free-7.3.1/fontawesome.css +8997 -0
  175. package/dist/static/tailwind/font-awesome/free-7.3.1/fonts.css +45 -0
  176. package/dist/static/tailwind/font-awesome/free-7.3.1/icons.json +2608 -0
  177. package/dist/static/tailwind/font-awesome/free-7.3.1.css +3 -0
  178. package/dist/static/tailwind/font-awesome/pro-7.0.0/brands.css +2215 -0
  179. package/dist/static/tailwind/font-awesome/pro-7.0.0/fontawesome.css +19281 -0
  180. package/dist/static/tailwind/font-awesome/pro-7.0.0/fonts.css +445 -0
  181. package/dist/static/tailwind/font-awesome/pro-7.0.0.css +3 -0
  182. package/dist/static/tailwind/font-awesome/pro-7.3.1/brands.css +2455 -0
  183. package/dist/static/tailwind/font-awesome/pro-7.3.1/fontawesome.css +20365 -0
  184. package/dist/static/tailwind/font-awesome/pro-7.3.1/fonts.css +589 -0
  185. package/dist/static/tailwind/font-awesome/pro-7.3.1.css +3 -0
  186. package/dist/static/tailwind/fonts/all.css +6 -0
  187. package/dist/static/tailwind/fonts/config.jsonc +31 -0
  188. package/dist/static/tailwind/fonts/geist-mono.css +142 -0
  189. package/dist/static/tailwind/fonts/geist.css +142 -0
  190. package/dist/static/tailwind/fonts/inter.css +215 -0
  191. package/dist/static/tailwind/fonts/jetbrains-mono.css +126 -0
  192. package/dist/static/tailwind/fonts/noto-sans.css +134 -0
  193. package/dist/static/tailwind/fonts/open-sans.css +89 -0
  194. package/dist/static/tailwind/highlighters.css +14 -0
  195. package/dist/static/tailwind/hljs/README.md +53 -0
  196. package/dist/static/tailwind/hljs/a11y.css +96 -0
  197. package/dist/static/tailwind/hljs/atom-fruit.css +90 -0
  198. package/dist/static/tailwind/hljs/atom-one.css +164 -0
  199. package/dist/static/tailwind/hljs/default.css +164 -0
  200. package/dist/static/tailwind/hljs/github.css +101 -0
  201. package/dist/static/tailwind/hljs/google-code.css +112 -0
  202. package/dist/static/tailwind/hljs/grayscale.css +115 -0
  203. package/dist/static/tailwind/hljs/gruvbox-hard.css +115 -0
  204. package/dist/static/tailwind/hljs/gruvbox-medium.css +115 -0
  205. package/dist/static/tailwind/hljs/gruvbox-soft.css +115 -0
  206. package/dist/static/tailwind/hljs/papercolor.css +120 -0
  207. package/dist/static/tailwind/hljs/qt-creator.css +91 -0
  208. package/dist/static/tailwind/hljs/summerfruit.css +115 -0
  209. package/dist/static/tailwind/hljs/tomorrow.css +115 -0
  210. package/dist/static/tailwind/leed.css +170 -0
  211. package/dist/static/tailwind/site-tokens.reference.css +105 -0
  212. package/dist/static/tailwind/utils/icons.css +102 -0
  213. package/dist/static/tailwind/utils/utilities.css +105 -0
  214. package/dist/static/templates/pages/PAGE.hbs +27 -0
  215. package/dist/static/templates/pages/PAGE_LAYOUT.hbs +19 -0
  216. package/dist/static/templates/pages/PAGE_TYPE_INDEX.hbs +89 -0
  217. package/dist/static/templates/pages/PAGINATED_PAGE_TYPE_ITEM.hbs +52 -0
  218. package/dist/static/templates/pages/PAGINATED_PAGE_TYPE_LIST.hbs +39 -0
  219. package/dist/static/templates/pages/PAGINATED_PAGE_TYPE_PAGINATION.hbs +11 -0
  220. package/dist/static/templates/raw-content/.ci/build.sh +58 -0
  221. package/dist/static/templates/raw-content/README.md +179 -0
  222. package/dist/static/templates/raw-content/_gitignore +50 -0
  223. package/dist/static/templates/raw-content/src/404.hbs +21 -0
  224. package/dist/static/templates/raw-content/src/_data/autolink.json +1 -0
  225. package/dist/static/templates/raw-content/src/_data/ctaList.json +1 -0
  226. package/dist/static/templates/raw-content/src/_data/leedForms.json +1 -0
  227. package/dist/static/templates/raw-content/src/_data/menu.json +1 -0
  228. package/dist/static/templates/raw-content/src/_includes/footer.hbs +18 -0
  229. package/dist/static/templates/raw-content/src/_includes/header-includes.hbs +25 -0
  230. package/dist/static/templates/raw-content/src/_includes/header.hbs +5 -0
  231. package/dist/static/templates/raw-content/src/_includes/site-template.hbs +23 -0
  232. package/dist/static/templates/raw-content/src/_includes/unsubscribe-DISABLED.hbs +17 -0
  233. package/dist/static/templates/raw-content/src/_includes/unsubscribed-DISABLED.hbs +13 -0
  234. package/dist/static/templates/raw-content/src/_layouts/empty.hbs +2 -0
  235. package/dist/static/templates/raw-content/src/index.hbs +21 -0
  236. package/dist/static/templates/raw-content/src/robots.hbs +9 -0
  237. package/dist/static/templates/raw-content/tailwind/site/base.css +44 -0
  238. package/dist/static/templates/raw-content/tailwind/site.config.css +3 -0
  239. package/dist/static/templates/sandbox/_gitignore +50 -0
  240. package/dist/static/templates/sandbox/identity.json +1 -0
  241. package/dist/static/templates/sandbox/src/404.hbs +21 -0
  242. package/dist/static/templates/sandbox/src/_data/autolink.json +1 -0
  243. package/dist/static/templates/sandbox/src/_data/ctaList.json +1 -0
  244. package/dist/static/templates/sandbox/src/_data/labelList.json +9 -0
  245. package/dist/static/templates/sandbox/src/_data/leedForms.json +20 -0
  246. package/dist/static/templates/sandbox/src/_data/menu.json +19 -0
  247. package/dist/static/templates/sandbox/src/_data/pageTypeList.json +14 -0
  248. package/dist/static/templates/sandbox/src/_data/searchIndexList.json +1 -0
  249. package/dist/static/templates/sandbox/src/_data/userList.json +11 -0
  250. package/dist/static/templates/sandbox/src/_includes/footer.hbs +18 -0
  251. package/dist/static/templates/sandbox/src/_includes/header-includes.hbs +25 -0
  252. package/dist/static/templates/sandbox/src/_includes/header.hbs +5 -0
  253. package/dist/static/templates/sandbox/src/_includes/site-template.hbs +23 -0
  254. package/dist/static/templates/sandbox/src/_layouts/empty.hbs +2 -0
  255. package/dist/static/templates/sandbox/src/index.hbs +20 -0
  256. package/dist/static/templates/sandbox/src/robots.hbs +9 -0
  257. package/dist/static/templates/sandbox/src/src.11tydata.json +39 -0
  258. package/dist/static/templates/sandbox/tailwind/site/base.css +44 -0
  259. package/dist/static/templates/sandbox/tailwind/site.config.css +3 -0
  260. package/dist/thrown-sukVkp_1.js +113 -0
  261. package/dist/typescript-D4T0V_Hn.js +23004 -0
  262. package/dist/yaml-9wR8GxF_.js +5236 -0
  263. package/package.json +157 -4
@@ -0,0 +1,179 @@
1
+ # Leed Site Management
2
+
3
+ Thanks for choosing Leed!
4
+
5
+ Managing your site is broken into two parts. The first is making changes here in your web browser. The second is much more advanced and provided for web developers.
6
+
7
+ If you have any questions, please remember you can ask any time in our [discord server](https://discord.com/channels/1007477144630329424/1007477144630329427).
8
+
9
+ ## Web Browser Editing
10
+
11
+ This allows you to edit your template files and directly control html, css and javascript that drives your site.
12
+
13
+ Each time you save your files they will be pushed to your staging site. This may take about a minute after you hit save.
14
+
15
+ After you validate that you are happy with the changes you have made you can promote your changes to production.
16
+
17
+ The steps are as follows:
18
+
19
+ 1. Push the `Merge Changes to Prod` button
20
+ 2. The changes will be then be ready to go to the live site on the next site deployment.
21
+ 3. If you are ready for this to happen immediately you can go to the system settings and click `Force Publish`
22
+ 4. Your changes will be available on your primary website in approximately a minute.
23
+
24
+ ## Advanced Editing
25
+
26
+ After completing this section you will be ready to develop your website locally.
27
+
28
+ ### Prerequisites
29
+
30
+ 1. Git **2.31 or newer** must be installed. Check with `git --version`. Your content repository access token is handed to git through its config environment, which older versions ignore — `leed site push` will tell you so and name the version if yours is too old.
31
+ 2. You must have [bun installed](https://bun.sh/docs/installation).
32
+
33
+ ### Installation
34
+
35
+ Your developer access section (bottom left corner of the menu, under your personal profile) provides an installation script to run. It ensures your environment is setup correctly to use this cli. A few things are provided for your convenience:
36
+
37
+ - **Claude Code skills** for AI-assisted site development
38
+ - **VS Code workspace file** with project-specific settings
39
+ - **VS Code tasks** for common build and development operations
40
+
41
+ After installation, type `leed` at the command-line to verify it is available.
42
+
43
+ The CLI itself is the public npm package `@leed-ai/cli`, so `npm i -g @leed-ai/cli` also installs it, with no access token. If you still have the old `@leed/site-management` package, replace it with `bun remove -g @leed/site-management && npm i -g @leed-ai/cli`.
44
+
45
+ ### Normal Workflow
46
+
47
+ After getting your site setup with `leed site init` a normal workflow might look like this:
48
+
49
+ * `leed site build` - Sanity check, to make sure your site is building as you would expect.
50
+ * `leed site build --serve` - Builds your site and starts the server, which you can view your website at `http://localhost:8080`
51
+ * Edit your templates, until you are happy with your changes.
52
+ * Stop the server `<ctrl-c>`
53
+ * `leed site validate` - Validate that your changes are all okay to move forward. Clear any errors and exceptions that may occur.
54
+ * `leed site build` - This ensures that after you have fixed any potential validation issues your site is still working as you expect. This is your final chance to ensure you are happy with your changes.
55
+ * `leed site commit -m "message explaining your changes"`
56
+ * Now is when you use git. You will need to rebase and resolve any potential merge issues. Once this is complete you can proceed.
57
+ * `leed site push` - This will push the changes and submit the change set to the CMS for the site to be updated.
58
+ * Congratulations, you've just locally edited your website.
59
+
60
+ #### Building Your Website
61
+
62
+ ```bash
63
+ # run this command either in the site folder, or the raw-content folder
64
+ leed site build
65
+ ```
66
+
67
+ ### Very Important Developer Details
68
+
69
+ As we use a git repository to manage distribution of your site to you, it also provides the capability to handle things like merge conflicts, which you must be comfortable using git to handle.
70
+
71
+ After you have made changes and tested them locally using `leed site validate` and `leed site build`, you can use `leed site commit` to save your changes.
72
+
73
+ You can use most of the git commands directly. However these restrictions exist:
74
+
75
+ * `git commit` => instead use `leed site commit`
76
+ * `git add` => not needed, we automatically add all modified files after validation.
77
+ * `git push` => instead use `leed site push`
78
+
79
+ Any attempt to subvert using the `leed site commit` process is at your own risk, and it will be **your responsibility** if **you break your staging site** by **subverting our process** it will be up to you to fix your build for your staging site.
80
+
81
+ After your changes are committed it is **your responsibility** to rebase and push your changes. We leave this task to you for the case where there are merge conflicts which need to be resolved by you. This is the price that must be paid for a local development environment.
82
+
83
+ **Merge Commits** are not allowed into this repository. Rebase and fast-forward only commits are allowed.
84
+
85
+ ## Understanding the Folder Structure
86
+
87
+ Within the `raw-content` folder, you will see a structure similar to the following:
88
+
89
+ ```bash
90
+ src/
91
+ _data/ # data files used in providing data to render your website.
92
+ *.json
93
+
94
+ # Includes - these are *PARTIALS* or html fragments, and they are used in creating a complete webpage
95
+ _includes/
96
+ [file].hbs
97
+ header.hbs
98
+ footer.hbs
99
+
100
+ # Layouts - each of these should produce a complete webpage they will generally consist of using many other *PARTIALS*
101
+ _layouts/
102
+ empty.hbs # The default layout: the page content and nothing else
103
+ ...
104
+ main.hbs
105
+ robots.hbs
106
+ sitemap.hbs
107
+
108
+ # EVERYTHING located in this folder gets a header placed on it - Cache-Control: immutable
109
+ static/
110
+ css/
111
+ images/
112
+ js/
113
+ webfonts/
114
+ [page-type]/ # One folder per page type, e.g. blog/ once you add a blog
115
+ title-of-a-page.md
116
+ 404.hbs # Layout for your website 404 page
117
+ index.hbs # This is your home page
118
+ robots.hbs # This is where you can specify how bots are allowed to interact with your site
119
+
120
+ # Customize your tailwind configuration
121
+ tailwind/
122
+ site.config.css
123
+
124
+ # CI build pipeline (managed by Leed, do not modify)
125
+ .ci/
126
+ build.sh
127
+ ```
128
+
129
+ ### _data
130
+
131
+ All files here are read-only and only for reference for managing templates. You can modify them to test edge cases for your designs, but they cannot be committed and will be reverted.
132
+
133
+ ### Page Types
134
+
135
+ A new site starts with a single page type, Root, which holds the pages at the top of your site. Add a blog or documentation with `/leed:create` in Claude, or create a page type in the CMS. When a page type has a path (e.g. `blog`), a folder will show up here named with that path. Everything in this folder is read-only, for reference purposes. When you create a new page by that page type, they will show up here after they are published, and not prior to that.
136
+
137
+ ### _includes
138
+
139
+ All the `.hbs` files here are considered to be `partials`. This means that they are but a small part of what would be used to create an entire webpage on the website. For example, the `footer.hbs` contains only the part of the html that would end up at the bottom of every page on your site.
140
+
141
+ ### _layouts
142
+
143
+ They are your actual layouts. Your site starts with `empty.hbs`, which renders the page content and nothing else, and it is the layout every new page type uses unless you choose another. The content comes from the CMS Page Editor; the html that makes a page type look the way you want lives here. The page type in the CMS sets which layout it uses, and that layout must exist in this folder: the CMS refuses a layout it cannot find, and `leed site validate` fails on one. `/leed:create` adds the layouts a blog or documentation needs. Name your own layouts whatever makes sense to you.
144
+
145
+ ### Tailwind
146
+
147
+ We fully support using tailwind within your website. There are 2 starting files:
148
+
149
+ * `site.config.css` - This is where you will put your custom css to be processed by tailwind. You can import from other files to keep your css organized.
150
+
151
+ You can add more css files here. If you wanted to have your custom css for your menus in a separate file, like `menu.css`, you would add this line `@import "./menu.css";` to the very top of the `input.css`.
152
+
153
+ ### Editable Files
154
+
155
+ You are allowed to add / edit the following:
156
+
157
+ * Files ending with **.hbs**
158
+ * All files in the ***static*** folder
159
+ * **EXCEPT:** *images/favicon-\**, *images/logo-\** - These are managed and stored via the CMS.
160
+ * All files in the **tailwind** folder
161
+
162
+ ### READ-ONLY Files
163
+
164
+ If you try to edit a file that is managed by the CMS, it will be rejected. Examples are:
165
+
166
+ * All files in the **_data** folder
167
+ * Generated **.html** files like those found in blog.
168
+ * **\*.11tydata.json** files
169
+ * All files in the root of `raw-content` (e.g. `bunfig.toml`)
170
+ * The `.ci/` folder and its contents
171
+
172
+ ### Special Cases
173
+
174
+ 1. `/static` - Everything in this folder is permanently cached by a users web browser. All files located here will have a timestamp put on them to provided unique names to ensure files are not being modified in place.
175
+ 2. Font files: only woff2 are allowed. This is due to their compact and optimized nature. To add custom fonts for your website you can put them into `/static/fonts`. For more [information checkout wikipedia](https://en.wikipedia.org/wiki/Web_Open_Font_Format).
176
+ 3. Images: the purpose of images stored here should be for small little icons or special imagery like svg files which are on every page, located in the header or footer, and other similar use cases. If you are going to put an image into your header / footer, put them here. They need to be small.
177
+ 4. CSS: You are welcome to put custom css into `/static/css`, but remember the permanent caching note above.
178
+ 5. Any file over 500kb, will be rejected.
179
+ 6. If you are unsure if you should put something here, [just ask](https://discord.com/channels/1007477144630329424/1007477144630329427).
@@ -0,0 +1,50 @@
1
+ #
2
+ # Primary dirs we control
3
+ #
4
+ .claude
5
+ .vscode
6
+ .husky
7
+
8
+ #
9
+ # Builder files
10
+ #
11
+ eleventyComputed.js
12
+ src/_includes/leed
13
+ leed-*.hbs
14
+ leed-*.json
15
+ # leed asset upload state, its .lock and .tmp-<pid> copies (hold resumable upload URLs)
16
+ leed-assets*
17
+ # The documented default source directory for `leed import markdown|html` (#406).
18
+ # It is the user's own content, not site source: the import COPIES a cleaned set
19
+ # into src/<pageTypeSlug>/ and leaves this directory read-only.
20
+ leed-import/
21
+ # Originals `leed import html` set aside: each <name>.html becomes <name>.md and
22
+ # the original is renamed, so the site build does not pick it up. A derived
23
+ # artifact of a conversion the user ran locally — `leed import clean` reverses it.
24
+ # Suffixed on a real filename, so the glob is `*.html.bak`, not `.html.bak`.
25
+ *.html.bak
26
+ # Images a sandbox, /leed:design-import or site-migrate staged locally (#457). The
27
+ # sandbox move uploads each one with `leed asset upload` and rewrites its references,
28
+ # so an image staged here is never committed.
29
+ src/static/images/tmp/
30
+ src/static/js/l.*.js
31
+
32
+ #
33
+ # build artifacts / install files
34
+ #
35
+ .build
36
+ node_modules
37
+ package.json
38
+ package-lock.json
39
+ bun.lock
40
+
41
+ #
42
+ # Local AI agent configuration (leed mcp add)
43
+ #
44
+ .mcp.json
45
+
46
+ #
47
+ # Build result files
48
+ #
49
+ .leed-validation.json
50
+ buildResults.json
@@ -0,0 +1,21 @@
1
+ ---
2
+ {
3
+ "title": "Page Not Found!",
4
+ "pageTypeId": "###PAGE_TYPE_ID###",
5
+ "pageId": "404",
6
+ "publishedAt": "###DATE###",
7
+ "modifiedAt": "###DATE###",
8
+ "permalink": "404.html"
9
+ }
10
+ ---
11
+
12
+ {{#>site-template}}
13
+
14
+ {{!-- The page a missing URL lands on. Colors come from the site's --site-* tokens, which its theme points at its brand tokens. --}}
15
+ <main class="px-6 py-16 text-center">
16
+ <h1 class="text-6xl font-bold text-(--site-header-1-color)">404</h1>
17
+ <h2 class="mt-4 text-2xl text-(--site-header-2-color)">Page Not Found!</h2>
18
+ <p class="mt-4 text-(--site-text-color)">The page you asked for is not here. It may have moved, or the link may be wrong.</p>
19
+ </main>
20
+
21
+ {{/site-template}}
@@ -0,0 +1,18 @@
1
+ {{!-- Start Footer Menu --}}
2
+ <footer class="min-w-350 lg:px-16 mt-16 leed-colors" aria-labelledby="footer-heading">
3
+ <div class="flex border-t items-center justify-center leed-colors">
4
+
5
+ {{!-- This is an example of using tailwind css background image class provided in the tailwind.config.js --}}
6
+ <!--
7
+ <div class="flex footer-align space-x-6">
8
+ {{!-- This is a vanity shortlink that could point to your linkedin page --}}
9
+ <a href="/s/linkedin" target="_blank">
10
+ <span class="sr-only">LinkedIn</span>
11
+ <div class="w-6 h-6 svg-img bg-linkedin-light dark:bg-linkedin-dark hover:bg-linkedin-hover active:bg-linkedin-active"></div>
12
+ </a>
13
+ </div>
14
+ -->
15
+
16
+ <p class="py-6 px-6 mt-0 text-(--menu-footer-header-text-color)">© {{ year }} {{siteTitle}}. All rights reserved.</p>
17
+ </div>
18
+ </footer>
@@ -0,0 +1,25 @@
1
+ {{!--
2
+ header-includes.hbs: the site's own additions to <head>, on every page.
3
+
4
+ Leed's head partial, `leed/head.hbs`, renders this file first in <head>, on
5
+ every page that calls it: the pages site-template.hbs wraps, Leed's
6
+ unsubscribe pages, and the documentation and API pages. Those last are built
7
+ on Leed's own documentation layouts, which are NOT wrapped in
8
+ site-template.hbs, so a tag written there never reaches the documentation
9
+ set. Written here, it reaches every page.
10
+
11
+ There is nothing to turn on: no CMS flag and no plan tier. `leed/head.hbs`
12
+ checks `templateExists "header-includes.hbs"`, so the file existing is what
13
+ enables it.
14
+
15
+ Put here what must be true on every page, docs included: a preload for a
16
+ self-hosted web font (never a font host, which logs every visitor), site
17
+ verification metas, analytics and
18
+ other site-wide scripts (deferred), theme-color, the web manifest, and PNG
19
+ and touch icon fallbacks. Tags only one kind of page needs go in that page
20
+ type's layout. The description, canonical URL, social cards and the SVG
21
+ favicon (the company favicon set in the CMS) are already written by
22
+ `leed/head.hbs`.
23
+
24
+ This file renders nothing until you add a tag below this comment.
25
+ --}}
@@ -0,0 +1,5 @@
1
+ {{!-- Start Top Menu --}}
2
+ <header class="fixed w-full bg-[var(--site-header-bg-color,white)] grid justify-items-center z-40">
3
+ <!-- header menu goes here -->
4
+ </header>
5
+ {{!-- End Top Menu --}}
@@ -0,0 +1,23 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="scroll-smooth js-focus-visible code-theme-atom-fruit font-noto-sans">
3
+
4
+ <head>
5
+ <title>{{ title }} | {{ siteTitle }}</title>
6
+
7
+ <meta name="viewport" content="width=device-width">
8
+
9
+ {{> leed/head }}
10
+ </head>
11
+ <body class="flex flex-col h-screen antialiased text-base text-(--site-text-color) bg-(--site-bg-color)">
12
+ {{> header }}
13
+
14
+ {{!-- We need to set the top margin, because it changes based on the header height --}}
15
+ <div class="grow mt-(--height-header)">
16
+ {{!-- Start Body Content --}}
17
+ {{> @partial-block}}
18
+ {{!-- End Body Content --}}
19
+ </div>
20
+
21
+ {{> footer }}
22
+ </body>
23
+ </html>
@@ -0,0 +1,17 @@
1
+ {{#>site-template}}
2
+ {{!-- To enable customizing your unsubscribe page, rename this to unsubscribe.hbs --}}
3
+
4
+ <main class="mt-12 mx-6 lg:mx-16">
5
+ <section id="unsubscribe" class="mx-auto max-w-3xl lg:max-w-7xl">
6
+ <div class="relative place-items-center mx-4 sm:mx-8">
7
+ <div class="content-box">
8
+ <h1 class="mb-8 text-center">{{ title }}</h1>
9
+ <div class="">
10
+ {{> leed-unsubscribe-form }}
11
+ </div>
12
+ </div>
13
+ </div>
14
+ </section>
15
+ </main>
16
+
17
+ {{/site-template}}
@@ -0,0 +1,13 @@
1
+ {{#>site-template}}
2
+ {{!-- To enable customizing your unsubscribed page, rename this to unsubscribed.hbs --}}
3
+
4
+ <main class="mt-12 mx-6 lg:mx-16">
5
+ <section id="unsubscribe" class="mx-auto max-w-5xl lg:max-w-8xl">
6
+ <div class="relative place-items-center mx-4 sm:mx-8">
7
+ <h1 class="mb-4 text-center">You've been unsubscribed.</h1>
8
+ <p class="text-center"><a href="/">Back to the homepage</a></p>
9
+ </div>
10
+ </section>
11
+ </main>
12
+
13
+ {{/site-template}}
@@ -0,0 +1,2 @@
1
+ {{!-- Empty Layout --}}
2
+ {{{ process content }}}
@@ -0,0 +1,21 @@
1
+ ---
2
+ {
3
+ "title": "Your site is operational",
4
+ "publishedAt": "###DATE###",
5
+ "modifiedAt": "###DATE###",
6
+ "pageTypeId": "###PAGE_TYPE_ID###",
7
+ "pageId": "###NEW_PAGE_ID###"
8
+ }
9
+ ---
10
+
11
+ {{#>site-template}}
12
+
13
+ {{!-- Links match GETTING_STARTED_LINKS in libs/data-types/src/automation/seeder/pages.ts --}}
14
+ <h1>Your site is operational</h1>
15
+ <p>{{ this.leedSiteEnv.env.domain }} is set up and publishing. Here is how to start building it:</p>
16
+ <ul>
17
+ <li><a href="https://leed.ai/docs/getting-started/claude-plugin/">Get started with the Leed plugin for Claude</a></li>
18
+ <li><a href="https://leed.ai/docs/getting-started/cli/">Get started with the Leed CLI</a></li>
19
+ </ul>
20
+
21
+ {{/site-template}}
@@ -0,0 +1,9 @@
1
+ ---
2
+ {
3
+ "permalink": "/robots.txt",
4
+ "eleventyExcludeFromCollections": true
5
+ }
6
+ ---
7
+ user-agent: *
8
+
9
+ sitemap: {{ siteUrl }}/sitemap.xml
@@ -0,0 +1,44 @@
1
+ /*
2
+ The default border color has changed to `currentColor` in Tailwind CSS v4,
3
+ so we've added these compatibility styles to make sure everything still
4
+ looks the same as it did with Tailwind CSS v3.
5
+
6
+ If we ever want to remove these styles, we need to add an explicit border
7
+ color utility to any element that depends on these defaults.
8
+ */
9
+ h1 {
10
+ @apply font-extrabold text-4xl sm:text-6xl text-(--site-header-1-color);
11
+ }
12
+
13
+ h2 {
14
+ @apply font-bold text-3xl sm:text-4xl mt-6 text-(--site-header-2-color);
15
+ }
16
+
17
+ h3 {
18
+ @apply font-extrabold text-xl sm:text-2xl mt-5 text-(--site-header-3-color);
19
+ }
20
+
21
+ h4 {
22
+ @apply font-bold text-xl sm:text-xl mt-4 text-(--site-header-4-color);
23
+ }
24
+
25
+ h1,
26
+ h2,
27
+ h3,
28
+ h4,
29
+ h5,
30
+ h6 {
31
+ letter-spacing: -0.025em;
32
+ }
33
+
34
+ p {
35
+ @apply mt-4;
36
+ }
37
+
38
+ a {
39
+ @apply text-(--site-anchor-text-color) hover:text-(--site-anchor-text-color-hover) active:text-(--site-anchor-text-color-active);
40
+ }
41
+
42
+ pre {
43
+ @apply mt-8;
44
+ }
@@ -0,0 +1,3 @@
1
+ @import "tailwindcss" source("../src");
2
+
3
+ @import "./site/base.css" layer(base);
@@ -0,0 +1,50 @@
1
+ #
2
+ # Primary dirs we control
3
+ #
4
+ .claude
5
+ .vscode
6
+ .husky
7
+
8
+ #
9
+ # Builder files
10
+ #
11
+ eleventyComputed.js
12
+ src/_includes/leed
13
+ leed-*.hbs
14
+ leed-*.json
15
+ # leed asset upload state, its .lock and .tmp-<pid> copies (hold resumable upload URLs)
16
+ leed-assets*
17
+ # The documented default source directory for `leed import markdown|html` (#406).
18
+ # It is the user's own content, not site source: the import COPIES a cleaned set
19
+ # into src/<pageTypeSlug>/ and leaves this directory read-only.
20
+ leed-import/
21
+ # Originals `leed import html` set aside: each <name>.html becomes <name>.md and
22
+ # the original is renamed, so the site build does not pick it up. A derived
23
+ # artifact of a conversion the user ran locally — `leed import clean` reverses it.
24
+ # Suffixed on a real filename, so the glob is `*.html.bak`, not `.html.bak`.
25
+ *.html.bak
26
+ # Images a sandbox, /leed:design-import or site-migrate staged locally (#457). The
27
+ # sandbox move uploads each one with `leed asset upload` and rewrites its references,
28
+ # so an image staged here is never committed.
29
+ src/static/images/tmp/
30
+ src/static/js/l.*.js
31
+
32
+ #
33
+ # build artifacts / install files
34
+ #
35
+ .build
36
+ node_modules
37
+ package.json
38
+ package-lock.json
39
+ bun.lock
40
+
41
+ #
42
+ # Local AI agent configuration (leed mcp add)
43
+ #
44
+ .mcp.json
45
+
46
+ #
47
+ # Build result files
48
+ #
49
+ .leed-validation.json
50
+ buildResults.json
@@ -0,0 +1 @@
1
+ { "companyId": "non-cms-company", "environment": "dev" }
@@ -0,0 +1,21 @@
1
+ ---
2
+ {
3
+ "title": "Page Not Found!",
4
+ "pageTypeId": "ph-pt-1",
5
+ "pageId": "404",
6
+ "publishedAt": "2026-01-01T00:00:00.000Z",
7
+ "modifiedAt": "2026-01-01T00:00:00.000Z",
8
+ "permalink": "404.html"
9
+ }
10
+ ---
11
+
12
+ {{#>site-template}}
13
+
14
+ {{!-- The page a missing URL lands on. Colors come from the site's --site-* tokens, which its theme points at its brand tokens. --}}
15
+ <main class="px-6 py-16 text-center">
16
+ <h1 class="text-6xl font-bold text-(--site-header-1-color)">404</h1>
17
+ <h2 class="mt-4 text-2xl text-(--site-header-2-color)">Page Not Found!</h2>
18
+ <p class="mt-4 text-(--site-text-color)">The page you asked for is not here. It may have moved, or the link may be wrong.</p>
19
+ </main>
20
+
21
+ {{/site-template}}
@@ -0,0 +1,9 @@
1
+ {
2
+ "ph-label-1": {
3
+ "name": "News",
4
+ "slug": "news",
5
+ "description": "Announcements and updates.",
6
+ "isSeries": false,
7
+ "visible": true
8
+ }
9
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "ph-form-1": {
3
+ "button": "Subscribe",
4
+ "formPrototype": "subscribe-blog",
5
+ "successCallback": "",
6
+ "failureCallback": "",
7
+ "leedAutofill": false,
8
+ "heading": "Our Newsletter",
9
+ "details": "Subscribe to receive our latest updates",
10
+ "fields": [
11
+ {
12
+ "name": "email",
13
+ "placeHolder": "Email",
14
+ "required": true,
15
+ "type": "email",
16
+ "value": ""
17
+ }
18
+ ]
19
+ }
20
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "Header Menu": {
3
+ "menuId": "ph-menu-1",
4
+ "items": [
5
+ {
6
+ "menuItemId": "ph-menuitem-1",
7
+ "name": "Home",
8
+ "title": "",
9
+ "target": "",
10
+ "href": "pageid:ph-page-1",
11
+ "submenu": []
12
+ }
13
+ ]
14
+ },
15
+ "Footer Menu": {
16
+ "menuId": "ph-menu-2",
17
+ "items": []
18
+ }
19
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "ph-pt-1": {
3
+ "slug": "",
4
+ "name": "Root Pages",
5
+ "layout": "empty.hbs",
6
+ "includeInFeeds": false,
7
+ "autolink": false,
8
+ "description": "Pages at the root of the website",
9
+ "sitemapPriority": 1,
10
+ "labelSiteMapPriority": 0.8,
11
+ "noRender": false,
12
+ "autopostNewPages": false
13
+ }
14
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "ph-author-1": {
3
+ "firstName": "Sandbox",
4
+ "lastName": "Author",
5
+ "email": "author@example.com",
6
+ "biography": "A placeholder author. The move maps this record to a real user in your Leed account.",
7
+ "jobTitle": "Writer",
8
+ "visible": true,
9
+ "slug": "sandbox-author"
10
+ }
11
+ }
@@ -0,0 +1,18 @@
1
+ {{!-- Start Footer Menu --}}
2
+ <footer class="min-w-350 lg:px-16 mt-16 leed-colors" aria-labelledby="footer-heading">
3
+ <div class="flex border-t items-center justify-center leed-colors">
4
+
5
+ {{!-- This is an example of using tailwind css background image class provided in the tailwind.config.js --}}
6
+ <!--
7
+ <div class="flex footer-align space-x-6">
8
+ {{!-- This is a vanity shortlink that could point to your linkedin page --}}
9
+ <a href="/s/linkedin" target="_blank">
10
+ <span class="sr-only">LinkedIn</span>
11
+ <div class="w-6 h-6 svg-img bg-linkedin-light dark:bg-linkedin-dark hover:bg-linkedin-hover active:bg-linkedin-active"></div>
12
+ </a>
13
+ </div>
14
+ -->
15
+
16
+ <p class="py-6 px-6 mt-0 text-(--menu-footer-header-text-color)">© {{ year }} {{siteTitle}}. All rights reserved.</p>
17
+ </div>
18
+ </footer>