@rio-cloud/uikit-mcp 1.0.0

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 (198) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +91 -0
  3. package/bin/uikit-mcp.mjs +23 -0
  4. package/data/pages/Components/components/accentbar.json +207 -0
  5. package/data/pages/Components/components/activity.json +87 -0
  6. package/data/pages/Components/components/animatednumber.json +99 -0
  7. package/data/pages/Components/components/animations.json +87 -0
  8. package/data/pages/Components/components/appheader.json +291 -0
  9. package/data/pages/Components/components/applayout.json +1198 -0
  10. package/data/pages/Components/components/appnavigationbar.json +327 -0
  11. package/data/pages/Components/components/areacharts.json +563 -0
  12. package/data/pages/Components/components/aspectratioplaceholder.json +75 -0
  13. package/data/pages/Components/components/assettree.json +3080 -0
  14. package/data/pages/Components/components/autosuggests.json +710 -0
  15. package/data/pages/Components/components/avatar.json +157 -0
  16. package/data/pages/Components/components/banner.json +599 -0
  17. package/data/pages/Components/components/barcharts.json +1507 -0
  18. package/data/pages/Components/components/barlist.json +223 -0
  19. package/data/pages/Components/components/basicmap.json +68 -0
  20. package/data/pages/Components/components/bottomsheet.json +601 -0
  21. package/data/pages/Components/components/button.json +583 -0
  22. package/data/pages/Components/components/buttontoolbar.json +63 -0
  23. package/data/pages/Components/components/calendarstripe.json +235 -0
  24. package/data/pages/Components/components/card.json +69 -0
  25. package/data/pages/Components/components/carousel.json +39 -0
  26. package/data/pages/Components/components/chartcolors.json +34 -0
  27. package/data/pages/Components/components/chartsgettingstarted.json +32 -0
  28. package/data/pages/Components/components/chat.json +39 -0
  29. package/data/pages/Components/components/checkbox.json +847 -0
  30. package/data/pages/Components/components/clearableinput.json +789 -0
  31. package/data/pages/Components/components/collapse.json +175 -0
  32. package/data/pages/Components/components/composedcharts.json +159 -0
  33. package/data/pages/Components/components/contentloader.json +233 -0
  34. package/data/pages/Components/components/datatabs.json +680 -0
  35. package/data/pages/Components/components/datepickers.json +287 -0
  36. package/data/pages/Components/components/dialogs.json +1492 -0
  37. package/data/pages/Components/components/divider.json +93 -0
  38. package/data/pages/Components/components/dropdowns.json +936 -0
  39. package/data/pages/Components/components/editablecontent.json +1117 -0
  40. package/data/pages/Components/components/expander.json +377 -0
  41. package/data/pages/Components/components/fade.json +403 -0
  42. package/data/pages/Components/components/fadeexpander.json +75 -0
  43. package/data/pages/Components/components/fadeup.json +127 -0
  44. package/data/pages/Components/components/feedback.json +269 -0
  45. package/data/pages/Components/components/filepickers.json +269 -0
  46. package/data/pages/Components/components/formlabel.json +115 -0
  47. package/data/pages/Components/components/fullscreenmap.json +22 -0
  48. package/data/pages/Components/components/groupeditemlist.json +323 -0
  49. package/data/pages/Components/components/iconlist.json +45 -0
  50. package/data/pages/Components/components/imagepreloader.json +81 -0
  51. package/data/pages/Components/components/labeledelement.json +75 -0
  52. package/data/pages/Components/components/licenseplate.json +69 -0
  53. package/data/pages/Components/components/linecharts.json +987 -0
  54. package/data/pages/Components/components/listmenu.json +313 -0
  55. package/data/pages/Components/components/loadmore.json +175 -0
  56. package/data/pages/Components/components/mainnavigation.json +39 -0
  57. package/data/pages/Components/components/mapcircle.json +34 -0
  58. package/data/pages/Components/components/mapcluster.json +51 -0
  59. package/data/pages/Components/components/mapcontext.json +105 -0
  60. package/data/pages/Components/components/mapdraggablemarker.json +34 -0
  61. package/data/pages/Components/components/mapgettingstarted.json +27 -0
  62. package/data/pages/Components/components/mapgroup.json +1198 -0
  63. package/data/pages/Components/components/mapinfobubble.json +34 -0
  64. package/data/pages/Components/components/maplayergroup.json +34 -0
  65. package/data/pages/Components/components/mapmarker.json +700 -0
  66. package/data/pages/Components/components/mappolygon.json +45 -0
  67. package/data/pages/Components/components/maproute.json +623 -0
  68. package/data/pages/Components/components/maproutegenerator.json +16 -0
  69. package/data/pages/Components/components/mapsettings.json +51 -0
  70. package/data/pages/Components/components/maputils.json +34 -0
  71. package/data/pages/Components/components/multiselects.json +1451 -0
  72. package/data/pages/Components/components/nodata.json +139 -0
  73. package/data/pages/Components/components/notifications.json +65 -0
  74. package/data/pages/Components/components/numbercontrol.json +301 -0
  75. package/data/pages/Components/components/onboarding.json +302 -0
  76. package/data/pages/Components/components/page.json +197 -0
  77. package/data/pages/Components/components/pager.json +93 -0
  78. package/data/pages/Components/components/piecharts.json +731 -0
  79. package/data/pages/Components/components/popover.json +251 -0
  80. package/data/pages/Components/components/position.json +69 -0
  81. package/data/pages/Components/components/radialbarcharts.json +1304 -0
  82. package/data/pages/Components/components/radiobutton.json +1105 -0
  83. package/data/pages/Components/components/releasenotes.json +44 -0
  84. package/data/pages/Components/components/resizer.json +93 -0
  85. package/data/pages/Components/components/responsivecolumnstripe.json +123 -0
  86. package/data/pages/Components/components/responsivevideo.json +75 -0
  87. package/data/pages/Components/components/rioglyph.json +93 -0
  88. package/data/pages/Components/components/rules.json +410 -0
  89. package/data/pages/Components/components/saveableinput.json +703 -0
  90. package/data/pages/Components/components/selects.json +701 -0
  91. package/data/pages/Components/components/sidebar.json +243 -0
  92. package/data/pages/Components/components/sliders.json +235 -0
  93. package/data/pages/Components/components/smoothscrollbars.json +335 -0
  94. package/data/pages/Components/components/spinners.json +343 -0
  95. package/data/pages/Components/components/states.json +1705 -0
  96. package/data/pages/Components/components/statswidgets.json +314 -0
  97. package/data/pages/Components/components/statusbar.json +177 -0
  98. package/data/pages/Components/components/stepbutton.json +57 -0
  99. package/data/pages/Components/components/steppedprogressbars.json +417 -0
  100. package/data/pages/Components/components/subnavigation.json +107 -0
  101. package/data/pages/Components/components/supportmarker.json +45 -0
  102. package/data/pages/Components/components/svgimage.json +81 -0
  103. package/data/pages/Components/components/switch.json +111 -0
  104. package/data/pages/Components/components/tables.json +144 -0
  105. package/data/pages/Components/components/tagmanager.json +86 -0
  106. package/data/pages/Components/components/tags.json +146 -0
  107. package/data/pages/Components/components/teaser.json +188 -0
  108. package/data/pages/Components/components/timeline.json +45 -0
  109. package/data/pages/Components/components/timepicker.json +163 -0
  110. package/data/pages/Components/components/togglebutton.json +247 -0
  111. package/data/pages/Components/components/tooltip.json +270 -0
  112. package/data/pages/Components/components/virtuallist.json +175 -0
  113. package/data/pages/Foundations/foundations.json +2475 -0
  114. package/data/pages/Getting-started/start/changelog.json +22 -0
  115. package/data/pages/Getting-started/start/goodtoknow.json +32 -0
  116. package/data/pages/Getting-started/start/guidelines/color-combinations.json +58 -0
  117. package/data/pages/Getting-started/start/guidelines/custom-css.json +27 -0
  118. package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +22 -0
  119. package/data/pages/Getting-started/start/guidelines/formatting.json +97 -0
  120. package/data/pages/Getting-started/start/guidelines/iframe.json +93 -0
  121. package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +22 -0
  122. package/data/pages/Getting-started/start/guidelines/print-css.json +37 -0
  123. package/data/pages/Getting-started/start/guidelines/spinner.json +144 -0
  124. package/data/pages/Getting-started/start/guidelines/supported-browsers.json +22 -0
  125. package/data/pages/Getting-started/start/guidelines/writing.json +242 -0
  126. package/data/pages/Getting-started/start/howto.json +72 -0
  127. package/data/pages/Getting-started/start/intro.json +37 -0
  128. package/data/pages/Getting-started/start/responsiveness.json +52 -0
  129. package/data/pages/Templates/templates/common-table.json +39 -0
  130. package/data/pages/Templates/templates/detail-views.json +71 -0
  131. package/data/pages/Templates/templates/expandable-details.json +39 -0
  132. package/data/pages/Templates/templates/feature-cards.json +103 -0
  133. package/data/pages/Templates/templates/form-summary.json +39 -0
  134. package/data/pages/Templates/templates/form-toggle.json +39 -0
  135. package/data/pages/Templates/templates/list-blocks.json +119 -0
  136. package/data/pages/Templates/templates/loading-progress.json +39 -0
  137. package/data/pages/Templates/templates/options-panel.json +39 -0
  138. package/data/pages/Templates/templates/panel-variants.json +39 -0
  139. package/data/pages/Templates/templates/progress-cards.json +71 -0
  140. package/data/pages/Templates/templates/progress-success.json +39 -0
  141. package/data/pages/Templates/templates/settings-form.json +39 -0
  142. package/data/pages/Templates/templates/stats-blocks.json +135 -0
  143. package/data/pages/Templates/templates/table-panel.json +39 -0
  144. package/data/pages/Templates/templates/table-row-animation.json +39 -0
  145. package/data/pages/Templates/templates/usage-cards.json +39 -0
  146. package/data/pages/Utilities/utilities/deviceutils.json +39 -0
  147. package/data/pages/Utilities/utilities/featuretoggles.json +42 -0
  148. package/data/pages/Utilities/utilities/fueltypeutils.json +118 -0
  149. package/data/pages/Utilities/utilities/routeutils.json +34 -0
  150. package/data/pages/Utilities/utilities/useaftermount.json +63 -0
  151. package/data/pages/Utilities/utilities/useaverage.json +86 -0
  152. package/data/pages/Utilities/utilities/useclickoutside.json +69 -0
  153. package/data/pages/Utilities/utilities/useclipboard.json +57 -0
  154. package/data/pages/Utilities/utilities/usecount.json +92 -0
  155. package/data/pages/Utilities/utilities/usedarkmode.json +50 -0
  156. package/data/pages/Utilities/utilities/usedebuginfo.json +63 -0
  157. package/data/pages/Utilities/utilities/useeffectonce.json +57 -0
  158. package/data/pages/Utilities/utilities/useelapsedtime.json +57 -0
  159. package/data/pages/Utilities/utilities/useelementsize.json +63 -0
  160. package/data/pages/Utilities/utilities/useesc.json +57 -0
  161. package/data/pages/Utilities/utilities/useevent.json +75 -0
  162. package/data/pages/Utilities/utilities/usefocustrap.json +57 -0
  163. package/data/pages/Utilities/utilities/usefullscreen.json +197 -0
  164. package/data/pages/Utilities/utilities/usehover.json +57 -0
  165. package/data/pages/Utilities/utilities/useinterval.json +63 -0
  166. package/data/pages/Utilities/utilities/useisfocuswithin.json +75 -0
  167. package/data/pages/Utilities/utilities/usekey.json +75 -0
  168. package/data/pages/Utilities/utilities/uselocalstorage.json +69 -0
  169. package/data/pages/Utilities/utilities/uselocationsuggestions.json +110 -0
  170. package/data/pages/Utilities/utilities/usemax.json +86 -0
  171. package/data/pages/Utilities/utilities/usemin.json +86 -0
  172. package/data/pages/Utilities/utilities/usemutationobserver.json +69 -0
  173. package/data/pages/Utilities/utilities/useonlinestatus.json +39 -0
  174. package/data/pages/Utilities/utilities/useonscreen.json +63 -0
  175. package/data/pages/Utilities/utilities/usepostmessage.json +80 -0
  176. package/data/pages/Utilities/utilities/useprevious.json +63 -0
  177. package/data/pages/Utilities/utilities/useresizeobserver.json +65 -0
  178. package/data/pages/Utilities/utilities/usescrollposition.json +103 -0
  179. package/data/pages/Utilities/utilities/usesearch.json +197 -0
  180. package/data/pages/Utilities/utilities/usesorting.json +139 -0
  181. package/data/pages/Utilities/utilities/usestatewithvalidation.json +69 -0
  182. package/data/pages/Utilities/utilities/usesum.json +86 -0
  183. package/data/pages/Utilities/utilities/usetableexport.json +87 -0
  184. package/data/pages/Utilities/utilities/usetableselection.json +311 -0
  185. package/data/pages/Utilities/utilities/usetimeout.json +63 -0
  186. package/data/pages/Utilities/utilities/usetoggle.json +75 -0
  187. package/data/pages/Utilities/utilities/usewindowresize.json +63 -0
  188. package/data/version.json +4 -0
  189. package/docs/content-schema.md +147 -0
  190. package/docs/navigation-inventory.json +1310 -0
  191. package/docs/search-synonyms.json +43 -0
  192. package/package.json +38 -0
  193. package/server/index.mjs +268 -0
  194. package/server/lib/load-docs.mjs +48 -0
  195. package/server/lib/normalise-doc.mjs +220 -0
  196. package/server/lib/render-markdown.mjs +82 -0
  197. package/server/lib/search-index.mjs +49 -0
  198. package/server/lib/types.js +99 -0
@@ -0,0 +1,44 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:54.253Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/releaseNotes",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/releasenotes",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "4757e73ac5886b92120ea4753e68c965133bece293010eebe7bc7f9a4404322f"
11
+ },
12
+ "title": "ReleaseNotes",
13
+ "lead": "Component to render release notes in a standardized manner.",
14
+ "content": [
15
+ {
16
+ "heading": "ReleaseNotes",
17
+ "body": "",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div><div class=\"panel panel-default\"><div class=\"panel-heading\"><div class=\"display-flex justify-content-between\"><span class=\"text-size-16 text-medium\">1.1.0</span><span class=\"text-thin\">23.07.2018</span></div></div><div class=\"panel-body white-space-pre-line\"><div><div class=\"padding-left-15\">Map view within the tour history table\n• Modern map design as used in the Beta of the fleet monitor\n• Works with all event types\n• Event specific map marker\n • Map size adjustable via slider</div></div></div></div><div class=\"panel panel-default\"><div class=\"panel-heading\"><div class=\"display-flex justify-content-between\"><span class=\"text-size-16 text-medium\">1.0.0</span><span class=\"text-thin\">27.06.2018</span></div></div><div class=\"panel-body white-space-pre-line\"><ul class=\"margin-bottom-0 margin-left-5 padding-left-25\"><li><div>New feature XYZ has been added ...</div></li><li><div>fixed bugs in ...</div></li><li><div>Another feature has been added</div></li></ul></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import ReleaseNotes from '@rio-cloud/rio-uikit/ReleaseNotes';\n\nconst releaseNotes = {\n 'en-GB': {\n '1.1.0': {\n date: '23.07.2018',\n content: (\n <div className='padding-left-15'>{`Map view within the tour history table\n• Modern map design as used in the Beta of the fleet monitor\n• Works with all event types\n• Event specific map marker\n • Map size adjustable via slider`}</div>\n ),\n },\n '1.0.0': {\n date: '27.06.2018',\n content: [\n <div>New feature XYZ has been added ...</div>,\n <div>fixed bugs in ...</div>,\n <div>Another feature has been added</div>,\n ],\n },\n },\n};\n\nconst translationKey = 'en-GB';\n\nexport default () => <ReleaseNotes releaseNotes={releaseNotes[translationKey]} />;"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"display-flex justify-content-between\">\n <span class=\"text-size-16 text-medium\">1.1.0</span>\n <span class=\"text-thin\">23.07.2018</span>\n </div>\n </div>\n <div class=\"panel-body white-space-pre-line\">\n <div>\n <div class=\"padding-left-15\">Map view within the tour history table\n • Modern map design as used in the Beta of the fleet monitor\n • Works with all event types\n • Event specific map marker\n • Map size adjustable via slider</div>\n </div>\n </div>\n </div>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"display-flex justify-content-between\">\n <span class=\"text-size-16 text-medium\">1.0.0</span>\n <span class=\"text-thin\">27.06.2018</span>\n </div>\n </div>\n <div class=\"panel-body white-space-pre-line\">\n <ul class=\"margin-bottom-0 margin-left-5 padding-left-25\">\n <li>\n <div>New feature XYZ has been added ...</div>\n </li>\n <li>\n <div>fixed bugs in ...</div>\n </li>\n <li>\n <div>Another feature has been added</div>\n </li>\n </ul>\n </div>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": "{\n \"0.1.2\": {\n date: String,\n content: arrayOf(nodes) or single node,\n }\n}"
37
+ }
38
+ ]
39
+ }
40
+ ]
41
+ }
42
+ ],
43
+ "see_also": []
44
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:54.789Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/resizer",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/resizer",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "f7999fff932633e80a2bc10fa5d85f89c9ff5da1a94756c3042b32031e14fd0c"
11
+ },
12
+ "title": "Resizer",
13
+ "lead": "A helper component to allow elements to resize.",
14
+ "content": [
15
+ {
16
+ "heading": "Resizer",
17
+ "body": "> Note: When the resizer position is set to left or top you also need to position your elements on screen accordingly. Otherwise, the browser will set the height or width and expands in the opposite direction",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div><div>Horizontal (default): </div><div class=\"height-50 bg-light position-relative\" style=\"width: 50px;\"><div class=\"Resizer resize-horizontal resize-right\"></div></div><hr><div>Vertical (with child element as handle):</div><div class=\"width-50 bg-light position-relative\" style=\"height: 50px;\"><div class=\"Resizer resize-vertical resize-bottom\"><div class=\"height-5 width-100pct bg-dark\"></div></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import React, { Component } from 'react';\n\nimport Resizer from '@rio-cloud/rio-uikit/Resizer';\n\nexport default class ResizeExample extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n box1width: 50,\n box2height: 50,\n minWidth: 25,\n maxWidth: 500,\n minHeight: 25,\n maxHeight: 500,\n };\n\n this.onResizeHorizontal = this.onResizeHorizontal.bind(this);\n this.onResizeVertical = this.onResizeVertical.bind(this);\n this.onResizeStart = this.onResizeStart.bind(this);\n this.onResizeEnd = this.onResizeEnd.bind(this);\n }\n\n getWidthInBoundaries(minWidth, maxWidth, width) {\n if (width > 0 && width < minWidth) {\n return minWidth;\n }\n\n if (width > 0 && width > maxWidth) {\n return maxWidth;\n }\n\n if (width > 0 && width > maxWidth) {\n return maxWidth;\n }\n\n return width;\n }\n\n getHeightInBoundaries(minHeight, maxHeight, height) {\n if (height > 0 && height < minHeight) {\n return minHeight;\n }\n\n if (height > 0 && height > maxHeight) {\n return maxHeight;\n }\n\n if (height > 0 && height > maxHeight) {\n return maxHeight;\n }\n\n return height;\n }\n\n onResizeHorizontal(diff) {\n const { minWidth, maxWidth } = this.props;\n const updatedWidth = this.state.box1width - diff;\n\n this.setState({\n box1width: this.getWidthInBoundaries(minWidth, maxWidth, updatedWidth),\n });\n }\n\n onResizeVertical(diff) {\n const { minHeight, maxHeight } = this.state;\n const updatedHeight = this.state.box2height - diff;\n\n this.setState({\n box2height: this.getHeightInBoundaries(minHeight, maxHeight, updatedHeight),\n });\n }\n\n onResizeStart(/* event*/) {}\n\n onResizeEnd(/* event*/) {}\n\n render() {\n return (\n <div>\n <div>{'Horizontal (default): '}</div>\n <div className='height-50 bg-light position-relative' style={{ width: this.state.box1width }}>\n <Resizer onResize={this.onResizeHorizontal} />\n </div>\n <hr />\n <div>Vertical (with child element as handle):</div>\n <div className='width-50 bg-light position-relative' style={{ height: this.state.box2height }}>\n <Resizer\n onResizeStart={this.onResizeStart}\n onResize={this.onResizeVertical}\n onResizeEnd={this.onResizeEnd}\n direction={Resizer.VERTICAL}\n position={Resizer.BOTTOM}\n >\n <div className='height-5 width-100pct bg-dark' />\n </Resizer>\n </div>\n </div>\n );\n }\n}"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div>\n <div>Horizontal (default): </div>\n <div class=\"height-50 bg-light position-relative\" style=\"width: 50px;\">\n <div class=\"Resizer resize-horizontal resize-right\">\n </div>\n </div>\n <hr>\n <div>Vertical (with child element as handle):</div>\n <div class=\"width-50 bg-light position-relative\" style=\"height: 50px;\">\n <div class=\"Resizer resize-vertical resize-bottom\">\n <div class=\"height-5 width-100pct bg-dark\">\n </div>\n </div>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "direction",
43
+ "type": "String",
44
+ "default": "Resizer.HORIZONTAL",
45
+ "description": "Defines on which axis to resize. Possible values are: Resizer.HORIZONTAL Resizer.VERTICAL or 'x' 'y'"
46
+ },
47
+ {
48
+ "name": "position",
49
+ "type": "String",
50
+ "default": "Resizer.RIGHT",
51
+ "description": "Defines where the resize handle is positioned relative to the element to resize. Possible values are: Resizer.LEFT Resizer.RIGHT Resizer.TOP Resizer.BOTTOM or 'left' 'right' 'top' 'bottom'"
52
+ },
53
+ {
54
+ "name": "onResizeStart",
55
+ "type": "Function",
56
+ "default": "",
57
+ "description": "Callback when the resize starts, means when the handle is pressed. It returns the respective event."
58
+ },
59
+ {
60
+ "name": "onResizeEnd",
61
+ "type": "Function",
62
+ "default": "",
63
+ "description": "Callback when the resize ends, means when the handle is released. It returns the respective event."
64
+ },
65
+ {
66
+ "name": "onResize",
67
+ "type": "Function",
68
+ "default": "",
69
+ "description": "Callback when the resize handle is moved. The function returns the distant between the last position and the mouse movement. Means you can either subtract or add this diff to the elements width you want to change."
70
+ },
71
+ {
72
+ "name": "className",
73
+ "type": "String",
74
+ "default": "",
75
+ "description": "Additional classes to be set on the wrapper element."
76
+ },
77
+ {
78
+ "name": "children",
79
+ "type": "any",
80
+ "default": "",
81
+ "description": "Any element to be rendered inside the resizer handle."
82
+ }
83
+ ]
84
+ }
85
+ ]
86
+ }
87
+ ]
88
+ }
89
+ ]
90
+ }
91
+ ],
92
+ "see_also": []
93
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:40.626Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/responsiveColumnStripe",
5
+ "category": "Components",
6
+ "section": "Content",
7
+ "slug": "components/responsivecolumnstripe",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "6d0f02a61c223053e2884fff260f32bf811f19dda218c738dfe297f4db2e471e"
11
+ },
12
+ "title": "ResponsiveColumnStripe",
13
+ "lead": "The ResponsiveColumnStripe component is designed to work with any list of items. The individual items are spread equally according to the available space. The component is totally customizable and does not style the individual items to give maximum flexibility.",
14
+ "content": [
15
+ {
16
+ "heading": "ResponsiveColumnStripe",
17
+ "body": "> Note: It is mandatory to set the key attribute for the individual items. If they are not set or when they are not unique the calculation of how many items to show on which page wont work. In case a custom component is used as item, wrap it in a native DOM element and set the key to the wrapping element.",
18
+ "examples": [
19
+ {
20
+ "caption": "Shipments",
21
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"margin-bottom-50\"><label>ResponsiveColumnStripe with minColumns 2 and maxColumns 5</label><div class=\"ResponsiveColumnStripe display-flex align-items-center overflow-hidden border rounded bg-white shadow-default\"><div class=\"PreviousButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12 pointer-events-none opacity-30\"><span class=\"rioglyph rioglyph-chevron-left\"></span></div><div class=\"ColumnsArea flex-1-1 overflow-hidden\"><div class=\"ColumnWrapper flex-1-1 display-flex space-x--1\"><div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"1\">Item 1</div><div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"2\">Item 2</div><div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"3\">Item 3</div><div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"4\">Item 4</div><div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"5\">Item 5</div></div></div><div class=\"NextButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\"><span class=\"rioglyph rioglyph-chevron-right\"></span></div></div></div><div class=\"margin-bottom-50\"><label>ResponsiveColumnStripe as \"ul\" with minColumns 1 and maxColumns 4</label><div class=\"ResponsiveColumnStripe display-flex align-items-center overflow-hidden rounded bg-lightest\"><div class=\"PreviousButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12 pointer-events-none opacity-30\"><span class=\"rioglyph rioglyph-chevron-left\"></span></div><div class=\"ColumnsArea flex-1-1 overflow-hidden\"><ul class=\"ColumnWrapper flex-1-1 display-flex nav nav-pills nav-pills-filled nav-justified user-select-none\"><li class=\"ColumnItem flex-1-1 foobar\" data-key=\"1\" style=\"color: red;\"><span>Item 1</span></li><li class=\"ColumnItem flex-1-1 active\" data-key=\"2\"><span>Item 2</span></li><li class=\"ColumnItem flex-1-1 \" data-key=\"3\"><span>Item 3</span></li><li class=\"ColumnItem flex-1-1 \" data-key=\"4\"><span>Item 4</span></li></ul></div><div class=\"NextButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\"><span class=\"rioglyph rioglyph-chevron-right\"></span></div></div></div><div class=\"margin-bottom-50\"><label>ResponsiveColumnStripe as \"ul\" with minColumns 1, maxColumns 5, and no animation</label><div class=\"ResponsiveColumnStripe display-flex align-items-center overflow-hidden bg-white\"><div class=\"PreviousButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\"><span class=\"rioglyph rioglyph-chevron-left\"></span></div><div class=\"ColumnsArea flex-1-1 overflow-hidden\"><ul class=\"ColumnWrapper flex-1-1 display-flex margin-0 padding-0 space-x--1 user-select-none\"><div class=\"ColumnItem flex-1-1 \" data-key=\"5\"><div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none \"><div class=\"flex-1-1 text-medium\"><div>Friday</div><div class=\"text-size-16\">14.01.2023</div></div><div class=\"flex-1-1 text-size-14\"><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-dark\">Shipments</span><span><strong>4</strong></span></div><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-dark\">Planned</span><span class=\"text-medium text-color-gray\">0</span></div></div></div></div><div class=\"ColumnItem flex-1-1 \" data-key=\"6\"><div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none \"><div class=\"flex-1-1 text-medium\"><div>Monday</div><div class=\"text-size-16\">17.01.2023</div></div><div class=\"flex-1-1 text-size-14\"><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-dark\">Shipments</span><span><strong>4</strong></span></div><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-dark\">Planned</span><span class=\"text-medium text-color-gray\">0</span></div></div></div></div><div class=\"ColumnItem flex-1-1 \" data-key=\"7\"><div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none \"><div class=\"flex-1-1 text-medium\"><div>Thuesday</div><div class=\"text-size-16\">18.01.2023</div></div><div class=\"flex-1-1 text-size-14\"><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-dark\">Shipments</span><span><strong>4</strong></span></div><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-dark\">Planned</span><span class=\"text-medium text-color-gray\">0</span></div></div></div></div><div class=\"ColumnItem flex-1-1 \" data-key=\"8\"><div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none bg-highlight\"><div class=\"flex-1-1 text-medium\"><div>Wednesday</div><div class=\"text-size-16\">19.01.2023</div></div><div class=\"flex-1-1 text-size-14\"><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-white\">Shipments</span><span><strong>4</strong></span></div><div class=\"display-flex flex-row justify-content-end-lg gap-10\"><span class=\"text-color-white\">Planned</span><span class=\"text-medium text-color-white\">0</span></div></div></div></div></ul></div><div class=\"NextButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\"><span class=\"rioglyph rioglyph-chevron-right\"></span></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import React from 'react';\n\nimport ResponsiveColumnStripe from '@rio-cloud/rio-uikit/ResponsiveColumnStripe';\n\nexport default () => {\n const demoContentOneClasses =\n 'border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer';\n\n return (\n <>\n <div className='margin-bottom-50'>\n <label>ResponsiveColumnStripe with minColumns 2 and maxColumns 5</label>\n <ResponsiveColumnStripe\n className='border rounded bg-white shadow-default'\n columnsWrapperClassName='space-x--1'\n minColumnWith={150}\n minColumns={2}\n maxColumns={5}\n stretchLastItems={false}\n onNextClick={pageNumber => console.log(`show page: ${pageNumber}`)}\n onPreviousClick={pageNumber => console.log(`show page: ${pageNumber}`)}\n >\n <div key='1' className={demoContentOneClasses}>\n Item 1\n </div>\n <div key='2' className={demoContentOneClasses}>\n Item 2\n </div>\n <div key='3' className={demoContentOneClasses}>\n Item 3\n </div>\n <div key='4' className={demoContentOneClasses}>\n Item 4\n </div>\n <div key='5' className={demoContentOneClasses}>\n Item 5\n </div>\n <div key='6' className={demoContentOneClasses}>\n Item 6\n </div>\n <div key='7' className={demoContentOneClasses}>\n Item 7\n </div>\n </ResponsiveColumnStripe>\n </div>\n <div className='margin-bottom-50'>\n <label>ResponsiveColumnStripe as \"ul\" with minColumns 1 and maxColumns 4</label>\n <ResponsiveColumnStripe\n className='rounded bg-lightest'\n columnsWrapperClassName='nav nav-pills nav-pills-filled nav-justified user-select-none'\n buttonClassName='bg-none'\n minColumnWith={100}\n minColumns={1}\n maxColumns={4}\n asType='ul'\n >\n <li key='1' className='foobar' style={{ color: 'red' }}>\n <span>Item 1</span>\n </li>\n <li key='2' className='active'>\n <span>Item 2</span>\n </li>\n <li key='3'>\n <span>Item 3</span>\n </li>\n <li key='4'>\n <span>Item 4</span>\n </li>\n <li key='5'>\n <span>Item 5</span>\n </li>\n <li key='6'>\n <span>Item 6</span>\n </li>\n <li key='7'>\n <span>Item 7</span>\n </li>\n <li key='8'>\n <span>Item 8</span>\n </li>\n <li key='9'>\n <span>Item 9</span>\n </li>\n <li key='10'>\n <span>Item 10</span>\n </li>\n <li key='11'>\n <span>Item 11</span>\n </li>\n </ResponsiveColumnStripe>\n </div>\n <div className='margin-bottom-50'>\n <label>ResponsiveColumnStripe as \"ul\" with minColumns 1, maxColumns 5, and no animation</label>\n <ResponsiveColumnStripe\n className='bg-white'\n columnsWrapperClassName='margin-0 padding-0 space-x--1 user-select-none'\n buttonClassName='hover-bg-highlight-decent'\n minColumnWith={220}\n minColumns={1}\n maxColumns={5}\n asType='ul'\n activePage={1}\n disableAnimation\n >\n <div key='1'>\n <ComplexDemoContent day='Monday' date='10.01.2023' />\n </div>\n <div key='2'>\n <ComplexDemoContent day='Thuesday' date='11.01.2023' />\n </div>\n <div key='3'>\n <ComplexDemoContent day='Wednesday' date='12.01.2023' />\n </div>\n <div key='4'>\n <ComplexDemoContent day='Thursday' date='13.01.2023' />\n </div>\n <div key='5'>\n <ComplexDemoContent day='Friday' date='14.01.2023' />\n </div>\n <div key='6'>\n <ComplexDemoContent day='Monday' date='17.01.2023' />\n </div>\n <div key='7'>\n <ComplexDemoContent day='Thuesday' date='18.01.2023' />\n </div>\n <div key='8'>\n <ComplexDemoContent day='Wednesday' date='19.01.2023' active />\n </div>\n <div key='9'>\n <ComplexDemoContent day='Thursday' date='20.01.2023' />\n </div>\n <div key='10'>\n <ComplexDemoContent day='Friday' date='21.01.2023' />\n </div>\n </ResponsiveColumnStripe>\n </div>\n </>\n );\n};\n\ntype ComplexDemoContentProps = {\n day: string;\n date: string;\n active?: boolean;\n};\n\nconst ComplexDemoContent = ({ day, date, active }: ComplexDemoContentProps) => (\n <div\n className={`padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none ${\n active ? 'bg-highlight' : ''\n }`}\n >\n <div className='flex-1-1 text-medium'>\n <div>{day}</div>\n <div className='text-size-16'>{date}</div>\n </div>\n <div className='flex-1-1 text-size-14'>\n <div className='display-flex flex-row justify-content-end-lg gap-10'>\n <span className={active ? 'text-color-white' : 'text-color-dark'}>Shipments</span>\n <span>\n <strong>4</strong>\n </span>\n </div>\n <div className='display-flex flex-row justify-content-end-lg gap-10'>\n <span className={active ? 'text-color-white' : 'text-color-dark'}>Planned</span>\n <span className={`text-medium ${active ? 'text-color-white' : 'text-color-gray'}`}>0</span>\n </div>\n </div>\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"margin-bottom-50\">\n <label>ResponsiveColumnStripe with minColumns 2 and maxColumns 5</label>\n <div class=\"ResponsiveColumnStripe display-flex align-items-center overflow-hidden border rounded bg-white shadow-default\">\n <div class=\"PreviousButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12 pointer-events-none opacity-30\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>\n </div>\n <div class=\"ColumnsArea flex-1-1 overflow-hidden\">\n <div class=\"ColumnWrapper flex-1-1 display-flex space-x--1\">\n <div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"1\">Item 1</div>\n <div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"2\">Item 2</div>\n <div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"3\">Item 3</div>\n <div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"4\">Item 4</div>\n <div class=\"ColumnItem flex-1-1 border border-top-none border-bottom-none padding-15 hover-bg-highlight-decent cursor-pointer\" data-key=\"5\">Item 5</div>\n </div>\n </div>\n <div class=\"NextButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>\n </div>\n </div>\n</div>\n<div class=\"margin-bottom-50\">\n <label>ResponsiveColumnStripe as \"ul\" with minColumns 1 and maxColumns 4</label>\n <div class=\"ResponsiveColumnStripe display-flex align-items-center overflow-hidden rounded bg-lightest\">\n <div class=\"PreviousButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12 pointer-events-none opacity-30\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>\n </div>\n <div class=\"ColumnsArea flex-1-1 overflow-hidden\">\n <ul class=\"ColumnWrapper flex-1-1 display-flex nav nav-pills nav-pills-filled nav-justified user-select-none\">\n <li class=\"ColumnItem flex-1-1 foobar\" data-key=\"1\" style=\"color: red;\">\n <span>Item 1</span>\n </li>\n <li class=\"ColumnItem flex-1-1 active\" data-key=\"2\">\n <span>Item 2</span>\n </li>\n <li class=\"ColumnItem flex-1-1 \" data-key=\"3\">\n <span>Item 3</span>\n </li>\n <li class=\"ColumnItem flex-1-1 \" data-key=\"4\">\n <span>Item 4</span>\n </li>\n </ul>\n </div>\n <div class=\"NextButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>\n </div>\n </div>\n</div>\n<div class=\"margin-bottom-50\">\n <label>ResponsiveColumnStripe as \"ul\" with minColumns 1, maxColumns 5, and no animation</label>\n <div class=\"ResponsiveColumnStripe display-flex align-items-center overflow-hidden bg-white\">\n <div class=\"PreviousButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>\n </div>\n <div class=\"ColumnsArea flex-1-1 overflow-hidden\">\n <ul class=\"ColumnWrapper flex-1-1 display-flex margin-0 padding-0 space-x--1 user-select-none\">\n <div class=\"ColumnItem flex-1-1 \" data-key=\"5\">\n <div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none \">\n <div class=\"flex-1-1 text-medium\">\n <div>Friday</div>\n <div class=\"text-size-16\">14.01.2023</div>\n </div>\n <div class=\"flex-1-1 text-size-14\">\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-dark\">Shipments</span>\n <span>\n <strong>4</strong>\n </span>\n </div>\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-dark\">Planned</span>\n <span class=\"text-medium text-color-gray\">0</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"ColumnItem flex-1-1 \" data-key=\"6\">\n <div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none \">\n <div class=\"flex-1-1 text-medium\">\n <div>Monday</div>\n <div class=\"text-size-16\">17.01.2023</div>\n </div>\n <div class=\"flex-1-1 text-size-14\">\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-dark\">Shipments</span>\n <span>\n <strong>4</strong>\n </span>\n </div>\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-dark\">Planned</span>\n <span class=\"text-medium text-color-gray\">0</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"ColumnItem flex-1-1 \" data-key=\"7\">\n <div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none \">\n <div class=\"flex-1-1 text-medium\">\n <div>Thuesday</div>\n <div class=\"text-size-16\">18.01.2023</div>\n </div>\n <div class=\"flex-1-1 text-size-14\">\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-dark\">Shipments</span>\n <span>\n <strong>4</strong>\n </span>\n </div>\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-dark\">Planned</span>\n <span class=\"text-medium text-color-gray\">0</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"ColumnItem flex-1-1 \" data-key=\"8\">\n <div class=\"padding-15 display-flex flex-wrap line-height-20 gap-5 border border-top-none border-bottom-none bg-highlight\">\n <div class=\"flex-1-1 text-medium\">\n <div>Wednesday</div>\n <div class=\"text-size-16\">19.01.2023</div>\n </div>\n <div class=\"flex-1-1 text-size-14\">\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-white\">Shipments</span>\n <span>\n <strong>4</strong>\n </span>\n </div>\n <div class=\"display-flex flex-row justify-content-end-lg gap-10\">\n <span class=\"text-color-white\">Planned</span>\n <span class=\"text-medium text-color-white\">0</span>\n </div>\n </div>\n </div>\n </div>\n </ul>\n </div>\n <div class=\"NextButton align-items-center align-self-stretch display-flex hover-scale-105 hover-text-color-darkest padding-10 cursor-pointer text-color-darker text-size-12\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>\n </div>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "minColumnWith",
43
+ "type": "Number",
44
+ "default": "300",
45
+ "description": "The minimum width in pixel of a single column. This value determines how many columns are shown per page depending on the parent width."
46
+ },
47
+ {
48
+ "name": "minColumns",
49
+ "type": "Number",
50
+ "default": "1",
51
+ "description": "The minimum amount of columns that should be shown per page."
52
+ },
53
+ {
54
+ "name": "maxColumns",
55
+ "type": "Number",
56
+ "default": "5",
57
+ "description": "The maximum amount of columns that should be shown per page."
58
+ },
59
+ {
60
+ "name": "stretchLastItems",
61
+ "type": "Boolean",
62
+ "default": "false",
63
+ "description": "Defines whether the items on the last page are stretched out to fill the space."
64
+ },
65
+ {
66
+ "name": "activePage",
67
+ "type": "Number",
68
+ "default": "0",
69
+ "description": "The page that shall be shown. This can be used to control the pages from outside."
70
+ },
71
+ {
72
+ "name": "asType",
73
+ "type": "String",
74
+ "default": "div",
75
+ "description": "The DOM element type of the wrapping column element. If you need a list, this might be set to \"ul\"."
76
+ },
77
+ {
78
+ "name": "disableAnimation",
79
+ "type": "Boolean",
80
+ "default": "false",
81
+ "description": "Set to true to skip animating pages."
82
+ },
83
+ {
84
+ "name": "onPreviousClick",
85
+ "type": "(pageNumber: number, columnsPerPage: number) => void",
86
+ "default": "",
87
+ "description": "Callback function for when the previous page is clicked."
88
+ },
89
+ {
90
+ "name": "onNextClick",
91
+ "type": "(pageNumber: number, columnsPerPage: number) => void",
92
+ "default": "",
93
+ "description": "Callback function for when the next page is clicked."
94
+ },
95
+ {
96
+ "name": "buttonClassName",
97
+ "type": "String",
98
+ "default": "",
99
+ "description": "Additional classes set to the navigation buttons."
100
+ },
101
+ {
102
+ "name": "columnsWrapperClassName",
103
+ "type": "String",
104
+ "default": "",
105
+ "description": "Additional classes set to the component wrapper element."
106
+ },
107
+ {
108
+ "name": "className",
109
+ "type": "String",
110
+ "default": "",
111
+ "description": "Additional classes set to the column wrapper element."
112
+ }
113
+ ]
114
+ }
115
+ ]
116
+ }
117
+ ]
118
+ }
119
+ ]
120
+ }
121
+ ],
122
+ "see_also": []
123
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:55.621Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/responsiveVideo",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/responsivevideo",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "5ed782df4ed0e4b6206b3726286267e1440a5a8f4c0f92a63afd0755c2552ac2"
11
+ },
12
+ "title": "Responsive Video",
13
+ "lead": null,
14
+ "content": [
15
+ {
16
+ "heading": "Responsive Video",
17
+ "body": "",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"padding-left-15pct padding-right-15pct\"><div class=\"h3\">Responsive Video 16x9</div><div class=\"video-responsive video-responsive-16by9\"><iframe src=\"https://www.youtube.com/embed/znckWdXTbTk\" allowfullscreen=\"\"></iframe></div><hr><div class=\"h3\">Responsive Video 4x3</div><div class=\"video-responsive video-responsive-4by3\"><iframe src=\"https://www.youtube.com/embed/znckWdXTbTk\" allowfullscreen=\"\"></iframe></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import React from 'react';\n\nimport ResponsiveVideo from '@rio-cloud/rio-uikit/ResponsiveVideo';\n\nexport default () => (\n <div className='padding-left-15pct padding-right-15pct'>\n <div className='h3'>Responsive Video 16x9</div>\n <ResponsiveVideo\n src='https://www.youtube.com/embed/znckWdXTbTk'\n aspectRatio={ResponsiveVideo.ASPECT_RATIO_16_BY_9}\n allowFullScreen\n />\n <hr />\n <div className='h3'>Responsive Video 4x3</div>\n <ResponsiveVideo\n src='https://www.youtube.com/embed/znckWdXTbTk'\n aspectRatio={ResponsiveVideo.ASPECT_RATIO_4_BY_3}\n allowFullScreen\n />\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"padding-left-15pct padding-right-15pct\">\n <div class=\"h3\">Responsive Video 16x9</div>\n <div class=\"video-responsive video-responsive-16by9\">\n <iframe src=\"https://www.youtube.com/embed/znckWdXTbTk\" allowfullscreen=\"\">\n </iframe>\n </div>\n <hr>\n <div class=\"h3\">Responsive Video 4x3</div>\n <div class=\"video-responsive video-responsive-4by3\">\n <iframe src=\"https://www.youtube.com/embed/znckWdXTbTk\" allowfullscreen=\"\">\n </iframe>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "src",
43
+ "type": "String",
44
+ "default": "",
45
+ "description": "The link to the source of the video file."
46
+ },
47
+ {
48
+ "name": "aspectRatio",
49
+ "type": "String",
50
+ "default": "ResponsiveVideo.ASPECT_RATIO_16_BY_9",
51
+ "description": "Defined the aspect ratio of the video. Possible values are: ResponsiveVideo.ASPECT_RATIO_4_BY_3, ResponsiveVideo.ASPECT_RATIO_16_BY_9 or '4by3', '16by9'"
52
+ },
53
+ {
54
+ "name": "allowFullScreen",
55
+ "type": "Boolean",
56
+ "default": "true",
57
+ "description": "Allows the fullscreen feature of the underlying embedded iframe."
58
+ },
59
+ {
60
+ "name": "className",
61
+ "type": "String",
62
+ "default": "",
63
+ "description": "Additional classes added to the wrapping element."
64
+ }
65
+ ]
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ }
71
+ ]
72
+ }
73
+ ],
74
+ "see_also": []
75
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:55.322Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/rioglyph",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/rioglyph",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "77e0a14189d1175b66f149cd3ce2799295438f6e9c5b71c05b7eb2fc497b9c99"
11
+ },
12
+ "title": "Rioglyph",
13
+ "lead": "The Rioglyph component is a React wrapper for the Rioglyph icon set. It provides a convenient and type-safe way to render icons without directly dealing with the utility classnames.",
14
+ "content": [
15
+ {
16
+ "heading": "Rioglyph",
17
+ "body": "In addition to rendering a single icon, the component supports built-in features such as spinning and pulsing animations, as well as paired icons for combining multiple glyphs into one semantic symbol.\n\nThe complete list of available icons and their names can be found in the icon library.",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"display-flex flex-column gap-15\"><div><label>Single rioglyph icon</label><div class=\"display-flex gap-5 align-items-center text-size-18\"><span class=\"rioglyph rioglyph-truck\"></span><span class=\"rioglyph rioglyph-bus\"></span><span class=\"rioglyph rioglyph-van\"></span><span class=\"rioglyph rioglyph-car\"></span></div></div><div><label>Single rioglyph icon with custom styles</label><div class=\"display-flex gap-5 align-items-center\"><span class=\"rioglyph rioglyph-truck text-size-h2 text-color-gray\"></span><span class=\"rioglyph rioglyph-bus text-size-h2 text-color-gray\"></span><span class=\"rioglyph rioglyph-van text-size-h2 text-color-gray\"></span><span class=\"rioglyph rioglyph-car text-size-h2 text-color-gray\"></span></div></div><div><label>Single rioglyph icon with spinning animation</label><div class=\"display-flex gap-5 align-items-center\"><span class=\"rioglyph rioglyph-refresh text-size-h2 spinning\"></span><span class=\"rioglyph rioglyph-climate-control text-size-h2 spinning\"></span><span class=\"rioglyph rioglyph-cog text-size-h2 spinning\"></span><span class=\"rioglyph rioglyph-spinner text-size-h2 spinning\"></span><span class=\"rioglyph rioglyph-tire text-size-h2 spinning\"></span></div></div><div><label>Single rioglyph icon with pulsing animation</label><div class=\"display-flex gap-5 align-items-center\"><span class=\"rioglyph rioglyph-battery-level-empty text-size-h2 text-color-danger pulsing\"></span><span class=\"rioglyph rioglyph-battery-level-low text-size-h2 text-color-warning\"></span><span class=\"rioglyph rioglyph-battery-level-full text-size-h2 text-color-success\"></span></div></div><div><label>Paired rioglyph icon</label><div class=\"display-flex gap-5 align-items-center\"><span class=\"rioglyph-icon-pair text-size-h1\"><span class=\"rioglyph rioglyph-truck\"></span><span class=\"rioglyph rioglyph-fuel-hydrogen text-color-info\"></span></span><span class=\"rioglyph-icon-pair text-size-h1\"><span class=\"rioglyph rioglyph-bus\"></span><span class=\"rioglyph rioglyph-fuel-electric text-color-success\"></span></span><span class=\"rioglyph-icon-pair text-size-h1\"><span class=\"rioglyph rioglyph-van\"></span><span class=\"rioglyph rioglyph-fuel-diesel text-color-black\"></span></span><span class=\"rioglyph-icon-pair text-size-h1\"><span class=\"rioglyph rioglyph-car\"></span><span class=\"rioglyph rioglyph-fuel-gas text-color-black\"></span></span></div></div><div><label>Custom external svg icon</label><div class=\"display-flex gap-5 align-items-center\"><span class=\"rioglyph text-size-h1 text-color-info\" style=\"--i: url(https://cdn.rio.cloud/images/uikit/react_logo.svg);\"></span><span class=\"rioglyph-icon-pair text-size-h1\"><span class=\"rioglyph\" style=\"--i: url(https://cdn.rio.cloud/images/uikit/react_logo.svg);\"></span><span class=\"rioglyph text-color-danger\" style=\"--i: url(https://cdn.rio.cloud/images/uikit/number_19.svg);\"></span></span></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import Rioglyph, { type IconType } from '@rio-cloud/rio-uikit/Rioglyph';\n\n// Keep color classes typed to avoid typos when passing classNames.\nexport type ColorClass =\n | 'text-color-warning'\n | 'text-color-danger'\n | 'text-color-success'\n | 'text-color-info'\n | 'text-color-black'\n | 'text-color-gray';\n\n// Single vehicle icons used across examples.\nconst vehicleIcons: IconType[] = ['rioglyph-truck', 'rioglyph-bus', 'rioglyph-van', 'rioglyph-car'] as const;\n\n// Icons that visually make sense to spin.\nconst spinnableIcons: IconType[] = [\n 'rioglyph-refresh',\n 'rioglyph-climate-control',\n 'rioglyph-cog',\n 'rioglyph-spinner',\n 'rioglyph-tire',\n] as const;\n\n/**\n * Icons that pulse in color to indicate a status.\n */\ntype Icon = { icon: IconType; color: ColorClass };\n\nconst pulsingIcons: Icon[] = [\n { icon: 'rioglyph-battery-level-empty', color: 'text-color-danger' },\n { icon: 'rioglyph-battery-level-low', color: 'text-color-warning' },\n { icon: 'rioglyph-battery-level-full', color: 'text-color-success' },\n];\n\n/**\n * Paired icons that combine a vehicle with its fuel type.\n */\ntype PairedIcon = Icon & { pairIcon: IconType };\n\nconst pairedIcons: PairedIcon[] = [\n { icon: 'rioglyph-truck', pairIcon: 'rioglyph-fuel-hydrogen', color: 'text-color-info' },\n { icon: 'rioglyph-bus', pairIcon: 'rioglyph-fuel-electric', color: 'text-color-success' },\n { icon: 'rioglyph-van', pairIcon: 'rioglyph-fuel-diesel', color: 'text-color-black' },\n { icon: 'rioglyph-car', pairIcon: 'rioglyph-fuel-gas', color: 'text-color-black' },\n];\n\nexport default () => (\n <div className='display-flex flex-column gap-15'>\n {/* Basic glyphs */}\n <div>\n <label>Single rioglyph icon</label>\n <div className='display-flex gap-5 align-items-center text-size-18'>\n {vehicleIcons.map(icon => (\n <Rioglyph icon={icon} key={icon} />\n ))}\n </div>\n </div>\n\n {/* Custom styling via className */}\n <div>\n <label>Single rioglyph icon with custom styles</label>\n <div className='display-flex gap-5 align-items-center'>\n {vehicleIcons.map(icon => (\n <Rioglyph icon={icon} size='h2' iconClassName='text-color-gray' key={icon} />\n ))}\n </div>\n </div>\n\n {/* Built-in spinning animation */}\n <div>\n <label>Single rioglyph icon with spinning animation</label>\n <div className='display-flex gap-5 align-items-center'>\n {spinnableIcons.map(icon => (\n <Rioglyph icon={icon} size='h2' spinning key={icon} />\n ))}\n </div>\n </div>\n\n {/* Pulsing animation + color */}\n <div>\n <label>Single rioglyph icon with pulsing animation</label>\n <div className='display-flex gap-5 align-items-center'>\n {pulsingIcons.map(({ icon, color }) => (\n <Rioglyph\n icon={icon}\n size='h2'\n pulsing={icon === 'rioglyph-battery-level-empty'}\n iconClassName={color}\n key={`${icon}-${color}`}\n />\n ))}\n </div>\n </div>\n\n {/* Main glyph paired with a secondary glyph (e.g., fuel type) */}\n <div>\n <label>Paired rioglyph icon</label>\n <div className='display-flex gap-5 align-items-center'>\n {pairedIcons.map(({ icon, pairIcon, color }) => (\n <Rioglyph\n icon={icon}\n size='h1'\n pairIcon={pairIcon}\n pairIconClassName={color}\n key={`${icon}-${pairIcon}`}\n />\n ))}\n </div>\n </div>\n\n {/* Custom external svg icon */}\n <div>\n <label>Custom external svg icon</label>\n <div className='display-flex gap-5 align-items-center'>\n <Rioglyph\n icon={'https://cdn.rio.cloud/images/uikit/react_logo.svg'}\n size='h1'\n iconClassName='text-color-info'\n />\n <Rioglyph\n icon={'https://cdn.rio.cloud/images/uikit/react_logo.svg'}\n size='h1'\n pairIcon={'https://cdn.rio.cloud/images/uikit/number_19.svg'}\n pairIconClassName={'text-color-danger'}\n />\n </div>\n </div>\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"display-flex flex-column gap-15\">\n <div>\n <label>Single rioglyph icon</label>\n <div class=\"display-flex gap-5 align-items-center text-size-18\">\n <span class=\"rioglyph rioglyph-truck\">\n </span>\n <span class=\"rioglyph rioglyph-bus\">\n </span>\n <span class=\"rioglyph rioglyph-van\">\n </span>\n <span class=\"rioglyph rioglyph-car\">\n </span>\n </div>\n </div>\n <div>\n <label>Single rioglyph icon with custom styles</label>\n <div class=\"display-flex gap-5 align-items-center\">\n <span class=\"rioglyph rioglyph-truck text-size-h2 text-color-gray\">\n </span>\n <span class=\"rioglyph rioglyph-bus text-size-h2 text-color-gray\">\n </span>\n <span class=\"rioglyph rioglyph-van text-size-h2 text-color-gray\">\n </span>\n <span class=\"rioglyph rioglyph-car text-size-h2 text-color-gray\">\n </span>\n </div>\n </div>\n <div>\n <label>Single rioglyph icon with spinning animation</label>\n <div class=\"display-flex gap-5 align-items-center\">\n <span class=\"rioglyph rioglyph-refresh text-size-h2 spinning\">\n </span>\n <span class=\"rioglyph rioglyph-climate-control text-size-h2 spinning\">\n </span>\n <span class=\"rioglyph rioglyph-cog text-size-h2 spinning\">\n </span>\n <span class=\"rioglyph rioglyph-spinner text-size-h2 spinning\">\n </span>\n <span class=\"rioglyph rioglyph-tire text-size-h2 spinning\">\n </span>\n </div>\n </div>\n <div>\n <label>Single rioglyph icon with pulsing animation</label>\n <div class=\"display-flex gap-5 align-items-center\">\n <span class=\"rioglyph rioglyph-battery-level-empty text-size-h2 text-color-danger pulsing\">\n </span>\n <span class=\"rioglyph rioglyph-battery-level-low text-size-h2 text-color-warning\">\n </span>\n <span class=\"rioglyph rioglyph-battery-level-full text-size-h2 text-color-success\">\n </span>\n </div>\n </div>\n <div>\n <label>Paired rioglyph icon</label>\n <div class=\"display-flex gap-5 align-items-center\">\n <span class=\"rioglyph-icon-pair text-size-h1\">\n <span class=\"rioglyph rioglyph-truck\">\n </span>\n <span class=\"rioglyph rioglyph-fuel-hydrogen text-color-info\">\n </span>\n </span>\n <span class=\"rioglyph-icon-pair text-size-h1\">\n <span class=\"rioglyph rioglyph-bus\">\n </span>\n <span class=\"rioglyph rioglyph-fuel-electric text-color-success\">\n </span>\n </span>\n <span class=\"rioglyph-icon-pair text-size-h1\">\n <span class=\"rioglyph rioglyph-van\">\n </span>\n <span class=\"rioglyph rioglyph-fuel-diesel text-color-black\">\n </span>\n </span>\n <span class=\"rioglyph-icon-pair text-size-h1\">\n <span class=\"rioglyph rioglyph-car\">\n </span>\n <span class=\"rioglyph rioglyph-fuel-gas text-color-black\">\n </span>\n </span>\n </div>\n </div>\n <div>\n <label>Custom external svg icon</label>\n <div class=\"display-flex gap-5 align-items-center\">\n <span class=\"rioglyph text-size-h1 text-color-info\" style=\"--i: url(https://cdn.rio.cloud/images/uikit/react_logo.svg);\">\n </span>\n <span class=\"rioglyph-icon-pair text-size-h1\">\n <span class=\"rioglyph\" style=\"--i: url(https://cdn.rio.cloud/images/uikit/react_logo.svg);\">\n </span>\n <span class=\"rioglyph text-color-danger\" style=\"--i: url(https://cdn.rio.cloud/images/uikit/number_19.svg);\">\n </span>\n </span>\n </div>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "icon",
43
+ "type": "string",
44
+ "default": "",
45
+ "description": "The rioglyph icon string OR an external .svg link"
46
+ },
47
+ {
48
+ "name": "iconClassName",
49
+ "type": "string",
50
+ "default": "",
51
+ "description": "Additional classes set to the icon."
52
+ },
53
+ {
54
+ "name": "size",
55
+ "type": "string",
56
+ "default": "",
57
+ "description": "The possible values are: h1, h2, h3, h4, h5, h6 as well as the following size values 10, 11, 12, 14, 16, 18, 20"
58
+ },
59
+ {
60
+ "name": "spinning",
61
+ "type": "boolean",
62
+ "default": "",
63
+ "description": "Uses the spinning animation."
64
+ },
65
+ {
66
+ "name": "pulsing",
67
+ "type": "boolean",
68
+ "default": "",
69
+ "description": "Uses the pulsing animation."
70
+ },
71
+ {
72
+ "name": "pairIcon",
73
+ "type": "string",
74
+ "default": "",
75
+ "description": "The rioglyph icon string OR an external .svg link"
76
+ },
77
+ {
78
+ "name": "pairIconClassName",
79
+ "type": "string",
80
+ "default": "",
81
+ "description": "Additional classes set to the pairIcon."
82
+ }
83
+ ]
84
+ }
85
+ ]
86
+ }
87
+ ]
88
+ }
89
+ ]
90
+ }
91
+ ],
92
+ "see_also": []
93
+ }