diff --git a/packages/vortex-cli/src/corebind/index.ts b/packages/vortex-cli/src/corebind/index.ts index 089f13b..9e39f8a 100644 --- a/packages/vortex-cli/src/corebind/index.ts +++ b/packages/vortex-cli/src/corebind/index.ts @@ -66,10 +66,10 @@ export function cli({ onUpdate }: { onUpdate?(): void; } = {}): Renderer { + Frame.implement((props) => { return jsx("box", props); }), - implementIntrinsic(TextIntrinsic, (props) => { + TextIntrinsic.implement((props) => { return jsx("text", props); }) ] diff --git a/packages/vortex-core/src/intrinsic.ts b/packages/vortex-core/src/intrinsic.ts index 84973a7..970be0a 100644 --- a/packages/vortex-core/src/intrinsic.ts +++ b/packages/vortex-core/src/intrinsic.ts @@ -4,6 +4,7 @@ export const IntrinsicKey = "~vortex:intrinsic"; export type IntrinsicComponent = { "~vortex:intrinsic": Id; + implement(impl: (args: Args) => JSXNode): IntrinsicImplementation; } & ((args: Args) => JSXNode); export function intrinsic(id: Id) { @@ -14,6 +15,12 @@ export function intrinsic(id: Id) { }) as unknown as IntrinsicComponent; impl[IntrinsicKey] = id; + impl.implement = (implementation) => { + return { + intrinsic: impl, + implementation, + }; + }; return impl; } @@ -25,13 +32,3 @@ export type IntrinsicImplementation< intrinsic: IntrinsicComponent; implementation: (args: Args) => JSXNode; }; - -export function implementIntrinsic( - intrinsic: IntrinsicComponent, - implementation: (args: Args) => JSXNode, -): IntrinsicImplementation { - return { - intrinsic, - implementation, - }; -}