@revolist/ui 4.0.4-rc → 4.0.4

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 (401) hide show
  1. package/MIGRATION.md +36 -0
  2. package/OWNERSHIP.md +36 -36
  3. package/README.md +65 -392
  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-BQYQLu8Q.js} +23 -23
  8. package/_chunks/{cell-visuals-E-2oEKHg.js → cell-visuals-r6DOOhGh.js} +7 -7
  9. package/_chunks/chart-frame-GprenwEg.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-C5OxD0GV.js +126 -0
  13. package/_chunks/{color-palette-D8vyPfld.js → color-palette-7siNch__.js} +22 -24
  14. package/_chunks/color-picker-Cfc9eqZb.js +143 -0
  15. package/_chunks/{component-C_T2VN5u.js → component-C3k_8uIq.js} +290 -275
  16. package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-DlVkpW3h.js} +1 -9
  17. package/_chunks/configurator-actions-vRnI54mO.js +155 -0
  18. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  19. package/_chunks/control-BRfF5DWQ.js +118 -0
  20. package/_chunks/{controller-hRBm_Lfz.js → controller-BbiQuRt-.js} +5 -5
  21. package/_chunks/controls-B3EgM_DS.js +650 -0
  22. package/_chunks/{date-control-DrVFX13g.js → date-control-87dcA5br.js} +5 -5
  23. package/_chunks/{date-time-qIhp5vaX.js → date-time-CfiFYodx.js} +332 -293
  24. package/_chunks/{delete-button-CW9vjLnk.js → delete-button-jneO24wa.js} +1 -1
  25. package/_chunks/dialog.parts-NqEEVc9P.js +131 -0
  26. package/_chunks/{duration-CL68Em0o.js → duration-BGZ_qJ99.js} +10 -10
  27. package/_chunks/{editor-commit-Bq3wSgvr.js → editor-commit-Dyo-FMgD.js} +1 -1
  28. package/_chunks/editor-popup-NNP9Fh9U.js +82 -0
  29. package/_chunks/field-configurator-DPulsY3l.js +288 -0
  30. package/_chunks/{field-context-D57PnBbH.js → field-context-C4_WrO2z.js} +1 -1
  31. package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-D4I8HpVp.js} +2 -2
  32. package/_chunks/icon-toolbar-BAAdEvr9.js +134 -0
  33. package/_chunks/{icons-Ci5mADVc.js → icons-B4qN13Yj.js} +1 -1
  34. package/_chunks/{iso-B0YHBK7m.js → iso-CJQl2kmq.js} +1 -1
  35. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  36. package/_chunks/minus-BOAR3A1C.js +4 -0
  37. package/_chunks/{model-mPO2tG2f.js → model-CFrBgRHm.js} +3 -3
  38. package/_chunks/mount-C8CnIW9k.js +267 -0
  39. package/_chunks/{native.view-ByyZ1CT5.js → native-CJm3eq3-.js} +1 -1
  40. package/_chunks/native-control-um1L1wgZ.js +649 -0
  41. package/_chunks/{number-input-BKwA5FnM.js → number-input-CKiA4d1N.js} +9 -9
  42. package/_chunks/{picker-h1P5RUgp.js → picker-igNshTRC.js} +5 -5
  43. package/_chunks/plus-CbGRkIGl.js +4 -0
  44. package/_chunks/{popup-CT2uD3go.js → popup-DECYM9FI.js} +116 -105
  45. package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-CepVfGUq.js} +2 -2
  46. package/_chunks/{render-m5eMMwFR.js → render-bTk3curw.js} +2 -2
  47. package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-B4w3aARt.js} +2 -2
  48. package/_chunks/request-trail-B1zVRPEf.js +762 -0
  49. package/_chunks/rich-text-Ci4d6dHn.js +842 -0
  50. package/_chunks/rotate-left-BF6G883o.js +4 -0
  51. package/_chunks/selection-list-tooltips-m00U3L6z.js +42 -0
  52. package/_chunks/title-tooltip-ncldbUwS.js +11 -0
  53. package/_chunks/tooltip-h-Z8yFBY.js +54 -0
  54. package/_chunks/tooltip-owner-BYho-vJl.js +19 -0
  55. package/_chunks/tooltip-session-CBtRMBPr.js +110 -0
  56. package/_chunks/tooltip-text-BN5WdGHn.js +12 -0
  57. package/_chunks/top-layer-popup-CKJ7VJOF.js +59 -0
  58. package/_dialog.scss +57 -22
  59. package/_form.scss +71 -21
  60. package/_legend.scss +25 -7
  61. package/_variables.scss +34 -32
  62. package/_view-switcher.scss +6 -0
  63. package/activity-message.d.ts +1 -1
  64. package/activity-message.js +1 -1
  65. package/ai/_chat.scss +35 -3
  66. package/ai/_style.scss +76 -16
  67. package/ai/chat.d.ts +3 -1
  68. package/ai/components.d.ts +16 -3
  69. package/ai/index.d.ts +1 -0
  70. package/ai/index.js +3 -3
  71. package/ai/mount.d.ts +30 -6
  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 +2 -0
  80. package/ai/translations.d.ts +1 -1
  81. package/angular/angular.d.ts +1 -1
  82. package/angular/angular.js +13 -7
  83. package/assignee/assignee.scss +28 -6
  84. package/assignee/index.js +6 -6
  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.js +1 -1
  90. package/badge.view.d.ts +8 -0
  91. package/brush-range/_brush-range.scss +55 -49
  92. package/brush-range/component.d.ts +1 -3
  93. package/brush-range/component.js +28 -28
  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 +2 -2
  98. package/buttons/remove-button.style.scss +1 -1
  99. package/buttons/svg-button.d.ts +1 -1
  100. package/buttons/svg-button.js +17 -17
  101. package/calendar/_calendar.scss +21 -25
  102. package/calendar/calendar.js +1 -1
  103. package/calendar/day.js +2 -2
  104. package/calendar/header.js +2 -3
  105. package/calendar/index.js +3 -3
  106. package/calendar/model.js +1 -1
  107. package/calendar/month-grid.js +2 -2
  108. package/calendar/translations.js +1 -1
  109. package/calendar/year-grid.js +2 -2
  110. package/cell-input.js +1 -1
  111. package/cell-input.scss +3 -7
  112. package/cell-visuals/badge.style.scss +6 -3
  113. package/cell-visuals/bar-chart.style.scss +2 -1
  114. package/cell-visuals/column-type.style.css +12 -0
  115. package/cell-visuals/index.js +1 -1
  116. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  117. package/cell-visuals/progress-line.style.scss +1 -4
  118. package/cell-visuals/sparkline.style.scss +2 -1
  119. package/cell-visuals/timeline.style.css +4 -2
  120. package/checkbox/checkbox.scss +6 -24
  121. package/checkbox/index.js +1 -1
  122. package/choice-chips/index.d.ts +3 -1
  123. package/choice-chips/index.js +1 -1
  124. package/color-palette/built-in-palettes.js +1 -1
  125. package/color-palette/chart-palettes.js +1 -1
  126. package/color-palette/color-palette.js +1 -1
  127. package/color-palette/color-palette.style.scss +88 -25
  128. package/color-palette/color-picker.constants.js +1 -1
  129. package/color-palette/color-picker.js +2 -2
  130. package/color-palette/color-picker.style.scss +23 -10
  131. package/color-palette/common-palettes.d.ts +1 -1
  132. package/color-palette/common-palettes.js +2 -2
  133. package/color-palette/gantt-palettes.js +1 -1
  134. package/color-palette/native.d.ts +15 -2
  135. package/color-palette/palette.js +1 -1
  136. package/color-palette/pivot-palettes.js +1 -1
  137. package/color-palette/platform-palettes.js +1 -1
  138. package/color-palette/pro-palettes.js +1 -1
  139. package/color-palette/scheduler-palettes.js +1 -1
  140. package/component-catalog.d.ts +9 -7
  141. package/configurator-actions.d.ts +67 -0
  142. package/configurator-actions.js +1 -0
  143. package/configurator-aggregation-list.d.ts +14 -0
  144. package/configurator-aggregation-list.js +63 -0
  145. package/configurator-drop-zone.d.ts +39 -0
  146. package/configurator-drop-zone.js +66 -0
  147. package/configurator-field-icon.d.ts +10 -0
  148. package/configurator-field-icon.js +1 -0
  149. package/configurator-focus.d.ts +4 -0
  150. package/configurator-focus.js +39 -0
  151. package/configurator-sections.d.ts +42 -0
  152. package/configurator-sections.js +71 -0
  153. package/control-attributes.js +1 -1
  154. package/control-presentation.d.ts +8 -2
  155. package/control-presentation.js +25 -20
  156. package/controls.d.ts +12 -2
  157. package/controls.js +4 -3
  158. package/core/anchored-popover.js +1 -1
  159. package/core/control-id.js +1 -1
  160. package/core/editor-popup-position.d.ts +6 -2
  161. package/core/editor-popup.d.ts +4 -0
  162. package/core/editor-popup.js +1 -1
  163. package/core/motion.js +1 -1
  164. package/core/popover-controller.d.ts +35 -0
  165. package/core/popover-controller.js +102 -0
  166. package/core/popup-ownership.d.ts +2 -0
  167. package/core/selection-list-tooltips.d.ts +2 -0
  168. package/core/title-tooltip.d.ts +2 -0
  169. package/core/tooltip-session.d.ts +29 -0
  170. package/core/tooltip-surface.d.ts +13 -0
  171. package/core/tooltip-text.d.ts +6 -0
  172. package/core/tooltip.d.ts +35 -0
  173. package/core/top-layer-popup.d.ts +4 -0
  174. package/core/top-layer-popup.js +1 -23
  175. package/date-time/attach.d.ts +1 -1
  176. package/date-time/date-control.d.ts +1 -1
  177. package/date-time/field.d.ts +4 -2
  178. package/date-time/index.js +1 -1
  179. package/date-time/style.scss +239 -36
  180. package/date-time/time-selection.d.ts +3 -1
  181. package/date-time/types.d.ts +5 -1
  182. package/dialog/dialog-action-footer.d.ts +17 -2
  183. package/dialog/dialog.dom.d.ts +15 -2
  184. package/dialog/dialog.dom.js +9 -9
  185. package/dialog/dialog.drag.js +1 -1
  186. package/dialog/dialog.parts.d.ts +1 -1
  187. package/dialog/dialog.parts.js +1 -1
  188. package/dialog/dialog.preact.js +1 -1
  189. package/distribution-chart/_distribution-chart.scss +113 -77
  190. package/distribution-chart/area-chart.js +2 -2
  191. package/distribution-chart/bar-chart.js +2 -2
  192. package/distribution-chart/chart-frame.d.ts +1 -1
  193. package/distribution-chart/index.d.ts +1 -1
  194. package/distribution-chart/index.js +1 -1
  195. package/distribution-chart/line-chart.js +2 -2
  196. package/dropdown/content.js +1 -1
  197. package/dropdown/control.js +1 -1
  198. package/dropdown/dropdown.service.js +1 -1
  199. package/dropdown/dropdown.types.d.ts +1 -1
  200. package/dropdown/editor-dropdown.style.scss +19 -9
  201. package/dropdown/index.js +2 -2
  202. package/dropdown/lookup-field.d.ts +5 -0
  203. package/dropdown/lookup-field.js +4 -3
  204. package/dropdown/popup.d.ts +2 -2
  205. package/dropdown/popup.js +1 -1
  206. package/duration/index.js +1 -1
  207. package/editor-actions.js +2 -2
  208. package/editor-layout/index.d.ts +4 -4
  209. package/editor-layout/index.js +40 -35
  210. package/editor-layout/style.scss +82 -18
  211. package/favicon.svg +9 -0
  212. package/field-configurator.d.ts +39 -1
  213. package/field-configurator.js +4 -170
  214. package/field-expansion.d.ts +9 -0
  215. package/field-reorder.hook.js +1 -1
  216. package/field-reorder.js +1 -1
  217. package/filter/filters/slider/_single-slider.scss +57 -38
  218. package/filter/filters/slider/_slider.scss +41 -33
  219. package/filter/filters/slider/component.js +1 -1
  220. package/filter/filters/slider/control.js +3 -1
  221. package/filter/filters/slider/inputs.js +1 -1
  222. package/filter/filters/slider/logic.js +1 -1
  223. package/filter/filters/slider/preact.js +1 -1
  224. package/filter/filters/slider/runtime.js +50 -23
  225. package/filter/filters/slider/single.js +2 -2
  226. package/filter-badge.js +2 -2
  227. package/filter-controls.d.ts +0 -1
  228. package/filter-controls.js +6 -7
  229. package/form-controls/index.d.ts +10 -2
  230. package/form-controls/index.js +7 -7
  231. package/form-controls/presentation.d.ts +1 -1
  232. package/form-controls/presentation.js +13 -13
  233. package/formatting/index.d.ts +1 -1
  234. package/formatting/index.js +26 -25
  235. package/formatting/styles.scss +14 -57
  236. package/framework.js +228 -225
  237. package/history-controls.js +27 -1
  238. package/html-controls.js +1 -1
  239. package/icon-toolbar.d.ts +62 -0
  240. package/icon-toolbar.js +1 -0
  241. package/icons/icon.d.ts +1 -1
  242. package/icons/icon.js +1 -1
  243. package/legend.d.ts +1 -1
  244. package/legend.js +1 -1
  245. package/masked-input/index.js +4 -4
  246. package/native-control.d.ts +1 -2
  247. package/native-control.js +1 -1
  248. package/native-controls.d.ts +54 -2
  249. package/native-styles.css +1 -1
  250. package/native-styles.scss +6 -2
  251. package/native.d.ts +3 -3
  252. package/native.js +48 -45
  253. package/number-input/index.d.ts +1 -1
  254. package/number-input/index.js +1 -1
  255. package/package.json +84 -1
  256. package/pagination.js +12 -12
  257. package/pdf-viewer/controller.js +1 -1
  258. package/pdf-viewer/header.d.ts +1 -1
  259. package/pdf-viewer/index.d.ts +2 -2
  260. package/pdf-viewer/index.js +3 -3
  261. package/pdf-viewer/search-bar.d.ts +1 -1
  262. package/pdf-viewer/status.d.ts +1 -1
  263. package/pdf-viewer/style.scss +203 -42
  264. package/pickers.d.ts +5 -1
  265. package/preact-mount.js +1 -1
  266. package/preact.d.ts +13 -10
  267. package/preact.js +109 -64
  268. package/progress/_bar.scss +9 -3
  269. package/progress/_circular.scss +2 -1
  270. package/progress/bar.js +1 -1
  271. package/progress/circular.js +1 -1
  272. package/progress/range.js +1 -1
  273. package/rating-choice.js +1 -1
  274. package/react-adapter.d.ts +4 -2
  275. package/react-control.d.ts +2 -0
  276. package/react-control.js +3 -3
  277. package/react.d.ts +7 -8
  278. package/react.js +69 -68
  279. package/reorder-list.d.ts +1 -1
  280. package/reorder-list.js +1 -1
  281. package/reorder-list.scss +59 -17
  282. package/resource-picker/resource-picker-avatar.js +1 -1
  283. package/resource-picker/resource-picker-option.js +1 -1
  284. package/resource-picker/resource-picker-popup.js +2 -2
  285. package/resource-picker/resource-picker.js +75 -73
  286. package/resource-picker/resource-picker.scss +62 -34
  287. package/resource-picker/resource-picker.utils.js +1 -1
  288. package/rich-text/engine.d.ts +1 -0
  289. package/rich-text/format-html.d.ts +2 -0
  290. package/rich-text/index.d.ts +4 -0
  291. package/rich-text/index.js +1 -1
  292. package/rich-text/model.d.ts +2 -0
  293. package/rich-text/style.scss +293 -44
  294. package/rich-text/syntax.d.ts +5 -0
  295. package/rich-text/toolbar.d.ts +1 -1
  296. package/rich-text/translations.d.ts +2 -0
  297. package/robots.txt +4 -0
  298. package/search-input/index.js +2 -2
  299. package/search-input/native.d.ts +21 -2
  300. package/segmented-switch/index.js +1 -1
  301. package/select.d.ts +3 -1
  302. package/select.js +1 -1
  303. package/selection-list.d.ts +1 -0
  304. package/selection-list.js +3 -1
  305. package/status-feedback/badge.js +2 -2
  306. package/status-feedback/exit-snapshot.js +5 -5
  307. package/status-feedback/header.js +2 -2
  308. package/status-feedback/icons.js +1 -1
  309. package/status-feedback/index.js +1 -1
  310. package/status-feedback/item.js +2 -2
  311. package/status-feedback/motion.js +1 -1
  312. package/status-feedback/placement.js +1 -1
  313. package/status-feedback/popover.js +5 -5
  314. package/status-feedback/render.js +1 -1
  315. package/status-feedback/status-feedback.scss +124 -35
  316. package/styles/_activity-message.scss +24 -7
  317. package/styles/_alert.scss +78 -17
  318. package/styles/_cell-editor-frame.scss +11 -0
  319. package/styles/_compositions.scss +400 -80
  320. package/styles/_control.scss +30 -8
  321. package/styles/_disclosure.scss +15 -5
  322. package/styles/_editor-counter.scss +16 -6
  323. package/styles/_editor-slider.scss +8 -4
  324. package/styles/_field-configurator.scss +321 -23
  325. package/styles/_fields-grid.scss +49 -0
  326. package/styles/_filter-controls.scss +10 -2
  327. package/styles/_icon-action.scss +48 -15
  328. package/styles/_loading.scss +12 -3
  329. package/styles/_motion.scss +32 -9
  330. package/styles/_palette.scss +0 -24
  331. package/styles/_primitives.scss +369 -110
  332. package/styles/_theme.scss +130 -86
  333. package/styles/_thresholds.scss +28 -25
  334. package/styles/_time-grid.scss +8 -3
  335. package/styles/_tokens.scss +6 -1
  336. package/styles/color-roles.js +1 -1
  337. package/styles/configurator-actions.scss +241 -0
  338. package/styles/pagination.css +213 -0
  339. package/styles/{legacy-rating.css → rating.css} +8 -3
  340. package/styles.css +1 -1
  341. package/styles.scss +3 -5
  342. package/surfaces.d.ts +38 -2
  343. package/surfaces.js +37 -134
  344. package/svelte/UiComponent.svelte +44 -11
  345. package/svelte-control.js +1 -1
  346. package/svelte.d.ts +1 -1
  347. package/svelte.js +5 -5
  348. package/switch/index.js +16 -15
  349. package/time-grid.d.ts +0 -1
  350. package/time-grid.js +39 -38
  351. package/timeline-track/_style.scss +96 -24
  352. package/timeline-track/index.js +3 -3
  353. package/timeline-track/model.js +1 -1
  354. package/ui.css +1 -1
  355. package/view-switcher.d.ts +23 -0
  356. package/vue-badge.js +1 -1
  357. package/vue-control.js +1 -1
  358. package/vue-segmented-switch.js +1 -1
  359. package/vue.d.ts +29 -32
  360. package/vue.js +118 -123
  361. package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
  362. package/_chunks/choice-chips-CHQTUdLs.js +0 -110
  363. package/_chunks/color-picker-CudqPYZo.js +0 -138
  364. package/_chunks/control-AHKXD5Eu.js +0 -93
  365. package/_chunks/control-tooltip-uscKfAnV.js +0 -100
  366. package/_chunks/controls-DsNi8V8I.js +0 -630
  367. package/_chunks/dialog.parts-CKGkC5zP.js +0 -134
  368. package/_chunks/editor-popup-WDdtVDNA.js +0 -81
  369. package/_chunks/history-controls-B3u3INEK.js +0 -27
  370. package/_chunks/mount-DQ1cpppK.js +0 -257
  371. package/_chunks/native-control-C_yok8_-.js +0 -605
  372. package/_chunks/request-trail-DSlFix6i.js +0 -618
  373. package/_chunks/rich-text-CH7gIqOS.js +0 -636
  374. package/_shared/data-query/binding.d.ts +0 -30
  375. package/_shared/data-query/blocks.d.ts +0 -30
  376. package/_shared/data-query/commands.d.ts +0 -47
  377. package/_shared/data-query/contracts.d.ts +0 -106
  378. package/_shared/data-query/cursor-reader.d.ts +0 -25
  379. package/_shared/data-query/direct-binding.d.ts +0 -3
  380. package/_shared/data-query/index.d.ts +0 -23
  381. package/_shared/data-query/infinite-binding.d.ts +0 -18
  382. package/_shared/data-query/keys.d.ts +0 -9
  383. package/_shared/data-query/limiter.d.ts +0 -12
  384. package/_shared/data-query/load-options.d.ts +0 -25
  385. package/_shared/data-query/materialize.d.ts +0 -2
  386. package/_shared/data-query/policy.d.ts +0 -14
  387. package/_shared/data-query/provider-queries.d.ts +0 -22
  388. package/_shared/data-query/reader.d.ts +0 -23
  389. package/_shared/data-query/remote-load.d.ts +0 -7
  390. package/_shared/data-query/source.d.ts +0 -40
  391. package/avatar/index.view.d.ts +0 -25
  392. package/color-palette/native.view.d.ts +0 -15
  393. package/control-presentation.view.d.ts +0 -8
  394. package/dialog/dialog-action-footer.view.d.ts +0 -20
  395. package/dialog/dialog.dom.view.d.ts +0 -15
  396. package/form-controls/index.view.d.ts +0 -10
  397. package/formatting/control-tooltip.d.ts +0 -27
  398. package/native-controls.view.d.ts +0 -54
  399. package/search-input/native.view.d.ts +0 -21
  400. package/styles/legacy-pagination.css +0 -112
  401. package/surfaces.view.d.ts +0 -63
@@ -0,0 +1,4 @@
1
+ //#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/rotate-left.svg?raw
2
+ var e = "<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=\"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"/></svg>";
3
+ //#endregion
4
+ export { e as t };
@@ -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 };
@@ -0,0 +1,11 @@
1
+ import { r as e, t } from "./hooks.module-CG3gN83z.js";
2
+ import { TooltipController as n } from "../core/popover-controller.js";
3
+ //#region package/core/title-tooltip.ts
4
+ function r(r, i) {
5
+ let a = t(null), o = t(i);
6
+ return o.current = i, e(() => {
7
+ if (a.current && r) return new n().bind(a.current, r, { onEscape: () => o.current?.() });
8
+ }, [r]), a;
9
+ }
10
+ //#endregion
11
+ export { r as t };
@@ -0,0 +1,54 @@
1
+ import { i as e, o as t, r as n } from "./hooks.module-CG3gN83z.js";
2
+ import { t as r } from "./jsxRuntime.module-F6UFnpT-.js";
3
+ import { t as i } from "./tooltip-session-CBtRMBPr.js";
4
+ import { createControlId as a } from "../core/control-id.js";
5
+ //#region package/core/tooltip.tsx
6
+ function o(o, s = !0, c) {
7
+ let [l] = e(() => a("rv-format-control-tooltip")), [u] = e(() => new i());
8
+ u.delay = c?.delay ?? 0;
9
+ let d = t(() => u.hide(), [u]), f = t((e) => {
10
+ e || u.hide(), u.setSurface(e);
11
+ }, [u]);
12
+ return n(() => {
13
+ u.hide();
14
+ }, [o, c?.delay]), n(() => () => u.destroy(), [u]), {
15
+ id: l,
16
+ hide: d,
17
+ triggerProps: {
18
+ "aria-describedby": l,
19
+ onFocus: (e) => u.focus(e.currentTarget),
20
+ onBlur: () => u.blur(),
21
+ onMouseEnter: (e) => u.show(e.currentTarget),
22
+ onMouseLeave: (e) => u.leave(e?.currentTarget),
23
+ onPointerDown: (e) => u.pointerDown(),
24
+ onPointerCancel: () => u.hide(),
25
+ onKeyDown: (e) => u.keyDown(e)
26
+ },
27
+ tooltip: /* @__PURE__ */ r("span", {
28
+ ref: f,
29
+ id: l,
30
+ class: `rv-tooltip ${c?.className ?? "rv-format-control-tooltip"}`,
31
+ role: "tooltip",
32
+ "data-visible": "false",
33
+ hidden: !0,
34
+ children: c?.content ?? o
35
+ })
36
+ };
37
+ }
38
+ function s({ id: a, text: o, content: s, visible: c, anchor: l = null, className: u = "rv-format-control-tooltip" }) {
39
+ let [d] = e(() => new i()), f = t((e) => {
40
+ e || d.hide(), d.setSurface(e);
41
+ }, [d]);
42
+ return n(() => (c && l ? d.show(l) : d.hide(), () => d.hide()), [c, l]), n(() => () => d.destroy(), [d]), /* @__PURE__ */ r("span", {
43
+ ref: f,
44
+ id: a,
45
+ class: `rv-tooltip ${u}`,
46
+ role: "tooltip",
47
+ "data-visible": c,
48
+ hidden: !c,
49
+ children: s ?? o
50
+ });
51
+ }
52
+ var c = o;
53
+ //#endregion
54
+ export { o as n, c as r, s as t };
@@ -0,0 +1,19 @@
1
+ //#region internal/chart-utils/src/tooltip-owner.ts
2
+ var e = Symbol.for("@revolist/tooltip-owner");
3
+ function t(t, n, r) {
4
+ let i = t, a = i[e];
5
+ a?.owner !== n && (Object.defineProperty(i, e, {
6
+ configurable: !0,
7
+ writable: !0,
8
+ value: {
9
+ owner: n,
10
+ dismiss: r
11
+ }
12
+ }), a?.dismiss());
13
+ }
14
+ function n(t, n) {
15
+ let r = t;
16
+ r[e]?.owner === n && delete r[e];
17
+ }
18
+ //#endregion
19
+ export { n, t };
@@ -0,0 +1,110 @@
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
+ var o = class {
5
+ anchor;
6
+ surface;
7
+ timer;
8
+ mode;
9
+ cleanup;
10
+ mounted = !1;
11
+ pointerFocus = !1;
12
+ open = !1;
13
+ addedDescription = !1;
14
+ onHide;
15
+ onEscape;
16
+ delay = 0;
17
+ get isOpen() {
18
+ return this.open;
19
+ }
20
+ get isPending() {
21
+ return this.timer !== void 0;
22
+ }
23
+ setSurface(e) {
24
+ this.surface = e ?? void 0;
25
+ }
26
+ show(e) {
27
+ this.anchor === e && this.open || (this.hide(), this.anchor = e, this.listen(e), this.delay > 0 ? this.timer = setTimeout(() => {
28
+ this.timer = void 0, this.present();
29
+ }, this.delay) : this.present());
30
+ }
31
+ present() {
32
+ let r = this.anchor, i = this.surface;
33
+ if (!r || !i || !r.isConnected) {
34
+ this.hide();
35
+ return;
36
+ }
37
+ a(r.ownerDocument, this, () => this.hide()), e(i), this.mounted = !i.isConnected, this.mounted && r.ownerDocument.body.append(i), i.hidden = !1, i.dataset.visible = "true", Object.assign(i.style, {
38
+ position: "fixed",
39
+ inset: "auto",
40
+ margin: "0",
41
+ transform: "none",
42
+ visibility: "visible",
43
+ positionAnchor: "auto",
44
+ positionArea: "none"
45
+ }), this.mode = n(i, "block");
46
+ let o = r.ownerDocument.defaultView, s = t(r.getBoundingClientRect(), i.getBoundingClientRect(), {
47
+ width: o?.innerWidth ?? 0,
48
+ height: o?.innerHeight ?? 0
49
+ });
50
+ Object.assign(i.style, {
51
+ left: `${s.left}px`,
52
+ top: `${s.top}px`
53
+ });
54
+ let c = new Set((r.getAttribute("aria-describedby") ?? "").split(/\s+/).filter(Boolean));
55
+ this.addedDescription = !c.has(i.id), c.add(i.id), r.setAttribute("aria-describedby", [...c].join(" ")), this.open = !0;
56
+ }
57
+ hide() {
58
+ clearTimeout(this.timer), this.timer = void 0, this.cleanup?.(), this.cleanup = void 0;
59
+ let e = this.anchor, t = this.surface;
60
+ if (e && i(e.ownerDocument, this), t && this.open) {
61
+ if (r(t, this.mode), t.hidden = !0, t.dataset.visible = "false", e && this.addedDescription) {
62
+ let n = (e.getAttribute("aria-describedby") ?? "").split(/\s+/).filter((e) => e && e !== t.id);
63
+ n.length ? e.setAttribute("aria-describedby", n.join(" ")) : e.removeAttribute("aria-describedby");
64
+ }
65
+ this.mounted && t.remove();
66
+ }
67
+ let n = this.open;
68
+ this.open = !1, n && this.onHide?.(), this.mode = void 0, this.mounted = !1;
69
+ }
70
+ focus(e) {
71
+ this.show(e);
72
+ }
73
+ blur() {
74
+ this.pointerFocus = !1, this.hide();
75
+ }
76
+ pointerDown() {
77
+ this.pointerFocus = !0;
78
+ }
79
+ leave(e) {
80
+ (!e || this.pointerFocus || e.ownerDocument.activeElement !== e) && this.hide();
81
+ }
82
+ keyDown(e) {
83
+ e.key === "Escape" && (this.open || this.isPending) && !e.defaultPrevented ? (e.preventDefault(), e.stopPropagation(), this.hide(), this.onEscape?.()) : (e.key === "Enter" || e.key === " ") && this.hide();
84
+ }
85
+ destroy() {
86
+ this.hide(), this.surface = void 0, this.anchor = void 0;
87
+ }
88
+ listen(e) {
89
+ let t = e.ownerDocument, n = t.defaultView, r = e.closest("[popover]"), i = () => this.hide(), a = (t) => {
90
+ t.composedPath().includes(e) || this.hide();
91
+ }, o = (n) => {
92
+ let r = n.target;
93
+ (r === t || r?.contains?.(e)) && this.hide();
94
+ }, s = () => {
95
+ r?.matches(":popover-open") || this.hide();
96
+ }, c = (e) => {
97
+ e.key === "Escape" && this.keyDown(e);
98
+ }, l = n?.MutationObserver, u = l ? new l(() => {
99
+ e.isConnected || this.hide();
100
+ }) : void 0;
101
+ u?.observe(t, {
102
+ childList: !0,
103
+ subtree: !0
104
+ }), t.addEventListener("keydown", c, !0), t.addEventListener("pointerdown", a, !0), t.addEventListener("scroll", o, !0), t.addEventListener("visibilitychange", i), n?.addEventListener("resize", i), n?.addEventListener("blur", i), r?.addEventListener("toggle", s), this.cleanup = () => {
105
+ u?.disconnect(), t.removeEventListener("keydown", c, !0), t.removeEventListener("pointerdown", a, !0), t.removeEventListener("scroll", o, !0), t.removeEventListener("visibilitychange", i), n?.removeEventListener("resize", i), n?.removeEventListener("blur", i), r?.removeEventListener("toggle", s);
106
+ };
107
+ }
108
+ };
109
+ //#endregion
110
+ export { o as t };
@@ -0,0 +1,12 @@
1
+ import { c as e } from "./preact.module-BBM36DnO.js";
2
+ import { t } from "./title-tooltip-ncldbUwS.js";
3
+ //#region package/core/tooltip-text.tsx
4
+ function n({ as: n = "span", title: r, children: i, ...a }) {
5
+ let o = t(r);
6
+ return e(n, {
7
+ ...a,
8
+ ref: o
9
+ }, i);
10
+ }
11
+ //#endregion
12
+ export { n as t };
@@ -0,0 +1,59 @@
1
+ import { calculateAnchoredPopoverPosition as e } from "../core/anchored-popover.js";
2
+ import { c as t } from "./preact.module-BBM36DnO.js";
3
+ import { createPreactElement as n } from "../preact-mount.js";
4
+ //#region package/core/tooltip-surface.ts
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
+ function i(e) {
7
+ if (e.querySelector("style[data-rv-tooltip-styles]")) return;
8
+ let i = e.nodeType === 9 ? e : e.ownerDocument, a = n(i, t("style", { "data-rv-tooltip-styles": "" }, r));
9
+ e.nodeType === 9 ? i.head.append(a) : e.append(a);
10
+ }
11
+ function a(e) {
12
+ e.classList.add("rv-tooltip"), e.setAttribute("role", "tooltip");
13
+ let t = e.getRootNode();
14
+ i(t.nodeType === 11 && "host" in t ? t : e.ownerDocument);
15
+ }
16
+ function o(t, n, r) {
17
+ let i = e(t, n, r), a = t.top - n.height - 8;
18
+ return a >= 8 ? {
19
+ left: Math.max(8, Math.min(t.left + (t.width - n.width) / 2, r.width - n.width - 8)),
20
+ top: a
21
+ } : i;
22
+ }
23
+ //#endregion
24
+ //#region package/core/popup-ownership.ts
25
+ function s(e, t) {
26
+ if (!e || !t) return !1;
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) => {
28
+ let n = e.ownerDocument.getElementById(t);
29
+ return !!n && r(n);
30
+ })));
31
+ return r(e);
32
+ }
33
+ //#endregion
34
+ //#region package/core/top-layer-popup.ts
35
+ var c = /* @__PURE__ */ new WeakMap();
36
+ function l(e, t = "flex") {
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") {
38
+ e.setAttribute("popover", "manual");
39
+ try {
40
+ return e.showPopover(), "popover";
41
+ } catch {
42
+ e.removeAttribute("popover");
43
+ }
44
+ }
45
+ return e.style.display = t, "fallback";
46
+ }
47
+ function u(e, t) {
48
+ let n = c.get(e);
49
+ if (n !== void 0 && (n === null ? e.removeAttribute("data-rv-ui-surface") : e.setAttribute("data-rv-ui-surface", n), c.delete(e)), t === "popover" && typeof e.hidePopover == "function") try {
50
+ e.hidePopover(), e.style.removeProperty("display");
51
+ return;
52
+ } catch {}
53
+ e.style.display = "none";
54
+ }
55
+ function d(e, t) {
56
+ return t ? e.contains(t) ? !0 : [...e.querySelectorAll("[aria-controls]")].some((n) => n.getAttribute("aria-controls")?.split(/\s+/).some((n) => e.ownerDocument.getElementById(n)?.contains(t))) : !1;
57
+ }
58
+ //#endregion
59
+ export { r as a, a as c, s as i, d as n, o, l as r, i as s, u as t };
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
+ }