@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,680 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:38.062Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/dataTabs",
5
+ "category": "Components",
6
+ "section": "Content",
7
+ "slug": "components/datatabs",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "89840828de8ea9f6b42daabf85646261178f1b0e49e04b57aa4319bdaef9aefb"
11
+ },
12
+ "title": "DataTabs",
13
+ "lead": "Passing a single tab content component via commonTabContent prop into the DataTabs component allows to update that single component when switching tabs. This comes in handy for instance when you want to animate a graph with different values from each tab.",
14
+ "content": [
15
+ {
16
+ "heading": "DataTabs",
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=\"h6\">Horizontal layout</div><div class=\"DataTabsContainer DataTab-bordered DataTabs-horizontal\"><div class=\"DataTabsWrapper \"><ul class=\"DataTabs\" role=\"tabList\"><li class=\"DataTab tab active bg-highlight-dark text-color-white\" data-tabkey=\"tab1\"><div><div>Ø - Consumption</div><div class=\"text-bold text-size-18\">13,5 km/l</div></div><div class=\"arrow bg-highlight-dark border-color-transparent in\"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab2\"><div><div>Ø - C02 Emission</div><div class=\"text-bold text-size-18\">12,2 kg</div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab3\"><div><div>Ø - Range</div><div class=\"text-bold text-size-18\">32,8 l/100</div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab4\"><div><div>Ø - Route type</div><div class=\"text-bold text-size-18\"><div><span class=\"text-color-light\">A</span><span class=\"text-color-light\">B</span><span class=\"text-color-light\">C</span><span class=\"text-color-light\">D</span><span class=\"text-color-warning\">E</span><span class=\"text-color-light\">F</span></div></div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li></ul></div><div class=\"tab-content \" role=\"tabpanel\"><div class=\"fade in\" style=\"opacity: 1; transform: none;\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import React, { useState } from 'react';\n\nimport DataTabs from '@rio-cloud/rio-uikit/DataTabs';\nimport DataTab from '@rio-cloud/rio-uikit/DataTab';\nimport { dummyText } from '../../../utils/data';\n\nexport default () => {\n const [tabKey, setTabKey] = useState<string>();\n\n return (\n <div>\n <div className='h6'>Horizontal layout</div>\n <DataTabs activeKey={tabKey} onSelectTab={newTabKey => setTabKey(newTabKey)}>\n <DataTab tabKey='tab1' title={<Title text='Ø - Consumption' value='13,5 km/l' />}>\n {dummyText}\n </DataTab>\n <DataTab tabKey='tab2' title={<Title text='Ø - C02 Emission' value='12,2 kg' />}>\n {dummyText + dummyText}\n </DataTab>\n <DataTab tabKey='tab3' title={<Title text='Ø - Range' value='32,8 l/100' />}>\n {dummyText}\n </DataTab>\n <DataTab tabKey='tab4' title={<Title text='Ø - Route type' value={<RouteType />} />}>\n {dummyText}\n </DataTab>\n </DataTabs>\n </div>\n );\n};\n\nexport const Title = ({ text, value }: { text: string; value: React.ReactNode }) => (\n <div>\n <div>{text}</div>\n <div className='text-bold text-size-18'>{value}</div>\n </div>\n);\n\nexport const RouteType = () => (\n <div>\n <span className='text-color-light'>A</span>\n <span className='text-color-light'>B</span>\n <span className='text-color-light'>C</span>\n <span className='text-color-light'>D</span>\n <span className='text-color-warning'>E</span>\n <span className='text-color-light'>F</span>\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div>\n <div class=\"h6\">Horizontal layout</div>\n <div class=\"DataTabsContainer DataTab-bordered DataTabs-horizontal\">\n <div class=\"DataTabsWrapper \">\n <ul class=\"DataTabs\" role=\"tabList\">\n <li class=\"DataTab tab active bg-highlight-dark text-color-white\" data-tabkey=\"tab1\">\n <div>\n <div>Ø - Consumption</div>\n <div class=\"text-bold text-size-18\">13,5 km/l</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent in\">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab2\">\n <div>\n <div>Ø - C02 Emission</div>\n <div class=\"text-bold text-size-18\">12,2 kg</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab3\">\n <div>\n <div>Ø - Range</div>\n <div class=\"text-bold text-size-18\">32,8 l/100</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab4\">\n <div>\n <div>Ø - Route type</div>\n <div class=\"text-bold text-size-18\">\n <div>\n <span class=\"text-color-light\">A</span>\n <span class=\"text-color-light\">B</span>\n <span class=\"text-color-light\">C</span>\n <span class=\"text-color-light\">D</span>\n <span class=\"text-color-warning\">E</span>\n <span class=\"text-color-light\">F</span>\n </div>\n </div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n </ul>\n </div>\n <div class=\"tab-content \" role=\"tabpanel\">\n <div class=\"fade in\" style=\"opacity: 1; transform: none;\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>\n </div>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": "DataTabs",
40
+ "rows": [
41
+ {
42
+ "name": "activeKey",
43
+ "type": "String",
44
+ "default": "\"\"",
45
+ "description": "Sets key and id."
46
+ },
47
+ {
48
+ "name": "onSelectTab",
49
+ "type": "Boolean",
50
+ "default": "() => {}",
51
+ "description": "Called when a tab is being activated."
52
+ },
53
+ {
54
+ "name": "commonTabContent",
55
+ "type": "Node",
56
+ "default": "",
57
+ "description": "Tab content that is used for all tabs. Using a common tab content will ignore any DataTab child. Additionally, there will be no transition when switching tabs as it is a single tab content component."
58
+ },
59
+ {
60
+ "name": "vertical",
61
+ "type": "Boolean",
62
+ "default": "false",
63
+ "description": "Whether the layout should be vertical."
64
+ },
65
+ {
66
+ "name": "bordered",
67
+ "type": "Boolean",
68
+ "default": "true",
69
+ "description": "Whether the component should add a border."
70
+ },
71
+ {
72
+ "name": "disableTransition",
73
+ "type": "Boolean",
74
+ "default": "false",
75
+ "description": "Transitions between tab contents are enabled by default. Set if you want to disable them. The Navigation tabs will still remain animated."
76
+ },
77
+ {
78
+ "name": "className",
79
+ "type": "String",
80
+ "default": "",
81
+ "description": "Additional classes to be set on the wrapper element."
82
+ },
83
+ {
84
+ "name": "tabContentClassName",
85
+ "type": "String",
86
+ "default": "",
87
+ "description": "Additional classes to be set on the tabContent wrapper element."
88
+ },
89
+ {
90
+ "name": "tabsWrapperClassName",
91
+ "type": "String",
92
+ "default": "",
93
+ "description": "Additional classes to be set on the tabs wrapper element."
94
+ },
95
+ {
96
+ "name": "arrowClassName",
97
+ "type": "String",
98
+ "default": "bg-highlight-dark",
99
+ "description": "Additional classes to be set on the arrow."
100
+ },
101
+ {
102
+ "name": "tabClassName",
103
+ "type": "String",
104
+ "default": "bg-white",
105
+ "description": "Additional classes to be set on the tab element."
106
+ },
107
+ {
108
+ "name": "tabHoverClassName",
109
+ "type": "String",
110
+ "default": "text-color-darkest",
111
+ "description": "Utility hover classes to be set on the tab element."
112
+ },
113
+ {
114
+ "name": "tabActiveClassName",
115
+ "type": "String",
116
+ "default": "text-color-darkest",
117
+ "description": "Utility active classes to be set on the tab element."
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "heading": "DataTab",
123
+ "rows": [
124
+ {
125
+ "name": "tabKey",
126
+ "type": "String",
127
+ "default": "",
128
+ "description": "Used to identify the tab."
129
+ },
130
+ {
131
+ "name": "title",
132
+ "type": "String / Node",
133
+ "default": "",
134
+ "description": "The content for the tab."
135
+ },
136
+ {
137
+ "name": "className",
138
+ "type": "String",
139
+ "default": "",
140
+ "description": "Additional classes to be set on the element."
141
+ }
142
+ ]
143
+ }
144
+ ]
145
+ }
146
+ ]
147
+ },
148
+ {
149
+ "caption": "Example 2",
150
+ "rendered_html": "<div class=\"playground-content bg-white padding-20 padding-bottom-25\" style=\"width: 100%;\"><div><div class=\"h6\">Vertical layout</div><div class=\"DataTabsContainer DataTab-bordered DataTabs-vertical\"><div class=\"DataTabsWrapper \"><ul class=\"DataTabs\" role=\"tabList\"><li class=\"DataTab tab active bg-highlight-dark text-color-white\" data-tabkey=\"tab1\"><div><div>Ø - Consumption</div><div class=\"text-bold text-size-18\">13,5 km/l</div></div><div class=\"arrow bg-highlight-dark border-color-transparent in\"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab2\"><div><div>Ø - C02 Emission</div><div class=\"text-bold text-size-18\">12,2 kg</div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab3\"><div><div>Ø - Range</div><div class=\"text-bold text-size-18\">32,8 l/100</div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab4\"><div><div>Ø - Route type</div><div class=\"text-bold text-size-18\"><div><span class=\"text-color-light\">A</span><span class=\"text-color-light\">B</span><span class=\"text-color-light\">C</span><span class=\"text-color-light\">D</span><span class=\"text-color-warning\">E</span><span class=\"text-color-light\">F</span></div></div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li></ul></div><div class=\"tab-content \" role=\"tabpanel\"><div class=\"fade in\" style=\"opacity: 1; transform: none;\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div></div></div></div></div>",
151
+ "tabs": [
152
+ {
153
+ "label": "React",
154
+ "language": "tsx",
155
+ "code": "import React, { useState } from 'react';\n\nimport DataTabs from '@rio-cloud/rio-uikit/DataTabs';\nimport DataTab from '@rio-cloud/rio-uikit/DataTab';\nimport { dummyText } from '../../../utils/data';\n\nexport default () => {\n const [tabKey, setTabKey] = useState<string>();\n\n return (\n <div>\n <div className='h6'>Vertical layout</div>\n <DataTabs activeKey={tabKey} onSelectTab={newTabKey => setTabKey(newTabKey)} vertical>\n <DataTab tabKey='tab1' title={<Title text='Ø - Consumption' value='13,5 km/l' />}>\n {dummyText}\n </DataTab>\n <DataTab tabKey='tab2' title={<Title text='Ø - C02 Emission' value='12,2 kg' />}>\n {dummyText + dummyText}\n </DataTab>\n <DataTab tabKey='tab3' title={<Title text='Ø - Range' value='32,8 l/100' />}>\n {dummyText}\n </DataTab>\n <DataTab tabKey='tab4' title={<Title text='Ø - Route type' value={<RouteType />} />}>\n {dummyText}\n </DataTab>\n </DataTabs>\n </div>\n );\n};\n\nexport const Title = ({ text, value }: { text: string; value: React.ReactNode }) => (\n <div>\n <div>{text}</div>\n <div className='text-bold text-size-18'>{value}</div>\n </div>\n);\n\nexport const RouteType = () => (\n <div>\n <span className='text-color-light'>A</span>\n <span className='text-color-light'>B</span>\n <span className='text-color-light'>C</span>\n <span className='text-color-light'>D</span>\n <span className='text-color-warning'>E</span>\n <span className='text-color-light'>F</span>\n </div>\n);"
156
+ },
157
+ {
158
+ "label": "HTML",
159
+ "language": "html",
160
+ "code": "<div>\n <div class=\"h6\">Vertical layout</div>\n <div class=\"DataTabsContainer DataTab-bordered DataTabs-vertical\">\n <div class=\"DataTabsWrapper \">\n <ul class=\"DataTabs\" role=\"tabList\">\n <li class=\"DataTab tab active bg-highlight-dark text-color-white\" data-tabkey=\"tab1\">\n <div>\n <div>Ø - Consumption</div>\n <div class=\"text-bold text-size-18\">13,5 km/l</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent in\">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab2\">\n <div>\n <div>Ø - C02 Emission</div>\n <div class=\"text-bold text-size-18\">12,2 kg</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab3\">\n <div>\n <div>Ø - Range</div>\n <div class=\"text-bold text-size-18\">32,8 l/100</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab4\">\n <div>\n <div>Ø - Route type</div>\n <div class=\"text-bold text-size-18\">\n <div>\n <span class=\"text-color-light\">A</span>\n <span class=\"text-color-light\">B</span>\n <span class=\"text-color-light\">C</span>\n <span class=\"text-color-light\">D</span>\n <span class=\"text-color-warning\">E</span>\n <span class=\"text-color-light\">F</span>\n </div>\n </div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n </ul>\n </div>\n <div class=\"tab-content \" role=\"tabpanel\">\n <div class=\"fade in\" style=\"opacity: 1; transform: none;\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>\n </div>\n </div>\n</div>"
161
+ },
162
+ {
163
+ "label": "Props",
164
+ "language": "json",
165
+ "code": null,
166
+ "props": [
167
+ {
168
+ "heading": "DataTabs",
169
+ "rows": [
170
+ {
171
+ "name": "activeKey",
172
+ "type": "String",
173
+ "default": "\"\"",
174
+ "description": "Sets key and id."
175
+ },
176
+ {
177
+ "name": "onSelectTab",
178
+ "type": "Boolean",
179
+ "default": "() => {}",
180
+ "description": "Called when a tab is being activated."
181
+ },
182
+ {
183
+ "name": "commonTabContent",
184
+ "type": "Node",
185
+ "default": "",
186
+ "description": "Tab content that is used for all tabs. Using a common tab content will ignore any DataTab child. Additionally, there will be no transition when switching tabs as it is a single tab content component."
187
+ },
188
+ {
189
+ "name": "vertical",
190
+ "type": "Boolean",
191
+ "default": "false",
192
+ "description": "Whether the layout should be vertical."
193
+ },
194
+ {
195
+ "name": "bordered",
196
+ "type": "Boolean",
197
+ "default": "true",
198
+ "description": "Whether the component should add a border."
199
+ },
200
+ {
201
+ "name": "disableTransition",
202
+ "type": "Boolean",
203
+ "default": "false",
204
+ "description": "Transitions between tab contents are enabled by default. Set if you want to disable them. The Navigation tabs will still remain animated."
205
+ },
206
+ {
207
+ "name": "className",
208
+ "type": "String",
209
+ "default": "",
210
+ "description": "Additional classes to be set on the wrapper element."
211
+ },
212
+ {
213
+ "name": "tabContentClassName",
214
+ "type": "String",
215
+ "default": "",
216
+ "description": "Additional classes to be set on the tabContent wrapper element."
217
+ },
218
+ {
219
+ "name": "tabsWrapperClassName",
220
+ "type": "String",
221
+ "default": "",
222
+ "description": "Additional classes to be set on the tabs wrapper element."
223
+ },
224
+ {
225
+ "name": "arrowClassName",
226
+ "type": "String",
227
+ "default": "bg-highlight-dark",
228
+ "description": "Additional classes to be set on the arrow."
229
+ },
230
+ {
231
+ "name": "tabClassName",
232
+ "type": "String",
233
+ "default": "bg-white",
234
+ "description": "Additional classes to be set on the tab element."
235
+ },
236
+ {
237
+ "name": "tabHoverClassName",
238
+ "type": "String",
239
+ "default": "text-color-darkest",
240
+ "description": "Utility hover classes to be set on the tab element."
241
+ },
242
+ {
243
+ "name": "tabActiveClassName",
244
+ "type": "String",
245
+ "default": "text-color-darkest",
246
+ "description": "Utility active classes to be set on the tab element."
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ "heading": "DataTab",
252
+ "rows": [
253
+ {
254
+ "name": "tabKey",
255
+ "type": "String",
256
+ "default": "",
257
+ "description": "Used to identify the tab."
258
+ },
259
+ {
260
+ "name": "title",
261
+ "type": "String / Node",
262
+ "default": "",
263
+ "description": "The content for the tab."
264
+ },
265
+ {
266
+ "name": "className",
267
+ "type": "String",
268
+ "default": "",
269
+ "description": "Additional classes to be set on the element."
270
+ }
271
+ ]
272
+ }
273
+ ]
274
+ }
275
+ ]
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "heading": "DataTabs inside an ExpanderPanel and custom color",
281
+ "body": "",
282
+ "examples": [
283
+ {
284
+ "caption": "Example 3",
285
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"expander-panel panel panel-default shadow-default\" aria-label=\"expander panel\"><div class=\"panel-heading open\" aria-label=\"panel heading\"><span class=\"title\">DataTabs inside an ExpanderPanel</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 padding-0\"><div class=\"DataTabsContainer DataTabs-horizontal\"><div class=\"DataTabsWrapper bg-lightest\"><ul class=\"DataTabs\" role=\"tabList\"><li class=\"DataTab tab active bg-white\" data-tabkey=\"tab1\"><div><div>Ø - Consumption</div><div class=\"text-bold text-size-18\"><span>13,5 km/l</span></div></div><div class=\"arrow bg-white border-color-light margin-bottom--1 in\"></div></li><li class=\"DataTab tab bg-lightest cursor-pointer\" data-tabkey=\"tab2\"><div><div>Ø - C02 Emission</div><div class=\"text-bold text-size-18\"><span>12,2 kg</span></div></div><div class=\"arrow bg-white border-color-light margin-bottom--1 \"></div></li><li class=\"DataTab tab bg-lightest cursor-pointer\" data-tabkey=\"tab3\"><div><div>Ø - Range</div><div class=\"text-bold text-size-18\"><span>32,8 l/100</span></div></div><div class=\"arrow bg-white border-color-light margin-bottom--1 \"></div></li><li class=\"DataTab tab bg-lightest cursor-pointer\" data-tabkey=\"tab4\"><div><div>Ø - Route Type</div><div class=\"text-bold text-size-18\"><span><div><span class=\"text-color-light\">A</span><span class=\"text-color-light\">B</span><span class=\"text-color-light\">C</span><span class=\"text-color-light\">D</span><span class=\"text-color-warning\">E</span><span class=\"text-color-light\">F</span></div></span></div></div><div class=\"arrow bg-white border-color-light margin-bottom--1 \"></div></li></ul></div><div class=\"tab-content rounded-bottom bg-lightest\" role=\"tabpanel\"><div>\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div><div></div><div></div><div></div></div></div></div></div></div></div></div>",
286
+ "tabs": [
287
+ {
288
+ "label": "React",
289
+ "language": "tsx",
290
+ "code": "import React, { useState } from 'react';\n\nimport ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';\nimport DataTabs from '@rio-cloud/rio-uikit/DataTabs';\nimport DataTab from '@rio-cloud/rio-uikit/DataTab';\nimport SimpleTooltip from '@rio-cloud/rio-uikit/SimpleTooltip';\nimport { dummyText } from '../../../utils/data';\n\nexport default () => {\n const [tabKey, setTabKey] = useState('tab1');\n\n return (\n <ExpanderPanel\n className='shadow-default'\n bodyClassName='padding-0'\n title='DataTabs inside an ExpanderPanel'\n bsStyle='default'\n open\n >\n <DataTabs\n activeKey={tabKey}\n onSelectTab={newTabKey => setTabKey(newTabKey)}\n bordered={false}\n disableTransition\n tabsWrapperClassName='bg-lightest'\n arrowClassName='bg-white border-color-light margin-bottom--1'\n tabClassName='bg-lightest'\n tabHoverClassName='bg-white'\n tabActiveClassName='bg-white'\n tabContentClassName='rounded-bottom bg-lightest'\n >\n <DataTab tabKey='tab1' title={<Title text='Ø - Consumption' value='13,5 km/l' />}>\n {dummyText}\n </DataTab>\n <DataTab tabKey='tab2' title={<Title text='Ø - C02 Emission' value='12,2 kg' />}>\n {dummyText + dummyText}\n </DataTab>\n <DataTab tabKey='tab3' title={<Title text='Ø - Range' value='32,8 l/100' />}>\n {dummyText}\n </DataTab>\n <DataTab tabKey='tab4' title={<Title text='Ø - Route Type' value={<RouteType />} />}>\n {dummyText}\n </DataTab>\n </DataTabs>\n </ExpanderPanel>\n );\n};\n\nexport const Title = ({ text, value }: { text: string; value: React.ReactNode }) => (\n <div>\n <div>{text}</div>\n\n <div className='text-bold text-size-18'>\n <SimpleTooltip content='This is a tooltip inside a DataTab'>\n <span>{value}</span>\n </SimpleTooltip>\n </div>\n </div>\n);\n\nexport const RouteType = () => (\n <div>\n <span className='text-color-light'>A</span>\n <span className='text-color-light'>B</span>\n <span className='text-color-light'>C</span>\n <span className='text-color-light'>D</span>\n <span className='text-color-warning'>E</span>\n <span className='text-color-light'>F</span>\n </div>\n);"
291
+ },
292
+ {
293
+ "label": "HTML",
294
+ "language": "html",
295
+ "code": "<div class=\"expander-panel panel panel-default shadow-default\" aria-label=\"expander panel\">\n <div class=\"panel-heading open\" aria-label=\"panel heading\">\n <span class=\"title\">DataTabs inside an ExpanderPanel</span>\n <span class=\"expander-icon rioglyph rioglyph-chevron-down\">\n </span>\n </div>\n <div class=\"collapse display-block width-100pct\" style=\"opacity: 1; height: auto;\">\n <div>\n <div class=\"panel-body padding-0\">\n <div class=\"DataTabsContainer DataTabs-horizontal\">\n <div class=\"DataTabsWrapper bg-lightest\">\n <ul class=\"DataTabs\" role=\"tabList\">\n <li class=\"DataTab tab active bg-white\" data-tabkey=\"tab1\">\n <div>\n <div>Ø - Consumption</div>\n <div class=\"text-bold text-size-18\">\n <span>13,5 km/l</span>\n </div>\n </div>\n <div class=\"arrow bg-white border-color-light margin-bottom--1 in\">\n </div>\n </li>\n <li class=\"DataTab tab bg-lightest cursor-pointer\" data-tabkey=\"tab2\">\n <div>\n <div>Ø - C02 Emission</div>\n <div class=\"text-bold text-size-18\">\n <span>12,2 kg</span>\n </div>\n </div>\n <div class=\"arrow bg-white border-color-light margin-bottom--1 \">\n </div>\n </li>\n <li class=\"DataTab tab bg-lightest cursor-pointer\" data-tabkey=\"tab3\">\n <div>\n <div>Ø - Range</div>\n <div class=\"text-bold text-size-18\">\n <span>32,8 l/100</span>\n </div>\n </div>\n <div class=\"arrow bg-white border-color-light margin-bottom--1 \">\n </div>\n </li>\n <li class=\"DataTab tab bg-lightest cursor-pointer\" data-tabkey=\"tab4\">\n <div>\n <div>Ø - Route Type</div>\n <div class=\"text-bold text-size-18\">\n <span>\n <div>\n <span class=\"text-color-light\">A</span>\n <span class=\"text-color-light\">B</span>\n <span class=\"text-color-light\">C</span>\n <span class=\"text-color-light\">D</span>\n <span class=\"text-color-warning\">E</span>\n <span class=\"text-color-light\">F</span>\n </div>\n </span>\n </div>\n </div>\n <div class=\"arrow bg-white border-color-light margin-bottom--1 \">\n </div>\n </li>\n </ul>\n </div>\n <div class=\"tab-content rounded-bottom bg-lightest\" role=\"tabpanel\">\n <div>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>\n <div>\n </div>\n <div>\n </div>\n <div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>"
296
+ },
297
+ {
298
+ "label": "Props",
299
+ "language": "json",
300
+ "code": null,
301
+ "props": [
302
+ {
303
+ "heading": "DataTabs",
304
+ "rows": [
305
+ {
306
+ "name": "activeKey",
307
+ "type": "String",
308
+ "default": "\"\"",
309
+ "description": "Sets key and id."
310
+ },
311
+ {
312
+ "name": "onSelectTab",
313
+ "type": "Boolean",
314
+ "default": "() => {}",
315
+ "description": "Called when a tab is being activated."
316
+ },
317
+ {
318
+ "name": "commonTabContent",
319
+ "type": "Node",
320
+ "default": "",
321
+ "description": "Tab content that is used for all tabs. Using a common tab content will ignore any DataTab child. Additionally, there will be no transition when switching tabs as it is a single tab content component."
322
+ },
323
+ {
324
+ "name": "vertical",
325
+ "type": "Boolean",
326
+ "default": "false",
327
+ "description": "Whether the layout should be vertical."
328
+ },
329
+ {
330
+ "name": "bordered",
331
+ "type": "Boolean",
332
+ "default": "true",
333
+ "description": "Whether the component should add a border."
334
+ },
335
+ {
336
+ "name": "disableTransition",
337
+ "type": "Boolean",
338
+ "default": "false",
339
+ "description": "Transitions between tab contents are enabled by default. Set if you want to disable them. The Navigation tabs will still remain animated."
340
+ },
341
+ {
342
+ "name": "className",
343
+ "type": "String",
344
+ "default": "",
345
+ "description": "Additional classes to be set on the wrapper element."
346
+ },
347
+ {
348
+ "name": "tabContentClassName",
349
+ "type": "String",
350
+ "default": "",
351
+ "description": "Additional classes to be set on the tabContent wrapper element."
352
+ },
353
+ {
354
+ "name": "tabsWrapperClassName",
355
+ "type": "String",
356
+ "default": "",
357
+ "description": "Additional classes to be set on the tabs wrapper element."
358
+ },
359
+ {
360
+ "name": "arrowClassName",
361
+ "type": "String",
362
+ "default": "bg-highlight-dark",
363
+ "description": "Additional classes to be set on the arrow."
364
+ },
365
+ {
366
+ "name": "tabClassName",
367
+ "type": "String",
368
+ "default": "bg-white",
369
+ "description": "Additional classes to be set on the tab element."
370
+ },
371
+ {
372
+ "name": "tabHoverClassName",
373
+ "type": "String",
374
+ "default": "text-color-darkest",
375
+ "description": "Utility hover classes to be set on the tab element."
376
+ },
377
+ {
378
+ "name": "tabActiveClassName",
379
+ "type": "String",
380
+ "default": "text-color-darkest",
381
+ "description": "Utility active classes to be set on the tab element."
382
+ }
383
+ ]
384
+ },
385
+ {
386
+ "heading": "DataTab",
387
+ "rows": [
388
+ {
389
+ "name": "tabKey",
390
+ "type": "String",
391
+ "default": "",
392
+ "description": "Used to identify the tab."
393
+ },
394
+ {
395
+ "name": "title",
396
+ "type": "String / Node",
397
+ "default": "",
398
+ "description": "The content for the tab."
399
+ },
400
+ {
401
+ "name": "className",
402
+ "type": "String",
403
+ "default": "",
404
+ "description": "Additional classes to be set on the element."
405
+ }
406
+ ]
407
+ }
408
+ ]
409
+ }
410
+ ]
411
+ }
412
+ ]
413
+ },
414
+ {
415
+ "heading": "DataTabs with shared common tab content and custom styling",
416
+ "body": "",
417
+ "examples": [
418
+ {
419
+ "caption": "Example 4",
420
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"expander-panel panel panel-default shadow-default\" aria-label=\"expander panel\"><div class=\"panel-heading open\" aria-label=\"panel heading\"><span class=\"title\">DataTabs inside an ExpanderPanel with one common tab content</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 padding-0\"><div class=\"DataTabsContainer DataTabs-horizontal\"><div class=\"DataTabsWrapper bg-white\"><ul class=\"DataTabs\" role=\"tabList\"><li class=\"DataTab tab active bg-white text-color-primary opacity-100 margin-bottom--1 border border-top-none border-bottom-none margin-top-1 padding-y-5 border-left-none\" data-tabkey=\"tab1\"><div><div>Ø - Consumption</div><div class=\"text-bold text-size-18\">13,5 km/l</div></div><div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 in\"></div></li><li class=\"DataTab tab bg-lighter opacity-50 border border-color-transparent padding-y-5 cursor-pointer\" data-tabkey=\"tab2\"><div><div>Ø - C02 Emission</div><div class=\"text-bold text-size-18\">12,2 kg</div></div><div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 \"></div></li><li class=\"DataTab tab bg-lighter opacity-50 border border-color-transparent padding-y-5 cursor-pointer\" data-tabkey=\"tab3\"><div><div>Ø - Range</div><div class=\"text-bold text-size-18\">32,8 l/100</div></div><div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 \"></div></li><li class=\"DataTab tab bg-lighter opacity-50 border border-color-transparent padding-y-5 cursor-pointer border-right-none\" data-tabkey=\"tab4\"><div><div>Ø - Route type</div><div class=\"text-bold text-size-18\"><div><span class=\"text-color-light\">A</span><span class=\"text-color-light\">B</span><span class=\"text-color-light\">C</span><span class=\"text-color-light\">D</span><span class=\"text-color-warning\">E</span><span class=\"text-color-light\">F</span></div></div></div><div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 \"></div></li></ul></div><div class=\"tab-content padding-left-0 padding-right-0\" role=\"tabpanel\"><div><div class=\"padding-left-15 padding-right-15\"><div class=\"height-200 max-width-500\"><div class=\"recharts-responsive-container\" style=\"width: 100%; height: 100%; min-width: 0px;\"><div class=\"recharts-wrapper\" style=\"position: relative; cursor: default; width: 100%; height: 100%; max-height: 200px; max-width: 500px;\"><svg class=\"recharts-surface\" width=\"500\" height=\"200\" viewBox=\"0 0 500 200\" style=\"width: 100%; height: 100%;\"><title></title><desc></desc><defs><clipPath id=\"recharts1-clip\"><rect x=\"15\" y=\"15\" height=\"140\" width=\"470\"></rect></clipPath></defs><g class=\"recharts-cartesian-grid\"><g class=\"recharts-cartesian-grid-horizontal\"><line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"155\" x2=\"485\" y2=\"155\"></line><line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"120\" x2=\"485\" y2=\"120\"></line><line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"85\" x2=\"485\" y2=\"85\"></line><line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"50\" x2=\"485\" y2=\"50\"></line><line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"15\" x2=\"485\" y2=\"15\"></line></g></g><g class=\"recharts-layer recharts-cartesian-axis recharts-xAxis xAxis\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-line\" stroke=\"#666\" fill=\"none\" x1=\"15\" y1=\"155\" x2=\"485\" y2=\"155\"></line><g class=\"recharts-cartesian-axis-ticks\"><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"45\" y1=\"161\" x2=\"45\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"45\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"45\" dy=\"0.71em\">Page A</tspan></text></g><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"113.33333333333333\" y1=\"161\" x2=\"113.33333333333333\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"113.33333333333333\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"113.33333333333333\" dy=\"0.71em\">Page B</tspan></text></g><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"181.66666666666666\" y1=\"161\" x2=\"181.66666666666666\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"181.66666666666666\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"181.66666666666666\" dy=\"0.71em\">Page C</tspan></text></g><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"250\" y1=\"161\" x2=\"250\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"250\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"250\" dy=\"0.71em\">Page D</tspan></text></g><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"318.3333333333333\" y1=\"161\" x2=\"318.3333333333333\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"318.3333333333333\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"318.3333333333333\" dy=\"0.71em\">Page E</tspan></text></g><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"386.66666666666663\" y1=\"161\" x2=\"386.66666666666663\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"386.66666666666663\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"386.66666666666663\" dy=\"0.71em\">Page F</tspan></text></g><g class=\"recharts-layer recharts-cartesian-axis-tick\"><line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"455\" y1=\"161\" x2=\"455\" y2=\"155\"></line><text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"455\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\"><tspan x=\"455\" dy=\"0.71em\">Page G</tspan></text></g></g></g><g class=\"recharts-layer recharts-line\"><path stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"none\" width=\"470\" height=\"140\" class=\"recharts-curve recharts-line-curve\" stroke-dasharray=\"0px 446.5513916015625px\" d=\"M45,77.222C67.778,48.25,90.556,19.278,113.333,19.278C136.111,19.278,158.889,19.278,181.667,19.278C204.444,19.278,227.222,31.204,250,38.333C272.778,45.463,295.556,62.056,318.333,62.056C341.111,62.056,363.889,38.333,386.667,38.333C409.444,38.333,432.222,42.611,455,46.889\"></path></g></svg><div tabindex=\"-1\" class=\"recharts-tooltip-wrapper recharts-tooltip-wrapper-right recharts-tooltip-wrapper-bottom\" style=\"visibility: hidden; pointer-events: none; position: absolute; top: 0px; left: 0px; transform: translate(15px, 15px);\"><div class=\"recharts-default-tooltip\" style=\"margin: 0px; padding: 10px; background-color: rgb(255, 255, 255); border: 1px solid rgb(204, 204, 204); white-space: nowrap;\"><p class=\"recharts-tooltip-label\" style=\"margin: 0px;\"></p></div></div></div></div></div></div><hr><div class=\"padding-left-15 padding-right-15\"><span class=\"\">The padding can be changes on demand by passing in util classes via \"tabContentClassName\" prop.</span></div></div></div></div></div></div></div></div><button type=\"button\" class=\"btn btn-default btn-toggle btn-component\" tabindex=\"0\">Hide last tab</button></div>",
421
+ "tabs": [
422
+ {
423
+ "label": "React",
424
+ "language": "tsx",
425
+ "code": "/* eslint-disable max-len */\nimport React, { useState } from 'react';\nimport faker from 'faker';\n\nimport ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';\nimport DataTabs from '@rio-cloud/rio-uikit/DataTabs';\nimport DataTab from '@rio-cloud/rio-uikit/DataTab';\nimport ToggleButton from '@rio-cloud/rio-uikit/ToggleButton';\nimport LineChart from '@rio-cloud/rio-uikit/components/charts/LineChart';\nimport Line from '@rio-cloud/rio-uikit/components/charts/Line';\nimport { dummyText } from '../../../utils/data';\n\ntype DummyItem = { name: string; value: number };\n\nconst getData = (): DummyItem[] =>\n ['Page A', 'Page B', 'Page C', 'Page D', 'Page E', 'Page F', 'Page G'].map(item => ({\n name: item,\n value: faker.random.arrayElement([3200, 3000, 2000, 2780, 1890, 2390, 3490]),\n }));\n\nconst DummyContent = ({ tabKey }: { tabKey: string }) => (\n <div>\n <div className='padding-left-15 padding-right-15'>\n {tabKey === 'tab3' && dummyText}\n <div className='height-200 max-width-500'>\n <LineChart\n data={getData()}\n dataKey={(entry: DummyItem) => entry.name}\n xAxisOptions={{ padding: { left: 30, right: 30 } }}\n showGrid\n gridOptions={{ vertical: false, strokeDasharray: '0', stroke: 'gray-lighter' }}\n lines={[<Line key='line' dataKey={(entry: DummyItem) => `${entry.value}`} />]}\n />\n </div>\n </div>\n <hr />\n <div className='padding-left-15 padding-right-15'>\n <span className={tabKey === 'tab2' ? 'text-medium text-color-darker' : ''}>\n The padding can be changes on demand by passing in util classes via \"tabContentClassName\" prop.\n </span>\n </div>\n </div>\n);\n\nexport default () => {\n const [tabKey, setTabKey] = useState('tab1');\n const [hideLastTab, setHideLastTab] = useState(false);\n\n const handleHideLastTab = () => {\n setHideLastTab(!hideLastTab);\n setTabKey('tab1');\n };\n\n return (\n <>\n <ExpanderPanel\n className='shadow-default'\n bodyClassName='padding-0'\n title='DataTabs inside an ExpanderPanel with one common tab content'\n bsStyle='default'\n open\n >\n <DataTabs\n activeKey={tabKey}\n bordered={false}\n disableTransition={false}\n commonTabContent={<DummyContent tabKey={tabKey} />}\n onSelectTab={newTabKey => setTabKey(newTabKey)}\n tabsWrapperClassName='bg-white'\n tabClassName='bg-lighter opacity-50 border border-color-transparent padding-y-5'\n tabHoverClassName='bg-lightest opacity-100 border border-color-transparent padding-y-5'\n tabActiveClassName='bg-white text-color-primary opacity-100 margin-bottom--1 border border-top-none border-bottom-none margin-top-1 padding-y-5'\n tabContentClassName='padding-left-0 padding-right-0'\n arrowClassName='left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0'\n >\n <DataTab\n tabKey='tab1'\n className='border-left-none'\n title={<Title text='Ø - Consumption' value='13,5 km/l' />}\n />\n <DataTab tabKey='tab2' title={<Title text='Ø - C02 Emission' value='12,2 kg' />} />\n <DataTab tabKey='tab3' title={<Title text='Ø - Range' value='32,8 l/100' />} />\n {!hideLastTab && (\n <DataTab\n tabKey='tab4'\n className='border-right-none'\n title={<Title text='Ø - Route type' value={<RouteType />} />}\n />\n )}\n </DataTabs>\n </ExpanderPanel>\n <ToggleButton onClick={handleHideLastTab}>Hide last tab</ToggleButton>\n </>\n );\n};\n\nexport const Title = ({ text, value }: { text: string; value: React.ReactNode }) => (\n <div>\n <div>{text}</div>\n <div className='text-bold text-size-18'>{value}</div>\n </div>\n);\n\nexport const RouteType = () => (\n <div>\n <span className='text-color-light'>A</span>\n <span className='text-color-light'>B</span>\n <span className='text-color-light'>C</span>\n <span className='text-color-light'>D</span>\n <span className='text-color-warning'>E</span>\n <span className='text-color-light'>F</span>\n </div>\n);"
426
+ },
427
+ {
428
+ "label": "HTML",
429
+ "language": "html",
430
+ "code": "<div class=\"expander-panel panel panel-default shadow-default\" aria-label=\"expander panel\">\n <div class=\"panel-heading open\" aria-label=\"panel heading\">\n <span class=\"title\">DataTabs inside an ExpanderPanel with one common tab content</span>\n <span class=\"expander-icon rioglyph rioglyph-chevron-down\">\n </span>\n </div>\n <div class=\"collapse display-block width-100pct\" style=\"opacity: 1; height: auto;\">\n <div>\n <div class=\"panel-body padding-0\">\n <div class=\"DataTabsContainer DataTabs-horizontal\">\n <div class=\"DataTabsWrapper bg-white\">\n <ul class=\"DataTabs\" role=\"tabList\">\n <li class=\"DataTab tab active bg-white text-color-primary opacity-100 margin-bottom--1 border border-top-none border-bottom-none margin-top-1 padding-y-5 border-left-none\" data-tabkey=\"tab1\">\n <div>\n <div>Ø - Consumption</div>\n <div class=\"text-bold text-size-18\">13,5 km/l</div>\n </div>\n <div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 in\">\n </div>\n </li>\n <li class=\"DataTab tab bg-lighter opacity-50 border border-color-transparent padding-y-5 cursor-pointer\" data-tabkey=\"tab2\">\n <div>\n <div>Ø - C02 Emission</div>\n <div class=\"text-bold text-size-18\">12,2 kg</div>\n </div>\n <div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 \">\n </div>\n </li>\n <li class=\"DataTab tab bg-lighter opacity-50 border border-color-transparent padding-y-5 cursor-pointer\" data-tabkey=\"tab3\">\n <div>\n <div>Ø - Range</div>\n <div class=\"text-bold text-size-18\">32,8 l/100</div>\n </div>\n <div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 \">\n </div>\n </li>\n <li class=\"DataTab tab bg-lighter opacity-50 border border-color-transparent padding-y-5 cursor-pointer border-right-none\" data-tabkey=\"tab4\">\n <div>\n <div>Ø - Route type</div>\n <div class=\"text-bold text-size-18\">\n <div>\n <span class=\"text-color-light\">A</span>\n <span class=\"text-color-light\">B</span>\n <span class=\"text-color-light\">C</span>\n <span class=\"text-color-light\">D</span>\n <span class=\"text-color-warning\">E</span>\n <span class=\"text-color-light\">F</span>\n </div>\n </div>\n </div>\n <div class=\"arrow left-10 right-10 width-auto bg-primary rotate-0 height-2 bottom-0 \">\n </div>\n </li>\n </ul>\n </div>\n <div class=\"tab-content padding-left-0 padding-right-0\" role=\"tabpanel\">\n <div>\n <div class=\"padding-left-15 padding-right-15\">\n <div class=\"height-200 max-width-500\">\n <div class=\"recharts-responsive-container\" style=\"width: 100%; height: 100%; min-width: 0px;\">\n <div class=\"recharts-wrapper\" style=\"position: relative; cursor: default; width: 100%; height: 100%; max-height: 200px; max-width: 500px;\">\n <svg class=\"recharts-surface\" width=\"500\" height=\"200\" viewBox=\"0 0 500 200\" style=\"width: 100%; height: 100%;\">\n <title>\n </title>\n <desc>\n </desc>\n <defs>\n <clipPath id=\"recharts1-clip\">\n <rect x=\"15\" y=\"15\" height=\"140\" width=\"470\">\n </rect>\n </clipPath>\n </defs>\n <g class=\"recharts-cartesian-grid\">\n <g class=\"recharts-cartesian-grid-horizontal\">\n <line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"155\" x2=\"485\" y2=\"155\">\n </line>\n <line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"120\" x2=\"485\" y2=\"120\">\n </line>\n <line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"85\" x2=\"485\" y2=\"85\">\n </line>\n <line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"50\" x2=\"485\" y2=\"50\">\n </line>\n <line stroke-dasharray=\"0\" stroke=\"#e5ebf0 \" fill=\"none\" x=\"15\" y=\"15\" width=\"470\" height=\"140\" x1=\"15\" y1=\"15\" x2=\"485\" y2=\"15\">\n </line>\n </g>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis recharts-xAxis xAxis\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-line\" stroke=\"#666\" fill=\"none\" x1=\"15\" y1=\"155\" x2=\"485\" y2=\"155\">\n </line>\n <g class=\"recharts-cartesian-axis-ticks\">\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"45\" y1=\"161\" x2=\"45\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"45\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"45\" dy=\"0.71em\">Page A</tspan>\n </text>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"113.33333333333333\" y1=\"161\" x2=\"113.33333333333333\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"113.33333333333333\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"113.33333333333333\" dy=\"0.71em\">Page B</tspan>\n </text>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"181.66666666666666\" y1=\"161\" x2=\"181.66666666666666\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"181.66666666666666\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"181.66666666666666\" dy=\"0.71em\">Page C</tspan>\n </text>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"250\" y1=\"161\" x2=\"250\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"250\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"250\" dy=\"0.71em\">Page D</tspan>\n </text>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"318.3333333333333\" y1=\"161\" x2=\"318.3333333333333\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"318.3333333333333\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"318.3333333333333\" dy=\"0.71em\">Page E</tspan>\n </text>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"386.66666666666663\" y1=\"161\" x2=\"386.66666666666663\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"386.66666666666663\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"386.66666666666663\" dy=\"0.71em\">Page F</tspan>\n </text>\n </g>\n <g class=\"recharts-layer recharts-cartesian-axis-tick\">\n <line orientation=\"bottom\" width=\"470\" height=\"30\" x=\"15\" y=\"155\" class=\"recharts-cartesian-axis-tick-line\" stroke=\"#666\" fill=\"none\" x1=\"455\" y1=\"161\" x2=\"455\" y2=\"155\">\n </line>\n <text orientation=\"bottom\" width=\"470\" height=\"30\" stroke=\"none\" x=\"455\" y=\"163\" class=\"recharts-text recharts-cartesian-axis-tick-value\" text-anchor=\"middle\" fill=\"#666\">\n <tspan x=\"455\" dy=\"0.71em\">Page G</tspan>\n </text>\n </g>\n </g>\n </g>\n <g class=\"recharts-layer recharts-line\">\n <path stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"none\" width=\"470\" height=\"140\" class=\"recharts-curve recharts-line-curve\" stroke-dasharray=\"446.5513916015625px 0px\" d=\"M45,77.222C67.778,48.25,90.556,19.278,113.333,19.278C136.111,19.278,158.889,19.278,181.667,19.278C204.444,19.278,227.222,31.204,250,38.333C272.778,45.463,295.556,62.056,318.333,62.056C341.111,62.056,363.889,38.333,386.667,38.333C409.444,38.333,432.222,42.611,455,46.889\">\n </path>\n <g class=\"recharts-layer\">\n </g>\n <g class=\"recharts-layer recharts-line-dots\">\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"45\" cy=\"77.22222222222221\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"113.33333333333333\" cy=\"19.27777777777778\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"181.66666666666666\" cy=\"19.27777777777778\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"250\" cy=\"38.33333333333333\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"318.3333333333333\" cy=\"62.05555555555556\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"386.66666666666663\" cy=\"38.33333333333333\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n <circle r=\"3\" stroke=\"#67abc5 \" stroke-width=\"1\" fill=\"#fff\" width=\"470\" height=\"140\" cx=\"455\" cy=\"46.888888888888886\" class=\"recharts-dot recharts-line-dot\">\n </circle>\n </g>\n </g>\n </svg>\n <div tabindex=\"-1\" class=\"recharts-tooltip-wrapper recharts-tooltip-wrapper-right recharts-tooltip-wrapper-bottom\" style=\"visibility: hidden; pointer-events: none; position: absolute; top: 0px; left: 0px; transform: translate(15px, 15px);\">\n <div class=\"recharts-default-tooltip\" style=\"margin: 0px; padding: 10px; background-color: rgb(255, 255, 255); border: 1px solid rgb(204, 204, 204); white-space: nowrap;\">\n <p class=\"recharts-tooltip-label\" style=\"margin: 0px;\">\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <hr>\n <div class=\"padding-left-15 padding-right-15\">\n <span class=\"\">The padding can be changes on demand by passing in util classes via \"tabContentClassName\" prop.</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<button type=\"button\" class=\"btn btn-default btn-toggle btn-component\" tabindex=\"0\">Hide last tab</button>"
431
+ },
432
+ {
433
+ "label": "Props",
434
+ "language": "json",
435
+ "code": null,
436
+ "props": [
437
+ {
438
+ "heading": "DataTabs",
439
+ "rows": [
440
+ {
441
+ "name": "activeKey",
442
+ "type": "String",
443
+ "default": "\"\"",
444
+ "description": "Sets key and id."
445
+ },
446
+ {
447
+ "name": "onSelectTab",
448
+ "type": "Boolean",
449
+ "default": "() => {}",
450
+ "description": "Called when a tab is being activated."
451
+ },
452
+ {
453
+ "name": "commonTabContent",
454
+ "type": "Node",
455
+ "default": "",
456
+ "description": "Tab content that is used for all tabs. Using a common tab content will ignore any DataTab child. Additionally, there will be no transition when switching tabs as it is a single tab content component."
457
+ },
458
+ {
459
+ "name": "vertical",
460
+ "type": "Boolean",
461
+ "default": "false",
462
+ "description": "Whether the layout should be vertical."
463
+ },
464
+ {
465
+ "name": "bordered",
466
+ "type": "Boolean",
467
+ "default": "true",
468
+ "description": "Whether the component should add a border."
469
+ },
470
+ {
471
+ "name": "disableTransition",
472
+ "type": "Boolean",
473
+ "default": "false",
474
+ "description": "Transitions between tab contents are enabled by default. Set if you want to disable them. The Navigation tabs will still remain animated."
475
+ },
476
+ {
477
+ "name": "className",
478
+ "type": "String",
479
+ "default": "",
480
+ "description": "Additional classes to be set on the wrapper element."
481
+ },
482
+ {
483
+ "name": "tabContentClassName",
484
+ "type": "String",
485
+ "default": "",
486
+ "description": "Additional classes to be set on the tabContent wrapper element."
487
+ },
488
+ {
489
+ "name": "tabsWrapperClassName",
490
+ "type": "String",
491
+ "default": "",
492
+ "description": "Additional classes to be set on the tabs wrapper element."
493
+ },
494
+ {
495
+ "name": "arrowClassName",
496
+ "type": "String",
497
+ "default": "bg-highlight-dark",
498
+ "description": "Additional classes to be set on the arrow."
499
+ },
500
+ {
501
+ "name": "tabClassName",
502
+ "type": "String",
503
+ "default": "bg-white",
504
+ "description": "Additional classes to be set on the tab element."
505
+ },
506
+ {
507
+ "name": "tabHoverClassName",
508
+ "type": "String",
509
+ "default": "text-color-darkest",
510
+ "description": "Utility hover classes to be set on the tab element."
511
+ },
512
+ {
513
+ "name": "tabActiveClassName",
514
+ "type": "String",
515
+ "default": "text-color-darkest",
516
+ "description": "Utility active classes to be set on the tab element."
517
+ }
518
+ ]
519
+ },
520
+ {
521
+ "heading": "DataTab",
522
+ "rows": [
523
+ {
524
+ "name": "tabKey",
525
+ "type": "String",
526
+ "default": "",
527
+ "description": "Used to identify the tab."
528
+ },
529
+ {
530
+ "name": "title",
531
+ "type": "String / Node",
532
+ "default": "",
533
+ "description": "The content for the tab."
534
+ },
535
+ {
536
+ "name": "className",
537
+ "type": "String",
538
+ "default": "",
539
+ "description": "Additional classes to be set on the element."
540
+ }
541
+ ]
542
+ }
543
+ ]
544
+ }
545
+ ]
546
+ },
547
+ {
548
+ "caption": "Example 5",
549
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"btn-group margin-bottom-15\"><button type=\"button\" class=\"btn btn-default active btn-component margin-top-15\" tabindex=\"0\">Data Set 1</button><button type=\"button\" class=\"btn btn-default btn-component margin-top-15\" tabindex=\"0\">Data Set 2</button></div><div class=\"DataTabsContainer DataTabs-horizontal\"><div class=\"DataTabsWrapper \"><ul class=\"DataTabs\" role=\"tabList\"><li class=\"DataTab tab active bg-highlight-dark text-color-white\" data-tabkey=\"tab1\"><div><div>Ø - Consumption</div><div class=\"text-bold text-size-18\">13,5 km/l</div></div><div class=\"arrow bg-highlight-dark border-color-transparent in\"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab2\"><div><div>Ø - C02 Emission</div><div class=\"text-bold text-size-18\">12,2 kg</div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li><li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab3\"><div><div>Ø - Range</div><div class=\"text-bold text-size-18\">32,8 l/100</div></div><div class=\"arrow bg-highlight-dark border-color-transparent \"></div></li></ul></div><div class=\"tab-content \" role=\"tabpanel\"><div class=\"padding-left-15 padding-right-15\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div></div></div></div>",
550
+ "tabs": [
551
+ {
552
+ "label": "React",
553
+ "language": "tsx",
554
+ "code": "/* eslint-disable max-len */\nimport React, { useState } from 'react';\n\nimport DataTabs from '@rio-cloud/rio-uikit/DataTabs';\nimport DataTab from '@rio-cloud/rio-uikit/DataTab';\nimport Button from '@rio-cloud/rio-uikit/Button';\nimport { dummyText, dummyTextExtraLong, dummyTextLong, dummyTextShort } from '../../../utils/data';\n\ntype DummyTab = { id: string; title: React.ReactNode };\n\nexport const Title = ({ text, value }: { text: string; value: React.ReactNode }) => (\n <div>\n <div>{text}</div>\n <div className='text-bold text-size-18'>{value}</div>\n </div>\n);\n\nconst DummyContent = ({ tabKey }: { tabKey: string }) => (\n <div className='padding-left-15 padding-right-15'>\n {tabKey === 'tab1' && dummyText}\n {tabKey === 'tab2' && dummyTextLong}\n {tabKey === 'tab3' && dummyTextShort}\n {tabKey === 'tab4' && dummyTextExtraLong}\n </div>\n);\n\nconst MyDataTabs = ({\n tabs = [],\n activeTab,\n onTabChange,\n}: {\n tabs: DummyTab[];\n activeTab: string;\n onTabChange: (newTab: string) => void;\n}) => {\n return (\n <DataTabs\n activeKey={activeTab}\n bordered={false}\n disableTransition={false}\n commonTabContent={<DummyContent tabKey={activeTab} />}\n onSelectTab={onTabChange}\n >\n {tabs.map(item => (\n <DataTab key={item.id} tabKey={item.id} title={item.title} />\n ))}\n </DataTabs>\n );\n};\n\nconst tabSetOne: DummyTab[] = [\n {\n id: 'tab1',\n title: <Title text='Ø - Consumption' value='13,5 km/l' />,\n },\n {\n id: 'tab2',\n title: <Title text='Ø - C02 Emission' value='12,2 kg' />,\n },\n {\n id: 'tab3',\n title: <Title text='Ø - Range' value='32,8 l/100' />,\n },\n {\n id: 'tab4',\n title: <Title text='Ø - Route type' value='Foobar' />,\n },\n];\n\nconst tabSetTwo: DummyTab[] = [\n {\n id: 'tab1',\n title: <Title text='Ø - Consumption' value='13,5 km/l' />,\n },\n {\n id: 'tab2',\n title: <Title text='Ø - C02 Emission' value='12,2 kg' />,\n },\n {\n id: 'tab3',\n title: <Title text='Ø - Range' value='32,8 l/100' />,\n },\n];\n\nexport default () => {\n const [tabKey, setTabKey] = useState('tab1');\n const [activeDataSet, setActiveDataSet] = useState(1);\n\n const handleSetDataSet = (id: number) => {\n setActiveDataSet(id);\n setTabKey('tab1');\n };\n\n return (\n <>\n <div className='btn-group margin-bottom-15'>\n <Button className='margin-top-15' onClick={() => handleSetDataSet(1)} active={activeDataSet === 1}>\n Data Set 1\n </Button>\n <Button className='margin-top-15' onClick={() => handleSetDataSet(2)} active={activeDataSet === 2}>\n Data Set 2\n </Button>\n </div>\n <MyDataTabs\n activeTab={tabKey}\n tabs={activeDataSet === 1 ? tabSetTwo : tabSetOne}\n onTabChange={(newTabKey: string) => setTabKey(newTabKey)}\n />\n </>\n );\n};"
555
+ },
556
+ {
557
+ "label": "HTML",
558
+ "language": "html",
559
+ "code": "<div class=\"btn-group margin-bottom-15\">\n <button type=\"button\" class=\"btn btn-default active btn-component margin-top-15\" tabindex=\"0\">Data Set 1</button>\n <button type=\"button\" class=\"btn btn-default btn-component margin-top-15\" tabindex=\"0\">Data Set 2</button>\n</div>\n<div class=\"DataTabsContainer DataTabs-horizontal\">\n <div class=\"DataTabsWrapper \">\n <ul class=\"DataTabs\" role=\"tabList\">\n <li class=\"DataTab tab active bg-highlight-dark text-color-white\" data-tabkey=\"tab1\">\n <div>\n <div>Ø - Consumption</div>\n <div class=\"text-bold text-size-18\">13,5 km/l</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent in\">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab2\">\n <div>\n <div>Ø - C02 Emission</div>\n <div class=\"text-bold text-size-18\">12,2 kg</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n <li class=\"DataTab tab cursor-pointer\" data-tabkey=\"tab3\">\n <div>\n <div>Ø - Range</div>\n <div class=\"text-bold text-size-18\">32,8 l/100</div>\n </div>\n <div class=\"arrow bg-highlight-dark border-color-transparent \">\n </div>\n </li>\n </ul>\n </div>\n <div class=\"tab-content \" role=\"tabpanel\">\n <div class=\"padding-left-15 padding-right-15\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt. Fusce ac ligula bibendum, rutrum libero quis, viverra sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis ut hendrerit massa, in molestie elit. Sed vitae orci ac purus volutpat posuere ac ut neque. Mauris ante orci, semper finibus lorem in, fringilla pretium velit.</div>\n </div>\n</div>"
560
+ },
561
+ {
562
+ "label": "Props",
563
+ "language": "json",
564
+ "code": null,
565
+ "props": [
566
+ {
567
+ "heading": "DataTabs",
568
+ "rows": [
569
+ {
570
+ "name": "activeKey",
571
+ "type": "String",
572
+ "default": "\"\"",
573
+ "description": "Sets key and id."
574
+ },
575
+ {
576
+ "name": "onSelectTab",
577
+ "type": "Boolean",
578
+ "default": "() => {}",
579
+ "description": "Called when a tab is being activated."
580
+ },
581
+ {
582
+ "name": "commonTabContent",
583
+ "type": "Node",
584
+ "default": "",
585
+ "description": "Tab content that is used for all tabs. Using a common tab content will ignore any DataTab child. Additionally, there will be no transition when switching tabs as it is a single tab content component."
586
+ },
587
+ {
588
+ "name": "vertical",
589
+ "type": "Boolean",
590
+ "default": "false",
591
+ "description": "Whether the layout should be vertical."
592
+ },
593
+ {
594
+ "name": "bordered",
595
+ "type": "Boolean",
596
+ "default": "true",
597
+ "description": "Whether the component should add a border."
598
+ },
599
+ {
600
+ "name": "disableTransition",
601
+ "type": "Boolean",
602
+ "default": "false",
603
+ "description": "Transitions between tab contents are enabled by default. Set if you want to disable them. The Navigation tabs will still remain animated."
604
+ },
605
+ {
606
+ "name": "className",
607
+ "type": "String",
608
+ "default": "",
609
+ "description": "Additional classes to be set on the wrapper element."
610
+ },
611
+ {
612
+ "name": "tabContentClassName",
613
+ "type": "String",
614
+ "default": "",
615
+ "description": "Additional classes to be set on the tabContent wrapper element."
616
+ },
617
+ {
618
+ "name": "tabsWrapperClassName",
619
+ "type": "String",
620
+ "default": "",
621
+ "description": "Additional classes to be set on the tabs wrapper element."
622
+ },
623
+ {
624
+ "name": "arrowClassName",
625
+ "type": "String",
626
+ "default": "bg-highlight-dark",
627
+ "description": "Additional classes to be set on the arrow."
628
+ },
629
+ {
630
+ "name": "tabClassName",
631
+ "type": "String",
632
+ "default": "bg-white",
633
+ "description": "Additional classes to be set on the tab element."
634
+ },
635
+ {
636
+ "name": "tabHoverClassName",
637
+ "type": "String",
638
+ "default": "text-color-darkest",
639
+ "description": "Utility hover classes to be set on the tab element."
640
+ },
641
+ {
642
+ "name": "tabActiveClassName",
643
+ "type": "String",
644
+ "default": "text-color-darkest",
645
+ "description": "Utility active classes to be set on the tab element."
646
+ }
647
+ ]
648
+ },
649
+ {
650
+ "heading": "DataTab",
651
+ "rows": [
652
+ {
653
+ "name": "tabKey",
654
+ "type": "String",
655
+ "default": "",
656
+ "description": "Used to identify the tab."
657
+ },
658
+ {
659
+ "name": "title",
660
+ "type": "String / Node",
661
+ "default": "",
662
+ "description": "The content for the tab."
663
+ },
664
+ {
665
+ "name": "className",
666
+ "type": "String",
667
+ "default": "",
668
+ "description": "Additional classes to be set on the element."
669
+ }
670
+ ]
671
+ }
672
+ ]
673
+ }
674
+ ]
675
+ }
676
+ ]
677
+ }
678
+ ],
679
+ "see_also": []
680
+ }