specra 0.1.0

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.
Files changed (142) hide show
  1. package/LICENSE.MD +21 -0
  2. package/README.md +157 -0
  3. package/dist/app/api/mdx-watch/route.d.mts +12 -0
  4. package/dist/app/api/mdx-watch/route.d.ts +12 -0
  5. package/dist/app/api/mdx-watch/route.js +98 -0
  6. package/dist/app/api/mdx-watch/route.js.map +1 -0
  7. package/dist/app/api/mdx-watch/route.mjs +71 -0
  8. package/dist/app/api/mdx-watch/route.mjs.map +1 -0
  9. package/dist/app/docs-page.d.mts +32 -0
  10. package/dist/app/docs-page.d.ts +32 -0
  11. package/dist/app/docs-page.js +4072 -0
  12. package/dist/app/docs-page.js.map +1 -0
  13. package/dist/app/docs-page.mjs +14 -0
  14. package/dist/app/docs-page.mjs.map +1 -0
  15. package/dist/app/layout.css +297 -0
  16. package/dist/app/layout.css.map +1 -0
  17. package/dist/app/layout.d.mts +19 -0
  18. package/dist/app/layout.d.ts +19 -0
  19. package/dist/app/layout.js +112 -0
  20. package/dist/app/layout.js.map +1 -0
  21. package/dist/app/layout.mjs +13 -0
  22. package/dist/app/layout.mjs.map +1 -0
  23. package/dist/chunk-DR4EPLMT.mjs +1013 -0
  24. package/dist/chunk-DR4EPLMT.mjs.map +1 -0
  25. package/dist/chunk-INL2EC72.mjs +170 -0
  26. package/dist/chunk-INL2EC72.mjs.map +1 -0
  27. package/dist/chunk-IZFGEAD6.mjs +61 -0
  28. package/dist/chunk-IZFGEAD6.mjs.map +1 -0
  29. package/dist/chunk-KTRWWAGL.mjs +50 -0
  30. package/dist/chunk-KTRWWAGL.mjs.map +1 -0
  31. package/dist/chunk-MZJHJ6BV.mjs +21 -0
  32. package/dist/chunk-MZJHJ6BV.mjs.map +1 -0
  33. package/dist/chunk-NXRIAL7T.mjs +3119 -0
  34. package/dist/chunk-NXRIAL7T.mjs.map +1 -0
  35. package/dist/components/index.d.mts +822 -0
  36. package/dist/components/index.d.ts +822 -0
  37. package/dist/components/index.js +3738 -0
  38. package/dist/components/index.js.map +1 -0
  39. package/dist/components/index.mjs +3627 -0
  40. package/dist/components/index.mjs.map +1 -0
  41. package/dist/index.css +297 -0
  42. package/dist/index.css.map +1 -0
  43. package/dist/index.d.mts +545 -0
  44. package/dist/index.d.ts +545 -0
  45. package/dist/index.js +4648 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/index.mjs +347 -0
  48. package/dist/index.mjs.map +1 -0
  49. package/dist/lib/index.d.mts +798 -0
  50. package/dist/lib/index.d.ts +798 -0
  51. package/dist/lib/index.js +1301 -0
  52. package/dist/lib/index.js.map +1 -0
  53. package/dist/lib/index.mjs +89 -0
  54. package/dist/lib/index.mjs.map +1 -0
  55. package/package.json +119 -0
  56. package/src/app/api/mdx-watch/route.ts +86 -0
  57. package/src/app/docs-page.tsx +212 -0
  58. package/src/app/layout.tsx +74 -0
  59. package/src/components/docs/accordion.tsx +53 -0
  60. package/src/components/docs/api/api-endpoint.tsx +59 -0
  61. package/src/components/docs/api/api-params.tsx +43 -0
  62. package/src/components/docs/api/api-playground.tsx +233 -0
  63. package/src/components/docs/api/api-reference.tsx +291 -0
  64. package/src/components/docs/api/api-response.tsx +48 -0
  65. package/src/components/docs/api/index.ts +5 -0
  66. package/src/components/docs/badge.tsx +22 -0
  67. package/src/components/docs/breadcrumb.tsx +51 -0
  68. package/src/components/docs/callout.tsx +109 -0
  69. package/src/components/docs/card.tsx +84 -0
  70. package/src/components/docs/category-index.tsx +112 -0
  71. package/src/components/docs/code-block.tsx +129 -0
  72. package/src/components/docs/columns.tsx +45 -0
  73. package/src/components/docs/componentTextProps.ts +85 -0
  74. package/src/components/docs/dev-mode-badge.tsx +35 -0
  75. package/src/components/docs/doc-layout-wrapper.tsx +54 -0
  76. package/src/components/docs/doc-layout.tsx +111 -0
  77. package/src/components/docs/doc-loading.tsx +15 -0
  78. package/src/components/docs/doc-metadata.tsx +55 -0
  79. package/src/components/docs/doc-navigation.tsx +62 -0
  80. package/src/components/docs/doc-tags.tsx +25 -0
  81. package/src/components/docs/draft-badge.tsx +10 -0
  82. package/src/components/docs/footer.tsx +47 -0
  83. package/src/components/docs/frame.tsx +22 -0
  84. package/src/components/docs/header.tsx +122 -0
  85. package/src/components/docs/hot-reload-indicator.tsx +77 -0
  86. package/src/components/docs/icon.tsx +70 -0
  87. package/src/components/docs/image-card.tsx +95 -0
  88. package/src/components/docs/image.tsx +73 -0
  89. package/src/components/docs/index.ts +48 -0
  90. package/src/components/docs/math.tsx +46 -0
  91. package/src/components/docs/mdx-components.tsx +166 -0
  92. package/src/components/docs/mdx-hot-reload.tsx +37 -0
  93. package/src/components/docs/mermaid.tsx +77 -0
  94. package/src/components/docs/mobile-doc-layout.tsx +115 -0
  95. package/src/components/docs/not-found-content.tsx +55 -0
  96. package/src/components/docs/search-highlight.tsx +127 -0
  97. package/src/components/docs/search-modal.tsx +223 -0
  98. package/src/components/docs/sidebar-skeleton.tsx +39 -0
  99. package/src/components/docs/sidebar.tsx +323 -0
  100. package/src/components/docs/site-banner.tsx +92 -0
  101. package/src/components/docs/steps.tsx +29 -0
  102. package/src/components/docs/tab-context.tsx +28 -0
  103. package/src/components/docs/tab-groups.tsx +50 -0
  104. package/src/components/docs/table-of-contents.tsx +104 -0
  105. package/src/components/docs/tabs.tsx +63 -0
  106. package/src/components/docs/theme-toggle.tsx +39 -0
  107. package/src/components/docs/tooltip.tsx +37 -0
  108. package/src/components/docs/version-switcher.tsx +52 -0
  109. package/src/components/docs/video.tsx +80 -0
  110. package/src/components/global/index.ts +3 -0
  111. package/src/components/global/version-not-found.tsx +26 -0
  112. package/src/components/index.ts +8 -0
  113. package/src/components/theme-provider.tsx +11 -0
  114. package/src/components/ui/badge.tsx +46 -0
  115. package/src/components/ui/button.tsx +60 -0
  116. package/src/components/ui/dialog.tsx +143 -0
  117. package/src/components/ui/index.ts +6 -0
  118. package/src/components/ui/input.tsx +21 -0
  119. package/src/components/ui/textarea.tsx +18 -0
  120. package/src/index.ts +41 -0
  121. package/src/lib/api-parser.types.ts +78 -0
  122. package/src/lib/api.types.ts +202 -0
  123. package/src/lib/category.ts +71 -0
  124. package/src/lib/config.server.ts +170 -0
  125. package/src/lib/config.ts +20 -0
  126. package/src/lib/config.types.ts +295 -0
  127. package/src/lib/dev-utils.ts +75 -0
  128. package/src/lib/index.ts +27 -0
  129. package/src/lib/mdx-cache.ts +200 -0
  130. package/src/lib/mdx.ts +402 -0
  131. package/src/lib/parsers/base-parser.ts +16 -0
  132. package/src/lib/parsers/index.ts +69 -0
  133. package/src/lib/parsers/openapi-parser.ts +251 -0
  134. package/src/lib/parsers/postman-parser.ts +301 -0
  135. package/src/lib/parsers/specra-parser.ts +24 -0
  136. package/src/lib/redirects.ts +40 -0
  137. package/src/lib/remark-code-meta.ts +23 -0
  138. package/src/lib/sidebar-utils.ts +188 -0
  139. package/src/lib/toc.ts +24 -0
  140. package/src/lib/utils.ts +36 -0
  141. package/src/specra.config.json +124 -0
  142. package/src/styles/globals.css +427 -0
@@ -0,0 +1,822 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactNode } from 'react';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
7
+
8
+ interface AccordionItemProps {
9
+ title: string | React.ReactNode;
10
+ children: React.ReactNode;
11
+ defaultOpen?: boolean;
12
+ value?: string;
13
+ }
14
+ declare function AccordionItem({ title, children, defaultOpen }: AccordionItemProps): react_jsx_runtime.JSX.Element;
15
+ interface AccordionProps {
16
+ children: React.ReactNode;
17
+ type?: "single" | "multiple";
18
+ collapsible?: boolean;
19
+ className?: string;
20
+ }
21
+ declare function Accordion({ children, type, className }: AccordionProps): react_jsx_runtime.JSX.Element;
22
+
23
+ interface BadgeProps {
24
+ children: React.ReactNode;
25
+ variant?: "default" | "success" | "warning" | "error" | "info";
26
+ }
27
+ declare function Badge$1({ children, variant }: BadgeProps): react_jsx_runtime.JSX.Element;
28
+
29
+ interface BreadcrumbProps {
30
+ version: string;
31
+ slug: string;
32
+ title: string;
33
+ }
34
+ declare function Breadcrumb({ version, slug, title }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
35
+
36
+ interface CalloutProps {
37
+ children: ReactNode;
38
+ type?: "info" | "warning" | "success" | "error" | "tip" | "note" | "danger";
39
+ title?: string;
40
+ }
41
+ declare function Callout({ children, type, title }: CalloutProps): react_jsx_runtime.JSX.Element;
42
+
43
+ interface CardProps {
44
+ title: string;
45
+ description?: string;
46
+ href?: string;
47
+ icon?: string | React.ReactNode;
48
+ children?: React.ReactNode;
49
+ external?: boolean;
50
+ }
51
+ declare function Card({ title, description, href, icon, children, external }: CardProps): react_jsx_runtime.JSX.Element;
52
+ interface CardGridProps {
53
+ children: React.ReactNode;
54
+ cols?: 1 | 2 | 3;
55
+ }
56
+ declare function CardGrid({ children, cols }: CardGridProps): react_jsx_runtime.JSX.Element;
57
+
58
+ interface DocMeta {
59
+ title: string;
60
+ description?: string;
61
+ slug?: string;
62
+ section?: string;
63
+ group?: string;
64
+ sidebar?: string;
65
+ order?: number;
66
+ sidebar_position?: number;
67
+ content?: string;
68
+ last_updated?: string;
69
+ draft?: boolean;
70
+ authors?: Array<{
71
+ id: string;
72
+ name?: string;
73
+ }>;
74
+ tags?: string[];
75
+ redirect_from?: string[];
76
+ reading_time?: number;
77
+ word_count?: number;
78
+ icon?: string;
79
+ tab_group?: string;
80
+ }
81
+ interface Doc {
82
+ slug: string;
83
+ filePath: string;
84
+ title: string;
85
+ meta: DocMeta;
86
+ content: string;
87
+ categoryLabel?: string;
88
+ categoryPosition?: number;
89
+ categoryCollapsible?: boolean;
90
+ categoryCollapsed?: boolean;
91
+ categoryIcon?: string;
92
+ categoryTabGroup?: string;
93
+ }
94
+
95
+ /**
96
+ * Configuration schema for Specra documentation system
97
+ */
98
+ /**
99
+ * Site metadata and branding
100
+ */
101
+ interface SiteConfig {
102
+ /** The title of the documentation site */
103
+ title: string;
104
+ /** Short description of the documentation */
105
+ description?: string;
106
+ /** URL where the documentation is hosted */
107
+ url?: string;
108
+ /** Base URL path for the documentation (e.g., '/docs') */
109
+ baseUrl?: string;
110
+ /** Path to the site logo */
111
+ logo?: string;
112
+ /** Path to the favicon */
113
+ favicon?: string;
114
+ /** Default language for the documentation */
115
+ language?: string;
116
+ /** Organization or author name */
117
+ organizationName?: string;
118
+ /** Project name */
119
+ projectName?: string;
120
+ /** Active/default version for the documentation */
121
+ activeVersion?: string;
122
+ }
123
+ /**
124
+ * Theme and appearance settings
125
+ */
126
+ interface ThemeConfig {
127
+ /** Primary color for the theme */
128
+ primaryColor?: string;
129
+ /** Default theme mode */
130
+ defaultMode?: "light" | "dark" | "system";
131
+ /** Whether to respect system preferences */
132
+ respectPrefersColorScheme?: boolean;
133
+ /** Custom CSS file path */
134
+ customCss?: string;
135
+ }
136
+ /**
137
+ * Tab group for organizing documentation
138
+ */
139
+ interface TabGroup {
140
+ /** Unique identifier for the tab group */
141
+ id: string;
142
+ /** Display label for the tab */
143
+ label: string;
144
+ /** Optional icon name (lucide-react icon) */
145
+ icon?: string;
146
+ }
147
+ /**
148
+ * Navigation and sidebar configuration
149
+ */
150
+ interface NavigationConfig {
151
+ /** Whether to show the sidebar by default */
152
+ showSidebar?: boolean;
153
+ /** Whether the sidebar is collapsible */
154
+ collapsibleSidebar?: boolean;
155
+ /** Whether to show breadcrumbs */
156
+ showBreadcrumbs?: boolean;
157
+ /** Whether to show table of contents */
158
+ showTableOfContents?: boolean;
159
+ /** Position of table of contents */
160
+ tocPosition?: "left" | "right";
161
+ /** Maximum depth for table of contents */
162
+ tocMaxDepth?: number;
163
+ /** Tab groups for organizing documentation sections */
164
+ tabGroups?: TabGroup[];
165
+ }
166
+ /**
167
+ * Social and external links
168
+ */
169
+ interface SocialLinks {
170
+ /** GitHub repository URL */
171
+ github?: string;
172
+ /** Twitter/X handle or URL */
173
+ twitter?: string;
174
+ /** Discord invite URL */
175
+ discord?: string;
176
+ /** LinkedIn profile or company page */
177
+ linkedin?: string;
178
+ /** YouTube channel URL */
179
+ youtube?: string;
180
+ /** Custom social links */
181
+ custom?: Array<{
182
+ label: string;
183
+ url: string;
184
+ icon?: string;
185
+ }>;
186
+ }
187
+ /**
188
+ * Search configuration
189
+ */
190
+ interface SearchConfig {
191
+ /** Enable/disable search functionality */
192
+ enabled?: boolean;
193
+ /** Placeholder text for search input */
194
+ placeholder?: string;
195
+ /** Search provider type */
196
+ provider?: "meilisearch" | "algolia" | "local";
197
+ /** Meilisearch configuration */
198
+ meilisearch?: {
199
+ /** Meilisearch server URL */
200
+ host: string;
201
+ /** API key for Meilisearch */
202
+ apiKey?: string;
203
+ /** Index name */
204
+ indexName: string;
205
+ };
206
+ }
207
+ /**
208
+ * Analytics configuration
209
+ */
210
+ interface AnalyticsConfig {
211
+ /** Google Analytics tracking ID */
212
+ googleAnalytics?: string;
213
+ /** Google Tag Manager ID */
214
+ googleTagManager?: string;
215
+ /** Plausible Analytics domain */
216
+ plausible?: string;
217
+ /** Custom analytics scripts */
218
+ custom?: Array<{
219
+ src: string;
220
+ async?: boolean;
221
+ defer?: boolean;
222
+ }>;
223
+ }
224
+ /**
225
+ * Footer configuration
226
+ */
227
+ interface FooterConfig {
228
+ /** Copyright text */
229
+ copyright?: string;
230
+ /** Footer links organized by columns */
231
+ links?: Array<{
232
+ title: string;
233
+ items: Array<{
234
+ label: string;
235
+ href: string;
236
+ }>;
237
+ }>;
238
+ /** Custom footer content */
239
+ customContent?: string;
240
+ }
241
+ /**
242
+ * Documentation features
243
+ */
244
+ interface FeaturesConfig {
245
+ /** Enable/disable edit this page links */
246
+ editUrl?: string | false;
247
+ /** Show last updated timestamp */
248
+ showLastUpdated?: boolean;
249
+ /** Show reading time estimate */
250
+ showReadingTime?: boolean;
251
+ /** Show author information */
252
+ showAuthors?: boolean;
253
+ /** Show tags */
254
+ showTags?: boolean;
255
+ /** Enable version dropdown */
256
+ versioning?: boolean;
257
+ /** Enable i18n (internationalization) */
258
+ i18n?: boolean;
259
+ }
260
+ /**
261
+ * Site-wide banner configuration
262
+ */
263
+ interface BannerConfig {
264
+ /** Whether the banner is enabled */
265
+ enabled?: boolean;
266
+ /** Banner message */
267
+ message?: string;
268
+ /** Banner type */
269
+ type?: "info" | "warning" | "success" | "error";
270
+ /** Whether the banner can be dismissed */
271
+ dismissible?: boolean;
272
+ }
273
+ /**
274
+ * Environment variables that can be used in documentation
275
+ * These will be replaced at build time or runtime
276
+ */
277
+ interface EnvironmentVariables {
278
+ /** API base URL */
279
+ API_BASE_URL?: string;
280
+ /** API version */
281
+ API_VERSION?: string;
282
+ /** CDN URL */
283
+ CDN_URL?: string;
284
+ /** Custom environment variables */
285
+ [key: string]: string | undefined;
286
+ }
287
+ /**
288
+ * Deployment configuration for different hosting scenarios
289
+ */
290
+ interface DeploymentConfig {
291
+ /**
292
+ * Deployment target
293
+ * - 'vercel': For Vercel or similar Node.js hosting (uses 'standalone' output)
294
+ * - 'github-pages': For GitHub Pages static hosting (uses 'export' output)
295
+ * - 'static': For any static hosting like Netlify, Cloudflare Pages, etc.
296
+ * - 'custom-domain-static': For static hosting with custom domain (no basePath needed)
297
+ */
298
+ target?: "vercel" | "github-pages" | "static" | "custom-domain-static";
299
+ /**
300
+ * Base path for assets when deploying to GitHub Pages without custom domain
301
+ * This should be your repository name (e.g., 'my-repo')
302
+ * Only used when target is 'github-pages' and no custom domain is configured
303
+ */
304
+ basePath?: string;
305
+ /**
306
+ * Whether a custom domain is configured
307
+ * When true, basePath will be ignored even for GitHub Pages
308
+ */
309
+ customDomain?: boolean;
310
+ }
311
+ /**
312
+ * Main configuration interface
313
+ */
314
+ interface SpecraConfig {
315
+ /** Site metadata and branding */
316
+ site: SiteConfig;
317
+ /** Theme and appearance settings */
318
+ theme?: ThemeConfig;
319
+ /** Navigation and sidebar configuration */
320
+ navigation?: NavigationConfig;
321
+ /** Social and external links */
322
+ social?: SocialLinks;
323
+ /** Search configuration */
324
+ search?: SearchConfig;
325
+ /** Analytics configuration */
326
+ analytics?: AnalyticsConfig;
327
+ /** Footer configuration */
328
+ footer?: FooterConfig;
329
+ /** Site-wide banner */
330
+ banner?: BannerConfig;
331
+ /** Documentation features */
332
+ features?: FeaturesConfig;
333
+ /** Environment variables for use in docs */
334
+ env?: EnvironmentVariables;
335
+ /** Deployment configuration */
336
+ deployment?: DeploymentConfig;
337
+ }
338
+
339
+ interface CategoryIndexProps {
340
+ categoryPath: string;
341
+ version: string;
342
+ allDocs: Doc[];
343
+ title: string;
344
+ description?: string;
345
+ content?: string;
346
+ config: SpecraConfig;
347
+ }
348
+ declare function CategoryIndex({ categoryPath, version, allDocs, title, description, content, config }: CategoryIndexProps): react_jsx_runtime.JSX.Element;
349
+
350
+ interface CodeBlockProps {
351
+ code: string;
352
+ language: string;
353
+ filename?: string;
354
+ }
355
+ declare function CodeBlock({ code, language, filename }: CodeBlockProps): react_jsx_runtime.JSX.Element;
356
+
357
+ interface ColumnsProps {
358
+ children: React.ReactNode;
359
+ cols?: {
360
+ sm?: 1 | 2 | 3 | 4;
361
+ md?: 1 | 2 | 3 | 4;
362
+ lg?: 1 | 2 | 3 | 4;
363
+ xl?: 1 | 2 | 3 | 4;
364
+ };
365
+ }
366
+ declare function Columns({ children, cols }: ColumnsProps): react_jsx_runtime.JSX.Element;
367
+ interface ColumnProps {
368
+ children: React.ReactNode;
369
+ span?: 1 | 2 | 3 | 4;
370
+ }
371
+ declare function Column({ children, span }: ColumnProps): react_jsx_runtime.JSX.Element;
372
+
373
+ declare const COMPONENT_TEXT_PROPS: Record<string, string[]>;
374
+ declare function extractComponentPropsText(mdx: string): string;
375
+ declare function extractSearchText(mdx: string): string;
376
+
377
+ declare function DevModeBadge(): react_jsx_runtime.JSX.Element | null;
378
+
379
+ interface DocLayoutProps {
380
+ meta: DocMeta;
381
+ content: string;
382
+ previousDoc?: {
383
+ title: string;
384
+ slug: string;
385
+ };
386
+ nextDoc?: {
387
+ title: string;
388
+ slug: string;
389
+ };
390
+ version: string;
391
+ slug: string;
392
+ config: SpecraConfig;
393
+ }
394
+ declare function DocLayout({ content, meta, previousDoc, nextDoc, version, slug, config }: DocLayoutProps): Promise<react_jsx_runtime.JSX.Element>;
395
+
396
+ interface DocLayoutWrapperProps {
397
+ header: ReactNode;
398
+ docs: Doc[];
399
+ version: string;
400
+ content: ReactNode;
401
+ toc: ReactNode;
402
+ config: SpecraConfig;
403
+ currentPageTabGroup?: string;
404
+ }
405
+ declare function DocLayoutWrapper({ header, docs, version, content, toc, config, currentPageTabGroup }: DocLayoutWrapperProps): react_jsx_runtime.JSX.Element;
406
+
407
+ declare function DocLoading(): react_jsx_runtime.JSX.Element;
408
+
409
+ interface DocMetadataProps {
410
+ meta: DocMeta;
411
+ config: SpecraConfig;
412
+ }
413
+ declare function DocMetadata({ meta, config }: DocMetadataProps): react_jsx_runtime.JSX.Element | null;
414
+
415
+ interface DocNavigationProps {
416
+ previousDoc?: {
417
+ title: string;
418
+ slug: string;
419
+ };
420
+ nextDoc?: {
421
+ title: string;
422
+ slug: string;
423
+ };
424
+ version: string;
425
+ }
426
+ declare function DocNavigation({ previousDoc, nextDoc, version }: DocNavigationProps): react_jsx_runtime.JSX.Element | null;
427
+
428
+ interface DocTagsProps {
429
+ tags: string[];
430
+ }
431
+ declare function DocTags({ tags }: DocTagsProps): react_jsx_runtime.JSX.Element | null;
432
+
433
+ declare function DraftBadge(): react_jsx_runtime.JSX.Element;
434
+
435
+ declare function Footer({ config }: {
436
+ config: SpecraConfig;
437
+ }): react_jsx_runtime.JSX.Element | null;
438
+
439
+ interface FrameProps {
440
+ src: string;
441
+ title?: string;
442
+ height?: number | string;
443
+ width?: string;
444
+ }
445
+ declare function Frame({ src, title, height, width }: FrameProps): react_jsx_runtime.JSX.Element;
446
+
447
+ interface HeaderProps {
448
+ currentVersion: string;
449
+ versions: string[];
450
+ onMenuClick?: () => void;
451
+ config: SpecraConfig;
452
+ }
453
+ declare function Header({ currentVersion, versions, onMenuClick, config }: HeaderProps): react_jsx_runtime.JSX.Element;
454
+
455
+ declare function HotReloadIndicator(): react_jsx_runtime.JSX.Element | null;
456
+
457
+ interface IconProps {
458
+ icon: string | React.ReactNode;
459
+ iconType?: "regular" | "solid" | "light" | "thin" | "sharp-solid" | "duotone" | "brands";
460
+ color?: string;
461
+ size?: number;
462
+ className?: string;
463
+ }
464
+ declare function Icon({ icon, iconType, color, size, className }: IconProps): react_jsx_runtime.JSX.Element;
465
+
466
+ interface ImageCardProps {
467
+ src: string;
468
+ alt: string;
469
+ title?: string;
470
+ description?: string;
471
+ href?: string;
472
+ external?: boolean;
473
+ aspectRatio?: "square" | "video" | "portrait";
474
+ }
475
+ declare function ImageCard({ src, alt, title, description, href, external, aspectRatio, }: ImageCardProps): react_jsx_runtime.JSX.Element;
476
+ interface ImageCardGridProps {
477
+ children: React.ReactNode;
478
+ cols?: 1 | 2 | 3 | 4;
479
+ }
480
+ declare function ImageCardGrid({ children, cols }: ImageCardGridProps): react_jsx_runtime.JSX.Element;
481
+
482
+ interface ImageProps {
483
+ src: string;
484
+ alt: string;
485
+ caption?: string;
486
+ width?: number;
487
+ height?: number;
488
+ zoom?: boolean;
489
+ }
490
+ declare function Image({ src, alt, caption, width, height, zoom }: ImageProps): react_jsx_runtime.JSX.Element;
491
+
492
+ interface MathProps {
493
+ children: string;
494
+ block?: boolean;
495
+ }
496
+ declare function Math({ children, block }: MathProps): react_jsx_runtime.JSX.Element;
497
+
498
+ interface TabProps {
499
+ label: string;
500
+ children: React__default.ReactNode;
501
+ }
502
+ interface TabsProps {
503
+ children: React__default.ReactElement<TabProps> | React__default.ReactElement<TabProps>[];
504
+ defaultValue?: string;
505
+ }
506
+ declare function Tab({ children }: TabProps): react_jsx_runtime.JSX.Element;
507
+ declare function Tabs({ children, defaultValue }: TabsProps): react_jsx_runtime.JSX.Element;
508
+
509
+ interface VideoProps {
510
+ src: string;
511
+ caption?: string;
512
+ autoplay?: boolean;
513
+ loop?: boolean;
514
+ muted?: boolean;
515
+ controls?: boolean;
516
+ poster?: string;
517
+ }
518
+ declare function Video({ src, caption, autoplay, loop, muted, controls, poster, }: VideoProps): react_jsx_runtime.JSX.Element;
519
+
520
+ interface StepsProps {
521
+ children: React.ReactNode;
522
+ }
523
+ interface StepProps {
524
+ title: string;
525
+ children: React.ReactNode;
526
+ }
527
+ declare function Steps({ children }: StepsProps): react_jsx_runtime.JSX.Element;
528
+ declare function Step({ title, children }: StepProps): react_jsx_runtime.JSX.Element;
529
+
530
+ interface MermaidProps {
531
+ chart: string;
532
+ caption?: string;
533
+ }
534
+ declare function Mermaid({ chart, caption }: MermaidProps): react_jsx_runtime.JSX.Element;
535
+
536
+ interface TooltipProps {
537
+ children: React.ReactNode;
538
+ content: string;
539
+ position?: "top" | "bottom" | "left" | "right";
540
+ }
541
+ declare function Tooltip({ children, content, position }: TooltipProps): react_jsx_runtime.JSX.Element;
542
+
543
+ interface ApiEndpointProps {
544
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
545
+ path: string;
546
+ summary?: string;
547
+ children?: ReactNode;
548
+ defaultOpen?: boolean;
549
+ }
550
+ declare function ApiEndpoint({ method, path, summary, children, defaultOpen }: ApiEndpointProps): react_jsx_runtime.JSX.Element;
551
+
552
+ interface ApiParam {
553
+ name: string;
554
+ type: string;
555
+ required?: boolean;
556
+ description?: string;
557
+ default?: string;
558
+ }
559
+ interface ApiParamsProps {
560
+ title?: string;
561
+ params: ApiParam[];
562
+ }
563
+ declare function ApiParams({ title, params }: ApiParamsProps): react_jsx_runtime.JSX.Element | null;
564
+
565
+ interface ApiResponseProps {
566
+ status: number;
567
+ description?: string;
568
+ example?: any;
569
+ schema?: any;
570
+ }
571
+ declare function ApiResponse({ status, description, example, schema }: ApiResponseProps): react_jsx_runtime.JSX.Element;
572
+
573
+ interface PathParam {
574
+ name: string;
575
+ type: string;
576
+ example?: any;
577
+ }
578
+ interface ApiPlaygroundProps {
579
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
580
+ path: string;
581
+ baseUrl?: string;
582
+ headers?: Record<string, string>;
583
+ defaultBody?: string;
584
+ pathParams?: PathParam[];
585
+ }
586
+ declare function ApiPlayground({ method, path, baseUrl, headers, defaultBody, pathParams }: ApiPlaygroundProps): react_jsx_runtime.JSX.Element;
587
+
588
+ type ParserType = "auto" | "specra" | "openapi" | "postman";
589
+
590
+ interface ApiReferenceProps {
591
+ /**
592
+ * Path to the API spec JSON file (relative to /public)
593
+ * Example: "/api-specs/my-api.json"
594
+ */
595
+ spec: string;
596
+ /**
597
+ * Parser type - auto-detect by default
598
+ * - "auto": Auto-detect format (Specra, OpenAPI, or Postman)
599
+ * - "specra": Native Specra format
600
+ * - "openapi": OpenAPI 3.x / Swagger
601
+ * - "postman": Postman Collection v2.x
602
+ */
603
+ parser?: ParserType;
604
+ /**
605
+ * Show API playground for testing
606
+ */
607
+ showPlayground?: boolean;
608
+ }
609
+ declare function ApiReference({ spec, parser, showPlayground }: ApiReferenceProps): react_jsx_runtime.JSX.Element | null;
610
+
611
+ declare const mdxComponents: {
612
+ h1: ({ children }: {
613
+ children: ReactNode;
614
+ }) => react_jsx_runtime.JSX.Element;
615
+ h2: ({ children, id }: {
616
+ children: ReactNode;
617
+ id?: string;
618
+ }) => react_jsx_runtime.JSX.Element;
619
+ h3: ({ children, id }: {
620
+ children: ReactNode;
621
+ id?: string;
622
+ }) => react_jsx_runtime.JSX.Element;
623
+ p: ({ children }: {
624
+ children: ReactNode;
625
+ }) => react_jsx_runtime.JSX.Element;
626
+ code: ({ children, className, meta, ...props }: {
627
+ children: ReactNode;
628
+ className?: string;
629
+ meta?: string;
630
+ [key: string]: any;
631
+ }) => react_jsx_runtime.JSX.Element;
632
+ pre: ({ children }: {
633
+ children: ReactNode;
634
+ }) => react_jsx_runtime.JSX.Element;
635
+ ul: ({ children }: {
636
+ children: ReactNode;
637
+ }) => react_jsx_runtime.JSX.Element;
638
+ ol: ({ children }: {
639
+ children: ReactNode;
640
+ }) => react_jsx_runtime.JSX.Element;
641
+ li: ({ children }: {
642
+ children: ReactNode;
643
+ }) => react_jsx_runtime.JSX.Element;
644
+ a: ({ children, href }: {
645
+ children: ReactNode;
646
+ href?: string;
647
+ }) => react_jsx_runtime.JSX.Element;
648
+ blockquote: ({ children }: {
649
+ children: ReactNode;
650
+ }) => react_jsx_runtime.JSX.Element;
651
+ table: ({ children }: {
652
+ children: ReactNode;
653
+ }) => react_jsx_runtime.JSX.Element;
654
+ th: ({ children }: {
655
+ children: ReactNode;
656
+ }) => react_jsx_runtime.JSX.Element;
657
+ td: ({ children }: {
658
+ children: ReactNode;
659
+ }) => react_jsx_runtime.JSX.Element;
660
+ Callout: typeof Callout;
661
+ Accordion: typeof Accordion;
662
+ AccordionItem: typeof AccordionItem;
663
+ Tabs: typeof Tabs;
664
+ Tab: typeof Tab;
665
+ Image: typeof Image;
666
+ Video: typeof Video;
667
+ Card: typeof Card;
668
+ CardGrid: typeof CardGrid;
669
+ ImageCard: typeof ImageCard;
670
+ ImageCardGrid: typeof ImageCardGrid;
671
+ Steps: typeof Steps;
672
+ Step: typeof Step;
673
+ Icon: typeof Icon;
674
+ Mermaid: typeof Mermaid;
675
+ Math: typeof Math;
676
+ Columns: typeof Columns;
677
+ Column: typeof Column;
678
+ Badge: typeof Badge$1;
679
+ Tooltip: typeof Tooltip;
680
+ Frame: typeof Frame;
681
+ ApiEndpoint: typeof ApiEndpoint;
682
+ ApiParams: typeof ApiParams;
683
+ ApiResponse: typeof ApiResponse;
684
+ ApiPlayground: typeof ApiPlayground;
685
+ ApiReference: typeof ApiReference;
686
+ };
687
+
688
+ declare function MdxHotReload(): null;
689
+
690
+ interface MobileDocLayoutProps {
691
+ header: ReactNode;
692
+ docs: Doc[];
693
+ version: string;
694
+ content: ReactNode;
695
+ toc: ReactNode;
696
+ config: SpecraConfig;
697
+ activeTabGroup?: string;
698
+ onTabChange?: (tabId: string) => void;
699
+ }
700
+ declare function MobileDocLayout({ header, docs, version, content, toc, config, activeTabGroup, onTabChange }: MobileDocLayoutProps): react_jsx_runtime.JSX.Element;
701
+
702
+ interface NotFoundContentProps {
703
+ version: string;
704
+ }
705
+ declare function NotFoundContent({ version }: NotFoundContentProps): react_jsx_runtime.JSX.Element;
706
+
707
+ declare function SearchHighlight(): null;
708
+
709
+ interface SearchModalProps {
710
+ isOpen: boolean;
711
+ onClose: () => void;
712
+ config: SpecraConfig;
713
+ }
714
+ declare function SearchModal({ isOpen, onClose, config }: SearchModalProps): react_jsx_runtime.JSX.Element;
715
+
716
+ declare function SidebarSkeleton(): react_jsx_runtime.JSX.Element;
717
+
718
+ interface DocItem {
719
+ title: string;
720
+ slug: string;
721
+ filePath: string;
722
+ section?: string;
723
+ group?: string;
724
+ sidebar?: string;
725
+ sidebar_position?: number;
726
+ categoryLabel?: string;
727
+ categoryPosition?: number;
728
+ categoryCollapsible?: boolean;
729
+ categoryCollapsed?: boolean;
730
+ categoryIcon?: string;
731
+ categoryTabGroup?: string;
732
+ meta?: {
733
+ icon?: string;
734
+ tab_group?: string;
735
+ [key: string]: any;
736
+ };
737
+ }
738
+ interface SidebarProps {
739
+ docs: DocItem[];
740
+ version: string;
741
+ onLinkClick?: () => void;
742
+ config: SpecraConfig;
743
+ activeTabGroup?: string;
744
+ }
745
+ declare function Sidebar({ docs, version, onLinkClick, config, activeTabGroup }: SidebarProps): react_jsx_runtime.JSX.Element | null;
746
+
747
+ interface SiteBannerProps {
748
+ config: SpecraConfig;
749
+ }
750
+ declare function SiteBanner({ config }: SiteBannerProps): react_jsx_runtime.JSX.Element | null;
751
+
752
+ interface TabContextType {
753
+ activeTabGroup: string;
754
+ setActiveTabGroup: (tabId: string) => void;
755
+ }
756
+ declare function TabProvider({ children, defaultTab }: {
757
+ children: ReactNode;
758
+ defaultTab: string;
759
+ }): react_jsx_runtime.JSX.Element;
760
+ declare function useTabContext(): TabContextType;
761
+
762
+ interface TabGroupsProps {
763
+ tabGroups: TabGroup[];
764
+ activeTabId?: string;
765
+ onTabChange?: (tabId: string) => void;
766
+ }
767
+ declare function TabGroups({ tabGroups, activeTabId, onTabChange }: TabGroupsProps): react_jsx_runtime.JSX.Element | null;
768
+
769
+ interface TOCItem {
770
+ id: string;
771
+ title: string;
772
+ level: number;
773
+ }
774
+ interface TableOfContentsProps {
775
+ items: TOCItem[];
776
+ config: SpecraConfig;
777
+ }
778
+ declare function TableOfContents({ items, config }: TableOfContentsProps): react_jsx_runtime.JSX.Element | null;
779
+
780
+ declare function ThemeToggle(): react_jsx_runtime.JSX.Element;
781
+
782
+ interface VersionSwitcherProps {
783
+ currentVersion: string;
784
+ versions: string[];
785
+ }
786
+ declare function VersionSwitcher({ currentVersion, versions }: VersionSwitcherProps): react_jsx_runtime.JSX.Element;
787
+
788
+ declare const badgeVariants: (props?: ({
789
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
790
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
791
+ declare function Badge({ className, variant, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
792
+ asChild?: boolean;
793
+ }): react_jsx_runtime.JSX.Element;
794
+
795
+ declare const buttonVariants: (props?: ({
796
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
797
+ size?: "default" | "icon" | "sm" | "lg" | "icon-sm" | "icon-lg" | null | undefined;
798
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
799
+ declare function Button({ className, variant, size, asChild, ...props }: React$1.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
800
+ asChild?: boolean;
801
+ }): react_jsx_runtime.JSX.Element;
802
+
803
+ declare function Dialog({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
804
+ declare function DialogTrigger({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
805
+ declare function DialogPortal({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
806
+ declare function DialogClose({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Close>): react_jsx_runtime.JSX.Element;
807
+ declare function DialogOverlay({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
808
+ declare function DialogContent({ className, children, showCloseButton, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Content> & {
809
+ showCloseButton?: boolean;
810
+ }): react_jsx_runtime.JSX.Element;
811
+ declare function DialogHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
812
+ declare function DialogFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
813
+ declare function DialogTitle({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
814
+ declare function DialogDescription({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
815
+
816
+ declare function Input({ className, type, ...props }: React$1.ComponentProps<"input">): react_jsx_runtime.JSX.Element;
817
+
818
+ declare function Textarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
819
+
820
+ declare function VersionNotFound(): react_jsx_runtime.JSX.Element;
821
+
822
+ export { Accordion, AccordionItem, ApiEndpoint, ApiParams, ApiPlayground, ApiReference, ApiResponse, ApiResponse as ApiResponseDisplay, Badge, Breadcrumb, Button, COMPONENT_TEXT_PROPS, Callout, Card, CardGrid, CategoryIndex, CodeBlock, Column, Columns, DevModeBadge, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Badge$1 as DocBadge, DocLayout, DocLayoutWrapper, DocLoading, DocMetadata, DocNavigation, DocTags, DraftBadge, Footer, Frame, Header, HotReloadIndicator, Icon, Image, ImageCard, ImageCardGrid, Input, Math, MdxHotReload, Mermaid, MobileDocLayout, NotFoundContent, SearchHighlight, SearchModal, Sidebar, SidebarSkeleton, SiteBanner, Step, Steps, Tab, TabGroups, TabProvider, TableOfContents, Tabs, Textarea, ThemeToggle, Tooltip, VersionNotFound, VersionSwitcher, Video, badgeVariants, buttonVariants, extractComponentPropsText, extractSearchText, mdxComponents, useTabContext };