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.
- package/dist/components/detail.d.ts.map +1 -1
- package/dist/components/detail.js +12 -2
- package/dist/components/detail.js.map +1 -1
- package/dist/components/list.d.ts.map +1 -1
- package/dist/components/list.js +11 -2
- package/dist/components/list.js.map +1 -1
- package/dist/diagram-parser.d.ts +34 -0
- package/dist/diagram-parser.d.ts.map +1 -0
- package/dist/diagram-parser.js +114 -0
- package/dist/diagram-parser.js.map +1 -0
- package/dist/examples/simple-detail-markdown.d.ts +2 -0
- package/dist/examples/simple-detail-markdown.d.ts.map +1 -0
- package/dist/examples/simple-detail-markdown.js +94 -0
- package/dist/examples/simple-detail-markdown.js.map +1 -0
- package/dist/internal/scrollbox.d.ts.map +1 -1
- package/dist/internal/scrollbox.js +1 -2
- package/dist/internal/scrollbox.js.map +1 -1
- package/dist/markdown-utils.d.ts +14 -0
- package/dist/markdown-utils.d.ts.map +1 -0
- package/dist/markdown-utils.js +138 -0
- package/dist/markdown-utils.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +5 -24
- package/dist/theme.js.map +1 -1
- package/dist/themes/termcast.json +4 -4
- package/dist/themes.d.ts +12 -0
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +79 -0
- package/dist/themes.js.map +1 -1
- package/package.json +7 -4
- package/src/components/detail.tsx +16 -2
- package/src/components/list.tsx +15 -2
- package/src/diagram-parser.tsx +141 -0
- package/src/examples/list-with-detail.vitest.tsx +34 -34
- package/src/examples/list-with-sections.vitest.tsx +1 -1
- package/src/examples/simple-detail-markdown.tsx +96 -0
- package/src/examples/simple-detail-markdown.vitest.tsx +156 -0
- package/src/examples/simple-grid.vitest.tsx +2 -2
- package/src/examples/swift-extension.vitest.tsx +1 -1
- package/src/internal/scrollbox.tsx +1 -3
- package/src/markdown-utils.tsx +182 -0
- package/src/theme.tsx +5 -24
- package/src/themes/termcast.json +4 -4
- 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,
|
|
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.
|
|
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,
|
|
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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"}
|
package/dist/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
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
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
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": "
|
|
143
|
-
"light": "
|
|
142
|
+
"dark": "darkCyan",
|
|
143
|
+
"light": "darkCyan"
|
|
144
144
|
},
|
|
145
145
|
"markdownLinkText": {
|
|
146
|
-
"dark": "
|
|
147
|
-
"light": "
|
|
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
|
package/dist/themes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"
|
|
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
|
package/dist/themes.js.map
CHANGED
|
@@ -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.
|
|
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/*":
|
|
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": "
|
|
37
|
-
"@opentui/react": "
|
|
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
|
-
<
|
|
223
|
+
<MarkdownContent markdown={props.markdown} />
|
|
210
224
|
)}
|
|
211
225
|
{props.metadata}
|
|
212
226
|
</box>
|