@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,932 @@
1
+ # Chat
2
+
3
+ *Category:* Components
4
+ *Section:* CSS Only
5
+ *Source:* https://uikit.developers.rio.cloud/#components/chat
6
+ *Captured:* 2025-12-12T12:39:02.905Z
7
+
8
+ The chat component is a pure CSS component.
9
+
10
+ ## Chat
11
+
12
+ ### Example: 10:01
13
+
14
+ Hi! I'd like to get an ice cream, but I don't really like many flavors.
15
+ 10:01
16
+
17
+ Ice cream vendor
18
+
19
+ No worries! We have some simple flavors. What do you usually enjoy?
20
+ 10:02
21
+ Translate
22
+
23
+ I’m not a fan of chocolate, strawberry, or anything with nuts.
24
+ 10:03
25
+
26
+ Ice cream vendor
27
+
28
+ Got it. How about vanilla? It’s classic and not too overwhelming.
29
+ 10:04
30
+ Translate
31
+
32
+ Yeah, vanilla works for me. Do you have anything else that’s mild?
33
+ 10:05
34
+
35
+ Ice cream vendor
36
+
37
+ We have a nice plain mango sorbet and a simple caramel ice cream as well.
38
+ 10:06
39
+ Translate
40
+
41
+ The mango is refreshing, while caramel is a bit richer but still simple.
42
+ 10:07
43
+ Translate
44
+
45
+ I’ll take a scoop of vanilla and mango sorbet, please.
46
+ 10:08
47
+
48
+ Ice cream vendor
49
+
50
+ Great choice! That’ll be ready in a moment.
51
+ 10:09
52
+ Translate
53
+
54
+ Today
55
+
56
+ Hey, yesterday's vanilla was great! I'd love to try something different today.
57
+ 10:01
58
+
59
+ Ice cream vendor
60
+
61
+ Glad to hear it! We’ve got some new flavors in. What are you in the mood for?
62
+ 10:02
63
+ Translate
64
+
65
+ Maybe something fruity. What do you recommend?
66
+ 10:03
67
+
68
+ Ice cream vendor
69
+
70
+ Our mango sorbet is a solid choice. Or if you want something lighter, we have a lemon sorbet.
71
+ 10:04
72
+ Translate
73
+
74
+ 😍
75
+
76
+ The lemon’s tangy and refreshing, perfect for a warm day.
77
+ 10:05
78
+ Translate
79
+
80
+ I’ll go with the lemon sorbet today. Thanks!
81
+ 10:06
82
+
83
+ ❤️
84
+
85
+ Ice cream vendor
86
+
87
+ Coming right up!
88
+ 10:07
89
+ Translate
90
+
91
+ #### Summary
92
+
93
+ Hi! I'd like to get an ice cream, but I don't really like many flavors.
94
+ 10:01
95
+
96
+ Ice cream vendor
97
+
98
+ No worries! We have some simple flavors. What do you usually enjoy?
99
+ 10:02
100
+ Translate
101
+
102
+ I’m not a fan of chocolate, strawberry, or anything with nuts.
103
+ 10:03
104
+
105
+ Ice cream vendor
106
+
107
+ Got it. How about vanilla? It’s classic and not too overwhelming.
108
+ 10:04
109
+ Translate
110
+
111
+ Yeah, vanilla works for me. Do you have anything else that’s mild?
112
+ 10:05
113
+
114
+ Ice cream vendor
115
+
116
+ We have a nice plain mango sorbet and a simple caramel ice cream as well.
117
+ 10:06
118
+ Translate
119
+
120
+ The mango is refreshing, while caramel is a bit richer but still simple.
121
+ 10:07
122
+ Translate
123
+
124
+ I’ll take a scoop of vanilla and mango sorbet, please.
125
+ 10:08
126
+
127
+ Ice cream vendor
128
+
129
+ Great choice! That’ll be ready in a moment.
130
+ 10:09
131
+ Translate
132
+
133
+ Today
134
+
135
+ Hey, yesterday's vanilla was great! I'd love to try something different today.
136
+ 10:01
137
+
138
+ Ice cream vendor
139
+
140
+ Glad to hear it! We’ve got some new flavors in. What are you in the mood for?
141
+ 10:02
142
+ Translate
143
+
144
+ Maybe something fruity. What do you recommend?
145
+ 10:03
146
+
147
+ Ice cream vendor
148
+
149
+ Our mango sorbet is a solid choice. Or if you want something lighter, we have a lemon sorbet.
150
+ 10:04
151
+ Translate
152
+
153
+ 😍
154
+
155
+ The lemon’s tangy and refreshing, perfect for a warm day.
156
+ 10:05
157
+ Translate
158
+
159
+ I’ll go with the lemon sorbet today. Thanks!
160
+ 10:06
161
+
162
+ ❤️
163
+
164
+ Ice cream vendor
165
+
166
+ Coming right up!
167
+ 10:07
168
+ Translate
169
+
170
+ #### React (tsx)
171
+
172
+ ```tsx
173
+ import { useRef, useState, useEffect } from 'react';
174
+ import type Scrollbars from 'react-custom-scrollbars-4';
175
+
176
+ import { AnimatePresence, motion } from '@rio-cloud/rio-uikit/motion';
177
+ import SmoothScrollbars from '@rio-cloud/rio-uikit/components/smoothScrollbars/SmoothScrollbars';
178
+ import useElementSize from '@rio-cloud/rio-uikit/hooks/useElementSize';
179
+ import useHover from '@rio-cloud/rio-uikit/hooks/useHover';
180
+ import Divider from '@rio-cloud/rio-uikit/Divider';
181
+
182
+ const checkSVG = (
183
+ <svg xmlns='http://www.w3.org/2000/svg' width='11' height='8'>
184
+ <path
185
+ fill='#55b1be'
186
+ fillRule='nonzero'
187
+ d='M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z'
188
+ />
189
+ </svg>
190
+ );
191
+
192
+ const MessageItem = ({
193
+ message,
194
+ name,
195
+ time,
196
+ align,
197
+ isFirstNewMessage,
198
+ hasMaxWidth,
199
+ reaction,
200
+ }: {
201
+ message: string;
202
+ name?: string;
203
+ time: string;
204
+ align: 'left' | 'right';
205
+ isFirstNewMessage?: boolean;
206
+ hasMaxWidth?: boolean;
207
+ reaction?: string;
208
+ }) => {
209
+ const reactionsBarRef = useRef<HTMLInputElement>(null);
210
+
211
+ const isHover = useHover(reactionsBarRef);
212
+
213
+ return (
214
+ <div
215
+ className={`width-90pct display-grid ${isFirstNewMessage ? 'margin-top-25' : ''} ${align === 'right' ? 'justify-self-end' : 'justify-self-start'}`}
216
+ >
217
+ {name && isFirstNewMessage && (
218
+ <div className='text-color-darkest text-size-14 text-medium display-flex'>
219
+ <div className='margin-bottom-5 display-flex gap-5'>
220
+ <span className='padding-top-3 rioglyph rioglyph-user' />
221
+ {name}
222
+ </div>
223
+ </div>
224
+ )}
225
+ <div
226
+ className={`position-relative display-flex flex-column ${hasMaxWidth ? 'max-width-70pct' : ''} ${align === 'right' ? 'justify-self-end' : 'justify-self-start'}`}
227
+ ref={reactionsBarRef}
228
+ >
229
+ <div
230
+ className={`${align === 'right' ? 'bg-highlight-lightest' : 'bg-lightest'} rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all ${align === 'right' ? 'align-items-end' : 'align-items-start'}`}
231
+ >
232
+ <div className='text-color-darker line-height-125-rel'>{message}</div>
233
+ <div className='text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end'>
234
+ <div
235
+ className={`display-flex gap-10 align-items-center ${align === 'right' ? 'flex-order-1' : 'flex-order-2'}`}
236
+ >
237
+ <div>{time}</div>
238
+ {align === 'left' && (
239
+ <div className='text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2'>
240
+ <span className='rioglyph rioglyph-language margin-top--2' />
241
+ <span>Translate</span>
242
+ </div>
243
+ )}
244
+ {align === 'right' && (
245
+ <span className='scale-90 display-flex gap-2 align-items-center'>
246
+ {checkSVG}
247
+ {checkSVG}
248
+ </span>
249
+ )}
250
+ </div>
251
+ {reaction && (
252
+ <div
253
+ className={`position-absolute width-30 margin-top--10 aspect-ratio-1 bg-white rounded-circle text-size-18 text-color-darker display-grid place-items-center bottom-0 ${align === 'right' ? 'translate-x-50pct-y50pct left-0' : 'translate-x50pct-y50pct right-0'}`}
254
+ >
255
+ {reaction}
256
+ </div>
257
+ )}
258
+ </div>
259
+ <AnimatePresence>
260
+ {isHover && (
261
+ <motion.div
262
+ initial={{ opacity: 0, y: 10 }}
263
+ animate={{ opacity: 1, y: 0 }}
264
+ exit={{ opacity: 0, transition: { duration: 0.3 }, y: 10 }}
265
+ className={`display-flex gap-5 position-absolute z-index-1 bottom--10 bg-white border rounded-large padding-x-10 padding-y-5 text-size-16 translate-y50pct shadow-default ${align === 'right' ? 'left-50' : 'right-50'}`}
266
+ >
267
+ <span className='rioglyph rioglyph-thumbs-up text-color-gray hover-text-color-primary cursor-pointer' />
268
+ <span className='rioglyph rioglyph-thumbs-down text-color-gray hover-text-color-primary cursor-pointer' />
269
+ <span className='rioglyph rioglyph-send text-color-gray hover-text-color-primary cursor-pointer' />
270
+ </motion.div>
271
+ )}
272
+ </AnimatePresence>
273
+ </div>
274
+ </div>
275
+ </div>
276
+ );
277
+ };
278
+
279
+ export default () => {
280
+ const scrollbarsRef = useRef<Scrollbars>(null);
281
+ const containerRef = useRef<HTMLDivElement>(null);
282
+ const [isLargeScreen, setIsLargeScreen] = useState(false);
283
+ const [containerWidth] = useElementSize(containerRef);
284
+ const [isAtBottom, setIsAtBottom] = useState(false);
285
+
286
+ useEffect(() => {
287
+ if (scrollbarsRef.current && !isAtBottom) {
288
+ smoothScrollToBottom();
289
+ }
290
+ }, []);
291
+
292
+ useEffect(() => {
293
+ if (containerWidth !== undefined) {
294
+ setIsLargeScreen(containerWidth > 400);
295
+ }
296
+ }, [containerWidth]);
297
+
298
+ const calculateScroll = (scrollbars: Element) => {
299
+ const currentScroll = scrollbars.scrollTop;
300
+ const maxScroll = scrollbars.scrollHeight - scrollbars.clientHeight;
301
+ return { currentScroll, maxScroll };
302
+ };
303
+
304
+ const smoothScrollToBottom = () => {
305
+ const scrollbars = scrollbarsRef.current?.container?.firstElementChild;
306
+ if (!scrollbars) return;
307
+
308
+ const { currentScroll, maxScroll } = calculateScroll(scrollbars);
309
+
310
+ if (Math.abs(maxScroll - currentScroll) > 5) {
311
+ window.requestAnimationFrame(smoothScrollToBottom);
312
+ scrollbars.scrollTo(0, currentScroll + (maxScroll - currentScroll) / 5);
313
+ } else {
314
+ scrollbars.scrollTo(0, maxScroll);
315
+ setIsAtBottom(true);
316
+ }
317
+ };
318
+
319
+ const smoothScrollToTop = () => {
320
+ const scrollbars = scrollbarsRef.current?.container?.firstElementChild;
321
+ if (!scrollbars) return;
322
+
323
+ const { currentScroll } = calculateScroll(scrollbars);
324
+
325
+ if (currentScroll > 0) {
326
+ window.requestAnimationFrame(smoothScrollToTop);
327
+ scrollbars.scrollTo(0, currentScroll - currentScroll / 5);
328
+ }
329
+ };
330
+
331
+ const handleScroll = () => {
332
+ const scrollbars = scrollbarsRef.current?.container?.firstElementChild;
333
+ if (!scrollbars) return;
334
+
335
+ const { currentScroll, maxScroll } = calculateScroll(scrollbars);
336
+
337
+ if (currentScroll < maxScroll) {
338
+ setIsAtBottom(false);
339
+ } else {
340
+ setIsAtBottom(true);
341
+ }
342
+ };
343
+
344
+ return (
345
+ <div
346
+ ref={containerRef}
347
+ className='display-flex flex-column height-600 position-relative padding-right-5 overflow-hidden'
348
+ >
349
+ <AnimatePresence>
350
+ {isAtBottom && (
351
+ <motion.div
352
+ initial={{ opacity: 0, top: -50 }}
353
+ animate={{ opacity: 1, y: 0, top: 15 }}
354
+ exit={{ opacity: 0, transition: { duration: 0.3 }, top: -50 }}
355
+ className='position-absolute left-0 right-0 justify-content-center display-flex z-index-1'
356
+ onClick={smoothScrollToTop}
357
+ >
358
+ <div className='rounded-circle bg-primary text-color-white text-center padding-x-10 padding-y-5 cursor-pointer shadow-smooth'>
359
+ Older messages
360
+ </div>
361
+ </motion.div>
362
+ )}
363
+ </AnimatePresence>
364
+
365
+ <SmoothScrollbars slideIn ref={scrollbarsRef} onScroll={handleScroll}>
366
+ <div className='flex-1-1 overflow-y-auto user-select-none'>
367
+ <div className='display-flex flex-column gap-10 padding-25'>
368
+ <div className='display-grid gap-10'>
369
+ <MessageItem
370
+ hasMaxWidth={isLargeScreen}
371
+ align='right'
372
+ message="Hi! I'd like to get an ice cream, but I don't really like many flavors."
373
+ time='10:01'
374
+ />
375
+ <MessageItem
376
+ hasMaxWidth={isLargeScreen}
377
+ isFirstNewMessage
378
+ align='left'
379
+ name='Ice cream vendor'
380
+ message='No worries! We have some simple flavors. What do you usually enjoy?'
381
+ time='10:02'
382
+ />
383
+ <MessageItem
384
+ hasMaxWidth={isLargeScreen}
385
+ isFirstNewMessage
386
+ align='right'
387
+ message='I’m not a fan of chocolate, strawberry, or anything with nuts.'
388
+ time='10:03'
389
+ />
390
+ <MessageItem
391
+ hasMaxWidth={isLargeScreen}
392
+ isFirstNewMessage
393
+ align='left'
394
+ name='Ice cream vendor'
395
+ message='Got it. How about vanilla? It’s classic and not too overwhelming.'
396
+ time='10:04'
397
+ />
398
+ <MessageItem
399
+ hasMaxWidth={isLargeScreen}
400
+ isFirstNewMessage
401
+ align='right'
402
+ message='Yeah, vanilla works for me. Do you have anything else that’s mild?'
403
+ time='10:05'
404
+ />
405
+ <MessageItem
406
+ hasMaxWidth={isLargeScreen}
407
+ isFirstNewMessage
408
+ align='left'
409
+ name='Ice cream vendor'
410
+ message='We have a nice plain mango sorbet and a simple caramel ice cream as well.'
411
+ time='10:06'
412
+ />
413
+ <MessageItem
414
+ hasMaxWidth={isLargeScreen}
415
+ align='left'
416
+ name='Ice cream vendor'
417
+ message='The mango is refreshing, while caramel is a bit richer but still simple.'
418
+ time='10:07'
419
+ />
420
+ <MessageItem
421
+ hasMaxWidth={isLargeScreen}
422
+ isFirstNewMessage
423
+ align='right'
424
+ message='I’ll take a scoop of vanilla and mango sorbet, please.'
425
+ time='10:08'
426
+ />
427
+ <MessageItem
428
+ hasMaxWidth={isLargeScreen}
429
+ isFirstNewMessage
430
+ align='left'
431
+ name='Ice cream vendor'
432
+ message='Great choice! That’ll be ready in a moment.'
433
+ time='10:09'
434
+ />
435
+ </div>
436
+
437
+ <Divider>
438
+ <div className='tag tag-small'>Today</div>
439
+ </Divider>
440
+ <div className='display-grid gap-10'>
441
+ <MessageItem
442
+ hasMaxWidth={isLargeScreen}
443
+ align='right'
444
+ message="Hey, yesterday's vanilla was great! I'd love to try something different today."
445
+ time='10:01'
446
+ />
447
+ <MessageItem
448
+ hasMaxWidth={isLargeScreen}
449
+ isFirstNewMessage
450
+ align='left'
451
+ name='Ice cream vendor'
452
+ message='Glad to hear it! We’ve got some new flavors in. What are you in the mood for?'
453
+ time='10:02'
454
+ />
455
+ <MessageItem
456
+ hasMaxWidth={isLargeScreen}
457
+ isFirstNewMessage
458
+ align='right'
459
+ message='Maybe something fruity. What do you recommend?'
460
+ time='10:03'
461
+ />
462
+ <MessageItem
463
+ hasMaxWidth={isLargeScreen}
464
+ isFirstNewMessage
465
+ reaction='😍'
466
+ align='left'
467
+ name='Ice cream vendor'
468
+ message='Our mango sorbet is a solid choice. Or if you want something lighter, we have a lemon sorbet.'
469
+ time='10:04'
470
+ />
471
+ <MessageItem
472
+ hasMaxWidth={isLargeScreen}
473
+ align='left'
474
+ name='Ice cream vendor'
475
+ message='The lemon’s tangy and refreshing, perfect for a warm day.'
476
+ time='10:05'
477
+ />
478
+ <MessageItem
479
+ hasMaxWidth={isLargeScreen}
480
+ isFirstNewMessage
481
+ reaction='❤️'
482
+ align='right'
483
+ message='I’ll go with the lemon sorbet today. Thanks!'
484
+ time='10:06'
485
+ />
486
+ <MessageItem
487
+ hasMaxWidth={isLargeScreen}
488
+ isFirstNewMessage
489
+ align='left'
490
+ name='Ice cream vendor'
491
+ message='Coming right up!'
492
+ time='10:07'
493
+ />
494
+ </div>
495
+ </div>
496
+ </div>
497
+ </SmoothScrollbars>
498
+ <div className='flex-0 display-flex gap-5 align-items-end padding-y-15 padding-x-25'>
499
+ <div className='display-grid grid-stack width-100pct'>
500
+ <textarea
501
+ id='chatInputText'
502
+ className='form-control overflow-hidden grid-stack-item'
503
+ placeholder='Type your message'
504
+ rows={1}
505
+ />
506
+ </div>
507
+ <div>
508
+ <button
509
+ type='button'
510
+ role='button'
511
+ data-testid='sendButton'
512
+ className='btn btn-primary btn-icon-only btn-component'
513
+ >
514
+ <span className='rioglyph rioglyph-send' />
515
+ </button>
516
+ </div>
517
+ </div>
518
+ </div>
519
+ );
520
+ };
521
+ ```
522
+
523
+ #### HTML (html)
524
+
525
+ ```html
526
+ <div class="display-flex flex-column height-600 position-relative padding-right-5 overflow-hidden">
527
+ <div class="scrollbar-fly-in smooth-scrollbar-wrapper" style="position: relative; overflow: hidden; width: 100%; height: 100%;">
528
+ <div class="scrollbar-view" style="position: absolute; inset: 0px; overflow: scroll; margin-right: 0px; margin-bottom: 0px;">
529
+ <div class="scrollbar-content-wrapper">
530
+ <div class="flex-1-1 overflow-y-auto user-select-none">
531
+ <div class="display-flex flex-column gap-10 padding-25">
532
+ <div class="display-grid gap-10">
533
+ <div class="width-90pct display-grid justify-self-end">
534
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
535
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
536
+ <div class="text-color-darker line-height-125-rel">Hi! I'd like to get an ice cream, but I don't really like many flavors.</div>
537
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
538
+ <div class="display-flex gap-10 align-items-center flex-order-1">
539
+ <div>10:01</div>
540
+ <span class="scale-90 display-flex gap-2 align-items-center">
541
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
542
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
543
+ </path>
544
+ </svg>
545
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
546
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
547
+ </path>
548
+ </svg>
549
+ </span>
550
+ </div>
551
+ </div>
552
+ </div>
553
+ </div>
554
+ </div>
555
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
556
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
557
+ <div class="margin-bottom-5 display-flex gap-5">
558
+ <span class="padding-top-3 rioglyph rioglyph-user">
559
+ </span>Ice cream vendor
560
+ </div>
561
+ </div>
562
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
563
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
564
+ <div class="text-color-darker line-height-125-rel">No worries! We have some simple flavors. What do you usually enjoy?</div>
565
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
566
+ <div class="display-flex gap-10 align-items-center flex-order-2">
567
+ <div>10:02</div>
568
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
569
+ <span class="rioglyph rioglyph-language margin-top--2">
570
+ </span>
571
+ <span>Translate</span>
572
+ </div>
573
+ </div>
574
+ </div>
575
+ </div>
576
+ </div>
577
+ </div>
578
+ <div class="width-90pct display-grid margin-top-25 justify-self-end">
579
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
580
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
581
+ <div class="text-color-darker line-height-125-rel">I’m not a fan of chocolate, strawberry, or anything with nuts.</div>
582
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
583
+ <div class="display-flex gap-10 align-items-center flex-order-1">
584
+ <div>10:03</div>
585
+ <span class="scale-90 display-flex gap-2 align-items-center">
586
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
587
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
588
+ </path>
589
+ </svg>
590
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
591
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
592
+ </path>
593
+ </svg>
594
+ </span>
595
+ </div>
596
+ </div>
597
+ </div>
598
+ </div>
599
+ </div>
600
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
601
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
602
+ <div class="margin-bottom-5 display-flex gap-5">
603
+ <span class="padding-top-3 rioglyph rioglyph-user">
604
+ </span>Ice cream vendor
605
+ </div>
606
+ </div>
607
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
608
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
609
+ <div class="text-color-darker line-height-125-rel">Got it. How about vanilla? It’s classic and not too overwhelming.</div>
610
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
611
+ <div class="display-flex gap-10 align-items-center flex-order-2">
612
+ <div>10:04</div>
613
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
614
+ <span class="rioglyph rioglyph-language margin-top--2">
615
+ </span>
616
+ <span>Translate</span>
617
+ </div>
618
+ </div>
619
+ </div>
620
+ </div>
621
+ </div>
622
+ </div>
623
+ <div class="width-90pct display-grid margin-top-25 justify-self-end">
624
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
625
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
626
+ <div class="text-color-darker line-height-125-rel">Yeah, vanilla works for me. Do you have anything else that’s mild?</div>
627
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
628
+ <div class="display-flex gap-10 align-items-center flex-order-1">
629
+ <div>10:05</div>
630
+ <span class="scale-90 display-flex gap-2 align-items-center">
631
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
632
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
633
+ </path>
634
+ </svg>
635
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
636
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
637
+ </path>
638
+ </svg>
639
+ </span>
640
+ </div>
641
+ </div>
642
+ </div>
643
+ </div>
644
+ </div>
645
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
646
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
647
+ <div class="margin-bottom-5 display-flex gap-5">
648
+ <span class="padding-top-3 rioglyph rioglyph-user">
649
+ </span>Ice cream vendor
650
+ </div>
651
+ </div>
652
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
653
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
654
+ <div class="text-color-darker line-height-125-rel">We have a nice plain mango sorbet and a simple caramel ice cream as well.</div>
655
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
656
+ <div class="display-flex gap-10 align-items-center flex-order-2">
657
+ <div>10:06</div>
658
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
659
+ <span class="rioglyph rioglyph-language margin-top--2">
660
+ </span>
661
+ <span>Translate</span>
662
+ </div>
663
+ </div>
664
+ </div>
665
+ </div>
666
+ </div>
667
+ </div>
668
+ <div class="width-90pct display-grid justify-self-start">
669
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
670
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
671
+ <div class="text-color-darker line-height-125-rel">The mango is refreshing, while caramel is a bit richer but still simple.</div>
672
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
673
+ <div class="display-flex gap-10 align-items-center flex-order-2">
674
+ <div>10:07</div>
675
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
676
+ <span class="rioglyph rioglyph-language margin-top--2">
677
+ </span>
678
+ <span>Translate</span>
679
+ </div>
680
+ </div>
681
+ </div>
682
+ </div>
683
+ </div>
684
+ </div>
685
+ <div class="width-90pct display-grid margin-top-25 justify-self-end">
686
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
687
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
688
+ <div class="text-color-darker line-height-125-rel">I’ll take a scoop of vanilla and mango sorbet, please.</div>
689
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
690
+ <div class="display-flex gap-10 align-items-center flex-order-1">
691
+ <div>10:08</div>
692
+ <span class="scale-90 display-flex gap-2 align-items-center">
693
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
694
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
695
+ </path>
696
+ </svg>
697
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
698
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
699
+ </path>
700
+ </svg>
701
+ </span>
702
+ </div>
703
+ </div>
704
+ </div>
705
+ </div>
706
+ </div>
707
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
708
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
709
+ <div class="margin-bottom-5 display-flex gap-5">
710
+ <span class="padding-top-3 rioglyph rioglyph-user">
711
+ </span>Ice cream vendor
712
+ </div>
713
+ </div>
714
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
715
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
716
+ <div class="text-color-darker line-height-125-rel">Great choice! That’ll be ready in a moment.</div>
717
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
718
+ <div class="display-flex gap-10 align-items-center flex-order-2">
719
+ <div>10:09</div>
720
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
721
+ <span class="rioglyph rioglyph-language margin-top--2">
722
+ </span>
723
+ <span>Translate</span>
724
+ </div>
725
+ </div>
726
+ </div>
727
+ </div>
728
+ </div>
729
+ </div>
730
+ </div>
731
+ <div class="Divider position-relative width-100pct" style="padding-top: 15px; padding-bottom: 15px;">
732
+ <div class="divider-title display-flex align-items-center">
733
+ <div class="flex-1-0">
734
+ <div class="divider-line bg-light" style="width: 100%; height: 1px;">
735
+ </div>
736
+ </div>
737
+ <div class="">
738
+ <div class="tag tag-small">Today</div>
739
+ </div>
740
+ <div class="flex-1-0">
741
+ <div class="divider-line bg-light" style="width: 100%; height: 1px;">
742
+ </div>
743
+ </div>
744
+ </div>
745
+ </div>
746
+ <div class="display-grid gap-10">
747
+ <div class="width-90pct display-grid justify-self-end">
748
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
749
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
750
+ <div class="text-color-darker line-height-125-rel">Hey, yesterday's vanilla was great! I'd love to try something different today.</div>
751
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
752
+ <div class="display-flex gap-10 align-items-center flex-order-1">
753
+ <div>10:01</div>
754
+ <span class="scale-90 display-flex gap-2 align-items-center">
755
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
756
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
757
+ </path>
758
+ </svg>
759
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
760
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
761
+ </path>
762
+ </svg>
763
+ </span>
764
+ </div>
765
+ </div>
766
+ </div>
767
+ </div>
768
+ </div>
769
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
770
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
771
+ <div class="margin-bottom-5 display-flex gap-5">
772
+ <span class="padding-top-3 rioglyph rioglyph-user">
773
+ </span>Ice cream vendor
774
+ </div>
775
+ </div>
776
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
777
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
778
+ <div class="text-color-darker line-height-125-rel">Glad to hear it! We’ve got some new flavors in. What are you in the mood for?</div>
779
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
780
+ <div class="display-flex gap-10 align-items-center flex-order-2">
781
+ <div>10:02</div>
782
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
783
+ <span class="rioglyph rioglyph-language margin-top--2">
784
+ </span>
785
+ <span>Translate</span>
786
+ </div>
787
+ </div>
788
+ </div>
789
+ </div>
790
+ </div>
791
+ </div>
792
+ <div class="width-90pct display-grid margin-top-25 justify-self-end">
793
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
794
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
795
+ <div class="text-color-darker line-height-125-rel">Maybe something fruity. What do you recommend?</div>
796
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
797
+ <div class="display-flex gap-10 align-items-center flex-order-1">
798
+ <div>10:03</div>
799
+ <span class="scale-90 display-flex gap-2 align-items-center">
800
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
801
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
802
+ </path>
803
+ </svg>
804
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
805
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
806
+ </path>
807
+ </svg>
808
+ </span>
809
+ </div>
810
+ </div>
811
+ </div>
812
+ </div>
813
+ </div>
814
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
815
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
816
+ <div class="margin-bottom-5 display-flex gap-5">
817
+ <span class="padding-top-3 rioglyph rioglyph-user">
818
+ </span>Ice cream vendor
819
+ </div>
820
+ </div>
821
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
822
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
823
+ <div class="text-color-darker line-height-125-rel">Our mango sorbet is a solid choice. Or if you want something lighter, we have a lemon sorbet.</div>
824
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
825
+ <div class="display-flex gap-10 align-items-center flex-order-2">
826
+ <div>10:04</div>
827
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
828
+ <span class="rioglyph rioglyph-language margin-top--2">
829
+ </span>
830
+ <span>Translate</span>
831
+ </div>
832
+ </div>
833
+ <div class="position-absolute width-30 margin-top--10 aspect-ratio-1 bg-white rounded-circle text-size-18 text-color-darker display-grid place-items-center bottom-0 translate-x50pct-y50pct right-0">😍</div>
834
+ </div>
835
+ </div>
836
+ </div>
837
+ </div>
838
+ <div class="width-90pct display-grid justify-self-start">
839
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
840
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
841
+ <div class="text-color-darker line-height-125-rel">The lemon’s tangy and refreshing, perfect for a warm day.</div>
842
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
843
+ <div class="display-flex gap-10 align-items-center flex-order-2">
844
+ <div>10:05</div>
845
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
846
+ <span class="rioglyph rioglyph-language margin-top--2">
847
+ </span>
848
+ <span>Translate</span>
849
+ </div>
850
+ </div>
851
+ </div>
852
+ </div>
853
+ </div>
854
+ </div>
855
+ <div class="width-90pct display-grid margin-top-25 justify-self-end">
856
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-end">
857
+ <div class="bg-highlight-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-end">
858
+ <div class="text-color-darker line-height-125-rel">I’ll go with the lemon sorbet today. Thanks!</div>
859
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
860
+ <div class="display-flex gap-10 align-items-center flex-order-1">
861
+ <div>10:06</div>
862
+ <span class="scale-90 display-flex gap-2 align-items-center">
863
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
864
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
865
+ </path>
866
+ </svg>
867
+ <svg xmlns="http://www.w3.org/2000/svg" width="11" height="8">
868
+ <path fill="#55b1be" fill-rule="nonzero" d="M10.17 0 3.696 6.445.73 4.082 0 4.99l3.377 2.69.411.319 6.792-6.764.42-.409z">
869
+ </path>
870
+ </svg>
871
+ </span>
872
+ </div>
873
+ <div class="position-absolute width-30 margin-top--10 aspect-ratio-1 bg-white rounded-circle text-size-18 text-color-darker display-grid place-items-center bottom-0 translate-x-50pct-y50pct left-0">❤️</div>
874
+ </div>
875
+ </div>
876
+ </div>
877
+ </div>
878
+ <div class="width-90pct display-grid margin-top-25 justify-self-start">
879
+ <div class="text-color-darkest text-size-14 text-medium display-flex">
880
+ <div class="margin-bottom-5 display-flex gap-5">
881
+ <span class="padding-top-3 rioglyph rioglyph-user">
882
+ </span>Ice cream vendor
883
+ </div>
884
+ </div>
885
+ <div class="position-relative display-flex flex-column max-width-70pct justify-self-start">
886
+ <div class="bg-lightest rounded padding-y-10 padding-x-15 display-flex flex-column word-break-all align-items-start">
887
+ <div class="text-color-darker line-height-125-rel">Coming right up!</div>
888
+ <div class="text-size-11 margin-top-10 display-flex align-items-end gap-2 text-color-dark justify-content-end">
889
+ <div class="display-flex gap-10 align-items-center flex-order-2">
890
+ <div>10:07</div>
891
+ <div class="text-color-primary hover-text-color-highlight-darker text-size-11 cursor-pointer display-flex align-items-center gap-2">
892
+ <span class="rioglyph rioglyph-language margin-top--2">
893
+ </span>
894
+ <span>Translate</span>
895
+ </div>
896
+ </div>
897
+ </div>
898
+ </div>
899
+ </div>
900
+ </div>
901
+ </div>
902
+ </div>
903
+ </div>
904
+ </div>
905
+ </div>
906
+ <div class="scrollbar-track-horizontal" style="position: absolute; height: 6px; display: none;">
907
+ <div class="scrollbar-thumb-horizontal" style="position: relative; display: block; height: 100%;">
908
+ </div>
909
+ </div>
910
+ <div class="scrollbar-track-vertical" style="position: absolute; width: 6px; display: none;">
911
+ <div class="scrollbar-thumb-vertical" style="position: relative; display: block; width: 100%;">
912
+ </div>
913
+ </div>
914
+ </div>
915
+ <div class="flex-0 display-flex gap-5 align-items-end padding-y-15 padding-x-25">
916
+ <div class="display-grid grid-stack width-100pct">
917
+ <textarea id="chatInputText" class="form-control overflow-hidden grid-stack-item" placeholder="Type your message" rows="1">
918
+ </textarea>
919
+ </div>
920
+ <div>
921
+ <button type="button" role="button" data-testid="sendButton" class="btn btn-primary btn-icon-only btn-component">
922
+ <span class="rioglyph rioglyph-send">
923
+ </span>
924
+ </button>
925
+ </div>
926
+ </div>
927
+ </div>
928
+ <div class="Resizer resize-horizontal resize-right right-0 display-grid place-items-center width-auto height-100pct padding-2 bg-white border border-top-none border-bottom-none">
929
+ <div class="height-20 width-2 bg-gray">
930
+ </div>
931
+ </div>
932
+ ```