@drjoshcsimmons/scl 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/dist/components/ui/accordion/accordion.d.ts +8 -0
  4. package/dist/components/ui/accordion/accordion.d.ts.map +1 -0
  5. package/dist/components/ui/accordion/index.d.ts +2 -0
  6. package/dist/components/ui/accordion/index.d.ts.map +1 -0
  7. package/dist/components/ui/alert/alert.d.ts +9 -0
  8. package/dist/components/ui/alert/alert.d.ts.map +1 -0
  9. package/dist/components/ui/alert/index.d.ts +2 -0
  10. package/dist/components/ui/alert/index.d.ts.map +1 -0
  11. package/dist/components/ui/alert-dialog/alert-dialog.d.ts +21 -0
  12. package/dist/components/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
  13. package/dist/components/ui/alert-dialog/index.d.ts +2 -0
  14. package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
  15. package/dist/components/ui/avatar/avatar.d.ts +7 -0
  16. package/dist/components/ui/avatar/avatar.d.ts.map +1 -0
  17. package/dist/components/ui/avatar/index.d.ts +2 -0
  18. package/dist/components/ui/avatar/index.d.ts.map +1 -0
  19. package/dist/components/ui/badge/badge.d.ts +10 -0
  20. package/dist/components/ui/badge/badge.d.ts.map +1 -0
  21. package/dist/components/ui/badge/index.d.ts +2 -0
  22. package/dist/components/ui/badge/index.d.ts.map +1 -0
  23. package/dist/components/ui/button/button.d.ts +12 -0
  24. package/dist/components/ui/button/button.d.ts.map +1 -0
  25. package/dist/components/ui/button/index.d.ts +2 -0
  26. package/dist/components/ui/button/index.d.ts.map +1 -0
  27. package/dist/components/ui/card/card.d.ts +9 -0
  28. package/dist/components/ui/card/card.d.ts.map +1 -0
  29. package/dist/components/ui/card/index.d.ts +2 -0
  30. package/dist/components/ui/card/index.d.ts.map +1 -0
  31. package/dist/components/ui/checkbox/checkbox.d.ts +5 -0
  32. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
  33. package/dist/components/ui/checkbox/index.d.ts +2 -0
  34. package/dist/components/ui/checkbox/index.d.ts.map +1 -0
  35. package/dist/components/ui/collapsible/collapsible.d.ts +6 -0
  36. package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -0
  37. package/dist/components/ui/collapsible/index.d.ts +2 -0
  38. package/dist/components/ui/collapsible/index.d.ts.map +1 -0
  39. package/dist/components/ui/dialog/dialog.d.ts +20 -0
  40. package/dist/components/ui/dialog/dialog.d.ts.map +1 -0
  41. package/dist/components/ui/dialog/index.d.ts +2 -0
  42. package/dist/components/ui/dialog/index.d.ts.map +1 -0
  43. package/dist/components/ui/dithered-image/dithered-image.d.ts +17 -0
  44. package/dist/components/ui/dithered-image/dithered-image.d.ts.map +1 -0
  45. package/dist/components/ui/dithered-image/index.d.ts +3 -0
  46. package/dist/components/ui/dithered-image/index.d.ts.map +1 -0
  47. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +28 -0
  48. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  49. package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
  50. package/dist/components/ui/dropdown-menu/index.d.ts.map +1 -0
  51. package/dist/components/ui/input/index.d.ts +2 -0
  52. package/dist/components/ui/input/index.d.ts.map +1 -0
  53. package/dist/components/ui/input/input.d.ts +5 -0
  54. package/dist/components/ui/input/input.d.ts.map +1 -0
  55. package/dist/components/ui/label/index.d.ts +2 -0
  56. package/dist/components/ui/label/index.d.ts.map +1 -0
  57. package/dist/components/ui/label/label.d.ts +6 -0
  58. package/dist/components/ui/label/label.d.ts.map +1 -0
  59. package/dist/components/ui/popover/index.d.ts +2 -0
  60. package/dist/components/ui/popover/index.d.ts.map +1 -0
  61. package/dist/components/ui/popover/popover.d.ts +8 -0
  62. package/dist/components/ui/popover/popover.d.ts.map +1 -0
  63. package/dist/components/ui/progress/index.d.ts +2 -0
  64. package/dist/components/ui/progress/index.d.ts.map +1 -0
  65. package/dist/components/ui/progress/progress.d.ts +19 -0
  66. package/dist/components/ui/progress/progress.d.ts.map +1 -0
  67. package/dist/components/ui/radio-group/index.d.ts +2 -0
  68. package/dist/components/ui/radio-group/index.d.ts.map +1 -0
  69. package/dist/components/ui/radio-group/radio-group.d.ts +6 -0
  70. package/dist/components/ui/radio-group/radio-group.d.ts.map +1 -0
  71. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  72. package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
  73. package/dist/components/ui/scroll-area/scroll-area.d.ts +6 -0
  74. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -0
  75. package/dist/components/ui/select/index.d.ts +2 -0
  76. package/dist/components/ui/select/index.d.ts.map +1 -0
  77. package/dist/components/ui/select/select.d.ts +14 -0
  78. package/dist/components/ui/select/select.d.ts.map +1 -0
  79. package/dist/components/ui/separator/index.d.ts +2 -0
  80. package/dist/components/ui/separator/index.d.ts.map +1 -0
  81. package/dist/components/ui/separator/separator.d.ts +5 -0
  82. package/dist/components/ui/separator/separator.d.ts.map +1 -0
  83. package/dist/components/ui/sheet/index.d.ts +2 -0
  84. package/dist/components/ui/sheet/index.d.ts.map +1 -0
  85. package/dist/components/ui/sheet/sheet.d.ts +26 -0
  86. package/dist/components/ui/sheet/sheet.d.ts.map +1 -0
  87. package/dist/components/ui/skeleton/index.d.ts +2 -0
  88. package/dist/components/ui/skeleton/index.d.ts.map +1 -0
  89. package/dist/components/ui/skeleton/skeleton.d.ts +3 -0
  90. package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -0
  91. package/dist/components/ui/slider/index.d.ts +2 -0
  92. package/dist/components/ui/slider/index.d.ts.map +1 -0
  93. package/dist/components/ui/slider/slider.d.ts +5 -0
  94. package/dist/components/ui/slider/slider.d.ts.map +1 -0
  95. package/dist/components/ui/statusline/index.d.ts +2 -0
  96. package/dist/components/ui/statusline/index.d.ts.map +1 -0
  97. package/dist/components/ui/statusline/statusline.d.ts +40 -0
  98. package/dist/components/ui/statusline/statusline.d.ts.map +1 -0
  99. package/dist/components/ui/switch/index.d.ts +2 -0
  100. package/dist/components/ui/switch/index.d.ts.map +1 -0
  101. package/dist/components/ui/switch/switch.d.ts +5 -0
  102. package/dist/components/ui/switch/switch.d.ts.map +1 -0
  103. package/dist/components/ui/table/index.d.ts +2 -0
  104. package/dist/components/ui/table/index.d.ts.map +1 -0
  105. package/dist/components/ui/table/table.d.ts +11 -0
  106. package/dist/components/ui/table/table.d.ts.map +1 -0
  107. package/dist/components/ui/tabs/index.d.ts +2 -0
  108. package/dist/components/ui/tabs/index.d.ts.map +1 -0
  109. package/dist/components/ui/tabs/tabs.d.ts +8 -0
  110. package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
  111. package/dist/components/ui/terminal-textarea/index.d.ts +2 -0
  112. package/dist/components/ui/terminal-textarea/index.d.ts.map +1 -0
  113. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts +27 -0
  114. package/dist/components/ui/terminal-textarea/terminal-textarea.d.ts.map +1 -0
  115. package/dist/components/ui/textarea/index.d.ts +2 -0
  116. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  117. package/dist/components/ui/textarea/textarea.d.ts +5 -0
  118. package/dist/components/ui/textarea/textarea.d.ts.map +1 -0
  119. package/dist/components/ui/toggle/index.d.ts +2 -0
  120. package/dist/components/ui/toggle/index.d.ts.map +1 -0
  121. package/dist/components/ui/toggle/toggle.d.ts +13 -0
  122. package/dist/components/ui/toggle/toggle.d.ts.map +1 -0
  123. package/dist/components/ui/tooltip/index.d.ts +2 -0
  124. package/dist/components/ui/tooltip/index.d.ts.map +1 -0
  125. package/dist/components/ui/tooltip/tooltip.d.ts +11 -0
  126. package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -0
  127. package/dist/index.d.ts +34 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +165 -0
  130. package/dist/index10.js +61 -0
  131. package/dist/index100.js +32 -0
  132. package/dist/index101.js +17 -0
  133. package/dist/index102.js +137 -0
  134. package/dist/index103.js +52 -0
  135. package/dist/index104.js +11 -0
  136. package/dist/index105.js +6 -0
  137. package/dist/index106.js +183 -0
  138. package/dist/index107.js +652 -0
  139. package/dist/index108.js +109 -0
  140. package/dist/index109.js +93 -0
  141. package/dist/index11.js +27 -0
  142. package/dist/index110.js +69 -0
  143. package/dist/index111.js +161 -0
  144. package/dist/index112.js +399 -0
  145. package/dist/index113.js +1682 -0
  146. package/dist/index114.js +280 -0
  147. package/dist/index115.js +134 -0
  148. package/dist/index116.js +34 -0
  149. package/dist/index117.js +1613 -0
  150. package/dist/index118.js +300 -0
  151. package/dist/index119.js +637 -0
  152. package/dist/index12.js +7 -0
  153. package/dist/index120.js +146 -0
  154. package/dist/index121.js +23 -0
  155. package/dist/index122.js +11 -0
  156. package/dist/index123.js +40 -0
  157. package/dist/index124.js +20 -0
  158. package/dist/index125.js +8 -0
  159. package/dist/index126.js +14 -0
  160. package/dist/index127.js +208 -0
  161. package/dist/index128.js +24 -0
  162. package/dist/index129.js +402 -0
  163. package/dist/index13.js +100 -0
  164. package/dist/index130.js +1308 -0
  165. package/dist/index131.js +620 -0
  166. package/dist/index132.js +4 -0
  167. package/dist/index133.js +55 -0
  168. package/dist/index134.js +67 -0
  169. package/dist/index135.js +27 -0
  170. package/dist/index136.js +31 -0
  171. package/dist/index137.js +7 -0
  172. package/dist/index138.js +4 -0
  173. package/dist/index139.js +4 -0
  174. package/dist/index14.js +226 -0
  175. package/dist/index140.js +7 -0
  176. package/dist/index141.js +5 -0
  177. package/dist/index142.js +26 -0
  178. package/dist/index143.js +115 -0
  179. package/dist/index144.js +18 -0
  180. package/dist/index145.js +527 -0
  181. package/dist/index146.js +130 -0
  182. package/dist/index147.js +136 -0
  183. package/dist/index148.js +67 -0
  184. package/dist/index149.js +71 -0
  185. package/dist/index15.js +146 -0
  186. package/dist/index150.js +11 -0
  187. package/dist/index151.js +16 -0
  188. package/dist/index152.js +68 -0
  189. package/dist/index153.js +6 -0
  190. package/dist/index154.js +25 -0
  191. package/dist/index155.js +25 -0
  192. package/dist/index156.js +15 -0
  193. package/dist/index157.js +30 -0
  194. package/dist/index158.js +7 -0
  195. package/dist/index16.js +21 -0
  196. package/dist/index17.js +19 -0
  197. package/dist/index18.js +24 -0
  198. package/dist/index19.js +58 -0
  199. package/dist/index2.js +8 -0
  200. package/dist/index20.js +31 -0
  201. package/dist/index21.js +38 -0
  202. package/dist/index22.js +123 -0
  203. package/dist/index23.js +24 -0
  204. package/dist/index24.js +72 -0
  205. package/dist/index25.js +17 -0
  206. package/dist/index26.js +34 -0
  207. package/dist/index27.js +81 -0
  208. package/dist/index28.js +27 -0
  209. package/dist/index29.js +90 -0
  210. package/dist/index3.js +22 -0
  211. package/dist/index30.js +46 -0
  212. package/dist/index31.js +234 -0
  213. package/dist/index32.js +20 -0
  214. package/dist/index33.js +37 -0
  215. package/dist/index34.js +25 -0
  216. package/dist/index35.js +105 -0
  217. package/dist/index36.js +68 -0
  218. package/dist/index37.js +51 -0
  219. package/dist/index38.js +102 -0
  220. package/dist/index39.js +13 -0
  221. package/dist/index4.js +46 -0
  222. package/dist/index40.js +17 -0
  223. package/dist/index41.js +2265 -0
  224. package/dist/index42.js +35 -0
  225. package/dist/index43.js +20 -0
  226. package/dist/index44.js +239 -0
  227. package/dist/index45.js +13 -0
  228. package/dist/index46.js +75 -0
  229. package/dist/index47.js +251 -0
  230. package/dist/index48.js +11 -0
  231. package/dist/index49.js +338 -0
  232. package/dist/index5.js +51 -0
  233. package/dist/index50.js +62 -0
  234. package/dist/index51.js +243 -0
  235. package/dist/index52.js +862 -0
  236. package/dist/index53.js +11 -0
  237. package/dist/index54.js +120 -0
  238. package/dist/index55.js +227 -0
  239. package/dist/index56.js +13 -0
  240. package/dist/index57.js +13 -0
  241. package/dist/index58.js +238 -0
  242. package/dist/index59.js +262 -0
  243. package/dist/index6.js +51 -0
  244. package/dist/index60.js +14 -0
  245. package/dist/index61.js +24 -0
  246. package/dist/index62.js +532 -0
  247. package/dist/index63.js +6157 -0
  248. package/dist/index64.js +2635 -0
  249. package/dist/index65.js +300 -0
  250. package/dist/index66.js +674 -0
  251. package/dist/index67.js +832 -0
  252. package/dist/index68.js +27 -0
  253. package/dist/index69.js +330 -0
  254. package/dist/index7.js +42 -0
  255. package/dist/index70.js +4901 -0
  256. package/dist/index71.js +831 -0
  257. package/dist/index72.js +1260 -0
  258. package/dist/index73.js +536 -0
  259. package/dist/index74.js +127 -0
  260. package/dist/index75.js +163 -0
  261. package/dist/index76.js +33 -0
  262. package/dist/index77.js +437 -0
  263. package/dist/index78.js +132 -0
  264. package/dist/index79.js +83 -0
  265. package/dist/index8.js +31 -0
  266. package/dist/index80.js +70 -0
  267. package/dist/index81.js +48 -0
  268. package/dist/index82.js +29 -0
  269. package/dist/index83.js +9 -0
  270. package/dist/index84.js +54 -0
  271. package/dist/index85.js +36 -0
  272. package/dist/index86.js +13 -0
  273. package/dist/index87.js +10 -0
  274. package/dist/index88.js +32 -0
  275. package/dist/index89.js +57 -0
  276. package/dist/index9.js +54 -0
  277. package/dist/index90.js +13 -0
  278. package/dist/index91.js +6 -0
  279. package/dist/index92.js +15 -0
  280. package/dist/index93.js +8 -0
  281. package/dist/index94.js +27 -0
  282. package/dist/index95.js +71 -0
  283. package/dist/index96.js +127 -0
  284. package/dist/index97.js +221 -0
  285. package/dist/index98.js +16 -0
  286. package/dist/index99.js +56 -0
  287. package/dist/lib/utils.d.ts +14 -0
  288. package/dist/lib/utils.d.ts.map +1 -0
  289. package/dist/tokens/animations.d.ts +174 -0
  290. package/dist/tokens/animations.d.ts.map +1 -0
  291. package/dist/tokens/colors.d.ts +92 -0
  292. package/dist/tokens/colors.d.ts.map +1 -0
  293. package/dist/tokens/index.d.ts +403 -0
  294. package/dist/tokens/index.d.ts.map +1 -0
  295. package/dist/tokens/shadows.d.ts +15 -0
  296. package/dist/tokens/shadows.d.ts.map +1 -0
  297. package/dist/tokens/spacing.d.ts +55 -0
  298. package/dist/tokens/spacing.d.ts.map +1 -0
  299. package/dist/tokens/typography.d.ts +80 -0
  300. package/dist/tokens/typography.d.ts.map +1 -0
  301. package/package.json +128 -0
@@ -0,0 +1,46 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import * as s from "react";
3
+ import { Root as c, List as n, Trigger as o, Content as d } from "./index75.js";
4
+ import { cn as r } from "./index2.js";
5
+ const p = c, f = s.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ i(
6
+ n,
7
+ {
8
+ ref: a,
9
+ className: r(
10
+ "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
11
+ e
12
+ ),
13
+ ...t
14
+ }
15
+ ));
16
+ f.displayName = n.displayName;
17
+ const l = s.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ i(
18
+ o,
19
+ {
20
+ ref: a,
21
+ className: r(
22
+ "inline-flex items-center justify-center whitespace-nowrap px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-black data-[state=active]:text-terminal-green data-[state=active]:border-2 data-[state=active]:border-terminal-green data-[state=inactive]:border-2 data-[state=inactive]:border-transparent data-[state=inactive]:text-muted-foreground",
23
+ e
24
+ ),
25
+ ...t
26
+ }
27
+ ));
28
+ l.displayName = o.displayName;
29
+ const m = s.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ i(
30
+ d,
31
+ {
32
+ ref: a,
33
+ className: r(
34
+ "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
35
+ e
36
+ ),
37
+ ...t
38
+ }
39
+ ));
40
+ m.displayName = d.displayName;
41
+ export {
42
+ p as Tabs,
43
+ m as TabsContent,
44
+ f as TabsList,
45
+ l as TabsTrigger
46
+ };
@@ -0,0 +1,234 @@
1
+ var D = Object.defineProperty;
2
+ var V = (t, e, r) => e in t ? D(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var F = (t, e, r) => V(t, typeof e != "symbol" ? e + "" : e, r);
4
+ import { jsxs as A, jsx as w } from "react/jsx-runtime";
5
+ import * as a from "react";
6
+ import { cn as C } from "./index2.js";
7
+ import { EditorView as u, ViewPlugin as H, keymap as K, lineNumbers as P, Decoration as v } from "./index63.js";
8
+ import { EditorState as N } from "./index64.js";
9
+ import { javascript as W } from "./index65.js";
10
+ import { html as z } from "./index66.js";
11
+ import { css as I } from "./index67.js";
12
+ import { json as O } from "./index68.js";
13
+ import { markdown as $ } from "./index69.js";
14
+ import { vim as q } from "./index70.js";
15
+ import { defaultKeymap as G, historyKeymap as J } from "./index71.js";
16
+ import { HighlightStyle as M, syntaxHighlighting as Q } from "./index72.js";
17
+ import { tags as o } from "./index73.js";
18
+ const U = v.line({
19
+ attributes: { class: "cm-vim-empty-line" }
20
+ }), X = H.fromClass(
21
+ class {
22
+ constructor(t) {
23
+ F(this, "decorations");
24
+ this.decorations = this.buildDecorations(t);
25
+ }
26
+ update(t) {
27
+ (t.docChanged || t.viewportChanged) && (this.decorations = this.buildDecorations(t.view));
28
+ }
29
+ buildDecorations(t) {
30
+ const e = [], r = t.state.doc.lines;
31
+ for (let i = r + 1; i <= r + 20; i++) {
32
+ const m = t.state.doc.length;
33
+ e.push(U.range(m));
34
+ }
35
+ return v.set(e, !0);
36
+ }
37
+ },
38
+ {
39
+ decorations: (t) => t.decorations
40
+ }
41
+ ), Y = a.forwardRef(
42
+ ({
43
+ className: t,
44
+ visibleLines: e = 10,
45
+ showLineNumbers: r = !0,
46
+ value: i = "",
47
+ onChange: m,
48
+ onCursorChange: g,
49
+ vimMode: l = !1,
50
+ language: s = "none",
51
+ placeholder: d,
52
+ readOnly: b = !1
53
+ }, E) => {
54
+ const y = a.useRef(null), c = a.useRef(null), B = a.useCallback(() => {
55
+ switch (s) {
56
+ case "javascript":
57
+ case "typescript":
58
+ return W({ typescript: s === "typescript" });
59
+ case "html":
60
+ return z();
61
+ case "css":
62
+ return I();
63
+ case "json":
64
+ return O();
65
+ case "markdown":
66
+ return $();
67
+ default:
68
+ return null;
69
+ }
70
+ }, [s]), h = u.theme({
71
+ "&": {
72
+ backgroundColor: "#000000",
73
+ color: "#00ff00",
74
+ fontSize: "14px",
75
+ fontFamily: "BigBlueTerm437, monospace !important",
76
+ height: `${e * 1.5}rem`
77
+ },
78
+ ".cm-scroller": {
79
+ fontFamily: "BigBlueTerm437, monospace !important"
80
+ },
81
+ ".cm-content": {
82
+ caretColor: "#00ff00",
83
+ padding: "0.5rem",
84
+ fontFamily: "BigBlueTerm437, monospace !important"
85
+ },
86
+ ".cm-line": {
87
+ fontFamily: "BigBlueTerm437, monospace !important"
88
+ },
89
+ ".cm-cursor": {
90
+ borderLeftColor: "#00ff00",
91
+ borderLeftWidth: "2px"
92
+ },
93
+ ".cm-activeLine": {
94
+ backgroundColor: "rgba(0, 255, 0, 0.05)"
95
+ },
96
+ ".cm-selectionBackground": {
97
+ backgroundColor: "rgba(0, 255, 0, 0.2) !important"
98
+ },
99
+ "&.cm-focused .cm-selectionBackground": {
100
+ backgroundColor: "rgba(0, 255, 0, 0.3) !important"
101
+ },
102
+ ".cm-gutters": {
103
+ backgroundColor: "#000000",
104
+ color: "#ffff00",
105
+ border: "none",
106
+ borderRight: "1px solid #00ff00",
107
+ fontFamily: "BigBlueTerm437, monospace !important"
108
+ },
109
+ ".cm-lineNumbers .cm-gutterElement": {
110
+ padding: "0 0.5rem",
111
+ minWidth: "3rem",
112
+ textAlign: "right",
113
+ fontFamily: "BigBlueTerm437, monospace !important"
114
+ },
115
+ ".cm-vim-empty-line::before": {
116
+ content: '"~"',
117
+ color: "#ff00ff",
118
+ position: "absolute",
119
+ left: "0.5rem",
120
+ fontFamily: "BigBlueTerm437, monospace !important"
121
+ },
122
+ // Syntax highlighting colors (terminal palette)
123
+ ".cm-keyword": { color: "#ff00ff", fontFamily: "BigBlueTerm437, monospace !important" },
124
+ // magenta
125
+ ".cm-string": { color: "#ffff00", fontFamily: "BigBlueTerm437, monospace !important" },
126
+ // yellow
127
+ ".cm-comment": { color: "#00ff00", opacity: "0.6", fontFamily: "BigBlueTerm437, monospace !important" },
128
+ // dim green
129
+ ".cm-number": { color: "#ff00ff", fontFamily: "BigBlueTerm437, monospace !important" },
130
+ // magenta
131
+ ".cm-variable": { color: "#00ff00", fontFamily: "BigBlueTerm437, monospace !important" },
132
+ // green
133
+ ".cm-operator": { color: "#ff0000", fontFamily: "BigBlueTerm437, monospace !important" },
134
+ // red
135
+ ".cm-propertyName": { color: "#00ffff", fontFamily: "BigBlueTerm437, monospace !important" },
136
+ // cyan
137
+ ".cm-typeName": { color: "#0000ff", fontFamily: "BigBlueTerm437, monospace !important" },
138
+ // blue
139
+ ".cm-function": { color: "#ffff00", fontFamily: "BigBlueTerm437, monospace !important" },
140
+ // yellow
141
+ ".cm-bracket": { color: "#00ff00", fontFamily: "BigBlueTerm437, monospace !important" }
142
+ // green
143
+ }), S = M.define([
144
+ { tag: o.keyword, color: "#ff00ff" },
145
+ { tag: o.string, color: "#ffff00" },
146
+ { tag: o.comment, color: "#00ff00", opacity: "0.6" },
147
+ { tag: o.number, color: "#ff00ff" },
148
+ { tag: o.variableName, color: "#00ff00" },
149
+ { tag: o.operator, color: "#ff0000" },
150
+ { tag: o.propertyName, color: "#00ffff" },
151
+ { tag: o.typeName, color: "#0000ff" },
152
+ { tag: o.function(o.variableName), color: "#ffff00" },
153
+ { tag: o.bracket, color: "#00ff00" },
154
+ { tag: o.tagName, color: "#ff00ff" },
155
+ { tag: o.attributeName, color: "#00ffff" },
156
+ { tag: o.attributeValue, color: "#ffff00" }
157
+ ]);
158
+ return a.useEffect(() => {
159
+ if (!y.current) return;
160
+ const n = [
161
+ h,
162
+ Q(S),
163
+ X,
164
+ K.of([...G, ...J]),
165
+ u.updateListener.of((f) => {
166
+ if (f.docChanged) {
167
+ const p = f.state.doc.toString();
168
+ m == null || m(p);
169
+ }
170
+ if (f.selectionSet && g) {
171
+ const p = f.state.selection.main, x = f.state.doc.lineAt(p.head), R = x.number, j = p.head - x.from + 1;
172
+ g(R, j);
173
+ }
174
+ }),
175
+ N.readOnly.of(b)
176
+ ];
177
+ r && n.push(P()), l && n.push(q());
178
+ const T = B();
179
+ T && n.push(T), d && n.push(
180
+ u.contentAttributes.of({ "data-placeholder": d })
181
+ );
182
+ const L = N.create({
183
+ doc: i,
184
+ extensions: n
185
+ }), k = new u({
186
+ state: L,
187
+ parent: y.current
188
+ });
189
+ return c.current = k, () => {
190
+ k.destroy(), c.current = null;
191
+ };
192
+ }, [
193
+ l,
194
+ s,
195
+ r,
196
+ d,
197
+ b,
198
+ e,
199
+ B,
200
+ h,
201
+ m,
202
+ g
203
+ ]), a.useEffect(() => {
204
+ if (c.current) {
205
+ const n = c.current.state.doc.toString();
206
+ n !== i && c.current.dispatch({
207
+ changes: {
208
+ from: 0,
209
+ to: n.length,
210
+ insert: i
211
+ }
212
+ });
213
+ }
214
+ }, [i]), /* @__PURE__ */ A(
215
+ "div",
216
+ {
217
+ ref: E,
218
+ className: C(
219
+ "font-mono text-sm bg-black border-2 border-terminal-green overflow-hidden",
220
+ l && "vim-mode",
221
+ t
222
+ ),
223
+ children: [
224
+ /* @__PURE__ */ w("div", { ref: y }),
225
+ l && /* @__PURE__ */ w("div", { className: "text-xs text-terminal-yellow px-2 py-1 border-t border-terminal-green bg-black", children: "VIM MODE ENABLED" })
226
+ ]
227
+ }
228
+ );
229
+ }
230
+ );
231
+ Y.displayName = "TerminalTextarea";
232
+ export {
233
+ Y as TerminalTextarea
234
+ };
@@ -0,0 +1,20 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import * as a from "react";
3
+ import { cn as f } from "./index2.js";
4
+ const i = a.forwardRef(
5
+ ({ className: e, ...r }, t) => /* @__PURE__ */ o(
6
+ "textarea",
7
+ {
8
+ className: f(
9
+ "flex min-h-[60px] w-full border border-[#00ff00] bg-black text-[#00ff00] px-3 py-2 text-base placeholder:text-[#00ff00]/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#00ff00] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
10
+ e
11
+ ),
12
+ ref: t,
13
+ ...r
14
+ }
15
+ )
16
+ );
17
+ i.displayName = "Textarea";
18
+ export {
19
+ i as Textarea
20
+ };
@@ -0,0 +1,37 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import * as s from "react";
3
+ import { Root as e } from "./index76.js";
4
+ import { cva as l } from "./index42.js";
5
+ import { cn as m } from "./index2.js";
6
+ const f = l(
7
+ "inline-flex items-center justify-center text-sm font-medium transition-colors hover:bg-terminal-green/20 hover:text-terminal-green focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-terminal-green disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-terminal-green data-[state=on]:text-black data-[state=off]:bg-black data-[state=off]:text-terminal-green data-[state=off]:border-2 data-[state=off]:border-terminal-green [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-transparent",
12
+ outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
13
+ },
14
+ size: {
15
+ default: "h-9 px-2 min-w-9",
16
+ sm: "h-8 px-1.5 min-w-8",
17
+ lg: "h-10 px-2.5 min-w-10"
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ variant: "default",
22
+ size: "default"
23
+ }
24
+ }
25
+ ), d = s.forwardRef(({ className: t, variant: a, size: r, ...n }, o) => /* @__PURE__ */ i(
26
+ e,
27
+ {
28
+ ref: o,
29
+ className: m(f({ variant: a, size: r, className: t })),
30
+ ...n
31
+ }
32
+ ));
33
+ d.displayName = e.displayName;
34
+ export {
35
+ d as Toggle,
36
+ f as toggleVariants
37
+ };
@@ -0,0 +1,25 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import * as d from "react";
3
+ import { Root as s, Trigger as n, Portal as m, Content as a, Provider as l } from "./index49.js";
4
+ import { cn as p } from "./index2.js";
5
+ const f = ({ children: o, ...t }) => /* @__PURE__ */ e(l, { delayDuration: 100, skipDelayDuration: 300, ...t, children: o });
6
+ f.displayName = "TooltipProvider";
7
+ const T = s, x = n, c = d.forwardRef(({ className: o, sideOffset: t = 4, ...i }, r) => /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(
8
+ a,
9
+ {
10
+ ref: r,
11
+ sideOffset: t,
12
+ className: p(
13
+ "z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",
14
+ o
15
+ ),
16
+ ...i
17
+ }
18
+ ) }));
19
+ c.displayName = a.displayName;
20
+ export {
21
+ T as Tooltip,
22
+ c as TooltipContent,
23
+ f as TooltipProvider,
24
+ x as TooltipTrigger
25
+ };
@@ -0,0 +1,105 @@
1
+ const r = {
2
+ // Terminal theme (default) - green on black CRT aesthetic
3
+ light: {
4
+ background: "0 0% 0%",
5
+ // Black
6
+ foreground: "120 100% 50%",
7
+ // Terminal green (#00ff00)
8
+ card: "0 0% 5%",
9
+ // Slightly lighter black
10
+ cardForeground: "120 100% 50%",
11
+ popover: "0 0% 5%",
12
+ popoverForeground: "120 100% 50%",
13
+ primary: "60 100% 50%",
14
+ // Yellow (#ffff00)
15
+ primaryForeground: "0 0% 0%",
16
+ secondary: "120 100% 25%",
17
+ // Darker green
18
+ secondaryForeground: "120 100% 50%",
19
+ muted: "0 0% 10%",
20
+ mutedForeground: "120 100% 35%",
21
+ accent: "60 100% 50%",
22
+ // Yellow
23
+ accentForeground: "0 0% 0%",
24
+ destructive: "0 100% 50%",
25
+ // Red
26
+ destructiveForeground: "0 0% 0%",
27
+ border: "120 100% 25%",
28
+ // Dark green border
29
+ input: "0 0% 10%",
30
+ ring: "120 100% 50%",
31
+ chart1: "120 100% 50%",
32
+ // Green
33
+ chart2: "60 100% 50%",
34
+ // Yellow
35
+ chart3: "300 100% 50%",
36
+ // Magenta
37
+ chart4: "240 100% 50%",
38
+ // Blue
39
+ chart5: "30 100% 50%"
40
+ // Orange
41
+ },
42
+ dark: {
43
+ background: "0 0% 0%",
44
+ foreground: "120 100% 50%",
45
+ card: "0 0% 5%",
46
+ cardForeground: "120 100% 50%",
47
+ popover: "0 0% 5%",
48
+ popoverForeground: "120 100% 50%",
49
+ primary: "60 100% 50%",
50
+ primaryForeground: "0 0% 0%",
51
+ secondary: "120 100% 25%",
52
+ secondaryForeground: "120 100% 50%",
53
+ muted: "0 0% 10%",
54
+ mutedForeground: "120 100% 35%",
55
+ accent: "60 100% 50%",
56
+ accentForeground: "0 0% 0%",
57
+ destructive: "0 100% 50%",
58
+ destructiveForeground: "0 0% 0%",
59
+ border: "120 100% 25%",
60
+ input: "0 0% 10%",
61
+ ring: "120 100% 50%",
62
+ chart1: "120 100% 50%",
63
+ chart2: "60 100% 50%",
64
+ chart3: "300 100% 50%",
65
+ chart4: "240 100% 50%",
66
+ chart5: "30 100% 50%"
67
+ },
68
+ // Extended palette from source application
69
+ terminal: {
70
+ green: "rgb(0 255 0)",
71
+ blue: "rgb(0 0 255)",
72
+ yellow: "rgb(255 255 0)",
73
+ magenta: "rgb(255 0 255)",
74
+ red: "rgb(255 0 0)",
75
+ orange: "rgb(255 167 0)",
76
+ deepblue: "rgb(0 0 152)",
77
+ black: "rgb(0 0 0)"
78
+ },
79
+ // Sidebar specific colors (terminal themed)
80
+ sidebar: {
81
+ light: {
82
+ background: "0 0% 0%",
83
+ foreground: "120 100% 50%",
84
+ primary: "60 100% 50%",
85
+ primaryForeground: "0 0% 0%",
86
+ accent: "120 100% 15%",
87
+ accentForeground: "120 100% 50%",
88
+ border: "120 100% 25%",
89
+ ring: "120 100% 50%"
90
+ },
91
+ dark: {
92
+ background: "0 0% 0%",
93
+ foreground: "120 100% 50%",
94
+ primary: "60 100% 50%",
95
+ primaryForeground: "0 0% 0%",
96
+ accent: "120 100% 15%",
97
+ accentForeground: "120 100% 50%",
98
+ border: "120 100% 25%",
99
+ ring: "120 100% 50%"
100
+ }
101
+ }
102
+ };
103
+ export {
104
+ r as colors
105
+ };
@@ -0,0 +1,68 @@
1
+ const e = {
2
+ fontFamily: {
3
+ sans: [
4
+ "ui-sans-serif",
5
+ "system-ui",
6
+ "sans-serif",
7
+ '"Apple Color Emoji"',
8
+ '"Segoe UI Emoji"',
9
+ '"Segoe UI Symbol"',
10
+ '"Noto Color Emoji"'
11
+ ],
12
+ mono: [
13
+ "ui-monospace",
14
+ "SFMono-Regular",
15
+ "Menlo",
16
+ "Monaco",
17
+ "Consolas",
18
+ '"Liberation Mono"',
19
+ '"Courier New"',
20
+ "monospace"
21
+ ]
22
+ },
23
+ fontSize: {
24
+ xs: ["0.75rem", { lineHeight: "1rem" }],
25
+ sm: ["0.875rem", { lineHeight: "1.25rem" }],
26
+ base: ["1rem", { lineHeight: "1.5rem" }],
27
+ lg: ["1.125rem", { lineHeight: "1.75rem" }],
28
+ xl: ["1.25rem", { lineHeight: "1.75rem" }],
29
+ "2xl": ["1.5rem", { lineHeight: "2rem" }],
30
+ "3xl": ["1.875rem", { lineHeight: "2.25rem" }],
31
+ "4xl": ["2.25rem", { lineHeight: "2.5rem" }],
32
+ "5xl": ["3rem", { lineHeight: "1" }],
33
+ "6xl": ["3.75rem", { lineHeight: "1" }],
34
+ "7xl": ["4.5rem", { lineHeight: "1" }],
35
+ "8xl": ["6rem", { lineHeight: "1" }],
36
+ "9xl": ["8rem", { lineHeight: "1" }]
37
+ },
38
+ fontWeight: {
39
+ thin: "100",
40
+ extralight: "200",
41
+ light: "300",
42
+ normal: "400",
43
+ medium: "500",
44
+ semibold: "600",
45
+ bold: "700",
46
+ extrabold: "800",
47
+ black: "900"
48
+ },
49
+ letterSpacing: {
50
+ tighter: "-0.05em",
51
+ tight: "-0.025em",
52
+ normal: "0em",
53
+ wide: "0.025em",
54
+ wider: "0.05em",
55
+ widest: "0.1em"
56
+ },
57
+ lineHeight: {
58
+ none: "1",
59
+ tight: "1.25",
60
+ snug: "1.375",
61
+ normal: "1.5",
62
+ relaxed: "1.625",
63
+ loose: "2"
64
+ }
65
+ };
66
+ export {
67
+ e as typography
68
+ };
@@ -0,0 +1,51 @@
1
+ const r = {
2
+ px: "1px",
3
+ 0: "0px",
4
+ 0.5: "0.125rem",
5
+ 1: "0.25rem",
6
+ 1.5: "0.375rem",
7
+ 2: "0.5rem",
8
+ 2.5: "0.625rem",
9
+ 3: "0.75rem",
10
+ 3.5: "0.875rem",
11
+ 4: "1rem",
12
+ 5: "1.25rem",
13
+ 6: "1.5rem",
14
+ 7: "1.75rem",
15
+ 8: "2rem",
16
+ 9: "2.25rem",
17
+ 10: "2.5rem",
18
+ 11: "2.75rem",
19
+ 12: "3rem",
20
+ 14: "3.5rem",
21
+ 16: "4rem",
22
+ 20: "5rem",
23
+ 24: "6rem",
24
+ 28: "7rem",
25
+ 32: "8rem",
26
+ 36: "9rem",
27
+ 40: "10rem",
28
+ 44: "11rem",
29
+ 48: "12rem",
30
+ 52: "13rem",
31
+ 56: "14rem",
32
+ 60: "15rem",
33
+ 64: "16rem",
34
+ 72: "18rem",
35
+ 80: "20rem",
36
+ 96: "24rem"
37
+ }, e = {
38
+ none: "0px",
39
+ sm: "calc(var(--radius) - 4px)",
40
+ md: "calc(var(--radius) - 2px)",
41
+ DEFAULT: "var(--radius)",
42
+ lg: "var(--radius)",
43
+ xl: "calc(var(--radius) + 4px)",
44
+ "2xl": "calc(var(--radius) + 8px)",
45
+ "3xl": "calc(var(--radius) + 16px)",
46
+ full: "9999px"
47
+ };
48
+ export {
49
+ e as borderRadius,
50
+ r as spacing
51
+ };
@@ -0,0 +1,102 @@
1
+ const t = {
2
+ keyframes: {
3
+ "accordion-down": {
4
+ from: { height: "0" },
5
+ to: { height: "var(--radix-accordion-content-height)" }
6
+ },
7
+ "accordion-up": {
8
+ from: { height: "var(--radix-accordion-content-height)" },
9
+ to: { height: "0" }
10
+ },
11
+ "collapsible-down": {
12
+ from: { height: "0" },
13
+ to: { height: "var(--radix-collapsible-content-height)" }
14
+ },
15
+ "collapsible-up": {
16
+ from: { height: "var(--radix-collapsible-content-height)" },
17
+ to: { height: "0" }
18
+ },
19
+ "fade-in": {
20
+ from: { opacity: "0" },
21
+ to: { opacity: "1" }
22
+ },
23
+ "fade-out": {
24
+ from: { opacity: "1" },
25
+ to: { opacity: "0" }
26
+ },
27
+ "slide-in-from-top": {
28
+ from: { transform: "translateY(-100%)" },
29
+ to: { transform: "translateY(0)" }
30
+ },
31
+ "slide-in-from-bottom": {
32
+ from: { transform: "translateY(100%)" },
33
+ to: { transform: "translateY(0)" }
34
+ },
35
+ "slide-in-from-left": {
36
+ from: { transform: "translateX(-100%)" },
37
+ to: { transform: "translateX(0)" }
38
+ },
39
+ "slide-in-from-right": {
40
+ from: { transform: "translateX(100%)" },
41
+ to: { transform: "translateX(0)" }
42
+ },
43
+ "zoom-in": {
44
+ from: { opacity: "0", transform: "scale(0.95)" },
45
+ to: { opacity: "1", transform: "scale(1)" }
46
+ },
47
+ "zoom-out": {
48
+ from: { opacity: "1", transform: "scale(1)" },
49
+ to: { opacity: "0", transform: "scale(0.95)" }
50
+ },
51
+ spin: {
52
+ from: { transform: "rotate(0deg)" },
53
+ to: { transform: "rotate(360deg)" }
54
+ },
55
+ ping: {
56
+ "75%, 100%": { transform: "scale(2)", opacity: "0" }
57
+ },
58
+ pulse: {
59
+ "0%, 100%": { opacity: "1" },
60
+ "50%": { opacity: "0.5" }
61
+ },
62
+ bounce: {
63
+ "0%, 100%": {
64
+ transform: "translateY(-25%)",
65
+ animationTimingFunction: "cubic-bezier(0.8, 0, 1, 1)"
66
+ },
67
+ "50%": {
68
+ transform: "translateY(0)",
69
+ animationTimingFunction: "cubic-bezier(0, 0, 0.2, 1)"
70
+ }
71
+ },
72
+ // Terminal-style animations from source app
73
+ flash: {
74
+ "0%, 100%": { opacity: "1" },
75
+ "50%": { opacity: "0" }
76
+ },
77
+ marquee: {
78
+ "0%": { transform: "translateX(100%)" },
79
+ "100%": { transform: "translateX(-100%)" }
80
+ }
81
+ },
82
+ durations: {
83
+ fastest: "50ms",
84
+ faster: "100ms",
85
+ fast: "150ms",
86
+ normal: "200ms",
87
+ slow: "300ms",
88
+ slower: "400ms",
89
+ slowest: "500ms"
90
+ },
91
+ easings: {
92
+ linear: "linear",
93
+ in: "cubic-bezier(0.4, 0, 1, 1)",
94
+ out: "cubic-bezier(0, 0, 0.2, 1)",
95
+ inOut: "cubic-bezier(0.4, 0, 0.2, 1)",
96
+ // Custom easing from source app
97
+ smooth: "cubic-bezier(0.25, 0.46, 0.45, 0.94)"
98
+ }
99
+ };
100
+ export {
101
+ t as animations
102
+ };