@devalok/shilp-sutra 0.56.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/MIGRATION.md +107 -0
  2. package/dist/_chunks/badge-group.js +48 -34
  3. package/dist/_chunks/badge-group.js.map +1 -1
  4. package/dist/_chunks/chat.js +91 -75
  5. package/dist/_chunks/chat.js.map +1 -1
  6. package/dist/_chunks/document-preview.js +1 -1
  7. package/dist/_chunks/document-preview.js.map +1 -1
  8. package/dist/_chunks/emoji-suggestion.js +1 -1
  9. package/dist/_chunks/emoji-suggestion.js.map +1 -1
  10. package/dist/_chunks/mention-suggestion.js +2 -2
  11. package/dist/_chunks/mention-suggestion.js.map +1 -1
  12. package/dist/_chunks/oauth-button.js +1 -1
  13. package/dist/_chunks/oauth-button.js.map +1 -1
  14. package/dist/_chunks/success.js +2 -2
  15. package/dist/_chunks/success.js.map +1 -1
  16. package/dist/_chunks/tree-view.js +1 -1
  17. package/dist/_chunks/tree-view.js.map +1 -1
  18. package/dist/_chunks/use-calendar.js +4 -4
  19. package/dist/_chunks/use-calendar.js.map +1 -1
  20. package/dist/ai/blocks/text.js +1 -1
  21. package/dist/ai/blocks/text.js.map +1 -1
  22. package/dist/ai/command-bar.js +9 -9
  23. package/dist/ai/command-bar.js.map +1 -1
  24. package/dist/ai/conversation.js +2 -2
  25. package/dist/ai/conversation.js.map +1 -1
  26. package/dist/composed/activity-feed.js +1 -1
  27. package/dist/composed/activity-feed.js.map +1 -1
  28. package/dist/composed/avatar-group.d.ts +7 -2
  29. package/dist/composed/avatar-group.d.ts.map +1 -1
  30. package/dist/composed/avatar-group.js +3 -3
  31. package/dist/composed/avatar-group.js.map +1 -1
  32. package/dist/composed/command-palette.js +7 -7
  33. package/dist/composed/command-palette.js.map +1 -1
  34. package/dist/composed/content-card.js +2 -2
  35. package/dist/composed/content-card.js.map +1 -1
  36. package/dist/composed/date-picker/index.js +4 -4
  37. package/dist/composed/date-picker/index.js.map +1 -1
  38. package/dist/composed/diff.d.ts +23 -2
  39. package/dist/composed/diff.d.ts.map +1 -1
  40. package/dist/composed/diff.js +341 -260
  41. package/dist/composed/diff.js.map +1 -1
  42. package/dist/composed/emoji-picker.js +3 -3
  43. package/dist/composed/emoji-picker.js.map +1 -1
  44. package/dist/composed/error-boundary.js +2 -2
  45. package/dist/composed/error-boundary.js.map +1 -1
  46. package/dist/composed/file-preview.js +1 -1
  47. package/dist/composed/file-preview.js.map +1 -1
  48. package/dist/composed/filter-bar.js +1 -1
  49. package/dist/composed/filter-bar.js.map +1 -1
  50. package/dist/composed/inline-edit.js +1 -1
  51. package/dist/composed/inline-edit.js.map +1 -1
  52. package/dist/composed/loading-skeleton.js +3 -3
  53. package/dist/composed/loading-skeleton.js.map +1 -1
  54. package/dist/composed/master-detail.js +1 -1
  55. package/dist/composed/master-detail.js.map +1 -1
  56. package/dist/composed/member-picker.js +1 -1
  57. package/dist/composed/member-picker.js.map +1 -1
  58. package/dist/composed/multi-select-popover.js +1 -1
  59. package/dist/composed/multi-select-popover.js.map +1 -1
  60. package/dist/composed/page-skeletons.js +4 -4
  61. package/dist/composed/page-skeletons.js.map +1 -1
  62. package/dist/composed/responsive-modal.js +1 -1
  63. package/dist/composed/responsive-modal.js.map +1 -1
  64. package/dist/composed/rich-chat-input.js +17 -17
  65. package/dist/composed/rich-chat-input.js.map +1 -1
  66. package/dist/composed/rich-text-editor.js +5 -5
  67. package/dist/composed/rich-text-editor.js.map +1 -1
  68. package/dist/composed/schedule-view.js +5 -5
  69. package/dist/composed/schedule-view.js.map +1 -1
  70. package/dist/hooks/index.d.ts +1 -0
  71. package/dist/hooks/index.d.ts.map +1 -1
  72. package/dist/hooks/index.js +4 -3
  73. package/dist/hooks/use-container-size.d.ts +18 -0
  74. package/dist/hooks/use-container-size.d.ts.map +1 -0
  75. package/dist/hooks/use-container-size.js +28 -0
  76. package/dist/hooks/use-container-size.js.map +1 -0
  77. package/dist/shell/app-shell.d.ts +101 -0
  78. package/dist/shell/app-shell.d.ts.map +1 -0
  79. package/dist/shell/app-shell.js +76 -0
  80. package/dist/shell/app-shell.js.map +1 -0
  81. package/dist/shell/bottom-navbar.js +2 -2
  82. package/dist/shell/bottom-navbar.js.map +1 -1
  83. package/dist/shell/index.d.ts +1 -0
  84. package/dist/shell/index.d.ts.map +1 -1
  85. package/dist/shell/index.js +6 -5
  86. package/dist/shell/notification-center.js +4 -4
  87. package/dist/shell/notification-center.js.map +1 -1
  88. package/dist/shell/notification-preferences.js +1 -1
  89. package/dist/shell/notification-preferences.js.map +1 -1
  90. package/dist/shell/top-bar.js +7 -7
  91. package/dist/shell/top-bar.js.map +1 -1
  92. package/dist/tokens/generate-scale.d.ts +49 -0
  93. package/dist/tokens/generate-scale.d.ts.map +1 -1
  94. package/dist/tokens/primitives.css +29 -26
  95. package/dist/tokens/semantic.css +98 -39
  96. package/dist/tokens/variants.css +1 -1
  97. package/dist/ui/accordion.js +1 -1
  98. package/dist/ui/accordion.js.map +1 -1
  99. package/dist/ui/alert-dialog.js +1 -1
  100. package/dist/ui/alert-dialog.js.map +1 -1
  101. package/dist/ui/alert.d.ts.map +1 -1
  102. package/dist/ui/alert.js +7 -7
  103. package/dist/ui/alert.js.map +1 -1
  104. package/dist/ui/avatar.js +3 -3
  105. package/dist/ui/avatar.js.map +1 -1
  106. package/dist/ui/badge-indicator.js +1 -1
  107. package/dist/ui/badge-indicator.js.map +1 -1
  108. package/dist/ui/badge.d.ts +47 -33
  109. package/dist/ui/badge.d.ts.map +1 -1
  110. package/dist/ui/banner.js +1 -1
  111. package/dist/ui/banner.js.map +1 -1
  112. package/dist/ui/button.js +4 -4
  113. package/dist/ui/button.js.map +1 -1
  114. package/dist/ui/card.js +4 -4
  115. package/dist/ui/card.js.map +1 -1
  116. package/dist/ui/chat/date-separator.d.ts +8 -1
  117. package/dist/ui/chat/date-separator.d.ts.map +1 -1
  118. package/dist/ui/checkbox.js +1 -1
  119. package/dist/ui/checkbox.js.map +1 -1
  120. package/dist/ui/code.js +2 -2
  121. package/dist/ui/code.js.map +1 -1
  122. package/dist/ui/color-input.js +3 -3
  123. package/dist/ui/color-input.js.map +1 -1
  124. package/dist/ui/combobox.js +4 -4
  125. package/dist/ui/combobox.js.map +1 -1
  126. package/dist/ui/context-menu.js +4 -4
  127. package/dist/ui/context-menu.js.map +1 -1
  128. package/dist/ui/data-table-body.d.ts +3 -1
  129. package/dist/ui/data-table-body.d.ts.map +1 -1
  130. package/dist/ui/data-table-body.js +93 -92
  131. package/dist/ui/data-table-body.js.map +1 -1
  132. package/dist/ui/data-table-bulk-actions.d.ts +7 -1
  133. package/dist/ui/data-table-bulk-actions.d.ts.map +1 -1
  134. package/dist/ui/data-table-bulk-actions.js +14 -8
  135. package/dist/ui/data-table-bulk-actions.js.map +1 -1
  136. package/dist/ui/data-table-card.d.ts.map +1 -1
  137. package/dist/ui/data-table-card.js +66 -47
  138. package/dist/ui/data-table-card.js.map +1 -1
  139. package/dist/ui/data-table-context.d.ts +4 -0
  140. package/dist/ui/data-table-context.d.ts.map +1 -1
  141. package/dist/ui/data-table-context.js.map +1 -1
  142. package/dist/ui/data-table-header.d.ts.map +1 -1
  143. package/dist/ui/data-table-header.js +18 -15
  144. package/dist/ui/data-table-header.js.map +1 -1
  145. package/dist/ui/data-table-pagination.js +3 -3
  146. package/dist/ui/data-table-pagination.js.map +1 -1
  147. package/dist/ui/data-table-toolbar.d.ts +11 -1
  148. package/dist/ui/data-table-toolbar.d.ts.map +1 -1
  149. package/dist/ui/data-table-toolbar.js +7 -7
  150. package/dist/ui/data-table-toolbar.js.map +1 -1
  151. package/dist/ui/data-table.d.ts +52 -5
  152. package/dist/ui/data-table.d.ts.map +1 -1
  153. package/dist/ui/data-table.js +181 -169
  154. package/dist/ui/data-table.js.map +1 -1
  155. package/dist/ui/dialog.js +1 -1
  156. package/dist/ui/dialog.js.map +1 -1
  157. package/dist/ui/dot.js +1 -1
  158. package/dist/ui/dot.js.map +1 -1
  159. package/dist/ui/dropdown-menu.js +4 -4
  160. package/dist/ui/dropdown-menu.js.map +1 -1
  161. package/dist/ui/file-upload.js +3 -3
  162. package/dist/ui/file-upload.js.map +1 -1
  163. package/dist/ui/input-otp.js +1 -1
  164. package/dist/ui/input-otp.js.map +1 -1
  165. package/dist/ui/input.js +8 -8
  166. package/dist/ui/input.js.map +1 -1
  167. package/dist/ui/menubar.js +5 -5
  168. package/dist/ui/menubar.js.map +1 -1
  169. package/dist/ui/navigation-menu.js +1 -1
  170. package/dist/ui/navigation-menu.js.map +1 -1
  171. package/dist/ui/number-input.js +3 -3
  172. package/dist/ui/number-input.js.map +1 -1
  173. package/dist/ui/pagination.js +1 -1
  174. package/dist/ui/pagination.js.map +1 -1
  175. package/dist/ui/progress-ring.js +2 -2
  176. package/dist/ui/progress-ring.js.map +1 -1
  177. package/dist/ui/progress.d.ts.map +1 -1
  178. package/dist/ui/progress.js +16 -12
  179. package/dist/ui/progress.js.map +1 -1
  180. package/dist/ui/radio.js +1 -1
  181. package/dist/ui/radio.js.map +1 -1
  182. package/dist/ui/select.js +5 -5
  183. package/dist/ui/select.js.map +1 -1
  184. package/dist/ui/sheet.js +1 -1
  185. package/dist/ui/sheet.js.map +1 -1
  186. package/dist/ui/sidebar.js +12 -12
  187. package/dist/ui/sidebar.js.map +1 -1
  188. package/dist/ui/slider.js +1 -1
  189. package/dist/ui/slider.js.map +1 -1
  190. package/dist/ui/split-button.js +3 -3
  191. package/dist/ui/split-button.js.map +1 -1
  192. package/dist/ui/stat-card.js +1 -1
  193. package/dist/ui/stat-card.js.map +1 -1
  194. package/dist/ui/stepper.js +2 -2
  195. package/dist/ui/stepper.js.map +1 -1
  196. package/dist/ui/surface.d.ts.map +1 -1
  197. package/dist/ui/surface.js +2 -2
  198. package/dist/ui/surface.js.map +1 -1
  199. package/dist/ui/switch.js +1 -1
  200. package/dist/ui/switch.js.map +1 -1
  201. package/dist/ui/table.js +1 -1
  202. package/dist/ui/table.js.map +1 -1
  203. package/dist/ui/tabs.d.ts.map +1 -1
  204. package/dist/ui/tabs.js +1 -1
  205. package/dist/ui/tabs.js.map +1 -1
  206. package/dist/ui/textarea.js +5 -5
  207. package/dist/ui/textarea.js.map +1 -1
  208. package/dist/ui/toast.js +1 -1
  209. package/dist/ui/toast.js.map +1 -1
  210. package/dist/ui/toggle.js +3 -3
  211. package/dist/ui/toggle.js.map +1 -1
  212. package/docs/components/composed/avatar-group.md +4 -4
  213. package/docs/components/composed/diff.md +10 -2
  214. package/docs/components/composed/schedule-view.md +1 -1
  215. package/docs/components/shell/app-shell.md +132 -0
  216. package/docs/components/ui/avatar.md +1 -1
  217. package/docs/components/ui/button.md +1 -1
  218. package/docs/components/ui/chat.md +7 -1
  219. package/docs/components/ui/color-swatch.md +1 -1
  220. package/docs/components/ui/data-table-toolbar.md +6 -2
  221. package/docs/components/ui/data-table.md +41 -7
  222. package/docs/components/ui/dot.md +1 -1
  223. package/docs/components/ui/progress.md +1 -0
  224. package/docs/components/ui/surface.md +3 -3
  225. package/docs/components/ui/table.md +2 -2
  226. package/docs/recipes/install-astro.md +1 -0
  227. package/docs/recipes/install-next-app-router.md +1 -0
  228. package/docs/recipes/install-remix.md +1 -0
  229. package/docs/recipes/install-tanstack-start.md +1 -0
  230. package/docs/recipes/install-vite.md +1 -0
  231. package/llms.txt +2 -1
  232. package/make-kit/Guidelines.md +2 -2
  233. package/make-kit/components/button.md +1 -1
  234. package/make-kit/components/card.md +6 -6
  235. package/make-kit/components/surface.md +4 -4
  236. package/make-kit/foundations/color.md +4 -4
  237. package/make-kit/foundations/dark-mode.md +1 -1
  238. package/make-kit/foundations/radius.md +1 -1
  239. package/make-kit/foundations/surfaces.md +9 -9
  240. package/mcp-manifest.json +350 -32
  241. package/package.json +6 -3
  242. package/skill/SKILL.md +12 -6
  243. package/skill/references/components.md +2 -1
  244. package/skill/references/setup-astro.md +1 -0
  245. package/skill/references/setup-next-app-router.md +1 -0
  246. package/skill/references/setup-remix.md +1 -0
  247. package/skill/references/setup-tanstack-start.md +1 -0
  248. package/skill/references/setup-vite.md +1 -0
  249. package/dist/primitives/react-toast.d.ts +0 -120
  250. package/dist/ui/charts/_internal/scales.d.ts +0 -5
  251. package/dist/ui/charts/_internal/scales.d.ts.map +0 -1
  252. package/dist/ui/lib/slot.d.ts +0 -8
  253. package/dist/ui/lib/slot.d.ts.map +0 -1
@@ -3,11 +3,11 @@ import { cn as e } from "../ui/lib/utils.js";
3
3
  import { Icon as t } from "../ui/icon.js";
4
4
  import { Button as n } from "../ui/button.js";
5
5
  import * as r from "react";
6
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
7
- import { IconCheck as o, IconChevronDown as s, IconX as c } from "@tabler/icons-react";
8
- import { motion as l, useReducedMotion as u } from "framer-motion";
6
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
7
+ import { IconCheck as s, IconChevronDown as c, IconX as l } from "@tabler/icons-react";
8
+ import { motion as u, useReducedMotion as d } from "framer-motion";
9
9
  //#region ../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
10
- var d = class {
10
+ var f = class {
11
11
  diff(e, t, n = {}) {
12
12
  let r;
13
13
  typeof n == "function" ? (r = n, n = {}) : "callback" in n && (r = n.callback);
@@ -139,39 +139,39 @@ var d = class {
139
139
  return r;
140
140
  }
141
141
  };
142
- new class extends d {}();
142
+ new class extends f {}();
143
143
  //#endregion
144
144
  //#region ../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
145
- function f(e, t) {
145
+ function p(e, t) {
146
146
  let n;
147
147
  for (n = 0; n < e.length && n < t.length; n++) if (e[n] != t[n]) return e.slice(0, n);
148
148
  return e.slice(0, n);
149
149
  }
150
- function p(e, t) {
150
+ function m(e, t) {
151
151
  let n;
152
152
  if (!e || !t || e[e.length - 1] != t[t.length - 1]) return "";
153
153
  for (n = 0; n < e.length && n < t.length; n++) if (e[e.length - (n + 1)] != t[t.length - (n + 1)]) return e.slice(-n);
154
154
  return e.slice(-n);
155
155
  }
156
- function m(e, t, n) {
156
+ function h(e, t, n) {
157
157
  if (e.slice(0, t.length) != t) throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);
158
158
  return n + e.slice(t.length);
159
159
  }
160
- function h(e, t, n) {
160
+ function g(e, t, n) {
161
161
  if (!t) return e + n;
162
162
  if (e.slice(-t.length) != t) throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);
163
163
  return e.slice(0, -t.length) + n;
164
164
  }
165
- function g(e, t) {
166
- return m(e, t, "");
167
- }
168
165
  function _(e, t) {
169
166
  return h(e, t, "");
170
167
  }
171
168
  function v(e, t) {
172
- return t.slice(0, y(e, t));
169
+ return g(e, t, "");
173
170
  }
174
171
  function y(e, t) {
172
+ return t.slice(0, b(e, t));
173
+ }
174
+ function b(e, t) {
175
175
  let n = 0;
176
176
  e.length > t.length && (n = e.length - t.length);
177
177
  let r = t.length;
@@ -189,7 +189,7 @@ function y(e, t) {
189
189
  }
190
190
  return a;
191
191
  }
192
- function b(e, t) {
192
+ function x(e, t) {
193
193
  let n = [];
194
194
  for (let r of Array.from(t.segment(e))) {
195
195
  let e = r.segment;
@@ -197,27 +197,27 @@ function b(e, t) {
197
197
  }
198
198
  return n;
199
199
  }
200
- function x(e, t) {
201
- if (t) return C(e, t)[1];
200
+ function S(e, t) {
201
+ if (t) return w(e, t)[1];
202
202
  let n;
203
203
  for (n = e.length - 1; n >= 0 && e[n].match(/\s/); n--);
204
204
  return e.substring(n + 1);
205
205
  }
206
- function S(e, t) {
207
- if (t) return C(e, t)[0];
206
+ function C(e, t) {
207
+ if (t) return w(e, t)[0];
208
208
  let n = e.match(/^\s*/);
209
209
  return n ? n[0] : "";
210
210
  }
211
- function C(e, t) {
212
- if (!t) return [S(e), x(e)];
211
+ function w(e, t) {
212
+ if (!t) return [C(e), S(e)];
213
213
  if (t.resolvedOptions().granularity != "word") throw Error("The segmenter passed must have a granularity of \"word\"");
214
- let n = b(e, t), r = n[0], i = n[n.length - 1];
214
+ let n = x(e, t), r = n[0], i = n[n.length - 1];
215
215
  return [/\s/.test(r) ? r : "", /\s/.test(i) ? i : ""];
216
216
  }
217
217
  //#endregion
218
218
  //#region ../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
219
- var w = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}", T = RegExp(`[${w}]+|\\s+|[^${w}]`, "ug");
220
- new class extends d {
219
+ var T = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}", ee = RegExp(`[${T}]+|\\s+|[^${T}]`, "ug");
220
+ new class extends f {
221
221
  equals(e, t, n) {
222
222
  return n.ignoreCase && (e = e.toLowerCase(), t = t.toLowerCase()), e.trim() === t.trim();
223
223
  }
@@ -226,8 +226,8 @@ new class extends d {
226
226
  if (t.intlSegmenter) {
227
227
  let r = t.intlSegmenter;
228
228
  if (r.resolvedOptions().granularity != "word") throw Error("The segmenter passed must have a granularity of \"word\"");
229
- n = b(e, r);
230
- } else n = e.match(T) || [];
229
+ n = x(e, r);
230
+ } else n = e.match(ee) || [];
231
231
  let r = [], i = null;
232
232
  return n.forEach((e) => {
233
233
  /\s/.test(e) ? i == null ? r.push(e) : r.push(r.pop() + e) : i != null && /\s/.test(i) ? r[r.length - 1] == i ? r.push(r.pop() + e) : r.push(i + e) : r.push(e), i = e;
@@ -246,58 +246,58 @@ new class extends d {
246
246
  }();
247
247
  function E(e, t, n, r, i) {
248
248
  if (t && n) {
249
- let [a, o] = C(t.value, i), [s, c] = C(n.value, i);
249
+ let [a, o] = w(t.value, i), [s, c] = w(n.value, i);
250
250
  if (e) {
251
- let r = f(a, s);
252
- e.value = h(e.value, s, r), t.value = g(t.value, r), n.value = g(n.value, r);
251
+ let r = p(a, s);
252
+ e.value = g(e.value, s, r), t.value = _(t.value, r), n.value = _(n.value, r);
253
253
  }
254
254
  if (r) {
255
- let e = p(o, c);
256
- r.value = m(r.value, c, e), t.value = _(t.value, e), n.value = _(n.value, e);
255
+ let e = m(o, c);
256
+ r.value = h(r.value, c, e), t.value = v(t.value, e), n.value = v(n.value, e);
257
257
  }
258
258
  } else if (n) {
259
259
  if (e) {
260
- let e = S(n.value, i);
260
+ let e = C(n.value, i);
261
261
  n.value = n.value.substring(e.length);
262
262
  }
263
263
  if (r) {
264
- let e = S(r.value, i);
264
+ let e = C(r.value, i);
265
265
  r.value = r.value.substring(e.length);
266
266
  }
267
267
  } else if (e && r) {
268
- let n = S(r.value, i), [a, o] = C(t.value, i), s = f(n, a);
269
- t.value = g(t.value, s);
270
- let c = p(g(n, s), o);
271
- t.value = _(t.value, c), r.value = m(r.value, n, c), e.value = h(e.value, n, n.slice(0, n.length - c.length));
268
+ let n = C(r.value, i), [a, o] = w(t.value, i), s = p(n, a);
269
+ t.value = _(t.value, s);
270
+ let c = m(_(n, s), o);
271
+ t.value = v(t.value, c), r.value = h(r.value, n, c), e.value = g(e.value, n, n.slice(0, n.length - c.length));
272
272
  } else if (r) {
273
- let e = S(r.value, i), n = v(x(t.value, i), e);
274
- t.value = _(t.value, n);
273
+ let e = C(r.value, i), n = y(S(t.value, i), e);
274
+ t.value = v(t.value, n);
275
275
  } else if (e) {
276
- let n = v(x(e.value, i), S(t.value, i));
277
- t.value = g(t.value, n);
276
+ let n = y(S(e.value, i), C(t.value, i));
277
+ t.value = _(t.value, n);
278
278
  }
279
279
  }
280
- var ee = new class extends d {
280
+ var te = new class extends f {
281
281
  tokenize(e) {
282
- let t = RegExp(`(\\r?\\n)|[${w}]+|[^\\S\\n\\r]+|[^${w}]`, "ug");
282
+ let t = RegExp(`(\\r?\\n)|[${T}]+|[^\\S\\n\\r]+|[^${T}]`, "ug");
283
283
  return e.match(t) || [];
284
284
  }
285
285
  }();
286
286
  function D(e, t, n) {
287
- return ee.diff(e, t, n);
287
+ return te.diff(e, t, n);
288
288
  }
289
- var O = new class extends d {
289
+ var ne = new class extends f {
290
290
  constructor() {
291
- super(...arguments), this.tokenize = A;
291
+ super(...arguments), this.tokenize = O;
292
292
  }
293
293
  equals(e, t, n) {
294
294
  return n.ignoreWhitespace ? ((!n.newlineIsToken || !e.includes("\n")) && (e = e.trim()), (!n.newlineIsToken || !t.includes("\n")) && (t = t.trim())) : n.ignoreNewlineAtEof && !n.newlineIsToken && (e.endsWith("\n") && (e = e.slice(0, -1)), t.endsWith("\n") && (t = t.slice(0, -1))), super.equals(e, t, n);
295
295
  }
296
296
  }();
297
- function k(e, t, n) {
298
- return O.diff(e, t, n);
297
+ function re(e, t, n) {
298
+ return ne.diff(e, t, n);
299
299
  }
300
- function A(e, t) {
300
+ function O(e, t) {
301
301
  t.stripTrailingCr && (e = e.replace(/\r\n/g, "\n"));
302
302
  let n = [], r = e.split(/(\n|\r\n)/);
303
303
  r[r.length - 1] || r.pop();
@@ -309,10 +309,10 @@ function A(e, t) {
309
309
  }
310
310
  //#endregion
311
311
  //#region ../../node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/sentence.js
312
- function j(e) {
312
+ function k(e) {
313
313
  return e == "." || e == "!" || e == "?";
314
314
  }
315
- new class extends d {
315
+ new class extends f {
316
316
  tokenize(e) {
317
317
  let t = [], n = 0;
318
318
  for (let r = 0; r < e.length; r++) {
@@ -320,39 +320,39 @@ new class extends d {
320
320
  t.push(e.slice(n));
321
321
  break;
322
322
  }
323
- if (j(e[r]) && e[r + 1].match(/\s/)) {
323
+ if (k(e[r]) && e[r + 1].match(/\s/)) {
324
324
  for (t.push(e.slice(n, r + 1)), r = n = r + 1; e[r + 1]?.match(/\s/);) r++;
325
325
  t.push(e.slice(n, r + 1)), n = r + 1;
326
326
  }
327
327
  }
328
328
  return t;
329
329
  }
330
- }(), new class extends d {
330
+ }(), new class extends f {
331
331
  tokenize(e) {
332
332
  return e.split(/([{}:;,]|\s+)/);
333
333
  }
334
- }(), new class extends d {
334
+ }(), new class extends f {
335
335
  constructor() {
336
- super(...arguments), this.tokenize = A;
336
+ super(...arguments), this.tokenize = O;
337
337
  }
338
338
  get useLongestToken() {
339
339
  return !0;
340
340
  }
341
341
  castInput(e, t) {
342
342
  let { undefinedReplacement: n, stringifyReplacer: r = (e, t) => t === void 0 ? n : t } = t;
343
- return typeof e == "string" ? e : JSON.stringify(M(e, null, null, r), null, " ");
343
+ return typeof e == "string" ? e : JSON.stringify(A(e, null, null, r), null, " ");
344
344
  }
345
345
  equals(e, t, n) {
346
346
  return super.equals(e.replace(/,([\r\n])/g, "$1"), t.replace(/,([\r\n])/g, "$1"), n);
347
347
  }
348
348
  }();
349
- function M(e, t, n, r, i) {
349
+ function A(e, t, n, r, i) {
350
350
  t ||= [], n ||= [], r && (e = r(i === void 0 ? "" : i, e));
351
351
  let a;
352
352
  for (a = 0; a < t.length; a += 1) if (t[a] === e) return n[a];
353
353
  let o;
354
354
  if (Object.prototype.toString.call(e) === "[object Array]") {
355
- for (t.push(e), o = Array(e.length), n.push(o), a = 0; a < e.length; a += 1) o[a] = M(e[a], t, n, r, String(a));
355
+ for (t.push(e), o = Array(e.length), n.push(o), a = 0; a < e.length; a += 1) o[a] = A(e[a], t, n, r, String(a));
356
356
  return t.pop(), n.pop(), o;
357
357
  }
358
358
  if (e && e.toJSON && (e = e.toJSON()), typeof e == "object" && e) {
@@ -361,12 +361,12 @@ function M(e, t, n, r, i) {
361
361
  for (s in e)
362
362
  /* istanbul ignore else */
363
363
  Object.prototype.hasOwnProperty.call(e, s) && i.push(s);
364
- for (i.sort(), a = 0; a < i.length; a += 1) s = i[a], o[s] = M(e[s], t, n, r, s);
364
+ for (i.sort(), a = 0; a < i.length; a += 1) s = i[a], o[s] = A(e[s], t, n, r, s);
365
365
  t.pop(), n.pop();
366
366
  } else o = e;
367
367
  return o;
368
368
  }
369
- new class extends d {
369
+ new class extends f {
370
370
  tokenize(e) {
371
371
  return e.slice();
372
372
  }
@@ -379,8 +379,42 @@ new class extends d {
379
379
  }();
380
380
  //#endregion
381
381
  //#region src/composed/diff.tsx
382
+ var j = null;
383
+ function ie() {
384
+ return j ||= Promise.all([import("react-syntax-highlighter"), import("react-syntax-highlighter/dist/esm/styles/prism/one-dark")]).then(([e, t]) => ({
385
+ Highlighter: e.Prism ?? e.default,
386
+ style: t.default
387
+ })), j;
388
+ }
389
+ function M({ language: e, text: t }) {
390
+ let [n, o] = r.useState(null);
391
+ if (r.useEffect(() => {
392
+ if (!e) return;
393
+ let t = !1;
394
+ return ie().then((e) => {
395
+ t || o(e);
396
+ }).catch(() => {}), () => {
397
+ t = !0;
398
+ };
399
+ }, [e]), !e || !n) return /* @__PURE__ */ a(i, { children: t || " " });
400
+ let { Highlighter: s, style: c } = n;
401
+ return /* @__PURE__ */ a(s, {
402
+ language: e,
403
+ style: c,
404
+ PreTag: "span",
405
+ CodeTag: "span",
406
+ customStyle: {
407
+ margin: 0,
408
+ padding: 0,
409
+ background: "transparent",
410
+ display: "inline"
411
+ },
412
+ codeTagProps: { style: { background: "transparent" } },
413
+ children: t || " "
414
+ });
415
+ }
382
416
  function N({ children: e }) {
383
- return u() ? /* @__PURE__ */ i("div", { children: e }) : /* @__PURE__ */ i(l.div, {
417
+ return d() ? /* @__PURE__ */ a("div", { children: e }) : /* @__PURE__ */ a(u.div, {
384
418
  initial: {
385
419
  height: 0,
386
420
  opacity: 0
@@ -398,7 +432,7 @@ function N({ children: e }) {
398
432
  });
399
433
  }
400
434
  function P(e, t) {
401
- let n = k(e, t), r = [], i = 1, a = 1;
435
+ let n = re(e, t), r = [], i = 1, a = 1;
402
436
  for (let e of n) {
403
437
  let t = e.value.split("\n");
404
438
  t.length && t[t.length - 1] === "" && t.pop();
@@ -435,87 +469,88 @@ function F(e) {
435
469
  return a(), t;
436
470
  }
437
471
  function I(e, t) {
438
- let n = D(e, t), r = [], a = [];
472
+ let n = D(e, t), r = [], i = [];
439
473
  return n.forEach((e, t) => {
440
- e.added ? a.push(/* @__PURE__ */ i("mark", {
474
+ e.added ? i.push(/* @__PURE__ */ a("mark", {
441
475
  className: "rounded-xs bg-success-4 text-success-11",
442
476
  children: e.value
443
- }, t)) : e.removed ? r.push(/* @__PURE__ */ i("mark", {
477
+ }, t)) : e.removed ? r.push(/* @__PURE__ */ a("mark", {
444
478
  className: "rounded-xs bg-error-4 text-error-11 line-through decoration-error-11/40",
445
479
  children: e.value
446
- }, t)) : (r.push(/* @__PURE__ */ i("span", { children: e.value }, t)), a.push(/* @__PURE__ */ i("span", { children: e.value }, t)));
480
+ }, t)) : (r.push(/* @__PURE__ */ a("span", { children: e.value }, t)), i.push(/* @__PURE__ */ a("span", { children: e.value }, t)));
447
481
  }), {
448
482
  left: r,
449
- right: a
483
+ right: i
450
484
  };
451
485
  }
452
- function L({ added: t, removed: n, changes: r, className: o }) {
453
- return /* @__PURE__ */ a("div", {
454
- className: e("flex items-center gap-ds-03 text-body-sm font-sans", o),
486
+ function ae({ added: t, removed: n, changes: r, className: i }) {
487
+ return /* @__PURE__ */ o("div", {
488
+ className: e("flex items-center gap-ds-03 text-body-sm font-sans", i),
455
489
  children: [
456
- /* @__PURE__ */ a("span", {
490
+ /* @__PURE__ */ o("span", {
457
491
  className: "font-mono tabular-nums text-success-11",
458
492
  children: ["+", t]
459
493
  }),
460
- /* @__PURE__ */ a("span", {
494
+ /* @__PURE__ */ o("span", {
461
495
  className: "font-mono tabular-nums text-error-11",
462
496
  children: ["−", n]
463
497
  }),
464
- /* @__PURE__ */ i("span", {
498
+ /* @__PURE__ */ a("span", {
465
499
  className: "text-surface-fg-subtle",
466
500
  children: r === 0 ? "No changes" : `${r} ${r === 1 ? "change" : "changes"}`
467
501
  })
468
502
  ]
469
503
  });
470
504
  }
471
- function R({ seg: e, onAccept: r, onReject: s }) {
472
- if (!r && !s) return null;
473
- let l = {
505
+ function L({ seg: e, onAccept: r, onReject: i }) {
506
+ if (!r && !i) return null;
507
+ let c = {
474
508
  index: e.index,
475
509
  before: e.dels.map((e) => e.text).join("\n"),
476
510
  after: e.adds.map((e) => e.text).join("\n")
477
511
  };
478
- return /* @__PURE__ */ a("div", {
512
+ return /* @__PURE__ */ o("div", {
479
513
  className: "flex items-center gap-ds-01",
480
- children: [s && /* @__PURE__ */ i(n, {
514
+ children: [i && /* @__PURE__ */ a(n, {
481
515
  variant: "ghost",
482
516
  size: "icon-xs",
483
517
  "aria-label": `Reject change ${e.index + 1}`,
484
- onClick: () => s(l),
485
- children: /* @__PURE__ */ i(t, {
486
- icon: c,
518
+ onClick: () => i(c),
519
+ children: /* @__PURE__ */ a(t, {
520
+ icon: l,
487
521
  size: "xs"
488
522
  })
489
- }), r && /* @__PURE__ */ i(n, {
523
+ }), r && /* @__PURE__ */ a(n, {
490
524
  variant: "ghost",
491
525
  size: "icon-xs",
492
526
  "aria-label": `Accept change ${e.index + 1}`,
493
- onClick: () => r(l),
494
- children: /* @__PURE__ */ i(t, {
495
- icon: o,
527
+ onClick: () => r(c),
528
+ children: /* @__PURE__ */ a(t, {
529
+ icon: s,
496
530
  size: "xs"
497
531
  })
498
532
  })]
499
533
  });
500
534
  }
501
- var z = "select-none pl-ds-03 pr-ds-03 text-right font-mono text-caption tabular-nums text-surface-fg-subtle", B = "whitespace-pre-wrap break-words px-ds-03 font-mono text-body-sm leading-ds-relaxed", V = "select-none pl-ds-02 pr-ds-01 font-mono text-body-sm";
502
- function H({ segs: n, collapsibles: r, expanded: o, onExpand: c, onAcceptHunk: l, onRejectHunk: u }) {
503
- let d = !!l || !!u;
504
- return /* @__PURE__ */ i("div", {
535
+ var R = "select-none pl-ds-03 pr-ds-03 text-right font-mono text-caption tabular-nums text-surface-fg-subtle", z = "whitespace-pre-wrap break-words px-ds-03 font-mono text-body-sm leading-ds-relaxed", B = "select-none pl-ds-02 pr-ds-01 font-mono text-body-sm";
536
+ function oe({ segs: n, collapsibles: r, expanded: i, onExpand: s, onAcceptHunk: l, onRejectHunk: u, language: d }) {
537
+ let f = !!l || !!u;
538
+ return /* @__PURE__ */ a("div", {
505
539
  className: "min-w-full py-ds-02",
506
- children: n.map((n, f) => {
540
+ children: n.map((n, p) => {
507
541
  if (n.t === "gap") {
508
542
  let e = r.get(n.key) ?? [];
509
- return o.has(n.key) ? /* @__PURE__ */ i(N, { children: e.map((e) => /* @__PURE__ */ i(U, {
543
+ return i.has(n.key) ? /* @__PURE__ */ a(N, { children: e.map((e) => /* @__PURE__ */ a(V, {
510
544
  row: e,
511
- split: !1
512
- }, `${n.key}-${e.oldNo}`)) }, `reveal-${n.key}`) : /* @__PURE__ */ a("button", {
545
+ split: !1,
546
+ language: d
547
+ }, `${n.key}-${e.oldNo}`)) }, `reveal-${n.key}`) : /* @__PURE__ */ o("button", {
513
548
  type: "button",
514
- onClick: () => c(n.key),
515
- className: "flex w-full items-center gap-ds-02 border-y border-surface-border-subtle/30 bg-surface-raised-hover px-ds-03 py-ds-01 text-caption text-surface-fg-subtle hover:bg-surface-raised-active",
549
+ onClick: () => s(n.key),
550
+ className: "flex w-full items-center gap-ds-02 border-y border-surface-border-subtle/30 bg-surface-panel-hover px-ds-03 py-ds-01 text-caption text-surface-fg-subtle hover:bg-surface-panel-active",
516
551
  children: [
517
- /* @__PURE__ */ i(t, {
518
- icon: s,
552
+ /* @__PURE__ */ a(t, {
553
+ icon: c,
519
554
  size: "xs"
520
555
  }),
521
556
  "Expand ",
@@ -523,119 +558,135 @@ function H({ segs: n, collapsibles: r, expanded: o, onExpand: c, onAcceptHunk: l
523
558
  " unchanged ",
524
559
  e.length === 1 ? "line" : "lines"
525
560
  ]
526
- }, `gap-${f}`);
561
+ }, `gap-${p}`);
527
562
  }
528
- return n.t === "ctx" ? /* @__PURE__ */ i(U, {
563
+ return n.t === "ctx" ? /* @__PURE__ */ a(V, {
529
564
  row: n.row,
530
- split: !1
531
- }, `c-${f}`) : /* @__PURE__ */ a("div", {
565
+ split: !1,
566
+ language: d
567
+ }, `c-${p}`) : /* @__PURE__ */ o("div", {
532
568
  className: "group relative",
533
569
  children: [
534
- n.dels.map((t, n) => /* @__PURE__ */ a("div", {
570
+ n.dels.map((t, n) => /* @__PURE__ */ o("div", {
535
571
  className: "flex bg-error-3",
536
572
  children: [
537
- /* @__PURE__ */ i("span", {
538
- className: e(z, "min-w-[3.5ch]"),
573
+ /* @__PURE__ */ a("span", {
574
+ className: e(R, "min-w-[3.5ch]"),
539
575
  children: t.oldNo
540
576
  }),
541
- /* @__PURE__ */ i("span", { className: e(z, "min-w-[3.5ch] text-error-11/60") }),
542
- /* @__PURE__ */ i("span", {
543
- className: e(V, "text-error-11"),
577
+ /* @__PURE__ */ a("span", { className: e(R, "min-w-[3.5ch] text-error-11/60") }),
578
+ /* @__PURE__ */ a("span", {
579
+ className: e(B, "text-error-11"),
544
580
  children: "−"
545
581
  }),
546
- /* @__PURE__ */ i("span", {
547
- className: e(B, "flex-1 text-error-11"),
548
- children: t.text || "\xA0"
582
+ /* @__PURE__ */ a("span", {
583
+ className: e(z, "flex-1 text-error-11"),
584
+ children: d ? /* @__PURE__ */ a(M, {
585
+ language: d,
586
+ text: t.text
587
+ }) : t.text || "\xA0"
549
588
  })
550
589
  ]
551
590
  }, `d-${n}`)),
552
- n.adds.map((t, n) => /* @__PURE__ */ a("div", {
591
+ n.adds.map((t, n) => /* @__PURE__ */ o("div", {
553
592
  className: "flex bg-success-3",
554
593
  children: [
555
- /* @__PURE__ */ i("span", { className: e(z, "min-w-[3.5ch] text-success-11/60") }),
556
- /* @__PURE__ */ i("span", {
557
- className: e(z, "min-w-[3.5ch]"),
594
+ /* @__PURE__ */ a("span", { className: e(R, "min-w-[3.5ch] text-success-11/60") }),
595
+ /* @__PURE__ */ a("span", {
596
+ className: e(R, "min-w-[3.5ch]"),
558
597
  children: t.newNo
559
598
  }),
560
- /* @__PURE__ */ i("span", {
561
- className: e(V, "text-success-11"),
599
+ /* @__PURE__ */ a("span", {
600
+ className: e(B, "text-success-11"),
562
601
  children: "+"
563
602
  }),
564
- /* @__PURE__ */ i("span", {
565
- className: e(B, "flex-1 text-success-11"),
566
- children: t.text || "\xA0"
603
+ /* @__PURE__ */ a("span", {
604
+ className: e(z, "flex-1 text-success-11"),
605
+ children: d ? /* @__PURE__ */ a(M, {
606
+ language: d,
607
+ text: t.text
608
+ }) : t.text || "\xA0"
567
609
  })
568
610
  ]
569
611
  }, `a-${n}`)),
570
- d && /* @__PURE__ */ i("div", {
612
+ f && /* @__PURE__ */ a("div", {
571
613
  className: "absolute right-ds-02 top-ds-01 opacity-0 transition-opacity group-hover:opacity-100",
572
- children: /* @__PURE__ */ i(R, {
614
+ children: /* @__PURE__ */ a(L, {
573
615
  seg: n,
574
616
  onAccept: l,
575
617
  onReject: u
576
618
  })
577
619
  })
578
620
  ]
579
- }, `h-${f}`);
621
+ }, `h-${p}`);
580
622
  })
581
623
  });
582
624
  }
583
- function U({ row: t, split: n }) {
584
- return /* @__PURE__ */ a("div", {
585
- className: "flex bg-surface-raised",
625
+ function V({ row: t, split: n, language: r }) {
626
+ return /* @__PURE__ */ o("div", {
627
+ className: "flex bg-surface-panel",
586
628
  children: [
587
- /* @__PURE__ */ i("span", {
588
- className: e(z, "min-w-[3.5ch]"),
629
+ /* @__PURE__ */ a("span", {
630
+ className: e(R, "min-w-[3.5ch]"),
589
631
  children: t.oldNo
590
632
  }),
591
- !n && /* @__PURE__ */ i("span", {
592
- className: e(z, "min-w-[3.5ch]"),
633
+ !n && /* @__PURE__ */ a("span", {
634
+ className: e(R, "min-w-[3.5ch]"),
593
635
  children: t.newNo
594
636
  }),
595
- /* @__PURE__ */ i("span", {
596
- className: e(V, "text-surface-fg-subtle"),
637
+ /* @__PURE__ */ a("span", {
638
+ className: e(B, "text-surface-fg-subtle"),
597
639
  children: "\xA0"
598
640
  }),
599
- /* @__PURE__ */ i("span", {
600
- className: e(B, "flex-1 text-surface-fg-muted"),
601
- children: t.text || "\xA0"
641
+ /* @__PURE__ */ a("span", {
642
+ className: e(z, "flex-1 text-surface-fg-muted"),
643
+ children: r ? /* @__PURE__ */ a(M, {
644
+ language: r,
645
+ text: t.text
646
+ }) : t.text || "\xA0"
602
647
  })
603
648
  ]
604
649
  });
605
650
  }
606
- function W({ segs: n, collapsibles: r, expanded: o, onExpand: c, onAcceptHunk: l, onRejectHunk: u }) {
607
- let d = !!l || !!u, f = (t, n, r, o) => /* @__PURE__ */ a("div", {
651
+ function H({ segs: n, collapsibles: r, expanded: i, onExpand: s, onAcceptHunk: l, onRejectHunk: u, language: d }) {
652
+ let f = !!l || !!u, p = (t, n, r, i) => /* @__PURE__ */ o("div", {
608
653
  className: e("flex flex-1 min-w-0", r),
609
654
  children: [
610
- /* @__PURE__ */ i("span", {
611
- className: e(z, "min-w-[3.5ch]"),
655
+ /* @__PURE__ */ a("span", {
656
+ className: e(R, "min-w-[3.5ch]"),
612
657
  children: t ?? ""
613
658
  }),
614
- /* @__PURE__ */ i("span", {
615
- className: e(V),
616
- children: o
659
+ /* @__PURE__ */ a("span", {
660
+ className: e(B),
661
+ children: i
617
662
  }),
618
- /* @__PURE__ */ i("span", {
619
- className: e(B, "flex-1"),
663
+ /* @__PURE__ */ a("span", {
664
+ className: e(z, "flex-1"),
620
665
  children: n
621
666
  })
622
667
  ]
623
668
  });
624
- return /* @__PURE__ */ i("div", {
669
+ return /* @__PURE__ */ a("div", {
625
670
  className: "min-w-full py-ds-02",
626
671
  children: n.map((e, n) => {
627
672
  if (e.t === "gap") {
628
673
  let l = r.get(e.key) ?? [];
629
- return o.has(e.key) ? /* @__PURE__ */ i(N, { children: l.map((t) => /* @__PURE__ */ a("div", {
674
+ return i.has(e.key) ? /* @__PURE__ */ a(N, { children: l.map((t) => /* @__PURE__ */ o("div", {
630
675
  className: "flex divide-x divide-surface-border-subtle/30",
631
- children: [f(t.oldNo, t.text || "\xA0", "bg-surface-raised text-surface-fg-muted", "\xA0"), f(t.newNo, t.text || "\xA0", "bg-surface-raised text-surface-fg-muted", "\xA0")]
632
- }, `${e.key}-${t.oldNo}`)) }, `reveal-${e.key}`) : /* @__PURE__ */ a("button", {
676
+ children: [p(t.oldNo, d ? /* @__PURE__ */ a(M, {
677
+ language: d,
678
+ text: t.text
679
+ }) : t.text || "\xA0", "bg-surface-panel text-surface-fg-muted", "\xA0"), p(t.newNo, d ? /* @__PURE__ */ a(M, {
680
+ language: d,
681
+ text: t.text
682
+ }) : t.text || "\xA0", "bg-surface-panel text-surface-fg-muted", "\xA0")]
683
+ }, `${e.key}-${t.oldNo}`)) }, `reveal-${e.key}`) : /* @__PURE__ */ o("button", {
633
684
  type: "button",
634
- onClick: () => c(e.key),
635
- className: "flex w-full items-center gap-ds-02 border-y border-surface-border-subtle/30 bg-surface-raised-hover px-ds-03 py-ds-01 text-caption text-surface-fg-subtle hover:bg-surface-raised-active",
685
+ onClick: () => s(e.key),
686
+ className: "flex w-full items-center gap-ds-02 border-y border-surface-border-subtle/30 bg-surface-panel-hover px-ds-03 py-ds-01 text-caption text-surface-fg-subtle hover:bg-surface-panel-active",
636
687
  children: [
637
- /* @__PURE__ */ i(t, {
638
- icon: s,
688
+ /* @__PURE__ */ a(t, {
689
+ icon: c,
639
690
  size: "xs"
640
691
  }),
641
692
  "Expand ",
@@ -647,27 +698,39 @@ function W({ segs: n, collapsibles: r, expanded: o, onExpand: c, onAcceptHunk: l
647
698
  }
648
699
  if (e.t === "ctx") {
649
700
  let t = e.row;
650
- return /* @__PURE__ */ a("div", {
701
+ return /* @__PURE__ */ o("div", {
651
702
  className: "flex divide-x divide-surface-border-subtle/30",
652
- children: [f(t.oldNo, t.text || "\xA0", "bg-surface-raised text-surface-fg-muted", "\xA0"), f(t.newNo, t.text || "\xA0", "bg-surface-raised text-surface-fg-muted", "\xA0")]
703
+ children: [p(t.oldNo, d ? /* @__PURE__ */ a(M, {
704
+ language: d,
705
+ text: t.text
706
+ }) : t.text || "\xA0", "bg-surface-panel text-surface-fg-muted", "\xA0"), p(t.newNo, d ? /* @__PURE__ */ a(M, {
707
+ language: d,
708
+ text: t.text
709
+ }) : t.text || "\xA0", "bg-surface-panel text-surface-fg-muted", "\xA0")]
653
710
  }, `c-${n}`);
654
711
  }
655
- let p = Math.max(e.dels.length, e.adds.length);
656
- return /* @__PURE__ */ a("div", {
712
+ let m = Math.max(e.dels.length, e.adds.length);
713
+ return /* @__PURE__ */ o("div", {
657
714
  className: "group relative",
658
- children: [Array.from({ length: p }, (t, n) => {
659
- let r = e.dels[n], i = e.adds[n], o = r ? r.text || "\xA0" : "", s = i ? i.text || "\xA0" : "";
715
+ children: [Array.from({ length: m }, (t, n) => {
716
+ let r = e.dels[n], i = e.adds[n], s = r ? d ? /* @__PURE__ */ a(M, {
717
+ language: d,
718
+ text: r.text
719
+ }) : r.text || "\xA0" : "", c = i ? d ? /* @__PURE__ */ a(M, {
720
+ language: d,
721
+ text: i.text
722
+ }) : i.text || "\xA0" : "";
660
723
  if (r && i) {
661
724
  let e = I(r.text, i.text);
662
- o = e.left, s = e.right;
725
+ s = e.left, c = e.right;
663
726
  }
664
- return /* @__PURE__ */ a("div", {
727
+ return /* @__PURE__ */ o("div", {
665
728
  className: "flex divide-x divide-surface-border-subtle/30",
666
- children: [r ? f(r.oldNo, o, "bg-error-3 text-error-11", "−") : f(void 0, "", "bg-surface-raised-hover/40", "\xA0"), i ? f(i.newNo, s, "bg-success-3 text-success-11", "+") : f(void 0, "", "bg-surface-raised-hover/40", "\xA0")]
729
+ children: [r ? p(r.oldNo, s, "bg-error-3 text-error-11", "−") : p(void 0, "", "bg-surface-panel-hover/40", "\xA0"), i ? p(i.newNo, c, "bg-success-3 text-success-11", "+") : p(void 0, "", "bg-surface-panel-hover/40", "\xA0")]
667
730
  }, `r-${n}`);
668
- }), d && /* @__PURE__ */ i("div", {
731
+ }), f && /* @__PURE__ */ a("div", {
669
732
  className: "absolute right-ds-02 top-ds-01 opacity-0 transition-opacity group-hover:opacity-100",
670
- children: /* @__PURE__ */ i(R, {
733
+ children: /* @__PURE__ */ a(L, {
671
734
  seg: e,
672
735
  onAccept: l,
673
736
  onReject: u
@@ -677,7 +740,7 @@ function W({ segs: n, collapsibles: r, expanded: o, onExpand: c, onAcceptHunk: l
677
740
  })
678
741
  });
679
742
  }
680
- function te(e, t, n, r) {
743
+ function U(e, t, n, r) {
681
744
  let i = /* @__PURE__ */ new Map();
682
745
  if (!t) return {
683
746
  items: e,
@@ -720,16 +783,16 @@ function te(e, t, n, r) {
720
783
  collapsibles: i
721
784
  };
722
785
  }
723
- function ne({ before: e, after: t }) {
724
- return /* @__PURE__ */ i("div", {
725
- className: "whitespace-pre-wrap break-words px-ds-04 py-ds-03 font-sans text-body-md leading-ds-relaxed text-surface-fg bg-surface-raised",
726
- children: D(e, t).map((e, t) => e.added ? /* @__PURE__ */ i("mark", {
786
+ function W({ before: e, after: t }) {
787
+ return /* @__PURE__ */ a("div", {
788
+ className: "whitespace-pre-wrap break-words px-ds-04 py-ds-03 font-sans text-body-md leading-ds-relaxed text-surface-fg bg-surface-panel",
789
+ children: D(e, t).map((e, t) => e.added ? /* @__PURE__ */ a("mark", {
727
790
  className: "rounded-xs bg-success-4 text-success-11",
728
791
  children: e.value
729
- }, t) : e.removed ? /* @__PURE__ */ i("mark", {
792
+ }, t) : e.removed ? /* @__PURE__ */ a("mark", {
730
793
  className: "rounded-xs bg-error-4 text-error-11 line-through decoration-error-11/40",
731
794
  children: e.value
732
- }, t) : /* @__PURE__ */ i("span", { children: e.value }, t))
795
+ }, t) : /* @__PURE__ */ a("span", { children: e.value }, t))
733
796
  });
734
797
  }
735
798
  function G(e, t = "", n = {}) {
@@ -739,87 +802,95 @@ function G(e, t = "", n = {}) {
739
802
  return n;
740
803
  }
741
804
  function K(e, t) {
742
- let n, r;
805
+ let n, r, i = !1, a = !1;
743
806
  try {
744
- n = JSON.parse(e), r = JSON.parse(t);
807
+ n = JSON.parse(e);
745
808
  } catch {
746
- return {
747
- changes: [],
748
- error: "Fields mode needs valid JSON on both sides."
749
- };
809
+ i = !0;
750
810
  }
751
- let i = G(n), a = G(r), o = Array.from(/* @__PURE__ */ new Set([...Object.keys(i), ...Object.keys(a)])).sort(), s = [];
752
- for (let e of o) {
753
- let t = e in i, n = e in a;
754
- t && !n ? s.push({
811
+ try {
812
+ r = JSON.parse(t);
813
+ } catch {
814
+ a = !0;
815
+ }
816
+ if (i || a) return {
817
+ changes: [],
818
+ beforeError: i,
819
+ afterError: a
820
+ };
821
+ let o = G(n), s = G(r), c = Array.from(/* @__PURE__ */ new Set([...Object.keys(o), ...Object.keys(s)])).sort(), l = [];
822
+ for (let e of c) {
823
+ let t = e in o, n = e in s;
824
+ t && !n ? l.push({
755
825
  path: e,
756
826
  kind: "removed",
757
- before: i[e]
758
- }) : !t && n ? s.push({
827
+ before: o[e]
828
+ }) : !t && n ? l.push({
759
829
  path: e,
760
830
  kind: "added",
761
- after: a[e]
762
- }) : i[e] !== a[e] && s.push({
831
+ after: s[e]
832
+ }) : o[e] !== s[e] && l.push({
763
833
  path: e,
764
834
  kind: "changed",
765
- before: i[e],
766
- after: a[e]
835
+ before: o[e],
836
+ after: s[e]
767
837
  });
768
838
  }
769
839
  return {
770
- changes: s,
771
- error: null
840
+ changes: l,
841
+ beforeError: !1,
842
+ afterError: !1
772
843
  };
773
844
  }
774
- function re({ before: t, after: n, onAcceptHunk: o, onRejectHunk: s }) {
775
- let { changes: c, error: l } = r.useMemo(() => K(t, n), [t, n]), u = !!o || !!s;
776
- if (l) return /* @__PURE__ */ i("div", {
777
- className: "bg-surface-raised px-ds-04 py-ds-03 text-body-sm text-error-11",
778
- children: l
845
+ function se({ before: t, after: n, onAcceptHunk: i, onRejectHunk: s, beforeParseError: c, afterParseError: l }) {
846
+ let { changes: u, beforeError: d, afterError: f } = r.useMemo(() => K(t, n), [t, n]), p = !!i || !!s;
847
+ if (d || f) return /* @__PURE__ */ o("div", {
848
+ className: "flex flex-col gap-ds-02 bg-surface-panel px-ds-04 py-ds-03 text-body-sm text-error-11",
849
+ children: [d && (c ? c(t) : /* @__PURE__ */ a("span", { children: "Fields mode needs valid before JSON." })), f && (l ? l(n) : /* @__PURE__ */ a("span", { children: "Fields mode needs valid after JSON." }))]
779
850
  });
780
- if (c.length === 0) return /* @__PURE__ */ i("div", {
781
- className: "bg-surface-raised px-ds-04 py-ds-03 text-body-sm text-surface-fg-subtle",
851
+ if (u.length === 0) return /* @__PURE__ */ a("div", {
852
+ className: "bg-surface-panel px-ds-04 py-ds-03 text-body-sm text-surface-fg-subtle",
782
853
  children: "No field changes."
783
854
  });
784
- let d = {
855
+ let m = {
785
856
  added: "text-success-11",
786
857
  removed: "text-error-11",
787
858
  changed: "text-surface-fg"
788
859
  };
789
- return /* @__PURE__ */ i("div", {
790
- className: "divide-y divide-surface-border-subtle/30 bg-surface-raised",
791
- children: c.map((t, n) => /* @__PURE__ */ a("div", {
860
+ return /* @__PURE__ */ a("div", {
861
+ className: "divide-y divide-surface-border-subtle/30 bg-surface-panel",
862
+ children: u.map((t, n) => /* @__PURE__ */ o("div", {
792
863
  className: "group flex items-start gap-ds-03 px-ds-04 py-ds-03",
793
864
  children: [
794
- /* @__PURE__ */ i("span", {
795
- className: e("mt-[2px] shrink-0 text-body-xs font-medium", d[t.kind]),
865
+ /* @__PURE__ */ a("span", {
866
+ className: e("mt-[2px] shrink-0 text-body-xs font-medium", m[t.kind]),
796
867
  children: t.kind === "added" ? "Added" : t.kind === "removed" ? "Removed" : "Changed"
797
868
  }),
798
- /* @__PURE__ */ a("div", {
869
+ /* @__PURE__ */ o("div", {
799
870
  className: "min-w-0 flex-1",
800
- children: [/* @__PURE__ */ i("div", {
871
+ children: [/* @__PURE__ */ a("div", {
801
872
  className: "font-mono text-body-sm font-medium text-surface-fg",
802
873
  children: t.path
803
- }), /* @__PURE__ */ a("div", {
874
+ }), /* @__PURE__ */ o("div", {
804
875
  className: "mt-ds-01 flex flex-col gap-ds-01 font-mono text-body-sm",
805
- children: [t.before !== void 0 && /* @__PURE__ */ a("span", {
876
+ children: [t.before !== void 0 && /* @__PURE__ */ o("span", {
806
877
  className: "text-error-11",
807
- children: [/* @__PURE__ */ i("span", {
878
+ children: [/* @__PURE__ */ a("span", {
808
879
  className: "select-none pr-ds-02",
809
880
  children: "−"
810
881
  }), t.before]
811
- }), t.after !== void 0 && /* @__PURE__ */ a("span", {
882
+ }), t.after !== void 0 && /* @__PURE__ */ o("span", {
812
883
  className: "text-success-11",
813
- children: [/* @__PURE__ */ i("span", {
884
+ children: [/* @__PURE__ */ a("span", {
814
885
  className: "select-none pr-ds-02",
815
886
  children: "+"
816
887
  }), t.after]
817
888
  })]
818
889
  })]
819
890
  }),
820
- u && /* @__PURE__ */ i("div", {
891
+ p && /* @__PURE__ */ a("div", {
821
892
  className: "opacity-0 transition-opacity group-hover:opacity-100",
822
- children: /* @__PURE__ */ i(R, {
893
+ children: /* @__PURE__ */ a(L, {
823
894
  seg: {
824
895
  t: "chg",
825
896
  index: n,
@@ -832,7 +903,7 @@ function re({ before: t, after: n, onAcceptHunk: o, onRejectHunk: s }) {
832
903
  text: t.after
833
904
  }]
834
905
  },
835
- onAccept: o,
906
+ onAccept: i,
836
907
  onReject: s
837
908
  })
838
909
  })
@@ -846,10 +917,10 @@ function J() {
846
917
  if (!e) throw Error("Diff compound components must be used within <Diff.Root>");
847
918
  return e;
848
919
  }
849
- function Y({ before: e, after: t, mode: n = "inline", granularity: a = "line", collapseUnchanged: o = !0, collapseThreshold: s = 6, contextLines: c = 3, beforeLabel: l = "Committed", afterLabel: u = "Pending", onAcceptHunk: d, onRejectHunk: f, children: p }) {
850
- let [m, h] = r.useState(() => /* @__PURE__ */ new Set()), g = r.useCallback((e) => {
851
- h((t) => new Set(t).add(e));
852
- }, []), _ = a === "word" && n !== "fields", v = r.useMemo(() => {
920
+ function Y({ before: e, after: t, mode: n = "inline", granularity: i = "line", collapseUnchanged: o = !0, collapseThreshold: s = 6, contextLines: c = 3, beforeLabel: l = "Committed", afterLabel: u = "Pending", onAcceptHunk: d, onRejectHunk: f, language: p, beforeParseError: m, afterParseError: h, children: g }) {
921
+ let [_, v] = r.useState(() => /* @__PURE__ */ new Set()), y = r.useCallback((e) => {
922
+ v((t) => new Set(t).add(e));
923
+ }, []), b = i === "word" && n !== "fields", x = r.useMemo(() => {
853
924
  if (n === "fields") {
854
925
  let { changes: n } = K(e, t);
855
926
  return {
@@ -859,7 +930,7 @@ function Y({ before: e, after: t, mode: n = "inline", granularity: a = "line", c
859
930
  changeCount: n.length
860
931
  };
861
932
  }
862
- if (_) {
933
+ if (b) {
863
934
  let n = D(e, t), r = 0, i = 0, a = 0;
864
935
  for (let e of n) {
865
936
  if (!e.added && !e.removed) continue;
@@ -885,39 +956,42 @@ function Y({ before: e, after: t, mode: n = "inline", granularity: a = "line", c
885
956
  e,
886
957
  t,
887
958
  n,
888
- _
889
- ]), { items: y, collapsibles: b } = r.useMemo(() => te(v.rows.length ? F(v.rows) : [], o && !_, s, c), [
890
- v.rows,
959
+ b
960
+ ]), { items: S, collapsibles: C } = r.useMemo(() => U(x.rows.length ? F(x.rows) : [], o && !b, s, c), [
961
+ x.rows,
891
962
  o,
892
- _,
963
+ b,
893
964
  s,
894
965
  c
895
- ]), x = {
966
+ ]), w = {
896
967
  mode: n,
897
- granularity: a,
898
- isWord: _,
968
+ granularity: i,
969
+ isWord: b,
899
970
  before: e,
900
971
  after: t,
901
972
  beforeLabel: l,
902
973
  afterLabel: u,
903
- added: v.added,
904
- removed: v.removed,
905
- changeCount: v.changeCount,
906
- items: y,
907
- collapsibles: b,
908
- expanded: m,
909
- onExpand: g,
974
+ added: x.added,
975
+ removed: x.removed,
976
+ changeCount: x.changeCount,
977
+ items: S,
978
+ collapsibles: C,
979
+ expanded: _,
980
+ onExpand: y,
910
981
  onAcceptHunk: d,
911
- onRejectHunk: f
982
+ onRejectHunk: f,
983
+ language: p,
984
+ beforeParseError: m,
985
+ afterParseError: h
912
986
  };
913
- return /* @__PURE__ */ i(q.Provider, {
914
- value: x,
915
- children: p
987
+ return /* @__PURE__ */ a(q.Provider, {
988
+ value: w,
989
+ children: g
916
990
  });
917
991
  }
918
992
  function X({ className: e }) {
919
993
  let { added: t, removed: n, changeCount: r } = J();
920
- return /* @__PURE__ */ i(L, {
994
+ return /* @__PURE__ */ a(ae, {
921
995
  added: t,
922
996
  removed: n,
923
997
  changes: r,
@@ -925,57 +999,61 @@ function X({ className: e }) {
925
999
  });
926
1000
  }
927
1001
  function Z({ className: t }) {
928
- let { mode: n, beforeLabel: r, afterLabel: o } = J();
929
- return n === "split" ? /* @__PURE__ */ a("div", {
1002
+ let { mode: n, beforeLabel: r, afterLabel: i } = J();
1003
+ return n === "split" ? /* @__PURE__ */ o("div", {
930
1004
  className: e("flex gap-ds-04 text-label-xs font-semibold uppercase tracking-wide text-surface-fg-subtle", t),
931
- children: [/* @__PURE__ */ i("span", {
1005
+ children: [/* @__PURE__ */ a("span", {
932
1006
  className: "flex-1",
933
1007
  children: r
934
- }), /* @__PURE__ */ i("span", {
1008
+ }), /* @__PURE__ */ a("span", {
935
1009
  className: "flex-1",
936
- children: o
1010
+ children: i
937
1011
  })]
938
1012
  }) : null;
939
1013
  }
940
1014
  function Q({ className: t }) {
941
1015
  let n = J();
942
- return /* @__PURE__ */ i("div", {
1016
+ return /* @__PURE__ */ a("div", {
943
1017
  className: e("overflow-x-auto", t),
944
- children: n.mode === "fields" ? /* @__PURE__ */ i(re, {
1018
+ children: n.mode === "fields" ? /* @__PURE__ */ a(se, {
945
1019
  before: n.before,
946
1020
  after: n.after,
947
1021
  onAcceptHunk: n.onAcceptHunk,
948
- onRejectHunk: n.onRejectHunk
949
- }) : n.isWord ? /* @__PURE__ */ i(ne, {
1022
+ onRejectHunk: n.onRejectHunk,
1023
+ beforeParseError: n.beforeParseError,
1024
+ afterParseError: n.afterParseError
1025
+ }) : n.isWord ? /* @__PURE__ */ a(W, {
950
1026
  before: n.before,
951
1027
  after: n.after
952
- }) : n.mode === "split" ? /* @__PURE__ */ i(W, {
1028
+ }) : n.mode === "split" ? /* @__PURE__ */ a(H, {
953
1029
  segs: n.items,
954
1030
  collapsibles: n.collapsibles,
955
1031
  expanded: n.expanded,
956
1032
  onExpand: n.onExpand,
957
1033
  onAcceptHunk: n.onAcceptHunk,
958
- onRejectHunk: n.onRejectHunk
959
- }) : /* @__PURE__ */ i(H, {
1034
+ onRejectHunk: n.onRejectHunk,
1035
+ language: n.language
1036
+ }) : /* @__PURE__ */ a(oe, {
960
1037
  segs: n.items,
961
1038
  collapsibles: n.collapsibles,
962
1039
  expanded: n.expanded,
963
1040
  onExpand: n.onExpand,
964
1041
  onAcceptHunk: n.onAcceptHunk,
965
- onRejectHunk: n.onRejectHunk
1042
+ onRejectHunk: n.onRejectHunk,
1043
+ language: n.language
966
1044
  })
967
1045
  });
968
1046
  }
969
- var $ = r.forwardRef(function({ before: t, after: n, mode: r = "inline", granularity: o = "line", collapseUnchanged: s = !0, collapseThreshold: c = 6, contextLines: l = 3, showSummary: u = !0, beforeLabel: d = "Committed", afterLabel: f = "Pending", onAcceptHunk: p, onRejectHunk: m, className: h, ...g }, _) {
970
- return /* @__PURE__ */ i("div", {
971
- ref: _,
972
- className: e("overflow-hidden rounded-surface border border-card bg-surface-raised text-surface-fg", h),
973
- ...g,
974
- children: /* @__PURE__ */ a(Y, {
1047
+ var $ = r.forwardRef(function({ before: t, after: n, mode: r = "inline", granularity: i = "line", collapseUnchanged: s = !0, collapseThreshold: c = 6, contextLines: l = 3, showSummary: u = !0, beforeLabel: d = "Committed", afterLabel: f = "Pending", onAcceptHunk: p, onRejectHunk: m, language: h, beforeParseError: g, afterParseError: _, className: v, ...y }, b) {
1048
+ return /* @__PURE__ */ a("div", {
1049
+ ref: b,
1050
+ className: e("overflow-hidden rounded-surface border border-card bg-surface-panel text-surface-fg", v),
1051
+ ...y,
1052
+ children: /* @__PURE__ */ o(Y, {
975
1053
  before: t,
976
1054
  after: n,
977
1055
  mode: r,
978
- granularity: o,
1056
+ granularity: i,
979
1057
  collapseUnchanged: s,
980
1058
  collapseThreshold: c,
981
1059
  contextLines: l,
@@ -983,22 +1061,25 @@ var $ = r.forwardRef(function({ before: t, after: n, mode: r = "inline", granula
983
1061
  afterLabel: f,
984
1062
  onAcceptHunk: p,
985
1063
  onRejectHunk: m,
986
- children: [(u || r === "split") && /* @__PURE__ */ a("div", {
987
- className: "flex items-center justify-between gap-ds-03 border-b border-surface-border-subtle/30 bg-surface-raised px-ds-04 py-ds-02",
988
- children: [r === "split" ? /* @__PURE__ */ i(Z, { className: "flex-1" }) : /* @__PURE__ */ i("span", {
1064
+ language: h,
1065
+ beforeParseError: g,
1066
+ afterParseError: _,
1067
+ children: [(u || r === "split") && /* @__PURE__ */ o("div", {
1068
+ className: "flex items-center justify-between gap-ds-03 border-b border-surface-border-subtle/30 bg-surface-panel px-ds-04 py-ds-02",
1069
+ children: [r === "split" ? /* @__PURE__ */ a(Z, { className: "flex-1" }) : /* @__PURE__ */ a("span", {
989
1070
  className: "text-body-sm font-medium text-surface-fg-subtle",
990
1071
  children: "Changes"
991
- }), u && /* @__PURE__ */ i(X, {})]
992
- }), /* @__PURE__ */ i(Q, {})]
1072
+ }), u && /* @__PURE__ */ a(X, {})]
1073
+ }), /* @__PURE__ */ a(Q, {})]
993
1074
  })
994
1075
  });
995
1076
  });
996
1077
  $.displayName = "Diff";
997
- var ie = Object.assign($, {
1078
+ var ce = Object.assign($, {
998
1079
  Root: Y,
999
1080
  Summary: X,
1000
1081
  Body: Q,
1001
1082
  ColumnLabels: Z
1002
1083
  });
1003
1084
  //#endregion
1004
- export { ie as Diff, Q as DiffBody, Z as DiffColumnLabels, Y as DiffRoot, X as DiffSummary, J as useDiff };
1085
+ export { ce as Diff, Q as DiffBody, Z as DiffColumnLabels, Y as DiffRoot, X as DiffSummary, J as useDiff };