@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,313 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:52.292Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/listMenu",
5
+ "category": "Components",
6
+ "section": "Misc",
7
+ "slug": "components/listmenu",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "a0a7fdd09e4df273b9c1d1fca3714cf5926d42c26bbc18f4eb0a95189c61500b"
11
+ },
12
+ "title": "ListMenu",
13
+ "lead": "A simple list menu that supports grouping and filter.",
14
+ "content": [
15
+ {
16
+ "heading": "ListMenu",
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=\"h5 margin-bottom-20\">ListMenu (default)</div><div class=\"ListMenu \"><ul class=\"ListMenuGroup \"><li class=\"ListMenuHeader\"><span class=\"\">Group</span></li><li class=\"\"><span class=\"active\" data-key=\"0\">Lorem</span></li><li class=\"disabled\"><span class=\"\" data-key=\"1\">Disabled Ipsum</span></li><li class=\"\"><span class=\"\" data-key=\"2\">Dolor</span></li><li class=\"\"><span class=\"\" data-key=\"3\">Sit amet</span></li><li class=\"\"><span>No Link Sample</span></li></ul></div><hr><div class=\"h5 margin-bottom-20\">ListMenu with optional name filter</div><div class=\"ListMenu \"><div class=\"form-group margin-bottom-5 padding-left-15 padding-right-15 padding-bottom-15 position-sticky top-0 z-index-1\"><div class=\"input-group width-100pct\"><span class=\"input-group-addon\"><span class=\"rioglyph rioglyph-search\" aria-hidden=\"true\"></span></span><div class=\"ClearableInput input-group\"><input placeholder=\"Filter by name\" class=\"form-control\" type=\"text\" tabindex=\"0\" value=\"\"><span class=\"clearButton hide\"><span class=\"clearButtonIcon rioglyph rioglyph-remove-sign\"></span></span></div></div></div><ul class=\"ListMenuGroup \"><li class=\"ListMenuHeader\"><span class=\"\">Group</span><span class=\"badge badge-muted\">5 items</span></li><li class=\"\"><span class=\"active\" data-key=\"0\">Lorem</span></li><li class=\"disabled\"><span class=\"\" data-key=\"1\">Disabled Ipsum</span></li><li class=\"\"><span class=\"\" data-key=\"2\">Dolor</span></li><li class=\"\"><span class=\"\" data-key=\"3\">Sit amet</span></li><li class=\"\"><span>No Link Sample</span></li></ul></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import { useState, type MouseEvent, type MouseEventHandler } from 'react';\n\nimport ListMenu, { type ListMenuItem } from '@rio-cloud/rio-uikit/ListMenu';\n\nconst menuItems = (activeItem: string, setActiveItem: MouseEventHandler<HTMLSpanElement>): ListMenuItem[] => [\n {\n group: 'Group',\n navItems: [\n {\n key: 'Lorem',\n item: (\n <span className={activeItem === '0' ? 'active' : ''} data-key='0' onClick={setActiveItem}>\n Lorem\n </span>\n ),\n },\n {\n key: 'Lipsum',\n disabled: true,\n item: (\n <span className={activeItem === '1' ? 'active' : ''} data-key='1' onClick={setActiveItem}>\n Disabled Ipsum\n </span>\n ),\n },\n {\n key: 'Dolor',\n item: (\n <span className={activeItem === '2' ? 'active' : ''} data-key='2' onClick={setActiveItem}>\n Dolor\n </span>\n ),\n },\n {\n key: 'Sit amet',\n item: (\n <span className={activeItem === '3' ? 'active' : ''} data-key='3' onClick={setActiveItem}>\n Sit amet\n </span>\n ),\n },\n {\n key: 'No link',\n item: <span>No Link Sample</span>,\n },\n ],\n },\n];\n\nexport default () => {\n const [activeItem, setActiveItem] = useState('0');\n\n const onItemClick = (event: MouseEvent) => {\n const key = (event.target as HTMLSpanElement).getAttribute('data-key') as string;\n setActiveItem(key);\n };\n\n return (\n <div>\n <div className='h5 margin-bottom-20'>ListMenu (default)</div>\n <ListMenu menuItems={menuItems(activeItem, onItemClick)} />\n <hr />\n <div className='h5 margin-bottom-20'>ListMenu with optional name filter</div>\n <ListMenu\n menuItems={menuItems(activeItem, onItemClick).map(item => ({\n ...item,\n badge: '5 items',\n badgeType: 'muted',\n }))}\n enableFilter\n focusFilter\n filterPlaceholder='Filter by name'\n notFoundMessage='Nothing found'\n />\n </div>\n );\n};"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div>\n <div class=\"h5 margin-bottom-20\">ListMenu (default)</div>\n <div class=\"ListMenu \">\n <ul class=\"ListMenuGroup \">\n <li class=\"ListMenuHeader\">\n <span class=\"\">Group</span>\n </li>\n <li class=\"\">\n <span class=\"active\" data-key=\"0\">Lorem</span>\n </li>\n <li class=\"disabled\">\n <span class=\"\" data-key=\"1\">Disabled Ipsum</span>\n </li>\n <li class=\"\">\n <span class=\"\" data-key=\"2\">Dolor</span>\n </li>\n <li class=\"\">\n <span class=\"\" data-key=\"3\">Sit amet</span>\n </li>\n <li class=\"\">\n <span>No Link Sample</span>\n </li>\n </ul>\n </div>\n <hr>\n <div class=\"h5 margin-bottom-20\">ListMenu with optional name filter</div>\n <div class=\"ListMenu \">\n <div class=\"form-group margin-bottom-5 padding-left-15 padding-right-15 padding-bottom-15 position-sticky top-0 z-index-1\">\n <div class=\"input-group width-100pct\">\n <span class=\"input-group-addon\">\n <span class=\"rioglyph rioglyph-search\" aria-hidden=\"true\">\n </span>\n </span>\n <div class=\"ClearableInput input-group\">\n <input placeholder=\"Filter by name\" class=\"form-control\" type=\"text\" tabindex=\"0\" value=\"\">\n <span class=\"clearButton hide\">\n <span class=\"clearButtonIcon rioglyph rioglyph-remove-sign\">\n </span>\n </span>\n </div>\n </div>\n </div>\n <ul class=\"ListMenuGroup \">\n <li class=\"ListMenuHeader\">\n <span class=\"\">Group</span>\n <span class=\"badge badge-muted\">5 items</span>\n </li>\n <li class=\"\">\n <span class=\"active\" data-key=\"0\">Lorem</span>\n </li>\n <li class=\"disabled\">\n <span class=\"\" data-key=\"1\">Disabled Ipsum</span>\n </li>\n <li class=\"\">\n <span class=\"\" data-key=\"2\">Dolor</span>\n </li>\n <li class=\"\">\n <span class=\"\" data-key=\"3\">Sit amet</span>\n </li>\n <li class=\"\">\n <span>No Link Sample</span>\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": "menuItems",
43
+ "type": "Array of Objects",
44
+ "default": "",
45
+ "description": "List of menu item groups to be shown."
46
+ },
47
+ {
48
+ "name": "└group",
49
+ "type": "String | Node",
50
+ "default": "",
51
+ "description": "The optional group header to be shown. This can also be a component such as aFormattedMessage."
52
+ },
53
+ {
54
+ "name": "└badge",
55
+ "type": "String | Node",
56
+ "default": "",
57
+ "description": "The optional badge displayed alongside the group or nav items. This can be a string or a React node for additional flexibility."
58
+ },
59
+ {
60
+ "name": "└badgeType",
61
+ "type": "\"muted\" | \"success\" | \"info\" | \"warning\" | \"danger\"",
62
+ "default": "",
63
+ "description": "Determines the visual style of the badge. Available types include:muted, success, info, warning, and danger."
64
+ },
65
+ {
66
+ "name": "└groupNavItem",
67
+ "type": "String | Node",
68
+ "default": "",
69
+ "description": "The optional group header link to be shown. This can be a link component such asNavLink orLink. This way, the header can be a link itself. In this case, the propgroupcan be omitted."
70
+ },
71
+ {
72
+ "name": "└navItems",
73
+ "type": "Array of Objects",
74
+ "default": "",
75
+ "description": "The list of all menu items of a group."
76
+ },
77
+ {
78
+ "name": "└navItems.key",
79
+ "type": "String",
80
+ "default": "",
81
+ "description": "The name or key of the menu nav item. This key will be used for filtering, hence it should match the translated menu item name."
82
+ },
83
+ {
84
+ "name": "└navItems.item",
85
+ "type": "Node",
86
+ "default": "",
87
+ "description": "The menu nav item itself. This can be a simple<a>, <NavLink>, <Link> or a <span> or even a <FormattedMessage>"
88
+ },
89
+ {
90
+ "name": "└navItems.disabled",
91
+ "type": "Boolean",
92
+ "default": "false",
93
+ "description": "Disables the list item."
94
+ },
95
+ {
96
+ "name": "enableFilter",
97
+ "type": "Boolean",
98
+ "default": "false",
99
+ "description": "Enables the filter."
100
+ },
101
+ {
102
+ "name": "focusFilter",
103
+ "type": "Boolean",
104
+ "default": "false",
105
+ "description": "Focus the filter input."
106
+ },
107
+ {
108
+ "name": "filterKey",
109
+ "type": "String",
110
+ "default": "key",
111
+ "description": "Define the attribute key for filter for."
112
+ },
113
+ {
114
+ "name": "filterPlaceholder",
115
+ "type": "String",
116
+ "default": "",
117
+ "description": "The placeholder text for the input."
118
+ },
119
+ {
120
+ "name": "notFoundMessage",
121
+ "type": "String / Node",
122
+ "default": "",
123
+ "description": "A localized message to be shown when filter result is empty."
124
+ },
125
+ {
126
+ "name": "responsive",
127
+ "type": "Boolean",
128
+ "default": "true",
129
+ "description": "The menu uses collapses on smaller screens using an expander panel."
130
+ },
131
+ {
132
+ "name": "autoClose",
133
+ "type": "Boolean",
134
+ "default": "true",
135
+ "description": "Enables automatic close of the expander panel. Only relevant when using the responsive flag. Note: make sure to not stop the events from bubbling up when clicking on an list item. Using \"event.stopPropagation()\" will not work for the panel to close."
136
+ },
137
+ {
138
+ "name": "trailingInputAddon",
139
+ "type": "ReactNode",
140
+ "default": "",
141
+ "description": "Additional addon for the input group."
142
+ },
143
+ {
144
+ "name": "groupClassName",
145
+ "type": "String",
146
+ "default": "",
147
+ "description": "Additional classes to be set on the menu group element."
148
+ },
149
+ {
150
+ "name": "className",
151
+ "type": "String",
152
+ "default": "",
153
+ "description": "Additional classes to be set on the wrapper element."
154
+ }
155
+ ]
156
+ }
157
+ ]
158
+ }
159
+ ]
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "heading": "ListMenu with NavLinks",
165
+ "body": "In case you want to navigate routes you can also use NavLink components.\n\nIn this example, all NavLinks are pointing to this ListMenu page.",
166
+ "examples": [
167
+ {
168
+ "caption": "Example 2",
169
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div><h5 class=\"margin-bottom-20\">ListMenu with NavLinks</h5><div class=\"ListMenu \"><ul class=\"ListMenuGroup \"><li class=\"ListMenuHeader\"><span class=\"\">Group</span></li><li class=\"\"><a aria-current=\"page\" class=\"active\" href=\"#components/listMenu\">Lorem</a></li><li class=\"\"><a href=\"#foo\">Lipsum</a></li><li class=\"\"><a href=\"#foo\">Dolor</a></li><li class=\"\"><a href=\"#foo\">Sit amet</a></li><li class=\"subitem\"><span>No Link Sample</span></li></ul><ul class=\"ListMenuGroup \"><li class=\"ListMenuHeader\"><span class=\"\">Another group</span></li><li class=\"\"><a href=\"#bar\">Lorem</a></li></ul></div></div></div>",
170
+ "tabs": [
171
+ {
172
+ "label": "React",
173
+ "language": "tsx",
174
+ "code": "import { NavLink } from 'react-router-dom';\n\nimport ListMenu, { type ListMenuItem } from '@rio-cloud/rio-uikit/ListMenu';\n\nconst menuItems: ListMenuItem[] = [\n {\n group: 'Group',\n navItems: [\n {\n key: 'Lorem',\n item: (\n <NavLink activeClassName='active' to='/components/listMenu'>\n Lorem\n </NavLink>\n ),\n },\n {\n key: 'Lipsum',\n item: (\n <NavLink activeClassName='active' to='/foo'>\n Lipsum\n </NavLink>\n ),\n },\n {\n key: 'Dolor',\n item: (\n <NavLink activeClassName='active' to='/foo'>\n Dolor\n </NavLink>\n ),\n },\n {\n key: 'Sit amet',\n item: (\n <NavLink activeClassName='active' to='/foo'>\n Sit amet\n </NavLink>\n ),\n },\n {\n key: 'No link',\n item: <span>No Link Sample</span>,\n isSubItem: true,\n },\n ],\n },\n {\n group: 'Another group',\n isSubItem: true,\n navItems: [\n {\n key: 'Lorem',\n item: (\n <NavLink activeClassName='active' to='/bar'>\n Lorem\n </NavLink>\n ),\n },\n ],\n },\n];\n\nexport default () => (\n <div>\n <h5 className='margin-bottom-20'>ListMenu with NavLinks</h5>\n <ListMenu menuItems={menuItems} />\n </div>\n);"
175
+ },
176
+ {
177
+ "label": "HTML",
178
+ "language": "html",
179
+ "code": "<div>\n <h5 class=\"margin-bottom-20\">ListMenu with NavLinks</h5>\n <div class=\"ListMenu \">\n <ul class=\"ListMenuGroup \">\n <li class=\"ListMenuHeader\">\n <span class=\"\">Group</span>\n </li>\n <li class=\"\">\n <a aria-current=\"page\" class=\"active\" href=\"#components/listMenu\">Lorem</a>\n </li>\n <li class=\"\">\n <a href=\"#foo\">Lipsum</a>\n </li>\n <li class=\"\">\n <a href=\"#foo\">Dolor</a>\n </li>\n <li class=\"\">\n <a href=\"#foo\">Sit amet</a>\n </li>\n <li class=\"subitem\">\n <span>No Link Sample</span>\n </li>\n </ul>\n <ul class=\"ListMenuGroup \">\n <li class=\"ListMenuHeader\">\n <span class=\"\">Another group</span>\n </li>\n <li class=\"\">\n <a href=\"#bar\">Lorem</a>\n </li>\n </ul>\n </div>\n</div>"
180
+ },
181
+ {
182
+ "label": "Props",
183
+ "language": "json",
184
+ "code": null,
185
+ "props": [
186
+ {
187
+ "heading": null,
188
+ "rows": [
189
+ {
190
+ "name": "menuItems",
191
+ "type": "Array of Objects",
192
+ "default": "",
193
+ "description": "List of menu item groups to be shown."
194
+ },
195
+ {
196
+ "name": "└group",
197
+ "type": "String | Node",
198
+ "default": "",
199
+ "description": "The optional group header to be shown. This can also be a component such as aFormattedMessage."
200
+ },
201
+ {
202
+ "name": "└badge",
203
+ "type": "String | Node",
204
+ "default": "",
205
+ "description": "The optional badge displayed alongside the group or nav items. This can be a string or a React node for additional flexibility."
206
+ },
207
+ {
208
+ "name": "└badgeType",
209
+ "type": "\"muted\" | \"success\" | \"info\" | \"warning\" | \"danger\"",
210
+ "default": "",
211
+ "description": "Determines the visual style of the badge. Available types include:muted, success, info, warning, and danger."
212
+ },
213
+ {
214
+ "name": "└groupNavItem",
215
+ "type": "String | Node",
216
+ "default": "",
217
+ "description": "The optional group header link to be shown. This can be a link component such asNavLink orLink. This way, the header can be a link itself. In this case, the propgroupcan be omitted."
218
+ },
219
+ {
220
+ "name": "└navItems",
221
+ "type": "Array of Objects",
222
+ "default": "",
223
+ "description": "The list of all menu items of a group."
224
+ },
225
+ {
226
+ "name": "└navItems.key",
227
+ "type": "String",
228
+ "default": "",
229
+ "description": "The name or key of the menu nav item. This key will be used for filtering, hence it should match the translated menu item name."
230
+ },
231
+ {
232
+ "name": "└navItems.item",
233
+ "type": "Node",
234
+ "default": "",
235
+ "description": "The menu nav item itself. This can be a simple<a>, <NavLink>, <Link> or a <span> or even a <FormattedMessage>"
236
+ },
237
+ {
238
+ "name": "└navItems.disabled",
239
+ "type": "Boolean",
240
+ "default": "false",
241
+ "description": "Disables the list item."
242
+ },
243
+ {
244
+ "name": "enableFilter",
245
+ "type": "Boolean",
246
+ "default": "false",
247
+ "description": "Enables the filter."
248
+ },
249
+ {
250
+ "name": "focusFilter",
251
+ "type": "Boolean",
252
+ "default": "false",
253
+ "description": "Focus the filter input."
254
+ },
255
+ {
256
+ "name": "filterKey",
257
+ "type": "String",
258
+ "default": "key",
259
+ "description": "Define the attribute key for filter for."
260
+ },
261
+ {
262
+ "name": "filterPlaceholder",
263
+ "type": "String",
264
+ "default": "",
265
+ "description": "The placeholder text for the input."
266
+ },
267
+ {
268
+ "name": "notFoundMessage",
269
+ "type": "String / Node",
270
+ "default": "",
271
+ "description": "A localized message to be shown when filter result is empty."
272
+ },
273
+ {
274
+ "name": "responsive",
275
+ "type": "Boolean",
276
+ "default": "true",
277
+ "description": "The menu uses collapses on smaller screens using an expander panel."
278
+ },
279
+ {
280
+ "name": "autoClose",
281
+ "type": "Boolean",
282
+ "default": "true",
283
+ "description": "Enables automatic close of the expander panel. Only relevant when using the responsive flag. Note: make sure to not stop the events from bubbling up when clicking on an list item. Using \"event.stopPropagation()\" will not work for the panel to close."
284
+ },
285
+ {
286
+ "name": "trailingInputAddon",
287
+ "type": "ReactNode",
288
+ "default": "",
289
+ "description": "Additional addon for the input group."
290
+ },
291
+ {
292
+ "name": "groupClassName",
293
+ "type": "String",
294
+ "default": "",
295
+ "description": "Additional classes to be set on the menu group element."
296
+ },
297
+ {
298
+ "name": "className",
299
+ "type": "String",
300
+ "default": "",
301
+ "description": "Additional classes to be set on the wrapper element."
302
+ }
303
+ ]
304
+ }
305
+ ]
306
+ }
307
+ ]
308
+ }
309
+ ]
310
+ }
311
+ ],
312
+ "see_also": []
313
+ }
@@ -0,0 +1,175 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:13.055Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/loadMore",
5
+ "category": "Components",
6
+ "section": "Interaction",
7
+ "slug": "components/loadmore",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "81280298807dccd061581230942a6ded52cc607f379e5539e2955a527d05b1b5"
11
+ },
12
+ "title": "LoadMoreButton",
13
+ "lead": null,
14
+ "content": [
15
+ {
16
+ "heading": "LoadMoreButton",
17
+ "body": "",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"LoadMoreButton align-items-center display-flex justify-content-center margin-top-25 margin-bottom-25 non-printable\"><div class=\"min-width-150\"><div class=\"text-center margin-bottom-3\"><span class=\"text-medium\">50</span><span class=\"margin-left-5 margin-right-5\">/</span><span class=\"text-medium\">150</span></div><div class=\"progress height-2 margin-bottom-10 bg-white\"><div class=\"progress-bar\" style=\"width: 33.3333%;\"></div></div><div class=\"display-flex justify-content-center\"><button class=\"btn btn-link padding-right-20 margin-top--5\" type=\"button\"><span class=\"rioglyph rioglyph-arrow-down\"></span>Load more</button></div></div></div><button class=\"position-absolute left-0 bottom-0 margin-10 btn btn-default\" type=\"button\">Reset</button></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import React, { useState } from 'react';\n\nimport LoadMoreButton from '@rio-cloud/rio-uikit/LoadMoreButton';\n\nconst initialState = { loaded: 50, total: 150 };\n\nexport default () => {\n const [state, setState] = useState(initialState);\n\n const handleLoadMore = () => {\n const { loaded, total } = state;\n if (loaded < total) {\n setState({\n ...state,\n loaded: loaded + 50,\n });\n }\n };\n\n const handleReset = () => setState(initialState);\n\n return (\n <React.Fragment>\n <LoadMoreButton\n loaded={state.loaded}\n total={state.total}\n onLoadMore={handleLoadMore}\n loadMoreMessage='Load more'\n noMoreMessage='Everything loaded'\n />\n\n <button\n className='position-absolute left-0 bottom-0 margin-10 btn btn-default'\n type='button'\n onClick={handleReset}\n >\n Reset\n </button>\n </React.Fragment>\n );\n};"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"LoadMoreButton align-items-center display-flex justify-content-center margin-top-25 margin-bottom-25 non-printable\">\n <div class=\"min-width-150\">\n <div class=\"text-center margin-bottom-3\">\n <span class=\"text-medium\">50</span>\n <span class=\"margin-left-5 margin-right-5\">/</span>\n <span class=\"text-medium\">150</span>\n </div>\n <div class=\"progress height-2 margin-bottom-10 bg-white\">\n <div class=\"progress-bar\" style=\"width: 33.3333%;\">\n </div>\n </div>\n <div class=\"display-flex justify-content-center\">\n <button class=\"btn btn-link padding-right-20 margin-top--5\" type=\"button\">\n <span class=\"rioglyph rioglyph-arrow-down\">\n </span>Load more</button>\n </div>\n </div>\n</div>\n<button class=\"position-absolute left-0 bottom-0 margin-10 btn btn-default\" type=\"button\">Reset</button>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "loaded",
43
+ "type": "Number",
44
+ "default": "0",
45
+ "description": "The number of already loaded elements. If set to 0 the progress bar will not be shown."
46
+ },
47
+ {
48
+ "name": "total",
49
+ "type": "Number",
50
+ "default": "100",
51
+ "description": "The number of all elements. If set to 0 the progress bar will not be shown."
52
+ },
53
+ {
54
+ "name": "loadMoreMessage",
55
+ "type": "String / Node",
56
+ "default": "",
57
+ "description": "The text for the load more button."
58
+ },
59
+ {
60
+ "name": "noMoreMessage",
61
+ "type": "String / Node",
62
+ "default": "",
63
+ "description": "The message that will be shown when everything is loaded."
64
+ },
65
+ {
66
+ "name": "isInteractive",
67
+ "type": "Boolean",
68
+ "default": "true",
69
+ "description": "If set to \"false\", the button will not be rendered. The loadMoreMessage will be shown as text."
70
+ },
71
+ {
72
+ "name": "progressBarStyle",
73
+ "type": "String",
74
+ "default": "white",
75
+ "description": "In case the component is used on white background, set the progress bar style to \"gray\"."
76
+ },
77
+ {
78
+ "name": "onLoadMore",
79
+ "type": "Function",
80
+ "default": "() => {}",
81
+ "description": "Callback fired when clicking on the load more button."
82
+ },
83
+ {
84
+ "name": "className",
85
+ "type": "String",
86
+ "default": "",
87
+ "description": "Additional classes to be set on the wrapper element."
88
+ }
89
+ ]
90
+ }
91
+ ]
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ "caption": "Example 2",
97
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"LoadMoreButton align-items-center display-flex justify-content-center margin-top-25 margin-bottom-25 non-printable\"><div class=\"min-width-150\"><div class=\"text-center margin-bottom-3\"><span class=\"text-medium\">20</span><span class=\"margin-left-5 margin-right-5\">/</span><span class=\"text-medium\">100</span></div><div class=\"progress height-2 margin-bottom-10 bg-lighter\"><div class=\"progress-bar border border-right-only border-color-white border-width-2\" style=\"width: 20%;\"></div></div><div class=\"display-flex justify-content-center\"><span class=\"padding-top-4 padding-bottom-10\"><div class=\"max-width-150 text-center text-size-12 line-height-125rel\">Showing limited result.<br>Use filters to narrow down the result.</div></span></div></div></div><div class=\"position-absolute left-0 bottom-0 margin-10 btn-toolbar\"><button class=\"btn btn-default\" type=\"button\">Reset</button><button class=\"btn btn-default\" type=\"button\">Load more</button></div></div>",
98
+ "tabs": [
99
+ {
100
+ "label": "React",
101
+ "language": "tsx",
102
+ "code": "import React, { useState } from 'react';\n\nimport LoadMoreButton from '@rio-cloud/rio-uikit/LoadMoreButton';\n\nconst initialState = { loaded: 20, total: 100 };\n\nexport default () => {\n const [state, setState] = useState(initialState);\n\n const handleLoadMore = () => {\n const { loaded, total } = state;\n if (loaded < total) {\n setState({\n ...state,\n loaded: loaded + 20,\n });\n }\n };\n\n const handleReset = () => setState(initialState);\n\n return (\n <React.Fragment>\n <LoadMoreButton\n loaded={state.loaded}\n total={state.total}\n loadMoreMessage={\n <div className='max-width-150 text-center text-size-12 line-height-125rel'>\n Showing limited result.\n <br />\n Use filters to narrow down the result.\n </div>\n }\n noMoreMessage=''\n progressBarStyle='gray'\n isInteractive={false}\n />\n\n <div className='position-absolute left-0 bottom-0 margin-10 btn-toolbar'>\n <button className='btn btn-default' type='button' onClick={handleReset}>\n Reset\n </button>\n <button className='btn btn-default' type='button' onClick={handleLoadMore}>\n Load more\n </button>\n </div>\n </React.Fragment>\n );\n};"
103
+ },
104
+ {
105
+ "label": "HTML",
106
+ "language": "html",
107
+ "code": "<div class=\"LoadMoreButton align-items-center display-flex justify-content-center margin-top-25 margin-bottom-25 non-printable\">\n <div class=\"min-width-150\">\n <div class=\"text-center margin-bottom-3\">\n <span class=\"text-medium\">20</span>\n <span class=\"margin-left-5 margin-right-5\">/</span>\n <span class=\"text-medium\">100</span>\n </div>\n <div class=\"progress height-2 margin-bottom-10 bg-lighter\">\n <div class=\"progress-bar border border-right-only border-color-white border-width-2\" style=\"width: 20%;\">\n </div>\n </div>\n <div class=\"display-flex justify-content-center\">\n <span class=\"padding-top-4 padding-bottom-10\">\n <div class=\"max-width-150 text-center text-size-12 line-height-125rel\">Showing limited result.<br>Use filters to narrow down the result.</div>\n </span>\n </div>\n </div>\n</div>\n<div class=\"position-absolute left-0 bottom-0 margin-10 btn-toolbar\">\n <button class=\"btn btn-default\" type=\"button\">Reset</button>\n <button class=\"btn btn-default\" type=\"button\">Load more</button>\n</div>"
108
+ },
109
+ {
110
+ "label": "Props",
111
+ "language": "json",
112
+ "code": null,
113
+ "props": [
114
+ {
115
+ "heading": null,
116
+ "rows": [
117
+ {
118
+ "name": "loaded",
119
+ "type": "Number",
120
+ "default": "0",
121
+ "description": "The number of already loaded elements. If set to 0 the progress bar will not be shown."
122
+ },
123
+ {
124
+ "name": "total",
125
+ "type": "Number",
126
+ "default": "100",
127
+ "description": "The number of all elements. If set to 0 the progress bar will not be shown."
128
+ },
129
+ {
130
+ "name": "loadMoreMessage",
131
+ "type": "String / Node",
132
+ "default": "",
133
+ "description": "The text for the load more button."
134
+ },
135
+ {
136
+ "name": "noMoreMessage",
137
+ "type": "String / Node",
138
+ "default": "",
139
+ "description": "The message that will be shown when everything is loaded."
140
+ },
141
+ {
142
+ "name": "isInteractive",
143
+ "type": "Boolean",
144
+ "default": "true",
145
+ "description": "If set to \"false\", the button will not be rendered. The loadMoreMessage will be shown as text."
146
+ },
147
+ {
148
+ "name": "progressBarStyle",
149
+ "type": "String",
150
+ "default": "white",
151
+ "description": "In case the component is used on white background, set the progress bar style to \"gray\"."
152
+ },
153
+ {
154
+ "name": "onLoadMore",
155
+ "type": "Function",
156
+ "default": "() => {}",
157
+ "description": "Callback fired when clicking on the load more button."
158
+ },
159
+ {
160
+ "name": "className",
161
+ "type": "String",
162
+ "default": "",
163
+ "description": "Additional classes to be set on the wrapper element."
164
+ }
165
+ ]
166
+ }
167
+ ]
168
+ }
169
+ ]
170
+ }
171
+ ]
172
+ }
173
+ ],
174
+ "see_also": []
175
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:05.367Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/mainNavigation",
5
+ "category": "Components",
6
+ "section": "Navigation",
7
+ "slug": "components/mainnavigation",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "429d13aa710ba3866a1a3ea55807a2b0a0ef6dbd8e5a5b5a55e0e31079a8ce07"
11
+ },
12
+ "title": "MainNavigation",
13
+ "lead": null,
14
+ "content": [
15
+ {
16
+ "heading": "MainNavigation",
17
+ "body": "",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "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 href=\"#components/appLayout\">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=\"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>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import { NavLink } from 'react-router-dom';\n\nimport ApplicationLayout from '@rio-cloud/rio-uikit/ApplicationLayout';\nimport ApplicationHeader from '@rio-cloud/rio-uikit/ApplicationHeader';\n\nconst navItems = [\n { key: '1', route: <NavLink to='/components/appLayout'>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\nexport default () => (\n <ApplicationLayout className='bg-lighter'>\n <ApplicationLayout.Header>\n <ApplicationHeader label='RIO Service' navItems={navItems} />\n </ApplicationLayout.Header>\n <ApplicationLayout.Body className='uikitDemo'>\n <div className='dummy-class' />\n </ApplicationLayout.Body>\n </ApplicationLayout>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "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 href=\"#components/appLayout\">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=\"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>"
32
+ }
33
+ ]
34
+ }
35
+ ]
36
+ }
37
+ ],
38
+ "see_also": []
39
+ }