@btst/stack 2.6.1 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,8 @@ function ChatLayout(props) {
21
21
  className,
22
22
  showSidebar = true,
23
23
  initialMessages,
24
- onMessagesChange
24
+ onMessagesChange,
25
+ onClear
25
26
  } = props;
26
27
  const widgetHeight = props.layout === "widget" ? props.widgetHeight ?? "600px" : "600px";
27
28
  const widgetWidth = props.layout === "widget" ? props.widgetWidth ?? "380px" : "380px";
@@ -69,7 +70,10 @@ function ChatLayout(props) {
69
70
  variant: "ghost",
70
71
  size: "icon",
71
72
  className: "h-5 w-5",
72
- onClick: () => setWidgetResetKey((prev) => prev + 1),
73
+ onClick: () => {
74
+ onClear?.();
75
+ setWidgetResetKey((prev) => prev + 1);
76
+ },
73
77
  "aria-label": "Clear chat",
74
78
  title: "Clear chat",
75
79
  children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Trash2, { className: "h-3.5 w-3.5" })
@@ -190,6 +194,20 @@ function ChatLayout(props) {
190
194
  pageAIContext.routeName
191
195
  ]
192
196
  }
197
+ ),
198
+ onClear && /* @__PURE__ */ jsxRuntime.jsx(
199
+ button.Button,
200
+ {
201
+ variant: "ghost",
202
+ size: "icon",
203
+ onClick: () => {
204
+ onClear();
205
+ setChatResetKey((prev) => prev + 1);
206
+ },
207
+ "aria-label": "Clear chat",
208
+ title: "Clear chat",
209
+ children: /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Trash2, { className: "h-4 w-4" })
210
+ }
193
211
  )
194
212
  ] }),
195
213
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -19,7 +19,8 @@ function ChatLayout(props) {
19
19
  className,
20
20
  showSidebar = true,
21
21
  initialMessages,
22
- onMessagesChange
22
+ onMessagesChange,
23
+ onClear
23
24
  } = props;
24
25
  const widgetHeight = props.layout === "widget" ? props.widgetHeight ?? "600px" : "600px";
25
26
  const widgetWidth = props.layout === "widget" ? props.widgetWidth ?? "380px" : "380px";
@@ -67,7 +68,10 @@ function ChatLayout(props) {
67
68
  variant: "ghost",
68
69
  size: "icon",
69
70
  className: "h-5 w-5",
70
- onClick: () => setWidgetResetKey((prev) => prev + 1),
71
+ onClick: () => {
72
+ onClear?.();
73
+ setWidgetResetKey((prev) => prev + 1);
74
+ },
71
75
  "aria-label": "Clear chat",
72
76
  title: "Clear chat",
73
77
  children: /* @__PURE__ */ jsx(Trash2, { className: "h-3.5 w-3.5" })
@@ -188,6 +192,20 @@ function ChatLayout(props) {
188
192
  pageAIContext.routeName
189
193
  ]
190
194
  }
195
+ ),
196
+ onClear && /* @__PURE__ */ jsx(
197
+ Button,
198
+ {
199
+ variant: "ghost",
200
+ size: "icon",
201
+ onClick: () => {
202
+ onClear();
203
+ setChatResetKey((prev) => prev + 1);
204
+ },
205
+ "aria-label": "Clear chat",
206
+ title: "Clear chat",
207
+ children: /* @__PURE__ */ jsx(Trash2, { className: "h-4 w-4" })
208
+ }
191
209
  )
192
210
  ] }),
193
211
  /* @__PURE__ */ jsx(
@@ -1,4 +1,4 @@
1
- export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.BV9hnvu4.cjs';
1
+ export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.sba323Ml.cjs';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { FallbackProps } from 'react-error-boundary';
4
4
  import 'ai';
@@ -1,4 +1,4 @@
1
- export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.BV9hnvu4.mjs';
1
+ export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.sba323Ml.mjs';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { FallbackProps } from 'react-error-boundary';
4
4
  import 'ai';
@@ -1,4 +1,4 @@
1
- export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.BV9hnvu4.js';
1
+ export { i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, j as ToolCallDisplay } from '../../../../shared/stack.sba323Ml.js';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { FallbackProps } from 'react-error-boundary';
4
4
  import 'ai';
@@ -3,8 +3,8 @@ import * as _btst_yar from '@btst/yar';
3
3
  import { ComponentType } from 'react';
4
4
  import { QueryClient } from '@tanstack/react-query';
5
5
  import { S as SerializedConversation, a as SerializedMessage } from '../../../shared/stack.Be1QIHEn.cjs';
6
- import { A as AiChatMode } from '../../../shared/stack.BV9hnvu4.cjs';
7
- export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.BV9hnvu4.cjs';
6
+ import { A as AiChatMode } from '../../../shared/stack.sba323Ml.cjs';
7
+ export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.sba323Ml.cjs';
8
8
  export { UIMessage } from 'ai';
9
9
  import 'react/jsx-runtime';
10
10
 
@@ -3,8 +3,8 @@ import * as _btst_yar from '@btst/yar';
3
3
  import { ComponentType } from 'react';
4
4
  import { QueryClient } from '@tanstack/react-query';
5
5
  import { S as SerializedConversation, a as SerializedMessage } from '../../../shared/stack.Be1QIHEn.mjs';
6
- import { A as AiChatMode } from '../../../shared/stack.BV9hnvu4.mjs';
7
- export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.BV9hnvu4.mjs';
6
+ import { A as AiChatMode } from '../../../shared/stack.sba323Ml.mjs';
7
+ export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.sba323Ml.mjs';
8
8
  export { UIMessage } from 'ai';
9
9
  import 'react/jsx-runtime';
10
10
 
@@ -3,8 +3,8 @@ import * as _btst_yar from '@btst/yar';
3
3
  import { ComponentType } from 'react';
4
4
  import { QueryClient } from '@tanstack/react-query';
5
5
  import { S as SerializedConversation, a as SerializedMessage } from '../../../shared/stack.Be1QIHEn.js';
6
- import { A as AiChatMode } from '../../../shared/stack.BV9hnvu4.js';
7
- export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.BV9hnvu4.js';
6
+ import { A as AiChatMode } from '../../../shared/stack.sba323Ml.js';
7
+ export { a as AiChatPluginOverrides, b as AllowedFileType, i as ChatInput, C as ChatInterface, e as ChatLayout, f as ChatLayoutProps, h as ChatMessage, g as ChatSidebar, D as DEFAULT_ALLOWED_FILE_TYPES, j as ToolCallDisplay, T as ToolCallProps, d as ToolCallRenderer, c as ToolCallState } from '../../../shared/stack.sba323Ml.js';
8
8
  export { UIMessage } from 'ai';
9
9
  import 'react/jsx-runtime';
10
10
 
@@ -1,4 +1,4 @@
1
- export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.uWSqCWAb.cjs';
1
+ export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.n1_i1p2B.cjs';
2
2
  import { B as BoardWithColumns, S as SerializedBoardWithColumns, C as ColumnWithTasks, a as SerializedColumn, T as Task, b as SerializedTask } from '../../../shared/stack.DJaKVY7v.cjs';
3
3
  import '@btst/stack/plugins/api';
4
4
  import 'better-call';
@@ -1,4 +1,4 @@
1
- export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.B8D4r97Z.mjs';
1
+ export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.CxaFNQCV.mjs';
2
2
  import { B as BoardWithColumns, S as SerializedBoardWithColumns, C as ColumnWithTasks, a as SerializedColumn, T as Task, b as SerializedTask } from '../../../shared/stack.DJaKVY7v.mjs';
3
3
  import '@btst/stack/plugins/api';
4
4
  import 'better-call';
@@ -1,4 +1,4 @@
1
- export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.DgKOwl20.js';
1
+ export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.j75TpKh2.js';
2
2
  import { B as BoardWithColumns, S as SerializedBoardWithColumns, C as ColumnWithTasks, a as SerializedColumn, T as Task, b as SerializedTask } from '../../../shared/stack.DJaKVY7v.js';
3
3
  import '@btst/stack/plugins/api';
4
4
  import 'better-call';
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.uWSqCWAb.cjs';
2
+ import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.n1_i1p2B.cjs';
3
3
  import { createApiClient } from '@btst/stack/plugins/client';
4
4
  import { S as SerializedBoardWithColumns } from '../../shared/stack.DJaKVY7v.cjs';
5
5
  import '@btst/stack/plugins/api';
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.B8D4r97Z.mjs';
2
+ import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.CxaFNQCV.mjs';
3
3
  import { createApiClient } from '@btst/stack/plugins/client';
4
4
  import { S as SerializedBoardWithColumns } from '../../shared/stack.DJaKVY7v.mjs';
5
5
  import '@btst/stack/plugins/api';
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.DgKOwl20.js';
2
+ import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.j75TpKh2.js';
3
3
  import { createApiClient } from '@btst/stack/plugins/client';
4
4
  import { S as SerializedBoardWithColumns } from '../../shared/stack.DJaKVY7v.js';
5
5
  import '@btst/stack/plugins/api';
@@ -259,6 +259,8 @@ interface ChatLayoutBaseProps {
259
259
  initialMessages?: UIMessage[];
260
260
  /** Called whenever messages change (for persistence). Only fires in public mode. */
261
261
  onMessagesChange?: (messages: UIMessage[]) => void;
262
+ /** Called when the user clears the chat (e.g. clicks the trash button in widget mode). Use this to clear persisted messages. */
263
+ onClear?: () => void;
262
264
  }
263
265
  interface ChatLayoutWidgetProps extends ChatLayoutBaseProps {
264
266
  /** Widget mode: compact embeddable panel with a floating trigger button */
@@ -259,6 +259,8 @@ interface ChatLayoutBaseProps {
259
259
  initialMessages?: UIMessage[];
260
260
  /** Called whenever messages change (for persistence). Only fires in public mode. */
261
261
  onMessagesChange?: (messages: UIMessage[]) => void;
262
+ /** Called when the user clears the chat (e.g. clicks the trash button in widget mode). Use this to clear persisted messages. */
263
+ onClear?: () => void;
262
264
  }
263
265
  interface ChatLayoutWidgetProps extends ChatLayoutBaseProps {
264
266
  /** Widget mode: compact embeddable panel with a floating trigger button */
@@ -259,6 +259,8 @@ interface ChatLayoutBaseProps {
259
259
  initialMessages?: UIMessage[];
260
260
  /** Called whenever messages change (for persistence). Only fires in public mode. */
261
261
  onMessagesChange?: (messages: UIMessage[]) => void;
262
+ /** Called when the user clears the chat (e.g. clicks the trash button in widget mode). Use this to clear persisted messages. */
263
+ onClear?: () => void;
262
264
  }
263
265
  interface ChatLayoutWidgetProps extends ChatLayoutBaseProps {
264
266
  /** Widget mode: compact embeddable panel with a floating trigger button */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@btst/stack",
3
- "version": "2.6.1",
3
+ "version": "2.6.2",
4
4
  "description": "A composable, plugin-based library for building full-stack applications.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,6 +37,8 @@ interface ChatLayoutBaseProps {
37
37
  initialMessages?: UIMessage[];
38
38
  /** Called whenever messages change (for persistence). Only fires in public mode. */
39
39
  onMessagesChange?: (messages: UIMessage[]) => void;
40
+ /** Called when the user clears the chat (e.g. clicks the trash button in widget mode). Use this to clear persisted messages. */
41
+ onClear?: () => void;
40
42
  }
41
43
 
42
44
  interface ChatLayoutWidgetProps extends ChatLayoutBaseProps {
@@ -84,6 +86,7 @@ export function ChatLayout(props: ChatLayoutProps) {
84
86
  showSidebar = true,
85
87
  initialMessages,
86
88
  onMessagesChange,
89
+ onClear,
87
90
  } = props;
88
91
 
89
92
  // Widget-specific props — TypeScript narrows props to ChatLayoutWidgetProps here
@@ -156,7 +159,10 @@ export function ChatLayout(props: ChatLayoutProps) {
156
159
  variant="ghost"
157
160
  size="icon"
158
161
  className="h-5 w-5"
159
- onClick={() => setWidgetResetKey((prev) => prev + 1)}
162
+ onClick={() => {
163
+ onClear?.();
164
+ setWidgetResetKey((prev) => prev + 1);
165
+ }}
160
166
  aria-label="Clear chat"
161
167
  title="Clear chat"
162
168
  >
@@ -293,6 +299,21 @@ export function ChatLayout(props: ChatLayoutProps) {
293
299
  {pageAIContext.routeName}
294
300
  </Badge>
295
301
  )}
302
+
303
+ {onClear && (
304
+ <Button
305
+ variant="ghost"
306
+ size="icon"
307
+ onClick={() => {
308
+ onClear();
309
+ setChatResetKey((prev) => prev + 1);
310
+ }}
311
+ aria-label="Clear chat"
312
+ title="Clear chat"
313
+ >
314
+ <Trash2 className="h-4 w-4" />
315
+ </Button>
316
+ )}
296
317
  </div>
297
318
 
298
319
  <ChatInterface
@@ -7,12 +7,12 @@ import { QueryClient } from '@tanstack/react-query';
7
7
 
8
8
  declare const createBoardSchema: z.ZodObject<{
9
9
  description: z.ZodOptional<z.ZodString>;
10
+ name: z.ZodString;
10
11
  slug: z.ZodOptional<z.ZodString>;
11
12
  ownerId: z.ZodOptional<z.ZodString>;
12
13
  organizationId: z.ZodOptional<z.ZodString>;
13
14
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
14
15
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
15
- name: z.ZodString;
16
16
  }, z.core.$strip>;
17
17
  declare const updateBoardSchema: z.ZodObject<{
18
18
  createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
@@ -323,12 +323,12 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
323
323
  method: "POST";
324
324
  body: z.ZodObject<{
325
325
  description: z.ZodOptional<z.ZodString>;
326
+ name: z.ZodString;
326
327
  slug: z.ZodOptional<z.ZodString>;
327
328
  ownerId: z.ZodOptional<z.ZodString>;
328
329
  organizationId: z.ZodOptional<z.ZodString>;
329
330
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
330
331
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
331
- name: z.ZodString;
332
332
  }, z.core.$strip>;
333
333
  }, {
334
334
  columns: ColumnWithTasks[];
@@ -345,12 +345,12 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
345
345
  method: "PUT";
346
346
  body: z.ZodObject<{
347
347
  description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
348
+ name: z.ZodOptional<z.ZodString>;
348
349
  slug: z.ZodOptional<z.ZodString>;
349
350
  ownerId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
350
351
  organizationId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
351
352
  createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
352
353
  updatedAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
353
- name: z.ZodOptional<z.ZodString>;
354
354
  }, z.core.$strip>;
355
355
  }, Board>;
356
356
  readonly deleteBoard: better_call.StrictEndpoint<"/boards/:id", {
@@ -7,12 +7,12 @@ import { QueryClient } from '@tanstack/react-query';
7
7
 
8
8
  declare const createBoardSchema: z.ZodObject<{
9
9
  description: z.ZodOptional<z.ZodString>;
10
+ name: z.ZodString;
10
11
  slug: z.ZodOptional<z.ZodString>;
11
12
  ownerId: z.ZodOptional<z.ZodString>;
12
13
  organizationId: z.ZodOptional<z.ZodString>;
13
14
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
14
15
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
15
- name: z.ZodString;
16
16
  }, z.core.$strip>;
17
17
  declare const updateBoardSchema: z.ZodObject<{
18
18
  createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
@@ -323,12 +323,12 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
323
323
  method: "POST";
324
324
  body: z.ZodObject<{
325
325
  description: z.ZodOptional<z.ZodString>;
326
+ name: z.ZodString;
326
327
  slug: z.ZodOptional<z.ZodString>;
327
328
  ownerId: z.ZodOptional<z.ZodString>;
328
329
  organizationId: z.ZodOptional<z.ZodString>;
329
330
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
330
331
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
331
- name: z.ZodString;
332
332
  }, z.core.$strip>;
333
333
  }, {
334
334
  columns: ColumnWithTasks[];
@@ -345,12 +345,12 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
345
345
  method: "PUT";
346
346
  body: z.ZodObject<{
347
347
  description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
348
+ name: z.ZodOptional<z.ZodString>;
348
349
  slug: z.ZodOptional<z.ZodString>;
349
350
  ownerId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
350
351
  organizationId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
351
352
  createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
352
353
  updatedAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
353
- name: z.ZodOptional<z.ZodString>;
354
354
  }, z.core.$strip>;
355
355
  }, Board>;
356
356
  readonly deleteBoard: better_call.StrictEndpoint<"/boards/:id", {
@@ -7,12 +7,12 @@ import { QueryClient } from '@tanstack/react-query';
7
7
 
8
8
  declare const createBoardSchema: z.ZodObject<{
9
9
  description: z.ZodOptional<z.ZodString>;
10
+ name: z.ZodString;
10
11
  slug: z.ZodOptional<z.ZodString>;
11
12
  ownerId: z.ZodOptional<z.ZodString>;
12
13
  organizationId: z.ZodOptional<z.ZodString>;
13
14
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
14
15
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
15
- name: z.ZodString;
16
16
  }, z.core.$strip>;
17
17
  declare const updateBoardSchema: z.ZodObject<{
18
18
  createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
@@ -323,12 +323,12 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
323
323
  method: "POST";
324
324
  body: z.ZodObject<{
325
325
  description: z.ZodOptional<z.ZodString>;
326
+ name: z.ZodString;
326
327
  slug: z.ZodOptional<z.ZodString>;
327
328
  ownerId: z.ZodOptional<z.ZodString>;
328
329
  organizationId: z.ZodOptional<z.ZodString>;
329
330
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
330
331
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
331
- name: z.ZodString;
332
332
  }, z.core.$strip>;
333
333
  }, {
334
334
  columns: ColumnWithTasks[];
@@ -345,12 +345,12 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
345
345
  method: "PUT";
346
346
  body: z.ZodObject<{
347
347
  description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
348
+ name: z.ZodOptional<z.ZodString>;
348
349
  slug: z.ZodOptional<z.ZodString>;
349
350
  ownerId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
350
351
  organizationId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
351
352
  createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
352
353
  updatedAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
353
- name: z.ZodOptional<z.ZodString>;
354
354
  }, z.core.$strip>;
355
355
  }, Board>;
356
356
  readonly deleteBoard: better_call.StrictEndpoint<"/boards/:id", {