0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-16 21:46:22 -05:00

feat(examples): add starlog release notes theme

Co-authored-by: Florian Lefebvre <69633530+florian-lefebvre@users.noreply.github.com>
Co-authored-by: Emanuele Stoppa <602478+ematipico@users.noreply.github.com>
Co-authored-by: Nate Moore <7118177+natemoo-re@users.noreply.github.com>
Co-authored-by:  Matthew Phillips <361671+matthewp@users.noreply.github.com>
This commit is contained in:
Mark Peck 2023-12-28 15:08:51 -06:00 committed by GitHub
parent 0fbe26eeb0
commit d25813f2cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 1132 additions and 70 deletions

View file

@ -0,0 +1,6 @@
# Starlog
## Release notes theme for Astro
![starlog-gh](https://github.com/doodlemarks/starlog/assets/2244813/9c5c2e46-665a-437e-a971-053db4dbff63)
Built with Astro and Sass. Supports both dark and light modes.

View file

@ -0,0 +1,6 @@
import { defineConfig } from 'astro/config';
// https://astro.build/config
export default defineConfig({
site: "https://example.com",
});

View file

@ -0,0 +1,17 @@
{
"name": "@example/starlog",
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"astro": "^4.0.5",
"sass": "^1.69.5",
"sharp": "^0.32.5"
}
}

View file

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
</svg>

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 KiB

View file

@ -0,0 +1,21 @@
---
import { ViewTransitions } from 'astro:transitions';
import SEO, { type Props as SEOProps } from './SEO.astro';
import { SiteTitle, SiteDescription } from '../consts';
export type Props = Partial<SEOProps>
const {
title = SiteTitle,
name = SiteTitle,
description = SiteDescription,
...seo
} = Astro.props
---
<SEO {title} {description} {name} {...seo} />
<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=Lato:wght@400;700&family=Source+Code+Pro&display=swap" rel="stylesheet">
<ViewTransitions />

View file

@ -0,0 +1,12 @@
---
import '../styles/global.scss';
---
<footer>
<p>© 2023</p>
<div class="footer_links">
<a href="#">Discord</a>
<a href="#">X</a>
<a href="#">GitHub</a>
</div>
</footer>

View file

@ -0,0 +1,25 @@
---
import type { HTMLAttributes } from 'astro/types';
type Props = HTMLAttributes<'time'> & {
date: Date;
}
const { date, ...attrs } = Astro.props;
---
<time datetime={date.toISOString()} {...attrs}>
{
date.toLocaleDateString('en-us', {
year: 'numeric',
month: 'short',
day: 'numeric',
})
}
</time>
<style>
time {
display: block;
}
</style>

View file

@ -0,0 +1,24 @@
---
import '../styles/global.scss';
import { SiteTitle } from '../consts';
---
<header>
<nav>
<h2 id="site_title">
<a href="/">
<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="url(#a)" fill-rule="evenodd" d="M.654 3.276C0 4.56 0 6.24 0 9.6v4.8c0 3.36 0 5.04.654 6.324a6 6 0 0 0 2.622 2.622C4.56 24 6.24 24 9.6 24h4.8c3.36 0 5.04 0 6.324-.654a6 6 0 0 0 2.622-2.622C24 19.44 24 17.76 24 14.4V9.6c0-3.36 0-5.04-.654-6.324A6 6 0 0 0 20.724.654C19.44 0 17.76 0 14.4 0H9.6C6.24 0 4.56 0 3.276.654A6 6 0 0 0 .654 3.276Zm10.875 16.41a.5.5 0 0 0 .942 0l.628-1.754a8 8 0 0 1 4.833-4.833l1.754-.628a.5.5 0 0 0 0-.942l-1.754-.628A8 8 0 0 1 13.1 6.068l-.628-1.754a.5.5 0 0 0-.942 0l-.628 1.754A8 8 0 0 1 6.068 10.9l-1.754.628a.5.5 0 0 0 0 .942l1.754.628a8 8 0 0 1 4.833 4.833l.628 1.754Z" clip-rule="evenodd"/><path stroke="url(#b)" stroke-opacity=".5" stroke-width=".5" d="M.25 9.6c0-1.684 0-2.932.08-3.92.081-.985.24-1.69.547-2.29A5.75 5.75 0 0 1 3.39.877C3.99.57 4.695.41 5.68.33 6.668.25 7.916.25 9.6.25h4.8c1.684 0 2.932 0 3.92.08.985.081 1.69.24 2.29.547a5.75 5.75 0 0 1 2.513 2.513c.306.6.466 1.305.546 2.29.08.988.081 2.236.081 3.92v4.8c0 1.684 0 2.932-.08 3.92-.081.985-.24 1.69-.547 2.29a5.75 5.75 0 0 1-2.513 2.513c-.6.306-1.305.466-2.29.546-.988.08-2.236.081-3.92.081H9.6c-1.684 0-2.932 0-3.92-.08-.985-.081-1.69-.24-2.29-.547A5.75 5.75 0 0 1 .877 20.61C.57 20.01.41 19.305.33 18.32.25 17.332.25 16.084.25 14.4V9.6Zm11.044 10.17c.237.663 1.175.663 1.412 0l.628-1.753a7.75 7.75 0 0 1 4.683-4.683l1.753-.628c.663-.237.663-1.175 0-1.412l-1.753-.628a7.75 7.75 0 0 1-4.683-4.683l-.628-1.753c-.237-.663-1.175-.663-1.412 0l-.628 1.753a7.75 7.75 0 0 1-4.683 4.683l-1.753.628c-.663.237-.663 1.175 0 1.412l1.753.628a7.75 7.75 0 0 1 4.683 4.683l.628 1.753Z"/><defs><radialGradient id="a" cx="0" cy="0" r="1" gradientTransform="rotate(-40.136 32.164 11.75) scale(33.3542)" gradientUnits="userSpaceOnUse"><stop offset=".639" stop-color="#9818E7"/><stop offset="1" stop-color="#DF7F4F"/></radialGradient><linearGradient id="b" x1="12" x2="12" y1="0" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="#fff"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient></defs></svg>
{SiteTitle}
</a>
</h2>
<div class="links">
<a href="mailto:contactus@yourwebsite.com">Contact</a>
</div>
</nav>
</header>
<style>
.links a {
text-decoration: none;
}
</style>

View file

@ -0,0 +1,87 @@
---
import type { ImageMetadata } from 'astro'
type Image = {
src: string | ImageMetadata,
alt: string
}
type SEOMetadata = {
name: string
title: string
description: string
image?: Image | undefined
canonicalURL?: URL | string | undefined
locale?: string
}
type OpenGraph = Partial<SEOMetadata> & {
type?: string
}
type Twitter = Partial<SEOMetadata> & {
handle?: string
card?: 'summary' | 'summary_large_image'
}
export type Props = SEOMetadata & {
og?: OpenGraph
twitter?: Twitter
}
const {
name,
title,
description,
image,
locale = 'en',
canonicalURL = new URL(Astro.url.pathname, Astro.site),
} = Astro.props
const og = {
name,
title,
description,
canonicalURL,
image,
locale,
type: "website",
...Astro.props.og ?? {},
} satisfies OpenGraph
const twitter = {
name,
title,
description,
canonicalURL,
image,
locale,
card: "summary_large_image",
...Astro.props.twitter,
}
function normalizeImageUrl(image: string | ImageMetadata) {
return typeof image === 'string' ? image : image.src
}
---
<!-- Page Metadata -->
<link rel="canonical" href={canonicalURL} />
<meta name="description" content={description} />
<!-- OpenGraph Tags -->
<meta property="og:title" content={og.title} />
<meta property="og:type" content={og.type} />
<meta property="og:url" content={canonicalURL} />
<meta property="og:locale" content={og.locale} />
<meta property="og:description" content={og.description} />
<meta property="og:site_name" content={og.name} />
{og.image && <meta property="og:image" content={normalizeImageUrl(og.image.src)} />}
{og.image && <meta property="og:image:alt" content={og.image.alt} />}
<!-- Twitter Tags -->
<meta name="twitter:card" content={twitter.card} />
<meta name="twitter:site" content={twitter.handle} />
<meta name="twitter:title" content={twitter.title} />
<meta name="twitter:description" content={twitter.description} />
{twitter.image && <meta name="twitter:image" content={normalizeImageUrl(twitter.image.src)} />}
{twitter.image && <meta name="twitter:image:alt" content={twitter.image.alt} />}

View file

@ -0,0 +1,6 @@
// Place any global data in this file.
// You can import this data from anywhere in your site by using the `import` keyword.
export const SiteTitle = 'Starlog';
export const SiteDescription = 'Welcome to my website!';

View file

@ -0,0 +1,19 @@
import { defineCollection, z } from "astro:content"
const releases = defineCollection({
// Type-check frontmatter using a schema
schema: ({ image }) => z.object({
title: z.string(),
description: z.string(),
versionNumber: z.string(),
image: z.object({
src: image(),
alt: z.string()
}),
// Transform string to Date object
date: z.date({ coerce: true }),
})
})
export const collections = { releases };

View file

@ -0,0 +1,29 @@
---
title: 'Introducing Nebulous 1.0!'
date: '2022-03-21'
versionNumber: '1.0'
description: 'This is the first post of my new Astro blog.'
image:
src: '../../assets/starlog-placeholder-1.jpg'
alt: 'The full Astro logo.'
---
## A New World with 1.0
![Nebulous 2.0 Release](../../assets/starlog-placeholder-1.jpg)
Hey there, Nebulous users! We're back with some exciting updates that will turbocharge your Nebulous experience. Here's the lowdown:
### 🍿 New Features & Enhancements
* __NebulaProtect Supercharged:__ Enjoy beefed-up security and real-time monitoring to keep your digital fortress unbreachable.
* __NebulaConnect for Teams:__ Collaboration is a breeze with integrated project management tools.
* __Speed Boost Galore:__ We've fine-tuned Nebulous for ultimate speed and responsiveness.
### 🐞 Bug Fixes
* Kicked pesky crashes out the door for NebulaSync.
* Fixed rare data hiccups during file transfers.
* Nebulous is now even friendly with older devices.
Thank you for making Nebulous your tech partner. We thrive on your feedback, so if you have ideas or run into bumps, don't hesitate to drop a line to our support wizards. Together, we're taking Nebulous to the next level!

View file

@ -0,0 +1,29 @@
---
title: 'Introducing Nebulous 1.8!'
date: '2022-04-16'
versionNumber: '1.4'
description: 'This is the first post of my new Astro blog.'
image:
src: '../../assets/starlog-placeholder-14.jpg'
alt: 'The full Astro logo.'
---
## Go further with 1.4
![Nebulous 1.4 Release](../../assets/starlog-placeholder-14.jpg)
Hello, Nebulous enthusiasts! It's that time again—time for us to unveil the latest and greatest in our tech universe. Buckle up as we introduce you to the future of Nebulous:
### 🍿 New Features & Enhancements
* __NebulaSync Quantum:__ Prepare for a mind-blowing file syncing experience. It's faster, smarter, and more intuitive than ever before.
* __NebulaAI Odyssey:__ Welcome to the era of NebulaAI Odyssey—a journey into the boundless possibilities of artificial intelligence. From image manipulation to language translation, Odyssey empowers you like never before.
### 🐞 Bug Fixes
* Squashed even more bugs, making NebulaSync and other features more reliable than ever.
* Streamlined data transfer processes for flawless file exchanges.
* Extended support for older devices to ensure everyone enjoys Nebulous.
* Elevating error handling to the next level, ensuring a hiccup-free experience.
Thank you for being a part of the Nebulous journey. Your feedback fuels our innovation, so don't hesitate to share your thoughts or report any hiccups with our dedicated support team. Together, we're shaping the future of tech with Nebulous!

View file

@ -0,0 +1,29 @@
---
title: 'Introducing Nebulous 1.8!'
date: '2022-06-01'
versionNumber: '1.8'
description: 'This is the first post of my new Astro blog.'
image:
src: '../../assets/starlog-placeholder-18.jpg'
alt: 'The full Astro logo.'
---
## Faster, Stronger, Betterer
![Nebulous 2.0 Release](../../assets/starlog-placeholder-18.jpg)
Hey there, Nebulous users! We're back with some exciting updates that will turbocharge your Nebulous experience. Here's the lowdown:
### New Features & Enhancements
* __NebulaProtect Supercharged:__ Enjoy beefed-up security and real-time monitoring to keep your digital fortress unbreachable.
* __NebulaConnect for Teams:__ Collaboration is a breeze with integrated project management tools.
* __Speed Boost Galore:__ We've fine-tuned Nebulous for ultimate speed and responsiveness.
### 🐞 Bug Fixes
* Kicked pesky crashes out the door for NebulaSync.
* Fixed rare data hiccups during file transfers.
* Nebulous is now even friendly with older devices.
Thank you for making Nebulous your tech partner. We thrive on your feedback, so if you have ideas or run into bumps, don't hesitate to drop a line to our support wizards. Together, we're taking Nebulous to the next level!

View file

@ -0,0 +1,37 @@
---
title: 'Introducing Nebulous 2.0!'
date: '2022-07-01'
versionNumber: '2.0'
description: 'This is the first post of my new Astro blog.'
image:
src: '../../assets/starlog-placeholder-2.jpg'
alt: 'The full Astro logo.'
---
## Introducing Nebulous 2.0!
![Nebulous 2.0 Release](../../assets/starlog-placeholder-2.jpg)
Greetings, Nebulous users! We're excited to bring you the latest updates in our [ever-evolving tech ecosystem](#). In this release, we're introducing some exciting new features and squashing a few pesky bugs. Let's dive in!
### 🍿 New Features & Enhancements
* __NebulaSync v2.0:__ We're thrilled to introduce NebulaSync 2.0, our revamped file synchronization tool. It now offers blazing-fast sync speeds, improved reliability, and enhanced cross-device compatibility.
* __Enhanced NebulaProtect:__ NebulaProtect, our comprehensive security suite, has received a major update. Enjoy advanced threat detection, and real-time monitoring.
* __NebulaConnect for Teams:__ Collaborate effortlessly with NebulaConnect for Teams. This powerful feature allows seamless integration with your favorite project management tools, enabling you to manage tasks, share documents, and track progress in real-time.
### 🐞 Bug Fixes
* Resolved occasional crashing issues when using NebulaSync.
* Fixed a bug causing data corruption in rare cases during file transfers.
* Improved compatibility with older devices to ensure a seamless experience for all users.
* Enhanced error handling and reporting for a smoother user experience.
### 👀 Coming Soon
We can't spill all the beans just yet, but we're thrilled to give you a sneak peek of what's coming in the next Nebulous release:
* __NebulaWallet:__ A secure and user-friendly cryptocurrency wallet integrated directly into Nebulous for seamless digital asset management.
* __NebulaConnect Mobile:__ Take your collaboration to the next level with our upcoming mobile app, enabling you to work on the go.
* __NebulaLabs:__ Our developer tools and API enhancements, providing you with even more customization options and possibilities.
If you have any suggestions or encounter any issues, don't hesitate to reach out to our support team. Together, we'll continue to make Nebulous the ultimate tech solution for you.

View file

@ -0,0 +1,23 @@
---
import BaseHead, { type Props as HeadProps } from "../components/BaseHead.astro";
import Header from "../components/Header.astro";
import Footer from "../components/Footer.astro";
type Props = HeadProps
const { ...head } = Astro.props
---
<!doctype html>
<meta charset="utf-8">
<html lang="en">
<head>
<BaseHead {...head} />
<body>
<div class="glow"></div>
<Header />
<slot />
<Footer />
</body>
</html>

View file

@ -0,0 +1,36 @@
---
import type { CollectionEntry } from 'astro:content';
import BaseHead from "../components/BaseHead.astro";
import FormattedDate from '../components/FormattedDate.astro';
import Header from "../components/Header.astro";
import Footer from "../components/Footer.astro";
type Props = {
release: CollectionEntry<'releases'>
}
const { release } = Astro.props;
---
<!doctype html>
<html lang="en">
<head>
<BaseHead title={release.data.title} description={release.data.description} image={release.data.image} />
<body>
<div class="glow"></div>
<Header />
<div class="post single" transition:persist transition:name="post">
<div class="version_wrapper">
<div class="version_info">
<div class="version_number">{release.data.versionNumber}</div>
<FormattedDate class="date" date={release.data.date} />
</div>
</div>
<div class="content">
<slot />
</div>
</div>
<Footer />
</body>
</html>

View file

@ -0,0 +1,33 @@
---
import { getCollection } from 'astro:content';
import FormattedDate from '../components/FormattedDate.astro';
import Layout from '../layouts/IndexLayout.astro';
const posts = await getCollection('releases');
posts.sort((a, b) => +b.data.date - +a.data.date);
---
<Layout>
<main>
<h1 class="page_title">Changelog</h1>
<hr />
<ul class="posts" transition:name="post">
{posts.map(post =>
<li class="post">
<div class="version_wrapper">
<div class="version_info">
<a href={`/releases/${post.slug}`}>
<div class="version_number">{post.data.versionNumber}</div>
<FormattedDate class="date" date={post.data.date} />
</a>
</div>
</div>
<div class="content">
{
post.render().then(({ Content }) => (<Content />))
}
</div>
</li>
)}
</ul>
</main>
</Layout>

View file

@ -0,0 +1,21 @@
---
import { getCollection } from 'astro:content';
import Layout from '../../layouts/PostLayout.astro'
export async function getStaticPaths() {
const releases = await getCollection('releases')
return releases.map((release) => ({
params: { slug: release.slug },
props: { release }
}))
}
const { release } = Astro.props
const { Content } = await release.render()
---
<Layout {release}>
<Content />
</Layout>

View file

@ -0,0 +1,64 @@
@function color($color,$tone){
// @warn map-get($palette,$color);
@if map-has-key($palette,$color){
$color: map-get($palette,$color);
@if map-has-key($color,$tone){
$tone: map-get($color,$tone);
@return $tone;
}
@warn "unknown tone `#{$tone}` in color";
@return null;
}
@warn "unknown color `#{$color}` in palette";
@return null;
}
$white: #ffffff;
$palette: (
purple: (
50: #F2E8FD,
100: #E6D1FA,
200: #CFA3F5,
300: #BA75F0,
400: #A846EC,
500: #9818E7,
600: #7B13B4,
700: #5B0E81,
800: #3A084E,
900: #15031C,
950: #020002
),
orange: (
50: #FBF0EA,
100: #F8E3D9,
200: #F2CAB7,
300: #ECB194,
400: #E59872,
500: #DF7F4F,
600: #D05F26,
700: #A1491D,
800: #713315,
900: #421E0C,
950: #2A1308
),
gray: (
50: #F6F6F9,
100: #E6E7EF,
200: #C7C9DB,
300: #A8ABC7,
400: #898EB4,
500: #6A71A0,
600: #545B83,
700: #404664,
800: #2C3145,
900: #181B26,
950: #0E1016
)
);

View file

@ -0,0 +1,3 @@
@import 'colors.scss';
@import 'type.scss';
@import 'layout.scss';

View file

@ -0,0 +1,240 @@
$container: 1040px;
$tablet: 768px;
$mobile: 420px;
* {
box-sizing: border-box;
}
body {
margin: 0 auto;
padding: 0 1em;
width: 1040px;
max-width: 100%;
background-color: $white;
@media (prefers-color-scheme: dark) { background-color: color(gray, 950); }
@media (max-width: $tablet) { font-size: 16px; }
}
.glow {
width: 100%;
height: 100%;
position: absolute;
z-index: -1;
top: 0;
left:0;
overflow: hidden;
&:after {
content: '';
display: block;
position: absolute;
top: -120px;
left: calc(50% - 360px);
width: 720px;
height: 240px;
background: radial-gradient(50% 50% at 50% 50%, rgba(color(orange, 500), 0.2) 0%,rgba(color(orange, 500), 0) 100%);
@media (prefers-color-scheme: dark) { background: radial-gradient(50% 50% at 50% 50%, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 100%); }
}
}
::selection {
background: color(orange, 200);
@media (prefers-color-scheme: dark) { background: color(orange, 600) }
}
a, a:visited {
color: color(orange, 600);
@media (prefers-color-scheme: dark) { color: color(orange, 300) }
transition: 0.1s ease;
&:hover {
color: color(orange, 500);
}
}
hr {
margin: 1em 0;
border: 0;
border-bottom: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) { border-color: color(gray, 900) }
}
nav {
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 0 2em 0;
padding: 2em 0;
a {
transition: 0.1s ease;
&:hover {
opacity: 0.6;
}
}
#site_title {
margin: 0;
}
#site_title a {
display: flex;
align-items: center;
gap: 10px;
color: color(gray, 950);
@media (prefers-color-scheme: dark) { color: $white }
font-size: 16px;
font-weight: 700;
letter-spacing: 2px;
line-height: 1;
text-decoration: none;
text-transform: uppercase;
}
.links a {
margin-left: 1em;
color: color(gray, 800);
@media (prefers-color-scheme: dark) { color: color(gray, 200); }
}
}
.content {
ol, ul {
padding-left: 2em;
margin-bottom: 1em;
}
ul {
list-style: none;
li {
position: relative;
margin-bottom: .75em;
&:before {
content: '';
display: block;
position: absolute;
left: -1em;
top: .63em;
width: 8px;
height: 8px;
background: linear-gradient(25deg, color(purple, 500), color(orange, 500));
border-radius: 99px;
}
}
}
}
.page_title {
margin: 1.5em 0;
@media (max-width: $tablet) { margin: .5em 0; }
}
.posts {
list-style: none;
padding: 0;
}
.post {
display: flex;
width: 100%;
@media (max-width: $tablet) { flex-flow: column; }
&:last-child .content, &.single .content {
border-bottom: 0;
}
}
.version_wrapper {
flex-basis: 260px;
@media (max-width: $container) { flex-basis: 140px; }
flex-grow: 0;
flex-shrink: 0;
margin: 4.5em 0 0 0;
@media (max-width: $tablet) {
flex-basis: 0;
margin-top: 2em;
}
.version_info {
position: sticky;
top: 1em;
@media (max-width: $tablet) {
position: relative;
top: 0;
}
}
a {
float: left;
color: $white;
text-decoration: none;
transition: 0.1s ease;
&:hover {
opacity: 0.6;
}
}
}
.version_number {
display: inline-block;
font-family: $codeFont;
line-height: 1;
margin-bottom: 8px;
padding: 4px 12px;
color: $white;
background: linear-gradient(25deg, color(purple, 800), color(purple, 700), mix(color(purple, 500), color(orange, 500)), color(orange, 500));
border-radius: 8px;
}
.date {
clear: both;
@media (max-width: $tablet) { display: inline; margin-left: 1em; }
color: color(gray, 800);
@media (prefers-color-scheme: dark) { color: color(gray, 200); }
font-family: $codeFont;
font-size: $fontSizeSmall;
}
.content {
margin: 0;
padding: 4em 0;
@media (max-width: $tablet) {
margin: 1em 0;
padding: 0 0 2em 0;
}
border-bottom: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) { border-color: color(gray, 900); }
*:first-child {
margin-top: 0;
}
img {
max-width: 100%;
height: auto;
border-radius: 12px;
border: 1px solid color(gray, 200);
@media (prefers-color-scheme: dark) { border-color: color(gray, 800) }
}
}
footer {
display: flex;
padding: 2em 0;
@media (max-width: $tablet) { padding: 1em 0; }
color: color(gray, 500);
justify-content: space-between;
border-top: 1px solid color(gray, 100);
@media (prefers-color-scheme: dark) { border-color: color(gray, 900); }
a {
margin-left: 1em;
color: color(gray, 500);
text-decoration: none;
&:hover {
color: color(gray, 500);
opacity: 0.6;
}
}
}

View file

@ -0,0 +1,44 @@
$baseFont: 'Lato', sans-serif;
$codeFont: 'Source Code Pro', monospace;
$fontSizeSmall: 15px;
body {
font-family: $baseFont;
font-size: 18px;
line-height: 1.65;
font-weight: 400;
@media (prefers-color-scheme: dark) { color: color(gray, 200); }
color: color(gray, 800);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5 {
line-height: 1.2;
margin: 1em 0 .5em 0;
@media (prefers-color-scheme: dark) { color: $white; }
color: color( gray, 950);
font-weight: 700;
}
h1 { font-size: 3.052em;}
h2 {font-size: 2.441em;}
h3 {font-size: 1.953em;}
h4 {font-size: 1.563em;}
h5 {font-size: 1.25em;}
p {
margin: 0 0 1em 0;
}
code {
font-family: $codeFont;
}
b, strong {
font-weight: 700;
color: #fff;
@media (prefers-color-scheme: dark) { color: $white; }
color: color( gray, 950);
}

View file

@ -0,0 +1,4 @@
{
"extends": "astro/tsconfigs/strict",
"exclude": ["dist"]
}

View file

@ -201,7 +201,7 @@ importers:
version: link:../../packages/astro
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.2.0
version: 18.2.0
@ -225,13 +225,13 @@ importers:
version: link:../../packages/integrations/preact
'@preact/signals':
specifier: ^1.2.1
version: 1.2.1(preact@10.19.3)
version: 1.2.1(preact@10.19.2)
astro:
specifier: ^4.0.8
version: link:../../packages/astro
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
examples/framework-react:
dependencies:
@ -350,6 +350,18 @@ importers:
specifier: ^4.2.5
version: 4.2.8
examples/starlog:
dependencies:
astro:
specifier: ^4.0.5
version: link:../../packages/astro
sass:
specifier: ^1.69.5
version: 1.69.5
sharp:
specifier: ^0.32.5
version: 0.32.5
examples/view-transitions:
devDependencies:
'@astrojs/node':
@ -414,7 +426,7 @@ importers:
version: link:../../packages/astro
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
examples/with-nanostores:
dependencies:
@ -423,7 +435,7 @@ importers:
version: link:../../packages/integrations/preact
'@nanostores/preact':
specifier: ^0.5.0
version: 0.5.0(nanostores@0.9.5)(preact@10.19.3)
version: 0.5.0(nanostores@0.9.5)(preact@10.19.2)
astro:
specifier: ^4.0.8
version: link:../../packages/astro
@ -432,7 +444,7 @@ importers:
version: 0.9.5
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
examples/with-tailwindcss:
dependencies:
@ -859,7 +871,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/e2e/fixtures/astro-envs:
dependencies:
@ -877,7 +889,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -944,7 +956,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/e2e/fixtures/error-cyclic:
dependencies:
@ -956,7 +968,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/e2e/fixtures/error-sass:
dependencies:
@ -989,7 +1001,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1028,7 +1040,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/e2e/fixtures/lit-component:
dependencies:
@ -1055,7 +1067,7 @@ importers:
version: 2.8.0
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1098,7 +1110,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
devDependencies:
'@astrojs/mdx':
specifier: workspace:*
@ -1114,7 +1126,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1154,7 +1166,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1194,7 +1206,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1234,7 +1246,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1274,7 +1286,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1314,7 +1326,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -1382,7 +1394,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/e2e/fixtures/preact-component:
dependencies:
@ -1397,7 +1409,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/e2e/fixtures/prefetch:
dependencies:
@ -1800,7 +1812,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/astro-check-errors:
dependencies:
@ -1836,7 +1848,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
svelte:
specifier: ^4.2.5
version: 4.2.8
@ -1982,7 +1994,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/astro-external-files:
dependencies:
@ -2000,7 +2012,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/astro-generator:
dependencies:
@ -2210,7 +2222,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/astro-slots:
dependencies:
@ -2240,7 +2252,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.2.0
version: 18.2.0
@ -2267,7 +2279,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/build-assets:
dependencies:
@ -2279,7 +2291,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/client-address:
dependencies:
@ -2312,7 +2324,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -2327,7 +2339,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.2.0
version: 18.2.0
@ -2666,7 +2678,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/error-bad-js:
dependencies:
@ -2702,7 +2714,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
svelte:
specifier: ^4.2.5
version: 4.2.8
@ -2786,7 +2798,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/i18n-routing:
dependencies:
@ -2861,7 +2873,7 @@ importers:
dependencies:
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -3077,7 +3089,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/preact-compat-component/packages/react-lib:
dependencies:
@ -3092,13 +3104,13 @@ importers:
version: link:../../../../integrations/preact
'@preact/signals':
specifier: 1.2.1
version: 1.2.1(preact@10.19.3)
version: 1.2.1(preact@10.19.2)
astro:
specifier: workspace:*
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/public-base-404:
dependencies:
@ -3159,7 +3171,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/remote-css:
dependencies:
@ -3210,7 +3222,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/slots-react:
dependencies:
@ -3369,7 +3381,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/ssr-error-pages:
dependencies:
@ -3456,7 +3468,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/ssr-split-manifest:
dependencies:
@ -3477,7 +3489,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/astro/test/fixtures/static-build-code-component:
dependencies:
@ -3504,7 +3516,7 @@ importers:
version: link:../../..
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
react:
specifier: ^18.1.0
version: 18.2.0
@ -4126,7 +4138,7 @@ importers:
version: link:../../../../../astro
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/integrations/mdx/test/fixtures/mdx-namespace:
dependencies:
@ -4373,16 +4385,16 @@ importers:
version: 7.22.5
'@preact/preset-vite':
specifier: ^2.7.0
version: 2.7.0(preact@10.19.3)
version: 2.7.0(preact@10.19.2)
'@preact/signals':
specifier: ^1.2.1
version: 1.2.1(preact@10.19.3)
version: 1.2.1(preact@10.19.2)
babel-plugin-transform-hook-names:
specifier: ^1.0.2
version: 1.0.2
preact-render-to-string:
specifier: ^6.3.1
version: 6.3.1(preact@10.19.3)
version: 6.3.1(preact@10.19.2)
devDependencies:
astro:
specifier: workspace:*
@ -4392,7 +4404,7 @@ importers:
version: link:../../../scripts
preact:
specifier: ^10.19.2
version: 10.19.3
version: 10.19.2
packages/integrations/react:
dependencies:
@ -6890,7 +6902,7 @@ packages:
- supports-color
dev: false
/@nanostores/preact@0.5.0(nanostores@0.9.5)(preact@10.19.3):
/@nanostores/preact@0.5.0(nanostores@0.9.5)(preact@10.19.2):
resolution: {integrity: sha512-Zq5DEAY+kIfwJ1NPd43D1mpsbISuiD6N/SuTHrt/8jUoifLwXaReaZMAnvkvbIGOgcB1Hy++A9jZix2taNNYxQ==}
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
peerDependencies:
@ -6898,7 +6910,7 @@ packages:
preact: '>=10.0.0'
dependencies:
nanostores: 0.9.5
preact: 10.19.3
preact: 10.19.2
dev: false
/@nodelib/fs.scandir@2.1.5:
@ -7055,7 +7067,7 @@ packages:
playwright: 1.40.0
dev: true
/@preact/preset-vite@2.7.0(preact@10.19.3):
/@preact/preset-vite@2.7.0(preact@10.19.2):
resolution: {integrity: sha512-m5N0FVtxbCCDxNk55NGhsRpKJChYcupcuQHzMJc/Bll07IKZKn8amwYciyKFS9haU6AgzDAJ/ewvApr6Qg1DHw==}
peerDependencies:
'@babel/core': 7.x
@ -7068,7 +7080,7 @@ packages:
dependencies:
'@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.6)
'@babel/plugin-transform-react-jsx-development': 7.22.5
'@prefresh/vite': 2.4.5(preact@10.19.3)
'@prefresh/vite': 2.4.5(preact@10.19.2)
'@rollup/pluginutils': 4.2.1
babel-plugin-transform-hook-names: 1.0.2
debug: 4.3.4(supports-color@8.1.1)
@ -7083,32 +7095,32 @@ packages:
resolution: {integrity: sha512-dE6f+WCX5ZUDwXzUIWNMhhglmuLpqJhuy3X3xHrhZYI0Hm2LyQwOu0l9mdPiWrVNsE+Q7txOnJPgtIqHCYoBVA==}
dev: false
/@preact/signals@1.2.1(preact@10.19.3):
/@preact/signals@1.2.1(preact@10.19.2):
resolution: {integrity: sha512-hRPvp1C2ooDzOHqfnhdpHgoIFDbYFAXLhoid3+jSItuPPD/J0r/UsiWKv/8ZO/oEhjRaP0M5niuRYsWqmY2GEA==}
peerDependencies:
preact: 10.x
dependencies:
'@preact/signals-core': 1.5.1
preact: 10.19.3
preact: 10.19.2
dev: false
/@prefresh/babel-plugin@0.5.1:
resolution: {integrity: sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==}
dev: false
/@prefresh/core@1.5.2(preact@10.19.3):
/@prefresh/core@1.5.2(preact@10.19.2):
resolution: {integrity: sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==}
peerDependencies:
preact: ^10.0.0
dependencies:
preact: 10.19.3
preact: 10.19.2
dev: false
/@prefresh/utils@1.2.0:
resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==}
dev: false
/@prefresh/vite@2.4.5(preact@10.19.3):
/@prefresh/vite@2.4.5(preact@10.19.2):
resolution: {integrity: sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==}
peerDependencies:
preact: ^10.4.0
@ -7119,10 +7131,10 @@ packages:
dependencies:
'@babel/core': 7.23.6
'@prefresh/babel-plugin': 0.5.1
'@prefresh/core': 1.5.2(preact@10.19.3)
'@prefresh/core': 1.5.2(preact@10.19.2)
'@prefresh/utils': 1.2.0
'@rollup/pluginutils': 4.2.1
preact: 10.19.3
preact: 10.19.2
transitivePeerDependencies:
- supports-color
dev: false
@ -8400,6 +8412,11 @@ packages:
dependencies:
dequal: 2.0.3
/b4a@1.6.4:
resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==}
requiresBuild: true
dev: false
/babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.23.6):
resolution: {integrity: sha512-6w+zs2i14fVanj4e1hXCU5cp+x0U0LJ5jScknpMZZUteHhwFRGJflHMVJ+xAcW7ku41FYjr7DgtK9mnc2SXlJg==}
peerDependencies:
@ -8481,6 +8498,15 @@ packages:
file-uri-to-path: 1.0.0
dev: false
/bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
requiresBuild: true
dependencies:
buffer: 5.7.1
inherits: 2.0.4
readable-stream: 3.6.2
dev: false
/bl@5.1.0:
resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==}
dependencies:
@ -8570,6 +8596,14 @@ packages:
node-releases: 2.0.14
update-browserslist-db: 1.0.13(browserslist@4.22.2)
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
requiresBuild: true
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
dev: false
/buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
dependencies:
@ -8775,6 +8809,11 @@ packages:
optionalDependencies:
fsevents: 2.3.3
/chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
requiresBuild: true
dev: false
/chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
@ -8907,7 +8946,6 @@ packages:
color-name: 1.1.4
simple-swizzle: 0.2.2
dev: false
optional: true
/color-support@1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
@ -8922,7 +8960,6 @@ packages:
color-convert: 2.0.1
color-string: 1.9.1
dev: false
optional: true
/colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@ -9236,6 +9273,14 @@ packages:
dependencies:
character-entities: 2.0.2
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
requiresBuild: true
dependencies:
mimic-response: 3.1.0
dev: false
/dedent-js@1.0.1:
resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==}
dev: false
@ -9246,6 +9291,12 @@ packages:
dependencies:
type-detect: 4.0.8
/deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
requiresBuild: true
dev: false
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
@ -9500,6 +9551,13 @@ packages:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
/end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
requiresBuild: true
dependencies:
once: 1.4.0
dev: false
/enhanced-resolve@5.15.0:
resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
engines: {node: '>=10.13.0'}
@ -9897,6 +9955,12 @@ packages:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
/expand-template@2.0.3:
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
engines: {node: '>=6'}
requiresBuild: true
dev: false
/express@4.18.2:
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
engines: {node: '>= 0.10.0'}
@ -9967,6 +10031,11 @@ packages:
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
dev: true
/fast-fifo@1.3.2:
resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
requiresBuild: true
dev: false
/fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
@ -10125,6 +10194,11 @@ packages:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
/fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
requiresBuild: true
dev: false
/fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
@ -10268,6 +10342,11 @@ packages:
- supports-color
dev: false
/github-from-package@0.0.0:
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
requiresBuild: true
dev: false
/github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
@ -10909,6 +10988,11 @@ packages:
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
/ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
requiresBuild: true
dev: false
/inline-style-parser@0.1.1:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
dev: false
@ -10956,7 +11040,6 @@ packages:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
requiresBuild: true
dev: false
optional: true
/is-bigint@1.0.4:
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
@ -12335,6 +12418,12 @@ packages:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
/mimic-response@3.1.0:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
requiresBuild: true
dev: false
/min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
@ -12410,6 +12499,11 @@ packages:
resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==}
dev: true
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
requiresBuild: true
dev: false
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
@ -12512,6 +12606,11 @@ packages:
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
dev: false
/napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
requiresBuild: true
dev: false
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
@ -12556,6 +12655,19 @@ packages:
tslib: 2.6.2
dev: false
/node-abi@3.51.0:
resolution: {integrity: sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==}
engines: {node: '>=10'}
requiresBuild: true
dependencies:
semver: 7.5.4
dev: false
/node-addon-api@6.1.0:
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
requiresBuild: true
dev: false
/node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
@ -13497,17 +13609,37 @@ packages:
picocolors: 1.0.0
source-map-js: 1.0.2
/preact-render-to-string@6.3.1(preact@10.19.3):
/preact-render-to-string@6.3.1(preact@10.19.2):
resolution: {integrity: sha512-NQ28WrjLtWY6lKDlTxnFpKHZdpjfF+oE6V4tZ0rTrunHrtZp6Dm0oFrcJalt/5PNeqJz4j1DuZDS0Y6rCBoqDA==}
peerDependencies:
preact: '>=10'
dependencies:
preact: 10.19.3
preact: 10.19.2
pretty-format: 3.8.0
dev: false
/preact@10.19.3:
resolution: {integrity: sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==}
/preact@10.19.2:
resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==}
/prebuild-install@7.1.1:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
hasBin: true
requiresBuild: true
dependencies:
detect-libc: 2.0.2
expand-template: 2.0.3
github-from-package: 0.0.0
minimist: 1.2.8
mkdirp-classic: 0.5.3
napi-build-utils: 1.0.2
node-abi: 3.51.0
pump: 3.0.0
rc: 1.2.8
simple-get: 4.0.1
tar-fs: 2.1.1
tunnel-agent: 0.6.0
dev: false
/preferred-pm@3.1.2:
resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==}
@ -13628,6 +13760,14 @@ packages:
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
dev: true
/pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
requiresBuild: true
dependencies:
end-of-stream: 1.4.4
once: 1.4.0
dev: false
/punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
@ -13647,6 +13787,11 @@ packages:
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
/queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
requiresBuild: true
dev: false
/quick-lru@4.0.1:
resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
engines: {node: '>=8'}
@ -13672,6 +13817,17 @@ packages:
unpipe: 1.0.0
dev: true
/rc@1.2.8:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
requiresBuild: true
dependencies:
deep-extend: 0.6.0
ini: 1.3.8
minimist: 1.2.8
strip-json-comments: 2.0.1
dev: false
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
@ -14286,6 +14442,21 @@ packages:
/setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
/sharp@0.32.5:
resolution: {integrity: sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==}
engines: {node: '>=14.15.0'}
requiresBuild: true
dependencies:
color: 4.2.3
detect-libc: 2.0.2
node-addon-api: 6.1.0
prebuild-install: 7.1.1
semver: 7.5.4
simple-get: 4.0.1
tar-fs: 3.0.4
tunnel-agent: 0.6.0
dev: false
/sharp@0.33.1:
resolution: {integrity: sha512-iAYUnOdTqqZDb3QjMneBKINTllCJDZ3em6WaWy7NPECM4aHncvqHRm0v0bN9nqJxMiwamv5KIdauJ6lUzKDpTQ==}
engines: {libvips: '>=8.15.0', node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@ -14394,13 +14565,26 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
/simple-concat@1.0.1:
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
requiresBuild: true
dev: false
/simple-get@4.0.1:
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
requiresBuild: true
dependencies:
decompress-response: 6.0.0
once: 1.4.0
simple-concat: 1.0.1
dev: false
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
requiresBuild: true
dependencies:
is-arrayish: 0.3.2
dev: false
optional: true
/sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
@ -14572,6 +14756,14 @@ packages:
mixme: 0.5.10
dev: true
/streamx@2.15.1:
resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==}
requiresBuild: true
dependencies:
fast-fifo: 1.3.2
queue-tick: 1.0.1
dev: false
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@ -14697,7 +14889,6 @@ packages:
/strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
dev: true
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
@ -14893,6 +15084,46 @@ packages:
engines: {node: '>=6'}
dev: false
/tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
requiresBuild: true
dependencies:
chownr: 1.1.4
mkdirp-classic: 0.5.3
pump: 3.0.0
tar-stream: 2.2.0
dev: false
/tar-fs@3.0.4:
resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
requiresBuild: true
dependencies:
mkdirp-classic: 0.5.3
pump: 3.0.0
tar-stream: 3.1.6
dev: false
/tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
engines: {node: '>=6'}
requiresBuild: true
dependencies:
bl: 4.1.0
end-of-stream: 1.4.4
fs-constants: 1.0.0
inherits: 2.0.4
readable-stream: 3.6.2
dev: false
/tar-stream@3.1.6:
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
requiresBuild: true
dependencies:
b4a: 1.6.4
fast-fifo: 1.3.2
streamx: 2.15.1
dev: false
/tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
@ -15099,6 +15330,13 @@ packages:
yargs: 17.7.2
dev: true
/tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
requiresBuild: true
dependencies:
safe-buffer: 5.2.1
dev: false
/turbo-darwin-64@1.11.2:
resolution: {integrity: sha512-toFmRG/adriZY3hOps7nYCfqHAS+Ci6xqgX3fbo82kkLpC6OBzcXnleSwuPqjHVAaRNhVoB83L5njcE9Qwi2og==}
cpu: [x64]