@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,107 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:06.591Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/subNavigation",
5
+ "category": "Components",
6
+ "section": "Navigation",
7
+ "slug": "components/subnavigation",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "91c41538290db73113a86a3825366f4b678c14399069d92c51bb335a3480ce9d"
11
+ },
12
+ "title": "SubNavigation",
13
+ "lead": null,
14
+ "content": [
15
+ {
16
+ "heading": "SubNavigation",
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=\"bg-white border max-width-500\"><div class=\"SubNavigation width-100pct overflow-auto\"><ul class=\"SubmoduleNavigation nav\"><li class=\"submodule\" data-nav-item-key=\"1\"><a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Subnavigation 1</a></li><li class=\"submodule\" data-nav-item-key=\"2\"><a href=\"#components/appLayout\">Subnavigation 2</a></li><li class=\"submodule\" data-nav-item-key=\"3\"><a href=\"#components/appLayout\">Subnavigation 3</a></li></ul></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import { NavLink } from 'react-router-dom';\n\nimport SubNavigation from '@rio-cloud/rio-uikit/SubNavigation';\n\nexport default () => (\n <div className='bg-white border max-width-500'>\n <SubNavigation\n navItems={[\n {\n key: '1',\n route: <NavLink to='/components/subNavigation'>Subnavigation 1</NavLink>,\n },\n {\n key: '2',\n route: (\n <NavLink to='/components/appLayout' onClick={event => event.preventDefault()}>\n Subnavigation 2\n </NavLink>\n ),\n },\n {\n key: '3',\n route: (\n <NavLink to='/components/appLayout' onClick={event => event.preventDefault()}>\n Subnavigation 3\n </NavLink>\n ),\n },\n ]}\n />\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"bg-white border max-width-500\">\n <div class=\"SubNavigation width-100pct overflow-auto\">\n <ul class=\"SubmoduleNavigation nav\">\n <li class=\"submodule\" data-nav-item-key=\"1\">\n <a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Subnavigation 1</a>\n </li>\n <li class=\"submodule\" data-nav-item-key=\"2\">\n <a href=\"#components/appLayout\">Subnavigation 2</a>\n </li>\n <li class=\"submodule\" data-nav-item-key=\"3\">\n <a href=\"#components/appLayout\">Subnavigation 3</a>\n </li>\n </ul>\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": "navItems",
43
+ "type": "Array",
44
+ "default": "",
45
+ "description": "List of navigation items with key and route prop. The route prop is a react-router NavLink component with an \"active\" style."
46
+ },
47
+ {
48
+ "name": "className",
49
+ "type": "String",
50
+ "default": "",
51
+ "description": "Additional classes for the wrapper element."
52
+ }
53
+ ]
54
+ }
55
+ ]
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "heading": "SubNavigation with offset",
63
+ "body": "",
64
+ "examples": [
65
+ {
66
+ "caption": "Example 2",
67
+ "rendered_html": "<div class=\"playground-content bg-checkerboard padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"ApplicationLayout bg-lighter\" style=\"--ApplicationLayoutBodyBottomBarHeight: 54px;\"><div class=\"ApplicationLayoutHeader\" id=\"ApplicationLayoutHeader\"><nav class=\"ApplicationHeader user-select-none\"><div class=\"navbar-header\"><span class=\"navbar-brand home-icon\"></span></div><ul class=\"ModuleNavigation AppMenu user-select-none pointer-events-none\"><li class=\"dropdown\"><a class=\"ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive\" role=\"button\" id=\"basic-nav-dropdown\"><span>RIO Service</span></a></li></ul><ul class=\"SubmoduleNavigation nav\"><li class=\"submodule \" data-nav-item-key=\"1\"><a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Navigation 1</a></li><li class=\"submodule \" data-nav-item-key=\"2\"><a href=\"#2\">Navigation 2</a></li><li class=\"submodule \" data-nav-item-key=\"3\"><a href=\"#3\">Navigation 3</a></li></ul><ul class=\"ApplicationActionBar nav navbar-nav navbar-right \"></ul></nav></div><div class=\"ApplicationLayoutBody uikitDemo\"><div class=\"module-content-wrapper\"><div class=\"ApplicationLayoutBodyNavigation\"><div class=\"SubNavigation width-100pct overflow-auto\"><ul class=\"SubmoduleNavigation nav\"><li class=\"submodule\" data-nav-item-key=\"1\"><a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Subnavigation 1</a></li><li class=\"submodule\" data-nav-item-key=\"2\"><a href=\"#2\">Subnavigation 2</a></li><li class=\"submodule\" data-nav-item-key=\"3\"><a href=\"#3\">Subnavigation 3</a></li></ul></div></div><div class=\"module-content smooth-scrollbar-wrapper\" style=\"position: relative; overflow: hidden; width: 100%; height: 100%;\"><div class=\"scrollbar-view\" style=\"position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;\"><div class=\"scrollbar-content-wrapper\"><div class=\"scrollbar-content\"><div class=\"dummy-class\"></div></div></div></div><div class=\"scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; height: 6px; display: none;\"><div class=\"scrollbar-thumb-horizontal scrollbar-thumb-size-large\" style=\"position: relative; display: block; height: 100%;\"></div></div><div class=\"scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; width: 6px; display: none;\"><div class=\"scrollbar-thumb-vertical scrollbar-thumb-size-large\" style=\"position: relative; display: block; width: 100%;\"></div></div></div></div><span class=\"scroll-to-top\"><button type=\"button\" class=\"btn btn-primary btn-icon-only\"><span class=\"rioglyph rioglyph-arrow-up\"></span></button></span></div></div></div>",
68
+ "tabs": [
69
+ {
70
+ "label": "React",
71
+ "language": "tsx",
72
+ "code": "import React, { useState, useEffect } from 'react';\nimport { NavLink } from 'react-router-dom';\n\nimport ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';\nimport ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';\nimport ApplicationLayoutBodyNavigation from '@rio-cloud/rio-uikit/ApplicationLayoutBodyNavigation';\nimport SubNavigation from '@rio-cloud/rio-uikit/SubNavigation';\nimport useResizeObserver from '@rio-cloud/rio-uikit/useResizeObserver';\nimport { SCREEN_MD } from '@rio-cloud/rio-uikit/DeviceUtils';\n\nexport default () => {\n const currentLocation = window.location.hash.replace('#', '/');\n const navItems = [\n { key: '1', route: <NavLink to={currentLocation}>Navigation 1</NavLink> },\n {\n key: '2',\n route: (\n <NavLink to='/2' onClick={event => event.preventDefault()}>\n Navigation 2\n </NavLink>\n ),\n },\n {\n key: '3',\n route: (\n <NavLink to='/3' onClick={event => event.preventDefault()}>\n Navigation 3\n </NavLink>\n ),\n },\n ];\n\n // Listen for resize changes of the target element defined by the ref\n // Note: this is for demo purpose only when resizing the demo playground.\n // The SubNavigation component handles this case internally\n const { ref, isMobile } = useResizer();\n const bodyNavigationClasses = isMobile ? '' : 'has-offset';\n\n return (\n <ApplicationLayout className='bg-lighter' layoutRef={ref}>\n <ApplicationLayout.Header>\n <ApplicationHeader label='RIO Service' navItems={navItems} />\n </ApplicationLayout.Header>\n <ApplicationLayout.Body\n className='uikitDemo'\n navigation={\n <ApplicationLayoutBodyNavigation className={bodyNavigationClasses}>\n <SubNavigation\n navItems={[\n {\n key: '1',\n route: <NavLink to={currentLocation}>Subnavigation 1</NavLink>,\n },\n {\n key: '2',\n route: (\n <NavLink to='/2' onClick={event => event.preventDefault()}>\n Subnavigation 2\n </NavLink>\n ),\n },\n {\n key: '3',\n route: (\n <NavLink to='/3' onClick={event => event.preventDefault()}>\n Subnavigation 3\n </NavLink>\n ),\n },\n ]}\n />\n </ApplicationLayoutBodyNavigation>\n }\n >\n <div className='dummy-class' />\n </ApplicationLayout.Body>\n </ApplicationLayout>\n );\n};\n\nconst useResizer = () => {\n const [isMobile, setIsMobile] = useState(false);\n const [ref, observerEntry] = useResizeObserver();\n const contentRect = observerEntry?.contentRect;\n useEffect(() => {\n if (!contentRect) {\n return;\n }\n const width = Math.round(contentRect.width);\n if (width <= SCREEN_MD) {\n setIsMobile(true);\n } else {\n setIsMobile(false);\n }\n }, [contentRect]);\n\n return { ref, isMobile };\n};"
73
+ },
74
+ {
75
+ "label": "HTML",
76
+ "language": "html",
77
+ "code": "<div class=\"ApplicationLayout bg-lighter\" style=\"--ApplicationLayoutBodyBottomBarHeight: 54px;\">\n <div class=\"ApplicationLayoutHeader\" id=\"ApplicationLayoutHeader\">\n <nav class=\"ApplicationHeader user-select-none\">\n <div class=\"navbar-header\">\n <span class=\"navbar-brand home-icon\">\n </span>\n </div>\n <ul class=\"ModuleNavigation AppMenu user-select-none pointer-events-none\">\n <li class=\"dropdown\">\n <a class=\"ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive\" role=\"button\" id=\"basic-nav-dropdown\">\n <span>RIO Service</span>\n </a>\n </li>\n </ul>\n <ul class=\"SubmoduleNavigation nav\">\n <li class=\"submodule \" data-nav-item-key=\"1\">\n <a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Navigation 1</a>\n </li>\n <li class=\"submodule \" data-nav-item-key=\"2\">\n <a href=\"#2\">Navigation 2</a>\n </li>\n <li class=\"submodule \" data-nav-item-key=\"3\">\n <a href=\"#3\">Navigation 3</a>\n </li>\n </ul>\n <ul class=\"ApplicationActionBar nav navbar-nav navbar-right \">\n </ul>\n </nav>\n </div>\n <div class=\"ApplicationLayoutBody uikitDemo\">\n <div class=\"module-content-wrapper\">\n <div class=\"ApplicationLayoutBodyNavigation\">\n <div class=\"SubNavigation width-100pct overflow-auto\">\n <ul class=\"SubmoduleNavigation nav\">\n <li class=\"submodule\" data-nav-item-key=\"1\">\n <a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Subnavigation 1</a>\n </li>\n <li class=\"submodule\" data-nav-item-key=\"2\">\n <a href=\"#2\">Subnavigation 2</a>\n </li>\n <li class=\"submodule\" data-nav-item-key=\"3\">\n <a href=\"#3\">Subnavigation 3</a>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"module-content smooth-scrollbar-wrapper\" style=\"position: relative; overflow: hidden; width: 100%; height: 100%;\">\n <div class=\"scrollbar-view\" style=\"position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;\">\n <div class=\"scrollbar-content-wrapper\">\n <div class=\"scrollbar-content\">\n <div class=\"dummy-class\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; height: 6px; display: none;\">\n <div class=\"scrollbar-thumb-horizontal scrollbar-thumb-size-large\" style=\"position: relative; display: block; height: 100%;\">\n </div>\n </div>\n <div class=\"scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; width: 6px; display: none;\">\n <div class=\"scrollbar-thumb-vertical scrollbar-thumb-size-large\" style=\"position: relative; display: block; width: 100%;\">\n </div>\n </div>\n </div>\n </div>\n <span class=\"scroll-to-top\">\n <button type=\"button\" class=\"btn btn-primary btn-icon-only\">\n <span class=\"rioglyph rioglyph-arrow-up\">\n </span>\n </button>\n </span>\n </div>\n</div>"
78
+ }
79
+ ]
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "heading": "SubNavigation without offset",
85
+ "body": "",
86
+ "examples": [
87
+ {
88
+ "caption": "Example 3",
89
+ "rendered_html": "<div class=\"playground-content bg-checkerboard padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"ApplicationLayout bg-lighter\" style=\"--ApplicationLayoutBodyBottomBarHeight: 54px;\"><div class=\"ApplicationLayoutHeader\" id=\"ApplicationLayoutHeader\"><nav class=\"ApplicationHeader user-select-none\"><div class=\"navbar-header\"><span class=\"navbar-brand home-icon\"></span></div><ul class=\"ModuleNavigation AppMenu user-select-none pointer-events-none\"><li class=\"dropdown\"><a class=\"ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive\" role=\"button\" id=\"basic-nav-dropdown\"><span>RIO Service</span></a></li></ul><ul class=\"SubmoduleNavigation nav\"><li class=\"submodule \" data-nav-item-key=\"1\"><a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Navigation 1</a></li><li class=\"submodule \" data-nav-item-key=\"2\"><a href=\"#2\">Navigation 2</a></li><li class=\"submodule \" data-nav-item-key=\"3\"><a href=\"#3\">Navigation 3</a></li></ul><ul class=\"ApplicationActionBar nav navbar-nav navbar-right \"></ul></nav></div><div class=\"ApplicationLayoutBody uikitDemo\"><div class=\"module-content-wrapper\"><div class=\"ApplicationLayoutBodyNavigation\"><div class=\"SubNavigation width-100pct overflow-auto\"><ul class=\"SubmoduleNavigation nav\"><li class=\"submodule\" data-nav-item-key=\"1\"><a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Subnavigation 1</a></li><li class=\"submodule\" data-nav-item-key=\"2\"><a href=\"#2\">Subnavigation 2</a></li><li class=\"submodule\" data-nav-item-key=\"3\"><a href=\"#3\">Subnavigation 3</a></li></ul></div></div><div class=\"module-content smooth-scrollbar-wrapper\" style=\"position: relative; overflow: hidden; width: 100%; height: 100%;\"><div class=\"scrollbar-view\" style=\"position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;\"><div class=\"scrollbar-content-wrapper\"><div class=\"scrollbar-content\"><div class=\"dummy-class\"></div></div></div></div><div class=\"scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; height: 6px; display: none;\"><div class=\"scrollbar-thumb-horizontal scrollbar-thumb-size-large\" style=\"position: relative; display: block; height: 100%;\"></div></div><div class=\"scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; width: 6px; display: none;\"><div class=\"scrollbar-thumb-vertical scrollbar-thumb-size-large\" style=\"position: relative; display: block; width: 100%;\"></div></div></div></div><span class=\"scroll-to-top\"><button type=\"button\" class=\"btn btn-primary btn-icon-only\"><span class=\"rioglyph rioglyph-arrow-up\"></span></button></span></div></div></div>",
90
+ "tabs": [
91
+ {
92
+ "label": "React",
93
+ "language": "tsx",
94
+ "code": "import { NavLink } from 'react-router-dom';\n\nimport ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';\nimport ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';\nimport ApplicationLayoutBodyNavigation from '@rio-cloud/rio-uikit/ApplicationLayoutBodyNavigation';\nimport SubNavigation from '@rio-cloud/rio-uikit/SubNavigation';\n\nexport default () => {\n const currentLocation = window.location.hash.replace('#', '/');\n const navItems = [\n { key: '1', route: <NavLink to={currentLocation}>Navigation 1</NavLink> },\n {\n key: '2',\n route: (\n <NavLink to='/2' onClick={event => event.preventDefault()}>\n Navigation 2\n </NavLink>\n ),\n },\n {\n key: '3',\n route: (\n <NavLink to='/3' onClick={event => event.preventDefault()}>\n Navigation 3\n </NavLink>\n ),\n },\n ];\n\n return (\n <ApplicationLayout className='bg-lighter'>\n <ApplicationLayout.Header>\n <ApplicationHeader label='RIO Service' navItems={navItems} />\n </ApplicationLayout.Header>\n <ApplicationLayout.Body\n className='uikitDemo'\n navigation={\n <ApplicationLayoutBodyNavigation>\n <SubNavigation\n navItems={[\n {\n key: '1',\n route: <NavLink to={currentLocation}>Subnavigation 1</NavLink>,\n },\n {\n key: '2',\n route: (\n <NavLink to='/2' onClick={event => event.preventDefault()}>\n Subnavigation 2\n </NavLink>\n ),\n },\n {\n key: '3',\n route: (\n <NavLink to='/3' onClick={event => event.preventDefault()}>\n Subnavigation 3\n </NavLink>\n ),\n },\n ]}\n />\n </ApplicationLayoutBodyNavigation>\n }\n >\n <div className='dummy-class' />\n </ApplicationLayout.Body>\n </ApplicationLayout>\n );\n};"
95
+ },
96
+ {
97
+ "label": "HTML",
98
+ "language": "html",
99
+ "code": "<div class=\"ApplicationLayout bg-lighter\" style=\"--ApplicationLayoutBodyBottomBarHeight: 54px;\">\n <div class=\"ApplicationLayoutHeader\" id=\"ApplicationLayoutHeader\">\n <nav class=\"ApplicationHeader user-select-none\">\n <div class=\"navbar-header\">\n <span class=\"navbar-brand home-icon\">\n </span>\n </div>\n <ul class=\"ModuleNavigation AppMenu user-select-none pointer-events-none\">\n <li class=\"dropdown\">\n <a class=\"ModuleNavigation-dropdown dropdown-toggle justify-content-between inactive\" role=\"button\" id=\"basic-nav-dropdown\">\n <span>RIO Service</span>\n </a>\n </li>\n </ul>\n <ul class=\"SubmoduleNavigation nav\">\n <li class=\"submodule \" data-nav-item-key=\"1\">\n <a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Navigation 1</a>\n </li>\n <li class=\"submodule \" data-nav-item-key=\"2\">\n <a href=\"#2\">Navigation 2</a>\n </li>\n <li class=\"submodule \" data-nav-item-key=\"3\">\n <a href=\"#3\">Navigation 3</a>\n </li>\n </ul>\n <ul class=\"ApplicationActionBar nav navbar-nav navbar-right \">\n </ul>\n </nav>\n </div>\n <div class=\"ApplicationLayoutBody uikitDemo\">\n <div class=\"module-content-wrapper\">\n <div class=\"ApplicationLayoutBodyNavigation\">\n <div class=\"SubNavigation width-100pct overflow-auto\">\n <ul class=\"SubmoduleNavigation nav\">\n <li class=\"submodule\" data-nav-item-key=\"1\">\n <a aria-current=\"page\" class=\"active\" href=\"#components/subNavigation\">Subnavigation 1</a>\n </li>\n <li class=\"submodule\" data-nav-item-key=\"2\">\n <a href=\"#2\">Subnavigation 2</a>\n </li>\n <li class=\"submodule\" data-nav-item-key=\"3\">\n <a href=\"#3\">Subnavigation 3</a>\n </li>\n </ul>\n </div>\n </div>\n <div class=\"module-content smooth-scrollbar-wrapper\" style=\"position: relative; overflow: hidden; width: 100%; height: 100%;\">\n <div class=\"scrollbar-view\" style=\"position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;\">\n <div class=\"scrollbar-content-wrapper\">\n <div class=\"scrollbar-content\">\n <div class=\"dummy-class\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"scrollbar-track-horizontal scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; height: 6px; display: none;\">\n <div class=\"scrollbar-thumb-horizontal scrollbar-thumb-size-large\" style=\"position: relative; display: block; height: 100%;\">\n </div>\n </div>\n <div class=\"scrollbar-track-vertical scrollbar-track-size-large scrollbar-track-offset\" style=\"position: absolute; width: 6px; display: none;\">\n <div class=\"scrollbar-thumb-vertical scrollbar-thumb-size-large\" style=\"position: relative; display: block; width: 100%;\">\n </div>\n </div>\n </div>\n </div>\n <span class=\"scroll-to-top\">\n <button type=\"button\" class=\"btn btn-primary btn-icon-only\">\n <span class=\"rioglyph rioglyph-arrow-up\">\n </span>\n </button>\n </span>\n </div>\n</div>"
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }
105
+ ],
106
+ "see_also": []
107
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:56.977Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/supportMarker",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/supportmarker",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "7755419ab601fbc6d24054e50f3d234d791f49c41a6084423dd4532ee1d0aad4"
11
+ },
12
+ "title": "SupportMarker",
13
+ "lead": "You can add the support-marker class along with the data-support attribute to any HTML element - even divs wrapping around iframes, for example!",
14
+ "content": [
15
+ {
16
+ "heading": "SupportMarker",
17
+ "body": "By default, support markers are invisible. Adding the show-support-marker class to the html tag will cause all support markers to show up.\n\nYou can use the utility functions provided by the UIKIT for easily adding / removing that class. Either simply toggle support markers on and off with toggleSupportMarker, or manage the state whether to show support markers manually and use enableSupportMarker.",
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=\"space-y-25\"><button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">Toggle Support Markers</button><div class=\"support-marker\" data-support=\"LoremIpsum component\"><div class=\"expander-panel panel panel-default\" aria-label=\"expander panel\"><div class=\"panel-heading open\" aria-label=\"panel heading\"><span class=\"title\">Lorem Ipsum</span><span class=\"expander-icon rioglyph rioglyph-chevron-down\"></span></div><div class=\"collapse display-block width-100pct\" style=\"opacity: 1; height: auto;\"><div><div class=\"panel-body\"><div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet</div></div></div></div></div></div><div class=\"support-marker\" data-support=\"Widget: The Widget Name\nTeam: The Team Name \nSRC: https://uikit.developers.rio.cloud/#start/intro\"><iframe class=\"unstyled\" width=\"100%\" height=\"500\" src=\"https://uikit.developers.rio.cloud/#start/intro\"></iframe></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import React from 'react';\n\nimport ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';\nimport { toggleSupportMarker } from '@rio-cloud/rio-uikit/SupportMarker';\nimport Button from '@rio-cloud/rio-uikit/Button';\n\nexport default () => {\n const iFrameSrc = 'https://uikit.developers.rio.cloud/#start/intro';\n const iframeSupportData = `Widget: The Widget Name\\nTeam: The Team Name \\nSRC: ${iFrameSrc}`;\n\n return (\n <div className='space-y-25'>\n <Button onClick={toggleSupportMarker}>Toggle Support Markers</Button>\n\n <div className='support-marker' data-support='LoremIpsum component'>\n <ExpanderPanel title='Lorem Ipsum' bsStyle='default' open>\n <div>\n Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor et dolore\n magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et. Stet\n clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet\n </div>\n </ExpanderPanel>\n </div>\n\n <div className='support-marker' data-support={iframeSupportData}>\n <iframe className='unstyled' width='100%' height='500' src={iFrameSrc} />\n </div>\n </div>\n );\n};"
27
+ }
28
+ ]
29
+ },
30
+ {
31
+ "caption": "Example 2",
32
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"space-y-25\"><div class=\"uikit-switch\"><label class=\"switch-label label-position-right\"><input type=\"checkbox\" class=\"switch-input\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div><div>Show support markers</div></label></div><div class=\"support-marker\" data-support=\"LoremIpsum component\"><div class=\"expander-panel panel panel-default\" aria-label=\"expander panel\"><div class=\"panel-heading open\" aria-label=\"panel heading\"><span class=\"title\">Lorem Ipsum</span><span class=\"expander-icon rioglyph rioglyph-chevron-down\"></span></div><div class=\"collapse display-block width-100pct\" style=\"opacity: 1; height: auto;\"><div><div class=\"panel-body\"><div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet</div></div></div></div></div></div><div class=\"support-marker\" data-support=\"Widget: The Widget Name\nTeam: The Team Name \nSRC: https://uikit.developers.rio.cloud/#start/intro\"><iframe class=\"unstyled\" width=\"100%\" height=\"500\" src=\"https://uikit.developers.rio.cloud/#start/intro\"></iframe></div></div></div>",
33
+ "tabs": [
34
+ {
35
+ "label": "React",
36
+ "language": "tsx",
37
+ "code": "import React, { useEffect, useState } from 'react';\n\nimport ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';\nimport Switch from '@rio-cloud/rio-uikit/Switch';\nimport { enableSupportMarker } from '@rio-cloud/rio-uikit/SupportMarker';\n\nexport default () => {\n // you could, for example, populate this state from localStorage at startup\n const [showSupportMarker, setShowSupportMarker] = useState(false);\n\n useEffect(() => {\n enableSupportMarker(showSupportMarker);\n }, [showSupportMarker]);\n\n const iFrameSrc = 'https://uikit.developers.rio.cloud/#start/intro';\n const iframeSupportData = `Widget: The Widget Name\\nTeam: The Team Name \\nSRC: ${iFrameSrc}`;\n\n return (\n <div className='space-y-25'>\n <Switch onChange={setShowSupportMarker} checked={showSupportMarker} labelPosition='right'>\n <div>Show support markers</div>\n </Switch>\n\n <div className='support-marker' data-support='LoremIpsum component'>\n <ExpanderPanel title='Lorem Ipsum' bsStyle='default' open>\n <div>\n Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor et dolore\n magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et. Stet\n clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet\n </div>\n </ExpanderPanel>\n </div>\n\n <div className='support-marker' data-support={iframeSupportData}>\n <iframe className='unstyled' width='100%' height='500' src={iFrameSrc} />\n </div>\n </div>\n );\n};"
38
+ }
39
+ ]
40
+ }
41
+ ]
42
+ }
43
+ ],
44
+ "see_also": []
45
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:58.390Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/svgImage",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/svgimage",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "1d5d548e6afdc2997d7d9deefe0b75aa011abc4326f5011b7ff3d2444973f7a6"
11
+ },
12
+ "title": "SvgImage",
13
+ "lead": "This component helps to render SVG images hosted on RIO's CDN and lets you customize the colors for various brand themes. It uses the defined UIKIT CSS variables to automatically adapt to dark mode. When customizing colors, make sure to use existing CSS color variable names.",
14
+ "content": [
15
+ {
16
+ "heading": "SvgImage",
17
+ "body": "You can find an overview of all available SVG images here: https://cdn.rio.cloud/riosvg/index.html",
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-wrap gap-25\"></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import SvgImage from '@rio-cloud/rio-uikit/SvgImage';\n\nexport default () => (\n <div className='display-flex flex-wrap gap-25'>\n <SvgImage name='abstract-product/product' size={120} />\n <SvgImage name='abstract-product/abstract-component' size={120} />\n <SvgImage name='delivery/package' size={120} />\n <SvgImage\n name='abstract-product/extendable'\n size={120}\n colorMap={{\n mainStrokeColor: 'gray-dark',\n }}\n />\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"display-flex flex-wrap gap-25\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:serif=\"http://www.serif.com/\" width=\"120\" height=\"120\" viewBox=\"0 0 250 250\" version=\"1.1\" xml:space=\"preserve\" class=\"\" style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-linecap: round; stroke-miterlimit: 2;\">\n <g id=\"product\" transform=\"matrix(3.65079,0,0,3.65085,5.02397,-234.3)\">\n <g transform=\"matrix(1.14763,0,0,1.14763,-0.201218,-9.87871)\">\n <path d=\"M49.363,90.916C49.363,104.17 38.618,114.915 25.363,114.915C12.108,114.915 1.363,104.17 1.363,90.916C1.363,77.661 12.108,66.916 25.363,66.916C38.618,66.916 49.363,77.661 49.363,90.916Z\" style=\"fill: var(--gray-lighter); fill-rule: nonzero;\">\n </path>\n </g>\n <path d=\"M18.363,104.915L18.363,120.915L37.363,129.915L56.363,120.915L56.363,104.915L18.363,104.915Z\" style=\"fill: var(--color-highlight-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M56.363,107.915L56.363,120.915L37.363,129.915L18.363,120.915L18.363,107.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.3px;\">\n </path>\n <path d=\"M37.363,105.915L37.363,129.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.3px;\">\n </path>\n <path d=\"M10.363,103.915L29.363,112.915L37.363,105.915L37.363,104.915L18.363,95.916L10.363,102.915L10.363,103.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero; stroke: var(--brand-info); stroke-width: 2.3px; stroke-linecap: butt; stroke-linejoin: round;\">\n </path>\n <path d=\"M10.363,103.915L29.363,112.915L37.363,105.915L37.363,104.915L18.363,95.916L10.363,102.915L10.363,103.915Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.3px;\">\n </path>\n <path d=\"M64.363,103.915L45.363,112.915L37.363,105.915L37.363,104.915L56.363,95.916L64.363,102.915L64.363,103.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero; stroke: var(--brand-info); stroke-width: 2.3px; stroke-linecap: butt; stroke-linejoin: round;\">\n </path>\n <path d=\"M64.363,103.915L45.363,112.915L37.363,105.915L37.363,104.915L56.363,95.916L64.363,102.915L64.363,103.915Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.3px;\">\n </path>\n <path d=\"M10.363,87.916L29.363,78.916L37.363,85.916L37.363,86.916L18.363,95.916L10.363,88.916L10.363,87.916Z\" style=\"fill: var(--color-white); fill-rule: nonzero; stroke: var(--brand-info); stroke-width: 2.3px; stroke-linecap: butt; stroke-linejoin: round;\">\n </path>\n <path d=\"M10.363,87.916L29.363,78.916L37.363,85.916L37.363,86.916L18.363,95.916L10.363,88.916L10.363,87.916Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.3px;\">\n </path>\n <path d=\"M64.363,87.916L45.363,78.916L37.363,85.916L37.363,86.916L56.363,95.916L64.363,88.916L64.363,87.916Z\" style=\"fill: var(--color-white); fill-rule: nonzero; stroke: var(--brand-info); stroke-width: 2.3px; stroke-linecap: butt; stroke-linejoin: round;\">\n </path>\n <path d=\"M64.363,87.916L45.363,78.916L37.363,85.916L37.363,86.916L56.363,95.916L64.363,88.916L64.363,87.916Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.3px;\">\n </path>\n <path d=\"M37.363,73.916L35.363,75.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M42.363,68.916L40.363,70.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M40.363,73.916L42.363,75.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M35.363,68.916L37.363,70.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M20.363,72.916L20.363,74.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M20.363,76.916L20.363,78.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M19.363,75.916L17.363,75.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M23.363,75.916L21.363,75.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M10.363,111.915L10.363,113.915\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M10.363,115.915L10.363,117.915\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M9.363,114.915L7.363,114.915\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M13.363,114.915L11.363,114.915\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M51.363,66.916L51.363,68.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M51.363,70.916L51.363,72.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M50.363,69.916L48.363,69.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n <path d=\"M54.363,69.916L52.363,69.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.3px; stroke-linecap: butt;\">\n </path>\n </g>\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:serif=\"http://www.serif.com/\" width=\"120\" height=\"120\" viewBox=\"0 0 250 250\" version=\"1.1\" xml:space=\"preserve\" class=\"\" style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-miterlimit: 2;\">\n <g id=\"abstract-product\" transform=\"matrix(3.96558,0,0,3.96558,-877.753,-267.258)\">\n <path d=\"M273.364,103.915C273.364,116.618 263.066,126.915 250.364,126.915C237.662,126.915 227.364,116.618 227.364,103.915C227.364,91.213 237.662,80.916 250.364,80.916C263.066,80.916 273.364,91.213 273.364,103.915Z\" style=\"fill: var(--gray-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M229.364,79.916L229.364,85.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.1px;\">\n </path>\n <path d=\"M232.364,82.916L226.364,82.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.1px;\">\n </path>\n <path d=\"M240.364,69.916L240.364,75.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.1px;\">\n </path>\n <path d=\"M243.364,72.916L237.364,72.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.1px;\">\n </path>\n <path d=\"M269.133,103.237L263.251,106.027L262.929,106.149C262.512,105.406 261.802,104.915 260.814,104.915L254.814,104.915C253.439,104.915 251.348,102.915 249.692,102.915L243.814,102.915C241.397,102.915 239.238,104.894 238.021,106.027C236.141,107.907 232.364,111.703 232.364,111.703L241.556,120.905C243.059,119.403 244.829,117.915 246.364,117.915L258.364,117.915C260.237,117.915 262.101,117.34 263.425,116.016L273.376,106.065L276.205,98.995C274.481,97.271 270.547,99.113 269.133,103.237Z\" style=\"fill: var(--color-white); fill-rule: nonzero;\">\n </path>\n <path d=\"M250.364,110.915L260.814,110.915C262.471,110.915 263.364,109.61 263.364,107.954L263.364,107.935C263.364,106.277 262.471,104.915 260.814,104.915L254.814,104.915C253.439,104.915 251.348,102.915 249.692,102.915L243.814,102.915C241.397,102.915 239.238,104.894 238.021,106.027C236.141,107.907 232.364,111.703 232.364,111.703L241.556,120.905C243.059,119.403 244.829,117.915 246.364,117.915L258.364,117.915C260.237,117.915 262.101,117.34 263.425,116.016L273.376,106.065L276.205,98.995C274.481,97.271 270.547,99.113 269.133,103.237L263.251,106.027\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.1px; stroke-linecap: round;\">\n </path>\n <path d=\"M231.364,108.915L225.364,114.915L238.364,127.915L244.363,121.915L231.364,108.915Z\" style=\"fill: var(--color-highlight-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M231.364,108.915L225.364,114.915L238.364,127.915L244.363,121.915L231.364,108.915Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.1px; stroke-linejoin: round;\">\n </path>\n <path d=\"M232.911,116.368L230.911,114.368\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.1px; stroke-linecap: round;\">\n </path>\n <path d=\"M266.138,82.263L257.884,75.646C257.627,75.44 257.187,75.342 256.808,75.479L247.08,79.268C246.64,79.355 246.28,79.7 246.21,80.169L244.687,90.446C244.623,90.904 244.7,91.377 245.031,91.643L253.286,98.26C253.603,98.515 253.846,98.674 254.163,98.552L264.147,94.671C264.685,94.462 264.911,94.235 264.984,93.74L266.536,83.275C266.582,82.962 266.428,82.495 266.138,82.263Z\" style=\"fill: var(--color-highlight-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M266.138,82.263L257.884,75.646C257.627,75.44 257.187,75.342 256.808,75.479L247.08,79.268C246.64,79.355 246.28,79.7 246.21,80.169L244.687,90.446C244.623,90.904 244.7,91.377 245.031,91.643L253.286,98.26C253.603,98.515 253.846,98.674 254.163,98.552L264.147,94.671C264.685,94.462 264.911,94.235 264.984,93.74L266.536,83.275C266.582,82.962 266.428,82.495 266.138,82.263Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.1px;\">\n </path>\n <path d=\"M256.605,78.558L255.223,86.846L248.116,89.437\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.1px; stroke-linecap: round;\">\n </path>\n <path d=\"M255.223,86.846L262.06,92.26\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.1px; stroke-linecap: round;\">\n </path>\n <path d=\"M277.364,87.916L277.364,93.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.1px;\">\n </path>\n <path d=\"M280.364,90.916L274.364,90.916\" style=\"fill: none; stroke: var(--gray); stroke-width: 2.1px;\">\n </path>\n </g>\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:serif=\"http://www.serif.com/\" width=\"120\" height=\"120\" viewBox=\"0 0 250 250\" version=\"1.1\" xml:space=\"preserve\" class=\"\" style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-miterlimit: 2;\">\n <g transform=\"matrix(3.83333,0,0,3.83333,-417.263,-254.174)\">\n <g id=\"delivery\">\n <g id=\"package\">\n <path d=\"M171.46,105.915C171.46,117.513 162.058,126.915 150.46,126.915C138.862,126.915 129.46,117.513 129.46,105.915C129.46,94.317 138.862,84.915 150.46,84.915C162.058,84.915 171.46,94.317 171.46,105.915Z\" style=\"fill: var(--gray-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M135.404,124.915L159.46,112.378L159.46,86.048L135.404,73.915L111.46,86.048L111.46,112.378L135.404,124.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero;\">\n </path>\n <path d=\"M111.46,86.048L135.46,98.585L135.46,124.915L111.46,112.378L111.46,86.048Z\" style=\"fill: var(--gray-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M157.46,75.915L157.46,70.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M161.025,76.556L163.407,72.431\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M163.713,79.244L167.838,76.862\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M164.46,82.915L169.46,82.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M153.681,76.556L151.299,72.431\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M135.404,124.915L159.46,112.378L159.46,86.048L135.404,73.915L111.46,86.048L111.46,112.378L135.404,124.915Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M111.46,86.048L135.46,98.585L159.572,86.048\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M135.46,98.915L135.46,124.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M143.798,78.111L120.46,90.915L120.46,95.915L121.478,96.036L123.203,97.922L125.022,98.29L126.46,99.645L126.46,93.915L150.16,81.312L143.798,78.111Z\" style=\"fill: var(--color-highlight-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M143.798,78.111L120.46,90.915L120.46,95.915L121.478,96.036L123.203,97.922L125.022,98.29L126.46,99.645L126.46,93.915L150.16,81.312L143.798,78.111Z\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M154.528,108.532L142.46,114.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M152.46,95.915L152.46,105.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M149.972,100.321L152.46,96.245L154.948,97.932\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M144.46,99.915L144.46,109.915\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n <path d=\"M141.972,104.321L144.46,100.245L146.948,101.931\" style=\"fill: none; stroke: var(--brand-info); stroke-width: 2.17px;\">\n </path>\n </g>\n </g>\n </g>\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:serif=\"http://www.serif.com/\" width=\"120\" height=\"120\" viewBox=\"0 0 250 250\" version=\"1.1\" xml:space=\"preserve\" class=\"\" style=\"fill-rule: evenodd; clip-rule: evenodd; stroke-linecap: round; stroke-miterlimit: 2;\">\n <g transform=\"matrix(4.02584,0,0,3.83333,-886.948,-649.008)\">\n <path d=\"M274.364,194.915C274.364,207.618 264.066,217.915 251.364,217.915C238.662,217.915 228.364,207.618 228.364,194.915C228.364,182.212 238.662,171.915 251.364,171.915C264.066,171.915 274.364,182.212 274.364,194.915Z\" style=\"fill: var(--gray-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M232.364,197.915L251.364,188.915L270.364,197.915L251.364,206.915L232.364,197.915Z\" style=\"fill: var(--gray-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M251.364,207.915L243.364,214.915L232.364,209.705L232.364,222.915L251.364,231.915L270.364,222.915L270.364,209.705L259.364,214.915L251.364,207.915Z\" style=\"fill: var(--color-highlight-lighter); fill-rule: nonzero;\">\n </path>\n <path d=\"M232.364,220.915L232.364,209.915\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px;\">\n </path>\n <path d=\"M251.364,231.915L238.441,225.793\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px;\">\n </path>\n <path d=\"M251.364,207.915L251.364,231.915\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px;\">\n </path>\n <path d=\"M224.364,205.915L243.364,214.915L251.364,207.915L251.364,206.915L232.364,197.915L224.364,204.915L224.364,205.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero;\">\n </path>\n <path d=\"M224.364,205.915L243.364,214.915L251.364,207.915L251.364,206.915L232.364,197.915L224.364,204.915L224.364,205.915Z\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M279.364,192.915L260.364,183.915L251.364,187.915L251.364,188.915L270.364,197.915L279.364,193.915L279.364,192.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero;\">\n </path>\n <path d=\"M223.364,192.915L242.364,183.915L251.364,187.915L251.364,188.915L232.364,197.915L223.364,193.915L223.364,192.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero;\">\n </path>\n <path d=\"M248.333,190.351L232.364,197.915L223.364,193.915L223.364,192.915L242.364,183.915L248.392,186.594\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M254.394,190.351L270.364,197.915L279.364,193.915L279.364,192.915L260.364,183.915L254.335,186.594\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M242.364,220.567L222.798,229.698\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M229.157,231.002L222.798,229.698L225.973,223.853\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M270.364,220.915L270.364,209.915\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px;\">\n </path>\n <path d=\"M251.364,231.915L264.287,225.793\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px;\">\n </path>\n <path d=\"M278.364,205.915L259.364,214.915L251.364,207.915L251.364,206.915L270.364,197.915L278.364,204.915L278.364,205.915Z\" style=\"fill: var(--color-white); fill-rule: nonzero;\">\n </path>\n <path d=\"M278.364,205.915L259.364,214.915L251.364,207.915L251.364,206.915L270.364,197.915L278.364,204.915L278.364,205.915Z\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M260.364,220.567L279.929,229.698\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M273.571,231.002L279.929,229.698L276.754,223.853\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M247.451,179.741L251.364,174.524L255.277,179.741\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n <path d=\"M251.364,175.828L251.364,198.002\" style=\"fill: none; stroke: var(--gray-dark); stroke-width: 2.12px; stroke-linejoin: round;\">\n </path>\n </g>\n </svg>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "name",
43
+ "type": "string",
44
+ "default": "",
45
+ "description": "The name of the image file without extension."
46
+ },
47
+ {
48
+ "name": "size",
49
+ "type": "number",
50
+ "default": "150",
51
+ "description": "The height and width of the SVG image in pixels."
52
+ },
53
+ {
54
+ "name": "baseUrl",
55
+ "type": "string",
56
+ "default": "https://cdn.rio.cloud/riosvg",
57
+ "description": "The CDN base URL where the images are located."
58
+ },
59
+ {
60
+ "name": "colorMap",
61
+ "type": "ColorOverridesMap",
62
+ "default": "",
63
+ "description": "Customize color using the color map and define the CSS variable name that shall be used."
64
+ },
65
+ {
66
+ "name": "className",
67
+ "type": "string",
68
+ "default": "",
69
+ "description": "Additional class names added to the SVG element."
70
+ }
71
+ ]
72
+ }
73
+ ]
74
+ }
75
+ ]
76
+ }
77
+ ]
78
+ }
79
+ ],
80
+ "see_also": []
81
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:16.765Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/switch",
5
+ "category": "Components",
6
+ "section": "Interaction",
7
+ "slug": "components/switch",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "598a2261b158b064e5c1e344d04fc02320ed5cd3fa99264c108707df8cfe4edc"
11
+ },
12
+ "title": "Switch",
13
+ "lead": null,
14
+ "content": [
15
+ {
16
+ "heading": "Switch",
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><label>Switch</label><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div></div><hr><label>Disabled Switch &amp; disabled active Switch</label><div class=\"display-flex\"><div class=\"margin-right-10\"><div class=\"uikit-switch\"><label class=\"switch-label cursor-not-allowed\"><input type=\"checkbox\" class=\"switch-input\" disabled=\"\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div></div><div><div class=\"uikit-switch\"><label class=\"switch-label cursor-not-allowed\"><input type=\"checkbox\" class=\"switch-input\" disabled=\"\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div></div></div><hr><label>Colored Switch</label><div class=\"display-flex flex-wrap gap-5\"><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-secondary); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-info); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-success); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-warning); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-danger); min-width: 40px;\"><div class=\"switch-handle\"></div></div></label></div></div><hr><label>Switch with label</label><div><div class=\"uikit-switch\"><label class=\"switch-label label-position-right\"><input type=\"checkbox\" class=\"switch-input\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div><span>Label</span></label></div></div><hr><label>Switch with label left</label><div><div class=\"uikit-switch\"><label class=\"switch-label label-position-left\"><input type=\"checkbox\" class=\"switch-input\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-handle\"></div></div><span>Label</span></label></div></div><hr><label>Switch with text and min-width</label><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 50px;\"><div class=\"switch-text\" data-on=\"ON\" data-off=\"OFF\"></div><div class=\"switch-handle\"></div></div></label></div></div><hr><label>Switch with single text and label</label><div><div class=\"uikit-switch\"><label class=\"switch-label label-position-right\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div><span>Beta feature toggle</span></label></div></div><hr><label>Switch in panels</label><div class=\"display-grid grid-cols-3 gap-15\"><div class=\"panel panel-default\"><div class=\"panel-heading display-flex justify-content-end\"><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div></div><div class=\"panel-body\"></div></div><div class=\"panel panel-primary\"><div class=\"panel-heading display-flex justify-content-end\"><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div></div><div class=\"panel-body\"></div></div><div class=\"panel panel-success\"><div class=\"panel-heading display-flex justify-content-end\"><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-success); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div></div><div class=\"panel-body\"></div></div><div class=\"panel panel-warning\"><div class=\"panel-heading display-flex justify-content-end\"><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-warning); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div></div><div class=\"panel-body\"></div></div><div class=\"panel panel-danger\"><div class=\"panel-heading display-flex justify-content-end\"><div><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-danger); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div></div><div class=\"panel-body\"></div></div></div><label class=\"margin-top-25\">Switch in alerts</label><div class=\"display-grid grid-cols-3 gap-15\"><div class=\"alert alert-warning\"><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-warning); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div><div class=\"alert alert-danger\"><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-danger); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div><div class=\"alert alert-info\"><div class=\"uikit-switch\"><label class=\"switch-label\"><input type=\"checkbox\" class=\"switch-input\" checked=\"\"><div class=\"switch-content\" style=\"color: var(--brand-info); min-width: 40px;\"><div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\"></div><div class=\"switch-handle\"></div></div></label></div></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import { useState } from 'react';\n\nimport Switch from '@rio-cloud/rio-uikit/Switch';\nimport Notification from '@rio-cloud/rio-uikit/Notification';\n\nexport default () => {\n const [switchStates, setSwitchStates] = useState<{\n [key: string]: boolean;\n }>({\n switch1: true,\n switch2: true,\n switch3: false,\n switch4: false,\n switch5: false,\n switch6: true,\n });\n\n const handleChange = (key: string) => {\n const newState = !switchStates[key];\n Notification.info(`Checked: ${newState}`);\n\n setSwitchStates({\n ...switchStates,\n [key]: newState,\n });\n };\n\n const { switch1, switch2, switch3, switch4, switch5, switch6 } = switchStates;\n\n return (\n <div>\n <label>Switch</label>\n <div>\n <Switch onChange={() => handleChange('switch1')} checked={switch1} />\n </div>\n <hr />\n <label>Disabled Switch & disabled active Switch</label>\n <div className='display-flex'>\n <div className='margin-right-10'>\n <Switch disabled />\n </div>\n <div>\n <Switch disabled checked />\n </div>\n </div>\n <hr />\n <label>Colored Switch</label>\n <div className='display-flex flex-wrap gap-5'>\n <Switch onChange={() => handleChange('switch2')} checked={switch2} color='secondary' />\n <Switch onChange={() => handleChange('switch2')} checked={switch2} color='info' />\n <Switch onChange={() => handleChange('switch2')} checked={switch2} color='success' />\n <Switch onChange={() => handleChange('switch2')} checked={switch2} color='warning' />\n <Switch onChange={() => handleChange('switch2')} checked={switch2} color='danger' />\n </div>\n <hr />\n <label>Switch with label</label>\n <div>\n <Switch onChange={() => handleChange('switch3')} checked={switch3} labelPosition='right'>\n <span>Label</span>\n </Switch>\n </div>\n <hr />\n <label>Switch with label left</label>\n <div>\n <Switch onChange={() => handleChange('switch4')} checked={switch4} labelPosition='left'>\n <span>Label</span>\n </Switch>\n </div>\n <hr />\n <label>Switch with text and min-width</label>\n <div>\n <Switch\n onChange={() => handleChange('switch5')}\n checked={switch5}\n minWidth={50}\n enabledText='ON'\n disabledText='OFF'\n />\n </div>\n <hr />\n <label>Switch with single text and label</label>\n <div>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n labelPosition='right'\n >\n <span>Beta feature toggle</span>\n </Switch>\n </div>\n <hr />\n <label>Switch in panels</label>\n <div className='display-grid grid-cols-3 gap-15'>\n <div className='panel panel-default'>\n <div className='panel-heading display-flex justify-content-end'>\n <div>\n <Switch onChange={() => handleChange('switch6')} checked={switch6} enabledText='Beta' />\n </div>\n </div>\n <div className='panel-body' />\n </div>\n <div className='panel panel-primary'>\n <div className='panel-heading display-flex justify-content-end'>\n <div>\n <Switch onChange={() => handleChange('switch6')} checked={switch6} enabledText='Beta' />\n </div>\n </div>\n <div className='panel-body' />\n </div>\n <div className='panel panel-success'>\n <div className='panel-heading display-flex justify-content-end'>\n <div>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n color='success'\n />\n </div>\n </div>\n <div className='panel-body' />\n </div>\n <div className='panel panel-warning'>\n <div className='panel-heading display-flex justify-content-end'>\n <div>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n color='warning'\n />\n </div>\n </div>\n <div className='panel-body' />\n </div>\n <div className='panel panel-danger'>\n <div className='panel-heading display-flex justify-content-end'>\n <div>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n color='danger'\n />\n </div>\n </div>\n <div className='panel-body' />\n </div>\n </div>\n <label className='margin-top-25'>Switch in alerts</label>\n <div className='display-grid grid-cols-3 gap-15'>\n <div className='alert alert-warning'>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n color='warning'\n />\n </div>\n <div className='alert alert-danger'>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n color='danger'\n />\n </div>\n <div className='alert alert-info'>\n <Switch\n onChange={() => handleChange('switch6')}\n checked={switch6}\n enabledText='Beta'\n color='info'\n />\n </div>\n </div>\n </div>\n );\n};"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div>\n <label>Switch</label>\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n <hr>\n <label>Disabled Switch &amp; disabled active Switch</label>\n <div class=\"display-flex\">\n <div class=\"margin-right-10\">\n <div class=\"uikit-switch\">\n <label class=\"switch-label cursor-not-allowed\">\n <input type=\"checkbox\" class=\"switch-input\" disabled=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label cursor-not-allowed\">\n <input type=\"checkbox\" class=\"switch-input\" disabled=\"\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n </div>\n <hr>\n <label>Colored Switch</label>\n <div class=\"display-flex flex-wrap gap-5\">\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-secondary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-info); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-success); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-warning); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-danger); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n <hr>\n <label>Switch with label</label>\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label label-position-right\">\n <input type=\"checkbox\" class=\"switch-input\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n <span>Label</span>\n </label>\n </div>\n </div>\n <hr>\n <label>Switch with label left</label>\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label label-position-left\">\n <input type=\"checkbox\" class=\"switch-input\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-handle\">\n </div>\n </div>\n <span>Label</span>\n </label>\n </div>\n </div>\n <hr>\n <label>Switch with text and min-width</label>\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 50px;\">\n <div class=\"switch-text\" data-on=\"ON\" data-off=\"OFF\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n <hr>\n <label>Switch with single text and label</label>\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label label-position-right\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n <span>Beta feature toggle</span>\n </label>\n </div>\n </div>\n <hr>\n <label>Switch in panels</label>\n <div class=\"display-grid grid-cols-3 gap-15\">\n <div class=\"panel panel-default\">\n <div class=\"panel-heading display-flex justify-content-end\">\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n </div>\n <div class=\"panel-body\">\n </div>\n </div>\n <div class=\"panel panel-primary\">\n <div class=\"panel-heading display-flex justify-content-end\">\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-primary); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n </div>\n <div class=\"panel-body\">\n </div>\n </div>\n <div class=\"panel panel-success\">\n <div class=\"panel-heading display-flex justify-content-end\">\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-success); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n </div>\n <div class=\"panel-body\">\n </div>\n </div>\n <div class=\"panel panel-warning\">\n <div class=\"panel-heading display-flex justify-content-end\">\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-warning); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n </div>\n <div class=\"panel-body\">\n </div>\n </div>\n <div class=\"panel panel-danger\">\n <div class=\"panel-heading display-flex justify-content-end\">\n <div>\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-danger); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n </div>\n <div class=\"panel-body\">\n </div>\n </div>\n </div>\n <label class=\"margin-top-25\">Switch in alerts</label>\n <div class=\"display-grid grid-cols-3 gap-15\">\n <div class=\"alert alert-warning\">\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-warning); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n <div class=\"alert alert-danger\">\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-danger); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\n </div>\n </div>\n <div class=\"alert alert-info\">\n <div class=\"uikit-switch\">\n <label class=\"switch-label\">\n <input type=\"checkbox\" class=\"switch-input\" checked=\"\">\n <div class=\"switch-content\" style=\"color: var(--brand-info); min-width: 40px;\">\n <div class=\"switch-text\" data-on=\"Beta\" data-off=\"Beta\">\n </div>\n <div class=\"switch-handle\">\n </div>\n </div>\n </label>\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": "keyName",
43
+ "type": "String",
44
+ "default": "",
45
+ "description": "Optional key that is used as key and as the id on the internal input."
46
+ },
47
+ {
48
+ "name": "checked",
49
+ "type": "Boolean",
50
+ "default": "false",
51
+ "description": "Set active / inactive state."
52
+ },
53
+ {
54
+ "name": "disabled",
55
+ "type": "Boolean",
56
+ "default": "false",
57
+ "description": "Disables the component."
58
+ },
59
+ {
60
+ "name": "onChange",
61
+ "type": "Function",
62
+ "default": "",
63
+ "description": "Callback function triggered when clicking the button."
64
+ },
65
+ {
66
+ "name": "minWidth",
67
+ "type": "Number",
68
+ "default": "",
69
+ "description": "The min-width of the switch."
70
+ },
71
+ {
72
+ "name": "enabledText",
73
+ "type": "String",
74
+ "default": "",
75
+ "description": "ON text"
76
+ },
77
+ {
78
+ "name": "disabledText",
79
+ "type": "String",
80
+ "default": "",
81
+ "description": "OFF text"
82
+ },
83
+ {
84
+ "name": "className",
85
+ "type": "string",
86
+ "default": "",
87
+ "description": "Additional class names added"
88
+ },
89
+ {
90
+ "name": "labelPosition",
91
+ "type": "String",
92
+ "default": "",
93
+ "description": "Possible values are: left, right"
94
+ },
95
+ {
96
+ "name": "color",
97
+ "type": "String",
98
+ "default": "'primary'",
99
+ "description": "Defines the color of the switch. Possible values are:'primary', 'secondary', 'info', 'success', 'warning' or 'danger'."
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }
105
+ ]
106
+ }
107
+ ]
108
+ }
109
+ ],
110
+ "see_also": []
111
+ }