@djangocfg/ui-tools 2.1.355 → 2.1.357

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 (70) hide show
  1. package/dist/ChatRoot-6U7633X3.mjs +5 -0
  2. package/dist/{ChatRoot-2KT32NFJ.cjs.map → ChatRoot-6U7633X3.mjs.map} +1 -1
  3. package/dist/ChatRoot-HARTIAJ5.cjs +14 -0
  4. package/dist/{ChatRoot-VSIBJLE2.mjs.map → ChatRoot-HARTIAJ5.cjs.map} +1 -1
  5. package/dist/{DocsLayout-VFPPNKSQ.mjs → DocsLayout-HGYIJTF3.mjs} +4 -4
  6. package/dist/{DocsLayout-VFPPNKSQ.mjs.map → DocsLayout-HGYIJTF3.mjs.map} +1 -1
  7. package/dist/{DocsLayout-N5ZJZPBY.cjs → DocsLayout-OQHDNKZE.cjs} +11 -11
  8. package/dist/{DocsLayout-N5ZJZPBY.cjs.map → DocsLayout-OQHDNKZE.cjs.map} +1 -1
  9. package/dist/JsonTree-43PQAJKY.mjs +5 -0
  10. package/dist/{JsonTree-55625VVH.mjs.map → JsonTree-43PQAJKY.mjs.map} +1 -1
  11. package/dist/JsonTree-X6W5YEVY.cjs +11 -0
  12. package/dist/{JsonTree-DCM5QGWF.cjs.map → JsonTree-X6W5YEVY.cjs.map} +1 -1
  13. package/dist/TreeRoot-5COOOSWG.mjs +4 -0
  14. package/dist/{TreeRoot-N72OYKXU.cjs.map → TreeRoot-5COOOSWG.mjs.map} +1 -1
  15. package/dist/TreeRoot-AABP2J6Y.cjs +19 -0
  16. package/dist/{TreeRoot-VGAIXCUA.mjs.map → TreeRoot-AABP2J6Y.cjs.map} +1 -1
  17. package/dist/{chunk-5G5YBFS6.mjs → chunk-ECONRHIG.mjs} +7 -7
  18. package/dist/chunk-ECONRHIG.mjs.map +1 -0
  19. package/dist/{chunk-IEEAENLX.cjs → chunk-FVVF7VCD.cjs} +14 -10
  20. package/dist/chunk-FVVF7VCD.cjs.map +1 -0
  21. package/dist/{chunk-2ZLKZ5VR.mjs → chunk-NWUT327A.mjs} +110 -32
  22. package/dist/chunk-NWUT327A.mjs.map +1 -0
  23. package/dist/{chunk-2SXDCXLK.cjs → chunk-OPKFKTIN.cjs} +17 -15
  24. package/dist/chunk-OPKFKTIN.cjs.map +1 -0
  25. package/dist/{chunk-SGP7V2UW.cjs → chunk-T3MWM23F.cjs} +6 -6
  26. package/dist/chunk-T3MWM23F.cjs.map +1 -0
  27. package/dist/{chunk-XJ7CXHSU.mjs → chunk-WGU5BEZX.mjs} +16 -14
  28. package/dist/chunk-WGU5BEZX.mjs.map +1 -0
  29. package/dist/{chunk-B5AWZOHJ.cjs → chunk-XACCHZH2.cjs} +119 -41
  30. package/dist/chunk-XACCHZH2.cjs.map +1 -0
  31. package/dist/{chunk-G5IEC7SR.mjs → chunk-ZL7FH4NW.mjs} +15 -11
  32. package/dist/chunk-ZL7FH4NW.mjs.map +1 -0
  33. package/dist/index.cjs +93 -93
  34. package/dist/index.d.cts +39 -4
  35. package/dist/index.d.ts +39 -4
  36. package/dist/index.mjs +10 -10
  37. package/dist/tree/index.cjs +33 -33
  38. package/dist/tree/index.d.cts +34 -4
  39. package/dist/tree/index.d.ts +34 -4
  40. package/dist/tree/index.mjs +1 -1
  41. package/package.json +6 -6
  42. package/src/components/markdown/MarkdownMessage/ActionRow.tsx +8 -3
  43. package/src/components/markdown/MarkdownMessage/ChatMessageRow.tsx +10 -4
  44. package/src/components/markdown/MarkdownMessage/CodeBlock.tsx +18 -6
  45. package/src/components/markdown/MarkdownMessage/CollapseToggle.tsx +13 -6
  46. package/src/components/markdown/MarkdownMessage/MarkdownMessage.tsx +10 -3
  47. package/src/tools/Chat/components/ChatRoot.tsx +12 -4
  48. package/src/tools/Chat/components/MessageActions.tsx +13 -3
  49. package/src/tools/Chat/components/StreamingIndicator.tsx +11 -1
  50. package/src/tools/JsonTree/components/JsonContent.tsx +13 -4
  51. package/src/tools/JsonTree/components/JsonToolbar.tsx +10 -3
  52. package/src/tools/JsonTree/index.tsx +10 -3
  53. package/src/tools/Tree/components/TreeChevron.tsx +10 -1
  54. package/src/tools/Tree/components/TreeIcon.tsx +11 -1
  55. package/src/tools/Tree/components/TreeLabel.tsx +10 -1
  56. package/src/tools/Tree/components/TreeRow.tsx +11 -1
  57. package/dist/ChatRoot-2KT32NFJ.cjs +0 -14
  58. package/dist/ChatRoot-VSIBJLE2.mjs +0 -5
  59. package/dist/JsonTree-55625VVH.mjs +0 -5
  60. package/dist/JsonTree-DCM5QGWF.cjs +0 -11
  61. package/dist/TreeRoot-N72OYKXU.cjs +0 -19
  62. package/dist/TreeRoot-VGAIXCUA.mjs +0 -4
  63. package/dist/chunk-2SXDCXLK.cjs.map +0 -1
  64. package/dist/chunk-2ZLKZ5VR.mjs.map +0 -1
  65. package/dist/chunk-5G5YBFS6.mjs.map +0 -1
  66. package/dist/chunk-B5AWZOHJ.cjs.map +0 -1
  67. package/dist/chunk-G5IEC7SR.mjs.map +0 -1
  68. package/dist/chunk-IEEAENLX.cjs.map +0 -1
  69. package/dist/chunk-SGP7V2UW.cjs.map +0 -1
  70. package/dist/chunk-XJ7CXHSU.mjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -7,12 +7,12 @@ var chunkKNDLV4PI_cjs = require('./chunk-KNDLV4PI.cjs');
7
7
  var chunk5I5QNGUG_cjs = require('./chunk-5I5QNGUG.cjs');
8
8
  var chunkYW5IVWHQ_cjs = require('./chunk-YW5IVWHQ.cjs');
9
9
  var chunk76NNDZH6_cjs = require('./chunk-76NNDZH6.cjs');
10
- var chunk2SXDCXLK_cjs = require('./chunk-2SXDCXLK.cjs');
10
+ var chunkOPKFKTIN_cjs = require('./chunk-OPKFKTIN.cjs');
11
11
  var chunkYXZ6GU7H_cjs = require('./chunk-YXZ6GU7H.cjs');
12
- var chunkIEEAENLX_cjs = require('./chunk-IEEAENLX.cjs');
12
+ var chunkFVVF7VCD_cjs = require('./chunk-FVVF7VCD.cjs');
13
13
  var chunkQW4RBGHN_cjs = require('./chunk-QW4RBGHN.cjs');
14
- var chunkB5AWZOHJ_cjs = require('./chunk-B5AWZOHJ.cjs');
15
- var chunkSGP7V2UW_cjs = require('./chunk-SGP7V2UW.cjs');
14
+ var chunkXACCHZH2_cjs = require('./chunk-XACCHZH2.cjs');
15
+ var chunkT3MWM23F_cjs = require('./chunk-T3MWM23F.cjs');
16
16
  require('./chunk-FP2RLYQZ.cjs');
17
17
  var chunkOLISEQHS_cjs = require('./chunk-OLISEQHS.cjs');
18
18
  var React = require('react');
@@ -267,7 +267,7 @@ function OpenapiLoadingFallback() {
267
267
  }
268
268
  chunkOLISEQHS_cjs.__name(OpenapiLoadingFallback, "OpenapiLoadingFallback");
269
269
  var LazyDocsLayout = createLazyComponent(
270
- () => import('./DocsLayout-N5ZJZPBY.cjs').then((mod) => ({ default: mod.DocsLayout })),
270
+ () => import('./DocsLayout-OQHDNKZE.cjs').then((mod) => ({ default: mod.DocsLayout })),
271
271
  {
272
272
  displayName: "LazyDocsLayout",
273
273
  fallback: /* @__PURE__ */ jsxRuntime.jsx(OpenapiLoadingFallback, {})
@@ -338,7 +338,7 @@ var LazyVideoPlayer = createLazyComponent(
338
338
  }
339
339
  );
340
340
  var LazyJsonTree = createLazyComponent(
341
- () => import('./JsonTree-DCM5QGWF.cjs'),
341
+ () => import('./JsonTree-X6W5YEVY.cjs'),
342
342
  {
343
343
  displayName: "LazyJsonTree",
344
344
  fallback: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback, { minHeight: 100, text: "Loading JSON viewer..." })
@@ -366,14 +366,14 @@ var LazyCronScheduler = createLazyComponent(
366
366
  }
367
367
  );
368
368
  var LazyTree = createLazyComponent(
369
- () => import('./TreeRoot-N72OYKXU.cjs'),
369
+ () => import('./TreeRoot-AABP2J6Y.cjs'),
370
370
  {
371
371
  displayName: "LazyTree",
372
372
  fallback: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback, { minHeight: 200, text: "Loading tree\u2026" })
373
373
  }
374
374
  );
375
375
  var LazyChat = createLazyComponent(
376
- () => import('./ChatRoot-2KT32NFJ.cjs').then((m) => ({ default: m.ChatRoot })),
376
+ () => import('./ChatRoot-HARTIAJ5.cjs').then((m) => ({ default: m.ChatRoot })),
377
377
  {
378
378
  displayName: "LazyChat",
379
379
  fallback: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback, { minHeight: 320, text: "Loading chat\u2026" })
@@ -410,7 +410,7 @@ async function* parseSSE(response, options = {}) {
410
410
  throw new Error("SSE response has no body");
411
411
  }
412
412
  const map = options.map ?? DEFAULT_MAP;
413
- const idleMs = options.idleTimeoutMs ?? chunk2SXDCXLK_cjs.LIMITS.sseIdleMs;
413
+ const idleMs = options.idleTimeoutMs ?? chunkOPKFKTIN_cjs.LIMITS.sseIdleMs;
414
414
  const reader = response.body.getReader();
415
415
  const decoder = new TextDecoder();
416
416
  let buffer = "";
@@ -613,7 +613,7 @@ function createMockTransport(opts = {}) {
613
613
  async createSession(_opts) {
614
614
  await sleep(latency);
615
615
  return {
616
- sessionId: chunk2SXDCXLK_cjs.createId("s"),
616
+ sessionId: chunkOPKFKTIN_cjs.createId("s"),
617
617
  messages: history.length ? [...history] : void 0,
618
618
  hasMore: false,
619
619
  cursor: null,
@@ -630,12 +630,12 @@ function createMockTransport(opts = {}) {
630
630
  throw new Error("mock transport scripted failure");
631
631
  }
632
632
  history.push({
633
- id: chunk2SXDCXLK_cjs.createId("u"),
633
+ id: chunkOPKFKTIN_cjs.createId("u"),
634
634
  role: "user",
635
635
  content,
636
636
  createdAt: Date.now()
637
637
  });
638
- const messageId = chunk2SXDCXLK_cjs.createId("a");
638
+ const messageId = chunkOPKFKTIN_cjs.createId("a");
639
639
  yield { type: "message_start", messageId, sessionId: _sid };
640
640
  const reply = replies[turn % replies.length];
641
641
  turn += 1;
@@ -664,7 +664,7 @@ function createMockTransport(opts = {}) {
664
664
  turn += 1;
665
665
  const text = typeof reply === "string" ? reply : reply.filter((e) => e.type === "chunk").map((e) => e.delta).join("");
666
666
  return {
667
- id: chunk2SXDCXLK_cjs.createId("a"),
667
+ id: chunkOPKFKTIN_cjs.createId("a"),
668
668
  role: "assistant",
669
669
  content: text || DEFAULT_REPLY,
670
670
  createdAt: Date.now()
@@ -732,9 +732,9 @@ function AudioToggle({
732
732
  alwaysShow = false,
733
733
  className
734
734
  }) {
735
- const muted = chunk2SXDCXLK_cjs.useChatAudioPrefs((s) => s.muted);
736
- const setMuted = chunk2SXDCXLK_cjs.useChatAudioPrefs((s) => s.setMuted);
737
- const ctx = chunk2SXDCXLK_cjs.useChatContextOptional();
735
+ const muted = chunkOPKFKTIN_cjs.useChatAudioPrefs((s) => s.muted);
736
+ const setMuted = chunkOPKFKTIN_cjs.useChatAudioPrefs((s) => s.setMuted);
737
+ const ctx = chunkOPKFKTIN_cjs.useChatContextOptional();
738
738
  if (ctx && !ctx.hasAudio && !alwaysShow) return null;
739
739
  const Icon = muted ? lucideReact.VolumeX : lucideReact.Volume2;
740
740
  const label = muted ? "Unmute chat sounds" : "Mute chat sounds";
@@ -766,7 +766,7 @@ function LottiePlayer(props) {
766
766
  }
767
767
  chunkOLISEQHS_cjs.__name(LottiePlayer, "LottiePlayer");
768
768
  var DocsLayout = React.lazy(
769
- () => import('./DocsLayout-N5ZJZPBY.cjs').then((mod) => ({ default: mod.DocsLayout }))
769
+ () => import('./DocsLayout-OQHDNKZE.cjs').then((mod) => ({ default: mod.DocsLayout }))
770
770
  );
771
771
  var LoadingFallback6 = /* @__PURE__ */ chunkOLISEQHS_cjs.__name(() => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center min-h-[400px]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: "Loading API Playground..." }) }), "LoadingFallback");
772
772
  var Playground = /* @__PURE__ */ chunkOLISEQHS_cjs.__name(({ config }) => {
@@ -2048,159 +2048,159 @@ Object.defineProperty(exports, "useCronWeekDays", {
2048
2048
  });
2049
2049
  Object.defineProperty(exports, "Attachments", {
2050
2050
  enumerable: true,
2051
- get: function () { return chunk2SXDCXLK_cjs.Attachments; }
2051
+ get: function () { return chunkOPKFKTIN_cjs.Attachments; }
2052
2052
  });
2053
2053
  Object.defineProperty(exports, "AttachmentsGrid", {
2054
2054
  enumerable: true,
2055
- get: function () { return chunk2SXDCXLK_cjs.AttachmentsGrid; }
2055
+ get: function () { return chunkOPKFKTIN_cjs.AttachmentsGrid; }
2056
2056
  });
2057
2057
  Object.defineProperty(exports, "AttachmentsList", {
2058
2058
  enumerable: true,
2059
- get: function () { return chunk2SXDCXLK_cjs.AttachmentsList; }
2059
+ get: function () { return chunkOPKFKTIN_cjs.AttachmentsList; }
2060
2060
  });
2061
2061
  Object.defineProperty(exports, "CHAT_EVENT_NAME", {
2062
2062
  enumerable: true,
2063
- get: function () { return chunk2SXDCXLK_cjs.CHAT_EVENT_NAME; }
2063
+ get: function () { return chunkOPKFKTIN_cjs.CHAT_EVENT_NAME; }
2064
2064
  });
2065
2065
  Object.defineProperty(exports, "CSS_VARS", {
2066
2066
  enumerable: true,
2067
- get: function () { return chunk2SXDCXLK_cjs.CSS_VARS; }
2067
+ get: function () { return chunkOPKFKTIN_cjs.CSS_VARS; }
2068
2068
  });
2069
2069
  Object.defineProperty(exports, "ChatProvider", {
2070
2070
  enumerable: true,
2071
- get: function () { return chunk2SXDCXLK_cjs.ChatProvider; }
2071
+ get: function () { return chunkOPKFKTIN_cjs.ChatProvider; }
2072
2072
  });
2073
2073
  Object.defineProperty(exports, "ChatRoot", {
2074
2074
  enumerable: true,
2075
- get: function () { return chunk2SXDCXLK_cjs.ChatRoot; }
2075
+ get: function () { return chunkOPKFKTIN_cjs.ChatRoot; }
2076
2076
  });
2077
2077
  Object.defineProperty(exports, "Composer", {
2078
2078
  enumerable: true,
2079
- get: function () { return chunk2SXDCXLK_cjs.Composer; }
2079
+ get: function () { return chunkOPKFKTIN_cjs.Composer; }
2080
2080
  });
2081
2081
  Object.defineProperty(exports, "DEFAULT_LABELS", {
2082
2082
  enumerable: true,
2083
- get: function () { return chunk2SXDCXLK_cjs.DEFAULT_LABELS; }
2083
+ get: function () { return chunkOPKFKTIN_cjs.DEFAULT_LABELS; }
2084
2084
  });
2085
2085
  Object.defineProperty(exports, "DEFAULT_SIDEBAR", {
2086
2086
  enumerable: true,
2087
- get: function () { return chunk2SXDCXLK_cjs.DEFAULT_SIDEBAR; }
2087
+ get: function () { return chunkOPKFKTIN_cjs.DEFAULT_SIDEBAR; }
2088
2088
  });
2089
2089
  Object.defineProperty(exports, "DEFAULT_Z_INDEX", {
2090
2090
  enumerable: true,
2091
- get: function () { return chunk2SXDCXLK_cjs.DEFAULT_Z_INDEX; }
2091
+ get: function () { return chunkOPKFKTIN_cjs.DEFAULT_Z_INDEX; }
2092
2092
  });
2093
2093
  Object.defineProperty(exports, "EmptyState", {
2094
2094
  enumerable: true,
2095
- get: function () { return chunk2SXDCXLK_cjs.EmptyState; }
2095
+ get: function () { return chunkOPKFKTIN_cjs.EmptyState; }
2096
2096
  });
2097
2097
  Object.defineProperty(exports, "ErrorBanner", {
2098
2098
  enumerable: true,
2099
- get: function () { return chunk2SXDCXLK_cjs.ErrorBanner; }
2099
+ get: function () { return chunkOPKFKTIN_cjs.ErrorBanner; }
2100
2100
  });
2101
2101
  Object.defineProperty(exports, "HOTKEYS", {
2102
2102
  enumerable: true,
2103
- get: function () { return chunk2SXDCXLK_cjs.HOTKEYS; }
2103
+ get: function () { return chunkOPKFKTIN_cjs.HOTKEYS; }
2104
2104
  });
2105
2105
  Object.defineProperty(exports, "JumpToLatest", {
2106
2106
  enumerable: true,
2107
- get: function () { return chunk2SXDCXLK_cjs.JumpToLatest; }
2107
+ get: function () { return chunkOPKFKTIN_cjs.JumpToLatest; }
2108
2108
  });
2109
2109
  Object.defineProperty(exports, "LIMITS", {
2110
2110
  enumerable: true,
2111
- get: function () { return chunk2SXDCXLK_cjs.LIMITS; }
2111
+ get: function () { return chunkOPKFKTIN_cjs.LIMITS; }
2112
2112
  });
2113
2113
  Object.defineProperty(exports, "MessageActions", {
2114
2114
  enumerable: true,
2115
- get: function () { return chunk2SXDCXLK_cjs.MessageActions; }
2115
+ get: function () { return chunkOPKFKTIN_cjs.MessageActions; }
2116
2116
  });
2117
2117
  Object.defineProperty(exports, "MessageBubble", {
2118
2118
  enumerable: true,
2119
- get: function () { return chunk2SXDCXLK_cjs.MessageBubble; }
2119
+ get: function () { return chunkOPKFKTIN_cjs.MessageBubble; }
2120
2120
  });
2121
2121
  Object.defineProperty(exports, "MessageList", {
2122
2122
  enumerable: true,
2123
- get: function () { return chunk2SXDCXLK_cjs.MessageList; }
2123
+ get: function () { return chunkOPKFKTIN_cjs.MessageList; }
2124
2124
  });
2125
2125
  Object.defineProperty(exports, "STORAGE_KEYS", {
2126
2126
  enumerable: true,
2127
- get: function () { return chunk2SXDCXLK_cjs.STORAGE_KEYS; }
2127
+ get: function () { return chunkOPKFKTIN_cjs.STORAGE_KEYS; }
2128
2128
  });
2129
2129
  Object.defineProperty(exports, "Sources", {
2130
2130
  enumerable: true,
2131
- get: function () { return chunk2SXDCXLK_cjs.Sources; }
2131
+ get: function () { return chunkOPKFKTIN_cjs.Sources; }
2132
2132
  });
2133
2133
  Object.defineProperty(exports, "StreamingIndicator", {
2134
2134
  enumerable: true,
2135
- get: function () { return chunk2SXDCXLK_cjs.StreamingIndicator; }
2135
+ get: function () { return chunkOPKFKTIN_cjs.StreamingIndicator; }
2136
2136
  });
2137
2137
  Object.defineProperty(exports, "ToolCalls", {
2138
2138
  enumerable: true,
2139
- get: function () { return chunk2SXDCXLK_cjs.ToolCalls; }
2139
+ get: function () { return chunkOPKFKTIN_cjs.ToolCalls; }
2140
2140
  });
2141
2141
  Object.defineProperty(exports, "createId", {
2142
2142
  enumerable: true,
2143
- get: function () { return chunk2SXDCXLK_cjs.createId; }
2143
+ get: function () { return chunkOPKFKTIN_cjs.createId; }
2144
2144
  });
2145
2145
  Object.defineProperty(exports, "createTokenBuffer", {
2146
2146
  enumerable: true,
2147
- get: function () { return chunk2SXDCXLK_cjs.createTokenBuffer; }
2147
+ get: function () { return chunkOPKFKTIN_cjs.createTokenBuffer; }
2148
2148
  });
2149
2149
  Object.defineProperty(exports, "deriveInitials", {
2150
2150
  enumerable: true,
2151
- get: function () { return chunk2SXDCXLK_cjs.deriveInitials; }
2151
+ get: function () { return chunkOPKFKTIN_cjs.deriveInitials; }
2152
2152
  });
2153
2153
  Object.defineProperty(exports, "getChatLogger", {
2154
2154
  enumerable: true,
2155
- get: function () { return chunk2SXDCXLK_cjs.getChatLogger; }
2155
+ get: function () { return chunkOPKFKTIN_cjs.getChatLogger; }
2156
2156
  });
2157
2157
  Object.defineProperty(exports, "initialState", {
2158
2158
  enumerable: true,
2159
- get: function () { return chunk2SXDCXLK_cjs.initialState; }
2159
+ get: function () { return chunkOPKFKTIN_cjs.initialState; }
2160
2160
  });
2161
2161
  Object.defineProperty(exports, "reducer", {
2162
2162
  enumerable: true,
2163
- get: function () { return chunk2SXDCXLK_cjs.reducer; }
2163
+ get: function () { return chunkOPKFKTIN_cjs.reducer; }
2164
2164
  });
2165
2165
  Object.defineProperty(exports, "resolvePersona", {
2166
2166
  enumerable: true,
2167
- get: function () { return chunk2SXDCXLK_cjs.resolvePersona; }
2167
+ get: function () { return chunkOPKFKTIN_cjs.resolvePersona; }
2168
2168
  });
2169
2169
  Object.defineProperty(exports, "useChat", {
2170
2170
  enumerable: true,
2171
- get: function () { return chunk2SXDCXLK_cjs.useChat; }
2171
+ get: function () { return chunkOPKFKTIN_cjs.useChat; }
2172
2172
  });
2173
2173
  Object.defineProperty(exports, "useChatAudio", {
2174
2174
  enumerable: true,
2175
- get: function () { return chunk2SXDCXLK_cjs.useChatAudio; }
2175
+ get: function () { return chunkOPKFKTIN_cjs.useChatAudio; }
2176
2176
  });
2177
2177
  Object.defineProperty(exports, "useChatAudioPrefs", {
2178
2178
  enumerable: true,
2179
- get: function () { return chunk2SXDCXLK_cjs.useChatAudioPrefs; }
2179
+ get: function () { return chunkOPKFKTIN_cjs.useChatAudioPrefs; }
2180
2180
  });
2181
2181
  Object.defineProperty(exports, "useChatComposer", {
2182
2182
  enumerable: true,
2183
- get: function () { return chunk2SXDCXLK_cjs.useChatComposer; }
2183
+ get: function () { return chunkOPKFKTIN_cjs.useChatComposer; }
2184
2184
  });
2185
2185
  Object.defineProperty(exports, "useChatContext", {
2186
2186
  enumerable: true,
2187
- get: function () { return chunk2SXDCXLK_cjs.useChatContext; }
2187
+ get: function () { return chunkOPKFKTIN_cjs.useChatContext; }
2188
2188
  });
2189
2189
  Object.defineProperty(exports, "useChatContextOptional", {
2190
2190
  enumerable: true,
2191
- get: function () { return chunk2SXDCXLK_cjs.useChatContextOptional; }
2191
+ get: function () { return chunkOPKFKTIN_cjs.useChatContextOptional; }
2192
2192
  });
2193
2193
  Object.defineProperty(exports, "useChatHistory", {
2194
2194
  enumerable: true,
2195
- get: function () { return chunk2SXDCXLK_cjs.useChatHistory; }
2195
+ get: function () { return chunkOPKFKTIN_cjs.useChatHistory; }
2196
2196
  });
2197
2197
  Object.defineProperty(exports, "useChatLayout", {
2198
2198
  enumerable: true,
2199
- get: function () { return chunk2SXDCXLK_cjs.useChatLayout; }
2199
+ get: function () { return chunkOPKFKTIN_cjs.useChatLayout; }
2200
2200
  });
2201
2201
  Object.defineProperty(exports, "useChatScroll", {
2202
2202
  enumerable: true,
2203
- get: function () { return chunk2SXDCXLK_cjs.useChatScroll; }
2203
+ get: function () { return chunkOPKFKTIN_cjs.useChatScroll; }
2204
2204
  });
2205
2205
  Object.defineProperty(exports, "TreeError", {
2206
2206
  enumerable: true,
@@ -2216,151 +2216,151 @@ Object.defineProperty(exports, "createDemoTree", {
2216
2216
  });
2217
2217
  Object.defineProperty(exports, "DEFAULT_TREE_APPEARANCE", {
2218
2218
  enumerable: true,
2219
- get: function () { return chunkIEEAENLX_cjs.DEFAULT_TREE_APPEARANCE; }
2219
+ get: function () { return chunkFVVF7VCD_cjs.DEFAULT_TREE_APPEARANCE; }
2220
2220
  });
2221
2221
  Object.defineProperty(exports, "DEFAULT_TREE_LABELS", {
2222
2222
  enumerable: true,
2223
- get: function () { return chunkIEEAENLX_cjs.DEFAULT_TREE_LABELS; }
2223
+ get: function () { return chunkFVVF7VCD_cjs.DEFAULT_TREE_LABELS; }
2224
2224
  });
2225
2225
  Object.defineProperty(exports, "Tree", {
2226
2226
  enumerable: true,
2227
- get: function () { return chunkIEEAENLX_cjs.TreeRoot; }
2227
+ get: function () { return chunkFVVF7VCD_cjs.TreeRoot; }
2228
2228
  });
2229
2229
  Object.defineProperty(exports, "TreeChevron", {
2230
2230
  enumerable: true,
2231
- get: function () { return chunkIEEAENLX_cjs.TreeChevron; }
2231
+ get: function () { return chunkFVVF7VCD_cjs.TreeChevron; }
2232
2232
  });
2233
2233
  Object.defineProperty(exports, "TreeContent", {
2234
2234
  enumerable: true,
2235
- get: function () { return chunkIEEAENLX_cjs.TreeContent; }
2235
+ get: function () { return chunkFVVF7VCD_cjs.TreeContent; }
2236
2236
  });
2237
2237
  Object.defineProperty(exports, "TreeEmpty", {
2238
2238
  enumerable: true,
2239
- get: function () { return chunkIEEAENLX_cjs.TreeEmpty; }
2239
+ get: function () { return chunkFVVF7VCD_cjs.TreeEmpty; }
2240
2240
  });
2241
2241
  Object.defineProperty(exports, "TreeIcon", {
2242
2242
  enumerable: true,
2243
- get: function () { return chunkIEEAENLX_cjs.TreeIcon; }
2243
+ get: function () { return chunkFVVF7VCD_cjs.TreeIcon; }
2244
2244
  });
2245
2245
  Object.defineProperty(exports, "TreeIndentGuides", {
2246
2246
  enumerable: true,
2247
- get: function () { return chunkIEEAENLX_cjs.TreeIndentGuides; }
2247
+ get: function () { return chunkFVVF7VCD_cjs.TreeIndentGuides; }
2248
2248
  });
2249
2249
  Object.defineProperty(exports, "TreeLabel", {
2250
2250
  enumerable: true,
2251
- get: function () { return chunkIEEAENLX_cjs.TreeLabel; }
2251
+ get: function () { return chunkFVVF7VCD_cjs.TreeLabel; }
2252
2252
  });
2253
2253
  Object.defineProperty(exports, "TreeProvider", {
2254
2254
  enumerable: true,
2255
- get: function () { return chunkIEEAENLX_cjs.TreeProvider; }
2255
+ get: function () { return chunkFVVF7VCD_cjs.TreeProvider; }
2256
2256
  });
2257
2257
  Object.defineProperty(exports, "TreeRoot", {
2258
2258
  enumerable: true,
2259
- get: function () { return chunkIEEAENLX_cjs.TreeRoot; }
2259
+ get: function () { return chunkFVVF7VCD_cjs.TreeRoot; }
2260
2260
  });
2261
2261
  Object.defineProperty(exports, "TreeRow", {
2262
2262
  enumerable: true,
2263
- get: function () { return chunkIEEAENLX_cjs.TreeRow; }
2263
+ get: function () { return chunkFVVF7VCD_cjs.TreeRow; }
2264
2264
  });
2265
2265
  Object.defineProperty(exports, "TreeSearchInput", {
2266
2266
  enumerable: true,
2267
- get: function () { return chunkIEEAENLX_cjs.TreeSearchInput; }
2267
+ get: function () { return chunkFVVF7VCD_cjs.TreeSearchInput; }
2268
2268
  });
2269
2269
  Object.defineProperty(exports, "appearanceToStyle", {
2270
2270
  enumerable: true,
2271
- get: function () { return chunkIEEAENLX_cjs.appearanceToStyle; }
2271
+ get: function () { return chunkFVVF7VCD_cjs.appearanceToStyle; }
2272
2272
  });
2273
2273
  Object.defineProperty(exports, "clearTreeState", {
2274
2274
  enumerable: true,
2275
- get: function () { return chunkIEEAENLX_cjs.clearTreeState; }
2275
+ get: function () { return chunkFVVF7VCD_cjs.clearTreeState; }
2276
2276
  });
2277
2277
  Object.defineProperty(exports, "createChildCache", {
2278
2278
  enumerable: true,
2279
- get: function () { return chunkIEEAENLX_cjs.createChildCache; }
2279
+ get: function () { return chunkFVVF7VCD_cjs.createChildCache; }
2280
2280
  });
2281
2281
  Object.defineProperty(exports, "flattenTree", {
2282
2282
  enumerable: true,
2283
- get: function () { return chunkIEEAENLX_cjs.flattenTree; }
2283
+ get: function () { return chunkFVVF7VCD_cjs.flattenTree; }
2284
2284
  });
2285
2285
  Object.defineProperty(exports, "loadTreeState", {
2286
2286
  enumerable: true,
2287
- get: function () { return chunkIEEAENLX_cjs.loadTreeState; }
2287
+ get: function () { return chunkFVVF7VCD_cjs.loadTreeState; }
2288
2288
  });
2289
2289
  Object.defineProperty(exports, "resolveAppearance", {
2290
2290
  enumerable: true,
2291
- get: function () { return chunkIEEAENLX_cjs.resolveAppearance; }
2291
+ get: function () { return chunkFVVF7VCD_cjs.resolveAppearance; }
2292
2292
  });
2293
2293
  Object.defineProperty(exports, "resolveChildren", {
2294
2294
  enumerable: true,
2295
- get: function () { return chunkIEEAENLX_cjs.resolveChildren; }
2295
+ get: function () { return chunkFVVF7VCD_cjs.resolveChildren; }
2296
2296
  });
2297
2297
  Object.defineProperty(exports, "saveTreeState", {
2298
2298
  enumerable: true,
2299
- get: function () { return chunkIEEAENLX_cjs.saveTreeState; }
2299
+ get: function () { return chunkFVVF7VCD_cjs.saveTreeState; }
2300
2300
  });
2301
2301
  Object.defineProperty(exports, "useTreeActions", {
2302
2302
  enumerable: true,
2303
- get: function () { return chunkIEEAENLX_cjs.useTreeActions; }
2303
+ get: function () { return chunkFVVF7VCD_cjs.useTreeActions; }
2304
2304
  });
2305
2305
  Object.defineProperty(exports, "useTreeContext", {
2306
2306
  enumerable: true,
2307
- get: function () { return chunkIEEAENLX_cjs.useTreeContext; }
2307
+ get: function () { return chunkFVVF7VCD_cjs.useTreeContext; }
2308
2308
  });
2309
2309
  Object.defineProperty(exports, "useTreeExpansion", {
2310
2310
  enumerable: true,
2311
- get: function () { return chunkIEEAENLX_cjs.useTreeExpansion; }
2311
+ get: function () { return chunkFVVF7VCD_cjs.useTreeExpansion; }
2312
2312
  });
2313
2313
  Object.defineProperty(exports, "useTreeFocus", {
2314
2314
  enumerable: true,
2315
- get: function () { return chunkIEEAENLX_cjs.useTreeFocus; }
2315
+ get: function () { return chunkFVVF7VCD_cjs.useTreeFocus; }
2316
2316
  });
2317
2317
  Object.defineProperty(exports, "useTreeKeyboard", {
2318
2318
  enumerable: true,
2319
- get: function () { return chunkIEEAENLX_cjs.useTreeKeyboard; }
2319
+ get: function () { return chunkFVVF7VCD_cjs.useTreeKeyboard; }
2320
2320
  });
2321
2321
  Object.defineProperty(exports, "useTreeLabels", {
2322
2322
  enumerable: true,
2323
- get: function () { return chunkIEEAENLX_cjs.useTreeLabels; }
2323
+ get: function () { return chunkFVVF7VCD_cjs.useTreeLabels; }
2324
2324
  });
2325
2325
  Object.defineProperty(exports, "useTreeRows", {
2326
2326
  enumerable: true,
2327
- get: function () { return chunkIEEAENLX_cjs.useTreeRows; }
2327
+ get: function () { return chunkFVVF7VCD_cjs.useTreeRows; }
2328
2328
  });
2329
2329
  Object.defineProperty(exports, "useTreeSearch", {
2330
2330
  enumerable: true,
2331
- get: function () { return chunkIEEAENLX_cjs.useTreeSearch; }
2331
+ get: function () { return chunkFVVF7VCD_cjs.useTreeSearch; }
2332
2332
  });
2333
2333
  Object.defineProperty(exports, "useTreeSelection", {
2334
2334
  enumerable: true,
2335
- get: function () { return chunkIEEAENLX_cjs.useTreeSelection; }
2335
+ get: function () { return chunkFVVF7VCD_cjs.useTreeSelection; }
2336
2336
  });
2337
2337
  Object.defineProperty(exports, "useTreeTypeAhead", {
2338
2338
  enumerable: true,
2339
- get: function () { return chunkIEEAENLX_cjs.useTreeTypeAhead; }
2339
+ get: function () { return chunkFVVF7VCD_cjs.useTreeTypeAhead; }
2340
2340
  });
2341
2341
  Object.defineProperty(exports, "MarkdownMessage", {
2342
2342
  enumerable: true,
2343
- get: function () { return chunkB5AWZOHJ_cjs.MarkdownMessage; }
2343
+ get: function () { return chunkXACCHZH2_cjs.MarkdownMessage; }
2344
2344
  });
2345
2345
  Object.defineProperty(exports, "Mermaid", {
2346
2346
  enumerable: true,
2347
- get: function () { return chunkB5AWZOHJ_cjs.Mermaid_default; }
2347
+ get: function () { return chunkXACCHZH2_cjs.Mermaid_default; }
2348
2348
  });
2349
2349
  Object.defineProperty(exports, "PrettyCode", {
2350
2350
  enumerable: true,
2351
- get: function () { return chunkB5AWZOHJ_cjs.PrettyCode_default; }
2351
+ get: function () { return chunkXACCHZH2_cjs.PrettyCode_default; }
2352
2352
  });
2353
2353
  Object.defineProperty(exports, "extractTextFromChildren", {
2354
2354
  enumerable: true,
2355
- get: function () { return chunkB5AWZOHJ_cjs.extractTextFromChildren; }
2355
+ get: function () { return chunkXACCHZH2_cjs.extractTextFromChildren; }
2356
2356
  });
2357
2357
  Object.defineProperty(exports, "useCollapsibleContent", {
2358
2358
  enumerable: true,
2359
- get: function () { return chunkB5AWZOHJ_cjs.useCollapsibleContent; }
2359
+ get: function () { return chunkXACCHZH2_cjs.useCollapsibleContent; }
2360
2360
  });
2361
2361
  Object.defineProperty(exports, "JsonTree", {
2362
2362
  enumerable: true,
2363
- get: function () { return chunkSGP7V2UW_cjs.JsonTree_default; }
2363
+ get: function () { return chunkT3MWM23F_cjs.JsonTree_default; }
2364
2364
  });
2365
2365
  exports.AudioToggle = AudioToggle;
2366
2366
  exports.CardLoadingFallback = CardLoadingFallback;
package/dist/index.d.cts CHANGED
@@ -259,8 +259,14 @@ interface MarkdownMessageProps {
259
259
  * linkRules={[machineMentionRule]}
260
260
  * />
261
261
  * ```
262
+ *
263
+ * Memoised: re-renders only when props change. `content` is the main
264
+ * trigger — all other props (className, isUser, isCompact, etc.) are
265
+ * compared by value/reference. `onCollapseChange` is compared by
266
+ * reference — callers should stabilise it with useCallback.
262
267
  */
263
- declare const MarkdownMessage: react__default.FC<MarkdownMessageProps>;
268
+ declare function MarkdownMessageRaw({ content, className, isUser, isCompact, plainText, customComponents, extraHrefProtocols, linkRules, collapsible, maxLength, maxLines, readMoreLabel, showLessLabel, defaultExpanded, onCollapseChange, }: MarkdownMessageProps): react_jsx_runtime.JSX.Element;
269
+ declare const MarkdownMessage: react__default.MemoExoticComponent<typeof MarkdownMessageRaw>;
264
270
 
265
271
  /** Recursively concatenate the text content of a React.ReactNode tree.
266
272
  * Used by the markdown renderers (e.g. `<pre>` extracting code) and
@@ -1196,7 +1202,14 @@ interface JsonTreeComponentProps {
1196
1202
  jsonTreeProps?: Partial<CommonExternalProps>;
1197
1203
  }
1198
1204
 
1199
- declare const JsonTreeComponent: ({ title, data, mode, config, jsonTreeProps, }: JsonTreeComponentProps) => react_jsx_runtime.JSX.Element;
1205
+ /**
1206
+ * JsonTreeComponent — JSON viewer with expand/collapse, copy, download.
1207
+ *
1208
+ * Memoised: re-renders only when `title`, `data`, `mode`, `config` or
1209
+ * `jsonTreeProps` change. `data` is compared by reference — the parent
1210
+ * should not mutate the object in place.
1211
+ */
1212
+ declare const JsonTreeComponent: react__default.MemoExoticComponent<({ title, data, mode, config, jsonTreeProps, }: JsonTreeComponentProps) => react_jsx_runtime.JSX.Element>;
1200
1213
 
1201
1214
  interface JsonTreeProps {
1202
1215
  title?: string;
@@ -2013,6 +2026,12 @@ interface ChatRootProps {
2013
2026
  /** Composer size variant. Default ``md`` (36px slot). Use ``lg`` for primary
2014
2027
  * surfaces (onboarding, full-page chat), ``sm`` for dense sidebars. */
2015
2028
  composerSize?: ComposerSize;
2029
+ /** Extra className forwarded to the `<MessageList>` scroll container.
2030
+ * Use to add padding inside the scroll area so the scrollbar stays flush
2031
+ * with the edge (e.g. `"px-6 pt-6 sm:px-8"`). */
2032
+ listClassName?: string;
2033
+ /** Extra className forwarded to the `<Composer>` wrapper div. */
2034
+ composerClassName?: string;
2016
2035
  }
2017
2036
  declare function ChatRoot(props: ChatRootProps): react_jsx_runtime.JSX.Element;
2018
2037
 
@@ -2346,7 +2365,15 @@ interface MessageActionsProps {
2346
2365
  hideOn?: Array<ChatRole>;
2347
2366
  className?: string;
2348
2367
  }
2349
- declare function MessageActions({ role, onCopy, onRegenerate, onEdit, onDelete, hideOn, className, }: MessageActionsProps): react_jsx_runtime.JSX.Element;
2368
+ /**
2369
+ * MessageActions — copy/regenerate/edit/delete buttons for a chat bubble.
2370
+ *
2371
+ * Memoised: re-renders only when `role`, `hideOn`, `className` or
2372
+ * any handler reference changes. Event handlers are compared by
2373
+ * reference — callers should stabilise them with useCallback.
2374
+ */
2375
+ declare function MessageActionsRaw({ role, onCopy, onRegenerate, onEdit, onDelete, hideOn, className, }: MessageActionsProps): react_jsx_runtime.JSX.Element;
2376
+ declare const MessageActions: react.MemoExoticComponent<typeof MessageActionsRaw>;
2350
2377
 
2351
2378
  interface SourcesProps {
2352
2379
  sources: ChatSource[];
@@ -2390,7 +2417,15 @@ interface StreamingIndicatorProps {
2390
2417
  label?: string;
2391
2418
  className?: string;
2392
2419
  }
2393
- declare function StreamingIndicator({ variant, label, className }: StreamingIndicatorProps): react_jsx_runtime.JSX.Element;
2420
+ /**
2421
+ * StreamingIndicator — animated dots or pulse for streaming state.
2422
+ *
2423
+ * Memoised: re-renders only when `variant`, `label` or `className`
2424
+ * change. All props are primitives, so default shallow comparison is
2425
+ * sufficient.
2426
+ */
2427
+ declare function StreamingIndicatorRaw({ variant, label, className }: StreamingIndicatorProps): react_jsx_runtime.JSX.Element;
2428
+ declare const StreamingIndicator: react.MemoExoticComponent<typeof StreamingIndicatorRaw>;
2394
2429
 
2395
2430
  interface AudioToggleProps {
2396
2431
  /** Visual size — matches Button sizes. Default: ``icon``. */
package/dist/index.d.ts CHANGED
@@ -259,8 +259,14 @@ interface MarkdownMessageProps {
259
259
  * linkRules={[machineMentionRule]}
260
260
  * />
261
261
  * ```
262
+ *
263
+ * Memoised: re-renders only when props change. `content` is the main
264
+ * trigger — all other props (className, isUser, isCompact, etc.) are
265
+ * compared by value/reference. `onCollapseChange` is compared by
266
+ * reference — callers should stabilise it with useCallback.
262
267
  */
263
- declare const MarkdownMessage: react__default.FC<MarkdownMessageProps>;
268
+ declare function MarkdownMessageRaw({ content, className, isUser, isCompact, plainText, customComponents, extraHrefProtocols, linkRules, collapsible, maxLength, maxLines, readMoreLabel, showLessLabel, defaultExpanded, onCollapseChange, }: MarkdownMessageProps): react_jsx_runtime.JSX.Element;
269
+ declare const MarkdownMessage: react__default.MemoExoticComponent<typeof MarkdownMessageRaw>;
264
270
 
265
271
  /** Recursively concatenate the text content of a React.ReactNode tree.
266
272
  * Used by the markdown renderers (e.g. `<pre>` extracting code) and
@@ -1196,7 +1202,14 @@ interface JsonTreeComponentProps {
1196
1202
  jsonTreeProps?: Partial<CommonExternalProps>;
1197
1203
  }
1198
1204
 
1199
- declare const JsonTreeComponent: ({ title, data, mode, config, jsonTreeProps, }: JsonTreeComponentProps) => react_jsx_runtime.JSX.Element;
1205
+ /**
1206
+ * JsonTreeComponent — JSON viewer with expand/collapse, copy, download.
1207
+ *
1208
+ * Memoised: re-renders only when `title`, `data`, `mode`, `config` or
1209
+ * `jsonTreeProps` change. `data` is compared by reference — the parent
1210
+ * should not mutate the object in place.
1211
+ */
1212
+ declare const JsonTreeComponent: react__default.MemoExoticComponent<({ title, data, mode, config, jsonTreeProps, }: JsonTreeComponentProps) => react_jsx_runtime.JSX.Element>;
1200
1213
 
1201
1214
  interface JsonTreeProps {
1202
1215
  title?: string;
@@ -2013,6 +2026,12 @@ interface ChatRootProps {
2013
2026
  /** Composer size variant. Default ``md`` (36px slot). Use ``lg`` for primary
2014
2027
  * surfaces (onboarding, full-page chat), ``sm`` for dense sidebars. */
2015
2028
  composerSize?: ComposerSize;
2029
+ /** Extra className forwarded to the `<MessageList>` scroll container.
2030
+ * Use to add padding inside the scroll area so the scrollbar stays flush
2031
+ * with the edge (e.g. `"px-6 pt-6 sm:px-8"`). */
2032
+ listClassName?: string;
2033
+ /** Extra className forwarded to the `<Composer>` wrapper div. */
2034
+ composerClassName?: string;
2016
2035
  }
2017
2036
  declare function ChatRoot(props: ChatRootProps): react_jsx_runtime.JSX.Element;
2018
2037
 
@@ -2346,7 +2365,15 @@ interface MessageActionsProps {
2346
2365
  hideOn?: Array<ChatRole>;
2347
2366
  className?: string;
2348
2367
  }
2349
- declare function MessageActions({ role, onCopy, onRegenerate, onEdit, onDelete, hideOn, className, }: MessageActionsProps): react_jsx_runtime.JSX.Element;
2368
+ /**
2369
+ * MessageActions — copy/regenerate/edit/delete buttons for a chat bubble.
2370
+ *
2371
+ * Memoised: re-renders only when `role`, `hideOn`, `className` or
2372
+ * any handler reference changes. Event handlers are compared by
2373
+ * reference — callers should stabilise them with useCallback.
2374
+ */
2375
+ declare function MessageActionsRaw({ role, onCopy, onRegenerate, onEdit, onDelete, hideOn, className, }: MessageActionsProps): react_jsx_runtime.JSX.Element;
2376
+ declare const MessageActions: react.MemoExoticComponent<typeof MessageActionsRaw>;
2350
2377
 
2351
2378
  interface SourcesProps {
2352
2379
  sources: ChatSource[];
@@ -2390,7 +2417,15 @@ interface StreamingIndicatorProps {
2390
2417
  label?: string;
2391
2418
  className?: string;
2392
2419
  }
2393
- declare function StreamingIndicator({ variant, label, className }: StreamingIndicatorProps): react_jsx_runtime.JSX.Element;
2420
+ /**
2421
+ * StreamingIndicator — animated dots or pulse for streaming state.
2422
+ *
2423
+ * Memoised: re-renders only when `variant`, `label` or `className`
2424
+ * change. All props are primitives, so default shallow comparison is
2425
+ * sufficient.
2426
+ */
2427
+ declare function StreamingIndicatorRaw({ variant, label, className }: StreamingIndicatorProps): react_jsx_runtime.JSX.Element;
2428
+ declare const StreamingIndicator: react.MemoExoticComponent<typeof StreamingIndicatorRaw>;
2394
2429
 
2395
2430
  interface AudioToggleProps {
2396
2431
  /** Visual size — matches Button sizes. Default: ``icon``. */