@revolist/ui 4.0.3-rc → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +36 -0
- package/OWNERSHIP.md +32 -32
- package/README.md +136 -78
- package/_button.scss +6 -2
- package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
- package/_chunks/calculator-CDWOuAcp.js +4 -0
- package/_chunks/{calendar-xpZ0v3xf.js → calendar-CgXQgkga.js} +19 -19
- package/_chunks/chart-frame-hcOlnQ1K.js +145 -0
- package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
- package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
- package/_chunks/choice-chips-SkllS5Kl.js +126 -0
- package/_chunks/{color-palette-D8vyPfld.js → color-palette-DMJUChWC.js} +20 -22
- package/_chunks/color-picker-BpCTuIdm.js +143 -0
- package/_chunks/{component-C_T2VN5u.js → component-CfeHXgIw.js} +279 -264
- package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
- package/_chunks/configurator-actions-DnStE6Yl.js +155 -0
- package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
- package/_chunks/{control-AHKXD5Eu.js → control-Dcrjsunl.js} +42 -17
- package/_chunks/controls-B_6NJarZ.js +650 -0
- package/_chunks/{date-control-DrVFX13g.js → date-control-C4h4m75W.js} +1 -1
- package/_chunks/{date-time-qIhp5vaX.js → date-time-CTOSbzb0.js} +317 -278
- package/_chunks/dialog.parts-3w5FR06n.js +131 -0
- package/_chunks/{duration-CL68Em0o.js → duration-Bf2OS1V5.js} +5 -5
- package/_chunks/editor-popup-ByU7qiub.js +82 -0
- package/_chunks/field-configurator-D5dZRhDe.js +288 -0
- package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-Bk4O_T7T.js} +1 -1
- package/_chunks/icon-toolbar-DSjOdwM7.js +134 -0
- package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
- package/_chunks/minus-BOAR3A1C.js +4 -0
- package/_chunks/mount-BRdcG60g.js +267 -0
- package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
- package/_chunks/native-control-B_fVA5bL.js +649 -0
- package/_chunks/{number-input-BKwA5FnM.js → number-input-CmM6_2vR.js} +7 -7
- package/_chunks/{picker-h1P5RUgp.js → picker-DTqET-2W.js} +2 -2
- package/_chunks/plus-CbGRkIGl.js +4 -0
- package/_chunks/popover-controller-D-AvKQ7B.js +102 -0
- package/_chunks/{popup-CT2uD3go.js → popup-C35Isk7p.js} +115 -104
- package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-C-6wcb9U.js} +1 -1
- package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-DIl1gkV6.js} +1 -1
- package/_chunks/request-trail-DrhdpWiH.js +762 -0
- package/_chunks/rich-text-BnilBbhU.js +842 -0
- package/_chunks/rotate-left-BF6G883o.js +4 -0
- package/_chunks/selection-list-tooltips-C5oMJe26.js +42 -0
- package/_chunks/title-tooltip-Cw6LOZhb.js +11 -0
- package/_chunks/tooltip-D4xkio5G.js +54 -0
- package/_chunks/tooltip-owner-DjdvqKzz.js +19 -0
- package/_chunks/tooltip-session-B6X6x8G_.js +110 -0
- package/_chunks/tooltip-text-BXsUEmBH.js +12 -0
- package/_chunks/top-layer-popup-CNSDdfJV.js +59 -0
- package/_dialog.scss +57 -22
- package/_form.scss +71 -21
- package/_legend.scss +25 -7
- package/_shared/data-query/index.d.ts +2 -2
- package/_shared/data-query/load-options.d.ts +2 -2
- package/_variables.scss +34 -32
- package/_view-switcher.scss +6 -0
- package/activity-message.d.ts +1 -1
- package/ai/_chat.scss +35 -3
- package/ai/_style.scss +76 -16
- package/ai/chat.d.ts +3 -1
- package/ai/components.d.ts +16 -3
- package/ai/index.d.ts +1 -0
- package/ai/index.js +3 -3
- package/ai/mount.d.ts +30 -6
- package/ai/request-trail.d.ts +9 -3
- package/ai/results/_style.scss +83 -0
- package/ai/results/index.d.ts +11 -0
- package/ai/results/metrics.d.ts +5 -0
- package/ai/results/table.d.ts +5 -0
- package/ai/results/text.d.ts +5 -0
- package/ai/results/types.d.ts +29 -0
- package/ai/transcript.d.ts +2 -0
- package/ai/translations.d.ts +1 -1
- package/angular/angular.d.ts +1 -1
- package/angular/angular.js +13 -7
- package/assignee/assignee.scss +28 -6
- package/assignee/index.js +2 -2
- package/avatar/avatar.style.scss +23 -6
- package/avatar/index.d.ts +25 -2
- package/avatar/index.js +33 -32
- package/badge.d.ts +1 -1
- package/badge.view.d.ts +8 -0
- package/brush-range/_brush-range.scss +55 -49
- package/brush-range/component.d.ts +1 -3
- package/brush-range/component.js +27 -27
- package/buttons/delete-button.style.scss +6 -2
- package/buttons/remove-button.d.ts +1 -1
- package/buttons/remove-button.style.scss +1 -1
- package/buttons/svg-button.d.ts +1 -1
- package/buttons/svg-button.js +16 -16
- package/calendar/_calendar.scss +21 -25
- package/calendar/calendar.js +1 -1
- package/calendar/header.js +1 -2
- package/calendar/index.js +2 -2
- package/cell-input.scss +3 -7
- package/cell-visuals/badge.style.scss +6 -3
- package/cell-visuals/bar-chart.style.scss +2 -1
- package/cell-visuals/column-type.style.css +12 -0
- package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
- package/cell-visuals/progress-line.style.scss +1 -4
- package/cell-visuals/sparkline.style.scss +2 -1
- package/cell-visuals/timeline.style.css +4 -2
- package/checkbox/checkbox.scss +6 -24
- package/choice-chips/index.d.ts +3 -1
- package/choice-chips/index.js +1 -1
- package/color-palette/color-palette.js +1 -1
- package/color-palette/color-palette.style.scss +88 -25
- package/color-palette/color-picker.js +2 -2
- package/color-palette/color-picker.style.scss +23 -10
- package/color-palette/common-palettes.d.ts +1 -1
- package/color-palette/common-palettes.js +1 -1
- package/color-palette/native.d.ts +15 -2
- package/component-catalog.d.ts +9 -7
- package/configurator-actions.d.ts +67 -0
- package/configurator-actions.js +1 -0
- package/configurator-aggregation-list.d.ts +14 -0
- package/configurator-aggregation-list.js +63 -0
- package/configurator-drop-zone.d.ts +39 -0
- package/configurator-drop-zone.js +66 -0
- package/configurator-field-icon.d.ts +10 -0
- package/configurator-field-icon.js +1 -0
- package/configurator-focus.d.ts +4 -0
- package/configurator-focus.js +39 -0
- package/configurator-sections.d.ts +42 -0
- package/configurator-sections.js +71 -0
- package/control-presentation.d.ts +8 -2
- package/control-presentation.js +25 -20
- package/controls.d.ts +12 -2
- package/controls.js +4 -3
- package/core/editor-popup-position.d.ts +6 -2
- package/core/editor-popup.d.ts +4 -0
- package/core/editor-popup.js +1 -1
- package/core/popover-controller.d.ts +35 -0
- package/core/popup-ownership.d.ts +2 -0
- package/core/selection-list-tooltips.d.ts +2 -0
- package/core/title-tooltip.d.ts +2 -0
- package/core/tooltip-session.d.ts +29 -0
- package/core/tooltip-surface.d.ts +13 -0
- package/core/tooltip-text.d.ts +6 -0
- package/core/tooltip.d.ts +35 -0
- package/core/top-layer-popup.d.ts +4 -0
- package/core/top-layer-popup.js +1 -23
- package/date-time/attach.d.ts +1 -1
- package/date-time/date-control.d.ts +1 -1
- package/date-time/field.d.ts +3 -2
- package/date-time/index.js +1 -1
- package/date-time/style.scss +239 -36
- package/date-time/time-selection.d.ts +3 -1
- package/date-time/types.d.ts +5 -1
- package/dialog/dialog-action-footer.d.ts +17 -2
- package/dialog/dialog.dom.d.ts +15 -2
- package/dialog/dialog.dom.js +9 -9
- package/dialog/dialog.parts.d.ts +1 -1
- package/dialog/dialog.parts.js +1 -1
- package/distribution-chart/_distribution-chart.scss +113 -77
- package/distribution-chart/area-chart.js +1 -1
- package/distribution-chart/bar-chart.js +1 -1
- package/distribution-chart/chart-frame.d.ts +1 -1
- package/distribution-chart/index.d.ts +1 -1
- package/distribution-chart/line-chart.js +1 -1
- package/dropdown/content.js +1 -1
- package/dropdown/control.js +1 -1
- package/dropdown/dropdown.types.d.ts +1 -1
- package/dropdown/editor-dropdown.style.scss +19 -9
- package/dropdown/index.js +2 -2
- package/dropdown/lookup-field.d.ts +5 -0
- package/dropdown/lookup-field.js +2 -1
- package/dropdown/popup.d.ts +2 -2
- package/dropdown/popup.js +1 -1
- package/duration/index.js +1 -1
- package/editor-actions.js +1 -1
- package/editor-layout/index.d.ts +4 -4
- package/editor-layout/index.js +39 -34
- package/editor-layout/style.scss +82 -18
- package/field-configurator.d.ts +39 -1
- package/field-configurator.js +4 -170
- package/field-expansion.d.ts +9 -0
- package/filter/filters/slider/_single-slider.scss +57 -38
- package/filter/filters/slider/_slider.scss +41 -33
- package/filter/filters/slider/control.js +2 -0
- package/filter/filters/slider/runtime.js +49 -22
- package/filter/filters/slider/single.js +1 -1
- package/filter-badge.js +1 -1
- package/filter-controls.d.ts +0 -1
- package/filter-controls.js +5 -6
- package/form-controls/index.d.ts +10 -2
- package/form-controls/index.js +7 -7
- package/form-controls/presentation.d.ts +1 -1
- package/form-controls/presentation.js +12 -12
- package/formatting/index.d.ts +1 -1
- package/formatting/index.js +22 -21
- package/formatting/styles.scss +14 -57
- package/framework.js +227 -224
- package/history-controls.js +27 -1
- package/icon-toolbar.d.ts +62 -0
- package/icon-toolbar.js +1 -0
- package/icons/icon.d.ts +1 -1
- package/legend.d.ts +1 -1
- package/masked-input/index.js +1 -1
- package/native-control.d.ts +1 -2
- package/native-control.js +1 -1
- package/native-controls.d.ts +54 -2
- package/native-styles.css +1 -1
- package/native-styles.scss +6 -2
- package/native.d.ts +3 -3
- package/native.js +46 -43
- package/number-input/index.d.ts +1 -1
- package/number-input/index.js +1 -1
- package/package.json +71 -2
- package/pagination.js +11 -11
- package/pdf-viewer/header.d.ts +1 -1
- package/pdf-viewer/index.d.ts +2 -2
- package/pdf-viewer/index.js +1 -1
- package/pdf-viewer/search-bar.d.ts +1 -1
- package/pdf-viewer/status.d.ts +1 -1
- package/pdf-viewer/style.scss +203 -42
- package/pickers.d.ts +5 -1
- package/preact-mount.js +1 -1
- package/preact.d.ts +13 -10
- package/preact.js +109 -64
- package/progress/_bar.scss +9 -3
- package/progress/_circular.scss +2 -1
- package/rating-choice.js +1 -1
- package/react-adapter.d.ts +4 -2
- package/react-control.d.ts +2 -0
- package/react-control.js +2 -2
- package/react.d.ts +7 -8
- package/react.js +67 -66
- package/reorder-list.d.ts +1 -1
- package/reorder-list.js +1 -1
- package/reorder-list.scss +59 -17
- package/resource-picker/resource-picker-popup.js +1 -1
- package/resource-picker/resource-picker.js +74 -72
- package/resource-picker/resource-picker.scss +62 -34
- package/rich-text/engine.d.ts +1 -0
- package/rich-text/format-html.d.ts +2 -0
- package/rich-text/index.d.ts +4 -0
- package/rich-text/index.js +1 -1
- package/rich-text/model.d.ts +2 -0
- package/rich-text/style.scss +293 -44
- package/rich-text/syntax.d.ts +5 -0
- package/rich-text/toolbar.d.ts +1 -1
- package/rich-text/translations.d.ts +2 -0
- package/search-input/index.js +1 -1
- package/search-input/native.d.ts +21 -2
- package/select.d.ts +3 -1
- package/select.js +1 -1
- package/selection-list.d.ts +1 -0
- package/selection-list.js +3 -1
- package/status-feedback/exit-snapshot.js +4 -4
- package/status-feedback/popover.js +4 -4
- package/status-feedback/status-feedback.scss +124 -35
- package/styles/_activity-message.scss +24 -7
- package/styles/_alert.scss +78 -17
- package/styles/_cell-editor-frame.scss +11 -0
- package/styles/_compositions.scss +400 -80
- package/styles/_control.scss +30 -8
- package/styles/_disclosure.scss +15 -5
- package/styles/_editor-counter.scss +16 -6
- package/styles/_editor-slider.scss +8 -4
- package/styles/_field-configurator.scss +321 -23
- package/styles/_fields-grid.scss +49 -0
- package/styles/_filter-controls.scss +10 -2
- package/styles/_icon-action.scss +48 -15
- package/styles/_loading.scss +12 -3
- package/styles/_motion.scss +32 -9
- package/styles/_palette.scss +0 -24
- package/styles/_primitives.scss +369 -110
- package/styles/_theme.scss +130 -86
- package/styles/_thresholds.scss +28 -25
- package/styles/_time-grid.scss +8 -3
- package/styles/_tokens.scss +6 -1
- package/styles/configurator-actions.scss +241 -0
- package/styles/pagination.css +213 -0
- package/styles/{legacy-rating.css → rating.css} +8 -3
- package/styles.css +1 -1
- package/styles.scss +3 -5
- package/surfaces.d.ts +38 -2
- package/surfaces.js +37 -134
- package/svelte/UiComponent.svelte +44 -11
- package/svelte.d.ts +1 -1
- package/svelte.js +3 -3
- package/switch/index.js +15 -14
- package/time-grid.d.ts +0 -1
- package/time-grid.js +38 -37
- package/timeline-track/_style.scss +96 -24
- package/timeline-track/index.js +2 -2
- package/ui.css +1 -1
- package/view-switcher.d.ts +23 -0
- package/vue.d.ts +29 -32
- package/vue.js +116 -121
- package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
- package/_chunks/choice-chips-CHQTUdLs.js +0 -110
- package/_chunks/color-picker-CudqPYZo.js +0 -138
- package/_chunks/control-tooltip-uscKfAnV.js +0 -100
- package/_chunks/controls-DsNi8V8I.js +0 -630
- package/_chunks/dialog.parts-CKGkC5zP.js +0 -134
- package/_chunks/editor-popup-WDdtVDNA.js +0 -81
- package/_chunks/history-controls-B3u3INEK.js +0 -27
- package/_chunks/mount-DQ1cpppK.js +0 -257
- package/_chunks/native-control-C_yok8_-.js +0 -605
- package/_chunks/request-trail-DSlFix6i.js +0 -618
- package/_chunks/rich-text-CH7gIqOS.js +0 -636
- package/avatar/index.view.d.ts +0 -25
- package/color-palette/native.view.d.ts +0 -15
- package/control-presentation.view.d.ts +0 -8
- package/dialog/dialog-action-footer.view.d.ts +0 -20
- package/dialog/dialog.dom.view.d.ts +0 -15
- package/form-controls/index.view.d.ts +0 -10
- package/formatting/control-tooltip.d.ts +0 -27
- package/native-controls.view.d.ts +0 -54
- package/search-input/native.view.d.ts +0 -21
- package/styles/legacy-pagination.css +0 -112
- package/surfaces.view.d.ts +0 -63
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Current UI APIs
|
|
2
|
+
|
|
3
|
+
This change removes compatibility-only component names, CSS hooks and forwarding modules. Native mounting APIs (`createPreactElement`, `mountColorPicker`, native controls and dialogs) and React, Vue, Angular and Svelte adapters remain supported.
|
|
4
|
+
|
|
5
|
+
## Component names
|
|
6
|
+
|
|
7
|
+
Use the current names from the matching framework entry:
|
|
8
|
+
|
|
9
|
+
| Removed name | Current name |
|
|
10
|
+
| ---------------- | ---------------------- |
|
|
11
|
+
| `Icon` | `SvgIcon` |
|
|
12
|
+
| `RemovableChip` | `FilterChip` |
|
|
13
|
+
| `Slider` | `SingleValueSlider` |
|
|
14
|
+
| `RangeSlider` | `PreactRangeSlider` |
|
|
15
|
+
| `ResourcePicker` | `SharedResourcePicker` |
|
|
16
|
+
| `FeedbackPanel` | `StatusFeedbackPanel` |
|
|
17
|
+
|
|
18
|
+
The same names apply to the Angular/Svelte `UiComponent` component selector. Local import aliases are ordinary language aliases and remain available, for example `import { SingleValueSlider as Slider } from '@revolist/ui/react'`.
|
|
19
|
+
|
|
20
|
+
Import `Legend` from `@revolist/ui/legend` or the framework entry, rather than `@revolist/ui/filter-controls`. Use `ControlTooltip` instead of the unused `TooltipSurface` export. Render `DialogActionFooter` or `ActionFooterView` directly instead of calling the removed `renderDialogActionFooter(h, props)` signature.
|
|
21
|
+
|
|
22
|
+
## Styling
|
|
23
|
+
|
|
24
|
+
`TimeGrid` and `BrushRange` no longer accept `legacyClassPrefix`. Use `rv-time-grid__*` and `brush-range__*` respectively. Slider endpoints use the shared `fromSlider` and `toSlider` classes. Product-owned filter headers, summaries and action controls retain their product-owned names.
|
|
25
|
+
|
|
26
|
+
Checkbox customization uses `--rv-ui-checkbox-bg`, `--rv-ui-checkbox-border`, `--rv-ui-checkbox-checked`, `--rv-ui-checkbox-check` and `--rv-ui-checkbox-focus`; RowSelect/ColumnDialog variable aliases are removed.
|
|
27
|
+
|
|
28
|
+
The active rating and pagination style rules are now in `styles/rating.css` and `styles/pagination.css`, and remain included by the main stylesheet. Primitive `$legacy-*` Sass aliases are removed; internal styles use the existing palette lookup API. The unused scalar-slider fill element is removed; its current range input owns the fill.
|
|
29
|
+
|
|
30
|
+
## Date/time labels
|
|
31
|
+
|
|
32
|
+
A time picker uses `text.chooseTime`, falling back to its default time label. It no longer borrows `text.chooseDate`. Date pickers continue to use `text.chooseDate`.
|
|
33
|
+
|
|
34
|
+
## Source ownership
|
|
35
|
+
|
|
36
|
+
Forwarding-only `.ts` modules have been replaced by their owning TSX implementations at the canonical module paths. Public package entry names stay unchanged. The native mounting bridge remains the shared owner of element-returning adapters.
|
package/OWNERSHIP.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Shared UI ownership
|
|
2
2
|
|
|
3
3
|
`@revolist/ui` is the implementation owner for reusable product controls. Pro's
|
|
4
|
-
|
|
4
|
+
canonical exports and leaf modules contain the current implementations. Product code owns
|
|
5
5
|
values, validation, commands, persistence and domain layout.
|
|
6
6
|
|
|
7
7
|
AI prompt, suggestions, applied-request trail, action status, result and assistant compositions live in
|
|
@@ -9,35 +9,35 @@ AI prompt, suggestions, applied-request trail, action status, result and assista
|
|
|
9
9
|
adapter owns interpretation, field policy, view commands, query execution and
|
|
10
10
|
view snapshots. Framework adapters and native mounting reuse the same TSX.
|
|
11
11
|
|
|
12
|
-
| Component family
|
|
13
|
-
|
|
|
14
|
-
| Native button, input, select, textarea, summary
|
|
15
|
-
| Button variants, icon button, toggle, group
|
|
16
|
-
| Icon
|
|
17
|
-
| Checkbox
|
|
18
|
-
| Switch
|
|
19
|
-
| Radio group
|
|
20
|
-
| Choice chips, segmented control, tabs
|
|
21
|
-
| Search
|
|
22
|
-
| Number/date/time inputs, stepper
|
|
23
|
-
| Listbox, panes, split layout
|
|
24
|
-
| Form field, hint, error, section, disclosure
|
|
25
|
-
| Chips
|
|
26
|
-
| Scalar/range sliders
|
|
27
|
-
| Calendar and date pickers
|
|
28
|
-
| Dropdown, combobox, multi-select
|
|
29
|
-
| Color palette/picker
|
|
30
|
-
| Resource picker, avatar
|
|
31
|
-
| Dialog, popover, tooltip, menu, resize
|
|
32
|
-
| Toolbar, panel, empty state, alerts
|
|
33
|
-
| Status feedback and badges
|
|
34
|
-
| Loading
|
|
35
|
-
| Pagination, progress, rating
|
|
36
|
-
| BarChart, LineChart, AreaChart; distribution adapter and brush range | `distribution-chart/bar-chart.tsx`, `line-chart.tsx`, `area-chart.tsx`; shared `chart-frame.tsx` and `geometry.ts`; `brush-range/` | `distribution-chart/_distribution-chart.scss`, `brush-range/_brush-range.scss`
|
|
37
|
-
| Option rows, legend, inline fields
|
|
38
|
-
| Weekly time grid and keyboard/paint gesture lifecycle
|
|
39
|
-
| Highlighted text input and scroll synchronization
|
|
40
|
-
| Theme tokens
|
|
12
|
+
| Component family | Implementation owner under `src/` | Style owner under `src/` |
|
|
13
|
+
| -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
14
|
+
| Native button, input, select, textarea, summary | `control-presentation.tsx`; Preact `native-control.tsx` | `styles/_primitives.scss`, `styles/_control.scss`, `_form.scss` |
|
|
15
|
+
| Button variants, icon button, toggle, group | `controls.tsx`, `buttons/` | `styles/_primitives.scss` |
|
|
16
|
+
| Icon | `icons/icon.tsx` | `styles/_primitives.scss` |
|
|
17
|
+
| Checkbox | `checkbox/index.ts` | `checkbox/checkbox.scss` |
|
|
18
|
+
| Switch | `switch/index.tsx` | `styles/_primitives.scss` |
|
|
19
|
+
| Radio group | `controls.tsx` | `_form.scss`, `styles/_compositions.scss` |
|
|
20
|
+
| Choice chips, segmented control, tabs | `choice-chips/`, `segmented-switch/`; semantic exports in `controls.tsx` | `styles/_primitives.scss` |
|
|
21
|
+
| Search | `search-input/native.tsx`; Preact `search-input/index.tsx` | `styles/_primitives.scss` |
|
|
22
|
+
| Number/date/time inputs, stepper | `controls.tsx`; grid scalar/counter adapters in `native-controls.tsx` | `_form.scss`, `styles/_editor-counter.scss` |
|
|
23
|
+
| Listbox, panes, split layout | `editor-layout/index.tsx`; neutral aliases in `controls.tsx` | `editor-layout/style.scss` |
|
|
24
|
+
| Form field, hint, error, section, disclosure | `form-controls/`, `controls.tsx` | `_form.scss`, `styles/_compositions.scss` |
|
|
25
|
+
| Chips | `form-controls/presentation.tsx` | `styles/_primitives.scss` |
|
|
26
|
+
| Scalar/range sliders | `filter/filters/slider/`, `native-controls.tsx` | `filter/filters/slider/_slider.scss`, `styles/_editor-slider.scss` |
|
|
27
|
+
| Calendar and date pickers | `calendar/`, `pickers.tsx` | `calendar/_calendar.scss`, `styles/_compositions.scss` |
|
|
28
|
+
| Dropdown, combobox, multi-select | `dropdown/`; compositions in `pickers.tsx` | `dropdown/editor-dropdown.style.scss`, `styles/_compositions.scss` |
|
|
29
|
+
| Color palette/picker | `color-palette/` | `color-palette/*.scss` |
|
|
30
|
+
| Resource picker, avatar | `resource-picker/`, `avatar/` | `resource-picker/resource-picker.scss`, `avatar/avatar.style.scss` |
|
|
31
|
+
| Dialog, popover, tooltip, menu, resize | `surfaces.tsx`, `dialog/`, `core/`; Preact compositions in `controls.tsx` and `pickers.tsx` | `_dialog.scss`, `styles/_primitives.scss`, `styles/_compositions.scss` |
|
|
32
|
+
| Toolbar, panel, empty state, alerts | `controls.tsx` | `styles/_compositions.scss` |
|
|
33
|
+
| Status feedback and badges | `status-feedback/`, `controls.tsx` | `status-feedback/status-feedback.scss`, `styles/_primitives.scss` |
|
|
34
|
+
| Loading | `native-controls.tsx`, `controls.tsx` | `styles/_loading.scss`, `styles/_compositions.scss` |
|
|
35
|
+
| Pagination, progress, rating | `pagination.ts`, `progress/`, `native-controls.tsx`, `controls.tsx` | `progress/_bar.scss`, `progress/_circular.scss`, `styles/rating.css`, `styles/pagination.css`, `styles/_compositions.scss` |
|
|
36
|
+
| BarChart, LineChart, AreaChart; distribution adapter and brush range | `distribution-chart/bar-chart.tsx`, `line-chart.tsx`, `area-chart.tsx`; shared `chart-frame.tsx` and `geometry.ts`; `brush-range/` | `distribution-chart/_distribution-chart.scss`, `brush-range/_brush-range.scss` |
|
|
37
|
+
| Option rows, legend, inline fields | `filter-controls.tsx` | `styles/_filter-controls.scss` |
|
|
38
|
+
| Weekly time grid and keyboard/paint gesture lifecycle | `time-grid.tsx` | `styles/_time-grid.scss` |
|
|
39
|
+
| Highlighted text input and scroll synchronization | `filter-controls.tsx` | `styles/_filter-controls.scss` |
|
|
40
|
+
| Theme tokens | `styles/_theme.scss` | `styles/_tokens.scss` installs light/dark scopes |
|
|
41
41
|
|
|
42
42
|
## Renderer and stylesheet contracts
|
|
43
43
|
|
|
@@ -72,7 +72,7 @@ integration tests. Canonical suite selection is documented in `TESTING.md`.
|
|
|
72
72
|
|
|
73
73
|
History and export commands use UI's `SvgButton` (or `IconButton` convenience composition) for SVG, count badge and pointer/keyboard tooltip presentation. Element-returning adapters use `decorateIconAction`; Charts renders controls through Preact. Products supply localized labels, permissions, actions and history counts. `ToolbarGroup` groups commands with spacing; `ButtonGroup` remains the bordered choice composition. Both danger button variants use the same red outline presentation.
|
|
74
74
|
|
|
75
|
-
Structured filter adapters retain aggregation, matching, amount/date validation, timezone policy, preset meaning and commit transactions. UI receives explicit data and formatted labels. Expression parsing, syntax tokens, diagnostics and debounce remain in Pro; UI owns the highlighted input's geometry and scroll synchronization. TimeGrid owns keyboard focus and paint gesture cleanup; Pro expands visual buckets into selected hourly filter values.
|
|
75
|
+
Structured filter adapters retain aggregation, matching, amount/date validation, timezone policy, preset meaning and commit transactions. UI receives explicit data and formatted labels. Expression parsing, syntax tokens, diagnostics and debounce remain in Pro; UI owns the highlighted input's geometry and scroll synchronization. TimeGrid owns keyboard focus and paint gesture cleanup; Pro expands visual buckets into selected hourly filter values. Filter consumers use the canonical TimeGrid and BrushRange classes and semantic UI tokens.
|
|
76
76
|
|
|
77
77
|
## Grid-backed filter compositions stay in Pro
|
|
78
78
|
|
|
@@ -120,4 +120,4 @@ Link-style action buttons use `Button variant="link"` or `SvgButton variant="lin
|
|
|
120
120
|
|
|
121
121
|
## Preact element construction
|
|
122
122
|
|
|
123
|
-
All shared UI markup is Preact TSX. Element-returning
|
|
123
|
+
All shared UI markup is Preact TSX. Element-returning native APIs mount the same TSX through `preact-mount.ts`; they do not build parallel DOM trees. Lifecycle controllers may attach, position, focus and dispose rendered roots. Grid/Stencil VNode adapters retain the Core rendering contract. Charts controls use Preact through the same mount boundary; chart scene/export geometry remains scene-owned.
|
package/README.md
CHANGED
|
@@ -54,7 +54,11 @@ export function ReportName() {
|
|
|
54
54
|
const [name, setName] = useState('Monthly revenue');
|
|
55
55
|
return (
|
|
56
56
|
<>
|
|
57
|
-
<TextInput
|
|
57
|
+
<TextInput
|
|
58
|
+
aria-label="Report name"
|
|
59
|
+
value={name}
|
|
60
|
+
onValueChange={setName}
|
|
61
|
+
/>
|
|
58
62
|
<Button rounded variant="primary" onClick={() => console.log(name)}>
|
|
59
63
|
Create report
|
|
60
64
|
</Button>
|
|
@@ -65,16 +69,32 @@ export function ReportName() {
|
|
|
65
69
|
|
|
66
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.
|
|
67
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.
|
|
75
|
+
|
|
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
|
+
```
|
|
87
|
+
|
|
68
88
|
## Framework integrations
|
|
69
89
|
|
|
70
|
-
| Framework
|
|
71
|
-
|
|
|
72
|
-
| React
|
|
73
|
-
| Vue
|
|
74
|
-
| Angular
|
|
75
|
-
| Svelte 5
|
|
76
|
-
| Preact
|
|
77
|
-
| Vanilla TypeScript | `@revolist/ui/framework` | `createFrameworkMount` and `uiComponents`; call `render` to update and `destroy` on disposal.
|
|
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/) |
|
|
78
98
|
|
|
79
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.
|
|
80
100
|
|
|
@@ -82,29 +102,29 @@ Additional entries include `@revolist/ui/native` for DOM controllers and present
|
|
|
82
102
|
|
|
83
103
|
Browse the same component families as the public gallery. Each page includes live previews, variants, and usage examples.
|
|
84
104
|
|
|
85
|
-
| Component family
|
|
86
|
-
|
|
|
87
|
-
| [Buttons](https://ui.rv-grid.com/components/buttons/)
|
|
88
|
-
| [Inputs and forms](https://ui.rv-grid.com/components/inputs-and-forms/)
|
|
89
|
-
| [Selects and pickers](https://ui.rv-grid.com/components/selects-chips-and-resources/)
|
|
90
|
-
| [Selection controls](https://ui.rv-grid.com/components/selection-controls/)
|
|
91
|
-
| [Tabs and lists](https://ui.rv-grid.com/components/tabs-and-lists/)
|
|
92
|
-
| [Sliders](https://ui.rv-grid.com/components/sliders/)
|
|
93
|
-
| [Timeline](https://ui.rv-grid.com/components/timeline-track/)
|
|
94
|
-
| [Calendars and dates](https://ui.rv-grid.com/components/calendar-and-dates/)
|
|
95
|
-
| [Charts](https://ui.rv-grid.com/components/charts-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/)
|
|
98
|
-
| [Status and feedback](https://ui.rv-grid.com/components/status-and-feedback/)
|
|
99
|
-
| [Layout](https://ui.rv-grid.com/components/layout/)
|
|
100
|
-
| [Pagination](https://ui.rv-grid.com/components/pagination/)
|
|
101
|
-
| [Progress and rating](https://ui.rv-grid.com/components/progress-and-rating/)
|
|
102
|
-
| [Activity messages](https://ui.rv-grid.com/components/activity-messages/)
|
|
103
|
-
| [AI assistant](https://ui.rv-grid.com/components/ai-assistant/)
|
|
104
|
-
| [PDF viewer](https://ui.rv-grid.com/components/pdf-viewer/)
|
|
105
|
-
| [Color](https://ui.rv-grid.com/components/color/)
|
|
106
|
-
| [Field configurators](https://ui.rv-grid.com/components/field-configurators/)
|
|
107
|
-
| [Formatting controls](https://ui.rv-grid.com/components/formatting-controls/)
|
|
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. |
|
|
108
128
|
|
|
109
129
|
## Complete component reference
|
|
110
130
|
|
|
@@ -114,7 +134,7 @@ Every component in the shared adapter catalog is listed below. Each name links t
|
|
|
114
134
|
|
|
115
135
|
Actions, grouped commands, toggled state, icons, compact sizing, busy states and pill corners.
|
|
116
136
|
|
|
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/)) | [
|
|
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/))
|
|
118
138
|
|
|
119
139
|
### Selection controls
|
|
120
140
|
|
|
@@ -138,13 +158,13 @@ Text, search and numeric entry; field labels, validation, inline layouts and edi
|
|
|
138
158
|
|
|
139
159
|
Single or multiple selections, searchable options, selected-value templates, avatars, resource lists and assignee fields.
|
|
140
160
|
|
|
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/)) | [
|
|
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/))
|
|
142
162
|
|
|
143
163
|
### Sliders
|
|
144
164
|
|
|
145
165
|
Scalar and interval controls with labels, value badges, thumb values, ticks and units.
|
|
146
166
|
|
|
147
|
-
[
|
|
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/))
|
|
148
168
|
|
|
149
169
|
### Timeline track
|
|
150
170
|
|
|
@@ -198,7 +218,7 @@ Command menus, nested commands, separators and grouped toolbar actions.
|
|
|
198
218
|
|
|
199
219
|
Semantic badges, counters, alerts, progress indicators, loading surfaces, empty states and feedback panels.
|
|
200
220
|
|
|
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/)) | [
|
|
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/))
|
|
202
222
|
|
|
203
223
|
### Layout
|
|
204
224
|
|
|
@@ -236,7 +256,6 @@ Display local or remote PDFs with navigation, search, zoom, rotation, print/down
|
|
|
236
256
|
|
|
237
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/))
|
|
238
258
|
|
|
239
|
-
|
|
240
259
|
### JSX select adapter
|
|
241
260
|
|
|
242
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.
|
|
@@ -247,24 +266,26 @@ import { Select } from '@revolist/ui/select';
|
|
|
247
266
|
<Select aria-label="View" value={view} onValueChange={setView}>
|
|
248
267
|
<option value="table">Table</option>
|
|
249
268
|
<option value="board">Board</option>
|
|
250
|
-
<option value="calendar" disabled>
|
|
251
|
-
|
|
269
|
+
<option value="calendar" disabled>
|
|
270
|
+
Calendar
|
|
271
|
+
</option>
|
|
272
|
+
</Select>;
|
|
252
273
|
```
|
|
253
274
|
|
|
254
275
|
## Usage contracts
|
|
255
276
|
|
|
256
|
-
| Concern
|
|
257
|
-
|
|
|
258
|
-
| Controlled state
|
|
259
|
-
| Dropdown data
|
|
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
|
|
262
|
-
| Forms
|
|
263
|
-
| Overlays
|
|
264
|
-
| Lifecycle
|
|
265
|
-
| AI components
|
|
266
|
-
| PDF viewer
|
|
267
|
-
| Charts
|
|
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. |
|
|
268
289
|
|
|
269
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.
|
|
270
291
|
|
|
@@ -291,9 +312,17 @@ const people = [
|
|
|
291
312
|
{ value: 'alex', label: 'Alex Morgan', photo: '/people/alex.jpg' },
|
|
292
313
|
{ value: 'sam', label: 'Sam Rivera', photo: '/people/sam.jpg' },
|
|
293
314
|
];
|
|
294
|
-
const personContent = (
|
|
315
|
+
const personContent = (
|
|
316
|
+
_h: unknown,
|
|
317
|
+
person: { label: string; photo?: string },
|
|
318
|
+
) => (
|
|
295
319
|
<span style={{ display: 'inline-flex', alignItems: 'center', gap: 8 }}>
|
|
296
|
-
<Avatar
|
|
320
|
+
<Avatar
|
|
321
|
+
value={person.photo}
|
|
322
|
+
label=""
|
|
323
|
+
initials={person.label[0]}
|
|
324
|
+
size={16}
|
|
325
|
+
/>
|
|
297
326
|
<span>{person.label}</span>
|
|
298
327
|
</span>
|
|
299
328
|
);
|
|
@@ -302,11 +331,15 @@ const personContent = (_h: unknown, person: { label: string; photo?: string }) =
|
|
|
302
331
|
className="rv-select"
|
|
303
332
|
source={people}
|
|
304
333
|
value={personId}
|
|
305
|
-
onChange={next => setPersonId(String(next))}
|
|
306
|
-
config={{
|
|
334
|
+
onChange={(next) => setPersonId(String(next))}
|
|
335
|
+
config={{
|
|
336
|
+
ariaLabel: 'Team member',
|
|
337
|
+
topLayer: true,
|
|
338
|
+
nativeTabNavigation: true,
|
|
339
|
+
}}
|
|
307
340
|
renderOption={personContent}
|
|
308
341
|
renderValue={personContent}
|
|
309
|
-
|
|
342
|
+
/>;
|
|
310
343
|
```
|
|
311
344
|
|
|
312
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/).
|
|
@@ -325,9 +358,9 @@ import { SliderField } from '@revolist/ui/filter/filters/slider/single';
|
|
|
325
358
|
step={50}
|
|
326
359
|
value={saved}
|
|
327
360
|
valuePlacement="end"
|
|
328
|
-
formatValue={value => `${Math.round(value / 20000 * 100)}%`}
|
|
361
|
+
formatValue={(value) => `${Math.round((value / 20000) * 100)}%`}
|
|
329
362
|
onChange={setSaved}
|
|
330
|
-
|
|
363
|
+
/>;
|
|
331
364
|
```
|
|
332
365
|
|
|
333
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/).
|
|
@@ -337,7 +370,7 @@ import { SliderField } from '@revolist/ui/filter/filters/slider/single';
|
|
|
337
370
|
```tsx
|
|
338
371
|
import { BarChart } from '@revolist/ui/preact';
|
|
339
372
|
|
|
340
|
-
const largestExpense = Math.max(...expenses.map(item => item.value));
|
|
373
|
+
const largestExpense = Math.max(...expenses.map((item) => item.value));
|
|
341
374
|
|
|
342
375
|
<BarChart
|
|
343
376
|
data={expenses}
|
|
@@ -346,8 +379,8 @@ const largestExpense = Math.max(...expenses.map(item => item.value));
|
|
|
346
379
|
showGrid
|
|
347
380
|
showLabels
|
|
348
381
|
tooltipIndicator="dot"
|
|
349
|
-
barColor={datum => datum.value === largestExpense ? '#f97316' : undefined}
|
|
350
|
-
|
|
382
|
+
barColor={(datum) => (datum.value === largestExpense ? '#f97316' : undefined)}
|
|
383
|
+
/>;
|
|
351
384
|
```
|
|
352
385
|
|
|
353
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/).
|
|
@@ -359,11 +392,30 @@ import { TimelineTrack } from '@revolist/ui/timeline-track';
|
|
|
359
392
|
|
|
360
393
|
// Application-owned rows; retain these metadata fields when committing changes.
|
|
361
394
|
const initialRows = [
|
|
362
|
-
{
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
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
|
+
},
|
|
367
419
|
];
|
|
368
420
|
|
|
369
421
|
<TimelineTrack
|
|
@@ -371,9 +423,13 @@ const initialRows = [
|
|
|
371
423
|
selected={selected}
|
|
372
424
|
range={{ start: 0, end: 24 }}
|
|
373
425
|
onSelect={setSelected}
|
|
374
|
-
onEventChange={(id, event) =>
|
|
375
|
-
|
|
376
|
-
|
|
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
|
+
/>;
|
|
377
433
|
```
|
|
378
434
|
|
|
379
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/).
|
|
@@ -406,15 +462,15 @@ Motion follows the system's reduced-motion preference. `data-rv-ui-motion="off"`
|
|
|
406
462
|
|
|
407
463
|
## RevoGrid products
|
|
408
464
|
|
|
409
|
-
| Product
|
|
410
|
-
|
|
|
411
|
-
| RevoGrid
|
|
412
|
-
| Grid Pro
|
|
413
|
-
| Pivot
|
|
414
|
-
| Charts
|
|
415
|
-
| Gantt
|
|
416
|
-
| Scheduler | [Resource scheduling](https://rv-grid.com/jsscheduler/) | [Pro documentation](https://pro.rv-grid.com/)
|
|
417
|
-
| Kanban
|
|
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/) |
|
|
418
474
|
|
|
419
475
|
## Repository and support
|
|
420
476
|
|
|
@@ -426,3 +482,5 @@ Motion follows the system's reduced-motion preference. `data-rv-ui-motion="off"`
|
|
|
426
482
|
## Licensing
|
|
427
483
|
|
|
428
484
|
Revo UI is [MIT licensed](LICENSE). Anyone can use, modify, and distribute it, including in commercial projects.
|
|
485
|
+
|
|
486
|
+
See [Current UI APIs](MIGRATION.md) for removed compatibility names and consumer migrations.
|
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)
|
|
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(
|
|
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
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg?raw
|
|
2
|
+
var e = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"/></svg>", t = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"/></svg>";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as n, t };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
//#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/calculator.svg?raw
|
|
2
|
+
var e = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"/></svg>";
|
|
3
|
+
//#endregion
|
|
4
|
+
export { e as t };
|