WIP update examples/docs/
This commit is contained in:
parent
59cc62f7bd
commit
b7ada11ddb
45 changed files with 2066 additions and 1091 deletions
|
@ -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',
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
|
@ -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": "../.."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
BIN
examples/docs/public/default-og-image.png
Normal file
BIN
examples/docs/public/default-og-image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 731 KiB |
|
@ -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 */
|
|
||||||
|
|
3
examples/docs/public/make-scrollable-code-focusable.js
Normal file
3
examples/docs/public/make-scrollable-code-focusable.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Array.from(document.getElementsByTagName('pre')).forEach((element) => {
|
||||||
|
element.setAttribute('tabindex', '0');
|
||||||
|
});
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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');
|
|
||||||
}
|
|
||||||
})();
|
|
|
@ -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>
|
|
|
@ -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;
|
|
|
@ -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;
|
|
151
examples/docs/src/components/Footer/AvatarList.astro
Normal file
151
examples/docs/src/components/Footer/AvatarList.astro
Normal 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>
|
|
@ -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>
|
40
examples/docs/src/components/HeadCommon.astro
Normal file
40
examples/docs/src/components/HeadCommon.astro
Normal 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> -->
|
40
examples/docs/src/components/HeadSEO.astro
Normal file
40
examples/docs/src/components/HeadSEO.astro
Normal 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
|
||||||
|
-->
|
20
examples/docs/src/components/Header/AstroLogo.astro
Normal file
20
examples/docs/src/components/Header/AstroLogo.astro
Normal 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>
|
158
examples/docs/src/components/Header/Header.astro
Normal file
158
examples/docs/src/components/Header/Header.astro
Normal 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>
|
47
examples/docs/src/components/Header/LanguageSelect.css
Normal file
47
examples/docs/src/components/Header/LanguageSelect.css
Normal 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%;
|
||||||
|
}
|
||||||
|
}
|
38
examples/docs/src/components/Header/LanguageSelect.tsx
Normal file
38
examples/docs/src/components/Header/LanguageSelect.tsx
Normal 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;
|
76
examples/docs/src/components/Header/Search.css
Normal file
76
examples/docs/src/components/Header/Search.css
Normal 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);
|
||||||
|
}
|
76
examples/docs/src/components/Header/Search.tsx
Normal file
76
examples/docs/src/components/Header/Search.tsx
Normal 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
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
27
examples/docs/src/components/Header/SidebarToggle.tsx
Normal file
27
examples/docs/src/components/Header/SidebarToggle.tsx
Normal 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;
|
21
examples/docs/src/components/Header/SkipToContent.astro
Normal file
21
examples/docs/src/components/Header/SkipToContent.astro
Normal 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>
|
109
examples/docs/src/components/LeftSidebar/LeftSidebar.astro
Normal file
109
examples/docs/src/components/LeftSidebar/LeftSidebar.astro
Normal 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>
|
|
@ -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>
|
|
41
examples/docs/src/components/PageContent/PageContent.astro
Normal file
41
examples/docs/src/components/PageContent/PageContent.astro
Normal 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>
|
68
examples/docs/src/components/RightSidebar/MoreMenu.astro
Normal file
68
examples/docs/src/components/RightSidebar/MoreMenu.astro
Normal 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>
|
25
examples/docs/src/components/RightSidebar/RightSidebar.astro
Normal file
25
examples/docs/src/components/RightSidebar/RightSidebar.astro
Normal 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>
|
|
@ -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;
|
|
@ -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;
|
||||||
|
}
|
|
@ -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>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
|
@ -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>
|
|
4
examples/docs/src/components/util.ts
Normal file
4
examples/docs/src/components/util.ts
Normal 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';
|
||||||
|
}
|
|
@ -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',
|
||||||
|
};
|
||||||
|
|
19
examples/docs/src/languages.ts
Normal file
19
examples/docs/src/languages.ts
Normal 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,
|
||||||
|
};
|
||||||
|
};
|
122
examples/docs/src/layouts/MainLayout.astro
Normal file
122
examples/docs/src/layouts/MainLayout.astro
Normal 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>
|
|
@ -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
|
190
examples/docs/src/pages/en/getting-started.md
Normal file
190
examples/docs/src/pages/en/getting-started.md
Normal 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)
|
5
examples/docs/src/pages/en/index.astro
Normal file
5
examples/docs/src/pages/en/index.astro
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
import REDIRECT from "../index.astro";
|
||||||
|
---
|
||||||
|
|
||||||
|
<REDIRECT />
|
|
@ -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"
|
|
@ -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)
|
|
24
examples/docs/src/pages/index.astro
Normal file
24
examples/docs/src/pages/index.astro
Normal 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>
|
|
@ -1,3 +1,8 @@
|
||||||
{
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es2020",
|
||||||
|
"module": "esnext",
|
||||||
|
"jsx": "preserve"
|
||||||
|
},
|
||||||
"moduleResolution": "node"
|
"moduleResolution": "node"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
627
yarn.lock
|
@ -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"
|
||||||
|
|
Loading…
Reference in a new issue