@rio-cloud/uikit-mcp 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/README.md +75 -40
  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 +2016 -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 +3223 -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 +2785 -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 +525 -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 +932 -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 +17550 -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 +483 -0
  112. package/dist/docs/foundations.md +20901 -0
  113. package/dist/docs/start/changelog.md +439 -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,1921 @@
1
+ # Multiselect
2
+
3
+ *Category:* Components
4
+ *Section:* Selection
5
+ *Source:* https://uikit.developers.rio.cloud/#components/multiselects
6
+ *Captured:* 2025-12-12T12:38:31.291Z
7
+
8
+ The Multiselect component is a form control and is intended to be used within forms. It's designed to be used instead of native HTML Select which cannot be styled and are rendered by each browser differently.
9
+
10
+ ## Multiselect
11
+
12
+ This component allows the selection of multiple items from a list.
13
+
14
+ If no item is selected in the list a default placeholder text is displayed in the box. Otherwise the items are listed in the box. If the item list is too long for the box, it is truncated and an ellipsis is displayed.
15
+
16
+ A maximum of seven items is displayed in the list at a time. If the list contains more that 6 items, a scrollbar is added in order to limit the height of the list.
17
+
18
+ This component supports items with icons and labels.
19
+
20
+ ### Example: Example 1
21
+
22
+ Default MultiselectOption 1Option 4Option 1
23
+ Option 2
24
+ Option 3
25
+ Option 4
26
+ Option 5
27
+ Option 6
28
+ Group Header
29
+ Option 8
30
+ Option 9
31
+
32
+ DisabledOption 1Option 4Option 1
33
+ Option 2
34
+ Option 3
35
+ Option 4
36
+ Option 5
37
+ Option 6
38
+ Group Header
39
+ Option 8
40
+ Option 9
41
+
42
+ with external error feedbackOption 1Option 4Option 1
43
+ Option 2
44
+ Option 3
45
+ Option 4
46
+ Option 5
47
+ Option 6
48
+ Group Header
49
+ Option 8
50
+ Option 9
51
+
52
+ This is an error message
53
+ with built-in error feedback
54
+ Option 1Option 4This is an error message
55
+
56
+ Option 1
57
+ Option 2
58
+ Option 3
59
+ Option 4
60
+ Option 5
61
+ Option 6
62
+ Group Header
63
+ Option 8
64
+ Option 9
65
+
66
+ #### Summary
67
+
68
+ Default MultiselectOption 1Option 4Option 1
69
+ Option 2
70
+ Option 3
71
+ Option 4
72
+ Option 5
73
+ Option 6
74
+ Group Header
75
+ Option 8
76
+ Option 9
77
+
78
+ DisabledOption 1Option 4Option 1
79
+ Option 2
80
+ Option 3
81
+ Option 4
82
+ Option 5
83
+ Option 6
84
+ Group Header
85
+ Option 8
86
+ Option 9
87
+
88
+ with external error feedbackOption 1Option 4Option 1
89
+ Option 2
90
+ Option 3
91
+ Option 4
92
+ Option 5
93
+ Option 6
94
+ Group Header
95
+ Option 8
96
+ Option 9
97
+
98
+ This is an error message
99
+ with built-in error feedback
100
+ Option 1Option 4This is an error message
101
+
102
+ Option 1
103
+ Option 2
104
+ Option 3
105
+ Option 4
106
+ Option 5
107
+ Option 6
108
+ Group Header
109
+ Option 8
110
+ Option 9
111
+
112
+ #### React (tsx)
113
+
114
+ ```tsx
115
+ import Multiselect from '@rio-cloud/rio-uikit/Multiselect';
116
+ import Notification from '@rio-cloud/rio-uikit/Notification';
117
+
118
+ const options = [
119
+ { id: '1', label: 'Option 1', selected: true },
120
+ { id: '2', label: 'Option 2' },
121
+ { id: '3', label: 'Option 3' },
122
+ { id: '4', label: 'Option 4', selected: true },
123
+ { id: '5', label: 'Option 5' },
124
+ { id: '6', label: 'Option 6', disabled: true },
125
+ { id: '7', label: 'Group Header', header: true },
126
+ { id: '8', label: 'Option 8' },
127
+ { id: '9', label: <i>Option 9</i> },
128
+ ];
129
+
130
+ export default () => (
131
+ <div className='form-group max-width-400'>
132
+ <label htmlFor='m1'>Default Multiselect</label>
133
+ <Multiselect
134
+ id='m1'
135
+ placeholder='Please select'
136
+ options={options}
137
+ useFilter
138
+ noItemMessage='There must be something here, I know it. Try harder!'
139
+ onChange={response => Notification.info(JSON.stringify(response))}
140
+ />
141
+ <br />
142
+ <label>Disabled</label>
143
+ <Multiselect
144
+ options={options}
145
+ useFilter
146
+ disabled
147
+ onChange={response => Notification.info(JSON.stringify(response))}
148
+ />
149
+ <hr />
150
+
151
+ <div className='form-group has-error has-feedback max-width-400'>
152
+ <label htmlFor='m2'>with external error feedback</label>
153
+ <Multiselect id='m2' options={options} hasError />
154
+ <span className='form-control-feedback rioglyph rioglyph-error-sign' />
155
+ <span className='help-block'>
156
+ <span>This is an error message</span>
157
+ </span>
158
+ </div>
159
+ <hr />
160
+
161
+ <div className='max-width-400'>
162
+ <label htmlFor='m3'>with built-in error feedback</label>
163
+ <Multiselect
164
+ id='m3'
165
+ options={options}
166
+ inputAddon='rioglyph rioglyph-robot'
167
+ errorMessage='This is an error message'
168
+ />
169
+ </div>
170
+ <hr />
171
+ </div>
172
+ );
173
+ ```
174
+
175
+ #### HTML (html)
176
+
177
+ ```html
178
+ <div class="form-group max-width-400">
179
+ <label for="m1">Default Multiselect</label>
180
+ <div class="select multiselect dropdown dropup">
181
+ <button type="button" id="m1" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
182
+ <span class="selected-option-list padding-left-1">
183
+ <span class="selected-option">
184
+ <span class="selected-label">Option 1</span>
185
+ <span class="removeIcon">
186
+ <span class="rioglyph rioglyph-remove">
187
+ </span>
188
+ </span>
189
+ </span>
190
+ <span class="selected-option">
191
+ <span class="selected-label">Option 4</span>
192
+ <span class="removeIcon">
193
+ <span class="rioglyph rioglyph-remove">
194
+ </span>
195
+ </span>
196
+ </span>
197
+ </span>
198
+ <span class="caret">
199
+ </span>
200
+ </button>
201
+ <ul class="dropdown-menu" role="menu">
202
+ <li class="active" role="listitem">
203
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
204
+ <span class="selected-option-dropdown-item">Option 1</span>
205
+ <input type="hidden" value="1">
206
+ </a>
207
+ </li>
208
+ <li class="" role="listitem">
209
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
210
+ <span class="selected-option-dropdown-item">Option 2</span>
211
+ <input type="hidden" value="2">
212
+ </a>
213
+ </li>
214
+ <li class="" role="listitem">
215
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
216
+ <span class="selected-option-dropdown-item">Option 3</span>
217
+ <input type="hidden" value="3">
218
+ </a>
219
+ </li>
220
+ <li class="active" role="listitem">
221
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
222
+ <span class="selected-option-dropdown-item">Option 4</span>
223
+ <input type="hidden" value="4">
224
+ </a>
225
+ </li>
226
+ <li class="" role="listitem">
227
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
228
+ <span class="selected-option-dropdown-item">Option 5</span>
229
+ <input type="hidden" value="5">
230
+ </a>
231
+ </li>
232
+ <li class="disabled" role="listitem">
233
+ <a role="menuitem" class="pointer-events-none display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
234
+ <span class="selected-option-dropdown-item">Option 6</span>
235
+ <input type="hidden" value="6">
236
+ </a>
237
+ </li>
238
+ <li class="dropdown-header center ">
239
+ <span class="dropdown-header-text">Group Header</span>
240
+ </li>
241
+ <li class="" role="listitem">
242
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
243
+ <span class="selected-option-dropdown-item">Option 8</span>
244
+ <input type="hidden" value="8">
245
+ </a>
246
+ </li>
247
+ <li class="" role="listitem">
248
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
249
+ <span class="selected-option-dropdown-item">
250
+ <i>Option 9</i>
251
+ </span>
252
+ <input type="hidden" value="9">
253
+ </a>
254
+ </li>
255
+ </ul>
256
+ </div>
257
+ <br>
258
+ <label>Disabled</label>
259
+ <div class="select multiselect dropdown dropup">
260
+ <button type="button" class="dropdown-toggle form-control text-left disabled" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
261
+ <span class="selected-option-list padding-left-1">
262
+ <span class="selected-option">
263
+ <span class="selected-label">Option 1</span>
264
+ <span class="removeIcon">
265
+ <span class="rioglyph rioglyph-remove">
266
+ </span>
267
+ </span>
268
+ </span>
269
+ <span class="selected-option">
270
+ <span class="selected-label">Option 4</span>
271
+ <span class="removeIcon">
272
+ <span class="rioglyph rioglyph-remove">
273
+ </span>
274
+ </span>
275
+ </span>
276
+ </span>
277
+ <span class="caret">
278
+ </span>
279
+ </button>
280
+ <ul class="dropdown-menu" role="menu">
281
+ <li class="active" role="listitem">
282
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
283
+ <span class="selected-option-dropdown-item">Option 1</span>
284
+ <input type="hidden" value="1">
285
+ </a>
286
+ </li>
287
+ <li class="" role="listitem">
288
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
289
+ <span class="selected-option-dropdown-item">Option 2</span>
290
+ <input type="hidden" value="2">
291
+ </a>
292
+ </li>
293
+ <li class="" role="listitem">
294
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
295
+ <span class="selected-option-dropdown-item">Option 3</span>
296
+ <input type="hidden" value="3">
297
+ </a>
298
+ </li>
299
+ <li class="active" role="listitem">
300
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
301
+ <span class="selected-option-dropdown-item">Option 4</span>
302
+ <input type="hidden" value="4">
303
+ </a>
304
+ </li>
305
+ <li class="" role="listitem">
306
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
307
+ <span class="selected-option-dropdown-item">Option 5</span>
308
+ <input type="hidden" value="5">
309
+ </a>
310
+ </li>
311
+ <li class="disabled" role="listitem">
312
+ <a role="menuitem" class="pointer-events-none display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
313
+ <span class="selected-option-dropdown-item">Option 6</span>
314
+ <input type="hidden" value="6">
315
+ </a>
316
+ </li>
317
+ <li class="dropdown-header center ">
318
+ <span class="dropdown-header-text">Group Header</span>
319
+ </li>
320
+ <li class="" role="listitem">
321
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
322
+ <span class="selected-option-dropdown-item">Option 8</span>
323
+ <input type="hidden" value="8">
324
+ </a>
325
+ </li>
326
+ <li class="" role="listitem">
327
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
328
+ <span class="selected-option-dropdown-item">
329
+ <i>Option 9</i>
330
+ </span>
331
+ <input type="hidden" value="9">
332
+ </a>
333
+ </li>
334
+ </ul>
335
+ </div>
336
+ <hr>
337
+ <div class="form-group has-error has-feedback max-width-400">
338
+ <label for="m2">with external error feedback</label>
339
+ <div class="select multiselect dropdown has-error dropup">
340
+ <button type="button" id="m2" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
341
+ <span class="selected-option-list">
342
+ <span class="selected-option">
343
+ <span class="selected-label">Option 1</span>
344
+ <span class="removeIcon">
345
+ <span class="rioglyph rioglyph-remove">
346
+ </span>
347
+ </span>
348
+ </span>
349
+ <span class="selected-option">
350
+ <span class="selected-label">Option 4</span>
351
+ <span class="removeIcon">
352
+ <span class="rioglyph rioglyph-remove">
353
+ </span>
354
+ </span>
355
+ </span>
356
+ </span>
357
+ <span class="caret">
358
+ </span>
359
+ </button>
360
+ <ul class="dropdown-menu" role="menu">
361
+ <li class="active" role="listitem">
362
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
363
+ <span class="selected-option-dropdown-item">Option 1</span>
364
+ <input type="hidden" value="1">
365
+ </a>
366
+ </li>
367
+ <li class="" role="listitem">
368
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
369
+ <span class="selected-option-dropdown-item">Option 2</span>
370
+ <input type="hidden" value="2">
371
+ </a>
372
+ </li>
373
+ <li class="" role="listitem">
374
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
375
+ <span class="selected-option-dropdown-item">Option 3</span>
376
+ <input type="hidden" value="3">
377
+ </a>
378
+ </li>
379
+ <li class="active" role="listitem">
380
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
381
+ <span class="selected-option-dropdown-item">Option 4</span>
382
+ <input type="hidden" value="4">
383
+ </a>
384
+ </li>
385
+ <li class="" role="listitem">
386
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
387
+ <span class="selected-option-dropdown-item">Option 5</span>
388
+ <input type="hidden" value="5">
389
+ </a>
390
+ </li>
391
+ <li class="disabled" role="listitem">
392
+ <a role="menuitem" class="pointer-events-none display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
393
+ <span class="selected-option-dropdown-item">Option 6</span>
394
+ <input type="hidden" value="6">
395
+ </a>
396
+ </li>
397
+ <li class="dropdown-header center ">
398
+ <span class="dropdown-header-text">Group Header</span>
399
+ </li>
400
+ <li class="" role="listitem">
401
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
402
+ <span class="selected-option-dropdown-item">Option 8</span>
403
+ <input type="hidden" value="8">
404
+ </a>
405
+ </li>
406
+ <li class="" role="listitem">
407
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
408
+ <span class="selected-option-dropdown-item">
409
+ <i>Option 9</i>
410
+ </span>
411
+ <input type="hidden" value="9">
412
+ </a>
413
+ </li>
414
+ </ul>
415
+ </div>
416
+ <span class="form-control-feedback rioglyph rioglyph-error-sign">
417
+ </span>
418
+ <span class="help-block">
419
+ <span>This is an error message</span>
420
+ </span>
421
+ </div>
422
+ <hr>
423
+ <div class="max-width-400">
424
+ <label for="m3">with built-in error feedback</label>
425
+ <div class="select multiselect dropdown dropup">
426
+ <div class="form-group margin-bottom-0 has-feedback has-error">
427
+ <div class="input-group">
428
+ <div class="input-group-addon">
429
+ <span class="rioglyph rioglyph-robot">
430
+ </span>
431
+ </div>
432
+ <div class="form-control-feedback-wrapper">
433
+ <button type="button" id="m3" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
434
+ <span class="selected-option-list margin-left-0">
435
+ <span class="selected-option">
436
+ <span class="selected-label">Option 1</span>
437
+ <span class="removeIcon">
438
+ <span class="rioglyph rioglyph-remove">
439
+ </span>
440
+ </span>
441
+ </span>
442
+ <span class="selected-option">
443
+ <span class="selected-label">Option 4</span>
444
+ <span class="removeIcon">
445
+ <span class="rioglyph rioglyph-remove">
446
+ </span>
447
+ </span>
448
+ </span>
449
+ </span>
450
+ <span class="caret">
451
+ </span>
452
+ </button>
453
+ <span class="form-control-feedback rioglyph rioglyph-error-sign">
454
+ </span>
455
+ <span class="help-block white-space-normal">
456
+ <span>This is an error message</span>
457
+ </span>
458
+ </div>
459
+ </div>
460
+ </div>
461
+ <ul class="dropdown-menu" role="menu">
462
+ <li class="active" role="listitem">
463
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
464
+ <span class="selected-option-dropdown-item">Option 1</span>
465
+ <input type="hidden" value="1">
466
+ </a>
467
+ </li>
468
+ <li class="" role="listitem">
469
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
470
+ <span class="selected-option-dropdown-item">Option 2</span>
471
+ <input type="hidden" value="2">
472
+ </a>
473
+ </li>
474
+ <li class="" role="listitem">
475
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
476
+ <span class="selected-option-dropdown-item">Option 3</span>
477
+ <input type="hidden" value="3">
478
+ </a>
479
+ </li>
480
+ <li class="active" role="listitem">
481
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
482
+ <span class="selected-option-dropdown-item">Option 4</span>
483
+ <input type="hidden" value="4">
484
+ </a>
485
+ </li>
486
+ <li class="" role="listitem">
487
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
488
+ <span class="selected-option-dropdown-item">Option 5</span>
489
+ <input type="hidden" value="5">
490
+ </a>
491
+ </li>
492
+ <li class="disabled" role="listitem">
493
+ <a role="menuitem" class="pointer-events-none display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
494
+ <span class="selected-option-dropdown-item">Option 6</span>
495
+ <input type="hidden" value="6">
496
+ </a>
497
+ </li>
498
+ <li class="dropdown-header center ">
499
+ <span class="dropdown-header-text">Group Header</span>
500
+ </li>
501
+ <li class="" role="listitem">
502
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
503
+ <span class="selected-option-dropdown-item">Option 8</span>
504
+ <input type="hidden" value="8">
505
+ </a>
506
+ </li>
507
+ <li class="" role="listitem">
508
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
509
+ <span class="selected-option-dropdown-item">
510
+ <i>Option 9</i>
511
+ </span>
512
+ <input type="hidden" value="9">
513
+ </a>
514
+ </li>
515
+ </ul>
516
+ </div>
517
+ </div>
518
+ <hr>
519
+ </div>
520
+ ```
521
+
522
+ #### Props
523
+
524
+ | Name | Type | Default | Description |
525
+ | --- | --- | --- | --- |
526
+ | name | String | — | Passed through as HTML attribute to the toggle button. |
527
+ | id | String | — | Passed through as HTML attribute to the toggle button. Uses the value given to name if not provided explicitly. |
528
+ | options | Array of Objects | [] | Items to display in the dropdown menu. |
529
+ | └id | String | — | Used to identify an option |
530
+ | └label | String / Node | — | The option item text |
531
+ | └icon | Node | — | Icon to be displayed in front of the label |
532
+ | └selected | Boolean | false | Defines whether the menu item is selected. |
533
+ | └disabled | Boolean | false | Setting "disabled" to true will disable the respective item. |
534
+ | └header | Boolean | false | Will treat the given value as a menu header. |
535
+ | value | Array | — | Sets the ids of the selected options when the component is already mounted. |
536
+ | onChange | Function | () => {} | Callback function triggered when an item is selected. |
537
+ | placeholder | String / Node | — | Text to display when nothing is selected. |
538
+ | dropup | Boolean | false | Defines whether the dropdown opens upwards. Set to "true" additionally disables autoDrop feature. |
539
+ | pullRight | Boolean | false | Defines whether the dropdown opens right aligned to the dropdown toggle. Set to "true" additionally disables autoDrop feature. |
540
+ | autoDropDirection | Boolean | true | Enables or disables the autoDrop positioning feature. When enabled, the option list opens below or above the input depending on the surrounding space. |
541
+ | bsSize | String | md | Defines the size of the select to be rendered. Possible values are: 'sm', 'md' and 'lg' |
542
+ | disabled | Boolean | false | Option to disable the opening of the option list. |
543
+ | tabIndex | Number | 0 | The tabindex attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation. See tabIndex |
544
+ | hasError | Boolean | false | Defines whether the Bootstrap error classes shall be added to the toggle element. |
545
+ | useFilter | Boolean | false | Defines whether the component should be filterable. |
546
+ | noItemMessage | String / Node | — | Text that shall be shown when not match was found when filtering. |
547
+ | counterMessage | Object | — | Object that will render the number of selected items instead of individual items. Using this prop will disable the filter functionality. { one: 'item selected', many: 'items selected' } |
548
+ | └one | String / Node | — | Text that will be used when a single item is selected. |
549
+ | └many | String / Node | — | Text that will be used when multiple item are selected. |
550
+ | renderCounterMessage | Function | — | Optional render function that is used to render the message how many items have been selected. The total amount of selected items will be passed into that function. Using this prop will disable the filter functionality. |
551
+ | multiline | boolean | false | Defines whether the selected items wrap around within the dropdown toggle. |
552
+ | showSelectedItemIcon | Boolean | false | Set to show only the icon and not the label of selected item. |
553
+ | showUnselectedItemIcons | Boolean | false | Set to show all item icons within the toggle element. Selected items are highlighted and unselected items are shown as inactive. |
554
+ | inputAddon | String \| ReactNode | — | Option to add an icon as a leading input addon to the select component. |
555
+ | errorMessage | String | — | Input error message. |
556
+ | warningMessage | String | — | Input warning message. |
557
+ | messageWhiteSpace | 'normal' \| 'prewrap' \| 'nowrap' | 'normal' | Optional warning message white-space setting. |
558
+ | dropdownClassName | String | — | Additional classes to be set to the dropdown. |
559
+ | btnClassName | String | — | Additional classes to be set to the select/input. |
560
+ | className | String | — | Additional classes to be set to the select wrapper. |
561
+
562
+ ### Example: Example 2
563
+
564
+ With label component
565
+ Please select vehicles
566
+
567
+ Truck
568
+ Van
569
+ Bus
570
+
571
+ #### Summary
572
+
573
+ With label component
574
+ Please select vehicles
575
+
576
+ Truck
577
+ Van
578
+ Bus
579
+
580
+ #### React (tsx)
581
+
582
+ ```tsx
583
+ import Multiselect from '@rio-cloud/rio-uikit/Multiselect';
584
+ import Notification from '@rio-cloud/rio-uikit/Notification';
585
+
586
+ const options = [
587
+ {
588
+ id: '1',
589
+ label: (
590
+ <span className='display-flex gap-3 align-items-center'>
591
+ <span className='rioglyph rioglyph-truck' />
592
+ <span>Truck</span>
593
+ </span>
594
+ ),
595
+ foo: 'Bar',
596
+ },
597
+ {
598
+ id: '2',
599
+ label: (
600
+ <span className='display-flex gap-3 align-items-center'>
601
+ <span className='rioglyph rioglyph-van' />
602
+ <span>Van</span>
603
+ </span>
604
+ ),
605
+ foo: 'Bar',
606
+ },
607
+ {
608
+ id: '3',
609
+ label: (
610
+ <span className='display-flex gap-3 align-items-center'>
611
+ <span className='rioglyph rioglyph-bus' />
612
+ <span>Bus</span>
613
+ </span>
614
+ ),
615
+ foo: 'Bar',
616
+ },
617
+ ];
618
+
619
+ export default () => (
620
+ <div className='form-group max-width-400'>
621
+ <label htmlFor='withLabel'>With label component</label>
622
+ <Multiselect
623
+ id='withLabel'
624
+ placeholder='Please select vehicles'
625
+ options={options}
626
+ inputAddon='rioglyph rioglyph-robot'
627
+ useFilter
628
+ onChange={response => Notification.info(JSON.stringify(response))}
629
+ />
630
+ </div>
631
+ );
632
+ ```
633
+
634
+ #### HTML (html)
635
+
636
+ ```html
637
+ <div class="form-group max-width-400">
638
+ <label for="withLabel">With label component</label>
639
+ <div class="select multiselect dropdown dropup">
640
+ <div class="form-group margin-bottom-0">
641
+ <div class="input-group">
642
+ <div class="input-group-addon">
643
+ <span class="rioglyph rioglyph-robot">
644
+ </span>
645
+ </div>
646
+ <div class="form-control-feedback-wrapper">
647
+ <button type="button" id="withLabel" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
648
+ <span class="placeholder">Please select vehicles</span>
649
+ <span class="caret">
650
+ </span>
651
+ </button>
652
+ </div>
653
+ </div>
654
+ </div>
655
+ <ul class="dropdown-menu" role="menu">
656
+ <li class="" role="listitem">
657
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
658
+ <span class="selected-option-dropdown-item">
659
+ <span class="display-flex gap-3 align-items-center">
660
+ <span class="rioglyph rioglyph-truck">
661
+ </span>
662
+ <span>Truck</span>
663
+ </span>
664
+ </span>
665
+ <input type="hidden" value="1">
666
+ </a>
667
+ </li>
668
+ <li class="" role="listitem">
669
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
670
+ <span class="selected-option-dropdown-item">
671
+ <span class="display-flex gap-3 align-items-center">
672
+ <span class="rioglyph rioglyph-van">
673
+ </span>
674
+ <span>Van</span>
675
+ </span>
676
+ </span>
677
+ <input type="hidden" value="2">
678
+ </a>
679
+ </li>
680
+ <li class="" role="listitem">
681
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
682
+ <span class="selected-option-dropdown-item">
683
+ <span class="display-flex gap-3 align-items-center">
684
+ <span class="rioglyph rioglyph-bus">
685
+ </span>
686
+ <span>Bus</span>
687
+ </span>
688
+ </span>
689
+ <input type="hidden" value="3">
690
+ </a>
691
+ </li>
692
+ </ul>
693
+ </div>
694
+ </div>
695
+ ```
696
+
697
+ #### Props
698
+
699
+ | Name | Type | Default | Description |
700
+ | --- | --- | --- | --- |
701
+ | name | String | — | Passed through as HTML attribute to the toggle button. |
702
+ | id | String | — | Passed through as HTML attribute to the toggle button. Uses the value given to name if not provided explicitly. |
703
+ | options | Array of Objects | [] | Items to display in the dropdown menu. |
704
+ | └id | String | — | Used to identify an option |
705
+ | └label | String / Node | — | The option item text |
706
+ | └icon | Node | — | Icon to be displayed in front of the label |
707
+ | └selected | Boolean | false | Defines whether the menu item is selected. |
708
+ | └disabled | Boolean | false | Setting "disabled" to true will disable the respective item. |
709
+ | └header | Boolean | false | Will treat the given value as a menu header. |
710
+ | value | Array | — | Sets the ids of the selected options when the component is already mounted. |
711
+ | onChange | Function | () => {} | Callback function triggered when an item is selected. |
712
+ | placeholder | String / Node | — | Text to display when nothing is selected. |
713
+ | dropup | Boolean | false | Defines whether the dropdown opens upwards. Set to "true" additionally disables autoDrop feature. |
714
+ | pullRight | Boolean | false | Defines whether the dropdown opens right aligned to the dropdown toggle. Set to "true" additionally disables autoDrop feature. |
715
+ | autoDropDirection | Boolean | true | Enables or disables the autoDrop positioning feature. When enabled, the option list opens below or above the input depending on the surrounding space. |
716
+ | bsSize | String | md | Defines the size of the select to be rendered. Possible values are: 'sm', 'md' and 'lg' |
717
+ | disabled | Boolean | false | Option to disable the opening of the option list. |
718
+ | tabIndex | Number | 0 | The tabindex attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation. See tabIndex |
719
+ | hasError | Boolean | false | Defines whether the Bootstrap error classes shall be added to the toggle element. |
720
+ | useFilter | Boolean | false | Defines whether the component should be filterable. |
721
+ | noItemMessage | String / Node | — | Text that shall be shown when not match was found when filtering. |
722
+ | counterMessage | Object | — | Object that will render the number of selected items instead of individual items. Using this prop will disable the filter functionality. { one: 'item selected', many: 'items selected' } |
723
+ | └one | String / Node | — | Text that will be used when a single item is selected. |
724
+ | └many | String / Node | — | Text that will be used when multiple item are selected. |
725
+ | renderCounterMessage | Function | — | Optional render function that is used to render the message how many items have been selected. The total amount of selected items will be passed into that function. Using this prop will disable the filter functionality. |
726
+ | multiline | boolean | false | Defines whether the selected items wrap around within the dropdown toggle. |
727
+ | showSelectedItemIcon | Boolean | false | Set to show only the icon and not the label of selected item. |
728
+ | showUnselectedItemIcons | Boolean | false | Set to show all item icons within the toggle element. Selected items are highlighted and unselected items are shown as inactive. |
729
+ | inputAddon | String \| ReactNode | — | Option to add an icon as a leading input addon to the select component. |
730
+ | errorMessage | String | — | Input error message. |
731
+ | warningMessage | String | — | Input warning message. |
732
+ | messageWhiteSpace | 'normal' \| 'prewrap' \| 'nowrap' | 'normal' | Optional warning message white-space setting. |
733
+ | dropdownClassName | String | — | Additional classes to be set to the dropdown. |
734
+ | btnClassName | String | — | Additional classes to be set to the select/input. |
735
+ | className | String | — | Additional classes to be set to the select wrapper. |
736
+
737
+ ### Example: Example 3
738
+
739
+ Multiline with wrapping items
740
+ Option 1Option 2Option 3Option 4Option 5Option 6Option 8
741
+
742
+ Option 1
743
+ Option 2
744
+ Option 3
745
+ Option 4
746
+ Option 5
747
+ Option 6
748
+ Group Header
749
+ Option 8
750
+ Option 9
751
+ Option 10
752
+
753
+ #### Summary
754
+
755
+ Multiline with wrapping items
756
+ Option 1Option 2Option 3Option 4Option 5Option 6Option 8
757
+
758
+ Option 1
759
+ Option 2
760
+ Option 3
761
+ Option 4
762
+ Option 5
763
+ Option 6
764
+ Group Header
765
+ Option 8
766
+ Option 9
767
+ Option 10
768
+
769
+ #### React (tsx)
770
+
771
+ ```tsx
772
+ import Multiselect from '@rio-cloud/rio-uikit/Multiselect';
773
+
774
+ const options = [
775
+ { id: '1', label: 'Option 1', selected: true },
776
+ { id: '2', label: 'Option 2', selected: true },
777
+ { id: '3', label: 'Option 3', selected: true },
778
+ { id: '4', label: 'Option 4', selected: true },
779
+ { id: '5', label: 'Option 5', selected: true },
780
+ { id: '6', label: 'Option 6', selected: true },
781
+ { id: '7', label: 'Group Header', header: true },
782
+ { id: '8', label: 'Option 8', selected: true },
783
+ { id: '9', label: 'Option 9' },
784
+ { id: '10', label: 'Option 10' },
785
+ ];
786
+
787
+ export default () => (
788
+ <div className='form-group max-width-400'>
789
+ <label htmlFor='multiline'>Multiline with wrapping items</label>
790
+ <Multiselect
791
+ id='multiline'
792
+ placeholder='Please select'
793
+ noItemMessage='Nothing found'
794
+ options={options}
795
+ inputAddon='rioglyph rioglyph-filter'
796
+ multiline
797
+ useFilter
798
+ />
799
+ </div>
800
+ );
801
+ ```
802
+
803
+ #### HTML (html)
804
+
805
+ ```html
806
+ <div class="form-group max-width-400">
807
+ <label for="multiline">Multiline with wrapping items</label>
808
+ <div class="select multiselect dropdown dropup">
809
+ <div class="form-group margin-bottom-0">
810
+ <div class="input-group">
811
+ <div class="input-group-addon">
812
+ <span class="rioglyph rioglyph-filter">
813
+ </span>
814
+ </div>
815
+ <div class="form-control-feedback-wrapper">
816
+ <button type="button" id="multiline" class="dropdown-toggle form-control text-left height-auto" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
817
+ <span class="selected-option-list flex-wrap margin-left-0 padding-left-1">
818
+ <span class="selected-option">
819
+ <span class="selected-label">Option 1</span>
820
+ <span class="removeIcon">
821
+ <span class="rioglyph rioglyph-remove">
822
+ </span>
823
+ </span>
824
+ </span>
825
+ <span class="selected-option">
826
+ <span class="selected-label">Option 2</span>
827
+ <span class="removeIcon">
828
+ <span class="rioglyph rioglyph-remove">
829
+ </span>
830
+ </span>
831
+ </span>
832
+ <span class="selected-option">
833
+ <span class="selected-label">Option 3</span>
834
+ <span class="removeIcon">
835
+ <span class="rioglyph rioglyph-remove">
836
+ </span>
837
+ </span>
838
+ </span>
839
+ <span class="selected-option">
840
+ <span class="selected-label">Option 4</span>
841
+ <span class="removeIcon">
842
+ <span class="rioglyph rioglyph-remove">
843
+ </span>
844
+ </span>
845
+ </span>
846
+ <span class="selected-option">
847
+ <span class="selected-label">Option 5</span>
848
+ <span class="removeIcon">
849
+ <span class="rioglyph rioglyph-remove">
850
+ </span>
851
+ </span>
852
+ </span>
853
+ <span class="selected-option">
854
+ <span class="selected-label">Option 6</span>
855
+ <span class="removeIcon">
856
+ <span class="rioglyph rioglyph-remove">
857
+ </span>
858
+ </span>
859
+ </span>
860
+ <span class="selected-option">
861
+ <span class="selected-label">Option 8</span>
862
+ <span class="removeIcon">
863
+ <span class="rioglyph rioglyph-remove">
864
+ </span>
865
+ </span>
866
+ </span>
867
+ <input type="text" role="searchbox" class="multiselect-filter-input" value="">
868
+ </span>
869
+ <span class="caret">
870
+ </span>
871
+ </button>
872
+ </div>
873
+ </div>
874
+ </div>
875
+ <ul class="dropdown-menu" role="menu">
876
+ <li class="active" role="listitem">
877
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
878
+ <span class="selected-option-dropdown-item">Option 1</span>
879
+ <input type="hidden" value="1">
880
+ </a>
881
+ </li>
882
+ <li class="active" role="listitem">
883
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
884
+ <span class="selected-option-dropdown-item">Option 2</span>
885
+ <input type="hidden" value="2">
886
+ </a>
887
+ </li>
888
+ <li class="active" role="listitem">
889
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
890
+ <span class="selected-option-dropdown-item">Option 3</span>
891
+ <input type="hidden" value="3">
892
+ </a>
893
+ </li>
894
+ <li class="active" role="listitem">
895
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
896
+ <span class="selected-option-dropdown-item">Option 4</span>
897
+ <input type="hidden" value="4">
898
+ </a>
899
+ </li>
900
+ <li class="active" role="listitem">
901
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
902
+ <span class="selected-option-dropdown-item">Option 5</span>
903
+ <input type="hidden" value="5">
904
+ </a>
905
+ </li>
906
+ <li class="active" role="listitem">
907
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
908
+ <span class="selected-option-dropdown-item">Option 6</span>
909
+ <input type="hidden" value="6">
910
+ </a>
911
+ </li>
912
+ <li class="dropdown-header center ">
913
+ <span class="dropdown-header-text">Group Header</span>
914
+ </li>
915
+ <li class="active" role="listitem">
916
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
917
+ <span class="selected-option-dropdown-item">Option 8</span>
918
+ <input type="hidden" value="8">
919
+ </a>
920
+ </li>
921
+ <li class="" role="listitem">
922
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
923
+ <span class="selected-option-dropdown-item">Option 9</span>
924
+ <input type="hidden" value="9">
925
+ </a>
926
+ </li>
927
+ <li class="" role="listitem">
928
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="10" data-item-index="9">
929
+ <span class="selected-option-dropdown-item">Option 10</span>
930
+ <input type="hidden" value="10">
931
+ </a>
932
+ </li>
933
+ </ul>
934
+ </div>
935
+ </div>
936
+ ```
937
+
938
+ #### Props
939
+
940
+ | Name | Type | Default | Description |
941
+ | --- | --- | --- | --- |
942
+ | name | String | — | Passed through as HTML attribute to the toggle button. |
943
+ | id | String | — | Passed through as HTML attribute to the toggle button. Uses the value given to name if not provided explicitly. |
944
+ | options | Array of Objects | [] | Items to display in the dropdown menu. |
945
+ | └id | String | — | Used to identify an option |
946
+ | └label | String / Node | — | The option item text |
947
+ | └icon | Node | — | Icon to be displayed in front of the label |
948
+ | └selected | Boolean | false | Defines whether the menu item is selected. |
949
+ | └disabled | Boolean | false | Setting "disabled" to true will disable the respective item. |
950
+ | └header | Boolean | false | Will treat the given value as a menu header. |
951
+ | value | Array | — | Sets the ids of the selected options when the component is already mounted. |
952
+ | onChange | Function | () => {} | Callback function triggered when an item is selected. |
953
+ | placeholder | String / Node | — | Text to display when nothing is selected. |
954
+ | dropup | Boolean | false | Defines whether the dropdown opens upwards. Set to "true" additionally disables autoDrop feature. |
955
+ | pullRight | Boolean | false | Defines whether the dropdown opens right aligned to the dropdown toggle. Set to "true" additionally disables autoDrop feature. |
956
+ | autoDropDirection | Boolean | true | Enables or disables the autoDrop positioning feature. When enabled, the option list opens below or above the input depending on the surrounding space. |
957
+ | bsSize | String | md | Defines the size of the select to be rendered. Possible values are: 'sm', 'md' and 'lg' |
958
+ | disabled | Boolean | false | Option to disable the opening of the option list. |
959
+ | tabIndex | Number | 0 | The tabindex attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation. See tabIndex |
960
+ | hasError | Boolean | false | Defines whether the Bootstrap error classes shall be added to the toggle element. |
961
+ | useFilter | Boolean | false | Defines whether the component should be filterable. |
962
+ | noItemMessage | String / Node | — | Text that shall be shown when not match was found when filtering. |
963
+ | counterMessage | Object | — | Object that will render the number of selected items instead of individual items. Using this prop will disable the filter functionality. { one: 'item selected', many: 'items selected' } |
964
+ | └one | String / Node | — | Text that will be used when a single item is selected. |
965
+ | └many | String / Node | — | Text that will be used when multiple item are selected. |
966
+ | renderCounterMessage | Function | — | Optional render function that is used to render the message how many items have been selected. The total amount of selected items will be passed into that function. Using this prop will disable the filter functionality. |
967
+ | multiline | boolean | false | Defines whether the selected items wrap around within the dropdown toggle. |
968
+ | showSelectedItemIcon | Boolean | false | Set to show only the icon and not the label of selected item. |
969
+ | showUnselectedItemIcons | Boolean | false | Set to show all item icons within the toggle element. Selected items are highlighted and unselected items are shown as inactive. |
970
+ | inputAddon | String \| ReactNode | — | Option to add an icon as a leading input addon to the select component. |
971
+ | errorMessage | String | — | Input error message. |
972
+ | warningMessage | String | — | Input warning message. |
973
+ | messageWhiteSpace | 'normal' \| 'prewrap' \| 'nowrap' | 'normal' | Optional warning message white-space setting. |
974
+ | dropdownClassName | String | — | Additional classes to be set to the dropdown. |
975
+ | btnClassName | String | — | Additional classes to be set to the select/input. |
976
+ | className | String | — | Additional classes to be set to the select wrapper. |
977
+
978
+ ### Example: Example 4
979
+
980
+ With selected item counterPlease selectOption 1
981
+ Option 2
982
+ Option 3
983
+
984
+ With selected item counter render function - Note: "counterMessage" should be favoredPlease selectOption 1
985
+ Option 2
986
+ Option 3
987
+
988
+ #### Summary
989
+
990
+ With selected item counterPlease selectOption 1
991
+ Option 2
992
+ Option 3
993
+
994
+ With selected item counter render function - Note: "counterMessage" should be favoredPlease selectOption 1
995
+ Option 2
996
+ Option 3
997
+
998
+ #### React (tsx)
999
+
1000
+ ```tsx
1001
+ import Multiselect from '@rio-cloud/rio-uikit/Multiselect';
1002
+ import Notification from '@rio-cloud/rio-uikit/Notification';
1003
+
1004
+ const options = [
1005
+ { id: '1', label: 'Option 1' },
1006
+ { id: '2', label: 'Option 2' },
1007
+ { id: '3', label: 'Option 3' },
1008
+ ];
1009
+
1010
+ export default () => (
1011
+ <div className='form-group max-width-500'>
1012
+ <label htmlFor='withCounter'>With selected item counter</label>
1013
+ <Multiselect
1014
+ id='withCounter'
1015
+ placeholder='Please select'
1016
+ options={options}
1017
+ counterMessage={{ one: 'Asset selected', many: 'Assets selected' }}
1018
+ onChange={response => Notification.info(JSON.stringify(response))}
1019
+ />
1020
+ <br />
1021
+ <label htmlFor='withMessage'>
1022
+ With selected item counter render function - Note: "counterMessage" should be favored
1023
+ </label>
1024
+ <Multiselect
1025
+ id='withMessage'
1026
+ placeholder='Please select'
1027
+ options={options}
1028
+ renderCounterMessage={selectedAmount =>
1029
+ selectedAmount === 1 ? `${selectedAmount} Asset selected` : `${selectedAmount} Assets selected`
1030
+ }
1031
+ onChange={response => Notification.info(JSON.stringify(response))}
1032
+ />
1033
+ </div>
1034
+ );
1035
+ ```
1036
+
1037
+ #### HTML (html)
1038
+
1039
+ ```html
1040
+ <div class="form-group max-width-500">
1041
+ <label for="withCounter">With selected item counter</label>
1042
+ <div class="select multiselect dropdown dropup">
1043
+ <button type="button" id="withCounter" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1044
+ <span class="placeholder">Please select</span>
1045
+ <span class="caret">
1046
+ </span>
1047
+ </button>
1048
+ <ul class="dropdown-menu" role="menu">
1049
+ <li class="" role="listitem">
1050
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1051
+ <span class="selected-option-dropdown-item">Option 1</span>
1052
+ <input type="hidden" value="1">
1053
+ </a>
1054
+ </li>
1055
+ <li class="" role="listitem">
1056
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1057
+ <span class="selected-option-dropdown-item">Option 2</span>
1058
+ <input type="hidden" value="2">
1059
+ </a>
1060
+ </li>
1061
+ <li class="" role="listitem">
1062
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1063
+ <span class="selected-option-dropdown-item">Option 3</span>
1064
+ <input type="hidden" value="3">
1065
+ </a>
1066
+ </li>
1067
+ </ul>
1068
+ </div>
1069
+ <br>
1070
+ <label for="withMessage">With selected item counter render function - Note: "counterMessage" should be favored</label>
1071
+ <div class="select multiselect dropdown dropup">
1072
+ <button type="button" id="withMessage" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1073
+ <span class="placeholder">Please select</span>
1074
+ <span class="caret">
1075
+ </span>
1076
+ </button>
1077
+ <ul class="dropdown-menu" role="menu">
1078
+ <li class="" role="listitem">
1079
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1080
+ <span class="selected-option-dropdown-item">Option 1</span>
1081
+ <input type="hidden" value="1">
1082
+ </a>
1083
+ </li>
1084
+ <li class="" role="listitem">
1085
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1086
+ <span class="selected-option-dropdown-item">Option 2</span>
1087
+ <input type="hidden" value="2">
1088
+ </a>
1089
+ </li>
1090
+ <li class="" role="listitem">
1091
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1092
+ <span class="selected-option-dropdown-item">Option 3</span>
1093
+ <input type="hidden" value="3">
1094
+ </a>
1095
+ </li>
1096
+ </ul>
1097
+ </div>
1098
+ </div>
1099
+ ```
1100
+
1101
+ #### Props
1102
+
1103
+ | Name | Type | Default | Description |
1104
+ | --- | --- | --- | --- |
1105
+ | name | String | — | Passed through as HTML attribute to the toggle button. |
1106
+ | id | String | — | Passed through as HTML attribute to the toggle button. Uses the value given to name if not provided explicitly. |
1107
+ | options | Array of Objects | [] | Items to display in the dropdown menu. |
1108
+ | └id | String | — | Used to identify an option |
1109
+ | └label | String / Node | — | The option item text |
1110
+ | └icon | Node | — | Icon to be displayed in front of the label |
1111
+ | └selected | Boolean | false | Defines whether the menu item is selected. |
1112
+ | └disabled | Boolean | false | Setting "disabled" to true will disable the respective item. |
1113
+ | └header | Boolean | false | Will treat the given value as a menu header. |
1114
+ | value | Array | — | Sets the ids of the selected options when the component is already mounted. |
1115
+ | onChange | Function | () => {} | Callback function triggered when an item is selected. |
1116
+ | placeholder | String / Node | — | Text to display when nothing is selected. |
1117
+ | dropup | Boolean | false | Defines whether the dropdown opens upwards. Set to "true" additionally disables autoDrop feature. |
1118
+ | pullRight | Boolean | false | Defines whether the dropdown opens right aligned to the dropdown toggle. Set to "true" additionally disables autoDrop feature. |
1119
+ | autoDropDirection | Boolean | true | Enables or disables the autoDrop positioning feature. When enabled, the option list opens below or above the input depending on the surrounding space. |
1120
+ | bsSize | String | md | Defines the size of the select to be rendered. Possible values are: 'sm', 'md' and 'lg' |
1121
+ | disabled | Boolean | false | Option to disable the opening of the option list. |
1122
+ | tabIndex | Number | 0 | The tabindex attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation. See tabIndex |
1123
+ | hasError | Boolean | false | Defines whether the Bootstrap error classes shall be added to the toggle element. |
1124
+ | useFilter | Boolean | false | Defines whether the component should be filterable. |
1125
+ | noItemMessage | String / Node | — | Text that shall be shown when not match was found when filtering. |
1126
+ | counterMessage | Object | — | Object that will render the number of selected items instead of individual items. Using this prop will disable the filter functionality. { one: 'item selected', many: 'items selected' } |
1127
+ | └one | String / Node | — | Text that will be used when a single item is selected. |
1128
+ | └many | String / Node | — | Text that will be used when multiple item are selected. |
1129
+ | renderCounterMessage | Function | — | Optional render function that is used to render the message how many items have been selected. The total amount of selected items will be passed into that function. Using this prop will disable the filter functionality. |
1130
+ | multiline | boolean | false | Defines whether the selected items wrap around within the dropdown toggle. |
1131
+ | showSelectedItemIcon | Boolean | false | Set to show only the icon and not the label of selected item. |
1132
+ | showUnselectedItemIcons | Boolean | false | Set to show all item icons within the toggle element. Selected items are highlighted and unselected items are shown as inactive. |
1133
+ | inputAddon | String \| ReactNode | — | Option to add an icon as a leading input addon to the select component. |
1134
+ | errorMessage | String | — | Input error message. |
1135
+ | warningMessage | String | — | Input warning message. |
1136
+ | messageWhiteSpace | 'normal' \| 'prewrap' \| 'nowrap' | 'normal' | Optional warning message white-space setting. |
1137
+ | dropdownClassName | String | — | Additional classes to be set to the dropdown. |
1138
+ | btnClassName | String | — | Additional classes to be set to the select/input. |
1139
+ | className | String | — | Additional classes to be set to the select wrapper. |
1140
+
1141
+ ### Example: Example 5
1142
+
1143
+ Inline:Please select vehiclesOption 1
1144
+ Option 2
1145
+ Option 3
1146
+ Option 4
1147
+ Option 5
1148
+ Option 6
1149
+ Option 7
1150
+ Option 8
1151
+ Option 9
1152
+ Option 10
1153
+
1154
+ Please select vehiclesOption 1
1155
+ Option 2
1156
+ Option 3
1157
+ Option 4
1158
+ Option 5
1159
+ Option 6
1160
+ Option 7
1161
+ Option 8
1162
+ Option 9
1163
+ Option 10
1164
+
1165
+ Option 1
1166
+ Option 2
1167
+ Option 3
1168
+ Option 4
1169
+ Option 5
1170
+ Option 6
1171
+ Option 7
1172
+ Option 8
1173
+ Option 9
1174
+ Option 10
1175
+
1176
+ Full width:Option 1
1177
+ Option 2
1178
+ Option 3
1179
+ Option 4
1180
+ Option 5
1181
+ Option 6
1182
+ Option 7
1183
+ Option 8
1184
+ Option 9
1185
+ Option 10
1186
+
1187
+ #### Summary
1188
+
1189
+ Inline:Please select vehiclesOption 1
1190
+ Option 2
1191
+ Option 3
1192
+ Option 4
1193
+ Option 5
1194
+ Option 6
1195
+ Option 7
1196
+ Option 8
1197
+ Option 9
1198
+ Option 10
1199
+
1200
+ Please select vehiclesOption 1
1201
+ Option 2
1202
+ Option 3
1203
+ Option 4
1204
+ Option 5
1205
+ Option 6
1206
+ Option 7
1207
+ Option 8
1208
+ Option 9
1209
+ Option 10
1210
+
1211
+ Option 1
1212
+ Option 2
1213
+ Option 3
1214
+ Option 4
1215
+ Option 5
1216
+ Option 6
1217
+ Option 7
1218
+ Option 8
1219
+ Option 9
1220
+ Option 10
1221
+
1222
+ Full width:Option 1
1223
+ Option 2
1224
+ Option 3
1225
+ Option 4
1226
+ Option 5
1227
+ Option 6
1228
+ Option 7
1229
+ Option 8
1230
+ Option 9
1231
+ Option 10
1232
+
1233
+ #### React (tsx)
1234
+
1235
+ ```tsx
1236
+ import Multiselect from '@rio-cloud/rio-uikit/Multiselect';
1237
+ import Notification from '@rio-cloud/rio-uikit/Notification';
1238
+
1239
+ const options = [
1240
+ { id: '1', label: 'Option 1' },
1241
+ { id: '2', label: 'Option 2' },
1242
+ { id: '3', label: 'Option 3' },
1243
+ { id: '4', label: 'Option 4' },
1244
+ { id: '5', label: 'Option 5' },
1245
+ { id: '6', label: 'Option 6' },
1246
+ { id: '7', label: 'Option 7' },
1247
+ { id: '8', label: 'Option 8' },
1248
+ { id: '9', label: 'Option 9' },
1249
+ { id: '10', label: 'Option 10' },
1250
+ ];
1251
+
1252
+ export default () => (
1253
+ <div className='form-group'>
1254
+ <label>Inline:</label>
1255
+ <div className='form-inline'>
1256
+ <div className='form-group'>
1257
+ <Multiselect
1258
+ placeholder='Please select vehicles'
1259
+ options={options}
1260
+ bsSize='lg'
1261
+ onChange={response => Notification.info(JSON.stringify(response))}
1262
+ useFilter
1263
+ />
1264
+ </div>
1265
+ <div className='form-group'>
1266
+ <Multiselect
1267
+ placeholder='Please select vehicles'
1268
+ options={options}
1269
+ onChange={response => Notification.info(JSON.stringify(response))}
1270
+ useFilter
1271
+ />
1272
+ </div>
1273
+ <div className='form-group'>
1274
+ <Multiselect
1275
+ options={options}
1276
+ bsSize='sm'
1277
+ onChange={response => Notification.info(JSON.stringify(response))}
1278
+ className='min-width-100'
1279
+ useFilter
1280
+ />
1281
+ </div>
1282
+ </div>
1283
+ <div className='form-group margin-top-20 max-width-500'>
1284
+ <label htmlFor='fullWidth'>Full width:</label>
1285
+ <Multiselect
1286
+ id='fullWidth'
1287
+ options={options}
1288
+ bsSize='sm'
1289
+ onChange={response => Notification.info(JSON.stringify(response))}
1290
+ />
1291
+ </div>
1292
+ </div>
1293
+ );
1294
+ ```
1295
+
1296
+ #### HTML (html)
1297
+
1298
+ ```html
1299
+ <div class="form-group">
1300
+ <label>Inline:</label>
1301
+ <div class="form-inline">
1302
+ <div class="form-group">
1303
+ <div class="select multiselect dropdown dropup">
1304
+ <button type="button" class="dropdown-toggle form-control text-left input-lg" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1305
+ <span class="placeholder">Please select vehicles</span>
1306
+ <span class="caret">
1307
+ </span>
1308
+ </button>
1309
+ <ul class="dropdown-menu" role="menu">
1310
+ <li class="" role="listitem">
1311
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1312
+ <span class="selected-option-dropdown-item">Option 1</span>
1313
+ <input type="hidden" value="1">
1314
+ </a>
1315
+ </li>
1316
+ <li class="" role="listitem">
1317
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1318
+ <span class="selected-option-dropdown-item">Option 2</span>
1319
+ <input type="hidden" value="2">
1320
+ </a>
1321
+ </li>
1322
+ <li class="" role="listitem">
1323
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1324
+ <span class="selected-option-dropdown-item">Option 3</span>
1325
+ <input type="hidden" value="3">
1326
+ </a>
1327
+ </li>
1328
+ <li class="" role="listitem">
1329
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1330
+ <span class="selected-option-dropdown-item">Option 4</span>
1331
+ <input type="hidden" value="4">
1332
+ </a>
1333
+ </li>
1334
+ <li class="" role="listitem">
1335
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
1336
+ <span class="selected-option-dropdown-item">Option 5</span>
1337
+ <input type="hidden" value="5">
1338
+ </a>
1339
+ </li>
1340
+ <li class="" role="listitem">
1341
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
1342
+ <span class="selected-option-dropdown-item">Option 6</span>
1343
+ <input type="hidden" value="6">
1344
+ </a>
1345
+ </li>
1346
+ <li class="" role="listitem">
1347
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="7" data-item-index="6">
1348
+ <span class="selected-option-dropdown-item">Option 7</span>
1349
+ <input type="hidden" value="7">
1350
+ </a>
1351
+ </li>
1352
+ <li class="" role="listitem">
1353
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
1354
+ <span class="selected-option-dropdown-item">Option 8</span>
1355
+ <input type="hidden" value="8">
1356
+ </a>
1357
+ </li>
1358
+ <li class="" role="listitem">
1359
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
1360
+ <span class="selected-option-dropdown-item">Option 9</span>
1361
+ <input type="hidden" value="9">
1362
+ </a>
1363
+ </li>
1364
+ <li class="" role="listitem">
1365
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="10" data-item-index="9">
1366
+ <span class="selected-option-dropdown-item">Option 10</span>
1367
+ <input type="hidden" value="10">
1368
+ </a>
1369
+ </li>
1370
+ </ul>
1371
+ </div>
1372
+ </div>
1373
+ <div class="form-group">
1374
+ <div class="select multiselect dropdown dropup">
1375
+ <button type="button" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1376
+ <span class="placeholder">Please select vehicles</span>
1377
+ <span class="caret">
1378
+ </span>
1379
+ </button>
1380
+ <ul class="dropdown-menu" role="menu">
1381
+ <li class="" role="listitem">
1382
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1383
+ <span class="selected-option-dropdown-item">Option 1</span>
1384
+ <input type="hidden" value="1">
1385
+ </a>
1386
+ </li>
1387
+ <li class="" role="listitem">
1388
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1389
+ <span class="selected-option-dropdown-item">Option 2</span>
1390
+ <input type="hidden" value="2">
1391
+ </a>
1392
+ </li>
1393
+ <li class="" role="listitem">
1394
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1395
+ <span class="selected-option-dropdown-item">Option 3</span>
1396
+ <input type="hidden" value="3">
1397
+ </a>
1398
+ </li>
1399
+ <li class="" role="listitem">
1400
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1401
+ <span class="selected-option-dropdown-item">Option 4</span>
1402
+ <input type="hidden" value="4">
1403
+ </a>
1404
+ </li>
1405
+ <li class="" role="listitem">
1406
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
1407
+ <span class="selected-option-dropdown-item">Option 5</span>
1408
+ <input type="hidden" value="5">
1409
+ </a>
1410
+ </li>
1411
+ <li class="" role="listitem">
1412
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
1413
+ <span class="selected-option-dropdown-item">Option 6</span>
1414
+ <input type="hidden" value="6">
1415
+ </a>
1416
+ </li>
1417
+ <li class="" role="listitem">
1418
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="7" data-item-index="6">
1419
+ <span class="selected-option-dropdown-item">Option 7</span>
1420
+ <input type="hidden" value="7">
1421
+ </a>
1422
+ </li>
1423
+ <li class="" role="listitem">
1424
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
1425
+ <span class="selected-option-dropdown-item">Option 8</span>
1426
+ <input type="hidden" value="8">
1427
+ </a>
1428
+ </li>
1429
+ <li class="" role="listitem">
1430
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
1431
+ <span class="selected-option-dropdown-item">Option 9</span>
1432
+ <input type="hidden" value="9">
1433
+ </a>
1434
+ </li>
1435
+ <li class="" role="listitem">
1436
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="10" data-item-index="9">
1437
+ <span class="selected-option-dropdown-item">Option 10</span>
1438
+ <input type="hidden" value="10">
1439
+ </a>
1440
+ </li>
1441
+ </ul>
1442
+ </div>
1443
+ </div>
1444
+ <div class="form-group">
1445
+ <div class="select multiselect dropdown min-width-100 dropup">
1446
+ <button type="button" class="dropdown-toggle form-control text-left input-sm" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1447
+ <span>
1448
+ </span>
1449
+ <span class="caret">
1450
+ </span>
1451
+ </button>
1452
+ <ul class="dropdown-menu" role="menu">
1453
+ <li class="" role="listitem">
1454
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1455
+ <span class="selected-option-dropdown-item">Option 1</span>
1456
+ <input type="hidden" value="1">
1457
+ </a>
1458
+ </li>
1459
+ <li class="" role="listitem">
1460
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1461
+ <span class="selected-option-dropdown-item">Option 2</span>
1462
+ <input type="hidden" value="2">
1463
+ </a>
1464
+ </li>
1465
+ <li class="" role="listitem">
1466
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1467
+ <span class="selected-option-dropdown-item">Option 3</span>
1468
+ <input type="hidden" value="3">
1469
+ </a>
1470
+ </li>
1471
+ <li class="" role="listitem">
1472
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1473
+ <span class="selected-option-dropdown-item">Option 4</span>
1474
+ <input type="hidden" value="4">
1475
+ </a>
1476
+ </li>
1477
+ <li class="" role="listitem">
1478
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
1479
+ <span class="selected-option-dropdown-item">Option 5</span>
1480
+ <input type="hidden" value="5">
1481
+ </a>
1482
+ </li>
1483
+ <li class="" role="listitem">
1484
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
1485
+ <span class="selected-option-dropdown-item">Option 6</span>
1486
+ <input type="hidden" value="6">
1487
+ </a>
1488
+ </li>
1489
+ <li class="" role="listitem">
1490
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="7" data-item-index="6">
1491
+ <span class="selected-option-dropdown-item">Option 7</span>
1492
+ <input type="hidden" value="7">
1493
+ </a>
1494
+ </li>
1495
+ <li class="" role="listitem">
1496
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
1497
+ <span class="selected-option-dropdown-item">Option 8</span>
1498
+ <input type="hidden" value="8">
1499
+ </a>
1500
+ </li>
1501
+ <li class="" role="listitem">
1502
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
1503
+ <span class="selected-option-dropdown-item">Option 9</span>
1504
+ <input type="hidden" value="9">
1505
+ </a>
1506
+ </li>
1507
+ <li class="" role="listitem">
1508
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="10" data-item-index="9">
1509
+ <span class="selected-option-dropdown-item">Option 10</span>
1510
+ <input type="hidden" value="10">
1511
+ </a>
1512
+ </li>
1513
+ </ul>
1514
+ </div>
1515
+ </div>
1516
+ </div>
1517
+ <div class="form-group margin-top-20 max-width-500">
1518
+ <label for="fullWidth">Full width:</label>
1519
+ <div class="select multiselect dropdown dropup">
1520
+ <button type="button" id="fullWidth" class="dropdown-toggle form-control text-left input-sm" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1521
+ <span>
1522
+ </span>
1523
+ <span class="caret">
1524
+ </span>
1525
+ </button>
1526
+ <ul class="dropdown-menu" role="menu">
1527
+ <li class="" role="listitem">
1528
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1529
+ <span class="selected-option-dropdown-item">Option 1</span>
1530
+ <input type="hidden" value="1">
1531
+ </a>
1532
+ </li>
1533
+ <li class="" role="listitem">
1534
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1535
+ <span class="selected-option-dropdown-item">Option 2</span>
1536
+ <input type="hidden" value="2">
1537
+ </a>
1538
+ </li>
1539
+ <li class="" role="listitem">
1540
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1541
+ <span class="selected-option-dropdown-item">Option 3</span>
1542
+ <input type="hidden" value="3">
1543
+ </a>
1544
+ </li>
1545
+ <li class="" role="listitem">
1546
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1547
+ <span class="selected-option-dropdown-item">Option 4</span>
1548
+ <input type="hidden" value="4">
1549
+ </a>
1550
+ </li>
1551
+ <li class="" role="listitem">
1552
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="5" data-item-index="4">
1553
+ <span class="selected-option-dropdown-item">Option 5</span>
1554
+ <input type="hidden" value="5">
1555
+ </a>
1556
+ </li>
1557
+ <li class="" role="listitem">
1558
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="6" data-item-index="5">
1559
+ <span class="selected-option-dropdown-item">Option 6</span>
1560
+ <input type="hidden" value="6">
1561
+ </a>
1562
+ </li>
1563
+ <li class="" role="listitem">
1564
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="7" data-item-index="6">
1565
+ <span class="selected-option-dropdown-item">Option 7</span>
1566
+ <input type="hidden" value="7">
1567
+ </a>
1568
+ </li>
1569
+ <li class="" role="listitem">
1570
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="8" data-item-index="7">
1571
+ <span class="selected-option-dropdown-item">Option 8</span>
1572
+ <input type="hidden" value="8">
1573
+ </a>
1574
+ </li>
1575
+ <li class="" role="listitem">
1576
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="9" data-item-index="8">
1577
+ <span class="selected-option-dropdown-item">Option 9</span>
1578
+ <input type="hidden" value="9">
1579
+ </a>
1580
+ </li>
1581
+ <li class="" role="listitem">
1582
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="10" data-item-index="9">
1583
+ <span class="selected-option-dropdown-item">Option 10</span>
1584
+ <input type="hidden" value="10">
1585
+ </a>
1586
+ </li>
1587
+ </ul>
1588
+ </div>
1589
+ </div>
1590
+ </div>
1591
+ ```
1592
+
1593
+ #### Props
1594
+
1595
+ | Name | Type | Default | Description |
1596
+ | --- | --- | --- | --- |
1597
+ | name | String | — | Passed through as HTML attribute to the toggle button. |
1598
+ | id | String | — | Passed through as HTML attribute to the toggle button. Uses the value given to name if not provided explicitly. |
1599
+ | options | Array of Objects | [] | Items to display in the dropdown menu. |
1600
+ | └id | String | — | Used to identify an option |
1601
+ | └label | String / Node | — | The option item text |
1602
+ | └icon | Node | — | Icon to be displayed in front of the label |
1603
+ | └selected | Boolean | false | Defines whether the menu item is selected. |
1604
+ | └disabled | Boolean | false | Setting "disabled" to true will disable the respective item. |
1605
+ | └header | Boolean | false | Will treat the given value as a menu header. |
1606
+ | value | Array | — | Sets the ids of the selected options when the component is already mounted. |
1607
+ | onChange | Function | () => {} | Callback function triggered when an item is selected. |
1608
+ | placeholder | String / Node | — | Text to display when nothing is selected. |
1609
+ | dropup | Boolean | false | Defines whether the dropdown opens upwards. Set to "true" additionally disables autoDrop feature. |
1610
+ | pullRight | Boolean | false | Defines whether the dropdown opens right aligned to the dropdown toggle. Set to "true" additionally disables autoDrop feature. |
1611
+ | autoDropDirection | Boolean | true | Enables or disables the autoDrop positioning feature. When enabled, the option list opens below or above the input depending on the surrounding space. |
1612
+ | bsSize | String | md | Defines the size of the select to be rendered. Possible values are: 'sm', 'md' and 'lg' |
1613
+ | disabled | Boolean | false | Option to disable the opening of the option list. |
1614
+ | tabIndex | Number | 0 | The tabindex attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation. See tabIndex |
1615
+ | hasError | Boolean | false | Defines whether the Bootstrap error classes shall be added to the toggle element. |
1616
+ | useFilter | Boolean | false | Defines whether the component should be filterable. |
1617
+ | noItemMessage | String / Node | — | Text that shall be shown when not match was found when filtering. |
1618
+ | counterMessage | Object | — | Object that will render the number of selected items instead of individual items. Using this prop will disable the filter functionality. { one: 'item selected', many: 'items selected' } |
1619
+ | └one | String / Node | — | Text that will be used when a single item is selected. |
1620
+ | └many | String / Node | — | Text that will be used when multiple item are selected. |
1621
+ | renderCounterMessage | Function | — | Optional render function that is used to render the message how many items have been selected. The total amount of selected items will be passed into that function. Using this prop will disable the filter functionality. |
1622
+ | multiline | boolean | false | Defines whether the selected items wrap around within the dropdown toggle. |
1623
+ | showSelectedItemIcon | Boolean | false | Set to show only the icon and not the label of selected item. |
1624
+ | showUnselectedItemIcons | Boolean | false | Set to show all item icons within the toggle element. Selected items are highlighted and unselected items are shown as inactive. |
1625
+ | inputAddon | String \| ReactNode | — | Option to add an icon as a leading input addon to the select component. |
1626
+ | errorMessage | String | — | Input error message. |
1627
+ | warningMessage | String | — | Input warning message. |
1628
+ | messageWhiteSpace | 'normal' \| 'prewrap' \| 'nowrap' | 'normal' | Optional warning message white-space setting. |
1629
+ | dropdownClassName | String | — | Additional classes to be set to the dropdown. |
1630
+ | btnClassName | String | — | Additional classes to be set to the select/input. |
1631
+ | className | String | — | Additional classes to be set to the select wrapper. |
1632
+
1633
+ ### Example: Example 6
1634
+
1635
+ Please selectOption 1
1636
+ Option 2
1637
+ Option 3
1638
+ Option 4
1639
+
1640
+ Please selectOption 1
1641
+ Option 2
1642
+ Option 3
1643
+ Option 4
1644
+
1645
+ Option 1
1646
+ Option 2
1647
+ Option 3
1648
+ Option 4
1649
+
1650
+ #### Summary
1651
+
1652
+ Please selectOption 1
1653
+ Option 2
1654
+ Option 3
1655
+ Option 4
1656
+
1657
+ Please selectOption 1
1658
+ Option 2
1659
+ Option 3
1660
+ Option 4
1661
+
1662
+ Option 1
1663
+ Option 2
1664
+ Option 3
1665
+ Option 4
1666
+
1667
+ #### React (tsx)
1668
+
1669
+ ```tsx
1670
+ import Multiselect from '@rio-cloud/rio-uikit/Multiselect';
1671
+ import Notification from '@rio-cloud/rio-uikit/Notification';
1672
+
1673
+ const options = [
1674
+ {
1675
+ id: '1',
1676
+ label: 'Option 1',
1677
+ icon: <span className='rioglyph rioglyph-status-available text-color-status-available' />,
1678
+ },
1679
+ {
1680
+ id: '2',
1681
+ label: 'Option 2',
1682
+ icon: <span className='rioglyph rioglyph-status-driving text-color-status-driving' />,
1683
+ },
1684
+ {
1685
+ id: '3',
1686
+ label: 'Option 3',
1687
+ icon: <span className='rioglyph rioglyph-status-resting text-color-status-resting' />,
1688
+ },
1689
+ {
1690
+ id: '4',
1691
+ label: 'Option 4',
1692
+ icon: <span className='rioglyph rioglyph-status-working text-color-status-working' />,
1693
+ },
1694
+ ];
1695
+
1696
+ export default () => (
1697
+ <div className='form-group'>
1698
+ <div className='form-inline'>
1699
+ <div className='form-group margin-bottom-5'>
1700
+ <Multiselect
1701
+ placeholder='Please select'
1702
+ options={options}
1703
+ onChange={response => Notification.info(JSON.stringify(response))}
1704
+ />
1705
+ </div>
1706
+ <div className='form-group margin-bottom-5'>
1707
+ <Multiselect
1708
+ placeholder='Please select'
1709
+ options={options}
1710
+ showSelectedItemIcon
1711
+ onChange={response => Notification.info(JSON.stringify(response))}
1712
+ />
1713
+ </div>
1714
+ <div className='form-group margin-bottom-5'>
1715
+ <Multiselect
1716
+ placeholder='Please select'
1717
+ options={options}
1718
+ showSelectedItemIcon
1719
+ showUnselectedItemIcons
1720
+ onChange={response => Notification.info(JSON.stringify(response))}
1721
+ />
1722
+ </div>
1723
+ </div>
1724
+ </div>
1725
+ );
1726
+ ```
1727
+
1728
+ #### HTML (html)
1729
+
1730
+ ```html
1731
+ <div class="form-group">
1732
+ <div class="form-inline">
1733
+ <div class="form-group margin-bottom-5">
1734
+ <div class="select multiselect dropdown dropup">
1735
+ <button type="button" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1736
+ <span class="placeholder">Please select</span>
1737
+ <span class="caret">
1738
+ </span>
1739
+ </button>
1740
+ <ul class="dropdown-menu" role="menu">
1741
+ <li class="" role="listitem">
1742
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1743
+ <span class="selected-option-dropdown-item">
1744
+ <span class="rioglyph rioglyph-status-available text-color-status-available">
1745
+ </span>Option 1</span>
1746
+ <input type="hidden" value="1">
1747
+ </a>
1748
+ </li>
1749
+ <li class="" role="listitem">
1750
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1751
+ <span class="selected-option-dropdown-item">
1752
+ <span class="rioglyph rioglyph-status-driving text-color-status-driving">
1753
+ </span>Option 2</span>
1754
+ <input type="hidden" value="2">
1755
+ </a>
1756
+ </li>
1757
+ <li class="" role="listitem">
1758
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1759
+ <span class="selected-option-dropdown-item">
1760
+ <span class="rioglyph rioglyph-status-resting text-color-status-resting">
1761
+ </span>Option 3</span>
1762
+ <input type="hidden" value="3">
1763
+ </a>
1764
+ </li>
1765
+ <li class="" role="listitem">
1766
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1767
+ <span class="selected-option-dropdown-item">
1768
+ <span class="rioglyph rioglyph-status-working text-color-status-working">
1769
+ </span>Option 4</span>
1770
+ <input type="hidden" value="4">
1771
+ </a>
1772
+ </li>
1773
+ </ul>
1774
+ </div>
1775
+ </div>
1776
+ <div class="form-group margin-bottom-5">
1777
+ <div class="select multiselect dropdown dropup">
1778
+ <button type="button" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1779
+ <span class="placeholder">Please select</span>
1780
+ <span class="caret">
1781
+ </span>
1782
+ </button>
1783
+ <ul class="dropdown-menu" role="menu">
1784
+ <li class="" role="listitem">
1785
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1786
+ <span class="selected-option-dropdown-item">
1787
+ <span class="rioglyph rioglyph-status-available text-color-status-available">
1788
+ </span>Option 1</span>
1789
+ <input type="hidden" value="1">
1790
+ </a>
1791
+ </li>
1792
+ <li class="" role="listitem">
1793
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1794
+ <span class="selected-option-dropdown-item">
1795
+ <span class="rioglyph rioglyph-status-driving text-color-status-driving">
1796
+ </span>Option 2</span>
1797
+ <input type="hidden" value="2">
1798
+ </a>
1799
+ </li>
1800
+ <li class="" role="listitem">
1801
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1802
+ <span class="selected-option-dropdown-item">
1803
+ <span class="rioglyph rioglyph-status-resting text-color-status-resting">
1804
+ </span>Option 3</span>
1805
+ <input type="hidden" value="3">
1806
+ </a>
1807
+ </li>
1808
+ <li class="" role="listitem">
1809
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1810
+ <span class="selected-option-dropdown-item">
1811
+ <span class="rioglyph rioglyph-status-working text-color-status-working">
1812
+ </span>Option 4</span>
1813
+ <input type="hidden" value="4">
1814
+ </a>
1815
+ </li>
1816
+ </ul>
1817
+ </div>
1818
+ </div>
1819
+ <div class="form-group margin-bottom-5">
1820
+ <div class="select multiselect dropdown dropup">
1821
+ <button type="button" class="dropdown-toggle form-control text-left" data-toggle="dropdown" tabindex="0" aria-haspopup="true" aria-expanded="false">
1822
+ <span class="">
1823
+ <span class="margin-right-5 inactiveIcon">
1824
+ <span class="rioglyph rioglyph-status-available text-color-status-available">
1825
+ </span>
1826
+ </span>
1827
+ <span class="margin-right-5 inactiveIcon">
1828
+ <span class="rioglyph rioglyph-status-driving text-color-status-driving">
1829
+ </span>
1830
+ </span>
1831
+ <span class="margin-right-5 inactiveIcon">
1832
+ <span class="rioglyph rioglyph-status-resting text-color-status-resting">
1833
+ </span>
1834
+ </span>
1835
+ <span class="margin-right-5 inactiveIcon">
1836
+ <span class="rioglyph rioglyph-status-working text-color-status-working">
1837
+ </span>
1838
+ </span>
1839
+ </span>
1840
+ <span class="caret">
1841
+ </span>
1842
+ </button>
1843
+ <ul class="dropdown-menu" role="menu">
1844
+ <li class="" role="listitem">
1845
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="1" data-item-index="0">
1846
+ <span class="selected-option-dropdown-item">
1847
+ <span class="rioglyph rioglyph-status-available text-color-status-available">
1848
+ </span>Option 1</span>
1849
+ <input type="hidden" value="1">
1850
+ </a>
1851
+ </li>
1852
+ <li class="" role="listitem">
1853
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="2" data-item-index="1">
1854
+ <span class="selected-option-dropdown-item">
1855
+ <span class="rioglyph rioglyph-status-driving text-color-status-driving">
1856
+ </span>Option 2</span>
1857
+ <input type="hidden" value="2">
1858
+ </a>
1859
+ </li>
1860
+ <li class="" role="listitem">
1861
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="3" data-item-index="2">
1862
+ <span class="selected-option-dropdown-item">
1863
+ <span class="rioglyph rioglyph-status-resting text-color-status-resting">
1864
+ </span>Option 3</span>
1865
+ <input type="hidden" value="3">
1866
+ </a>
1867
+ </li>
1868
+ <li class="" role="listitem">
1869
+ <a role="menuitem" class="display-flex align-items-center gap-3" data-item-id="4" data-item-index="3">
1870
+ <span class="selected-option-dropdown-item">
1871
+ <span class="rioglyph rioglyph-status-working text-color-status-working">
1872
+ </span>Option 4</span>
1873
+ <input type="hidden" value="4">
1874
+ </a>
1875
+ </li>
1876
+ </ul>
1877
+ </div>
1878
+ </div>
1879
+ </div>
1880
+ </div>
1881
+ ```
1882
+
1883
+ #### Props
1884
+
1885
+ | Name | Type | Default | Description |
1886
+ | --- | --- | --- | --- |
1887
+ | name | String | — | Passed through as HTML attribute to the toggle button. |
1888
+ | id | String | — | Passed through as HTML attribute to the toggle button. Uses the value given to name if not provided explicitly. |
1889
+ | options | Array of Objects | [] | Items to display in the dropdown menu. |
1890
+ | └id | String | — | Used to identify an option |
1891
+ | └label | String / Node | — | The option item text |
1892
+ | └icon | Node | — | Icon to be displayed in front of the label |
1893
+ | └selected | Boolean | false | Defines whether the menu item is selected. |
1894
+ | └disabled | Boolean | false | Setting "disabled" to true will disable the respective item. |
1895
+ | └header | Boolean | false | Will treat the given value as a menu header. |
1896
+ | value | Array | — | Sets the ids of the selected options when the component is already mounted. |
1897
+ | onChange | Function | () => {} | Callback function triggered when an item is selected. |
1898
+ | placeholder | String / Node | — | Text to display when nothing is selected. |
1899
+ | dropup | Boolean | false | Defines whether the dropdown opens upwards. Set to "true" additionally disables autoDrop feature. |
1900
+ | pullRight | Boolean | false | Defines whether the dropdown opens right aligned to the dropdown toggle. Set to "true" additionally disables autoDrop feature. |
1901
+ | autoDropDirection | Boolean | true | Enables or disables the autoDrop positioning feature. When enabled, the option list opens below or above the input depending on the surrounding space. |
1902
+ | bsSize | String | md | Defines the size of the select to be rendered. Possible values are: 'sm', 'md' and 'lg' |
1903
+ | disabled | Boolean | false | Option to disable the opening of the option list. |
1904
+ | tabIndex | Number | 0 | The tabindex attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation. See tabIndex |
1905
+ | hasError | Boolean | false | Defines whether the Bootstrap error classes shall be added to the toggle element. |
1906
+ | useFilter | Boolean | false | Defines whether the component should be filterable. |
1907
+ | noItemMessage | String / Node | — | Text that shall be shown when not match was found when filtering. |
1908
+ | counterMessage | Object | — | Object that will render the number of selected items instead of individual items. Using this prop will disable the filter functionality. { one: 'item selected', many: 'items selected' } |
1909
+ | └one | String / Node | — | Text that will be used when a single item is selected. |
1910
+ | └many | String / Node | — | Text that will be used when multiple item are selected. |
1911
+ | renderCounterMessage | Function | — | Optional render function that is used to render the message how many items have been selected. The total amount of selected items will be passed into that function. Using this prop will disable the filter functionality. |
1912
+ | multiline | boolean | false | Defines whether the selected items wrap around within the dropdown toggle. |
1913
+ | showSelectedItemIcon | Boolean | false | Set to show only the icon and not the label of selected item. |
1914
+ | showUnselectedItemIcons | Boolean | false | Set to show all item icons within the toggle element. Selected items are highlighted and unselected items are shown as inactive. |
1915
+ | inputAddon | String \| ReactNode | — | Option to add an icon as a leading input addon to the select component. |
1916
+ | errorMessage | String | — | Input error message. |
1917
+ | warningMessage | String | — | Input warning message. |
1918
+ | messageWhiteSpace | 'normal' \| 'prewrap' \| 'nowrap' | 'normal' | Optional warning message white-space setting. |
1919
+ | dropdownClassName | String | — | Additional classes to be set to the dropdown. |
1920
+ | btnClassName | String | — | Additional classes to be set to the select/input. |
1921
+ | className | String | — | Additional classes to be set to the select wrapper. |