@mks2508/mks-ui 0.9.0 → 0.11.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 (69) hide show
  1. package/dist/react-ui/blocks/Terminal/ChromeShell/ChromeShell.styles.d.ts +55 -0
  2. package/dist/react-ui/blocks/Terminal/ChromeShell/ChromeShell.styles.d.ts.map +1 -0
  3. package/dist/react-ui/blocks/Terminal/ChromeShell/ChromeShell.styles.js +62 -0
  4. package/dist/react-ui/blocks/Terminal/ChromeShell/ChromeShell.types.d.ts +92 -0
  5. package/dist/react-ui/blocks/Terminal/ChromeShell/ChromeShell.types.d.ts.map +1 -0
  6. package/dist/react-ui/blocks/Terminal/ChromeShell/index.d.ts +71 -0
  7. package/dist/react-ui/blocks/Terminal/ChromeShell/index.d.ts.map +1 -0
  8. package/dist/react-ui/blocks/Terminal/ChromeShell/index.js +114 -0
  9. package/dist/react-ui/blocks/Terminal/chrome.d.ts +1 -0
  10. package/dist/react-ui/blocks/Terminal/chrome.d.ts.map +1 -1
  11. package/dist/react-ui/blocks/Terminal/chrome.js +3 -1
  12. package/dist/react-ui/blocks/Terminal/index.d.ts +1 -0
  13. package/dist/react-ui/blocks/Terminal/index.d.ts.map +1 -1
  14. package/dist/react-ui/blocks/Terminal/index.js +3 -1
  15. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts.map +1 -1
  16. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.js +20 -9
  17. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts.map +1 -1
  18. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.js +19 -6
  19. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/index.d.ts.map +1 -1
  20. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/index.js +31 -9
  21. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts +31 -2
  22. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts.map +1 -1
  23. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.js +41 -5
  24. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.d.ts +22 -0
  25. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.d.ts.map +1 -1
  26. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts +8 -0
  27. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts.map +1 -1
  28. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.js +54 -12
  29. package/dist/react-ui/blocks/Terminal/renderers/ResttyRenderer.d.ts +52 -0
  30. package/dist/react-ui/blocks/Terminal/renderers/ResttyRenderer.d.ts.map +1 -0
  31. package/dist/react-ui/blocks/Terminal/renderers/ResttyRenderer.js +160 -0
  32. package/dist/react-ui/blocks/Terminal/renderers/WtermRenderer.d.ts +46 -0
  33. package/dist/react-ui/blocks/Terminal/renderers/WtermRenderer.d.ts.map +1 -0
  34. package/dist/react-ui/blocks/Terminal/renderers/WtermRenderer.js +195 -0
  35. package/dist/react-ui/blocks/Terminal/renderers/XTermRenderer.d.ts +39 -0
  36. package/dist/react-ui/blocks/Terminal/renderers/XTermRenderer.d.ts.map +1 -0
  37. package/dist/react-ui/blocks/Terminal/renderers/XTermRenderer.js +251 -0
  38. package/dist/react-ui/blocks/Terminal/renderers/index.d.ts +20 -0
  39. package/dist/react-ui/blocks/Terminal/renderers/index.d.ts.map +1 -0
  40. package/dist/react-ui/blocks/Terminal/renderers/types.d.ts +47 -0
  41. package/dist/react-ui/blocks/Terminal/renderers/types.d.ts.map +1 -0
  42. package/dist/react-ui/blocks/Terminal/restty.d.ts +2 -0
  43. package/dist/react-ui/blocks/Terminal/restty.d.ts.map +1 -1
  44. package/dist/react-ui/blocks/Terminal/restty.js +2 -1
  45. package/dist/react-ui/blocks/Terminal/wterm.d.ts +2 -0
  46. package/dist/react-ui/blocks/Terminal/wterm.d.ts.map +1 -1
  47. package/dist/react-ui/blocks/Terminal/wterm.js +2 -1
  48. package/dist/react-ui/blocks/Terminal/xterm.d.ts +2 -0
  49. package/dist/react-ui/blocks/Terminal/xterm.d.ts.map +1 -1
  50. package/dist/react-ui/blocks/Terminal/xterm.js +2 -1
  51. package/dist/react-ui/index.d.ts +2 -2
  52. package/dist/react-ui/index.d.ts.map +1 -1
  53. package/dist/react-ui/index.js +5 -3
  54. package/dist/react-ui/ui/MiddleTruncate/MiddleTruncate.styles.d.ts +30 -0
  55. package/dist/react-ui/ui/MiddleTruncate/MiddleTruncate.styles.d.ts.map +1 -0
  56. package/dist/react-ui/ui/MiddleTruncate/MiddleTruncate.styles.js +31 -0
  57. package/dist/react-ui/ui/MiddleTruncate/MiddleTruncate.types.d.ts +66 -0
  58. package/dist/react-ui/ui/MiddleTruncate/MiddleTruncate.types.d.ts.map +1 -0
  59. package/dist/react-ui/ui/MiddleTruncate/index.d.ts +79 -0
  60. package/dist/react-ui/ui/MiddleTruncate/index.d.ts.map +1 -0
  61. package/dist/react-ui/ui/MiddleTruncate/index.js +164 -0
  62. package/dist/react-ui/ui/MiddleTruncatePath/MiddleTruncatePath.styles.js +1 -1
  63. package/dist/react-ui/ui/MiddleTruncatePath/index.d.ts +7 -1
  64. package/dist/react-ui/ui/MiddleTruncatePath/index.d.ts.map +1 -1
  65. package/dist/react-ui/ui/MiddleTruncatePath/index.js +21 -17
  66. package/dist/react-ui/ui/index.d.ts +1 -0
  67. package/dist/react-ui/ui/index.d.ts.map +1 -1
  68. package/dist/react-ui/ui/index.js +3 -1
  69. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { cn } from "../../../../lib/utils.js";
4
+ import { Button } from "../../../../ui/Button/index.js";
4
5
  import { ArrowDownToLineIcon } from "../../../../icons/lucide-animated/arrow-down-to-line.js";
5
6
  import { ArrowUpIcon } from "../../../../icons/lucide-animated/arrow-up.js";
6
7
  import { DeleteIcon } from "../../../../icons/lucide-animated/delete.js";
@@ -245,49 +246,66 @@ const TerminalLogsPanel = forwardRef(({ containerName, isConnected, _logs = "",
245
246
  /* @__PURE__ */ jsx("div", { className: cn(terminalLogsPanelStyles.actionBarDivider, slots?.actionBarDivider) }),
246
247
  /* @__PURE__ */ jsxs("div", {
247
248
  className: "flex items-center gap-1",
248
- children: [viewMode === "terminal" && /* @__PURE__ */ jsx("button", {
249
+ children: [viewMode === "terminal" && /* @__PURE__ */ jsx(Button, {
250
+ variant: "bare",
251
+ size: "bare",
249
252
  type: "button",
250
253
  onClick: () => onFollowCursorChange(!followCursor),
251
254
  className: cn(TOGGLE_STYLES.base, followCursor ? TOGGLE_STYLES.active : TOGGLE_STYLES.inactive),
252
255
  title: followCursor ? "Disable auto-scroll (Ctrl+F)" : "Enable auto-scroll (Ctrl+F)",
253
- children: followCursor ? /* @__PURE__ */ jsx(ArrowDownToLineIcon, { className: "w-4 h-4 flex-shrink-0" }) : /* @__PURE__ */ jsx(ArrowUpIcon, { className: "w-4 h-4 flex-shrink-0" })
254
- }), /* @__PURE__ */ jsx("button", {
256
+ "aria-pressed": followCursor,
257
+ "aria-label": followCursor ? "Disable auto-scroll" : "Enable auto-scroll",
258
+ children: followCursor ? /* @__PURE__ */ jsx(ArrowDownToLineIcon, { className: "w-4 h-4 shrink-0" }) : /* @__PURE__ */ jsx(ArrowUpIcon, { className: "w-4 h-4 shrink-0" })
259
+ }), /* @__PURE__ */ jsx(Button, {
260
+ variant: "bare",
261
+ size: "bare",
255
262
  type: "button",
256
263
  onClick: () => onShowLineNumbersChange(!showLineNumbers),
257
264
  className: cn(TOGGLE_STYLES.base, showLineNumbers ? TOGGLE_STYLES.active : TOGGLE_STYLES.inactive),
258
265
  title: showLineNumbers ? "Hide line numbers (Ctrl+L)" : "Show line numbers (Ctrl+L)",
259
- children: /* @__PURE__ */ jsx(ListIcon, { className: "w-4 h-4 flex-shrink-0" })
266
+ "aria-pressed": showLineNumbers,
267
+ "aria-label": showLineNumbers ? "Hide line numbers" : "Show line numbers",
268
+ children: /* @__PURE__ */ jsx(ListIcon, { className: "w-4 h-4 shrink-0" })
260
269
  })]
261
270
  }),
262
271
  /* @__PURE__ */ jsx("div", { className: "flex-1" }),
263
272
  /* @__PURE__ */ jsxs("div", {
264
273
  className: "flex items-center gap-1",
265
274
  children: [
266
- /* @__PURE__ */ jsx("button", {
275
+ /* @__PURE__ */ jsx(Button, {
276
+ variant: "bare",
277
+ size: "bare",
267
278
  type: "button",
268
279
  onClick: onSearch,
269
280
  className: cn(ACTION_BUTTON_STYLES.base, ACTION_BUTTON_STYLES.default),
270
281
  title: "Search in logs (Ctrl+Shift+F)",
282
+ "aria-label": "Search in logs",
271
283
  children: /* @__PURE__ */ jsx(IconWrapper, {
272
284
  icon: SearchIcon,
273
285
  size: 16
274
286
  })
275
287
  }),
276
- /* @__PURE__ */ jsx("button", {
288
+ /* @__PURE__ */ jsx(Button, {
289
+ variant: "bare",
290
+ size: "bare",
277
291
  type: "button",
278
292
  onClick: onClear,
279
293
  className: cn(ACTION_BUTTON_STYLES.base, ACTION_BUTTON_STYLES.default),
280
294
  title: "Clear logs (Ctrl+K)",
295
+ "aria-label": "Clear logs",
281
296
  children: /* @__PURE__ */ jsx(IconWrapper, {
282
297
  icon: DeleteIcon,
283
298
  size: 16
284
299
  })
285
300
  }),
286
- /* @__PURE__ */ jsx("button", {
301
+ /* @__PURE__ */ jsx(Button, {
302
+ variant: "bare",
303
+ size: "bare",
287
304
  type: "button",
288
305
  onClick: onDownload,
289
306
  className: cn(ACTION_BUTTON_STYLES.base, ACTION_BUTTON_STYLES.default),
290
307
  title: "Download logs",
308
+ "aria-label": "Download logs",
291
309
  children: /* @__PURE__ */ jsx(IconWrapper, {
292
310
  icon: DownloadIcon,
293
311
  size: 16
@@ -357,12 +375,16 @@ const TerminalLogsPanel = forwardRef(({ containerName, isConnected, _logs = "",
357
375
  children: "Available containers:"
358
376
  }), /* @__PURE__ */ jsxs("div", {
359
377
  className: "flex flex-wrap gap-2 justify-center",
360
- children: [containers.slice(0, 3).map((container) => /* @__PURE__ */ jsx("button", {
378
+ children: [containers.slice(0, 3).map((container) => /* @__PURE__ */ jsx(Button, {
379
+ variant: "bare",
380
+ size: "bare",
361
381
  type: "button",
362
382
  onClick: () => onAddContainer(container.name),
363
383
  className: cn(terminalLogsPanelStyles.containerButton, slots?.containerButton, `hover:${PRIMARY_GLOW.md}`),
364
384
  children: container.name
365
- }, container.id)), containers.length > 3 && /* @__PURE__ */ jsxs("button", {
385
+ }, container.id)), containers.length > 3 && /* @__PURE__ */ jsxs(Button, {
386
+ variant: "bare",
387
+ size: "bare",
366
388
  type: "button",
367
389
  onClick: () => onNewSession?.(),
368
390
  className: cn(terminalLogsPanelStyles.containerButton, slots?.containerButton),
@@ -9,11 +9,17 @@
9
9
  * - Noise texture SVG overlay for depth
10
10
  * - Animated top accent line (primary gradient with glow)
11
11
  * - Session tabs (TerminalSessionTabs)
12
- * - macOS-style header (TerminalPanelHeader)
12
+ * - macOS-style header (TerminalPanelHeader) — gated by `showHeader` (default `true`)
13
13
  * - Slots for action bar, children (terminal content), and footer
14
14
  * - Neon magenta scrollbar styles
15
15
  * - StyleSlots + CVA variants for customization
16
16
  *
17
+ * As of v0.11.0 the structural skeleton is also available as the public
18
+ * {@link ChromeShell} primitive (variant B nativa upstream). Consumers
19
+ * who need full toolbar control without the macOS header should compose
20
+ * with {@link ChromeShell} directly. This component remains the
21
+ * batteries-included default for log / interactive panels.
22
+ *
17
23
  * @module components/devenv/terminal/panel/chrome
18
24
  */
19
25
  import type { ITerminalPanelChromeProps } from './TerminalPanelChrome.types';
@@ -37,6 +43,16 @@ export declare const terminalScrollStyles = "\n @keyframes shimmer-line {\n
37
43
  * Supports StyleSlots for class overrides and CVA variants
38
44
  * for visual presets (default, minimal, error).
39
45
  *
46
+ * v0.11.0 additions (additive, fully backward-compatible):
47
+ * - `showHeader` (default `true`) — set to `false` to skip rendering
48
+ * the default {@link TerminalPanelHeader}.
49
+ * - `header` slot — replace the default header with custom content
50
+ * (e.g. richer status, breadcrumbs). Wins over `showHeader`.
51
+ *
52
+ * For chrome-less composition (no traffic lights, no session tabs,
53
+ * full toolbar control), use the public {@link ChromeShell} primitive
54
+ * directly instead.
55
+ *
40
56
  * @example
41
57
  * ```tsx
42
58
  * <TerminalPanelChrome
@@ -50,6 +66,19 @@ export declare const terminalScrollStyles = "\n @keyframes shimmer-line {\n
50
66
  * <div ref={containerRef} className="terminal-container" />
51
67
  * </TerminalPanelChrome>
52
68
  * ```
69
+ *
70
+ * @example
71
+ * ```tsx
72
+ * // v0.11.0 — opt out of the default macOS header.
73
+ * <TerminalPanelChrome
74
+ * containerName="devenv-agent-backend"
75
+ * isConnected={true}
76
+ * showHeader={false}
77
+ * actionBar={<MyCustomToolbar />}
78
+ * >
79
+ * <MyTerminalContent />
80
+ * </TerminalPanelChrome>
81
+ * ```
53
82
  */
54
- export declare function TerminalPanelChrome({ containerName, isConnected, variant, size, viewMode, onViewModeChange, sessions, activeSessionId, onSessionTabClick, onSessionClose, onNewSession, availableContainers, onAddContainer, children, actionBar, footer, onClose, onMinimize, onMaximize, crtEffect, slots, className, }: ITerminalPanelChromeProps): import("react/jsx-runtime").JSX.Element;
83
+ export declare function TerminalPanelChrome({ containerName, isConnected, variant, size, viewMode, onViewModeChange, sessions, activeSessionId, onSessionTabClick, onSessionClose, onNewSession, availableContainers, onAddContainer, children, actionBar, footer, onClose, onMinimize, onMaximize, crtEffect, showHeader, header, slots, className, }: ITerminalPanelChromeProps): import("react/jsx-runtime").JSX.Element;
55
84
  //# sourceMappingURL=TerminalPanelChrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalPanelChrome.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAU7E;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yTAAuT,CAAC;AAEtV;;;GAGG;AACH,eAAO,MAAM,oBAAoB,84EAuFhC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,WAAW,EACX,OAAmB,EACnB,IAAgB,EAChB,QAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CAwF3B"}
1
+ {"version":3,"file":"TerminalPanelChrome.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAU7E;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yTAAuT,CAAC;AAEtV;;;GAGG;AACH,eAAO,MAAM,oBAAoB,84EAuFhC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,WAAW,EACX,OAAmB,EACnB,IAAgB,EAChB,QAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAiB,EACjB,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,yBAAyB,2CAyG3B"}
@@ -18,11 +18,17 @@ import { jsx, jsxs } from "react/jsx-runtime";
18
18
  * - Noise texture SVG overlay for depth
19
19
  * - Animated top accent line (primary gradient with glow)
20
20
  * - Session tabs (TerminalSessionTabs)
21
- * - macOS-style header (TerminalPanelHeader)
21
+ * - macOS-style header (TerminalPanelHeader) — gated by `showHeader` (default `true`)
22
22
  * - Slots for action bar, children (terminal content), and footer
23
23
  * - Neon magenta scrollbar styles
24
24
  * - StyleSlots + CVA variants for customization
25
25
  *
26
+ * As of v0.11.0 the structural skeleton is also available as the public
27
+ * {@link ChromeShell} primitive (variant B nativa upstream). Consumers
28
+ * who need full toolbar control without the macOS header should compose
29
+ * with {@link ChromeShell} directly. This component remains the
30
+ * batteries-included default for log / interactive panels.
31
+ *
26
32
  * @module components/devenv/terminal/panel/chrome
27
33
  */
28
34
  /**
@@ -132,6 +138,16 @@ const terminalScrollStyles = `
132
138
  * Supports StyleSlots for class overrides and CVA variants
133
139
  * for visual presets (default, minimal, error).
134
140
  *
141
+ * v0.11.0 additions (additive, fully backward-compatible):
142
+ * - `showHeader` (default `true`) — set to `false` to skip rendering
143
+ * the default {@link TerminalPanelHeader}.
144
+ * - `header` slot — replace the default header with custom content
145
+ * (e.g. richer status, breadcrumbs). Wins over `showHeader`.
146
+ *
147
+ * For chrome-less composition (no traffic lights, no session tabs,
148
+ * full toolbar control), use the public {@link ChromeShell} primitive
149
+ * directly instead.
150
+ *
135
151
  * @example
136
152
  * ```tsx
137
153
  * <TerminalPanelChrome
@@ -145,8 +161,25 @@ const terminalScrollStyles = `
145
161
  * <div ref={containerRef} className="terminal-container" />
146
162
  * </TerminalPanelChrome>
147
163
  * ```
164
+ *
165
+ * @example
166
+ * ```tsx
167
+ * // v0.11.0 — opt out of the default macOS header.
168
+ * <TerminalPanelChrome
169
+ * containerName="devenv-agent-backend"
170
+ * isConnected={true}
171
+ * showHeader={false}
172
+ * actionBar={<MyCustomToolbar />}
173
+ * >
174
+ * <MyTerminalContent />
175
+ * </TerminalPanelChrome>
176
+ * ```
148
177
  */
149
- function TerminalPanelChrome({ containerName, isConnected, variant = "default", size = "default", viewMode = "terminal", onViewModeChange, sessions, activeSessionId, onSessionTabClick, onSessionClose, onNewSession, availableContainers, onAddContainer, children, actionBar, footer, onClose, onMinimize, onMaximize, crtEffect, slots, className }) {
178
+ function TerminalPanelChrome({ containerName, isConnected, variant = "default", size = "default", viewMode = "terminal", onViewModeChange, sessions, activeSessionId, onSessionTabClick, onSessionClose, onNewSession, availableContainers, onAddContainer, children, actionBar, footer, onClose, onMinimize, onMaximize, crtEffect, showHeader = true, header, slots, className }) {
179
+ /** Custom header slot wins over `showHeader`. */
180
+ const hasCustomHeader = header !== void 0;
181
+ /** Render the default `<TerminalPanelHeader>` when no custom slot and `showHeader` is on. */
182
+ const renderDefaultHeader = !hasCustomHeader && showHeader;
150
183
  /** Whether to render session tabs (multi-session mode) */
151
184
  const showSessionTabs = sessions && sessions.length > 0 || availableContainers && availableContainers.length > 0;
152
185
  /** Whether to show the accent line (hidden in minimal variant) */
@@ -162,7 +195,7 @@ function TerminalPanelChrome({ containerName, isConnected, variant = "default",
162
195
  showAccentLine && /* @__PURE__ */ jsxs("div", {
163
196
  className: cn(terminalChromeStyles.accentLine, slots?.accentLine),
164
197
  children: [/* @__PURE__ */ jsx("div", { className: cn(accentGradient, slots?.accentGradient) }), /* @__PURE__ */ jsx("div", {
165
- className: cn(terminalChromeStyles.accentShimmer, slots?.accentShimmer),
198
+ className: cn(terminalChromeStyles.accentShimmer, "motion-reduce:[animation:none]", slots?.accentShimmer),
166
199
  style: {
167
200
  backgroundSize: "200% 100%",
168
201
  animation: "shimmer-line 4s ease-in-out infinite"
@@ -181,7 +214,10 @@ function TerminalPanelChrome({ containerName, isConnected, variant = "default",
181
214
  onAddContainer
182
215
  })
183
216
  }),
184
- /* @__PURE__ */ jsx("div", {
217
+ hasCustomHeader ? /* @__PURE__ */ jsx("div", {
218
+ className: cn(slots?.header),
219
+ children: header
220
+ }) : renderDefaultHeader ? /* @__PURE__ */ jsx("div", {
185
221
  className: cn(slots?.header),
186
222
  children: /* @__PURE__ */ jsx(TerminalPanelHeader, {
187
223
  containerName,
@@ -192,7 +228,7 @@ function TerminalPanelChrome({ containerName, isConnected, variant = "default",
192
228
  onMinimize,
193
229
  onMaximize
194
230
  })
195
- }),
231
+ }) : null,
196
232
  actionBar && /* @__PURE__ */ jsx("div", {
197
233
  className: cn(slots?.actionBar),
198
234
  children: actionBar
@@ -54,6 +54,28 @@ export interface ITerminalPanelChromeProps extends TerminalChromeVariantProps {
54
54
  onMaximize?: () => void;
55
55
  /** Enable CRT shader effects (scanlines, bloom, vignette) */
56
56
  crtEffect?: boolean;
57
+ /**
58
+ * Whether to render the default macOS-style header (traffic lights +
59
+ * container name + connection status). Defaults to `true` to preserve
60
+ * v0.10.0 behavior — pass `false` when composing a custom toolbar that
61
+ * already includes the connection status, or when delegating header
62
+ * concerns to the consumer (variant B nativa, v0.11.0+).
63
+ *
64
+ * Has no effect when {@link ITerminalPanelChromeProps.header} is set
65
+ * (the explicit slot always wins).
66
+ */
67
+ showHeader?: boolean;
68
+ /**
69
+ * Custom header slot. When provided, replaces the default
70
+ * {@link TerminalPanelHeader} (traffic lights + container name).
71
+ * Mutually exclusive with `showHeader`: if `header` is non-`undefined`
72
+ * it always wins, regardless of the `showHeader` flag.
73
+ *
74
+ * Use this when the default header is fine for the macOS chrome
75
+ * cosmetics but the consumer wants to swap the inner content
76
+ * (e.g. richer status, custom session label, breadcrumbs).
77
+ */
78
+ header?: React.ReactNode;
57
79
  /** Slot class overrides for each chrome sub-region */
58
80
  slots?: SlotOverrides<TerminalChromeSlot>;
59
81
  /** Custom class name appended to outer wrapper */
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalPanelChrome.types.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IAErB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAEhC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,KAAK,IAAI,CAAC;IAExD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE9B,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD,0DAA0D;IAC1D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,8DAA8D;IAC9D,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjD,kCAAkC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,sDAAsD;IACtD,KAAK,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAE1C,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"TerminalPanelChrome.types.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/panel/TerminalPanelChrome.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IAEtB,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IAErB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAEhC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,KAAK,IAAI,CAAC;IAExD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE9B,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhD,0DAA0D;IAC1D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,8DAA8D;IAC9D,cAAc,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjD,kCAAkC;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAE1C,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -16,6 +16,14 @@ export type { TerminalSettingsPopoverSlot } from './TerminalSettingsPopover.styl
16
16
  * Renders a settings gear icon that opens a popover with terminal
17
17
  * configuration options. Uses centralized tokens for all shared styles.
18
18
  *
19
+ * **Side-effect warning**: every mutation persists to `localStorage` via
20
+ * `useTerminalSettings` and propagates to ALL other consumers of the same
21
+ * hook in the running app (cross-component sync via `useSyncExternalStore`).
22
+ * Renderer / fontSize / CRT / debug switches are global, not scoped to
23
+ * the panel that hosts the popover. If a consumer wants per-panel
24
+ * settings, do not use this popover — drive the setting from a local
25
+ * prop instead.
26
+ *
19
27
  * @example
20
28
  * ```tsx
21
29
  * <TerminalSettingsPopover slots={{ trigger: 'h-10 w-10' }} />
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAGrF,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAMpF;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,GAAE,6BAAkC,2CA2MpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAGrF,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAMpF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,GAAE,6BAAkC,2CA4OpF"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { cn } from "../../../../lib/utils.js";
4
4
  import { Popover, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTrigger } from "../../../../ui/Popover/index.js";
5
+ import { Button } from "../../../../ui/Button/index.js";
5
6
  import { Separator } from "../../../../ui/Separator/index.js";
6
7
  import { SettingsIcon } from "../../../../icons/lucide-animated/settings.js";
7
8
  import "../../../../icons/lucide-animated/index.js";
@@ -29,6 +30,14 @@ const MAX_FONT_SIZE = 24;
29
30
  * Renders a settings gear icon that opens a popover with terminal
30
31
  * configuration options. Uses centralized tokens for all shared styles.
31
32
  *
33
+ * **Side-effect warning**: every mutation persists to `localStorage` via
34
+ * `useTerminalSettings` and propagates to ALL other consumers of the same
35
+ * hook in the running app (cross-component sync via `useSyncExternalStore`).
36
+ * Renderer / fontSize / CRT / debug switches are global, not scoped to
37
+ * the panel that hosts the popover. If a consumer wants per-panel
38
+ * settings, do not use this popover — drive the setting from a local
39
+ * prop instead.
40
+ *
32
41
  * @example
33
42
  * ```tsx
34
43
  * <TerminalSettingsPopover slots={{ trigger: 'h-10 w-10' }} />
@@ -66,21 +75,30 @@ function TerminalSettingsPopover({ slots } = {}) {
66
75
  }), /* @__PURE__ */ jsxs("div", {
67
76
  className: cn(terminalSettingsPopoverStyles.segmentedControl, slots?.segmentedControl),
68
77
  children: [
69
- /* @__PURE__ */ jsx("button", {
78
+ /* @__PURE__ */ jsx(Button, {
79
+ variant: "bare",
80
+ size: "bare",
70
81
  type: "button",
71
82
  onClick: () => setRenderer("xterm"),
83
+ "aria-pressed": settings.renderer === "xterm",
72
84
  className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.renderer === "xterm" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
73
85
  children: "xterm"
74
86
  }),
75
- /* @__PURE__ */ jsx("button", {
87
+ /* @__PURE__ */ jsx(Button, {
88
+ variant: "bare",
89
+ size: "bare",
76
90
  type: "button",
77
91
  onClick: () => setRenderer("restty"),
92
+ "aria-pressed": settings.renderer === "restty",
78
93
  className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.renderer === "restty" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
79
94
  children: "restty"
80
95
  }),
81
- /* @__PURE__ */ jsx("button", {
96
+ /* @__PURE__ */ jsx(Button, {
97
+ variant: "bare",
98
+ size: "bare",
82
99
  type: "button",
83
100
  onClick: () => setRenderer("wterm"),
101
+ "aria-pressed": settings.renderer === "wterm",
84
102
  className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.renderer === "wterm" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
85
103
  children: "wterm"
86
104
  })
@@ -105,14 +123,20 @@ function TerminalSettingsPopover({ slots } = {}) {
105
123
  children: "PTY Backend"
106
124
  }), /* @__PURE__ */ jsxs("div", {
107
125
  className: cn(terminalSettingsPopoverStyles.segmentedControl, slots?.segmentedControl),
108
- children: [/* @__PURE__ */ jsx("button", {
126
+ children: [/* @__PURE__ */ jsx(Button, {
127
+ variant: "bare",
128
+ size: "bare",
109
129
  type: "button",
110
130
  onClick: () => setPtyBackend("nodepty"),
131
+ "aria-pressed": settings.ptyBackend === "nodepty",
111
132
  className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.ptyBackend === "nodepty" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
112
133
  children: "nodepty"
113
- }), /* @__PURE__ */ jsx("button", {
134
+ }), /* @__PURE__ */ jsx(Button, {
135
+ variant: "bare",
136
+ size: "bare",
114
137
  type: "button",
115
138
  onClick: () => setPtyBackend("webcontainer"),
139
+ "aria-pressed": settings.ptyBackend === "webcontainer",
116
140
  className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.ptyBackend === "webcontainer" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
117
141
  children: "webcontainer"
118
142
  })]
@@ -127,27 +151,33 @@ function TerminalSettingsPopover({ slots } = {}) {
127
151
  }), /* @__PURE__ */ jsxs("div", {
128
152
  className: cn(terminalSettingsPopoverStyles.fontControls, slots?.fontControls),
129
153
  children: [
130
- /* @__PURE__ */ jsx("button", {
154
+ /* @__PURE__ */ jsx(Button, {
155
+ variant: "bare",
156
+ size: "bare",
131
157
  type: "button",
132
158
  onClick: () => setFontSize(settings.fontSize - 1),
133
159
  className: FONT_BUTTON_STYLES,
134
160
  disabled: settings.fontSize <= MIN_FONT_SIZE,
135
161
  title: "Decrease font size",
162
+ "aria-label": "Decrease font size",
136
163
  children: /* @__PURE__ */ jsx("span", {
137
164
  className: "text-sm font-bold",
138
165
  children: "−"
139
166
  })
140
167
  }),
141
- /* @__PURE__ */ jsx("span", {
142
- className: "text-sm font-mono text-foreground w-8 text-center",
168
+ /* @__PURE__ */ jsx("output", {
169
+ className: "text-sm font-mono text-foreground w-8 text-center [font-variant-numeric:tabular-nums]",
143
170
  children: settings.fontSize
144
171
  }),
145
- /* @__PURE__ */ jsx("button", {
172
+ /* @__PURE__ */ jsx(Button, {
173
+ variant: "bare",
174
+ size: "bare",
146
175
  type: "button",
147
176
  onClick: () => setFontSize(settings.fontSize + 1),
148
177
  className: FONT_BUTTON_STYLES,
149
178
  disabled: settings.fontSize >= MAX_FONT_SIZE,
150
179
  title: "Increase font size",
180
+ "aria-label": "Increase font size",
151
181
  children: /* @__PURE__ */ jsx("span", {
152
182
  className: "text-sm font-bold",
153
183
  children: "+"
@@ -171,9 +201,14 @@ function TerminalSettingsPopover({ slots } = {}) {
171
201
  children: [/* @__PURE__ */ jsx("span", {
172
202
  className: "text-xs text-muted-foreground",
173
203
  children: "Scanlines, bloom & vignette"
174
- }), /* @__PURE__ */ jsx("button", {
204
+ }), /* @__PURE__ */ jsx(Button, {
205
+ variant: "bare",
206
+ size: "bare",
175
207
  type: "button",
176
208
  onClick: () => setCrtEffect(!settings.crtEffect),
209
+ role: "switch",
210
+ "aria-checked": settings.crtEffect,
211
+ "aria-label": "Toggle CRT effect",
177
212
  className: cn(TOGGLE_SWITCH_STYLES.track.base, settings.crtEffect ? TOGGLE_SWITCH_STYLES.track.active : TOGGLE_SWITCH_STYLES.track.inactive),
178
213
  children: /* @__PURE__ */ jsx("span", { className: cn(TOGGLE_SWITCH_STYLES.thumb.base, settings.crtEffect ? TOGGLE_SWITCH_STYLES.thumb.active : TOGGLE_SWITCH_STYLES.thumb.inactive) })
179
214
  })]
@@ -190,9 +225,14 @@ function TerminalSettingsPopover({ slots } = {}) {
190
225
  children: [/* @__PURE__ */ jsx("span", {
191
226
  className: "text-xs text-muted-foreground",
192
227
  children: "GPU, FPS, grid & connection info"
193
- }), /* @__PURE__ */ jsx("button", {
228
+ }), /* @__PURE__ */ jsx(Button, {
229
+ variant: "bare",
230
+ size: "bare",
194
231
  type: "button",
195
232
  onClick: () => setDebugPanel(!settings.debugPanel),
233
+ role: "switch",
234
+ "aria-checked": settings.debugPanel,
235
+ "aria-label": "Toggle debug panel",
196
236
  className: cn(TOGGLE_SWITCH_STYLES.track.base, settings.debugPanel ? TOGGLE_SWITCH_STYLES.track.active : TOGGLE_SWITCH_STYLES.track.inactive),
197
237
  children: /* @__PURE__ */ jsx("span", { className: cn(TOGGLE_SWITCH_STYLES.thumb.base, settings.debugPanel ? TOGGLE_SWITCH_STYLES.thumb.active : TOGGLE_SWITCH_STYLES.thumb.inactive) })
198
238
  })]
@@ -201,7 +241,9 @@ function TerminalSettingsPopover({ slots } = {}) {
201
241
  /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
202
242
  /* @__PURE__ */ jsx("div", {
203
243
  className: "px-4 py-3",
204
- children: /* @__PURE__ */ jsx("button", {
244
+ children: /* @__PURE__ */ jsx(Button, {
245
+ variant: "bare",
246
+ size: "bare",
205
247
  type: "button",
206
248
  onClick: resetToDefaults,
207
249
  className: cn(terminalSettingsPopoverStyles.resetButton, slots?.resetButton),
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ResttyRenderer Component.
3
+ *
4
+ * Chrome-less restty renderer for maximum composability.
5
+ * Wraps @mks2508/restty ResttyTerminal component without any chrome,
6
+ * toolbar, or status bar. Use this when you want to build your own
7
+ * terminal shell or embed in custom layouts.
8
+ *
9
+ * Lazy-loads @mks2508/restty on first render. Returns null if
10
+ * the peer dependency is not installed.
11
+ *
12
+ * @module components/devenv/terminal/renderers/restty
13
+ */
14
+ import type { ITerminalRendererProps, ITerminalRendererRef } from './types';
15
+ /**
16
+ * ResttyRenderer Component.
17
+ *
18
+ * Chrome-less restty renderer. Provides:
19
+ * - @mks2508/restty ResttyTerminal with WebGPU/WebGL2 rendering
20
+ * - Auto-resize on container resize
21
+ * - Font size from useTerminalSettings context (override via props)
22
+ * - Ref forwarding with focus, write, clear, resize methods
23
+ * - Lazy-loading with graceful fallback if @mks2508/restty is missing
24
+ *
25
+ * restty features:
26
+ * - GPU-accelerated rendering (WebGPU/WebGL2)
27
+ * - libghostty-vt WASM core (full VT100/VT220/xterm parser)
28
+ * - Built-in theme catalog (Dracula, Synthwave, etc.)
29
+ * - Multi-pane splits
30
+ * - Scrollback history
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * const termRef = useRef<ITerminalRendererRef>(null);
35
+ *
36
+ * <ResttyRenderer
37
+ * ref={termRef}
38
+ * sessionId="my-session"
39
+ * fontSize={16}
40
+ * resttyThemeName="Dracula"
41
+ * onReady={() => console.log('Terminal ready')}
42
+ * className="h-[600px]"
43
+ * />
44
+ * ```
45
+ */
46
+ export declare const ResttyRenderer: import("react").ForwardRefExoticComponent<ITerminalRendererProps & {
47
+ /** Restty built-in theme name (default: from useTerminalSettings) */
48
+ readonly resttyThemeName?: string;
49
+ /** GPU renderer preference (default: "auto") */
50
+ readonly gpuRenderer?: "auto" | "webgpu" | "webgl2";
51
+ } & import("react").RefAttributes<ITerminalRendererRef>>;
52
+ //# sourceMappingURL=ResttyRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResttyRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/renderers/ResttyRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAyC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc;IAGvB,qEAAqE;+BAC1C,MAAM;IAEjC,gDAAgD;2BACzB,MAAM,GAAG,QAAQ,GAAG,QAAQ;wDAuHtD,CAAC"}