From 8a6d03ea3a1f2ba17d158fdeec88462df882d708 Mon Sep 17 00:00:00 2001 From: Oliver Turner Date: Fri, 24 Dec 2021 13:14:03 +0000 Subject: [PATCH 1/9] basic recursion --- src/layouts/demo.astro | 60 +++++++++++++------ .../components/basket.svelte | 45 +++++++------- .../components/menu.svelte | 21 +++---- .../demos/advent-css-2021-menu/index.astro | 9 ++- src/pages/demos/advent-css-2021-menu/store.ts | 4 +- src/pages/demos/links.json | 15 +++++ 6 files changed, 95 insertions(+), 59 deletions(-) create mode 100644 src/pages/demos/links.json diff --git a/src/layouts/demo.astro b/src/layouts/demo.astro index b9285c5..50d1cc4 100644 --- a/src/layouts/demo.astro +++ b/src/layouts/demo.astro @@ -1,23 +1,45 @@ --- import Layout from "$layouts/base.astro"; +import demos from "$pages/demos/links.json"; const { title, description, permalink } = Astro.props; -const demos = [ - { - title: "Advent of CSS 2021: Timer", - permalink: "/demos/advent-css-2021-timer/", - }, - { - title: "Advent of CSS 2021: Menu", - permalink: "/demos/advent-css-2021-menu/", - }, -]; + +interface Link { + title: string; + permalink: string; +} + +interface LinkGroup { + title: string; + links: Link[]; +} + +function isLinkGroup(link: Link | LinkGroup): link is LinkGroup { + return "links" in link; +} + +let linkHtml = ""; +function makeLinks(links: (LinkGroup | Link)[]) { + for (const link of links) { + if (isLinkGroup(link)) { + linkHtml += `
  • `; + linkHtml += `

    ${link.title}

    `; + linkHtml += ""; + linkHtml += "
  • "; + } else { + linkHtml += `
  • ${link.title}
  • `; + } + } +} +makeLinks(demos); ---
    @@ -33,15 +55,15 @@ const demos = [ .demo__nav { display: grid; - align-content: start; + align-content: start; - padding: 1rem; - background-color: var(--surface2); - color: var(--text2); + padding: 1rem; + background-color: var(--surface2); + color: var(--text2); - & a { - padding: 0.25rem 0.5rem; - text-decoration: none; - } + & a { + padding: 0.25rem 0.5rem; + text-decoration: none; + } } diff --git a/src/pages/demos/advent-css-2021-menu/components/basket.svelte b/src/pages/demos/advent-css-2021-menu/components/basket.svelte index b0cefc2..8a72073 100644 --- a/src/pages/demos/advent-css-2021-menu/components/basket.svelte +++ b/src/pages/demos/advent-css-2021-menu/components/basket.svelte @@ -2,7 +2,6 @@ import type { MenuItem as TMenuItem } from "../store"; import { basket } from "../store"; import { formatPrice } from "../utils"; - import Screen from "./screen.svelte"; import BasketItem from "./basket-item.svelte"; export let items: Record = {}; @@ -36,29 +35,27 @@ $: tax = total - subTotal; - -
    - {#if itemNum === 0} -

    Your basket is empty

    - {:else} -
      - {#each Object.entries($basket) as [id, quantity] (id)} -
    • - -
    • - {/each} -
    - {/if} -
    -
    Subtotal
    -
    {formatPrice(subTotal)}
    -
    Tax
    -
    {formatPrice(tax)}
    -
    Total
    -
    {formatPrice(total)}
    -
    -
    -
    +
    + {#if itemNum === 0} +

    Your basket is empty

    + {:else} +
      + {#each Object.entries($basket) as [id, quantity] (id)} +
    • + +
    • + {/each} +
    + {/if} +
    +
    Subtotal
    +
    {formatPrice(subTotal)}
    +
    Tax
    +
    {formatPrice(tax)}
    +
    Total
    +
    {formatPrice(total)}
    +
    +
    diff --git a/src/pages/demos/houdini-jeffsum/components/header.svelte b/src/pages/demos/houdini-jeffsum/components/header.svelte new file mode 100644 index 0000000..daa8a91 --- /dev/null +++ b/src/pages/demos/houdini-jeffsum/components/header.svelte @@ -0,0 +1,126 @@ + + +
    +
    + +
    +

    + You made this? + He made this. +

    +
    +

    Placeblum.

    +

    + A little image gallery of Jeff Goldblum awesomeness. +

    +
    +
    +
    +
    + + diff --git a/src/pages/demos/houdini-jeffsum/images/jeff1.jpg b/src/pages/demos/houdini-jeffsum/images/jeff1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..933035bc54ba2b82de3652a82428d295db9d5662 GIT binary patch literal 25463 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 literal 0 HcmV?d00001 diff --git a/src/pages/demos/houdini-jeffsum/images/jeff2.jpg b/src/pages/demos/houdini-jeffsum/images/jeff2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30febb7ac8b4cb41ac57b89fe7c0286a0f793240 GIT binary patch literal 42358 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≤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 literal 0 HcmV?d00001 diff --git a/src/pages/demos/houdini-jeffsum/images/jeff3.jpg b/src/pages/demos/houdini-jeffsum/images/jeff3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a4a5c4e4ed324876995169f67d6abf8a03abf475 GIT binary patch literal 43030 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 n0)7UJP)~Lz+9a05oiWX>2 +
    +
    +
    +
    + + +
    +
    +
    +
    + + diff --git a/src/pages/demos/links.json b/src/pages/demos/links.json index 21255f4..98f5c15 100644 --- a/src/pages/demos/links.json +++ b/src/pages/demos/links.json @@ -1,6 +1,15 @@ [ { - "title": "Student exercises", + "title": "Houdini", + "links": [ + { + "title": "Jeffsum", + "permalink": "/demos/houdini-jeffsum/" + } + ] + }, + { + "title": "Student demos", "links": [ { "title": "Timer", From 198f1ab496606cc77f85164c95307849283145da Mon Sep 17 00:00:00 2001 From: Oliver Turner Date: Sat, 25 Dec 2021 17:46:53 +0000 Subject: [PATCH 3/9] wip --- .../houdini-jeffsum/components/app.svelte | 56 +++++++++ .../houdini-jeffsum/components/gallery.svelte | 62 +++++----- .../houdini-jeffsum/components/header.svelte | 68 +++++------ .../components/text-generator.svelte | 83 +++++++++++++ src/pages/demos/houdini-jeffsum/index.astro | 109 +----------------- 5 files changed, 206 insertions(+), 172 deletions(-) create mode 100644 src/pages/demos/houdini-jeffsum/components/app.svelte create mode 100644 src/pages/demos/houdini-jeffsum/components/text-generator.svelte diff --git a/src/pages/demos/houdini-jeffsum/components/app.svelte b/src/pages/demos/houdini-jeffsum/components/app.svelte new file mode 100644 index 0000000..b7e0a50 --- /dev/null +++ b/src/pages/demos/houdini-jeffsum/components/app.svelte @@ -0,0 +1,56 @@ + + +
    +
    + +
    +
    + +
    +
    + + diff --git a/src/pages/demos/houdini-jeffsum/components/gallery.svelte b/src/pages/demos/houdini-jeffsum/components/gallery.svelte index 6a53ec7..5edd200 100644 --- a/src/pages/demos/houdini-jeffsum/components/gallery.svelte +++ b/src/pages/demos/houdini-jeffsum/components/gallery.svelte @@ -1,59 +1,60 @@ -
    - {#each jeffs as jeff, index} - {jeff.alt} +
    + {#each slides as slide, index} + {slide.alt} {/each}
    diff --git a/src/pages/demos/houdini-jeffsum/index.astro b/src/pages/demos/houdini-jeffsum/index.astro index 52a2c01..8b0d559 100644 --- a/src/pages/demos/houdini-jeffsum/index.astro +++ b/src/pages/demos/houdini-jeffsum/index.astro @@ -1,8 +1,8 @@ --- import Layout from "$layouts/demo.astro"; -import Header from "./components/header.svelte"; +import App from "./components/app.svelte"; -const jeffs = [ +const slides = [ { src: Astro.resolve("./images/jeff1.jpg"), alt: "Jeff YEAH", @@ -27,112 +27,9 @@ const demo = { --- -
    -
    -
    -
    - - -
    -
    -
    +
    From 0182a1c451ccbdb601ad5aba82683e6ed2af96ed Mon Sep 17 00:00:00 2001 From: Oliver Turner Date: Tue, 28 Dec 2021 20:17:43 +0000 Subject: [PATCH 4/9] wip --- package-lock.json | 1006 ++++++----------- package.json | 12 +- postcss.config.cjs | 3 +- public/theme.css | 24 - src/components/page-head.astro | 1 - src/layouts/base.astro | 6 +- src/layouts/demo.astro | 40 +- .../components/screen.svelte | 4 +- .../houdini-jeffsum/components/app.svelte | 63 +- .../houdini-jeffsum/components/gallery.svelte | 25 +- .../houdini-jeffsum/components/header.svelte | 18 +- .../houdini-jeffsum/components/quotes.ts | 72 ++ .../components/text-generator.svelte | 53 +- src/pages/demos/houdini-jeffsum/index.astro | 4 - src/pages/demos/links.json | 17 +- src/styles/open-props.min.css | 778 ------------- src/styles/styles.scss | 3 - 17 files changed, 584 insertions(+), 1545 deletions(-) delete mode 100644 public/theme.css create mode 100644 src/pages/demos/houdini-jeffsum/components/quotes.ts delete mode 100644 src/styles/open-props.min.css diff --git a/package-lock.json b/package-lock.json index 1ac3c9e..88afa99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,31 +8,33 @@ "name": "@oliverturner/blog", "version": "0.0.1", "dependencies": { - "dateformat": "5.0.2" + "dateformat": "5.0.2", + "open-props": "^1.0.14" }, "devDependencies": { - "@types/react": "17.0.37", + "@types/react": "^17.0.38", "@types/react-dom": "17.0.11", - "astro": "^0.21.13", - "cssnano": "^5.0.13", + "astro": "^0.22.1", + "cssnano": "^5.0.14", "cssnano-preset-advanced": "^5.1.9", "patch-package": "6.4.7", "postcss": "^8.4.5", "postcss-custom-media": "8.0.0", "postcss-custom-properties": "^12.0.1", "postcss-jit-props": "^1.0.4", + "postcss-load-config": "^3.1.0", "prettier": "2.5.1", "prettier-plugin-astro": "0.0.11", "sanitize.css": "13.0.0", - "sass": "^1.45.0", + "sass": "^1.45.1", "svelte-preprocess": "^4.10.1", "typescript": "^4.5.4" } }, "node_modules/@astrojs/compiler": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.5.7.tgz", - "integrity": "sha512-SMmgApjroKy6PGSjofTBbl9kIQb7/ywtiP0hYpa/x2yuiCQQoe+QLusOnNgmGDgJBmV/5UVEf1+EA+77s4acHQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.6.2.tgz", + "integrity": "sha512-okzco1cwAPC1Fs1EovCckQpZFLAkuysTM+0qVXQ41fE6mLxmq/4i7fFR7l0Wy/0JapgcRQbK5xN4Y08ku4EPQg==", "dev": true, "dependencies": { "typescript": "^4.3.5" @@ -62,12 +64,12 @@ } }, "node_modules/@astrojs/markdown-remark": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-0.5.0.tgz", - "integrity": "sha512-2A+PNNZ1w/GOZeLGRBco8QO6o3R8xtJY5EbQXwP3KmZ8xQZuVsZxX4HFpkFOvzm7ADCHZr7h6yVSdaoOAUb6UQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-0.6.0.tgz", + "integrity": "sha512-zW1w/8OrWzEgkE3AXKB2vgu6o4BLVTeC1Ykq0u4AiLhkdu1MZcCAC3AJLXzXN3D/s7qiDZxOouF+PKYxGwx3xg==", "dev": true, "dependencies": { - "@astrojs/prism": "^0.3.0", + "@astrojs/prism": "^0.4.0", "assert": "^2.0.0", "github-slugger": "^1.4.0", "gray-matter": "^4.0.3", @@ -104,18 +106,18 @@ } }, "node_modules/@astrojs/prism": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-0.3.0.tgz", - "integrity": "sha512-5U+jcgfibLKW8PwnHQEdmgb+uZVeMVLz+paEr3vxKgikYfjXDjQu6qEDLOW3WTc/cIWrOF9rAtTKy8R/ArPscw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-0.4.0.tgz", + "integrity": "sha512-dbB9Acm9Z/GDqhxwPv7W/DlZAScWNZGzFz8klTqDo9kaWD6O3qsZpXn641GuGeXdNWkqTmkinu37ZJHSxaDB7A==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@astrojs/renderer-preact": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-preact/-/renderer-preact-0.3.2.tgz", - "integrity": "sha512-841A8Fpg9/w8UgHSh5YzvqoRFwToOicgAtBt98F1mPS7miN0x1elzUDOgk2zYCii+/DI4DMpW4NotsAV7qou8w==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-preact/-/renderer-preact-0.4.0.tgz", + "integrity": "sha512-pid/tz6c0V07TZNstZILBSXBF/HPCyfnWLfwtw2F66rE+TI1EpZmlZPNz9X0r28n0pBzTfNzu2ZwIvWs+CuTcQ==", "dev": true, "dependencies": { "@babel/plugin-transform-react-jsx": "^7.16.0", @@ -123,13 +125,13 @@ "preact-render-to-string": "^5.1.19" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@astrojs/renderer-react": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-react/-/renderer-react-0.3.1.tgz", - "integrity": "sha512-TqwQyVHhzbFKuF8+jMOlrxM767nubzZzCKuKTAzmrCRLa8vMXPqcPS7JXWD7Q6s6gXln3yhat6+3iodwgurwlw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-react/-/renderer-react-0.4.0.tgz", + "integrity": "sha512-4vU2fqRDGdMVYsmM5WgzSA8Wlsmcefa80fQVBHyt1rHZWfW+bOPJVLO7nR6BzixFCoum5PzXD1TraD971O7BLA==", "dev": true, "dependencies": { "@babel/plugin-transform-react-jsx": "^7.16.0", @@ -137,13 +139,13 @@ "react-dom": "^17.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@astrojs/renderer-svelte": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-svelte/-/renderer-svelte-0.2.3.tgz", - "integrity": "sha512-E/QbgqdnafPnTzRsfKR/IF8oDuqM65/yAdeZxAWwU0rvacRS2vjCwfQI38lPEAGdGt/NNQ29YJXoh6hWpjAEoA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-svelte/-/renderer-svelte-0.3.0.tgz", + "integrity": "sha512-9acY+v9yty/N/IABegCWkIfgkAIWj50x+MvfmGMypoAvFreBrJhkHqYMqZ6KLr/CTP/9NuvQwikSDyErIeYhyQ==", "dev": true, "dependencies": { "@sveltejs/vite-plugin-svelte": "1.0.0-next.30", @@ -151,26 +153,26 @@ "svelte-preprocess": "^4.9.8" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@astrojs/renderer-vue": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-vue/-/renderer-vue-0.2.1.tgz", - "integrity": "sha512-nawWIzwL40M8ran4zQaYckAdHwn1HeD6zTRH3LKCENeAjn3bJ4wxJ2KD9dZw4twACP+yBZm3y2N7iX+6CyueIQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-vue/-/renderer-vue-0.3.0.tgz", + "integrity": "sha512-XV/WLhG76ORXFcYnjbYS8Xa7TJpOzK/eOe55XsbVPlONmg0Cyx/a20Es9KBAolelgmBlIOAJAtDBZ1Dn5rQOjA==", "dev": true, "dependencies": { "@vitejs/plugin-vue": "^1.9.4", "vue": "^3.2.22" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@astropub/webapi": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@astropub/webapi/-/webapi-0.4.0.tgz", - "integrity": "sha512-KpHOH9WsIJk2E3Z/suAZri3a6I9GrkZnmm+BHAZp4OBAXUUyNTIid9mIC8tiiHNbY2A6OLbBvfteuD+BYQfcrw==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@astropub/webapi/-/webapi-0.7.4.tgz", + "integrity": "sha512-LpGMWrI0SWGCWol9Em4/wcAtiQHQFV3MoQUYzdpCRWg1UOpXi38d+2xDtWWEgOxb433IXLYQ6XubLLqIx5m3bQ==", "dev": true }, "node_modules/@babel/code-frame": { @@ -896,9 +898,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "17.0.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", - "integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", + "version": "17.0.38", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz", + "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -1254,20 +1256,20 @@ } }, "node_modules/astro": { - "version": "0.21.13", - "resolved": "https://registry.npmjs.org/astro/-/astro-0.21.13.tgz", - "integrity": "sha512-Wm72q/9KXo0DiAHlQttNSk7cBy7RtqXRj1BL2zjh2zRg6583v30yzSZl4YiJD2PA+TXBc+p4FNyq3med1YEyCw==", + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/astro/-/astro-0.22.1.tgz", + "integrity": "sha512-h8IMB34YS365E9/Wdw+W2zaP/HHzLkmCc0v+5pIjsrX5nhCN897obq4rJHkOyQ1xgpFYVoFllgdnOGIAk6H0/w==", "dev": true, "dependencies": { - "@astrojs/compiler": "^0.5.4", + "@astrojs/compiler": "^0.6.0", "@astrojs/language-server": "^0.8.2", - "@astrojs/markdown-remark": "^0.5.0", - "@astrojs/prism": "0.3.0", - "@astrojs/renderer-preact": "^0.3.1", - "@astrojs/renderer-react": "0.3.1", - "@astrojs/renderer-svelte": "0.2.3", - "@astrojs/renderer-vue": "0.2.1", - "@astropub/webapi": "^0.4.0", + "@astrojs/markdown-remark": "^0.6.0", + "@astrojs/prism": "0.4.0", + "@astrojs/renderer-preact": "^0.4.0", + "@astrojs/renderer-react": "0.4.0", + "@astrojs/renderer-svelte": "0.3.0", + "@astrojs/renderer-vue": "0.3.0", + "@astropub/webapi": "^0.7.3", "@babel/core": "^7.15.8", "@babel/traverse": "^7.15.4", "@proload/core": "^0.2.1", @@ -1310,7 +1312,7 @@ "strip-ansi": "^7.0.1", "supports-esm": "^1.0.0", "tsconfig-resolver": "^3.0.1", - "vite": "^2.6.10", + "vite": "~2.6.10", "yargs-parser": "^21.0.0", "zod": "^3.8.1" }, @@ -1318,7 +1320,7 @@ "astro": "astro.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0", + "node": "^14.15.0 || >=16.0.0", "npm": ">=6.14.0" } }, @@ -1801,13 +1803,12 @@ } }, "node_modules/cssnano": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.13.tgz", - "integrity": "sha512-cAmLruIF28a7vKIOieXCTrllaLwbouxV1PPi8Z4M+XloXbmeooWAu4KhJgASo4vQUwbs2pqDgAlnZ1ZKJZKtuw==", + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.14.tgz", + "integrity": "sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw==", "dev": true, "dependencies": { "cssnano-preset-default": "^5.1.9", - "is-resolvable": "^1.1.0", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -1981,9 +1982,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.0.tgz", - "integrity": "sha512-KTiXDlRp9MMm/nlgI8rDGKoNNKiTJBl0RPjnBM680m2HlgJEA4JTASspK44lsvE4GQJildMRFp2HdEBiG+nqng==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", "dev": true, "dependencies": { "character-entities": "^2.0.0" @@ -3170,9 +3171,9 @@ } }, "node_modules/hast-util-is-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", - "integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", + "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -3371,6 +3372,30 @@ "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", "dev": true }, + "node_modules/import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "dependencies": { + "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -3691,9 +3716,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, "engines": { "node": ">= 0.4" @@ -3772,12 +3797,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "node_modules/is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -3837,12 +3856,12 @@ } }, "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4067,9 +4086,9 @@ } }, "node_modules/markdown-table": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", - "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz", + "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==", "dev": true, "funding": { "type": "github", @@ -4221,9 +4240,9 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", - "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.2.tgz", + "integrity": "sha512-pPekvCTChFBF8uCq8bVyQwar8NBU/TaXIy44jj/UzmjMgPBHIa1B1ge8a0JVgzhqgXQAMvGT+PgiKlicdLGfDQ==", "dev": true, "dependencies": { "markdown-table": "^3.0.0", @@ -4282,9 +4301,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.0.0.tgz", - "integrity": "sha512-BCeq0Bz103NJvmhB7gN0TDmKRT7x3auJmEp7NcYX1xpqZsQeA3JNLazLhFx6VQPqw30e2zes/coKPAiEqxxUuQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.0.tgz", + "integrity": "sha512-dHfCt9Yh05AXEeghoziB3DjJV8oCIKdQmBJOPoAT1NlgMDBy+/MQn7Pxfq0jI8YRO1IfzcnmA/OU3FVVn/E5Sg==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -4392,9 +4411,9 @@ } }, "node_modules/micromark": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.9.tgz", - "integrity": "sha512-aWPjuXAqiFab4+oKLjH1vSNQm8S9GMnnf5sFNLrQaIggGYMBcQ9CS0Tt7+BJH6hbyv783zk3vgDhaORl3K33IQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", "dev": true, "funding": [ { @@ -4427,9 +4446,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.5.tgz", - "integrity": "sha512-ZNtWumX94lpiyAu/lxvth6I5+XzxF+BLVUB7u60XzOBy4RojrbZqrx0mcRmbfqEMO6489vyvDfIQNv5hdulrPg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "dev": true, "funding": [ { @@ -4461,9 +4480,9 @@ } }, "node_modules/micromark-extension-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz", - "integrity": "sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "dev": true, "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", @@ -4481,9 +4500,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dev": true, "dependencies": { "micromark-util-character": "^1.0.0", @@ -4498,9 +4517,9 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", + "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", "dev": true, "dependencies": { "micromark-core-commonmark": "^1.0.0", @@ -4517,9 +4536,9 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "dev": true, "dependencies": { "micromark-util-chunked": "^1.0.0", @@ -4535,9 +4554,9 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.4.tgz", - "integrity": "sha512-IK2yzl7ycXeFFvZ8qiH4j5am529ihjOFD7NMo8Nhyq+VGwgWe4+qeI925RRrJuEzX3KyQ+1vzY8BIIvqlgOJhw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "dev": true, "dependencies": { "micromark-factory-space": "^1.0.0", @@ -4552,9 +4571,9 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", - "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "dev": true, "dependencies": { "micromark-util-types": "^1.0.0" @@ -4565,9 +4584,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "dev": true, "dependencies": { "micromark-factory-space": "^1.0.0", @@ -5020,9 +5039,9 @@ } }, "node_modules/micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "dev": true, "funding": [ { @@ -5284,9 +5303,9 @@ } }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5372,6 +5391,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open-props": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/open-props/-/open-props-1.0.14.tgz", + "integrity": "sha512-RbnxiFLLgPJ2dB7MQ1apxeY72Mne6OEOGyJflE0a7OM1gygGGh09m/5oCKc335mjPd2KrntfAUVVG34jnuY07g==" + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -5783,6 +5807,32 @@ "postcss": "^8.2.8" } }, + "node_modules/postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "dependencies": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, "node_modules/postcss-merge-idents": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.0.1.tgz", @@ -6454,14 +6504,14 @@ } }, "node_modules/remark-rehype": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.0.1.tgz", - "integrity": "sha512-9itJLLOrbjrAi0qO5Rh0Wzi1d3eqvRvDWSsfif6W/BInVgCvzqSnB7BSfQRtb6MLfQiufXYG3NbbUqfE0p7nTA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.0.0", + "mdast-util-to-hast": "^12.1.0", "unified": "^10.0.0" }, "funding": { @@ -6502,6 +6552,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/retext": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/retext/-/retext-8.1.0.tgz", @@ -6614,9 +6673,9 @@ } }, "node_modules/rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", + "version": "2.62.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.62.0.tgz", + "integrity": "sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -6694,9 +6753,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz", - "integrity": "sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==", + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz", + "integrity": "sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -7178,9 +7237,9 @@ } }, "node_modules/svelte-hmr": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.7.tgz", - "integrity": "sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==", + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.9.tgz", + "integrity": "sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==", "dev": true, "peerDependencies": { "svelte": ">=3.19.0" @@ -7755,15 +7814,15 @@ } }, "node_modules/vite": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.7.3.tgz", - "integrity": "sha512-GAY1P+9fLJOju1SRm8+hykVnEXog+E+KXuqqyMBQDriKCUIKzWnPn142yNNhSdf/ixYGYdUa5ce3A8WaEajzGw==", + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.14.tgz", + "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==", "dev": true, "dependencies": { - "esbuild": "^0.13.12", - "postcss": "^8.3.11", + "esbuild": "^0.13.2", + "postcss": "^8.3.8", "resolve": "^1.20.0", - "rollup": "^2.59.0" + "rollup": "^2.57.0" }, "bin": { "vite": "bin/vite.js" @@ -7791,256 +7850,6 @@ } } }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", - "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "optionalDependencies": { - "esbuild-android-arm64": "0.13.15", - "esbuild-darwin-64": "0.13.15", - "esbuild-darwin-arm64": "0.13.15", - "esbuild-freebsd-64": "0.13.15", - "esbuild-freebsd-arm64": "0.13.15", - "esbuild-linux-32": "0.13.15", - "esbuild-linux-64": "0.13.15", - "esbuild-linux-arm": "0.13.15", - "esbuild-linux-arm64": "0.13.15", - "esbuild-linux-mips64le": "0.13.15", - "esbuild-linux-ppc64le": "0.13.15", - "esbuild-netbsd-64": "0.13.15", - "esbuild-openbsd-64": "0.13.15", - "esbuild-sunos-64": "0.13.15", - "esbuild-windows-32": "0.13.15", - "esbuild-windows-64": "0.13.15", - "esbuild-windows-arm64": "0.13.15" - } - }, - "node_modules/vite/node_modules/esbuild-android-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", - "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/vite/node_modules/esbuild-darwin-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", - "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/vite/node_modules/esbuild-darwin-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", - "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/vite/node_modules/esbuild-freebsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", - "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/vite/node_modules/esbuild-freebsd-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", - "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/vite/node_modules/esbuild-linux-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", - "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild-linux-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", - "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild-linux-arm": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", - "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild-linux-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", - "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild-linux-mips64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", - "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild-linux-ppc64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", - "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/vite/node_modules/esbuild-netbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", - "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ] - }, - "node_modules/vite/node_modules/esbuild-openbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", - "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/vite/node_modules/esbuild-sunos-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", - "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ] - }, - "node_modules/vite/node_modules/esbuild-windows-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", - "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/vite/node_modules/esbuild-windows-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", - "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/vite/node_modules/esbuild-windows-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", - "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/vscode-css-languageservice": { "version": "5.1.9", "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.9.tgz", @@ -8303,9 +8112,9 @@ }, "dependencies": { "@astrojs/compiler": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.5.7.tgz", - "integrity": "sha512-SMmgApjroKy6PGSjofTBbl9kIQb7/ywtiP0hYpa/x2yuiCQQoe+QLusOnNgmGDgJBmV/5UVEf1+EA+77s4acHQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-0.6.2.tgz", + "integrity": "sha512-okzco1cwAPC1Fs1EovCckQpZFLAkuysTM+0qVXQ41fE6mLxmq/4i7fFR7l0Wy/0JapgcRQbK5xN4Y08ku4EPQg==", "dev": true, "requires": { "typescript": "^4.3.5" @@ -8332,12 +8141,12 @@ } }, "@astrojs/markdown-remark": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-0.5.0.tgz", - "integrity": "sha512-2A+PNNZ1w/GOZeLGRBco8QO6o3R8xtJY5EbQXwP3KmZ8xQZuVsZxX4HFpkFOvzm7ADCHZr7h6yVSdaoOAUb6UQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-0.6.0.tgz", + "integrity": "sha512-zW1w/8OrWzEgkE3AXKB2vgu6o4BLVTeC1Ykq0u4AiLhkdu1MZcCAC3AJLXzXN3D/s7qiDZxOouF+PKYxGwx3xg==", "dev": true, "requires": { - "@astrojs/prism": "^0.3.0", + "@astrojs/prism": "^0.4.0", "assert": "^2.0.0", "github-slugger": "^1.4.0", "gray-matter": "^4.0.3", @@ -8370,15 +8179,15 @@ } }, "@astrojs/prism": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-0.3.0.tgz", - "integrity": "sha512-5U+jcgfibLKW8PwnHQEdmgb+uZVeMVLz+paEr3vxKgikYfjXDjQu6qEDLOW3WTc/cIWrOF9rAtTKy8R/ArPscw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-0.4.0.tgz", + "integrity": "sha512-dbB9Acm9Z/GDqhxwPv7W/DlZAScWNZGzFz8klTqDo9kaWD6O3qsZpXn641GuGeXdNWkqTmkinu37ZJHSxaDB7A==", "dev": true }, "@astrojs/renderer-preact": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-preact/-/renderer-preact-0.3.2.tgz", - "integrity": "sha512-841A8Fpg9/w8UgHSh5YzvqoRFwToOicgAtBt98F1mPS7miN0x1elzUDOgk2zYCii+/DI4DMpW4NotsAV7qou8w==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-preact/-/renderer-preact-0.4.0.tgz", + "integrity": "sha512-pid/tz6c0V07TZNstZILBSXBF/HPCyfnWLfwtw2F66rE+TI1EpZmlZPNz9X0r28n0pBzTfNzu2ZwIvWs+CuTcQ==", "dev": true, "requires": { "@babel/plugin-transform-react-jsx": "^7.16.0", @@ -8387,9 +8196,9 @@ } }, "@astrojs/renderer-react": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-react/-/renderer-react-0.3.1.tgz", - "integrity": "sha512-TqwQyVHhzbFKuF8+jMOlrxM767nubzZzCKuKTAzmrCRLa8vMXPqcPS7JXWD7Q6s6gXln3yhat6+3iodwgurwlw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-react/-/renderer-react-0.4.0.tgz", + "integrity": "sha512-4vU2fqRDGdMVYsmM5WgzSA8Wlsmcefa80fQVBHyt1rHZWfW+bOPJVLO7nR6BzixFCoum5PzXD1TraD971O7BLA==", "dev": true, "requires": { "@babel/plugin-transform-react-jsx": "^7.16.0", @@ -8398,9 +8207,9 @@ } }, "@astrojs/renderer-svelte": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-svelte/-/renderer-svelte-0.2.3.tgz", - "integrity": "sha512-E/QbgqdnafPnTzRsfKR/IF8oDuqM65/yAdeZxAWwU0rvacRS2vjCwfQI38lPEAGdGt/NNQ29YJXoh6hWpjAEoA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-svelte/-/renderer-svelte-0.3.0.tgz", + "integrity": "sha512-9acY+v9yty/N/IABegCWkIfgkAIWj50x+MvfmGMypoAvFreBrJhkHqYMqZ6KLr/CTP/9NuvQwikSDyErIeYhyQ==", "dev": true, "requires": { "@sveltejs/vite-plugin-svelte": "1.0.0-next.30", @@ -8409,9 +8218,9 @@ } }, "@astrojs/renderer-vue": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@astrojs/renderer-vue/-/renderer-vue-0.2.1.tgz", - "integrity": "sha512-nawWIzwL40M8ran4zQaYckAdHwn1HeD6zTRH3LKCENeAjn3bJ4wxJ2KD9dZw4twACP+yBZm3y2N7iX+6CyueIQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@astrojs/renderer-vue/-/renderer-vue-0.3.0.tgz", + "integrity": "sha512-XV/WLhG76ORXFcYnjbYS8Xa7TJpOzK/eOe55XsbVPlONmg0Cyx/a20Es9KBAolelgmBlIOAJAtDBZ1Dn5rQOjA==", "dev": true, "requires": { "@vitejs/plugin-vue": "^1.9.4", @@ -8419,9 +8228,9 @@ } }, "@astropub/webapi": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@astropub/webapi/-/webapi-0.4.0.tgz", - "integrity": "sha512-KpHOH9WsIJk2E3Z/suAZri3a6I9GrkZnmm+BHAZp4OBAXUUyNTIid9mIC8tiiHNbY2A6OLbBvfteuD+BYQfcrw==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@astropub/webapi/-/webapi-0.7.4.tgz", + "integrity": "sha512-LpGMWrI0SWGCWol9Em4/wcAtiQHQFV3MoQUYzdpCRWg1UOpXi38d+2xDtWWEgOxb433IXLYQ6XubLLqIx5m3bQ==", "dev": true }, "@babel/code-frame": { @@ -9017,9 +8826,9 @@ "dev": true }, "@types/react": { - "version": "17.0.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", - "integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", + "version": "17.0.38", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz", + "integrity": "sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==", "dev": true, "requires": { "@types/prop-types": "*", @@ -9332,20 +9141,20 @@ "dev": true }, "astro": { - "version": "0.21.13", - "resolved": "https://registry.npmjs.org/astro/-/astro-0.21.13.tgz", - "integrity": "sha512-Wm72q/9KXo0DiAHlQttNSk7cBy7RtqXRj1BL2zjh2zRg6583v30yzSZl4YiJD2PA+TXBc+p4FNyq3med1YEyCw==", + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/astro/-/astro-0.22.1.tgz", + "integrity": "sha512-h8IMB34YS365E9/Wdw+W2zaP/HHzLkmCc0v+5pIjsrX5nhCN897obq4rJHkOyQ1xgpFYVoFllgdnOGIAk6H0/w==", "dev": true, "requires": { - "@astrojs/compiler": "^0.5.4", + "@astrojs/compiler": "^0.6.0", "@astrojs/language-server": "^0.8.2", - "@astrojs/markdown-remark": "^0.5.0", - "@astrojs/prism": "0.3.0", - "@astrojs/renderer-preact": "^0.3.1", - "@astrojs/renderer-react": "0.3.1", - "@astrojs/renderer-svelte": "0.2.3", - "@astrojs/renderer-vue": "0.2.1", - "@astropub/webapi": "^0.4.0", + "@astrojs/markdown-remark": "^0.6.0", + "@astrojs/prism": "0.4.0", + "@astrojs/renderer-preact": "^0.4.0", + "@astrojs/renderer-react": "0.4.0", + "@astrojs/renderer-svelte": "0.3.0", + "@astrojs/renderer-vue": "0.3.0", + "@astropub/webapi": "^0.7.3", "@babel/core": "^7.15.8", "@babel/traverse": "^7.15.4", "@proload/core": "^0.2.1", @@ -9388,7 +9197,7 @@ "strip-ansi": "^7.0.1", "supports-esm": "^1.0.0", "tsconfig-resolver": "^3.0.1", - "vite": "^2.6.10", + "vite": "~2.6.10", "yargs-parser": "^21.0.0", "zod": "^3.8.1" } @@ -9746,13 +9555,12 @@ "dev": true }, "cssnano": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.13.tgz", - "integrity": "sha512-cAmLruIF28a7vKIOieXCTrllaLwbouxV1PPi8Z4M+XloXbmeooWAu4KhJgASo4vQUwbs2pqDgAlnZ1ZKJZKtuw==", + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.14.tgz", + "integrity": "sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw==", "dev": true, "requires": { "cssnano-preset-default": "^5.1.9", - "is-resolvable": "^1.1.0", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } @@ -9875,9 +9683,9 @@ } }, "decode-named-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.0.tgz", - "integrity": "sha512-KTiXDlRp9MMm/nlgI8rDGKoNNKiTJBl0RPjnBM680m2HlgJEA4JTASspK44lsvE4GQJildMRFp2HdEBiG+nqng==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", "dev": true, "requires": { "character-entities": "^2.0.0" @@ -10716,9 +10524,9 @@ } }, "hast-util-is-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", - "integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", + "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -10868,6 +10676,24 @@ "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", "dev": true }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -11079,9 +10905,9 @@ } }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -11127,12 +10953,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -11171,12 +10991,12 @@ } }, "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" } }, "is-wsl": { @@ -11352,9 +11172,9 @@ "dev": true }, "markdown-table": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", - "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz", + "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==", "dev": true }, "mdast-util-definitions": { @@ -11468,9 +11288,9 @@ } }, "mdast-util-gfm-table": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", - "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.2.tgz", + "integrity": "sha512-pPekvCTChFBF8uCq8bVyQwar8NBU/TaXIy44jj/UzmjMgPBHIa1B1ge8a0JVgzhqgXQAMvGT+PgiKlicdLGfDQ==", "dev": true, "requires": { "markdown-table": "^3.0.0", @@ -11513,9 +11333,9 @@ } }, "mdast-util-to-hast": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.0.0.tgz", - "integrity": "sha512-BCeq0Bz103NJvmhB7gN0TDmKRT7x3auJmEp7NcYX1xpqZsQeA3JNLazLhFx6VQPqw30e2zes/coKPAiEqxxUuQ==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.0.tgz", + "integrity": "sha512-dHfCt9Yh05AXEeghoziB3DjJV8oCIKdQmBJOPoAT1NlgMDBy+/MQn7Pxfq0jI8YRO1IfzcnmA/OU3FVVn/E5Sg==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -11601,9 +11421,9 @@ "dev": true }, "micromark": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.9.tgz", - "integrity": "sha512-aWPjuXAqiFab4+oKLjH1vSNQm8S9GMnnf5sFNLrQaIggGYMBcQ9CS0Tt7+BJH6hbyv783zk3vgDhaORl3K33IQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", "dev": true, "requires": { "@types/debug": "^4.0.0", @@ -11626,9 +11446,9 @@ } }, "micromark-core-commonmark": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.5.tgz", - "integrity": "sha512-ZNtWumX94lpiyAu/lxvth6I5+XzxF+BLVUB7u60XzOBy4RojrbZqrx0mcRmbfqEMO6489vyvDfIQNv5hdulrPg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "dev": true, "requires": { "decode-named-character-reference": "^1.0.0", @@ -11650,9 +11470,9 @@ } }, "micromark-extension-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz", - "integrity": "sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "dev": true, "requires": { "micromark-extension-gfm-autolink-literal": "^1.0.0", @@ -11666,9 +11486,9 @@ } }, "micromark-extension-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dev": true, "requires": { "micromark-util-character": "^1.0.0", @@ -11679,9 +11499,9 @@ } }, "micromark-extension-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", + "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", "dev": true, "requires": { "micromark-core-commonmark": "^1.0.0", @@ -11694,9 +11514,9 @@ } }, "micromark-extension-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "dev": true, "requires": { "micromark-util-chunked": "^1.0.0", @@ -11708,9 +11528,9 @@ } }, "micromark-extension-gfm-table": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.4.tgz", - "integrity": "sha512-IK2yzl7ycXeFFvZ8qiH4j5am529ihjOFD7NMo8Nhyq+VGwgWe4+qeI925RRrJuEzX3KyQ+1vzY8BIIvqlgOJhw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "dev": true, "requires": { "micromark-factory-space": "^1.0.0", @@ -11721,18 +11541,18 @@ } }, "micromark-extension-gfm-tagfilter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", - "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "dev": true, "requires": { "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "dev": true, "requires": { "micromark-factory-space": "^1.0.0", @@ -11977,9 +11797,9 @@ } }, "micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "dev": true }, "micromark-util-types": { @@ -12160,9 +11980,9 @@ "dev": true }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-is": { @@ -12221,6 +12041,11 @@ "is-wsl": "^2.1.1" } }, + "open-props": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/open-props/-/open-props-1.0.14.tgz", + "integrity": "sha512-RbnxiFLLgPJ2dB7MQ1apxeY72Mne6OEOGyJflE0a7OM1gygGGh09m/5oCKc335mjPd2KrntfAUVVG34jnuY07g==" + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -12502,6 +12327,17 @@ "dev": true, "requires": {} }, + "postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "requires": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, "postcss-merge-idents": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.0.1.tgz", @@ -12950,14 +12786,14 @@ } }, "remark-rehype": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.0.1.tgz", - "integrity": "sha512-9itJLLOrbjrAi0qO5Rh0Wzi1d3eqvRvDWSsfif6W/BInVgCvzqSnB7BSfQRtb6MLfQiufXYG3NbbUqfE0p7nTA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", "dev": true, "requires": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.0.0", + "mdast-util-to-hast": "^12.1.0", "unified": "^10.0.0" } }, @@ -12988,6 +12824,12 @@ "path-parse": "^1.0.6" } }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, "retext": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/retext/-/retext-8.1.0.tgz", @@ -13073,9 +12915,9 @@ } }, "rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", + "version": "2.62.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.62.0.tgz", + "integrity": "sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -13130,9 +12972,9 @@ "dev": true }, "sass": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz", - "integrity": "sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==", + "version": "1.45.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.1.tgz", + "integrity": "sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -13517,9 +13359,9 @@ "dev": true }, "svelte-hmr": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.7.tgz", - "integrity": "sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==", + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.9.tgz", + "integrity": "sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==", "dev": true, "requires": {} }, @@ -13898,162 +13740,16 @@ } }, "vite": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.7.3.tgz", - "integrity": "sha512-GAY1P+9fLJOju1SRm8+hykVnEXog+E+KXuqqyMBQDriKCUIKzWnPn142yNNhSdf/ixYGYdUa5ce3A8WaEajzGw==", + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.6.14.tgz", + "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==", "dev": true, "requires": { - "esbuild": "^0.13.12", + "esbuild": "^0.13.2", "fsevents": "~2.3.2", - "postcss": "^8.3.11", + "postcss": "^8.3.8", "resolve": "^1.20.0", - "rollup": "^2.59.0" - }, - "dependencies": { - "esbuild": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", - "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", - "dev": true, - "requires": { - "esbuild-android-arm64": "0.13.15", - "esbuild-darwin-64": "0.13.15", - "esbuild-darwin-arm64": "0.13.15", - "esbuild-freebsd-64": "0.13.15", - "esbuild-freebsd-arm64": "0.13.15", - "esbuild-linux-32": "0.13.15", - "esbuild-linux-64": "0.13.15", - "esbuild-linux-arm": "0.13.15", - "esbuild-linux-arm64": "0.13.15", - "esbuild-linux-mips64le": "0.13.15", - "esbuild-linux-ppc64le": "0.13.15", - "esbuild-netbsd-64": "0.13.15", - "esbuild-openbsd-64": "0.13.15", - "esbuild-sunos-64": "0.13.15", - "esbuild-windows-32": "0.13.15", - "esbuild-windows-64": "0.13.15", - "esbuild-windows-arm64": "0.13.15" - } - }, - "esbuild-android-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", - "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", - "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", - "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", - "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", - "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", - "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", - "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", - "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", - "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", - "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", - "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", - "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", - "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", - "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", - "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", - "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "version": "0.13.15", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", - "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", - "dev": true, - "optional": true - } + "rollup": "^2.57.0" } }, "vscode-css-languageservice": { diff --git a/package.json b/package.json index 040f6b5..68b98f3 100644 --- a/package.json +++ b/package.json @@ -9,20 +9,21 @@ "npm": "8.1.4" }, "devDependencies": { - "@types/react": "17.0.37", + "@types/react": "^17.0.38", "@types/react-dom": "17.0.11", - "astro": "^0.21.13", - "cssnano": "^5.0.13", + "astro": "^0.22.1", + "cssnano": "^5.0.14", "cssnano-preset-advanced": "^5.1.9", "patch-package": "6.4.7", "postcss": "^8.4.5", "postcss-custom-media": "8.0.0", "postcss-custom-properties": "^12.0.1", "postcss-jit-props": "^1.0.4", + "postcss-load-config": "^3.1.0", "prettier": "2.5.1", "prettier-plugin-astro": "0.0.11", "sanitize.css": "13.0.0", - "sass": "^1.45.0", + "sass": "^1.45.1", "svelte-preprocess": "^4.10.1", "typescript": "^4.5.4" }, @@ -34,6 +35,7 @@ "prettify": "prettier --write './src/**/*.{js,cjs,mjs,ts,css,scss,svelte,astro}'" }, "dependencies": { - "dateformat": "5.0.2" + "dateformat": "5.0.2", + "open-props": "^1.0.14" } } diff --git a/postcss.config.cjs b/postcss.config.cjs index d2551c1..45d1775 100644 --- a/postcss.config.cjs +++ b/postcss.config.cjs @@ -7,6 +7,7 @@ const process = require("process"); const postcssCustomMedia = require("postcss-custom-media"); const postcssJitProps = require("postcss-jit-props"); +const openProps = require("open-props"); const cssnano = require("cssnano"); const { customMedia, customProperties } = require("./src/theme.cjs"); @@ -22,9 +23,9 @@ function getPlugins(isProd) { const plugins = [ postcssCustomMedia({ importFrom: { customMedia } }), postcssJitProps({ + ...openProps, ...customMedia, ...customProperties, - files: ["./src/styles/open-props.min.css"], }), ]; diff --git a/public/theme.css b/public/theme.css deleted file mode 100644 index 11f283e..0000000 --- a/public/theme.css +++ /dev/null @@ -1,24 +0,0 @@ -:root { - --brand-dark: var(--orange-3); - --text1-dark: var(--gray-1); - --text2-dark: var(--gray-3); - --surface1-dark: var(--gray-9); - --surface2-dark: var(--gray-8); - --surface3-dark: var(--gray-7); - --surface4-dark: var(--gray-6); - --surface-shadow-dark: 200 50% 3%; - --shadow-strength-dark: 0.8; - --brand: var(--brand-dark); - --text1: var(--text1-dark); - --text2: var(--text2-dark); - --surface1: var(--surface1-dark); - --surface2: var(--surface2-dark); - --surface3: var(--surface3-dark); - --surface4: var(--surface4-dark); - --surface-shadow: var(--surface-shadow-dark); - --shadow-strength: var(--shadow-strength-dark); - --viewport-small: 640px; - --viewport-medium: 768px; - --viewport-large: 960px; - --viewport-xlarge: 1200px; -} diff --git a/src/components/page-head.astro b/src/components/page-head.astro index 0ffba2c..f7bc23d 100644 --- a/src/components/page-head.astro +++ b/src/components/page-head.astro @@ -54,5 +54,4 @@ const socialImage = `${baseUrl}/images${permalink || "/social-media"}.jpg`; --> - diff --git a/src/layouts/base.astro b/src/layouts/base.astro index 0709fb7..04e572f 100644 --- a/src/layouts/base.astro +++ b/src/layouts/base.astro @@ -34,10 +34,14 @@ const { title, description, permalink, layout } = Astro.props; .base__header, .base__footer { padding: 0.25rem 0.5rem; - background-color: #000; + background-color: var(--surface-1); color: var(--gray-6); } + .base__content { + overflow-y: auto; + } + .base__footer { position: sticky; top: 100vh; diff --git a/src/layouts/demo.astro b/src/layouts/demo.astro index 36d0dfc..7ac4b37 100644 --- a/src/layouts/demo.astro +++ b/src/layouts/demo.astro @@ -18,22 +18,23 @@ function isLinkGroup(link: Link | LinkGroup): link is LinkGroup { return "links" in link; } -function makeLinks(links: (LinkGroup | Link)[], html: string = "") { +function makeLinks(links: (LinkGroup | Link)[], depth: number = 2): string { + let html = ""; for (const link of links) { if (isLinkGroup(link)) { html += `
  • -

    ${link.title}

    -
      ${makeLinks(link.links)}
    + ${link.title} +
  • `; } else { - html += `
  • ${link.title}
  • `; + html += `
  • ${link.title}
  • `; } } return html; -}; +} --- @@ -41,7 +42,9 @@ function makeLinks(links: (LinkGroup | Link)[], html: string = "") { - +
    + +
    @@ -57,13 +60,34 @@ function makeLinks(links: (LinkGroup | Link)[], html: string = "") { display: grid; align-content: start; + position: relative; padding: 1rem; background-color: var(--surface2); color: var(--text2); - & a { - padding: 0.25rem 0.5rem; + & :global(.demo__title) { + margin: 0; + + &.demo__title--2 { + margin: 0.5rem 0; + } + &.demo__title--3 { + margin: 0.25rem 0; + } + } + + & :global(.demo__links) { + margin: 0; + padding: 0 0 0 1rem; + } + + & :global(.demo__link) { text-decoration: none; } } + + .demo__content { + min-height: 100%; + overflow: hidden auto; + } diff --git a/src/pages/demos/advent-css-2021-menu/components/screen.svelte b/src/pages/demos/advent-css-2021-menu/components/screen.svelte index 2027191..e8b18fe 100644 --- a/src/pages/demos/advent-css-2021-menu/components/screen.svelte +++ b/src/pages/demos/advent-css-2021-menu/components/screen.svelte @@ -13,8 +13,6 @@ .screen { --w: 375px; --h: 812px; - --text-1: #000; - --text-2: #000; display: grid; grid-template-rows: auto 1fr; @@ -23,6 +21,8 @@ width: var(--w); height: var(--h); overflow: hidden; + isolation: isolate; + padding: 3rem 0 0; border-radius: var(--radius-4); box-shadow: var(--shadow-2); diff --git a/src/pages/demos/houdini-jeffsum/components/app.svelte b/src/pages/demos/houdini-jeffsum/components/app.svelte index b7e0a50..5438639 100644 --- a/src/pages/demos/houdini-jeffsum/components/app.svelte +++ b/src/pages/demos/houdini-jeffsum/components/app.svelte @@ -1,4 +1,7 @@
    @@ -21,36 +50,40 @@
    - + +
    + {#each _sentences as sentence} +

    {sentence}

    + {/each} +
    diff --git a/src/pages/demos/houdini-jeffsum/components/gallery.svelte b/src/pages/demos/houdini-jeffsum/components/gallery.svelte index 5edd200..cea3f4c 100644 --- a/src/pages/demos/houdini-jeffsum/components/gallery.svelte +++ b/src/pages/demos/houdini-jeffsum/components/gallery.svelte @@ -50,13 +50,13 @@ .slides { position: absolute; overflow: hidden; - max-width: 100%; - width: 496px; - height: 622px; + width: 100%; + height: 100%; + + aspect-ratio: 622 / 496; margin: 0; opacity: 0.3; - z-index: 1; - + isolation: isolate; & > img { will-change: opacity, transform; @@ -66,19 +66,30 @@ display: block; width: 100%; + object-fit: cover; opacity: 0; - background: var(--gradientEnd); + background: var(--gradient-end); + // Initial value: overridden by subsequent animations &:first-child { opacity: 1; z-index: 2; } } + @media (--mq-medium) { + width: 50%; + } @media (--mq-large) { + opacity: 1; + } + + @media (--mq-xlarge) { top: 30px; left: -30px; - opacity: 1; + width: 496px; + height: 622px; + box-shadow: 0 48px 64px -24px rgba(0, 0, 0, 0.3); } } diff --git a/src/pages/demos/houdini-jeffsum/components/header.svelte b/src/pages/demos/houdini-jeffsum/components/header.svelte index 5c35546..f75e41d 100644 --- a/src/pages/demos/houdini-jeffsum/components/header.svelte +++ b/src/pages/demos/houdini-jeffsum/components/header.svelte @@ -7,9 +7,9 @@ He made this.

    -

    Jeffsum.

    +

    Jeffsum

    - A little image gallery of Jeff Goldblum awesomeness. + A little placeholder text-generator of Jeff Goldblum awesomeness

    @@ -88,7 +88,7 @@ line-height: 1; letter-spacing: -2px; - @media (--mq-large) { + @media (--mq-xlarge) { font-size: 212px; } } @@ -101,21 +101,19 @@ margin: 7px 0 0 auto; font-size: var(--font-size); font-weight: 500; - - @media (--mq-small) { - --width: 60%; - } - @media (--mq-medium) { - --width: 40%; --font-size: 28px; + letter-spacing: -1px; } @media (--mq-large) { --width: 50%; + } + + @media (--mq-xlarge) { + --width: calc(100% - 496px); --font-size: 39px; - text-align: left; opacity: 0.7; } } diff --git a/src/pages/demos/houdini-jeffsum/components/quotes.ts b/src/pages/demos/houdini-jeffsum/components/quotes.ts new file mode 100644 index 0000000..0ddd432 --- /dev/null +++ b/src/pages/demos/houdini-jeffsum/components/quotes.ts @@ -0,0 +1,72 @@ +const quotes = [ + "We gotta burn the rain forest, dump toxic waste, pollute the air, and rip up the OZONE! 'Cause maybe if we screw up this planet enough, they won't want it anymore!", + "God help us, we're in the hands of engineers.", + "Forget the fat lady! You're obsessed with the fat lady!", + "Hey, take a look at the earthlings. Goodbye!", + "Checkmate...", + "God creates dinosaurs. God destroys dinosaurs. God creates Man. Man destroys God. Man creates Dinosaurs.", + "You know what? It is beets. I've crashed into a beet truck.", + "You're a very talented young man, with your own clever thoughts and ideas. Do you need a manager?", + "Must go faster.", + "So you two dig up, dig up dinosaurs?", + "Eventually, you do plan to have dinosaurs on your dinosaur tour, right?", + "Must go faster... go, go, go, go, go!", + "Hey, you know how I'm, like. always trying to save the planet? Here's my chance.", + "My dad once told me, laugh and the world laughs with you, Cry, and I'll give you something to cry about you little bastard!", + "I was part of something special.", + "Do you have any idea how long it takes those cups to decompose.", + "I gave it a cold? I gave it a virus. A computer virus.", + "Yeah, but your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should.", + "What do they got in there? King Kong?", + "You really think you can fly that thing?", + "This thing comes fully loaded. AM/FM radio, reclining bucket seats, and power windows.", + "Yes, Yes, without the oops!", + "They're using our own satellites against us. And the clock is ticking.", + "Just my luck, no ice.", + "Remind me to thank John for a lovely weekend.", + "I travel for work, but recently, friends said I should take major trips.", + "I love to be directed. They can trust me and go.", + "No matter how you travel, it's still you going.", + "If any movie people are watching this show, please, for me, have some respect. You wanna sell some tickets, act like you know what you're talking about.", + "It's mysterious what attracts you to a person.", + "I, uh, don't think I'm, y'know, so different than your average, y'know, average.", + "It's a delight to trust somebody so completely.", + "It's nice to play a character that has a soulful, dependent, close relationship. It must mean my character is interesting in some way.", +]; + +/** + * + * @param arr + * @returns + */ +function shuffle(arr: T[]): T[] { + const shuffled = [...arr]; + for (let i = shuffled.length - 1; i > 0; i--) { + let j = Math.floor(Math.random() * (i + 1)); // random index from 0 to i + + // swap elements array[i] and array[j] + // we use "destructuring assignment" syntax to achieve that + // you'll find more details about that syntax in later chapters + // same can be written as: + // let t = array[i]; array[i] = array[j]; array[j] = t + [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; + } + + return shuffled; +} + +/** + * Return n paragraphs of random quotes up to max length. + */ +export function jeffsum(n: number, max: number = 10): string[] { + let paras = []; + for (let i = 0; i < n; i++) { + let shuffledQuotes = shuffle(quotes); + let para = []; + for (let j = 0; j < Math.ceil(Math.random() * max); j++) { + para.push(shuffledQuotes[j]); + } + paras.push(para.join(" ")); + } + return paras; +} diff --git a/src/pages/demos/houdini-jeffsum/components/text-generator.svelte b/src/pages/demos/houdini-jeffsum/components/text-generator.svelte index ad4c6e8..52701e2 100644 --- a/src/pages/demos/houdini-jeffsum/components/text-generator.svelte +++ b/src/pages/demos/houdini-jeffsum/components/text-generator.svelte @@ -1,57 +1,60 @@ -
    -