@revolist/ui 4.0.5-rc → 4.0.6-rc

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 (153) hide show
  1. package/MIGRATION.md +36 -0
  2. package/OWNERSHIP.md +10 -10
  3. package/README.md +6 -4
  4. package/_chunks/{calendar-DsXIhybL.js → calendar-QWDyYzdo.js} +1 -1
  5. package/_chunks/{chart-frame-CuZABXVI.js → chart-frame-hcOlnQ1K.js} +13 -9
  6. package/_chunks/{choice-chips-BhP8MZjs.js → choice-chips-A6WR-WJe.js} +1 -1
  7. package/_chunks/{color-picker-B4TQvxxB.js → color-picker-BK4W1nd6.js} +1 -1
  8. package/_chunks/{component-qKctqdzk.js → component-CMkF17YZ.js} +5 -5
  9. package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-BKd7U8OW.js} +0 -8
  10. package/_chunks/{configurator-actions-C19O1rda.js → configurator-actions-By8WSL2m.js} +3 -3
  11. package/_chunks/{control-BkWukVt9.js → control-mlH7l0Uq.js} +30 -5
  12. package/_chunks/{controls-BLQnWEd7.js → controls-FUU-MUKC.js} +26 -33
  13. package/_chunks/{date-control-Cgw5PwlZ.js → date-control-Dup_P3w5.js} +1 -1
  14. package/_chunks/{date-time-B8rK5gpC.js → date-time-9z6pAG5T.js} +304 -281
  15. package/_chunks/dialog.parts-Bi7YbXqS.js +131 -0
  16. package/_chunks/{duration-DwFXonEV.js → duration-D7oRjsmP.js} +5 -2
  17. package/_chunks/{editor-popup-BaaxL89T.js → editor-popup-ByU7qiub.js} +8 -7
  18. package/_chunks/{field-configurator-1eQP0tKy.js → field-configurator-BCINdXpU.js} +1 -1
  19. package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-Bk4O_T7T.js} +1 -1
  20. package/_chunks/{icon-toolbar-xbqa0hu9.js → icon-toolbar-DSjOdwM7.js} +39 -33
  21. package/_chunks/mount-Cw2zk58T.js +266 -0
  22. package/_chunks/{native.view-ByyZ1CT5.js → native-Blr3byjO.js} +1 -1
  23. package/_chunks/{native-control-DO0d1kgx.js → native-control-pFMuHf3G.js} +106 -98
  24. package/_chunks/{number-input-s9ddPwX6.js → number-input-DqXV6vgP.js} +2 -2
  25. package/_chunks/{picker-AY05b41W.js → picker-gEGTu1Ki.js} +2 -2
  26. package/_chunks/{popup-UXGCiv3n.js → popup-C35Isk7p.js} +19 -8
  27. package/_chunks/{rating-choice-BEs_QFZC.js → rating-choice-DbxdUJr-.js} +1 -1
  28. package/_chunks/{reorder-list-A49l172e.js → reorder-list-B0_13Sja.js} +1 -1
  29. package/_chunks/{request-trail-DCOfa5zw.js → request-trail-CCSK6TJA.js} +2 -2
  30. package/_chunks/{rich-text-xfMWadGi.js → rich-text-5rnc8lpI.js} +3 -3
  31. package/_variables.scss +33 -32
  32. package/ai/index.js +2 -2
  33. package/ai/results/_style.scss +3 -0
  34. package/assignee/assignee.scss +5 -1
  35. package/assignee/index.js +2 -2
  36. package/avatar/index.d.ts +25 -2
  37. package/avatar/index.js +1 -1
  38. package/brush-range/component.d.ts +1 -3
  39. package/brush-range/component.js +8 -9
  40. package/buttons/remove-button.d.ts +1 -1
  41. package/buttons/remove-button.style.scss +1 -1
  42. package/buttons/svg-button.js +1 -1
  43. package/calendar/calendar.js +1 -1
  44. package/calendar/index.js +2 -2
  45. package/checkbox/checkbox.scss +1 -22
  46. package/choice-chips/index.js +1 -1
  47. package/color-palette/color-picker.js +1 -1
  48. package/color-palette/common-palettes.d.ts +1 -1
  49. package/color-palette/common-palettes.js +1 -1
  50. package/color-palette/native.d.ts +15 -2
  51. package/component-catalog.d.ts +3 -6
  52. package/configurator-actions.js +1 -1
  53. package/configurator-aggregation-list.js +1 -1
  54. package/configurator-drop-zone.d.ts +1 -1
  55. package/configurator-drop-zone.js +1 -1
  56. package/control-presentation.d.ts +8 -2
  57. package/control-presentation.js +1 -1
  58. package/controls.js +1 -1
  59. package/core/editor-popup-position.d.ts +6 -2
  60. package/core/editor-popup.d.ts +4 -0
  61. package/core/editor-popup.js +1 -1
  62. package/date-time/attach.d.ts +1 -1
  63. package/date-time/field.d.ts +3 -2
  64. package/date-time/index.js +1 -1
  65. package/date-time/style.scss +16 -2
  66. package/date-time/types.d.ts +5 -1
  67. package/dialog/dialog-action-footer.d.ts +17 -2
  68. package/dialog/dialog.dom.d.ts +15 -2
  69. package/dialog/dialog.dom.js +3 -3
  70. package/dialog/dialog.parts.d.ts +1 -1
  71. package/dialog/dialog.parts.js +1 -1
  72. package/distribution-chart/_distribution-chart.scss +14 -0
  73. package/distribution-chart/area-chart.js +1 -1
  74. package/distribution-chart/bar-chart.js +1 -1
  75. package/distribution-chart/index.d.ts +1 -1
  76. package/distribution-chart/line-chart.js +1 -1
  77. package/dropdown/content.js +1 -1
  78. package/dropdown/control.js +1 -1
  79. package/dropdown/editor-dropdown.style.scss +5 -0
  80. package/dropdown/index.js +2 -2
  81. package/dropdown/lookup-field.d.ts +5 -0
  82. package/dropdown/lookup-field.js +1 -1
  83. package/dropdown/popup.js +1 -1
  84. package/duration/index.js +1 -1
  85. package/editor-actions.js +1 -1
  86. package/field-configurator.d.ts +8 -0
  87. package/field-configurator.js +1 -1
  88. package/filter/filters/slider/_slider.scss +8 -8
  89. package/filter/filters/slider/single.js +1 -1
  90. package/filter-badge.js +1 -1
  91. package/filter-controls.d.ts +0 -1
  92. package/filter-controls.js +5 -6
  93. package/form-controls/index.d.ts +10 -2
  94. package/form-controls/index.js +3 -3
  95. package/formatting/index.d.ts +1 -1
  96. package/formatting/index.js +1 -1
  97. package/framework.js +202 -205
  98. package/icon-toolbar.d.ts +5 -1
  99. package/icon-toolbar.js +1 -1
  100. package/masked-input/index.js +1 -1
  101. package/native-control.js +1 -1
  102. package/native-controls.d.ts +54 -2
  103. package/native-styles.css +1 -1
  104. package/native.js +29 -29
  105. package/number-input/index.js +1 -1
  106. package/package.json +1 -1
  107. package/pagination.js +11 -11
  108. package/pdf-viewer/index.js +1 -1
  109. package/preact.d.ts +1 -6
  110. package/preact.js +60 -60
  111. package/rating-choice.js +1 -1
  112. package/react-control.d.ts +2 -0
  113. package/react-control.js +2 -2
  114. package/react.d.ts +0 -6
  115. package/react.js +54 -54
  116. package/reorder-list.js +1 -1
  117. package/resource-picker/resource-picker-popup.js +1 -1
  118. package/rich-text/index.js +1 -1
  119. package/search-input/index.js +1 -1
  120. package/search-input/native.d.ts +21 -2
  121. package/select.js +1 -1
  122. package/styles/_alert.scss +18 -4
  123. package/styles/_editor-slider.scss +0 -2
  124. package/styles/_field-configurator.scss +2 -1
  125. package/styles/_fields-grid.scss +2 -0
  126. package/styles/_palette.scss +0 -24
  127. package/styles/_primitives.scss +3 -1
  128. package/styles.css +1 -1
  129. package/styles.scss +2 -2
  130. package/surfaces.d.ts +34 -3
  131. package/surfaces.js +2 -2
  132. package/svelte.js +3 -3
  133. package/switch/index.js +1 -1
  134. package/time-grid.d.ts +0 -1
  135. package/time-grid.js +4 -4
  136. package/timeline-track/index.js +1 -1
  137. package/ui.css +1 -1
  138. package/vue.d.ts +2 -21
  139. package/vue.js +83 -89
  140. package/_chunks/dialog.parts-BSbvnEwX.js +0 -134
  141. package/_chunks/mount-D1i5DLRn.js +0 -266
  142. package/avatar/index.view.d.ts +0 -25
  143. package/color-palette/native.view.d.ts +0 -15
  144. package/control-presentation.view.d.ts +0 -8
  145. package/dialog/dialog-action-footer.view.d.ts +0 -20
  146. package/dialog/dialog.dom.view.d.ts +0 -15
  147. package/form-controls/index.view.d.ts +0 -10
  148. package/formatting/control-tooltip.d.ts +0 -2
  149. package/native-controls.view.d.ts +0 -54
  150. package/search-input/native.view.d.ts +0 -21
  151. package/surfaces.view.d.ts +0 -33
  152. /package/styles/{legacy-pagination.css → pagination.css} +0 -0
  153. /package/styles/{legacy-rating.css → rating.css} +0 -0
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
- existing exports and leaf modules are compatibility adapters. Product code owns
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
@@ -11,28 +11,28 @@ view snapshots. Framework adapters and native mounting reuse the same TSX.
11
11
 
12
12
  | Component family | Implementation owner under `src/` | Style owner under `src/` |
13
13
  | --- | --- | --- |
14
- | Native button, input, select, textarea, summary | `control-presentation.view.tsx`; Preact `native-control.tsx` | `styles/_primitives.scss`, `styles/_control.scss`, `_form.scss` |
14
+ | Native button, input, select, textarea, summary | `control-presentation.tsx`; Preact `native-control.tsx` | `styles/_primitives.scss`, `styles/_control.scss`, `_form.scss` |
15
15
  | Button variants, icon button, toggle, group | `controls.tsx`, `buttons/` | `styles/_primitives.scss` |
16
16
  | Icon | `icons/icon.tsx` | `styles/_primitives.scss` |
17
17
  | Checkbox | `checkbox/index.ts` | `checkbox/checkbox.scss` |
18
18
  | Switch | `switch/index.tsx` | `styles/_primitives.scss` |
19
19
  | Radio group | `controls.tsx` | `_form.scss`, `styles/_compositions.scss` |
20
20
  | Choice chips, segmented control, tabs | `choice-chips/`, `segmented-switch/`; semantic exports in `controls.tsx` | `styles/_primitives.scss` |
21
- | Search | `search-input/native.view.tsx`; Preact `search-input/index.tsx` | `styles/_primitives.scss` |
22
- | Number/date/time inputs, stepper | `controls.tsx`; grid scalar/counter adapters in `native-controls.view.tsx` | `_form.scss`, `styles/_editor-counter.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
23
  | Listbox, panes, split layout | `editor-layout/index.tsx`; neutral aliases in `controls.tsx` | `editor-layout/style.scss` |
24
24
  | Form field, hint, error, section, disclosure | `form-controls/`, `controls.tsx` | `_form.scss`, `styles/_compositions.scss` |
25
25
  | Chips | `form-controls/presentation.tsx` | `styles/_primitives.scss` |
26
- | Scalar/range sliders | `filter/filters/slider/`, `native-controls.view.tsx` | `filter/filters/slider/_slider.scss`, `styles/_editor-slider.scss` |
26
+ | Scalar/range sliders | `filter/filters/slider/`, `native-controls.tsx` | `filter/filters/slider/_slider.scss`, `styles/_editor-slider.scss` |
27
27
  | Calendar and date pickers | `calendar/`, `pickers.tsx` | `calendar/_calendar.scss`, `styles/_compositions.scss` |
28
28
  | Dropdown, combobox, multi-select | `dropdown/`; compositions in `pickers.tsx` | `dropdown/editor-dropdown.style.scss`, `styles/_compositions.scss` |
29
29
  | Color palette/picker | `color-palette/` | `color-palette/*.scss` |
30
30
  | Resource picker, avatar | `resource-picker/`, `avatar/` | `resource-picker/resource-picker.scss`, `avatar/avatar.style.scss` |
31
- | Dialog, popover, tooltip, menu, resize | `surfaces.view.tsx`, `dialog/`, `core/`; Preact compositions in `controls.tsx` and `pickers.tsx` | `_dialog.scss`, `styles/_primitives.scss`, `styles/_compositions.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
32
  | Toolbar, panel, empty state, alerts | `controls.tsx` | `styles/_compositions.scss` |
33
33
  | Status feedback and badges | `status-feedback/`, `controls.tsx` | `status-feedback/status-feedback.scss`, `styles/_primitives.scss` |
34
- | Loading | `native-controls.view.tsx`, `controls.tsx` | `styles/_loading.scss`, `styles/_compositions.scss` |
35
- | Pagination, progress, rating | `pagination.ts`, `progress/`, `native-controls.view.tsx`, `controls.tsx` | `progress/_bar.scss`, `progress/_circular.scss`, `styles/legacy-rating.css`, `styles/legacy-pagination.css`, `styles/_compositions.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
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
37
  | Option rows, legend, inline fields | `filter-controls.tsx` | `styles/_filter-controls.scss` |
38
38
  | Weekly time grid and keyboard/paint gesture lifecycle | `time-grid.tsx` | `styles/_time-grid.scss` |
@@ -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. Legacy filter CSS classes remain adapter hooks, with theme aliases at the Pro boundary.
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 compatibility 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.
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
@@ -130,7 +130,7 @@ Every component in the shared adapter catalog is listed below. Each name links t
130
130
 
131
131
  Actions, grouped commands, toggled state, icons, compact sizing, busy states and pill corners.
132
132
 
133
- [Button](https://github.com/revolist/revo-ui/blob/main/docs/api/Button.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [IconButton](https://github.com/revolist/revo-ui/blob/main/docs/api/IconButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [SvgButton](https://github.com/revolist/revo-ui/blob/main/docs/api/SvgButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [ToggleButton](https://github.com/revolist/revo-ui/blob/main/docs/api/ToggleButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [ButtonGroup](https://github.com/revolist/revo-ui/blob/main/docs/api/ButtonGroup.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [DeleteButton](https://github.com/revolist/revo-ui/blob/main/docs/api/DeleteButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [RemoveButton](https://github.com/revolist/revo-ui/blob/main/docs/api/RemoveButton.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [Icon](https://github.com/revolist/revo-ui/blob/main/docs/api/Icon.md) ([examples](https://ui.rv-grid.com/components/buttons/)) | [SvgIcon](https://github.com/revolist/revo-ui/blob/main/docs/api/SvgIcon.md) ([examples](https://ui.rv-grid.com/components/buttons/))
133
+ [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/))
134
134
 
135
135
  ### Selection controls
136
136
 
@@ -154,13 +154,13 @@ Text, search and numeric entry; field labels, validation, inline layouts and edi
154
154
 
155
155
  Single or multiple selections, searchable options, selected-value templates, avatars, resource lists and assignee fields.
156
156
 
157
- [Dropdown](https://github.com/revolist/revo-ui/blob/main/docs/api/Dropdown.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [DropdownPopup](https://github.com/revolist/revo-ui/blob/main/docs/api/DropdownPopup.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [DropdownPopupContent](https://github.com/revolist/revo-ui/blob/main/docs/api/DropdownPopupContent.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [Combobox](https://github.com/revolist/revo-ui/blob/main/docs/api/Combobox.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [MultiSelect](https://github.com/revolist/revo-ui/blob/main/docs/api/MultiSelect.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [Chip](https://github.com/revolist/revo-ui/blob/main/docs/api/Chip.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [FilterChip](https://github.com/revolist/revo-ui/blob/main/docs/api/FilterChip.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [RemovableChip](https://github.com/revolist/revo-ui/blob/main/docs/api/RemovableChip.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [Avatar](https://github.com/revolist/revo-ui/blob/main/docs/api/Avatar.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [ResourcePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/ResourcePicker.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [SharedResourcePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/SharedResourcePicker.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [ResourcePickerAvatar](https://github.com/revolist/revo-ui/blob/main/docs/api/ResourcePickerAvatar.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [AssigneePicker](https://github.com/revolist/revo-ui/blob/main/docs/api/AssigneePicker.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [AssigneeField](https://github.com/revolist/revo-ui/blob/main/docs/api/AssigneeField.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/)) | [AssigneePickerLayout](https://github.com/revolist/revo-ui/blob/main/docs/api/AssigneePickerLayout.md) ([examples](https://ui.rv-grid.com/components/selects-chips-and-resources/))
157
+ [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/))
158
158
 
159
159
  ### Sliders
160
160
 
161
161
  Scalar and interval controls with labels, value badges, thumb values, ticks and units.
162
162
 
163
- [Slider](https://github.com/revolist/revo-ui/blob/main/docs/api/Slider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [RangeSlider](https://github.com/revolist/revo-ui/blob/main/docs/api/RangeSlider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [SingleValueSlider](https://github.com/revolist/revo-ui/blob/main/docs/api/SingleValueSlider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [PreactRangeSlider](https://github.com/revolist/revo-ui/blob/main/docs/api/PreactRangeSlider.md) ([examples](https://ui.rv-grid.com/components/sliders/)) | [SliderField](https://github.com/revolist/revo-ui/blob/main/docs/api/SliderField.md) ([examples](https://ui.rv-grid.com/components/sliders/))
163
+ [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/))
164
164
 
165
165
  ### Timeline track
166
166
 
@@ -214,7 +214,7 @@ Command menus, nested commands, separators and grouped toolbar actions.
214
214
 
215
215
  Semantic badges, counters, alerts, progress indicators, loading surfaces, empty states and feedback panels.
216
216
 
217
- [Badge](https://github.com/revolist/revo-ui/blob/main/docs/api/Badge.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [CountBadge](https://github.com/revolist/revo-ui/blob/main/docs/api/CountBadge.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [Alert](https://github.com/revolist/revo-ui/blob/main/docs/api/Alert.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [Spinner](https://github.com/revolist/revo-ui/blob/main/docs/api/Spinner.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [LoadingOverlay](https://github.com/revolist/revo-ui/blob/main/docs/api/LoadingOverlay.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [EmptyState](https://github.com/revolist/revo-ui/blob/main/docs/api/EmptyState.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [FeedbackPanel](https://github.com/revolist/revo-ui/blob/main/docs/api/FeedbackPanel.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [StatusFeedbackPanel](https://github.com/revolist/revo-ui/blob/main/docs/api/StatusFeedbackPanel.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/)) | [StatusBadge](https://github.com/revolist/revo-ui/blob/main/docs/api/StatusBadge.md) ([examples](https://ui.rv-grid.com/components/status-and-feedback/))
217
+ [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/))
218
218
 
219
219
  ### Layout
220
220
 
@@ -442,3 +442,5 @@ Motion follows the system's reduced-motion preference. `data-rv-ui-motion="off"`
442
442
  ## Licensing
443
443
 
444
444
  Revo UI is [MIT licensed](LICENSE). Anyone can use, modify, and distribute it, including in commercial projects.
445
+
446
+ See [Current UI APIs](MIGRATION.md) for removed compatibility names and consumer migrations.
@@ -1,7 +1,7 @@
1
1
  import { i as e, n as t, t as n } from "./hooks.module-CG3gN83z.js";
2
2
  import { t as r } from "./jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createControlId as i } from "../core/control-id.js";
4
- import { l as a, t as o } from "./native-control-DO0d1kgx.js";
4
+ import { l as a, t as o } from "./native-control-pFMuHf3G.js";
5
5
  import { DEFAULT_CALENDAR_TRANSLATIONS as s } from "../calendar/translations.js";
6
6
  import { a as c, n as l } from "./iso-B0YHBK7m.js";
7
7
  import { a as u, c as d, d as f, f as p, l as m, n as h, p as g, r as _, s as v, t as y, u as b } from "./model-mPO2tG2f.js";
@@ -63,6 +63,7 @@ function d({ data: e, ariaLabel: i, variant: s, height: c = 72, className: d = "
63
63
  children: e.map((t, n) => {
64
64
  let i = x?.[n], a = !i;
65
65
  return /* @__PURE__ */ r(p, {
66
+ indicator: y,
66
67
  tooltipText: v ? l(t.tooltip) : void 0,
67
68
  tooltipContent: b ? b(t, n) : u(t.tooltip),
68
69
  datumRef: (e) => {
@@ -122,19 +123,22 @@ function f({ children: e }) {
122
123
  children: e
123
124
  });
124
125
  }
125
- function p({ tooltipText: e, tooltipContent: t, children: n, onFocus: a, onKeyDown: o, datumRef: s, ...c }) {
126
- let l = i(e ?? "", !0, { content: t });
126
+ function p({ tooltipText: t, tooltipContent: n, indicator: a, children: o, onFocus: s, onKeyDown: c, datumRef: l, ...u }) {
127
+ let d = i(t ?? "", !0, {
128
+ className: `rv-distribution-chart__tooltip rv-distribution-chart__tooltip--${a}`,
129
+ content: /* @__PURE__ */ r(e, { children: [a !== "none" && /* @__PURE__ */ r("i", { "aria-hidden": "true" }), n] })
130
+ });
127
131
  return /* @__PURE__ */ r("span", {
128
- ref: s,
129
- ...c,
130
- ...e ? l.triggerProps : {},
132
+ ref: l,
133
+ ...u,
134
+ ...t ? d.triggerProps : {},
131
135
  onKeyDown: (e) => {
132
- l.triggerProps.onKeyDown(e), e.defaultPrevented || o?.(e);
136
+ d.triggerProps.onKeyDown(e), e.defaultPrevented || c?.(e);
133
137
  },
134
- onFocus: (t) => {
135
- a?.(t), e && l.triggerProps.onFocus(t);
138
+ onFocus: (e) => {
139
+ s?.(e), t && d.triggerProps.onFocus(e);
136
140
  },
137
- children: [n, e && l.tooltip]
141
+ children: [o, t && d.tooltip]
138
142
  });
139
143
  }
140
144
  //#endregion
@@ -2,7 +2,7 @@ import { i as e, r as t, t as n } from "./hooks.module-CG3gN83z.js";
2
2
  import { t as r } from "./jsxRuntime.module-F6UFnpT-.js";
3
3
  import { n as i } from "./popover-controller-D-AvKQ7B.js";
4
4
  import { SvgIcon as a } from "../icons/icon.js";
5
- import { t as o } from "./native-control-DO0d1kgx.js";
5
+ import { t as o } from "./native-control-pFMuHf3G.js";
6
6
  import { RemoveButton as s } from "../buttons/remove-button.js";
7
7
  //#region ../../node_modules/.pnpm/@fortawesome+fontawesome-free@7.3.1/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle-info.svg?raw
8
8
  var c = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2026 Fonticons, Inc. --><path fill=\"currentColor\" d=\"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"/></svg>";
@@ -1,7 +1,7 @@
1
1
  import { c as e, i as t, t as n } from "./hooks.module-CG3gN83z.js";
2
2
  import { t as r } from "./jsxRuntime.module-F6UFnpT-.js";
3
3
  import { createControlId as i } from "../core/control-id.js";
4
- import { n as a, t as o } from "./native-control-DO0d1kgx.js";
4
+ import { n as a, t as o } from "./native-control-pFMuHf3G.js";
5
5
  import { t as s } from "./chevron-down-GbplLa6s.js";
6
6
  import { n as c } from "./tooltip-D4xkio5G.js";
7
7
  import { n as l, t as u } from "./color-palette-DMJUChWC.js";
@@ -4,10 +4,10 @@ import { t as o } from "./jsxRuntime.module-F6UFnpT-.js";
4
4
  import { createControlId as s } from "../core/control-id.js";
5
5
  import { n as c, t as l } from "./popover-controller-D-AvKQ7B.js";
6
6
  import { SvgIcon as u } from "../icons/icon.js";
7
- import { l as d, n as f } from "./native-control-DO0d1kgx.js";
8
- import { n as p } from "./popup-UXGCiv3n.js";
7
+ import { l as d, n as f } from "./native-control-pFMuHf3G.js";
8
+ import { n as p } from "./popup-C35Isk7p.js";
9
9
  import { t as m } from "./chevron-down-GbplLa6s.js";
10
- import { E as h, F as g, L as _, P as v, b as y, g as b, l as x, p as S, t as C } from "./controls-BLQnWEd7.js";
10
+ import { E as h, F as g, L as _, P as v, b as y, g as b, l as x, p as S, t as C } from "./controls-FUU-MUKC.js";
11
11
  import { t as w } from "./chevron-left-D0nc4Z5S.js";
12
12
  import { t as T } from "./chevron-right-sxHQMSkq.js";
13
13
  import { t as E } from "./xmark-DD_PBvZI.js";
@@ -22,8 +22,8 @@ import { t as ne } from "./minus-BOAR3A1C.js";
22
22
  import { SearchInput as re } from "../search-input/index.js";
23
23
  import { s as N } from "./iso-B0YHBK7m.js";
24
24
  import { f as P, h as F, o as I } from "./model-mPO2tG2f.js";
25
- import { n as L, t as R } from "./date-control-Cgw5PwlZ.js";
26
- import { t as z } from "./calendar-DsXIhybL.js";
25
+ import { n as L, t as R } from "./date-control-Dup_P3w5.js";
26
+ import { t as z } from "./calendar-QWDyYzdo.js";
27
27
  import { t as B } from "./magnifying-glass-CvrTDSkB.js";
28
28
  import { t as V } from "./controller-hRBm_Lfz.js";
29
29
  //#region src/pickers.tsx
@@ -69,10 +69,6 @@ var r = {
69
69
  prop: "value",
70
70
  callback: "onValueChange"
71
71
  },
72
- ResourcePicker: {
73
- prop: "selectedResourceIds",
74
- callback: "onChange"
75
- },
76
72
  SharedResourcePicker: {
77
73
  prop: "selectedResourceIds",
78
74
  callback: "onChange"
@@ -97,10 +93,6 @@ var r = {
97
93
  prop: "value",
98
94
  callback: "onValueChange"
99
95
  },
100
- Slider: {
101
- prop: "value",
102
- callback: "onChange"
103
- },
104
96
  Checkbox: {
105
97
  prop: "checked",
106
98
  callback: "onChange"
@@ -1,13 +1,13 @@
1
1
  import { c as e, i as t, n } from "./preact.module-BBM36DnO.js";
2
2
  import { t as r } from "./jsxRuntime.module-F6UFnpT-.js";
3
3
  import { SvgIcon as i } from "../icons/icon.js";
4
- import { t as a } from "./native-control-DO0d1kgx.js";
5
- import { t as o } from "./popup-UXGCiv3n.js";
4
+ import { t as a } from "./native-control-pFMuHf3G.js";
5
+ import { t as o } from "./popup-C35Isk7p.js";
6
6
  import { renderControl as s } from "../control-presentation.js";
7
7
  import "./check-BwI7iCAm.js";
8
8
  import { t as c } from "./plus-CbGRkIGl.js";
9
9
  import { SearchInput as l } from "../search-input/index.js";
10
- import { S as u, c as d, p as f, r as p } from "./field-configurator-1eQP0tKy.js";
10
+ import { S as u, c as d, p as f, r as p } from "./field-configurator-BCINdXpU.js";
11
11
  import { t as m } from "./calculator-CDWOuAcp.js";
12
12
  import "./magnifying-glass-CvrTDSkB.js";
13
13
  import { t as h } from "./configurator-field-icon-CmcM_sPs.js";
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./jsxRuntime.module-F6UFnpT-.js";
2
2
  import { createPreactElement as t, releasePreactElement as n } from "../preact-mount.js";
3
- import { d as r, u as i } from "./native-control-DO0d1kgx.js";
3
+ import { d as r, u as i } from "./native-control-pFMuHf3G.js";
4
4
  //#region src/dropdown/control.view.tsx
5
5
  function a(r) {
6
6
  let i, a, o = t(r, /* @__PURE__ */ e("div", { children: [/* @__PURE__ */ e("div", {
@@ -83,11 +83,36 @@ function o(e, t) {
83
83
  };
84
84
  return d(), f;
85
85
  }
86
- function s(e, t) {
87
- let n;
86
+ var s = /* @__PURE__ */ new WeakMap();
87
+ function c(e, t) {
88
+ let n = Symbol(), r, i = () => {
89
+ if (!r) return;
90
+ let e = s.get(r);
91
+ e?.owner === n && (e.control.destroy(), s.delete(r)), r = void 0;
92
+ };
88
93
  return e("span", { ref: (e) => {
89
- e ? n ? n.update(t) : (n = o(e.ownerDocument, t), e.append(n.element)) : (n?.destroy(), n = void 0);
94
+ if (!e) {
95
+ i();
96
+ return;
97
+ }
98
+ r && r !== e && i(), r = e;
99
+ let a = s.get(e);
100
+ if (a) {
101
+ a.owner = n;
102
+ let r = Object.fromEntries(a.keys.map((e) => [e, void 0]));
103
+ a.keys = Object.keys(t), a.control.update({
104
+ ...r,
105
+ ...t
106
+ }), a.control.element.parentElement !== e && e.append(a.control.element);
107
+ } else {
108
+ let r = o(e.ownerDocument, t);
109
+ s.set(e, {
110
+ control: r,
111
+ owner: n,
112
+ keys: Object.keys(t)
113
+ }), e.append(r.element);
114
+ }
90
115
  } });
91
116
  }
92
117
  //#endregion
93
- export { s as n, o as t };
118
+ export { c as n, o as t };
@@ -4,9 +4,9 @@ import { t as a } from "./jsxRuntime.module-F6UFnpT-.js";
4
4
  import { createPreactElement as o } from "../preact-mount.js";
5
5
  import { createControlId as s } from "../core/control-id.js";
6
6
  import { t as c } from "./title-tooltip-Cw6LOZhb.js";
7
- import { n as l } from "./rating-choice-BEs_QFZC.js";
8
- import { a as u, n as d, t as f } from "./native-control-DO0d1kgx.js";
9
- import { r as p } from "./popup-UXGCiv3n.js";
7
+ import { n as l } from "./rating-choice-DbxdUJr-.js";
8
+ import { a as u, n as d, t as f } from "./native-control-pFMuHf3G.js";
9
+ import { r as p } from "./popup-C35Isk7p.js";
10
10
  import { registerControl as m, renderControl as h } from "../control-presentation.js";
11
11
  import { paginationItems as ee, renderPaginationButton as g } from "../pagination.js";
12
12
  import { t as _ } from "./chevron-left-D0nc4Z5S.js";
@@ -24,7 +24,7 @@ var C = {
24
24
  last: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 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=\"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"/></svg>"
25
25
  };
26
26
  //#endregion
27
- //#region src/native-controls.view.tsx
27
+ //#region src/native-controls.tsx
28
28
  function w(e, t) {
29
29
  return e("div", {
30
30
  class: t.className ?? "rv-spinner",
@@ -69,35 +69,28 @@ function D(e, t, n = Math.max(0, Math.floor(t))) {
69
69
  }
70
70
  function O(e, t) {
71
71
  let n = (e) => t.max > t.min ? Math.max(0, Math.min(100, (e - t.min) / (t.max - t.min) * 100)) : 0;
72
- return e("div", { class: `revo-slider ${t.thresholdClassNames ?? ""}` }, [e("div", { class: `revo-slider-container ${t.thresholdClassNames ?? ""}` }, [
73
- e("div", {
74
- class: "revo-slider-fill",
75
- style: { width: `${n(t.value)}%` }
76
- }),
77
- e("input", {
78
- class: "revo-slider-input rv-single-slider",
79
- style: { "--rv-single-slider-value": `${n(t.value)}%` },
80
- type: "range",
81
- min: t.min,
82
- max: t.max,
83
- step: t.step,
84
- value: t.value,
85
- "aria-label": t.label,
86
- "aria-valuetext": String(t.displayValue ?? t.value),
87
- onInput: (e) => {
88
- let r = e.target;
89
- r.style.setProperty("--rv-single-slider-value", `${n(Number(r.value))}%`);
90
- let i = r.closest(".revo-slider")?.querySelector(".revo-slider-value"), a = String(t.formatValue?.(Number(r.value)) ?? Number(r.value));
91
- r.setAttribute("aria-valuetext", a), i && (i.textContent = a);
92
- },
93
- onChange: (e) => t.onChange(Number(e.target.value), e),
94
- onMouseDown: t.onMouseDown
95
- }),
96
- ...(t.thresholds ?? []).map((t) => e("div", {
97
- class: `revo-slider-threshold ${t.className}`,
98
- style: { left: `${n(t.value)}%` }
99
- }))
100
- ]), ...t.hideValue ? [] : [e("span", { class: `revo-slider-value rv-badge rv-badge--inline ${t.thresholdClassNames ?? ""}` }, t.displayValue ?? t.value)]]);
72
+ return e("div", { class: `revo-slider ${t.thresholdClassNames ?? ""}` }, [e("div", { class: `revo-slider-container ${t.thresholdClassNames ?? ""}` }, [e("input", {
73
+ class: "revo-slider-input rv-single-slider",
74
+ style: { "--rv-single-slider-value": `${n(t.value)}%` },
75
+ type: "range",
76
+ min: t.min,
77
+ max: t.max,
78
+ step: t.step,
79
+ value: t.value,
80
+ "aria-label": t.label,
81
+ "aria-valuetext": String(t.displayValue ?? t.value),
82
+ onInput: (e) => {
83
+ let r = e.target;
84
+ r.style.setProperty("--rv-single-slider-value", `${n(Number(r.value))}%`);
85
+ let i = r.closest(".revo-slider")?.querySelector(".revo-slider-value"), a = String(t.formatValue?.(Number(r.value)) ?? Number(r.value));
86
+ r.setAttribute("aria-valuetext", a), i && (i.textContent = a);
87
+ },
88
+ onChange: (e) => t.onChange(Number(e.target.value), e),
89
+ onMouseDown: t.onMouseDown
90
+ }), ...(t.thresholds ?? []).map((t) => e("div", {
91
+ class: `revo-slider-threshold ${t.className}`,
92
+ style: { left: `${n(t.value)}%` }
93
+ }))]), ...t.hideValue ? [] : [e("span", { class: `revo-slider-value rv-badge rv-badge--inline ${t.thresholdClassNames ?? ""}` }, t.displayValue ?? t.value)]]);
101
94
  }
102
95
  function k(e, t) {
103
96
  let n = (n, r, i) => h(e, "button", {
@@ -1,6 +1,6 @@
1
1
  import { i as e } from "./hooks.module-CG3gN83z.js";
2
2
  import { t } from "./jsxRuntime.module-F6UFnpT-.js";
3
- import { n } from "./native-control-DO0d1kgx.js";
3
+ import { n } from "./native-control-pFMuHf3G.js";
4
4
  import { s as r } from "./iso-B0YHBK7m.js";
5
5
  import { u as i } from "./model-mPO2tG2f.js";
6
6
  //#region ../dates/src/date-entry.ts