@revolist/ui 4.0.6-rc → 4.0.6

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 (320) hide show
  1. package/MIGRATION.md +7 -7
  2. package/OWNERSHIP.md +33 -33
  3. package/README.md +65 -410
  4. package/_button.scss +6 -2
  5. package/_chunks/{calendar-QWDyYzdo.js → calendar-BQYQLu8Q.js} +5 -5
  6. package/_chunks/{cell-visuals-E-2oEKHg.js → cell-visuals-r6DOOhGh.js} +7 -7
  7. package/_chunks/{chart-frame-hcOlnQ1K.js → chart-frame-GprenwEg.js} +4 -4
  8. package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
  9. package/_chunks/{choice-chips-A6WR-WJe.js → choice-chips-C5OxD0GV.js} +3 -3
  10. package/_chunks/{color-palette-DMJUChWC.js → color-palette-7siNch__.js} +3 -3
  11. package/_chunks/{color-picker-BK4W1nd6.js → color-picker-Cfc9eqZb.js} +4 -4
  12. package/_chunks/{component-CMkF17YZ.js → component-C3k_8uIq.js} +44 -45
  13. package/_chunks/{component-metadata-BKd7U8OW.js → component-metadata-DlVkpW3h.js} +1 -1
  14. package/_chunks/{configurator-actions-By8WSL2m.js → configurator-actions-vRnI54mO.js} +3 -3
  15. package/_chunks/{control-mlH7l0Uq.js → control-BRfF5DWQ.js} +3 -3
  16. package/_chunks/{controller-hRBm_Lfz.js → controller-BbiQuRt-.js} +5 -5
  17. package/_chunks/{controls-FUU-MUKC.js → controls-B3EgM_DS.js} +137 -102
  18. package/_chunks/{date-control-Dup_P3w5.js → date-control-87dcA5br.js} +5 -5
  19. package/_chunks/{date-time-9z6pAG5T.js → date-time-CfiFYodx.js} +20 -20
  20. package/_chunks/{delete-button-CW9vjLnk.js → delete-button-jneO24wa.js} +1 -1
  21. package/_chunks/{dialog.parts-Bi7YbXqS.js → dialog.parts-NqEEVc9P.js} +4 -4
  22. package/_chunks/{duration-D7oRjsmP.js → duration-BGZ_qJ99.js} +6 -6
  23. package/_chunks/{editor-commit-Bq3wSgvr.js → editor-commit-Dyo-FMgD.js} +1 -1
  24. package/_chunks/{editor-popup-ByU7qiub.js → editor-popup-NNP9Fh9U.js} +4 -4
  25. package/_chunks/field-configurator-DPulsY3l.js +288 -0
  26. package/_chunks/{field-context-D57PnBbH.js → field-context-C4_WrO2z.js} +1 -1
  27. package/_chunks/{framework-mount-Bk4O_T7T.js → framework-mount-D4I8HpVp.js} +2 -2
  28. package/_chunks/{icon-toolbar-DSjOdwM7.js → icon-toolbar-BAAdEvr9.js} +2 -2
  29. package/_chunks/{icons-Ci5mADVc.js → icons-B4qN13Yj.js} +1 -1
  30. package/_chunks/{iso-B0YHBK7m.js → iso-CJQl2kmq.js} +1 -1
  31. package/_chunks/{model-mPO2tG2f.js → model-CFrBgRHm.js} +3 -3
  32. package/_chunks/mount-C8CnIW9k.js +267 -0
  33. package/_chunks/{native-Blr3byjO.js → native-CJm3eq3-.js} +1 -1
  34. package/_chunks/{native-control-pFMuHf3G.js → native-control-um1L1wgZ.js} +143 -138
  35. package/_chunks/{number-input-DqXV6vgP.js → number-input-CKiA4d1N.js} +4 -4
  36. package/_chunks/{picker-gEGTu1Ki.js → picker-igNshTRC.js} +5 -5
  37. package/_chunks/{popup-C35Isk7p.js → popup-DECYM9FI.js} +2 -2
  38. package/_chunks/{rating-choice-DbxdUJr-.js → rating-choice-CepVfGUq.js} +2 -2
  39. package/_chunks/{render-m5eMMwFR.js → render-bTk3curw.js} +2 -2
  40. package/_chunks/{reorder-list-B0_13Sja.js → reorder-list-B4w3aARt.js} +2 -2
  41. package/_chunks/{request-trail-CCSK6TJA.js → request-trail-B1zVRPEf.js} +151 -142
  42. package/_chunks/{rich-text-5rnc8lpI.js → rich-text-Ci4d6dHn.js} +11 -11
  43. package/_chunks/selection-list-tooltips-m00U3L6z.js +42 -0
  44. package/_chunks/{title-tooltip-Cw6LOZhb.js → title-tooltip-ncldbUwS.js} +2 -2
  45. package/_chunks/{tooltip-D4xkio5G.js → tooltip-h-Z8yFBY.js} +2 -2
  46. package/_chunks/{tooltip-owner-DjdvqKzz.js → tooltip-owner-BYho-vJl.js} +1 -1
  47. package/_chunks/{tooltip-session-B6X6x8G_.js → tooltip-session-CBtRMBPr.js} +3 -3
  48. package/_chunks/{tooltip-text-BXsUEmBH.js → tooltip-text-BN5WdGHn.js} +2 -2
  49. package/_chunks/{top-layer-popup-CNSDdfJV.js → top-layer-popup-CKJ7VJOF.js} +3 -3
  50. package/_dialog.scss +57 -22
  51. package/_form.scss +71 -21
  52. package/_legend.scss +25 -7
  53. package/_variables.scss +2 -1
  54. package/_view-switcher.scss +6 -0
  55. package/activity-message.d.ts +1 -1
  56. package/activity-message.js +1 -1
  57. package/ai/_chat.scss +7 -0
  58. package/ai/_style.scss +27 -20
  59. package/ai/components.d.ts +3 -1
  60. package/ai/index.js +2 -2
  61. package/ai/mount.d.ts +15 -7
  62. package/ai/request-trail.d.ts +9 -3
  63. package/ai/results/index.d.ts +1 -1
  64. package/ai/translations.d.ts +1 -1
  65. package/angular/angular.d.ts +1 -1
  66. package/angular/angular.js +13 -7
  67. package/assignee/assignee.scss +24 -6
  68. package/assignee/index.js +6 -6
  69. package/avatar/avatar.style.scss +23 -6
  70. package/avatar/index.d.ts +1 -1
  71. package/avatar/index.js +2 -2
  72. package/badge.d.ts +1 -1
  73. package/badge.js +1 -1
  74. package/badge.view.d.ts +1 -1
  75. package/brush-range/_brush-range.scss +55 -49
  76. package/brush-range/component.js +2 -2
  77. package/buttons/delete-button.js +1 -1
  78. package/buttons/delete-button.style.scss +6 -2
  79. package/buttons/remove-button.js +2 -2
  80. package/buttons/svg-button.js +3 -3
  81. package/calendar/_calendar.scss +19 -23
  82. package/calendar/calendar.js +1 -1
  83. package/calendar/day.js +2 -2
  84. package/calendar/header.js +2 -3
  85. package/calendar/index.js +3 -3
  86. package/calendar/model.js +1 -1
  87. package/calendar/month-grid.js +2 -2
  88. package/calendar/translations.js +1 -1
  89. package/calendar/year-grid.js +2 -2
  90. package/cell-input.js +1 -1
  91. package/cell-input.scss +3 -7
  92. package/cell-visuals/badge.style.scss +6 -3
  93. package/cell-visuals/bar-chart.style.scss +2 -1
  94. package/cell-visuals/column-type.style.css +12 -0
  95. package/cell-visuals/index.js +1 -1
  96. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  97. package/cell-visuals/progress-line.style.scss +1 -4
  98. package/cell-visuals/sparkline.style.scss +2 -1
  99. package/cell-visuals/timeline.style.css +4 -2
  100. package/checkbox/checkbox.scss +5 -2
  101. package/checkbox/index.js +1 -1
  102. package/choice-chips/index.js +1 -1
  103. package/color-palette/built-in-palettes.js +1 -1
  104. package/color-palette/chart-palettes.js +1 -1
  105. package/color-palette/color-palette.js +1 -1
  106. package/color-palette/color-palette.style.scss +88 -25
  107. package/color-palette/color-picker.constants.js +1 -1
  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 +2 -2
  112. package/color-palette/gantt-palettes.js +1 -1
  113. package/color-palette/palette.js +1 -1
  114. package/color-palette/pivot-palettes.js +1 -1
  115. package/color-palette/platform-palettes.js +1 -1
  116. package/color-palette/pro-palettes.js +1 -1
  117. package/color-palette/scheduler-palettes.js +1 -1
  118. package/configurator-actions.d.ts +6 -6
  119. package/configurator-actions.js +1 -1
  120. package/configurator-aggregation-list.d.ts +1 -1
  121. package/configurator-aggregation-list.js +19 -17
  122. package/configurator-drop-zone.d.ts +2 -1
  123. package/configurator-drop-zone.js +34 -32
  124. package/configurator-focus.js +1 -1
  125. package/configurator-sections.d.ts +3 -3
  126. package/configurator-sections.js +1 -1
  127. package/control-attributes.js +1 -1
  128. package/control-presentation.js +2 -2
  129. package/controls.d.ts +11 -0
  130. package/controls.js +4 -4
  131. package/core/anchored-popover.js +1 -1
  132. package/core/control-id.js +1 -1
  133. package/core/editor-popup.js +1 -1
  134. package/core/motion.js +1 -1
  135. package/{_chunks/popover-controller-D-AvKQ7B.js → core/popover-controller.js} +8 -8
  136. package/core/selection-list-tooltips.d.ts +2 -0
  137. package/core/tooltip.d.ts +1 -1
  138. package/core/top-layer-popup.d.ts +1 -1
  139. package/core/top-layer-popup.js +1 -1
  140. package/date-time/date-control.d.ts +1 -1
  141. package/date-time/field.d.ts +1 -0
  142. package/date-time/index.js +1 -1
  143. package/date-time/style.scss +192 -46
  144. package/date-time/time-selection.d.ts +1 -1
  145. package/dialog/dialog.dom.js +3 -3
  146. package/dialog/dialog.drag.js +1 -1
  147. package/dialog/dialog.parts.js +1 -1
  148. package/dialog/dialog.preact.js +1 -1
  149. package/distribution-chart/_distribution-chart.scss +106 -28
  150. package/distribution-chart/area-chart.js +2 -2
  151. package/distribution-chart/bar-chart.js +2 -2
  152. package/distribution-chart/chart-frame.d.ts +1 -1
  153. package/distribution-chart/index.js +1 -1
  154. package/distribution-chart/line-chart.js +2 -2
  155. package/dropdown/content.js +1 -1
  156. package/dropdown/control.js +1 -1
  157. package/dropdown/dropdown.service.js +1 -1
  158. package/dropdown/dropdown.types.d.ts +1 -1
  159. package/dropdown/editor-dropdown.style.scss +14 -9
  160. package/dropdown/index.js +2 -2
  161. package/dropdown/lookup-field.js +3 -3
  162. package/dropdown/popup.js +1 -1
  163. package/duration/index.js +1 -1
  164. package/editor-actions.js +2 -2
  165. package/editor-layout/index.d.ts +4 -4
  166. package/editor-layout/index.js +40 -35
  167. package/editor-layout/style.scss +82 -18
  168. package/favicon.svg +9 -0
  169. package/field-configurator.d.ts +14 -3
  170. package/field-configurator.js +1 -1
  171. package/field-reorder.hook.js +1 -1
  172. package/field-reorder.js +1 -1
  173. package/filter/filters/slider/_single-slider.scss +57 -38
  174. package/filter/filters/slider/_slider.scss +35 -10
  175. package/filter/filters/slider/component.js +1 -1
  176. package/filter/filters/slider/control.js +1 -1
  177. package/filter/filters/slider/inputs.js +1 -1
  178. package/filter/filters/slider/logic.js +1 -1
  179. package/filter/filters/slider/preact.js +1 -1
  180. package/filter/filters/slider/runtime.js +3 -3
  181. package/filter/filters/slider/single.js +2 -2
  182. package/filter-badge.js +2 -2
  183. package/filter-controls.js +2 -2
  184. package/form-controls/index.js +3 -3
  185. package/form-controls/presentation.d.ts +1 -1
  186. package/form-controls/presentation.js +2 -2
  187. package/formatting/index.js +7 -7
  188. package/formatting/styles.scss +13 -11
  189. package/framework.js +76 -77
  190. package/history-controls.js +1 -1
  191. package/html-controls.js +1 -1
  192. package/icon-toolbar.d.ts +1 -1
  193. package/icon-toolbar.js +1 -1
  194. package/icons/icon.d.ts +1 -1
  195. package/icons/icon.js +1 -1
  196. package/legend.d.ts +1 -1
  197. package/legend.js +1 -1
  198. package/masked-input/index.js +4 -4
  199. package/native-control.js +1 -1
  200. package/native-styles.css +1 -1
  201. package/native-styles.scss +6 -2
  202. package/native.d.ts +3 -3
  203. package/native.js +16 -16
  204. package/number-input/index.d.ts +1 -1
  205. package/number-input/index.js +1 -1
  206. package/package.json +49 -1
  207. package/pagination.js +2 -2
  208. package/pdf-viewer/controller.js +1 -1
  209. package/pdf-viewer/header.d.ts +1 -1
  210. package/pdf-viewer/index.d.ts +2 -2
  211. package/pdf-viewer/index.js +3 -3
  212. package/pdf-viewer/search-bar.d.ts +1 -1
  213. package/pdf-viewer/status.d.ts +1 -1
  214. package/pdf-viewer/style.scss +203 -42
  215. package/preact-mount.js +1 -1
  216. package/preact.d.ts +5 -4
  217. package/preact.js +105 -67
  218. package/progress/_bar.scss +9 -3
  219. package/progress/_circular.scss +2 -1
  220. package/progress/bar.js +1 -1
  221. package/progress/circular.js +1 -1
  222. package/progress/range.js +1 -1
  223. package/rating-choice.js +1 -1
  224. package/react-adapter.d.ts +4 -2
  225. package/react-control.js +1 -1
  226. package/react.d.ts +2 -2
  227. package/react.js +30 -31
  228. package/reorder-list.d.ts +1 -1
  229. package/reorder-list.js +1 -1
  230. package/reorder-list.scss +59 -17
  231. package/resource-picker/resource-picker-avatar.js +1 -1
  232. package/resource-picker/resource-picker-option.js +1 -1
  233. package/resource-picker/resource-picker-popup.js +2 -2
  234. package/resource-picker/resource-picker.js +74 -72
  235. package/resource-picker/resource-picker.scss +62 -34
  236. package/resource-picker/resource-picker.utils.js +1 -1
  237. package/rich-text/index.js +1 -1
  238. package/rich-text/style.scss +203 -49
  239. package/rich-text/toolbar.d.ts +1 -1
  240. package/robots.txt +4 -0
  241. package/search-input/index.js +2 -2
  242. package/segmented-switch/index.js +1 -1
  243. package/select.js +1 -1
  244. package/selection-list.d.ts +1 -0
  245. package/selection-list.js +3 -1
  246. package/status-feedback/badge.js +2 -2
  247. package/status-feedback/exit-snapshot.js +2 -2
  248. package/status-feedback/header.js +2 -2
  249. package/status-feedback/icons.js +1 -1
  250. package/status-feedback/index.js +1 -1
  251. package/status-feedback/item.js +2 -2
  252. package/status-feedback/motion.js +1 -1
  253. package/status-feedback/placement.js +1 -1
  254. package/status-feedback/popover.js +2 -2
  255. package/status-feedback/render.js +1 -1
  256. package/status-feedback/status-feedback.scss +124 -35
  257. package/styles/_activity-message.scss +24 -7
  258. package/styles/_alert.scss +61 -14
  259. package/styles/_cell-editor-frame.scss +11 -0
  260. package/styles/_compositions.scss +399 -79
  261. package/styles/_control.scss +30 -8
  262. package/styles/_disclosure.scss +15 -5
  263. package/styles/_editor-counter.scss +16 -6
  264. package/styles/_editor-slider.scss +8 -2
  265. package/styles/_field-configurator.scss +192 -41
  266. package/styles/_fields-grid.scss +16 -4
  267. package/styles/_filter-controls.scss +10 -2
  268. package/styles/_icon-action.scss +48 -15
  269. package/styles/_loading.scss +12 -3
  270. package/styles/_motion.scss +32 -9
  271. package/styles/_primitives.scss +346 -96
  272. package/styles/_theme.scss +130 -86
  273. package/styles/_thresholds.scss +28 -25
  274. package/styles/_time-grid.scss +8 -3
  275. package/styles/_tokens.scss +6 -1
  276. package/styles/color-roles.js +1 -1
  277. package/styles/configurator-actions.scss +126 -26
  278. package/styles/pagination.css +114 -30
  279. package/styles/rating.css +8 -3
  280. package/styles.css +1 -1
  281. package/styles.scss +1 -3
  282. package/surfaces.d.ts +4 -2
  283. package/surfaces.js +8 -8
  284. package/svelte/UiComponent.svelte +44 -11
  285. package/svelte-control.js +1 -1
  286. package/svelte.d.ts +1 -1
  287. package/svelte.js +5 -5
  288. package/switch/index.js +2 -2
  289. package/time-grid.js +3 -3
  290. package/timeline-track/_style.scss +96 -24
  291. package/timeline-track/index.js +3 -3
  292. package/timeline-track/model.js +1 -1
  293. package/ui.css +1 -1
  294. package/view-switcher.d.ts +23 -0
  295. package/vue-badge.js +1 -1
  296. package/vue-control.js +1 -1
  297. package/vue-segmented-switch.js +1 -1
  298. package/vue.d.ts +3 -2
  299. package/vue.js +43 -44
  300. package/_chunks/badge.view-D30pMUfi.js +0 -14
  301. package/_chunks/chevron-right-sxHQMSkq.js +0 -4
  302. package/_chunks/field-configurator-BCINdXpU.js +0 -223
  303. package/_chunks/mount-Cw2zk58T.js +0 -266
  304. package/_shared/data-query/binding.d.ts +0 -30
  305. package/_shared/data-query/blocks.d.ts +0 -30
  306. package/_shared/data-query/commands.d.ts +0 -47
  307. package/_shared/data-query/contracts.d.ts +0 -106
  308. package/_shared/data-query/cursor-reader.d.ts +0 -25
  309. package/_shared/data-query/direct-binding.d.ts +0 -3
  310. package/_shared/data-query/index.d.ts +0 -23
  311. package/_shared/data-query/infinite-binding.d.ts +0 -18
  312. package/_shared/data-query/keys.d.ts +0 -9
  313. package/_shared/data-query/limiter.d.ts +0 -12
  314. package/_shared/data-query/load-options.d.ts +0 -25
  315. package/_shared/data-query/materialize.d.ts +0 -2
  316. package/_shared/data-query/policy.d.ts +0 -14
  317. package/_shared/data-query/provider-queries.d.ts +0 -22
  318. package/_shared/data-query/reader.d.ts +0 -23
  319. package/_shared/data-query/remote-load.d.ts +0 -7
  320. package/_shared/data-query/source.d.ts +0 -40
@@ -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-B1zVRPEf.js";
4
+ import { t as b } from "./jsxRuntime.module-F6UFnpT-.js";
5
+ import { n as x } from "./popup-DECYM9FI.js";
6
+ import { p as S, t as C } from "./controls-B3EgM_DS.js";
7
+ import { HistoryControls as w } from "../history-controls.js";
8
+ import { n as T } from "./render-bTk3curw.js";
9
+ //#region package/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 package/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.tsx
6
+ //#region package/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", {