@sampleapp.ai/sdk 1.0.29 → 1.0.30

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 (143) hide show
  1. package/dist/components/guardian/app-layout-no-sidebar.js +8 -0
  2. package/dist/components/guardian/ask-ai-view.js +249 -0
  3. package/dist/components/guardian/code-focus-section.d.ts +41 -0
  4. package/dist/components/guardian/code-focus-section.js +174 -0
  5. package/dist/components/guardian/context/guardian-context.js +94 -0
  6. package/dist/components/guardian/context/vm-context.js +28 -0
  7. package/dist/components/guardian/default-guide-view.js +34 -0
  8. package/dist/components/guardian/demo/guardian-demo.js +35 -0
  9. package/dist/components/guardian/demo/left-view/toggle.js +28 -0
  10. package/dist/components/guardian/demo/left-view.js +49 -0
  11. package/dist/components/guardian/guardian-component.js +79 -0
  12. package/dist/components/guardian/guardian-demo.js +35 -0
  13. package/dist/components/guardian/guardian-home.d.ts +4 -0
  14. package/dist/components/guardian/guardian-home.js +61 -0
  15. package/dist/components/guardian/guardian-playground.js +45 -0
  16. package/dist/components/guardian/guardian-style-wrapper.js +29 -0
  17. package/dist/components/guardian/guardian-upload-spec.d.ts +14 -0
  18. package/dist/components/guardian/guardian-upload-spec.js +160 -0
  19. package/dist/components/guardian/header/glassmorphic-combobox.d.ts +15 -0
  20. package/dist/components/guardian/header/glassmorphic-combobox.js +30 -0
  21. package/dist/components/guardian/header.js +61 -0
  22. package/dist/components/guardian/hooks/use-frame-messages.js +65 -0
  23. package/dist/components/guardian/hooks/use-frame-params.js +44 -0
  24. package/dist/components/guardian/hooks/use-sandbox-url-loader.js +101 -0
  25. package/dist/components/guardian/ide/browser.js +538 -0
  26. package/dist/components/guardian/index.js +8 -0
  27. package/dist/components/guardian/layout/app-layout-no-sidebar.js +8 -0
  28. package/dist/components/guardian/layout/header/glassmorphic-combobox.js +48 -0
  29. package/dist/components/guardian/layout/header.js +63 -0
  30. package/dist/components/guardian/right-view/code-view.js +56 -0
  31. package/dist/components/guardian/right-view/pill-file-selector.js +233 -0
  32. package/dist/components/guardian/right-view/preview-control-bar.js +25 -0
  33. package/dist/components/guardian/right-view/right-panel-view.js +38 -0
  34. package/dist/components/guardian/right-view/right-top-down-view.js +289 -0
  35. package/dist/components/guardian/right-view/right-view.js +28 -0
  36. package/dist/components/guardian/right-view/simplified-editor.js +234 -0
  37. package/dist/components/guardian/types/ide-types.js +162 -0
  38. package/dist/components/guardian/types.js +3 -0
  39. package/dist/components/guardian/ui/ai-loader.js +48 -0
  40. package/dist/components/guardian/ui/badge.js +24 -0
  41. package/dist/components/guardian/ui/button.js +45 -0
  42. package/dist/components/guardian/ui/command.js +63 -0
  43. package/dist/components/guardian/ui/console-with-app.js +17 -0
  44. package/dist/components/guardian/ui/dialog.js +57 -0
  45. package/dist/components/guardian/ui/dropdown-menu.js +82 -0
  46. package/dist/components/guardian/ui/markdown.js +57 -0
  47. package/dist/components/guardian/ui/popover.js +25 -0
  48. package/dist/components/guardian/ui/tooltip.js +25 -0
  49. package/dist/components/guardian/utils.js +88 -0
  50. package/dist/components/guardian/zip-to-codebase.js +246 -0
  51. package/dist/components/guardian/zip-to-filetree.js +284 -0
  52. package/dist/components/icons.js +22 -0
  53. package/dist/components/sandbox/Sandbox.js +87 -0
  54. package/dist/components/sandbox/SandboxHome.js +141 -0
  55. package/dist/components/sandbox/api.js +108 -0
  56. package/dist/components/sandbox/guardian/app-layout-no-sidebar.js +8 -0
  57. package/dist/components/sandbox/guardian/ask-ai-view.js +249 -0
  58. package/dist/components/sandbox/guardian/code-focus-section.js +174 -0
  59. package/dist/components/sandbox/guardian/context/guardian-context.js +94 -0
  60. package/dist/components/sandbox/guardian/context/vm-context.js +28 -0
  61. package/dist/components/sandbox/guardian/default-guide-view.js +34 -0
  62. package/dist/components/sandbox/guardian/demo/guardian-demo.js +35 -0
  63. package/dist/components/sandbox/guardian/demo/left-view/toggle.js +28 -0
  64. package/dist/components/sandbox/guardian/demo/left-view.js +58 -0
  65. package/dist/components/sandbox/guardian/guardian-component.js +97 -0
  66. package/dist/components/sandbox/guardian/guardian-demo.js +35 -0
  67. package/dist/components/sandbox/guardian/guardian-home.d.ts +4 -0
  68. package/dist/components/sandbox/guardian/guardian-home.js +61 -0
  69. package/dist/components/sandbox/guardian/guardian-playground.js +45 -0
  70. package/dist/components/sandbox/guardian/guardian-style-wrapper.js +33 -0
  71. package/dist/components/sandbox/guardian/guardian-upload-spec.d.ts +14 -0
  72. package/dist/components/sandbox/guardian/guardian-upload-spec.js +160 -0
  73. package/dist/components/sandbox/guardian/header/glassmorphic-combobox.js +30 -0
  74. package/dist/components/sandbox/guardian/header.js +61 -0
  75. package/dist/components/sandbox/guardian/hooks/use-frame-messages.js +65 -0
  76. package/dist/components/sandbox/guardian/hooks/use-frame-params.js +44 -0
  77. package/dist/components/sandbox/guardian/hooks/use-sandbox-url-loader.js +145 -0
  78. package/dist/components/sandbox/guardian/ide/browser.js +538 -0
  79. package/dist/components/sandbox/guardian/index.js +8 -0
  80. package/dist/components/sandbox/guardian/right-view/code-view.js +60 -0
  81. package/dist/components/sandbox/guardian/right-view/pill-file-selector.js +233 -0
  82. package/dist/components/sandbox/guardian/right-view/preview-control-bar.js +25 -0
  83. package/dist/components/sandbox/guardian/right-view/right-panel-view.js +38 -0
  84. package/dist/components/sandbox/guardian/right-view/right-top-down-view.js +289 -0
  85. package/dist/components/sandbox/guardian/right-view/right-view.js +28 -0
  86. package/dist/components/sandbox/guardian/right-view/simplified-editor.js +234 -0
  87. package/dist/components/sandbox/guardian/types/ide-types.js +162 -0
  88. package/dist/components/sandbox/guardian/types.js +3 -0
  89. package/dist/components/sandbox/guardian/ui/ai-loader.js +48 -0
  90. package/dist/components/sandbox/guardian/ui/badge.js +24 -0
  91. package/dist/components/sandbox/guardian/ui/button.js +45 -0
  92. package/dist/components/sandbox/guardian/ui/command.js +63 -0
  93. package/dist/components/sandbox/guardian/ui/console-with-app.js +17 -0
  94. package/dist/components/sandbox/guardian/ui/dialog.js +57 -0
  95. package/dist/components/sandbox/guardian/ui/dropdown-menu.js +82 -0
  96. package/dist/components/sandbox/guardian/ui/markdown/accordion-group/accordion.js +62 -0
  97. package/dist/components/sandbox/guardian/ui/markdown/accordion-group.js +23 -0
  98. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-check.js +4 -0
  99. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-error.js +4 -0
  100. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-info.js +4 -0
  101. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-note.js +4 -0
  102. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-tip.js +4 -0
  103. package/dist/components/sandbox/guardian/ui/markdown/callout/callout-warning.js +4 -0
  104. package/dist/components/sandbox/guardian/ui/markdown/callout/shared/callout.js +9 -0
  105. package/dist/components/sandbox/guardian/ui/markdown/callout/shared/types.js +1 -0
  106. package/dist/components/sandbox/guardian/ui/markdown/card-group/card.js +18 -0
  107. package/dist/components/sandbox/guardian/ui/markdown/card-group.js +25 -0
  108. package/dist/components/sandbox/guardian/ui/markdown/code-group/code-block.js +87 -0
  109. package/dist/components/sandbox/guardian/ui/markdown/code-group.js +101 -0
  110. package/dist/components/sandbox/guardian/ui/markdown/icon.js +31 -0
  111. package/dist/components/sandbox/guardian/ui/markdown.js +786 -0
  112. package/dist/components/sandbox/guardian/ui/popover.js +25 -0
  113. package/dist/components/sandbox/guardian/ui/tooltip.js +25 -0
  114. package/dist/components/sandbox/guardian/utils.js +88 -0
  115. package/dist/components/sandbox/guardian/zip-to-codebase.js +259 -0
  116. package/dist/components/sandbox/guardian/zip-to-filetree.js +284 -0
  117. package/dist/components/sandbox/index.js +4 -0
  118. package/dist/components/sandbox/sandbox-control-bar.js +91 -0
  119. package/dist/components/sandbox/sandbox-header.js +52 -0
  120. package/dist/components/sandbox/sandbox-home/SandboxCard.js +59 -0
  121. package/dist/components/sandbox/sandbox-home/SandboxHome.js +174 -0
  122. package/dist/components/sandbox/sandbox-home/SearchBar.js +12 -0
  123. package/dist/components/sandbox/sandbox-home/index.js +3 -0
  124. package/dist/components/sandbox/sandbox-left-panel.js +248 -0
  125. package/dist/components/sandbox/sandbox-loading.js +48 -0
  126. package/dist/components/sandbox/sandbox-right-panel.js +247 -0
  127. package/dist/components/sandbox/types.js +1 -0
  128. package/dist/components/sandbox.js +32 -0
  129. package/dist/components/tailwind-example.js +46 -0
  130. package/dist/index.d.ts +336 -1
  131. package/dist/index.es.js +90131 -421
  132. package/dist/index.js +13 -2
  133. package/dist/index.standalone.js +61 -53
  134. package/dist/index.standalone.umd.js +17 -24
  135. package/dist/lib/api-client.example.js +60 -0
  136. package/dist/lib/api-client.js +98 -0
  137. package/dist/lib/generated-css.js +4 -0
  138. package/dist/lib/inject-styles.js +42 -0
  139. package/dist/lib/shadow-dom-wrapper.js +42 -0
  140. package/dist/lib/utils.js +5 -0
  141. package/dist/sdk.css +1 -1
  142. package/dist/tailwind.css +1 -0
  143. package/package.json +32 -5
@@ -0,0 +1,162 @@
1
+ // Types for IDE context compatibility
2
+ export var Framework;
3
+ (function (Framework) {
4
+ // DJANGO = "django",
5
+ Framework["FLASK"] = "flask";
6
+ Framework["EXPRESS"] = "express";
7
+ Framework["NEXTJS_YARN"] = "nextjsy";
8
+ Framework["VITE"] = "vite";
9
+ Framework["NEXTJS"] = "nextjs";
10
+ Framework["FASTAPI"] = "fastapi";
11
+ Framework["FASTMCP"] = "fastmcp";
12
+ })(Framework || (Framework = {}));
13
+ export const FrameworkLabel = {
14
+ [Framework.FLASK]: "Flask",
15
+ [Framework.VITE]: "Vite",
16
+ [Framework.NEXTJS]: "Next.js",
17
+ [Framework.NEXTJS_YARN]: "Next.js (Yarn)",
18
+ [Framework.EXPRESS]: "Express",
19
+ [Framework.FASTAPI]: "FastAPI",
20
+ [Framework.FASTMCP]: "FastMCP",
21
+ };
22
+ export var CodeLanguage;
23
+ (function (CodeLanguage) {
24
+ // Web/Frontend Languages
25
+ CodeLanguage["JAVASCRIPT"] = "javascript";
26
+ CodeLanguage["TYPESCRIPT"] = "typescript";
27
+ CodeLanguage["HTML"] = "html";
28
+ CodeLanguage["CSS"] = "css";
29
+ CodeLanguage["SCSS"] = "scss";
30
+ CodeLanguage["MARKDOWN"] = "markdown";
31
+ CodeLanguage["TOML"] = "toml";
32
+ CodeLanguage["C"] = "c";
33
+ CodeLanguage["DOCKERFILE"] = "dockerfile";
34
+ // Backend Languages
35
+ CodeLanguage["PYTHON"] = "python";
36
+ CodeLanguage["JAVA"] = "java";
37
+ CodeLanguage["CSHARP"] = "csharp";
38
+ CodeLanguage["CPP"] = "cpp";
39
+ CodeLanguage["RUBY"] = "ruby";
40
+ CodeLanguage["GO"] = "go";
41
+ CodeLanguage["RUST"] = "rust";
42
+ CodeLanguage["SWIFT"] = "swift";
43
+ CodeLanguage["KOTLIN"] = "kotlin";
44
+ CodeLanguage["PHP"] = "php";
45
+ // System/Shell Languages
46
+ CodeLanguage["BASH"] = "bash";
47
+ CodeLanguage["POWERSHELL"] = "powershell";
48
+ // Database Languages
49
+ CodeLanguage["SQL"] = "sql";
50
+ CodeLanguage["PLSQL"] = "plsql";
51
+ // Markup/Config Languages
52
+ CodeLanguage["XML"] = "xml";
53
+ CodeLanguage["YAML"] = "yaml";
54
+ // Other Languages
55
+ CodeLanguage["R"] = "r";
56
+ CodeLanguage["SCALA"] = "scala";
57
+ CodeLanguage["PERL"] = "perl";
58
+ CodeLanguage["HASKELL"] = "haskell";
59
+ CodeLanguage["MATLAB"] = "matlab";
60
+ CodeLanguage["ASSEMBLY"] = "assembly";
61
+ CodeLanguage["DART"] = "dart";
62
+ CodeLanguage["ELIXIR"] = "elixir";
63
+ CodeLanguage["LUA"] = "lua";
64
+ CodeLanguage["OBJECTIVEC"] = "objectivec";
65
+ CodeLanguage["TEXT"] = "text";
66
+ CodeLanguage["JSON"] = "json";
67
+ })(CodeLanguage || (CodeLanguage = {}));
68
+ // Map file extensions to CodeLanguage enum
69
+ export function filePathToCodeLanguage(filePath) {
70
+ var _a;
71
+ const ext = (_a = filePath.split(".").pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
72
+ if (!ext) {
73
+ return CodeLanguage.TEXT;
74
+ }
75
+ switch (ext.replace(/^\./, "").toLowerCase()) {
76
+ case "js":
77
+ case "jsx":
78
+ return CodeLanguage.JAVASCRIPT;
79
+ case "ts":
80
+ case "tsx":
81
+ return CodeLanguage.TYPESCRIPT;
82
+ case "html":
83
+ return CodeLanguage.HTML;
84
+ case "css":
85
+ return CodeLanguage.CSS;
86
+ case "scss":
87
+ case "sass":
88
+ return CodeLanguage.SCSS;
89
+ case "py":
90
+ return CodeLanguage.PYTHON;
91
+ case "java":
92
+ return CodeLanguage.JAVA;
93
+ case "cs":
94
+ return CodeLanguage.CSHARP;
95
+ case "cpp":
96
+ case "cc":
97
+ case "cxx":
98
+ return CodeLanguage.CPP;
99
+ case "c":
100
+ return CodeLanguage.C;
101
+ case "rb":
102
+ return CodeLanguage.RUBY;
103
+ case "go":
104
+ return CodeLanguage.GO;
105
+ case "rs":
106
+ return CodeLanguage.RUST;
107
+ case "swift":
108
+ return CodeLanguage.SWIFT;
109
+ case "kt":
110
+ return CodeLanguage.KOTLIN;
111
+ case "php":
112
+ return CodeLanguage.PHP;
113
+ case "sh":
114
+ case "bash":
115
+ return CodeLanguage.BASH;
116
+ case "ps1":
117
+ return CodeLanguage.POWERSHELL;
118
+ case "sql":
119
+ return CodeLanguage.SQL;
120
+ case "plsql":
121
+ return CodeLanguage.PLSQL;
122
+ case "xml":
123
+ return CodeLanguage.XML;
124
+ case "yaml":
125
+ case "yml":
126
+ return CodeLanguage.YAML;
127
+ case "r":
128
+ return CodeLanguage.R;
129
+ case "scala":
130
+ return CodeLanguage.SCALA;
131
+ case "pl":
132
+ return CodeLanguage.PERL;
133
+ case "hs":
134
+ return CodeLanguage.HASKELL;
135
+ case "m":
136
+ return CodeLanguage.MATLAB;
137
+ case "s":
138
+ case "asm":
139
+ return CodeLanguage.ASSEMBLY;
140
+ case "dart":
141
+ return CodeLanguage.DART;
142
+ case "ex":
143
+ case "exs":
144
+ return CodeLanguage.ELIXIR;
145
+ case "lua":
146
+ return CodeLanguage.LUA;
147
+ case "m":
148
+ case "mm":
149
+ return CodeLanguage.OBJECTIVEC;
150
+ case "md":
151
+ case "markdown":
152
+ return CodeLanguage.MARKDOWN;
153
+ case "json":
154
+ return CodeLanguage.JSON;
155
+ case "toml":
156
+ return CodeLanguage.TOML;
157
+ case "dockerfile":
158
+ return CodeLanguage.DOCKERFILE;
159
+ default:
160
+ return CodeLanguage.TEXT;
161
+ }
162
+ }
@@ -0,0 +1,3 @@
1
+ import { Framework, FrameworkLabel, } from "./types/ide-types";
2
+ // Re-export Framework and FrameworkLabel for convenience
3
+ export { Framework, FrameworkLabel };
@@ -0,0 +1,48 @@
1
+ import * as React from "react";
2
+ export const Component = ({ size = 180, text = "Generating", fullScreen = true, }) => {
3
+ const letters = text.split("");
4
+ return (React.createElement("div", { className: [
5
+ "flex items-center justify-center bg-gradient-to-b from-gray-100 via-gray-200 to-gray-300 dark:from-[#1a3379] dark:via-[#0f172a] dark:to-black",
6
+ fullScreen ? "fixed inset-0 z-50" : "w-full h-full",
7
+ ].join(" ") },
8
+ React.createElement("div", { className: "relative flex items-center justify-center font-inter select-none", style: { width: size, height: size } },
9
+ letters.map((letter, index) => {
10
+ // Preserve visual spacing for spaces by using a non‑breaking space
11
+ const displayChar = letter === " " ? "\u00A0" : letter;
12
+ return (React.createElement("span", { key: `${letter}-${index}`, className: "inline-block text-gray-800 dark:text-white opacity-40 animate-loaderLetter", style: { animationDelay: `${index * 0.1}s` } }, displayChar));
13
+ }),
14
+ React.createElement("div", { className: "absolute inset-0 rounded-full animate-loaderCircle" })),
15
+ React.createElement("style", null, `
16
+ @keyframes loaderCircle {
17
+ 0% {
18
+ transform: rotate(90deg);
19
+ box-shadow: 0 6px 12px 0 #4b5563 inset, 0 12px 18px 0 #6b7280 inset,
20
+ 0 36px 36px 0 #9ca3af inset,
21
+ 0 0 3px 1.2px rgba(107, 114, 128, 0.3),
22
+ 0 0 0 0 rgba(107, 114, 128, 0.3);
23
+ }
24
+ 100% {
25
+ transform: rotate(450deg);
26
+ box-shadow: 0 6px 12px 0 #4b5563 inset, 0 12px 18px 0 #6b7280 inset,
27
+ 0 36px 36px 0 #9ca3af inset,
28
+ 0 0 3px 1.2px rgba(107, 114, 128, 0.3),
29
+ 0 0 0 0 rgba(107, 114, 128, 0.3);
30
+ }
31
+ }
32
+ @keyframes loaderLetter {
33
+ 0%,
34
+ 100% {
35
+ opacity: 0.4;
36
+ }
37
+ 50% {
38
+ opacity: 1;
39
+ }
40
+ }
41
+ .animate-loaderCircle {
42
+ animation: loaderCircle 2s linear infinite;
43
+ }
44
+ .animate-loaderLetter {
45
+ animation: loaderLetter 1.5s ease-in-out infinite;
46
+ }
47
+ `)));
48
+ };
@@ -0,0 +1,24 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as React from "react";
13
+ import { cn } from "../../../../lib/utils";
14
+ function Badge(_a) {
15
+ var { className, variant = "default" } = _a, props = __rest(_a, ["className", "variant"]);
16
+ const variantStyles = {
17
+ default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
18
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
19
+ destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
20
+ outline: "text-foreground",
21
+ };
22
+ return (React.createElement("div", Object.assign({ className: cn("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", variantStyles[variant], className) }, props)));
23
+ }
24
+ export { Badge };
@@ -0,0 +1,45 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as React from "react";
13
+ import { Slot } from "@radix-ui/react-slot";
14
+ import { cva } from "class-variance-authority";
15
+ import { cn } from "../../../../lib/utils";
16
+ const buttonVariants = cva("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-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-5 [&_svg]:shrink-0", {
17
+ variants: {
18
+ variant: {
19
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
20
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
21
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
22
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/70",
23
+ ghost: "hover:bg-accent hover:text-accent-foreground",
24
+ link: "text-primary underline-offset-4 hover:underline",
25
+ ghostOutline: "border border-secondary shadow-sm hover:bg-accent hover:text-accent-foreground text-muted-foreground hover:text-foreground",
26
+ },
27
+ size: {
28
+ default: "h-9 px-4 py-2",
29
+ sm: "h-8 rounded-md px-3 text-xs",
30
+ lg: "h-10 rounded-md px-8",
31
+ icon: "h-8 w-8",
32
+ },
33
+ },
34
+ defaultVariants: {
35
+ variant: "default",
36
+ size: "default",
37
+ },
38
+ });
39
+ const Button = React.forwardRef((_a, ref) => {
40
+ var { className, variant, size, asChild = false } = _a, props = __rest(_a, ["className", "variant", "size", "asChild"]);
41
+ const Comp = asChild ? Slot : "button";
42
+ return (React.createElement(Comp, Object.assign({ className: cn(buttonVariants({ variant, size, className })), ref: ref }, props)));
43
+ });
44
+ Button.displayName = "Button";
45
+ export { Button, buttonVariants };
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import * as React from "react";
14
+ import { Command as CommandPrimitive } from "cmdk";
15
+ import { Search } from "lucide-react";
16
+ import { cn } from "../../../../lib/utils";
17
+ import { Dialog, DialogContent } from "./dialog";
18
+ const Command = React.forwardRef((_a, ref) => {
19
+ var { className } = _a, props = __rest(_a, ["className"]);
20
+ return (React.createElement(CommandPrimitive, Object.assign({ ref: ref, className: cn("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", className) }, props)));
21
+ });
22
+ Command.displayName = CommandPrimitive.displayName;
23
+ const CommandDialog = (_a) => {
24
+ var { children } = _a, props = __rest(_a, ["children"]);
25
+ return (React.createElement(Dialog, Object.assign({}, props),
26
+ React.createElement(DialogContent, { className: "overflow-hidden p-0" },
27
+ React.createElement(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5" }, children))));
28
+ };
29
+ const CommandInput = React.forwardRef((_a, ref) => {
30
+ var { className } = _a, props = __rest(_a, ["className"]);
31
+ return (React.createElement("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "" },
32
+ React.createElement(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
33
+ React.createElement(CommandPrimitive.Input, Object.assign({ ref: ref, className: cn("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", className) }, props))));
34
+ });
35
+ CommandInput.displayName = CommandPrimitive.Input.displayName;
36
+ const CommandList = React.forwardRef((_a, ref) => {
37
+ var { className } = _a, props = __rest(_a, ["className"]);
38
+ return (React.createElement(CommandPrimitive.List, Object.assign({ ref: ref, className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className) }, props)));
39
+ });
40
+ CommandList.displayName = CommandPrimitive.List.displayName;
41
+ const CommandEmpty = React.forwardRef((props, ref) => (React.createElement(CommandPrimitive.Empty, Object.assign({ ref: ref, className: "py-6 text-center text-sm" }, props))));
42
+ CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
43
+ const CommandGroup = React.forwardRef((_a, ref) => {
44
+ var { className } = _a, props = __rest(_a, ["className"]);
45
+ return (React.createElement(CommandPrimitive.Group, Object.assign({ ref: ref, className: cn("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", className) }, props)));
46
+ });
47
+ CommandGroup.displayName = CommandPrimitive.Group.displayName;
48
+ const CommandSeparator = React.forwardRef((_a, ref) => {
49
+ var { className } = _a, props = __rest(_a, ["className"]);
50
+ return (React.createElement(CommandPrimitive.Separator, Object.assign({ ref: ref, className: cn("-mx-1 h-px bg-border", className) }, props)));
51
+ });
52
+ CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
53
+ const CommandItem = React.forwardRef((_a, ref) => {
54
+ var { className } = _a, props = __rest(_a, ["className"]);
55
+ return (React.createElement(CommandPrimitive.Item, Object.assign({ ref: ref, className: cn("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className) }, props)));
56
+ });
57
+ CommandItem.displayName = CommandPrimitive.Item.displayName;
58
+ const CommandShortcut = (_a) => {
59
+ var { className } = _a, props = __rest(_a, ["className"]);
60
+ return (React.createElement("span", Object.assign({ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className) }, props)));
61
+ };
62
+ CommandShortcut.displayName = "CommandShortcut";
63
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import React from "react";
3
+ import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
4
+ import { cn } from "../../../../lib/utils";
5
+ export default function ConsoleWithApp({ containerClassName, console, app, }) {
6
+ return (React.createElement("div", { className: cn("w-full h-full max-w-full max-h-full min-h-0 min-w-0 overflow-hidden", containerClassName) },
7
+ React.createElement(PanelGroup, { direction: "horizontal", className: "w-full h-full" },
8
+ React.createElement(Panel, { defaultSize: 37, minSize: 20, order: 1 },
9
+ React.createElement("div", { className: "h-full w-full" },
10
+ React.createElement("div", { className: "flex-1 flex flex-col min-h-0 h-full" }, console))),
11
+ React.createElement(PanelResizeHandle, { className: "w-0 relative group flex-shrink-0" },
12
+ React.createElement("div", { className: "absolute inset-y-0 left-1/2 -translate-x-1/2 w-2 -ml-0.5 group-hover:bg-blue-400/20 transition-colors flex justify-center items-center" },
13
+ React.createElement("div", { className: "h-full w-px bg-border group-hover:bg-blue-400 transition-colors" }))),
14
+ React.createElement(Panel, { defaultSize: 63, minSize: 40, order: 2 },
15
+ React.createElement("div", { className: "h-full w-full" },
16
+ React.createElement("div", { className: "flex-1 flex flex-col min-h-0 h-full" }, app))))));
17
+ }
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import * as React from "react";
14
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
15
+ import { X } from "lucide-react";
16
+ import { cn } from "../../../../lib/utils";
17
+ const Dialog = DialogPrimitive.Root;
18
+ const DialogTrigger = DialogPrimitive.Trigger;
19
+ const DialogPortal = DialogPrimitive.Portal;
20
+ const DialogClose = DialogPrimitive.Close;
21
+ const DialogOverlay = React.forwardRef((_a, ref) => {
22
+ var { className } = _a, props = __rest(_a, ["className"]);
23
+ return (React.createElement(DialogPrimitive.Overlay, Object.assign({ ref: ref, className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className) }, props)));
24
+ });
25
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
26
+ const DialogContent = React.forwardRef((_a, ref) => {
27
+ var { className, children } = _a, props = __rest(_a, ["className", "children"]);
28
+ return (React.createElement(DialogPortal, null,
29
+ React.createElement(DialogOverlay, null),
30
+ React.createElement(DialogPrimitive.Content, Object.assign({ ref: ref, className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className) }, props),
31
+ children,
32
+ React.createElement(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground" },
33
+ React.createElement(X, { className: "h-4 w-4" }),
34
+ React.createElement("span", { className: "sr-only" }, "Close")))));
35
+ });
36
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
37
+ const DialogHeader = (_a) => {
38
+ var { className } = _a, props = __rest(_a, ["className"]);
39
+ return (React.createElement("div", Object.assign({ className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className) }, props)));
40
+ };
41
+ DialogHeader.displayName = "DialogHeader";
42
+ const DialogFooter = (_a) => {
43
+ var { className } = _a, props = __rest(_a, ["className"]);
44
+ return (React.createElement("div", Object.assign({ className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className) }, props)));
45
+ };
46
+ DialogFooter.displayName = "DialogFooter";
47
+ const DialogTitle = React.forwardRef((_a, ref) => {
48
+ var { className } = _a, props = __rest(_a, ["className"]);
49
+ return (React.createElement(DialogPrimitive.Title, Object.assign({ ref: ref, className: cn("text-lg font-semibold leading-none tracking-tight", className) }, props)));
50
+ });
51
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
52
+ const DialogDescription = React.forwardRef((_a, ref) => {
53
+ var { className } = _a, props = __rest(_a, ["className"]);
54
+ return (React.createElement(DialogPrimitive.Description, Object.assign({ ref: ref, className: cn("text-sm text-muted-foreground", className) }, props)));
55
+ });
56
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
57
+ export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
@@ -0,0 +1,82 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import * as React from "react";
14
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
15
+ import { Check, ChevronRight, Circle } from "lucide-react";
16
+ import { cn } from "../../../../lib/utils";
17
+ const DropdownMenu = DropdownMenuPrimitive.Root;
18
+ const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
19
+ const DropdownMenuGroup = DropdownMenuPrimitive.Group;
20
+ const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
21
+ const DropdownMenuSub = DropdownMenuPrimitive.Sub;
22
+ const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
23
+ const DropdownMenuSubTrigger = React.forwardRef((_a, ref) => {
24
+ var { className, inset, children, hideChevron } = _a, props = __rest(_a, ["className", "inset", "children", "hideChevron"]);
25
+ return (React.createElement(DropdownMenuPrimitive.SubTrigger, Object.assign({ ref: ref, className: cn("flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", inset && "pl-8", className) }, props),
26
+ children,
27
+ !hideChevron && React.createElement(ChevronRight, { className: "ml-auto" })));
28
+ });
29
+ DropdownMenuSubTrigger.displayName =
30
+ DropdownMenuPrimitive.SubTrigger.displayName;
31
+ const DropdownMenuSubContent = React.forwardRef((_a, ref) => {
32
+ var { className } = _a, props = __rest(_a, ["className"]);
33
+ return (React.createElement(DropdownMenuPrimitive.SubContent, Object.assign({ ref: ref, className: cn("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className) }, props)));
34
+ });
35
+ DropdownMenuSubContent.displayName =
36
+ DropdownMenuPrimitive.SubContent.displayName;
37
+ const DropdownMenuContent = React.forwardRef((_a, ref) => {
38
+ var { className, sideOffset = 4 } = _a, props = __rest(_a, ["className", "sideOffset"]);
39
+ return (React.createElement(DropdownMenuPrimitive.Portal, null,
40
+ React.createElement(DropdownMenuPrimitive.Content, Object.assign({ ref: ref, sideOffset: sideOffset, className: cn("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md", "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className) }, props))));
41
+ });
42
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
43
+ const DropdownMenuItem = React.forwardRef((_a, ref) => {
44
+ var { className, inset } = _a, props = __rest(_a, ["className", "inset"]);
45
+ return (React.createElement(DropdownMenuPrimitive.Item, Object.assign({ ref: ref, className: cn("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0", inset && "pl-8", className) }, props)));
46
+ });
47
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
48
+ const DropdownMenuCheckboxItem = React.forwardRef((_a, ref) => {
49
+ var { className, children, checked } = _a, props = __rest(_a, ["className", "children", "checked"]);
50
+ return (React.createElement(DropdownMenuPrimitive.CheckboxItem, Object.assign({ ref: ref, className: cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), checked: checked }, props),
51
+ React.createElement("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center" },
52
+ React.createElement(DropdownMenuPrimitive.ItemIndicator, null,
53
+ React.createElement(Check, { className: "h-4 w-4" }))),
54
+ children));
55
+ });
56
+ DropdownMenuCheckboxItem.displayName =
57
+ DropdownMenuPrimitive.CheckboxItem.displayName;
58
+ const DropdownMenuRadioItem = React.forwardRef((_a, ref) => {
59
+ var { className, children } = _a, props = __rest(_a, ["className", "children"]);
60
+ return (React.createElement(DropdownMenuPrimitive.RadioItem, Object.assign({ ref: ref, className: cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className) }, props),
61
+ React.createElement("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center" },
62
+ React.createElement(DropdownMenuPrimitive.ItemIndicator, null,
63
+ React.createElement(Circle, { className: "h-2 w-2 fill-current" }))),
64
+ children));
65
+ });
66
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
67
+ const DropdownMenuLabel = React.forwardRef((_a, ref) => {
68
+ var { className, inset } = _a, props = __rest(_a, ["className", "inset"]);
69
+ return (React.createElement(DropdownMenuPrimitive.Label, Object.assign({ ref: ref, className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className) }, props)));
70
+ });
71
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
72
+ const DropdownMenuSeparator = React.forwardRef((_a, ref) => {
73
+ var { className } = _a, props = __rest(_a, ["className"]);
74
+ return (React.createElement(DropdownMenuPrimitive.Separator, Object.assign({ ref: ref, className: cn("-mx-1 my-1 h-px bg-muted", className) }, props)));
75
+ });
76
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
77
+ const DropdownMenuShortcut = (_a) => {
78
+ var { className } = _a, props = __rest(_a, ["className"]);
79
+ return (React.createElement("span", Object.assign({ className: cn("ml-auto text-xs tracking-widest opacity-60", className) }, props)));
80
+ };
81
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
82
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
@@ -0,0 +1,62 @@
1
+ import React, { useState } from "react";
2
+ import { cn } from "../../../../../../lib/utils";
3
+ import { ChevronRight } from "lucide-react";
4
+ import * as LucideIcons from "lucide-react";
5
+ import { Markdown } from "../../markdown";
6
+ export const Accordion = ({ title, children, icon, defaultOpen = false, className, inGroup = false, }) => {
7
+ const [isOpen, setIsOpen] = useState(defaultOpen);
8
+ const IconComponent = icon
9
+ ? LucideIcons[icon]
10
+ : null;
11
+ const processNode = (node) => {
12
+ var _a, _b, _c, _d, _e, _f, _g;
13
+ // Handle string nodes (like whitespace and text)
14
+ if (typeof node === "string") {
15
+ return node;
16
+ }
17
+ // Handle arrays (like the root structure)
18
+ if (Array.isArray(node)) {
19
+ return node.map((item) => processNode(item)).join("");
20
+ }
21
+ // Handle React elements and objects
22
+ if (React.isValidElement(node) || (node && typeof node === "object")) {
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ const element = node; // Type assertion for accessing properties
25
+ // Handle pre elements
26
+ if (element.type === "pre") {
27
+ const preChildren = (_a = element.props) === null || _a === void 0 ? void 0 : _a.children;
28
+ // Handle the nested code structure
29
+ if ((_b = preChildren === null || preChildren === void 0 ? void 0 : preChildren.props) === null || _b === void 0 ? void 0 : _b.children) {
30
+ return preChildren.props.children;
31
+ }
32
+ // Handle direct code content
33
+ if ((_f = (_e = (_d = (_c = preChildren === null || preChildren === void 0 ? void 0 : preChildren.props) === null || _c === void 0 ? void 0 : _c.node) === null || _d === void 0 ? void 0 : _d.children) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.value) {
34
+ return preChildren.props.node.children[0].value;
35
+ }
36
+ }
37
+ // Recursively process children
38
+ if ((_g = element.props) === null || _g === void 0 ? void 0 : _g.children) {
39
+ return processNode(element.props.children);
40
+ }
41
+ }
42
+ return "";
43
+ };
44
+ const markdownContent = processNode(children).trim();
45
+ return (React.createElement("div", { className: cn(inGroup
46
+ ? "border-b border-zinc-200 last:border-0 dark:border-zinc-800"
47
+ : "rounded-lg border border-zinc-200 dark:border-zinc-800", className) },
48
+ React.createElement("button", { onClick: () => setIsOpen(!isOpen), className: cn("flex w-full items-center justify-between px-4 py-3", inGroup
49
+ ? "hover:bg-zinc-100 dark:hover:bg-zinc-800/70"
50
+ : "rounded-lg hover:bg-zinc-100 dark:hover:bg-zinc-800/70", "bg-transparent focus:outline-none focus-visible:ring-2 focus-visible:ring-[#0066FF] dark:focus-visible:ring-[#66A3FF]", isOpen && "bg-zinc-100 dark:bg-zinc-800") },
51
+ React.createElement("div", { className: "flex items-center gap-2" },
52
+ React.createElement(ChevronRight, { className: cn("h-4 w-4 transition-transform duration-200", isOpen
53
+ ? "rotate-90 text-[#0066FF] dark:text-[#66A3FF]"
54
+ : "text-zinc-500 dark:text-zinc-400") }),
55
+ IconComponent && (React.createElement(IconComponent, { className: "h-4 w-4 flex-shrink-0 text-[#0066FF] dark:text-[#66A3FF]" })),
56
+ React.createElement("span", { className: cn("text-sm font-medium", isOpen
57
+ ? "text-[#0066FF] dark:text-[#66A3FF]"
58
+ : "text-zinc-700 dark:text-zinc-200") }, title))),
59
+ React.createElement("div", { className: cn("overflow-hidden transition-all duration-200", isOpen ? "max-h-[1000px] opacity-100" : "max-h-0 opacity-0") },
60
+ React.createElement("div", { className: "px-4 py-3 text-sm text-zinc-600 dark:text-zinc-300 bg-transparent" },
61
+ React.createElement(Markdown, null, markdownContent)))));
62
+ };
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { cn } from "../../../../../lib/utils";
3
+ export const AccordionGroup = ({ children, className, }) => {
4
+ // More strict version with type checking
5
+ const childrenWithProps = React.Children.map(children, (child) => {
6
+ if (!React.isValidElement(child)) {
7
+ return null;
8
+ }
9
+ // Type guard to check if the child has the expected props
10
+ const hasRequiredProps = (element) => {
11
+ return "children" in element.props;
12
+ };
13
+ if (!hasRequiredProps(child)) {
14
+ return null;
15
+ }
16
+ if (typeof child.props.children === "string" &&
17
+ !child.props.children.trim()) {
18
+ return null;
19
+ }
20
+ return React.cloneElement(child, Object.assign(Object.assign({}, child.props), { inGroup: true }));
21
+ });
22
+ return (React.createElement("div", { className: cn("rounded-lg border border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-950", className) }, childrenWithProps));
23
+ };
@@ -0,0 +1,4 @@
1
+ import { Callout } from "./shared/callout";
2
+ import { CheckCircle2 } from "lucide-react";
3
+ import React from "react";
4
+ export const CalloutCheck = ({ children }) => (React.createElement(Callout, { className: "border-emerald-200 bg-emerald-100 text-emerald-900 dark:border-emerald-800/30 dark:bg-emerald-900/30 dark:text-emerald-200", icon: React.createElement(CheckCircle2, { className: "h-5 w-5 text-emerald-500 dark:text-emerald-400" }) }, children));
@@ -0,0 +1,4 @@
1
+ import { Callout } from "./shared/callout";
2
+ import { AlertTriangle } from "lucide-react";
3
+ import React from "react";
4
+ export const CalloutError = ({ children }) => (React.createElement(Callout, { className: "border-red-200 bg-red-100 text-red-900 dark:border-red-800/30 dark:bg-red-900/30 dark:text-red-200", icon: React.createElement(AlertTriangle, { className: "h-5 w-5 text-red-500 dark:text-red-400" }) }, children));
@@ -0,0 +1,4 @@
1
+ import { Callout } from "./shared/callout";
2
+ import { Info } from "lucide-react";
3
+ import React from "react";
4
+ export const CalloutInfo = ({ children }) => (React.createElement(Callout, { className: "border-blue-200 bg-blue-100 text-blue-900 dark:border-blue-800/30 dark:bg-blue-900/30 dark:text-blue-200", icon: React.createElement(Info, { className: "h-5 w-5 text-blue-500 dark:text-blue-400" }) }, children));
@@ -0,0 +1,4 @@
1
+ import { Callout } from "./shared/callout";
2
+ import { AlertCircle } from "lucide-react";
3
+ import React from "react";
4
+ export const CalloutNote = ({ children }) => (React.createElement(Callout, { className: "border-neutral-200 bg-neutral-100 text-neutral-900 dark:border-neutral-800 dark:bg-neutral-900/40 dark:text-neutral-200", icon: React.createElement(AlertCircle, { className: "h-5 w-5 text-neutral-500 dark:text-neutral-400" }) }, children));
@@ -0,0 +1,4 @@
1
+ import { Callout } from "./shared/callout";
2
+ import { Star } from "lucide-react";
3
+ import React from "react";
4
+ export const CalloutTip = ({ children }) => (React.createElement(Callout, { className: "border-emerald-200 bg-emerald-100 text-emerald-900 dark:border-emerald-800/30 dark:bg-emerald-900/30 dark:text-emerald-200", icon: React.createElement(Star, { className: "h-5 w-5 text-emerald-500 dark:text-emerald-400" }) }, children));
@@ -0,0 +1,4 @@
1
+ import { Callout } from "./shared/callout";
2
+ import { AlertTriangle } from "lucide-react";
3
+ import React from "react";
4
+ export const CalloutWarning = ({ children }) => (React.createElement(Callout, { className: "border-amber-200 bg-amber-100 text-amber-900 dark:border-amber-800/30 dark:bg-amber-900/30 dark:text-amber-200", icon: React.createElement(AlertTriangle, { className: "h-5 w-5 text-amber-500 dark:text-amber-400" }) }, children));