@rio-cloud/uikit-mcp 1.1.9 → 1.1.10

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