@revolist/ui 4.0.2-rc → 4.0.2

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 (343) hide show
  1. package/LICENSE +21 -0
  2. package/MIGRATION.md +36 -0
  3. package/OWNERSHIP.md +32 -32
  4. package/README.md +405 -265
  5. package/_button.scss +6 -2
  6. package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
  7. package/_chunks/calculator-CDWOuAcp.js +4 -0
  8. package/_chunks/{calendar-CpaUK7w1.js → calendar-CgXQgkga.js} +28 -18
  9. package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
  10. package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
  11. package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
  12. package/_chunks/choice-chips-SkllS5Kl.js +126 -0
  13. package/_chunks/clock-BOhPNlW3.js +4 -0
  14. package/_chunks/{color-palette-BBMFmUNA.js → color-palette-DMJUChWC.js} +20 -22
  15. package/_chunks/{color-picker-D90Jg-M8.js → color-picker-BpCTuIdm.js} +77 -72
  16. package/_chunks/{component-YDcfoOLz.js → component-CfeHXgIw.js} +301 -282
  17. package/_chunks/{component-metadata-BENbgTjU.js → component-metadata-BKd7U8OW.js} +0 -12
  18. package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
  19. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  20. package/_chunks/control-Dcrjsunl.js +118 -0
  21. package/_chunks/{controls-DIum-E66.js → controls-B_6NJarZ.js} +217 -182
  22. package/_chunks/{date-control-BJSzu79z.js → date-control-C4h4m75W.js} +1 -1
  23. package/_chunks/{date-time-BxPJusp9.js → date-time-CTOSbzb0.js} +344 -307
  24. package/_chunks/{delete-button-Bblyah10.js → delete-button-CW9vjLnk.js} +6 -6
  25. package/_chunks/dialog.parts-3w5FR06n.js +131 -0
  26. package/_chunks/{duration-87U2EoMS.js → duration-Bf2OS1V5.js} +19 -18
  27. package/_chunks/editor-popup-ByU7qiub.js +82 -0
  28. package/_chunks/field-configurator-D5dZRhDe.js +288 -0
  29. package/_chunks/field-context-D57PnBbH.js +5 -0
  30. package/_chunks/{framework-mount-C-Zwm44H.js → framework-mount-Bk4O_T7T.js} +1 -1
  31. package/_chunks/icon-toolbar-DSjOdwM7.js +134 -0
  32. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  33. package/_chunks/minus-BOAR3A1C.js +4 -0
  34. package/_chunks/mount-BRdcG60g.js +267 -0
  35. package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
  36. package/_chunks/native-control-B_fVA5bL.js +649 -0
  37. package/_chunks/{number-input-BeIadZuL.js → number-input-CmM6_2vR.js} +7 -7
  38. package/_chunks/{picker-DpP7iQLA.js → picker-DTqET-2W.js} +2 -2
  39. package/_chunks/plus-CbGRkIGl.js +4 -0
  40. package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
  41. package/_chunks/popup-C35Isk7p.js +378 -0
  42. package/_chunks/{rating-choice-Ca8ZBty3.js → rating-choice-C-6wcb9U.js} +1 -1
  43. package/_chunks/render-m5eMMwFR.js +83 -0
  44. package/_chunks/{reorder-list-Cc3KmfAN.js → reorder-list-DIl1gkV6.js} +1 -1
  45. package/_chunks/request-trail-DrhdpWiH.js +762 -0
  46. package/_chunks/rich-text-BnilBbhU.js +842 -0
  47. package/_chunks/rotate-left-BF6G883o.js +4 -0
  48. package/_chunks/rotate-right-Iha5ScJ1.js +4 -0
  49. package/_chunks/selection-list-tooltips-C5oMJe26.js +42 -0
  50. package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
  51. package/_chunks/tooltip-D4xkio5G.js +54 -0
  52. package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
  53. package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
  54. package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
  55. package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
  56. package/_dialog.scss +55 -21
  57. package/_form.scss +71 -21
  58. package/_legend.scss +25 -7
  59. package/_shared/data-query/index.d.ts +2 -2
  60. package/_shared/data-query/load-options.d.ts +2 -2
  61. package/_variables.scss +34 -32
  62. package/_view-switcher.scss +6 -0
  63. package/activity-message.d.ts +1 -1
  64. package/ai/_chat.scss +227 -0
  65. package/ai/_style.scss +170 -39
  66. package/ai/chat.d.ts +65 -0
  67. package/ai/components.d.ts +34 -5
  68. package/ai/index.d.ts +3 -0
  69. package/ai/index.js +3 -3
  70. package/ai/mount.d.ts +59 -6
  71. package/ai/prompt-history.d.ts +13 -0
  72. package/ai/request-trail.d.ts +9 -3
  73. package/ai/results/_style.scss +83 -0
  74. package/ai/results/index.d.ts +11 -0
  75. package/ai/results/metrics.d.ts +5 -0
  76. package/ai/results/table.d.ts +5 -0
  77. package/ai/results/text.d.ts +5 -0
  78. package/ai/results/types.d.ts +29 -0
  79. package/ai/transcript.d.ts +27 -0
  80. package/ai/translations.d.ts +1 -1
  81. package/angular/angular.d.ts +1 -1
  82. package/angular/angular.js +13 -10
  83. package/assignee/assignee.scss +28 -6
  84. package/assignee/index.js +34 -35
  85. package/avatar/avatar.style.scss +23 -6
  86. package/avatar/index.d.ts +25 -2
  87. package/avatar/index.js +33 -32
  88. package/badge.d.ts +1 -1
  89. package/badge.view.d.ts +8 -0
  90. package/brush-range/_brush-range.scss +55 -49
  91. package/brush-range/component.d.ts +1 -3
  92. package/brush-range/component.js +27 -27
  93. package/buttons/delete-button.d.ts +2 -1
  94. package/buttons/delete-button.js +1 -1
  95. package/buttons/delete-button.style.scss +6 -2
  96. package/buttons/remove-button.d.ts +1 -1
  97. package/buttons/remove-button.js +1 -1
  98. package/buttons/remove-button.style.scss +1 -1
  99. package/buttons/svg-button.d.ts +2 -1
  100. package/buttons/svg-button.js +19 -19
  101. package/calendar/_calendar.scss +27 -26
  102. package/calendar/calendar.js +1 -1
  103. package/calendar/header.js +1 -2
  104. package/calendar/index.js +2 -2
  105. package/cell-input.scss +3 -7
  106. package/cell-visuals/badge.style.scss +6 -3
  107. package/cell-visuals/bar-chart.style.scss +2 -1
  108. package/cell-visuals/column-type.style.css +12 -0
  109. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  110. package/cell-visuals/progress-line.style.scss +1 -4
  111. package/cell-visuals/sparkline.style.scss +2 -1
  112. package/cell-visuals/timeline.style.css +4 -2
  113. package/checkbox/checkbox.scss +6 -24
  114. package/choice-chips/index.d.ts +3 -1
  115. package/choice-chips/index.js +1 -1
  116. package/color-palette/color-palette.js +1 -1
  117. package/color-palette/color-palette.style.scss +88 -25
  118. package/color-palette/color-picker.js +2 -2
  119. package/color-palette/color-picker.style.scss +23 -10
  120. package/color-palette/common-palettes.d.ts +1 -1
  121. package/color-palette/common-palettes.js +1 -1
  122. package/color-palette/native.d.ts +15 -2
  123. package/component-catalog.d.ts +24 -11
  124. package/configurator-actions.d.ts +67 -0
  125. package/configurator-actions.js +1 -0
  126. package/configurator-aggregation-list.d.ts +14 -0
  127. package/configurator-aggregation-list.js +63 -0
  128. package/configurator-drop-zone.d.ts +39 -0
  129. package/configurator-drop-zone.js +66 -0
  130. package/configurator-field-icon.d.ts +10 -0
  131. package/configurator-field-icon.js +1 -0
  132. package/configurator-focus.d.ts +4 -0
  133. package/configurator-focus.js +39 -0
  134. package/configurator-sections.d.ts +42 -0
  135. package/configurator-sections.js +71 -0
  136. package/control-attributes.js +7 -7
  137. package/control-presentation.d.ts +8 -2
  138. package/control-presentation.js +25 -20
  139. package/controls.d.ts +19 -7
  140. package/controls.js +4 -3
  141. package/core/editor-popup-position.d.ts +6 -2
  142. package/core/editor-popup.d.ts +4 -0
  143. package/core/editor-popup.js +1 -1
  144. package/core/popover-controller.d.ts +35 -0
  145. package/core/popup-ownership.d.ts +2 -0
  146. package/core/selection-list-tooltips.d.ts +2 -0
  147. package/core/title-tooltip.d.ts +2 -0
  148. package/core/tooltip-session.d.ts +29 -0
  149. package/core/tooltip-surface.d.ts +13 -0
  150. package/core/tooltip-text.d.ts +6 -0
  151. package/core/tooltip.d.ts +35 -0
  152. package/core/top-layer-popup.d.ts +4 -0
  153. package/core/top-layer-popup.js +1 -23
  154. package/date-time/attach.d.ts +1 -1
  155. package/date-time/date-control.d.ts +1 -1
  156. package/date-time/field.d.ts +3 -2
  157. package/date-time/index.js +1 -1
  158. package/date-time/style.scss +242 -39
  159. package/date-time/time-selection.d.ts +3 -1
  160. package/date-time/types.d.ts +5 -1
  161. package/dialog/dialog-action-footer.d.ts +17 -2
  162. package/dialog/dialog.dom.d.ts +15 -2
  163. package/dialog/dialog.dom.js +3 -3
  164. package/dialog/dialog.parts.d.ts +1 -1
  165. package/dialog/dialog.parts.js +1 -1
  166. package/distribution-chart/_distribution-chart.scss +113 -77
  167. package/distribution-chart/area-chart.js +1 -1
  168. package/distribution-chart/bar-chart.d.ts +5 -2
  169. package/distribution-chart/bar-chart.js +7 -3
  170. package/distribution-chart/chart-frame.d.ts +2 -1
  171. package/distribution-chart/index.d.ts +1 -1
  172. package/distribution-chart/line-chart.js +1 -1
  173. package/dropdown/content.d.ts +2 -1
  174. package/dropdown/content.js +1 -142
  175. package/dropdown/control.d.ts +14 -0
  176. package/dropdown/control.js +1 -0
  177. package/dropdown/control.view.d.ts +6 -0
  178. package/dropdown/dropdown.types.d.ts +5 -1
  179. package/dropdown/editor-dropdown.style.scss +54 -16
  180. package/dropdown/index.d.ts +1 -1
  181. package/dropdown/index.js +3 -4
  182. package/dropdown/lookup-field.d.ts +5 -0
  183. package/dropdown/lookup-field.js +2 -1
  184. package/dropdown/popup.d.ts +2 -2
  185. package/dropdown/popup.js +1 -141
  186. package/duration/index.js +1 -1
  187. package/duration/style.scss +1 -1
  188. package/editor-actions.js +1 -1
  189. package/editor-layout/index.d.ts +4 -4
  190. package/editor-layout/index.js +39 -34
  191. package/editor-layout/style.scss +82 -18
  192. package/field-configurator.d.ts +39 -1
  193. package/field-configurator.js +4 -170
  194. package/field-expansion.d.ts +9 -0
  195. package/fieldset.d.ts +3 -0
  196. package/filter/filters/slider/_single-slider.scss +57 -38
  197. package/filter/filters/slider/_slider.scss +41 -33
  198. package/filter/filters/slider/control.js +2 -0
  199. package/filter/filters/slider/runtime.js +49 -22
  200. package/filter/filters/slider/single.js +1 -1
  201. package/filter-badge.js +1 -1
  202. package/filter-controls.d.ts +0 -1
  203. package/filter-controls.js +9 -10
  204. package/form-controls/field-context.d.ts +5 -0
  205. package/form-controls/index.d.ts +10 -2
  206. package/form-controls/index.js +4 -9
  207. package/form-controls/presentation.d.ts +1 -1
  208. package/form-controls/presentation.js +53 -45
  209. package/formatting/index.d.ts +1 -1
  210. package/formatting/index.js +40 -35
  211. package/formatting/styles.scss +14 -57
  212. package/framework.js +237 -226
  213. package/history-controls.d.ts +14 -0
  214. package/history-controls.js +27 -0
  215. package/icon-toolbar.d.ts +62 -0
  216. package/icon-toolbar.js +1 -0
  217. package/icons/icon.d.ts +1 -1
  218. package/legend.d.ts +1 -1
  219. package/masked-input/index.js +1 -1
  220. package/native-control.d.ts +6 -5
  221. package/native-control.js +3 -26
  222. package/native-controls.d.ts +54 -2
  223. package/native-styles.css +1 -1
  224. package/native-styles.scss +6 -2
  225. package/native.d.ts +3 -3
  226. package/native.js +41 -37
  227. package/number-input/index.d.ts +1 -1
  228. package/number-input/index.js +1 -1
  229. package/package.json +88 -14
  230. package/pagination.d.ts +3 -0
  231. package/pagination.js +50 -40
  232. package/pdf-viewer/header.d.ts +1 -1
  233. package/pdf-viewer/index.d.ts +2 -2
  234. package/pdf-viewer/index.js +1 -1
  235. package/pdf-viewer/search-bar.d.ts +1 -1
  236. package/pdf-viewer/status.d.ts +1 -1
  237. package/pdf-viewer/style.scss +205 -45
  238. package/pickers.d.ts +5 -1
  239. package/preact-mount.js +1 -1
  240. package/preact.d.ts +15 -10
  241. package/preact.js +109 -64
  242. package/progress/_bar.scss +9 -3
  243. package/progress/_circular.scss +2 -1
  244. package/rating-choice.js +1 -1
  245. package/react-adapter.d.ts +4 -2
  246. package/react-control.d.ts +1 -0
  247. package/react.d.ts +20 -11
  248. package/react.js +72 -88
  249. package/reorder-list.d.ts +1 -1
  250. package/reorder-list.js +1 -1
  251. package/reorder-list.scss +59 -17
  252. package/resource-picker/resource-picker-popup.js +1 -1
  253. package/resource-picker/resource-picker.js +73 -71
  254. package/resource-picker/resource-picker.scss +66 -35
  255. package/rich-text/engine.d.ts +17 -19
  256. package/rich-text/format-html.d.ts +2 -0
  257. package/rich-text/index.d.ts +11 -7
  258. package/rich-text/index.js +1 -1
  259. package/rich-text/model.d.ts +6 -3
  260. package/rich-text/render-model.d.ts +4 -5
  261. package/rich-text/style.scss +295 -55
  262. package/rich-text/syntax.d.ts +5 -2
  263. package/rich-text/toolbar.d.ts +6 -6
  264. package/rich-text/translations.d.ts +5 -15
  265. package/search-input/index.js +1 -1
  266. package/search-input/native.d.ts +21 -2
  267. package/select.d.ts +22 -0
  268. package/select.js +1 -0
  269. package/selection-list.d.ts +1 -0
  270. package/selection-list.js +3 -1
  271. package/status-feedback/exit-snapshot.js +1 -1
  272. package/status-feedback/index.js +2 -2
  273. package/status-feedback/popover.js +9 -9
  274. package/status-feedback/render.js +3 -44
  275. package/status-feedback/status-feedback.scss +130 -34
  276. package/status-feedback/types.d.ts +4 -0
  277. package/status-feedback/use-auto-dismiss.d.ts +3 -0
  278. package/styles/_activity-message.scss +24 -7
  279. package/styles/_alert.scss +78 -17
  280. package/styles/_cell-editor-frame.scss +11 -0
  281. package/styles/_compositions.scss +404 -82
  282. package/styles/_control.scss +42 -12
  283. package/styles/_disclosure.scss +15 -5
  284. package/styles/_editor-counter.scss +16 -6
  285. package/styles/_editor-slider.scss +8 -4
  286. package/styles/_field-configurator.scss +321 -23
  287. package/styles/_fields-grid.scss +49 -0
  288. package/styles/_filter-controls.scss +10 -2
  289. package/styles/_icon-action.scss +48 -15
  290. package/styles/_loading.scss +12 -3
  291. package/styles/_motion.scss +32 -9
  292. package/styles/_palette.scss +0 -24
  293. package/styles/_primitives.scss +376 -116
  294. package/styles/_theme.scss +130 -86
  295. package/styles/_thresholds.scss +28 -25
  296. package/styles/_time-grid.scss +8 -3
  297. package/styles/_tokens.scss +6 -1
  298. package/styles/configurator-actions.scss +241 -0
  299. package/styles/pagination.css +213 -0
  300. package/styles/{legacy-rating.css → rating.css} +8 -3
  301. package/styles.css +1 -1
  302. package/styles.scss +3 -5
  303. package/surfaces.d.ts +38 -2
  304. package/surfaces.js +37 -134
  305. package/svelte/UiComponent.server.js +1 -48
  306. package/svelte/UiComponent.svelte +44 -32
  307. package/svelte.d.ts +1 -1
  308. package/svelte.js +33 -68
  309. package/switch/index.js +15 -14
  310. package/time-grid.d.ts +0 -1
  311. package/time-grid.js +38 -37
  312. package/timeline-track/_style.scss +96 -24
  313. package/timeline-track/component.d.ts +5 -1
  314. package/timeline-track/index.js +71 -54
  315. package/timeline-track/model.d.ts +9 -0
  316. package/timeline-track/model.js +10 -1
  317. package/ui.css +1 -1
  318. package/view-switcher.d.ts +23 -0
  319. package/vue.d.ts +51 -35
  320. package/vue.js +149 -178
  321. package/_chunks/chart-frame-BC99KjGa.js +0 -127
  322. package/_chunks/choice-chips-Cs4D-3nH.js +0 -110
  323. package/_chunks/compat.module-DDB2pm9O.js +0 -229
  324. package/_chunks/control-tooltip-ztgmsG7H.js +0 -100
  325. package/_chunks/dialog.parts-DBqo3Qwb.js +0 -134
  326. package/_chunks/dropdown-voWqmwAe.js +0 -357
  327. package/_chunks/editor-popup-D3JdS8l3.js +0 -81
  328. package/_chunks/mount-DZe_6VtR.js +0 -90
  329. package/_chunks/request-trail-IdNiFvKH.js +0 -347
  330. package/_chunks/rich-text-BzI1DyfF.js +0 -477
  331. package/avatar/index.view.d.ts +0 -25
  332. package/color-palette/native.view.d.ts +0 -15
  333. package/control-presentation.view.d.ts +0 -8
  334. package/dialog/dialog-action-footer.view.d.ts +0 -20
  335. package/dialog/dialog.dom.view.d.ts +0 -15
  336. package/form-controls/index.view.d.ts +0 -12
  337. package/formatting/control-tooltip.d.ts +0 -27
  338. package/native-controls.view.d.ts +0 -54
  339. package/react-native-select.d.ts +0 -6
  340. package/search-input/native.view.d.ts +0 -21
  341. package/styles/legacy-pagination.css +0 -112
  342. package/surfaces.view.d.ts +0 -63
  343. package/vue-native-select.d.ts +0 -9
@@ -25,6 +25,15 @@
25
25
  width: 100%;
26
26
  }
27
27
  }
28
+
29
+ // Validation follows the picker's width without contributing to popup sizing.
30
+ .rv-temporal-picker > .rv-alert,
31
+ .rv-temporal-draft > .rv-alert {
32
+ inline-size: 0;
33
+ min-inline-size: 100%;
34
+ white-space: normal;
35
+ }
36
+
28
37
  .rv-date-time-field {
29
38
  display: inline-flex;
30
39
  align-items: center;
@@ -41,8 +50,14 @@
41
50
  }
42
51
  }
43
52
 
44
- .rv-temporal-picker__dates { margin-block-end: 8px; }
45
- .rv-temporal-picker__dates > input { min-width: 0; width: 100%; flex: 1 1 0; }
53
+ .rv-temporal-picker__dates {
54
+ margin-block-end: 8px;
55
+ }
56
+ .rv-temporal-picker__dates > input {
57
+ min-width: 0;
58
+ width: 100%;
59
+ flex: 1 1 0;
60
+ }
46
61
 
47
62
  .rv-temporal-picker__header {
48
63
  display: flex;
@@ -50,66 +65,254 @@
50
65
  align-items: end;
51
66
  gap: 8px;
52
67
  margin-block-end: 8px;
53
- &:empty { display: none; }
54
- > .rv-temporal-picker__dates { flex: 1 1 112px; margin-block-end: 0; }
55
- > .rv-temporal-picker__time--single { flex: 0 1 132px; min-width: 110px; }
68
+ &:empty {
69
+ display: none;
70
+ }
71
+ > .rv-temporal-picker__dates {
72
+ flex: 1 1 112px;
73
+ margin-block-end: 0;
74
+ }
75
+ > .rv-temporal-picker__time--single {
76
+ flex: 0 1 132px;
77
+ min-width: 110px;
78
+ }
56
79
  }
57
80
 
58
81
  .rv-temporal-picker__header .rv-control,
59
82
  .rv-temporal-picker__times .rv-control {
60
- font-size: 12px;
61
- min-height: 32px;
62
- padding: 6px 8px;
83
+ font-size: var(--rv-control-font-size, 0.875rem);
84
+ min-height: var(--rv-control-height, 32px);
85
+ padding: var(--rv-control-padding, 6px 12px);
86
+ }
87
+ .rv-temporal-picker__dates {
88
+ flex-wrap: wrap;
63
89
  }
64
- .rv-temporal-picker__dates { flex-wrap: wrap; }
65
90
  .rv-temporal-picker__endpoint {
66
91
  display: flex;
67
92
  align-items: center;
68
93
  gap: 6px;
69
- flex: 0 1 194px;
94
+ flex: 0 1 224px;
70
95
  min-width: 0;
71
- > .rv-control { flex: 0 1 88px; min-width: 0; width: 88px; }
72
- > .rv-temporal-picker__time { flex: 0 1 100px; min-width: 86px; }
96
+ // Ten date characters plus the control's horizontal padding and borders.
97
+ > .rv-control {
98
+ flex: 0 0 auto;
99
+ min-width: 0;
100
+ width: calc(10ch + 26px);
101
+ }
102
+ > .rv-temporal-picker__time {
103
+ flex: 0 1 100px;
104
+ min-width: 86px;
105
+ }
106
+ }
107
+ .rv-temporal-picker__endpoint:not(:has(.rv-temporal-picker__time)) {
108
+ flex: 0 0 auto;
73
109
  }
74
- .rv-temporal-picker__endpoint:not(:has(.rv-temporal-picker__time)) { flex-basis: 110px; }
75
110
 
76
- .rv-temporal-picker .rv-temporal-picker__endpoint > .rv-temporal-picker__time { flex: 0 1 100px; }
111
+ .rv-temporal-picker .rv-temporal-picker__endpoint > .rv-temporal-picker__time {
112
+ flex: 0 1 100px;
113
+ }
77
114
 
78
115
  // Time-only surfaces follow their content rather than the calendar's minimum width.
79
116
  .rv-editor-popup.rv-editor-popup--time {
80
117
  min-width: min(240px, calc(100vw - 16px));
81
118
  width: 240px;
82
119
  }
83
- .rv-editor-popup.rv-editor-popup--datetime { width: min(540px, calc(100vw - 16px)); }
84
- .rv-temporal-picker__body { display: flex; align-items: start; flex-wrap: wrap; gap: 16px; }
85
- .rv-temporal-picker--datetime .rv-temporal-picker__body > .rv-time-selection { flex: 1 1 196px; }
86
- .rv-temporal-picker--time .rv-temporal-picker__body > .rv-time-selection { flex: 1 1 0; }
87
- .rv-temporal-picker--time .rv-temporal-picker__header { margin: 0; }
88
- .rv-temporal-picker__times { flex-wrap: wrap; }
89
- .rv-temporal-picker__times > .rv-time-selection { flex: 1 1 196px; }
120
+ .rv-temporal-picker__body {
121
+ display: flex;
122
+ align-items: start;
123
+ flex-wrap: wrap;
124
+ gap: 16px;
125
+ }
126
+ .rv-temporal-picker--datetime .rv-temporal-picker__body {
127
+ flex-direction: column;
128
+ align-items: stretch;
129
+ }
130
+ .rv-temporal-picker--datetime .rv-temporal-picker__body > .rv-time-selection {
131
+ flex: 0 0 auto;
132
+ }
133
+ .rv-temporal-picker--time .rv-temporal-picker__body > .rv-time-selection {
134
+ flex: 1 1 0;
135
+ }
136
+ .rv-temporal-picker--time .rv-temporal-picker__header {
137
+ margin: 0;
138
+ }
139
+ .rv-temporal-picker__times {
140
+ flex-wrap: wrap;
141
+ }
142
+ .rv-temporal-picker__times > .rv-time-selection {
143
+ flex: 1 1 196px;
144
+ }
90
145
  .rv-time-selection {
146
+ max-width: 208px;
91
147
  display: grid;
92
148
  gap: 12px;
93
149
  min-width: 0;
94
150
  width: 100%;
95
151
  font-variant-numeric: tabular-nums;
96
- &__entry { display: grid; gap: 6px; min-width: 0; font-size: 12px; font-weight: 500; }
97
- &__entry > .rv-control { width: 100%; min-width: 0; height: 34px; font: inherit; font-size: 14px; font-weight: 400; }
98
- &__entry input[type='time']::-webkit-calendar-picker-indicator { display: none; }
99
- &__columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
100
- &__columns--seconds { grid-template-columns: repeat(3, minmax(0, 1fr)); }
101
- &__column { display: grid; gap: 6px; min-width: 0; }
102
- &__label { color: var(--rv-ui-text-muted); font-size: 11px; text-align: center; }
103
- &__list.rv-editor-list { position: relative; height: 174px; overflow-y: auto; overscroll-behavior: contain; padding: 3px; border: 1px solid var(--rv-ui-border); border-radius: 6px; scrollbar-width: thin; }
104
- &__list .rv-editor-list__item { min-height: 32px; height: 32px; padding: 4px; text-align: center; font-size: 13px; }
105
- &__list .rv-editor-list__item:disabled { opacity: .35; cursor: default; }
106
- &__period .rv-editor-list { display: flex; height: auto; overflow: visible; }
107
- &__period .rv-editor-list__item { flex: 1 1 0; }
108
- &__empty { margin: 0; color: var(--rv-ui-text-muted); font-size: 12px; }
109
- }
110
- .rv-temporal-draft--time .rv-editor-actions { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--rv-ui-border); }
111
- .rv-temporal-draft--time .rv-editor-actions__clear { margin-inline-end: auto; }
152
+ &__entry-row {
153
+ display: flex;
154
+ align-items: end;
155
+ gap: 4px;
156
+ min-width: 0;
157
+ }
158
+ &__entry-row > .rv-time-selection__entry {
159
+ flex: 1 1 0;
160
+ }
161
+ &__clock {
162
+ display: grid;
163
+ gap: 12px;
164
+ min-width: 0;
165
+ }
166
+ &__toggle {
167
+ flex: 0 0 auto;
168
+ }
169
+ &__toggle[aria-expanded='true'] .rv-svg-icon {
170
+ transform: rotate(180deg);
171
+ }
172
+ &__entry {
173
+ display: grid;
174
+ gap: 6px;
175
+ min-width: 0;
176
+ font-size: 12px;
177
+ font-weight: 500;
178
+ }
179
+ &__entry > .rv-control {
180
+ width: 100%;
181
+ min-width: 0;
182
+ height: var(--rv-control-height, 32px);
183
+ font: inherit;
184
+ font-size: var(--rv-control-font-size, 0.875rem);
185
+ font-weight: 400;
186
+ }
187
+ &__entry input[type='time']::-webkit-calendar-picker-indicator {
188
+ display: none;
189
+ }
190
+ &__columns {
191
+ display: grid;
192
+ grid-template-columns: repeat(2, minmax(0, 1fr));
193
+ gap: 8px;
194
+ }
195
+ &__columns--seconds {
196
+ grid-template-columns: repeat(3, minmax(0, 1fr));
197
+ }
198
+ &__column {
199
+ display: grid;
200
+ gap: 6px;
201
+ min-width: 0;
202
+ }
203
+ &__label {
204
+ color: var(--rv-ui-text-muted);
205
+ font-size: 11px;
206
+ text-align: center;
207
+ }
208
+ &__list.rv-editor-list {
209
+ position: relative;
210
+ height: 174px;
211
+ overflow-y: auto;
212
+ overscroll-behavior: contain;
213
+ padding: 3px;
214
+ border: 1px solid var(--rv-ui-border);
215
+ border-radius: 6px;
216
+ scrollbar-width: thin;
217
+ }
218
+ &__list .rv-editor-list__item {
219
+ min-height: 32px;
220
+ height: 32px;
221
+ padding: 4px;
222
+ text-align: center;
223
+ font-size: 13px;
224
+ }
225
+ &__list .rv-editor-list__item:disabled {
226
+ opacity: 0.35;
227
+ cursor: default;
228
+ }
229
+ &__period {
230
+ border-block-start: 1px solid var(--rv-ui-border);
231
+ padding-block-start: 6px;
232
+ }
233
+ &__period .rv-editor-list {
234
+ display: flex;
235
+ height: auto;
236
+ overflow: visible;
237
+ }
238
+ &__period .rv-editor-list__item {
239
+ flex: 1 1 0;
240
+ }
241
+ &__empty {
242
+ margin: 0;
243
+ color: var(--rv-ui-text-muted);
244
+ font-size: 12px;
245
+ }
246
+ }
247
+ // Keep validation and actions in scroll order when a calendar and clock are tall.
248
+ .rv-editor-popup--datetime .rv-temporal-draft .rv-editor-actions,
249
+ .rv-editor-popup
250
+ .rv-temporal-draft:has(.rv-temporal-picker--multi-month)
251
+ .rv-editor-actions {
252
+ position: static;
253
+ }
254
+ .rv-temporal-draft--time .rv-editor-actions {
255
+ margin-top: 10px;
256
+ padding-top: 10px;
257
+ border-top: 1px solid var(--rv-ui-border);
258
+ }
259
+ .rv-temporal-draft--time .rv-editor-actions__clear {
260
+ margin-inline-end: auto;
261
+ }
262
+
263
+ // One calendar keeps its clock visible alongside it; multi-month calendars keep
264
+ // the optional clock below the calendar panels.
265
+ .rv-editor-popup:has(
266
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
267
+ .rv-time-selection
268
+ ) {
269
+ width: min(480px, calc(100vw - 16px));
270
+ }
271
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
272
+ .rv-temporal-picker__body {
273
+ flex-direction: row;
274
+ flex-wrap: nowrap;
275
+ gap: 8px;
276
+ }
277
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
278
+ .rv-temporal-picker__body
279
+ > .rv-time-selection {
280
+ flex: 0 1 208px;
281
+ border-inline-start: 1px solid var(--rv-ui-border);
282
+ padding-inline-start: 8px;
283
+ }
112
284
  @media (max-width: 540px) {
113
- .rv-temporal-picker--datetime .rv-temporal-picker__body { flex-direction: column; align-items: stretch; }
114
- .rv-temporal-picker--datetime .rv-temporal-picker__body > .rv-time-selection { flex-basis: auto; }
285
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
286
+ .rv-temporal-picker__body {
287
+ flex-direction: column;
288
+ }
289
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
290
+ .rv-temporal-picker__body
291
+ > .rv-time-selection {
292
+ flex-basis: auto;
293
+ border-inline-start: 0;
294
+ padding-inline-start: 0;
295
+ border-block-start: 1px solid var(--rv-ui-border);
296
+ padding-block-start: 8px;
297
+ }
298
+ }
299
+
300
+ .rv-editor-popup:has(
301
+ .rv-temporal-picker--datetime:not(.rv-temporal-picker--multi-month)
302
+ .revo-calendar--week-numbers
303
+ ):has(.rv-time-selection) {
304
+ width: min(512px, calc(100vw - 16px));
305
+ }
306
+
307
+ // Paired clocks need a wider surface than a single time-only field.
308
+ .rv-editor-popup:has(.rv-temporal-picker--time > .rv-temporal-picker__times) {
309
+ width: min(458px, calc(100vw - 16px));
310
+ }
311
+
312
+ // Grid adapters and standalone fields share the same compact single-clock size.
313
+ .rv-editor-popup:has(.rv-temporal-picker--time):not(
314
+ :has(.rv-temporal-picker__times)
315
+ ) {
316
+ min-width: min(234px, calc(100vw - 16px));
317
+ width: 234px;
115
318
  }
@@ -10,6 +10,8 @@ export interface TimeSelectionProps {
10
10
  min?: string;
11
11
  max?: string;
12
12
  step?: number;
13
+ /** Calendar compositions keep clock columns behind an explicit toggle. */
14
+ collapsible?: boolean;
13
15
  }
14
16
  /** Shared typed entry and bounded clock columns for time-only and date-time pickers. */
15
- export declare function TimeSelection({ value, label, text, onChange, format, precision, locale, min, max, step }: TimeSelectionProps): import("../_vendor/preact/src/index").JSX.Element;
17
+ export declare function TimeSelection({ value, label, text, onChange, format, precision, locale, min, max, step, collapsible, }: TimeSelectionProps): import("../_vendor/preact/src/index").JSX.Element;
@@ -55,6 +55,8 @@ export interface TemporalPickerProps extends TemporalPickerOptions {
55
55
  value: TemporalControlValue;
56
56
  onChange: (value: TemporalControlValue) => void;
57
57
  onValidityChange?: (valid: boolean) => void;
58
+ /** Called for each valid edit, including intermediate edits before selection completes. */
59
+ onValidChange?: (value: TemporalControlValue) => void;
58
60
  /** Complete calendar selection, distinct from an in-progress keyboard draft. */
59
61
  onSelectionComplete?: (value: TemporalControlValue) => void;
60
62
  }
@@ -65,10 +67,12 @@ export interface DateTimeFieldProps extends Omit<JSX.InputHTMLAttributes<HTMLInp
65
67
  disabled?: boolean;
66
68
  readOnly?: boolean;
67
69
  picker?: Omit<TemporalPickerOptions, 'kind' | 'selection'>;
70
+ /** Publish valid popup edits immediately when the picker uses auto-apply. */
71
+ livePickerUpdates?: boolean;
68
72
  onValueChange?: (value: string) => void;
69
73
  /** Existing product text adapters can keep their custom display/parser. */
70
74
  formatValue?: (value: string) => string;
71
75
  parseValue?: (text: string) => string | undefined;
72
76
  }
73
- /** One accessible name for both trigger and popup; chooseDate remains a compatibility fallback. */
77
+ /** One accessible name for both trigger and popup; date and time controls use their own localized action labels. */
74
78
  export declare function temporalPickerLabel(kind: LocalDateControlKind, text?: Partial<TemporalPickerText>): string;
@@ -1,2 +1,17 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './dialog-action-footer.view';
1
+ import { h } from '../_vendor/preact/src/index';
2
+ export interface NativeDialogAction {
3
+ label?: string;
4
+ disabled?: boolean;
5
+ onClick?: () => void;
6
+ }
7
+ export interface NativeDialogActionFooterProps {
8
+ cancel?: NativeDialogAction | false;
9
+ save?: NativeDialogAction | false;
10
+ deleteAction?: NativeDialogAction | false;
11
+ reset?: NativeDialogAction | false;
12
+ }
13
+ /** One TSX composition for Preact consumers and element-returning host adapters. */
14
+ export declare function ActionFooterView({ cancel, save, deleteAction, reset, start, end, children, actionsClass, class: className, ...props }: Record<string, any>): h.JSX.Element;
15
+ export declare function mountDialogActionFooter(host: HTMLElement, props: NativeDialogActionFooterProps): {
16
+ destroy(): void;
17
+ };
@@ -1,2 +1,15 @@
1
- /** Compatibility entry; markup is owned by the Preact TSX implementation. */
2
- export * from './dialog.dom.view';
1
+ import { DialogButtonVariant, DialogOpenOptions } from './dialog.types';
2
+ export interface DialogElements {
3
+ readonly root: HTMLElement;
4
+ readonly surface: HTMLElement;
5
+ readonly header: HTMLElement;
6
+ readonly body: HTMLElement;
7
+ readonly footer: HTMLElement;
8
+ readonly actions: HTMLElement;
9
+ }
10
+ /** Element-returning native API; shared TSX owns the entire dialog chrome. */
11
+ export declare function createDialogElements(document: Document, options: DialogOpenOptions, close: () => void): DialogElements;
12
+ export declare function createDialogCloseButton(document: Document, label: string, close: () => void): HTMLButtonElement;
13
+ export declare function createDialogButton(document: Document, label: string, action: () => void, variant?: DialogButtonVariant): HTMLButtonElement;
14
+ export declare function trapDialogFocus(root: HTMLElement, event: KeyboardEvent): void;
15
+ export declare function getDialogFocusableElements(root: HTMLElement): HTMLElement[];
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
2
2
  import { createPreactElement as t } from "../preact-mount.js";
3
- import { ButtonControl as n } from "../native-control.js";
4
- import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-DBqo3Qwb.js";
5
- //#region src/dialog/dialog.dom.view.tsx
3
+ import { t as n } from "../_chunks/native-control-B_fVA5bL.js";
4
+ import { a as r, i, n as a, r as o, s } from "../_chunks/dialog.parts-3w5FR06n.js";
5
+ //#region src/dialog/dialog.dom.tsx
6
6
  function c(n, c, l) {
7
7
  let u = f(), d, p, m, h, g;
8
8
  return {
@@ -59,4 +59,4 @@ export type DialogActionFooterProps = JSX.IntrinsicElements['footer'] & {
59
59
  readonly actionsClass?: string;
60
60
  };
61
61
  /** Default Cancel/Save, opt-in Delete/Reset; false hides any standard action. */
62
- export declare function DialogActionFooter(props: DialogActionFooterProps): import('../_vendor/preact/src/index').VNode<import('../_vendor/preact/src/index').Attributes>;
62
+ export declare function DialogActionFooter(props: DialogActionFooterProps): h.JSX.Element;
@@ -1 +1 @@
1
- export { t as DialogActionFooter, n as DialogActions, r as DialogBody, i as DialogCloseButton, a as DialogFooter, o as DialogForm, s as DialogHeader, c as DialogTitleInput, l as EditableDialogHeader } from "../_chunks/dialog.parts-DBqo3Qwb.js";
1
+ export { t as DialogActionFooter, n as DialogActions, r as DialogBody, i as DialogCloseButton, a as DialogFooter, o as DialogForm, s as DialogHeader, c as DialogTitleInput, l as EditableDialogHeader } from "../_chunks/dialog.parts-3w5FR06n.js";
@@ -15,7 +15,9 @@
15
15
  height: 100%;
16
16
  }
17
17
 
18
- .rv-distribution-chart__plot { overflow: visible; }
18
+ .rv-distribution-chart__plot {
19
+ overflow: visible;
20
+ }
19
21
 
20
22
  .rv-distribution-chart__series {
21
23
  fill: none;
@@ -23,7 +25,8 @@
23
25
  stroke-linecap: round;
24
26
  stroke-linejoin: round;
25
27
  stroke-width: 2.25px;
26
- transition: stroke var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
28
+ transition: stroke var(--rv-ui-motion-fast, 120ms)
29
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1));
27
30
  }
28
31
 
29
32
  .rv-distribution-chart__series.is-selected {
@@ -31,13 +34,22 @@
31
34
  }
32
35
 
33
36
  .rv-distribution-chart__area {
34
- fill: color-mix(in srgb, var(--rv-distribution-muted, var(--rv-ui-border)) 22%, transparent);
37
+ fill: color-mix(
38
+ in srgb,
39
+ var(--rv-distribution-muted, var(--rv-ui-border)) 22%,
40
+ transparent
41
+ );
35
42
  stroke: none;
36
- transition: fill var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
43
+ transition: fill var(--rv-ui-motion-fast, 120ms)
44
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1));
37
45
  }
38
46
 
39
47
  .rv-distribution-chart__area.is-selected {
40
- fill: color-mix(in srgb, var(--rv-distribution-accent, var(--rv-ui-accent)) 22%, transparent);
48
+ fill: color-mix(
49
+ in srgb,
50
+ var(--rv-distribution-accent, var(--rv-ui-accent)) 22%,
51
+ transparent
52
+ );
41
53
  }
42
54
 
43
55
  .rv-distribution-chart__data {
@@ -55,7 +67,9 @@
55
67
  // A datum's tooltip is contained by its stacking context. Raise the active datum,
56
68
  // rather than only the tooltip, so it can paint above later bar siblings.
57
69
  .rv-distribution-chart__datum:hover,
58
- .rv-distribution-chart__datum:focus-visible { z-index: 2; }
70
+ .rv-distribution-chart__datum:focus-visible {
71
+ z-index: 2;
72
+ }
59
73
 
60
74
  .rv-distribution-chart__datum.is-bar {
61
75
  display: flex;
@@ -76,7 +90,11 @@
76
90
  min-height: 3px;
77
91
  border-radius: 2px 2px 0 0;
78
92
  background: var(--rv-distribution-muted, var(--rv-ui-border));
79
- transition: background-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1)), opacity var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
93
+ transition:
94
+ background-color var(--rv-ui-motion-fast, 120ms)
95
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1)),
96
+ opacity var(--rv-ui-motion-fast, 120ms)
97
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1));
80
98
  }
81
99
 
82
100
  .rv-distribution-chart__datum.is-selected .rv-distribution-chart__bar {
@@ -94,7 +112,11 @@
94
112
  border: 2px solid var(--rv-distribution-muted, var(--rv-ui-border));
95
113
  border-radius: 50%;
96
114
  background: var(--rv-distribution-surface, var(--rv-ui-surface));
97
- transition: border-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1)), background-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, cubic-bezier(.2, 0, 0, 1));
115
+ transition:
116
+ border-color var(--rv-ui-motion-fast, 120ms)
117
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1)),
118
+ background-color var(--rv-ui-motion-fast, 120ms)
119
+ var(--rv-ui-motion-ease, cubic-bezier(0.2, 0, 0, 1));
98
120
  }
99
121
 
100
122
  .rv-distribution-chart__datum.is-selected .rv-distribution-chart__point {
@@ -108,89 +130,103 @@
108
130
  outline-offset: 2px;
109
131
  }
110
132
 
111
- .rv-distribution-chart__tooltip {
112
- position: absolute;
113
- z-index: 3;
114
- top: 4px;
115
- bottom: auto;
116
- left: 50%;
117
- display: none;
118
- width: max-content;
119
- max-width: 220px;
120
- padding: 7px 9px;
121
- transform: translateX(-50%);
122
- border: 1px solid var(--rv-distribution-border, var(--rv-ui-border));
123
- border-radius: 7px;
124
- background: var(--tooltip-bg, var(--rv-ui-text));
125
- box-shadow: 0 8px 24px var(--rv-ui-shadow);
126
- color: var(--tooltip-color, var(--rv-ui-surface));
127
- font: 11px/1.35 system-ui, sans-serif;
128
- pointer-events: none;
129
- white-space: nowrap;
130
- }
131
-
132
- .rv-distribution-chart__datum.is-point .rv-distribution-chart__tooltip {
133
- top: calc(100% + 7px);
134
- }
135
-
136
- .rv-distribution-chart__tooltip strong,
137
- .rv-distribution-chart__tooltip span { display: block; }
138
- .rv-distribution-chart__tooltip strong { font-weight: 600; }
139
- .rv-distribution-chart__tooltip span { opacity: 0.82; }
140
-
141
- .rv-distribution-chart__datum:first-child .rv-distribution-chart__tooltip {
142
- left: 0;
143
- transform: none;
144
- }
145
-
146
- .rv-distribution-chart__datum:last-child .rv-distribution-chart__tooltip {
147
- right: 0;
148
- left: auto;
149
- transform: none;
150
- }
151
-
152
- .rv-distribution-chart__datum:hover .rv-distribution-chart__tooltip,
153
- .rv-distribution-chart__datum:focus-visible .rv-distribution-chart__tooltip {
154
- display: block;
155
- }
156
-
157
133
  @media (prefers-reduced-motion: reduce) {
158
- .rv-distribution-chart__bar { transition: none; }
134
+ .rv-distribution-chart__bar {
135
+ transition: none;
136
+ }
159
137
  }
160
138
 
161
- .rv-distribution-chart__region { position: relative; min-width: 0; }
139
+ .rv-distribution-chart__region {
140
+ position: relative;
141
+ min-width: 0;
142
+ }
162
143
  .rv-distribution-chart__grid {
163
- position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between;
144
+ position: absolute;
145
+ inset: 0;
146
+ display: flex;
147
+ flex-direction: column;
148
+ justify-content: space-between;
164
149
  pointer-events: none;
165
- span { border-top: 1px dashed var(--rv-ui-border); }
150
+ span {
151
+ border-top: 1px dashed var(--rv-ui-border);
152
+ }
166
153
  }
167
154
  .rv-distribution-chart__labels {
168
- display: flex; justify-content: space-between; gap: 8px; margin-top: 10px;
169
- color: var(--rv-ui-text-muted); font-size: 11px;
170
- span { min-width: 0; max-width: 22%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
171
- &.is-bar span { flex: 1; text-align: center; }
155
+ display: flex;
156
+ justify-content: space-between;
157
+ gap: 8px;
158
+ margin-top: 10px;
159
+ color: var(--rv-ui-text-muted);
160
+ font-size: 11px;
161
+ span {
162
+ min-width: 0;
163
+ max-width: 22%;
164
+ overflow: hidden;
165
+ text-overflow: ellipsis;
166
+ white-space: nowrap;
167
+ }
168
+ &.is-bar span {
169
+ flex: 1;
170
+ text-align: center;
171
+ }
172
172
  }
173
173
  .rv-distribution-chart__value {
174
- position: absolute; top: 0; left: 50%; transform: translateX(-50%);
175
- font-size: 11px; font-variant-numeric: tabular-nums; color: var(--rv-ui-text);
174
+ position: absolute;
175
+ top: 0;
176
+ left: 50%;
177
+ transform: translateX(-50%);
178
+ font-size: 11px;
179
+ font-variant-numeric: tabular-nums;
180
+ color: var(--rv-ui-text);
181
+ }
182
+ .rv-distribution-chart__datum.is-point .rv-distribution-chart__value {
183
+ top: -20px;
176
184
  }
177
- .rv-distribution-chart__datum.is-point .rv-distribution-chart__value { top: -20px; }
178
185
  .rv-distribution-chart__legend {
179
- display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 16px;
180
- font-size: 12px; color: var(--rv-ui-text-muted);
186
+ display: flex;
187
+ align-items: center;
188
+ justify-content: center;
189
+ gap: 7px;
190
+ margin-top: 16px;
191
+ font-size: 12px;
192
+ color: var(--rv-ui-text-muted);
193
+ }
194
+ .rv-distribution-chart__legend i {
195
+ display: block;
196
+ width: 8px;
197
+ height: 8px;
198
+ border-radius: 2px;
199
+ background: var(--rv-distribution-accent, var(--rv-ui-accent));
181
200
  }
182
- .rv-distribution-chart__legend i,
183
- .rv-distribution-chart__tooltip i { display: block; width: 8px; height: 8px; border-radius: 2px; background: var(--rv-distribution-accent, var(--rv-ui-accent)); }
184
201
  .rv-distribution-chart__tooltip {
185
- background: var(--rv-ui-surface); color: var(--rv-ui-text);
186
- border-color: var(--rv-ui-border); box-shadow: 0 4px 12px var(--rv-ui-shadow);
187
- white-space: normal; overflow-wrap: anywhere;
188
- i { float: inline-start; margin-inline-end: 7px; margin-block-start: 3px; }
189
- &--line i { width: 3px; height: 22px; }
190
- &--dashed i { width: 8px; height: 0; background: transparent; border-top: 2px dashed var(--rv-ui-accent); margin-block-start: 7px; }
202
+ strong,
203
+ span {
204
+ display: block;
205
+ }
206
+ i {
207
+ display: block;
208
+ float: inline-start;
209
+ width: 8px;
210
+ height: 8px;
211
+ margin-inline-end: 7px;
212
+ margin-block-start: 3px;
213
+ border-radius: 2px;
214
+ background: var(--rv-distribution-accent, var(--rv-ui-accent));
215
+ }
216
+ &--line i {
217
+ width: 3px;
218
+ height: 22px;
219
+ }
220
+ &--dashed i {
221
+ height: 0;
222
+ background: transparent;
223
+ border-top: 2px dashed var(--rv-distribution-accent, var(--rv-ui-accent));
224
+ margin-block-start: 7px;
225
+ }
191
226
  }
192
-
193
227
  // Numeric/category progression stays left-to-right, including on RTL pages.
194
228
  // Keep SVG points, flex bars, labels and arrow-key order on the same axis.
195
229
  .rv-distribution-chart__region,
196
- .rv-distribution-chart__labels { direction: ltr; }
230
+ .rv-distribution-chart__labels {
231
+ direction: ltr;
232
+ }