@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,105 @@
1
+ /**
2
+ * The site theming contract — every variable a site may set, and what it
3
+ * defaults to.
4
+ *
5
+ * Components never read these directly. Each one resolves through
6
+ *
7
+ * --component-X: var(--docs-X, var(--site-X, var(--default-X)))
8
+ *
9
+ * so a site sets --site-X and the component picks it up, a documentation theme
10
+ * can override with --docs-X, and --default-X is the floor. Setting a
11
+ * --component-* or --default-* value directly works by accident and will be
12
+ * overwritten; --site-* is the supported surface.
13
+ *
14
+ * This file is a REFERENCE, not an import. Copy the lines a site cares about
15
+ * into its own :root and delete the rest. Every value shown is the current
16
+ * default, and the second column is the dark-mode default where one differs.
17
+ *
18
+ * Generated from components.css and defaults.css.
19
+ */
20
+
21
+ /* :root {
22
+ --site-anchor-text-color: var(--color-sky-600);
23
+ --site-anchor-text-color-active: var(--color-sky-900);
24
+ --site-anchor-text-color-hover: var(--color-sky-700); (dark: var(--color-sky-400))
25
+ --site-bg-color: var(--color-white); (dark: var(--color-slate-950))
26
+ --site-border-color: var(--color-slate-300); (dark: var(--color-slate-500))
27
+ --site-button-secondary-bg-color: —; (dark: var(--color-gray-600))
28
+ --site-button-secondary-bg-hover-color: —; (dark: var(--color-gray-700))
29
+ --site-code-bg-color: var(--color-gray-100); (dark: var(--color-slate-900))
30
+ --site-code-bg-color-selection: var(--color-blue-100); (dark: var(--color-blue-800))
31
+ --site-code-border-color: var(--color-gray-950); (dark: var(--color-white))
32
+ --site-code-inner-bg-color: var(--color-white); (dark: var(--color-slate-950))
33
+ --site-code-math-text-color: var(--color-gray-700); (dark: var(--color-slate-400))
34
+ --site-copied-content-bg-color: var(--color-pink-800);
35
+ --site-copied-content-text-color: var(--color-white);
36
+ --site-current-location-bg-color: var(--color-slate-50); (dark: var(--color-slate-800))
37
+ --site-current-location-text-color: var(--color-sky-800); (dark: var(--color-sky-500))
38
+ --site-fixed-body-bg-color: var(--color-slate-950);
39
+ --site-footer-social-icons-hover-color: var(--color-gray-500); (dark: var(--color-gray-400))
40
+ --site-header-1-color: var(--color-gray-900); (dark: var(--color-gray-200))
41
+ --site-header-2-color: var(--color-gray-900); (dark: var(--color-gray-200))
42
+ --site-header-3-color: var(--color-gray-800); (dark: var(--color-gray-100))
43
+ --site-header-4-color: var(--color-gray-800); (dark: var(--color-gray-100))
44
+ --site-header-5-color: var(--color-gray-800); (dark: var(--color-slate-100))
45
+ --site-header-6-color: var(--color-gray-800); (dark: var(--color-slate-100))
46
+ --site-header-bg-color: var(--color-gray-100); (dark: var(--color-slate-900))
47
+ --site-header-border-color: var(--color-gray-500); (dark: var(--color-slate-200))
48
+ --site-menu-bg-color: var(--color-white); (dark: var(--color-slate-900))
49
+ --site-pagination-icon-color: —; (dark: var(--color-gray-400))
50
+ --site-pagination-icon-color-hover: —; (dark: var(--color-gray-200))
51
+ --site-primary-color: var(--color-blue-500); (dark: var(--color-blue-400))
52
+ --site-primary-color-hover: var(--color-blue-600); (dark: var(--color-blue-500))
53
+ --site-primary-light: var(--color-blue-400); (dark: var(--color-blue-300))
54
+ --site-search-button-bg-color: var(--color-white); (dark: var(--color-slate-950))
55
+ --site-search-modal-bg-color: var(--color-white); (dark: var(--color-slate-950))
56
+ --site-step-light-color: var(--color-gray-200); (dark: var(--color-slate-800))
57
+ --site-text-color: var(--color-gray-700); (dark: var(--color-slate-400))
58
+ } */
59
+
60
+ /**
61
+ * Not part of the color chain, but a site should set it:
62
+ *
63
+ * --site-header-height the height of a fixed site header. Used for
64
+ * scroll-padding-top so an in-page anchor lands below
65
+ * the header rather than under it. Defaults to 0px.
66
+ */
67
+
68
+ /**
69
+ * Icons — every glyph a Leed component draws, by role. Each is read by a
70
+ * `leed-icon-<role>` utility (utils/icons.css) as --site-icon-<role>, falling
71
+ * back to --default-icon-<role>, and sets Font Awesome 7's `--fa`. The value is
72
+ * the glyph's codepoint as a CSS string; the defaults are Font Awesome Free
73
+ * icons, named in the second column. An override changes the glyph only — the
74
+ * component keeps its style (`fa-solid` / `fa-regular`).
75
+ */
76
+
77
+ /* :root {
78
+ --site-icon-menu: "\f0c9"; (fa-bars)
79
+ --site-icon-close: "\f00d"; (fa-xmark)
80
+ --site-icon-search: "\f002"; (fa-magnifying-glass)
81
+ --site-icon-chevron-right: "\f054"; (fa-chevron-right)
82
+ --site-icon-chevron-left: "\f053"; (fa-chevron-left)
83
+ --site-icon-chevron-down: "\f078"; (fa-chevron-down)
84
+ --site-icon-caret-right: "\f0da"; (fa-caret-right)
85
+ --site-icon-arrow-left: "\f060"; (fa-arrow-left)
86
+ --site-icon-arrow-right: "\f061"; (fa-arrow-right)
87
+ --site-icon-arrow-right-long: "\f178"; (fa-arrow-right-long)
88
+ --site-icon-external: "\f08e"; (fa-arrow-up-right-from-square)
89
+ --site-icon-external-square: "\f14c"; (fa-square-arrow-up-right)
90
+ --site-icon-ellipsis: "\f141"; (fa-ellipsis)
91
+ --site-icon-hashtag: "#"; (fa-hashtag)
92
+ --site-icon-clock: "\f017"; (fa-clock)
93
+ --site-icon-copy: "\f0c5"; (fa-copy)
94
+ --site-icon-check: "\f00c"; (fa-check)
95
+ --site-icon-list: "\f0ca"; (fa-list-ul)
96
+ --site-icon-home: "\f015"; (fa-house)
97
+ --site-icon-sort: "\f338"; (fa-up-down)
98
+ --site-icon-spinner: "\f1ce"; (fa-circle-notch)
99
+ --site-icon-panel-toggle: "\f152"; (fa-square-caret-right)
100
+ --site-icon-alert-note: "\f05a"; (fa-circle-info)
101
+ --site-icon-alert-tip: "\f135"; (fa-rocket)
102
+ --site-icon-alert-info: "\f0eb"; (fa-lightbulb)
103
+ --site-icon-alert-warning: "\f071"; (fa-triangle-exclamation)
104
+ --site-icon-alert-danger: "\f714"; (fa-skull-crossbones)
105
+ } */
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Named icons — one per role a Leed component draws an icon for.
3
+ *
4
+ * Every icon Leed's components and templates show goes through one of these
5
+ * rather than naming a Font Awesome glyph directly, so a site can change any
6
+ * of them from CSS without touching a template:
7
+ *
8
+ * :root { --site-icon-menu: "\f0c9"; --site-icon-search: "\f002"; }
9
+ *
10
+ * Each utility sets only Font Awesome 7's `--fa` glyph variable, resolved
11
+ * through --site-icon-X → --default-icon-X like the color tokens; the
12
+ * defaults live in defaults.css. The style (`fa-solid`, `fa-regular`) stays on
13
+ * the component, so a glyph override keeps the component's weight; set
14
+ * `--fa-style` / `--fa-family` on the same selector to change those, or
15
+ * replace the icon font altogether — these utilities depend on nothing but
16
+ * `--fa`.
17
+ *
18
+ * Nothing here `@apply`s a Font Awesome icon utility, which is what lets a site
19
+ * with no fonts installed — or with a Free or Pro release of any version —
20
+ * compile: the icons just render empty until fonts are installed.
21
+ */
22
+ @utility leed-icon-menu {
23
+ --fa: var(--site-icon-menu, var(--default-icon-menu));
24
+ }
25
+ @utility leed-icon-close {
26
+ --fa: var(--site-icon-close, var(--default-icon-close));
27
+ }
28
+ @utility leed-icon-search {
29
+ --fa: var(--site-icon-search, var(--default-icon-search));
30
+ }
31
+ @utility leed-icon-chevron-right {
32
+ --fa: var(--site-icon-chevron-right, var(--default-icon-chevron-right));
33
+ }
34
+ @utility leed-icon-chevron-left {
35
+ --fa: var(--site-icon-chevron-left, var(--default-icon-chevron-left));
36
+ }
37
+ @utility leed-icon-chevron-down {
38
+ --fa: var(--site-icon-chevron-down, var(--default-icon-chevron-down));
39
+ }
40
+ @utility leed-icon-caret-right {
41
+ --fa: var(--site-icon-caret-right, var(--default-icon-caret-right));
42
+ }
43
+ @utility leed-icon-arrow-left {
44
+ --fa: var(--site-icon-arrow-left, var(--default-icon-arrow-left));
45
+ }
46
+ @utility leed-icon-arrow-right {
47
+ --fa: var(--site-icon-arrow-right, var(--default-icon-arrow-right));
48
+ }
49
+ @utility leed-icon-arrow-right-long {
50
+ --fa: var(--site-icon-arrow-right-long, var(--default-icon-arrow-right-long));
51
+ }
52
+ @utility leed-icon-external {
53
+ --fa: var(--site-icon-external, var(--default-icon-external));
54
+ }
55
+ @utility leed-icon-external-square {
56
+ --fa: var(--site-icon-external-square, var(--default-icon-external-square));
57
+ }
58
+ @utility leed-icon-ellipsis {
59
+ --fa: var(--site-icon-ellipsis, var(--default-icon-ellipsis));
60
+ }
61
+ @utility leed-icon-hashtag {
62
+ --fa: var(--site-icon-hashtag, var(--default-icon-hashtag));
63
+ }
64
+ @utility leed-icon-clock {
65
+ --fa: var(--site-icon-clock, var(--default-icon-clock));
66
+ }
67
+ @utility leed-icon-copy {
68
+ --fa: var(--site-icon-copy, var(--default-icon-copy));
69
+ }
70
+ @utility leed-icon-check {
71
+ --fa: var(--site-icon-check, var(--default-icon-check));
72
+ }
73
+ @utility leed-icon-list {
74
+ --fa: var(--site-icon-list, var(--default-icon-list));
75
+ }
76
+ @utility leed-icon-home {
77
+ --fa: var(--site-icon-home, var(--default-icon-home));
78
+ }
79
+ @utility leed-icon-sort {
80
+ --fa: var(--site-icon-sort, var(--default-icon-sort));
81
+ }
82
+ @utility leed-icon-spinner {
83
+ --fa: var(--site-icon-spinner, var(--default-icon-spinner));
84
+ }
85
+ @utility leed-icon-panel-toggle {
86
+ --fa: var(--site-icon-panel-toggle, var(--default-icon-panel-toggle));
87
+ }
88
+ @utility leed-icon-alert-note {
89
+ --fa: var(--site-icon-alert-note, var(--default-icon-alert-note));
90
+ }
91
+ @utility leed-icon-alert-tip {
92
+ --fa: var(--site-icon-alert-tip, var(--default-icon-alert-tip));
93
+ }
94
+ @utility leed-icon-alert-info {
95
+ --fa: var(--site-icon-alert-info, var(--default-icon-alert-info));
96
+ }
97
+ @utility leed-icon-alert-warning {
98
+ --fa: var(--site-icon-alert-warning, var(--default-icon-alert-warning));
99
+ }
100
+ @utility leed-icon-alert-danger {
101
+ --fa: var(--site-icon-alert-danger, var(--default-icon-alert-danger));
102
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Utilities registered with @utility.
3
+ *
4
+ * They live here rather than beside the component they belong to because
5
+ * @utility cannot be nested — a component stylesheet holding one cannot be
6
+ * imported into a cascade layer, and the components DO need to be layered so a
7
+ * site can override them without !important. Rules go in components/, the
8
+ * @utility that names them goes here.
9
+ */
10
+ @utility multi-column-layout {
11
+ @apply flex flex-col flex-1 gap-4 md:grid md:gap-x-4 md:gap-y-0;
12
+ }
13
+
14
+ @utility copied-notification {
15
+ animation: fade-in 2s ease-in-out;
16
+ @apply text-xs font-medium bg-(--component-copied-content-bg-color) text-(--component-copied-content-text-color) py-1 px-2 z-10 rounded whitespace-nowrap shadow-sm inline-block align-middle;
17
+ }
18
+
19
+ @utility leed-form-button-spinner {
20
+ i.leed-form-spinner {
21
+ @apply mr-3 fa-spin fa-solid leed-icon-spinner text-lg text-(--form-download-spinner-text);
22
+ }
23
+ }
24
+
25
+ /**
26
+ * To make better use of side-by-side, you can add an id in front them to
27
+ * make it so the side-by-side is specific to a template tag like <div id="product-features">
28
+ */
29
+ @utility side-by-side {
30
+ @apply multi-column-layout md:grid-cols-2;
31
+
32
+ > img {
33
+ @apply mx-auto;
34
+ }
35
+
36
+ > div {
37
+ @apply flex flex-col justify-center md:pr-4;
38
+ }
39
+ }
40
+
41
+ /* biome-ignore lint/correctness/noUnknownFunction: Tailwind CSS theme() function is valid */
42
+ @media (min-width: theme("screens.md")) {
43
+ .side-by-side {
44
+ &:nth-child(odd) {
45
+ > div:first-child {
46
+ @apply order-2; /* Move first child to second position */
47
+ }
48
+ > div:last-child {
49
+ @apply order-1; /* Move last child to first position */
50
+ }
51
+ }
52
+
53
+ &:nth-child(even) {
54
+ > div:first-child {
55
+ @apply order-1; /* Keep first child in first position */
56
+ }
57
+ > div:last-child {
58
+ @apply order-2; /* Move last child to second position */
59
+ }
60
+ }
61
+ }
62
+ }
63
+
64
+ /* Was the head of components/form.css; see the note above. */
65
+ @utility responsive-form-container {
66
+ .leed-form-heading {
67
+ @apply sm:text-3xl text-center mt-0;
68
+ }
69
+
70
+ .leed-form-details {
71
+ @apply text-left;
72
+ }
73
+
74
+ form {
75
+ @apply w-full grid gap-4 mt-4 grid-cols-1 sm:grid-cols-2 md:grid-cols-1 lg:grid-cols-2;
76
+
77
+ label {
78
+ @apply mt-0!;
79
+ }
80
+
81
+ div.checkbox,
82
+ div.textarea,
83
+ div.countries {
84
+ @apply p-0! col-start-1 col-span-full col-span-1 sm:col-span-2 md:col-span-1 lg:col-span-2;
85
+ }
86
+ }
87
+ }
88
+
89
+ /* Was the head of components/tables.css; see the note above. */
90
+ @utility table-with-scroll {
91
+ @apply block overflow-x-auto whitespace-nowrap border-collapse;
92
+
93
+ thead {
94
+ @apply border-b border-(--component-border-color)/10!;
95
+ }
96
+
97
+ tr {
98
+ @apply border-(--component-border-color)/10!;
99
+ }
100
+
101
+ td,
102
+ th {
103
+ @apply px-4 py-3;
104
+ }
105
+ }
@@ -0,0 +1,27 @@
1
+ ---
2
+ {
3
+ "title": "###TITLE###",
4
+ "publishedAt": "###DATE###",
5
+ "modifiedAt": "###DATE###",
6
+ "pageTypeId": "###PAGE_TYPE_ID###",
7
+ "pageId": "###NEW_PAGE_ID###",
8
+ "authors": [],
9
+ "keywords": []
10
+ }
11
+ ---
12
+
13
+ <main>
14
+ <section id="content">
15
+ <div class="relative py-16 bg-white overflow-hidden">
16
+ <div class="relative px-4 sm:px-6 lg:px-8 mt-6 prose prose-indigo prose-lg text-gray-500 mx-auto">
17
+ <h1>###TITLE###</h1>
18
+ {{!-- Links match GETTING_STARTED_LINKS in libs/data-types/src/automation/seeder/pages.ts --}}
19
+ <p>Your site is operational. Here is how to start building it:</p>
20
+ <ul>
21
+ <li><a href="https://leed.ai/docs/getting-started/claude-plugin/">Get started with the Leed plugin for Claude</a></li>
22
+ <li><a href="https://leed.ai/docs/getting-started/cli/">Get started with the Leed CLI</a></li>
23
+ </ul>
24
+ </div>
25
+ </div>
26
+ </section>
27
+ </main>
@@ -0,0 +1,19 @@
1
+ {{#>site-template}}
2
+ {{!-- START ###LAYOUT_SLUG### TEMPLATE --}}
3
+
4
+ <main class="relative mt-8 mx-6 md:mx-8">
5
+ <section id="template-content">
6
+ <article id="###LAYOUT_SLUG###-copy">
7
+
8
+ <h1>{{{ title }}}</h1>
9
+
10
+ <!-- START ###LAYOUT_SLUG### CONTENT-->
11
+ {{{ process content }}}
12
+ <!-- END ###LAYOUT_SLUG### CONTENT-->
13
+
14
+ </article>
15
+ </section>
16
+ </main>
17
+
18
+ {{!-- END ###LAYOUT_SLUG### TEMPLATE --}}
19
+ {{/site-template}}
@@ -0,0 +1,89 @@
1
+ ---
2
+ {
3
+ "title": "###PAGE_TYPE_NAME### List",
4
+ "publishedAt": "list",
5
+ "modifiedAt": "list",
6
+ "pageTypeId": "###PAGE_TYPE_ID###",
7
+ "pagination": {
8
+ "data": "collections.pageTypeId-###PAGE_TYPE_ID###:paged",
9
+ "size": 1,
10
+ "alias": "list",
11
+ "addAllPagesToCollections": true,
12
+ "generatePageOnEmptyData": false,
13
+ "reverse": false
14
+ },
15
+ "pageId": "###NEW_SHORT_ID###",
16
+ "permalink": "{{ pageType this.pageTypeId 'slug' }}{{#unless list.page.last }}/page/{{ add list.page.number 1 }}{{/unless}}/index.html"
17
+ }
18
+ ---
19
+
20
+ {{#>site-template}}
21
+
22
+ <!-- Start ###PAGE_TYPE_SLUG### Index Template-->
23
+ <div class="relative pt-16 pb-20 px-4 sm:px-6 lg:pt-24 lg:pb-28 lg:px-8">
24
+ <div class="relative max-w-7xl mx-auto">
25
+ <div class="text-center">
26
+ <h1 class="text-3xl tracking-tight font-extrabold text-gray-900 sm:text-4xl">{{ title }}</h1>
27
+ <p class="mt-3 max-w-2xl mx-auto text-xl text-gray-500 sm:mt-4">{{ pageType pageTypeId "description" }}</p>
28
+ </div>
29
+
30
+ <div id="content-cards" class="mt-12 max-w-lg mx-auto grid gap-5 lg:grid-cols-3 lg:max-w-none">
31
+ {{#each (reverse list.pageData ) }}
32
+ <div class="flex flex-col rounded-lg shadow-lg overflow-hidden">
33
+ <div class="shrink-0">
34
+ {{#FeatureImage}}class="h-48 w-full object-cover"{{/FeatureImage}}
35
+ </div>
36
+ <div class="flex-1 bg-white p-6 flex flex-col justify-between">
37
+ <div class="flex-1">
38
+ <p class="text-sm font-medium text-indigo-600">
39
+ {{#Labels this true}}{{ this.name }}{{#unless isLast}}, {{/unless}}{{/Labels}}&nbsp;
40
+ </p>
41
+ <a href="{{ this.url }}" class="block mt-2">
42
+ <p class="text-xl font-semibold text-gray-900">{{this.data.title}}</p>
43
+ <p class="mt-3 text-base text-gray-500">{{this.data.summary}}</p>
44
+ </a>
45
+ </div>
46
+ <div class="mt-6 flex items-center">
47
+ {{#Authors this true}}
48
+ <div class="shrink-0">
49
+ <!-- User image -->
50
+ {{#Image image "profiletiny" }}class="h-10 w-10 rounded-full" alt="Profile picture of {{ fullName }}"{{/Image}}
51
+ </div>
52
+ {{/Authors}}
53
+ <div class="ml-3 text-sm font-medium text-gray-900">
54
+ {{#Authors this true}}
55
+ <span class="author">{{fullName}}</span>
56
+ {{/Authors}}
57
+ <div class="flex space-x-1 text-sm text-gray-500">
58
+ <time datetime="{{#date 'iso' }}{{ this.data.publishedAt }}{{/date}}">
59
+ {{#date "default" this }}{{ this.data.publishedAt }}{{/date}}
60
+ </time>
61
+ {{#if this.data.wordCount }}
62
+ <span aria-hidden="true"> &middot; </span>
63
+ <span>{{ readingTime }} mins</span>
64
+ {{/if}}
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ {{/each}}
71
+ </div>
72
+ {{#gt list.pageCount 1}}
73
+ <div id="pagination">
74
+ {{#if list.page.next }}
75
+ {{! if the last page has less than min required items and we are on the 3rd page from the end, link to the last page }}
76
+ <a href="{{ pagination.href.next }}">&lt; Newer</a>
77
+ &nbsp;
78
+ {{/if}}
79
+ {{#if list.page.previous }}
80
+ &nbsp;
81
+ <a href="{{ pagination.href.previous }}">Older &gt;</a>
82
+ {{/if}}
83
+ </div>
84
+ {{/gt}}
85
+ </div>
86
+ </div>
87
+ <!-- End ###PAGE_TYPE_SLUG### Index Template-->
88
+
89
+ {{/site-template}}
@@ -0,0 +1,52 @@
1
+ <section id="template-content" class="mt-8">
2
+ <article id="###PAGE_TYPE_SLUG###-copy">
3
+
4
+ <h1>{{{ title }}}</h1>
5
+
6
+ {{!-- Start Article Byline --}}
7
+ <div class="mt-2 flex flex-col text-sm font-medium text-center justify-center items-center not-prose">
8
+ <div class="flex items-center justify-center">
9
+ <div class="flex -space-x-3 flex-row-reverse space-x-reverse">
10
+ {{#Authors this true}}
11
+ <!-- User image -->
12
+ <a href="/{{ pageType ../pageTypeId 'slug' }}/author/{{ this.slug }}/">
13
+ {{#Image image "profiletiny" }}
14
+ class="w-8 h-8 inline-block border border-white dark:border-slate-600 rounded-full" alt="Profile picture of {{ fullName }}" title="{{ fullName }}"
15
+ {{/Image}}
16
+ </a>
17
+ {{/Authors}}
18
+ </div>
19
+ <ul class="ml-2 comma-separated-list justify-center">
20
+ {{#Authors this true}}
21
+ <li class="whitespace-nowrap">{{ fullName }}</li>
22
+ {{/Authors}}
23
+ </ul>
24
+ </div>
25
+ <div class="-mt-1 flex flex-wrap">
26
+ <ul class="dot-separated-list items-center justify-center">
27
+ <li>
28
+ <time datetime="{{#date 'iso' }}{{ publishedAt }}{{/date}}">
29
+ {{#date "MMMM D, YYYY" this }}{{ publishedAt }}{{/date}}
30
+ </time>
31
+ </li>
32
+ </ul>
33
+ </div>
34
+ </div>
35
+ {{!-- End Article Byline --}}
36
+
37
+ {{#FeatureImage}}class="w-full" title="{{ featureImage.alt }}"{{/FeatureImage}}
38
+
39
+ {{!-- START ###PAGE_TYPE_SLUG### CONTENT --}}
40
+ <section id="content" class="mt-12 md:mt-20 mb-6">
41
+ {{!-- Because this partial is used in a paginated set we need to go back to the root item to get the content --}}
42
+ {{{ process @root/item.content }}}
43
+ </section>
44
+ {{!-- END ###PAGE_TYPE_SLUG### CONTENT --}}
45
+ </article>
46
+
47
+ <section id="recommendations"></section>
48
+
49
+ </section>
50
+
51
+ {{! the parameter is the ID of the HTML tag where the recommendation should be inserted }}
52
+ {{{ Recommendations 'recommendations' }}}
@@ -0,0 +1,39 @@
1
+ ---
2
+ {
3
+ "title": "This title is unused",
4
+ "pageTypeId": "###PAGE_TYPE_ID###",
5
+ "pagination": {
6
+ "data": "collections.pageTypeId-###PAGE_TYPE_ID###:unpaged",
7
+ "size": 1,
8
+ "alias": "item",
9
+ "addAllPagesToCollections": true,
10
+ "reverse": false,
11
+ "resolve": "values"
12
+ },
13
+ "pageId": "###NEW_SHORT_ID###",
14
+ "forceRender": true,
15
+ "permalink": "{{ pageType this.pageTypeId 'slug' }}/{{ item.data.slug }}/index.html"
16
+ }
17
+ ---
18
+ {{!--
19
+ Ensure that the page type is listed in the CMS as "Do Not Render"
20
+ This will allow this template to control the creation of all pages of that page type.
21
+
22
+ Since this page is the template, we need to build the fully
23
+ rendered page in the context of the page data
24
+ --}}
25
+ {{#with item.data }}
26
+
27
+ {{#>site-template}}
28
+
29
+ <main class="relative mt-8 mx-6 md:mx-8">
30
+ {{> ###PAGE_TYPE_SLUG###-pagination }}
31
+
32
+ {{> ###PAGE_TYPE_SLUG###-item }}
33
+
34
+ {{> ###PAGE_TYPE_SLUG###-pagination }}
35
+ </main>
36
+
37
+ {{/site-template}}
38
+
39
+ {{/with}}
@@ -0,0 +1,11 @@
1
+ {{!-- We paginate over the pagination data and it is located at the @root --}}
2
+ {{#with @root }}
3
+ <div class="flex justify-center">
4
+ <nav class="isolate inline-flex -space-x-px" aria-label="Pagination">
5
+ <a href="{{ pagination.href.first }}" class="###PAGE_TYPE_SLUG###-pagination-{{#not pagination.href.previous}}in{{/not}}active rounded-l-md px-2">|&lt;</a>
6
+ <a href="{{ pagination.href.previous }}" class="###PAGE_TYPE_SLUG###-pagination-{{#not pagination.href.previous}}in{{/not}}active px-2">&lt;&nbsp;prev</a>
7
+ <a href="{{ pagination.href.next }}" class="###PAGE_TYPE_SLUG###-pagination-{{#not pagination.href.next}}in{{/not}}active px-2">next&nbsp;&gt;</a>
8
+ <a href="{{ pagination.href.last }}" class="###PAGE_TYPE_SLUG###-pagination-{{#not pagination.href.next}}in{{/not}}active rounded-r-md px-2">&gt;|</a>
9
+ </nav>
10
+ </div>
11
+ {{/with}}
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ # CF Workers Builds injects: CI=true, WORKERS_CI=1, WORKERS_CI_BUILD_UUID,
5
+ # WORKERS_CI_COMMIT_SHA, WORKERS_CI_BRANCH, CLOUDFLARE_ACCOUNT_ID.
6
+ # Our trigger env vars add: ENV_NAME, BUILD_CUSTOMER, DNS_ZONE_NAME,
7
+ # LEED_API_TOKEN (secret).
8
+
9
+ # Ensure bun global bin is on PATH for the entire script.
10
+ export PATH="$HOME/.bun/bin:$PATH"
11
+
12
+ # ── Validate required environment variables ──────────────────────────────────
13
+ missing=()
14
+ [ -z "${ENV_NAME:-}" ] && missing+=("ENV_NAME")
15
+ [ -z "${LEED_API_TOKEN:-}" ] && missing+=("LEED_API_TOKEN")
16
+
17
+ if [ ${#missing[@]} -gt 0 ]; then
18
+ echo "ERROR: Required environment variables are not set:"
19
+ for var in "${missing[@]}"; do
20
+ echo " - $var"
21
+ done
22
+ exit 1
23
+ fi
24
+
25
+ # ── Environment info ─────────────────────────────────────────────────────────
26
+ echo "Bun: $(bun --version) | Node: $(node --version)"
27
+ echo "Branch: ${WORKERS_CI_BRANCH:-unknown} | Commit: ${WORKERS_CI_COMMIT_SHA:-unknown}"
28
+ echo "Build UUID: ${WORKERS_CI_BUILD_UUID:-unknown}"
29
+ # Entitlements baked into this build (#309 G3). The site builder trusts ONLY
30
+ # this trigger env var in CI and fails closed when it is missing.
31
+ echo "LEED_ENTITLEMENTS: ${LEED_ENTITLEMENTS:-<unset>}"
32
+
33
+ # ── Install the Leed CLI ─────────────────────────────────────────────────────
34
+ # From public npm in every environment, with no registry config and no token.
35
+ # Production installs the @release dist-tag; every other environment installs
36
+ # @staging, the build awaiting release.
37
+ if [ "$ENV_NAME" = "production" ]; then
38
+ TAG="release"
39
+ else
40
+ TAG="staging"
41
+ fi
42
+
43
+ echo "Installing @leed-ai/cli@$TAG and wrangler"
44
+ bun install -g @leed-ai/cli@$TAG wrangler
45
+
46
+ # ── Font Awesome ─────────────────────────────────────────────────────────────
47
+ # The build downloads no fonts (#458). A repo with no Font Awesome committed
48
+ # gets Free here, for this build only; a repo whose src/static/webfonts holds
49
+ # fa-*.woff2 or fa-version.txt (its own Pro, or Free) is left untouched. A
50
+ # failed download stops the build, so the live site keeps its icons rather
51
+ # than being replaced by one without them.
52
+ leed site init --font-awesome
53
+
54
+ # ── Build the site ───────────────────────────────────────────────────────────
55
+ leed site build
56
+
57
+ # ── Upload: push worker version and notify CMS ──────────────────────────────
58
+ leed site upload