@btst/stack 4.5.0 → 4.6.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.
Files changed (99) hide show
  1. package/README.md +2 -2
  2. package/dist/components/markdown/index.d.cts +4 -2
  3. package/dist/components/markdown/index.d.mts +4 -2
  4. package/dist/components/markdown/index.d.ts +4 -2
  5. package/dist/packages/stack/src/plugins/ai-chat/api/compaction.cjs +102 -15
  6. package/dist/packages/stack/src/plugins/ai-chat/api/compaction.mjs +102 -15
  7. package/dist/packages/stack/src/plugins/ai-chat/api/operations.cjs +8 -4
  8. package/dist/packages/stack/src/plugins/ai-chat/api/operations.mjs +8 -4
  9. package/dist/packages/stack/src/plugins/ai-chat/api/plugin.cjs +5 -0
  10. package/dist/packages/stack/src/plugins/ai-chat/api/plugin.mjs +5 -0
  11. package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-input.cjs +3 -2
  12. package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-input.mjs +3 -2
  13. package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-interface.cjs +0 -1
  14. package/dist/packages/stack/src/plugins/ai-chat/client/components/chat-interface.mjs +0 -1
  15. package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.internal.cjs +7 -1
  16. package/dist/packages/stack/src/plugins/blog/client/components/pages/post-page.internal.mjs +7 -1
  17. package/dist/packages/stack/src/plugins/blog/client/components/shared/markdown-content.cjs +6 -1
  18. package/dist/packages/stack/src/plugins/blog/client/components/shared/markdown-content.mjs +6 -1
  19. package/dist/packages/ui/src/components/markdown-content.cjs +23 -3
  20. package/dist/packages/ui/src/components/markdown-content.mjs +25 -5
  21. package/dist/plugins/ai-chat/api/index.d.cts +2 -2
  22. package/dist/plugins/ai-chat/api/index.d.mts +2 -2
  23. package/dist/plugins/ai-chat/api/index.d.ts +2 -2
  24. package/dist/plugins/ai-chat/client/hooks/index.d.cts +2 -2
  25. package/dist/plugins/ai-chat/client/hooks/index.d.mts +2 -2
  26. package/dist/plugins/ai-chat/client/hooks/index.d.ts +2 -2
  27. package/dist/plugins/ai-chat/client/index.d.cts +1 -1
  28. package/dist/plugins/ai-chat/client/index.d.mts +1 -1
  29. package/dist/plugins/ai-chat/client/index.d.ts +1 -1
  30. package/dist/plugins/ai-chat/query-keys.d.cts +1 -1
  31. package/dist/plugins/ai-chat/query-keys.d.mts +1 -1
  32. package/dist/plugins/ai-chat/query-keys.d.ts +1 -1
  33. package/dist/plugins/blog/api/index.d.cts +2 -2
  34. package/dist/plugins/blog/api/index.d.mts +2 -2
  35. package/dist/plugins/blog/api/index.d.ts +2 -2
  36. package/dist/plugins/blog/client/hooks/index.d.cts +2 -2
  37. package/dist/plugins/blog/client/hooks/index.d.mts +2 -2
  38. package/dist/plugins/blog/client/hooks/index.d.ts +2 -2
  39. package/dist/plugins/blog/client/index.d.cts +4 -2
  40. package/dist/plugins/blog/client/index.d.mts +4 -2
  41. package/dist/plugins/blog/client/index.d.ts +4 -2
  42. package/dist/plugins/blog/query-keys.d.cts +2 -2
  43. package/dist/plugins/blog/query-keys.d.mts +2 -2
  44. package/dist/plugins/blog/query-keys.d.ts +2 -2
  45. package/dist/plugins/cms/api/index.d.cts +1 -1
  46. package/dist/plugins/cms/api/index.d.mts +1 -1
  47. package/dist/plugins/cms/api/index.d.ts +1 -1
  48. package/dist/plugins/cms/query-keys.d.cts +1 -1
  49. package/dist/plugins/cms/query-keys.d.mts +1 -1
  50. package/dist/plugins/cms/query-keys.d.ts +1 -1
  51. package/dist/plugins/form-builder/api/index.d.cts +1 -1
  52. package/dist/plugins/form-builder/api/index.d.mts +1 -1
  53. package/dist/plugins/form-builder/api/index.d.ts +1 -1
  54. package/dist/plugins/form-builder/client/hooks/index.d.cts +1 -1
  55. package/dist/plugins/form-builder/client/hooks/index.d.mts +1 -1
  56. package/dist/plugins/form-builder/client/hooks/index.d.ts +1 -1
  57. package/dist/plugins/form-builder/query-keys.d.cts +1 -1
  58. package/dist/plugins/form-builder/query-keys.d.mts +1 -1
  59. package/dist/plugins/form-builder/query-keys.d.ts +1 -1
  60. package/dist/plugins/ui-builder/client/hooks/index.d.cts +1 -1
  61. package/dist/plugins/ui-builder/client/hooks/index.d.mts +1 -1
  62. package/dist/plugins/ui-builder/client/hooks/index.d.ts +1 -1
  63. package/dist/plugins/ui-builder/client/index.d.cts +1 -1
  64. package/dist/plugins/ui-builder/client/index.d.mts +1 -1
  65. package/dist/plugins/ui-builder/client/index.d.ts +1 -1
  66. package/dist/plugins/ui-builder/query-keys.d.cts +1 -1
  67. package/dist/plugins/ui-builder/query-keys.d.mts +1 -1
  68. package/dist/plugins/ui-builder/query-keys.d.ts +1 -1
  69. package/dist/shared/{stack.BTStHVTy.d.cts → stack.BGzgFx3R.d.cts} +5 -5
  70. package/dist/shared/{stack.CtrnoQgH.d.cts → stack.BOZRaVpu.d.cts} +35 -35
  71. package/dist/shared/{stack.94kN3pEK.d.mts → stack.CjCSDfWy.d.mts} +5 -5
  72. package/dist/shared/{stack.B2EYZyh_.d.ts → stack.DDQTbADz.d.ts} +4 -2
  73. package/dist/shared/{stack.lPKwd_v0.d.ts → stack.DlBoNqYu.d.ts} +35 -35
  74. package/dist/shared/{stack.DfrRYOIl.d.ts → stack.Dpg_JjIo.d.ts} +5 -5
  75. package/dist/shared/{stack.BggTHKlo.d.mts → stack.Dvy7FmaA.d.mts} +35 -35
  76. package/dist/shared/{stack.fF273jws.d.cts → stack.IY-ngxuw.d.cts} +4 -2
  77. package/dist/shared/{stack.DivuAnNI.d.mts → stack.mU9iMF2j.d.mts} +4 -2
  78. package/package.json +1 -1
  79. package/src/plugins/ai-chat/__tests__/chat-input-authorization.test.tsx +42 -0
  80. package/src/plugins/ai-chat/__tests__/compaction.test.ts +79 -19
  81. package/src/plugins/ai-chat/__tests__/persisted-compaction.test.ts +129 -0
  82. package/src/plugins/ai-chat/api/compaction.ts +137 -13
  83. package/src/plugins/ai-chat/api/operations.ts +18 -4
  84. package/src/plugins/ai-chat/api/plugin.ts +10 -1
  85. package/src/plugins/ai-chat/client/components/chat-input.tsx +3 -3
  86. package/src/plugins/ai-chat/client/components/chat-interface.tsx +0 -1
  87. package/src/plugins/blog/__tests__/introduction-slot.test.tsx +86 -0
  88. package/src/plugins/blog/client/components/pages/post-page.internal.tsx +4 -1
  89. package/src/plugins/blog/client/components/shared/markdown-content.tsx +8 -1
  90. package/src/plugins/blog/client/overrides.ts +3 -0
  91. package/dist/shared/{stack.CyalJ0j6.d.ts → stack.BMlTZnZp.d.ts} +16 -16
  92. package/dist/shared/{stack.D6Pg-ufX.d.cts → stack.BV0uNV4f.d.cts} +16 -16
  93. package/dist/shared/{stack.BuxUQqL8.d.ts → stack.CGmh-Lpe.d.ts} +12 -12
  94. package/dist/shared/{stack.CKc_Bais.d.cts → stack.Csi-4Mgz.d.cts} +7 -7
  95. package/dist/shared/{stack.CKc_Bais.d.mts → stack.Csi-4Mgz.d.mts} +7 -7
  96. package/dist/shared/{stack.CKc_Bais.d.ts → stack.Csi-4Mgz.d.ts} +7 -7
  97. package/dist/shared/{stack.Egr3RWhA.d.mts → stack.Doy2_wgl.d.mts} +12 -12
  98. package/dist/shared/{stack.B8PG21zX.d.mts → stack.lsbdKRj7.d.mts} +16 -16
  99. package/dist/shared/{stack.CX83YNuS.d.cts → stack.zch70Loj.d.cts} +12 -12
@@ -7,7 +7,11 @@ const context = require('@btst/stack/context');
7
7
  const defaults = require('./defaults.cjs');
8
8
  require('highlight.js/styles/panda-syntax-light.css');
9
9
 
10
- function MarkdownContent({ markdown, className }) {
10
+ function MarkdownContent({
11
+ markdown,
12
+ className,
13
+ afterFirstParagraph
14
+ }) {
11
15
  const { router } = context.useStack();
12
16
  const Link = router?.Link ?? defaults.DefaultLink;
13
17
  const Image = router?.Image ?? defaults.DefaultImage;
@@ -15,6 +19,7 @@ function MarkdownContent({ markdown, className }) {
15
19
  markdownContent.MarkdownContent,
16
20
  {
17
21
  markdown,
22
+ afterFirstParagraph,
18
23
  className,
19
24
  variant: "default",
20
25
  LinkComponent: Link,
@@ -5,7 +5,11 @@ import { useStack } from '@btst/stack/context';
5
5
  import { DefaultLink, DefaultImage } from './defaults.mjs';
6
6
  import 'highlight.js/styles/panda-syntax-light.css';
7
7
 
8
- function MarkdownContent({ markdown, className }) {
8
+ function MarkdownContent({
9
+ markdown,
10
+ className,
11
+ afterFirstParagraph
12
+ }) {
9
13
  const { router } = useStack();
10
14
  const Link = router?.Link ?? DefaultLink;
11
15
  const Image = router?.Image ?? DefaultImage;
@@ -13,6 +17,7 @@ function MarkdownContent({ markdown, className }) {
13
17
  MarkdownContent$1,
14
18
  {
15
19
  markdown,
20
+ afterFirstParagraph,
16
21
  className,
17
22
  variant: "default",
18
23
  LinkComponent: Link,
@@ -17,6 +17,18 @@ const rehypeHighlight__default = /*#__PURE__*/_interopDefaultCompat(rehypeHighli
17
17
  const rehypeRaw__default = /*#__PURE__*/_interopDefaultCompat(rehypeRaw);
18
18
  const remarkGfm__default = /*#__PURE__*/_interopDefaultCompat(remarkGfm);
19
19
 
20
+ const IntroductionSlotContext = React.createContext(null);
21
+ function ParagraphRenderer({
22
+ node,
23
+ children,
24
+ ...props
25
+ }) {
26
+ const slot = React.useContext(IntroductionSlotContext);
27
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
28
+ /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, children }),
29
+ node?.data && "btstIntroduction" in node.data && node.data.btstIntroduction === true ? slot : null
30
+ ] });
31
+ }
20
32
  const DefaultLink = (props) => {
21
33
  return /* @__PURE__ */ jsxRuntime.jsx("a", { ...props });
22
34
  };
@@ -173,8 +185,15 @@ function PreRenderer(props) {
173
185
  }
174
186
  );
175
187
  }
188
+ function markIntroduction() {
189
+ return (tree) => {
190
+ const paragraph = tree.children.find((node) => node.type === "element" && node.tagName === "p");
191
+ if (paragraph) paragraph.data = { ...paragraph.data, btstIntroduction: true };
192
+ };
193
+ }
176
194
  function MarkdownContent({
177
195
  markdown,
196
+ afterFirstParagraph,
178
197
  className,
179
198
  variant = "default",
180
199
  LinkComponent = DefaultLink,
@@ -264,6 +283,7 @@ function MarkdownContent({
264
283
  }, [ImageComponent]);
265
284
  const components = React.useMemo(() => {
266
285
  return {
286
+ p: ParagraphRenderer,
267
287
  a: AnchorRenderer,
268
288
  img: ImgRenderer,
269
289
  span: ({ node: _node, className: className2, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -293,14 +313,14 @@ function MarkdownContent({
293
313
  return plugins;
294
314
  }, [hasMath, mathPlugins]);
295
315
  const rehypePlugins = React.useMemo(() => {
296
- const plugins = [rehypeRaw__default, rehypeHighlight__default];
316
+ const plugins = [rehypeRaw__default, rehypeHighlight__default, markIntroduction];
297
317
  if (hasMath && mathPlugins?.rehypeKatex) {
298
318
  plugins.push(mathPlugins.rehypeKatex);
299
319
  }
300
320
  return plugins;
301
321
  }, [hasMath, mathPlugins]);
302
322
  const variantClass = variant === "chat" ? "markdown-content-chat" : "";
303
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("markdown-content", variantClass, className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "markdown-inner", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "markdown-body", children: /* @__PURE__ */ jsxRuntime.jsx(
323
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("markdown-content", variantClass, className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "markdown-inner", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "markdown-body", children: /* @__PURE__ */ jsxRuntime.jsx(IntroductionSlotContext.Provider, { value: afterFirstParagraph, children: /* @__PURE__ */ jsxRuntime.jsx(
304
324
  ReactMarkdown__default,
305
325
  {
306
326
  remarkPlugins,
@@ -308,7 +328,7 @@ function MarkdownContent({
308
328
  components,
309
329
  children: markdown
310
330
  }
311
- ) }) }) });
331
+ ) }) }) }) });
312
332
  }
313
333
 
314
334
  exports.MarkdownContent = MarkdownContent;
@@ -1,13 +1,25 @@
1
1
  "use client";
2
- import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import { cn } from '../lib/utils.mjs';
4
- import { useState, useMemo, useEffect, createElement, isValidElement, useRef } from 'react';
4
+ import { createContext, useState, useMemo, useEffect, createElement, isValidElement, useRef, useContext } from 'react';
5
5
  import ReactMarkdown from 'react-markdown';
6
6
  import rehypeHighlight from 'rehype-highlight';
7
7
  import rehypeRaw from 'rehype-raw';
8
8
  import remarkGfm from 'remark-gfm';
9
9
  import { CheckIcon, CopyIcon } from 'lucide-react';
10
10
 
11
+ const IntroductionSlotContext = createContext(null);
12
+ function ParagraphRenderer({
13
+ node,
14
+ children,
15
+ ...props
16
+ }) {
17
+ const slot = useContext(IntroductionSlotContext);
18
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
19
+ /* @__PURE__ */ jsx("p", { ...props, children }),
20
+ node?.data && "btstIntroduction" in node.data && node.data.btstIntroduction === true ? slot : null
21
+ ] });
22
+ }
11
23
  const DefaultLink = (props) => {
12
24
  return /* @__PURE__ */ jsx("a", { ...props });
13
25
  };
@@ -164,8 +176,15 @@ function PreRenderer(props) {
164
176
  }
165
177
  );
166
178
  }
179
+ function markIntroduction() {
180
+ return (tree) => {
181
+ const paragraph = tree.children.find((node) => node.type === "element" && node.tagName === "p");
182
+ if (paragraph) paragraph.data = { ...paragraph.data, btstIntroduction: true };
183
+ };
184
+ }
167
185
  function MarkdownContent({
168
186
  markdown,
187
+ afterFirstParagraph,
169
188
  className,
170
189
  variant = "default",
171
190
  LinkComponent = DefaultLink,
@@ -255,6 +274,7 @@ function MarkdownContent({
255
274
  }, [ImageComponent]);
256
275
  const components = useMemo(() => {
257
276
  return {
277
+ p: ParagraphRenderer,
258
278
  a: AnchorRenderer,
259
279
  img: ImgRenderer,
260
280
  span: ({ node: _node, className: className2, ...props }) => /* @__PURE__ */ jsx(
@@ -284,14 +304,14 @@ function MarkdownContent({
284
304
  return plugins;
285
305
  }, [hasMath, mathPlugins]);
286
306
  const rehypePlugins = useMemo(() => {
287
- const plugins = [rehypeRaw, rehypeHighlight];
307
+ const plugins = [rehypeRaw, rehypeHighlight, markIntroduction];
288
308
  if (hasMath && mathPlugins?.rehypeKatex) {
289
309
  plugins.push(mathPlugins.rehypeKatex);
290
310
  }
291
311
  return plugins;
292
312
  }, [hasMath, mathPlugins]);
293
313
  const variantClass = variant === "chat" ? "markdown-content-chat" : "";
294
- return /* @__PURE__ */ jsx("div", { className: cn("markdown-content", variantClass, className), children: /* @__PURE__ */ jsx("div", { className: "markdown-inner", children: /* @__PURE__ */ jsx("div", { className: "markdown-body", children: /* @__PURE__ */ jsx(
314
+ return /* @__PURE__ */ jsx("div", { className: cn("markdown-content", variantClass, className), children: /* @__PURE__ */ jsx("div", { className: "markdown-inner", children: /* @__PURE__ */ jsx("div", { className: "markdown-body", children: /* @__PURE__ */ jsx(IntroductionSlotContext.Provider, { value: afterFirstParagraph, children: /* @__PURE__ */ jsx(
295
315
  ReactMarkdown,
296
316
  {
297
317
  remarkPlugins,
@@ -299,7 +319,7 @@ function MarkdownContent({
299
319
  components,
300
320
  children: markdown
301
321
  }
302
- ) }) }) });
322
+ ) }) }) }) });
303
323
  }
304
324
 
305
325
  export { MarkdownContent };
@@ -1,5 +1,5 @@
1
- import { c as Conversation, M as Message } from '../../../shared/stack.fF273jws.cjs';
2
- export { p as AI_CHAT_OPERATION_INVENTORY, q as AI_CHAT_RAW_ESCAPE_HATCH_INVENTORY, m as AiChatAccess, j as AiChatApiRouter, h as AiChatBackendConfig, n as AiChatBackendHooks, k as AiChatCompactionConfig, A as AiChatIdentityPartition, r as AiChatOperationError, l as AiChatPageContentConfig, g as AiChatQueryKeys, o as ChatApiContext, s as ChatOperationInputSchema, t as ConversationOperationInputSchema, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, U as UpdateConversationOperationInputSchema, i as aiChatBackendPlugin, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../../shared/stack.fF273jws.cjs';
1
+ import { c as Conversation, M as Message } from '../../../shared/stack.IY-ngxuw.cjs';
2
+ export { p as AI_CHAT_OPERATION_INVENTORY, q as AI_CHAT_RAW_ESCAPE_HATCH_INVENTORY, m as AiChatAccess, j as AiChatApiRouter, h as AiChatBackendConfig, n as AiChatBackendHooks, k as AiChatCompactionConfig, A as AiChatIdentityPartition, r as AiChatOperationError, l as AiChatPageContentConfig, g as AiChatQueryKeys, o as ChatApiContext, s as ChatOperationInputSchema, t as ConversationOperationInputSchema, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, U as UpdateConversationOperationInputSchema, i as aiChatBackendPlugin, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../../shared/stack.IY-ngxuw.cjs';
3
3
  import { DBAdapter } from '@btst/db';
4
4
  import '@btst/stack/plugins/client';
5
5
  import '@btst/stack/plugins/api';
@@ -1,5 +1,5 @@
1
- import { c as Conversation, M as Message } from '../../../shared/stack.DivuAnNI.mjs';
2
- export { p as AI_CHAT_OPERATION_INVENTORY, q as AI_CHAT_RAW_ESCAPE_HATCH_INVENTORY, m as AiChatAccess, j as AiChatApiRouter, h as AiChatBackendConfig, n as AiChatBackendHooks, k as AiChatCompactionConfig, A as AiChatIdentityPartition, r as AiChatOperationError, l as AiChatPageContentConfig, g as AiChatQueryKeys, o as ChatApiContext, s as ChatOperationInputSchema, t as ConversationOperationInputSchema, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, U as UpdateConversationOperationInputSchema, i as aiChatBackendPlugin, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../../shared/stack.DivuAnNI.mjs';
1
+ import { c as Conversation, M as Message } from '../../../shared/stack.mU9iMF2j.mjs';
2
+ export { p as AI_CHAT_OPERATION_INVENTORY, q as AI_CHAT_RAW_ESCAPE_HATCH_INVENTORY, m as AiChatAccess, j as AiChatApiRouter, h as AiChatBackendConfig, n as AiChatBackendHooks, k as AiChatCompactionConfig, A as AiChatIdentityPartition, r as AiChatOperationError, l as AiChatPageContentConfig, g as AiChatQueryKeys, o as ChatApiContext, s as ChatOperationInputSchema, t as ConversationOperationInputSchema, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, U as UpdateConversationOperationInputSchema, i as aiChatBackendPlugin, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../../shared/stack.mU9iMF2j.mjs';
3
3
  import { DBAdapter } from '@btst/db';
4
4
  import '@btst/stack/plugins/client';
5
5
  import '@btst/stack/plugins/api';
@@ -1,5 +1,5 @@
1
- import { c as Conversation, M as Message } from '../../../shared/stack.B2EYZyh_.js';
2
- export { p as AI_CHAT_OPERATION_INVENTORY, q as AI_CHAT_RAW_ESCAPE_HATCH_INVENTORY, m as AiChatAccess, j as AiChatApiRouter, h as AiChatBackendConfig, n as AiChatBackendHooks, k as AiChatCompactionConfig, A as AiChatIdentityPartition, r as AiChatOperationError, l as AiChatPageContentConfig, g as AiChatQueryKeys, o as ChatApiContext, s as ChatOperationInputSchema, t as ConversationOperationInputSchema, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, U as UpdateConversationOperationInputSchema, i as aiChatBackendPlugin, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../../shared/stack.B2EYZyh_.js';
1
+ import { c as Conversation, M as Message } from '../../../shared/stack.DDQTbADz.js';
2
+ export { p as AI_CHAT_OPERATION_INVENTORY, q as AI_CHAT_RAW_ESCAPE_HATCH_INVENTORY, m as AiChatAccess, j as AiChatApiRouter, h as AiChatBackendConfig, n as AiChatBackendHooks, k as AiChatCompactionConfig, A as AiChatIdentityPartition, r as AiChatOperationError, l as AiChatPageContentConfig, g as AiChatQueryKeys, o as ChatApiContext, s as ChatOperationInputSchema, t as ConversationOperationInputSchema, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, U as UpdateConversationOperationInputSchema, i as aiChatBackendPlugin, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../../shared/stack.DDQTbADz.js';
3
3
  import { DBAdapter } from '@btst/db';
4
4
  import '@btst/stack/plugins/client';
5
5
  import '@btst/stack/plugins/api';
@@ -1,7 +1,7 @@
1
1
  import { UseMutationResult } from '@tanstack/react-query';
2
2
  import { ResourceFormResult } from '@btst/stack/plugins/client/hooks';
3
- import { A as AiChatIdentityPartition, S as SerializedConversation, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput } from '../../../../shared/stack.fF273jws.cjs';
4
- export { a as SerializedMessage } from '../../../../shared/stack.fF273jws.cjs';
3
+ import { A as AiChatIdentityPartition, S as SerializedConversation, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput } from '../../../../shared/stack.IY-ngxuw.cjs';
4
+ export { a as SerializedMessage } from '../../../../shared/stack.IY-ngxuw.cjs';
5
5
  import '@btst/stack/plugins/client';
6
6
  import '@btst/stack/plugins/api';
7
7
  import '@btst/stack/authorization';
@@ -1,7 +1,7 @@
1
1
  import { UseMutationResult } from '@tanstack/react-query';
2
2
  import { ResourceFormResult } from '@btst/stack/plugins/client/hooks';
3
- import { A as AiChatIdentityPartition, S as SerializedConversation, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput } from '../../../../shared/stack.DivuAnNI.mjs';
4
- export { a as SerializedMessage } from '../../../../shared/stack.DivuAnNI.mjs';
3
+ import { A as AiChatIdentityPartition, S as SerializedConversation, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput } from '../../../../shared/stack.mU9iMF2j.mjs';
4
+ export { a as SerializedMessage } from '../../../../shared/stack.mU9iMF2j.mjs';
5
5
  import '@btst/stack/plugins/client';
6
6
  import '@btst/stack/plugins/api';
7
7
  import '@btst/stack/authorization';
@@ -1,7 +1,7 @@
1
1
  import { UseMutationResult } from '@tanstack/react-query';
2
2
  import { ResourceFormResult } from '@btst/stack/plugins/client/hooks';
3
- import { A as AiChatIdentityPartition, S as SerializedConversation, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput } from '../../../../shared/stack.B2EYZyh_.js';
4
- export { a as SerializedMessage } from '../../../../shared/stack.B2EYZyh_.js';
3
+ import { A as AiChatIdentityPartition, S as SerializedConversation, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput } from '../../../../shared/stack.DDQTbADz.js';
4
+ export { a as SerializedMessage } from '../../../../shared/stack.DDQTbADz.js';
5
5
  import '@btst/stack/plugins/client';
6
6
  import '@btst/stack/plugins/api';
7
7
  import '@btst/stack/authorization';
@@ -2,7 +2,7 @@ import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
2
  import * as _btst_yar from '@btst/yar';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ComponentType } from 'react';
5
- import { S as SerializedConversation, a as SerializedMessage, A as AiChatIdentityPartition } from '../../../shared/stack.fF273jws.cjs';
5
+ import { S as SerializedConversation, a as SerializedMessage, A as AiChatIdentityPartition } from '../../../shared/stack.IY-ngxuw.cjs';
6
6
  import { A as AiChatMode, a as AiChatPluginOverrides } from '../../../shared/stack.Cei2T2gc.cjs';
7
7
  export { l as AiChatAnalyticsEvent, b as AiChatProviderConfig, c as AllowedFileType, j as ChatInput, C as ChatInterface, f as ChatLayout, g as ChatLayoutProps, i as ChatMessage, h as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, k as ToolCallDisplay, T as ToolCallProps, e as ToolCallRenderer, d as ToolCallState } from '../../../shared/stack.Cei2T2gc.cjs';
8
8
  export { UIMessage } from 'ai';
@@ -2,7 +2,7 @@ import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
2
  import * as _btst_yar from '@btst/yar';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ComponentType } from 'react';
5
- import { S as SerializedConversation, a as SerializedMessage, A as AiChatIdentityPartition } from '../../../shared/stack.DivuAnNI.mjs';
5
+ import { S as SerializedConversation, a as SerializedMessage, A as AiChatIdentityPartition } from '../../../shared/stack.mU9iMF2j.mjs';
6
6
  import { A as AiChatMode, a as AiChatPluginOverrides } from '../../../shared/stack.DZRZAzcx.mjs';
7
7
  export { l as AiChatAnalyticsEvent, b as AiChatProviderConfig, c as AllowedFileType, j as ChatInput, C as ChatInterface, f as ChatLayout, g as ChatLayoutProps, i as ChatMessage, h as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, k as ToolCallDisplay, T as ToolCallProps, e as ToolCallRenderer, d as ToolCallState } from '../../../shared/stack.DZRZAzcx.mjs';
8
8
  export { UIMessage } from 'ai';
@@ -2,7 +2,7 @@ import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
2
  import * as _btst_yar from '@btst/yar';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ComponentType } from 'react';
5
- import { S as SerializedConversation, a as SerializedMessage, A as AiChatIdentityPartition } from '../../../shared/stack.B2EYZyh_.js';
5
+ import { S as SerializedConversation, a as SerializedMessage, A as AiChatIdentityPartition } from '../../../shared/stack.DDQTbADz.js';
6
6
  import { A as AiChatMode, a as AiChatPluginOverrides } from '../../../shared/stack.byjorQi5.js';
7
7
  export { l as AiChatAnalyticsEvent, b as AiChatProviderConfig, c as AllowedFileType, j as ChatInput, C as ChatInterface, f as ChatLayout, g as ChatLayoutProps, i as ChatMessage, h as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, k as ToolCallDisplay, T as ToolCallProps, e as ToolCallRenderer, d as ToolCallState } from '../../../shared/stack.byjorQi5.js';
8
8
  export { UIMessage } from 'ai';
@@ -1,5 +1,5 @@
1
1
  import '@btst/stack/plugins/client';
2
- export { A as AiChatIdentityPartition, g as AiChatQueryKeys, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../shared/stack.fF273jws.cjs';
2
+ export { A as AiChatIdentityPartition, g as AiChatQueryKeys, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../shared/stack.IY-ngxuw.cjs';
3
3
  import '@btst/stack/context';
4
4
  import '@btst/stack/plugins/api';
5
5
  import '@btst/stack/authorization';
@@ -1,5 +1,5 @@
1
1
  import '@btst/stack/plugins/client';
2
- export { A as AiChatIdentityPartition, g as AiChatQueryKeys, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../shared/stack.DivuAnNI.mjs';
2
+ export { A as AiChatIdentityPartition, g as AiChatQueryKeys, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../shared/stack.mU9iMF2j.mjs';
3
3
  import '@btst/stack/context';
4
4
  import '@btst/stack/plugins/api';
5
5
  import '@btst/stack/authorization';
@@ -1,5 +1,5 @@
1
1
  import '@btst/stack/plugins/client';
2
- export { A as AiChatIdentityPartition, g as AiChatQueryKeys, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../shared/stack.B2EYZyh_.js';
2
+ export { A as AiChatIdentityPartition, g as AiChatQueryKeys, C as ConversationWithMessages, b as CreateConversationInput, R as RenameConversationInput, d as aiChatIdentityKey, e as aiChatResources, f as createAiChatQueryKeys } from '../../shared/stack.DDQTbADz.js';
3
3
  import '@btst/stack/context';
4
4
  import '@btst/stack/plugins/api';
5
5
  import '@btst/stack/authorization';
@@ -1,10 +1,10 @@
1
- export { B as BLOG_QUERY_KEYS, i as BlogApiRouter, k as BlogBackendHooks, f as BlogBackendOptions, l as BlogCreateErrorContext, m as BlogCreateOperationContext, n as BlogCreateResultContext, o as BlogDeleteErrorContext, p as BlogDeleteOperationContext, q as BlogDeleteResultContext, r as BlogListErrorContext, s as BlogListOperationContext, t as BlogListResultContext, u as BlogNextPreviousErrorContext, v as BlogNextPreviousOperationContext, w as BlogNextPreviousResultContext, e as BlogRouteKey, x as BlogUpdateErrorContext, y as BlogUpdateOperationContext, z as BlogUpdateResultContext, C as CreatePostOperationInputSchema, N as NextPreviousPostsQuerySchema, P as PostListParams, j as PostListQuerySchema, c as PostListResult, S as SerializedNextPreviousPostsResult, A as SerializedPostListResult, U as UpdatePostOperationInputSchema, h as blogBackendPlugin, d as createBlogQueryKeys, g as getAllPosts, b as getAllTags, a as getPostBySlug } from '../../../shared/stack.CtrnoQgH.cjs';
1
+ export { B as BLOG_QUERY_KEYS, i as BlogApiRouter, k as BlogBackendHooks, f as BlogBackendOptions, l as BlogCreateErrorContext, m as BlogCreateOperationContext, n as BlogCreateResultContext, o as BlogDeleteErrorContext, p as BlogDeleteOperationContext, q as BlogDeleteResultContext, r as BlogListErrorContext, s as BlogListOperationContext, t as BlogListResultContext, u as BlogNextPreviousErrorContext, v as BlogNextPreviousOperationContext, w as BlogNextPreviousResultContext, e as BlogRouteKey, x as BlogUpdateErrorContext, y as BlogUpdateOperationContext, z as BlogUpdateResultContext, C as CreatePostOperationInputSchema, N as NextPreviousPostsQuerySchema, P as PostListParams, j as PostListQuerySchema, c as PostListResult, S as SerializedNextPreviousPostsResult, A as SerializedPostListResult, U as UpdatePostOperationInputSchema, h as blogBackendPlugin, d as createBlogQueryKeys, g as getAllPosts, b as getAllTags, a as getPostBySlug } from '../../../shared/stack.BOZRaVpu.cjs';
2
2
  import { DBAdapter } from '@btst/db';
3
3
  import { P as Post, T as Tag, S as SerializedPost, a as SerializedTag } from '../../../shared/stack.Dsatjh0B.cjs';
4
4
  export { blogPermissions } from '../permissions.cjs';
5
5
  import '@btst/stack/plugins/client';
6
6
  import 'zod';
7
- import '../../../shared/stack.CKc_Bais.cjs';
7
+ import '../../../shared/stack.Csi-4Mgz.cjs';
8
8
  import '@btst/stack/plugins/api';
9
9
  import '../../../authorization/index.cjs';
10
10
  import 'zod/v4/core';
@@ -1,10 +1,10 @@
1
- export { B as BLOG_QUERY_KEYS, i as BlogApiRouter, k as BlogBackendHooks, f as BlogBackendOptions, l as BlogCreateErrorContext, m as BlogCreateOperationContext, n as BlogCreateResultContext, o as BlogDeleteErrorContext, p as BlogDeleteOperationContext, q as BlogDeleteResultContext, r as BlogListErrorContext, s as BlogListOperationContext, t as BlogListResultContext, u as BlogNextPreviousErrorContext, v as BlogNextPreviousOperationContext, w as BlogNextPreviousResultContext, e as BlogRouteKey, x as BlogUpdateErrorContext, y as BlogUpdateOperationContext, z as BlogUpdateResultContext, C as CreatePostOperationInputSchema, N as NextPreviousPostsQuerySchema, P as PostListParams, j as PostListQuerySchema, c as PostListResult, S as SerializedNextPreviousPostsResult, A as SerializedPostListResult, U as UpdatePostOperationInputSchema, h as blogBackendPlugin, d as createBlogQueryKeys, g as getAllPosts, b as getAllTags, a as getPostBySlug } from '../../../shared/stack.BggTHKlo.mjs';
1
+ export { B as BLOG_QUERY_KEYS, i as BlogApiRouter, k as BlogBackendHooks, f as BlogBackendOptions, l as BlogCreateErrorContext, m as BlogCreateOperationContext, n as BlogCreateResultContext, o as BlogDeleteErrorContext, p as BlogDeleteOperationContext, q as BlogDeleteResultContext, r as BlogListErrorContext, s as BlogListOperationContext, t as BlogListResultContext, u as BlogNextPreviousErrorContext, v as BlogNextPreviousOperationContext, w as BlogNextPreviousResultContext, e as BlogRouteKey, x as BlogUpdateErrorContext, y as BlogUpdateOperationContext, z as BlogUpdateResultContext, C as CreatePostOperationInputSchema, N as NextPreviousPostsQuerySchema, P as PostListParams, j as PostListQuerySchema, c as PostListResult, S as SerializedNextPreviousPostsResult, A as SerializedPostListResult, U as UpdatePostOperationInputSchema, h as blogBackendPlugin, d as createBlogQueryKeys, g as getAllPosts, b as getAllTags, a as getPostBySlug } from '../../../shared/stack.Dvy7FmaA.mjs';
2
2
  import { DBAdapter } from '@btst/db';
3
3
  import { P as Post, T as Tag, S as SerializedPost, a as SerializedTag } from '../../../shared/stack.Dsatjh0B.mjs';
4
4
  export { blogPermissions } from '../permissions.mjs';
5
5
  import '@btst/stack/plugins/client';
6
6
  import 'zod';
7
- import '../../../shared/stack.CKc_Bais.mjs';
7
+ import '../../../shared/stack.Csi-4Mgz.mjs';
8
8
  import '@btst/stack/plugins/api';
9
9
  import '../../../authorization/index.mjs';
10
10
  import 'zod/v4/core';
@@ -1,10 +1,10 @@
1
- export { B as BLOG_QUERY_KEYS, i as BlogApiRouter, k as BlogBackendHooks, f as BlogBackendOptions, l as BlogCreateErrorContext, m as BlogCreateOperationContext, n as BlogCreateResultContext, o as BlogDeleteErrorContext, p as BlogDeleteOperationContext, q as BlogDeleteResultContext, r as BlogListErrorContext, s as BlogListOperationContext, t as BlogListResultContext, u as BlogNextPreviousErrorContext, v as BlogNextPreviousOperationContext, w as BlogNextPreviousResultContext, e as BlogRouteKey, x as BlogUpdateErrorContext, y as BlogUpdateOperationContext, z as BlogUpdateResultContext, C as CreatePostOperationInputSchema, N as NextPreviousPostsQuerySchema, P as PostListParams, j as PostListQuerySchema, c as PostListResult, S as SerializedNextPreviousPostsResult, A as SerializedPostListResult, U as UpdatePostOperationInputSchema, h as blogBackendPlugin, d as createBlogQueryKeys, g as getAllPosts, b as getAllTags, a as getPostBySlug } from '../../../shared/stack.lPKwd_v0.js';
1
+ export { B as BLOG_QUERY_KEYS, i as BlogApiRouter, k as BlogBackendHooks, f as BlogBackendOptions, l as BlogCreateErrorContext, m as BlogCreateOperationContext, n as BlogCreateResultContext, o as BlogDeleteErrorContext, p as BlogDeleteOperationContext, q as BlogDeleteResultContext, r as BlogListErrorContext, s as BlogListOperationContext, t as BlogListResultContext, u as BlogNextPreviousErrorContext, v as BlogNextPreviousOperationContext, w as BlogNextPreviousResultContext, e as BlogRouteKey, x as BlogUpdateErrorContext, y as BlogUpdateOperationContext, z as BlogUpdateResultContext, C as CreatePostOperationInputSchema, N as NextPreviousPostsQuerySchema, P as PostListParams, j as PostListQuerySchema, c as PostListResult, S as SerializedNextPreviousPostsResult, A as SerializedPostListResult, U as UpdatePostOperationInputSchema, h as blogBackendPlugin, d as createBlogQueryKeys, g as getAllPosts, b as getAllTags, a as getPostBySlug } from '../../../shared/stack.DlBoNqYu.js';
2
2
  import { DBAdapter } from '@btst/db';
3
3
  import { P as Post, T as Tag, S as SerializedPost, a as SerializedTag } from '../../../shared/stack.Dsatjh0B.js';
4
4
  export { blogPermissions } from '../permissions.js';
5
5
  import '@btst/stack/plugins/client';
6
6
  import 'zod';
7
- import '../../../shared/stack.CKc_Bais.js';
7
+ import '../../../shared/stack.Csi-4Mgz.js';
8
8
  import '@btst/stack/plugins/api';
9
9
  import '../../../authorization/index.js';
10
10
  import 'zod/v4/core';
@@ -1,9 +1,9 @@
1
- export { P as PostCreateInput, e as PostUpdateInput, p as UseNextPreviousPostsOptions, q as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, s as UseRecentPostsOptions, t as UseRecentPostsResult, l as useCreatePost, n as useDeletePost, r as useNextPreviousPosts, g as usePost, k as usePostForm, o as usePostSearch, u as usePosts, v as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, m as useUpdatePost } from '../../../../shared/stack.BTStHVTy.cjs';
1
+ export { P as PostCreateInput, e as PostUpdateInput, p as UseNextPreviousPostsOptions, q as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, s as UseRecentPostsOptions, t as UseRecentPostsResult, l as useCreatePost, n as useDeletePost, r as useNextPreviousPosts, g as usePost, k as usePostForm, o as usePostSearch, u as usePosts, v as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, m as useUpdatePost } from '../../../../shared/stack.BGzgFx3R.cjs';
2
2
  export { useDebounce } from '@btst/stack/plugins/client/hooks';
3
3
  import '@tanstack/react-query';
4
4
  import 'zod';
5
5
  import '../../../../shared/stack.Dsatjh0B.cjs';
6
- import '../../../../shared/stack.CKc_Bais.cjs';
6
+ import '../../../../shared/stack.Csi-4Mgz.cjs';
7
7
 
8
8
  declare function useThrottle<T>(value: T, wait?: number): T;
9
9
 
@@ -1,9 +1,9 @@
1
- export { P as PostCreateInput, e as PostUpdateInput, p as UseNextPreviousPostsOptions, q as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, s as UseRecentPostsOptions, t as UseRecentPostsResult, l as useCreatePost, n as useDeletePost, r as useNextPreviousPosts, g as usePost, k as usePostForm, o as usePostSearch, u as usePosts, v as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, m as useUpdatePost } from '../../../../shared/stack.94kN3pEK.mjs';
1
+ export { P as PostCreateInput, e as PostUpdateInput, p as UseNextPreviousPostsOptions, q as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, s as UseRecentPostsOptions, t as UseRecentPostsResult, l as useCreatePost, n as useDeletePost, r as useNextPreviousPosts, g as usePost, k as usePostForm, o as usePostSearch, u as usePosts, v as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, m as useUpdatePost } from '../../../../shared/stack.CjCSDfWy.mjs';
2
2
  export { useDebounce } from '@btst/stack/plugins/client/hooks';
3
3
  import '@tanstack/react-query';
4
4
  import 'zod';
5
5
  import '../../../../shared/stack.Dsatjh0B.mjs';
6
- import '../../../../shared/stack.CKc_Bais.mjs';
6
+ import '../../../../shared/stack.Csi-4Mgz.mjs';
7
7
 
8
8
  declare function useThrottle<T>(value: T, wait?: number): T;
9
9
 
@@ -1,9 +1,9 @@
1
- export { P as PostCreateInput, e as PostUpdateInput, p as UseNextPreviousPostsOptions, q as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, s as UseRecentPostsOptions, t as UseRecentPostsResult, l as useCreatePost, n as useDeletePost, r as useNextPreviousPosts, g as usePost, k as usePostForm, o as usePostSearch, u as usePosts, v as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, m as useUpdatePost } from '../../../../shared/stack.DfrRYOIl.js';
1
+ export { P as PostCreateInput, e as PostUpdateInput, p as UseNextPreviousPostsOptions, q as UseNextPreviousPostsResult, d as UsePostResult, b as UsePostSearchOptions, c as UsePostSearchResult, U as UsePostsOptions, a as UsePostsResult, s as UseRecentPostsOptions, t as UseRecentPostsResult, l as useCreatePost, n as useDeletePost, r as useNextPreviousPosts, g as usePost, k as usePostForm, o as usePostSearch, u as usePosts, v as useRecentPosts, h as useSuspensePost, f as useSuspensePosts, j as useSuspenseTags, i as useTags, m as useUpdatePost } from '../../../../shared/stack.Dpg_JjIo.js';
2
2
  export { useDebounce } from '@btst/stack/plugins/client/hooks';
3
3
  import '@tanstack/react-query';
4
4
  import 'zod';
5
5
  import '../../../../shared/stack.Dsatjh0B.js';
6
- import '../../../../shared/stack.CKc_Bais.js';
6
+ import '../../../../shared/stack.Csi-4Mgz.js';
7
7
 
8
8
  declare function useThrottle<T>(value: T, wait?: number): T;
9
9
 
@@ -4,11 +4,11 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ComponentType, ReactNode } from 'react';
5
5
  import { S as SerializedPost, P as Post } from '../../../shared/stack.Dsatjh0B.cjs';
6
6
  import { N as NewPostPageComponent } from '../../../shared/stack.Bz-YPsuX.cjs';
7
- export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.BTStHVTy.cjs';
7
+ export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.BGzgFx3R.cjs';
8
8
  import '@tanstack/react-query';
9
9
  import 'zod';
10
10
  import '@btst/stack/plugins/client/hooks';
11
- import '../../../shared/stack.CKc_Bais.cjs';
11
+ import '../../../shared/stack.Csi-4Mgz.cjs';
12
12
 
13
13
  declare const BLOG_LOCALIZATION: {
14
14
  BLOG_FORMS_TITLE_LABEL: string;
@@ -224,6 +224,8 @@ interface BlogPluginOverrides {
224
224
  * ```
225
225
  */
226
226
  postBottomSlot?: (post: SerializedPost) => ReactNode;
227
+ /** Render content after the first top-level body paragraph, preserving a single Markdown document. Omitted if no paragraph exists. */
228
+ postIntroductionSlot?: (post: SerializedPost) => ReactNode;
227
229
  }
228
230
 
229
231
  /**
@@ -4,11 +4,11 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ComponentType, ReactNode } from 'react';
5
5
  import { S as SerializedPost, P as Post } from '../../../shared/stack.Dsatjh0B.mjs';
6
6
  import { N as NewPostPageComponent } from '../../../shared/stack.Bz-YPsuX.mjs';
7
- export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.94kN3pEK.mjs';
7
+ export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.CjCSDfWy.mjs';
8
8
  import '@tanstack/react-query';
9
9
  import 'zod';
10
10
  import '@btst/stack/plugins/client/hooks';
11
- import '../../../shared/stack.CKc_Bais.mjs';
11
+ import '../../../shared/stack.Csi-4Mgz.mjs';
12
12
 
13
13
  declare const BLOG_LOCALIZATION: {
14
14
  BLOG_FORMS_TITLE_LABEL: string;
@@ -224,6 +224,8 @@ interface BlogPluginOverrides {
224
224
  * ```
225
225
  */
226
226
  postBottomSlot?: (post: SerializedPost) => ReactNode;
227
+ /** Render content after the first top-level body paragraph, preserving a single Markdown document. Omitted if no paragraph exists. */
228
+ postIntroductionSlot?: (post: SerializedPost) => ReactNode;
227
229
  }
228
230
 
229
231
  /**
@@ -4,11 +4,11 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ComponentType, ReactNode } from 'react';
5
5
  import { S as SerializedPost, P as Post } from '../../../shared/stack.Dsatjh0B.js';
6
6
  import { N as NewPostPageComponent } from '../../../shared/stack.Bz-YPsuX.js';
7
- export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.DfrRYOIl.js';
7
+ export { U as UsePostsOptions, a as UsePostsResult } from '../../../shared/stack.Dpg_JjIo.js';
8
8
  import '@tanstack/react-query';
9
9
  import 'zod';
10
10
  import '@btst/stack/plugins/client/hooks';
11
- import '../../../shared/stack.CKc_Bais.js';
11
+ import '../../../shared/stack.Csi-4Mgz.js';
12
12
 
13
13
  declare const BLOG_LOCALIZATION: {
14
14
  BLOG_FORMS_TITLE_LABEL: string;
@@ -224,6 +224,8 @@ interface BlogPluginOverrides {
224
224
  * ```
225
225
  */
226
226
  postBottomSlot?: (post: SerializedPost) => ReactNode;
227
+ /** Render content after the first top-level body paragraph, preserving a single Markdown document. Omitted if no paragraph exists. */
228
+ postIntroductionSlot?: (post: SerializedPost) => ReactNode;
227
229
  }
228
230
 
229
231
  /**
@@ -1,7 +1,7 @@
1
1
  import '@btst/stack/plugins/client';
2
- export { D as blogResources, d as createBlogQueryKeys } from '../../shared/stack.CtrnoQgH.cjs';
2
+ export { D as blogResources, d as createBlogQueryKeys } from '../../shared/stack.BOZRaVpu.cjs';
3
3
  import 'zod';
4
- import '../../shared/stack.CKc_Bais.cjs';
4
+ import '../../shared/stack.Csi-4Mgz.cjs';
5
5
  import '../../shared/stack.Dsatjh0B.cjs';
6
6
  import '@btst/stack/plugins/api';
7
7
  import '../../authorization/index.cjs';
@@ -1,7 +1,7 @@
1
1
  import '@btst/stack/plugins/client';
2
- export { D as blogResources, d as createBlogQueryKeys } from '../../shared/stack.BggTHKlo.mjs';
2
+ export { D as blogResources, d as createBlogQueryKeys } from '../../shared/stack.Dvy7FmaA.mjs';
3
3
  import 'zod';
4
- import '../../shared/stack.CKc_Bais.mjs';
4
+ import '../../shared/stack.Csi-4Mgz.mjs';
5
5
  import '../../shared/stack.Dsatjh0B.mjs';
6
6
  import '@btst/stack/plugins/api';
7
7
  import '../../authorization/index.mjs';
@@ -1,7 +1,7 @@
1
1
  import '@btst/stack/plugins/client';
2
- export { D as blogResources, d as createBlogQueryKeys } from '../../shared/stack.lPKwd_v0.js';
2
+ export { D as blogResources, d as createBlogQueryKeys } from '../../shared/stack.DlBoNqYu.js';
3
3
  import 'zod';
4
- import '../../shared/stack.CKc_Bais.js';
4
+ import '../../shared/stack.Csi-4Mgz.js';
5
5
  import '../../shared/stack.Dsatjh0B.js';
6
6
  import '@btst/stack/plugins/api';
7
7
  import '../../authorization/index.js';
@@ -1,4 +1,4 @@
1
- export { C as CMSApiRouter, b as CMSRouteKey, d as CMS_QUERY_KEYS, c as cmsBackendPlugin } from '../../../shared/stack.D6Pg-ufX.cjs';
1
+ export { C as CMSApiRouter, b as CMSRouteKey, d as CMS_QUERY_KEYS, c as cmsBackendPlugin } from '../../../shared/stack.BV0uNV4f.cjs';
2
2
  import { DBAdapter } from '@btst/db';
3
3
  import { S as SerializedContentType, a as SerializedContentItemWithType, b as ContentType, c as ContentItem, d as SerializedContentItem, e as ContentItemWithType } from '../../../shared/stack.B3_aDcYL.cjs';
4
4
  export { C as CMSBackendConfig, f as CMSBackendHooks, g as CMSCreateOperationContext, h as CMSCreateResultContext, i as CMSDeleteOperationContext, j as CMSDeleteResultContext, k as CMSOperationErrorContext, l as CMSOperationLifecycleContext, m as CMSUpdateOperationContext, n as CMSUpdateResultContext, o as ContentTypeConfig } from '../../../shared/stack.B3_aDcYL.cjs';
@@ -1,4 +1,4 @@
1
- export { C as CMSApiRouter, b as CMSRouteKey, d as CMS_QUERY_KEYS, c as cmsBackendPlugin } from '../../../shared/stack.B8PG21zX.mjs';
1
+ export { C as CMSApiRouter, b as CMSRouteKey, d as CMS_QUERY_KEYS, c as cmsBackendPlugin } from '../../../shared/stack.lsbdKRj7.mjs';
2
2
  import { DBAdapter } from '@btst/db';
3
3
  import { S as SerializedContentType, a as SerializedContentItemWithType, b as ContentType, c as ContentItem, d as SerializedContentItem, e as ContentItemWithType } from '../../../shared/stack.B3_aDcYL.mjs';
4
4
  export { C as CMSBackendConfig, f as CMSBackendHooks, g as CMSCreateOperationContext, h as CMSCreateResultContext, i as CMSDeleteOperationContext, j as CMSDeleteResultContext, k as CMSOperationErrorContext, l as CMSOperationLifecycleContext, m as CMSUpdateOperationContext, n as CMSUpdateResultContext, o as ContentTypeConfig } from '../../../shared/stack.B3_aDcYL.mjs';
@@ -1,4 +1,4 @@
1
- export { C as CMSApiRouter, b as CMSRouteKey, d as CMS_QUERY_KEYS, c as cmsBackendPlugin } from '../../../shared/stack.CyalJ0j6.js';
1
+ export { C as CMSApiRouter, b as CMSRouteKey, d as CMS_QUERY_KEYS, c as cmsBackendPlugin } from '../../../shared/stack.BMlTZnZp.js';
2
2
  import { DBAdapter } from '@btst/db';
3
3
  import { S as SerializedContentType, a as SerializedContentItemWithType, b as ContentType, c as ContentItem, d as SerializedContentItem, e as ContentItemWithType } from '../../../shared/stack.B3_aDcYL.js';
4
4
  export { C as CMSBackendConfig, f as CMSBackendHooks, g as CMSCreateOperationContext, h as CMSCreateResultContext, i as CMSDeleteOperationContext, j as CMSDeleteResultContext, k as CMSOperationErrorContext, l as CMSOperationLifecycleContext, m as CMSUpdateOperationContext, n as CMSUpdateResultContext, o as ContentTypeConfig } from '../../../shared/stack.B3_aDcYL.js';
@@ -1,6 +1,6 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
2
  import { createApiClient } from '@btst/stack/plugins/client';
3
- import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.D6Pg-ufX.cjs';
3
+ import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.BV0uNV4f.cjs';
4
4
  import { S as SerializedContentType, I as InverseRelation, a as SerializedContentItemWithType, P as PaginatedContentItems } from '../../shared/stack.B3_aDcYL.cjs';
5
5
  import '@btst/stack/plugins/api';
6
6
  import '../../authorization/index.cjs';
@@ -1,6 +1,6 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
2
  import { createApiClient } from '@btst/stack/plugins/client';
3
- import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.B8PG21zX.mjs';
3
+ import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.lsbdKRj7.mjs';
4
4
  import { S as SerializedContentType, I as InverseRelation, a as SerializedContentItemWithType, P as PaginatedContentItems } from '../../shared/stack.B3_aDcYL.mjs';
5
5
  import '@btst/stack/plugins/api';
6
6
  import '../../authorization/index.mjs';
@@ -1,6 +1,6 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
2
  import { createApiClient } from '@btst/stack/plugins/client';
3
- import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.CyalJ0j6.js';
3
+ import { C as CMSApiRouter, a as ContentListDiscriminator } from '../../shared/stack.BMlTZnZp.js';
4
4
  import { S as SerializedContentType, I as InverseRelation, a as SerializedContentItemWithType, P as PaginatedContentItems } from '../../shared/stack.B3_aDcYL.js';
5
5
  import '@btst/stack/plugins/api';
6
6
  import '../../authorization/index.js';
@@ -1,4 +1,4 @@
1
- export { k as FORM_QUERY_KEYS, a as FormBuilderApiRouter, c as FormBuilderOperationError, e as FormBuilderOperations, b as FormBuilderRouteKey, g as FormListOperationResult, h as SubmissionDetailOperationResult, i as SubmissionListOperationResult, j as SubmitOperationResult, d as createFormBuilderOperations, f as formBuilderBackendPlugin } from '../../../shared/stack.CX83YNuS.cjs';
1
+ export { k as FORM_QUERY_KEYS, a as FormBuilderApiRouter, c as FormBuilderOperationError, e as FormBuilderOperations, b as FormBuilderRouteKey, g as FormListOperationResult, h as SubmissionDetailOperationResult, i as SubmissionListOperationResult, j as SubmitOperationResult, d as createFormBuilderOperations, f as formBuilderBackendPlugin } from '../../../shared/stack.zch70Loj.cjs';
2
2
  export { formBuilderPermissions } from '../permissions.cjs';
3
3
  import { S as SerializedForm, d as SerializedFormSubmissionWithData, F as Form, f as FormSubmission, a as SerializedFormSubmission, c as SerializedFormSubmissionSummary, g as FormSubmissionWithForm } from '../../../shared/stack.v2O65JqF.cjs';
4
4
  export { h as FormBuilderBackendConfig, i as FormBuilderBackendHooks, j as FormBuilderHookContext, k as FormBuilderOperationHookContext, l as FormCreateOperationContext, m as FormDeleteOperationContext, o as FormGetForUpdateOperationContext, n as FormGetOperationContext, p as FormListOperationContext, q as FormUpdateOperationContext, r as SubmissionCreateOperationContext, s as SubmissionDeleteOperationContext, t as SubmissionGetOperationContext, v as SubmissionHookContext, b as SubmissionListFormContext, u as SubmissionListOperationContext } from '../../../shared/stack.v2O65JqF.cjs';
@@ -1,4 +1,4 @@
1
- export { k as FORM_QUERY_KEYS, a as FormBuilderApiRouter, c as FormBuilderOperationError, e as FormBuilderOperations, b as FormBuilderRouteKey, g as FormListOperationResult, h as SubmissionDetailOperationResult, i as SubmissionListOperationResult, j as SubmitOperationResult, d as createFormBuilderOperations, f as formBuilderBackendPlugin } from '../../../shared/stack.Egr3RWhA.mjs';
1
+ export { k as FORM_QUERY_KEYS, a as FormBuilderApiRouter, c as FormBuilderOperationError, e as FormBuilderOperations, b as FormBuilderRouteKey, g as FormListOperationResult, h as SubmissionDetailOperationResult, i as SubmissionListOperationResult, j as SubmitOperationResult, d as createFormBuilderOperations, f as formBuilderBackendPlugin } from '../../../shared/stack.Doy2_wgl.mjs';
2
2
  export { formBuilderPermissions } from '../permissions.mjs';
3
3
  import { S as SerializedForm, d as SerializedFormSubmissionWithData, F as Form, f as FormSubmission, a as SerializedFormSubmission, c as SerializedFormSubmissionSummary, g as FormSubmissionWithForm } from '../../../shared/stack.OYT8WU4n.mjs';
4
4
  export { h as FormBuilderBackendConfig, i as FormBuilderBackendHooks, j as FormBuilderHookContext, k as FormBuilderOperationHookContext, l as FormCreateOperationContext, m as FormDeleteOperationContext, o as FormGetForUpdateOperationContext, n as FormGetOperationContext, p as FormListOperationContext, q as FormUpdateOperationContext, r as SubmissionCreateOperationContext, s as SubmissionDeleteOperationContext, t as SubmissionGetOperationContext, v as SubmissionHookContext, b as SubmissionListFormContext, u as SubmissionListOperationContext } from '../../../shared/stack.OYT8WU4n.mjs';
@@ -1,4 +1,4 @@
1
- export { k as FORM_QUERY_KEYS, a as FormBuilderApiRouter, c as FormBuilderOperationError, e as FormBuilderOperations, b as FormBuilderRouteKey, g as FormListOperationResult, h as SubmissionDetailOperationResult, i as SubmissionListOperationResult, j as SubmitOperationResult, d as createFormBuilderOperations, f as formBuilderBackendPlugin } from '../../../shared/stack.BuxUQqL8.js';
1
+ export { k as FORM_QUERY_KEYS, a as FormBuilderApiRouter, c as FormBuilderOperationError, e as FormBuilderOperations, b as FormBuilderRouteKey, g as FormListOperationResult, h as SubmissionDetailOperationResult, i as SubmissionListOperationResult, j as SubmitOperationResult, d as createFormBuilderOperations, f as formBuilderBackendPlugin } from '../../../shared/stack.CGmh-Lpe.js';
2
2
  export { formBuilderPermissions } from '../permissions.js';
3
3
  import { S as SerializedForm, d as SerializedFormSubmissionWithData, F as Form, f as FormSubmission, a as SerializedFormSubmission, c as SerializedFormSubmissionSummary, g as FormSubmissionWithForm } from '../../../shared/stack.C3bU9w6L.js';
4
4
  export { h as FormBuilderBackendConfig, i as FormBuilderBackendHooks, j as FormBuilderHookContext, k as FormBuilderOperationHookContext, l as FormCreateOperationContext, m as FormDeleteOperationContext, o as FormGetForUpdateOperationContext, n as FormGetOperationContext, p as FormListOperationContext, q as FormUpdateOperationContext, r as SubmissionCreateOperationContext, s as SubmissionDeleteOperationContext, t as SubmissionGetOperationContext, v as SubmissionHookContext, b as SubmissionListFormContext, u as SubmissionListOperationContext } from '../../../shared/stack.C3bU9w6L.js';