@revolist/ui 4.0.3-rc → 4.0.3

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 (314) hide show
  1. package/MIGRATION.md +36 -0
  2. package/OWNERSHIP.md +32 -32
  3. package/README.md +136 -78
  4. package/_button.scss +6 -2
  5. package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
  6. package/_chunks/calculator-CDWOuAcp.js +4 -0
  7. package/_chunks/{calendar-xpZ0v3xf.js → calendar-CgXQgkga.js} +19 -19
  8. package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
  9. package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
  10. package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
  11. package/_chunks/choice-chips-SkllS5Kl.js +126 -0
  12. package/_chunks/{color-palette-D8vyPfld.js → color-palette-DMJUChWC.js} +20 -22
  13. package/_chunks/color-picker-BpCTuIdm.js +143 -0
  14. package/_chunks/{component-C_T2VN5u.js → component-CfeHXgIw.js} +279 -264
  15. package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
  16. package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
  17. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  18. package/_chunks/{control-AHKXD5Eu.js → control-Dcrjsunl.js} +42 -17
  19. package/_chunks/controls-B_6NJarZ.js +650 -0
  20. package/_chunks/{date-control-DrVFX13g.js → date-control-C4h4m75W.js} +1 -1
  21. package/_chunks/{date-time-qIhp5vaX.js → date-time-CTOSbzb0.js} +317 -278
  22. package/_chunks/dialog.parts-3w5FR06n.js +131 -0
  23. package/_chunks/{duration-CL68Em0o.js → duration-Bf2OS1V5.js} +5 -5
  24. package/_chunks/editor-popup-ByU7qiub.js +82 -0
  25. package/_chunks/field-configurator-D5dZRhDe.js +288 -0
  26. package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-Bk4O_T7T.js} +1 -1
  27. package/_chunks/icon-toolbar-DSjOdwM7.js +134 -0
  28. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  29. package/_chunks/minus-BOAR3A1C.js +4 -0
  30. package/_chunks/mount-BRdcG60g.js +267 -0
  31. package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
  32. package/_chunks/native-control-B_fVA5bL.js +649 -0
  33. package/_chunks/{number-input-BKwA5FnM.js → number-input-CmM6_2vR.js} +7 -7
  34. package/_chunks/{picker-h1P5RUgp.js → picker-DTqET-2W.js} +2 -2
  35. package/_chunks/plus-CbGRkIGl.js +4 -0
  36. package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
  37. package/_chunks/{popup-CT2uD3go.js → popup-C35Isk7p.js} +115 -104
  38. package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-C-6wcb9U.js} +1 -1
  39. package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-DIl1gkV6.js} +1 -1
  40. package/_chunks/request-trail-DrhdpWiH.js +762 -0
  41. package/_chunks/rich-text-BnilBbhU.js +842 -0
  42. package/_chunks/rotate-left-BF6G883o.js +4 -0
  43. package/_chunks/selection-list-tooltips-C5oMJe26.js +42 -0
  44. package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
  45. package/_chunks/tooltip-D4xkio5G.js +54 -0
  46. package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
  47. package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
  48. package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
  49. package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
  50. package/_dialog.scss +57 -22
  51. package/_form.scss +71 -21
  52. package/_legend.scss +25 -7
  53. package/_shared/data-query/index.d.ts +2 -2
  54. package/_shared/data-query/load-options.d.ts +2 -2
  55. package/_variables.scss +34 -32
  56. package/_view-switcher.scss +6 -0
  57. package/activity-message.d.ts +1 -1
  58. package/ai/_chat.scss +35 -3
  59. package/ai/_style.scss +76 -16
  60. package/ai/chat.d.ts +3 -1
  61. package/ai/components.d.ts +16 -3
  62. package/ai/index.d.ts +1 -0
  63. package/ai/index.js +3 -3
  64. package/ai/mount.d.ts +30 -6
  65. package/ai/request-trail.d.ts +9 -3
  66. package/ai/results/_style.scss +83 -0
  67. package/ai/results/index.d.ts +11 -0
  68. package/ai/results/metrics.d.ts +5 -0
  69. package/ai/results/table.d.ts +5 -0
  70. package/ai/results/text.d.ts +5 -0
  71. package/ai/results/types.d.ts +29 -0
  72. package/ai/transcript.d.ts +2 -0
  73. package/ai/translations.d.ts +1 -1
  74. package/angular/angular.d.ts +1 -1
  75. package/angular/angular.js +13 -7
  76. package/assignee/assignee.scss +28 -6
  77. package/assignee/index.js +2 -2
  78. package/avatar/avatar.style.scss +23 -6
  79. package/avatar/index.d.ts +25 -2
  80. package/avatar/index.js +33 -32
  81. package/badge.d.ts +1 -1
  82. package/badge.view.d.ts +8 -0
  83. package/brush-range/_brush-range.scss +55 -49
  84. package/brush-range/component.d.ts +1 -3
  85. package/brush-range/component.js +27 -27
  86. package/buttons/delete-button.style.scss +6 -2
  87. package/buttons/remove-button.d.ts +1 -1
  88. package/buttons/remove-button.style.scss +1 -1
  89. package/buttons/svg-button.d.ts +1 -1
  90. package/buttons/svg-button.js +16 -16
  91. package/calendar/_calendar.scss +21 -25
  92. package/calendar/calendar.js +1 -1
  93. package/calendar/header.js +1 -2
  94. package/calendar/index.js +2 -2
  95. package/cell-input.scss +3 -7
  96. package/cell-visuals/badge.style.scss +6 -3
  97. package/cell-visuals/bar-chart.style.scss +2 -1
  98. package/cell-visuals/column-type.style.css +12 -0
  99. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  100. package/cell-visuals/progress-line.style.scss +1 -4
  101. package/cell-visuals/sparkline.style.scss +2 -1
  102. package/cell-visuals/timeline.style.css +4 -2
  103. package/checkbox/checkbox.scss +6 -24
  104. package/choice-chips/index.d.ts +3 -1
  105. package/choice-chips/index.js +1 -1
  106. package/color-palette/color-palette.js +1 -1
  107. package/color-palette/color-palette.style.scss +88 -25
  108. package/color-palette/color-picker.js +2 -2
  109. package/color-palette/color-picker.style.scss +23 -10
  110. package/color-palette/common-palettes.d.ts +1 -1
  111. package/color-palette/common-palettes.js +1 -1
  112. package/color-palette/native.d.ts +15 -2
  113. package/component-catalog.d.ts +9 -7
  114. package/configurator-actions.d.ts +67 -0
  115. package/configurator-actions.js +1 -0
  116. package/configurator-aggregation-list.d.ts +14 -0
  117. package/configurator-aggregation-list.js +63 -0
  118. package/configurator-drop-zone.d.ts +39 -0
  119. package/configurator-drop-zone.js +66 -0
  120. package/configurator-field-icon.d.ts +10 -0
  121. package/configurator-field-icon.js +1 -0
  122. package/configurator-focus.d.ts +4 -0
  123. package/configurator-focus.js +39 -0
  124. package/configurator-sections.d.ts +42 -0
  125. package/configurator-sections.js +71 -0
  126. package/control-presentation.d.ts +8 -2
  127. package/control-presentation.js +25 -20
  128. package/controls.d.ts +12 -2
  129. package/controls.js +4 -3
  130. package/core/editor-popup-position.d.ts +6 -2
  131. package/core/editor-popup.d.ts +4 -0
  132. package/core/editor-popup.js +1 -1
  133. package/core/popover-controller.d.ts +35 -0
  134. package/core/popup-ownership.d.ts +2 -0
  135. package/core/selection-list-tooltips.d.ts +2 -0
  136. package/core/title-tooltip.d.ts +2 -0
  137. package/core/tooltip-session.d.ts +29 -0
  138. package/core/tooltip-surface.d.ts +13 -0
  139. package/core/tooltip-text.d.ts +6 -0
  140. package/core/tooltip.d.ts +35 -0
  141. package/core/top-layer-popup.d.ts +4 -0
  142. package/core/top-layer-popup.js +1 -23
  143. package/date-time/attach.d.ts +1 -1
  144. package/date-time/date-control.d.ts +1 -1
  145. package/date-time/field.d.ts +3 -2
  146. package/date-time/index.js +1 -1
  147. package/date-time/style.scss +239 -36
  148. package/date-time/time-selection.d.ts +3 -1
  149. package/date-time/types.d.ts +5 -1
  150. package/dialog/dialog-action-footer.d.ts +17 -2
  151. package/dialog/dialog.dom.d.ts +15 -2
  152. package/dialog/dialog.dom.js +9 -9
  153. package/dialog/dialog.parts.d.ts +1 -1
  154. package/dialog/dialog.parts.js +1 -1
  155. package/distribution-chart/_distribution-chart.scss +113 -77
  156. package/distribution-chart/area-chart.js +1 -1
  157. package/distribution-chart/bar-chart.js +1 -1
  158. package/distribution-chart/chart-frame.d.ts +1 -1
  159. package/distribution-chart/index.d.ts +1 -1
  160. package/distribution-chart/line-chart.js +1 -1
  161. package/dropdown/content.js +1 -1
  162. package/dropdown/control.js +1 -1
  163. package/dropdown/dropdown.types.d.ts +1 -1
  164. package/dropdown/editor-dropdown.style.scss +19 -9
  165. package/dropdown/index.js +2 -2
  166. package/dropdown/lookup-field.d.ts +5 -0
  167. package/dropdown/lookup-field.js +2 -1
  168. package/dropdown/popup.d.ts +2 -2
  169. package/dropdown/popup.js +1 -1
  170. package/duration/index.js +1 -1
  171. package/editor-actions.js +1 -1
  172. package/editor-layout/index.d.ts +4 -4
  173. package/editor-layout/index.js +39 -34
  174. package/editor-layout/style.scss +82 -18
  175. package/field-configurator.d.ts +39 -1
  176. package/field-configurator.js +4 -170
  177. package/field-expansion.d.ts +9 -0
  178. package/filter/filters/slider/_single-slider.scss +57 -38
  179. package/filter/filters/slider/_slider.scss +41 -33
  180. package/filter/filters/slider/control.js +2 -0
  181. package/filter/filters/slider/runtime.js +49 -22
  182. package/filter/filters/slider/single.js +1 -1
  183. package/filter-badge.js +1 -1
  184. package/filter-controls.d.ts +0 -1
  185. package/filter-controls.js +5 -6
  186. package/form-controls/index.d.ts +10 -2
  187. package/form-controls/index.js +7 -7
  188. package/form-controls/presentation.d.ts +1 -1
  189. package/form-controls/presentation.js +12 -12
  190. package/formatting/index.d.ts +1 -1
  191. package/formatting/index.js +22 -21
  192. package/formatting/styles.scss +14 -57
  193. package/framework.js +227 -224
  194. package/history-controls.js +27 -1
  195. package/icon-toolbar.d.ts +62 -0
  196. package/icon-toolbar.js +1 -0
  197. package/icons/icon.d.ts +1 -1
  198. package/legend.d.ts +1 -1
  199. package/masked-input/index.js +1 -1
  200. package/native-control.d.ts +1 -2
  201. package/native-control.js +1 -1
  202. package/native-controls.d.ts +54 -2
  203. package/native-styles.css +1 -1
  204. package/native-styles.scss +6 -2
  205. package/native.d.ts +3 -3
  206. package/native.js +46 -43
  207. package/number-input/index.d.ts +1 -1
  208. package/number-input/index.js +1 -1
  209. package/package.json +71 -2
  210. package/pagination.js +11 -11
  211. package/pdf-viewer/header.d.ts +1 -1
  212. package/pdf-viewer/index.d.ts +2 -2
  213. package/pdf-viewer/index.js +1 -1
  214. package/pdf-viewer/search-bar.d.ts +1 -1
  215. package/pdf-viewer/status.d.ts +1 -1
  216. package/pdf-viewer/style.scss +203 -42
  217. package/pickers.d.ts +5 -1
  218. package/preact-mount.js +1 -1
  219. package/preact.d.ts +13 -10
  220. package/preact.js +109 -64
  221. package/progress/_bar.scss +9 -3
  222. package/progress/_circular.scss +2 -1
  223. package/rating-choice.js +1 -1
  224. package/react-adapter.d.ts +4 -2
  225. package/react-control.d.ts +2 -0
  226. package/react-control.js +2 -2
  227. package/react.d.ts +7 -8
  228. package/react.js +67 -66
  229. package/reorder-list.d.ts +1 -1
  230. package/reorder-list.js +1 -1
  231. package/reorder-list.scss +59 -17
  232. package/resource-picker/resource-picker-popup.js +1 -1
  233. package/resource-picker/resource-picker.js +74 -72
  234. package/resource-picker/resource-picker.scss +62 -34
  235. package/rich-text/engine.d.ts +1 -0
  236. package/rich-text/format-html.d.ts +2 -0
  237. package/rich-text/index.d.ts +4 -0
  238. package/rich-text/index.js +1 -1
  239. package/rich-text/model.d.ts +2 -0
  240. package/rich-text/style.scss +293 -44
  241. package/rich-text/syntax.d.ts +5 -0
  242. package/rich-text/toolbar.d.ts +1 -1
  243. package/rich-text/translations.d.ts +2 -0
  244. package/search-input/index.js +1 -1
  245. package/search-input/native.d.ts +21 -2
  246. package/select.d.ts +3 -1
  247. package/select.js +1 -1
  248. package/selection-list.d.ts +1 -0
  249. package/selection-list.js +3 -1
  250. package/status-feedback/exit-snapshot.js +4 -4
  251. package/status-feedback/popover.js +4 -4
  252. package/status-feedback/status-feedback.scss +124 -35
  253. package/styles/_activity-message.scss +24 -7
  254. package/styles/_alert.scss +78 -17
  255. package/styles/_cell-editor-frame.scss +11 -0
  256. package/styles/_compositions.scss +400 -80
  257. package/styles/_control.scss +30 -8
  258. package/styles/_disclosure.scss +15 -5
  259. package/styles/_editor-counter.scss +16 -6
  260. package/styles/_editor-slider.scss +8 -4
  261. package/styles/_field-configurator.scss +321 -23
  262. package/styles/_fields-grid.scss +49 -0
  263. package/styles/_filter-controls.scss +10 -2
  264. package/styles/_icon-action.scss +48 -15
  265. package/styles/_loading.scss +12 -3
  266. package/styles/_motion.scss +32 -9
  267. package/styles/_palette.scss +0 -24
  268. package/styles/_primitives.scss +369 -110
  269. package/styles/_theme.scss +130 -86
  270. package/styles/_thresholds.scss +28 -25
  271. package/styles/_time-grid.scss +8 -3
  272. package/styles/_tokens.scss +6 -1
  273. package/styles/configurator-actions.scss +241 -0
  274. package/styles/pagination.css +213 -0
  275. package/styles/{legacy-rating.css → rating.css} +8 -3
  276. package/styles.css +1 -1
  277. package/styles.scss +3 -5
  278. package/surfaces.d.ts +38 -2
  279. package/surfaces.js +37 -134
  280. package/svelte/UiComponent.svelte +44 -11
  281. package/svelte.d.ts +1 -1
  282. package/svelte.js +3 -3
  283. package/switch/index.js +15 -14
  284. package/time-grid.d.ts +0 -1
  285. package/time-grid.js +38 -37
  286. package/timeline-track/_style.scss +96 -24
  287. package/timeline-track/index.js +2 -2
  288. package/ui.css +1 -1
  289. package/view-switcher.d.ts +23 -0
  290. package/vue.d.ts +29 -32
  291. package/vue.js +116 -121
  292. package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
  293. package/_chunks/choice-chips-CHQTUdLs.js +0 -110
  294. package/_chunks/color-picker-CudqPYZo.js +0 -138
  295. package/_chunks/control-tooltip-uscKfAnV.js +0 -100
  296. package/_chunks/controls-DsNi8V8I.js +0 -630
  297. package/_chunks/dialog.parts-CKGkC5zP.js +0 -134
  298. package/_chunks/editor-popup-WDdtVDNA.js +0 -81
  299. package/_chunks/history-controls-B3u3INEK.js +0 -27
  300. package/_chunks/mount-DQ1cpppK.js +0 -257
  301. package/_chunks/native-control-C_yok8_-.js +0 -605
  302. package/_chunks/request-trail-DSlFix6i.js +0 -618
  303. package/_chunks/rich-text-CH7gIqOS.js +0 -636
  304. package/avatar/index.view.d.ts +0 -25
  305. package/color-palette/native.view.d.ts +0 -15
  306. package/control-presentation.view.d.ts +0 -8
  307. package/dialog/dialog-action-footer.view.d.ts +0 -20
  308. package/dialog/dialog.dom.view.d.ts +0 -15
  309. package/form-controls/index.view.d.ts +0 -10
  310. package/formatting/control-tooltip.d.ts +0 -27
  311. package/native-controls.view.d.ts +0 -54
  312. package/search-input/native.view.d.ts +0 -21
  313. package/styles/legacy-pagination.css +0 -112
  314. package/surfaces.view.d.ts +0 -63
@@ -0,0 +1,4 @@
1
+ //#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/minus.svg?raw
2
+ var e = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"/></svg>";
3
+ //#endregion
4
+ export { e as t };
@@ -0,0 +1,267 @@
1
+ import { i as e, r as t } from "./preact.module-BBM36DnO.js";
2
+ import { c as n, i as r, r as i, t as a } from "./hooks.module-CG3gN83z.js";
3
+ import { E as o, _ as s, a as c, c as l, i as u, m as d, n as f, o as p, p as m, r as h, t as g, u as _, v, y } from "./request-trail-DrhdpWiH.js";
4
+ import { t as b } from "./jsxRuntime.module-F6UFnpT-.js";
5
+ import { n as x } from "./popup-C35Isk7p.js";
6
+ import { p as S, t as C } from "./controls-B_6NJarZ.js";
7
+ import { HistoryControls as w } from "../history-controls.js";
8
+ import { n as T } from "./render-m5eMMwFR.js";
9
+ //#region src/ai/transcript.ts
10
+ var E = (e) => new TextEncoder().encode(JSON.stringify(e)).byteLength, D = (e) => {
11
+ if (!e) return "";
12
+ if (E(e) <= 16384) return e;
13
+ let t = 0, n = Math.min(e.length, 16384);
14
+ for (; t < n;) {
15
+ let r = Math.ceil((t + n) / 2);
16
+ E(e.slice(0, r) + "…") <= 16384 ? t = r : n = r - 1;
17
+ }
18
+ return /[\uD800-\uDBFF]/.test(e.charAt(t - 1)) && t--, e.slice(0, t) + "…";
19
+ }, O = class {
20
+ messages = [];
21
+ epoch = 0;
22
+ initialized = !1;
23
+ requestId;
24
+ ignoredRequest;
25
+ currentId;
26
+ active = !1;
27
+ lastPhase;
28
+ key = "";
29
+ sequence = 0;
30
+ update(e) {
31
+ if (this.initialized ||= (this.epoch = e.chatKey ?? 0, !0), (e.chatKey ?? 0) !== this.epoch) {
32
+ this.epoch = e.chatKey ?? 0, this.messages = [], this.requestId = void 0, this.ignoredRequest = e.request?.id, this.currentId = void 0, this.active = !1, this.key = "", this.lastPhase = void 0;
33
+ return;
34
+ }
35
+ if (e.phase === "idle" || e.request?.id === this.ignoredRequest && this.ignoredRequest !== void 0) return;
36
+ let t = e.request, n = !!t && t.id !== this.requestId, r = e.phase === "completed" && e.result && E(e.result) <= 16384 ? structuredClone(e.result) : void 0, i = {
37
+ text: D(e.message),
38
+ phase: e.phase,
39
+ details: e.phase === "completed" && !r && e.resultDetails ? D(e.resultDetails) : void 0,
40
+ pending: !!e.pendingAction,
41
+ result: r
42
+ }, a = JSON.stringify([t?.id, i]);
43
+ if (!n && a === this.key || !n && !i.text && !i.pending) return;
44
+ let o = this.messages.find((e) => e.id === this.currentId), s = this.lastPhase === "completed" && e.phase === "understanding" && o?.from === "assistant", c = o?.from === "system" && o.phase === "completed" && (e.phase === "applying" || e.phase === "completed");
45
+ if (n) {
46
+ this.requestId = t.id, this.ignoredRequest = void 0;
47
+ let e = "turn:" + ++this.sequence;
48
+ this.currentId = e + ":assistant", this.messages = [
49
+ ...this.messages,
50
+ {
51
+ id: e + ":user",
52
+ group: e,
53
+ from: "user",
54
+ text: D(t.prompt)
55
+ },
56
+ {
57
+ id: this.currentId,
58
+ group: e,
59
+ from: "assistant",
60
+ ...i
61
+ }
62
+ ];
63
+ } else if ((this.active || s || c) && o) this.messages = this.messages.map((e) => e.id === this.currentId ? {
64
+ ...e,
65
+ ...i
66
+ } : e);
67
+ else {
68
+ let e = "system:" + ++this.sequence;
69
+ this.currentId = e, this.messages = [...this.messages, {
70
+ id: e,
71
+ group: e,
72
+ from: "system",
73
+ ...i
74
+ }];
75
+ }
76
+ for (this.active = e.phase === "understanding" || e.phase === "applying" || !!e.pendingAction, this.lastPhase = e.phase, this.key = a; this.messages.length > 50 || E(this.messages) > 65536;) {
77
+ let e = this.messages[0].group;
78
+ this.messages = this.messages.filter((t) => t.group !== e);
79
+ }
80
+ }
81
+ clear() {
82
+ this.messages = [], this.requestId = void 0, this.currentId = void 0, this.active = !1, this.key = "";
83
+ }
84
+ };
85
+ //#endregion
86
+ //#region src/ai/mount.tsx
87
+ function k(E, D) {
88
+ let k = (e) => o(e, D.translations), A = !1, j = D.suggestions ?? [], M, N = v(D.promptHistory?.items ?? []), P = new O(), F = D.mode === "chat", I = [], L = 0, R = !1, z = "";
89
+ function B(e) {
90
+ if (e.phase === "idle" || !e.message || e.pendingAction) return;
91
+ let t = e.phase === "understanding" || e.phase === "applying", n = JSON.stringify([
92
+ e.phase,
93
+ e.message,
94
+ e.matchedRows,
95
+ e.resultDetails
96
+ ]);
97
+ if (n === z) return;
98
+ let r = I.at(-1), i = {
99
+ id: R && r ? r.id : String(++L),
100
+ title: e.message,
101
+ busy: t,
102
+ tone: e.phase === "error" ? "danger" : e.phase === "completed" ? "success" : "neutral",
103
+ description: e.phase === "completed" && e.matchedRows !== void 0 ? D.countLabel?.(e.matchedRows) ?? k("{count} matching rows").replace("{count}", e.matchedRows.toLocaleString()) : void 0,
104
+ detail: e.phase === "completed" && !e.result ? e.resultDetails : void 0
105
+ };
106
+ I = [...R && r ? I.slice(0, -1) : I, i].slice(-50), R = t, z = n;
107
+ }
108
+ function V({ state: t }) {
109
+ let [o, O] = r(""), [A, M] = r(N), [L, R] = r(!1), z = a();
110
+ i(() => {
111
+ O(""), z.current = void 0;
112
+ }, [t.chatKey]);
113
+ let B = t.phase === "understanding" || t.phase === "applying", V = !!t.pendingAction, U = t.steps ?? [], W = D.showRequestHistory ?? !F, G = a(!1);
114
+ n(() => {
115
+ G.current && !V && !B && E.querySelector("textarea")?.focus(), G.current = V || B && G.current;
116
+ }, [V, B]), n(() => {
117
+ if (B || V || t.phase === "idle" || z.current === void 0) return;
118
+ let e = z.current;
119
+ z.current = void 0, t.phase === "completed" && O((t) => t.trim() === e ? "" : t);
120
+ }, [t]);
121
+ let K = (e) => {
122
+ z.current = e.trim(), D.promptHistory && (N = v([...N, e]), M(N), D.promptHistory.onChange?.([...N])), D.onSubmit(e);
123
+ }, ee = /* @__PURE__ */ b(s, {
124
+ maxVisible: D.maxVisibleSuggestions,
125
+ items: t.choices?.length ? t.choices : t.suggestions?.length ? t.suggestions : j,
126
+ onSelect: (e) => {
127
+ B || V || (O(e), K(e));
128
+ },
129
+ disabled: B || V
130
+ }), q = (!!o || !!t.request || !!t.message || U.length > 0 || P.messages.length > 0 || I.length > 0) && (D.showNewConversation ?? D.showClearChat ?? !0) && D.onClearChat && /* @__PURE__ */ b(S, {
131
+ label: k("New conversation"),
132
+ icon: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"/></svg>",
133
+ size: "compact",
134
+ disabled: B || V,
135
+ onClick: () => {
136
+ D.onClearChat?.(), E.querySelector("textarea")?.focus();
137
+ }
138
+ }), J = F && t.canClearChart && D.onClearChart && /* @__PURE__ */ b(C, {
139
+ size: "compact",
140
+ variant: "ghost",
141
+ disabled: B || V || t.viewSwitching,
142
+ onClick: () => {
143
+ D.onClearChart?.(), E.querySelector("textarea")?.focus();
144
+ },
145
+ children: k("Clear chart")
146
+ }), Y = /* @__PURE__ */ b(e, { children: [J, q] }), X = /* @__PURE__ */ b(h, {
147
+ label: D.prompt?.label ?? "Ask AI to change this view",
148
+ ...D.prompt,
149
+ value: o,
150
+ onValueChange: O,
151
+ onSubmit: K,
152
+ onStop: D.onStop,
153
+ busy: B,
154
+ promptHistory: D.promptHistory ? A : void 0,
155
+ disabled: V,
156
+ hint: W && U.length ? "" : D.prompt?.hint,
157
+ footer: ee,
158
+ actions: W ? /* @__PURE__ */ b(g, {
159
+ ...D.trail,
160
+ items: U,
161
+ showClear: !1,
162
+ onRemove: (e) => D.onRemoveStep?.(e),
163
+ onEmpty: () => E.querySelector("textarea")?.focus(),
164
+ disabled: B || V,
165
+ removalsDisabled: !D.onRemoveStep || t.canEditSteps === !1,
166
+ changedMessage: !B && U.some((e) => e.removable !== !1) && t.canEditSteps === !1 ? D.trail?.changedMessage ?? "The view changed manually. Start a new request to continue." : void 0
167
+ }) : void 0
168
+ }), Z = t.pendingAction && /* @__PURE__ */ b(d, {
169
+ ...t.pendingAction,
170
+ disabled: B || !D.onApplyAction,
171
+ onApply: () => D.onApplyAction?.(),
172
+ onCancel: () => D.onCancelAction?.()
173
+ }), Q = /* @__PURE__ */ b("div", {
174
+ class: "rv-ai-result-actions",
175
+ children: (D.onUndoData || D.onRedoData) && /* @__PURE__ */ b(w, {
176
+ onUndo: D.onUndoData,
177
+ onRedo: D.onRedoData,
178
+ canUndo: !B && !V && !!t.canUndoData,
179
+ canRedo: !B && !V && !!t.canRedoData,
180
+ undoLabel: k("Undo data change"),
181
+ redoLabel: k("Redo data change"),
182
+ label: k("Data history")
183
+ })
184
+ }), $ = D.showHistoryControls === !1 || !D.onUndoData && !D.onRedoData ? null : D.controlsMountTo ? x(Q, D.controlsMountTo) : Q;
185
+ return /* @__PURE__ */ b(m, {
186
+ layout: D.layout,
187
+ translations: D.translations,
188
+ label: D.label,
189
+ busy: B,
190
+ footer: D.footer,
191
+ children: F ? /* @__PURE__ */ b(f, {
192
+ className: "rv-ai-mounted-chat",
193
+ children: [
194
+ (J || q) && /* @__PURE__ */ b("div", {
195
+ class: "rv-ai-chat-actions",
196
+ children: Y
197
+ }),
198
+ /* @__PURE__ */ b(u, {
199
+ busy: B,
200
+ children: [!P.messages.length && D.emptyState && /* @__PURE__ */ b(c, { ...D.emptyState }), P.messages.map((e) => /* @__PURE__ */ b(p, {
201
+ from: e.from,
202
+ isStreaming: e.phase === "understanding" || e.phase === "applying",
203
+ children: [
204
+ e.from === "user" ? /* @__PURE__ */ b(l, { children: e.text }) : e.phase === "preview" && e.pending && e.id === P.messages.at(-1)?.id && t.pendingAction ? null : /* @__PURE__ */ b(l, { children: e.phase === "understanding" || e.phase === "applying" || e.phase === "error" || e.phase === "cancelled" ? /* @__PURE__ */ b(_, {
205
+ title: e.text,
206
+ status: e.phase === "understanding" || e.phase === "applying" ? "running" : e.phase === "error" ? "error" : "cancelled"
207
+ }) : e.text }),
208
+ e.result ? /* @__PURE__ */ b(y, {
209
+ result: e.result,
210
+ renderTable: D.renderTable
211
+ }) : e.details && /* @__PURE__ */ b("pre", {
212
+ class: "rv-ai-chat-result",
213
+ children: e.details
214
+ }),
215
+ e.id === P.messages.at(-1)?.id && e.pending && Z
216
+ ]
217
+ }, e.id))]
218
+ }),
219
+ X,
220
+ $
221
+ ]
222
+ }) : /* @__PURE__ */ b(e, { children: [
223
+ (J || q) && /* @__PURE__ */ b("div", {
224
+ class: "rv-ai-chat-actions",
225
+ children: Y
226
+ }),
227
+ X,
228
+ Z,
229
+ t.phase === "completed" && t.result && /* @__PURE__ */ b(y, {
230
+ result: t.result,
231
+ renderTable: D.renderTable
232
+ }),
233
+ !!I.length && /* @__PURE__ */ b(T, {
234
+ className: "rv-ai-activity",
235
+ title: k("Activity"),
236
+ compact: !0,
237
+ autoDismissMs: D.activityDurationMs,
238
+ onDismissItem: (e) => {
239
+ I = I.filter((t) => t.id !== e), H();
240
+ },
241
+ collapsed: L,
242
+ onCollapsedChange: R,
243
+ collapseLabel: k("Collapse activity"),
244
+ expandLabel: k("Expand activity"),
245
+ items: I
246
+ }),
247
+ $
248
+ ] })
249
+ });
250
+ }
251
+ let H = () => {
252
+ !A && M && t(/* @__PURE__ */ b(V, { state: M }), E);
253
+ };
254
+ return {
255
+ update(e) {
256
+ M && M.chatKey !== e.chatKey && (I = [], z = "", R = !1), F ? P.update(e) : B(e), M = e, H();
257
+ },
258
+ setSuggestions(e) {
259
+ j = [...e], H();
260
+ },
261
+ destroy() {
262
+ A || (A = !0, N = [], P.clear(), t(null, E));
263
+ }
264
+ };
265
+ }
266
+ //#endregion
267
+ export { k as t };
@@ -3,7 +3,7 @@ import { t } from "./jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createPreactElement as n } from "../preact-mount.js";
4
4
  import { controlClassName as r } from "../control-attributes.js";
5
5
  import { renderControl as i } from "../control-presentation.js";
6
- //#region src/search-input/native.view.tsx
6
+ //#region src/search-input/native.tsx
7
7
  function a(e, t) {
8
8
  let { shortcut: n, hideIcon: a, inputAttributes: o = {} } = t;
9
9
  return e("div", {