diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..654c6d4 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets). + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md). diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..8b659b1 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json", + "changelog": ["@changesets/changelog-github", { "repo": "ilyichv/campfire" }], + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [], + "privatePackages": { + "version": false, + "tag": false + } +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5d515ed --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.3.3 + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Lint + run: bun run check + + - name: Build + run: bunx turbo run build + + - name: Type-check and test + run: bunx turbo run check-types test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b60760f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,36 @@ +name: Release + +on: + push: + branches: + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +permissions: + contents: write + pull-requests: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.3.3 + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Create release PR or publish to npm + uses: changesets/action@v1 + with: + version: bun run version + publish: bun run release + commit: "chore: release" + title: "chore: release" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2ba6a55 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,54 @@ +# Contributing to Campfire + +Thanks for your interest in Campfire! + +## Setup + +Campfire is a [Bun](https://bun.sh) + [Turborepo](https://turborepo.dev) +monorepo. + +```sh +bun install +bun dev # docs app + watch builds +bun run build # build everything +``` + +## Repository layout + +- `packages/core` — project engine: discovery, validation, mutations +- `packages/app` — browser shell and local runtime (Vite) +- `packages/cli` — the `camp` command line and init templates +- `registry/` — shadcn-compatible registry items +- `apps/docs` — docs site (Next.js + fumadocs), serves the registry at `/r` +- `examples/` — example decks + +## Checks + +Run these before opening a PR (CI enforces them): + +```sh +bun run check # lint/format (ultracite) +bun run fix # auto-fix lint/format issues +bun run check-types # typescript +bun run test # bun test via turbo +bun run build +``` + +## Changesets + +User-facing changes to `packages/*` need a changeset: + +```sh +bunx changeset +``` + +Pick the affected packages and a semver bump, describe the change, and commit +the generated file with your PR. Docs-only or internal changes don't need one. +Releases are automated: merging the release PR that the changesets action +opens on `main` publishes to npm. + +## Registry items + +Items live in `registry/items` and follow the +[components.build](https://components.build) standard. `bun run registry:build` +regenerates `apps/docs/public/r`, which is committed. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f0bc28b --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Ilyich Vismara + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..731b349 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,11 @@ +# Security Policy + +If you discover a security vulnerability in Campfire, please report it +privately — do not open a public issue. + +- Email: ilyich@arkemis.it +- Or use GitHub's private vulnerability reporting on this repository. + +You'll get an acknowledgement as soon as possible. Please include a +description of the issue, steps to reproduce, and the affected package and +version. diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index 16fc2b7..e997423 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -1,28 +1,44 @@ +import Image from "next/image"; import Link from "next/link"; export default function HomePage() { return ( -
- - 🔥 - -

Campfire

-

+

+
+
+ Campfire logo: a campfire wearing a cowboy hat +
+

+ Campfire +

+

A filesystem-native presentation runtime. Write slides in MDX, shape the story with React layouts, and present from a live local shell.

-
+      
+        
+          ${" "}
+        
         bunx @campfire/cli init my-deck
       
-
+
Documentation Registry diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index 3ff6135..baf1c18 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -5,13 +5,67 @@ /* Registry items are rendered live in the docs; include their classes. */ @source "../../../registry/items"; -/* Default campfire theme tokens, scoped to registry previews. Previews keep - * the slide's own (light) theme regardless of the docs color scheme. */ -.cf-slide-frame { - --color-background: oklch(1 0 0); - --color-foreground: oklch(0.15 0 0); - --color-primary: oklch(0.55 0.2 260); - --color-muted: oklch(0.55 0.02 260); +@theme { + --font-sans: var(--font-karla), ui-sans-serif, system-ui, sans-serif; + --font-display: var(--font-fraunces), ui-serif, Georgia, serif; +} + +/* Campfire palette, sampled from the logo: ember flame, espresso logs, + * parchment sticker border. Light mode is daybreak camp; dark is the + * night around the fire. */ +:root { + --color-fd-background: oklch(0.972 0.014 85); + --color-fd-foreground: oklch(0.28 0.04 55); + --color-fd-muted: oklch(0.93 0.018 80); + --color-fd-muted-foreground: oklch(0.5 0.035 55); + --color-fd-popover: oklch(0.985 0.01 85); + --color-fd-popover-foreground: oklch(0.28 0.04 55); + --color-fd-card: oklch(0.95 0.018 82); + --color-fd-card-foreground: oklch(0.28 0.04 55); + --color-fd-border: oklch(0.84 0.035 75 / 60%); + --color-fd-primary: oklch(0.6 0.185 38); + --color-fd-primary-foreground: oklch(0.985 0.012 85); + --color-fd-secondary: oklch(0.92 0.025 78); + --color-fd-secondary-foreground: oklch(0.32 0.045 50); + --color-fd-accent: oklch(0.89 0.04 70 / 60%); + --color-fd-accent-foreground: oklch(0.32 0.05 45); + --color-fd-ring: oklch(0.6 0.185 38); +} + +.dark { + --color-fd-background: oklch(0.17 0.012 50); + --color-fd-foreground: oklch(0.93 0.02 80); + --color-fd-muted: oklch(0.235 0.015 50); + --color-fd-muted-foreground: oklch(0.72 0.028 65); + --color-fd-popover: oklch(0.215 0.014 50); + --color-fd-popover-foreground: oklch(0.9 0.02 80); + --color-fd-card: oklch(0.2 0.014 50); + --color-fd-card-foreground: oklch(0.93 0.02 80); + --color-fd-border: oklch(0.5 0.035 55 / 25%); + --color-fd-primary: oklch(0.68 0.175 42); + --color-fd-primary-foreground: oklch(0.16 0.02 50); + --color-fd-secondary: oklch(0.245 0.018 50); + --color-fd-secondary-foreground: oklch(0.93 0.02 80); + --color-fd-accent: oklch(0.33 0.03 50 / 50%); + --color-fd-accent-foreground: oklch(0.91 0.03 75); + --color-fd-ring: oklch(0.68 0.175 42); +} + +.dark #nd-sidebar { + --color-fd-muted: oklch(0.25 0.016 50); + --color-fd-secondary: oklch(0.27 0.018 50); + --color-fd-muted-foreground: oklch(0.74 0.028 65); +} + +/* Headings carry the brand serif. Inside slide previews, SlideFrame + * re-points --font-display at the deck's own font stack. */ +.prose :is(h1, h2, h3, h4) { + font-family: var(--font-display); +} + +.font-display { + font-family: var(--font-display); + letter-spacing: -0.01em; } html { @@ -22,3 +76,57 @@ html > body[data-scroll-locked] { --removed-body-scroll-bar-size: 0px !important; margin-right: 0px !important; } + +/* Home hero: staggered rise on load, gentle float and ember glow after. */ +@keyframes cf-rise { + from { + opacity: 0; + transform: translateY(14px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes cf-float { + 0%, + 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-7px); + } +} + +@keyframes cf-glow { + 0%, + 100% { + opacity: 0.55; + transform: scale(1); + } + 50% { + opacity: 0.85; + transform: scale(1.08); + } +} + +.cf-rise { + animation: cf-rise 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; +} + +.cf-float { + animation: cf-float 6s ease-in-out infinite; +} + +.cf-glow { + animation: cf-glow 5s ease-in-out infinite; +} + +@media (prefers-reduced-motion: reduce) { + .cf-rise, + .cf-float, + .cf-glow { + animation: none; + } +} diff --git a/apps/docs/app/icon.png b/apps/docs/app/icon.png new file mode 100644 index 0000000..48e4e19 Binary files /dev/null and b/apps/docs/app/icon.png differ diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx index 9526720..28818b7 100644 --- a/apps/docs/app/layout.tsx +++ b/apps/docs/app/layout.tsx @@ -1,15 +1,37 @@ import { RootProvider } from "fumadocs-ui/provider/next"; +import type { Metadata } from "next"; import "./global.css"; -import { Inter } from "next/font/google"; +import { Fraunces, Karla } from "next/font/google"; -const inter = Inter({ +const karla = Karla({ subsets: ["latin"], + variable: "--font-karla", }); +const fraunces = Fraunces({ + subsets: ["latin"], + variable: "--font-fraunces", + axes: ["opsz", "SOFT", "WONK"], +}); + +export const metadata: Metadata = { + metadataBase: new URL("https://campfire-deck.vercel.app"), + title: { + default: "Campfire — filesystem-native presentations", + template: "%s | Campfire", + }, + description: + "Write slides in MDX, shape the story with React layouts, and present from a live local shell.", +}; + export default function Layout({ children }: LayoutProps<"/">) { return ( - - + + {children} diff --git a/apps/docs/app/og/docs/[...slug]/route.tsx b/apps/docs/app/og/docs/[...slug]/route.tsx index faf158c..a1f1d27 100644 --- a/apps/docs/app/og/docs/[...slug]/route.tsx +++ b/apps/docs/app/og/docs/[...slug]/route.tsx @@ -1,11 +1,28 @@ -import { generate as DefaultImage } from "fumadocs-ui/og"; +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import { ImageResponse } from "@takumi-rs/image-response"; import { notFound } from "next/navigation"; -import { ImageResponse } from "next/og"; import { appName } from "@/lib/shared"; import { getPageImage, source } from "@/lib/source"; export const revalidate = false; +const logo = `data:image/png;base64,${readFileSync( + join(process.cwd(), "public/logo.png") +).toString("base64")}`; + +const fraunces = readFileSync( + join(process.cwd(), "lib/og/fraunces-semibold.ttf") +); + +const karla = readFileSync(join(process.cwd(), "lib/og/karla-regular.ttf")); + +// Campfire palette, mirroring the docs theme in global.css. +const PARCHMENT = "#f8f3ea"; +const ESPRESSO = "#42301f"; +const ESPRESSO_MUTED = "#84715a"; +const EMBER = "#d65420"; + export async function GET( _req: Request, { params }: RouteContext<"/og/docs/[...slug]"> @@ -17,21 +34,67 @@ export async function GET( } return new ImageResponse( - , +
+
+ {/* biome-ignore lint/performance/noImgElement: JSX rendered to a PNG by Takumi, not served to a browser. */} + + + {appName} + +
+
+ + {page.data.title} + + {page.data.description ? ( + + {page.data.description} + + ) : null} +
+
+
+
+ + campfire-deck.vercel.app + +
+ + docs + +
+
, { width: 1200, height: 630, + fonts: [ + { name: "Fraunces", data: fraunces }, + { name: "Karla", data: karla }, + ], } ); } export function generateStaticParams() { return source.getPages().map((page) => ({ - lang: page.locale, slug: getPageImage(page).segments, })); } diff --git a/apps/docs/components/registry/slide-frame.tsx b/apps/docs/components/registry/slide-frame.tsx index b381e4b..49d080c 100644 --- a/apps/docs/components/registry/slide-frame.tsx +++ b/apps/docs/components/registry/slide-frame.tsx @@ -5,6 +5,20 @@ import { type ReactNode, useEffect, useRef, useState } from "react"; const CANVAS_WIDTH = 1280; const CANVAS_HEIGHT = 720; +// Default campfire theme, matching the init template. Previews keep the +// slide's own (light) theme and typography regardless of the docs color +// scheme and brand fonts. +const SLIDE_FONT = "ui-sans-serif, system-ui, sans-serif"; + +const SLIDE_THEME = { + "--color-background": "oklch(1 0 0)", + "--color-foreground": "oklch(0.15 0 0)", + "--color-primary": "oklch(0.55 0.2 260)", + "--color-muted": "oklch(0.55 0.02 260)", + "--font-sans": SLIDE_FONT, + "--font-display": SLIDE_FONT, +} as React.CSSProperties; + /** * Renders registry items on the same fixed 1280x720 logical canvas the * campfire shell uses, scaled down to fit the docs column. Items can rely @@ -33,6 +47,7 @@ export function SlideFrame({ children }: { children: ReactNode }) {
diff --git a/apps/docs/content/docs/registry/callout.mdx b/apps/docs/content/docs/registry/callout.mdx index e3b1aee..ef9268a 100644 --- a/apps/docs/content/docs/registry/callout.mdx +++ b/apps/docs/content/docs/registry/callout.mdx @@ -26,7 +26,7 @@ camp add callout Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/callout.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/callout.json ``` diff --git a/apps/docs/content/docs/registry/closing.mdx b/apps/docs/content/docs/registry/closing.mdx index a00430f..71c7696 100644 --- a/apps/docs/content/docs/registry/closing.mdx +++ b/apps/docs/content/docs/registry/closing.mdx @@ -29,7 +29,7 @@ camp add closing Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/closing.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/closing.json ``` diff --git a/apps/docs/content/docs/registry/index.mdx b/apps/docs/content/docs/registry/index.mdx index 740369a..6ad79ae 100644 --- a/apps/docs/content/docs/registry/index.mdx +++ b/apps/docs/content/docs/registry/index.mdx @@ -28,7 +28,7 @@ Bare names resolve to this site: `/r/.json`. Anything shadcn-compatible works too: ```bash -bunx shadcn@latest add https://campfire.dev/r/metric-card.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/metric-card.json ``` ## Components diff --git a/apps/docs/content/docs/registry/logo-cloud.mdx b/apps/docs/content/docs/registry/logo-cloud.mdx index 3fd5508..653e16a 100644 --- a/apps/docs/content/docs/registry/logo-cloud.mdx +++ b/apps/docs/content/docs/registry/logo-cloud.mdx @@ -28,7 +28,7 @@ camp add logo-cloud Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/logo-cloud.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/logo-cloud.json ``` diff --git a/apps/docs/content/docs/registry/metric-card.mdx b/apps/docs/content/docs/registry/metric-card.mdx index 2bdf471..a4e6599 100644 --- a/apps/docs/content/docs/registry/metric-card.mdx +++ b/apps/docs/content/docs/registry/metric-card.mdx @@ -25,7 +25,7 @@ camp add metric-card Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/metric-card.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/metric-card.json ``` diff --git a/apps/docs/content/docs/registry/problem-solution.mdx b/apps/docs/content/docs/registry/problem-solution.mdx index 9f8b8f1..ec5058a 100644 --- a/apps/docs/content/docs/registry/problem-solution.mdx +++ b/apps/docs/content/docs/registry/problem-solution.mdx @@ -39,7 +39,7 @@ camp add problem-solution Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/problem-solution.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/problem-solution.json ``` diff --git a/apps/docs/content/docs/registry/quote-card.mdx b/apps/docs/content/docs/registry/quote-card.mdx index c82cfe7..20339ce 100644 --- a/apps/docs/content/docs/registry/quote-card.mdx +++ b/apps/docs/content/docs/registry/quote-card.mdx @@ -28,7 +28,7 @@ camp add quote-card Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/quote-card.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/quote-card.json ``` diff --git a/apps/docs/content/docs/registry/section.mdx b/apps/docs/content/docs/registry/section.mdx index 6b888b3..156ee03 100644 --- a/apps/docs/content/docs/registry/section.mdx +++ b/apps/docs/content/docs/registry/section.mdx @@ -29,7 +29,7 @@ camp add section Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/section.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/section.json ``` diff --git a/apps/docs/content/docs/registry/split.mdx b/apps/docs/content/docs/registry/split.mdx index c240a9b..1e2f237 100644 --- a/apps/docs/content/docs/registry/split.mdx +++ b/apps/docs/content/docs/registry/split.mdx @@ -37,7 +37,7 @@ camp add split Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/split.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/split.json ``` diff --git a/apps/docs/content/docs/registry/statement.mdx b/apps/docs/content/docs/registry/statement.mdx index 784325e..a41a652 100644 --- a/apps/docs/content/docs/registry/statement.mdx +++ b/apps/docs/content/docs/registry/statement.mdx @@ -29,7 +29,7 @@ camp add statement Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/statement.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/statement.json ``` diff --git a/apps/docs/content/docs/registry/step.mdx b/apps/docs/content/docs/registry/step.mdx index 056ad70..6b75205 100644 --- a/apps/docs/content/docs/registry/step.mdx +++ b/apps/docs/content/docs/registry/step.mdx @@ -34,7 +34,7 @@ camp add step Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/step.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/step.json ``` diff --git a/apps/docs/content/docs/registry/team-member.mdx b/apps/docs/content/docs/registry/team-member.mdx index 6c3e3cd..0cf1fe9 100644 --- a/apps/docs/content/docs/registry/team-member.mdx +++ b/apps/docs/content/docs/registry/team-member.mdx @@ -26,7 +26,7 @@ camp add team-member Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/team-member.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/team-member.json ``` diff --git a/apps/docs/content/docs/registry/timeline.mdx b/apps/docs/content/docs/registry/timeline.mdx index 3c5a8ff..f1e94d1 100644 --- a/apps/docs/content/docs/registry/timeline.mdx +++ b/apps/docs/content/docs/registry/timeline.mdx @@ -39,7 +39,7 @@ camp add timeline Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/timeline.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/timeline.json ``` diff --git a/apps/docs/content/docs/registry/title.mdx b/apps/docs/content/docs/registry/title.mdx index 1ef4ad3..306f814 100644 --- a/apps/docs/content/docs/registry/title.mdx +++ b/apps/docs/content/docs/registry/title.mdx @@ -30,7 +30,7 @@ camp add title Or with any shadcn-compatible CLI: ```bash -bunx shadcn@latest add https://campfire.dev/r/title.json +bunx shadcn@latest add https://campfire-deck.vercel.app/r/title.json ``` diff --git a/apps/docs/lib/layout.shared.tsx b/apps/docs/lib/layout.shared.tsx index ff20abd..4279a75 100644 --- a/apps/docs/lib/layout.shared.tsx +++ b/apps/docs/lib/layout.shared.tsx @@ -1,11 +1,18 @@ import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared"; +import Image from "next/image"; import { appName, gitConfig } from "./shared"; export function baseOptions(): BaseLayoutProps { return { nav: { - // JSX supported - title: appName, + title: ( + <> + + + {appName} + + + ), }, githubUrl: `https://github.com/${gitConfig.user}/${gitConfig.repo}`, }; diff --git a/apps/docs/lib/og/fraunces-semibold.ttf b/apps/docs/lib/og/fraunces-semibold.ttf new file mode 100644 index 0000000..acd422a Binary files /dev/null and b/apps/docs/lib/og/fraunces-semibold.ttf differ diff --git a/apps/docs/lib/og/karla-regular.ttf b/apps/docs/lib/og/karla-regular.ttf new file mode 100644 index 0000000..9cc51fe Binary files /dev/null and b/apps/docs/lib/og/karla-regular.ttf differ diff --git a/apps/docs/lib/shared.ts b/apps/docs/lib/shared.ts index 10dd435..478c814 100644 --- a/apps/docs/lib/shared.ts +++ b/apps/docs/lib/shared.ts @@ -4,7 +4,7 @@ export const docsImageRoute = "/og/docs"; export const docsContentRoute = "/llms.mdx/docs"; export const gitConfig = { - user: "arkemis", + user: "ilyichv", repo: "campfire", branch: "main", }; diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 3c65f91..6a60817 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -6,6 +6,7 @@ const withMDX = createMDX(); const config = { reactStrictMode: true, transpilePackages: ["@campfire/registry"], + serverExternalPackages: ["@takumi-rs/image-response"], }; export default withMDX(config); diff --git a/apps/docs/package.json b/apps/docs/package.json index 3e50219..8461313 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@campfire/registry": "workspace:*", + "@takumi-rs/image-response": "^1.8.3", "clsx": "^2.1.1", "fumadocs-core": "16.9.3", "fumadocs-mdx": "15.0.11", diff --git a/apps/docs/public/logo.png b/apps/docs/public/logo.png new file mode 100644 index 0000000..21e8337 Binary files /dev/null and b/apps/docs/public/logo.png differ diff --git a/apps/docs/public/r/agenda.json b/apps/docs/public/r/agenda.json index 51f55b1..d4b0f53 100644 --- a/apps/docs/public/r/agenda.json +++ b/apps/docs/public/r/agenda.json @@ -3,7 +3,9 @@ "name": "agenda", "title": "Agenda", "description": "What the talk covers: a layout plus the AgendaItem row.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/agenda.tsx", @@ -19,4 +21,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/callout.json b/apps/docs/public/r/callout.json index 903de3b..42c8ae0 100644 --- a/apps/docs/public/r/callout.json +++ b/apps/docs/public/r/callout.json @@ -3,7 +3,9 @@ "name": "callout", "title": "Callout", "description": "An emphasized aside with tone variants.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/callout.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/closing.json b/apps/docs/public/r/closing.json index d4b8b16..0895525 100644 --- a/apps/docs/public/r/closing.json +++ b/apps/docs/public/r/closing.json @@ -3,7 +3,9 @@ "name": "closing", "title": "Closing Layout", "description": "Centered thank-you slide.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/closing.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/logo-cloud.json b/apps/docs/public/r/logo-cloud.json index 74feaf2..3ed9f5f 100644 --- a/apps/docs/public/r/logo-cloud.json +++ b/apps/docs/public/r/logo-cloud.json @@ -3,7 +3,9 @@ "name": "logo-cloud", "title": "Logo Cloud", "description": "A centered, muted row of logos.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/logo-cloud.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/metric-card.json b/apps/docs/public/r/metric-card.json index a724803..109c404 100644 --- a/apps/docs/public/r/metric-card.json +++ b/apps/docs/public/r/metric-card.json @@ -3,7 +3,9 @@ "name": "metric-card", "title": "Metric Card", "description": "A headline number with label and optional delta.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/metric-card.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/problem-solution.json b/apps/docs/public/r/problem-solution.json index 02a90e5..54cde8e 100644 --- a/apps/docs/public/r/problem-solution.json +++ b/apps/docs/public/r/problem-solution.json @@ -3,7 +3,9 @@ "name": "problem-solution", "title": "Problem / Solution", "description": "Two-panel narrative layout with Problem and Solution components.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/problem-solution.tsx", @@ -25,4 +27,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/quote-card.json b/apps/docs/public/r/quote-card.json index 5a925f2..e6af070 100644 --- a/apps/docs/public/r/quote-card.json +++ b/apps/docs/public/r/quote-card.json @@ -3,7 +3,9 @@ "name": "quote-card", "title": "Quote Card", "description": "A large quotation with attribution.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/quote-card.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/registry.json b/apps/docs/public/r/registry.json index 6e38b04..c0d4458 100644 --- a/apps/docs/public/r/registry.json +++ b/apps/docs/public/r/registry.json @@ -1,7 +1,7 @@ { "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "campfire", - "homepage": "https://campfire.dev", + "homepage": "https://campfire-deck.vercel.app", "items": [ { "name": "utils", @@ -22,7 +22,7 @@ "type": "registry:component", "title": "Metric Card", "description": "A headline number with label and optional delta.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/metric-card.tsx", @@ -36,7 +36,7 @@ "type": "registry:component", "title": "Logo Cloud", "description": "A centered, muted row of logos.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/logo-cloud.tsx", @@ -50,7 +50,7 @@ "type": "registry:component", "title": "Callout", "description": "An emphasized aside with tone variants.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/callout.tsx", @@ -64,7 +64,7 @@ "type": "registry:component", "title": "Quote Card", "description": "A large quotation with attribution.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/quote-card.tsx", @@ -78,7 +78,7 @@ "type": "registry:component", "title": "Step", "description": "A numbered step with heading and detail.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/step.tsx", @@ -92,7 +92,7 @@ "type": "registry:component", "title": "Timeline", "description": "A horizontal sequence of milestones for roadmap slides.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/timeline.tsx", @@ -111,7 +111,7 @@ "type": "registry:component", "title": "Team Member", "description": "A person card for team slides: photo or initials, name, role.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/team-member.tsx", @@ -125,7 +125,7 @@ "type": "registry:block", "title": "Title Layout", "description": "Opening slide: oversized title with supporting copy.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/title.tsx", @@ -139,7 +139,7 @@ "type": "registry:block", "title": "Agenda", "description": "What the talk covers: a layout plus the AgendaItem row.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/agenda.tsx", @@ -158,7 +158,7 @@ "type": "registry:block", "title": "Section Layout", "description": "A full-bleed divider slide on the primary color.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/section.tsx", @@ -172,7 +172,7 @@ "type": "registry:block", "title": "Split Layout", "description": "The two-column workhorse: children flow into equal panels.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/split.tsx", @@ -186,7 +186,7 @@ "type": "registry:block", "title": "Statement Layout", "description": "One big takeaway, centered. Also the home for a QuoteCard.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/statement.tsx", @@ -200,7 +200,7 @@ "type": "registry:block", "title": "Problem / Solution", "description": "Two-panel narrative layout with Problem and Solution components.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/problem-solution.tsx", @@ -224,7 +224,7 @@ "type": "registry:block", "title": "Closing Layout", "description": "Centered thank-you slide.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/closing.tsx", diff --git a/apps/docs/public/r/section.json b/apps/docs/public/r/section.json index a822a74..098584e 100644 --- a/apps/docs/public/r/section.json +++ b/apps/docs/public/r/section.json @@ -3,7 +3,9 @@ "name": "section", "title": "Section Layout", "description": "A full-bleed divider slide on the primary color.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/section.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/split.json b/apps/docs/public/r/split.json index ffd1132..aa25606 100644 --- a/apps/docs/public/r/split.json +++ b/apps/docs/public/r/split.json @@ -3,7 +3,9 @@ "name": "split", "title": "Split Layout", "description": "The two-column workhorse: children flow into equal panels.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/split.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/statement.json b/apps/docs/public/r/statement.json index 2988fe6..d0e13d4 100644 --- a/apps/docs/public/r/statement.json +++ b/apps/docs/public/r/statement.json @@ -3,7 +3,9 @@ "name": "statement", "title": "Statement Layout", "description": "One big takeaway, centered. Also the home for a QuoteCard.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/statement.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/step.json b/apps/docs/public/r/step.json index 2a1f07f..c2b2f25 100644 --- a/apps/docs/public/r/step.json +++ b/apps/docs/public/r/step.json @@ -3,7 +3,9 @@ "name": "step", "title": "Step", "description": "A numbered step with heading and detail.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/step.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/team-member.json b/apps/docs/public/r/team-member.json index d7de63e..f73bf9c 100644 --- a/apps/docs/public/r/team-member.json +++ b/apps/docs/public/r/team-member.json @@ -3,7 +3,9 @@ "name": "team-member", "title": "Team Member", "description": "A person card for team slides: photo or initials, name, role.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/team-member.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/timeline.json b/apps/docs/public/r/timeline.json index c25d8a2..8a2aead 100644 --- a/apps/docs/public/r/timeline.json +++ b/apps/docs/public/r/timeline.json @@ -3,7 +3,9 @@ "name": "timeline", "title": "Timeline", "description": "A horizontal sequence of milestones for roadmap slides.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/timeline.tsx", @@ -19,4 +21,4 @@ } ], "type": "registry:component" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/title.json b/apps/docs/public/r/title.json index b1e7cec..2857bd8 100644 --- a/apps/docs/public/r/title.json +++ b/apps/docs/public/r/title.json @@ -3,7 +3,9 @@ "name": "title", "title": "Title Layout", "description": "Opening slide: oversized title with supporting copy.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": [ + "https://campfire-deck.vercel.app/r/utils.json" + ], "files": [ { "path": "items/title.tsx", @@ -13,4 +15,4 @@ } ], "type": "registry:block" -} +} \ No newline at end of file diff --git a/apps/docs/public/r/utils.json b/apps/docs/public/r/utils.json index c495a9e..624e7c8 100644 --- a/apps/docs/public/r/utils.json +++ b/apps/docs/public/r/utils.json @@ -3,7 +3,10 @@ "name": "utils", "title": "Utils", "description": "The cn class-merging helper (clsx + tailwind-merge) every item builds on.", - "dependencies": ["clsx", "tailwind-merge"], + "dependencies": [ + "clsx", + "tailwind-merge" + ], "files": [ { "path": "items/utils.ts", @@ -13,4 +16,4 @@ } ], "type": "registry:lib" -} +} \ No newline at end of file diff --git a/apps/docs/vercel.json b/apps/docs/vercel.json new file mode 100644 index 0000000..77b2b44 --- /dev/null +++ b/apps/docs/vercel.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://openapi.vercel.sh/vercel.json", + "buildCommand": "cd ../.. && bunx turbo run build --filter=docs", + "ignoreCommand": "npx turbo-ignore" +} diff --git a/biome.jsonc b/biome.jsonc index 6e486ca..e1e8375 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -14,6 +14,13 @@ } }, "overrides": [ + { + // Generated by `shadcn build` (registry:build); keep upstream formatting. + "includes": ["apps/docs/public/r/**"], + "formatter": { "enabled": false }, + "linter": { "enabled": false }, + "assist": { "enabled": false } + }, { // Files generated by create-fumadocs-app keep upstream idioms. "includes": ["apps/docs/**"], diff --git a/bun.lock b/bun.lock index b29b261..7eb14ba 100644 --- a/bun.lock +++ b/bun.lock @@ -6,6 +6,8 @@ "name": "campfire", "devDependencies": { "@biomejs/biome": "2.4.16", + "@changesets/changelog-github": "^0.7.0", + "@changesets/cli": "^2.31.0", "@types/node": "^25.9.2", "turbo": "^2.9.17", "typescript": "^6.0.3", @@ -17,6 +19,7 @@ "version": "0.0.0", "dependencies": { "@campfire/registry": "workspace:*", + "@takumi-rs/image-response": "^1.8.3", "clsx": "^2.1.1", "fumadocs-core": "16.9.3", "fumadocs-mdx": "15.0.11", @@ -190,6 +193,8 @@ "@babel/preset-typescript": ["@babel/preset-typescript@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "@babel/plugin-syntax-jsx": "^7.29.7", "@babel/plugin-transform-modules-commonjs": "^7.29.7", "@babel/plugin-transform-typescript": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ=="], + "@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="], + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], @@ -224,6 +229,44 @@ "@campfire/typescript-config": ["@campfire/typescript-config@workspace:packages/typescript-config"], + "@changesets/apply-release-plan": ["@changesets/apply-release-plan@7.1.1", "", { "dependencies": { "@changesets/config": "^3.1.4", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.4", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", "lodash.startcase": "^4.4.0", "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" } }, "sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA=="], + + "@changesets/assemble-release-plan": ["@changesets/assemble-release-plan@6.0.10", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.4", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "semver": "^7.5.3" } }, "sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A=="], + + "@changesets/changelog-git": ["@changesets/changelog-git@0.2.1", "", { "dependencies": { "@changesets/types": "^6.1.0" } }, "sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q=="], + + "@changesets/changelog-github": ["@changesets/changelog-github@0.7.0", "", { "dependencies": { "@changesets/get-github-info": "^0.8.0", "@changesets/types": "^6.1.0", "dotenv": "^8.1.0" } }, "sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA=="], + + "@changesets/cli": ["@changesets/cli@2.31.0", "", { "dependencies": { "@changesets/apply-release-plan": "^7.1.1", "@changesets/assemble-release-plan": "^6.0.10", "@changesets/changelog-git": "^0.2.1", "@changesets/config": "^3.1.4", "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.4", "@changesets/get-release-plan": "^4.0.16", "@changesets/git": "^3.0.4", "@changesets/logger": "^0.1.1", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.7", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@changesets/write": "^0.4.0", "@inquirer/external-editor": "^1.0.2", "@manypkg/get-packages": "^1.1.3", "ansi-colors": "^4.1.3", "enquirer": "^2.4.1", "fs-extra": "^7.0.1", "mri": "^1.2.0", "package-manager-detector": "^0.2.0", "picocolors": "^1.1.0", "resolve-from": "^5.0.0", "semver": "^7.5.3", "spawndamnit": "^3.0.1", "term-size": "^2.1.0" }, "bin": { "changeset": "bin.js" } }, "sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg=="], + + "@changesets/config": ["@changesets/config@3.1.4", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.4", "@changesets/logger": "^0.1.1", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1", "micromatch": "^4.0.8" } }, "sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q=="], + + "@changesets/errors": ["@changesets/errors@0.2.0", "", { "dependencies": { "extendable-error": "^0.1.5" } }, "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow=="], + + "@changesets/get-dependents-graph": ["@changesets/get-dependents-graph@2.1.4", "", { "dependencies": { "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "picocolors": "^1.1.0", "semver": "^7.5.3" } }, "sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg=="], + + "@changesets/get-github-info": ["@changesets/get-github-info@0.8.0", "", { "dependencies": { "dataloader": "^1.4.0", "node-fetch": "^2.5.0" } }, "sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ=="], + + "@changesets/get-release-plan": ["@changesets/get-release-plan@4.0.16", "", { "dependencies": { "@changesets/assemble-release-plan": "^6.0.10", "@changesets/config": "^3.1.4", "@changesets/pre": "^2.0.2", "@changesets/read": "^0.6.7", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g=="], + + "@changesets/get-version-range-type": ["@changesets/get-version-range-type@0.4.0", "", {}, "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ=="], + + "@changesets/git": ["@changesets/git@3.0.4", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@manypkg/get-packages": "^1.1.3", "is-subdir": "^1.1.1", "micromatch": "^4.0.8", "spawndamnit": "^3.0.1" } }, "sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw=="], + + "@changesets/logger": ["@changesets/logger@0.1.1", "", { "dependencies": { "picocolors": "^1.1.0" } }, "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg=="], + + "@changesets/parse": ["@changesets/parse@0.4.3", "", { "dependencies": { "@changesets/types": "^6.1.0", "js-yaml": "^4.1.1" } }, "sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A=="], + + "@changesets/pre": ["@changesets/pre@2.0.2", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "fs-extra": "^7.0.1" } }, "sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug=="], + + "@changesets/read": ["@changesets/read@0.6.7", "", { "dependencies": { "@changesets/git": "^3.0.4", "@changesets/logger": "^0.1.1", "@changesets/parse": "^0.4.3", "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "p-filter": "^2.1.0", "picocolors": "^1.1.0" } }, "sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA=="], + + "@changesets/should-skip-package": ["@changesets/should-skip-package@0.1.2", "", { "dependencies": { "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3" } }, "sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw=="], + + "@changesets/types": ["@changesets/types@6.1.0", "", {}, "sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA=="], + + "@changesets/write": ["@changesets/write@0.4.0", "", { "dependencies": { "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "human-id": "^4.1.1", "prettier": "^2.7.1" } }, "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q=="], + "@clack/core": ["@clack/core@1.4.1", "", { "dependencies": { "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw=="], "@clack/prompts": ["@clack/prompts@1.5.1", "", { "dependencies": { "@clack/core": "1.4.1", "fast-string-width": "^3.0.2", "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-zccHj2z2oCCO4yrDiRSlFOxWerGqRiysP7a5jPK6uoI9URKAquwY42Dd/iUP8JWHxEzdRe4TlbvZCo8z1/mhrw=="], @@ -358,6 +401,8 @@ "@inquirer/core": ["@inquirer/core@11.2.1", "", { "dependencies": { "@inquirer/ansi": "^2.0.7", "@inquirer/figures": "^2.0.7", "@inquirer/type": "^4.0.7", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", "signal-exit": "^4.1.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA=="], + "@inquirer/external-editor": ["@inquirer/external-editor@1.0.3", "", { "dependencies": { "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA=="], + "@inquirer/figures": ["@inquirer/figures@2.0.7", "", {}, "sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw=="], "@inquirer/type": ["@inquirer/type@4.0.7", "", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g=="], @@ -372,6 +417,10 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@manypkg/find-root": ["@manypkg/find-root@1.1.0", "", { "dependencies": { "@babel/runtime": "^7.5.5", "@types/node": "^12.7.1", "find-up": "^4.1.0", "fs-extra": "^8.1.0" } }, "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA=="], + + "@manypkg/get-packages": ["@manypkg/get-packages@1.1.3", "", { "dependencies": { "@babel/runtime": "^7.5.5", "@changesets/types": "^4.0.1", "@manypkg/find-root": "^1.1.0", "fs-extra": "^8.1.0", "globby": "^11.0.0", "read-yaml-file": "^1.1.0" } }, "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A=="], + "@mdx-js/mdx": ["@mdx-js/mdx@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ=="], "@mdx-js/rollup": ["@mdx-js/rollup@3.1.1", "", { "dependencies": { "@mdx-js/mdx": "^3.0.0", "@rollup/pluginutils": "^5.0.0", "source-map": "^0.7.0", "vfile": "^6.0.0" }, "peerDependencies": { "rollup": ">=2" } }, "sha512-v8satFmBB+DqDzYohnm1u2JOvxx6Hl3pUvqzJvfs2Zk/ngZ1aRUhsWpXvwPkNeGN9c2NCm/38H29ZqXQUjf8dw=="], @@ -632,6 +681,30 @@ "@tailwindcss/vite": ["@tailwindcss/vite@4.3.0", "", { "dependencies": { "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "tailwindcss": "4.3.0" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw=="], + "@takumi-rs/core": ["@takumi-rs/core@1.8.3", "", { "dependencies": { "@takumi-rs/helpers": "1.8.3" }, "optionalDependencies": { "@takumi-rs/core-darwin-arm64": "1.8.3", "@takumi-rs/core-darwin-x64": "1.8.3", "@takumi-rs/core-linux-arm64-gnu": "1.8.3", "@takumi-rs/core-linux-arm64-musl": "1.8.3", "@takumi-rs/core-linux-x64-gnu": "1.8.3", "@takumi-rs/core-linux-x64-musl": "1.8.3", "@takumi-rs/core-win32-arm64-msvc": "1.8.3", "@takumi-rs/core-win32-x64-msvc": "1.8.3" } }, "sha512-lcfm05AFqLBjyUzGwGMn5d81OZnaYrytzL7geisHjOcUjyF5sy/NyoJqoRG6tYiUY9LfBncn74zjlXxZXZ08bA=="], + + "@takumi-rs/core-darwin-arm64": ["@takumi-rs/core-darwin-arm64@1.8.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-QHmfsKfax0SgAepwDoe2YN7GlqRQXH/2ZyOaEjVRLh83Edx1caYx6NIljgil3PiEFkByA/bUy1iyfvllinKOcQ=="], + + "@takumi-rs/core-darwin-x64": ["@takumi-rs/core-darwin-x64@1.8.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-nF2idGWA2EWEVBj+4b8BW26GHHe1mR8VTMrgKNZjJRO0UolkUQv/hoBmIe68jlNooMaAz136yWmB21X/4sX7Lw=="], + + "@takumi-rs/core-linux-arm64-gnu": ["@takumi-rs/core-linux-arm64-gnu@1.8.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-ygFFRttRpOWmN77I5T4URm5os8zzsMDSSvIz5i3f3TzRuDsSImIbpi9Hmi25OYuW0Ym8iD7ehSOKL8sw4oQjdg=="], + + "@takumi-rs/core-linux-arm64-musl": ["@takumi-rs/core-linux-arm64-musl@1.8.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-SjGaSPiVPTF2F0NUUs3o2eSSwwTKmA6kUpkQVe2k93eC5vvAh/iOqJBhMEcDLe+NQiy+NrFLNkGFD76ahb2rzw=="], + + "@takumi-rs/core-linux-x64-gnu": ["@takumi-rs/core-linux-x64-gnu@1.8.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Y3oobZlJco6dSzCZSIf3BR6xhJxW09eDU08die8dtBw0wogJxAQcjKSc6IyIRXKktf/h7lQVOmNKvLaJxNwftA=="], + + "@takumi-rs/core-linux-x64-musl": ["@takumi-rs/core-linux-x64-musl@1.8.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Z8oX/HPkPr/r5r0FkfpG4Zp2xP7fqCrJzM3Bt4mf6eDBmNMvB8K/nISHba5lomqWKXc3f7vwKcpLqZ99eIgE5g=="], + + "@takumi-rs/core-win32-arm64-msvc": ["@takumi-rs/core-win32-arm64-msvc@1.8.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-XM2Am/f+4QRvZVe8/d0thw6l0oLMOdCJL+qH+4NDmtEXur9OAsAEubi9zR6Y+1GlTb3tnupwXr31TVUHjf4XVg=="], + + "@takumi-rs/core-win32-x64-msvc": ["@takumi-rs/core-win32-x64-msvc@1.8.3", "", { "os": "win32", "cpu": "x64" }, "sha512-wdZPlXkwBgndtzU5XxT0p1mh7eqk+M8qNW2Sb7CDHPk6EtxKOkvfMgpgedvJ8uBU3pvxqsmy/XnPs449Ng/0bw=="], + + "@takumi-rs/helpers": ["@takumi-rs/helpers@1.8.3", "", { "peerDependencies": { "react": "^19.2.5", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["react", "react-dom"] }, "sha512-5sCtm6rDqxcQPGNYI6mgkiuEvUudH1JmE9a75Gkn67eScWEbxltIP1I4S2Dfw4l0Kb+wr0XJ75deBgy5wU731g=="], + + "@takumi-rs/image-response": ["@takumi-rs/image-response@1.8.3", "", { "dependencies": { "takumi-js": "1.8.3" } }, "sha512-FbOgXpfh5L7f64AVYpJHSfDZKD8irAeG3tWA8xAoETbLUsFmQ7lm7nPK0zqo0pqAsofyR9Ea7ZodLFidvUWf3A=="], + + "@takumi-rs/wasm": ["@takumi-rs/wasm@1.8.3", "", { "dependencies": { "@takumi-rs/helpers": "1.8.3" } }, "sha512-Z4X88alANpbHlAl+IeBH0cv2DeJ6PtOviCV/eZjrcwen5cVi297xgbH4ATd9YDuGGNf6QmVcJJv9QzR6QnJgBg=="], + "@ts-morph/common": ["@ts-morph/common@0.27.0", "", { "dependencies": { "fast-glob": "^3.3.3", "minimatch": "^10.0.1", "path-browserify": "^1.0.1" } }, "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ=="], "@turbo/darwin-64": ["@turbo/darwin-64@2.9.17", "", { "os": "darwin", "cpu": "x64" }, "sha512-io5jn5RDeU+9YV78rWhwG++HD/OZ/Lxg1sg93+jDGKQNP3UDxY6RX2dmarbCILhNxNuAM8FH3WgGMY9E96Mf8w=="], @@ -698,7 +771,7 @@ "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], - "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], @@ -708,6 +781,8 @@ "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], + "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], + "ast-kit": ["ast-kit@3.0.0-beta.1", "", { "dependencies": { "@babel/parser": "^8.0.0-beta.4", "estree-walker": "^3.0.3", "pathe": "^2.0.3" } }, "sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw=="], "ast-types": ["ast-types@0.16.1", "", { "dependencies": { "tslib": "^2.0.1" } }, "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg=="], @@ -720,6 +795,8 @@ "baseline-browser-mapping": ["baseline-browser-mapping@2.10.35", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg=="], + "better-path-resolve": ["better-path-resolve@1.0.0", "", { "dependencies": { "is-windows": "^1.0.0" } }, "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g=="], + "birpc": ["birpc@4.0.0", "", {}, "sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw=="], "body-parser": ["body-parser@2.2.2", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.3", "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", "qs": "^6.14.1", "raw-body": "^3.0.1", "type-is": "^2.0.1" } }, "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="], @@ -758,6 +835,8 @@ "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + "chardet": ["chardet@2.1.1", "", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="], + "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], "citty": ["citty@0.2.2", "", {}, "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w=="], @@ -812,6 +891,8 @@ "data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="], + "dataloader": ["dataloader@1.4.0", "", {}, "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], @@ -832,6 +913,8 @@ "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + "detect-indent": ["detect-indent@6.1.0", "", {}, "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], @@ -840,9 +923,11 @@ "diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="], + "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], + "docs": ["docs@workspace:apps/docs"], - "dotenv": ["dotenv@17.4.2", "", {}, "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw=="], + "dotenv": ["dotenv@8.6.0", "", {}, "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="], "dts-resolver": ["dts-resolver@3.0.0", "", { "peerDependencies": { "oxc-resolver": ">=11.0.0" }, "optionalPeers": ["oxc-resolver"] }, "sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q=="], @@ -924,6 +1009,8 @@ "extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="], + "extendable-error": ["extendable-error@0.1.7", "", {}, "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], @@ -950,6 +1037,8 @@ "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], + "find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + "format": ["format@0.2.2", "", {}, "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="], "formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="], @@ -960,7 +1049,7 @@ "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], - "fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], + "fs-extra": ["fs-extra@7.0.1", "", { "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], @@ -1000,6 +1089,8 @@ "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="], + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], @@ -1042,6 +1133,8 @@ "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "human-id": ["human-id@4.2.0", "", { "bin": { "human-id": "dist/cli.js" } }, "sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA=="], + "human-signals": ["human-signals@8.0.1", "", {}, "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ=="], "iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], @@ -1100,8 +1193,12 @@ "is-stream": ["is-stream@4.0.1", "", {}, "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A=="], + "is-subdir": ["is-subdir@1.2.0", "", { "dependencies": { "better-path-resolve": "1.0.0" } }, "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw=="], + "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], + "is-windows": ["is-windows@1.0.2", "", {}, "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="], + "is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], @@ -1126,7 +1223,7 @@ "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], - "jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="], + "jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], @@ -1158,6 +1255,10 @@ "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + "locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + + "lodash.startcase": ["lodash.startcase@4.4.0", "", {}, "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="], + "log-symbols": ["log-symbols@6.0.0", "", { "dependencies": { "chalk": "^5.3.0", "is-unicode-supported": "^1.3.0" } }, "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], @@ -1310,6 +1411,8 @@ "motion-utils": ["motion-utils@12.39.0", "", {}, "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ=="], + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], "msw": ["msw@2.14.6", "", { "dependencies": { "@inquirer/confirm": "^6.0.11", "@mswjs/interceptors": "^0.41.3", "@open-draft/deferred-promise": "^3.0.0", "@types/statuses": "^2.0.6", "cookie": "^1.1.1", "graphql": "^16.13.2", "headers-polyfill": "^5.0.1", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "path-to-regexp": "^6.3.0", "picocolors": "^1.1.1", "rettime": "^0.11.11", "statuses": "^2.0.2", "strict-event-emitter": "^0.5.1", "tough-cookie": "^6.0.1", "type-fest": "^5.5.0", "until-async": "^3.0.2", "yargs": "^17.7.2" }, "peerDependencies": { "typescript": ">= 4.8.x" }, "optionalPeers": ["typescript"], "bin": { "msw": "cli/index.js" } }, "sha512-ALe+N10S72cyx94cMcy3Zs4HhXCj35sgeAL4c+WTvKi0zWnbd8/h0lcFqv0mb2P+aSgAdD7p9HzvA0DiUPxsyg=="], @@ -1356,9 +1459,21 @@ "ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="], + "outdent": ["outdent@0.5.0", "", {}, "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q=="], + "outvariant": ["outvariant@1.4.3", "", {}, "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA=="], - "package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + "p-filter": ["p-filter@2.1.0", "", { "dependencies": { "p-map": "^2.0.0" } }, "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw=="], + + "p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + + "p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + + "p-map": ["p-map@2.1.0", "", {}, "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="], + + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + + "package-manager-detector": ["package-manager-detector@0.2.11", "", { "dependencies": { "quansync": "^0.2.7" } }, "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ=="], "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], @@ -1374,18 +1489,24 @@ "path-browserify": ["path-browserify@1.0.1", "", {}, "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="], + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], "path-scurry": ["path-scurry@2.0.2", "", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg=="], "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], + "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], + "pify": ["pify@4.0.1", "", {}, "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="], + "pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="], "postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="], @@ -1394,6 +1515,8 @@ "powershell-utils": ["powershell-utils@0.1.0", "", {}, "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A=="], + "prettier": ["prettier@2.8.8", "", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + "pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="], "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], @@ -1404,7 +1527,7 @@ "qs": ["qs@6.15.2", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw=="], - "quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], @@ -1422,6 +1545,8 @@ "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], + "read-yaml-file": ["read-yaml-file@1.1.0", "", { "dependencies": { "graceful-fs": "^4.1.5", "js-yaml": "^3.6.1", "pify": "^4.0.1", "strip-bom": "^3.0.0" } }, "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA=="], + "readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], "recast": ["recast@0.23.11", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA=="], @@ -1462,7 +1587,7 @@ "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], @@ -1524,12 +1649,16 @@ "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "spawndamnit": ["spawndamnit@3.0.1", "", { "dependencies": { "cross-spawn": "^7.0.5", "signal-exit": "^4.0.1" } }, "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg=="], + "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], @@ -1544,7 +1673,7 @@ "stringify-object": ["stringify-object@5.0.0", "", { "dependencies": { "get-own-enumerable-keys": "^1.0.0", "is-obj": "^3.0.0", "is-regexp": "^3.1.0" } }, "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg=="], - "strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], @@ -1564,8 +1693,12 @@ "tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="], + "takumi-js": ["takumi-js@1.8.3", "", { "dependencies": { "@takumi-rs/core": "1.8.3", "@takumi-rs/helpers": "1.8.3", "@takumi-rs/wasm": "1.8.3" } }, "sha512-8LHqbdm8rop13lkO0nX7x4MrdigBsAZFC/wvAZEc+Yv+LL++G2F2k+L6ElVs1VNH3NMEQpMSuRMPXOvfmiFlVQ=="], + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + "term-size": ["term-size@2.2.1", "", {}, "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="], + "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], "tinyexec": ["tinyexec@1.2.4", "", {}, "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg=="], @@ -1582,6 +1715,8 @@ "tough-cookie": ["tough-cookie@6.0.1", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw=="], + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], @@ -1628,7 +1763,7 @@ "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], - "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], @@ -1658,6 +1793,10 @@ "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="], + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], @@ -1686,6 +1825,8 @@ "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "@antfu/ni/package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + "@babel/code-frame/@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], "@babel/core/@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], @@ -1708,14 +1849,30 @@ "@babel/types/@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + "@changesets/get-github-info/node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "@changesets/parse/js-yaml": ["js-yaml@4.2.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw=="], + "@dotenvx/dotenvx/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], + "@dotenvx/dotenvx/dotenv": ["dotenv@17.4.2", "", {}, "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw=="], + "@dotenvx/dotenvx/execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], "@dotenvx/dotenvx/which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], + "@manypkg/find-root/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="], + + "@manypkg/find-root/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], + + "@manypkg/get-packages/@changesets/types": ["@changesets/types@4.1.0", "", {}, "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw=="], + + "@manypkg/get-packages/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], + "@mswjs/interceptors/@open-draft/deferred-promise": ["@open-draft/deferred-promise@2.2.0", "", {}, "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA=="], + "@quansync/fs/quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], @@ -1734,18 +1891,16 @@ "cliui/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "cosmiconfig/js-yaml": ["js-yaml@4.2.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw=="], - "enquirer/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "express/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], "fumadocs-core/js-yaml": ["js-yaml@4.2.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw=="], "fumadocs-mdx/js-yaml": ["js-yaml@4.2.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw=="], + "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + "log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], @@ -1754,6 +1909,8 @@ "npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], + "ora/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], @@ -1768,20 +1925,26 @@ "shadcn/commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="], + "shadcn/fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], + "shadcn/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + "type-is/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], + "unconfig-core/quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + "vite/rolldown": ["rolldown@1.0.3", "", { "dependencies": { "@oxc-project/types": "=0.133.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.3", "@rolldown/binding-darwin-arm64": "1.0.3", "@rolldown/binding-darwin-x64": "1.0.3", "@rolldown/binding-freebsd-x64": "1.0.3", "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", "@rolldown/binding-linux-arm64-gnu": "1.0.3", "@rolldown/binding-linux-arm64-musl": "1.0.3", "@rolldown/binding-linux-ppc64-gnu": "1.0.3", "@rolldown/binding-linux-s390x-gnu": "1.0.3", "@rolldown/binding-linux-x64-gnu": "1.0.3", "@rolldown/binding-linux-x64-musl": "1.0.3", "@rolldown/binding-openharmony-arm64": "1.0.3", "@rolldown/binding-wasm32-wasi": "1.0.3", "@rolldown/binding-win32-arm64-msvc": "1.0.3", "@rolldown/binding-win32-x64-msvc": "1.0.3" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g=="], "wrap-ansi/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "@babel/generator/@babel/types/@babel/helper-string-parser": ["@babel/helper-string-parser@8.0.0-rc.6", "", {}, "sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g=="], + "@changesets/parse/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "@dotenvx/dotenvx/execa/get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], "@dotenvx/dotenvx/execa/human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], @@ -1800,18 +1963,22 @@ "cliui/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "cosmiconfig/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "enquirer/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "fumadocs-core/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "fumadocs-mdx/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "ora/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "rolldown-plugin-dts/@babel/parser/@babel/types": ["@babel/types@8.0.0-rc.6", "", { "dependencies": { "@babel/helper-string-parser": "^8.0.0-rc.6", "@babel/helper-validator-identifier": "^8.0.0-rc.6" } }, "sha512-p7/ABylAYlexb31wtRdIfH9L9A0Z2T/9H6zAqzqndkY2PLkvNNc580wGhp/gGKN4Sp9sQvSkhc6Oga8/O+wTyw=="], + "shadcn/fs-extra/jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="], + + "shadcn/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + + "string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "vite/rolldown/@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], "vite/rolldown/@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.3", "", { "os": "android", "cpu": "arm64" }, "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw=="], @@ -1846,16 +2013,10 @@ "wrap-ansi/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "yargs/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "ast-kit/@babel/parser/@babel/types/@babel/helper-string-parser": ["@babel/helper-string-parser@8.0.0-rc.6", "", {}, "sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g=="], "rolldown-plugin-dts/@babel/parser/@babel/types/@babel/helper-string-parser": ["@babel/helper-string-parser@8.0.0-rc.6", "", {}, "sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g=="], - - "yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], } } diff --git a/examples/basic/README.md b/examples/basic/README.md index 6a1f98a..0d316f7 100644 --- a/examples/basic/README.md +++ b/examples/basic/README.md @@ -1,6 +1,6 @@ # basic -A [Campfire](https://campfire.dev) presentation. +A [Campfire](https://campfire-deck.vercel.app) presentation. ```bash bun install diff --git a/package.json b/package.json index d1e6592..c2404bc 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,15 @@ { "devDependencies": { "@biomejs/biome": "2.4.16", + "@changesets/changelog-github": "^0.7.0", + "@changesets/cli": "^2.31.0", "@types/node": "^25.9.2", "turbo": "^2.9.17", "typescript": "^6.0.3", "ultracite": "7.8.2" }, "name": "campfire", + "license": "MIT", "scripts": { "build": "turbo run build", "dev": "turbo run dev", @@ -15,7 +18,10 @@ "test": "turbo run test", "check-types": "turbo run check-types", "registry:build": "turbo run registry:build", - "fix": "ultracite fix" + "fix": "ultracite fix", + "changeset": "changeset", + "version": "changeset version && bun install", + "release": "turbo run build --filter='./packages/*' && changeset publish" }, "workspaces": [ "apps/*", diff --git a/packages/app/LICENSE b/packages/app/LICENSE new file mode 100644 index 0000000..f0bc28b --- /dev/null +++ b/packages/app/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Ilyich Vismara + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/app/README.md b/packages/app/README.md new file mode 100644 index 0000000..9882a09 --- /dev/null +++ b/packages/app/README.md @@ -0,0 +1,14 @@ +# @campfire/app + +Campfire's browser shell and local runtime: Vite integration, virtual modules, +presentation modes, and PDF export. This is an internal package consumed by +[`@campfire/cli`](https://npmjs.com/package/@campfire/cli); install the CLI +unless you are embedding the Campfire shell directly. + +## Documentation + +https://campfire-deck.vercel.app + +## License + +[MIT](./LICENSE) diff --git a/packages/app/package.json b/packages/app/package.json index 7c96aba..ea1f0bd 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -2,6 +2,15 @@ "name": "@campfire/app", "version": "0.0.1", "description": "Campfire browser shell and local runtime: Vite integration, virtual modules, presentation modes", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/ilyichv/campfire.git", + "directory": "packages/app" + }, + "publishConfig": { + "access": "public" + }, "type": "module", "exports": { ".": { @@ -15,8 +24,7 @@ ], "scripts": { "build": "tsdown", - "check-types": "tsc --noEmit", - "test": "bun test" + "check-types": "tsc --noEmit" }, "peerDependencies": { "playwright-chromium": ">=1.49.0" diff --git a/packages/cli/LICENSE b/packages/cli/LICENSE new file mode 100644 index 0000000..f0bc28b --- /dev/null +++ b/packages/cli/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Ilyich Vismara + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/cli/README.md b/packages/cli/README.md new file mode 100644 index 0000000..1438f95 --- /dev/null +++ b/packages/cli/README.md @@ -0,0 +1,32 @@ +# @campfire/cli + +The Campfire command line. Campfire is a filesystem-native presentation +runtime: write slides in MDX, shape the story with React layouts, and present +from a live local shell. + +## Usage + +```sh +bunx @campfire/cli init my-deck +cd my-deck && bun install && bun dev +``` + +| Command | Description | +| --- | --- | +| `camp [dir]` | Start the presentation shell | +| `camp init [dir]` | Scaffold a new deck | +| `camp export [dir]` | Export the deck as a PDF | +| `camp validate [dir]` | Validate slides, layouts, and components | +| `camp inspect [dir]` | Print the project model | +| `camp add ` | Install registry items (shadcn-compatible) | +| `camp slide ` | Add, move, remove, rename, or update slides | + +The binary is available as both `camp` and `campfire`. + +## Documentation + +https://campfire-deck.vercel.app + +## License + +[MIT](./LICENSE) diff --git a/packages/cli/package.json b/packages/cli/package.json index 2a8bead..ab3a6e8 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -2,6 +2,15 @@ "name": "@campfire/cli", "version": "0.0.1", "description": "Campfire command line: camp, init, validate, inspect, add, slide mutations", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/ilyichv/campfire.git", + "directory": "packages/cli" + }, + "publishConfig": { + "access": "public" + }, "type": "module", "bin": { "camp": "./dist/index.mjs", diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 16263cc..65d2a37 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -14,9 +14,10 @@ import { import { cac } from "cac"; import { runInit } from "./init.js"; import { printDiagnostics, printJson, reportMutation } from "./output.js"; +import { CLI_VERSION } from "./version.js"; const REGISTRY_URL = - process.env.CAMPFIRE_REGISTRY_URL ?? "https://campfire.dev/r"; + process.env.CAMPFIRE_REGISTRY_URL ?? "https://campfire-deck.vercel.app/r"; function requireRoot(dir?: string): string { const root = discoverRoot(resolve(dir ?? process.cwd())); @@ -293,9 +294,9 @@ slideCli ); cli.help(); -cli.version("0.0.1"); +cli.version(CLI_VERSION); slideCli.help(); -slideCli.version("0.0.1"); +slideCli.version(CLI_VERSION); if (process.argv[2] === "slide") { slideCli.parse([...process.argv.slice(0, 2), ...process.argv.slice(3)]); diff --git a/packages/cli/src/init.ts b/packages/cli/src/init.ts index 342d144..f2a0277 100644 --- a/packages/cli/src/init.ts +++ b/packages/cli/src/init.ts @@ -7,6 +7,7 @@ import { } from "node:fs"; import { basename, join, resolve } from "node:path"; import { fileURLToPath } from "node:url"; +import { CLI_VERSION } from "./version.js"; const TEMPLATES_DIR = fileURLToPath(new URL("../templates", import.meta.url)); @@ -49,7 +50,9 @@ function copyTemplate(from: string, to: string, name: string): void { continue; } const filename = DOTFILES.has(entry.name) ? `.${entry.name}` : entry.name; - const content = readFileSync(source, "utf8").replaceAll("{{name}}", name); + const content = readFileSync(source, "utf8") + .replaceAll("{{name}}", name) + .replaceAll("{{version}}", CLI_VERSION); writeFileSync(join(to, filename), content); } } diff --git a/packages/cli/src/version.ts b/packages/cli/src/version.ts new file mode 100644 index 0000000..5ccb07c --- /dev/null +++ b/packages/cli/src/version.ts @@ -0,0 +1,7 @@ +import { readFileSync } from "node:fs"; + +export const CLI_VERSION = ( + JSON.parse( + readFileSync(new URL("../package.json", import.meta.url), "utf8") + ) as { version: string } +).version; diff --git a/packages/cli/templates/default/README.md b/packages/cli/templates/default/README.md index c9e43d9..e609e3b 100644 --- a/packages/cli/templates/default/README.md +++ b/packages/cli/templates/default/README.md @@ -1,6 +1,6 @@ # {{name}} -A [Campfire](https://campfire.dev) presentation. +A [Campfire](https://campfire-deck.vercel.app) presentation. ```bash bun install diff --git a/packages/cli/templates/default/package.json b/packages/cli/templates/default/package.json index 927d791..7d62656 100644 --- a/packages/cli/templates/default/package.json +++ b/packages/cli/templates/default/package.json @@ -15,7 +15,7 @@ "tailwind-merge": "^3.6.0" }, "devDependencies": { - "@campfire/cli": "^0.0.1", + "@campfire/cli": "^{{version}}", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "typescript": "^6.0.3" diff --git a/packages/core/LICENSE b/packages/core/LICENSE new file mode 100644 index 0000000..f0bc28b --- /dev/null +++ b/packages/core/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Ilyich Vismara + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/core/README.md b/packages/core/README.md new file mode 100644 index 0000000..4241c72 --- /dev/null +++ b/packages/core/README.md @@ -0,0 +1,15 @@ +# @campfire/core + +Campfire's presentation repo engine: project discovery, validation, +diagnostics, manifest generation, and slide mutations. This is an internal +package consumed by [`@campfire/cli`](https://npmjs.com/package/@campfire/cli); +install the CLI unless you are building tooling on top of Campfire's project +model. + +## Documentation + +https://campfire-deck.vercel.app + +## License + +[MIT](./LICENSE) diff --git a/packages/core/package.json b/packages/core/package.json index 0d24fc9..ee4c338 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -2,6 +2,15 @@ "name": "@campfire/core", "version": "0.0.1", "description": "Campfire presentation repo engine: discovery, validation, diagnostics, and mutations", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/ilyichv/campfire.git", + "directory": "packages/core" + }, + "publishConfig": { + "access": "public" + }, "type": "module", "exports": { ".": { diff --git a/registry/registry.json b/registry/registry.json index 6e38b04..c0d4458 100644 --- a/registry/registry.json +++ b/registry/registry.json @@ -1,7 +1,7 @@ { "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "campfire", - "homepage": "https://campfire.dev", + "homepage": "https://campfire-deck.vercel.app", "items": [ { "name": "utils", @@ -22,7 +22,7 @@ "type": "registry:component", "title": "Metric Card", "description": "A headline number with label and optional delta.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/metric-card.tsx", @@ -36,7 +36,7 @@ "type": "registry:component", "title": "Logo Cloud", "description": "A centered, muted row of logos.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/logo-cloud.tsx", @@ -50,7 +50,7 @@ "type": "registry:component", "title": "Callout", "description": "An emphasized aside with tone variants.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/callout.tsx", @@ -64,7 +64,7 @@ "type": "registry:component", "title": "Quote Card", "description": "A large quotation with attribution.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/quote-card.tsx", @@ -78,7 +78,7 @@ "type": "registry:component", "title": "Step", "description": "A numbered step with heading and detail.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/step.tsx", @@ -92,7 +92,7 @@ "type": "registry:component", "title": "Timeline", "description": "A horizontal sequence of milestones for roadmap slides.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/timeline.tsx", @@ -111,7 +111,7 @@ "type": "registry:component", "title": "Team Member", "description": "A person card for team slides: photo or initials, name, role.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/team-member.tsx", @@ -125,7 +125,7 @@ "type": "registry:block", "title": "Title Layout", "description": "Opening slide: oversized title with supporting copy.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/title.tsx", @@ -139,7 +139,7 @@ "type": "registry:block", "title": "Agenda", "description": "What the talk covers: a layout plus the AgendaItem row.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/agenda.tsx", @@ -158,7 +158,7 @@ "type": "registry:block", "title": "Section Layout", "description": "A full-bleed divider slide on the primary color.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/section.tsx", @@ -172,7 +172,7 @@ "type": "registry:block", "title": "Split Layout", "description": "The two-column workhorse: children flow into equal panels.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/split.tsx", @@ -186,7 +186,7 @@ "type": "registry:block", "title": "Statement Layout", "description": "One big takeaway, centered. Also the home for a QuoteCard.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/statement.tsx", @@ -200,7 +200,7 @@ "type": "registry:block", "title": "Problem / Solution", "description": "Two-panel narrative layout with Problem and Solution components.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/problem-solution.tsx", @@ -224,7 +224,7 @@ "type": "registry:block", "title": "Closing Layout", "description": "Centered thank-you slide.", - "registryDependencies": ["https://campfire.dev/r/utils.json"], + "registryDependencies": ["https://campfire-deck.vercel.app/r/utils.json"], "files": [ { "path": "items/closing.tsx", diff --git a/turbo.json b/turbo.json index b4bbc92..70474b5 100644 --- a/turbo.json +++ b/turbo.json @@ -14,7 +14,12 @@ "dependsOn": ["^build"] }, "registry:build": { - "outputs": ["public/r/**"] + "cache": false + }, + "docs#build": { + "dependsOn": ["^build", "@campfire/registry#registry:build"], + "inputs": ["$TURBO_DEFAULT$", ".env*"], + "outputs": [".next/**", "!.next/cache/**", "!.next/dev/**"] }, "dev": { "cache": false,