@tailorkit/react 0.1.0-beta.8 → 0.1.0-beta.9

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.
@@ -0,0 +1,3 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AppViewProps } from "../tailor-kit";
3
+ export declare const AppView: ({ app, slot, createIframe, fallback, ...viewProps }: AppViewProps) => ReactNode;
@@ -1,10 +1,8 @@
1
- import type { UseAppsResult } from "../hooks/use-apps";
2
- import type { TailorKitApp } from "../tailor-kit";
1
+ import type { TailorKitStore } from "../store";
2
+ import type { TailorKitInstance } from "../tailor-kit";
3
3
  export interface TailorRootContextValue {
4
- apps: TailorKitApp[];
5
- }
6
- export interface RootTailor {
7
- useApps: () => UseAppsResult;
4
+ store: TailorKitStore;
5
+ client: TailorKitInstance;
8
6
  }
9
7
  export declare const TailorRootContext: import("react").Context<TailorRootContextValue | null>;
10
8
  export declare function useTailorRootContext(component: string): TailorRootContextValue;
@@ -1,10 +1,9 @@
1
1
  import type { ReactNode } from "react";
2
- import type { TailorKitApp } from "../tailor-kit";
2
+ import type { TailorKitApp, TailorKitInstance } from "../tailor-kit";
3
3
  import type { ComponentProps } from "./render";
4
- import type { RootTailor } from "./context";
5
4
  export interface RootProps extends ComponentProps<"div"> {
6
5
  apps?: TailorKitApp[];
7
6
  children?: ReactNode;
8
- tailor: RootTailor;
7
+ client: TailorKitInstance;
9
8
  }
10
- export declare function Root({ apps: appsProp, children, render, tailor, ...props }: RootProps): ReactNode;
9
+ export declare function Root({ apps: appsProp, children, render, client, ...props }: RootProps): ReactNode;
@@ -1,4 +1,5 @@
1
- import type { TailorKitApp, TailorKitStore } from "../tailor-kit";
1
+ import type { TailorKitApp } from "../tailor-kit";
2
+ import type { TailorKitStore } from "../store";
2
3
  export interface UseAppsResult {
3
4
  data: TailorKitApp[] | undefined;
4
5
  error: Error | null;
@@ -9,4 +10,5 @@ export interface UseAppsResult {
9
10
  refetch: () => Promise<void>;
10
11
  status: "error" | "idle" | "loading" | "ready";
11
12
  }
12
- export declare function createUseApps(store: TailorKitStore): () => UseAppsResult;
13
+ export declare function useApps(): UseAppsResult;
14
+ export declare function useAppsStore(store: TailorKitStore): UseAppsResult;
@@ -0,0 +1,2 @@
1
+ /** Keep equivalent JSON context values stable without requiring callers to memoize. */
2
+ export declare function useStableContext<T>(value: T): T;
@@ -0,0 +1,24 @@
1
+ import type { StandardJSONSchemaV1 } from "@standard-schema/spec";
2
+ import type { ViewDefinition } from "@tailorkit/core/schema";
3
+ import type { RegisteredViews } from "../tailor-kit";
4
+ export type ViewName<TViews extends Record<string, ViewDefinition>> = keyof TViews & string;
5
+ export type ViewContext<TView> = TView extends ViewDefinition<infer TContext> ? TContext extends StandardJSONSchemaV1 ? StandardJSONSchemaV1.InferOutput<TContext> : Record<string, never> : never;
6
+ interface ReadyViewOptions<TViews extends Record<string, ViewDefinition>, TView extends ViewName<TViews>> {
7
+ context: ViewContext<TViews[TView]>;
8
+ view: TView;
9
+ status?: "ready";
10
+ }
11
+ interface LoadingViewOptions<TView extends string> {
12
+ context?: never;
13
+ view: TView;
14
+ status: "loading";
15
+ }
16
+ interface ErrorViewOptions<TView extends string> {
17
+ context?: never;
18
+ view: TView;
19
+ status: "error";
20
+ }
21
+ export type ViewOptions<TViews extends Record<string, ViewDefinition> = RegisteredViews, TView extends ViewName<TViews> = ViewName<TViews>> = TView extends ViewName<TViews> ? ReadyViewOptions<TViews, TView> | LoadingViewOptions<TView> | ErrorViewOptions<TView> : never;
22
+ export type ViewState<TViews extends Record<string, ViewDefinition> = RegisteredViews, TView extends ViewName<TViews> = ViewName<TViews>> = Omit<ReadyViewOptions<TViews, TView>, "view"> | Omit<LoadingViewOptions<TView>, "view"> | Omit<ErrorViewOptions<TView>, "view">;
23
+ export declare function useView<TView extends ViewName<RegisteredViews>>(view: TView, options: ViewState<RegisteredViews, NoInfer<TView>>): void;
24
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ export { AppView } from "./components/app-view";
1
2
  export { components, createTailorKitClient } from "./tailor-kit";
2
- export type { AppViewProps, CurrentScreenOptions, TailorKitApp, TailorKitInstance, } from "./tailor-kit";
3
+ export type { AppViewProps, TailorKitApp, TailorKitInstance, Register } from "./tailor-kit";
4
+ export { Root } from "./components/root";
5
+ export { useApps } from "./hooks/use-apps";
6
+ export { useView } from "./hooks/use-view";
7
+ export type { ViewOptions, ViewState } from "./hooks/use-view";
3
8
  export { primitives } from "./primitives";