@vllnt/ui 0.1.4 → 0.1.7-canary.2c4792f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/accordion.js +172 -0
- package/dist/components/accordion/index.js +12 -0
- package/dist/components/alert/alert.js +53 -0
- package/dist/components/alert/index.js +7 -0
- package/dist/components/alert-dialog/alert-dialog.js +117 -0
- package/dist/components/alert-dialog/index.js +26 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +6 -0
- package/dist/components/aspect-ratio/index.js +4 -0
- package/dist/components/avatar/avatar.js +43 -0
- package/dist/components/avatar/index.js +6 -0
- package/dist/components/badge/badge.js +26 -0
- package/dist/components/badge/index.js +5 -0
- package/dist/components/blog-card/blog-card.js +50 -0
- package/dist/components/blog-card/index.js +5 -0
- package/dist/components/breadcrumb/breadcrumb.js +61 -0
- package/dist/components/breadcrumb/index.js +4 -0
- package/dist/components/button/button.js +48 -0
- package/dist/components/button/index.js +5 -0
- package/dist/components/calendar/calendar.js +71 -0
- package/dist/components/calendar/index.js +4 -0
- package/dist/components/callout/callout.js +59 -0
- package/dist/components/callout/index.js +4 -0
- package/dist/components/card/card.js +64 -0
- package/dist/components/card/index.js +16 -0
- package/dist/components/carousel/carousel.js +239 -0
- package/dist/components/carousel/index.js +14 -0
- package/dist/components/category-filter/category-filter.js +34 -0
- package/dist/components/category-filter/index.js +4 -0
- package/dist/components/chart/area-chart.js +99 -0
- package/dist/components/chart/bar-chart.js +80 -0
- package/dist/components/chart/index.js +3 -0
- package/dist/components/chart/line-chart.js +97 -0
- package/dist/components/checkbox/checkbox.js +28 -0
- package/dist/components/checkbox/index.js +4 -0
- package/dist/components/checklist/checklist.js +181 -0
- package/dist/components/checklist/index.js +6 -0
- package/dist/components/code-block/code-block.js +126 -0
- package/dist/components/code-block/index.js +4 -0
- package/dist/components/code-playground/code-playground.js +86 -0
- package/dist/components/code-playground/index.js +8 -0
- package/dist/components/collapsible/collapsible.js +10 -0
- package/dist/components/collapsible/index.js +10 -0
- package/dist/components/command/command.js +123 -0
- package/dist/components/command/index.js +22 -0
- package/dist/components/comparison/comparison.js +121 -0
- package/dist/components/comparison/index.js +8 -0
- package/dist/components/completion-dialog/completion-dialog.js +173 -0
- package/dist/components/completion-dialog/index.js +6 -0
- package/dist/components/content-intro/content-intro.js +144 -0
- package/dist/components/content-intro/index.js +6 -0
- package/dist/components/context-menu/context-menu.js +154 -0
- package/dist/components/context-menu/index.js +34 -0
- package/dist/components/cookie-consent/cookie-consent.js +175 -0
- package/dist/components/cookie-consent/index.js +8 -0
- package/dist/components/dialog/dialog.js +105 -0
- package/dist/components/dialog/index.js +24 -0
- package/dist/components/drawer/drawer.js +102 -0
- package/dist/components/drawer/index.js +24 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +151 -0
- package/dist/components/dropdown-menu/index.js +34 -0
- package/dist/components/exercise/exercise.js +112 -0
- package/dist/components/exercise/index.js +4 -0
- package/dist/components/faq/faq.js +56 -0
- package/dist/components/faq/index.js +5 -0
- package/dist/components/filter-bar/filter-bar.js +244 -0
- package/dist/components/filter-bar/index.js +6 -0
- package/dist/components/floating-action-button/floating-action-button.js +35 -0
- package/dist/components/floating-action-button/index.js +6 -0
- package/dist/components/flow-diagram/flow-canvas.js +109 -0
- package/dist/components/flow-diagram/flow-controls.js +140 -0
- package/dist/components/flow-diagram/flow-diagram.js +114 -0
- package/dist/components/flow-diagram/flow-error-boundary.js +63 -0
- package/dist/components/flow-diagram/flow-fullscreen.js +58 -0
- package/dist/components/flow-diagram/index.js +12 -0
- package/dist/components/flow-diagram/types.js +0 -0
- package/dist/components/flow-diagram/use-flow-diagram.js +146 -0
- package/dist/components/horizontal-scroll-row/horizontal-scroll-row.js +66 -0
- package/dist/components/horizontal-scroll-row/index.js +6 -0
- package/dist/components/hover-card/hover-card.js +26 -0
- package/dist/components/hover-card/index.js +6 -0
- package/dist/components/index.js +641 -0
- package/dist/components/inline-input/index.js +4 -0
- package/dist/components/inline-input/inline-input.js +42 -0
- package/dist/components/input/index.js +4 -0
- package/dist/components/input/input.js +23 -0
- package/dist/components/input-otp/index.js +12 -0
- package/dist/components/input-otp/input-otp.js +54 -0
- package/dist/components/key-concept/index.js +8 -0
- package/dist/components/key-concept/key-concept.js +79 -0
- package/dist/components/keyboard-shortcuts-help/index.js +6 -0
- package/dist/components/keyboard-shortcuts-help/keyboard-shortcuts-help.js +121 -0
- package/dist/components/label/index.js +4 -0
- package/dist/components/label/label.js +21 -0
- package/dist/components/lang-provider/index.js +4 -0
- package/dist/components/lang-provider/lang-provider.js +18 -0
- package/dist/components/learning-objectives/index.js +10 -0
- package/dist/components/learning-objectives/learning-objectives.js +76 -0
- package/dist/components/mdx-content/index.js +4 -0
- package/dist/components/mdx-content/mdx-content.js +151 -0
- package/dist/components/menubar/index.js +36 -0
- package/dist/components/menubar/menubar.js +183 -0
- package/dist/components/model-selector/index.js +6 -0
- package/dist/components/model-selector/model-selector.js +374 -0
- package/dist/components/navbar-saas/index.js +6 -0
- package/dist/components/navbar-saas/navbar-saas.js +68 -0
- package/dist/components/navbar-saas/use-mobile.js +19 -0
- package/dist/components/navigation-menu/index.js +22 -0
- package/dist/components/navigation-menu/navigation-menu.js +108 -0
- package/dist/components/pagination/index.js +4 -0
- package/dist/components/pagination/pagination.js +44 -0
- package/dist/components/popover/index.js +12 -0
- package/dist/components/popover/popover.js +28 -0
- package/dist/components/pro-tip/index.js +8 -0
- package/dist/components/pro-tip/pro-tip.js +139 -0
- package/dist/components/profile-section/index.js +4 -0
- package/dist/components/profile-section/profile-section.js +45 -0
- package/dist/components/progress-bar/index.js +4 -0
- package/dist/components/progress-bar/progress-bar.js +56 -0
- package/dist/components/progress-card/index.js +6 -0
- package/dist/components/progress-card/progress-card.js +71 -0
- package/dist/components/quiz/index.js +4 -0
- package/dist/components/quiz/quiz.js +210 -0
- package/dist/components/radio-group/index.js +5 -0
- package/dist/components/radio-group/radio-group.js +36 -0
- package/dist/components/resizable/index.js +10 -0
- package/dist/components/resizable/resizable.js +39 -0
- package/dist/components/scroll-area/index.js +5 -0
- package/dist/components/scroll-area/scroll-area.js +39 -0
- package/dist/components/search-bar/index.js +4 -0
- package/dist/components/search-bar/search-bar.js +122 -0
- package/dist/components/search-dialog/index.js +4 -0
- package/dist/components/search-dialog/search-dialog.js +102 -0
- package/dist/components/select/index.js +24 -0
- package/dist/components/select/select.js +125 -0
- package/dist/components/separator/index.js +4 -0
- package/dist/components/separator/separator.js +25 -0
- package/dist/components/share-dialog/index.js +6 -0
- package/dist/components/share-dialog/share-dialog.js +121 -0
- package/dist/components/share-section/index.js +6 -0
- package/dist/components/share-section/share-section.js +57 -0
- package/dist/components/sheet/index.js +24 -0
- package/dist/components/sheet/sheet.js +116 -0
- package/dist/components/sidebar/index.js +4 -0
- package/dist/components/sidebar/sidebar.js +188 -0
- package/dist/components/sidebar-provider/index.js +5 -0
- package/dist/components/sidebar-provider/sidebar-provider.js +25 -0
- package/dist/components/sidebar-toggle/index.js +4 -0
- package/dist/components/sidebar-toggle/sidebar-toggle.js +36 -0
- package/dist/components/skeleton/index.js +4 -0
- package/dist/components/skeleton/skeleton.js +17 -0
- package/dist/components/slider/index.js +4 -0
- package/dist/components/slider/slider.js +24 -0
- package/dist/components/slideshow/index.js +6 -0
- package/dist/components/slideshow/slideshow.js +440 -0
- package/dist/components/social-fab/index.js +6 -0
- package/dist/components/social-fab/social-fab.js +211 -0
- package/dist/components/social-fab/use-social-fab.js +111 -0
- package/dist/components/spinner/index.js +4 -0
- package/dist/components/spinner/spinner.js +23 -0
- package/dist/components/step-by-step/index.js +8 -0
- package/dist/components/step-by-step/step-by-step.js +194 -0
- package/dist/components/step-navigation/index.js +4 -0
- package/dist/components/step-navigation/step-navigation.js +119 -0
- package/dist/components/switch/index.js +4 -0
- package/dist/components/switch/switch.js +28 -0
- package/dist/components/table/index.js +20 -0
- package/dist/components/table/table.js +87 -0
- package/dist/components/table-of-contents/index.js +4 -0
- package/dist/components/table-of-contents/table-of-contents.js +71 -0
- package/dist/components/table-of-contents-panel/index.js +6 -0
- package/dist/components/table-of-contents-panel/table-of-contents-panel.js +202 -0
- package/dist/components/tabs/index.js +12 -0
- package/dist/components/tabs/tabs.js +84 -0
- package/dist/components/terminal/index.js +8 -0
- package/dist/components/terminal/terminal.js +119 -0
- package/dist/components/textarea/index.js +4 -0
- package/dist/components/textarea/textarea.js +22 -0
- package/dist/components/theme-provider/index.js +4 -0
- package/dist/components/theme-provider/theme-provider.js +11 -0
- package/dist/components/theme-toggle/index.js +4 -0
- package/dist/components/theme-toggle/theme-toggle.js +170 -0
- package/dist/components/thinking-block/index.js +4 -0
- package/dist/components/thinking-block/thinking-block.js +56 -0
- package/dist/components/tldr-section/index.js +4 -0
- package/dist/components/tldr-section/tldr-section.js +101 -0
- package/dist/components/toast/index.js +18 -0
- package/dist/components/toast/toast.js +84 -0
- package/dist/components/toast/toaster.js +38 -0
- package/dist/components/toggle/index.js +5 -0
- package/dist/components/toggle/toggle.js +39 -0
- package/dist/components/toggle-group/index.js +5 -0
- package/dist/components/toggle-group/toggle-group.js +46 -0
- package/dist/components/tooltip/index.js +12 -0
- package/dist/components/tooltip/tooltip.js +27 -0
- package/dist/components/truncated-text/index.js +4 -0
- package/dist/components/truncated-text/truncated-text.js +25 -0
- package/dist/components/tutorial-card/index.js +6 -0
- package/dist/components/tutorial-card/tutorial-card.js +78 -0
- package/dist/components/tutorial-complete/index.js +6 -0
- package/dist/components/tutorial-complete/tutorial-complete.js +134 -0
- package/dist/components/tutorial-filters/index.js +6 -0
- package/dist/components/tutorial-filters/tutorial-filters.js +205 -0
- package/dist/components/tutorial-intro-content/index.js +6 -0
- package/dist/components/tutorial-intro-content/tutorial-intro-content.js +141 -0
- package/dist/components/tutorial-mdx/index.js +8 -0
- package/dist/components/tutorial-mdx/tutorial-mdx.js +219 -0
- package/dist/components/video-embed/index.js +4 -0
- package/dist/components/video-embed/video-embed.js +77 -0
- package/dist/components/view-switcher/index.js +6 -0
- package/dist/components/view-switcher/view-switcher.js +92 -0
- package/dist/index.d.ts +44 -2
- package/dist/index.js +14 -8556
- package/dist/lib/types.js +11 -0
- package/dist/lib/use-debounce.js +17 -0
- package/dist/lib/use-horizontal-scroll.js +60 -0
- package/dist/lib/use-mounted.js +17 -0
- package/dist/lib/utils.js +8 -0
- package/dist/tailwind-preset.d.ts +5 -0
- package/dist/tailwind-preset.js +9 -10
- package/dist/types/content.js +0 -0
- package/dist/types/index.js +0 -0
- package/package.json +42 -23
- package/LICENSE +0 -21
- package/dist/chunk-XRV5RSYH.js +0 -569
- package/dist/flow-diagram-N3EHM6VB.js +0 -2
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { lazy, memo, Suspense, use, useMemo } from "react";
|
|
4
|
+
import { evaluate } from "@mdx-js/mdx";
|
|
5
|
+
import * as runtime from "react/jsx-runtime";
|
|
6
|
+
import ReactMarkdown from "react-markdown";
|
|
7
|
+
import { cn } from "../../lib/utils";
|
|
8
|
+
import {
|
|
9
|
+
Accordion,
|
|
10
|
+
AccordionContent,
|
|
11
|
+
AccordionItem,
|
|
12
|
+
AccordionTrigger
|
|
13
|
+
} from "../accordion";
|
|
14
|
+
import { Callout } from "../callout";
|
|
15
|
+
import { Checklist } from "../checklist";
|
|
16
|
+
import { CodePlayground, FileTree } from "../code-playground";
|
|
17
|
+
import { BeforeAfter, Comparison } from "../comparison";
|
|
18
|
+
import { Exercise } from "../exercise";
|
|
19
|
+
import { FAQ, FAQItem } from "../faq";
|
|
20
|
+
import { Glossary, KeyConcept } from "../key-concept";
|
|
21
|
+
import {
|
|
22
|
+
LearningObjectives,
|
|
23
|
+
Prerequisites,
|
|
24
|
+
Summary
|
|
25
|
+
} from "../learning-objectives";
|
|
26
|
+
import { CommonMistake, ProTip } from "../pro-tip";
|
|
27
|
+
import { Quiz } from "../quiz";
|
|
28
|
+
import { Step, StepByStep } from "../step-by-step";
|
|
29
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../tabs";
|
|
30
|
+
import { SimpleTerminal, Terminal } from "../terminal";
|
|
31
|
+
import { VideoEmbed } from "../video-embed";
|
|
32
|
+
const LazyFlowDiagram = lazy(
|
|
33
|
+
() => import("../flow-diagram").then((module_) => ({
|
|
34
|
+
default: module_.FlowDiagram
|
|
35
|
+
}))
|
|
36
|
+
);
|
|
37
|
+
function FlowDiagramWithSuspense(props) {
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
Suspense,
|
|
40
|
+
{
|
|
41
|
+
fallback: /* @__PURE__ */ jsx(
|
|
42
|
+
"div",
|
|
43
|
+
{
|
|
44
|
+
"aria-label": "Loading diagram...",
|
|
45
|
+
className: "h-96 bg-muted animate-pulse rounded-lg"
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
children: /* @__PURE__ */ jsx(LazyFlowDiagram, { ...props })
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
const mdxComponents = {
|
|
53
|
+
Accordion,
|
|
54
|
+
AccordionContent,
|
|
55
|
+
AccordionItem,
|
|
56
|
+
AccordionTrigger,
|
|
57
|
+
BeforeAfter,
|
|
58
|
+
Callout,
|
|
59
|
+
Checklist,
|
|
60
|
+
CodePlayground,
|
|
61
|
+
CommonMistake,
|
|
62
|
+
Comparison,
|
|
63
|
+
Exercise,
|
|
64
|
+
FAQ,
|
|
65
|
+
FAQItem,
|
|
66
|
+
FileTree,
|
|
67
|
+
FlowDiagram: FlowDiagramWithSuspense,
|
|
68
|
+
Glossary,
|
|
69
|
+
KeyConcept,
|
|
70
|
+
LearningObjectives,
|
|
71
|
+
Prerequisites,
|
|
72
|
+
ProTip,
|
|
73
|
+
Quiz,
|
|
74
|
+
SimpleTerminal,
|
|
75
|
+
Step,
|
|
76
|
+
StepByStep,
|
|
77
|
+
Summary,
|
|
78
|
+
Tabs,
|
|
79
|
+
TabsContent,
|
|
80
|
+
TabsList,
|
|
81
|
+
TabsTrigger,
|
|
82
|
+
Terminal,
|
|
83
|
+
VideoEmbed
|
|
84
|
+
};
|
|
85
|
+
const markdownComponents = {
|
|
86
|
+
a: ({ children, href, ...props }) => /* @__PURE__ */ jsx(
|
|
87
|
+
"a",
|
|
88
|
+
{
|
|
89
|
+
className: "text-primary underline underline-offset-4 hover:text-primary/80 font-medium",
|
|
90
|
+
href,
|
|
91
|
+
...props,
|
|
92
|
+
children
|
|
93
|
+
}
|
|
94
|
+
),
|
|
95
|
+
blockquote: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
96
|
+
"blockquote",
|
|
97
|
+
{
|
|
98
|
+
className: "border-l-4 border-primary pl-4 italic text-muted-foreground my-6 py-2 text-sm",
|
|
99
|
+
...props,
|
|
100
|
+
children
|
|
101
|
+
}
|
|
102
|
+
),
|
|
103
|
+
code: ({ children, className, ...props }) => {
|
|
104
|
+
const isBlock = className?.includes("language-");
|
|
105
|
+
if (isBlock) {
|
|
106
|
+
return /* @__PURE__ */ jsx("code", { className: cn("font-mono text-sm", className), ...props, children });
|
|
107
|
+
}
|
|
108
|
+
return /* @__PURE__ */ jsx(
|
|
109
|
+
"code",
|
|
110
|
+
{
|
|
111
|
+
className: "bg-muted px-1.5 py-0.5 rounded text-sm font-mono",
|
|
112
|
+
...props,
|
|
113
|
+
children
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
},
|
|
117
|
+
h1: ({ children, ...props }) => /* @__PURE__ */ jsx("h1", { className: "text-2xl font-bold mt-8 mb-4", ...props, children }),
|
|
118
|
+
h2: ({ children, ...props }) => /* @__PURE__ */ jsx("h2", { className: "text-xl font-bold mt-6 mb-3", ...props, children }),
|
|
119
|
+
h3: ({ children, ...props }) => /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold mt-4 mb-2", ...props, children }),
|
|
120
|
+
h4: ({ children, ...props }) => /* @__PURE__ */ jsx("h4", { className: "text-base font-bold mt-3 mb-2", ...props, children }),
|
|
121
|
+
hr: ({ ...props }) => /* @__PURE__ */ jsx("hr", { className: "my-8 border-border", ...props }),
|
|
122
|
+
li: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
123
|
+
"li",
|
|
124
|
+
{
|
|
125
|
+
className: "mb-2 leading-relaxed text-muted-foreground text-sm pl-2",
|
|
126
|
+
...props,
|
|
127
|
+
children
|
|
128
|
+
}
|
|
129
|
+
),
|
|
130
|
+
ol: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
131
|
+
"ol",
|
|
132
|
+
{
|
|
133
|
+
className: "list-decimal list-outside mb-6 space-y-2 ml-6 text-muted-foreground text-sm",
|
|
134
|
+
...props,
|
|
135
|
+
children
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
p: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
139
|
+
"p",
|
|
140
|
+
{
|
|
141
|
+
className: "mb-4 leading-relaxed text-muted-foreground text-sm",
|
|
142
|
+
...props,
|
|
143
|
+
children
|
|
144
|
+
}
|
|
145
|
+
),
|
|
146
|
+
pre: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
147
|
+
"pre",
|
|
148
|
+
{
|
|
149
|
+
className: "bg-zinc-950 dark:bg-zinc-900 text-zinc-100 p-4 rounded-lg overflow-x-auto my-6 border border-zinc-800 shadow-lg font-mono text-sm",
|
|
150
|
+
...props,
|
|
151
|
+
children
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
strong: ({ children, ...props }) => /* @__PURE__ */ jsx("strong", { className: "font-semibold text-foreground", ...props, children }),
|
|
155
|
+
table: ({ children, ...props }) => /* @__PURE__ */ jsx("div", { className: "my-6 overflow-x-auto", children: /* @__PURE__ */ jsx("table", { className: "w-full border-collapse border border-border", ...props, children }) }),
|
|
156
|
+
td: ({ children, ...props }) => /* @__PURE__ */ jsx("td", { className: "border border-border p-2 text-sm", ...props, children }),
|
|
157
|
+
th: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
158
|
+
"th",
|
|
159
|
+
{
|
|
160
|
+
className: "border border-border bg-muted p-2 text-left font-medium text-sm",
|
|
161
|
+
...props,
|
|
162
|
+
children
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
ul: ({ children, ...props }) => /* @__PURE__ */ jsx(
|
|
166
|
+
"ul",
|
|
167
|
+
{
|
|
168
|
+
className: "list-disc list-outside mb-6 space-y-2 ml-6 text-muted-foreground text-sm",
|
|
169
|
+
...props,
|
|
170
|
+
children
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
};
|
|
174
|
+
const allComponents = {
|
|
175
|
+
...markdownComponents,
|
|
176
|
+
...mdxComponents
|
|
177
|
+
};
|
|
178
|
+
function hasJSXComponents(content) {
|
|
179
|
+
const contentWithoutCodeBlocks = content.replaceAll(/```[\S\s]*?```/g, "");
|
|
180
|
+
return /<[A-Z][A-Za-z]*[\s/>]/.test(contentWithoutCodeBlocks);
|
|
181
|
+
}
|
|
182
|
+
function MDXWithSuspense({ className, content }) {
|
|
183
|
+
const mdxPromise = useMemo(
|
|
184
|
+
() => evaluate(content, {
|
|
185
|
+
...runtime,
|
|
186
|
+
baseUrl: import.meta.url
|
|
187
|
+
}),
|
|
188
|
+
[content]
|
|
189
|
+
);
|
|
190
|
+
return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(MDXLoadingFallback, {}), children: /* @__PURE__ */ jsx(MDXContent, { mdxPromise }) }) });
|
|
191
|
+
}
|
|
192
|
+
function MarkdownOnly({ className, content }) {
|
|
193
|
+
return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(ReactMarkdown, { components: markdownComponents, children: content }) });
|
|
194
|
+
}
|
|
195
|
+
function MDXContent({
|
|
196
|
+
mdxPromise
|
|
197
|
+
}) {
|
|
198
|
+
const { default: Component } = use(mdxPromise);
|
|
199
|
+
return /* @__PURE__ */ jsx(Component, { components: allComponents });
|
|
200
|
+
}
|
|
201
|
+
function MDXLoadingFallback() {
|
|
202
|
+
return /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "min-h-[100px]" });
|
|
203
|
+
}
|
|
204
|
+
function TutorialMDXImpl({
|
|
205
|
+
className,
|
|
206
|
+
content
|
|
207
|
+
}) {
|
|
208
|
+
const hasJSX = hasJSXComponents(content);
|
|
209
|
+
if (hasJSX) {
|
|
210
|
+
return /* @__PURE__ */ jsx(MDXWithSuspense, { className, content });
|
|
211
|
+
}
|
|
212
|
+
return /* @__PURE__ */ jsx(MarkdownOnly, { className, content });
|
|
213
|
+
}
|
|
214
|
+
const TutorialMDX = memo(TutorialMDXImpl);
|
|
215
|
+
TutorialMDX.displayName = "TutorialMDX";
|
|
216
|
+
export {
|
|
217
|
+
TutorialMDX,
|
|
218
|
+
mdxComponents
|
|
219
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Play, Video } from "lucide-react";
|
|
5
|
+
import { cn } from "../../lib/utils";
|
|
6
|
+
function getEmbedUrl(source, type) {
|
|
7
|
+
if (type === "youtube") {
|
|
8
|
+
const videoId = /(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)([^&?]+)/.exec(
|
|
9
|
+
source
|
|
10
|
+
)?.[1];
|
|
11
|
+
return videoId ? `https://www.youtube.com/embed/${videoId}` : source;
|
|
12
|
+
}
|
|
13
|
+
if (type === "vimeo") {
|
|
14
|
+
const videoId = /vimeo\.com\/(\d+)/.exec(source)?.[1];
|
|
15
|
+
return videoId ? `https://player.vimeo.com/video/${videoId}` : source;
|
|
16
|
+
}
|
|
17
|
+
return source;
|
|
18
|
+
}
|
|
19
|
+
function VideoEmbed({
|
|
20
|
+
aspectRatio = "16/9",
|
|
21
|
+
src,
|
|
22
|
+
thumbnail,
|
|
23
|
+
title,
|
|
24
|
+
type = "youtube"
|
|
25
|
+
}) {
|
|
26
|
+
const [isPlaying, setIsPlaying] = useState(false);
|
|
27
|
+
const embedUrl = getEmbedUrl(src, type);
|
|
28
|
+
const aspectClass = aspectRatio === "16/9" ? "aspect-video" : aspectRatio === "4/3" ? "aspect-[4/3]" : "aspect-square";
|
|
29
|
+
return /* @__PURE__ */ jsxs("div", { className: "my-6", children: [
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
"div",
|
|
32
|
+
{
|
|
33
|
+
className: cn(
|
|
34
|
+
"relative rounded-lg overflow-hidden bg-muted border",
|
|
35
|
+
aspectClass
|
|
36
|
+
),
|
|
37
|
+
children: isPlaying ? /* @__PURE__ */ jsx(
|
|
38
|
+
"iframe",
|
|
39
|
+
{
|
|
40
|
+
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
41
|
+
allowFullScreen: true,
|
|
42
|
+
className: "absolute inset-0 w-full h-full",
|
|
43
|
+
src: `${embedUrl}?autoplay=1`,
|
|
44
|
+
title
|
|
45
|
+
}
|
|
46
|
+
) : /* @__PURE__ */ jsxs(
|
|
47
|
+
"button",
|
|
48
|
+
{
|
|
49
|
+
className: "absolute inset-0 w-full h-full flex items-center justify-center group",
|
|
50
|
+
onClick: () => {
|
|
51
|
+
setIsPlaying(true);
|
|
52
|
+
},
|
|
53
|
+
type: "button",
|
|
54
|
+
children: [
|
|
55
|
+
thumbnail ? /* @__PURE__ */ jsx(
|
|
56
|
+
"img",
|
|
57
|
+
{
|
|
58
|
+
alt: title,
|
|
59
|
+
className: "absolute inset-0 w-full h-full object-cover",
|
|
60
|
+
src: thumbnail
|
|
61
|
+
}
|
|
62
|
+
) : /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-muted to-muted-foreground/20" }),
|
|
63
|
+
/* @__PURE__ */ jsx("div", { className: "relative z-10 flex h-16 w-16 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg transition-transform group-hover:scale-110", children: /* @__PURE__ */ jsx(Play, { className: "h-6 w-6 ml-1" }) })
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ jsxs("p", { className: "mt-2 text-sm text-center text-muted-foreground flex items-center justify-center gap-1", children: [
|
|
70
|
+
/* @__PURE__ */ jsx(Video, { className: "h-4 w-4" }),
|
|
71
|
+
title
|
|
72
|
+
] })
|
|
73
|
+
] });
|
|
74
|
+
}
|
|
75
|
+
export {
|
|
76
|
+
VideoEmbed
|
|
77
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { memo, Suspense } from "react";
|
|
4
|
+
import { usePathname, useRouter, useSearchParams } from "next/navigation";
|
|
5
|
+
import { cn } from "../../lib/utils";
|
|
6
|
+
function ViewSwitcherInner({
|
|
7
|
+
className,
|
|
8
|
+
defaultKey,
|
|
9
|
+
options,
|
|
10
|
+
paramName: parameterName = "view"
|
|
11
|
+
}) {
|
|
12
|
+
const router = useRouter();
|
|
13
|
+
const pathname = usePathname();
|
|
14
|
+
const searchParameters = useSearchParams();
|
|
15
|
+
const resolvedDefault = defaultKey ?? options[0]?.key ?? "";
|
|
16
|
+
const currentKey = searchParameters.get(parameterName) ?? resolvedDefault;
|
|
17
|
+
function handleSelect(key) {
|
|
18
|
+
const parameters = new URLSearchParams(searchParameters.toString());
|
|
19
|
+
if (key === resolvedDefault) {
|
|
20
|
+
parameters.delete(parameterName);
|
|
21
|
+
} else {
|
|
22
|
+
parameters.set(parameterName, key);
|
|
23
|
+
}
|
|
24
|
+
const query = parameters.toString();
|
|
25
|
+
router.push(query ? `${pathname}?${query}` : pathname, { scroll: false });
|
|
26
|
+
}
|
|
27
|
+
return /* @__PURE__ */ jsx(
|
|
28
|
+
"div",
|
|
29
|
+
{
|
|
30
|
+
className: cn(
|
|
31
|
+
"inline-flex items-center rounded-lg border bg-muted p-1",
|
|
32
|
+
className
|
|
33
|
+
),
|
|
34
|
+
role: "tablist",
|
|
35
|
+
children: options.map((option) => /* @__PURE__ */ jsx(
|
|
36
|
+
"button",
|
|
37
|
+
{
|
|
38
|
+
"aria-selected": currentKey === option.key,
|
|
39
|
+
className: cn(
|
|
40
|
+
"rounded-md px-3 py-1.5 text-sm font-medium transition-colors",
|
|
41
|
+
currentKey === option.key ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
|
|
42
|
+
),
|
|
43
|
+
onClick: () => {
|
|
44
|
+
handleSelect(option.key);
|
|
45
|
+
},
|
|
46
|
+
role: "tab",
|
|
47
|
+
type: "button",
|
|
48
|
+
children: option.label
|
|
49
|
+
},
|
|
50
|
+
option.key
|
|
51
|
+
))
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
function ViewSwitcherFallback({
|
|
56
|
+
className,
|
|
57
|
+
defaultKey,
|
|
58
|
+
options
|
|
59
|
+
}) {
|
|
60
|
+
const resolvedDefault = defaultKey ?? options[0]?.key ?? "";
|
|
61
|
+
return /* @__PURE__ */ jsx(
|
|
62
|
+
"div",
|
|
63
|
+
{
|
|
64
|
+
className: cn(
|
|
65
|
+
"inline-flex items-center rounded-lg border bg-muted p-1",
|
|
66
|
+
className
|
|
67
|
+
),
|
|
68
|
+
role: "tablist",
|
|
69
|
+
children: options.map((option) => /* @__PURE__ */ jsx(
|
|
70
|
+
"button",
|
|
71
|
+
{
|
|
72
|
+
"aria-selected": resolvedDefault === option.key,
|
|
73
|
+
className: cn(
|
|
74
|
+
"rounded-md px-3 py-1.5 text-sm font-medium transition-colors",
|
|
75
|
+
resolvedDefault === option.key ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
|
|
76
|
+
),
|
|
77
|
+
role: "tab",
|
|
78
|
+
type: "button",
|
|
79
|
+
children: option.label
|
|
80
|
+
},
|
|
81
|
+
option.key
|
|
82
|
+
))
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
const ViewSwitcher = memo(function ViewSwitcher2(props) {
|
|
87
|
+
return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(ViewSwitcherFallback, { ...props }), children: /* @__PURE__ */ jsx(ViewSwitcherInner, { ...props }) });
|
|
88
|
+
});
|
|
89
|
+
ViewSwitcher.displayName = "ViewSwitcher";
|
|
90
|
+
export {
|
|
91
|
+
ViewSwitcher
|
|
92
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -899,7 +899,7 @@ type ComparisonProps = {
|
|
|
899
899
|
before: ComparisonSide;
|
|
900
900
|
title?: string;
|
|
901
901
|
};
|
|
902
|
-
declare function Comparison({ after, before, title }: ComparisonProps): react_jsx_runtime.JSX.Element;
|
|
902
|
+
declare function Comparison({ after, before, title, ...rest }: ComparisonProps & Record<string, unknown>): react_jsx_runtime.JSX.Element | null;
|
|
903
903
|
type BeforeAfterProps = {
|
|
904
904
|
after: ReactNode;
|
|
905
905
|
before: ReactNode;
|
|
@@ -1519,6 +1519,26 @@ declare function useSocialFab(options?: UseSocialFabOptions): {
|
|
|
1519
1519
|
};
|
|
1520
1520
|
};
|
|
1521
1521
|
|
|
1522
|
+
type HorizontalScrollRowProps = {
|
|
1523
|
+
children: ReactNode;
|
|
1524
|
+
className?: string;
|
|
1525
|
+
description?: string;
|
|
1526
|
+
title: string;
|
|
1527
|
+
};
|
|
1528
|
+
declare const HorizontalScrollRow: react.NamedExoticComponent<HorizontalScrollRowProps>;
|
|
1529
|
+
|
|
1530
|
+
type ViewOption = {
|
|
1531
|
+
key: string;
|
|
1532
|
+
label: string;
|
|
1533
|
+
};
|
|
1534
|
+
type ViewSwitcherProps = {
|
|
1535
|
+
className?: string;
|
|
1536
|
+
defaultKey?: string;
|
|
1537
|
+
options: ViewOption[];
|
|
1538
|
+
paramName?: string;
|
|
1539
|
+
};
|
|
1540
|
+
declare const ViewSwitcher: react.NamedExoticComponent<ViewSwitcherProps>;
|
|
1541
|
+
|
|
1522
1542
|
type FlowDiagramNode = {
|
|
1523
1543
|
data: {
|
|
1524
1544
|
description?: string;
|
|
@@ -1832,6 +1852,28 @@ type Content<TSection extends ContentSectionMinimal = ContentSection> = ContentM
|
|
|
1832
1852
|
*/
|
|
1833
1853
|
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
1834
1854
|
|
|
1855
|
+
type UseHorizontalScrollReturn = {
|
|
1856
|
+
canScrollLeft: boolean;
|
|
1857
|
+
canScrollRight: boolean;
|
|
1858
|
+
containerRef: React.RefCallback<HTMLElement>;
|
|
1859
|
+
scroll: (direction: "left" | "right") => void;
|
|
1860
|
+
};
|
|
1861
|
+
/**
|
|
1862
|
+
* Hook for horizontal scroll containers with navigation state.
|
|
1863
|
+
*
|
|
1864
|
+
* @returns Scroll state, ref callback for the container, and scroll function.
|
|
1865
|
+
*
|
|
1866
|
+
* @example
|
|
1867
|
+
* ```tsx
|
|
1868
|
+
* const { canScrollLeft, canScrollRight, containerRef, scroll } = useHorizontalScroll();
|
|
1869
|
+
*
|
|
1870
|
+
* <div ref={containerRef} className="overflow-x-auto">
|
|
1871
|
+
* {children}
|
|
1872
|
+
* </div>
|
|
1873
|
+
* ```
|
|
1874
|
+
*/
|
|
1875
|
+
declare function useHorizontalScroll(): UseHorizontalScrollReturn;
|
|
1876
|
+
|
|
1835
1877
|
declare function cn(...inputs: ClassValue[]): string;
|
|
1836
1878
|
|
|
1837
|
-
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BarChart, BeforeAfter, type BeforeAfterProps, BlogCard, Breadcrumb, type BreadcrumbItem, Button, type ButtonProps, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutVariant, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryFilter, Checkbox, Checklist, type ChecklistItem, type ChecklistProps, CodeBlock, CodePlayground, type CodePlaygroundProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonMistake, type CommonMistakeProps, Comparison, type ComparisonProps, CompletionDialog, type CompletionDialogProps, Content, ContentCard, ContentIntro, type ContentIntroLabels, type ContentIntroProps, type ContentIntroSection, type ContentMeta, type ContentProgress, type ContentSection, type ContentSectionMinimal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CookieConsent, type CookieConsentProps, type CopyStatus, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DifficultyLevel, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Exercise, type ExerciseProps, FAQ, FAQItem, type FAQItemProps, type FAQProps, FileTree, type FileTreeProps, FilterBar, type FilterBarLabels, type FilterBarProps, type FilterOption, type FilterUpdates, FloatingActionButton, type FloatingActionButtonProps, FlowControls, type FlowControlsProps, FlowDiagram, type FlowDiagramEdge, type FlowDiagramNode, type FlowDiagramProps, FlowErrorBoundary, FlowFullscreen, type FlowFullscreenProps, Glossary, type GlossaryProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineInput, type InlineInputProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KeyConcept, type KeyConceptProps, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, LANGUAGE_NAMES, Label, LangProvider, LearningObjectives, type LearningObjectivesProps, LineChart, MDXContent, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, type ModelInfo, ModelSelector, type ModelSelectorProps, type NavItem, NavbarSaas, type NavbarSaasProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, type PaginationProps, type PlatformConfig, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Prerequisites, type PrerequisitesProps, ProTip, type ProTipProps, type ProTipVariant, ProfileSection, ProgressBar, type ProgressBarProps, Quiz, type QuizOption, type QuizProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SearchBar, SearchDialog, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShareDialog, type ShareDialogLabels, type SharePlatform as ShareDialogPlatform, type ShareDialogProps, type SharePlatform$1 as SharePlatform, type SharePlatformConfig, ShareSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, type SidebarItem, SidebarProvider, type SidebarSection, SidebarToggle, type SidebarToggleProps, SimpleTerminal, type SimpleTerminalProps, Skeleton, Slider, Slideshow, type SlideshowLabels, type SlideshowProps, type SlideshowSection, SocialFAB, type SocialFabActionConfig, type SocialFabLabels, type SocialFabProps, Spinner, type SpinnerProps, Step, StepByStep, type StepByStepProps, StepNavigation, type StepNavigationProps, type StepProps, Summary, type SummaryProps, Switch, TLDRSection, type TOCSection, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableOfContentsPanel, type TableOfContentsPanelProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Terminal, type TerminalLine, type TerminalProps, Textarea, type TextareaProps, ThemeProvider, ThemeToggle, ThinkingBlock, type ThinkingBlockProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextProps, TutorialCard, type TutorialCardLabels, type TutorialCardMeta, type TutorialCardProgress, type TutorialCardProps, TutorialComplete, type TutorialCompleteLabels, type TutorialCompleteProps, type TutorialCompleteRelatedContent, type TutorialCompleteSection, TutorialFilters, type TutorialFiltersLabels, type TutorialFiltersProps, TutorialIntroContent, type TutorialIntroContentProps, TutorialMDX, type TutorialMDXProps, type SupportedLanguage as UISupportedLanguage, type UseFlowDiagramOptions, type UseFlowDiagramReturn, VideoEmbed, type VideoEmbedProps, alertVariants, badgeVariants, buttonVariants, cn, cookieConsentVariants, getOtherLanguage, mdxComponents, navigationMenuTriggerStyle, toggleVariants, useDebounce, useFlowDiagram, useMobile, useSidebar, useSocialFab };
|
|
1879
|
+
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BarChart, BeforeAfter, type BeforeAfterProps, BlogCard, Breadcrumb, type BreadcrumbItem, Button, type ButtonProps, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutVariant, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryFilter, Checkbox, Checklist, type ChecklistItem, type ChecklistProps, CodeBlock, CodePlayground, type CodePlaygroundProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonMistake, type CommonMistakeProps, Comparison, type ComparisonProps, CompletionDialog, type CompletionDialogProps, Content, ContentCard, ContentIntro, type ContentIntroLabels, type ContentIntroProps, type ContentIntroSection, type ContentMeta, type ContentProgress, type ContentSection, type ContentSectionMinimal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CookieConsent, type CookieConsentProps, type CopyStatus, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DifficultyLevel, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Exercise, type ExerciseProps, FAQ, FAQItem, type FAQItemProps, type FAQProps, FileTree, type FileTreeProps, FilterBar, type FilterBarLabels, type FilterBarProps, type FilterOption, type FilterUpdates, FloatingActionButton, type FloatingActionButtonProps, FlowControls, type FlowControlsProps, FlowDiagram, type FlowDiagramEdge, type FlowDiagramNode, type FlowDiagramProps, FlowErrorBoundary, FlowFullscreen, type FlowFullscreenProps, Glossary, type GlossaryProps, HorizontalScrollRow, type HorizontalScrollRowProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineInput, type InlineInputProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KeyConcept, type KeyConceptProps, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, LANGUAGE_NAMES, Label, LangProvider, LearningObjectives, type LearningObjectivesProps, LineChart, MDXContent, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, type ModelInfo, ModelSelector, type ModelSelectorProps, type NavItem, NavbarSaas, type NavbarSaasProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, type PaginationProps, type PlatformConfig, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Prerequisites, type PrerequisitesProps, ProTip, type ProTipProps, type ProTipVariant, ProfileSection, ProgressBar, type ProgressBarProps, Quiz, type QuizOption, type QuizProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SearchBar, SearchDialog, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShareDialog, type ShareDialogLabels, type SharePlatform as ShareDialogPlatform, type ShareDialogProps, type SharePlatform$1 as SharePlatform, type SharePlatformConfig, ShareSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, type SidebarItem, SidebarProvider, type SidebarSection, SidebarToggle, type SidebarToggleProps, SimpleTerminal, type SimpleTerminalProps, Skeleton, Slider, Slideshow, type SlideshowLabels, type SlideshowProps, type SlideshowSection, SocialFAB, type SocialFabActionConfig, type SocialFabLabels, type SocialFabProps, Spinner, type SpinnerProps, Step, StepByStep, type StepByStepProps, StepNavigation, type StepNavigationProps, type StepProps, Summary, type SummaryProps, Switch, TLDRSection, type TOCSection, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableOfContentsPanel, type TableOfContentsPanelProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Terminal, type TerminalLine, type TerminalProps, Textarea, type TextareaProps, ThemeProvider, ThemeToggle, ThinkingBlock, type ThinkingBlockProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TruncatedText, type TruncatedTextProps, TutorialCard, type TutorialCardLabels, type TutorialCardMeta, type TutorialCardProgress, type TutorialCardProps, TutorialComplete, type TutorialCompleteLabels, type TutorialCompleteProps, type TutorialCompleteRelatedContent, type TutorialCompleteSection, TutorialFilters, type TutorialFiltersLabels, type TutorialFiltersProps, TutorialIntroContent, type TutorialIntroContentProps, TutorialMDX, type TutorialMDXProps, type SupportedLanguage as UISupportedLanguage, type UseFlowDiagramOptions, type UseFlowDiagramReturn, VideoEmbed, type VideoEmbedProps, type ViewOption, ViewSwitcher, type ViewSwitcherProps, alertVariants, badgeVariants, buttonVariants, cn, cookieConsentVariants, getOtherLanguage, mdxComponents, navigationMenuTriggerStyle, toggleVariants, useDebounce, useFlowDiagram, useHorizontalScroll, useMobile, useSidebar, useSocialFab };
|