@rocket/js 0.0.0 → 0.1.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 +21 -0
- package/README.md +224 -2
- package/dist-types/exports/MainMenu.d.ts +2 -0
- package/dist-types/exports/MainMenu.d.ts.map +1 -0
- package/dist-types/exports/PageData.d.ts +2 -0
- package/dist-types/exports/PageData.d.ts.map +1 -0
- package/dist-types/exports/RocketCodeBlock.d.ts +2 -0
- package/dist-types/exports/RocketCodeBlock.d.ts.map +1 -0
- package/dist-types/exports/RocketIcon.d.ts +2 -0
- package/dist-types/exports/RocketIcon.d.ts.map +1 -0
- package/dist-types/exports/RocketJsDemo.d.ts +2 -0
- package/dist-types/exports/RocketJsDemo.d.ts.map +1 -0
- package/dist-types/exports/RocketRequestDemo.d.ts +2 -0
- package/dist-types/exports/RocketRequestDemo.d.ts.map +1 -0
- package/dist-types/exports/SocialPreviewPlayground.d.ts +2 -0
- package/dist-types/exports/SocialPreviewPlayground.d.ts.map +1 -0
- package/dist-types/exports/adapters/netlify.d.ts +2 -0
- package/dist-types/exports/adapters/netlify.d.ts.map +1 -0
- package/dist-types/exports/asyncMessage.d.ts +2 -0
- package/dist-types/exports/asyncMessage.d.ts.map +1 -0
- package/dist-types/exports/component-hydration.d.ts +2 -0
- package/dist-types/exports/component-hydration.d.ts.map +1 -0
- package/dist-types/exports/components/web-awesome.d.ts +3 -0
- package/dist-types/exports/components/web-awesome.d.ts.map +1 -0
- package/dist-types/exports/components.d.ts +2 -0
- package/dist-types/exports/components.d.ts.map +1 -0
- package/dist-types/exports/config.d.ts +2 -0
- package/dist-types/exports/config.d.ts.map +1 -0
- package/dist-types/exports/debounce.d.ts +2 -0
- package/dist-types/exports/debounce.d.ts.map +1 -0
- package/dist-types/exports/define/RocketCodeBlock.d.ts +2 -0
- package/dist-types/exports/define/RocketCodeBlock.d.ts.map +1 -0
- package/dist-types/exports/define/RocketIcon.d.ts +2 -0
- package/dist-types/exports/define/RocketIcon.d.ts.map +1 -0
- package/dist-types/exports/define/RocketJsDemo.d.ts +2 -0
- package/dist-types/exports/define/RocketJsDemo.d.ts.map +1 -0
- package/dist-types/exports/define/RocketRequestDemo.d.ts +2 -0
- package/dist-types/exports/define/RocketRequestDemo.d.ts.map +1 -0
- package/dist-types/exports/define/menus.d.ts +2 -0
- package/dist-types/exports/define/menus.d.ts.map +1 -0
- package/dist-types/exports/extractCode.d.ts +2 -0
- package/dist-types/exports/extractCode.d.ts.map +1 -0
- package/dist-types/exports/globalData.d.ts +2 -0
- package/dist-types/exports/globalData.d.ts.map +1 -0
- package/dist-types/exports/hydration/hydrationLoader.d.ts +2 -0
- package/dist-types/exports/hydration/hydrationLoader.d.ts.map +1 -0
- package/dist-types/exports/icons.d.ts +2 -0
- package/dist-types/exports/icons.d.ts.map +1 -0
- package/dist-types/exports/layout-helper.d.ts +2 -0
- package/dist-types/exports/layout-helper.d.ts.map +1 -0
- package/dist-types/exports/layout.d.ts +2 -0
- package/dist-types/exports/layout.d.ts.map +1 -0
- package/dist-types/exports/layouts/atlasDoc.d.ts +2 -0
- package/dist-types/exports/layouts/atlasDoc.d.ts.map +1 -0
- package/dist-types/exports/layouts/atlasHero.d.ts +2 -0
- package/dist-types/exports/layouts/atlasHero.d.ts.map +1 -0
- package/dist-types/exports/layouts/atlasNotFound.d.ts +2 -0
- package/dist-types/exports/layouts/atlasNotFound.d.ts.map +1 -0
- package/dist-types/exports/loaded-page-module.d.ts +2 -0
- package/dist-types/exports/loaded-page-module.d.ts.map +1 -0
- package/dist-types/exports/markdownHook.d.ts +2 -0
- package/dist-types/exports/markdownHook.d.ts.map +1 -0
- package/dist-types/exports/menu.d.ts +2 -0
- package/dist-types/exports/menu.d.ts.map +1 -0
- package/dist-types/exports/menus.d.ts +6 -0
- package/dist-types/exports/menus.d.ts.map +1 -0
- package/dist-types/exports/page-runtime.d.ts +2 -0
- package/dist-types/exports/page-runtime.d.ts.map +1 -0
- package/dist-types/exports/pages.d.ts +2 -0
- package/dist-types/exports/pages.d.ts.map +1 -0
- package/dist-types/exports/resolve.d.ts +2 -0
- package/dist-types/exports/resolve.d.ts.map +1 -0
- package/dist-types/exports/ssr.d.ts +2 -0
- package/dist-types/exports/ssr.d.ts.map +1 -0
- package/dist-types/exports/standalone-demo-url.d.ts +2 -0
- package/dist-types/exports/standalone-demo-url.d.ts.map +1 -0
- package/dist-types/exports/transform.d.ts +2 -0
- package/dist-types/exports/transform.d.ts.map +1 -0
- package/dist-types/exports/types/hydration.d.ts +23 -0
- package/dist-types/exports/types/hydration.d.ts.map +1 -0
- package/dist-types/exports/types/rocket.d.ts +504 -0
- package/dist-types/exports/types/rocket.d.ts.map +1 -0
- package/dist-types/exports/types.d.ts +3 -0
- package/dist-types/exports/types.d.ts.map +1 -0
- package/dist-types/exports/wds-plugin.d.ts +2 -0
- package/dist-types/exports/wds-plugin.d.ts.map +1 -0
- package/dist-types/src/PageData.d.ts +82 -0
- package/dist-types/src/PageData.d.ts.map +1 -0
- package/dist-types/src/RocketCodeBlock.d.ts +64 -0
- package/dist-types/src/RocketCodeBlock.d.ts.map +1 -0
- package/dist-types/src/RocketIcon.d.ts +35 -0
- package/dist-types/src/RocketIcon.d.ts.map +1 -0
- package/dist-types/src/RocketJsDemo.d.ts +59 -0
- package/dist-types/src/RocketJsDemo.d.ts.map +1 -0
- package/dist-types/src/RocketJsDemo.test-browser.d.ts +3 -0
- package/dist-types/src/RocketJsDemo.test-browser.d.ts.map +1 -0
- package/dist-types/src/RocketRequestDemo.d.ts +57 -0
- package/dist-types/src/RocketRequestDemo.d.ts.map +1 -0
- package/dist-types/src/RocketRequestDemo.test-browser.d.ts +3 -0
- package/dist-types/src/RocketRequestDemo.test-browser.d.ts.map +1 -0
- package/dist-types/src/SocialPreviewPlayground.d.ts +102 -0
- package/dist-types/src/SocialPreviewPlayground.d.ts.map +1 -0
- package/dist-types/src/adapters/netlify.d.ts +54 -0
- package/dist-types/src/adapters/netlify.d.ts.map +1 -0
- package/dist-types/src/asyncMessage.d.ts +14 -0
- package/dist-types/src/asyncMessage.d.ts.map +1 -0
- package/dist-types/src/cli/RocketBuild.d.ts +78 -0
- package/dist-types/src/cli/RocketBuild.d.ts.map +1 -0
- package/dist-types/src/cli/RocketCli.d.ts +17 -0
- package/dist-types/src/cli/RocketCli.d.ts.map +1 -0
- package/dist-types/src/cli/RocketInit.d.ts +22 -0
- package/dist-types/src/cli/RocketInit.d.ts.map +1 -0
- package/dist-types/src/cli/RocketStart.d.ts +13 -0
- package/dist-types/src/cli/RocketStart.d.ts.map +1 -0
- package/dist-types/src/cli/cli.d.ts +3 -0
- package/dist-types/src/cli/cli.d.ts.map +1 -0
- package/dist-types/src/component-hydration.d.ts +26 -0
- package/dist-types/src/component-hydration.d.ts.map +1 -0
- package/dist-types/src/components/FeatureList.d.ts +15 -0
- package/dist-types/src/components/FeatureList.d.ts.map +1 -0
- package/dist-types/src/components/Footer.d.ts +17 -0
- package/dist-types/src/components/Footer.d.ts.map +1 -0
- package/dist-types/src/components/Header.d.ts +6 -0
- package/dist-types/src/components/Header.d.ts.map +1 -0
- package/dist-types/src/components/RocketDrawer.d.ts +20 -0
- package/dist-types/src/components/RocketDrawer.d.ts.map +1 -0
- package/dist-types/src/components/RocketSocialLink.d.ts +30 -0
- package/dist-types/src/components/RocketSocialLink.d.ts.map +1 -0
- package/dist-types/src/components.d.ts +5 -0
- package/dist-types/src/components.d.ts.map +1 -0
- package/dist-types/src/config.d.ts +6 -0
- package/dist-types/src/config.d.ts.map +1 -0
- package/dist-types/src/debounce.d.ts +8 -0
- package/dist-types/src/debounce.d.ts.map +1 -0
- package/dist-types/src/defaultSocialPreviewTemplate.d.ts +31 -0
- package/dist-types/src/defaultSocialPreviewTemplate.d.ts.map +1 -0
- package/dist-types/src/development-page-module-loader.d.ts +15 -0
- package/dist-types/src/development-page-module-loader.d.ts.map +1 -0
- package/dist-types/src/extractCode.d.ts +5 -0
- package/dist-types/src/extractCode.d.ts.map +1 -0
- package/dist-types/src/hydration/evaluate.d.ts +20 -0
- package/dist-types/src/hydration/evaluate.d.ts.map +1 -0
- package/dist-types/src/hydration/extractStrategies.d.ts +5 -0
- package/dist-types/src/hydration/extractStrategies.d.ts.map +1 -0
- package/dist-types/src/hydration/hydrationLoader.d.ts +64 -0
- package/dist-types/src/hydration/hydrationLoader.d.ts.map +1 -0
- package/dist-types/src/icons.d.ts +170 -0
- package/dist-types/src/icons.d.ts.map +1 -0
- package/dist-types/src/layouts/atlas/atlasDocLayout.d.ts +45 -0
- package/dist-types/src/layouts/atlas/atlasDocLayout.d.ts.map +1 -0
- package/dist-types/src/layouts/atlas/atlasHeroLayout.d.ts +7 -0
- package/dist-types/src/layouts/atlas/atlasHeroLayout.d.ts.map +1 -0
- package/dist-types/src/layouts/atlas/atlasNotFoundLayout.d.ts +5 -0
- package/dist-types/src/layouts/atlas/atlasNotFoundLayout.d.ts.map +1 -0
- package/dist-types/src/layouts/layout-helper.d.ts +16 -0
- package/dist-types/src/layouts/layout-helper.d.ts.map +1 -0
- package/dist-types/src/layouts/layout.d.ts +9 -0
- package/dist-types/src/layouts/layout.d.ts.map +1 -0
- package/dist-types/src/loaded-page-module.d.ts +51 -0
- package/dist-types/src/loaded-page-module.d.ts.map +1 -0
- package/dist-types/src/main.d.ts +2 -0
- package/dist-types/src/main.d.ts.map +1 -0
- package/dist-types/src/markdownCompiler.d.ts +22 -0
- package/dist-types/src/markdownCompiler.d.ts.map +1 -0
- package/dist-types/src/markdownHook.d.ts +6 -0
- package/dist-types/src/markdownHook.d.ts.map +1 -0
- package/dist-types/src/menu.d.ts +22 -0
- package/dist-types/src/menu.d.ts.map +1 -0
- package/dist-types/src/menus/MainMenu.d.ts +23 -0
- package/dist-types/src/menus/MainMenu.d.ts.map +1 -0
- package/dist-types/src/menus/RocketMenu.d.ts +23 -0
- package/dist-types/src/menus/RocketMenu.d.ts.map +1 -0
- package/dist-types/src/menus/RocketNextPage.d.ts +18 -0
- package/dist-types/src/menus/RocketNextPage.d.ts.map +1 -0
- package/dist-types/src/menus/RocketPreviousPage.d.ts +18 -0
- package/dist-types/src/menus/RocketPreviousPage.d.ts.map +1 -0
- package/dist-types/src/menus/RocketToc.d.ts +54 -0
- package/dist-types/src/menus/RocketToc.d.ts.map +1 -0
- package/dist-types/src/menus/pageNavigation.d.ts +41 -0
- package/dist-types/src/menus/pageNavigation.d.ts.map +1 -0
- package/dist-types/src/page-pagination.d.ts +69 -0
- package/dist-types/src/page-pagination.d.ts.map +1 -0
- package/dist-types/src/page-runtime.d.ts +110 -0
- package/dist-types/src/page-runtime.d.ts.map +1 -0
- package/dist-types/src/pages.d.ts +10 -0
- package/dist-types/src/pages.d.ts.map +1 -0
- package/dist-types/src/publicAssets.d.ts +70 -0
- package/dist-types/src/publicAssets.d.ts.map +1 -0
- package/dist-types/src/requestDemoMetadata.d.ts +19 -0
- package/dist-types/src/requestDemoMetadata.d.ts.map +1 -0
- package/dist-types/src/resolve.d.ts +7 -0
- package/dist-types/src/resolve.d.ts.map +1 -0
- package/dist-types/src/siteDiscoverability.d.ts +33 -0
- package/dist-types/src/siteDiscoverability.d.ts.map +1 -0
- package/dist-types/src/siteHeadMetadata.d.ts +20 -0
- package/dist-types/src/siteHeadMetadata.d.ts.map +1 -0
- package/dist-types/src/socialPreviewImages.d.ts +186 -0
- package/dist-types/src/socialPreviewImages.d.ts.map +1 -0
- package/dist-types/src/socialPreviewTemplatePreview.d.ts +22 -0
- package/dist-types/src/socialPreviewTemplatePreview.d.ts.map +1 -0
- package/dist-types/src/ssr.d.ts +6 -0
- package/dist-types/src/ssr.d.ts.map +1 -0
- package/dist-types/src/standalone-demo-url.d.ts +60 -0
- package/dist-types/src/standalone-demo-url.d.ts.map +1 -0
- package/dist-types/src/static-page-module-loader.d.ts +15 -0
- package/dist-types/src/static-page-module-loader.d.ts.map +1 -0
- package/dist-types/src/transform.d.ts +10 -0
- package/dist-types/src/transform.d.ts.map +1 -0
- package/dist-types/src/urlLifecycle.d.ts +23 -0
- package/dist-types/src/urlLifecycle.d.ts.map +1 -0
- package/dist-types/src/wds-plugin.d.ts +14 -0
- package/dist-types/src/wds-plugin.d.ts.map +1 -0
- package/docs/assets/home-background.svg +1 -0
- package/docs/assets/prism-one-light.css +368 -0
- package/docs/assets/rocket-logo-dark-with-text-below.svg +8 -0
- package/docs/assets/rocket-logo-dark-with-text.svg +7 -0
- package/docs/assets/rocket-logo-dark.svg +7 -0
- package/docs/assets/rocket-logo-light-with-text-below.svg +14 -0
- package/docs/assets/rocket-logo-light-with-text.svg +13 -0
- package/docs/assets/rocket-logo-light.svg +12 -0
- package/docs/assets/rocket-text-no-logo.svg +3 -0
- package/exports/MainMenu.js +1 -0
- package/exports/PageData.js +1 -0
- package/exports/RocketCodeBlock.js +1 -0
- package/exports/RocketIcon.js +1 -0
- package/exports/RocketJsDemo.js +1 -0
- package/exports/RocketRequestDemo.js +1 -0
- package/exports/SocialPreviewPlayground.js +1 -0
- package/exports/adapters/netlify.js +1 -0
- package/exports/asyncMessage.js +1 -0
- package/exports/component-hydration.js +1 -0
- package/exports/components/web-awesome.js +63 -0
- package/exports/components.js +1 -0
- package/exports/config.js +1 -0
- package/exports/debounce.js +1 -0
- package/exports/define/RocketCodeBlock.js +2 -0
- package/exports/define/RocketIcon.js +3 -0
- package/exports/define/RocketJsDemo.js +5 -0
- package/exports/define/RocketRequestDemo.js +5 -0
- package/exports/define/menus.js +14 -0
- package/exports/extractCode.js +1 -0
- package/exports/globalData.js +1 -0
- package/exports/hydration/hydrationLoader.js +1 -0
- package/exports/icons.js +8 -0
- package/exports/layout-helper.js +1 -0
- package/exports/layout.js +1 -0
- package/exports/layouts/_atlas.css +3 -0
- package/exports/layouts/atlasDoc.js +5 -0
- package/exports/layouts/atlasHero.js +1 -0
- package/exports/layouts/atlasNotFound.js +4 -0
- package/exports/loaded-page-module.js +5 -0
- package/exports/markdownHook.js +4 -0
- package/exports/menu.js +4 -0
- package/exports/menus.js +5 -0
- package/exports/page-runtime.js +5 -0
- package/exports/pages.js +1 -0
- package/exports/resolve.js +1 -0
- package/exports/ssr.js +1 -0
- package/exports/standalone-demo-url.js +10 -0
- package/exports/transform.js +1 -0
- package/exports/types/hydration.ts +26 -0
- package/exports/types/rocket.ts +598 -0
- package/exports/types.ts +71 -0
- package/exports/wds-plugin.js +1 -0
- package/package.json +192 -9
- package/src/PageData.js +244 -0
- package/src/RocketCodeBlock.js +516 -0
- package/src/RocketIcon.js +291 -0
- package/src/RocketJsDemo.js +397 -0
- package/src/RocketJsDemo.test-browser.js +228 -0
- package/src/RocketRequestDemo.js +439 -0
- package/src/RocketRequestDemo.test-browser.js +301 -0
- package/src/SocialPreviewPlayground.js +573 -0
- package/src/adapters/netlify.js +814 -0
- package/src/asyncMessage.js +21 -0
- package/src/cli/RocketBuild.js +545 -0
- package/src/cli/RocketCli.js +47 -0
- package/src/cli/RocketInit.js +323 -0
- package/src/cli/RocketStart.js +79 -0
- package/src/cli/cli.js +7 -0
- package/src/component-hydration.js +86 -0
- package/src/components/FeatureList.js +114 -0
- package/src/components/Footer.js +116 -0
- package/src/components/Header.js +122 -0
- package/src/components/RocketDrawer.js +193 -0
- package/src/components/RocketSocialLink.js +128 -0
- package/src/components/assets/discord.svg +7 -0
- package/src/components/assets/github.svg +4 -0
- package/src/components/assets/gitlab.svg +1 -0
- package/src/components/assets/info.txt +1 -0
- package/src/components/assets/license.svg +3 -0
- package/src/components/assets/npm.svg +5 -0
- package/src/components/assets/slack.svg +5 -0
- package/src/components/assets/telegram.svg +4 -0
- package/src/components/assets/twitter.svg +1 -0
- package/src/components.js +15 -0
- package/src/config.js +319 -0
- package/src/debounce.js +21 -0
- package/src/defaultSocialPreviewTemplate.js +118 -0
- package/src/development-page-module-loader.js +29 -0
- package/src/extractCode.js +41 -0
- package/src/hydration/evaluate.js +54 -0
- package/src/hydration/extractStrategies.js +91 -0
- package/src/hydration/hydrationLoader.js +330 -0
- package/src/icons.js +883 -0
- package/src/layouts/atlas/atlasDoc.css +877 -0
- package/src/layouts/atlas/atlasDocLayout.js +288 -0
- package/src/layouts/atlas/atlasHero.css +774 -0
- package/src/layouts/atlas/atlasHeroLayout.js +346 -0
- package/src/layouts/atlas/atlasNotFound.css +365 -0
- package/src/layouts/atlas/atlasNotFoundLayout.js +69 -0
- package/src/layouts/layout-helper.js +92 -0
- package/src/layouts/layout.js +62 -0
- package/src/loaded-page-module.js +97 -0
- package/src/main.js +55 -0
- package/src/markdownCompiler.js +303 -0
- package/src/markdownHook.js +148 -0
- package/src/menu.js +210 -0
- package/src/menus/MainMenu.js +58 -0
- package/src/menus/RocketMenu.js +191 -0
- package/src/menus/RocketNextPage.js +25 -0
- package/src/menus/RocketPreviousPage.js +29 -0
- package/src/menus/RocketToc.js +309 -0
- package/src/menus/pageNavigation.js +285 -0
- package/src/page-pagination.js +241 -0
- package/src/page-runtime.js +481 -0
- package/src/pages.js +537 -0
- package/src/publicAssets.js +336 -0
- package/src/requestDemoMetadata.js +97 -0
- package/src/resolve.js +15 -0
- package/src/siteDiscoverability.js +184 -0
- package/src/siteHeadMetadata.js +69 -0
- package/src/socialPreviewImages.js +482 -0
- package/src/socialPreviewTemplatePreview.js +352 -0
- package/src/ssr.js +14 -0
- package/src/standalone-demo-url.js +134 -0
- package/src/static-page-module-loader.js +29 -0
- package/src/transform.js +633 -0
- package/src/urlLifecycle.js +57 -0
- package/src/wds-plugin.js +302 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { LitElement, html, css } from 'lit';
|
|
2
|
+
|
|
3
|
+
/** @typedef {import('@rocket/js/types.js').FooterSection} FooterSection */
|
|
4
|
+
|
|
5
|
+
export class Footer extends LitElement {
|
|
6
|
+
static properties = {
|
|
7
|
+
data: { type: Array },
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
/** @type {FooterSection[]} */
|
|
13
|
+
this.data = [];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** @param {FooterSection} section */
|
|
17
|
+
renderSection(section) {
|
|
18
|
+
return html`
|
|
19
|
+
<nav>
|
|
20
|
+
<h3>${section.title}</h3>
|
|
21
|
+
<ul>
|
|
22
|
+
${section.links.map(link => html`<li><a href=${link.href}>${link.text}</a></li>`)}
|
|
23
|
+
</ul>
|
|
24
|
+
</nav>
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
render() {
|
|
29
|
+
return html`
|
|
30
|
+
<footer class="main-footer">
|
|
31
|
+
<div class="footer-menu">${this.data?.map(section => this.renderSection(section))}</div>
|
|
32
|
+
</footer>
|
|
33
|
+
`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static styles = [
|
|
37
|
+
css`
|
|
38
|
+
.main-footer {
|
|
39
|
+
margin-top: 112px;
|
|
40
|
+
border-top: 1px solid #edf1f6;
|
|
41
|
+
background-color: #f8fafc;
|
|
42
|
+
color: var(--primary-text-color);
|
|
43
|
+
padding: 30px 0 32px;
|
|
44
|
+
display: flex;
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
align-items: center;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.footer-menu {
|
|
50
|
+
display: flex;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
gap: clamp(2.5rem, 7vw, 5.5rem);
|
|
53
|
+
flex-direction: row;
|
|
54
|
+
max-width: 1200px;
|
|
55
|
+
width: 100%;
|
|
56
|
+
padding: 0 20px;
|
|
57
|
+
text-align: center;
|
|
58
|
+
flex-wrap: wrap;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.footer-menu nav {
|
|
62
|
+
min-width: 150px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.footer-menu nav h3 {
|
|
66
|
+
margin: 0 0 10px;
|
|
67
|
+
color: var(--primary-text-color-dark);
|
|
68
|
+
font-size: 0.9rem;
|
|
69
|
+
font-weight: 700;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.footer-menu ul {
|
|
73
|
+
list-style: none;
|
|
74
|
+
margin: 0;
|
|
75
|
+
padding: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.footer-menu li {
|
|
79
|
+
margin-bottom: 4px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.footer-menu a {
|
|
83
|
+
text-decoration: none;
|
|
84
|
+
color: var(--secondary-text-color, #4b5563);
|
|
85
|
+
padding: 5px 0;
|
|
86
|
+
display: block;
|
|
87
|
+
font-size: 0.84rem;
|
|
88
|
+
font-weight: 400;
|
|
89
|
+
line-height: 1.4;
|
|
90
|
+
transition: opacity 0.2s;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.footer-menu a:hover {
|
|
94
|
+
opacity: 0.7;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@media (max-width: 768px) {
|
|
98
|
+
.footer-menu {
|
|
99
|
+
flex-direction: column;
|
|
100
|
+
align-items: center;
|
|
101
|
+
padding: 0 10px;
|
|
102
|
+
gap: 1.5rem;
|
|
103
|
+
text-align: center;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
nav {
|
|
107
|
+
width: 100%;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.footer-menu a {
|
|
111
|
+
padding: 7px 0;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`,
|
|
115
|
+
];
|
|
116
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { css, html, LitElement } from 'lit';
|
|
2
|
+
|
|
3
|
+
export class Header extends LitElement {
|
|
4
|
+
render() {
|
|
5
|
+
return html`
|
|
6
|
+
<header>
|
|
7
|
+
<div id="content-area">
|
|
8
|
+
<slot name="logo"></slot>
|
|
9
|
+
<slot name="search"></slot>
|
|
10
|
+
<slot id="content"></slot>
|
|
11
|
+
<slot name="mobile-menu"></slot>
|
|
12
|
+
<slot name="navigation"></slot>
|
|
13
|
+
<slot name="social"></slot>
|
|
14
|
+
</div>
|
|
15
|
+
</header>
|
|
16
|
+
`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static styles = [
|
|
20
|
+
css`
|
|
21
|
+
header {
|
|
22
|
+
padding: 20px 0;
|
|
23
|
+
position: sticky;
|
|
24
|
+
top: 0;
|
|
25
|
+
--shadow-color-dark: 220 3% 15%;
|
|
26
|
+
box-shadow:
|
|
27
|
+
0 3px 5px -2px hsl(var(--shadow-color-dark) / 4%),
|
|
28
|
+
0 7px 14px -5px hsl(var(--shadow-color-dark) / 6%);
|
|
29
|
+
background-color: hsl(0 0% 100% / 0.6);
|
|
30
|
+
backdrop-filter: blur(20px);
|
|
31
|
+
-webkit-backdrop-filter: blur(20px);
|
|
32
|
+
z-index: 999;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
#content-area {
|
|
36
|
+
max-height: 30px;
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
justify-content: space-between;
|
|
40
|
+
max-width: 1200px;
|
|
41
|
+
margin: 0 auto;
|
|
42
|
+
padding: 0 20px;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
slot[name='logo']::slotted(*) {
|
|
46
|
+
margin-right: auto;
|
|
47
|
+
}
|
|
48
|
+
slot[name='social']::slotted(*) {
|
|
49
|
+
margin-right: 15px;
|
|
50
|
+
}
|
|
51
|
+
slot[name='social']::slotted(*:last-child) {
|
|
52
|
+
margin-right: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
slot[name='social'],
|
|
56
|
+
slot[name='logo'],
|
|
57
|
+
slot[name='search'],
|
|
58
|
+
slot[name='navigation'] {
|
|
59
|
+
display: flex;
|
|
60
|
+
}
|
|
61
|
+
slot[name='navigation'] {
|
|
62
|
+
align-items: center;
|
|
63
|
+
margin-left: auto;
|
|
64
|
+
margin-right: 28px;
|
|
65
|
+
}
|
|
66
|
+
slot[name='mobile-menu'] {
|
|
67
|
+
display: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#content {
|
|
71
|
+
height: 30px;
|
|
72
|
+
display: flex;
|
|
73
|
+
justify-content: space-between;
|
|
74
|
+
align-items: center;
|
|
75
|
+
margin-right: auto;
|
|
76
|
+
}
|
|
77
|
+
#content::slotted(a) {
|
|
78
|
+
text-decoration: none;
|
|
79
|
+
color: var(--primary-text-color);
|
|
80
|
+
transition: color 0.3s ease-in-out;
|
|
81
|
+
font-weight: bold;
|
|
82
|
+
}
|
|
83
|
+
#content::slotted(a:hover),
|
|
84
|
+
#content::slotted(a[aria-current='page']) {
|
|
85
|
+
color: var(--primary-color);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@media (max-width: 768px) {
|
|
89
|
+
slot[name='social'] {
|
|
90
|
+
display: flex;
|
|
91
|
+
}
|
|
92
|
+
slot[name='social']::slotted(*:nth-of-type(n + 3)) {
|
|
93
|
+
display: none;
|
|
94
|
+
}
|
|
95
|
+
slot[name='social']::slotted(*:nth-of-type(n + 2)) {
|
|
96
|
+
margin-right: 0;
|
|
97
|
+
}
|
|
98
|
+
:host([hide-social-mobile]) slot[name='social'] {
|
|
99
|
+
display: none;
|
|
100
|
+
}
|
|
101
|
+
slot[name='navigation'] {
|
|
102
|
+
display: none;
|
|
103
|
+
}
|
|
104
|
+
slot[name='mobile-menu'] {
|
|
105
|
+
display: flex;
|
|
106
|
+
order: 1;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
:host([hide-logo]) slot[name='logo'] {
|
|
111
|
+
visibility: hidden;
|
|
112
|
+
}
|
|
113
|
+
:host([no-background]) {
|
|
114
|
+
background-color: transparent;
|
|
115
|
+
box-shadow: none;
|
|
116
|
+
}
|
|
117
|
+
:host([not-sticky]) header {
|
|
118
|
+
position: static;
|
|
119
|
+
}
|
|
120
|
+
`,
|
|
121
|
+
];
|
|
122
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { LitElement, html, css } from 'lit';
|
|
2
|
+
|
|
3
|
+
export class RocketDrawer extends LitElement {
|
|
4
|
+
static properties = {
|
|
5
|
+
open: { type: Boolean, reflect: true },
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.open = false;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
connectedCallback() {
|
|
14
|
+
super.connectedCallback();
|
|
15
|
+
this._onDocClick = this._onDocClick.bind(this);
|
|
16
|
+
document.addEventListener('click', this._onDocClick, { capture: true });
|
|
17
|
+
}
|
|
18
|
+
disconnectedCallback() {
|
|
19
|
+
document.removeEventListener('click', this._onDocClick, { capture: true });
|
|
20
|
+
super.disconnectedCallback();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
render() {
|
|
24
|
+
return html`
|
|
25
|
+
<slot name="invoker">
|
|
26
|
+
<button
|
|
27
|
+
class="burger-menu"
|
|
28
|
+
@click=${this.toggle}
|
|
29
|
+
aria-expanded=${this.open ? 'true' : 'false'}
|
|
30
|
+
aria-label=${this.open ? 'Close menu' : 'Open menu'}
|
|
31
|
+
title=${this.open ? 'Close menu' : 'Open menu'}
|
|
32
|
+
>
|
|
33
|
+
<span class="sr-only">${this.open ? 'Close Menu' : 'Show Menu'}</span>
|
|
34
|
+
${this.open ? this.#iconClose() : this.#iconBurger()}
|
|
35
|
+
</button>
|
|
36
|
+
</slot>
|
|
37
|
+
|
|
38
|
+
<dialog ?open=${this.open} id="rd-dialog">
|
|
39
|
+
<div id="content">
|
|
40
|
+
<slot></slot>
|
|
41
|
+
</div>
|
|
42
|
+
</dialog>
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Close when clicking anywhere outside the dialog or the invoker
|
|
47
|
+
/**
|
|
48
|
+
* @param {any} ev
|
|
49
|
+
*/
|
|
50
|
+
_onDocClick(ev) {
|
|
51
|
+
if (!this.open) return;
|
|
52
|
+
const path = ev.composedPath();
|
|
53
|
+
const dlg = this.shadowRoot?.getElementById('rd-dialog');
|
|
54
|
+
const invoker = this.shadowRoot?.querySelector('slot[name="invoker"]');
|
|
55
|
+
|
|
56
|
+
const clickInsideDialog = path.includes(dlg);
|
|
57
|
+
const clickOnInvoker =
|
|
58
|
+
path.includes(invoker) ||
|
|
59
|
+
path.some((/** @type {{ assignedSlot: Element | null | undefined; }} */ n) => {
|
|
60
|
+
if (n?.assignedSlot && n.assignedSlot === invoker) return true;
|
|
61
|
+
return false;
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
if (!clickInsideDialog && !clickOnInvoker) this.close();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
close() {
|
|
68
|
+
this.open = false;
|
|
69
|
+
}
|
|
70
|
+
toggle() {
|
|
71
|
+
this.open = !this.open;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#iconBurger() {
|
|
75
|
+
return html`<svg
|
|
76
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
77
|
+
fill="none"
|
|
78
|
+
viewBox="0 0 24 24"
|
|
79
|
+
stroke-width="1.5"
|
|
80
|
+
stroke="currentColor"
|
|
81
|
+
class="icon"
|
|
82
|
+
>
|
|
83
|
+
<path
|
|
84
|
+
stroke-linecap="round"
|
|
85
|
+
stroke-linejoin="round"
|
|
86
|
+
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
|
87
|
+
/>
|
|
88
|
+
</svg>`;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
#iconClose() {
|
|
92
|
+
return html`<svg
|
|
93
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
94
|
+
fill="none"
|
|
95
|
+
viewBox="0 0 24 24"
|
|
96
|
+
stroke-width="1.5"
|
|
97
|
+
stroke="currentColor"
|
|
98
|
+
class="icon"
|
|
99
|
+
>
|
|
100
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
|
|
101
|
+
</svg>`;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
static styles = css`
|
|
105
|
+
:host {
|
|
106
|
+
display: block;
|
|
107
|
+
--rd-text-1: #2c3e50;
|
|
108
|
+
--rd-ease-3: cubic-bezier(0.25, 0, 0.3, 1);
|
|
109
|
+
--rd-target-width: 80%;
|
|
110
|
+
}
|
|
111
|
+
* {
|
|
112
|
+
box-sizing: border-box;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.burger-menu {
|
|
116
|
+
background: none;
|
|
117
|
+
border: none;
|
|
118
|
+
padding: 0;
|
|
119
|
+
margin: 0;
|
|
120
|
+
line-height: 0;
|
|
121
|
+
cursor: pointer;
|
|
122
|
+
color: var(--rd-text-1);
|
|
123
|
+
position: relative;
|
|
124
|
+
z-index: 101;
|
|
125
|
+
}
|
|
126
|
+
.icon {
|
|
127
|
+
width: 2.3rem;
|
|
128
|
+
display: block;
|
|
129
|
+
transition: transform 0.2s ease;
|
|
130
|
+
}
|
|
131
|
+
.burger-menu[aria-expanded='true'] .icon {
|
|
132
|
+
transform: rotate(90deg);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
dialog {
|
|
136
|
+
display: block;
|
|
137
|
+
position: fixed;
|
|
138
|
+
top: 0;
|
|
139
|
+
right: 0;
|
|
140
|
+
left: auto;
|
|
141
|
+
height: 100vh;
|
|
142
|
+
width: 0;
|
|
143
|
+
margin: 0;
|
|
144
|
+
padding: 0;
|
|
145
|
+
border: none;
|
|
146
|
+
color: var(--rd-text-1);
|
|
147
|
+
box-shadow: -4px 0 16px rgba(0, 0, 0, 0.35);
|
|
148
|
+
z-index: 100;
|
|
149
|
+
overflow: hidden;
|
|
150
|
+
opacity: 0;
|
|
151
|
+
pointer-events: none;
|
|
152
|
+
transition:
|
|
153
|
+
width 0.35s var(--rd-ease-3),
|
|
154
|
+
opacity 0.35s var(--rd-ease-3);
|
|
155
|
+
will-change: width;
|
|
156
|
+
}
|
|
157
|
+
dialog[open] {
|
|
158
|
+
width: var(--rd-target-width);
|
|
159
|
+
opacity: 1;
|
|
160
|
+
pointer-events: auto;
|
|
161
|
+
}
|
|
162
|
+
dialog::backdrop {
|
|
163
|
+
background: rgba(0, 0, 0, 0.4);
|
|
164
|
+
transition: opacity 0.35s var(--rd-ease-3);
|
|
165
|
+
opacity: 0;
|
|
166
|
+
}
|
|
167
|
+
dialog[open]::backdrop {
|
|
168
|
+
opacity: 1;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#content {
|
|
172
|
+
height: 100%;
|
|
173
|
+
padding: 1rem;
|
|
174
|
+
max-width: var(--rd-target-width);
|
|
175
|
+
overflow-y: auto;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@media (prefers-reduced-motion: reduce) {
|
|
179
|
+
dialog,
|
|
180
|
+
dialog::backdrop {
|
|
181
|
+
transition: none;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
.sr-only {
|
|
185
|
+
position: absolute;
|
|
186
|
+
left: -10000px;
|
|
187
|
+
top: auto;
|
|
188
|
+
width: 1px;
|
|
189
|
+
height: 1px;
|
|
190
|
+
overflow: hidden;
|
|
191
|
+
}
|
|
192
|
+
`;
|
|
193
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { LitElement, html, css } from 'lit';
|
|
3
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @param {string} brandName
|
|
7
|
+
* @returns {import('lit/directive.js').DirectiveResult}
|
|
8
|
+
*/
|
|
9
|
+
function getIcon(brandName) {
|
|
10
|
+
const brand = brandName.toLowerCase();
|
|
11
|
+
const fileContent = readFileSync(new URL(`./assets/${brand}.svg`, import.meta.url), 'utf8');
|
|
12
|
+
return unsafeHTML(fileContent.toString());
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export class RocketSocialLink extends LitElement {
|
|
16
|
+
static properties = {
|
|
17
|
+
url: { type: String },
|
|
18
|
+
name: { type: String },
|
|
19
|
+
label: { type: String },
|
|
20
|
+
ariaLabel: { type: String, attribute: 'aria-label' },
|
|
21
|
+
siteName: { type: String },
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
this.url = '';
|
|
27
|
+
this.name = '';
|
|
28
|
+
this.label = '';
|
|
29
|
+
this.ariaLabel = '';
|
|
30
|
+
this.siteName = '';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
get accessibleLabel() {
|
|
34
|
+
if (this.ariaLabel) {
|
|
35
|
+
return this.ariaLabel;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const destination = this.siteName ? `${this.siteName} on ${this.name}` : this.name;
|
|
39
|
+
return this.label ? `${this.label}: ${destination}` : destination;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
render() {
|
|
43
|
+
return html`
|
|
44
|
+
<a
|
|
45
|
+
class="social-link"
|
|
46
|
+
href="${this.url}"
|
|
47
|
+
aria-label="${this.accessibleLabel}"
|
|
48
|
+
rel="noopener noreferrer"
|
|
49
|
+
target="_blank"
|
|
50
|
+
slot="social"
|
|
51
|
+
>
|
|
52
|
+
<span class="icon" aria-hidden="true">${getIcon(this.name)}</span>
|
|
53
|
+
${this.label ? html`<span class="label">${this.label}</span>` : html``}
|
|
54
|
+
</a>
|
|
55
|
+
`;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static styles = [
|
|
59
|
+
css`
|
|
60
|
+
:host {
|
|
61
|
+
display: inline-block;
|
|
62
|
+
height: var(--rocket-social-link-height, 30px);
|
|
63
|
+
--rocket-social-link-color: var(--primary-text-color);
|
|
64
|
+
--rocket-social-link-hover-color: var(--primary-color);
|
|
65
|
+
--rocket-social-link-icon-size: 30px;
|
|
66
|
+
--rocket-social-link-label-font-size: 0.95rem;
|
|
67
|
+
--rocket-social-link-label-font-weight: 600;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.social-link {
|
|
71
|
+
display: inline-flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
gap: var(--rocket-social-link-gap, 0.45rem);
|
|
74
|
+
height: 100%;
|
|
75
|
+
color: var(--rocket-social-link-color);
|
|
76
|
+
line-height: 1;
|
|
77
|
+
text-decoration: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.icon {
|
|
81
|
+
display: inline-flex;
|
|
82
|
+
flex: 0 0 auto;
|
|
83
|
+
width: var(--rocket-social-link-icon-size);
|
|
84
|
+
height: var(--rocket-social-link-icon-size);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.social-link svg {
|
|
88
|
+
color: var(--rocket-social-link-icon-color, var(--rocket-social-link-color));
|
|
89
|
+
display: block;
|
|
90
|
+
width: 100%;
|
|
91
|
+
height: 100%;
|
|
92
|
+
transition: color 0.2s ease-in-out;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.label {
|
|
96
|
+
color: var(--rocket-social-link-label-color, var(--rocket-social-link-color));
|
|
97
|
+
font-size: var(--rocket-social-link-label-font-size);
|
|
98
|
+
font-weight: var(--rocket-social-link-label-font-weight);
|
|
99
|
+
line-height: 1.2;
|
|
100
|
+
transition: color 0.2s ease-in-out;
|
|
101
|
+
white-space: nowrap;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.social-link:hover svg {
|
|
105
|
+
color: var(--rocket-social-link-hover-color);
|
|
106
|
+
transform: scale(1.04);
|
|
107
|
+
transition: transform 0.2s ease-in-out;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.social-link:hover .label {
|
|
111
|
+
color: var(--rocket-social-link-hover-color);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
:host([dark-background]) svg {
|
|
115
|
+
color: #fff;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
:host([dark-background]) .label {
|
|
119
|
+
color: #fff;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
:host([dark-background]) .social-link:hover svg,
|
|
123
|
+
:host([dark-background]) .social-link:hover .label {
|
|
124
|
+
color: var(--primary-text-color);
|
|
125
|
+
}
|
|
126
|
+
`,
|
|
127
|
+
];
|
|
128
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor">
|
|
2
|
+
<title>Discord</title>
|
|
3
|
+
<path
|
|
4
|
+
d="m3.58 21.196h14.259l-.681-2.205 1.629 1.398 1.493 1.338 2.72 2.273v-21.525c-.068-1.338-1.22-2.475-2.648-2.475l-16.767.003c-1.427 0-2.585 1.139-2.585 2.477v16.24c0 1.411 1.156 2.476 2.58 2.476zm10.548-15.513-.033.012.012-.012zm-7.631 1.269c1.833-1.334 3.532-1.27 3.532-1.27l.137.135c-2.243.535-3.26 1.537-3.26 1.537s.272-.133.747-.336c3.021-1.188 6.32-1.102 9.374.402 0 0-1.019-.937-3.124-1.537l.186-.183c.291.001 1.831.055 3.479 1.26 0 0 1.844 3.15 1.844 7.02-.061-.074-1.144 1.666-3.931 1.726 0 0-.472-.534-.808-1 1.63-.468 2.24-1.404 2.24-1.404-.535.337-1.023.537-1.419.737-.609.268-1.219.4-1.828.535-2.884.468-4.503-.315-6.033-.936l-.523-.266s.609.936 2.174 1.404c-.411.469-.818 1.002-.818 1.002-2.786-.066-3.802-1.806-3.802-1.806 0-3.876 1.833-7.02 1.833-7.02z"></path>
|
|
5
|
+
<path d="m14.308 12.771c.711 0 1.29-.6 1.29-1.34 0-.735-.576-1.335-1.29-1.335v.003c-.708 0-1.288.598-1.29 1.338 0 .734.579 1.334 1.29 1.334z"></path>
|
|
6
|
+
<path d="m9.69 12.771c.711 0 1.29-.6 1.29-1.34 0-.735-.575-1.335-1.286-1.335l-.004.003c-.711 0-1.29.598-1.29 1.338 0 .734.579 1.334 1.29 1.334z"></path>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 17 16" fill="none">
|
|
2
|
+
<title>GitHub</title>
|
|
3
|
+
<path fill="currentColor" fill-rule="evenodd" d="M8.18391.249268C3.82241.249268.253906 3.81777.253906 8.17927c0 3.46933 2.279874 6.44313 5.451874 7.53353.3965.0991.49563-.1983.49563-.3965v-1.3878c-2.18075.4956-2.67638-.9912-2.67638-.9912-.3965-.8922-.89212-1.1895-.89212-1.1895-.69388-.4957.09912-.4957.09912-.4957.793.0992 1.1895.793 1.1895.793.69388 1.2887 1.88338.8922 2.27988.6939.09912-.4956.29737-.8921.49562-1.0904-1.78425-.1982-3.5685-.8921-3.5685-3.96496 0-.89212.29738-1.586.793-2.08162-.09912-.19825-.3965-.99125.09913-2.08163 0 0 .69387-.19825 2.18075.793.59475-.19825 1.28862-.29737 1.9825-.29737.69387 0 1.38775.09912 1.98249.29737 1.4869-.99125 2.1808-.793 2.1808-.793.3965 1.09038.1982 1.88338.0991 2.08163.4956.59475.793 1.28862.793 2.08162 0 3.07286-1.8834 3.66766-3.66764 3.86586.29737.3965.59474.8921.59474 1.586v2.1808c0 .1982.0991.4956.5948.3965 3.172-1.0904 5.4518-4.0642 5.4518-7.53353-.0991-4.3615-3.6676-7.930002-8.02909-7.930002z" clip-rule="evenodd"></path>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><title>GitLab</title><path fill="currentColor" d="M 38.011719 4 C 37.574219 3.996094 37.183594 4.273438 37.046875 4.691406 L 32.074219 20 L 17.925781 20 L 12.953125 4.691406 C 12.820313 4.289063 12.449219 4.011719 12.023438 4 C 11.597656 3.992188 11.214844 4.25 11.0625 4.648438 L 5.070313 20.640625 C 5.066406 20.640625 5.066406 20.644531 5.0625 20.648438 L 2.0625 28.648438 C 1.90625 29.070313 2.046875 29.542969 2.414063 29.808594 L 24.40625 45.800781 L 24.410156 45.808594 C 24.414063 45.808594 24.414063 45.808594 24.414063 45.8125 C 24.425781 45.820313 24.441406 45.828125 24.453125 45.835938 C 24.46875 45.84375 24.480469 45.855469 24.496094 45.863281 C 24.5 45.863281 24.5 45.867188 24.503906 45.867188 C 24.503906 45.867188 24.507813 45.871094 24.511719 45.871094 C 24.515625 45.875 24.519531 45.878906 24.527344 45.878906 C 24.53125 45.882813 24.539063 45.886719 24.542969 45.890625 C 24.5625 45.898438 24.585938 45.910156 24.609375 45.917969 C 24.609375 45.917969 24.609375 45.917969 24.609375 45.921875 C 24.632813 45.929688 24.65625 45.9375 24.675781 45.945313 C 24.679688 45.945313 24.679688 45.945313 24.683594 45.949219 C 24.699219 45.953125 24.714844 45.957031 24.734375 45.964844 C 24.742188 45.964844 24.75 45.96875 24.761719 45.96875 C 24.761719 45.972656 24.761719 45.972656 24.761719 45.96875 C 24.78125 45.976563 24.800781 45.980469 24.820313 45.984375 C 24.847656 45.988281 24.871094 45.992188 24.898438 45.996094 C 24.9375 45.996094 24.980469 46 25.019531 46 C 25.058594 45.996094 25.09375 45.996094 25.128906 45.988281 C 25.144531 45.988281 25.15625 45.988281 25.171875 45.984375 C 25.171875 45.984375 25.175781 45.984375 25.179688 45.984375 C 25.1875 45.980469 25.191406 45.980469 25.199219 45.980469 C 25.203125 45.980469 25.207031 45.976563 25.214844 45.976563 C 25.222656 45.972656 25.234375 45.972656 25.242188 45.96875 C 25.257813 45.964844 25.269531 45.960938 25.28125 45.957031 C 25.289063 45.957031 25.292969 45.957031 25.296875 45.953125 C 25.300781 45.953125 25.304688 45.953125 25.308594 45.953125 C 25.324219 45.945313 25.34375 45.9375 25.359375 45.933594 C 25.378906 45.925781 25.394531 45.917969 25.410156 45.910156 C 25.414063 45.910156 25.414063 45.910156 25.417969 45.90625 C 25.421875 45.90625 25.425781 45.90625 25.429688 45.902344 C 25.4375 45.898438 25.445313 45.894531 25.453125 45.890625 C 25.476563 45.878906 25.496094 45.867188 25.515625 45.855469 C 25.523438 45.851563 25.527344 45.847656 25.53125 45.84375 C 25.535156 45.84375 25.539063 45.839844 25.542969 45.839844 C 25.558594 45.828125 25.574219 45.820313 25.589844 45.808594 L 25.597656 45.796875 L 47.589844 29.808594 C 47.953125 29.542969 48.09375 29.070313 47.9375 28.648438 L 44.945313 20.675781 C 44.941406 20.667969 44.9375 20.65625 44.9375 20.648438 L 38.9375 4.648438 C 38.789063 4.261719 38.425781 4.003906 38.011719 4 Z M 11.933594 8.027344 L 15.824219 20 L 7.445313 20 Z M 38.066406 8.027344 L 42.558594 20 L 34.175781 20 Z M 8.066406 22 L 16.472656 22 L 22.328125 40.015625 Z M 18.578125 22 L 31.421875 22 L 25 41.765625 Z M 33.527344 22 L 41.933594 22 L 27.671875 40.015625 Z M 6.3125 23.007813 L 19.6875 39.902344 L 4.203125 28.640625 Z M 43.6875 23.007813 L 45.796875 28.640625 L 30.3125 39.902344 Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from https://github.com/edent/SuperTinyIcons
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg aria-hidden="true" fill="currentColor" height="16" viewBox="0 0 16 16" version="1.1" width="16">
|
|
2
|
+
<path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
2
|
+
aria-label="npm" role="img"
|
|
3
|
+
viewBox="0 0 512 512"><path
|
|
4
|
+
d="m0 0H512V512H0"
|
|
5
|
+
fill="#fff"/><path fill="none" stroke="#cb3837" stroke-width="22" d="M234 311H447V199H65V311H178V210 333h78M133 232v68m112-68v45m45-67v90m67-68v79h45v-79"/></svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 123" fill="currentColor">
|
|
2
|
+
<title>Slack</title>
|
|
3
|
+
<path stroke="none" stroke-width="1" stroke-dasharray="none" stroke-linecap="butt" stroke-dashoffset="0" stroke-linejoin="miter" stroke-miterlimit="4" fill-rule="nonzero"
|
|
4
|
+
d="M26.4 78.2c0 7.1-5.8 12.9-12.9 12.9S.6 85.3.6 78.2c0-7.1 5.8-12.9 12.9-12.9h12.9v12.9zm6.5 0c0-7.1 5.8-12.9 12.9-12.9s12.9 5.8 12.9 12.9v32.3c0 7.1-5.8 12.9-12.9 12.9s-12.9-5.8-12.9-12.9V78.2zm12.9-51.8c-7.1 0-12.9-5.8-12.9-12.9S38.7.6 45.8.6s12.9 5.8 12.9 12.9v12.9H45.8zm0 6.5c7.1 0 12.9 5.8 12.9 12.9s-5.8 12.9-12.9 12.9H13.5C6.4 58.7.6 52.9.6 45.8s5.8-12.9 12.9-12.9h32.3zM97.6 45.8c0-7.1 5.8-12.9 12.9-12.9 7.1 0 12.9 5.8 12.9 12.9s-5.8 12.9-12.9 12.9H97.6V45.8zm-6.5 0c0 7.1-5.8 12.9-12.9 12.9-7.1 0-12.9-5.8-12.9-12.9V13.5C65.3 6.4 71.1.6 78.2.6c7.1 0 12.9 5.8 12.9 12.9v32.3zM78.2 97.6c7.1 0 12.9 5.8 12.9 12.9 0 7.1-5.8 12.9-12.9 12.9-7.1 0-12.9-5.8-12.9-12.9V97.6h12.9zm0-6.5c-7.1 0-12.9-5.8-12.9-12.9 0-7.1 5.8-12.9 12.9-12.9h32.3c7.1 0 12.9 5.8 12.9 12.9 0 7.1-5.8 12.9-12.9 12.9H78.2z"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 54" fill="currentColor">
|
|
2
|
+
<path d="M-.2.1h53.8v53.4H-.2z" fill="none"/>
|
|
3
|
+
<path d="M49.7 16.5c1.3 3.1 2 6.3 2 9.7s-.7 6.6-2 9.7c-1.3 3.1-3.1 5.7-5.3 8-2.2 2.2-4.9 4-8 5.3-3.1 1.3-6.3 2-9.7 2-3.4 0-6.6-.7-9.7-2s-5.7-3.1-8-5.3c-2.2-2.2-4-4.9-5.3-8-1.3-3.1-2-6.3-2-9.7s.7-6.6 2-9.7c1.3-3.1 3.1-5.7 5.3-8 2.2-2.2 4.9-4 8-5.3s6.3-2 9.7-2c3.4 0 6.6.7 9.7 2 3.1 1.3 5.7 3.1 8 5.3 2.2 2.3 3.9 5 5.3 8zM34.8 37.7l4.1-19.3c.2-.8.1-1.4-.3-1.8-.4-.4-.8-.4-1.4-.2l-24.1 9.3c-.5.2-.9.4-1.1.7-.2.3-.2.5-.1.7.1.2.4.4.9.5l6.2 1.9 14.3-9c.4-.3.7-.3.9-.2.1.1.1.2-.1.4L22.5 31.3l-.5 6.4c.4 0 .8-.2 1.3-.6l3-2.9 6.2 4.6c1.3.7 2 .3 2.3-1.1z"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 274 223"><title>Twitter</title><path d="M85.98 223c-31.675 0-61.158-9.285-85.98-25.199 4.388.518 8.853.783 13.38.783 26.278 0 50.463-8.967 69.659-24.01-24.544-.453-45.258-16.669-52.395-38.953a56.014 56.014 0 0 0 10.552 1.006c5.116 0 10.071-.685 14.778-1.967-25.66-5.152-44.993-27.822-44.993-54.998 0-.236 0-.471.004-.705a55.865 55.865 0 0 0 25.406 7.015c-15.05-10.058-24.953-27.226-24.953-46.685 0-10.279 2.766-19.914 7.594-28.198 27.664 33.934 68.993 56.264 115.609 58.603a56.31 56.31 0 0 1-1.453-12.782c0-30.975 25.114-56.088 56.091-56.088 16.132 0 30.709 6.812 40.941 17.713a112.328 112.328 0 0 0 35.617-13.611c-4.188 13.097-13.081 24.089-24.662 31.031a112.148 112.148 0 0 0 32.215-8.832 114 114 0 0 1-27.988 29.035c.108 2.405.162 4.824.162 7.256C245.564 137.533 189.148 223 85.98 223" fill="currentColor"/></svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { resolve } from '@rocket/js/resolve.js';
|
|
2
|
+
import { createComponentHydration } from './component-hydration.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @param {import('@rocket/js/types.js').Components} components
|
|
6
|
+
*/
|
|
7
|
+
export const parseComponents = createComponentHydration({
|
|
8
|
+
loadComponentModule(file) {
|
|
9
|
+
return import(file);
|
|
10
|
+
},
|
|
11
|
+
resolveBrowserImport(file) {
|
|
12
|
+
return resolve(file, import.meta);
|
|
13
|
+
},
|
|
14
|
+
hydrationLoaderSpecifier: '@rocket/js/hydration/hydrationLoader.js',
|
|
15
|
+
});
|