@djangocfg/ui-tools 2.1.387 → 2.1.389
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/dist/ChatRoot-EFNXQXXN.cjs +15 -0
- package/dist/{ChatRoot-4KM2JMGA.mjs.map → ChatRoot-EFNXQXXN.cjs.map} +1 -1
- package/dist/ChatRoot-FITF5RVP.mjs +6 -0
- package/dist/{ChatRoot-OILWMMZ6.cjs.map → ChatRoot-FITF5RVP.mjs.map} +1 -1
- package/dist/{DocsLayout-2P3ONDWJ.mjs → DocsLayout-EKASBSP7.mjs} +3 -3
- package/dist/{DocsLayout-2P3ONDWJ.mjs.map → DocsLayout-EKASBSP7.mjs.map} +1 -1
- package/dist/{DocsLayout-2YZNS5VK.cjs → DocsLayout-OURFYWQE.cjs} +8 -8
- package/dist/{DocsLayout-2YZNS5VK.cjs.map → DocsLayout-OURFYWQE.cjs.map} +1 -1
- package/dist/{chunk-HIK6BPL7.mjs → chunk-2NG4SXEP.mjs} +6 -5
- package/dist/chunk-2NG4SXEP.mjs.map +1 -0
- package/dist/{chunk-TSNRU3UO.cjs → chunk-4LFB7I5K.cjs} +15 -15
- package/dist/{chunk-TSNRU3UO.cjs.map → chunk-4LFB7I5K.cjs.map} +1 -1
- package/dist/{chunk-HNIMIIFR.mjs → chunk-6ZX2G25W.mjs} +3 -3
- package/dist/{chunk-HNIMIIFR.mjs.map → chunk-6ZX2G25W.mjs.map} +1 -1
- package/dist/{chunk-FIRK5CEH.cjs → chunk-7IYXZUJO.cjs} +8 -4
- package/dist/chunk-7IYXZUJO.cjs.map +1 -0
- package/dist/{chunk-BVESQTBM.mjs → chunk-NTVBIIUD.mjs} +2 -2
- package/dist/{chunk-BVESQTBM.mjs.map → chunk-NTVBIIUD.mjs.map} +1 -1
- package/dist/{chunk-L25HA3TM.cjs → chunk-W75B7Y6C.cjs} +2 -2
- package/dist/{chunk-L25HA3TM.cjs.map → chunk-W75B7Y6C.cjs.map} +1 -1
- package/dist/index.cjs +265 -253
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +255 -218
- package/dist/index.d.ts +255 -218
- package/dist/index.mjs +24 -24
- package/dist/index.mjs.map +1 -1
- package/dist/{launcher-5WYPDPEP.mjs → launcher-5Y42OBSN.mjs} +4 -5
- package/dist/{launcher-5WYPDPEP.mjs.map → launcher-5Y42OBSN.mjs.map} +1 -1
- package/dist/{launcher-QAOG2NUI.cjs → launcher-PMW2YB24.cjs} +16 -17
- package/dist/{launcher-QAOG2NUI.cjs.map → launcher-PMW2YB24.cjs.map} +1 -1
- package/package.json +6 -6
- package/src/components/index.ts +2 -2
- package/src/index.ts +20 -2
- package/src/tools/Chat/components/MessageBubble.tsx +1 -1
- package/src/tools/Chat/index.ts +1 -1
- package/src/tools/Chat/lazy.tsx +91 -4
- package/src/{components/markdown → tools}/MarkdownMessage/CodeBlock.tsx +1 -1
- package/src/{components/markdown → tools}/MarkdownMessage/CollapseToggle.tsx +1 -1
- package/src/{components/markdown → tools}/MarkdownMessage/MarkdownMessage.tsx +1 -1
- package/src/{components/markdown → tools}/MarkdownMessage/components.tsx +2 -2
- package/src/tools/OpenapiViewer/components/DocsLayout/ApiIntroSection.tsx +1 -1
- package/src/tools/OpenapiViewer/components/DocsLayout/EndpointDoc/Header/index.tsx +1 -1
- package/dist/ChatRoot-4KM2JMGA.mjs +0 -6
- package/dist/ChatRoot-OILWMMZ6.cjs +0 -15
- package/dist/chunk-FIRK5CEH.cjs.map +0 -1
- package/dist/chunk-HIK6BPL7.mjs.map +0 -1
- package/dist/launcher-FCI3LTDY.css +0 -7
- package/dist/launcher-FCI3LTDY.css.map +0 -1
- package/src/components/markdown/index.ts +0 -19
- /package/src/{components/markdown → hooks}/useCollapsibleContent.ts +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/ActionRow.tsx +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/ChatMessageRow.tsx +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/README.md +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/index.ts +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/linkRules.ts +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/plainText.ts +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/sanitize.ts +0 -0
- /package/src/{components/markdown → tools}/MarkdownMessage/types.ts +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import react__default, { ReactNode, ComponentType, RefObject, ChangeEvent, KeyboardEvent, ClipboardEvent, CSSProperties, ButtonHTMLAttributes, MouseEvent } from 'react';
|
|
4
|
-
import { Components } from 'react-markdown';
|
|
5
4
|
import { ViewState } from 'react-map-gl/maplibre';
|
|
6
5
|
import { Language } from 'prism-react-renderer';
|
|
7
6
|
export { Language } from 'prism-react-renderer';
|
|
@@ -16,6 +15,7 @@ export { c as DEFAULT_TREE_APPEARANCE, D as DEFAULT_TREE_LABELS, F as FlatRow, R
|
|
|
16
15
|
import * as zustand from 'zustand';
|
|
17
16
|
import { AudioPrefsState } from '@djangocfg/ui-core/hooks';
|
|
18
17
|
import { ConsolaInstance } from 'consola';
|
|
18
|
+
import { Components } from 'react-markdown';
|
|
19
19
|
import { MediaPlayerInstance } from '@vidstack/react';
|
|
20
20
|
import * as monaco from 'monaco-editor';
|
|
21
21
|
import { Editor as Editor$1 } from '@tiptap/react';
|
|
@@ -117,220 +117,6 @@ declare function createLazyComponent<P extends object>(loader: () => Promise<{
|
|
|
117
117
|
default: ComponentType<P>;
|
|
118
118
|
}>, options?: CreateLazyComponentOptions<P>): ComponentType<P>;
|
|
119
119
|
|
|
120
|
-
/**
|
|
121
|
-
* Declarative rule for handling a custom URL scheme inside markdown.
|
|
122
|
-
*
|
|
123
|
-
* Each rule owns one href shape (e.g. `cmdop://machine/<uuid>`,
|
|
124
|
-
* `obsidian://open?path=…`) and decides:
|
|
125
|
-
*
|
|
126
|
-
* 1. Whether the URL scheme survives sanitize (`protocols`).
|
|
127
|
-
* 2. How to massage the source markdown before render
|
|
128
|
-
* (`preprocess` — optional; useful for stripping decorative
|
|
129
|
-
* prefixes like the `@` in `@[label](href)` so the chip alone
|
|
130
|
-
* reads as the mention indicator).
|
|
131
|
-
* 3. Which links it owns (`match`), and how to render them
|
|
132
|
-
* (`render`, returning JSX).
|
|
133
|
-
*
|
|
134
|
-
* Rules compose: pass an array, and the renderer iterates top-to-bottom
|
|
135
|
-
* picking the first `match` hit per `<a>`. Anything no rule claims
|
|
136
|
-
* falls through to the built-in chat-link styling (or to a custom
|
|
137
|
-
* `customComponents.a` if both are provided).
|
|
138
|
-
*
|
|
139
|
-
* Prefer `linkRules` over `customComponents` + `extraHrefProtocols` —
|
|
140
|
-
* it's the same pieces with the boilerplate removed.
|
|
141
|
-
*/
|
|
142
|
-
interface LinkRule {
|
|
143
|
-
/** Pre-process the raw markdown source before any rendering happens.
|
|
144
|
-
* Pure / synchronous; identity-return when no transform applies. */
|
|
145
|
-
preprocess?: (source: string) => string;
|
|
146
|
-
/** Predicate against the resolved href. */
|
|
147
|
-
match: (href: string) => boolean;
|
|
148
|
-
/** Render the link this rule owns. `children` is the link's label
|
|
149
|
-
* (markdown-rendered React content). */
|
|
150
|
-
render: (props: {
|
|
151
|
-
href: string;
|
|
152
|
-
children: react__default.ReactNode;
|
|
153
|
-
isUser: boolean;
|
|
154
|
-
}) => react__default.ReactNode;
|
|
155
|
-
/** URL scheme(s) to whitelist on the sanitize side, e.g. `['cmdop']`.
|
|
156
|
-
* Bare schemes only — no `://`. Optional; omit for `http(s)` rules. */
|
|
157
|
-
protocols?: readonly string[];
|
|
158
|
-
/** Diagnostic label, surfaced in dev warnings. Optional. */
|
|
159
|
-
name?: string;
|
|
160
|
-
}
|
|
161
|
-
interface MarkdownMessageProps {
|
|
162
|
-
/** Markdown content to render */
|
|
163
|
-
content: string;
|
|
164
|
-
/** Additional CSS classes */
|
|
165
|
-
className?: string;
|
|
166
|
-
/** Whether the message is from the user (affects styling) */
|
|
167
|
-
isUser?: boolean;
|
|
168
|
-
/** Use compact size (text-xs instead of text-sm) */
|
|
169
|
-
isCompact?: boolean;
|
|
170
|
-
/**
|
|
171
|
-
* Force the plain-text rendering path (single `<div>` with
|
|
172
|
-
* `white-space: pre-wrap`, no ReactMarkdown). Use this for
|
|
173
|
-
* user-authored content where markdown shouldn't be parsed.
|
|
174
|
-
*
|
|
175
|
-
* When `undefined` (default) we run a small heuristic
|
|
176
|
-
* (`looksLikePlainProse`): short single-paragraph text without
|
|
177
|
-
* markdown markers → plain; everything else → ReactMarkdown.
|
|
178
|
-
*
|
|
179
|
-
* Pass an explicit `true` / `false` to opt out of the heuristic
|
|
180
|
-
* entirely.
|
|
181
|
-
*/
|
|
182
|
-
plainText?: boolean;
|
|
183
|
-
/**
|
|
184
|
-
* Per-tag overrides merged on top of the built-in renderers.
|
|
185
|
-
*
|
|
186
|
-
* Use this when you need custom rendering for a specific tag without
|
|
187
|
-
* losing the chat-tuned defaults (links, code blocks with copy, etc).
|
|
188
|
-
*
|
|
189
|
-
* For custom URL-scheme link handling, prefer `linkRules` — it's the
|
|
190
|
-
* same ergonomics with the per-consumer boilerplate removed.
|
|
191
|
-
*/
|
|
192
|
-
customComponents?: Partial<Components>;
|
|
193
|
-
/**
|
|
194
|
-
* Extra URL protocols allowed in `<a href>` after sanitize.
|
|
195
|
-
*
|
|
196
|
-
* The default schema strips anything that isn't
|
|
197
|
-
* `http(s)/mailto/xmpp/irc(s)` — your custom renderer would receive
|
|
198
|
-
* `href={undefined}` for `cmdop://…` / `obsidian://…` etc. Listing
|
|
199
|
-
* the bare scheme here (e.g. `'cmdop'`, NOT `'cmdop://'`) opts it in.
|
|
200
|
-
*
|
|
201
|
-
* Use carefully: every protocol you add increases what the rendered
|
|
202
|
-
* HTML can do via clicks. Stick to schemes you control.
|
|
203
|
-
*/
|
|
204
|
-
extraHrefProtocols?: readonly string[];
|
|
205
|
-
/**
|
|
206
|
-
* Declarative link rules — preferred over `customComponents` +
|
|
207
|
-
* `extraHrefProtocols` for chat-style apps that want pluggable
|
|
208
|
-
* URL-scheme handling without re-implementing the custom-`a`
|
|
209
|
-
* boilerplate per consumer.
|
|
210
|
-
*
|
|
211
|
-
* If you provide both `linkRules` and `extraHrefProtocols`, the
|
|
212
|
-
* effective protocol list is the union of the two.
|
|
213
|
-
*/
|
|
214
|
-
linkRules?: readonly LinkRule[];
|
|
215
|
-
/**
|
|
216
|
-
* Enable collapsible "Read more..." functionality
|
|
217
|
-
* @default false
|
|
218
|
-
*/
|
|
219
|
-
collapsible?: boolean;
|
|
220
|
-
/** Maximum character length before showing "Read more...". */
|
|
221
|
-
maxLength?: number;
|
|
222
|
-
/** Maximum number of lines before showing "Read more...". */
|
|
223
|
-
maxLines?: number;
|
|
224
|
-
/** Custom "Read more" button text. @default "Read more..." */
|
|
225
|
-
readMoreLabel?: string;
|
|
226
|
-
/** Custom "Show less" button text. @default "Show less" */
|
|
227
|
-
showLessLabel?: string;
|
|
228
|
-
/** Start expanded (only when `collapsible` is true). @default false */
|
|
229
|
-
defaultExpanded?: boolean;
|
|
230
|
-
/** Callback when collapsed state changes */
|
|
231
|
-
onCollapseChange?: (isCollapsed: boolean) => void;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* MarkdownMessage — chat-tuned markdown renderer.
|
|
236
|
-
*
|
|
237
|
-
* Features:
|
|
238
|
-
* - GitHub Flavored Markdown (GFM) via remark-gfm
|
|
239
|
-
* - Syntax-highlighted code blocks with Copy button
|
|
240
|
-
* - Mermaid diagram rendering (` ```mermaid ` fence)
|
|
241
|
-
* - Tables, lists, blockquotes scaled for chat density
|
|
242
|
-
* - User vs assistant styling modes (`isUser`)
|
|
243
|
-
* - Plain-text fast path: skips ReactMarkdown when content has no
|
|
244
|
-
* markdown syntax (cheaper render, preserves newlines via CSS)
|
|
245
|
-
* - Optional collapsible "Read more..." for long messages
|
|
246
|
-
*
|
|
247
|
-
* Custom URL schemes (chat mentions, deep-links, custom file viewers)
|
|
248
|
-
* are best handled with the declarative `linkRules` prop — see the
|
|
249
|
-
* type definition in `./types.ts` and the storybook for examples.
|
|
250
|
-
*
|
|
251
|
-
* @example
|
|
252
|
-
* ```tsx
|
|
253
|
-
* <MarkdownMessage content="# Hello\n\nThis is **bold** text." />
|
|
254
|
-
*
|
|
255
|
-
* // User message styling
|
|
256
|
-
* <MarkdownMessage content="Some content" isUser />
|
|
257
|
-
*
|
|
258
|
-
* // Custom URL scheme via linkRules
|
|
259
|
-
* <MarkdownMessage
|
|
260
|
-
* content="Talk to [Vps-audi](cmdop://machine/abc-123)"
|
|
261
|
-
* linkRules={[machineMentionRule]}
|
|
262
|
-
* />
|
|
263
|
-
* ```
|
|
264
|
-
*
|
|
265
|
-
* Memoised: re-renders only when props change. `content` is the main
|
|
266
|
-
* trigger — all other props (className, isUser, isCompact, etc.) are
|
|
267
|
-
* compared by value/reference. `onCollapseChange` is compared by
|
|
268
|
-
* reference — callers should stabilise it with useCallback.
|
|
269
|
-
*/
|
|
270
|
-
declare function MarkdownMessageRaw({ content, className, isUser, isCompact, plainText, customComponents, extraHrefProtocols, linkRules, collapsible, maxLength, maxLines, readMoreLabel, showLessLabel, defaultExpanded, onCollapseChange, }: MarkdownMessageProps): react_jsx_runtime.JSX.Element;
|
|
271
|
-
declare const MarkdownMessage: react__default.MemoExoticComponent<typeof MarkdownMessageRaw>;
|
|
272
|
-
|
|
273
|
-
/** Recursively concatenate the text content of a React.ReactNode tree.
|
|
274
|
-
* Used by the markdown renderers (e.g. `<pre>` extracting code) and
|
|
275
|
-
* by consumers that need a plain-string label out of link children. */
|
|
276
|
-
declare function extractTextFromChildren(children: react__default.ReactNode): string;
|
|
277
|
-
|
|
278
|
-
interface UseCollapsibleContentOptions {
|
|
279
|
-
/**
|
|
280
|
-
* Maximum character length before collapsing
|
|
281
|
-
* If both maxLength and maxLines are set, the stricter limit applies
|
|
282
|
-
*/
|
|
283
|
-
maxLength?: number;
|
|
284
|
-
/**
|
|
285
|
-
* Maximum number of lines before collapsing
|
|
286
|
-
* If both maxLength and maxLines are set, the stricter limit applies
|
|
287
|
-
*/
|
|
288
|
-
maxLines?: number;
|
|
289
|
-
/**
|
|
290
|
-
* Start in expanded state (default: false - starts collapsed)
|
|
291
|
-
*/
|
|
292
|
-
defaultExpanded?: boolean;
|
|
293
|
-
}
|
|
294
|
-
interface UseCollapsibleContentResult {
|
|
295
|
-
/** Whether content is currently collapsed */
|
|
296
|
-
isCollapsed: boolean;
|
|
297
|
-
/** Toggle between collapsed/expanded state */
|
|
298
|
-
toggleCollapsed: () => void;
|
|
299
|
-
/** Set collapsed state directly */
|
|
300
|
-
setCollapsed: (collapsed: boolean) => void;
|
|
301
|
-
/** Content to display (truncated if collapsed, full if expanded) */
|
|
302
|
-
displayContent: string;
|
|
303
|
-
/** Whether the content exceeds limits and should be collapsible */
|
|
304
|
-
shouldCollapse: boolean;
|
|
305
|
-
/** Original content length */
|
|
306
|
-
originalLength: number;
|
|
307
|
-
/** Original line count */
|
|
308
|
-
originalLineCount: number;
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Hook for managing collapsible content with "Read more..." functionality
|
|
312
|
-
*
|
|
313
|
-
* @example
|
|
314
|
-
* ```tsx
|
|
315
|
-
* const { isCollapsed, toggleCollapsed, displayContent, shouldCollapse } = useCollapsibleContent(
|
|
316
|
-
* longText,
|
|
317
|
-
* { maxLength: 300, maxLines: 5 }
|
|
318
|
-
* );
|
|
319
|
-
*
|
|
320
|
-
* return (
|
|
321
|
-
* <div>
|
|
322
|
-
* <Markdown content={displayContent} />
|
|
323
|
-
* {shouldCollapse && (
|
|
324
|
-
* <button onClick={toggleCollapsed}>
|
|
325
|
-
* {isCollapsed ? 'Read more...' : 'Show less'}
|
|
326
|
-
* </button>
|
|
327
|
-
* )}
|
|
328
|
-
* </div>
|
|
329
|
-
* );
|
|
330
|
-
* ```
|
|
331
|
-
*/
|
|
332
|
-
declare function useCollapsibleContent(content: string, options?: UseCollapsibleContentOptions): UseCollapsibleContentResult;
|
|
333
|
-
|
|
334
120
|
interface MarkerData {
|
|
335
121
|
id: string;
|
|
336
122
|
longitude: number;
|
|
@@ -3626,8 +3412,6 @@ interface ChatDestructiveStyles {
|
|
|
3626
3412
|
*/
|
|
3627
3413
|
declare function useChatDestructiveStyles(): ChatDestructiveStyles;
|
|
3628
3414
|
|
|
3629
|
-
declare const LazyChat: react.ComponentType<ChatRootProps>;
|
|
3630
|
-
|
|
3631
3415
|
interface MessageListProps {
|
|
3632
3416
|
messages?: ChatMessage[];
|
|
3633
3417
|
renderItem?: (m: ChatMessage, i: number) => ReactNode;
|
|
@@ -3836,6 +3620,203 @@ interface AudioToggleProps {
|
|
|
3836
3620
|
}
|
|
3837
3621
|
declare function AudioToggle({ size, variant, alwaysShow, className, }: AudioToggleProps): react_jsx_runtime.JSX.Element;
|
|
3838
3622
|
|
|
3623
|
+
declare const LazyChat: react.ComponentType<ChatRootProps>;
|
|
3624
|
+
|
|
3625
|
+
/**
|
|
3626
|
+
* Declarative rule for handling a custom URL scheme inside markdown.
|
|
3627
|
+
*
|
|
3628
|
+
* Each rule owns one href shape (e.g. `cmdop://machine/<uuid>`,
|
|
3629
|
+
* `obsidian://open?path=…`) and decides:
|
|
3630
|
+
*
|
|
3631
|
+
* 1. Whether the URL scheme survives sanitize (`protocols`).
|
|
3632
|
+
* 2. How to massage the source markdown before render
|
|
3633
|
+
* (`preprocess` — optional; useful for stripping decorative
|
|
3634
|
+
* prefixes like the `@` in `@[label](href)` so the chip alone
|
|
3635
|
+
* reads as the mention indicator).
|
|
3636
|
+
* 3. Which links it owns (`match`), and how to render them
|
|
3637
|
+
* (`render`, returning JSX).
|
|
3638
|
+
*
|
|
3639
|
+
* Rules compose: pass an array, and the renderer iterates top-to-bottom
|
|
3640
|
+
* picking the first `match` hit per `<a>`. Anything no rule claims
|
|
3641
|
+
* falls through to the built-in chat-link styling (or to a custom
|
|
3642
|
+
* `customComponents.a` if both are provided).
|
|
3643
|
+
*
|
|
3644
|
+
* Prefer `linkRules` over `customComponents` + `extraHrefProtocols` —
|
|
3645
|
+
* it's the same pieces with the boilerplate removed.
|
|
3646
|
+
*/
|
|
3647
|
+
interface LinkRule {
|
|
3648
|
+
/** Pre-process the raw markdown source before any rendering happens.
|
|
3649
|
+
* Pure / synchronous; identity-return when no transform applies. */
|
|
3650
|
+
preprocess?: (source: string) => string;
|
|
3651
|
+
/** Predicate against the resolved href. */
|
|
3652
|
+
match: (href: string) => boolean;
|
|
3653
|
+
/** Render the link this rule owns. `children` is the link's label
|
|
3654
|
+
* (markdown-rendered React content). */
|
|
3655
|
+
render: (props: {
|
|
3656
|
+
href: string;
|
|
3657
|
+
children: react__default.ReactNode;
|
|
3658
|
+
isUser: boolean;
|
|
3659
|
+
}) => react__default.ReactNode;
|
|
3660
|
+
/** URL scheme(s) to whitelist on the sanitize side, e.g. `['cmdop']`.
|
|
3661
|
+
* Bare schemes only — no `://`. Optional; omit for `http(s)` rules. */
|
|
3662
|
+
protocols?: readonly string[];
|
|
3663
|
+
/** Diagnostic label, surfaced in dev warnings. Optional. */
|
|
3664
|
+
name?: string;
|
|
3665
|
+
}
|
|
3666
|
+
interface MarkdownMessageProps {
|
|
3667
|
+
/** Markdown content to render */
|
|
3668
|
+
content: string;
|
|
3669
|
+
/** Additional CSS classes */
|
|
3670
|
+
className?: string;
|
|
3671
|
+
/** Whether the message is from the user (affects styling) */
|
|
3672
|
+
isUser?: boolean;
|
|
3673
|
+
/** Use compact size (text-xs instead of text-sm) */
|
|
3674
|
+
isCompact?: boolean;
|
|
3675
|
+
/**
|
|
3676
|
+
* Force the plain-text rendering path (single `<div>` with
|
|
3677
|
+
* `white-space: pre-wrap`, no ReactMarkdown). Use this for
|
|
3678
|
+
* user-authored content where markdown shouldn't be parsed.
|
|
3679
|
+
*
|
|
3680
|
+
* When `undefined` (default) we run a small heuristic
|
|
3681
|
+
* (`looksLikePlainProse`): short single-paragraph text without
|
|
3682
|
+
* markdown markers → plain; everything else → ReactMarkdown.
|
|
3683
|
+
*
|
|
3684
|
+
* Pass an explicit `true` / `false` to opt out of the heuristic
|
|
3685
|
+
* entirely.
|
|
3686
|
+
*/
|
|
3687
|
+
plainText?: boolean;
|
|
3688
|
+
/**
|
|
3689
|
+
* Per-tag overrides merged on top of the built-in renderers.
|
|
3690
|
+
*
|
|
3691
|
+
* Use this when you need custom rendering for a specific tag without
|
|
3692
|
+
* losing the chat-tuned defaults (links, code blocks with copy, etc).
|
|
3693
|
+
*
|
|
3694
|
+
* For custom URL-scheme link handling, prefer `linkRules` — it's the
|
|
3695
|
+
* same ergonomics with the per-consumer boilerplate removed.
|
|
3696
|
+
*/
|
|
3697
|
+
customComponents?: Partial<Components>;
|
|
3698
|
+
/**
|
|
3699
|
+
* Extra URL protocols allowed in `<a href>` after sanitize.
|
|
3700
|
+
*
|
|
3701
|
+
* The default schema strips anything that isn't
|
|
3702
|
+
* `http(s)/mailto/xmpp/irc(s)` — your custom renderer would receive
|
|
3703
|
+
* `href={undefined}` for `cmdop://…` / `obsidian://…` etc. Listing
|
|
3704
|
+
* the bare scheme here (e.g. `'cmdop'`, NOT `'cmdop://'`) opts it in.
|
|
3705
|
+
*
|
|
3706
|
+
* Use carefully: every protocol you add increases what the rendered
|
|
3707
|
+
* HTML can do via clicks. Stick to schemes you control.
|
|
3708
|
+
*/
|
|
3709
|
+
extraHrefProtocols?: readonly string[];
|
|
3710
|
+
/**
|
|
3711
|
+
* Declarative link rules — preferred over `customComponents` +
|
|
3712
|
+
* `extraHrefProtocols` for chat-style apps that want pluggable
|
|
3713
|
+
* URL-scheme handling without re-implementing the custom-`a`
|
|
3714
|
+
* boilerplate per consumer.
|
|
3715
|
+
*
|
|
3716
|
+
* If you provide both `linkRules` and `extraHrefProtocols`, the
|
|
3717
|
+
* effective protocol list is the union of the two.
|
|
3718
|
+
*/
|
|
3719
|
+
linkRules?: readonly LinkRule[];
|
|
3720
|
+
/**
|
|
3721
|
+
* Enable collapsible "Read more..." functionality
|
|
3722
|
+
* @default false
|
|
3723
|
+
*/
|
|
3724
|
+
collapsible?: boolean;
|
|
3725
|
+
/** Maximum character length before showing "Read more...". */
|
|
3726
|
+
maxLength?: number;
|
|
3727
|
+
/** Maximum number of lines before showing "Read more...". */
|
|
3728
|
+
maxLines?: number;
|
|
3729
|
+
/** Custom "Read more" button text. @default "Read more..." */
|
|
3730
|
+
readMoreLabel?: string;
|
|
3731
|
+
/** Custom "Show less" button text. @default "Show less" */
|
|
3732
|
+
showLessLabel?: string;
|
|
3733
|
+
/** Start expanded (only when `collapsible` is true). @default false */
|
|
3734
|
+
defaultExpanded?: boolean;
|
|
3735
|
+
/** Callback when collapsed state changes */
|
|
3736
|
+
onCollapseChange?: (isCollapsed: boolean) => void;
|
|
3737
|
+
}
|
|
3738
|
+
|
|
3739
|
+
/**
|
|
3740
|
+
* MarkdownMessage — chat-tuned markdown renderer.
|
|
3741
|
+
*
|
|
3742
|
+
* Features:
|
|
3743
|
+
* - GitHub Flavored Markdown (GFM) via remark-gfm
|
|
3744
|
+
* - Syntax-highlighted code blocks with Copy button
|
|
3745
|
+
* - Mermaid diagram rendering (` ```mermaid ` fence)
|
|
3746
|
+
* - Tables, lists, blockquotes scaled for chat density
|
|
3747
|
+
* - User vs assistant styling modes (`isUser`)
|
|
3748
|
+
* - Plain-text fast path: skips ReactMarkdown when content has no
|
|
3749
|
+
* markdown syntax (cheaper render, preserves newlines via CSS)
|
|
3750
|
+
* - Optional collapsible "Read more..." for long messages
|
|
3751
|
+
*
|
|
3752
|
+
* Custom URL schemes (chat mentions, deep-links, custom file viewers)
|
|
3753
|
+
* are best handled with the declarative `linkRules` prop — see the
|
|
3754
|
+
* type definition in `./types.ts` and the storybook for examples.
|
|
3755
|
+
*
|
|
3756
|
+
* @example
|
|
3757
|
+
* ```tsx
|
|
3758
|
+
* <MarkdownMessage content="# Hello\n\nThis is **bold** text." />
|
|
3759
|
+
*
|
|
3760
|
+
* // User message styling
|
|
3761
|
+
* <MarkdownMessage content="Some content" isUser />
|
|
3762
|
+
*
|
|
3763
|
+
* // Custom URL scheme via linkRules
|
|
3764
|
+
* <MarkdownMessage
|
|
3765
|
+
* content="Talk to [Vps-audi](cmdop://machine/abc-123)"
|
|
3766
|
+
* linkRules={[machineMentionRule]}
|
|
3767
|
+
* />
|
|
3768
|
+
* ```
|
|
3769
|
+
*
|
|
3770
|
+
* Memoised: re-renders only when props change. `content` is the main
|
|
3771
|
+
* trigger — all other props (className, isUser, isCompact, etc.) are
|
|
3772
|
+
* compared by value/reference. `onCollapseChange` is compared by
|
|
3773
|
+
* reference — callers should stabilise it with useCallback.
|
|
3774
|
+
*/
|
|
3775
|
+
declare function MarkdownMessageRaw({ content, className, isUser, isCompact, plainText, customComponents, extraHrefProtocols, linkRules, collapsible, maxLength, maxLines, readMoreLabel, showLessLabel, defaultExpanded, onCollapseChange, }: MarkdownMessageProps): react_jsx_runtime.JSX.Element;
|
|
3776
|
+
declare const MarkdownMessage: react__default.MemoExoticComponent<typeof MarkdownMessageRaw>;
|
|
3777
|
+
|
|
3778
|
+
/** Recursively concatenate the text content of a React.ReactNode tree.
|
|
3779
|
+
* Used by the markdown renderers (e.g. `<pre>` extracting code) and
|
|
3780
|
+
* by consumers that need a plain-string label out of link children. */
|
|
3781
|
+
declare function extractTextFromChildren(children: react__default.ReactNode): string;
|
|
3782
|
+
|
|
3783
|
+
interface ActionRowProps {
|
|
3784
|
+
/** Raw text to copy — pass the same source string used for render. */
|
|
3785
|
+
value: string;
|
|
3786
|
+
/** Bubble side. Just controls flex alignment; nothing is mirrored. */
|
|
3787
|
+
isUser: boolean;
|
|
3788
|
+
/**
|
|
3789
|
+
* Whether the row is currently shown. Owner-controlled (typically
|
|
3790
|
+
* `<ChatMessageRow>` toggles this on hover with a small close delay).
|
|
3791
|
+
* The component is intentionally dumb about visibility — owners
|
|
3792
|
+
* have full control over reveal logic (hover, focus, always-on,
|
|
3793
|
+
* touch behaviour, etc.).
|
|
3794
|
+
*/
|
|
3795
|
+
visible: boolean;
|
|
3796
|
+
}
|
|
3797
|
+
declare function ActionRowRaw({ value, isUser, visible }: ActionRowProps): react_jsx_runtime.JSX.Element;
|
|
3798
|
+
declare const ActionRow: react__default.MemoExoticComponent<typeof ActionRowRaw>;
|
|
3799
|
+
|
|
3800
|
+
interface ChatMessageRowProps {
|
|
3801
|
+
/** Side of the conversation — drives flex alignment and `isUser`
|
|
3802
|
+
* passed to `actions`. */
|
|
3803
|
+
isUser: boolean;
|
|
3804
|
+
/** The bubble (your own JSX). Anything goes — `<MarkdownMessage>`,
|
|
3805
|
+
* custom card, multi-element composition. */
|
|
3806
|
+
children: react__default.ReactNode;
|
|
3807
|
+
/** Render-prop for the action row. Receives `visible` so the row
|
|
3808
|
+
* knows when to fade in/out. Render `null` to opt out. */
|
|
3809
|
+
actions?: (visible: boolean, isUser: boolean) => react__default.ReactNode;
|
|
3810
|
+
/** Close delay in ms after the cursor leaves the row. Long enough
|
|
3811
|
+
* to bridge cursor travel from bubble → action button without
|
|
3812
|
+
* flicker. Default 250ms (Radix Tooltip-ish). */
|
|
3813
|
+
closeDelayMs?: number;
|
|
3814
|
+
/** Optional class on the column container. */
|
|
3815
|
+
className?: string;
|
|
3816
|
+
}
|
|
3817
|
+
declare function ChatMessageRowRaw({ isUser, children, actions, closeDelayMs, className, }: ChatMessageRowProps): react_jsx_runtime.JSX.Element;
|
|
3818
|
+
declare const ChatMessageRow: react__default.MemoExoticComponent<typeof ChatMessageRowRaw>;
|
|
3819
|
+
|
|
3839
3820
|
/**
|
|
3840
3821
|
* PrettyCode Component - Dynamic Import Wrapper
|
|
3841
3822
|
*
|
|
@@ -4889,4 +4870,60 @@ declare function useBlobUrlCleanup(key: string | null): void;
|
|
|
4889
4870
|
*/
|
|
4890
4871
|
declare function generateContentKey(content: ArrayBuffer): string;
|
|
4891
4872
|
|
|
4892
|
-
|
|
4873
|
+
interface UseCollapsibleContentOptions {
|
|
4874
|
+
/**
|
|
4875
|
+
* Maximum character length before collapsing
|
|
4876
|
+
* If both maxLength and maxLines are set, the stricter limit applies
|
|
4877
|
+
*/
|
|
4878
|
+
maxLength?: number;
|
|
4879
|
+
/**
|
|
4880
|
+
* Maximum number of lines before collapsing
|
|
4881
|
+
* If both maxLength and maxLines are set, the stricter limit applies
|
|
4882
|
+
*/
|
|
4883
|
+
maxLines?: number;
|
|
4884
|
+
/**
|
|
4885
|
+
* Start in expanded state (default: false - starts collapsed)
|
|
4886
|
+
*/
|
|
4887
|
+
defaultExpanded?: boolean;
|
|
4888
|
+
}
|
|
4889
|
+
interface UseCollapsibleContentResult {
|
|
4890
|
+
/** Whether content is currently collapsed */
|
|
4891
|
+
isCollapsed: boolean;
|
|
4892
|
+
/** Toggle between collapsed/expanded state */
|
|
4893
|
+
toggleCollapsed: () => void;
|
|
4894
|
+
/** Set collapsed state directly */
|
|
4895
|
+
setCollapsed: (collapsed: boolean) => void;
|
|
4896
|
+
/** Content to display (truncated if collapsed, full if expanded) */
|
|
4897
|
+
displayContent: string;
|
|
4898
|
+
/** Whether the content exceeds limits and should be collapsible */
|
|
4899
|
+
shouldCollapse: boolean;
|
|
4900
|
+
/** Original content length */
|
|
4901
|
+
originalLength: number;
|
|
4902
|
+
/** Original line count */
|
|
4903
|
+
originalLineCount: number;
|
|
4904
|
+
}
|
|
4905
|
+
/**
|
|
4906
|
+
* Hook for managing collapsible content with "Read more..." functionality
|
|
4907
|
+
*
|
|
4908
|
+
* @example
|
|
4909
|
+
* ```tsx
|
|
4910
|
+
* const { isCollapsed, toggleCollapsed, displayContent, shouldCollapse } = useCollapsibleContent(
|
|
4911
|
+
* longText,
|
|
4912
|
+
* { maxLength: 300, maxLines: 5 }
|
|
4913
|
+
* );
|
|
4914
|
+
*
|
|
4915
|
+
* return (
|
|
4916
|
+
* <div>
|
|
4917
|
+
* <Markdown content={displayContent} />
|
|
4918
|
+
* {shouldCollapse && (
|
|
4919
|
+
* <button onClick={toggleCollapsed}>
|
|
4920
|
+
* {isCollapsed ? 'Read more...' : 'Show less'}
|
|
4921
|
+
* </button>
|
|
4922
|
+
* )}
|
|
4923
|
+
* </div>
|
|
4924
|
+
* );
|
|
4925
|
+
* ```
|
|
4926
|
+
*/
|
|
4927
|
+
declare function useCollapsibleContent(content: string, options?: UseCollapsibleContentOptions): UseCollapsibleContentResult;
|
|
4928
|
+
|
|
4929
|
+
export { ANCHOR, ActionRow, type ApiKey, ArrayFieldItemTemplate, ArrayFieldTemplate, type AspectRatioValue, type AttachmentRenderer, type AttachmentRendererArgs, type AttachmentRendererMap, Attachments, AttachmentsGrid, type AttachmentsGridProps, AttachmentsList, type AttachmentsListProps, type AttachmentsProps, Player as AudioPlayer, type PlayerProps as AudioPlayerProps, AudioToggle, type AudioToggleProps, BUBBLE_SURFACE, BaseInputTemplate, type BlobSource, CHAT_EVENT_NAME, CSS_VARS, CardLoadingFallback, type ChatAction, type ChatAssistantContext, type ChatAttachment, type ChatAudioConfig, type ChatAudioEvent, type ChatAudioSounds, type ChatBubbleStyles, type ChatBubbleSurface, type ChatConfig, type ChatContextValue, type ChatDestructiveStyles, type ChatDisplayMode, ChatDock, type ChatDockMode, type ChatDockPrefs, type ChatDockProps, type ChatDockSide, type ChatEventDetail, ChatFAB, type ChatFABPosition, type ChatFABProps, type ChatFABSize, type ChatFABVariant, ChatGreeting, type ChatGreetingProps, ChatHeader, ChatHeaderActionButton, type ChatHeaderActionButtonProps, ChatHeaderAudioToggle, type ChatHeaderAudioToggleProps, ChatHeaderLanguageButton, type ChatHeaderLanguageButtonProps, ChatHeaderModeToggle, type ChatHeaderModeToggleProps, type ChatHeaderProps, ChatHeaderResetButton, type ChatHeaderResetButtonProps, type ChatLabels, ChatLauncher, type ChatLauncherGreeting, type ChatLauncherHotkey, type ChatLauncherProps, type ChatLightboxState, type ChatLogScope, type ChatLogger, type ChatMessage, ChatMessageRow, type ChatPersona, type ChatPrefs, type ChatPresencePhase, ChatProvider, type ChatProviderProps, type ChatRole, type ChatRoleStyles, ChatRoot, type ChatRootProps, type ChatSource, type ChatState, type ChatStreamEvent, type ChatToolCall, type ChatTransport, ChatUnreadPreview, type ChatUnreadPreviewProps, type ChatUserContext, CheckboxWidget, ColorWidget, Composer, type ComposerProps, type CreateLazyComponentOptions, type CreateSessionOptions, type CreateVideoErrorFallbackOptions, CronScheduler, type CronSchedulerContextValue, type CronSchedulerProps, CronSchedulerProvider, type CronSchedulerState, CustomInput, type DASHSource, DEFAULT_CHAT_SOUNDS, DEFAULT_DOCK_PREFS, DEFAULT_LABELS, DEFAULT_SIDEBAR, DEFAULT_Z_INDEX, DESTRUCTIVE_SURFACE, type DataUrlSource, DayChips, DiffEditor, type DiffEditorProps, type DisabledWhenRule, Editor, type EditorContextValue, type EditorFile, type EditorOptions, type EditorProps, EditorProvider, type EditorRef, EmptyState, type EmptyStateProps, ErrorBanner, type ErrorBannerProps, type ErrorFallbackProps, ErrorListTemplate, FieldTemplate, type Focusable, type HLSSource, HOTKEYS, type HistoryPage, type HttpTransportConfig, type ImageFile, ImageViewer, type ImageViewerProps, type JsonFormContext, type JsonFormDensity, JsonSchemaForm, type JsonSchemaFormProps, JsonTreeComponent as JsonTree, type JsonTreeConfig, type JsonTreeProps, JumpToLatest, type JumpToLatestProps, LIMITS, LazyPlayer as LazyAudioPlayer, LazyChat, type ChatRootProps as LazyChatProps, LazyCronScheduler, LazyImageViewer, LazyJsonSchemaForm, LazyJsonTree, LazyLottiePlayer, LazyMapContainer, LazyMapView, LazyMermaid, LazyOpenapiViewer, LazyPrettyCode, LazyTree, TreeRootProps as LazyTreeProps, LazyVideoPlayer, LazyWrapper, type LazyWrapperProps, type LinkRule, LoadingFallback, type LoadingFallbackProps, type LottieDirection, LottiePlayer, type LottiePlayerProps, type LottieSize, type LottieSpeed, type MapContainerProps, MapLoadingFallback, type MapStyleKey, type MapViewport, MarkdownEditor, type MarkdownEditorProps, MarkdownMessage, MarkdownMessage as MarkdownMessageDefault, type MarkdownMessageProps, type MarkerData, type MentionAttrs, type MentionConfig, type MentionItem, type MentionMarkdownRenderer, Mermaid, type MermaidProps, MessageActions, type MessageActionsProps, MessageBubble, type MessageBubbleProps, MessageList, type MessageListHandle, type MessageListProps, type MockTransportOptions, type MonthDay, MonthDayGrid, NativeProvider, NumberWidget, ObjectFieldTemplate, Playground as OpenapiViewer, type ParseSSEOptions, type PlayerMode, type PlaygroundConfig, type PlaygroundProps$1 as PlaygroundProps, PrettyCode, type PrettyCodeProps$1 as PrettyCodeProps, type PydanticAIChatTransportOpts, type PydanticAIEvent, type ResolveFileSourceOptions, STORAGE_KEYS, SchedulePreview, type ScheduleType, ScheduleTypeSelector, type SchemaSource, SelectWidget, type SendOptions, type SessionInfo, type SimpleStreamSource, SliderWidget, Sources, type SourcesProps, Spinner, type StreamOptions, StreamProvider, type StreamSource, StreamingIndicator, type StreamingIndicatorProps, SwitchWidget, TOGGLE, TOOL_CALL, TextWidget, TimeSelector, type TokenBuffer, ToolCalls, type ToolCallsProps, type ToolIdQueue, type ToolPayloadFallback, type ToolPayloadKind, type ToolPayloadMatcher, TransportError, TreeRootProps, type UiGroup, type UrlSource, type UseAutoFocusOnStreamEndOptions, type UseChatAudioReturn, type UseChatComposerOptions, type UseChatComposerReturn, type UseChatConfig, type UseChatDockPrefsOptions, type UseChatDockPrefsReturn, type UseChatHistoryOptions, type UseChatLayoutConfig, type UseChatLayoutReturn, type UseChatLightboxReturn, type UseChatResetOptions, type UseChatResetReturn, type UseChatReturn, type UseChatScrollOptions, type UseChatScrollReturn, type UseChatUnreadOptions, type UseChatUnreadReturn, type UseCollapsibleContentOptions, type UseCollapsibleContentResult, type UseEditorReturn, type UseFocusOnEmptyClickOptions, type UseLottieOptions, type UseLottieReturn, type UseMonacoReturn, type UseVisitorFingerprintOptions, VideoControls, VideoErrorFallback, type VideoErrorFallbackProps, VideoPlayer, type VideoPlayerContextValue, type VideoPlayerProps, VideoPlayerProvider, type VideoPlayerProviderProps, type VideoPlayerRef, type VideoSourceUnion, VidstackProvider, type VimeoSource, type WeekDay, type YouTubeSource, buildCron, collectImageAttachments, createHttpTransport, createId, createLazyComponent, createMockTransport, createPydanticAIChatTransport, createPydanticAISSEMap, createTokenBuffer, createToolIdQueue, createVideoErrorFallback, deriveInitials, dispatchToolPayload, evaluateDisabledWhen, extractTextFromChildren, generateContentKey, getChatLogger, getRequiredFields, hasRequiredFields, humanizeCron, initialState, isGeoJSONFeatureCollection, isLatLng, isPlainObject, isSimpleStreamSource, isStringValue, isSubmittableDraft, isValidCron, mapPydanticAIEvent, mentionPresets, mergeDefaults, normalizeFormData, parseCron, parseSSE, reducer, resolveFileSource, resolvePersona, resolvePlayerMode, resolveStreamSource, safeJsonParse, safeJsonStringify, sanitizeDraft, useAudioCache, useAutoFocusOnStreamEnd, useBlobUrlCleanup, useChat, useChatAudio, useChatAudioPrefs, useChatBubbleStyles, useChatComposer, useChatContext, useChatContextOptional, useChatDestructiveStyles, useChatDockPrefs, useChatHistory, useChatLayout, useChatLightbox, useChatPresence, useChatReset, useChatRoleStyles, useChatScroll, useChatUnread, useCollapsibleContent, useCronCustom, useCronMonthDays, useCronPreview, useCronScheduler, useCronSchedulerContext, useCronTime, useCronType, useCronWeekDays, useEditor, useEditorContext, useFocusOnEmptyClick, useImageCache, useLanguage, useLottie, useMediaCacheStore, useMonaco, useRegisterComposer, useVideoCache, useVideoPlayerContext, useVideoPlayerSettings, useVisitorFingerprint, validateRequiredFields, validateSchema };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { createLazyComponent, MapLoadingFallback, CardLoadingFallback, LoadingFallback } from './chunk-
|
|
2
|
-
export { CardLoadingFallback, ChatDock, ChatFAB, ChatGreeting, ChatHeader, ChatHeaderActionButton, ChatHeaderAudioToggle, ChatHeaderLanguageButton, ChatHeaderModeToggle, ChatHeaderResetButton, ChatLauncher, ChatUnreadPreview, LazyWrapper, LoadingFallback, MapLoadingFallback, Spinner, createLazyComponent, useChatPresence, useChatReset } from './chunk-
|
|
3
|
-
|
|
1
|
+
import { createLazyComponent, MapLoadingFallback, CardLoadingFallback, LoadingFallback } from './chunk-NTVBIIUD.mjs';
|
|
2
|
+
export { CardLoadingFallback, ChatDock, ChatFAB, ChatGreeting, ChatHeader, ChatHeaderActionButton, ChatHeaderAudioToggle, ChatHeaderLanguageButton, ChatHeaderModeToggle, ChatHeaderResetButton, ChatLauncher, ChatUnreadPreview, LazyWrapper, LoadingFallback, MapLoadingFallback, Spinner, createLazyComponent, useChatPresence, useChatReset } from './chunk-NTVBIIUD.mjs';
|
|
3
|
+
export { Attachments, AttachmentsGrid, AttachmentsList, ChatRoot, Composer, EmptyState, ErrorBanner, JumpToLatest, MessageActions, MessageBubble, MessageList, Sources, StreamingIndicator, ToolCalls, deriveInitials, isSubmittableDraft, resolvePersona, sanitizeDraft, useAutoFocusOnStreamEnd, useChatBubbleStyles, useChatComposer, useChatDestructiveStyles, useChatRoleStyles, useFocusOnEmptyClick, useRegisterComposer } from './chunk-6ZX2G25W.mjs';
|
|
4
|
+
import { LIMITS, createId, useChatContext, useChatContextOptional } from './chunk-DMX7W4XZ.mjs';
|
|
5
|
+
export { CHAT_EVENT_NAME, CSS_VARS, ChatProvider, DEFAULT_CHAT_SOUNDS, DEFAULT_LABELS, DEFAULT_SIDEBAR, DEFAULT_Z_INDEX, HOTKEYS, LIMITS, STORAGE_KEYS, createId, createTokenBuffer, getChatLogger, initialState, reducer, useChat, useChatAudio, useChatContext, useChatContextOptional, useChatLayout } from './chunk-DMX7W4XZ.mjs';
|
|
4
6
|
export { ArrayFieldItemTemplate, ArrayFieldTemplate, BaseInputTemplate, CheckboxWidget, ColorWidget, ErrorListTemplate, FieldTemplate, JsonSchemaForm, NumberWidget, ObjectFieldTemplate, SelectWidget, SliderWidget, SwitchWidget, TextWidget, evaluateDisabledWhen, getRequiredFields, hasRequiredFields, mergeDefaults, normalizeFormData, safeJsonParse, safeJsonStringify, validateRequiredFields, validateSchema } from './chunk-GYIO7W7M.mjs';
|
|
5
7
|
export { useLottie } from './chunk-ODO4GMW7.mjs';
|
|
6
8
|
export { Player as AudioPlayer } from './chunk-VWQ5WOIL.mjs';
|
|
@@ -8,14 +10,12 @@ export { NativeProvider, StreamProvider, VideoControls, VideoErrorFallback, Vide
|
|
|
8
10
|
export { ImageViewer } from './chunk-OBRSGM64.mjs';
|
|
9
11
|
export { generateContentKey, useAudioCache, useBlobUrlCleanup, useImageCache, useMediaCacheStore, useVideoCache, useVideoPlayerSettings } from './chunk-C6GXVH5J.mjs';
|
|
10
12
|
export { CronSchedulerProvider, CustomInput, DayChips, MonthDayGrid, SchedulePreview, ScheduleTypeSelector, TimeSelector, buildCron, humanizeCron, isValidCron, parseCron, useCronCustom, useCronMonthDays, useCronPreview, useCronScheduler, useCronSchedulerContext, useCronTime, useCronType, useCronWeekDays } from './chunk-PVAX67JG.mjs';
|
|
11
|
-
|
|
12
|
-
import { LIMITS, createId, useChatContext, useChatContextOptional } from './chunk-DMX7W4XZ.mjs';
|
|
13
|
-
export { CHAT_EVENT_NAME, CSS_VARS, ChatProvider, DEFAULT_CHAT_SOUNDS, DEFAULT_LABELS, DEFAULT_SIDEBAR, DEFAULT_Z_INDEX, HOTKEYS, LIMITS, STORAGE_KEYS, createId, createTokenBuffer, getChatLogger, initialState, reducer, useChat, useChatAudio, useChatContext, useChatContextOptional, useChatLayout } from './chunk-DMX7W4XZ.mjs';
|
|
13
|
+
import './chunk-UNCS5V5F.mjs';
|
|
14
14
|
export { TreeError, TreeSkeleton, createDemoTree } from './chunk-B6IR5KSC.mjs';
|
|
15
15
|
export { DEFAULT_TREE_APPEARANCE, DEFAULT_TREE_LABELS, TreeRoot as Tree, TreeChevron, TreeContent, TreeEmpty, TreeIcon, TreeIndentGuides, TreeLabel, TreeProvider, TreeRoot, TreeRow, TreeSearchInput, appearanceToStyle, clearTreeState, createChildCache, flattenTree, loadTreeState, resolveAppearance, resolveChildren, saveTreeState, useTreeActions, useTreeContext, useTreeExpansion, useTreeFocus, useTreeKeyboard, useTreeLabels, useTreeRows, useTreeSearch, useTreeSelection, useTreeTypeAhead } from './chunk-ZL7FH4NW.mjs';
|
|
16
16
|
import { useMapContext } from './chunk-7CWGZPO3.mjs';
|
|
17
17
|
import { PlaygroundProvider } from './chunk-Y6UTOBF6.mjs';
|
|
18
|
-
export { ANCHOR, BUBBLE_SURFACE, DESTRUCTIVE_SURFACE, MarkdownMessage, Mermaid_default as Mermaid, PrettyCode_default as PrettyCode, TOGGLE, TOOL_CALL, extractTextFromChildren, useCollapsibleContent } from './chunk-
|
|
18
|
+
export { ANCHOR, ActionRow, BUBBLE_SURFACE, ChatMessageRow, DESTRUCTIVE_SURFACE, MarkdownMessage, MarkdownMessage_default as MarkdownMessageDefault, Mermaid_default as Mermaid, PrettyCode_default as PrettyCode, TOGGLE, TOOL_CALL, extractTextFromChildren, useCollapsibleContent } from './chunk-2NG4SXEP.mjs';
|
|
19
19
|
export { JsonTree_default as JsonTree } from './chunk-ECONRHIG.mjs';
|
|
20
20
|
import './chunk-KNEQRUBA.mjs';
|
|
21
21
|
import { __name, __publicField } from './chunk-N2XQF2OL.mjs';
|
|
@@ -926,7 +926,7 @@ function OpenapiLoadingFallback() {
|
|
|
926
926
|
}
|
|
927
927
|
__name(OpenapiLoadingFallback, "OpenapiLoadingFallback");
|
|
928
928
|
var LazyDocsLayout = createLazyComponent(
|
|
929
|
-
() => import('./DocsLayout-
|
|
929
|
+
() => import('./DocsLayout-EKASBSP7.mjs').then((mod) => ({ default: mod.DocsLayout })),
|
|
930
930
|
{
|
|
931
931
|
displayName: "LazyDocsLayout",
|
|
932
932
|
fallback: /* @__PURE__ */ jsx(OpenapiLoadingFallback, {})
|
|
@@ -1778,21 +1778,6 @@ function collectImageAttachments(messages) {
|
|
|
1778
1778
|
return out;
|
|
1779
1779
|
}
|
|
1780
1780
|
__name(collectImageAttachments, "collectImageAttachments");
|
|
1781
|
-
var LazyChat = createLazyComponent(
|
|
1782
|
-
() => import('./ChatRoot-4KM2JMGA.mjs').then((m) => ({ default: m.ChatRoot })),
|
|
1783
|
-
{
|
|
1784
|
-
displayName: "LazyChat",
|
|
1785
|
-
fallback: /* @__PURE__ */ jsx(LoadingFallback, { minHeight: 320, text: "Loading chat\u2026" })
|
|
1786
|
-
}
|
|
1787
|
-
);
|
|
1788
|
-
createLazyComponent(
|
|
1789
|
-
() => import('./launcher-5WYPDPEP.mjs').then((m) => ({ default: m.ChatLauncher })),
|
|
1790
|
-
{
|
|
1791
|
-
displayName: "LazyChatLauncher",
|
|
1792
|
-
// Launcher renders a floating FAB by default — no inline placeholder.
|
|
1793
|
-
fallback: null
|
|
1794
|
-
}
|
|
1795
|
-
);
|
|
1796
1781
|
function AudioToggle({
|
|
1797
1782
|
size = "icon",
|
|
1798
1783
|
variant = "ghost",
|
|
@@ -1821,6 +1806,21 @@ function AudioToggle({
|
|
|
1821
1806
|
);
|
|
1822
1807
|
}
|
|
1823
1808
|
__name(AudioToggle, "AudioToggle");
|
|
1809
|
+
var LazyChat = createLazyComponent(
|
|
1810
|
+
() => import('./ChatRoot-FITF5RVP.mjs').then((m) => ({ default: m.ChatRoot })),
|
|
1811
|
+
{
|
|
1812
|
+
displayName: "LazyChat",
|
|
1813
|
+
fallback: /* @__PURE__ */ jsx(LoadingFallback, { minHeight: 320, text: "Loading chat\u2026" })
|
|
1814
|
+
}
|
|
1815
|
+
);
|
|
1816
|
+
createLazyComponent(
|
|
1817
|
+
() => import('./launcher-5Y42OBSN.mjs').then((m) => ({ default: m.ChatLauncher })),
|
|
1818
|
+
{
|
|
1819
|
+
displayName: "LazyChatLauncher",
|
|
1820
|
+
// Launcher renders a floating FAB by default — no inline placeholder.
|
|
1821
|
+
fallback: null
|
|
1822
|
+
}
|
|
1823
|
+
);
|
|
1824
1824
|
var LottiePlayerClient = lazy(
|
|
1825
1825
|
() => import('./LottiePlayer.client-5LDSSJWS.mjs').then((mod) => ({ default: mod.LottiePlayer }))
|
|
1826
1826
|
);
|
|
@@ -1833,7 +1833,7 @@ function LottiePlayer(props) {
|
|
|
1833
1833
|
}
|
|
1834
1834
|
__name(LottiePlayer, "LottiePlayer");
|
|
1835
1835
|
var DocsLayout = lazy(
|
|
1836
|
-
() => import('./DocsLayout-
|
|
1836
|
+
() => import('./DocsLayout-EKASBSP7.mjs').then((mod) => ({ default: mod.DocsLayout }))
|
|
1837
1837
|
);
|
|
1838
1838
|
var LoadingFallback6 = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center min-h-[400px]", children: /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: "Loading API Playground..." }) }), "LoadingFallback");
|
|
1839
1839
|
var Playground = /* @__PURE__ */ __name(({ config }) => {
|