@revolist/ui 4.0.3 → 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 (202) hide show
  1. package/OWNERSHIP.md +5 -5
  2. package/README.md +65 -450
  3. package/_chunks/{calendar-CgXQgkga.js → calendar-BQYQLu8Q.js} +5 -5
  4. package/_chunks/{cell-visuals-E-2oEKHg.js → cell-visuals-r6DOOhGh.js} +7 -7
  5. package/_chunks/{chart-frame-hcOlnQ1K.js → chart-frame-GprenwEg.js} +4 -4
  6. package/_chunks/{choice-chips-SkllS5Kl.js → choice-chips-C5OxD0GV.js} +3 -3
  7. package/_chunks/{color-palette-DMJUChWC.js → color-palette-7siNch__.js} +3 -3
  8. package/_chunks/{color-picker-BpCTuIdm.js → color-picker-Cfc9eqZb.js} +4 -4
  9. package/_chunks/{component-CfeHXgIw.js → component-C3k_8uIq.js} +24 -24
  10. package/_chunks/{component-metadata-BKd7U8OW.js → component-metadata-DlVkpW3h.js} +1 -1
  11. package/_chunks/{configurator-actions-DnStE6Yl.js → configurator-actions-vRnI54mO.js} +3 -3
  12. package/_chunks/{control-Dcrjsunl.js → control-BRfF5DWQ.js} +3 -3
  13. package/_chunks/{controller-hRBm_Lfz.js → controller-BbiQuRt-.js} +5 -5
  14. package/_chunks/{controls-B_6NJarZ.js → controls-B3EgM_DS.js} +9 -9
  15. package/_chunks/{date-control-C4h4m75W.js → date-control-87dcA5br.js} +5 -5
  16. package/_chunks/{date-time-CTOSbzb0.js → date-time-CfiFYodx.js} +20 -20
  17. package/_chunks/{delete-button-CW9vjLnk.js → delete-button-jneO24wa.js} +1 -1
  18. package/_chunks/{dialog.parts-3w5FR06n.js → dialog.parts-NqEEVc9P.js} +4 -4
  19. package/_chunks/{duration-Bf2OS1V5.js → duration-BGZ_qJ99.js} +6 -6
  20. package/_chunks/{editor-commit-Bq3wSgvr.js → editor-commit-Dyo-FMgD.js} +1 -1
  21. package/_chunks/{editor-popup-ByU7qiub.js → editor-popup-NNP9Fh9U.js} +4 -4
  22. package/_chunks/{field-configurator-D5dZRhDe.js → field-configurator-DPulsY3l.js} +6 -6
  23. package/_chunks/{field-context-D57PnBbH.js → field-context-C4_WrO2z.js} +1 -1
  24. package/_chunks/{framework-mount-Bk4O_T7T.js → framework-mount-D4I8HpVp.js} +2 -2
  25. package/_chunks/{icon-toolbar-DSjOdwM7.js → icon-toolbar-BAAdEvr9.js} +2 -2
  26. package/_chunks/{icons-Ci5mADVc.js → icons-B4qN13Yj.js} +1 -1
  27. package/_chunks/{iso-B0YHBK7m.js → iso-CJQl2kmq.js} +1 -1
  28. package/_chunks/{model-mPO2tG2f.js → model-CFrBgRHm.js} +3 -3
  29. package/_chunks/{mount-BRdcG60g.js → mount-C8CnIW9k.js} +6 -6
  30. package/_chunks/{native-Blr3byjO.js → native-CJm3eq3-.js} +1 -1
  31. package/_chunks/{native-control-B_fVA5bL.js → native-control-um1L1wgZ.js} +12 -12
  32. package/_chunks/{number-input-CmM6_2vR.js → number-input-CKiA4d1N.js} +4 -4
  33. package/_chunks/{picker-DTqET-2W.js → picker-igNshTRC.js} +5 -5
  34. package/_chunks/{popup-C35Isk7p.js → popup-DECYM9FI.js} +2 -2
  35. package/_chunks/{rating-choice-C-6wcb9U.js → rating-choice-CepVfGUq.js} +2 -2
  36. package/_chunks/{render-m5eMMwFR.js → render-bTk3curw.js} +2 -2
  37. package/_chunks/{reorder-list-DIl1gkV6.js → reorder-list-B4w3aARt.js} +2 -2
  38. package/_chunks/{request-trail-DrhdpWiH.js → request-trail-B1zVRPEf.js} +15 -15
  39. package/_chunks/{rich-text-BnilBbhU.js → rich-text-Ci4d6dHn.js} +11 -11
  40. package/_chunks/{selection-list-tooltips-C5oMJe26.js → selection-list-tooltips-m00U3L6z.js} +3 -3
  41. package/_chunks/{title-tooltip-Cw6LOZhb.js → title-tooltip-ncldbUwS.js} +2 -2
  42. package/_chunks/{tooltip-D4xkio5G.js → tooltip-h-Z8yFBY.js} +2 -2
  43. package/_chunks/{tooltip-owner-DjdvqKzz.js → tooltip-owner-BYho-vJl.js} +1 -1
  44. package/_chunks/{tooltip-session-B6X6x8G_.js → tooltip-session-CBtRMBPr.js} +3 -3
  45. package/_chunks/{tooltip-text-BXsUEmBH.js → tooltip-text-BN5WdGHn.js} +2 -2
  46. package/_chunks/{top-layer-popup-CNSDdfJV.js → top-layer-popup-CKJ7VJOF.js} +3 -3
  47. package/activity-message.js +1 -1
  48. package/ai/index.js +2 -2
  49. package/assignee/index.js +6 -6
  50. package/avatar/index.js +2 -2
  51. package/badge.js +1 -1
  52. package/brush-range/component.js +2 -2
  53. package/buttons/delete-button.js +1 -1
  54. package/buttons/remove-button.js +2 -2
  55. package/buttons/svg-button.js +3 -3
  56. package/calendar/calendar.js +1 -1
  57. package/calendar/day.js +2 -2
  58. package/calendar/header.js +1 -1
  59. package/calendar/index.js +3 -3
  60. package/calendar/model.js +1 -1
  61. package/calendar/month-grid.js +2 -2
  62. package/calendar/translations.js +1 -1
  63. package/calendar/year-grid.js +2 -2
  64. package/cell-input.js +1 -1
  65. package/cell-visuals/index.js +1 -1
  66. package/checkbox/index.js +1 -1
  67. package/choice-chips/index.js +1 -1
  68. package/color-palette/built-in-palettes.js +1 -1
  69. package/color-palette/chart-palettes.js +1 -1
  70. package/color-palette/color-palette.js +1 -1
  71. package/color-palette/color-picker.constants.js +1 -1
  72. package/color-palette/color-picker.js +2 -2
  73. package/color-palette/common-palettes.d.ts +1 -1
  74. package/color-palette/common-palettes.js +2 -2
  75. package/color-palette/gantt-palettes.js +1 -1
  76. package/color-palette/palette.js +1 -1
  77. package/color-palette/pivot-palettes.js +1 -1
  78. package/color-palette/platform-palettes.js +1 -1
  79. package/color-palette/pro-palettes.js +1 -1
  80. package/color-palette/scheduler-palettes.js +1 -1
  81. package/configurator-actions.js +1 -1
  82. package/configurator-aggregation-list.js +3 -3
  83. package/configurator-drop-zone.js +2 -2
  84. package/configurator-focus.js +1 -1
  85. package/configurator-sections.js +1 -1
  86. package/control-attributes.js +1 -1
  87. package/control-presentation.js +2 -2
  88. package/controls.js +2 -2
  89. package/core/anchored-popover.js +1 -1
  90. package/core/control-id.js +1 -1
  91. package/core/editor-popup.js +1 -1
  92. package/core/motion.js +1 -1
  93. package/{_chunks/popover-controller-D-AvKQ7B.js → core/popover-controller.js} +8 -8
  94. package/core/top-layer-popup.js +1 -1
  95. package/date-time/field.d.ts +1 -0
  96. package/date-time/index.js +1 -1
  97. package/dialog/dialog.dom.js +3 -3
  98. package/dialog/dialog.drag.js +1 -1
  99. package/dialog/dialog.parts.js +1 -1
  100. package/dialog/dialog.preact.js +1 -1
  101. package/distribution-chart/area-chart.js +2 -2
  102. package/distribution-chart/bar-chart.js +2 -2
  103. package/distribution-chart/index.js +1 -1
  104. package/distribution-chart/line-chart.js +2 -2
  105. package/dropdown/content.js +1 -1
  106. package/dropdown/control.js +1 -1
  107. package/dropdown/dropdown.service.js +1 -1
  108. package/dropdown/index.js +2 -2
  109. package/dropdown/lookup-field.js +3 -3
  110. package/dropdown/popup.js +1 -1
  111. package/duration/index.js +1 -1
  112. package/editor-actions.js +2 -2
  113. package/editor-layout/index.js +2 -2
  114. package/favicon.svg +9 -0
  115. package/field-configurator.js +1 -1
  116. package/field-reorder.hook.js +1 -1
  117. package/field-reorder.js +1 -1
  118. package/filter/filters/slider/component.js +1 -1
  119. package/filter/filters/slider/control.js +1 -1
  120. package/filter/filters/slider/inputs.js +1 -1
  121. package/filter/filters/slider/logic.js +1 -1
  122. package/filter/filters/slider/preact.js +1 -1
  123. package/filter/filters/slider/runtime.js +3 -3
  124. package/filter/filters/slider/single.js +2 -2
  125. package/filter-badge.js +2 -2
  126. package/filter-controls.js +2 -2
  127. package/form-controls/index.js +3 -3
  128. package/form-controls/presentation.js +2 -2
  129. package/formatting/index.js +7 -7
  130. package/framework.js +25 -25
  131. package/history-controls.js +1 -1
  132. package/html-controls.js +1 -1
  133. package/icon-toolbar.js +1 -1
  134. package/icons/icon.js +1 -1
  135. package/legend.js +1 -1
  136. package/masked-input/index.js +4 -4
  137. package/native-control.js +1 -1
  138. package/native.js +15 -15
  139. package/number-input/index.js +1 -1
  140. package/package.json +49 -1
  141. package/pagination.js +2 -2
  142. package/pdf-viewer/controller.js +1 -1
  143. package/pdf-viewer/index.js +3 -3
  144. package/preact-mount.js +1 -1
  145. package/preact.js +24 -24
  146. package/progress/bar.js +1 -1
  147. package/progress/circular.js +1 -1
  148. package/progress/range.js +1 -1
  149. package/rating-choice.js +1 -1
  150. package/react-control.js +1 -1
  151. package/react.js +25 -25
  152. package/reorder-list.js +1 -1
  153. package/resource-picker/resource-picker-avatar.js +1 -1
  154. package/resource-picker/resource-picker-option.js +1 -1
  155. package/resource-picker/resource-picker-popup.js +2 -2
  156. package/resource-picker/resource-picker.js +2 -2
  157. package/resource-picker/resource-picker.utils.js +1 -1
  158. package/rich-text/index.js +1 -1
  159. package/robots.txt +4 -0
  160. package/search-input/index.js +2 -2
  161. package/segmented-switch/index.js +1 -1
  162. package/select.js +1 -1
  163. package/selection-list.js +1 -1
  164. package/status-feedback/badge.js +2 -2
  165. package/status-feedback/exit-snapshot.js +2 -2
  166. package/status-feedback/header.js +2 -2
  167. package/status-feedback/icons.js +1 -1
  168. package/status-feedback/index.js +1 -1
  169. package/status-feedback/item.js +2 -2
  170. package/status-feedback/motion.js +1 -1
  171. package/status-feedback/placement.js +1 -1
  172. package/status-feedback/popover.js +2 -2
  173. package/status-feedback/render.js +1 -1
  174. package/styles/color-roles.js +1 -1
  175. package/surfaces.js +6 -6
  176. package/svelte-control.js +1 -1
  177. package/svelte.js +5 -5
  178. package/switch/index.js +2 -2
  179. package/time-grid.js +3 -3
  180. package/timeline-track/index.js +3 -3
  181. package/timeline-track/model.js +1 -1
  182. package/vue-badge.js +1 -1
  183. package/vue-control.js +1 -1
  184. package/vue-segmented-switch.js +1 -1
  185. package/vue.js +25 -25
  186. package/_shared/data-query/binding.d.ts +0 -30
  187. package/_shared/data-query/blocks.d.ts +0 -30
  188. package/_shared/data-query/commands.d.ts +0 -47
  189. package/_shared/data-query/contracts.d.ts +0 -106
  190. package/_shared/data-query/cursor-reader.d.ts +0 -25
  191. package/_shared/data-query/direct-binding.d.ts +0 -3
  192. package/_shared/data-query/index.d.ts +0 -23
  193. package/_shared/data-query/infinite-binding.d.ts +0 -18
  194. package/_shared/data-query/keys.d.ts +0 -9
  195. package/_shared/data-query/limiter.d.ts +0 -12
  196. package/_shared/data-query/load-options.d.ts +0 -25
  197. package/_shared/data-query/materialize.d.ts +0 -2
  198. package/_shared/data-query/policy.d.ts +0 -14
  199. package/_shared/data-query/provider-queries.d.ts +0 -22
  200. package/_shared/data-query/reader.d.ts +0 -23
  201. package/_shared/data-query/remote-load.d.ts +0 -7
  202. package/_shared/data-query/source.d.ts +0 -40
package/README.md CHANGED
@@ -1,486 +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
58
- aria-label="Report name"
59
- value={name}
60
- onValueChange={setName}
61
- />
62
- <Button rounded variant="primary" onClick={() => console.log(name)}>
63
- Create report
64
- </Button>
65
- </>
66
- );
67
- }
68
- ```
69
-
70
- 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.
71
-
72
- ## Popover dismissal
73
-
74
- `Popover` accepts `closeOnOutside` and `closeOnEscape`, both enabled by default, matching `PopoverController`. Set either to `false` independently; changes also apply while open. `open` remains controlled: update it in `onClose` (Vue: `@close`), or close it directly from an action.
29
+ Choose your framework for setup instructions and usage examples:
75
30
 
76
- ```vue
77
- <Popover
78
- :open="open"
79
- :anchor="anchor"
80
- :close-on-outside="false"
81
- :close-on-escape="false"
82
- @close="open = false"
83
- >
84
- <button @click="open = false">Done</button>
85
- </Popover>
86
- ```
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/)
87
32
 
88
- ## Framework integrations
33
+ ## Framework support
89
34
 
90
- | Framework | Entry point | Integration | Guide |
91
- | ------------------ | ------------------------ | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
92
- | React | `@revolist/ui/react` | Named React components; controlled props, callbacks, children, and custom content. | [React usage](https://ui.rv-grid.com/frameworks/react/) |
93
- | 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/) |
94
- | Angular | `@revolist/ui/angular` | Standalone `UiComponent` host with `component`, `props`, `uiEvent`, `valueChange`, and `rvUiSlot` templates. | [Angular usage](https://ui.rv-grid.com/frameworks/angular/) |
95
- | Svelte 5 | `@revolist/ui/svelte` | `UiComponent` host with reactive props, callbacks, and content snippets. | [Svelte usage](https://ui.rv-grid.com/frameworks/svelte/) |
96
- | Preact | `@revolist/ui/preact` | Direct components with Preact state, hooks, and render callbacks. | [Preact usage](https://ui.rv-grid.com/frameworks/preact/) |
97
- | 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.
98
36
 
99
- 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`. |
100
45
 
101
46
  ## Components
102
47
 
103
- Browse the same component families as the public gallery. Each page includes live previews, variants, and usage examples.
104
-
105
- | Component family | What you can build |
106
- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
107
- | [Buttons](https://ui.rv-grid.com/components/buttons/) | Actions, icon buttons, toggles, and button groups. |
108
- | [Inputs and forms](https://ui.rv-grid.com/components/inputs-and-forms/) | Text, search, numbers, validation, and field layouts. |
109
- | [Selects and pickers](https://ui.rv-grid.com/components/selects-chips-and-resources/) | Searchable dropdowns, multiple selections, user images, and assignees. |
110
- | [Selection controls](https://ui.rv-grid.com/components/selection-controls/) | Checkboxes, switches, radio buttons, and choice chips. |
111
- | [Tabs and lists](https://ui.rv-grid.com/components/tabs-and-lists/) | Tabs, segmented controls, and selectable lists. |
112
- | [Sliders](https://ui.rv-grid.com/components/sliders/) | Single values and ranges with labels and value badges. |
113
- | [Timeline](https://ui.rv-grid.com/components/timeline-track/) | Draggable, resizable events with colors and tooltips. |
114
- | [Calendars and dates](https://ui.rv-grid.com/components/calendar-and-dates/) | Date and time pickers, ranges, and weekly planning. |
115
- | [Charts](https://ui.rv-grid.com/components/charts-and-range-selection/) | Bar, line, and area charts with tooltips and range selection. |
116
- | [Dialogs and tooltips](https://ui.rv-grid.com/components/dialogs-and-floating-surfaces/) | Dialogs, confirmations, popovers, and tooltips. |
117
- | [Menus and toolbars](https://ui.rv-grid.com/components/menus-and-toolbars/) | Dropdown menus, nested commands, and toolbar actions. |
118
- | [Status and feedback](https://ui.rv-grid.com/components/status-and-feedback/) | Badges, alerts, loading indicators, and empty states. |
119
- | [Layout](https://ui.rv-grid.com/components/layout/) | Panels, resizable split views, and expandable sections. |
120
- | [Pagination](https://ui.rv-grid.com/components/pagination/) | Page navigation for tables and lists. |
121
- | [Progress and rating](https://ui.rv-grid.com/components/progress-and-rating/) | Progress bars, circular indicators, and star ratings. |
122
- | [Activity messages](https://ui.rv-grid.com/components/activity-messages/) | Updates with avatars, timestamps, and actions. |
123
- | [AI assistant](https://ui.rv-grid.com/components/ai-assistant/) | Chat messages, prompts, suggestions, and task states. |
124
- | [PDF viewer](https://ui.rv-grid.com/components/pdf-viewer/) | PDF navigation, search, zoom, and download controls. |
125
- | [Color](https://ui.rv-grid.com/components/color/) | Palettes, color pickers, and shared semantic interface colors. |
126
- | [Field configurators](https://ui.rv-grid.com/components/field-configurators/) | Field libraries, selected-field lists, ordering, summaries, actions, and drop feedback. |
127
- | [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.
128
71
 
129
72
  ## Complete component reference
130
73
 
131
- 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.
132
-
133
- ### Buttons
134
-
135
- Actions, grouped commands, toggled state, icons, compact sizing, busy states and pill corners.
136
-
137
- [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/)) | [SvgIcon](https://github.com/revolist/revo-ui/blob/main/docs/api/SvgIcon.md) ([examples](https://ui.rv-grid.com/components/buttons/))
138
-
139
- ### Selection controls
140
-
141
- Checkboxes, switches, radio groups, choice chips and option rows for independent or exclusive choices.
142
-
143
- [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/))
144
-
145
- ### Tabs and lists
146
-
147
- Switch content, group options and present plain, icon or descriptive selection rows.
148
-
149
- [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/))
150
-
151
- ### Inputs and forms
152
-
153
- Text, search and numeric entry; field labels, validation, inline layouts and editor drafts.
154
-
155
- [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/))
156
-
157
- ### Selects, chips and resources
158
-
159
- Single or multiple selections, searchable options, selected-value templates, avatars, resource lists and assignee fields.
160
-
161
- [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/)) | [Avatar](https://github.com/revolist/revo-ui/blob/main/docs/api/Avatar.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/))
162
-
163
- ### Sliders
164
-
165
- Scalar and interval controls with labels, value badges, thumb values, ticks and units.
166
-
167
- [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/))
168
-
169
- ### Timeline track
170
-
171
- Controlled timeline events with move/resize interactions, event colors, weighted phases and tooltips.
172
-
173
- [TimelineTrack](https://github.com/revolist/revo-ui/blob/main/docs/api/TimelineTrack.md) ([examples](https://ui.rv-grid.com/components/timeline-track/))
174
-
175
- ### Calendar and dates
176
-
177
- Calendar views and date/time fields, ranges, duration drafts, weekly availability and descriptive legends.
178
-
179
- [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/))
180
-
181
- ### Color
182
-
183
- Choose a color from a palette or picker and apply shared semantic interface colors.
184
-
185
- [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/))
186
-
187
- ### Field configurators
188
-
189
- Compose field libraries, selected-field lists, ordering, summaries, actions and drop feedback from shared pieces.
190
-
191
- [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/))
192
-
193
- ### Formatting controls
194
-
195
- Typography choices, icon choices, inspector sections, preview comparisons and contextual filter badges.
196
-
197
- [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/))
198
-
199
- ### Charts and range selection
200
-
201
- Compact bar, line and area charts with values, labels, tooltips and a composed range brush.
202
-
203
- [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/))
204
-
205
- ### Dialogs and floating surfaces
206
-
207
- Dialogs, confirmations, contextual surfaces and editable dialog sections with shared actions.
208
-
209
- [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/))
210
-
211
- ### Menus and toolbars
212
-
213
- Command menus, nested commands, separators and grouped toolbar actions.
214
-
215
- [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/))
216
-
217
- ### Status and feedback
218
-
219
- Semantic badges, counters, alerts, progress indicators, loading surfaces, empty states and feedback panels.
220
-
221
- [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/)) | [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/))
222
-
223
- ### Layout
224
-
225
- Compose panes, split layouts, panels and disclosures with an interactive resize divider.
226
-
227
- [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/))
228
-
229
- ### Pagination
74
+ For individual component props and API details, see the [complete component reference](docs/component-reference.md#complete-component-reference).
230
75
 
231
- Page selection and compact or numbered navigation.
232
-
233
- [Pagination](https://github.com/revolist/revo-ui/blob/main/docs/api/Pagination.md) ([examples](https://ui.rv-grid.com/components/pagination/))
234
-
235
- ### Progress and rating
236
-
237
- Linear/circular completion and star-based rating controls.
238
-
239
- [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/))
240
-
241
- ### Activity messages
242
-
243
- Compose an activity entry from an avatar, timestamp, header, body, details and actions.
244
-
245
- [ActivityMessage](https://github.com/revolist/revo-ui/blob/main/docs/api/ActivityMessage.md) ([examples](https://ui.rv-grid.com/components/activity-messages/))
246
-
247
- ### AI assistant
248
-
249
- Presentation for messages, prompts, suggestions, reasoning, tasks, action state and result summaries. Applications provide the model and tools.
250
-
251
- [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/))
252
-
253
- ### PDF viewer
254
-
255
- Display local or remote PDFs with navigation, search, zoom, rotation, print/download actions and a composable toolbar.
256
-
257
- [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/))
258
-
259
- ### JSX select adapter
260
-
261
- [**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.
262
-
263
- ```tsx
264
- import { Select } from '@revolist/ui/select';
265
-
266
- <Select aria-label="View" value={view} onValueChange={setView}>
267
- <option value="table">Table</option>
268
- <option value="board">Board</option>
269
- <option value="calendar" disabled>
270
- Calendar
271
- </option>
272
- </Select>;
273
- ```
274
-
275
- ## Usage contracts
276
-
277
- | Concern | Contract |
278
- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
279
- | 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. |
280
- | Dropdown data | `source` is an array of `{ value, label, ...metadata }` descriptors. `disabled` options remain visible and are skipped by keyboard selection. |
281
- | 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. |
282
- | 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. |
283
- | Forms | Associate inputs with a visible label or an accessible name. Use shared field hint/error presentation and pass disabled/invalid state explicitly. |
284
- | 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. |
285
- | Lifecycle | Framework adapters clean up their mounts. Manual framework mounts and native controllers must be destroyed when their view is removed. |
286
- | AI components | These render chat, prompt, task and result UI. Your application provides model access, data, authorization and tool execution. |
287
- | 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/). |
288
- | 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. |
289
-
290
- 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.
291
-
292
- ## Buttons and navigation
293
-
294
- ```tsx
295
- import { Button, IconButton, ToggleButton } from '@revolist/ui/preact';
296
-
297
- <Button variant="primary" rounded onClick={save}>Save report</Button>
298
- <Button rounded href="https://rv-grid.com/">Explore RevoGrid</Button>
299
- <Button size="compact" disabled>Unavailable</Button>
300
- <Button variant="solid" busy={saving}>Saving</Button>
301
- <ToggleButton pressed={pinned} onPressedChange={setPinned}>Pin</ToggleButton>
302
- ```
303
-
304
- `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.
305
-
306
- ## Dropdowns with user images
307
-
308
- ```tsx
309
- import { Avatar, Dropdown } from '@revolist/ui/preact';
310
-
311
- const people = [
312
- { value: 'alex', label: 'Alex Morgan', photo: '/people/alex.jpg' },
313
- { value: 'sam', label: 'Sam Rivera', photo: '/people/sam.jpg' },
314
- ];
315
- const personContent = (
316
- _h: unknown,
317
- person: { label: string; photo?: string },
318
- ) => (
319
- <span style={{ display: 'inline-flex', alignItems: 'center', gap: 8 }}>
320
- <Avatar
321
- value={person.photo}
322
- label=""
323
- initials={person.label[0]}
324
- size={16}
325
- />
326
- <span>{person.label}</span>
327
- </span>
328
- );
329
-
330
- <Dropdown
331
- className="rv-select"
332
- source={people}
333
- value={personId}
334
- onChange={(next) => setPersonId(String(next))}
335
- config={{
336
- ariaLabel: 'Team member',
337
- topLayer: true,
338
- nativeTabNavigation: true,
339
- }}
340
- renderOption={personContent}
341
- renderValue={personContent}
342
- />;
343
- ```
344
-
345
- 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/).
346
-
347
- ## Advanced slider
348
-
349
- ```tsx
350
- import { SliderField } from '@revolist/ui/filter/filters/slider/single';
351
-
352
- <SliderField
353
- label="Saved"
354
- ariaLabel="Savings goal completion"
355
- layout="stacked"
356
- min={0}
357
- max={20000}
358
- step={50}
359
- value={saved}
360
- valuePlacement="end"
361
- formatValue={(value) => `${Math.round((value / 20000) * 100)}%`}
362
- onChange={setSaved}
363
- />;
364
- ```
365
-
366
- `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/).
367
-
368
- ## Conditional chart colors
369
-
370
- ```tsx
371
- import { BarChart } from '@revolist/ui/preact';
372
-
373
- const largestExpense = Math.max(...expenses.map((item) => item.value));
374
-
375
- <BarChart
376
- data={expenses}
377
- ariaLabel="Expenses by category"
378
- height={170}
379
- showGrid
380
- showLabels
381
- tooltipIndicator="dot"
382
- barColor={(datum) => (datum.value === largestExpense ? '#f97316' : undefined)}
383
- />;
384
- ```
385
-
386
- 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/).
387
-
388
- ## Interactive timeline
389
-
390
- ```tsx
391
- import { TimelineTrack } from '@revolist/ui/timeline-track';
392
-
393
- // Application-owned rows; retain these metadata fields when committing changes.
394
- const initialRows = [
395
- {
396
- id: 'build',
397
- event: {
398
- start: 8,
399
- end: 12,
400
- label: 'Build',
401
- color: '#2563eb',
402
- textColor: '#ffffff',
403
- },
404
- },
405
- {
406
- id: 'review',
407
- event: {
408
- start: 14,
409
- end: 18,
410
- label: 'Review',
411
- color: '#7c3aed',
412
- textColor: '#ffffff',
413
- segments: [
414
- { color: '#7c3aed', weight: 3 },
415
- { color: '#c2410c', weight: 1 },
416
- ],
417
- },
418
- },
419
- ];
76
+ ## RevoGrid products
420
77
 
421
- <TimelineTrack
422
- rows={rows}
423
- selected={selected}
424
- range={{ start: 0, end: 24 }}
425
- onSelect={setSelected}
426
- onEventChange={(id, event) =>
427
- setRows((current) =>
428
- current.map((row) => (row.id === id ? { ...row, event } : row)),
429
- )
430
- }
431
- formatValue={(value) => `${String(value).padStart(2, '0')}:00`}
432
- />;
433
- ```
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/).
434
79
 
435
- 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
436
81
 
437
- `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.
438
83
 
439
- ## Theming, sizing, and motion
84
+ ## Develop from source
440
85
 
441
- 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.
442
87
 
443
- ```css
444
- .my-workspace {
445
- --rv-ui-accent: #2563eb;
446
- --rv-control-height: 32px;
447
- --rv-control-font-size: 0.875rem;
448
- }
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
449
97
  ```
450
98
 
451
- 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.
452
-
453
- 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.
454
-
455
- ## Accessibility and localization
456
-
457
- - Give icon-only actions and controls meaningful accessible names; connect visible labels, hints and errors to their fields.
458
- - Preserve keyboard focus and use the shared dropdown, dialog and tooltip lifecycles. Disabled options remain announced but cannot be chosen.
459
- - Provide localized labels through each component's `text`, `labels`, or related typed configuration. Use the date/calendar APIs for locale and calendar-system choices.
460
- - Keep application state and authorization in the host application. A visual disabled or readonly state does not replace server-side permissions.
461
- - 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.
462
-
463
- ## RevoGrid products
464
-
465
- | Product | Website | Documentation |
466
- | --------- | ------------------------------------------------------- | ---------------------------------------------------------- |
467
- | RevoGrid | [rv-grid.com](https://rv-grid.com/) | [Core docs](https://rv-grid.com/guide/) |
468
- | Grid Pro | [RevoGrid Pro](https://pro.rv-grid.com/) | [Pro guides](https://pro.rv-grid.com/guides/installation/) |
469
- | Pivot | [Pivot tables](https://rv-grid.com/pivot/) | [Pivot guide](https://pro.rv-grid.com/guides/pivot/) |
470
- | Charts | [JavaScript charts](https://rv-grid.com/charts/) | [Pro documentation](https://pro.rv-grid.com/) |
471
- | Gantt | [Gantt charts](https://rv-grid.com/gantt/) | [Gantt guide](https://pro.rv-grid.com/guides/gantt/) |
472
- | Scheduler | [Resource scheduling](https://rv-grid.com/jsscheduler/) | [Pro documentation](https://pro.rv-grid.com/) |
473
- | Kanban | [Kanban boards](https://rv-grid.com/kanban/) | [Pro documentation](https://pro.rv-grid.com/) |
474
-
475
- ## Repository and support
476
-
477
- - [Revo UI on GitHub](https://github.com/revolist/revo-ui): gallery app, documentation, and project information.
478
- - [Component API reference](https://github.com/revolist/revo-ui/blob/main/docs/component-reference.md#complete-component-reference): individual component props and API details.
479
- - [Issues](https://github.com/revolist/revo-ui/issues): report bugs or request improvements; include your framework, package version, and a minimal reproduction.
480
- - [npm package](https://www.npmjs.com/package/@revolist/ui): published versions and installation information.
481
-
482
- ## Licensing
483
-
484
- Revo UI is [MIT licensed](LICENSE). Anyone can use, modify, and distribute it, including in commercial projects.
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/`.
485
100
 
486
- See [Current UI APIs](MIGRATION.md) for removed compatibility names and consumer migrations.
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.