termcast 1.3.35 → 1.3.37

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 (44) hide show
  1. package/dist/components/detail.d.ts.map +1 -1
  2. package/dist/components/detail.js +12 -2
  3. package/dist/components/detail.js.map +1 -1
  4. package/dist/components/list.d.ts.map +1 -1
  5. package/dist/components/list.js +11 -2
  6. package/dist/components/list.js.map +1 -1
  7. package/dist/diagram-parser.d.ts +34 -0
  8. package/dist/diagram-parser.d.ts.map +1 -0
  9. package/dist/diagram-parser.js +114 -0
  10. package/dist/diagram-parser.js.map +1 -0
  11. package/dist/examples/simple-detail-markdown.d.ts +2 -0
  12. package/dist/examples/simple-detail-markdown.d.ts.map +1 -0
  13. package/dist/examples/simple-detail-markdown.js +94 -0
  14. package/dist/examples/simple-detail-markdown.js.map +1 -0
  15. package/dist/internal/scrollbox.d.ts.map +1 -1
  16. package/dist/internal/scrollbox.js +1 -2
  17. package/dist/internal/scrollbox.js.map +1 -1
  18. package/dist/markdown-utils.d.ts +14 -0
  19. package/dist/markdown-utils.d.ts.map +1 -0
  20. package/dist/markdown-utils.js +138 -0
  21. package/dist/markdown-utils.js.map +1 -0
  22. package/dist/theme.d.ts.map +1 -1
  23. package/dist/theme.js +5 -24
  24. package/dist/theme.js.map +1 -1
  25. package/dist/themes/termcast.json +4 -4
  26. package/dist/themes.d.ts +12 -0
  27. package/dist/themes.d.ts.map +1 -1
  28. package/dist/themes.js +79 -0
  29. package/dist/themes.js.map +1 -1
  30. package/package.json +7 -4
  31. package/src/components/detail.tsx +16 -2
  32. package/src/components/list.tsx +15 -2
  33. package/src/diagram-parser.tsx +141 -0
  34. package/src/examples/list-with-detail.vitest.tsx +34 -34
  35. package/src/examples/list-with-sections.vitest.tsx +1 -1
  36. package/src/examples/simple-detail-markdown.tsx +96 -0
  37. package/src/examples/simple-detail-markdown.vitest.tsx +156 -0
  38. package/src/examples/simple-grid.vitest.tsx +2 -2
  39. package/src/examples/swift-extension.vitest.tsx +1 -1
  40. package/src/internal/scrollbox.tsx +1 -3
  41. package/src/markdown-utils.tsx +182 -0
  42. package/src/theme.tsx +5 -24
  43. package/src/themes/termcast.json +4 -4
  44. package/src/themes.ts +98 -0
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
+ // Example: Detail view with markdown content including a diagram code block.
3
+ // Tests that the <markdown> element properly renders headings, prose,
4
+ // code blocks, and diagram content.
5
+ import { Detail } from 'termcast';
6
+ import { renderWithProviders } from '../utils';
7
+ const markdown = `# Architecture Overview
8
+
9
+ This document describes the system architecture.
10
+
11
+ ## Components
12
+
13
+ The system has three main components:
14
+
15
+ - **Client** - handles user interaction
16
+ - **Server** - processes requests
17
+ - **Database** - stores data
18
+
19
+ ## Links
20
+
21
+ Check out the [GitHub repository](https://github.com/remorses/termcast) for the source code.
22
+
23
+ See the [API documentation](https://developers.raycast.com/api-reference) for more details.
24
+
25
+ A paragraph with [multiple](https://example.com/one) links [inline](https://example.com/two) here.
26
+
27
+ Nested formatting: **bold with [link inside](https://example.com/bold)** and *italic with [link](https://example.com/italic)*.
28
+
29
+ ## Configuration Table
30
+
31
+ | Setting | Default | Description |
32
+ |---------|---------|-------------|
33
+ | Host | localhost | Database host address |
34
+ | Port | 5432 | Database port number |
35
+ | SSL | false | Enable TLS encryption |
36
+ | Pool Size | 10 | Max connections |
37
+
38
+ ## Flow Diagram
39
+
40
+ \`\`\`diagram
41
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
42
+ │ Client │────▶│ Server │────▶│ Database │
43
+ └─────────────┘ └─────────────┘ └─────────────┘
44
+ \`\`\`
45
+
46
+ ## Vertical Flow
47
+
48
+ \`\`\`diagram
49
+ ┌─────────┐
50
+ │ Start │
51
+ └────┬────┘
52
+
53
+
54
+ ┌─────────┐
55
+ │ Process │
56
+ └────┬────┘
57
+
58
+
59
+ ┌─────────┐
60
+ │ End │
61
+ └─────────┘
62
+ \`\`\`
63
+
64
+ ## Code Example
65
+
66
+ \`\`\`typescript
67
+ interface Config {
68
+ host: string
69
+ port: number
70
+ ssl: boolean
71
+ }
72
+
73
+ async function connect(config: Config): Promise<Connection> {
74
+ const validated = validate(config)
75
+ return db.connect(validated)
76
+ }
77
+ \`\`\`
78
+
79
+ ## Task List
80
+
81
+ - [x] Design system architecture
82
+ - [x] Implement core components
83
+ - [ ] Add monitoring
84
+ - [ ] Deploy to production
85
+
86
+ > **Note:** All connections use TLS encryption in production.
87
+
88
+ The system handles ~10k requests/second. For more info visit [the docs](https://termcast.app).
89
+ `;
90
+ function SimpleDetailMarkdown() {
91
+ return _jsx(Detail, { markdown: markdown });
92
+ }
93
+ renderWithProviders(_jsx(SimpleDetailMarkdown, {}));
94
+ //# sourceMappingURL=simple-detail-markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-detail-markdown.js","sourceRoot":"","sources":["../../src/examples/simple-detail-markdown.tsx"],"names":[],"mappings":";AAAA,6EAA6E;AAC7E,sEAAsE;AACtE,oCAAoC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFhB,CAAA;AAED,SAAS,oBAAoB;IAC3B,OAAO,KAAC,MAAM,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAA;AACvC,CAAC;AAED,mBAAmB,CAAC,KAAC,oBAAoB,KAAG,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbox.d.ts","sourceRoot":"","sources":["../../src/internal/scrollbox.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAe,EACf,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,GAAG,GAAG,CA+CtB"}
1
+ {"version":3,"file":"scrollbox.d.ts","sourceRoot":"","sources":["../../src/internal/scrollbox.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAe,EACf,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,GAAG,GAAG,CA6CtB"}
@@ -23,8 +23,7 @@ export function ScrollBox({ children, focused = false, flexGrow, flexShrink, sty
23
23
  // visible: true,
24
24
  // showArrows: true,
25
25
  trackOptions: {
26
- foregroundColor: theme.textMuted,
27
- // backgroundColor: '#414868',
26
+ foregroundColor: theme.border,
28
27
  },
29
28
  ...(style?.scrollbarOptions || {}),
30
29
  },
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbox.js","sourceRoot":"","sources":["../../src/internal/scrollbox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIhD,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACO;IACf,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,OAAO,CACL,oBACE,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,IAAI,gBAAgB,EAAE,EAC1C,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE;YACL,WAAW,EAAE;gBACX,8BAA8B;gBAC9B,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC;aAC9B;YACD,eAAe,EAAE;gBACf,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBAEf,GAAG,CAAC,KAAK,EAAE,eAAe,IAAI,EAAE,CAAC;aAClC;YACD,cAAc,EAAE;gBACd,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,EAAE,wCAAwC;gBACtD,GAAG,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC;aACjC;YACD,gBAAgB,EAAE;gBAChB,iBAAiB;gBACjB,oBAAoB;gBACpB,YAAY,EAAE;oBACZ,eAAe,EAAE,KAAK,CAAC,SAAS;oBAEhC,8BAA8B;iBAC/B;gBACD,GAAG,CAAC,KAAK,EAAE,gBAAgB,IAAI,EAAE,CAAC;aACnC;YACD,0BAA0B,EAAE;gBAC1B,OAAO,EAAE,KAAK;gBACd,GAAG,CAAC,KAAK,EAAE,0BAA0B,IAAI,EAAE,CAAC;aAC7C;SACF,KACG,KAAK,YAER,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"scrollbox.js","sourceRoot":"","sources":["../../src/internal/scrollbox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIhD,MAAM,UAAU,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACO;IACf,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,OAAO,CACL,oBACE,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,IAAI,gBAAgB,EAAE,EAC1C,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE;YACL,WAAW,EAAE;gBACX,8BAA8B;gBAC9B,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC;aAC9B;YACD,eAAe,EAAE;gBACf,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBAEf,GAAG,CAAC,KAAK,EAAE,eAAe,IAAI,EAAE,CAAC;aAClC;YACD,cAAc,EAAE;gBACd,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,EAAE,wCAAwC;gBACtD,GAAG,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC;aACjC;YACD,gBAAgB,EAAE;gBAChB,iBAAiB;gBACjB,oBAAoB;gBACpB,YAAY,EAAE;oBACZ,eAAe,EAAE,KAAK,CAAC,MAAM;iBAC9B;gBACD,GAAG,CAAC,KAAK,EAAE,gBAAgB,IAAI,EAAE,CAAC;aACnC;YACD,0BAA0B,EAAE;gBAC1B,OAAO,EAAE,KAAK;gBACd,GAAG,CAAC,KAAK,EAAE,0BAA0B,IAAI,EAAE,CAAC;aAC7C;SACF,KACG,KAAK,YAER,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type Renderable, type RenderContext } from '@opentui/core';
2
+ interface Token {
3
+ type: string;
4
+ text?: string;
5
+ raw?: string;
6
+ href?: string;
7
+ tokens?: Token[];
8
+ }
9
+ interface RenderNodeContext {
10
+ defaultRender: () => Renderable | null;
11
+ }
12
+ export declare function createMarkdownRenderNode(renderer: RenderContext): (token: Token, context: RenderNodeContext) => Renderable | undefined;
13
+ export {};
14
+ //# sourceMappingURL=markdown-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../src/markdown-utils.tsx"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,eAAe,CAAA;AAKtB,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;CACjB;AAGD,UAAU,iBAAiB;IACzB,aAAa,EAAE,MAAM,UAAU,GAAG,IAAI,CAAA;CACvC;AAgHD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,KAAK,UAAU,GAAG,SAAS,CAiCtI"}
@@ -0,0 +1,138 @@
1
+ // Markdown renderNode hook for terminal rendering.
2
+ // Overrides paragraph rendering to hide URLs from links,
3
+ // showing only the link title text with distinct cyan color and underline.
4
+ // Uses opentui's renderNode callback on the <markdown> element.
5
+ //
6
+ // Link text gets TextChunk.link = { url } which encodes as OSC 8 terminal
7
+ // hyperlinks when the terminal supports it. Supported terminals include:
8
+ // - Ghostty, kitty, WezTerm, Alacritty, iTerm2
9
+ // In these terminals, links are clickable natively (cmd+click or hover).
10
+ // In unsupported terminals, links still display with distinct color/underline
11
+ // but won't be clickable.
12
+ import { TextRenderable, StyledText, parseColor, createTextAttributes, } from '@opentui/core';
13
+ import { getResolvedTheme } from './themes';
14
+ import { useStore } from './state';
15
+ // Recursively check if a token or any of its children contain link tokens
16
+ function hasLinks(token) {
17
+ if (!Array.isArray(token.tokens)) {
18
+ return false;
19
+ }
20
+ return token.tokens.some((t) => {
21
+ return t.type === 'link' || hasLinks(t);
22
+ });
23
+ }
24
+ // Recursively flatten inline tokens into chunks, stripping link URLs.
25
+ // Handles nested structures like **[link](url)** or *[link](url)*.
26
+ function flattenInlineTokens({ tokens, chunks, links, primaryColor, linkColor, textColor, defaultAttr, }) {
27
+ for (const token of tokens) {
28
+ if (token.type === 'link') {
29
+ links.push({ text: token.text || '', href: token.href || '' });
30
+ // Render link title only with distinct link color, underline, and OSC 8 terminal hyperlink
31
+ const linkAttr = createTextAttributes({ underline: true });
32
+ chunks.push({
33
+ __isChunk: true,
34
+ text: token.text || '',
35
+ fg: linkColor,
36
+ attributes: linkAttr,
37
+ link: { url: token.href || '' },
38
+ });
39
+ }
40
+ else if (token.type === 'strong') {
41
+ const boldAttr = createTextAttributes({ bold: true });
42
+ // Recurse into strong children to handle nested links like **[link](url)**
43
+ flattenInlineTokens({
44
+ tokens: token.tokens || [],
45
+ chunks,
46
+ links,
47
+ primaryColor,
48
+ linkColor,
49
+ textColor,
50
+ defaultAttr: boldAttr,
51
+ });
52
+ }
53
+ else if (token.type === 'em') {
54
+ const italicAttr = createTextAttributes({ italic: true });
55
+ // Recurse into em children to handle nested links like *[link](url)*
56
+ flattenInlineTokens({
57
+ tokens: token.tokens || [],
58
+ chunks,
59
+ links,
60
+ primaryColor,
61
+ linkColor,
62
+ textColor,
63
+ defaultAttr: italicAttr,
64
+ });
65
+ }
66
+ else if (token.type === 'del') {
67
+ const strikeAttr = createTextAttributes({ strikethrough: true });
68
+ flattenInlineTokens({
69
+ tokens: token.tokens || [],
70
+ chunks,
71
+ links,
72
+ primaryColor,
73
+ linkColor,
74
+ textColor,
75
+ defaultAttr: strikeAttr,
76
+ });
77
+ }
78
+ else if (token.type === 'codespan') {
79
+ chunks.push({
80
+ __isChunk: true,
81
+ text: token.text || '',
82
+ fg: primaryColor,
83
+ attributes: defaultAttr,
84
+ });
85
+ }
86
+ else if (token.type === 'br') {
87
+ chunks.push({
88
+ __isChunk: true,
89
+ text: '\n',
90
+ fg: textColor,
91
+ });
92
+ }
93
+ else {
94
+ // text, escape, etc.
95
+ chunks.push({
96
+ __isChunk: true,
97
+ text: token.text ?? token.raw ?? '',
98
+ fg: textColor,
99
+ attributes: defaultAttr,
100
+ });
101
+ }
102
+ }
103
+ }
104
+ // Create a renderNode function that overrides paragraph rendering
105
+ // to hide link URLs and make link text bold + bright.
106
+ // Links get OSC 8 terminal hyperlinks via TextChunk.link so terminals
107
+ // can handle click-to-open natively (cmd+click in iTerm2, kitty, Ghostty).
108
+ export function createMarkdownRenderNode(renderer) {
109
+ let nodeCounter = 0;
110
+ return (token, context) => {
111
+ // Only override paragraphs that contain links (including nested)
112
+ if (token.type !== 'paragraph' || !hasLinks(token)) {
113
+ return undefined; // use default rendering
114
+ }
115
+ const themeName = useStore.getState().currentThemeName;
116
+ const theme = getResolvedTheme(themeName);
117
+ const primaryColor = parseColor(theme.primary);
118
+ const linkColor = parseColor(theme.markdownLinkText);
119
+ const textColor = parseColor(theme.text);
120
+ const chunks = [];
121
+ const links = [];
122
+ flattenInlineTokens({
123
+ tokens: token.tokens || [],
124
+ chunks,
125
+ links,
126
+ primaryColor,
127
+ linkColor,
128
+ textColor,
129
+ });
130
+ return new TextRenderable(renderer, {
131
+ id: `para-links-${nodeCounter++}`,
132
+ content: new StyledText(chunks),
133
+ width: '100%',
134
+ marginBottom: 1,
135
+ });
136
+ };
137
+ }
138
+ //# sourceMappingURL=markdown-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-utils.js","sourceRoot":"","sources":["../src/markdown-utils.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAQ,MAAM,eAAe,CAAA;AACjD,OAAO,EAAoB,KAAK,aAAa,EAAgC,MAAM,UAAU,CAAA;AAoB7F,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM/C;AAGD,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAGD,wBAAgB,QAAQ,IAAI,aAAa,CAGxC;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CAwBpD;AAID,eAAO,MAAM,mBAAmB,aAI9B,CAAA"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAoC,KAAK,aAAa,EAAgC,MAAM,UAAU,CAAA;AAoB7G,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAM/C;AAGD,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAGD,wBAAgB,QAAQ,IAAI,aAAa,CAGxC;AAID,wBAAgB,sBAAsB,IAAI,WAAW,CAGpD;AAID,eAAO,MAAM,mBAAmB,aAI9B,CAAA"}
package/dist/theme.js CHANGED
@@ -1,5 +1,5 @@
1
- import { SyntaxStyle, RGBA } from '@opentui/core';
2
- import { getResolvedTheme, defaultThemeName, themeNames } from './themes';
1
+ import { SyntaxStyle } from '@opentui/core';
2
+ import { getResolvedTheme, getSyntaxTheme, defaultThemeName, themeNames } from './themes';
3
3
  import { useStore } from './state';
4
4
  import { Cache } from './apis/cache';
5
5
  // Global cache for theme persistence (no namespace = global storage).
@@ -45,30 +45,11 @@ export function useTheme() {
45
45
  const themeName = useStore((state) => state.currentThemeName);
46
46
  return getResolvedTheme(themeName);
47
47
  }
48
+ // Returns a full SyntaxStyle with all code + markdown scopes.
49
+ // Code blocks inside markdown get proper syntax highlighting (keywords, strings, etc.)
48
50
  export function getMarkdownSyntaxStyle() {
49
51
  const themeName = useStore.getState().currentThemeName;
50
- const t = getResolvedTheme(themeName);
51
- return SyntaxStyle.fromStyles({
52
- default: { fg: RGBA.fromHex(t.markdownText) },
53
- 'markup.heading.1': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
54
- 'markup.heading.2': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
55
- 'markup.heading.3': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
56
- 'markup.heading.4': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
57
- 'markup.heading.5': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
58
- 'markup.heading.6': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
59
- 'markup.heading': { fg: RGBA.fromHex(t.markdownHeading), bold: true },
60
- 'markup.raw.block': { fg: RGBA.fromHex(t.markdownCode) },
61
- 'markup.link.url': { fg: RGBA.fromHex(t.markdownLink) },
62
- 'markup.link.label': { fg: RGBA.fromHex(t.markdownLinkText) },
63
- 'markup.list': { fg: RGBA.fromHex(t.markdownListItem) },
64
- 'markup.list.checked': { fg: RGBA.fromHex(t.success) },
65
- 'markup.list.unchecked': { fg: RGBA.fromHex(t.textMuted) },
66
- 'markup.quote': { fg: RGBA.fromHex(t.markdownBlockQuote), italic: true },
67
- 'punctuation.special': { fg: RGBA.fromHex(t.syntaxPunctuation) },
68
- 'punctuation.delimiter': { fg: RGBA.fromHex(t.syntaxPunctuation) },
69
- 'string.escape': { fg: RGBA.fromHex(t.syntaxString) },
70
- label: { fg: RGBA.fromHex(t.accent) },
71
- });
52
+ return SyntaxStyle.fromStyles(getSyntaxTheme(themeName));
72
53
  }
73
54
  // For backward compatibility - some code imports markdownSyntaxStyle directly
74
55
  // This is a getter that returns the current theme's syntax style
package/dist/theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,sEAAsE;AACtE,sEAAsE;AACtE,IAAI,WAAW,GAAiB,IAAI,CAAA;AACpC,IAAI,eAAe,GAAkB,IAAI,CAAA;AAEzC,SAAS,cAAc;IACrB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAA;IACrD,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;QACpD,WAAW,GAAG,IAAI,KAAK,EAAE,CAAA;QACzB,eAAe,GAAG,WAAW,CAAA;IAC/B,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAA;AAE1C,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACtD,IAAI,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,cAAc,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,QAAQ;IACtB,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAC7D,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAA;AACpC,CAAC;AAED,8DAA8D;AAC9D,uFAAuF;AACvF,MAAM,UAAU,sBAAsB;IACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAA;IACtD,OAAO,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED,8EAA8E;AAC9E,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,KAAK,CAAC,EAAiB,EAAE;IAC9D,GAAG,CAAC,CAAC,EAAE,IAAY;QACjB,OAAO,sBAAsB,EAAE,CAAC,IAAyB,CAAC,CAAA;IAC5D,CAAC;CACF,CAAC,CAAA"}
@@ -139,12 +139,12 @@
139
139
  "light": "darkStep9"
140
140
  },
141
141
  "markdownLink": {
142
- "dark": "darkStep9",
143
- "light": "darkStep9"
142
+ "dark": "darkCyan",
143
+ "light": "darkCyan"
144
144
  },
145
145
  "markdownLinkText": {
146
- "dark": "darkStep9",
147
- "light": "darkStep9"
146
+ "dark": "darkCyan",
147
+ "light": "darkCyan"
148
148
  },
149
149
  "markdownCode": {
150
150
  "dark": "darkStep9",
package/dist/themes.d.ts CHANGED
@@ -1,6 +1,8 @@
1
+ import { RGBA } from '@opentui/core';
1
2
  export interface ResolvedTheme {
2
3
  text: string;
3
4
  textMuted: string;
5
+ conceal: string;
4
6
  background: string;
5
7
  backgroundPanel: string;
6
8
  backgroundElement: string;
@@ -51,7 +53,17 @@ export interface ResolvedTheme {
51
53
  syntaxPunctuation: string;
52
54
  transparent: undefined;
53
55
  }
56
+ export interface SyntaxThemeStyle {
57
+ fg: RGBA;
58
+ bold?: boolean;
59
+ italic?: boolean;
60
+ underline?: boolean;
61
+ }
62
+ export interface SyntaxTheme {
63
+ [key: string]: SyntaxThemeStyle;
64
+ }
54
65
  export declare function getResolvedTheme(name: string, mode?: 'dark' | 'light'): ResolvedTheme;
66
+ export declare function getSyntaxTheme(name: string, mode?: 'dark' | 'light'): SyntaxTheme;
55
67
  export declare const themeNames: string[];
56
68
  export declare const defaultThemeName = "termcast";
57
69
  //# sourceMappingURL=themes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"AAqDA,MAAM,WAAW,aAAa;IAE5B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IAGjB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IAGd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IAGb,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IAGpB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,uBAAuB,EAAE,MAAM,CAAA;IAG/B,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,WAAW,EAAE,SAAS,CAAA;CACvB;AA8JD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,OAAgB,GAC9B,aAAa,CAGf;AAED,eAAO,MAAM,UAAU,UAAqC,CAAA;AAE5D,eAAO,MAAM,gBAAgB,aAAa,CAAA"}
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,IAAI,EAAE,MAAM,eAAe,CAAA;AAkDhD,MAAM,WAAW,aAAa;IAE5B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAGf,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IAGd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IAGb,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IAGpB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,uBAAuB,EAAE,MAAM,CAAA;IAG/B,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IAGzB,WAAW,EAAE,SAAS,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAChC;AA+JD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,OAAgB,GAC9B,aAAa,CAGf;AAID,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAM,GAAG,OAAgB,GAC9B,WAAW,CA8Eb;AAED,eAAO,MAAM,UAAU,UAAqC,CAAA;AAE5D,eAAO,MAAM,gBAAgB,aAAa,CAAA"}
package/dist/themes.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // Theme resolver for termcast
2
2
  // Adapted from https://github.com/sst/opencode
3
+ import { parseColor } from '@opentui/core';
3
4
  import aura from './themes/aura.json';
4
5
  import ayu from './themes/ayu.json';
5
6
  import catppuccin from './themes/catppuccin.json';
@@ -113,6 +114,7 @@ function resolveTheme(themeJson, mode) {
113
114
  // Text
114
115
  text: resolveColorToHex(t.text ?? fallbackText),
115
116
  textMuted: resolveColorToHex(t.textMuted ?? fallbackGray),
117
+ conceal: resolveColorToHex(t.conceal ?? t.textMuted ?? fallbackGray),
116
118
  // Background
117
119
  background: resolveColorToHex(t.background ?? fallbackBg),
118
120
  backgroundPanel: resolveColorToHex(t.backgroundPanel ?? fallbackBg),
@@ -176,6 +178,83 @@ export function getResolvedTheme(name, mode = 'dark') {
176
178
  const themeJson = DEFAULT_THEMES[name] ?? DEFAULT_THEMES.termcast;
177
179
  return resolveTheme(themeJson, mode);
178
180
  }
181
+ // Full syntax theme with tree-sitter scope names for both code and markdown.
182
+ // Ported from critique's getSyntaxTheme() for consistent rendering.
183
+ export function getSyntaxTheme(name, mode = 'dark') {
184
+ const resolved = getResolvedTheme(name, mode);
185
+ const h = (hex) => {
186
+ return parseColor(hex);
187
+ };
188
+ return {
189
+ // Default text style
190
+ default: { fg: h(resolved.text) },
191
+ // Code syntax styles
192
+ keyword: { fg: h(resolved.syntaxKeyword), italic: true },
193
+ 'keyword.import': { fg: h(resolved.syntaxKeyword) },
194
+ 'keyword.return': { fg: h(resolved.syntaxKeyword), italic: true },
195
+ 'keyword.conditional': { fg: h(resolved.syntaxKeyword), italic: true },
196
+ 'keyword.repeat': { fg: h(resolved.syntaxKeyword), italic: true },
197
+ 'keyword.type': { fg: h(resolved.syntaxType), bold: true, italic: true },
198
+ 'keyword.function': { fg: h(resolved.syntaxFunction) },
199
+ 'keyword.operator': { fg: h(resolved.syntaxOperator) },
200
+ 'keyword.modifier': { fg: h(resolved.syntaxKeyword), italic: true },
201
+ 'keyword.exception': { fg: h(resolved.syntaxKeyword), italic: true },
202
+ string: { fg: h(resolved.syntaxString) },
203
+ symbol: { fg: h(resolved.syntaxString) },
204
+ comment: { fg: h(resolved.syntaxComment), italic: true },
205
+ 'comment.documentation': { fg: h(resolved.syntaxComment), italic: true },
206
+ number: { fg: h(resolved.syntaxNumber) },
207
+ boolean: { fg: h(resolved.syntaxNumber) },
208
+ constant: { fg: h(resolved.syntaxNumber) },
209
+ function: { fg: h(resolved.syntaxFunction) },
210
+ 'function.call': { fg: h(resolved.syntaxFunction) },
211
+ 'function.method': { fg: h(resolved.syntaxFunction) },
212
+ 'function.method.call': { fg: h(resolved.syntaxVariable) },
213
+ constructor: { fg: h(resolved.syntaxFunction) },
214
+ type: { fg: h(resolved.syntaxType) },
215
+ module: { fg: h(resolved.syntaxType) },
216
+ class: { fg: h(resolved.syntaxType) },
217
+ operator: { fg: h(resolved.syntaxOperator) },
218
+ variable: { fg: h(resolved.syntaxVariable) },
219
+ 'variable.parameter': { fg: h(resolved.syntaxVariable) },
220
+ 'variable.member': { fg: h(resolved.syntaxFunction) },
221
+ property: { fg: h(resolved.syntaxVariable) },
222
+ parameter: { fg: h(resolved.syntaxVariable) },
223
+ bracket: { fg: h(resolved.syntaxPunctuation) },
224
+ punctuation: { fg: h(resolved.syntaxPunctuation) },
225
+ 'punctuation.bracket': { fg: h(resolved.syntaxPunctuation) },
226
+ 'punctuation.delimiter': { fg: h(resolved.syntaxOperator) },
227
+ 'punctuation.special': { fg: h(resolved.syntaxOperator) },
228
+ // Markdown styles - tree-sitter scope names for markdown
229
+ 'markup.heading': { fg: h(resolved.markdownHeading), bold: true },
230
+ 'markup.heading.1': { fg: h(resolved.markdownHeading), bold: true },
231
+ 'markup.heading.2': { fg: h(resolved.markdownHeading), bold: true },
232
+ 'markup.heading.3': { fg: h(resolved.markdownHeading), bold: true },
233
+ 'markup.heading.4': { fg: h(resolved.markdownHeading), bold: true },
234
+ 'markup.heading.5': { fg: h(resolved.markdownHeading), bold: true },
235
+ 'markup.heading.6': { fg: h(resolved.markdownHeading), bold: true },
236
+ 'markup.bold': { fg: h(resolved.markdownStrong), bold: true },
237
+ 'markup.strong': { fg: h(resolved.markdownStrong), bold: true },
238
+ 'markup.italic': { fg: h(resolved.markdownEmph), italic: true },
239
+ 'markup.list': { fg: h(resolved.markdownListItem) },
240
+ 'markup.list.checked': { fg: h(resolved.success) },
241
+ 'markup.list.unchecked': { fg: h(resolved.textMuted) },
242
+ 'markup.quote': { fg: h(resolved.markdownBlockQuote), italic: true },
243
+ 'markup.raw': { fg: h(resolved.markdownCode) },
244
+ 'markup.raw.block': { fg: h(resolved.markdownCode) },
245
+ 'markup.raw.inline': { fg: h(resolved.markdownCode) },
246
+ 'markup.link': { fg: h(resolved.markdownLink), underline: true },
247
+ 'markup.link.label': { fg: h(resolved.markdownLinkText), underline: true },
248
+ 'markup.link.url': { fg: h(resolved.markdownLink), underline: true },
249
+ label: { fg: h(resolved.markdownLinkText) },
250
+ spell: { fg: h(resolved.text) },
251
+ nospell: { fg: h(resolved.text) },
252
+ conceal: { fg: h(resolved.conceal) },
253
+ 'string.special': { fg: h(resolved.markdownLink), underline: true },
254
+ 'string.special.url': { fg: h(resolved.markdownLink), underline: true },
255
+ 'string.escape': { fg: h(resolved.syntaxString) },
256
+ };
257
+ }
179
258
  export const themeNames = Object.keys(DEFAULT_THEMES).sort();
180
259
  export const defaultThemeName = 'termcast';
181
260
  //# sourceMappingURL=themes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "termcast",
3
- "version": "1.3.35",
3
+ "version": "1.3.37",
4
4
  "description": "Raycast for the terminal",
5
5
  "repository": "https://github.com/remorses/termcast",
6
6
  "types": "./dist/index.d.ts",
@@ -22,7 +22,10 @@
22
22
  "bun": "./src/index.tsx",
23
23
  "default": "./dist/index.js"
24
24
  },
25
- "./src/*": "./src/*.tsx"
25
+ "./src/*": {
26
+ "types": "./dist/*.d.ts",
27
+ "default": "./src/*.tsx"
28
+ }
26
29
  },
27
30
  "files": [
28
31
  "dist",
@@ -33,8 +36,8 @@
33
36
  "author": "Tommaso De Rossi, morse <beats.by.morse@gmail.com>",
34
37
  "license": "",
35
38
  "dependencies": {
36
- "@opentui/core": "^0.1.77",
37
- "@opentui/react": "^0.1.77",
39
+ "@opentui/core": "npm:@opentuah/core@^0.1.87",
40
+ "@opentui/react": "npm:@opentuah/react@^0.1.87",
38
41
  "@parcel/watcher": "^2.5.6",
39
42
  "@tanstack/react-query": "^5.85.5",
40
43
  "@tanstack/react-query-persist-client": "^5.85.5",
@@ -1,6 +1,6 @@
1
1
  import React, { ReactNode, useMemo, ReactElement } from 'react'
2
2
  import { TextAttributes } from '@opentui/core'
3
- import { useKeyboard, useTerminalDimensions } from '@opentui/react'
3
+ import { useKeyboard, useTerminalDimensions, useRenderer } from '@opentui/react'
4
4
  import { useTheme, markdownSyntaxStyle } from 'termcast/src/theme'
5
5
  import { InFocus, useIsInFocus } from 'termcast/src/internal/focus-context'
6
6
  import { ActionPanel, Action } from 'termcast/src/components/actions'
@@ -12,6 +12,7 @@ import { useStore } from 'termcast/src/state'
12
12
  import { Offscreen } from 'termcast/src/internal/offscreen'
13
13
  import { Metadata, MetadataContext } from 'termcast/src/components/metadata'
14
14
  import type { LabelProps, SeparatorProps, LinkProps, TagListProps, TagListItemProps, MetadataConfig } from 'termcast/src/components/metadata'
15
+ import { createMarkdownRenderNode } from 'termcast/src/markdown-utils'
15
16
 
16
17
  interface ActionsInterface {
17
18
  actions?: ReactNode
@@ -163,6 +164,19 @@ function getFirstActionTitle(actions: ReactNode): string | undefined {
163
164
  return firstTitle
164
165
  }
165
166
 
167
+ // Renders markdown with link URL stripping via renderNode.
168
+ // Links show only their title text (bold, primary) with click-to-open.
169
+ function MarkdownContent({ markdown }: { markdown: string }): any {
170
+ const renderer = useRenderer()
171
+ const renderNode = useMemo(() => {
172
+ return createMarkdownRenderNode(renderer)
173
+ }, [renderer])
174
+
175
+ return (
176
+ <markdown content={markdown} syntaxStyle={markdownSyntaxStyle} conceal renderNode={renderNode} />
177
+ )
178
+ }
179
+
166
180
  const Detail: DetailType = (props) => {
167
181
  const { actions } = props
168
182
  const dialog = useDialog()
@@ -206,7 +220,7 @@ const Detail: DetailType = (props) => {
206
220
  }}
207
221
  >
208
222
  {props.markdown && (
209
- <code content={props.markdown} conceal filetype="markdown" syntaxStyle={markdownSyntaxStyle} drawUnstyledText={false} />
223
+ <MarkdownContent markdown={props.markdown} />
210
224
  )}
211
225
  {props.metadata}
212
226
  </box>