@btst/stack 2.12.2 → 3.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -2
- 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 +91 -0
- package/dist/next/index.d.mts +91 -0
- package/dist/next/index.d.ts +91 -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 +50 -0
- package/dist/packages/stack/src/next/page.mjs +48 -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 +57 -0
- package/dist/packages/stack/src/react-router/page.mjs +55 -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 +51 -0
- package/dist/packages/stack/src/tanstack/page.mjs +49 -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 +5 -24
- package/dist/plugins/comments/client/components/index.d.mts +5 -24
- package/dist/plugins/comments/client/components/index.d.ts +5 -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 +122 -0
- package/dist/react-router/index.d.mts +122 -0
- package/dist/react-router/index.d.ts +122 -0
- package/dist/react-router/index.mjs +3 -0
- package/dist/shared/{stack.Dfc44JiE.d.mts → stack.3di7vQs6.d.mts} +37 -12
- package/dist/shared/{stack.BmMB0LNC.d.ts → stack.7b3vsM8_.d.ts} +1 -1
- package/dist/shared/{stack.DiodAFAa.d.mts → stack.80-y2TTR.d.mts} +358 -82
- 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.B-hEIoUw.d.ts +406 -0
- 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.ufcExQIR.d.ts → stack.Bk5UB_BT.d.ts} +358 -82
- package/dist/shared/{stack.CQnwAN7x.d.mts → stack.BqTR6qi2.d.ts} +10 -0
- package/dist/shared/stack.BvxHSZYT.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.BnSAhKJi.d.ts → stack.CRelKJfH.d.ts} +37 -12
- 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.zpwVhSJb.d.mts → stack.DQq8DEIv.d.mts} +83 -8
- 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.DrUBX-QE.d.cts +34 -0
- package/dist/shared/stack.DrUBX-QE.d.mts +34 -0
- package/dist/shared/stack.DrUBX-QE.d.ts +34 -0
- package/dist/shared/{stack.BFoBvGML.d.mts → stack.DycBcTeg.d.mts} +1 -1
- package/dist/shared/{stack.CLWhMntf.d.cts → stack.H5B8miAV.d.cts} +358 -82
- package/dist/shared/{stack.DNLuzDb3.d.cts → stack.INBa9-TO.d.cts} +37 -12
- 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.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.f8Vke-eH.d.mts +406 -0
- package/dist/shared/{stack.Bq3kiUaM.d.ts → stack.oBokjN_J.d.mts} +84 -3
- package/dist/tanstack/index.cjs +11 -0
- package/dist/tanstack/index.d.cts +110 -0
- package/dist/tanstack/index.d.mts +110 -0
- package/dist/tanstack/index.d.ts +110 -0
- package/dist/tanstack/index.mjs +3 -0
- package/package.json +98 -4
- 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 +300 -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__/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 +11 -0
- package/src/next/page.tsx +106 -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 +605 -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 +112 -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 +11 -0
- package/src/react-router/page.tsx +139 -0
- package/src/react-router/router.tsx +63 -0
- package/src/shared/auth-types.ts +98 -0
- package/src/shared/entry-factories.ts +55 -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 +10 -0
- package/src/tanstack/page.tsx +96 -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.CuhcFsAx.d.cts → stack.B0muOwUF.d.cts} +9 -9
- package/dist/shared/{stack.CuhcFsAx.d.mts → stack.B0muOwUF.d.mts} +9 -9
- package/dist/shared/{stack.CuhcFsAx.d.ts → stack.B0muOwUF.d.ts} +9 -9
- package/dist/shared/{stack.D4Cea8II.d.ts → stack.CMbX8Q5C.d.ts} +13 -13
- package/dist/shared/{stack.HE_IvqV5.d.mts → stack.Dj04W2c3.d.mts} +13 -13
- package/dist/shared/{stack.Rtcvl8sS.d.cts → stack.eq5eg1yt.d.cts} +13 -13
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
2
|
-
import { S as SerializedPost, a as SerializedTag } from './stack.Dsatjh0B.js';
|
|
3
2
|
import { z } from 'zod';
|
|
4
|
-
import {
|
|
3
|
+
import { ResourceFormConfig, ResourceFormResult } from '@btst/stack/plugins/client/hooks';
|
|
4
|
+
import { S as SerializedPost, a as SerializedTag } from './stack.Dsatjh0B.js';
|
|
5
|
+
import { c as createPostSchema, u as updatePostSchema } from './stack.B0muOwUF.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Options for the usePosts hook
|
|
@@ -127,8 +128,18 @@ declare function useSuspenseTags(): {
|
|
|
127
128
|
tags: SerializedTag[];
|
|
128
129
|
refetch: () => Promise<unknown>;
|
|
129
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* Form lifecycle hook for creating/editing posts, built on the core
|
|
133
|
+
* resource `useForm`: submits the right mutation, awaits invalidation,
|
|
134
|
+
* notifies, redirects, and maps server validation issues to `fieldErrors`.
|
|
135
|
+
*/
|
|
136
|
+
declare function usePostForm<TValues>(config: ResourceFormConfig<TValues, SerializedPost | null, SerializedPost | null>): ResourceFormResult<TValues, SerializedPost | null, SerializedPost | null>;
|
|
130
137
|
/** Create a new post */
|
|
131
138
|
declare function useCreatePost(): _tanstack_react_query.UseMutationResult<SerializedPost | null, Error, {
|
|
139
|
+
title: string;
|
|
140
|
+
content: string;
|
|
141
|
+
excerpt: string;
|
|
142
|
+
published: boolean;
|
|
132
143
|
tags: ({
|
|
133
144
|
name: string;
|
|
134
145
|
} | {
|
|
@@ -136,27 +147,41 @@ declare function useCreatePost(): _tanstack_react_query.UseMutationResult<Serial
|
|
|
136
147
|
name: string;
|
|
137
148
|
slug: string;
|
|
138
149
|
})[];
|
|
139
|
-
published: boolean;
|
|
140
|
-
title: string;
|
|
141
|
-
content: string;
|
|
142
|
-
excerpt: string;
|
|
143
150
|
slug?: string | undefined;
|
|
144
151
|
publishedAt?: Date | undefined;
|
|
145
152
|
createdAt?: Date | undefined;
|
|
146
153
|
updatedAt?: Date | undefined;
|
|
147
154
|
image?: string | undefined;
|
|
148
|
-
}
|
|
155
|
+
}>;
|
|
149
156
|
/** Update an existing post by id */
|
|
150
157
|
declare function useUpdatePost(): _tanstack_react_query.UseMutationResult<SerializedPost | null, Error, {
|
|
151
158
|
id: string;
|
|
152
|
-
data:
|
|
153
|
-
|
|
159
|
+
data: {
|
|
160
|
+
title: string;
|
|
161
|
+
content: string;
|
|
162
|
+
excerpt: string;
|
|
163
|
+
published: boolean;
|
|
164
|
+
slug: string;
|
|
165
|
+
tags: ({
|
|
166
|
+
name: string;
|
|
167
|
+
} | {
|
|
168
|
+
id: string;
|
|
169
|
+
name: string;
|
|
170
|
+
slug: string;
|
|
171
|
+
})[];
|
|
172
|
+
id: string;
|
|
173
|
+
publishedAt?: Date | undefined;
|
|
174
|
+
createdAt?: Date | undefined;
|
|
175
|
+
updatedAt?: Date | undefined;
|
|
176
|
+
image?: string | undefined;
|
|
177
|
+
};
|
|
178
|
+
}>;
|
|
154
179
|
/** Delete a post by id */
|
|
155
180
|
declare function useDeletePost(): _tanstack_react_query.UseMutationResult<{
|
|
156
181
|
success: boolean;
|
|
157
182
|
}, Error, {
|
|
158
183
|
id: string;
|
|
159
|
-
}
|
|
184
|
+
}>;
|
|
160
185
|
/**
|
|
161
186
|
* Hook for searching posts by a free-text query. Uses `usePosts` under the hood.
|
|
162
187
|
* Debounces the query and preserves last successful results to avoid flicker.
|
|
@@ -219,5 +244,5 @@ interface UseRecentPostsResult {
|
|
|
219
244
|
*/
|
|
220
245
|
declare function useRecentPosts(options?: UseRecentPostsOptions): UseRecentPostsResult;
|
|
221
246
|
|
|
222
|
-
export { useSuspensePosts as f, usePost as g, useSuspensePost as h, useTags as i, useSuspenseTags as j,
|
|
223
|
-
export type { PostCreateInput as P, UsePostsOptions as U, UsePostsResult as a, UsePostSearchOptions as b, UsePostSearchResult as c, UsePostResult as d, PostUpdateInput as e, UseNextPreviousPostsOptions as
|
|
247
|
+
export { useSuspensePosts as f, usePost as g, useSuspensePost as h, useTags as i, useSuspenseTags as j, usePostForm as k, useCreatePost as l, useUpdatePost as m, useDeletePost as n, usePostSearch as o, useNextPreviousPosts as r, usePosts as u, useRecentPosts as v };
|
|
248
|
+
export type { PostCreateInput as P, UsePostsOptions as U, UsePostsResult as a, UsePostSearchOptions as b, UsePostSearchResult as c, UsePostResult as d, PostUpdateInput as e, UseNextPreviousPostsOptions as p, UseNextPreviousPostsResult as q, UseRecentPostsOptions as s, UseRecentPostsResult as t };
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared error contract and React Query config for all data plugins.
|
|
3
|
+
*
|
|
4
|
+
* Every plugin used to copy-paste `isErrorResponse` / `toError` /
|
|
5
|
+
* `SHARED_QUERY_CONFIG` into its own `query-keys.ts` / hooks files. These now
|
|
6
|
+
* live in core and are exported once from `@btst/stack/plugins/client`.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Standardized error shape thrown by resource queries and mutations.
|
|
10
|
+
*
|
|
11
|
+
* `errors` maps field names to validation message(s), preserving Zod
|
|
12
|
+
* field-level issues from better-call endpoint validation errors so form
|
|
13
|
+
* hooks can map them onto per-field error state.
|
|
14
|
+
*/
|
|
15
|
+
interface StackError extends Error {
|
|
16
|
+
statusCode?: number;
|
|
17
|
+
errors?: Record<string, string | string[]>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Shared React Query configuration for all plugin queries.
|
|
21
|
+
* Prevents automatic refetching to avoid hydration mismatches in SSR.
|
|
22
|
+
*/
|
|
23
|
+
declare const SHARED_QUERY_CONFIG: {
|
|
24
|
+
readonly retry: false;
|
|
25
|
+
readonly refetchOnWindowFocus: false;
|
|
26
|
+
readonly refetchOnMount: false;
|
|
27
|
+
readonly refetchOnReconnect: false;
|
|
28
|
+
readonly staleTime: number;
|
|
29
|
+
readonly gcTime: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Type guard for better-call error responses.
|
|
33
|
+
* better-call client returns `Error$1<unknown> | Data<T>` — we check if
|
|
34
|
+
* `error` exists and is not null/undefined to determine it's an error response.
|
|
35
|
+
*/
|
|
36
|
+
declare function isErrorResponse(response: unknown): response is {
|
|
37
|
+
error: unknown;
|
|
38
|
+
data?: never;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Converts an unknown error (typically a better-call / better-fetch error
|
|
42
|
+
* response body) into a proper `StackError` with a meaningful message.
|
|
43
|
+
*
|
|
44
|
+
* Normalizes to `{ message, statusCode?, errors? }` where `errors` maps
|
|
45
|
+
* field names to validation messages (preserved from Zod issues in
|
|
46
|
+
* better-call endpoint validation error responses).
|
|
47
|
+
*/
|
|
48
|
+
declare function toError(error: unknown): StackError;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Server-safe resource declaration types and query-key/queryFn builder.
|
|
52
|
+
*
|
|
53
|
+
* A plugin declares its resources once (paths, query mappings, unwrapping,
|
|
54
|
+
* key discriminators) and gets:
|
|
55
|
+
*
|
|
56
|
+
* - `createResourceQueryKeys(client, resources, headers?)` — a query-key
|
|
57
|
+
* factory usable from SSR loaders and `query-keys.ts` (no React), with the
|
|
58
|
+
* same `_def` / `queryKey` shapes as `@lukemorales/query-key-factory`, so
|
|
59
|
+
* existing SSG `prefetchForRoute` / `query-key-defs.ts` keys keep matching.
|
|
60
|
+
* - `createResource(...)` (see `./hooks`) — generated React Query hooks.
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* Minimal better-call client shape the resource layer needs.
|
|
64
|
+
* Any `createApiClient<TRouter>()` result is assignable.
|
|
65
|
+
*/
|
|
66
|
+
type ResourceClient = (path: any, options?: any) => Promise<unknown>;
|
|
67
|
+
/**
|
|
68
|
+
* Declaration for a single query on a resource.
|
|
69
|
+
*
|
|
70
|
+
* Query-key shape: `[resourceName, queryName, ...key(...args)]` where `key`
|
|
71
|
+
* defaults to the args themselves. Share discriminator functions with
|
|
72
|
+
* `api/query-key-defs.ts` to keep SSG prefetch keys in sync.
|
|
73
|
+
*/
|
|
74
|
+
interface ResourceQueryDef<TArgs extends readonly unknown[] = readonly any[], TData = unknown> {
|
|
75
|
+
/** better-call endpoint path, e.g. `"/posts"` or `"/content/:typeSlug"` */
|
|
76
|
+
path: string;
|
|
77
|
+
/** Maps hook args to the endpoint path params (for `:param` segments) */
|
|
78
|
+
params?: (...args: TArgs) => Record<string, string>;
|
|
79
|
+
/** Maps hook args to the HTTP query object */
|
|
80
|
+
query?: (...args: TArgs) => Record<string, unknown> | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Maps hook args to the queryKey discriminator cells appended after
|
|
83
|
+
* `[resourceName, queryName]`. Defaults to the args themselves.
|
|
84
|
+
*/
|
|
85
|
+
key?: (...args: TArgs) => readonly unknown[];
|
|
86
|
+
/** Unwraps/selects data from the raw response data */
|
|
87
|
+
select?: (data: any, ...args: TArgs) => TData;
|
|
88
|
+
/**
|
|
89
|
+
* Offset-paginated infinite query. The queryFn receives `pageParam` and
|
|
90
|
+
* injects it into the HTTP query as `offsetParam`. `select` must return
|
|
91
|
+
* an array (one page of items).
|
|
92
|
+
*/
|
|
93
|
+
infinite?: boolean;
|
|
94
|
+
/** HTTP query param carrying the page offset (default `"offset"`) */
|
|
95
|
+
offsetParam?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Page size used to derive `getNextPageParam` for infinite queries
|
|
98
|
+
* (default 10). A function form derives it from the hook args.
|
|
99
|
+
*/
|
|
100
|
+
pageSize?: number | ((...args: TArgs) => number);
|
|
101
|
+
/**
|
|
102
|
+
* Custom `getNextPageParam` for infinite queries whose pages are not
|
|
103
|
+
* plain item arrays (e.g. `{ items, total }` envelopes). Overrides the
|
|
104
|
+
* default page-size heuristic. Return `undefined` when there is no
|
|
105
|
+
* next page.
|
|
106
|
+
*/
|
|
107
|
+
nextPageParam?: (lastPage: TData, allPages: TData[], ...args: TArgs) => unknown | undefined;
|
|
108
|
+
/** When true, skip fetching and resolve `null` (e.g. missing id) */
|
|
109
|
+
skip?: (...args: TArgs) => boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Declaration for a single mutation on a resource.
|
|
113
|
+
*/
|
|
114
|
+
interface ResourceMutationDef<TVars = any, TResult = unknown> {
|
|
115
|
+
/** better-call endpoint path, e.g. `"@post/posts"` or `"@put/posts/:id"` */
|
|
116
|
+
path: string;
|
|
117
|
+
method: "POST" | "PUT" | "PATCH" | "DELETE";
|
|
118
|
+
/**
|
|
119
|
+
* Maps mutation variables to better-call call options.
|
|
120
|
+
* Defaults to `{ body: vars }`.
|
|
121
|
+
*/
|
|
122
|
+
input?: (vars: TVars) => {
|
|
123
|
+
body?: unknown;
|
|
124
|
+
params?: Record<string, string>;
|
|
125
|
+
query?: Record<string, unknown>;
|
|
126
|
+
};
|
|
127
|
+
/** Unwraps the mutation result from the raw response data */
|
|
128
|
+
select?: (data: any) => TResult;
|
|
129
|
+
/**
|
|
130
|
+
* Query-key prefixes invalidated (awaited, in order) after success.
|
|
131
|
+
* `"posts"` invalidates the whole resource, `"posts.list"` one query.
|
|
132
|
+
*/
|
|
133
|
+
invalidates?: readonly string[];
|
|
134
|
+
/**
|
|
135
|
+
* Which matching queries to refetch during invalidation. Defaults to
|
|
136
|
+
* React Query's `"active"`; use `"all"` when an inactive view must be
|
|
137
|
+
* refreshed before it remounts.
|
|
138
|
+
*/
|
|
139
|
+
refetchType?: "active" | "inactive" | "all" | "none";
|
|
140
|
+
/**
|
|
141
|
+
* Seed a query cache entry from the mutation result (e.g. the detail
|
|
142
|
+
* entry for a created/updated record). `args` returns the key args for
|
|
143
|
+
* the target query, or `null` to skip seeding.
|
|
144
|
+
*/
|
|
145
|
+
setData?: {
|
|
146
|
+
/** Target query name on the same resource (default `"detail"`) */
|
|
147
|
+
query?: string;
|
|
148
|
+
args: (result: TResult) => readonly unknown[] | null;
|
|
149
|
+
/**
|
|
150
|
+
* Optionally merge the mutation result with the existing cache value.
|
|
151
|
+
* Defaults to replacing the cached value with `result`.
|
|
152
|
+
*/
|
|
153
|
+
updater?: (previous: unknown, result: TResult) => unknown;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Remove a query cache entry after success (e.g. the deleted record's
|
|
157
|
+
* detail query). `args` may derive the target key from both the result and
|
|
158
|
+
* the submitted variables, or return `null` to skip removal.
|
|
159
|
+
*/
|
|
160
|
+
removeData?: {
|
|
161
|
+
/** Target query name on the same resource (default `"detail"`) */
|
|
162
|
+
query?: string;
|
|
163
|
+
args: (result: TResult, variables: TVars) => readonly unknown[] | null;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Whether to call the router `refresh` override after success (default
|
|
167
|
+
* `true`). Set `false` for mutations that must not reload server-rendered
|
|
168
|
+
* state — e.g. public submissions whose success UI lives in client state.
|
|
169
|
+
*/
|
|
170
|
+
refresh?: boolean;
|
|
171
|
+
}
|
|
172
|
+
/** Declaration for one resource: its queries and (optionally) mutations. */
|
|
173
|
+
interface ResourceDef {
|
|
174
|
+
queries: Record<string, ResourceQueryDef<any, any>>;
|
|
175
|
+
mutations?: Record<string, ResourceMutationDef<any, any>>;
|
|
176
|
+
}
|
|
177
|
+
/** A plugin's full resource declaration, keyed by resource name. */
|
|
178
|
+
type ResourcesDeclaration = Record<string, ResourceDef>;
|
|
179
|
+
/** Extracts the hook args tuple from a query declaration. */
|
|
180
|
+
type ResourceQueryArgs<TDef> = TDef extends {
|
|
181
|
+
query: (...args: infer A) => any;
|
|
182
|
+
} ? A : TDef extends {
|
|
183
|
+
params: (...args: infer A) => any;
|
|
184
|
+
} ? A : TDef extends {
|
|
185
|
+
key: (...args: infer A) => any;
|
|
186
|
+
} ? A : TDef extends {
|
|
187
|
+
select: (data: any, ...args: infer A) => any;
|
|
188
|
+
} ? A : [];
|
|
189
|
+
/** Extracts the (per-page, for infinite queries) data type from a query declaration. */
|
|
190
|
+
type ResourceQueryData<TDef> = TDef extends {
|
|
191
|
+
select: (data: any, ...args: any[]) => infer D;
|
|
192
|
+
} ? D : unknown;
|
|
193
|
+
/** Extracts the variables type from a mutation declaration. */
|
|
194
|
+
type ResourceMutationVars<TDef> = TDef extends {
|
|
195
|
+
input: (vars: infer V) => any;
|
|
196
|
+
} ? V : unknown;
|
|
197
|
+
/** Extracts the result type from a mutation declaration. */
|
|
198
|
+
type ResourceMutationResult<TDef> = TDef extends {
|
|
199
|
+
select: (data: any) => infer R;
|
|
200
|
+
} ? R : unknown;
|
|
201
|
+
/**
|
|
202
|
+
* A query-key factory entry: call with args to get `{ queryKey, queryFn }`,
|
|
203
|
+
* read `_def` for the `[resourceName, queryName]` prefix.
|
|
204
|
+
*/
|
|
205
|
+
interface ResourceQueryEntry<TArgs extends readonly unknown[] = readonly any[], TData = unknown> {
|
|
206
|
+
(...args: TArgs): {
|
|
207
|
+
queryKey: readonly unknown[];
|
|
208
|
+
queryFn: (context?: {
|
|
209
|
+
pageParam?: unknown;
|
|
210
|
+
}) => Promise<TData>;
|
|
211
|
+
};
|
|
212
|
+
_def: readonly [string, string];
|
|
213
|
+
}
|
|
214
|
+
/** The query-key factory produced from a resources declaration. */
|
|
215
|
+
type ResourceQueryKeys<TResources extends ResourcesDeclaration> = {
|
|
216
|
+
[R in keyof TResources]: {
|
|
217
|
+
[Q in keyof TResources[R]["queries"]]: ResourceQueryEntry<ResourceQueryArgs<TResources[R]["queries"][Q]>, ResourceQueryData<TResources[R]["queries"][Q]>>;
|
|
218
|
+
} & {
|
|
219
|
+
_def: readonly [R];
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
/** Resolves the effective page size for an infinite query declaration. */
|
|
223
|
+
declare function resolvePageSize(def: ResourceQueryDef<any, any>, args: readonly unknown[]): number;
|
|
224
|
+
/** Builds the full query key for a query declaration and args. */
|
|
225
|
+
declare function buildQueryKey(resourceName: string, queryName: string, def: ResourceQueryDef<any, any>, args: readonly unknown[]): readonly unknown[];
|
|
226
|
+
/**
|
|
227
|
+
* Executes the fetch → error-check → unwrap dance for a query declaration.
|
|
228
|
+
*/
|
|
229
|
+
declare function runResourceQuery(client: ResourceClient, def: ResourceQueryDef<any, any>, args: readonly unknown[], pageParam?: unknown, headers?: HeadersInit): Promise<unknown>;
|
|
230
|
+
/**
|
|
231
|
+
* Executes a mutation declaration: fetch → error-check → unwrap.
|
|
232
|
+
*
|
|
233
|
+
* `headers` supports plugins whose public hooks take an explicit client
|
|
234
|
+
* config (e.g. embeddable components) instead of resolving it from
|
|
235
|
+
* `usePluginOverrides` — same as the `headers` parameter on
|
|
236
|
+
* `createResourceQueryKeys`.
|
|
237
|
+
*/
|
|
238
|
+
declare function runResourceMutation(client: ResourceClient, def: ResourceMutationDef<any, any>, vars: unknown, headers?: HeadersInit): Promise<unknown>;
|
|
239
|
+
/**
|
|
240
|
+
* Builds a query-key factory from a resources declaration.
|
|
241
|
+
*
|
|
242
|
+
* Compatible with the shapes `@lukemorales/query-key-factory` produces:
|
|
243
|
+
* `store.posts.list(params)` → `{ queryKey: ["posts", "list", ...], queryFn }`,
|
|
244
|
+
* `store.posts.list._def` → `["posts", "list"]`, `store.posts._def` → `["posts"]`.
|
|
245
|
+
*
|
|
246
|
+
* Server-safe (no React) — usable from SSR loaders and `query-keys.ts`.
|
|
247
|
+
*/
|
|
248
|
+
declare function createResourceQueryKeys<const TResources extends ResourcesDeclaration>(client: ResourceClient, resources: TResources, headers?: HeadersInit): ResourceQueryKeys<TResources>;
|
|
249
|
+
|
|
250
|
+
export { SHARED_QUERY_CONFIG as S, buildQueryKey as b, createResourceQueryKeys as c, runResourceMutation as d, runResourceQuery as e, isErrorResponse as i, resolvePageSize as r, toError as t };
|
|
251
|
+
export type { ResourceClient as R, StackError as a, ResourceDef as f, ResourceMutationDef as g, ResourceMutationResult as h, ResourceMutationVars as j, ResourceQueryArgs as k, ResourceQueryData as l, ResourceQueryDef as m, ResourceQueryEntry as n, ResourceQueryKeys as o, ResourcesDeclaration as p };
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared error contract and React Query config for all data plugins.
|
|
3
|
+
*
|
|
4
|
+
* Every plugin used to copy-paste `isErrorResponse` / `toError` /
|
|
5
|
+
* `SHARED_QUERY_CONFIG` into its own `query-keys.ts` / hooks files. These now
|
|
6
|
+
* live in core and are exported once from `@btst/stack/plugins/client`.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Standardized error shape thrown by resource queries and mutations.
|
|
10
|
+
*
|
|
11
|
+
* `errors` maps field names to validation message(s), preserving Zod
|
|
12
|
+
* field-level issues from better-call endpoint validation errors so form
|
|
13
|
+
* hooks can map them onto per-field error state.
|
|
14
|
+
*/
|
|
15
|
+
interface StackError extends Error {
|
|
16
|
+
statusCode?: number;
|
|
17
|
+
errors?: Record<string, string | string[]>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Shared React Query configuration for all plugin queries.
|
|
21
|
+
* Prevents automatic refetching to avoid hydration mismatches in SSR.
|
|
22
|
+
*/
|
|
23
|
+
declare const SHARED_QUERY_CONFIG: {
|
|
24
|
+
readonly retry: false;
|
|
25
|
+
readonly refetchOnWindowFocus: false;
|
|
26
|
+
readonly refetchOnMount: false;
|
|
27
|
+
readonly refetchOnReconnect: false;
|
|
28
|
+
readonly staleTime: number;
|
|
29
|
+
readonly gcTime: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Type guard for better-call error responses.
|
|
33
|
+
* better-call client returns `Error$1<unknown> | Data<T>` — we check if
|
|
34
|
+
* `error` exists and is not null/undefined to determine it's an error response.
|
|
35
|
+
*/
|
|
36
|
+
declare function isErrorResponse(response: unknown): response is {
|
|
37
|
+
error: unknown;
|
|
38
|
+
data?: never;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Converts an unknown error (typically a better-call / better-fetch error
|
|
42
|
+
* response body) into a proper `StackError` with a meaningful message.
|
|
43
|
+
*
|
|
44
|
+
* Normalizes to `{ message, statusCode?, errors? }` where `errors` maps
|
|
45
|
+
* field names to validation messages (preserved from Zod issues in
|
|
46
|
+
* better-call endpoint validation error responses).
|
|
47
|
+
*/
|
|
48
|
+
declare function toError(error: unknown): StackError;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Server-safe resource declaration types and query-key/queryFn builder.
|
|
52
|
+
*
|
|
53
|
+
* A plugin declares its resources once (paths, query mappings, unwrapping,
|
|
54
|
+
* key discriminators) and gets:
|
|
55
|
+
*
|
|
56
|
+
* - `createResourceQueryKeys(client, resources, headers?)` — a query-key
|
|
57
|
+
* factory usable from SSR loaders and `query-keys.ts` (no React), with the
|
|
58
|
+
* same `_def` / `queryKey` shapes as `@lukemorales/query-key-factory`, so
|
|
59
|
+
* existing SSG `prefetchForRoute` / `query-key-defs.ts` keys keep matching.
|
|
60
|
+
* - `createResource(...)` (see `./hooks`) — generated React Query hooks.
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* Minimal better-call client shape the resource layer needs.
|
|
64
|
+
* Any `createApiClient<TRouter>()` result is assignable.
|
|
65
|
+
*/
|
|
66
|
+
type ResourceClient = (path: any, options?: any) => Promise<unknown>;
|
|
67
|
+
/**
|
|
68
|
+
* Declaration for a single query on a resource.
|
|
69
|
+
*
|
|
70
|
+
* Query-key shape: `[resourceName, queryName, ...key(...args)]` where `key`
|
|
71
|
+
* defaults to the args themselves. Share discriminator functions with
|
|
72
|
+
* `api/query-key-defs.ts` to keep SSG prefetch keys in sync.
|
|
73
|
+
*/
|
|
74
|
+
interface ResourceQueryDef<TArgs extends readonly unknown[] = readonly any[], TData = unknown> {
|
|
75
|
+
/** better-call endpoint path, e.g. `"/posts"` or `"/content/:typeSlug"` */
|
|
76
|
+
path: string;
|
|
77
|
+
/** Maps hook args to the endpoint path params (for `:param` segments) */
|
|
78
|
+
params?: (...args: TArgs) => Record<string, string>;
|
|
79
|
+
/** Maps hook args to the HTTP query object */
|
|
80
|
+
query?: (...args: TArgs) => Record<string, unknown> | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Maps hook args to the queryKey discriminator cells appended after
|
|
83
|
+
* `[resourceName, queryName]`. Defaults to the args themselves.
|
|
84
|
+
*/
|
|
85
|
+
key?: (...args: TArgs) => readonly unknown[];
|
|
86
|
+
/** Unwraps/selects data from the raw response data */
|
|
87
|
+
select?: (data: any, ...args: TArgs) => TData;
|
|
88
|
+
/**
|
|
89
|
+
* Offset-paginated infinite query. The queryFn receives `pageParam` and
|
|
90
|
+
* injects it into the HTTP query as `offsetParam`. `select` must return
|
|
91
|
+
* an array (one page of items).
|
|
92
|
+
*/
|
|
93
|
+
infinite?: boolean;
|
|
94
|
+
/** HTTP query param carrying the page offset (default `"offset"`) */
|
|
95
|
+
offsetParam?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Page size used to derive `getNextPageParam` for infinite queries
|
|
98
|
+
* (default 10). A function form derives it from the hook args.
|
|
99
|
+
*/
|
|
100
|
+
pageSize?: number | ((...args: TArgs) => number);
|
|
101
|
+
/**
|
|
102
|
+
* Custom `getNextPageParam` for infinite queries whose pages are not
|
|
103
|
+
* plain item arrays (e.g. `{ items, total }` envelopes). Overrides the
|
|
104
|
+
* default page-size heuristic. Return `undefined` when there is no
|
|
105
|
+
* next page.
|
|
106
|
+
*/
|
|
107
|
+
nextPageParam?: (lastPage: TData, allPages: TData[], ...args: TArgs) => unknown | undefined;
|
|
108
|
+
/** When true, skip fetching and resolve `null` (e.g. missing id) */
|
|
109
|
+
skip?: (...args: TArgs) => boolean;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Declaration for a single mutation on a resource.
|
|
113
|
+
*/
|
|
114
|
+
interface ResourceMutationDef<TVars = any, TResult = unknown> {
|
|
115
|
+
/** better-call endpoint path, e.g. `"@post/posts"` or `"@put/posts/:id"` */
|
|
116
|
+
path: string;
|
|
117
|
+
method: "POST" | "PUT" | "PATCH" | "DELETE";
|
|
118
|
+
/**
|
|
119
|
+
* Maps mutation variables to better-call call options.
|
|
120
|
+
* Defaults to `{ body: vars }`.
|
|
121
|
+
*/
|
|
122
|
+
input?: (vars: TVars) => {
|
|
123
|
+
body?: unknown;
|
|
124
|
+
params?: Record<string, string>;
|
|
125
|
+
query?: Record<string, unknown>;
|
|
126
|
+
};
|
|
127
|
+
/** Unwraps the mutation result from the raw response data */
|
|
128
|
+
select?: (data: any) => TResult;
|
|
129
|
+
/**
|
|
130
|
+
* Query-key prefixes invalidated (awaited, in order) after success.
|
|
131
|
+
* `"posts"` invalidates the whole resource, `"posts.list"` one query.
|
|
132
|
+
*/
|
|
133
|
+
invalidates?: readonly string[];
|
|
134
|
+
/**
|
|
135
|
+
* Which matching queries to refetch during invalidation. Defaults to
|
|
136
|
+
* React Query's `"active"`; use `"all"` when an inactive view must be
|
|
137
|
+
* refreshed before it remounts.
|
|
138
|
+
*/
|
|
139
|
+
refetchType?: "active" | "inactive" | "all" | "none";
|
|
140
|
+
/**
|
|
141
|
+
* Seed a query cache entry from the mutation result (e.g. the detail
|
|
142
|
+
* entry for a created/updated record). `args` returns the key args for
|
|
143
|
+
* the target query, or `null` to skip seeding.
|
|
144
|
+
*/
|
|
145
|
+
setData?: {
|
|
146
|
+
/** Target query name on the same resource (default `"detail"`) */
|
|
147
|
+
query?: string;
|
|
148
|
+
args: (result: TResult) => readonly unknown[] | null;
|
|
149
|
+
/**
|
|
150
|
+
* Optionally merge the mutation result with the existing cache value.
|
|
151
|
+
* Defaults to replacing the cached value with `result`.
|
|
152
|
+
*/
|
|
153
|
+
updater?: (previous: unknown, result: TResult) => unknown;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Remove a query cache entry after success (e.g. the deleted record's
|
|
157
|
+
* detail query). `args` may derive the target key from both the result and
|
|
158
|
+
* the submitted variables, or return `null` to skip removal.
|
|
159
|
+
*/
|
|
160
|
+
removeData?: {
|
|
161
|
+
/** Target query name on the same resource (default `"detail"`) */
|
|
162
|
+
query?: string;
|
|
163
|
+
args: (result: TResult, variables: TVars) => readonly unknown[] | null;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Whether to call the router `refresh` override after success (default
|
|
167
|
+
* `true`). Set `false` for mutations that must not reload server-rendered
|
|
168
|
+
* state — e.g. public submissions whose success UI lives in client state.
|
|
169
|
+
*/
|
|
170
|
+
refresh?: boolean;
|
|
171
|
+
}
|
|
172
|
+
/** Declaration for one resource: its queries and (optionally) mutations. */
|
|
173
|
+
interface ResourceDef {
|
|
174
|
+
queries: Record<string, ResourceQueryDef<any, any>>;
|
|
175
|
+
mutations?: Record<string, ResourceMutationDef<any, any>>;
|
|
176
|
+
}
|
|
177
|
+
/** A plugin's full resource declaration, keyed by resource name. */
|
|
178
|
+
type ResourcesDeclaration = Record<string, ResourceDef>;
|
|
179
|
+
/** Extracts the hook args tuple from a query declaration. */
|
|
180
|
+
type ResourceQueryArgs<TDef> = TDef extends {
|
|
181
|
+
query: (...args: infer A) => any;
|
|
182
|
+
} ? A : TDef extends {
|
|
183
|
+
params: (...args: infer A) => any;
|
|
184
|
+
} ? A : TDef extends {
|
|
185
|
+
key: (...args: infer A) => any;
|
|
186
|
+
} ? A : TDef extends {
|
|
187
|
+
select: (data: any, ...args: infer A) => any;
|
|
188
|
+
} ? A : [];
|
|
189
|
+
/** Extracts the (per-page, for infinite queries) data type from a query declaration. */
|
|
190
|
+
type ResourceQueryData<TDef> = TDef extends {
|
|
191
|
+
select: (data: any, ...args: any[]) => infer D;
|
|
192
|
+
} ? D : unknown;
|
|
193
|
+
/** Extracts the variables type from a mutation declaration. */
|
|
194
|
+
type ResourceMutationVars<TDef> = TDef extends {
|
|
195
|
+
input: (vars: infer V) => any;
|
|
196
|
+
} ? V : unknown;
|
|
197
|
+
/** Extracts the result type from a mutation declaration. */
|
|
198
|
+
type ResourceMutationResult<TDef> = TDef extends {
|
|
199
|
+
select: (data: any) => infer R;
|
|
200
|
+
} ? R : unknown;
|
|
201
|
+
/**
|
|
202
|
+
* A query-key factory entry: call with args to get `{ queryKey, queryFn }`,
|
|
203
|
+
* read `_def` for the `[resourceName, queryName]` prefix.
|
|
204
|
+
*/
|
|
205
|
+
interface ResourceQueryEntry<TArgs extends readonly unknown[] = readonly any[], TData = unknown> {
|
|
206
|
+
(...args: TArgs): {
|
|
207
|
+
queryKey: readonly unknown[];
|
|
208
|
+
queryFn: (context?: {
|
|
209
|
+
pageParam?: unknown;
|
|
210
|
+
}) => Promise<TData>;
|
|
211
|
+
};
|
|
212
|
+
_def: readonly [string, string];
|
|
213
|
+
}
|
|
214
|
+
/** The query-key factory produced from a resources declaration. */
|
|
215
|
+
type ResourceQueryKeys<TResources extends ResourcesDeclaration> = {
|
|
216
|
+
[R in keyof TResources]: {
|
|
217
|
+
[Q in keyof TResources[R]["queries"]]: ResourceQueryEntry<ResourceQueryArgs<TResources[R]["queries"][Q]>, ResourceQueryData<TResources[R]["queries"][Q]>>;
|
|
218
|
+
} & {
|
|
219
|
+
_def: readonly [R];
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
/** Resolves the effective page size for an infinite query declaration. */
|
|
223
|
+
declare function resolvePageSize(def: ResourceQueryDef<any, any>, args: readonly unknown[]): number;
|
|
224
|
+
/** Builds the full query key for a query declaration and args. */
|
|
225
|
+
declare function buildQueryKey(resourceName: string, queryName: string, def: ResourceQueryDef<any, any>, args: readonly unknown[]): readonly unknown[];
|
|
226
|
+
/**
|
|
227
|
+
* Executes the fetch → error-check → unwrap dance for a query declaration.
|
|
228
|
+
*/
|
|
229
|
+
declare function runResourceQuery(client: ResourceClient, def: ResourceQueryDef<any, any>, args: readonly unknown[], pageParam?: unknown, headers?: HeadersInit): Promise<unknown>;
|
|
230
|
+
/**
|
|
231
|
+
* Executes a mutation declaration: fetch → error-check → unwrap.
|
|
232
|
+
*
|
|
233
|
+
* `headers` supports plugins whose public hooks take an explicit client
|
|
234
|
+
* config (e.g. embeddable components) instead of resolving it from
|
|
235
|
+
* `usePluginOverrides` — same as the `headers` parameter on
|
|
236
|
+
* `createResourceQueryKeys`.
|
|
237
|
+
*/
|
|
238
|
+
declare function runResourceMutation(client: ResourceClient, def: ResourceMutationDef<any, any>, vars: unknown, headers?: HeadersInit): Promise<unknown>;
|
|
239
|
+
/**
|
|
240
|
+
* Builds a query-key factory from a resources declaration.
|
|
241
|
+
*
|
|
242
|
+
* Compatible with the shapes `@lukemorales/query-key-factory` produces:
|
|
243
|
+
* `store.posts.list(params)` → `{ queryKey: ["posts", "list", ...], queryFn }`,
|
|
244
|
+
* `store.posts.list._def` → `["posts", "list"]`, `store.posts._def` → `["posts"]`.
|
|
245
|
+
*
|
|
246
|
+
* Server-safe (no React) — usable from SSR loaders and `query-keys.ts`.
|
|
247
|
+
*/
|
|
248
|
+
declare function createResourceQueryKeys<const TResources extends ResourcesDeclaration>(client: ResourceClient, resources: TResources, headers?: HeadersInit): ResourceQueryKeys<TResources>;
|
|
249
|
+
|
|
250
|
+
export { SHARED_QUERY_CONFIG as S, buildQueryKey as b, createResourceQueryKeys as c, runResourceMutation as d, runResourceQuery as e, isErrorResponse as i, resolvePageSize as r, toError as t };
|
|
251
|
+
export type { ResourceClient as R, StackError as a, ResourceDef as f, ResourceMutationDef as g, ResourceMutationResult as h, ResourceMutationVars as j, ResourceQueryArgs as k, ResourceQueryData as l, ResourceQueryDef as m, ResourceQueryEntry as n, ResourceQueryKeys as o, ResourcesDeclaration as p };
|