@rio-cloud/uikit-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +91 -0
  3. package/bin/uikit-mcp.mjs +23 -0
  4. package/data/pages/Components/components/accentbar.json +207 -0
  5. package/data/pages/Components/components/activity.json +87 -0
  6. package/data/pages/Components/components/animatednumber.json +99 -0
  7. package/data/pages/Components/components/animations.json +87 -0
  8. package/data/pages/Components/components/appheader.json +291 -0
  9. package/data/pages/Components/components/applayout.json +1198 -0
  10. package/data/pages/Components/components/appnavigationbar.json +327 -0
  11. package/data/pages/Components/components/areacharts.json +563 -0
  12. package/data/pages/Components/components/aspectratioplaceholder.json +75 -0
  13. package/data/pages/Components/components/assettree.json +3080 -0
  14. package/data/pages/Components/components/autosuggests.json +710 -0
  15. package/data/pages/Components/components/avatar.json +157 -0
  16. package/data/pages/Components/components/banner.json +599 -0
  17. package/data/pages/Components/components/barcharts.json +1507 -0
  18. package/data/pages/Components/components/barlist.json +223 -0
  19. package/data/pages/Components/components/basicmap.json +68 -0
  20. package/data/pages/Components/components/bottomsheet.json +601 -0
  21. package/data/pages/Components/components/button.json +583 -0
  22. package/data/pages/Components/components/buttontoolbar.json +63 -0
  23. package/data/pages/Components/components/calendarstripe.json +235 -0
  24. package/data/pages/Components/components/card.json +69 -0
  25. package/data/pages/Components/components/carousel.json +39 -0
  26. package/data/pages/Components/components/chartcolors.json +34 -0
  27. package/data/pages/Components/components/chartsgettingstarted.json +32 -0
  28. package/data/pages/Components/components/chat.json +39 -0
  29. package/data/pages/Components/components/checkbox.json +847 -0
  30. package/data/pages/Components/components/clearableinput.json +789 -0
  31. package/data/pages/Components/components/collapse.json +175 -0
  32. package/data/pages/Components/components/composedcharts.json +159 -0
  33. package/data/pages/Components/components/contentloader.json +233 -0
  34. package/data/pages/Components/components/datatabs.json +680 -0
  35. package/data/pages/Components/components/datepickers.json +287 -0
  36. package/data/pages/Components/components/dialogs.json +1492 -0
  37. package/data/pages/Components/components/divider.json +93 -0
  38. package/data/pages/Components/components/dropdowns.json +936 -0
  39. package/data/pages/Components/components/editablecontent.json +1117 -0
  40. package/data/pages/Components/components/expander.json +377 -0
  41. package/data/pages/Components/components/fade.json +403 -0
  42. package/data/pages/Components/components/fadeexpander.json +75 -0
  43. package/data/pages/Components/components/fadeup.json +127 -0
  44. package/data/pages/Components/components/feedback.json +269 -0
  45. package/data/pages/Components/components/filepickers.json +269 -0
  46. package/data/pages/Components/components/formlabel.json +115 -0
  47. package/data/pages/Components/components/fullscreenmap.json +22 -0
  48. package/data/pages/Components/components/groupeditemlist.json +323 -0
  49. package/data/pages/Components/components/iconlist.json +45 -0
  50. package/data/pages/Components/components/imagepreloader.json +81 -0
  51. package/data/pages/Components/components/labeledelement.json +75 -0
  52. package/data/pages/Components/components/licenseplate.json +69 -0
  53. package/data/pages/Components/components/linecharts.json +987 -0
  54. package/data/pages/Components/components/listmenu.json +313 -0
  55. package/data/pages/Components/components/loadmore.json +175 -0
  56. package/data/pages/Components/components/mainnavigation.json +39 -0
  57. package/data/pages/Components/components/mapcircle.json +34 -0
  58. package/data/pages/Components/components/mapcluster.json +51 -0
  59. package/data/pages/Components/components/mapcontext.json +105 -0
  60. package/data/pages/Components/components/mapdraggablemarker.json +34 -0
  61. package/data/pages/Components/components/mapgettingstarted.json +27 -0
  62. package/data/pages/Components/components/mapgroup.json +1198 -0
  63. package/data/pages/Components/components/mapinfobubble.json +34 -0
  64. package/data/pages/Components/components/maplayergroup.json +34 -0
  65. package/data/pages/Components/components/mapmarker.json +700 -0
  66. package/data/pages/Components/components/mappolygon.json +45 -0
  67. package/data/pages/Components/components/maproute.json +623 -0
  68. package/data/pages/Components/components/maproutegenerator.json +16 -0
  69. package/data/pages/Components/components/mapsettings.json +51 -0
  70. package/data/pages/Components/components/maputils.json +34 -0
  71. package/data/pages/Components/components/multiselects.json +1451 -0
  72. package/data/pages/Components/components/nodata.json +139 -0
  73. package/data/pages/Components/components/notifications.json +65 -0
  74. package/data/pages/Components/components/numbercontrol.json +301 -0
  75. package/data/pages/Components/components/onboarding.json +302 -0
  76. package/data/pages/Components/components/page.json +197 -0
  77. package/data/pages/Components/components/pager.json +93 -0
  78. package/data/pages/Components/components/piecharts.json +731 -0
  79. package/data/pages/Components/components/popover.json +251 -0
  80. package/data/pages/Components/components/position.json +69 -0
  81. package/data/pages/Components/components/radialbarcharts.json +1304 -0
  82. package/data/pages/Components/components/radiobutton.json +1105 -0
  83. package/data/pages/Components/components/releasenotes.json +44 -0
  84. package/data/pages/Components/components/resizer.json +93 -0
  85. package/data/pages/Components/components/responsivecolumnstripe.json +123 -0
  86. package/data/pages/Components/components/responsivevideo.json +75 -0
  87. package/data/pages/Components/components/rioglyph.json +93 -0
  88. package/data/pages/Components/components/rules.json +410 -0
  89. package/data/pages/Components/components/saveableinput.json +703 -0
  90. package/data/pages/Components/components/selects.json +701 -0
  91. package/data/pages/Components/components/sidebar.json +243 -0
  92. package/data/pages/Components/components/sliders.json +235 -0
  93. package/data/pages/Components/components/smoothscrollbars.json +335 -0
  94. package/data/pages/Components/components/spinners.json +343 -0
  95. package/data/pages/Components/components/states.json +1705 -0
  96. package/data/pages/Components/components/statswidgets.json +314 -0
  97. package/data/pages/Components/components/statusbar.json +177 -0
  98. package/data/pages/Components/components/stepbutton.json +57 -0
  99. package/data/pages/Components/components/steppedprogressbars.json +417 -0
  100. package/data/pages/Components/components/subnavigation.json +107 -0
  101. package/data/pages/Components/components/supportmarker.json +45 -0
  102. package/data/pages/Components/components/svgimage.json +81 -0
  103. package/data/pages/Components/components/switch.json +111 -0
  104. package/data/pages/Components/components/tables.json +144 -0
  105. package/data/pages/Components/components/tagmanager.json +86 -0
  106. package/data/pages/Components/components/tags.json +146 -0
  107. package/data/pages/Components/components/teaser.json +188 -0
  108. package/data/pages/Components/components/timeline.json +45 -0
  109. package/data/pages/Components/components/timepicker.json +163 -0
  110. package/data/pages/Components/components/togglebutton.json +247 -0
  111. package/data/pages/Components/components/tooltip.json +270 -0
  112. package/data/pages/Components/components/virtuallist.json +175 -0
  113. package/data/pages/Foundations/foundations.json +2475 -0
  114. package/data/pages/Getting-started/start/changelog.json +22 -0
  115. package/data/pages/Getting-started/start/goodtoknow.json +32 -0
  116. package/data/pages/Getting-started/start/guidelines/color-combinations.json +58 -0
  117. package/data/pages/Getting-started/start/guidelines/custom-css.json +27 -0
  118. package/data/pages/Getting-started/start/guidelines/custom-rioglyph.json +22 -0
  119. package/data/pages/Getting-started/start/guidelines/formatting.json +97 -0
  120. package/data/pages/Getting-started/start/guidelines/iframe.json +93 -0
  121. package/data/pages/Getting-started/start/guidelines/obfuscate-data.json +22 -0
  122. package/data/pages/Getting-started/start/guidelines/print-css.json +37 -0
  123. package/data/pages/Getting-started/start/guidelines/spinner.json +144 -0
  124. package/data/pages/Getting-started/start/guidelines/supported-browsers.json +22 -0
  125. package/data/pages/Getting-started/start/guidelines/writing.json +242 -0
  126. package/data/pages/Getting-started/start/howto.json +72 -0
  127. package/data/pages/Getting-started/start/intro.json +37 -0
  128. package/data/pages/Getting-started/start/responsiveness.json +52 -0
  129. package/data/pages/Templates/templates/common-table.json +39 -0
  130. package/data/pages/Templates/templates/detail-views.json +71 -0
  131. package/data/pages/Templates/templates/expandable-details.json +39 -0
  132. package/data/pages/Templates/templates/feature-cards.json +103 -0
  133. package/data/pages/Templates/templates/form-summary.json +39 -0
  134. package/data/pages/Templates/templates/form-toggle.json +39 -0
  135. package/data/pages/Templates/templates/list-blocks.json +119 -0
  136. package/data/pages/Templates/templates/loading-progress.json +39 -0
  137. package/data/pages/Templates/templates/options-panel.json +39 -0
  138. package/data/pages/Templates/templates/panel-variants.json +39 -0
  139. package/data/pages/Templates/templates/progress-cards.json +71 -0
  140. package/data/pages/Templates/templates/progress-success.json +39 -0
  141. package/data/pages/Templates/templates/settings-form.json +39 -0
  142. package/data/pages/Templates/templates/stats-blocks.json +135 -0
  143. package/data/pages/Templates/templates/table-panel.json +39 -0
  144. package/data/pages/Templates/templates/table-row-animation.json +39 -0
  145. package/data/pages/Templates/templates/usage-cards.json +39 -0
  146. package/data/pages/Utilities/utilities/deviceutils.json +39 -0
  147. package/data/pages/Utilities/utilities/featuretoggles.json +42 -0
  148. package/data/pages/Utilities/utilities/fueltypeutils.json +118 -0
  149. package/data/pages/Utilities/utilities/routeutils.json +34 -0
  150. package/data/pages/Utilities/utilities/useaftermount.json +63 -0
  151. package/data/pages/Utilities/utilities/useaverage.json +86 -0
  152. package/data/pages/Utilities/utilities/useclickoutside.json +69 -0
  153. package/data/pages/Utilities/utilities/useclipboard.json +57 -0
  154. package/data/pages/Utilities/utilities/usecount.json +92 -0
  155. package/data/pages/Utilities/utilities/usedarkmode.json +50 -0
  156. package/data/pages/Utilities/utilities/usedebuginfo.json +63 -0
  157. package/data/pages/Utilities/utilities/useeffectonce.json +57 -0
  158. package/data/pages/Utilities/utilities/useelapsedtime.json +57 -0
  159. package/data/pages/Utilities/utilities/useelementsize.json +63 -0
  160. package/data/pages/Utilities/utilities/useesc.json +57 -0
  161. package/data/pages/Utilities/utilities/useevent.json +75 -0
  162. package/data/pages/Utilities/utilities/usefocustrap.json +57 -0
  163. package/data/pages/Utilities/utilities/usefullscreen.json +197 -0
  164. package/data/pages/Utilities/utilities/usehover.json +57 -0
  165. package/data/pages/Utilities/utilities/useinterval.json +63 -0
  166. package/data/pages/Utilities/utilities/useisfocuswithin.json +75 -0
  167. package/data/pages/Utilities/utilities/usekey.json +75 -0
  168. package/data/pages/Utilities/utilities/uselocalstorage.json +69 -0
  169. package/data/pages/Utilities/utilities/uselocationsuggestions.json +110 -0
  170. package/data/pages/Utilities/utilities/usemax.json +86 -0
  171. package/data/pages/Utilities/utilities/usemin.json +86 -0
  172. package/data/pages/Utilities/utilities/usemutationobserver.json +69 -0
  173. package/data/pages/Utilities/utilities/useonlinestatus.json +39 -0
  174. package/data/pages/Utilities/utilities/useonscreen.json +63 -0
  175. package/data/pages/Utilities/utilities/usepostmessage.json +80 -0
  176. package/data/pages/Utilities/utilities/useprevious.json +63 -0
  177. package/data/pages/Utilities/utilities/useresizeobserver.json +65 -0
  178. package/data/pages/Utilities/utilities/usescrollposition.json +103 -0
  179. package/data/pages/Utilities/utilities/usesearch.json +197 -0
  180. package/data/pages/Utilities/utilities/usesorting.json +139 -0
  181. package/data/pages/Utilities/utilities/usestatewithvalidation.json +69 -0
  182. package/data/pages/Utilities/utilities/usesum.json +86 -0
  183. package/data/pages/Utilities/utilities/usetableexport.json +87 -0
  184. package/data/pages/Utilities/utilities/usetableselection.json +311 -0
  185. package/data/pages/Utilities/utilities/usetimeout.json +63 -0
  186. package/data/pages/Utilities/utilities/usetoggle.json +75 -0
  187. package/data/pages/Utilities/utilities/usewindowresize.json +63 -0
  188. package/data/version.json +4 -0
  189. package/docs/content-schema.md +147 -0
  190. package/docs/navigation-inventory.json +1310 -0
  191. package/docs/search-synonyms.json +43 -0
  192. package/package.json +38 -0
  193. package/server/index.mjs +268 -0
  194. package/server/lib/load-docs.mjs +48 -0
  195. package/server/lib/normalise-doc.mjs +220 -0
  196. package/server/lib/render-markdown.mjs +82 -0
  197. package/server/lib/search-index.mjs +49 -0
  198. package/server/lib/types.js +99 -0
@@ -0,0 +1,417 @@
1
+ {
2
+ "metadata": {
3
+ "captured_at": "2025-11-21T12:07:33.674Z",
4
+ "source": "https://uikit.developers.rio.cloud/#components/steppedProgressBars",
5
+ "category": "Components",
6
+ "section": "Progress",
7
+ "slug": "components/steppedprogressbars",
8
+ "version": "v1.13.2",
9
+ "hash_algorithm": "sha256",
10
+ "hash": "1031cb5de243152dbeb249eeda3ac7dfb65ffd05bbef4e56e347bd39d2443074"
11
+ },
12
+ "title": "SteppedProgressBar - Circle",
13
+ "lead": null,
14
+ "content": [
15
+ {
16
+ "heading": "SteppedProgressBar - Circle",
17
+ "body": "",
18
+ "examples": [
19
+ {
20
+ "caption": "Example 1",
21
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"steppedProgressBarExample\"><div class=\"margin-bottom-25\"><div class=\"stepped-progress-bar variant-circle nav\"><a data-rb-event-key=\"0\" class=\"step-tab nav-link\"><div class=\"step-tab-content\"><div class=\"item-icon\">1</div><div class=\"item-label\">Label for step 1</div></div></a><a data-rb-event-key=\"1\" class=\"step-tab nav-link active\"><div class=\"step-tab-content\"><div class=\"item-icon\">2</div><div class=\"item-label\">Label for step 2</div></div></a><a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab nav-link disabled\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-ok\"></i></div><div class=\"item-label\">Label for final step</div></div></a></div></div><div class=\"panel panel-default panel-body padding-25\"><div class=\"text-size-h3\">Content of page 2</div><div class=\"padding-y-20\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div><label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\"><input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \"><span class=\"checkbox-text\"><span>Click here to complete this step. There is no other way forward.</span></span></label><div class=\"btn-toolbar justify-content-between\"><button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-left\"></span>Previous</button><button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-right\"></span>Next</button></div></div></div></div>",
22
+ "tabs": [
23
+ {
24
+ "label": "React",
25
+ "language": "tsx",
26
+ "code": "import { type ChangeEvent, useState } from 'react';\n\nimport SteppedProgressBar from '@rio-cloud/rio-uikit/SteppedProgressBar';\nimport Button from '@rio-cloud/rio-uikit/Button';\nimport { dummyText, dummyTextShort } from '../../../utils/data';\nimport Checkbox from '@rio-cloud/rio-uikit/components/checkbox/Checkbox';\n\nconst SteppedProgressBarExampleDefault = () => {\n const [selectedStep, setSelectedStep] = useState(1);\n const [disableFollowingPages, setDisableFollowingPages] = useState<number>();\n\n const handlePageNext = () => {\n setSelectedStep(selectedStep + 1);\n setDisableFollowingPages(3);\n };\n\n const handlePagePrevious = () => setSelectedStep(selectedStep - 1);\n const handleSelectedChanged = (selectedKey: number) => setSelectedStep(selectedKey);\n const handleDisableFollowingPages = (pageNumber: number) => setDisableFollowingPages(pageNumber);\n\n const pageContent = [\n <FirstPageContent key='firstStep' pageNumber={1} onClickNext={handlePageNext} />,\n <SecondPageContent\n key='secondStep'\n pageNumber={2}\n onClickNext={handlePageNext}\n onClickPrevious={handlePagePrevious}\n onDisableFollowingPages={handleDisableFollowingPages}\n />,\n <ThirdPageContent key='thirdStep' pageNumber={3} onClickPrevious={handlePagePrevious} />,\n ];\n\n return (\n <div className='steppedProgressBarExample'>\n <div className='margin-bottom-25'>\n <SteppedProgressBar\n variant='circle'\n selectedStepNumber={selectedStep}\n onSelectedChanged={handleSelectedChanged}\n disableFollowingPages={disableFollowingPages}\n mobileBreakpoint={false}\n labels={[\n { icon: '1', label: 'Label for step 1' },\n { icon: '2', label: 'Label for step 2' },\n { icon: <i className='rioglyph rioglyph-ok' />, label: 'Label for final step' },\n ]}\n />\n </div>\n {pageContent[selectedStep]}\n </div>\n );\n};\n\nexport default SteppedProgressBarExampleDefault;\n\ntype FirstPageContentProps = { pageNumber: number; onClickNext: VoidFunction };\n\nconst FirstPageContent = ({ pageNumber, onClickNext }: FirstPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar justify-content-end'>\n <Button className='btn-icon-right' iconName='rioglyph-chevron-right' onClick={onClickNext}>\n Next\n </Button>\n </div>\n </div>\n);\n\ntype SecondPageContentProps = {\n pageNumber: number;\n onClickNext: VoidFunction;\n onClickPrevious: VoidFunction;\n onDisableFollowingPages: (pageNumber: number) => void;\n};\n\nconst SecondPageContent = (props: SecondPageContentProps) => {\n const { pageNumber, onClickNext, onClickPrevious, onDisableFollowingPages } = props;\n\n const [isAccepted, setIsAccepted] = useState(false);\n\n const handleNext = () => isAccepted && onClickNext();\n\n const handleAccept = (event: ChangeEvent<HTMLInputElement>) => {\n setIsAccepted(event.target.checked);\n if (!event.target.checked) {\n onDisableFollowingPages(pageNumber);\n }\n };\n\n return (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h3'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-20'>{dummyTextShort}</div>\n <Checkbox\n onChange={handleAccept}\n checked={isAccepted}\n className={`padding-15 border rounded margin-bottom-20 ${isAccepted ? 'border-color-highlight' : ''}`}\n >\n Click here to complete this step. There is no other way forward.\n </Checkbox>\n <div className='btn-toolbar justify-content-between'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n <Button\n className='btn-icon-right'\n iconName='rioglyph-chevron-right'\n onClick={handleNext}\n disabled={!isAccepted}\n >\n Next\n </Button>\n </div>\n </div>\n );\n};\n\ntype ThirdPageContentProps = {\n pageNumber: number;\n onClickPrevious: VoidFunction;\n};\n\nconst ThirdPageContent = ({ pageNumber, onClickPrevious }: ThirdPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n </div>\n </div>\n);"
27
+ },
28
+ {
29
+ "label": "HTML",
30
+ "language": "html",
31
+ "code": "<div class=\"steppedProgressBarExample\">\n <div class=\"margin-bottom-25\">\n <div class=\"stepped-progress-bar variant-circle nav\">\n <a data-rb-event-key=\"0\" class=\"step-tab nav-link\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">1</div>\n <div class=\"item-label\">Label for step 1</div>\n </div>\n </a>\n <a data-rb-event-key=\"1\" class=\"step-tab nav-link active\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">2</div>\n <div class=\"item-label\">Label for step 2</div>\n </div>\n </a>\n <a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab nav-link disabled\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-ok\">\n </i>\n </div>\n <div class=\"item-label\">Label for final step</div>\n </div>\n </a>\n </div>\n </div>\n <div class=\"panel panel-default panel-body padding-25\">\n <div class=\"text-size-h3\">Content of page 2</div>\n <div class=\"padding-y-20\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div>\n <label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\">\n <input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \">\n <span class=\"checkbox-text\">\n <span>Click here to complete this step. There is no other way forward.</span>\n </span>\n </label>\n <div class=\"btn-toolbar justify-content-between\">\n <button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>Previous</button>\n <button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>Next</button>\n </div>\n </div>\n</div>"
32
+ },
33
+ {
34
+ "label": "Props",
35
+ "language": "json",
36
+ "code": null,
37
+ "props": [
38
+ {
39
+ "heading": null,
40
+ "rows": [
41
+ {
42
+ "name": "labels",
43
+ "type": "Array of Objects",
44
+ "default": "",
45
+ "description": "Objects to define the icon and the label of the navigation items. The icon can be a string or an icon."
46
+ },
47
+ {
48
+ "name": "└icon",
49
+ "type": "String / Node",
50
+ "default": "",
51
+ "description": "The element shown in the step element. This can be a single step number or an icon element."
52
+ },
53
+ {
54
+ "name": "└label",
55
+ "type": "String / Node",
56
+ "default": "",
57
+ "description": "The label shown below the step element."
58
+ },
59
+ {
60
+ "name": "└labelClassName",
61
+ "type": "String",
62
+ "default": "",
63
+ "description": "Additional classes to be set on the label element."
64
+ },
65
+ {
66
+ "name": "└labelWrapperClassName",
67
+ "type": "String",
68
+ "default": "",
69
+ "description": "Additional classes to be set on the label wrapping element."
70
+ },
71
+ {
72
+ "name": "selectedStepNumber",
73
+ "type": "Number",
74
+ "default": "",
75
+ "description": "Index of the selected navigation item."
76
+ },
77
+ {
78
+ "name": "onSelectedChanged",
79
+ "type": "Function",
80
+ "default": "() => {}",
81
+ "description": "Called with the new selected index after the user clicked a nav item."
82
+ },
83
+ {
84
+ "name": "variant",
85
+ "type": "String",
86
+ "default": "circle",
87
+ "description": "The SteppedProgressBar Variant. One of \"circle\", \"rectangle\" or \"roadsign\"."
88
+ },
89
+ {
90
+ "name": "disableFollowingPages",
91
+ "type": "Number",
92
+ "default": "",
93
+ "description": "All navigation items with a higher index than this will be disabled."
94
+ },
95
+ {
96
+ "name": "mobileBreakpoint",
97
+ "type": "Boolean",
98
+ "default": "true",
99
+ "description": "Deactivating the Wrapping of bubbles on mobile"
100
+ },
101
+ {
102
+ "name": "className",
103
+ "type": "String",
104
+ "default": "",
105
+ "description": "Additional classes to be set on the wrapper element."
106
+ }
107
+ ]
108
+ }
109
+ ]
110
+ }
111
+ ]
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ "heading": "SteppedProgressBar - Rectangle",
117
+ "body": "",
118
+ "examples": [
119
+ {
120
+ "caption": "Example 2",
121
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"steppedProgressBarExample\"><div class=\"margin-bottom-25\"><div class=\"stepped-progress-bar variant-rectangle nav\"><a data-rb-event-key=\"0\" class=\"step-tab flex-1-1-0 nav-link\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-document\"></i></div><div class=\"item-label\">Label for step 1</div></div></a><a data-rb-event-key=\"1\" class=\"step-tab flex-1-1-0 nav-link active\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-pdf-file\"></i></div><div class=\"item-label\">Label for step 2</div></div></a><a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab flex-1-1-0 nav-link disabled\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-print\"></i></div><div class=\"item-label\">Label for final step</div></div></a></div></div><div class=\"panel panel-default panel-body padding-25\"><div class=\"text-size-h3\">Content of page 2</div><div class=\"padding-y-20\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div><label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\"><input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \"><span class=\"checkbox-text\"><span>Click here to complete this step. There is no other way forward.</span></span></label><div class=\"btn-toolbar justify-content-between\"><button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-left\"></span>Previous</button><button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-right\"></span>Next</button></div></div></div></div>",
122
+ "tabs": [
123
+ {
124
+ "label": "React",
125
+ "language": "tsx",
126
+ "code": "import { type ChangeEvent, useState } from 'react';\n\nimport SteppedProgressBar from '@rio-cloud/rio-uikit/SteppedProgressBar';\nimport Checkbox from '@rio-cloud/rio-uikit/Checkbox';\nimport Button from '@rio-cloud/rio-uikit/Button';\nimport { dummyText, dummyTextShort } from '../../../utils/data';\n\nconst SteppedProgressBarExampleDefault = () => {\n const [selectedStep, setSelectedStep] = useState(1);\n const [disableFollowingPages, setDisableFollowingPages] = useState<number>();\n\n const handlePageNext = () => {\n setSelectedStep(selectedStep + 1);\n setDisableFollowingPages(3);\n };\n\n const handlePagePrevious = () => setSelectedStep(selectedStep - 1);\n const handleSelectedChanged = (selectedKey: number) => setSelectedStep(selectedKey);\n const handleDisableFollowingPages = (pageNumber: number) => setDisableFollowingPages(pageNumber - 1);\n\n const pageContent = [\n <FirstPageContent key='firstStep' pageNumber={1} onClickNext={handlePageNext} />,\n <SecondPageContent\n key='secondStep'\n pageNumber={2}\n onClickNext={handlePageNext}\n onClickPrevious={handlePagePrevious}\n onDisableFollowingPages={handleDisableFollowingPages}\n />,\n <ThirdPageContent key='thirdStep' pageNumber={3} onClickPrevious={handlePagePrevious} />,\n ];\n\n return (\n <div className='steppedProgressBarExample'>\n <div className='margin-bottom-25'>\n <SteppedProgressBar\n variant={SteppedProgressBar.VARIANT_RECTANGLE}\n selectedStepNumber={selectedStep}\n onSelectedChanged={handleSelectedChanged}\n disableFollowingPages={disableFollowingPages}\n mobileBreakpoint={false}\n labels={[\n {\n icon: <i className='rioglyph rioglyph-document' />,\n label: 'Label for step 1',\n labelWrapperClassName: 'flex-1-1-0',\n },\n {\n icon: <i className='rioglyph rioglyph-pdf-file' />,\n label: 'Label for step 2',\n labelWrapperClassName: 'flex-1-1-0',\n },\n {\n icon: <i className='rioglyph rioglyph-print' />,\n label: 'Label for final step',\n labelWrapperClassName: 'flex-1-1-0',\n },\n ]}\n />\n </div>\n {pageContent[selectedStep]}\n </div>\n );\n};\n\nexport default SteppedProgressBarExampleDefault;\n\ntype FirstPageContentProps = { pageNumber: number; onClickNext: VoidFunction };\n\nconst FirstPageContent = ({ pageNumber, onClickNext }: FirstPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar justify-content-end'>\n <Button className='btn-icon-right' iconName='rioglyph-chevron-right' onClick={onClickNext}>\n Next\n </Button>\n </div>\n </div>\n);\n\ntype SecondPageContentProps = {\n pageNumber: number;\n onClickNext: VoidFunction;\n onClickPrevious: VoidFunction;\n onDisableFollowingPages: (pageNumber: number) => void;\n};\n\nconst SecondPageContent = (props: SecondPageContentProps) => {\n const { pageNumber, onClickNext, onClickPrevious, onDisableFollowingPages } = props;\n\n const [isAccepted, setIsAccepted] = useState(false);\n\n const handleNext = () => isAccepted && onClickNext();\n\n const handleAccept = (event: ChangeEvent<HTMLInputElement>) => {\n setIsAccepted(event.target.checked);\n if (!event.target.checked) {\n onDisableFollowingPages(pageNumber);\n }\n };\n\n return (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h3'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-20'>{dummyTextShort}</div>\n <Checkbox\n onChange={handleAccept}\n checked={isAccepted}\n className={`padding-15 border rounded margin-bottom-20 ${isAccepted ? 'border-color-highlight' : ''}`}\n >\n Click here to complete this step. There is no other way forward.\n </Checkbox>\n <div className='btn-toolbar justify-content-between'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n <Button\n className='btn-icon-right'\n iconName='rioglyph-chevron-right'\n onClick={handleNext}\n disabled={!isAccepted}\n >\n Next\n </Button>\n </div>\n </div>\n );\n};\n\ntype ThirdPageContentProps = {\n pageNumber: number;\n onClickPrevious: VoidFunction;\n};\n\nconst ThirdPageContent = ({ pageNumber, onClickPrevious }: ThirdPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n </div>\n </div>\n);"
127
+ },
128
+ {
129
+ "label": "HTML",
130
+ "language": "html",
131
+ "code": "<div class=\"steppedProgressBarExample\">\n <div class=\"margin-bottom-25\">\n <div class=\"stepped-progress-bar variant-rectangle nav\">\n <a data-rb-event-key=\"0\" class=\"step-tab flex-1-1-0 nav-link\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-document\">\n </i>\n </div>\n <div class=\"item-label\">Label for step 1</div>\n </div>\n </a>\n <a data-rb-event-key=\"1\" class=\"step-tab flex-1-1-0 nav-link active\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-pdf-file\">\n </i>\n </div>\n <div class=\"item-label\">Label for step 2</div>\n </div>\n </a>\n <a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab flex-1-1-0 nav-link disabled\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-print\">\n </i>\n </div>\n <div class=\"item-label\">Label for final step</div>\n </div>\n </a>\n </div>\n </div>\n <div class=\"panel panel-default panel-body padding-25\">\n <div class=\"text-size-h3\">Content of page 2</div>\n <div class=\"padding-y-20\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div>\n <label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\">\n <input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \">\n <span class=\"checkbox-text\">\n <span>Click here to complete this step. There is no other way forward.</span>\n </span>\n </label>\n <div class=\"btn-toolbar justify-content-between\">\n <button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>Previous</button>\n <button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>Next</button>\n </div>\n </div>\n</div>"
132
+ },
133
+ {
134
+ "label": "Props",
135
+ "language": "json",
136
+ "code": null,
137
+ "props": [
138
+ {
139
+ "heading": null,
140
+ "rows": [
141
+ {
142
+ "name": "labels",
143
+ "type": "Array of Objects",
144
+ "default": "",
145
+ "description": "Objects to define the icon and the label of the navigation items. The icon can be a string or an icon."
146
+ },
147
+ {
148
+ "name": "└icon",
149
+ "type": "String / Node",
150
+ "default": "",
151
+ "description": "The element shown in the step element. This can be a single step number or an icon element."
152
+ },
153
+ {
154
+ "name": "└label",
155
+ "type": "String / Node",
156
+ "default": "",
157
+ "description": "The label shown below the step element."
158
+ },
159
+ {
160
+ "name": "└labelClassName",
161
+ "type": "String",
162
+ "default": "",
163
+ "description": "Additional classes to be set on the label element."
164
+ },
165
+ {
166
+ "name": "└labelWrapperClassName",
167
+ "type": "String",
168
+ "default": "",
169
+ "description": "Additional classes to be set on the label wrapping element."
170
+ },
171
+ {
172
+ "name": "selectedStepNumber",
173
+ "type": "Number",
174
+ "default": "",
175
+ "description": "Index of the selected navigation item."
176
+ },
177
+ {
178
+ "name": "onSelectedChanged",
179
+ "type": "Function",
180
+ "default": "() => {}",
181
+ "description": "Called with the new selected index after the user clicked a nav item."
182
+ },
183
+ {
184
+ "name": "variant",
185
+ "type": "String",
186
+ "default": "circle",
187
+ "description": "The SteppedProgressBar Variant. One of \"circle\", \"rectangle\" or \"roadsign\"."
188
+ },
189
+ {
190
+ "name": "disableFollowingPages",
191
+ "type": "Number",
192
+ "default": "",
193
+ "description": "All navigation items with a higher index than this will be disabled."
194
+ },
195
+ {
196
+ "name": "mobileBreakpoint",
197
+ "type": "Boolean",
198
+ "default": "true",
199
+ "description": "Deactivating the Wrapping of bubbles on mobile"
200
+ },
201
+ {
202
+ "name": "className",
203
+ "type": "String",
204
+ "default": "",
205
+ "description": "Additional classes to be set on the wrapper element."
206
+ }
207
+ ]
208
+ }
209
+ ]
210
+ }
211
+ ]
212
+ }
213
+ ]
214
+ },
215
+ {
216
+ "heading": "SteppedProgressBar - Rectangle with custom content",
217
+ "body": "",
218
+ "examples": [
219
+ {
220
+ "caption": "Example 3",
221
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"steppedProgressBarExample\"><div class=\"margin-bottom-25\"><div class=\"stepped-progress-bar variant-rectangle nav\"><a data-rb-event-key=\"0\" class=\"step-tab flex-1-1-0 nav-link\"><div class=\"step-tab-content\"><div class=\"item-icon\"></div><div class=\"item-label width-100pct text-left\"><div class=\"display-flex align-items-center gap-10\"><span class=\"rioglyph rioglyph-ok text-color-success margin-x-10 text-size-h2\"></span><div><div class=\"text-colot-darkest text-medium\">Initial step</div><div class=\"text-color-darker\">Lorem ipsum dolor</div></div></div></div></div></a><a data-rb-event-key=\"1\" class=\"step-tab flex-1-1-0 nav-link active\"><div class=\"step-tab-content\"><div class=\"item-icon\"></div><div class=\"item-label width-100pct text-left\"><div class=\"display-flex align-items-center gap-10\"><span class=\"rioglyph rioglyph-parcel margin-x-10 text-size-h2\"></span><div><div class=\"text-colot-darkest text-medium\">Second step</div><div class=\"text-color-darker\">Lorem ipsum dolor</div></div></div></div></div></a><a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab flex-1-1-0 nav-link disabled\"><div class=\"step-tab-content\"><div class=\"item-icon\"></div><div class=\"item-label width-100pct text-left\"><div class=\"display-flex align-items-center gap-10\"><span class=\"rioglyph rioglyph-print margin-x-10 text-size-h2\"></span><div><div class=\"text-colot-darkest text-medium\">Final step</div><div class=\"text-color-darker\">Lorem ipsum dolor</div></div></div></div></div></a></div></div><div class=\"panel panel-default panel-body padding-25\"><div class=\"text-size-h3\">Content of page 2</div><div class=\"padding-y-20\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div><label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\"><input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \"><span class=\"checkbox-text\"><span>Click here to complete this step. There is no other way forward.</span></span></label><div class=\"btn-toolbar justify-content-between\"><button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-left\"></span>Previous</button><button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-right\"></span>Next</button></div></div></div></div>",
222
+ "tabs": [
223
+ {
224
+ "label": "React",
225
+ "language": "tsx",
226
+ "code": "import { type ChangeEvent, useState } from 'react';\n\nimport SteppedProgressBar from '@rio-cloud/rio-uikit/SteppedProgressBar';\nimport Checkbox from '@rio-cloud/rio-uikit/Checkbox';\nimport Button from '@rio-cloud/rio-uikit/Button';\nimport { dummyText, dummyTextShort } from '../../../utils/data';\n\nconst SteppedProgressBarExampleDefault = () => {\n const [selectedStep, setSelectedStep] = useState(1);\n const [disableFollowingPages, setDisableFollowingPages] = useState<number>();\n\n const handlePageNext = () => {\n setSelectedStep(selectedStep + 1);\n setDisableFollowingPages(3);\n };\n\n const handlePagePrevious = () => setSelectedStep(selectedStep - 1);\n const handleSelectedChanged = (selectedKey: number) => setSelectedStep(selectedKey);\n const handleDisableFollowingPages = (pageNumber: number) => setDisableFollowingPages(pageNumber - 1);\n\n const pageContent = [\n <FirstPageContent key='firstStep' pageNumber={1} onClickNext={handlePageNext} />,\n <SecondPageContent\n key='secondStep'\n pageNumber={2}\n onClickNext={handlePageNext}\n onClickPrevious={handlePagePrevious}\n onDisableFollowingPages={handleDisableFollowingPages}\n />,\n <ThirdPageContent key='thirdStep' pageNumber={3} onClickPrevious={handlePagePrevious} />,\n ];\n\n return (\n <div className='steppedProgressBarExample'>\n <div className='margin-bottom-25'>\n <SteppedProgressBar\n variant={SteppedProgressBar.VARIANT_RECTANGLE}\n selectedStepNumber={selectedStep}\n onSelectedChanged={handleSelectedChanged}\n disableFollowingPages={disableFollowingPages}\n mobileBreakpoint={false}\n labels={[\n {\n label: (\n <StepLabelContent\n label='Initial step'\n description='Lorem ipsum dolor'\n icon='rioglyph rioglyph-clipboard'\n done={selectedStep > 0}\n />\n ),\n labelClassName: 'width-100pct text-left',\n labelWrapperClassName: 'flex-1-1-0',\n },\n {\n label: (\n <StepLabelContent\n label='Second step'\n description='Lorem ipsum dolor'\n icon='rioglyph rioglyph-parcel'\n done={selectedStep > 1}\n />\n ),\n labelClassName: 'width-100pct text-left',\n labelWrapperClassName: 'flex-1-1-0',\n },\n {\n label: (\n <StepLabelContent\n label='Final step'\n description='Lorem ipsum dolor'\n icon='rioglyph rioglyph-print'\n done={selectedStep > 2}\n />\n ),\n labelClassName: 'width-100pct text-left',\n labelWrapperClassName: 'flex-1-1-0',\n },\n ]}\n />\n </div>\n {pageContent[selectedStep]}\n </div>\n );\n};\n\nexport default SteppedProgressBarExampleDefault;\n\ntype StepLabelContentProps = {\n label: string;\n description: string;\n icon: string;\n done: boolean;\n};\n\nconst StepLabelContent = ({ label, description, icon, done }: StepLabelContentProps) => {\n return (\n <div className='display-flex align-items-center gap-10'>\n <span className={`${done ? 'rioglyph rioglyph-ok text-color-success' : icon} margin-x-10 text-size-h2`} />\n <div>\n <div className='text-colot-darkest text-medium'>{label}</div>\n <div className='text-color-darker'>{description}</div>\n </div>\n </div>\n );\n};\n\ntype FirstPageContentProps = { pageNumber: number; onClickNext: VoidFunction };\n\nconst FirstPageContent = ({ pageNumber, onClickNext }: FirstPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar justify-content-end'>\n <Button className='btn-icon-right' iconName='rioglyph-chevron-right' onClick={onClickNext}>\n Next\n </Button>\n </div>\n </div>\n);\n\ntype SecondPageContentProps = {\n pageNumber: number;\n onClickNext: VoidFunction;\n onClickPrevious: VoidFunction;\n onDisableFollowingPages: (pageNumber: number) => void;\n};\n\nconst SecondPageContent = (props: SecondPageContentProps) => {\n const { pageNumber, onClickNext, onClickPrevious, onDisableFollowingPages } = props;\n\n const [isAccepted, setIsAccepted] = useState(false);\n\n const handleNext = () => isAccepted && onClickNext();\n\n const handleAccept = (event: ChangeEvent<HTMLInputElement>) => {\n setIsAccepted(event.target.checked);\n if (!event.target.checked) {\n onDisableFollowingPages(pageNumber);\n }\n };\n\n return (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h3'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-20'>{dummyTextShort}</div>\n <Checkbox\n onChange={handleAccept}\n checked={isAccepted}\n className={`padding-15 border rounded margin-bottom-20 ${isAccepted ? 'border-color-highlight' : ''}`}\n >\n Click here to complete this step. There is no other way forward.\n </Checkbox>\n <div className='btn-toolbar justify-content-between'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n <Button\n className='btn-icon-right'\n iconName='rioglyph-chevron-right'\n onClick={handleNext}\n disabled={!isAccepted}\n >\n Next\n </Button>\n </div>\n </div>\n );\n};\n\ntype ThirdPageContentProps = {\n pageNumber: number;\n onClickPrevious: VoidFunction;\n};\n\nconst ThirdPageContent = ({ pageNumber, onClickPrevious }: ThirdPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n </div>\n </div>\n);"
227
+ },
228
+ {
229
+ "label": "HTML",
230
+ "language": "html",
231
+ "code": "<div class=\"steppedProgressBarExample\">\n <div class=\"margin-bottom-25\">\n <div class=\"stepped-progress-bar variant-rectangle nav\">\n <a data-rb-event-key=\"0\" class=\"step-tab flex-1-1-0 nav-link\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n </div>\n <div class=\"item-label width-100pct text-left\">\n <div class=\"display-flex align-items-center gap-10\">\n <span class=\"rioglyph rioglyph-ok text-color-success margin-x-10 text-size-h2\">\n </span>\n <div>\n <div class=\"text-colot-darkest text-medium\">Initial step</div>\n <div class=\"text-color-darker\">Lorem ipsum dolor</div>\n </div>\n </div>\n </div>\n </div>\n </a>\n <a data-rb-event-key=\"1\" class=\"step-tab flex-1-1-0 nav-link active\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n </div>\n <div class=\"item-label width-100pct text-left\">\n <div class=\"display-flex align-items-center gap-10\">\n <span class=\"rioglyph rioglyph-parcel margin-x-10 text-size-h2\">\n </span>\n <div>\n <div class=\"text-colot-darkest text-medium\">Second step</div>\n <div class=\"text-color-darker\">Lorem ipsum dolor</div>\n </div>\n </div>\n </div>\n </div>\n </a>\n <a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab flex-1-1-0 nav-link disabled\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n </div>\n <div class=\"item-label width-100pct text-left\">\n <div class=\"display-flex align-items-center gap-10\">\n <span class=\"rioglyph rioglyph-print margin-x-10 text-size-h2\">\n </span>\n <div>\n <div class=\"text-colot-darkest text-medium\">Final step</div>\n <div class=\"text-color-darker\">Lorem ipsum dolor</div>\n </div>\n </div>\n </div>\n </div>\n </a>\n </div>\n </div>\n <div class=\"panel panel-default panel-body padding-25\">\n <div class=\"text-size-h3\">Content of page 2</div>\n <div class=\"padding-y-20\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div>\n <label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\">\n <input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \">\n <span class=\"checkbox-text\">\n <span>Click here to complete this step. There is no other way forward.</span>\n </span>\n </label>\n <div class=\"btn-toolbar justify-content-between\">\n <button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>Previous</button>\n <button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>Next</button>\n </div>\n </div>\n</div>"
232
+ },
233
+ {
234
+ "label": "Props",
235
+ "language": "json",
236
+ "code": null,
237
+ "props": [
238
+ {
239
+ "heading": null,
240
+ "rows": [
241
+ {
242
+ "name": "labels",
243
+ "type": "Array of Objects",
244
+ "default": "",
245
+ "description": "Objects to define the icon and the label of the navigation items. The icon can be a string or an icon."
246
+ },
247
+ {
248
+ "name": "└icon",
249
+ "type": "String / Node",
250
+ "default": "",
251
+ "description": "The element shown in the step element. This can be a single step number or an icon element."
252
+ },
253
+ {
254
+ "name": "└label",
255
+ "type": "String / Node",
256
+ "default": "",
257
+ "description": "The label shown below the step element."
258
+ },
259
+ {
260
+ "name": "└labelClassName",
261
+ "type": "String",
262
+ "default": "",
263
+ "description": "Additional classes to be set on the label element."
264
+ },
265
+ {
266
+ "name": "└labelWrapperClassName",
267
+ "type": "String",
268
+ "default": "",
269
+ "description": "Additional classes to be set on the label wrapping element."
270
+ },
271
+ {
272
+ "name": "selectedStepNumber",
273
+ "type": "Number",
274
+ "default": "",
275
+ "description": "Index of the selected navigation item."
276
+ },
277
+ {
278
+ "name": "onSelectedChanged",
279
+ "type": "Function",
280
+ "default": "() => {}",
281
+ "description": "Called with the new selected index after the user clicked a nav item."
282
+ },
283
+ {
284
+ "name": "variant",
285
+ "type": "String",
286
+ "default": "circle",
287
+ "description": "The SteppedProgressBar Variant. One of \"circle\", \"rectangle\" or \"roadsign\"."
288
+ },
289
+ {
290
+ "name": "disableFollowingPages",
291
+ "type": "Number",
292
+ "default": "",
293
+ "description": "All navigation items with a higher index than this will be disabled."
294
+ },
295
+ {
296
+ "name": "mobileBreakpoint",
297
+ "type": "Boolean",
298
+ "default": "true",
299
+ "description": "Deactivating the Wrapping of bubbles on mobile"
300
+ },
301
+ {
302
+ "name": "className",
303
+ "type": "String",
304
+ "default": "",
305
+ "description": "Additional classes to be set on the wrapper element."
306
+ }
307
+ ]
308
+ }
309
+ ]
310
+ }
311
+ ]
312
+ }
313
+ ]
314
+ },
315
+ {
316
+ "heading": "SteppedProgressBar - Road Sign",
317
+ "body": "",
318
+ "examples": [
319
+ {
320
+ "caption": "Example 4",
321
+ "rendered_html": "<div class=\"playground-content bg-lighter padding-20 padding-bottom-25\" style=\"width: 100%;\"><div class=\"steppedProgressBarExample\"><div class=\"margin-bottom-25\"><div class=\"stepped-progress-bar variant-roadsign nav\"><a data-rb-event-key=\"0\" class=\"step-tab nav-link\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-document\"></i></div><div class=\"item-label\">Label for step 1</div></div></a><a data-rb-event-key=\"1\" class=\"step-tab nav-link active\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-pdf-file\"></i></div><div class=\"item-label\">Label for step 2</div></div></a><a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab nav-link disabled\"><div class=\"step-tab-content\"><div class=\"item-icon\"><i class=\"rioglyph rioglyph-print\"></i></div><div class=\"item-label\">Label for final step</div></div></a></div></div><div class=\"panel panel-default panel-body padding-25\"><div class=\"text-size-h3\">Content of page 2</div><div class=\"padding-y-20\">\nLorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div><label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\"><input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \"><span class=\"checkbox-text\"><span>Click here to complete this step. There is no other way forward.</span></span></label><div class=\"btn-toolbar justify-content-between\"><button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-left\"></span>Previous</button><button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\"><span class=\"rioglyph rioglyph-chevron-right\"></span>Next</button></div></div></div></div>",
322
+ "tabs": [
323
+ {
324
+ "label": "React",
325
+ "language": "tsx",
326
+ "code": "import { type ChangeEvent, useState } from 'react';\n\nimport SteppedProgressBar from '@rio-cloud/rio-uikit/SteppedProgressBar';\nimport Checkbox from '@rio-cloud/rio-uikit/Checkbox';\nimport Button from '@rio-cloud/rio-uikit/Button';\nimport { dummyText, dummyTextShort } from '../../../utils/data';\n\nconst SteppedProgressBarExampleDefault = () => {\n const [selectedStep, setSelectedStep] = useState(1);\n const [disableFollowingPages, setDisableFollowingPages] = useState<number>();\n\n const handlePageNext = () => {\n setSelectedStep(selectedStep + 1);\n setDisableFollowingPages(3);\n };\n\n const handlePagePrevious = () => setSelectedStep(selectedStep - 1);\n const handleSelectedChanged = (selectedKey: number) => setSelectedStep(selectedKey);\n const handleDisableFollowingPages = (pageNumber: number) => setDisableFollowingPages(pageNumber - 1);\n\n const pageContent = [\n <FirstPageContent key='firstStep' pageNumber={1} onClickNext={handlePageNext} />,\n <SecondPageContent\n key='secondStep'\n pageNumber={2}\n onClickNext={handlePageNext}\n onClickPrevious={handlePagePrevious}\n onDisableFollowingPages={handleDisableFollowingPages}\n />,\n <ThirdPageContent key='thirdStep' pageNumber={3} onClickPrevious={handlePagePrevious} />,\n ];\n\n return (\n <div className='steppedProgressBarExample'>\n <div className='margin-bottom-25'>\n <SteppedProgressBar\n variant={SteppedProgressBar.VARIANT_ROADSIGN}\n selectedStepNumber={selectedStep}\n onSelectedChanged={handleSelectedChanged}\n disableFollowingPages={disableFollowingPages}\n mobileBreakpoint={false}\n labels={[\n {\n icon: <i className='rioglyph rioglyph-document' />,\n label: 'Label for step 1',\n },\n {\n icon: <i className='rioglyph rioglyph-pdf-file' />,\n label: 'Label for step 2',\n },\n {\n icon: <i className='rioglyph rioglyph-print' />,\n label: 'Label for final step',\n },\n ]}\n />\n </div>\n {pageContent[selectedStep]}\n </div>\n );\n};\n\nexport default SteppedProgressBarExampleDefault;\n\ntype FirstPageContentProps = { pageNumber: number; onClickNext: VoidFunction };\n\nconst FirstPageContent = ({ pageNumber, onClickNext }: FirstPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar justify-content-end'>\n <Button className='btn-icon-right' iconName='rioglyph-chevron-right' onClick={onClickNext}>\n Next\n </Button>\n </div>\n </div>\n);\n\ntype SecondPageContentProps = {\n pageNumber: number;\n onClickNext: VoidFunction;\n onClickPrevious: VoidFunction;\n onDisableFollowingPages: (pageNumber: number) => void;\n};\n\nconst SecondPageContent = (props: SecondPageContentProps) => {\n const { pageNumber, onClickNext, onClickPrevious, onDisableFollowingPages } = props;\n\n const [isAccepted, setIsAccepted] = useState(false);\n\n const handleNext = () => isAccepted && onClickNext();\n\n const handleAccept = (event: ChangeEvent<HTMLInputElement>) => {\n setIsAccepted(event.target.checked);\n if (!event.target.checked) {\n onDisableFollowingPages(pageNumber);\n }\n };\n\n return (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h3'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-20'>{dummyTextShort}</div>\n <Checkbox\n onChange={handleAccept}\n checked={isAccepted}\n className={`padding-15 border rounded margin-bottom-20 ${isAccepted ? 'border-color-highlight' : ''}`}\n >\n Click here to complete this step. There is no other way forward.\n </Checkbox>\n <div className='btn-toolbar justify-content-between'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n <Button\n className='btn-icon-right'\n iconName='rioglyph-chevron-right'\n onClick={handleNext}\n disabled={!isAccepted}\n >\n Next\n </Button>\n </div>\n </div>\n );\n};\n\ntype ThirdPageContentProps = {\n pageNumber: number;\n onClickPrevious: VoidFunction;\n};\n\nconst ThirdPageContent = ({ pageNumber, onClickPrevious }: ThirdPageContentProps) => (\n <div className='panel panel-default panel-body padding-25'>\n <div className='text-size-h2'>{`Content of page ${pageNumber}`}</div>\n <div className='padding-y-25'>{dummyText}</div>\n <div className='btn-toolbar'>\n <Button iconName='rioglyph-chevron-left' onClick={onClickPrevious}>\n Previous\n </Button>\n </div>\n </div>\n);"
327
+ },
328
+ {
329
+ "label": "HTML",
330
+ "language": "html",
331
+ "code": "<div class=\"steppedProgressBarExample\">\n <div class=\"margin-bottom-25\">\n <div class=\"stepped-progress-bar variant-roadsign nav\">\n <a data-rb-event-key=\"0\" class=\"step-tab nav-link\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-document\">\n </i>\n </div>\n <div class=\"item-label\">Label for step 1</div>\n </div>\n </a>\n <a data-rb-event-key=\"1\" class=\"step-tab nav-link active\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-pdf-file\">\n </i>\n </div>\n <div class=\"item-label\">Label for step 2</div>\n </div>\n </a>\n <a disabled=\"\" data-rb-event-key=\"2\" class=\"step-tab nav-link disabled\">\n <div class=\"step-tab-content\">\n <div class=\"item-icon\">\n <i class=\"rioglyph rioglyph-print\">\n </i>\n </div>\n <div class=\"item-label\">Label for final step</div>\n </div>\n </a>\n </div>\n </div>\n <div class=\"panel panel-default panel-body padding-25\">\n <div class=\"text-size-h3\">Content of page 2</div>\n <div class=\"padding-y-20\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pharetra dui eget massa efficitur aliquam condimentum in felis. Integer eget metus vel nunc efficitur iaculis. Vivamus elementum ante et est sagittis semper. Ut consectetur enim nec tortor scelerisque tincidunt.</div>\n <label class=\"checkbox padding-15 border rounded margin-bottom-20 \" tabindex=\"0\">\n <input type=\"checkbox\" class=\"padding-15 border rounded margin-bottom-20 \">\n <span class=\"checkbox-text\">\n <span>Click here to complete this step. There is no other way forward.</span>\n </span>\n </label>\n <div class=\"btn-toolbar justify-content-between\">\n <button type=\"button\" class=\"btn btn-default btn-component\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-left\">\n </span>Previous</button>\n <button type=\"button\" class=\"btn btn-default btn-component btn-icon-right\" disabled=\"\" tabindex=\"0\">\n <span class=\"rioglyph rioglyph-chevron-right\">\n </span>Next</button>\n </div>\n </div>\n</div>"
332
+ },
333
+ {
334
+ "label": "Props",
335
+ "language": "json",
336
+ "code": null,
337
+ "props": [
338
+ {
339
+ "heading": null,
340
+ "rows": [
341
+ {
342
+ "name": "labels",
343
+ "type": "Array of Objects",
344
+ "default": "",
345
+ "description": "Objects to define the icon and the label of the navigation items. The icon can be a string or an icon."
346
+ },
347
+ {
348
+ "name": "└icon",
349
+ "type": "String / Node",
350
+ "default": "",
351
+ "description": "The element shown in the step element. This can be a single step number or an icon element."
352
+ },
353
+ {
354
+ "name": "└label",
355
+ "type": "String / Node",
356
+ "default": "",
357
+ "description": "The label shown below the step element."
358
+ },
359
+ {
360
+ "name": "└labelClassName",
361
+ "type": "String",
362
+ "default": "",
363
+ "description": "Additional classes to be set on the label element."
364
+ },
365
+ {
366
+ "name": "└labelWrapperClassName",
367
+ "type": "String",
368
+ "default": "",
369
+ "description": "Additional classes to be set on the label wrapping element."
370
+ },
371
+ {
372
+ "name": "selectedStepNumber",
373
+ "type": "Number",
374
+ "default": "",
375
+ "description": "Index of the selected navigation item."
376
+ },
377
+ {
378
+ "name": "onSelectedChanged",
379
+ "type": "Function",
380
+ "default": "() => {}",
381
+ "description": "Called with the new selected index after the user clicked a nav item."
382
+ },
383
+ {
384
+ "name": "variant",
385
+ "type": "String",
386
+ "default": "circle",
387
+ "description": "The SteppedProgressBar Variant. One of \"circle\", \"rectangle\" or \"roadsign\"."
388
+ },
389
+ {
390
+ "name": "disableFollowingPages",
391
+ "type": "Number",
392
+ "default": "",
393
+ "description": "All navigation items with a higher index than this will be disabled."
394
+ },
395
+ {
396
+ "name": "mobileBreakpoint",
397
+ "type": "Boolean",
398
+ "default": "true",
399
+ "description": "Deactivating the Wrapping of bubbles on mobile"
400
+ },
401
+ {
402
+ "name": "className",
403
+ "type": "String",
404
+ "default": "",
405
+ "description": "Additional classes to be set on the wrapper element."
406
+ }
407
+ ]
408
+ }
409
+ ]
410
+ }
411
+ ]
412
+ }
413
+ ]
414
+ }
415
+ ],
416
+ "see_also": []
417
+ }