@cloudvoyant/vortex-ui 0.17.0-rc.202609040136.45c8986

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 (61) hide show
  1. package/dist/index.cjs +1675 -0
  2. package/dist/index.d.cts +723 -0
  3. package/dist/index.d.ts +723 -0
  4. package/dist/index.js +1383 -0
  5. package/package.json +67 -0
  6. package/src/components.css +36 -0
  7. package/src/theme.css +189 -0
  8. package/src/themes/amber-minimal.css +83 -0
  9. package/src/themes/amethyst-haze.css +83 -0
  10. package/src/themes/anthropic.css +60 -0
  11. package/src/themes/anyscale.css +73 -0
  12. package/src/themes/bold-tech.css +82 -0
  13. package/src/themes/bubblegum.css +85 -0
  14. package/src/themes/caffeine.css +73 -0
  15. package/src/themes/candyland.css +75 -0
  16. package/src/themes/catppuccin.css +81 -0
  17. package/src/themes/claude.css +81 -0
  18. package/src/themes/claymorphism.css +83 -0
  19. package/src/themes/clean-slate.css +82 -0
  20. package/src/themes/cosmic-night.css +82 -0
  21. package/src/themes/cyberpunk.css +81 -0
  22. package/src/themes/darkmatter.css +84 -0
  23. package/src/themes/default.css +62 -0
  24. package/src/themes/doom-64.css +95 -0
  25. package/src/themes/elegant-luxury.css +82 -0
  26. package/src/themes/graphite.css +59 -0
  27. package/src/themes/green.css +57 -0
  28. package/src/themes/kodama-grove.css +81 -0
  29. package/src/themes/lambda.css +63 -0
  30. package/src/themes/mdbook.css +108 -0
  31. package/src/themes/midnight-bloom.css +82 -0
  32. package/src/themes/mocha-mousse.css +82 -0
  33. package/src/themes/modern-minimal.css +76 -0
  34. package/src/themes/mono.css +81 -0
  35. package/src/themes/nature.css +76 -0
  36. package/src/themes/neo-brutalism.css +81 -0
  37. package/src/themes/northern-lights.css +76 -0
  38. package/src/themes/notebook.css +95 -0
  39. package/src/themes/ocean-breeze.css +82 -0
  40. package/src/themes/openai.css +59 -0
  41. package/src/themes/pastel-dreams.css +82 -0
  42. package/src/themes/perpetuity.css +91 -0
  43. package/src/themes/quantum-rose.css +85 -0
  44. package/src/themes/retro-arcade.css +81 -0
  45. package/src/themes/rose.css +57 -0
  46. package/src/themes/sage-garden.css +84 -0
  47. package/src/themes/slate.css +57 -0
  48. package/src/themes/soft-pop.css +95 -0
  49. package/src/themes/solar-dusk.css +83 -0
  50. package/src/themes/starry-night.css +74 -0
  51. package/src/themes/sunset-horizon.css +82 -0
  52. package/src/themes/supabase.css +83 -0
  53. package/src/themes/t3-chat.css +72 -0
  54. package/src/themes/tangerine.css +81 -0
  55. package/src/themes/twitter.css +82 -0
  56. package/src/themes/vercel.css +85 -0
  57. package/src/themes/vintage-paper.css +82 -0
  58. package/src/themes/violet-bloom.css +95 -0
  59. package/src/themes/vitepress.css +60 -0
  60. package/src/themes/vortex-ui.css +88 -0
  61. package/src/themes.css +4184 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,1675 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ SIDEBAR_KEYBOARD_SHORTCUT: () => SIDEBAR_KEYBOARD_SHORTCUT,
34
+ SIDEBAR_WIDTH: () => SIDEBAR_WIDTH,
35
+ SIDEBAR_WIDTH_ICON: () => SIDEBAR_WIDTH_ICON,
36
+ SIDEBAR_WIDTH_MOBILE: () => SIDEBAR_WIDTH_MOBILE,
37
+ THEMES: () => THEMES,
38
+ THEME_NAMES: () => THEME_NAMES,
39
+ badgeVariants: () => badgeVariants,
40
+ buildChartDefinition: () => buildChartDefinition,
41
+ buttonVariants: () => buttonVariants,
42
+ cardBodyBase: () => cardBodyBase,
43
+ cardCoverVariants: () => cardCoverVariants,
44
+ cardDescriptionBase: () => cardDescriptionBase,
45
+ cardFooterBase: () => cardFooterBase,
46
+ cardHeaderBase: () => cardHeaderBase,
47
+ cardTitleBase: () => cardTitleBase,
48
+ cardVariants: () => cardVariants,
49
+ centerBase: () => centerBase,
50
+ chartPlaceholderBase: () => chartPlaceholderBase,
51
+ chartPlaceholderLabelBase: () => chartPlaceholderLabelBase,
52
+ chartRootBase: () => chartRootBase,
53
+ checkboxGroupBase: () => checkboxGroupBase,
54
+ checkboxIndicatorBase: () => checkboxIndicatorBase,
55
+ checkboxLabelBase: () => checkboxLabelBase,
56
+ checkboxVariants: () => checkboxVariants,
57
+ clipboardTriggerBase: () => clipboardTriggerBase,
58
+ cn: () => cn,
59
+ codeBlockBodyBase: () => codeBlockBodyBase,
60
+ codeBlockBodyScrollableBase: () => codeBlockBodyScrollableBase,
61
+ codeBlockContentBase: () => codeBlockContentBase,
62
+ codeBlockCopyFloatBase: () => codeBlockCopyFloatBase,
63
+ codeBlockHeaderBase: () => codeBlockHeaderBase,
64
+ codeBlockHeaderInfoBase: () => codeBlockHeaderInfoBase,
65
+ codeBlockHighlightBase: () => codeBlockHighlightBase,
66
+ codeBlockLineNumbersBase: () => codeBlockLineNumbersBase,
67
+ codeBlockLoadingBase: () => codeBlockLoadingBase,
68
+ codeBlockRootBase: () => codeBlockRootBase,
69
+ codeBlockSpinnerBase: () => codeBlockSpinnerBase,
70
+ codeBlockTitleBase: () => codeBlockTitleBase,
71
+ colBase: () => colBase,
72
+ comboboxClearTriggerBase: () => comboboxClearTriggerBase,
73
+ comboboxContentBase: () => comboboxContentBase,
74
+ comboboxControlBase: () => comboboxControlBase,
75
+ comboboxEmptyBase: () => comboboxEmptyBase,
76
+ comboboxInputBase: () => comboboxInputBase,
77
+ comboboxItemGroupLabelBase: () => comboboxItemGroupLabelBase,
78
+ comboboxItemIndicatorBase: () => comboboxItemIndicatorBase,
79
+ comboboxItemVariants: () => comboboxItemVariants,
80
+ comboboxListBase: () => comboboxListBase,
81
+ comboboxPositionerBase: () => comboboxPositionerBase,
82
+ comboboxTriggerBase: () => comboboxTriggerBase,
83
+ containerBase: () => containerBase,
84
+ defaultChartColor: () => defaultChartColor,
85
+ dialogBackdropBase: () => dialogBackdropBase,
86
+ dialogCloseTriggerBase: () => dialogCloseTriggerBase,
87
+ dialogContentBase: () => dialogContentBase,
88
+ dialogDescriptionBase: () => dialogDescriptionBase,
89
+ dialogFooterBase: () => dialogFooterBase,
90
+ dialogFooterStickyBase: () => dialogFooterStickyBase,
91
+ dialogFullscreenContentBase: () => dialogFullscreenContentBase,
92
+ dialogHeaderBase: () => dialogHeaderBase,
93
+ dialogHeaderStickyBase: () => dialogHeaderStickyBase,
94
+ dialogPositionerBase: () => dialogPositionerBase,
95
+ dialogTitleBase: () => dialogTitleBase,
96
+ extractYouTubeId: () => extractYouTubeId,
97
+ feedbackCorrectBase: () => feedbackCorrectBase,
98
+ feedbackExplanationBase: () => feedbackExplanationBase,
99
+ feedbackIncorrectBase: () => feedbackIncorrectBase,
100
+ fetchYouTubeMetadata: () => fetchYouTubeMetadata,
101
+ fieldErrorBase: () => fieldErrorBase,
102
+ fieldHelperBase: () => fieldHelperBase,
103
+ fieldLabelBase: () => fieldLabelBase,
104
+ fieldRequiredIndicatorBase: () => fieldRequiredIndicatorBase,
105
+ fieldRootBase: () => fieldRootBase,
106
+ fieldsetErrorBase: () => fieldsetErrorBase,
107
+ fieldsetHelperBase: () => fieldsetHelperBase,
108
+ fieldsetLegendBase: () => fieldsetLegendBase,
109
+ fieldsetRootBase: () => fieldsetRootBase,
110
+ figureCaptionBase: () => figureCaptionBase,
111
+ figureImageBase: () => figureImageBase,
112
+ figureRootBase: () => figureRootBase,
113
+ formatTime: () => formatTime,
114
+ hstackBase: () => hstackBase,
115
+ injectCodeBlockStyles: () => injectCodeBlockStyles,
116
+ inputVariants: () => inputVariants,
117
+ itemVariants: () => itemVariants,
118
+ latexDisplayBase: () => latexDisplayBase,
119
+ latexErrorBase: () => latexErrorBase,
120
+ latexInlineBase: () => latexInlineBase,
121
+ latexRootBase: () => latexRootBase,
122
+ manimCaptionBase: () => manimCaptionBase,
123
+ manimContainerBase: () => manimContainerBase,
124
+ manimErrorBase: () => manimErrorBase,
125
+ manimPlaceholderBase: () => manimPlaceholderBase,
126
+ manimPlaceholderLabelBase: () => manimPlaceholderLabelBase,
127
+ manimRootBase: () => manimRootBase,
128
+ mermaidLoadingBase: () => mermaidLoadingBase,
129
+ mermaidRootBase: () => mermaidRootBase,
130
+ mermaidSourceBase: () => mermaidSourceBase,
131
+ mermaidSvgAspectRatio: () => mermaidSvgAspectRatio,
132
+ mermaidSvgBase: () => mermaidSvgBase,
133
+ nativeSelectIconBase: () => nativeSelectIconBase,
134
+ nativeSelectVariants: () => nativeSelectVariants,
135
+ nativeSelectWrapperBase: () => nativeSelectWrapperBase,
136
+ navbarActionsBase: () => navbarActionsBase,
137
+ navbarActivationAreaBase: () => navbarActivationAreaBase,
138
+ navbarBrandBase: () => navbarBrandBase,
139
+ navbarContainerBase: () => navbarContainerBase,
140
+ navbarDensityVariants: () => navbarDensityVariants,
141
+ navbarMenuBase: () => navbarMenuBase,
142
+ navbarMenuContentBase: () => navbarMenuContentBase,
143
+ navbarMenuIndicatorBase: () => navbarMenuIndicatorBase,
144
+ navbarMenuItemBase: () => navbarMenuItemBase,
145
+ navbarMenuLinkBase: () => navbarMenuLinkBase,
146
+ navbarMenuListBase: () => navbarMenuListBase,
147
+ navbarMenuPlacementVariants: () => navbarMenuPlacementVariants,
148
+ navbarMenuRootBase: () => navbarMenuRootBase,
149
+ navbarMenuTriggerStyle: () => navbarMenuTriggerStyle,
150
+ navbarMenuViewportBase: () => navbarMenuViewportBase,
151
+ navbarMenuViewportPositionerBase: () => navbarMenuViewportPositionerBase,
152
+ navbarMobileActionsBase: () => navbarMobileActionsBase,
153
+ navbarMobileBase: () => navbarMobileBase,
154
+ navbarMobileContentBase: () => navbarMobileContentBase,
155
+ navbarMobileHeaderBase: () => navbarMobileHeaderBase,
156
+ navbarMobileMenuBase: () => navbarMobileMenuBase,
157
+ navbarMobileMenuContentBase: () => navbarMobileMenuContentBase,
158
+ navbarMobileMenuTriggerBase: () => navbarMobileMenuTriggerBase,
159
+ navbarShrunkBase: () => navbarShrunkBase,
160
+ navbarTriggerVariants: () => navbarTriggerVariants,
161
+ navbarVariants: () => navbarVariants,
162
+ noticeDescriptionBase: () => noticeDescriptionBase,
163
+ noticeTitleBase: () => noticeTitleBase,
164
+ noticeVariants: () => noticeVariants,
165
+ numberInputControlBase: () => numberInputControlBase,
166
+ numberInputInputBase: () => numberInputInputBase,
167
+ numberInputRootBase: () => numberInputRootBase,
168
+ numberInputTriggerBase: () => numberInputTriggerBase,
169
+ pageContentBase: () => pageContentBase,
170
+ pageFooterBase: () => pageFooterBase,
171
+ pageGutterAreaBase: () => pageGutterAreaBase,
172
+ pageGutterContentVariants: () => pageGutterContentVariants,
173
+ pageGutterVariants: () => pageGutterVariants,
174
+ pageSectionBase: () => pageSectionBase,
175
+ pageVariants: () => pageVariants,
176
+ paginationEllipsisBase: () => paginationEllipsisBase,
177
+ paginationItemBase: () => paginationItemBase,
178
+ paginationRootBase: () => paginationRootBase,
179
+ paginationTriggerBase: () => paginationTriggerBase,
180
+ parseYouTubeChapters: () => parseYouTubeChapters,
181
+ popoverArrowBase: () => popoverArrowBase,
182
+ popoverCloseTriggerBase: () => popoverCloseTriggerBase,
183
+ popoverContentBase: () => popoverContentBase,
184
+ popoverDescriptionBase: () => popoverDescriptionBase,
185
+ popoverIndicatorBase: () => popoverIndicatorBase,
186
+ popoverPositionerBase: () => popoverPositionerBase,
187
+ popoverTitleBase: () => popoverTitleBase,
188
+ prevNextDirectionBase: () => prevNextDirectionBase,
189
+ prevNextLinkBase: () => prevNextLinkBase,
190
+ prevNextLinkNextBase: () => prevNextLinkNextBase,
191
+ prevNextRootBase: () => prevNextRootBase,
192
+ prevNextSpacerBase: () => prevNextSpacerBase,
193
+ prevNextTitleBase: () => prevNextTitleBase,
194
+ questionCardBase: () => questionCardBase,
195
+ questionCheckButtonBase: () => questionCheckButtonBase,
196
+ questionGroupBase: () => questionGroupBase,
197
+ questionInputBase: () => questionInputBase,
198
+ questionOptionBase: () => questionOptionBase,
199
+ questionOptionCorrectBase: () => questionOptionCorrectBase,
200
+ questionOptionIncorrectBase: () => questionOptionIncorrectBase,
201
+ questionPromptBase: () => questionPromptBase,
202
+ questionUnitBase: () => questionUnitBase,
203
+ quizHeaderBase: () => quizHeaderBase,
204
+ quizResetButtonBase: () => quizResetButtonBase,
205
+ quizResultBase: () => quizResultBase,
206
+ quizResultTextBase: () => quizResultTextBase,
207
+ quizResultTitleBase: () => quizResultTitleBase,
208
+ quizRootBase: () => quizRootBase,
209
+ quizScoreBase: () => quizScoreBase,
210
+ quizSubmitButtonBase: () => quizSubmitButtonBase,
211
+ quizTitleBase: () => quizTitleBase,
212
+ radioGroupItemControlBase: () => radioGroupItemControlBase,
213
+ radioGroupItemTextBase: () => radioGroupItemTextBase,
214
+ radioGroupRootBase: () => radioGroupRootBase,
215
+ renderChartSvgString: () => renderChartSvgString,
216
+ renderCodeToHtml: () => renderCodeToHtml,
217
+ renderMermaidSource: () => renderMermaidSource,
218
+ resolveMermaidThemeVariables: () => resolveMermaidThemeVariables,
219
+ revealChevronBase: () => revealChevronBase,
220
+ revealContentBase: () => revealContentBase,
221
+ revealRootBase: () => revealRootBase,
222
+ revealTriggerBase: () => revealTriggerBase,
223
+ rowBase: () => rowBase,
224
+ scrollContentBase: () => scrollContentBase,
225
+ scrollCornerBase: () => scrollCornerBase,
226
+ scrollRootBase: () => scrollRootBase,
227
+ scrollScrollbarBase: () => scrollScrollbarBase,
228
+ scrollThumbBase: () => scrollThumbBase,
229
+ scrollViewportBase: () => scrollViewportBase,
230
+ selectClearTriggerBase: () => selectClearTriggerBase,
231
+ selectContentBase: () => selectContentBase,
232
+ selectIndicatorBase: () => selectIndicatorBase,
233
+ selectItemBase: () => selectItemBase,
234
+ selectItemGroupLabelBase: () => selectItemGroupLabelBase,
235
+ selectItemIndicatorBase: () => selectItemIndicatorBase,
236
+ selectItemTextBase: () => selectItemTextBase,
237
+ selectPositionerBase: () => selectPositionerBase,
238
+ selectTriggerBase: () => selectTriggerBase,
239
+ selectValueBase: () => selectValueBase,
240
+ sidebarMenuButtonVariants: () => sidebarMenuButtonVariants,
241
+ sidebarStyles: () => sidebarStyles,
242
+ splitterPanelBase: () => splitterPanelBase,
243
+ splitterResizeTriggerBase: () => splitterResizeTriggerBase,
244
+ splitterResizeTriggerIndicatorBase: () => splitterResizeTriggerIndicatorBase,
245
+ splitterResizeTriggerSeparatorBase: () => splitterResizeTriggerSeparatorBase,
246
+ splitterRootBase: () => splitterRootBase,
247
+ stackBase: () => stackBase,
248
+ switchControlBase: () => switchControlBase,
249
+ switchLabelBase: () => switchLabelBase,
250
+ switchThumbBase: () => switchThumbBase,
251
+ switchVariants: () => switchVariants,
252
+ tabsContentBase: () => tabsContentBase,
253
+ tabsIndicatorBase: () => tabsIndicatorBase,
254
+ tabsIndicatorVariants: () => tabsIndicatorVariants,
255
+ tabsListBase: () => tabsListBase,
256
+ tabsListVariants: () => tabsListVariants,
257
+ tabsRootBase: () => tabsRootBase,
258
+ tabsTriggerBase: () => tabsTriggerBase,
259
+ tagsInputClearTriggerBase: () => tagsInputClearTriggerBase,
260
+ tagsInputControlBase: () => tagsInputControlBase,
261
+ tagsInputInputBase: () => tagsInputInputBase,
262
+ tagsInputItemBase: () => tagsInputItemBase,
263
+ tagsInputItemDeleteTriggerBase: () => tagsInputItemDeleteTriggerBase,
264
+ tagsInputItemInputBase: () => tagsInputItemInputBase,
265
+ tagsInputItemTextBase: () => tagsInputItemTextBase,
266
+ tagsInputRootBase: () => tagsInputRootBase,
267
+ textareaBase: () => textareaBase,
268
+ toLaTeX: () => toLaTeX,
269
+ toggleButtonVariants: () => toggleButtonVariants,
270
+ tooltipArrowBase: () => tooltipArrowBase,
271
+ tooltipContentBase: () => tooltipContentBase,
272
+ tooltipPositionerBase: () => tooltipPositionerBase,
273
+ vstackBase: () => vstackBase,
274
+ windowBodyBase: () => windowBodyBase,
275
+ windowCloseTriggerBase: () => windowCloseTriggerBase,
276
+ windowContentBase: () => windowContentBase,
277
+ windowControlBase: () => windowControlBase,
278
+ windowDragTriggerBase: () => windowDragTriggerBase,
279
+ windowHeaderBase: () => windowHeaderBase,
280
+ windowPositionerBase: () => windowPositionerBase,
281
+ windowResizeTriggerBase: () => windowResizeTriggerBase,
282
+ windowStageTriggerBase: () => windowStageTriggerBase,
283
+ windowTitleBase: () => windowTitleBase,
284
+ youtubeChapterButtonBase: () => youtubeChapterButtonBase,
285
+ youtubeChapterLabelBase: () => youtubeChapterLabelBase,
286
+ youtubeChapterTimeBase: () => youtubeChapterTimeBase,
287
+ youtubeChaptersBase: () => youtubeChaptersBase,
288
+ youtubeChaptersChevronBase: () => youtubeChaptersChevronBase,
289
+ youtubeChaptersListBase: () => youtubeChaptersListBase,
290
+ youtubeChaptersSummaryBase: () => youtubeChaptersSummaryBase,
291
+ youtubeDescriptionBase: () => youtubeDescriptionBase,
292
+ youtubeFacadeBase: () => youtubeFacadeBase,
293
+ youtubePlayButtonBase: () => youtubePlayButtonBase,
294
+ youtubePlayButtonInnerBase: () => youtubePlayButtonInnerBase,
295
+ youtubeRootBase: () => youtubeRootBase,
296
+ youtubeTitleBase: () => youtubeTitleBase
297
+ });
298
+ module.exports = __toCommonJS(index_exports);
299
+
300
+ // src/button.ts
301
+ var import_class_variance_authority = require("class-variance-authority");
302
+ var fills = {
303
+ solid: {
304
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
305
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
306
+ success: "bg-success text-success-foreground hover:bg-success/90",
307
+ danger: "bg-danger text-danger-foreground hover:bg-danger/90",
308
+ warn: "bg-warn text-warn-foreground hover:bg-warn/90",
309
+ info: "bg-info text-info-foreground hover:bg-info/90"
310
+ },
311
+ outline: {
312
+ primary: "border border-primary/40 bg-background text-primary hover:bg-primary/10",
313
+ secondary: "border border-secondary-foreground/30 bg-background text-secondary-foreground hover:bg-secondary",
314
+ success: "border border-success/50 bg-background text-success hover:bg-success/10",
315
+ danger: "border border-danger/50 bg-background text-danger hover:bg-danger/10",
316
+ warn: "border border-warn/60 bg-background text-warn hover:bg-warn/15",
317
+ info: "border border-info/50 bg-background text-info hover:bg-info/10"
318
+ },
319
+ text: {
320
+ primary: "bg-transparent text-primary hover:bg-primary/10",
321
+ secondary: "bg-transparent text-secondary-foreground hover:bg-secondary",
322
+ success: "bg-transparent text-success hover:bg-success/10",
323
+ danger: "bg-transparent text-danger hover:bg-danger/10",
324
+ warn: "bg-transparent text-warn hover:bg-warn/15",
325
+ info: "bg-transparent text-info hover:bg-info/10"
326
+ }
327
+ };
328
+ var compoundVariants = Object.entries(fills).flatMap(
329
+ ([variant, colors]) => Object.entries(colors).map(([color, className]) => ({ variant, color, className }))
330
+ );
331
+ var buttonVariants = (0, import_class_variance_authority.cva)(
332
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
333
+ {
334
+ variants: {
335
+ variant: {
336
+ solid: "",
337
+ outline: "",
338
+ text: ""
339
+ },
340
+ color: {
341
+ primary: "",
342
+ secondary: "",
343
+ success: "",
344
+ danger: "",
345
+ warn: "",
346
+ info: ""
347
+ },
348
+ size: {
349
+ sm: "h-9 px-3",
350
+ md: "h-10 px-4 py-2",
351
+ lg: "h-11 px-8",
352
+ icon: "size-10"
353
+ }
354
+ },
355
+ compoundVariants,
356
+ defaultVariants: {
357
+ variant: "solid",
358
+ color: "primary",
359
+ size: "md"
360
+ }
361
+ }
362
+ );
363
+
364
+ // src/toggle-button.ts
365
+ var import_class_variance_authority2 = require("class-variance-authority");
366
+ var toggleButtonVariants = (0, import_class_variance_authority2.cva)(
367
+ "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
368
+ {
369
+ variants: {
370
+ variant: {
371
+ default: "bg-transparent",
372
+ outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
373
+ },
374
+ size: {
375
+ default: "h-9 min-w-9 px-2",
376
+ sm: "h-8 min-w-8 px-1.5",
377
+ lg: "h-10 min-w-10 px-2.5"
378
+ }
379
+ },
380
+ defaultVariants: { variant: "default", size: "default" }
381
+ }
382
+ );
383
+
384
+ // src/tooltip.ts
385
+ var tooltipPositionerBase = "z-50 [--z-index:50]!";
386
+ var tooltipArrowBase = "[--arrow-size:0.5rem] [--arrow-background:var(--color-popover)] z-[60]! [--arrow-size-half:calc(var(--arrow-size)/2_+_1px)]!";
387
+ var tooltipContentBase = "relative z-50 max-w-xs rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md outline-none";
388
+
389
+ // src/popover.ts
390
+ var popoverPositionerBase = "z-50 [--z-index:50]!";
391
+ var popoverArrowBase = "[--arrow-size:0.5rem] [--arrow-background:var(--color-popover)] z-[60]! [--arrow-size-half:calc(var(--arrow-size)/2_+_1px)]!";
392
+ var popoverContentBase = "relative z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none";
393
+ var popoverTitleBase = "text-sm font-semibold leading-none";
394
+ var popoverDescriptionBase = "text-sm text-muted-foreground";
395
+ var popoverCloseTriggerBase = "absolute end-3.5 top-3.5 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-[3px] focus:ring-ring/30 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0";
396
+ var popoverIndicatorBase = "transition-transform data-[state=open]:rotate-180";
397
+
398
+ // src/dialog.ts
399
+ var dialogBackdropBase = "bg-black/50";
400
+ var dialogPositionerBase = "fixed inset-0 z-50 [--z-index:50]! flex items-start justify-center overflow-y-auto p-4";
401
+ var dialogContentBase = "relative z-50 my-auto grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg sm:rounded-lg outline-none";
402
+ var dialogTitleBase = "text-lg font-semibold leading-none tracking-tight";
403
+ var dialogDescriptionBase = "text-sm text-muted-foreground";
404
+ var dialogHeaderBase = "flex flex-col gap-2";
405
+ var dialogFooterBase = "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end";
406
+ var dialogHeaderStickyBase = "sticky top-0 z-10 bg-background";
407
+ var dialogFooterStickyBase = "sticky bottom-0 z-10 bg-background";
408
+ var dialogFullscreenContentBase = "h-dvh w-full max-w-none rounded-none border-0 p-0 sm:rounded-none";
409
+ var dialogCloseTriggerBase = "absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-[3px] focus:ring-ring/30 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0";
410
+
411
+ // src/window.ts
412
+ var windowPositionerBase = "z-50 [--z-index:50]!";
413
+ var windowContentBase = "relative z-50 flex w-80 flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-lg";
414
+ var windowDragTriggerBase = "flex flex-col";
415
+ var windowHeaderBase = "flex cursor-move items-center justify-between gap-2 border-b px-4 py-2.5";
416
+ var windowTitleBase = "text-sm font-semibold leading-none";
417
+ var windowControlBase = "flex items-center gap-1";
418
+ var windowStageTriggerBase = "inline-flex size-6 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:outline-none focus:ring-[3px] focus:ring-ring/30 [&_svg]:size-3.5 [&_svg]:shrink-0";
419
+ var windowCloseTriggerBase = "inline-flex size-6 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:outline-none focus:ring-[3px] focus:ring-ring/30 [&_svg]:size-3.5 [&_svg]:shrink-0";
420
+ var windowBodyBase = "flex flex-1 flex-col gap-4 overflow-auto p-4 text-sm";
421
+ var windowResizeTriggerBase = "absolute bottom-0 right-0 size-4 cursor-se-resize";
422
+
423
+ // src/badge.ts
424
+ var import_class_variance_authority3 = require("class-variance-authority");
425
+ var fills2 = {
426
+ solid: {
427
+ primary: "border-transparent bg-primary text-primary-foreground",
428
+ secondary: "border-transparent bg-secondary text-secondary-foreground",
429
+ success: "border-transparent bg-success text-success-foreground",
430
+ danger: "border-transparent bg-danger text-danger-foreground",
431
+ warn: "border-transparent bg-warn text-warn-foreground",
432
+ info: "border-transparent bg-info text-info-foreground"
433
+ },
434
+ subtle: {
435
+ primary: "border-transparent bg-primary/10 text-primary",
436
+ secondary: "border-transparent bg-secondary/10 text-secondary-foreground",
437
+ success: "border-transparent bg-success/10 text-success",
438
+ danger: "border-transparent bg-danger/10 text-danger",
439
+ warn: "border-transparent bg-warn/10 text-warn",
440
+ info: "border-transparent bg-info/10 text-info"
441
+ },
442
+ outline: {
443
+ primary: "border-primary/40 bg-transparent text-primary",
444
+ secondary: "border-secondary-foreground/30 bg-transparent text-secondary-foreground",
445
+ success: "border-success/50 bg-transparent text-success",
446
+ danger: "border-danger/50 bg-transparent text-danger",
447
+ warn: "border-warn/50 bg-transparent text-warn",
448
+ info: "border-info/50 bg-transparent text-info"
449
+ },
450
+ surface: {
451
+ primary: "border-primary/40 bg-primary/10 text-primary",
452
+ secondary: "border-secondary-foreground/30 bg-secondary text-secondary-foreground",
453
+ success: "border-success/50 bg-success/10 text-success",
454
+ danger: "border-danger/50 bg-danger/10 text-danger",
455
+ warn: "border-warn/50 bg-warn/10 text-warn",
456
+ info: "border-info/50 bg-info/10 text-info"
457
+ },
458
+ plain: {
459
+ primary: "border-transparent bg-transparent text-primary",
460
+ secondary: "border-transparent bg-transparent text-secondary-foreground",
461
+ success: "border-transparent bg-transparent text-success",
462
+ danger: "border-transparent bg-transparent text-danger",
463
+ warn: "border-transparent bg-transparent text-warn",
464
+ info: "border-transparent bg-transparent text-info"
465
+ }
466
+ };
467
+ var compoundVariants2 = Object.entries(fills2).flatMap(
468
+ ([variant, colors]) => Object.entries(colors).map(([color, className]) => ({ variant, color, className }))
469
+ );
470
+ var badgeVariants = (0, import_class_variance_authority3.cva)(
471
+ "inline-flex items-center gap-1 rounded-md border font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
472
+ {
473
+ variants: {
474
+ variant: {
475
+ solid: "",
476
+ subtle: "",
477
+ outline: "",
478
+ surface: "",
479
+ plain: ""
480
+ },
481
+ color: {
482
+ primary: "",
483
+ secondary: "",
484
+ success: "",
485
+ danger: "",
486
+ warn: "",
487
+ info: ""
488
+ },
489
+ size: {
490
+ xs: "px-1.5 py-0.5 text-[10px]",
491
+ sm: "px-2 py-0.5 text-xs",
492
+ md: "px-2.5 py-1 text-xs",
493
+ lg: "px-3 py-1 text-sm"
494
+ }
495
+ },
496
+ compoundVariants: compoundVariants2,
497
+ defaultVariants: {
498
+ variant: "subtle",
499
+ color: "primary",
500
+ size: "sm"
501
+ }
502
+ }
503
+ );
504
+
505
+ // src/layout.ts
506
+ var containerBase = "relative mx-auto w-full max-w-[90rem] px-4 md:px-6 lg:px-8";
507
+ var rowBase = "flex flex-row";
508
+ var colBase = "flex flex-col";
509
+ var stackBase = "flex flex-col gap-1";
510
+ var hstackBase = "flex flex-row gap-1";
511
+ var vstackBase = "flex flex-col gap-1";
512
+ var centerBase = "flex items-center justify-center";
513
+
514
+ // src/item.ts
515
+ var import_class_variance_authority4 = require("class-variance-authority");
516
+ var itemVariants = (0, import_class_variance_authority4.cva)("flex-1 p-3 text-sm", {
517
+ variants: {
518
+ variant: {
519
+ plain: "",
520
+ surface: "rounded-md border border-border bg-card text-card-foreground"
521
+ }
522
+ },
523
+ defaultVariants: {
524
+ variant: "plain"
525
+ }
526
+ });
527
+
528
+ // src/card.ts
529
+ var import_class_variance_authority5 = require("class-variance-authority");
530
+ var cardVariants = (0, import_class_variance_authority5.cva)("flex flex-col overflow-hidden rounded-lg border bg-card text-card-foreground", {
531
+ variants: {
532
+ variant: {
533
+ outline: "border-border shadow-xs",
534
+ elevated: "border-transparent shadow-md",
535
+ subtle: "border-transparent bg-muted"
536
+ },
537
+ size: {
538
+ sm: "gap-3 p-3 [--card-padding:0.75rem]",
539
+ md: "gap-4 p-4 [--card-padding:1rem]",
540
+ lg: "gap-6 p-6 [--card-padding:1.5rem]"
541
+ },
542
+ orientation: {
543
+ vertical: "",
544
+ horizontal: "flex-row"
545
+ }
546
+ },
547
+ defaultVariants: {
548
+ variant: "outline",
549
+ size: "md",
550
+ orientation: "vertical"
551
+ }
552
+ });
553
+ var cardCoverVariants = (0, import_class_variance_authority5.cva)("shrink-0 overflow-hidden", {
554
+ variants: {
555
+ variant: {
556
+ flush: "",
557
+ inset: "rounded-md"
558
+ },
559
+ orientation: {
560
+ vertical: "",
561
+ horizontal: ""
562
+ }
563
+ },
564
+ compoundVariants: [
565
+ {
566
+ variant: "flush",
567
+ orientation: "vertical",
568
+ className: "-mx-[var(--card-padding)] -mt-[var(--card-padding)]"
569
+ },
570
+ {
571
+ variant: "flush",
572
+ orientation: "horizontal",
573
+ className: "-ml-[var(--card-padding)] -mt-[var(--card-padding)] -mb-[var(--card-padding)]"
574
+ }
575
+ ],
576
+ defaultVariants: {
577
+ variant: "flush",
578
+ orientation: "vertical"
579
+ }
580
+ });
581
+ var cardHeaderBase = "flex flex-col gap-1";
582
+ var cardBodyBase = "";
583
+ var cardFooterBase = "flex items-center gap-2";
584
+ var cardTitleBase = "font-semibold leading-tight";
585
+ var cardDescriptionBase = "text-sm text-muted-foreground";
586
+
587
+ // src/scroll.ts
588
+ var scrollRootBase = "relative flex h-full w-full flex-col overflow-hidden [--scrollbar-size:0.5rem] [--scrollbar-margin:2px]";
589
+ var scrollViewportBase = "flex h-full w-full flex-col rounded-[inherit] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden";
590
+ var scrollContentBase = "min-w-full";
591
+ var scrollScrollbarBase = "relative m-[var(--scrollbar-margin)] flex touch-none select-none rounded-full bg-border/10 opacity-0 transition-opacity duration-150 data-[hover]:opacity-100 data-[scrolling]:opacity-100 data-[orientation=vertical]:w-[var(--scrollbar-size)] data-[orientation=vertical]:flex-col data-[orientation=horizontal]:h-[var(--scrollbar-size)] data-[orientation=horizontal]:flex-row [&:not([data-overflow-x],[data-overflow-y])]:hidden";
592
+ var scrollThumbBase = "rounded-[inherit] bg-border/40 transition-colors data-[orientation=vertical]:w-full data-[orientation=horizontal]:h-full";
593
+ var scrollCornerBase = "m-[var(--scrollbar-margin)] bg-muted opacity-0 transition-opacity duration-150 data-[hover]:opacity-100";
594
+
595
+ // src/page.ts
596
+ var import_class_variance_authority6 = require("class-variance-authority");
597
+
598
+ // src/cn.ts
599
+ var import_clsx = require("clsx");
600
+ var import_tailwind_merge = require("tailwind-merge");
601
+ function cn(...inputs) {
602
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
603
+ }
604
+
605
+ // src/page.ts
606
+ var pageVariants = (0, import_class_variance_authority6.cva)("min-h-svh w-full", {
607
+ variants: {
608
+ variant: {
609
+ default: 'grid grid-cols-[auto_minmax(0,1fr)_auto] grid-rows-[minmax(100svh,1fr)_auto] [grid-template-areas:"left_content_right"_"footer_footer_footer"]',
610
+ landing: colBase
611
+ }
612
+ },
613
+ defaultVariants: { variant: "default" }
614
+ });
615
+ var pageGutterAreaBase = "h-full min-w-0 [grid-area:left]";
616
+ var pageGutterVariants = (0, import_class_variance_authority6.cva)(
617
+ "sticky top-0 h-svh w-4 shrink-0 overflow-hidden p-0.5 md:w-56 md:p-2 lg:w-72 lg:p-3",
618
+ {
619
+ variants: {
620
+ side: {
621
+ left: "",
622
+ right: ""
623
+ }
624
+ },
625
+ defaultVariants: { side: "left" }
626
+ }
627
+ );
628
+ var pageGutterContentVariants = (0, import_class_variance_authority6.cva)("hidden h-full w-full flex-col md:flex", {
629
+ variants: {
630
+ align: {
631
+ start: "justify-start",
632
+ center: "justify-center",
633
+ end: "justify-end"
634
+ }
635
+ },
636
+ defaultVariants: { align: "start" }
637
+ });
638
+ var pageContentBase = "min-w-0 [grid-area:content]";
639
+ var pageFooterBase = "w-full shrink-0 [grid-area:footer]";
640
+ var pageSectionBase = cn(colBase, "min-h-svh w-full");
641
+
642
+ // src/splitter.ts
643
+ var splitterRootBase = "";
644
+ var splitterPanelBase = "";
645
+ var splitterResizeTriggerBase = "group relative grid place-items-center outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 data-[orientation=horizontal]:-mx-1 data-[orientation=horizontal]:min-w-2 data-[orientation=vertical]:-my-1 data-[orientation=vertical]:min-h-2";
646
+ var splitterResizeTriggerSeparatorBase = "absolute bg-border group-data-[orientation=horizontal]:inset-y-0 group-data-[orientation=horizontal]:right-1 group-data-[orientation=horizontal]:w-px group-data-[orientation=vertical]:inset-x-0 group-data-[orientation=vertical]:bottom-1 group-data-[orientation=vertical]:h-px";
647
+ var splitterResizeTriggerIndicatorBase = "relative z-10 rounded-full border border-border bg-muted shadow-xs data-[dragging]:bg-muted-foreground data-[focus]:bg-accent data-[disabled]:hidden data-[orientation=horizontal]:h-6 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-6";
648
+
649
+ // src/sidebar.ts
650
+ var import_class_variance_authority7 = require("class-variance-authority");
651
+ var SIDEBAR_WIDTH = "16rem";
652
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
653
+ var SIDEBAR_WIDTH_ICON = "3rem";
654
+ var SIDEBAR_KEYBOARD_SHORTCUT = "b";
655
+ var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
656
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
657
+ {
658
+ variants: {
659
+ variant: {
660
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
661
+ outline: "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
662
+ },
663
+ size: {
664
+ default: "h-8 text-sm",
665
+ sm: "h-7 text-xs",
666
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
667
+ }
668
+ },
669
+ defaultVariants: {
670
+ variant: "default",
671
+ size: "default"
672
+ }
673
+ }
674
+ );
675
+ var sidebarStyles = {
676
+ wrapperClass: "group/sidebar-wrapper min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
677
+ // Base (static) classes for the desktop sidebar container. Side- and
678
+ // variant-specific classes are applied inline in the framework wrappers via
679
+ // ternaries, exactly as in the shadcn source. The `flex` direction bases are
680
+ // provided by the Row/Col layout primitives at render time.
681
+ containerClass: "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
682
+ gapClass: "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0",
683
+ innerClass: "flex h-full w-full flex-col bg-sidebar data-[variant=floating]:rounded-lg data-[variant=floating]:border data-[variant=floating]:border-sidebar-border data-[variant=floating]:shadow-sm",
684
+ headerClass: "gap-2 p-2",
685
+ footerClass: "gap-2 p-2",
686
+ separatorClass: "mx-2 w-auto bg-sidebar-border",
687
+ contentClass: "min-h-0 flex-1 gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
688
+ groupClass: "relative w-full min-w-0 p-2",
689
+ groupLabelClass: "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
690
+ groupActionClass: "absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden",
691
+ groupContentClass: "w-full text-sm",
692
+ menuClass: "flex w-full min-w-0 flex-col gap-1",
693
+ menuItemClass: "group/menu-item relative",
694
+ menuActionClass: "absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden",
695
+ menuBadgeClass: "pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden",
696
+ menuSkeletonClass: "flex h-8 items-center gap-2 rounded-md px-2",
697
+ menuSubClass: "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",
698
+ menuSubItemClass: "group/menu-sub-item relative",
699
+ menuSubButtonClass: "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[size=sm]:text-xs data-[size=md]:text-sm group-data-[collapsible=icon]:hidden",
700
+ triggerClass: "flex size-7 shrink-0 items-center justify-center rounded-md text-sidebar-foreground ring-sidebar-ring outline-hidden transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
701
+ railClass: "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[side=left]:cursor-w-resize group-data-[side=right]:cursor-e-resize [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
702
+ insetClass: "relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
703
+ inputClass: "h-8 w-full bg-background shadow-none",
704
+ tooltipContentClass: "z-50 w-auto rounded-md bg-sidebar-primary px-2 py-1.5 text-xs text-sidebar-primary-foreground"
705
+ };
706
+
707
+ // src/navbar-menu.ts
708
+ var import_class_variance_authority8 = require("class-variance-authority");
709
+ var navbarMenuRootBase = "group/nav-menu relative flex max-w-max flex-1 items-center justify-center";
710
+ var navbarMenuListBase = "group flex flex-1 list-none items-center justify-center gap-1";
711
+ var navbarMenuItemBase = "relative";
712
+ var navbarMenuTriggerStyle = (0, import_class_variance_authority8.cva)(
713
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-3 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent",
714
+ {
715
+ variants: {
716
+ density: {
717
+ relaxed: "",
718
+ compact: "h-8 px-2 text-xs"
719
+ },
720
+ variant: {
721
+ default: "",
722
+ link: "bg-transparent px-3 text-muted-foreground hover:bg-transparent hover:text-primary focus:bg-transparent focus:text-primary focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:bg-transparent data-[state=open]:text-primary data-[state=open]:hover:bg-transparent data-[state=open]:focus:bg-transparent data-[active=true]:bg-transparent data-[active=true]:text-primary"
723
+ }
724
+ },
725
+ defaultVariants: { density: "relaxed", variant: "default" }
726
+ }
727
+ );
728
+ var navbarMenuContentBase = "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0 data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95 left-0 top-0 w-full min-w-44 bg-popover p-2 text-popover-foreground md:absolute md:w-auto";
729
+ var navbarMenuLinkBase = "data-[active=true]:bg-accent data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring";
730
+ var navbarMobileMenuContentBase = "flex flex-col gap-1 py-1";
731
+ var navbarMobileMenuTriggerBase = "flex w-full items-center justify-between rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
732
+ var navbarMenuViewportPositionerBase = "absolute left-0 top-full z-50 w-full";
733
+ var navbarMenuViewportBase = "absolute left-(--viewport-x) top-0 mt-1.5 h-(--viewport-height) w-(--viewport-width) overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md transition-[width,height] duration-200";
734
+ var navbarMenuIndicatorBase = "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-50 flex h-1.5 items-end justify-center overflow-hidden";
735
+
736
+ // src/tabs.ts
737
+ var import_class_variance_authority9 = require("class-variance-authority");
738
+ var tabsRootBase = "flex flex-col gap-2 data-[orientation=vertical]:flex-row";
739
+ var tabsListBase = "relative z-0 flex w-fit items-center justify-center gap-x-0.5 text-muted-foreground data-[orientation=vertical]:flex-col";
740
+ var tabsListVariants = (0, import_class_variance_authority9.cva)("", {
741
+ variants: {
742
+ variant: {
743
+ default: "rounded-lg",
744
+ underline: "data-[orientation=vertical]:px-1 data-[orientation=horizontal]:py-1"
745
+ }
746
+ },
747
+ defaultVariants: {
748
+ variant: "default"
749
+ }
750
+ });
751
+ var tabsIndicatorBase = "absolute inset-x-0 bottom-0 h-(--height) w-(--width) transition-[width,translate] duration-200 ease-in-out motion-reduce:transition-none";
752
+ var tabsIndicatorVariants = (0, import_class_variance_authority9.cva)("", {
753
+ variants: {
754
+ variant: {
755
+ default: "-z-1 rounded-lg bg-accent",
756
+ underline: "z-10 bg-primary data-[orientation=horizontal]:h-0.5 data-[orientation=vertical]:w-0.5"
757
+ }
758
+ },
759
+ defaultVariants: {
760
+ variant: "default"
761
+ }
762
+ });
763
+ var tabsTriggerBase = "relative flex h-9 shrink-0 grow items-center justify-center gap-1.5 rounded-lg border border-transparent px-[calc(--spacing(2.5)-1px)] text-sm font-medium whitespace-nowrap transition-[color,background-color,box-shadow] data-[orientation=vertical]:w-full data-[orientation=vertical]:justify-start hover:text-foreground/72 aria-selected:text-foreground outline-none focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-ring/30 data-disabled:pointer-events-none data-disabled:opacity-50 motion-reduce:transition-none sm:h-8 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0";
764
+ var tabsContentBase = "flex-1 outline-none";
765
+
766
+ // src/pagination.ts
767
+ var paginationRootBase = "mx-auto flex w-full justify-center gap-1";
768
+ var paginationTriggerBase = "inline-flex h-9 items-center justify-center gap-2 whitespace-nowrap rounded-md px-3 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0";
769
+ var paginationItemBase = "inline-flex h-9 min-w-9 items-center justify-center whitespace-nowrap rounded-md px-3 text-sm font-medium tabular-nums text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[selected]:bg-accent data-[selected]:text-accent-foreground";
770
+ var paginationEllipsisBase = "flex h-8 w-12 items-end justify-center text-muted-foreground pointer-events-none select-none [&_svg]:size-4";
771
+
772
+ // src/navbar.ts
773
+ var import_class_variance_authority10 = require("class-variance-authority");
774
+ var navbarVariants = (0, import_class_variance_authority10.cva)(
775
+ "w-full bg-background/80 backdrop-blur transition-[box-shadow,height,translate] duration-300",
776
+ {
777
+ variants: {
778
+ variant: {
779
+ scroll: "border-b border-border",
780
+ sticky: "sticky top-0 z-50 border-b border-border data-[scrolled=true]:bg-background/95 data-[scrolled=true]:shadow-md",
781
+ shrink: "sticky top-0 z-50 border-b border-border data-[scrolled=true]:bg-background/95 data-[scrolled=true]:shadow-md",
782
+ hide: "sticky top-0 z-50 border-b border-border data-[scrolled=true]:bg-background/95 data-[scrolled=true]:shadow-md data-[hidden=true]:-translate-y-full"
783
+ },
784
+ floating: {
785
+ false: "",
786
+ true: "fixed inset-x-0 top-4 z-50 mx-auto w-[calc(100%-2rem)] max-w-6xl rounded-full border"
787
+ }
788
+ },
789
+ defaultVariants: {
790
+ variant: "sticky",
791
+ floating: false
792
+ }
793
+ }
794
+ );
795
+ var navbarContainerBase = "flex items-center justify-between transition-[height,gap,padding] duration-300";
796
+ var navbarDensityVariants = (0, import_class_variance_authority10.cva)("", {
797
+ variants: {
798
+ density: {
799
+ relaxed: "h-16 gap-4 px-4 md:px-6",
800
+ compact: "h-12 gap-1.5 px-2"
801
+ }
802
+ },
803
+ defaultVariants: {
804
+ density: "relaxed"
805
+ }
806
+ });
807
+ var navbarShrunkBase = "h-12";
808
+ var navbarBrandBase = "flex shrink-0 items-center gap-2";
809
+ var navbarMenuBase = "hidden items-center md:flex";
810
+ var navbarMenuPlacementVariants = (0, import_class_variance_authority10.cva)("", {
811
+ variants: {
812
+ placement: {
813
+ left: "justify-start",
814
+ center: "justify-center",
815
+ right: "justify-end"
816
+ }
817
+ },
818
+ defaultVariants: {
819
+ placement: "center"
820
+ }
821
+ });
822
+ var navbarActionsBase = "ml-auto hidden items-center gap-2 md:flex";
823
+ var navbarTriggerVariants = (0, import_class_variance_authority10.cva)(
824
+ "inline-flex h-9 w-9 items-center justify-center text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
825
+ {
826
+ variants: {
827
+ floating: {
828
+ false: "rounded-md border border-border",
829
+ true: "rounded-full"
830
+ }
831
+ },
832
+ defaultVariants: {
833
+ floating: false
834
+ }
835
+ }
836
+ );
837
+ var navbarMobileBase = "md:hidden";
838
+ var navbarActivationAreaBase = "fixed inset-x-0 top-0 z-40 h-12";
839
+ var navbarMobileContentBase = "flex h-full flex-col bg-background";
840
+ var navbarMobileHeaderBase = "flex items-center justify-between gap-2 px-4 py-3";
841
+ var navbarMobileMenuBase = "flex flex-1 flex-col gap-1 overflow-y-auto px-4 py-2";
842
+ var navbarMobileActionsBase = "flex items-center gap-2 border-t border-border px-4 py-4";
843
+
844
+ // src/themes.ts
845
+ var THEMES = [
846
+ { name: "amber-minimal", label: "Amber Minimal" },
847
+ { name: "amethyst-haze", label: "Amethyst Haze" },
848
+ { name: "anthropic", label: "Anthropic" },
849
+ { name: "anyscale", label: "Anyscale" },
850
+ { name: "bold-tech", label: "Bold Tech" },
851
+ { name: "bubblegum", label: "Bubblegum" },
852
+ { name: "caffeine", label: "Caffeine" },
853
+ { name: "candyland", label: "Candyland" },
854
+ { name: "catppuccin", label: "Catppuccin" },
855
+ { name: "claude", label: "Claude" },
856
+ { name: "claymorphism", label: "Claymorphism" },
857
+ { name: "clean-slate", label: "Clean Slate" },
858
+ { name: "cosmic-night", label: "Cosmic Night" },
859
+ { name: "cyberpunk", label: "Cyberpunk" },
860
+ { name: "darkmatter", label: "Darkmatter" },
861
+ { name: "default", label: "Default" },
862
+ { name: "doom-64", label: "Doom 64" },
863
+ { name: "elegant-luxury", label: "Elegant Luxury" },
864
+ { name: "graphite", label: "Graphite" },
865
+ { name: "green", label: "Green" },
866
+ { name: "kodama-grove", label: "Kodama Grove" },
867
+ { name: "lambda", label: "Lambda" },
868
+ { name: "mdbook", label: "mdBook" },
869
+ { name: "midnight-bloom", label: "Midnight Bloom" },
870
+ { name: "mocha-mousse", label: "Mocha Mousse" },
871
+ { name: "modern-minimal", label: "Modern Minimal" },
872
+ { name: "mono", label: "Mono" },
873
+ { name: "nature", label: "Nature" },
874
+ { name: "neo-brutalism", label: "Neo Brutalism" },
875
+ { name: "northern-lights", label: "Northern Lights" },
876
+ { name: "notebook", label: "Notebook" },
877
+ { name: "ocean-breeze", label: "Ocean Breeze" },
878
+ { name: "openai", label: "Openai" },
879
+ { name: "pastel-dreams", label: "Pastel Dreams" },
880
+ { name: "perpetuity", label: "Perpetuity" },
881
+ { name: "quantum-rose", label: "Quantum Rose" },
882
+ { name: "retro-arcade", label: "Retro Arcade" },
883
+ { name: "rose", label: "Rose" },
884
+ { name: "sage-garden", label: "Sage Garden" },
885
+ { name: "slate", label: "Slate" },
886
+ { name: "soft-pop", label: "Soft Pop" },
887
+ { name: "solar-dusk", label: "Solar Dusk" },
888
+ { name: "starry-night", label: "Starry Night" },
889
+ { name: "sunset-horizon", label: "Sunset Horizon" },
890
+ { name: "supabase", label: "Supabase" },
891
+ { name: "t3-chat", label: "T3 Chat" },
892
+ { name: "tangerine", label: "Tangerine" },
893
+ { name: "twitter", label: "Twitter" },
894
+ { name: "vercel", label: "Vercel" },
895
+ { name: "vintage-paper", label: "Vintage Paper" },
896
+ { name: "violet-bloom", label: "Violet Bloom" },
897
+ { name: "vitepress", label: "Vitepress" },
898
+ { name: "vortex-ui", label: "Vortex UI" }
899
+ ];
900
+ var THEME_NAMES = THEMES.map((t) => t.name);
901
+
902
+ // src/field.ts
903
+ var fieldRootBase = "flex w-full flex-col gap-2 data-invalid:text-destructive";
904
+ var fieldLabelBase = "flex w-fit select-none items-center gap-1 text-sm font-medium leading-none text-foreground";
905
+ var fieldHelperBase = "text-sm text-muted-foreground";
906
+ var fieldErrorBase = "text-sm text-destructive";
907
+ var fieldRequiredIndicatorBase = "text-destructive";
908
+ var fieldsetRootBase = "flex flex-col gap-6";
909
+ var fieldsetLegendBase = "mb-3 text-base font-medium";
910
+ var fieldsetHelperBase = "text-sm text-muted-foreground";
911
+ var fieldsetErrorBase = "text-sm text-destructive";
912
+
913
+ // src/input.ts
914
+ var import_class_variance_authority11 = require("class-variance-authority");
915
+ var inputVariants = (0, import_class_variance_authority11.cva)(
916
+ "flex w-full min-w-0 rounded-md border border-input bg-transparent px-3 text-sm shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/24 data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24",
917
+ {
918
+ variants: {
919
+ size: {
920
+ sm: "h-8 px-2.5",
921
+ md: "h-9",
922
+ lg: "h-10"
923
+ }
924
+ },
925
+ defaultVariants: {
926
+ size: "md"
927
+ }
928
+ }
929
+ );
930
+
931
+ // src/textarea.ts
932
+ var textareaBase = "field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/24 data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24";
933
+
934
+ // src/number-input.ts
935
+ var numberInputRootBase = "flex w-full flex-col items-start gap-2";
936
+ var numberInputControlBase = "flex w-full items-center justify-between rounded-md border border-input bg-transparent shadow-xs transition-[box-shadow] outline-none focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/30 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/24 data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24";
937
+ var numberInputInputBase = "h-9 w-full min-w-0 flex-1 border-0 bg-transparent px-3 text-center text-sm tabular-nums shadow-none outline-none ring-0 focus-visible:ring-0 disabled:cursor-not-allowed disabled:opacity-50";
938
+ var numberInputTriggerBase = "flex size-9 shrink-0 items-center justify-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0";
939
+
940
+ // src/checkbox.ts
941
+ var import_class_variance_authority12 = require("class-variance-authority");
942
+ var checkboxVariants = (0, import_class_variance_authority12.cva)(
943
+ "relative inline-flex size-4 shrink-0 items-center justify-center rounded-sm border border-input bg-transparent shadow-xs transition-shadow focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/30 focus-visible:ring-offset-1 focus-visible:ring-offset-background data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24 disabled:pointer-events-none disabled:opacity-50",
944
+ {
945
+ variants: {
946
+ size: {
947
+ sm: "size-3.5",
948
+ md: "size-4",
949
+ lg: "size-5"
950
+ }
951
+ },
952
+ defaultVariants: {
953
+ size: "md"
954
+ }
955
+ }
956
+ );
957
+ var checkboxIndicatorBase = "flex size-full items-center justify-center text-primary-foreground data-[state=unchecked]:hidden [&_svg]:pointer-events-none [&_svg]:size-3 [&_svg]:shrink-0";
958
+ var checkboxLabelBase = "select-none text-sm font-medium leading-none";
959
+ var checkboxGroupBase = "flex flex-col gap-2";
960
+
961
+ // src/switch.ts
962
+ var import_class_variance_authority13 = require("class-variance-authority");
963
+ var switchVariants = (0, import_class_variance_authority13.cva)(
964
+ "inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border border-transparent bg-input p-0.5 shadow-xs transition-colors outline-none data-[state=checked]:bg-primary data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24 focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:opacity-50",
965
+ {
966
+ variants: {
967
+ size: {
968
+ sm: "h-5 w-9",
969
+ md: "h-6 w-11",
970
+ lg: "h-7 w-12"
971
+ }
972
+ },
973
+ defaultVariants: {
974
+ size: "md"
975
+ }
976
+ }
977
+ );
978
+ var switchControlBase = "flex size-full items-center";
979
+ var switchThumbBase = "pointer-events-none block aspect-square h-full w-auto rounded-full bg-background shadow-sm transition-transform data-[state=checked]:translate-x-[calc(100%-1px)] data-[state=unchecked]:translate-x-0 dark:data-[state=unchecked]:bg-foreground";
980
+ var switchLabelBase = "select-none text-sm font-medium leading-none";
981
+
982
+ // src/select.ts
983
+ var import_class_variance_authority14 = require("class-variance-authority");
984
+ var selectTriggerBase = "flex w-fit cursor-default items-center gap-2 whitespace-nowrap data-[placeholder-shown]:text-muted-foreground data-[state=open]:border-ring data-[state=open]:ring-[3px] data-[state=open]:ring-ring/30 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground";
985
+ var selectValueBase = "flex min-w-0 items-center gap-2 truncate";
986
+ var selectIndicatorBase = "flex items-center justify-center text-muted-foreground";
987
+ var selectClearTriggerBase = "flex items-center justify-center text-muted-foreground opacity-60 transition-opacity hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none [&_svg]:pointer-events-none [&_svg]:size-3.5 [&_svg]:shrink-0";
988
+ var selectPositionerBase = "z-50 [--z-index:50]!";
989
+ var selectContentBase = "relative z-50 max-h-96 min-w-(--reference-width) overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md outline-none";
990
+ var selectItemGroupLabelBase = "px-2 py-1.5 text-xs font-semibold text-muted-foreground";
991
+ var selectItemBase = "relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 pe-8 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground";
992
+ var selectItemTextBase = "flex w-full flex-1 items-center gap-2";
993
+ var selectItemIndicatorBase = "absolute inset-y-0 end-2 flex items-center justify-center text-foreground";
994
+ var nativeSelectVariants = (0, import_class_variance_authority14.cva)(
995
+ "appearance-none w-full min-w-0 rounded-md border border-input bg-transparent pe-8 ps-2.5 text-sm shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/24",
996
+ {
997
+ variants: {
998
+ size: {
999
+ sm: "h-8",
1000
+ md: "h-9",
1001
+ lg: "h-10"
1002
+ }
1003
+ },
1004
+ defaultVariants: {
1005
+ size: "md"
1006
+ }
1007
+ }
1008
+ );
1009
+ var nativeSelectWrapperBase = "relative w-fit [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground";
1010
+ var nativeSelectIconBase = "pointer-events-none absolute inset-y-0 end-2.5 flex items-center justify-center text-muted-foreground";
1011
+
1012
+ // src/combobox.ts
1013
+ var import_class_variance_authority15 = require("class-variance-authority");
1014
+ var comboboxControlBase = "relative flex w-full flex-wrap items-center gap-1";
1015
+ var comboboxInputBase = "pe-8";
1016
+ var comboboxTriggerBase = "absolute inset-y-0 end-1 flex w-8 items-center justify-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0";
1017
+ var comboboxClearTriggerBase = "absolute inset-y-0 end-9 flex items-center justify-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none [&_svg]:pointer-events-none [&_svg]:size-3.5 [&_svg]:shrink-0";
1018
+ var comboboxPositionerBase = "z-50 [--z-index:50]!";
1019
+ var comboboxContentBase = "relative z-50 max-h-96 min-w-48 overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md outline-none";
1020
+ var comboboxItemGroupLabelBase = "px-2 py-1.5 text-xs font-semibold text-muted-foreground";
1021
+ var comboboxItemVariants = (0, import_class_variance_authority15.cva)(
1022
+ "relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",
1023
+ {
1024
+ variants: {
1025
+ showIndicator: {
1026
+ true: "pe-8",
1027
+ false: "pe-2"
1028
+ }
1029
+ },
1030
+ defaultVariants: {
1031
+ showIndicator: true
1032
+ }
1033
+ }
1034
+ );
1035
+ var comboboxItemIndicatorBase = "absolute inset-y-0 end-2 flex items-center justify-center text-foreground";
1036
+ var comboboxListBase = "flex flex-col";
1037
+ var comboboxEmptyBase = "px-2 py-1.5 text-center text-sm text-muted-foreground";
1038
+
1039
+ // src/tags-input.ts
1040
+ var tagsInputRootBase = "flex w-full flex-col gap-2";
1041
+ var tagsInputControlBase = "flex w-full flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent p-1.5 shadow-xs transition-[box-shadow] outline-none focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/30 data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24 data-disabled:pointer-events-none data-disabled:opacity-50";
1042
+ var tagsInputInputBase = "min-w-12 flex-1 border-0 bg-transparent px-1 text-sm outline-none ring-0 placeholder:text-muted-foreground focus-visible:ring-0";
1043
+ var tagsInputItemBase = "inline-flex h-6 max-w-full shrink-0 items-center gap-1 rounded-md border bg-secondary px-1.5 text-xs text-secondary-foreground outline-none data-[highlighted]:border-primary/30 data-[highlighted]:bg-primary/10";
1044
+ var tagsInputItemTextBase = "truncate";
1045
+ var tagsInputItemInputBase = "w-16 border-0 bg-transparent text-xs outline-none";
1046
+ var tagsInputItemDeleteTriggerBase = "flex size-4 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none [&_svg]:pointer-events-none [&_svg]:size-3 [&_svg]:shrink-0";
1047
+ var tagsInputClearTriggerBase = "ms-auto flex shrink-0 items-center justify-center self-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none [&_svg]:pointer-events-none [&_svg]:size-3.5 [&_svg]:shrink-0";
1048
+
1049
+ // src/mermaid.ts
1050
+ var mermaidRootBase = "not-prose my-4 overflow-x-auto";
1051
+ var mermaidSourceBase = "w-full overflow-x-auto bg-muted p-4 font-mono text-sm whitespace-pre";
1052
+ var mermaidSvgBase = "flex w-full items-center justify-center [&>svg]:max-w-full";
1053
+ var mermaidLoadingBase = "flex min-h-40 w-full items-center justify-center gap-3";
1054
+ var mermaidThemeVariableTokens = {
1055
+ primaryColor: "--card",
1056
+ primaryTextColor: "--foreground",
1057
+ primaryBorderColor: "--border",
1058
+ lineColor: "--muted-foreground",
1059
+ secondaryColor: "--muted",
1060
+ tertiaryColor: "--accent",
1061
+ background: "--background",
1062
+ mainBkg: "--card",
1063
+ nodeBorder: "--border"
1064
+ };
1065
+ var scratchCtx;
1066
+ function normalizeMermaidColor(value) {
1067
+ scratchCtx ??= document.createElement("canvas").getContext("2d", { willReadFrequently: true });
1068
+ if (!scratchCtx) return value;
1069
+ scratchCtx.fillStyle = "rgb(1 2 3)";
1070
+ scratchCtx.fillStyle = value;
1071
+ scratchCtx.clearRect(0, 0, 1, 1);
1072
+ scratchCtx.fillRect(0, 0, 1, 1);
1073
+ const [r, g, b, a] = scratchCtx.getImageData(0, 0, 1, 1).data;
1074
+ if (r === 1 && g === 2 && b === 3 && a === 255) return value;
1075
+ if (a === 255) return `#${[r, g, b].map((c) => c.toString(16).padStart(2, "0")).join("")}`;
1076
+ return `rgba(${r}, ${g}, ${b}, ${Math.round(a / 255 * 1e3) / 1e3})`;
1077
+ }
1078
+ function resolveMermaidThemeVariables() {
1079
+ const styles = getComputedStyle(document.documentElement);
1080
+ const themeVariables = {};
1081
+ for (const [key, token] of Object.entries(mermaidThemeVariableTokens)) {
1082
+ const value = styles.getPropertyValue(token).trim();
1083
+ if (value) themeVariables[key] = normalizeMermaidColor(value);
1084
+ }
1085
+ return themeVariables;
1086
+ }
1087
+ var mermaidSeq = 0;
1088
+ function mermaidSvgAspectRatio(svg) {
1089
+ const match = /viewBox="\s*[-\d.]+\s+[-\d.]+\s+([-\d.]+)\s+([-\d.]+)"/.exec(svg);
1090
+ if (!match) return void 0;
1091
+ const width = Number(match[1]);
1092
+ const height = Number(match[2]);
1093
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) return void 0;
1094
+ return `${width} / ${height}`;
1095
+ }
1096
+ async function renderMermaidSource(code) {
1097
+ const mermaid = (await import("mermaid")).default;
1098
+ const dark = document.documentElement.classList.contains("dark");
1099
+ mermaid.initialize({
1100
+ startOnLoad: false,
1101
+ securityLevel: "strict",
1102
+ suppressErrorRendering: true,
1103
+ theme: dark ? "dark" : "default",
1104
+ themeVariables: resolveMermaidThemeVariables()
1105
+ });
1106
+ const { svg } = await mermaid.render(`vortex-ui-mmd-${Date.now()}-${mermaidSeq++}`, code);
1107
+ return svg;
1108
+ }
1109
+
1110
+ // src/clipboard.ts
1111
+ var clipboardTriggerBase = "inline-flex h-7 w-7 shrink-0 items-center justify-center gap-1.5 rounded-md text-xs text-muted-foreground transition-colors hover:bg-background hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&_svg]:size-3.5 [&_svg]:shrink-0";
1112
+
1113
+ // src/radio-group.ts
1114
+ var radioGroupRootBase = "flex flex-col gap-2";
1115
+ var radioGroupItemControlBase = "relative inline-flex size-4 shrink-0 items-center justify-center rounded-full border border-input bg-transparent shadow-xs transition-shadow focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/30 focus-visible:ring-offset-1 focus-visible:ring-offset-background data-invalid:border-destructive data-invalid:ring-[3px] data-invalid:ring-destructive/24 data-[state=checked]:border-primary data-[state=checked]:text-primary disabled:pointer-events-none disabled:opacity-50";
1116
+ var radioGroupItemTextBase = "select-none text-sm font-medium leading-none";
1117
+
1118
+ // src/notice.ts
1119
+ var import_class_variance_authority16 = require("class-variance-authority");
1120
+ var noticeVariants = (0, import_class_variance_authority16.cva)(
1121
+ "not-prose relative my-4 grid w-full items-center gap-y-0.5 rounded-lg border px-3 py-2.5 text-sm grid-cols-[0_1fr] has-[>svg]:grid-cols-[calc(var(--spacing)*3)_1fr] has-[>svg]:gap-x-2.5 [&>svg]:size-4",
1122
+ {
1123
+ variants: {
1124
+ variant: {
1125
+ none: "bg-card text-card-foreground",
1126
+ info: "border-info/30 bg-info/5 [&>svg]:text-info",
1127
+ success: "border-success/30 bg-success/5 [&>svg]:text-success",
1128
+ warning: "border-warn/30 bg-warn/5 [&>svg]:text-warn",
1129
+ error: "border-danger/30 bg-danger/5 [&>svg]:text-danger"
1130
+ }
1131
+ },
1132
+ defaultVariants: {
1133
+ variant: "info"
1134
+ }
1135
+ }
1136
+ );
1137
+ var noticeTitleBase = "col-start-2 min-h-4 font-semibold tracking-tight";
1138
+ var noticeDescriptionBase = "col-start-2 text-sm text-foreground [&_p]:leading-relaxed";
1139
+
1140
+ // src/figure.ts
1141
+ var figureRootBase = "not-prose my-4 flex flex-col items-center";
1142
+ var figureImageBase = "rounded-lg border border-border";
1143
+ var figureCaptionBase = "mt-2 text-center text-sm text-muted-foreground";
1144
+
1145
+ // src/reveal.ts
1146
+ var revealRootBase = "not-prose my-4 overflow-hidden rounded-lg border border-border bg-muted/40";
1147
+ var revealTriggerBase = "flex w-full cursor-pointer items-center gap-2 px-3 py-2.5 text-sm font-semibold";
1148
+ var revealChevronBase = "size-4 shrink-0 text-muted-foreground transition-transform duration-200 data-[state=open]:rotate-90";
1149
+ var revealContentBase = "border-t border-border px-3 py-2.5 text-sm text-foreground";
1150
+
1151
+ // src/prevnext.ts
1152
+ var prevNextRootBase = "not-prose mt-8 flex flex-col gap-3 border-t border-border pt-6 sm:flex-row sm:justify-between";
1153
+ var prevNextLinkBase = "group flex min-w-0 flex-1 flex-col rounded-lg border border-border px-4 py-3 no-underline transition-colors hover:border-primary";
1154
+ var prevNextLinkNextBase = "items-end text-right";
1155
+ var prevNextDirectionBase = "text-xs font-medium text-muted-foreground";
1156
+ var prevNextTitleBase = "truncate text-sm font-medium text-foreground transition-colors group-hover:text-primary";
1157
+ var prevNextSpacerBase = "flex-1";
1158
+
1159
+ // src/latex.ts
1160
+ var import_katex = __toESM(require("katex"), 1);
1161
+ var latexRootBase = "not-prose";
1162
+ var latexDisplayBase = "my-4 block w-full overflow-x-auto py-1";
1163
+ var latexInlineBase = "inline-block align-middle";
1164
+ var latexErrorBase = "font-mono text-sm text-destructive";
1165
+ function toLaTeX(latex, opts) {
1166
+ return import_katex.default.renderToString(latex, {
1167
+ displayMode: opts?.displayMode ?? false,
1168
+ throwOnError: false,
1169
+ strict: false
1170
+ });
1171
+ }
1172
+
1173
+ // src/code-block.ts
1174
+ var codeBlockRootBase = "not-prose my-4 overflow-hidden rounded-lg border";
1175
+ var codeBlockHeaderBase = "flex h-10 items-center justify-between gap-2 border-b bg-muted/50 px-4";
1176
+ var codeBlockHeaderInfoBase = "flex min-w-0 items-center gap-2 text-muted-foreground";
1177
+ var codeBlockTitleBase = "min-w-0 truncate font-mono text-xs";
1178
+ var codeBlockBodyBase = "hx-cb relative overflow-x-auto bg-background";
1179
+ var codeBlockBodyScrollableBase = "overflow-y-auto";
1180
+ var codeBlockContentBase = "text-sm [&>pre]:p-4 [&_.line]:leading-[1.7]";
1181
+ var codeBlockLineNumbersBase = "cbln";
1182
+ var codeBlockHighlightBase = "cbhl";
1183
+ var codeBlockLoadingBase = "flex h-16 items-center justify-center";
1184
+ var codeBlockSpinnerBase = "h-4 w-4 animate-spin rounded-full border-2 border-muted-foreground border-t-transparent";
1185
+ var codeBlockCopyFloatBase = "absolute right-2 top-2";
1186
+ var CODE_BLOCK_STYLES = `
1187
+ .hx-cb pre.shiki{margin:0!important;border:0!important;border-radius:0!important;background:transparent!important}
1188
+ .hx-cb pre.shiki code{border:0!important;border-radius:0!important;background:transparent!important;padding:0!important}
1189
+ :root.dark .hx-cb .shiki,
1190
+ :root.dark .hx-cb .shiki span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}
1191
+ .hx-cb .cbln code{counter-reset:line;counter-increment:line 0}
1192
+ .hx-cb .cbln .line::before{content:counter(line);counter-increment:line;display:inline-block;min-width:1.5rem;padding-right:.75rem;margin-right:1rem;text-align:right;font-size:.75rem;line-height:1.7;user-select:none;color:color-mix(in srgb,var(--muted-foreground,#888) 55%,transparent)}
1193
+ .hx-cb .cbhl .line-highlighted{display:block;background-color:oklch(0.828 0.189 84.429/.12);border-left:2px solid oklch(0.769 0.188 70.08);margin:0 -1rem;padding:0 1rem}
1194
+ `;
1195
+ function injectCodeBlockStyles() {
1196
+ if (typeof document === "undefined") return;
1197
+ if (document.getElementById("hx-code-block")) return;
1198
+ const el = document.createElement("style");
1199
+ el.id = "hx-code-block";
1200
+ el.textContent = CODE_BLOCK_STYLES;
1201
+ document.head.appendChild(el);
1202
+ }
1203
+ function escapeHtml(s) {
1204
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
1205
+ }
1206
+ function plaintextFallback(code) {
1207
+ const lines = code.split("\n").map((l) => `<span class="line">${escapeHtml(l)}</span>`).join("\n");
1208
+ return `<pre class="shiki" tabindex="-1"><code>${lines}</code></pre>`;
1209
+ }
1210
+ async function renderCodeToHtml(code, language, highlightLines) {
1211
+ injectCodeBlockStyles();
1212
+ try {
1213
+ const { codeToHtml } = await import("shiki/bundle/full");
1214
+ return await codeToHtml(code, {
1215
+ lang: language,
1216
+ themes: { light: "github-light", dark: "github-dark" },
1217
+ tabindex: false,
1218
+ transformers: [
1219
+ {
1220
+ pre(node) {
1221
+ if (node.properties?.["style"]) {
1222
+ node.properties["style"] = node.properties["style"].replace(/background-color:\s*[^;]+;?\s*/gi, "").replace(/--shiki-dark-bg:\s*[^;]+;?\s*/gi, "");
1223
+ }
1224
+ },
1225
+ line(node, line) {
1226
+ if (highlightLines?.includes(line)) {
1227
+ this.addClassToHast(node, "line-highlighted");
1228
+ }
1229
+ }
1230
+ }
1231
+ ]
1232
+ });
1233
+ } catch {
1234
+ return plaintextFallback(code);
1235
+ }
1236
+ }
1237
+
1238
+ // src/manim.ts
1239
+ var manimRootBase = "not-prose my-4";
1240
+ var manimContainerBase = "relative w-full overflow-hidden rounded-lg border border-border [&_canvas]:!h-auto [&_canvas]:!max-w-full";
1241
+ var manimPlaceholderBase = "flex w-full items-center justify-center bg-muted/40";
1242
+ var manimPlaceholderLabelBase = "text-sm text-muted-foreground";
1243
+ var manimErrorBase = "flex items-center justify-center border-destructive/50 bg-destructive/5 p-6 text-sm text-destructive";
1244
+ var manimCaptionBase = "mt-2 text-center text-sm text-muted-foreground";
1245
+
1246
+ // src/youtube.ts
1247
+ var youtubeRootBase = "not-prose my-4";
1248
+ var youtubeTitleBase = "mb-2 text-lg font-semibold text-foreground";
1249
+ var youtubeFacadeBase = "group relative aspect-video w-full cursor-pointer overflow-hidden rounded-md border border-border bg-muted/40";
1250
+ var youtubePlayButtonBase = "absolute inset-0 flex items-center justify-center";
1251
+ var youtubePlayButtonInnerBase = "flex items-center justify-center rounded-xl bg-red-600 px-4 py-2 text-white shadow-lg transition-transform group-hover:scale-105";
1252
+ var youtubeDescriptionBase = "mt-2 text-sm text-muted-foreground";
1253
+ var youtubeChaptersBase = "group mt-3 rounded-lg border border-border bg-muted/40";
1254
+ var youtubeChaptersSummaryBase = "flex cursor-pointer list-none items-center gap-2 px-3 py-2.5 text-sm font-medium [&::-webkit-details-marker]:hidden";
1255
+ var youtubeChaptersChevronBase = "size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-90";
1256
+ var youtubeChaptersListBase = "border-t border-border px-2 py-2";
1257
+ var youtubeChapterButtonBase = "inline-flex w-full items-center gap-2 rounded-md px-2 py-1 text-left text-sm transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
1258
+ var youtubeChapterTimeBase = "font-mono text-xs text-primary";
1259
+ var youtubeChapterLabelBase = "text-foreground";
1260
+ function extractYouTubeId(raw) {
1261
+ try {
1262
+ const url = new URL(raw);
1263
+ const v = url.searchParams.get("v");
1264
+ if (v) return v;
1265
+ if (url.hostname === "youtu.be") return url.pathname.slice(1);
1266
+ } catch {
1267
+ }
1268
+ return raw;
1269
+ }
1270
+ function formatTime(seconds) {
1271
+ const h = Math.floor(seconds / 3600);
1272
+ const m = Math.floor(seconds % 3600 / 60);
1273
+ const s = Math.floor(seconds % 60);
1274
+ const mm = String(m).padStart(2, "0");
1275
+ const ss = String(s).padStart(2, "0");
1276
+ return h > 0 ? `${h}:${mm}:${ss}` : `${mm}:${ss}`;
1277
+ }
1278
+ var TIMESTAMP_RE = /^\s*\[?\(?(?:(\d+):)?(\d{1,2}):(\d{2})\)?\]?\s+(\S.*)$/;
1279
+ function parseYouTubeChapters(description) {
1280
+ return description.split("\n").map((line) => {
1281
+ const m = TIMESTAMP_RE.exec(line);
1282
+ if (!m) return null;
1283
+ const hours = m[1] ? Number(m[1]) : 0;
1284
+ const t = hours * 3600 + Number(m[2]) * 60 + Number(m[3]);
1285
+ return { t, label: m[4] };
1286
+ }).filter((c) => c !== null);
1287
+ }
1288
+ async function fetchYouTubeMetadata(url) {
1289
+ const videoId = extractYouTubeId(url);
1290
+ const res = await fetch(
1291
+ `https://noembed.com/embed?url=${encodeURIComponent(`https://www.youtube.com/watch?v=${videoId}`)}`
1292
+ );
1293
+ if (!res.ok) return {};
1294
+ const data = await res.json();
1295
+ return { title: data.title, description: data.description };
1296
+ }
1297
+
1298
+ // src/chart.ts
1299
+ var import_charts = require("@tanstack/charts");
1300
+ var import_polar = require("@tanstack/charts/polar");
1301
+ var import_linear = require("@tanstack/charts/scales/linear");
1302
+ var import_ordinal = require("@tanstack/charts/scales/ordinal");
1303
+ var import_point = require("@tanstack/charts/scales/point");
1304
+ var import_tooltip = require("@tanstack/charts/tooltip");
1305
+ var chartRootBase = "not-prose my-4";
1306
+ var chartPlaceholderBase = "flex items-center justify-center rounded-md border border-border bg-muted/40";
1307
+ var chartPlaceholderLabelBase = "text-sm text-muted-foreground";
1308
+ function defaultChartColor(index) {
1309
+ return `var(--chart-${index % 5 + 1})`;
1310
+ }
1311
+ var COLOR_TOKENS = ["var(--chart-1)", "var(--chart-2)", "var(--chart-3)", "var(--chart-4)", "var(--chart-5)"];
1312
+ function buildChartDefinition(props) {
1313
+ const {
1314
+ type,
1315
+ data,
1316
+ series,
1317
+ xKey = "name",
1318
+ nameKey = "name",
1319
+ showLegend = true,
1320
+ showGrid = true,
1321
+ showAxis = true
1322
+ } = props;
1323
+ const colors = series.map((s, i) => s.color ?? COLOR_TOKENS[i % COLOR_TOKENS.length]);
1324
+ if (type === "pie") {
1325
+ const valueKey = series[0]?.key ?? "value";
1326
+ const slices = (0, import_polar.pie)(data, { value: valueKey });
1327
+ const pieColors = data.map((_, i) => series[0]?.color ?? COLOR_TOKENS[i % COLOR_TOKENS.length]);
1328
+ const spec2 = {
1329
+ marks: [
1330
+ (0, import_polar.polar)({
1331
+ scales: { angle: null, radius: null },
1332
+ radiusRatio: 0.82,
1333
+ marks: [(0, import_polar.radialArc)(slices, { color: nameKey, key: nameKey, cornerRadius: 3 })]
1334
+ })
1335
+ ],
1336
+ scales: { x: null, y: null },
1337
+ color: {
1338
+ domain: data.map((d) => String(d[nameKey])),
1339
+ range: pieColors,
1340
+ legend: showLegend ? (0, import_charts.colorLegend)({}) : void 0
1341
+ },
1342
+ tooltip: import_tooltip.tooltip
1343
+ };
1344
+ return (0, import_charts.defineChart)(spec2);
1345
+ }
1346
+ const rows = data.flatMap(
1347
+ (row) => series.map((s) => ({
1348
+ ...row,
1349
+ _series: s.label ?? s.key,
1350
+ _value: Number(row[s.key])
1351
+ }))
1352
+ );
1353
+ const markOpts = { x: xKey, y: "_value", z: "_series" };
1354
+ const mark = type === "bar" ? (0, import_charts.barY)(rows, { ...markOpts, fillOpacity: 0.85 }) : type === "area" ? (0, import_charts.areaY)(rows, { ...markOpts, fillOpacity: 0.15 }) : (0, import_charts.lineY)(rows, { ...markOpts, strokeWidth: 2 });
1355
+ const spec = {
1356
+ marks: [mark],
1357
+ scales: {
1358
+ x: { scale: () => (0, import_point.scalePoint)().padding(0.4), axis: showAxis ? {} : void 0 },
1359
+ y: {
1360
+ scale: import_linear.scaleLinear,
1361
+ nice: true,
1362
+ grid: showGrid,
1363
+ axis: showAxis ? { ticks: { count: 5 } } : void 0
1364
+ }
1365
+ },
1366
+ color: {
1367
+ scale: () => (0, import_ordinal.scaleOrdinal)().range(colors),
1368
+ domain: series.map((s) => s.label ?? s.key),
1369
+ legend: showLegend ? (0, import_charts.colorLegend)({}) : void 0
1370
+ },
1371
+ tooltip: import_tooltip.tooltip
1372
+ };
1373
+ return (0, import_charts.defineChart)(spec);
1374
+ }
1375
+ function renderChartSvgString(props, opts = {}) {
1376
+ const { width = 720, height = props.height ?? 400, ariaLabel = "Chart" } = opts;
1377
+ const definition = buildChartDefinition(props);
1378
+ const runtime = (0, import_charts.createChartRuntime)();
1379
+ try {
1380
+ const scene = runtime.render(definition, { width, height });
1381
+ return (0, import_charts.renderChartSvg)(scene, { ariaLabel, idPrefix: "hx-chart" });
1382
+ } finally {
1383
+ runtime.destroy();
1384
+ }
1385
+ }
1386
+
1387
+ // src/question.ts
1388
+ var questionCardBase = "not-prose my-4 rounded-lg border border-border bg-card p-4";
1389
+ var questionPromptBase = "mb-3 text-sm font-medium text-foreground";
1390
+ var questionGroupBase = "grid gap-2";
1391
+ var questionOptionBase = "rounded-md px-3 py-2 transition-colors hover:bg-muted/60";
1392
+ var questionOptionCorrectBase = "bg-success/10";
1393
+ var questionOptionIncorrectBase = "bg-destructive/10";
1394
+ var questionCheckButtonBase = "mt-3 rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50";
1395
+ var questionInputBase = "h-9 w-32 rounded-md border border-input bg-background px-3 text-sm text-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50";
1396
+ var questionUnitBase = "text-sm text-muted-foreground";
1397
+ var feedbackCorrectBase = "text-success";
1398
+ var feedbackIncorrectBase = "text-destructive";
1399
+ var feedbackExplanationBase = "mt-1.5 text-sm text-muted-foreground";
1400
+ var quizRootBase = "not-prose my-6 rounded-lg border border-border bg-card/50 p-4";
1401
+ var quizHeaderBase = "mb-4 flex items-center justify-between gap-3";
1402
+ var quizTitleBase = "text-base font-semibold text-foreground";
1403
+ var quizScoreBase = "inline-flex items-center rounded-full bg-muted px-2.5 py-0.5 text-xs font-medium text-muted-foreground";
1404
+ var quizResultBase = "mt-4 rounded-lg border border-border bg-muted/40 p-4";
1405
+ var quizResultTitleBase = "text-lg font-semibold text-foreground";
1406
+ var quizResultTextBase = "mt-1 text-sm text-muted-foreground";
1407
+ var quizSubmitButtonBase = "rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50";
1408
+ var quizResetButtonBase = "inline-flex items-center gap-1.5 rounded-md border border-border bg-background px-3 py-1.5 text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2";
1409
+ // Annotate the CommonJS export names for ESM import in node:
1410
+ 0 && (module.exports = {
1411
+ SIDEBAR_KEYBOARD_SHORTCUT,
1412
+ SIDEBAR_WIDTH,
1413
+ SIDEBAR_WIDTH_ICON,
1414
+ SIDEBAR_WIDTH_MOBILE,
1415
+ THEMES,
1416
+ THEME_NAMES,
1417
+ badgeVariants,
1418
+ buildChartDefinition,
1419
+ buttonVariants,
1420
+ cardBodyBase,
1421
+ cardCoverVariants,
1422
+ cardDescriptionBase,
1423
+ cardFooterBase,
1424
+ cardHeaderBase,
1425
+ cardTitleBase,
1426
+ cardVariants,
1427
+ centerBase,
1428
+ chartPlaceholderBase,
1429
+ chartPlaceholderLabelBase,
1430
+ chartRootBase,
1431
+ checkboxGroupBase,
1432
+ checkboxIndicatorBase,
1433
+ checkboxLabelBase,
1434
+ checkboxVariants,
1435
+ clipboardTriggerBase,
1436
+ cn,
1437
+ codeBlockBodyBase,
1438
+ codeBlockBodyScrollableBase,
1439
+ codeBlockContentBase,
1440
+ codeBlockCopyFloatBase,
1441
+ codeBlockHeaderBase,
1442
+ codeBlockHeaderInfoBase,
1443
+ codeBlockHighlightBase,
1444
+ codeBlockLineNumbersBase,
1445
+ codeBlockLoadingBase,
1446
+ codeBlockRootBase,
1447
+ codeBlockSpinnerBase,
1448
+ codeBlockTitleBase,
1449
+ colBase,
1450
+ comboboxClearTriggerBase,
1451
+ comboboxContentBase,
1452
+ comboboxControlBase,
1453
+ comboboxEmptyBase,
1454
+ comboboxInputBase,
1455
+ comboboxItemGroupLabelBase,
1456
+ comboboxItemIndicatorBase,
1457
+ comboboxItemVariants,
1458
+ comboboxListBase,
1459
+ comboboxPositionerBase,
1460
+ comboboxTriggerBase,
1461
+ containerBase,
1462
+ defaultChartColor,
1463
+ dialogBackdropBase,
1464
+ dialogCloseTriggerBase,
1465
+ dialogContentBase,
1466
+ dialogDescriptionBase,
1467
+ dialogFooterBase,
1468
+ dialogFooterStickyBase,
1469
+ dialogFullscreenContentBase,
1470
+ dialogHeaderBase,
1471
+ dialogHeaderStickyBase,
1472
+ dialogPositionerBase,
1473
+ dialogTitleBase,
1474
+ extractYouTubeId,
1475
+ feedbackCorrectBase,
1476
+ feedbackExplanationBase,
1477
+ feedbackIncorrectBase,
1478
+ fetchYouTubeMetadata,
1479
+ fieldErrorBase,
1480
+ fieldHelperBase,
1481
+ fieldLabelBase,
1482
+ fieldRequiredIndicatorBase,
1483
+ fieldRootBase,
1484
+ fieldsetErrorBase,
1485
+ fieldsetHelperBase,
1486
+ fieldsetLegendBase,
1487
+ fieldsetRootBase,
1488
+ figureCaptionBase,
1489
+ figureImageBase,
1490
+ figureRootBase,
1491
+ formatTime,
1492
+ hstackBase,
1493
+ injectCodeBlockStyles,
1494
+ inputVariants,
1495
+ itemVariants,
1496
+ latexDisplayBase,
1497
+ latexErrorBase,
1498
+ latexInlineBase,
1499
+ latexRootBase,
1500
+ manimCaptionBase,
1501
+ manimContainerBase,
1502
+ manimErrorBase,
1503
+ manimPlaceholderBase,
1504
+ manimPlaceholderLabelBase,
1505
+ manimRootBase,
1506
+ mermaidLoadingBase,
1507
+ mermaidRootBase,
1508
+ mermaidSourceBase,
1509
+ mermaidSvgAspectRatio,
1510
+ mermaidSvgBase,
1511
+ nativeSelectIconBase,
1512
+ nativeSelectVariants,
1513
+ nativeSelectWrapperBase,
1514
+ navbarActionsBase,
1515
+ navbarActivationAreaBase,
1516
+ navbarBrandBase,
1517
+ navbarContainerBase,
1518
+ navbarDensityVariants,
1519
+ navbarMenuBase,
1520
+ navbarMenuContentBase,
1521
+ navbarMenuIndicatorBase,
1522
+ navbarMenuItemBase,
1523
+ navbarMenuLinkBase,
1524
+ navbarMenuListBase,
1525
+ navbarMenuPlacementVariants,
1526
+ navbarMenuRootBase,
1527
+ navbarMenuTriggerStyle,
1528
+ navbarMenuViewportBase,
1529
+ navbarMenuViewportPositionerBase,
1530
+ navbarMobileActionsBase,
1531
+ navbarMobileBase,
1532
+ navbarMobileContentBase,
1533
+ navbarMobileHeaderBase,
1534
+ navbarMobileMenuBase,
1535
+ navbarMobileMenuContentBase,
1536
+ navbarMobileMenuTriggerBase,
1537
+ navbarShrunkBase,
1538
+ navbarTriggerVariants,
1539
+ navbarVariants,
1540
+ noticeDescriptionBase,
1541
+ noticeTitleBase,
1542
+ noticeVariants,
1543
+ numberInputControlBase,
1544
+ numberInputInputBase,
1545
+ numberInputRootBase,
1546
+ numberInputTriggerBase,
1547
+ pageContentBase,
1548
+ pageFooterBase,
1549
+ pageGutterAreaBase,
1550
+ pageGutterContentVariants,
1551
+ pageGutterVariants,
1552
+ pageSectionBase,
1553
+ pageVariants,
1554
+ paginationEllipsisBase,
1555
+ paginationItemBase,
1556
+ paginationRootBase,
1557
+ paginationTriggerBase,
1558
+ parseYouTubeChapters,
1559
+ popoverArrowBase,
1560
+ popoverCloseTriggerBase,
1561
+ popoverContentBase,
1562
+ popoverDescriptionBase,
1563
+ popoverIndicatorBase,
1564
+ popoverPositionerBase,
1565
+ popoverTitleBase,
1566
+ prevNextDirectionBase,
1567
+ prevNextLinkBase,
1568
+ prevNextLinkNextBase,
1569
+ prevNextRootBase,
1570
+ prevNextSpacerBase,
1571
+ prevNextTitleBase,
1572
+ questionCardBase,
1573
+ questionCheckButtonBase,
1574
+ questionGroupBase,
1575
+ questionInputBase,
1576
+ questionOptionBase,
1577
+ questionOptionCorrectBase,
1578
+ questionOptionIncorrectBase,
1579
+ questionPromptBase,
1580
+ questionUnitBase,
1581
+ quizHeaderBase,
1582
+ quizResetButtonBase,
1583
+ quizResultBase,
1584
+ quizResultTextBase,
1585
+ quizResultTitleBase,
1586
+ quizRootBase,
1587
+ quizScoreBase,
1588
+ quizSubmitButtonBase,
1589
+ quizTitleBase,
1590
+ radioGroupItemControlBase,
1591
+ radioGroupItemTextBase,
1592
+ radioGroupRootBase,
1593
+ renderChartSvgString,
1594
+ renderCodeToHtml,
1595
+ renderMermaidSource,
1596
+ resolveMermaidThemeVariables,
1597
+ revealChevronBase,
1598
+ revealContentBase,
1599
+ revealRootBase,
1600
+ revealTriggerBase,
1601
+ rowBase,
1602
+ scrollContentBase,
1603
+ scrollCornerBase,
1604
+ scrollRootBase,
1605
+ scrollScrollbarBase,
1606
+ scrollThumbBase,
1607
+ scrollViewportBase,
1608
+ selectClearTriggerBase,
1609
+ selectContentBase,
1610
+ selectIndicatorBase,
1611
+ selectItemBase,
1612
+ selectItemGroupLabelBase,
1613
+ selectItemIndicatorBase,
1614
+ selectItemTextBase,
1615
+ selectPositionerBase,
1616
+ selectTriggerBase,
1617
+ selectValueBase,
1618
+ sidebarMenuButtonVariants,
1619
+ sidebarStyles,
1620
+ splitterPanelBase,
1621
+ splitterResizeTriggerBase,
1622
+ splitterResizeTriggerIndicatorBase,
1623
+ splitterResizeTriggerSeparatorBase,
1624
+ splitterRootBase,
1625
+ stackBase,
1626
+ switchControlBase,
1627
+ switchLabelBase,
1628
+ switchThumbBase,
1629
+ switchVariants,
1630
+ tabsContentBase,
1631
+ tabsIndicatorBase,
1632
+ tabsIndicatorVariants,
1633
+ tabsListBase,
1634
+ tabsListVariants,
1635
+ tabsRootBase,
1636
+ tabsTriggerBase,
1637
+ tagsInputClearTriggerBase,
1638
+ tagsInputControlBase,
1639
+ tagsInputInputBase,
1640
+ tagsInputItemBase,
1641
+ tagsInputItemDeleteTriggerBase,
1642
+ tagsInputItemInputBase,
1643
+ tagsInputItemTextBase,
1644
+ tagsInputRootBase,
1645
+ textareaBase,
1646
+ toLaTeX,
1647
+ toggleButtonVariants,
1648
+ tooltipArrowBase,
1649
+ tooltipContentBase,
1650
+ tooltipPositionerBase,
1651
+ vstackBase,
1652
+ windowBodyBase,
1653
+ windowCloseTriggerBase,
1654
+ windowContentBase,
1655
+ windowControlBase,
1656
+ windowDragTriggerBase,
1657
+ windowHeaderBase,
1658
+ windowPositionerBase,
1659
+ windowResizeTriggerBase,
1660
+ windowStageTriggerBase,
1661
+ windowTitleBase,
1662
+ youtubeChapterButtonBase,
1663
+ youtubeChapterLabelBase,
1664
+ youtubeChapterTimeBase,
1665
+ youtubeChaptersBase,
1666
+ youtubeChaptersChevronBase,
1667
+ youtubeChaptersListBase,
1668
+ youtubeChaptersSummaryBase,
1669
+ youtubeDescriptionBase,
1670
+ youtubeFacadeBase,
1671
+ youtubePlayButtonBase,
1672
+ youtubePlayButtonInnerBase,
1673
+ youtubeRootBase,
1674
+ youtubeTitleBase
1675
+ });