···3344export type TextProps = TextOptions;
5566-export function Text(props: TextProps): ReturnType<typeof text> {
77- return text(props);
66+export function Text(props: TextProps): () => ReturnType<typeof text> {
77+ return () => text(props);
88}
+8-2
packages/jsx/src/index.ts
···11import { Confirm, type ConfirmProps } from './components/confirm.js';
22+import { Field, type FieldProps } from './components/field.js';
33+import { Form, type FormProps } from './components/form.js';
24import { Note, type NoteProps } from './components/note.js';
35import { Option, type OptionProps } from './components/option.js';
46import { Password, type PasswordProps } from './components/password.js';
···2022 type OptionProps,
2123 Select,
2224 type SelectProps,
2525+ Field,
2626+ type FieldProps,
2727+ Form,
2828+ type FormProps,
2329};
24302531export function Fragment(props: { children: JSX.Element | JSX.Element[] }): JSX.Element {
2626- return Promise.resolve(props.children);
3232+ return () => Promise.resolve(props.children);
2733}
28342935export type Component =
···4450 if (typeof tagOrFn === 'function') {
4551 return (tagOrFn as (props: unknown) => JSX.Element)(props);
4652 }
4747- return Promise.resolve(null);
5353+ return () => Promise.resolve(null);
4854}
49555056export { jsx };
+1-1
packages/jsx/src/types.ts
···11namespace JSX {
22 export type IntrinsicElements = never;
3344- export type Element = Promise<unknown>;
44+ export type Element = () => Promise<unknown>;
55}
6677export type { JSX };
+1-1
packages/jsx/src/utils.ts
···77 const results: unknown[] = [];
8899 for (const child of arr) {
1010- const result = await child;
1010+ const result = typeof child === 'string' ? child : await child();
11111212 results.push(result);
1313 }