@effect-tui/react 0.4.2 → 0.6.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.
@@ -8,7 +8,7 @@ import type { OverlayProps } from "./src/hosts/overlay.js";
8
8
  import type { OverlayItemProps } from "./src/hosts/overlay-item.js";
9
9
  import type { ScrollProps } from "./src/hosts/scroll.js";
10
10
  import type { SpacerProps } from "./src/hosts/spacer.js";
11
- import type { TextProps } from "./src/hosts/text.js";
11
+ import type { StyledTextProps, TextProps } from "./src/hosts/text.js";
12
12
  import type { VStackProps } from "./src/hosts/vstack.js";
13
13
  import type { ZStackProps } from "./src/hosts/zstack.js";
14
14
  declare const JSX: {};
@@ -30,6 +30,7 @@ export declare namespace JSX {
30
30
  text: TextProps & {
31
31
  children?: React.ReactNode;
32
32
  };
33
+ styledtext: StyledTextProps;
33
34
  spacer: SpacerProps;
34
35
  vstack: VStackProps & {
35
36
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../jsx-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,QAAA,MAAM,GAAG,IAAK,CAAA;AACd,OAAO,EAAE,GAAG,EAAE,CAAA;AAEd,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC5B,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAA;IAErC,UAAiB,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,SAAS,CAAA;KACzB;IAED,UAAiB,yBAAyB;QACzC,KAAK,EAAE,EAAE,CAAA;KACT;IAED,UAAiB,wBAAwB;QACxC,QAAQ,EAAE,EAAE,CAAA;KACZ;IAED,UAAiB,mBAAoB,SAAQ,KAAK,CAAC,UAAU;KAAG;IAGhE,UAAiB,iBAAkB,SAAQ,KAAK,CAAC,GAAG,CAAC,iBAAiB;QAErE,IAAI,EAAE,SAAS,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAChD,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;QACxE,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,GAAG,EAAE,QAAQ,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAC9C,MAAM,EAAE,WAAW,CAAA;QACnB,SAAS,EAAE,cAAc,CAAA;QACzB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,OAAO,EAAE,YAAY,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACtD,WAAW,EAAE,gBAAgB,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;KAC9D;CACD"}
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../jsx-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAGvD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,QAAA,MAAM,GAAG,IAAK,CAAA;AACd,OAAO,EAAE,GAAG,EAAE,CAAA;AAEd,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC5B,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAA;IAErC,UAAiB,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,SAAS,CAAA;KACzB;IAED,UAAiB,yBAAyB;QACzC,KAAK,EAAE,EAAE,CAAA;KACT;IAED,UAAiB,wBAAwB;QACxC,QAAQ,EAAE,EAAE,CAAA;KACZ;IAED,UAAiB,mBAAoB,SAAQ,KAAK,CAAC,UAAU;KAAG;IAGhE,UAAiB,iBAAkB,SAAQ,KAAK,CAAC,GAAG,CAAC,iBAAiB;QAErE,IAAI,EAAE,SAAS,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAChD,UAAU,EAAE,eAAe,CAAA;QAC3B,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;QACxE,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,GAAG,EAAE,QAAQ,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QAC9C,MAAM,EAAE,WAAW,CAAA;QACnB,SAAS,EAAE,cAAc,CAAA;QACzB,MAAM,EAAE,WAAW,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACpD,OAAO,EAAE,YAAY,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;QACtD,WAAW,EAAE,gBAAgB,GAAG;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE,CAAA;KAC9D;CACD"}
@@ -0,0 +1,58 @@
1
+ import type { ReactNode } from "react";
2
+ export interface ListViewProps<T> {
3
+ /** Items to render */
4
+ items: readonly T[];
5
+ /** Currently selected index */
6
+ selectedIndex: number;
7
+ /** Render function for each item */
8
+ renderItem: (item: T, index: number, isSelected: boolean) => ReactNode;
9
+ /** Extract unique key for each item */
10
+ keyExtractor: (item: T, index: number) => string | number;
11
+ /** Height of each item in rows (default: 1) */
12
+ itemHeight?: number;
13
+ /** Padding rows to keep around selected item (default: 0) */
14
+ scrollPadding?: number;
15
+ /** Show scrollbar (default: true) */
16
+ showScrollbar?: boolean;
17
+ /** Empty state content when items is empty */
18
+ emptyContent?: ReactNode;
19
+ }
20
+ /**
21
+ * A scrolling list view with selection and scroll-into-view behavior.
22
+ *
23
+ * Features:
24
+ * - Automatically scrolls to keep selected item visible when selection changes
25
+ * - Supports mouse wheel scrolling with macOS-style acceleration
26
+ * - Shows a scroll bar when content overflows
27
+ *
28
+ * Keyboard navigation should be handled by the parent component - update
29
+ * `selectedIndex` and ListView will scroll to keep it visible.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * const [selectedIndex, setSelectedIndex] = useState(0)
34
+ *
35
+ * // Handle keyboard in parent
36
+ * useKeyboard((key) => {
37
+ * if (key.name === "down" || key.text === "j") {
38
+ * setSelectedIndex(i => Math.min(items.length - 1, i + 1))
39
+ * }
40
+ * if (key.name === "up" || key.text === "k") {
41
+ * setSelectedIndex(i => Math.max(0, i - 1))
42
+ * }
43
+ * })
44
+ *
45
+ * return (
46
+ * <ListView
47
+ * items={cards}
48
+ * selectedIndex={selectedIndex}
49
+ * renderItem={(card, i, isSelected) => (
50
+ * <CardListItem card={card} isSelected={isSelected} />
51
+ * )}
52
+ * keyExtractor={(card) => card.id}
53
+ * />
54
+ * )
55
+ * ```
56
+ */
57
+ export declare function ListView<T>({ items, selectedIndex, renderItem, keyExtractor, itemHeight, scrollPadding, showScrollbar, emptyContent, }: ListViewProps<T>): ReactNode;
58
+ //# sourceMappingURL=ListView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,sBAAsB;IACtB,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IACnB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,oCAAoC;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAA;IACtE,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAA;IACzD,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAC3B,KAAK,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAc,EACd,aAAiB,EACjB,aAAoB,EACpB,YAAY,GACZ,EAAE,aAAa,CAAC,CAAC,CAAC,aAyClB"}
@@ -0,0 +1,68 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "@effect-tui/react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ import { useScroll } from "../hooks/use-scroll.js";
4
+ /**
5
+ * A scrolling list view with selection and scroll-into-view behavior.
6
+ *
7
+ * Features:
8
+ * - Automatically scrolls to keep selected item visible when selection changes
9
+ * - Supports mouse wheel scrolling with macOS-style acceleration
10
+ * - Shows a scroll bar when content overflows
11
+ *
12
+ * Keyboard navigation should be handled by the parent component - update
13
+ * `selectedIndex` and ListView will scroll to keep it visible.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const [selectedIndex, setSelectedIndex] = useState(0)
18
+ *
19
+ * // Handle keyboard in parent
20
+ * useKeyboard((key) => {
21
+ * if (key.name === "down" || key.text === "j") {
22
+ * setSelectedIndex(i => Math.min(items.length - 1, i + 1))
23
+ * }
24
+ * if (key.name === "up" || key.text === "k") {
25
+ * setSelectedIndex(i => Math.max(0, i - 1))
26
+ * }
27
+ * })
28
+ *
29
+ * return (
30
+ * <ListView
31
+ * items={cards}
32
+ * selectedIndex={selectedIndex}
33
+ * renderItem={(card, i, isSelected) => (
34
+ * <CardListItem card={card} isSelected={isSelected} />
35
+ * )}
36
+ * keyExtractor={(card) => card.id}
37
+ * />
38
+ * )
39
+ * ```
40
+ */
41
+ export function ListView({ items, selectedIndex, renderItem, keyExtractor, itemHeight = 1, scrollPadding = 0, showScrollbar = true, emptyContent, }) {
42
+ const { scrollProps, scrollToVisible } = useScroll({
43
+ enableKeyboard: false, // Parent handles keyboard for selection
44
+ enableMouseWheel: true, // Free scroll with wheel
45
+ });
46
+ // Track previous selection to detect changes
47
+ const prevSelectedRef = useRef(selectedIndex);
48
+ // Scroll to keep selection visible when it changes
49
+ useEffect(() => {
50
+ if (selectedIndex !== prevSelectedRef.current) {
51
+ prevSelectedRef.current = selectedIndex;
52
+ scrollToVisible(selectedIndex, itemHeight, scrollPadding);
53
+ }
54
+ }, [selectedIndex, itemHeight, scrollPadding, scrollToVisible]);
55
+ // Also scroll on initial render if selection is not 0
56
+ useEffect(() => {
57
+ if (selectedIndex > 0) {
58
+ scrollToVisible(selectedIndex, itemHeight, scrollPadding);
59
+ }
60
+ // Only run on mount
61
+ // eslint-disable-next-line react-hooks/exhaustive-deps
62
+ }, []);
63
+ if (items.length === 0 && emptyContent) {
64
+ return _jsx(_Fragment, { children: emptyContent });
65
+ }
66
+ return (_jsx("scroll", { ...scrollProps, showScrollbar: showScrollbar, children: _jsx("vstack", { children: items.map((item, index) => (_jsx("vstack", { children: renderItem(item, index, index === selectedIndex) }, keyExtractor(item, index)))) }) }));
67
+ }
68
+ //# sourceMappingURL=ListView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListView.js","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAqBlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,QAAQ,CAAI,EAC3B,KAAK,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,UAAU,GAAG,CAAC,EACd,aAAa,GAAG,CAAC,EACjB,aAAa,GAAG,IAAI,EACpB,YAAY,GACM;IAClB,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QAClD,cAAc,EAAE,KAAK,EAAE,wCAAwC;QAC/D,gBAAgB,EAAE,IAAI,EAAE,yBAAyB;KACjD,CAAC,CAAA;IAEF,6CAA6C;IAC7C,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;IAE7C,mDAAmD;IACnD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,aAAa,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/C,eAAe,CAAC,OAAO,GAAG,aAAa,CAAA;YACvC,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;QAC1D,CAAC;IACF,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAA;IAE/D,sDAAsD;IACtD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACvB,eAAe,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;QAC1D,CAAC;QACD,oBAAoB;QACpB,uDAAuD;IACxD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,OAAO,4BAAG,YAAY,GAAI,CAAA;IAC3B,CAAC;IAED,OAAO,CACN,oBAAY,WAAW,EAAE,aAAa,EAAE,aAAa,YACpD,2BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,2BACE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,aAAa,CAAC,IADrC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAE7B,CACT,CAAC,GACM,GACD,CACT,CAAA;AACF,CAAC"}
@@ -35,6 +35,8 @@ export interface MarkdownProps {
35
35
  codeTheme?: BundledTheme;
36
36
  /** Enable text wrapping (default: false, text is truncated) */
37
37
  wrap?: boolean;
38
+ /** Max width for wrapping styled paragraphs. Required when wrap=true for proper inline formatting. */
39
+ maxWidth?: number;
38
40
  }
39
41
  /**
40
42
  * A markdown renderer component for terminal UIs.
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,OAAO,CAAA;AAG1D,MAAM,WAAW,aAAa;IAC7B,2CAA2C;IAC3C,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,sBAAsB;IACtB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,wBAAwB;IACxB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,sBAAsB;IACtB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAA;CACjB;AAkBD,MAAM,WAAW,aAAa;IAC7B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAyND;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,SAAkB,EAAE,IAAY,EAAE,EAAE,aAAa,6BAmF3G"}
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../src/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,OAAO,CAAA;AAI1D,MAAM,WAAW,aAAa;IAC7B,2CAA2C;IAC3C,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,sBAAsB;IACtB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,wBAAwB;IACxB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,sBAAsB;IACtB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,UAAU,CAAA;IACxB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,CAAA;CACjB;AAkBD,MAAM,WAAW,aAAa;IAC7B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAmPD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,SAAkB,EAAE,IAAY,EAAE,EAAE,aAAa,6BAmG3G"}
@@ -151,22 +151,49 @@ function parseMarkdown(content) {
151
151
  return elements;
152
152
  }
153
153
  /**
154
- * Render inline spans as text elements.
155
- * Uses <text wrap> for host-level wrapping when wrap=true.
154
+ * Convert markdown spans to styled spans for StyledTextHost
156
155
  */
157
- function renderSpans(spans, theme, wrap = false) {
156
+ function toStyledSpans(spans, theme) {
157
+ const result = [];
158
+ for (const span of spans) {
159
+ switch (span.type) {
160
+ case "text":
161
+ result.push({ text: span.text, fg: theme.text });
162
+ break;
163
+ case "bold":
164
+ result.push({ text: span.text, fg: theme.bold, bold: true });
165
+ break;
166
+ case "italic":
167
+ result.push({ text: span.text, fg: theme.italic, italic: true });
168
+ break;
169
+ case "code":
170
+ result.push({ text: span.text, fg: theme.code, bg: theme.codeBg });
171
+ break;
172
+ case "link":
173
+ result.push({ text: span.text, fg: theme.link });
174
+ result.push({ text: ` (${span.url})`, fg: theme.linkUrl });
175
+ break;
176
+ }
177
+ }
178
+ return result;
179
+ }
180
+ /**
181
+ * Render inline spans as text elements (used for non-wrapping contexts like lists).
182
+ * For wrapping paragraphs, use <styledtext> instead.
183
+ */
184
+ function renderSpans(spans, theme) {
158
185
  return spans.map((span, i) => {
159
186
  switch (span.type) {
160
187
  case "text":
161
- return (_jsx("text", { fg: theme.text, wrap: wrap, children: span.text }, i));
188
+ return (_jsx("text", { fg: theme.text, children: span.text }, i));
162
189
  case "bold":
163
- return (_jsx("text", { fg: theme.bold, bold: true, wrap: wrap, children: span.text }, i));
190
+ return (_jsx("text", { fg: theme.bold, bold: true, children: span.text }, i));
164
191
  case "italic":
165
- return (_jsx("text", { fg: theme.italic, italic: true, wrap: wrap, children: span.text }, i));
192
+ return (_jsx("text", { fg: theme.italic, italic: true, children: span.text }, i));
166
193
  case "code":
167
- return (_jsx("text", { fg: theme.code, bg: theme.codeBg, wrap: wrap, children: span.text }, i));
194
+ return (_jsx("text", { fg: theme.code, bg: theme.codeBg, children: span.text }, i));
168
195
  case "link":
169
- return (_jsxs("hstack", { children: [_jsx("text", { fg: theme.link, wrap: wrap, children: span.text }), _jsx("text", { fg: theme.linkUrl, children: " (" }), _jsx("text", { fg: theme.linkUrl, children: span.url }), _jsx("text", { fg: theme.linkUrl, children: ")" })] }, i));
196
+ return (_jsxs("hstack", { children: [_jsx("text", { fg: theme.link, children: span.text }), _jsx("text", { fg: theme.linkUrl, children: " (" }), _jsx("text", { fg: theme.linkUrl, children: span.url }), _jsx("text", { fg: theme.linkUrl, children: ")" })] }, i));
170
197
  }
171
198
  });
172
199
  }
@@ -208,15 +235,19 @@ export function Markdown({ content, theme: themeOverrides, codeTheme = "nord", w
208
235
  case "h3":
209
236
  return (_jsxs("text", { fg: theme.h3, bold: true, wrap: wrap, children: ["### ", el.text] }, i));
210
237
  case "paragraph":
211
- return _jsx("hstack", { children: renderSpans(el.spans, theme, wrap) }, i);
238
+ // Use styledtext for proper wrapping of styled inline text
239
+ if (wrap) {
240
+ return _jsx("styledtext", { spans: toStyledSpans(el.spans, theme), wrap: true }, i);
241
+ }
242
+ return _jsx("hstack", { children: renderSpans(el.spans, theme) }, i);
212
243
  case "code":
213
244
  return (_jsx(CodeBlock, { code: el.code, language: el.language, theme: codeTheme, lineNumbers: false, padding: 1 }, i));
214
245
  case "blockquote":
215
- return (_jsxs("hstack", { children: [_jsx("text", { fg: theme.quoteBorder, children: "│ " }), renderSpans(el.spans, theme, wrap)] }, i));
246
+ return (_jsxs("hstack", { children: [_jsx("text", { fg: theme.quoteBorder, children: "│ " }), wrap ? (_jsx("styledtext", { spans: toStyledSpans(el.spans, theme), wrap: true })) : (renderSpans(el.spans, theme))] }, i));
216
247
  case "ul":
217
- return (_jsx("vstack", { children: el.items.map((item, j) => (_jsxs("hstack", { children: [_jsx("text", { fg: theme.listMarker, children: " • " }), renderSpans(item, theme, wrap)] }, j))) }, i));
248
+ return (_jsx("vstack", { children: el.items.map((item, j) => (_jsxs("hstack", { children: [_jsx("text", { fg: theme.listMarker, children: " • " }), wrap ? (_jsx("styledtext", { spans: toStyledSpans(item, theme), wrap: true })) : (renderSpans(item, theme))] }, j))) }, i));
218
249
  case "ol":
219
- return (_jsx("vstack", { children: el.items.map((item, j) => (_jsxs("hstack", { children: [_jsx("text", { fg: theme.listMarker, children: ` ${el.start + j}. ` }), renderSpans(item, theme, wrap)] }, j))) }, i));
250
+ return (_jsx("vstack", { children: el.items.map((item, j) => (_jsxs("hstack", { children: [_jsx("text", { fg: theme.listMarker, children: ` ${el.start + j}. ` }), wrap ? (_jsx("styledtext", { spans: toStyledSpans(item, theme), wrap: true })) : (renderSpans(item, theme))] }, j))) }, i));
220
251
  case "hr":
221
252
  return (_jsx("text", { fg: theme.quoteBorder, children: "────────────────────────────────" }, i));
222
253
  case "blank":
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/components/Markdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/components/Markdown.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { Divider, type DividerProps } from "./Divider.js";
2
+ export { ListView, type ListViewProps } from "./ListView.js";
2
3
  export { Markdown, type MarkdownProps, type MarkdownTheme } from "./Markdown.js";
3
4
  export { MultilineTextInput, type MultilineTextInputProps } from "./MultilineTextInput.js";
4
5
  export { Overlay, type OverlayItemProps, type OverlayProps } from "./Overlay.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AACtF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { Divider } from "./Divider.js";
2
+ export { ListView } from "./ListView.js";
2
3
  export { Markdown } from "./Markdown.js";
3
4
  export { MultilineTextInput } from "./MultilineTextInput.js";
4
5
  export { Overlay } from "./Overlay.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,QAAQ,EAA0C,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAgC,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,OAAO,EAA4C,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,KAAK,EAAsD,MAAM,YAAY,CAAA;AACtF,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAA0C,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAgC,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,OAAO,EAA4C,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,KAAK,EAAsD,MAAM,YAAY,CAAA;AACtF,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA"}
@@ -11,7 +11,7 @@ export { OverlayItemHost, type OverlayItemProps } from "./overlay-item.js";
11
11
  export { ScrollHost, type ScrollProps } from "./scroll.js";
12
12
  export { SingleChildHost } from "./single-child.js";
13
13
  export { SpacerHost, type SpacerProps } from "./spacer.js";
14
- export { RawTextHost, TextHost, type TextProps } from "./text.js";
14
+ export { RawTextHost, StyledTextHost, TextHost, type StyledSpan, type StyledTextProps, type TextProps } from "./text.js";
15
15
  export { VStackHost, type VStackProps } from "./vstack.js";
16
16
  export { ZStackHost, type ZStackProps } from "./zstack.js";
17
17
  export declare const hostRegistry: Record<string, new (props: any, ctx: HostContext) => BaseHost>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AASzC,OAAO,EAAE,WAAW,EAAY,MAAM,WAAW,CAAA;AAIjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAI1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,QAAQ,CAYvF,CAAA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,QAAQ,CAM/F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAE9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AASzC,OAAO,EAAE,WAAW,EAA4B,MAAM,WAAW,CAAA;AAIjE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AACxH,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAI1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,QAAQ,CAavF,CAAA;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,QAAQ,CAM/F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CAE9E"}
@@ -6,7 +6,7 @@ import { OverlayHost } from "./overlay.js";
6
6
  import { OverlayItemHost } from "./overlay-item.js";
7
7
  import { ScrollHost } from "./scroll.js";
8
8
  import { SpacerHost } from "./spacer.js";
9
- import { RawTextHost, TextHost } from "./text.js";
9
+ import { RawTextHost, StyledTextHost, TextHost } from "./text.js";
10
10
  import { VStackHost } from "./vstack.js";
11
11
  import { ZStackHost } from "./zstack.js";
12
12
  export { BaseHost } from "./base.js";
@@ -19,13 +19,14 @@ export { OverlayItemHost } from "./overlay-item.js";
19
19
  export { ScrollHost } from "./scroll.js";
20
20
  export { SingleChildHost } from "./single-child.js";
21
21
  export { SpacerHost } from "./spacer.js";
22
- export { RawTextHost, TextHost } from "./text.js";
22
+ export { RawTextHost, StyledTextHost, TextHost } from "./text.js";
23
23
  export { VStackHost } from "./vstack.js";
24
24
  export { ZStackHost } from "./zstack.js";
25
25
  // Use any to allow specialized props on each host type
26
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
27
  export const hostRegistry = {
28
28
  text: TextHost,
29
+ styledtext: StyledTextHost,
29
30
  spacer: SpacerHost,
30
31
  vstack: VStackHost,
31
32
  hstack: HStackHost,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAsC,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAuB,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAE1D,uDAAuD;AACvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAmE;IAC3F,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,eAAe;CAC5B,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAkB,EAAE,GAAgB;IACpF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAgB;IAChE,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,UAAU,EAAsC,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAuB,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAyD,MAAM,WAAW,CAAA;AACxH,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAE1D,uDAAuD;AACvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAmE;IAC3F,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,OAAO;IACZ,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,eAAe;CAC5B,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,KAAkB,EAAE,GAAgB;IACpF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,GAAgB;IAChE,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC"}
@@ -43,4 +43,43 @@ export declare class RawTextHost extends BaseHost {
43
43
  updateText(text: string): void;
44
44
  updateProps(_props: Record<string, unknown>): void;
45
45
  }
46
+ /** A span of text with optional styling */
47
+ export interface StyledSpan {
48
+ text: string;
49
+ fg?: Color;
50
+ bg?: Color;
51
+ bold?: boolean;
52
+ italic?: boolean;
53
+ underline?: boolean;
54
+ }
55
+ export interface StyledTextProps extends CommonProps {
56
+ /** Array of styled text spans */
57
+ spans: StyledSpan[];
58
+ /** Default text color */
59
+ fg?: Color;
60
+ /** Default background color */
61
+ bg?: Color;
62
+ /** If true, wrap text to multiple lines */
63
+ wrap?: boolean;
64
+ }
65
+ /**
66
+ * Host for rendering multiple styled spans that wrap as a unit.
67
+ * Unlike using hstack with multiple text elements, this properly
68
+ * wraps styled inline text across lines.
69
+ */
70
+ export declare class StyledTextHost extends BaseHost {
71
+ spans: StyledSpan[];
72
+ fg?: Color;
73
+ bg?: Color;
74
+ wrap: boolean;
75
+ private cachedLines;
76
+ private cachedWidth;
77
+ constructor(props: StyledTextProps, ctx: HostContext);
78
+ measure(maxW: number, maxH: number): Size;
79
+ /** Wrap spans into lines, breaking at word boundaries */
80
+ private wrapSpans;
81
+ layout(rect: Rect): void;
82
+ render(buffer: CellBuffer, palette: Palette): void;
83
+ updateProps(props: Record<string, unknown>): void;
84
+ }
46
85
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,EAAgB,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAElF,OAAO,EAAE,QAAQ,EAAkB,MAAM,WAAW,CAAA;AAEpD,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACrC,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,UAAQ;IACZ,MAAM,UAAQ;IACd,SAAS,UAAQ;IACjB,OAAO,UAAQ;IACf,IAAI,UAAQ;IAGZ,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,WAAW,CAAI;IAEvB,OAAO,CAAC,aAAa,CAAsB;gBAE/B,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW;IAK9C,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAWlB,oDAAoD;IACpD,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBzC,mEAAmE;IACnE,OAAO,CAAC,QAAQ;IAqDP,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAoDzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAW1D;AAED,4DAA4D;AAC5D,qBAAa,WAAY,SAAQ,QAAQ;IACxC,OAAO,SAAK;gBAEA,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW;IAK1C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG3D"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"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"}
@@ -202,4 +202,134 @@ export class RawTextHost extends BaseHost {
202
202
  // Raw text has no props
203
203
  }
204
204
  }
205
+ /**
206
+ * Host for rendering multiple styled spans that wrap as a unit.
207
+ * Unlike using hstack with multiple text elements, this properly
208
+ * wraps styled inline text across lines.
209
+ */
210
+ export class StyledTextHost extends BaseHost {
211
+ spans = [];
212
+ fg;
213
+ bg;
214
+ wrap = false;
215
+ // Cache wrapped lines - each line is an array of spans
216
+ cachedLines = null;
217
+ cachedWidth = 0;
218
+ constructor(props, ctx) {
219
+ super("styledtext", props, ctx);
220
+ this.updateProps(props);
221
+ }
222
+ measure(maxW, maxH) {
223
+ if (this.wrap) {
224
+ this.cachedLines = this.wrapSpans(this.spans, maxW);
225
+ this.cachedWidth = maxW;
226
+ const h = Math.min(this.cachedLines.length, maxH);
227
+ const w = this.cachedLines.reduce((max, line) => Math.max(max, line.reduce((sum, span) => sum + displayWidth(span.text), 0)), 0);
228
+ return { w, h };
229
+ }
230
+ // Non-wrap mode: single line, may truncate
231
+ const totalWidth = this.spans.reduce((sum, span) => sum + displayWidth(span.text), 0);
232
+ return { w: Math.min(totalWidth, maxW), h: 1 };
233
+ }
234
+ /** Wrap spans into lines, breaking at word boundaries */
235
+ wrapSpans(spans, maxWidth) {
236
+ const lines = [[]];
237
+ let lineWidth = 0;
238
+ for (const span of spans) {
239
+ // Split span text into words (keeping whitespace as separate tokens)
240
+ const tokens = span.text.split(/(\s+)/);
241
+ for (const token of tokens) {
242
+ if (!token)
243
+ continue;
244
+ const tokenWidth = displayWidth(token);
245
+ const isWhitespace = /^\s+$/.test(token);
246
+ if (lineWidth + tokenWidth <= maxWidth) {
247
+ // Token fits on current line
248
+ lines[lines.length - 1].push({ ...span, text: token });
249
+ lineWidth += tokenWidth;
250
+ }
251
+ else if (isWhitespace) {
252
+ // Skip whitespace at line break
253
+ continue;
254
+ }
255
+ else if (tokenWidth <= maxWidth) {
256
+ // Start new line with this token
257
+ lines.push([{ ...span, text: token }]);
258
+ lineWidth = tokenWidth;
259
+ }
260
+ else {
261
+ // Token is longer than maxWidth - break by character
262
+ let charLine = "";
263
+ let charLineWidth = 0;
264
+ for (const ch of token) {
265
+ const chWidth = displayWidth(ch);
266
+ if (lineWidth + charLineWidth + chWidth > maxWidth && (charLine || lineWidth > 0)) {
267
+ if (charLine) {
268
+ lines[lines.length - 1].push({ ...span, text: charLine });
269
+ }
270
+ lines.push([]);
271
+ lineWidth = 0;
272
+ charLine = ch;
273
+ charLineWidth = chWidth;
274
+ }
275
+ else {
276
+ charLine += ch;
277
+ charLineWidth += chWidth;
278
+ }
279
+ }
280
+ if (charLine) {
281
+ lines[lines.length - 1].push({ ...span, text: charLine });
282
+ lineWidth += charLineWidth;
283
+ }
284
+ }
285
+ }
286
+ }
287
+ // Remove empty lines at the end
288
+ while (lines.length > 0 && lines[lines.length - 1].length === 0) {
289
+ lines.pop();
290
+ }
291
+ return lines.length > 0 ? lines : [[]];
292
+ }
293
+ layout(rect) {
294
+ super.layout(rect);
295
+ }
296
+ render(buffer, palette) {
297
+ if (!this.rect)
298
+ return;
299
+ const inheritedBg = this.bg ?? getInheritedBg(this.parent);
300
+ // Get lines to render
301
+ const lines = this.wrap && this.cachedLines && this.cachedWidth === this.rect.w
302
+ ? this.cachedLines
303
+ : this.wrap
304
+ ? this.wrapSpans(this.spans, this.rect.w)
305
+ : [this.spans];
306
+ for (let y = 0; y < Math.min(lines.length, this.rect.h); y++) {
307
+ let x = this.rect.x;
308
+ for (const span of lines[y]) {
309
+ const styleId = styleIdFromProps(palette, {
310
+ fg: span.fg ?? this.fg,
311
+ bg: span.bg ?? inheritedBg,
312
+ bold: span.bold,
313
+ italic: span.italic,
314
+ underline: span.underline,
315
+ });
316
+ const availableWidth = this.rect.w - (x - this.rect.x);
317
+ if (availableWidth <= 0)
318
+ break;
319
+ const textWidth = Math.min(displayWidth(span.text), availableWidth);
320
+ buffer.drawText(x, this.rect.y + y, span.text, styleId, textWidth);
321
+ x += displayWidth(span.text);
322
+ }
323
+ }
324
+ }
325
+ updateProps(props) {
326
+ super.updateProps(props);
327
+ this.spans = props.spans ?? [];
328
+ this.fg = props.fg;
329
+ this.bg = props.bg;
330
+ this.wrap = Boolean(props.wrap);
331
+ // Invalidate cache when props change
332
+ this.cachedLines = null;
333
+ }
334
+ }
205
335
  //# sourceMappingURL=text.js.map