@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
@@ -2,14 +2,14 @@ import { i as e } from "./preact.module-BBM36DnO.js";
2
2
  import { c as t, i as n, n as r, r as i, t as a } from "./hooks.module-CG3gN83z.js";
3
3
  import { t as o } from "./jsxRuntime.module-F6UFnpT-.js";
4
4
  import { createControlId as s } from "../core/control-id.js";
5
- import { n as c } from "./native-control-pFMuHf3G.js";
6
- import { t as l } from "./controls-FUU-MUKC.js";
5
+ import { n as c } from "./native-control-um1L1wgZ.js";
6
+ import { t as l } from "./controls-B3EgM_DS.js";
7
7
  import { SegmentedSwitch as u } from "../segmented-switch/index.js";
8
- import { n as d } from "./icon-toolbar-DSjOdwM7.js";
8
+ import { n as d } from "./icon-toolbar-BAAdEvr9.js";
9
9
  import { HighlightedTextInput as f } from "../filter-controls.js";
10
- import { n as p } from "./editor-commit-Bq3wSgvr.js";
10
+ import { n as p } from "./editor-commit-Dyo-FMgD.js";
11
11
  import { EditorActions as m } from "../editor-actions.js";
12
- //#region src/rich-text/syntax.tsx
12
+ //#region package/rich-text/syntax.tsx
13
13
  function h({ code: e }) {
14
14
  let t = [], n = /<!--[\s\S]*?(?:-->|$)|<\/?[A-Za-z][\w:-]*(?:[^"'<>]|"[^"]*"|'[^']*')*>?/g, r = 0;
15
15
  for (let i of e.matchAll(n)) {
@@ -34,7 +34,7 @@ function h({ code: e }) {
34
34
  });
35
35
  }
36
36
  //#endregion
37
- //#region src/rich-text/model.ts
37
+ //#region package/rich-text/model.ts
38
38
  var g = /* @__PURE__ */ new Set([
39
39
  "p",
40
40
  "br",
@@ -152,7 +152,7 @@ function C(e, t = document) {
152
152
  return n.appendChild(S(e, t)), n.textContent?.replace(/\u00a0/g, " ").trim() ? n.innerHTML : "";
153
153
  }
154
154
  //#endregion
155
- //#region src/rich-text/engine.ts
155
+ //#region package/rich-text/engine.ts
156
156
  var w = {
157
157
  formats: [],
158
158
  block: null,
@@ -540,7 +540,7 @@ function D(e, t, n, r = () => {}) {
540
540
  //#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/bold.svg?raw
541
541
  var O = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 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=\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"/></svg>", k = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 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=\"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"/></svg>", A = "<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=\"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"/></svg>", j = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 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=\"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"/></svg>", M = "<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 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"/></svg>", N = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 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=\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"/></svg>", P = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 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=\"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"/></svg>", F = "<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=\"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"/></svg>", I = "<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=\"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"/></svg>", L = "<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 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"/></svg>", R = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 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 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"/></svg>", z = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 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=\"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"/></svg>";
542
542
  //#endregion
543
- //#region src/rich-text/toolbar.tsx
543
+ //#region package/rich-text/toolbar.tsx
544
544
  function B({ engine: e, selection: t, text: n, showLink: r, onLink: s }) {
545
545
  let c = a(null), l = a(null), u = () => [...c.current?.querySelectorAll("[role=\"button\"]:not([aria-disabled=\"true\"])") ?? []], f = (e) => {
546
546
  l.current = e.getAttribute("aria-label");
@@ -636,7 +636,7 @@ function B({ engine: e, selection: t, text: n, showLink: r, onLink: s }) {
636
636
  });
637
637
  }
638
638
  //#endregion
639
- //#region src/rich-text/format-html.ts
639
+ //#region package/rich-text/format-html.ts
640
640
  function V(e, t = document) {
641
641
  if (!e) return "";
642
642
  let n = t.createElement("template");
@@ -678,7 +678,7 @@ function V(e, t = document) {
678
678
  return a([...n.content.childNodes], 0).join("\n");
679
679
  }
680
680
  //#endregion
681
- //#region src/rich-text/translations.ts
681
+ //#region package/rich-text/translations.ts
682
682
  var H = {
683
683
  keyboardHelp: "Shift+Enter for a line break. Alt+F10 for formatting; Esc returns to text.",
684
684
  codeHelp: "Code: Enter for a new line. Press Enter three times or ↓ at the end to continue outside.",
@@ -718,7 +718,7 @@ function W(e) {
718
718
  return e.length <= 5e4 && (U.size >= 100 && U.delete(U.keys().next().value), U.set(e, r)), r;
719
719
  }
720
720
  //#endregion
721
- //#region src/rich-text/index.tsx
721
+ //#region package/rich-text/index.tsx
722
722
  function G(i) {
723
723
  let [d] = n(() => s("rv-rich-text-help")), g = a(i.value), _ = {
724
724
  ...H,
@@ -0,0 +1,42 @@
1
+ import { o as e, t } from "./hooks.module-CG3gN83z.js";
2
+ import { releasePreactElement as n } from "../preact-mount.js";
3
+ import { t as r } from "./tooltip-session-CBtRMBPr.js";
4
+ import { createTooltipElement as i } from "../core/popover-controller.js";
5
+ //#region package/core/selection-list-tooltips.ts
6
+ function a(a = "[role=\"option\"]") {
7
+ let o = t(void 0);
8
+ return e((e) => {
9
+ if (o.current?.(), o.current = void 0, !e) return;
10
+ let t = new r(), s = i(e.ownerDocument, "rv-tooltip");
11
+ t.setSurface(s);
12
+ let c, l = (t) => {
13
+ let n = t?.closest?.(a);
14
+ return n && e.contains(n) ? n : void 0;
15
+ }, u = () => {
16
+ c = void 0, t.hide();
17
+ }, d = (e) => {
18
+ if (!e) {
19
+ u();
20
+ return;
21
+ }
22
+ let n = [e, ...e.querySelectorAll("*")].filter((e) => e.textContent?.trim() && e.scrollWidth > e.clientWidth), r = n.filter((e) => !n.some((t) => t !== e && e.contains(t))).map((e) => e.textContent.trim()).join("\n");
23
+ r ? c === e && s.textContent === r && t.isOpen || (u(), c = e, s.textContent = r, t.show(e)) : u();
24
+ }, f = (e) => d(l(e.target)), p = (e) => {
25
+ l(e.relatedTarget) !== c && u();
26
+ }, m = (t) => {
27
+ if (![
28
+ "ArrowUp",
29
+ "ArrowDown",
30
+ "Home",
31
+ "End"
32
+ ].includes(t.key)) return;
33
+ let n = (e.hasAttribute("aria-activedescendant") ? e : e.querySelector("[aria-activedescendant]"))?.getAttribute("aria-activedescendant");
34
+ n && d(l(e.ownerDocument.getElementById(n)));
35
+ };
36
+ e.addEventListener("pointerover", f, !0), e.addEventListener("pointerout", p, !0), e.addEventListener("focusin", f, !0), e.addEventListener("focusout", p, !0), e.addEventListener("pointerdown", u, !0), e.addEventListener("keyup", m), o.current = () => {
37
+ t.destroy(), n(s), e.removeEventListener("pointerover", f, !0), e.removeEventListener("pointerout", p, !0), e.removeEventListener("focusin", f, !0), e.removeEventListener("focusout", p, !0), e.removeEventListener("pointerdown", u, !0), e.removeEventListener("keyup", m);
38
+ };
39
+ }, [a]);
40
+ }
41
+ //#endregion
42
+ export { a as t };
@@ -1,6 +1,6 @@
1
1
  import { r as e, t } from "./hooks.module-CG3gN83z.js";
2
- import { n } from "./popover-controller-D-AvKQ7B.js";
3
- //#region src/core/title-tooltip.ts
2
+ import { TooltipController as n } from "../core/popover-controller.js";
3
+ //#region package/core/title-tooltip.ts
4
4
  function r(r, i) {
5
5
  let a = t(null), o = t(i);
6
6
  return o.current = i, e(() => {
@@ -1,8 +1,8 @@
1
1
  import { i as e, o as t, r as n } from "./hooks.module-CG3gN83z.js";
2
2
  import { t as r } from "./jsxRuntime.module-F6UFnpT-.js";
3
- import { t as i } from "./tooltip-session-B6X6x8G_.js";
3
+ import { t as i } from "./tooltip-session-CBtRMBPr.js";
4
4
  import { createControlId as a } from "../core/control-id.js";
5
- //#region src/core/tooltip.tsx
5
+ //#region package/core/tooltip.tsx
6
6
  function o(o, s = !0, c) {
7
7
  let [l] = e(() => a("rv-format-control-tooltip")), [u] = e(() => new i());
8
8
  u.delay = c?.delay ?? 0;
@@ -1,4 +1,4 @@
1
- //#region ../chart-utils/src/tooltip-owner.ts
1
+ //#region internal/chart-utils/src/tooltip-owner.ts
2
2
  var e = Symbol.for("@revolist/tooltip-owner");
3
3
  function t(t, n, r) {
4
4
  let i = t, a = i[e];
@@ -1,6 +1,6 @@
1
- import { c as e, o as t, r as n, t as r } from "./top-layer-popup-CNSDdfJV.js";
2
- import { n as i, t as a } from "./tooltip-owner-DjdvqKzz.js";
3
- //#region src/core/tooltip-session.ts
1
+ import { c as e, o as t, r as n, t as r } from "./top-layer-popup-CKJ7VJOF.js";
2
+ import { n as i, t as a } from "./tooltip-owner-BYho-vJl.js";
3
+ //#region package/core/tooltip-session.ts
4
4
  var o = class {
5
5
  anchor;
6
6
  surface;
@@ -1,6 +1,6 @@
1
1
  import { c as e } from "./preact.module-BBM36DnO.js";
2
- import { t } from "./title-tooltip-Cw6LOZhb.js";
3
- //#region src/core/tooltip-text.tsx
2
+ import { t } from "./title-tooltip-ncldbUwS.js";
3
+ //#region package/core/tooltip-text.tsx
4
4
  function n({ as: n = "span", title: r, children: i, ...a }) {
5
5
  let o = t(r);
6
6
  return e(n, {
@@ -1,7 +1,7 @@
1
1
  import { calculateAnchoredPopoverPosition as e } from "../core/anchored-popover.js";
2
2
  import { c as t } from "./preact.module-BBM36DnO.js";
3
3
  import { createPreactElement as n } from "../preact-mount.js";
4
- //#region src/core/tooltip-surface.ts
4
+ //#region package/core/tooltip-surface.ts
5
5
  var r = "\n.rv-tooltip.rv-tooltip {\n box-sizing: border-box;\n position: fixed;\n z-index: 100000;\n margin: 0;\n inset: auto;\n transform: none;\n opacity: 1;\n visibility: visible;\n padding: 6px 10px;\n border: 0;\n border-radius: 6px;\n background: var(--rv-tooltip-bg, #191919);\n color: var(--rv-tooltip-fg, #fff);\n box-shadow: 0 4px 14px var(--rv-ui-shadow, rgb(0 0 0 / 18%));\n font: 12px/1.4 var(--rv-ui-font-family, Inter, ui-sans-serif, system-ui, sans-serif);\n font-weight: 400;\n text-align: start;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n max-width: min(360px, calc(100vw - 16px));\n max-height: calc(100dvh - 16px);\n overflow: auto;\n pointer-events: none;\n}\n.rv-tooltip[hidden], .rv-tooltip[data-visible=\"false\"] { display: none; }\n.rv-tooltip[data-overflow] { pointer-events: auto; }\n@media (forced-colors: active) {\n .rv-tooltip.rv-tooltip { color: CanvasText; background: Canvas; border: 1px solid CanvasText; }\n}\n";
6
6
  function i(e) {
7
7
  if (e.querySelector("style[data-rv-tooltip-styles]")) return;
@@ -21,7 +21,7 @@ function o(t, n, r) {
21
21
  } : i;
22
22
  }
23
23
  //#endregion
24
- //#region src/core/popup-ownership.ts
24
+ //#region package/core/popup-ownership.ts
25
25
  function s(e, t) {
26
26
  if (!e || !t) return !1;
27
27
  let n = /* @__PURE__ */ new Set(), r = (e) => !n.has(e) && (n.add(e), e.contains(t) ? !0 : [...e.querySelectorAll("[aria-controls]")].some((t) => (t.getAttribute("aria-controls") ?? "").split(/\s+/).some((t) => {
@@ -31,7 +31,7 @@ function s(e, t) {
31
31
  return r(e);
32
32
  }
33
33
  //#endregion
34
- //#region src/core/top-layer-popup.ts
34
+ //#region package/core/top-layer-popup.ts
35
35
  var c = /* @__PURE__ */ new WeakMap();
36
36
  function l(e, t = "flex") {
37
37
  if (c.has(e) || c.set(e, e.getAttribute("data-rv-ui-surface")), e.setAttribute("data-rv-ui-surface", ""), e.style.display = t, typeof e.showPopover == "function") {
package/_dialog.scss CHANGED
@@ -22,8 +22,13 @@
22
22
  color: var(--rv-dialog-color, var(--rv-ui-text));
23
23
  font: var(
24
24
  --rv-dialog-font,
25
- 13px/1.45 Inter, ui-sans-serif, system-ui, -apple-system,
26
- BlinkMacSystemFont, "Segoe UI", sans-serif
25
+ 13px/1.45 Inter,
26
+ ui-sans-serif,
27
+ system-ui,
28
+ -apple-system,
29
+ BlinkMacSystemFont,
30
+ 'Segoe UI',
31
+ sans-serif
27
32
  );
28
33
  }
29
34
 
@@ -32,7 +37,7 @@
32
37
  .rv-dialog-overlay,
33
38
  .rv-dialog[open]::backdrop {
34
39
  animation: rv-ui-surface-in var(--rv-ui-motion-enter, 180ms)
35
- var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
40
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1));
36
41
  }
37
42
 
38
43
  .rv-dialog:not([open]) {
@@ -57,8 +62,13 @@
57
62
  color: var(--rv-dialog-color, var(--rv-ui-text));
58
63
  font: var(
59
64
  --rv-dialog-font,
60
- 13px/1.45 Inter, ui-sans-serif, system-ui, -apple-system,
61
- BlinkMacSystemFont, "Segoe UI", sans-serif
65
+ 13px/1.45 Inter,
66
+ ui-sans-serif,
67
+ system-ui,
68
+ -apple-system,
69
+ BlinkMacSystemFont,
70
+ 'Segoe UI',
71
+ sans-serif
62
72
  );
63
73
  }
64
74
 
@@ -104,8 +114,7 @@
104
114
  // Native dialogs must retain viewport positioning when dragging is enabled.
105
115
  .rv-dialog.rv-dialog__draggable {
106
116
  position: fixed;
107
- inset:
108
- var(--rv-dialog-translate-y, 0px)
117
+ inset: var(--rv-dialog-translate-y, 0px)
109
118
  calc(0px - var(--rv-dialog-translate-x, 0px))
110
119
  calc(0px - var(--rv-dialog-translate-y, 0px))
111
120
  var(--rv-dialog-translate-x, 0px);
@@ -167,8 +176,10 @@
167
176
  color: var(--rv-ui-btn-outline-fg, inherit);
168
177
  cursor: pointer;
169
178
  transition:
170
- background-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out),
171
- border-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out),
179
+ background-color var(--rv-ui-motion-fast, 120ms)
180
+ var(--rv-ui-motion-ease, ease-out),
181
+ border-color var(--rv-ui-motion-fast, 120ms)
182
+ var(--rv-ui-motion-ease, ease-out),
172
183
  color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out);
173
184
  }
174
185
 
@@ -195,7 +206,8 @@
195
206
  .rv-dialog__body {
196
207
  min-height: 0;
197
208
  overflow: auto;
198
- overscroll-behavior: contain;
209
+ // Embedded bodies chain to their widget/page; modal surfaces contain scrolling.
210
+ overscroll-behavior: auto;
199
211
  }
200
212
 
201
213
  // Form dialogs keep their chrome inset while the scrollport reaches the edge.
@@ -216,7 +228,9 @@
216
228
  border-top: 1px solid var(--rv-dialog-border, var(--rv-ui-border));
217
229
  }
218
230
 
219
- .rv-dialog__footer { @include footer; }
231
+ .rv-dialog__footer {
232
+ @include footer;
233
+ }
220
234
 
221
235
  .rv-dialog__footer--stacked {
222
236
  align-items: stretch;
@@ -252,9 +266,16 @@
252
266
 
253
267
  // Shared native-form composition keeps scrolling in the body and actions visible.
254
268
  .rv-dialog__header,
255
- .rv-dialog__footer { flex-shrink: 0; }
256
- .rv-dialog__actions { flex-wrap: wrap; }
257
- .rv-dialog__header > label { flex: 1 1 auto; min-width: 0; }
269
+ .rv-dialog__footer {
270
+ flex-shrink: 0;
271
+ }
272
+ .rv-dialog__actions {
273
+ flex-wrap: wrap;
274
+ }
275
+ .rv-dialog__header > label {
276
+ flex: 1 1 auto;
277
+ min-width: 0;
278
+ }
258
279
  .rv-dialog__surface .rv-dialog__title-input {
259
280
  width: 100%;
260
281
  min-width: 0;
@@ -267,7 +288,7 @@
267
288
  font: inherit;
268
289
  font-size: var(--rv-dialog-title-size, 24px);
269
290
  font-weight: 600;
270
- letter-spacing: -.025em;
291
+ letter-spacing: -0.025em;
271
292
  line-height: 1.25;
272
293
  }
273
294
  .rv-dialog__surface .rv-dialog__title-input::placeholder {
@@ -288,7 +309,9 @@
288
309
  align-items: center;
289
310
  padding: var(--rv-dialog-header-padding, 16px 20px);
290
311
  }
291
- .rv-dialog__header--editable > .rv-dialog__heading { flex: 1 1 auto; }
312
+ .rv-dialog__header--editable > .rv-dialog__heading {
313
+ flex: 1 1 auto;
314
+ }
292
315
  .rv-dialog__sr-only {
293
316
  position: absolute;
294
317
  width: 1px;
@@ -299,12 +322,16 @@
299
322
  white-space: nowrap;
300
323
  border: 0;
301
324
  }
302
- .rv-dialog__description { color: var(--rv-dialog-muted, var(--rv-ui-text-muted)); }
325
+ .rv-dialog__description {
326
+ color: var(--rv-dialog-muted, var(--rv-ui-text-muted));
327
+ }
303
328
  .rv-dialog__message {
304
329
  flex: 0 0 auto;
305
330
  margin: 16px 20px 0;
306
331
  }
307
- .rv-dialog__message.rv-alert { inline-size: auto; }
332
+ .rv-dialog__message.rv-alert {
333
+ inline-size: auto;
334
+ }
308
335
  .rv-dialog__action-footer {
309
336
  display: flex;
310
337
  flex-direction: column;
@@ -319,9 +346,17 @@
319
346
  min-width: 0;
320
347
  flex-wrap: wrap;
321
348
  }
322
- .rv-dialog__action-panel { justify-content: space-between; }
349
+ .rv-dialog__action-panel {
350
+ justify-content: space-between;
351
+ }
323
352
  @media (max-width: 560px) {
324
- .rv-dialog__header--editable { padding: var(--rv-dialog-header-padding, 16px); }
325
- .rv-dialog__message { margin-inline: 16px; }
326
- .rv-dialog__action-footer { padding: var(--rv-dialog-footer-padding, 16px); }
353
+ .rv-dialog__header--editable {
354
+ padding: var(--rv-dialog-header-padding, 16px);
355
+ }
356
+ .rv-dialog__message {
357
+ margin-inline: 16px;
358
+ }
359
+ .rv-dialog__action-footer {
360
+ padding: var(--rv-dialog-footer-padding, 16px);
361
+ }
327
362
  }
package/_form.scss CHANGED
@@ -7,10 +7,7 @@
7
7
  display: grid;
8
8
  gap: 14px;
9
9
  padding: 16px;
10
- border: 1px solid var(
11
- --rv-form-border,
12
- var(--rv-ui-border)
13
- );
10
+ border: 1px solid var(--rv-form-border, var(--rv-ui-border));
14
11
  border-radius: 10px;
15
12
  // Sections group fields without competing with their editable surface.
16
13
  background: var(--rv-form-section-bg, transparent);
@@ -72,25 +69,63 @@
72
69
  }
73
70
 
74
71
  // Shared fields; products customize tokens instead of copying this rule set.
75
- .rv-control { @include control.field; }
76
- textarea.rv-control { min-height: var(--rv-textarea-height, 92px); resize: vertical; }
72
+ .rv-control {
73
+ @include control.field;
74
+ }
75
+ textarea.rv-control {
76
+ min-height: var(--rv-textarea-height, 92px);
77
+ resize: vertical;
78
+ }
77
79
  // Inherit from the nearest explicit direction, including nested LTR surfaces.
78
80
  // CSS builds may lower :dir() to :lang(), which misses direction-only hosts.
79
- [dir='ltr'] { --rv-select-caret-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%; }
80
- [dir='rtl'] { --rv-select-caret-position: 11px 50%, 16px 50%; }
81
+ [dir='ltr'] {
82
+ --rv-select-caret-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
83
+ }
84
+ [dir='rtl'] {
85
+ --rv-select-caret-position: 11px 50%, 16px 50%;
86
+ }
81
87
  select.rv-control {
82
88
  padding-inline-end: 34px;
83
- background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
84
- background-position: var(--rv-select-caret-position, calc(100% - 16px) 50%, calc(100% - 11px) 50%);
89
+ background-image:
90
+ linear-gradient(45deg, transparent 50%, currentColor 50%),
91
+ linear-gradient(135deg, currentColor 50%, transparent 50%);
92
+ background-position: var(
93
+ --rv-select-caret-position,
94
+ calc(100% - 16px) 50%,
95
+ calc(100% - 11px) 50%
96
+ );
85
97
  background-repeat: no-repeat;
86
98
  background-size: 5px 5px;
87
99
  }
88
- select.rv-control[multiple] { background-image: none; padding-inline-end: 10px; }
89
- .rv-control--compact { --rv-control-font-size: 12px; --rv-control-height: 30px; --rv-control-padding: 5px 8px; --rv-control-radius: var(--rv-ui-radius, 6px); font-size: 12px; }
90
- select.rv-control--compact { padding-inline-end: 28px; }
91
- .rv-radio { width: 16px; height: 16px; margin: 0; flex: none; accent-color: var(--rv-ui-accent); }
92
- .rv-radio:focus-visible { outline: 2px solid var(--rv-ui-accent); outline-offset: 2px; }
93
- .rv-radio:disabled { opacity: .55; cursor: not-allowed; }
100
+ select.rv-control[multiple] {
101
+ background-image: none;
102
+ padding-inline-end: 10px;
103
+ }
104
+ .rv-control--compact {
105
+ --rv-control-font-size: 12px;
106
+ --rv-control-height: 30px;
107
+ --rv-control-padding: 5px 8px;
108
+ --rv-control-radius: var(--rv-ui-radius, 6px);
109
+ font-size: 12px;
110
+ }
111
+ select.rv-control--compact {
112
+ padding-inline-end: 28px;
113
+ }
114
+ .rv-radio {
115
+ width: 16px;
116
+ height: 16px;
117
+ margin: 0;
118
+ flex: none;
119
+ accent-color: var(--rv-ui-accent);
120
+ }
121
+ .rv-radio:focus-visible {
122
+ outline: 2px solid var(--rv-ui-accent);
123
+ outline-offset: 2px;
124
+ }
125
+ .rv-radio:disabled {
126
+ opacity: 0.55;
127
+ cursor: not-allowed;
128
+ }
94
129
 
95
130
  @media (max-width: 560px) {
96
131
  .rv-form-grid {
@@ -110,9 +145,13 @@ select.rv-control--compact { padding-inline-end: 28px; }
110
145
  min-width: 0;
111
146
  cursor: pointer;
112
147
  list-style: none;
113
- &::-webkit-details-marker { display: none; }
148
+ &::-webkit-details-marker {
149
+ display: none;
150
+ }
151
+ }
152
+ .rv-disclosure-summary__label {
153
+ min-width: 0;
114
154
  }
115
- .rv-disclosure-summary__label { min-width: 0; }
116
155
  .rv-disclosure-summary__icon {
117
156
  display: inline-flex;
118
157
  align-items: center;
@@ -120,6 +159,17 @@ select.rv-control--compact { padding-inline-end: 28px; }
120
159
  flex: none;
121
160
  }
122
161
 
123
- .rv-native-slider { width: 100%; min-width: 0; accent-color: var(--rv-ui-accent); cursor: pointer; }
124
- .rv-native-slider:disabled { opacity: .55; cursor: not-allowed; }
125
- .rv-native-slider:focus-visible { outline: 2px solid var(--rv-ui-accent); outline-offset: 2px; }
162
+ .rv-native-slider {
163
+ width: 100%;
164
+ min-width: 0;
165
+ accent-color: var(--rv-ui-accent);
166
+ cursor: pointer;
167
+ }
168
+ .rv-native-slider:disabled {
169
+ opacity: 0.55;
170
+ cursor: not-allowed;
171
+ }
172
+ .rv-native-slider:focus-visible {
173
+ outline: 2px solid var(--rv-ui-accent);
174
+ outline-offset: 2px;
175
+ }
package/_legend.scss CHANGED
@@ -14,23 +14,41 @@
14
14
  min-width: 0;
15
15
  max-width: 100%;
16
16
  }
17
- .rv-legend__label { min-width: 0; overflow-wrap: anywhere; }
17
+ .rv-legend__label {
18
+ min-width: 0;
19
+ overflow-wrap: anywhere;
20
+ }
18
21
  .rv-legend__item i {
19
22
  box-sizing: border-box;
20
23
  flex: 0 0 9px;
21
24
  width: 9px;
22
25
  height: 9px;
23
26
  border-radius: 3px;
24
- color: var(--rv-legend-marker-color, var(--rv-matrix-muted, var(--rv-ui-border-strong)));
27
+ color: var(
28
+ --rv-legend-marker-color,
29
+ var(--rv-matrix-muted, var(--rv-ui-border-strong))
30
+ );
25
31
  background: currentColor;
26
- transition: color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
32
+ transition: color var(--rv-ui-motion-fast, 120ms)
33
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1));
27
34
  }
28
35
  .rv-legend__item[data-tone='selected'] i {
29
- color: var(--rv-legend-marker-color, var(--rv-matrix-accent, var(--rv-ui-accent)));
36
+ color: var(
37
+ --rv-legend-marker-color,
38
+ var(--rv-matrix-accent, var(--rv-ui-accent))
39
+ );
30
40
  }
31
41
  .rv-legend__item[data-tone='outside'] i {
32
- color: var(--rv-legend-marker-color, var(--rv-matrix-outside, var(--rv-ui-surface-hover)));
42
+ color: var(
43
+ --rv-legend-marker-color,
44
+ var(--rv-matrix-outside, var(--rv-ui-surface-hover))
45
+ );
33
46
  }
34
47
  .rv-legend__item i[data-marker='outline'],
35
- .rv-legend__item i[data-marker='dashed'] { background: transparent; border: 1px solid currentColor; }
36
- .rv-legend__item i[data-marker='dashed'] { border-style: dashed; }
48
+ .rv-legend__item i[data-marker='dashed'] {
49
+ background: transparent;
50
+ border: 1px solid currentColor;
51
+ }
52
+ .rv-legend__item i[data-marker='dashed'] {
53
+ border-style: dashed;
54
+ }
package/_variables.scss CHANGED
@@ -39,7 +39,8 @@ $rv-popup-border-color-dark: palettes.color('common', 'hex686868');
39
39
  $rv-popup-border-opacity-dark: 0;
40
40
  $rv-popup-shadow-color-dark: palettes.color('common', 'rgba_0_0_0_0_5');
41
41
  $rv-popup-hover-bg-color-dark: palettes.color('common', 'hex2c2c2c');
42
- $rv-popup-box-shadow-dark: 0 4px 12px #{palettes.color('common', 'rgba_0_0_0_0_5')};
42
+ $rv-popup-box-shadow-dark: 0 4px 12px
43
+ #{palettes.color('common', 'rgba_0_0_0_0_5')};
43
44
 
44
45
  $rv-low-color: palettes.color('common', 'hexfa2057');
45
46
  $rv-medium-color: palettes.color('common', 'hexf7c605');
@@ -0,0 +1,6 @@
1
+ .rv-view-switcher-controls {
2
+ display: flex;
3
+ align-items: center;
4
+ flex-wrap: wrap;
5
+ gap: 0.5rem;
6
+ }
@@ -9,4 +9,4 @@ export interface ActivityMessageProps {
9
9
  details?: ComponentChildren;
10
10
  }
11
11
  /** A compact, composable message with an avatar, timestamp and optional actions. */
12
- export declare function ActivityMessage({ className, avatar, timestamp, header, children, actions, details }: ActivityMessageProps): h.JSX.Element;
12
+ export declare function ActivityMessage({ className, avatar, timestamp, header, children, actions, details, }: ActivityMessageProps): h.JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./_chunks/jsxRuntime.module-F6UFnpT-.js";
2
- //#region src/activity-message.tsx
2
+ //#region package/activity-message.tsx
3
3
  function t({ className: t = "", avatar: n, timestamp: r, header: i, children: a, actions: o, details: s }) {
4
4
  return /* @__PURE__ */ e("article", {
5
5
  class: `rv-activity-message ${t}`,
package/ai/_chat.scss CHANGED
@@ -218,3 +218,10 @@
218
218
  white-space: pre-wrap;
219
219
  overflow-wrap: anywhere;
220
220
  }
221
+
222
+ .rv-ai-chat-actions {
223
+ display: flex;
224
+ justify-content: flex-end;
225
+ align-items: center;
226
+ gap: 0.25rem;
227
+ }
package/ai/_style.scss CHANGED
@@ -87,22 +87,6 @@
87
87
  .rv-ai-request-trail {
88
88
  min-width: 0;
89
89
  }
90
- .rv-ai-request-trail .rv-ai-trail-trigger {
91
- color: var(--rv-ui-accent-text);
92
- background: var(--rv-ui-selected-bg);
93
- &:hover:not(:disabled),
94
- &:focus-visible {
95
- color: var(--rv-ui-accent-text);
96
- background: var(--rv-ui-selected-bg);
97
- }
98
- }
99
- .rv-ai-trail-trigger .rv-svg-icon {
100
- transition: transform var(--rv-ui-motion-fast, 120ms)
101
- var(--rv-ui-motion-ease, ease);
102
- }
103
- .rv-ai-trail-trigger[aria-expanded='true'] .rv-svg-icon {
104
- transform: rotate(180deg);
105
- }
106
90
  .rv-popover.rv-ai-trail-popover {
107
91
  box-sizing: border-box;
108
92
  width: 22rem;
@@ -369,8 +353,31 @@
369
353
  flex: 1;
370
354
  min-height: 0;
371
355
  height: 100%;
372
- > .rv-ai-mounted-chat { flex: 1; min-height: 0; }
373
- .rv-ai-chat-viewport { max-height: none; }
374
- .rv-ai-result-actions, .rv-ai-assistant-footer { flex: none; }
375
- .rv-ai-chat-content { min-height: 100%; box-sizing: border-box; }
356
+ > .rv-ai-mounted-chat {
357
+ flex: 1;
358
+ min-height: 0;
359
+ }
360
+ .rv-ai-chat-viewport {
361
+ max-height: none;
362
+ }
363
+ .rv-ai-result-actions,
364
+ .rv-ai-assistant-footer {
365
+ flex: none;
366
+ }
367
+ .rv-ai-chat-content {
368
+ min-height: 100%;
369
+ box-sizing: border-box;
370
+ }
371
+ }
372
+
373
+ // Keep the trigger compact while giving long requests room in the shared popup.
374
+ .rv-ai-examples-menu {
375
+ box-sizing: border-box;
376
+ width: min(420px, calc(100vw - 16px));
377
+ max-width: calc(100vw - 16px);
378
+
379
+ .dropdown-option {
380
+ min-height: 36px;
381
+ white-space: normal;
382
+ }
376
383
  }