From c888a1836a6cdd72852ad575b539a2a2d50ac6e0 Mon Sep 17 00:00:00 2001 From: Nuwan Jaliyagoda Date: Thu, 20 Jul 2023 01:23:46 +0530 Subject: [PATCH] UI and content updated for the Robots (#36) * UI and File updates * Content updates * GitHub edit button fix * URL changes * Firmware Setup instructions * Syntax and UI fixes * Virtual Robot updates --- _includes/alert.html | 5 + _includes/breadcrumb.html | 13 +- _includes/head.html | 8 +- _includes/sidebar.html | 109 +- _includes/thumbnail.html | 6 + _layouts/default.html | 38 +- _layouts/table_wrappers.html | 8 +- assets/css/index.css | 56 ++ assets/css/theme.css | 939 +++++++++++++++++- {pages => docs}/404.html | 0 docs/communication/index.md | 2 +- docs/communication/json/json.md | 2 +- docs/communication/mqtt/mqtt.md | 2 +- docs/communication/mqtt/mqtt_communication.md | 2 +- docs/communication/mqtt/mqtt_config.md | 2 +- docs/communication/mqtt/mqtt_localization.md | 2 +- docs/communication/mqtt/mqtt_neopixel.md | 2 +- docs/communication/mqtt/mqtt_obstacles.md | 2 +- docs/communication/mqtt/mqtt_robot.md | 2 +- docs/communication/mqtt/mqtt_sensor.md | 2 +- docs/guide/index.md | 2 +- docs/guide/links.md | 2 +- docs/guide/markdown.md | 4 +- docs/guide/page-template.md | 2 +- {pages => docs}/home.md | 6 +- docs/localization/{setup.md => 1_setup.md} | 6 +- .../{calibration.md => 2_calibration.md} | 6 +- docs/localization/index.md | 4 + docs/robots/main/v2/firmware/0_index.md | 11 - docs/robots/main/v2/hardware/1_schematics.md | 30 - docs/robots/main/v2/hardware/2_pcb.md | 27 - docs/robots/main/v2/hardware/4_diagrams.md | 20 - docs/robots/main/v4/firmware/0_index.md | 14 + .../2_motors.md => v4/firmware/10_motors.md} | 10 +- .../firmware/11_distanceSensor.md} | 11 +- .../firmware/12_colorSensor.md} | 12 +- .../firmware/13_compass.md} | 12 +- .../firmware/14_ir_sensors.md} | 12 +- .../firmware/15_neopixel.md} | 10 +- .../main/{v2 => v4}/firmware/1_intro.md | 27 +- .../main/v4/firmware/2_setupInstructions.md | 66 ++ .../main/{v2 => v4}/hardware/0_intro.md | 4 +- docs/robots/main/v4/hardware/1_schematics.md | 35 + docs/robots/main/v4/hardware/2_pcb.md | 32 + docs/robots/main/{v2 => v4}/hardware/3_bom.md | 6 +- docs/robots/main/v4/hardware/4_diagrams.md | 25 + docs/robots/main/{v2 => v4}/index.md | 5 +- docs/robots/obstacle/v1/firmware/0_index.md | 18 + docs/robots/obstacle/v1/firmware/0_intro.md | 13 - docs/robots/obstacle/v1/firmware/1_intro.md | 31 + .../v1/firmware/2_setupInstructions.md | 50 + docs/robots/obstacle/v1/hardware/0_index.md | 8 + .../v1/hardware/{0_intro.md => 1_intro.md} | 21 +- .../obstacle/v1/hardware/1_schematics.md | 16 - docs/robots/obstacle/v1/hardware/2_pcb.md | 17 - .../obstacle/v1/hardware/2_schematics.md | 18 + docs/robots/obstacle/v1/hardware/3_pcb.md | 18 + docs/robots/obstacle/v1/index.md | 5 +- docs/robots/virtual/v1/firmware/0_intro.md | 12 +- .../virtual/v1/firmware/1_setup-guide.md | 9 +- .../virtual/v1/firmware/2_swarm-class.md | 8 +- .../virtual/v1/firmware/3_robot-class.md | 10 +- .../virtual/v1/firmware/4_virtual-robot.md | 8 +- docs/robots/virtual/v1/index.md | 3 +- docs/simulator/index.md | 12 +- {pages => docs}/sitemap.md | 0 docs/visualizer/1_remote-access-guide.md | 3 +- docs/visualizer/2_local-setup-guide.md | 3 +- docs/visualizer/index.md | 6 +- 69 files changed, 1610 insertions(+), 282 deletions(-) create mode 100644 _includes/alert.html create mode 100644 _includes/thumbnail.html rename {pages => docs}/404.html (100%) rename {pages => docs}/home.md (79%) rename docs/localization/{setup.md => 1_setup.md} (96%) rename docs/localization/{calibration.md => 2_calibration.md} (66%) delete mode 100644 docs/robots/main/v2/firmware/0_index.md delete mode 100644 docs/robots/main/v2/hardware/1_schematics.md delete mode 100644 docs/robots/main/v2/hardware/2_pcb.md delete mode 100644 docs/robots/main/v2/hardware/4_diagrams.md create mode 100644 docs/robots/main/v4/firmware/0_index.md rename docs/robots/main/{v2/firmware/2_motors.md => v4/firmware/10_motors.md} (97%) rename docs/robots/main/{v2/firmware/3_distanceSensor.md => v4/firmware/11_distanceSensor.md} (96%) rename docs/robots/main/{v2/firmware/4_colorSensor.md => v4/firmware/12_colorSensor.md} (54%) rename docs/robots/main/{v2/firmware/5_compass.md => v4/firmware/13_compass.md} (55%) rename docs/robots/main/{v2/firmware/6_ir_sensors.md => v4/firmware/14_ir_sensors.md} (55%) rename docs/robots/main/{v2/firmware/7_neopixel.md => v4/firmware/15_neopixel.md} (96%) rename docs/robots/main/{v2 => v4}/firmware/1_intro.md (89%) create mode 100644 docs/robots/main/v4/firmware/2_setupInstructions.md rename docs/robots/main/{v2 => v4}/hardware/0_intro.md (52%) create mode 100644 docs/robots/main/v4/hardware/1_schematics.md create mode 100644 docs/robots/main/v4/hardware/2_pcb.md rename docs/robots/main/{v2 => v4}/hardware/3_bom.md (96%) create mode 100644 docs/robots/main/v4/hardware/4_diagrams.md rename docs/robots/main/{v2 => v4}/index.md (63%) create mode 100644 docs/robots/obstacle/v1/firmware/0_index.md delete mode 100644 docs/robots/obstacle/v1/firmware/0_intro.md create mode 100644 docs/robots/obstacle/v1/firmware/1_intro.md create mode 100644 docs/robots/obstacle/v1/firmware/2_setupInstructions.md create mode 100644 docs/robots/obstacle/v1/hardware/0_index.md rename docs/robots/obstacle/v1/hardware/{0_intro.md => 1_intro.md} (63%) delete mode 100644 docs/robots/obstacle/v1/hardware/1_schematics.md delete mode 100644 docs/robots/obstacle/v1/hardware/2_pcb.md create mode 100644 docs/robots/obstacle/v1/hardware/2_schematics.md create mode 100644 docs/robots/obstacle/v1/hardware/3_pcb.md rename {pages => docs}/sitemap.md (100%) diff --git a/_includes/alert.html b/_includes/alert.html new file mode 100644 index 0000000..f74b5ed --- /dev/null +++ b/_includes/alert.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/_includes/breadcrumb.html b/_includes/breadcrumb.html index bc28d3f..0d8d2f7 100644 --- a/_includes/breadcrumb.html +++ b/_includes/breadcrumb.html @@ -8,8 +8,10 @@ {%- if node.has_children -%} {%- assign children_list = pages_list | where: "parent", node.title -%} {%- for child in children_list -%} -{%- if page.url == child.url or page.parent == child.title -%} +{%- if page.url == child.url or page.parent == child.title and page.parent == child.grade_parent -%} {%- assign second_level_url = child.url | relative_url -%} +{%- else -%} +{%- assign second_level_url = '../' -%} {%- endif -%} {%- endfor -%} {%- endif -%} @@ -51,10 +53,13 @@ {% if page.gh_link -%} - - Edit on GitHub + + + Edit on GitHub {% endif -%} -{% endunless %} +{% endunless %} \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html index cc3acb1..94e9e59 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -15,6 +15,8 @@ + {% include google_analytics.html %} @@ -25,6 +27,10 @@ {% seo %} + + - + \ No newline at end of file diff --git a/_includes/sidebar.html b/_includes/sidebar.html index 55c9f9f..da7693d 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -1,6 +1,6 @@ {% include page_tree_builder.html pages=site.html_pages %} -' -%} {{ content_ }} \ No newline at end of file diff --git a/assets/css/index.css b/assets/css/index.css index bec2693..432b82b 100644 --- a/assets/css/index.css +++ b/assets/css/index.css @@ -28,6 +28,10 @@ code { padding: 16px !important; } +tr code { + padding: 4px !important; +} + h1, h2, h3, @@ -377,4 +381,56 @@ table { font-size: 3.5rem; font-weight: 300; line-height: 1.2; +} + + +.alert { + position: relative; + padding: 1rem 1rem; + margin-top: 0.75rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-primary { + color: #084298; + background-color: #cfe2ff; + border-color: #b6d4fe; +} + +.alert-secondary { + color: #41464b; + background-color: #e2e3e5; + border-color: #d3d6d8; +} + +.alert-success { + color: #0f5132; + background-color: #d1e7dd; + border-color: #badbcc; +} + +.alert-danger { + color: #842029; + background-color: #f8d7da; + border-color: #f5c2c7; +} + +.alert-warning { + color: #664d03; + background-color: #fff3cd; + border-color: #ffecb5; +} + +.alert-info { + color: #055160; + background-color: #cff4fc; + border-color: #b6effb; +} + +.alert-dark { + color: #141619; + background-color: #d3d3d4; + border-color: #bcbebf; } \ No newline at end of file diff --git a/assets/css/theme.css b/assets/css/theme.css index af14636..7014965 100644 --- a/assets/css/theme.css +++ b/assets/css/theme.css @@ -398,11 +398,15 @@ blockquote { ul, ol { - padding-left: 0; margin-top: 0; margin-bottom: 0 } +.toctree ol, +.toctree ul { + padding-left: 0 !important; +} + ol ol, ul ol { list-style-type: lower-roman @@ -447,7 +451,6 @@ pre { padding-right: .5em; padding-left: .5em; color: #e1e4e8; - content: "/" } .breadcrumb-item:first-child { @@ -1102,11 +1105,14 @@ label { } @supports(-webkit-touch-callout: none) { + .form-control, .form-select { font-size: 16px } + @media(min-width: 768px) { + .form-control, .form-select { font-size: 14px @@ -1620,6 +1626,7 @@ only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + dl.form-group>dd .form-control.is-autocheck-loading, dl.form-group>dd .form-control.is-autocheck-successful, dl.form-group>dd .form-control.is-autocheck-errored, @@ -1628,14 +1635,17 @@ only screen and (min-resolution: 2dppx) { .form-group>.form-group-body .form-control.is-autocheck-errored { background-size: 16px 16px } + dl.form-group>dd .form-control.is-autocheck-loading, .form-group>.form-group-body .form-control.is-autocheck-loading { background-image: url("/images/spinners/octocat-spinner-32.gif") } + dl.form-group>dd .form-control.is-autocheck-successful, .form-group>.form-group-body .form-control.is-autocheck-successful { background-image: url("/images/modules/ajax/success@2x.png") } + dl.form-group>dd .form-control.is-autocheck-errored, .form-group>.form-group-body .form-control.is-autocheck-errored { background-image: url("/images/modules/ajax/error@2x.png") @@ -5594,22 +5604,27 @@ p.explain .minibutton { } @media(min-width: 768px) { + .menu-md, .addons-wrap, .sidebar-wrap { left: 0; width: 300px } + .sidebar-wrap .sidebar { width: 320px } + .sidebar-wrap .sidebar .header, .sidebar-wrap .sidebar .toctree { width: 300px } + .content-wrap { margin-left: 300px } + .content-wrap.shift { position: relative; left: 0; @@ -5657,11 +5672,11 @@ p.explain .minibutton { background: #fff } -@media(min-width: 1280px) { +/* @media(min-width: 1280px) { .container { background: rgba(60, 69, 78, .1) } -} +} */ .sidebar { color: #fff; @@ -5696,7 +5711,7 @@ p.explain .minibutton { } .toctree>ul>.toc>a { - padding-left: 12px + /* padding-left: 12px */ } .toctree>ul>.toc:not(.current)>a:hover { @@ -6113,16 +6128,19 @@ html[dir=rtl] .content-wrap.shift { } @media(min-width: 768px) { + html[dir=rtl] .menu-md, html[dir=rtl] .sidebar-wrap, html[dir=rtl] .addons-wrap { left: unset; right: 0 } + html[dir=rtl] .content-wrap { margin-left: unset; margin-right: 300px } + html[dir=rtl] .content-wrap.shift { left: unset; right: 0 @@ -6291,6 +6309,7 @@ html[dir=rtl] .fa-arrow-circle-right:before { 0% { opacity: 0 } + 100% { opacity: 1 } @@ -6310,6 +6329,7 @@ html[dir=rtl] .fa-arrow-circle-right:before { 0% { opacity: 1 } + 100% { opacity: 0 } @@ -6329,6 +6349,7 @@ html[dir=rtl] .fa-arrow-circle-right:before { opacity: .8; transform: translateY(100%) } + 100% { opacity: 1; transform: translateY(0) @@ -6347,6 +6368,7 @@ html[dir=rtl] .fa-arrow-circle-right:before { opacity: 1; transform: translateY(0) } + 100% { opacity: .5; transform: translateY(100%) @@ -6393,6 +6415,7 @@ html[dir=rtl] .fa-arrow-circle-right:before { opacity: 0; transform: scale(0.5) } + 100% { opacity: 1; transform: scale(1) @@ -6410,9 +6433,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { 0% { opacity: .3 } + 10% { opacity: 1 } + 100% { opacity: .3 } @@ -6427,9 +6452,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { 0% { transform: scale3d(1, 1, 1) } + 50% { transform: scale3d(1.1, 1.1, 1.1) } + 100% { transform: scale3d(1, 1, 1) } @@ -6598,108 +6625,138 @@ html[dir=rtl] .fa-arrow-circle-right:before { .border-sm { border: 1px #e1e4e8 solid !important } + .border-sm-0 { border: 0 !important } + .border-sm-top { border-top: 1px #e1e4e8 solid !important } + .border-sm-right { border-right: 1px #e1e4e8 solid !important } + .border-sm-bottom { border-bottom: 1px #e1e4e8 solid !important } + .border-sm-left { border-left: 1px #e1e4e8 solid !important } + .border-sm-top-0 { border-top: 0 !important } + .border-sm-right-0 { border-right: 0 !important } + .border-sm-bottom-0 { border-bottom: 0 !important } + .border-sm-left-0 { border-left: 0 !important } + .rounded-sm { border-radius: 6px !important } + .rounded-sm-0 { border-radius: 0 !important } + .rounded-sm-1 { border-radius: 4px !important } + .rounded-sm-2 { border-radius: 6px !important } + .rounded-sm-3 { border-radius: 8px !important } + .rounded-sm-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important } + .rounded-sm-top-1 { border-top-left-radius: 4px !important; border-top-right-radius: 4px !important } + .rounded-sm-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important } + .rounded-sm-top-3 { border-top-left-radius: 8px !important; border-top-right-radius: 8px !important } + .rounded-sm-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important } + .rounded-sm-right-1 { border-top-right-radius: 4px !important; border-bottom-right-radius: 4px !important } + .rounded-sm-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important } + .rounded-sm-right-3 { border-top-right-radius: 8px !important; border-bottom-right-radius: 8px !important } + .rounded-sm-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important } + .rounded-sm-bottom-1 { border-bottom-right-radius: 4px !important; border-bottom-left-radius: 4px !important } + .rounded-sm-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important } + .rounded-sm-bottom-3 { border-bottom-right-radius: 8px !important; border-bottom-left-radius: 8px !important } + .rounded-sm-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important } + .rounded-sm-left-1 { border-bottom-left-radius: 4px !important; border-top-left-radius: 4px !important } + .rounded-sm-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important } + .rounded-sm-left-3 { border-bottom-left-radius: 8px !important; border-top-left-radius: 8px !important @@ -6710,108 +6767,138 @@ html[dir=rtl] .fa-arrow-circle-right:before { .border-md { border: 1px #e1e4e8 solid !important } + .border-md-0 { border: 0 !important } + .border-md-top { border-top: 1px #e1e4e8 solid !important } + .border-md-right { border-right: 1px #e1e4e8 solid !important } + .border-md-bottom { border-bottom: 1px #e1e4e8 solid !important } + .border-md-left { border-left: 1px #e1e4e8 solid !important } + .border-md-top-0 { border-top: 0 !important } + .border-md-right-0 { border-right: 0 !important } + .border-md-bottom-0 { border-bottom: 0 !important } + .border-md-left-0 { border-left: 0 !important } + .rounded-md { border-radius: 6px !important } + .rounded-md-0 { border-radius: 0 !important } + .rounded-md-1 { border-radius: 4px !important } + .rounded-md-2 { border-radius: 6px !important } + .rounded-md-3 { border-radius: 8px !important } + .rounded-md-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important } + .rounded-md-top-1 { border-top-left-radius: 4px !important; border-top-right-radius: 4px !important } + .rounded-md-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important } + .rounded-md-top-3 { border-top-left-radius: 8px !important; border-top-right-radius: 8px !important } + .rounded-md-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important } + .rounded-md-right-1 { border-top-right-radius: 4px !important; border-bottom-right-radius: 4px !important } + .rounded-md-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important } + .rounded-md-right-3 { border-top-right-radius: 8px !important; border-bottom-right-radius: 8px !important } + .rounded-md-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important } + .rounded-md-bottom-1 { border-bottom-right-radius: 4px !important; border-bottom-left-radius: 4px !important } + .rounded-md-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important } + .rounded-md-bottom-3 { border-bottom-right-radius: 8px !important; border-bottom-left-radius: 8px !important } + .rounded-md-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important } + .rounded-md-left-1 { border-bottom-left-radius: 4px !important; border-top-left-radius: 4px !important } + .rounded-md-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important } + .rounded-md-left-3 { border-bottom-left-radius: 8px !important; border-top-left-radius: 8px !important @@ -6822,108 +6909,138 @@ html[dir=rtl] .fa-arrow-circle-right:before { .border-lg { border: 1px #e1e4e8 solid !important } + .border-lg-0 { border: 0 !important } + .border-lg-top { border-top: 1px #e1e4e8 solid !important } + .border-lg-right { border-right: 1px #e1e4e8 solid !important } + .border-lg-bottom { border-bottom: 1px #e1e4e8 solid !important } + .border-lg-left { border-left: 1px #e1e4e8 solid !important } + .border-lg-top-0 { border-top: 0 !important } + .border-lg-right-0 { border-right: 0 !important } + .border-lg-bottom-0 { border-bottom: 0 !important } + .border-lg-left-0 { border-left: 0 !important } + .rounded-lg { border-radius: 6px !important } + .rounded-lg-0 { border-radius: 0 !important } + .rounded-lg-1 { border-radius: 4px !important } + .rounded-lg-2 { border-radius: 6px !important } + .rounded-lg-3 { border-radius: 8px !important } + .rounded-lg-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important } + .rounded-lg-top-1 { border-top-left-radius: 4px !important; border-top-right-radius: 4px !important } + .rounded-lg-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important } + .rounded-lg-top-3 { border-top-left-radius: 8px !important; border-top-right-radius: 8px !important } + .rounded-lg-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important } + .rounded-lg-right-1 { border-top-right-radius: 4px !important; border-bottom-right-radius: 4px !important } + .rounded-lg-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important } + .rounded-lg-right-3 { border-top-right-radius: 8px !important; border-bottom-right-radius: 8px !important } + .rounded-lg-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important } + .rounded-lg-bottom-1 { border-bottom-right-radius: 4px !important; border-bottom-left-radius: 4px !important } + .rounded-lg-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important } + .rounded-lg-bottom-3 { border-bottom-right-radius: 8px !important; border-bottom-left-radius: 8px !important } + .rounded-lg-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important } + .rounded-lg-left-1 { border-bottom-left-radius: 4px !important; border-top-left-radius: 4px !important } + .rounded-lg-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important } + .rounded-lg-left-3 { border-bottom-left-radius: 8px !important; border-top-left-radius: 8px !important @@ -6934,108 +7051,138 @@ html[dir=rtl] .fa-arrow-circle-right:before { .border-xl { border: 1px #e1e4e8 solid !important } + .border-xl-0 { border: 0 !important } + .border-xl-top { border-top: 1px #e1e4e8 solid !important } + .border-xl-right { border-right: 1px #e1e4e8 solid !important } + .border-xl-bottom { border-bottom: 1px #e1e4e8 solid !important } + .border-xl-left { border-left: 1px #e1e4e8 solid !important } + .border-xl-top-0 { border-top: 0 !important } + .border-xl-right-0 { border-right: 0 !important } + .border-xl-bottom-0 { border-bottom: 0 !important } + .border-xl-left-0 { border-left: 0 !important } + .rounded-xl { border-radius: 6px !important } + .rounded-xl-0 { border-radius: 0 !important } + .rounded-xl-1 { border-radius: 4px !important } + .rounded-xl-2 { border-radius: 6px !important } + .rounded-xl-3 { border-radius: 8px !important } + .rounded-xl-top-0 { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important } + .rounded-xl-top-1 { border-top-left-radius: 4px !important; border-top-right-radius: 4px !important } + .rounded-xl-top-2 { border-top-left-radius: 6px !important; border-top-right-radius: 6px !important } + .rounded-xl-top-3 { border-top-left-radius: 8px !important; border-top-right-radius: 8px !important } + .rounded-xl-right-0 { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important } + .rounded-xl-right-1 { border-top-right-radius: 4px !important; border-bottom-right-radius: 4px !important } + .rounded-xl-right-2 { border-top-right-radius: 6px !important; border-bottom-right-radius: 6px !important } + .rounded-xl-right-3 { border-top-right-radius: 8px !important; border-bottom-right-radius: 8px !important } + .rounded-xl-bottom-0 { border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important } + .rounded-xl-bottom-1 { border-bottom-right-radius: 4px !important; border-bottom-left-radius: 4px !important } + .rounded-xl-bottom-2 { border-bottom-right-radius: 6px !important; border-bottom-left-radius: 6px !important } + .rounded-xl-bottom-3 { border-bottom-right-radius: 8px !important; border-bottom-left-radius: 8px !important } + .rounded-xl-left-0 { border-bottom-left-radius: 0 !important; border-top-left-radius: 0 !important } + .rounded-xl-left-1 { border-bottom-left-radius: 4px !important; border-top-left-radius: 4px !important } + .rounded-xl-left-2 { border-bottom-left-radius: 6px !important; border-top-left-radius: 6px !important } + .rounded-xl-left-3 { border-bottom-left-radius: 8px !important; border-top-left-radius: 8px !important @@ -8111,108 +8258,143 @@ html[dir=rtl] .fa-arrow-circle-right:before { .flex-sm-row { flex-direction: row !important } + .flex-sm-row-reverse { flex-direction: row-reverse !important } + .flex-sm-column { flex-direction: column !important } + .flex-sm-column-reverse { flex-direction: column-reverse !important } + .flex-sm-wrap { flex-wrap: wrap !important } + .flex-sm-nowrap { flex-wrap: nowrap !important } + .flex-sm-wrap-reverse { flex-wrap: wrap-reverse !important } + .flex-sm-justify-start { justify-content: flex-start !important } + .flex-sm-justify-end { justify-content: flex-end !important } + .flex-sm-justify-center { justify-content: center !important } + .flex-sm-justify-between { justify-content: space-between !important } + .flex-sm-justify-around { justify-content: space-around !important } + .flex-sm-items-start { align-items: flex-start !important } + .flex-sm-items-end { align-items: flex-end !important } + .flex-sm-items-center { align-items: center !important } + .flex-sm-items-baseline { align-items: baseline !important } + .flex-sm-items-stretch { align-items: stretch !important } + .flex-sm-content-start { align-content: flex-start !important } + .flex-sm-content-end { align-content: flex-end !important } + .flex-sm-content-center { align-content: center !important } + .flex-sm-content-between { align-content: space-between !important } + .flex-sm-content-around { align-content: space-around !important } + .flex-sm-content-stretch { align-content: stretch !important } + .flex-sm-1 { flex: 1 !important } + .flex-sm-auto { flex: auto !important } + .flex-sm-grow-0 { flex-grow: 0 !important } + .flex-sm-shrink-0 { flex-shrink: 0 !important } + .flex-sm-self-auto { align-self: auto !important } + .flex-sm-self-start { align-self: flex-start !important } + .flex-sm-self-end { align-self: flex-end !important } + .flex-sm-self-center { align-self: center !important } + .flex-sm-self-baseline { align-self: baseline !important } + .flex-sm-self-stretch { align-self: stretch !important } + .flex-sm-order-1 { order: 1 !important } + .flex-sm-order-2 { order: 2 !important } + .flex-sm-order-none { order: inherit !important } @@ -8222,108 +8404,143 @@ html[dir=rtl] .fa-arrow-circle-right:before { .flex-md-row { flex-direction: row !important } + .flex-md-row-reverse { flex-direction: row-reverse !important } + .flex-md-column { flex-direction: column !important } + .flex-md-column-reverse { flex-direction: column-reverse !important } + .flex-md-wrap { flex-wrap: wrap !important } + .flex-md-nowrap { flex-wrap: nowrap !important } + .flex-md-wrap-reverse { flex-wrap: wrap-reverse !important } + .flex-md-justify-start { justify-content: flex-start !important } + .flex-md-justify-end { justify-content: flex-end !important } + .flex-md-justify-center { justify-content: center !important } + .flex-md-justify-between { justify-content: space-between !important } + .flex-md-justify-around { justify-content: space-around !important } + .flex-md-items-start { align-items: flex-start !important } + .flex-md-items-end { align-items: flex-end !important } + .flex-md-items-center { align-items: center !important } + .flex-md-items-baseline { align-items: baseline !important } + .flex-md-items-stretch { align-items: stretch !important } + .flex-md-content-start { align-content: flex-start !important } + .flex-md-content-end { align-content: flex-end !important } + .flex-md-content-center { align-content: center !important } + .flex-md-content-between { align-content: space-between !important } + .flex-md-content-around { align-content: space-around !important } + .flex-md-content-stretch { align-content: stretch !important } + .flex-md-1 { flex: 1 !important } + .flex-md-auto { flex: auto !important } + .flex-md-grow-0 { flex-grow: 0 !important } + .flex-md-shrink-0 { flex-shrink: 0 !important } + .flex-md-self-auto { align-self: auto !important } + .flex-md-self-start { align-self: flex-start !important } + .flex-md-self-end { align-self: flex-end !important } + .flex-md-self-center { align-self: center !important } + .flex-md-self-baseline { align-self: baseline !important } + .flex-md-self-stretch { align-self: stretch !important } + .flex-md-order-1 { order: 1 !important } + .flex-md-order-2 { order: 2 !important } + .flex-md-order-none { order: inherit !important } @@ -8333,108 +8550,143 @@ html[dir=rtl] .fa-arrow-circle-right:before { .flex-lg-row { flex-direction: row !important } + .flex-lg-row-reverse { flex-direction: row-reverse !important } + .flex-lg-column { flex-direction: column !important } + .flex-lg-column-reverse { flex-direction: column-reverse !important } + .flex-lg-wrap { flex-wrap: wrap !important } + .flex-lg-nowrap { flex-wrap: nowrap !important } + .flex-lg-wrap-reverse { flex-wrap: wrap-reverse !important } + .flex-lg-justify-start { justify-content: flex-start !important } + .flex-lg-justify-end { justify-content: flex-end !important } + .flex-lg-justify-center { justify-content: center !important } + .flex-lg-justify-between { justify-content: space-between !important } + .flex-lg-justify-around { justify-content: space-around !important } + .flex-lg-items-start { align-items: flex-start !important } + .flex-lg-items-end { align-items: flex-end !important } + .flex-lg-items-center { align-items: center !important } + .flex-lg-items-baseline { align-items: baseline !important } + .flex-lg-items-stretch { align-items: stretch !important } + .flex-lg-content-start { align-content: flex-start !important } + .flex-lg-content-end { align-content: flex-end !important } + .flex-lg-content-center { align-content: center !important } + .flex-lg-content-between { align-content: space-between !important } + .flex-lg-content-around { align-content: space-around !important } + .flex-lg-content-stretch { align-content: stretch !important } + .flex-lg-1 { flex: 1 !important } + .flex-lg-auto { flex: auto !important } + .flex-lg-grow-0 { flex-grow: 0 !important } + .flex-lg-shrink-0 { flex-shrink: 0 !important } + .flex-lg-self-auto { align-self: auto !important } + .flex-lg-self-start { align-self: flex-start !important } + .flex-lg-self-end { align-self: flex-end !important } + .flex-lg-self-center { align-self: center !important } + .flex-lg-self-baseline { align-self: baseline !important } + .flex-lg-self-stretch { align-self: stretch !important } + .flex-lg-order-1 { order: 1 !important } + .flex-lg-order-2 { order: 2 !important } + .flex-lg-order-none { order: inherit !important } @@ -8444,108 +8696,143 @@ html[dir=rtl] .fa-arrow-circle-right:before { .flex-xl-row { flex-direction: row !important } + .flex-xl-row-reverse { flex-direction: row-reverse !important } + .flex-xl-column { flex-direction: column !important } + .flex-xl-column-reverse { flex-direction: column-reverse !important } + .flex-xl-wrap { flex-wrap: wrap !important } + .flex-xl-nowrap { flex-wrap: nowrap !important } + .flex-xl-wrap-reverse { flex-wrap: wrap-reverse !important } + .flex-xl-justify-start { justify-content: flex-start !important } + .flex-xl-justify-end { justify-content: flex-end !important } + .flex-xl-justify-center { justify-content: center !important } + .flex-xl-justify-between { justify-content: space-between !important } + .flex-xl-justify-around { justify-content: space-around !important } + .flex-xl-items-start { align-items: flex-start !important } + .flex-xl-items-end { align-items: flex-end !important } + .flex-xl-items-center { align-items: center !important } + .flex-xl-items-baseline { align-items: baseline !important } + .flex-xl-items-stretch { align-items: stretch !important } + .flex-xl-content-start { align-content: flex-start !important } + .flex-xl-content-end { align-content: flex-end !important } + .flex-xl-content-center { align-content: center !important } + .flex-xl-content-between { align-content: space-between !important } + .flex-xl-content-around { align-content: space-around !important } + .flex-xl-content-stretch { align-content: stretch !important } + .flex-xl-1 { flex: 1 !important } + .flex-xl-auto { flex: auto !important } + .flex-xl-grow-0 { flex-grow: 0 !important } + .flex-xl-shrink-0 { flex-shrink: 0 !important } + .flex-xl-self-auto { align-self: auto !important } + .flex-xl-self-start { align-self: flex-start !important } + .flex-xl-self-end { align-self: flex-end !important } + .flex-xl-self-center { align-self: center !important } + .flex-xl-self-baseline { align-self: baseline !important } + .flex-xl-self-stretch { align-self: stretch !important } + .flex-xl-order-1 { order: 1 !important } + .flex-xl-order-2 { order: 2 !important } + .flex-xl-order-none { order: inherit !important } @@ -8575,15 +8862,19 @@ html[dir=rtl] .fa-arrow-circle-right:before { .position-sm-static { position: static !important } + .position-sm-relative { position: relative !important } + .position-sm-absolute { position: absolute !important } + .position-sm-fixed { position: fixed !important } + .position-sm-sticky { position: sticky !important } @@ -8593,15 +8884,19 @@ html[dir=rtl] .fa-arrow-circle-right:before { .position-md-static { position: static !important } + .position-md-relative { position: relative !important } + .position-md-absolute { position: absolute !important } + .position-md-fixed { position: fixed !important } + .position-md-sticky { position: sticky !important } @@ -8611,15 +8906,19 @@ html[dir=rtl] .fa-arrow-circle-right:before { .position-lg-static { position: static !important } + .position-lg-relative { position: relative !important } + .position-lg-absolute { position: absolute !important } + .position-lg-fixed { position: fixed !important } + .position-lg-sticky { position: sticky !important } @@ -8629,15 +8928,19 @@ html[dir=rtl] .fa-arrow-circle-right:before { .position-xl-static { position: static !important } + .position-xl-relative { position: relative !important } + .position-xl-absolute { position: absolute !important } + .position-xl-fixed { position: fixed !important } + .position-xl-sticky { position: sticky !important } @@ -8679,24 +8982,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .top-sm-0 { top: 0 !important } + .right-sm-0 { right: 0 !important } + .bottom-sm-0 { bottom: 0 !important } + .left-sm-0 { left: 0 !important } + .top-sm-auto { top: auto !important } + .right-sm-auto { right: auto !important } + .bottom-sm-auto { bottom: auto !important } + .left-sm-auto { left: auto !important } @@ -8706,24 +9016,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .top-md-0 { top: 0 !important } + .right-md-0 { right: 0 !important } + .bottom-md-0 { bottom: 0 !important } + .left-md-0 { left: 0 !important } + .top-md-auto { top: auto !important } + .right-md-auto { right: auto !important } + .bottom-md-auto { bottom: auto !important } + .left-md-auto { left: auto !important } @@ -8733,24 +9050,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .top-lg-0 { top: 0 !important } + .right-lg-0 { right: 0 !important } + .bottom-lg-0 { bottom: 0 !important } + .left-lg-0 { left: 0 !important } + .top-lg-auto { top: auto !important } + .right-lg-auto { right: auto !important } + .bottom-lg-auto { bottom: auto !important } + .left-lg-auto { left: auto !important } @@ -8760,24 +9084,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .top-xl-0 { top: 0 !important } + .right-xl-0 { right: 0 !important } + .bottom-xl-0 { bottom: 0 !important } + .left-xl-0 { left: 0 !important } + .top-xl-auto { top: auto !important } + .right-xl-auto { right: auto !important } + .bottom-xl-auto { bottom: auto !important } + .left-xl-auto { left: auto !important } @@ -8859,36 +9190,47 @@ html[dir=rtl] .fa-arrow-circle-right:before { .overflow-sm-visible { overflow: visible !important } + .overflow-sm-x-visible { overflow-x: visible !important } + .overflow-sm-y-visible { overflow-y: visible !important } + .overflow-sm-hidden { overflow: hidden !important } + .overflow-sm-x-hidden { overflow-x: hidden !important } + .overflow-sm-y-hidden { overflow-y: hidden !important } + .overflow-sm-auto { overflow: auto !important } + .overflow-sm-x-auto { overflow-x: auto !important } + .overflow-sm-y-auto { overflow-y: auto !important } + .overflow-sm-scroll { overflow: scroll !important } + .overflow-sm-x-scroll { overflow-x: scroll !important } + .overflow-sm-y-scroll { overflow-y: scroll !important } @@ -8898,36 +9240,47 @@ html[dir=rtl] .fa-arrow-circle-right:before { .overflow-md-visible { overflow: visible !important } + .overflow-md-x-visible { overflow-x: visible !important } + .overflow-md-y-visible { overflow-y: visible !important } + .overflow-md-hidden { overflow: hidden !important } + .overflow-md-x-hidden { overflow-x: hidden !important } + .overflow-md-y-hidden { overflow-y: hidden !important } + .overflow-md-auto { overflow: auto !important } + .overflow-md-x-auto { overflow-x: auto !important } + .overflow-md-y-auto { overflow-y: auto !important } + .overflow-md-scroll { overflow: scroll !important } + .overflow-md-x-scroll { overflow-x: scroll !important } + .overflow-md-y-scroll { overflow-y: scroll !important } @@ -8937,36 +9290,47 @@ html[dir=rtl] .fa-arrow-circle-right:before { .overflow-lg-visible { overflow: visible !important } + .overflow-lg-x-visible { overflow-x: visible !important } + .overflow-lg-y-visible { overflow-y: visible !important } + .overflow-lg-hidden { overflow: hidden !important } + .overflow-lg-x-hidden { overflow-x: hidden !important } + .overflow-lg-y-hidden { overflow-y: hidden !important } + .overflow-lg-auto { overflow: auto !important } + .overflow-lg-x-auto { overflow-x: auto !important } + .overflow-lg-y-auto { overflow-y: auto !important } + .overflow-lg-scroll { overflow: scroll !important } + .overflow-lg-x-scroll { overflow-x: scroll !important } + .overflow-lg-y-scroll { overflow-y: scroll !important } @@ -8976,36 +9340,47 @@ html[dir=rtl] .fa-arrow-circle-right:before { .overflow-xl-visible { overflow: visible !important } + .overflow-xl-x-visible { overflow-x: visible !important } + .overflow-xl-y-visible { overflow-y: visible !important } + .overflow-xl-hidden { overflow: hidden !important } + .overflow-xl-x-hidden { overflow-x: hidden !important } + .overflow-xl-y-hidden { overflow-y: hidden !important } + .overflow-xl-auto { overflow: auto !important } + .overflow-xl-x-auto { overflow-x: auto !important } + .overflow-xl-y-auto { overflow-y: auto !important } + .overflow-xl-scroll { overflow: scroll !important } + .overflow-xl-x-scroll { overflow-x: scroll !important } + .overflow-xl-y-scroll { overflow-y: scroll !important } @@ -9038,9 +9413,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .float-sm-left { float: left !important } + .float-sm-right { float: right !important } + .float-sm-none { float: none !important } @@ -9050,9 +9427,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .float-md-left { float: left !important } + .float-md-right { float: right !important } + .float-md-none { float: none !important } @@ -9062,9 +9441,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .float-lg-left { float: left !important } + .float-lg-right { float: right !important } + .float-lg-none { float: none !important } @@ -9074,9 +9455,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .float-xl-left { float: left !important } + .float-xl-right { float: right !important } + .float-xl-none { float: none !important } @@ -9118,9 +9501,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .width-sm-auto { width: auto !important } + .direction-sm-rtl { direction: rtl !important } + .direction-sm-ltr { direction: ltr !important } @@ -9130,9 +9515,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .width-md-auto { width: auto !important } + .direction-md-rtl { direction: rtl !important } + .direction-md-ltr { direction: ltr !important } @@ -9142,9 +9529,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .width-lg-auto { width: auto !important } + .direction-lg-rtl { direction: rtl !important } + .direction-lg-ltr { direction: ltr !important } @@ -9154,9 +9543,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .width-xl-auto { width: auto !important } + .direction-xl-rtl { direction: rtl !important } + .direction-xl-ltr { direction: ltr !important } @@ -9477,236 +9868,309 @@ html[dir=rtl] .fa-arrow-circle-right:before { .m-sm-0 { margin: 0 !important } + .mt-sm-0 { margin-top: 0 !important } + .mr-sm-0 { margin-right: 0 !important } + .mb-sm-0 { margin-bottom: 0 !important } + .ml-sm-0 { margin-left: 0 !important } + .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important } + .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important } + .m-sm-1 { margin: 4px !important } + .mt-sm-1 { margin-top: 4px !important } + .mr-sm-1 { margin-right: 4px !important } + .mb-sm-1 { margin-bottom: 4px !important } + .ml-sm-1 { margin-left: 4px !important } + .mt-sm-n1 { margin-top: -4px !important } + .mr-sm-n1 { margin-right: -4px !important } + .mb-sm-n1 { margin-bottom: -4px !important } + .ml-sm-n1 { margin-left: -4px !important } + .mx-sm-1 { margin-right: 4px !important; margin-left: 4px !important } + .my-sm-1 { margin-top: 4px !important; margin-bottom: 4px !important } + .m-sm-2 { margin: 8px !important } + .mt-sm-2 { margin-top: 8px !important } + .mr-sm-2 { margin-right: 8px !important } + .mb-sm-2 { margin-bottom: 8px !important } + .ml-sm-2 { margin-left: 8px !important } + .mt-sm-n2 { margin-top: -8px !important } + .mr-sm-n2 { margin-right: -8px !important } + .mb-sm-n2 { margin-bottom: -8px !important } + .ml-sm-n2 { margin-left: -8px !important } + .mx-sm-2 { margin-right: 8px !important; margin-left: 8px !important } + .my-sm-2 { margin-top: 8px !important; margin-bottom: 8px !important } + .m-sm-3 { margin: 16px !important } + .mt-sm-3 { margin-top: 16px !important } + .mr-sm-3 { margin-right: 16px !important } + .mb-sm-3 { margin-bottom: 16px !important } + .ml-sm-3 { margin-left: 16px !important } + .mt-sm-n3 { margin-top: -16px !important } + .mr-sm-n3 { margin-right: -16px !important } + .mb-sm-n3 { margin-bottom: -16px !important } + .ml-sm-n3 { margin-left: -16px !important } + .mx-sm-3 { margin-right: 16px !important; margin-left: 16px !important } + .my-sm-3 { margin-top: 16px !important; margin-bottom: 16px !important } + .m-sm-4 { margin: 24px !important } + .mt-sm-4 { margin-top: 24px !important } + .mr-sm-4 { margin-right: 24px !important } + .mb-sm-4 { margin-bottom: 24px !important } + .ml-sm-4 { margin-left: 24px !important } + .mt-sm-n4 { margin-top: -24px !important } + .mr-sm-n4 { margin-right: -24px !important } + .mb-sm-n4 { margin-bottom: -24px !important } + .ml-sm-n4 { margin-left: -24px !important } + .mx-sm-4 { margin-right: 24px !important; margin-left: 24px !important } + .my-sm-4 { margin-top: 24px !important; margin-bottom: 24px !important } + .m-sm-5 { margin: 32px !important } + .mt-sm-5 { margin-top: 32px !important } + .mr-sm-5 { margin-right: 32px !important } + .mb-sm-5 { margin-bottom: 32px !important } + .ml-sm-5 { margin-left: 32px !important } + .mt-sm-n5 { margin-top: -32px !important } + .mr-sm-n5 { margin-right: -32px !important } + .mb-sm-n5 { margin-bottom: -32px !important } + .ml-sm-n5 { margin-left: -32px !important } + .mx-sm-5 { margin-right: 32px !important; margin-left: 32px !important } + .my-sm-5 { margin-top: 32px !important; margin-bottom: 32px !important } + .m-sm-6 { margin: 40px !important } + .mt-sm-6 { margin-top: 40px !important } + .mr-sm-6 { margin-right: 40px !important } + .mb-sm-6 { margin-bottom: 40px !important } + .ml-sm-6 { margin-left: 40px !important } + .mt-sm-n6 { margin-top: -40px !important } + .mr-sm-n6 { margin-right: -40px !important } + .mb-sm-n6 { margin-bottom: -40px !important } + .ml-sm-n6 { margin-left: -40px !important } + .mx-sm-6 { margin-right: 40px !important; margin-left: 40px !important } + .my-sm-6 { margin-top: 40px !important; margin-bottom: 40px !important } + .mx-sm-auto { margin-right: auto !important; margin-left: auto !important @@ -9717,236 +10181,309 @@ html[dir=rtl] .fa-arrow-circle-right:before { .m-md-0 { margin: 0 !important } + .mt-md-0 { margin-top: 0 !important } + .mr-md-0 { margin-right: 0 !important } + .mb-md-0 { margin-bottom: 0 !important } + .ml-md-0 { margin-left: 0 !important } + .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important } + .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important } + .m-md-1 { margin: 4px !important } + .mt-md-1 { margin-top: 4px !important } + .mr-md-1 { margin-right: 4px !important } + .mb-md-1 { margin-bottom: 4px !important } + .ml-md-1 { margin-left: 4px !important } + .mt-md-n1 { margin-top: -4px !important } + .mr-md-n1 { margin-right: -4px !important } + .mb-md-n1 { margin-bottom: -4px !important } + .ml-md-n1 { margin-left: -4px !important } + .mx-md-1 { margin-right: 4px !important; margin-left: 4px !important } + .my-md-1 { margin-top: 4px !important; margin-bottom: 4px !important } + .m-md-2 { margin: 8px !important } + .mt-md-2 { margin-top: 8px !important } + .mr-md-2 { margin-right: 8px !important } + .mb-md-2 { margin-bottom: 8px !important } + .ml-md-2 { margin-left: 8px !important } + .mt-md-n2 { margin-top: -8px !important } + .mr-md-n2 { margin-right: -8px !important } + .mb-md-n2 { margin-bottom: -8px !important } + .ml-md-n2 { margin-left: -8px !important } + .mx-md-2 { margin-right: 8px !important; margin-left: 8px !important } + .my-md-2 { margin-top: 8px !important; margin-bottom: 8px !important } + .m-md-3 { margin: 16px !important } + .mt-md-3 { margin-top: 16px !important } + .mr-md-3 { margin-right: 16px !important } + .mb-md-3 { margin-bottom: 16px !important } + .ml-md-3 { margin-left: 16px !important } + .mt-md-n3 { margin-top: -16px !important } + .mr-md-n3 { margin-right: -16px !important } + .mb-md-n3 { margin-bottom: -16px !important } + .ml-md-n3 { margin-left: -16px !important } + .mx-md-3 { margin-right: 16px !important; margin-left: 16px !important } + .my-md-3 { margin-top: 16px !important; margin-bottom: 16px !important } + .m-md-4 { margin: 24px !important } + .mt-md-4 { margin-top: 24px !important } + .mr-md-4 { margin-right: 24px !important } + .mb-md-4 { margin-bottom: 24px !important } + .ml-md-4 { margin-left: 24px !important } + .mt-md-n4 { margin-top: -24px !important } + .mr-md-n4 { margin-right: -24px !important } + .mb-md-n4 { margin-bottom: -24px !important } + .ml-md-n4 { margin-left: -24px !important } + .mx-md-4 { margin-right: 24px !important; margin-left: 24px !important } + .my-md-4 { margin-top: 24px !important; margin-bottom: 24px !important } + .m-md-5 { margin: 32px !important } + .mt-md-5 { margin-top: 32px !important } + .mr-md-5 { margin-right: 32px !important } + .mb-md-5 { margin-bottom: 32px !important } + .ml-md-5 { margin-left: 32px !important } + .mt-md-n5 { margin-top: -32px !important } + .mr-md-n5 { margin-right: -32px !important } + .mb-md-n5 { margin-bottom: -32px !important } + .ml-md-n5 { margin-left: -32px !important } + .mx-md-5 { margin-right: 32px !important; margin-left: 32px !important } + .my-md-5 { margin-top: 32px !important; margin-bottom: 32px !important } + .m-md-6 { margin: 40px !important } + .mt-md-6 { margin-top: 40px !important } + .mr-md-6 { margin-right: 40px !important } + .mb-md-6 { margin-bottom: 40px !important } + .ml-md-6 { margin-left: 40px !important } + .mt-md-n6 { margin-top: -40px !important } + .mr-md-n6 { margin-right: -40px !important } + .mb-md-n6 { margin-bottom: -40px !important } + .ml-md-n6 { margin-left: -40px !important } + .mx-md-6 { margin-right: 40px !important; margin-left: 40px !important } + .my-md-6 { margin-top: 40px !important; margin-bottom: 40px !important } + .mx-md-auto { margin-right: auto !important; margin-left: auto !important @@ -9957,236 +10494,309 @@ html[dir=rtl] .fa-arrow-circle-right:before { .m-lg-0 { margin: 0 !important } + .mt-lg-0 { margin-top: 0 !important } + .mr-lg-0 { margin-right: 0 !important } + .mb-lg-0 { margin-bottom: 0 !important } + .ml-lg-0 { margin-left: 0 !important } + .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important } + .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important } + .m-lg-1 { margin: 4px !important } + .mt-lg-1 { margin-top: 4px !important } + .mr-lg-1 { margin-right: 4px !important } + .mb-lg-1 { margin-bottom: 4px !important } + .ml-lg-1 { margin-left: 4px !important } + .mt-lg-n1 { margin-top: -4px !important } + .mr-lg-n1 { margin-right: -4px !important } + .mb-lg-n1 { margin-bottom: -4px !important } + .ml-lg-n1 { margin-left: -4px !important } + .mx-lg-1 { margin-right: 4px !important; margin-left: 4px !important } + .my-lg-1 { margin-top: 4px !important; margin-bottom: 4px !important } + .m-lg-2 { margin: 8px !important } + .mt-lg-2 { margin-top: 8px !important } + .mr-lg-2 { margin-right: 8px !important } + .mb-lg-2 { margin-bottom: 8px !important } + .ml-lg-2 { margin-left: 8px !important } + .mt-lg-n2 { margin-top: -8px !important } + .mr-lg-n2 { margin-right: -8px !important } + .mb-lg-n2 { margin-bottom: -8px !important } + .ml-lg-n2 { margin-left: -8px !important } + .mx-lg-2 { margin-right: 8px !important; margin-left: 8px !important } + .my-lg-2 { margin-top: 8px !important; margin-bottom: 8px !important } + .m-lg-3 { margin: 16px !important } + .mt-lg-3 { margin-top: 16px !important } + .mr-lg-3 { margin-right: 16px !important } + .mb-lg-3 { margin-bottom: 16px !important } + .ml-lg-3 { margin-left: 16px !important } + .mt-lg-n3 { margin-top: -16px !important } + .mr-lg-n3 { margin-right: -16px !important } + .mb-lg-n3 { margin-bottom: -16px !important } + .ml-lg-n3 { margin-left: -16px !important } + .mx-lg-3 { margin-right: 16px !important; margin-left: 16px !important } + .my-lg-3 { margin-top: 16px !important; margin-bottom: 16px !important } + .m-lg-4 { margin: 24px !important } + .mt-lg-4 { margin-top: 24px !important } + .mr-lg-4 { margin-right: 24px !important } + .mb-lg-4 { margin-bottom: 24px !important } + .ml-lg-4 { margin-left: 24px !important } + .mt-lg-n4 { margin-top: -24px !important } + .mr-lg-n4 { margin-right: -24px !important } + .mb-lg-n4 { margin-bottom: -24px !important } + .ml-lg-n4 { margin-left: -24px !important } + .mx-lg-4 { margin-right: 24px !important; margin-left: 24px !important } + .my-lg-4 { margin-top: 24px !important; margin-bottom: 24px !important } + .m-lg-5 { margin: 32px !important } + .mt-lg-5 { margin-top: 32px !important } + .mr-lg-5 { margin-right: 32px !important } + .mb-lg-5 { margin-bottom: 32px !important } + .ml-lg-5 { margin-left: 32px !important } + .mt-lg-n5 { margin-top: -32px !important } + .mr-lg-n5 { margin-right: -32px !important } + .mb-lg-n5 { margin-bottom: -32px !important } + .ml-lg-n5 { margin-left: -32px !important } + .mx-lg-5 { margin-right: 32px !important; margin-left: 32px !important } + .my-lg-5 { margin-top: 32px !important; margin-bottom: 32px !important } + .m-lg-6 { margin: 40px !important } + .mt-lg-6 { margin-top: 40px !important } + .mr-lg-6 { margin-right: 40px !important } + .mb-lg-6 { margin-bottom: 40px !important } + .ml-lg-6 { margin-left: 40px !important } + .mt-lg-n6 { margin-top: -40px !important } + .mr-lg-n6 { margin-right: -40px !important } + .mb-lg-n6 { margin-bottom: -40px !important } + .ml-lg-n6 { margin-left: -40px !important } + .mx-lg-6 { margin-right: 40px !important; margin-left: 40px !important } + .my-lg-6 { margin-top: 40px !important; margin-bottom: 40px !important } + .mx-lg-auto { margin-right: auto !important; margin-left: auto !important @@ -10197,236 +10807,309 @@ html[dir=rtl] .fa-arrow-circle-right:before { .m-xl-0 { margin: 0 !important } + .mt-xl-0 { margin-top: 0 !important } + .mr-xl-0 { margin-right: 0 !important } + .mb-xl-0 { margin-bottom: 0 !important } + .ml-xl-0 { margin-left: 0 !important } + .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important } + .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important } + .m-xl-1 { margin: 4px !important } + .mt-xl-1 { margin-top: 4px !important } + .mr-xl-1 { margin-right: 4px !important } + .mb-xl-1 { margin-bottom: 4px !important } + .ml-xl-1 { margin-left: 4px !important } + .mt-xl-n1 { margin-top: -4px !important } + .mr-xl-n1 { margin-right: -4px !important } + .mb-xl-n1 { margin-bottom: -4px !important } + .ml-xl-n1 { margin-left: -4px !important } + .mx-xl-1 { margin-right: 4px !important; margin-left: 4px !important } + .my-xl-1 { margin-top: 4px !important; margin-bottom: 4px !important } + .m-xl-2 { margin: 8px !important } + .mt-xl-2 { margin-top: 8px !important } + .mr-xl-2 { margin-right: 8px !important } + .mb-xl-2 { margin-bottom: 8px !important } + .ml-xl-2 { margin-left: 8px !important } + .mt-xl-n2 { margin-top: -8px !important } + .mr-xl-n2 { margin-right: -8px !important } + .mb-xl-n2 { margin-bottom: -8px !important } + .ml-xl-n2 { margin-left: -8px !important } + .mx-xl-2 { margin-right: 8px !important; margin-left: 8px !important } + .my-xl-2 { margin-top: 8px !important; margin-bottom: 8px !important } + .m-xl-3 { margin: 16px !important } + .mt-xl-3 { margin-top: 16px !important } + .mr-xl-3 { margin-right: 16px !important } + .mb-xl-3 { margin-bottom: 16px !important } + .ml-xl-3 { margin-left: 16px !important } + .mt-xl-n3 { margin-top: -16px !important } + .mr-xl-n3 { margin-right: -16px !important } + .mb-xl-n3 { margin-bottom: -16px !important } + .ml-xl-n3 { margin-left: -16px !important } + .mx-xl-3 { margin-right: 16px !important; margin-left: 16px !important } + .my-xl-3 { margin-top: 16px !important; margin-bottom: 16px !important } + .m-xl-4 { margin: 24px !important } + .mt-xl-4 { margin-top: 24px !important } + .mr-xl-4 { margin-right: 24px !important } + .mb-xl-4 { margin-bottom: 24px !important } + .ml-xl-4 { margin-left: 24px !important } + .mt-xl-n4 { margin-top: -24px !important } + .mr-xl-n4 { margin-right: -24px !important } + .mb-xl-n4 { margin-bottom: -24px !important } + .ml-xl-n4 { margin-left: -24px !important } + .mx-xl-4 { margin-right: 24px !important; margin-left: 24px !important } + .my-xl-4 { margin-top: 24px !important; margin-bottom: 24px !important } + .m-xl-5 { margin: 32px !important } + .mt-xl-5 { margin-top: 32px !important } + .mr-xl-5 { margin-right: 32px !important } + .mb-xl-5 { margin-bottom: 32px !important } + .ml-xl-5 { margin-left: 32px !important } + .mt-xl-n5 { margin-top: -32px !important } + .mr-xl-n5 { margin-right: -32px !important } + .mb-xl-n5 { margin-bottom: -32px !important } + .ml-xl-n5 { margin-left: -32px !important } + .mx-xl-5 { margin-right: 32px !important; margin-left: 32px !important } + .my-xl-5 { margin-top: 32px !important; margin-bottom: 32px !important } + .m-xl-6 { margin: 40px !important } + .mt-xl-6 { margin-top: 40px !important } + .mr-xl-6 { margin-right: 40px !important } + .mb-xl-6 { margin-bottom: 40px !important } + .ml-xl-6 { margin-left: 40px !important } + .mt-xl-n6 { margin-top: -40px !important } + .mr-xl-n6 { margin-right: -40px !important } + .mb-xl-n6 { margin-bottom: -40px !important } + .ml-xl-n6 { margin-left: -40px !important } + .mx-xl-6 { margin-right: 40px !important; margin-left: 40px !important } + .my-xl-6 { margin-top: 40px !important; margin-bottom: 40px !important } + .mx-xl-auto { margin-right: auto !important; margin-left: auto !important @@ -10647,160 +11330,208 @@ html[dir=rtl] .fa-arrow-circle-right:before { .p-sm-0 { padding: 0 !important } + .pt-sm-0 { padding-top: 0 !important } + .pr-sm-0 { padding-right: 0 !important } + .pb-sm-0 { padding-bottom: 0 !important } + .pl-sm-0 { padding-left: 0 !important } + .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important } + .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important } + .p-sm-1 { padding: 4px !important } + .pt-sm-1 { padding-top: 4px !important } + .pr-sm-1 { padding-right: 4px !important } + .pb-sm-1 { padding-bottom: 4px !important } + .pl-sm-1 { padding-left: 4px !important } + .px-sm-1 { padding-right: 4px !important; padding-left: 4px !important } + .py-sm-1 { padding-top: 4px !important; padding-bottom: 4px !important } + .p-sm-2 { padding: 8px !important } + .pt-sm-2 { padding-top: 8px !important } + .pr-sm-2 { padding-right: 8px !important } + .pb-sm-2 { padding-bottom: 8px !important } + .pl-sm-2 { padding-left: 8px !important } + .px-sm-2 { padding-right: 8px !important; padding-left: 8px !important } + .py-sm-2 { padding-top: 8px !important; padding-bottom: 8px !important } + .p-sm-3 { padding: 16px !important } + .pt-sm-3 { padding-top: 16px !important } + .pr-sm-3 { padding-right: 16px !important } + .pb-sm-3 { padding-bottom: 16px !important } + .pl-sm-3 { padding-left: 16px !important } + .px-sm-3 { padding-right: 16px !important; padding-left: 16px !important } + .py-sm-3 { padding-top: 16px !important; padding-bottom: 16px !important } + .p-sm-4 { padding: 24px !important } + .pt-sm-4 { padding-top: 24px !important } + .pr-sm-4 { padding-right: 24px !important } + .pb-sm-4 { padding-bottom: 24px !important } + .pl-sm-4 { padding-left: 24px !important } + .px-sm-4 { padding-right: 24px !important; padding-left: 24px !important } + .py-sm-4 { padding-top: 24px !important; padding-bottom: 24px !important } + .p-sm-5 { padding: 32px !important } + .pt-sm-5 { padding-top: 32px !important } + .pr-sm-5 { padding-right: 32px !important } + .pb-sm-5 { padding-bottom: 32px !important } + .pl-sm-5 { padding-left: 32px !important } + .px-sm-5 { padding-right: 32px !important; padding-left: 32px !important } + .py-sm-5 { padding-top: 32px !important; padding-bottom: 32px !important } + .p-sm-6 { padding: 40px !important } + .pt-sm-6 { padding-top: 40px !important } + .pr-sm-6 { padding-right: 40px !important } + .pb-sm-6 { padding-bottom: 40px !important } + .pl-sm-6 { padding-left: 40px !important } + .px-sm-6 { padding-right: 40px !important; padding-left: 40px !important } + .py-sm-6 { padding-top: 40px !important; padding-bottom: 40px !important @@ -10811,160 +11542,208 @@ html[dir=rtl] .fa-arrow-circle-right:before { .p-md-0 { padding: 0 !important } + .pt-md-0 { padding-top: 0 !important } + .pr-md-0 { padding-right: 0 !important } + .pb-md-0 { padding-bottom: 0 !important } + .pl-md-0 { padding-left: 0 !important } + .px-md-0 { padding-right: 0 !important; padding-left: 0 !important } + .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important } + .p-md-1 { padding: 4px !important } + .pt-md-1 { padding-top: 4px !important } + .pr-md-1 { padding-right: 4px !important } + .pb-md-1 { padding-bottom: 4px !important } + .pl-md-1 { padding-left: 4px !important } + .px-md-1 { padding-right: 4px !important; padding-left: 4px !important } + .py-md-1 { padding-top: 4px !important; padding-bottom: 4px !important } + .p-md-2 { padding: 8px !important } + .pt-md-2 { padding-top: 8px !important } + .pr-md-2 { padding-right: 8px !important } + .pb-md-2 { padding-bottom: 8px !important } + .pl-md-2 { padding-left: 8px !important } + .px-md-2 { padding-right: 8px !important; padding-left: 8px !important } + .py-md-2 { padding-top: 8px !important; padding-bottom: 8px !important } + .p-md-3 { padding: 16px !important } + .pt-md-3 { padding-top: 16px !important } + .pr-md-3 { padding-right: 16px !important } + .pb-md-3 { padding-bottom: 16px !important } + .pl-md-3 { padding-left: 16px !important } + .px-md-3 { padding-right: 16px !important; padding-left: 16px !important } + .py-md-3 { padding-top: 16px !important; padding-bottom: 16px !important } + .p-md-4 { padding: 24px !important } + .pt-md-4 { padding-top: 24px !important } + .pr-md-4 { padding-right: 24px !important } + .pb-md-4 { padding-bottom: 24px !important } + .pl-md-4 { padding-left: 24px !important } + .px-md-4 { padding-right: 24px !important; padding-left: 24px !important } + .py-md-4 { padding-top: 24px !important; padding-bottom: 24px !important } + .p-md-5 { padding: 32px !important } + .pt-md-5 { padding-top: 32px !important } + .pr-md-5 { padding-right: 32px !important } + .pb-md-5 { padding-bottom: 32px !important } + .pl-md-5 { padding-left: 32px !important } + .px-md-5 { padding-right: 32px !important; padding-left: 32px !important } + .py-md-5 { padding-top: 32px !important; padding-bottom: 32px !important } + .p-md-6 { padding: 40px !important } + .pt-md-6 { padding-top: 40px !important } + .pr-md-6 { padding-right: 40px !important } + .pb-md-6 { padding-bottom: 40px !important } + .pl-md-6 { padding-left: 40px !important } + .px-md-6 { padding-right: 40px !important; padding-left: 40px !important } + .py-md-6 { padding-top: 40px !important; padding-bottom: 40px !important @@ -10975,160 +11754,208 @@ html[dir=rtl] .fa-arrow-circle-right:before { .p-lg-0 { padding: 0 !important } + .pt-lg-0 { padding-top: 0 !important } + .pr-lg-0 { padding-right: 0 !important } + .pb-lg-0 { padding-bottom: 0 !important } + .pl-lg-0 { padding-left: 0 !important } + .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important } + .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important } + .p-lg-1 { padding: 4px !important } + .pt-lg-1 { padding-top: 4px !important } + .pr-lg-1 { padding-right: 4px !important } + .pb-lg-1 { padding-bottom: 4px !important } + .pl-lg-1 { padding-left: 4px !important } + .px-lg-1 { padding-right: 4px !important; padding-left: 4px !important } + .py-lg-1 { padding-top: 4px !important; padding-bottom: 4px !important } + .p-lg-2 { padding: 8px !important } + .pt-lg-2 { padding-top: 8px !important } + .pr-lg-2 { padding-right: 8px !important } + .pb-lg-2 { padding-bottom: 8px !important } + .pl-lg-2 { padding-left: 8px !important } + .px-lg-2 { padding-right: 8px !important; padding-left: 8px !important } + .py-lg-2 { padding-top: 8px !important; padding-bottom: 8px !important } + .p-lg-3 { padding: 16px !important } + .pt-lg-3 { padding-top: 16px !important } + .pr-lg-3 { padding-right: 16px !important } + .pb-lg-3 { padding-bottom: 16px !important } + .pl-lg-3 { padding-left: 16px !important } + .px-lg-3 { padding-right: 16px !important; padding-left: 16px !important } + .py-lg-3 { padding-top: 16px !important; padding-bottom: 16px !important } + .p-lg-4 { padding: 24px !important } + .pt-lg-4 { padding-top: 24px !important } + .pr-lg-4 { padding-right: 24px !important } + .pb-lg-4 { padding-bottom: 24px !important } + .pl-lg-4 { padding-left: 24px !important } + .px-lg-4 { padding-right: 24px !important; padding-left: 24px !important } + .py-lg-4 { padding-top: 24px !important; padding-bottom: 24px !important } + .p-lg-5 { padding: 32px !important } + .pt-lg-5 { padding-top: 32px !important } + .pr-lg-5 { padding-right: 32px !important } + .pb-lg-5 { padding-bottom: 32px !important } + .pl-lg-5 { padding-left: 32px !important } + .px-lg-5 { padding-right: 32px !important; padding-left: 32px !important } + .py-lg-5 { padding-top: 32px !important; padding-bottom: 32px !important } + .p-lg-6 { padding: 40px !important } + .pt-lg-6 { padding-top: 40px !important } + .pr-lg-6 { padding-right: 40px !important } + .pb-lg-6 { padding-bottom: 40px !important } + .pl-lg-6 { padding-left: 40px !important } + .px-lg-6 { padding-right: 40px !important; padding-left: 40px !important } + .py-lg-6 { padding-top: 40px !important; padding-bottom: 40px !important @@ -11139,160 +11966,208 @@ html[dir=rtl] .fa-arrow-circle-right:before { .p-xl-0 { padding: 0 !important } + .pt-xl-0 { padding-top: 0 !important } + .pr-xl-0 { padding-right: 0 !important } + .pb-xl-0 { padding-bottom: 0 !important } + .pl-xl-0 { padding-left: 0 !important } + .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important } + .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important } + .p-xl-1 { padding: 4px !important } + .pt-xl-1 { padding-top: 4px !important } + .pr-xl-1 { padding-right: 4px !important } + .pb-xl-1 { padding-bottom: 4px !important } + .pl-xl-1 { padding-left: 4px !important } + .px-xl-1 { padding-right: 4px !important; padding-left: 4px !important } + .py-xl-1 { padding-top: 4px !important; padding-bottom: 4px !important } + .p-xl-2 { padding: 8px !important } + .pt-xl-2 { padding-top: 8px !important } + .pr-xl-2 { padding-right: 8px !important } + .pb-xl-2 { padding-bottom: 8px !important } + .pl-xl-2 { padding-left: 8px !important } + .px-xl-2 { padding-right: 8px !important; padding-left: 8px !important } + .py-xl-2 { padding-top: 8px !important; padding-bottom: 8px !important } + .p-xl-3 { padding: 16px !important } + .pt-xl-3 { padding-top: 16px !important } + .pr-xl-3 { padding-right: 16px !important } + .pb-xl-3 { padding-bottom: 16px !important } + .pl-xl-3 { padding-left: 16px !important } + .px-xl-3 { padding-right: 16px !important; padding-left: 16px !important } + .py-xl-3 { padding-top: 16px !important; padding-bottom: 16px !important } + .p-xl-4 { padding: 24px !important } + .pt-xl-4 { padding-top: 24px !important } + .pr-xl-4 { padding-right: 24px !important } + .pb-xl-4 { padding-bottom: 24px !important } + .pl-xl-4 { padding-left: 24px !important } + .px-xl-4 { padding-right: 24px !important; padding-left: 24px !important } + .py-xl-4 { padding-top: 24px !important; padding-bottom: 24px !important } + .p-xl-5 { padding: 32px !important } + .pt-xl-5 { padding-top: 32px !important } + .pr-xl-5 { padding-right: 32px !important } + .pb-xl-5 { padding-bottom: 32px !important } + .pl-xl-5 { padding-left: 32px !important } + .px-xl-5 { padding-right: 32px !important; padding-left: 32px !important } + .py-xl-5 { padding-top: 32px !important; padding-bottom: 32px !important } + .p-xl-6 { padding: 40px !important } + .pt-xl-6 { padding-top: 40px !important } + .pr-xl-6 { padding-right: 40px !important } + .pb-xl-6 { padding-bottom: 40px !important } + .pl-xl-6 { padding-left: 40px !important } + .px-xl-6 { padding-right: 40px !important; padding-left: 40px !important } + .py-xl-6 { padding-top: 40px !important; padding-bottom: 40px !important @@ -11503,12 +12378,15 @@ html[dir=rtl] .fa-arrow-circle-right:before { .lh-sm-condensed-ultra { line-height: 1 !important } + .lh-sm-condensed { line-height: 1.25 !important } + .lh-sm-default { line-height: 1.5 !important } + .lh-sm-0 { line-height: 0 !important } @@ -11518,12 +12396,15 @@ html[dir=rtl] .fa-arrow-circle-right:before { .lh-md-condensed-ultra { line-height: 1 !important } + .lh-md-condensed { line-height: 1.25 !important } + .lh-md-default { line-height: 1.5 !important } + .lh-md-0 { line-height: 0 !important } @@ -11533,12 +12414,15 @@ html[dir=rtl] .fa-arrow-circle-right:before { .lh-lg-condensed-ultra { line-height: 1 !important } + .lh-lg-condensed { line-height: 1.25 !important } + .lh-lg-default { line-height: 1.5 !important } + .lh-lg-0 { line-height: 0 !important } @@ -11548,12 +12432,15 @@ html[dir=rtl] .fa-arrow-circle-right:before { .lh-xl-condensed-ultra { line-height: 1 !important } + .lh-xl-condensed { line-height: 1.25 !important } + .lh-xl-default { line-height: 1.5 !important } + .lh-xl-0 { line-height: 0 !important } @@ -11575,9 +12462,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .text-sm-right { text-align: right !important } + .text-sm-left { text-align: left !important } + .text-sm-center { text-align: center !important } @@ -11587,9 +12476,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .text-md-right { text-align: right !important } + .text-md-left { text-align: left !important } + .text-md-center { text-align: center !important } @@ -11599,9 +12490,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .text-lg-right { text-align: right !important } + .text-lg-left { text-align: left !important } + .text-lg-center { text-align: center !important } @@ -11611,9 +12504,11 @@ html[dir=rtl] .fa-arrow-circle-right:before { .text-xl-right { text-align: right !important } + .text-xl-left { text-align: left !important } + .text-xl-center { text-align: center !important } @@ -11734,24 +12629,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .d-sm-block { display: block !important } + .d-sm-flex { display: flex !important } + .d-sm-inline { display: inline !important } + .d-sm-inline-block { display: inline-block !important } + .d-sm-inline-flex { display: inline-flex !important } + .d-sm-none { display: none !important } + .d-sm-table { display: table !important } + .d-sm-table-cell { display: table-cell !important } @@ -11761,24 +12663,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .d-md-block { display: block !important } + .d-md-flex { display: flex !important } + .d-md-inline { display: inline !important } + .d-md-inline-block { display: inline-block !important } + .d-md-inline-flex { display: inline-flex !important } + .d-md-none { display: none !important } + .d-md-table { display: table !important } + .d-md-table-cell { display: table-cell !important } @@ -11788,24 +12697,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .d-lg-block { display: block !important } + .d-lg-flex { display: flex !important } + .d-lg-inline { display: inline !important } + .d-lg-inline-block { display: inline-block !important } + .d-lg-inline-flex { display: inline-flex !important } + .d-lg-none { display: none !important } + .d-lg-table { display: table !important } + .d-lg-table-cell { display: table-cell !important } @@ -11815,24 +12731,31 @@ html[dir=rtl] .fa-arrow-circle-right:before { .d-xl-block { display: block !important } + .d-xl-flex { display: flex !important } + .d-xl-inline { display: inline !important } + .d-xl-inline-block { display: inline-block !important } + .d-xl-inline-flex { display: inline-flex !important } + .d-xl-none { display: none !important } + .d-xl-table { display: table !important } + .d-xl-table-cell { display: table-cell !important } @@ -11901,6 +12824,6 @@ html[dir=rtl] .fa-arrow-circle-right:before { clip: auto } -{ - "mode": "full", "isActive":false -} +.highlight pre { + margin: 0 !important; +} \ No newline at end of file diff --git a/pages/404.html b/docs/404.html similarity index 100% rename from pages/404.html rename to docs/404.html diff --git a/docs/communication/index.md b/docs/communication/index.md index aa645e1..944a601 100644 --- a/docs/communication/index.md +++ b/docs/communication/index.md @@ -3,7 +3,7 @@ layout: default title: Communication nav_order: 4 has_children: true -permalink: communication +permalink: communication/ --- # Communication diff --git a/docs/communication/json/json.md b/docs/communication/json/json.md index ae0fdbb..209392c 100644 --- a/docs/communication/json/json.md +++ b/docs/communication/json/json.md @@ -3,7 +3,7 @@ layout: default parent: Communication title: JSON nav_order: 2 -permalink: communication/json +permalink: communication/json/ has_children: true --- diff --git a/docs/communication/mqtt/mqtt.md b/docs/communication/mqtt/mqtt.md index 35fbdd9..8b3c098 100644 --- a/docs/communication/mqtt/mqtt.md +++ b/docs/communication/mqtt/mqtt.md @@ -3,7 +3,7 @@ layout: default parent: Communication title: MQTT nav_order: 1 -permalink: communication/mqtt +permalink: communication/mqtt/ has_children: true --- diff --git a/docs/communication/mqtt/mqtt_communication.md b/docs/communication/mqtt/mqtt_communication.md index 660c745..2837e27 100644 --- a/docs/communication/mqtt/mqtt_communication.md +++ b/docs/communication/mqtt/mqtt_communication.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: Communication nav_order: 4 -permalink: communication/mqtt/comm +permalink: communication/mqtt/comm/ gh_link: docs/communication/mqtt/mqtt_communication.md --- diff --git a/docs/communication/mqtt/mqtt_config.md b/docs/communication/mqtt/mqtt_config.md index 0c047d6..704507e 100644 --- a/docs/communication/mqtt/mqtt_config.md +++ b/docs/communication/mqtt/mqtt_config.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: Config nav_order: 8 -permalink: communication/mqtt/config +permalink: communication/mqtt/config/ gh_link: docs/communication/mqtt/mqtt_config.md --- diff --git a/docs/communication/mqtt/mqtt_localization.md b/docs/communication/mqtt/mqtt_localization.md index 4bda25f..de3a377 100644 --- a/docs/communication/mqtt/mqtt_localization.md +++ b/docs/communication/mqtt/mqtt_localization.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: Localization nav_order: 3 -permalink: communication/mqtt/localization +permalink: communication/mqtt/localization/ gh_link: docs/communication/mqtt/mqtt_localization.md --- diff --git a/docs/communication/mqtt/mqtt_neopixel.md b/docs/communication/mqtt/mqtt_neopixel.md index b57db4a..b47c693 100644 --- a/docs/communication/mqtt/mqtt_neopixel.md +++ b/docs/communication/mqtt/mqtt_neopixel.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: NeoPixel LEDs nav_order: 7 -permalink: communication/mqtt/neopixel +permalink: communication/mqtt/neopixel/ gh_link: docs/communication/mqtt/mqtt_neopixel.md --- diff --git a/docs/communication/mqtt/mqtt_obstacles.md b/docs/communication/mqtt/mqtt_obstacles.md index dcc7d75..73ab83d 100644 --- a/docs/communication/mqtt/mqtt_obstacles.md +++ b/docs/communication/mqtt/mqtt_obstacles.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: Obstacles nav_order: 5 -permalink: communication/mqtt/obstacles +permalink: communication/mqtt/obstacles/ gh_link: docs/communication/mqtt/mqtt_obstacles.md --- diff --git a/docs/communication/mqtt/mqtt_robot.md b/docs/communication/mqtt/mqtt_robot.md index bbcbd6e..1ac4d3f 100644 --- a/docs/communication/mqtt/mqtt_robot.md +++ b/docs/communication/mqtt/mqtt_robot.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: Robot nav_order: 1 -permalink: communication/mqtt/robot +permalink: communication/mqtt/robot/ gh_link: docs/communication/mqtt/mqtt_robot.md --- diff --git a/docs/communication/mqtt/mqtt_sensor.md b/docs/communication/mqtt/mqtt_sensor.md index a8c4ed6..e6fdd05 100644 --- a/docs/communication/mqtt/mqtt_sensor.md +++ b/docs/communication/mqtt/mqtt_sensor.md @@ -4,7 +4,7 @@ parent: MQTT grand_parent: Communication title: Sensor nav_order: 6 -permalink: communication/mqtt/sensor +permalink: communication/mqtt/sensor/ gh_link: docs/communication/mqtt/mqtt_sensor.md --- diff --git a/docs/guide/index.md b/docs/guide/index.md index a017c42..851d5a4 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -2,7 +2,7 @@ layout: default title: Documentation Guide nav_order: 99 -permalink: documentation +permalink: documentation/ parent: Useful Links search_exclude: true diff --git a/docs/guide/links.md b/docs/guide/links.md index b338414..711eed4 100644 --- a/docs/guide/links.md +++ b/docs/guide/links.md @@ -3,7 +3,7 @@ layout: default title: Useful Links nav_order: 98 has_children: true -permalink: links +permalink: links/ has_toc: false --- diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md index bc54990..80a9769 100644 --- a/docs/guide/markdown.md +++ b/docs/guide/markdown.md @@ -2,7 +2,7 @@ layout: default title: Markdown Formats nav_order: 2 -permalink: documentation/markdown +permalink: documentation/markdown/ parent: Useful Links search_exclude: true @@ -114,7 +114,7 @@ end Markdown Syntax: ```md -* * * +--- ``` ### Here is an unordered list: diff --git a/docs/guide/page-template.md b/docs/guide/page-template.md index 02ae14a..e2136d3 100644 --- a/docs/guide/page-template.md +++ b/docs/guide/page-template.md @@ -2,7 +2,7 @@ layout: default title: Page Template nav_order: 1 -permalink: documentation/pages +permalink: documentation/pages/ parent: Useful Links search_exclude: true diff --git a/pages/home.md b/docs/home.md similarity index 79% rename from pages/home.md rename to docs/home.md index ee78873..d2507ee 100644 --- a/pages/home.md +++ b/docs/home.md @@ -1,7 +1,7 @@ --- layout: default title: Home -nav_order: 1 +nav_order: 0 description: "" permalink: / --- @@ -9,9 +9,9 @@ permalink: / # Welcome to Pera-Swarm ## Robots -- [Main Swarm Robot (v2)](/docs/robots/main/v2/) +- [Main Swarm Robot (v4)](/docs/robots/main/v4/) - [Obstacle Bots (v1)](/docs/robots/obstacle-robot/v1/) -- [Virtual Robot (v1)](/docs/robots/virtual/v1/) +- [Virtual Robots (v1)](/docs/robots/virtual/v1/) ## Software - [Swarm Simulator](/docs/simulator/) diff --git a/docs/localization/setup.md b/docs/localization/1_setup.md similarity index 96% rename from docs/localization/setup.md rename to docs/localization/1_setup.md index 6fb4aa8..a0d162c 100644 --- a/docs/localization/setup.md +++ b/docs/localization/1_setup.md @@ -3,11 +3,13 @@ layout: default parent: Localization title: Setup nav_order: 1 -permalink: localization/setup +permalink: localization/setup/ -gh_link: docs/localization/setup.md +gh_link: docs/localization/1_setup.md --- +# Setup + This is run on a Raspberry Pi computer. With the help of default Raspberry Pi camera, this codebase can act as the localization system of the hardware robots. Please find the source code from [https://github.com/Pera-Swarm/localization](https://github.com/Pera-Swarm/localization) diff --git a/docs/localization/calibration.md b/docs/localization/2_calibration.md similarity index 66% rename from docs/localization/calibration.md rename to docs/localization/2_calibration.md index 93d851d..84671ec 100644 --- a/docs/localization/calibration.md +++ b/docs/localization/2_calibration.md @@ -3,9 +3,9 @@ layout: default parent: Localization title: Calibration nav_order: 2 -permalink: localization/calibration +permalink: localization/calibration/ -gh_link: docs/localization/calibration.md +gh_link: docs/localization/2_calibration.md --- # Calibration @@ -17,4 +17,4 @@ Details can be found from [here](https://mecaruco2.readthedocs.io/en/latest/note ### Mapping Calibration (mandatory) -This part is under construction. Please come back later. +{% include alert.html message="Under Construction" type="alert-primary" %} diff --git a/docs/localization/index.md b/docs/localization/index.md index 504a8fc..f00d850 100644 --- a/docs/localization/index.md +++ b/docs/localization/index.md @@ -8,3 +8,7 @@ permalink: localization/ # Localization {: .no_toc } + +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) + +--- diff --git a/docs/robots/main/v2/firmware/0_index.md b/docs/robots/main/v2/firmware/0_index.md deleted file mode 100644 index da3a530..0000000 --- a/docs/robots/main/v2/firmware/0_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: default -title: Firmware -parent: Main Robot (v2) -permalink: robots/v2/firmware/ -has_children: true -has_toc: true -nav_order: 1 - -gh_link: docs/robots/main/v2/firmware/0_index.md ---- diff --git a/docs/robots/main/v2/hardware/1_schematics.md b/docs/robots/main/v2/hardware/1_schematics.md deleted file mode 100644 index 0484c46..0000000 --- a/docs/robots/main/v2/hardware/1_schematics.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: default -parent: Hardware -grand_parent: Main Robot (v2) -title: Schematics Diagrams -nav_order: 1 -permalink: robots/v2/hardware/schematics/ - -gh_link: docs/robots/main/v2/hardware/1_schematics.md ---- - -# Schematics Diagrams -{: .no_toc } - -### Main Board - -N/A -![](/docs/assets/images/hardware/) - -### Power Board -![](/docs/assets/images/hardware/schematics_power_board.png) - -### Color Sensor -![](/docs/assets/images/hardware/schematics_color.png) - -### IR Sensors -![](/docs/assets/images/hardware/schematics_IR.png) - -### Compass Module -![](/docs/assets/images/hardware/schematics_GY511.png) diff --git a/docs/robots/main/v2/hardware/2_pcb.md b/docs/robots/main/v2/hardware/2_pcb.md deleted file mode 100644 index 51f5779..0000000 --- a/docs/robots/main/v2/hardware/2_pcb.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default -parent: Hardware -grand_parent: Main Robot (v2) -title: PCB -nav_order: 2 -permalink: robots/v2/hardware/pcb/ - -gh_link: docs/robots/main/v2/hardware/2_pcb.md ---- - -# PCB -{: .no_toc } - -## Main PCB - -### Top Layer -![Main PCB - Top](/docs/assets/images/hardware/pcb_top.png) - -### Bottom Layer -N/A - -## Motor Controller Board -N/A - -### Power Board -N/A diff --git a/docs/robots/main/v2/hardware/4_diagrams.md b/docs/robots/main/v2/hardware/4_diagrams.md deleted file mode 100644 index 44f15b0..0000000 --- a/docs/robots/main/v2/hardware/4_diagrams.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default -parent: Hardware -grand_parent: Main Robot (v2) -title: Design Diagrams -nav_order: 4 -permalink: robots/v2/hardware/diagrams/ - -gh_link: docs/robots/main/v2/hardware/4_diagrams.md ---- - -# Design Diagrams -{: .no_toc } - - -## Battery Pack -![Main PCB - Top](/docs/assets/images/hardware/battery-pack.jpg) - -## Power Module -![Main PCB - Top](/docs/assets/images/hardware/power_module.jpg) diff --git a/docs/robots/main/v4/firmware/0_index.md b/docs/robots/main/v4/firmware/0_index.md new file mode 100644 index 0000000..55b28a7 --- /dev/null +++ b/docs/robots/main/v4/firmware/0_index.md @@ -0,0 +1,14 @@ +--- +layout: default +title: Firmware +parent: Main Robots +permalink: robots/v4/firmware/ +has_children: true +has_toc: true +nav_order: 0 +--- + +[![PlatformIO CI](https://github.com/Pera-Swarm/firmware/actions/workflows/main.yml/badge.svg)](https://github.com/Pera-Swarm/firmware/actions/workflows/main.yml) +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) + +--- \ No newline at end of file diff --git a/docs/robots/main/v2/firmware/2_motors.md b/docs/robots/main/v4/firmware/10_motors.md similarity index 97% rename from docs/robots/main/v2/firmware/2_motors.md rename to docs/robots/main/v4/firmware/10_motors.md index 834ead8..fbb0acf 100644 --- a/docs/robots/main/v2/firmware/2_motors.md +++ b/docs/robots/main/v4/firmware/10_motors.md @@ -1,18 +1,18 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: Motor Library -nav_order: 2 -permalink: robots/v2/firmware/motor_library +nav_order: 10 +permalink: robots/v4/firmware/motor_library/ -gh_link: docs/robots/main/v2/firmware/2_motors.md +gh_link: docs/robots/main/v4/firmware/10_motors.md --- # Motor Library {: .no_toc } -### Table of content +##### Table of content {: .no_toc } - TOC {:toc} diff --git a/docs/robots/main/v2/firmware/3_distanceSensor.md b/docs/robots/main/v4/firmware/11_distanceSensor.md similarity index 96% rename from docs/robots/main/v2/firmware/3_distanceSensor.md rename to docs/robots/main/v4/firmware/11_distanceSensor.md index c9e8c17..606933b 100644 --- a/docs/robots/main/v2/firmware/3_distanceSensor.md +++ b/docs/robots/main/v4/firmware/11_distanceSensor.md @@ -1,19 +1,20 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: Distance Sensor Library -nav_order: 3 -permalink: robots/v2/firmware/distance_library +nav_order: 11 +permalink: robots/v4/firmware/distance_library/ -gh_link: docs/robots/main/v2/firmware/3_distanceSensors.md +gh_link: docs/robots/main/v4/firmware/11_distanceSensors.md --- # Distance Sensor Library {: .no_toc } -### Table of content +##### Table of content {: .no_toc } + - TOC {:toc} diff --git a/docs/robots/main/v2/firmware/4_colorSensor.md b/docs/robots/main/v4/firmware/12_colorSensor.md similarity index 54% rename from docs/robots/main/v2/firmware/4_colorSensor.md rename to docs/robots/main/v4/firmware/12_colorSensor.md index c11b479..591080d 100644 --- a/docs/robots/main/v2/firmware/4_colorSensor.md +++ b/docs/robots/main/v4/firmware/12_colorSensor.md @@ -1,18 +1,20 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: Color Sensor Library -nav_order: 4 -permalink: robots/v2/firmware/color_library +nav_order: 12 +permalink: robots/v4/firmware/color_library/ -gh_link: docs/robots/main/v2/firmware/4_colorSensor.md +gh_link: docs/robots/main/v4/firmware/12_colorSensor.md --- # Color Sensor Library {: .no_toc } -### Table of content +{% include alert.html message="Under Construction" type="alert-primary" %} + +##### Table of content {: .no_toc } - TOC {:toc} diff --git a/docs/robots/main/v2/firmware/5_compass.md b/docs/robots/main/v4/firmware/13_compass.md similarity index 55% rename from docs/robots/main/v2/firmware/5_compass.md rename to docs/robots/main/v4/firmware/13_compass.md index cc5d0b4..e6aaa25 100644 --- a/docs/robots/main/v2/firmware/5_compass.md +++ b/docs/robots/main/v4/firmware/13_compass.md @@ -1,18 +1,20 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: Compass Sensor Library -nav_order: 5 -permalink: robots/v2/firmware/compass_library +nav_order: 13 +permalink: robots/v4/firmware/compass_library/ -gh_link: docs/robots/main/v2/firmware/5_compass.md +gh_link: docs/robots/main/v4/firmware/13_compass.md --- # Compass Sensor Library {: .no_toc } -### Table of content +{% include alert.html message="Under Construction" type="alert-primary" %} + +##### Table of content {: .no_toc } - TOC {:toc} diff --git a/docs/robots/main/v2/firmware/6_ir_sensors.md b/docs/robots/main/v4/firmware/14_ir_sensors.md similarity index 55% rename from docs/robots/main/v2/firmware/6_ir_sensors.md rename to docs/robots/main/v4/firmware/14_ir_sensors.md index 348b4aa..47d7665 100644 --- a/docs/robots/main/v2/firmware/6_ir_sensors.md +++ b/docs/robots/main/v4/firmware/14_ir_sensors.md @@ -1,18 +1,20 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: IR Transceiver Library -nav_order: 6 -permalink: robots/v2/firmware/ir_library +nav_order: 14 +permalink: robots/v4/firmware/ir_library/ -gh_link: docs/robots/main/v2/firmware/6_ir_sensors.md +gh_link: docs/robots/main/v4/firmware/14_ir_sensors.md --- # IR Transceiver Library {: .no_toc } -### Table of content +{% include alert.html message="Under Construction" type="alert-primary" %} + +##### Table of content {: .no_toc } - TOC {:toc} diff --git a/docs/robots/main/v2/firmware/7_neopixel.md b/docs/robots/main/v4/firmware/15_neopixel.md similarity index 96% rename from docs/robots/main/v2/firmware/7_neopixel.md rename to docs/robots/main/v4/firmware/15_neopixel.md index 8dcbe68..5185eb2 100644 --- a/docs/robots/main/v2/firmware/7_neopixel.md +++ b/docs/robots/main/v4/firmware/15_neopixel.md @@ -1,18 +1,18 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: Neopixel LED Library -nav_order: 7 -permalink: robots/v2/firmware/neopixel_library +nav_order: 15 +permalink: robots/v4/firmware/neopixel_library/ -gh_link: docs/robots/main/v2/firmware/7_neopixel.md +gh_link: docs/robots/main/v4/firmware/15_neopixel.md --- # Neopixel LED Library {: .no_toc } -### Table of content +##### Table of content {: .no_toc } - TOC diff --git a/docs/robots/main/v2/firmware/1_intro.md b/docs/robots/main/v4/firmware/1_intro.md similarity index 89% rename from docs/robots/main/v2/firmware/1_intro.md rename to docs/robots/main/v4/firmware/1_intro.md index 28e8e26..d6e9f8a 100644 --- a/docs/robots/main/v2/firmware/1_intro.md +++ b/docs/robots/main/v4/firmware/1_intro.md @@ -1,18 +1,29 @@ --- layout: default parent: Firmware -grand_parent: Main Robot (v2) -title: Robot Firmware Architecture +grand_parent: Main Robots +title: Firmware Architecture nav_order: 1 -permalink: robots/v2/firmware/intro +permalink: robots/v4/firmware/intro/ -gh_link: docs/robots/main/v2/firmware/1_intro.md +gh_link: docs/robots/main/v4/firmware/1_intro.md --- -# Robot Firmware Architecture +# Firmware Architecture +{: .no_toc } +##### Table of content +{: .no_toc } +- TOC +{:toc} + +---- + +### Build Tool: PlatformIO The firmware of the robot was implemented using [PlatformIO](https://platformio.org/), based on the ESP32 wrapper of the Arduino Framework. PlatformIO environment is available on almost all major IDEs, and once installed, it will do all the dependency management for you. +### Source Code + You can download the latest firmware from the below link: - [Stable Release v4.2](https://github.com/Pera-Swarm/firmware) - [Development Version](https://github.com/Pera-Swarm/firmware/tree/dev) @@ -21,7 +32,7 @@ You can download the latest firmware from the below link: Developers who want to model the *Swarm Behavioral Algorithms* doesn't need to worry about the implementations of the hardware. They can use the top level implementation, which be found in *firmware\algorithms\algorithm_template.cpp* of the firmware repository. -### Template for the Algorithm Implementation +### Algorithm Implementation Template ```cpp #include "algorithm.h" #include "config/global_variables.h" @@ -116,12 +127,12 @@ There are a few sample implementations are available from below links: - [Random Move Robot](https://github.com/Pera-Swarm/firmware/blob/master/firmware/algorithms/algorithm_moveRobot.cpp){:target="_blank"} - [Color Ripple Algorithm](https://github.com/Pera-Swarm/firmware/blob/master/firmware/algorithms/algorithm_colorRipple.cpp){:target="_blank"} ---- +### Finite State Machine Model The following image, the **Finite State Machine** describes when and how each function in the algorithm template will be executed. -![Robot State Machine](/docs/assets/images/firmware/robotStateMachine.jpg) +{% include thumbnail.html src="/docs/assets/images/firmware/robotStateMachine.jpg" alt="Robot State Machine Model of the Robot" %} ```cpp // Algorithm setup diff --git a/docs/robots/main/v4/firmware/2_setupInstructions.md b/docs/robots/main/v4/firmware/2_setupInstructions.md new file mode 100644 index 0000000..355a6a1 --- /dev/null +++ b/docs/robots/main/v4/firmware/2_setupInstructions.md @@ -0,0 +1,66 @@ +--- +layout: default +parent: Firmware +grand_parent: Main Robots +title: Firmware Setup Guide +nav_order: 2 +permalink: robots/v4/firmware/setup/ + +gh_link: docs/robots/main/v4/firmware/2_setupInstructions.md +--- + +# Firmware Setup Guide +{: .no_toc } + +##### Table of content +{: .no_toc } +- TOC +{:toc} + +### 1. Install PlatformIO + +- It is suggested to use VS Code IDE for the development. Follow the guide in [PlatformIO IDE for VSCode](https://docs.platformio.org/en/latest/integration/ide/vscode.html#ide-vscode) to install PlatformIO Extension with VS Code IDE. +- If you are using another IDE, please check [here](https://docs.platformio.org/en/latest/integration/ide/index.html#desktop-ides) for the installation instructions. + +### 2. Install ESP32 Framework + +- We are using [Espressif 32](https://docs.platformio.org/en/latest/platforms/espressif32.html) Plafrorm with _Arduino_ framework. The first time you build the project, this will be downloaded automatically with the other required packages, tools, and libraries. + +### 3. Prepare config.h + +- Once you set up the repository, you need to copy the 'src/config/config_sample.h' file and create 'src/config/config.h'. +- Next, open the 'config.h' file and fill in the below __definitions__ with the MQTT Broker you are using. + +```cpp +#define MQTT_SERVER "192.168.8.1" +#define MQTT_PORT 1883 +#define MQTT_CLIENT "Robot" +#define MQTT_USERNAME "mqtt_username" +#define MQTT_PASSWORD "mqtt_password" +``` + +- Fill in the below __definitions__ with the credentials of the WiFi network you are using. + +```cpp +#define WIFI_SSID "wifi_SSID" +#define WIFI_PASS "wifi_password" +``` + +### 4. Build and Upload + +- You can use the **Build** button in the IDE or use the below command in the terminal to build the firmware. + +```sh +pio build +``` + +- You can use the **Upload** button in the IDE or use the below command in the terminal to build the firmware and upload it to the development board. +- Usually, PlatformIO will automatically identify the COM port that the robot is connected to. +- You need to use an external _USB to UART_ converter to upload the firmware into the Arduino Pro Mini boards. + +```sh +pio run --target upload +``` + +- If you are getting an error like _'Failed to connect to ESP32: Timed out… Connecting…'_, you need to hold down the **BOOT** button in the development board, and press the **Upload** button in the IDE. After you see the _'Connecting...'_ message in the IDE, you can release the **BOOT** button. + diff --git a/docs/robots/main/v2/hardware/0_intro.md b/docs/robots/main/v4/hardware/0_intro.md similarity index 52% rename from docs/robots/main/v2/hardware/0_intro.md rename to docs/robots/main/v4/hardware/0_intro.md index 72aa249..39c2055 100644 --- a/docs/robots/main/v2/hardware/0_intro.md +++ b/docs/robots/main/v4/hardware/0_intro.md @@ -1,8 +1,8 @@ --- layout: default title: Hardware -parent: Main Robot (v2) +parent: Main Robots has_children: true -permalink: robots/v2/hardware/ +permalink: robots/v4/hardware/ --- diff --git a/docs/robots/main/v4/hardware/1_schematics.md b/docs/robots/main/v4/hardware/1_schematics.md new file mode 100644 index 0000000..6cfeb75 --- /dev/null +++ b/docs/robots/main/v4/hardware/1_schematics.md @@ -0,0 +1,35 @@ +--- +layout: default +parent: Hardware +grand_parent: Main Robots +title: Schematics Diagrams +nav_order: 1 +permalink: robots/v4/hardware/schematics/ + +gh_link: docs/robots/main/v4/hardware/1_schematics.md +--- + +# Schematics Diagrams +{: .no_toc } + +##### Table of content +{: .no_toc } +- TOC +{:toc} + +### Main Board + +{% include alert.html message="Under Construction" type="alert-primary" %} + +#### Color Sensor +{% include thumbnail.html src="/docs/assets/images/hardware/schematics_color.png" alt="Color Sensor" %} + +#### IR Sensors +{% include thumbnail.html src="/docs/assets/images/hardware/schematics_IR.png" alt="IR Sensor" %} + +#### Compass Module +{% include thumbnail.html src="/docs/assets/images/hardware/schematics_GY511.png" alt="Compass Module" %} + + +### Power Board +{% include thumbnail.html src="/docs/assets/images/hardware/schematics_power_board.png" alt="Power Board" %} diff --git a/docs/robots/main/v4/hardware/2_pcb.md b/docs/robots/main/v4/hardware/2_pcb.md new file mode 100644 index 0000000..cefdf85 --- /dev/null +++ b/docs/robots/main/v4/hardware/2_pcb.md @@ -0,0 +1,32 @@ +--- +layout: default +parent: Hardware +grand_parent: Main Robots +title: PCB +nav_order: 2 +permalink: robots/v4/hardware/pcb/ + +gh_link: docs/robots/main/v4/hardware/2_pcb.md +--- + +# PCB +{: .no_toc } + +##### Table of content +{: .no_toc } +- TOC +{:toc} + +## Main PCB + +### Top Layer +{% include thumbnail.html src="/docs/assets/images/hardware/pcb_top.png" alt="Top Layer" %} + +### Bottom Layer +N/A + +## Motor Controller Board +N/A + +### Power Board +N/A diff --git a/docs/robots/main/v2/hardware/3_bom.md b/docs/robots/main/v4/hardware/3_bom.md similarity index 96% rename from docs/robots/main/v2/hardware/3_bom.md rename to docs/robots/main/v4/hardware/3_bom.md index 3c3b467..8eafa79 100644 --- a/docs/robots/main/v2/hardware/3_bom.md +++ b/docs/robots/main/v4/hardware/3_bom.md @@ -1,12 +1,12 @@ --- layout: default parent: Hardware -grand_parent: Main Robot (v2) +grand_parent: Main Robots title: Bill of Materials nav_order: 3 -permalink: robots/v2/hardware/bom/ +permalink: robots/v4/hardware/bom/ -gh_link: docs/robots/main/v2/hardware/3_bom.md +gh_link: docs/robots/main/v4/hardware/3_bom.md --- # Bill of Materials diff --git a/docs/robots/main/v4/hardware/4_diagrams.md b/docs/robots/main/v4/hardware/4_diagrams.md new file mode 100644 index 0000000..6fca44b --- /dev/null +++ b/docs/robots/main/v4/hardware/4_diagrams.md @@ -0,0 +1,25 @@ +--- +layout: default +parent: Hardware +grand_parent: Main Robots +title: Design Diagrams +nav_order: 4 +permalink: robots/v4/hardware/diagrams/ + +gh_link: docs/robots/main/v4/hardware/4_diagrams.md +--- + +# Design Diagrams +{: .no_toc } + +##### Table of content +{: .no_toc } +- TOC +{:toc} + +## Battery Pack + +{% include thumbnail.html src="/docs/assets/images/hardware/battery-pack.jpg" alt="Design Diagram - Battery Pack" %} + +## Power Module +{% include thumbnail.html src="/docs/assets/images/hardware/power_module.jpg" alt="Design Diagram - Power Module" %} diff --git a/docs/robots/main/v2/index.md b/docs/robots/main/v4/index.md similarity index 63% rename from docs/robots/main/v2/index.md rename to docs/robots/main/v4/index.md index 72d70d1..3b290ad 100644 --- a/docs/robots/main/v2/index.md +++ b/docs/robots/main/v4/index.md @@ -1,9 +1,10 @@ --- layout: default -title: Main Robot (v2) +title: Main Robots nav_order: 1 has_children: true -permalink: robots/main/v2/ +permalink: robots/main/v4/ +version: v4 --- # Robots diff --git a/docs/robots/obstacle/v1/firmware/0_index.md b/docs/robots/obstacle/v1/firmware/0_index.md new file mode 100644 index 0000000..b4e37a0 --- /dev/null +++ b/docs/robots/obstacle/v1/firmware/0_index.md @@ -0,0 +1,18 @@ +--- +layout: default +title: Firmware +parent: Obstacle Robots +permalink: robots/obstacle-robot/v1/firmware/ +has_children: true +has_toc: true +nav_order: 0 +--- + +## Obstacle Bot Firmware + +[![Build CI](https://github.com/Pera-Swarm/obstacle-bot-firmware/actions/workflows/build.yml/badge.svg)](https://github.com/Pera-Swarm/obstacle-bot-firmware/actions/workflows/build.yml) +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) + +--- + +{% include alert.html message="Under Construction" type="alert-primary" %} \ No newline at end of file diff --git a/docs/robots/obstacle/v1/firmware/0_intro.md b/docs/robots/obstacle/v1/firmware/0_intro.md deleted file mode 100644 index d52a479..0000000 --- a/docs/robots/obstacle/v1/firmware/0_intro.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: default -title: Firmware -parent: Obstacle Robot (v1) -permalink: robots/obstacle-robot/v1/firmware/ -has_children: true -has_toc: true -nav_order: 1 ---- - -## Obstacle Bot Firmware - -(Under Development) \ No newline at end of file diff --git a/docs/robots/obstacle/v1/firmware/1_intro.md b/docs/robots/obstacle/v1/firmware/1_intro.md new file mode 100644 index 0000000..d47c184 --- /dev/null +++ b/docs/robots/obstacle/v1/firmware/1_intro.md @@ -0,0 +1,31 @@ +--- +layout: default +parent: Firmware +grand_parent: Obstacle Robots +title: Firmware Architecture +nav_order: 1 +permalink: robots/obstacle-robot/v1/firmware/intro/ + +gh_link: docs/robots/obstacle/v1/firmware/1_intro.md +--- + +# Firmware Architecture +{: .no_toc } + +##### Table of content +{: .no_toc } +- TOC +{:toc} + +---- + +### Build Tool: PlatformIO +The firmware of the robot was implemented using [PlatformIO](https://platformio.org/), based on the ESP32 wrapper of the Arduino Framework. PlatformIO environment is available on almost all major IDEs, and once installed, it will do all the dependency management for you. + +### Source Code + +You can download the latest firmware from the below link: +- [Stable Release v1.0](https://github.com/Pera-Swarm/obstacle-bot-firmware) +- [Development Version](https://github.com/Pera-Swarm/obstacle-bot-firmware/tree/dev) + +--- diff --git a/docs/robots/obstacle/v1/firmware/2_setupInstructions.md b/docs/robots/obstacle/v1/firmware/2_setupInstructions.md new file mode 100644 index 0000000..d9ce666 --- /dev/null +++ b/docs/robots/obstacle/v1/firmware/2_setupInstructions.md @@ -0,0 +1,50 @@ +--- +layout: default +parent: Firmware +grand_parent: Obstacle Robots +title: Firmware Setup Guide +nav_order: 2 +permalink: robots/obstacle-robot/v1/firmware/setup/ + +gh_link: docs/robots/obstacle/v1/firmware/2_setupInstructions.md +--- + +# Firmware Setup Guide +{: .no_toc } + +##### Table of content +{: .no_toc } +- TOC +{:toc} + +### 1. Install PlatformIO + +- It is suggested to use VS Code IDE for the development. Follow the guide in [PlatformIO IDE for VSCode](https://docs.platformio.org/en/latest/integration/ide/vscode.html#ide-vscode) to install PlatformIO Extension with VS Code IDE. +- If you are using another IDE, please check [here](https://docs.platformio.org/en/latest/integration/ide/index.html#desktop-ides) for the installation instructions. + +### 2. Install Arduino Framework + +- We are using [atmelavr](https://docs.platformio.org/en/latest/platforms/atmelavr.html) Plafrorm with [Arduino](https://docs.platformio.org/en/latest/frameworks/arduino.html) framework. The first time you build the project, this will be downloaded automatically with the other required packages, tools, and libraries. + +### 3. Prepare config.h + +- Once you set up the repository, you need to copy the 'src/config/config_sample.h' file and create 'src/config/config.h'. +- As for now, no any configurations need to be done. + +### 4. Build and Upload + +- You can use the **Build** button in the IDE or use the below command in the terminal to build the firmware. + +```sh +pio build +``` + +- You can use the **Upload** button in the IDE or use the below command in the terminal to build the firmware and upload it to the development board. +- Usually, PlatformIO will automatically identify the COM port that the robot is connected to. +- You need to use an external _USB to UART_ converter to upload the firmware into the Arduino Pro Mini boards. + +```sh +pio run --target upload +``` + +- If you got any _'sync'_ related error while uploading, press the **Reset** button in the Pro-Mini development board and try again. \ No newline at end of file diff --git a/docs/robots/obstacle/v1/hardware/0_index.md b/docs/robots/obstacle/v1/hardware/0_index.md new file mode 100644 index 0000000..1dc268e --- /dev/null +++ b/docs/robots/obstacle/v1/hardware/0_index.md @@ -0,0 +1,8 @@ +--- +layout: default +title: Hardware +parent: Obstacle Robots +has_children: true +permalink: robots/obstacle-robot/v1/hardware/ + +--- diff --git a/docs/robots/obstacle/v1/hardware/0_intro.md b/docs/robots/obstacle/v1/hardware/1_intro.md similarity index 63% rename from docs/robots/obstacle/v1/hardware/0_intro.md rename to docs/robots/obstacle/v1/hardware/1_intro.md index a09fc92..1a33d4f 100644 --- a/docs/robots/obstacle/v1/hardware/0_intro.md +++ b/docs/robots/obstacle/v1/hardware/1_intro.md @@ -1,20 +1,23 @@ --- layout: default -title: Hardware -parent: Obstacle Robot (v1) -permalink: robots/obstacle-robot/v1/hardware -has_children: true -has_toc: true -nav_order: 0 +parent: Hardware +grand_parent: Obstacle Robots +title: Intro +nav_order: 1 +permalink: robots/obstacle-robot/v1/hardware/intro/ -gh_link: docs/robots/obstacle/v1/hardware/0_intro.md +gh_link: docs/robots/obstacle/v1/hardware/1_intro.md --- -## Obstacle Bot Hardware +## Obstacle Bot Intro +{: .no_toc } +##### Table of content {: .no_toc } +- TOC +{:toc} -![](/docs/assets/images/obstacle-bot/pictures.jpg) +{% include thumbnail.html src="/docs/assets/images/obstacle-bot/pictures.jpg" alt="Obstacle Bot Hardware" %} ### Hardware Specifications diff --git a/docs/robots/obstacle/v1/hardware/1_schematics.md b/docs/robots/obstacle/v1/hardware/1_schematics.md deleted file mode 100644 index c235bed..0000000 --- a/docs/robots/obstacle/v1/hardware/1_schematics.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: default -parent: Hardware -grand_parent: Obstacle Robot (v1) -title: Schematics Diagrams -nav_order: 1 -permalink: robots/obstacle-robot/v1/hardware/schematics/ - -gh_link: docs/robots/obstacle/v1/hardware/1_schematics.md ---- - -# Schematics Diagrams -{: .no_toc } - -### Main Board -![](/docs/assets/images/obstacle-bot/schemetic.png) \ No newline at end of file diff --git a/docs/robots/obstacle/v1/hardware/2_pcb.md b/docs/robots/obstacle/v1/hardware/2_pcb.md deleted file mode 100644 index a59d21a..0000000 --- a/docs/robots/obstacle/v1/hardware/2_pcb.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default -parent: Hardware -grand_parent: Obstacle Robot (v1) -title: PCB -nav_order: 2 -permalink: robots/obstacle-robot/v1/hardware/pcb/ - -gh_link: docs/robots/obstacle/v1/hardware/2_pcb.md ---- - -# PCB -{: .no_toc } - -## Main PCB - -![](/docs/assets/images/obstacle-bot/pcb.jpg) \ No newline at end of file diff --git a/docs/robots/obstacle/v1/hardware/2_schematics.md b/docs/robots/obstacle/v1/hardware/2_schematics.md new file mode 100644 index 0000000..d8b5e05 --- /dev/null +++ b/docs/robots/obstacle/v1/hardware/2_schematics.md @@ -0,0 +1,18 @@ +--- +layout: default +parent: Hardware +grand_parent: Obstacle Robots +title: Schematics Diagrams +nav_order: 2 +permalink: robots/obstacle-robot/v1/hardware/schematics/ + +gh_link: docs/robots/obstacle/v1/hardware/2_schematics.md +--- + +# Schematics Diagrams + +{% include alert.html message="Under Construction" type="alert-primary" %} + +### Main Board + +{% include thumbnail.html src="/docs/assets/images/obstacle-bot/schemetic.png" alt="Main Board Schematics Diagram" %} \ No newline at end of file diff --git a/docs/robots/obstacle/v1/hardware/3_pcb.md b/docs/robots/obstacle/v1/hardware/3_pcb.md new file mode 100644 index 0000000..612be78 --- /dev/null +++ b/docs/robots/obstacle/v1/hardware/3_pcb.md @@ -0,0 +1,18 @@ +--- +layout: default +parent: Hardware +grand_parent: Obstacle Robots +title: PCB +nav_order: 3 +permalink: robots/obstacle-robot/v1/hardware/pcb/ + +gh_link: docs/robots/obstacle/v1/hardware/3_pcb.md +--- + +# PCB +{: .no_toc } + +{% include alert.html message="Under Construction" type="alert-primary" %} + +## Main PCB +{% include thumbnail.html src="/docs/assets/images/obstacle-bot/pcb.jpg" alt="Main PCB" %} diff --git a/docs/robots/obstacle/v1/index.md b/docs/robots/obstacle/v1/index.md index c8c77a6..29be951 100644 --- a/docs/robots/obstacle/v1/index.md +++ b/docs/robots/obstacle/v1/index.md @@ -1,12 +1,13 @@ --- layout: default -title: Obstacle Robot (v1) +title: Obstacle Robots nav_order: 2 has_children: true permalink: robots/obstacle-robot/v1/ +version: v1 --- -# Obstacle Robots +# Obstacle Robotss {: .no_toc } {: .fs-6 .fw-300 } diff --git a/docs/robots/virtual/v1/firmware/0_intro.md b/docs/robots/virtual/v1/firmware/0_intro.md index 61c95b3..b04f6a6 100644 --- a/docs/robots/virtual/v1/firmware/0_intro.md +++ b/docs/robots/virtual/v1/firmware/0_intro.md @@ -1,8 +1,14 @@ --- layout: default title: Firmware -parent: Virtual Robot (v1) +parent: Virtual Robots has_children: true -permalink: robots/virtual/firmware/v1/ +permalink: robots/virtual/v1/firmware/ ---- \ No newline at end of file +--- + +## Virtual Robot Firmware + +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) + +--- diff --git a/docs/robots/virtual/v1/firmware/1_setup-guide.md b/docs/robots/virtual/v1/firmware/1_setup-guide.md index c17c2af..391685c 100644 --- a/docs/robots/virtual/v1/firmware/1_setup-guide.md +++ b/docs/robots/virtual/v1/firmware/1_setup-guide.md @@ -1,10 +1,10 @@ --- layout: default parent: Firmware -grand_parent: Virtual Robot (v1) +grand_parent: Virtual Robots title: Setup Guide nav_order: 1 -permalink: robots/virtual/firmware/v1/setup-guide +permalink: robots/virtual/v1/firmware/setup-guide/ gh_link: docs/robots/virtual/v1/firmware/1_setup-guide.md --- @@ -12,7 +12,7 @@ gh_link: docs/robots/virtual/v1/firmware/1_setup-guide.md # Setup Guide {: .no_toc } -### Table of content +##### Table of content {: .no_toc } - TOC {:toc} @@ -44,8 +44,7 @@ If you are interested in only the robot functionalities, not the core functional You need to fork and clone the repository, [github.com/Pera-Swarm/java-robot](https://github.com/Pera-Swarm/java-robot){:target="_blank"} and implement the *Robot Class* as provided examples. - - +{% include alert.html message="Remaining Under Construction" type="alert-primary" %} ## Additional Readings diff --git a/docs/robots/virtual/v1/firmware/2_swarm-class.md b/docs/robots/virtual/v1/firmware/2_swarm-class.md index 4eadf44..a11faf0 100644 --- a/docs/robots/virtual/v1/firmware/2_swarm-class.md +++ b/docs/robots/virtual/v1/firmware/2_swarm-class.md @@ -1,10 +1,10 @@ --- layout: default parent: Firmware -grand_parent: Virtual Robot (v1) +grand_parent: Virtual Robots title: Swarm Class Overview nav_order: 3 -permalink: robots/virtual/firmware/v1/swarm-class +permalink: robots/virtual/v1/firmware/swarm-class/ gh_link: docs/robots/virtual/v1/firmware/2_swarm-class.md --- @@ -12,7 +12,9 @@ gh_link: docs/robots/virtual/v1/firmware/2_swarm-class.md # Swarm Class {: .no_toc } -### Table of content +{% include alert.html message="Under Construction" type="alert-primary" %} + +##### Table of content {: .no_toc } - TOC {:toc} diff --git a/docs/robots/virtual/v1/firmware/3_robot-class.md b/docs/robots/virtual/v1/firmware/3_robot-class.md index e95eecc..dd66516 100644 --- a/docs/robots/virtual/v1/firmware/3_robot-class.md +++ b/docs/robots/virtual/v1/firmware/3_robot-class.md @@ -1,10 +1,10 @@ --- layout: default parent: Firmware -grand_parent: Virtual Robot (v1) +grand_parent: Virtual Robots title: Robot Class Overview nav_order: 3 -permalink: robots/virtual/firmware/v1/robot-class +permalink: robots/virtual/v1/firmware/robot-class/ gh_link: docs/robots/virtual/v1/firmware/3_robot-class.md --- @@ -12,14 +12,13 @@ gh_link: docs/robots/virtual/v1/firmware/3_robot-class.md # Robot Class {: .no_toc } -### Table of content +##### Table of content {: .no_toc } - TOC {:toc} --- - {% assign sub_color = "color: orange;" %} ## Introduction @@ -66,8 +65,7 @@ Double Example Code -<----------Shall we add some code snippet like this for each method ?-------------> - + {% highlight java %} package robotImplementations; diff --git a/docs/robots/virtual/v1/firmware/4_virtual-robot.md b/docs/robots/virtual/v1/firmware/4_virtual-robot.md index 2b36ea2..5dbd596 100644 --- a/docs/robots/virtual/v1/firmware/4_virtual-robot.md +++ b/docs/robots/virtual/v1/firmware/4_virtual-robot.md @@ -1,10 +1,10 @@ --- layout: default parent: Firmware -grand_parent: Virtual Robot (v1) +grand_parent: Virtual Robots title: Implement a Virtual Robot nav_order: 4 -permalink: robots/virtual/firmware/v1/virtual-robot-class +permalink: robots/virtual/v1/firmware/virtual-robot-class/ gh_link: docs/robots/virtual/v1/firmware/4_virtual-robot.md --- @@ -12,7 +12,9 @@ gh_link: docs/robots/virtual/v1/firmware/4_virtual-robot.md # Implement a Virtual Robot {: .no_toc } -### Table of content +{% include alert.html message="Under Construction" type="alert-primary" %} + +##### Table of content {: .no_toc } - TOC {:toc} diff --git a/docs/robots/virtual/v1/index.md b/docs/robots/virtual/v1/index.md index d92ee02..8385e02 100644 --- a/docs/robots/virtual/v1/index.md +++ b/docs/robots/virtual/v1/index.md @@ -1,10 +1,11 @@ --- layout: default -title: Virtual Robot (v1) +title: Virtual Robots permalink: robots/virtual/v1/ has_children: true nav_order: 3 has_toc: true +version: v1 gh_link: docs/robots/virtual/v1/index.md --- diff --git a/docs/simulator/index.md b/docs/simulator/index.md index 4b3cdff..cc129e4 100644 --- a/docs/simulator/index.md +++ b/docs/simulator/index.md @@ -1,15 +1,21 @@ --- layout: default title: Simulator +permalink: simulator/ + nav_order: 5 has_children: true -permalink: simulator/ +has_toc: false --- # Swarm Simulator {: .no_toc } -This is the documentation for the Swarm Simulator of the project, *Pera-Swarm*. +![Node.js CI](https://github.com/Pera-Swarm/e15-fyp-swarm-server/workflows/Node.js%20CI/badge.svg) +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) + +--- +{% include alert.html message="Under Construction" type="alert-primary" %} -![Simulator Architecture](/docs/assets/images/simulator/simulator_overview.png){:width="100%"} +{% include thumbnail.html src="/docs/assets/images/simulator/simulator_overview.png" alt="Simulator Architecture" %} diff --git a/pages/sitemap.md b/docs/sitemap.md similarity index 100% rename from pages/sitemap.md rename to docs/sitemap.md diff --git a/docs/visualizer/1_remote-access-guide.md b/docs/visualizer/1_remote-access-guide.md index 35b0c64..fb60a75 100644 --- a/docs/visualizer/1_remote-access-guide.md +++ b/docs/visualizer/1_remote-access-guide.md @@ -1,5 +1,6 @@ --- layout: default +permalink: visualizer/remote-access-guide/ parent: Visualizer title: Remote Access Guide nav_order: 1 @@ -9,4 +10,4 @@ gh_link: docs/blob/main/docs/visualizer/1_remote-access-guide.md ## Remote Access Guide -(Under Development) \ No newline at end of file +{% include alert.html message="Under Construction" type="alert-primary" %} \ No newline at end of file diff --git a/docs/visualizer/2_local-setup-guide.md b/docs/visualizer/2_local-setup-guide.md index ee3bf57..6975b6e 100644 --- a/docs/visualizer/2_local-setup-guide.md +++ b/docs/visualizer/2_local-setup-guide.md @@ -1,5 +1,6 @@ --- layout: default +permalink: visualizer/local-setup-guide/ parent: Visualizer title: Local Setup Guide nav_order: 2 @@ -13,8 +14,6 @@ This is a web-based 3d visualizer interface for the Swarm Simulator developed fo You can view the simulator from here [https://pera-swarm.github.io/visualizer](https://pera-swarm.github.io/visualizer) -![Webpack CI](https://github.com/Pera-Swarm/visualizer/workflows/Webpack%20CI/badge.svg) - A basic boilerplate for a Three.js project including the use of Webpack and ES6 syntax via Babel. ## Project Structure diff --git a/docs/visualizer/index.md b/docs/visualizer/index.md index da08eaf..754d585 100644 --- a/docs/visualizer/index.md +++ b/docs/visualizer/index.md @@ -10,6 +10,10 @@ permalink: visualizer/ # Visualizer {: .no_toc } +![Webpack CI](https://github.com/Pera-Swarm/visualizer/workflows/Webpack%20CI/badge.svg) + +--- + Visualizer is a web-based tool that can be used to observe the robots in both repositories in a Virtual 3D environment. -![Sample Image](/docs/assets/images/visualizer/sample.png) \ No newline at end of file +{% include thumbnail.html src="/docs/assets/images/visualizer/sample.png" alt="Sample Image" %}