@tooee/shell 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/README.md +5 -0
- package/dist/CommandPaletteOverlay.d.ts +7 -0
- package/dist/CommandPaletteOverlay.d.ts.map +1 -0
- package/dist/CommandPaletteOverlay.js +29 -0
- package/dist/CommandPaletteOverlay.js.map +1 -0
- package/dist/ThemePickerOverlay.d.ts +6 -0
- package/dist/ThemePickerOverlay.d.ts.map +1 -0
- package/dist/ThemePickerOverlay.js +20 -0
- package/dist/ThemePickerOverlay.js.map +1 -0
- package/dist/command-palette.d.ts +9 -0
- package/dist/command-palette.d.ts.map +1 -0
- package/dist/command-palette.js +51 -0
- package/dist/command-palette.js.map +1 -0
- package/dist/commands.d.ts +18 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +49 -0
- package/dist/commands.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/launch.d.ts +6 -0
- package/dist/launch.d.ts.map +1 -0
- package/dist/launch.js +12 -0
- package/dist/launch.js.map +1 -0
- package/dist/modal.d.ts +34 -0
- package/dist/modal.d.ts.map +1 -0
- package/dist/modal.js +440 -0
- package/dist/modal.js.map +1 -0
- package/dist/overlay.d.ts +11 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +145 -0
- package/dist/overlay.js.map +1 -0
- package/dist/provider.d.ts +11 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +13 -0
- package/dist/provider.js.map +1 -0
- package/dist/search.d.ts +2 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +20 -0
- package/dist/search.js.map +1 -0
- package/dist/theme-picker.d.ts +16 -0
- package/dist/theme-picker.d.ts.map +1 -0
- package/dist/theme-picker.js +48 -0
- package/dist/theme-picker.js.map +1 -0
- package/package.json +49 -0
- package/src/CommandPaletteOverlay.tsx +44 -0
- package/src/ThemePickerOverlay.tsx +28 -0
- package/src/command-palette.ts +73 -0
- package/src/commands.ts +60 -0
- package/src/index.ts +11 -0
- package/src/launch.tsx +15 -0
- package/src/modal.ts +504 -0
- package/src/overlay.tsx +220 -0
- package/src/provider.tsx +46 -0
- package/src/search.ts +18 -0
- package/src/theme-picker.ts +84 -0
package/README.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { Mode } from "@tooee/commands";
|
|
3
|
+
export declare function CommandPaletteOverlay({ launchMode, close, }: {
|
|
4
|
+
launchMode: Mode;
|
|
5
|
+
close: () => void;
|
|
6
|
+
}): ReactNode;
|
|
7
|
+
//# sourceMappingURL=CommandPaletteOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandPaletteOverlay.d.ts","sourceRoot":"","sources":["../src/CommandPaletteOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAK3C,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,KAAK,GACN,EAAE;IACD,UAAU,EAAE,IAAI,CAAA;IAChB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,GAAG,SAAS,CA6BZ"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createElement, useMemo } from "react";
|
|
2
|
+
import { useCommandContext } from "@tooee/commands";
|
|
3
|
+
import { CommandPalette } from "@tooee/renderers";
|
|
4
|
+
const DEFAULT_MODES = ["cursor"];
|
|
5
|
+
export function CommandPaletteOverlay({ launchMode, close, }) {
|
|
6
|
+
const { commands, invoke } = useCommandContext();
|
|
7
|
+
const entries = useMemo(() => commands
|
|
8
|
+
.filter((cmd) => !cmd.hidden)
|
|
9
|
+
.filter((cmd) => {
|
|
10
|
+
const cmdModes = cmd.modes ?? DEFAULT_MODES;
|
|
11
|
+
return cmdModes.includes(launchMode);
|
|
12
|
+
})
|
|
13
|
+
.map((cmd) => ({
|
|
14
|
+
id: cmd.id,
|
|
15
|
+
title: cmd.title,
|
|
16
|
+
hotkey: cmd.defaultHotkey,
|
|
17
|
+
category: cmd.category,
|
|
18
|
+
icon: cmd.icon,
|
|
19
|
+
})), [commands, launchMode]);
|
|
20
|
+
return createElement(CommandPalette, {
|
|
21
|
+
commands: entries,
|
|
22
|
+
onSelect: (id) => {
|
|
23
|
+
close();
|
|
24
|
+
invoke(id);
|
|
25
|
+
},
|
|
26
|
+
onClose: close,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=CommandPaletteOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandPaletteOverlay.js","sourceRoot":"","sources":["../src/CommandPaletteOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,aAAa,GAAW,CAAC,QAAQ,CAAC,CAAA;AAExC,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,EACV,KAAK,GAIN;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAEhD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CACH,QAAQ;SACL,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,IAAI,aAAa,CAAA;QAC3C,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,aAAa;QACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAC,EACP,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAA;IAED,OAAO,aAAa,CAAC,cAAc,EAAE;QACnC,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE;YACvB,KAAK,EAAE,CAAA;YACP,MAAM,CAAC,EAAE,CAAC,CAAA;QACZ,CAAC;QACD,OAAO,EAAE,KAAK;KACf,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemePickerOverlay.d.ts","sourceRoot":"","sources":["../src/ThemePickerOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,kBAAkB,CAAC,EACjC,aAAa,EACb,KAAK,GACN,EAAE;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,GAAG,SAAS,CAiBZ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
import { useThemeSwitcher, ThemePicker } from "@tooee/themes";
|
|
3
|
+
export function ThemePickerOverlay({ originalTheme, close, }) {
|
|
4
|
+
const { allThemes, name: currentTheme, setTheme } = useThemeSwitcher();
|
|
5
|
+
const entries = allThemes.map((name) => ({ id: name, title: name }));
|
|
6
|
+
return createElement(ThemePicker, {
|
|
7
|
+
entries,
|
|
8
|
+
currentTheme,
|
|
9
|
+
onNavigate: setTheme,
|
|
10
|
+
onSelect: (name) => {
|
|
11
|
+
setTheme(name);
|
|
12
|
+
close();
|
|
13
|
+
},
|
|
14
|
+
onClose: () => {
|
|
15
|
+
setTheme(originalTheme);
|
|
16
|
+
close();
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ThemePickerOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemePickerOverlay.js","sourceRoot":"","sources":["../src/ThemePickerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE7D,MAAM,UAAU,kBAAkB,CAAC,EACjC,aAAa,EACb,KAAK,GAIN;IACC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAA;IACtE,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAE5E,OAAO,aAAa,CAAC,WAAW,EAAE;QAChC,OAAO;QACP,YAAY;QACZ,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YACzB,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,KAAK,EAAE,CAAA;QACT,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,aAAa,CAAC,CAAA;YACvB,KAAK,EAAE,CAAA;QACT,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CommandPaletteEntry } from "@tooee/renderers";
|
|
2
|
+
export interface CommandPaletteState {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
open: () => void;
|
|
5
|
+
close: () => void;
|
|
6
|
+
entries: CommandPaletteEntry[];
|
|
7
|
+
}
|
|
8
|
+
export declare function useCommandPalette(): CommandPaletteState;
|
|
9
|
+
//# sourceMappingURL=command-palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../src/command-palette.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAM3D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,CAqDvD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { useCommandContext, useCommand, useMode } from "@tooee/commands";
|
|
4
|
+
import { useOverlay } from "@tooee/overlays";
|
|
5
|
+
import { CommandPaletteOverlay } from "./CommandPaletteOverlay.jsx";
|
|
6
|
+
const DEFAULT_MODES = ["cursor"];
|
|
7
|
+
const OVERLAY_ID = "command-palette";
|
|
8
|
+
export function useCommandPalette() {
|
|
9
|
+
const { commands } = useCommandContext();
|
|
10
|
+
const mode = useMode();
|
|
11
|
+
const overlay = useOverlay();
|
|
12
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
13
|
+
const launchModeRef = useRef(mode);
|
|
14
|
+
const launchMode = launchModeRef.current;
|
|
15
|
+
const entries = useMemo(() => {
|
|
16
|
+
return commands
|
|
17
|
+
.filter((cmd) => !cmd.hidden)
|
|
18
|
+
.filter((cmd) => {
|
|
19
|
+
const cmdModes = cmd.modes ?? DEFAULT_MODES;
|
|
20
|
+
return cmdModes.includes(launchMode);
|
|
21
|
+
})
|
|
22
|
+
.map((cmd) => ({
|
|
23
|
+
id: cmd.id,
|
|
24
|
+
title: cmd.title,
|
|
25
|
+
hotkey: cmd.defaultHotkey,
|
|
26
|
+
category: cmd.category,
|
|
27
|
+
icon: cmd.icon,
|
|
28
|
+
}));
|
|
29
|
+
}, [commands, launchMode]);
|
|
30
|
+
const close = useCallback(() => {
|
|
31
|
+
setIsOpen(false);
|
|
32
|
+
overlay.hide(OVERLAY_ID);
|
|
33
|
+
}, [overlay]);
|
|
34
|
+
const open = useCallback(() => {
|
|
35
|
+
launchModeRef.current = mode;
|
|
36
|
+
setIsOpen(true);
|
|
37
|
+
overlay.open(OVERLAY_ID, ({ close }) => createElement(CommandPaletteOverlay, {
|
|
38
|
+
launchMode: mode,
|
|
39
|
+
close: () => close(),
|
|
40
|
+
}), null, { mode: "insert", dismissOnEscape: true, onClose: () => setIsOpen(false) });
|
|
41
|
+
}, [overlay, mode]);
|
|
42
|
+
useCommand({
|
|
43
|
+
id: "command-palette",
|
|
44
|
+
title: "Command Palette",
|
|
45
|
+
hotkey: ":",
|
|
46
|
+
modes: ["cursor"],
|
|
47
|
+
handler: open,
|
|
48
|
+
});
|
|
49
|
+
return { isOpen, open, close, entries };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=command-palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-palette.js","sourceRoot":"","sources":["../src/command-palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,aAAa,GAAW,CAAC,QAAQ,CAAC,CAAA;AACxC,MAAM,UAAU,GAAG,iBAAiB,CAAA;AASpC,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAO,IAAI,CAAC,CAAA;IAExC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAA;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;aAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,IAAI,aAAa,CAAA;YAC3C,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACtC,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,aAAa;YACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC,CAAA;IACP,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE1B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,SAAS,CAAC,KAAK,CAAC,CAAA;QAChB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC1B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;QAC5B,SAAS,CAAC,IAAI,CAAC,CAAA;QACf,OAAO,CAAC,IAAI,CACV,UAAU,EACV,CAAC,EAAE,KAAK,EAAoD,EAAE,EAAE,CAC9D,aAAa,CAAC,qBAAqB,EAAE;YACnC,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;SACrB,CAAC,EACJ,IAAI,EACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC3E,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IAEnB,UAAU,CAAC;QACT,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type CommandWhen } from "@tooee/commands";
|
|
2
|
+
import { type ThemePickerState } from "./theme-picker.js";
|
|
3
|
+
export declare function useThemeCommands(opts?: {
|
|
4
|
+
when?: CommandWhen;
|
|
5
|
+
}): {
|
|
6
|
+
name: string;
|
|
7
|
+
picker: ThemePickerState;
|
|
8
|
+
};
|
|
9
|
+
export declare function useQuitCommand(opts?: {
|
|
10
|
+
hotkey?: string;
|
|
11
|
+
when?: CommandWhen;
|
|
12
|
+
onQuit?: () => void;
|
|
13
|
+
}): void;
|
|
14
|
+
export declare function useCopyCommand(opts: {
|
|
15
|
+
getText: () => string | undefined;
|
|
16
|
+
when?: CommandWhen;
|
|
17
|
+
}): void;
|
|
18
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzE,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG;IAC/D,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,gBAAgB,CAAA;CACzB,CAcA;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,QAgBA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,QAa7F"}
|
package/dist/commands.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useRenderer } from "@opentui/react";
|
|
2
|
+
import { copyToClipboard } from "@tooee/clipboard";
|
|
3
|
+
import { useCommand } from "@tooee/commands";
|
|
4
|
+
import { useThemePicker } from "./theme-picker.js";
|
|
5
|
+
export function useThemeCommands(opts) {
|
|
6
|
+
const picker = useThemePicker();
|
|
7
|
+
useCommand({
|
|
8
|
+
id: "cycle-theme",
|
|
9
|
+
title: "Choose theme",
|
|
10
|
+
hotkey: "t",
|
|
11
|
+
when: opts?.when,
|
|
12
|
+
handler: () => {
|
|
13
|
+
picker.open();
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
return { name: picker.currentTheme, picker };
|
|
17
|
+
}
|
|
18
|
+
export function useQuitCommand(opts) {
|
|
19
|
+
const renderer = useRenderer();
|
|
20
|
+
useCommand({
|
|
21
|
+
id: "quit",
|
|
22
|
+
title: "Quit",
|
|
23
|
+
hotkey: opts?.hotkey ?? "q",
|
|
24
|
+
when: opts?.when,
|
|
25
|
+
handler: () => {
|
|
26
|
+
if (opts?.onQuit) {
|
|
27
|
+
opts.onQuit();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
renderer.destroy();
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export function useCopyCommand(opts) {
|
|
36
|
+
useCommand({
|
|
37
|
+
id: "copy",
|
|
38
|
+
title: "Copy to clipboard",
|
|
39
|
+
hotkey: "y",
|
|
40
|
+
when: opts.when,
|
|
41
|
+
handler: () => {
|
|
42
|
+
const text = opts.getText();
|
|
43
|
+
if (text) {
|
|
44
|
+
void copyToClipboard(text);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAyB,MAAM,mBAAmB,CAAA;AAEzE,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAI5D,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAE/B,UAAU,CAAC;QACT,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,IAAI,EAAE,CAAA;QACf,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAI9B;IACC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,UAAU,CAAC;QACT,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG;QAC3B,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,EAAE,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,OAAO,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAA+D;IAC5F,UAAU,CAAC;QACT,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,GAAG;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC3B,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,eAAe,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { useThemeCommands, useQuitCommand, useCopyCommand } from "./commands.js";
|
|
2
|
+
export { useModalNavigationCommands } from "./modal.js";
|
|
3
|
+
export type { ModalNavigationState, ModalNavigationOptions, Position } from "./modal.js";
|
|
4
|
+
export { findMatchingLines } from "./search.js";
|
|
5
|
+
export { TooeeProvider } from "./provider.jsx";
|
|
6
|
+
export { launchCli } from "./launch.jsx";
|
|
7
|
+
export { useCommandPalette } from "./command-palette.js";
|
|
8
|
+
export type { CommandPaletteState } from "./command-palette.js";
|
|
9
|
+
export { useThemePicker } from "./theme-picker.js";
|
|
10
|
+
export type { ThemePickerState, ThemePickerEntry } from "./theme-picker.js";
|
|
11
|
+
export { OverlayProvider } from "./overlay.jsx";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AACvD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { useThemeCommands, useQuitCommand, useCopyCommand } from "./commands.js";
|
|
2
|
+
export { useModalNavigationCommands } from "./modal.js";
|
|
3
|
+
export { findMatchingLines } from "./search.js";
|
|
4
|
+
export { TooeeProvider } from "./provider.jsx";
|
|
5
|
+
export { launchCli } from "./launch.jsx";
|
|
6
|
+
export { useCommandPalette } from "./command-palette.js";
|
|
7
|
+
export { useThemePicker } from "./theme-picker.js";
|
|
8
|
+
export { OverlayProvider } from "./overlay.jsx";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/launch.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKtC,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,EACf,IAAI,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
package/dist/launch.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@opentui/react/jsx-runtime";
|
|
2
|
+
import { createCliRenderer } from "@opentui/core";
|
|
3
|
+
import { createRoot } from "@opentui/react";
|
|
4
|
+
import { TooeeProvider } from "./provider.jsx";
|
|
5
|
+
export async function launchCli(node, opts) {
|
|
6
|
+
const renderer = await createCliRenderer({
|
|
7
|
+
useAlternateScreen: opts?.useAlternateScreen ?? true,
|
|
8
|
+
exitOnCtrlC: opts?.exitOnCtrlC ?? true,
|
|
9
|
+
});
|
|
10
|
+
createRoot(renderer).render(_jsx(TooeeProvider, { children: node }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=launch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAe,EACf,IAA8D;IAE9D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;QACvC,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,IAAI,IAAI;QACpD,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,IAAI;KACvC,CAAC,CAAA;IACF,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAC,aAAa,cAAE,IAAI,GAAiB,CAAC,CAAA;AACpE,CAAC"}
|
package/dist/modal.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Mode } from "@tooee/commands";
|
|
2
|
+
export interface Position {
|
|
3
|
+
line: number;
|
|
4
|
+
col: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ModalNavigationState {
|
|
7
|
+
mode: Mode;
|
|
8
|
+
setMode: (mode: Mode) => void;
|
|
9
|
+
scrollOffset: number;
|
|
10
|
+
cursor: Position | null;
|
|
11
|
+
selection: {
|
|
12
|
+
start: Position;
|
|
13
|
+
end: Position;
|
|
14
|
+
} | null;
|
|
15
|
+
toggledIndices: Set<number>;
|
|
16
|
+
searchQuery: string;
|
|
17
|
+
searchActive: boolean;
|
|
18
|
+
setSearchQuery: (query: string) => void;
|
|
19
|
+
matchingLines: number[];
|
|
20
|
+
currentMatchIndex: number;
|
|
21
|
+
submitSearch: () => void;
|
|
22
|
+
}
|
|
23
|
+
export interface ModalNavigationOptions {
|
|
24
|
+
totalLines: number;
|
|
25
|
+
viewportHeight?: number;
|
|
26
|
+
getText?: () => string | undefined;
|
|
27
|
+
blockCount?: number;
|
|
28
|
+
blockLineMap?: number[];
|
|
29
|
+
/** Offset to subtract from search line numbers to get block indices (for when getText has different line structure than visual) */
|
|
30
|
+
searchLineOffset?: number;
|
|
31
|
+
multiSelect?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare function useModalNavigationCommands(opts: ModalNavigationOptions): ModalNavigationState;
|
|
34
|
+
//# sourceMappingURL=modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../src/modal.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAK5E,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;IACvB,SAAS,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAA;IACpD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,mIAAmI;IACnI,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB,GAAG,oBAAoB,CAkd7F"}
|