@rio-cloud/uikit-mcp 1.0.1 → 1.1.1

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 (388) hide show
  1. package/README.md +75 -39
  2. package/dist/doc-metadata.json +1872 -0
  3. package/dist/docs/components/accentBar.md +582 -0
  4. package/dist/docs/components/activity.md +330 -0
  5. package/dist/docs/components/animatedNumber.md +88 -0
  6. package/dist/docs/components/animatedTextReveal.md +381 -0
  7. package/dist/docs/components/animations.md +459 -0
  8. package/dist/docs/components/appHeader.md +737 -0
  9. package/dist/docs/components/appLayout.md +2033 -0
  10. package/dist/docs/components/appNavigationBar.md +274 -0
  11. package/dist/docs/components/areaCharts.md +828 -0
  12. package/dist/docs/components/aspectRatioPlaceholder.md +106 -0
  13. package/dist/docs/components/assetTree.md +3132 -0
  14. package/dist/docs/components/autosuggests.md +1177 -0
  15. package/dist/docs/components/avatar.md +206 -0
  16. package/dist/docs/components/banner.md +668 -0
  17. package/dist/docs/components/barCharts.md +2765 -0
  18. package/dist/docs/components/barList.md +517 -0
  19. package/dist/docs/components/basicMap.md +167 -0
  20. package/dist/docs/components/bottomSheet.md +721 -0
  21. package/dist/docs/components/button.md +775 -0
  22. package/dist/docs/components/buttonToolbar.md +134 -0
  23. package/dist/docs/components/calendarStripe.md +533 -0
  24. package/dist/docs/components/card.md +86 -0
  25. package/dist/docs/components/carousel.md +128 -0
  26. package/dist/docs/components/chartColors.md +716 -0
  27. package/dist/docs/components/chartsGettingStarted.md +28 -0
  28. package/dist/docs/components/chat.md +935 -0
  29. package/dist/docs/components/checkbox.md +996 -0
  30. package/dist/docs/components/clearableInput.md +806 -0
  31. package/dist/docs/components/collapse.md +189 -0
  32. package/dist/docs/components/composedCharts.md +424 -0
  33. package/dist/docs/components/contentLoader.md +674 -0
  34. package/dist/docs/components/dataTabs.md +1251 -0
  35. package/dist/docs/components/datepickers.md +2543 -0
  36. package/dist/docs/components/dialogs.md +2244 -0
  37. package/dist/docs/components/divider.md +219 -0
  38. package/dist/docs/components/dropdowns.md +17538 -0
  39. package/dist/docs/components/editableContent.md +1127 -0
  40. package/dist/docs/components/expander.md +970 -0
  41. package/dist/docs/components/fade.md +836 -0
  42. package/dist/docs/components/fadeExpander.md +180 -0
  43. package/dist/docs/components/fadeUp.md +396 -0
  44. package/dist/docs/components/feedback.md +758 -0
  45. package/dist/docs/components/filePickers.md +370 -0
  46. package/dist/docs/components/formLabel.md +251 -0
  47. package/dist/docs/components/fullscreenMap.md +10 -0
  48. package/dist/docs/components/groupedItemList.md +1001 -0
  49. package/dist/docs/components/iconList.md +306 -0
  50. package/dist/docs/components/imagePreloader.md +167 -0
  51. package/dist/docs/components/labeledElement.md +115 -0
  52. package/dist/docs/components/licensePlate.md +412 -0
  53. package/dist/docs/components/lineCharts.md +2014 -0
  54. package/dist/docs/components/listMenu.md +392 -0
  55. package/dist/docs/components/loadMore.md +219 -0
  56. package/dist/docs/components/mainNavigation.md +129 -0
  57. package/dist/docs/components/mapCircle.md +93 -0
  58. package/dist/docs/components/mapCluster.md +337 -0
  59. package/dist/docs/components/mapContext.md +284 -0
  60. package/dist/docs/components/mapDraggableMarker.md +150 -0
  61. package/dist/docs/components/mapGettingStarted.md +39 -0
  62. package/dist/docs/components/mapInfoBubble.md +135 -0
  63. package/dist/docs/components/mapLayerGroup.md +94 -0
  64. package/dist/docs/components/mapMarker.md +1814 -0
  65. package/dist/docs/components/mapPolygon.md +959 -0
  66. package/dist/docs/components/mapRoute.md +3816 -0
  67. package/dist/docs/components/mapRouteGenerator.md +6 -0
  68. package/dist/docs/components/mapSettings.md +1040 -0
  69. package/dist/docs/components/mapUtils.md +132 -0
  70. package/dist/docs/components/multiselects.md +1921 -0
  71. package/dist/docs/components/noData.md +210 -0
  72. package/dist/docs/components/notifications.md +314 -0
  73. package/dist/docs/components/numbercontrol.md +706 -0
  74. package/dist/docs/components/onboarding.md +297 -0
  75. package/dist/docs/components/page.md +241 -0
  76. package/dist/docs/components/pager.md +133 -0
  77. package/dist/docs/components/pieCharts.md +1284 -0
  78. package/dist/docs/components/popover.md +222 -0
  79. package/dist/docs/components/position.md +50 -0
  80. package/dist/docs/components/radialBarCharts.md +3663 -0
  81. package/dist/docs/components/radiobutton.md +1271 -0
  82. package/dist/docs/components/releaseNotes.md +135 -0
  83. package/dist/docs/components/resizer.md +162 -0
  84. package/dist/docs/components/responsiveColumnStripe.md +435 -0
  85. package/dist/docs/components/responsiveVideo.md +71 -0
  86. package/dist/docs/components/rioglyph.md +331 -0
  87. package/dist/docs/components/rules.md +965 -0
  88. package/dist/docs/components/saveableInput.md +1721 -0
  89. package/dist/docs/components/selects.md +1993 -0
  90. package/dist/docs/components/sidebar.md +332 -0
  91. package/dist/docs/components/sliders.md +376 -0
  92. package/dist/docs/components/smoothScrollbars.md +1180 -0
  93. package/dist/docs/components/spinners.md +506 -0
  94. package/dist/docs/components/states.md +1176 -0
  95. package/dist/docs/components/statsWidgets.md +636 -0
  96. package/dist/docs/components/statusBar.md +644 -0
  97. package/dist/docs/components/stepButton.md +61 -0
  98. package/dist/docs/components/steppedProgressBars.md +1064 -0
  99. package/dist/docs/components/subNavigation.md +470 -0
  100. package/dist/docs/components/supportMarker.md +115 -0
  101. package/dist/docs/components/svgImage.md +248 -0
  102. package/dist/docs/components/switch.md +554 -0
  103. package/dist/docs/components/tables.md +8 -0
  104. package/dist/docs/components/tagManager.md +476 -0
  105. package/dist/docs/components/tags.md +785 -0
  106. package/dist/docs/components/teaser.md +925 -0
  107. package/dist/docs/components/timeline.md +514 -0
  108. package/dist/docs/components/timepicker.md +262 -0
  109. package/dist/docs/components/toggleButton.md +178 -0
  110. package/dist/docs/components/tooltip.md +454 -0
  111. package/dist/docs/components/virtualList.md +486 -0
  112. package/dist/docs/foundations.md +20901 -0
  113. package/dist/docs/start/changelog.md +714 -0
  114. package/dist/docs/start/goodtoknow.md +14 -0
  115. package/dist/docs/start/guidelines/color-combinations.md +678 -0
  116. package/dist/docs/start/guidelines/custom-css.md +42 -0
  117. package/dist/docs/start/guidelines/custom-rioglyph.md +35 -0
  118. package/dist/docs/start/guidelines/formatting.md +587 -0
  119. package/dist/docs/start/guidelines/iframe.md +323 -0
  120. package/dist/docs/start/guidelines/obfuscate-data.md +30 -0
  121. package/dist/docs/start/guidelines/print-css.md +36 -0
  122. package/dist/docs/start/guidelines/spinner.md +710 -0
  123. package/dist/docs/start/guidelines/supported-browsers.md +10 -0
  124. package/dist/docs/start/guidelines/writing.md +635 -0
  125. package/dist/docs/start/howto.md +187 -0
  126. package/dist/docs/start/intro.md +43 -0
  127. package/dist/docs/start/responsiveness.md +98 -0
  128. package/dist/docs/templates/common-table.md +1111 -0
  129. package/dist/docs/templates/detail-views.md +942 -0
  130. package/dist/docs/templates/expandable-details.md +228 -0
  131. package/dist/docs/templates/feature-cards.md +549 -0
  132. package/dist/docs/templates/form-summary.md +199 -0
  133. package/dist/docs/templates/form-toggle.md +367 -0
  134. package/dist/docs/templates/list-blocks.md +1021 -0
  135. package/dist/docs/templates/loading-progress.md +109 -0
  136. package/dist/docs/templates/options-panel.md +152 -0
  137. package/dist/docs/templates/panel-variants.md +164 -0
  138. package/dist/docs/templates/progress-cards.md +607 -0
  139. package/dist/docs/templates/progress-success.md +142 -0
  140. package/dist/docs/templates/settings-form.md +434 -0
  141. package/dist/docs/templates/stats-blocks.md +1381 -0
  142. package/dist/docs/templates/table-panel.md +184 -0
  143. package/dist/docs/templates/table-row-animation.md +317 -0
  144. package/dist/docs/templates/usage-cards.md +227 -0
  145. package/dist/docs/utilities/deviceUtils.md +123 -0
  146. package/dist/docs/utilities/featureToggles.md +90 -0
  147. package/dist/docs/utilities/fuelTypeUtils.md +186 -0
  148. package/dist/docs/utilities/routeUtils.md +138 -0
  149. package/dist/docs/utilities/useAfterMount.md +66 -0
  150. package/dist/docs/utilities/useAutoAnimate.md +193 -0
  151. package/dist/docs/utilities/useAverage.md +95 -0
  152. package/dist/docs/utilities/useClickOutside.md +61 -0
  153. package/dist/docs/utilities/useClipboard.md +93 -0
  154. package/dist/docs/utilities/useCount.md +178 -0
  155. package/dist/docs/utilities/useDarkMode.md +49 -0
  156. package/dist/docs/utilities/useDebugInfo.md +126 -0
  157. package/dist/docs/utilities/useEffectOnce.md +58 -0
  158. package/dist/docs/utilities/useElapsedTime.md +58 -0
  159. package/dist/docs/utilities/useElementSize.md +71 -0
  160. package/dist/docs/utilities/useEsc.md +58 -0
  161. package/dist/docs/utilities/useEvent.md +64 -0
  162. package/dist/docs/utilities/useFocusTrap.md +85 -0
  163. package/dist/docs/utilities/useFullscreen.md +198 -0
  164. package/dist/docs/utilities/useHover.md +55 -0
  165. package/dist/docs/utilities/useIncomingPostMessages.md +237 -0
  166. package/dist/docs/utilities/useInterval.md +85 -0
  167. package/dist/docs/utilities/useIsFocusWithin.md +114 -0
  168. package/dist/docs/utilities/useKey.md +151 -0
  169. package/dist/docs/utilities/useLocalStorage.md +91 -0
  170. package/dist/docs/utilities/useLocationSuggestions.md +114 -0
  171. package/dist/docs/utilities/useMax.md +62 -0
  172. package/dist/docs/utilities/useMin.md +78 -0
  173. package/dist/docs/utilities/useMutationObserver.md +113 -0
  174. package/dist/docs/utilities/useOnScreen.md +138 -0
  175. package/dist/docs/utilities/useOnlineStatus.md +49 -0
  176. package/dist/docs/utilities/usePostMessage.md +117 -0
  177. package/dist/docs/utilities/usePostMessageSender.md +257 -0
  178. package/dist/docs/utilities/usePrevious.md +101 -0
  179. package/dist/docs/utilities/useResizeObserver.md +151 -0
  180. package/dist/docs/utilities/useScrollPosition.md +252 -0
  181. package/dist/docs/utilities/useSearch.md +228 -0
  182. package/dist/docs/utilities/useSorting.md +389 -0
  183. package/dist/docs/utilities/useStateWithValidation.md +83 -0
  184. package/dist/docs/utilities/useSum.md +155 -0
  185. package/dist/docs/utilities/useTableExport.md +404 -0
  186. package/dist/docs/utilities/useTableSelection.md +1120 -0
  187. package/dist/docs/utilities/useTimeout.md +55 -0
  188. package/dist/docs/utilities/useToggle.md +115 -0
  189. package/dist/docs/utilities/useWindowResize.md +70 -0
  190. package/dist/index.mjs +271 -0
  191. package/dist/search-synonyms.json +134 -0
  192. package/dist/version.json +4 -0
  193. package/package.json +23 -19
  194. package/bin/uikit-mcp.mjs +0 -23
  195. package/data/pages/Components/components/accentbar.json +0 -207
  196. package/data/pages/Components/components/activity.json +0 -87
  197. package/data/pages/Components/components/animatednumber.json +0 -99
  198. package/data/pages/Components/components/animations.json +0 -87
  199. package/data/pages/Components/components/appheader.json +0 -291
  200. package/data/pages/Components/components/applayout.json +0 -1198
  201. package/data/pages/Components/components/appnavigationbar.json +0 -327
  202. package/data/pages/Components/components/areacharts.json +0 -563
  203. package/data/pages/Components/components/aspectratioplaceholder.json +0 -75
  204. package/data/pages/Components/components/assettree.json +0 -3080
  205. package/data/pages/Components/components/autosuggests.json +0 -710
  206. package/data/pages/Components/components/avatar.json +0 -157
  207. package/data/pages/Components/components/banner.json +0 -599
  208. package/data/pages/Components/components/barcharts.json +0 -1507
  209. package/data/pages/Components/components/barlist.json +0 -223
  210. package/data/pages/Components/components/basicmap.json +0 -68
  211. package/data/pages/Components/components/bottomsheet.json +0 -601
  212. package/data/pages/Components/components/button.json +0 -583
  213. package/data/pages/Components/components/buttontoolbar.json +0 -63
  214. package/data/pages/Components/components/calendarstripe.json +0 -235
  215. package/data/pages/Components/components/card.json +0 -69
  216. package/data/pages/Components/components/carousel.json +0 -39
  217. package/data/pages/Components/components/chartcolors.json +0 -34
  218. package/data/pages/Components/components/chartsgettingstarted.json +0 -32
  219. package/data/pages/Components/components/chat.json +0 -39
  220. package/data/pages/Components/components/checkbox.json +0 -847
  221. package/data/pages/Components/components/clearableinput.json +0 -789
  222. package/data/pages/Components/components/collapse.json +0 -175
  223. package/data/pages/Components/components/composedcharts.json +0 -159
  224. package/data/pages/Components/components/contentloader.json +0 -233
  225. package/data/pages/Components/components/datatabs.json +0 -680
  226. package/data/pages/Components/components/datepickers.json +0 -287
  227. package/data/pages/Components/components/dialogs.json +0 -1492
  228. package/data/pages/Components/components/divider.json +0 -93
  229. package/data/pages/Components/components/dropdowns.json +0 -936
  230. package/data/pages/Components/components/editablecontent.json +0 -1117
  231. package/data/pages/Components/components/expander.json +0 -377
  232. package/data/pages/Components/components/fade.json +0 -403
  233. package/data/pages/Components/components/fadeexpander.json +0 -75
  234. package/data/pages/Components/components/fadeup.json +0 -127
  235. package/data/pages/Components/components/feedback.json +0 -269
  236. package/data/pages/Components/components/filepickers.json +0 -269
  237. package/data/pages/Components/components/formlabel.json +0 -115
  238. package/data/pages/Components/components/fullscreenmap.json +0 -22
  239. package/data/pages/Components/components/groupeditemlist.json +0 -323
  240. package/data/pages/Components/components/iconlist.json +0 -45
  241. package/data/pages/Components/components/imagepreloader.json +0 -81
  242. package/data/pages/Components/components/labeledelement.json +0 -75
  243. package/data/pages/Components/components/licenseplate.json +0 -69
  244. package/data/pages/Components/components/linecharts.json +0 -987
  245. package/data/pages/Components/components/listmenu.json +0 -313
  246. package/data/pages/Components/components/loadmore.json +0 -175
  247. package/data/pages/Components/components/mainnavigation.json +0 -39
  248. package/data/pages/Components/components/mapcircle.json +0 -34
  249. package/data/pages/Components/components/mapcluster.json +0 -51
  250. package/data/pages/Components/components/mapcontext.json +0 -105
  251. package/data/pages/Components/components/mapdraggablemarker.json +0 -34
  252. package/data/pages/Components/components/mapgettingstarted.json +0 -27
  253. package/data/pages/Components/components/mapgroup.json +0 -1198
  254. package/data/pages/Components/components/mapinfobubble.json +0 -34
  255. package/data/pages/Components/components/maplayergroup.json +0 -34
  256. package/data/pages/Components/components/mapmarker.json +0 -700
  257. package/data/pages/Components/components/mappolygon.json +0 -45
  258. package/data/pages/Components/components/maproute.json +0 -623
  259. package/data/pages/Components/components/maproutegenerator.json +0 -16
  260. package/data/pages/Components/components/mapsettings.json +0 -51
  261. package/data/pages/Components/components/maputils.json +0 -34
  262. package/data/pages/Components/components/multiselects.json +0 -1451
  263. package/data/pages/Components/components/nodata.json +0 -139
  264. package/data/pages/Components/components/notifications.json +0 -65
  265. package/data/pages/Components/components/numbercontrol.json +0 -301
  266. package/data/pages/Components/components/onboarding.json +0 -302
  267. package/data/pages/Components/components/page.json +0 -197
  268. package/data/pages/Components/components/pager.json +0 -93
  269. package/data/pages/Components/components/piecharts.json +0 -731
  270. package/data/pages/Components/components/popover.json +0 -251
  271. package/data/pages/Components/components/position.json +0 -69
  272. package/data/pages/Components/components/radialbarcharts.json +0 -1304
  273. package/data/pages/Components/components/radiobutton.json +0 -1105
  274. package/data/pages/Components/components/releasenotes.json +0 -44
  275. package/data/pages/Components/components/resizer.json +0 -93
  276. package/data/pages/Components/components/responsivecolumnstripe.json +0 -123
  277. package/data/pages/Components/components/responsivevideo.json +0 -75
  278. package/data/pages/Components/components/rioglyph.json +0 -93
  279. package/data/pages/Components/components/rules.json +0 -410
  280. package/data/pages/Components/components/saveableinput.json +0 -703
  281. package/data/pages/Components/components/selects.json +0 -701
  282. package/data/pages/Components/components/sidebar.json +0 -243
  283. package/data/pages/Components/components/sliders.json +0 -235
  284. package/data/pages/Components/components/smoothscrollbars.json +0 -335
  285. package/data/pages/Components/components/spinners.json +0 -343
  286. package/data/pages/Components/components/states.json +0 -1705
  287. package/data/pages/Components/components/statswidgets.json +0 -314
  288. package/data/pages/Components/components/statusbar.json +0 -177
  289. package/data/pages/Components/components/stepbutton.json +0 -57
  290. package/data/pages/Components/components/steppedprogressbars.json +0 -417
  291. package/data/pages/Components/components/subnavigation.json +0 -107
  292. package/data/pages/Components/components/supportmarker.json +0 -45
  293. package/data/pages/Components/components/svgimage.json +0 -81
  294. package/data/pages/Components/components/switch.json +0 -111
  295. package/data/pages/Components/components/tables.json +0 -144
  296. package/data/pages/Components/components/tagmanager.json +0 -86
  297. package/data/pages/Components/components/tags.json +0 -146
  298. package/data/pages/Components/components/teaser.json +0 -188
  299. package/data/pages/Components/components/timeline.json +0 -45
  300. package/data/pages/Components/components/timepicker.json +0 -163
  301. package/data/pages/Components/components/togglebutton.json +0 -247
  302. package/data/pages/Components/components/tooltip.json +0 -270
  303. package/data/pages/Components/components/virtuallist.json +0 -175
  304. package/data/pages/Foundations/foundations.json +0 -2475
  305. package/data/pages/Getting-started/start/changelog.json +0 -22
  306. package/data/pages/Getting-started/start/goodtoknow.json +0 -32
  307. package/data/pages/Getting-started/start/guidelines/color-combinations.json +0 -58
  308. package/data/pages/Getting-started/start/guidelines/custom-css.json +0 -27
  309. package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +0 -22
  310. package/data/pages/Getting-started/start/guidelines/formatting.json +0 -97
  311. package/data/pages/Getting-started/start/guidelines/iframe.json +0 -93
  312. package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +0 -22
  313. package/data/pages/Getting-started/start/guidelines/print-css.json +0 -37
  314. package/data/pages/Getting-started/start/guidelines/spinner.json +0 -144
  315. package/data/pages/Getting-started/start/guidelines/supported-browsers.json +0 -22
  316. package/data/pages/Getting-started/start/guidelines/writing.json +0 -242
  317. package/data/pages/Getting-started/start/howto.json +0 -72
  318. package/data/pages/Getting-started/start/intro.json +0 -37
  319. package/data/pages/Getting-started/start/responsiveness.json +0 -52
  320. package/data/pages/Templates/templates/common-table.json +0 -39
  321. package/data/pages/Templates/templates/detail-views.json +0 -71
  322. package/data/pages/Templates/templates/expandable-details.json +0 -39
  323. package/data/pages/Templates/templates/feature-cards.json +0 -103
  324. package/data/pages/Templates/templates/form-summary.json +0 -39
  325. package/data/pages/Templates/templates/form-toggle.json +0 -39
  326. package/data/pages/Templates/templates/list-blocks.json +0 -119
  327. package/data/pages/Templates/templates/loading-progress.json +0 -39
  328. package/data/pages/Templates/templates/options-panel.json +0 -39
  329. package/data/pages/Templates/templates/panel-variants.json +0 -39
  330. package/data/pages/Templates/templates/progress-cards.json +0 -71
  331. package/data/pages/Templates/templates/progress-success.json +0 -39
  332. package/data/pages/Templates/templates/settings-form.json +0 -39
  333. package/data/pages/Templates/templates/stats-blocks.json +0 -135
  334. package/data/pages/Templates/templates/table-panel.json +0 -39
  335. package/data/pages/Templates/templates/table-row-animation.json +0 -39
  336. package/data/pages/Templates/templates/usage-cards.json +0 -39
  337. package/data/pages/Utilities/utilities/deviceutils.json +0 -39
  338. package/data/pages/Utilities/utilities/featuretoggles.json +0 -42
  339. package/data/pages/Utilities/utilities/fueltypeutils.json +0 -118
  340. package/data/pages/Utilities/utilities/routeutils.json +0 -34
  341. package/data/pages/Utilities/utilities/useaftermount.json +0 -63
  342. package/data/pages/Utilities/utilities/useaverage.json +0 -86
  343. package/data/pages/Utilities/utilities/useclickoutside.json +0 -69
  344. package/data/pages/Utilities/utilities/useclipboard.json +0 -57
  345. package/data/pages/Utilities/utilities/usecount.json +0 -92
  346. package/data/pages/Utilities/utilities/usedarkmode.json +0 -50
  347. package/data/pages/Utilities/utilities/usedebuginfo.json +0 -63
  348. package/data/pages/Utilities/utilities/useeffectonce.json +0 -57
  349. package/data/pages/Utilities/utilities/useelapsedtime.json +0 -57
  350. package/data/pages/Utilities/utilities/useelementsize.json +0 -63
  351. package/data/pages/Utilities/utilities/useesc.json +0 -57
  352. package/data/pages/Utilities/utilities/useevent.json +0 -75
  353. package/data/pages/Utilities/utilities/usefocustrap.json +0 -57
  354. package/data/pages/Utilities/utilities/usefullscreen.json +0 -197
  355. package/data/pages/Utilities/utilities/usehover.json +0 -57
  356. package/data/pages/Utilities/utilities/useinterval.json +0 -63
  357. package/data/pages/Utilities/utilities/useisfocuswithin.json +0 -75
  358. package/data/pages/Utilities/utilities/usekey.json +0 -75
  359. package/data/pages/Utilities/utilities/uselocalstorage.json +0 -69
  360. package/data/pages/Utilities/utilities/uselocationsuggestions.json +0 -110
  361. package/data/pages/Utilities/utilities/usemax.json +0 -86
  362. package/data/pages/Utilities/utilities/usemin.json +0 -86
  363. package/data/pages/Utilities/utilities/usemutationobserver.json +0 -69
  364. package/data/pages/Utilities/utilities/useonlinestatus.json +0 -39
  365. package/data/pages/Utilities/utilities/useonscreen.json +0 -63
  366. package/data/pages/Utilities/utilities/usepostmessage.json +0 -80
  367. package/data/pages/Utilities/utilities/useprevious.json +0 -63
  368. package/data/pages/Utilities/utilities/useresizeobserver.json +0 -65
  369. package/data/pages/Utilities/utilities/usescrollposition.json +0 -103
  370. package/data/pages/Utilities/utilities/usesearch.json +0 -197
  371. package/data/pages/Utilities/utilities/usesorting.json +0 -139
  372. package/data/pages/Utilities/utilities/usestatewithvalidation.json +0 -69
  373. package/data/pages/Utilities/utilities/usesum.json +0 -86
  374. package/data/pages/Utilities/utilities/usetableexport.json +0 -87
  375. package/data/pages/Utilities/utilities/usetableselection.json +0 -311
  376. package/data/pages/Utilities/utilities/usetimeout.json +0 -63
  377. package/data/pages/Utilities/utilities/usetoggle.json +0 -75
  378. package/data/pages/Utilities/utilities/usewindowresize.json +0 -63
  379. package/data/version.json +0 -4
  380. package/docs/content-schema.md +0 -147
  381. package/docs/navigation-inventory.json +0 -1310
  382. package/docs/search-synonyms.json +0 -43
  383. package/server/index.mjs +0 -268
  384. package/server/lib/load-docs.mjs +0 -48
  385. package/server/lib/normalise-doc.mjs +0 -220
  386. package/server/lib/render-markdown.mjs +0 -82
  387. package/server/lib/search-index.mjs +0 -49
  388. package/server/lib/types.js +0 -99
@@ -0,0 +1,970 @@
1
+ # ExpanderPanel
2
+
3
+ *Category:* Components
4
+ *Section:* Show/Hide
5
+ *Source:* https://uikit.developers.rio.cloud/#components/expander
6
+ *Captured:* 2025-12-12T14:20:25.698Z
7
+
8
+ A simple panel component where the "panel-body" can be expanded.
9
+
10
+ ## ExpanderPanel
11
+
12
+ ### Example: Example 1
13
+
14
+ Toggle expanderOpen expanderClose expander
15
+ Click me to toggle my state
16
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
17
+
18
+ #### Summary
19
+
20
+ Toggle expanderOpen expanderClose expander
21
+ Click me to toggle my state
22
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
23
+
24
+ #### React (tsx)
25
+
26
+ ```tsx
27
+ import { useState } from 'react';
28
+
29
+ import ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';
30
+ import Button from '@rio-cloud/rio-uikit/Button';
31
+
32
+ const content = (
33
+ <div>
34
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
35
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
36
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
37
+ </div>
38
+ );
39
+
40
+ export default () => {
41
+ const [expanderIsOpen, setExpanderIsOpen] = useState(true);
42
+
43
+ const handleToggleExpander = () => {
44
+ setExpanderIsOpen(prev => !prev);
45
+ };
46
+
47
+ const handleForceOpen = () => {
48
+ setExpanderIsOpen(prev => (prev ? prev : true));
49
+ };
50
+
51
+ const handleForceClose = () => {
52
+ setExpanderIsOpen(prev => (prev ? false : prev));
53
+ };
54
+
55
+ return (
56
+ <div>
57
+ <div className='btn-toolbar'>
58
+ <Button bsStyle='primary' onClick={handleToggleExpander}>
59
+ Toggle expander
60
+ </Button>
61
+ <Button onClick={handleForceOpen} disabled={expanderIsOpen}>
62
+ Open expander
63
+ </Button>
64
+ <Button onClick={handleForceClose} disabled={!expanderIsOpen}>
65
+ Close expander
66
+ </Button>
67
+ </div>
68
+ <div className='display-grid grid-cols-1 grid-cols-2-lg'>
69
+ <div className='padding-top-20'>
70
+ <ExpanderPanel
71
+ open={expanderIsOpen}
72
+ title='Click me to toggle my state'
73
+ bsStyle='default'
74
+ onEntered={() => setExpanderIsOpen(true)}
75
+ onExited={() => setExpanderIsOpen(false)}
76
+ >
77
+ {content}
78
+ </ExpanderPanel>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ );
83
+ };
84
+ ```
85
+
86
+ #### HTML (html)
87
+
88
+ ```html
89
+ <div>
90
+ <div class="btn-toolbar">
91
+ <button type="button" class="btn btn-primary btn-component" tabindex="0">Toggle expander</button>
92
+ <button type="button" class="btn btn-default btn-component" disabled="" tabindex="0">Open expander</button>
93
+ <button type="button" class="btn btn-default btn-component" tabindex="0">Close expander</button>
94
+ </div>
95
+ <div class="display-grid grid-cols-1 grid-cols-2-lg">
96
+ <div class="padding-top-20">
97
+ <div class="expander-panel panel panel-default" aria-label="expander panel">
98
+ <div class="panel-heading open" aria-label="panel heading">
99
+ <span class="title">Click me to toggle my state</span>
100
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
101
+ </span>
102
+ </div>
103
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
104
+ <div>
105
+ <div class="panel-body">
106
+ <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet</div>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ ```
115
+
116
+ #### Props
117
+
118
+ | Name | Type | Default | Description |
119
+ | --- | --- | --- | --- |
120
+ | title | String / Node | — | The title to be shown in the expander header. |
121
+ | bsStyle | String | 'blank' | Component visual or contextual style variants. Possible values are: 'default' 'separator' 'blank' 'primary' 'secondary' 'info' 'warning' 'danger' 'success' |
122
+ | iconLeft | Boolean | false | Defines if the icon will be align left, otherwise it is aligned right. |
123
+ | open | Boolean | false | Defines if the panel will be opened or closed by default. The open/closed state will be handled internally |
124
+ | unmountOnExit | Boolean | true | It unmounts the body component (remove it from the DOM) when it is collapsed. Set it to false to avoid the unmount. |
125
+ | className | String | — | Additional classes to be set on the wrapper element. |
126
+ | iconClassName | String | — | Additional classes added to the chevron icon |
127
+ | headerClassName | String | — | Additional classes to be set on the panel header. |
128
+ | titleClassName | String | — | Additional classes to be set on the header title. |
129
+ | bodyClassName | String | — | Additional classes to be set on the panel body. |
130
+ | onToggle | (isOpen: boolean) => void | — | Callback function for when the header is clicked and the expander toggles. |
131
+ | onEntered | VoidFunction | — | Callback fired after the component has expanded. |
132
+ | onExited | VoidFunction | — | Callback fired after the component has collapsed. |
133
+ | onAnimationStart | VoidFunction | — | Callback fired when the animation starts for either expand or collapse. |
134
+ | children | Node | — | Any element to be rendered inside the panel body. |
135
+ | children | Function | — | Providing a function enables the "render props" approach. The function gets the isOpen state passed and is responsible for rendering the custom content. |
136
+
137
+ ### Example: Default
138
+
139
+ DefaultLorem ipsum
140
+ Some content
141
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
142
+
143
+ BlankLorem ipsum
144
+ Some content
145
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
146
+
147
+ SeparatorSeparator with icon left
148
+
149
+ Lorem ipsum dolor sit amet
150
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
151
+
152
+ SeparatorSeparator right aligned
153
+
154
+ Lorem ipsum dolor sit amet
155
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
156
+
157
+ PrimaryLorem ipsum
158
+
159
+ PrimaryHeader with icon left
160
+
161
+ SecondaryLorem ipsum
162
+
163
+ InfoLorem ipsum
164
+
165
+ WarningLorem ipsum
166
+
167
+ DangerLorem ipsum
168
+
169
+ successLorem ipsum
170
+
171
+ Dynamic table content
172
+ Item 1
173
+ Item 2
174
+ Item 3
175
+
176
+ Add new table row
177
+
178
+ #### Summary
179
+
180
+ DefaultLorem ipsum
181
+ Some content
182
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
183
+
184
+ BlankLorem ipsum
185
+ Some content
186
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
187
+
188
+ SeparatorSeparator with icon left
189
+
190
+ Lorem ipsum dolor sit amet
191
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
192
+
193
+ SeparatorSeparator right aligned
194
+
195
+ Lorem ipsum dolor sit amet
196
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
197
+
198
+ PrimaryLorem ipsum
199
+
200
+ PrimaryHeader with icon left
201
+
202
+ SecondaryLorem ipsum
203
+
204
+ InfoLorem ipsum
205
+
206
+ WarningLorem ipsum
207
+
208
+ DangerLorem ipsum
209
+
210
+ successLorem ipsum
211
+
212
+ Dynamic table content
213
+ Item 1
214
+ Item 2
215
+ Item 3
216
+
217
+ Add new table row
218
+
219
+ #### React (tsx)
220
+
221
+ ```tsx
222
+ import { useState } from 'react';
223
+
224
+ import ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';
225
+ import { dummyTextExtraShort } from '../../../utils/data';
226
+
227
+ const content = (
228
+ <div>
229
+ <div className='lead'>Some content</div>
230
+ <div>
231
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
232
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
233
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
234
+ </div>
235
+ </div>
236
+ );
237
+
238
+ const content2 = (
239
+ <div>
240
+ <div className='panel panel-default panel-body bg-lightest'>
241
+ <div className='text-bold'>Lorem ipsum dolor sit amet</div>
242
+ <div>
243
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
244
+ erat, sed diam voluptua.
245
+ </div>
246
+ </div>
247
+ </div>
248
+ );
249
+
250
+ export default () => (
251
+ <div>
252
+ <div className='display-grid grid-cols-1 grid-cols-2-sm grid-cols-4-lg gap-15 margin-bottom-50'>
253
+ <div className='grid-colspan-1 grid-colspan-2-lg'>
254
+ <label className='text-color-dark'>Default</label>
255
+ <ExpanderPanel
256
+ open
257
+ title='Lorem ipsum'
258
+ bsStyle='default'
259
+ onEntered={() => console.log('opened')}
260
+ onExited={() => console.log('closed')}
261
+ >
262
+ {content}
263
+ </ExpanderPanel>
264
+ </div>
265
+ <div className='grid-colspan-1 grid-colspan-2-lg'>
266
+ <label className='text-color-dark'>Blank</label>
267
+ <ExpanderPanel open title='Lorem ipsum' bsStyle='blank'>
268
+ {content}
269
+ </ExpanderPanel>
270
+ </div>
271
+ <div className='grid-colspan-1 grid-colspan-2-lg'>
272
+ <label className='text-color-dark'>Separator</label>
273
+ <ExpanderPanel
274
+ open
275
+ title='Separator with icon left'
276
+ iconLeft
277
+ bsStyle='separator'
278
+ bodyClassName='padding-top-5 padding-x-0'
279
+ >
280
+ {(open: boolean) => {
281
+ console.log(`isOpen: ${open}`);
282
+ return content2;
283
+ }}
284
+ </ExpanderPanel>
285
+ </div>
286
+ <div className='grid-colspan-1 grid-colspan-2-lg'>
287
+ <label className='text-color-dark'>Separator</label>
288
+ <ExpanderPanel
289
+ open
290
+ title='Separator right aligned'
291
+ bsStyle='separator'
292
+ bodyClassName='padding-top-5 padding-right-20'
293
+ >
294
+ {(open: boolean) => {
295
+ console.log(`isOpen: ${open}`);
296
+ return content2;
297
+ }}
298
+ </ExpanderPanel>
299
+ </div>
300
+ <div className='grid-colspan-1 grid-colspan-2-lg'>
301
+ <label className='text-color-dark'>Primary</label>
302
+ <ExpanderPanel title='Lorem ipsum' titleClassName='text-normal' bsStyle='primary'>
303
+ {(open: boolean) => {
304
+ console.log(`isOpen: ${open}`);
305
+ return content2;
306
+ }}
307
+ </ExpanderPanel>
308
+ </div>
309
+ <div className='grid-colspan-1 grid-colspan-2-lg'>
310
+ <label className='text-color-dark'>Primary</label>
311
+ <ExpanderPanel title='Header with icon left' titleClassName='text-normal' iconLeft bsStyle='primary'>
312
+ {(open: boolean) => {
313
+ console.log(`isOpen: ${open}`);
314
+ return content2;
315
+ }}
316
+ </ExpanderPanel>
317
+ </div>
318
+ <div className=''>
319
+ <label className='text-color-dark'>Secondary</label>
320
+ <ExpanderPanel title='Lorem ipsum' bsStyle='secondary'>
321
+ {dummyTextExtraShort}
322
+ </ExpanderPanel>
323
+ </div>
324
+ <div className=''>
325
+ <label className='text-color-dark'>Info</label>
326
+ <ExpanderPanel title='Lorem ipsum' bsStyle='info'>
327
+ {dummyTextExtraShort}
328
+ </ExpanderPanel>
329
+ </div>
330
+ <div className=''>
331
+ <label className='text-color-dark'>Warning</label>
332
+ <ExpanderPanel title='Lorem ipsum' bsStyle='warning'>
333
+ {dummyTextExtraShort}
334
+ </ExpanderPanel>
335
+ </div>
336
+ <div className=''>
337
+ <label className='text-color-dark'>Danger</label>
338
+ <ExpanderPanel title='Lorem ipsum' bsStyle='danger'>
339
+ {dummyTextExtraShort}
340
+ </ExpanderPanel>
341
+ </div>
342
+ <div className=''>
343
+ <label className='text-color-dark'>success</label>
344
+ <ExpanderPanel title='Lorem ipsum' bsStyle='success'>
345
+ {dummyTextExtraShort}
346
+ </ExpanderPanel>
347
+ </div>
348
+ </div>
349
+ <ExpanderPanel
350
+ title='Dynamic table content'
351
+ bsStyle='default'
352
+ titleClassName='text-bold'
353
+ bodyClassName='padding-0'
354
+ open
355
+ >
356
+ <DynamicContent />
357
+ </ExpanderPanel>
358
+ </div>
359
+ );
360
+
361
+ const DynamicContent = () => {
362
+ const [listItems, setListItems] = useState([
363
+ {
364
+ id: 1,
365
+ content: 'Item 1',
366
+ },
367
+ {
368
+ id: 2,
369
+ content: 'Item 2',
370
+ },
371
+ {
372
+ id: 3,
373
+ content: 'Item 3',
374
+ },
375
+ ]);
376
+
377
+ const handleAddItem = () => {
378
+ const lastItem = listItems[listItems.length - 1];
379
+ const newId = lastItem ? lastItem.id + 1 : 1;
380
+ const newItem = { id: newId, content: `Item ${newId}` };
381
+
382
+ setListItems([...listItems, newItem]);
383
+ };
384
+
385
+ const handleRemoveItem = (event: React.MouseEvent<HTMLButtonElement>) => {
386
+ const idString = event.currentTarget.getAttribute('data-id');
387
+ if (idString) {
388
+ const id = Number.parseInt(idString, 10);
389
+ if (!isNaN(id)) {
390
+ setListItems(listItems.filter(item => item.id !== id));
391
+ }
392
+ }
393
+ };
394
+
395
+ return (
396
+ <div>
397
+ <table className='table margin-0 border border-bottom-only border-color-lighter'>
398
+ <colgroup>
399
+ <col className='width-100pct' />
400
+ </colgroup>
401
+ <tbody>
402
+ {listItems.map(item => (
403
+ <tr key={item.id}>
404
+ <td>{item.content}</td>
405
+ <td>
406
+ <button
407
+ data-id={item.id}
408
+ type='button'
409
+ className='btn btn-xs btn-muted btn-icon-only'
410
+ onClick={handleRemoveItem}
411
+ >
412
+ <span className='rioglyph rioglyph-remove' />
413
+ </button>
414
+ </td>
415
+ </tr>
416
+ ))}
417
+ </tbody>
418
+ </table>
419
+ <div key='addNew' className='padding-25 text-center'>
420
+ <button type='button' className='btn btn-default' onClick={handleAddItem}>
421
+ <span className='rioglyph rioglyph-plus' />
422
+ <span>Add new table row</span>
423
+ </button>
424
+ </div>
425
+ </div>
426
+ );
427
+ };
428
+ ```
429
+
430
+ #### HTML (html)
431
+
432
+ ```html
433
+ <div>
434
+ <div class="display-grid grid-cols-1 grid-cols-2-sm grid-cols-4-lg gap-15 margin-bottom-50">
435
+ <div class="grid-colspan-1 grid-colspan-2-lg">
436
+ <label class="text-color-dark">Default</label>
437
+ <div class="expander-panel panel panel-default" aria-label="expander panel">
438
+ <div class="panel-heading open" aria-label="panel heading">
439
+ <span class="title">Lorem ipsum</span>
440
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
441
+ </span>
442
+ </div>
443
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
444
+ <div>
445
+ <div class="panel-body">
446
+ <div>
447
+ <div class="lead">Some content</div>
448
+ <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet</div>
449
+ </div>
450
+ </div>
451
+ </div>
452
+ </div>
453
+ </div>
454
+ </div>
455
+ <div class="grid-colspan-1 grid-colspan-2-lg">
456
+ <label class="text-color-dark">Blank</label>
457
+ <div class="expander-panel panel panel-blank" aria-label="expander panel">
458
+ <div class="panel-heading open" aria-label="panel heading">
459
+ <span class="title">Lorem ipsum</span>
460
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
461
+ </span>
462
+ </div>
463
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
464
+ <div>
465
+ <div class="panel-body">
466
+ <div>
467
+ <div class="lead">Some content</div>
468
+ <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet</div>
469
+ </div>
470
+ </div>
471
+ </div>
472
+ </div>
473
+ </div>
474
+ </div>
475
+ <div class="grid-colspan-1 grid-colspan-2-lg">
476
+ <label class="text-color-dark">Separator</label>
477
+ <div class="expander-panel panel panel-separator" aria-label="expander panel">
478
+ <div class="panel-heading open icon-left" aria-label="panel heading">
479
+ <span class="title">Separator with icon left</span>
480
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
481
+ </span>
482
+ <div class="separator">
483
+ <hr>
484
+ </div>
485
+ </div>
486
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
487
+ <div>
488
+ <div class="panel-body padding-top-5 padding-x-0">
489
+ <div>
490
+ <div class="panel panel-default panel-body bg-lightest">
491
+ <div class="text-bold">Lorem ipsum dolor sit amet</div>
492
+ <div>consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
493
+ </div>
494
+ </div>
495
+ </div>
496
+ </div>
497
+ </div>
498
+ </div>
499
+ </div>
500
+ <div class="grid-colspan-1 grid-colspan-2-lg">
501
+ <label class="text-color-dark">Separator</label>
502
+ <div class="expander-panel panel panel-separator" aria-label="expander panel">
503
+ <div class="panel-heading open" aria-label="panel heading">
504
+ <span class="title">Separator right aligned</span>
505
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
506
+ </span>
507
+ <div class="separator">
508
+ <hr>
509
+ </div>
510
+ </div>
511
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
512
+ <div>
513
+ <div class="panel-body padding-top-5 padding-right-20">
514
+ <div>
515
+ <div class="panel panel-default panel-body bg-lightest">
516
+ <div class="text-bold">Lorem ipsum dolor sit amet</div>
517
+ <div>consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.</div>
518
+ </div>
519
+ </div>
520
+ </div>
521
+ </div>
522
+ </div>
523
+ </div>
524
+ </div>
525
+ <div class="grid-colspan-1 grid-colspan-2-lg">
526
+ <label class="text-color-dark">Primary</label>
527
+ <div class="expander-panel panel panel-primary" aria-label="expander panel">
528
+ <div class="panel-heading" aria-label="panel heading">
529
+ <span class="title text-normal">Lorem ipsum</span>
530
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
531
+ </span>
532
+ </div>
533
+ </div>
534
+ </div>
535
+ <div class="grid-colspan-1 grid-colspan-2-lg">
536
+ <label class="text-color-dark">Primary</label>
537
+ <div class="expander-panel panel panel-primary" aria-label="expander panel">
538
+ <div class="panel-heading icon-left" aria-label="panel heading">
539
+ <span class="title text-normal">Header with icon left</span>
540
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
541
+ </span>
542
+ </div>
543
+ </div>
544
+ </div>
545
+ <div class="">
546
+ <label class="text-color-dark">Secondary</label>
547
+ <div class="expander-panel panel panel-secondary" aria-label="expander panel">
548
+ <div class="panel-heading" aria-label="panel heading">
549
+ <span class="title">Lorem ipsum</span>
550
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
551
+ </span>
552
+ </div>
553
+ </div>
554
+ </div>
555
+ <div class="">
556
+ <label class="text-color-dark">Info</label>
557
+ <div class="expander-panel panel panel-info" aria-label="expander panel">
558
+ <div class="panel-heading" aria-label="panel heading">
559
+ <span class="title">Lorem ipsum</span>
560
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
561
+ </span>
562
+ </div>
563
+ </div>
564
+ </div>
565
+ <div class="">
566
+ <label class="text-color-dark">Warning</label>
567
+ <div class="expander-panel panel panel-warning" aria-label="expander panel">
568
+ <div class="panel-heading" aria-label="panel heading">
569
+ <span class="title">Lorem ipsum</span>
570
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
571
+ </span>
572
+ </div>
573
+ </div>
574
+ </div>
575
+ <div class="">
576
+ <label class="text-color-dark">Danger</label>
577
+ <div class="expander-panel panel panel-danger" aria-label="expander panel">
578
+ <div class="panel-heading" aria-label="panel heading">
579
+ <span class="title">Lorem ipsum</span>
580
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
581
+ </span>
582
+ </div>
583
+ </div>
584
+ </div>
585
+ <div class="">
586
+ <label class="text-color-dark">success</label>
587
+ <div class="expander-panel panel panel-success" aria-label="expander panel">
588
+ <div class="panel-heading" aria-label="panel heading">
589
+ <span class="title">Lorem ipsum</span>
590
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
591
+ </span>
592
+ </div>
593
+ </div>
594
+ </div>
595
+ </div>
596
+ <div class="expander-panel panel panel-default" aria-label="expander panel">
597
+ <div class="panel-heading open" aria-label="panel heading">
598
+ <span class="title text-bold">Dynamic table content</span>
599
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
600
+ </span>
601
+ </div>
602
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
603
+ <div>
604
+ <div class="panel-body padding-0">
605
+ <div>
606
+ <table class="table margin-0 border border-bottom-only border-color-lighter">
607
+ <colgroup>
608
+ <col class="width-100pct">
609
+ </colgroup>
610
+ <tbody>
611
+ <tr>
612
+ <td>Item 1</td>
613
+ <td>
614
+ <button data-id="1" type="button" class="btn btn-xs btn-muted btn-icon-only">
615
+ <span class="rioglyph rioglyph-remove">
616
+ </span>
617
+ </button>
618
+ </td>
619
+ </tr>
620
+ <tr>
621
+ <td>Item 2</td>
622
+ <td>
623
+ <button data-id="2" type="button" class="btn btn-xs btn-muted btn-icon-only">
624
+ <span class="rioglyph rioglyph-remove">
625
+ </span>
626
+ </button>
627
+ </td>
628
+ </tr>
629
+ <tr>
630
+ <td>Item 3</td>
631
+ <td>
632
+ <button data-id="3" type="button" class="btn btn-xs btn-muted btn-icon-only">
633
+ <span class="rioglyph rioglyph-remove">
634
+ </span>
635
+ </button>
636
+ </td>
637
+ </tr>
638
+ </tbody>
639
+ </table>
640
+ <div class="padding-25 text-center">
641
+ <button type="button" class="btn btn-default">
642
+ <span class="rioglyph rioglyph-plus">
643
+ </span>
644
+ <span>Add new table row</span>
645
+ </button>
646
+ </div>
647
+ </div>
648
+ </div>
649
+ </div>
650
+ </div>
651
+ </div>
652
+ </div>
653
+ ```
654
+
655
+ #### Props
656
+
657
+ | Name | Type | Default | Description |
658
+ | --- | --- | --- | --- |
659
+ | title | String / Node | — | The title to be shown in the expander header. |
660
+ | bsStyle | String | 'blank' | Component visual or contextual style variants. Possible values are: 'default' 'separator' 'blank' 'primary' 'secondary' 'info' 'warning' 'danger' 'success' |
661
+ | iconLeft | Boolean | false | Defines if the icon will be align left, otherwise it is aligned right. |
662
+ | open | Boolean | false | Defines if the panel will be opened or closed by default. The open/closed state will be handled internally |
663
+ | unmountOnExit | Boolean | true | It unmounts the body component (remove it from the DOM) when it is collapsed. Set it to false to avoid the unmount. |
664
+ | className | String | — | Additional classes to be set on the wrapper element. |
665
+ | iconClassName | String | — | Additional classes added to the chevron icon |
666
+ | headerClassName | String | — | Additional classes to be set on the panel header. |
667
+ | titleClassName | String | — | Additional classes to be set on the header title. |
668
+ | bodyClassName | String | — | Additional classes to be set on the panel body. |
669
+ | onToggle | (isOpen: boolean) => void | — | Callback function for when the header is clicked and the expander toggles. |
670
+ | onEntered | VoidFunction | — | Callback fired after the component has expanded. |
671
+ | onExited | VoidFunction | — | Callback fired after the component has collapsed. |
672
+ | onAnimationStart | VoidFunction | — | Callback fired when the animation starts for either expand or collapse. |
673
+ | children | Node | — | Any element to be rendered inside the panel body. |
674
+ | children | Function | — | Providing a function enables the "render props" approach. The function gets the isOpen state passed and is responsible for rendering the custom content. |
675
+
676
+ ## ExpanderList
677
+
678
+ A simple list component based on the "list-group" where items can be expanded individually.
679
+
680
+ ### Example: With custom classes for header and body
681
+
682
+ Click me
683
+ Some content
684
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
685
+
686
+ Click me
687
+
688
+ Click me
689
+
690
+ With custom classes for header and body
691
+
692
+ Grid column 1
693
+ Grid column 2
694
+ Grid column 3
695
+
696
+ Click me42
697
+
698
+ Click me
699
+
700
+ Not expandable since there is no body
701
+
702
+ Toggle first
703
+
704
+ #### Summary
705
+
706
+ Click me
707
+ Some content
708
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
709
+
710
+ Click me
711
+
712
+ Click me
713
+
714
+ With custom classes for header and body
715
+
716
+ Grid column 1
717
+ Grid column 2
718
+ Grid column 3
719
+
720
+ Click me42
721
+
722
+ Click me
723
+
724
+ Not expandable since there is no body
725
+
726
+ Toggle first
727
+
728
+ #### React (tsx)
729
+
730
+ ```tsx
731
+ import { useState } from 'react';
732
+
733
+ import ExpanderList from '@rio-cloud/rio-uikit/ExpanderList';
734
+ import ExpanderPanel from '@rio-cloud/rio-uikit/ExpanderPanel';
735
+ import Button from '@rio-cloud/rio-uikit/Button';
736
+
737
+ const content = (
738
+ <div>
739
+ <div className='lead'>Some content</div>
740
+ <div>
741
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
742
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
743
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
744
+ </div>
745
+ </div>
746
+ );
747
+
748
+ export default () => {
749
+ const [listItems, setListItems] = useState([
750
+ {
751
+ id: 1,
752
+ header: 'Click me',
753
+ body: content,
754
+ open: true,
755
+ onOpen: () => console.log('open'),
756
+ onClose: () => console.log('close'),
757
+ },
758
+ {
759
+ id: 2,
760
+ header: <span>Click me</span>,
761
+ body: content,
762
+ className: 'list-group-item-warning',
763
+ },
764
+ {
765
+ id: 3,
766
+ header: <span>Click me</span>,
767
+ body: content,
768
+ className: 'list-group-item-danger',
769
+ },
770
+ {
771
+ id: 4,
772
+ header: <span>With custom classes for header and body</span>,
773
+ body: (
774
+ <div>
775
+ <div>{content}</div>
776
+ <div className='btn-toolbar margin-top-15'>
777
+ <Button onClick={() => removeItem(4)}>Delete me</Button>
778
+ <Button onClick={() => updateItem(4)}>Update Item Headline</Button>
779
+ </div>
780
+ </div>
781
+ ),
782
+ className: 'foobar',
783
+ headerClassName: 'text-color-dark',
784
+ bodyClassName: 'bg-lightest padding-25',
785
+ },
786
+ {
787
+ id: 5,
788
+ header: (
789
+ <div className='display-grid grid-cols-3'>
790
+ <div className=''>Grid column 1</div>
791
+ <div className=''>Grid column 2</div>
792
+ <div className=''>Grid column 3</div>
793
+ </div>
794
+ ),
795
+ body: content,
796
+ },
797
+ {
798
+ id: 6,
799
+ header: (
800
+ <span>
801
+ <span>Click me</span>
802
+ <span className='badge margin-left-5'>42</span>
803
+ </span>
804
+ ),
805
+ body: content,
806
+ },
807
+ {
808
+ id: 7,
809
+ header: (
810
+ <span>
811
+ <span className='rioglyph rioglyph-tasks margin-right-3' aria-hidden='true' />
812
+ <span>Click me</span>
813
+ </span>
814
+ ),
815
+ body: (
816
+ <ExpanderPanel bsStyle='default' className='margin-0' title='Please click me' iconLeft>
817
+ {content}
818
+ </ExpanderPanel>
819
+ ),
820
+ },
821
+ {
822
+ id: 8,
823
+ header: 'Not expandable since there is no body',
824
+ },
825
+ ]);
826
+
827
+ const handleToggleFirst = () => {
828
+ const updatedItems = [...listItems];
829
+ const itemToUpdate = updatedItems[0];
830
+ itemToUpdate.open = !itemToUpdate.open;
831
+
832
+ setListItems(updatedItems);
833
+ };
834
+
835
+ const updateItem = (itemId: number) => {
836
+ const updatedItems = [...listItems];
837
+ const itemToUpdate = updatedItems.find(item => item.id === itemId);
838
+
839
+ if (itemToUpdate) {
840
+ itemToUpdate.header = 'Headline updated';
841
+ setListItems(updatedItems);
842
+ }
843
+ };
844
+
845
+ const removeItem = (itemId: number) => {
846
+ setListItems(listItems.filter(item => item.id !== itemId));
847
+ };
848
+
849
+ return (
850
+ <div>
851
+ <ExpanderList items={listItems} className='margin-bottom-20' />
852
+ <Button onClick={handleToggleFirst}>Toggle first</Button>
853
+ </div>
854
+ );
855
+ };
856
+ ```
857
+
858
+ #### HTML (html)
859
+
860
+ ```html
861
+ <div>
862
+ <ul class="expander-list list-group rounded border margin-bottom-20">
863
+ <li class="list-group-item expandable open">
864
+ <div class="expander-list-header" aria-label="expander item header">
865
+ <span class="expander-list-header-content">Click me</span>
866
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
867
+ </span>
868
+ </div>
869
+ <div class="collapse display-block width-100pct" style="opacity: 1; height: auto;">
870
+ <div class="expander-list-body-wrapper">
871
+ <div class="expander-list-body" aria-label="expander item body">
872
+ <div>
873
+ <div class="lead">Some content</div>
874
+ <div>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet</div>
875
+ </div>
876
+ </div>
877
+ </div>
878
+ </div>
879
+ </li>
880
+ <li class="list-group-item list-group-item-warning expandable">
881
+ <div class="expander-list-header" aria-label="expander item header">
882
+ <span class="expander-list-header-content">
883
+ <span>Click me</span>
884
+ </span>
885
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
886
+ </span>
887
+ </div>
888
+ </li>
889
+ <li class="list-group-item list-group-item-danger expandable">
890
+ <div class="expander-list-header" aria-label="expander item header">
891
+ <span class="expander-list-header-content">
892
+ <span>Click me</span>
893
+ </span>
894
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
895
+ </span>
896
+ </div>
897
+ </li>
898
+ <li class="list-group-item foobar expandable">
899
+ <div class="expander-list-header text-color-dark" aria-label="expander item header">
900
+ <span class="expander-list-header-content">
901
+ <span>With custom classes for header and body</span>
902
+ </span>
903
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
904
+ </span>
905
+ </div>
906
+ </li>
907
+ <li class="list-group-item expandable">
908
+ <div class="expander-list-header" aria-label="expander item header">
909
+ <span class="expander-list-header-content">
910
+ <div class="display-grid grid-cols-3">
911
+ <div class="">Grid column 1</div>
912
+ <div class="">Grid column 2</div>
913
+ <div class="">Grid column 3</div>
914
+ </div>
915
+ </span>
916
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
917
+ </span>
918
+ </div>
919
+ </li>
920
+ <li class="list-group-item expandable">
921
+ <div class="expander-list-header" aria-label="expander item header">
922
+ <span class="expander-list-header-content">
923
+ <span>
924
+ <span>Click me</span>
925
+ <span class="badge margin-left-5">42</span>
926
+ </span>
927
+ </span>
928
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
929
+ </span>
930
+ </div>
931
+ </li>
932
+ <li class="list-group-item expandable">
933
+ <div class="expander-list-header" aria-label="expander item header">
934
+ <span class="expander-list-header-content">
935
+ <span>
936
+ <span class="rioglyph rioglyph-tasks margin-right-3" aria-hidden="true">
937
+ </span>
938
+ <span>Click me</span>
939
+ </span>
940
+ </span>
941
+ <span class="expander-icon rioglyph rioglyph-chevron-down">
942
+ </span>
943
+ </div>
944
+ </li>
945
+ <li class="list-group-item">
946
+ <div class="expander-list-header" aria-label="expander item header">
947
+ <span class="expander-list-header-content">Not expandable since there is no body</span>
948
+ </div>
949
+ </li>
950
+ </ul>
951
+ <button type="button" class="btn btn-default btn-component" tabindex="0">Toggle first</button>
952
+ </div>
953
+ ```
954
+
955
+ #### Props
956
+
957
+ | Name | Type | Default | Description |
958
+ | --- | --- | --- | --- |
959
+ | items | Array of Objects | [] | List of items to be rendered |
960
+ | └id | String / Number | — | The "id" property is used to know which item is expanded. It will also be used to control the component from the outside. It can be a number or a string. If there is no "id" provided, a unique id is internally generated which will be used internally for the uncontrolled case. |
961
+ | └header | String / Node | — | The header content. |
962
+ | └body | String / Node | — | The body content. If there is no "body" provided, the list item is not expandable. |
963
+ | └open | Boolean | — | Defines if the item will be expanded or closed by default. |
964
+ | └className | String | — | Additional classes to be set on list item node. |
965
+ | └headerClassName | String | — | Additional classes to be set on "expander-list-header" node. |
966
+ | └bodyClassName | String | — | Additional classes to be set on "expander-list-body" node. |
967
+ | rounded | Boolean | true | Defines whether the "expander-list-body" is rounded or not. |
968
+ | border | Boolean | true | Defines whether the "expander-list-body" has a border or not. |
969
+ | unmountOnExit | Boolean | true | It unmounts the body component (remove it from the DOM) when it is collapsed. Set it to false to avoid the unmount. |
970
+ | className | String | — | Additional classes to be set on the unordered list itself. |