termui 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 +198 -0
- package/package.json +38 -0
- package/packages/cli/package.json +36 -0
- package/packages/components/dist/data/List.d.ts +15 -0
- package/packages/components/dist/data/List.d.ts.map +1 -0
- package/packages/components/dist/data/List.js +40 -0
- package/packages/components/dist/data/List.js.map +1 -0
- package/packages/components/dist/data/Table.d.ts +17 -0
- package/packages/components/dist/data/Table.d.ts.map +1 -0
- package/packages/components/dist/data/Table.js +74 -0
- package/packages/components/dist/data/Table.js.map +1 -0
- package/packages/components/dist/data/index.d.ts +5 -0
- package/packages/components/dist/data/index.d.ts.map +1 -0
- package/packages/components/dist/data/index.js +3 -0
- package/packages/components/dist/data/index.js.map +1 -0
- package/packages/components/dist/feedback/Alert.d.ts +10 -0
- package/packages/components/dist/feedback/Alert.d.ts.map +1 -0
- package/packages/components/dist/feedback/Alert.js +23 -0
- package/packages/components/dist/feedback/Alert.js.map +1 -0
- package/packages/components/dist/feedback/ProgressBar.d.ts +13 -0
- package/packages/components/dist/feedback/ProgressBar.d.ts.map +1 -0
- package/packages/components/dist/feedback/ProgressBar.js +13 -0
- package/packages/components/dist/feedback/ProgressBar.js.map +1 -0
- package/packages/components/dist/feedback/Spinner.d.ts +9 -0
- package/packages/components/dist/feedback/Spinner.d.ts.map +1 -0
- package/packages/components/dist/feedback/Spinner.js +26 -0
- package/packages/components/dist/feedback/Spinner.js.map +1 -0
- package/packages/components/dist/feedback/index.d.ts +7 -0
- package/packages/components/dist/feedback/index.d.ts.map +1 -0
- package/packages/components/dist/feedback/index.js +4 -0
- package/packages/components/dist/feedback/index.js.map +1 -0
- package/packages/components/dist/forms/Form.d.ts +22 -0
- package/packages/components/dist/forms/Form.d.ts.map +1 -0
- package/packages/components/dist/forms/Form.js +45 -0
- package/packages/components/dist/forms/Form.js.map +1 -0
- package/packages/components/dist/forms/index.d.ts +3 -0
- package/packages/components/dist/forms/index.d.ts.map +1 -0
- package/packages/components/dist/forms/index.js +2 -0
- package/packages/components/dist/forms/index.js.map +1 -0
- package/packages/components/dist/index.d.ts +11 -0
- package/packages/components/dist/index.d.ts.map +1 -0
- package/packages/components/dist/index.js +21 -0
- package/packages/components/dist/index.js.map +1 -0
- package/packages/components/dist/input/TextInput.d.ts +14 -0
- package/packages/components/dist/input/TextInput.d.ts.map +1 -0
- package/packages/components/dist/input/TextInput.js +44 -0
- package/packages/components/dist/input/TextInput.js.map +1 -0
- package/packages/components/dist/input/index.d.ts +3 -0
- package/packages/components/dist/input/index.d.ts.map +1 -0
- package/packages/components/dist/input/index.js +2 -0
- package/packages/components/dist/input/index.js.map +1 -0
- package/packages/components/dist/layout/Box.d.ts +11 -0
- package/packages/components/dist/layout/Box.d.ts.map +1 -0
- package/packages/components/dist/layout/Box.js +18 -0
- package/packages/components/dist/layout/Box.js.map +1 -0
- package/packages/components/dist/layout/Grid.d.ts +8 -0
- package/packages/components/dist/layout/Grid.d.ts.map +1 -0
- package/packages/components/dist/layout/Grid.js +12 -0
- package/packages/components/dist/layout/Grid.js.map +1 -0
- package/packages/components/dist/layout/ScrollView.d.ts +9 -0
- package/packages/components/dist/layout/ScrollView.d.ts.map +1 -0
- package/packages/components/dist/layout/ScrollView.js +26 -0
- package/packages/components/dist/layout/ScrollView.js.map +1 -0
- package/packages/components/dist/layout/Stack.d.ts +12 -0
- package/packages/components/dist/layout/Stack.d.ts.map +1 -0
- package/packages/components/dist/layout/Stack.js +6 -0
- package/packages/components/dist/layout/Stack.js.map +1 -0
- package/packages/components/dist/layout/index.d.ts +9 -0
- package/packages/components/dist/layout/index.d.ts.map +1 -0
- package/packages/components/dist/layout/index.js +5 -0
- package/packages/components/dist/layout/index.js.map +1 -0
- package/packages/components/dist/navigation/Tabs.d.ts +15 -0
- package/packages/components/dist/navigation/Tabs.d.ts.map +1 -0
- package/packages/components/dist/navigation/Tabs.js +34 -0
- package/packages/components/dist/navigation/Tabs.js.map +1 -0
- package/packages/components/dist/navigation/index.d.ts +3 -0
- package/packages/components/dist/navigation/index.d.ts.map +1 -0
- package/packages/components/dist/navigation/index.js +2 -0
- package/packages/components/dist/navigation/index.js.map +1 -0
- package/packages/components/dist/overlays/Modal.d.ts +10 -0
- package/packages/components/dist/overlays/Modal.d.ts.map +1 -0
- package/packages/components/dist/overlays/Modal.js +16 -0
- package/packages/components/dist/overlays/Modal.js.map +1 -0
- package/packages/components/dist/overlays/index.d.ts +3 -0
- package/packages/components/dist/overlays/index.d.ts.map +1 -0
- package/packages/components/dist/overlays/index.js +2 -0
- package/packages/components/dist/overlays/index.js.map +1 -0
- package/packages/components/dist/selection/Checkbox.d.ts +10 -0
- package/packages/components/dist/selection/Checkbox.d.ts.map +1 -0
- package/packages/components/dist/selection/Checkbox.js +26 -0
- package/packages/components/dist/selection/Checkbox.js.map +1 -0
- package/packages/components/dist/selection/Select.d.ts +17 -0
- package/packages/components/dist/selection/Select.d.ts.map +1 -0
- package/packages/components/dist/selection/Select.js +44 -0
- package/packages/components/dist/selection/Select.js.map +1 -0
- package/packages/components/dist/selection/index.d.ts +5 -0
- package/packages/components/dist/selection/index.d.ts.map +1 -0
- package/packages/components/dist/selection/index.js +3 -0
- package/packages/components/dist/selection/index.js.map +1 -0
- package/packages/components/dist/typography/Badge.d.ts +9 -0
- package/packages/components/dist/typography/Badge.d.ts.map +1 -0
- package/packages/components/dist/typography/Badge.js +18 -0
- package/packages/components/dist/typography/Badge.js.map +1 -0
- package/packages/components/dist/typography/Text.d.ts +15 -0
- package/packages/components/dist/typography/Text.d.ts.map +1 -0
- package/packages/components/dist/typography/Text.js +6 -0
- package/packages/components/dist/typography/Text.js.map +1 -0
- package/packages/components/dist/typography/index.d.ts +5 -0
- package/packages/components/dist/typography/index.d.ts.map +1 -0
- package/packages/components/dist/typography/index.js +3 -0
- package/packages/components/dist/typography/index.js.map +1 -0
- package/packages/components/dist/utility/Panel.d.ts +14 -0
- package/packages/components/dist/utility/Panel.d.ts.map +1 -0
- package/packages/components/dist/utility/Panel.js +8 -0
- package/packages/components/dist/utility/Panel.js.map +1 -0
- package/packages/components/dist/utility/Toggle.d.ts +11 -0
- package/packages/components/dist/utility/Toggle.d.ts.map +1 -0
- package/packages/components/dist/utility/Toggle.js +23 -0
- package/packages/components/dist/utility/Toggle.js.map +1 -0
- package/packages/components/dist/utility/index.d.ts +5 -0
- package/packages/components/dist/utility/index.d.ts.map +1 -0
- package/packages/components/dist/utility/index.js +3 -0
- package/packages/components/dist/utility/index.js.map +1 -0
- package/packages/components/package.json +36 -0
- package/packages/core/dist/hooks/index.d.ts +18 -0
- package/packages/core/dist/hooks/index.d.ts.map +1 -0
- package/packages/core/dist/hooks/index.js +13 -0
- package/packages/core/dist/hooks/index.js.map +1 -0
- package/packages/core/dist/hooks/useAnimation.d.ts +7 -0
- package/packages/core/dist/hooks/useAnimation.d.ts.map +1 -0
- package/packages/core/dist/hooks/useAnimation.js +40 -0
- package/packages/core/dist/hooks/useAnimation.js.map +1 -0
- package/packages/core/dist/hooks/useAsync.d.ts +25 -0
- package/packages/core/dist/hooks/useAsync.d.ts.map +1 -0
- package/packages/core/dist/hooks/useAsync.js +37 -0
- package/packages/core/dist/hooks/useAsync.js.map +1 -0
- package/packages/core/dist/hooks/useClipboard.d.ts +9 -0
- package/packages/core/dist/hooks/useClipboard.d.ts.map +1 -0
- package/packages/core/dist/hooks/useClipboard.js +14 -0
- package/packages/core/dist/hooks/useClipboard.js.map +1 -0
- package/packages/core/dist/hooks/useFocus.d.ts +10 -0
- package/packages/core/dist/hooks/useFocus.d.ts.map +1 -0
- package/packages/core/dist/hooks/useFocus.js +6 -0
- package/packages/core/dist/hooks/useFocus.js.map +1 -0
- package/packages/core/dist/hooks/useFocusManager.d.ts +9 -0
- package/packages/core/dist/hooks/useFocusManager.d.ts.map +1 -0
- package/packages/core/dist/hooks/useFocusManager.js +6 -0
- package/packages/core/dist/hooks/useFocusManager.js.map +1 -0
- package/packages/core/dist/hooks/useInput.d.ts +22 -0
- package/packages/core/dist/hooks/useInput.d.ts.map +1 -0
- package/packages/core/dist/hooks/useInput.js +6 -0
- package/packages/core/dist/hooks/useInput.js.map +1 -0
- package/packages/core/dist/hooks/useInterval.d.ts +6 -0
- package/packages/core/dist/hooks/useInterval.d.ts.map +1 -0
- package/packages/core/dist/hooks/useInterval.js +18 -0
- package/packages/core/dist/hooks/useInterval.js.map +1 -0
- package/packages/core/dist/hooks/useKeymap.d.ts +13 -0
- package/packages/core/dist/hooks/useKeymap.d.ts.map +1 -0
- package/packages/core/dist/hooks/useKeymap.js +36 -0
- package/packages/core/dist/hooks/useKeymap.js.map +1 -0
- package/packages/core/dist/hooks/useMouse.d.ts +19 -0
- package/packages/core/dist/hooks/useMouse.d.ts.map +1 -0
- package/packages/core/dist/hooks/useMouse.js +60 -0
- package/packages/core/dist/hooks/useMouse.js.map +1 -0
- package/packages/core/dist/hooks/useResize.d.ts +7 -0
- package/packages/core/dist/hooks/useResize.d.ts.map +1 -0
- package/packages/core/dist/hooks/useResize.js +27 -0
- package/packages/core/dist/hooks/useResize.js.map +1 -0
- package/packages/core/dist/hooks/useTerminal.d.ts +4 -0
- package/packages/core/dist/hooks/useTerminal.d.ts.map +1 -0
- package/packages/core/dist/hooks/useTerminal.js +17 -0
- package/packages/core/dist/hooks/useTerminal.js.map +1 -0
- package/packages/core/dist/hooks/useTheme.d.ts +2 -0
- package/packages/core/dist/hooks/useTheme.d.ts.map +1 -0
- package/packages/core/dist/hooks/useTheme.js +3 -0
- package/packages/core/dist/hooks/useTheme.js.map +1 -0
- package/packages/core/dist/index.d.ts +4 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +7 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/styling/ThemeProvider.d.ts +15 -0
- package/packages/core/dist/styling/ThemeProvider.d.ts.map +1 -0
- package/packages/core/dist/styling/ThemeProvider.js +44 -0
- package/packages/core/dist/styling/ThemeProvider.js.map +1 -0
- package/packages/core/dist/styling/index.d.ts +7 -0
- package/packages/core/dist/styling/index.d.ts.map +1 -0
- package/packages/core/dist/styling/index.js +7 -0
- package/packages/core/dist/styling/index.js.map +1 -0
- package/packages/core/dist/styling/style.d.ts +25 -0
- package/packages/core/dist/styling/style.d.ts.map +1 -0
- package/packages/core/dist/styling/style.js +57 -0
- package/packages/core/dist/styling/style.js.map +1 -0
- package/packages/core/dist/styling/themes/default.d.ts +3 -0
- package/packages/core/dist/styling/themes/default.d.ts.map +1 -0
- package/packages/core/dist/styling/themes/default.js +49 -0
- package/packages/core/dist/styling/themes/default.js.map +1 -0
- package/packages/core/dist/styling/themes/dracula.d.ts +3 -0
- package/packages/core/dist/styling/themes/dracula.d.ts.map +1 -0
- package/packages/core/dist/styling/themes/dracula.js +49 -0
- package/packages/core/dist/styling/themes/dracula.js.map +1 -0
- package/packages/core/dist/styling/themes/nord.d.ts +3 -0
- package/packages/core/dist/styling/themes/nord.d.ts.map +1 -0
- package/packages/core/dist/styling/themes/nord.js +49 -0
- package/packages/core/dist/styling/themes/nord.js.map +1 -0
- package/packages/core/dist/styling/tokens.d.ts +57 -0
- package/packages/core/dist/styling/tokens.d.ts.map +1 -0
- package/packages/core/dist/styling/tokens.js +6 -0
- package/packages/core/dist/styling/tokens.js.map +1 -0
- package/packages/core/dist/terminal/ansi.d.ts +107 -0
- package/packages/core/dist/terminal/ansi.d.ts.map +1 -0
- package/packages/core/dist/terminal/ansi.js +153 -0
- package/packages/core/dist/terminal/ansi.js.map +1 -0
- package/packages/core/dist/terminal/capabilities.d.ts +21 -0
- package/packages/core/dist/terminal/capabilities.d.ts.map +1 -0
- package/packages/core/dist/terminal/capabilities.js +74 -0
- package/packages/core/dist/terminal/capabilities.js.map +1 -0
- package/packages/core/dist/terminal/index.d.ts +3 -0
- package/packages/core/dist/terminal/index.d.ts.map +1 -0
- package/packages/core/dist/terminal/index.js +3 -0
- package/packages/core/dist/terminal/index.js.map +1 -0
- package/packages/core/package.json +49 -0
- package/registry/components/alert/meta.json +9 -0
- package/registry/components/badge/meta.json +9 -0
- package/registry/components/box/meta.json +9 -0
- package/registry/components/checkbox/meta.json +9 -0
- package/registry/components/form/meta.json +9 -0
- package/registry/components/grid/meta.json +9 -0
- package/registry/components/list/meta.json +9 -0
- package/registry/components/modal/meta.json +9 -0
- package/registry/components/panel/meta.json +9 -0
- package/registry/components/progress-bar/meta.json +9 -0
- package/registry/components/scroll-view/meta.json +9 -0
- package/registry/components/select/meta.json +9 -0
- package/registry/components/spinner/meta.json +9 -0
- package/registry/components/stack/meta.json +9 -0
- package/registry/components/table/meta.json +9 -0
- package/registry/components/tabs/meta.json +9 -0
- package/registry/components/text/meta.json +9 -0
- package/registry/components/text-input/meta.json +9 -0
- package/registry/components/toggle/meta.json +9 -0
- package/registry/schema.json +178 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;AAE7D,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAEtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInput.js","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,KAAK,CAAC;AAqB9C,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,OAAqB,EAAE,OAAgC;IAC9E,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React-safe setInterval hook with automatic cleanup.
|
|
3
|
+
* The callback is always fresh (via ref) so stale closure is not an issue.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useInterval(callback: () => void, delay: number | null): void;
|
|
6
|
+
//# sourceMappingURL=useInterval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInterval.d.ts","sourceRoot":"","sources":["../../src/hooks/useInterval.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAY5E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* React-safe setInterval hook with automatic cleanup.
|
|
4
|
+
* The callback is always fresh (via ref) so stale closure is not an issue.
|
|
5
|
+
*/
|
|
6
|
+
export function useInterval(callback, delay) {
|
|
7
|
+
const savedCallback = useRef(callback);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
savedCallback.current = callback;
|
|
10
|
+
}, [callback]);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (delay === null)
|
|
13
|
+
return;
|
|
14
|
+
const id = setInterval(() => savedCallback.current(), delay);
|
|
15
|
+
return () => clearInterval(id);
|
|
16
|
+
}, [delay]);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=useInterval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInterval.js","sourceRoot":"","sources":["../../src/hooks/useInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAoB,EAAE,KAAoB;IACpE,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,OAAO,GAAG,QAAQ,CAAC;IACnC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type KeyBinding = {
|
|
2
|
+
key?: string;
|
|
3
|
+
ctrl?: boolean;
|
|
4
|
+
shift?: boolean;
|
|
5
|
+
meta?: boolean;
|
|
6
|
+
action: () => void;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Declarative keybinding registration with conflict detection.
|
|
10
|
+
* Pass an array of KeyBinding objects; the hook handles matching and invocation.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useKeymap(bindings: KeyBinding[], isActive?: boolean): void;
|
|
13
|
+
//# sourceMappingURL=useKeymap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeymap.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeymap.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,UAAO,GAAG,IAAI,CA+BvE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { useInput } from './useInput.js';
|
|
3
|
+
/**
|
|
4
|
+
* Declarative keybinding registration with conflict detection.
|
|
5
|
+
* Pass an array of KeyBinding objects; the hook handles matching and invocation.
|
|
6
|
+
*/
|
|
7
|
+
export function useKeymap(bindings, isActive = true) {
|
|
8
|
+
const bindingsRef = useRef(bindings);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
bindingsRef.current = bindings;
|
|
11
|
+
}, [bindings]);
|
|
12
|
+
// Detect conflicts on mount
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const seen = new Set();
|
|
15
|
+
for (const b of bindings) {
|
|
16
|
+
const id = `${b.key ?? ''}:${b.ctrl ? 'ctrl' : ''}:${b.shift ? 'shift' : ''}:${b.meta ? 'meta' : ''}`;
|
|
17
|
+
if (seen.has(id)) {
|
|
18
|
+
console.warn(`[useKeymap] Conflicting keybinding: ${id}`);
|
|
19
|
+
}
|
|
20
|
+
seen.add(id);
|
|
21
|
+
}
|
|
22
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
23
|
+
}, []);
|
|
24
|
+
useInput((input, key) => {
|
|
25
|
+
for (const binding of bindingsRef.current) {
|
|
26
|
+
const keyMatch = !binding.key || input === binding.key;
|
|
27
|
+
const ctrlMatch = binding.ctrl === undefined || binding.ctrl === key.ctrl;
|
|
28
|
+
const shiftMatch = binding.shift === undefined || binding.shift === key.shift;
|
|
29
|
+
const metaMatch = binding.meta === undefined || binding.meta === key.meta;
|
|
30
|
+
if (keyMatch && ctrlMatch && shiftMatch && metaMatch) {
|
|
31
|
+
binding.action();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}, { isActive });
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=useKeymap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeymap.js","sourceRoot":"","sources":["../../src/hooks/useKeymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWzC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,QAAsB,EAAE,QAAQ,GAAG,IAAI;IAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,4BAA4B;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACtG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QACH,uDAAuD;IACvD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,QAAQ,CAAC,CAAC,KAAa,EAAE,GAAQ,EAAE,EAAE;QACnC,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC;YACvD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC;YAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC;YAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC;YAC1E,IAAI,QAAQ,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBACrD,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type MouseButton = 'left' | 'middle' | 'right' | 'scrollUp' | 'scrollDown';
|
|
2
|
+
export interface MouseEvent {
|
|
3
|
+
type: 'press' | 'release' | 'move';
|
|
4
|
+
button: MouseButton;
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
ctrl: boolean;
|
|
8
|
+
shift: boolean;
|
|
9
|
+
meta: boolean;
|
|
10
|
+
}
|
|
11
|
+
type MouseHandler = (event: MouseEvent) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Mouse events hook (click, scroll, drag).
|
|
14
|
+
* Requires terminal to support xterm mouse protocol.
|
|
15
|
+
* Enables mouse tracking on mount, disables on unmount.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useMouse(handler: MouseHandler): void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=useMouse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMouse.d.ts","sourceRoot":"","sources":["../../src/hooks/useMouse.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAAC;AAElF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CA2DpD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Mouse events hook (click, scroll, drag).
|
|
4
|
+
* Requires terminal to support xterm mouse protocol.
|
|
5
|
+
* Enables mouse tracking on mount, disables on unmount.
|
|
6
|
+
*/
|
|
7
|
+
export function useMouse(handler) {
|
|
8
|
+
const handlerRef = { current: handler };
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
handlerRef.current = handler;
|
|
11
|
+
});
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!process.stdout.isTTY)
|
|
14
|
+
return;
|
|
15
|
+
// Enable xterm mouse protocol (button + any event tracking)
|
|
16
|
+
process.stdout.write('\x1b[?1000h'); // basic mouse
|
|
17
|
+
process.stdout.write('\x1b[?1002h'); // button event tracking
|
|
18
|
+
process.stdout.write('\x1b[?1006h'); // SGR extended coordinates
|
|
19
|
+
const rawHandler = (data) => {
|
|
20
|
+
const str = data.toString();
|
|
21
|
+
// Parse SGR mouse sequence: \x1b[<Cb;Cx;CyM or m
|
|
22
|
+
const match = str.match(/\x1b\[<(\d+);(\d+);(\d+)([Mm])/);
|
|
23
|
+
if (!match)
|
|
24
|
+
return;
|
|
25
|
+
const cb = parseInt(match[1], 10);
|
|
26
|
+
const x = parseInt(match[2], 10);
|
|
27
|
+
const y = parseInt(match[3], 10);
|
|
28
|
+
const released = match[4] === 'm';
|
|
29
|
+
const ctrl = Boolean(cb & 16);
|
|
30
|
+
const meta = Boolean(cb & 8);
|
|
31
|
+
const shift = Boolean(cb & 4);
|
|
32
|
+
const buttonCode = cb & 3;
|
|
33
|
+
let button;
|
|
34
|
+
if (cb & 64) {
|
|
35
|
+
button = buttonCode === 0 ? 'scrollUp' : 'scrollDown';
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
button = ['left', 'middle', 'right'][buttonCode] ?? 'left';
|
|
39
|
+
}
|
|
40
|
+
handlerRef.current({
|
|
41
|
+
type: released ? 'release' : 'press',
|
|
42
|
+
button,
|
|
43
|
+
x,
|
|
44
|
+
y,
|
|
45
|
+
ctrl,
|
|
46
|
+
shift,
|
|
47
|
+
meta,
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
process.stdin.on('data', rawHandler);
|
|
51
|
+
return () => {
|
|
52
|
+
// Disable mouse tracking
|
|
53
|
+
process.stdout.write('\x1b[?1000l');
|
|
54
|
+
process.stdout.write('\x1b[?1002l');
|
|
55
|
+
process.stdout.write('\x1b[?1006l');
|
|
56
|
+
process.stdin.off('data', rawHandler);
|
|
57
|
+
};
|
|
58
|
+
}, []);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=useMouse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMouse.js","sourceRoot":"","sources":["../../src/hooks/useMouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AAgB5C;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAqB;IAC5C,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO;QAElC,4DAA4D;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,2BAA2B;QAEhE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,iDAAiD;YACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAElC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC;YAE1B,IAAI,MAAmB,CAAC;YACxB,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;gBACZ,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAW,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC;YACxE,CAAC;YAED,UAAU,CAAC,OAAO,CAAC;gBACjB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;gBACpC,MAAM;gBACN,CAAC;gBACD,CAAC;gBACD,IAAI;gBACJ,KAAK;gBACL,IAAI;aACL,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAErC,OAAO,GAAG,EAAE;YACV,yBAAyB;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResize.d.ts","sourceRoot":"","sources":["../../src/hooks/useResize.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,UAAU,SAAK,GAAG,YAAY,CAyBvD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
/** Returns terminal dimensions, updates on resize with debounce */
|
|
3
|
+
export function useResize(debounceMs = 50) {
|
|
4
|
+
const [size, setSize] = useState({
|
|
5
|
+
columns: process.stdout.columns ?? 80,
|
|
6
|
+
rows: process.stdout.rows ?? 24,
|
|
7
|
+
});
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
let timer;
|
|
10
|
+
const handler = () => {
|
|
11
|
+
clearTimeout(timer);
|
|
12
|
+
timer = setTimeout(() => {
|
|
13
|
+
setSize({
|
|
14
|
+
columns: process.stdout.columns ?? 80,
|
|
15
|
+
rows: process.stdout.rows ?? 24,
|
|
16
|
+
});
|
|
17
|
+
}, debounceMs);
|
|
18
|
+
};
|
|
19
|
+
process.stdout.on('resize', handler);
|
|
20
|
+
return () => {
|
|
21
|
+
clearTimeout(timer);
|
|
22
|
+
process.stdout.off('resize', handler);
|
|
23
|
+
};
|
|
24
|
+
}, [debounceMs]);
|
|
25
|
+
return size;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=useResize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResize.js","sourceRoot":"","sources":["../../src/hooks/useResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAO5C,mEAAmE;AACnE,MAAM,UAAU,SAAS,CAAC,UAAU,GAAG,EAAE;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe;QAC7C,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;QACrC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;KAChC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAoC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,OAAO,CAAC;oBACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;oBACrC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;iBAChC,CAAC,CAAC;YACL,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTerminal.d.ts","sourceRoot":"","sources":["../../src/hooks/useTerminal.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAE9G,+DAA+D;AAC/D,wBAAgB,WAAW,IAAI,oBAAoB,CAclD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { getCapabilities, refreshCapabilities } from '../terminal/capabilities.js';
|
|
3
|
+
/** Returns current terminal capabilities, updates on resize */
|
|
4
|
+
export function useTerminal() {
|
|
5
|
+
const [caps, setCaps] = useState(getCapabilities);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const handler = () => {
|
|
8
|
+
setCaps(refreshCapabilities());
|
|
9
|
+
};
|
|
10
|
+
process.stdout.on('resize', handler);
|
|
11
|
+
return () => {
|
|
12
|
+
process.stdout.off('resize', handler);
|
|
13
|
+
};
|
|
14
|
+
}, []);
|
|
15
|
+
return caps;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=useTerminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTerminal.js","sourceRoot":"","sources":["../../src/hooks/useTerminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAC;AAE9G,+DAA+D;AAC/D,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAuB,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AAEpC,iBAAiB;AACjB,cAAc,oBAAoB,CAAC;AAEnC,QAAQ;AACR,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { Theme } from './tokens.js';
|
|
3
|
+
interface ThemeProviderProps {
|
|
4
|
+
theme?: Theme;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function ThemeProvider({ theme, children }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function useTheme(): Theme;
|
|
9
|
+
export declare function useThemeUpdater(): (theme: Theme) => void;
|
|
10
|
+
/** Create a custom theme by merging with the default theme */
|
|
11
|
+
export declare function createTheme(overrides: Partial<Theme> & {
|
|
12
|
+
name: string;
|
|
13
|
+
}): Theme;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ThemeProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/styling/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAazC,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAoB,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAYnF;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAEhC;AAED,wBAAgB,eAAe,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAExD;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAqB/E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { createContext, useContext } from 'react';
|
|
3
|
+
import { defaultTheme } from './themes/default.js';
|
|
4
|
+
const ThemeContext = createContext({
|
|
5
|
+
theme: defaultTheme,
|
|
6
|
+
setTheme: () => { },
|
|
7
|
+
});
|
|
8
|
+
export function ThemeProvider({ theme = defaultTheme, children }) {
|
|
9
|
+
const [currentTheme, setCurrentTheme] = React.useState(theme);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
setCurrentTheme(theme);
|
|
12
|
+
}, [theme]);
|
|
13
|
+
return (_jsx(ThemeContext.Provider, { value: { theme: currentTheme, setTheme: setCurrentTheme }, children: children }));
|
|
14
|
+
}
|
|
15
|
+
export function useTheme() {
|
|
16
|
+
return useContext(ThemeContext).theme;
|
|
17
|
+
}
|
|
18
|
+
export function useThemeUpdater() {
|
|
19
|
+
return useContext(ThemeContext).setTheme;
|
|
20
|
+
}
|
|
21
|
+
/** Create a custom theme by merging with the default theme */
|
|
22
|
+
export function createTheme(overrides) {
|
|
23
|
+
return {
|
|
24
|
+
...defaultTheme,
|
|
25
|
+
...overrides,
|
|
26
|
+
colors: {
|
|
27
|
+
...defaultTheme.colors,
|
|
28
|
+
...(overrides.colors ?? {}),
|
|
29
|
+
},
|
|
30
|
+
spacing: {
|
|
31
|
+
...defaultTheme.spacing,
|
|
32
|
+
...(overrides.spacing ?? {}),
|
|
33
|
+
},
|
|
34
|
+
typography: {
|
|
35
|
+
...defaultTheme.typography,
|
|
36
|
+
...(overrides.typography ?? {}),
|
|
37
|
+
},
|
|
38
|
+
border: {
|
|
39
|
+
...defaultTheme.border,
|
|
40
|
+
...(overrides.border ?? {}),
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/styling/ThemeProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOnD,MAAM,YAAY,GAAG,aAAa,CAAoB;IACpD,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC,CAAC;AAOH,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,QAAQ,EAAsB;IAClF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAQ,KAAK,CAAC,CAAC;IAErE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,YAC7E,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC;AAC3C,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,SAA4C;IACtE,OAAO;QACL,GAAG,YAAY;QACf,GAAG,SAAS;QACZ,MAAM,EAAE;YACN,GAAG,YAAY,CAAC,MAAM;YACtB,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;SAC5B;QACD,OAAO,EAAE;YACP,GAAG,YAAY,CAAC,OAAO;YACvB,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;SAC7B;QACD,UAAU,EAAE;YACV,GAAG,YAAY,CAAC,UAAU;YAC1B,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC;SAChC;QACD,MAAM,EAAE;YACN,GAAG,YAAY,CAAC,MAAM;YACtB,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;SAC5B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './tokens.js';
|
|
2
|
+
export * from './ThemeProvider.js';
|
|
3
|
+
export * from './style.js';
|
|
4
|
+
export { defaultTheme } from './themes/default.js';
|
|
5
|
+
export { draculaTheme } from './themes/dracula.js';
|
|
6
|
+
export { nordTheme } from './themes/nord.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styling/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './tokens.js';
|
|
2
|
+
export * from './ThemeProvider.js';
|
|
3
|
+
export * from './style.js';
|
|
4
|
+
export { defaultTheme } from './themes/default.js';
|
|
5
|
+
export { draculaTheme } from './themes/dracula.js';
|
|
6
|
+
export { nordTheme } from './themes/nord.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/styling/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chainable style builder for ANSI-styled strings.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* style('Hello').bold().fg('#FF0000').build()
|
|
6
|
+
* style('World').dim().underline().build()
|
|
7
|
+
*/
|
|
8
|
+
export declare class StyleBuilder {
|
|
9
|
+
private _text;
|
|
10
|
+
private _codes;
|
|
11
|
+
constructor(text: string);
|
|
12
|
+
bold(): this;
|
|
13
|
+
dim(): this;
|
|
14
|
+
italic(): this;
|
|
15
|
+
underline(): this;
|
|
16
|
+
strikethrough(): this;
|
|
17
|
+
fg(color: string): this;
|
|
18
|
+
bg(color: string): this;
|
|
19
|
+
/** Build the final ANSI-styled string */
|
|
20
|
+
build(): string;
|
|
21
|
+
toString(): string;
|
|
22
|
+
}
|
|
23
|
+
/** Entry point: style('text').bold().fg('#fff').build() */
|
|
24
|
+
export declare function style(text: string): StyleBuilder;
|
|
25
|
+
//# sourceMappingURL=style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/styling/style.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAgB;gBAElB,IAAI,EAAE,MAAM;IAIxB,IAAI,IAAI,IAAI;IAKZ,GAAG,IAAI,IAAI;IAKX,MAAM,IAAI,IAAI;IAKd,SAAS,IAAI,IAAI;IAKjB,aAAa,IAAI,IAAI;IAKrB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKvB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKvB,yCAAyC;IACzC,KAAK,IAAI,MAAM;IAKf,QAAQ,IAAI,MAAM;CAGnB;AAED,2DAA2D;AAC3D,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEhD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { fgHex, bgHex, bold, dim, italic, underline, strikethrough, reset } from '../terminal/ansi.js';
|
|
2
|
+
/**
|
|
3
|
+
* Chainable style builder for ANSI-styled strings.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* style('Hello').bold().fg('#FF0000').build()
|
|
7
|
+
* style('World').dim().underline().build()
|
|
8
|
+
*/
|
|
9
|
+
export class StyleBuilder {
|
|
10
|
+
_text;
|
|
11
|
+
_codes = [];
|
|
12
|
+
constructor(text) {
|
|
13
|
+
this._text = text;
|
|
14
|
+
}
|
|
15
|
+
bold() {
|
|
16
|
+
this._codes.push(bold);
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
dim() {
|
|
20
|
+
this._codes.push(dim);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
italic() {
|
|
24
|
+
this._codes.push(italic);
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
underline() {
|
|
28
|
+
this._codes.push(underline);
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
strikethrough() {
|
|
32
|
+
this._codes.push(strikethrough);
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
fg(color) {
|
|
36
|
+
this._codes.push(fgHex(color));
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
bg(color) {
|
|
40
|
+
this._codes.push(bgHex(color));
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
/** Build the final ANSI-styled string */
|
|
44
|
+
build() {
|
|
45
|
+
if (this._codes.length === 0)
|
|
46
|
+
return this._text;
|
|
47
|
+
return `${this._codes.join('')}${this._text}${reset}`;
|
|
48
|
+
}
|
|
49
|
+
toString() {
|
|
50
|
+
return this.build();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Entry point: style('text').bold().fg('#fff').build() */
|
|
54
|
+
export function style(text) {
|
|
55
|
+
return new StyleBuilder(text);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/styling/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIvG;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,CAAS;IACd,MAAM,GAAa,EAAE,CAAC;IAE9B,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CAAC,KAAa;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,EAAE,CAAC,KAAa;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QAChD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAED,2DAA2D;AAC3D,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/styling/themes/default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,YAAY,EAAE,KAkD1B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const defaultTheme = {
|
|
2
|
+
name: 'default',
|
|
3
|
+
colors: {
|
|
4
|
+
primary: '#7C3AED',
|
|
5
|
+
primaryForeground: '#FFFFFF',
|
|
6
|
+
secondary: '#6B7280',
|
|
7
|
+
secondaryForeground: '#FFFFFF',
|
|
8
|
+
accent: '#8B5CF6',
|
|
9
|
+
accentForeground: '#FFFFFF',
|
|
10
|
+
success: '#10B981',
|
|
11
|
+
successForeground: '#FFFFFF',
|
|
12
|
+
warning: '#F59E0B',
|
|
13
|
+
warningForeground: '#000000',
|
|
14
|
+
error: '#EF4444',
|
|
15
|
+
errorForeground: '#FFFFFF',
|
|
16
|
+
info: '#3B82F6',
|
|
17
|
+
infoForeground: '#FFFFFF',
|
|
18
|
+
background: '#000000',
|
|
19
|
+
foreground: '#FFFFFF',
|
|
20
|
+
muted: '#374151',
|
|
21
|
+
mutedForeground: '#9CA3AF',
|
|
22
|
+
border: '#4B5563',
|
|
23
|
+
focusRing: '#8B5CF6',
|
|
24
|
+
selection: '#7C3AED',
|
|
25
|
+
selectionForeground: '#FFFFFF',
|
|
26
|
+
},
|
|
27
|
+
spacing: {
|
|
28
|
+
0: 0,
|
|
29
|
+
1: 1,
|
|
30
|
+
2: 2,
|
|
31
|
+
3: 3,
|
|
32
|
+
4: 4,
|
|
33
|
+
6: 6,
|
|
34
|
+
8: 8,
|
|
35
|
+
},
|
|
36
|
+
typography: {
|
|
37
|
+
bold: true,
|
|
38
|
+
sm: 'dim',
|
|
39
|
+
base: '',
|
|
40
|
+
lg: 'bold',
|
|
41
|
+
xl: 'bold',
|
|
42
|
+
},
|
|
43
|
+
border: {
|
|
44
|
+
style: 'round',
|
|
45
|
+
color: '#4B5563',
|
|
46
|
+
focusColor: '#8B5CF6',
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/styling/themes/default.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,SAAS;IACf,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,SAAS;QAC9B,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,SAAS;QAE3B,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,OAAO,EAAE,SAAS;QAClB,iBAAiB,EAAE,SAAS;QAC5B,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,SAAS;QAEzB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,SAAS;QAEjB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,mBAAmB,EAAE,SAAS;KAC/B;IACD,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,UAAU,EAAE;QACV,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE;QACR,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;KACX;IACD,MAAM,EAAE;QACN,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,SAAS;KACtB;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dracula.d.ts","sourceRoot":"","sources":["../../../src/styling/themes/dracula.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,YAAY,EAAE,KAkD1B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const draculaTheme = {
|
|
2
|
+
name: 'dracula',
|
|
3
|
+
colors: {
|
|
4
|
+
primary: '#BD93F9',
|
|
5
|
+
primaryForeground: '#282A36',
|
|
6
|
+
secondary: '#6272A4',
|
|
7
|
+
secondaryForeground: '#F8F8F2',
|
|
8
|
+
accent: '#FF79C6',
|
|
9
|
+
accentForeground: '#282A36',
|
|
10
|
+
success: '#50FA7B',
|
|
11
|
+
successForeground: '#282A36',
|
|
12
|
+
warning: '#F1FA8C',
|
|
13
|
+
warningForeground: '#282A36',
|
|
14
|
+
error: '#FF5555',
|
|
15
|
+
errorForeground: '#F8F8F2',
|
|
16
|
+
info: '#8BE9FD',
|
|
17
|
+
infoForeground: '#282A36',
|
|
18
|
+
background: '#282A36',
|
|
19
|
+
foreground: '#F8F8F2',
|
|
20
|
+
muted: '#44475A',
|
|
21
|
+
mutedForeground: '#6272A4',
|
|
22
|
+
border: '#6272A4',
|
|
23
|
+
focusRing: '#BD93F9',
|
|
24
|
+
selection: '#44475A',
|
|
25
|
+
selectionForeground: '#F8F8F2',
|
|
26
|
+
},
|
|
27
|
+
spacing: {
|
|
28
|
+
0: 0,
|
|
29
|
+
1: 1,
|
|
30
|
+
2: 2,
|
|
31
|
+
3: 3,
|
|
32
|
+
4: 4,
|
|
33
|
+
6: 6,
|
|
34
|
+
8: 8,
|
|
35
|
+
},
|
|
36
|
+
typography: {
|
|
37
|
+
bold: true,
|
|
38
|
+
sm: 'dim',
|
|
39
|
+
base: '',
|
|
40
|
+
lg: 'bold',
|
|
41
|
+
xl: 'bold',
|
|
42
|
+
},
|
|
43
|
+
border: {
|
|
44
|
+
style: 'round',
|
|
45
|
+
color: '#6272A4',
|
|
46
|
+
focusColor: '#BD93F9',
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=dracula.js.map
|