create-specra 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-specra",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "CLI tool to scaffold a new Specra documentation site with Next.js",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,113 +1,6 @@
1
- import { NextRequest } from 'next/server'
2
- import { watch, type FSWatcher } from 'fs'
3
- import { join } from 'path'
4
-
5
- // Mark route as incompatible with static export (since it's dev-only SSE endpoint)
1
+ // Next.js requires dynamic to be statically analyzable, so we can't re-export it
6
2
  export const dynamic = 'error'
7
3
  export const runtime = 'nodejs'
8
4
 
9
- // Store active watchers globally to clean up on process exit
10
- const activeWatchers = new Set<FSWatcher>()
11
-
12
- // Clean up all watchers on process termination
13
- if (process.env.NODE_ENV === 'development') {
14
- const cleanup = () => {
15
- if (activeWatchers.size > 0) {
16
- console.log('[MDX Watch] Cleaning up watchers...')
17
- activeWatchers.forEach((watcher) => {
18
- try {
19
- watcher.close()
20
- } catch (error) {
21
- // Ignore errors during cleanup
22
- }
23
- })
24
- activeWatchers.clear()
25
- console.log('[MDX Watch] Cleanup complete')
26
- }
27
- }
28
-
29
- // Use regular event listeners instead of 'once' to ensure cleanup happens
30
- process.on('SIGINT', cleanup)
31
- process.on('SIGTERM', cleanup)
32
- process.on('beforeExit', cleanup)
33
- }
34
-
35
- export async function GET(request: NextRequest) {
36
- // Only allow in development mode
37
- if (process.env.NODE_ENV !== 'development') {
38
- return new Response('Not available in production', { status: 404 })
39
- }
40
-
41
- const encoder = new TextEncoder()
42
-
43
- const stream = new ReadableStream({
44
- start(controller) {
45
- // Send initial connection message
46
- const connectMsg = `data: ${JSON.stringify({ type: 'connected' })}\n\n`
47
- controller.enqueue(encoder.encode(connectMsg))
48
-
49
- const docsPath = join(process.cwd(), 'docs')
50
-
51
- // Watch the docs directory recursively
52
- const watcher = watch(
53
- docsPath,
54
- { recursive: true },
55
- (eventType, filename) => {
56
- if (!filename) return
57
-
58
- // Only watch for .mdx and .json files (MDX files and category configs)
59
- if (filename.endsWith('.mdx') || filename.endsWith('.json')) {
60
- console.log(`[MDX Watch] ${eventType}: ${filename}`)
61
-
62
- const message = `data: ${JSON.stringify({
63
- type: 'change',
64
- file: filename,
65
- eventType
66
- })}\n\n`
67
-
68
- try {
69
- controller.enqueue(encoder.encode(message))
70
- } catch (error) {
71
- console.error('[MDX Watch] Error sending message:', error)
72
- }
73
- }
74
- }
75
- )
76
-
77
- // Add to active watchers for cleanup on process exit
78
- activeWatchers.add(watcher)
79
-
80
- // Handle cleanup
81
- const cleanupWatcher = () => {
82
- console.log('[MDX Watch] Closing watcher')
83
- activeWatchers.delete(watcher)
84
- watcher.close()
85
- try {
86
- controller.close()
87
- } catch (error) {
88
- // Controller might already be closed
89
- }
90
- }
91
-
92
- // Handle client disconnect
93
- request.signal.addEventListener('abort', () => {
94
- console.log('[MDX Watch] Client disconnected')
95
- cleanupWatcher()
96
- })
97
-
98
- // Handle errors
99
- watcher.on('error', (error) => {
100
- console.error('[MDX Watch] Watcher error:', error)
101
- cleanupWatcher()
102
- })
103
- }
104
- })
105
-
106
- return new Response(stream, {
107
- headers: {
108
- 'Content-Type': 'text/event-stream',
109
- 'Cache-Control': 'no-cache, no-transform',
110
- 'Connection': 'keep-alive',
111
- },
112
- })
113
- }
5
+ // Re-export the GET handler from SDK
6
+ export { GET } from "specra/app/api/mdx-watch"
@@ -8,7 +8,6 @@ import {
8
8
  getCachedAllDocs,
9
9
  getCachedDocBySlug,
10
10
  getConfig,
11
- SpecraConfig,
12
11
  } from "specra/lib"
13
12
  import {
14
13
  DocLayout,
@@ -23,8 +22,6 @@ import {
23
22
  DocLoading,
24
23
  } from "specra/components"
25
24
 
26
- import specraConfig from "./../../../../specra.config.json"
27
-
28
25
  interface PageProps {
29
26
  params: Promise<{
30
27
  version: string
@@ -35,7 +32,6 @@ interface PageProps {
35
32
  export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
36
33
  const { version, slug: slugArray } = await params
37
34
  const slug = slugArray.join("/")
38
-
39
35
  const doc = await getCachedDocBySlug(slug, version)
40
36
 
41
37
  if (!doc) {
@@ -78,7 +74,6 @@ export async function generateStaticParams() {
78
74
  for (const version of versions) {
79
75
  const docs = await getCachedAllDocs(version)
80
76
  for (const doc of docs) {
81
- // Add the custom slug path
82
77
  params.push({
83
78
  version,
84
79
  slug: doc.slug.split("/").filter(Boolean),
@@ -97,13 +92,9 @@ export default async function DocPage({ params }: PageProps) {
97
92
  const versions = getCachedVersions()
98
93
  const config = getConfig()
99
94
  const isCategory = isCategoryPage(slug, allDocs)
100
-
101
- // Try to get the doc (might be index.mdx or regular .mdx)
102
95
  const doc = await getCachedDocBySlug(slug, version)
103
96
 
104
- // If no doc found and it's a category, show category index
105
97
  if (!doc && isCategory) {
106
- // Find a doc in this category to get the tab group
107
98
  const categoryDoc = allDocs.find((d) => d.slug.startsWith(slug + "/"))
108
99
  const categoryTabGroup = categoryDoc?.meta?.tab_group || categoryDoc?.categoryTabGroup
109
100
 
@@ -113,7 +104,7 @@ export default async function DocPage({ params }: PageProps) {
113
104
  header={<Header currentVersion={version} versions={versions} config={config} />}
114
105
  docs={allDocs}
115
106
  version={version}
116
- content={
107
+ children={
117
108
  <CategoryIndex
118
109
  categoryPath={slug}
119
110
  version={version}
@@ -134,7 +125,6 @@ export default async function DocPage({ params }: PageProps) {
134
125
  )
135
126
  }
136
127
 
137
- // If no doc found, render 404 content within the layout (keeps sidebar visible)
138
128
  if (!doc) {
139
129
  return (
140
130
  <>
@@ -143,7 +133,7 @@ export default async function DocPage({ params }: PageProps) {
143
133
  header={<Header currentVersion={version} versions={versions} config={config} />}
144
134
  docs={allDocs}
145
135
  version={version}
146
- content={<NotFoundContent version={version} />}
136
+ children={<NotFoundContent version={version} />}
147
137
  toc={<div />}
148
138
  config={config}
149
139
  currentPageTabGroup={undefined}
@@ -158,15 +148,7 @@ export default async function DocPage({ params }: PageProps) {
158
148
 
159
149
  const toc = extractTableOfContents(doc.content)
160
150
  const { previous, next } = getAdjacentDocs(slug, allDocs)
161
-
162
- // console.log("[v0] Extracted ToC:", toc)
163
-
164
- // If doc exists but is also a category, show both content and children
165
151
  const showCategoryIndex = isCategory && doc
166
-
167
- // console.log("showCategoryIndex: ", showCategoryIndex)
168
-
169
- // Get current page's tab group from doc metadata or category
170
152
  const currentPageTabGroup = doc.meta?.tab_group || doc.categoryTabGroup
171
153
 
172
154
  return (
@@ -176,37 +158,34 @@ export default async function DocPage({ params }: PageProps) {
176
158
  header={<Header currentVersion={version} versions={versions} config={config} />}
177
159
  docs={allDocs}
178
160
  version={version}
179
- content={
180
- showCategoryIndex ? (
181
- <CategoryIndex
182
- categoryPath={slug}
183
- version={version}
184
- allDocs={allDocs}
185
- title={doc.meta.title}
186
- description={doc.meta.description}
187
- content={doc.content}
188
- config={config}
189
- />
190
- ) : (
191
- <DocLayout
192
- key={`doc-layout`}
193
- meta={doc.meta}
194
- content={doc.content}
195
- previousDoc={previous ? { title: previous.meta.title, slug: previous.slug } : undefined}
196
- nextDoc={next ? { title: next.meta.title, slug: next.slug } : undefined}
197
- version={version}
198
- slug={slug}
199
- config={config}
200
- />
201
- )
202
- }
203
- toc={showCategoryIndex ? <div /> : <TableOfContents key={'table-of-contents'} items={toc} config={config} />}
161
+ toc={showCategoryIndex ? <div /> : <TableOfContents items={toc} config={config} />}
204
162
  config={config}
205
163
  currentPageTabGroup={currentPageTabGroup}
206
- />
164
+ >
165
+ {showCategoryIndex ? (
166
+ <CategoryIndex
167
+ categoryPath={slug}
168
+ version={version}
169
+ allDocs={allDocs}
170
+ title={doc.meta.title}
171
+ description={doc.meta.description}
172
+ content={doc.content}
173
+ config={config}
174
+ />
175
+ ) : (
176
+ <DocLayout
177
+ meta={doc.meta}
178
+ content={doc.content}
179
+ previousDoc={previous ? { title: previous.meta.title, slug: previous.slug } : undefined}
180
+ nextDoc={next ? { title: next.meta.title, slug: next.slug } : undefined}
181
+ version={version}
182
+ slug={slug}
183
+ config={config}
184
+ />
185
+ )}
186
+ </DocLayoutWrapper>
207
187
  <MdxHotReload />
208
188
  <HotReloadIndicator />
209
- <DevModeBadge />
210
189
  </Suspense>
211
190
  </>
212
191
  )
@@ -1,33 +1,15 @@
1
- import "server-only"
2
-
3
- import type React from "react"
4
1
  import type { Metadata } from "next"
5
- import { Geist, Geist_Mono } from "next/font/google"
6
-
2
+ import { Geist } from "next/font/google"
7
3
  import { getConfig, getAssetPath, SpecraConfig, initConfig } from "specra/lib"
8
- import { TabProvider, ConfigProvider } from "specra/components"
9
-
4
+ import { ConfigProvider, TabProvider } from "specra/components"
10
5
  import specraConfig from "../specra.config.json"
11
6
  import "./globals.css"
12
7
 
13
- /* -----------------------------
14
- Fonts
15
- ------------------------------ */
16
8
  const geist = Geist({ subsets: ["latin"] })
17
- const geistMono = Geist_Mono({ subsets: ["latin"] })
18
-
19
- // const sans = Geist({ subsets: ["latin"] })
20
- // const geistMono = Geist_Mono({ subsets: ["latin"] })
21
9
 
22
- /* -----------------------------
23
- Initialize Specra config ONCE
24
- (module scope, server-only)
25
- ------------------------------ */
10
+ // Initialize Specra config
26
11
  initConfig(specraConfig as unknown as Partial<SpecraConfig>)
27
12
 
28
- /* -----------------------------
29
- Runtime Metadata (REQUIRED)
30
- ------------------------------ */
31
13
  export async function generateMetadata(): Promise<Metadata> {
32
14
  const config = getConfig()
33
15
 
@@ -37,13 +19,9 @@ export async function generateMetadata(): Promise<Metadata> {
37
19
  template: `%s | ${config.site.title}`,
38
20
  },
39
21
  description: config.site.description || "Modern documentation platform",
40
- metadataBase: config.site.url
41
- ? new URL(config.site.url)
42
- : undefined,
22
+ metadataBase: config.site.url ? new URL(config.site.url) : undefined,
43
23
  icons: {
44
- icon: config.site.favicon
45
- ? [{ url: getAssetPath(config.site.favicon) }]
46
- : [],
24
+ icon: config.site.favicon ? [{ url: getAssetPath(config.site.favicon) }] : [],
47
25
  apple: getAssetPath("/apple-icon.png"),
48
26
  },
49
27
  openGraph: {
@@ -62,24 +40,13 @@ export async function generateMetadata(): Promise<Metadata> {
62
40
  }
63
41
  }
64
42
 
65
- /* -----------------------------
66
- Root Layout
67
- ------------------------------ */
68
- export default function RootLayout({
69
- children,
70
- }: {
71
- children: React.ReactNode
72
- }) {
43
+ export default function RootLayout({ children }: { children: React.ReactNode }) {
73
44
  const config = getConfig()
74
- const defaultTab =
75
- config.navigation?.tabGroups?.[0]?.id ?? ""
45
+ const defaultTab = config.navigation?.tabGroups?.[0]?.id ?? ""
76
46
 
77
47
  return (
78
48
  <html lang={config.site.language || "en"}>
79
- <body
80
- // className={`${geist.className} ${geistMono.className} antialiased`}
81
- className={`font-sans antialiased`}
82
- >
49
+ <body className={`${geist.className} font-sans antialiased`}>
83
50
  <ConfigProvider config={config}>
84
51
  <TabProvider defaultTab={defaultTab}>
85
52
  {children}
@@ -0,0 +1,10 @@
1
+
2
+ import { VersionNotFound } from "specra/components"
3
+
4
+ export default function NotFound() {
5
+ return (
6
+ <>
7
+ <VersionNotFound />
8
+ </>
9
+ )
10
+ }
@@ -1,8 +1,7 @@
1
1
  import Link from "next/link"
2
2
  import { ArrowRight, BookOpen, Zap, Code, Github, Twitter, Linkedin } from "lucide-react"
3
- import { getConfig, getAssetPath } from "specra/lib"
4
- import { Button, SiteBanner } from "specra/components"
5
- // import { Logo } from "specra"
3
+ import { getConfig } from "specra/lib"
4
+ import { Button, SiteBanner, Logo } from "specra/components"
6
5
 
7
6
  export default function HomePage() {
8
7
  // Server component - can use getConfig directly
@@ -17,7 +16,7 @@ export default function HomePage() {
17
16
  <header className="border-b border-border">
18
17
  <div className="container flex h-16 items-center justify-between px-6 mx-auto">
19
18
  <Link href="/" className="flex items-center gap-2">
20
- {/* <Logo logo={config.site.logo} alt={config.site.title} className="w-18 object-contain" /> */}
19
+ <Logo logo={config.site.logo} alt={config.site.title} className="w-18 object-contain" />
21
20
  <span className="font-semibold text-lg text-foreground">Specra</span>
22
21
  </Link>
23
22
  <div className="flex items-center gap-6">
@@ -1,18 +1 @@
1
- const mode = process.env.NEXT_BUILD_MODE || "default";
2
-
3
- let config;
4
- let target = ""
5
-
6
- switch (mode) {
7
- case "export":
8
- config = await import("./next.config.export.mjs");
9
- target = "export"
10
- break;
11
- default:
12
- config = await import("./next.config.default.mjs");
13
- target = "server"
14
- }
15
-
16
- console.log(`Building for target: ${target}`)
17
-
18
- export default config.default ?? config;
1
+ export { default } from "specra/next-config"
@@ -18,7 +18,7 @@
18
18
  "next": "^16.1.0",
19
19
  "react": "^19.2.3",
20
20
  "react-dom": "^19.2.3",
21
- "specra": "^0.1.5"
21
+ "specra": "^0.1.6"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@tailwindcss/postcss": "^4.1.9",
@@ -71,6 +71,28 @@
71
71
  resolved "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz"
72
72
  integrity sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==
73
73
 
74
+ "@emnapi/core@^1.7.1":
75
+ version "1.8.0"
76
+ resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.8.0.tgz#2a7c25c1c762c8fbf3441eda572c4b9d87edb4e3"
77
+ integrity sha512-ryJnSmj4UhrGLZZPJ6PKVb4wNPAIkW6iyLy+0TRwazd3L1u0wzMe8RfqevAh2HbcSkoeLiSYnOVDOys4JSGYyg==
78
+ dependencies:
79
+ "@emnapi/wasi-threads" "1.1.0"
80
+ tslib "^2.4.0"
81
+
82
+ "@emnapi/runtime@^1.7.0", "@emnapi/runtime@^1.7.1":
83
+ version "1.8.0"
84
+ resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.0.tgz#85d78a090880b3524f88d9916124f1acd6b6c6de"
85
+ integrity sha512-Z82FDl1ByxqPEPrAYYeTQVlx2FSHPe1qwX465c+96IRS3fTdSYRoJcRxg3g2fEG5I69z1dSEWQlNRRr0/677mg==
86
+ dependencies:
87
+ tslib "^2.4.0"
88
+
89
+ "@emnapi/wasi-threads@1.1.0", "@emnapi/wasi-threads@^1.1.0":
90
+ version "1.1.0"
91
+ resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf"
92
+ integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==
93
+ dependencies:
94
+ tslib "^2.4.0"
95
+
74
96
  "@floating-ui/core@^1.7.3":
75
97
  version "1.7.3"
76
98
  resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz"
@@ -122,16 +144,105 @@
122
144
  resolved "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz"
123
145
  integrity sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==
124
146
 
147
+ "@img/sharp-darwin-arm64@0.34.5":
148
+ version "0.34.5"
149
+ resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz#6e0732dcade126b6670af7aa17060b926835ea86"
150
+ integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==
151
+ optionalDependencies:
152
+ "@img/sharp-libvips-darwin-arm64" "1.2.4"
153
+
154
+ "@img/sharp-darwin-x64@0.34.5":
155
+ version "0.34.5"
156
+ resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz#19bc1dd6eba6d5a96283498b9c9f401180ee9c7b"
157
+ integrity sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==
158
+ optionalDependencies:
159
+ "@img/sharp-libvips-darwin-x64" "1.2.4"
160
+
161
+ "@img/sharp-libvips-darwin-arm64@1.2.4":
162
+ version "1.2.4"
163
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz#2894c0cb87d42276c3889942e8e2db517a492c43"
164
+ integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==
165
+
166
+ "@img/sharp-libvips-darwin-x64@1.2.4":
167
+ version "1.2.4"
168
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz#e63681f4539a94af9cd17246ed8881734386f8cc"
169
+ integrity sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==
170
+
171
+ "@img/sharp-libvips-linux-arm64@1.2.4":
172
+ version "1.2.4"
173
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz#b1b288b36864b3bce545ad91fa6dadcf1a4ad318"
174
+ integrity sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==
175
+
176
+ "@img/sharp-libvips-linux-arm@1.2.4":
177
+ version "1.2.4"
178
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz#b9260dd1ebe6f9e3bdbcbdcac9d2ac125f35852d"
179
+ integrity sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==
180
+
181
+ "@img/sharp-libvips-linux-ppc64@1.2.4":
182
+ version "1.2.4"
183
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz#4b83ecf2a829057222b38848c7b022e7b4d07aa7"
184
+ integrity sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==
185
+
186
+ "@img/sharp-libvips-linux-riscv64@1.2.4":
187
+ version "1.2.4"
188
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz#880b4678009e5a2080af192332b00b0aaf8a48de"
189
+ integrity sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==
190
+
191
+ "@img/sharp-libvips-linux-s390x@1.2.4":
192
+ version "1.2.4"
193
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz#74f343c8e10fad821b38f75ced30488939dc59ec"
194
+ integrity sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==
195
+
125
196
  "@img/sharp-libvips-linux-x64@1.2.4":
126
197
  version "1.2.4"
127
198
  resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz"
128
199
  integrity sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==
129
200
 
201
+ "@img/sharp-libvips-linuxmusl-arm64@1.2.4":
202
+ version "1.2.4"
203
+ resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz#c8d6b48211df67137541007ee8d1b7b1f8ca8e06"
204
+ integrity sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==
205
+
130
206
  "@img/sharp-libvips-linuxmusl-x64@1.2.4":
131
207
  version "1.2.4"
132
208
  resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz"
133
209
  integrity sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==
134
210
 
211
+ "@img/sharp-linux-arm64@0.34.5":
212
+ version "0.34.5"
213
+ resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz#7aa7764ef9c001f15e610546d42fce56911790cc"
214
+ integrity sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==
215
+ optionalDependencies:
216
+ "@img/sharp-libvips-linux-arm64" "1.2.4"
217
+
218
+ "@img/sharp-linux-arm@0.34.5":
219
+ version "0.34.5"
220
+ resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz#5fb0c3695dd12522d39c3ff7a6bc816461780a0d"
221
+ integrity sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==
222
+ optionalDependencies:
223
+ "@img/sharp-libvips-linux-arm" "1.2.4"
224
+
225
+ "@img/sharp-linux-ppc64@0.34.5":
226
+ version "0.34.5"
227
+ resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz#9c213a81520a20caf66978f3d4c07456ff2e0813"
228
+ integrity sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==
229
+ optionalDependencies:
230
+ "@img/sharp-libvips-linux-ppc64" "1.2.4"
231
+
232
+ "@img/sharp-linux-riscv64@0.34.5":
233
+ version "0.34.5"
234
+ resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz#cdd28182774eadbe04f62675a16aabbccb833f60"
235
+ integrity sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==
236
+ optionalDependencies:
237
+ "@img/sharp-libvips-linux-riscv64" "1.2.4"
238
+
239
+ "@img/sharp-linux-s390x@0.34.5":
240
+ version "0.34.5"
241
+ resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz#93eac601b9f329bb27917e0e19098c722d630df7"
242
+ integrity sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==
243
+ optionalDependencies:
244
+ "@img/sharp-libvips-linux-s390x" "1.2.4"
245
+
135
246
  "@img/sharp-linux-x64@0.34.5":
136
247
  version "0.34.5"
137
248
  resolved "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz"
@@ -139,6 +250,13 @@
139
250
  optionalDependencies:
140
251
  "@img/sharp-libvips-linux-x64" "1.2.4"
141
252
 
253
+ "@img/sharp-linuxmusl-arm64@0.34.5":
254
+ version "0.34.5"
255
+ resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz#d6515ee971bb62f73001a4829b9d865a11b77086"
256
+ integrity sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==
257
+ optionalDependencies:
258
+ "@img/sharp-libvips-linuxmusl-arm64" "1.2.4"
259
+
142
260
  "@img/sharp-linuxmusl-x64@0.34.5":
143
261
  version "0.34.5"
144
262
  resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz"
@@ -146,6 +264,28 @@
146
264
  optionalDependencies:
147
265
  "@img/sharp-libvips-linuxmusl-x64" "1.2.4"
148
266
 
267
+ "@img/sharp-wasm32@0.34.5":
268
+ version "0.34.5"
269
+ resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz#2f15803aa626f8c59dd7c9d0bbc766f1ab52cfa0"
270
+ integrity sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==
271
+ dependencies:
272
+ "@emnapi/runtime" "^1.7.0"
273
+
274
+ "@img/sharp-win32-arm64@0.34.5":
275
+ version "0.34.5"
276
+ resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz#3706e9e3ac35fddfc1c87f94e849f1b75307ce0a"
277
+ integrity sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==
278
+
279
+ "@img/sharp-win32-ia32@0.34.5":
280
+ version "0.34.5"
281
+ resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz#0b71166599b049e032f085fb9263e02f4e4788de"
282
+ integrity sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==
283
+
284
+ "@img/sharp-win32-x64@0.34.5":
285
+ version "0.34.5"
286
+ resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz#a81ffb00e69267cd0a1d626eaedb8a8430b2b2f8"
287
+ integrity sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==
288
+
149
289
  "@jridgewell/gen-mapping@^0.3.5":
150
290
  version "0.3.13"
151
291
  resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz"
@@ -225,11 +365,40 @@
225
365
  dependencies:
226
366
  langium "3.3.1"
227
367
 
368
+ "@napi-rs/wasm-runtime@^1.1.0":
369
+ version "1.1.1"
370
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz#c3705ab549d176b8dc5172723d6156c3dc426af2"
371
+ integrity sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==
372
+ dependencies:
373
+ "@emnapi/core" "^1.7.1"
374
+ "@emnapi/runtime" "^1.7.1"
375
+ "@tybys/wasm-util" "^0.10.1"
376
+
228
377
  "@next/env@16.1.0":
229
378
  version "16.1.0"
230
379
  resolved "https://registry.npmjs.org/@next/env/-/env-16.1.0.tgz"
231
380
  integrity sha512-Dd23XQeFHmhf3KBW76leYVkejHlCdB7erakC2At2apL1N08Bm+dLYNP+nNHh0tzUXfPQcNcXiQyacw0PG4Fcpw==
232
381
 
382
+ "@next/swc-darwin-arm64@16.1.0":
383
+ version "16.1.0"
384
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.0.tgz#b7bded3911f35f585243292f85f63c3ef7d4fd85"
385
+ integrity sha512-onHq8dl8KjDb8taANQdzs3XmIqQWV3fYdslkGENuvVInFQzZnuBYYOG2HGHqqtvgmEU7xWzhgndXXxnhk4Z3fQ==
386
+
387
+ "@next/swc-darwin-x64@16.1.0":
388
+ version "16.1.0"
389
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.0.tgz#93394a41b9fd368e1d12c3d542bd118b5d6a5ccf"
390
+ integrity sha512-Am6VJTp8KhLuAH13tPrAoVIXzuComlZlMwGr++o2KDjWiKPe3VwpxYhgV6I4gKls2EnsIMggL4y7GdXyDdJcFA==
391
+
392
+ "@next/swc-linux-arm64-gnu@16.1.0":
393
+ version "16.1.0"
394
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.0.tgz#e33c4bc206366501c9bf323a9cc8e4b0aaa6ea9b"
395
+ integrity sha512-fVicfaJT6QfghNyg8JErZ+EMNQ812IS0lmKfbmC01LF1nFBcKfcs4Q75Yy8IqnsCqH/hZwGhqzj3IGVfWV6vpA==
396
+
397
+ "@next/swc-linux-arm64-musl@16.1.0":
398
+ version "16.1.0"
399
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.0.tgz#aeef7cd46a6b69c986dd08a730d40fe8853c629e"
400
+ integrity sha512-TojQnDRoX7wJWXEEwdfuJtakMDW64Q7NrxQPviUnfYJvAx5/5wcGE+1vZzQ9F17m+SdpFeeXuOr6v3jbyusYMQ==
401
+
233
402
  "@next/swc-linux-x64-gnu@16.1.0":
234
403
  version "16.1.0"
235
404
  resolved "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.0.tgz"
@@ -240,6 +409,16 @@
240
409
  resolved "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.0.tgz"
241
410
  integrity sha512-6JW0z2FZUK5iOVhUIWqE4RblAhUj1EwhZ/MwteGb//SpFTOHydnhbp3868gxalwea+mbOLWO6xgxj9wA9wNvNw==
242
411
 
412
+ "@next/swc-win32-arm64-msvc@16.1.0":
413
+ version "16.1.0"
414
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.0.tgz#8e4dccc755fc285d0455d4fb14e9e7d551d2357c"
415
+ integrity sha512-+DK/akkAvvXn5RdYN84IOmLkSy87SCmpofJPdB8vbLmf01BzntPBSYXnMvnEEv/Vcf3HYJwt24QZ/s6sWAwOMQ==
416
+
417
+ "@next/swc-win32-x64-msvc@16.1.0":
418
+ version "16.1.0"
419
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.0.tgz#288b4803e56e6b15a0b203e39b7ed3b8dd628755"
420
+ integrity sha512-Tr0j94MphimCCks+1rtYPzQFK+faJuhHWCegU9S9gDlgyOk8Y3kPmO64UcjyzZAlligeBtYZ/2bEyrKq0d2wqQ==
421
+
243
422
  "@radix-ui/number@1.1.1":
244
423
  version "1.1.1"
245
424
  resolved "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz"
@@ -284,7 +463,7 @@
284
463
  dependencies:
285
464
  "@radix-ui/react-primitive" "2.1.3"
286
465
 
287
- "@radix-ui/react-collapsible@^1.1.2", "@radix-ui/react-collapsible@1.1.12":
466
+ "@radix-ui/react-collapsible@1.1.12", "@radix-ui/react-collapsible@^1.1.2":
288
467
  version "1.1.12"
289
468
  resolved "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz"
290
469
  integrity sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==
@@ -308,7 +487,7 @@
308
487
  "@radix-ui/react-primitive" "2.1.3"
309
488
  "@radix-ui/react-slot" "1.2.3"
310
489
 
311
- "@radix-ui/react-compose-refs@^1.1.1", "@radix-ui/react-compose-refs@1.1.2":
490
+ "@radix-ui/react-compose-refs@1.1.2", "@radix-ui/react-compose-refs@^1.1.1":
312
491
  version "1.1.2"
313
492
  resolved "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz"
314
493
  integrity sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==
@@ -318,7 +497,7 @@
318
497
  resolved "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz"
319
498
  integrity sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==
320
499
 
321
- "@radix-ui/react-dialog@^1.1.15", "@radix-ui/react-dialog@^1.1.6", "@radix-ui/react-dialog@1.1.15":
500
+ "@radix-ui/react-dialog@1.1.15", "@radix-ui/react-dialog@^1.1.15", "@radix-ui/react-dialog@^1.1.6":
322
501
  version "1.1.15"
323
502
  resolved "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz"
324
503
  integrity sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==
@@ -381,7 +560,7 @@
381
560
  "@radix-ui/react-primitive" "2.1.3"
382
561
  "@radix-ui/react-use-callback-ref" "1.1.1"
383
562
 
384
- "@radix-ui/react-id@^1.1.0", "@radix-ui/react-id@1.1.1":
563
+ "@radix-ui/react-id@1.1.1", "@radix-ui/react-id@^1.1.0":
385
564
  version "1.1.1"
386
565
  resolved "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz"
387
566
  integrity sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==
@@ -465,13 +644,6 @@
465
644
  "@radix-ui/react-compose-refs" "1.1.2"
466
645
  "@radix-ui/react-use-layout-effect" "1.1.1"
467
646
 
468
- "@radix-ui/react-primitive@^2.0.2":
469
- version "2.1.4"
470
- resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz"
471
- integrity sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==
472
- dependencies:
473
- "@radix-ui/react-slot" "1.2.4"
474
-
475
647
  "@radix-ui/react-primitive@2.1.3":
476
648
  version "2.1.3"
477
649
  resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz"
@@ -479,7 +651,7 @@
479
651
  dependencies:
480
652
  "@radix-ui/react-slot" "1.2.3"
481
653
 
482
- "@radix-ui/react-primitive@2.1.4":
654
+ "@radix-ui/react-primitive@2.1.4", "@radix-ui/react-primitive@^2.0.2":
483
655
  version "2.1.4"
484
656
  resolved "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz"
485
657
  integrity sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==
@@ -550,13 +722,6 @@
550
722
  dependencies:
551
723
  "@radix-ui/react-primitive" "2.1.4"
552
724
 
553
- "@radix-ui/react-slot@^1.1.1":
554
- version "1.2.4"
555
- resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz"
556
- integrity sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==
557
- dependencies:
558
- "@radix-ui/react-compose-refs" "1.1.2"
559
-
560
725
  "@radix-ui/react-slot@1.2.3":
561
726
  version "1.2.3"
562
727
  resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz"
@@ -564,7 +729,7 @@
564
729
  dependencies:
565
730
  "@radix-ui/react-compose-refs" "1.1.2"
566
731
 
567
- "@radix-ui/react-slot@1.2.4":
732
+ "@radix-ui/react-slot@1.2.4", "@radix-ui/react-slot@^1.1.1":
568
733
  version "1.2.4"
569
734
  resolved "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz"
570
735
  integrity sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==
@@ -713,6 +878,41 @@
713
878
  source-map-js "^1.2.1"
714
879
  tailwindcss "4.1.18"
715
880
 
881
+ "@tailwindcss/oxide-android-arm64@4.1.18":
882
+ version "4.1.18"
883
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz#79717f87e90135e5d3d23a3d3aecde4ca5595dd5"
884
+ integrity sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==
885
+
886
+ "@tailwindcss/oxide-darwin-arm64@4.1.18":
887
+ version "4.1.18"
888
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz#7fa47608d62d60e9eb020682249d20159667fbb0"
889
+ integrity sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==
890
+
891
+ "@tailwindcss/oxide-darwin-x64@4.1.18":
892
+ version "4.1.18"
893
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz#c05991c85aa2af47bf9d1f8172fe9e4636591e79"
894
+ integrity sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==
895
+
896
+ "@tailwindcss/oxide-freebsd-x64@4.1.18":
897
+ version "4.1.18"
898
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz#3d48e8d79fd08ece0e02af8e72d5059646be34d0"
899
+ integrity sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==
900
+
901
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18":
902
+ version "4.1.18"
903
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz#982ecd1a65180807ccfde67dc17c6897f2e50aa8"
904
+ integrity sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==
905
+
906
+ "@tailwindcss/oxide-linux-arm64-gnu@4.1.18":
907
+ version "4.1.18"
908
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz#df49357bc9737b2e9810ea950c1c0647ba6573c3"
909
+ integrity sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==
910
+
911
+ "@tailwindcss/oxide-linux-arm64-musl@4.1.18":
912
+ version "4.1.18"
913
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz#b266c12822bf87883cf152615f8fffb8519d689c"
914
+ integrity sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==
915
+
716
916
  "@tailwindcss/oxide-linux-x64-gnu@4.1.18":
717
917
  version "4.1.18"
718
918
  resolved "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz"
@@ -723,6 +923,28 @@
723
923
  resolved "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz"
724
924
  integrity sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==
725
925
 
926
+ "@tailwindcss/oxide-wasm32-wasi@4.1.18":
927
+ version "4.1.18"
928
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz#9464df0e28a499aab1c55e97682be37b3a656c88"
929
+ integrity sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==
930
+ dependencies:
931
+ "@emnapi/core" "^1.7.1"
932
+ "@emnapi/runtime" "^1.7.1"
933
+ "@emnapi/wasi-threads" "^1.1.0"
934
+ "@napi-rs/wasm-runtime" "^1.1.0"
935
+ "@tybys/wasm-util" "^0.10.1"
936
+ tslib "^2.4.0"
937
+
938
+ "@tailwindcss/oxide-win32-arm64-msvc@4.1.18":
939
+ version "4.1.18"
940
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz#bbcdd59c628811f6a0a4d5b09616967d8fb0c4d4"
941
+ integrity sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==
942
+
943
+ "@tailwindcss/oxide-win32-x64-msvc@4.1.18":
944
+ version "4.1.18"
945
+ resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz#9c628d04623aa4c3536c508289f58d58ba4b3fb1"
946
+ integrity sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==
947
+
726
948
  "@tailwindcss/oxide@4.1.18":
727
949
  version "4.1.18"
728
950
  resolved "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz"
@@ -759,6 +981,13 @@
759
981
  dependencies:
760
982
  postcss-selector-parser "6.0.10"
761
983
 
984
+ "@tybys/wasm-util@^0.10.1":
985
+ version "0.10.1"
986
+ resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414"
987
+ integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==
988
+ dependencies:
989
+ tslib "^2.4.0"
990
+
762
991
  "@types/d3-array@*", "@types/d3-array@^3.0.3":
763
992
  version "3.2.2"
764
993
  resolved "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz"
@@ -1029,12 +1258,12 @@
1029
1258
  dependencies:
1030
1259
  undici-types "~6.21.0"
1031
1260
 
1032
- "@types/react-dom@*", "@types/react-dom@^19":
1261
+ "@types/react-dom@^19":
1033
1262
  version "19.2.3"
1034
1263
  resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz"
1035
1264
  integrity sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==
1036
1265
 
1037
- "@types/react@*", "@types/react@^19", "@types/react@^19.2.0", "@types/react@>=16", "@types/react@>=18":
1266
+ "@types/react@^19":
1038
1267
  version "19.2.7"
1039
1268
  resolved "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz"
1040
1269
  integrity sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==
@@ -1066,7 +1295,7 @@ acorn-jsx@^5.0.0:
1066
1295
  resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
1067
1296
  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
1068
1297
 
1069
- "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.0.0, acorn@^8.15.0:
1298
+ acorn@^8.0.0, acorn@^8.15.0:
1070
1299
  version "8.15.0"
1071
1300
  resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz"
1072
1301
  integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
@@ -1137,7 +1366,7 @@ chevrotain-allstar@~0.3.0:
1137
1366
  dependencies:
1138
1367
  lodash-es "^4.17.21"
1139
1368
 
1140
- chevrotain@^11.0.0, chevrotain@~11.0.3:
1369
+ chevrotain@~11.0.3:
1141
1370
  version "11.0.3"
1142
1371
  resolved "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz"
1143
1372
  integrity sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==
@@ -1186,16 +1415,16 @@ comma-separated-tokens@^2.0.0:
1186
1415
  resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz"
1187
1416
  integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
1188
1417
 
1189
- commander@^8.3.0:
1190
- version "8.3.0"
1191
- resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
1192
- integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
1193
-
1194
1418
  commander@7:
1195
1419
  version "7.2.0"
1196
1420
  resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
1197
1421
  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
1198
1422
 
1423
+ commander@^8.3.0:
1424
+ version "8.3.0"
1425
+ resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz"
1426
+ integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
1427
+
1199
1428
  confbox@^0.1.8:
1200
1429
  version "0.1.8"
1201
1430
  resolved "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz"
@@ -1239,18 +1468,11 @@ cytoscape-fcose@^2.2.0:
1239
1468
  dependencies:
1240
1469
  cose-base "^2.2.0"
1241
1470
 
1242
- cytoscape@^3.2.0, cytoscape@^3.29.3:
1471
+ cytoscape@^3.29.3:
1243
1472
  version "3.33.1"
1244
1473
  resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz"
1245
1474
  integrity sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==
1246
1475
 
1247
- d3-array@^3.1.6, d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
1248
- version "3.2.4"
1249
- resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
1250
- integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
1251
- dependencies:
1252
- internmap "1 - 2"
1253
-
1254
1476
  "d3-array@1 - 2":
1255
1477
  version "2.12.1"
1256
1478
  resolved "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz"
@@ -1258,6 +1480,13 @@ d3-array@^3.1.6, d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-a
1258
1480
  dependencies:
1259
1481
  internmap "^1.0.0"
1260
1482
 
1483
+ "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.1.6, d3-array@^3.2.0:
1484
+ version "3.2.4"
1485
+ resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz"
1486
+ integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
1487
+ dependencies:
1488
+ internmap "1 - 2"
1489
+
1261
1490
  d3-axis@3:
1262
1491
  version "3.0.0"
1263
1492
  resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz"
@@ -1322,7 +1551,7 @@ d3-delaunay@6:
1322
1551
  iconv-lite "0.6"
1323
1552
  rw "1"
1324
1553
 
1325
- d3-ease@^3.0.1, "d3-ease@1 - 3", d3-ease@3:
1554
+ "d3-ease@1 - 3", d3-ease@3, d3-ease@^3.0.1:
1326
1555
  version "3.0.1"
1327
1556
  resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz"
1328
1557
  integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
@@ -1360,23 +1589,23 @@ d3-hierarchy@3:
1360
1589
  resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz"
1361
1590
  integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==
1362
1591
 
1363
- d3-interpolate@^3.0.1, "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
1592
+ "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3, d3-interpolate@^3.0.1:
1364
1593
  version "3.0.1"
1365
1594
  resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz"
1366
1595
  integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
1367
1596
  dependencies:
1368
1597
  d3-color "1 - 3"
1369
1598
 
1370
- d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3:
1371
- version "3.1.0"
1372
- resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
1373
- integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
1374
-
1375
1599
  d3-path@1:
1376
1600
  version "1.0.9"
1377
1601
  resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz"
1378
1602
  integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
1379
1603
 
1604
+ "d3-path@1 - 3", d3-path@3, d3-path@^3.1.0:
1605
+ version "3.1.0"
1606
+ resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz"
1607
+ integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==
1608
+
1380
1609
  d3-polygon@3:
1381
1610
  version "3.0.1"
1382
1611
  resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz"
@@ -1408,7 +1637,7 @@ d3-scale-chromatic@3:
1408
1637
  d3-color "1 - 3"
1409
1638
  d3-interpolate "1 - 3"
1410
1639
 
1411
- d3-scale@^4.0.2, d3-scale@4:
1640
+ d3-scale@4, d3-scale@^4.0.2:
1412
1641
  version "4.0.2"
1413
1642
  resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz"
1414
1643
  integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
@@ -1424,6 +1653,13 @@ d3-scale@^4.0.2, d3-scale@4:
1424
1653
  resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz"
1425
1654
  integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
1426
1655
 
1656
+ d3-shape@3, d3-shape@^3.1.0:
1657
+ version "3.2.0"
1658
+ resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz"
1659
+ integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
1660
+ dependencies:
1661
+ d3-path "^3.1.0"
1662
+
1427
1663
  d3-shape@^1.2.0:
1428
1664
  version "1.3.7"
1429
1665
  resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz"
@@ -1431,13 +1667,6 @@ d3-shape@^1.2.0:
1431
1667
  dependencies:
1432
1668
  d3-path "1"
1433
1669
 
1434
- d3-shape@^3.1.0, d3-shape@3:
1435
- version "3.2.0"
1436
- resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz"
1437
- integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==
1438
- dependencies:
1439
- d3-path "^3.1.0"
1440
-
1441
1670
  "d3-time-format@2 - 4", d3-time-format@4:
1442
1671
  version "4.1.0"
1443
1672
  resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz"
@@ -1445,14 +1674,14 @@ d3-shape@^3.1.0, d3-shape@3:
1445
1674
  dependencies:
1446
1675
  d3-time "1 - 3"
1447
1676
 
1448
- d3-time@^3.0.0, "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3:
1677
+ "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3, d3-time@^3.0.0:
1449
1678
  version "3.1.0"
1450
1679
  resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz"
1451
1680
  integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
1452
1681
  dependencies:
1453
1682
  d3-array "2 - 3"
1454
1683
 
1455
- d3-timer@^3.0.1, "d3-timer@1 - 3", d3-timer@3:
1684
+ "d3-timer@1 - 3", d3-timer@3, d3-timer@^3.0.1:
1456
1685
  version "3.0.1"
1457
1686
  resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
1458
1687
  integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
@@ -1961,16 +2190,16 @@ inline-style-parser@0.2.7:
1961
2190
  resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz"
1962
2191
  integrity sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==
1963
2192
 
1964
- internmap@^1.0.0:
1965
- version "1.0.1"
1966
- resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz"
1967
- integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
1968
-
1969
2193
  "internmap@1 - 2":
1970
2194
  version "2.0.3"
1971
2195
  resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz"
1972
2196
  integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
1973
2197
 
2198
+ internmap@^1.0.0:
2199
+ version "1.0.1"
2200
+ resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz"
2201
+ integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
2202
+
1974
2203
  is-alphabetical@^2.0.0:
1975
2204
  version "2.0.1"
1976
2205
  resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz"
@@ -2060,6 +2289,41 @@ layout-base@^2.0.0:
2060
2289
  resolved "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz"
2061
2290
  integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==
2062
2291
 
2292
+ lightningcss-android-arm64@1.30.2:
2293
+ version "1.30.2"
2294
+ resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz#6966b7024d39c94994008b548b71ab360eb3a307"
2295
+ integrity sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==
2296
+
2297
+ lightningcss-darwin-arm64@1.30.2:
2298
+ version "1.30.2"
2299
+ resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz#a5fa946d27c029e48c7ff929e6e724a7de46eb2c"
2300
+ integrity sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==
2301
+
2302
+ lightningcss-darwin-x64@1.30.2:
2303
+ version "1.30.2"
2304
+ resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz#5ce87e9cd7c4f2dcc1b713f5e8ee185c88d9b7cd"
2305
+ integrity sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==
2306
+
2307
+ lightningcss-freebsd-x64@1.30.2:
2308
+ version "1.30.2"
2309
+ resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz#6ae1d5e773c97961df5cff57b851807ef33692a5"
2310
+ integrity sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==
2311
+
2312
+ lightningcss-linux-arm-gnueabihf@1.30.2:
2313
+ version "1.30.2"
2314
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz#62c489610c0424151a6121fa99d77731536cdaeb"
2315
+ integrity sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==
2316
+
2317
+ lightningcss-linux-arm64-gnu@1.30.2:
2318
+ version "1.30.2"
2319
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz#2a3661b56fe95a0cafae90be026fe0590d089298"
2320
+ integrity sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==
2321
+
2322
+ lightningcss-linux-arm64-musl@1.30.2:
2323
+ version "1.30.2"
2324
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz#d7ddd6b26959245e026bc1ad9eb6aa983aa90e6b"
2325
+ integrity sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==
2326
+
2063
2327
  lightningcss-linux-x64-gnu@1.30.2:
2064
2328
  version "1.30.2"
2065
2329
  resolved "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz"
@@ -2070,6 +2334,16 @@ lightningcss-linux-x64-musl@1.30.2:
2070
2334
  resolved "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz"
2071
2335
  integrity sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==
2072
2336
 
2337
+ lightningcss-win32-arm64-msvc@1.30.2:
2338
+ version "1.30.2"
2339
+ resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz#ab4a8a8a2e6a82a4531e8bbb6bf0ff161ee6625a"
2340
+ integrity sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==
2341
+
2342
+ lightningcss-win32-x64-msvc@1.30.2:
2343
+ version "1.30.2"
2344
+ resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz#f01f382c8e0a27e1c018b0bee316d210eac43b6e"
2345
+ integrity sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==
2346
+
2073
2347
  lightningcss@1.30.2:
2074
2348
  version "1.30.2"
2075
2349
  resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz"
@@ -2089,16 +2363,16 @@ lightningcss@1.30.2:
2089
2363
  lightningcss-win32-arm64-msvc "1.30.2"
2090
2364
  lightningcss-win32-x64-msvc "1.30.2"
2091
2365
 
2092
- lodash-es@^4.17.21:
2093
- version "4.17.22"
2094
- resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz"
2095
- integrity sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==
2096
-
2097
2366
  lodash-es@4.17.21:
2098
2367
  version "4.17.21"
2099
2368
  resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
2100
2369
  integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
2101
2370
 
2371
+ lodash-es@^4.17.21:
2372
+ version "4.17.22"
2373
+ resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz"
2374
+ integrity sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==
2375
+
2102
2376
  lodash@^4.17.21:
2103
2377
  version "4.17.21"
2104
2378
  resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
@@ -2795,7 +3069,7 @@ next-themes@^0.4.6:
2795
3069
  resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz"
2796
3070
  integrity sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==
2797
3071
 
2798
- "next@^14.0.0 || ^15.0.0 || ^16.0.0", next@^16.1.0:
3072
+ next@^16.1.0:
2799
3073
  version "16.1.0"
2800
3074
  resolved "https://registry.npmjs.org/next/-/next-16.1.0.tgz"
2801
3075
  integrity sha512-Y+KbmDbefYtHDDQKLNrmzE/YYzG2msqo2VXhzh5yrJ54tx/6TmGdkR5+kP9ma7i7LwZpZMfoY3m/AoPPPKxtVw==
@@ -2847,7 +3121,7 @@ parse5@^7.0.0:
2847
3121
  dependencies:
2848
3122
  entities "^6.0.0"
2849
3123
 
2850
- path-data-parser@^0.1.0, path-data-parser@0.1.0:
3124
+ path-data-parser@0.1.0, path-data-parser@^0.1.0:
2851
3125
  version "0.1.0"
2852
3126
  resolved "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz"
2853
3127
  integrity sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==
@@ -2871,7 +3145,7 @@ pkg-types@^1.3.1:
2871
3145
  mlly "^1.7.4"
2872
3146
  pathe "^2.0.1"
2873
3147
 
2874
- points-on-curve@^0.2.0, points-on-curve@0.2.0:
3148
+ points-on-curve@0.2.0, points-on-curve@^0.2.0:
2875
3149
  version "0.2.0"
2876
3150
  resolved "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz"
2877
3151
  integrity sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==
@@ -2892,15 +3166,6 @@ postcss-selector-parser@6.0.10:
2892
3166
  cssesc "^3.0.0"
2893
3167
  util-deprecate "^1.0.2"
2894
3168
 
2895
- postcss@^8.4.41, postcss@^8.5:
2896
- version "8.5.6"
2897
- resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz"
2898
- integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
2899
- dependencies:
2900
- nanoid "^3.3.11"
2901
- picocolors "^1.1.1"
2902
- source-map-js "^1.2.1"
2903
-
2904
3169
  postcss@8.4.31:
2905
3170
  version "8.4.31"
2906
3171
  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz"
@@ -2910,6 +3175,15 @@ postcss@8.4.31:
2910
3175
  picocolors "^1.0.0"
2911
3176
  source-map-js "^1.0.2"
2912
3177
 
3178
+ postcss@^8.4.41, postcss@^8.5:
3179
+ version "8.5.6"
3180
+ resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz"
3181
+ integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
3182
+ dependencies:
3183
+ nanoid "^3.3.11"
3184
+ picocolors "^1.1.1"
3185
+ source-map-js "^1.2.1"
3186
+
2913
3187
  prop-types@^15.6.2, prop-types@^15.8.1:
2914
3188
  version "15.8.1"
2915
3189
  resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
@@ -2924,14 +3198,14 @@ property-information@^7.0.0:
2924
3198
  resolved "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz"
2925
3199
  integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==
2926
3200
 
2927
- "react-dom@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^18 || ^19 || ^19.0.0-rc", "react-dom@^18.0.0 || ^19.0.0", "react-dom@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react-dom@^19.2.3, react-dom@>=16.6.0, react-dom@>=16.8.0:
3201
+ react-dom@^19.2.3:
2928
3202
  version "19.2.3"
2929
3203
  resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz"
2930
3204
  integrity sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==
2931
3205
  dependencies:
2932
3206
  scheduler "^0.27.0"
2933
3207
 
2934
- react-hook-form@^7.0.0, react-hook-form@^7.60.0:
3208
+ react-hook-form@^7.60.0:
2935
3209
  version "7.69.0"
2936
3210
  resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.69.0.tgz"
2937
3211
  integrity sha512-yt6ZGME9f4F6WHwevrvpAjh42HMvocuSnSIHUGycBqXIJdhqGSPQzTpGF+1NLREk/58IdPxEMfPcFCjlMhclGw==
@@ -3009,7 +3283,7 @@ react-transition-group@^4.4.5:
3009
3283
  loose-envify "^1.4.0"
3010
3284
  prop-types "^15.6.2"
3011
3285
 
3012
- "react@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc", "react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17 || ^18 || ^19", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18 || ^19 || ^19.0.0-rc", "react@^18.0.0 || ^19.0.0", "react@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react@^19.2.3, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", react@>=16, react@>=16.6.0, react@>=16.8.0, react@>=18:
3286
+ react@^19.2.3:
3013
3287
  version "19.2.3"
3014
3288
  resolved "https://registry.npmjs.org/react/-/react-19.2.3.tgz"
3015
3289
  integrity sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==
@@ -3274,10 +3548,10 @@ space-separated-tokens@^2.0.0:
3274
3548
  resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz"
3275
3549
  integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==
3276
3550
 
3277
- specra@^0.1.1:
3278
- version "0.1.1"
3279
- resolved "https://registry.npmjs.org/specra/-/specra-0.1.1.tgz"
3280
- integrity sha512-SzNEE+oieVCdJoYBQ7bo1U1r2Obr12R7AZ/qU2yLJ9Vh2ln/XMnBS+9tB4KQ+W4is7hsAG6+1+i/nt15ThOd2A==
3551
+ specra@^0.1.5:
3552
+ version "0.1.5"
3553
+ resolved "https://registry.yarnpkg.com/specra/-/specra-0.1.5.tgz#c37a127efa0e35280829c0317d4f9fc058d8e79d"
3554
+ integrity sha512-+o5MHxIQC+6BUrVJ1X4E2p9Ng8J736bJPLhyl5UVIXyoB0ADW1RCgQ9dlX8f7NpX/JW6NYSRSbu++bM9mm0v8Q==
3281
3555
  dependencies:
3282
3556
  "@hookform/resolvers" "^3.10.0"
3283
3557
  "@radix-ui/react-accordion" "^1.2.2"
@@ -3375,7 +3649,7 @@ tailwindcss-animate@^1.0.7:
3375
3649
  resolved "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz"
3376
3650
  integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==
3377
3651
 
3378
- tailwindcss@^4.1.18, tailwindcss@^4.1.9, "tailwindcss@>=3.0.0 || insiders", "tailwindcss@>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1", tailwindcss@4.1.18:
3652
+ tailwindcss@4.1.18, tailwindcss@^4.1.18, tailwindcss@^4.1.9:
3379
3653
  version "4.1.18"
3380
3654
  resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz"
3381
3655
  integrity sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==
@@ -3410,7 +3684,7 @@ ts-dedent@^2.2.0:
3410
3684
  resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz"
3411
3685
  integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==
3412
3686
 
3413
- tslib@^2.0.0, tslib@^2.1.0, tslib@^2.8.0:
3687
+ tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.8.0:
3414
3688
  version "2.8.1"
3415
3689
  resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
3416
3690
  integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
@@ -1,40 +0,0 @@
1
- import fs from "fs"
2
- import path from "path"
3
- import { fileURLToPath } from "url"
4
-
5
- const __filename = fileURLToPath(import.meta.url)
6
- const __dirname = path.dirname(__filename)
7
-
8
- // Load redirects from generated file
9
- let redirects = []
10
- try {
11
- const redirectsPath = path.join(__dirname, "redirects.json")
12
- if (fs.existsSync(redirectsPath)) {
13
- redirects = JSON.parse(fs.readFileSync(redirectsPath, "utf8"))
14
- }
15
- } catch (error) {
16
- console.warn("Could not load redirects.json:", error.message)
17
- }
18
-
19
- /** @type {import('next').NextConfig} */
20
- const nextConfig = {
21
- output: "standalone", // Default to standalone for Vercel/Node.js hosting
22
- typescript: {
23
- ignoreBuildErrors: true,
24
- },
25
- images: {
26
- unoptimized: true,
27
- },
28
- // Empty turbopack config to silence the warning
29
- // Turbopack handles file watching automatically
30
- turbopack: {},
31
- // Prevent these packages from being bundled externally
32
- serverExternalPackages: [],
33
- // Transpile packages that have ESM/React context issues
34
- transpilePackages: ['next-mdx-remote', 'specra'],
35
- async redirects() {
36
- return redirects
37
- },
38
- }
39
-
40
- export default nextConfig
@@ -1,64 +0,0 @@
1
- import fs from "fs"
2
- import path from "path"
3
- import { fileURLToPath } from "url"
4
-
5
- const __filename = fileURLToPath(import.meta.url)
6
- const __dirname = path.dirname(__filename)
7
-
8
- // Load redirects from generated file
9
- let redirects = []
10
- try {
11
- const redirectsPath = path.join(__dirname, "redirects.json")
12
- if (fs.existsSync(redirectsPath)) {
13
- redirects = JSON.parse(fs.readFileSync(redirectsPath, "utf8"))
14
- }
15
- } catch (error) {
16
- console.warn("Could not load redirects.json:", error.message)
17
- }
18
-
19
- // Load deployment config from specra.config.json
20
- let basePath = ""
21
- try {
22
- const configPath = path.join(__dirname, "specra.config.json")
23
- if (fs.existsSync(configPath)) {
24
- const config = JSON.parse(fs.readFileSync(configPath, "utf8"))
25
- const deployment = config.deployment || {}
26
-
27
- // Only apply basePath for GitHub Pages without custom domain
28
- if (deployment.target === "github-pages" && !deployment.customDomain && deployment.basePath) {
29
- basePath = deployment.basePath.startsWith("/")
30
- ? deployment.basePath
31
- : `/${deployment.basePath}`
32
- }
33
-
34
- console.log(`\nšŸ“¦ Building for static export with deployment target: ${deployment.target || 'not specified'}`)
35
- if (basePath) {
36
- console.log(`šŸ”— Using basePath: ${basePath}`)
37
- } else {
38
- console.log(`šŸ”— No basePath applied (custom domain or root deployment)`)
39
- }
40
- }
41
- } catch (error) {
42
- console.warn("Could not load deployment config from specra.config.json:", error.message)
43
- }
44
-
45
- /** @type {import('next').NextConfig} */
46
- const nextConfig = {
47
- output: "export", // Always export for static hosting
48
- basePath: basePath || undefined,
49
- typescript: {
50
- ignoreBuildErrors: true,
51
- },
52
- images: {
53
- unoptimized: true,
54
- },
55
- // Empty turbopack config to silence the warning
56
- turbopack: {},
57
- // Prevent next-mdx-remote from being bundled externally
58
- serverExternalPackages: [],
59
- async redirects() {
60
- return redirects
61
- },
62
- }
63
-
64
- export default nextConfig