@corenel/ui-kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/host.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import { type ReactNode, type ComponentType } from 'react';
2
+ export interface CorenelBrand {
3
+ /** Short product name shown in the UI. */
4
+ name: string;
5
+ /** Full / marketing name. */
6
+ nameFull: string;
7
+ /** Home domain. */
8
+ domain: string;
9
+ /** Logo mark — a host swaps this to rebrand the editor. */
10
+ Logo: ComponentType<{
11
+ size?: number;
12
+ }>;
13
+ }
14
+ export interface CorenelHostValue {
15
+ brand: CorenelBrand;
16
+ }
17
+ /** Wrap a host's React tree to inject brand (and, later, theme/language/services)
18
+ * into Corenel components. Unset fields fall back to Corenel defaults. */
19
+ export declare function CorenelHostProvider({ brand, children }: {
20
+ brand?: Partial<CorenelBrand>;
21
+ children: ReactNode;
22
+ }): import("react").JSX.Element;
23
+ export declare function useCorenelHost(): CorenelHostValue;
24
+ /** The host-injected brand (name + logo), or Corenel's defaults. */
25
+ export declare function useBrand(): CorenelBrand;
26
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../host.tsx"],"names":[],"mappings":"AAOA,OAAO,EAA6B,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtF,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,EAAE,aAAa,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;CACrB;AAWD;0EAC0E;AAC1E,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAG9G;AAED,wBAAgB,cAAc,IAAI,gBAAgB,CAAoC;AAEtF,oEAAoE;AACpE,wBAAgB,QAAQ,IAAI,YAAY,CAA0C"}
package/dist/host.js ADDED
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* CorenelHost — the seam by which a host (prompd-web, Electron, mobile) injects
3
+ * its branding/theme/etc into Corenel's components instead of those components
4
+ * hardcoding it. The first injected concern is BRAND (name + logo) so a host can
5
+ * customize the logo and product name; theme, the editor language extension, and
6
+ * services follow as further fields on this provider. Corenel components read via
7
+ * the hooks; with no provider they fall back to Corenel's own defaults so the
8
+ * component library still works standalone. */
9
+ import { createContext, useContext } from 'react';
10
+ import { PMark } from './icons';
11
+ const DEFAULT_BRAND = {
12
+ name: 'Corenel',
13
+ nameFull: 'Prompd Corenel',
14
+ domain: 'corenel.ai',
15
+ Logo: PMark,
16
+ };
17
+ const HostContext = createContext({ brand: DEFAULT_BRAND });
18
+ /** Wrap a host's React tree to inject brand (and, later, theme/language/services)
19
+ * into Corenel components. Unset fields fall back to Corenel defaults. */
20
+ export function CorenelHostProvider({ brand, children }) {
21
+ const value = { brand: { ...DEFAULT_BRAND, ...brand } };
22
+ return _jsx(HostContext.Provider, { value: value, children: children });
23
+ }
24
+ export function useCorenelHost() { return useContext(HostContext); }
25
+ /** The host-injected brand (name + logo), or Corenel's defaults. */
26
+ export function useBrand() { return useContext(HostContext).brand; }
27
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../host.tsx"],"names":[],"mappings":";AAAA;;;;;;+CAM+C;AAC/C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAiBhC,MAAM,aAAa,GAAiB;IAClC,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,gBAAgB;IAC1B,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,WAAW,GAAG,aAAa,CAAmB,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;AAE9E;0EAC0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA0D;IAC7G,MAAM,KAAK,GAAqB,EAAE,KAAK,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;IAC1E,OAAO,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAwB,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,cAAc,KAAuB,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEtF,oEAAoE;AACpE,MAAM,UAAU,QAAQ,KAAmB,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -0,0 +1,75 @@
1
+ import React from 'react';
2
+ type IcoProps = {
3
+ size?: number;
4
+ fill?: string;
5
+ };
6
+ export declare const IcChevron: (p: IcoProps) => React.JSX.Element;
7
+ export declare const IcPlay: (p: IcoProps) => React.JSX.Element;
8
+ export declare const IcStop: (p: IcoProps) => React.JSX.Element;
9
+ export declare const IcCode: (p: IcoProps) => React.JSX.Element;
10
+ export declare const IcLayout: (p: IcoProps) => React.JSX.Element;
11
+ export declare const IcEye: (p: IcoProps) => React.JSX.Element;
12
+ export declare const IcSliders: (p: IcoProps) => React.JSX.Element;
13
+ export declare const IcGit: (p: IcoProps) => React.JSX.Element;
14
+ export declare const IcCopy: (p: IcoProps) => React.JSX.Element;
15
+ export declare const IcCheck: (p: IcoProps) => React.JSX.Element;
16
+ export declare const IcClock: (p: IcoProps) => React.JSX.Element;
17
+ export declare const IcZap: (p: IcoProps) => React.JSX.Element;
18
+ export declare const IcAlert: (p: IcoProps) => React.JSX.Element;
19
+ export declare const IcTrash: (p: IcoProps) => React.JSX.Element;
20
+ export declare const IcArrow: (p: IcoProps) => React.JSX.Element;
21
+ export declare const IcBuild: (p: IcoProps) => React.JSX.Element;
22
+ export declare const IcFolder: (p: IcoProps) => React.JSX.Element;
23
+ export declare const IcFolderOpen: (p: IcoProps) => React.JSX.Element;
24
+ export declare const IcFile: (p: IcoProps) => React.JSX.Element;
25
+ export declare const IcChevronRight: (p: IcoProps) => React.JSX.Element;
26
+ export declare const IcRefresh: (p: IcoProps) => React.JSX.Element;
27
+ export declare const IcUser: (p: IcoProps) => React.JSX.Element;
28
+ export declare const IcUsers: (p: IcoProps) => React.JSX.Element;
29
+ export declare const IcWrench: (p: IcoProps) => React.JSX.Element;
30
+ export declare const IcSearch: (p: IcoProps) => React.JSX.Element;
31
+ export declare const IcPackage: (p: IcoProps) => React.JSX.Element;
32
+ export declare const IcPlus: (p: IcoProps) => React.JSX.Element;
33
+ export declare const IcDownload: (p: IcoProps) => React.JSX.Element;
34
+ export declare const IcKey: (p: IcoProps) => React.JSX.Element;
35
+ export declare const IcSettings: (p: IcoProps) => React.JSX.Element;
36
+ export declare const IcHelp: (p: IcoProps) => React.JSX.Element;
37
+ export declare const IcX: (p: IcoProps) => React.JSX.Element;
38
+ export declare const IcFlask: (p: IcoProps) => React.JSX.Element;
39
+ export declare const IcShield: (p: IcoProps) => React.JSX.Element;
40
+ export declare const IcEyeOff: (p: IcoProps) => React.JSX.Element;
41
+ export declare const IcFileCode: (p: IcoProps) => React.JSX.Element;
42
+ export declare const IcFileText: (p: IcoProps) => React.JSX.Element;
43
+ export declare const IcFileJson: (p: IcoProps) => React.JSX.Element;
44
+ export declare const IcFileSheet: (p: IcoProps) => React.JSX.Element;
45
+ export declare const IcFileImage: (p: IcoProps) => React.JSX.Element;
46
+ export declare const IcFilePdf: (p: IcoProps) => React.JSX.Element;
47
+ export declare const IcFileArchive: (p: IcoProps) => React.JSX.Element;
48
+ export declare const IcFlow: (p: IcoProps) => React.JSX.Element;
49
+ export declare const IcFilePlus: (p: IcoProps) => React.JSX.Element;
50
+ export declare const IcFolderPlus: (p: IcoProps) => React.JSX.Element;
51
+ export declare const IcSave: (p: IcoProps) => React.JSX.Element;
52
+ export declare const IcCollapseAll: (p: IcoProps) => React.JSX.Element;
53
+ export declare const IcExpandAll: (p: IcoProps) => React.JSX.Element;
54
+ export declare const IcEdit: (p: IcoProps) => React.JSX.Element;
55
+ /** Branded thinking / loading indicator: the P-mark glyph spinning in place.
56
+ * One shared spinner for every "working…" state (agent thinking, prompt run,
57
+ * workflow run) so loading reads the same everywhere. Honors reduced-motion via
58
+ * the `.pmark-spin` rule. */
59
+ export declare function Spinner({ size, title }: {
60
+ size?: number;
61
+ title?: string;
62
+ }): React.JSX.Element;
63
+ export declare function PMark({ size, spin }: {
64
+ size?: number;
65
+ spin?: boolean;
66
+ }): React.JSX.Element;
67
+ /** Inline "live" cursor: the spinning P-mark, parked at the end of streaming text
68
+ * to signal an active connection (it keeps spinning between tokens, like a pulse).
69
+ * Render it only while a response is in flight — remove it on done/stop/disconnect
70
+ * and the signal disappears. */
71
+ export declare function LiveCursor({ size }: {
72
+ size?: number;
73
+ }): React.JSX.Element;
74
+ export {};
75
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../icons.tsx"],"names":[],"mappings":"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"}
package/dist/icons.js ADDED
@@ -0,0 +1,109 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef, useEffect } from 'react';
3
+ const Ico = ({ d, size = 16, fill }) => (_jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: fill || 'none', stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: d }));
4
+ export const IcChevron = (p) => _jsx(Ico, { ...p, d: _jsx("polyline", { points: "6 9 12 15 18 9" }) });
5
+ export const IcPlay = (p) => _jsx(Ico, { ...p, fill: "currentColor", d: _jsx("polygon", { points: "6 3 20 12 6 21 6 3", stroke: "none" }) });
6
+ export const IcStop = (p) => _jsx(Ico, { ...p, fill: "currentColor", d: _jsx("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2", stroke: "none" }) });
7
+ export const IcCode = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("polyline", { points: "16 18 22 12 16 6" }), _jsx("polyline", { points: "8 6 2 12 8 18" })] }) });
8
+ export const IcLayout = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2" }), _jsx("path", { d: "M3 9h18M9 21V9" })] }) });
9
+ export const IcEye = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }) });
10
+ export const IcSliders = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("line", { x1: "4", y1: "21", x2: "4", y2: "14" }), _jsx("line", { x1: "4", y1: "10", x2: "4", y2: "3" }), _jsx("line", { x1: "12", y1: "21", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "8", x2: "12", y2: "3" }), _jsx("line", { x1: "20", y1: "21", x2: "20", y2: "16" }), _jsx("line", { x1: "20", y1: "12", x2: "20", y2: "3" }), _jsx("line", { x1: "2", y1: "14", x2: "6", y2: "14" }), _jsx("line", { x1: "10", y1: "8", x2: "14", y2: "8" }), _jsx("line", { x1: "18", y1: "16", x2: "22", y2: "16" })] }) });
11
+ export const IcGit = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("line", { x1: "6", y1: "3", x2: "6", y2: "15" }), _jsx("circle", { cx: "18", cy: "6", r: "3" }), _jsx("circle", { cx: "6", cy: "18", r: "3" }), _jsx("path", { d: "M18 9a9 9 0 0 1-9 9" })] }) });
12
+ export const IcCopy = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }) });
13
+ export const IcCheck = (p) => _jsx(Ico, { ...p, d: _jsx("polyline", { points: "20 6 9 17 4 12" }) });
14
+ export const IcClock = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "9" }), _jsx("polyline", { points: "12 7 12 12 15 14" })] }) });
15
+ export const IcZap = (p) => _jsx(Ico, { ...p, fill: "currentColor", d: _jsx("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2", stroke: "none" }) });
16
+ export const IcAlert = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }) });
17
+ export const IcTrash = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("polyline", { points: "3 6 5 6 21 6" }), _jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })] }) });
18
+ export const IcArrow = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }), _jsx("polyline", { points: "12 5 19 12 12 19" })] }) });
19
+ export const IcBuild = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72Z" }), _jsx("path", { d: "m14 7 3 3" }), _jsx("path", { d: "M5 6v4" }), _jsx("path", { d: "M19 14v4" }), _jsx("path", { d: "M10 2v2" }), _jsx("path", { d: "M7 8H3" }), _jsx("path", { d: "M21 16h-4" }), _jsx("path", { d: "M11 3H9" })] }) });
20
+ export const IcFolder = (p) => _jsx(Ico, { ...p, d: _jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" }) });
21
+ export const IcFolderOpen = (p) => _jsx(Ico, { ...p, d: _jsx(_Fragment, { children: _jsx("path", { d: "m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2v2" }) }) });
22
+ export const IcFile = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("polyline", { points: "14 2 14 8 20 8" })] }) });
23
+ export const IcChevronRight = (p) => _jsx(Ico, { ...p, d: _jsx("polyline", { points: "9 18 15 12 9 6" }) });
24
+ export const IcRefresh = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("polyline", { points: "1 20 1 14 7 14" }), _jsx("path", { d: "M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15" })] }) });
25
+ export const IcUser = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" }), _jsx("circle", { cx: "12", cy: "7", r: "4" })] }) });
26
+ export const IcUsers = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }), _jsx("circle", { cx: "9", cy: "7", r: "4" }), _jsx("path", { d: "M22 21v-2a4 4 0 0 0-3-3.87" }), _jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })] }) });
27
+ export const IcWrench = (p) => _jsx(Ico, { ...p, d: _jsx("path", { d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" }) });
28
+ export const IcSearch = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" })] }) });
29
+ export const IcPackage = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "m7.5 4.27 9 5.15" }), _jsx("path", { d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z" }), _jsx("path", { d: "m3.3 7 8.7 5 8.7-5" }), _jsx("path", { d: "M12 22V12" })] }) });
30
+ export const IcPlus = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M5 12h14" }), _jsx("path", { d: "M12 5v14" })] }) });
31
+ export const IcDownload = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] }) });
32
+ export const IcKey = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" }), _jsx("path", { d: "m21 2-9.6 9.6" }), _jsx("circle", { cx: "7.5", cy: "15.5", r: "5.5" })] }) });
33
+ export const IcSettings = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" })] }) });
34
+ export const IcHelp = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] }) });
35
+ export const IcX = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) });
36
+ export const IcFlask = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M9 3h6" }), _jsx("path", { d: "M10 3v6.34L4.58 18.5A2 2 0 0 0 6.3 21.5h11.4a2 2 0 0 0 1.72-3L14 9.34V3" }), _jsx("path", { d: "M7.5 14h9" })] }) });
37
+ export const IcShield = (p) => _jsx(Ico, { ...p, d: _jsx("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }) });
38
+ export const IcEyeOff = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M9.88 9.88a3 3 0 1 0 4.24 4.24" }), _jsx("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }), _jsx("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }), _jsx("line", { x1: "2", y1: "2", x2: "22", y2: "22" })] }) });
39
+ /* ---------- file-type + explorer header icons (monochrome, currentColor) ---------- */
40
+ const FileBody = _jsxs(_Fragment, { children: [_jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("polyline", { points: "14 2 14 8 20 8" })] });
41
+ export const IcFileCode = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("path", { d: "m10 13-2 2 2 2" }), _jsx("path", { d: "m14 13 2 2-2 2" })] }) });
42
+ export const IcFileText = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("line", { x1: "8", y1: "13", x2: "16", y2: "13" }), _jsx("line", { x1: "8", y1: "17", x2: "13", y2: "17" })] }) });
43
+ export const IcFileJson = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("path", { d: "M9 13a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1" }), _jsx("path", { d: "M15 13a1 1 0 0 1 1 1v1a1 1 0 0 0 1 1 1 1 0 0 0-1 1v1a1 1 0 0 1-1 1" })] }) });
44
+ export const IcFileSheet = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("line", { x1: "8", y1: "13", x2: "16", y2: "13" }), _jsx("line", { x1: "8", y1: "17", x2: "16", y2: "17" }), _jsx("line", { x1: "12", y1: "11", x2: "12", y2: "19" })] }) });
45
+ export const IcFileImage = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("circle", { cx: "10", cy: "13", r: "1" }), _jsx("path", { d: "m20 17-1.5-1.5a2 2 0 0 0-2.83 0L8 23" })] }) });
46
+ export const IcFilePdf = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("path", { d: "M9 18h1.5a1.5 1.5 0 0 0 0-3H9v6" }), _jsx("path", { d: "M14 21v-6h2" }), _jsx("path", { d: "M14 18h1.5" })] }) });
47
+ export const IcFileArchive = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("line", { x1: "12", y1: "11", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "14", x2: "12", y2: "15" }), _jsx("rect", { x: "10.5", y: "17", width: "3", height: "3", rx: "0.5" })] }) });
48
+ export const IcFlow = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "3", width: "6", height: "6", rx: "1" }), _jsx("rect", { x: "15", y: "15", width: "6", height: "6", rx: "1" }), _jsx("path", { d: "M9 6h4a2 2 0 0 1 2 2v7" })] }) });
49
+ export const IcFilePlus = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [FileBody, _jsx("line", { x1: "12", y1: "12", x2: "12", y2: "18" }), _jsx("line", { x1: "9", y1: "15", x2: "15", y2: "15" })] }) });
50
+ export const IcFolderPlus = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" }), _jsx("line", { x1: "12", y1: "11", x2: "12", y2: "17" }), _jsx("line", { x1: "9", y1: "14", x2: "15", y2: "14" })] }) });
51
+ export const IcSave = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), _jsx("polyline", { points: "17 21 17 13 7 13 7 21" }), _jsx("polyline", { points: "7 3 7 8 15 8" })] }) });
52
+ export const IcCollapseAll = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("polyline", { points: "7 10 12 5 17 10" }), _jsx("polyline", { points: "7 19 12 14 17 19" })] }) });
53
+ export const IcExpandAll = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("polyline", { points: "7 14 12 19 17 14" }), _jsx("polyline", { points: "7 5 12 10 17 5" })] }) });
54
+ export const IcEdit = (p) => _jsx(Ico, { ...p, d: _jsxs(_Fragment, { children: [_jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), _jsx("path", { d: "M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4Z" })] }) });
55
+ /* ---------- P mark (CSS mask + cursor-tracking conic gradient) ---------- */
56
+ const P1 = 'M 271.6313,29.109924 C 456.06055,29.109924 454.60452,304.1 270.40336,304.1 L 228,304 v -47.30173 l 43.85191,0.0317 c 118.41324,0 116.08205,-178.966717 -0.82527,-178.966717 L 132.15087,77.622831 129.6,420.52 c -0.33992,0.0728 -45.968529,35.12868 -45.968529,35.12868 L 83.506489,28.866413 Z';
57
+ const P2 = 'm 156,102 103.33423,0.32678 c 88.07508,0 87.938,129.66692 1.26051,129.66692 l -32.5414,0.0925 -0.0533,-47.08616 32.66331,-0.23913 c 27.90739,0 25.69827,-34.89447 -0.0611,-34.99087 L 204.00004,150 c 0.90517,68.30467 0.52,211.29643 0.52,211.29643 0,0 -48.54879,38.04493 -48.62668,38.05052 z';
58
+ const MASK = encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 475 487"><path fill="white" d="${P1}"/><path fill="white" d="${P2}"/></svg>`);
59
+ /** Branded thinking / loading indicator: the P-mark glyph spinning in place.
60
+ * One shared spinner for every "working…" state (agent thinking, prompt run,
61
+ * workflow run) so loading reads the same everywhere. Honors reduced-motion via
62
+ * the `.pmark-spin` rule. */
63
+ export function Spinner({ size = 16, title = 'Loading' }) {
64
+ return (_jsx("span", { className: "pmark-spin", role: "status", "aria-label": title, style: {
65
+ display: 'inline-block', width: size, height: size, flexShrink: 0,
66
+ background: 'var(--grad-brand, linear-gradient(135deg,#06b6d4,#3b82f6))',
67
+ WebkitMaskImage: `url("data:image/svg+xml,${MASK}")`,
68
+ maskImage: `url("data:image/svg+xml,${MASK}")`,
69
+ WebkitMaskSize: 'contain', maskSize: 'contain',
70
+ WebkitMaskRepeat: 'no-repeat', maskRepeat: 'no-repeat',
71
+ } }));
72
+ }
73
+ export function PMark({ size = 22, spin = false }) {
74
+ const ref = useRef(null);
75
+ useEffect(() => {
76
+ const el = ref.current;
77
+ if (!el)
78
+ return;
79
+ if (window.matchMedia('(prefers-reduced-motion: reduce)').matches)
80
+ return;
81
+ let raf = 0;
82
+ const onMove = (e) => {
83
+ cancelAnimationFrame(raf);
84
+ raf = requestAnimationFrame(() => {
85
+ const r = el.getBoundingClientRect();
86
+ const deg = (Math.atan2(e.clientY - (r.top + r.height / 2), e.clientX - (r.left + r.width / 2)) * 180) / Math.PI;
87
+ el.style.background = `conic-gradient(from ${deg}deg, #06b6d4, #8b5cf6, #ec4899, #f59e0b, #06b6d4)`;
88
+ });
89
+ };
90
+ document.addEventListener('mousemove', onMove);
91
+ return () => { document.removeEventListener('mousemove', onMove); cancelAnimationFrame(raf); };
92
+ }, []);
93
+ return (_jsx("div", { ref: ref, className: spin ? 'pmark-spin' : '', style: {
94
+ width: size, height: size, flexShrink: 0,
95
+ background: 'linear-gradient(135deg,#06b6d4,#3b82f6)',
96
+ WebkitMaskImage: `url("data:image/svg+xml,${MASK}")`,
97
+ maskImage: `url("data:image/svg+xml,${MASK}")`,
98
+ WebkitMaskSize: 'contain', maskSize: 'contain',
99
+ WebkitMaskRepeat: 'no-repeat', maskRepeat: 'no-repeat',
100
+ } }));
101
+ }
102
+ /** Inline "live" cursor: the spinning P-mark, parked at the end of streaming text
103
+ * to signal an active connection (it keeps spinning between tokens, like a pulse).
104
+ * Render it only while a response is in flight — remove it on done/stop/disconnect
105
+ * and the signal disappears. */
106
+ export function LiveCursor({ size = 13 }) {
107
+ return (_jsx("span", { style: { display: 'inline-block', verticalAlign: 'text-bottom', margin: '0 1px 0 3px', lineHeight: 0 }, children: _jsx(Spinner, { size: size, title: "Generating" }) }));
108
+ }
109
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../icons.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './icons';
2
+ export * from './theme';
3
+ export * from './usage';
4
+ export * from './ui-helpers';
5
+ export * from './monacoColorize';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ /* @corenel/ui-kit — shared UI primitives. Consumers usually import the subpath
2
+ * (@corenel/ui-kit/icons, /theme, …); this barrel is the convenience aggregate. */
3
+ export * from './icons';
4
+ export * from './theme';
5
+ export * from './usage';
6
+ export * from './ui-helpers';
7
+ export * from './monacoColorize';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;mFACmF;AACnF,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type * as Monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ /** Per-model assist for a language: refresh its completion data and (re)apply or
3
+ * clear its diagnostics for an opaque, language-defined assist payload. The
4
+ * editor calls this on mount + when the doc/payload changes; the language knows
5
+ * the payload's shape (e.g. prmd's template vars). */
6
+ export interface LanguageAssist {
7
+ sync(model: Monaco.editor.ITextModel, assist: unknown): void;
8
+ }
9
+ export interface LanguageExtension {
10
+ /** Monaco language id, e.g. 'prmd'. */
11
+ id: string;
12
+ /** File extensions it claims, e.g. ['.prmd']. */
13
+ extensions: string[];
14
+ /** Install the language against the bundled Monaco (idempotent per id; the
15
+ * registry guards against double-registration). */
16
+ register(monaco: typeof Monaco): void;
17
+ /** Optional per-model assist (completions/markers). */
18
+ assist?: LanguageAssist;
19
+ }
20
+ /** Register (or replace) a language extension by id. Call before the editor mounts. */
21
+ export declare function registerLanguageExtension(ext: LanguageExtension): void;
22
+ /** All registered language extensions. */
23
+ export declare function languageExtensions(): LanguageExtension[];
24
+ /** The registered extension for a Monaco language id, or undefined. */
25
+ export declare function languageExtension(id: string): LanguageExtension | undefined;
26
+ /** Install every registered language extension against `monaco`, once each. */
27
+ export declare function ensureLanguagesRegistered(monaco: typeof Monaco): void;
28
+ //# sourceMappingURL=languages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../languages.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,MAAM,wCAAwC,CAAC;AAEtE;;;sDAGsD;AACtD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;uDACmD;IACnD,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,GAAG,IAAI,CAAC;IACtC,uDAAuD;IACvD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAKD,uFAAuF;AACvF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAEtE;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CAExD;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE3E;AAED,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,MAAM,GAAG,IAAI,CAMrE"}
@@ -0,0 +1,29 @@
1
+ const registry = new Map();
2
+ const installed = new Set();
3
+ /** Register (or replace) a language extension by id. Call before the editor mounts. */
4
+ export function registerLanguageExtension(ext) {
5
+ registry.set(ext.id, ext);
6
+ }
7
+ /** All registered language extensions. */
8
+ export function languageExtensions() {
9
+ return [...registry.values()];
10
+ }
11
+ /** The registered extension for a Monaco language id, or undefined. */
12
+ export function languageExtension(id) {
13
+ return registry.get(id);
14
+ }
15
+ /** Install every registered language extension against `monaco`, once each. */
16
+ export function ensureLanguagesRegistered(monaco) {
17
+ for (const ext of registry.values()) {
18
+ if (installed.has(ext.id))
19
+ continue;
20
+ installed.add(ext.id);
21
+ try {
22
+ ext.register(monaco);
23
+ }
24
+ catch {
25
+ installed.delete(ext.id);
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=languages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languages.js","sourceRoot":"","sources":["../languages.ts"],"names":[],"mappings":"AA8BA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;AACtD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;AAEpC,uFAAuF;AACvF,MAAM,UAAU,yBAAyB,CAAC,GAAsB;IAC9D,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,yBAAyB,CAAC,MAAqB;IAC7D,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACpC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC;YAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Resolve a fence tag to a supported Monaco language id, or null if unsupported.
2
+ * Supported ids are exactly the LOADERS keys (defined below; read at call time). */
3
+ export declare function monacoLangId(lang: string): string | null;
4
+ /** Highlight `code` as `lang` via Monaco, returning themed HTML (with `.mtkN`
5
+ * token spans), or null when the language is unsupported or tokenization fails. */
6
+ export declare function colorizeToHtml(code: string, lang: string): Promise<string | null>;
7
+ //# sourceMappingURL=monacoColorize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monacoColorize.d.ts","sourceRoot":"","sources":["../monacoColorize.ts"],"names":[],"mappings":"AA4CA;oFACoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKxD;AA6ED;mFACmF;AACnF,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYvF"}
@@ -0,0 +1,143 @@
1
+ /* Monaco-powered static syntax highlighting for chat/output code blocks.
2
+ *
3
+ * Uses monaco.editor.colorize() — the Monarch tokenizer rendered to an HTML
4
+ * string — so code blocks highlight with the SAME engine and theme as the
5
+ * document editor (no second highlighter to drift). It pulls only the lightweight
6
+ * basic-language TOKENIZERS, not the heavy TS/CSS/HTML language *services* +
7
+ * workers that lib/monaco.ts deliberately omits.
8
+ *
9
+ * Lazy: Monaco + the tokenizers load on the first colorize call, so a transcript
10
+ * with no code blocks never pulls them in. Callers keep their own synchronous
11
+ * highlighter as the immediate render and swap in this result when it resolves
12
+ * (progressive enhancement); unsupported languages return null and the fallback
13
+ * stays.
14
+ *
15
+ * Colors come from the app's global Monaco theme (PRMD_THEME_*, which inherit
16
+ * vs/vs-dark) via the global `.monaco-colors` stylesheet Monaco injects — the
17
+ * `.mtkN` classes colorize() emits are styled there, not scoped to an editor.
18
+ */
19
+ import { getTheme } from './theme';
20
+ // IMPORTANT: nothing monaco-related is imported statically. This module is reached
21
+ // from the always-loaded chat/output renderers, so a static `monaco-editor` (or
22
+ // prmdLanguage, which imports it) import would pull all of Monaco into the main
23
+ // bundle. Every monaco import below is dynamic, inside ensureMonaco — Monaco loads
24
+ // on the first colorize call and shares the editor's lazy chunk.
25
+ // Fence tag -> Monaco language id. js/jsx use the javascript tokenizer, ts/tsx the
26
+ // typescript one (both handle JSX/TSX syntax in their Monarch grammar).
27
+ const ALIAS = {
28
+ js: 'javascript', jsx: 'javascript', mjs: 'javascript', cjs: 'javascript', node: 'javascript',
29
+ ts: 'typescript', tsx: 'typescript',
30
+ py: 'python', py3: 'python',
31
+ sh: 'shell', bash: 'shell', zsh: 'shell', console: 'shell',
32
+ yml: 'yaml', md: 'markdown', markdown: 'markdown',
33
+ htm: 'html', svg: 'xml',
34
+ rs: 'rust', golang: 'go', kt: 'kotlin', kts: 'kotlin',
35
+ cs: 'csharp', 'c#': 'csharp', 'c++': 'cpp', cc: 'cpp', cxx: 'cpp', h: 'cpp', hpp: 'cpp', c: 'cpp',
36
+ rb: 'ruby', ps1: 'powershell', ps: 'powershell',
37
+ docker: 'dockerfile', gql: 'graphql', objc: 'objective-c', 'obj-c': 'objective-c',
38
+ rlang: 'r', pl: 'perl',
39
+ };
40
+ /** Resolve a fence tag to a supported Monaco language id, or null if unsupported.
41
+ * Supported ids are exactly the LOADERS keys (defined below; read at call time). */
42
+ export function monacoLangId(lang) {
43
+ const l = (lang || '').trim().toLowerCase();
44
+ if (!l)
45
+ return null;
46
+ const id = ALIAS[l] || l;
47
+ return id in LOADERS ? id : null;
48
+ }
49
+ // Per-language tokenizer loaders (literal paths so Vite splits each into its own
50
+ // tiny chunk). Only the language a code block actually uses is fetched — a JS
51
+ // block never pulls the Rust grammar. Keys are Monaco language ids.
52
+ const LOADERS = {
53
+ typescript: () => import('monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution'),
54
+ javascript: () => import('monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution'),
55
+ python: () => import('monaco-editor/esm/vs/basic-languages/python/python.contribution'),
56
+ css: () => import('monaco-editor/esm/vs/basic-languages/css/css.contribution'),
57
+ scss: () => import('monaco-editor/esm/vs/basic-languages/scss/scss.contribution'),
58
+ less: () => import('monaco-editor/esm/vs/basic-languages/less/less.contribution'),
59
+ html: () => import('monaco-editor/esm/vs/basic-languages/html/html.contribution'),
60
+ xml: () => import('monaco-editor/esm/vs/basic-languages/xml/xml.contribution'),
61
+ shell: () => import('monaco-editor/esm/vs/basic-languages/shell/shell.contribution'),
62
+ yaml: () => import('monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution'),
63
+ markdown: () => import('monaco-editor/esm/vs/basic-languages/markdown/markdown.contribution'),
64
+ sql: () => import('monaco-editor/esm/vs/basic-languages/sql/sql.contribution'),
65
+ rust: () => import('monaco-editor/esm/vs/basic-languages/rust/rust.contribution'),
66
+ go: () => import('monaco-editor/esm/vs/basic-languages/go/go.contribution'),
67
+ java: () => import('monaco-editor/esm/vs/basic-languages/java/java.contribution'),
68
+ cpp: () => import('monaco-editor/esm/vs/basic-languages/cpp/cpp.contribution'),
69
+ csharp: () => import('monaco-editor/esm/vs/basic-languages/csharp/csharp.contribution'),
70
+ ruby: () => import('monaco-editor/esm/vs/basic-languages/ruby/ruby.contribution'),
71
+ php: () => import('monaco-editor/esm/vs/basic-languages/php/php.contribution'),
72
+ kotlin: () => import('monaco-editor/esm/vs/basic-languages/kotlin/kotlin.contribution'),
73
+ swift: () => import('monaco-editor/esm/vs/basic-languages/swift/swift.contribution'),
74
+ powershell: () => import('monaco-editor/esm/vs/basic-languages/powershell/powershell.contribution'),
75
+ dockerfile: () => import('monaco-editor/esm/vs/basic-languages/dockerfile/dockerfile.contribution'),
76
+ graphql: () => import('monaco-editor/esm/vs/basic-languages/graphql/graphql.contribution'),
77
+ ini: () => import('monaco-editor/esm/vs/basic-languages/ini/ini.contribution'),
78
+ lua: () => import('monaco-editor/esm/vs/basic-languages/lua/lua.contribution'),
79
+ r: () => import('monaco-editor/esm/vs/basic-languages/r/r.contribution'),
80
+ perl: () => import('monaco-editor/esm/vs/basic-languages/perl/perl.contribution'),
81
+ scala: () => import('monaco-editor/esm/vs/basic-languages/scala/scala.contribution'),
82
+ dart: () => import('monaco-editor/esm/vs/basic-languages/dart/dart.contribution'),
83
+ 'objective-c': () => import('monaco-editor/esm/vs/basic-languages/objective-c/objective-c.contribution'),
84
+ // json's tokenizer is already registered by lib/monaco.ts; no loader needed.
85
+ json: () => Promise.resolve(),
86
+ };
87
+ let monacoP = null;
88
+ async function ensureMonaco() {
89
+ if (!monacoP) {
90
+ monacoP = (async () => {
91
+ const monaco = await import('monaco-editor/esm/vs/editor/editor.api');
92
+ // prmdLanguage statically imports monaco — keep it dynamic too. It registers
93
+ // PRMD_THEME_* (token colors inherit vs/vs-dark) and is idempotent.
94
+ const prmd = await import('./prmdLanguage');
95
+ prmd.ensurePrmdLanguage();
96
+ themeLight = prmd.PRMD_THEME_LIGHT;
97
+ themeDark = prmd.PRMD_THEME_DARK;
98
+ return monaco;
99
+ })();
100
+ }
101
+ return monacoP;
102
+ }
103
+ const langP = new Map();
104
+ function ensureLanguage(id) {
105
+ let p = langP.get(id);
106
+ if (!p) {
107
+ p = (LOADERS[id] || (() => Promise.resolve()))();
108
+ langP.set(id, p);
109
+ }
110
+ return p;
111
+ }
112
+ // The global Monaco theme is shared with mounted editors; only push a change when
113
+ // the app theme actually flips (avoids re-theming mounted editors per code block).
114
+ // Theme ids are captured from prmdLanguage during ensureMonaco (defaults match its
115
+ // exported constants) so nothing monaco-related is imported statically.
116
+ let themeLight = 'prompd-light';
117
+ let themeDark = 'prompd-dark';
118
+ let appliedTheme = '';
119
+ function syncTheme(monaco) {
120
+ const id = getTheme() === 'light' ? themeLight : themeDark;
121
+ if (id !== appliedTheme) {
122
+ monaco.editor.setTheme(id);
123
+ appliedTheme = id;
124
+ }
125
+ }
126
+ /** Highlight `code` as `lang` via Monaco, returning themed HTML (with `.mtkN`
127
+ * token spans), or null when the language is unsupported or tokenization fails. */
128
+ export async function colorizeToHtml(code, lang) {
129
+ const id = monacoLangId(lang);
130
+ if (!id)
131
+ return null;
132
+ const monaco = await ensureMonaco();
133
+ await ensureLanguage(id);
134
+ syncTheme(monaco);
135
+ try {
136
+ const html = await monaco.editor.colorize(code, id, { tabSize: 2 });
137
+ return html || null;
138
+ }
139
+ catch {
140
+ return null;
141
+ }
142
+ }
143
+ //# sourceMappingURL=monacoColorize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monacoColorize.js","sourceRoot":"","sources":["../monacoColorize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,mFAAmF;AACnF,gFAAgF;AAChF,gFAAgF;AAChF,mFAAmF;AACnF,iEAAiE;AAEjE,mFAAmF;AACnF,wEAAwE;AACxE,MAAM,KAAK,GAA2B;IACpC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;IAC7F,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY;IACnC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ;IAC3B,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC1D,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU;IACjD,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;IACvB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ;IACrD,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;IACjG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa;IACjF,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM;CACvB,CAAC;AAEF;oFACoF;AACpF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAED,iFAAiF;AACjF,8EAA8E;AAC9E,oEAAoE;AACpE,MAAM,OAAO,GAA2C;IACtD,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yEAAyE,CAAC;IACnG,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yEAAyE,CAAC;IACnG,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iEAAiE,CAAC;IACvF,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC;IACpF,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qEAAqE,CAAC;IAC7F,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yDAAyD,CAAC;IAC3E,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iEAAiE,CAAC;IACvF,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,iEAAiE,CAAC;IACvF,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC;IACpF,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yEAAyE,CAAC;IACnG,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yEAAyE,CAAC;IACnG,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mEAAmE,CAAC;IAC1F,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2DAA2D,CAAC;IAC9E,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uDAAuD,CAAC;IACxE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+DAA+D,CAAC;IACpF,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6DAA6D,CAAC;IACjF,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,2EAA2E,CAAC;IACxG,6EAA6E;IAC7E,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;CAC9B,CAAC;AAEF,IAAI,OAAO,GAA8B,IAAI,CAAC;AAC9C,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YACtE,6EAA6E;YAC7E,oEAAoE;YACpE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC5C,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACnC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;AAClD,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,EAAE,CAAC;QAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;IAC/E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kFAAkF;AAClF,mFAAmF;AACnF,mFAAmF;AACnF,wEAAwE;AACxE,IAAI,UAAU,GAAG,cAAc,CAAC;AAChC,IAAI,SAAS,GAAG,aAAa,CAAC;AAC9B,IAAI,YAAY,GAAG,EAAE,CAAC;AACtB,SAAS,SAAS,CAAC,MAAiB;IAClC,MAAM,EAAE,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,IAAI,EAAE,KAAK,YAAY,EAAE,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAAC,YAAY,GAAG,EAAE,CAAC;IAAC,CAAC;AAC7E,CAAC;AAED;mFACmF;AACnF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IAC7D,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;IACzB,SAAS,CAAC,MAAM,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
2
+ import { type TemplateVar } from './templateRefs';
3
+ export declare const PRMD_LANG = "prmd";
4
+ export declare const PRMD_THEME_LIGHT = "prompd-light";
5
+ export declare const PRMD_THEME_DARK = "prompd-dark";
6
+ export declare function setPrmdTemplateVars(model: monaco.editor.ITextModel, vars: TemplateVar[]): void;
7
+ /** Lint unknown `{{ refs }}` against `known` and surface them as error markers
8
+ * (squiggly + hover message + problems affordances, all native Monaco). */
9
+ export declare function applyPrmdMarkers(model: monaco.editor.ITextModel, known: TemplateVar[]): void;
10
+ export declare function clearPrmdMarkers(model: monaco.editor.ITextModel): void;
11
+ export declare function ensurePrmdLanguage(): void;
12
+ //# sourceMappingURL=prmdLanguage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prmdLanguage.d.ts","sourceRoot":"","sources":["../prmdLanguage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAuC,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGvF,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAK7C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAE9F;AAED;2EAC2E;AAC3E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAc5F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAEtE;AAID,wBAAgB,kBAAkB,IAAI,IAAI,CA0JzC"}