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
package/dist/index.css ADDED
@@ -0,0 +1,297 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+
4
+ /* src/styles/globals.css */
5
+ @plugin "@tailwindcss/typography";
6
+ @import "katex/dist/katex.min.css";
7
+ @source "../**/*.{js,ts,jsx,tsx}";
8
+ @custom-variant dark (&:is(.dark *));
9
+ :root {
10
+ --background: oklch(0.99 0 0);
11
+ --foreground: oklch(0.12 0 0);
12
+ --card: oklch(1 0 0);
13
+ --card-foreground: oklch(0.12 0 0);
14
+ --popover: oklch(1 0 0);
15
+ --popover-foreground: oklch(0.12 0 0);
16
+ --primary: oklch(27.025% 0.14091 290.376);
17
+ --primary-foreground: oklch(0.99 0 0);
18
+ --secondary: oklch(0.96 0 0);
19
+ --secondary-foreground: oklch(0.15 0 0);
20
+ --muted: oklch(0.96 0 0);
21
+ --muted-foreground: oklch(0.45 0 0);
22
+ --accent: oklch(0.96 0 0);
23
+ --accent-foreground: oklch(0.15 0 0);
24
+ --destructive: oklch(0.55 0.25 27.325);
25
+ --destructive-foreground: oklch(0.99 0 0);
26
+ --border: oklch(0.90 0 0);
27
+ --input: oklch(0.90 0 0);
28
+ --ring: oklch(0.50 0.24 264.376);
29
+ --chart-1: oklch(0.646 0.222 41.116);
30
+ --chart-2: oklch(0.6 0.118 184.704);
31
+ --chart-3: oklch(0.398 0.07 227.392);
32
+ --chart-4: oklch(0.828 0.189 84.429);
33
+ --chart-5: oklch(0.769 0.188 70.08);
34
+ --radius: 0.625rem;
35
+ --sidebar: oklch(0.99 0 0);
36
+ --sidebar-foreground: oklch(0.12 0 0);
37
+ --sidebar-primary: oklch(0.15 0 0);
38
+ --sidebar-primary-foreground: oklch(0.99 0 0);
39
+ --sidebar-accent: oklch(0.96 0 0);
40
+ --sidebar-accent-foreground: oklch(0.15 0 0);
41
+ --sidebar-border: oklch(0.90 0 0);
42
+ --sidebar-ring: oklch(0.50 0.24 264.376);
43
+ }
44
+ .dark {
45
+ --background: oklch(0.09 0 0);
46
+ --foreground: oklch(0.98 0 0);
47
+ --card: oklch(0.12 0 0);
48
+ --card-foreground: oklch(0.98 0 0);
49
+ --popover: oklch(0.12 0 0);
50
+ --popover-foreground: oklch(0.98 0 0);
51
+ --primary: oklch(0.65 0.25 264.376);
52
+ --primary-foreground: oklch(0.98 0 0);
53
+ --secondary: oklch(0.18 0 0);
54
+ --secondary-foreground: oklch(0.98 0 0);
55
+ --muted: oklch(0.18 0 0);
56
+ --muted-foreground: oklch(0.65 0 0);
57
+ --accent: oklch(0.18 0 0);
58
+ --accent-foreground: oklch(0.98 0 0);
59
+ --destructive: oklch(0.55 0.22 27.325);
60
+ --destructive-foreground: oklch(0.98 0 0);
61
+ --border: oklch(0.22 0 0);
62
+ --input: oklch(0.22 0 0);
63
+ --ring: oklch(0.65 0.25 264.376);
64
+ --chart-1: oklch(0.488 0.243 264.376);
65
+ --chart-2: oklch(0.696 0.17 162.48);
66
+ --chart-3: oklch(0.769 0.188 70.08);
67
+ --chart-4: oklch(0.627 0.265 303.9);
68
+ --chart-5: oklch(0.645 0.246 16.439);
69
+ --sidebar: oklch(0.09 0 0);
70
+ --sidebar-foreground: oklch(0.98 0 0);
71
+ --sidebar-primary: oklch(0.65 0.25 264.376);
72
+ --sidebar-primary-foreground: oklch(0.98 0 0);
73
+ --sidebar-accent: oklch(0.18 0 0);
74
+ --sidebar-accent-foreground: oklch(0.98 0 0);
75
+ --sidebar-border: oklch(0.22 0 0);
76
+ --sidebar-ring: oklch(0.65 0.25 264.376);
77
+ --code: oklch(0.75 0.15 264.376);
78
+ --code-bg: oklch(0.12 0 0);
79
+ --code-fg: oklch(0.92 0 0);
80
+ }
81
+ @theme inline { --font-sans: "Geist", "Geist Fallback"; --font-mono: "Geist Mono", "Geist Mono Fallback"; --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-destructive-foreground: var(--destructive-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); --color-code: var(--code); --color-code-bg: var(--code-bg); --color-code-fg: var(--code-fg); }
82
+ @layer base {
83
+ * {
84
+ @apply border-border outline-ring/50;
85
+ }
86
+ html {
87
+ scroll-behavior: smooth;
88
+ scrollbar-gutter: stable;
89
+ }
90
+ body {
91
+ @apply bg-background text-foreground;
92
+ }
93
+ a {
94
+ text-decoration: none;
95
+ }
96
+ main .prose a {
97
+ color: var(--color-primary);
98
+ text-decoration: none;
99
+ transition: color 0.2s ease, text-decoration 0.2s ease;
100
+ }
101
+ main .prose a:hover {
102
+ text-decoration: none !important;
103
+ color: var(--color-primary);
104
+ }
105
+ .prose a {
106
+ color: var(--color-primary);
107
+ text-decoration: none !important;
108
+ font-weight: 500;
109
+ }
110
+ .prose a:hover {
111
+ text-decoration: none !important;
112
+ color: var(--color-primary);
113
+ }
114
+ aside a {
115
+ text-decoration: none;
116
+ }
117
+ aside a:hover {
118
+ text-decoration: none;
119
+ }
120
+ .image-card-link,
121
+ .card-link {
122
+ text-decoration: none !important;
123
+ }
124
+ .image-card-link:hover,
125
+ .card-link:hover {
126
+ text-decoration: none !important;
127
+ }
128
+ .image-card-link *,
129
+ .card-link * {
130
+ text-decoration: none !important;
131
+ }
132
+ body::-webkit-scrollbar {
133
+ width: 6px;
134
+ }
135
+ body::-webkit-scrollbar-track {
136
+ background: oklch(0.95 0 0);
137
+ }
138
+ body::-webkit-scrollbar-thumb {
139
+ background: oklch(0.75 0 0);
140
+ border-radius: 6px;
141
+ border: 2px solid oklch(0.95 0 0);
142
+ }
143
+ body::-webkit-scrollbar-thumb:hover {
144
+ background: oklch(0.65 0 0);
145
+ }
146
+ .dark body::-webkit-scrollbar-track {
147
+ background: oklch(0.12 0 0);
148
+ }
149
+ .dark body::-webkit-scrollbar-thumb {
150
+ background: oklch(0.25 0 0);
151
+ border: 2px solid oklch(0.12 0 0);
152
+ }
153
+ .dark body::-webkit-scrollbar-thumb:hover {
154
+ background: oklch(0.35 0 0);
155
+ }
156
+ body {
157
+ scrollbar-width: thin;
158
+ scrollbar-color: oklch(0.75 0 0) oklch(0.95 0 0);
159
+ }
160
+ .dark body {
161
+ scrollbar-color: oklch(0.25 0 0) oklch(0.12 0 0);
162
+ }
163
+ aside::-webkit-scrollbar,
164
+ aside *::-webkit-scrollbar {
165
+ width: 4px;
166
+ }
167
+ aside::-webkit-scrollbar-track,
168
+ aside *::-webkit-scrollbar-track {
169
+ background: transparent;
170
+ }
171
+ aside::-webkit-scrollbar-thumb,
172
+ aside *::-webkit-scrollbar-thumb {
173
+ background: oklch(0.7 0 0 / 0.3);
174
+ border-radius: 4px;
175
+ }
176
+ aside::-webkit-scrollbar-thumb:hover,
177
+ aside *::-webkit-scrollbar-thumb:hover {
178
+ background: oklch(0.6 0 0 / 0.5);
179
+ }
180
+ .dark aside::-webkit-scrollbar-thumb,
181
+ .dark aside *::-webkit-scrollbar-thumb {
182
+ background: oklch(0.5 0 0 / 0.3);
183
+ }
184
+ .dark aside::-webkit-scrollbar-thumb:hover,
185
+ .dark aside *::-webkit-scrollbar-thumb:hover {
186
+ background: oklch(0.6 0 0 / 0.5);
187
+ }
188
+ aside,
189
+ aside * {
190
+ scrollbar-width: thin;
191
+ scrollbar-color: oklch(0.7 0 0 / 0.3) transparent;
192
+ }
193
+ .dark aside,
194
+ .dark aside * {
195
+ scrollbar-color: oklch(0.5 0 0 / 0.3) transparent;
196
+ }
197
+ .token-comment {
198
+ color: #008000;
199
+ font-style: italic;
200
+ }
201
+ .token-string {
202
+ color: #a31515;
203
+ }
204
+ .token-keyword {
205
+ color: #0000ff;
206
+ font-weight: 600;
207
+ }
208
+ .token-number {
209
+ color: #098658;
210
+ }
211
+ .token-function {
212
+ color: #795e26;
213
+ }
214
+ .token-operator {
215
+ color: #000000;
216
+ }
217
+ .token-property {
218
+ color: #001080;
219
+ }
220
+ .token-punctuation {
221
+ color: #000000;
222
+ }
223
+ .token-text {
224
+ color: #000000;
225
+ }
226
+ .dark .token-comment {
227
+ color: #6a9955;
228
+ }
229
+ .dark .token-string {
230
+ color: #ce9178;
231
+ }
232
+ .dark .token-keyword {
233
+ color: #569cd6;
234
+ }
235
+ .dark .token-number {
236
+ color: #b5cea8;
237
+ }
238
+ .dark .token-function {
239
+ color: #dcdcaa;
240
+ }
241
+ .dark .token-operator {
242
+ color: #d4d4d4;
243
+ }
244
+ .dark .token-property {
245
+ color: #9cdcfe;
246
+ }
247
+ .dark .token-punctuation {
248
+ color: #d4d4d4;
249
+ }
250
+ .dark .token-text {
251
+ color: #d4d4d4;
252
+ }
253
+ }
254
+ pre code {
255
+ background: none;
256
+ border: none;
257
+ }
258
+ .prose h1 {
259
+ font-weight: 700;
260
+ margin-top: 1.5rem;
261
+ margin-bottom: 0.75rem;
262
+ }
263
+ .prose h2 {
264
+ font-weight: 600;
265
+ margin-top: 2rem;
266
+ margin-bottom: 0.75rem;
267
+ }
268
+ .prose h3 {
269
+ font-weight: 600;
270
+ margin-top: 1.5rem;
271
+ margin-bottom: 0.5rem;
272
+ }
273
+ .prose h4 {
274
+ font-weight: 600;
275
+ margin-top: 1.25rem;
276
+ margin-bottom: 0.5rem;
277
+ }
278
+ .prose h5 {
279
+ font-weight: 500;
280
+ margin-top: 1rem;
281
+ margin-bottom: 0.5rem;
282
+ }
283
+ .prose h6 {
284
+ font-weight: 500;
285
+ margin-top: 1rem;
286
+ margin-bottom: 0.5rem;
287
+ }
288
+ .prose p {
289
+ margin-top: 0.5rem;
290
+ margin-bottom: 0.75rem;
291
+ }
292
+ html body[data-scroll-locked] {
293
+ overflow: visible !important;
294
+ margin-right: 0 !important;
295
+ padding-right: 0 !important;
296
+ }
297
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles/globals.css"],"sourcesContent":["@import \"tailwindcss\";\n@import \"tw-animate-css\";\n@plugin \"@tailwindcss/typography\";\n@import \"katex/dist/katex.min.css\";\n\n/* Scan SDK source files for Tailwind utilities */\n@source \"../**/*.{js,ts,jsx,tsx}\";\n\n@custom-variant dark (&:is(.dark *));\n\n:root {\n --background: oklch(0.99 0 0);\n --foreground: oklch(0.12 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.12 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.12 0 0);\n /* --primary: oklch(0.50 0.24 264.376); */\n --primary: oklch(27.025% 0.14091 290.376);\n --primary-foreground: oklch(0.99 0 0);\n --secondary: oklch(0.96 0 0);\n --secondary-foreground: oklch(0.15 0 0);\n --muted: oklch(0.96 0 0);\n --muted-foreground: oklch(0.45 0 0);\n --accent: oklch(0.96 0 0);\n --accent-foreground: oklch(0.15 0 0);\n --destructive: oklch(0.55 0.25 27.325);\n --destructive-foreground: oklch(0.99 0 0);\n --border: oklch(0.90 0 0);\n --input: oklch(0.90 0 0);\n --ring: oklch(0.50 0.24 264.376);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: oklch(0.99 0 0);\n --sidebar-foreground: oklch(0.12 0 0);\n --sidebar-primary: oklch(0.15 0 0);\n --sidebar-primary-foreground: oklch(0.99 0 0);\n --sidebar-accent: oklch(0.96 0 0);\n --sidebar-accent-foreground: oklch(0.15 0 0);\n --sidebar-border: oklch(0.90 0 0);\n --sidebar-ring: oklch(0.50 0.24 264.376);\n}\n\n.dark {\n /* Updated dark theme to match Vercel/Mintlify documentation aesthetic */\n --background: oklch(0.09 0 0);\n --foreground: oklch(0.98 0 0);\n --card: oklch(0.12 0 0);\n --card-foreground: oklch(0.98 0 0);\n --popover: oklch(0.12 0 0);\n --popover-foreground: oklch(0.98 0 0);\n --primary: oklch(0.65 0.25 264.376);\n --primary-foreground: oklch(0.98 0 0);\n --secondary: oklch(0.18 0 0);\n --secondary-foreground: oklch(0.98 0 0);\n --muted: oklch(0.18 0 0);\n --muted-foreground: oklch(0.65 0 0);\n --accent: oklch(0.18 0 0);\n --accent-foreground: oklch(0.98 0 0);\n --destructive: oklch(0.55 0.22 27.325);\n --destructive-foreground: oklch(0.98 0 0);\n --border: oklch(0.22 0 0);\n --input: oklch(0.22 0 0);\n --ring: oklch(0.65 0.25 264.376);\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --sidebar: oklch(0.09 0 0);\n --sidebar-foreground: oklch(0.98 0 0);\n --sidebar-primary: oklch(0.65 0.25 264.376);\n --sidebar-primary-foreground: oklch(0.98 0 0);\n --sidebar-accent: oklch(0.18 0 0);\n --sidebar-accent-foreground: oklch(0.98 0 0);\n --sidebar-border: oklch(0.22 0 0);\n --sidebar-ring: oklch(0.65 0.25 264.376);\n\n /* Added custom tokens for code blocks */\n --code: oklch(0.75 0.15 264.376);\n --code-bg: oklch(0.12 0 0);\n --code-fg: oklch(0.92 0 0);\n}\n\n@theme inline {\n --font-sans: \"Geist\", \"Geist Fallback\";\n --font-mono: \"Geist Mono\", \"Geist Mono Fallback\";\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n\n /* Added code color tokens */\n --color-code: var(--code);\n --color-code-bg: var(--code-bg);\n --color-code-fg: var(--code-fg);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n\n html {\n scroll-behavior: smooth;\n /* Always reserve space for scrollbar to prevent layout shift */\n scrollbar-gutter: stable;\n }\n\n body {\n @apply bg-background text-foreground;\n }\n\n a {\n text-decoration: none;\n }\n\n /* Link styling - primary color, no underline until hover */\n main .prose a {\n color: var(--color-primary);\n text-decoration: none;\n transition: color 0.2s ease, text-decoration 0.2s ease;\n }\n\n main .prose a:hover {\n text-decoration: none !important;\n color: var(--color-primary);\n }\n\n /* Prose links in documentation */\n .prose a {\n color: var(--color-primary);\n text-decoration: none !important;\n font-weight: 500;\n }\n\n .prose a:hover {\n text-decoration: none !important;\n color: var(--color-primary);\n }\n\n /* Sidebar links - no underline on hover */\n aside a {\n text-decoration: none;\n }\n\n aside a:hover {\n text-decoration: none;\n }\n\n /* Card and ImageCard links - never underline */\n .image-card-link,\n .card-link {\n text-decoration: none !important;\n }\n\n .image-card-link:hover,\n .card-link:hover {\n text-decoration: none !important;\n }\n\n .image-card-link *,\n .card-link * {\n text-decoration: none !important;\n }\n\n /* Custom scrollbar styling for body only */\n body::-webkit-scrollbar {\n width: 6px;\n }\n\n body::-webkit-scrollbar-track {\n background: oklch(0.95 0 0);\n }\n\n body::-webkit-scrollbar-thumb {\n background: oklch(0.75 0 0);\n border-radius: 6px;\n border: 2px solid oklch(0.95 0 0);\n }\n\n body::-webkit-scrollbar-thumb:hover {\n background: oklch(0.65 0 0);\n }\n\n /* Dark mode body scrollbar */\n .dark body::-webkit-scrollbar-track {\n background: oklch(0.12 0 0);\n }\n\n .dark body::-webkit-scrollbar-thumb {\n background: oklch(0.25 0 0);\n border: 2px solid oklch(0.12 0 0);\n }\n\n .dark body::-webkit-scrollbar-thumb:hover {\n background: oklch(0.35 0 0);\n }\n\n /* Firefox scrollbar for body only */\n body {\n scrollbar-width: thin;\n scrollbar-color: oklch(0.75 0 0) oklch(0.95 0 0);\n }\n\n .dark body {\n scrollbar-color: oklch(0.25 0 0) oklch(0.12 0 0);\n }\n\n /* Sidebar scrollbar styling - thin and subtle */\n aside::-webkit-scrollbar,\n aside *::-webkit-scrollbar {\n width: 4px;\n }\n\n aside::-webkit-scrollbar-track,\n aside *::-webkit-scrollbar-track {\n background: transparent;\n }\n\n aside::-webkit-scrollbar-thumb,\n aside *::-webkit-scrollbar-thumb {\n background: oklch(0.7 0 0 / 0.3);\n border-radius: 4px;\n }\n\n aside::-webkit-scrollbar-thumb:hover,\n aside *::-webkit-scrollbar-thumb:hover {\n background: oklch(0.6 0 0 / 0.5);\n }\n\n /* Dark mode sidebar scrollbar */\n .dark aside::-webkit-scrollbar-thumb,\n .dark aside *::-webkit-scrollbar-thumb {\n background: oklch(0.5 0 0 / 0.3);\n }\n\n .dark aside::-webkit-scrollbar-thumb:hover,\n .dark aside *::-webkit-scrollbar-thumb:hover {\n background: oklch(0.6 0 0 / 0.5);\n }\n\n /* Firefox sidebar scrollbar */\n aside,\n aside * {\n scrollbar-width: thin;\n scrollbar-color: oklch(0.7 0 0 / 0.3) transparent;\n }\n\n .dark aside,\n .dark aside * {\n scrollbar-color: oklch(0.5 0 0 / 0.3) transparent;\n }\n\n /* Light mode syntax highlighting - VS Code Light+ theme */\n .token-comment {\n color: #008000;\n font-style: italic;\n }\n\n .token-string {\n color: #a31515;\n }\n\n .token-keyword {\n color: #0000ff;\n font-weight: 600;\n }\n\n .token-number {\n color: #098658;\n }\n\n .token-function {\n color: #795e26;\n }\n\n .token-operator {\n color: #000000;\n }\n\n .token-property {\n color: #001080;\n }\n\n .token-punctuation {\n color: #000000;\n }\n\n .token-text {\n color: #000000;\n }\n\n /* Dark mode syntax highlighting - VS Code Dark+ theme */\n .dark .token-comment {\n color: #6a9955;\n }\n\n .dark .token-string {\n color: #ce9178;\n }\n\n .dark .token-keyword {\n color: #569cd6;\n }\n\n .dark .token-number {\n color: #b5cea8;\n }\n\n .dark .token-function {\n color: #dcdcaa;\n }\n\n .dark .token-operator {\n color: #d4d4d4;\n }\n\n .dark .token-property {\n color: #9cdcfe;\n }\n\n .dark .token-punctuation {\n color: #d4d4d4;\n }\n\n .dark .token-text {\n color: #d4d4d4;\n }\n}\n\n\npre code {\n background: none;\n border: none;\n}\n\n/* Heading styles - lighter weight and reduced margins */\n.prose h1 {\n font-weight: 700;\n margin-top: 1.5rem;\n margin-bottom: 0.75rem;\n}\n\n.prose h2 {\n font-weight: 600;\n margin-top: 2rem;\n margin-bottom: 0.75rem;\n}\n\n.prose h3 {\n font-weight: 600;\n margin-top: 1.5rem;\n margin-bottom: 0.5rem;\n}\n\n.prose h4 {\n font-weight: 600;\n margin-top: 1.25rem;\n margin-bottom: 0.5rem;\n}\n\n.prose h5 {\n font-weight: 500;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n}\n\n.prose h6 {\n font-weight: 500;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n}\n\n/* Paragraph styles - reduced margins */\n.prose p {\n margin-top: 0.5rem;\n margin-bottom: 0.75rem;\n}\n\n/* Prevent layout shift when dialog opens */\n/* html {\n scrollbar-gutter: stable;\n} */\n\n\nhtml body[data-scroll-locked] {\n overflow: visible !important;\n margin-right: 0 !important;\n padding-right: 0 !important;\n}"],"mappings":"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","names":[]}