@rio-cloud/uikit-mcp 1.1.9 → 1.1.11

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 (211) hide show
  1. package/README.md +2 -1
  2. package/dist/doc-metadata.json +334 -94
  3. package/dist/docs/components/accentBar.md +110 -116
  4. package/dist/docs/components/activity.md +1 -1
  5. package/dist/docs/components/analyticsAnalysisOverlay.md +630 -0
  6. package/dist/docs/components/animatedNumber.md +2 -2
  7. package/dist/docs/components/animatedTextReveal.md +53 -55
  8. package/dist/docs/components/animations.md +21 -21
  9. package/dist/docs/components/appHeader.md +27 -38
  10. package/dist/docs/components/appLayout.md +23 -77
  11. package/dist/docs/components/appNavigationBar.md +1 -1
  12. package/dist/docs/components/areaCharts.md +57 -61
  13. package/dist/docs/components/aspectRatioPlaceholder.md +1 -1
  14. package/dist/docs/components/assetTree.md +429 -342
  15. package/dist/docs/components/autosuggests.md +1 -1
  16. package/dist/docs/components/avatar.md +1 -1
  17. package/dist/docs/components/banner.md +2 -2
  18. package/dist/docs/components/barCharts.md +530 -414
  19. package/dist/docs/components/barList.md +10 -10
  20. package/dist/docs/components/basicMap.md +104 -39
  21. package/dist/docs/components/bottomSheet.md +2 -2
  22. package/dist/docs/components/button.md +8 -2
  23. package/dist/docs/components/buttonToolbar.md +1 -1
  24. package/dist/docs/components/calendarStripe.md +59 -63
  25. package/dist/docs/components/card.md +1 -1
  26. package/dist/docs/components/carousel.md +1 -1
  27. package/dist/docs/components/chartColors.md +1 -1
  28. package/dist/docs/components/chartsGettingStarted.md +1 -1
  29. package/dist/docs/components/chat.md +2 -2
  30. package/dist/docs/components/checkbox.md +15 -10
  31. package/dist/docs/components/circularProgress.md +6 -6
  32. package/dist/docs/components/clearableInput.md +1 -1
  33. package/dist/docs/components/collapse.md +2 -2
  34. package/dist/docs/components/composedCharts.md +63 -51
  35. package/dist/docs/components/contentLoader.md +1 -1
  36. package/dist/docs/components/dataTabs.md +33 -33
  37. package/dist/docs/components/datepickers.md +693 -685
  38. package/dist/docs/components/dayPicker.md +5624 -0
  39. package/dist/docs/components/dayPickerCalendar.md +5289 -0
  40. package/dist/docs/components/dialogs.md +17 -19
  41. package/dist/docs/components/divider.md +1 -1
  42. package/dist/docs/components/dropdowns.md +3264 -3276
  43. package/dist/docs/components/editableContent.md +91 -91
  44. package/dist/docs/components/expander.md +4 -1
  45. package/dist/docs/components/fade.md +1 -1
  46. package/dist/docs/components/fadeExpander.md +1 -1
  47. package/dist/docs/components/fadeUp.md +32 -36
  48. package/dist/docs/components/feedback.md +1 -1
  49. package/dist/docs/components/filePickers.md +1 -1
  50. package/dist/docs/components/formLabel.md +29 -31
  51. package/dist/docs/components/groupedItemList.md +3 -7
  52. package/dist/docs/components/htmlTable.md +5074 -0
  53. package/dist/docs/components/iconList.md +4 -4
  54. package/dist/docs/components/imagePreloader.md +1 -1
  55. package/dist/docs/components/labeledElement.md +1 -1
  56. package/dist/docs/components/licensePlate.md +1 -1
  57. package/dist/docs/components/lineCharts.md +172 -170
  58. package/dist/docs/components/listMenu.md +15 -12
  59. package/dist/docs/components/loadMore.md +4 -2
  60. package/dist/docs/components/mainNavigation.md +1 -1
  61. package/dist/docs/components/mapCircle.md +10 -1
  62. package/dist/docs/components/mapCluster.md +25 -1
  63. package/dist/docs/components/mapContext.md +12 -4
  64. package/dist/docs/components/mapDraggableMarker.md +12 -1
  65. package/dist/docs/components/mapGettingStarted.md +39 -1
  66. package/dist/docs/components/mapInfoBubble.md +129 -2
  67. package/dist/docs/components/mapLayerGroup.md +10 -1
  68. package/dist/docs/components/mapMarker.md +10 -1
  69. package/dist/docs/components/mapPolygon.md +288 -85
  70. package/dist/docs/components/mapRoute.md +262 -172
  71. package/dist/docs/components/mapSettings.md +28 -1
  72. package/dist/docs/components/mapUtils.md +1 -1
  73. package/dist/docs/components/mapViewportHistory.md +287 -0
  74. package/dist/docs/components/multiselects.md +217 -18
  75. package/dist/docs/components/noData.md +1 -1
  76. package/dist/docs/components/notifications.md +2 -2
  77. package/dist/docs/components/numbercontrol.md +15 -15
  78. package/dist/docs/components/onboarding.md +1 -1
  79. package/dist/docs/components/page.md +1 -1
  80. package/dist/docs/components/pager.md +1 -1
  81. package/dist/docs/components/pieCharts.md +237 -211
  82. package/dist/docs/components/popover.md +1 -1
  83. package/dist/docs/components/position.md +1 -1
  84. package/dist/docs/components/radialBarCharts.md +446 -398
  85. package/dist/docs/components/radioCardGroup.md +1 -1
  86. package/dist/docs/components/radiobutton.md +98 -98
  87. package/dist/docs/components/releaseNotes.md +1 -1
  88. package/dist/docs/components/resizer.md +1 -1
  89. package/dist/docs/components/responsiveColumnStripe.md +1 -1
  90. package/dist/docs/components/responsiveVideo.md +1 -1
  91. package/dist/docs/components/rioglyph.md +1 -1
  92. package/dist/docs/components/rules.md +41 -47
  93. package/dist/docs/components/saveableInput.md +252 -252
  94. package/dist/docs/components/selects.md +332 -161
  95. package/dist/docs/components/sidebar.md +1 -1
  96. package/dist/docs/components/sliders.md +1 -1
  97. package/dist/docs/components/smoothScrollbars.md +19 -13
  98. package/dist/docs/components/spinners.md +1 -1
  99. package/dist/docs/components/states.md +15 -1
  100. package/dist/docs/components/statsWidgets.md +1 -1
  101. package/dist/docs/components/statusBar.md +3 -1
  102. package/dist/docs/components/stepButton.md +1 -1
  103. package/dist/docs/components/steppedProgressBars.md +9 -11
  104. package/dist/docs/components/subNavigation.md +1 -1
  105. package/dist/docs/components/supportMarker.md +1 -1
  106. package/dist/docs/components/svgImage.md +1 -1
  107. package/dist/docs/components/switch.md +5 -1
  108. package/dist/docs/components/table.md +21361 -0
  109. package/dist/docs/components/tableControls.md +982 -0
  110. package/dist/docs/components/tagManager.md +1 -1
  111. package/dist/docs/components/tags.md +1 -1
  112. package/dist/docs/components/teaser.md +1 -1
  113. package/dist/docs/components/textTruncateMiddle.md +1 -1
  114. package/dist/docs/components/timeline.md +1 -1
  115. package/dist/docs/components/timepicker.md +3 -1
  116. package/dist/docs/components/toggleButton.md +3 -1
  117. package/dist/docs/components/tooltip.md +8 -2
  118. package/dist/docs/components/tracker.md +1 -1
  119. package/dist/docs/components/virtualList.md +60 -60
  120. package/dist/docs/foundations.md +761 -3077
  121. package/dist/docs/start/changelog.md +73 -3
  122. package/dist/docs/start/goodtoknow.md +5 -1
  123. package/dist/docs/start/guidelines/color-combinations.md +5 -1
  124. package/dist/docs/start/guidelines/custom-css.md +26 -2
  125. package/dist/docs/start/guidelines/custom-rioglyph.md +20 -2
  126. package/dist/docs/start/guidelines/formatting.md +2254 -249
  127. package/dist/docs/start/guidelines/iframe.md +53 -19
  128. package/dist/docs/start/guidelines/obfuscate-data.md +24 -2
  129. package/dist/docs/start/guidelines/print-css.md +16 -2
  130. package/dist/docs/start/guidelines/spinner.md +1 -1
  131. package/dist/docs/start/guidelines/state-in-url.md +1138 -11
  132. package/dist/docs/start/guidelines/supported-browsers.md +9 -2
  133. package/dist/docs/start/guidelines/writing.md +228 -2
  134. package/dist/docs/start/howto.md +155 -13
  135. package/dist/docs/start/intro.md +40 -2
  136. package/dist/docs/start/responsiveness.md +27 -1
  137. package/dist/docs/templates/ai-assistant.md +311 -0
  138. package/dist/docs/templates/common-table.md +814 -0
  139. package/dist/docs/templates/detail-views.md +846 -0
  140. package/dist/docs/templates/expandable-details.md +214 -0
  141. package/dist/docs/templates/feature-cards.md +479 -0
  142. package/dist/docs/templates/form-summary.md +179 -0
  143. package/dist/docs/templates/form-toggle.md +329 -0
  144. package/dist/docs/templates/list-blocks.md +872 -0
  145. package/dist/docs/templates/loading-progress.md +100 -0
  146. package/dist/docs/templates/options-panel.md +132 -0
  147. package/dist/docs/templates/panel-variants.md +137 -0
  148. package/dist/docs/templates/progress-cards.md +541 -0
  149. package/dist/docs/templates/progress-success.md +125 -0
  150. package/dist/docs/templates/settings-form.md +401 -0
  151. package/dist/docs/templates/stats-blocks.md +1245 -0
  152. package/dist/docs/templates/table-panel.md +310 -0
  153. package/dist/docs/templates/usage-cards.md +199 -0
  154. package/dist/docs/utilities/classNames.md +89 -1
  155. package/dist/docs/utilities/deviceUtils.md +2 -2
  156. package/dist/docs/utilities/featureToggles.md +182 -2
  157. package/dist/docs/utilities/fuelTypeUtils.md +27 -29
  158. package/dist/docs/utilities/getTrackingAttributes.md +322 -0
  159. package/dist/docs/utilities/routeUtils.md +211 -3
  160. package/dist/docs/utilities/useAfterMount.md +1 -1
  161. package/dist/docs/utilities/useAutoAnimate.md +1 -1
  162. package/dist/docs/utilities/useAverage.md +1 -1
  163. package/dist/docs/utilities/useClickOutside.md +1 -1
  164. package/dist/docs/utilities/useClipboard.md +2 -2
  165. package/dist/docs/utilities/useCookies.md +1 -1
  166. package/dist/docs/utilities/useCount.md +1 -1
  167. package/dist/docs/utilities/useDarkMode.md +5 -4
  168. package/dist/docs/utilities/useDebugInfo.md +3 -3
  169. package/dist/docs/utilities/useDraggableElement.md +281 -0
  170. package/dist/docs/utilities/useEffectOnce.md +1 -1
  171. package/dist/docs/utilities/useElapsedTime.md +1 -1
  172. package/dist/docs/utilities/useElementSize.md +1 -1
  173. package/dist/docs/utilities/useEsc.md +1 -1
  174. package/dist/docs/utilities/useEvent.md +1 -1
  175. package/dist/docs/utilities/useFocusTrap.md +1 -1
  176. package/dist/docs/utilities/useFullscreen.md +1 -1
  177. package/dist/docs/utilities/useHover.md +1 -1
  178. package/dist/docs/utilities/useIncomingPostMessages.md +1 -1
  179. package/dist/docs/utilities/useInterval.md +1 -1
  180. package/dist/docs/utilities/useIsFocusWithin.md +1 -1
  181. package/dist/docs/utilities/useKey.md +8 -10
  182. package/dist/docs/utilities/useLocalStorage.md +1 -1
  183. package/dist/docs/utilities/useLocationSuggestions.md +1 -1
  184. package/dist/docs/utilities/useMax.md +1 -1
  185. package/dist/docs/utilities/useMin.md +1 -1
  186. package/dist/docs/utilities/useMutationObserver.md +1 -1
  187. package/dist/docs/utilities/useOnScreen.md +1 -1
  188. package/dist/docs/utilities/useOnlineStatus.md +1 -1
  189. package/dist/docs/utilities/usePostMessage.md +2 -2
  190. package/dist/docs/utilities/usePostMessageSender.md +1 -1
  191. package/dist/docs/utilities/usePrevious.md +110 -2
  192. package/dist/docs/utilities/useResizeObserver.md +35 -15
  193. package/dist/docs/utilities/useRioCookieConsent.md +1 -1
  194. package/dist/docs/utilities/useScrollPosition.md +3 -6
  195. package/dist/docs/utilities/useSearch.md +1 -3
  196. package/dist/docs/utilities/useSearchHighlight.md +1 -1
  197. package/dist/docs/utilities/useSorting.md +370 -239
  198. package/dist/docs/utilities/useStateWithValidation.md +1 -1
  199. package/dist/docs/utilities/useSum.md +1 -1
  200. package/dist/docs/utilities/useTableExport.md +364 -288
  201. package/dist/docs/utilities/useTableSelection.md +88 -92
  202. package/dist/docs/utilities/useTimeout.md +1 -1
  203. package/dist/docs/utilities/useToggle.md +1 -1
  204. package/dist/docs/utilities/useUrlState.md +1 -1
  205. package/dist/docs/utilities/useWindowResize.md +1 -1
  206. package/dist/index.mjs +173 -69
  207. package/dist/search-synonyms.json +214 -76
  208. package/dist/version.json +2 -2
  209. package/package.json +4 -5
  210. package/dist/docs/components/mapRouteGenerator.md +0 -6
  211. package/dist/docs/components/tables.md +0 -8
@@ -0,0 +1,630 @@
1
+ # AnalyticsAnalysisOverlay
2
+
3
+ *Category:* Components
4
+ *Section:* Interaction
5
+ *Source:* https://uikit.developers.rio.cloud/#/components/analyticsAnalysisOverlay
6
+ *Captured:* 2026-04-27T14:57:28.096Z
7
+
8
+ Development overlay for visualizing tracked GA elements directly in the viewport. It scans DOM nodes with tracking data attributes and overlays aggregated metrics from uploaded analytics CSV files. See the new helper demo for getTrackingAttributes.
9
+
10
+ ## AnalyticsAnalysisOverlay
11
+
12
+ Download the demo CSV and upload it in the draggable overlay banner to see metrics mapped to the tracked elements below.
13
+
14
+ Download demo CSV
15
+
16
+ ### Example: Example 1
17
+
18
+ Card with visibility tracking
19
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore.
20
+ Button
21
+
22
+ Button with click tracking
23
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore.
24
+ Button
25
+ Button with autoTrackingKey
26
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore.
27
+ Button
28
+
29
+ #### React (tsx)
30
+
31
+ ```tsx
32
+ import Button from '@rio-cloud/rio-uikit/Button';
33
+ import { getTrackingAttributes } from '@rio-cloud/rio-uikit/googleAnalyticsUtils';
34
+ import { FormattedMessage, IntlProvider } from 'react-intl';
35
+
36
+ import { analyticsAnalysisOverlayExampleMessages } from './AnalyticsAnalysisOverlayExampleData';
37
+
38
+ const trackedCardClassName = 'card bg-white border border-color-light rounded padding-15 box-shadow-sm width-100pct';
39
+
40
+ export default () => (
41
+ <div className='position-relative padding-15 bg-color-lightest rounded'>
42
+ <IntlProvider locale='en-GB' messages={analyticsAnalysisOverlayExampleMessages}>
43
+ <div className='display-grid gap-20 grid-auto-fit-300'>
44
+ <div
45
+ className='display-grid gap-15'
46
+ style={{ gridTemplateColumns: 'repeat(auto-fit, minmax(240px, 1fr))' }}
47
+ >
48
+ <div
49
+ className={trackedCardClassName}
50
+ {...getTrackingAttributes({
51
+ trigger: 'visibility',
52
+ category: 'uikit demo',
53
+ action: 'card seen',
54
+ label: 'vehicle_overview',
55
+ })}
56
+ >
57
+ <h6 className='margin-top-0'>Card with visibility tracking</h6>
58
+ <p className='margin-bottom-10'>
59
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
60
+ invidunt ut labore et dolore.
61
+ </p>
62
+ <Button
63
+ as='a'
64
+ bsStyle='default'
65
+ href='https://rio.cloud/en?utm_source=uikit_Demo&utm_medium=button&utm_campaign=analytics_demo&utm_content=analytics_overlay_examples'
66
+ target='_blank'
67
+ rel='noreferrer noopener'
68
+ {...getTrackingAttributes({
69
+ trigger: 'click',
70
+ category: 'uikit demo',
71
+ action: 'button click',
72
+ label: 'open_vehicle_details',
73
+ })}
74
+ >
75
+ Button
76
+ </Button>
77
+ </div>
78
+ </div>
79
+
80
+ <div
81
+ className={trackedCardClassName}
82
+ {...getTrackingAttributes({
83
+ trigger: 'click',
84
+ category: 'uikit demo',
85
+ action: 'button click',
86
+ label: 'intl-msg:analyticsAnalysisOverlay.data.cardB.title',
87
+ })}
88
+ >
89
+ <h6 className='margin-top-0'>
90
+ <FormattedMessage id='intl-msg:analyticsAnalysisOverlay.data.cardB.title' />
91
+ </h6>
92
+ <p className='margin-bottom-10'>
93
+ <FormattedMessage id='intl-msg:analyticsAnalysisOverlay.data.cardB.description' />
94
+ </p>
95
+ <Button
96
+ bsStyle='default'
97
+ {...getTrackingAttributes({
98
+ trigger: 'click',
99
+ category: 'uikit demo',
100
+ action: 'button click',
101
+ label: 'intl-msg:analyticsAnalysisOverlay.data.cardB.button',
102
+ })}
103
+ >
104
+ <FormattedMessage id='intl-msg:analyticsAnalysisOverlay.data.cardB.button' />
105
+ </Button>
106
+ </div>
107
+
108
+ <div className={trackedCardClassName}>
109
+ <h6 className='margin-top-0'>
110
+ <FormattedMessage id='intl-msg:analyticsAnalysisOverlay.data.cardC.title' />
111
+ </h6>
112
+ <p className='margin-bottom-10'>
113
+ <FormattedMessage id='intl-msg:analyticsAnalysisOverlay.data.cardC.description' />
114
+ </p>
115
+ <Button bsStyle='default' autoTrackingKey='intl-msg:analyticsAnalysisOverlay.data.cardC.button'>
116
+ <FormattedMessage id='intl-msg:analyticsAnalysisOverlay.data.cardC.button' />
117
+ </Button>
118
+ </div>
119
+ </div>
120
+ </IntlProvider>
121
+ </div>
122
+ );
123
+ ```
124
+
125
+ #### HTML (html)
126
+
127
+ ```html
128
+ <div class="position-relative padding-15 bg-color-lightest rounded">
129
+ <div class="display-grid gap-20 grid-auto-fit-300">
130
+ <div class="display-grid gap-15" style="grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));">
131
+ <div class="card bg-white border border-color-light rounded padding-15 box-shadow-sm width-100pct" data-track-ga-event-trigger="visibility" data-track-ga-event-category="uikit demo" data-track-ga-event-action="card seen" data-track-ga-event-label="vehicle_overview">
132
+ <h6 class="margin-top-0">Card with visibility tracking</h6>
133
+ <p class="margin-bottom-10">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore.</p>
134
+ <a href="https://rio.cloud/en?utm_source=uikit_Demo&amp;utm_medium=button&amp;utm_campaign=analytics_demo&amp;utm_content=analytics_overlay_examples" target="_blank" rel="noreferrer noopener" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="open_vehicle_details" class="btn btn-default gap-0 btn-component" tabindex="0">Button</a>
135
+ </div>
136
+ </div>
137
+ <div class="card bg-white border border-color-light rounded padding-15 box-shadow-sm width-100pct" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="intl-msg:analyticsAnalysisOverlay.data.cardB.title">
138
+ <h6 class="margin-top-0">Button with click tracking</h6>
139
+ <p class="margin-bottom-10">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore.</p>
140
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="intl-msg:analyticsAnalysisOverlay.data.cardB.button" class="btn btn-default btn-component" tabindex="0">Button</button>
141
+ </div>
142
+ <div class="card bg-white border border-color-light rounded padding-15 box-shadow-sm width-100pct">
143
+ <h6 class="margin-top-0">Button with autoTrackingKey</h6>
144
+ <p class="margin-bottom-10">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore.</p>
145
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="button autoTracking" data-track-ga-event-action="button click" data-track-ga-event-label="intl-msg:analyticsAnalysisOverlay.data.cardC.button" class="btn btn-default btn-component" tabindex="0">Button</button>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ ```
150
+
151
+ #### Props
152
+
153
+ | Name | Type | Default | Description |
154
+ | --- | --- | --- | --- |
155
+ | overlayBackgroundOpacity | number | 0.5 | Opacity of the fullscreen analytics overlay backdrop. Values are clamped to the range 0 to 1. |
156
+ | bannerStartCoordinates | AnalysisBannerPosition | undefined | Optional initial viewport coordinates for the draggable analytics banner. When omitted, the banner starts at top: 70px, left: 50% with translateX(-50%). |
157
+
158
+ ### Example: Example 2
159
+
160
+ Expander Row 1
161
+ Expander Card 1
162
+ This card is inside row 1 and is tracked when it becomes visible.
163
+ Row 1 Button
164
+
165
+ Expander Row 2
166
+
167
+ Expander Row 3
168
+
169
+ #### React (tsx)
170
+
171
+ ```tsx
172
+ import Button from '@rio-cloud/rio-uikit/Button';
173
+ import ExpanderList from '@rio-cloud/rio-uikit/ExpanderList';
174
+ import ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';
175
+ import { getTrackingAttributes } from '@rio-cloud/rio-uikit/googleAnalyticsUtils';
176
+
177
+ const trackedPanelClassName = 'max-width-300';
178
+
179
+ export default () => {
180
+ const items = [
181
+ {
182
+ id: 'expander-row-1',
183
+ header: 'Expander Row 1',
184
+ open: true,
185
+ trackingAttributes: getTrackingAttributes({
186
+ trigger: 'click',
187
+ category: 'uikit demo',
188
+ action: 'button click',
189
+ label: 'expander_row_1_header',
190
+ }),
191
+ body: (
192
+ <ExpanderPanel
193
+ title='Expander Card 1'
194
+ open
195
+ bsStyle='info'
196
+ className={trackedPanelClassName}
197
+ trackingAttributes={getTrackingAttributes({
198
+ trigger: 'visibility',
199
+ category: 'uikit demo',
200
+ action: 'card seen',
201
+ label: 'expander_row_1_card',
202
+ })}
203
+ >
204
+ <p className='margin-bottom-10'>
205
+ This card is inside row 1 and is tracked when it becomes visible.
206
+ </p>
207
+ <Button
208
+ bsStyle='info'
209
+ {...getTrackingAttributes({
210
+ trigger: 'click',
211
+ category: 'uikit demo',
212
+ action: 'button click',
213
+ label: 'expander_row_1_button',
214
+ })}
215
+ >
216
+ Row 1 Button
217
+ </Button>
218
+ </ExpanderPanel>
219
+ ),
220
+ },
221
+ {
222
+ id: 'expander-row-2',
223
+ header: 'Expander Row 2',
224
+ trackingAttributes: getTrackingAttributes({
225
+ trigger: 'click',
226
+ category: 'uikit demo',
227
+ action: 'button click',
228
+ label: 'expander_row_2_header',
229
+ }),
230
+ body: (
231
+ <ExpanderPanel
232
+ title='Expander Card 2'
233
+ open
234
+ bsStyle='success'
235
+ className={trackedPanelClassName}
236
+ trackingAttributes={getTrackingAttributes({
237
+ trigger: 'visibility',
238
+ category: 'uikit demo',
239
+ action: 'card seen',
240
+ label: 'expander_row_2_card',
241
+ })}
242
+ >
243
+ <p className='margin-bottom-10'>
244
+ This card is inside row 2 and is tracked when it becomes visible.
245
+ </p>
246
+ <Button
247
+ bsStyle='success'
248
+ {...getTrackingAttributes({
249
+ trigger: 'click',
250
+ category: 'uikit demo',
251
+ action: 'button click',
252
+ label: 'expander_row_2_button',
253
+ })}
254
+ >
255
+ Row 2 Button
256
+ </Button>
257
+ </ExpanderPanel>
258
+ ),
259
+ },
260
+ {
261
+ id: 'expander-row-3',
262
+ header: 'Expander Row 3',
263
+ trackingAttributes: getTrackingAttributes({
264
+ trigger: 'click',
265
+ category: 'uikit demo',
266
+ action: 'button click',
267
+ label: 'expander_row_3_header',
268
+ }),
269
+ body: (
270
+ <ExpanderPanel
271
+ title='Expander Card 3'
272
+ open
273
+ bsStyle='danger'
274
+ className={trackedPanelClassName}
275
+ trackingAttributes={getTrackingAttributes({
276
+ trigger: 'visibility',
277
+ category: 'uikit demo',
278
+ action: 'card seen',
279
+ label: 'expander_row_3_card',
280
+ })}
281
+ >
282
+ <p className='margin-bottom-10'>
283
+ This card is inside row 3 and is tracked when it becomes visible.
284
+ </p>
285
+ <Button
286
+ bsStyle='danger'
287
+ {...getTrackingAttributes({
288
+ trigger: 'click',
289
+ category: 'uikit demo',
290
+ action: 'button click',
291
+ label: 'expander_row_3_button',
292
+ })}
293
+ >
294
+ Row 3 Button
295
+ </Button>
296
+ </ExpanderPanel>
297
+ ),
298
+ },
299
+ ];
300
+
301
+ return (
302
+ <div className='padding-15 bg-color-lightest rounded'>
303
+ <ExpanderList items={items} />
304
+ </div>
305
+ );
306
+ };
307
+ ```
308
+
309
+ #### HTML (html)
310
+
311
+ ```html
312
+ <div class="padding-15 bg-color-lightest rounded">
313
+ <ul class="expander-list list-group rounded border">
314
+ <li class="list-group-item expandable open">
315
+ <div class="expander-list-header" aria-label="expander item header" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="expander_row_1_header">
316
+ <span class="expander-list-header-content">Expander Row 1</span>
317
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
318
+ </span>
319
+ </div>
320
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
321
+ <div class="expander-list-body-wrapper">
322
+ <div class="expander-list-body" aria-label="expander item body">
323
+ <div class="expander-panel panel panel-info max-width-300" aria-label="expander panel">
324
+ <div class="panel-heading open" aria-label="panel heading" data-track-ga-event-trigger="visibility" data-track-ga-event-category="uikit demo" data-track-ga-event-action="card seen" data-track-ga-event-label="expander_row_1_card">
325
+ <span class="title">Expander Card 1</span>
326
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
327
+ </span>
328
+ </div>
329
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
330
+ <div>
331
+ <div class="panel-body">
332
+ <p class="margin-bottom-10">This card is inside row 1 and is tracked when it becomes visible.</p>
333
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="expander_row_1_button" class="btn btn-info btn-component" tabindex="0">Row 1 Button</button>
334
+ </div>
335
+ </div>
336
+ </div>
337
+ </div>
338
+ </div>
339
+ </div>
340
+ </div>
341
+ </li>
342
+ <li class="list-group-item expandable">
343
+ <div class="expander-list-header" aria-label="expander item header" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="expander_row_2_header">
344
+ <span class="expander-list-header-content">Expander Row 2</span>
345
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
346
+ </span>
347
+ </div>
348
+ </li>
349
+ <li class="list-group-item expandable">
350
+ <div class="expander-list-header" aria-label="expander item header" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="expander_row_3_header">
351
+ <span class="expander-list-header-content">Expander Row 3</span>
352
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
353
+ </span>
354
+ </div>
355
+ </li>
356
+ </ul>
357
+ </div>
358
+ ```
359
+
360
+ #### Props
361
+
362
+ | Name | Type | Default | Description |
363
+ | --- | --- | --- | --- |
364
+ | overlayBackgroundOpacity | number | 0.5 | Opacity of the fullscreen analytics overlay backdrop. Values are clamped to the range 0 to 1. |
365
+ | bannerStartCoordinates | AnalysisBannerPosition | undefined | Optional initial viewport coordinates for the draggable analytics banner. When omitted, the banner starts at top: 70px, left: 50% with translateX(-50%). |
366
+
367
+ ### Example: Example 3
368
+
369
+ Open dialog
370
+
371
+ #### React (tsx)
372
+
373
+ ```tsx
374
+ import { useState } from 'react';
375
+
376
+ import Button from '@rio-cloud/rio-uikit/Button';
377
+ import Dialog from '@rio-cloud/rio-uikit/Dialog';
378
+ import { getTrackingAttributes } from '@rio-cloud/rio-uikit/googleAnalyticsUtils';
379
+
380
+ const dialogTitle = 'Analytics Overlay Demo Dialog';
381
+
382
+ export default () => {
383
+ const [isDialogOpen, setIsDialogOpen] = useState(false);
384
+
385
+ const closeDialog = () => {
386
+ setIsDialogOpen(false);
387
+ };
388
+
389
+ return (
390
+ <div className='padding-15 bg-color-lightest rounded'>
391
+ <Button
392
+ bsStyle='primary'
393
+ onClick={() => setIsDialogOpen(true)}
394
+ {...getTrackingAttributes({
395
+ trigger: 'click',
396
+ category: 'uikit demo',
397
+ action: 'button click',
398
+ label: 'analytics_overlay_dialog_open',
399
+ })}
400
+ >
401
+ Open dialog
402
+ </Button>
403
+
404
+ <Dialog
405
+ show={isDialogOpen}
406
+ title={dialogTitle}
407
+ showCloseButton
408
+ onClose={closeDialog}
409
+ body={
410
+ <div
411
+ {...getTrackingAttributes({
412
+ trigger: 'visibility',
413
+ category: 'uikit demo',
414
+ action: 'dialog seen',
415
+ label: 'analytics_overlay_dialog_body',
416
+ })}
417
+ >
418
+ <p className='margin-bottom-10'>
419
+ This is dummy dialog content for the AnalyticsAnalysisOverlay demo.
420
+ </p>
421
+ <p className='margin-0'>
422
+ Upload the demo CSV in the overlay banner and inspect tracked values on this dialog.
423
+ </p>
424
+ </div>
425
+ }
426
+ footer={
427
+ <div className='display-flex justify-content-end gap-10'>
428
+ <Button
429
+ bsStyle='default'
430
+ onClick={closeDialog}
431
+ {...getTrackingAttributes({
432
+ trigger: 'click',
433
+ category: 'uikit demo',
434
+ action: 'button click',
435
+ label: 'analytics_overlay_dialog_cancel',
436
+ })}
437
+ >
438
+ Cancel
439
+ </Button>
440
+ <Button
441
+ bsStyle='primary'
442
+ onClick={closeDialog}
443
+ {...getTrackingAttributes({
444
+ trigger: 'click',
445
+ category: 'uikit demo',
446
+ action: 'button click',
447
+ label: 'analytics_overlay_dialog_confirm',
448
+ })}
449
+ >
450
+ Save
451
+ </Button>
452
+ </div>
453
+ }
454
+ />
455
+ </div>
456
+ );
457
+ };
458
+ ```
459
+
460
+ #### HTML (html)
461
+
462
+ ```html
463
+ <div class="padding-15 bg-color-lightest rounded">
464
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="analytics_overlay_dialog_open" class="btn btn-primary btn-component" tabindex="0">Open dialog</button>
465
+ </div>
466
+ ```
467
+
468
+ #### Props
469
+
470
+ | Name | Type | Default | Description |
471
+ | --- | --- | --- | --- |
472
+ | overlayBackgroundOpacity | number | 0.5 | Opacity of the fullscreen analytics overlay backdrop. Values are clamped to the range 0 to 1. |
473
+ | bannerStartCoordinates | AnalysisBannerPosition | undefined | Optional initial viewport coordinates for the draggable analytics banner. When omitted, the banner starts at top: 70px, left: 50% with translateX(-50%). |
474
+
475
+ ### Example: Was this helpful?
476
+
477
+ Was this helpful?
478
+ Not really Kind of Yes, it was Reset
479
+
480
+ #### React (tsx)
481
+
482
+ ```tsx
483
+ import { useState } from 'react';
484
+
485
+ import { motion } from '@rio-cloud/rio-uikit/motion';
486
+ import Button from '@rio-cloud/rio-uikit/Button';
487
+ import Fade from '@rio-cloud/rio-uikit/Fade';
488
+ import FeedbackInlineButtons from '@rio-cloud/rio-uikit/FeedbackInlineButtons';
489
+ import { getTrackingAttributes } from '@rio-cloud/rio-uikit/googleAnalyticsUtils';
490
+
491
+ export default () => {
492
+ const [hasVoted, setHasVoted] = useState(false);
493
+
494
+ const handleVote = () => {
495
+ setHasVoted(true);
496
+ };
497
+
498
+ return (
499
+ <div
500
+ className='padding-15 bg-color-lightest rounded'
501
+ {...getTrackingAttributes({
502
+ trigger: 'visibility',
503
+ category: 'uikit demo',
504
+ action: 'card seen',
505
+ label: 'feedback_subtle_section',
506
+ })}
507
+ >
508
+ <div className='height-40 display-flex align-items-center'>
509
+ <Fade>
510
+ {hasVoted ? (
511
+ <motion.div
512
+ initial={{ opacity: 0, x: 20 }}
513
+ animate={{ opacity: 1, x: 0 }}
514
+ className='display-flex gap-5 align-items-center'
515
+ >
516
+ <div className='text-color-success text-size-18 line-height-20'>
517
+ <span className='rioglyph rioglyph-ok-sign' />
518
+ </div>
519
+ <div className='text-color-dark'>Thank you for your feedback</div>
520
+ </motion.div>
521
+ ) : (
522
+ <FeedbackInlineButtons
523
+ headline='Was this helpful?'
524
+ buttons={[
525
+ <Button
526
+ key='no'
527
+ bsStyle='muted'
528
+ bsSize='sm'
529
+ onClick={handleVote}
530
+ {...getTrackingAttributes({
531
+ trigger: 'click',
532
+ category: 'uikit demo',
533
+ action: 'button click',
534
+ label: 'feedback_subtle_not_really',
535
+ })}
536
+ >
537
+ <span className='rioglyph rioglyph-face-frown text-color-danger' />
538
+ <span>Not really</span>
539
+ </Button>,
540
+ <Button
541
+ key='kinda'
542
+ bsStyle='muted'
543
+ bsSize='sm'
544
+ onClick={handleVote}
545
+ {...getTrackingAttributes({
546
+ trigger: 'click',
547
+ category: 'uikit demo',
548
+ action: 'button click',
549
+ label: 'feedback_subtle_kind_of',
550
+ })}
551
+ >
552
+ <span className='rioglyph rioglyph-face-neutral text-color-warning' />
553
+ <span>Kind of</span>
554
+ </Button>,
555
+ <Button
556
+ key='yes'
557
+ bsStyle='muted'
558
+ bsSize='sm'
559
+ onClick={handleVote}
560
+ {...getTrackingAttributes({
561
+ trigger: 'click',
562
+ category: 'uikit demo',
563
+ action: 'button click',
564
+ label: 'feedback_subtle_yes_it_was',
565
+ })}
566
+ >
567
+ <span className='rioglyph rioglyph-face-smile text-color-success' />
568
+ <span>Yes, it was</span>
569
+ </Button>,
570
+ ]}
571
+ />
572
+ )}
573
+ </Fade>
574
+ </div>
575
+ <Button
576
+ bsSize='sm'
577
+ className='margin-top-25'
578
+ onClick={() => setHasVoted(false)}
579
+ {...getTrackingAttributes({
580
+ trigger: 'click',
581
+ category: 'uikit demo',
582
+ action: 'button click',
583
+ label: 'feedback_subtle_reset',
584
+ })}
585
+ >
586
+ Reset
587
+ </Button>
588
+ </div>
589
+ );
590
+ };
591
+ ```
592
+
593
+ #### HTML (html)
594
+
595
+ ```html
596
+ <div class="padding-15 bg-color-lightest rounded" data-track-ga-event-trigger="visibility" data-track-ga-event-category="uikit demo" data-track-ga-event-action="card seen" data-track-ga-event-label="feedback_subtle_section">
597
+ <div class="height-40 display-flex align-items-center">
598
+ <div style="opacity: 1; transform: none;">
599
+ <div class="display-flex flex-wrap align-items-center column-gap-15 row-gap-5 user-select-none">
600
+ <div class="text-color-dark">Was this helpful?</div>
601
+ <div class="btn-toolbar gap-5">
602
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="feedback_subtle_not_really" class="btn btn-muted btn-sm btn-component" tabindex="0">
603
+ <span class="rioglyph rioglyph-face-frown text-color-danger">
604
+ </span>
605
+ <span>Not really</span>
606
+ </button>
607
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="feedback_subtle_kind_of" class="btn btn-muted btn-sm btn-component" tabindex="0">
608
+ <span class="rioglyph rioglyph-face-neutral text-color-warning">
609
+ </span>
610
+ <span>Kind of</span>
611
+ </button>
612
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="feedback_subtle_yes_it_was" class="btn btn-muted btn-sm btn-component" tabindex="0">
613
+ <span class="rioglyph rioglyph-face-smile text-color-success">
614
+ </span>
615
+ <span>Yes, it was</span>
616
+ </button>
617
+ </div>
618
+ </div>
619
+ </div>
620
+ </div>
621
+ <button type="button" data-track-ga-event-trigger="click" data-track-ga-event-category="uikit demo" data-track-ga-event-action="button click" data-track-ga-event-label="feedback_subtle_reset" class="btn btn-default btn-sm btn-component margin-top-25" tabindex="0">Reset</button>
622
+ </div>
623
+ ```
624
+
625
+ #### Props
626
+
627
+ | Name | Type | Default | Description |
628
+ | --- | --- | --- | --- |
629
+ | overlayBackgroundOpacity | number | 0.5 | Opacity of the fullscreen analytics overlay backdrop. Values are clamped to the range 0 to 1. |
630
+ | bannerStartCoordinates | AnalysisBannerPosition | undefined | Optional initial viewport coordinates for the draggable analytics banner. When omitted, the banner starts at top: 70px, left: 50% with translateX(-50%). |
@@ -3,7 +3,7 @@
3
3
  *Category:* Components
4
4
  *Section:* Content
5
5
  *Source:* https://uikit.developers.rio.cloud/#/components/animatedNumber
6
- *Captured:* 2026-03-06T10:40:35.709Z
6
+ *Captured:* 2026-04-27T14:57:51.727Z
7
7
 
8
8
  ## AnimatedNumber
9
9
 
@@ -51,7 +51,7 @@ export default () => (
51
51
  <div>
52
52
  <label>Default AnimatedNumber</label>
53
53
  <div class="width-60 margin-bottom-20 text-right text-size-h1 text-color-info">
54
- <span class="">23</span>
54
+ <span class="">25</span>
55
55
  </div>
56
56
  <label>AnimatedNumber with prefix and unit</label>
57
57
  <div class="width-100 margin-bottom-20 text-right text-size-h1 text-color-primary">