@leed-ai/cli 0.0.0 → 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.
- package/LICENSE.md +57 -0
- package/README.md +120 -3
- package/dist/LICENSE.md +57 -0
- package/dist/acorn-DAgDT1om.js +5087 -0
- package/dist/angular-l0_4PK8N.js +3598 -0
- package/dist/authShared-Dray38Ls.js +1161 -0
- package/dist/babel-CJeRQd5u.js +10038 -0
- package/dist/buildResults-tiq1nugP.js +21180 -0
- package/dist/chunk-1VJ9lAw7.js +42 -0
- package/dist/cliAuth-38JjD6hw.js +15 -0
- package/dist/env-B0bHiXJJ.js +29 -0
- package/dist/errors-CqKamGCu.js +481 -0
- package/dist/estree-E8WG8UHj.js +6930 -0
- package/dist/flow-6xaRIbPQ.js +52255 -0
- package/dist/glimmer-aJPjsfbT.js +7272 -0
- package/dist/graphql-mcgtPEiZ.js +1901 -0
- package/dist/html--eeea3Kl.js +6553 -0
- package/dist/leed.eleventy.mjs +6525 -0
- package/dist/leed.mjs +88952 -0
- package/dist/leed.sources.json +798 -0
- package/dist/leedLogger-Zkada5aO.js +78 -0
- package/dist/markdown-D73jNKwx.js +6836 -0
- package/dist/meriyah-CMp1nDDW.js +8932 -0
- package/dist/package.json +101 -0
- package/dist/postcss-h4fBr2Fn.js +6760 -0
- package/dist/prettier-CwFSKxfN.js +16821 -0
- package/dist/static/customer-site-worker/package.json +9 -0
- package/dist/static/customer-site-worker/src/assetsHydration.ts +55 -0
- package/dist/static/customer-site-worker/src/constants.ts +20 -0
- package/dist/static/customer-site-worker/src/cors.ts +120 -0
- package/dist/static/customer-site-worker/src/index.ts +242 -0
- package/dist/static/customer-site-worker/src/mcp-proxy.ts +98 -0
- package/dist/static/customer-site-worker/src/proxy.ts +92 -0
- package/dist/static/customer-site-worker/src/proxyHeaders.ts +47 -0
- package/dist/static/customer-site-worker/src/tier.ts +40 -0
- package/dist/static/customer-site-worker/src/types.ts +82 -0
- package/dist/static/customer-site-worker/test/functions-mock.worker.js +50 -0
- package/dist/static/customer-site-worker/tsconfig.json +19 -0
- package/dist/static/customer-site-worker/vitest.workers.config.ts +61 -0
- package/dist/static/install/husky/colors.mjs +5 -0
- package/dist/static/install/husky/hooks/commit-msg +1 -0
- package/dist/static/install/husky/hooks/pre-commit +1 -0
- package/dist/static/install/husky/hooks/pre-push +1 -0
- package/dist/static/install/husky/valid-command.mjs +29 -0
- package/dist/static/install/husky/valid-commit-msg.mjs +20 -0
- package/dist/static/install/package.json +10 -0
- package/dist/static/install/packages.txt +4 -0
- package/dist/static/install/tasks.json +111 -0
- package/dist/static/javascript/detectIncognito.js +195 -0
- package/dist/static/javascript/documentation.js +2781 -0
- package/dist/static/javascript/fp/fp.esm.js +2896 -0
- package/dist/static/javascript/fp/fp.js +3067 -0
- package/dist/static/javascript/live-search.js +986 -0
- package/dist/static/javascript/lunr-search.js +843 -0
- package/dist/static/javascript/timeme.js +451 -0
- package/dist/static/javascript/tracker/webmcp.js +67 -0
- package/dist/static/javascript/tracker/whisper.js +1 -0
- package/dist/static/javascript/utilities.js +819 -0
- package/dist/static/javascript/versions.json +74 -0
- package/dist/static/javascript/zoomable.js +488 -0
- package/dist/static/site/_data/eleventyComputed.js +228 -0
- package/dist/static/site/_data/leed-form-data.json +253 -0
- package/dist/static/site/_includes/leed/api/bits/array-type.hbs +24 -0
- package/dist/static/site/_includes/leed/api/bits/badges.hbs +9 -0
- package/dist/static/site/_includes/leed/api/bits/description.hbs +9 -0
- package/dist/static/site/_includes/leed/api/bits/examples.hbs +42 -0
- package/dist/static/site/_includes/leed/api/bits/scopes.hbs +28 -0
- package/dist/static/site/_includes/leed/api/object.hbs +110 -0
- package/dist/static/site/_includes/leed/api/parameters.hbs +11 -0
- package/dist/static/site/_includes/leed/api/property.hbs +153 -0
- package/dist/static/site/_includes/leed/api/request-body.hbs +51 -0
- package/dist/static/site/_includes/leed/api/responses.hbs +89 -0
- package/dist/static/site/_includes/leed/api/security-constraints.hbs +59 -0
- package/dist/static/site/_includes/leed/api/security.hbs +75 -0
- package/dist/static/site/_includes/leed/components/pagination.hbs +45 -0
- package/dist/static/site/_includes/leed/components/scroll-status-indicator-horizontal.hbs +22 -0
- package/dist/static/site/_includes/leed/docs/alpha/api.hbs +6 -0
- package/dist/static/site/_includes/leed/docs/alpha/base.hbs +26 -0
- package/dist/static/site/_includes/leed/docs/alpha/documentation.hbs +7 -0
- package/dist/static/site/_includes/leed/docs/api-article.hbs +75 -0
- package/dist/static/site/_includes/leed/docs/bravo/api.hbs +5 -0
- package/dist/static/site/_includes/leed/docs/bravo/base.hbs +31 -0
- package/dist/static/site/_includes/leed/docs/bravo/documentation.hbs +7 -0
- package/dist/static/site/_includes/leed/docs/charlie/api.hbs +6 -0
- package/dist/static/site/_includes/leed/docs/charlie/base.hbs +27 -0
- package/dist/static/site/_includes/leed/docs/charlie/documentation.hbs +10 -0
- package/dist/static/site/_includes/leed/docs/doc-article.hbs +40 -0
- package/dist/static/site/_includes/leed/docs/docs-footer.hbs +35 -0
- package/dist/static/site/_includes/leed/docs/docs-header.hbs +59 -0
- package/dist/static/site/_includes/leed/docs/document-search-modal.hbs +36 -0
- package/dist/static/site/_includes/leed/docs/document-search.hbs +23 -0
- package/dist/static/site/_includes/leed/docs/footer.hbs +12 -0
- package/dist/static/site/_includes/leed/docs/header/brand.hbs +19 -0
- package/dist/static/site/_includes/leed/docs/header/chrome.hbs +33 -0
- package/dist/static/site/_includes/leed/docs/header/compact.hbs +19 -0
- package/dist/static/site/_includes/leed/docs/header/cta.hbs +15 -0
- package/dist/static/site/_includes/leed/docs/header/nav.hbs +18 -0
- package/dist/static/site/_includes/leed/docs/header/top-search.hbs +15 -0
- package/dist/static/site/_includes/leed/docs/mini-bar.hbs +53 -0
- package/dist/static/site/_includes/leed/docs/pagination.hbs +19 -0
- package/dist/static/site/_includes/leed/docs/shell.hbs +56 -0
- package/dist/static/site/_includes/leed/docs/sidebar.hbs +52 -0
- package/dist/static/site/_includes/leed/docs/social-icons.hbs +81 -0
- package/dist/static/site/_includes/leed/docs/style.hbs +17 -0
- package/dist/static/site/_includes/leed/docs/toc.hbs +7 -0
- package/dist/static/site/_includes/leed/form.hbs +266 -0
- package/dist/static/site/_includes/leed/head.hbs +67 -0
- package/dist/static/site/_includes/leed/menu/builder.hbs +35 -0
- package/dist/static/site/_includes/leed/menu/item.hbs +67 -0
- package/dist/static/site/_includes/leed/menu/link.hbs +59 -0
- package/dist/static/site/_includes/leed/metadata/ogCard.hbs +40 -0
- package/dist/static/site/_includes/leed/metadata/siteMetadata.hbs +24 -0
- package/dist/static/site/_includes/leed/metadata/twitterCard.hbs +34 -0
- package/dist/static/site/_includes/leed/popup-video.hbs +21 -0
- package/dist/static/site/_includes/leed/stub-template.hbs +17 -0
- package/dist/static/site/_includes/leed/unsubscribe-form.hbs +30 -0
- package/dist/static/site/_layouts/leed-documentation.hbs +12 -0
- package/dist/static/site/leed-feed-atom.hbs +42 -0
- package/dist/static/site/leed-feed-json.hbs +56 -0
- package/dist/static/site/leed-feed-rss.hbs +39 -0
- package/dist/static/site/leed-headers.hbs +38 -0
- package/dist/static/site/leed-redirects.hbs +10 -0
- package/dist/static/site/leed-sitemap-pageType.hbs +28 -0
- package/dist/static/site/leed-sitemap.hbs +19 -0
- package/dist/static/site/leed-unsubscribe.hbs +44 -0
- package/dist/static/site/leed-unsubscribed.hbs +40 -0
- package/dist/static/tailwind/components/alerts.css +132 -0
- package/dist/static/tailwind/components/api-methods.css +39 -0
- package/dist/static/tailwind/components/breadcrumbs.css +31 -0
- package/dist/static/tailwind/components/code.css +88 -0
- package/dist/static/tailwind/components/collapsible.css +38 -0
- package/dist/static/tailwind/components/document-search.css +222 -0
- package/dist/static/tailwind/components/form.css +185 -0
- package/dist/static/tailwind/components/kbd.css +7 -0
- package/dist/static/tailwind/components/pagination.css +81 -0
- package/dist/static/tailwind/components/scroll-status-indicator.css +5 -0
- package/dist/static/tailwind/components/tab-groups.css +117 -0
- package/dist/static/tailwind/components/tables.css +0 -0
- package/dist/static/tailwind/components/toc.css +60 -0
- package/dist/static/tailwind/components.css +248 -0
- package/dist/static/tailwind/defaults.css +260 -0
- package/dist/static/tailwind/docs/api.css +701 -0
- package/dist/static/tailwind/docs/components/blockquote.css +5 -0
- package/dist/static/tailwind/docs/components/button.css +11 -0
- package/dist/static/tailwind/docs/components/docs-pagination.css +71 -0
- package/dist/static/tailwind/docs/components/mobile-bar.css +83 -0
- package/dist/static/tailwind/docs/components/navigation.css +279 -0
- package/dist/static/tailwind/docs/components/table.css +54 -0
- package/dist/static/tailwind/docs/components.css +6 -0
- package/dist/static/tailwind/docs/docs.css +427 -0
- package/dist/static/tailwind/docs/layouts/alpha.css +108 -0
- package/dist/static/tailwind/docs/layouts/bravo.css +218 -0
- package/dist/static/tailwind/docs/layouts/charlie.css +105 -0
- package/dist/static/tailwind/docs/layouts.css +3 -0
- package/dist/static/tailwind/docs/themes/amber.css +113 -0
- package/dist/static/tailwind/docs/themes/blue.css +94 -0
- package/dist/static/tailwind/docs/themes/cyan.css +111 -0
- package/dist/static/tailwind/docs/themes/emerald.css +111 -0
- package/dist/static/tailwind/docs/themes/fuchsia.css +111 -0
- package/dist/static/tailwind/docs/themes/green.css +95 -0
- package/dist/static/tailwind/docs/themes/indigo.css +111 -0
- package/dist/static/tailwind/docs/themes/lime.css +111 -0
- package/dist/static/tailwind/docs/themes/orange.css +111 -0
- package/dist/static/tailwind/docs/themes/pink.css +111 -0
- package/dist/static/tailwind/docs/themes/purple.css +111 -0
- package/dist/static/tailwind/docs/themes/red.css +111 -0
- package/dist/static/tailwind/docs/themes/rose.css +111 -0
- package/dist/static/tailwind/docs/themes/sky.css +111 -0
- package/dist/static/tailwind/docs/themes/teal.css +111 -0
- package/dist/static/tailwind/docs/themes/violet.css +111 -0
- package/dist/static/tailwind/docs/themes/yellow.css +111 -0
- package/dist/static/tailwind/docs/themes.css +84 -0
- package/dist/static/tailwind/font-awesome/free-7.3.1/brands.css +2455 -0
- package/dist/static/tailwind/font-awesome/free-7.3.1/fontawesome.css +8997 -0
- package/dist/static/tailwind/font-awesome/free-7.3.1/fonts.css +45 -0
- package/dist/static/tailwind/font-awesome/free-7.3.1/icons.json +2608 -0
- package/dist/static/tailwind/font-awesome/free-7.3.1.css +3 -0
- package/dist/static/tailwind/font-awesome/pro-7.0.0/brands.css +2215 -0
- package/dist/static/tailwind/font-awesome/pro-7.0.0/fontawesome.css +19281 -0
- package/dist/static/tailwind/font-awesome/pro-7.0.0/fonts.css +445 -0
- package/dist/static/tailwind/font-awesome/pro-7.0.0.css +3 -0
- package/dist/static/tailwind/font-awesome/pro-7.3.1/brands.css +2455 -0
- package/dist/static/tailwind/font-awesome/pro-7.3.1/fontawesome.css +20365 -0
- package/dist/static/tailwind/font-awesome/pro-7.3.1/fonts.css +589 -0
- package/dist/static/tailwind/font-awesome/pro-7.3.1.css +3 -0
- package/dist/static/tailwind/fonts/all.css +6 -0
- package/dist/static/tailwind/fonts/config.jsonc +31 -0
- package/dist/static/tailwind/fonts/geist-mono.css +142 -0
- package/dist/static/tailwind/fonts/geist.css +142 -0
- package/dist/static/tailwind/fonts/inter.css +215 -0
- package/dist/static/tailwind/fonts/jetbrains-mono.css +126 -0
- package/dist/static/tailwind/fonts/noto-sans.css +134 -0
- package/dist/static/tailwind/fonts/open-sans.css +89 -0
- package/dist/static/tailwind/highlighters.css +14 -0
- package/dist/static/tailwind/hljs/README.md +53 -0
- package/dist/static/tailwind/hljs/a11y.css +96 -0
- package/dist/static/tailwind/hljs/atom-fruit.css +90 -0
- package/dist/static/tailwind/hljs/atom-one.css +164 -0
- package/dist/static/tailwind/hljs/default.css +164 -0
- package/dist/static/tailwind/hljs/github.css +101 -0
- package/dist/static/tailwind/hljs/google-code.css +112 -0
- package/dist/static/tailwind/hljs/grayscale.css +115 -0
- package/dist/static/tailwind/hljs/gruvbox-hard.css +115 -0
- package/dist/static/tailwind/hljs/gruvbox-medium.css +115 -0
- package/dist/static/tailwind/hljs/gruvbox-soft.css +115 -0
- package/dist/static/tailwind/hljs/papercolor.css +120 -0
- package/dist/static/tailwind/hljs/qt-creator.css +91 -0
- package/dist/static/tailwind/hljs/summerfruit.css +115 -0
- package/dist/static/tailwind/hljs/tomorrow.css +115 -0
- package/dist/static/tailwind/leed.css +170 -0
- package/dist/static/tailwind/site-tokens.reference.css +105 -0
- package/dist/static/tailwind/utils/icons.css +102 -0
- package/dist/static/tailwind/utils/utilities.css +105 -0
- package/dist/static/templates/pages/PAGE.hbs +27 -0
- package/dist/static/templates/pages/PAGE_LAYOUT.hbs +19 -0
- package/dist/static/templates/pages/PAGE_TYPE_INDEX.hbs +89 -0
- package/dist/static/templates/pages/PAGINATED_PAGE_TYPE_ITEM.hbs +52 -0
- package/dist/static/templates/pages/PAGINATED_PAGE_TYPE_LIST.hbs +39 -0
- package/dist/static/templates/pages/PAGINATED_PAGE_TYPE_PAGINATION.hbs +11 -0
- package/dist/static/templates/raw-content/.ci/build.sh +58 -0
- package/dist/static/templates/raw-content/README.md +179 -0
- package/dist/static/templates/raw-content/_gitignore +50 -0
- package/dist/static/templates/raw-content/src/404.hbs +21 -0
- package/dist/static/templates/raw-content/src/_data/autolink.json +1 -0
- package/dist/static/templates/raw-content/src/_data/ctaList.json +1 -0
- package/dist/static/templates/raw-content/src/_data/leedForms.json +1 -0
- package/dist/static/templates/raw-content/src/_data/menu.json +1 -0
- package/dist/static/templates/raw-content/src/_includes/footer.hbs +18 -0
- package/dist/static/templates/raw-content/src/_includes/header-includes.hbs +25 -0
- package/dist/static/templates/raw-content/src/_includes/header.hbs +5 -0
- package/dist/static/templates/raw-content/src/_includes/site-template.hbs +23 -0
- package/dist/static/templates/raw-content/src/_includes/unsubscribe-DISABLED.hbs +17 -0
- package/dist/static/templates/raw-content/src/_includes/unsubscribed-DISABLED.hbs +13 -0
- package/dist/static/templates/raw-content/src/_layouts/empty.hbs +2 -0
- package/dist/static/templates/raw-content/src/index.hbs +21 -0
- package/dist/static/templates/raw-content/src/robots.hbs +9 -0
- package/dist/static/templates/raw-content/tailwind/site/base.css +44 -0
- package/dist/static/templates/raw-content/tailwind/site.config.css +3 -0
- package/dist/static/templates/sandbox/_gitignore +50 -0
- package/dist/static/templates/sandbox/identity.json +1 -0
- package/dist/static/templates/sandbox/src/404.hbs +21 -0
- package/dist/static/templates/sandbox/src/_data/autolink.json +1 -0
- package/dist/static/templates/sandbox/src/_data/ctaList.json +1 -0
- package/dist/static/templates/sandbox/src/_data/labelList.json +9 -0
- package/dist/static/templates/sandbox/src/_data/leedForms.json +20 -0
- package/dist/static/templates/sandbox/src/_data/menu.json +19 -0
- package/dist/static/templates/sandbox/src/_data/pageTypeList.json +14 -0
- package/dist/static/templates/sandbox/src/_data/searchIndexList.json +1 -0
- package/dist/static/templates/sandbox/src/_data/userList.json +11 -0
- package/dist/static/templates/sandbox/src/_includes/footer.hbs +18 -0
- package/dist/static/templates/sandbox/src/_includes/header-includes.hbs +25 -0
- package/dist/static/templates/sandbox/src/_includes/header.hbs +5 -0
- package/dist/static/templates/sandbox/src/_includes/site-template.hbs +23 -0
- package/dist/static/templates/sandbox/src/_layouts/empty.hbs +2 -0
- package/dist/static/templates/sandbox/src/index.hbs +20 -0
- package/dist/static/templates/sandbox/src/robots.hbs +9 -0
- package/dist/static/templates/sandbox/src/src.11tydata.json +39 -0
- package/dist/static/templates/sandbox/tailwind/site/base.css +44 -0
- package/dist/static/templates/sandbox/tailwind/site.config.css +3 -0
- package/dist/thrown-sukVkp_1.js +113 -0
- package/dist/typescript-D4T0V_Hn.js +23004 -0
- package/dist/yaml-9wR8GxF_.js +5236 -0
- package/package.json +152 -10
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{{!--
|
|
2
|
+
Left navigation sidebar. On desktop it is always visible; below the `lg`
|
|
3
|
+
breakpoint it becomes an overlay driven by the docs mini bar's toggle.
|
|
4
|
+
--}}
|
|
5
|
+
<div id="docs-sidebar-nav"
|
|
6
|
+
x-data="sidebarNav()"
|
|
7
|
+
{{!-- Only an actual breakpoint crossing closes the drawer. A blanket
|
|
8
|
+
close() on every resize also fired when a mobile soft keyboard opened,
|
|
9
|
+
which shut the drawer the instant a reader tapped the nav filter. --}}
|
|
10
|
+
@resize.window.debounce.50ms="handleResize()"
|
|
11
|
+
@click.away="close()"
|
|
12
|
+
aria-labelledby="sidebar-toggle-button"
|
|
13
|
+
x-show="open || !isSmallerThanDesktop"
|
|
14
|
+
x-effect="$el.style.display = (open || !isSmallerThanDesktop) ? '' : 'none'"
|
|
15
|
+
:aria-hidden="(!open && isSmallerThanDesktop) ? 'true' : 'false'"
|
|
16
|
+
class="docs-sidebar" :class="[ (open && isSmallerThanDesktop) ? 'zindex-high' : 'zindex-low']">
|
|
17
|
+
<div class="docs-mobile-menu-overlay" @click="close()"></div>
|
|
18
|
+
<div id="docs-navigation" x-data="leedDocsNavigation">
|
|
19
|
+
{{!-- Nav filter. Rendered inside #docs-navigation on purpose: below `lg`
|
|
20
|
+
that element is the fixed drawer panel, so a sibling would sit
|
|
21
|
+
behind the overlay. Server-rendered in full — NavFilterManager
|
|
22
|
+
injects nothing — and carries no `x-` attributes, so Alpine never
|
|
23
|
+
adopts it and the filter stays out of the reactivity graph. --}}
|
|
24
|
+
<div id="docs-nav-filter">
|
|
25
|
+
<div class="docs-nav-filter__field">
|
|
26
|
+
<i class="docs-nav-filter__icon" aria-hidden="true"></i>
|
|
27
|
+
<label class="sr-only" for="docs-nav-filter-input">Filter navigation</label>
|
|
28
|
+
<input type="search"
|
|
29
|
+
id="docs-nav-filter-input"
|
|
30
|
+
class="docs-nav-filter__input"
|
|
31
|
+
maxlength="128"
|
|
32
|
+
autocomplete="off"
|
|
33
|
+
placeholder="Filter menu...">
|
|
34
|
+
<button type="button"
|
|
35
|
+
id="docs-nav-filter-clear"
|
|
36
|
+
class="docs-nav-filter__clear"
|
|
37
|
+
aria-label="Clear filter"
|
|
38
|
+
hidden></button>
|
|
39
|
+
</div>
|
|
40
|
+
{{!-- Not the input's aria-describedby: a description that changes on
|
|
41
|
+
every keystroke is announced a second time by some screen
|
|
42
|
+
readers, on top of the polite update. --}}
|
|
43
|
+
<span id="docs-nav-filter-status" class="sr-only" role="status" aria-live="polite"></span>
|
|
44
|
+
</div>
|
|
45
|
+
{{!-- There is a short code function that looks up the name from the page type --}}
|
|
46
|
+
{{> leed/menu/builder menuName=(docsMenuName "left") }}
|
|
47
|
+
{{!-- Outside #docs-nav-filter so a site's `#docs-nav-filter { display: none }`
|
|
48
|
+
opt-out does not also swallow the empty state, and so the message
|
|
49
|
+
reads where the list was. --}}
|
|
50
|
+
<p id="docs-nav-filter-empty" class="docs-nav-filter__empty" hidden>No matching pages</p>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{{!-- partial to show the social icons --}}
|
|
2
|
+
<div class="flex flex-wrap footer-align space-x-6 md:ml-auto mb-6 ml-0! md:ml-0!">
|
|
3
|
+
{{#if externalAccounts.linkedinId }}
|
|
4
|
+
<a href="https://www.linkedin.com/company/{{ externalAccounts.linkedinId }}" target="_blank" class="social-icon linkedin-colors">
|
|
5
|
+
<span class="sr-only">LinkedIn</span>
|
|
6
|
+
<i class="fa-brands fa-linkedin"></i>
|
|
7
|
+
</a>
|
|
8
|
+
{{/if}}
|
|
9
|
+
{{#if externalAccounts.discordInviteId }}
|
|
10
|
+
<a href="https://discord.gg/{{ externalAccounts.discordInviteId }}" target="_blank" class="social-icon discord-colors">
|
|
11
|
+
<span class="sr-only">Discord</span>
|
|
12
|
+
<i class="fa-brands fa-discord"></i>
|
|
13
|
+
</a>
|
|
14
|
+
{{/if}}
|
|
15
|
+
{{#if externalAccounts.blueskyId }}
|
|
16
|
+
<a href="https://bsky.app/profile/{{ externalAccounts.blueskyId }}" target="_blank" class="social-icon bluesky-colors">
|
|
17
|
+
<span class="sr-only">Bluesky</span>
|
|
18
|
+
<i class="fa-brands fa-bluesky"></i>
|
|
19
|
+
</a>
|
|
20
|
+
{{/if}}
|
|
21
|
+
{{#if externalAccounts.twitterId }}
|
|
22
|
+
<a href="https://x.com/{{ externalAccounts.twitterId }}" target="_blank" class="social-icon twitter-colors">
|
|
23
|
+
<span class="sr-only">Twitter</span>
|
|
24
|
+
<i class="fa-brands fa-x-twitter"></i>
|
|
25
|
+
</a>
|
|
26
|
+
{{/if}}
|
|
27
|
+
{{#if externalAccounts.facebookId }}
|
|
28
|
+
<a href="https://www.facebook.com/{{ externalAccounts.facebookId }}" target="_blank" class="social-icon facebook-colors">
|
|
29
|
+
<span class="sr-only">Facebook</span>
|
|
30
|
+
<i class="fa-brands fa-facebook"></i>
|
|
31
|
+
</a>
|
|
32
|
+
{{/if}}
|
|
33
|
+
{{#if externalAccounts.mastodonId }}
|
|
34
|
+
<a href="https://{{ externalAccounts.mastodonId }}" target="_blank" class="social-icon mastodon-colors">
|
|
35
|
+
<span class="sr-only">Mastodon</span>
|
|
36
|
+
<i class="fa-brands fa-mastodon"></i>
|
|
37
|
+
</a>
|
|
38
|
+
{{/if}}
|
|
39
|
+
{{#if externalAccounts.instagramId }}
|
|
40
|
+
<a href="https://www.instagram.com/{{ externalAccounts.instagramId }}" target="_blank" class="social-icon instagram-colors">
|
|
41
|
+
<span class="sr-only">Instagram</span>
|
|
42
|
+
<i class="fa-brands fa-instagram"></i>
|
|
43
|
+
</a>
|
|
44
|
+
{{/if}}
|
|
45
|
+
{{#if externalAccounts.tiktokId }}
|
|
46
|
+
<a href="https://www.tiktok.com/{{ externalAccounts.tiktokId }}" target="_blank" class="social-icon tiktok-colors">
|
|
47
|
+
<span class="sr-only">TikTok</span>
|
|
48
|
+
<i class="fa-brands fa-tiktok"></i>
|
|
49
|
+
</a>
|
|
50
|
+
{{/if}}
|
|
51
|
+
{{#if externalAccounts.youtubeId }}
|
|
52
|
+
<a href="https://www.youtube.com/{{ externalAccounts.youtubeId }}" target="_blank" class="social-icon youtube-colors">
|
|
53
|
+
<span class="sr-only">YouTube</span>
|
|
54
|
+
<i class="fa-brands fa-youtube"></i>
|
|
55
|
+
</a>
|
|
56
|
+
{{/if}}
|
|
57
|
+
{{#if externalAccounts.twitchId }}
|
|
58
|
+
<a href="https://www.twitch.tv/{{ externalAccounts.twitchId }}" target="_blank" class="social-icon twitch-colors">
|
|
59
|
+
<span class="sr-only">Twitch</span>
|
|
60
|
+
<i class="fa-brands fa-twitch"></i>
|
|
61
|
+
</a>
|
|
62
|
+
{{/if}}
|
|
63
|
+
{{#if externalAccounts.redditId }}
|
|
64
|
+
<a href="https://www.reddit.com/user/{{ externalAccounts.redditId }}" target="_blank" class="social-icon reddit-colors">
|
|
65
|
+
<span class="sr-only">Reddit</span>
|
|
66
|
+
<i class="fa-brands fa-reddit"></i>
|
|
67
|
+
</a>
|
|
68
|
+
{{/if}}
|
|
69
|
+
{{#if externalAccounts.githubId }}
|
|
70
|
+
<a href="https://github.com/{{ externalAccounts.githubId }}" target="_blank" class="social-icon github-colors">
|
|
71
|
+
<span class="sr-only">GitHub</span>
|
|
72
|
+
<i class="fa-brands fa-github"></i>
|
|
73
|
+
</a>
|
|
74
|
+
{{/if}}
|
|
75
|
+
{{#if externalAccounts.gitlabId }}
|
|
76
|
+
<a href="https://gitlab.com/{{ externalAccounts.gitlabId }}" target="_blank" class="social-icon gitlab-colors">
|
|
77
|
+
<span class="sr-only">GitLab</span>
|
|
78
|
+
<i class="fa-brands fa-gitlab"></i>
|
|
79
|
+
</a>
|
|
80
|
+
{{/if}}
|
|
81
|
+
</div>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{{#if documentationConfiguration.logo }}
|
|
2
|
+
<style>
|
|
3
|
+
:root {
|
|
4
|
+
{{#if documentationConfiguration.logo.light }}
|
|
5
|
+
--nav-logo-url: url('{{ documentationConfiguration.logo.light }}');
|
|
6
|
+
{{/if}}
|
|
7
|
+
}
|
|
8
|
+
{{#if documentationConfiguration.logo.dark }}
|
|
9
|
+
@media (prefers-color-scheme: dark) {
|
|
10
|
+
:root {
|
|
11
|
+
--nav-logo-url: url('{{ documentationConfiguration.logo.dark}}');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
{{/if}}
|
|
15
|
+
</style>
|
|
16
|
+
<!-- End of style generated by https://leed.ai -->
|
|
17
|
+
{{/if}}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{{!-- Desktop table of contents. The mobile copy is moved into the mini bar by JavaScript. --}}
|
|
2
|
+
<div id="docs-toc-wrapper" class="hidden lg:block">
|
|
3
|
+
<aside id="leed-toc" class="py-6 px-4">
|
|
4
|
+
<p id="leed-toc-heading"><i class="fa-solid leed-icon-list"></i> On this page</p>
|
|
5
|
+
{{{ toc content '{"tags": ["h2", "h3"], "wrapper": "div", "wrapperClass": "leed-nav-toc"}' }}}
|
|
6
|
+
</aside>
|
|
7
|
+
</div>
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
{{! Usage:
|
|
2
|
+
leed/form formId="2312kjk1" <-- this is when included in a template page, unless we allow them to put it in the template metadata
|
|
3
|
+
leed/form <-- formId is read from the page metadata. This is best for landing pages where a form is specified in the CMS.
|
|
4
|
+
}}
|
|
5
|
+
{{! > leed/form formId="2312kjk1" }}
|
|
6
|
+
{{#with (lookup leedForms formId) }}
|
|
7
|
+
{{!-- https://blog.cloudflare.com/turnstile-private-captcha-alternative/ --}}
|
|
8
|
+
|
|
9
|
+
{{!--
|
|
10
|
+
leed-utils.js attaches to the onsubmit event of all of our "LeedForm" forms
|
|
11
|
+
1. LeedForm is our key to capture all onsubmit events <-- this is for us
|
|
12
|
+
2. leed-form is purely a class name for styling <-- this is for styling
|
|
13
|
+
3. formPrototype comes from the form creator and it inserted to make it easy for customers to create one style and reuse it across locations
|
|
14
|
+
|
|
15
|
+
Note: Within forms the id fields are used to connect the labels to the form element.
|
|
16
|
+
The name field of the form element is what is submitted for a form submission.
|
|
17
|
+
|
|
18
|
+
Supported fields:
|
|
19
|
+
// these are provided when we hook & submit the form.
|
|
20
|
+
"formId", "pid", "pt", "u"
|
|
21
|
+
// The rest of these fields will get mapped into the database directly.
|
|
22
|
+
"email", "phone", "company", "firstname", "lastname", "title",
|
|
23
|
+
"address", "city", "state", "postalcode",
|
|
24
|
+
"country", "terms", "productname",
|
|
25
|
+
--}}
|
|
26
|
+
|
|
27
|
+
<div class="leed-form-container {{#if formPrototype}}{{formPrototype}}-container{{/if}}">
|
|
28
|
+
{{#if heading }}
|
|
29
|
+
<div id="{{ ../formId }}-heading" class="leed-form-heading">{{ heading }}</div>
|
|
30
|
+
{{/if}}
|
|
31
|
+
{{#if leedAutofill }}
|
|
32
|
+
{{!-- wb stands for welcome back --}}
|
|
33
|
+
<div id="{{ ../formId }}-wb" style="display: none;" class="leed-form-welcome-back">{{ welcomeBackMessage }}</div>
|
|
34
|
+
{{/if}}
|
|
35
|
+
{{#if details }}
|
|
36
|
+
<div id="{{ ../formId }}-details" class="leed-form-details">{{ details }}</div>
|
|
37
|
+
{{/if}}
|
|
38
|
+
|
|
39
|
+
<form data-id="{{ ../formId }}"
|
|
40
|
+
class="LeedForm leed-form {{#if formPrototype}}{{formPrototype}}{{/if}}"
|
|
41
|
+
id="{{ ../formId }}"
|
|
42
|
+
{{#if successCallback }}
|
|
43
|
+
data-successcallback="{{ successCallback }}"
|
|
44
|
+
{{/if}}
|
|
45
|
+
{{#if failureCallback }}
|
|
46
|
+
data-failurecallback="{{ failureCallback }}"
|
|
47
|
+
{{/if}}
|
|
48
|
+
>
|
|
49
|
+
|
|
50
|
+
{{#each fields }}
|
|
51
|
+
<div class="leed-form-block {{type}}
|
|
52
|
+
{{!-- If hideableFields is enabled, the lowest priority is form_fills, so we add that. Only if specify email_batch do we add that --}}
|
|
53
|
+
{{!-- #if ../hideableFields --}}
|
|
54
|
+
{{#not (eq name "terms")}}known-valid-hideable{{/not}}">
|
|
55
|
+
{{#if this.labelBefore }}
|
|
56
|
+
{{#gt @index 0 }}{{/gt}}
|
|
57
|
+
<label for="{{ fieldId ../../formId }}">{{{ this.labelBefore }}}</label>
|
|
58
|
+
{{/if}}
|
|
59
|
+
|
|
60
|
+
{{#eq type "label" }}
|
|
61
|
+
<label id="{{ fieldId ../../formId }}">{{{ this.value }}}</label><br/>
|
|
62
|
+
{{/eq}}
|
|
63
|
+
|
|
64
|
+
{{#eq type "select" }}
|
|
65
|
+
{{!-- Country codes https://www.iban.com/country-codes --}}
|
|
66
|
+
<select id="{{ fieldId ../../formId }}"
|
|
67
|
+
{{#if required }}
|
|
68
|
+
required="true"
|
|
69
|
+
{{/if}}
|
|
70
|
+
{{#if multiple }}
|
|
71
|
+
multiple="true"
|
|
72
|
+
{{/if}}
|
|
73
|
+
{{#if size }}
|
|
74
|
+
size="{{ size }}"
|
|
75
|
+
{{/if}}
|
|
76
|
+
name="{{ name }}">
|
|
77
|
+
{{#if placeHolder }}
|
|
78
|
+
<option value="">{{{ placeHolder }}}</option>
|
|
79
|
+
{{/if}}
|
|
80
|
+
{{#each options }}
|
|
81
|
+
<option value="{{ value }}">{{{ this.label }}}</option>
|
|
82
|
+
{{/each}}
|
|
83
|
+
</select>
|
|
84
|
+
{{/eq}}
|
|
85
|
+
|
|
86
|
+
{{#eq type "countries" }}
|
|
87
|
+
{{!-- Country codes https://www.iban.com/country-codes --}}
|
|
88
|
+
<select id="{{ fieldId ../../formId }}"
|
|
89
|
+
{{#if required }}
|
|
90
|
+
required="true"
|
|
91
|
+
{{/if}}
|
|
92
|
+
{{#if multiple }}
|
|
93
|
+
multiple="true"
|
|
94
|
+
{{/if}}
|
|
95
|
+
{{#if size }}
|
|
96
|
+
size="{{ size }}"
|
|
97
|
+
{{/if}}
|
|
98
|
+
name="{{ name }}">
|
|
99
|
+
{{#if placeHolder }}
|
|
100
|
+
<option value="">{{ placeHolder }}</option>
|
|
101
|
+
{{/if}}
|
|
102
|
+
{{#each @root/leed-form-data/countries }}
|
|
103
|
+
<option
|
|
104
|
+
{{#eq value ../value}}selected="true"{{/eq}}
|
|
105
|
+
value="{{ value }}">
|
|
106
|
+
{{{ this.label }}}
|
|
107
|
+
</option>
|
|
108
|
+
{{/each}}
|
|
109
|
+
</select>
|
|
110
|
+
{{/eq}}
|
|
111
|
+
|
|
112
|
+
{{#eq type "textarea" }}
|
|
113
|
+
<textarea id="{{ fieldId ../../formId }}"
|
|
114
|
+
{{#if required }}
|
|
115
|
+
required="true"
|
|
116
|
+
{{/if}}
|
|
117
|
+
{{#if oninput }}
|
|
118
|
+
oninput="{{ oninput }}"
|
|
119
|
+
{{/if}}
|
|
120
|
+
{{#if onchange }}
|
|
121
|
+
onchange="{{ onchange }}"
|
|
122
|
+
{{/if}}
|
|
123
|
+
{{#if multiple }}
|
|
124
|
+
multiple="true"
|
|
125
|
+
{{/if}}
|
|
126
|
+
{{#if rows }}
|
|
127
|
+
rows="{{ rows }}"
|
|
128
|
+
{{/if}}
|
|
129
|
+
{{#if cols }}
|
|
130
|
+
cols="{{ cols }}"
|
|
131
|
+
{{/if}}
|
|
132
|
+
name="{{ name }}">{{#if value }}{{ value }}{{/if}}</textarea>
|
|
133
|
+
{{/eq}}
|
|
134
|
+
|
|
135
|
+
{{#or (eq type "text") (eq type "tel") (eq type "email") }}
|
|
136
|
+
<input
|
|
137
|
+
id="{{ fieldId ../../formId }}"
|
|
138
|
+
name="{{ name }}"
|
|
139
|
+
type="{{ type }}"
|
|
140
|
+
{{#if placeHolder }}
|
|
141
|
+
placeholder="{{ placeHolder }}"
|
|
142
|
+
{{/if}}
|
|
143
|
+
{{#if oninput }}
|
|
144
|
+
oninput="{{ oninput }}"
|
|
145
|
+
{{/if}}
|
|
146
|
+
{{#if onchange }}
|
|
147
|
+
onchange="{{ onchange }}"
|
|
148
|
+
{{/if}}
|
|
149
|
+
{{#if pattern }}
|
|
150
|
+
pattern="{{ pattern }}"
|
|
151
|
+
{{/if}}
|
|
152
|
+
{{#if value }}
|
|
153
|
+
value="{{ value }}"
|
|
154
|
+
{{/if}}
|
|
155
|
+
{{#if required }}
|
|
156
|
+
required="true"
|
|
157
|
+
{{/if}}
|
|
158
|
+
>
|
|
159
|
+
{{/or}}
|
|
160
|
+
|
|
161
|
+
{{#or (eq type "radiogroup") (eq type "checkboxgroup") }}
|
|
162
|
+
{{#each options }}
|
|
163
|
+
<div class="leed-form-group-option">
|
|
164
|
+
{{#if this.labelBefore }}
|
|
165
|
+
<label for="{{ fieldId ../../formId }}">{{{ this.labelBefore }}}</label>
|
|
166
|
+
{{/if}}
|
|
167
|
+
|
|
168
|
+
<input
|
|
169
|
+
id="{{ fieldId ../../formId}}"
|
|
170
|
+
name="{{ name }}"
|
|
171
|
+
type="{{ type }}"
|
|
172
|
+
{{#if selected}}
|
|
173
|
+
checked="checked"
|
|
174
|
+
{{/if}}
|
|
175
|
+
{{#if ../required }}
|
|
176
|
+
required="true"
|
|
177
|
+
{{/if}}
|
|
178
|
+
{{#if ../onchange }}
|
|
179
|
+
onchange="{{ ../onchange }}"
|
|
180
|
+
{{/if}}
|
|
181
|
+
value="{{ value }}">
|
|
182
|
+
|
|
183
|
+
{{#if this.labelAfter }}
|
|
184
|
+
<label for="{{ fieldId ../../formId }}">{{{ this.labelAfter }}}</label>
|
|
185
|
+
{{/if}}
|
|
186
|
+
</div>
|
|
187
|
+
{{/each}}
|
|
188
|
+
{{/or}}
|
|
189
|
+
|
|
190
|
+
{{#or (eq type "radio") (eq type "checkbox") }}
|
|
191
|
+
<input
|
|
192
|
+
id="{{ fieldId ../../formId }}"
|
|
193
|
+
name="{{ name }}"
|
|
194
|
+
type="{{ type }}"
|
|
195
|
+
{{#if placeHolder }}
|
|
196
|
+
placeholder="{{ placeHolder }}"
|
|
197
|
+
{{/if}}
|
|
198
|
+
{{#if oninput }}
|
|
199
|
+
oninput="{{ oninput }}"
|
|
200
|
+
{{/if}}
|
|
201
|
+
{{#if onchange }}
|
|
202
|
+
onchange="{{ onchange }}"
|
|
203
|
+
{{/if}}
|
|
204
|
+
{{#if pattern }}
|
|
205
|
+
pattern="{{ pattern }}"
|
|
206
|
+
{{/if}}
|
|
207
|
+
{{#if value }}
|
|
208
|
+
value="{{ value }}"
|
|
209
|
+
{{/if}}
|
|
210
|
+
{{#if required }}
|
|
211
|
+
required="true"
|
|
212
|
+
{{/if}}
|
|
213
|
+
{{#if selected }}
|
|
214
|
+
checked="checked"
|
|
215
|
+
{{/if}}
|
|
216
|
+
>
|
|
217
|
+
{{/or}}
|
|
218
|
+
|
|
219
|
+
{{#if this.labelAfter }}
|
|
220
|
+
<label for="{{ fieldId ../../formId }}">{{{ this.labelAfter }}}</label>
|
|
221
|
+
{{/if}}
|
|
222
|
+
|
|
223
|
+
</div>
|
|
224
|
+
{{/each}}
|
|
225
|
+
|
|
226
|
+
{{#each fields }}
|
|
227
|
+
{{#eq type "hidden" }}
|
|
228
|
+
<input type="hidden" value="{{{ value }}}" name="{{ name }}" />
|
|
229
|
+
{{/eq}}
|
|
230
|
+
{{/each}}
|
|
231
|
+
|
|
232
|
+
<button id="{{ ../formId }}-button" data-default="{{{ button }}}" type="submit" class="flex items-center">
|
|
233
|
+
<div id="{{ ../formId }}-button-submit" class="leed-form-button-label" style="display: block;">{{{ button }}}</div>
|
|
234
|
+
<div id="{{ ../formId }}-button-sending" class="leed-form-button-label" style="display: none;">Sending ...</div>
|
|
235
|
+
<div id="{{ ../formId }}-button-email-sent" class="leed-form-button-label" style="display: none;">Email Sent!</div>
|
|
236
|
+
<div id="{{ ../formId }}-button-error" class="leed-form-button-label" style="display: none;">Try again!</div>
|
|
237
|
+
<div id="{{ ../formId }}-button-thanks" class="leed-form-button-label" style="display: none;">Thank you!</div>
|
|
238
|
+
<div id="{{ ../formId }}-button-downloading" class="leed-form-button-label leed-form-button-spinner !flex items-center" style="display: none !important;">
|
|
239
|
+
<div><i class="leed-form-spinner"></i></div>
|
|
240
|
+
<div>Downloading ...</div>
|
|
241
|
+
</div>
|
|
242
|
+
</button>
|
|
243
|
+
<div class="cf-turnstile" data-sitekey="{{ turnstileKey @root }}" style="display: none;"></div>
|
|
244
|
+
</form>
|
|
245
|
+
</div>
|
|
246
|
+
|
|
247
|
+
{{#if (eq this.autofill "linkedin") }}
|
|
248
|
+
<script src="https://www.linkedin.com/autofill/js/autofill.js" type="text/javascript" async></script>
|
|
249
|
+
<script type="IN/Form2" data-form="{{ ../formId }}"
|
|
250
|
+
{{#each fields }}
|
|
251
|
+
{{#or (eq name "firstname") (eq name "lastname") (eq name "phone") (eq name "email") (eq name "company") (eq name "title") (eq name "city") (eq name "state") (eq name "country") }}
|
|
252
|
+
data-field-{{ this.name }}="{{ fieldId ../../formId }}"
|
|
253
|
+
{{/or}}
|
|
254
|
+
{{#if (eq name "postalcode") }}
|
|
255
|
+
data-field-zip="{{ fieldId ../../formId }}"
|
|
256
|
+
{{/if}}
|
|
257
|
+
{{/each}}
|
|
258
|
+
></script>
|
|
259
|
+
{{/if}}
|
|
260
|
+
|
|
261
|
+
{{#if leedAutofill }}
|
|
262
|
+
<script>leedAutofill('{{ ../formId }}');</script>
|
|
263
|
+
{{/if}}
|
|
264
|
+
|
|
265
|
+
<!-- Leed Form generated by https://leed.ai -->
|
|
266
|
+
{{/with}}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{{#if (templateExists "header-includes.hbs") }}
|
|
2
|
+
{{> header-includes }}
|
|
3
|
+
{{/if}}
|
|
4
|
+
<!-- Start headers generated by https://leed.ai -->
|
|
5
|
+
|
|
6
|
+
{{#if this.leedSiteEnv.env.css.usingTailwind }}
|
|
7
|
+
{{!--
|
|
8
|
+
Split into a preload hint and a plain stylesheet rather than the combined
|
|
9
|
+
`rel="preload stylesheet"`. Loading priority is unchanged, but the dev server's
|
|
10
|
+
CSS hot-reload iterates `link[rel="stylesheet"]` — an exact attribute match — so
|
|
11
|
+
the combined form matched nothing and a CSS edit never reached the browser.
|
|
12
|
+
--}}
|
|
13
|
+
<link href="{{ this.leedSiteEnv.env.css.tailwindCSSPath }}" rel="preload" as="style">
|
|
14
|
+
<link href="{{ this.leedSiteEnv.env.css.tailwindCSSPath }}" rel="stylesheet">
|
|
15
|
+
<!-- TailwindCSS generated by https://leed.ai -->
|
|
16
|
+
{{/if}}
|
|
17
|
+
|
|
18
|
+
{{> leed/metadata/siteMetadata }}
|
|
19
|
+
|
|
20
|
+
{{> leed/metadata/twitterCard }}
|
|
21
|
+
|
|
22
|
+
{{> leed/metadata/ogCard }}
|
|
23
|
+
|
|
24
|
+
{{{ JSON-LD }}}
|
|
25
|
+
|
|
26
|
+
{{! https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preload }}
|
|
27
|
+
<script>
|
|
28
|
+
const pid = "{{ this.uniquePageId }}";
|
|
29
|
+
const pt = "{{ this.pageTypeId }}";
|
|
30
|
+
{{!-- Lunr only (#329). The search index is a BUILD-TIME concern of the prebuilt
|
|
31
|
+
Lunr index and nothing else: live search resolves its searchable universe
|
|
32
|
+
server-side from `pt` and fetches its filter facets from /api/search/facets,
|
|
33
|
+
so it needs no index id, no page-type list, and no republish to pick up an
|
|
34
|
+
index edit. --}}
|
|
35
|
+
{{#unless (hasFeature "docsLiveSearch") }}
|
|
36
|
+
{{#if documentationConfiguration.searchIndexId }}
|
|
37
|
+
const searchIndexId = "{{ documentationConfiguration.searchIndexId }}";
|
|
38
|
+
const searchIndexHash = "{{ searchIndexHash }}";
|
|
39
|
+
const searchDocumentsHash = "{{ searchDocumentHash }}";
|
|
40
|
+
{{/if}}
|
|
41
|
+
{{/unless}}
|
|
42
|
+
</script>
|
|
43
|
+
{{!-- find new versions here https://cdnjs.com/ --}}
|
|
44
|
+
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.16.3/cdn.min.js"></script>
|
|
45
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.8/js.cookie.min.js"></script>
|
|
46
|
+
<script src="{{ this.leedSiteEnv.env.javascript.zoomableJS }}"></script>
|
|
47
|
+
<script src="{{ this.leedSiteEnv.env.javascript.fingerprintJS }}"></script>
|
|
48
|
+
<script src="{{ this.leedSiteEnv.env.javascript.privacyJS }}"></script>
|
|
49
|
+
<script src="{{ this.leedSiteEnv.env.javascript.timerJS }}"></script>
|
|
50
|
+
<script src="{{ this.leedSiteEnv.env.javascript.trackerJS }}"></script>
|
|
51
|
+
{{!-- In-page WebMCP registration (#294): only loaded when the site has MCP enabled. --}}
|
|
52
|
+
{{#if entitlements.mcp }}
|
|
53
|
+
<script defer src="{{ this.leedSiteEnv.env.javascript.webmcpJS }}"></script>
|
|
54
|
+
{{/if}}
|
|
55
|
+
<script src="{{ this.leedSiteEnv.env.javascript.leedUtilsJS }}"></script>
|
|
56
|
+
<script src="{{ this.leedSiteEnv.env.javascript.documentationJS }}"></script>
|
|
57
|
+
{{#if (hasFeature "docsLiveSearch") }}
|
|
58
|
+
<script src="{{ this.leedSiteEnv.env.javascript.liveSearchJS }}"></script>
|
|
59
|
+
{{else}}
|
|
60
|
+
<script src="{{ this.leedSiteEnv.env.javascript.searchJS }}"></script>
|
|
61
|
+
{{/if}}
|
|
62
|
+
{{#if @root/deployment/public/turnstilePublicKey }}
|
|
63
|
+
<script defer src="https://challenges.cloudflare.com/turnstile/v0/api.js"></script>
|
|
64
|
+
{{/if}}
|
|
65
|
+
|
|
66
|
+
{{> leed/docs/style }}
|
|
67
|
+
<!-- End of headers generated by https://leed.ai -->
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{{! Usage for leed/menu/builder ... name of the must be passed in, class names are optional }}
|
|
2
|
+
{{!
|
|
3
|
+
Main menu template
|
|
4
|
+
usage: {{> leed/menu/builder menuName="top" menuClass="..." submenuClass="..." onClick="..." \}\}
|
|
5
|
+
@param {string} menuName - The name of the menu to render (e.g., "top")
|
|
6
|
+
@param {string} [menuClass] - Optional CSS class for the main menu
|
|
7
|
+
@param {string} [submenuClass] - Optional CSS class for submenus
|
|
8
|
+
@param {string} [onClick] - Optional onClick handler for menu items
|
|
9
|
+
@param {string} [instance] - Optional instance identifier for analytics
|
|
10
|
+
@param {boolean} [expanded] - Optional boolean to default expand the menu
|
|
11
|
+
}}
|
|
12
|
+
|
|
13
|
+
{{#with (lookup menu menuName) }}
|
|
14
|
+
<!-- Start menu -->
|
|
15
|
+
<ul role="menu" aria-label="{{ ../menuName }} - Navigation" class="
|
|
16
|
+
leed-menu
|
|
17
|
+
leed-menu-{{ ../menuName }}
|
|
18
|
+
{{ ../menuClass }}
|
|
19
|
+
"
|
|
20
|
+
data-expanded="{{ expanded }}">
|
|
21
|
+
{{#each items}}
|
|
22
|
+
{{> leed/menu/item
|
|
23
|
+
item=this
|
|
24
|
+
menuName=../../menuName
|
|
25
|
+
submenuClass=../../submenuClass
|
|
26
|
+
onClick=../../onClick
|
|
27
|
+
instance=../../instance
|
|
28
|
+
submenuLevel=1
|
|
29
|
+
isSubmenuItem=false
|
|
30
|
+
expanded=../expanded
|
|
31
|
+
}}
|
|
32
|
+
{{/each}}
|
|
33
|
+
</ul>
|
|
34
|
+
<!-- Leed '{{ ../menuName }}' Menu generated by https://leed.ai -->
|
|
35
|
+
{{/with}}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{{!
|
|
2
|
+
Menu item template (recursive)
|
|
3
|
+
@param {Object} item - The menu item object
|
|
4
|
+
@param {string} menuName - The name of the parent menu
|
|
5
|
+
@param {string} [submenuClass] - Optional CSS class for submenus
|
|
6
|
+
@param {string} [onClick] - Optional onClick handler for menu items
|
|
7
|
+
@param {string} [instance] - Optional instance identifier for analytics
|
|
8
|
+
@param {number} [submenuLevel] - which level this item is located
|
|
9
|
+
@param {string} [isSubmenuItem] - top level or sub menu
|
|
10
|
+
@param {boolean} [expanded] - Optional boolean to default expand the menu
|
|
11
|
+
}}
|
|
12
|
+
|
|
13
|
+
{{!-- Skip items with nothing to show: a link to an unpublished page, and a folder whose
|
|
14
|
+
every entry is hidden. An item renders its submenu only when a child renders, so a
|
|
15
|
+
published link whose children are all unpublished shows no empty list or toggle. --}}
|
|
16
|
+
{{#isFalsey item.disabled}}
|
|
17
|
+
{{#if (menuItemShouldRender item)}}
|
|
18
|
+
<li role="menuitem"
|
|
19
|
+
{{#if (menuItemHasVisibleChildren item)}}
|
|
20
|
+
aria-haspopup="menu"
|
|
21
|
+
aria-controls="submenu-{{ item.menuItemId }}"
|
|
22
|
+
{{#or expanded item.expanded }}
|
|
23
|
+
data-expanded="true"
|
|
24
|
+
aria-expanded="true"
|
|
25
|
+
{{/or}}
|
|
26
|
+
{{/if}}
|
|
27
|
+
class="
|
|
28
|
+
{{#if isSubmenuItem}}leed-submenu__item{{else}}leed-menu__item{{/if}}
|
|
29
|
+
"
|
|
30
|
+
data-id="{{ item.menuItemId }}"
|
|
31
|
+
{{#if (menuItemHasVisibleChildren item)}}data-submenu-id="submenu-{{ item.menuItemId }}"{{/if}}>
|
|
32
|
+
|
|
33
|
+
{{> leed/menu/link
|
|
34
|
+
item=item
|
|
35
|
+
menuName=menuName
|
|
36
|
+
onClick=onClick
|
|
37
|
+
instance=instance
|
|
38
|
+
isSubmenuItem=isSubmenuItem
|
|
39
|
+
}}
|
|
40
|
+
|
|
41
|
+
{{#if (menuItemHasVisibleChildren item)}}
|
|
42
|
+
<ul role="menu" class="
|
|
43
|
+
leed-submenu
|
|
44
|
+
leed-submenu--level-{{submenuLevel}}
|
|
45
|
+
{{submenuClass}}
|
|
46
|
+
"
|
|
47
|
+
id="submenu-{{ item.menuItemId }}"
|
|
48
|
+
{{#or expanded item.expanded}}aria-hidden="false"{{/or}}>
|
|
49
|
+
{{#each item.submenu}}
|
|
50
|
+
{{#isFalsey this.disabled }}
|
|
51
|
+
{{> leed/menu/item
|
|
52
|
+
item=this
|
|
53
|
+
menuName=../menuName
|
|
54
|
+
submenuClass=../submenuClass
|
|
55
|
+
onClick=../onClick
|
|
56
|
+
instance=../instance
|
|
57
|
+
submenuLevel=(add ../submenuLevel 1)
|
|
58
|
+
isSubmenuItem=true
|
|
59
|
+
expanded=(or ../expanded ../item.expanded)
|
|
60
|
+
}}
|
|
61
|
+
{{/isFalsey}}
|
|
62
|
+
{{/each}}
|
|
63
|
+
</ul>
|
|
64
|
+
{{/if}}
|
|
65
|
+
</li>
|
|
66
|
+
{{/if}}
|
|
67
|
+
{{/isFalsey}}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{{!
|
|
2
|
+
Menu link template
|
|
3
|
+
@param {Object} item - The menu item object
|
|
4
|
+
@param {string} menuName - The name of the parent menu
|
|
5
|
+
@param {string} [menuClass] - Optional CSS class for menu items
|
|
6
|
+
@param {string} [onClick] - Optional onClick handler for menu items
|
|
7
|
+
@param {string} [instance] - Optional instance identifier for analytics
|
|
8
|
+
@param {string} [isSubmenuItem] - top level or sub menu
|
|
9
|
+
}}
|
|
10
|
+
|
|
11
|
+
{{!-- Open the correct tag. Render a real <a> only when the href resolves —
|
|
12
|
+
pageid: links to unpublished pages fall through to the no-link wrapper
|
|
13
|
+
so parents with children still render their submenu. --}}
|
|
14
|
+
{{#if (hrefIsRenderable item.href)}}
|
|
15
|
+
<a
|
|
16
|
+
href="{{ item.href }}"
|
|
17
|
+
data-reason="utm_campaign=leed&utm_source=menu&utm_medium={{ menuName }}&utm_term={{item.menuItemId}}{{#if instance}}-{{instance}}{{/if}}&utm_content={{ stripTags item.name }}"
|
|
18
|
+
class="leed-menu__item--wrapper {{#if isSubmenuItem}}leed-submenu__item--link{{else}}leed-menu__item--link{{/if}}"
|
|
19
|
+
{{#if item.target}}
|
|
20
|
+
target="{{ item.target }}"
|
|
21
|
+
{{/if}}
|
|
22
|
+
{{#if onClick}}
|
|
23
|
+
{{{ onClick }}}
|
|
24
|
+
{{/if}}
|
|
25
|
+
{{#if item.title}}
|
|
26
|
+
title="{{ item.title }}"
|
|
27
|
+
{{/if}}
|
|
28
|
+
>
|
|
29
|
+
{{else}}
|
|
30
|
+
<div class="leed-menu__item--wrapper {{#if isSubmenuItem}}leed-submenu__item--no-link{{else}}leed-menu__item--no-link{{/if}}">
|
|
31
|
+
{{/if}}
|
|
32
|
+
|
|
33
|
+
{{!-- This goes in both types of tags --}}
|
|
34
|
+
{{#if item.image }}
|
|
35
|
+
<div class="leed-menu__item--image">
|
|
36
|
+
{{{ ImageTag item.image }}}
|
|
37
|
+
</div>
|
|
38
|
+
{{/if}}
|
|
39
|
+
|
|
40
|
+
<span class="leed-menu__item--text">
|
|
41
|
+
{{#if item.icon}}
|
|
42
|
+
<i class="leed-menu__item--icon {{ item.icon }}"{{#if item.iconStyle}} style="{{ item.iconStyle }}"{{/if}}></i>
|
|
43
|
+
{{/if}}
|
|
44
|
+
<span class="leed-menu__item--name">{{{ item.name }}}{{#if item.target}} <i class="leed-menu__item--leave"></i>{{/if}}</span>
|
|
45
|
+
{{#if (menuItemHasVisibleChildren item) }}
|
|
46
|
+
<i class="leed-menu__item--toggle" aria-hidden="true"></i>
|
|
47
|
+
{{/if}}
|
|
48
|
+
</span>
|
|
49
|
+
|
|
50
|
+
{{#if item.description}}
|
|
51
|
+
<div class="leed-menu__item--description">{{{ item.description }}}</div>
|
|
52
|
+
{{/if}}
|
|
53
|
+
|
|
54
|
+
{{!-- Close the correct tag (must mirror the open decision above). --}}
|
|
55
|
+
{{#if (hrefIsRenderable item.href)}}
|
|
56
|
+
</a>
|
|
57
|
+
{{else}}
|
|
58
|
+
</div>
|
|
59
|
+
{{/if}}
|