@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,1111 @@
1
+ # Common table
2
+
3
+ *Category:* Templates
4
+ *Section:* Tables
5
+ *Source:* https://uikit.developers.rio.cloud/#templates/common-table
6
+ *Captured:* 2025-12-12T14:21:38.777Z
7
+
8
+ ## Common table
9
+
10
+ ### Example: Label
11
+
12
+ NewButton
13
+
14
+ Filter
15
+
16
+ Label
17
+
18
+ IdNameVINStatusDuration
19
+
20
+ 233IpsumNo dataInactive5h 15m
21
+
22
+ 456No data456Active4h 55m
23
+
24
+ 878No data878Active9h 10m
25
+
26
+ 895No data895Active8h 45m
27
+
28
+ 978IpsumNo dataInactive6h 35m
29
+
30
+ 2345Lorem2345Active11h 50m
31
+
32
+ 2445No data2445Active7h 25m
33
+
34
+ 3456No data3456Active12h 00m
35
+
36
+ 4567No data4567Active10h 20m
37
+
38
+ 7354Lorem7354Active10h 30m
39
+
40
+ 70/100
41
+
42
+ Load more
43
+
44
+ #### Summary
45
+
46
+ NewButton
47
+
48
+ Filter
49
+
50
+ Label
51
+
52
+ IdNameVINStatusDuration
53
+
54
+ 233IpsumNo dataInactive5h 15m
55
+
56
+ 456No data456Active4h 55m
57
+
58
+ 878No data878Active9h 10m
59
+
60
+ 895No data895Active8h 45m
61
+
62
+ 978IpsumNo dataInactive6h 35m
63
+
64
+ 2345Lorem2345Active11h 50m
65
+
66
+ 2445No data2445Active7h 25m
67
+
68
+ 3456No data3456Active12h 00m
69
+
70
+ 4567No data4567Active10h 20m
71
+
72
+ 7354Lorem7354Active10h 30m
73
+
74
+ 70/100
75
+
76
+ Load more
77
+
78
+ #### React (tsx)
79
+
80
+ ```tsx
81
+ import { useEffect, useMemo, useState } from 'react';
82
+ import { isEmpty, omit } from 'es-toolkit/compat';
83
+ import classNames from 'classnames';
84
+
85
+ import TableToolbar from '@rio-cloud/rio-uikit/TableToolbar';
86
+ import TableViewToggles, { type TableViewTogglesViewType } from '@rio-cloud/rio-uikit/TableViewToggles';
87
+ import TableSearch from '@rio-cloud/rio-uikit/TableSearch';
88
+ import TableCardsSorting from '@rio-cloud/rio-uikit/TableCardsSorting';
89
+ import TableSettingsDialog from '@rio-cloud/rio-uikit/TableSettingsDialog';
90
+ import type { SortDirectionType } from '@rio-cloud/rio-uikit/SortDirection';
91
+ import ButtonDropdown from '@rio-cloud/rio-uikit/ButtonDropdown';
92
+ import NotFoundState from '@rio-cloud/rio-uikit/NotFoundState';
93
+ import NoData from '@rio-cloud/rio-uikit/NoData';
94
+ import Button from '@rio-cloud/rio-uikit/Button';
95
+ import useSorting from '@rio-cloud/rio-uikit/useSorting';
96
+ import useTableSelection from '@rio-cloud/rio-uikit/useTableSelection';
97
+ import TableCol from '@rio-cloud/rio-uikit/TableCol';
98
+ import TableHead from '@rio-cloud/rio-uikit/TableHead';
99
+ import FormLabel from '@rio-cloud/rio-uikit/FormLabel';
100
+ import LoadMoreButton from '@rio-cloud/rio-uikit/LoadMoreButton';
101
+ import ButtonToolbar from '@rio-cloud/rio-uikit/ButtonToolbar';
102
+ import Checkbox from '@rio-cloud/rio-uikit/Checkbox';
103
+ import Dialog from '@rio-cloud/rio-uikit/Dialog';
104
+
105
+ const defaultColumnOrder = ['vehicleId', 'name', 'vin', 'status', 'duration'];
106
+ const disabledColumns = ['vin'];
107
+
108
+ type ColumnLabel = { [key: string]: string };
109
+
110
+ const columnLabels: ColumnLabel = {
111
+ vehicleId: 'Id',
112
+ name: 'Name',
113
+ vin: 'VIN',
114
+ status: 'Status',
115
+ duration: 'Duration',
116
+ };
117
+
118
+ type ColumnDetails = {
119
+ [key: string]: number;
120
+ };
121
+
122
+ type ColumnDetailsMap = {
123
+ [key: string]: ColumnDetails;
124
+ };
125
+
126
+ const demoColumnsDetails: ColumnDetailsMap = {
127
+ vehicleId: {
128
+ width: 60,
129
+ defaultWidth: 60,
130
+ maxWidth: 300,
131
+ },
132
+ name: {
133
+ width: 200,
134
+ defaultWidth: 200,
135
+ maxWidth: 350,
136
+ },
137
+ // Note: 0 means auto width
138
+ vin: {
139
+ width: 0,
140
+ defaultWidth: 0,
141
+ maxWidth: 350,
142
+ },
143
+ status: {
144
+ // Not defined as it will be defined when its used
145
+ // width: 350,
146
+ // defaultWidth: 0,
147
+ },
148
+ };
149
+
150
+ type Vehicle = {
151
+ vehicleId: number;
152
+ name: string | null;
153
+ vin: string | null;
154
+ status: string;
155
+ duration: string;
156
+ };
157
+
158
+ const vehicleList: Vehicle[] = [
159
+ {
160
+ vehicleId: 7354,
161
+ name: 'Lorem',
162
+ vin: '7354',
163
+ status: 'Active',
164
+ duration: '10h 30m',
165
+ },
166
+ {
167
+ vehicleId: 233,
168
+ name: 'Ipsum',
169
+ vin: null,
170
+ status: 'Inactive',
171
+ duration: '5h 15m',
172
+ },
173
+ {
174
+ vehicleId: 895,
175
+ name: null,
176
+ vin: '895',
177
+ status: 'Active',
178
+ duration: '8h 45m',
179
+ },
180
+ {
181
+ vehicleId: 3456,
182
+ name: null,
183
+ vin: '3456',
184
+ status: 'Active',
185
+ duration: '12h 00m',
186
+ },
187
+ {
188
+ vehicleId: 2445,
189
+ name: null,
190
+ vin: '2445',
191
+ status: 'Active',
192
+ duration: '7h 25m',
193
+ },
194
+ {
195
+ vehicleId: 878,
196
+ name: null,
197
+ vin: '878',
198
+ status: 'Active',
199
+ duration: '9h 10m',
200
+ },
201
+ {
202
+ vehicleId: 2345,
203
+ name: 'Lorem',
204
+ vin: '2345',
205
+ status: 'Active',
206
+ duration: '11h 50m',
207
+ },
208
+ {
209
+ vehicleId: 978,
210
+ name: 'Ipsum',
211
+ vin: null,
212
+ status: 'Inactive',
213
+ duration: '6h 35m',
214
+ },
215
+ {
216
+ vehicleId: 456,
217
+ name: null,
218
+ vin: '456',
219
+ status: 'Active',
220
+ duration: '4h 55m',
221
+ },
222
+ {
223
+ vehicleId: 4567,
224
+ name: null,
225
+ vin: '4567',
226
+ status: 'Active',
227
+ duration: '10h 20m',
228
+ },
229
+ ];
230
+
231
+ const dummyActionOptions = [
232
+ { value: 'Option 1', onSelect: () => {} },
233
+ { value: 'Option 2', onSelect: () => {} },
234
+ { value: 'Option 3', onSelect: () => {} },
235
+ { divider: true },
236
+ { value: 'Option 4', onSelect: () => {}, disabled: true },
237
+ ];
238
+
239
+ export type TableCommonDemoProps = {
240
+ viewType: TableViewTogglesViewType;
241
+ };
242
+
243
+ const TableCommonDemo = (props: TableCommonDemoProps) => {
244
+ const { viewType: externalViewType } = props;
245
+
246
+ const [searchValue, setSearchValue] = useState('');
247
+ const [showTableSettingsDialog, setShowTableSettingsDialog] = useState(false);
248
+
249
+ const [showFilterDialog, setShowFilterDialog] = useState(false);
250
+ const [filter, setFilter] = useState<TableFilterKey[]>([]);
251
+
252
+ const [columnOrder, setColumnOrder] = useState<string[]>(defaultColumnOrder);
253
+ const [hiddenColumns, setHiddenColumns] = useState<string[]>([]);
254
+ const [columnsDetails, setColumnsDetails] = useState(demoColumnsDetails);
255
+
256
+ const [viewType, setViewType] = useState(externalViewType || TableViewToggles.VIEW_TYPE_TABLE);
257
+
258
+ const { sortedItems, sortKey, sortDirection, setSortKey, setSortDirection, toggleDirection } = useSorting(
259
+ vehicleList,
260
+ 'vehicleId'
261
+ );
262
+
263
+ const { tableRef, updateRowSelection, activeRowId, onActiveRowChange } = useTableSelection<Vehicle>({
264
+ tableData: vehicleList,
265
+ idKey: 'vehicleId' as keyof Vehicle, // Specify the unique identifier key
266
+ });
267
+
268
+ // console.log({ activeRowId });
269
+
270
+ // When the search value changes and hence the rendered rows, update the highlighting and selection
271
+ useEffect(() => updateRowSelection(), [searchValue]);
272
+
273
+ const handleToggleTableSettingsDialog = () => setShowTableSettingsDialog(!showTableSettingsDialog);
274
+ const handleViewTypeChange = (newViewType: TableViewTogglesViewType) => setViewType(newViewType);
275
+ const handleSearchValueChange = (newSearchValue: string) => setSearchValue(newSearchValue);
276
+
277
+ const handleColumnChange = (
278
+ newColumnOrder: string[],
279
+ newHiddenColumns: string[],
280
+ newColumnsDetails = columnsDetails
281
+ ) => {
282
+ setColumnOrder(newColumnOrder);
283
+ setHiddenColumns(newHiddenColumns);
284
+ setColumnsDetails(newColumnsDetails);
285
+ };
286
+
287
+ // For immediate effect
288
+ const handleColumnDetailsChange = (column: string, newColumnDetails: ColumnDetails) => {
289
+ const updatedColumnsDetails = { ...columnsDetails };
290
+ updatedColumnsDetails[column] = newColumnDetails;
291
+ setColumnsDetails(updatedColumnsDetails);
292
+ };
293
+
294
+ const handleSortChange = (event: React.MouseEvent<HTMLTableCellElement>) => {
295
+ const newSortBy = event.currentTarget.getAttribute('data-sortby');
296
+ if (newSortBy) {
297
+ setSortKey(newSortBy as keyof Vehicle);
298
+ }
299
+ if (newSortBy === sortKey) {
300
+ toggleDirection();
301
+ }
302
+ };
303
+
304
+ const handleCardSortChange = (newSortBy: string, newSortDir: SortDirectionType) => {
305
+ setSortKey(newSortBy as keyof Vehicle);
306
+ setSortDirection(newSortDir);
307
+ };
308
+
309
+ // Filter for hidden columns
310
+ const columns = columnOrder.filter(name => !hiddenColumns.includes(name));
311
+
312
+ // Filter data to omit hidden columns
313
+ const filteredRows = sortedItems.map(vehicle => omit(vehicle, hiddenColumns)) as Vehicle[];
314
+
315
+ // In case a search value is given, filter the data accordingly
316
+ const searchResult = useMemo(() => {
317
+ if (!searchValue) {
318
+ return filteredRows;
319
+ }
320
+ return filteredRows.filter((row: Partial<Vehicle>) =>
321
+ columns.some(col => {
322
+ const value = row[col as keyof Vehicle];
323
+ if (value == null) {
324
+ return false;
325
+ }
326
+ return String(value).toLowerCase().includes(searchValue.toLowerCase());
327
+ })
328
+ );
329
+ }, [searchValue, filteredRows, columns]);
330
+
331
+ // Filter according to filter dialog settings
332
+ const rows = useMemo(() => applyFilter(searchResult, filter), [searchResult, filter]);
333
+
334
+ const tableClassNames = classNames(
335
+ 'table',
336
+ 'table-layout-fixed',
337
+ 'table-column-overflow-hidden',
338
+ 'table-bordered',
339
+ 'table-sticky',
340
+ 'table-head-filled',
341
+ viewType === TableViewToggles.VIEW_TYPE_SINGLE_CARD && 'table-cards table-single-card',
342
+ viewType === TableViewToggles.VIEW_TYPE_MULTI_CARDS && 'table-cards table-multi-cards'
343
+ );
344
+
345
+ const isViewTypeTable = viewType === TableViewToggles.VIEW_TYPE_TABLE;
346
+
347
+ const cardSortingSelectOptions = columns.map(column => {
348
+ return {
349
+ id: column,
350
+ label: columnLabels[column],
351
+ selected: column === sortKey,
352
+ disabled: false,
353
+ };
354
+ });
355
+
356
+ return (
357
+ <div>
358
+ <TableToolbar>
359
+ <div className='table-toolbar-container'>
360
+ <div className='table-toolbar-group-left'>
361
+ <div className='table-toolbar-column'>
362
+ <ButtonToolbar className='display-grid grid-cols-3 display-flex-ls'>
363
+ <Button bsStyle={Button.PRIMARY} iconName='rioglyph-plus'>
364
+ New
365
+ </Button>
366
+ <ButtonDropdown id='myActionButton' title='Button' items={dummyActionOptions} />
367
+ </ButtonToolbar>
368
+ </div>
369
+ </div>
370
+ <div className='table-toolbar-group-right'>
371
+ <div className='table-toolbar-column'>
372
+ <Button
373
+ iconName={isEmpty(filter) ? 'rioglyph-filter' : 'rioglyph-filter-active'}
374
+ onClick={() => setShowFilterDialog(true)}
375
+ >
376
+ Filter
377
+ </Button>
378
+ <TableFilterDialog
379
+ show={showFilterDialog}
380
+ onClose={() => setShowFilterDialog(false)}
381
+ filter={filter}
382
+ onSetFilter={setFilter}
383
+ />
384
+ </div>
385
+ <div className='table-toolbar-column table-toolbar-column-spacer'>
386
+ <TableSearch
387
+ value={searchValue}
388
+ onChange={handleSearchValueChange}
389
+ placeholder='Search in table'
390
+ />
391
+ </div>
392
+ <div className='table-toolbar-column display-flex flex-row align-items-end gap-15'>
393
+ <div>
394
+ <FormLabel className='table-toolbar-label'>Label</FormLabel>
395
+ <TableViewToggles
396
+ initialViewType={viewType}
397
+ onViewTypeChange={handleViewTypeChange}
398
+ tableViewTooltipContent='Table view'
399
+ singleCardViewTooltipContent='List view'
400
+ multiCardsViewTooltipContent='Cards view'
401
+ />
402
+ </div>
403
+ <Button iconOnly iconName='rioglyph-settings' onClick={handleToggleTableSettingsDialog} />
404
+ </div>
405
+ </div>
406
+ {showTableSettingsDialog && (
407
+ <TableSettingsDialog
408
+ show={showTableSettingsDialog}
409
+ title='Table settings'
410
+ onHide={handleToggleTableSettingsDialog}
411
+ onColumnChange={handleColumnChange}
412
+ defaultColumnOrder={defaultColumnOrder}
413
+ defaultHiddenColumns={[]}
414
+ columnOrder={columnOrder}
415
+ hiddenColumns={hiddenColumns}
416
+ columnLabels={columnLabels}
417
+ disabledColumns={disabledColumns}
418
+ closeButtonText='Close'
419
+ resetButtonText='Reset to default'
420
+ searchPlaceholder='Search by column name'
421
+ notFoundMessage='No column found for this search value'
422
+ columnsDetails={columnsDetails}
423
+ autoLabel='Auto'
424
+ onColumnDetailsChange={handleColumnDetailsChange}
425
+ onSearchChange={(val: string) => console.log(val)}
426
+ immediateChange
427
+ />
428
+ )}
429
+ </div>
430
+ </TableToolbar>
431
+ {sortKey && !isViewTypeTable && (
432
+ <TableCardsSorting
433
+ selectOptions={cardSortingSelectOptions}
434
+ sortName={sortKey as string}
435
+ sortOrder={sortDirection}
436
+ onSortChange={handleCardSortChange}
437
+ />
438
+ )}
439
+ <div className='table-responsive'>
440
+ {isEmpty(rows) && !isViewTypeTable && (
441
+ <NotFoundState headline='Nothing found' message='Please refine your search' />
442
+ )}
443
+ <table ref={tableRef} className={tableClassNames}>
444
+ <colgroup>
445
+ {columns.map(column => (
446
+ <TableCol key={column} columnDetails={columnsDetails[column]} />
447
+ ))}
448
+ <TableCol className='table-action' />
449
+ </colgroup>
450
+ <thead>
451
+ <tr>
452
+ {columns.map(column => (
453
+ <TableHead
454
+ key={column}
455
+ label={columnLabels[column]}
456
+ column={column}
457
+ sortBy={sortKey as string}
458
+ sortDir={sortDirection}
459
+ onClick={handleSortChange}
460
+ />
461
+ ))}
462
+ <TableHead className='table-action' />
463
+ </tr>
464
+ </thead>
465
+ <tbody>
466
+ {isEmpty(rows) && isViewTypeTable && (
467
+ <tr>
468
+ <td colSpan={columns.length + 1}>
469
+ <NotFoundState
470
+ outerClassName='border-none'
471
+ headline='Nothing found'
472
+ message='Please refine your search'
473
+ />
474
+ </td>
475
+ </tr>
476
+ )}
477
+ {rows.map(row => (
478
+ <tr
479
+ key={row.vehicleId}
480
+ data-id={row.vehicleId}
481
+ onClick={onActiveRowChange}
482
+ className='cursor-pointer'
483
+ >
484
+ {columns.map(col => {
485
+ const item = row[col as keyof Vehicle] ?? <NoData text='No data' />;
486
+ return (
487
+ <td key={col} data-field={columnLabels[col]}>
488
+ <span>{item}</span>
489
+ </td>
490
+ );
491
+ })}
492
+ <td className='table-action'>
493
+ <DummyRowDropdown />
494
+ </td>
495
+ </tr>
496
+ ))}
497
+ {/* Placeholder workaround for equal with cards of the last row */}
498
+ <tr className='table-card-placeholder' />
499
+ <tr className='table-card-placeholder' />
500
+ <tr className='table-card-placeholder' />
501
+ <tr className='table-card-placeholder' />
502
+ <tr className='table-card-placeholder' />
503
+ <tr className='table-card-placeholder' />
504
+ <tr className='table-card-placeholder' />
505
+ <tr className='table-card-placeholder' />
506
+ <tr className='table-card-placeholder' />
507
+ <tr className='table-card-placeholder' />
508
+ </tbody>
509
+ </table>
510
+ </div>
511
+ <LoadMoreButton
512
+ loaded={70}
513
+ total={100}
514
+ onLoadMore={() => {}}
515
+ loadMoreMessage='Load more'
516
+ noMoreMessage='Everything loaded'
517
+ />
518
+ </div>
519
+ );
520
+ };
521
+
522
+ const DummyRowDropdown = () => (
523
+ <span>
524
+ <ButtonDropdown
525
+ title={<span className='rioglyph rioglyph-option-vertical' />}
526
+ variant='link'
527
+ iconOnly
528
+ items={[
529
+ {
530
+ value: (
531
+ <div className='display-flex align-items-center gap-10'>
532
+ <span className='rioglyph rioglyph-pencil' />
533
+ <span>Edit</span>
534
+ </div>
535
+ ),
536
+ },
537
+ {
538
+ value: (
539
+ <div className='display-flex align-items-center gap-10'>
540
+ <span className='rioglyph rioglyph-duplicate' />
541
+ <span>Duplicate</span>
542
+ </div>
543
+ ),
544
+ },
545
+ {
546
+ value: (
547
+ <div className='display-flex align-items-center gap-10'>
548
+ <span className='rioglyph rioglyph-trash' />
549
+ <span>Delete</span>
550
+ </div>
551
+ ),
552
+ },
553
+ ]}
554
+ />
555
+ </span>
556
+ );
557
+
558
+ const FILTER_KAY_MISSING_VIN = 'missingVin';
559
+ type TableFilterKey = typeof FILTER_KAY_MISSING_VIN;
560
+
561
+ const TABLE_FILTERS: Record<TableFilterKey, { label: string }> = {
562
+ missingVin: { label: 'Hide items without VIN' },
563
+ };
564
+
565
+ const applyFilter = (items: Vehicle[], filter: string[]) => {
566
+ const filterSet = new Set(filter);
567
+
568
+ return items.filter(item => {
569
+ // If 'missingVin' is in the filter set, keep only items with a VIN (!!item.vin is true).
570
+ // If 'missingVin' is NOT in the filter set, this specific condition doesn't remove the item.
571
+ if (filterSet.has(FILTER_KAY_MISSING_VIN) && !item.vin) {
572
+ return false; // Hide items without VIN if filter is active
573
+ }
574
+ // Add more filter conditions here as needed.
575
+ // If no active filter criteria cause the item to be excluded, keep it.
576
+ return true;
577
+ });
578
+ };
579
+
580
+ const TableFilterDialog = (props: {
581
+ show: boolean;
582
+ onClose: VoidFunction;
583
+ filter: TableFilterKey[];
584
+ onSetFilter: (filter: TableFilterKey[]) => void;
585
+ }) => {
586
+ const { show, onClose, filter, onSetFilter } = props;
587
+
588
+ const filterSet = new Set(filter);
589
+
590
+ const toggleFilter = (key: TableFilterKey) => {
591
+ const newFilter = new Set(filter);
592
+ if (newFilter.has(key)) {
593
+ newFilter.delete(key);
594
+ } else {
595
+ newFilter.add(key);
596
+ }
597
+ onSetFilter(Array.from(newFilter));
598
+ };
599
+
600
+ return (
601
+ <Dialog
602
+ show={show}
603
+ bsSize='sm'
604
+ onClose={onClose}
605
+ title='Table filter'
606
+ body={
607
+ <div>
608
+ <fieldset className='margin-bottom-25'>
609
+ <legend>Vehicle properties</legend>
610
+ <div className='display-flex flex-column gap-10'>
611
+ {Object.entries(TABLE_FILTERS).map(([key, { label }]) => (
612
+ <Checkbox
613
+ key={key}
614
+ checked={filterSet.has(key as TableFilterKey)}
615
+ onChange={() => toggleFilter(key as TableFilterKey)}
616
+ className='user-select-none'
617
+ >
618
+ {label}
619
+ </Checkbox>
620
+ ))}
621
+ <Checkbox disabled>Lorem ipsum dolor</Checkbox>
622
+ <Checkbox disabled>Dolor sit amet</Checkbox>
623
+ </div>
624
+ </fieldset>
625
+ <fieldset>
626
+ <legend>More filter options</legend>
627
+ <div className='display-flex flex-column gap-10'>
628
+ <Checkbox disabled>Lorem ipsum dolor</Checkbox>
629
+ <Checkbox disabled>Dolor sit amet</Checkbox>
630
+ </div>
631
+ </fieldset>
632
+ </div>
633
+ }
634
+ footer={
635
+ <div className='btn-toolbar'>
636
+ <Button onClick={onClose}>
637
+ <span>Close</span>
638
+ </Button>
639
+ </div>
640
+ }
641
+ />
642
+ );
643
+ };
644
+
645
+ export default TableCommonDemo;
646
+ ```
647
+
648
+ #### HTML (html)
649
+
650
+ ```html
651
+ <div>
652
+ <div class="table-toolbar">
653
+ <div class="table-toolbar-container">
654
+ <div class="table-toolbar-group-left">
655
+ <div class="table-toolbar-column">
656
+ <div class="display-grid grid-cols-3 display-flex-ls btn-toolbar">
657
+ <button type="button" class="btn btn-primary btn-component" tabindex="0">
658
+ <span class="rioglyph rioglyph-plus">
659
+ </span>New</button>
660
+ <div class="dropdown btn-group">
661
+ <button type="button" id="myActionButton" class="btn btn-default btn-md btn-component dropdown-toggle" tabindex="0">Button<span class="caret">
662
+ </span>
663
+ </button>
664
+ </div>
665
+ </div>
666
+ </div>
667
+ </div>
668
+ <div class="table-toolbar-group-right">
669
+ <div class="table-toolbar-column">
670
+ <button type="button" class="btn btn-default btn-component" tabindex="0">
671
+ <span class="rioglyph rioglyph-filter">
672
+ </span>Filter</button>
673
+ </div>
674
+ <div class="table-toolbar-column table-toolbar-column-spacer">
675
+ <div class="table-toolbar-search input-group">
676
+ <span class="input-group-addon">
677
+ <span class="rioglyph rioglyph-search">
678
+ </span>
679
+ </span>
680
+ <div class="ClearableInput input-group">
681
+ <input placeholder="Search in table" class="form-control" type="text" tabindex="0" value="">
682
+ <span class="clearButton hide">
683
+ <span class="clearButtonIcon rioglyph rioglyph-remove-sign">
684
+ </span>
685
+ </span>
686
+ </div>
687
+ </div>
688
+ </div>
689
+ <div class="table-toolbar-column display-flex flex-row align-items-end gap-15">
690
+ <div>
691
+ <div class="text-color-dark max-width-100pct text-size-12 display-inline-block margin-bottom-5 table-toolbar-label">Label</div>
692
+ <div class="TableViewToggles btn-group display-flex flex-row">
693
+ <button class="btn btn-default btn-icon-only active" type="button">
694
+ <span class="rioglyph rioglyph-table-view">
695
+ </span>
696
+ </button>
697
+ <button class="btn btn-default btn-icon-only" type="button">
698
+ <span class="rioglyph rioglyph-th-list">
699
+ </span>
700
+ </button>
701
+ <button class="btn btn-default btn-icon-only" type="button">
702
+ <span class="rioglyph rioglyph-split-view">
703
+ </span>
704
+ </button>
705
+ </div>
706
+ </div>
707
+ <button type="button" class="btn btn-default btn-icon-only btn-component" tabindex="0">
708
+ <span class="rioglyph rioglyph-settings">
709
+ </span>
710
+ </button>
711
+ </div>
712
+ </div>
713
+ </div>
714
+ </div>
715
+ <div class="table-responsive">
716
+ <table class="table table-layout-fixed table-column-overflow-hidden table-bordered table-sticky table-head-filled">
717
+ <colgroup>
718
+ <col class="" style="min-width: 60px; width: 60px;">
719
+ <col class="" style="min-width: 200px; width: 200px;">
720
+ <col class="">
721
+ <col class="">
722
+ <col class="">
723
+ <col class="table-action">
724
+ </colgroup>
725
+ <thead>
726
+ <tr>
727
+ <th class="user-select-none sort-column" data-field="vehicleId" data-sortby="vehicleId" title="Id">
728
+ <span>
729
+ <span class="sort-arrows sort-asc">
730
+ </span>
731
+ <span>Id</span>
732
+ </span>
733
+ </th>
734
+ <th class="user-select-none sort-column" data-field="name" data-sortby="name" title="Name">
735
+ <span>
736
+ <span class="sort-arrows ">
737
+ </span>
738
+ <span>Name</span>
739
+ </span>
740
+ </th>
741
+ <th class="user-select-none sort-column" data-field="vin" data-sortby="vin" title="VIN">
742
+ <span>
743
+ <span class="sort-arrows ">
744
+ </span>
745
+ <span>VIN</span>
746
+ </span>
747
+ </th>
748
+ <th class="user-select-none sort-column" data-field="status" data-sortby="status" title="Status">
749
+ <span>
750
+ <span class="sort-arrows ">
751
+ </span>
752
+ <span>Status</span>
753
+ </span>
754
+ </th>
755
+ <th class="user-select-none sort-column" data-field="duration" data-sortby="duration" title="Duration">
756
+ <span>
757
+ <span class="sort-arrows ">
758
+ </span>
759
+ <span>Duration</span>
760
+ </span>
761
+ </th>
762
+ <th class="user-select-none sort-column table-action" title="">
763
+ </th>
764
+ </tr>
765
+ </thead>
766
+ <tbody>
767
+ <tr data-id="233" class="cursor-pointer">
768
+ <td data-field="Id">
769
+ <span>233</span>
770
+ </td>
771
+ <td data-field="Name">
772
+ <span>Ipsum</span>
773
+ </td>
774
+ <td data-field="VIN">
775
+ <span>
776
+ <span class="NoData">
777
+ <span class="pointer-events-none user-select-none">No data</span>
778
+ </span>
779
+ </span>
780
+ </td>
781
+ <td data-field="Status">
782
+ <span>Inactive</span>
783
+ </td>
784
+ <td data-field="Duration">
785
+ <span>5h 15m</span>
786
+ </td>
787
+ <td class="table-action">
788
+ <span>
789
+ <div class="dropdown btn-group">
790
+ <button type="button" id="vpsj8rypurp" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
791
+ <span class="rioglyph rioglyph-option-vertical">
792
+ </span>
793
+ </button>
794
+ </div>
795
+ </span>
796
+ </td>
797
+ </tr>
798
+ <tr data-id="456" class="cursor-pointer">
799
+ <td data-field="Id">
800
+ <span>456</span>
801
+ </td>
802
+ <td data-field="Name">
803
+ <span>
804
+ <span class="NoData">
805
+ <span class="pointer-events-none user-select-none">No data</span>
806
+ </span>
807
+ </span>
808
+ </td>
809
+ <td data-field="VIN">
810
+ <span>456</span>
811
+ </td>
812
+ <td data-field="Status">
813
+ <span>Active</span>
814
+ </td>
815
+ <td data-field="Duration">
816
+ <span>4h 55m</span>
817
+ </td>
818
+ <td class="table-action">
819
+ <span>
820
+ <div class="dropdown btn-group">
821
+ <button type="button" id="xnq3f9zn1or" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
822
+ <span class="rioglyph rioglyph-option-vertical">
823
+ </span>
824
+ </button>
825
+ </div>
826
+ </span>
827
+ </td>
828
+ </tr>
829
+ <tr data-id="878" class="cursor-pointer">
830
+ <td data-field="Id">
831
+ <span>878</span>
832
+ </td>
833
+ <td data-field="Name">
834
+ <span>
835
+ <span class="NoData">
836
+ <span class="pointer-events-none user-select-none">No data</span>
837
+ </span>
838
+ </span>
839
+ </td>
840
+ <td data-field="VIN">
841
+ <span>878</span>
842
+ </td>
843
+ <td data-field="Status">
844
+ <span>Active</span>
845
+ </td>
846
+ <td data-field="Duration">
847
+ <span>9h 10m</span>
848
+ </td>
849
+ <td class="table-action">
850
+ <span>
851
+ <div class="dropdown btn-group">
852
+ <button type="button" id="s0qbncho0ip" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
853
+ <span class="rioglyph rioglyph-option-vertical">
854
+ </span>
855
+ </button>
856
+ </div>
857
+ </span>
858
+ </td>
859
+ </tr>
860
+ <tr data-id="895" class="cursor-pointer">
861
+ <td data-field="Id">
862
+ <span>895</span>
863
+ </td>
864
+ <td data-field="Name">
865
+ <span>
866
+ <span class="NoData">
867
+ <span class="pointer-events-none user-select-none">No data</span>
868
+ </span>
869
+ </span>
870
+ </td>
871
+ <td data-field="VIN">
872
+ <span>895</span>
873
+ </td>
874
+ <td data-field="Status">
875
+ <span>Active</span>
876
+ </td>
877
+ <td data-field="Duration">
878
+ <span>8h 45m</span>
879
+ </td>
880
+ <td class="table-action">
881
+ <span>
882
+ <div class="dropdown btn-group">
883
+ <button type="button" id="cjhctz5rnlc" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
884
+ <span class="rioglyph rioglyph-option-vertical">
885
+ </span>
886
+ </button>
887
+ </div>
888
+ </span>
889
+ </td>
890
+ </tr>
891
+ <tr data-id="978" class="cursor-pointer">
892
+ <td data-field="Id">
893
+ <span>978</span>
894
+ </td>
895
+ <td data-field="Name">
896
+ <span>Ipsum</span>
897
+ </td>
898
+ <td data-field="VIN">
899
+ <span>
900
+ <span class="NoData">
901
+ <span class="pointer-events-none user-select-none">No data</span>
902
+ </span>
903
+ </span>
904
+ </td>
905
+ <td data-field="Status">
906
+ <span>Inactive</span>
907
+ </td>
908
+ <td data-field="Duration">
909
+ <span>6h 35m</span>
910
+ </td>
911
+ <td class="table-action">
912
+ <span>
913
+ <div class="dropdown btn-group">
914
+ <button type="button" id="5iacsci0yi" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
915
+ <span class="rioglyph rioglyph-option-vertical">
916
+ </span>
917
+ </button>
918
+ </div>
919
+ </span>
920
+ </td>
921
+ </tr>
922
+ <tr data-id="2345" class="cursor-pointer">
923
+ <td data-field="Id">
924
+ <span>2345</span>
925
+ </td>
926
+ <td data-field="Name">
927
+ <span>Lorem</span>
928
+ </td>
929
+ <td data-field="VIN">
930
+ <span>2345</span>
931
+ </td>
932
+ <td data-field="Status">
933
+ <span>Active</span>
934
+ </td>
935
+ <td data-field="Duration">
936
+ <span>11h 50m</span>
937
+ </td>
938
+ <td class="table-action">
939
+ <span>
940
+ <div class="dropdown btn-group">
941
+ <button type="button" id="qm66xtyznu" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
942
+ <span class="rioglyph rioglyph-option-vertical">
943
+ </span>
944
+ </button>
945
+ </div>
946
+ </span>
947
+ </td>
948
+ </tr>
949
+ <tr data-id="2445" class="cursor-pointer">
950
+ <td data-field="Id">
951
+ <span>2445</span>
952
+ </td>
953
+ <td data-field="Name">
954
+ <span>
955
+ <span class="NoData">
956
+ <span class="pointer-events-none user-select-none">No data</span>
957
+ </span>
958
+ </span>
959
+ </td>
960
+ <td data-field="VIN">
961
+ <span>2445</span>
962
+ </td>
963
+ <td data-field="Status">
964
+ <span>Active</span>
965
+ </td>
966
+ <td data-field="Duration">
967
+ <span>7h 25m</span>
968
+ </td>
969
+ <td class="table-action">
970
+ <span>
971
+ <div class="dropdown btn-group">
972
+ <button type="button" id="0296eztcd15j" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
973
+ <span class="rioglyph rioglyph-option-vertical">
974
+ </span>
975
+ </button>
976
+ </div>
977
+ </span>
978
+ </td>
979
+ </tr>
980
+ <tr data-id="3456" class="cursor-pointer">
981
+ <td data-field="Id">
982
+ <span>3456</span>
983
+ </td>
984
+ <td data-field="Name">
985
+ <span>
986
+ <span class="NoData">
987
+ <span class="pointer-events-none user-select-none">No data</span>
988
+ </span>
989
+ </span>
990
+ </td>
991
+ <td data-field="VIN">
992
+ <span>3456</span>
993
+ </td>
994
+ <td data-field="Status">
995
+ <span>Active</span>
996
+ </td>
997
+ <td data-field="Duration">
998
+ <span>12h 00m</span>
999
+ </td>
1000
+ <td class="table-action">
1001
+ <span>
1002
+ <div class="dropdown btn-group">
1003
+ <button type="button" id="0df3rjzvahe" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
1004
+ <span class="rioglyph rioglyph-option-vertical">
1005
+ </span>
1006
+ </button>
1007
+ </div>
1008
+ </span>
1009
+ </td>
1010
+ </tr>
1011
+ <tr data-id="4567" class="cursor-pointer">
1012
+ <td data-field="Id">
1013
+ <span>4567</span>
1014
+ </td>
1015
+ <td data-field="Name">
1016
+ <span>
1017
+ <span class="NoData">
1018
+ <span class="pointer-events-none user-select-none">No data</span>
1019
+ </span>
1020
+ </span>
1021
+ </td>
1022
+ <td data-field="VIN">
1023
+ <span>4567</span>
1024
+ </td>
1025
+ <td data-field="Status">
1026
+ <span>Active</span>
1027
+ </td>
1028
+ <td data-field="Duration">
1029
+ <span>10h 20m</span>
1030
+ </td>
1031
+ <td class="table-action">
1032
+ <span>
1033
+ <div class="dropdown btn-group">
1034
+ <button type="button" id="zmays3vrfsr" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
1035
+ <span class="rioglyph rioglyph-option-vertical">
1036
+ </span>
1037
+ </button>
1038
+ </div>
1039
+ </span>
1040
+ </td>
1041
+ </tr>
1042
+ <tr data-id="7354" class="cursor-pointer">
1043
+ <td data-field="Id">
1044
+ <span>7354</span>
1045
+ </td>
1046
+ <td data-field="Name">
1047
+ <span>Lorem</span>
1048
+ </td>
1049
+ <td data-field="VIN">
1050
+ <span>7354</span>
1051
+ </td>
1052
+ <td data-field="Status">
1053
+ <span>Active</span>
1054
+ </td>
1055
+ <td data-field="Duration">
1056
+ <span>10h 30m</span>
1057
+ </td>
1058
+ <td class="table-action">
1059
+ <span>
1060
+ <div class="dropdown btn-group">
1061
+ <button type="button" id="k9wqezo8n1h" class="btn btn-default btn-link btn-md btn-icon-only btn-component dropdown-toggle" tabindex="0">
1062
+ <span class="rioglyph rioglyph-option-vertical">
1063
+ </span>
1064
+ </button>
1065
+ </div>
1066
+ </span>
1067
+ </td>
1068
+ </tr>
1069
+ <tr class="table-card-placeholder">
1070
+ </tr>
1071
+ <tr class="table-card-placeholder">
1072
+ </tr>
1073
+ <tr class="table-card-placeholder">
1074
+ </tr>
1075
+ <tr class="table-card-placeholder">
1076
+ </tr>
1077
+ <tr class="table-card-placeholder">
1078
+ </tr>
1079
+ <tr class="table-card-placeholder">
1080
+ </tr>
1081
+ <tr class="table-card-placeholder">
1082
+ </tr>
1083
+ <tr class="table-card-placeholder">
1084
+ </tr>
1085
+ <tr class="table-card-placeholder">
1086
+ </tr>
1087
+ <tr class="table-card-placeholder">
1088
+ </tr>
1089
+ </tbody>
1090
+ </table>
1091
+ </div>
1092
+ <div class="LoadMoreButton align-items-center display-flex justify-content-center margin-top-25 margin-bottom-25 non-printable">
1093
+ <div class="min-width-150">
1094
+ <div class="text-center margin-bottom-3">
1095
+ <span class="text-medium">70</span>
1096
+ <span class="margin-left-5 margin-right-5">/</span>
1097
+ <span class="text-medium">100</span>
1098
+ </div>
1099
+ <div class="progress height-2 margin-bottom-10 bg-white">
1100
+ <div class="progress-bar" style="width: 70%;">
1101
+ </div>
1102
+ </div>
1103
+ <div class="display-flex justify-content-center">
1104
+ <button class="btn btn-link padding-right-20 margin-top--5" type="button">
1105
+ <span class="rioglyph rioglyph-arrow-down">
1106
+ </span>Load more</button>
1107
+ </div>
1108
+ </div>
1109
+ </div>
1110
+ </div>
1111
+ ```