@tailorkit/react 0.1.0-beta.17 → 0.1.0-beta.19
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.
- package/dist/components/index.d.ts +1 -0
- package/dist/components/slot.d.ts +42 -0
- package/dist/hooks/use-apps.d.ts +5 -1
- package/dist/hooks/{use-view.d.ts → use-register-view.d.ts} +2 -2
- package/dist/hooks/use-slot-instances.d.ts +13 -0
- package/dist/hooks/use-views.d.ts +9 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.js +937 -760
- package/dist/preview-manager.d.ts +1 -1
- package/dist/slot-view.d.ts +22 -0
- package/dist/store.d.ts +7 -5
- package/dist/tailorkit.d.ts +25 -26
- package/package.json +6 -6
- package/dist/components/app-view.d.ts +0 -3
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { SlotDefinitions, ViewDefinition } from "@tailorkit/core/schema";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import type { ViewContext, ViewName } from "../hooks/use-register-view";
|
|
4
|
+
import type { SlotInstance } from "../hooks/use-slot-instances";
|
|
5
|
+
import type { TailorKitApp } from "../tailorkit";
|
|
6
|
+
type DefaultViews = Record<`/${string}`, ViewDefinition>;
|
|
7
|
+
type ContextPaths<TViews extends Record<string, ViewDefinition>, TView extends ViewName<TViews>> = {
|
|
8
|
+
[P in ViewName<TViews>]: P extends "/" | TView ? P : TView extends `${P}/${string}` ? P : never;
|
|
9
|
+
}[ViewName<TViews>];
|
|
10
|
+
type ContextFields<TView> = undefined extends ViewContext<TView> ? Partial<Exclude<ViewContext<TView>, undefined>> : ViewContext<TView>;
|
|
11
|
+
export type SlotContext<TViews extends Record<string, ViewDefinition>, TView extends ViewName<TViews>> = {
|
|
12
|
+
[P in ContextPaths<TViews, TView>]: (context: ContextFields<TViews[P]>) => void;
|
|
13
|
+
}[ContextPaths<TViews, TView>] extends (context: infer TContext) => void ? TContext : never;
|
|
14
|
+
export interface SlotProps<TSlots extends SlotDefinitions = SlotDefinitions> {
|
|
15
|
+
app: TailorKitApp;
|
|
16
|
+
/** The host slot to render in. */
|
|
17
|
+
name: keyof TSlots & string;
|
|
18
|
+
/** Select an instance of the matching view. */
|
|
19
|
+
instanceKey?: string;
|
|
20
|
+
}
|
|
21
|
+
export type ControlledSlotProps<TViews extends Record<string, ViewDefinition> = DefaultViews, TSlots extends SlotDefinitions = SlotDefinitions> = {
|
|
22
|
+
[TSlot in keyof TSlots & string]: {
|
|
23
|
+
[TView in Extract<ViewName<TViews>, TSlots[TSlot]["views"][number]>]: {
|
|
24
|
+
app: TailorKitApp;
|
|
25
|
+
name: TSlot;
|
|
26
|
+
view: TView;
|
|
27
|
+
} & ({
|
|
28
|
+
context: SlotContext<TViews, TView>;
|
|
29
|
+
status: "ready";
|
|
30
|
+
instance?: SlotInstance;
|
|
31
|
+
} | {
|
|
32
|
+
context?: never;
|
|
33
|
+
status: "loading" | "error";
|
|
34
|
+
instance?: never;
|
|
35
|
+
});
|
|
36
|
+
}[Extract<ViewName<TViews>, TSlots[TSlot]["views"][number]>];
|
|
37
|
+
}[keyof TSlots & string];
|
|
38
|
+
export type SlotComponent<TViews extends Record<string, ViewDefinition> = DefaultViews, TSlots extends SlotDefinitions = SlotDefinitions> = ((props: SlotProps<TSlots>) => ReactNode) & {
|
|
39
|
+
Controlled: (props: ControlledSlotProps<TViews, TSlots>) => ReactNode;
|
|
40
|
+
};
|
|
41
|
+
export declare const Slot: SlotComponent;
|
|
42
|
+
export {};
|
package/dist/hooks/use-apps.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { TailorKitApp } from "../tailorkit";
|
|
2
|
-
import type { TailorKitStore } from "../store";
|
|
2
|
+
import type { TailorKitAppsSnapshot, TailorKitStore } from "../store";
|
|
3
3
|
export interface UseAppsOptions<TScopeNames extends string = string> {
|
|
4
4
|
scopes?: readonly TScopeNames[];
|
|
5
|
+
appIds?: readonly string[];
|
|
5
6
|
}
|
|
6
7
|
export interface UseAppsResult {
|
|
7
8
|
data: TailorKitApp[] | undefined;
|
|
@@ -15,3 +16,6 @@ export interface UseAppsResult {
|
|
|
15
16
|
}
|
|
16
17
|
export declare function useApps(options?: UseAppsOptions): UseAppsResult;
|
|
17
18
|
export declare function useAppsStore(store: TailorKitStore, options?: UseAppsOptions): UseAppsResult;
|
|
19
|
+
export declare function matchesApp(app: TailorKitApp, scopes?: readonly string[], appIds?: readonly string[]): boolean;
|
|
20
|
+
export declare function useAppsSnapshot(store: TailorKitStore): TailorKitAppsSnapshot;
|
|
21
|
+
export declare function toUseAppsResult(snapshot: TailorKitAppsSnapshot, refetch: () => Promise<void>): UseAppsResult;
|
|
@@ -20,6 +20,6 @@ interface ErrorViewOptions<TView extends string> {
|
|
|
20
20
|
}
|
|
21
21
|
export type ViewOptions<TViews extends Record<string, ViewDefinition> = DefaultViews, TView extends ViewName<TViews> = ViewName<TViews>> = TView extends ViewName<TViews> ? ReadyViewOptions<TViews, TView> | LoadingViewOptions<TView> | ErrorViewOptions<TView> : never;
|
|
22
22
|
export type ViewState<TViews extends Record<string, ViewDefinition> = DefaultViews, TView extends ViewName<TViews> = ViewName<TViews>> = Omit<ReadyViewOptions<TViews, TView>, "view"> | Omit<LoadingViewOptions<TView>, "view"> | Omit<ErrorViewOptions<TView>, "view">;
|
|
23
|
-
export type
|
|
24
|
-
export declare function
|
|
23
|
+
export type UseRegisterView<TViews extends Record<string, ViewDefinition>> = <TView extends ViewName<TViews>>(view: TView, options: ViewState<TViews, NoInfer<TView>>) => void;
|
|
24
|
+
export declare function useRegisterView<TViews extends Record<string, ViewDefinition> = DefaultViews, TView extends ViewName<TViews> = ViewName<TViews>>(view: TView, options: ViewState<TViews, NoInfer<TView>>): void;
|
|
25
25
|
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ViewInstance } from "@tailorkit/app/client";
|
|
2
|
+
import type { TailorKitApp } from "../tailorkit";
|
|
3
|
+
import type { UseAppsResult } from "./use-apps";
|
|
4
|
+
export type SlotInstance = ViewInstance;
|
|
5
|
+
export interface UseSlotInstancesOptions<TSlot extends string = string> {
|
|
6
|
+
app: TailorKitApp;
|
|
7
|
+
slot: TSlot;
|
|
8
|
+
}
|
|
9
|
+
export interface UseSlotInstancesResult extends Omit<UseAppsResult, "data"> {
|
|
10
|
+
data: SlotInstance[] | undefined;
|
|
11
|
+
}
|
|
12
|
+
/** Fetch instances for the app's matching slot view using registered host context. */
|
|
13
|
+
export declare function useSlotInstances({ app, slot }: UseSlotInstancesOptions): UseSlotInstancesResult;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TailorKitView } from "../tailorkit";
|
|
2
|
+
import type { UseAppsOptions, UseAppsResult } from "./use-apps";
|
|
3
|
+
export interface UseViewsOptions<TScopeNames extends string = string, TSlot extends string = string> extends UseAppsOptions<TScopeNames> {
|
|
4
|
+
slot?: TSlot;
|
|
5
|
+
}
|
|
6
|
+
export interface UseViewsResult extends Omit<UseAppsResult, "data"> {
|
|
7
|
+
data: TailorKitView[] | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function useViews(options?: UseViewsOptions): UseViewsResult;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { Slot } from "./components/slot";
|
|
2
|
+
export type { ControlledSlotProps, SlotComponent, SlotContext, SlotProps } from "./components/slot";
|
|
2
3
|
export { components, createTailorKitClient } from "./tailorkit";
|
|
3
|
-
export type {
|
|
4
|
+
export type { TailorKitApp, TailorKitView, TailorKitClientConfig, TailorKitInstance, } from "./tailorkit";
|
|
4
5
|
export { Root } from "./components/root";
|
|
5
6
|
export type { UseAppsOptions, UseAppsResult } from "./hooks/use-apps";
|
|
6
|
-
export type {
|
|
7
|
+
export type { UseViewsOptions, UseViewsResult } from "./hooks/use-views";
|
|
8
|
+
export type { SlotInstance, UseSlotInstancesOptions, UseSlotInstancesResult, } from "./hooks/use-slot-instances";
|
|
9
|
+
export type { UseRegisterView, ViewOptions, ViewState } from "./hooks/use-register-view";
|
|
7
10
|
export { primitives } from "./primitives";
|