@djangocfg/ui-tools 2.1.387 → 2.1.390

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 (58) hide show
  1. package/dist/ChatRoot-EFNXQXXN.cjs +15 -0
  2. package/dist/{ChatRoot-4KM2JMGA.mjs.map → ChatRoot-EFNXQXXN.cjs.map} +1 -1
  3. package/dist/ChatRoot-FITF5RVP.mjs +6 -0
  4. package/dist/{ChatRoot-OILWMMZ6.cjs.map → ChatRoot-FITF5RVP.mjs.map} +1 -1
  5. package/dist/{DocsLayout-2P3ONDWJ.mjs → DocsLayout-EKASBSP7.mjs} +3 -3
  6. package/dist/{DocsLayout-2P3ONDWJ.mjs.map → DocsLayout-EKASBSP7.mjs.map} +1 -1
  7. package/dist/{DocsLayout-2YZNS5VK.cjs → DocsLayout-OURFYWQE.cjs} +8 -8
  8. package/dist/{DocsLayout-2YZNS5VK.cjs.map → DocsLayout-OURFYWQE.cjs.map} +1 -1
  9. package/dist/{chunk-HIK6BPL7.mjs → chunk-2NG4SXEP.mjs} +6 -5
  10. package/dist/chunk-2NG4SXEP.mjs.map +1 -0
  11. package/dist/{chunk-TSNRU3UO.cjs → chunk-4LFB7I5K.cjs} +15 -15
  12. package/dist/{chunk-TSNRU3UO.cjs.map → chunk-4LFB7I5K.cjs.map} +1 -1
  13. package/dist/{chunk-HNIMIIFR.mjs → chunk-6ZX2G25W.mjs} +3 -3
  14. package/dist/{chunk-HNIMIIFR.mjs.map → chunk-6ZX2G25W.mjs.map} +1 -1
  15. package/dist/{chunk-FIRK5CEH.cjs → chunk-7IYXZUJO.cjs} +8 -4
  16. package/dist/chunk-7IYXZUJO.cjs.map +1 -0
  17. package/dist/{chunk-BVESQTBM.mjs → chunk-NTVBIIUD.mjs} +2 -2
  18. package/dist/{chunk-BVESQTBM.mjs.map → chunk-NTVBIIUD.mjs.map} +1 -1
  19. package/dist/{chunk-L25HA3TM.cjs → chunk-W75B7Y6C.cjs} +2 -2
  20. package/dist/{chunk-L25HA3TM.cjs.map → chunk-W75B7Y6C.cjs.map} +1 -1
  21. package/dist/index.cjs +265 -253
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +255 -218
  24. package/dist/index.d.ts +255 -218
  25. package/dist/index.mjs +24 -24
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/{launcher-5WYPDPEP.mjs → launcher-5Y42OBSN.mjs} +4 -5
  28. package/dist/{launcher-5WYPDPEP.mjs.map → launcher-5Y42OBSN.mjs.map} +1 -1
  29. package/dist/{launcher-QAOG2NUI.cjs → launcher-PMW2YB24.cjs} +16 -17
  30. package/dist/{launcher-QAOG2NUI.cjs.map → launcher-PMW2YB24.cjs.map} +1 -1
  31. package/package.json +9 -9
  32. package/src/components/index.ts +2 -2
  33. package/src/index.ts +20 -2
  34. package/src/tools/Chat/components/MessageBubble.tsx +1 -1
  35. package/src/tools/Chat/index.ts +1 -1
  36. package/src/tools/Chat/lazy.tsx +91 -4
  37. package/src/{components/markdown → tools}/MarkdownMessage/CodeBlock.tsx +1 -1
  38. package/src/{components/markdown → tools}/MarkdownMessage/CollapseToggle.tsx +1 -1
  39. package/src/{components/markdown → tools}/MarkdownMessage/MarkdownMessage.tsx +1 -1
  40. package/src/{components/markdown → tools}/MarkdownMessage/components.tsx +2 -2
  41. package/src/tools/OpenapiViewer/components/DocsLayout/ApiIntroSection.tsx +1 -1
  42. package/src/tools/OpenapiViewer/components/DocsLayout/EndpointDoc/Header/index.tsx +1 -1
  43. package/dist/ChatRoot-4KM2JMGA.mjs +0 -6
  44. package/dist/ChatRoot-OILWMMZ6.cjs +0 -15
  45. package/dist/chunk-FIRK5CEH.cjs.map +0 -1
  46. package/dist/chunk-HIK6BPL7.mjs.map +0 -1
  47. package/dist/launcher-FCI3LTDY.css +0 -7
  48. package/dist/launcher-FCI3LTDY.css.map +0 -1
  49. package/src/components/markdown/index.ts +0 -19
  50. /package/src/{components/markdown → hooks}/useCollapsibleContent.ts +0 -0
  51. /package/src/{components/markdown → tools}/MarkdownMessage/ActionRow.tsx +0 -0
  52. /package/src/{components/markdown → tools}/MarkdownMessage/ChatMessageRow.tsx +0 -0
  53. /package/src/{components/markdown → tools}/MarkdownMessage/README.md +0 -0
  54. /package/src/{components/markdown → tools}/MarkdownMessage/index.ts +0 -0
  55. /package/src/{components/markdown → tools}/MarkdownMessage/linkRules.ts +0 -0
  56. /package/src/{components/markdown → tools}/MarkdownMessage/plainText.ts +0 -0
  57. /package/src/{components/markdown → tools}/MarkdownMessage/sanitize.ts +0 -0
  58. /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
- export { ANCHOR, 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, 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, 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 };
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-BVESQTBM.mjs';
2
- export { CardLoadingFallback, ChatDock, ChatFAB, ChatGreeting, ChatHeader, ChatHeaderActionButton, ChatHeaderAudioToggle, ChatHeaderLanguageButton, ChatHeaderModeToggle, ChatHeaderResetButton, ChatLauncher, ChatUnreadPreview, LazyWrapper, LoadingFallback, MapLoadingFallback, Spinner, createLazyComponent, useChatPresence, useChatReset } from './chunk-BVESQTBM.mjs';
3
- import './chunk-UNCS5V5F.mjs';
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
- 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-HNIMIIFR.mjs';
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-HIK6BPL7.mjs';
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-2P3ONDWJ.mjs').then((mod) => ({ default: mod.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-2P3ONDWJ.mjs').then((mod) => ({ default: mod.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 }) => {