@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
package/README.md CHANGED
@@ -1,428 +1,101 @@
1
- # Revo UI
1
+ # Revo UI — A minimal, framework-agnostic UI library
2
2
 
3
- **RevoGrid's UI component library for financial apps, reporting dashboards, and project management.**
4
-
5
- Compose data-rich workspaces with shared controls, pickers, charts, timelines, dialogs, and feedback. Use React, Vue, Angular, Svelte, Preact, or vanilla TypeScript. Revo UI is published as the public npm package **[`@revolist/ui`](https://www.npmjs.com/package/@revolist/ui)** and is MIT licensed for personal and commercial projects.
6
-
7
- [GitHub repository](https://github.com/revolist/revo-ui) · [npm package](https://www.npmjs.com/package/@revolist/ui) · [Live components](https://ui.rv-grid.com/components/buttons/) · [Interactive overview](https://ui.rv-grid.com/) · [Framework guides](https://ui.rv-grid.com/frameworks/) · [RevoGrid](https://rv-grid.com/) · [Pro documentation](https://pro.rv-grid.com/)
8
-
9
- [![Revo UI components for financial dashboards and project management](https://raw.githubusercontent.com/revolist/revo-ui/main/docs/assets/components-preview.jpg)](https://ui.rv-grid.com/)
3
+ [![npm version](https://img.shields.io/npm/v/%40revolist%2Fui?style=flat&color=2563eb)](https://www.npmjs.com/package/@revolist/ui)
4
+ [![MIT license](https://img.shields.io/github/license/revolist/revo-ui?style=flat&color=16a34a)](LICENSE)
5
+ [![Build status](https://img.shields.io/github/actions/workflow/status/revolist/revo-ui/pages.yml?branch=main&style=flat&label=build)](https://github.com/revolist/revo-ui/actions/workflows/pages.yml)
6
+ [![0 runtime dependencies](https://img.shields.io/badge/dependencies-0-16a34a?style=flat)](https://www.npmjs.com/package/@revolist/ui?activeTab=dependencies)
7
+ [![Tree-shakeable ESM](https://img.shields.io/badge/tree%20shaking-supported-16a34a?style=flat)](https://github.com/revolist/revo-ui/blob/main/package.json)
10
8
 
11
- Explore the [Revo UI gallery](https://ui.rv-grid.com/) for live previews, component variants, and expandable code examples. The [gallery repository](https://github.com/revolist/revo-ui) contains the gallery app and generated component API documentation.
12
-
13
- ## Contents
9
+ **RevoGrid's UI component library for financial apps, reporting dashboards, and project management.**
14
10
 
15
- - [Getting started](#getting-started)
16
- - [Framework integrations](#framework-integrations)
17
- - [Components](#components)
18
- - [Complete component reference](#complete-component-reference)
19
- - [Usage contracts](#usage-contracts)
20
- - [Buttons and navigation](#buttons-and-navigation)
21
- - [Dropdowns with user images](#dropdowns-with-user-images)
22
- - [Advanced slider](#advanced-slider)
23
- - [Conditional chart colors](#conditional-chart-colors)
24
- - [Interactive timeline](#interactive-timeline)
25
- - [Theming, sizing, and motion](#theming-sizing-and-motion)
26
- - [Accessibility and localization](#accessibility-and-localization)
27
- - [RevoGrid products](#revogrid-products)
28
- - [Repository and support](#repository-and-support)
29
- - [Licensing](#licensing)
11
+ Compose data-rich workspaces with shared controls, pickers, charts, timelines, dialogs, and feedback. Use React, Vue, Angular, Svelte, Preact, or vanilla TypeScript.
30
12
 
31
- ## Getting started
13
+ [Live components](https://ui.rv-grid.com/components/buttons/) · [Interactive overview](https://ui.rv-grid.com/) · [Framework guides](https://ui.rv-grid.com/frameworks/) · [RevoGrid](https://rv-grid.com/) · [Pro documentation](https://pro.rv-grid.com/)
32
14
 
33
- Release publishing sends `@revolist/ui` to both npm and GitHub Packages. npm is the default for public installation. To install the GitHub Packages copy, configure `@revolist:registry=https://npm.pkg.github.com` and authenticate with a token that has package read access. GitHub package visibility is managed separately in GitHub's package settings.
15
+ [![Revo UI components for financial dashboards and project management](docs/assets/components-preview.jpg)](https://ui.rv-grid.com/)
34
16
 
35
- Install the public package from npm. The published package bundles its Preact rendering runtime; install your application's host framework separately. React adapters require both `react` and `react-dom`. Install `preact` separately when using Preact in your own application code.
17
+ ## Get started
36
18
 
37
19
  ```sh
38
20
  pnpm add @revolist/ui
39
21
  ```
40
22
 
41
- Import the shared stylesheet once in your application entry point:
23
+ Import the shared styles once:
42
24
 
43
25
  ```ts
44
26
  import '@revolist/ui/styles.css';
45
27
  ```
46
28
 
47
- A controlled React example:
48
-
49
- ```tsx
50
- import { useState } from 'react';
51
- import { Button, TextInput } from '@revolist/ui/react';
52
-
53
- export function ReportName() {
54
- const [name, setName] = useState('Monthly revenue');
55
- return (
56
- <>
57
- <TextInput aria-label="Report name" value={name} onValueChange={setName} />
58
- <Button rounded variant="primary" onClick={() => console.log(name)}>
59
- Create report
60
- </Button>
61
- </>
62
- );
63
- }
64
- ```
29
+ Choose your framework for setup instructions and usage examples:
65
30
 
66
- Controls can be used without a RevoGrid instance. Grid cell templates, providers, row data, and product-specific scheduling logic stay in their owning product packages.
31
+ [React](https://ui.rv-grid.com/frameworks/react/) · [Vue](https://ui.rv-grid.com/frameworks/vue/) · [Angular](https://ui.rv-grid.com/frameworks/angular/) · [Svelte](https://ui.rv-grid.com/frameworks/svelte/) · [Preact](https://ui.rv-grid.com/frameworks/preact/) · [Vanilla TypeScript](https://ui.rv-grid.com/frameworks/vanilla-typescript/)
67
32
 
68
- ## Framework integrations
33
+ ## Framework support
69
34
 
70
- | Framework | Entry point | Integration | Guide |
71
- | --- | --- | --- | --- |
72
- | React | `@revolist/ui/react` | Named React components; controlled props, callbacks, children, and custom content. | [React usage](https://ui.rv-grid.com/frameworks/react/) |
73
- | Vue | `@revolist/ui/vue` | Named Vue components, events and slots; declared value models support `v-model`. | [Vue usage](https://ui.rv-grid.com/frameworks/vue/) |
74
- | Angular | `@revolist/ui/angular` | Standalone `UiComponent` host with `component`, `props`, `uiEvent`, `valueChange`, and `rvUiSlot` templates. | [Angular usage](https://ui.rv-grid.com/frameworks/angular/) |
75
- | Svelte 5 | `@revolist/ui/svelte` | `UiComponent` host with reactive props, callbacks, and content snippets. | [Svelte usage](https://ui.rv-grid.com/frameworks/svelte/) |
76
- | Preact | `@revolist/ui/preact` | Direct components with Preact state, hooks, and render callbacks. | [Preact usage](https://ui.rv-grid.com/frameworks/preact/) |
77
- | Vanilla TypeScript | `@revolist/ui/framework` | `createFrameworkMount` and `uiComponents`; call `render` to update and `destroy` on disposal. | [Vanilla usage](https://ui.rv-grid.com/frameworks/vanilla-typescript/) |
35
+ Use the same component library and shared styles across frameworks, while keeping application state in your chosen stack.
78
36
 
79
- Additional entries include `@revolist/ui/native` for DOM controllers and presentation helpers, `@revolist/ui/react-control` / `vue-control` / `angular-control` / `svelte-control` for framework-owned controls, and dedicated entries such as `@revolist/ui/select`, `@revolist/ui/timeline-track`, and `@revolist/ui/pdf-viewer`. Use the installed package's TypeScript declarations for exact prop types.
37
+ | Framework | Integration |
38
+ | --- | --- |
39
+ | <img src="src/assets/frameworks/react.svg" width="24" height="24" alt=""> React | Named components from `@revolist/ui/react`, with React state, children, and callbacks. |
40
+ | <img src="src/assets/frameworks/vue.svg" width="24" height="24" alt=""> Vue | Named components from `@revolist/ui/vue`, with events, slots, and `v-model` for controls with a declared model. |
41
+ | <img src="src/assets/frameworks/angular.svg" width="24" height="24" alt=""> Angular | Standalone `UiComponent` from `@revolist/ui/angular`, with props, events, and templates for custom content. |
42
+ | <img src="src/assets/frameworks/svelte.svg" width="24" height="24" alt=""> Svelte | Svelte 5 `UiComponent` from `@revolist/ui/svelte`, with reactive props, callbacks, and snippets. |
43
+ | <img src="src/assets/frameworks/preact.svg" width="24" height="24" alt=""> Preact | Components from `@revolist/ui/preact`, with Preact hooks and JSX. |
44
+ | <img src="src/assets/frameworks/typescript.svg" width="24" height="24" alt=""> Vanilla TypeScript | Mount components into a DOM element with `createFrameworkMount` from `@revolist/ui/framework`. |
80
45
 
81
46
  ## Components
82
47
 
83
- Browse the same component families as the public gallery. Each page includes live previews, variants, and usage examples.
84
-
85
- | Component family | What you can build |
86
- | --- | --- |
87
- | [Buttons](https://ui.rv-grid.com/components/buttons/) | Actions, icon buttons, toggles, and button groups. |
88
- | [Inputs and forms](https://ui.rv-grid.com/components/inputs-and-forms/) | Text, search, numbers, validation, and field layouts. |
89
- | [Selects and pickers](https://ui.rv-grid.com/components/selects-chips-and-resources/) | Searchable dropdowns, multiple selections, user images, and assignees. |
90
- | [Selection controls](https://ui.rv-grid.com/components/selection-controls/) | Checkboxes, switches, radio buttons, and choice chips. |
91
- | [Tabs and lists](https://ui.rv-grid.com/components/tabs-and-lists/) | Tabs, segmented controls, and selectable lists. |
92
- | [Sliders](https://ui.rv-grid.com/components/sliders/) | Single values and ranges with labels and value badges. |
93
- | [Timeline](https://ui.rv-grid.com/components/timeline-track/) | Draggable, resizable events with colors and tooltips. |
94
- | [Calendars and dates](https://ui.rv-grid.com/components/calendar-and-dates/) | Date and time pickers, ranges, and weekly planning. |
95
- | [Charts](https://ui.rv-grid.com/components/charts-and-range-selection/) | Bar, line, and area charts with tooltips and range selection. |
96
- | [Dialogs and tooltips](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/) | Dialogs, confirmations, popovers, and tooltips. |
97
- | [Menus and toolbars](https://ui.rv-grid.com/components/menus-and-toolbars/) | Dropdown menus, nested commands, and toolbar actions. |
98
- | [Status and feedback](https://ui.rv-grid.com/components/status-and-feedback/) | Badges, alerts, loading indicators, and empty states. |
99
- | [Layout](https://ui.rv-grid.com/components/layout/) | Panels, resizable split views, and expandable sections. |
100
- | [Pagination](https://ui.rv-grid.com/components/pagination/) | Page navigation for tables and lists. |
101
- | [Progress and rating](https://ui.rv-grid.com/components/progress-and-rating/) | Progress bars, circular indicators, and star ratings. |
102
- | [Activity messages](https://ui.rv-grid.com/components/activity-messages/) | Updates with avatars, timestamps, and actions. |
103
- | [AI assistant](https://ui.rv-grid.com/components/ai-assistant/) | Chat messages, prompts, suggestions, and task states. |
104
- | [PDF viewer](https://ui.rv-grid.com/components/pdf-viewer/) | PDF navigation, search, zoom, and download controls. |
105
- | [Color](https://ui.rv-grid.com/components/color/) | Palettes, color pickers, and shared semantic interface colors. |
106
- | [Field configurators](https://ui.rv-grid.com/components/field-configurators/) | Field libraries, selected-field lists, ordering, summaries, actions, and drop feedback. |
107
- | [Formatting controls](https://ui.rv-grid.com/components/formatting-controls/) | Typography choices, icon choices, inspector sections, preview comparisons, and contextual filter badges. |
48
+ Explore live previews, variants, and expandable code examples on the website.
49
+
50
+ - [Buttons](https://ui.rv-grid.com/components/buttons/) — Actions, icon buttons, toggles, and button groups.
51
+ - [Inputs and forms](https://ui.rv-grid.com/components/inputs-and-forms/) — Text, search, numbers, validation, and field layouts.
52
+ - [Selects and pickers](https://ui.rv-grid.com/components/selects-chips-and-resources/) — Searchable dropdowns, multiple selections, user images, and assignees.
53
+ - [Selection controls](https://ui.rv-grid.com/components/selection-controls/) — Checkboxes, switches, radio buttons, and choice chips.
54
+ - [Tabs and lists](https://ui.rv-grid.com/components/tabs-and-lists/) — Tabs, segmented controls, and selectable lists.
55
+ - [Sliders](https://ui.rv-grid.com/components/sliders/) — Single values and ranges with labels and value badges.
56
+ - [Timeline](https://ui.rv-grid.com/components/timeline-track/) — Draggable, resizable events with colors and tooltips.
57
+ - [Calendars and dates](https://ui.rv-grid.com/components/calendar-and-dates/) — Date and time pickers, ranges, and weekly planning.
58
+ - [Charts](https://ui.rv-grid.com/components/charts-and-range-selection/) — Bar, line, and area charts with tooltips and range selection.
59
+ - [Dialogs and tooltips](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/) — Dialogs, confirmations, popovers, and tooltips.
60
+ - [Menus and toolbars](https://ui.rv-grid.com/components/menus-and-toolbars/) — Dropdown menus, nested commands, and toolbar actions.
61
+ - [Status and feedback](https://ui.rv-grid.com/components/status-and-feedback/) — Badges, alerts, loading indicators, and empty states.
62
+ - [Layout](https://ui.rv-grid.com/components/layout/) — Panels, resizable split views, and expandable sections.
63
+ - [Pagination](https://ui.rv-grid.com/components/pagination/) — Page navigation for tables and lists.
64
+ - [Progress and rating](https://ui.rv-grid.com/components/progress-and-rating/) — Progress bars, circular indicators, and star ratings.
65
+ - [Activity messages](https://ui.rv-grid.com/components/activity-messages/) — Updates with avatars, timestamps, and actions.
66
+ - [AI assistant](https://ui.rv-grid.com/components/ai-assistant/) — Chat messages, prompts, suggestions, and task states.
67
+ - [PDF viewer](https://ui.rv-grid.com/components/pdf-viewer/) — PDF navigation, search, zoom, and download controls.
68
+ - [Color](https://ui.rv-grid.com/components/color/) — Choose a color from a palette or picker and apply shared semantic interface colors.
69
+ - [Field configurators](https://ui.rv-grid.com/components/field-configurators/) — Compose field libraries, selected-field lists, ordering, summaries, actions and drop feedback from shared pieces.
70
+ - [Formatting controls](https://ui.rv-grid.com/components/formatting-controls/) — Typography choices, icon choices, inspector sections, preview comparisons and contextual filter badges.
108
71
 
109
72
  ## Complete component reference
110
73
 
111
- Every component in the shared adapter catalog is listed below. Each name links to a generated prop/API reference, followed by its live example page, where variants and expandable, formatted usage examples are grouped together. Composition helpers are documented alongside their parent control; not every helper has an isolated specimen.
112
-
113
- ### Buttons
114
-
115
- Actions, grouped commands, toggled state, icons, compact sizing, busy states and pill corners.
116
-
117
- [Button](https://github.com/revolist/revo-ui/blob/main/docs/api/Button.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [IconButton](https://github.com/revolist/revo-ui/blob/main/docs/api/IconButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [SvgButton](https://github.com/revolist/revo-ui/blob/main/docs/api/SvgButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [ToggleButton](https://github.com/revolist/revo-ui/blob/main/docs/api/ToggleButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [ButtonGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/ButtonGroup.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [DeleteButton](https://github.com/revolist/revo-ui/blob/main/docs/api/DeleteButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [RemoveButton](https://github.com/revolist/revo-ui/blob/main/docs/api/RemoveButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [Icon](https://github.com/revolist/revo-ui/blob/main/docs/api/Icon.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [SvgIcon](https://github.com/revolist/revo-ui/blob/main/docs/api/SvgIcon.md) ([examples](https://ui.rv-grid.com/components/buttons/))
118
-
119
- ### Selection controls
120
-
121
- Checkboxes, switches, radio groups, choice chips and option rows for independent or exclusive choices.
122
-
123
- [Checkbox](https://github.com/revolist/revo-ui/blob/main/docs/api/Checkbox.md) ([examples](https://ui.rv-grid.com/components/selection-controls/)) | [Switch](https://github.com/revolist/revo-ui/blob/main/docs/api/Switch.md) ([examples](https://ui.rv-grid.com/components/selection-controls/)) | [RadioGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/RadioGroup.md) ([examples](https://ui.rv-grid.com/components/selection-controls/)) | [ChoiceChips](https://github.com/revolist/revo-ui/blob/main/docs/api/ChoiceChips.md) ([examples](https://ui.rv-grid.com/components/selection-controls/)) | [ChoiceChip](https://github.com/revolist/revo-ui/blob/main/docs/api/ChoiceChip.md) ([examples](https://ui.rv-grid.com/components/selection-controls/)) | [ChoiceChipInfoButton](https://github.com/revolist/revo-ui/blob/main/docs/api/ChoiceChipInfoButton.md) ([examples](https://ui.rv-grid.com/components/selection-controls/)) | [OptionButton](https://github.com/revolist/revo-ui/blob/main/docs/api/OptionButton.md) ([examples](https://ui.rv-grid.com/components/selection-controls/))
124
-
125
- ### Tabs and lists
126
-
127
- Switch content, group options and present plain, icon or descriptive selection rows.
128
-
129
- [SegmentedControl](https://github.com/revolist/revo-ui/blob/main/docs/api/SegmentedControl.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [SegmentedSwitch](https://github.com/revolist/revo-ui/blob/main/docs/api/SegmentedSwitch.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [Tabs](https://github.com/revolist/revo-ui/blob/main/docs/api/Tabs.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [TabPanel](https://github.com/revolist/revo-ui/blob/main/docs/api/TabPanel.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [Listbox](https://github.com/revolist/revo-ui/blob/main/docs/api/Listbox.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [ListboxOption](https://github.com/revolist/revo-ui/blob/main/docs/api/ListboxOption.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [ListboxGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/ListboxGroup.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [ListboxOptionContent](https://github.com/revolist/revo-ui/blob/main/docs/api/ListboxOptionContent.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [EditorList](https://github.com/revolist/revo-ui/blob/main/docs/api/EditorList.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [EditorListItem](https://github.com/revolist/revo-ui/blob/main/docs/api/EditorListItem.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [EditorListItemContent](https://github.com/revolist/revo-ui/blob/main/docs/api/EditorListItemContent.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/)) | [EditorListGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/EditorListGroup.md) ([examples](https://ui.rv-grid.com/components/tabs-and-lists/))
130
-
131
- ### Inputs and forms
132
-
133
- Text, search and numeric entry; field labels, validation, inline layouts and editor drafts.
134
-
135
- [Input](https://github.com/revolist/revo-ui/blob/main/docs/api/Input.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [TextInput](https://github.com/revolist/revo-ui/blob/main/docs/api/TextInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [Textarea](https://github.com/revolist/revo-ui/blob/main/docs/api/Textarea.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [SearchInput](https://github.com/revolist/revo-ui/blob/main/docs/api/SearchInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [NumberInput](https://github.com/revolist/revo-ui/blob/main/docs/api/NumberInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [NumberStepper](https://github.com/revolist/revo-ui/blob/main/docs/api/NumberStepper.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [DateInput](https://github.com/revolist/revo-ui/blob/main/docs/api/DateInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [TimeInput](https://github.com/revolist/revo-ui/blob/main/docs/api/TimeInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [DateTimeInput](https://github.com/revolist/revo-ui/blob/main/docs/api/DateTimeInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [FormField](https://github.com/revolist/revo-ui/blob/main/docs/api/FormField.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [FieldHint](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldHint.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [FieldError](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldError.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [FormSection](https://github.com/revolist/revo-ui/blob/main/docs/api/FormSection.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [HighlightedTextInput](https://github.com/revolist/revo-ui/blob/main/docs/api/HighlightedTextInput.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [InlineFieldGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/InlineFieldGroup.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [NumberDraft](https://github.com/revolist/revo-ui/blob/main/docs/api/NumberDraft.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [MaskedDraft](https://github.com/revolist/revo-ui/blob/main/docs/api/MaskedDraft.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/)) | [HtmlEditor](https://github.com/revolist/revo-ui/blob/main/docs/api/HtmlEditor.md) ([examples](https://ui.rv-grid.com/components/inputs-and-forms/))
136
-
137
- ### Selects, chips and resources
138
-
139
- Single or multiple selections, searchable options, selected-value templates, avatars, resource lists and assignee fields.
140
-
141
- [Dropdown](https://github.com/revolist/revo-ui/blob/main/docs/api/Dropdown.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [DropdownPopup](https://github.com/revolist/revo-ui/blob/main/docs/api/DropdownPopup.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [DropdownPopupContent](https://github.com/revolist/revo-ui/blob/main/docs/api/DropdownPopupContent.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [Combobox](https://github.com/revolist/revo-ui/blob/main/docs/api/Combobox.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [MultiSelect](https://github.com/revolist/revo-ui/blob/main/docs/api/MultiSelect.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [Chip](https://github.com/revolist/revo-ui/blob/main/docs/api/Chip.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [FilterChip](https://github.com/revolist/revo-ui/blob/main/docs/api/FilterChip.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [RemovableChip](https://github.com/revolist/revo-ui/blob/main/docs/api/RemovableChip.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [Avatar](https://github.com/revolist/revo-ui/blob/main/docs/api/Avatar.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [ResourcePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/ResourcePicker.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [SharedResourcePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/SharedResourcePicker.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [ResourcePickerAvatar](https://github.com/revolist/revo-ui/blob/main/docs/api/ResourcePickerAvatar.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [AssigneePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/AssigneePicker.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [AssigneeField](https://github.com/revolist/revo-ui/blob/main/docs/api/AssigneeField.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [AssigneePickerLayout](https://github.com/revolist/revo-ui/blob/main/docs/api/AssigneePickerLayout.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/))
142
-
143
- ### Sliders
144
-
145
- Scalar and interval controls with labels, value badges, thumb values, ticks and units.
146
-
147
- [Slider](https://github.com/revolist/revo-ui/blob/main/docs/api/Slider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [RangeSlider](https://github.com/revolist/revo-ui/blob/main/docs/api/RangeSlider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [SingleValueSlider](https://github.com/revolist/revo-ui/blob/main/docs/api/SingleValueSlider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [PreactRangeSlider](https://github.com/revolist/revo-ui/blob/main/docs/api/PreactRangeSlider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [SliderField](https://github.com/revolist/revo-ui/blob/main/docs/api/SliderField.md) ([examples](https://ui.rv-grid.com/components/sliders/))
148
-
149
- ### Timeline track
150
-
151
- Controlled timeline events with move/resize interactions, event colors, weighted phases and tooltips.
152
-
153
- [TimelineTrack](https://github.com/revolist/revo-ui/blob/main/docs/api/TimelineTrack.md) ([examples](https://ui.rv-grid.com/components/timeline-track/))
154
-
155
- ### Calendar and dates
156
-
157
- Calendar views and date/time fields, ranges, duration drafts, weekly availability and descriptive legends.
158
-
159
- [Calendar](https://github.com/revolist/revo-ui/blob/main/docs/api/Calendar.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [CalendarHeader](https://github.com/revolist/revo-ui/blob/main/docs/api/CalendarHeader.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [CalendarWeekdays](https://github.com/revolist/revo-ui/blob/main/docs/api/CalendarWeekdays.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [CalendarDay](https://github.com/revolist/revo-ui/blob/main/docs/api/CalendarDay.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [CalendarMonthGrid](https://github.com/revolist/revo-ui/blob/main/docs/api/CalendarMonthGrid.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [CalendarYearGrid](https://github.com/revolist/revo-ui/blob/main/docs/api/CalendarYearGrid.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [CalendarPicker](https://github.com/revolist/revo-ui/blob/main/docs/api/CalendarPicker.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [DatePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/DatePicker.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [DateRangePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/DateRangePicker.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [DurationField](https://github.com/revolist/revo-ui/blob/main/docs/api/DurationField.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [DurationDraft](https://github.com/revolist/revo-ui/blob/main/docs/api/DurationDraft.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [TemporalPicker](https://github.com/revolist/revo-ui/blob/main/docs/api/TemporalPicker.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [TemporalDraft](https://github.com/revolist/revo-ui/blob/main/docs/api/TemporalDraft.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [DateTimeField](https://github.com/revolist/revo-ui/blob/main/docs/api/DateTimeField.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [TimeGrid](https://github.com/revolist/revo-ui/blob/main/docs/api/TimeGrid.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/)) | [Legend](https://github.com/revolist/revo-ui/blob/main/docs/api/Legend.md) ([examples](https://ui.rv-grid.com/components/calendar-and-dates/))
160
-
161
- ### Color
162
-
163
- Choose a color from a palette or picker and apply shared semantic interface colors.
164
-
165
- [ColorPicker](https://github.com/revolist/revo-ui/blob/main/docs/api/ColorPicker.md) ([examples](https://ui.rv-grid.com/components/color/)) | [ColorPalette](https://github.com/revolist/revo-ui/blob/main/docs/api/ColorPalette.md) ([examples](https://ui.rv-grid.com/components/color/))
166
-
167
- ### Field configurators
168
-
169
- Compose field libraries, selected-field lists, ordering, summaries, actions and drop feedback from shared pieces.
170
-
171
- [FieldIcon](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldIcon.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldSummary](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldSummary.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldLibrary](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldLibrary.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldGroupHeading](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldGroupHeading.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldGroup.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldList](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldList.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldRow](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldRow.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldContent](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldContent.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldItem](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldItem.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldLibraryList](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldLibraryList.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [SelectedField](https://github.com/revolist/revo-ui/blob/main/docs/api/SelectedField.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldActions](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldActions.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldStatusBadge](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldStatusBadge.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldRemoveButton](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldRemoveButton.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldRemoveIcon](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldRemoveIcon.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [FieldDropIndicator](https://github.com/revolist/revo-ui/blob/main/docs/api/FieldDropIndicator.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [ReorderList](https://github.com/revolist/revo-ui/blob/main/docs/api/ReorderList.md) ([examples](https://ui.rv-grid.com/components/field-configurators/)) | [ReorderHandle](https://github.com/revolist/revo-ui/blob/main/docs/api/ReorderHandle.md) ([examples](https://ui.rv-grid.com/components/field-configurators/))
172
-
173
- ### Formatting controls
174
-
175
- Typography choices, icon choices, inspector sections, preview comparisons and contextual filter badges.
176
-
177
- [InspectorSection](https://github.com/revolist/revo-ui/blob/main/docs/api/InspectorSection.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/)) | [IconChoiceGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/IconChoiceGroup.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/)) | [IconToggleButton](https://github.com/revolist/revo-ui/blob/main/docs/api/IconToggleButton.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/)) | [TypographyControls](https://github.com/revolist/revo-ui/blob/main/docs/api/TypographyControls.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/)) | [ComparisonPreview](https://github.com/revolist/revo-ui/blob/main/docs/api/ComparisonPreview.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/)) | [FilterBadgeInfoButton](https://github.com/revolist/revo-ui/blob/main/docs/api/FilterBadgeInfoButton.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/)) | [FilterBadge](https://github.com/revolist/revo-ui/blob/main/docs/api/FilterBadge.md) ([examples](https://ui.rv-grid.com/components/formatting-controls/))
178
-
179
- ### Charts and range selection
180
-
181
- Compact bar, line and area charts with values, labels, tooltips and a composed range brush.
182
-
183
- [DistributionChart](https://github.com/revolist/revo-ui/blob/main/docs/api/DistributionChart.md) ([examples](https://ui.rv-grid.com/components/charts-and-range-selection/)) | [BarChart](https://github.com/revolist/revo-ui/blob/main/docs/api/BarChart.md) ([examples](https://ui.rv-grid.com/components/charts-and-range-selection/)) | [LineChart](https://github.com/revolist/revo-ui/blob/main/docs/api/LineChart.md) ([examples](https://ui.rv-grid.com/components/charts-and-range-selection/)) | [AreaChart](https://github.com/revolist/revo-ui/blob/main/docs/api/AreaChart.md) ([examples](https://ui.rv-grid.com/components/charts-and-range-selection/)) | [BrushRange](https://github.com/revolist/revo-ui/blob/main/docs/api/BrushRange.md) ([examples](https://ui.rv-grid.com/components/charts-and-range-selection/))
184
-
185
- ### Dialogs and floating surfaces
186
-
187
- Dialogs, confirmations, contextual surfaces and editable dialog sections with shared actions.
188
-
189
- [Dialog](https://github.com/revolist/revo-ui/blob/main/docs/api/Dialog.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [ConfirmDialog](https://github.com/revolist/revo-ui/blob/main/docs/api/ConfirmDialog.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [Popover](https://github.com/revolist/revo-ui/blob/main/docs/api/Popover.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [Tooltip](https://github.com/revolist/revo-ui/blob/main/docs/api/Tooltip.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [ControlTooltip](https://github.com/revolist/revo-ui/blob/main/docs/api/ControlTooltip.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogHeader](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogHeader.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogBody](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogBody.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogFooter](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogFooter.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogForm](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogForm.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogCloseButton](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogCloseButton.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogActionFooter](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogActionFooter.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogActions](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogActions.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [DialogTitleInput](https://github.com/revolist/revo-ui/blob/main/docs/api/DialogTitleInput.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/)) | [EditableDialogHeader](https://github.com/revolist/revo-ui/blob/main/docs/api/EditableDialogHeader.md) ([examples](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/))
190
-
191
- ### Menus and toolbars
192
-
193
- Command menus, nested commands, separators and grouped toolbar actions.
194
-
195
- [Menu](https://github.com/revolist/revo-ui/blob/main/docs/api/Menu.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/)) | [MenuItem](https://github.com/revolist/revo-ui/blob/main/docs/api/MenuItem.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/)) | [MenuSeparator](https://github.com/revolist/revo-ui/blob/main/docs/api/MenuSeparator.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/)) | [Submenu](https://github.com/revolist/revo-ui/blob/main/docs/api/Submenu.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/)) | [Toolbar](https://github.com/revolist/revo-ui/blob/main/docs/api/Toolbar.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/)) | [ToolbarGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/ToolbarGroup.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/)) | [ToolbarSeparator](https://github.com/revolist/revo-ui/blob/main/docs/api/ToolbarSeparator.md) ([examples](https://ui.rv-grid.com/components/menus-and-toolbars/))
196
-
197
- ### Status and feedback
198
-
199
- Semantic badges, counters, alerts, progress indicators, loading surfaces, empty states and feedback panels.
200
-
201
- [Badge](https://github.com/revolist/revo-ui/blob/main/docs/api/Badge.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [CountBadge](https://github.com/revolist/revo-ui/blob/main/docs/api/CountBadge.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [Alert](https://github.com/revolist/revo-ui/blob/main/docs/api/Alert.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [Spinner](https://github.com/revolist/revo-ui/blob/main/docs/api/Spinner.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [LoadingOverlay](https://github.com/revolist/revo-ui/blob/main/docs/api/LoadingOverlay.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [EmptyState](https://github.com/revolist/revo-ui/blob/main/docs/api/EmptyState.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [FeedbackPanel](https://github.com/revolist/revo-ui/blob/main/docs/api/FeedbackPanel.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [StatusFeedbackPanel](https://github.com/revolist/revo-ui/blob/main/docs/api/StatusFeedbackPanel.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [StatusBadge](https://github.com/revolist/revo-ui/blob/main/docs/api/StatusBadge.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/))
202
-
203
- ### Layout
204
-
205
- Compose panes, split layouts, panels and disclosures with an interactive resize divider.
206
-
207
- [Panel](https://github.com/revolist/revo-ui/blob/main/docs/api/Panel.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [Pane](https://github.com/revolist/revo-ui/blob/main/docs/api/Pane.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [SplitLayout](https://github.com/revolist/revo-ui/blob/main/docs/api/SplitLayout.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [EditorPane](https://github.com/revolist/revo-ui/blob/main/docs/api/EditorPane.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [EditorSplitLayout](https://github.com/revolist/revo-ui/blob/main/docs/api/EditorSplitLayout.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [ResizeHandle](https://github.com/revolist/revo-ui/blob/main/docs/api/ResizeHandle.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [Disclosure](https://github.com/revolist/revo-ui/blob/main/docs/api/Disclosure.md) ([examples](https://ui.rv-grid.com/components/layout/)) | [DisclosureSummary](https://github.com/revolist/revo-ui/blob/main/docs/api/DisclosureSummary.md) ([examples](https://ui.rv-grid.com/components/layout/))
208
-
209
- ### Pagination
210
-
211
- Page selection and compact or numbered navigation.
212
-
213
- [Pagination](https://github.com/revolist/revo-ui/blob/main/docs/api/Pagination.md) ([examples](https://ui.rv-grid.com/components/pagination/))
74
+ For individual component props and API details, see the [complete component reference](docs/component-reference.md#complete-component-reference).
214
75
 
215
- ### Progress and rating
216
-
217
- Linear/circular completion and star-based rating controls.
218
-
219
- [ProgressBar](https://github.com/revolist/revo-ui/blob/main/docs/api/ProgressBar.md) ([examples](https://ui.rv-grid.com/components/progress-and-rating/)) | [CircularProgress](https://github.com/revolist/revo-ui/blob/main/docs/api/CircularProgress.md) ([examples](https://ui.rv-grid.com/components/progress-and-rating/)) | [Rating](https://github.com/revolist/revo-ui/blob/main/docs/api/Rating.md) ([examples](https://ui.rv-grid.com/components/progress-and-rating/)) | [RatingStar](https://github.com/revolist/revo-ui/blob/main/docs/api/RatingStar.md) ([examples](https://ui.rv-grid.com/components/progress-and-rating/)) | [RatingChoice](https://github.com/revolist/revo-ui/blob/main/docs/api/RatingChoice.md) ([examples](https://ui.rv-grid.com/components/progress-and-rating/))
220
-
221
- ### Activity messages
222
-
223
- Compose an activity entry from an avatar, timestamp, header, body, details and actions.
224
-
225
- [ActivityMessage](https://github.com/revolist/revo-ui/blob/main/docs/api/ActivityMessage.md) ([examples](https://ui.rv-grid.com/components/activity-messages/))
226
-
227
- ### AI assistant
228
-
229
- Presentation for messages, prompts, suggestions, reasoning, tasks, action state and result summaries. Applications provide the model and tools.
230
-
231
- [AiChat](https://github.com/revolist/revo-ui/blob/main/docs/api/AiChat.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiChatContent](https://github.com/revolist/revo-ui/blob/main/docs/api/AiChatContent.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiChatComposer](https://github.com/revolist/revo-ui/blob/main/docs/api/AiChatComposer.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiChatEmptyState](https://github.com/revolist/revo-ui/blob/main/docs/api/AiChatEmptyState.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiMessage](https://github.com/revolist/revo-ui/blob/main/docs/api/AiMessage.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiMessageContent](https://github.com/revolist/revo-ui/blob/main/docs/api/AiMessageContent.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiMessageActions](https://github.com/revolist/revo-ui/blob/main/docs/api/AiMessageActions.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiReasoning](https://github.com/revolist/revo-ui/blob/main/docs/api/AiReasoning.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiTask](https://github.com/revolist/revo-ui/blob/main/docs/api/AiTask.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiTaskItem](https://github.com/revolist/revo-ui/blob/main/docs/api/AiTaskItem.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiPromptInput](https://github.com/revolist/revo-ui/blob/main/docs/api/AiPromptInput.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiSuggestions](https://github.com/revolist/revo-ui/blob/main/docs/api/AiSuggestions.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiActionStatus](https://github.com/revolist/revo-ui/blob/main/docs/api/AiActionStatus.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiResult](https://github.com/revolist/revo-ui/blob/main/docs/api/AiResult.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiChangePreview](https://github.com/revolist/revo-ui/blob/main/docs/api/AiChangePreview.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiAssistant](https://github.com/revolist/revo-ui/blob/main/docs/api/AiAssistant.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/)) | [AiRequestTrail](https://github.com/revolist/revo-ui/blob/main/docs/api/AiRequestTrail.md) ([examples](https://ui.rv-grid.com/components/ai-assistant/))
232
-
233
- ### PDF viewer
234
-
235
- Display local or remote PDFs with navigation, search, zoom, rotation, print/download actions and a composable toolbar.
236
-
237
- [PdfViewer](https://github.com/revolist/revo-ui/blob/main/docs/api/PdfViewer.md) ([examples](https://ui.rv-grid.com/components/pdf-viewer/)) | [PdfViewerToolbar](https://github.com/revolist/revo-ui/blob/main/docs/api/PdfViewerToolbar.md) ([examples](https://ui.rv-grid.com/components/pdf-viewer/))
238
-
239
-
240
- ### JSX select adapter
241
-
242
- [**Select**](https://github.com/revolist/revo-ui/blob/main/docs/api/Select.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) is an additional direct Preact adapter exported from `@revolist/ui/select`. Its JSX `<option>` children are data descriptors for the shared dropdown, not mounted native select elements. Use `value` / `onValueChange` for controlled state, `defaultValue` for uncontrolled state, and `multiple` for an array of selected strings. React/Vue applications can use their named `Combobox`, `MultiSelect`, or `Dropdown` adapters.
243
-
244
- ```tsx
245
- import { Select } from '@revolist/ui/select';
246
-
247
- <Select aria-label="View" value={view} onValueChange={setView}>
248
- <option value="table">Table</option>
249
- <option value="board">Board</option>
250
- <option value="calendar" disabled>Calendar</option>
251
- </Select>
252
- ```
253
-
254
- ## Usage contracts
255
-
256
- | Concern | Contract |
257
- | --- | --- |
258
- | Controlled state | Keep values in the application and pass the matching callback. `TextInput` uses `onValueChange`; many pickers/sliders use `onChange`; verify the component's typed contract. |
259
- | Dropdown data | `source` is an array of `{ value, label, ...metadata }` descriptors. `disabled` options remain visible and are skipped by keyboard selection. |
260
- | Custom dropdown content | `renderOption` changes option content; `renderValue` changes the selected value. Preact receives `(h, option, selected)` / `(h, option)`. React callbacks omit the element-factory argument; Vue uses named slots. |
261
- | Angular/Svelte hosts | Use names from the component catalog. `valueChange` / `onValueChange` is tied to the component's declared value model, not every callback. For a generic callback such as `onClick`, supply that callback in `props` so the host can forward it. |
262
- | Forms | Associate inputs with a visible label or an accessible name. Use shared field hint/error presentation and pass disabled/invalid state explicitly. |
263
- | Overlays | Use the shared popup lifecycle. Dropdowns inside top-layer dialogs/calendars can opt into `config.topLayer`. Standalone selects dismiss and advance focus on Tab/Shift+Tab. |
264
- | Lifecycle | Framework adapters clean up their mounts. Manual framework mounts and native controllers must be destroyed when their view is removed. |
265
- | AI components | These render chat, prompt, task and result UI. Your application provides model access, data, authorization and tool execution. |
266
- | PDF viewer | Supply a PDF source and compatible PDF.js worker configuration. Remote files require appropriate CORS access. Tool groups, text and toolbar/status rendering are configurable. See the [PDF viewer examples](https://ui.rv-grid.com/components/pdf-viewer/). |
267
- | Charts | Revo UI includes compact bar/line/area primitives and a range brush. The separate [RevoGrid Charts product](https://rv-grid.com/charts/) provides the larger charting surface. |
268
-
269
- The following snippets use the direct Preact APIs; the framework guides show their equivalent integration patterns. Values and callbacks such as `saved` / `setSaved` are application-owned state inside your component; the linked live examples include the complete surrounding setup.
270
-
271
- ## Buttons and navigation
272
-
273
- ```tsx
274
- import { Button, IconButton, ToggleButton } from '@revolist/ui/preact';
275
-
276
- <Button variant="primary" rounded onClick={save}>Save report</Button>
277
- <Button rounded href="https://rv-grid.com/">Explore RevoGrid</Button>
278
- <Button size="compact" disabled>Unavailable</Button>
279
- <Button variant="solid" busy={saving}>Saving</Button>
280
- <ToggleButton pressed={pinned} onPressedChange={setPinned}>Pin</ToggleButton>
281
- ```
282
-
283
- `Button` variants: `default`, `solid`, `primary`, `secondary`, `danger`, `danger-outline`, `ghost`, and `link`. `size` is `default` or `compact`. `rounded` applies pill corners, including icon controls. `href` renders native anchor navigation. `busy` blocks activation while preserving the variant's appearance.
284
-
285
- ## Dropdowns with user images
286
-
287
- ```tsx
288
- import { Avatar, Dropdown } from '@revolist/ui/preact';
289
-
290
- const people = [
291
- { value: 'alex', label: 'Alex Morgan', photo: '/people/alex.jpg' },
292
- { value: 'sam', label: 'Sam Rivera', photo: '/people/sam.jpg' },
293
- ];
294
- const personContent = (_h: unknown, person: { label: string; photo?: string }) => (
295
- <span style={{ display: 'inline-flex', alignItems: 'center', gap: 8 }}>
296
- <Avatar value={person.photo} label="" initials={person.label[0]} size={16} />
297
- <span>{person.label}</span>
298
- </span>
299
- );
300
-
301
- <Dropdown
302
- className="rv-select"
303
- source={people}
304
- value={personId}
305
- onChange={next => setPersonId(String(next))}
306
- config={{ ariaLabel: 'Team member', topLayer: true, nativeTabNavigation: true }}
307
- renderOption={personContent}
308
- renderValue={personContent}
309
- />
310
- ```
311
-
312
- Use `Combobox` for search and `MultiSelect` for multiple values. See [user images, search and resource examples](https://ui.rv-grid.com/components/selects-chips-and-resources/).
313
-
314
- ## Advanced slider
315
-
316
- ```tsx
317
- import { SliderField } from '@revolist/ui/filter/filters/slider/single';
318
-
319
- <SliderField
320
- label="Saved"
321
- ariaLabel="Savings goal completion"
322
- layout="stacked"
323
- min={0}
324
- max={20000}
325
- step={50}
326
- value={saved}
327
- valuePlacement="end"
328
- formatValue={value => `${Math.round(value / 20000 * 100)}%`}
329
- onChange={setSaved}
330
- />
331
- ```
332
-
333
- `layout="stacked"` gives the slider a full-width row; `valuePlacement="end"` puts the formatted value beside the label. Optional accent colors, ticks and thumb callouts are shown on the [Sliders page](https://ui.rv-grid.com/components/sliders/).
334
-
335
- ## Conditional chart colors
336
-
337
- ```tsx
338
- import { BarChart } from '@revolist/ui/preact';
339
-
340
- const largestExpense = Math.max(...expenses.map(item => item.value));
341
-
342
- <BarChart
343
- data={expenses}
344
- ariaLabel="Expenses by category"
345
- height={170}
346
- showGrid
347
- showLabels
348
- tooltipIndicator="dot"
349
- barColor={datum => datum.value === largestExpense ? '#f97316' : undefined}
350
- />
351
- ```
352
-
353
- Each datum has `key`, `value`, and `tooltip: { title, details? }`; optional `selected` controls emphasis. `barColor` accepts a CSS color or `(datum, index) => color | undefined`. Returning `undefined` retains the theme color. Tooltip markers use the resolved bar color. See [Charts and range selection](https://ui.rv-grid.com/components/charts-and-range-selection/).
354
-
355
- ## Interactive timeline
356
-
357
- ```tsx
358
- import { TimelineTrack } from '@revolist/ui/timeline-track';
76
+ ## RevoGrid products
359
77
 
360
- // Application-owned rows; retain these metadata fields when committing changes.
361
- const initialRows = [
362
- { id: 'build', event: { start: 8, end: 12, label: 'Build', color: '#2563eb', textColor: '#ffffff' } },
363
- { id: 'review', event: {
364
- start: 14, end: 18, label: 'Review', color: '#7c3aed', textColor: '#ffffff',
365
- segments: [{ color: '#7c3aed', weight: 3 }, { color: '#c2410c', weight: 1 }],
366
- } },
367
- ];
78
+ Build alongside [RevoGrid](https://rv-grid.com/), [Grid Pro](https://pro.rv-grid.com/), [Charts](https://rv-grid.com/charts/), [Pivot](https://rv-grid.com/pivot/), [Gantt](https://rv-grid.com/gantt/), [Scheduler](https://rv-grid.com/jsscheduler/), and [Kanban](https://rv-grid.com/kanban/).
368
79
 
369
- <TimelineTrack
370
- rows={rows}
371
- selected={selected}
372
- range={{ start: 0, end: 24 }}
373
- onSelect={setSelected}
374
- onEventChange={(id, event) => setRows(current => current.map(row => row.id === id ? { ...row, event } : row))}
375
- formatValue={value => `${String(value).padStart(2, '0')}:00`}
376
- />
377
- ```
378
-
379
- Events support single colors or weighted color segments. Moving/resizing preserves metadata and scales phase proportions. Hover/focus tooltips show the event name and range; use `getTooltip` for custom text or `tooltip={false}` to disable them. Pointer dragging and Left/Right keyboard controls are demonstrated on [Timeline track](https://ui.rv-grid.com/components/timeline-track/).
80
+ ## Licensing
380
81
 
381
- `TimeGrid` is the separate weekly-availability surface. Compose it with `useTimeGridInteraction` for painting and keyboard movement; provide cells, focus state, day/hour labels, weekends and working hours. See [weekly planning and calendar examples](https://ui.rv-grid.com/components/calendar-and-dates/).
82
+ Revo UI is [MIT licensed](LICENSE). Anyone can use, modify, and distribute it, including in commercial projects.
382
83
 
383
- ## Theming, sizing, and motion
84
+ ## Develop from source
384
85
 
385
- Load shared styles once, then configure semantic tokens rather than duplicating control styles. The gallery demonstrates light/dark themes and right-to-left layouts. [Explore interface colors](https://ui.rv-grid.com/colors/).
86
+ This repository contains the MIT-licensed Revo UI library and its gallery demo. No private repository access is needed.
386
87
 
387
- ```css
388
- .my-workspace {
389
- --rv-ui-accent: #2563eb;
390
- --rv-control-height: 32px;
391
- --rv-control-font-size: 0.875rem;
392
- }
88
+ ```sh
89
+ pnpm install --frozen-lockfile
90
+ pnpm dev
91
+ pnpm --filter @revolist/ui lint
92
+ pnpm --filter @revolist/ui test
93
+ pnpm build
94
+ pnpm --filter @revolist/ui pack:public
95
+ pnpm --filter @revolist/ui test:public
96
+ pnpm build:demo
393
97
  ```
394
98
 
395
- Standard single-line inputs, dropdowns and buttons use matching 32px minimum height and 14px text at the default root font size. Explicit compact controls, multiline editors, editable titles and grid scene controls have their own sizing. Use `rv-control--compact` where the compact field presentation is needed.
99
+ Library source lives directly in `package/`; the root manifest owns its public exports. The internal workspace packages in `internal/` provide date and chart utilities that are bundled into the public distribution. Gallery source lives in `src/`.
396
100
 
397
- Motion follows the system's reduced-motion preference. `data-rv-ui-motion="off"` on the document root disables shared UI motion; removing it restores system behavior. Do not force animations on for users who requested reduced motion.
398
-
399
- ## Accessibility and localization
400
-
401
- - Give icon-only actions and controls meaningful accessible names; connect visible labels, hints and errors to their fields.
402
- - Preserve keyboard focus and use the shared dropdown, dialog and tooltip lifecycles. Disabled options remain announced but cannot be chosen.
403
- - Provide localized labels through each component's `text`, `labels`, or related typed configuration. Use the date/calendar APIs for locale and calendar-system choices.
404
- - Keep application state and authorization in the host application. A visual disabled or readonly state does not replace server-side permissions.
405
- - Test your composed workflow with keyboard, reduced motion, light/dark themes and RTL. Accessibility of an application depends on its content and composition, not only the controls.
406
-
407
- ## RevoGrid products
408
-
409
- | Product | Website | Documentation |
410
- | --- | --- | --- |
411
- | RevoGrid | [rv-grid.com](https://rv-grid.com/) | [Core docs](https://rv-grid.com/guide/) |
412
- | Grid Pro | [RevoGrid Pro](https://pro.rv-grid.com/) | [Pro guides](https://pro.rv-grid.com/guides/installation/) |
413
- | Pivot | [Pivot tables](https://rv-grid.com/pivot/) | [Pivot guide](https://pro.rv-grid.com/guides/pivot/) |
414
- | Charts | [JavaScript charts](https://rv-grid.com/charts/) | [Pro documentation](https://pro.rv-grid.com/) |
415
- | Gantt | [Gantt charts](https://rv-grid.com/gantt/) | [Gantt guide](https://pro.rv-grid.com/guides/gantt/) |
416
- | Scheduler | [Resource scheduling](https://rv-grid.com/jsscheduler/) | [Pro documentation](https://pro.rv-grid.com/) |
417
- | Kanban | [Kanban boards](https://rv-grid.com/kanban/) | [Pro documentation](https://pro.rv-grid.com/) |
418
-
419
- ## Repository and support
420
-
421
- - [Revo UI on GitHub](https://github.com/revolist/revo-ui): gallery app, documentation, and project information.
422
- - [Component API reference](https://github.com/revolist/revo-ui/blob/main/docs/component-reference.md#complete-component-reference): individual component props and API details.
423
- - [Issues](https://github.com/revolist/revo-ui/issues): report bugs or request improvements; include your framework, package version, and a minimal reproduction.
424
- - [npm package](https://www.npmjs.com/package/@revolist/ui): published versions and installation information.
425
-
426
- ## Licensing
427
-
428
- Revo UI is [MIT licensed](LICENSE). Anyone can use, modify, and distribute it, including in commercial projects.
101
+ Gallery and package builds share `vite.config.ts`; library builds select `--mode library`. The npm archive uses this README. The `package/` folder contains source only. All manifests, scripts, configuration and project documentation live at the repository root. The gallery in `src/` is the demo.
package/_button.scss CHANGED
@@ -11,7 +11,8 @@
11
11
  background-color: var(--rv-ui-btn-outline-bg, transparent);
12
12
  color: var(--rv-ui-btn-outline-fg, inherit);
13
13
  transition:
14
- background-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease),
14
+ background-color var(--rv-ui-motion-fast, 120ms)
15
+ var(--rv-ui-motion-ease, ease),
15
16
  color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease),
16
17
  border-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease),
17
18
  opacity var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease);
@@ -36,7 +37,10 @@
36
37
  }
37
38
 
38
39
  &:not(.disabled):hover {
39
- background-color: var(--rv-ui-btn-outline-bg-hover, $button-alt-bg-light-hover);
40
+ background-color: var(
41
+ --rv-ui-btn-outline-bg-hover,
42
+ $button-alt-bg-light-hover
43
+ );
40
44
  border-color: var(--rv-ui-btn-outline-border-hover);
41
45
  }
42
46