@btst/stack 2.12.2 → 3.0.0-rc.2
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 +43 -8
- package/dist/api/index.cjs +24 -3
- package/dist/api/index.d.cts +29 -3
- package/dist/api/index.d.mts +29 -3
- package/dist/api/index.d.ts +29 -3
- package/dist/api/index.mjs +24 -4
- package/dist/client/components/index.d.cts +10 -2
- package/dist/client/components/index.d.mts +10 -2
- package/dist/client/components/index.d.ts +10 -2
- package/dist/client/index.cjs +6 -0
- package/dist/client/index.d.cts +64 -3
- package/dist/client/index.d.mts +64 -3
- package/dist/client/index.d.ts +64 -3
- package/dist/client/index.mjs +2 -0
- package/dist/context/index.cjs +10 -0
- package/dist/context/index.d.cts +228 -14
- package/dist/context/index.d.mts +228 -14
- package/dist/context/index.d.ts +228 -14
- package/dist/context/index.mjs +4 -1
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +3 -2
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.mjs +1 -1
- package/dist/next/index.cjs +11 -0
- package/dist/next/index.d.cts +97 -0
- package/dist/next/index.d.mts +97 -0
- package/dist/next/index.d.ts +97 -0
- package/dist/next/index.mjs +3 -0
- package/dist/packages/stack/src/client/components/compose.cjs +46 -3
- package/dist/packages/stack/src/client/components/compose.mjs +44 -5
- package/dist/packages/stack/src/client/hooks/use-list-state.cjs +151 -0
- package/dist/packages/stack/src/client/hooks/use-list-state.mjs +147 -0
- package/dist/packages/stack/src/context/auth.cjs +122 -0
- package/dist/packages/stack/src/context/auth.mjs +116 -0
- package/dist/packages/stack/src/context/i18n.cjs +28 -0
- package/dist/packages/stack/src/context/i18n.mjs +25 -0
- package/dist/packages/stack/src/context/notify.cjs +45 -0
- package/dist/packages/stack/src/context/notify.mjs +41 -0
- package/dist/packages/stack/src/context/provider.cjs +59 -7
- package/dist/packages/stack/src/context/provider.mjs +59 -8
- package/dist/packages/stack/src/next/handlers.cjs +13 -0
- package/dist/packages/stack/src/next/handlers.mjs +11 -0
- package/dist/packages/stack/src/next/page.cjs +52 -0
- package/dist/packages/stack/src/next/page.mjs +50 -0
- package/dist/packages/stack/src/next/router.cjs +83 -0
- package/dist/packages/stack/src/next/router.mjs +76 -0
- package/dist/packages/stack/src/plugins/ai-chat/api/plugin.cjs +6 -6
- package/dist/packages/stack/src/plugins/ai-chat/api/plugin.mjs +7 -7
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-input.cjs +46 -9
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-input.mjs +48 -11
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-interface.cjs +43 -14
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-interface.mjs +45 -16
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-layout.cjs +47 -12
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-layout.mjs +47 -12
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-message.cjs +86 -17
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-message.mjs +88 -19
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-sidebar.cjs +220 -86
- package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-sidebar.mjs +224 -90
- package/dist/packages/stack/src/plugins/ai-chat/client/components/pages/404-page.cjs +12 -3
- package/dist/packages/stack/src/plugins/ai-chat/client/components/pages/404-page.mjs +13 -4
- package/dist/packages/stack/src/plugins/ai-chat/client/components/pages/chat-page.cjs +6 -1
- package/dist/packages/stack/src/plugins/ai-chat/client/components/pages/chat-page.internal.cjs +19 -10
- package/dist/packages/stack/src/plugins/ai-chat/client/components/pages/chat-page.internal.mjs +19 -10
- package/dist/packages/stack/src/plugins/ai-chat/client/components/pages/chat-page.mjs +6 -1
- package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.cjs +16 -3
- package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.mjs +17 -4
- package/dist/packages/stack/src/plugins/ai-chat/client/components/tool-call-display.cjs +39 -23
- package/dist/packages/stack/src/plugins/ai-chat/client/components/tool-call-display.mjs +39 -23
- package/dist/packages/stack/src/plugins/ai-chat/client/hooks/ai-chat-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/ai-chat/client/hooks/ai-chat-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/ai-chat/client/hooks/chat-hooks.cjs +42 -160
- package/dist/packages/stack/src/plugins/ai-chat/client/hooks/chat-hooks.mjs +43 -162
- package/dist/packages/stack/src/plugins/ai-chat/client/localization/index.cjs +33 -60
- package/dist/packages/stack/src/plugins/ai-chat/client/localization/index.mjs +31 -60
- package/dist/packages/stack/src/plugins/ai-chat/client/plugin.cjs +79 -77
- package/dist/packages/stack/src/plugins/ai-chat/client/plugin.mjs +81 -79
- package/dist/packages/stack/src/plugins/ai-chat/schemas.cjs +1 -1
- package/dist/packages/stack/src/plugins/ai-chat/schemas.mjs +1 -1
- package/dist/packages/stack/src/plugins/api/create-endpoint.cjs +35 -0
- package/dist/packages/stack/src/plugins/api/create-endpoint.mjs +33 -0
- package/dist/packages/stack/src/plugins/blog/api/plugin.cjs +6 -6
- package/dist/packages/stack/src/plugins/blog/api/plugin.mjs +7 -7
- package/dist/packages/stack/src/plugins/blog/client/components/forms/image-field.cjs +52 -32
- package/dist/packages/stack/src/plugins/blog/client/components/forms/image-field.mjs +54 -34
- package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.cjs +3 -6
- package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.mjs +4 -7
- package/dist/packages/stack/src/plugins/blog/client/components/forms/post-forms.cjs +187 -109
- package/dist/packages/stack/src/plugins/blog/client/components/forms/post-forms.mjs +190 -112
- package/dist/packages/stack/src/plugins/blog/client/components/forms/tags-multiselect.cjs +3 -1
- package/dist/packages/stack/src/plugins/blog/client/components/forms/tags-multiselect.mjs +3 -1
- package/dist/packages/stack/src/plugins/blog/client/components/pages/404-page.cjs +7 -6
- package/dist/packages/stack/src/plugins/blog/client/components/pages/404-page.mjs +8 -7
- package/dist/packages/stack/src/plugins/blog/client/components/pages/edit-post-page.cjs +1 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/edit-post-page.internal.cjs +11 -17
- package/dist/packages/stack/src/plugins/blog/client/components/pages/edit-post-page.internal.mjs +12 -18
- package/dist/packages/stack/src/plugins/blog/client/components/pages/edit-post-page.mjs +1 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/home-page.cjs +1 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/home-page.internal.cjs +4 -15
- package/dist/packages/stack/src/plugins/blog/client/components/pages/home-page.internal.mjs +5 -16
- package/dist/packages/stack/src/plugins/blog/client/components/pages/home-page.mjs +1 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/new-post-page.cjs +1 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/new-post-page.internal.cjs +11 -17
- package/dist/packages/stack/src/plugins/blog/client/components/pages/new-post-page.internal.mjs +12 -18
- package/dist/packages/stack/src/plugins/blog/client/components/pages/new-post-page.mjs +1 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.internal.cjs +15 -14
- package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.internal.mjs +16 -15
- package/dist/packages/stack/src/plugins/blog/client/components/pages/tag-page.internal.cjs +20 -9
- package/dist/packages/stack/src/plugins/blog/client/components/pages/tag-page.internal.mjs +21 -10
- package/dist/packages/stack/src/plugins/blog/client/components/shared/collapsible-tag-list.cjs +8 -7
- package/dist/packages/stack/src/plugins/blog/client/components/shared/collapsible-tag-list.mjs +9 -8
- package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.cjs +5 -6
- package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.mjs +6 -7
- package/dist/packages/stack/src/plugins/blog/client/components/shared/markdown-content.cjs +3 -4
- package/dist/packages/stack/src/plugins/blog/client/components/shared/markdown-content.mjs +5 -6
- package/dist/packages/stack/src/plugins/blog/client/components/shared/on-this-page.cjs +11 -9
- package/dist/packages/stack/src/plugins/blog/client/components/shared/on-this-page.mjs +12 -10
- package/dist/packages/stack/src/plugins/blog/client/components/shared/post-card.cjs +6 -9
- package/dist/packages/stack/src/plugins/blog/client/components/shared/post-card.mjs +8 -11
- package/dist/packages/stack/src/plugins/blog/client/components/shared/post-navigation.cjs +5 -5
- package/dist/packages/stack/src/plugins/blog/client/components/shared/post-navigation.mjs +6 -6
- package/dist/packages/stack/src/plugins/blog/client/components/shared/posts-list.cjs +12 -10
- package/dist/packages/stack/src/plugins/blog/client/components/shared/posts-list.mjs +13 -11
- package/dist/packages/stack/src/plugins/blog/client/components/shared/recent-posts-carousel.cjs +7 -7
- package/dist/packages/stack/src/plugins/blog/client/components/shared/recent-posts-carousel.mjs +8 -8
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-input.cjs +14 -5
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-input.mjs +15 -6
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-modal.cjs +46 -22
- package/dist/packages/stack/src/plugins/blog/client/components/shared/search-modal.mjs +45 -21
- package/dist/packages/stack/src/plugins/blog/client/hooks/blog-hooks.cjs +30 -261
- package/dist/packages/stack/src/plugins/blog/client/hooks/blog-hooks.mjs +29 -261
- package/dist/packages/stack/src/plugins/blog/client/hooks/blog-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/blog/client/hooks/blog-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.cjs +2 -11
- package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.mjs +3 -12
- package/dist/packages/stack/src/plugins/blog/client/plugin.cjs +39 -68
- package/dist/packages/stack/src/plugins/blog/client/plugin.mjs +41 -70
- package/dist/packages/stack/src/plugins/client/resource/errors.cjs +74 -0
- package/dist/packages/stack/src/plugins/client/resource/errors.mjs +70 -0
- package/dist/packages/stack/src/plugins/client/resource/hooks.cjs +123 -0
- package/dist/packages/stack/src/plugins/client/resource/hooks.mjs +121 -0
- package/dist/packages/stack/src/plugins/client/resource/internal.cjs +90 -0
- package/dist/packages/stack/src/plugins/client/resource/internal.mjs +87 -0
- package/dist/packages/stack/src/plugins/client/resource/queries.cjs +68 -0
- package/dist/packages/stack/src/plugins/client/resource/queries.mjs +62 -0
- package/dist/packages/stack/src/plugins/client/resource/use-debounce.cjs +17 -0
- package/dist/packages/stack/src/plugins/client/resource/use-debounce.mjs +15 -0
- package/dist/packages/stack/src/plugins/client/resource/use-form.cjs +116 -0
- package/dist/packages/stack/src/plugins/client/resource/use-form.mjs +114 -0
- package/dist/packages/stack/src/plugins/client/resource/use-select.cjs +104 -0
- package/dist/packages/stack/src/plugins/client/resource/use-select.mjs +102 -0
- package/dist/packages/stack/src/plugins/cms/api/getters.cjs +42 -6
- package/dist/packages/stack/src/plugins/cms/api/getters.mjs +42 -6
- package/dist/packages/stack/src/plugins/cms/api/plugin.cjs +12 -7
- package/dist/packages/stack/src/plugins/cms/api/plugin.mjs +13 -8
- package/dist/packages/stack/src/plugins/cms/api/query-key-defs.cjs +3 -2
- package/dist/packages/stack/src/plugins/cms/api/query-key-defs.mjs +3 -2
- package/dist/packages/stack/src/plugins/cms/client/components/forms/content-form.cjs +58 -17
- package/dist/packages/stack/src/plugins/cms/client/components/forms/content-form.mjs +60 -19
- package/dist/packages/stack/src/plugins/cms/client/components/forms/file-upload.cjs +11 -4
- package/dist/packages/stack/src/plugins/cms/client/components/forms/file-upload.mjs +11 -4
- package/dist/packages/stack/src/plugins/cms/client/components/forms/relation-field.cjs +50 -110
- package/dist/packages/stack/src/plugins/cms/client/components/forms/relation-field.mjs +52 -112
- package/dist/packages/stack/src/plugins/cms/client/components/inverse-relations-panel.cjs +84 -87
- package/dist/packages/stack/src/plugins/cms/client/components/inverse-relations-panel.mjs +86 -89
- package/dist/packages/stack/src/plugins/cms/client/components/pages/404-page.cjs +10 -5
- package/dist/packages/stack/src/plugins/cms/client/components/pages/404-page.mjs +11 -6
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.cjs +5 -0
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.internal.cjs +35 -25
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.internal.mjs +37 -27
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-editor-page.mjs +5 -0
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-list-page.internal.cjs +224 -88
- package/dist/packages/stack/src/plugins/cms/client/components/pages/content-list-page.internal.mjs +227 -91
- package/dist/packages/stack/src/plugins/cms/client/components/pages/dashboard-page.internal.cjs +22 -23
- package/dist/packages/stack/src/plugins/cms/client/components/pages/dashboard-page.internal.mjs +23 -24
- package/dist/packages/stack/src/plugins/cms/client/hooks/cms-hooks.cjs +126 -442
- package/dist/packages/stack/src/plugins/cms/client/hooks/cms-hooks.mjs +123 -443
- package/dist/packages/stack/src/plugins/cms/client/hooks/cms-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/cms/client/hooks/cms-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/cms/client/plugin.cjs +28 -62
- package/dist/packages/stack/src/plugins/cms/client/plugin.mjs +30 -64
- package/dist/packages/stack/src/plugins/cms/schemas.cjs +1 -0
- package/dist/packages/stack/src/plugins/cms/schemas.mjs +1 -0
- package/dist/packages/stack/src/plugins/comments/api/plugin.cjs +10 -10
- package/dist/packages/stack/src/plugins/comments/api/plugin.mjs +11 -11
- package/dist/packages/stack/src/plugins/comments/client/components/comment-count.cjs +3 -4
- package/dist/packages/stack/src/plugins/comments/client/components/comment-count.mjs +3 -4
- package/dist/packages/stack/src/plugins/comments/client/components/comment-form.cjs +19 -10
- package/dist/packages/stack/src/plugins/comments/client/components/comment-form.mjs +19 -10
- package/dist/packages/stack/src/plugins/comments/client/components/comment-thread.cjs +49 -37
- package/dist/packages/stack/src/plugins/comments/client/components/comment-thread.mjs +51 -39
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.cjs +3 -18
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.internal.cjs +222 -134
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.internal.mjs +220 -132
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.mjs +3 -18
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.cjs +2 -15
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.internal.cjs +76 -44
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.internal.mjs +77 -45
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.mjs +2 -15
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.cjs +2 -21
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.internal.cjs +94 -62
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.internal.mjs +94 -62
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.mjs +2 -21
- package/dist/packages/stack/src/plugins/comments/client/components/shared/pagination.cjs +8 -6
- package/dist/packages/stack/src/plugins/comments/client/components/shared/pagination.mjs +9 -7
- package/dist/packages/stack/src/plugins/comments/client/hooks/use-comments.cjs +54 -82
- package/dist/packages/stack/src/plugins/comments/client/hooks/use-comments.mjs +44 -72
- package/dist/packages/stack/src/plugins/comments/client/plugin.cjs +6 -6
- package/dist/packages/stack/src/plugins/comments/client/plugin.mjs +7 -7
- package/dist/packages/stack/src/plugins/comments/client/utils.cjs +8 -22
- package/dist/packages/stack/src/plugins/comments/client/utils.mjs +8 -21
- package/dist/packages/stack/src/plugins/form-builder/api/getters.cjs +31 -6
- package/dist/packages/stack/src/plugins/form-builder/api/getters.mjs +31 -6
- package/dist/packages/stack/src/plugins/form-builder/api/plugin.cjs +11 -14
- package/dist/packages/stack/src/plugins/form-builder/api/plugin.mjs +12 -15
- package/dist/packages/stack/src/plugins/form-builder/api/query-key-defs.cjs +2 -1
- package/dist/packages/stack/src/plugins/form-builder/api/query-key-defs.mjs +2 -1
- package/dist/packages/stack/src/plugins/form-builder/client/components/forms/form-renderer.cjs +39 -13
- package/dist/packages/stack/src/plugins/form-builder/client/components/forms/form-renderer.mjs +40 -14
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/404-page.cjs +10 -5
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/404-page.mjs +11 -6
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-builder-page.cjs +28 -3
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.cjs +67 -57
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.mjs +66 -56
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-builder-page.mjs +29 -4
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-list-page.cjs +23 -3
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.cjs +163 -61
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.mjs +167 -65
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/form-list-page.mjs +24 -4
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.cjs +31 -3
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.cjs +84 -45
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.mjs +85 -46
- package/dist/packages/stack/src/plugins/form-builder/client/components/pages/submissions-page.mjs +32 -4
- package/dist/packages/stack/src/plugins/form-builder/client/components/shared/pagination.cjs +3 -2
- package/dist/packages/stack/src/plugins/form-builder/client/components/shared/pagination.mjs +3 -2
- package/dist/packages/stack/src/plugins/form-builder/client/hooks/form-builder-hooks.cjs +53 -430
- package/dist/packages/stack/src/plugins/form-builder/client/hooks/form-builder-hooks.mjs +53 -431
- package/dist/packages/stack/src/plugins/form-builder/client/hooks/form-builder-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/form-builder/client/hooks/form-builder-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/form-builder/client/plugin.cjs +28 -76
- package/dist/packages/stack/src/plugins/form-builder/client/plugin.mjs +30 -78
- package/dist/packages/stack/src/plugins/form-builder/schemas.cjs +4 -1
- package/dist/packages/stack/src/plugins/form-builder/schemas.mjs +4 -2
- package/dist/packages/stack/src/plugins/kanban/api/plugin.cjs +14 -14
- package/dist/packages/stack/src/plugins/kanban/api/plugin.mjs +15 -15
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/board-form.cjs +55 -35
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/board-form.mjs +56 -36
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/column-form.cjs +42 -26
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/column-form.mjs +43 -27
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/task-form.cjs +177 -95
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/task-form.mjs +179 -97
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/404-page.cjs +10 -5
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/404-page.mjs +11 -6
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/board-page.cjs +5 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/board-page.internal.cjs +132 -79
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/board-page.internal.mjs +133 -80
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/board-page.mjs +5 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/boards-list-page.cjs +1 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/boards-list-page.internal.cjs +21 -17
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/boards-list-page.internal.mjs +22 -18
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/boards-list-page.mjs +1 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/new-board-page.cjs +1 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/new-board-page.internal.cjs +15 -7
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/new-board-page.internal.mjs +16 -8
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/new-board-page.mjs +1 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/column-content.cjs +54 -15
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/column-content.mjs +54 -15
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.cjs +9 -3
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.mjs +9 -3
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/kanban-board.cjs +6 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/kanban-board.mjs +6 -0
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/task-card.cjs +29 -8
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/task-card.mjs +29 -8
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/user-avatar.cjs +12 -1
- package/dist/packages/stack/src/plugins/kanban/client/components/shared/user-avatar.mjs +12 -1
- package/dist/packages/stack/src/plugins/kanban/client/hooks/kanban-hooks.cjs +33 -304
- package/dist/packages/stack/src/plugins/kanban/client/hooks/kanban-hooks.mjs +32 -306
- package/dist/packages/stack/src/plugins/kanban/client/hooks/kanban-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/kanban/client/hooks/kanban-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/kanban/client/plugin.cjs +22 -46
- package/dist/packages/stack/src/plugins/kanban/client/plugin.mjs +24 -48
- package/dist/packages/stack/src/plugins/kanban/utils.cjs +0 -7
- package/dist/packages/stack/src/plugins/kanban/utils.mjs +1 -7
- package/dist/packages/stack/src/plugins/media/api/getters.cjs +7 -4
- package/dist/packages/stack/src/plugins/media/api/getters.mjs +7 -4
- package/dist/packages/stack/src/plugins/media/api/plugin.cjs +11 -14
- package/dist/packages/stack/src/plugins/media/api/plugin.mjs +13 -16
- package/dist/packages/stack/src/plugins/media/api/query-key-defs.cjs +9 -4
- package/dist/packages/stack/src/plugins/media/api/query-key-defs.mjs +9 -5
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/asset-card.cjs +41 -17
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/asset-card.mjs +42 -18
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/asset-preview-button.cjs +7 -3
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/asset-preview-button.mjs +7 -3
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/browse-tab.cjs +29 -11
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/browse-tab.mjs +30 -12
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/folder-tree.cjs +56 -27
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/folder-tree.mjs +57 -28
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/index.cjs +74 -49
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/index.mjs +76 -51
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/upload-tab.cjs +32 -7
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/upload-tab.mjs +32 -7
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/url-tab.cjs +28 -19
- package/dist/packages/stack/src/plugins/media/client/components/media-picker/url-tab.mjs +29 -20
- package/dist/packages/stack/src/plugins/media/client/components/pages/library-page.cjs +1 -0
- package/dist/packages/stack/src/plugins/media/client/components/pages/library-page.internal.cjs +62 -23
- package/dist/packages/stack/src/plugins/media/client/components/pages/library-page.internal.mjs +64 -25
- package/dist/packages/stack/src/plugins/media/client/components/pages/library-page.mjs +1 -0
- package/dist/packages/stack/src/plugins/media/client/hooks/media-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/media/client/hooks/media-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/media/client/hooks/use-media.cjs +75 -191
- package/dist/packages/stack/src/plugins/media/client/hooks/use-media.mjs +76 -194
- package/dist/packages/stack/src/plugins/media/client/plugin.cjs +8 -8
- package/dist/packages/stack/src/plugins/media/client/plugin.mjs +9 -9
- package/dist/packages/stack/src/plugins/media/schemas.cjs +9 -1
- package/dist/packages/stack/src/plugins/media/schemas.mjs +8 -2
- package/dist/packages/stack/src/plugins/route-docs/client/plugin.cjs +13 -15
- package/dist/packages/stack/src/plugins/route-docs/client/plugin.mjs +14 -16
- package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.cjs +19 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.mjs +19 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-builder-page.cjs +23 -2
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-builder-page.internal.cjs +127 -45
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-builder-page.internal.mjs +130 -48
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-builder-page.mjs +24 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-list-page.cjs +20 -2
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-list-page.internal.cjs +145 -51
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-list-page.internal.mjs +147 -53
- package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-list-page.mjs +21 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.cjs +13 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.mjs +13 -3
- package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/pagination.cjs +3 -2
- package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/pagination.mjs +3 -2
- package/dist/packages/stack/src/plugins/ui-builder/client/hooks/ui-builder-hooks.cjs +33 -350
- package/dist/packages/stack/src/plugins/ui-builder/client/hooks/ui-builder-hooks.mjs +33 -351
- package/dist/packages/stack/src/plugins/ui-builder/client/hooks/ui-builder-resource.cjs +12 -0
- package/dist/packages/stack/src/plugins/ui-builder/client/hooks/ui-builder-resource.mjs +10 -0
- package/dist/packages/stack/src/plugins/ui-builder/client/localization/index.cjs +19 -6
- package/dist/packages/stack/src/plugins/ui-builder/client/localization/index.mjs +19 -6
- package/dist/packages/stack/src/plugins/ui-builder/client/plugin.cjs +30 -66
- package/dist/packages/stack/src/plugins/ui-builder/client/plugin.mjs +32 -68
- package/dist/packages/stack/src/plugins/utils.cjs +3 -35
- package/dist/packages/stack/src/plugins/utils.mjs +3 -34
- package/dist/packages/stack/src/react-router/handlers.cjs +10 -0
- package/dist/packages/stack/src/react-router/handlers.mjs +8 -0
- package/dist/packages/stack/src/react-router/page.cjs +63 -0
- package/dist/packages/stack/src/react-router/page.mjs +61 -0
- package/dist/packages/stack/src/react-router/router.cjs +42 -0
- package/dist/packages/stack/src/react-router/router.mjs +40 -0
- package/dist/packages/stack/src/shared/entry-factories.cjs +9 -0
- package/dist/packages/stack/src/shared/entry-factories.mjs +7 -0
- package/dist/packages/stack/src/shared/interpolate.cjs +11 -0
- package/dist/packages/stack/src/shared/interpolate.mjs +9 -0
- package/dist/packages/stack/src/shared/list-state.cjs +67 -0
- package/dist/packages/stack/src/shared/list-state.mjs +62 -0
- package/dist/packages/stack/src/tanstack/handlers.cjs +14 -0
- package/dist/packages/stack/src/tanstack/handlers.mjs +12 -0
- package/dist/packages/stack/src/tanstack/page.cjs +53 -0
- package/dist/packages/stack/src/tanstack/page.mjs +51 -0
- package/dist/packages/stack/src/tanstack/router.cjs +44 -0
- package/dist/packages/stack/src/tanstack/router.mjs +42 -0
- package/dist/packages/ui/src/hooks/use-route-lifecycle.cjs +1 -19
- package/dist/packages/ui/src/hooks/use-route-lifecycle.mjs +1 -19
- package/dist/plugins/ai-chat/api/index.cjs +1 -0
- package/dist/plugins/ai-chat/api/index.d.cts +1 -2
- package/dist/plugins/ai-chat/api/index.d.mts +1 -2
- package/dist/plugins/ai-chat/api/index.d.ts +1 -2
- package/dist/plugins/ai-chat/api/index.mjs +1 -1
- package/dist/plugins/ai-chat/client/components/index.d.cts +1 -1
- package/dist/plugins/ai-chat/client/components/index.d.mts +1 -1
- package/dist/plugins/ai-chat/client/components/index.d.ts +1 -1
- package/dist/plugins/ai-chat/client/hooks/index.cjs +1 -0
- package/dist/plugins/ai-chat/client/hooks/index.d.cts +29 -55
- package/dist/plugins/ai-chat/client/hooks/index.d.mts +29 -55
- package/dist/plugins/ai-chat/client/hooks/index.d.ts +29 -55
- package/dist/plugins/ai-chat/client/hooks/index.mjs +1 -1
- package/dist/plugins/ai-chat/client/index.d.cts +26 -32
- package/dist/plugins/ai-chat/client/index.d.mts +26 -32
- package/dist/plugins/ai-chat/client/index.d.ts +26 -32
- package/dist/plugins/ai-chat/query-keys.cjs +53 -50
- package/dist/plugins/ai-chat/query-keys.d.cts +1 -2
- package/dist/plugins/ai-chat/query-keys.d.mts +1 -2
- package/dist/plugins/ai-chat/query-keys.d.ts +1 -2
- package/dist/plugins/ai-chat/query-keys.mjs +52 -50
- package/dist/plugins/api/index.cjs +2 -1
- package/dist/plugins/api/index.d.cts +27 -5
- package/dist/plugins/api/index.d.mts +27 -5
- package/dist/plugins/api/index.d.ts +27 -5
- package/dist/plugins/api/index.mjs +2 -1
- package/dist/plugins/blog/api/index.d.cts +4 -4
- package/dist/plugins/blog/api/index.d.mts +4 -4
- package/dist/plugins/blog/api/index.d.ts +4 -4
- package/dist/plugins/blog/client/components/index.d.cts +1 -2
- package/dist/plugins/blog/client/components/index.d.mts +1 -2
- package/dist/plugins/blog/client/components/index.d.ts +1 -2
- package/dist/plugins/blog/client/hooks/index.cjs +3 -1
- package/dist/plugins/blog/client/hooks/index.d.cts +5 -5
- package/dist/plugins/blog/client/hooks/index.d.mts +5 -5
- package/dist/plugins/blog/client/hooks/index.d.ts +5 -5
- package/dist/plugins/blog/client/hooks/index.mjs +3 -2
- package/dist/plugins/blog/client/index.d.cts +138 -235
- package/dist/plugins/blog/client/index.d.mts +138 -235
- package/dist/plugins/blog/client/index.d.ts +138 -235
- package/dist/plugins/blog/query-keys.cjs +116 -175
- package/dist/plugins/blog/query-keys.d.cts +4 -4
- package/dist/plugins/blog/query-keys.d.mts +4 -4
- package/dist/plugins/blog/query-keys.d.ts +4 -4
- package/dist/plugins/blog/query-keys.mjs +116 -176
- package/dist/plugins/client/hooks/index.cjs +13 -0
- package/dist/plugins/client/hooks/index.d.cts +204 -0
- package/dist/plugins/client/hooks/index.d.mts +204 -0
- package/dist/plugins/client/hooks/index.d.ts +204 -0
- package/dist/plugins/client/hooks/index.mjs +4 -0
- package/dist/plugins/client/index.cjs +12 -1
- package/dist/plugins/client/index.d.cts +6 -11
- package/dist/plugins/client/index.d.mts +6 -11
- package/dist/plugins/client/index.d.ts +6 -11
- package/dist/plugins/client/index.mjs +4 -2
- package/dist/plugins/cms/api/index.d.cts +3 -2
- package/dist/plugins/cms/api/index.d.mts +3 -2
- package/dist/plugins/cms/api/index.d.ts +3 -2
- package/dist/plugins/cms/client/components/index.d.cts +1 -2
- package/dist/plugins/cms/client/components/index.d.mts +1 -2
- package/dist/plugins/cms/client/components/index.d.ts +1 -2
- package/dist/plugins/cms/client/hooks/index.cjs +4 -0
- package/dist/plugins/cms/client/hooks/index.d.cts +385 -16
- package/dist/plugins/cms/client/hooks/index.d.mts +385 -16
- package/dist/plugins/cms/client/hooks/index.d.ts +385 -16
- package/dist/plugins/cms/client/hooks/index.mjs +1 -1
- package/dist/plugins/cms/client/index.d.cts +97 -136
- package/dist/plugins/cms/client/index.d.mts +97 -136
- package/dist/plugins/cms/client/index.d.ts +97 -136
- package/dist/plugins/cms/query-keys.cjs +159 -125
- package/dist/plugins/cms/query-keys.d.cts +424 -439
- package/dist/plugins/cms/query-keys.d.mts +424 -439
- package/dist/plugins/cms/query-keys.d.ts +424 -439
- package/dist/plugins/cms/query-keys.mjs +159 -126
- package/dist/plugins/comments/api/index.d.cts +3 -4
- package/dist/plugins/comments/api/index.d.mts +3 -4
- package/dist/plugins/comments/api/index.d.ts +3 -4
- package/dist/plugins/comments/client/components/index.d.cts +10 -24
- package/dist/plugins/comments/client/components/index.d.mts +10 -24
- package/dist/plugins/comments/client/components/index.d.ts +10 -24
- package/dist/plugins/comments/client/hooks/index.d.cts +2 -2
- package/dist/plugins/comments/client/hooks/index.d.mts +2 -2
- package/dist/plugins/comments/client/hooks/index.d.ts +2 -2
- package/dist/plugins/comments/client/index.d.cts +50 -113
- package/dist/plugins/comments/client/index.d.mts +50 -113
- package/dist/plugins/comments/client/index.d.ts +50 -113
- package/dist/plugins/comments/query-keys.cjs +112 -101
- package/dist/plugins/comments/query-keys.d.cts +295 -40
- package/dist/plugins/comments/query-keys.d.mts +295 -40
- package/dist/plugins/comments/query-keys.d.ts +295 -40
- package/dist/plugins/comments/query-keys.mjs +113 -103
- package/dist/plugins/form-builder/api/index.d.cts +1 -1
- package/dist/plugins/form-builder/api/index.d.mts +1 -1
- package/dist/plugins/form-builder/api/index.d.ts +1 -1
- package/dist/plugins/form-builder/client/components/index.d.cts +1 -2
- package/dist/plugins/form-builder/client/components/index.d.mts +1 -2
- package/dist/plugins/form-builder/client/components/index.d.ts +1 -2
- package/dist/plugins/form-builder/client/hooks/index.cjs +1 -0
- package/dist/plugins/form-builder/client/hooks/index.d.cts +229 -34
- package/dist/plugins/form-builder/client/hooks/index.d.mts +229 -34
- package/dist/plugins/form-builder/client/hooks/index.d.ts +229 -34
- package/dist/plugins/form-builder/client/hooks/index.mjs +1 -1
- package/dist/plugins/form-builder/client/index.d.cts +87 -129
- package/dist/plugins/form-builder/client/index.d.mts +87 -129
- package/dist/plugins/form-builder/client/index.d.ts +87 -129
- package/dist/plugins/form-builder/query-keys.cjs +119 -130
- package/dist/plugins/form-builder/query-keys.d.cts +337 -47
- package/dist/plugins/form-builder/query-keys.d.mts +337 -47
- package/dist/plugins/form-builder/query-keys.d.ts +337 -47
- package/dist/plugins/form-builder/query-keys.mjs +120 -132
- 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 +15 -9
- package/dist/plugins/kanban/client/components/index.d.mts +15 -9
- package/dist/plugins/kanban/client/components/index.d.ts +15 -9
- package/dist/plugins/kanban/client/hooks/index.cjs +3 -0
- package/dist/plugins/kanban/client/hooks/index.d.cts +33 -73
- package/dist/plugins/kanban/client/hooks/index.d.mts +33 -73
- package/dist/plugins/kanban/client/hooks/index.d.ts +33 -73
- package/dist/plugins/kanban/client/hooks/index.mjs +1 -1
- package/dist/plugins/kanban/client/index.d.cts +66 -86
- package/dist/plugins/kanban/client/index.d.mts +66 -86
- package/dist/plugins/kanban/client/index.d.ts +66 -86
- package/dist/plugins/kanban/query-keys.cjs +157 -89
- package/dist/plugins/kanban/query-keys.d.cts +363 -28
- package/dist/plugins/kanban/query-keys.d.mts +363 -28
- package/dist/plugins/kanban/query-keys.d.ts +363 -28
- package/dist/plugins/kanban/query-keys.mjs +157 -90
- package/dist/plugins/media/api/index.cjs +1 -0
- package/dist/plugins/media/api/index.d.cts +1 -2
- package/dist/plugins/media/api/index.d.mts +1 -2
- package/dist/plugins/media/api/index.d.ts +1 -2
- package/dist/plugins/media/api/index.mjs +1 -1
- package/dist/plugins/media/client/components/index.d.cts +3 -5
- package/dist/plugins/media/client/components/index.d.mts +3 -5
- package/dist/plugins/media/client/components/index.d.ts +3 -5
- package/dist/plugins/media/client/hooks/index.cjs +2 -0
- package/dist/plugins/media/client/hooks/index.d.cts +41 -32
- package/dist/plugins/media/client/hooks/index.d.mts +41 -32
- package/dist/plugins/media/client/hooks/index.d.ts +41 -32
- package/dist/plugins/media/client/hooks/index.mjs +1 -1
- package/dist/plugins/media/client/index.d.cts +29 -71
- package/dist/plugins/media/client/index.d.mts +29 -71
- package/dist/plugins/media/client/index.d.ts +29 -71
- package/dist/plugins/media/query-keys.cjs +92 -63
- package/dist/plugins/media/query-keys.d.cts +219 -32
- package/dist/plugins/media/query-keys.d.mts +219 -32
- package/dist/plugins/media/query-keys.d.ts +219 -32
- package/dist/plugins/media/query-keys.mjs +92 -64
- package/dist/plugins/open-api/api/index.d.cts +2 -1
- package/dist/plugins/open-api/api/index.d.mts +2 -1
- package/dist/plugins/open-api/api/index.d.ts +2 -1
- package/dist/plugins/route-docs/client/index.d.cts +25 -23
- package/dist/plugins/route-docs/client/index.d.mts +25 -23
- package/dist/plugins/route-docs/client/index.d.ts +25 -23
- package/dist/plugins/ui-builder/client/components/index.d.cts +1 -1
- package/dist/plugins/ui-builder/client/components/index.d.mts +1 -1
- package/dist/plugins/ui-builder/client/components/index.d.ts +1 -1
- package/dist/plugins/ui-builder/client/hooks/index.cjs +1 -0
- package/dist/plugins/ui-builder/client/hooks/index.d.cts +24 -94
- package/dist/plugins/ui-builder/client/hooks/index.d.mts +24 -94
- package/dist/plugins/ui-builder/client/hooks/index.d.ts +24 -94
- package/dist/plugins/ui-builder/client/hooks/index.mjs +1 -1
- package/dist/plugins/ui-builder/client/index.cjs +1 -0
- package/dist/plugins/ui-builder/client/index.d.cts +130 -143
- package/dist/plugins/ui-builder/client/index.d.mts +130 -143
- package/dist/plugins/ui-builder/client/index.d.ts +130 -143
- package/dist/plugins/ui-builder/client/index.mjs +1 -1
- package/dist/plugins/ui-builder/index.d.cts +118 -5
- package/dist/plugins/ui-builder/index.d.mts +118 -5
- package/dist/plugins/ui-builder/index.d.ts +118 -5
- package/dist/plugins/ui-builder/query-keys.cjs +140 -0
- package/dist/plugins/ui-builder/query-keys.d.cts +273 -0
- package/dist/plugins/ui-builder/query-keys.d.mts +273 -0
- package/dist/plugins/ui-builder/query-keys.d.ts +273 -0
- package/dist/plugins/ui-builder/query-keys.mjs +137 -0
- package/dist/react-router/index.cjs +11 -0
- package/dist/react-router/index.d.cts +132 -0
- package/dist/react-router/index.d.mts +132 -0
- package/dist/react-router/index.d.ts +132 -0
- package/dist/react-router/index.mjs +3 -0
- package/dist/shared/{stack.BmMB0LNC.d.ts → stack.7b3vsM8_.d.ts} +1 -1
- package/dist/shared/{stack.sba323Ml.d.mts → stack.9BAOaSqE.d.cts} +30 -43
- package/dist/shared/{stack.sba323Ml.d.ts → stack.9BAOaSqE.d.mts} +30 -43
- package/dist/shared/{stack.sba323Ml.d.cts → stack.9BAOaSqE.d.ts} +30 -43
- package/dist/shared/{stack.BOCvd9HK.d.cts → stack.B2xi4jj7.d.cts} +1 -1
- package/dist/shared/{stack.BYN8wCV6.d.cts → stack.B8vdOMnQ.d.cts} +10 -3
- package/dist/shared/{stack.BMx2QYOK.d.ts → stack.B9NtGpAR.d.ts} +30 -49
- package/dist/shared/{stack.BgQrdSlo.d.mts → stack.BISAZ5LX.d.mts} +153 -23
- package/dist/shared/{stack.CQnwAN7x.d.ts → stack.BL5PvShn.d.mts} +10 -0
- package/dist/shared/{stack.Cbsrl06u.d.cts → stack.BjvOk_Bs.d.cts} +153 -23
- package/dist/shared/{stack.CQnwAN7x.d.mts → stack.BqTR6qi2.d.ts} +10 -0
- package/dist/shared/stack.BsmDN8r9.d.cts +406 -0
- package/dist/shared/stack.Bz-YPsuX.d.cts +5 -0
- package/dist/shared/stack.Bz-YPsuX.d.mts +5 -0
- package/dist/shared/stack.Bz-YPsuX.d.ts +5 -0
- package/dist/shared/{stack.CO1g47IS.d.mts → stack.C1ATQ3pd.d.ts} +84 -3
- package/dist/shared/stack.C3GBG8in.d.cts +62 -0
- package/dist/shared/stack.C3GBG8in.d.mts +62 -0
- package/dist/shared/stack.C3GBG8in.d.ts +62 -0
- package/dist/shared/stack.C4_gEENS.d.cts +97 -0
- package/dist/shared/stack.C4_gEENS.d.mts +97 -0
- package/dist/shared/stack.C4_gEENS.d.ts +97 -0
- package/dist/shared/{stack.BrNVff5Q.d.cts → stack.C5Y5lViI.d.cts} +83 -8
- package/dist/shared/{stack.COetIi--.d.ts → stack.C8SwdUz8.d.ts} +83 -8
- package/dist/shared/{stack.CQnwAN7x.d.cts → stack.CBsp9rDM.d.cts} +10 -0
- package/dist/shared/{stack.CLWhMntf.d.cts → stack.CKGjOI3Z.d.cts} +349 -73
- package/dist/shared/stack.CbZenbej.d.cts +251 -0
- package/dist/shared/stack.CbZenbej.d.mts +251 -0
- package/dist/shared/stack.CbZenbej.d.ts +251 -0
- package/dist/shared/{stack.RuQ9JCLo.d.ts → stack.Cf-DbL1A.d.ts} +10 -3
- package/dist/shared/{stack.Cd6McBu1.d.mts → stack.Cp_6mO5s.d.mts} +30 -49
- package/dist/shared/{stack.Ldfkr5b2.d.mts → stack.D7bewlgt.d.cts} +5 -1
- package/dist/shared/{stack.Ldfkr5b2.d.ts → stack.D7bewlgt.d.mts} +5 -1
- package/dist/shared/{stack.Ldfkr5b2.d.cts → stack.D7bewlgt.d.ts} +5 -1
- package/dist/shared/{stack.D88yU4FT.d.mts → stack.DHTvwoNG.d.mts} +10 -3
- package/dist/shared/stack.DIZh2qIJ.d.cts +5 -0
- package/dist/shared/stack.DIZh2qIJ.d.mts +5 -0
- package/dist/shared/stack.DIZh2qIJ.d.ts +5 -0
- package/dist/shared/{stack.CCncwK6g.d.cts → stack.DKZMaVr6.d.cts} +84 -3
- package/dist/shared/stack.DOzsgzkY.d.ts +406 -0
- package/dist/shared/{stack.zpwVhSJb.d.mts → stack.DQq8DEIv.d.mts} +83 -8
- package/dist/shared/{stack.DiodAFAa.d.mts → stack.DZHEHd-S.d.mts} +349 -73
- package/dist/shared/stack.Db7crl9u.d.cts +5 -0
- package/dist/shared/stack.Db7crl9u.d.mts +5 -0
- package/dist/shared/stack.Db7crl9u.d.ts +5 -0
- package/dist/shared/{stack.Fl2Kl_bt.d.ts → stack.Dd-8shBE.d.ts} +153 -23
- package/dist/shared/stack.Dg_m1SkT.d.cts +5 -0
- package/dist/shared/stack.Dg_m1SkT.d.mts +5 -0
- package/dist/shared/stack.Dg_m1SkT.d.ts +5 -0
- package/dist/shared/{stack.DxQl8Wa1.d.cts → stack.Dlgtumru.d.cts} +30 -49
- package/dist/shared/{stack.BnSAhKJi.d.ts → stack.DseBJmGF.d.ts} +35 -10
- package/dist/shared/{stack.BFoBvGML.d.mts → stack.DycBcTeg.d.mts} +1 -1
- package/dist/shared/{stack.DNLuzDb3.d.cts → stack.DzwZw-Ck.d.cts} +35 -10
- package/dist/shared/stack.EOPVnJrF.d.cts +39 -0
- package/dist/shared/stack.EOPVnJrF.d.mts +39 -0
- package/dist/shared/stack.EOPVnJrF.d.ts +39 -0
- package/dist/shared/stack.NGKtwA6S.d.mts +406 -0
- package/dist/shared/stack.VEqnNtYQ.d.cts +7 -0
- package/dist/shared/stack.VEqnNtYQ.d.mts +7 -0
- package/dist/shared/stack.VEqnNtYQ.d.ts +7 -0
- package/dist/shared/{stack.ufcExQIR.d.ts → stack.WELCDuMs.d.ts} +349 -73
- package/dist/shared/{stack.DFtpFS00.d.cts → stack.aXdBOJAR.d.cts} +1 -1
- package/dist/shared/{stack.DFtpFS00.d.mts → stack.aXdBOJAR.d.mts} +1 -1
- package/dist/shared/{stack.DFtpFS00.d.ts → stack.aXdBOJAR.d.ts} +1 -1
- package/dist/shared/stack.aqVZ6PEW.d.cts +67 -0
- package/dist/shared/stack.aqVZ6PEW.d.mts +67 -0
- package/dist/shared/stack.aqVZ6PEW.d.ts +67 -0
- package/dist/shared/{stack.Bq3kiUaM.d.ts → stack.oBokjN_J.d.mts} +84 -3
- package/dist/shared/{stack.Dfc44JiE.d.mts → stack.oVIdV7XS.d.mts} +35 -10
- package/dist/tanstack/index.cjs +11 -0
- package/dist/tanstack/index.d.cts +118 -0
- package/dist/tanstack/index.d.mts +118 -0
- package/dist/tanstack/index.d.ts +118 -0
- package/dist/tanstack/index.mjs +3 -0
- package/package.json +101 -7
- package/src/__tests__/ai-chat-query-keys.test.ts +126 -0
- package/src/__tests__/auth-provider.test.tsx +404 -0
- package/src/__tests__/blog-query-keys.test.ts +86 -0
- package/src/__tests__/client-plugin-ssr-loaders.test.ts +78 -9
- package/src/__tests__/cms-query-keys.test.ts +62 -0
- package/src/__tests__/comments-query-keys.test.ts +108 -0
- package/src/__tests__/entry-factories.test.tsx +400 -0
- package/src/__tests__/form-builder-query-keys.test.ts +72 -0
- package/src/__tests__/i18n-provider.test.tsx +99 -0
- package/src/__tests__/kanban-query-keys.test.ts +51 -0
- package/src/__tests__/list-state.test.ts +89 -0
- package/src/__tests__/media-query-keys.test.ts +87 -0
- package/src/__tests__/notify-provider.test.tsx +100 -0
- package/src/__tests__/package-metadata.test.ts +21 -0
- package/src/__tests__/page-component-overrides.test.tsx +63 -57
- package/src/__tests__/resource-factory.test.tsx +659 -0
- package/src/__tests__/resource-use-form.test.tsx +346 -0
- package/src/__tests__/resource-use-select.test.tsx +243 -0
- package/src/__tests__/router-overrides.test.tsx +118 -0
- package/src/__tests__/stack-auth.test.ts +160 -0
- package/src/__tests__/stack-error.test.ts +174 -0
- package/src/__tests__/use-list-state.test.tsx +353 -0
- package/src/api/index.ts +86 -2
- package/src/client/components/compose.tsx +91 -5
- package/src/client/hooks/use-list-state.ts +260 -0
- package/src/client/index.ts +12 -0
- package/src/context/auth.tsx +255 -0
- package/src/context/i18n.tsx +57 -0
- package/src/context/index.ts +15 -0
- package/src/context/notify.tsx +66 -0
- package/src/context/provider.tsx +170 -22
- package/src/context/router.tsx +70 -0
- package/src/next/handlers.ts +24 -0
- package/src/next/index.tsx +13 -0
- package/src/next/page.tsx +114 -0
- package/src/next/router.tsx +102 -0
- package/src/plugins/ai-chat/__tests__/client-sweep.test.tsx +317 -0
- package/src/plugins/ai-chat/__tests__/hooks.test.tsx +126 -0
- package/src/plugins/ai-chat/api/index.ts +7 -1
- package/src/plugins/ai-chat/api/plugin.ts +8 -9
- package/src/plugins/ai-chat/client/components/chat-input.tsx +51 -11
- package/src/plugins/ai-chat/client/components/chat-interface.tsx +81 -33
- package/src/plugins/ai-chat/client/components/chat-layout.tsx +59 -16
- package/src/plugins/ai-chat/client/components/chat-message.tsx +106 -24
- package/src/plugins/ai-chat/client/components/chat-sidebar.tsx +208 -68
- package/src/plugins/ai-chat/client/components/pages/404-page.tsx +13 -7
- package/src/plugins/ai-chat/client/components/pages/chat-page.internal.tsx +20 -7
- package/src/plugins/ai-chat/client/components/pages/chat-page.tsx +10 -1
- package/src/plugins/ai-chat/client/components/shared/default-error.tsx +18 -9
- package/src/plugins/ai-chat/client/components/tool-call-display.tsx +52 -25
- package/src/plugins/ai-chat/client/hooks/ai-chat-resource.ts +10 -0
- package/src/plugins/ai-chat/client/hooks/chat-hooks.tsx +89 -269
- package/src/plugins/ai-chat/client/localization/index.ts +110 -0
- package/src/plugins/ai-chat/client/overrides.ts +2 -52
- package/src/plugins/ai-chat/client/plugin.tsx +95 -93
- package/src/plugins/ai-chat/query-keys.ts +78 -73
- package/src/plugins/ai-chat/schemas.ts +1 -1
- package/src/plugins/api/create-endpoint.ts +82 -0
- package/src/plugins/api/index.ts +4 -1
- package/src/plugins/blog/__tests__/client-sweep.test.tsx +415 -0
- package/src/plugins/blog/api/plugin.ts +7 -7
- package/src/plugins/blog/client/components/forms/image-field.tsx +76 -37
- package/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.tsx +7 -7
- package/src/plugins/blog/client/components/forms/post-forms.tsx +312 -164
- package/src/plugins/blog/client/components/forms/tags-multiselect.tsx +6 -1
- package/src/plugins/blog/client/components/pages/404-page.tsx +13 -10
- package/src/plugins/blog/client/components/pages/edit-post-page.internal.tsx +22 -20
- package/src/plugins/blog/client/components/pages/edit-post-page.tsx +1 -0
- package/src/plugins/blog/client/components/pages/home-page.internal.tsx +7 -19
- package/src/plugins/blog/client/components/pages/home-page.tsx +3 -0
- package/src/plugins/blog/client/components/pages/new-post-page.internal.tsx +22 -20
- package/src/plugins/blog/client/components/pages/new-post-page.tsx +1 -0
- package/src/plugins/blog/client/components/pages/post-page.internal.tsx +19 -17
- package/src/plugins/blog/client/components/pages/tag-page.internal.tsx +27 -12
- package/src/plugins/blog/client/components/shared/collapsible-tag-list.tsx +19 -17
- package/src/plugins/blog/client/components/shared/default-error.tsx +11 -11
- package/src/plugins/blog/client/components/shared/markdown-content.tsx +5 -10
- package/src/plugins/blog/client/components/shared/on-this-page.tsx +13 -16
- package/src/plugins/blog/client/components/shared/post-card.tsx +13 -13
- package/src/plugins/blog/client/components/shared/post-navigation.tsx +6 -10
- package/src/plugins/blog/client/components/shared/posts-list.tsx +28 -15
- package/src/plugins/blog/client/components/shared/recent-posts-carousel.tsx +14 -7
- package/src/plugins/blog/client/components/shared/search-input.tsx +19 -8
- package/src/plugins/blog/client/components/shared/search-modal.tsx +70 -22
- package/src/plugins/blog/client/hooks/blog-hooks.tsx +50 -356
- package/src/plugins/blog/client/hooks/blog-resource.ts +13 -0
- package/src/plugins/blog/client/hooks/use-debounce.ts +2 -13
- package/src/plugins/blog/client/localization/blog-forms.ts +1 -0
- package/src/plugins/blog/client/overrides.ts +2 -72
- package/src/plugins/blog/client/plugin.tsx +52 -87
- package/src/plugins/blog/query-keys.ts +157 -248
- package/src/plugins/client/hooks/index.tsx +32 -0
- package/src/plugins/client/index.ts +37 -3
- package/src/plugins/client/resource/errors.ts +160 -0
- package/src/plugins/client/resource/hooks.tsx +285 -0
- package/src/plugins/client/resource/internal.ts +136 -0
- package/src/plugins/client/resource/queries.ts +330 -0
- package/src/plugins/client/resource/use-debounce.ts +18 -0
- package/src/plugins/client/resource/use-form.ts +236 -0
- package/src/plugins/client/resource/use-select.ts +196 -0
- package/src/plugins/cms/__tests__/client-sweep.test.tsx +553 -0
- package/src/plugins/cms/__tests__/getters.test.ts +100 -0
- package/src/plugins/cms/api/getters.ts +72 -11
- package/src/plugins/cms/api/plugin.ts +17 -8
- package/src/plugins/cms/api/query-key-defs.ts +11 -2
- package/src/plugins/cms/client/components/forms/content-form.tsx +123 -21
- package/src/plugins/cms/client/components/forms/file-upload.tsx +18 -4
- package/src/plugins/cms/client/components/forms/relation-field.tsx +92 -129
- package/src/plugins/cms/client/components/inverse-relations-panel.tsx +120 -99
- package/src/plugins/cms/client/components/pages/404-page.tsx +20 -6
- package/src/plugins/cms/client/components/pages/content-editor-page.internal.tsx +76 -28
- package/src/plugins/cms/client/components/pages/content-editor-page.tsx +9 -0
- package/src/plugins/cms/client/components/pages/content-list-page.internal.tsx +316 -109
- package/src/plugins/cms/client/components/pages/dashboard-page.internal.tsx +46 -31
- package/src/plugins/cms/client/hooks/cms-hooks.tsx +223 -553
- package/src/plugins/cms/client/hooks/cms-resource.ts +13 -0
- package/src/plugins/cms/client/localization/cms-common.ts +8 -0
- package/src/plugins/cms/client/localization/cms-editor.ts +5 -0
- package/src/plugins/cms/client/localization/cms-list.ts +3 -0
- package/src/plugins/cms/client/localization/cms-relations.ts +23 -0
- package/src/plugins/cms/client/localization/index.ts +2 -0
- package/src/plugins/cms/client/overrides.ts +2 -62
- package/src/plugins/cms/client/plugin.tsx +53 -90
- package/src/plugins/cms/query-keys.ts +268 -160
- package/src/plugins/cms/schemas.ts +1 -0
- package/src/plugins/comments/__tests__/client-sweep.test.tsx +628 -0
- package/src/plugins/comments/api/plugin.ts +11 -11
- package/src/plugins/comments/client/components/comment-count.tsx +3 -9
- package/src/plugins/comments/client/components/comment-form.tsx +40 -13
- package/src/plugins/comments/client/components/comment-thread.tsx +116 -67
- package/src/plugins/comments/client/components/pages/moderation-page.internal.tsx +312 -143
- package/src/plugins/comments/client/components/pages/moderation-page.tsx +2 -14
- package/src/plugins/comments/client/components/pages/my-comments-page.internal.tsx +123 -57
- package/src/plugins/comments/client/components/pages/my-comments-page.tsx +1 -14
- package/src/plugins/comments/client/components/pages/resource-comments-page.internal.tsx +105 -65
- package/src/plugins/comments/client/components/pages/resource-comments-page.tsx +1 -21
- package/src/plugins/comments/client/components/shared/pagination.tsx +15 -7
- package/src/plugins/comments/client/hooks/use-comments.tsx +56 -70
- package/src/plugins/comments/client/overrides.ts +1 -67
- package/src/plugins/comments/client/plugin.tsx +10 -10
- package/src/plugins/comments/client/utils.ts +11 -42
- package/src/plugins/comments/query-keys.ts +162 -152
- package/src/plugins/form-builder/__tests__/client-sweep.test.tsx +564 -0
- package/src/plugins/form-builder/__tests__/getters.test.ts +48 -1
- package/src/plugins/form-builder/api/getters.ts +58 -11
- package/src/plugins/form-builder/api/plugin.ts +13 -17
- package/src/plugins/form-builder/api/query-key-defs.ts +10 -1
- package/src/plugins/form-builder/client/components/forms/form-renderer.tsx +56 -18
- package/src/plugins/form-builder/client/components/pages/404-page.tsx +21 -6
- package/src/plugins/form-builder/client/components/pages/form-builder-page.internal.tsx +121 -65
- package/src/plugins/form-builder/client/components/pages/form-builder-page.tsx +34 -8
- package/src/plugins/form-builder/client/components/pages/form-list-page.internal.tsx +252 -75
- package/src/plugins/form-builder/client/components/pages/form-list-page.tsx +24 -8
- package/src/plugins/form-builder/client/components/pages/submissions-page.internal.tsx +142 -47
- package/src/plugins/form-builder/client/components/pages/submissions-page.tsx +33 -8
- package/src/plugins/form-builder/client/components/shared/pagination.tsx +3 -1
- package/src/plugins/form-builder/client/hooks/form-builder-hooks.tsx +84 -537
- package/src/plugins/form-builder/client/hooks/form-builder-resource.ts +14 -0
- package/src/plugins/form-builder/client/localization/form-builder-common.ts +6 -0
- package/src/plugins/form-builder/client/localization/form-builder-list.ts +6 -2
- package/src/plugins/form-builder/client/localization/form-builder-renderer.ts +10 -0
- package/src/plugins/form-builder/client/localization/form-builder-submissions.ts +7 -0
- package/src/plugins/form-builder/client/localization/form-builder-toasts.ts +4 -0
- package/src/plugins/form-builder/client/localization/index.ts +2 -0
- package/src/plugins/form-builder/client/overrides.ts +2 -56
- package/src/plugins/form-builder/client/plugin.tsx +44 -102
- package/src/plugins/form-builder/query-keys.ts +200 -160
- package/src/plugins/form-builder/schemas.ts +8 -1
- package/src/plugins/kanban/__tests__/client-sweep.test.tsx +297 -0
- package/src/plugins/kanban/api/plugin.ts +15 -15
- package/src/plugins/kanban/client/components/forms/board-form.tsx +89 -42
- package/src/plugins/kanban/client/components/forms/column-form.tsx +68 -35
- package/src/plugins/kanban/client/components/forms/task-form.tsx +259 -128
- package/src/plugins/kanban/client/components/pages/404-page.tsx +22 -7
- package/src/plugins/kanban/client/components/pages/board-page.internal.tsx +229 -98
- package/src/plugins/kanban/client/components/pages/board-page.tsx +5 -0
- package/src/plugins/kanban/client/components/pages/boards-list-page.internal.tsx +46 -18
- package/src/plugins/kanban/client/components/pages/boards-list-page.tsx +1 -0
- package/src/plugins/kanban/client/components/pages/new-board-page.internal.tsx +26 -9
- package/src/plugins/kanban/client/components/pages/new-board-page.tsx +1 -0
- package/src/plugins/kanban/client/components/shared/column-content.tsx +96 -32
- package/src/plugins/kanban/client/components/shared/default-error.tsx +14 -3
- package/src/plugins/kanban/client/components/shared/kanban-board.tsx +9 -0
- package/src/plugins/kanban/client/components/shared/task-card.tsx +42 -8
- package/src/plugins/kanban/client/components/shared/user-avatar.tsx +12 -2
- package/src/plugins/kanban/client/hooks/index.tsx +3 -0
- package/src/plugins/kanban/client/hooks/kanban-hooks.tsx +74 -437
- package/src/plugins/kanban/client/hooks/kanban-resource.ts +13 -0
- package/src/plugins/kanban/client/localization/kanban-common.ts +24 -0
- package/src/plugins/kanban/client/localization/kanban-forms.ts +11 -0
- package/src/plugins/kanban/client/localization/kanban-list.ts +25 -0
- package/src/plugins/kanban/client/overrides.ts +2 -57
- package/src/plugins/kanban/client/plugin.tsx +31 -55
- package/src/plugins/kanban/query-keys.ts +253 -129
- package/src/plugins/media/__tests__/client-sweep.test.tsx +269 -0
- package/src/plugins/media/__tests__/getters.test.ts +33 -1
- package/src/plugins/media/__tests__/plugin.test.ts +23 -14
- package/src/plugins/media/api/getters.ts +7 -4
- package/src/plugins/media/api/index.ts +5 -1
- package/src/plugins/media/api/plugin.ts +14 -15
- package/src/plugins/media/api/query-key-defs.ts +13 -4
- package/src/plugins/media/client/components/media-picker/asset-card.tsx +55 -32
- package/src/plugins/media/client/components/media-picker/asset-preview-button.tsx +7 -3
- package/src/plugins/media/client/components/media-picker/browse-tab.tsx +35 -12
- package/src/plugins/media/client/components/media-picker/folder-tree.tsx +74 -34
- package/src/plugins/media/client/components/media-picker/index.tsx +82 -55
- package/src/plugins/media/client/components/media-picker/upload-tab.tsx +39 -7
- package/src/plugins/media/client/components/media-picker/url-tab.tsx +33 -20
- package/src/plugins/media/client/components/pages/library-page.internal.tsx +97 -42
- package/src/plugins/media/client/components/pages/library-page.tsx +1 -0
- package/src/plugins/media/client/hooks/index.tsx +8 -0
- package/src/plugins/media/client/hooks/media-resource.ts +10 -0
- package/src/plugins/media/client/hooks/use-media.tsx +132 -256
- package/src/plugins/media/client/overrides.ts +0 -51
- package/src/plugins/media/client/plugin.tsx +12 -11
- package/src/plugins/media/client/upload.ts +10 -6
- package/src/plugins/media/query-keys.ts +132 -81
- package/src/plugins/media/schemas.ts +16 -1
- package/src/plugins/route-docs/client/plugin.tsx +13 -15
- package/src/plugins/ui-builder/__tests__/client-sweep.test.tsx +333 -0
- package/src/plugins/ui-builder/client/components/page-renderer.tsx +26 -3
- package/src/plugins/ui-builder/client/components/pages/page-builder-page.internal.tsx +155 -47
- package/src/plugins/ui-builder/client/components/pages/page-builder-page.tsx +28 -7
- package/src/plugins/ui-builder/client/components/pages/page-list-page.internal.tsx +201 -57
- package/src/plugins/ui-builder/client/components/pages/page-list-page.tsx +21 -7
- package/src/plugins/ui-builder/client/components/shared/default-error.tsx +22 -5
- package/src/plugins/ui-builder/client/components/shared/pagination.tsx +3 -1
- package/src/plugins/ui-builder/client/hooks/index.tsx +3 -0
- package/src/plugins/ui-builder/client/hooks/ui-builder-hooks.tsx +73 -546
- package/src/plugins/ui-builder/client/hooks/ui-builder-resource.ts +10 -0
- package/src/plugins/ui-builder/client/index.ts +4 -0
- package/src/plugins/ui-builder/client/localization/index.ts +88 -11
- package/src/plugins/ui-builder/client/overrides.ts +6 -28
- package/src/plugins/ui-builder/client/plugin.tsx +38 -85
- package/src/plugins/ui-builder/query-keys.ts +216 -0
- package/src/plugins/utils.ts +4 -76
- package/src/react-router/handlers.ts +26 -0
- package/src/react-router/index.tsx +12 -0
- package/src/react-router/page.tsx +161 -0
- package/src/react-router/router.tsx +63 -0
- package/src/shared/auth-types.ts +98 -0
- package/src/shared/entry-factories.ts +64 -0
- package/src/shared/i18n-types.ts +31 -0
- package/src/shared/interpolate.ts +14 -0
- package/src/shared/list-state.ts +147 -0
- package/src/shared/notify-types.ts +29 -0
- package/src/tanstack/handlers.ts +28 -0
- package/src/tanstack/index.tsx +12 -0
- package/src/tanstack/page.tsx +113 -0
- package/src/tanstack/router.tsx +61 -0
- package/src/types.ts +17 -0
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-card.cjs +0 -7
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-card.mjs +0 -5
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-common.cjs +0 -12
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-common.mjs +0 -10
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-forms.cjs +0 -48
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-forms.mjs +0 -46
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-list.cjs +0 -18
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-list.mjs +0 -16
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-post.cjs +0 -13
- package/dist/packages/stack/src/plugins/blog/client/localization/blog-post.mjs +0 -11
- package/dist/packages/stack/src/plugins/blog/client/localization/index.cjs +0 -17
- package/dist/packages/stack/src/plugins/blog/client/localization/index.mjs +0 -15
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-common.cjs +0 -29
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-common.mjs +0 -27
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-dashboard.cjs +0 -13
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-dashboard.mjs +0 -11
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-editor.cjs +0 -12
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-editor.mjs +0 -10
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-list.cjs +0 -18
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-list.mjs +0 -16
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-toasts.cjs +0 -12
- package/dist/packages/stack/src/plugins/cms/client/localization/cms-toasts.mjs +0 -10
- package/dist/packages/stack/src/plugins/cms/client/localization/index.cjs +0 -17
- package/dist/packages/stack/src/plugins/cms/client/localization/index.mjs +0 -15
- package/dist/packages/stack/src/plugins/comments/error-utils.cjs +0 -15
- package/dist/packages/stack/src/plugins/comments/error-utils.mjs +0 -13
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-common.cjs +0 -36
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-common.mjs +0 -34
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-editor.cjs +0 -19
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-editor.mjs +0 -17
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-list.cjs +0 -21
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-list.mjs +0 -19
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-submissions.cjs +0 -19
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-submissions.mjs +0 -17
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-toasts.cjs +0 -14
- package/dist/packages/stack/src/plugins/form-builder/client/localization/form-builder-toasts.mjs +0 -12
- package/dist/packages/stack/src/plugins/form-builder/client/localization/index.cjs +0 -17
- package/dist/packages/stack/src/plugins/form-builder/client/localization/index.mjs +0 -15
- package/dist/shared/stack.C1nXGBr6.d.cts +0 -116
- package/dist/shared/stack.C7KNNiJm.d.cts +0 -144
- package/dist/shared/stack.C7KNNiJm.d.mts +0 -144
- package/dist/shared/stack.C7KNNiJm.d.ts +0 -144
- package/dist/shared/stack.C7u9lq9T.d.mts +0 -75
- package/dist/shared/stack.DD-ZORI7.d.ts +0 -75
- package/dist/shared/stack.DLPa6Gzm.d.mts +0 -116
- package/dist/shared/stack.DxJ-tHLt.d.ts +0 -116
- package/dist/shared/stack.jU2iG86n.d.cts +0 -75
- package/src/plugins/cms/client/components/shared/pagination.tsx +0 -44
- package/src/plugins/comments/error-utils.ts +0 -17
- package/dist/shared/{stack.Rtcvl8sS.d.cts → stack.CuI_-z-_.d.cts} +28 -28
- package/dist/shared/{stack.CuhcFsAx.d.cts → stack.D18Dq3ve.d.cts} +2 -2
- package/dist/shared/{stack.CuhcFsAx.d.mts → stack.D18Dq3ve.d.mts} +2 -2
- package/dist/shared/{stack.CuhcFsAx.d.ts → stack.D18Dq3ve.d.ts} +2 -2
- package/dist/shared/{stack.HE_IvqV5.d.mts → stack.D2RVkQD8.d.mts} +28 -28
- package/dist/shared/{stack.D4Cea8II.d.ts → stack.DXrOtuek.d.ts} +28 -28
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const hooks = require('../../../packages/stack/src/plugins/client/resource/hooks.cjs');
|
|
4
|
+
const useForm = require('../../../packages/stack/src/plugins/client/resource/use-form.cjs');
|
|
5
|
+
const useSelect = require('../../../packages/stack/src/plugins/client/resource/use-select.cjs');
|
|
6
|
+
const useDebounce = require('../../../packages/stack/src/plugins/client/resource/use-debounce.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.createResource = hooks.createResource;
|
|
11
|
+
exports.createUseForm = useForm.createUseForm;
|
|
12
|
+
exports.createUseSelect = useSelect.createUseSelect;
|
|
13
|
+
exports.useDebounce = useDebounce.useDebounce;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { UseInfiniteQueryResult, InfiniteData, UseSuspenseInfiniteQueryResult, UseQueryResult, UseSuspenseQueryResult, UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import { a as StackError, f as ResourceDef, p as ResourcesDeclaration, k as ResourceQueryArgs, l as ResourceQueryData, h as ResourceMutationResult, j as ResourceMutationVars } from '../../../shared/stack.CbZenbej.cjs';
|
|
3
|
+
|
|
4
|
+
/** Configuration for the per-resource `useForm` hook. */
|
|
5
|
+
interface ResourceFormConfig<TValues, TRecord = unknown, TResult = unknown> {
|
|
6
|
+
action: "create" | "edit";
|
|
7
|
+
/** Detail-query arg identifying the record to edit (e.g. a slug or id) */
|
|
8
|
+
id?: unknown;
|
|
9
|
+
/** Query used to fetch the record for edit (default `"detail"`) */
|
|
10
|
+
detailQuery?: string;
|
|
11
|
+
/** Mutation used on create submit (default `"create"`) */
|
|
12
|
+
createMutation?: string;
|
|
13
|
+
/** Mutation used on edit submit (default `"update"`) */
|
|
14
|
+
updateMutation?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Externally supplied record — skips the internal detail fetch. Useful
|
|
17
|
+
* when the record comes from a suspense hook higher in the tree.
|
|
18
|
+
*/
|
|
19
|
+
record?: TRecord | null;
|
|
20
|
+
/** Default form values, or a function deriving them from the record */
|
|
21
|
+
defaults?: TValues | ((record: TRecord | null) => TValues);
|
|
22
|
+
/** Maps form values to create-mutation variables (default: identity) */
|
|
23
|
+
toCreateVars?: (values: TValues) => unknown;
|
|
24
|
+
/** Maps form values to update-mutation variables (default: identity) */
|
|
25
|
+
toUpdateVars?: (values: TValues, record: TRecord | null) => unknown;
|
|
26
|
+
/** Success notification, sent through the `notify` provider */
|
|
27
|
+
successMessage?: string | ((result: TResult, action: "create" | "edit") => string);
|
|
28
|
+
/**
|
|
29
|
+
* Error notification for non-field errors. Field-level validation errors
|
|
30
|
+
* land on `fieldErrors` instead of producing a notification.
|
|
31
|
+
*/
|
|
32
|
+
errorMessage?: string | ((error: StackError) => string);
|
|
33
|
+
/**
|
|
34
|
+
* Path to navigate to after success (via the router adapter's
|
|
35
|
+
* `navigate`). A function form derives it from the result; return a
|
|
36
|
+
* falsy value to skip navigation.
|
|
37
|
+
*/
|
|
38
|
+
redirect?: string | ((result: TResult, action: "create" | "edit") => string | false | null | undefined);
|
|
39
|
+
/** Called after a successful submit (before redirect) */
|
|
40
|
+
onSuccess?: (result: TResult) => void | Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
/** Result of the per-resource `useForm` hook. */
|
|
43
|
+
interface ResourceFormResult<TValues, TRecord = unknown, TResult = unknown> {
|
|
44
|
+
action: "create" | "edit";
|
|
45
|
+
/** The record being edited (null while loading or when creating) */
|
|
46
|
+
record: TRecord | null;
|
|
47
|
+
isLoadingRecord: boolean;
|
|
48
|
+
recordError: Error | null;
|
|
49
|
+
/** Resolved default values (stable while `record` is unchanged) */
|
|
50
|
+
defaultValues: TValues | undefined;
|
|
51
|
+
/** Runs the right mutation; resolves the result, or undefined on error */
|
|
52
|
+
submit: (values: TValues) => Promise<TResult | undefined>;
|
|
53
|
+
isSubmitting: boolean;
|
|
54
|
+
/** Last submit error (normalized), or null */
|
|
55
|
+
error: StackError | null;
|
|
56
|
+
/** Field name → validation message(s) from the last submit error */
|
|
57
|
+
fieldErrors: Record<string, string | string[]>;
|
|
58
|
+
clearErrors: () => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Builds the per-resource `useForm` hook: bundles the create/edit lifecycle —
|
|
62
|
+
* fetch record for edit, defaults, submit the right mutation, invalidate,
|
|
63
|
+
* notify, redirect, and per-field error state from `StackError.errors`.
|
|
64
|
+
*/
|
|
65
|
+
declare function createUseForm(plugin: string, resourceName: string, resource: ResourceDef): <TValues, TRecord = unknown, TResult = unknown>(config: ResourceFormConfig<TValues, TRecord, TResult>) => ResourceFormResult<TValues, TRecord, TResult>;
|
|
66
|
+
|
|
67
|
+
/** An option produced by the per-resource `useSelect` hook. */
|
|
68
|
+
interface ResourceSelectOption<TItem> {
|
|
69
|
+
value: string;
|
|
70
|
+
label: string;
|
|
71
|
+
/** The underlying record; undefined for values that could not be resolved */
|
|
72
|
+
item?: TItem;
|
|
73
|
+
}
|
|
74
|
+
/** Configuration for the per-resource `useSelect` hook. */
|
|
75
|
+
interface ResourceSelectConfig<TItem> {
|
|
76
|
+
/**
|
|
77
|
+
* Query used to fetch options (default `"list"`). Must be a non-infinite
|
|
78
|
+
* query whose data is an array of records.
|
|
79
|
+
*/
|
|
80
|
+
query?: string;
|
|
81
|
+
/** Maps the (debounced) search text to the option-query args */
|
|
82
|
+
searchArgs: (search: string) => readonly unknown[];
|
|
83
|
+
getOptionValue: (item: TItem) => string;
|
|
84
|
+
getOptionLabel: (item: TItem) => string;
|
|
85
|
+
/** Currently selected value(s) — preloaded when missing from options */
|
|
86
|
+
value?: string | string[];
|
|
87
|
+
/**
|
|
88
|
+
* Query used to preload selected values missing from the options
|
|
89
|
+
* (default query `"detail"`). Preloading is skipped when omitted.
|
|
90
|
+
*/
|
|
91
|
+
preload?: {
|
|
92
|
+
query?: string;
|
|
93
|
+
args: (value: string) => readonly unknown[];
|
|
94
|
+
};
|
|
95
|
+
/** Debounce for the search text in milliseconds (default 300) */
|
|
96
|
+
debounceMs?: number;
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/** Result of the per-resource `useSelect` hook. */
|
|
100
|
+
interface ResourceSelectResult<TItem> {
|
|
101
|
+
/** Search results plus preloaded selected records */
|
|
102
|
+
options: ResourceSelectOption<TItem>[];
|
|
103
|
+
/** Options for the current `value(s)`, resolved where possible */
|
|
104
|
+
selectedOptions: ResourceSelectOption<TItem>[];
|
|
105
|
+
search: string;
|
|
106
|
+
setSearch: (search: string) => void;
|
|
107
|
+
/** Initial load of options or preloaded values in flight */
|
|
108
|
+
isLoading: boolean;
|
|
109
|
+
/** Search debounce pending or a search fetch in flight */
|
|
110
|
+
isSearching: boolean;
|
|
111
|
+
error: Error | null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Builds the per-resource `useSelect` hook: debounced server-side search,
|
|
115
|
+
* current-value preloading, and loading states for relation pickers.
|
|
116
|
+
*/
|
|
117
|
+
declare function createUseSelect(plugin: string, resourceName: string, resource: ResourceDef): <TItem>(config: ResourceSelectConfig<TItem>) => ResourceSelectResult<TItem>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* `createResource` — generates the repetitive React Query plumbing for a
|
|
121
|
+
* plugin's resources from a single declaration: plain queries, suspense
|
|
122
|
+
* queries, infinite queries, mutations with invalidation, plus `useForm`
|
|
123
|
+
* and `useSelect` per resource.
|
|
124
|
+
*
|
|
125
|
+
* The same declaration feeds `createResourceQueryKeys` (see `./queries`),
|
|
126
|
+
* so SSR loaders and SSG `prefetchForRoute` keys stay in sync with hooks.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```ts
|
|
130
|
+
* const blog = createResource({ plugin: "blog", resources: blogResources });
|
|
131
|
+
*
|
|
132
|
+
* export const usePost = (slug?: string) =>
|
|
133
|
+
* blog.posts.detail.use([slug ?? ""], { enabled: !!slug });
|
|
134
|
+
* export const useCreatePost = () => blog.posts.create.use();
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
/** Per-call options for generated query hooks. */
|
|
139
|
+
interface ResourceQueryOptions {
|
|
140
|
+
enabled?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/** Hooks generated for a non-infinite query declaration. */
|
|
143
|
+
interface ResourcePlainQueryHooks<TArgs extends readonly unknown[], TData> {
|
|
144
|
+
use(args?: TArgs, options?: ResourceQueryOptions): UseQueryResult<TData, Error>;
|
|
145
|
+
/** Suspense variant — re-throws refetch errors for Error Boundaries */
|
|
146
|
+
useSuspense(args?: TArgs): UseSuspenseQueryResult<TData, Error>;
|
|
147
|
+
}
|
|
148
|
+
/** Hooks generated for an infinite query declaration. */
|
|
149
|
+
interface ResourceInfiniteQueryHooks<TArgs extends readonly unknown[], TData> {
|
|
150
|
+
useInfinite(args?: TArgs, options?: ResourceQueryOptions): UseInfiniteQueryResult<InfiniteData<TData, number>, Error>;
|
|
151
|
+
/** Suspense variant — re-throws refetch errors for Error Boundaries */
|
|
152
|
+
useSuspenseInfinite(args?: TArgs): UseSuspenseInfiniteQueryResult<InfiniteData<TData, number>, Error>;
|
|
153
|
+
}
|
|
154
|
+
/** Dispatches to the plain or infinite hook set based on the declaration. */
|
|
155
|
+
type ResourceQueryHooks<TDef> = TDef extends {
|
|
156
|
+
infinite: true;
|
|
157
|
+
} ? ResourceInfiniteQueryHooks<ResourceQueryArgs<TDef>, ResourceQueryData<TDef>> : ResourcePlainQueryHooks<ResourceQueryArgs<TDef>, ResourceQueryData<TDef>>;
|
|
158
|
+
/** Hook generated for a mutation declaration. */
|
|
159
|
+
interface ResourceMutationHooks<TDef> {
|
|
160
|
+
use(): UseMutationResult<ResourceMutationResult<TDef>, Error, ResourceMutationVars<TDef>>;
|
|
161
|
+
}
|
|
162
|
+
/** The detail-query record type of a resource (used by `useForm` defaults). */
|
|
163
|
+
type ResourceDetailData<TResource extends ResourceDef> = TResource["queries"] extends {
|
|
164
|
+
detail: infer TDetail;
|
|
165
|
+
} ? ResourceQueryData<TDetail> : unknown;
|
|
166
|
+
/** The generated handle for a single resource. */
|
|
167
|
+
type ResourceHandle<TResource extends ResourceDef> = {
|
|
168
|
+
[Q in keyof TResource["queries"]]: ResourceQueryHooks<TResource["queries"][Q]>;
|
|
169
|
+
} & {
|
|
170
|
+
[M in keyof NonNullable<TResource["mutations"]>]: ResourceMutationHooks<NonNullable<TResource["mutations"]>[M]>;
|
|
171
|
+
} & {
|
|
172
|
+
useForm<TValues, TResult = unknown, TRecord = ResourceDetailData<TResource>>(config: ResourceFormConfig<TValues, TRecord, TResult>): ResourceFormResult<TValues, TRecord, TResult>;
|
|
173
|
+
useSelect<TItem>(config: ResourceSelectConfig<TItem>): ResourceSelectResult<TItem>;
|
|
174
|
+
};
|
|
175
|
+
/** The generated resource handles, keyed by resource name. */
|
|
176
|
+
type Resource<TResources extends ResourcesDeclaration> = {
|
|
177
|
+
[R in keyof TResources]: ResourceHandle<TResources[R]>;
|
|
178
|
+
};
|
|
179
|
+
interface CreateResourceConfig<TResources extends ResourcesDeclaration> {
|
|
180
|
+
/** Plugin name used to resolve plugin-specific request headers. */
|
|
181
|
+
plugin: string;
|
|
182
|
+
resources: TResources;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Generates the full hook surface for a plugin's resources.
|
|
186
|
+
*
|
|
187
|
+
* Hooks resolve API and router wiring from `StackProvider`, plus any
|
|
188
|
+
* plugin-specific request headers, at render time so the declaration can
|
|
189
|
+
* live at module scope.
|
|
190
|
+
*/
|
|
191
|
+
declare function createResource<const TResources extends ResourcesDeclaration>(config: CreateResourceConfig<TResources>): Resource<TResources>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Plugin-specific request options consumed by the resource layer.
|
|
195
|
+
*/
|
|
196
|
+
interface ResourceOverrides {
|
|
197
|
+
headers?: HeadersInit;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** Returns `value` debounced by `delay` milliseconds (default 500). */
|
|
201
|
+
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
202
|
+
|
|
203
|
+
export { createResource, createUseForm, createUseSelect, useDebounce };
|
|
204
|
+
export type { CreateResourceConfig, Resource, ResourceDetailData, ResourceFormConfig, ResourceFormResult, ResourceHandle, ResourceInfiniteQueryHooks, ResourceMutationHooks, ResourceOverrides, ResourcePlainQueryHooks, ResourceQueryHooks, ResourceQueryOptions, ResourceSelectConfig, ResourceSelectOption, ResourceSelectResult };
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { UseInfiniteQueryResult, InfiniteData, UseSuspenseInfiniteQueryResult, UseQueryResult, UseSuspenseQueryResult, UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import { a as StackError, f as ResourceDef, p as ResourcesDeclaration, k as ResourceQueryArgs, l as ResourceQueryData, h as ResourceMutationResult, j as ResourceMutationVars } from '../../../shared/stack.CbZenbej.mjs';
|
|
3
|
+
|
|
4
|
+
/** Configuration for the per-resource `useForm` hook. */
|
|
5
|
+
interface ResourceFormConfig<TValues, TRecord = unknown, TResult = unknown> {
|
|
6
|
+
action: "create" | "edit";
|
|
7
|
+
/** Detail-query arg identifying the record to edit (e.g. a slug or id) */
|
|
8
|
+
id?: unknown;
|
|
9
|
+
/** Query used to fetch the record for edit (default `"detail"`) */
|
|
10
|
+
detailQuery?: string;
|
|
11
|
+
/** Mutation used on create submit (default `"create"`) */
|
|
12
|
+
createMutation?: string;
|
|
13
|
+
/** Mutation used on edit submit (default `"update"`) */
|
|
14
|
+
updateMutation?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Externally supplied record — skips the internal detail fetch. Useful
|
|
17
|
+
* when the record comes from a suspense hook higher in the tree.
|
|
18
|
+
*/
|
|
19
|
+
record?: TRecord | null;
|
|
20
|
+
/** Default form values, or a function deriving them from the record */
|
|
21
|
+
defaults?: TValues | ((record: TRecord | null) => TValues);
|
|
22
|
+
/** Maps form values to create-mutation variables (default: identity) */
|
|
23
|
+
toCreateVars?: (values: TValues) => unknown;
|
|
24
|
+
/** Maps form values to update-mutation variables (default: identity) */
|
|
25
|
+
toUpdateVars?: (values: TValues, record: TRecord | null) => unknown;
|
|
26
|
+
/** Success notification, sent through the `notify` provider */
|
|
27
|
+
successMessage?: string | ((result: TResult, action: "create" | "edit") => string);
|
|
28
|
+
/**
|
|
29
|
+
* Error notification for non-field errors. Field-level validation errors
|
|
30
|
+
* land on `fieldErrors` instead of producing a notification.
|
|
31
|
+
*/
|
|
32
|
+
errorMessage?: string | ((error: StackError) => string);
|
|
33
|
+
/**
|
|
34
|
+
* Path to navigate to after success (via the router adapter's
|
|
35
|
+
* `navigate`). A function form derives it from the result; return a
|
|
36
|
+
* falsy value to skip navigation.
|
|
37
|
+
*/
|
|
38
|
+
redirect?: string | ((result: TResult, action: "create" | "edit") => string | false | null | undefined);
|
|
39
|
+
/** Called after a successful submit (before redirect) */
|
|
40
|
+
onSuccess?: (result: TResult) => void | Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
/** Result of the per-resource `useForm` hook. */
|
|
43
|
+
interface ResourceFormResult<TValues, TRecord = unknown, TResult = unknown> {
|
|
44
|
+
action: "create" | "edit";
|
|
45
|
+
/** The record being edited (null while loading or when creating) */
|
|
46
|
+
record: TRecord | null;
|
|
47
|
+
isLoadingRecord: boolean;
|
|
48
|
+
recordError: Error | null;
|
|
49
|
+
/** Resolved default values (stable while `record` is unchanged) */
|
|
50
|
+
defaultValues: TValues | undefined;
|
|
51
|
+
/** Runs the right mutation; resolves the result, or undefined on error */
|
|
52
|
+
submit: (values: TValues) => Promise<TResult | undefined>;
|
|
53
|
+
isSubmitting: boolean;
|
|
54
|
+
/** Last submit error (normalized), or null */
|
|
55
|
+
error: StackError | null;
|
|
56
|
+
/** Field name → validation message(s) from the last submit error */
|
|
57
|
+
fieldErrors: Record<string, string | string[]>;
|
|
58
|
+
clearErrors: () => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Builds the per-resource `useForm` hook: bundles the create/edit lifecycle —
|
|
62
|
+
* fetch record for edit, defaults, submit the right mutation, invalidate,
|
|
63
|
+
* notify, redirect, and per-field error state from `StackError.errors`.
|
|
64
|
+
*/
|
|
65
|
+
declare function createUseForm(plugin: string, resourceName: string, resource: ResourceDef): <TValues, TRecord = unknown, TResult = unknown>(config: ResourceFormConfig<TValues, TRecord, TResult>) => ResourceFormResult<TValues, TRecord, TResult>;
|
|
66
|
+
|
|
67
|
+
/** An option produced by the per-resource `useSelect` hook. */
|
|
68
|
+
interface ResourceSelectOption<TItem> {
|
|
69
|
+
value: string;
|
|
70
|
+
label: string;
|
|
71
|
+
/** The underlying record; undefined for values that could not be resolved */
|
|
72
|
+
item?: TItem;
|
|
73
|
+
}
|
|
74
|
+
/** Configuration for the per-resource `useSelect` hook. */
|
|
75
|
+
interface ResourceSelectConfig<TItem> {
|
|
76
|
+
/**
|
|
77
|
+
* Query used to fetch options (default `"list"`). Must be a non-infinite
|
|
78
|
+
* query whose data is an array of records.
|
|
79
|
+
*/
|
|
80
|
+
query?: string;
|
|
81
|
+
/** Maps the (debounced) search text to the option-query args */
|
|
82
|
+
searchArgs: (search: string) => readonly unknown[];
|
|
83
|
+
getOptionValue: (item: TItem) => string;
|
|
84
|
+
getOptionLabel: (item: TItem) => string;
|
|
85
|
+
/** Currently selected value(s) — preloaded when missing from options */
|
|
86
|
+
value?: string | string[];
|
|
87
|
+
/**
|
|
88
|
+
* Query used to preload selected values missing from the options
|
|
89
|
+
* (default query `"detail"`). Preloading is skipped when omitted.
|
|
90
|
+
*/
|
|
91
|
+
preload?: {
|
|
92
|
+
query?: string;
|
|
93
|
+
args: (value: string) => readonly unknown[];
|
|
94
|
+
};
|
|
95
|
+
/** Debounce for the search text in milliseconds (default 300) */
|
|
96
|
+
debounceMs?: number;
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/** Result of the per-resource `useSelect` hook. */
|
|
100
|
+
interface ResourceSelectResult<TItem> {
|
|
101
|
+
/** Search results plus preloaded selected records */
|
|
102
|
+
options: ResourceSelectOption<TItem>[];
|
|
103
|
+
/** Options for the current `value(s)`, resolved where possible */
|
|
104
|
+
selectedOptions: ResourceSelectOption<TItem>[];
|
|
105
|
+
search: string;
|
|
106
|
+
setSearch: (search: string) => void;
|
|
107
|
+
/** Initial load of options or preloaded values in flight */
|
|
108
|
+
isLoading: boolean;
|
|
109
|
+
/** Search debounce pending or a search fetch in flight */
|
|
110
|
+
isSearching: boolean;
|
|
111
|
+
error: Error | null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Builds the per-resource `useSelect` hook: debounced server-side search,
|
|
115
|
+
* current-value preloading, and loading states for relation pickers.
|
|
116
|
+
*/
|
|
117
|
+
declare function createUseSelect(plugin: string, resourceName: string, resource: ResourceDef): <TItem>(config: ResourceSelectConfig<TItem>) => ResourceSelectResult<TItem>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* `createResource` — generates the repetitive React Query plumbing for a
|
|
121
|
+
* plugin's resources from a single declaration: plain queries, suspense
|
|
122
|
+
* queries, infinite queries, mutations with invalidation, plus `useForm`
|
|
123
|
+
* and `useSelect` per resource.
|
|
124
|
+
*
|
|
125
|
+
* The same declaration feeds `createResourceQueryKeys` (see `./queries`),
|
|
126
|
+
* so SSR loaders and SSG `prefetchForRoute` keys stay in sync with hooks.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```ts
|
|
130
|
+
* const blog = createResource({ plugin: "blog", resources: blogResources });
|
|
131
|
+
*
|
|
132
|
+
* export const usePost = (slug?: string) =>
|
|
133
|
+
* blog.posts.detail.use([slug ?? ""], { enabled: !!slug });
|
|
134
|
+
* export const useCreatePost = () => blog.posts.create.use();
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
/** Per-call options for generated query hooks. */
|
|
139
|
+
interface ResourceQueryOptions {
|
|
140
|
+
enabled?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/** Hooks generated for a non-infinite query declaration. */
|
|
143
|
+
interface ResourcePlainQueryHooks<TArgs extends readonly unknown[], TData> {
|
|
144
|
+
use(args?: TArgs, options?: ResourceQueryOptions): UseQueryResult<TData, Error>;
|
|
145
|
+
/** Suspense variant — re-throws refetch errors for Error Boundaries */
|
|
146
|
+
useSuspense(args?: TArgs): UseSuspenseQueryResult<TData, Error>;
|
|
147
|
+
}
|
|
148
|
+
/** Hooks generated for an infinite query declaration. */
|
|
149
|
+
interface ResourceInfiniteQueryHooks<TArgs extends readonly unknown[], TData> {
|
|
150
|
+
useInfinite(args?: TArgs, options?: ResourceQueryOptions): UseInfiniteQueryResult<InfiniteData<TData, number>, Error>;
|
|
151
|
+
/** Suspense variant — re-throws refetch errors for Error Boundaries */
|
|
152
|
+
useSuspenseInfinite(args?: TArgs): UseSuspenseInfiniteQueryResult<InfiniteData<TData, number>, Error>;
|
|
153
|
+
}
|
|
154
|
+
/** Dispatches to the plain or infinite hook set based on the declaration. */
|
|
155
|
+
type ResourceQueryHooks<TDef> = TDef extends {
|
|
156
|
+
infinite: true;
|
|
157
|
+
} ? ResourceInfiniteQueryHooks<ResourceQueryArgs<TDef>, ResourceQueryData<TDef>> : ResourcePlainQueryHooks<ResourceQueryArgs<TDef>, ResourceQueryData<TDef>>;
|
|
158
|
+
/** Hook generated for a mutation declaration. */
|
|
159
|
+
interface ResourceMutationHooks<TDef> {
|
|
160
|
+
use(): UseMutationResult<ResourceMutationResult<TDef>, Error, ResourceMutationVars<TDef>>;
|
|
161
|
+
}
|
|
162
|
+
/** The detail-query record type of a resource (used by `useForm` defaults). */
|
|
163
|
+
type ResourceDetailData<TResource extends ResourceDef> = TResource["queries"] extends {
|
|
164
|
+
detail: infer TDetail;
|
|
165
|
+
} ? ResourceQueryData<TDetail> : unknown;
|
|
166
|
+
/** The generated handle for a single resource. */
|
|
167
|
+
type ResourceHandle<TResource extends ResourceDef> = {
|
|
168
|
+
[Q in keyof TResource["queries"]]: ResourceQueryHooks<TResource["queries"][Q]>;
|
|
169
|
+
} & {
|
|
170
|
+
[M in keyof NonNullable<TResource["mutations"]>]: ResourceMutationHooks<NonNullable<TResource["mutations"]>[M]>;
|
|
171
|
+
} & {
|
|
172
|
+
useForm<TValues, TResult = unknown, TRecord = ResourceDetailData<TResource>>(config: ResourceFormConfig<TValues, TRecord, TResult>): ResourceFormResult<TValues, TRecord, TResult>;
|
|
173
|
+
useSelect<TItem>(config: ResourceSelectConfig<TItem>): ResourceSelectResult<TItem>;
|
|
174
|
+
};
|
|
175
|
+
/** The generated resource handles, keyed by resource name. */
|
|
176
|
+
type Resource<TResources extends ResourcesDeclaration> = {
|
|
177
|
+
[R in keyof TResources]: ResourceHandle<TResources[R]>;
|
|
178
|
+
};
|
|
179
|
+
interface CreateResourceConfig<TResources extends ResourcesDeclaration> {
|
|
180
|
+
/** Plugin name used to resolve plugin-specific request headers. */
|
|
181
|
+
plugin: string;
|
|
182
|
+
resources: TResources;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Generates the full hook surface for a plugin's resources.
|
|
186
|
+
*
|
|
187
|
+
* Hooks resolve API and router wiring from `StackProvider`, plus any
|
|
188
|
+
* plugin-specific request headers, at render time so the declaration can
|
|
189
|
+
* live at module scope.
|
|
190
|
+
*/
|
|
191
|
+
declare function createResource<const TResources extends ResourcesDeclaration>(config: CreateResourceConfig<TResources>): Resource<TResources>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Plugin-specific request options consumed by the resource layer.
|
|
195
|
+
*/
|
|
196
|
+
interface ResourceOverrides {
|
|
197
|
+
headers?: HeadersInit;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** Returns `value` debounced by `delay` milliseconds (default 500). */
|
|
201
|
+
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
202
|
+
|
|
203
|
+
export { createResource, createUseForm, createUseSelect, useDebounce };
|
|
204
|
+
export type { CreateResourceConfig, Resource, ResourceDetailData, ResourceFormConfig, ResourceFormResult, ResourceHandle, ResourceInfiniteQueryHooks, ResourceMutationHooks, ResourceOverrides, ResourcePlainQueryHooks, ResourceQueryHooks, ResourceQueryOptions, ResourceSelectConfig, ResourceSelectOption, ResourceSelectResult };
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { UseInfiniteQueryResult, InfiniteData, UseSuspenseInfiniteQueryResult, UseQueryResult, UseSuspenseQueryResult, UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import { a as StackError, f as ResourceDef, p as ResourcesDeclaration, k as ResourceQueryArgs, l as ResourceQueryData, h as ResourceMutationResult, j as ResourceMutationVars } from '../../../shared/stack.CbZenbej.js';
|
|
3
|
+
|
|
4
|
+
/** Configuration for the per-resource `useForm` hook. */
|
|
5
|
+
interface ResourceFormConfig<TValues, TRecord = unknown, TResult = unknown> {
|
|
6
|
+
action: "create" | "edit";
|
|
7
|
+
/** Detail-query arg identifying the record to edit (e.g. a slug or id) */
|
|
8
|
+
id?: unknown;
|
|
9
|
+
/** Query used to fetch the record for edit (default `"detail"`) */
|
|
10
|
+
detailQuery?: string;
|
|
11
|
+
/** Mutation used on create submit (default `"create"`) */
|
|
12
|
+
createMutation?: string;
|
|
13
|
+
/** Mutation used on edit submit (default `"update"`) */
|
|
14
|
+
updateMutation?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Externally supplied record — skips the internal detail fetch. Useful
|
|
17
|
+
* when the record comes from a suspense hook higher in the tree.
|
|
18
|
+
*/
|
|
19
|
+
record?: TRecord | null;
|
|
20
|
+
/** Default form values, or a function deriving them from the record */
|
|
21
|
+
defaults?: TValues | ((record: TRecord | null) => TValues);
|
|
22
|
+
/** Maps form values to create-mutation variables (default: identity) */
|
|
23
|
+
toCreateVars?: (values: TValues) => unknown;
|
|
24
|
+
/** Maps form values to update-mutation variables (default: identity) */
|
|
25
|
+
toUpdateVars?: (values: TValues, record: TRecord | null) => unknown;
|
|
26
|
+
/** Success notification, sent through the `notify` provider */
|
|
27
|
+
successMessage?: string | ((result: TResult, action: "create" | "edit") => string);
|
|
28
|
+
/**
|
|
29
|
+
* Error notification for non-field errors. Field-level validation errors
|
|
30
|
+
* land on `fieldErrors` instead of producing a notification.
|
|
31
|
+
*/
|
|
32
|
+
errorMessage?: string | ((error: StackError) => string);
|
|
33
|
+
/**
|
|
34
|
+
* Path to navigate to after success (via the router adapter's
|
|
35
|
+
* `navigate`). A function form derives it from the result; return a
|
|
36
|
+
* falsy value to skip navigation.
|
|
37
|
+
*/
|
|
38
|
+
redirect?: string | ((result: TResult, action: "create" | "edit") => string | false | null | undefined);
|
|
39
|
+
/** Called after a successful submit (before redirect) */
|
|
40
|
+
onSuccess?: (result: TResult) => void | Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
/** Result of the per-resource `useForm` hook. */
|
|
43
|
+
interface ResourceFormResult<TValues, TRecord = unknown, TResult = unknown> {
|
|
44
|
+
action: "create" | "edit";
|
|
45
|
+
/** The record being edited (null while loading or when creating) */
|
|
46
|
+
record: TRecord | null;
|
|
47
|
+
isLoadingRecord: boolean;
|
|
48
|
+
recordError: Error | null;
|
|
49
|
+
/** Resolved default values (stable while `record` is unchanged) */
|
|
50
|
+
defaultValues: TValues | undefined;
|
|
51
|
+
/** Runs the right mutation; resolves the result, or undefined on error */
|
|
52
|
+
submit: (values: TValues) => Promise<TResult | undefined>;
|
|
53
|
+
isSubmitting: boolean;
|
|
54
|
+
/** Last submit error (normalized), or null */
|
|
55
|
+
error: StackError | null;
|
|
56
|
+
/** Field name → validation message(s) from the last submit error */
|
|
57
|
+
fieldErrors: Record<string, string | string[]>;
|
|
58
|
+
clearErrors: () => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Builds the per-resource `useForm` hook: bundles the create/edit lifecycle —
|
|
62
|
+
* fetch record for edit, defaults, submit the right mutation, invalidate,
|
|
63
|
+
* notify, redirect, and per-field error state from `StackError.errors`.
|
|
64
|
+
*/
|
|
65
|
+
declare function createUseForm(plugin: string, resourceName: string, resource: ResourceDef): <TValues, TRecord = unknown, TResult = unknown>(config: ResourceFormConfig<TValues, TRecord, TResult>) => ResourceFormResult<TValues, TRecord, TResult>;
|
|
66
|
+
|
|
67
|
+
/** An option produced by the per-resource `useSelect` hook. */
|
|
68
|
+
interface ResourceSelectOption<TItem> {
|
|
69
|
+
value: string;
|
|
70
|
+
label: string;
|
|
71
|
+
/** The underlying record; undefined for values that could not be resolved */
|
|
72
|
+
item?: TItem;
|
|
73
|
+
}
|
|
74
|
+
/** Configuration for the per-resource `useSelect` hook. */
|
|
75
|
+
interface ResourceSelectConfig<TItem> {
|
|
76
|
+
/**
|
|
77
|
+
* Query used to fetch options (default `"list"`). Must be a non-infinite
|
|
78
|
+
* query whose data is an array of records.
|
|
79
|
+
*/
|
|
80
|
+
query?: string;
|
|
81
|
+
/** Maps the (debounced) search text to the option-query args */
|
|
82
|
+
searchArgs: (search: string) => readonly unknown[];
|
|
83
|
+
getOptionValue: (item: TItem) => string;
|
|
84
|
+
getOptionLabel: (item: TItem) => string;
|
|
85
|
+
/** Currently selected value(s) — preloaded when missing from options */
|
|
86
|
+
value?: string | string[];
|
|
87
|
+
/**
|
|
88
|
+
* Query used to preload selected values missing from the options
|
|
89
|
+
* (default query `"detail"`). Preloading is skipped when omitted.
|
|
90
|
+
*/
|
|
91
|
+
preload?: {
|
|
92
|
+
query?: string;
|
|
93
|
+
args: (value: string) => readonly unknown[];
|
|
94
|
+
};
|
|
95
|
+
/** Debounce for the search text in milliseconds (default 300) */
|
|
96
|
+
debounceMs?: number;
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/** Result of the per-resource `useSelect` hook. */
|
|
100
|
+
interface ResourceSelectResult<TItem> {
|
|
101
|
+
/** Search results plus preloaded selected records */
|
|
102
|
+
options: ResourceSelectOption<TItem>[];
|
|
103
|
+
/** Options for the current `value(s)`, resolved where possible */
|
|
104
|
+
selectedOptions: ResourceSelectOption<TItem>[];
|
|
105
|
+
search: string;
|
|
106
|
+
setSearch: (search: string) => void;
|
|
107
|
+
/** Initial load of options or preloaded values in flight */
|
|
108
|
+
isLoading: boolean;
|
|
109
|
+
/** Search debounce pending or a search fetch in flight */
|
|
110
|
+
isSearching: boolean;
|
|
111
|
+
error: Error | null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Builds the per-resource `useSelect` hook: debounced server-side search,
|
|
115
|
+
* current-value preloading, and loading states for relation pickers.
|
|
116
|
+
*/
|
|
117
|
+
declare function createUseSelect(plugin: string, resourceName: string, resource: ResourceDef): <TItem>(config: ResourceSelectConfig<TItem>) => ResourceSelectResult<TItem>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* `createResource` — generates the repetitive React Query plumbing for a
|
|
121
|
+
* plugin's resources from a single declaration: plain queries, suspense
|
|
122
|
+
* queries, infinite queries, mutations with invalidation, plus `useForm`
|
|
123
|
+
* and `useSelect` per resource.
|
|
124
|
+
*
|
|
125
|
+
* The same declaration feeds `createResourceQueryKeys` (see `./queries`),
|
|
126
|
+
* so SSR loaders and SSG `prefetchForRoute` keys stay in sync with hooks.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```ts
|
|
130
|
+
* const blog = createResource({ plugin: "blog", resources: blogResources });
|
|
131
|
+
*
|
|
132
|
+
* export const usePost = (slug?: string) =>
|
|
133
|
+
* blog.posts.detail.use([slug ?? ""], { enabled: !!slug });
|
|
134
|
+
* export const useCreatePost = () => blog.posts.create.use();
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
/** Per-call options for generated query hooks. */
|
|
139
|
+
interface ResourceQueryOptions {
|
|
140
|
+
enabled?: boolean;
|
|
141
|
+
}
|
|
142
|
+
/** Hooks generated for a non-infinite query declaration. */
|
|
143
|
+
interface ResourcePlainQueryHooks<TArgs extends readonly unknown[], TData> {
|
|
144
|
+
use(args?: TArgs, options?: ResourceQueryOptions): UseQueryResult<TData, Error>;
|
|
145
|
+
/** Suspense variant — re-throws refetch errors for Error Boundaries */
|
|
146
|
+
useSuspense(args?: TArgs): UseSuspenseQueryResult<TData, Error>;
|
|
147
|
+
}
|
|
148
|
+
/** Hooks generated for an infinite query declaration. */
|
|
149
|
+
interface ResourceInfiniteQueryHooks<TArgs extends readonly unknown[], TData> {
|
|
150
|
+
useInfinite(args?: TArgs, options?: ResourceQueryOptions): UseInfiniteQueryResult<InfiniteData<TData, number>, Error>;
|
|
151
|
+
/** Suspense variant — re-throws refetch errors for Error Boundaries */
|
|
152
|
+
useSuspenseInfinite(args?: TArgs): UseSuspenseInfiniteQueryResult<InfiniteData<TData, number>, Error>;
|
|
153
|
+
}
|
|
154
|
+
/** Dispatches to the plain or infinite hook set based on the declaration. */
|
|
155
|
+
type ResourceQueryHooks<TDef> = TDef extends {
|
|
156
|
+
infinite: true;
|
|
157
|
+
} ? ResourceInfiniteQueryHooks<ResourceQueryArgs<TDef>, ResourceQueryData<TDef>> : ResourcePlainQueryHooks<ResourceQueryArgs<TDef>, ResourceQueryData<TDef>>;
|
|
158
|
+
/** Hook generated for a mutation declaration. */
|
|
159
|
+
interface ResourceMutationHooks<TDef> {
|
|
160
|
+
use(): UseMutationResult<ResourceMutationResult<TDef>, Error, ResourceMutationVars<TDef>>;
|
|
161
|
+
}
|
|
162
|
+
/** The detail-query record type of a resource (used by `useForm` defaults). */
|
|
163
|
+
type ResourceDetailData<TResource extends ResourceDef> = TResource["queries"] extends {
|
|
164
|
+
detail: infer TDetail;
|
|
165
|
+
} ? ResourceQueryData<TDetail> : unknown;
|
|
166
|
+
/** The generated handle for a single resource. */
|
|
167
|
+
type ResourceHandle<TResource extends ResourceDef> = {
|
|
168
|
+
[Q in keyof TResource["queries"]]: ResourceQueryHooks<TResource["queries"][Q]>;
|
|
169
|
+
} & {
|
|
170
|
+
[M in keyof NonNullable<TResource["mutations"]>]: ResourceMutationHooks<NonNullable<TResource["mutations"]>[M]>;
|
|
171
|
+
} & {
|
|
172
|
+
useForm<TValues, TResult = unknown, TRecord = ResourceDetailData<TResource>>(config: ResourceFormConfig<TValues, TRecord, TResult>): ResourceFormResult<TValues, TRecord, TResult>;
|
|
173
|
+
useSelect<TItem>(config: ResourceSelectConfig<TItem>): ResourceSelectResult<TItem>;
|
|
174
|
+
};
|
|
175
|
+
/** The generated resource handles, keyed by resource name. */
|
|
176
|
+
type Resource<TResources extends ResourcesDeclaration> = {
|
|
177
|
+
[R in keyof TResources]: ResourceHandle<TResources[R]>;
|
|
178
|
+
};
|
|
179
|
+
interface CreateResourceConfig<TResources extends ResourcesDeclaration> {
|
|
180
|
+
/** Plugin name used to resolve plugin-specific request headers. */
|
|
181
|
+
plugin: string;
|
|
182
|
+
resources: TResources;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Generates the full hook surface for a plugin's resources.
|
|
186
|
+
*
|
|
187
|
+
* Hooks resolve API and router wiring from `StackProvider`, plus any
|
|
188
|
+
* plugin-specific request headers, at render time so the declaration can
|
|
189
|
+
* live at module scope.
|
|
190
|
+
*/
|
|
191
|
+
declare function createResource<const TResources extends ResourcesDeclaration>(config: CreateResourceConfig<TResources>): Resource<TResources>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Plugin-specific request options consumed by the resource layer.
|
|
195
|
+
*/
|
|
196
|
+
interface ResourceOverrides {
|
|
197
|
+
headers?: HeadersInit;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** Returns `value` debounced by `delay` milliseconds (default 500). */
|
|
201
|
+
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
202
|
+
|
|
203
|
+
export { createResource, createUseForm, createUseSelect, useDebounce };
|
|
204
|
+
export type { CreateResourceConfig, Resource, ResourceDetailData, ResourceFormConfig, ResourceFormResult, ResourceHandle, ResourceInfiniteQueryHooks, ResourceMutationHooks, ResourceOverrides, ResourcePlainQueryHooks, ResourceQueryHooks, ResourceQueryOptions, ResourceSelectConfig, ResourceSelectOption, ResourceSelectResult };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createResource } from '../../../packages/stack/src/plugins/client/resource/hooks.mjs';
|
|
2
|
+
export { createUseForm } from '../../../packages/stack/src/plugins/client/resource/use-form.mjs';
|
|
3
|
+
export { createUseSelect } from '../../../packages/stack/src/plugins/client/resource/use-select.mjs';
|
|
4
|
+
export { useDebounce } from '../../../packages/stack/src/plugins/client/resource/use-debounce.mjs';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const utils = require('../../packages/stack/src/plugins/utils.cjs');
|
|
4
|
+
const errors = require('../../packages/stack/src/plugins/client/resource/errors.cjs');
|
|
5
|
+
const queries = require('../../packages/stack/src/plugins/client/resource/queries.cjs');
|
|
4
6
|
const yar = require('@btst/yar');
|
|
5
7
|
const client = require('better-call/client');
|
|
6
8
|
|
|
@@ -12,8 +14,17 @@ exports.SSR_LOADER_ERROR_MESSAGE = utils.SSR_LOADER_ERROR_MESSAGE;
|
|
|
12
14
|
exports.createApiClient = utils.createApiClient;
|
|
13
15
|
exports.createSanitizedSSRLoaderError = utils.createSanitizedSSRLoaderError;
|
|
14
16
|
exports.isConnectionError = utils.isConnectionError;
|
|
15
|
-
exports.
|
|
17
|
+
exports.SHARED_QUERY_CONFIG = errors.SHARED_QUERY_CONFIG;
|
|
18
|
+
exports.isErrorResponse = errors.isErrorResponse;
|
|
19
|
+
exports.toError = errors.toError;
|
|
20
|
+
exports.buildQueryKey = queries.buildQueryKey;
|
|
21
|
+
exports.createResourceQueryKeys = queries.createResourceQueryKeys;
|
|
22
|
+
exports.resolvePageSize = queries.resolvePageSize;
|
|
23
|
+
exports.runResourceMutation = queries.runResourceMutation;
|
|
24
|
+
exports.runResourceQuery = queries.runResourceQuery;
|
|
16
25
|
exports.createRoute = yar.createRoute;
|
|
17
26
|
exports.createRouter = yar.createRouter;
|
|
27
|
+
exports.defineRoute = yar.defineRoute;
|
|
28
|
+
exports.defineRoutes = yar.defineRoutes;
|
|
18
29
|
exports.createClient = client.createClient;
|
|
19
30
|
exports.defineClientPlugin = defineClientPlugin;
|