wimui 0.51.1 → 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 (232) 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 +122 -120
  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 +64 -62
  31. package/dist/components/data-display/Accordion/accordion.module.cjs +1 -1
  32. package/dist/components/data-display/Accordion/accordion.module.js +1 -1
  33. package/dist/components/data-display/Barcode/Barcode.cjs +1 -1
  34. package/dist/components/data-display/Barcode/Barcode.js +76 -75
  35. package/dist/components/data-display/Calendar/Calendar.cjs +1 -1
  36. package/dist/components/data-display/Calendar/Calendar.js +75 -74
  37. package/dist/components/data-display/CalendarHeatmap/CalendarHeatmap.cjs +1 -1
  38. package/dist/components/data-display/CalendarHeatmap/CalendarHeatmap.js +54 -52
  39. package/dist/components/data-display/Carousel/Carousel.cjs +1 -1
  40. package/dist/components/data-display/Carousel/Carousel.js +24 -23
  41. package/dist/components/data-display/Chip/Chip.cjs +1 -1
  42. package/dist/components/data-display/Chip/Chip.js +36 -35
  43. package/dist/components/data-display/Comment/Comment.cjs +1 -1
  44. package/dist/components/data-display/Comment/Comment.js +58 -57
  45. package/dist/components/data-display/Countdown/Countdown.cjs +1 -1
  46. package/dist/components/data-display/Countdown/Countdown.js +56 -55
  47. package/dist/components/data-display/DataGrid/DataGrid.cjs +1 -1
  48. package/dist/components/data-display/DataGrid/DataGrid.js +128 -127
  49. package/dist/components/data-display/JsonViewer/JsonViewer.cjs +1 -1
  50. package/dist/components/data-display/JsonViewer/JsonViewer.js +153 -152
  51. package/dist/components/data-display/Kanban/Kanban.cjs +1 -1
  52. package/dist/components/data-display/Kanban/Kanban.js +95 -94
  53. package/dist/components/data-display/NodeGraph/NodeGraph.cjs +1 -1
  54. package/dist/components/data-display/NodeGraph/NodeGraph.js +67 -66
  55. package/dist/components/data-display/PivotTable/PivotTable.cjs +1 -1
  56. package/dist/components/data-display/PivotTable/PivotTable.js +153 -152
  57. package/dist/components/data-display/Presence/Presence.cjs +1 -1
  58. package/dist/components/data-display/Presence/Presence.js +28 -27
  59. package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
  60. package/dist/components/data-display/PullToRefresh/PullToRefresh.js +73 -72
  61. package/dist/components/data-display/Reaction/Reaction.cjs +1 -1
  62. package/dist/components/data-display/Reaction/Reaction.js +31 -30
  63. package/dist/components/data-display/ScheduleView/ScheduleView.cjs +1 -1
  64. package/dist/components/data-display/ScheduleView/ScheduleView.js +52 -50
  65. package/dist/components/data-display/SortableList/SortableList.cjs +1 -1
  66. package/dist/components/data-display/SortableList/SortableList.js +44 -43
  67. package/dist/components/data-display/Tag/Tag.cjs +1 -1
  68. package/dist/components/data-display/Tag/Tag.js +29 -28
  69. package/dist/components/data-display/TreeDiagram/TreeDiagram.cjs +1 -1
  70. package/dist/components/data-display/TreeDiagram/TreeDiagram.js +85 -84
  71. package/dist/components/data-display/TreeView/TreeView.cjs +1 -1
  72. package/dist/components/data-display/TreeView/TreeView.js +123 -122
  73. package/dist/components/feedback/Autosave/Autosave.cjs +1 -1
  74. package/dist/components/feedback/Autosave/Autosave.js +32 -31
  75. package/dist/components/feedback/ErrorBoundary/ErrorBoundary.cjs +1 -1
  76. package/dist/components/feedback/ErrorBoundary/ErrorBoundary.js +35 -34
  77. package/dist/components/feedback/ScrollProgress/ScrollProgress.cjs +1 -1
  78. package/dist/components/feedback/ScrollProgress/ScrollProgress.js +21 -20
  79. package/dist/components/feedback/Tour/Tour.cjs +1 -1
  80. package/dist/components/feedback/Tour/Tour.js +127 -101
  81. package/dist/components/form/Button/Button.cjs +1 -1
  82. package/dist/components/form/Button/Button.js +55 -54
  83. package/dist/components/form/ColorInput/ColorInput.cjs +1 -1
  84. package/dist/components/form/ColorInput/ColorInput.js +30 -29
  85. package/dist/components/form/ColorPicker/color-picker.module.cjs +1 -1
  86. package/dist/components/form/ColorPicker/color-picker.module.js +1 -1
  87. package/dist/components/form/CopyButton/CopyButton.cjs +1 -1
  88. package/dist/components/form/CopyButton/CopyButton.js +27 -26
  89. package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
  90. package/dist/components/form/DatePicker/DatePicker.js +47 -46
  91. package/dist/components/form/DateRangePicker/DateRangePicker.cjs +1 -1
  92. package/dist/components/form/DateRangePicker/DateRangePicker.js +36 -35
  93. package/dist/components/form/Dropzone/Dropzone.cjs +1 -1
  94. package/dist/components/form/Dropzone/Dropzone.js +56 -55
  95. package/dist/components/form/FileUpload/FileUpload.cjs +1 -1
  96. package/dist/components/form/FileUpload/FileUpload.js +47 -46
  97. package/dist/components/form/FloatButton/FloatButton.cjs +1 -1
  98. package/dist/components/form/FloatButton/FloatButton.d.ts +4 -1
  99. package/dist/components/form/FloatButton/FloatButton.js +6 -6
  100. package/dist/components/form/ImageCropper/ImageCropper.cjs +1 -1
  101. package/dist/components/form/ImageCropper/ImageCropper.js +101 -99
  102. package/dist/components/form/InlineEdit/InlineEdit.cjs +1 -1
  103. package/dist/components/form/InlineEdit/InlineEdit.js +66 -65
  104. package/dist/components/form/Input/Input.cjs +1 -1
  105. package/dist/components/form/Input/Input.js +45 -44
  106. package/dist/components/form/InputBase/InputBase.cjs +1 -1
  107. package/dist/components/form/InputBase/InputBase.js +51 -50
  108. package/dist/components/form/InputBase/input-base.module.cjs +1 -1
  109. package/dist/components/form/InputBase/input-base.module.js +1 -1
  110. package/dist/components/form/MultiSelect/multiselect.module.cjs +1 -1
  111. package/dist/components/form/MultiSelect/multiselect.module.js +1 -1
  112. package/dist/components/form/OtpInput/otp-input.module.cjs +1 -1
  113. package/dist/components/form/OtpInput/otp-input.module.js +1 -1
  114. package/dist/components/form/PasswordStrength/PasswordStrength.cjs +1 -1
  115. package/dist/components/form/PasswordStrength/PasswordStrength.js +27 -26
  116. package/dist/components/form/PhoneInput/PhoneInput.cjs +1 -1
  117. package/dist/components/form/PhoneInput/PhoneInput.js +10 -10
  118. package/dist/components/form/QueryBuilder/QueryBuilder.cjs +1 -1
  119. package/dist/components/form/QueryBuilder/QueryBuilder.js +90 -89
  120. package/dist/components/form/RangeSlider/RangeSlider.cjs +1 -1
  121. package/dist/components/form/RangeSlider/RangeSlider.js +121 -119
  122. package/dist/components/form/RangeSlider/range-slider.module.cjs +1 -1
  123. package/dist/components/form/RangeSlider/range-slider.module.js +1 -1
  124. package/dist/components/form/RichTextEditor/RichTextEditor.cjs +1 -1
  125. package/dist/components/form/RichTextEditor/RichTextEditor.js +223 -222
  126. package/dist/components/form/SegmentedControl/SegmentedControl.cjs +1 -1
  127. package/dist/components/form/SegmentedControl/SegmentedControl.js +7 -7
  128. package/dist/components/form/Select/Select.cjs +1 -1
  129. package/dist/components/form/Select/Select.js +112 -111
  130. package/dist/components/form/SignaturePad/SignaturePad.cjs +1 -1
  131. package/dist/components/form/SignaturePad/SignaturePad.js +86 -79
  132. package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
  133. package/dist/components/form/SmartSearchInput/SmartSearchInput.js +63 -62
  134. package/dist/components/form/TagInput/TagInput.cjs +1 -1
  135. package/dist/components/form/TagInput/TagInput.js +68 -67
  136. package/dist/components/form/ThemeToggle/ThemeToggle.cjs +1 -1
  137. package/dist/components/form/ThemeToggle/ThemeToggle.js +69 -67
  138. package/dist/components/form/ThemeToggle/theme-toggle.module.cjs +1 -1
  139. package/dist/components/form/ThemeToggle/theme-toggle.module.js +1 -1
  140. package/dist/components/form/ToggleGroup/ToggleGroup.cjs +1 -1
  141. package/dist/components/form/ToggleGroup/ToggleGroup.js +6 -6
  142. package/dist/components/form/Transfer/Transfer.cjs +1 -1
  143. package/dist/components/form/Transfer/Transfer.d.ts +1 -1
  144. package/dist/components/form/Transfer/Transfer.js +155 -154
  145. package/dist/components/form/Transfer/transfer.module.cjs +1 -1
  146. package/dist/components/form/Transfer/transfer.module.js +6 -6
  147. package/dist/components/form/TreeSelect/TreeSelect.cjs +1 -1
  148. package/dist/components/form/TreeSelect/TreeSelect.js +6 -6
  149. package/dist/components/layout/Dashboard/Dashboard.cjs +1 -1
  150. package/dist/components/layout/Dashboard/Dashboard.js +90 -89
  151. package/dist/components/layout/Navbar/Navbar.cjs +1 -1
  152. package/dist/components/layout/Navbar/Navbar.d.ts +1 -1
  153. package/dist/components/layout/Navbar/Navbar.js +1 -1
  154. package/dist/components/layout/Sidebar/Sidebar.d.ts +1 -1
  155. package/dist/components/layout/Splitter/Splitter.cjs +1 -1
  156. package/dist/components/layout/Splitter/Splitter.js +40 -39
  157. package/dist/components/layout/Toolbar/Toolbar.cjs +1 -1
  158. package/dist/components/layout/Toolbar/Toolbar.js +66 -39
  159. package/dist/components/media/Audio/Audio.cjs +1 -1
  160. package/dist/components/media/Audio/Audio.js +91 -90
  161. package/dist/components/media/Audio/components/AudioCustomControls.cjs +1 -1
  162. package/dist/components/media/Audio/components/AudioCustomControls.js +116 -114
  163. package/dist/components/media/Gallery/Gallery.cjs +1 -1
  164. package/dist/components/media/Gallery/Gallery.js +132 -131
  165. package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
  166. package/dist/components/media/ImageCompare/ImageCompare.js +75 -73
  167. package/dist/components/media/Lightbox/Lightbox.cjs +1 -1
  168. package/dist/components/media/Lightbox/Lightbox.js +128 -127
  169. package/dist/components/media/Video/Video.cjs +1 -1
  170. package/dist/components/media/Video/Video.js +73 -71
  171. package/dist/components/media/Video/components/VideoAdvancedMenu.cjs +1 -1
  172. package/dist/components/media/Video/components/VideoAdvancedMenu.js +140 -138
  173. package/dist/components/media/Video/components/VideoControls.cjs +1 -1
  174. package/dist/components/media/Video/components/VideoControls.js +103 -102
  175. package/dist/components/navigation/BackTop/BackTop.cjs +1 -1
  176. package/dist/components/navigation/BackTop/BackTop.js +37 -36
  177. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +1 -1
  178. package/dist/components/navigation/Breadcrumb/Breadcrumb.js +41 -40
  179. package/dist/components/navigation/CommandPalette/CommandPalette.cjs +1 -1
  180. package/dist/components/navigation/CommandPalette/CommandPalette.js +100 -99
  181. package/dist/components/navigation/HamburgerMenu/HamburgerMenu.cjs +1 -1
  182. package/dist/components/navigation/HamburgerMenu/HamburgerMenu.d.ts +6 -0
  183. package/dist/components/navigation/HamburgerMenu/HamburgerMenu.js +32 -22
  184. package/dist/components/navigation/Pagination/Pagination.cjs +1 -1
  185. package/dist/components/navigation/Pagination/Pagination.js +39 -38
  186. package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
  187. package/dist/components/navigation/SpeedDial/SpeedDial.js +44 -43
  188. package/dist/components/navigation/Tabs/tabs.module.cjs +1 -1
  189. package/dist/components/navigation/Tabs/tabs.module.js +1 -1
  190. package/dist/components/overlay/ContextMenu/ContextMenu.cjs +1 -1
  191. package/dist/components/overlay/ContextMenu/ContextMenu.js +4 -4
  192. package/dist/components/overlay/Popover/Popover.cjs +1 -1
  193. package/dist/components/overlay/Popover/Popover.js +63 -62
  194. package/dist/components/typography/Spoiler/Spoiler.cjs +1 -1
  195. package/dist/components/typography/Spoiler/Spoiler.js +38 -37
  196. package/dist/i18n/generated/common.cjs +2 -0
  197. package/dist/i18n/generated/common.d.ts +3 -0
  198. package/dist/i18n/generated/common.js +570 -0
  199. package/dist/i18n/generated/components.cjs +2 -0
  200. package/dist/i18n/generated/components.d.ts +3 -0
  201. package/dist/i18n/generated/components.js +399 -0
  202. package/dist/i18n/generated/data-display.cjs +2 -0
  203. package/dist/i18n/generated/data-display.d.ts +3 -0
  204. package/dist/i18n/generated/data-display.js +12 -0
  205. package/dist/i18n/generated/form.cjs +2 -0
  206. package/dist/i18n/generated/form.d.ts +3 -0
  207. package/dist/i18n/generated/form.js +321 -0
  208. package/dist/i18n/generated/keys.d.ts +5 -1
  209. package/dist/i18n/generated/locales.cjs +2 -0
  210. package/dist/i18n/generated/locales.d.ts +1 -0
  211. package/dist/i18n/generated/locales.js +9 -0
  212. package/dist/i18n/instance.cjs +1 -1
  213. package/dist/i18n/instance.d.ts +18 -3
  214. package/dist/i18n/instance.js +24 -26
  215. package/dist/i18n/useWimTranslation.cjs +1 -1
  216. package/dist/i18n/useWimTranslation.d.ts +7 -8
  217. package/dist/i18n/useWimTranslation.js +6 -5
  218. package/dist/llms-full.txt +10 -6
  219. package/dist/llms.txt +1 -1
  220. package/dist/locales/en/common.json +53 -4
  221. package/dist/locales/en/components.json +3 -1
  222. package/dist/locales/ja/common.json +53 -4
  223. package/dist/locales/ja/components.json +3 -1
  224. package/dist/locales/pt/common.json +53 -4
  225. package/dist/locales/pt/components.json +3 -1
  226. package/dist/styles.css +2 -2
  227. package/dist/wimui.umd.css +1 -1
  228. package/dist/wimui.umd.js +5 -5
  229. package/package.json +10 -10
  230. package/dist/i18n/generated/resources.cjs +0 -2
  231. package/dist/i18n/generated/resources.d.ts +0 -4
  232. package/dist/i18n/generated/resources.js +0 -1103
@@ -1,156 +1,158 @@
1
1
  "use client";
2
2
  import { Root as e, Slottable as t } from "../../../node_modules/@radix-ui/react-slot/dist/index.js";
3
- import { FieldTemplate as n } from "../FieldTemplate/FieldTemplate.js";
4
- import { useSliderCommon as r } from "../../../utilities/slider-utils.js";
5
- import i from "./range-slider.module.js";
6
- import { useCallback as a, useEffect as o, useId as ee, useRef as s, useState as c } from "react";
7
- import l from "classnames";
8
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
3
+ import { useWimTranslation as n } from "../../../i18n/useWimTranslation.js";
4
+ import { commonNs as r } from "../../../i18n/generated/common.js";
5
+ import { FieldTemplate as i } from "../FieldTemplate/FieldTemplate.js";
6
+ import { useSliderCommon as a } from "../../../utilities/slider-utils.js";
7
+ import o from "./range-slider.module.js";
8
+ import { useCallback as s, useEffect as ee, useId as te, useRef as c, useState as l } from "react";
9
+ import u from "classnames";
10
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
9
11
  //#region src/components/form/RangeSlider/RangeSlider.tsx
10
- var f = ({ value: f, defaultValue: p = [20, 80], min: m = 0, max: h = 100, step: g = 1, allowCross: _ = !1, disabled: v = !1, onChange: y, onAfterChange: b, className: te, name: x, label: S, error: C, required: ne, layout: re = "vertical", id: ie, "aria-label": w, "aria-labelledby": T, asChild: ae = !1, children: oe, ...se }) => {
11
- let E = f !== void 0, ce = ee(), D = ie || ce, O = `wim-range-slider-label-${D}`, k = `wim-range-slider-error-${D}`, { clamp: A, calculateValue: j } = r(m, h, g), M = [A(p[0], m, h), A(p[1], m, h)];
12
- M[0] > M[1] && M.sort((e, t) => e - t);
13
- let [le, N] = c(M), P = E ? f : le, F = s(null), I = s(null), L = s(null), R = s(null), z = s(null), B = s(null), [V, H] = c(null), U = s(null), W = s([...P]), G = a((e) => (e - m) / (h - m) * 100, [m, h]), K = a((e) => {
14
- let t = G(e[0]), n = G(e[1]);
15
- I.current && (I.current.style.left = `${t}%`, I.current.setAttribute("aria-valuenow", String(e[0])), I.current.setAttribute("aria-valuemax", String(e[1]))), L.current && (L.current.style.left = `${n}%`, L.current.setAttribute("aria-valuenow", String(e[1])), L.current.setAttribute("aria-valuemin", String(e[0]))), R.current && (R.current.style.left = `${t}%`, R.current.style.width = `${n - t}%`), z.current && (z.current.value = String(e[0])), B.current && (B.current.value = String(e[1]));
16
- }, [G]);
17
- o(() => {
18
- V || K(P);
12
+ var p = ({ value: p, defaultValue: m = [20, 80], min: h = 0, max: g = 100, step: _ = 1, allowCross: v = !1, disabled: y = !1, onChange: b, onAfterChange: x, className: ne, name: S, label: C, error: w, required: re, layout: ie = "vertical", id: ae, "aria-label": T, "aria-labelledby": E, asChild: oe = !1, children: se, ...ce }) => {
13
+ let { t: D } = n(r), O = p !== void 0, le = te(), k = ae || le, A = `wim-range-slider-label-${k}`, j = `wim-range-slider-error-${k}`, { clamp: M, calculateValue: N } = a(h, g, _), P = [M(m[0], h, g), M(m[1], h, g)];
14
+ P[0] > P[1] && P.sort((e, t) => e - t);
15
+ let [ue, F] = l(P), I = O ? p : ue, L = c(null), R = c(null), z = c(null), B = c(null), V = c(null), H = c(null), [U, W] = l(null), G = c(null), K = c([...I]), q = s((e) => (e - h) / (g - h) * 100, [h, g]), J = s((e) => {
16
+ let t = q(e[0]), n = q(e[1]);
17
+ R.current && (R.current.style.left = `${t}%`, R.current.setAttribute("aria-valuenow", String(e[0])), R.current.setAttribute("aria-valuemax", String(e[1]))), z.current && (z.current.style.left = `${n}%`, z.current.setAttribute("aria-valuenow", String(e[1])), z.current.setAttribute("aria-valuemin", String(e[0]))), B.current && (B.current.style.left = `${t}%`, B.current.style.width = `${n - t}%`), V.current && (V.current.value = String(e[0])), H.current && (H.current.value = String(e[1]));
18
+ }, [q]);
19
+ ee(() => {
20
+ U || J(I);
19
21
  }, [
20
- P,
21
- V,
22
- K
22
+ I,
23
+ U,
24
+ J
23
25
  ]);
24
- let q = (e, t) => {
25
- v || (W.current = [...P], U.current = t, H(t), e.stopPropagation(), e.preventDefault());
26
- }, J = (e) => {
27
- if (v) return;
28
- let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = j(t, F.current), r = Math.abs(P[0] - n), i = Math.abs(P[1] - n), a;
29
- a = r < i ? "min" : i < r ? "max" : n < P[0] ? "min" : "max", U.current = a, H(a);
30
- let o = [...W.current];
31
- a === "min" ? o[0] = Math.min(n, _ ? h : o[1]) : o[1] = Math.max(n, _ ? m : o[0]), W.current = o, K(o), y?.(o);
32
- }, Y = a((e) => {
33
- if (!U.current || v) return;
34
- let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = j(t, F.current), r = [...W.current];
35
- U.current === "min" ? r[0] = Math.min(n, _ ? h : r[1]) : r[1] = Math.max(n, _ ? m : r[0]), W.current = r, K(r), y?.(r);
26
+ let Y = (e, t) => {
27
+ y || (K.current = [...I], G.current = t, W(t), e.stopPropagation(), e.preventDefault());
28
+ }, X = (e) => {
29
+ if (y) return;
30
+ let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = N(t, L.current), r = Math.abs(I[0] - n), i = Math.abs(I[1] - n), a;
31
+ a = r < i ? "min" : i < r ? "max" : n < I[0] ? "min" : "max", G.current = a, W(a);
32
+ let o = [...K.current];
33
+ a === "min" ? o[0] = Math.min(n, v ? g : o[1]) : o[1] = Math.max(n, v ? h : o[0]), K.current = o, J(o), b?.(o);
34
+ }, Z = s((e) => {
35
+ if (!G.current || y) return;
36
+ let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = N(t, L.current), r = [...K.current];
37
+ G.current === "min" ? r[0] = Math.min(n, v ? g : r[1]) : r[1] = Math.max(n, v ? h : r[0]), K.current = r, J(r), b?.(r);
36
38
  }, [
37
- v,
38
39
  y,
39
- _,
40
- j,
41
- m,
40
+ b,
41
+ v,
42
+ N,
42
43
  h,
43
- K
44
- ]), X = a(() => {
45
- if (U.current) {
46
- U.current = null, H(null);
47
- let e = W.current;
48
- E || N([...e]), b?.(e);
44
+ g,
45
+ J
46
+ ]), Q = s(() => {
47
+ if (G.current) {
48
+ G.current = null, W(null);
49
+ let e = K.current;
50
+ O || F([...e]), x?.(e);
49
51
  }
50
- }, [E, b]);
51
- o(() => (document.addEventListener("mousemove", Y), document.addEventListener("mouseup", X), document.addEventListener("touchmove", Y, { passive: !1 }), document.addEventListener("touchend", X), () => {
52
- document.removeEventListener("mousemove", Y), document.removeEventListener("mouseup", X), document.removeEventListener("touchmove", Y), document.removeEventListener("touchend", X);
53
- }), [Y, X]);
54
- let Z = (e, t) => {
55
- if (v) return;
56
- let n = [...P], r = t === "min" ? n[0] : n[1], i;
57
- if (e.key === "ArrowLeft" || e.key === "ArrowDown") i = Math.max(m, r - g);
58
- else if (e.key === "ArrowRight" || e.key === "ArrowUp") i = Math.min(h, r + g);
59
- else if (e.key === "Home") i = m;
60
- else if (e.key === "End") i = h;
52
+ }, [O, x]);
53
+ ee(() => (document.addEventListener("mousemove", Z), document.addEventListener("mouseup", Q), document.addEventListener("touchmove", Z, { passive: !1 }), document.addEventListener("touchend", Q), () => {
54
+ document.removeEventListener("mousemove", Z), document.removeEventListener("mouseup", Q), document.removeEventListener("touchmove", Z), document.removeEventListener("touchend", Q);
55
+ }), [Z, Q]);
56
+ let de = (e, t) => {
57
+ if (y) return;
58
+ let n = [...I], r = t === "min" ? n[0] : n[1], i;
59
+ if (e.key === "ArrowLeft" || e.key === "ArrowDown") i = Math.max(h, r - _);
60
+ else if (e.key === "ArrowRight" || e.key === "ArrowUp") i = Math.min(g, r + _);
61
+ else if (e.key === "Home") i = h;
62
+ else if (e.key === "End") i = g;
61
63
  else return;
62
64
  if (t === "min") {
63
- let e = _ ? h : n[1];
65
+ let e = v ? g : n[1];
64
66
  n[0] = Math.min(i, e);
65
67
  } else {
66
- let e = _ ? m : n[0];
68
+ let e = v ? h : n[0];
67
69
  n[1] = Math.max(i, e);
68
70
  }
69
- E || N(n), y?.(n), e.preventDefault();
70
- }, Q = G(P[0]), $ = G(P[1]);
71
- return /* @__PURE__ */ u(n, {
72
- label: S,
73
- error: C,
74
- required: ne,
75
- layout: re,
76
- labelId: O,
77
- errorId: k,
78
- className: te,
79
- children: /* @__PURE__ */ d(ae ? e : "div", {
71
+ O || F(n), b?.(n), e.preventDefault();
72
+ }, $ = q(I[0]), fe = q(I[1]);
73
+ return /* @__PURE__ */ d(i, {
74
+ label: C,
75
+ error: w,
76
+ required: re,
77
+ layout: ie,
78
+ labelId: A,
79
+ errorId: j,
80
+ className: ne,
81
+ children: /* @__PURE__ */ f(oe ? e : "div", {
80
82
  role: "presentation",
81
83
  "data-testid": "range-slider-root",
82
- className: l("wim-range-slider", i.root, v && i.disabled, C && i.danger),
83
- onMouseDown: J,
84
- onTouchStart: J,
85
- ...se,
84
+ className: u("wim-range-slider", o.root, y && o.disabled, w && o.danger),
85
+ onMouseDown: X,
86
+ onTouchStart: X,
87
+ ...ce,
86
88
  children: [
87
- /* @__PURE__ */ d("div", {
88
- className: i.trackContainer,
89
- ref: F,
89
+ /* @__PURE__ */ f("div", {
90
+ className: o.trackContainer,
91
+ ref: L,
90
92
  children: [
91
- /* @__PURE__ */ u("div", {
92
- ref: R,
93
- className: i.track,
93
+ /* @__PURE__ */ d("div", {
94
+ ref: B,
95
+ className: o.track,
94
96
  style: {
95
- left: `${Q}%`,
96
- width: `${$ - Q}%`
97
+ left: `${$}%`,
98
+ width: `${fe - $}%`
97
99
  }
98
100
  }),
99
- /* @__PURE__ */ u("div", {
100
- ref: I,
101
- className: l(i.thumb, V === "min" && i.active),
102
- style: { left: `${Q}%` },
101
+ /* @__PURE__ */ d("div", {
102
+ ref: R,
103
+ className: u(o.thumb, U === "min" && o.active),
104
+ style: { left: `${$}%` },
103
105
  role: "slider",
104
- "aria-valuemin": m,
105
- "aria-valuemax": P[1],
106
- "aria-valuenow": P[0],
107
- "aria-disabled": v,
108
- "aria-labelledby": S ? O : T,
109
- "aria-label": S ? `Start ${S}` : w || "Start",
110
- "aria-describedby": C ? k : void 0,
111
- "aria-invalid": C ? !0 : void 0,
112
- tabIndex: v ? -1 : 0,
113
- onMouseDown: (e) => q(e, "min"),
114
- onTouchStart: (e) => q(e, "min"),
115
- onKeyDown: (e) => Z(e, "min")
106
+ "aria-valuemin": h,
107
+ "aria-valuemax": I[1],
108
+ "aria-valuenow": I[0],
109
+ "aria-disabled": y,
110
+ "aria-labelledby": C ? A : E,
111
+ "aria-label": C ? D("rangeSlider.start_of", { label: C }) : T || D("rangeSlider.start"),
112
+ "aria-describedby": w ? j : void 0,
113
+ "aria-invalid": w ? !0 : void 0,
114
+ tabIndex: y ? -1 : 0,
115
+ onMouseDown: (e) => Y(e, "min"),
116
+ onTouchStart: (e) => Y(e, "min"),
117
+ onKeyDown: (e) => de(e, "min")
116
118
  }),
117
- /* @__PURE__ */ u("div", {
118
- ref: L,
119
- className: l(i.thumb, V === "max" && i.active),
120
- style: { left: `${$}%` },
119
+ /* @__PURE__ */ d("div", {
120
+ ref: z,
121
+ className: u(o.thumb, U === "max" && o.active),
122
+ style: { left: `${fe}%` },
121
123
  role: "slider",
122
- "aria-valuemin": P[0],
123
- "aria-valuemax": h,
124
- "aria-valuenow": P[1],
125
- "aria-disabled": v,
126
- "aria-labelledby": S ? O : T,
127
- "aria-label": S ? `End ${S}` : w || "End",
128
- "aria-describedby": C ? k : void 0,
129
- "aria-invalid": C ? !0 : void 0,
130
- tabIndex: v ? -1 : 0,
131
- onMouseDown: (e) => q(e, "max"),
132
- onTouchStart: (e) => q(e, "max"),
133
- onKeyDown: (e) => Z(e, "max")
124
+ "aria-valuemin": I[0],
125
+ "aria-valuemax": g,
126
+ "aria-valuenow": I[1],
127
+ "aria-disabled": y,
128
+ "aria-labelledby": C ? A : E,
129
+ "aria-label": C ? D("rangeSlider.end_of", { label: C }) : T || D("rangeSlider.end"),
130
+ "aria-describedby": w ? j : void 0,
131
+ "aria-invalid": w ? !0 : void 0,
132
+ tabIndex: y ? -1 : 0,
133
+ onMouseDown: (e) => Y(e, "max"),
134
+ onTouchStart: (e) => Y(e, "max"),
135
+ onKeyDown: (e) => de(e, "max")
134
136
  })
135
137
  ]
136
138
  }),
137
- /* @__PURE__ */ u("input", {
138
- ref: z,
139
+ /* @__PURE__ */ d("input", {
140
+ ref: V,
139
141
  type: "hidden",
140
- name: x ? `${x}-min` : "",
141
- value: P[0]
142
+ name: S ? `${S}-min` : "",
143
+ value: I[0]
142
144
  }),
143
- /* @__PURE__ */ u("input", {
144
- ref: B,
145
+ /* @__PURE__ */ d("input", {
146
+ ref: H,
145
147
  type: "hidden",
146
- name: x ? `${x}-max` : "",
147
- value: P[1]
148
+ name: S ? `${S}-max` : "",
149
+ value: I[1]
148
150
  }),
149
- /* @__PURE__ */ u(t, { children: oe })
151
+ /* @__PURE__ */ d(t, { children: se })
150
152
  ]
151
153
  })
152
154
  });
153
155
  };
154
- f.displayName = "RangeSlider";
156
+ p.displayName = "RangeSlider";
155
157
  //#endregion
156
- export { f as RangeSlider };
158
+ export { p as RangeSlider };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_1243s_23`,t=`_disabled_1243s_32`,n=`_thumb_1243s_36`,r=`_danger_1243s_39`,i=`_track_1243s_39`,a=`_trackContainer_1243s_51`,o=`_active_1243s_83`,s={root:e,disabled:t,thumb:n,danger:r,track:i,trackContainer:a,active:o};exports.active=o,exports.danger=r,exports.default=s,exports.disabled=t,exports.root=e,exports.thumb=n,exports.track=i,exports.trackContainer=a;
2
+ var e=`_root_1brr1_23`,t=`_disabled_1brr1_32`,n=`_thumb_1brr1_36`,r=`_danger_1brr1_39`,i=`_track_1brr1_39`,a=`_trackContainer_1brr1_51`,o=`_active_1brr1_83`,s={root:e,disabled:t,thumb:n,danger:r,track:i,trackContainer:a,active:o};exports.active=o,exports.danger=r,exports.default=s,exports.disabled=t,exports.root=e,exports.thumb=n,exports.track=i,exports.trackContainer=a;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/form/RangeSlider/range-slider.module.scss
3
- var e = "_root_1243s_23", t = "_disabled_1243s_32", n = "_thumb_1243s_36", r = "_danger_1243s_39", i = "_track_1243s_39", a = "_trackContainer_1243s_51", o = "_active_1243s_83", s = {
3
+ var e = "_root_1brr1_23", t = "_disabled_1brr1_32", n = "_thumb_1brr1_36", r = "_danger_1brr1_39", i = "_track_1brr1_39", a = "_trackContainer_1brr1_51", o = "_active_1brr1_83", s = {
4
4
  root: e,
5
5
  disabled: t,
6
6
  thumb: n,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/bold.cjs"),r=require("../../../icon/eraser.cjs"),i=require("../../../icon/image.cjs"),a=require("../../../icon/italic.cjs"),o=require("../../../icon/link.cjs"),ee=require("../../../icon/list-ordered.cjs"),te=require("../../../icon/list.cjs"),ne=require("../../../icon/strikethrough.cjs"),re=require("../../../icon/underline.cjs"),ie=require("../../../icon/unlink.cjs"),s=require("../../media/Icon/Icon.cjs"),c=require("../Button/Button.cjs"),ae=require("../FieldTemplate/FieldTemplate.cjs"),l=require("../Input/Input.cjs"),u=require("../../overlay/Dialog/Dialog.cjs"),d=require("./safeUrl.cjs"),f=require("./markdown.cjs"),p=require("./rich-text-editor.module.cjs");let m=require("react");m=e.__toESM(m,1);let h=require("classnames");h=e.__toESM(h,1);let g=require("react/jsx-runtime"),_=require("@tiptap/react"),oe=require("@tiptap/core"),v=require("@tiptap/starter-kit"),y=require("@tiptap/extensions"),se=require("@tiptap/extension-image");var ce=[`bold`,`italic`,`underline`,`strikethrough`,`separator`,`h1`,`h2`,`h3`,`separator`,`ul`,`ol`,`separator`,`link`,`unlink`,`separator`,`removeFormat`],le=se.Image.extend({parseHTML(){return[{tag:`img[src]`,getAttrs:e=>d.isSafeImageUrl(e.getAttribute(`src`))?null:!1}]}}),ue=(e,t,n)=>[v.StarterKit.configure({heading:{levels:[1,2,3]},blockquote:!1,code:!1,codeBlock:!1,horizontalRule:!1,trailingNode:!1,...t===`markdown`?{underline:!1}:{},link:{openOnClick:!1,autolink:!1,linkOnPaste:!1,isAllowedUri:e=>d.isSafeLinkUrl(e),HTMLAttributes:{target:null,rel:null}}}),le.configure({inline:!1,allowBase64:!1}),y.Placeholder.configure({placeholder:e}),...t===`markdown`?f.createMarkdownExtensions(n):[]],de=(e,t)=>e.isEmpty?``:t===`markdown`?e.getMarkdown():e.getHTML(),fe=(e,t,n)=>n===`markdown`?f.markdownToHtml(e,t):t,pe=m.default.memo(({onClick:e,active:t,disabled:n,title:r,tabIndex:i,onFocus:a,buttonRef:o,children:ee})=>(0,g.jsx)(`button`,{ref:o,type:`button`,className:(0,h.default)(p.default.toolbarBtn,t&&p.default.active),onClick:e,onFocus:a,disabled:n,title:r,"aria-label":r,"aria-pressed":t,tabIndex:i,children:ee}));pe.displayName=`ToolbarButton`;var me=({value:e,defaultValue:f=``,onChange:v,placeholder:y,disabled:se,intent:le=`default`,variant:me=`outline`,fullWidth:b=!1,width:x,minHeight:S=200,label:C,error:w,required:T,layout:he,className:ge,id:_e,toolbar:E=ce,labels:ve={},"aria-label":ye,"aria-labelledby":D,onImageUpload:O,format:be=`html`})=>{let{t:k}=t.useWimTranslation(`components`),{bold:xe=k(`a11y.rte_bold`),italic:Se=k(`a11y.rte_italic`),underline:Ce=k(`a11y.rte_underline`),strikethrough:we=k(`a11y.rte_strikethrough`),h1:Te=k(`a11y.rte_h1`),h2:Ee=k(`a11y.rte_h2`),h3:De=k(`a11y.rte_h3`),ul:Oe=k(`a11y.rte_ul`),ol:ke=k(`a11y.rte_ol`),link:Ae=k(`a11y.rte_link`),unlink:je=k(`a11y.rte_unlink`),removeFormat:Me=k(`a11y.rte_remove_format`),toolbar:Ne=k(`a11y.rte_toolbar`),linkPrompt:Pe=k(`a11y.rte_link_prompt`),linkApply:Fe=k(`a11y.rte_link_apply`),linkCancel:Ie=k(`a11y.rte_link_cancel`),linkInvalid:Le=k(`a11y.rte_link_invalid`),image:Re=k(`a11y.rte_image`),imageUrl:ze=k(`a11y.rte_image_url`),imageAlt:Be=k(`a11y.rte_image_alt`),imageAltHint:Ve=k(`a11y.rte_image_alt_hint`),imageUpload:He=k(`a11y.rte_image_upload`),imageUploadFailed:A=k(`a11y.rte_image_upload_failed`),imageInvalid:Ue=k(`a11y.rte_image_invalid`)}=ve,We=m.default.useId(),j=_e||`wim-rte-${We}`,M=w?`${j}-error`:void 0,N=C?`${j}-label`:void 0,P=!!se,F=w?`danger`:le,Ge=typeof x==`string`&&[`xs`,`sm`,`md`,`lg`,`xl`].includes(x),Ke=x!==void 0&&!Ge&&!b,qe=Ge&&!b?x:void 0,Je=qe?p.default[`width${qe.charAt(0).toUpperCase()}${qe.slice(1)}`]:void 0,I=m.default.useRef(e??f),Ye=m.default.useRef(v);m.default.useEffect(()=>{Ye.current=v},[v]);let Xe=m.default.useMemo(()=>{let e={id:j,class:p.default.content,role:`textbox`,"aria-multiline":`true`,style:`min-height: ${typeof S==`number`?`${S}px`:S}`,tabindex:P?`-1`:`0`},t=ye??(C||D?void 0:k(`a11y.rte_editor`)),n=D??(C?N:void 0);return t&&(e[`aria-label`]=t),n&&(e[`aria-labelledby`]=n),F===`danger`&&(e[`aria-invalid`]=`true`),M&&(e[`aria-describedby`]=M),T&&(e[`aria-required`]=`true`),P&&(e[`aria-disabled`]=`true`),y&&(e[`aria-placeholder`]=y),e},[j,S,P,ye,C,D,N,F,M,T,y,k]),L=m.default.useRef(O);m.default.useEffect(()=>{L.current=O},[O]);let[Ze,Qe]=m.default.useState(void 0),$e=m.default.useRef(A);m.default.useEffect(()=>{$e.current=A},[A]);let R=m.default.useCallback(async(e,t,n)=>{let r=L.current;if(r){Qe(void 0);for(let i of t)try{let t=await r(i);if(!d.isSafeImageUrl(t))throw Error(`URL not allowed`);if(e.isDestroyed)return;let a=e.chain().focus();(n===void 0?a:a.setTextSelection(n)).setImage({src:t,alt:``}).run()}catch{Qe($e.current)}}},[]),et=e=>Array.from(e??[]).filter(e=>e.type.startsWith(`image/`)),z=m.default.useRef({ed:null}),tt=m.default.useCallback((e,t)=>{let n=et(t.clipboardData?.files),r=z.current.ed;return!L.current||n.length===0||!r?!1:(t.preventDefault(),R(r,n),!0)},[R]),nt=m.default.useCallback((e,t,n,r)=>{let i=et(t.dataTransfer?.files),a=z.current.ed;if(r||!L.current||i.length===0||!a)return!1;t.preventDefault();let o=e.posAtCoords({left:t.clientX,top:t.clientY});return R(a,i,o?.pos),!0},[R]),B=m.default.useMemo(()=>({attributes:Xe,handlePaste:tt,handleDrop:nt}),[Xe,tt,nt]),[V]=m.default.useState(be),rt=e??f,H=(0,_.useEditor)({extensions:ue(y??``,V,V===`markdown`?rt:void 0),content:V===`markdown`?``:rt,editable:!P,immediatelyRender:!1,editorProps:B,onUpdate:({editor:e})=>{let t=de(e,V);t!==I.current&&(I.current=t,Ye.current?.(t))}});m.default.useEffect(()=>{H&&!H.isDestroyed&&H.setOptions({editorProps:B})},[H,B]),m.default.useEffect(()=>{z.current.ed=H},[H]),m.default.useEffect(()=>{H&&!H.isDestroyed&&H.setEditable(!P,!1)},[H,P]),m.default.useEffect(()=>{if(!H||H.isDestroyed)return;let e=H.extensionManager.extensions.find(e=>e.name===`placeholder`);e&&e.options.placeholder!==(y??``)&&(e.options.placeholder=y??``,H.view.dispatch(H.state.tr))},[H,y]),m.default.useEffect(()=>{if(!H||H.isDestroyed||e===void 0||e===I.current||e===de(H,V))return;I.current=e;let t=(0,oe.createDocument)(fe(H,e,V),H.schema);t.eq(H.state.doc)||H.commands.setContent(t.toJSON(),{emitUpdate:!1})},[H,e,V]);let it=(0,_.useEditorState)({editor:H,selector:({editor:e})=>({bold:!!e?.isActive(`bold`),italic:!!e?.isActive(`italic`),underline:!!e?.schema.marks.underline&&e.isActive(`underline`),strikethrough:!!e?.isActive(`strike`),h1:!!e?.isActive(`heading`,{level:1}),h2:!!e?.isActive(`heading`,{level:2}),h3:!!e?.isActive(`heading`,{level:3}),ul:!!e?.isActive(`bulletList`),ol:!!e?.isActive(`orderedList`),image:!!e?.isActive(`image`)})}),U=m.default.useCallback(e=>{!P&&H&&e(H)},[H,P]),at=m.default.useCallback(()=>{U(e=>{let{from:t,to:n,empty:r}=e.state.selection,i=e.chain().focus();r&&i.selectAll(),i.unsetBold().unsetItalic().unsetStrike().clearNodes(),e.schema.marks.underline&&i.unsetUnderline(),r&&i.setTextSelection({from:t,to:n}),i.run()})},[U]),[ot,W]=m.default.useState(!1),[G,st]=m.default.useState(`https://`),[ct,K]=m.default.useState(void 0),lt=m.default.useCallback(()=>{if(P||!H)return;let{from:e,to:t}=H.state.selection,n=H.state.doc.textBetween(e,t,` `),r=H.getAttributes(`link`).href;st(r??(n.startsWith(`http`)?n:`https://`)),K(void 0),W(!0)},[H,P]),ut=m.default.useCallback(()=>{let e=G.trim();if(!e){W(!1);return}if(!d.isSafeLinkUrl(e)){K(Le);return}W(!1),U(t=>{t.state.selection.empty&&!t.isActive(`link`)?t.chain().focus().insertContent({type:`text`,text:e,marks:[{type:`link`,attrs:{href:e}}]}).run():t.chain().focus().extendMarkRange(`link`).setLink({href:e}).run()})},[G,Le,U]),[dt,q]=m.default.useState(!1),[J,Y]=m.default.useState(``),[X,ft]=m.default.useState(``),[pt,Z]=m.default.useState(void 0),[mt,ht]=m.default.useState(!1),gt=m.default.useRef(null),_t=`${j}-image-alt-hint`,vt=m.default.useCallback(()=>{if(P||!H)return;let e=H.isActive(`image`)?H.getAttributes(`image`):{};Y(e.src??``),ft(e.alt??``),Z(void 0),q(!0)},[H,P]),yt=m.default.useCallback(()=>{let e=J.trim();if(!e){q(!1);return}if(!d.isSafeImageUrl(e)){Z(Ue);return}q(!1),U(t=>t.chain().focus().setImage({src:e,alt:X.trim()}).run())},[J,X,Ue,U]),bt=m.default.useCallback(async e=>{let t=e.target.files?.[0];if(e.target.value=``,t&&O){ht(!0),Z(void 0);try{let e=await O(t);if(!d.isSafeImageUrl(e))throw Error(`URL not allowed`);Y(e)}catch{Z(A)}finally{ht(!1)}}},[O,A]),xt=m.default.useRef([]),[Q,St]=m.default.useState(0),$=m.default.useMemo(()=>{let e=V===`markdown`?E.filter(e=>e!==`underline`):E;return e.filter((t,n)=>t!==`separator`||n>0&&n<e.length-1&&e[n-1]!==`separator`)},[E,V]),Ct=m.default.useMemo(()=>$.filter(e=>e!==`separator`),[$]),wt=m.default.useMemo(()=>$.map((e,t)=>e===`separator`?-1:$.slice(0,t).filter(e=>e!==`separator`).length),[$]),Tt=m.default.useCallback(e=>{let t=Ct.length;if(t===0)return;let n;e.key===`ArrowRight`?n=(Q+1)%t:e.key===`ArrowLeft`?n=(Q-1+t)%t:e.key===`Home`?n=0:e.key===`End`&&(n=t-1),n!==void 0&&(e.preventDefault(),St(n),xt.current[n]?.focus())},[Ct.length,Q]),Et=m.default.useCallback(e=>{e.preventDefault()},[]),Dt={bold:{title:xe,icon:(0,g.jsx)(s.Icon,{component:n.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleBold().run())},italic:{title:Se,icon:(0,g.jsx)(s.Icon,{component:a.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleItalic().run())},underline:{title:Ce,icon:(0,g.jsx)(s.Icon,{component:re.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleUnderline().run())},strikethrough:{title:we,icon:(0,g.jsx)(s.Icon,{component:ne.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleStrike().run())},h1:{title:Te,icon:(0,g.jsx)(`span`,{"aria-hidden":`true`,children:`H1`}),onClick:()=>U(e=>e.chain().focus().toggleHeading({level:1}).run())},h2:{title:Ee,icon:(0,g.jsx)(`span`,{"aria-hidden":`true`,children:`H2`}),onClick:()=>U(e=>e.chain().focus().toggleHeading({level:2}).run())},h3:{title:De,icon:(0,g.jsx)(`span`,{"aria-hidden":`true`,children:`H3`}),onClick:()=>U(e=>e.chain().focus().toggleHeading({level:3}).run())},ul:{title:Oe,icon:(0,g.jsx)(s.Icon,{component:te.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleBulletList().run())},ol:{title:ke,icon:(0,g.jsx)(s.Icon,{component:ee.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleOrderedList().run())},link:{title:Ae,icon:(0,g.jsx)(s.Icon,{component:o.default,size:`sm`}),onClick:lt},unlink:{title:je,icon:(0,g.jsx)(s.Icon,{component:ie.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().extendMarkRange(`link`).unsetLink().run())},image:{title:Re,icon:(0,g.jsx)(s.Icon,{component:i.default,size:`sm`}),onClick:vt},removeFormat:{title:Me,icon:(0,g.jsx)(s.Icon,{component:r.default,size:`sm`}),onClick:at}};return(0,g.jsx)(ae.FieldTemplate,{label:C,error:w,required:T,layout:he,labelId:N,errorId:M,className:ge,children:(0,g.jsxs)(`div`,{className:(0,h.default)(`wim-rich-text-editor`,p.default.root,p.default[F],P&&p.default.disabled,p.default[me],b&&p.default.fullWidth,Ke&&p.default.hasCustomWidth,Je),style:Ke?{"--wim-input-width":typeof x==`number`?`${x}px`:x}:void 0,children:[(0,g.jsx)(`div`,{className:p.default.toolbar,role:`toolbar`,"aria-label":Ne,"aria-controls":j,onMouseDown:Et,onKeyDown:Tt,children:$.map((e,t)=>{if(e===`separator`)return(0,g.jsx)(`span`,{className:p.default.toolbarSep,"aria-hidden":`true`},`sep-${t}`);let n=wt[t],r=Dt[e],i=e===`link`||e===`unlink`||e===`removeFormat`?void 0:it?.[e]??!1;return(0,g.jsx)(pe,{buttonRef:e=>{xt.current[n]=e},tabIndex:n===Math.min(Q,Ct.length-1)?0:-1,onFocus:()=>St(n),disabled:P,active:i,title:r.title,onClick:r.onClick,children:r.icon},`${e}-${t}`)})}),(0,g.jsx)(_.EditorContent,{editor:H,className:p.default.contentHost}),Ze&&(0,g.jsx)(`p`,{role:`alert`,className:p.default.uploadError,children:Ze}),(0,g.jsx)(u.Dialog,{open:ot,onOpenChange:W,children:(0,g.jsxs)(u.DialogContent,{children:[(0,g.jsx)(u.DialogHeader,{children:(0,g.jsx)(u.DialogTitle,{children:Ae})}),(0,g.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),ut()},children:[(0,g.jsx)(l.Input,{label:Pe,type:`url`,value:G,error:ct,onChange:e=>{st(e.target.value),K(void 0)},fullWidth:!0}),(0,g.jsxs)(u.DialogFooter,{children:[(0,g.jsx)(u.DialogClose,{asChild:!0,children:(0,g.jsx)(c.Button,{variant:`ghost`,type:`button`,children:Ie})}),(0,g.jsx)(c.Button,{variant:`solid`,type:`submit`,children:Fe})]})]})]})}),(0,g.jsx)(u.Dialog,{open:dt,onOpenChange:q,children:(0,g.jsxs)(u.DialogContent,{children:[(0,g.jsx)(u.DialogHeader,{children:(0,g.jsx)(u.DialogTitle,{children:Re})}),(0,g.jsxs)(`form`,{className:p.default.imageForm,onSubmit:e=>{e.preventDefault(),yt()},children:[(0,g.jsx)(l.Input,{label:ze,type:`url`,value:J,error:pt,onChange:e=>{Y(e.target.value),Z(void 0)},fullWidth:!0}),O&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`input`,{ref:gt,type:`file`,accept:`image/*`,hidden:!0,onChange:bt}),(0,g.jsx)(c.Button,{type:`button`,variant:`outline`,loading:mt,onClick:()=>gt.current?.click(),children:He})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(l.Input,{label:Be,"aria-describedby":_t,value:X,onChange:e=>ft(e.target.value),fullWidth:!0}),(0,g.jsx)(`p`,{id:_t,className:p.default.imageHint,children:Ve})]}),(0,g.jsxs)(u.DialogFooter,{children:[(0,g.jsx)(u.DialogClose,{asChild:!0,children:(0,g.jsx)(c.Button,{variant:`ghost`,type:`button`,children:Ie})}),(0,g.jsx)(c.Button,{variant:`solid`,type:`submit`,disabled:mt,children:Fe})]})]})]})})]})})};me.displayName=`RichTextEditor`,exports.RichTextEditor=me;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/components.cjs"),r=require("../../../icon/bold.cjs"),i=require("../../../icon/eraser.cjs"),a=require("../../../icon/image.cjs"),o=require("../../../icon/italic.cjs"),ee=require("../../../icon/link.cjs"),te=require("../../../icon/list-ordered.cjs"),ne=require("../../../icon/list.cjs"),re=require("../../../icon/strikethrough.cjs"),ie=require("../../../icon/underline.cjs"),ae=require("../../../icon/unlink.cjs"),s=require("../../media/Icon/Icon.cjs"),c=require("../Button/Button.cjs"),oe=require("../FieldTemplate/FieldTemplate.cjs"),l=require("../Input/Input.cjs"),u=require("../../overlay/Dialog/Dialog.cjs"),d=require("./safeUrl.cjs"),f=require("./markdown.cjs"),p=require("./rich-text-editor.module.cjs");let m=require("react");m=e.__toESM(m,1);let h=require("classnames");h=e.__toESM(h,1);let g=require("react/jsx-runtime"),_=require("@tiptap/react"),se=require("@tiptap/core"),v=require("@tiptap/starter-kit"),y=require("@tiptap/extensions"),ce=require("@tiptap/extension-image");var le=[`bold`,`italic`,`underline`,`strikethrough`,`separator`,`h1`,`h2`,`h3`,`separator`,`ul`,`ol`,`separator`,`link`,`unlink`,`separator`,`removeFormat`],ue=ce.Image.extend({parseHTML(){return[{tag:`img[src]`,getAttrs:e=>d.isSafeImageUrl(e.getAttribute(`src`))?null:!1}]}}),de=(e,t,n)=>[v.StarterKit.configure({heading:{levels:[1,2,3]},blockquote:!1,code:!1,codeBlock:!1,horizontalRule:!1,trailingNode:!1,...t===`markdown`?{underline:!1}:{},link:{openOnClick:!1,autolink:!1,linkOnPaste:!1,isAllowedUri:e=>d.isSafeLinkUrl(e),HTMLAttributes:{target:null,rel:null}}}),ue.configure({inline:!1,allowBase64:!1}),y.Placeholder.configure({placeholder:e}),...t===`markdown`?f.createMarkdownExtensions(n):[]],fe=(e,t)=>e.isEmpty?``:t===`markdown`?e.getMarkdown():e.getHTML(),pe=(e,t,n)=>n===`markdown`?f.markdownToHtml(e,t):t,me=m.default.memo(({onClick:e,active:t,disabled:n,title:r,tabIndex:i,onFocus:a,buttonRef:o,children:ee})=>(0,g.jsx)(`button`,{ref:o,type:`button`,className:(0,h.default)(p.default.toolbarBtn,t&&p.default.active),onClick:e,onFocus:a,disabled:n,title:r,"aria-label":r,"aria-pressed":t,tabIndex:i,children:ee}));me.displayName=`ToolbarButton`;var he=({value:e,defaultValue:f=``,onChange:v,placeholder:y,disabled:ce,intent:ue=`default`,variant:he=`outline`,fullWidth:b=!1,width:x,minHeight:S=200,label:C,error:w,required:T,layout:ge,className:_e,id:ve,toolbar:E=le,labels:ye={},"aria-label":be,"aria-labelledby":D,onImageUpload:O,format:xe=`html`})=>{let{t:k}=t.useWimTranslation(n.componentsNs),{bold:Se=k(`a11y.rte_bold`),italic:Ce=k(`a11y.rte_italic`),underline:we=k(`a11y.rte_underline`),strikethrough:Te=k(`a11y.rte_strikethrough`),h1:Ee=k(`a11y.rte_h1`),h2:De=k(`a11y.rte_h2`),h3:Oe=k(`a11y.rte_h3`),ul:ke=k(`a11y.rte_ul`),ol:Ae=k(`a11y.rte_ol`),link:je=k(`a11y.rte_link`),unlink:Me=k(`a11y.rte_unlink`),removeFormat:Ne=k(`a11y.rte_remove_format`),toolbar:Pe=k(`a11y.rte_toolbar`),linkPrompt:Fe=k(`a11y.rte_link_prompt`),linkApply:Ie=k(`a11y.rte_link_apply`),linkCancel:Le=k(`a11y.rte_link_cancel`),linkInvalid:Re=k(`a11y.rte_link_invalid`),image:ze=k(`a11y.rte_image`),imageUrl:Be=k(`a11y.rte_image_url`),imageAlt:Ve=k(`a11y.rte_image_alt`),imageAltHint:He=k(`a11y.rte_image_alt_hint`),imageUpload:Ue=k(`a11y.rte_image_upload`),imageUploadFailed:A=k(`a11y.rte_image_upload_failed`),imageInvalid:We=k(`a11y.rte_image_invalid`)}=ye,Ge=m.default.useId(),j=ve||`wim-rte-${Ge}`,M=w?`${j}-error`:void 0,N=C?`${j}-label`:void 0,P=!!ce,F=w?`danger`:ue,Ke=typeof x==`string`&&[`xs`,`sm`,`md`,`lg`,`xl`].includes(x),qe=x!==void 0&&!Ke&&!b,Je=Ke&&!b?x:void 0,Ye=Je?p.default[`width${Je.charAt(0).toUpperCase()}${Je.slice(1)}`]:void 0,I=m.default.useRef(e??f),Xe=m.default.useRef(v);m.default.useEffect(()=>{Xe.current=v},[v]);let Ze=m.default.useMemo(()=>{let e={id:j,class:p.default.content,role:`textbox`,"aria-multiline":`true`,style:`min-height: ${typeof S==`number`?`${S}px`:S}`,tabindex:P?`-1`:`0`},t=be??(C||D?void 0:k(`a11y.rte_editor`)),n=D??(C?N:void 0);return t&&(e[`aria-label`]=t),n&&(e[`aria-labelledby`]=n),F===`danger`&&(e[`aria-invalid`]=`true`),M&&(e[`aria-describedby`]=M),T&&(e[`aria-required`]=`true`),P&&(e[`aria-disabled`]=`true`),y&&(e[`aria-placeholder`]=y),e},[j,S,P,be,C,D,N,F,M,T,y,k]),L=m.default.useRef(O);m.default.useEffect(()=>{L.current=O},[O]);let[Qe,$e]=m.default.useState(void 0),et=m.default.useRef(A);m.default.useEffect(()=>{et.current=A},[A]);let R=m.default.useCallback(async(e,t,n)=>{let r=L.current;if(r){$e(void 0);for(let i of t)try{let t=await r(i);if(!d.isSafeImageUrl(t))throw Error(`URL not allowed`);if(e.isDestroyed)return;let a=e.chain().focus();(n===void 0?a:a.setTextSelection(n)).setImage({src:t,alt:``}).run()}catch{$e(et.current)}}},[]),tt=e=>Array.from(e??[]).filter(e=>e.type.startsWith(`image/`)),z=m.default.useRef({ed:null}),nt=m.default.useCallback((e,t)=>{let n=tt(t.clipboardData?.files),r=z.current.ed;return!L.current||n.length===0||!r?!1:(t.preventDefault(),R(r,n),!0)},[R]),rt=m.default.useCallback((e,t,n,r)=>{let i=tt(t.dataTransfer?.files),a=z.current.ed;if(r||!L.current||i.length===0||!a)return!1;t.preventDefault();let o=e.posAtCoords({left:t.clientX,top:t.clientY});return R(a,i,o?.pos),!0},[R]),B=m.default.useMemo(()=>({attributes:Ze,handlePaste:nt,handleDrop:rt}),[Ze,nt,rt]),[V]=m.default.useState(xe),it=e??f,H=(0,_.useEditor)({extensions:de(y??``,V,V===`markdown`?it:void 0),content:V===`markdown`?``:it,editable:!P,immediatelyRender:!1,editorProps:B,onUpdate:({editor:e})=>{let t=fe(e,V);t!==I.current&&(I.current=t,Xe.current?.(t))}});m.default.useEffect(()=>{H&&!H.isDestroyed&&H.setOptions({editorProps:B})},[H,B]),m.default.useEffect(()=>{z.current.ed=H},[H]),m.default.useEffect(()=>{H&&!H.isDestroyed&&H.setEditable(!P,!1)},[H,P]),m.default.useEffect(()=>{if(!H||H.isDestroyed)return;let e=H.extensionManager.extensions.find(e=>e.name===`placeholder`);e&&e.options.placeholder!==(y??``)&&(e.options.placeholder=y??``,H.view.dispatch(H.state.tr))},[H,y]),m.default.useEffect(()=>{if(!H||H.isDestroyed||e===void 0||e===I.current||e===fe(H,V))return;I.current=e;let t=(0,se.createDocument)(pe(H,e,V),H.schema);t.eq(H.state.doc)||H.commands.setContent(t.toJSON(),{emitUpdate:!1})},[H,e,V]);let at=(0,_.useEditorState)({editor:H,selector:({editor:e})=>({bold:!!e?.isActive(`bold`),italic:!!e?.isActive(`italic`),underline:!!e?.schema.marks.underline&&e.isActive(`underline`),strikethrough:!!e?.isActive(`strike`),h1:!!e?.isActive(`heading`,{level:1}),h2:!!e?.isActive(`heading`,{level:2}),h3:!!e?.isActive(`heading`,{level:3}),ul:!!e?.isActive(`bulletList`),ol:!!e?.isActive(`orderedList`),image:!!e?.isActive(`image`)})}),U=m.default.useCallback(e=>{!P&&H&&e(H)},[H,P]),ot=m.default.useCallback(()=>{U(e=>{let{from:t,to:n,empty:r}=e.state.selection,i=e.chain().focus();r&&i.selectAll(),i.unsetBold().unsetItalic().unsetStrike().clearNodes(),e.schema.marks.underline&&i.unsetUnderline(),r&&i.setTextSelection({from:t,to:n}),i.run()})},[U]),[st,W]=m.default.useState(!1),[G,ct]=m.default.useState(`https://`),[lt,K]=m.default.useState(void 0),ut=m.default.useCallback(()=>{if(P||!H)return;let{from:e,to:t}=H.state.selection,n=H.state.doc.textBetween(e,t,` `),r=H.getAttributes(`link`).href;ct(r??(n.startsWith(`http`)?n:`https://`)),K(void 0),W(!0)},[H,P]),dt=m.default.useCallback(()=>{let e=G.trim();if(!e){W(!1);return}if(!d.isSafeLinkUrl(e)){K(Re);return}W(!1),U(t=>{t.state.selection.empty&&!t.isActive(`link`)?t.chain().focus().insertContent({type:`text`,text:e,marks:[{type:`link`,attrs:{href:e}}]}).run():t.chain().focus().extendMarkRange(`link`).setLink({href:e}).run()})},[G,Re,U]),[ft,q]=m.default.useState(!1),[J,Y]=m.default.useState(``),[X,pt]=m.default.useState(``),[mt,Z]=m.default.useState(void 0),[ht,gt]=m.default.useState(!1),_t=m.default.useRef(null),vt=`${j}-image-alt-hint`,yt=m.default.useCallback(()=>{if(P||!H)return;let e=H.isActive(`image`)?H.getAttributes(`image`):{};Y(e.src??``),pt(e.alt??``),Z(void 0),q(!0)},[H,P]),bt=m.default.useCallback(()=>{let e=J.trim();if(!e){q(!1);return}if(!d.isSafeImageUrl(e)){Z(We);return}q(!1),U(t=>t.chain().focus().setImage({src:e,alt:X.trim()}).run())},[J,X,We,U]),xt=m.default.useCallback(async e=>{let t=e.target.files?.[0];if(e.target.value=``,t&&O){gt(!0),Z(void 0);try{let e=await O(t);if(!d.isSafeImageUrl(e))throw Error(`URL not allowed`);Y(e)}catch{Z(A)}finally{gt(!1)}}},[O,A]),St=m.default.useRef([]),[Q,Ct]=m.default.useState(0),$=m.default.useMemo(()=>{let e=V===`markdown`?E.filter(e=>e!==`underline`):E;return e.filter((t,n)=>t!==`separator`||n>0&&n<e.length-1&&e[n-1]!==`separator`)},[E,V]),wt=m.default.useMemo(()=>$.filter(e=>e!==`separator`),[$]),Tt=m.default.useMemo(()=>$.map((e,t)=>e===`separator`?-1:$.slice(0,t).filter(e=>e!==`separator`).length),[$]),Et=m.default.useCallback(e=>{let t=wt.length;if(t===0)return;let n;e.key===`ArrowRight`?n=(Q+1)%t:e.key===`ArrowLeft`?n=(Q-1+t)%t:e.key===`Home`?n=0:e.key===`End`&&(n=t-1),n!==void 0&&(e.preventDefault(),Ct(n),St.current[n]?.focus())},[wt.length,Q]),Dt=m.default.useCallback(e=>{e.preventDefault()},[]),Ot={bold:{title:Se,icon:(0,g.jsx)(s.Icon,{component:r.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleBold().run())},italic:{title:Ce,icon:(0,g.jsx)(s.Icon,{component:o.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleItalic().run())},underline:{title:we,icon:(0,g.jsx)(s.Icon,{component:ie.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleUnderline().run())},strikethrough:{title:Te,icon:(0,g.jsx)(s.Icon,{component:re.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleStrike().run())},h1:{title:Ee,icon:(0,g.jsx)(`span`,{"aria-hidden":`true`,children:`H1`}),onClick:()=>U(e=>e.chain().focus().toggleHeading({level:1}).run())},h2:{title:De,icon:(0,g.jsx)(`span`,{"aria-hidden":`true`,children:`H2`}),onClick:()=>U(e=>e.chain().focus().toggleHeading({level:2}).run())},h3:{title:Oe,icon:(0,g.jsx)(`span`,{"aria-hidden":`true`,children:`H3`}),onClick:()=>U(e=>e.chain().focus().toggleHeading({level:3}).run())},ul:{title:ke,icon:(0,g.jsx)(s.Icon,{component:ne.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleBulletList().run())},ol:{title:Ae,icon:(0,g.jsx)(s.Icon,{component:te.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().toggleOrderedList().run())},link:{title:je,icon:(0,g.jsx)(s.Icon,{component:ee.default,size:`sm`}),onClick:ut},unlink:{title:Me,icon:(0,g.jsx)(s.Icon,{component:ae.default,size:`sm`}),onClick:()=>U(e=>e.chain().focus().extendMarkRange(`link`).unsetLink().run())},image:{title:ze,icon:(0,g.jsx)(s.Icon,{component:a.default,size:`sm`}),onClick:yt},removeFormat:{title:Ne,icon:(0,g.jsx)(s.Icon,{component:i.default,size:`sm`}),onClick:ot}};return(0,g.jsx)(oe.FieldTemplate,{label:C,error:w,required:T,layout:ge,labelId:N,errorId:M,className:_e,children:(0,g.jsxs)(`div`,{className:(0,h.default)(`wim-rich-text-editor`,p.default.root,p.default[F],P&&p.default.disabled,p.default[he],b&&p.default.fullWidth,qe&&p.default.hasCustomWidth,Ye),style:qe?{"--wim-input-width":typeof x==`number`?`${x}px`:x}:void 0,children:[(0,g.jsx)(`div`,{className:p.default.toolbar,role:`toolbar`,"aria-label":Pe,"aria-controls":j,onMouseDown:Dt,onKeyDown:Et,children:$.map((e,t)=>{if(e===`separator`)return(0,g.jsx)(`span`,{className:p.default.toolbarSep,"aria-hidden":`true`},`sep-${t}`);let n=Tt[t],r=Ot[e],i=e===`link`||e===`unlink`||e===`removeFormat`?void 0:at?.[e]??!1;return(0,g.jsx)(me,{buttonRef:e=>{St.current[n]=e},tabIndex:n===Math.min(Q,wt.length-1)?0:-1,onFocus:()=>Ct(n),disabled:P,active:i,title:r.title,onClick:r.onClick,children:r.icon},`${e}-${t}`)})}),(0,g.jsx)(_.EditorContent,{editor:H,className:p.default.contentHost}),Qe&&(0,g.jsx)(`p`,{role:`alert`,className:p.default.uploadError,children:Qe}),(0,g.jsx)(u.Dialog,{open:st,onOpenChange:W,children:(0,g.jsxs)(u.DialogContent,{children:[(0,g.jsx)(u.DialogHeader,{children:(0,g.jsx)(u.DialogTitle,{children:je})}),(0,g.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),dt()},children:[(0,g.jsx)(l.Input,{label:Fe,type:`url`,value:G,error:lt,onChange:e=>{ct(e.target.value),K(void 0)},fullWidth:!0}),(0,g.jsxs)(u.DialogFooter,{children:[(0,g.jsx)(u.DialogClose,{asChild:!0,children:(0,g.jsx)(c.Button,{variant:`ghost`,type:`button`,children:Le})}),(0,g.jsx)(c.Button,{variant:`solid`,type:`submit`,children:Ie})]})]})]})}),(0,g.jsx)(u.Dialog,{open:ft,onOpenChange:q,children:(0,g.jsxs)(u.DialogContent,{children:[(0,g.jsx)(u.DialogHeader,{children:(0,g.jsx)(u.DialogTitle,{children:ze})}),(0,g.jsxs)(`form`,{className:p.default.imageForm,onSubmit:e=>{e.preventDefault(),bt()},children:[(0,g.jsx)(l.Input,{label:Be,type:`url`,value:J,error:mt,onChange:e=>{Y(e.target.value),Z(void 0)},fullWidth:!0}),O&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`input`,{ref:_t,type:`file`,accept:`image/*`,hidden:!0,onChange:xt}),(0,g.jsx)(c.Button,{type:`button`,variant:`outline`,loading:ht,onClick:()=>_t.current?.click(),children:Ue})]}),(0,g.jsxs)(`div`,{children:[(0,g.jsx)(l.Input,{label:Ve,"aria-describedby":vt,value:X,onChange:e=>pt(e.target.value),fullWidth:!0}),(0,g.jsx)(`p`,{id:vt,className:p.default.imageHint,children:He})]}),(0,g.jsxs)(u.DialogFooter,{children:[(0,g.jsx)(u.DialogClose,{asChild:!0,children:(0,g.jsx)(c.Button,{variant:`ghost`,type:`button`,children:Le})}),(0,g.jsx)(c.Button,{variant:`solid`,type:`submit`,disabled:ht,children:Ie})]})]})]})})]})})};he.displayName=`RichTextEditor`,exports.RichTextEditor=he;