WIP update examples/docs/

This commit is contained in:
Okiki 2021-08-14 00:58:00 +00:00 committed by Fred K. Schott
parent 59cc62f7bd
commit b7ada11ddb
45 changed files with 2066 additions and 1091 deletions

View file

@ -8,6 +8,10 @@
// @ts-check // @ts-check
export default /** @type {import('astro').AstroUserConfig} */ ({ export default /** @type {import('astro').AstroUserConfig} */ ({
// Enable the Preact renderer to support Preact JSX components. renderers: [
renderers: ['@astrojs/renderer-preact'], // Enable the Preact renderer to support Preact JSX components.
'@astrojs/renderer-preact',
// Enable the React renderer, for the Algolia search component
'@astrojs/renderer-react',
],
}); });

View file

@ -8,10 +8,21 @@
"build": "astro build", "build": "astro build",
"preview": "astro preview" "preview": "astro preview"
}, },
"dependencies": {
"@docsearch/react": "^1.0.0-alpha.27"
},
"devDependencies": { "devDependencies": {
"astro": "^0.20.0" "astro": "^0.20.0",
"@snowpack/plugin-dotenv": "^2.1.0"
}, },
"snowpack": { "snowpack": {
"alias": {
"components": "./src/components",
"~": "./src"
},
"plugins": [
"@snowpack/plugin-dotenv"
],
"workspaceRoot": "../.." "workspaceRoot": "../.."
} }
} }

View file

@ -8,148 +8,89 @@
opacity: 0.7; opacity: 0.7;
} }
.token.atrule { .token.plain-text,
color: #c792ea; [class*='language-bash'] span.token,
[class*='language-shell'] span.token {
color: hsla(var(--color-gray-90), 1);
} }
.token.attr-name { [class*='language-bash'] span.token,
color: #ffcb6b; [class*='language-shell'] span.token {
font-style: bold;
} }
.token.attr-value { .token.prolog,
color: #a5e844; .token.comment,
} [class*='language-bash'] span.token.comment,
[class*='language-shell'] span.token.comment {
.token.attribute { color: hsla(var(--color-gray-70), 1);
color: #a5e844;
}
.token.boolean {
color: #c792ea;
}
.token.builtin {
color: #ffcb6b;
}
.token.cdata {
color: #80cbc4;
}
.token.char {
color: #80cbc4;
}
.token.class {
color: #ffcb6b;
}
.token.class-name {
color: #f2ff00;
}
.token.comment {
color: #616161;
}
.token.constant {
color: #c792ea;
} }
.token.selector,
.token.tag,
.token.unit,
.token.url,
.token.variable,
.token.entity,
.token.deleted { .token.deleted {
color: #ff6666; color: #fa5e5b;
} }
.token.doctype { .token.boolean,
color: #616161; .token.constant,
.token.doctype,
.token.number,
.token.regex,
.token.builtin,
.token.class,
.token.hexcode,
.token.class-name,
.token.attr-name {
color: hsla(var(--color-yellow), 1);
} }
.token.entity { .token.atrule,
color: #ff6666; .token.attribute,
} .token.attr-value .token.punctuation,
.token.attr-value,
.token.function { .token.pseudo-class,
color: #c792ea; .token.pseudo-element,
} .token.string {
color: hsla(var(--color-green), 1);
.token.hexcode {
color: #f2ff00;
}
.token.id {
color: #c792ea;
font-weight: bold;
} }
.token.symbol,
.token.function,
.token.id,
.token.important { .token.important {
color: #c792ea; color: hsla(var(--color-blue), 1);
}
.token.important,
.token.id {
font-weight: bold; font-weight: bold;
} }
.token.cdata,
.token.char,
.token.property {
color: #23b1af;
}
.token.inserted { .token.inserted {
color: #80cbc4; color: hsla(var(--color-green), 1);
} }
.token.keyword { .token.keyword {
color: #c792ea; color: #ff657c;
} font-style: italic;
.token.number {
color: #fd9170;
} }
.token.operator { .token.operator {
color: #89ddff; color: hsla(var(--color-gray-70), 1);
}
.token.prolog {
color: #616161;
}
.token.property {
color: #80cbc4;
}
.token.pseudo-class {
color: #a5e844;
}
.token.pseudo-element {
color: #a5e844;
} }
.token.attr-value .token.attr-equals,
.token.punctuation { .token.punctuation {
color: #89ddff; color: hsla(var(--color-gray-80), 1);
}
.token.regex {
color: #f2ff00;
}
.token.selector {
color: #ff6666;
}
.token.string {
color: #a5e844;
}
.token.symbol {
color: #c792ea;
}
.token.tag {
color: #ff6666;
}
.token.unit {
color: #fd9170;
}
.token.url {
color: #ff6666;
}
.token.variable {
color: #ff6666;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 KiB

View file

@ -3,14 +3,19 @@
margin: 0; margin: 0;
} }
/* Global focus outline reset */
*:focus:not(:focus-visible) {
outline: none;
}
:root { :root {
--user-font-scale: 1rem - 16px; --user-font-scale: 1rem - 16px;
--max-width: calc(100% - 2rem); --max-width: calc(100% - 1rem);
} }
@media (min-width: 50em) { @media (min-width: 50em) {
:root { :root {
--max-width: 48em; --max-width: 46em;
} }
} }
@ -20,8 +25,9 @@ body {
min-height: 100vh; min-height: 100vh;
font-family: var(--font-body); font-family: var(--font-body);
font-size: 1rem; font-size: 1rem;
font-size: clamp(0.875rem, 0.4626rem + 1.0309vw + var(--user-font-scale), 1.125rem); font-size: clamp(0.9rem, 0.75rem + 0.375vw + var(--user-font-scale), 1rem);
line-height: 1.625; line-height: 1.5;
max-width: 100vw;
} }
nav ul { nav ul {
@ -29,18 +35,28 @@ nav ul {
padding: 0; padding: 0;
} }
.content main > * + * { .content > section > * + * {
margin-top: 1rem; margin-top: 1.25rem;
}
.content > section > :first-child {
margin-top: 0;
} }
/* Typography */ /* Typography */
:is(h1, h2, h3, h4, h5, h6) { h1,
margin-bottom: 1.38rem; h2,
font-weight: 400; h3,
line-height: 1.3; h4,
h5,
h6 {
margin-bottom: 1rem;
font-weight: bold;
line-height: 1;
} }
:is(h1, h2) { h1,
h2 {
max-width: 40ch; max-width: 40ch;
} }
@ -48,27 +64,41 @@ nav ul {
margin-top: 3rem; margin-top: 3rem;
} }
:is(h4, h5, h6):not(:first-child) {
margin-top: 2rem;
}
h1 { h1 {
font-size: clamp(2.488rem, 1.924rem + 1.41vw, 3.052rem); font-size: 3.25rem;
font-weight: 800;
} }
h2 { h2 {
font-size: clamp(2.074rem, 1.707rem + 0.9175vw, 2.441rem); font-size: 2.5rem;
} }
h3 { h3 {
font-size: clamp(1.728rem, 1.503rem + 0.5625vw, 1.953rem); font-size: 1.75rem;
} }
h4 { h4 {
font-size: clamp(1.44rem, 1.317rem + 0.3075vw, 1.563rem); font-size: 1.3rem;
} }
h5 { h5 {
font-size: clamp(1.2rem, 1.15rem + 0.125vw, 1.25rem); font-size: 1rem;
} }
p { p {
line-height: 1.65em;
}
.content ul {
line-height: 1.1em;
}
p,
.content ul {
color: var(--theme-text-light); color: var(--theme-text-light);
} }
@ -78,18 +108,52 @@ small,
} }
a { a {
color: var(--theme-accent); color: var(--theme-text-accent);
font-weight: 400; font-weight: 400;
text-underline-offset: 0.08em; text-underline-offset: 0.08em;
text-decoration: none;
display: inline-flex;
align-items: center; align-items: center;
gap: 0.5rem; gap: 0.5rem;
} }
article > section :is(ul, ol) > * + * {
margin-top: 0.75rem;
}
article > section nav :is(ul, ol) > * + * {
margin-top: inherit;
}
article > section li > :is(p, pre, blockquote):not(:first-child) {
margin-top: 1rem;
}
article > section :is(ul, ol) {
padding-left: 1em;
}
article > section nav :is(ul, ol) {
padding-left: inherit;
}
article > section nav {
margin-top: 1rem;
margin-bottom: 2rem;
}
article > section ::marker {
font-weight: bold;
color: var(--theme-text-light);
}
article > section iframe {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}
a > code:not([class*='language']) { a > code:not([class*='language']) {
position: relative; position: relative;
color: var(--theme-accent); color: var(--theme-text-accent);
background: transparent; background: transparent;
text-underline-offset: var(--padding-block); text-underline-offset: var(--padding-block);
} }
@ -123,19 +187,21 @@ strong {
} }
/* Supporting Content */ /* Supporting Content */
code {
font-family: var(--font-mono);
font-size: 0.85em;
}
code:not([class*='language']) { code:not([class*='language']) {
--border-radius: 3px; --border-radius: 3px;
--padding-block: 0.2rem; --padding-block: 0.2rem;
--padding-inline: 0.33rem; --padding-inline: 0.4rem;
color: var(--theme-code-inline-text);
font-family: var(--font-mono);
font-size: 0.85em;
color: inherit;
background-color: var(--theme-code-inline-bg); background-color: var(--theme-code-inline-bg);
padding: var(--padding-block) var(--padding-inline); padding: var(--padding-block) var(--padding-inline);
margin: calc(var(--padding-block) * -1) -0.125em; margin: calc(var(--padding-block) * -1) -0.125em;
border-radius: var(--border-radius); border-radius: var(--border-radius);
box-shadow: 0 2px 1px 0 rgba(0, 0, 0, 0.08);
} }
pre > code:not([class*='language']) { pre > code:not([class*='language']) {
@ -146,37 +212,78 @@ pre > code:not([class*='language']) {
color: inherit; color: inherit;
} }
pre > code {
font-size: 1em;
}
table,
pre { pre {
position: relative; position: relative;
background-color: var(--theme-code-bg);
color: var(--theme-code-text);
--padding-block: 1rem; --padding-block: 1rem;
--padding-inline: 2rem; --padding-inline: 2rem;
padding: var(--padding-block) var(--padding-inline); padding: var(--padding-block) var(--padding-inline);
padding-right: calc(var(--padding-inline) * 2); padding-right: calc(var(--padding-inline) * 2);
margin-left: calc(50vw - var(--padding-inline)); margin-left: calc(var(--padding-inline) * -1);
transform: translateX(-50vw); margin-right: calc(var(--padding-inline) * -1);
font-family: var(--font-mono);
line-height: 1.414; line-height: 1.5;
width: calc(100vw + 4px); font-size: 0.85em;
max-width: calc(100% + (var(--padding-inline) * 2));
overflow-y: hidden; overflow-y: hidden;
overflow-x: auto; overflow-x: auto;
} }
table {
width: 100%;
padding: var(--padding-block) 0;
margin: 0;
border-collapse: collapse;
}
/* Zebra striping */
tr:nth-of-type(odd) {
background: var(--theme-bg-hover);
}
th {
background: var(--color-black);
color: var(--theme-color);
font-weight: bold;
}
td,
th {
padding: 6px;
text-align: left;
}
pre {
background-color: var(--theme-code-bg);
color: var(--theme-code-text);
}
blockquote code:not([class*='language']) {
background-color: var(--theme-bg);
}
@media (min-width: 37.75em) { @media (min-width: 37.75em) {
pre { pre {
--padding-inline: 1.25rem; --padding-inline: 1.25rem;
border-radius: 8px; border-radius: 8px;
margin-left: 0;
margin-right: 0;
} }
} }
blockquote { blockquote {
margin: 2rem 0; margin: 2rem 0;
padding: 0.5em 1rem; padding: 1.25em 1.5rem;
border-left: 3px solid rgba(0, 0, 0, 0.35); border-left: 3px solid var(--theme-text-light);
background-color: rgba(0, 0, 0, 0.05); background-color: var(--theme-bg-offset);
border-radius: 0 0.25rem 0.25rem 0; border-radius: 0 0.25rem 0.25rem 0;
line-height: 1.7;
}
img {
max-width: 100%;
} }
.flex { .flex {
@ -197,92 +304,43 @@ button {
align-items: center; align-items: center;
gap: 0.25em; gap: 0.25em;
border-radius: 99em; border-radius: 99em;
background-color: var(--theme-bg); color: var(--theme-text);
}
button:hover {
}
#theme-toggle {
display: flex;
align-items: center;
gap: 0.25em;
padding: 0.33em 0.67em;
margin-left: -0.67em;
margin-right: -0.67em;
border-radius: 99em;
background-color: var(--theme-bg); background-color: var(--theme-bg);
} }
#theme-toggle > label:focus-within { h2.heading {
outline: 2px solid transparent; font-size: 1rem;
box-shadow: 0 0 0 0.08em var(--theme-accent), 0 0 0 0.12em white; font-weight: 700;
padding: 0.1rem 1rem;
text-transform: uppercase;
margin-bottom: 0.5rem;
} }
#theme-toggle > label {
position: relative;
display: flex;
align-items: center;
justify-content: center;
opacity: 0.5;
transition: transform 120ms ease-out, opacity 120ms ease-out;
}
#theme-toggle > label:hover,
#theme-toggle > label:focus {
transform: scale(1.125);
opacity: 1;
}
#theme-toggle .checked {
color: var(--theme-accent);
transform: scale(1.125);
opacity: 1;
}
input[name='theme-toggle'] {
position: absolute;
opacity: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
}
nav h4 {
font-weight: 400;
font-size: 1.25rem;
margin: 0;
margin-bottom: 1em;
}
.edit-on-github,
.header-link { .header-link {
font-size: 1rem; font-size: 1rem;
padding-left: 1rem; padding: 0.1rem 0 0.1rem 1rem;
border-left: 4px solid var(--theme-divider); border-left: 4px solid var(--theme-divider);
} }
.edit-on-github:hover,
.edit-on-github:focus,
.header-link:hover, .header-link:hover,
.header-link:focus { .header-link:focus {
color: var(--theme-text-light);
border-left-color: var(--theme-text-lighter);
}
.header-link:focus-within {
color: var(--theme-text-light);
border-left-color: var(--theme-text-lighter);
}
.header-link.active {
border-left-color: var(--theme-accent); border-left-color: var(--theme-accent);
color: var(--theme-accent); color: var(--theme-accent);
} }
.header-link:focus-within {
.header-link.depth-2 { color: var(--theme-text-light);
font-weight: 600; border-left-color: hsla(var(--color-gray-40), 1);
}
.header-link svg {
opacity: 0.6;
}
.header-link:hover svg {
opacity: 0.8;
}
.header-link a {
display: inline-flex;
gap: 0.5em;
width: 100%;
} }
.header-link.depth-3 { .header-link.depth-3 {
@ -292,88 +350,37 @@ nav h4 {
padding-left: 3rem; padding-left: 3rem;
} }
.edit-on-github,
.header-link a { .header-link a {
font: inherit; font: inherit;
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
.edit-on-github { /* Screenreader Only Text */
margin-top: 2rem; .sr-only {
text-decoration: none; position: absolute;
} width: 1px;
.edit-on-github > * { height: 1px;
text-decoration: none; padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
} }
.nav-link { .focus\:not-sr-only:focus,
font-size: 1rem; .focus\:not-sr-only:focus-visible {
margin-bottom: 0; position: static;
transform: translateX(0); width: auto;
transition: 120ms transform ease-out; height: auto;
padding: 0;
margin: 0;
overflow: visible;
clip: auto;
white-space: normal;
} }
.nav-link:hover, :target {
.nav-link:focus { scroll-margin: calc(var(--theme-sidebar-offset, 5rem) + 2rem) 0 2rem;
color: var(--theme-text-lighter);
transform: translateX(0.25em);
} }
.nav-link:focus-within {
color: var(--theme-text-lighter);
transform: translateX(0.25em);
}
.nav-link a {
font: inherit;
color: inherit;
text-decoration: none;
}
.nav-groups {
padding-bottom: 2rem;
max-height: calc(100% - 3rem);
overflow-y: auto;
overflow-x: hidden;
}
.nav-groups > li + li {
margin-top: 2rem;
}
/* Scrollbar */
/* Firefox */
body {
scrollbar-width: thin;
scrollbar-color: var(--theme-text-lighter) var(--theme-divider);
}
/* width */
::-webkit-scrollbar {
width: 0.5rem;
}
/* Track */
::-webkit-scrollbar-track {
background: var(--theme-divider);
border-radius: 1rem;
}
/* Handle */
::-webkit-scrollbar-thumb {
background: var(--theme-text-lighter);
border-radius: 1rem;
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
background: var(--theme-text-light);
}
/* Buttons */
::-webkit-scrollbar-button {
display: none;
}
/* Scrollbar - End */

View file

@ -0,0 +1,3 @@
Array.from(document.getElementsByTagName('pre')).forEach((element) => {
element.setAttribute('tabindex', '0');
});

View file

@ -1,51 +1,81 @@
:root { :root {
--font-fallback: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji; --font-fallback: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
--font-body: system-ui, var(--font-fallback); --font-body: system-ui, var(--font-fallback);
--font-mono: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; --font-mono: 'IBM Plex Mono', Consolas, 'Andale Mono WT', 'Andale Mono', 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono',
'Liberation Mono', 'Nimbus Mono L', Monaco, 'Courier New', Courier, monospace;
--color-white: #fff; /*
--color-black: #000014; * Variables with --color-base prefix define
* the hue, and saturation values to be used for
* hsla colors.
*
* ex:
*
* --color-base-{color}: {hue}, {saturation};
*
*/
--color-gray-50: #f9fafb; --color-base-white: 0, 0%;
--color-gray-100: #f3f4f6; --color-base-black: 240, 100%;
--color-gray-200: #e5e7eb; --color-base-gray: 215, 14%;
--color-gray-300: #d1d5db; --color-base-blue: 212, 100%;
--color-gray-400: #9ca3af; --color-base-blue-dark: 212, 72%;
--color-gray-500: #6b7280; --color-base-green: 158, 79%;
--color-gray-600: #4b5563; --color-base-orange: 22, 100%;
--color-gray-700: #374151; --color-base-purple: 269, 79%;
--color-gray-800: #1f2937; --color-base-red: 351, 100%;
--color-gray-900: #111827; --color-base-yellow: 41, 100%;
--color-blue: #3894ff; /*
--color-blue-rgb: 56, 148, 255; * Color palettes are made using --color-base
--color-green: #17c083; * variables, along with a lightness value to
--color-green-rgb: 23, 192, 131; * define different variants.
--color-orange: #ff5d01; *
--color-orange-rgb: 255, 93, 1; */
--color-purple: #882de7;
--color-purple-rgb: 136, 45, 231; --color-gray-5: var(--color-base-gray), 5%;
--color-red: #ff1639; --color-gray-10: var(--color-base-gray), 10%;
--color-red-rgb: 255, 22, 57; --color-gray-20: var(--color-base-gray), 20%;
--color-yellow: #ffbe2d; --color-gray-30: var(--color-base-gray), 30%;
--color-yellow-rgb: 255, 190, 45; --color-gray-40: var(--color-base-gray), 40%;
--color-gray-50: var(--color-base-gray), 50%;
--color-gray-60: var(--color-base-gray), 60%;
--color-gray-70: var(--color-base-gray), 70%;
--color-gray-80: var(--color-base-gray), 80%;
--color-gray-90: var(--color-base-gray), 90%;
--color-gray-95: var(--color-base-gray), 95%;
--color-blue: var(--color-base-blue), 61%;
--color-blue-dark: var(--color-base-blue-dark), 39%;
--color-green: var(--color-base-green), 42%;
--color-orange: var(--color-base-orange), 50%;
--color-purple: var(--color-base-purple), 54%;
--color-red: var(--color-base-red), 54%;
--color-yellow: var(--color-base-yellow), 59%;
} }
:root { :root {
color-scheme: light; color-scheme: light;
--theme-accent: var(--color-blue); --theme-accent: hsla(var(--color-orange), 1);
--theme-accent-rgb: var(--color-blue-rgb); --theme-text-accent: hsla(var(--color-orange), 1);
--theme-accent-opacity: 0.1; --theme-accent-opacity: 0.1;
--theme-divider: var(--color-gray-100); --theme-divider: hsla(var(--color-gray-95), 1);
--theme-text: var(--color-gray-800); --theme-text: hsla(var(--color-gray-10), 1);
--theme-text-light: var(--color-gray-600); --theme-text-light: hsla(var(--color-gray-40), 1);
--theme-text-lighter: var(--color-gray-400); /* @@@: not used anywhere */
--theme-bg: var(--color-white); --theme-text-lighter: hsla(var(--color-gray-80), 1);
--theme-bg-offset: var(--color-gray-100); --theme-bg: hsla(var(--color-base-white), 100%, 1);
--theme-bg-accent: rgba(var(--theme-accent-rgb), var(--theme-accent-opacity)); --theme-bg-hover: hsla(var(--color-gray-95), 1);
--theme-code-inline-bg: var(--color-gray-100); --theme-bg-offset: hsla(var(--color-gray-90), 1);
--theme-code-text: var(--color-gray-100); --theme-bg-accent: hsla(var(--color-orange), var(--theme-accent-opacity));
--theme-code-bg: var(--color-gray-700); --theme-code-inline-bg: hsla(var(--color-gray-95), 1);
--theme-code-inline-text: var(--theme-text);
--theme-code-bg: hsla(217, 19%, 27%, 1);
--theme-code-text: hsla(var(--color-gray-95), 1);
--theme-navbar-bg: hsla(var(--color-base-white), 100%, 1);
--theme-navbar-height: 6rem;
--theme-selection-color: hsla(var(--color-orange), 1);
--theme-selection-bg: hsla(var(--color-orange), var(--theme-accent-opacity));
} }
body { body {
@ -55,19 +85,39 @@ body {
:root.theme-dark { :root.theme-dark {
color-scheme: dark; color-scheme: dark;
--theme-accent-opacity: 0.3; --theme-accent-opacity: 0.4;
--theme-divider: var(--color-gray-900); --theme-accent: hsla(var(--color-orange), 1);
--theme-text: var(--color-gray-200); --theme-text-accent: hsla(var(--color-orange), 1);
--theme-text-light: var(--color-gray-400); --theme-divider: hsla(var(--color-gray-10), 1);
--theme-text-lighter: var(--color-gray-600); --theme-text: hsla(var(--color-gray-90), 1);
--theme-bg: var(--color-black); --theme-text-light: hsla(var(--color-gray-80), 1);
--theme-bg-offset: var(--color-gray-900);
--theme-code-inline-bg: var(--color-gray-800); /* @@@: not used anywhere */
--theme-code-text: var(--color-gray-200); --theme-text-lighter: hsla(var(--color-gray-40), 1);
--theme-code-bg: var(--color-gray-900); --theme-bg: hsla(215, 28%, 17%, 1);
--theme-bg-hover: hsla(var(--color-gray-40), 1);
--theme-bg-offset: hsla(var(--color-gray-5), 1);
--theme-code-inline-bg: hsla(var(--color-gray-10), 1);
--theme-code-inline-text: hsla(var(--color-base-white), 100%, 1);
--theme-code-bg: hsla(var(--color-gray-5), 1);
--theme-code-text: hsla(var(--color-base-white), 100%, 1);
--theme-navbar-bg: hsla(215, 28%, 17%, 1);
--theme-selection-color: hsla(var(--color-base-white), 100%, 1);
--theme-selection-bg: hsla(var(--color-purple), var(--theme-accent-opacity));
/* DocSearch [Algolia] */
--docsearch-modal-background: var(--theme-bg);
--docsearch-searchbox-focus-background: var(--theme-divider);
--docsearch-footer-background: var(--theme-divider);
--docsearch-text-color: var(--theme-text);
--docsearch-hit-background: var(--theme-divider);
--docsearch-hit-shadow: none;
--docsearch-hit-color: var(--theme-text);
--docsearch-footer-shadow: inset 0 2px 10px #000;
--docsearch-modal-shadow: inset 0 0 8px #000;
} }
::selection { ::selection {
color: var(--theme-accent); color: var(--theme-selection-color);
background-color: rgba(var(--theme-accent-rgb), var(--theme-accent-opacity)); background-color: var(--theme-selection-bg);
} }

View file

@ -1,8 +0,0 @@
(() => {
const root = document.documentElement;
if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
root.classList.add('theme-dark');
} else {
root.classList.remove('theme-dark');
}
})();

View file

@ -1,74 +0,0 @@
<!-- Thanks to @5t3ph for https://smolcss.dev/#smol-avatar-list! -->
<ul class="avatar-list">
<li><a href="https://smolcss.dev/#smol-avatar-list"><img alt="Avatar 1" width="64" height="64" src='https://avataaars.io/?avatarStyle=Transparent&topType=LongHairBun&accessoriesType=Blank&hairColor=Auburn&facialHairType=BeardMedium&facialHairColor=Auburn&clotheType=ShirtCrewNeck&clotheColor=Blue01&eyeType=Side&eyebrowType=RaisedExcitedNatural&mouthType=Serious&skinColor=Tanned' /></a></li>
<li><a href="https://smolcss.dev/#smol-avatar-list"><img alt="Avatar 2" width="64" height="64" src='https://avataaars.io/?avatarStyle=Transparent&topType=LongHairDreads&accessoriesType=Blank&hairColor=Brown&facialHairType=Blank&clotheType=ShirtScoopNeck&clotheColor=PastelGreen&eyeType=Default&eyebrowType=DefaultNatural&mouthType=Smile&skinColor=Tanned' /></a></li>
<li><a href="https://smolcss.dev/#smol-avatar-list"><img alt="Avatar 3" width="64" height="64" src='https://avataaars.io/?avatarStyle=Transparent&topType=LongHairCurly&hairColor=BrownDark&facialHairType=Blank&clotheType=GraphicShirt&clotheColor=Pink&graphicType=Diamond&eyeType=Side&eyebrowType=Default&mouthType=Default&skinColor=Brown'/></a></li>
</ul>
<style>
.avatar-list {
--avatar-size: 2.5rem;
--avatar-count: 3;
display: grid;
list-style: none;
/* Default to displaying most of the avatar to
enable easier access on touch devices, ensuring
the WCAG touch target size is met or exceeded */
grid-template-columns: repeat(
var(--avatar-count),
max(44px, calc(var(--avatar-size) / 1.15))
);
/* `padding` matches added visual dimensions of
the `box-shadow` to help create a more accurate
computed component size */
padding: 0.08em;
font-size: var(--avatar-size);
}
@media (any-hover: hover) and (any-pointer: fine) {
.avatar-list {
/* We create 1 extra cell to enable the computed
width to match the final visual width */
grid-template-columns: repeat(
calc(var(--avatar-count) + 1),
calc(var(--avatar-size) / 1.75)
);
}
}
.avatar-list li {
width: var(--avatar-size);
height: var(--avatar-size);
}
.avatar-list li:hover ~ li a,
.avatar-list li:focus-within ~ li a {
transform: translateX(33%);
}
.avatar-list img,
.avatar-list a {
display: block;
border-radius: 50%;
}
.avatar-list a {
transition: transform 180ms ease-in-out;
}
.avatar-list img {
width: 100%;
height: 100%;
object-fit: cover;
background-color: #fff;
box-shadow: 0 0 0 0.05em #fff, 0 0 0 0.08em rgba(0, 0, 0, 0.15);
}
.avatar-list a:focus {
outline: 2px solid transparent;
/* Double-layer trick to work for dark and light backgrounds */
box-shadow: 0 0 0 0.08em var(--theme-accent), 0 0 0 0.12em white;
}
</style>

View file

@ -1,61 +0,0 @@
import type { FunctionalComponent } from 'preact';
import { h } from 'preact';
import { useState, useEffect, useRef } from 'preact/hooks';
import EditOnGithub from './EditOnGithub';
const DocSidebar: FunctionalComponent<{ headers: any[]; editHref: string }> = ({ headers = [], editHref }) => {
const itemOffsets = useRef([]);
const [activeId, setActiveId] = useState<string>(undefined);
useEffect(() => {
const getItemOffsets = () => {
const titles = document.querySelectorAll('article :is(h2, h3, h4)');
itemOffsets.current = Array.from(titles).map((title) => ({
id: title.id,
topOffset: title.getBoundingClientRect().top + window.scrollY,
}));
};
const onScroll = () => {
const itemIndex = itemOffsets.current.findIndex((item) => item.topOffset > window.scrollY + window.innerHeight / 3);
if (itemIndex === 0) {
setActiveId(undefined);
} else if (itemIndex === -1) {
setActiveId(itemOffsets.current[itemOffsets.current.length - 1].id);
} else {
setActiveId(itemOffsets.current[itemIndex - 1].id);
}
};
getItemOffsets();
window.addEventListener('resize', getItemOffsets);
window.addEventListener('scroll', onScroll);
return () => {
window.removeEventListener('resize', getItemOffsets);
window.removeEventListener('scroll', onScroll);
};
}, []);
return (
<nav>
<div>
<h4>Contents</h4>
<ul>
{headers
.filter(({ depth }) => depth > 1 && depth < 5)
.map((header) => (
<li class={`header-link depth-${header.depth} ${activeId === header.slug ? 'active' : ''}`.trim()}>
<a href={`#${header.slug}`}>{header.text}</a>
</li>
))}
</ul>
</div>
<div>
<EditOnGithub href={editHref} />
</div>
</nav>
);
};
export default DocSidebar;

View file

@ -1,26 +0,0 @@
import type { FunctionalComponent } from 'preact';
import { h } from 'preact';
const EditOnGithub: FunctionalComponent<{ href: string }> = ({ href }) => {
return (
<a class="edit-on-github" href={href}>
<svg
preserveAspectRatio="xMidYMid meet"
height="1em"
width="1em"
fill="currentColor"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 438.549 438.549"
stroke="none"
class="icon-7f6730be--text-3f89f380"
>
<g>
<path d="M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 0 1-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"></path>
</g>
</svg>
<span>Edit on GitHub</span>
</a>
);
};
export default EditOnGithub;

View file

@ -0,0 +1,151 @@
---
// fetch all commits for just this page's path
const path = "docs/" + Astro.props.path;
const url = `https://api.github.com/repos/snowpackjs/astro/commits?path=${path}`;
const commitsURL = `https://github.com/snowpackjs/astro/commits/main/${path}`;
async function getCommits(url) {
try {
const token = import.meta.env.SNOWPACK_PUBLIC_GITHUB_TOKEN;
if (!token) {
throw new Error(
'Cannot find "SNOWPACK_PUBLIC_GITHUB_TOKEN" used for escaping rate-limiting.'
);
}
const auth = `Basic ${Buffer.from(token, "binary").toString("base64")}`;
const res = await fetch(url, {
method: "GET",
headers: {
Authorization: auth,
"User-Agent": "astro-docs/1.0",
},
});
const data = await res.json();
if (!res.ok) {
throw new Error(
`Request to fetch commits failed. Reason: ${res.statusText}
Message: ${data.message}`
);
}
return data;
} catch (e) {
console.warn(`[error] /src/components/AvatarList.astro
${e?.message ?? e}`);
return new Array();
}
}
function removeDups(arr) {
if (!arr) {
return new Array();
}
let map = new Map();
for (let item of arr) {
let author = item.author;
// Deduplicate based on author.id
map.set(author.id, { login: author.login, id: author.id });
}
return Array.from(map.values());
}
const data = await getCommits(url);
const unique = removeDups(data);
const recentContributors = unique.slice(0, 3); // only show avatars for the 3 most recent contributors
const additionalContributors = unique.length - recentContributors.length; // list the rest of them as # of extra contributors
---
<!-- Thanks to @5t3ph for https://smolcss.dev/#smol-avatar-list! -->
<div class="contributors">
<ul class="avatar-list" style={`--avatar-count: ${recentContributors.length}`}>
{recentContributors.map((item) => (
<li><a href={`https://github.com/${item.login}`}><img alt={`Contributor ${item.login}`} title={`Contributor ${item.login}`} width="64" height="64" src={`https://avatars.githubusercontent.com/u/${item.id}`}/></a></li>
))}
</ul>
{additionalContributors > 0 && <span><a href={commitsURL}>{`and ${additionalContributors} additional contributor${additionalContributors > 1 ? 's' : ''}.`}</a></span>}
{unique.length === 0 && <a href={commitsURL}>Contributors</a>}
</div>
<style>
.avatar-list {
--avatar-size: 2.5rem;
--avatar-count: 3;
display: grid;
list-style: none;
/* Default to displaying most of the avatar to
enable easier access on touch devices, ensuring
the WCAG touch target size is met or exceeded */
grid-template-columns: repeat(
var(--avatar-count),
max(44px, calc(var(--avatar-size) / 1.15))
);
/* `padding` matches added visual dimensions of
the `box-shadow` to help create a more accurate
computed component size */
padding: 0.08em;
font-size: var(--avatar-size);
}
@media (any-hover: hover) and (any-pointer: fine) {
.avatar-list {
/* We create 1 extra cell to enable the computed
width to match the final visual width */
grid-template-columns: repeat(
calc(var(--avatar-count) + 1),
calc(var(--avatar-size) / 1.75)
);
}
}
.avatar-list li {
width: var(--avatar-size);
height: var(--avatar-size);
}
.avatar-list li:hover ~ li a,
.avatar-list li:focus-within ~ li a {
transform: translateX(33%);
}
.avatar-list img,
.avatar-list a {
display: block;
border-radius: 50%;
}
.avatar-list a {
transition: transform 180ms ease-in-out;
}
.avatar-list img {
width: 100%;
height: 100%;
object-fit: cover;
background-color: #fff;
box-shadow: 0 0 0 0.05em #fff, 0 0 0 0.08em rgba(0, 0, 0, 0.15);
}
.avatar-list a:focus {
outline: 2px solid transparent;
/* Double-layer trick to work for dark and light backgrounds */
box-shadow: 0 0 0 0.08em var(--theme-accent), 0 0 0 0.12em white;
}
.contributors {
display: flex;
align-items: center;
}
.contributors > * + * {
margin-left: .75rem;
}
</style>

View file

@ -1,9 +1,10 @@
--- ---
import AvatarList from './AvatarList.astro'; import AvatarList from './AvatarList.astro';
const { path } = Astro.props;
--- ---
<footer> <footer>
<AvatarList /> <AvatarList path={path} />
</footer> </footer>
<style> <style>

View file

@ -0,0 +1,40 @@
<!-- Global Metadata -->
<meta name="viewport" content="width=device-width">
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="alternate icon" type="image/x-icon" href="/favicon.ico" />
<link rel="sitemap" href="/sitemap.xml"/>
<!-- Global CSS -->
<link rel="stylesheet" href="/theme.css" />
<link rel="stylesheet" href="/code.css" />
<link rel="stylesheet" href="/index.css" />
<!-- Preload Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap" rel="stylesheet">
<!-- Scrollable a11y code helper -->
<script type="module" src="/make-scrollable-code-focusable.js" />
<!-- This is intentionally inlined to avoid FOUC -->
<script>
const root = document.documentElement;
const theme = localStorage.getItem('theme');
if (theme === 'dark' || (!theme) && window.matchMedia('(prefers-color-scheme: dark)').matches) {
root.classList.add('theme-dark');
} else {
root.classList.remove('theme-dark');
}
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<!-- <script async src="https://www.googletagmanager.com/gtag/js?id=G-TEL60V1WM9"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-TEL60V1WM9');
</script> -->

View file

@ -0,0 +1,40 @@
---
import {SITE, OPEN_GRAPH} from '../config.ts';
export interface Props {
content: any,
site: any,
canonicalURL: URL | string,
};
const { content = {}, canonicalURL } = Astro.props;
const formattedContentTitle = content.title ? `${content.title} 🚀 ${SITE.title}` : SITE.title;
const imageSrc = content?.image?.src ?? OPEN_GRAPH.image.src;
const canonicalImageSrc = new URL(imageSrc, Astro.site);
const imageAlt = content?.image?.alt ?? OPEN_GRAPH.image.alt;
---
<!-- Page Metadata -->
<link rel="canonical" href={canonicalURL}/>
<!-- OpenGraph Tags -->
<meta property="og:title" content={formattedContentTitle}/>
<meta property="og:type" content="article"/>
<meta property="og:url" content={canonicalURL}/>
<meta property="og:locale" content={content.ogLocale ?? OPEN_GRAPH.locale}/>
<meta property="og:image" content={canonicalImageSrc}/>
<meta property="og:image:alt" content={imageAlt}/>
<meta property="og:description" content={content.description ? content.description : SITE.description}/>
<meta property="og:site_name" content={SITE.title}/>
<!-- Twitter Tags -->
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content={OPEN_GRAPH.twitter}/>
<meta name="twitter:title" content={formattedContentTitle}/>
<meta name="twitter:description" content={content.description ? content.description : SITE.description}/>
<meta name="twitter:image" content={canonicalImageSrc}/>
<meta name="twitter:image:alt" content={imageAlt}/>
<!--
TODO: Add json+ld data, maybe https://schema.org/APIReference makes sense?
Docs: https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data
https://www.npmjs.com/package/schema-dts seems like a great resource for implementing this.
Even better, there's a React component that integrates with `schema-dts`: https://github.com/google/react-schemaorg
-->

View file

@ -0,0 +1,20 @@
---
const {size} = Astro.props;
---
<svg class="logo" width={size} height={size} viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
<style>
#flame {
/* fill: #ff5d01; */
fill: #3894ff;
}
#a {
/* fill: #000014; */
fill: #3894ff;
}
</style>
<title>Logo</title>
<path id="a" fill-rule="evenodd" clip-rule="evenodd"
d="M163.008 18.929c1.944 2.413 2.935 5.67 4.917 12.181l43.309 142.27a180.277 180.277 0 00-51.778-17.53l-28.198-95.29a3.67 3.67 0 00-7.042.01l-27.857 95.232a180.225 180.225 0 00-52.01 17.557l43.52-142.281c1.99-6.502 2.983-9.752 4.927-12.16a15.999 15.999 0 016.484-4.798c2.872-1.154 6.271-1.154 13.07-1.154h31.085c6.807 0 10.211 0 13.086 1.157a16.004 16.004 0 016.487 4.806z" />
<path id="flame" fill-rule="evenodd" clip-rule="evenodd"
d="M168.19 180.151c-7.139 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.961 10.367-1.961 13.902 0 0-1.056 17.355 11.015 29.426 0-6.268 5.081-11.349 11.349-11.349 10.743 0 10.731 9.373 10.721 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.974-19.87 5.976-3.79 12.616-8.001 17.192-16.449a31.024 31.024 0 003.743-14.82c0-3.299-.513-6.479-1.463-9.463z" />
</svg>

View file

@ -0,0 +1,158 @@
---
import SkipToContent from './SkipToContent.astro';
import SidebarToggle from './SidebarToggle.tsx';
import LanguageSelect from './LanguageSelect.jsx';
import Search from "./Search.jsx";
import { getLanguageFromURL } from '../util.ts';
const {currentPage} = Astro.props;
const lang = currentPage && getLanguageFromURL(currentPage);
---
<style>
header {
z-index: 11;
height: var(--theme-navbar-height);
width: 100%;
background-color: var(--theme-navbar-bg);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
position: sticky;
top: 0;
}
.logo {
display: flex;
overflow: hidden;
width: 30px;
font-size: 1rem;
flex-shrink: 0;
font-weight: 600;
line-height: 1;
color: hsla(var(--color-base-white), 100%, 1);
text-decoration: none;
gap: 0.5em;
z-index: -1;
}
.logo a {
padding: 0.5em 0.25em;
margin: -0.5em -0.25em;
}
.logo svg {
height: 40px;
width: auto;
display: block;
color: var(--theme-accent);
}
.logo .hover {
opacity: 0.0;
}
.logo a {
transition: transform 180ms ease-out;
}
.logo a:hover,
.logo a:focus {
outline: none;
opacity: 1.0;
transform: translateY(-2px);
}
.logo h1 {
font: inherit;
color: inherit;
margin: 0;
}
.nav-wrapper {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 1em;
width: 100%;
max-width: 82em;
padding: 0 1rem;
}
@media (min-width: 50em) {
header {
position: static;
padding: 2rem 0rem 0 2rem;
}
.logo {
width: auto;
margin: 0;
z-index: 0;
}
.menu-toggle {
display: none;
}
.logo {
width: auto;
}
}
/** Style Algolia */
:root {
--docsearch-primary-color: var(--theme-accent);
--docsearch-logo-color: var(--theme-text);
}
.search-item {
display: none;
position: relative;
z-index: 10;
flex-grow: 1;
padding-right: 0.7rem;
display: flex;
max-width: 200px;
}
:global(.search-item > *) {
flex-grow: 1;
}
@media (min-width: 50em) {
.search-item {
max-width: 400px;
}
}
</style>
<header>
<SkipToContent />
<nav class="nav-wrapper" title="Top Navigation">
<div class="menu-toggle">
<SidebarToggle client:idle/>
</div>
<div class="logo flex">
<a href="/">
<h1 class="sr-only">Astro</h1>
<svg xmlns="http://www.w3.org/2000/svg" width="363" height="102" viewBox="0 0 363 102" fill="none">
<style>
.text {
fill: var(--theme-text);
}
.hover {
fill: var(--theme-accent);
}
</style>
<path class="text" fill-rule="evenodd" d="M55.07 14.216l16.81 54.865a72.6 72.6 0 00-20.765-6.984L39.808 24.135a1.475 1.475 0 00-2.827.005L25.81 62.078a72.598 72.598 0 00-20.859 6.995L21.847 14.2c.998-3.243 1.497-4.865 2.47-6.066a8 8 0 013.239-2.392c1.434-.576 3.13-.576 6.524-.576h8.751c3.398 0 5.097 0 6.532.577a8 8 0 013.241 2.397c.972 1.203 1.47 2.827 2.465 6.076z" clip-rule="evenodd"/>
<path fill="#FF5D01" fill-rule="evenodd" d="M54.618 71.779c-2.863 2.432-8.578 4.091-15.161 4.091-8.08 0-14.852-2.499-16.649-5.86-.642 1.926-.786 4.13-.786 5.539 0 0-.423 6.915 4.418 11.725 0-2.498 2.037-4.522 4.551-4.522 4.309 0 4.304 3.734 4.3 6.764v.27c0 4.6 2.829 8.541 6.852 10.203a9.22 9.22 0 01-.938-4.064c0-4.386 2.592-6.02 5.604-7.917 2.396-1.51 5.06-3.188 6.894-6.554a12.297 12.297 0 001.502-5.905c0-1.314-.206-2.581-.587-3.77z" clip-rule="evenodd"/>
<path class="text" d="M126.554 69c13.115 0 21.047-3.14 25.68-9.654 0 2.904.157 5.651.55 8.163h7.774c-.706-4.082-.863-6.75-.863-14.128V43.334c0-10.831-8.403-16.56-24.424-16.56-15.47 0-25.522 5.964-26.779 14.598h8.246c1.256-5.808 7.774-8.87 18.533-8.87 10.602 0 16.885 3.69 16.885 9.969v.785l-24.502 1.413c-9.974.549-13.665 1.962-16.492 4.003-2.67 1.962-4.162 5.023-4.162 8.555C107 64.683 114.696 69 126.554 69zm2.513-5.573c-9.109 0-14.135-2.119-14.135-6.357 0-4.553 3.141-6.593 14.214-7.3l23.01-1.412v1.805c0 8.241-9.66 13.264-23.089 13.264zM196.086 69c16.256 0 22.775-5.337 22.775-13.108 0-6.436-4.006-9.732-14.215-10.596l-19.083-1.49c-5.183-.393-8.088-1.884-8.088-5.102 0-4.082 4.476-6.201 14.135-6.201 10.995 0 16.727 2.198 20.497 7.064l6.361-3.061c-3.927-6.122-12.644-9.733-26.151-9.733-13.9 0-22.224 4.631-22.224 12.244 0 6.829 4.947 10.125 14.292 10.91l18.926 1.492c6.204.47 8.089 1.726 8.089 4.944 0 4.631-4.79 6.829-14.293 6.829-11.544 0-18.847-3.14-22.381-8.87l-6.204 3.376C173.312 64.918 181.715 69 196.086 69zM234.929 34.151v18.916c0 7.77 2.67 15.54 17.198 15.54 3.691 0 8.167-.706 10.131-1.57V60.68c-2.749.628-6.047 1.1-9.267 1.1-6.832 0-10.523-2.67-10.523-9.42V34.151h19.633v-5.887h-19.633V15l-7.539 3.061v10.204h-12.33v5.886h12.33zM280.823 28.265h-6.911v39.244h7.461V52.83c0-5.65 1.099-10.439 4.24-13.735 2.749-3.061 6.283-4.788 12.487-4.788 2.12 0 3.455.157 5.262.471v-7.22c-1.65-.393-3.063-.472-5.184-.472-8.402 0-15.078 4.945-17.355 12.558v-11.38zM334.807 69C351.534 69 363 60.523 363 47.887c0-12.637-11.466-21.114-28.193-21.114-16.727 0-28.193 8.477-28.193 21.114C306.614 60.523 318.08 69 334.807 69zm0-6.2c-12.329 0-20.261-5.809-20.261-14.913 0-9.105 7.932-14.913 20.261-14.913 12.251 0 20.261 5.808 20.261 14.913 0 9.104-8.01 14.912-20.261 14.912z"/>
</svg>
</a>
<a href="/">
<h1 class="sr-only">Docs</h1>
<svg xmlns="http://www.w3.org/2000/svg" width="226" height="102" viewBox="0 0 226 102" fill="none">
<path fill="currentColor" d="M25.805 68c14.688 0 24.883-8.41 24.883-21.14 0-12.786-9.62-19.756-24.653-19.756H0V68h25.805zm-14.17-33.005H24.25c8.352 0 14.17 4.09 14.17 12.039 0 8.236-5.3 13.075-14.113 13.075H11.635V34.995zM82.673 69.382c16.704 0 27.418-8.582 27.418-21.83 0-13.248-10.771-21.83-27.418-21.83-16.589 0-27.418 8.582-27.418 21.83 0 13.19 10.83 21.83 27.418 21.83zm0-8.64c-9.1 0-15.149-5.299-15.149-13.19 0-7.891 6.048-13.19 15.15-13.19 9.1 0 15.205 5.299 15.205 13.19 0 7.891-6.105 13.19-15.206 13.19zM141.497 69.382c13.306 0 22.637-5.299 25.978-14.572l-11.866-2.535c-1.67 5.415-6.393 8.295-13.709 8.295-9.216 0-15.033-5.127-15.033-13.018 0-8.006 5.702-13.018 14.918-13.018 7.43 0 12.154 3.053 13.709 8.64l12.038-2.13c-2.707-9.562-12.268-15.322-25.574-15.322-16.128 0-27.302 9.043-27.302 22.003 0 13.133 10.425 21.657 26.841 21.657zM194.94 69.382c14.745 0 23.212-5.01 23.212-14.054 0-7.603-4.665-10.944-15.955-12.096l-11.289-1.094c-5.242-.576-6.97-1.556-6.97-4.09 0-2.765 3.456-4.262 9.792-4.262 7.834 0 13.709 2.476 16.762 6.508l7.315-6.163c-5.069-5.702-13.133-8.41-23.501-8.41-13.997 0-21.888 4.781-21.888 12.903 0 7.546 4.781 11.232 14.803 12.326l12.557 1.383c4.896.518 6.624 1.555 6.624 4.09 0 3.225-3.456 4.723-10.886 4.723-8.352 0-14.688-3.226-18.087-8.007l-8.294 5.818c4.205 6.451 13.709 10.425 25.805 10.425z"/>
</svg>
</a>
</div>
<div style="flex-grow: 1;"></div>
{lang && <LanguageSelect lang={lang} client:idle />}
<div class="search-item"><Search client:idle /></div>
</nav>
</header>

View file

@ -0,0 +1,47 @@
.language-select {
flex-grow: 1;
width: 48px;
box-sizing: border-box;
margin: 0;
padding: 0.33em 0.5em;
overflow: visible;
font-weight: 500;
font-size: 1rem;
font-family: inherit;
line-height: inherit;
background-color: var(--theme-bg);
border-color: var(--theme-text-lighter);
color: var(--theme-text-light);
border-style: solid;
border-width: 1px;
border-radius: 0.25rem;
outline: 0;
cursor: pointer;
transition-timing-function: ease-out;
transition-duration: 0.2s;
transition-property: border-color, color;
-webkit-font-smoothing: antialiased;
padding-left: 30px;
padding-right: 1rem;
}
.language-select-wrapper .language-select:hover,
.language-select-wrapper .language-select:focus {
color: var(--theme-text);
border-color: var(--theme-text-light);
}
.language-select-wrapper {
color: var(--theme-text-light);
position: relative;
}
.language-select-wrapper > svg {
position: absolute;
top: 7px;
left: 10px;
pointer-events: none;
}
@media (min-width: 50em) {
.language-select {
width: 100%;
}
}

View file

@ -0,0 +1,38 @@
import type { FunctionalComponent } from 'preact';
import { h } from 'preact';
import './LanguageSelect.css';
import { LANGUAGE_NAMES, langPathRegex } from '../../languages';
const LanguageSelect: FunctionalComponent<{ lang: string }> = ({ lang }) => {
return (
<div class="language-select-wrapper">
<svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 88.6 77.3" height="1.2em" width="1.2em">
<path fill="currentColor" d="M61,24.6h7.9l18.7,51.6h-7.7l-5.4-15.5H54.3l-5.6,15.5h-7.2L61,24.6z M72.6,55l-8-22.8L56.3,55H72.6z" />
<path
fill="currentColor"
d="M53.6,60.6c-10-4-16-9-22-14c0,0,1.3,1.3,0,0c-6,5-20,13-20,13l-4-6c8-5,10-6,19-13c-2.1-1.9-12-13-13-19h8 c4,9,10,14,10,14c10-8,10-19,10-19h8c0,0-1,13-12,24l0,0c5,5,10,9,19,13L53.6,60.6z M1.6,16.6h56v-8h-23v-7h-9v7h-24V16.6z"
/>
</svg>
<select
class="language-select"
value={lang}
onChange={(e) => {
const newLang = e.target.value;
let actualDest = window.location.pathname.replace(langPathRegex, '/');
if (actualDest == '/') actualDest = `/introduction`;
window.location.pathname = '/' + newLang + actualDest;
}}
>
{Object.keys(LANGUAGE_NAMES).map((key) => {
return (
<option value={LANGUAGE_NAMES[key]}>
<span>{key}</span>
</option>
);
})}
</select>
</div>
);
};
export default LanguageSelect;

View file

@ -0,0 +1,76 @@
/** Style Algolia */
:root {
--docsearch-primary-color: var(--theme-accent);
--docsearch-logo-color: var(--theme-text);
}
.search-input {
flex-grow: 1;
box-sizing: border-box;
width: 100%;
margin: 0;
padding: 0.33em 0.5em;
overflow: visible;
font-weight: 500;
font-size: 1rem;
font-family: inherit;
line-height: inherit;
background-color: var(--theme-divider);
border-color: var(--theme-divider);
color: var(--theme-text-light);
border-style: solid;
border-width: 1px;
border-radius: 0.25rem;
outline: 0;
cursor: pointer;
transition-timing-function: ease-out;
transition-duration: 0.2s;
transition-property: border-color, color;
-webkit-font-smoothing: antialiased;
}
.search-input:hover,
.search-input:focus {
color: var(--theme-text);
border-color: var(--theme-text-light);
}
.search-input:hover::placeholder,
.search-input:focus::placeholder {
color: var(--theme-text-light);
}
.search-input::placeholder {
color: var(--theme-text-light);
}
.search-hint {
position: absolute;
top: 7px;
right: 19px;
padding: 3px 5px;
display: none;
display: none;
align-items: center;
justify-content: center;
letter-spacing: 0.125em;
font-size: 13px;
font-family: var(--font-mono);
pointer-events: none;
border-color: var(--theme-text-lighter);
color: var(--theme-text-light);
border-style: solid;
border-width: 1px;
border-radius: 0.25rem;
line-height: 14px;
}
@media (min-width: 50em) {
.search-hint {
display: flex;
}
}
/* ------------------------------------------------------------ *\
DocSearch (Algolia)
\* ------------------------------------------------------------ */
.DocSearch-Modal .DocSearch-Hit a {
box-shadow: none;
border: 1px solid var(--theme-accent);
}

View file

@ -0,0 +1,76 @@
/* jsxImportSource: react */
import { useState, useCallback, useRef } from 'react';
import { createPortal } from 'react-dom';
import { DocSearchModal, useDocSearchKeyboardEvents } from '@docsearch/react';
import '@docsearch/css//dist/style.css';
import './Search.css';
export default function Search() {
const [isOpen, setIsOpen] = useState(false);
const searchButtonRef = useRef();
const [initialQuery, setInitialQuery] = useState(null);
const onOpen = useCallback(() => {
setIsOpen(true);
}, [setIsOpen]);
const onClose = useCallback(() => {
setIsOpen(false);
}, [setIsOpen]);
const onInput = useCallback(
(e) => {
setIsOpen(true);
setInitialQuery(e.key);
},
[setIsOpen, setInitialQuery]
);
useDocSearchKeyboardEvents({
isOpen,
onOpen,
onClose,
onInput,
searchButtonRef,
});
return (
<>
<button type="button" ref={searchButtonRef} onClick={onOpen} className="search-input">
<svg width="24" height="24" fill="none">
<path d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
</svg>
<span>Search</span>
<span className="search-hint">
<span className="sr-only">Press </span>
<kbd>/</kbd>
<span className="sr-only"> to search</span>
</span>
</button>
{isOpen &&
createPortal(
<DocSearchModal
initialQuery={initialQuery}
initialScrollY={window.scrollY}
onClose={onClose}
indexName="astro"
apiKey="0f387260ad74f9cbf4353facd29c919c"
transformItems={(items) => {
return items.map((item) => {
// We transform the absolute URL into a relative URL to
// work better on localhost, preview URLS.
const a = document.createElement('a');
a.href = item.url;
const hash = a.hash === '#overview' ? '' : a.hash;
return {
...item,
url: `${a.pathname}${hash}`,
};
});
}}
/>,
document.body
)}
</>
);
}

View file

@ -0,0 +1,27 @@
import type { FunctionalComponent } from 'preact';
import { h, Fragment } from 'preact';
import { useState, useEffect } from 'preact/hooks';
const MenuToggle: FunctionalComponent = () => {
const [sidebarShown, setSidebarShown] = useState(false);
useEffect(() => {
const body = document.getElementsByTagName('body')[0];
if (sidebarShown) {
body.classList.add('mobile-sidebar-toggle');
} else {
body.classList.remove('mobile-sidebar-toggle');
}
}, [sidebarShown]);
return (
<button type="button" aria-pressed={sidebarShown ? 'true' : 'false'} id="menu-toggle" onClick={() => setSidebarShown(!sidebarShown)}>
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
<span className="sr-only">Toggle sidebar</span>
</button>
);
};
export default MenuToggle;

View file

@ -0,0 +1,21 @@
<style>
.skiplink,
.skiplink:focus,
.skiplink:focus-visible {
position: absolute;
padding: 0.25em;
font-size: larger;
top: 0;
left: 0;
right: 0;
z-index: 9;
display: block;
text-align: center;
background-color: var(--theme-text-accent);
color: var(--theme-bg);
border-radius: 0.25em;
outline: var(--theme-bg) solid 1px;
outline-offset: 0;
}
</style>
<a href="#article" class="sr-only skiplink"><span>Skip to Content</span></a>

View file

@ -0,0 +1,109 @@
---
import { SIDEBAR } from '../../config.ts';
import { getLanguageFromURL } from '../util.ts';
const {currentPage} = Astro.props;
const currentPageMatch = currentPage.slice(1);
const langCode = getLanguageFromURL(currentPage);
// SIDEBAR is a flat array. Group it by sections to properly render.
const sidebarSections = SIDEBAR[langCode].reduce((col, item) => {
if (item.header) {
col.push({...item, children: []});
} else {
col[col.length-1].children.push(item);
}
return col;
}, []);
---
<nav aria-labelledby="grid-left">
<ul class="nav-groups">
{sidebarSections.map(section => (
<li>
<div class="nav-group">
<h2 class="nav-group-title">{section.text}</h2>
<ul>
{section.children.map(child => (
<li class="nav-link"><a href={`${Astro.site.pathname}${child.link}`} aria-current={`${currentPageMatch === child.link ? 'page' : 'false'}`}>{child.text}</a></li>
))}
</ul>
</div>
</li>
))}
</ul>
</nav>
<script>
window.addEventListener('DOMContentLoaded', (event) => {
var target = document.querySelector('[aria-current="page"]');
if (target && (target.offsetTop > (window.innerHeight - 100))) {
document.querySelector('.nav-groups').scrollTop = target.offsetTop;
}
});
</script>
<style>
nav {
width: 100%;
margin-right: 1rem;
}
.nav-groups {
height: 100%;
padding: 2rem 0;
overflow-x: visible;
overflow-y: auto;
max-height: 100vh;
}
.nav-groups > li + li {
margin-top: 2rem;
}
.nav-groups > :first-child {
padding-top: var(--doc-padding);
}
.nav-groups > :last-child {
padding-bottom: 2rem;
margin-bottom: var(--theme-navbar-height);
}
.nav-group-title {
font-size: 1.0rem;
font-weight: 700;
padding: 0.1rem 1rem;
text-transform: uppercase;
margin-bottom: 0.5rem;
}
.nav-link a {
font-size: 1.0rem;
margin: 1px;
padding: 0.3rem 1rem;
font: inherit;
color: inherit;
text-decoration: none;
display: block;
}
.nav-link a:hover,
.nav-link a:focus {
background-color: var(--theme-bg-hover);
}
.nav-link a[aria-current="page"] {
color: var(--theme-text-accent);
background-color: var(--theme-bg-accent);
font-weight: 600;
}
:global(:root.theme-dark) .nav-link a[aria-current="page"] {
color: hsla(var(--color-base-white), 100%, 1);
}
@media (min-width: 50em) {
.nav-groups {
padding: 0;
}
}
</style>

View file

@ -1,52 +0,0 @@
---
export interface Props {
title: string;
type?: 'tip' | 'warning' | 'error'
}
const { type = 'tip', title } = Astro.props;
---
<aside class={`note type-${type}`}>
{title && <label>{title}</label>}
<slot />
</aside>
<style>
.note {
--padding-block: 1rem;
--padding-inline: 1.25rem;
display: flex;
flex-direction: column;
padding: var(--padding-block) var(--padding-inline);
margin-left: calc(var(--padding-inline) * -1);
margin-right: calc(var(--padding-inline) * -1);
background: var(--theme-bg-offset);
border-left: calc(var(--padding-inline) / 2) solid var(--color);
border-radius: 0;
}
.note label {
font-weight: 500;
color: var(--color);
}
/* .note :global(a) {
color: var(--color);
} */
.note.type-tip {
--color: var(--color-green);
--color-rgb: var(--color-green-rgb);
}
.note.type-warning {
--color: var(--color-yellow);
--color-rgb: var(--color-yellow-rgb);
}
.note.type-error {
--color: var(--color-red);
--color-rgb: var(--color-red-rgb);
}
</style>

View file

@ -0,0 +1,41 @@
---
const {content, githubEditUrl} = Astro.props;
const title = content.title;
const headers = content.astro.headers;
import MoreMenu from '../RightSidebar/MoreMenu.astro';
import TableOfContents from '../RightSidebar/TableOfContents.tsx';
---
<style>
.content {
padding: 0;
max-width: 75ch;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
.content > section {
margin-bottom: 4rem;
}
.block {
display: block;
}
@media (min-width: 50em) {
.sm\:hidden {
display: none;
}
}
</style>
<article id="article" class="content">
<section class="main-section">
<h1 class="content-title" id="overview">{title}</h1>
<nav class="block sm:hidden">
<TableOfContents client:media="(max-width: 50em)" headers={headers}/>
</nav>
<slot />
</section>
<nav class="block sm:hidden">
<MoreMenu editHref={githubEditUrl}/>
</nav>
</article>

View file

@ -0,0 +1,68 @@
---
import ThemeToggleButton from './ThemeToggleButton.jsx';
const {editHref} = Astro.props;
---
<style>
.edit-on-github {
text-decoration: none;
font: inherit;
color: inherit;
font-size: 1rem;
}
</style>
<h2 class="heading">More</h2>
<ul>
<li class={`header-link depth-2`}>
<a class="edit-on-github" href={editHref} target="_blank">
<svg
aria-hidden="true"
focusable="false"
data-prefix="fas"
data-icon="pen"
class="svg-inline--fa fa-pen fa-w-16"
role="img"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
height="1em"
width="1em"
>
<path
fill="currentColor"
d="M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"
></path>
</svg>
<span>Edit this page</span>
</a>
</li>
<li class={`header-link depth-2`}>
<a href="https://github.com/snowpackjs/astro/blob/main/CONTRIBUTING.md#translations" target="_blank">
<svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 88.6 77.3" height="1.24em" width="1.24em" style="margin: -2px;"> <path fill="currentColor" d="M61,24.6h7.9l18.7,51.6h-7.7l-5.4-15.5H54.3l-5.6,15.5h-7.2L61,24.6z M72.6,55l-8-22.8L56.3,55H72.6z" /> <path fill="currentColor" d="M53.6,60.6c-10-4-16-9-22-14c0,0,1.3,1.3,0,0c-6,5-20,13-20,13l-4-6c8-5,10-6,19-13c-2.1-1.9-12-13-13-19h8 c4,9,10,14,10,14c10-8,10-19,10-19h8c0,0-1,13-12,24l0,0c5,5,10,9,19,13L53.6,60.6z M1.6,16.6h56v-8h-23v-7h-9v7h-24V16.6z" /> </svg>
<span>Translate this page</span>
</a>
</li>
<li class={`header-link depth-2`}>
<a href="https://astro.build/chat" target="_blank">
<svg
aria-hidden="true"
focusable="false"
data-prefix="fas"
data-icon="comment-alt"
class="svg-inline--fa fa-comment-alt fa-w-16"
role="img"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
height="1em"
width="1em"
>
<path
fill="currentColor"
d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"
></path>
</svg>
<span>Join our community</span>
</a>
</li>
</ul>
<div style="margin: 2rem 0; text-align: center;">
<ThemeToggleButton client:visible />
</div>

View file

@ -0,0 +1,25 @@
---
import TableOfContents from './TableOfContents.jsx';
import MoreMenu from './MoreMenu.astro';
const {content, githubEditUrl} = Astro.props;
const headers = content.astro.headers;
---
<style>
.sidebar-nav {
width: 100%;
position: sticky;
top: 0;
}
.sidebar-nav-inner {
height: 100%;
padding: 0;
padding-top: var(--doc-padding);
overflow: auto;
}
</style>
<nav class="sidebar-nav" aria-labelledby="grid-right">
<div class="sidebar-nav-inner">
<TableOfContents client:media="(min-width: 50em)" headers={headers} />
<MoreMenu editHref={githubEditUrl} />
</div>
</nav>

View file

@ -0,0 +1,45 @@
import type { FunctionalComponent } from 'preact';
import { h, Fragment } from 'preact';
import { useState, useEffect, useRef } from 'preact/hooks';
const TableOfContents: FunctionalComponent<{ headers: any[] }> = ({ headers = [] }) => {
const itemOffsets = useRef([]);
const [activeId, setActiveId] = useState<string>(undefined);
useEffect(() => {
const getItemOffsets = () => {
const titles = document.querySelectorAll('article :is(h1, h2, h3, h4)');
itemOffsets.current = Array.from(titles).map((title) => ({
id: title.id,
topOffset: title.getBoundingClientRect().top + window.scrollY,
}));
};
getItemOffsets();
window.addEventListener('resize', getItemOffsets);
return () => {
window.removeEventListener('resize', getItemOffsets);
};
}, []);
return (
<>
<h2 class="heading">On this page</h2>
<ul>
<li class={`header-link depth-2 ${activeId === 'overview' ? 'active' : ''}`.trim()}>
<a href="#overview">Overview</a>
</li>
{headers
.filter(({ depth }) => depth > 1 && depth < 4)
.map((header) => (
<li class={`header-link depth-${header.depth} ${activeId === header.slug ? 'active' : ''}`.trim()}>
<a href={`#${header.slug}`}>{header.text}</a>
</li>
))}
</ul>
</>
);
};
export default TableOfContents;

View file

@ -0,0 +1,37 @@
.theme-toggle {
display: inline-flex;
align-items: center;
gap: 0.25em;
padding: 0.33em 0.67em;
border-radius: 99em;
background-color: var(--theme-code-inline-bg);
}
.theme-toggle > label:focus-within {
outline: 2px solid transparent;
box-shadow: 0 0 0 0.08em var(--theme-accent), 0 0 0 0.12em white;
}
.theme-toggle > label {
color: var(--theme-code-inline-text);
position: relative;
display: flex;
align-items: center;
justify-content: center;
opacity: 0.5;
}
.theme-toggle .checked {
color: var(--theme-accent);
opacity: 1;
}
input[name='theme-toggle'] {
position: absolute;
opacity: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
}

View file

@ -1,17 +1,11 @@
import type { FunctionalComponent } from 'preact'; import type { FunctionalComponent } from 'preact';
import { h, Fragment } from 'preact'; import { h, Fragment } from 'preact';
import { useState, useEffect } from 'preact/hooks'; import { useState, useEffect } from 'preact/hooks';
import './ThemeToggleButton.css';
const themes = ['system', 'light', 'dark']; const themes = ['light', 'dark'];
const icons = [ const icons = [
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path
fill-rule="evenodd"
d="M3 5a2 2 0 012-2h10a2 2 0 012 2v8a2 2 0 01-2 2h-2.22l.123.489.804.804A1 1 0 0113 18H7a1 1 0 01-.707-1.707l.804-.804L7.22 15H5a2 2 0 01-2-2V5zm5.771 7H5V5h10v7H8.771z"
clip-rule="evenodd"
/>
</svg>,
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
<path <path
fillRule="evenodd" fillRule="evenodd"
@ -25,42 +19,48 @@ const icons = [
]; ];
const ThemeToggle: FunctionalComponent = () => { const ThemeToggle: FunctionalComponent = () => {
const [theme, setTheme] = useState(themes[0]); const [theme, setTheme] = useState(() => {
if (import.meta.env.SSR) {
useEffect(() => { return undefined;
const user = localStorage.getItem('theme'); }
if (!user) return; if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
setTheme(user); return localStorage.getItem('theme');
}, []); }
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
return 'dark';
}
return 'light';
});
useEffect(() => { useEffect(() => {
const root = document.documentElement; const root = document.documentElement;
if (theme === 'system') { if (theme === 'light') {
localStorage.removeItem('theme'); root.classList.remove('theme-dark');
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
root.classList.add('theme-dark');
} else {
root.classList.remove('theme-dark');
}
} else { } else {
localStorage.setItem('theme', theme); root.classList.add('theme-dark');
if (theme === 'light') {
root.classList.remove('theme-dark');
} else {
root.classList.add('theme-dark');
}
} }
}, [theme]); }, [theme]);
return ( return (
<div id="theme-toggle"> <div class="theme-toggle">
{themes.map((t, i) => { {themes.map((t, i) => {
const icon = icons[i]; const icon = icons[i];
const checked = t === theme; const checked = t === theme;
return ( return (
<label className={checked ? 'checked' : ''}> <label className={checked ? ' checked' : ''}>
{icon} {icon}
<input type="radio" name="theme-toggle" checked={checked} value={t} title={`Use ${t} theme`} aria-label={`Use ${t} theme`} onChange={() => setTheme(t)} /> <input
type="radio"
name="theme-toggle"
checked={checked}
value={t}
title={`Use ${t} theme`}
aria-label={`Use ${t} theme`}
onChange={() => {
localStorage.setItem('theme', t);
setTheme(t);
}}
/>
</label> </label>
); );
})} })}

View file

@ -1,20 +0,0 @@
---
import { sidebar } from '../config.ts';
---
<nav>
<ul class="nav-groups">
{sidebar.map(category => (
<li>
<div class="nav-group">
<h4 class="nav-group-title"><a href={`${Astro.site}${category.link}`}>{category.text}</a></h4>
<ul>
{category.children.map(child => (
<li class="nav-link"><a href={`${Astro.site}${child.link}`}>{child.text}</a></li>
))}
</ul>
</div>
</li>
))}
</ul>
</nav>

View file

@ -0,0 +1,4 @@
export function getLanguageFromURL(pathname: string) {
const langCodeMatch = pathname.match(/\/([a-z]{2}-?[A-Z]{0,2})\//);
return langCodeMatch ? langCodeMatch[1] : 'en';
}

View file

@ -1,10 +1,22 @@
export const sidebar = [ export const SIDEBAR = {
{ en: [
text: 'Introduction', { text: 'Getting Started', header: true },
link: '', // No leading slash needed, so this links to the homepage { text: 'Introduction', link: 'en/introduction' },
children: [ { text: 'Getting Started', link: 'en/getting-started' },
{ text: 'Getting Started', link: 'getting-started' }, { text: 'Example', link: 'en/example' },
{ text: 'Example', link: 'example' }, ],
], };
export const SITE = {
title: 'Astro Documentation',
description: 'Build faster websites with less client-side Javascript.',
};
export const OPEN_GRAPH = {
locale: 'en_US',
image: {
src: 'https://github.com/snowpackjs/astro/blob/main/assets/social/banner.png?raw=true',
alt: 'astro logo on a starry expanse of space,' + ' with a purple saturn-like planet floating in the right foreground',
}, },
]; twitter: 'astrodotbuild',
};

View file

@ -0,0 +1,19 @@
export const LANGUAGE_NAMES = {
English: 'en',
};
export const KNOWN_LANGUAGES = Object.values(LANGUAGE_NAMES);
export const langPathRegex = new RegExp(`\/(${KNOWN_LANGUAGES.join('|')})\/`);
export const getLanguageDetails = () => {
// @ts-ignore
let newLangWithRegion = (window.navigator.userLanguage || window.navigator.language || 'en-US').substr(0, 5);
let newLang = newLangWithRegion.substr(0, 2);
let actualDest = window.location.pathname.replace(langPathRegex, '/');
return {
newLangWithRegion,
newLang,
langPathRegex,
actualDest,
};
};

View file

@ -0,0 +1,122 @@
---
import HeadCommon from "../components/HeadCommon.astro";
import HeadSEO from "../components/HeadSEO.astro";
import Header from '../components/Header/Header.astro';
import Footer from '../components/Footer/Footer.astro';
import PageContent from '../components/PageContent/PageContent.astro';
import LeftSidebar from '../components/LeftSidebar/LeftSidebar.astro';
import RightSidebar from '../components/RightSidebar/RightSidebar.astro';
import { SITE } from "../config.ts";
const { content = {} } = Astro.props;
const currentPage = Astro.request.url.pathname;
const currentFile = `src/pages${currentPage.replace(/\/$/, "")}.md`;
const githubEditUrl = `https://github.com/snowpackjs/astro/blob/main/docs/${currentFile}`;
---
<html dir="{content.dir ?? 'ltr'}" lang="{content.lang ?? 'en-us'}" class="initial">
<head>
<HeadCommon />
<HeadSEO {content} canonicalURL={Astro.request.canonicalURL} />
<title>{content.title ? `${content.title} 🚀 ${SITE.title}` : SITE.title}</title>
<style>
body {
width: 100%;
display: grid;
grid-template-rows: var(--theme-navbar-height) 1fr;
--gutter: 0.5rem;
--doc-padding: 2rem;
}
.layout {
display: grid;
grid-auto-flow: column;
grid-template-columns:
minmax(var(--gutter), 1fr)
minmax(0, var(--max-width))
minmax(var(--gutter), 1fr);
overflow-x: hidden;
}
.layout :global(> *) {
width: 100%;
height: 100%;
}
.grid-sidebar {
height: 100vh;
position: sticky;
top: 0;
padding: 0;
}
#grid-left {
position: fixed;
background-color: var(--theme-bg);
z-index: 10;
display: none;
}
#grid-main {
padding: var(--doc-padding) var(--gutter);
grid-column: 2;
display: flex;
flex-direction: column;
height: 100%;
}
#grid-right {
display: none;
}
:global(.mobile-sidebar-toggle) {
overflow: hidden;
}
:global(.mobile-sidebar-toggle) #grid-left {
display: block;
top: 2rem;
}
@media (min-width: 50em) {
.layout {
overflow: initial;
grid-template-columns:
20rem
minmax(0, var(--max-width));
gap: 1em;
}
#grid-left {
display: flex;
padding-left: 2rem;
position: sticky;
grid-column: 1;
}
}
@media (min-width: 72em) {
.layout {
grid-template-columns:
20rem
minmax(0, var(--max-width))
18rem;
padding-left: 0;
padding-right: 0;
margin: 0 auto;
}
#grid-right {
grid-column: 3;
display: flex;
}
}
</style>
</head>
<body>
<Header currentPage={currentPage} />
<main class="layout">
<aside id="grid-left" class="grid-sidebar" title="Site Navigation">
<LeftSidebar currentPage={currentPage} />
</aside>
<div id="grid-main">
<PageContent content={content} githubEditUrl={githubEditUrl}>
<slot />
</PageContent>
</div>
<aside id="grid-right" class="grid-sidebar" title="Table of Contents">
<RightSidebar content={content} githubEditUrl={githubEditUrl} />
</aside>
</main>
</body>
</html>

View file

@ -1,6 +1,6 @@
--- ---
title: Markdown Example title: Markdown Example
layout: ../layouts/Main.astro layout: ~/layouts/MainLayout.astro
--- ---
This is a fully-featured page, written in Markdown! This is a fully-featured page, written in Markdown!
@ -17,7 +17,9 @@ Nam quam dolor, pellentesque sed odio euismod, feugiat tempus tellus. Quisque ar
```markdown ```markdown
--- ---
layout: ../layouts/Main.astro title: Markdown Page!
lang: en
layout: ~/layouts/MainLayout.astro
--- ---
# Markdown example # Markdown example

View file

@ -0,0 +1,190 @@
---
title: Getting Started
layout: ~/layouts/MainLayout.astro
---
This template already provides your pages with a side bar navigation (on the left) for your pages, and a content navigation (on the right) for your sections.
## Page navigation
The page navigation, through the side bar on the left, needs to be manually updated. Open the `config.ts` file and you will find the following structure:
```ts
export const SIDEBAR = {
en: [
{ text: 'Getting Started', header: true },
{ text: 'Introduction', link: 'en/introduction' },
{ text: 'Getting Started', link: 'en/getting-started' },
{ text: 'Example', link: 'en/example' },
],
es: [
{ text: 'Empezando', header: true },
{ text: 'Introducción', link: 'es/introduction' },
{ text: 'Empezando', link: 'es/getting-started' },
{ text: 'Ejemplo', link: 'es/example' },
],
fr: [
{ text: 'Commencer', header: true },
{ text: 'Introduction', link: 'fr/introduction' },
{ text: 'Commencer', link: 'fr/getting-started' },
{ text: 'Exemple', link: 'fr/example' },
],
};
```
The sidebar supports many languages, and each language has items to display, and pages to link to, allowing for a truly native experience for international users. You can change this file to match the pages you want to display, the object with the `{ header: true, ... }` set to true will act as a section title and cannot contain a link.
The page navigation is generated in the `src/components/LeftSidebar/LeftSidebar.astro`, so if you want to change the depth of elements displayed, styles, etc, that's the place to go.
## Section navigation
The section navigation, through the side bar on the right, is automatically generated by the `src/components/RightSidebar/RightSidebar.astro` file, it uses the meta-data from markdown files to generate the structure you see.
By default only elements from depth 2 to 5 will be displayed, and at the moment doesn't work for `.astro files`.
## Other Components
### Footer
You can edit your footer here `src/components/Footer/Footer.astro`, at the moment it is composed of a list of avatars. You can generate your own avatar [here](https://getavataaars.com/) and replace the ones from `src/components/Footer/AvatarList.astro`.
### Theme
The `src/components/RightSidebar/ThemeToggleButton.tsx` is only responsible for applying the theme, to change the theme colors see `public/theme.css`
## Multiple Languages
By default the Astro docs template encourages writing your docs in mutliple languages, it also encourages writing your docs in a specific file structure
```
📦pages
┣ 📂en
┃ ┣ 📜example.md
┃ ┣ 📜getting-started.md
┃ ┣ 📜index.astro
┃ ┗ 📜introduction.md
┣ 📂es
┃ ┣ 📜example.md
┃ ┣ 📜getting-started.md
┃ ┣ 📜index.astro
┃ ┗ 📜introduction.md
┣ 📂fr
┃ ┣ 📜example.md
┃ ┣ 📜getting-started.md
┃ ┣ 📜index.astro
┃ ┗ 📜introduction.md
┗ 📜index.astro
```
each folder within the `pages/` folder represents a language, to add new languages, you will need to create a new langauge folder,
add the langauges name to the `LANGUAGE_NAMES` variable in the [`languages.ts`](../../languages.ts) file, and add new sidebar links corrosponding to the new language. E.g. Adding Deutsch as a supported language
1. Create the `de/` folder in the pages directory
```
📦pages
┣ 📂en
┃ ┣ 📜example.md
┃ ┣ 📜getting-started.md
┃ ┣ 📜index.astro
┃ ┗ 📜introduction.md
┣ 📂de
┃ ┣ 📜example.md
┃ ┣ 📜getting-started.md
┃ ┣ 📜index.astro
┃ ┗ 📜introduction.md
┗ 📜index.astro
```
2. Add Deutsch to the `LANGUAGE_NAMES` variable in the [`languages.ts`](../../languages.ts) file
```ts
// src/languages.ts
export const LANGUAGE_NAMES = {
English: 'en',
Deutsch: 'de',
};
// ...
```
3. Add Deutch as a localized language for the SIDEBAR
```ts
// src/config.ts
export const SIDEBAR = {
en: [
{ text: 'Getting Started', header: true },
{ text: 'Introduction', link: 'en/introduction' },
{ text: 'Getting Started', link: 'en/getting-started' },
{ text: 'Example', link: 'en/example' },
],
de: [
{ text: 'Einstieg', header: true },
{ text: 'Einführung', link: 'de/introduction' },
{ text: 'Einstieg', link: 'de/getting-started' },
{ text: 'Beispiel', link: 'de/example' },
],
};
// ...
```
> _**Note**: make sure the sidebar links point to the proper language folder_
<!-- , but if you are unable to properly support multiple languages, you can disable multiple languages, you set the `DISABLE_MULTIPLE_LANGUAGES` variable in the [`config.ts`](../../config.ts) file to `true`, but you still need to change and tweak a couple more things.
After settings `DISABLE_MULTIPLE_LANGUAGES` you can now move the pages from the language folder you wish to use, e.g. I speak english, so, I would delete every other folders and files in the [`pages/`](../) folder except for the [`en/`](./) folder, I would then move the files from the [`en/`](./) folder to the [`pages/`](../) folder, delete all `index.astro` files, and finally delete the [`en/`](./) folder.
The file structure will look like this once you are done,
```
📦src
┣ 📂components
┃ ┣ ...
┣ 📂layouts
┃ ┗ 📜MainLayout.astro
┣ 📂pages
┃ ┣ 📜example.md
┃ ┣ 📜getting-started.md
┃ ┗ 📜introduction.md
┣ 📜config.ts
┗ 📜languages.ts
```
You will then need to rename `introductions.md` to `index.md`, and reorganize the `SIDEBAR` variable in the [`config.ts`](../../config.ts) file to resemble something like this (remember to change the links, since the `en/` folder has been deleted),
```ts
export const SIDEBAR = [
// index.md is the homepage, so, you don't need to set a sidebar link
{ text: 'Introduction', header: true },
{ text: 'Getting Started', link: 'getting-started' },
{ text: 'Example', link: 'example' },
]
```
and that's it. -->
## Algolia DocSearch
[Algolia](https://www.algolia.com/) offers [DocSearch](https://docsearch.algolia.com/), a _"State-of-the-art search for technical documentation"_. We use DocSearch for the Astro docs as it's a great documentation search engine, to make things setting up docs easier we built it into the docs template, you can setup DocSearch for your site by following these instructions, ...
### 🛠 Configuration
...
## Documentation
For more information on how to use Astro components, check the documentation pages:
- [Quick Start](https://docs.astro.build/quick-start)
- [astro.config.mjs](https://docs.astro.build/reference/configuration-reference)
- [API](https://docs.astro.build/reference/api-reference)
- [Command Line Interface](https://docs.astro.build/reference/cli-reference)
- [Collections](https://docs.astro.build/core-concepts/collections)
- [Development Server](https://docs.astro.build/reference/dev/)
- [Markdown](https://docs.astro.build/guides/markdown-content)
- [Publishing Astro components](https://docs.astro.build/guides/publish-to-npm)
- [Renderers](https://docs.astro.build/reference/renderer-reference)
- [Styling](https://docs.astro.build/guides/styling)
- [.astro Syntax](https://docs.astro.build/core-concepts/astro-components)

View file

@ -0,0 +1,5 @@
---
import REDIRECT from "../index.astro";
---
<REDIRECT />

View file

@ -1,6 +1,6 @@
--- ---
title: Hello, Documentation! title: Hello, Documentation!
layout: ../layouts/Main.astro layout: ~/layouts/MainLayout.astro
--- ---
<img src="https://github.com/snowpackjs/astro/blob/main/assets/social/banner.png?raw=true" alt="Astro" width="638" height="320" > <img src="https://github.com/snowpackjs/astro/blob/main/assets/social/banner.png?raw=true" alt="Astro" width="638" height="320" >
@ -39,6 +39,7 @@ The default Astro project has the following `scripts` in the `/package.json` fil
```json ```json
{ {
"scripts": { "scripts": {
"start": "astro dev",
"dev": "astro dev", "dev": "astro dev",
"build": "astro build", "build": "astro build",
"preview": "astro preview" "preview": "astro preview"

View file

@ -1,59 +0,0 @@
---
title: Getting Started
layout: ../layouts/Main.astro
---
This template already provides your pages with a side bar navigation (on the left) for your pages, and a content navigation (on the right) for your sections.
## Page navigation
The page navigation, through the side bar on the left, needs to be manually updated. Open the `config.ts` file and you will find the following structure:
```ts
export const sidebar = [
{
text: 'Introduction',
link: '', // No leading slash needed, so this links to the homepage
children: [
{ text: 'Getting Started', link: 'getting-started' },
{ text: 'Example', link: 'example' },
],
},
];
```
You can change this file to match the pages you want to display, the items within `children` can also have children elements, but only the first level and second levels will be displayed.
The page navigation is generated in the `src/components/SiteSidebar.astro`, so if you want to change the depth of elements displayed, styles, etc, that's the place to go.
## Section navigation
The section navigation, through the side bar on the right, is automatically generated by the `src/components/DocSidebar.tsx` file, it uses the meta-data from markdown files to generate the structure you see.
By default only elements from depth 2 to 5 will be displayed, and at the moment doesn't work for `.astro files`.
## Other Components
### Footer
You can edit your footer here `src/components/ArticleFooter.astro`, at the moment it is composed of a list of avatars. You can generate your own avatar [here](https://getavataaars.com/) and replace the ones from `AvatarList.astro`.
### Theme
The `src/components/ThemeToggle.tsx` is only responsible for applying the theme, to change the theme colors see `public/theme.css`
## Documentation
For more information on how to use Astro components, check the documentation pages:
- [Quick Start](https://docs.astro.build/quick-start)
- [astro.config.mjs](https://docs.astro.build/reference/configuration-reference)
- [API](https://docs.astro.build/reference/api-reference)
- [Command Line Interface](https://docs.astro.build/reference/cli-reference)
- [Collections](https://docs.astro.build/core-concepts/collections)
- [Development Server](https://docs.astro.build/reference/dev/)
- [Markdown](https://docs.astro.build/guides/markdown-content)
- [Publishing Astro components](https://docs.astro.build/guides/publish-to-npm)
- [Renderers](https://docs.astro.build/reference/renderer-reference)
- [Styling](https://docs.astro.build/guides/styling)
- [.astro Syntax](https://docs.astro.build/core-concepts/astro-components)

View file

@ -0,0 +1,24 @@
---
import Layout from '../layouts/MainLayout.astro';
import { KNOWN_LANGUAGES } from "../languages";
---
<div id="known_languages" hidden>{KNOWN_LANGUAGES.join(",")}</div>
<script>
// WIP: trigger a client-side redirect based on the browser language.
// A vercel.json redirect is enforced in production, so no user should ever see this page.
// Remove the vercel.json redirect when this is ready.
const KNOWN_LANGUAGES = document.querySelector("#known_languages")?.textContent?.split(",") ?? ['bg', 'de','en','es','fi','nl','pt-br','zh-CN','zh-TW', 'fr'];
let newLangWithRegion = (window.navigator.userLanguage || window.navigator.language || 'en-US').substr(0, 5);
let newLang = newLangWithRegion.substr(0, 2);
let langPathRegex = new RegExp(`\/(${KNOWN_LANGUAGES.join("|")})\/`);
let actualDest = window.location.pathname.replace(langPathRegex, "/");
if (actualDest == "/") actualDest = `/introduction`;
if (KNOWN_LANGUAGES.includes(newLangWithRegion)) {
window.location.pathname = '/' + newLangWithRegion + actualDest;
} else if (KNOWN_LANGUAGES.includes(newLang)) {
window.location.pathname = '/' + newLang + actualDest;
} else {
window.location.pathname = actualDest;
}
</script>

View file

@ -1,3 +1,8 @@
{ {
"compilerOptions": {
"target": "es2020",
"module": "esnext",
"jsx": "preserve"
},
"moduleResolution": "node" "moduleResolution": "node"
} }

View file

@ -1,23 +1 @@
<img src="https://github.com/snowpackjs/astro/blob/main/assets/social/banner.png?raw=true" /> packages/astro/README.md
**Astro** is a _fresh but familiar_ approach to building websites. Astro combines decades of proven performance best practices with the DX improvements of the component-oriented era. Use your favorite JavaScript framework and automatically ship the bare-minimum amount of JavaScript—by default.
### [Announcement Post →](https://astro.build/blog/introducing-astro)
### [Full Documentation Site →](https://docs.astro.build/)
## Project Status
⚠️ **Astro is still an early beta, missing features and bugs are to be expected!** If you can stomach it, then Astro-built sites are production ready and several production websites built with Astro already exist in the wild. We will update this note once we get closer to a stable, v1.0 release.
## Quick Start
```bash
# get started with astro in 3 easy steps:
mkdir new-project-directory
cd new-project-directory
npm init astro
```
### [Full Documentation Site →](https://docs.astro.build/)

627
yarn.lock
View file

@ -2,109 +2,109 @@
# yarn lockfile v1 # yarn lockfile v1
"@algolia/cache-browser-local-storage@4.10.4": "@algolia/cache-browser-local-storage@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.4.tgz#d6799fef0f107ac8e99a991a846b851ef7b0f8ad" resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.5.tgz#961cf07cf59955de17af13bd74f7806bd2119553"
integrity sha512-oNCRQWI9cTYqNkyt+lelkqF5Z3sQNSJ2OT9tK5w0587IJNWqkzZzqipJyWHZv2sWyBbOboDrwZfZUcik3y0Qrg== integrity sha512-cfX2rEKOtuuljcGI5DMDHClwZHdDqd2nT2Ohsc8aHtBiz6bUxKVyIqxr2gaC6tU8AgPtrTVBzcxCA+UavXpKww==
dependencies: dependencies:
"@algolia/cache-common" "4.10.4" "@algolia/cache-common" "4.10.5"
"@algolia/cache-common@4.10.4": "@algolia/cache-common@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.4.tgz#c4976256bd1373e849caf310dd2bc3d7c413f03e" resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.10.5.tgz#9510419e9dfb6d8814582c6b20615196f213a9d6"
integrity sha512-R2Sbg8zvVMsxFDKWQYAZD1cQIEO6J00dZFjFfYDMTH+r/t2CCOZal2EFGnHl7FcgTIEUsSrNJUzLefL8NM8/iA== integrity sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw==
"@algolia/cache-in-memory@4.10.4": "@algolia/cache-in-memory@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.4.tgz#eacadfee2ad8961c84d3fc9bf94db341a9f24504" resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.10.5.tgz#de9331cb86734bf7f7624063cdaa639e43509be1"
integrity sha512-ReQnhekfAvYFRu2odShmMxPM2OcRjSK1Atncam2HSu7Zt/51gtQp6WJMm7K+Mb3y+mT+ckBbOTamv/uTREcu2A== integrity sha512-+ciQnfIGi5wjMk02XhEY8fmy2pzy+oY1nIIfu8LBOglaSipCRAtjk6WhHc7/KIbXPiYzIwuDbM2K1+YOwSGjwA==
dependencies: dependencies:
"@algolia/cache-common" "4.10.4" "@algolia/cache-common" "4.10.5"
"@algolia/client-account@4.10.4": "@algolia/client-account@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.4.tgz#b9730a2c067380419f5b23d0b77b6c4e2d081cca" resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.10.5.tgz#82f7c330fc5f0625b5b559afe9c6b1aa6722b6cf"
integrity sha512-Wtr91lXidDh5niXL0LPWxCluRdKA2CDpE2O/RKc9uMNDYCzCOkAxF2CcUuIpEW0IceO0D3d8n/TLuuKOIk2mww== integrity sha512-I9UkSS2glXm7RBZYZIALjBMmXSQbw/fI/djPcBHxiwXIheNIlqIFl2SNPkvihpPF979BSkzjqdJNRPhE1vku3Q==
dependencies: dependencies:
"@algolia/client-common" "4.10.4" "@algolia/client-common" "4.10.5"
"@algolia/client-search" "4.10.4" "@algolia/client-search" "4.10.5"
"@algolia/transporter" "4.10.4" "@algolia/transporter" "4.10.5"
"@algolia/client-analytics@4.10.4": "@algolia/client-analytics@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.4.tgz#830e17f87e878863294e438690c64e4c2520938f" resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.10.5.tgz#269e47c9de7e53e9e05e4a2d3c380607c3d2631f"
integrity sha512-CNOqWwq735i2kDh4DWk9Y4AN4mPIYOOec83xeWRnlSTfoL6DbLWVZTNBHi7Mi97h3prKVpr/Zm4f46RPrTYSsA== integrity sha512-h2owwJSkovPxzc+xIsjY1pMl0gj+jdVwP9rcnGjlaTY2fqHbSLrR9yvGyyr6305LvTppxsQnfAbRdE/5Z3eFxw==
dependencies: dependencies:
"@algolia/client-common" "4.10.4" "@algolia/client-common" "4.10.5"
"@algolia/client-search" "4.10.4" "@algolia/client-search" "4.10.5"
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/transporter" "4.10.4" "@algolia/transporter" "4.10.5"
"@algolia/client-common@4.10.4": "@algolia/client-common@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.4.tgz#a3b6874d4873249c10e4ca10e3a2a453b36df7ae" resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.10.5.tgz#a7d0833796a9a2da68be16be76b6dc3962bf2f18"
integrity sha512-O5GcD/7JW7eLlLPc2AUGUHmWP95JZthivpiOmwloAVR1DFvgKZL3+1e3/e1wederPA3ETvz80++aL+6yPRhb8w== integrity sha512-21FAvIai5qm8DVmZHm2Gp4LssQ/a0nWwMchAx+1hIRj1TX7OcdW6oZDPyZ8asQdvTtK7rStQrRnD8a95SCUnzA==
dependencies: dependencies:
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/transporter" "4.10.4" "@algolia/transporter" "4.10.5"
"@algolia/client-personalization@4.10.4": "@algolia/client-personalization@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.4.tgz#047909c626266803ddd0b1c08033f4429c1efb55" resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.10.5.tgz#78a8fb8161bdbeaa66b400b3283640ef689e155b"
integrity sha512-n5lb4DXLhk0rbCBSE2TgjKko+NCX0/lNBCSTszdanznkdA8NaHnOdy0/LvDoXh2ZYAMJx2etZvfWLYcSLO8cGQ== integrity sha512-nH+IyFKBi8tCyzGOanJTbXC5t4dspSovX3+ABfmwKWUYllYzmiQNFUadpb3qo+MLA3jFx5IwBesjneN6dD5o3w==
dependencies: dependencies:
"@algolia/client-common" "4.10.4" "@algolia/client-common" "4.10.5"
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/transporter" "4.10.4" "@algolia/transporter" "4.10.5"
"@algolia/client-search@4.10.4": "@algolia/client-search@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.4.tgz#d14f9ded350cf2b5807561e10105d377f86223b5" resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.10.5.tgz#47907232a3e4ecf2aa4459b8de17242afd88147c"
integrity sha512-qqSKogn85YTub8g01N4tcctsowbxq+QJzzzHSQA0+j4Pw93CguinDpX6mU/WbLIZIu2eaTeAQ7pORual3Li0yA== integrity sha512-1eQFMz9uodrc5OM+9HeT+hHcfR1E1AsgFWXwyJ9Q3xejA2c1c4eObGgOgC9ZoshuHHdptaTN1m3rexqAxXRDBg==
dependencies: dependencies:
"@algolia/client-common" "4.10.4" "@algolia/client-common" "4.10.5"
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/transporter" "4.10.4" "@algolia/transporter" "4.10.5"
"@algolia/logger-common@4.10.4": "@algolia/logger-common@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.4.tgz#72c42a2b4a4335e0049108481fa0e9b9fd84cfa2" resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.10.5.tgz#cf807107e755ad4a72c5afc787e968ff1196f1cc"
integrity sha512-B4D6HqS2TDcf6S8YEr9cFm8S7eswIniojC8IFoCtlfMxhCj2OM70rH1eqfY2VQy/KPY1txYPdMPk8AG8685fHg== integrity sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA==
"@algolia/logger-console@4.10.4": "@algolia/logger-console@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.4.tgz#61565ca5eca3ff978d165e78054dd5340c0c2a2d" resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.10.5.tgz#f961a7a7c6718c3f3842fb9b522d47b03b9df8ad"
integrity sha512-217KiWZ66BcQ5begHhD+h8mNTjOHvTmUYV203pXteExOgfAm/gzQ4GzzAwXVAhCID2tzRDObfDq8M3BCMp8NPA== integrity sha512-4WfIbn4253EDU12u9UiYvz+QTvAXDv39mKNg9xSoMCjKE5szcQxfcSczw2byc6pYhahOJ9PmxPBfs1doqsdTKQ==
dependencies: dependencies:
"@algolia/logger-common" "4.10.4" "@algolia/logger-common" "4.10.5"
"@algolia/requester-browser-xhr@4.10.4": "@algolia/requester-browser-xhr@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.4.tgz#e6873b354e15c8e4676e3086e2b8eec95d973f7f" resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.5.tgz#7063e3bc6d9c72bc535e1794352eddf47459dfe6"
integrity sha512-a8sEt9WQeolA/ZCSfhd2ImH+8v7o45359Omn2iBXzB3+UD/fo1jOFcDgyX35AusXw8pNtDI/Jd4n0vBYJvtSWg== integrity sha512-53/MURQEqtK+bGdfq4ITSPwTh5hnADU99qzvpAINGQveUFNSFGERipJxHjTJjIrjFz3vxj5kKwjtxDnU6ygO9g==
dependencies: dependencies:
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/requester-common@4.10.4": "@algolia/requester-common@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.4.tgz#93c042d201287b1623db3d6d4b0e91dfb64a5971" resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.10.5.tgz#52abfbf10b743d26afd3ce20f62771bc393ff4f0"
integrity sha512-RkAxkX/z8DAHUGg0vtZkY/lZXBPc/aEUf/DmWPp2dspAiCp1ekYlyf+qLNwOwEHMu+Q6nm+meStpAUl0BpsNVg== integrity sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q==
"@algolia/requester-node-http@4.10.4": "@algolia/requester-node-http@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.4.tgz#413701d24b87220f78645ae7caadc429af8a8217" resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.10.5.tgz#db7e9ece1fda1b71a28c8e623666aaa096320b5c"
integrity sha512-iixy8GOrj0A4sIQX2Q0GChc1z3iM6LF8fJNXVXG629hbXlssEECAl8wO3+6bqAOgbCLiYeY9Aj3QsJyA6vJ4Iw== integrity sha512-aNEKVKXL4fiiC+bS7yJwAHdxln81ieBwY3tsMCtM4zF9f5KwCzY2OtN4WKEZa5AAADVcghSAUdyjs4AcGUlO5w==
dependencies: dependencies:
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/transporter@4.10.4": "@algolia/transporter@4.10.5":
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.4.tgz#aec3bb3b87569ceec331861fe2c6ca6698a48d19" resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.10.5.tgz#9354989f12af3e2ce7d3109a94f519d467a960e0"
integrity sha512-I60q9+4mYo3D9qIsUYaxU8ZukJVG/DWn1FBAeB5bW9c6/+chmppYJ5CJd/ZvKYEWd7ESwaRrrceYev94O4VrWw== integrity sha512-F8DLkmIlvCoMwSCZA3FKHtmdjH3o5clbt0pi2ktFStVNpC6ZDmY307HcK619bKP5xW6h8sVJhcvrLB775D2cyA==
dependencies: dependencies:
"@algolia/cache-common" "4.10.4" "@algolia/cache-common" "4.10.5"
"@algolia/logger-common" "4.10.4" "@algolia/logger-common" "4.10.5"
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@babel/code-frame@7.12.11": "@babel/code-frame@7.12.11":
version "7.12.11" version "7.12.11"
@ -287,7 +287,7 @@
chalk "^2.0.0" chalk "^2.0.0"
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/parser@*", "@babel/parser@^7.12.0", "@babel/parser@^7.13.15", "@babel/parser@^7.13.9", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.4.5": "@babel/parser@*", "@babel/parser@^7.13.15", "@babel/parser@^7.14.5", "@babel/parser@^7.15.0", "@babel/parser@^7.4.5":
version "7.15.3" version "7.15.3"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862"
integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==
@ -341,7 +341,7 @@
debug "^4.1.0" debug "^4.1.0"
globals "^11.1.0" globals "^11.1.0"
"@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.0", "@babel/types@^7.13.0", "@babel/types@^7.14.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0": "@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.14.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.3.0":
version "7.15.0" version "7.15.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"
integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==
@ -561,25 +561,6 @@
"@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28" "@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28"
algoliasearch "^4.0.0" algoliasearch "^4.0.0"
"@emmetio/abbreviation@^2.2.2":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@emmetio/abbreviation/-/abbreviation-2.2.2.tgz#746762fd9e7a8c2ea604f580c62e3cfe250e6989"
integrity sha512-TtE/dBnkTCct8+LntkqVrwqQao6EnPAs1YN3cUgxOxTaBlesBCY37ROUAVZrRlG64GNnVShdl/b70RfAI3w5lw==
dependencies:
"@emmetio/scanner" "^1.0.0"
"@emmetio/css-abbreviation@^2.1.4":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz#90362e8a1122ce3b76f6c3157907d30182f53f54"
integrity sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==
dependencies:
"@emmetio/scanner" "^1.0.0"
"@emmetio/scanner@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
"@eslint/eslintrc@^0.4.3": "@eslint/eslintrc@^0.4.3":
version "0.4.3" version "0.4.3"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
@ -605,6 +586,11 @@
resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz#a5ad7996f42e43e4acbb4e0010d663746d0e9997" resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz#a5ad7996f42e43e4acbb4e0010d663746d0e9997"
integrity sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w== integrity sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w==
"@gar/promisify@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
"@hapi/hoek@^9.0.0": "@hapi/hoek@^9.0.0":
version "9.2.0" version "9.2.0"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131"
@ -1433,6 +1419,14 @@
resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a"
integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==
"@npmcli/fs@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f"
integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==
dependencies:
"@gar/promisify" "^1.0.1"
semver "^7.3.5"
"@npmcli/git@^2.1.0": "@npmcli/git@^2.1.0":
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6"
@ -1712,9 +1706,9 @@
integrity sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g== integrity sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==
"@snowpack/plugin-dotenv@^2.1.0": "@snowpack/plugin-dotenv@^2.1.0":
version "2.1.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/@snowpack/plugin-dotenv/-/plugin-dotenv-2.1.0.tgz#dac77007bf657f999d222318506a850fd7d16875" resolved "https://registry.yarnpkg.com/@snowpack/plugin-dotenv/-/plugin-dotenv-2.2.0.tgz#624348a83e28ae523a7d2695cbe81f53381bc964"
integrity sha512-NvwB+kQuxKheZLWrRvOgXB8i0cXhuIkljbgCn02fRGCIOigPIDk1jZrnn3x9skqqtul/XvW9dNulVi6Fa7CN6g== integrity sha512-/gj91mHz9iPi7e393sibVfpm4jrG7hqZytgkfiscOIWJ8Y838D0jX1JFXu9IAThZz0IEKTLpb74d5A7pM00HVg==
dependencies: dependencies:
dotenv "^8.2.0" dotenv "^8.2.0"
dotenv-expand "^5.1.0" dotenv-expand "^5.1.0"
@ -1880,20 +1874,13 @@
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/mdast@^3.0.0": "@types/mdast@^3.0.0", "@types/mdast@^3.0.3":
version "3.0.10" version "3.0.10"
resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af"
integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==
dependencies: dependencies:
"@types/unist" "*" "@types/unist" "*"
"@types/mdast@^3.0.3":
version "3.0.9"
resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.9.tgz#3f7fa18faf9e567da9aa49e44ecc76ad33c359ce"
integrity sha512-IUlIhG2KNPjOEuXIblTjovD1XW8HPGeulA12nEyc6xhO4Yrrcs+xczAl4ucR3cpwVlE+vb2x9Z7pRmVP4bUHng==
dependencies:
"@types/unist" "*"
"@types/mdurl@^1.0.0": "@types/mdurl@^1.0.0":
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9"
@ -1933,19 +1920,19 @@
form-data "^3.0.0" form-data "^3.0.0"
"@types/node@*": "@types/node@*":
version "16.7.1" version "16.7.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz#c6b9198178da504dfca1fd0be9b2e1002f1586f0" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.2.tgz#0465a39b5456b61a04d98bd5545f8b34be340cb7"
integrity sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A== integrity sha512-TbG4TOx9hng8FKxaVrCisdaxKxqEwJ3zwHoCWXZ0Jw6mnvTInpaB99/2Cy4+XxpXtjNv9/TgfGSvZFyfV/t8Fw==
"@types/node@^12.7.1": "@types/node@^12.7.1":
version "12.20.20" version "12.20.21"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.20.tgz#ce3d6c13c15c5e622a85efcd3a1cb2d9c7fa43a6" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.21.tgz#575e91f59c2e79318c2d39a48286c6954e484fd5"
integrity sha512-kqmxiJg4AT7rsSPIhO6eoBIx9mNwwpeH42yjtgQh6X2ANSpLpvToMXv+LMFdfxpwG1FZXZ41OGZMiUAtbBLEvg== integrity sha512-Qk7rOvV2A4vNgXNS88vEvbJE1NDFPCQ8AU+pNElrU2bA4yrRDef3fg3SUe+xkwyin3Bpg/Xh5JkNWTlsOcS2tA==
"@types/node@^14.14.31": "@types/node@^14.14.31":
version "14.17.11" version "14.17.12"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.11.tgz#82d266d657aec5ff01ca59f2ffaff1bb43f7bf0f" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.12.tgz#7a31f720b85a617e54e42d24c4ace136601656c7"
integrity sha512-n2OQ+0Bz6WEsUjrvcHD1xZ8K+Kgo4cn9/w94s1bJS690QMUWfJPW/m7CCb7gPkA1fcYwL2UpjXP/rq/Eo41m6w== integrity sha512-vhUqgjJR1qxwTWV5Ps5txuy2XMdf7Fw+OrdChRboy8BmWUPkckOhphaohzFG6b8DW7CrxaBMdrdJ47SYFq1okw==
"@types/normalize-package-data@^2.4.0": "@types/normalize-package-data@^2.4.0":
version "2.4.1" version "2.4.1"
@ -2023,11 +2010,6 @@
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d"
integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==
"@types/vscode@^1.52.0":
version "1.59.0"
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.59.0.tgz#11c93f5016926126bf30b47b9ece3bd617eeef31"
integrity sha512-Zg38rusx2nU6gy6QdF7v4iqgxNfxzlBlDhrRCjOiPQp+sfaNrp3f9J6OHIhpGNN1oOAca4+9Hq0+8u3jwzPMlQ==
"@types/yargs-parser@^20.2.0": "@types/yargs-parser@^20.2.0":
version "20.2.1" version "20.2.1"
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
@ -2102,39 +2084,40 @@
"@typescript-eslint/types" "4.29.3" "@typescript-eslint/types" "4.29.3"
eslint-visitor-keys "^2.0.0" eslint-visitor-keys "^2.0.0"
"@vue/compiler-core@3.2.4": "@vue/compiler-core@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.4.tgz#a98d295771998c1e8dccc4ee3d52feb14b02aea9" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.6.tgz#7162bb0670273f04566af0d353009187ab577915"
integrity sha512-c8NuQq7mUXXxA4iqD5VUKpyVeklK53+DMbojYMyZ0VPPrb0BUWrZWFiqSDT+MFDv0f6Hv3QuLiHWb1BWMXBbrw== integrity sha512-vbwnz7+OhtLO5p5i630fTuQCL+MlUpEMTKHuX+RfetQ+3pFCkItt2JUH+9yMaBG2Hkz6av+T9mwN/acvtIwpbw==
dependencies: dependencies:
"@babel/parser" "^7.12.0" "@babel/parser" "^7.15.0"
"@babel/types" "^7.12.0" "@babel/types" "^7.15.0"
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
estree-walker "^2.0.1" estree-walker "^2.0.2"
source-map "^0.6.1" source-map "^0.6.1"
"@vue/compiler-dom@3.2.4": "@vue/compiler-dom@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.4.tgz#3a43de243eba127abbe57e796a0b969d2df78c08" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.6.tgz#3764d7fe1a696e39fb2a3c9d638da0749e369b2d"
integrity sha512-uj1nwO4794fw2YsYas5QT+FU/YGrXbS0Qk+1c7Kp1kV7idhZIghWLTjyvYibpGoseFbYLPd+sW2/noJG5H04EQ== integrity sha512-+a/3oBAzFIXhHt8L5IHJOTP4a5egzvpXYyi13jR7CUYOR1S+Zzv7vBWKYBnKyJLwnrxTZnTQVjeHCgJq743XKg==
dependencies: dependencies:
"@vue/compiler-core" "3.2.4" "@vue/compiler-core" "3.2.6"
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
"@vue/compiler-sfc@^3.0.10": "@vue/compiler-sfc@^3.0.10":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.4.tgz#9807868cc950291f163c3930a81bb16e870df097" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.6.tgz#d6ab7410cff57081ab627b15a1ea51a1072c7cf1"
integrity sha512-GM+ouDdDzhqgkLmBH4bgq4kiZxJQArSppJiZHWHIx9XRaefHLmc1LBNPmN8ivm4SVfi2i7M2t9k8ZnjsScgzPQ== integrity sha512-Ariz1eDsf+2fw6oWXVwnBNtfKHav72RjlWXpEgozYBLnfRPzP+7jhJRw4Nq0OjSsLx2HqjF3QX7HutTjYB0/eA==
dependencies: dependencies:
"@babel/parser" "^7.13.9" "@babel/parser" "^7.15.0"
"@babel/types" "^7.13.0" "@babel/types" "^7.15.0"
"@types/estree" "^0.0.48" "@types/estree" "^0.0.48"
"@vue/compiler-core" "3.2.4" "@vue/compiler-core" "3.2.6"
"@vue/compiler-dom" "3.2.4" "@vue/compiler-dom" "3.2.6"
"@vue/compiler-ssr" "3.2.4" "@vue/compiler-ssr" "3.2.6"
"@vue/shared" "3.2.4" "@vue/ref-transform" "3.2.6"
"@vue/shared" "3.2.6"
consolidate "^0.16.0" consolidate "^0.16.0"
estree-walker "^2.0.1" estree-walker "^2.0.2"
hash-sum "^2.0.0" hash-sum "^2.0.0"
lru-cache "^5.1.1" lru-cache "^5.1.1"
magic-string "^0.25.7" magic-string "^0.25.7"
@ -2144,50 +2127,61 @@
postcss-selector-parser "^6.0.4" postcss-selector-parser "^6.0.4"
source-map "^0.6.1" source-map "^0.6.1"
"@vue/compiler-ssr@3.2.4": "@vue/compiler-ssr@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.4.tgz#be51f219c2042b3e530373e60bc126ada6bb1cc0" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.6.tgz#cadcf199859fa00739f4275b4c85970e4b0abe7d"
integrity sha512-bKZuXu9/4XwsFHFWIKQK+5kN7mxIIWmMmT2L4VVek7cvY/vm3p4WTsXYDGZJy0htOTXvM2ifr6sflg012T0hsw== integrity sha512-A7IKRKHSyPnTC4w1FxHkjzoyjXInsXkcs/oX22nBQ+6AWlXj2Tt1le96CWPOXy5vYlsTYkF1IgfBaKIdeN/39g==
dependencies: dependencies:
"@vue/compiler-dom" "3.2.4" "@vue/compiler-dom" "3.2.6"
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
"@vue/reactivity@3.2.4": "@vue/reactivity@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.4.tgz#a020ad7e50f674219a07764b105b5922e61597ea" resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.6.tgz#b8993fa6f48545178e588e25a9c9431a1c1b7d50"
integrity sha512-ljWTR0hr8Tn09hM2tlmWxZzCBPlgGLnq/k8K8X6EcJhtV+C8OzFySnbWqMWataojbrQOocThwsC8awKthSl2uQ== integrity sha512-8vIDD2wpCnYisNNZjmcIj+Rixn0uhZNY3G1vzlgdVdLygeRSuFjkmnZk6WwvGzUWpKfnG0e/NUySM3mVi59hAA==
dependencies: dependencies:
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
"@vue/runtime-core@3.2.4": "@vue/ref-transform@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.4.tgz#da5dde3dc1e48df99dd31ea9a972f5c02acdc3f5" resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.6.tgz#30b5f1fa77daf9894bc23e6a5a0e3586a4a796b8"
integrity sha512-W6PtEOs8P8jKYPo3JwaMAozZQivxInUleGfNwI2pK1t8ZLZIxn4kAf7p4VF4jJdQB8SZBzpfWdLUc06j7IOmpQ== integrity sha512-ie39+Y4nbirDLvH+WEq6Eo/l3n3mFATayqR+kEMSphrtMW6Uh/eEMx1Gk2Jnf82zmj3VLRq7dnmPx72JLcBYkQ==
dependencies: dependencies:
"@vue/reactivity" "3.2.4" "@babel/parser" "^7.15.0"
"@vue/shared" "3.2.4" "@vue/compiler-core" "3.2.6"
"@vue/shared" "3.2.6"
estree-walker "^2.0.2"
magic-string "^0.25.7"
"@vue/runtime-dom@3.2.4": "@vue/runtime-core@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.4.tgz#1025595f2ae99a12fe0e1e6bce8df6761efec24b" resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.6.tgz#376baeef7fe02a62377d46d0d0a8ab9510db1d8e"
integrity sha512-HcVtLyn2SGwsf6BFPwkvDPDOhOqkOKcfHDpBp5R1coX+qMsOFrY8lJnGXIY+JnxqFjND00E9+u+lq5cs/W7ooA== integrity sha512-3mqtgpj/YSGFxtvTufSERRApo92B16JNNxz9p+5eG6PPuqTmuRJz214MqhKBEgLEAIQ6R6YCbd83ZDtjQnyw2g==
dependencies: dependencies:
"@vue/runtime-core" "3.2.4" "@vue/reactivity" "3.2.6"
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
"@vue/runtime-dom@3.2.6":
version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.6.tgz#0f74dbca84d56c222fbfbd53415b260386859a3b"
integrity sha512-fq33urnP0BNCGm2O3KCzkJlKIHI80C94HJ4qDZbjsTtxyOn5IHqwKSqXVN3RQvO6epcQH+sWS+JNwcNDPzoasg==
dependencies:
"@vue/runtime-core" "3.2.6"
"@vue/shared" "3.2.6"
csstype "^2.6.8" csstype "^2.6.8"
"@vue/server-renderer@^3.2.0": "@vue/server-renderer@^3.2.0":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.4.tgz#7d465a0e3c8d4eefd45b21c4b968269880a02215" resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.6.tgz#f6e0e6160e57dea894dc88f616451f9e6558329b"
integrity sha512-ai9WxJ78nnUDk+26vwZhlA1Quz3tA+90DgJX6iseen2Wwnndd91xicFW+6ROR/ZP0yFNuQ017eZJBw8OqoPL+w== integrity sha512-Izc4F79W8Q36qLV442Yp1xOdwekb5DwA2p8wFsWmhgDLDeZOP9LeyYqN5BduDtAfLVe7gHOwt2Xg7QQltSVuBA==
dependencies: dependencies:
"@vue/compiler-ssr" "3.2.4" "@vue/compiler-ssr" "3.2.6"
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
"@vue/shared@3.2.4": "@vue/shared@3.2.6":
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.4.tgz#ba2a09527afff27b28d08f921b4a597e9504ca7a" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.6.tgz#2c22bae88fe2b7b59fa68a9c9c4cd60bae2c1794"
integrity sha512-j2j1MRmjalVKr3YBTxl/BClSIc8UQ8NnPpLYclxerK65JIowI4O7n8O8lElveEtEoHxy1d7BelPUDI0Q4bumqg== integrity sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw==
"@webcomponents/template-shadowroot@^0.1.0": "@webcomponents/template-shadowroot@^0.1.0":
version "0.1.0" version "0.1.0"
@ -2327,24 +2321,24 @@ algoliasearch@^3.24.5:
tunnel-agent "^0.6.0" tunnel-agent "^0.6.0"
algoliasearch@^4.0.0: algoliasearch@^4.0.0:
version "4.10.4" version "4.10.5"
resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.4.tgz#500e66db668b0b7cedb36e9135a4fa719f236e59" resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.10.5.tgz#1faf34a3ae5ac3bef27282eb141251c70c7f5db2"
integrity sha512-noZ59PZYyYJVsm78YEo6EXH5DgaU0jSKf17xxJ3q9WtpBkmiaNk5b53mSJFsAI3c5gMOWgXM4+4o1EEaCbXXGg== integrity sha512-KmH2XkiN+8FxhND4nWFbQDkIoU6g2OjfeU9kIv4Lb+EiOOs3Gpp7jvd+JnatsCisAZsnWQdjd7zVlW7I/85QvQ==
dependencies: dependencies:
"@algolia/cache-browser-local-storage" "4.10.4" "@algolia/cache-browser-local-storage" "4.10.5"
"@algolia/cache-common" "4.10.4" "@algolia/cache-common" "4.10.5"
"@algolia/cache-in-memory" "4.10.4" "@algolia/cache-in-memory" "4.10.5"
"@algolia/client-account" "4.10.4" "@algolia/client-account" "4.10.5"
"@algolia/client-analytics" "4.10.4" "@algolia/client-analytics" "4.10.5"
"@algolia/client-common" "4.10.4" "@algolia/client-common" "4.10.5"
"@algolia/client-personalization" "4.10.4" "@algolia/client-personalization" "4.10.5"
"@algolia/client-search" "4.10.4" "@algolia/client-search" "4.10.5"
"@algolia/logger-common" "4.10.4" "@algolia/logger-common" "4.10.5"
"@algolia/logger-console" "4.10.4" "@algolia/logger-console" "4.10.5"
"@algolia/requester-browser-xhr" "4.10.4" "@algolia/requester-browser-xhr" "4.10.5"
"@algolia/requester-common" "4.10.4" "@algolia/requester-common" "4.10.5"
"@algolia/requester-node-http" "4.10.4" "@algolia/requester-node-http" "4.10.5"
"@algolia/transporter" "4.10.4" "@algolia/transporter" "4.10.5"
ansi-align@^2.0.0: ansi-align@^2.0.0:
version "2.0.0" version "2.0.0"
@ -2534,14 +2528,6 @@ astring@^1.7.4:
resolved "https://registry.yarnpkg.com/astring/-/astring-1.7.5.tgz#a7d47fceaf32b052d33a3d07c511efeec67447ca" resolved "https://registry.yarnpkg.com/astring/-/astring-1.7.5.tgz#a7d47fceaf32b052d33a3d07c511efeec67447ca"
integrity sha512-lobf6RWXb8c4uZ7Mdq0U12efYmpD1UFnyOWVJPTa3ukqZrMopav+2hdNu0hgBF0JIBFK9QgrBDfwYvh3DFJDAA== integrity sha512-lobf6RWXb8c4uZ7Mdq0U12efYmpD1UFnyOWVJPTa3ukqZrMopav+2hdNu0hgBF0JIBFK9QgrBDfwYvh3DFJDAA==
"astro-scripts@file:scripts":
version "0.0.1"
dependencies:
arg "^5.0.0"
esbuild "^0.11.16"
globby "^11.0.3"
tar "^6.1.0"
async-limiter@~1.0.0: async-limiter@~1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
@ -2572,12 +2558,12 @@ autocomplete.js@0.36.0:
immediate "^3.2.3" immediate "^3.2.3"
autoprefixer@^10.2.5, autoprefixer@^10.2.6: autoprefixer@^10.2.5, autoprefixer@^10.2.6:
version "10.3.2" version "10.3.3"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.2.tgz#836e4b4f59eb6876c41012c1c937be74035f3ec8" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.3.tgz#4bac89c74ef98e6a40fe1c5b76c0d1c91db153ce"
integrity sha512-RHKq0YCvhxAn9987n0Gl6lkzLd39UKwCkUPMFE0cHhxU0SvcTjBxWG/CtkZ4/HvbqK9U5V8j03nAcGBlX3er/Q== integrity sha512-yRzjxfnggrP/+qVHlUuZz5FZzEbkT+Yt0/Df6ScEMnbbZBLzYB2W0KLxoQCW+THm1SpOsM1ZPcTHAwuvmibIsQ==
dependencies: dependencies:
browserslist "^4.16.8" browserslist "^4.16.8"
caniuse-lite "^1.0.30001251" caniuse-lite "^1.0.30001252"
colorette "^1.3.0" colorette "^1.3.0"
fraction.js "^4.1.1" fraction.js "^4.1.1"
normalize-range "^0.1.2" normalize-range "^0.1.2"
@ -2861,10 +2847,11 @@ bytes@^3.0.0:
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
cacache@^15.0.0, cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: cacache@^15.0.0, cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0:
version "15.2.0" version "15.3.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
dependencies: dependencies:
"@npmcli/fs" "^1.0.0"
"@npmcli/move-file" "^1.0.1" "@npmcli/move-file" "^1.0.1"
chownr "^2.0.0" chownr "^2.0.0"
fs-minipass "^2.0.0" fs-minipass "^2.0.0"
@ -2986,10 +2973,10 @@ camelcase@^5.0.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
caniuse-lite@^1.0.30001251: caniuse-lite@^1.0.30001251, caniuse-lite@^1.0.30001252:
version "1.0.30001251" version "1.0.30001252"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a"
integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==
caseless@~0.12.0: caseless@~0.12.0:
version "0.12.0" version "0.12.0"
@ -4018,22 +4005,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.811: electron-to-chromium@^1.3.811:
version "1.3.814" version "1.3.818"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.814.tgz#418fad80c3276a46103ca72a21a8290620d83c4a" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz#32ed024fa8316e5d469c96eecbea7d2463d80085"
integrity sha512-0mH03cyjh6OzMlmjauGg0TLd87ErIJqWiYxMcOLKf5w6p0YEOl7DJAj7BDlXEFmCguY5CQaKVOiMjAMODO2XDw== integrity sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q==
emmet@^2.1.5:
version "2.3.4"
resolved "https://registry.yarnpkg.com/emmet/-/emmet-2.3.4.tgz#5ba0d7a5569a68c7697dfa890c772e4f3179d123"
integrity sha512-3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==
dependencies:
"@emmetio/abbreviation" "^2.2.2"
"@emmetio/css-abbreviation" "^2.1.4"
"emoji-regex@>=6.0.0 <=6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e"
integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=
emoji-regex@^8.0.0: emoji-regex@^8.0.0:
version "8.0.0" version "8.0.0"
@ -4193,9 +4167,9 @@ esbuild@^0.11.16, esbuild@^0.11.17:
integrity sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q== integrity sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q==
esbuild@^0.12.12: esbuild@^0.12.12:
version "0.12.22" version "0.12.23"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.22.tgz#6031a1257b8d0307d306bed673b79c3668607f51" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.23.tgz#fd40d70d3ec5e7893d8c5be655e3e38d096dd882"
integrity sha512-yWCr9RoFehpqoe/+MwZXJpYOEIt7KOEvNnjIeMZpMSyQt+KCBASM3y7yViiN5dJRphf1wGdUz1+M4rTtWd/ulA== integrity sha512-qvS4aKnmKikoWGscd5lVAzgobMovlH/JhaWitRiQ8xJx0x1Fym0pqVjMFs43Nvff8WpibeWm+fWoLK88T1U0Xw==
esbuild@~0.9.0: esbuild@~0.9.0:
version "0.9.7" version "0.9.7"
@ -4966,11 +4940,9 @@ gitconfiglocal@^1.0.0:
ini "^1.3.2" ini "^1.3.2"
github-slugger@^1.0.0, github-slugger@^1.3.0: github-slugger@^1.0.0, github-slugger@^1.3.0:
version "1.3.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e"
integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==
dependencies:
emoji-regex ">=6.0.0 <=6.1.1"
glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2" version "5.1.2"
@ -5254,7 +5226,7 @@ hast-util-parse-selector@^3.0.0:
dependencies: dependencies:
"@types/hast" "^2.0.0" "@types/hast" "^2.0.0"
hast-util-raw@^7.0.0: hast-util-raw@^7.2.0:
version "7.2.0" version "7.2.0"
resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.0.tgz#279fe5bc154f1c0b956f656781fa9ae1fdac7c70" resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.0.tgz#279fe5bc154f1c0b956f656781fa9ae1fdac7c70"
integrity sha512-K2ofsY59XqrtBNUAkvT2vPdyNPUchjj1Z0FxUOwBadS6R5h9O3LaRZqpukQ+YfgQ/IMy9GGMB/Nlpzpu+cuuMA== integrity sha512-K2ofsY59XqrtBNUAkvT2vPdyNPUchjj1Z0FxUOwBadS6R5h9O3LaRZqpukQ+YfgQ/IMy9GGMB/Nlpzpu+cuuMA==
@ -5393,12 +5365,12 @@ htmlparser2@^6.1.0:
entities "^2.0.0" entities "^2.0.0"
http-assert@^1.3.0: http-assert@^1.3.0:
version "1.4.1" version "1.5.0"
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==
dependencies: dependencies:
deep-equal "~1.0.1" deep-equal "~1.0.1"
http-errors "~1.7.2" http-errors "~1.8.0"
http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0:
version "4.1.0" version "4.1.0"
@ -5410,7 +5382,7 @@ http-equiv-refresh@^1.0.0:
resolved "https://registry.yarnpkg.com/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz#8ec538866042be5f3f7afa737d198d94beb1b07b" resolved "https://registry.yarnpkg.com/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz#8ec538866042be5f3f7afa737d198d94beb1b07b"
integrity sha1-jsU4hmBCvl8/evpzfRmNlL6xsHs= integrity sha1-jsU4hmBCvl8/evpzfRmNlL6xsHs=
http-errors@^1.6.3, http-errors@^1.7.3: http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0:
version "1.8.0" version "1.8.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
@ -6146,11 +6118,6 @@ json5@^2.1.2:
dependencies: dependencies:
minimist "^1.2.5" minimist "^1.2.5"
jsonc-parser@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342"
integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==
jsonfile@^4.0.0: jsonfile@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@ -6640,9 +6607,9 @@ make-fetch-happen@^8.0.9:
ssri "^8.0.0" ssri "^8.0.0"
make-fetch-happen@^9.0.1: make-fetch-happen@^9.0.1:
version "9.0.5" version "9.1.0"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.0.5.tgz#e7819afd9c8605f1452df4c1c6dc5c502ca18459" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968"
integrity sha512-XN0i/VqHsql30Oq7179spk6vu3IuaPL1jaivNYhBrJtK7tkOuJwMK2IlROiOnJ40b9SvmOo2G86FZyI6LD2EsQ== integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==
dependencies: dependencies:
agentkeepalive "^4.1.3" agentkeepalive "^4.1.3"
cacache "^15.2.0" cacache "^15.2.0"
@ -8819,9 +8786,9 @@ read-package-json@^3.0.0:
npm-normalize-package-bin "^1.0.0" npm-normalize-package-bin "^1.0.0"
read-package-json@^4.0.0: read-package-json@^4.0.0:
version "4.0.0" version "4.0.1"
resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.0.0.tgz#b555a9f749bf5eb9b8f053806b32f17001914e90" resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.0.1.tgz#da88a38c410344fecb7d840d35f27635e848ea54"
integrity sha512-EBQiek1udd0JKvUzaViAWHYVQRuQZ0IP0LWUOqVCJaZIX92ZO86dOpvsTOO3esRIQGgl7JhFBaGqW41VI57KvQ== integrity sha512-czqCcYfkEl6sIFJVOND/5/Goseu7cVw1rcDUATq6ED0jLGjMm9/HOPmFmEZMvRu9yl272YERaMUcOlvcNU9InQ==
dependencies: dependencies:
glob "^7.1.1" glob "^7.1.1"
json-parse-even-better-errors "^2.3.0" json-parse-even-better-errors "^2.3.0"
@ -8993,12 +8960,12 @@ rehype-autolink-headings@^6.1.0:
unist-util-visit "^4.0.0" unist-util-visit "^4.0.0"
rehype-raw@^6.0.0: rehype-raw@^6.0.0:
version "6.0.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-6.0.0.tgz#7a176e73f7c452db7e8608b637355d566f61245e" resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-6.1.0.tgz#78ba31d8725fe98467ca1acbbd65e2d0040b46e1"
integrity sha512-vzbvI7d3WUJHh+7aaHs0PHlgc+NevOh+buLkEB7I/FD3xskTmhUntnjS57uTW3uQt67xcF3COm9OwLpVsk6jvg== integrity sha512-12j2UiiYJgZFdjnHDny77NY5BF3eW4Jsl0vtgL1DWdTzcHjPpbhumU+GtPUdivEWwQc8x9OdEuO0oxaGz7Tvyg==
dependencies: dependencies:
"@types/hast" "^2.0.0" "@types/hast" "^2.0.0"
hast-util-raw "^7.0.0" hast-util-raw "^7.2.0"
unified "^10.0.0" unified "^10.0.0"
rehype-stringify@^9.0.1: rehype-stringify@^9.0.1:
@ -9362,9 +9329,9 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.1,
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass@^1.3.0, sass@^1.32.13: sass@^1.3.0, sass@^1.32.13:
version "1.38.0" version "1.38.1"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.0.tgz#2f3e60a1efdcdc910586fa79dc89d3399a145b4f" resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.1.tgz#54dfb17fb168846b5850324b82fc62dc68f51bad"
integrity sha512-WBccZeMigAGKoI+NgD7Adh0ab1HUq+6BmyBUEaGxtErbUtWUevEbdgo5EZiJQofLUGcKtlNaO2IdN73AHEua5g== integrity sha512-Lj8nPaSYOuRhgqdyShV50fY5jKnvaRmikUNalMPmbH+tKMGgEKVkltI/lP30PEfO2T1t6R9yc2QIBLgOc3uaFw==
dependencies: dependencies:
chokidar ">=3.0.0 <4.0.0" chokidar ">=3.0.0 <4.0.0"
@ -9573,9 +9540,9 @@ smartwrap@^1.2.3:
yargs "^15.1.0" yargs "^15.1.0"
snowpack@^3.8.6: snowpack@^3.8.6:
version "3.8.6" version "3.8.8"
resolved "https://registry.yarnpkg.com/snowpack/-/snowpack-3.8.6.tgz#0bef5c071caef86a2f91aa5c3d5b70d0c2e2793c" resolved "https://registry.yarnpkg.com/snowpack/-/snowpack-3.8.8.tgz#237f1c0ad49c68313864f3aa4438db3affee0806"
integrity sha512-EZ3Y7RtTiPvxnVFTKPfkvi2PKBrprXCvOHKWQQLBkHonf+xdtG51RiNjtrRLJeCjislAlD6OoeGHUxz76ToGHw== integrity sha512-Y/4V8FdzzYpwmJU2TgXRRFytz+GFSliWULK9J5O6C72KyK60w20JKqCdRtVs1S6BuobCedF5vSBD1Gvtm+gsJg==
dependencies: dependencies:
"@npmcli/arborist" "^2.6.4" "@npmcli/arborist" "^2.6.4"
bufferutil "^4.0.2" bufferutil "^4.0.2"
@ -9604,6 +9571,7 @@ snowpack@^3.8.6:
isbinaryfile "^4.0.6" isbinaryfile "^4.0.6"
jsonschema "~1.2.5" jsonschema "~1.2.5"
kleur "^4.1.1" kleur "^4.1.1"
magic-string "^0.25.7"
meriyah "^3.1.6" meriyah "^3.1.6"
mime-types "^2.1.26" mime-types "^2.1.26"
mkdirp "^1.0.3" mkdirp "^1.0.3"
@ -10108,9 +10076,9 @@ svelte-preprocess@^4.7.2:
strip-indent "^3.0.0" strip-indent "^3.0.0"
svelte@^3.35.0, svelte@^3.38.0: svelte@^3.35.0, svelte@^3.38.0:
version "3.42.2" version "3.42.3"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.42.2.tgz#0246c175c820c1aeca07300c48573a15aae3c1e4" resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.42.3.tgz#a7687a43ff6aa12263e03cf56219cd21eff5372d"
integrity sha512-FOyNYKXb8wdE0Ot+Ctt2/OyDLsNBP8+V6PUE9ag6ZKeLslIou0LnMu1fhtWUA+HjzKTbAM1yj+4PFLtg/3pMJA== integrity sha512-pbdtdNZEx2GBqSM6XEgPoHbwtvWBwFLt/1bRmzsyXZO+i424wFnPe7O5B3GOJDPFSxPRztumAW3mL5LPzecWUg==
table@^6.0.9: table@^6.0.9:
version "6.7.1" version "6.7.1"
@ -10175,9 +10143,9 @@ tar@^4.4.12:
yallist "^3.1.1" yallist "^3.1.1"
tar@^6.0.2, tar@^6.1.0: tar@^6.0.2, tar@^6.1.0:
version "6.1.10" version "6.1.11"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz#8a320a74475fba54398fa136cd9883aa8ad11175" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
integrity sha512-kvvfiVvjGMxeUNB6MyYv5z7vhfFRwbwCXJAeL0/lnbrttBVqcMOnpHUf0X42LrPMR8mMpgapkJMchFH4FSHzNA== integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
dependencies: dependencies:
chownr "^2.0.0" chownr "^2.0.0"
fs-minipass "^2.0.0" fs-minipass "^2.0.0"
@ -10215,9 +10183,9 @@ term-size@^2.1.0:
integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
terser@^5.0.0: terser@^5.0.0:
version "5.7.1" version "5.7.2"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.2.tgz#d4d95ed4f8bf735cb933e802f2a1829abf545e3f"
integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== integrity sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==
dependencies: dependencies:
commander "^2.20.0" commander "^2.20.0"
source-map "~0.7.2" source-map "~0.7.2"
@ -10484,7 +10452,7 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^4.2.4, typescript@^4.3.1-rc: typescript@^4.2.4:
version "4.3.5" version "4.3.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4"
integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==
@ -10885,105 +10853,14 @@ vm2@^3.9.2:
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.3.tgz#29917f6cc081cc43a3f580c26c5b553fd3c91f40" resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.3.tgz#29917f6cc081cc43a3f580c26c5b553fd3c91f40"
integrity sha512-smLS+18RjXYMl9joyJxMNI9l4w7biW8ilSDaVRvFBDwOH8P0BK1ognFQTpg0wyQ6wIKLTblHJvROW692L/E53Q== integrity sha512-smLS+18RjXYMl9joyJxMNI9l4w7biW8ilSDaVRvFBDwOH8P0BK1ognFQTpg0wyQ6wIKLTblHJvROW692L/E53Q==
vscode-css-languageservice@^5.1.1:
version "5.1.4"
resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-5.1.4.tgz#07e4c63f1c3bb06e6f3f329c32b490d20a601bab"
integrity sha512-fIJZJMXbaBsK0ifBb2RmSiLtzwn6NrZnKn7O+0ziIjwAY+rPvSK9St2qqQXFU3reZVRAt/I4GBp40dC/THcUDA==
dependencies:
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "^3.16.0"
vscode-nls "^5.0.0"
vscode-uri "^3.0.2"
vscode-emmet-helper@2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-2.1.2.tgz#2978060ebb736a7e0f6e6f1d649bd026880528c3"
integrity sha512-Fy6UNawSgxE3Kuqi54vSXohf03iOIrp1A74ReAgzvGP9Yt7fUAvkqF6No2WAc34/w0oWAHAeqoBNqmKKWh6U5w==
dependencies:
emmet "^2.1.5"
jsonc-parser "^2.3.0"
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "^3.15.1"
vscode-nls "^5.0.0"
vscode-uri "^2.1.2"
vscode-html-languageservice@^3.0.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz#e92269a04097d87bd23431e3a4e491a27b5447b9"
integrity sha512-aLWIoWkvb5HYTVE0kI9/u3P0ZAJGrYOSAAE6L0wqB9radKRtbJNrF9+BjSUFyCgBdNBE/GFExo35LoknQDJrfw==
dependencies:
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "3.16.0-next.2"
vscode-nls "^5.0.0"
vscode-uri "^2.1.2"
vscode-jsonrpc@6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e"
integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==
vscode-languageclient@~7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2"
integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==
dependencies:
minimatch "^3.0.4"
semver "^7.3.4"
vscode-languageserver-protocol "3.16.0"
vscode-languageserver-protocol@3.16.0, vscode-languageserver-protocol@^3.15.3:
version "3.16.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821"
integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==
dependencies:
vscode-jsonrpc "6.0.0"
vscode-languageserver-types "3.16.0"
vscode-languageserver-textdocument@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
vscode-languageserver-types@3.16.0, vscode-languageserver-types@^3.15.1, vscode-languageserver-types@^3.16.0:
version "3.16.0"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
vscode-languageserver-types@3.16.0-next.2:
version "3.16.0-next.2"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
vscode-languageserver@6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz#d76afc68172c27d4327ee74332b468fbc740d762"
integrity sha512-DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ==
dependencies:
vscode-languageserver-protocol "^3.15.3"
vscode-nls@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
vscode-uri@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
vscode-uri@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0"
integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==
vue@^3.2.0: vue@^3.2.0:
version "3.2.4" version "3.2.6"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.4.tgz#d94d88675e41c050d3a722d0848a7063b5e87a60" resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.6.tgz#c71445078751f458648fd8fb3a2da975507d03d2"
integrity sha512-rNCFmoewm8IwmTK0nj3ysKq53iRpNEFKoBJ4inar6tIh7Oj7juubS39RI8UI+VE7x+Cs2z6PBsadtZu7z2qppg== integrity sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ==
dependencies: dependencies:
"@vue/compiler-dom" "3.2.4" "@vue/compiler-dom" "3.2.6"
"@vue/runtime-dom" "3.2.4" "@vue/runtime-dom" "3.2.6"
"@vue/shared" "3.2.4" "@vue/shared" "3.2.6"
wait-on@6.0.0: wait-on@6.0.0:
version "6.0.0" version "6.0.0"