@btst/stack 2.5.6 → 2.6.1
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/README.md +23 -0
- package/dist/client/components/index.d.cts +9 -9
- package/dist/client/components/index.d.mts +9 -9
- package/dist/client/components/index.d.ts +9 -9
- package/dist/components/auto-form/index.cjs +8 -0
- package/dist/components/auto-form/index.d.cts +26 -0
- package/dist/components/auto-form/index.d.mts +26 -0
- package/dist/components/auto-form/index.d.ts +26 -0
- package/dist/components/auto-form/index.mjs +1 -0
- package/dist/components/empty/index.cjs +12 -0
- package/dist/components/empty/index.d.cts +15 -0
- package/dist/components/empty/index.d.mts +15 -0
- package/dist/components/empty/index.d.ts +15 -0
- package/dist/components/empty/index.mjs +1 -0
- package/dist/components/form-builder/index.cjs +16 -0
- package/dist/components/form-builder/index.d.cts +385 -0
- package/dist/components/form-builder/index.d.mts +385 -0
- package/dist/components/form-builder/index.d.ts +385 -0
- package/dist/components/form-builder/index.mjs +4 -0
- package/dist/components/markdown/index.cjs +9 -0
- package/dist/components/markdown/index.d.cts +30 -0
- package/dist/components/markdown/index.d.mts +30 -0
- package/dist/components/markdown/index.d.ts +30 -0
- package/dist/components/markdown/index.mjs +2 -0
- package/dist/components/markdown/style.css +394 -0
- package/dist/components/minimal-tiptap/style.css +548 -0
- package/dist/components/multi-select/index.cjs +7 -0
- package/dist/components/multi-select/index.d.cts +78 -0
- package/dist/components/multi-select/index.d.mts +78 -0
- package/dist/components/multi-select/index.d.ts +78 -0
- package/dist/components/multi-select/index.mjs +1 -0
- package/dist/components/search-select/index.cjs +7 -0
- package/dist/components/search-select/index.d.cts +15 -0
- package/dist/components/search-select/index.d.mts +15 -0
- package/dist/components/search-select/index.d.ts +15 -0
- package/dist/components/search-select/index.mjs +1 -0
- package/dist/components/stepped-auto-form/index.cjs +7 -0
- package/dist/components/stepped-auto-form/index.d.cts +37 -0
- package/dist/components/stepped-auto-form/index.d.mts +37 -0
- package/dist/components/stepped-auto-form/index.d.ts +37 -0
- package/dist/components/stepped-auto-form/index.mjs +1 -0
- package/dist/components/ui-builder/style.css +552 -0
- package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.cjs +1 -1
- package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.mjs +1 -1
- package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/sortable/dist/sortable.esm.mjs +2 -2
- package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1 -1
- package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +3 -3
- package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +1 -1
- package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.cjs +1 -1
- package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.mjs +1 -1
- package/dist/packages/stack/src/plugins/ai-chat/client/plugin.cjs +44 -35
- package/dist/packages/stack/src/plugins/ai-chat/client/plugin.mjs +44 -35
- package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.cjs +23 -0
- package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.mjs +21 -0
- package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor.cjs +11 -12
- package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor.mjs +11 -12
- package/dist/packages/stack/src/plugins/blog/client/components/forms/post-forms.cjs +2 -2
- package/dist/packages/stack/src/plugins/blog/client/components/forms/post-forms.mjs +2 -2
- package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.cjs +1 -1
- package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.mjs +1 -1
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-input.cjs +0 -3
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-input.mjs +1 -1
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-modal.cjs +0 -3
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-modal.mjs +1 -1
- package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.cjs +22 -0
- package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.mjs +23 -2
- package/dist/packages/stack/src/plugins/blog/client/plugin.cjs +12 -6
- package/dist/packages/stack/src/plugins/blog/client/plugin.mjs +12 -6
- package/dist/packages/stack/src/plugins/cms/client/components/shared/default-error.cjs +1 -1
- package/dist/packages/stack/src/plugins/cms/client/components/shared/default-error.mjs +1 -1
- package/dist/packages/stack/src/plugins/cms/client/plugin.cjs +38 -26
- package/dist/packages/stack/src/plugins/cms/client/plugin.mjs +38 -26
- package/dist/packages/stack/src/plugins/form-builder/client/components/shared/default-error.cjs +1 -1
- package/dist/packages/stack/src/plugins/form-builder/client/components/shared/default-error.mjs +1 -1
- package/dist/packages/stack/src/plugins/form-builder/client/plugin.cjs +32 -20
- package/dist/packages/stack/src/plugins/form-builder/client/plugin.mjs +32 -20
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.cjs +1 -1
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.mjs +1 -1
- package/dist/packages/stack/src/plugins/kanban/client/plugin.cjs +6 -3
- package/dist/packages/stack/src/plugins/kanban/client/plugin.mjs +6 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.cjs +1 -1
- package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.mjs +1 -1
- package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.cjs +1 -1
- package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.mjs +1 -1
- package/dist/packages/stack/src/plugins/ui-builder/client/plugin.cjs +24 -15
- package/dist/packages/stack/src/plugins/ui-builder/client/plugin.mjs +24 -15
- package/dist/packages/ui/src/components/auto-form/index.cjs +12 -2
- package/dist/packages/ui/src/components/auto-form/index.mjs +9 -2
- package/dist/packages/ui/src/components/auto-form/stepped-auto-form.cjs +2 -2
- package/dist/packages/ui/src/components/empty.cjs +28 -0
- package/dist/packages/ui/src/components/empty.mjs +27 -1
- package/dist/packages/ui/src/components/form-builder/components/index.mjs +2 -2
- package/dist/packages/ui/src/components/form-builder/edit-field-dialog.cjs +1 -1
- package/dist/packages/ui/src/components/form-builder/index.mjs +2 -2
- package/dist/packages/ui/src/components/form.mjs +1 -1
- package/dist/packages/ui/src/components/kanban.mjs +1 -1
- package/dist/packages/ui/src/components/multi-select.mjs +2 -2
- package/dist/packages/ui/src/components/search-select.cjs +13 -3
- package/dist/packages/ui/src/components/search-select.mjs +14 -4
- package/dist/packages/ui/src/components/ui-builder/internal/config-panel.cjs +1 -1
- package/dist/packages/ui/src/components/ui-builder/internal/props-panel.cjs +1 -1
- package/dist/plugins/ai-chat/client/index.d.cts +17 -4
- package/dist/plugins/ai-chat/client/index.d.mts +17 -4
- package/dist/plugins/ai-chat/client/index.d.ts +17 -4
- package/dist/plugins/blog/api/index.d.cts +2 -2
- package/dist/plugins/blog/api/index.d.mts +2 -2
- package/dist/plugins/blog/api/index.d.ts +2 -2
- package/dist/plugins/blog/client/hooks/index.cjs +3 -0
- package/dist/plugins/blog/client/hooks/index.d.cts +7 -226
- package/dist/plugins/blog/client/hooks/index.d.mts +7 -226
- package/dist/plugins/blog/client/hooks/index.d.ts +7 -226
- package/dist/plugins/blog/client/hooks/index.mjs +1 -0
- package/dist/plugins/blog/client/index.d.cts +46 -22
- package/dist/plugins/blog/client/index.d.mts +46 -22
- package/dist/plugins/blog/client/index.d.ts +46 -22
- package/dist/plugins/blog/query-keys.d.cts +2 -2
- package/dist/plugins/blog/query-keys.d.mts +2 -2
- package/dist/plugins/blog/query-keys.d.ts +2 -2
- package/dist/plugins/cms/client/index.d.cts +36 -15
- package/dist/plugins/cms/client/index.d.mts +36 -15
- package/dist/plugins/cms/client/index.d.ts +36 -15
- package/dist/plugins/form-builder/client/components/index.d.cts +2 -2
- package/dist/plugins/form-builder/client/components/index.d.mts +2 -2
- package/dist/plugins/form-builder/client/components/index.d.ts +2 -2
- package/dist/plugins/form-builder/client/index.d.cts +33 -15
- package/dist/plugins/form-builder/client/index.d.mts +33 -15
- package/dist/plugins/form-builder/client/index.d.ts +33 -15
- package/dist/plugins/kanban/api/index.d.cts +1 -1
- package/dist/plugins/kanban/api/index.d.mts +1 -1
- package/dist/plugins/kanban/api/index.d.ts +1 -1
- package/dist/plugins/kanban/client/components/index.d.cts +5 -5
- package/dist/plugins/kanban/client/components/index.d.mts +5 -5
- package/dist/plugins/kanban/client/components/index.d.ts +5 -5
- package/dist/plugins/kanban/client/index.d.cts +25 -10
- package/dist/plugins/kanban/client/index.d.mts +25 -10
- package/dist/plugins/kanban/client/index.d.ts +25 -10
- package/dist/plugins/kanban/query-keys.d.cts +1 -1
- package/dist/plugins/kanban/query-keys.d.mts +1 -1
- package/dist/plugins/kanban/query-keys.d.ts +1 -1
- package/dist/plugins/route-docs/client/index.d.cts +4 -4
- package/dist/plugins/route-docs/client/index.d.mts +4 -4
- package/dist/plugins/route-docs/client/index.d.ts +4 -4
- package/dist/plugins/ui-builder/client/components/index.d.cts +3 -3
- package/dist/plugins/ui-builder/client/components/index.d.mts +3 -3
- package/dist/plugins/ui-builder/client/components/index.d.ts +3 -3
- package/dist/plugins/ui-builder/client/hooks/index.d.cts +3 -3
- package/dist/plugins/ui-builder/client/hooks/index.d.mts +3 -3
- package/dist/plugins/ui-builder/client/hooks/index.d.ts +3 -3
- package/dist/plugins/ui-builder/client/index.d.cts +32 -18
- package/dist/plugins/ui-builder/client/index.d.mts +32 -18
- package/dist/plugins/ui-builder/client/index.d.ts +32 -18
- package/dist/plugins/ui-builder/index.d.cts +3 -3
- package/dist/plugins/ui-builder/index.d.mts +3 -3
- package/dist/plugins/ui-builder/index.d.ts +3 -3
- package/dist/shared/{stack.B2DwzF3r.d.ts → stack.ASwEoINr.d.ts} +1 -1
- package/dist/shared/{stack.C5ZSOJGJ.d.cts → stack.B1srlBud.d.mts} +1 -1
- package/dist/shared/stack.B8vT-Yt4.d.mts +228 -0
- package/dist/shared/stack.BAT540yW.d.ts +228 -0
- package/dist/shared/{stack.D0QupDcQ.d.ts → stack.BK9Z2dcL.d.ts} +1 -1
- package/dist/shared/stack.BwA7trxA.d.cts +228 -0
- package/dist/shared/{stack.Cl7ok_cY.d.cts → stack.CFECM0ew.d.cts} +1 -1
- package/dist/shared/stack.CZMWR72v.d.cts +10 -0
- package/dist/shared/stack.CZMWR72v.d.mts +10 -0
- package/dist/shared/stack.CZMWR72v.d.ts +10 -0
- package/dist/shared/{stack.VMmQdbsJ.d.mts → stack.DVtk5CNw.d.mts} +1 -1
- package/dist/shared/{stack.B8_74ror.d.ts → stack.DXnclTG7.d.ts} +4 -4
- package/dist/shared/{stack.C21-LFX8.d.cts → stack.DaZM10cp.d.cts} +4 -4
- package/dist/shared/{stack.Dq4qVr1F.d.mts → stack.DmpPDPxA.d.cts} +1 -1
- package/dist/shared/{stack.CL4mKxe7.d.mts → stack.cfCkioTe.d.mts} +4 -4
- package/dist/shared/stack.fdi94T4S.d.cts +291 -0
- package/dist/shared/stack.fdi94T4S.d.mts +291 -0
- package/dist/shared/stack.fdi94T4S.d.ts +291 -0
- package/package.json +115 -4
- package/src/__tests__/page-component-overrides.test.tsx +147 -0
- package/src/components/auto-form/index.ts +12 -0
- package/src/components/empty/index.ts +8 -0
- package/src/components/form-builder/index.ts +23 -0
- package/src/components/kanban/index.ts +9 -0
- package/src/components/markdown/index.ts +5 -0
- package/src/components/markdown/style.css +3 -0
- package/src/components/minimal-tiptap/index.ts +5 -0
- package/src/components/minimal-tiptap/style.css +1 -0
- package/src/components/multi-select/index.ts +5 -0
- package/src/components/search-select/index.ts +1 -0
- package/src/components/stepped-auto-form/index.ts +5 -0
- package/src/components/ui-builder/index.ts +50 -0
- package/src/components/ui-builder/style.css +5 -0
- package/src/plugins/ai-chat/client/components/shared/default-error.tsx +1 -1
- package/src/plugins/ai-chat/client/plugin.tsx +60 -32
- package/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.tsx +29 -0
- package/src/plugins/blog/client/components/forms/markdown-editor.tsx +24 -21
- package/src/plugins/blog/client/components/forms/post-forms.tsx +2 -2
- package/src/plugins/blog/client/components/shared/default-error.tsx +2 -1
- package/src/plugins/blog/client/components/shared/posts-list.tsx +1 -1
- package/src/plugins/blog/client/components/shared/search-input.tsx +0 -2
- package/src/plugins/blog/client/components/shared/search-modal.tsx +0 -2
- package/src/plugins/blog/client/hooks/index.tsx +1 -0
- package/src/plugins/blog/client/plugin.tsx +41 -6
- package/src/plugins/cms/client/components/shared/default-error.tsx +3 -2
- package/src/plugins/cms/client/plugin.tsx +65 -32
- package/src/plugins/form-builder/client/components/shared/default-error.tsx +3 -2
- package/src/plugins/form-builder/client/plugin.tsx +56 -23
- package/src/plugins/kanban/client/components/shared/default-error.tsx +3 -2
- package/src/plugins/kanban/client/plugin.tsx +23 -3
- package/src/plugins/ui-builder/client/components/page-renderer.tsx +5 -3
- package/src/plugins/ui-builder/client/components/shared/default-error.tsx +3 -2
- package/src/plugins/ui-builder/client/plugin.tsx +41 -15
- package/dist/shared/stack.8nldKomx.d.cts +0 -114
- package/dist/shared/stack.8nldKomx.d.mts +0 -114
- package/dist/shared/stack.8nldKomx.d.ts +0 -114
- package/dist/shared/{stack.CxNeGV2z.d.mts → stack.B8D4r97Z.d.mts} +6 -6
- package/dist/shared/{stack.BWp0hcm9.d.cts → stack.BQmuNl5p.d.cts} +3 -3
- package/dist/shared/{stack.BWp0hcm9.d.mts → stack.BQmuNl5p.d.mts} +3 -3
- package/dist/shared/{stack.BWp0hcm9.d.ts → stack.BQmuNl5p.d.ts} +3 -3
- package/dist/shared/{stack.BFcg0tDz.d.ts → stack.DgKOwl20.d.ts} +6 -6
- package/dist/shared/{stack.DSxTDZBQ.d.cts → stack.uWSqCWAb.d.cts} +6 -6
|
@@ -1,228 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
export { P as PostCreateInput, e as PostUpdateInput, o as UseNextPreviousPostsOptions, p as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, r as UseRecentPostsOptions, s as UseRecentPostsResult, k as useCreatePost, m as useDeletePost, q as useNextPreviousPosts, g as usePost, n as usePostSearch, u as usePosts, t as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, l as useUpdatePost } from '../../../../shared/stack.B8vT-Yt4.mjs';
|
|
2
|
+
import '@tanstack/react-query';
|
|
3
|
+
import '../../../../shared/stack.BQmuNl5p.mjs';
|
|
4
|
+
import 'zod';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
interface UsePostsOptions {
|
|
9
|
-
/** Filter posts by tag name */
|
|
10
|
-
tag?: string;
|
|
11
|
-
/** Filter posts by tag slug */
|
|
12
|
-
tagSlug?: string;
|
|
13
|
-
/** Number of posts to fetch per page (default: 10) */
|
|
14
|
-
limit?: number;
|
|
15
|
-
/** Whether to enable the query (default: true) */
|
|
16
|
-
enabled?: boolean;
|
|
17
|
-
/** Search query to filter posts by title, content, or excerpt */
|
|
18
|
-
query?: string;
|
|
19
|
-
/** Filter by published status */
|
|
20
|
-
published?: boolean;
|
|
21
|
-
/** Filter by specific post slug */
|
|
22
|
-
slug?: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Result from the usePosts hook
|
|
26
|
-
*/
|
|
27
|
-
interface UsePostsResult {
|
|
28
|
-
/** Array of fetched posts */
|
|
29
|
-
posts: SerializedPost[];
|
|
30
|
-
/** Whether the initial load is in progress */
|
|
31
|
-
isLoading: boolean;
|
|
32
|
-
/** Error if the query failed */
|
|
33
|
-
error: Error | null;
|
|
34
|
-
/** Function to load the next page of posts */
|
|
35
|
-
loadMore: () => void;
|
|
36
|
-
/** Whether there are more posts to load */
|
|
37
|
-
hasMore: boolean;
|
|
38
|
-
/** Whether the next page is being loaded */
|
|
39
|
-
isLoadingMore: boolean;
|
|
40
|
-
/** Function to refetch the posts */
|
|
41
|
-
refetch: () => void;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Options for the usePostSearch hook
|
|
45
|
-
*/
|
|
46
|
-
interface UsePostSearchOptions {
|
|
47
|
-
/** Search query string to filter posts */
|
|
48
|
-
query: string;
|
|
49
|
-
/** Whether to enable the search query (default: true) */
|
|
50
|
-
enabled?: boolean;
|
|
51
|
-
/** Debounce delay in milliseconds (default: 300) */
|
|
52
|
-
debounceMs?: number;
|
|
53
|
-
/** Number of results to return (default: 10) */
|
|
54
|
-
limit?: number;
|
|
55
|
-
/** Filter by published status (default: true) */
|
|
56
|
-
published?: boolean;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Result from the usePostSearch hook
|
|
60
|
-
*/
|
|
61
|
-
interface UsePostSearchResult {
|
|
62
|
-
/** Array of posts matching the search query */
|
|
63
|
-
posts: SerializedPost[];
|
|
64
|
-
/** Alias for posts (React Query compatibility) */
|
|
65
|
-
data: SerializedPost[];
|
|
66
|
-
/** Whether the search is in progress */
|
|
67
|
-
isLoading: boolean;
|
|
68
|
-
/** Error if the search failed */
|
|
69
|
-
error: Error | null;
|
|
70
|
-
/** Function to refetch the search results */
|
|
71
|
-
refetch: () => void;
|
|
72
|
-
/** Whether a search is currently in progress (includes debounce time) */
|
|
73
|
-
isSearching: boolean;
|
|
74
|
-
/** The debounced search query being used */
|
|
75
|
-
searchQuery: string;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Result from the usePost hook
|
|
79
|
-
*/
|
|
80
|
-
interface UsePostResult {
|
|
81
|
-
/** The fetched post, or null if not found */
|
|
82
|
-
post: SerializedPost | null;
|
|
83
|
-
/** Whether the post is being loaded */
|
|
84
|
-
isLoading: boolean;
|
|
85
|
-
/** Error if the query failed */
|
|
86
|
-
error: Error | null;
|
|
87
|
-
/** Function to refetch the post */
|
|
88
|
-
refetch: () => void;
|
|
89
|
-
}
|
|
90
|
-
/** Input type for creating a new post */
|
|
91
|
-
type PostCreateInput = z.infer<typeof createPostSchema>;
|
|
92
|
-
/** Input type for updating an existing post */
|
|
93
|
-
type PostUpdateInput = z.infer<typeof updatePostSchema>;
|
|
94
|
-
/**
|
|
95
|
-
* Hook for fetching paginated posts with load more functionality
|
|
96
|
-
*/
|
|
97
|
-
declare function usePosts(options?: UsePostsOptions): UsePostsResult;
|
|
98
|
-
/** Suspense variant of usePosts */
|
|
99
|
-
declare function useSuspensePosts(options?: UsePostsOptions): {
|
|
100
|
-
posts: SerializedPost[];
|
|
101
|
-
loadMore: () => Promise<unknown>;
|
|
102
|
-
hasMore: boolean;
|
|
103
|
-
isLoadingMore: boolean;
|
|
104
|
-
refetch: () => Promise<unknown>;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Hook for fetching a single post by slug
|
|
108
|
-
*/
|
|
109
|
-
declare function usePost(slug?: string): UsePostResult;
|
|
110
|
-
/** Suspense variant of usePost */
|
|
111
|
-
declare function useSuspensePost(slug: string): {
|
|
112
|
-
post: SerializedPost | null;
|
|
113
|
-
refetch: () => Promise<unknown>;
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Hook for fetching all unique tags across posts
|
|
117
|
-
*/
|
|
118
|
-
declare function useTags(): {
|
|
119
|
-
tags: SerializedTag[];
|
|
120
|
-
isLoading: boolean;
|
|
121
|
-
error: Error | null;
|
|
122
|
-
refetch: () => void;
|
|
123
|
-
};
|
|
124
|
-
/** Suspense variant of useTags */
|
|
125
|
-
declare function useSuspenseTags(): {
|
|
126
|
-
tags: SerializedTag[];
|
|
127
|
-
refetch: () => Promise<unknown>;
|
|
128
|
-
};
|
|
129
|
-
/** Create a new post */
|
|
130
|
-
declare function useCreatePost(): _tanstack_react_query.UseMutationResult<SerializedPost | null, Error, {
|
|
131
|
-
tags: ({
|
|
132
|
-
name: string;
|
|
133
|
-
} | {
|
|
134
|
-
id: string;
|
|
135
|
-
name: string;
|
|
136
|
-
slug: string;
|
|
137
|
-
})[];
|
|
138
|
-
published: boolean;
|
|
139
|
-
title: string;
|
|
140
|
-
content: string;
|
|
141
|
-
excerpt: string;
|
|
142
|
-
slug?: string | undefined;
|
|
143
|
-
publishedAt?: Date | undefined;
|
|
144
|
-
createdAt?: Date | undefined;
|
|
145
|
-
updatedAt?: Date | undefined;
|
|
146
|
-
image?: string | undefined;
|
|
147
|
-
}, unknown>;
|
|
148
|
-
/** Update an existing post by id */
|
|
149
|
-
declare function useUpdatePost(): _tanstack_react_query.UseMutationResult<SerializedPost | null, Error, {
|
|
150
|
-
id: string;
|
|
151
|
-
data: PostUpdateInput;
|
|
152
|
-
}, unknown>;
|
|
153
|
-
/** Delete a post by id */
|
|
154
|
-
declare function useDeletePost(): _tanstack_react_query.UseMutationResult<{
|
|
155
|
-
success: boolean;
|
|
156
|
-
}, Error, {
|
|
157
|
-
id: string;
|
|
158
|
-
}, unknown>;
|
|
159
|
-
/**
|
|
160
|
-
* Hook for searching posts by a free-text query. Uses `usePosts` under the hood.
|
|
161
|
-
* Debounces the query and preserves last successful results to avoid flicker.
|
|
162
|
-
*/
|
|
163
|
-
declare function usePostSearch({ query, enabled, debounceMs, limit, published, }: UsePostSearchOptions): UsePostSearchResult;
|
|
164
|
-
/**
|
|
165
|
-
* Options for the useNextPreviousPosts hook
|
|
166
|
-
*/
|
|
167
|
-
interface UseNextPreviousPostsOptions {
|
|
168
|
-
/** Whether to enable the query (default: true) */
|
|
169
|
-
enabled?: boolean;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Result from the useNextPreviousPosts hook
|
|
173
|
-
*/
|
|
174
|
-
interface UseNextPreviousPostsResult {
|
|
175
|
-
/** The previous post (older), or null if none exists */
|
|
176
|
-
previousPost: SerializedPost | null;
|
|
177
|
-
/** The next post (newer), or null if none exists */
|
|
178
|
-
nextPost: SerializedPost | null;
|
|
179
|
-
/** Whether the query is loading */
|
|
180
|
-
isLoading: boolean;
|
|
181
|
-
/** Error if the query failed */
|
|
182
|
-
error: Error | null;
|
|
183
|
-
/** Function to refetch the posts */
|
|
184
|
-
refetch: () => void;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Hook for fetching previous and next posts relative to a given date
|
|
188
|
-
* Uses useInView to only fetch when the component is in view
|
|
189
|
-
*/
|
|
190
|
-
declare function useNextPreviousPosts(createdAt: string | Date, options?: UseNextPreviousPostsOptions): UseNextPreviousPostsResult & {
|
|
191
|
-
ref: (node: Element | null) => void;
|
|
192
|
-
inView: boolean;
|
|
193
|
-
};
|
|
194
|
-
/**
|
|
195
|
-
* Options for the useRecentPosts hook
|
|
196
|
-
*/
|
|
197
|
-
interface UseRecentPostsOptions {
|
|
198
|
-
/** Maximum number of recent posts to fetch (default: 5) */
|
|
199
|
-
limit?: number;
|
|
200
|
-
/** Slug of a post to exclude from results */
|
|
201
|
-
excludeSlug?: string;
|
|
202
|
-
/** Whether to enable the query (default: true) */
|
|
203
|
-
enabled?: boolean;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Result from the useRecentPosts hook
|
|
207
|
-
*/
|
|
208
|
-
interface UseRecentPostsResult {
|
|
209
|
-
/** Array of recent posts */
|
|
210
|
-
recentPosts: SerializedPost[];
|
|
211
|
-
/** Whether the query is loading */
|
|
212
|
-
isLoading: boolean;
|
|
213
|
-
/** Error if the query failed */
|
|
214
|
-
error: Error | null;
|
|
215
|
-
/** Function to refetch the posts */
|
|
216
|
-
refetch: () => void;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Hook for fetching recent posts
|
|
220
|
-
* Uses useInView to only fetch when the component is in view
|
|
221
|
-
*/
|
|
222
|
-
declare function useRecentPosts(options?: UseRecentPostsOptions): UseRecentPostsResult & {
|
|
223
|
-
ref: (node: Element | null) => void;
|
|
224
|
-
inView: boolean;
|
|
225
|
-
};
|
|
6
|
+
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
7
|
+
declare function useThrottle<T>(value: T, wait?: number): T;
|
|
226
8
|
|
|
227
|
-
export {
|
|
228
|
-
export type { PostCreateInput, PostUpdateInput, UseNextPreviousPostsOptions, UseNextPreviousPostsResult, UsePostResult, UsePostSearchOptions, UsePostSearchResult, UsePostsOptions, UsePostsResult, UseRecentPostsOptions, UseRecentPostsResult };
|
|
9
|
+
export { useDebounce, useThrottle };
|
|
@@ -1,228 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
export { P as PostCreateInput, e as PostUpdateInput, o as UseNextPreviousPostsOptions, p as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, r as UseRecentPostsOptions, s as UseRecentPostsResult, k as useCreatePost, m as useDeletePost, q as useNextPreviousPosts, g as usePost, n as usePostSearch, u as usePosts, t as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, l as useUpdatePost } from '../../../../shared/stack.BAT540yW.js';
|
|
2
|
+
import '@tanstack/react-query';
|
|
3
|
+
import '../../../../shared/stack.BQmuNl5p.js';
|
|
4
|
+
import 'zod';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
interface UsePostsOptions {
|
|
9
|
-
/** Filter posts by tag name */
|
|
10
|
-
tag?: string;
|
|
11
|
-
/** Filter posts by tag slug */
|
|
12
|
-
tagSlug?: string;
|
|
13
|
-
/** Number of posts to fetch per page (default: 10) */
|
|
14
|
-
limit?: number;
|
|
15
|
-
/** Whether to enable the query (default: true) */
|
|
16
|
-
enabled?: boolean;
|
|
17
|
-
/** Search query to filter posts by title, content, or excerpt */
|
|
18
|
-
query?: string;
|
|
19
|
-
/** Filter by published status */
|
|
20
|
-
published?: boolean;
|
|
21
|
-
/** Filter by specific post slug */
|
|
22
|
-
slug?: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Result from the usePosts hook
|
|
26
|
-
*/
|
|
27
|
-
interface UsePostsResult {
|
|
28
|
-
/** Array of fetched posts */
|
|
29
|
-
posts: SerializedPost[];
|
|
30
|
-
/** Whether the initial load is in progress */
|
|
31
|
-
isLoading: boolean;
|
|
32
|
-
/** Error if the query failed */
|
|
33
|
-
error: Error | null;
|
|
34
|
-
/** Function to load the next page of posts */
|
|
35
|
-
loadMore: () => void;
|
|
36
|
-
/** Whether there are more posts to load */
|
|
37
|
-
hasMore: boolean;
|
|
38
|
-
/** Whether the next page is being loaded */
|
|
39
|
-
isLoadingMore: boolean;
|
|
40
|
-
/** Function to refetch the posts */
|
|
41
|
-
refetch: () => void;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Options for the usePostSearch hook
|
|
45
|
-
*/
|
|
46
|
-
interface UsePostSearchOptions {
|
|
47
|
-
/** Search query string to filter posts */
|
|
48
|
-
query: string;
|
|
49
|
-
/** Whether to enable the search query (default: true) */
|
|
50
|
-
enabled?: boolean;
|
|
51
|
-
/** Debounce delay in milliseconds (default: 300) */
|
|
52
|
-
debounceMs?: number;
|
|
53
|
-
/** Number of results to return (default: 10) */
|
|
54
|
-
limit?: number;
|
|
55
|
-
/** Filter by published status (default: true) */
|
|
56
|
-
published?: boolean;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Result from the usePostSearch hook
|
|
60
|
-
*/
|
|
61
|
-
interface UsePostSearchResult {
|
|
62
|
-
/** Array of posts matching the search query */
|
|
63
|
-
posts: SerializedPost[];
|
|
64
|
-
/** Alias for posts (React Query compatibility) */
|
|
65
|
-
data: SerializedPost[];
|
|
66
|
-
/** Whether the search is in progress */
|
|
67
|
-
isLoading: boolean;
|
|
68
|
-
/** Error if the search failed */
|
|
69
|
-
error: Error | null;
|
|
70
|
-
/** Function to refetch the search results */
|
|
71
|
-
refetch: () => void;
|
|
72
|
-
/** Whether a search is currently in progress (includes debounce time) */
|
|
73
|
-
isSearching: boolean;
|
|
74
|
-
/** The debounced search query being used */
|
|
75
|
-
searchQuery: string;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Result from the usePost hook
|
|
79
|
-
*/
|
|
80
|
-
interface UsePostResult {
|
|
81
|
-
/** The fetched post, or null if not found */
|
|
82
|
-
post: SerializedPost | null;
|
|
83
|
-
/** Whether the post is being loaded */
|
|
84
|
-
isLoading: boolean;
|
|
85
|
-
/** Error if the query failed */
|
|
86
|
-
error: Error | null;
|
|
87
|
-
/** Function to refetch the post */
|
|
88
|
-
refetch: () => void;
|
|
89
|
-
}
|
|
90
|
-
/** Input type for creating a new post */
|
|
91
|
-
type PostCreateInput = z.infer<typeof createPostSchema>;
|
|
92
|
-
/** Input type for updating an existing post */
|
|
93
|
-
type PostUpdateInput = z.infer<typeof updatePostSchema>;
|
|
94
|
-
/**
|
|
95
|
-
* Hook for fetching paginated posts with load more functionality
|
|
96
|
-
*/
|
|
97
|
-
declare function usePosts(options?: UsePostsOptions): UsePostsResult;
|
|
98
|
-
/** Suspense variant of usePosts */
|
|
99
|
-
declare function useSuspensePosts(options?: UsePostsOptions): {
|
|
100
|
-
posts: SerializedPost[];
|
|
101
|
-
loadMore: () => Promise<unknown>;
|
|
102
|
-
hasMore: boolean;
|
|
103
|
-
isLoadingMore: boolean;
|
|
104
|
-
refetch: () => Promise<unknown>;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Hook for fetching a single post by slug
|
|
108
|
-
*/
|
|
109
|
-
declare function usePost(slug?: string): UsePostResult;
|
|
110
|
-
/** Suspense variant of usePost */
|
|
111
|
-
declare function useSuspensePost(slug: string): {
|
|
112
|
-
post: SerializedPost | null;
|
|
113
|
-
refetch: () => Promise<unknown>;
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* Hook for fetching all unique tags across posts
|
|
117
|
-
*/
|
|
118
|
-
declare function useTags(): {
|
|
119
|
-
tags: SerializedTag[];
|
|
120
|
-
isLoading: boolean;
|
|
121
|
-
error: Error | null;
|
|
122
|
-
refetch: () => void;
|
|
123
|
-
};
|
|
124
|
-
/** Suspense variant of useTags */
|
|
125
|
-
declare function useSuspenseTags(): {
|
|
126
|
-
tags: SerializedTag[];
|
|
127
|
-
refetch: () => Promise<unknown>;
|
|
128
|
-
};
|
|
129
|
-
/** Create a new post */
|
|
130
|
-
declare function useCreatePost(): _tanstack_react_query.UseMutationResult<SerializedPost | null, Error, {
|
|
131
|
-
tags: ({
|
|
132
|
-
name: string;
|
|
133
|
-
} | {
|
|
134
|
-
id: string;
|
|
135
|
-
name: string;
|
|
136
|
-
slug: string;
|
|
137
|
-
})[];
|
|
138
|
-
published: boolean;
|
|
139
|
-
title: string;
|
|
140
|
-
content: string;
|
|
141
|
-
excerpt: string;
|
|
142
|
-
slug?: string | undefined;
|
|
143
|
-
publishedAt?: Date | undefined;
|
|
144
|
-
createdAt?: Date | undefined;
|
|
145
|
-
updatedAt?: Date | undefined;
|
|
146
|
-
image?: string | undefined;
|
|
147
|
-
}, unknown>;
|
|
148
|
-
/** Update an existing post by id */
|
|
149
|
-
declare function useUpdatePost(): _tanstack_react_query.UseMutationResult<SerializedPost | null, Error, {
|
|
150
|
-
id: string;
|
|
151
|
-
data: PostUpdateInput;
|
|
152
|
-
}, unknown>;
|
|
153
|
-
/** Delete a post by id */
|
|
154
|
-
declare function useDeletePost(): _tanstack_react_query.UseMutationResult<{
|
|
155
|
-
success: boolean;
|
|
156
|
-
}, Error, {
|
|
157
|
-
id: string;
|
|
158
|
-
}, unknown>;
|
|
159
|
-
/**
|
|
160
|
-
* Hook for searching posts by a free-text query. Uses `usePosts` under the hood.
|
|
161
|
-
* Debounces the query and preserves last successful results to avoid flicker.
|
|
162
|
-
*/
|
|
163
|
-
declare function usePostSearch({ query, enabled, debounceMs, limit, published, }: UsePostSearchOptions): UsePostSearchResult;
|
|
164
|
-
/**
|
|
165
|
-
* Options for the useNextPreviousPosts hook
|
|
166
|
-
*/
|
|
167
|
-
interface UseNextPreviousPostsOptions {
|
|
168
|
-
/** Whether to enable the query (default: true) */
|
|
169
|
-
enabled?: boolean;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Result from the useNextPreviousPosts hook
|
|
173
|
-
*/
|
|
174
|
-
interface UseNextPreviousPostsResult {
|
|
175
|
-
/** The previous post (older), or null if none exists */
|
|
176
|
-
previousPost: SerializedPost | null;
|
|
177
|
-
/** The next post (newer), or null if none exists */
|
|
178
|
-
nextPost: SerializedPost | null;
|
|
179
|
-
/** Whether the query is loading */
|
|
180
|
-
isLoading: boolean;
|
|
181
|
-
/** Error if the query failed */
|
|
182
|
-
error: Error | null;
|
|
183
|
-
/** Function to refetch the posts */
|
|
184
|
-
refetch: () => void;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Hook for fetching previous and next posts relative to a given date
|
|
188
|
-
* Uses useInView to only fetch when the component is in view
|
|
189
|
-
*/
|
|
190
|
-
declare function useNextPreviousPosts(createdAt: string | Date, options?: UseNextPreviousPostsOptions): UseNextPreviousPostsResult & {
|
|
191
|
-
ref: (node: Element | null) => void;
|
|
192
|
-
inView: boolean;
|
|
193
|
-
};
|
|
194
|
-
/**
|
|
195
|
-
* Options for the useRecentPosts hook
|
|
196
|
-
*/
|
|
197
|
-
interface UseRecentPostsOptions {
|
|
198
|
-
/** Maximum number of recent posts to fetch (default: 5) */
|
|
199
|
-
limit?: number;
|
|
200
|
-
/** Slug of a post to exclude from results */
|
|
201
|
-
excludeSlug?: string;
|
|
202
|
-
/** Whether to enable the query (default: true) */
|
|
203
|
-
enabled?: boolean;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Result from the useRecentPosts hook
|
|
207
|
-
*/
|
|
208
|
-
interface UseRecentPostsResult {
|
|
209
|
-
/** Array of recent posts */
|
|
210
|
-
recentPosts: SerializedPost[];
|
|
211
|
-
/** Whether the query is loading */
|
|
212
|
-
isLoading: boolean;
|
|
213
|
-
/** Error if the query failed */
|
|
214
|
-
error: Error | null;
|
|
215
|
-
/** Function to refetch the posts */
|
|
216
|
-
refetch: () => void;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Hook for fetching recent posts
|
|
220
|
-
* Uses useInView to only fetch when the component is in view
|
|
221
|
-
*/
|
|
222
|
-
declare function useRecentPosts(options?: UseRecentPostsOptions): UseRecentPostsResult & {
|
|
223
|
-
ref: (node: Element | null) => void;
|
|
224
|
-
inView: boolean;
|
|
225
|
-
};
|
|
6
|
+
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
7
|
+
declare function useThrottle<T>(value: T, wait?: number): T;
|
|
226
8
|
|
|
227
|
-
export {
|
|
228
|
-
export type { PostCreateInput, PostUpdateInput, UseNextPreviousPostsOptions, UseNextPreviousPostsResult, UsePostResult, UsePostSearchOptions, UsePostSearchResult, UsePostsOptions, UsePostsResult, UseRecentPostsOptions, UseRecentPostsResult };
|
|
9
|
+
export { useDebounce, useThrottle };
|
|
@@ -1 +1,2 @@
|
|
|
1
1
|
export { useCreatePost, useDeletePost, useNextPreviousPosts, usePost, usePostSearch, usePosts, useRecentPosts, useSuspensePost, useSuspensePosts, useSuspenseTags, useTags, useUpdatePost } from '../../../../packages/stack/src/plugins/blog/client/hooks/blog-hooks.mjs';
|
|
2
|
+
export { useDebounce, useThrottle } from '../../../../packages/stack/src/plugins/blog/client/hooks/use-debounce.mjs';
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
|
|
2
|
-
import * as react from 'react';
|
|
3
|
-
import { ComponentType } from 'react';
|
|
4
2
|
import * as _btst_yar from '@btst/yar';
|
|
3
|
+
import { ComponentType } from 'react';
|
|
5
4
|
import { QueryClient } from '@tanstack/react-query';
|
|
6
|
-
import { P as Post, S as SerializedPost } from '../../../shared/stack.
|
|
7
|
-
export { UsePostsOptions, UsePostsResult } from '
|
|
5
|
+
import { P as Post, S as SerializedPost } from '../../../shared/stack.BQmuNl5p.cjs';
|
|
6
|
+
export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.BwA7trxA.cjs';
|
|
8
7
|
import 'zod';
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -71,6 +70,31 @@ interface BlogClientConfig {
|
|
|
71
70
|
hooks?: BlogClientHooks;
|
|
72
71
|
/** Optional headers for SSR (e.g., forwarding cookies) */
|
|
73
72
|
headers?: Headers;
|
|
73
|
+
/**
|
|
74
|
+
* Optional page component overrides.
|
|
75
|
+
* Replace any plugin page with a custom React component.
|
|
76
|
+
* The built-in component is used as the fallback when not provided.
|
|
77
|
+
*/
|
|
78
|
+
pageComponents?: {
|
|
79
|
+
/** Replaces the published posts list page */
|
|
80
|
+
posts?: ComponentType;
|
|
81
|
+
/** Replaces the drafts list page */
|
|
82
|
+
drafts?: ComponentType;
|
|
83
|
+
/** Replaces the new post page */
|
|
84
|
+
newPost?: ComponentType;
|
|
85
|
+
/** Replaces the single post page */
|
|
86
|
+
post?: ComponentType<{
|
|
87
|
+
slug: string;
|
|
88
|
+
}>;
|
|
89
|
+
/** Replaces the edit post page */
|
|
90
|
+
editPost?: ComponentType<{
|
|
91
|
+
slug: string;
|
|
92
|
+
}>;
|
|
93
|
+
/** Replaces the tag posts page */
|
|
94
|
+
tag?: ComponentType<{
|
|
95
|
+
tagSlug: string;
|
|
96
|
+
}>;
|
|
97
|
+
};
|
|
74
98
|
}
|
|
75
99
|
/**
|
|
76
100
|
* Hooks for blog client plugin
|
|
@@ -133,9 +157,9 @@ interface BlogClientHooks {
|
|
|
133
157
|
declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
|
|
134
158
|
posts: {
|
|
135
159
|
(inputCtx_0?: _btst_yar.InputContext<"/blog", _btst_yar.RouteOptions> | undefined): {
|
|
136
|
-
PageComponent?:
|
|
137
|
-
LoadingComponent?:
|
|
138
|
-
ErrorComponent?:
|
|
160
|
+
PageComponent?: ComponentType<{}> | undefined;
|
|
161
|
+
LoadingComponent?: ComponentType<{}> | undefined;
|
|
162
|
+
ErrorComponent?: ComponentType<{}> | undefined;
|
|
139
163
|
loader?: (() => Promise<void>) | undefined;
|
|
140
164
|
meta?: (() => ({
|
|
141
165
|
title: string;
|
|
@@ -161,9 +185,9 @@ declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugin
|
|
|
161
185
|
};
|
|
162
186
|
drafts: {
|
|
163
187
|
(inputCtx_0?: _btst_yar.InputContext<"/blog/drafts", _btst_yar.RouteOptions> | undefined): {
|
|
164
|
-
PageComponent?:
|
|
165
|
-
LoadingComponent?:
|
|
166
|
-
ErrorComponent?:
|
|
188
|
+
PageComponent?: ComponentType<{}> | undefined;
|
|
189
|
+
LoadingComponent?: ComponentType<{}> | undefined;
|
|
190
|
+
ErrorComponent?: ComponentType<{}> | undefined;
|
|
167
191
|
loader?: (() => Promise<void>) | undefined;
|
|
168
192
|
meta?: (() => ({
|
|
169
193
|
title: string;
|
|
@@ -189,9 +213,9 @@ declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugin
|
|
|
189
213
|
};
|
|
190
214
|
newPost: {
|
|
191
215
|
(inputCtx_0?: _btst_yar.InputContext<"/blog/new", _btst_yar.RouteOptions> | undefined): {
|
|
192
|
-
PageComponent?:
|
|
193
|
-
LoadingComponent?:
|
|
194
|
-
ErrorComponent?:
|
|
216
|
+
PageComponent?: ComponentType<{}> | undefined;
|
|
217
|
+
LoadingComponent?: ComponentType<{}> | undefined;
|
|
218
|
+
ErrorComponent?: ComponentType<{}> | undefined;
|
|
195
219
|
loader?: (() => Promise<void>) | undefined;
|
|
196
220
|
meta?: (() => ({
|
|
197
221
|
title: string;
|
|
@@ -217,9 +241,9 @@ declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugin
|
|
|
217
241
|
};
|
|
218
242
|
editPost: {
|
|
219
243
|
(inputCtx_0: _btst_yar.InputContext<"/blog/:slug/edit", _btst_yar.RouteOptions>): {
|
|
220
|
-
PageComponent?:
|
|
221
|
-
LoadingComponent?:
|
|
222
|
-
ErrorComponent?:
|
|
244
|
+
PageComponent?: ComponentType<unknown> | undefined;
|
|
245
|
+
LoadingComponent?: ComponentType<unknown> | undefined;
|
|
246
|
+
ErrorComponent?: ComponentType<unknown> | undefined;
|
|
223
247
|
loader?: (() => Promise<void>) | undefined;
|
|
224
248
|
meta?: (() => ({
|
|
225
249
|
title: string;
|
|
@@ -245,9 +269,9 @@ declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugin
|
|
|
245
269
|
};
|
|
246
270
|
tag: {
|
|
247
271
|
(inputCtx_0: _btst_yar.InputContext<"/blog/tag/:tagSlug", _btst_yar.RouteOptions>): {
|
|
248
|
-
PageComponent?:
|
|
249
|
-
LoadingComponent?:
|
|
250
|
-
ErrorComponent?:
|
|
272
|
+
PageComponent?: ComponentType<unknown> | undefined;
|
|
273
|
+
LoadingComponent?: ComponentType<unknown> | undefined;
|
|
274
|
+
ErrorComponent?: ComponentType<unknown> | undefined;
|
|
251
275
|
loader?: (() => Promise<void>) | undefined;
|
|
252
276
|
meta?: (() => ({
|
|
253
277
|
title: string;
|
|
@@ -273,9 +297,9 @@ declare const blogClientPlugin: (config: BlogClientConfig) => _btst_stack_plugin
|
|
|
273
297
|
};
|
|
274
298
|
post: {
|
|
275
299
|
(inputCtx_0: _btst_yar.InputContext<"/blog/:slug", _btst_yar.RouteOptions>): {
|
|
276
|
-
PageComponent?:
|
|
277
|
-
LoadingComponent?:
|
|
278
|
-
ErrorComponent?:
|
|
300
|
+
PageComponent?: ComponentType<unknown> | undefined;
|
|
301
|
+
LoadingComponent?: ComponentType<unknown> | undefined;
|
|
302
|
+
ErrorComponent?: ComponentType<unknown> | undefined;
|
|
279
303
|
loader?: (() => Promise<void>) | undefined;
|
|
280
304
|
meta?: (() => ({
|
|
281
305
|
title: string;
|