@btst/stack 2.6.2 → 2.8.0
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 +1 -0
- package/dist/api/index.d.cts +2 -2
- package/dist/api/index.d.mts +2 -2
- package/dist/api/index.d.ts +2 -2
- package/dist/client/index.d.cts +2 -2
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/components/auto-form/index.d.cts +2 -2
- package/dist/components/auto-form/index.d.mts +2 -2
- package/dist/components/auto-form/index.d.ts +2 -2
- package/dist/components/form-builder/index.d.cts +1 -1
- package/dist/components/form-builder/index.d.mts +1 -1
- package/dist/components/form-builder/index.d.ts +1 -1
- package/dist/components/stepped-auto-form/index.d.cts +1 -1
- package/dist/components/stepped-auto-form/index.d.mts +1 -1
- package/dist/components/stepped-auto-form/index.d.ts +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/packages/stack/src/plugins/blog/client/components/loading/post-navigation-skeleton.cjs +13 -0
- package/dist/packages/stack/src/plugins/blog/client/components/loading/post-navigation-skeleton.mjs +11 -0
- package/dist/packages/stack/src/plugins/blog/client/components/loading/recent-posts-carousel-skeleton.cjs +17 -0
- package/dist/packages/stack/src/plugins/blog/client/components/loading/recent-posts-carousel-skeleton.mjs +15 -0
- package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.internal.cjs +18 -7
- package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.internal.mjs +18 -7
- package/dist/packages/stack/src/plugins/blog/client/components/shared/post-navigation.cjs +48 -52
- package/dist/packages/stack/src/plugins/blog/client/components/shared/post-navigation.mjs +49 -53
- package/dist/packages/stack/src/plugins/blog/client/components/shared/recent-posts-carousel.cjs +34 -37
- package/dist/packages/stack/src/plugins/blog/client/components/shared/recent-posts-carousel.mjs +35 -38
- package/dist/packages/stack/src/plugins/blog/client/hooks/blog-hooks.cjs +4 -21
- package/dist/packages/stack/src/plugins/blog/client/hooks/blog-hooks.mjs +4 -21
- package/dist/packages/stack/src/plugins/comments/api/getters.cjs +284 -0
- package/dist/packages/stack/src/plugins/comments/api/getters.mjs +280 -0
- package/dist/packages/stack/src/plugins/comments/api/mutations.cjs +118 -0
- package/dist/packages/stack/src/plugins/comments/api/mutations.mjs +112 -0
- package/dist/packages/stack/src/plugins/comments/api/plugin.cjs +335 -0
- package/dist/packages/stack/src/plugins/comments/api/plugin.mjs +333 -0
- package/dist/packages/stack/src/plugins/comments/api/query-key-defs.cjs +60 -0
- package/dist/packages/stack/src/plugins/comments/api/query-key-defs.mjs +55 -0
- package/dist/packages/stack/src/plugins/comments/api/serializers.cjs +23 -0
- package/dist/packages/stack/src/plugins/comments/api/serializers.mjs +21 -0
- package/dist/packages/stack/src/plugins/comments/client/components/comment-count.cjs +46 -0
- package/dist/packages/stack/src/plugins/comments/client/components/comment-count.mjs +44 -0
- package/dist/packages/stack/src/plugins/comments/client/components/comment-form.cjs +86 -0
- package/dist/packages/stack/src/plugins/comments/client/components/comment-form.mjs +84 -0
- package/dist/packages/stack/src/plugins/comments/client/components/comment-thread.cjs +540 -0
- package/dist/packages/stack/src/plugins/comments/client/components/comment-thread.mjs +538 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.cjs +64 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.internal.cjs +426 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.internal.mjs +424 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/moderation-page.mjs +62 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.cjs +66 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.internal.cjs +256 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.internal.mjs +254 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/my-comments-page.mjs +64 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.cjs +86 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.internal.cjs +191 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.internal.mjs +189 -0
- package/dist/packages/stack/src/plugins/comments/client/components/pages/resource-comments-page.mjs +84 -0
- package/dist/packages/stack/src/plugins/comments/client/components/shared/page-wrapper.cjs +27 -0
- package/dist/packages/stack/src/plugins/comments/client/components/shared/page-wrapper.mjs +25 -0
- package/dist/packages/stack/src/plugins/comments/client/components/shared/pagination.cjs +37 -0
- package/dist/packages/stack/src/plugins/comments/client/components/shared/pagination.mjs +35 -0
- package/dist/packages/stack/src/plugins/comments/client/hooks/use-comments.cjs +476 -0
- package/dist/packages/stack/src/plugins/comments/client/hooks/use-comments.mjs +464 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/comments-moderation.cjs +67 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/comments-moderation.mjs +65 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/comments-my.cjs +27 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/comments-my.mjs +25 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/comments-thread.cjs +30 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/comments-thread.mjs +28 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/index.cjs +13 -0
- package/dist/packages/stack/src/plugins/comments/client/localization/index.mjs +11 -0
- package/dist/packages/stack/src/plugins/comments/client/plugin.cjs +116 -0
- package/dist/packages/stack/src/plugins/comments/client/plugin.mjs +114 -0
- package/dist/packages/stack/src/plugins/comments/client/utils.cjs +41 -0
- package/dist/packages/stack/src/plugins/comments/client/utils.mjs +37 -0
- package/dist/packages/stack/src/plugins/comments/db.cjs +75 -0
- package/dist/packages/stack/src/plugins/comments/db.mjs +73 -0
- package/dist/packages/stack/src/plugins/comments/schemas.cjs +45 -0
- package/dist/packages/stack/src/plugins/comments/schemas.mjs +38 -0
- package/dist/packages/stack/src/plugins/kanban/api/plugin.cjs +5 -4
- package/dist/packages/stack/src/plugins/kanban/api/plugin.mjs +5 -4
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/task-form.cjs +0 -1
- package/dist/packages/stack/src/plugins/kanban/client/components/forms/task-form.mjs +0 -1
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/board-page.internal.cjs +39 -22
- package/dist/packages/stack/src/plugins/kanban/client/components/pages/board-page.internal.mjs +40 -23
- package/dist/packages/ui/src/components/avatar.mjs +1 -1
- package/dist/packages/ui/src/components/pagination-controls.cjs +64 -0
- package/dist/packages/ui/src/components/pagination-controls.mjs +62 -0
- package/dist/packages/ui/src/components/when-visible.cjs +39 -0
- package/dist/packages/ui/src/components/when-visible.mjs +37 -0
- package/dist/plugins/ai-chat/api/index.d.cts +4 -6
- package/dist/plugins/ai-chat/api/index.d.mts +4 -6
- package/dist/plugins/ai-chat/api/index.d.ts +4 -6
- package/dist/plugins/ai-chat/client/hooks/index.d.cts +1 -3
- package/dist/plugins/ai-chat/client/hooks/index.d.mts +1 -3
- package/dist/plugins/ai-chat/client/hooks/index.d.ts +1 -3
- package/dist/plugins/ai-chat/query-keys.d.cts +1 -3
- package/dist/plugins/ai-chat/query-keys.d.mts +1 -3
- package/dist/plugins/ai-chat/query-keys.d.ts +1 -3
- package/dist/plugins/api/index.d.cts +3 -3
- package/dist/plugins/api/index.d.mts +3 -3
- package/dist/plugins/api/index.d.ts +3 -3
- package/dist/plugins/blog/api/index.d.cts +3 -3
- package/dist/plugins/blog/api/index.d.mts +3 -3
- package/dist/plugins/blog/api/index.d.ts +3 -3
- package/dist/plugins/blog/client/hooks/index.d.cts +2 -2
- package/dist/plugins/blog/client/hooks/index.d.mts +2 -2
- package/dist/plugins/blog/client/hooks/index.d.ts +2 -2
- package/dist/plugins/blog/client/index.d.cts +25 -3
- package/dist/plugins/blog/client/index.d.mts +25 -3
- package/dist/plugins/blog/client/index.d.ts +25 -3
- package/dist/plugins/blog/query-keys.d.cts +3 -3
- package/dist/plugins/blog/query-keys.d.mts +3 -3
- package/dist/plugins/blog/query-keys.d.ts +3 -3
- package/dist/plugins/client/index.d.cts +2 -2
- package/dist/plugins/client/index.d.mts +2 -2
- package/dist/plugins/client/index.d.ts +2 -2
- package/dist/plugins/cms/api/index.d.cts +1 -1
- package/dist/plugins/cms/api/index.d.mts +1 -1
- package/dist/plugins/cms/api/index.d.ts +1 -1
- package/dist/plugins/cms/client/index.d.cts +1 -1
- package/dist/plugins/cms/client/index.d.mts +1 -1
- package/dist/plugins/cms/client/index.d.ts +1 -1
- package/dist/plugins/cms/query-keys.d.cts +1 -1
- package/dist/plugins/cms/query-keys.d.mts +1 -1
- package/dist/plugins/cms/query-keys.d.ts +1 -1
- package/dist/plugins/comments/api/index.cjs +21 -0
- package/dist/plugins/comments/api/index.d.cts +126 -0
- package/dist/plugins/comments/api/index.d.mts +126 -0
- package/dist/plugins/comments/api/index.d.ts +126 -0
- package/dist/plugins/comments/api/index.mjs +5 -0
- package/dist/plugins/comments/client/components/index.cjs +15 -0
- package/dist/plugins/comments/client/components/index.d.cts +125 -0
- package/dist/plugins/comments/client/components/index.d.mts +125 -0
- package/dist/plugins/comments/client/components/index.d.ts +125 -0
- package/dist/plugins/comments/client/components/index.mjs +5 -0
- package/dist/plugins/comments/client/hooks/index.cjs +17 -0
- package/dist/plugins/comments/client/hooks/index.d.cts +200 -0
- package/dist/plugins/comments/client/hooks/index.d.mts +200 -0
- package/dist/plugins/comments/client/hooks/index.d.ts +200 -0
- package/dist/plugins/comments/client/hooks/index.mjs +1 -0
- package/dist/plugins/comments/client/index.cjs +9 -0
- package/dist/plugins/comments/client/index.d.cts +262 -0
- package/dist/plugins/comments/client/index.d.mts +262 -0
- package/dist/plugins/comments/client/index.d.ts +262 -0
- package/dist/plugins/comments/client/index.mjs +2 -0
- package/dist/plugins/comments/client.css +2 -0
- package/dist/plugins/comments/query-keys.cjs +113 -0
- package/dist/plugins/comments/query-keys.d.cts +71 -0
- package/dist/plugins/comments/query-keys.d.mts +71 -0
- package/dist/plugins/comments/query-keys.d.ts +71 -0
- package/dist/plugins/comments/query-keys.mjs +111 -0
- package/dist/plugins/comments/style.css +15 -0
- package/dist/plugins/form-builder/api/index.d.cts +2 -2
- package/dist/plugins/form-builder/api/index.d.mts +2 -2
- package/dist/plugins/form-builder/api/index.d.ts +2 -2
- package/dist/plugins/form-builder/client/components/index.d.cts +1 -1
- package/dist/plugins/form-builder/client/components/index.d.mts +1 -1
- package/dist/plugins/form-builder/client/components/index.d.ts +1 -1
- package/dist/plugins/form-builder/client/index.d.cts +1 -1
- package/dist/plugins/form-builder/client/index.d.mts +1 -1
- package/dist/plugins/form-builder/client/index.d.ts +1 -1
- package/dist/plugins/form-builder/query-keys.d.cts +1 -1
- package/dist/plugins/form-builder/query-keys.d.mts +1 -1
- package/dist/plugins/form-builder/query-keys.d.ts +1 -1
- package/dist/plugins/kanban/api/index.d.cts +2 -2
- package/dist/plugins/kanban/api/index.d.mts +2 -2
- package/dist/plugins/kanban/api/index.d.ts +2 -2
- package/dist/plugins/kanban/client/hooks/index.d.cts +1 -1
- package/dist/plugins/kanban/client/hooks/index.d.mts +1 -1
- package/dist/plugins/kanban/client/hooks/index.d.ts +1 -1
- package/dist/plugins/kanban/client/index.d.cts +1 -1
- package/dist/plugins/kanban/client/index.d.mts +1 -1
- package/dist/plugins/kanban/client/index.d.ts +1 -1
- package/dist/plugins/kanban/query-keys.d.cts +2 -2
- package/dist/plugins/kanban/query-keys.d.mts +2 -2
- package/dist/plugins/kanban/query-keys.d.ts +2 -2
- package/dist/plugins/open-api/api/index.d.cts +3 -3
- package/dist/plugins/open-api/api/index.d.mts +3 -3
- package/dist/plugins/open-api/api/index.d.ts +3 -3
- package/dist/plugins/route-docs/client/index.d.cts +1 -1
- package/dist/plugins/route-docs/client/index.d.mts +1 -1
- package/dist/plugins/route-docs/client/index.d.ts +1 -1
- package/dist/plugins/ui-builder/client/components/index.d.cts +2 -2
- package/dist/plugins/ui-builder/client/components/index.d.mts +2 -2
- package/dist/plugins/ui-builder/client/components/index.d.ts +2 -2
- package/dist/plugins/ui-builder/client/hooks/index.d.cts +3 -3
- package/dist/plugins/ui-builder/client/hooks/index.d.mts +3 -3
- package/dist/plugins/ui-builder/client/hooks/index.d.ts +3 -3
- package/dist/plugins/ui-builder/client/index.d.cts +3 -3
- package/dist/plugins/ui-builder/client/index.d.mts +3 -3
- package/dist/plugins/ui-builder/client/index.d.ts +3 -3
- package/dist/plugins/ui-builder/index.d.cts +3 -3
- package/dist/plugins/ui-builder/index.d.mts +3 -3
- package/dist/plugins/ui-builder/index.d.ts +3 -3
- package/dist/shared/{stack.B1srlBud.d.mts → stack.BFoBvGML.d.mts} +1 -1
- package/dist/shared/{stack.DmpPDPxA.d.cts → stack.BOCvd9HK.d.cts} +1 -1
- package/dist/shared/{stack.n1_i1p2B.d.cts → stack.BOokfhZD.d.cts} +170 -110
- package/dist/shared/{stack.DXnclTG7.d.ts → stack.BSqJrCTM.d.cts} +120 -59
- package/dist/shared/{stack.B58oHdqm.d.mts → stack.BX7MHi0J.d.mts} +90 -45
- package/dist/shared/{stack.cfCkioTe.d.mts → stack.BXxrFL9R.d.ts} +120 -59
- package/dist/shared/{stack.CSx98K5H.d.cts → stack.BYN8wCV6.d.cts} +87 -58
- package/dist/shared/{stack.FVWf2JhZ.d.mts → stack.BgQrdSlo.d.mts} +60 -45
- package/dist/shared/{stack.BK9Z2dcL.d.ts → stack.BmMB0LNC.d.ts} +1 -1
- package/dist/shared/{stack.j75TpKh2.d.ts → stack.BvCR4-9H.d.ts} +170 -110
- package/dist/shared/{stack.FeaWkglm.d.ts → stack.BxFl46lB.d.cts} +24 -1
- package/dist/shared/stack.C-b3Sn8j.d.cts +142 -0
- package/dist/shared/stack.C-b3Sn8j.d.mts +142 -0
- package/dist/shared/stack.C-b3Sn8j.d.ts +142 -0
- package/dist/shared/{stack.CFECM0ew.d.cts → stack.C1nXGBr6.d.cts} +1 -1
- package/dist/shared/{stack.C9Mg2Q46.d.cts → stack.C9zoS1TN.d.cts} +90 -45
- package/dist/shared/stack.CJE9sAjV.d.ts +335 -0
- package/dist/shared/{stack.fdi94T4S.d.mts → stack.CPsYC2-Z.d.cts} +7 -7
- package/dist/shared/{stack.fdi94T4S.d.ts → stack.CPsYC2-Z.d.mts} +7 -7
- package/dist/shared/{stack.fdi94T4S.d.cts → stack.CPsYC2-Z.d.ts} +7 -7
- package/dist/shared/{stack.7n9Y_u7N.d.cts → stack.CQnwAN7x.d.cts} +6 -6
- package/dist/shared/{stack.7n9Y_u7N.d.mts → stack.CQnwAN7x.d.mts} +6 -6
- package/dist/shared/{stack.7n9Y_u7N.d.ts → stack.CQnwAN7x.d.ts} +6 -6
- package/dist/shared/{stack.CxaFNQCV.d.mts → stack.CWxAl9K3.d.mts} +170 -110
- package/dist/shared/{stack.D-b5zbPm.d.cts → stack.Cbsrl06u.d.cts} +60 -45
- package/dist/shared/stack.CmHRdhl8.d.cts +335 -0
- package/dist/shared/{stack.BgTmujxW.d.mts → stack.D88yU4FT.d.mts} +87 -58
- package/dist/shared/{stack.DVtk5CNw.d.mts → stack.DLPa6Gzm.d.mts} +1 -1
- package/dist/shared/{stack.BAT540yW.d.ts → stack.DOZ1EXjM.d.mts} +9 -15
- package/dist/shared/{stack.FeaWkglm.d.mts → stack.DRpeDS6X.d.ts} +24 -1
- package/dist/shared/{stack.B8vT-Yt4.d.mts → stack.DX-tQ93o.d.cts} +9 -15
- package/dist/shared/stack.Dcz6636A.d.mts +335 -0
- package/dist/shared/{stack.ASwEoINr.d.ts → stack.DxJ-tHLt.d.ts} +1 -1
- package/dist/shared/{stack.DaZM10cp.d.cts → stack.DzOhpIYM.d.mts} +120 -59
- package/dist/shared/{stack.CTDVxbrA.d.ts → stack.Fl2Kl_bt.d.ts} +60 -45
- package/dist/shared/{stack.FeaWkglm.d.cts → stack.Jb0kQDJC.d.mts} +24 -1
- package/dist/shared/stack.Ldfkr5b2.d.cts +112 -0
- package/dist/shared/stack.Ldfkr5b2.d.mts +112 -0
- package/dist/shared/stack.Ldfkr5b2.d.ts +112 -0
- package/dist/shared/{stack.CLQuVdwK.d.ts → stack.RuQ9JCLo.d.ts} +87 -58
- package/dist/shared/{stack.BwA7trxA.d.cts → stack.VF6FhyZw.d.ts} +9 -15
- package/dist/shared/{stack.sO33ZDhK.d.ts → stack.fQjVhw5a.d.ts} +90 -45
- package/package.json +70 -5
- package/src/__tests__/plugins.test.tsx +5 -1
- package/src/__tests__/stack-api.test.ts +1 -1
- package/src/plugins/ai-chat/__tests__/getters.test.ts +1 -1
- package/src/plugins/ai-chat/api/getters.ts +1 -1
- package/src/plugins/ai-chat/api/plugin.ts +1 -1
- package/src/plugins/api/index.ts +5 -1
- package/src/plugins/blog/__tests__/getters.test.ts +1 -1
- package/src/plugins/blog/api/getters.ts +1 -1
- package/src/plugins/blog/api/plugin.ts +1 -1
- package/src/plugins/blog/client/components/loading/post-navigation-skeleton.tsx +10 -0
- package/src/plugins/blog/client/components/loading/recent-posts-carousel-skeleton.tsx +18 -0
- package/src/plugins/blog/client/components/pages/post-page.internal.tsx +23 -8
- package/src/plugins/blog/client/components/shared/post-navigation.tsx +0 -5
- package/src/plugins/blog/client/components/shared/recent-posts-carousel.tsx +1 -5
- package/src/plugins/blog/client/hooks/blog-hooks.tsx +8 -33
- package/src/plugins/blog/client/overrides.ts +26 -1
- package/src/plugins/cms/__tests__/getters.test.ts +1 -1
- package/src/plugins/cms/api/getters.ts +1 -1
- package/src/plugins/cms/api/mutations.ts +1 -1
- package/src/plugins/cms/api/plugin.ts +1 -1
- package/src/plugins/cms/client/components/shared/pagination.tsx +14 -42
- package/src/plugins/comments/api/getters.ts +444 -0
- package/src/plugins/comments/api/index.ts +21 -0
- package/src/plugins/comments/api/mutations.ts +206 -0
- package/src/plugins/comments/api/plugin.ts +628 -0
- package/src/plugins/comments/api/query-key-defs.ts +143 -0
- package/src/plugins/comments/api/serializers.ts +37 -0
- package/src/plugins/comments/client/components/comment-count.tsx +66 -0
- package/src/plugins/comments/client/components/comment-form.tsx +112 -0
- package/src/plugins/comments/client/components/comment-thread.tsx +799 -0
- package/src/plugins/comments/client/components/index.tsx +11 -0
- package/src/plugins/comments/client/components/pages/moderation-page.internal.tsx +550 -0
- package/src/plugins/comments/client/components/pages/moderation-page.tsx +70 -0
- package/src/plugins/comments/client/components/pages/my-comments-page.internal.tsx +367 -0
- package/src/plugins/comments/client/components/pages/my-comments-page.tsx +72 -0
- package/src/plugins/comments/client/components/pages/resource-comments-page.internal.tsx +225 -0
- package/src/plugins/comments/client/components/pages/resource-comments-page.tsx +97 -0
- package/src/plugins/comments/client/components/shared/page-wrapper.tsx +32 -0
- package/src/plugins/comments/client/components/shared/pagination.tsx +44 -0
- package/src/plugins/comments/client/hooks/index.tsx +13 -0
- package/src/plugins/comments/client/hooks/use-comments.tsx +717 -0
- package/src/plugins/comments/client/index.ts +14 -0
- package/src/plugins/comments/client/localization/comments-moderation.ts +75 -0
- package/src/plugins/comments/client/localization/comments-my.ts +32 -0
- package/src/plugins/comments/client/localization/comments-thread.ts +32 -0
- package/src/plugins/comments/client/localization/index.ts +11 -0
- package/src/plugins/comments/client/overrides.ts +164 -0
- package/src/plugins/comments/client/plugin.tsx +195 -0
- package/src/plugins/comments/client/utils.ts +67 -0
- package/src/plugins/comments/client.css +2 -0
- package/src/plugins/comments/db.ts +77 -0
- package/src/plugins/comments/query-keys.ts +189 -0
- package/src/plugins/comments/schemas.ts +72 -0
- package/src/plugins/comments/style.css +15 -0
- package/src/plugins/comments/types.ts +73 -0
- package/src/plugins/form-builder/__tests__/getters.test.ts +1 -1
- package/src/plugins/form-builder/api/getters.ts +1 -1
- package/src/plugins/form-builder/api/plugin.ts +1 -1
- package/src/plugins/kanban/__tests__/getters.test.ts +1 -1
- package/src/plugins/kanban/api/getters.ts +1 -1
- package/src/plugins/kanban/api/mutations.ts +1 -1
- package/src/plugins/kanban/api/plugin.ts +6 -5
- package/src/plugins/kanban/client/components/forms/task-form.tsx +0 -1
- package/src/plugins/kanban/client/components/pages/board-page.internal.tsx +46 -27
- package/src/plugins/kanban/client/overrides.ts +27 -1
- package/src/types.ts +5 -1
- package/dist/shared/{stack.BQmuNl5p.d.mts → stack.BWp0hcm9.d.cts} +3 -3
- package/dist/shared/{stack.BQmuNl5p.d.ts → stack.BWp0hcm9.d.mts} +3 -3
- package/dist/shared/{stack.BQmuNl5p.d.cts → stack.BWp0hcm9.d.ts} +3 -3
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as _btst_yar from '@btst/yar';
|
|
4
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
5
|
+
import { C as CommentsLocalization } from '../../../shared/stack.Ldfkr5b2.cjs';
|
|
6
|
+
export { a as COMMENTS_LOCALIZATION } from '../../../shared/stack.Ldfkr5b2.cjs';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Context passed to loader hooks
|
|
10
|
+
*/
|
|
11
|
+
interface LoaderContext {
|
|
12
|
+
/** Current route path */
|
|
13
|
+
path: string;
|
|
14
|
+
/** Route parameters */
|
|
15
|
+
params?: Record<string, string>;
|
|
16
|
+
/** Whether rendering on server (true) or client (false) */
|
|
17
|
+
isSSR: boolean;
|
|
18
|
+
/** Base URL for API calls */
|
|
19
|
+
apiBaseURL: string;
|
|
20
|
+
/** Path where the API is mounted */
|
|
21
|
+
apiBasePath: string;
|
|
22
|
+
/** Optional headers for the request */
|
|
23
|
+
headers?: Headers;
|
|
24
|
+
/** Additional context properties */
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Hooks for Comments client plugin
|
|
29
|
+
*/
|
|
30
|
+
interface CommentsClientHooks {
|
|
31
|
+
/**
|
|
32
|
+
* Called before loading the moderation page. Throw to cancel.
|
|
33
|
+
*/
|
|
34
|
+
beforeLoadModeration?: (context: LoaderContext) => Promise<void> | void;
|
|
35
|
+
/**
|
|
36
|
+
* Called before loading the User Comments page. Throw to cancel.
|
|
37
|
+
*/
|
|
38
|
+
beforeLoadUserComments?: (context: LoaderContext) => Promise<void> | void;
|
|
39
|
+
/**
|
|
40
|
+
* Called when a loading error occurs.
|
|
41
|
+
*/
|
|
42
|
+
onLoadError?: (error: Error, context: LoaderContext) => Promise<void> | void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Configuration for the Comments client plugin
|
|
46
|
+
*/
|
|
47
|
+
interface CommentsClientConfig {
|
|
48
|
+
/** Base URL for API calls (e.g., "http://localhost:3000") */
|
|
49
|
+
apiBaseURL: string;
|
|
50
|
+
/** Path where the API is mounted (e.g., "/api/data") */
|
|
51
|
+
apiBasePath: string;
|
|
52
|
+
/** Base URL of your site */
|
|
53
|
+
siteBaseURL: string;
|
|
54
|
+
/** Path where pages are mounted (e.g., "/pages") */
|
|
55
|
+
siteBasePath: string;
|
|
56
|
+
/** React Query client instance */
|
|
57
|
+
queryClient: QueryClient;
|
|
58
|
+
/** Optional headers for SSR */
|
|
59
|
+
headers?: Headers;
|
|
60
|
+
/** Optional lifecycle hooks */
|
|
61
|
+
hooks?: CommentsClientHooks;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Comments client plugin — registers admin moderation routes.
|
|
65
|
+
*
|
|
66
|
+
* The embeddable `CommentThread` and `CommentCount` components are standalone
|
|
67
|
+
* and do not require this plugin to be registered. Register them manually
|
|
68
|
+
* via the layout overrides pattern or use them directly in your pages.
|
|
69
|
+
*/
|
|
70
|
+
declare const commentsClientPlugin: (config: CommentsClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
|
|
71
|
+
moderation: {
|
|
72
|
+
(inputCtx_0?: _btst_yar.InputContext<"/comments/moderation", _btst_yar.RouteOptions> | undefined): {
|
|
73
|
+
PageComponent?: React.ComponentType<unknown> | undefined;
|
|
74
|
+
LoadingComponent?: React.ComponentType<unknown> | undefined;
|
|
75
|
+
ErrorComponent?: React.ComponentType<unknown> | undefined;
|
|
76
|
+
loader?: (() => Promise<void>) | undefined;
|
|
77
|
+
meta?: (() => ({
|
|
78
|
+
title: string;
|
|
79
|
+
name?: undefined;
|
|
80
|
+
content?: undefined;
|
|
81
|
+
property?: undefined;
|
|
82
|
+
} | {
|
|
83
|
+
name: string;
|
|
84
|
+
content: string;
|
|
85
|
+
title?: undefined;
|
|
86
|
+
property?: undefined;
|
|
87
|
+
} | {
|
|
88
|
+
property: string;
|
|
89
|
+
content: string;
|
|
90
|
+
title?: undefined;
|
|
91
|
+
name?: undefined;
|
|
92
|
+
})[]) | undefined;
|
|
93
|
+
extra?: (() => any) | undefined;
|
|
94
|
+
};
|
|
95
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
96
|
+
path: "/comments/moderation";
|
|
97
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
98
|
+
};
|
|
99
|
+
userComments: {
|
|
100
|
+
(inputCtx_0?: _btst_yar.InputContext<"/comments", _btst_yar.RouteOptions> | undefined): {
|
|
101
|
+
PageComponent?: React.ComponentType<unknown> | undefined;
|
|
102
|
+
LoadingComponent?: React.ComponentType<unknown> | undefined;
|
|
103
|
+
ErrorComponent?: React.ComponentType<unknown> | undefined;
|
|
104
|
+
loader?: (() => Promise<void>) | undefined;
|
|
105
|
+
meta?: (() => ({
|
|
106
|
+
title: string;
|
|
107
|
+
name?: undefined;
|
|
108
|
+
content?: undefined;
|
|
109
|
+
property?: undefined;
|
|
110
|
+
} | {
|
|
111
|
+
name: string;
|
|
112
|
+
content: string;
|
|
113
|
+
title?: undefined;
|
|
114
|
+
property?: undefined;
|
|
115
|
+
} | {
|
|
116
|
+
property: string;
|
|
117
|
+
content: string;
|
|
118
|
+
title?: undefined;
|
|
119
|
+
name?: undefined;
|
|
120
|
+
})[]) | undefined;
|
|
121
|
+
extra?: (() => any) | undefined;
|
|
122
|
+
};
|
|
123
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
124
|
+
path: "/comments";
|
|
125
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
126
|
+
};
|
|
127
|
+
}>;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Context passed to lifecycle hooks
|
|
131
|
+
*/
|
|
132
|
+
interface RouteContext {
|
|
133
|
+
/** Current route path */
|
|
134
|
+
path: string;
|
|
135
|
+
/** Route parameters (e.g., { resourceId: "my-post", resourceType: "blog-post" }) */
|
|
136
|
+
params?: Record<string, string>;
|
|
137
|
+
/** Whether rendering on server (true) or client (false) */
|
|
138
|
+
isSSR: boolean;
|
|
139
|
+
/** Additional context properties */
|
|
140
|
+
[key: string]: unknown;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Overridable configuration and hooks for the Comments plugin.
|
|
145
|
+
*
|
|
146
|
+
* Provide these in the layout wrapping your pages via `PluginOverridesProvider`.
|
|
147
|
+
*/
|
|
148
|
+
interface CommentsPluginOverrides {
|
|
149
|
+
/**
|
|
150
|
+
* Localization strings for all Comments plugin UI.
|
|
151
|
+
* Defaults to English when not provided.
|
|
152
|
+
*/
|
|
153
|
+
localization?: Partial<CommentsLocalization>;
|
|
154
|
+
/**
|
|
155
|
+
* Base URL for API calls (e.g., "https://example.com")
|
|
156
|
+
*/
|
|
157
|
+
apiBaseURL: string;
|
|
158
|
+
/**
|
|
159
|
+
* Path where the API is mounted (e.g., "/api/data")
|
|
160
|
+
*/
|
|
161
|
+
apiBasePath: string;
|
|
162
|
+
/**
|
|
163
|
+
* Optional headers for authenticated API calls (e.g., forwarding cookies)
|
|
164
|
+
*/
|
|
165
|
+
headers?: Record<string, string>;
|
|
166
|
+
/**
|
|
167
|
+
* Whether to show the "Powered by BTST" attribution on plugin pages.
|
|
168
|
+
* Defaults to true.
|
|
169
|
+
*/
|
|
170
|
+
showAttribution?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* The ID of the currently authenticated user.
|
|
173
|
+
*
|
|
174
|
+
* Used by the User Comments page and the per-resource comments admin view to
|
|
175
|
+
* scope the comment list to the current user and to enable posting.
|
|
176
|
+
* Can be a static string or an async function (useful when the user ID must
|
|
177
|
+
* be resolved from a session cookie at render time).
|
|
178
|
+
*
|
|
179
|
+
* When absent both pages show a "Please log in" prompt.
|
|
180
|
+
*/
|
|
181
|
+
currentUserId?: string | (() => string | undefined | Promise<string | undefined>);
|
|
182
|
+
/**
|
|
183
|
+
* URL to redirect unauthenticated users to when they try to post a comment.
|
|
184
|
+
*
|
|
185
|
+
* Forwarded to every embedded `CommentThread` (including the one on the
|
|
186
|
+
* per-resource admin comments view). When absent no login link is shown.
|
|
187
|
+
*/
|
|
188
|
+
loginHref?: string;
|
|
189
|
+
/**
|
|
190
|
+
* Default number of top-level comments to load per page in `CommentThread`.
|
|
191
|
+
* Can be overridden per-instance via the `pageSize` prop.
|
|
192
|
+
* Defaults to 100 when not set.
|
|
193
|
+
*/
|
|
194
|
+
defaultCommentPageSize?: number;
|
|
195
|
+
/**
|
|
196
|
+
* When false, the comment form and reply buttons are hidden in all
|
|
197
|
+
* `CommentThread` instances. Users can still read existing comments.
|
|
198
|
+
* Defaults to true.
|
|
199
|
+
*
|
|
200
|
+
* Can be overridden per-instance via the `allowPosting` prop on `CommentThread`.
|
|
201
|
+
*/
|
|
202
|
+
allowPosting?: boolean;
|
|
203
|
+
/**
|
|
204
|
+
* When false, the edit button is hidden on all comment cards in all
|
|
205
|
+
* `CommentThread` instances.
|
|
206
|
+
* Defaults to true.
|
|
207
|
+
*
|
|
208
|
+
* Can be overridden per-instance via the `allowEditing` prop on `CommentThread`.
|
|
209
|
+
*/
|
|
210
|
+
allowEditing?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Per-resource-type URL builders used to link each comment back to its
|
|
213
|
+
* original resource on the User Comments page.
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* ```ts
|
|
217
|
+
* resourceLinks: {
|
|
218
|
+
* "blog-post": (slug) => `/pages/blog/${slug}`,
|
|
219
|
+
* "kanban-task": (id) => `/pages/kanban?task=${id}`,
|
|
220
|
+
* }
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* When a resource type has no entry the ID is shown as plain text.
|
|
224
|
+
*/
|
|
225
|
+
resourceLinks?: Record<string, (id: string) => string>;
|
|
226
|
+
/**
|
|
227
|
+
* Called before the moderation dashboard page is rendered.
|
|
228
|
+
* Return false to block rendering (e.g., redirect to login or show 403).
|
|
229
|
+
* @param context - Route context
|
|
230
|
+
*/
|
|
231
|
+
onBeforeModerationPageRendered?: (context: RouteContext) => boolean;
|
|
232
|
+
/**
|
|
233
|
+
* Called before the per-resource comments page is rendered.
|
|
234
|
+
* Return false to block rendering (e.g., for authorization).
|
|
235
|
+
* @param resourceType - The type of resource (e.g., "blog-post")
|
|
236
|
+
* @param resourceId - The ID of the resource
|
|
237
|
+
* @param context - Route context
|
|
238
|
+
*/
|
|
239
|
+
onBeforeResourceCommentsRendered?: (resourceType: string, resourceId: string, context: RouteContext) => boolean;
|
|
240
|
+
/**
|
|
241
|
+
* Called before the User Comments page is rendered.
|
|
242
|
+
* Throw to block rendering (e.g., when the user is not authenticated).
|
|
243
|
+
* @param context - Route context
|
|
244
|
+
*/
|
|
245
|
+
onBeforeUserCommentsPageRendered?: (context: RouteContext) => boolean | void;
|
|
246
|
+
/**
|
|
247
|
+
* Called when a route is rendered.
|
|
248
|
+
* @param routeName - Name of the route (e.g., 'moderation', 'resourceComments')
|
|
249
|
+
* @param context - Route context
|
|
250
|
+
*/
|
|
251
|
+
onRouteRender?: (routeName: string, context: RouteContext) => void | Promise<void>;
|
|
252
|
+
/**
|
|
253
|
+
* Called when a route encounters an error.
|
|
254
|
+
* @param routeName - Name of the route
|
|
255
|
+
* @param error - The error that occurred
|
|
256
|
+
* @param context - Route context
|
|
257
|
+
*/
|
|
258
|
+
onRouteError?: (routeName: string, error: Error, context: RouteContext) => void | Promise<void>;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export { CommentsLocalization, commentsClientPlugin };
|
|
262
|
+
export type { CommentsClientConfig, CommentsClientHooks, CommentsPluginOverrides, LoaderContext, RouteContext };
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as _btst_yar from '@btst/yar';
|
|
4
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
5
|
+
import { C as CommentsLocalization } from '../../../shared/stack.Ldfkr5b2.mjs';
|
|
6
|
+
export { a as COMMENTS_LOCALIZATION } from '../../../shared/stack.Ldfkr5b2.mjs';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Context passed to loader hooks
|
|
10
|
+
*/
|
|
11
|
+
interface LoaderContext {
|
|
12
|
+
/** Current route path */
|
|
13
|
+
path: string;
|
|
14
|
+
/** Route parameters */
|
|
15
|
+
params?: Record<string, string>;
|
|
16
|
+
/** Whether rendering on server (true) or client (false) */
|
|
17
|
+
isSSR: boolean;
|
|
18
|
+
/** Base URL for API calls */
|
|
19
|
+
apiBaseURL: string;
|
|
20
|
+
/** Path where the API is mounted */
|
|
21
|
+
apiBasePath: string;
|
|
22
|
+
/** Optional headers for the request */
|
|
23
|
+
headers?: Headers;
|
|
24
|
+
/** Additional context properties */
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Hooks for Comments client plugin
|
|
29
|
+
*/
|
|
30
|
+
interface CommentsClientHooks {
|
|
31
|
+
/**
|
|
32
|
+
* Called before loading the moderation page. Throw to cancel.
|
|
33
|
+
*/
|
|
34
|
+
beforeLoadModeration?: (context: LoaderContext) => Promise<void> | void;
|
|
35
|
+
/**
|
|
36
|
+
* Called before loading the User Comments page. Throw to cancel.
|
|
37
|
+
*/
|
|
38
|
+
beforeLoadUserComments?: (context: LoaderContext) => Promise<void> | void;
|
|
39
|
+
/**
|
|
40
|
+
* Called when a loading error occurs.
|
|
41
|
+
*/
|
|
42
|
+
onLoadError?: (error: Error, context: LoaderContext) => Promise<void> | void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Configuration for the Comments client plugin
|
|
46
|
+
*/
|
|
47
|
+
interface CommentsClientConfig {
|
|
48
|
+
/** Base URL for API calls (e.g., "http://localhost:3000") */
|
|
49
|
+
apiBaseURL: string;
|
|
50
|
+
/** Path where the API is mounted (e.g., "/api/data") */
|
|
51
|
+
apiBasePath: string;
|
|
52
|
+
/** Base URL of your site */
|
|
53
|
+
siteBaseURL: string;
|
|
54
|
+
/** Path where pages are mounted (e.g., "/pages") */
|
|
55
|
+
siteBasePath: string;
|
|
56
|
+
/** React Query client instance */
|
|
57
|
+
queryClient: QueryClient;
|
|
58
|
+
/** Optional headers for SSR */
|
|
59
|
+
headers?: Headers;
|
|
60
|
+
/** Optional lifecycle hooks */
|
|
61
|
+
hooks?: CommentsClientHooks;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Comments client plugin — registers admin moderation routes.
|
|
65
|
+
*
|
|
66
|
+
* The embeddable `CommentThread` and `CommentCount` components are standalone
|
|
67
|
+
* and do not require this plugin to be registered. Register them manually
|
|
68
|
+
* via the layout overrides pattern or use them directly in your pages.
|
|
69
|
+
*/
|
|
70
|
+
declare const commentsClientPlugin: (config: CommentsClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
|
|
71
|
+
moderation: {
|
|
72
|
+
(inputCtx_0?: _btst_yar.InputContext<"/comments/moderation", _btst_yar.RouteOptions> | undefined): {
|
|
73
|
+
PageComponent?: React.ComponentType<unknown> | undefined;
|
|
74
|
+
LoadingComponent?: React.ComponentType<unknown> | undefined;
|
|
75
|
+
ErrorComponent?: React.ComponentType<unknown> | undefined;
|
|
76
|
+
loader?: (() => Promise<void>) | undefined;
|
|
77
|
+
meta?: (() => ({
|
|
78
|
+
title: string;
|
|
79
|
+
name?: undefined;
|
|
80
|
+
content?: undefined;
|
|
81
|
+
property?: undefined;
|
|
82
|
+
} | {
|
|
83
|
+
name: string;
|
|
84
|
+
content: string;
|
|
85
|
+
title?: undefined;
|
|
86
|
+
property?: undefined;
|
|
87
|
+
} | {
|
|
88
|
+
property: string;
|
|
89
|
+
content: string;
|
|
90
|
+
title?: undefined;
|
|
91
|
+
name?: undefined;
|
|
92
|
+
})[]) | undefined;
|
|
93
|
+
extra?: (() => any) | undefined;
|
|
94
|
+
};
|
|
95
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
96
|
+
path: "/comments/moderation";
|
|
97
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
98
|
+
};
|
|
99
|
+
userComments: {
|
|
100
|
+
(inputCtx_0?: _btst_yar.InputContext<"/comments", _btst_yar.RouteOptions> | undefined): {
|
|
101
|
+
PageComponent?: React.ComponentType<unknown> | undefined;
|
|
102
|
+
LoadingComponent?: React.ComponentType<unknown> | undefined;
|
|
103
|
+
ErrorComponent?: React.ComponentType<unknown> | undefined;
|
|
104
|
+
loader?: (() => Promise<void>) | undefined;
|
|
105
|
+
meta?: (() => ({
|
|
106
|
+
title: string;
|
|
107
|
+
name?: undefined;
|
|
108
|
+
content?: undefined;
|
|
109
|
+
property?: undefined;
|
|
110
|
+
} | {
|
|
111
|
+
name: string;
|
|
112
|
+
content: string;
|
|
113
|
+
title?: undefined;
|
|
114
|
+
property?: undefined;
|
|
115
|
+
} | {
|
|
116
|
+
property: string;
|
|
117
|
+
content: string;
|
|
118
|
+
title?: undefined;
|
|
119
|
+
name?: undefined;
|
|
120
|
+
})[]) | undefined;
|
|
121
|
+
extra?: (() => any) | undefined;
|
|
122
|
+
};
|
|
123
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
124
|
+
path: "/comments";
|
|
125
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
126
|
+
};
|
|
127
|
+
}>;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Context passed to lifecycle hooks
|
|
131
|
+
*/
|
|
132
|
+
interface RouteContext {
|
|
133
|
+
/** Current route path */
|
|
134
|
+
path: string;
|
|
135
|
+
/** Route parameters (e.g., { resourceId: "my-post", resourceType: "blog-post" }) */
|
|
136
|
+
params?: Record<string, string>;
|
|
137
|
+
/** Whether rendering on server (true) or client (false) */
|
|
138
|
+
isSSR: boolean;
|
|
139
|
+
/** Additional context properties */
|
|
140
|
+
[key: string]: unknown;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Overridable configuration and hooks for the Comments plugin.
|
|
145
|
+
*
|
|
146
|
+
* Provide these in the layout wrapping your pages via `PluginOverridesProvider`.
|
|
147
|
+
*/
|
|
148
|
+
interface CommentsPluginOverrides {
|
|
149
|
+
/**
|
|
150
|
+
* Localization strings for all Comments plugin UI.
|
|
151
|
+
* Defaults to English when not provided.
|
|
152
|
+
*/
|
|
153
|
+
localization?: Partial<CommentsLocalization>;
|
|
154
|
+
/**
|
|
155
|
+
* Base URL for API calls (e.g., "https://example.com")
|
|
156
|
+
*/
|
|
157
|
+
apiBaseURL: string;
|
|
158
|
+
/**
|
|
159
|
+
* Path where the API is mounted (e.g., "/api/data")
|
|
160
|
+
*/
|
|
161
|
+
apiBasePath: string;
|
|
162
|
+
/**
|
|
163
|
+
* Optional headers for authenticated API calls (e.g., forwarding cookies)
|
|
164
|
+
*/
|
|
165
|
+
headers?: Record<string, string>;
|
|
166
|
+
/**
|
|
167
|
+
* Whether to show the "Powered by BTST" attribution on plugin pages.
|
|
168
|
+
* Defaults to true.
|
|
169
|
+
*/
|
|
170
|
+
showAttribution?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* The ID of the currently authenticated user.
|
|
173
|
+
*
|
|
174
|
+
* Used by the User Comments page and the per-resource comments admin view to
|
|
175
|
+
* scope the comment list to the current user and to enable posting.
|
|
176
|
+
* Can be a static string or an async function (useful when the user ID must
|
|
177
|
+
* be resolved from a session cookie at render time).
|
|
178
|
+
*
|
|
179
|
+
* When absent both pages show a "Please log in" prompt.
|
|
180
|
+
*/
|
|
181
|
+
currentUserId?: string | (() => string | undefined | Promise<string | undefined>);
|
|
182
|
+
/**
|
|
183
|
+
* URL to redirect unauthenticated users to when they try to post a comment.
|
|
184
|
+
*
|
|
185
|
+
* Forwarded to every embedded `CommentThread` (including the one on the
|
|
186
|
+
* per-resource admin comments view). When absent no login link is shown.
|
|
187
|
+
*/
|
|
188
|
+
loginHref?: string;
|
|
189
|
+
/**
|
|
190
|
+
* Default number of top-level comments to load per page in `CommentThread`.
|
|
191
|
+
* Can be overridden per-instance via the `pageSize` prop.
|
|
192
|
+
* Defaults to 100 when not set.
|
|
193
|
+
*/
|
|
194
|
+
defaultCommentPageSize?: number;
|
|
195
|
+
/**
|
|
196
|
+
* When false, the comment form and reply buttons are hidden in all
|
|
197
|
+
* `CommentThread` instances. Users can still read existing comments.
|
|
198
|
+
* Defaults to true.
|
|
199
|
+
*
|
|
200
|
+
* Can be overridden per-instance via the `allowPosting` prop on `CommentThread`.
|
|
201
|
+
*/
|
|
202
|
+
allowPosting?: boolean;
|
|
203
|
+
/**
|
|
204
|
+
* When false, the edit button is hidden on all comment cards in all
|
|
205
|
+
* `CommentThread` instances.
|
|
206
|
+
* Defaults to true.
|
|
207
|
+
*
|
|
208
|
+
* Can be overridden per-instance via the `allowEditing` prop on `CommentThread`.
|
|
209
|
+
*/
|
|
210
|
+
allowEditing?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Per-resource-type URL builders used to link each comment back to its
|
|
213
|
+
* original resource on the User Comments page.
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
* ```ts
|
|
217
|
+
* resourceLinks: {
|
|
218
|
+
* "blog-post": (slug) => `/pages/blog/${slug}`,
|
|
219
|
+
* "kanban-task": (id) => `/pages/kanban?task=${id}`,
|
|
220
|
+
* }
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* When a resource type has no entry the ID is shown as plain text.
|
|
224
|
+
*/
|
|
225
|
+
resourceLinks?: Record<string, (id: string) => string>;
|
|
226
|
+
/**
|
|
227
|
+
* Called before the moderation dashboard page is rendered.
|
|
228
|
+
* Return false to block rendering (e.g., redirect to login or show 403).
|
|
229
|
+
* @param context - Route context
|
|
230
|
+
*/
|
|
231
|
+
onBeforeModerationPageRendered?: (context: RouteContext) => boolean;
|
|
232
|
+
/**
|
|
233
|
+
* Called before the per-resource comments page is rendered.
|
|
234
|
+
* Return false to block rendering (e.g., for authorization).
|
|
235
|
+
* @param resourceType - The type of resource (e.g., "blog-post")
|
|
236
|
+
* @param resourceId - The ID of the resource
|
|
237
|
+
* @param context - Route context
|
|
238
|
+
*/
|
|
239
|
+
onBeforeResourceCommentsRendered?: (resourceType: string, resourceId: string, context: RouteContext) => boolean;
|
|
240
|
+
/**
|
|
241
|
+
* Called before the User Comments page is rendered.
|
|
242
|
+
* Throw to block rendering (e.g., when the user is not authenticated).
|
|
243
|
+
* @param context - Route context
|
|
244
|
+
*/
|
|
245
|
+
onBeforeUserCommentsPageRendered?: (context: RouteContext) => boolean | void;
|
|
246
|
+
/**
|
|
247
|
+
* Called when a route is rendered.
|
|
248
|
+
* @param routeName - Name of the route (e.g., 'moderation', 'resourceComments')
|
|
249
|
+
* @param context - Route context
|
|
250
|
+
*/
|
|
251
|
+
onRouteRender?: (routeName: string, context: RouteContext) => void | Promise<void>;
|
|
252
|
+
/**
|
|
253
|
+
* Called when a route encounters an error.
|
|
254
|
+
* @param routeName - Name of the route
|
|
255
|
+
* @param error - The error that occurred
|
|
256
|
+
* @param context - Route context
|
|
257
|
+
*/
|
|
258
|
+
onRouteError?: (routeName: string, error: Error, context: RouteContext) => void | Promise<void>;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
export { CommentsLocalization, commentsClientPlugin };
|
|
262
|
+
export type { CommentsClientConfig, CommentsClientHooks, CommentsPluginOverrides, LoaderContext, RouteContext };
|