@tailorkit/react 0.1.0-beta.4 → 0.1.0-beta.42

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.
@@ -1,19 +0,0 @@
1
- import type { ComponentPropsWithoutRef, ElementType, HTMLAttributes, ReactElement, ReactNode, Ref } from "react";
2
- type ElementProps<TTagName extends ElementType> = ComponentPropsWithoutRef<TTagName> & {
3
- ref?: Ref<unknown>;
4
- };
5
- export interface RenderProps {
6
- render?: ReactElement<Record<string, unknown>>;
7
- }
8
- export type ComponentProps<TTagName extends ElementType> = ElementProps<TTagName> & RenderProps;
9
- export declare function useRender<TTagName extends ElementType>({ defaultTagName, props, render, }: {
10
- defaultTagName: TTagName;
11
- props: ElementProps<TTagName>;
12
- render?: ReactElement<Record<string, unknown>>;
13
- }): ReactNode;
14
- export declare function mergeProps<TProps extends Record<string, unknown>>(...propSets: (TProps | Record<string, unknown> | undefined)[]): TProps;
15
- export declare function composeRefs<T>(...refs: (Ref<T> | undefined)[]): Ref<T>;
16
- export type HtmlProps<TElement extends HTMLElement> = HTMLAttributes<TElement> & {
17
- ref?: Ref<TElement>;
18
- };
19
- export {};
@@ -1,10 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import type { TailorKitApp } from "../tailor-kit";
3
- import type { ComponentProps } from "./render";
4
- import type { RootTailor } from "./context";
5
- export interface RootProps extends ComponentProps<"div"> {
6
- apps?: TailorKitApp[];
7
- children?: ReactNode;
8
- tailor: RootTailor;
9
- }
10
- export declare function Root({ apps: appsProp, children, render, tailor, ...props }: RootProps): ReactNode;
@@ -1,23 +0,0 @@
1
- import type { StandardJSONSchemaV1 } from "@standard-schema/spec";
2
- import type { ScreenDefinition } from "@tailorkit/core/schema";
3
- import type { TailorKitStore } from "../tailor-kit";
4
- export type ScreenName<TScreens extends Record<string, ScreenDefinition>> = keyof TScreens & string;
5
- export type ScreenContext<TScreen> = TScreen extends ScreenDefinition<infer TContext> ? TContext extends StandardJSONSchemaV1 ? StandardJSONSchemaV1.InferOutput<TContext> : Record<string, never> : never;
6
- interface ReadyScreenOptions<TScreens extends Record<string, ScreenDefinition>, TScreen extends ScreenName<TScreens>> {
7
- context: ScreenContext<TScreens[TScreen]>;
8
- screen: TScreen;
9
- status?: "ready";
10
- }
11
- interface LoadingScreenOptions<TScreen extends string> {
12
- context?: never;
13
- screen: TScreen;
14
- status: "loading";
15
- }
16
- interface ErrorScreenOptions<TScreen extends string> {
17
- context?: never;
18
- screen: TScreen;
19
- status: "error";
20
- }
21
- export type CurrentScreenOptions<TScreens extends Record<string, ScreenDefinition>, TScreen extends ScreenName<TScreens> = ScreenName<TScreens>> = TScreen extends ScreenName<TScreens> ? ReadyScreenOptions<TScreens, TScreen> | LoadingScreenOptions<TScreen> | ErrorScreenOptions<TScreen> : never;
22
- export declare function createUseCurrentScreen<TScreens extends Record<string, ScreenDefinition>>(store: TailorKitStore): <TScreen extends ScreenName<TScreens>>(options: CurrentScreenOptions<TScreens, TScreen>) => void;
23
- export {};
@@ -1,16 +0,0 @@
1
- import type { RemoteNode } from "@tailorkit/sandbox/protocol";
2
- type Listener = () => void;
3
- export declare class NodeStore {
4
- private nodes;
5
- private signatures;
6
- private nodeListeners;
7
- private rootListeners;
8
- private rootId;
9
- clear(): void;
10
- setSnapshot(tree: RemoteNode): void;
11
- getRootId(): string | null;
12
- getNode(id: string): RemoteNode | null;
13
- subscribe(id: string, listener: Listener): () => void;
14
- subscribeRoot(listener: Listener): () => void;
15
- }
16
- export {};
@@ -1,8 +0,0 @@
1
- import type { HostToWorkerPayload } from "@tailorkit/sandbox/protocol";
2
- import type { NodeStore } from "./node-store";
3
- export interface RemoteViewContext {
4
- components: Record<string, unknown>;
5
- dispatch: (payload: HostToWorkerPayload) => void;
6
- store: NodeStore;
7
- }
8
- export declare const RemoteUIContext: import("react").Context<RemoteViewContext | null>;
@@ -1,116 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import type { TailorKitSchemaSpecType } from "@tailorkit/core/spec";
3
- import type { TailorKitTheme, CallbackMap, ComponentDefinition, ComponentProps, ComponentSlots, Schema, ScreenDefinition, TailorKitSchema } from "@tailorkit/core/schema";
4
- import type { primitives } from "./primitives";
5
- import { Root } from "./components";
6
- import type { UseAppsResult } from "./hooks/use-apps";
7
- import type { CurrentScreenOptions, ScreenName } from "./hooks/use-current-screen";
8
- type ReactComponentSlots<TComponent> = {
9
- [TSlot in keyof ComponentSlots<TComponent>]: ReactNode;
10
- };
11
- type AnyComponentDefinition = ComponentDefinition<Schema | undefined, CallbackMap, readonly string[] | undefined>;
12
- type ComponentRenderer<TComponent extends AnyComponentDefinition> = (args: {
13
- props: ComponentProps<TComponent>;
14
- slots: ReactComponentSlots<TComponent>;
15
- }) => ReactNode;
16
- type ComponentRenderers<TComponents extends Record<string, AnyComponentDefinition>> = {
17
- [TName in keyof TComponents]?: ComponentRenderer<TComponents[TName]>;
18
- };
19
- type CompleteComponentRenderers<TComponents extends Record<string, AnyComponentDefinition>> = {
20
- [TName in keyof TComponents]-?: ComponentRenderer<TComponents[TName]>;
21
- };
22
- export interface TailorKitApp {
23
- clientPath?: string;
24
- description?: string;
25
- id: string;
26
- projectId?: string;
27
- currentDeployment?: {
28
- id: string;
29
- } | null;
30
- name?: string;
31
- }
32
- export interface TailorKitAppsSnapshot {
33
- apps: TailorKitApp[];
34
- error: Error | null;
35
- status: "error" | "idle" | "loading" | "ready";
36
- }
37
- interface TailorKitMetaSnapshot {
38
- assetsBaseUrl: string | null;
39
- error: Error | null;
40
- schema: TailorKitSchemaSpecType | null;
41
- status: "error" | "idle" | "loading" | "ready";
42
- }
43
- export interface CurrentScreenEntry {
44
- context: unknown;
45
- id: symbol;
46
- order: number;
47
- screen: string;
48
- status: "error" | "loading" | "ready";
49
- }
50
- interface AppViewBaseProps {
51
- app: TailorKitApp;
52
- createIframe?: () => HTMLIFrameElement;
53
- fallback?: ReactNode;
54
- runtimeUrl?: string | URL;
55
- }
56
- type AppViewScreenProps<TScreens extends Record<string, ScreenDefinition>, TScreen extends ScreenName<TScreens> = ScreenName<TScreens>> = [ScreenName<TScreens>] extends [never] ? {
57
- context?: never;
58
- screen?: never;
59
- status?: never;
60
- } : {
61
- context?: never;
62
- screen?: never;
63
- status?: never;
64
- } | CurrentScreenOptions<TScreens, TScreen>;
65
- export type AppViewProps<TScreens extends Record<string, ScreenDefinition>, TScreen extends ScreenName<TScreens> = ScreenName<TScreens>> = AppViewBaseProps & AppViewScreenProps<TScreens, TScreen>;
66
- export interface TailorKitInstance<TScreens extends Record<string, ScreenDefinition> = Record<string, never>> {
67
- AppView: (props: AppViewProps<TScreens>) => ReactNode;
68
- Root: (props: Omit<Parameters<typeof Root>[0], "tailor">) => ReactNode;
69
- getApp: (id: string) => TailorKitApp | undefined;
70
- getApps: () => TailorKitApp[];
71
- useApps: () => UseAppsResult;
72
- useCurrentScreen: <TScreen extends ScreenName<TScreens>>(options: CurrentScreenOptions<TScreens, TScreen>) => void;
73
- }
74
- type PrimitiveRenderers = typeof primitives;
75
- type CustomComponentRenderers<TComponents extends Record<string, AnyComponentDefinition>> = {
76
- [TName in Exclude<keyof TComponents, keyof PrimitiveRenderers>]?: ComponentRenderer<TComponents[TName]>;
77
- };
78
- export declare function components<TComponents extends Record<string, AnyComponentDefinition>>(_schema: TailorKitSchema<TComponents, Record<string, ScreenDefinition>>, customComponents: CustomComponentRenderers<TComponents>): ComponentRenderers<TComponents>;
79
- interface TailorKitServerShape {
80
- $internal: {
81
- schema: {
82
- components: Record<string, unknown>;
83
- screens: Record<string, unknown>;
84
- };
85
- };
86
- }
87
- type ServerComponentMap<TTailor extends TailorKitServerShape> = TTailor["$internal"]["schema"]["components"];
88
- type ServerComponents<TTailor extends TailorKitServerShape> = {
89
- [TName in keyof ServerComponentMap<TTailor>]: ServerComponentMap<TTailor>[TName] extends AnyComponentDefinition ? ServerComponentMap<TTailor>[TName] : never;
90
- };
91
- type ServerScreenMap<TTailor extends TailorKitServerShape> = TTailor["$internal"]["schema"]["screens"];
92
- type ServerScreens<TTailor extends TailorKitServerShape> = {
93
- [TName in keyof ServerScreenMap<TTailor>]: ServerScreenMap<TTailor>[TName] extends ScreenDefinition ? ServerScreenMap<TTailor>[TName] : never;
94
- };
95
- export declare function createTailorKitClient<TTailor extends TailorKitServerShape>(options: {
96
- baseUrl: string | URL;
97
- components?: CompleteComponentRenderers<ServerComponents<TTailor>>;
98
- theme?: TailorKitTheme;
99
- }): TailorKitInstance<ServerScreens<TTailor>>;
100
- export type TailorKitStore = ReturnType<typeof createTailorKitStore>;
101
- declare function createTailorKitStore(baseUrlInput: string | URL): {
102
- baseUrl: URL;
103
- fetchApps: (options?: {
104
- force?: boolean;
105
- }) => Promise<void>;
106
- fetchMeta: () => Promise<void>;
107
- getApp: (id: string) => TailorKitApp | undefined;
108
- getApps: () => TailorKitApp[];
109
- getAppsSnapshot: () => TailorKitAppsSnapshot;
110
- getCurrentScreen: () => CurrentScreenEntry | null;
111
- getMetaSnapshot: () => TailorKitMetaSnapshot;
112
- registerScreen: (entry: Omit<CurrentScreenEntry, "order">) => void;
113
- subscribe: (listener: () => void) => (() => void);
114
- unregisterScreen: (id: symbol) => void;
115
- };
116
- export type { CurrentScreenOptions } from "./hooks/use-current-screen";