Commit f93369a
Changed files (15)
src
components
search
widgets
SideToolBar
pages
archives
categories
[category]
src/components/aside/RecentCommentsCard.tsx
@@ -0,0 +1,174 @@
+import { ArtalkProvider } from './recent-comments/Artalk';
+import { TwikooProvider } from './recent-comments/Twikoo';
+import { WalineProvider } from './recent-comments/Waline';
+import type { CommentData } from './recent-comments/types';
+import { asideConfig, commentConfig, siteConfig } from '@/config';
+import { t } from '@utils/i18n';
+import type { Component } from 'solid-js';
+import { For, Show, createSignal, onMount } from 'solid-js';
+
+const cacheKey = 'recent-comments-cache';
+const cacheExpireTime = 30 * 60 * 1000; // 30 min
+
+interface CacheInfo {
+ data: CommentData[];
+ timestamp: number;
+ provider: string;
+}
+
+function getFromCache(): CommentData[] | null {
+ try {
+ const cached = localStorage.getItem(cacheKey);
+ if (!cached) return null;
+
+ const tmp: CacheInfo = JSON.parse(cached);
+
+ const expired = Date.now() - tmp.timestamp > cacheExpireTime;
+ if (expired || tmp.provider !== commentConfig.provider) {
+ localStorage.removeItem(cacheKey);
+ return null;
+ }
+
+ return tmp.data.map((c) => ({ ...c, time: new Date(c.time) }));
+ } catch {
+ localStorage.removeItem(cacheKey);
+ return null;
+ }
+}
+
+function saveToCache(list: CommentData[]): void {
+ try {
+ const cacheObj: CacheInfo = {
+ data: list,
+ timestamp: Date.now(),
+ provider: commentConfig.provider,
+ };
+ localStorage.setItem(cacheKey, JSON.stringify(cacheObj));
+ } catch {
+ /* ignore */
+ }
+}
+
+const RecentComments: Component = () => {
+ const [comments, setComments] = createSignal<CommentData[]>([]);
+ const [loading, setLoading] = createSignal(true);
+
+ const load = async () => {
+ const cached = getFromCache();
+ if (cached) {
+ setComments(cached);
+ setLoading(false);
+ return;
+ }
+
+ const provider = (() => {
+ switch (commentConfig.provider) {
+ case 'twikoo':
+ return TwikooProvider;
+ case 'waline':
+ return WalineProvider;
+ case 'artalk':
+ return ArtalkProvider;
+ default:
+ throw new Error(
+ `Unsupported comment provider: '${commentConfig.provider}' for recent comments`
+ );
+ }
+ })();
+
+ try {
+ const raw = await provider.setup();
+ setComments(raw);
+ saveToCache(raw);
+ } catch (e) {
+ console.error('Failed to load recent comments:', e);
+ setComments([]);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ onMount(load);
+
+ const refresh = () => {
+ localStorage.removeItem(cacheKey);
+ setLoading(true);
+ load();
+ };
+
+ return (
+ <div id="recent-comments-card" class="card border-base-300 bg-base-200 border">
+ <div class="card-body px-4 py-2">
+ <div class="card-title flex justify-between">
+ <span>{t.info.recentComments()}</span>
+ <button
+ class="btn btn-ghost btn-sm btn-square text-base"
+ disabled={loading()}
+ title={t.common.refresh()}
+ aria-label={t.common.refresh()}
+ onClick={refresh}
+ >
+ ↻
+ </button>
+ </div>
+
+ <ul class="list">
+ <Show when={loading()}>
+ <For each={Array.from({ length: asideConfig.recentComment.count })}>
+ {(_, _idx) => (
+ <li class="list-row comment-placeholder px-0">
+ <div class="avatar">
+ <div class="skeleton w-16 min-w-16 rounded-md" />
+ </div>
+ <div class="flex w-full flex-col justify-between">
+ <div class="flex flex-col gap-2">
+ <div class="skeleton h-4 w-full" />
+ <div class="skeleton h-4 w-[100%-2rem]" />
+ </div>
+ <div class="skeleton h-4 w-10" />
+ </div>
+ </li>
+ )}
+ </For>
+ </Show>
+
+ <Show when={!loading()}>
+ <For each={comments()}>
+ {(item) => (
+ <li class="list-row px-0">
+ <a class="avatar" href={item.commentUrl}>
+ <div class="w-16 min-w-16 rounded-md">
+ <img src={item.avatarUrl} alt={item.author} />
+ </div>
+ </a>
+
+ <div class="flex w-full flex-col justify-between">
+ <a
+ href={item.commentUrl}
+ class="hover:text-primary line-clamp-2 w-full overflow-clip"
+ innerHTML={item.commentContent}
+ />
+ <time
+ datetime={item.time.toISOString()}
+ class="text-base-content/60 text-xs"
+ textContent={item.time.toLocaleDateString(
+ siteConfig.lang.replace('_', '-'),
+ {
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ }
+ )}
+ />
+ </div>
+ </li>
+ )}
+ </For>
+ </Show>
+ </ul>
+ </div>
+ </div>
+ );
+};
+
+export default RecentComments;
src/components/aside/RecentCommentsCard.vue
@@ -1,175 +0,0 @@
-<script setup lang="ts">
-import { ArtalkProvider } from './recent-comments/Artalk';
-import { TwikooProvider } from './recent-comments/Twikoo';
-import { WalineProvider } from './recent-comments/Waline';
-import type { CommentData } from './recent-comments/types';
-import { asideConfig, commentConfig, siteConfig } from '@/config';
-import { t } from '@utils/i18n';
-import { onMounted, ref } from 'vue';
-
-const comments = ref<CommentData[]>([]);
-const loading = ref(true);
-
-const cacheKey = 'recent-comments-cache';
-const cacheExpireTime = 30 * 60 * 1000; // 30 min
-
-interface CacheData {
- data: CommentData[];
- timestamp: number;
- provider: string;
-}
-
-function getFromCache(): CommentData[] | null {
- try {
- const cached = localStorage.getItem(cacheKey);
- if (!cached) return null;
-
- const cacheData: CacheData = JSON.parse(cached);
-
- // 检查缓存是否过期
- const isExpired = Date.now() - cacheData.timestamp > cacheExpireTime;
- if (isExpired) {
- localStorage.removeItem(cacheKey);
- return null;
- }
-
- // 检查评论系统是否变更
- if (cacheData.provider !== commentConfig.provider) {
- localStorage.removeItem(cacheKey);
- return null;
- }
-
- // 恢复 Date 对象(JSON 序列化会将 Date 转为字符串)
- return cacheData.data.map((comment) => ({
- ...comment,
- time: new Date(comment.time),
- }));
- } catch (error) {
- console.warn('Failed to read from cache:', error);
- localStorage.removeItem(cacheKey);
- return null;
- }
-}
-
-function saveToCache(data: CommentData[]): void {
- try {
- const cacheData: CacheData = {
- data,
- timestamp: Date.now(),
- provider: commentConfig.provider,
- };
- localStorage.setItem(cacheKey, JSON.stringify(cacheData));
- } catch (error) {
- console.warn('Failed to save to cache:', error);
- }
-}
-
-async function loadComments() {
- const cachedComments = getFromCache();
- if (cachedComments) {
- comments.value = cachedComments;
- loading.value = false;
- return;
- }
-
- const provider = (() => {
- switch (commentConfig.provider) {
- case 'twikoo':
- return TwikooProvider;
- case 'waline':
- return WalineProvider;
- case 'artalk':
- return ArtalkProvider;
- default:
- throw new Error(
- `Unsupported comment provider: '${commentConfig.provider}' for recent comments`
- );
- }
- })();
-
- try {
- const data = await provider.setup();
- comments.value = data;
- saveToCache(data);
- } catch (error) {
- console.error('Failed to load recent comments:', error);
- comments.value = [];
- } finally {
- loading.value = false;
- }
-}
-
-function refreshComments() {
- localStorage.removeItem(cacheKey);
- loading.value = true;
- loadComments();
-}
-
-onMounted(() => {
- loadComments();
-});
-</script>
-
-<template>
- <div id="recent-comments-card" class="card border-base-300 bg-base-200 border">
- <div class="card-body px-4 py-2">
- <div class="card-title flex justify-between">
- <span>{{ t.info.recentComments() }}</span>
- <button
- @click="refreshComments"
- class="btn btn-ghost btn-sm btn-square text-base"
- :disabled="loading"
- :title="t.common.refresh()"
- :aria-label="t.common.refresh()"
- >
- ↻
- </button>
- </div>
- <ul class="list">
- <template v-if="!loading">
- <li v-for="comment in comments" :key="comment.commentUrl" class="list-row px-0">
- <a class="avatar" :href="comment.commentUrl">
- <div class="w-16 min-w-16 rounded-md">
- <img :src="comment.avatarUrl" :alt="comment.author" />
- </div>
- </a>
- <div class="flex w-full flex-col justify-between">
- <a
- :href="comment.commentUrl"
- class="hover:text-primary line-clamp-2 w-full overflow-clip"
- v-html="comment.commentContent"
- ></a>
- <time :datetime="comment.time.toISOString()" class="text-base-content/60 text-xs">
- {{
- comment.time.toLocaleDateString(siteConfig.lang.replace('_', '-'), {
- year: 'numeric',
- month: '2-digit',
- day: '2-digit',
- })
- }}
- </time>
- </div>
- </li>
- </template>
- <template v-else>
- <li
- v-for="n in asideConfig.recentComment.count"
- :key="n"
- class="list-row comment-placeholder px-0"
- >
- <div class="avatar">
- <div class="skeleton w-16 min-w-16 rounded-md" />
- </div>
- <div class="flex w-full flex-col justify-between">
- <div class="flex flex-col gap-2">
- <div class="skeleton h-4 w-full" />
- <div class="skeleton h-4 w-[100%-2rem]" />
- </div>
- <div class="skeleton h-4 w-10" />
- </div>
- </li>
- </template>
- </ul>
- </div>
- </div>
-</template>
src/components/search/Pagefind.tsx
@@ -0,0 +1,162 @@
+import type {
+ PagefindSearchResult,
+ PagefindSearchResults,
+} from '@/types/PagefindSearchAPI.d.ts';
+import { t } from '@utils/i18n';
+import { type JSX, type ParentComponent, createSignal, onMount } from 'solid-js';
+import IMaterialSymboChevronRight from '~icons/material-symbols/chevron-right';
+import IMaterialSymbolSearchRounded from '~icons/material-symbols/search-rounded';
+
+type Props = {
+ inputId: string;
+ icon?: JSX.Element;
+};
+
+const bundlePath = `${import.meta.env.BASE_URL}pagefind`;
+const baseUrl = import.meta.env.BASE_URL;
+interface PagefindInstance {
+ init(): Promise<void>;
+ options(opts: { baseUrl: string; basePath: string }): Promise<void>;
+ debouncedSearch(text: string, delay: number): Promise<PagefindSearchResults> | null;
+}
+
+const [isLoading, setIsLoading] = createSignal(false);
+const [searchResults, setSearchResults] = createSignal<
+ { url: string; title: string; excerpt: string }[]
+>([]);
+const [noResults, setNoResults] = createSignal(false);
+let pagefind: PagefindInstance | null = null;
+let searchSequence = 0;
+
+async function search(text: string) {
+ const currentSequence = ++searchSequence;
+ if (!text) {
+ setIsLoading(false);
+ setSearchResults([]);
+ setNoResults(false);
+ return;
+ }
+ if (!pagefind) {
+ setIsLoading(true);
+ return;
+ }
+ setIsLoading(true);
+ try {
+ const searchResponse = await pagefind?.debouncedSearch(text, 300);
+ if (currentSequence !== searchSequence) return;
+ if (!searchResponse) {
+ setIsLoading(false);
+ return;
+ }
+ const { results } = searchResponse;
+ if (results.length === 0) {
+ setSearchResults([]);
+ setNoResults(true);
+ setIsLoading(false);
+ return;
+ }
+ setNoResults(false);
+ const processed = await Promise.all(
+ results.map(async (r: PagefindSearchResult) => {
+ const data = await r.data();
+ return { url: data.url, title: data.meta.title, excerpt: data.excerpt };
+ })
+ );
+ if (currentSequence === searchSequence) {
+ setSearchResults(processed);
+ setIsLoading(false);
+ }
+ } catch (error) {
+ console.error('Search error:', error);
+ if (currentSequence === searchSequence) {
+ setIsLoading(false);
+ setNoResults(true);
+ setSearchResults([]);
+ }
+ }
+}
+function setupSearch(inputId: string) {
+ const searchInput = document.getElementById(inputId) as HTMLInputElement | null;
+ if (!searchInput) {
+ console.error(`Pagefind: Input element with id "${inputId}" not found`);
+ return;
+ }
+ searchInput.addEventListener('input', (e) => {
+ const value = (e.target as HTMLInputElement).value.trim();
+ search(value);
+ });
+}
+
+const PagefindSearch: ParentComponent<Props> = (props) => {
+ onMount(async () => {
+ if (!pagefind) {
+ pagefind = await import(/* @vite-ignore */ `${bundlePath}/pagefind.js`);
+ if (!pagefind) {
+ console.error('Pagefind: Failed to load pagefind.js');
+ return;
+ }
+ await pagefind.options({ baseUrl, basePath: bundlePath });
+ await pagefind.init();
+ }
+ setupSearch(props.inputId);
+
+ document.addEventListener('astro:page-load', () => setupSearch(props.inputId));
+ });
+ return (
+ <div class="w-full" data-pagefind-ui>
+ <label class="input input-bordered flex w-full items-center gap-2">
+ <input
+ id="search-input"
+ type="search"
+ spellcheck="false"
+ autocorrect="off"
+ autocomplete="off"
+ autocapitalize="off"
+ class="grow"
+ placeholder={t.button.search()}
+ />
+ <IMaterialSymbolSearchRounded height="1.875rem" width="1.875rem" />
+ </label>
+ <div
+ class="search-result mt-4 flex h-fit max-h-[calc(60vh-8rem)] flex-col items-center gap-2 overflow-y-auto text-center"
+ aria-label={t.search.searchResults()}
+ tabindex="-1"
+ >
+ {isLoading()
+ ? Array.from({ length: 2 }).map((_, _i) => (
+ <div class="w-full rounded-md p-2">
+ <div class="flex flex-row items-center gap-1">
+ <span class="skeleton h-6 w-48"></span>
+ </div>
+ <div class="skeleton mt-2 h-4 w-full"></div>
+ <div class="skeleton mt-1 h-4 w-3/4"></div>
+ </div>
+ ))
+ : noResults()
+ ? t.search.noSearchResults()
+ : searchResults().map((result) => (
+ <a
+ href={result.url}
+ class="group hover:bg-primary/30 w-full rounded-md p-2 duration-150"
+ >
+ <div class="flex flex-row items-center gap-1 text-center">
+ <span class="group-hover:text-primary text-lg duration-150">
+ {result.title}
+ </span>
+ <IMaterialSymboChevronRight height="1.25rem" width="1.25rem" />
+ </div>
+ <div
+ class="text-sm opacity-60"
+ innerHTML={result.excerpt.replaceAll(
+ '<mark>',
+ '<mark class="text-primary-content bg-primary/70">'
+ )}
+ />
+ </a>
+ ))}
+ </div>
+ </div>
+ );
+};
+
+export default PagefindSearch;
src/components/search/Pagefind.vue
@@ -1,175 +0,0 @@
-<script setup lang="ts">
-import type {
- PagefindSearchResult,
- PagefindSearchResults,
-} from '@/types/PagefindSearchAPI.d.ts';
-import { t } from '@utils/i18n';
-import { type Ref, onMounted, ref } from 'vue';
-
-const isLoading = ref(false);
-
-const props = defineProps({
- inputId: {
- type: String,
- required: true,
- },
-});
-
-const bundlePath = `${import.meta.env.BASE_URL}pagefind/`;
-const baseUrl = import.meta.env.BASE_URL;
-
-const searchResults: Ref<{ url: string; title: string; excerpt: string }[]> = ref([]);
-const noResults = ref(false);
-let pagefind: null | {
- init: () => Promise<void>;
- options: (options: { baseUrl: string; basePath: string }) => Promise<void>;
- debouncedSearch: (text: string, delay: number) => Promise<PagefindSearchResults> | null;
-} = null;
-
-let searchSequence = 0;
-
-const search = async (text: string) => {
- const currentSequence = ++searchSequence;
-
- if (!text) {
- isLoading.value = false;
- searchResults.value = [];
- noResults.value = false;
- return;
- }
-
- if (!pagefind) {
- isLoading.value = true;
- return;
- }
-
- isLoading.value = true;
-
- try {
- const searchResponse = await pagefind.debouncedSearch(text, 300);
-
- if (currentSequence !== searchSequence) {
- return;
- }
-
- if (!searchResponse) {
- isLoading.value = false;
- return;
- }
-
- const results = searchResponse.results;
- if (results.length === 0) {
- searchResults.value = [];
- noResults.value = true;
- isLoading.value = false;
- return;
- }
-
- noResults.value = false;
- const processedResults = await Promise.all(
- results.map(async (result: PagefindSearchResult) => {
- const data = await result.data();
- return {
- url: data.url,
- title: data.meta.title,
- excerpt: data.excerpt,
- };
- })
- );
-
- if (currentSequence === searchSequence) {
- searchResults.value = processedResults;
- isLoading.value = false;
- }
- } catch (error) {
- if (currentSequence === searchSequence) {
- console.error('Search error:', error);
- isLoading.value = false;
- noResults.value = true;
- searchResults.value = [];
- }
- }
-};
-
-const setupSearch = () => {
- const searchInput = document.getElementById(props.inputId);
- if (!searchInput) {
- console.error(`Pagefind: Input element with id "${props.inputId}" not found`);
- return;
- }
-
- searchInput.addEventListener('input', (event: Event) => {
- const target = event.target as HTMLInputElement;
- const value = target.value.trim();
- search(value);
- });
-};
-
-const setup = async () => {
- pagefind = await import(/* @vite-ignore */ `${bundlePath}pagefind.js`);
- if (!pagefind) {
- console.error('Pagefind: Failed to load pagefind.js');
- return;
- }
- await pagefind.options({
- baseUrl: baseUrl,
- basePath: bundlePath,
- });
- pagefind.init();
- setupSearch();
-};
-
-onMounted(() => {
- setup();
- document.addEventListener('astro:page-load', setup);
-});
-
-defineExpose({
- searchResults,
- noResults,
-});
-</script>
-
-<template>
- <div class="w-full" data-pagefind-ui>
- <slot></slot>
- <div
- class="search-result mt-4 flex h-fit max-h-[calc(60vh-8rem)] flex-col items-center gap-2 overflow-y-auto text-center"
- :aria-label="t.search.searchResults()"
- tabindex="-1"
- >
- <template v-if="isLoading">
- <div v-for="i in 2" :key="i" class="w-full rounded-md p-2">
- <div class="flex flex-row items-center gap-1">
- <span class="skeleton h-6 w-48"></span>
- </div>
- <div class="skeleton mt-2 h-4 w-full"></div>
- <div class="skeleton mt-1 h-4 w-3/4"></div>
- </div>
- </template>
- <template v-else-if="noResults">{{ t.search.noSearchResults() }}</template>
- <template v-else>
- <a
- v-for="result in searchResults"
- :key="result.url"
- :href="result.url"
- class="group hover:bg-primary/30 w-full rounded-md p-2 duration-150"
- >
- <div class="flex flex-row items-center gap-1 text-center">
- <span class="group-hover:text-primary text-lg duration-150"
- >{{ result.title }}<slot name="icon"></slot
- ></span>
- </div>
- <div class="text-sm opacity-60" v-html="result.excerpt"></div>
- </a>
- </template>
- </div>
- </div>
-</template>
-
-<style>
-[data-pagefind-ui] mark {
- background-color: transparent;
- color: var(--color-secondary);
-}
-</style>
src/components/widgets/SideToolBar/TocButton.tsx
@@ -0,0 +1,97 @@
+import { t } from '@utils/i18n';
+import type { ParentComponent } from 'solid-js';
+import { createSignal, onCleanup, onMount } from 'solid-js';
+
+const TocButton: ParentComponent = (props) => {
+ const [isOpen, setIsOpen] = createSignal(false);
+ const [isWideScreen, setIsWideScreen] = createSignal(false);
+ const [hasToc, setHasToc] = createSignal(false);
+ let tocWrapperRef: HTMLDivElement | undefined;
+ let buttonRef: HTMLButtonElement | undefined;
+
+ const handleResize = () => {
+ setIsWideScreen(window.innerWidth > 1280);
+ };
+
+ const setup = () => {
+ const toc = document.getElementById('toc');
+ const wrapper = tocWrapperRef;
+ if (toc && wrapper) {
+ wrapper.innerHTML = '';
+ wrapper.appendChild(toc.cloneNode(true));
+ (wrapper.children[0] as HTMLElement).id = 'stb-toc-content';
+
+ const remainAttrs = ['class', 'style'];
+ Array.from((wrapper.children[0] as Element).attributes).forEach((attr) => {
+ if (!remainAttrs.includes(attr.name)) {
+ (wrapper.children[0] as Element).removeAttribute(attr.name);
+ }
+ });
+
+ setHasToc(true);
+ } else {
+ setHasToc(false);
+ }
+
+ window.addEventListener('resize', handleResize);
+ handleResize(); // 初始一次
+ };
+
+ const cleanup = () => {
+ setIsOpen(false);
+ setHasToc(false);
+ tocWrapperRef!.innerHTML = '';
+ window.removeEventListener('resize', handleResize);
+ setIsWideScreen(false);
+ };
+
+ onMount(() => {
+ document.addEventListener('astro:page-load', setup);
+ setup();
+ document.addEventListener('astro:before-swap', cleanup);
+
+ onCleanup(() => {
+ document.removeEventListener('astro:page-load', setup);
+ document.removeEventListener('astro:before-swap', cleanup);
+ cleanup();
+ setIsOpen(false);
+ tocWrapperRef!.innerHTML = '';
+ });
+ });
+
+ return (
+ <div
+ classList={{
+ hidden: !hasToc() || isWideScreen(),
+ }}
+ >
+ <button
+ ref={buttonRef}
+ type="button"
+ class="btn btn-circle btn-secondary btn-sm"
+ title={t.info.toc()}
+ aria-label={t.info.toc()}
+ aria-expanded={isOpen()}
+ aria-controls="stb-toc-wrapper"
+ onClick={() => setIsOpen((v) => !v)}
+ >
+ {props.children}
+ </button>
+
+ <div
+ ref={tocWrapperRef}
+ id="stb-toc-wrapper"
+ classList={{
+ 'rounded-box absolute w-[calc(100vw-4rem)] -translate-x-1/2 -translate-y-1/2 max-w-72 backdrop-blur-md duration-300 text-base-content text-start': true,
+ 'scale-0 opacity-0': !isOpen() || isWideScreen(), // closed
+ '-translate-x-[calc(100%+0.5rem)]! -translate-y-[calc(100%-2.5rem)]!':
+ isOpen() && !isWideScreen(),
+ hidden: !hasToc() || isWideScreen(),
+ }}
+ inert={!isOpen() || isWideScreen()}
+ />
+ </div>
+ );
+};
+
+export default TocButton;
src/components/widgets/SideToolBar/TocButton.vue
@@ -1,86 +0,0 @@
-<script setup lang="ts">
-import { t } from '@utils/i18n';
-import { onMounted, onUnmounted, ref } from 'vue';
-
-const isOpen = ref(false);
-const isWideScreen = ref(false);
-const hasToc = ref(false);
-const tocWrapper = ref<HTMLElement | null>(null);
-
-const handleResize = () => {
- if (window.innerWidth > 1280) {
- isWideScreen.value = true;
- } else {
- isWideScreen.value = false;
- }
-};
-
-onMounted(() => {
- const setup = () => {
- const toc = document.getElementById('toc');
- if (toc && tocWrapper.value) {
- hasToc.value = true;
- const remainAttrs = ['class', 'style'];
- tocWrapper.value.innerHTML = '';
- tocWrapper.value.appendChild(toc.cloneNode(true));
- tocWrapper.value.children[0].id = 'stb-toc-content';
- Array.from(tocWrapper.value.children[0].attributes).forEach((attr) => {
- if (!remainAttrs.includes(attr.name)) {
- tocWrapper.value!.children[0].removeAttribute(attr.name);
- }
- });
- }
- window.addEventListener('resize', handleResize);
- handleResize();
- };
- const cleanup = () => {
- isOpen.value = false;
- if (tocWrapper.value) tocWrapper.value.innerHTML = '';
- hasToc.value = false;
- window.removeEventListener('resize', handleResize);
- isWideScreen.value = false;
- };
-
- document.addEventListener('astro:page-load', setup);
- setup();
- document.addEventListener('astro:before-swap', cleanup);
-});
-
-onUnmounted(() => {
- if (tocWrapper.value) tocWrapper.value.innerHTML = '';
- hasToc.value = false;
- window.removeEventListener('resize', handleResize);
- isWideScreen.value = false;
-});
-</script>
-
-<template>
- <div
- :class="{
- hidden: !hasToc || isWideScreen,
- }"
- >
- <button
- ref="buttonRef"
- class="btn btn-circle btn-secondary btn-sm"
- @click="isOpen = !isOpen"
- :title="t.info.toc()"
- :aria-label="t.info.toc()"
- :aria-expanded="isOpen"
- :aria-controls="'stb-toc-wrapper'"
- >
- <slot name="icon" />
- </button>
- <div
- ref="tocWrapper"
- id="stb-toc-wrapper"
- class="rounded-box absolute w-[calc(100vw-4rem)] -translate-x-1/2 -translate-y-1/2 max-w-72 backdrop-blur-md duration-300 text-base-content text-start"
- :inert="!isOpen || isWideScreen"
- :class="{
- '-translate-x-[calc(100%+0.5rem)]! -translate-y-[calc(100%-2.5rem)]!':
- isOpen && !isWideScreen,
- 'scale-0 opacity-0': !isOpen || isWideScreen,
- }"
- />
- </div>
-</template>
src/components/Search.astro
@@ -1,8 +1,7 @@
---
import { searchConfig } from '@/config';
import { t } from '@utils/i18n';
-import { Icon } from 'astro-icon/components';
-import Pagefind from './search/Pagefind.vue';
+import Pagefind from './search/Pagefind.tsx';
---
<dialog id="search_modal" class="modal">
@@ -19,34 +18,7 @@ import Pagefind from './search/Pagefind.vue';
(() => {
switch (searchConfig.provider) {
case 'pagefind':
- return (
- <Pagefind client:visible inputId="search-input">
- <label class="input input-bordered flex w-full items-center gap-2">
- <input
- id="search-input"
- type="search"
- spellcheck="false"
- autocorrect="off"
- autocomplete="off"
- autocapitalize="off"
- class="grow"
- placeholder={t.button.search()}
- />
- <Icon
- name="material-symbols:search-rounded"
- height="1.875rem"
- width="1.875rem"
- />
- </label>
- <Icon
- slot="icon"
- name="material-symbols:chevron-right"
- class="text-primary inline-block"
- height="1.125rem"
- width="1.125rem"
- />
- </Pagefind>
- );
+ return <Pagefind client:visible inputId="search-input" />;
}
})()
}
src/components/SideToolBar.astro
@@ -4,7 +4,7 @@ import { t } from '@utils/i18n';
import { Icon } from 'astro-icon/components';
import Button from './widgets/Button.astro';
import DarkModeButton from './widgets/DarkModeButton.astro';
-import TocButton from './widgets/SideToolBar/TocButton.vue';
+import TocButton from './widgets/SideToolBar/TocButton.tsx';
---
<div
@@ -80,7 +80,7 @@ import TocButton from './widgets/SideToolBar/TocButton.vue';
{
articleConfig.toc && (
<TocButton client:media="(width <= 80rem)">
- <Icon name="material-symbols:toc-rounded" slot="icon" />
+ <Icon name="material-symbols:toc-rounded" />
</TocButton>
)
}
src/pages/archives/categories/[category]/[page].astro
@@ -1,7 +1,7 @@
---
import { asideConfig, commentConfig, siteConfig } from '@/config';
import ProfileCard from '@components/aside/ProfileCard.astro';
-import RecentCommentsCard from '@components/aside/RecentCommentsCard.vue';
+import RecentCommentsCard from '@components/aside/RecentCommentsCard.tsx';
import SiteInfoCard from '@components/aside/SiteInfoCard.astro';
import CategoryBar from '@components/misc/CategoryBar.astro';
import PostsPage from '@components/PostsPage.astro';
src/pages/[...page].astro
@@ -1,7 +1,7 @@
---
import { asideConfig, commentConfig, siteConfig } from '@/config';
import ProfileCard from '@components/aside/ProfileCard.astro';
-import RecentCommentsCard from '@components/aside/RecentCommentsCard.vue';
+import RecentCommentsCard from '@components/aside/RecentCommentsCard.tsx';
import SiteInfoCard from '@components/aside/SiteInfoCard.astro';
import CategoryBar from '@components/misc/CategoryBar.astro';
import PostsPage from '@components/PostsPage.astro';
src/env.d.ts
@@ -4,3 +4,4 @@
/// <reference types="vite-plugin-pwa/client" />
/// <reference types="vite-plugin-pwa/info" />
/// <reference types="vite-plugin-pwa/pwa-assets" />
+/// <reference types="unplugin-icons/types/solid" />
astro.config.mjs
@@ -14,7 +14,7 @@ import { remarkReadingTime } from './src/plugins/remark-reading-time.ts';
import { rehypeHeadingIds } from '@astrojs/markdown-remark';
import mdx from '@astrojs/mdx';
import sitemap from '@astrojs/sitemap';
-import vue from '@astrojs/vue';
+import solidJs from '@astrojs/solid-js';
import { pluginLineNumbers } from '@expressive-code/plugin-line-numbers';
import tailwindcss from '@tailwindcss/vite';
import AstroPWA from '@vite-pwa/astro';
@@ -28,6 +28,7 @@ import rehypeMathJaxCHtml from 'rehype-mathjax/chtml';
import remarkDirective from 'remark-directive';
import remarkDirectiveRehype from 'remark-directive-rehype';
import remarkMath from 'remark-math';
+import Icons from 'unplugin-icons/vite';
// https://astro.build/config
export default defineConfig({
@@ -70,7 +71,7 @@ export default defineConfig({
},
}),
mdx(),
- vue(),
+ solidJs({ devtools: true }),
],
markdown: {
remarkPlugins: [
@@ -114,7 +115,7 @@ export default defineConfig({
],
},
vite: {
- plugins: [tailwindcss()],
+ plugins: [tailwindcss(), Icons({ compiler: 'solid' })],
build: {
rollupOptions: {
external: ['workbox-window'],
package.json
@@ -18,7 +18,7 @@
"@astrojs/mdx": "^4.3.4",
"@astrojs/rss": "^4.0.12",
"@astrojs/sitemap": "^3.5.1",
- "@astrojs/vue": "^5.1.0",
+ "@astrojs/solid-js": "^5.1.0",
"@expressive-code/core": "^0.41.3",
"@expressive-code/plugin-line-numbers": "^0.41.3",
"@iconify-json/material-symbols": "^1.2.33",
@@ -63,12 +63,13 @@
"sanitize-html": "^2.17.0",
"sharp": "^0.33.5",
"shiki": "^3.12.1",
+ "solid-js": "^1.9.9",
"swup": "^4.8.2",
"tailwindcss": "^4.1.12",
"typescript": "^5.9.2",
"unist-util-visit": "^5.0.0",
- "vite-plugin-pwa": "^1.0.3",
- "vue": "^3.5.21"
+ "unplugin-icons": "^22.2.0",
+ "vite-plugin-pwa": "^1.0.3"
},
"devDependencies": {
"@astrojs/check": "^0.9.4",
pnpm-lock.yaml
@@ -23,9 +23,9 @@ importers:
'@astrojs/sitemap':
specifier: ^3.5.1
version: 3.5.1
- '@astrojs/vue':
+ '@astrojs/solid-js':
specifier: ^5.1.0
- version: 5.1.0(@types/node@22.18.0)(astro@5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)
+ version: 5.1.0(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(solid-js@1.9.9)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
'@expressive-code/core':
specifier: ^0.41.3
version: 0.41.3
@@ -58,7 +58,7 @@ importers:
version: 2.3.1(swup@4.8.2)
'@swup/parallel-plugin':
specifier: ^0.4.0
- version: 0.4.0(swup@4.8.2)
+ version: 0.4.0(@types/babel__core@7.20.5)(swup@4.8.2)
'@swup/preload-plugin':
specifier: ^3.2.11
version: 3.2.11(swup@4.8.2)
@@ -79,7 +79,7 @@ importers:
version: 1.0.0
'@vite-pwa/astro':
specifier: ^1.1.0
- version: 1.1.0(@vite-pwa/assets-generator@1.0.0)(astro@5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))(vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0))
+ version: 1.1.0(@vite-pwa/assets-generator@1.0.0)(astro@5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))(vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))
astro:
specifier: ^5.13.5
version: 5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)
@@ -158,6 +158,9 @@ importers:
shiki:
specifier: ^3.12.1
version: 3.12.1
+ solid-js:
+ specifier: ^1.9.9
+ version: 1.9.9
swup:
specifier: ^4.8.2
version: 4.8.2
@@ -170,12 +173,12 @@ importers:
unist-util-visit:
specifier: ^5.0.0
version: 5.0.0
+ unplugin-icons:
+ specifier: ^22.2.0
+ version: 22.2.0(@vue/compiler-sfc@3.5.21)
vite-plugin-pwa:
specifier: ^1.0.3
- version: 1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
- vue:
- specifier: ^3.5.21
- version: 3.5.21(typescript@5.9.2)
+ version: 1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
devDependencies:
'@astrojs/check':
specifier: ^0.9.4
@@ -299,9 +302,6 @@ packages:
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
- '@antfu/utils@0.7.10':
- resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
-
'@antfu/utils@8.1.1':
resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
@@ -360,6 +360,16 @@ packages:
'@astrojs/sitemap@3.5.1':
resolution: {integrity: sha512-uX5z52GLtQTgOe8r3jeGmFRYrFe52mdpLYJzqjvL1cdy5Kg3MLOZEvaZ/OCH0fSq0t7e50uJQ6oBMZG0ffszBg==}
+ '@astrojs/solid-js@5.1.0':
+ resolution: {integrity: sha512-VmPHOU9k7m6HHCT2Y1mNzifilUnttlowBM36frGcfj5wERJE9Ci0QtWJbzdf6AlcoIirb7xVw+ByupU011Di9w==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+ peerDependencies:
+ solid-devtools: ^0.30.1
+ solid-js: ^1.8.5
+ peerDependenciesMeta:
+ solid-devtools:
+ optional: true
+
'@astrojs/telemetry@3.3.0':
resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
@@ -367,13 +377,6 @@ packages:
'@astrojs/ts-plugin@1.10.4':
resolution: {integrity: sha512-rapryQINgv5VLZF884R/wmgX3mM9eH1PC/I3kkPV9rP6lEWrRN1YClF3bGcDHFrf8EtTLc0Wqxne1Uetpevozg==}
- '@astrojs/vue@5.1.0':
- resolution: {integrity: sha512-iBEprrO32D2gluauSohmewONb60kdHr1QSxhONHJEWBPunXaie9/equ0kLpRH8lfqqYp8WYKdLGoD84ESpXU3Q==}
- engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
- peerDependencies:
- astro: ^5.0.0
- vue: ^3.2.30
-
'@astrojs/yaml2ts@0.2.2':
resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==}
@@ -426,6 +429,10 @@ packages:
resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.18.6':
+ resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-imports@7.27.1':
resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
engines: {node: '>=6.9.0'}
@@ -521,24 +528,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-proposal-decorators@7.28.0':
- resolution: {integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-decorators@7.27.1':
- resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-syntax-flow@7.27.1':
resolution: {integrity: sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==}
engines: {node: '>=6.9.0'}
@@ -568,12 +563,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-typescript@7.27.1':
- resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-syntax-unicode-sets-regex@7.18.6':
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
@@ -892,12 +881,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-typescript@7.28.0':
- resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/plugin-transform-unicode-escapes@7.27.1':
resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==}
engines: {node: '>=6.9.0'}
@@ -1044,252 +1027,126 @@ packages:
'@emnapi/runtime@1.5.0':
resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
- '@esbuild/aix-ppc64@0.25.4':
- resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
'@esbuild/aix-ppc64@0.25.9':
resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.25.4':
- resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
'@esbuild/android-arm64@0.25.9':
resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.25.4':
- resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
'@esbuild/android-arm@0.25.9':
resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.25.4':
- resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
'@esbuild/android-x64@0.25.9':
resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.25.4':
- resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
'@esbuild/darwin-arm64@0.25.9':
resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.4':
- resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
'@esbuild/darwin-x64@0.25.9':
resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.25.4':
- resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
'@esbuild/freebsd-arm64@0.25.9':
resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.4':
- resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
'@esbuild/freebsd-x64@0.25.9':
resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.25.4':
- resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
'@esbuild/linux-arm64@0.25.9':
resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.25.4':
- resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
'@esbuild/linux-arm@0.25.9':
resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.25.4':
- resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
'@esbuild/linux-ia32@0.25.9':
resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.25.4':
- resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
'@esbuild/linux-loong64@0.25.9':
resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.25.4':
- resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
'@esbuild/linux-mips64el@0.25.9':
resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.25.4':
- resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
'@esbuild/linux-ppc64@0.25.9':
resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.4':
- resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
'@esbuild/linux-riscv64@0.25.9':
resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.25.4':
- resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
'@esbuild/linux-s390x@0.25.9':
resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.25.4':
- resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
'@esbuild/linux-x64@0.25.9':
resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.4':
- resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
'@esbuild/netbsd-arm64@0.25.9':
resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.4':
- resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
'@esbuild/netbsd-x64@0.25.9':
resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.4':
- resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
'@esbuild/openbsd-arm64@0.25.9':
resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.4':
- resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
'@esbuild/openbsd-x64@0.25.9':
resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
engines: {node: '>=18'}
@@ -1302,48 +1159,24 @@ packages:
cpu: [arm64]
os: [openharmony]
- '@esbuild/sunos-x64@0.25.4':
- resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
'@esbuild/sunos-x64@0.25.9':
resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.25.4':
- resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
'@esbuild/win32-arm64@0.25.9':
resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.25.4':
- resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
'@esbuild/win32-ia32@0.25.9':
resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.25.4':
- resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
'@esbuild/win32-x64@0.25.9':
resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
engines: {node: '>=18'}
@@ -1834,9 +1667,6 @@ packages:
'@quansync/fs@0.1.5':
resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==}
- '@rolldown/pluginutils@1.0.0-beta.34':
- resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==}
-
'@rollup/plugin-alias@3.1.9':
resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==}
engines: {node: '>=8.0.0'}
@@ -2029,9 +1859,6 @@ packages:
cpu: [x64]
os: [win32]
- '@sec-ant/readable-stream@0.4.1':
- resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
-
'@shikijs/core@3.12.1':
resolution: {integrity: sha512-j9+UDQ6M50xvaSR/e9lg212H0Fqxy3lYd39Q6YITYQxfrb5VYNUKPLZp4PN9f+YmRcdpyNAm3obn/tIZ2WkUWg==}
@@ -2056,10 +1883,6 @@ packages:
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
- '@sindresorhus/merge-streams@4.0.0':
- resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
- engines: {node: '>=18'}
-
'@surma/rollup-plugin-off-main-thread@2.2.3':
resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==}
@@ -2223,6 +2046,18 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+
'@types/css-tree@2.3.10':
resolution: {integrity: sha512-WcaBazJ84RxABvRttQjjFWgTcHvZR9jGr0Y3hccPkHjFyk/a3N8EuxjKr+QfrwjoM5b1yI1Uj1i7EzOAAwBwag==}
@@ -2405,20 +2240,6 @@ packages:
'@vite-pwa/assets-generator':
optional: true
- '@vitejs/plugin-vue-jsx@4.2.0':
- resolution: {integrity: sha512-DSTrmrdLp+0LDNF77fqrKfx7X0ErRbOcUAgJL/HbSesqQwoUvUQ4uYQqaex+rovqgGcoPqVk+AwUh3v9CuiYIw==}
- engines: {node: ^18.0.0 || >=20.0.0}
- peerDependencies:
- vite: ^5.0.0 || ^6.0.0
- vue: ^3.0.0
-
- '@vitejs/plugin-vue@5.2.1':
- resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==}
- engines: {node: ^18.0.0 || >=20.0.0}
- peerDependencies:
- vite: ^5.0.0 || ^6.0.0
- vue: ^3.2.25
-
'@volar/kit@2.4.23':
resolution: {integrity: sha512-YuUIzo9zwC2IkN7FStIcVl1YS9w5vkSFEZfPvnu0IbIMaR9WHhc9ZxvlT+91vrcSoRY469H2jwbrGqpG7m1KaQ==}
peerDependencies:
@@ -2445,22 +2266,6 @@ packages:
'@vscode/l10n@0.0.18':
resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==}
- '@vue/babel-helper-vue-transform-on@1.5.0':
- resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==}
-
- '@vue/babel-plugin-jsx@1.5.0':
- resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- peerDependenciesMeta:
- '@babel/core':
- optional: true
-
- '@vue/babel-plugin-resolve-type@1.5.0':
- resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@vue/compiler-core@3.5.21':
resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==}
@@ -2473,31 +2278,6 @@ packages:
'@vue/compiler-ssr@3.5.21':
resolution: {integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==}
- '@vue/devtools-core@7.7.7':
- resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==}
- peerDependencies:
- vue: ^3.0.0
-
- '@vue/devtools-kit@7.7.7':
- resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==}
-
- '@vue/devtools-shared@7.7.7':
- resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==}
-
- '@vue/reactivity@3.5.21':
- resolution: {integrity: sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==}
-
- '@vue/runtime-core@3.5.21':
- resolution: {integrity: sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==}
-
- '@vue/runtime-dom@3.5.21':
- resolution: {integrity: sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==}
-
- '@vue/server-renderer@3.5.21':
- resolution: {integrity: sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==}
- peerDependencies:
- vue: 3.5.21
-
'@vue/shared@3.5.21':
resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==}
@@ -2659,6 +2439,11 @@ packages:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
+ babel-plugin-jsx-dom-expressions@0.40.1:
+ resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==}
+ peerDependencies:
+ '@babel/core': ^7.20.12
+
babel-plugin-macros@3.1.0:
resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
engines: {node: '>=10', npm: '>=6'}
@@ -2686,6 +2471,15 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
+ babel-preset-solid@1.9.9:
+ resolution: {integrity: sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ solid-js: ^1.9.8
+ peerDependenciesMeta:
+ solid-js:
+ optional: true
+
bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
@@ -2707,9 +2501,6 @@ packages:
bidi-js@1.0.3:
resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
- birpc@2.5.0:
- resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==}
-
blob-to-buffer@1.2.9:
resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==}
@@ -2752,10 +2543,6 @@ packages:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
- bundle-name@4.1.0:
- resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
- engines: {node: '>=18'}
-
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
@@ -2970,10 +2757,6 @@ packages:
resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==}
engines: {node: '>=18'}
- copy-anything@3.0.5:
- resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
- engines: {node: '>=12.13'}
-
core-js-compat@3.45.1:
resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
@@ -3141,14 +2924,6 @@ packages:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
- default-browser-id@5.0.0:
- resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
- engines: {node: '>=18'}
-
- default-browser@5.2.1:
- resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
- engines: {node: '>=18'}
-
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -3157,10 +2932,6 @@ packages:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
engines: {node: '>=8'}
- define-lazy-prop@3.0.0:
- resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
- engines: {node: '>=12'}
-
define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
@@ -3304,9 +3075,6 @@ packages:
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
- error-stack-parser-es@0.1.5:
- resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==}
-
es-abstract@1.24.0:
resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
engines: {node: '>= 0.4'}
@@ -3340,11 +3108,6 @@ packages:
esast-util-from-js@2.0.1:
resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
- esbuild@0.25.4:
- resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==}
- engines: {node: '>=18'}
- hasBin: true
-
esbuild@0.25.9:
resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==}
engines: {node: '>=18'}
@@ -3460,10 +3223,6 @@ packages:
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
- execa@9.6.0:
- resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
- engines: {node: ^18.19.0 || >=20.5.0}
-
expressive-code@0.41.3:
resolution: {integrity: sha512-YLnD62jfgBZYrXIPQcJ0a51Afv9h8VlWqEGK9uU2T5nL/5rb8SnA86+7+mgCZe5D34Tff5RNEA5hjNVJYHzrFg==}
@@ -3532,10 +3291,6 @@ packages:
resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==}
engines: {node: '>=0.10.0'}
- figures@6.1.0:
- resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
- engines: {node: '>=18'}
-
file-entry-cache@10.1.4:
resolution: {integrity: sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==}
@@ -3610,10 +3365,6 @@ packages:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
- fs-extra@11.3.1:
- resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==}
- engines: {node: '>=14.14'}
-
fs-extra@9.1.0:
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
engines: {node: '>=10'}
@@ -3670,10 +3421,6 @@ packages:
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
engines: {node: '>=8'}
- get-stream@9.0.1:
- resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
- engines: {node: '>=18'}
-
get-symbol-description@1.1.0:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
@@ -3838,9 +3585,6 @@ packages:
hastscript@9.0.1:
resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
- hookable@5.5.3:
- resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
-
hookified@1.12.0:
resolution: {integrity: sha512-hMr1Y9TCLshScrBbV2QxJ9BROddxZ12MX9KsCtuGGy/3SmmN5H1PllKerrVlSotur9dlE8hmUKAOSa3WDzsZmQ==}
@@ -3848,6 +3592,9 @@ packages:
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
engines: {node: '>=18'}
+ html-entities@2.3.3:
+ resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
+
html-escaper@3.0.3:
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
@@ -3883,10 +3630,6 @@ packages:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
- human-signals@8.0.1:
- resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
- engines: {node: '>=18.18.0'}
-
ico-endec@0.1.6:
resolution: {integrity: sha512-ZdLU38ZoED3g1j3iEyzcQj+wAkY2xfWNkymszfJPoxucIUhK7NayQ+/C4Kv0nDFMIsbtbEHldv3V8PU494/ueQ==}
@@ -4116,10 +3859,6 @@ packages:
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines: {node: '>=8'}
- is-stream@4.0.1:
- resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
- engines: {node: '>=18'}
-
is-string@1.1.1:
resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
engines: {node: '>= 0.4'}
@@ -4132,10 +3871,6 @@ packages:
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines: {node: '>= 0.4'}
- is-unicode-supported@2.1.0:
- resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
- engines: {node: '>=18'}
-
is-weakmap@2.0.2:
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
engines: {node: '>= 0.4'}
@@ -4607,6 +4342,10 @@ packages:
resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
engines: {node: '>=18'}
+ merge-anything@5.1.7:
+ resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
+ engines: {node: '>=12.13'}
+
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -4779,9 +4518,6 @@ packages:
resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==}
engines: {node: '>= 18'}
- mitt@3.0.1:
- resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
-
mj-context-menu@0.6.1:
resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==}
@@ -4821,11 +4557,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanoid@5.1.5:
- resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
- engines: {node: ^18 || >=20}
- hasBin: true
-
nanostores@0.11.4:
resolution: {integrity: sha512-k1oiVNN4hDK8NcNERSZLQiMfRzEGtfnvZvdBvey3SQbgn8Dcrk0h1I6vpxApjb10PFUflZrgJ2WEZyJQ+5v7YQ==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -4873,10 +4604,6 @@ packages:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
engines: {node: '>=10'}
- npm-run-path@6.0.0:
- resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
- engines: {node: '>=18'}
-
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
@@ -4915,10 +4642,6 @@ packages:
oniguruma-to-es@4.3.3:
resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
- open@10.2.0:
- resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
- engines: {node: '>=18'}
-
open@8.4.2:
resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
engines: {node: '>=12'}
@@ -5019,10 +4742,6 @@ packages:
parse-latin@7.0.0:
resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
- parse-ms@4.0.0:
- resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
- engines: {node: '>=18'}
-
parse-srcset@1.0.2:
resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
@@ -5053,10 +4772,6 @@ packages:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
- path-key@4.0.0:
- resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
- engines: {node: '>=12'}
-
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -5076,9 +4791,6 @@ packages:
pend@1.2.0:
resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
- perfect-debounce@1.0.0:
- resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
-
photoswipe@5.4.4:
resolution: {integrity: sha512-WNFHoKrkZNnvFFhbHL93WDkW3ifwVOXSW3w1UuZZelSmgXpIGiZSNlZJq37rR8YejqME2rHs9EhH9ZvlvFH2NA==}
engines: {node: '>= 0.12.0'}
@@ -5480,10 +5192,6 @@ packages:
resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
engines: {node: ^14.13.1 || >=16.0.0}
- pretty-ms@9.2.0:
- resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==}
- engines: {node: '>=18'}
-
prismjs@1.30.0:
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
engines: {node: '>=6'}
@@ -5706,9 +5414,6 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rfdc@1.4.1:
- resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
-
rollup-plugin-bundle-size@1.0.3:
resolution: {integrity: sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==}
@@ -5762,10 +5467,6 @@ packages:
rrweb-cssom@0.8.0:
resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
- run-applescript@7.0.0:
- resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
- engines: {node: '>=18'}
-
run-async@4.0.4:
resolution: {integrity: sha512-2cgeRHnV11lSXBEhq7sN7a5UVjTKm9JTb9x8ApIT//16D7QL96AgnNeWSGoB4gIHc0iYw/Ha0Z+waBaCYZVNhg==}
engines: {node: '>=0.12.0'}
@@ -5835,6 +5536,16 @@ packages:
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+ seroval-plugins@1.3.3:
+ resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ seroval: ^1.0
+
+ seroval@1.3.2:
+ resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
+ engines: {node: '>=10'}
+
set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
@@ -5925,6 +5636,14 @@ packages:
resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==}
engines: {node: '>= 18'}
+ solid-js@1.9.9:
+ resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==}
+
+ solid-refresh@0.6.3:
+ resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
+ peerDependencies:
+ solid-js: ^1.3
+
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -5952,10 +5671,6 @@ packages:
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
- speakingurl@14.0.1:
- resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
- engines: {node: '>=0.10.0'}
-
speech-rule-engine@4.1.2:
resolution: {integrity: sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==}
hasBin: true
@@ -6021,10 +5736,6 @@ packages:
resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
engines: {node: '>=10'}
- strip-final-newline@4.0.0:
- resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
- engines: {node: '>=18'}
-
strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
@@ -6062,10 +5773,6 @@ packages:
suf-log@2.5.3:
resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==}
- superjson@2.2.2:
- resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==}
- engines: {node: '>=16'}
-
supports-color@2.0.0:
resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
engines: {node: '>=0.8.0'}
@@ -6339,10 +6046,6 @@ packages:
unicode-trie@2.0.0:
resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==}
- unicorn-magic@0.3.0:
- resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
- engines: {node: '>=18'}
-
unified@11.0.5:
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
@@ -6397,6 +6100,33 @@ packages:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
+ unplugin-icons@22.2.0:
+ resolution: {integrity: sha512-OdrXCiXexC1rFd0QpliAgcd4cMEEEQtoCf2WIrRIGu4iW6auBPpQKMCBeWxoe55phYdRyZLUWNOtzyTX+HOFSA==}
+ peerDependencies:
+ '@svgr/core': '>=7.0.0'
+ '@svgx/core': ^1.0.1
+ '@vue/compiler-sfc': ^3.0.2 || ^2.7.0
+ svelte: ^3.0.0 || ^4.0.0 || ^5.0.0
+ vue-template-compiler: ^2.6.12
+ vue-template-es2015-compiler: ^1.9.0
+ peerDependenciesMeta:
+ '@svgr/core':
+ optional: true
+ '@svgx/core':
+ optional: true
+ '@vue/compiler-sfc':
+ optional: true
+ svelte:
+ optional: true
+ vue-template-compiler:
+ optional: true
+ vue-template-es2015-compiler:
+ optional: true
+
+ unplugin@2.3.10:
+ resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
+ engines: {node: '>=18.12.0'}
+
unstorage@1.17.0:
resolution: {integrity: sha512-l9Z7lBiwtNp8ZmcoZ/dmPkFXFdtEdZtTZafCSnEIj3YvtkXeGAtL2rN8MQFy/0cs4eOLpuRJMp9ivdug7TCvww==}
peerDependencies:
@@ -6478,6 +6208,9 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ validate-html-nesting@1.2.3:
+ resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==}
+
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
@@ -6487,21 +6220,6 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
- vite-hot-client@2.1.0:
- resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==}
- peerDependencies:
- vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
-
- vite-plugin-inspect@0.8.9:
- resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==}
- engines: {node: '>=14'}
- peerDependencies:
- '@nuxt/kit': '*'
- vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1
- peerDependenciesMeta:
- '@nuxt/kit':
- optional: true
-
vite-plugin-pwa@1.0.3:
resolution: {integrity: sha512-/OpqIpUldALGxcsEnv/ekQiQ5xHkQ53wcoN5ewX4jiIDNGs3W+eNcI1WYZeyOLmzoEjg09D7aX0O89YGjen1aw==}
engines: {node: '>=16.0.0'}
@@ -6514,16 +6232,15 @@ packages:
'@vite-pwa/assets-generator':
optional: true
- vite-plugin-vue-devtools@7.7.7:
- resolution: {integrity: sha512-d0fIh3wRcgSlr4Vz7bAk4va1MkdqhQgj9ANE/rBhsAjOnRfTLs2ocjFMvSUOsv6SRRXU9G+VM7yMgqDb6yI4iQ==}
- engines: {node: '>=v14.21.3'}
+ vite-plugin-solid@2.11.8:
+ resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==}
peerDependencies:
- vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
-
- vite-plugin-vue-inspector@5.3.2:
- resolution: {integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==}
- peerDependencies:
- vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
+ '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
+ solid-js: ^1.7.2
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
+ peerDependenciesMeta:
+ '@testing-library/jest-dom':
+ optional: true
vite@6.3.5:
resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==}
@@ -6679,14 +6396,6 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
- vue@3.5.21:
- resolution: {integrity: sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==}
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
-
w3c-xmlserializer@5.0.0:
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
engines: {node: '>=18'}
@@ -6704,6 +6413,9 @@ packages:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
+ webpack-virtual-modules@0.6.2:
+ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
@@ -6842,10 +6554,6 @@ packages:
utf-8-validate:
optional: true
- wsl-utils@0.1.0:
- resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
- engines: {node: '>=18'}
-
xml-name-validator@5.0.0:
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
@@ -6947,8 +6655,6 @@ snapshots:
package-manager-detector: 1.3.0
tinyexec: 1.0.1
- '@antfu/utils@0.7.10': {}
-
'@antfu/utils@8.1.1': {}
'@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)':
@@ -7073,6 +6779,26 @@ snapshots:
stream-replace-string: 2.0.0
zod: 3.25.76
+ '@astrojs/solid-js@5.1.0(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(solid-js@1.9.9)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)':
+ dependencies:
+ solid-js: 1.9.9
+ vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
+ vite-plugin-solid: 2.11.8(solid-js@1.9.9)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))
+ transitivePeerDependencies:
+ - '@testing-library/jest-dom'
+ - '@types/node'
+ - jiti
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+
'@astrojs/telemetry@3.3.0':
dependencies:
ci-info: 4.3.0
@@ -7095,31 +6821,6 @@ snapshots:
semver: 7.7.2
vscode-languageserver-textdocument: 1.0.12
- '@astrojs/vue@5.1.0(@types/node@22.18.0)(astro@5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(vue@3.5.21(typescript@5.9.2))(yaml@2.8.1)':
- dependencies:
- '@vitejs/plugin-vue': 5.2.1(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))
- '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))
- '@vue/compiler-sfc': 3.5.21
- astro: 5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)
- vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
- vite-plugin-vue-devtools: 7.7.7(rollup@2.79.2)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))
- vue: 3.5.21(typescript@5.9.2)
- transitivePeerDependencies:
- - '@nuxt/kit'
- - '@types/node'
- - jiti
- - less
- - lightningcss
- - rollup
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
- - tsx
- - yaml
-
'@astrojs/yaml2ts@0.2.2':
dependencies:
yaml: 2.8.1
@@ -7212,6 +6913,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-imports@7.18.6':
+ dependencies:
+ '@babel/types': 7.28.2
+
'@babel/helper-module-imports@7.27.1':
dependencies:
'@babel/traverse': 7.28.3
@@ -7325,24 +7030,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.3)':
- dependencies:
- '@babel/core': 7.28.3
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3)
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.3)
- transitivePeerDependencies:
- - supports-color
-
'@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3)':
dependencies:
'@babel/core': 7.28.3
- '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.3)':
- dependencies:
- '@babel/core': 7.28.3
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.3)':
dependencies:
'@babel/core': 7.28.3
@@ -7368,11 +7059,6 @@ snapshots:
'@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.3)':
- dependencies:
- '@babel/core': 7.28.3
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.3)':
dependencies:
'@babel/core': 7.28.3
@@ -7724,17 +7410,6 @@ snapshots:
'@babel/core': 7.28.3
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.3)':
- dependencies:
- '@babel/core': 7.28.3
- '@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3)
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3)
- transitivePeerDependencies:
- - supports-color
-
'@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.3)':
dependencies:
'@babel/core': 7.28.3
@@ -7960,156 +7635,81 @@ snapshots:
tslib: 2.8.1
optional: true
- '@esbuild/aix-ppc64@0.25.4':
- optional: true
-
'@esbuild/aix-ppc64@0.25.9':
optional: true
- '@esbuild/android-arm64@0.25.4':
- optional: true
-
'@esbuild/android-arm64@0.25.9':
optional: true
- '@esbuild/android-arm@0.25.4':
- optional: true
-
- '@esbuild/android-arm@0.25.9':
- optional: true
-
- '@esbuild/android-x64@0.25.4':
- optional: true
-
- '@esbuild/android-x64@0.25.9':
- optional: true
-
- '@esbuild/darwin-arm64@0.25.4':
+ '@esbuild/android-arm@0.25.9':
optional: true
- '@esbuild/darwin-arm64@0.25.9':
+ '@esbuild/android-x64@0.25.9':
optional: true
- '@esbuild/darwin-x64@0.25.4':
+ '@esbuild/darwin-arm64@0.25.9':
optional: true
'@esbuild/darwin-x64@0.25.9':
optional: true
- '@esbuild/freebsd-arm64@0.25.4':
- optional: true
-
'@esbuild/freebsd-arm64@0.25.9':
optional: true
- '@esbuild/freebsd-x64@0.25.4':
- optional: true
-
'@esbuild/freebsd-x64@0.25.9':
optional: true
- '@esbuild/linux-arm64@0.25.4':
- optional: true
-
'@esbuild/linux-arm64@0.25.9':
optional: true
- '@esbuild/linux-arm@0.25.4':
- optional: true
-
'@esbuild/linux-arm@0.25.9':
optional: true
- '@esbuild/linux-ia32@0.25.4':
- optional: true
-
'@esbuild/linux-ia32@0.25.9':
optional: true
- '@esbuild/linux-loong64@0.25.4':
- optional: true
-
'@esbuild/linux-loong64@0.25.9':
optional: true
- '@esbuild/linux-mips64el@0.25.4':
- optional: true
-
'@esbuild/linux-mips64el@0.25.9':
optional: true
- '@esbuild/linux-ppc64@0.25.4':
- optional: true
-
'@esbuild/linux-ppc64@0.25.9':
optional: true
- '@esbuild/linux-riscv64@0.25.4':
- optional: true
-
'@esbuild/linux-riscv64@0.25.9':
optional: true
- '@esbuild/linux-s390x@0.25.4':
- optional: true
-
'@esbuild/linux-s390x@0.25.9':
optional: true
- '@esbuild/linux-x64@0.25.4':
- optional: true
-
'@esbuild/linux-x64@0.25.9':
optional: true
- '@esbuild/netbsd-arm64@0.25.4':
- optional: true
-
'@esbuild/netbsd-arm64@0.25.9':
optional: true
- '@esbuild/netbsd-x64@0.25.4':
- optional: true
-
'@esbuild/netbsd-x64@0.25.9':
optional: true
- '@esbuild/openbsd-arm64@0.25.4':
- optional: true
-
'@esbuild/openbsd-arm64@0.25.9':
optional: true
- '@esbuild/openbsd-x64@0.25.4':
- optional: true
-
'@esbuild/openbsd-x64@0.25.9':
optional: true
'@esbuild/openharmony-arm64@0.25.9':
optional: true
- '@esbuild/sunos-x64@0.25.4':
- optional: true
-
'@esbuild/sunos-x64@0.25.9':
optional: true
- '@esbuild/win32-arm64@0.25.4':
- optional: true
-
'@esbuild/win32-arm64@0.25.9':
optional: true
- '@esbuild/win32-ia32@0.25.4':
- optional: true
-
'@esbuild/win32-ia32@0.25.9':
optional: true
- '@esbuild/win32-x64@0.25.4':
- optional: true
-
'@esbuild/win32-x64@0.25.9':
optional: true
@@ -8593,19 +8193,19 @@ snapshots:
dependencies:
quansync: 0.2.11
- '@rolldown/pluginutils@1.0.0-beta.34': {}
-
'@rollup/plugin-alias@3.1.9(rollup@2.79.2)':
dependencies:
rollup: 2.79.2
slash: 3.0.0
- '@rollup/plugin-babel@5.3.1(@babel/core@7.28.3)(rollup@2.79.2)':
+ '@rollup/plugin-babel@5.3.1(@babel/core@7.28.3)(@types/babel__core@7.20.5)(rollup@2.79.2)':
dependencies:
'@babel/core': 7.28.3
'@babel/helper-module-imports': 7.27.1
'@rollup/pluginutils': 3.1.0(rollup@2.79.2)
rollup: 2.79.2
+ optionalDependencies:
+ '@types/babel__core': 7.20.5
transitivePeerDependencies:
- supports-color
@@ -8742,8 +8342,6 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.50.0':
optional: true
- '@sec-ant/readable-stream@0.4.1': {}
-
'@shikijs/core@3.12.1':
dependencies:
'@shikijs/types': 3.12.1
@@ -8782,8 +8380,6 @@ snapshots:
'@shikijs/vscode-textmate@10.0.2': {}
- '@sindresorhus/merge-streams@4.0.0': {}
-
'@surma/rollup-plugin-off-main-thread@2.2.3':
dependencies:
ejs: 3.1.10
@@ -8802,9 +8398,9 @@ snapshots:
'@swup/plugin': 4.0.0
swup: 4.8.2
- '@swup/parallel-plugin@0.4.0(swup@4.8.2)':
+ '@swup/parallel-plugin@0.4.0(@types/babel__core@7.20.5)(swup@4.8.2)':
dependencies:
- '@swup/plugin': 3.0.1
+ '@swup/plugin': 3.0.1(@types/babel__core@7.20.5)
swup: 4.8.2
transitivePeerDependencies:
- '@types/babel__core'
@@ -8812,12 +8408,12 @@ snapshots:
- supports-color
- ts-node
- '@swup/plugin@3.0.1':
+ '@swup/plugin@3.0.1(@types/babel__core@7.20.5)':
dependencies:
'@swup/browserslist-config': 1.0.1
'@swup/prettier-config': 1.1.0
chalk: 5.6.0
- microbundle: 0.15.1
+ microbundle: 0.15.1(@types/babel__core@7.20.5)
prettier: 2.8.8
shelljs: 0.8.5
shelljs-live: 0.0.5(shelljs@0.8.5)
@@ -8942,6 +8538,27 @@ snapshots:
'@trysound/sax@0.2.0': {}
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.28.3
+ '@babel/types': 7.28.2
+ '@types/babel__generator': 7.27.0
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.28.0
+
+ '@types/babel__generator@7.27.0':
+ dependencies:
+ '@babel/types': 7.28.2
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.28.3
+ '@babel/types': 7.28.2
+
+ '@types/babel__traverse@7.28.0':
+ dependencies:
+ '@babel/types': 7.28.2
+
'@types/css-tree@2.3.10': {}
'@types/csso@5.0.4':
@@ -9154,29 +8771,13 @@ snapshots:
sharp-ico: 0.1.5
unconfig: 7.3.3
- '@vite-pwa/astro@1.1.0(@vite-pwa/assets-generator@1.0.0)(astro@5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))(vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0))':
+ '@vite-pwa/astro@1.1.0(@vite-pwa/assets-generator@1.0.0)(astro@5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1))(vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))':
dependencies:
astro: 5.13.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.1)
- vite-plugin-pwa: 1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0)
+ vite-plugin-pwa: 1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
optionalDependencies:
'@vite-pwa/assets-generator': 1.0.0
- '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))':
- dependencies:
- '@babel/core': 7.28.3
- '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3)
- '@rolldown/pluginutils': 1.0.0-beta.34
- '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3)
- vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
- vue: 3.5.21(typescript@5.9.2)
- transitivePeerDependencies:
- - supports-color
-
- '@vitejs/plugin-vue@5.2.1(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))':
- dependencies:
- vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
- vue: 3.5.21(typescript@5.9.2)
-
'@volar/kit@2.4.23(typescript@5.9.2)':
dependencies:
'@volar/language-service': 2.4.23
@@ -9227,35 +8828,6 @@ snapshots:
'@vscode/l10n@0.0.18': {}
- '@vue/babel-helper-vue-transform-on@1.5.0': {}
-
- '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.3)':
- dependencies:
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3)
- '@babel/template': 7.27.2
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
- '@vue/babel-helper-vue-transform-on': 1.5.0
- '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.3)
- '@vue/shared': 3.5.21
- optionalDependencies:
- '@babel/core': 7.28.3
- transitivePeerDependencies:
- - supports-color
-
- '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.3)':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/core': 7.28.3
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/parser': 7.28.3
- '@vue/compiler-sfc': 3.5.21
- transitivePeerDependencies:
- - supports-color
-
'@vue/compiler-core@3.5.21':
dependencies:
'@babel/parser': 7.28.3
@@ -9263,11 +8835,13 @@ snapshots:
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.2.1
+ optional: true
'@vue/compiler-dom@3.5.21':
dependencies:
'@vue/compiler-core': 3.5.21
'@vue/shared': 3.5.21
+ optional: true
'@vue/compiler-sfc@3.5.21':
dependencies:
@@ -9280,61 +8854,16 @@ snapshots:
magic-string: 0.30.18
postcss: 8.5.6
source-map-js: 1.2.1
+ optional: true
'@vue/compiler-ssr@3.5.21':
dependencies:
'@vue/compiler-dom': 3.5.21
'@vue/shared': 3.5.21
+ optional: true
- '@vue/devtools-core@7.7.7(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))':
- dependencies:
- '@vue/devtools-kit': 7.7.7
- '@vue/devtools-shared': 7.7.7
- mitt: 3.0.1
- nanoid: 5.1.5
- pathe: 2.0.3
- vite-hot-client: 2.1.0(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))
- vue: 3.5.21(typescript@5.9.2)
- transitivePeerDependencies:
- - vite
-
- '@vue/devtools-kit@7.7.7':
- dependencies:
- '@vue/devtools-shared': 7.7.7
- birpc: 2.5.0
- hookable: 5.5.3
- mitt: 3.0.1
- perfect-debounce: 1.0.0
- speakingurl: 14.0.1
- superjson: 2.2.2
-
- '@vue/devtools-shared@7.7.7':
- dependencies:
- rfdc: 1.4.1
-
- '@vue/reactivity@3.5.21':
- dependencies:
- '@vue/shared': 3.5.21
-
- '@vue/runtime-core@3.5.21':
- dependencies:
- '@vue/reactivity': 3.5.21
- '@vue/shared': 3.5.21
-
- '@vue/runtime-dom@3.5.21':
- dependencies:
- '@vue/reactivity': 3.5.21
- '@vue/runtime-core': 3.5.21
- '@vue/shared': 3.5.21
- csstype: 3.1.3
-
- '@vue/server-renderer@3.5.21(vue@3.5.21(typescript@5.9.2))':
- dependencies:
- '@vue/compiler-ssr': 3.5.21
- '@vue/shared': 3.5.21
- vue: 3.5.21(typescript@5.9.2)
-
- '@vue/shared@3.5.21': {}
+ '@vue/shared@3.5.21':
+ optional: true
'@xmldom/xmldom@0.9.8': {}
@@ -9747,6 +9276,16 @@ snapshots:
axobject-query@4.1.0: {}
+ babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.3):
+ dependencies:
+ '@babel/core': 7.28.3
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3)
+ '@babel/types': 7.28.2
+ html-entities: 2.3.3
+ parse5: 7.3.0
+ validate-html-nesting: 1.2.3
+
babel-plugin-macros@3.1.0:
dependencies:
'@babel/runtime': 7.28.3
@@ -9784,6 +9323,13 @@ snapshots:
'@babel/core': 7.28.3
'@babel/parser': 7.28.3
+ babel-preset-solid@1.9.9(@babel/core@7.28.3)(solid-js@1.9.9):
+ dependencies:
+ '@babel/core': 7.28.3
+ babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.3)
+ optionalDependencies:
+ solid-js: 1.9.9
+
bail@2.0.2: {}
balanced-match@1.0.2: {}
@@ -9800,8 +9346,6 @@ snapshots:
dependencies:
require-from-string: 2.0.2
- birpc@2.5.0: {}
-
blob-to-buffer@1.2.9: {}
boolbase@1.0.0: {}
@@ -9851,10 +9395,6 @@ snapshots:
builtin-modules@3.3.0: {}
- bundle-name@4.1.0:
- dependencies:
- run-applescript: 7.0.0
-
cac@6.7.14: {}
cacheable@1.10.4:
@@ -10057,10 +9597,6 @@ snapshots:
cookie@1.0.2: {}
- copy-anything@3.0.5:
- dependencies:
- is-what: 4.1.16
-
core-js-compat@3.45.1:
dependencies:
browserslist: 4.25.4
@@ -10263,13 +9799,6 @@ snapshots:
deepmerge@4.3.1: {}
- default-browser-id@5.0.0: {}
-
- default-browser@5.2.1:
- dependencies:
- bundle-name: 4.1.0
- default-browser-id: 5.0.0
-
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.1
@@ -10278,8 +9807,6 @@ snapshots:
define-lazy-prop@2.0.0: {}
- define-lazy-prop@3.0.0: {}
-
define-properties@1.2.1:
dependencies:
define-data-property: 1.1.4
@@ -10416,8 +9943,6 @@ snapshots:
dependencies:
is-arrayish: 0.2.1
- error-stack-parser-es@0.1.5: {}
-
es-abstract@1.24.0:
dependencies:
array-buffer-byte-length: 1.0.2
@@ -10512,34 +10037,6 @@ snapshots:
esast-util-from-estree: 2.0.0
vfile-message: 4.0.3
- esbuild@0.25.4:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.4
- '@esbuild/android-arm': 0.25.4
- '@esbuild/android-arm64': 0.25.4
- '@esbuild/android-x64': 0.25.4
- '@esbuild/darwin-arm64': 0.25.4
- '@esbuild/darwin-x64': 0.25.4
- '@esbuild/freebsd-arm64': 0.25.4
- '@esbuild/freebsd-x64': 0.25.4
- '@esbuild/linux-arm': 0.25.4
- '@esbuild/linux-arm64': 0.25.4
- '@esbuild/linux-ia32': 0.25.4
- '@esbuild/linux-loong64': 0.25.4
- '@esbuild/linux-mips64el': 0.25.4
- '@esbuild/linux-ppc64': 0.25.4
- '@esbuild/linux-riscv64': 0.25.4
- '@esbuild/linux-s390x': 0.25.4
- '@esbuild/linux-x64': 0.25.4
- '@esbuild/netbsd-arm64': 0.25.4
- '@esbuild/netbsd-x64': 0.25.4
- '@esbuild/openbsd-arm64': 0.25.4
- '@esbuild/openbsd-x64': 0.25.4
- '@esbuild/sunos-x64': 0.25.4
- '@esbuild/win32-arm64': 0.25.4
- '@esbuild/win32-ia32': 0.25.4
- '@esbuild/win32-x64': 0.25.4
-
esbuild@0.25.9:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.9
@@ -10710,21 +10207,6 @@ snapshots:
eventemitter3@5.0.1: {}
- execa@9.6.0:
- dependencies:
- '@sindresorhus/merge-streams': 4.0.0
- cross-spawn: 7.0.6
- figures: 6.1.0
- get-stream: 9.0.1
- human-signals: 8.0.1
- is-plain-obj: 4.1.0
- is-stream: 4.0.1
- npm-run-path: 6.0.0
- pretty-ms: 9.2.0
- signal-exit: 4.1.0
- strip-final-newline: 4.0.0
- yoctocolors: 2.1.2
-
expressive-code@0.41.3:
dependencies:
'@expressive-code/core': 0.41.3
@@ -10801,10 +10283,6 @@ snapshots:
escape-string-regexp: 1.0.5
object-assign: 4.1.1
- figures@6.1.0:
- dependencies:
- is-unicode-supported: 2.1.0
-
file-entry-cache@10.1.4:
dependencies:
flat-cache: 6.1.13
@@ -10893,12 +10371,6 @@ snapshots:
jsonfile: 6.2.0
universalify: 2.0.1
- fs-extra@11.3.1:
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.2.0
- universalify: 2.0.1
-
fs-extra@9.1.0:
dependencies:
at-least-node: 1.0.0
@@ -10962,11 +10434,6 @@ snapshots:
dependencies:
pump: 3.0.3
- get-stream@9.0.1:
- dependencies:
- '@sec-ant/readable-stream': 0.4.1
- is-stream: 4.0.1
-
get-symbol-description@1.1.0:
dependencies:
call-bound: 1.0.4
@@ -11258,14 +10725,14 @@ snapshots:
property-information: 7.1.0
space-separated-tokens: 2.0.2
- hookable@5.5.3: {}
-
hookified@1.12.0: {}
html-encoding-sniffer@4.0.0:
dependencies:
whatwg-encoding: 3.1.1
+ html-entities@2.3.3: {}
+
html-escaper@3.0.3: {}
html-minifier-terser@7.2.0:
@@ -11319,8 +10786,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- human-signals@8.0.1: {}
-
ico-endec@0.1.6: {}
iconv-lite@0.4.24:
@@ -11519,8 +10984,6 @@ snapshots:
is-stream@2.0.1: {}
- is-stream@4.0.1: {}
-
is-string@1.1.1:
dependencies:
call-bound: 1.0.4
@@ -11536,8 +10999,6 @@ snapshots:
dependencies:
which-typed-array: 1.1.19
- is-unicode-supported@2.1.0: {}
-
is-weakmap@2.0.2: {}
is-weakref@1.1.1:
@@ -12083,13 +11544,17 @@ snapshots:
meow@13.2.0: {}
+ merge-anything@5.1.7:
+ dependencies:
+ is-what: 4.1.16
+
merge-stream@2.0.0: {}
merge2@1.4.1: {}
mhchemparser@4.2.1: {}
- microbundle@0.15.1:
+ microbundle@0.15.1(@types/babel__core@7.20.5):
dependencies:
'@babel/core': 7.28.3
'@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.28.3)
@@ -12102,7 +11567,7 @@ snapshots:
'@babel/preset-flow': 7.27.1(@babel/core@7.28.3)
'@babel/preset-react': 7.27.1(@babel/core@7.28.3)
'@rollup/plugin-alias': 3.1.9(rollup@2.79.2)
- '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.3)(rollup@2.79.2)
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.3)(@types/babel__core@7.20.5)(rollup@2.79.2)
'@rollup/plugin-commonjs': 17.1.0(rollup@2.79.2)
'@rollup/plugin-json': 4.1.0(rollup@2.79.2)
'@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2)
@@ -12465,8 +11930,6 @@ snapshots:
dependencies:
minipass: 7.1.2
- mitt@3.0.1: {}
-
mj-context-menu@0.6.1: {}
mkdirp@1.0.4: {}
@@ -12492,8 +11955,6 @@ snapshots:
nanoid@3.3.11: {}
- nanoid@5.1.5: {}
-
nanostores@0.11.4: {}
natural-compare@1.4.0: {}
@@ -12525,11 +11986,6 @@ snapshots:
normalize-url@6.1.0: {}
- npm-run-path@6.0.0:
- dependencies:
- path-key: 4.0.0
- unicorn-magic: 0.3.0
-
nth-check@2.1.1:
dependencies:
boolbase: 1.0.0
@@ -12571,13 +12027,6 @@ snapshots:
regex: 6.0.1
regex-recursion: 6.0.2
- open@10.2.0:
- dependencies:
- default-browser: 5.2.1
- define-lazy-prop: 3.0.0
- is-inside-container: 1.0.0
- wsl-utils: 0.1.0
-
open@8.4.2:
dependencies:
define-lazy-prop: 2.0.0
@@ -12706,8 +12155,6 @@ snapshots:
unist-util-visit-children: 3.0.0
vfile: 6.0.3
- parse-ms@4.0.0: {}
-
parse-srcset@1.0.2: {}
parse5-htmlparser2-tree-adapter@7.1.0:
@@ -12736,8 +12183,6 @@ snapshots:
path-key@3.1.1: {}
- path-key@4.0.0: {}
-
path-parse@1.0.7: {}
path-to-regexp@6.3.0: {}
@@ -12750,8 +12195,6 @@ snapshots:
pend@1.2.0: {}
- perfect-debounce@1.0.0: {}
-
photoswipe@5.4.4: {}
picocolors@1.1.1: {}
@@ -13056,10 +12499,6 @@ snapshots:
pretty-bytes@6.1.1: {}
- pretty-ms@9.2.0:
- dependencies:
- parse-ms: 4.0.0
-
prismjs@1.30.0: {}
promise.series@0.2.0: {}
@@ -13379,8 +12818,6 @@ snapshots:
reusify@1.1.0: {}
- rfdc@1.4.1: {}
-
rollup-plugin-bundle-size@1.0.3:
dependencies:
chalk: 1.1.3
@@ -13471,8 +12908,6 @@ snapshots:
rrweb-cssom@0.8.0: {}
- run-applescript@7.0.0: {}
-
run-async@4.0.4:
dependencies:
oxlint: 1.6.0
@@ -13550,6 +12985,12 @@ snapshots:
dependencies:
randombytes: 2.1.0
+ seroval-plugins@1.3.3(seroval@1.3.2):
+ dependencies:
+ seroval: 1.3.2
+
+ seroval@1.3.2: {}
+
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
@@ -13693,6 +13134,21 @@ snapshots:
smol-toml@1.4.2: {}
+ solid-js@1.9.9:
+ dependencies:
+ csstype: 3.1.3
+ seroval: 1.3.2
+ seroval-plugins: 1.3.3(seroval@1.3.2)
+
+ solid-refresh@0.6.3(solid-js@1.9.9):
+ dependencies:
+ '@babel/generator': 7.28.3
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/types': 7.28.2
+ solid-js: 1.9.9
+ transitivePeerDependencies:
+ - supports-color
+
source-map-js@1.2.1: {}
source-map-support@0.5.21:
@@ -13712,8 +13168,6 @@ snapshots:
space-separated-tokens@2.0.2: {}
- speakingurl@14.0.1: {}
-
speech-rule-engine@4.1.2:
dependencies:
'@xmldom/xmldom': 0.9.8
@@ -13807,8 +13261,6 @@ snapshots:
strip-comments@2.0.1: {}
- strip-final-newline@4.0.0: {}
-
strip-json-comments@3.1.1: {}
strnum@2.1.1: {}
@@ -13882,10 +13334,6 @@ snapshots:
dependencies:
s.color: 0.0.15
- superjson@2.2.2:
- dependencies:
- copy-anything: 3.0.5
-
supports-color@2.0.0: {}
supports-color@7.2.0:
@@ -14047,7 +13495,7 @@ snapshots:
tsx@4.20.3:
dependencies:
- esbuild: 0.25.4
+ esbuild: 0.25.9
get-tsconfig: 4.10.0
optionalDependencies:
fsevents: 2.3.3
@@ -14176,8 +13624,6 @@ snapshots:
pako: 0.2.9
tiny-inflate: 1.0.3
- unicorn-magic@0.3.0: {}
-
unified@11.0.5:
dependencies:
'@types/unist': 3.0.3
@@ -14254,6 +13700,25 @@ snapshots:
universalify@2.0.1: {}
+ unplugin-icons@22.2.0(@vue/compiler-sfc@3.5.21):
+ dependencies:
+ '@antfu/install-pkg': 1.1.0
+ '@iconify/utils': 2.3.0
+ debug: 4.4.1
+ local-pkg: 1.1.2
+ unplugin: 2.3.10
+ optionalDependencies:
+ '@vue/compiler-sfc': 3.5.21
+ transitivePeerDependencies:
+ - supports-color
+
+ unplugin@2.3.10:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
unstorage@1.17.0:
dependencies:
anymatch: 3.1.3
@@ -14284,6 +13749,8 @@ snapshots:
util-deprecate@1.0.2: {}
+ validate-html-nesting@1.2.3: {}
+
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
@@ -14299,67 +13766,29 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vite-hot-client@2.1.0(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)):
- dependencies:
- vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
-
- vite-plugin-inspect@0.8.9(rollup@2.79.2)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)):
- dependencies:
- '@antfu/utils': 0.7.10
- '@rollup/pluginutils': 5.2.0(rollup@2.79.2)
- debug: 4.4.1
- error-stack-parser-es: 0.1.5
- fs-extra: 11.3.1
- open: 10.2.0
- perfect-debounce: 1.0.0
- picocolors: 1.1.1
- sirv: 3.0.1
- vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
- transitivePeerDependencies:
- - rollup
- - supports-color
-
- vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0):
+ vite-plugin-pwa@1.0.3(@vite-pwa/assets-generator@1.0.0)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0):
dependencies:
debug: 4.4.1
pretty-bytes: 6.1.1
tinyglobby: 0.2.14
vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
- workbox-build: 7.3.0
+ workbox-build: 7.3.0(@types/babel__core@7.20.5)
workbox-window: 7.3.0
optionalDependencies:
'@vite-pwa/assets-generator': 1.0.0
transitivePeerDependencies:
- supports-color
- vite-plugin-vue-devtools@7.7.7(rollup@2.79.2)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)):
- dependencies:
- '@vue/devtools-core': 7.7.7(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))
- '@vue/devtools-kit': 7.7.7
- '@vue/devtools-shared': 7.7.7
- execa: 9.6.0
- sirv: 3.0.1
- vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
- vite-plugin-inspect: 0.8.9(rollup@2.79.2)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))
- vite-plugin-vue-inspector: 5.3.2(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))
- transitivePeerDependencies:
- - '@nuxt/kit'
- - rollup
- - supports-color
- - vue
-
- vite-plugin-vue-inspector@5.3.2(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)):
+ vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)):
dependencies:
'@babel/core': 7.28.3
- '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.3)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.3)
- '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3)
- '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3)
- '@vue/compiler-dom': 3.5.21
- kolorist: 1.8.0
- magic-string: 0.30.18
+ '@types/babel__core': 7.20.5
+ babel-preset-solid: 1.9.9(@babel/core@7.28.3)(solid-js@1.9.9)
+ merge-anything: 5.1.7
+ solid-js: 1.9.9
+ solid-refresh: 0.6.3(solid-js@1.9.9)
vite: 6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)
+ vitefu: 1.1.1(vite@6.3.5(@types/node@22.18.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))
transitivePeerDependencies:
- supports-color
@@ -14511,16 +13940,6 @@ snapshots:
vscode-uri@3.1.0: {}
- vue@3.5.21(typescript@5.9.2):
- dependencies:
- '@vue/compiler-dom': 3.5.21
- '@vue/compiler-sfc': 3.5.21
- '@vue/runtime-dom': 3.5.21
- '@vue/server-renderer': 3.5.21(vue@3.5.21(typescript@5.9.2))
- '@vue/shared': 3.5.21
- optionalDependencies:
- typescript: 5.9.2
-
w3c-xmlserializer@5.0.0:
dependencies:
xml-name-validator: 5.0.0
@@ -14533,6 +13952,8 @@ snapshots:
webidl-conversions@7.0.0: {}
+ webpack-virtual-modules@0.6.2: {}
+
whatwg-encoding@3.1.1:
dependencies:
iconv-lite: 0.6.3
@@ -14623,13 +14044,13 @@ snapshots:
dependencies:
workbox-core: 7.3.0
- workbox-build@7.3.0:
+ workbox-build@7.3.0(@types/babel__core@7.20.5):
dependencies:
'@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1)
'@babel/core': 7.28.3
'@babel/preset-env': 7.28.3(@babel/core@7.28.3)
'@babel/runtime': 7.28.3
- '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.3)(rollup@2.79.2)
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.3)(@types/babel__core@7.20.5)(rollup@2.79.2)
'@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2)
'@rollup/plugin-replace': 2.4.2(rollup@2.79.2)
'@rollup/plugin-terser': 0.4.4(rollup@2.79.2)
@@ -14754,10 +14175,6 @@ snapshots:
ws@8.18.3: {}
- wsl-utils@0.1.0:
- dependencies:
- is-wsl: 3.1.0
-
xml-name-validator@5.0.0: {}
xmlchars@2.2.0: {}
tsconfig.json
@@ -36,7 +36,8 @@
"src/*"
]
},
- "jsx": "preserve"
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js"
},
"include": [
"src/**/*"