wimui 0.51.2 → 0.52.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 (215) hide show
  1. package/dist/components/_internal/FeedbackCloseButton.cjs +1 -1
  2. package/dist/components/_internal/FeedbackCloseButton.js +14 -13
  3. package/dist/components/_internal/FieldLabelContent.cjs +1 -1
  4. package/dist/components/_internal/FieldLabelContent.js +18 -17
  5. package/dist/components/ai/AIResponseFeedback/AIResponseFeedback.cjs +1 -1
  6. package/dist/components/ai/AIResponseFeedback/AIResponseFeedback.js +46 -45
  7. package/dist/components/ai/AgentStatus/AgentStatus.cjs +1 -1
  8. package/dist/components/ai/AgentStatus/AgentStatus.js +24 -23
  9. package/dist/components/ai/ArtifactsOverlay/ArtifactsOverlay.cjs +1 -1
  10. package/dist/components/ai/ArtifactsOverlay/ArtifactsOverlay.js +47 -45
  11. package/dist/components/ai/ChatUI/ChatUI.cjs +1 -1
  12. package/dist/components/ai/ChatUI/ChatUI.js +82 -81
  13. package/dist/components/ai/CodeBlock/CodeBlock.cjs +3 -3
  14. package/dist/components/ai/CodeBlock/CodeBlock.js +53 -52
  15. package/dist/components/ai/CodeDiffViewer/CodeDiffViewer.cjs +2 -2
  16. package/dist/components/ai/CodeDiffViewer/CodeDiffViewer.js +105 -104
  17. package/dist/components/ai/MarkdownRenderer/MarkdownRenderer.cjs +1 -1
  18. package/dist/components/ai/MarkdownRenderer/MarkdownRenderer.js +60 -59
  19. package/dist/components/ai/ModelSelector/ModelSelector.cjs +1 -1
  20. package/dist/components/ai/ModelSelector/ModelSelector.js +83 -82
  21. package/dist/components/ai/ModelSelector/model-selector.module.cjs +1 -1
  22. package/dist/components/ai/ModelSelector/model-selector.module.js +1 -1
  23. package/dist/components/ai/PromptInput/PromptInput.cjs +1 -1
  24. package/dist/components/ai/PromptInput/PromptInput.js +76 -75
  25. package/dist/components/ai/SourceCitation/SourceCitation.cjs +1 -1
  26. package/dist/components/ai/SourceCitation/SourceCitation.js +39 -38
  27. package/dist/components/ai/Terminal/Terminal.cjs +2 -2
  28. package/dist/components/ai/Terminal/Terminal.js +65 -64
  29. package/dist/components/ai/ThreadList/ThreadList.cjs +1 -1
  30. package/dist/components/ai/ThreadList/ThreadList.js +58 -57
  31. package/dist/components/data-display/Barcode/Barcode.cjs +1 -1
  32. package/dist/components/data-display/Barcode/Barcode.js +76 -75
  33. package/dist/components/data-display/Calendar/Calendar.cjs +1 -1
  34. package/dist/components/data-display/Calendar/Calendar.js +75 -74
  35. package/dist/components/data-display/CalendarHeatmap/CalendarHeatmap.cjs +1 -1
  36. package/dist/components/data-display/CalendarHeatmap/CalendarHeatmap.js +54 -52
  37. package/dist/components/data-display/Carousel/Carousel.cjs +1 -1
  38. package/dist/components/data-display/Carousel/Carousel.js +62 -61
  39. package/dist/components/data-display/Chip/Chip.cjs +1 -1
  40. package/dist/components/data-display/Chip/Chip.js +36 -35
  41. package/dist/components/data-display/Comment/Comment.cjs +1 -1
  42. package/dist/components/data-display/Comment/Comment.js +58 -57
  43. package/dist/components/data-display/Countdown/Countdown.cjs +1 -1
  44. package/dist/components/data-display/Countdown/Countdown.js +56 -55
  45. package/dist/components/data-display/DataGrid/DataGrid.cjs +1 -1
  46. package/dist/components/data-display/DataGrid/DataGrid.js +128 -127
  47. package/dist/components/data-display/JsonViewer/JsonViewer.cjs +1 -1
  48. package/dist/components/data-display/JsonViewer/JsonViewer.js +153 -152
  49. package/dist/components/data-display/Kanban/Kanban.cjs +1 -1
  50. package/dist/components/data-display/Kanban/Kanban.js +95 -94
  51. package/dist/components/data-display/NodeGraph/NodeGraph.cjs +1 -1
  52. package/dist/components/data-display/NodeGraph/NodeGraph.js +62 -61
  53. package/dist/components/data-display/PivotTable/PivotTable.cjs +1 -1
  54. package/dist/components/data-display/PivotTable/PivotTable.js +153 -152
  55. package/dist/components/data-display/Presence/Presence.cjs +1 -1
  56. package/dist/components/data-display/Presence/Presence.js +28 -27
  57. package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
  58. package/dist/components/data-display/PullToRefresh/PullToRefresh.js +73 -72
  59. package/dist/components/data-display/Reaction/Reaction.cjs +1 -1
  60. package/dist/components/data-display/Reaction/Reaction.js +31 -30
  61. package/dist/components/data-display/ScheduleView/ScheduleView.cjs +1 -1
  62. package/dist/components/data-display/ScheduleView/ScheduleView.js +49 -48
  63. package/dist/components/data-display/SortableList/SortableList.cjs +1 -1
  64. package/dist/components/data-display/SortableList/SortableList.js +44 -43
  65. package/dist/components/data-display/Tag/Tag.cjs +1 -1
  66. package/dist/components/data-display/Tag/Tag.js +29 -28
  67. package/dist/components/data-display/TreeDiagram/TreeDiagram.cjs +1 -1
  68. package/dist/components/data-display/TreeDiagram/TreeDiagram.js +85 -84
  69. package/dist/components/data-display/TreeView/TreeView.cjs +1 -1
  70. package/dist/components/data-display/TreeView/TreeView.js +123 -122
  71. package/dist/components/feedback/Autosave/Autosave.cjs +1 -1
  72. package/dist/components/feedback/Autosave/Autosave.js +32 -31
  73. package/dist/components/feedback/ErrorBoundary/ErrorBoundary.cjs +1 -1
  74. package/dist/components/feedback/ErrorBoundary/ErrorBoundary.js +35 -34
  75. package/dist/components/feedback/ScrollProgress/ScrollProgress.cjs +1 -1
  76. package/dist/components/feedback/ScrollProgress/ScrollProgress.js +21 -20
  77. package/dist/components/feedback/Tour/Tour.cjs +1 -1
  78. package/dist/components/feedback/Tour/Tour.js +98 -97
  79. package/dist/components/form/Button/Button.cjs +1 -1
  80. package/dist/components/form/Button/Button.js +55 -54
  81. package/dist/components/form/ColorInput/ColorInput.cjs +1 -1
  82. package/dist/components/form/ColorInput/ColorInput.js +30 -29
  83. package/dist/components/form/ColorPicker/color-picker.module.cjs +1 -1
  84. package/dist/components/form/ColorPicker/color-picker.module.js +1 -1
  85. package/dist/components/form/CopyButton/CopyButton.cjs +1 -1
  86. package/dist/components/form/CopyButton/CopyButton.js +27 -26
  87. package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
  88. package/dist/components/form/DatePicker/DatePicker.js +47 -46
  89. package/dist/components/form/DateRangePicker/DateRangePicker.cjs +1 -1
  90. package/dist/components/form/DateRangePicker/DateRangePicker.js +36 -35
  91. package/dist/components/form/Dropzone/Dropzone.cjs +1 -1
  92. package/dist/components/form/Dropzone/Dropzone.js +56 -55
  93. package/dist/components/form/FileUpload/FileUpload.cjs +1 -1
  94. package/dist/components/form/FileUpload/FileUpload.js +47 -46
  95. package/dist/components/form/FloatButton/FloatButton.cjs +1 -1
  96. package/dist/components/form/FloatButton/FloatButton.d.ts +4 -1
  97. package/dist/components/form/FloatButton/FloatButton.js +6 -6
  98. package/dist/components/form/ImageCropper/ImageCropper.cjs +1 -1
  99. package/dist/components/form/ImageCropper/ImageCropper.js +101 -99
  100. package/dist/components/form/InlineEdit/InlineEdit.cjs +1 -1
  101. package/dist/components/form/InlineEdit/InlineEdit.js +66 -65
  102. package/dist/components/form/Input/Input.cjs +1 -1
  103. package/dist/components/form/Input/Input.js +45 -44
  104. package/dist/components/form/InputBase/InputBase.cjs +1 -1
  105. package/dist/components/form/InputBase/InputBase.js +51 -50
  106. package/dist/components/form/InputBase/input-base.module.cjs +1 -1
  107. package/dist/components/form/InputBase/input-base.module.js +1 -1
  108. package/dist/components/form/MultiSelect/multiselect.module.cjs +1 -1
  109. package/dist/components/form/MultiSelect/multiselect.module.js +1 -1
  110. package/dist/components/form/PasswordStrength/PasswordStrength.cjs +1 -1
  111. package/dist/components/form/PasswordStrength/PasswordStrength.js +27 -26
  112. package/dist/components/form/PhoneInput/PhoneInput.cjs +1 -1
  113. package/dist/components/form/PhoneInput/PhoneInput.js +10 -10
  114. package/dist/components/form/QueryBuilder/QueryBuilder.cjs +1 -1
  115. package/dist/components/form/QueryBuilder/QueryBuilder.js +90 -89
  116. package/dist/components/form/RangeSlider/RangeSlider.cjs +1 -1
  117. package/dist/components/form/RangeSlider/RangeSlider.js +30 -29
  118. package/dist/components/form/RichTextEditor/RichTextEditor.cjs +1 -1
  119. package/dist/components/form/RichTextEditor/RichTextEditor.js +223 -222
  120. package/dist/components/form/SegmentedControl/SegmentedControl.cjs +1 -1
  121. package/dist/components/form/SegmentedControl/SegmentedControl.js +7 -7
  122. package/dist/components/form/Select/Select.cjs +1 -1
  123. package/dist/components/form/Select/Select.js +112 -111
  124. package/dist/components/form/SignaturePad/SignaturePad.cjs +1 -1
  125. package/dist/components/form/SignaturePad/SignaturePad.js +86 -79
  126. package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
  127. package/dist/components/form/SmartSearchInput/SmartSearchInput.js +63 -62
  128. package/dist/components/form/TagInput/TagInput.cjs +1 -1
  129. package/dist/components/form/TagInput/TagInput.js +68 -67
  130. package/dist/components/form/ThemeToggle/ThemeToggle.cjs +1 -1
  131. package/dist/components/form/ThemeToggle/ThemeToggle.js +68 -67
  132. package/dist/components/form/ThemeToggle/theme-toggle.module.cjs +1 -1
  133. package/dist/components/form/ThemeToggle/theme-toggle.module.js +1 -1
  134. package/dist/components/form/ToggleGroup/ToggleGroup.cjs +1 -1
  135. package/dist/components/form/ToggleGroup/ToggleGroup.js +6 -6
  136. package/dist/components/form/Transfer/Transfer.cjs +1 -1
  137. package/dist/components/form/Transfer/Transfer.js +127 -126
  138. package/dist/components/form/TreeSelect/TreeSelect.cjs +1 -1
  139. package/dist/components/form/TreeSelect/TreeSelect.js +6 -6
  140. package/dist/components/layout/Dashboard/Dashboard.cjs +1 -1
  141. package/dist/components/layout/Dashboard/Dashboard.js +90 -89
  142. package/dist/components/layout/Navbar/Navbar.cjs +1 -1
  143. package/dist/components/layout/Navbar/Navbar.d.ts +1 -1
  144. package/dist/components/layout/Navbar/Navbar.js +1 -1
  145. package/dist/components/layout/Sidebar/Sidebar.d.ts +1 -1
  146. package/dist/components/layout/Splitter/Splitter.cjs +1 -1
  147. package/dist/components/layout/Splitter/Splitter.js +40 -39
  148. package/dist/components/layout/Toolbar/Toolbar.cjs +1 -1
  149. package/dist/components/layout/Toolbar/Toolbar.js +66 -39
  150. package/dist/components/media/Audio/Audio.cjs +1 -1
  151. package/dist/components/media/Audio/Audio.js +90 -89
  152. package/dist/components/media/Audio/components/AudioCustomControls.cjs +1 -1
  153. package/dist/components/media/Audio/components/AudioCustomControls.js +115 -114
  154. package/dist/components/media/Gallery/Gallery.cjs +1 -1
  155. package/dist/components/media/Gallery/Gallery.js +132 -131
  156. package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
  157. package/dist/components/media/ImageCompare/ImageCompare.js +72 -71
  158. package/dist/components/media/Lightbox/Lightbox.cjs +1 -1
  159. package/dist/components/media/Lightbox/Lightbox.js +128 -127
  160. package/dist/components/media/Video/Video.cjs +1 -1
  161. package/dist/components/media/Video/Video.js +56 -55
  162. package/dist/components/media/Video/components/VideoAdvancedMenu.cjs +1 -1
  163. package/dist/components/media/Video/components/VideoAdvancedMenu.js +136 -135
  164. package/dist/components/media/Video/components/VideoControls.cjs +1 -1
  165. package/dist/components/media/Video/components/VideoControls.js +103 -102
  166. package/dist/components/navigation/BackTop/BackTop.cjs +1 -1
  167. package/dist/components/navigation/BackTop/BackTop.js +37 -36
  168. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +1 -1
  169. package/dist/components/navigation/Breadcrumb/Breadcrumb.js +41 -40
  170. package/dist/components/navigation/CommandPalette/CommandPalette.cjs +1 -1
  171. package/dist/components/navigation/CommandPalette/CommandPalette.js +100 -99
  172. package/dist/components/navigation/HamburgerMenu/HamburgerMenu.cjs +1 -1
  173. package/dist/components/navigation/HamburgerMenu/HamburgerMenu.d.ts +6 -0
  174. package/dist/components/navigation/HamburgerMenu/HamburgerMenu.js +32 -22
  175. package/dist/components/navigation/Pagination/Pagination.cjs +1 -1
  176. package/dist/components/navigation/Pagination/Pagination.js +39 -38
  177. package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
  178. package/dist/components/navigation/SpeedDial/SpeedDial.js +44 -43
  179. package/dist/components/overlay/ContextMenu/ContextMenu.cjs +1 -1
  180. package/dist/components/overlay/ContextMenu/ContextMenu.js +4 -4
  181. package/dist/components/overlay/Popover/Popover.cjs +1 -1
  182. package/dist/components/overlay/Popover/Popover.js +63 -62
  183. package/dist/components/typography/Spoiler/Spoiler.cjs +1 -1
  184. package/dist/components/typography/Spoiler/Spoiler.js +38 -37
  185. package/dist/i18n/generated/common.cjs +2 -0
  186. package/dist/i18n/generated/common.d.ts +3 -0
  187. package/dist/i18n/generated/common.js +570 -0
  188. package/dist/i18n/generated/components.cjs +2 -0
  189. package/dist/i18n/generated/components.d.ts +3 -0
  190. package/dist/i18n/generated/components.js +399 -0
  191. package/dist/i18n/generated/data-display.cjs +2 -0
  192. package/dist/i18n/generated/data-display.d.ts +3 -0
  193. package/dist/i18n/generated/data-display.js +12 -0
  194. package/dist/i18n/generated/form.cjs +2 -0
  195. package/dist/i18n/generated/form.d.ts +3 -0
  196. package/dist/i18n/generated/form.js +321 -0
  197. package/dist/i18n/generated/keys.d.ts +5 -1
  198. package/dist/i18n/generated/locales.cjs +2 -0
  199. package/dist/i18n/generated/locales.d.ts +1 -0
  200. package/dist/i18n/generated/locales.js +9 -0
  201. package/dist/i18n/instance.cjs +1 -1
  202. package/dist/i18n/instance.d.ts +18 -3
  203. package/dist/i18n/instance.js +24 -26
  204. package/dist/i18n/useWimTranslation.cjs +1 -1
  205. package/dist/i18n/useWimTranslation.d.ts +7 -8
  206. package/dist/i18n/useWimTranslation.js +6 -5
  207. package/dist/llms-full.txt +7 -3
  208. package/dist/llms.txt +1 -1
  209. package/dist/styles.css +1 -1
  210. package/dist/wimui.umd.css +1 -1
  211. package/dist/wimui.umd.js +5 -5
  212. package/package.json +10 -10
  213. package/dist/i18n/generated/resources.cjs +0 -2
  214. package/dist/i18n/generated/resources.d.ts +0 -4
  215. package/dist/i18n/generated/resources.js +0 -1283
@@ -1,110 +1,111 @@
1
1
  "use client";
2
2
  import { useWimTranslation as e } from "../../../i18n/useWimTranslation.js";
3
- import t from "../../../icon/paperclip.js";
4
- import n from "../../../icon/send.js";
5
- import { Icon as r } from "../../media/Icon/Icon.js";
6
- import { useAutoResize as i } from "../../../hooks/useAutoResize.js";
7
- import a from "./chat-ui.module.js";
8
- import o, { forwardRef as s } from "react";
9
- import c from "classnames";
10
- import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
3
+ import { commonNs as t } from "../../../i18n/generated/common.js";
4
+ import n from "../../../icon/paperclip.js";
5
+ import r from "../../../icon/send.js";
6
+ import { Icon as i } from "../../media/Icon/Icon.js";
7
+ import { useAutoResize as a } from "../../../hooks/useAutoResize.js";
8
+ import o from "./chat-ui.module.js";
9
+ import s, { forwardRef as c } from "react";
10
+ import l from "classnames";
11
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
11
12
  //#region src/components/ai/ChatUI/ChatUI.tsx
12
- var f = ({ children: e, className: t, ...n }) => /* @__PURE__ */ u("div", {
13
- className: c("wim-chat-ui", a.container, t),
13
+ var p = ({ children: e, className: t, ...n }) => /* @__PURE__ */ d("div", {
14
+ className: l("wim-chat-ui", o.container, t),
14
15
  ...n,
15
16
  children: e
16
- }), p = s(({ children: e, className: t, ...n }, r) => /* @__PURE__ */ u("div", {
17
+ }), m = c(({ children: e, className: t, ...n }, r) => /* @__PURE__ */ d("div", {
17
18
  ref: r,
18
- className: c(a.messageList, t),
19
+ className: l(o.messageList, t),
19
20
  ...n,
20
21
  children: e
21
22
  }));
22
- p.displayName = "ChatMessageList";
23
- var m = ({ children: e, position: t = "left", variant: n = "default", showAvatar: r = !0, avatar: i, timestamp: o, senderName: s, isTyping: f = !1, actions: p, actionsVisible: m = !0, className: h, ...g }) => /* @__PURE__ */ d("div", {
24
- className: c(a.message, a[t], a[n], { [a.hasAvatar]: r }, h),
23
+ m.displayName = "ChatMessageList";
24
+ var h = ({ children: e, position: t = "left", variant: n = "default", showAvatar: r = !0, avatar: i, timestamp: a, senderName: s, isTyping: c = !1, actions: p, actionsVisible: m = !0, className: h, ...g }) => /* @__PURE__ */ f("div", {
25
+ className: l(o.message, o[t], o[n], { [o.hasAvatar]: r }, h),
25
26
  ...g,
26
27
  children: [
27
- r && t === "left" && /* @__PURE__ */ u("div", {
28
- className: a.messageAvatar,
28
+ r && t === "left" && /* @__PURE__ */ d("div", {
29
+ className: o.messageAvatar,
29
30
  children: i
30
31
  }),
31
- /* @__PURE__ */ d("div", {
32
- className: a.contentWrapper,
32
+ /* @__PURE__ */ f("div", {
33
+ className: o.contentWrapper,
33
34
  children: [
34
- s && /* @__PURE__ */ u("div", {
35
- className: a.sender,
35
+ s && /* @__PURE__ */ d("div", {
36
+ className: o.sender,
36
37
  children: s
37
38
  }),
38
- /* @__PURE__ */ u("div", {
39
- className: c(a.bubble, { [a.typing]: f }),
40
- children: f ? /* @__PURE__ */ d(l, { children: [
41
- /* @__PURE__ */ u("span", { className: a.typingDot }),
42
- /* @__PURE__ */ u("span", { className: a.typingDot }),
43
- /* @__PURE__ */ u("span", { className: a.typingDot })
39
+ /* @__PURE__ */ d("div", {
40
+ className: l(o.bubble, { [o.typing]: c }),
41
+ children: c ? /* @__PURE__ */ f(u, { children: [
42
+ /* @__PURE__ */ d("span", { className: o.typingDot }),
43
+ /* @__PURE__ */ d("span", { className: o.typingDot }),
44
+ /* @__PURE__ */ d("span", { className: o.typingDot })
44
45
  ] }) : e
45
46
  }),
46
- p && /* @__PURE__ */ u("div", {
47
- className: c(a.actions, { [a.hoverOnly]: !m }),
47
+ p && /* @__PURE__ */ d("div", {
48
+ className: l(o.actions, { [o.hoverOnly]: !m }),
48
49
  children: p
49
50
  }),
50
- o && /* @__PURE__ */ u("div", {
51
- className: a.timestamp,
52
- children: o
51
+ a && /* @__PURE__ */ d("div", {
52
+ className: o.timestamp,
53
+ children: a
53
54
  })
54
55
  ]
55
56
  }),
56
- r && t === "right" && /* @__PURE__ */ u("div", {
57
- className: a.messageAvatar,
57
+ r && t === "right" && /* @__PURE__ */ d("div", {
58
+ className: o.messageAvatar,
58
59
  children: i
59
60
  })
60
61
  ]
61
- }), h = ({ children: e, className: t, ...n }) => /* @__PURE__ */ u("div", {
62
- className: c(a.inputArea, t),
62
+ }), g = ({ children: e, className: t, ...n }) => /* @__PURE__ */ d("div", {
63
+ className: l(o.inputArea, t),
63
64
  ...n,
64
65
  children: e
65
- }), g = s(({ onSend: s, onAttach: c, sendButtonLabel: l, sendButtonIcon: f = n, showSendButton: p = !0, showAttach: m = !1, maxRows: g = 8, className: _, ...v }, y) => {
66
- let { t: b } = e("common"), [x, S] = o.useState(""), C = v.value !== void 0, w = C ? v.value : x, T = i(w, g);
67
- o.useImperativeHandle(y, () => T.current);
68
- let E = !!l, D = () => {
69
- s && (s(w), C || S(""));
66
+ }), _ = c(({ onSend: c, onAttach: l, sendButtonLabel: u, sendButtonIcon: p = r, showSendButton: m = !0, showAttach: h = !1, maxRows: _ = 8, className: v, ...y }, b) => {
67
+ let { t: x } = e(t), [S, C] = s.useState(""), w = y.value !== void 0, T = w ? y.value : S, E = a(T, _);
68
+ s.useImperativeHandle(b, () => E.current);
69
+ let D = !!u, O = () => {
70
+ c && (c(T), w || C(""));
70
71
  };
71
- return /* @__PURE__ */ u(h, {
72
- className: _,
73
- children: /* @__PURE__ */ d("div", {
74
- className: a.fieldContainer,
72
+ return /* @__PURE__ */ d(g, {
73
+ className: v,
74
+ children: /* @__PURE__ */ f("div", {
75
+ className: o.fieldContainer,
75
76
  children: [
76
- m && /* @__PURE__ */ u("button", {
77
+ h && /* @__PURE__ */ d("button", {
77
78
  type: "button",
78
- className: a.attachButton,
79
- onClick: c,
80
- "aria-label": b("a11y.attach_file"),
81
- children: /* @__PURE__ */ u(r, {
82
- component: t,
79
+ className: o.attachButton,
80
+ onClick: l,
81
+ "aria-label": x("a11y.attach_file"),
82
+ children: /* @__PURE__ */ d(i, {
83
+ component: n,
83
84
  size: "sm"
84
85
  })
85
86
  }),
86
- /* @__PURE__ */ u("textarea", {
87
- ref: T,
88
- className: a.field,
89
- value: w,
87
+ /* @__PURE__ */ d("textarea", {
88
+ ref: E,
89
+ className: o.field,
90
+ value: T,
90
91
  onChange: (e) => {
91
- C || S(e.target.value), v.onChange?.(e);
92
+ w || C(e.target.value), y.onChange?.(e);
92
93
  },
93
94
  onKeyDown: (e) => {
94
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), D());
95
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), O());
95
96
  },
96
- placeholder: v.placeholder || "Type a message...",
97
+ placeholder: y.placeholder || "Type a message...",
97
98
  rows: 1,
98
- ...v
99
+ ...y
99
100
  }),
100
- p && /* @__PURE__ */ u("button", {
101
- className: a.sendButton,
102
- onClick: D,
103
- disabled: !w.trim(),
101
+ m && /* @__PURE__ */ d("button", {
102
+ className: o.sendButton,
103
+ onClick: O,
104
+ disabled: !T.trim(),
104
105
  type: "button",
105
- "aria-label": l || b("chat.send"),
106
- children: E ? l : /* @__PURE__ */ u(r, {
107
- component: f,
106
+ "aria-label": u || x("chat.send"),
107
+ children: D ? u : /* @__PURE__ */ d(i, {
108
+ component: p,
108
109
  size: "sm"
109
110
  })
110
111
  })
@@ -112,22 +113,22 @@ var m = ({ children: e, position: t = "left", variant: n = "default", showAvatar
112
113
  })
113
114
  });
114
115
  });
115
- g.displayName = "ChatInput";
116
- var _ = ({ src: t, alt: n, fallback: r, size: i = "md", tone: s = "s18", className: l, ...d }) => {
117
- let [f, p] = o.useState(!1), { t: m } = e("common"), h = n || m("chat.user_avatar");
118
- return /* @__PURE__ */ u("div", {
119
- className: c(a.avatar, a[i], a[s], l),
120
- ...d,
121
- children: t && !f ? /* @__PURE__ */ u("img", {
122
- src: t,
123
- alt: h,
124
- className: a.image,
125
- onError: () => p(!0)
126
- }) : /* @__PURE__ */ u("div", {
127
- className: a.fallback,
128
- children: r || h.charAt(0).toUpperCase()
116
+ _.displayName = "ChatInput";
117
+ var v = ({ src: n, alt: r, fallback: i, size: a = "md", tone: c = "s18", className: u, ...f }) => {
118
+ let [p, m] = s.useState(!1), { t: h } = e(t), g = r || h("chat.user_avatar");
119
+ return /* @__PURE__ */ d("div", {
120
+ className: l(o.avatar, o[a], o[c], u),
121
+ ...f,
122
+ children: n && !p ? /* @__PURE__ */ d("img", {
123
+ src: n,
124
+ alt: g,
125
+ className: o.image,
126
+ onError: () => m(!0)
127
+ }) : /* @__PURE__ */ d("div", {
128
+ className: o.fallback,
129
+ children: i || g.charAt(0).toUpperCase()
129
130
  })
130
131
  });
131
132
  };
132
133
  //#endregion
133
- export { _ as ChatAvatar, f as ChatContainer, g as ChatInput, h as ChatInputArea, m as ChatMessage, p as ChatMessageList };
134
+ export { v as ChatAvatar, p as ChatContainer, _ as ChatInput, g as ChatInputArea, h as ChatMessage, m as ChatMessageList };
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/check.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../../icon/copy.cjs"),a=require("../../media/Icon/Icon.cjs"),o=require("./code-block.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=s.default.forwardRef(({code:e,language:u,filename:d,showCopy:f=!0,showLineNumbers:p=!1,maxLines:m,className:h,...g},_)=>{let{t:v}=t.useWimTranslation(`form`),[y,b]=s.default.useState(!1),[x,S]=s.default.useState(!1),C=(0,s.useId)(),w=e.split(`
3
- `).length,T=m!=null&&w>m,E=(0,s.useCallback)(async()=>{try{await navigator.clipboard.writeText(e),b(!0),setTimeout(()=>b(!1),2e3)}catch{}},[e]),D=d??u;return(0,l.jsxs)(`div`,{ref:_,className:(0,c.default)(`wim-code-block`,o.default.root,h),...g,children:[(D||f)&&(0,l.jsxs)(`div`,{className:o.default.header,children:[D&&(0,l.jsx)(`span`,{className:o.default.lang,children:D}),(0,l.jsxs)(`div`,{className:o.default.headerActions,children:[T&&(0,l.jsx)(`button`,{type:`button`,className:o.default.iconButton,onClick:()=>S(e=>!e),"aria-expanded":x,"aria-controls":C,"aria-label":v(x?`code_block.collapse_label`:`code_block.expand_label`),children:(0,l.jsx)(a.Icon,{component:r.default,size:`sm`,className:(0,c.default)(o.default.chevron,x&&o.default.chevronUp)})}),f&&(0,l.jsx)(`button`,{type:`button`,className:(0,c.default)(o.default.iconButton,y&&o.default.copied),onClick:E,"aria-label":v(y?`code_block.copied_label`:`code_block.copy_label`),children:(0,l.jsx)(a.Icon,{component:y?n.default:i.default,size:`sm`})})]})]}),(0,l.jsx)(`div`,{id:C,className:(0,c.default)(o.default.body,T&&!x&&o.default.collapsed),tabIndex:0,style:T&&!x?{"--_max-lines":m}:void 0,children:(0,l.jsx)(`pre`,{className:o.default.pre,children:p?(0,l.jsx)(`code`,{className:o.default.code,children:e.split(`
4
- `).map((e,t)=>(0,l.jsxs)(`span`,{className:o.default.line,children:[(0,l.jsx)(`span`,{className:o.default.lineNumber,"aria-hidden":`true`,children:t+1}),(0,l.jsx)(`span`,{className:o.default.lineContent,children:e})]},t))}):(0,l.jsx)(`code`,{className:o.default.code,children:e})})})]})});u.displayName=`CodeBlock`,exports.CodeBlock=u;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/check.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../../icon/copy.cjs"),a=require("../../media/Icon/Icon.cjs"),o=require("../../../i18n/generated/form.cjs"),s=require("./code-block.module.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=c.default.forwardRef(({code:e,language:d,filename:f,showCopy:p=!0,showLineNumbers:m=!1,maxLines:h,className:g,..._},v)=>{let{t:y}=t.useWimTranslation(o.formNs),[b,x]=c.default.useState(!1),[S,C]=c.default.useState(!1),w=(0,c.useId)(),T=e.split(`
3
+ `).length,E=h!=null&&T>h,D=(0,c.useCallback)(async()=>{try{await navigator.clipboard.writeText(e),x(!0),setTimeout(()=>x(!1),2e3)}catch{}},[e]),O=f??d;return(0,u.jsxs)(`div`,{ref:v,className:(0,l.default)(`wim-code-block`,s.default.root,g),..._,children:[(O||p)&&(0,u.jsxs)(`div`,{className:s.default.header,children:[O&&(0,u.jsx)(`span`,{className:s.default.lang,children:O}),(0,u.jsxs)(`div`,{className:s.default.headerActions,children:[E&&(0,u.jsx)(`button`,{type:`button`,className:s.default.iconButton,onClick:()=>C(e=>!e),"aria-expanded":S,"aria-controls":w,"aria-label":y(S?`code_block.collapse_label`:`code_block.expand_label`),children:(0,u.jsx)(a.Icon,{component:r.default,size:`sm`,className:(0,l.default)(s.default.chevron,S&&s.default.chevronUp)})}),p&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(s.default.iconButton,b&&s.default.copied),onClick:D,"aria-label":y(b?`code_block.copied_label`:`code_block.copy_label`),children:(0,u.jsx)(a.Icon,{component:b?n.default:i.default,size:`sm`})})]})]}),(0,u.jsx)(`div`,{id:w,className:(0,l.default)(s.default.body,E&&!S&&s.default.collapsed),tabIndex:0,style:E&&!S?{"--_max-lines":h}:void 0,children:(0,u.jsx)(`pre`,{className:s.default.pre,children:m?(0,u.jsx)(`code`,{className:s.default.code,children:e.split(`
4
+ `).map((e,t)=>(0,u.jsxs)(`span`,{className:s.default.line,children:[(0,u.jsx)(`span`,{className:s.default.lineNumber,"aria-hidden":`true`,children:t+1}),(0,u.jsx)(`span`,{className:s.default.lineContent,children:e})]},t))}):(0,u.jsx)(`code`,{className:s.default.code,children:e})})})]})});d.displayName=`CodeBlock`,exports.CodeBlock=d;
@@ -4,79 +4,80 @@ import t from "../../../icon/check.js";
4
4
  import n from "../../../icon/chevron-down.js";
5
5
  import r from "../../../icon/copy.js";
6
6
  import { Icon as i } from "../../media/Icon/Icon.js";
7
- import a from "./code-block.module.js";
8
- import o, { useCallback as s, useId as c } from "react";
9
- import l from "classnames";
10
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
7
+ import { formNs as a } from "../../../i18n/generated/form.js";
8
+ import o from "./code-block.module.js";
9
+ import s, { useCallback as c, useId as l } from "react";
10
+ import u from "classnames";
11
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
11
12
  //#region src/components/ai/CodeBlock/CodeBlock.tsx
12
- var f = o.forwardRef(({ code: f, language: p, filename: m, showCopy: h = !0, showLineNumbers: g = !1, maxLines: _, className: v, ...y }, b) => {
13
- let { t: x } = e("form"), [S, C] = o.useState(!1), [w, T] = o.useState(!1), E = c(), D = f.split("\n").length, O = _ != null && D > _, k = s(async () => {
13
+ var p = s.forwardRef(({ code: p, language: m, filename: h, showCopy: g = !0, showLineNumbers: _ = !1, maxLines: v, className: y, ...b }, x) => {
14
+ let { t: S } = e(a), [C, w] = s.useState(!1), [T, E] = s.useState(!1), D = l(), O = p.split("\n").length, k = v != null && O > v, A = c(async () => {
14
15
  try {
15
- await navigator.clipboard.writeText(f), C(!0), setTimeout(() => C(!1), 2e3);
16
+ await navigator.clipboard.writeText(p), w(!0), setTimeout(() => w(!1), 2e3);
16
17
  } catch {}
17
- }, [f]), A = m ?? p;
18
- return /* @__PURE__ */ d("div", {
19
- ref: b,
20
- className: l("wim-code-block", a.root, v),
21
- ...y,
22
- children: [(A || h) && /* @__PURE__ */ d("div", {
23
- className: a.header,
24
- children: [A && /* @__PURE__ */ u("span", {
25
- className: a.lang,
26
- children: A
27
- }), /* @__PURE__ */ d("div", {
28
- className: a.headerActions,
29
- children: [O && /* @__PURE__ */ u("button", {
18
+ }, [p]), j = h ?? m;
19
+ return /* @__PURE__ */ f("div", {
20
+ ref: x,
21
+ className: u("wim-code-block", o.root, y),
22
+ ...b,
23
+ children: [(j || g) && /* @__PURE__ */ f("div", {
24
+ className: o.header,
25
+ children: [j && /* @__PURE__ */ d("span", {
26
+ className: o.lang,
27
+ children: j
28
+ }), /* @__PURE__ */ f("div", {
29
+ className: o.headerActions,
30
+ children: [k && /* @__PURE__ */ d("button", {
30
31
  type: "button",
31
- className: a.iconButton,
32
- onClick: () => T((e) => !e),
33
- "aria-expanded": w,
34
- "aria-controls": E,
35
- "aria-label": x(w ? "code_block.collapse_label" : "code_block.expand_label"),
36
- children: /* @__PURE__ */ u(i, {
32
+ className: o.iconButton,
33
+ onClick: () => E((e) => !e),
34
+ "aria-expanded": T,
35
+ "aria-controls": D,
36
+ "aria-label": S(T ? "code_block.collapse_label" : "code_block.expand_label"),
37
+ children: /* @__PURE__ */ d(i, {
37
38
  component: n,
38
39
  size: "sm",
39
- className: l(a.chevron, w && a.chevronUp)
40
+ className: u(o.chevron, T && o.chevronUp)
40
41
  })
41
- }), h && /* @__PURE__ */ u("button", {
42
+ }), g && /* @__PURE__ */ d("button", {
42
43
  type: "button",
43
- className: l(a.iconButton, S && a.copied),
44
- onClick: k,
45
- "aria-label": x(S ? "code_block.copied_label" : "code_block.copy_label"),
46
- children: /* @__PURE__ */ u(i, {
47
- component: S ? t : r,
44
+ className: u(o.iconButton, C && o.copied),
45
+ onClick: A,
46
+ "aria-label": S(C ? "code_block.copied_label" : "code_block.copy_label"),
47
+ children: /* @__PURE__ */ d(i, {
48
+ component: C ? t : r,
48
49
  size: "sm"
49
50
  })
50
51
  })]
51
52
  })]
52
- }), /* @__PURE__ */ u("div", {
53
- id: E,
54
- className: l(a.body, O && !w && a.collapsed),
53
+ }), /* @__PURE__ */ d("div", {
54
+ id: D,
55
+ className: u(o.body, k && !T && o.collapsed),
55
56
  tabIndex: 0,
56
- style: O && !w ? { "--_max-lines": _ } : void 0,
57
- children: /* @__PURE__ */ u("pre", {
58
- className: a.pre,
59
- children: g ? /* @__PURE__ */ u("code", {
60
- className: a.code,
61
- children: f.split("\n").map((e, t) => /* @__PURE__ */ d("span", {
62
- className: a.line,
63
- children: [/* @__PURE__ */ u("span", {
64
- className: a.lineNumber,
57
+ style: k && !T ? { "--_max-lines": v } : void 0,
58
+ children: /* @__PURE__ */ d("pre", {
59
+ className: o.pre,
60
+ children: _ ? /* @__PURE__ */ d("code", {
61
+ className: o.code,
62
+ children: p.split("\n").map((e, t) => /* @__PURE__ */ f("span", {
63
+ className: o.line,
64
+ children: [/* @__PURE__ */ d("span", {
65
+ className: o.lineNumber,
65
66
  "aria-hidden": "true",
66
67
  children: t + 1
67
- }), /* @__PURE__ */ u("span", {
68
- className: a.lineContent,
68
+ }), /* @__PURE__ */ d("span", {
69
+ className: o.lineContent,
69
70
  children: e
70
71
  })]
71
72
  }, t))
72
- }) : /* @__PURE__ */ u("code", {
73
- className: a.code,
74
- children: f
73
+ }) : /* @__PURE__ */ d("code", {
74
+ className: o.code,
75
+ children: p
75
76
  })
76
77
  })
77
78
  })]
78
79
  });
79
80
  });
80
- f.displayName = "CodeBlock";
81
+ p.displayName = "CodeBlock";
81
82
  //#endregion
82
- export { f as CodeBlock };
83
+ export { p as CodeBlock };
@@ -1,4 +1,4 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/align-justify.cjs"),r=require("../../../icon/check.cjs"),i=require("../../../icon/close.cjs"),a=require("../../../icon/columns.cjs"),o=require("../../../icon/copy.cjs"),s=require("../../../icon/spinner.cjs"),c=require("../../media/Icon/Icon.cjs"),l=require("./code-diff-viewer.module.cjs");let u=require("react");u=e.__toESM(u,1);let d=require("classnames");d=e.__toESM(d,1);let f=require("react/jsx-runtime"),p=require("diff");function m(e){let t=e.endsWith(`
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/align-justify.cjs"),r=require("../../../icon/check.cjs"),i=require("../../../icon/close.cjs"),a=require("../../../icon/columns.cjs"),o=require("../../../icon/copy.cjs"),s=require("../../../icon/spinner.cjs"),c=require("../../media/Icon/Icon.cjs"),l=require("../../../i18n/generated/form.cjs"),u=require("./code-diff-viewer.module.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("classnames");f=e.__toESM(f,1);let p=require("react/jsx-runtime"),m=require("diff");function h(e){let t=e.endsWith(`
3
3
  `)?e.slice(0,-1):e;return t===``?[]:t.split(`
4
- `)}function h(e){let t=[],n=1,r=1;for(let i of e)for(let e of m(i.value))i.removed?t.push({type:`removed`,content:e,oldNum:n++}):i.added?t.push({type:`added`,content:e,newNum:r++}):t.push({type:`unchanged`,content:e,oldNum:n++,newNum:r++});return t}function g(e){let t=[],n=[],r=1,i=1,a=0;for(;a<e.length;){let o=e[a];if(!o.added&&!o.removed){for(let e of m(o.value))t.push({type:`unchanged`,content:e,num:r++}),n.push({type:`unchanged`,content:e,num:i++});a++}else if(o.removed){let s=m(o.value),c=e[a+1],l=c?.added?m(c.value):[];c?.added&&a++;let u=Math.max(s.length,l.length);for(let e=0;e<u;e++)t.push(e<s.length?{type:`removed`,content:s[e],num:r++}:{type:`empty`,content:``}),n.push(e<l.length?{type:`added`,content:l[e],num:i++}:{type:`empty`,content:``});a++}else{for(let e of m(o.value))t.push({type:`empty`,content:``}),n.push({type:`added`,content:e,num:i++});a++}}return{left:t,right:n}}function _({num:e}){return(0,f.jsx)(`span`,{className:l.default.lineNum,"aria-hidden":`true`,children:e??``})}function v({line:e}){let t=e.type===`added`?`+`:e.type===`removed`?`−`:` `;return(0,f.jsxs)(`div`,{className:(0,d.default)(l.default.row,l.default[e.type]),children:[(0,f.jsx)(_,{num:e.oldNum}),(0,f.jsx)(_,{num:e.newNum}),(0,f.jsx)(`span`,{className:l.default.prefix,"aria-hidden":`true`,children:t}),(0,f.jsx)(`span`,{className:l.default.lineContent,children:e.content})]})}function y({line:e}){return(0,f.jsxs)(`div`,{className:(0,d.default)(l.default.splitCell,l.default[e.type]),children:[(0,f.jsx)(_,{num:e.num}),e.type!==`empty`&&(0,f.jsx)(`span`,{className:l.default.prefix,"aria-hidden":`true`,children:e.type===`added`?`+`:e.type===`removed`?`−`:` `}),(0,f.jsx)(`span`,{className:l.default.lineContent,children:e.content})]})}var b=u.default.forwardRef(({before:e,after:m,language:_,filename:b,view:x=`split`,onApply:S,onReject:C,className:w,isApplying:T=!1,isApplied:E=!1,...D},O)=>{let{t:k}=t.useWimTranslation(`form`),[A,j]=u.default.useState(!1),[M,N]=u.default.useState(x),[P,F]=u.default.useState(null),I=P??M,L=(0,u.useRef)(null);(0,u.useImperativeHandle)(O,()=>L.current,[]),(0,u.useEffect)(()=>{let e=L.current;if(!e)return;let t=new ResizeObserver(([e])=>{let t=e.contentRect.width<640;N(e=>{let n=t?`unified`:`split`;return e!==n&&F(null),n})});return t.observe(e),()=>t.disconnect()},[]);let R=(0,u.useMemo)(()=>(0,p.diffLines)(e??``,m??``),[e,m]),z=(0,u.useMemo)(()=>h(R),[R]),B=(0,u.useMemo)(()=>g(R),[R]),V=b??_,H=(0,u.useCallback)(async()=>{try{await navigator.clipboard.writeText(m),j(!0),setTimeout(()=>j(!1),2e3)}catch{}},[m]);return(0,f.jsxs)(`div`,{ref:L,className:(0,d.default)(`wim-code-diff-viewer`,l.default.root,w),...D,children:[(0,f.jsxs)(`div`,{className:l.default.header,children:[(0,f.jsxs)(`div`,{className:l.default.headerLeft,children:[V&&(0,f.jsx)(`span`,{className:l.default.filename,children:V}),(0,f.jsxs)(`div`,{className:l.default.viewToggle,children:[(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.viewBtn,I===`split`&&l.default.active),onClick:()=>F(`split`),"aria-label":k(`code_diff_viewer.split_view`),"aria-pressed":I===`split`,children:(0,f.jsx)(c.Icon,{component:a.default,size:`sm`,"aria-hidden":`true`})}),(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.viewBtn,I===`unified`&&l.default.active),onClick:()=>F(`unified`),"aria-label":k(`code_diff_viewer.unified_view`),"aria-pressed":I===`unified`,children:(0,f.jsx)(c.Icon,{component:n.default,size:`sm`,"aria-hidden":`true`})})]})]}),(0,f.jsxs)(`div`,{className:l.default.headerActions,children:[(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.iconButton,A&&l.default.copied),onClick:H,"aria-label":k(A?`code_diff_viewer.copied_label`:`code_diff_viewer.copy_label`),children:(0,f.jsx)(c.Icon,{component:A?r.default:o.default,size:`sm`})}),C&&(0,f.jsxs)(`button`,{type:`button`,className:(0,d.default)(l.default.actionButton,l.default.rejectButton),onClick:C,children:[(0,f.jsx)(c.Icon,{component:i.default,size:`sm`,"aria-hidden":`true`}),k(`code_diff_viewer.reject`)]}),(S||E)&&(0,f.jsxs)(`button`,{type:`button`,className:(0,d.default)(l.default.actionButton,l.default.applyButton,T&&l.default.applying,E&&l.default.applied),onClick:S,disabled:T||E,children:[(0,f.jsx)(c.Icon,{component:T?s.default:r.default,size:`sm`,className:(0,d.default)(T&&l.default.spin),"aria-hidden":`true`}),k(E?`code_diff_viewer.applied`:`code_diff_viewer.apply`)]})]})]}),(0,f.jsx)(`div`,{className:l.default.body,tabIndex:0,children:I===`unified`?(0,f.jsx)(`div`,{className:l.default.unified,children:z.map((e,t)=>(0,f.jsx)(v,{line:e},t))}):(0,f.jsxs)(`div`,{className:l.default.split,children:[(0,f.jsx)(`div`,{className:l.default.splitPane,tabIndex:0,children:B.left.map((e,t)=>(0,f.jsx)(y,{line:e},t))}),(0,f.jsx)(`div`,{className:l.default.splitDivider,"aria-hidden":`true`}),(0,f.jsx)(`div`,{className:l.default.splitPane,tabIndex:0,children:B.right.map((e,t)=>(0,f.jsx)(y,{line:e},t))})]})})]})});b.displayName=`CodeDiffViewer`,exports.CodeDiffViewer=b;
4
+ `)}function g(e){let t=[],n=1,r=1;for(let i of e)for(let e of h(i.value))i.removed?t.push({type:`removed`,content:e,oldNum:n++}):i.added?t.push({type:`added`,content:e,newNum:r++}):t.push({type:`unchanged`,content:e,oldNum:n++,newNum:r++});return t}function _(e){let t=[],n=[],r=1,i=1,a=0;for(;a<e.length;){let o=e[a];if(!o.added&&!o.removed){for(let e of h(o.value))t.push({type:`unchanged`,content:e,num:r++}),n.push({type:`unchanged`,content:e,num:i++});a++}else if(o.removed){let s=h(o.value),c=e[a+1],l=c?.added?h(c.value):[];c?.added&&a++;let u=Math.max(s.length,l.length);for(let e=0;e<u;e++)t.push(e<s.length?{type:`removed`,content:s[e],num:r++}:{type:`empty`,content:``}),n.push(e<l.length?{type:`added`,content:l[e],num:i++}:{type:`empty`,content:``});a++}else{for(let e of h(o.value))t.push({type:`empty`,content:``}),n.push({type:`added`,content:e,num:i++});a++}}return{left:t,right:n}}function v({num:e}){return(0,p.jsx)(`span`,{className:u.default.lineNum,"aria-hidden":`true`,children:e??``})}function y({line:e}){let t=e.type===`added`?`+`:e.type===`removed`?`−`:` `;return(0,p.jsxs)(`div`,{className:(0,f.default)(u.default.row,u.default[e.type]),children:[(0,p.jsx)(v,{num:e.oldNum}),(0,p.jsx)(v,{num:e.newNum}),(0,p.jsx)(`span`,{className:u.default.prefix,"aria-hidden":`true`,children:t}),(0,p.jsx)(`span`,{className:u.default.lineContent,children:e.content})]})}function b({line:e}){return(0,p.jsxs)(`div`,{className:(0,f.default)(u.default.splitCell,u.default[e.type]),children:[(0,p.jsx)(v,{num:e.num}),e.type!==`empty`&&(0,p.jsx)(`span`,{className:u.default.prefix,"aria-hidden":`true`,children:e.type===`added`?`+`:e.type===`removed`?`−`:` `}),(0,p.jsx)(`span`,{className:u.default.lineContent,children:e.content})]})}var x=d.default.forwardRef(({before:e,after:h,language:v,filename:x,view:S=`split`,onApply:C,onReject:w,className:T,isApplying:E=!1,isApplied:D=!1,...O},k)=>{let{t:A}=t.useWimTranslation(l.formNs),[j,M]=d.default.useState(!1),[N,P]=d.default.useState(S),[F,I]=d.default.useState(null),L=F??N,R=(0,d.useRef)(null);(0,d.useImperativeHandle)(k,()=>R.current,[]),(0,d.useEffect)(()=>{let e=R.current;if(!e)return;let t=new ResizeObserver(([e])=>{let t=e.contentRect.width<640;P(e=>{let n=t?`unified`:`split`;return e!==n&&I(null),n})});return t.observe(e),()=>t.disconnect()},[]);let z=(0,d.useMemo)(()=>(0,m.diffLines)(e??``,h??``),[e,h]),B=(0,d.useMemo)(()=>g(z),[z]),V=(0,d.useMemo)(()=>_(z),[z]),H=x??v,U=(0,d.useCallback)(async()=>{try{await navigator.clipboard.writeText(h),M(!0),setTimeout(()=>M(!1),2e3)}catch{}},[h]);return(0,p.jsxs)(`div`,{ref:R,className:(0,f.default)(`wim-code-diff-viewer`,u.default.root,T),...O,children:[(0,p.jsxs)(`div`,{className:u.default.header,children:[(0,p.jsxs)(`div`,{className:u.default.headerLeft,children:[H&&(0,p.jsx)(`span`,{className:u.default.filename,children:H}),(0,p.jsxs)(`div`,{className:u.default.viewToggle,children:[(0,p.jsx)(`button`,{type:`button`,className:(0,f.default)(u.default.viewBtn,L===`split`&&u.default.active),onClick:()=>I(`split`),"aria-label":A(`code_diff_viewer.split_view`),"aria-pressed":L===`split`,children:(0,p.jsx)(c.Icon,{component:a.default,size:`sm`,"aria-hidden":`true`})}),(0,p.jsx)(`button`,{type:`button`,className:(0,f.default)(u.default.viewBtn,L===`unified`&&u.default.active),onClick:()=>I(`unified`),"aria-label":A(`code_diff_viewer.unified_view`),"aria-pressed":L===`unified`,children:(0,p.jsx)(c.Icon,{component:n.default,size:`sm`,"aria-hidden":`true`})})]})]}),(0,p.jsxs)(`div`,{className:u.default.headerActions,children:[(0,p.jsx)(`button`,{type:`button`,className:(0,f.default)(u.default.iconButton,j&&u.default.copied),onClick:U,"aria-label":A(j?`code_diff_viewer.copied_label`:`code_diff_viewer.copy_label`),children:(0,p.jsx)(c.Icon,{component:j?r.default:o.default,size:`sm`})}),w&&(0,p.jsxs)(`button`,{type:`button`,className:(0,f.default)(u.default.actionButton,u.default.rejectButton),onClick:w,children:[(0,p.jsx)(c.Icon,{component:i.default,size:`sm`,"aria-hidden":`true`}),A(`code_diff_viewer.reject`)]}),(C||D)&&(0,p.jsxs)(`button`,{type:`button`,className:(0,f.default)(u.default.actionButton,u.default.applyButton,E&&u.default.applying,D&&u.default.applied),onClick:C,disabled:E||D,children:[(0,p.jsx)(c.Icon,{component:E?s.default:r.default,size:`sm`,className:(0,f.default)(E&&u.default.spin),"aria-hidden":`true`}),A(D?`code_diff_viewer.applied`:`code_diff_viewer.apply`)]})]})]}),(0,p.jsx)(`div`,{className:u.default.body,tabIndex:0,children:L===`unified`?(0,p.jsx)(`div`,{className:u.default.unified,children:B.map((e,t)=>(0,p.jsx)(y,{line:e},t))}):(0,p.jsxs)(`div`,{className:u.default.split,children:[(0,p.jsx)(`div`,{className:u.default.splitPane,tabIndex:0,children:V.left.map((e,t)=>(0,p.jsx)(b,{line:e},t))}),(0,p.jsx)(`div`,{className:u.default.splitDivider,"aria-hidden":`true`}),(0,p.jsx)(`div`,{className:u.default.splitPane,tabIndex:0,children:V.right.map((e,t)=>(0,p.jsx)(b,{line:e},t))})]})})]})});x.displayName=`CodeDiffViewer`,exports.CodeDiffViewer=x;