@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
@@ -1,75 +1,252 @@
1
+ @use '../styles/filter-controls';
2
+
1
3
  .rv-rich-text-editor {
2
- width: min(560px, calc(100vw - 48px));
4
+ box-sizing: border-box;
5
+ width: min(560px, 100%);
6
+ max-width: calc(100vw - 48px);
7
+ min-width: 0;
3
8
  &__toolbar {
4
9
  display: flex;
5
10
  flex-wrap: wrap;
6
11
  align-items: center;
7
- gap: 6px;
8
- padding-block: 8px;
9
- margin-block: 8px;
10
- border-block: 1px solid var(--rv-ui-border);
11
- .rv-toolbar-group { gap: 2px; padding: 0; }
12
- .rv-toolbar-separator { align-self: stretch; height: auto; }
13
- }
14
- &__command {
15
- display: inline-flex;
12
+ gap: 8px;
13
+ margin-block: 10px;
14
+ .rv-icon-toolbar {
15
+ flex: 0 0 auto;
16
+ }
17
+ }
18
+ .rv-editor-actions {
19
+ display: flex;
20
+ flex-wrap: wrap;
16
21
  align-items: center;
17
- justify-content: center;
18
- gap: 2px;
19
- min-width: 30px;
20
- min-height: 30px;
21
- padding: 6px;
22
- border-color: transparent;
23
- }
24
- &__level { --rv-icon-size: 9px; }
22
+ gap: 8px;
23
+ margin-block-start: 12px;
24
+ }
25
25
  &__link {
26
26
  display: flex;
27
+ flex-wrap: wrap;
27
28
  gap: 8px;
29
+ margin-block-end: 8px;
30
+ input {
31
+ flex: 1;
32
+ min-width: 0;
33
+ }
28
34
  }
29
35
  &__visual,
30
36
  &__source {
31
37
  box-sizing: border-box;
32
38
  width: 100%;
33
- min-height: 200px;
39
+ min-height: 220px;
34
40
  max-height: 50vh;
35
41
  overflow: auto;
36
- padding: 10px;
42
+ padding: 16px;
37
43
  border: 1px solid var(--rv-ui-border);
38
44
  border-radius: 6px;
39
45
  background: var(--rv-ui-surface);
40
46
  color: var(--rv-ui-text);
41
- font: inherit;
42
- white-space: pre-wrap;
47
+ font-family: inherit;
48
+ font-size: 14px;
49
+ line-height: 1.6;
50
+ text-align: start;
51
+ overflow-wrap: anywhere;
52
+ &:focus-visible {
53
+ outline: 2px solid var(--rv-ui-accent);
54
+ outline-offset: 2px;
55
+ }
43
56
  }
44
57
  &__source {
45
- font-family: ui-monospace, monospace;
58
+ margin-block-start: 12px;
59
+ min-height: 0;
60
+ max-height: none;
61
+ padding: 0;
62
+ overflow: hidden;
63
+ &:focus-within {
64
+ outline: 2px solid var(--rv-ui-accent);
65
+ outline-offset: 2px;
66
+ box-shadow: none;
67
+ }
68
+ .rv-highlighted-input__highlight,
69
+ textarea.rv-highlighted-input__input {
70
+ padding: 16px;
71
+ font:
72
+ 14px/1.6 ui-monospace,
73
+ SFMono-Regular,
74
+ Consolas,
75
+ monospace;
76
+ letter-spacing: normal;
77
+ white-space: pre;
78
+ overflow-wrap: normal;
79
+ tab-size: 2;
80
+ text-align: start;
81
+ }
82
+ .rv-highlighted-input__highlight {
83
+ position: absolute;
84
+ inset: 0;
85
+ height: 100%;
86
+ min-height: 0;
87
+ overflow: hidden;
88
+ }
89
+ textarea.rv-highlighted-input__input {
90
+ position: relative;
91
+ inset: auto;
92
+ display: block;
93
+ height: 220px;
94
+ min-height: 220px;
95
+ max-height: 50vh;
96
+ resize: vertical;
97
+ overflow: auto;
98
+ color: transparent;
99
+ -webkit-text-fill-color: transparent;
100
+ caret-color: var(--rv-ui-text);
101
+ }
46
102
  }
47
103
  &__visual[hidden] {
48
104
  display: none;
49
105
  }
50
- &__visual a {
51
- color: var(--rv-ui-accent-text);
52
- text-decoration: underline;
53
- }
54
- &__visual pre {
55
- background: var(--rv-ui-surface-sunken);
56
- padding: 8px;
57
- }
58
- &__visual blockquote {
59
- border-inline-start: 3px solid var(--rv-ui-border);
60
- padding-inline-start: 12px;
61
- margin-inline: 0;
106
+ &__visual {
107
+ white-space: pre-wrap;
108
+ p,
109
+ h1,
110
+ h2,
111
+ h3,
112
+ h4,
113
+ h5,
114
+ h6,
115
+ pre,
116
+ blockquote,
117
+ ul,
118
+ ol {
119
+ margin: 0 0 0.75em;
120
+ }
121
+ > :first-child {
122
+ margin-block-start: 0;
123
+ }
124
+ > :last-child {
125
+ margin-block-end: 0;
126
+ }
127
+ p {
128
+ font: inherit;
129
+ }
130
+ h1,
131
+ h2,
132
+ h3,
133
+ h4,
134
+ h5,
135
+ h6 {
136
+ margin-block-start: 1em;
137
+ font-family: inherit;
138
+ font-weight: 650;
139
+ line-height: 1.3;
140
+ letter-spacing: normal;
141
+ color: inherit;
142
+ }
143
+ h1 {
144
+ font-size: 1.65em;
145
+ }
146
+ h2 {
147
+ font-size: 1.3em;
148
+ }
149
+ h3,
150
+ h4,
151
+ h5,
152
+ h6 {
153
+ font-size: 1.1em;
154
+ }
155
+ strong {
156
+ font-weight: 700;
157
+ }
158
+ em {
159
+ font-style: italic;
160
+ }
161
+ s {
162
+ text-decoration: line-through;
163
+ }
164
+ ul,
165
+ ol {
166
+ padding-inline-start: 1.75em;
167
+ list-style-position: outside;
168
+ }
169
+ ul {
170
+ list-style-type: disc;
171
+ }
172
+ ol {
173
+ list-style-type: decimal;
174
+ }
175
+ li {
176
+ margin-block: 0.25em;
177
+ padding-inline-start: 0.15em;
178
+ }
179
+ li > p {
180
+ margin-block: 0;
181
+ }
182
+ li > ul,
183
+ li > ol {
184
+ margin-block: 0.25em 0;
185
+ }
186
+ blockquote {
187
+ border-inline-start: 3px solid var(--rv-ui-border);
188
+ padding-inline-start: 14px;
189
+ margin-inline: 0;
190
+ color: var(--rv-ui-text-muted, var(--rv-ui-text));
191
+ > :last-child {
192
+ margin-block-end: 0;
193
+ }
194
+ }
195
+ code,
196
+ pre {
197
+ font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
198
+ }
199
+ code {
200
+ background: var(--rv-ui-surface-sunken);
201
+ padding: 0.12em 0.3em;
202
+ border-radius: 3px;
203
+ font-size: 0.92em;
204
+ }
205
+ pre {
206
+ background: var(--rv-ui-surface-sunken);
207
+ border: 1px solid var(--rv-ui-border);
208
+ border-radius: 6px;
209
+ padding: 12px 14px;
210
+ font-size: 0.92em;
211
+ font-weight: 400;
212
+ line-height: 1.6;
213
+ white-space: pre-wrap;
214
+ tab-size: 2;
215
+ code {
216
+ padding: 0;
217
+ background: none;
218
+ border-radius: 0;
219
+ font: inherit;
220
+ }
221
+ }
222
+ a {
223
+ color: var(--rv-ui-accent-text);
224
+ text-decoration: underline;
225
+ text-underline-offset: 2px;
226
+ }
62
227
  }
63
- &__visual code {
64
- font-family: ui-monospace, monospace;
65
- background: var(--rv-ui-surface-sunken);
228
+ &__help {
229
+ margin: 8px 0 12px;
230
+ color: var(--rv-ui-text-muted, var(--rv-ui-text));
231
+ font-size: 12px;
232
+ line-height: 1.5;
66
233
  }
67
234
  }
68
235
 
69
236
  .rv-rich-text-cell {
237
+ box-sizing: border-box;
238
+ max-height: 100%;
70
239
  color: inherit;
71
240
  font: inherit;
241
+ // Core uses row height as line-height to center plain cells. Rich blocks need
242
+ // text-sized lines so paragraphs, quotes and lists fit inside taller rows.
243
+ line-height: 1.5;
244
+ padding-block: min(
245
+ 8px,
246
+ max(0px, calc((var(--rg-theme-row-size, 27px) - 1.5em) / 2))
247
+ );
72
248
  white-space: pre-wrap;
249
+ overflow-wrap: anywhere;
73
250
  overflow: hidden;
74
251
  p,
75
252
  h1,
@@ -82,7 +259,13 @@
82
259
  blockquote,
83
260
  ul,
84
261
  ol {
85
- margin-block: 0;
262
+ margin: 0 0 0.35em;
263
+ &:last-child {
264
+ margin-block-end: 0;
265
+ }
266
+ }
267
+ p {
268
+ font: inherit;
86
269
  }
87
270
  h1,
88
271
  h2,
@@ -90,28 +273,94 @@
90
273
  h4,
91
274
  h5,
92
275
  h6 {
276
+ font-family: inherit;
93
277
  font-size: inherit;
94
278
  font-weight: 600;
279
+ line-height: inherit;
280
+ color: inherit;
281
+ }
282
+ strong {
283
+ font-weight: 700;
284
+ }
285
+ em {
286
+ font-style: italic;
287
+ }
288
+ s {
289
+ text-decoration: line-through;
95
290
  }
96
291
  ul,
97
292
  ol {
98
293
  padding-inline-start: 1.5em;
294
+ list-style-position: outside;
295
+ }
296
+ ul {
297
+ list-style-type: disc;
298
+ }
299
+ ol {
300
+ list-style-type: decimal;
301
+ }
302
+ li > p {
303
+ margin-block: 0;
304
+ }
305
+ li > ul,
306
+ li > ol {
307
+ margin-block: 0.15em 0;
99
308
  }
100
309
  blockquote {
101
- border-inline-start: 2px solid currentColor;
102
- padding-inline-start: 8px;
310
+ border-inline-start: 2px solid var(--rv-ui-border, GrayText);
311
+ padding-inline-start: 10px;
103
312
  margin-inline: 0;
313
+ color: var(--rv-ui-text-muted, inherit);
104
314
  }
105
315
  a {
106
- color: inherit;
316
+ color: var(--rv-ui-accent-text, LinkText);
107
317
  text-decoration: underline;
108
318
  text-underline-offset: 2px;
319
+ text-decoration-thickness: 1px;
320
+ &:focus-visible {
321
+ outline: 2px solid var(--rv-ui-accent, Highlight);
322
+ outline-offset: 2px;
323
+ border-radius: 2px;
324
+ }
109
325
  }
110
- code {
111
- font-family: ui-monospace, monospace;
326
+ code,
327
+ pre {
328
+ font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
112
329
  font-size: 0.9em;
113
330
  }
331
+ code {
332
+ background: var(--rv-ui-surface-sunken);
333
+ padding-inline: 0.2em;
334
+ border-radius: 3px;
335
+ }
114
336
  pre {
115
337
  white-space: pre-wrap;
338
+ background: var(--rv-ui-surface-sunken);
339
+ padding: 3px 6px;
340
+ border-radius: 3px;
341
+ line-height: 1.5;
342
+ tab-size: 2;
343
+ code {
344
+ font: inherit;
345
+ background: none;
346
+ padding: 0;
347
+ }
348
+ }
349
+ }
350
+
351
+ .rv-html-syntax {
352
+ font: inherit;
353
+ color: var(--rv-ui-text);
354
+ &__tag {
355
+ color: var(--rv-ui-accent-text);
356
+ }
357
+ &__attribute {
358
+ color: var(--rv-ui-warning, var(--rv-ui-accent-text));
359
+ }
360
+ &__string {
361
+ color: var(--rv-ui-success);
362
+ }
363
+ &__comment {
364
+ color: var(--rv-ui-text-muted);
116
365
  }
117
366
  }
@@ -0,0 +1,5 @@
1
+ import { h } from '../_vendor/preact/src/index';
2
+ /** Paint HTML source as escaped text; source is never interpreted as markup. */
3
+ export declare function HtmlSyntax({ code }: {
4
+ code: string;
5
+ }): h.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { HtmlEngine, HtmlSelection } from './engine';
2
2
  import { HtmlEditorText } from './translations';
3
- export declare function HtmlToolbar({ engine, selection, text, showLink, onLink }: {
3
+ export declare function HtmlToolbar({ engine, selection, text, showLink, onLink, }: {
4
4
  engine: () => HtmlEngine | undefined;
5
5
  selection: HtmlSelection;
6
6
  text: Required<HtmlEditorText>;
@@ -1,5 +1,7 @@
1
1
  /** Visible and accessible labels for the shared HTML editor. */
2
2
  export interface HtmlEditorText {
3
+ keyboardHelp?: string;
4
+ codeHelp?: string;
3
5
  visual: string;
4
6
  source: string;
5
7
  label: string;
@@ -1,6 +1,6 @@
1
1
  import { c as e } from "../_chunks/preact.module-BBM36DnO.js";
2
2
  import { t } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { n } from "../_chunks/native.view-ByyZ1CT5.js";
3
+ import { n } from "../_chunks/native-Blr3byjO.js";
4
4
  //#region src/search-input/index.tsx
5
5
  function r() {
6
6
  return /* @__PURE__ */ t("svg", {
@@ -1,2 +1,21 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './native.view';
1
+ export interface SearchPresentation {
2
+ rootClassName?: string;
3
+ inputClassName?: string;
4
+ iconClassName?: string;
5
+ shortcutClassName?: string;
6
+ hideIcon?: boolean;
7
+ icon?: any;
8
+ shortcut?: any;
9
+ leading?: any;
10
+ trailing?: any;
11
+ testId?: string;
12
+ inputAttributes?: Record<string, any>;
13
+ }
14
+ /** One search composition for native, grid and Preact rendering. */
15
+ export declare function renderSearchInput<H extends (...args: any[]) => any>(h: H, options: SearchPresentation): ReturnType<H>;
16
+ export declare function createSearchInput(document: Document, options: Omit<SearchPresentation, 'icon'> & {
17
+ iconSvg: string;
18
+ }): {
19
+ root: HTMLElement;
20
+ input: HTMLInputElement;
21
+ };
package/select.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import { ComponentChildren, JSX } from './_vendor/preact/src/index';
2
- import { DropdownOption } from './dropdown/dropdown.types';
2
+ import { DropdownEnvironment, DropdownOption } from './dropdown/dropdown.types';
3
3
  export type SelectOptionProps = JSX.IntrinsicElements['option'];
4
4
  type Attributes = Omit<JSX.IntrinsicElements['select'], 'value' | 'defaultValue' | 'onChange' | 'onInput' | 'multiple' | 'ref'>;
5
5
  export type SelectProps = Attributes & {
6
+ /** Optional host integration for portalled popup lifecycle and pointer releases. */
7
+ environment?: DropdownEnvironment;
6
8
  value?: string | number | readonly string[];
7
9
  defaultValue?: string | number | readonly string[];
8
10
  /** Optional domain policy for option descriptors; no native option nodes are mounted. */
package/select.js CHANGED
@@ -1 +1 @@
1
- export { s as Select, c as selectOptions } from "./_chunks/native-control-C_yok8_-.js";
1
+ export { s as Select, c as selectOptions } from "./_chunks/native-control-B_fVA5bL.js";
@@ -1,2 +1,3 @@
1
1
  /** General-purpose selection lists; formatting editors reuse the same owner. */
2
2
  export { EditorList as Listbox, EditorListItem as ListboxOption, EditorListGroup as ListboxGroup, EditorListItemContent as ListboxOptionContent, type EditorListProps as ListboxProps, type EditorListItemProps as ListboxOptionProps, type EditorListItemContentProps as ListboxOptionContentProps, } from './editor-layout';
3
+ export { useSelectionListTooltips } from './core/selection-list-tooltips';
package/selection-list.js CHANGED
@@ -1 +1,3 @@
1
- export { EditorList as Listbox, EditorListGroup as ListboxGroup, EditorListItem as ListboxOption, EditorListItemContent as ListboxOptionContent } from "./editor-layout/index.js";
1
+ import { t as e } from "./_chunks/selection-list-tooltips-C5oMJe26.js";
2
+ import { EditorList as t, EditorListGroup as n, EditorListItem as r, EditorListItemContent as i } from "./editor-layout/index.js";
3
+ export { t as Listbox, n as ListboxGroup, r as ListboxOption, i as ListboxOptionContent, e as useSelectionListTooltips };
@@ -1,10 +1,10 @@
1
- import { isUiMotionEnabled as e } from "../core/motion.js";
2
- import { showTopLayerPopup as t } from "../core/top-layer-popup.js";
1
+ import { r as e } from "../_chunks/top-layer-popup-CNSDdfJV.js";
2
+ import { isUiMotionEnabled as t } from "../core/motion.js";
3
3
  import { animateStatusFeedback as n } from "./motion.js";
4
4
  //#region src/status-feedback/exit-snapshot.ts
5
5
  function r(r) {
6
6
  let i = r.ownerDocument.defaultView;
7
- if (!i || typeof r.animate != "function" || !e(r)) return;
7
+ if (!i || typeof r.animate != "function" || !t(r)) return;
8
8
  let a = r.getBoundingClientRect(), o = r.cloneNode(!0), s = [r, ...r.querySelectorAll("*")], c = [o, ...o.querySelectorAll("*")];
9
9
  o.removeAttribute("popover"), o.removeAttribute("id"), o.querySelectorAll("[id]").forEach((e) => e.removeAttribute("id")), o.querySelectorAll("[role], [aria-live]").forEach((e) => {
10
10
  e.removeAttribute("role"), e.removeAttribute("aria-live");
@@ -24,7 +24,7 @@ function r(r) {
24
24
  borderColor: l.borderColor,
25
25
  fontFamily: l.fontFamily,
26
26
  boxShadow: l.boxShadow
27
- }), r.ownerDocument.body.append(o), t(o), s.forEach((e, t) => {
27
+ }), r.ownerDocument.body.append(o), e(o), s.forEach((e, t) => {
28
28
  e.scrollTop && (c[t].scrollTop = e.scrollTop), e.scrollLeft && (c[t].scrollLeft = e.scrollLeft);
29
29
  });
30
30
  let u = () => {
@@ -1,6 +1,6 @@
1
1
  import { calculateAnchoredPopoverPosition as e } from "../core/anchored-popover.js";
2
- import { inheritUiMotion as t } from "../core/motion.js";
3
- import { hideTopLayerPopup as n, showTopLayerPopup as r } from "../core/top-layer-popup.js";
2
+ import { r as t, t as n } from "../_chunks/top-layer-popup-CNSDdfJV.js";
3
+ import { inheritUiMotion as r } from "../core/motion.js";
4
4
  import { statusFeedbackSize as i } from "./placement.js";
5
5
  import { animateStatusFeedback as a } from "./motion.js";
6
6
  import { statusFeedbackExit as o } from "./exit-snapshot.js";
@@ -58,9 +58,9 @@ var s = 0, c = class {
58
58
  width: s.innerWidth,
59
59
  height: s.innerHeight
60
60
  }, c, this.collapsed, this.options), u = l.width;
61
- n.style.width = `${u}px`, n.style.maxHeight = `${l.maxHeight}px`, this.releaseMotion ??= t(o, n);
61
+ n.style.width = `${u}px`, n.style.maxHeight = `${l.maxHeight}px`, this.releaseMotion ??= r(o, n);
62
62
  let d = !this.mode;
63
- d && (this.removeExit?.(), this.removeExit = void 0, this.mode = r(n));
63
+ d && (this.removeExit?.(), this.removeExit = void 0, this.mode = t(n));
64
64
  let f = o.getBoundingClientRect(), p = e({
65
65
  left: f.right - u,
66
66
  right: f.right,