diff --git a/docs/assets/images/StrangeBee_Footer.svg b/docs/assets/images/StrangeBee_Footer.svg new file mode 100644 index 0000000000..8ec1e15713 --- /dev/null +++ b/docs/assets/images/StrangeBee_Footer.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/StrangeBee_Landscape.png b/docs/assets/images/StrangeBee_Landscape.png new file mode 100644 index 0000000000..2596f9af35 Binary files /dev/null and b/docs/assets/images/StrangeBee_Landscape.png differ diff --git a/docs/assets/images/StrangeBee_Landscape.svg b/docs/assets/images/StrangeBee_Landscape.svg new file mode 100644 index 0000000000..056059a692 --- /dev/null +++ b/docs/assets/images/StrangeBee_Landscape.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/docs-analyst.png b/docs/assets/images/docs-analyst.png new file mode 100644 index 0000000000..d5155dda84 Binary files /dev/null and b/docs/assets/images/docs-analyst.png differ diff --git a/docs/assets/images/docs-devSecOps.png b/docs/assets/images/docs-devSecOps.png new file mode 100644 index 0000000000..35d0abf812 Binary files /dev/null and b/docs/assets/images/docs-devSecOps.png differ diff --git a/docs/assets/images/docs-infraEngineer.png b/docs/assets/images/docs-infraEngineer.png new file mode 100644 index 0000000000..6ed97dc68e Binary files /dev/null and b/docs/assets/images/docs-infraEngineer.png differ diff --git a/docs/assets/images/docs-manager.png b/docs/assets/images/docs-manager.png new file mode 100644 index 0000000000..4d889374f8 Binary files /dev/null and b/docs/assets/images/docs-manager.png differ diff --git a/docs/assets/images/hero-decor-l.png b/docs/assets/images/hero-decor-l.png new file mode 100644 index 0000000000..60988dce0c Binary files /dev/null and b/docs/assets/images/hero-decor-l.png differ diff --git a/docs/assets/images/hero-decor-mob.png b/docs/assets/images/hero-decor-mob.png new file mode 100644 index 0000000000..df533bc98f Binary files /dev/null and b/docs/assets/images/hero-decor-mob.png differ diff --git a/docs/assets/images/hero-decor-r.png b/docs/assets/images/hero-decor-r.png new file mode 100644 index 0000000000..c44b58f974 Binary files /dev/null and b/docs/assets/images/hero-decor-r.png differ diff --git a/docs/assets/images/icons/arrow-up-line.svg b/docs/assets/images/icons/arrow-up-line.svg new file mode 100644 index 0000000000..1a90938c62 --- /dev/null +++ b/docs/assets/images/icons/arrow-up-line.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/assets/images/icons/doc.svg b/docs/assets/images/icons/doc.svg new file mode 100644 index 0000000000..b4bbbded8c --- /dev/null +++ b/docs/assets/images/icons/doc.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/assets/images/icons/link-arrow.svg b/docs/assets/images/icons/link-arrow.svg new file mode 100644 index 0000000000..f17daef40b --- /dev/null +++ b/docs/assets/images/icons/link-arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/assets/images/icons/minus.svg b/docs/assets/images/icons/minus.svg new file mode 100644 index 0000000000..799b308897 --- /dev/null +++ b/docs/assets/images/icons/minus.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/assets/images/icons/plus.svg b/docs/assets/images/icons/plus.svg new file mode 100644 index 0000000000..a3aa89af96 --- /dev/null +++ b/docs/assets/images/icons/plus.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/assets/images/icons/text-decor.svg b/docs/assets/images/icons/text-decor.svg new file mode 100644 index 0000000000..0646156c62 --- /dev/null +++ b/docs/assets/images/icons/text-decor.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/assets/images/logo-white.svg b/docs/assets/images/logo-white.svg new file mode 100644 index 0000000000..0cad588403 --- /dev/null +++ b/docs/assets/images/logo-white.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/mask/card-mob.svg b/docs/assets/images/mask/card-mob.svg new file mode 100644 index 0000000000..5ea5a8d995 --- /dev/null +++ b/docs/assets/images/mask/card-mob.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/assets/images/mask/card.svg b/docs/assets/images/mask/card.svg new file mode 100644 index 0000000000..d31d7a1e25 --- /dev/null +++ b/docs/assets/images/mask/card.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/assets/images/mask/substract-m.png b/docs/assets/images/mask/substract-m.png new file mode 100644 index 0000000000..2208226d8a Binary files /dev/null and b/docs/assets/images/mask/substract-m.png differ diff --git a/docs/assets/images/mask/substract.png b/docs/assets/images/mask/substract.png new file mode 100644 index 0000000000..87ca004084 Binary files /dev/null and b/docs/assets/images/mask/substract.png differ diff --git a/docs/assets/images/strangebee-logo.svg b/docs/assets/images/strangebee-logo.svg old mode 100755 new mode 100644 index b0fc3edfb3..ad781e98b5 --- a/docs/assets/images/strangebee-logo.svg +++ b/docs/assets/images/strangebee-logo.svg @@ -1,35 +1,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/strangebee.svg b/docs/assets/images/strangebee.svg index 8500ad65ce..9ecdb22347 100644 --- a/docs/assets/images/strangebee.svg +++ b/docs/assets/images/strangebee.svg @@ -1,45 +1,45 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/thehive-favicon.svg b/docs/assets/images/thehive-favicon.svg index b0fc3edfb3..ad781e98b5 100644 --- a/docs/assets/images/thehive-favicon.svg +++ b/docs/assets/images/thehive-favicon.svg @@ -1,35 +1,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/thehive-horizontal-light.svg b/docs/assets/images/thehive-horizontal-light.svg index 8e065db02c..0bf529dc1d 100644 --- a/docs/assets/images/thehive-horizontal-light.svg +++ b/docs/assets/images/thehive-horizontal-light.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/thehive-logo.svg b/docs/assets/images/thehive-logo.svg new file mode 100644 index 0000000000..d4e32318ea --- /dev/null +++ b/docs/assets/images/thehive-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/docs/assets/js/main.js b/docs/assets/js/main.js new file mode 100644 index 0000000000..806be6a5f3 --- /dev/null +++ b/docs/assets/js/main.js @@ -0,0 +1,52 @@ +document.addEventListener('click', e=>{ + if(e.target.matches('.md-search__overlay')) { + let x = document.querySelector('[data-md-toggle=search]:checked'); + x.checked = 0; setTimeout(x=>x.checked = 0, 100, x); + document.activeElement.blur(); + } +}); + +(()=>{ + var initMarker = false; + function initMarkers() { + [...document.querySelectorAll('[data-marker]')].forEach(marker => { + var list = marker.querySelector('.list'); + var mark = marker.querySelector('[data-mark]'); + list.style.setProperty('--marker-h', '0px'); + + if (!mark.hasListener) { + mark.addEventListener('click', () => { + var isExpanded = marker.classList.contains('expand'); + + if (isExpanded) { + marker.classList.remove('expand'); + list.style.setProperty('--marker-h', '0px'); + } else { + var inner = list.firstElementChild; + var height = inner.scrollHeight + 'px'; + marker.classList.add('expand'); + list.style.setProperty('--marker-h', height); + } + }); + mark.hasListener = true; + } + }); + initMarker = true; + } + + function resetMarkers() { + [...document.querySelectorAll('[data-marker]')].forEach(marker => { + marker.classList.remove('expand'); + marker.querySelector('.list').style.setProperty('--marker-h', ''); + }); + initMarker = false; + } + + function checkMarkers() { + if (window.innerWidth <= 768 && !initMarker) initMarkers(); + else if (window.innerWidth > 768 && initMarker) resetMarkers(); + } + + window.addEventListener('DOMContentLoaded', checkMarkers); + window.addEventListener('resize', checkMarkers); +})(); \ No newline at end of file diff --git a/docs/assets/stylesheets/badge.css b/docs/assets/stylesheets/badge.css index 84f1912fa9..add3d03c44 100644 --- a/docs/assets/stylesheets/badge.css +++ b/docs/assets/stylesheets/badge.css @@ -1,39 +1,39 @@ -/* - * This file implements styling for badge shortcodes. - * It is adapted from the MkDocs Material project: - * https://github.com/squidfunk/mkdocs-material/blob/master/src/overrides/assets/stylesheets/custom/_typeset.scss - * - * The original work is licensed under the MIT License: - * https://github.com/squidfunk/mkdocs-material/blob/master/LICENSE - * © Martin Donath / MkDocs Material - * - * The styles have been compiled into standard CSS to fit our project structure. - */ - -.md-typeset .mdx-badge { - font-size: 0.85em; -} - -.md-typeset .mdx-badge--right { - float: right; - margin-left: 0.35em; -} - -.md-typeset .mdx-badge__icon { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; - background-color: var(--badge-icon-bg-color, #FFC72C); - padding: .2rem; -} - -.md-typeset .mdx-badge__icon:last-child { - border-radius: px2rem(2px); -} - -.md-typeset .mdx-badge__text { - border-bottom-right-radius: 0.5rem; - border-top-right-radius: 0.5rem; - box-shadow: 0 0 0 2px inset var(--badge-border-color, #FFC72C); - padding: .2rem .3rem; - font-weight: bold; +/* + * This file implements styling for badge shortcodes. + * It is adapted from the MkDocs Material project: + * https://github.com/squidfunk/mkdocs-material/blob/master/src/overrides/assets/stylesheets/custom/_typeset.scss + * + * The original work is licensed under the MIT License: + * https://github.com/squidfunk/mkdocs-material/blob/master/LICENSE + * © Martin Donath / MkDocs Material + * + * The styles have been compiled into standard CSS to fit our project structure. + */ + +.md-typeset .mdx-badge { + font-size: 0.85em; +} + +.md-typeset .mdx-badge--right { + float: right; + margin-left: 0.35em; +} + +.md-typeset .mdx-badge__icon { + border-top-left-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; + background-color: var(--badge-icon-bg-color, #FFC72C); + padding: .2rem; +} + +.md-typeset .mdx-badge__icon:last-child { + border-radius: px2rem(2px); +} + +.md-typeset .mdx-badge__text { + border-bottom-right-radius: 0.5rem; + border-top-right-radius: 0.5rem; + box-shadow: 0 0 0 2px inset var(--badge-border-color, #FFC72C); + padding: .2rem .3rem; + font-weight: bold; } \ No newline at end of file diff --git a/docs/assets/stylesheets/extra.css b/docs/assets/stylesheets/extra.css index 8e4115bcf6..4f17df6df3 100644 --- a/docs/assets/stylesheets/extra.css +++ b/docs/assets/stylesheets/extra.css @@ -1 +1,174 @@ -:root{--color-black: #1b1b34;--color-white: #ffffff;--color-blue-primary: #54c1c2;--color-blue-primary--dark: #459b9c;--color-blue-primary--light: rgba(84, 193, 194, 0.1);--color-blue-primary--hover: #5cd0d1;--color-orange-amber: #ffa940;--color-orange-amber--strict: #d77e15;--color-yellow: #e9cf42;--color-yellow--light: rgba(233, 207, 66, 0.1);--color-social--twitter: #00acee;--md-primary-fg-color: var(--color-black);--md-primary-fg-color--light: var(--color-yellow);--md-primary-fg-color--dark: var(--color-black);--md-accent-fg-color: var(--color-blue-primary--dark)}:root{--fontWeight-bold: 700;--fontWeight-regular: 400;--fontWeight-light: 300}:root{--size-large: 2rem;--size-medium: 1.5rem;--size-normal: 1rem;--size-small: 0.5rem;--size-xsmall: 0.25rem;--size-mini: 0.125rem;--size-large-px: 32px;--size-medium-px: 24px;--size-normal-px: 16px;--size-small-px: 8px;--size-xsmall-px: 4px;--size-mini-px: 2px}.md-banner a,.md-banner a:hover,.md-banner a:focus{color:currentColor}.md-banner .twitter{color:var(--color-social--twitter)}.md-header__topic{display:none}.md-content{padding-left:4%;padding-right:3%}.md-content a{text-decoration:underline}.md-content label a{text-decoration:none}[dir=ltr] .md-sidebar{width:15rem}[dir=ltr] .md-sidebar--primary{padding-right:3%;left:-15.1rem}[dir=ltr] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{-webkit-transform:translateX(15.1rem);transform:translateX(15.1rem)}.md-typeset h1,.md-typeset h2{color:rgba(0,0,0,.9333333333);font-weight:500}.md-main{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.md-main__inner{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%}.md-container:not(:has(.tx-container)) .md-main__inner{min-height:calc(100vh - 215px)}@media only screen and (max-width: 76.1875rem){.md-container:not(:has(.tx-container)) .md-main__inner{min-height:calc(100vh - 161px)}}@media only screen and (max-width: 719px){.md-container:not(:has(.tx-container)) .md-main__inner{min-height:calc(100vh - 190px)}}.md-footer-meta__inner{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:var(--size-normal)}.md-footer-social{padding-top:20px}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left-color:var(--color-yellow)}[dir=ltr] .md-nav__link:hover,[dir=ltr] .md-nav__link:focus{color:var(--color-blue-primary--dark)}[dir=ltr] .md-nav__item .md-nav__link--active{color:var(--color-blue-primary--dark);font-weight:var(--fontWeight-bold)}.md-search-result mark{font-weight:var(--fontWeight-bold)}.tx-container{padding-top:0rem;background:var(--md-primary-fg-color)}.tx-hero{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:var(--size-large-px);margin:var(--size-large-px) 0;padding-left:var(--size-normal-px);padding-right:var(--size-normal-px);color:var(--md-primary-bg-color)}@media only screen and (max-width: 56.25rem){.tx-hero{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--size-normal-px)}}.tx-hero h1{margin-bottom:var(--size-normal);color:currentColor;font-weight:var(--fontWeight-bold)}@media only screen and (max-width: 30rem){.tx-hero h1{font-size:1.4rem}}.tx-hero__content{padding-bottom:var(--size-normal);margin:0 auto}@media only screen and (min-width: 60rem){.tx-hero__content{max-width:22rem;margin-top:3.5rem;margin-bottom:3.5rem;margin-left:0;margin-right:4rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center}}.tx-hero__image{width:50%;max-height:17rem;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;padding-left:2.5rem;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}@media only screen and (max-width: 76.1875rem){.tx-hero__image{padding-left:0}}@media only screen and (max-width: 56.25rem){.tx-hero__image{width:100%;max-width:27rem;margin-left:auto;margin-right:auto}}.tx-hero .md-button{margin-top:var(--size-small);margin-right:var(--size-small);color:var(--md-primary-bg-color)}.tx-hero .md-button--primary{background-color:var(--md-primary-bg-color);color:var(--md-primary-fg-color--dark);border-color:var(--md-primary-bg-color)}.tx-hero .md-button:focus,.tx-hero .md-button:hover{background-color:var(--md-primary-fg-color--light);color:var(--color-black);border-color:var(--md-primary-fg-color--light)}.top-hr{margin-top:42px}@media only screen and (min-width: 76.1875rem){.top-hr{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:61rem;margin-right:auto;margin-left:auto;padding:0 .2rem}}@media only screen and (min-width: 76.1875rem){.bottom-hr{margin-top:10px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;max-width:61rem;margin-right:auto;margin-left:auto;padding:0 .2rem}}.feature{font-family:"Lato",sans-serif;font-weight:300;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 15px;word-break:break-word}.feature h2 svg{height:30px;float:left;margin-right:10px;-webkit-transform:translateY(10%);transform:translateY(10%)}.feature h2{color:#333;font-weight:300;font-size:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:normal;margin-top:20px;margin-bottom:10px;font-family:inherit}.feature p{font-size:var(--size-normal-px);line-height:1.8em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color:#111;margin:0 0 10px;display:block}.feature__grid{padding:0;display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--size-normal-px)}@media only screen and (max-width: 60rem){.feature__grid{grid-template-columns:repeat(2, 1fr)}}@media only screen and (max-width: 36.625rem){.feature__grid{grid-template-columns:1fr}}.feature__card{border:1px solid rgba(0,0,0,.1);padding:var(--size-normal-px);border-radius:4px;list-style:none}.feature__title{font-size:18px;font-weight:bold;color:var(--md-primary-fg-color)}.feature__content{font-size:14px;color:var(--md-primary-fg-color)}@media only screen and (min-width: 76.1875rem){.feature-item{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.feature-item:hover{background-color:#c6f3ff;border-radius:3px}}.th-container{max-width:61rem;width:100%;padding-left:var(--size-normal-px);padding-right:var(--size-normal-px);margin-left:auto;margin-right:auto}.section__title{font-size:25px;font-weight:bolder;color:var(--md-primary-fg-color)}.logos{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto}.logos img{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:25px;max-height:130px;vertical-align:middle}.hr-logos{margin-top:0;margin-bottom:30px}.text-center{text-align:center;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;margin-top:15px;font-family:"Nunito",sans-serif;font-size:23px;font-weight:300;padding-bottom:10px}.hr{border-bottom:1px solid #eee;width:100%;margin:20px 0}/*# sourceMappingURL=extra.css.map */ \ No newline at end of file +@forward "./variables/"; +@forward "./bases/"; +@forward "./components/"; +html { + scroll-behavior: smooth; + font-size: 21px; } + @media (max-width: 1220px) { + html { + font-size: 20px; } } + @media (max-width: 480px) { + html { + font-size: 20px; } } + +header.md-header { + background: #fff; + display: flex; + flex-direction: column; + align-items: stretch; + box-shadow: unset !important; + border-bottom: 3px solid #ebeef5; } + @media (max-width: 1220px) { + header.md-header .logo-frame { + flex-grow: 1; } } + header.md-header .logo-frame img { + display: inline-block; + height: 3rem; + width: auto; } + @media (max-width: 480px) { + header.md-header .logo-frame img { + height: 2.9rem; } } + @media (max-width: 360px) { + header.md-header .logo-frame img { + height: 2.5rem; } } + header.md-header .md-header__inner { + padding: .45rem 1.76rem; + max-width: unset; + display: flex; + align-items: center; + flex-direction: row; + justify-content: space-between; + margin: unset; } + @media (max-width: 1220px) { + header.md-header .md-header__inner { + padding: .45rem 1.76rem; } } + @media (max-width: 480px) { + header.md-header .md-header__inner { + padding: .05rem .3rem; + justify-content: flex-start; + gap: .03rem; } } + header.md-header .md-header__button { + background: #1969FF; + border-radius: 5.20833rem; + color: #fff !important; + flex-shrink: 0; + z-index: 0; } + @media (max-width: 480px) { + header.md-header .md-header__button { + padding: .5rem; } } + header.md-header .md-tabs { + background: unset; } + header.md-header .md-tabs .md-grid, header.md-header .md-tabs__list { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + gap: 1.33em; + --md-accent-fg-color: #000; } + header.md-header .md-tabs__item { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; } + header.md-header .md-tabs__link { + color: #000; + text-align: center; + font-family: 'Poppins'; + font-size: 0.7rem; + font-style: normal; + font-weight: 500; + line-height: 144%; + margin-top: unset !important; } + header.md-header .md-search__inner { + display: flex; + flex-direction: column; + align-items: stretch; + justify-content: flex-start; + transition: margin .35s ease; } + header.md-header .md-search__icon { + position: relative; + left: unset; + top: unset; + display: inline-block; + padding: .38rem; + background: #1969FF; + border-radius: 5.20833rem; + color: #fff !important; } + header.md-header .md-search__form { + background: #ebecef; + border-radius: 5rem !important; + padding: .31rem .75rem; + box-sizing: content-box; + display: inline-flex; + align-items: center; + justify-content: flex-start; + flex-direction: row; } + @media (max-width: 959px) { + header.md-header .md-search__form { + border-radius: 0 !important; + flex-direction: row-reverse; + gap: .7rem; } + header.md-header .md-search__form .md-search__options { + gap: .15rem; + top: .5rem; } + header.md-header .md-search__form .md-search__icon { + left: unset !important; } } + header.md-header .md-search__output { + padding-top: 1.5rem; + margin-top: -.7rem; + border-bottom-left-radius: 1.5rem; + border-bottom-right-radius: 1.5rem; + background: #ebecef; } + header.md-header .md-search__suggest { + padding-left: 0 !important; + pointer-events: none; } + header.md-header .md-search__options { + display: inline-flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + gap: .33rem; + right: .2rem; + top: .2rem; } + header.md-header .md-search__options .md-icon:hover { + opacity: 1 !important; } + header.md-header .md-search__input { + padding: 0 !important; + overflow: hidden; + font-family: 'Poppins'; + font-size: 0.72917rem; + font-style: normal; + font-weight: 400; + line-height: 144%; + color: #000; } + header.md-header .md-search__input::placeholder { + color: #949DAA; } + @media (max-width: 480px) { + header.md-header .md-logo { + flex-grow: 1; } } + header.md-header .md-logo img { + height: 4.58333rem; + width: auto; } + +footer { + margin-top: 5rem; } + @media (max-width: 480px) { + footer { + margin-top: 0rem; } } + +[data-md-toggle=search]:checked ~ .md-header .md-tabs { + z-index: -1; } +[data-md-toggle=search]:checked ~ .md-header .md-search__inner { + margin-left: -23rem; } + @media (max-width: 1220px) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + margin-left: 0rem; } } + @media (max-width: 480px) { + [data-md-toggle=search]:checked ~ .md-header .md-search__inner { + font-size: 20px; } } + +@media (min-width: 1219px) { + body:has(section.docs-hero) .md-main * { + display: none; } } + +/*# sourceMappingURL=extra.css.map */ diff --git a/docs/assets/stylesheets/extra.css.map b/docs/assets/stylesheets/extra.css.map index b6a7dc4d09..f347220474 100644 --- a/docs/assets/stylesheets/extra.css.map +++ b/docs/assets/stylesheets/extra.css.map @@ -1 +1,7 @@ -{"version":3,"sources":["../../../scss/variables/__colors.scss","../../../scss/variables/__fonts.scss","../../../scss/variables/__sizes.scss","../../../scss/components/__md-banner.scss","../../../scss/components/__md-header.scss","../../../scss/components/__md-content.scss","../../../scss/components/__md-sidebar.scss","../../../scss/components/__md-typeset.scss","../../../scss/components/__md-main.scss","../../../scss/abstracts/__mixins.scss","../../../scss/components/__md-footer.scss","../../../scss/components/__md-nav.scss","../../../scss/components/__md-search.scss","../../../scss/components/__tx-container.scss","../../../scss/components/__tx-hero.scss","../../../scss/components/__top-hr.scss","../../../scss/components/__bottom-hr.scss","../../../scss/components/__feature.scss","../../../scss/components/__th-container.scss","../../../scss/components/__section.scss","../../../scss/components/__logos.scss","../../../scss/components/__hr-logos.scss","../../../scss/components/__text-center.scss","../../../scss/components/__hr.scss"],"names":[],"mappings":"AAAA,MACC,sBAAA,CACA,sBAAA,CAEA,6BAAA,CACA,mCAAA,CACA,oDAAA,CACA,oCAAA,CAEA,6BAAA,CACA,qCAAA,CAEA,uBAAA,CACA,8CAAA,CAEA,gCAAA,CAGA,yCAAA,CACA,iDAAA,CACA,+CAAA,CAEA,qDAAA,CCtBD,MACC,sBAAA,CACA,yBAAA,CACA,uBAAA,CCHD,MACC,kBAAA,CACA,qBAAA,CACA,mBAAA,CACA,oBAAA,CACA,sBAAA,CACA,qBAAA,CAEA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,oBAAA,CACA,qBAAA,CACA,mBAAA,CCZA,mDAGC,kBAAA,CAGD,oBACC,kCAAA,CCRF,kBACC,YAAA,CCDD,YACC,eAAA,CACA,gBAAA,CAEA,cACC,yBAAA,CAGD,oBACC,oBAAA,CCND,sBACC,WAAA,CAEA,+BACC,gBAAA,CAEA,aAAA,CAIF,6EACC,qCAAA,CAAA,6BAAA,CCbD,8BAEC,6BAAA,CACA,eAAA,CCFF,SACC,kBAAA,CAAA,mBAAA,CAAA,WAAA,CAEA,gBACC,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,WAAA,CAIF,uDACC,8BAAA,CCXA,+CDUD,uDAIE,8BAAA,CAAA,CCdD,0CDUD,uDAQE,8BAAA,CAAA,CElBD,uBACC,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,kBAAA,CAAA,cAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,6BAAA,CACA,6BAAA,CAGD,kBACC,gBAAA,CCRD,qFACC,qCAAA,CAIA,4DAEC,qCAAA,CAGF,8CACC,qCAAA,CACA,kCAAA,CCbF,uBACC,kCAAA,CCDD,cACC,gBAAA,CACA,qCAAA,CAAA,SCCA,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,6BAAA,CACA,wBAAA,CAEA,6BAAA,CACA,kCAAA,CACA,mCAAA,CAEA,gCAAA,CLXA,6CKCD,SAaE,2BAAA,CAAA,4BAAA,CAAA,yBAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,CAGD,YACC,gCAAA,CACA,kBAAA,CACA,kCAAA,CLrBD,0CKkBA,YAME,gBAAA,CAAA,CAIF,kBACC,iCAAA,CACA,aAAA,CLxBD,0CKsBA,kBAKE,eAAA,CACA,iBAAA,CACA,oBAAA,CACA,aAAA,CACA,iBAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,CAIF,gBACC,SAAA,CACA,gBAAA,CACA,2BAAA,CAAA,gBAAA,CAAA,OAAA,CACA,mBAAA,CACA,0BAAA,CAAA,uBAAA,CAAA,kBAAA,CL/CD,+CK0CA,gBAQE,cAAA,CAAA,CLlDF,6CK0CA,gBAYE,UAAA,CACA,eAAA,CACA,gBAAA,CACA,iBAAA,CAAA,CAIF,oBACC,4BAAA,CACA,8BAAA,CACA,gCAAA,CAGD,6BACC,2CAAA,CACA,sCAAA,CACA,uCAAA,CAIA,oDAEC,kDAAA,CACA,wBAAA,CACA,8CAAA,CC7EH,QACC,eAAA,CNIA,+CMLD,QAIE,UAAA,CACA,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,eAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CAAA,CNJD,+COLD,WAEE,eAAA,CACA,UAAA,CACA,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,eAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CAAA,CCRF,SACC,6BAAA,CACA,eAAA,CACA,6BAAA,CAAA,qBAAA,CACA,cAAA,CACA,qBAAA,CAEA,gBACC,WAAA,CACA,UAAA,CACA,iBAAA,CACA,iCAAA,CAAA,yBAAA,CAGD,YACC,UAAA,CACA,eAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CACA,kBAAA,CACA,mBAAA,CAGD,WACC,+BAAA,CACA,iBAAA,CACA,iCAAA,CACA,kCAAA,CACA,UAAA,CACA,eAAA,CACA,aAAA,CAGD,eACC,SAAA,CACA,YAAA,CACA,oCAAA,CACA,yBAAA,CR1CD,0CQsCA,eAOE,oCAAA,CAAA,CR7CF,8CQsCA,eAWE,yBAAA,CAAA,CAIF,eACC,+BAAA,CACA,6BAAA,CACA,iBAAA,CACA,eAAA,CAGD,gBACC,cAAA,CACA,gBAAA,CACA,gCAAA,CAGD,kBACC,cAAA,CACA,gCAAA,CR9DD,+CQiEA,cAEE,kBAAA,CAAA,UAAA,CAAA,MAAA,CACA,WAAA,CAEA,oBACC,wBAAA,CACA,iBAAA,CAAA,CC/EJ,cACC,eAAA,CACA,UAAA,CACA,kCAAA,CACA,mCAAA,CACA,gBAAA,CACA,iBAAA,CCLA,gBACC,cAAA,CACA,kBAAA,CACA,gCAAA,CCJF,OACC,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CACA,uBAAA,CAAA,oBAAA,CAAA,sBAAA,CACA,6BAAA,CAAA,4BAAA,CAAA,sBAAA,CAAA,kBAAA,CACA,aAAA,CAEA,WACC,kBAAA,CAAA,iBAAA,CAAA,aAAA,CACA,YAAA,CACA,gBAAA,CACA,qBAAA,CCXF,UACC,YAAA,CACA,kBAAA,CCFD,aACC,iBAAA,CACA,kBAAA,CACA,iBAAA,CACA,iBAAA,CACA,gBAAA,CACA,eAAA,CACA,+BAAA,CACA,cAAA,CACA,eAAA,CACA,mBAAA,CCVD,IACC,4BAAA,CACA,UAAA,CACA,aAAA","file":"extra.css","sourcesContent":[":root {\n\t--color-black: #1b1b34;\n\t--color-white: #ffffff;\n\n\t--color-blue-primary: #54c1c2;\n\t--color-blue-primary--dark: #459b9c;\n\t--color-blue-primary--light: rgba(84, 193, 194, 0.1);\n\t--color-blue-primary--hover: #5cd0d1;\n\n\t--color-orange-amber: #ffa940;\n\t--color-orange-amber--strict: #d77e15;\n\n\t--color-yellow: #e9cf42;\n\t--color-yellow--light: rgba(233, 207, 66, 0.1);\n\n\t--color-social--twitter: #00acee;\n\n\t// theme overides\n\t--md-primary-fg-color: var(--color-black);\n\t--md-primary-fg-color--light: var(--color-yellow);\n\t--md-primary-fg-color--dark: var(--color-black);\n\n\t--md-accent-fg-color: var(--color-blue-primary--dark);\n}\n",":root {\n\t--fontWeight-bold: 700;\n\t--fontWeight-regular: 400;\n\t--fontWeight-light: 300;\n}\n",":root {\n\t--size-large: 2rem;\n\t--size-medium: 1.5rem;\n\t--size-normal: 1rem;\n\t--size-small: 0.5rem;\n\t--size-xsmall: 0.25rem;\n\t--size-mini: 0.125rem;\n\n\t--size-large-px: 32px;\n\t--size-medium-px: 24px;\n\t--size-normal-px: 16px;\n\t--size-small-px: 8px;\n\t--size-xsmall-px: 4px;\n\t--size-mini-px: 2px;\n}\n",".md-banner {\n\ta,\n\ta:hover,\n\ta:focus {\n\t\tcolor: currentColor;\n\t}\n\n\t.twitter {\n\t\tcolor: var(--color-social--twitter);\n\t}\n}\n",".md-header__topic {\n\tdisplay: none;\n}\n",".md-content {\n\tpadding-left: 4%;\n\tpadding-right: 3%;\n\n\ta {\n\t\ttext-decoration: underline;\n\t}\n\n\tlabel a {\n\t\ttext-decoration: none;\n\t}\n}\n","@use \"../abstracts/\" as *;\n\n[dir=\"ltr\"] {\n\t.md-sidebar {\n\t\twidth: 15rem;\n\n\t\t&--primary {\n\t\t\tpadding-right: 3%;\n\n\t\t\tleft: -15.1rem;\n\t\t}\n\t}\n\n\t[data-md-toggle=\"drawer\"]:checked ~ .md-container .md-sidebar--primary {\n\t\ttransform: translateX(15.1rem);\n\t}\n}\n",".md-typeset {\n\th1,\n\th2 {\n\t\tcolor: #000000ee;\n\t\tfont-weight: 500;\n\t}\n}\n","@use \"../abstracts/\" as *;\n\n.md-main {\n\tflex-grow: 0;\n\n\t&__inner {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t}\n}\n\n.md-container:not(:has(.tx-container)) .md-main__inner {\n\tmin-height: calc(100vh - 215px);\n\n\t@include respond-max($breakpoint-laptop) {\n\t\tmin-height: calc(100vh - 161px);\n\t}\n\n\t@include respond-max(719px) {\n\t\tmin-height: calc(100vh - 190px);\n\t}\n}\n","@mixin respond-max($breakpoint) {\n\t@media only screen and (max-width: $breakpoint) {\n\t\t@content;\n\t}\n}\n\n@mixin respond-min($breakpoint) {\n\t@media only screen and (min-width: $breakpoint) {\n\t\t@content;\n\t}\n}\n",".md-footer {\n\t&-meta__inner {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tjustify-content: space-between;\n\t\tmargin-top: var(--size-normal);\n\t}\n\n\t&-social {\n\t\tpadding-top: 20px;\n\t}\n}\n","[dir=\"ltr\"] {\n\t.md-nav--integrated > .md-nav__list > .md-nav__item--active .md-nav--secondary {\n\t\tborder-left-color: var(--color-yellow);\n\t}\n\n\t.md-nav__link {\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tcolor: var(--color-blue-primary--dark);\n\t\t}\n\t}\n\t.md-nav__item .md-nav__link--active {\n\t\tcolor: var(--color-blue-primary--dark);\n\t\tfont-weight: var(--fontWeight-bold);\n\t}\n}\n",".md-search-result mark {\n\tfont-weight: var(--fontWeight-bold);\n}\n",".tx-container {\n\tpadding-top: 0rem;\n\tbackground: var(--md-primary-fg-color);\n}\n","@use \"../abstracts\" as *;\n\n.tx-hero {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: var(--size-large-px);\n\n\tmargin: var(--size-large-px) 0;\n\tpadding-left: var(--size-normal-px);\n\tpadding-right: var(--size-normal-px);\n\n\tcolor: var(--md-primary-bg-color);\n\n\t@include respond-max($breakpoint-small) {\n\t\tflex-direction: column;\n\t\tgap: var(--size-normal-px);\n\t}\n\n\th1 {\n\t\tmargin-bottom: var(--size-normal);\n\t\tcolor: currentColor;\n\t\tfont-weight: var(--fontWeight-bold);\n\n\t\t@include respond-max(30rem) {\n\t\t\tfont-size: 1.4rem;\n\t\t}\n\t}\n\n\t&__content {\n\t\tpadding-bottom: var(--size-normal);\n\t\tmargin: 0 auto;\n\n\t\t@include respond-min($breakpoint-medium) {\n\t\t\tmax-width: 22rem;\n\t\t\tmargin-top: 3.5rem;\n\t\t\tmargin-bottom: 3.5rem;\n\t\t\tmargin-left: 0;\n\t\t\tmargin-right: 4rem;\n\t\t\talign-items: center;\n\t\t}\n\t}\n\n\t&__image {\n\t\twidth: 50%;\n\t\tmax-height: 17rem;\n\t\torder: 1;\n\t\tpadding-left: 2.5rem;\n\t\theight: fit-content;\n\n\t\t@include respond-max($breakpoint-laptop) {\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\t@include respond-max($breakpoint-small) {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 27rem;\n\t\t\tmargin-left: auto;\n\t\t\tmargin-right: auto;\n\t\t}\n\t}\n\n\t.md-button {\n\t\tmargin-top: var(--size-small);\n\t\tmargin-right: var(--size-small);\n\t\tcolor: var(--md-primary-bg-color);\n\t}\n\n\t.md-button--primary {\n\t\tbackground-color: var(--md-primary-bg-color);\n\t\tcolor: var(--md-primary-fg-color--dark);\n\t\tborder-color: var(--md-primary-bg-color);\n\t}\n\n\t.md-button {\n\t\t&:focus,\n\t\t&:hover {\n\t\t\tbackground-color: var(--md-primary-fg-color--light);\n\t\t\tcolor: var(--color-black);\n\t\t\tborder-color: var(--md-primary-fg-color--light);\n\t\t}\n\t}\n}\n","@use \"../abstracts\" as *;\n\n.top-hr {\n\tmargin-top: 42px;\n\n\t@include respond-min($breakpoint-laptop) {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tmax-width: 61rem;\n\t\tmargin-right: auto;\n\t\tmargin-left: auto;\n\t\tpadding: 0 0.2rem;\n\t}\n}\n","@use \"../abstracts\" as *;\n\n.bottom-hr {\n\t@include respond-min($breakpoint-laptop) {\n\t\tmargin-top: 10px;\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tmax-width: 61rem;\n\t\tmargin-right: auto;\n\t\tmargin-left: auto;\n\t\tpadding: 0 0.2rem;\n\t}\n}\n","@use \"../abstracts\" as *;\n\n.feature {\n\tfont-family: \"Lato\", sans-serif;\n\tfont-weight: 300;\n\tbox-sizing: border-box;\n\tpadding: 0 15px;\n\tword-break: break-word;\n\n\th2 svg {\n\t\theight: 30px;\n\t\tfloat: left;\n\t\tmargin-right: 10px;\n\t\ttransform: translateY(10%);\n\t}\n\n\th2 {\n\t\tcolor: #333;\n\t\tfont-weight: 300;\n\t\tfont-size: 25px;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\tline-height: normal;\n\t\tmargin-top: 20px;\n\t\tmargin-bottom: 10px;\n\t\tfont-family: inherit;\n\t}\n\n\tp {\n\t\tfont-size: var(--size-normal-px);\n\t\tline-height: 1.8em;\n\t\ttext-rendering: optimizeLegibility;\n\t\t-webkit-font-smoothing: antialiased;\n\t\tcolor: #111;\n\t\tmargin: 0 0 10px;\n\t\tdisplay: block;\n\t}\n\n\t&__grid {\n\t\tpadding: 0;\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(3, 1fr);\n\t\tgap: var(--size-normal-px);\n\n\t\t@include respond-max($breakpoint-medium) {\n\t\t\tgrid-template-columns: repeat(2, 1fr);\n\t\t}\n\n\t\t@include respond-max($breakpoint-tablet) {\n\t\t\tgrid-template-columns: 1fr;\n\t\t}\n\t}\n\n\t&__card {\n\t\tborder: 1px solid rgba(0, 0, 0, 0.1);\n\t\tpadding: var(--size-normal-px);\n\t\tborder-radius: 4px;\n\t\tlist-style: none;\n\t}\n\n\t&__title {\n\t\tfont-size: 18px;\n\t\tfont-weight: bold;\n\t\tcolor: var(--md-primary-fg-color);\n\t}\n\n\t&__content {\n\t\tfont-size: 14px;\n\t\tcolor: var(--md-primary-fg-color);\n\t}\n\n\t&-item {\n\t\t@include respond-min($breakpoint-laptop) {\n\t\t\tflex: 1;\n\t\t\tmin-width: 0;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: rgb(198, 243, 298);\n\t\t\t\tborder-radius: 3px;\n\t\t\t}\n\t\t}\n\t}\n}\n",".th-container {\n\tmax-width: 61rem;\n\twidth: 100%;\n\tpadding-left: var(--size-normal-px);\n\tpadding-right: var(--size-normal-px);\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n",".section {\n\t&__title {\n\t\tfont-size: 25px;\n\t\tfont-weight: bolder;\n\t\tcolor: var(--md-primary-fg-color);\n\t}\n}\n",".logos {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-flow: row wrap;\n\tmargin: 0 auto;\n\n\timg {\n\t\tflex: 1 1 auto;\n\t\tpadding: 25px;\n\t\tmax-height: 130px;\n\t\tvertical-align: middle;\n\t}\n}\n",".hr-logos {\n\tmargin-top: 0;\n\tmargin-bottom: 30px;\n}\n",".text-center {\n\ttext-align: center;\n\tpadding-right: 15px;\n\tpadding-left: 15px;\n\tmargin-right: auto;\n\tmargin-left: auto;\n\tmargin-top: 15px;\n\tfont-family: \"Nunito\", sans-serif;\n\tfont-size: 23px;\n\tfont-weight: 300;\n\tpadding-bottom: 10px;\n}\n",".hr {\n\tborder-bottom: 1px solid #eee;\n\twidth: 100%;\n\tmargin: 20px 0;\n}\n"]} \ No newline at end of file +{ +"version": 3, +"mappings": "AAAA,uBAAuB;AACvB,mBAAmB;AACnB,wBAAwB;AAMxB,IAAK;EACD,eAAe,EAAE,MAAM;EACvB,SAAS,EAAE,IAAI;EAEf,0BAA2B;IAJ/B,IAAK;MAKG,SAAS,EAAE,IAAI;EAGnB,yBAA2B;IAR/B,IAAK;MASG,SAAS,EAAE,IAAI;;AAKvB,gBAAiB;EACb,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,OAAO;EACpB,UAAU,EAAE,gBAAgB;EAC5B,aAAa,EAAE,iBAAiB;EAG5B,0BAA2B;IAD/B,4BAAY;MAEJ,SAAS,EAAE,CAAC;EAGhB,gCAAI;IACA,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IAEX,yBAA2B;MAL/B,gCAAI;QAMI,MAAM,EAAE,MAAM;IAGlB,yBAA0B;MAT9B,gCAAI;QAUI,MAAM,EAAE,MAAM;EAMtB,kCAAS;IACL,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;IACnB,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,aAAa;IAC9B,MAAM,EAAE,KAAK;IAEb,0BAA2B;MAT/B,kCAAS;QAUD,OAAO,EAAE,cAAc;IAG3B,yBAA2B;MAb/B,kCAAS;QAcD,OAAO,EAAE,YAAY;QACrB,eAAe,EAAE,UAAU;QAC3B,GAAG,EAAE,MAAM;EAInB,mCAAU;IACN,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,UAAU;IACzB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;IAIV,yBAA2B;MAT/B,mCAAU;QAUF,OAAO,EAAE,KAAK;EAK1B,yBAAS;IACL,UAAU,EAAE,KAAK;IAEjB,mEACQ;MACJ,OAAO,EAAE,IAAI;MACb,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,MAAM;MACnB,eAAe,EAAE,MAAM;MACvB,GAAG,EAAE,MAAM;MAEX,oBAAoB,CAAC,KAAK;IAG9B,+BAAQ;MACJ,OAAO,EAAE,IAAI;MACb,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,MAAM;MACnB,eAAe,EAAE,UAAU;IAG/B,+BAAQ;MACJ,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,MAAM;MAClB,WAAW,EAAE,SAAS;MACtB,SAAS,EAAE,MAAM;MACjB,UAAU,EAAE,MAAM;MAClB,WAAW,EAAE,GAAG;MAChB,WAAW,EAAE,IAAI;MACjB,UAAU,EAAE,gBAAgB;EAMhC,kCAAS;IACL,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,UAAU;IAC3B,UAAU,EAAE,gBAAgB;EAGhC,iCAAQ;IACJ,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,KAAK;IAEV,OAAO,EAAE,YAAY;IAErB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,UAAU;IACzB,KAAK,EAAE,eAAe;EAG1B,iCAAQ;IACJ,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,WAAW;IAEvB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,UAAU;IAC3B,cAAc,EAAE,GAAG;IAInB,yBAA0B;MAb9B,iCAAQ;QAcA,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,WAAW;QAC3B,GAAG,EAAE,KAAK;QAEV,qDAAoB;UAChB,GAAG,EAAE,MAAM;UACX,GAAG,EAAE,KAAK;QAGd,kDAAiB;UACb,IAAI,EAAE,gBAAgB;EAKlC,mCAAU;IACN,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;IAClB,yBAAyB,EAAE,MAAM;IACjC,0BAA0B,EAAE,MAAM;IAClC,UAAU,EAAE,OAAO;EAGvB,oCAAW;IACP,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,IAAI;EAGxB,oCAAW;IACP,OAAO,EAAE,WAAW;IACpB,cAAc,EAAE,GAAG;IACnB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,UAAU;IAC3B,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,KAAK;IAIN,mDAAQ;MACJ,OAAO,EAAE,YAAY;EAKjC,kCAAS;IACL,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,MAAM;IAEhB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,IAAI;IAEX,+CAAe;MACX,KAAK,EAAE,OAAO;EAStB,yBAA2B;IAJ/B,yBAAS;MAKD,SAAS,EAAE,CAAC;EAGhB,6BAAI;IACA,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,IAAI;;AAKvB,MAAO;EACH,UAAU,EAAE,IAAI;EAEhB,yBAA2B;IAH/B,MAAO;MAIC,UAAU,EAAE,IAAI;;AAKpB,qDAAS;EACL,OAAO,EAAE,EAAE;AAGf,8DAAkB;EACd,WAAW,EAAE,MAAM;EAEnB,0BAA2B;IAH/B,8DAAkB;MAIV,WAAW,EAAE,IAAI;EAGrB,yBAA2B;IAP/B,8DAAkB;MAQV,SAAS,EAAE,IAAI;;AAQf,0BAA2B;EAD/B,sCAAE;IAEM,OAAO,EAAE,IAAI", +"sources": ["../../../scss/extra.scss"], +"names": [], +"file": "extra.css" +} \ No newline at end of file diff --git a/docs/assets/stylesheets/front.css b/docs/assets/stylesheets/front.css new file mode 100644 index 0000000000..45d5d447a3 --- /dev/null +++ b/docs/assets/stylesheets/front.css @@ -0,0 +1,1700 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap'); + +@font-face { + font-family: 'Bauziet'; + font-weight: 600; + font-style: normal; + src: url('/fonts/BauzietSemiBold.woff') format('woff'); + font-display: swap; +} + + +body { + margin: 0; +} + +.paint-filter { + display: none; +} + +.pad { + padding-left: 1.67rem; + padding-right: 1.67rem; +} + +.pad2 { + padding-left: 8.33rem; + padding-right: 8.33rem; +} + +.img-frame { + flex-shrink: 0; +} + +.img-frame img { + width: 100%; + height: 100%; + object-fit: contain; + object-position: center; +} + +.text-decor { + display: inline-block; +} + +.text-decor span { + background: #e8efff; +} + +.text-decor::before, +.text-decor::after { + content: ''; + display: inline-block; + background-image: url('/assets/images/icons/text-decor.svg'); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + width: 0.36458rem; + height: 2.65625rem; +} + +.text-decor::before { + margin-bottom: -0.5rem; +} + +.text-decor::after { + margin-bottom: -0.75rem; + transform: rotate(180deg); +} + +.btn { + filter: url(#liquid-block-5); + display: flex; + flex-direction: row; + align-items: stretch; + gap: 0; + border: none; + outline: none; + background: none; + cursor: pointer; + text-decoration: none; + --size: 3.22917rem; + --font-size: 0.9375rem; + + --icon-end: 15%; + --icon-start: -10%; + --icon-rotate: 45deg; +} + +.btn .txt { + font-family: 'Poppins'; + color: var(--color); + font-size: var(--font-size); + font-style: normal; + font-weight: 500; + line-height: normal; + flex-grow: 1; + + background: var(--bg); + height: var(--size); + + padding: 0 1.25rem; + border-radius: var(--size); + + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + + white-space: nowrap; +} + +.btn .icon { + will-change: transform; + display: inline-block; + width: var(--size); + height: var(--size); + border-radius: var(--size); + + background: var(--bg); + position: relative; + transition: transform .3s ease; + transform-origin: center; + transform: translateX(var(--icon-start)); + flex-shrink: 0; + +} + +.btn .icon::before { + content: ''; + display: inline-block; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + + width: 1.25rem; + height: 1.25rem; + + mask-image: url('/assets/images/icons/link-arrow.svg'); + mask-position: center; + mask-size: contain; + mask-repeat: no-repeat; + + background: var(--color); +} + +.btn:hover .icon { + transform: translateX(var(--icon-end)) rotate(var(--icon-rotate)); +} + +.btn.primary { + --bg: #1969FF; + --color: #fff; +} + +.btn.secondary { + --bg: #FFC72C; + --color: #011635; +} + +.has-icon-end { + align-items: center; + display: flex; + flex-direction: row; + justify-content: flex-start; + gap: var(--icon-pad, .75em); +} + +.has-icon-end:after { + content: ""; + background: var(--icon-src, var(--icon-color, #fff)); + background-position: 50%; + background-repeat: no-repeat; + background-size: contain; + display: inline-block; + height: var(--icon-size, 1.25em); + mask-image: var(--icon); + mask-position: center; + mask-repeat: no-repeat; + mask-size: contain; + transition: var(--icon-transition, none); + width: var(--icon-size, 1.25em); +} + +a.amprise-identity { + color: var(--amprise-identity-color, inherit); + font-family: var(--amprise-identity-font, inherit); + font-size: var(--amprise-identity-font-size, inherit); + font-style: var(--amprise-identity-font-style, inherit); + font-weight: var(--amprise-identity-font-weight, inherit); + text-decoration: none; + white-space: nowrap; +} + +a.amprise-identity>b { + font: inherit; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + font-weight: var(--amprise-identity-accent-weight, inherit); + position: relative; + text-decoration: none; +} + +a.amprise-identity>b:after { + background: var(--amprise-identity-accent-line-color, var(--amprise-identity-color, inherit)); + bottom: -.15em; + content: ""; + height: .07em; + left: 0; + position: absolute; + right: 0; + transition: background .35s ease; +} + +a.amprise-identity:hover>b::after { + background: var(--amprise-identity-accent-line-hover-color, var(--amprise-identity-accent-line-color, var(--amprise-identity-color, inherit))); +} + +.flex-col-str { + display: flex; + flex-direction: column; + align-items: stretch; + justify-content: flex-start; +} + +@media (max-width: 1440px) { + .pad2 { + padding-left: 1.67rem; + padding-right: 1.67rem; + } +} + +@media (max-width: 1024px) { + .pad { + padding-left: 1.6rem; + padding-right: 1.6rem; + } + + .pad2 { + padding-left: 4.05rem; + padding-right: 4.05rem; + } + + .text-decor::before, + .text-decor::after { + width: 0.35rem; + height: 2.15rem; + } + + .btn { + --size: 3.1rem; + --font-size: 0.9rem; + } + + .btn .txt { + padding-left: 1.2rem; + padding-right: 1.2rem; + } +} + +@media (max-width: 768px) { + .pad { + padding-left: 1.2rem; + padding-right: 1.2rem; + } + + .pad2 { + padding-left: 2rem; + padding-right: 2rem; + } + + .text-decor::before, + .text-decor::after { + width: 0.35rem; + height: 1.95rem; + } + + .btn { + --size: 3.1rem; + } +} + +@media (max-width: 480px) { + .pad { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + + .pad2 { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + + .text-decor::before, + .text-decor::after { + width: 0.3rem; + height: 1.75rem; + } + + .text-decor::before { + margin-bottom: -0.3rem; + } + + .text-decor::after { + margin-bottom: -0.8rem; + } + + .btn { + --size: 3.1rem; + --font-size: 0.9rem; + } + + .btn .icon { + display: none; + } +} + +section.docs-hero { + padding-top: 1.5rem; +} + +section.docs-hero .content { + border-radius: 1.67rem; + background: #F5F6F7; + position: relative; + overflow: hidden; + z-index: 1; + padding-top: 3.75rem; +} + +section.docs-hero .content::before { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-image: radial-gradient(#d5deed 0.1rem, transparent 0.1rem); + background-size: 1rem 1rem; + pointer-events: none; + z-index: -1; +} + +section.docs-hero .content>.img-frame { + width: 20rem; + height: 21.32rem; + position: absolute; + top: 50%; + transform: translateY(-50%); +} + +section.docs-hero .content .img-frame.left { + left: 0rem; + max-width: 30%; +} + +section.docs-hero .content .img-frame.right { + right: 0rem; + max-width: 30%; +} + +section.docs-hero .content .img-frame.mobile { + display: none; +} + +section.docs-hero .content .group { + display: flex; + flex-direction: column; + align-items: center; + row-gap: 1.67rem; + margin-bottom: 2.71rem; + position: relative; + z-index: 1; +} + +section.docs-hero .content .group .img-frame { + width: 5.20833rem; + height: 5.20833rem; +} + +section.docs-hero .content .group .title { + color: #011635; + text-align: center; + font-family: 'Bauziet'; + font-size: 2.5rem; + line-height: 120%; + letter-spacing: -0.00625rem; + margin: 0; + max-width: 57%; +} + +section.docs-hero .content .group .subtitle { + color: #011635; + text-align: center; + font-family: 'Poppins'; + font-size: 1.04167rem; + font-style: normal; + font-weight: 400; + line-height: 144%; + margin: 0; +} + +section.docs-hero .content .substract { + padding: 1.67rem; + padding-bottom: 0; + border-radius: 3.2812rem; + background: #fff; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + position: relative; + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + gap: .83rem; + width: fit-content; + margin: 0 auto; +} + +section.docs-hero .content .substract::before, +section.docs-hero .content .substract::after { + content: ''; + bottom: -1px; + mask-image: url('/assets/images/mask/substract.png'); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: right bottom; + + position: absolute; + background: #fff; + + width: 1.25rem; + height: 2.08333rem; +} + +section.docs-hero .content .substract::before { + right: calc(-1px + 100%); +} + +section.docs-hero .content .substract::after { + left: calc(-1px + 100%); + transform: scaleX(-1); +} + +@media (max-width: 1024px) { + section.docs-hero .content { + border-radius: 1.6rem; + padding-top: 3.8rem; + } + + section.docs-hero .content>.img-frame { + width: 15.01065rem; + height: 16rem; + top: 0; + transform: none; + } + + section.docs-hero .content .img-frame.left { + left: 1.55rem; + } + + section.docs-hero .content .img-frame.right { + right: 1.31rem; + } + + section.docs-hero .content .group { + row-gap: 1.4rem; + margin-bottom: 2.6rem; + } + + section.docs-hero .content .group .img-frame { + width: 4.6rem; + height: 4.6rem; + } + + section.docs-hero .content .group .title { + font-size: 1.8rem; + } + + section.docs-hero .content .group .subtitle { + font-size: 0.9rem; + } + + section.docs-hero .content .substract { + padding: 1.6rem; + padding-bottom: 0; + gap: 0.8rem; + border-top-left-radius: 3.15rem; + border-top-right-radius: 3.15rem; + } + + section.docs-hero .content .substract::before, + section.docs-hero .content .substract::after { + width: 1.35rem; + height: 2.15rem; + } +} + +@media (max-width: 768px) { + section.docs-hero .content { + padding-top: 3.2rem; + } + + section.docs-hero .content::before { + background-size: 0.75rem 0.75rem; + } + + section.docs-hero .content>.img-frame { + width: 12.9936rem; + height: 13.85rem; + top: -0.5rem; + } + + section.docs-hero .content .img-frame.left { + left: 1.15rem; + } + + section.docs-hero .content .img-frame.right { + right: 0.38rem; + } + + section.docs-hero .content .group { + row-gap: 1.2rem; + margin-bottom: 2.4rem; + } + + section.docs-hero .content .group .img-frame { + width: 4.4rem; + height: 4.4rem; + } + + section.docs-hero .content .group .title { + font-size: 1.6rem; + } + + section.docs-hero .content .group .subtitle { + font-size: 0.8rem; + max-width: 90%; + margin: 0 auto; + } + + section.docs-hero .content .substract { + padding: 1.2rem; + padding-bottom: 0; + } + + section.docs-hero .content .substract::before, + section.docs-hero .content .substract::after { + width: 1.45rem; + height: 2.3rem; + } +} + +@media (max-width: 650px) { + section.docs-hero .content .substract { + flex-direction: column; + align-items: stretch; + padding: 0.6rem; + padding-bottom: 0; + gap: 0.6rem; + border-top-left-radius: 1.6rem; + border-top-right-radius: 1.6rem; + } + + section.docs-hero .content .substract::before, + section.docs-hero .content .substract::after { + width: 1rem; + height: 1.35rem; + mask-image: url('/assets/images/mask/substract-m.png'); + } +} + +@media (max-width: 480px) { + section.docs-hero { + padding-top: 2rem; + } + + section.docs-hero .content { + padding-top: 5rem; + } + + section.docs-hero .content>.img-frame { + width: 14.81925rem; + height: 7.98025rem; + top: 0.65rem; + left: 50%; + transform: translateX(-50%); + } + + section.docs-hero .content .img-frame.left, + section.docs-hero .content .img-frame.right { + display: none; + } + + section.docs-hero .content .img-frame.mobile { + display: block; + } + + section.docs-hero .content .group { + row-gap: 1rem; + margin-bottom: 2.4rem; + } + + section.docs-hero .content .group .title { + font-size: 1.4rem; + max-width: initial; + } + + section.docs-hero .content .group .subtitle { + font-size: 0.8rem; + } +} + + +section.docs-main { + padding-top: 6.25rem; + padding-bottom: 4.42rem; +} + +section.docs-main .content .section-title { + display: flex; + flex-direction: column; + align-items: center; + row-gap: 0.83rem; +} + +section.docs-main .content .section-title .title { + color: #011635; + text-align: center; + font-family: 'Bauziet'; + font-size: 1.875rem; + line-height: 121%; + letter-spacing: -0.00469rem; + margin: 0; +} + +section.docs-main .content .section-title .subtitle { + color: #011635; + text-align: center; + font-family: 'Poppins'; + font-size: 1.04167rem; + font-style: normal; + font-weight: 400; + line-height: 140%; + margin: 0; +} + +section.docs-main .content .anchor-wrapper { + position: sticky; + top: 5rem; + z-index: 3; + margin-bottom: -3.85rem; +} + +section.docs-main .content .anchor-wrapper .anchor { + display: flex; + align-items: center; + column-gap: 0.83rem; + border-radius: 5.20833rem; + background: #1969FF; + padding: 0.625rem 0.83333rem 0.625rem 1.25rem; + width: fit-content; + margin: 0 auto; +} + +section.docs-main .content .anchor-wrapper .anchor .text { + color: #FFF; + font-family: 'Poppins'; + font-size: 0.83333rem; + font-style: normal; + font-weight: 500; + line-height: 148%; + white-space: nowrap; +} + +section.docs-main .content .anchor-wrapper .anchor .group { + display: flex; + column-gap: 0.42rem; +} + +section.docs-main .content .anchor-wrapper .anchor .group a { + color: #011635; + font-family: 'Poppins'; + font-size: 0.83333rem; + font-style: normal; + font-weight: 500; + line-height: 144%; + padding: 0.54688rem 0.625rem; + border-radius: 1.66667rem; + background: #FFF; + white-space: nowrap; + text-decoration: none; + transition: background 0.3s ease; +} + +section.docs-main .content .anchor-wrapper .anchor .group a:hover { + background: #EBECEF; +} + +section.docs-main .content .block { + display: flex; + flex-direction: column; + align-items: stretch; + row-gap: 6.42rem; + margin-top: 2.3rem; +} + +section.docs-main .content .block .item { + display: flex; + column-gap: 1.25rem; + position: relative; +} + +section.docs-main .content .block .item .anchor-item { + display: block; + width: 1px; + height: 1px; + opacity: 0; + pointer-events: none; + transform: translateY(-10rem); + position: absolute; + left: 0; + top: 0; +} + +section.docs-main .content .block .item .name { + flex-shrink: 0; + position: relative; + padding: 2.34rem 1.67rem 1.67rem 2.34rem; + border-radius: 1.25rem; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + row-gap: 1rem; + min-height: 18.91667rem; + max-width: 15.58333rem; + height: fit-content; + background: #FFC72C; +} + +section.docs-main .content .block .item .name::before { + content: ''; + mask-image: url('/assets/images/mask/card.svg'); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: right top; + position: absolute; + right: -1px; + top: -1px; + width: 9.30583rem; + height: 4.84375rem; + background: #fff; +} + +section.docs-main .content .block .item .name .img-frame { + height: 6.97917rem; +} + +section.docs-main .content .block .item .name .text { + display: flex; + flex-direction: column; + align-items: flex-start; + row-gap: 0.83rem; +} + +section.docs-main .content .block .item .name .text .title { + color: #011635; + font-family: 'Bauziet'; + font-size: 1.875rem; + line-height: 121%; + letter-spacing: -0.00469rem; + margin: 0; +} + +section.docs-main .content .block .item .name .text .subtitle { + color: #011635; + font-family: 'Poppins'; + font-size: 1.04167rem; + font-style: normal; + font-weight: 400; + line-height: 140%; + margin: 0; +} + +section.docs-main .content .block .item .data { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(20rem, 2fr)); + flex-grow: 1; + gap: 1.25rem; +} + +section.docs-main .content .block .item .data .group { + border-radius: 1.66667rem; + padding: 1.66667rem; + display: flex; + flex-direction: column; + align-items: stretch; + row-gap: 1.66667rem; + background: #F5F6F7; + position: relative; + z-index: 1; + overflow: hidden; +} + +section.docs-main .content .block .item .data .group::before { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-image: radial-gradient(#d5deed 0.1rem, transparent 0.1rem); + background-size: 1rem 1rem; + pointer-events: none; + z-index: -1; +} + +section.docs-main .content .block .item .data .group .title { + color: #011635; + font-family: 'Bauziet'; + font-size: 1.45833rem; + line-height: 100%; + letter-spacing: -0.00365rem; + margin: 0; +} + +section.docs-main .content .block .item .data .group .title.text-decor::after, +section.docs-main .content .block .item .data .group .title.text-decor::before { + width: 0.3125rem; + height: 2.03125rem; +} + +section.docs-main .content .block .item .data .group .title.text-decor::before { + margin-bottom: -0.75rem; + transform: translateY(-0.3rem); +} + +section.docs-main .content .block .item .data .group .title.text-decor::after { + margin-bottom: -0.9rem; +} + +section.docs-main .content .block .item .data .group .list { + display: flex; + flex-direction: column; + align-items: stretch; +} + +section.docs-main .content .block .item .data .group .list a { + color: #011635; + font-family: 'Poppins'; + font-size: 0.83333rem; + font-style: normal; + font-weight: 500; + line-height: 148%; + text-decoration: none; + display: flex; + align-items: center; + column-gap: 0.62rem; + padding: 0.83333rem; + border-radius: 0.83333rem; + background: #FFF; + border: 0.185rem solid #F5F6F7; +} + +section.docs-main .content .block .item .data .group .list a::before { + content: ''; + display: inline-block; + width: 1.25rem; + height: 1.25rem; + background-image: url('/assets/images/icons/doc.svg'); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + flex-shrink: 0; + opacity: 0.45; + transition: opacity 0.3s ease; +} + +section.docs-main .content .block .item .data .group .list a::after { + content: ''; + display: inline-block; + width: 1.25rem; + height: 1.25rem; + background-image: url('/assets/images/icons/link-arrow.svg'); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + margin-left: auto; + flex-shrink: 0; + opacity: 0.3; + transition: opacity 0.3s ease; +} + +section.docs-main .content .block .item .data .group .list a:hover::before, +section.docs-main .content .block .item .data .group .list a:hover::after { + opacity: 1; +} + +@media (max-width: 1024px) { + section.docs-main { + padding-top: 5.2rem; + padding-bottom: 2rem; + } + + section.docs-main .content .section-title { + row-gap: 0.8rem; + } + + section.docs-main .content .section-title .title { + font-size: 1.4rem; + } + + section.docs-main .content .section-title .subtitle { + font-size: 0.9rem; + } + + section.docs-main .content .anchor-wrapper { + border-radius: 5rem; + margin-bottom: 0; + } + + section.docs-main .content .anchor-wrapper .anchor { + padding: 0.6rem 0.8rem 0.6rem 1.2rem; + column-gap: 0.8rem; + } + + section.docs-main .content .anchor-wrapper .anchor .group { + column-gap: 0.6rem; + } + + section.docs-main .content .anchor-wrapper .anchor .group a { + font-size: 0.7rem; + padding: 0.525rem 0.6rem; + border-radius: 1.6rem; + } + + section.docs-main .content .block { + row-gap: 5rem; + margin-top: 5rem; + } + + section.docs-main .content .block .item { + column-gap: 1rem; + } + + section.docs-main .content .block .item .name { + padding: 1.4rem 1rem 1rem 1.4rem; + border-radius: 1.2rem; + min-height: 15.25rem; + max-width: 13.15rem; + } + + section.docs-main .content .block .item .name::before { + right: -2px; + } + + section.docs-main .content .block .item .name .img-frame { + height: 6rem; + } + + section.docs-main .content .block .item .name .text { + row-gap: 0.8rem; + } + + section.docs-main .content .block .item .name .text .title { + font-size: 1.4rem; + } + + section.docs-main .content .block .item .name .text .subtitle { + font-size: 0.9rem; + } + + section.docs-main .content .block .item .data { + grid-template-columns: 1fr; + gap: 1.4rem; + } + + section.docs-main .content .block .item .data .group { + border-radius: 1.6rem; + padding: 1rem; + row-gap: 1rem; + } + + section.docs-main .content .block .item .data .group .title { + font-size: 1.2rem; + } + + section.docs-main .content .block .item .data .group .list a { + font-size: 0.7rem; + column-gap: 0.6rem; + padding: 0.8rem; + border-radius: 0.8rem; + } + + section.docs-main .content .block .item .data .group .list a::before, + section.docs-main .content .block .item .data .group .list a::after { + width: 1.2rem; + height: 1.2rem; + } +} + +@media (max-width: 768px) { + section.docs-main { + padding-top: 4rem; + padding-bottom: 0rem; + } + + section.docs-main .content .section-title .title { + font-size: 1.2rem; + } + + section.docs-main .content .section-title .subtitle { + font-size: 0.8rem; + } + + section.docs-main .content .anchor-wrapper .anchor { + padding: 0.4rem 0.6rem 0.4rem 0.8rem; + } + + section.docs-main .content .anchor-wrapper .anchor .group { + column-gap: 0.4rem; + } + + section.docs-main .content .anchor-wrapper .anchor .group a { + padding: 0.525rem 0.6rem; + } + + section.docs-main .content .block { + row-gap: 4rem; + margin-top: 4rem; + } + + section.docs-main .content .block .item { + column-gap: 0.8rem; + } + + section.docs-main .content .block .item .name { + padding: 1.2rem 0.8rem 0.8rem 1.2rem; + min-height: 13.15rem; + max-width: 10.8rem; + } + + section.docs-main .content .block .item .name::before { + width: 6.30583rem; + height: 3rem; + top: -2px; + } + + section.docs-main .content .block .item .name .img-frame { + height: 5rem; + } + + section.docs-main .content .block .item .name .text { + row-gap: 0.7rem; + } + + section.docs-main .content .block .item .name .text .title { + font-size: 1.2rem; + } + + section.docs-main .content .block .item .name .text .subtitle { + font-size: 0.8rem; + } + + section.docs-main .content .block .item .data { + grid-template-columns: 1fr; + gap: 0.8rem; + } + + section.docs-main .content .block .item .data .group { + padding: 1.2rem 0.8rem 0.8rem 0.8rem; + } + + section.docs-main .content .block .item .data .group::before { + background-size: 0.75rem 0.75rem; + } + + section.docs-main .content .block .item .data .group .title { + font-size: 1rem; + } + + section.docs-main .content .block .item .data .group .title.text-decor::after, + section.docs-main .content .block .item .data .group .title.text-decor::before { + width: 0.35rem; + height: 1.95rem; + } +} + +@media (max-width: 650px) { + section.docs-main .content .block .item { + flex-direction: column; + align-items: stretch; + row-gap: 2.5rem; + } + + section.docs-main .content .block .item .name { + min-height: initial; + max-width: initial; + } + + section.docs-main .content .block .item .name::before { + width: 10.7479rem; + height: 2.64685rem; + right: -1px; + top: -1px; + } + + section.docs-main .content .anchor-wrapper { + top: 0; + margin: 0 -2rem 0rem; + overflow-y: auto; + border-radius: 0rem 0rem 1.6rem 1.6rem; + background: #fff; + } + + section.docs-main .content .anchor-wrapper .anchor { + padding: 1.2rem 0.8rem; + border-radius: 0; + background: #fff; + } + + section.docs-main .content .anchor-wrapper .anchor .text { + display: none; + } + + section.docs-main .content .anchor-wrapper .anchor .group { + column-gap: 0.4rem; + } + + section.docs-main .content .anchor-wrapper .anchor .group a { + color: #fff; + padding: 0.525rem 0.9rem; + background: #1969FF; + } + + section.docs-main .content .anchor-wrapper .anchor .group a:hover { + background: #1969FF; + } +} + +@media (max-width: 480px) { + section.docs-main { + padding-top: 4rem; + padding-bottom: 2rem; + } + + section.docs-main .content .section-title { + row-gap: 0.8rem; + } + + section.docs-main .content .section-title .title { + font-size: 1.2rem; + } + + section.docs-main .content .section-title .subtitle { + font-size: 0.8rem; + } + + section.docs-main .content .anchor-wrapper { + margin: 0 -0.8rem -1rem; + } + + section.docs-main .content .block { + row-gap: 4rem; + margin-top: 0.4rem; + } + + section.docs-main .content .block .item { + row-gap: 0.6rem; + } + + section.docs-main .content .block .item .name { + padding: 1.2rem 0.8rem 1.2rem 1.2rem; + border-radius: 0.8rem; + row-gap: 0.4rem; + } + + section.docs-main .content .block .item .name::before { + width: 10.7205rem; + height: 3.44685rem; + mask-image: url('/assets/images/mask/card-mob.svg'); + } + + section.docs-main .content .block .item .name .img-frame { + height: 4.5rem; + } + + section.docs-main .content .block .item .name .img-frame img { + object-position: left; + } + + section.docs-main .content .block .item .name .text { + row-gap: 0.6rem; + } + + section.docs-main .content .block .item .name .text .title { + font-size: 1.2rem; + } + + section.docs-main .content .block .item .name .text .subtitle { + font-size: 0.8rem; + } + + section.docs-main .content .block .item .data { + gap: 0.6rem; + } + + section.docs-main .content .block .item .data .group { + padding: 1.2rem 0.8rem 0.8rem 0.8rem; + } + + section.docs-main .content .block .item .data .group .title { + font-size: 1rem; + } + + section.docs-main .content .block .item .data .group .title.text-decor::after, + section.docs-main .content .block .item .data .group .title.text-decor::before { + width: 0.3rem; + height: 1.6rem; + } + + section.docs-main .content .block .item .data .group .title.text-decor::before { + margin-bottom: -0.3rem; + transform: none; + } + + section.docs-main .content .block .item .data .group .title.text-decor::after { + margin-bottom: -0.8rem; + } +} + + + +footer.footer .content .head { + border-radius: 2.29rem; + background: #090909; + padding: 3rem 4rem; + display: flex; + flex-direction: column; + align-items: stretch; + position: relative; + gap: 1.25rem; +} + +footer.footer .content .head .img-frame.logo { + width: 23.07292rem; + height: 6.77083rem; + margin-left: -0.75rem; +} + +footer.footer .content .head .info { + margin-bottom: 2rem; +} + +footer.footer .content .head .info .text { + color: #FFF; + font-family: 'Bauziet'; + font-size: 1.77083rem; + font-style: normal; + font-weight: 600; + line-height: 140%; +} + +footer.footer .content .head .links { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 4.58rem 4.43rem; + height: fit-content; + overflow: hidden; +} + +footer.footer .content .head .links .pan { + gap: 1.25rem; + position: relative; +} + +footer.footer .content .head .links .pan::after { + content: ''; + position: absolute; + right: -2.19rem; + top: 0; + bottom: 0; + width: 1px; + background: #1E1E1E; +} + +footer.footer .content .head .links .pan:nth-child(3n+3)::after { + display: none; +} + +footer.footer .content .head .links .pan:nth-child(3n+4)::before { + content: ''; + position: absolute; + left: 0; + top: -2.29rem; + width: 100rem; + height: 1px; + background: #1E1E1E; +} + +footer.footer .content .head .links .pan:last-of-type::after { + display: none; +} + +footer.footer .content .head .links .pan>span { + color: #fff; + font-family: 'Poppins'; + font-size: 1.04167rem; + font-style: normal; + font-weight: 500; + line-height: 140%; + text-align: left; +} + +footer.footer .content .head .links .pan .list { + height: 100%; + justify-content: space-between; + gap: 1.25rem; +} + +footer.footer .content .head .links .pan .list>div { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: flex-start; + gap: 0.62rem; +} + +footer.footer .content .head .links .pan .list>div a { + display: inline-flex; + flex-wrap: wrap; + gap: 0.42rem; + color: #C3C3C3; + font-family: 'Poppins'; + font-size: 0.83333rem; + font-style: normal; + font-weight: 400; + line-height: 148%; + text-decoration: underline 1px rgba(255, 199, 44, 0); + transition: text-decoration-color 0.3s, color 0.3s; +} + +footer.footer .content .head .links .pan .list>div a:hover { + color: #fff; + text-decoration-color: rgba(255, 199, 44, 1); +} + +footer.footer .content .head .links .pan .list>div a b { + color: #FFF; + font-size: 0.72917rem; + font-weight: 500; + line-height: 144%; + background: #1969FF; + border-radius: 0.625rem; + padding: 0.10417rem 0.3125rem; + white-space: nowrap; + text-decoration: underline 1px #1969FF; +} + +footer.footer .content .head .links .pan .list .has-icon-end { + color: #FFF; + font-family: 'Poppins'; + font-size: 0.83333rem; + font-style: normal; + font-weight: 500; + line-height: 148%; + text-decoration: none; + --icon-pad: 0.31rem; + --icon-src: url('/assets/images/icons/arrow-up-line.svg'); + --icon-size: 1.15rem; + padding: 0.1rem; +} + +footer.footer .content .head .links .pan .list .has-icon-end:after { + transition: transform 0.3s ease; +} + +footer.footer .content .head .links .pan .list .has-icon-end:hover::after { + transform: rotate(45deg); +} + +footer.footer .content .foot { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + padding: 1.67rem 6.67rem; + column-gap: 0.75rem; +} + +footer.footer .content .foot .links { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + gap: .83rem; +} + +footer.footer .content .foot .links a { + color: #011635; + font-size: 0.72917rem; + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + line-height: 144%; + text-decoration: underline 1px rgba(1, 22, 53, 0); + transition: text-decoration-color 0.3s; + white-space: nowrap; +} + +footer.footer .content .foot .links a:hover { + text-decoration-color: rgba(1, 22, 53, 1); +} + +footer.footer .content .foot .links>i { + display: inline-block; + width: .1rem; + height: .1rem; + border-radius: 50%; + background: #011635; +} + +footer.footer .content .foot .copy { + color: #011635; + font-family: 'Poppins'; + font-size: 0.72917rem; + font-style: normal; + font-weight: 400; + line-height: 144%; +} + +footer.footer .content .foot a.amprise-identity { + --amprise-identity-font: "Poppins"; + --amprise-identity-color: #011635; + --amprise-identity-font-size: 0.72917rem; + --amprise-identity-font-style: inherit; + --amprise-identity-font-weight: 400; + --amprise-identity-accent-weight: 400; + --amprise-identity-accent-line-color: #C0C5CD; + --amprise-identity-accent-line-hover-color: #011635; +} + +footer.footer .content .foot a.amprise-identity>b:after { + bottom: -0.5px; + height: 1px; +} + +@media (max-width: 1440px) { + footer.footer .content .foot { + padding: 1.67rem 2.5rem; + } +} + +@media (max-width: 1024px) { + footer.footer .content .head { + padding: 1.6rem 1.6rem 3rem; + border-radius: 1.6rem; + gap: 0.6rem; + } + + footer.footer .content .head .img-frame.logo { + width: 12.47145rem; + height: 3.6rem; + margin-left: -0.5rem; + } + + footer.footer .content .head .info { + margin-bottom: 2.4rem; + } + + footer.footer .content .head .info .text { + font-size: 1.2rem; + } + + footer.footer .content .head .links { + gap: 2.4rem 2.6rem; + } + + footer.footer .content .head .links .pan { + gap: 1.1rem; + } + + footer.footer .content .head .links .pan::after { + right: -1.2rem; + } + + footer.footer .content .head .links .pan:nth-child(3n+4)::before { + top: -1.3rem; + } + + footer.footer .content .head .links .pan>span { + font-size: 0.9rem; + } + + footer.footer .content .head .links .pan .list { + gap: 1.1rem; + } + + footer.footer .content .head .links .pan .list>div { + gap: 0.6rem; + } + + footer.footer .content .head .links .pan .list>div a { + font-size: 0.7rem; + gap: 0.4rem; + } + + footer.footer .content .head .links .pan .list>div a b { + font-size: 0.6rem; + border-radius: 0.6rem; + padding: 0.1rem 0.3rem; + } + + footer.footer .content .head .links .pan .list .has-icon-end { + font-size: 0.8rem; + padding: 0; + } + + footer.footer .content .foot { + padding: 1.2rem 0; + } + + footer.footer .content .foot .copy { + font-size: 0.7rem; + } + + footer.footer .content .foot .links { + gap: 0.4rem; + } + + footer.footer .content .foot .links a { + font-size: 0.7rem; + } + + footer.footer .content .foot a.amprise-identity { + --amprise-identity-font-size: 0.7rem + } +} + +@media (max-width: 768px) { + footer.footer .content .head { + padding: 1.6rem 0.8rem 2.4rem; + gap: 0.8rem; + } + + footer.footer .content .head .img-frame.logo { + width: 10.04645rem; + height: 2.9rem; + margin-left: -0.25rem; + } + + footer.footer .content .head .info { + margin-bottom: 1.2rem; + } + + footer.footer .content .head .links { + gap: 1.6rem; + grid-template-columns: 1fr; + height: initial; + overflow: visible; + } + + footer.footer .content .head .links .pan { + gap: 0; + } + + footer.footer .content .head .links .pan:nth-child(3n+3)::after { + display: block; + } + + footer.footer .content .head .links .pan:nth-child(3n+4)::before { + display: none; + } + + footer.footer .content .head .links .pan:last-of-type::after { + display: block; + } + + footer.footer .content .head .links .pan::after { + bottom: -0.8rem; + height: 1px; + left: 0; + right: 0; + top: auto; + width: 100%; + } + + footer.footer .content .head .links .pan>span { + font-size: 1rem; + position: relative; + } + + footer.footer .content .head .links .pan>span::before, + footer.footer .content .head .links .pan>span::after { + will-change: transform; + content: ''; + + width: 1.2rem; + height: 1.2rem; + + mask-size: contain; + mask-position: center; + mask-repeat: no-repeat; + mask-image: url('/assets/images/icons/plus.svg'); + background: #fff; + + position: absolute; + right: 0; + top: 50%; + transform: translateY(-50%); + transition: transform .5s ease; + } + + footer.footer .content .head .links .pan>span::after { + mask-image: url('/assets/images/icons/minus.svg'); + } + + footer.footer .content .head .links .pan.expand>span:before { + transform: translateY(-50%) scale(0); + } + + footer.footer .content .head .links .pan .list { + gap: 0.8rem; + overflow: hidden; + transition: max-height .5s ease; + max-height: var(--marker-h, none); + } + + footer.footer .content .head .links .pan .list>div { + margin-top: 1rem; + } + + footer.footer .content .head .links .pan .list>div a { + font-size: 0.8rem; + } + + footer.footer .content .head .links .pan .list>div a b { + font-size: 0.7rem; + } + + footer.footer .content .head .links .pan .list .has-icon-end { + background: #202020; + border-radius: 1.6rem; + font-size: 0.9rem; + font-weight: 400; + justify-content: center; + padding: 1rem 0; + } + + footer.footer .content .head .links .pan .list .has-icon-end::after { + display: none; + } + + footer.footer .content .foot { + padding: 1.6rem 0; + flex-direction: column; + align-items: center; + row-gap: 1.2rem; + } + + footer.footer .content .foot .links { + gap: 0.8rem; + order: -1; + } + + footer.footer .content .foot .copy { + width: 100%; + text-align: center; + padding-bottom: 1.2rem; + border-bottom: 1px solid #F4F6FA; + } +} + +@media (max-width: 480px) { + footer.footer { + padding: 0; + } + + footer.footer .content .head { + padding: 1.2rem 0.8rem 2.4rem; + gap: 0.8rem; + } + + footer.footer .content .head .img-frame.logo { + width: 12.125rem; + height: 3.5rem; + margin: 0 auto; + } + + footer.footer .content .head .info { + margin: 0 auto 1.6rem; + } + + footer.footer .content .head .info .text { + text-align: center; + } +} \ No newline at end of file diff --git a/docs/docs/assets/stylesheets/extra.css b/docs/docs/assets/stylesheets/extra.css new file mode 100644 index 0000000000..e3a44e073b --- /dev/null +++ b/docs/docs/assets/stylesheets/extra.css @@ -0,0 +1,23 @@ +/* +Errno::ENOENT: No such file or directory @ rb_sysopen - scss/extra.scss + +Backtrace: +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin/compiler.rb:454:in `read' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin/compiler.rb:454:in `update_stylesheet' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin/compiler.rb:215:in `block in update_stylesheets' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin/compiler.rb:209:in `each' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin/compiler.rb:209:in `update_stylesheets' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin/compiler.rb:294:in `watch' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/plugin.rb:109:in `method_missing' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/exec/sass_scss.rb:358:in `watch_or_update' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/exec/sass_scss.rb:51:in `process_result' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/exec/base.rb:50:in `parse' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/lib/sass/exec/base.rb:18:in `parse!' +D:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/sass-3.7.4/bin/sass:13:in `' +D:/Ruby32-x64/bin/sass:32:in `load' +D:/Ruby32-x64/bin/sass:32:in `
' +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Errno::ENOENT: No such file or directory @ rb_sysopen - scss/extra.scss"; } diff --git a/docs/fonts/BauzietMedium.woff b/docs/fonts/BauzietMedium.woff new file mode 100644 index 0000000000..92511281c8 Binary files /dev/null and b/docs/fonts/BauzietMedium.woff differ diff --git a/docs/fonts/BauzietMedium.woff2 b/docs/fonts/BauzietMedium.woff2 new file mode 100644 index 0000000000..5c6382214a Binary files /dev/null and b/docs/fonts/BauzietMedium.woff2 differ diff --git a/docs/fonts/BauzietSemiBold.woff b/docs/fonts/BauzietSemiBold.woff new file mode 100644 index 0000000000..c83cdd9141 Binary files /dev/null and b/docs/fonts/BauzietSemiBold.woff differ diff --git a/docs/includes/access-case-pages.md b/docs/includes/access-case-pages.md new file mode 100644 index 0000000000..095c2ccbb4 --- /dev/null +++ b/docs/includes/access-case-pages.md @@ -0,0 +1,4 @@ +!!! warning "Required permissions" + Only users with the `managePage` permission can manage case pages in TheHive. + + Users with the necessary permissions can edit and delete any page, regardless of who created it. \ No newline at end of file diff --git a/docs/includes/access-knowledge-base.md b/docs/includes/access-knowledge-base.md index 6842c16b06..e48a5c5cca 100644 --- a/docs/includes/access-knowledge-base.md +++ b/docs/includes/access-knowledge-base.md @@ -1,6 +1,4 @@ !!! warning "Required permissions" - - * Only users with the `manageKnowledgeBase` permission can manage the Knowledge Base at the organization level in TheHive. - * Only users with the `managePage` permission can manage the Knowledge Base at the case level in TheHive. + Only users with the `manageKnowledgeBase` permission can manage the Knowledge Base in TheHive. Users with the necessary permissions can edit and delete any page, regardless of who created it. \ No newline at end of file diff --git a/docs/includes/temporary-permanent-knowledge.md b/docs/includes/temporary-permanent-knowledge.md deleted file mode 100644 index f4ea36bafa..0000000000 --- a/docs/includes/temporary-permanent-knowledge.md +++ /dev/null @@ -1,2 +0,0 @@ -!!! note "Temporary vs. permanent knowledge" - Case-level pages are intended for temporary documentation, useful during investigations but not necessarily retained long-term, and they can't be searched. In contrast, organization-level pages store knowledge that should be preserved for future reference. If you need to retain information from case pages, you must manually copy the content to an organization-level page. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index ee912ab08f..b56337754a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,7 +3,204 @@ # - navigation # - toc template: home.html ---- + +hero: + title: 'TheHive technical *documentation*' + text: Your essential guide to TheHive and Cortex + links: + - text: Get started + url: '/thehive/overview/' + - text: Download TheHive + url: '/thehive/download/' + style: primary + +sections: + title: 'Learn how to install, configure, maintain and use TheHive and Cortex' + text: 'Follow our how-to guides to get the job done—fast and right.' + anchors: 'I’m an:' + data: + - title: 'I’m an Analyst' + text: 'I want to triage alerts and investigate cases.' + icon: assets/images/docs-analyst.png + anchor: + name: 'Analyst' + href: 'analyst' + groups: + - title: 'Triage alerts' + links: + - text: 'Create custom alert views' + url: '/thehive/user-guides/analyst-corner/views/create-a-custom-view/' + - text: 'Analyze observables to assess potential threats' + url: '/thehive/user-guides/analyst-corner/cases/search-for-cases/find-an-observable/' + - text: 'Cross-check with similar alerts and cases' + url: '/thehive/user-guides/analyst-corner/cases/find-similar-alerts-cases/' + - text: 'Comment on alerts' + url: '/thehive/user-guides/analyst-corner/cases/comment-on-case-alert/' + - text: 'Convert alerts into cases when investigation is needed' + url: '/thehive/user-guides/analyst-corner/alerts/create-a-case-from-an-alert/' + - text: 'Close alerts if no further action is required' + url: '/thehive/user-guides/analyst-corner/alerts/close-an-alert/' + + - title: 'Investigate cases' + links: + - text: 'Create custom case views' + url: '/thehive/user-guides/analyst-corner/views/create-a-custom-view/' + - text: 'Access case details quickly' + url: '/thehive/user-guides/analyst-corner/preview-vs-detail-view/' + - text: 'Update severity, TLP and PAP as needed' + url: '/thehive/user-guides/analyst-corner/cases/change-case-classification-settings/' + - text: 'Save logs for mandatory tasks' + url: '/thehive/user-guides/analyst-corner/tasks/create-a-task-log/' + - text: 'Add observables' + url: '/thehive/user-guides/analyst-corner/cases/observables/add-an-observable/' + - text: 'Run analyzers on observables' + url: '/thehive/user-guides/analyst-corner/cases/observables/run-analyzers-on-an-observable/' + - text: 'Trigger responders' + url: '/thehive/user-guides/analyst-corner/cases/observables/run-responders-on-an-observable/' + - text: 'Mark observables as IOCs if suspicious' + url: '/thehive/user-guides/analyst-corner/cases/observables/update-an-observable-status/' + - text: 'Document attack techniques' + url: '/thehive/user-guides/analyst-corner/cases/ttps/add-ttps/' + - text: 'Comment on cases' + url: '/thehive/user-guides/analyst-corner/cases/comment-on-case-alert/' + - text: 'Cross-check with similar alerts and cases' + url: '/thehive/user-guides/analyst-corner/cases/find-similar-alerts-cases/' + - text: 'Close the case' + url: '/thehive/user-guides/analyst-corner/cases/close-a-case/' + - text: 'Save a full case report' + url: '/thehive/user-guides/analyst-corner/cases/case-reports/save-download-a-case-report/' + - text: 'Document actions taken during the investigation' + url: '/thehive/user-guides/knowledge-base/create-a-case-page/' + - text: 'Transfer key insights to the Knowledge Base' + url: '/thehive/user-guides/knowledge-base/create-a-knowledge-base-page/' + + - title: 'I’m a Manager' + text: 'I want to standardize and secure data, and track my team’s activity.' + icon: assets/images/docs-manager.png + anchor: + name: 'Manager' + href: 'manager' + groups: + - title: 'Standardize and secure data' + links: + - text: 'Create case templates' + url: '/thehive/user-guides/organization/configure-organization/manage-templates/case-templates/create-a-case-template/' + - text: 'Activate taxonomy tags' + url: '/thehive/administration/taxonomies/activate-deactivate-a-taxonomy/' + - text: 'Create observable types' + url: '/thehive/administration/observable-types/create-an-observable-type/' + - text: 'Manage case and alert statuses' + url: '/thehive/administration/status/create-a-status/' + - text: 'Import analyzer templates' + url: '/thehive/administration/analyzers-templates/' + - text: 'Import attack patterns' + url: '/thehive/administration/ttps/add-a-catalog/' + - text: 'Restrict visibility for sensitive cases' + url: '/thehive/user-guides/analyst-corner/cases/case-visibility/restrict-visibility-case/' + - title: 'Track team activity' + links: + - text: 'Create custom case and alert views' + url: '/thehive/user-guides/analyst-corner/views/create-a-custom-view/' + - text: 'Review case timelines to track investigation progress' + url: '/thehive/user-guides/analyst-corner/cases/case-timelines/view-case-timeline/' + - text: 'Read case reports' + url: '/thehive/user-guides/analyst-corner/cases/attachments/download-an-attachment-case-alert/' + - text: 'Understand KPIs' + url: '/thehive/user-guides/key-performance-indicators/key-performance-indicators/' + - text: 'Evaluate alert metrics on dashboards' + url: '/thehive/user-guides/key-performance-indicators/measure-alert-management-performance/' + - text: 'Evaluate case metrics on dashboards' + url: '/thehive/user-guides/key-performance-indicators/measure-case-management-performance/' + - text: 'Comment on cases and alerts to provide feedback' + url: '/thehive/user-guides/analyst-corner/cases/comment-on-case-alert/' + + - title: 'I’m a DevSecOps' + text: 'I want to automate tasks, manage integrations and streamline data enrichment.' + icon: assets/images/docs-devSecOps.png + anchor: + name: 'DevSecOps' + href: 'devsecops' + groups: + - title: 'Generate alerts in TheHive' + links: + - text: 'Connect mailboxes to automatically create alerts from emails' + url: '/thehive/administration/email-intake-connector/connect-a-mailbox/' + - text: 'Link a MISP instance for threat intel ingestion' + url: '/thehive/administration/misp-integration/connect-a-misp-server/' + - text: 'Set up an alert feeder to pull alerts from external systems' + url: '/thehive/user-guides/organization/configure-organization/manage-feeders/create-a-feeder/' + - title: 'Automate repetitive actions' + links: + - text: 'Configure SMTP to enable email sending from TheHive' + url: '/thehive/administration/smtp/' + - text: 'Set up notifications to push data to external tools' + url: '/thehive/user-guides/organization/configure-organization/manage-notifications/create-a-notification/' + - text: 'Write functions to automate workflows based on events' + url: '/thehive/user-guides/organization/configure-organization/manage-functions/create-a-function/' + - text: 'Configure analyzers to automatically enrich observables' + url: '/cortex/api/how-to-create-an-analyzer/' + - text: 'Configure responders to trigger automated response actions' + url: '/cortex/api/how-to-create-a-responder/' + + - title: 'I’m an Infra Engineer' + text: 'I want to deploy, configure and maintain TheHive—and understand its API.' + icon: assets/images/docs-infraEngineer.png + anchor: + name: 'Infra Engineer' + href: 'infraengineer' + groups: + - title: 'Install and configure TheHive' + links: + - text: 'Download TheHive' + url: '/thehive/download/' + - text: 'Review system requirements' + url: '/thehive/installation/system-requirements/' + - text: 'Use the automated installation script' + url: '/thehive/installation/automated-installation-script/' + - text: 'Follow the step-by-step installation guide' + url: '/thehive/installation/step-by-step-installation-guide/' + - text: 'Set up a cluster deployment' + url: '/thehive/installation/deploying-a-cluster/' + - text: 'Run TheHive with Docker' + url: '/thehive/installation/docker/' + - text: 'Deploy on Kubernetes' + url: '/thehive/installation/kubernetes/' + - text: 'Activate the license' + url: '/thehive/installation/activate-license/' + - text: 'Perform version upgrades' + url: '/thehive/installation/upgrade-from-5.x/' + - text: 'Access archived versions' + url: '/thehive/download/archives/' + - title: 'Configure organizations' + links: + - text: 'Complete the initial login' + url: '/thehive/administration/first-start/' + - text: 'Assign users with the right permissions' + url: '/thehive/administration/organizations/add-remove-an-existing-user-account-from-an-organization/' + - text: 'Set up LDAP integration' + url: '/thehive/administration/authentication/ldap/' + - text: 'Configure authentication methods' + url: '/thehive/administration/authentication/configure-authentication/' + - text: 'Connect Cortex for analyzers and responders' + url: '/thehive/administration/cortex/add-a-cortex-server/' + - title: 'Maintain TheHive' + links: + - text: 'Perform Cassandra cluster operations' + url: '/thehive/operations/cassandra-cluster/' + - text: 'Manage the MinIO cluster' + url: '/thehive/operations/minio-cluster/' + - text: 'Perform backups and restore data' + url: '/thehive/operations/backup-restore/overview/' + - text: 'Set up monitoring tools' + url: '/thehive/operations/monitoring/' + - text: 'Diagnose and resolve issues' + url: '/thehive/operations/troubleshooting/' + - title: 'Use the API' + links: + - text: 'Access and use the API documentation' + url: '/thehive/api-docs/' + - text: 'Use the Python API client' + url: 'https://github.com/thehive-project/thehive4py' --- diff --git a/docs/thehive/administration/cortex/add-a-cortex-server.md b/docs/thehive/administration/cortex/add-a-cortex-server.md index 9ae9864e47..cada074931 100644 --- a/docs/thehive/administration/cortex/add-a-cortex-server.md +++ b/docs/thehive/administration/cortex/add-a-cortex-server.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for adding a [Cortex](about-cortex.md) server in TheHive. +[Cortex](https://github.com/thehive-project/Cortex/) is an open-source analysis and response engine designed for SOCs, CSIRTs, and security researchers to automate threat intelligence gathering and incident response. + !!! info "Requirements" Before adding a Cortex server, you must install and configure Cortex. For instructions, refer to the [Installation and Configuration Guides](../../../cortex/installation-and-configuration/index.md). diff --git a/docs/thehive/administration/organizations/create-an-organization.md b/docs/thehive/administration/organizations/create-an-organization.md index 8bce910164..1171f299dd 100644 --- a/docs/thehive/administration/organizations/create-an-organization.md +++ b/docs/thehive/administration/organizations/create-an-organization.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for creating an [organization](about-organizations.md) in TheHive. +Organizations are the customers or tenants, such as separate divisions or business units, that use TheHive independently. + {!includes/license-organizations.md!} {!includes/administrator-access-manage-organizations.md!} diff --git a/docs/thehive/administration/taxonomies/activate-deactivate-a-taxonomy.md b/docs/thehive/administration/taxonomies/activate-deactivate-a-taxonomy.md index b5450baf54..8a20ec61ae 100644 --- a/docs/thehive/administration/taxonomies/activate-deactivate-a-taxonomy.md +++ b/docs/thehive/administration/taxonomies/activate-deactivate-a-taxonomy.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for activating and deactivating a [taxonomy](about-taxonomies.md) in TheHive. +Taxonomies are catalogs of structured tags managed in TheHive. + !!! warning "Manual activation required" By default, MISP taxonomies aren't activated. You must [activate them manually](activate-deactivate-a-taxonomy.md). diff --git a/docs/thehive/images/user-guides/analyst-corner/current-view.png b/docs/thehive/images/user-guides/analyst-corner/current-view.png new file mode 100644 index 0000000000..4436261637 Binary files /dev/null and b/docs/thehive/images/user-guides/analyst-corner/current-view.png differ diff --git a/docs/thehive/user-guides/analyst-corner/about-filtering-and-sorting.md b/docs/thehive/user-guides/analyst-corner/about-filtering-and-sorting.md index 8fc79f2e91..3c706b1105 100644 --- a/docs/thehive/user-guides/analyst-corner/about-filtering-and-sorting.md +++ b/docs/thehive/user-guides/analyst-corner/about-filtering-and-sorting.md @@ -32,7 +32,7 @@ Filters are combined using the `AND` operator, meaning all selected conditions m ### Saving filters -Applied filters can be saved in [a view](about-views.md) to avoid reapplying them repeatedly. Selecting the saved view applies the filters automatically. +Applied filters can be saved in [a view](./views/about-views.md) to avoid reapplying them repeatedly. Selecting the saved view applies the filters automatically. ## Sorting elements @@ -50,8 +50,11 @@ Sorting applies to only one field at a time, as multiple-field sorting isn't sup ### Saving sorting -Applied sorting can be saved in [a view](about-views.md) to avoid reapplying it repeatedly. Selecting the saved view applies the stored sorting automatically. +Applied sorting can be saved in [a view](./views/about-views.md) to avoid reapplying it repeatedly. Selecting the saved view applies the stored sorting automatically.

Next steps

-* [About Views](about-views.md) \ No newline at end of file +* [About Views](./views/about-views.md) +* [Create a Custom View](./views/create-a-custom-view.md) +* [Update a Custom View](./views/update-a-custom-view.md) +* [Delete a Custom View](./views/delete-a-custom-view.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/analyst-corner/about-views.md b/docs/thehive/user-guides/analyst-corner/about-views.md deleted file mode 100644 index c9e0098d8d..0000000000 --- a/docs/thehive/user-guides/analyst-corner/about-views.md +++ /dev/null @@ -1,40 +0,0 @@ -# About Views - -Views save [filters and sorting](about-filtering-and-sorting.md) applied to a list in TheHive. - -This topic explains how views function in TheHive. - -## Default view - -A *Default* view without filters or sorting is always available. Modifying or deleting this view isn't permitted. - -## Saving views - -Applying a new filter or sorting displays an asterisk (*\**) next to the view name: - -* Select **Save view** to save changes to the current view. -* Select **Save view as** to save changes as a new view. - -## Actions - -Switching views occurs by selecting the view name in the top-left corner of the screen. - -![Switch views](../../images/user-guides/analyst-corner/views.png) - -Deleting existing views requires selecting **Manage views**. - -![Manage views](../../images/user-guides/analyst-corner/manage-views.png) - -Renaming existing views isn't supported. - -## Scope - -Views are user-specific and list-specific, meaning each user has access to their own saved views, which apply only to a specific list. - -## Behavior - -The last used view is automatically applied by default when accessing a list. - -

Next steps

- -* [About Filtering and Sorting](about-filtering-and-sorting.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/analyst-corner/alerts/create-a-case-from-an-alert.md b/docs/thehive/user-guides/analyst-corner/alerts/create-a-case-from-an-alert.md index 3a245d9ea0..2d9756c70d 100644 --- a/docs/thehive/user-guides/analyst-corner/alerts/create-a-case-from-an-alert.md +++ b/docs/thehive/user-guides/analyst-corner/alerts/create-a-case-from-an-alert.md @@ -2,7 +2,7 @@ This topic provides step-by-step instructions for creating a [case](../cases/about-cases.md) from an [alert](about-alerts.md) in TheHive. -During triage, create a case from an alert if it needs further investigation and no case exists yet. +During triage, create a case from an alert if it needs further investigation and no case exists yet. If an investigation is already ongoing, [add the alert to an existing case](add-an-alert-to-an-existing-case.md). diff --git a/docs/thehive/user-guides/analyst-corner/cases/observables/add-an-observable.md b/docs/thehive/user-guides/analyst-corner/cases/observables/add-an-observable.md index c97627bf53..3d7705a3aa 100644 --- a/docs/thehive/user-guides/analyst-corner/cases/observables/add-an-observable.md +++ b/docs/thehive/user-guides/analyst-corner/cases/observables/add-an-observable.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for adding an [observable](about-observables.md) to a case or alert in TheHive. +Observables are data points that represent specific events or properties within a system and can be directly observed. They serve as indicators monitored for signs of suspicious or malicious activity. + {!includes/access-manage-observables.md!}

Procedure

diff --git a/docs/thehive/user-guides/analyst-corner/dashboard/about-dashboards.md b/docs/thehive/user-guides/analyst-corner/dashboard/about-dashboards.md index 5134ff9b51..ef034c156c 100644 --- a/docs/thehive/user-guides/analyst-corner/dashboard/about-dashboards.md +++ b/docs/thehive/user-guides/analyst-corner/dashboard/about-dashboards.md @@ -45,7 +45,7 @@ Data in certain widgets can also be hidden by selecting the corresponding item i Organizing dashboards into groups makes them easier to find and use. Use the **Show items as group** button available on the dashboards list to organize dashboards by type. -Apply [filters and sorting](../../analyst-corner/about-filtering-and-sorting.md) to help locate specific dashboards. These preferences can be saved using [views](../../analyst-corner/about-views.md). +Apply [filters and sorting](../../analyst-corner/about-filtering-and-sorting.md) to help locate specific dashboards. These preferences can be saved using [views](../views/about-views.md). ## Permissions diff --git a/docs/thehive/user-guides/analyst-corner/preview-vs-detail-view.md b/docs/thehive/user-guides/analyst-corner/preview-vs-detail-view.md index d25d980a2c..412c876dd1 100644 --- a/docs/thehive/user-guides/analyst-corner/preview-vs-detail-view.md +++ b/docs/thehive/user-guides/analyst-corner/preview-vs-detail-view.md @@ -27,4 +27,4 @@ A preview appears when you hover over an item and select the :fontawesome-solid- * [About Autorefresh](about-autorefresh.md) * [About Filtering and Sorting](about-filtering-and-sorting.md) -* [About Views](about-views.md) \ No newline at end of file +* [About Views](./views/about-views.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/analyst-corner/views/about-views.md b/docs/thehive/user-guides/analyst-corner/views/about-views.md new file mode 100644 index 0000000000..5687b791e2 --- /dev/null +++ b/docs/thehive/user-guides/analyst-corner/views/about-views.md @@ -0,0 +1,32 @@ +# About Views + +Views save [filters and sorting](../about-filtering-and-sorting.md) applied to a list in TheHive. + +This topic explains how views function in TheHive. + +## Default view + +A *Default* view without filters or sorting is always available. Modifying or deleting this view isn't permitted. + +## Actions + +Users have the ability to [create custom views](create-a-custom-view.md) tailored to their specific needs or [update existing views](update-a-custom-view.md) as necessary. When a view is no longer useful, it can be [deleted](delete-a-custom-view.md) to keep the workspace organized. + +To switch between different views, users select the current view in the top-left corner of the screen. + +![Switch views](../../../images/user-guides/analyst-corner/views.png) + +## Scope + +Views are user-specific and list-specific, meaning each user has access to their own saved views, which apply only to a specific list. + +## Behavior + +The last used view is automatically applied by default when accessing a list. + +

Next steps

+ +* [About Filtering and Sorting](../about-filtering-and-sorting.md) +* [Create a Custom View](create-a-custom-view.md) +* [Update a Custom View](update-a-custom-view.md) +* [Delete a Custom View](delete-a-custom-view.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/analyst-corner/views/create-a-custom-view.md b/docs/thehive/user-guides/analyst-corner/views/create-a-custom-view.md new file mode 100644 index 0000000000..deaebdc1ed --- /dev/null +++ b/docs/thehive/user-guides/analyst-corner/views/create-a-custom-view.md @@ -0,0 +1,24 @@ +# How to Create a Custom View + +This topic provides step-by-step instructions for creating a custom [view](create-a-custom-view.md) in TheHive. + +Use this procedure to save the filters and sorting preferences applied to a list for easy reuse. + +

Procedure

+ +1. Adjust the [filters and sorting](../about-filtering-and-sorting.md) on the list as desired. + +2. Select the current view name followed by an asterisk (*\**). + + ![Current view](../../../images/user-guides/analyst-corner/current-view.png) + +3. Select **Save view as** to save your changes as a new view. + +4. In the **Save current view** drawer, enter the name of the view. + +5. Select **Confirm**. + +

Next steps

+ +* [Update a Custom View](update-a-custom-view.md) +* [Delete a Custom View](delete-a-custom-view.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/analyst-corner/views/delete-a-custom-view.md b/docs/thehive/user-guides/analyst-corner/views/delete-a-custom-view.md new file mode 100644 index 0000000000..2ee1522577 --- /dev/null +++ b/docs/thehive/user-guides/analyst-corner/views/delete-a-custom-view.md @@ -0,0 +1,23 @@ +# How to Delete a Custom View + +This topic provides step-by-step instructions for deleting a custom [view](create-a-custom-view.md) in TheHive. + +!!! note "Default view" + You can't delete the *Default* view. + +

Procedure

+ +1. Select the current view name followed by an asterisk (*\**). + + ![Current view](../../../images/user-guides/analyst-corner/current-view.png) + +2. Select **Manage views**. + +3. Select :fontawesome-solid-ellipsis: next to the view you want to delete. + +4. Select **Delete**. + +

Next steps

+ +* [Create a Custom View](create-a-custom-view.md) +* [Update a Custom View](update-a-custom-view.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/analyst-corner/views/update-a-custom-view.md b/docs/thehive/user-guides/analyst-corner/views/update-a-custom-view.md new file mode 100644 index 0000000000..0dc83d8c1d --- /dev/null +++ b/docs/thehive/user-guides/analyst-corner/views/update-a-custom-view.md @@ -0,0 +1,21 @@ +# How to Update a Custom View + +This topic provides step-by-step instructions for updating a custom [view](create-a-custom-view.md) in TheHive. + +!!! note "Default view" + You can't modify the *Default* view. + +

Procedure

+ +1. Adjust the [filters and sorting](../about-filtering-and-sorting.md) on the list as desired. + +2. Select the current view name followed by an asterisk (*\**). + + ![Current view](../../../images/user-guides/analyst-corner/current-view.png) + +3. Select **Save view**. + +

Next steps

+ +* [Create a Custom View](create-a-custom-view.md) +* [Delete a Custom View](delete-a-custom-view.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/about-case-pages.md b/docs/thehive/user-guides/knowledge-base/about-case-pages.md new file mode 100644 index 0000000000..57f057e486 --- /dev/null +++ b/docs/thehive/user-guides/knowledge-base/about-case-pages.md @@ -0,0 +1,28 @@ +# About Case Pages + +Case pages in TheHive enable the creation and sharing of valuable information within a team on a specific [case](../analyst-corner/cases/about-cases.md). They support documenting lessons learned, writing reports, recording meeting notes, and sharing content that enhances collaboration and knowledge sharing. + +This topic describes how case pages support teamwork and ensures important information remains available to the team. + +## Permanent vs. temporary documentation + +Case pages are intended for temporary documentation, useful during investigations but not necessarily retained long-term, and they can't be searched. In contrast, [Knowledge Base pages](about-knowledge-base.md) store knowledge that should be preserved for future reference. To retain information from case pages, manually copy the content to a Knowledge Base page. + +## Templates + +[Templates](../../user-guides/organization/configure-organization/manage-templates/case-page-templates/) are available for case pages. + +## Flavored Markdown + +Case pages use [TheHive-flavored Markdown syntax](../thehive-flavored-markdown.md) for formatting. + +## Permissions + +{!includes/access-case-pages.md!} + +

Next steps

+ +* [Create a Case Page](create-a-case-page.md) +* [Delete a Case Page](delete-a-case-page.md) +* [View a Case Page](view-a-case-page.md) +* [Share a Case Page](share-a-case-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/about-knowledge-base.md b/docs/thehive/user-guides/knowledge-base/about-knowledge-base.md index 1684d66a4c..6f7eed5ee1 100644 --- a/docs/thehive/user-guides/knowledge-base/about-knowledge-base.md +++ b/docs/thehive/user-guides/knowledge-base/about-knowledge-base.md @@ -4,18 +4,13 @@ The Knowledge Base in TheHive enables the creation and sharing of valuable infor This topic describes how the Knowledge Base supports teamwork and ensures important information remains available to the team. -## Structure +## Organization-wide sharing -The Knowledge Base organizes content into pages, which can be created at two levels: +Knowledge Base pages are shared across the entire organization and accessible to all users. -* Organization level: Share information that's relevant across the entire organization. -* Case level: Document details specific to individual cases. +## Permanent vs. temporary documentation -{!includes/temporary-permanent-knowledge.md!} - -## Templates - -[Templates](../organization/configure-organization/manage-templates/case-page-templates/about-case-page-templates.md) are available exclusively for case-level pages. Organization-level pages don't support templates. +The Knowledge Base stores knowledge intended for long-term preservation and future reference. For temporary documentation—useful during active investigations but not meant to be retained permanently—use [case pages](about-case-pages.md) instead. ## Flavored Markdown @@ -25,10 +20,8 @@ Knowledge Base pages use [TheHive-flavored Markdown syntax](../thehive-flavored- {!includes/access-knowledge-base.md!} -Pages created at the organization level are visible to all users. Pages created at the case level are visible only to users with access to that case. -

Next steps

* [Create a Knowledge Base Page](create-a-knowledge-base-page.md) * [Delete a Knowledge Base Page](delete-a-knowledge-base-page.md) -* [Share a Knowledge Base Page](share-a-knowledge-base-page.md) +* [View a Knowledge Base Page](view-a-knowledge-base-page.md) diff --git a/docs/thehive/user-guides/knowledge-base/create-a-case-page.md b/docs/thehive/user-guides/knowledge-base/create-a-case-page.md new file mode 100644 index 0000000000..21fc36e116 --- /dev/null +++ b/docs/thehive/user-guides/knowledge-base/create-a-case-page.md @@ -0,0 +1,48 @@ +# How to Create a Case Page + +This topic provides step-by-step instructions for creating a [case page](about-case-pages.md) in TheHive. + +Use this procedure to store temporary, case-specific knowledge that’s useful during investigations but isn’t retained long term. To preserve information from case pages for the long term, manually copy the content to a [Knowledge Base page](about-knowledge-base.md). + +{!includes/access-case-pages.md!} + +

Procedure

+ +1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to add a page. + +2. {!includes/pages-tab-go-to.md!} + +3. Select **Add a page** or :fontawesome-solid-plus:. + +4. Select one of the following options: + + **Create new page** + + To start with a blank page + + Enter the following information: + + * Title: The title of your page. + * Category: The category your page belongs to. Pages are visually grouped by category for easier navigation. If the category doesn't exist, it will be created automatically. + + **Use an existing page template** + + To apply a [case page template](../organization/configure-organization/manage-templates/case-page-templates/about-case-page-templates.md) to your new page + + Select one or more templates. The icons next to the selected pages turn green when selected. + +5. Select **Add page**. + +6. Select :fontawesome-solid-pen:. + +7. Write your content using [TheHive-flavored Markdown syntax](../thehive-flavored-markdown.md). + +8. {!includes/preview-rendering-content.md!} + +9. {!includes/save-content-page.md!} + +

Next steps

+ +* [Delete a Case Page](delete-a-case-page.md) +* [View a Case Page](view-a-case-page.md) +* [Share a Case Page](share-a-case-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/create-a-knowledge-base-page.md b/docs/thehive/user-guides/knowledge-base/create-a-knowledge-base-page.md index 622662af7a..2a34a78fae 100644 --- a/docs/thehive/user-guides/knowledge-base/create-a-knowledge-base-page.md +++ b/docs/thehive/user-guides/knowledge-base/create-a-knowledge-base-page.md @@ -1,19 +1,12 @@ # How to Create a Knowledge Base Page -This topic provides step-by-step instructions for creating a page in the [Knowledge Base](about-knowledge-base.md). +This topic provides step-by-step instructions for creating a page in the TheHive [Knowledge Base](about-knowledge-base.md). -Instructions vary depending on whether you want to create a page at the: - -* [Organization level](#create-a-page-at-the-organization-level) -* [Case level](#create-a-page-at-the-case-level) - -Use these procedures to document important content to share with your team, such as lessons learned, reports, and meeting notes. - -{!includes/temporary-permanent-knowledge.md!} +Use this procedure to store knowledge that should be preserved for future reference, such as lessons learned, reports, and meeting notes. {!includes/access-knowledge-base.md!} -## Create a page at the organization level +

Procedure

1. {!includes/knowledge-base-view-go-to.md!} @@ -39,43 +32,7 @@ Use these procedures to document important content to share with your team, such 8. {!includes/save-content-page.md!} -## Create a page at the case level - -1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to add a page. - -2. {!includes/pages-tab-go-to.md!} - -3. Select **Add a page** or :fontawesome-solid-plus:. - -4. Select one of the following options: - - **Create new page** - - To start with a blank page - - Enter the following information: - - * Title: The title of your page. - * Category: The category your page belongs to. Pages are visually grouped by category for easier navigation. If the category doesn't exist, it will be created automatically. - - **Use an existing page template** - - To apply a [case page template](../organization/configure-organization/manage-templates/case-page-templates/about-case-page-templates.md) to your new page - - Select one or more templates. The icons next to the selected pages turn green when selected. - -5. Select **Add page**. - -6. Select :fontawesome-solid-pen:. - -7. Write your content using [TheHive-flavored Markdown syntax](../thehive-flavored-markdown.md). - -8. {!includes/preview-rendering-content.md!} - -9. {!includes/save-content-page.md!} -

Next steps

* [Delete a Knowledge Base Page](delete-a-knowledge-base-page.md) -* [Share a Knowledge Base Page](share-a-knowledge-base-page.md) * [View a Knowledge Base Page](view-a-knowledge-base-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/delete-a-case-page.md b/docs/thehive/user-guides/knowledge-base/delete-a-case-page.md new file mode 100644 index 0000000000..43b9436981 --- /dev/null +++ b/docs/thehive/user-guides/knowledge-base/delete-a-case-page.md @@ -0,0 +1,23 @@ +# How to Delete a Case Page + +This topic provides step-by-step instructions for deleting a [case page](about-case-pages.md) in TheHive. + +{!includes/access-case-pages.md!} + +

Procedure

+ +1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to delete a page. + +2. {!includes/pages-tab-go-to.md!} + +3. Select or hover over the page you want to delete in the right pane. + +4. Select :fontawesome-solid-trash:. + +5. Select **OK**. + +

Next steps

+ +* [Create a Case Page](create-a-case-page.md) +* [View a Case Page](view-a-case-page.md) +* [Share a Case Page](share-a-case-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/delete-a-knowledge-base-page.md b/docs/thehive/user-guides/knowledge-base/delete-a-knowledge-base-page.md index 661c57d679..05c92d3b06 100644 --- a/docs/thehive/user-guides/knowledge-base/delete-a-knowledge-base-page.md +++ b/docs/thehive/user-guides/knowledge-base/delete-a-knowledge-base-page.md @@ -1,15 +1,10 @@ # How to Delete a Knowledge Base Page -This topic provides step-by-step instructions for deleting a [Knowledge Base](about-knowledge-base.md) page. - -Instructions vary depending on whether you want to delete a page at the: - -* [Organization level](#delete-a-page-at-the-organization-level) -* [Case level](#delete-a-page-at-the-case-level) +This topic provides step-by-step instructions for deleting a [Knowledge Base](about-knowledge-base.md) page in TheHive. {!includes/access-knowledge-base.md!} -## Delete a page at the organization level +

Procedure

1. {!includes/knowledge-base-view-go-to.md!} @@ -19,20 +14,7 @@ Instructions vary depending on whether you want to delete a page at the: 4. Select **OK**. -## Delete a page at the case level - -1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to delete a page. - -2. {!includes/pages-tab-go-to.md!} - -3. Select or hover over the page you want to delete in the right pane. - -4. Select :fontawesome-solid-trash:. - -5. Select **OK**. -

Next steps

* [Create a Knowledge Base Page](create-a-knowledge-base-page.md) -* [Share a Knowledge Base Page](share-a-knowledge-base-page.md) * [View a Knowledge Base Page](view-a-knowledge-base-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/share-a-case-page.md b/docs/thehive/user-guides/knowledge-base/share-a-case-page.md new file mode 100644 index 0000000000..6532915572 --- /dev/null +++ b/docs/thehive/user-guides/knowledge-base/share-a-case-page.md @@ -0,0 +1,21 @@ +# How to Share a Case Page + +This topic provides step-by-step instructions for sharing a [case page](about-knowledge-base.md). + +Use this procedure to share a case page with your teammates through a messaging tool, for instance. + +

Procedure

+ +1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to share a page. + +2. {!includes/pages-tab-go-to.md!} + +3. Select or hover over the page you want to share in the right pane. + +4. Select :fontawesome-solid-link:. + +

Next steps

+ +* [Create a Case Page](create-a-case-page.md) +* [Delete a Case Page](delete-a-case-page.md) +* [View a Case Page](view-a-case-page.md) diff --git a/docs/thehive/user-guides/knowledge-base/share-a-knowledge-base-page.md b/docs/thehive/user-guides/knowledge-base/share-a-knowledge-base-page.md deleted file mode 100644 index bd39dfcb81..0000000000 --- a/docs/thehive/user-guides/knowledge-base/share-a-knowledge-base-page.md +++ /dev/null @@ -1,24 +0,0 @@ -# How to Share a Knowledge Base Page - -This topic provides step-by-step instructions for sharing a [Knowledge Base](about-knowledge-base.md) page. - -Use this procedure to share a case page with your teammates through a messaging tool, for instance. - -!!! warning "Available only for case-level pages" - Sharing is only available for pages at the case level. - -

Procedure

- -1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to share a page. - -2. {!includes/pages-tab-go-to.md!} - -3. Select or hover over the page you want to share in the right pane. - -4. Select :fontawesome-solid-link:. - -

Next steps

- -* [Create a Knowledge Base Page](create-a-knowledge-base-page.md) -* [Delete a Knowledge Base Page](delete-a-knowledge-base-page.md) -* [View a Knowledge Base Page](view-a-knowledge-base-page.md) diff --git a/docs/thehive/user-guides/knowledge-base/view-a-case-page.md b/docs/thehive/user-guides/knowledge-base/view-a-case-page.md new file mode 100644 index 0000000000..c47a56c3a2 --- /dev/null +++ b/docs/thehive/user-guides/knowledge-base/view-a-case-page.md @@ -0,0 +1,17 @@ +# How to View a Case Page + +This topic provides step-by-step instructions for viewing a [case page](about-case-pages.md) in TheHive. + +

Procedure

+ +1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to view a page. + +2. {!includes/pages-tab-go-to.md!} + +3. Select the page you want to view in the right pane. + +

Next steps

+ +* [Create a Case Page](create-a-case-page.md) +* [Delete a Case Page](delete-a-case-page.md) +* [Share a Case Page](share-a-case-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/knowledge-base/view-a-knowledge-base-page.md b/docs/thehive/user-guides/knowledge-base/view-a-knowledge-base-page.md index c8d6b3bbad..5f93823bc7 100644 --- a/docs/thehive/user-guides/knowledge-base/view-a-knowledge-base-page.md +++ b/docs/thehive/user-guides/knowledge-base/view-a-knowledge-base-page.md @@ -1,28 +1,14 @@ # How to View a Knowledge Base Page -This topic provides step-by-step instructions for viewing a [Knowledge Base](about-knowledge-base.md) page. +This topic provides step-by-step instructions for viewing a [Knowledge Base](about-knowledge-base.md) page in TheHive. -Instructions vary depending on whether you want to view a page at the: - -* [Organization level](#view-a-page-at-the-organization-level) -* [Case level](#view-a-page-at-the-case-level) - -## View a page at the organization level +

Procedure

1. {!includes/knowledge-base-view-go-to.md!} 2. Select the page you want to view in the right pane. -## View a page at the case level - -1. [Find the case](../analyst-corner/cases/search-for-cases/find-a-case.md) where you want to view a page. - -2. {!includes/pages-tab-go-to.md!} - -3. Select the page you want to view in the right pane. -

Next steps

* [Create a Knowledge Base Page](create-a-knowledge-base-page.md) -* [Delete a Knowledge Base Page](delete-a-knowledge-base-page.md) -* [Share a Knowledge Base Page](share-a-knowledge-base-page.md) \ No newline at end of file +* [Delete a Knowledge Base Page](delete-a-knowledge-base-page.md) \ No newline at end of file diff --git a/docs/thehive/user-guides/organization/configure-organization/manage-functions/create-a-function.md b/docs/thehive/user-guides/organization/configure-organization/manage-functions/create-a-function.md index 13b5b37285..3d5628e2f9 100644 --- a/docs/thehive/user-guides/organization/configure-organization/manage-functions/create-a-function.md +++ b/docs/thehive/user-guides/organization/configure-organization/manage-functions/create-a-function.md @@ -4,6 +4,8 @@ This topic provides step-by-step instructions for creating a [function](about-functions.md) in TheHive. +Functions automate workflows, process data, and enhance case management. + {!includes/access-functions.md!}

Procedure

diff --git a/docs/thehive/user-guides/organization/configure-organization/manage-notifications/create-a-notification.md b/docs/thehive/user-guides/organization/configure-organization/manage-notifications/create-a-notification.md index c912f0595e..e8e5aa2430 100644 --- a/docs/thehive/user-guides/organization/configure-organization/manage-notifications/create-a-notification.md +++ b/docs/thehive/user-guides/organization/configure-organization/manage-notifications/create-a-notification.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for creating a [notification](about-notifications.md) in TheHive. +A notification triggers automated actions when specific events occur within an organization. + {!includes/access-notifications.md!}

Procedure

diff --git a/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-page-templates/create-a-case-page-template.md b/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-page-templates/create-a-case-page-template.md index f5f612fb42..3003a89f48 100644 --- a/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-page-templates/create-a-case-page-template.md +++ b/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-page-templates/create-a-case-page-template.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for creating a [case page template](about-case-page-templates.md) in TheHive. +Case page templates streamline page creation within cases in TheHive by automatically prefilling content. + To import an existing case template from another organization or TheHive instance, refer to the [Import a Case Page Template](import-a-case-page-template.md) topic. {!includes/access-manage-case-page-templates.md!} diff --git a/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-report-templates/create-a-case-report-template.md b/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-report-templates/create-a-case-report-template.md index fdc11ab39b..1343ba6cbe 100644 --- a/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-report-templates/create-a-case-report-template.md +++ b/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-report-templates/create-a-case-report-template.md @@ -4,6 +4,8 @@ This topic provides step-by-step instructions for creating a [case report template](about-case-report-templates.md) in TheHive. +Case report templates generate [reports](../../../../analyst-corner/cases/case-reports/about-case-reports.md) in a predefined format, available from case descriptions. + {!includes/access-manage-case-report-templates.md!}

Procedure

diff --git a/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-templates/create-a-case-template.md b/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-templates/create-a-case-template.md index 38c155ddde..f174177121 100644 --- a/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-templates/create-a-case-template.md +++ b/docs/thehive/user-guides/organization/configure-organization/manage-templates/case-templates/create-a-case-template.md @@ -2,6 +2,8 @@ This topic provides step-by-step instructions for creating a [case template](about-case-templates.md) in TheHive. +Case templates streamline case creation by automatically filling predefined fields. + !!! info " Duplicate an existing case template" You can duplicate an existing case template within your organization to pre-fill fields and streamline the process. diff --git a/mkdocs.yml b/mkdocs.yml index e7bc766834..c438aaef56 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -41,6 +41,10 @@ watch: extra_css: - assets/stylesheets/extra.css - assets/stylesheets/badge.css + - assets/stylesheets/front.css + +extra_javascript: + - assets/js/main.js hooks: - ./overrides/hooks/shortcodes.py @@ -94,7 +98,7 @@ plugins: 'thehive/user-guides/organisation/configure-organization/manage-attachments/update-attachments.md': 'thehive/user-guides/analyst-corner/cases/attachments/add-an-attachment-case-alert.md' 'thehive/user-guides/organisation/configure-organization/manage-case-templates.md': 'thehive/user-guides/organization/configure-organization/manage-templates/case-templates/create-a-case-template.md' 'thehive/user-guides/organisation/configure-organization/manage-custom-tags/about_custom_tags.md': 'thehive/user-guides/organization/configure-organization/manage-custom-tags/about-custom-tags.md' - 'thehive/user-guides/organisation/configure-organization/manage-custom-tags/manage_views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/organisation/configure-organization/manage-custom-tags/manage_views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/organisation/configure-organization/manage-custom-tags/update.md': 'thehive/user-guides/organization/configure-organization/manage-custom-tags/rename-a-custom-tag.md' 'thehive/user-guides/organisation/configure-organization/manage-notifications/manage_notification.md': 'thehive/user-guides/organization/configure-organization/manage-notifications/about-notifications.md' 'thehive/user-guides/organisation/configure-organization/manage-notifications/supported-notifiers.md': 'thehive/user-guides/organization/configure-organization/manage-notifications/about-notifications.md' @@ -102,7 +106,7 @@ plugins: 'thehive/user-guides/organisation/configure-organization/manage-ui-configuration/about-ui-configuration.md': 'thehive/user-guides/organization/configure-organization/manage-ui-configuration/about-ui-configuration.md' 'thehive/user-guides/organisation/configure-organization/manage-users/add-delete-user.md': 'thehive/user-guides/organization/configure-organization/manage-user-accounts/create-a-user-account.md' 'thehive/user-guides/organisation/configure-organization/manage-users/lock.md': 'thehive/user-guides/organization/configure-organization/manage-user-accounts/lock-a-user-account.md' - 'thehive/user-guides/organisation/configure-organization/manage-users/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/organisation/configure-organization/manage-users/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/organisation/configure-organization/manage-users/preview.md': 'thehive/user-guides/organization/configure-organization/manage-user-accounts/about-user-accounts.md' 'thehive/user-guides/organisation/configure-organization/manage-users/sort.md': 'thehive/user-guides/analyst-corner/about-filtering-and-sorting.md' 'thehive/user-guides/organisation/custom-tags.md': 'thehive/user-guides/organization/configure-organization/manage-custom-tags/about-custom-tags.md' @@ -129,7 +133,7 @@ plugins: 'thehive/user-guides/organisation/ui-configuration.md': 'thehive/user-guides/organization/ui-configuration.md' 'thehive/user-guides/analyst-corner/alerts/actions.md': 'thehive/user-guides/analyst-corner/alerts/start-investigating-an-alert.md' 'thehive/user-guides/analyst-corner/alerts/general.md': 'thehive/user-guides/analyst-corner/alerts/about-alerts.md' - 'thehive/user-guides/analyst-corner/alerts/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/analyst-corner/alerts/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/analyst-corner/alerts/merge-alerts.md': 'thehive/user-guides/analyst-corner/alerts/add-an-alert-to-an-existing-case.md' 'thehive/user-guides/analyst-corner/alerts/new-case-from-selection.md': 'thehive/user-guides/analyst-corner/alerts/create-a-case-from-an-alert.md' 'thehive/user-guides/analyst-corner/alerts/preview-alerts.md': 'thehive/user-guides/analyst-corner/alerts/about-alerts.md' @@ -150,7 +154,7 @@ plugins: 'thehive/user-guides/analyst-corner/cases-list/attachments.md': 'thehive/user-guides/analyst-corner/cases/attachments/about-attachments.md' 'thehive/user-guides/analyst-corner/cases-list/configure-pap-tlp-severity.md': 'thehive/user-guides/analyst-corner/cases/change-case-alert-classification-settings.md' 'thehive/user-guides/analyst-corner/cases-list/general.md': 'thehive/user-guides/analyst-corner/cases/about-cases.md' - 'thehive/user-guides/analyst-corner/cases-list/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/analyst-corner/cases-list/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/analyst-corner/cases-list/observables.md': 'thehive/user-guides/analyst-corner/cases/observables/about-observables.md' 'thehive/user-guides/analyst-corner/cases-list/run-analyzer.md': 'thehive/user-guides/analyst-corner/cases/observables/run-analyzers-on-an-observable.md' 'thehive/user-guides/analyst-corner/cases-list/run-responders.md': 'thehive/user-guides/analyst-corner/cases/run-responders-on-a-case.md' @@ -204,7 +208,7 @@ plugins: 'thehive/user-guides/analyst-corner/dashboard/about-dashboard.md': 'thehive/user-guides/analyst-corner/dashboard/about-dashboards.md' 'thehive/user-guides/analyst-corner/dashboard/filter-sort.md': 'thehive/user-guides/analyst-corner/about-filtering-and-sorting.md' 'thehive/user-guides/analyst-corner/dashboard/manage-dashboard.md': 'thehive/user-guides/analyst-corner/dashboard/about-dashboards.md' - 'thehive/user-guides/analyst-corner/dashboard/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/analyst-corner/dashboard/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/organization/configure-organization/manage-templates/case-report-templates/about-widgets.md': 'thehive/user-guides/organization/configure-organization/manage-templates/case-report-templates/widgets-case-report-templates.md' 'thehive/administration/cortex.md': 'thehive/administration/cortex/about-cortex.md' 'thehive/user-guides/analyst-corner/cases/cases-description/add-custom-fields.md': 'thehive/user-guides/analyst-corner/cases/custom-fields/add-custom-fields.md' @@ -215,7 +219,7 @@ plugins: 'thehive/user-guides/analyst-corner/cases/cases-description/add-custom-fields.md': 'thehive/user-guides/analyst-corner/cases/custom-fields/add-custom-fields.md' 'thehive/user-guides/analyst-corner/cases/cases-description/tasks.md': 'thehive/user-guides/analyst-corner/cases/add-tasks-to-a-case.md' 'thehive/user-guides/organization/configure-organization/manage-custom-tags/about_custom_tags.md': 'thehive/user-guides/organization/configure-organization/manage-custom-tags/about-custom-tags.md' - 'thehive/user-guides/organization/configure-organization/manage-custom-tags/manage_views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/organization/configure-organization/manage-custom-tags/manage_views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/organization/configure-organization/manage-custom-tags/update.md': 'thehive/user-guides/organization/configure-organization/manage-custom-tags/rename-a-custom-tag.md' 'thehive/user-guides/organization/custom-tags.md': 'thehive/user-guides/organization/configure-organization/manage-custom-tags/about-custom-tags.md' 'thehive/user-guides/analyst-corner/tasks/index.md': 'thehive/user-guides/analyst-corner/tasks/about-tasks.md' @@ -254,9 +258,9 @@ plugins: 'thehive/user-guides/analyst-corner/cases/cases-description/case-timelines/export-case-timeline.md': 'thehive/user-guides/analyst-corner/cases/case-timelines/export-case-timeline.md' 'thehive/user-guides/analyst-corner/cases/cases-description/case-timelines/view-case-timeline.md': 'thehive/user-guides/analyst-corner/cases/case-timelines/view-case-timeline.md' 'thehive/user-guides/analyst-corner/cases/cases-description/add-custom-event.md': 'thehive/user-guides/analyst-corner/cases/case-timelines/add-custom-event-timeline.md' - 'thehive/user-guides/analyst-corner/alerts/alerts-description/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' - 'thehive/user-guides/analyst-corner/cases/cases-description/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' - 'thehive/user-guides/organization/configure-organization/manage-users/manage-views.md': 'thehive/user-guides/analyst-corner/about-views.md' + 'thehive/user-guides/analyst-corner/alerts/alerts-description/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' + 'thehive/user-guides/analyst-corner/cases/cases-description/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' + 'thehive/user-guides/organization/configure-organization/manage-users/manage-views.md': 'thehive/user-guides/analyst-corner/views/about-views.md' 'thehive/user-guides/organization/configure-organization/manage-users/sort.md': 'thehive/user-guides/analyst-corner/about-filtering-and-sorting.md' 'thehive/setup/installation/migration.md': 'thehive/installation/upgrade-from-5.x.md' 'thehive/setup/installation/upgrade-from-5.0.x.md': 'thehive/installation/upgrade-from-5.x.md' @@ -323,6 +327,41 @@ extra: link: "https://chat.thehive-project.org" - icon: fontawesome/brands/youtube link: "https://www.youtube.com/channel/UCUmojqcxiG_LUbe62pR2Igg" + + header: + logo: '/assets/images/StrangeBee_Landscape.svg' + + footer: + logo: '/assets/images/StrangeBee_Footer.svg' + text: 'Empowering incident responders worldwide' + links: + - text: "link 1" + url: '#' + - text: "link 2" + url: '#' + + groups: + - name: "group 1" + link: + text: 'View all features' + url: '#' + links: + - text: "link 1" + url: '#' + tag: 'On-prem' + - text: "link 2" + url: '#' + - name: "group 2" + link: + text: 'View all features' + url: '#' + links: + - text: "link 1" + url: '#' + tag: 'On-prem' + - text: "link 2" + url: '#' + analytics: provider: google property: G-W7W9113BRP @@ -501,7 +540,6 @@ nav: - 'About the Knowledge Base': thehive/user-guides/knowledge-base/about-knowledge-base.md - 'Create a Page': thehive/user-guides/knowledge-base/create-a-knowledge-base-page.md - 'Delete a Page': thehive/user-guides/knowledge-base/delete-a-knowledge-base-page.md - - 'Share a Page': thehive/user-guides/knowledge-base/share-a-knowledge-base-page.md - 'View a Page': thehive/user-guides/knowledge-base/view-a-knowledge-base-page.md - 'Key Performance Indicators': - 'KPIs': thehive/user-guides/key-performance-indicators/key-performance-indicators.md @@ -717,6 +755,11 @@ nav: - 'Run a Function on a Case': thehive/user-guides/organization/configure-organization/manage-functions/run-a-function-case-alert.md - 'Run Responders and Review Reports for a Case': thehive/user-guides/analyst-corner/cases/run-responders-on-a-case.md - 'Comment on Cases': thehive/user-guides/analyst-corner/cases/comment-on-case-alert.md + - 'Case Pages': + - 'Create a Page': thehive/user-guides/knowledge-base/create-a-case-page.md + - 'Delete a Page': thehive/user-guides/knowledge-base/delete-a-case-page.md + - 'Share a Page': thehive/user-guides/knowledge-base/share-a-case-page.md + - 'View a Page': thehive/user-guides/knowledge-base/view-a-case-page.md - 'Close a Case': thehive/user-guides/analyst-corner/cases/close-a-case.md - 'Reopen a Case': thehive/user-guides/analyst-corner/cases/reopen-a-case.md - 'Tasks Management': @@ -751,7 +794,11 @@ nav: - 'Download a Dashboard': thehive/user-guides/analyst-corner/dashboard/download-a-dashboard.md - 'Detail View vs. Preview': thehive/user-guides/analyst-corner/preview-vs-detail-view.md - 'About Filtering and Sorting': thehive/user-guides/analyst-corner/about-filtering-and-sorting.md - - 'About Views': thehive/user-guides/analyst-corner/about-views.md + - 'Views': + - 'About Views': thehive/user-guides/analyst-corner/views/about-views.md + - 'Create a Custom View': thehive/user-guides/analyst-corner/views/create-a-custom-view.md + - 'Update a Custom View': thehive/user-guides/analyst-corner/views/update-a-custom-view.md + - 'Delete a Custom View': thehive/user-guides/analyst-corner/views/delete-a-custom-view.md - 'About Autorefresh': thehive/user-guides/analyst-corner/about-autorefresh.md - 'About Statistics': thehive/user-guides/analyst-corner/about-statistics.md - 'About the Live Feed': thehive/user-guides/analyst-corner/about-live-feed.md diff --git a/overrides/404.html b/overrides/404.html index 6541b90cd3..6dfb8e7b1f 100644 --- a/overrides/404.html +++ b/overrides/404.html @@ -1,72 +1,72 @@ - - - - - - Page Not Found - - - -
- -
- 404 -
-
- Oops! Page not found. -
- Return to Homepage -
- + + + + + + Page Not Found + + + +
+ +
+ 404 +
+
+ Oops! Page not found. +
+ Return to Homepage +
+ \ No newline at end of file diff --git a/overrides/home.html b/overrides/home.html index 41457eecd8..08009a44f8 100644 --- a/overrides/home.html +++ b/overrides/home.html @@ -1,239 +1,89 @@ -{% extends "main.html" %} {% block tabs %} {{ super() }} -
-
-
-
- -
-
-

TheHive Technical Documentation

-

Learn how to install, configure, and maintain TheHive for analysts.

- - Getting Started - - - Download TheHive - -
-
-
-
- - - -
-

Features

- -
    -
  • -

    Alert Management

    -

    - Efficiently manage alerts with a dedicated and detailed Alert page. Make comments, identify similar alerts, define custom statuses and fields, and decide on escalation to investigations or incident response. -

    -
  • - -
  • -

    Case Management

    -

    - Streamline case creation with associated tasks and observables. Identify related cases and alerts, set PAP (Permissible Actions Protocol) levels on each Observable, and enhance Incident Response using a flexible template engine. -

    -
  • - -
  • -

    Multi-Tenant Environments

    -

    - Define organizations and teams for collaborative work. Customize permissions and roles to isolate or share cases between organizations. -

    -
  • - -
  • -

    Advanced User Management

    -

    - Customize user profiles and assignments within organizations. Synchronize users via LDAP or AD for streamlined management. -

    -
  • - -
  • -

    Notifications Framework

    -

    - Set up notification rules to trigger webhooks, emails, Slack/Mattermost messages, or custom HTTP requests based on specified events. -

    -
  • - -
  • -

    Metrics and Dashboards

    -

    - Utilize dynamic dashboarding to compile and correlate case statistics, tasks, observables, and metrics for generating KPIs and MBOs. -

    -
  • - -
  • -

    Comprehensive APIs

    -

    - Access fully documented APIs for implementing workflows and developing automated scripts using TheHive data. -

    -
  • - -
  • -

    MISP Integration

    -

    - Seamlessly import and share Indicators of Compromise with MISP. Collaborate by connecting TheHive with MISP to enhance threat intelligence sharing. -

    -
  • - -
  • -

    MITRE ATT&CK Integration

    -

    - Incorporate MITRE ATT&CK Framework TTPs into alert management. Import tactics and techniques into cases or alerts, or export to MISP events for broader threat analysis. -

    -
  • - -
  • -

    Case Reporting

    -

    - Generate detailed incident reports in markdown, DOCX or PDF format. Customize report templates based on content requirements and target audience. -

    -
  • - -
  • -

    Knowledge Base

    -

    - Centralize policies, procedures, best practices, and guidance within the in-app 'wiki' for quick access and support during incident response. -

    -
  • - -
  • -

    Timeline

    -

    - Track incident progression with a comprehensive timeline view. Capture events from detection to resolution, providing insights into the incident response process. -

    -
  • -
-
- - -{% endblock %} {% block content %}{% endblock %} {% block footer %}{% endblock %} +{% extends "main.html" %} {% block tabs %} {{ super() }} +
+ +
+ + {% if page.meta.hero %} +
+
+
+
+
+
+
+

{% for part in page.meta.hero.title.split('*') %} + {% if loop.index is odd %} + {{ part }} + {% else %} +
{{ part }}
+ {% endif %} + {% endfor %}

+
{{ page.meta.hero.text }}
+
+
+ {% for link in page.meta.hero.links %} + +
{{ link.text }}
+
+ {% endfor %} +
+
+
+ {% endif %} + {% if page.meta.sections %} +
+
+
+

{{ page.meta.sections.title }}

+

{{ page.meta.sections.text }}

+
+
+
+
+
{{ page.meta.sections.anchors }}
+
+ {% for item in page.meta.sections.data %} + {{ item.anchor.name }} + {% endfor %} +
+
+
+ {% for item in page.meta.sections.data %} +
+
+
+
+
+

{{ item.title }}

+

{{ item.text }}

+
+
+
+ {% for group in item.groups %} +
+

{{ group.title }}

+
+ {% for link in group.links %} + {{ link.text }} + {% endfor %} +
+
+ {% endfor %} +
+
+ {% endfor %} +
+
+
+ {% endif %} + +{% endblock %} +{% block content %}{% endblock %} +{% block footer %}{{ super() }}{% endblock %} diff --git a/overrides/hooks/shortcodes.py b/overrides/hooks/shortcodes.py index a5caf155f6..afb653b274 100644 --- a/overrides/hooks/shortcodes.py +++ b/overrides/hooks/shortcodes.py @@ -1,110 +1,110 @@ -# This file implements a hook for version badges. -# It is adapted from the MkDocs Material project: -# https://github.com/squidfunk/mkdocs-material/blob/master/src/overrides/hooks/shortcodes.py -# -# The original work is licensed under the MIT License: -# https://github.com/squidfunk/mkdocs-material/blob/master/LICENSE -# © Martin Donath / MkDocs Material -# -# More information on MkDocs hooks is available here: -# https://www.mkdocs.org/user-guide/configuration/#hooks - -import posixpath -import re -from re import Match - -from mkdocs.config.defaults import MkDocsConfig -from mkdocs.structure.files import File, Files -from mkdocs.structure.pages import Page - - -def on_page_markdown( - markdown: str, - *, - page: Page, - config: MkDocsConfig, - files: Files, -) -> str: - """Custom hook function that is called after the page's markdown is loaded: - https://www.mkdocs.org/dev-guide/plugins/#on_page_markdown - - This hook will find and replace custom shortcodes with their respective HTML. - - Args: - markdown (str): Markdown source text of page as string. - page (Page): Markdown Page instance. - config (MkDocsConfig): MkDocs global configuration object. - files (Files): MkDocs global files collection. - - Returns - Markdown source text of page as string. - """ - # Replace callback - def replace(match: Match): - type, args = match.groups() - args = args.strip() - if type == "version": - return _badge_for_version(args, page, files) - if type == "license": - return _badge_for_license(args, page, files) - # Otherwise, raise an error - raise RuntimeError(f"Unknown shortcode: {type}") - - # Find and replace all external asset URLs in current page - return re.sub( - r"", - replace, markdown, flags = re.I | re.M - ) - - -# Resolve path of file relative to given page - the posixpath always includes -# one additional level of `..` which we need to remove -def _resolve_path(path: str, page: Page, files: Files): - path, anchor, *_ = f"{path}#".split("#") - path = _resolve(files.get_file_from_path(path), page) - return "#".join([path, anchor]) if anchor else path - - -# Resolve path of file relative to given page - the posixpath always includes -# one additional level of `..` which we need to remove -def _resolve(file: File, page: Page): - path = posixpath.relpath(file.src_uri, page.file.src_uri) - return posixpath.sep.join(path.split(posixpath.sep)[1:]) - - -# Create badge -def _badge(icon: str, text: str = "", type: str = ""): - classes = f"mdx-badge mdx-badge--{type}" if type else "mdx-badge" - return "".join([ - f"", - *([f"{icon}"] if icon else []), - *([f"{text}"] if text else []), - f"", - ]) - -# Create badge for version -def _badge_for_version(text: str, page: Page, files: Files): - # Extract major.minor from full version (e.g. "5.3.1" → "5.3") - version_parts = text.split(".") - major_minor = ".".join(version_parts[:2]) if len(version_parts) >= 2 else text - - # Construct path to the right release notes file - path = f"thehive/release-notes/release-notes-{major_minor}.md#{text}" - - # Create link - icon = "material-new-box" - href = _resolve_path(path, page, files) - - # Return badge - return _badge( - icon = f"[:{icon}:]({href} 'Minimum version')", - text = f"[{text}]({href})" if text else "" - ) - -# Create badge for license -def _badge_for_license(text: str, page: Page, files: Files): - icon = "material-license" - return _badge( - icon=f"[:{icon}:]('#' 'License type')", - text=text - ) +# This file implements a hook for version badges. +# It is adapted from the MkDocs Material project: +# https://github.com/squidfunk/mkdocs-material/blob/master/src/overrides/hooks/shortcodes.py +# +# The original work is licensed under the MIT License: +# https://github.com/squidfunk/mkdocs-material/blob/master/LICENSE +# © Martin Donath / MkDocs Material +# +# More information on MkDocs hooks is available here: +# https://www.mkdocs.org/user-guide/configuration/#hooks + +import posixpath +import re +from re import Match + +from mkdocs.config.defaults import MkDocsConfig +from mkdocs.structure.files import File, Files +from mkdocs.structure.pages import Page + + +def on_page_markdown( + markdown: str, + *, + page: Page, + config: MkDocsConfig, + files: Files, +) -> str: + """Custom hook function that is called after the page's markdown is loaded: + https://www.mkdocs.org/dev-guide/plugins/#on_page_markdown + + This hook will find and replace custom shortcodes with their respective HTML. + + Args: + markdown (str): Markdown source text of page as string. + page (Page): Markdown Page instance. + config (MkDocsConfig): MkDocs global configuration object. + files (Files): MkDocs global files collection. + + Returns + Markdown source text of page as string. + """ + # Replace callback + def replace(match: Match): + type, args = match.groups() + args = args.strip() + if type == "version": + return _badge_for_version(args, page, files) + if type == "license": + return _badge_for_license(args, page, files) + # Otherwise, raise an error + raise RuntimeError(f"Unknown shortcode: {type}") + + # Find and replace all external asset URLs in current page + return re.sub( + r"", + replace, markdown, flags = re.I | re.M + ) + + +# Resolve path of file relative to given page - the posixpath always includes +# one additional level of `..` which we need to remove +def _resolve_path(path: str, page: Page, files: Files): + path, anchor, *_ = f"{path}#".split("#") + path = _resolve(files.get_file_from_path(path), page) + return "#".join([path, anchor]) if anchor else path + + +# Resolve path of file relative to given page - the posixpath always includes +# one additional level of `..` which we need to remove +def _resolve(file: File, page: Page): + path = posixpath.relpath(file.src_uri, page.file.src_uri) + return posixpath.sep.join(path.split(posixpath.sep)[1:]) + + +# Create badge +def _badge(icon: str, text: str = "", type: str = ""): + classes = f"mdx-badge mdx-badge--{type}" if type else "mdx-badge" + return "".join([ + f"", + *([f"{icon}"] if icon else []), + *([f"{text}"] if text else []), + f"", + ]) + +# Create badge for version +def _badge_for_version(text: str, page: Page, files: Files): + # Extract major.minor from full version (e.g. "5.3.1" → "5.3") + version_parts = text.split(".") + major_minor = ".".join(version_parts[:2]) if len(version_parts) >= 2 else text + + # Construct path to the right release notes file + path = f"thehive/release-notes/release-notes-{major_minor}.md#{text}" + + # Create link + icon = "material-new-box" + href = _resolve_path(path, page, files) + + # Return badge + return _badge( + icon = f"[:{icon}:]({href} 'Minimum version')", + text = f"[{text}]({href})" if text else "" + ) + +# Create badge for license +def _badge_for_license(text: str, page: Page, files: Files): + icon = "material-license" + return _badge( + icon=f"[:{icon}:]('#' 'License type')", + text=text + ) diff --git a/overrides/main.html b/overrides/main.html index 03c6a4da32..398475ade7 100644 --- a/overrides/main.html +++ b/overrides/main.html @@ -1,69 +1,90 @@ -{% extends "base.html" %} {% block extrahead %} - -{{ super() }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{% endblock %} +{% extends "base.html" %} {% block extrahead %} + +{{ super() }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{% endblock %} diff --git a/overrides/partials/footer.html b/overrides/partials/footer.html new file mode 100644 index 0000000000..ac0b2dbb16 --- /dev/null +++ b/overrides/partials/footer.html @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/overrides/partials/header.html b/overrides/partials/header.html new file mode 100644 index 0000000000..b2704e4ab5 --- /dev/null +++ b/overrides/partials/header.html @@ -0,0 +1,15 @@ +
+ +
diff --git a/scss/abstracts/__breakpoints.scss b/scss/abstracts/__breakpoints.scss index ce384d773f..a8023a5d16 100644 --- a/scss/abstracts/__breakpoints.scss +++ b/scss/abstracts/__breakpoints.scss @@ -1,4 +1,4 @@ -$breakpoint-laptop: 76.1875rem; -$breakpoint-medium: 60rem; -$breakpoint-small: 56.25rem; -$breakpoint-tablet: 36.625rem; +$breakpoint-laptop: 76.1875rem; +$breakpoint-medium: 60rem; +$breakpoint-small: 56.25rem; +$breakpoint-tablet: 36.625rem; diff --git a/scss/abstracts/__mixins.scss b/scss/abstracts/__mixins.scss index ad972fd085..111c0da278 100644 --- a/scss/abstracts/__mixins.scss +++ b/scss/abstracts/__mixins.scss @@ -1,11 +1,11 @@ -@mixin respond-max($breakpoint) { - @media only screen and (max-width: $breakpoint) { - @content; - } -} - -@mixin respond-min($breakpoint) { - @media only screen and (min-width: $breakpoint) { - @content; - } -} +@mixin respond-max($breakpoint) { + @media only screen and (max-width: $breakpoint) { + @content; + } +} + +@mixin respond-min($breakpoint) { + @media only screen and (min-width: $breakpoint) { + @content; + } +} diff --git a/scss/abstracts/_index.scss b/scss/abstracts/_index.scss index 51b4d41b4e..e47b6f58d5 100644 --- a/scss/abstracts/_index.scss +++ b/scss/abstracts/_index.scss @@ -1,2 +1,2 @@ -@forward "./_mixins"; -@forward "./_breakpoints"; +@forward "./_mixins"; +@forward "./_breakpoints"; diff --git a/scss/components/__bottom-hr.scss b/scss/components/__bottom-hr.scss index 676a8e1f26..3926be6a29 100644 --- a/scss/components/__bottom-hr.scss +++ b/scss/components/__bottom-hr.scss @@ -1,13 +1,13 @@ -@use "../abstracts" as *; - -.bottom-hr { - @include respond-min($breakpoint-laptop) { - margin-top: 10px; - width: 100%; - display: flex; - max-width: 61rem; - margin-right: auto; - margin-left: auto; - padding: 0 0.2rem; - } -} +@use "../abstracts" as *; + +.bottom-hr { + @include respond-min($breakpoint-laptop) { + margin-top: 10px; + width: 100%; + display: flex; + max-width: 61rem; + margin-right: auto; + margin-left: auto; + padding: 0 0.2rem; + } +} diff --git a/scss/components/__feature.scss b/scss/components/__feature.scss index a7cbb55441..4c455c2ef2 100644 --- a/scss/components/__feature.scss +++ b/scss/components/__feature.scss @@ -1,84 +1,84 @@ -@use "../abstracts" as *; - -.feature { - font-family: "Lato", sans-serif; - font-weight: 300; - box-sizing: border-box; - padding: 0 15px; - word-break: break-word; - - h2 svg { - height: 30px; - float: left; - margin-right: 10px; - transform: translateY(10%); - } - - h2 { - color: #333; - font-weight: 300; - font-size: 25px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - line-height: normal; - margin-top: 20px; - margin-bottom: 10px; - font-family: inherit; - } - - p { - font-size: var(--size-normal-px); - line-height: 1.8em; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - color: #111; - margin: 0 0 10px; - display: block; - } - - &__grid { - padding: 0; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: var(--size-normal-px); - - @include respond-max($breakpoint-medium) { - grid-template-columns: repeat(2, 1fr); - } - - @include respond-max($breakpoint-tablet) { - grid-template-columns: 1fr; - } - } - - &__card { - border: 1px solid rgba(0, 0, 0, 0.1); - padding: var(--size-normal-px); - border-radius: 4px; - list-style: none; - } - - &__title { - font-size: 18px; - font-weight: bold; - color: var(--md-primary-fg-color); - } - - &__content { - font-size: 14px; - color: var(--md-primary-fg-color); - } - - &-item { - @include respond-min($breakpoint-laptop) { - flex: 1; - min-width: 0; - - &:hover { - background-color: rgb(198, 243, 298); - border-radius: 3px; - } - } - } -} +@use "../abstracts" as *; + +.feature { + font-family: "Lato", sans-serif; + font-weight: 300; + box-sizing: border-box; + padding: 0 15px; + word-break: break-word; + + h2 svg { + height: 30px; + float: left; + margin-right: 10px; + transform: translateY(10%); + } + + h2 { + color: #333; + font-weight: 300; + font-size: 25px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + line-height: normal; + margin-top: 20px; + margin-bottom: 10px; + font-family: inherit; + } + + p { + font-size: var(--size-normal-px); + line-height: 1.8em; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + color: #111; + margin: 0 0 10px; + display: block; + } + + &__grid { + padding: 0; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: var(--size-normal-px); + + @include respond-max($breakpoint-medium) { + grid-template-columns: repeat(2, 1fr); + } + + @include respond-max($breakpoint-tablet) { + grid-template-columns: 1fr; + } + } + + &__card { + border: 1px solid rgba(0, 0, 0, 0.1); + padding: var(--size-normal-px); + border-radius: 4px; + list-style: none; + } + + &__title { + font-size: 18px; + font-weight: bold; + color: var(--md-primary-fg-color); + } + + &__content { + font-size: 14px; + color: var(--md-primary-fg-color); + } + + &-item { + @include respond-min($breakpoint-laptop) { + flex: 1; + min-width: 0; + + &:hover { + background-color: rgb(198, 243, 298); + border-radius: 3px; + } + } + } +} diff --git a/scss/components/__hr-logos.scss b/scss/components/__hr-logos.scss index 91479520de..c28c64408f 100644 --- a/scss/components/__hr-logos.scss +++ b/scss/components/__hr-logos.scss @@ -1,4 +1,4 @@ -.hr-logos { - margin-top: 0; - margin-bottom: 30px; -} +.hr-logos { + margin-top: 0; + margin-bottom: 30px; +} diff --git a/scss/components/__hr.scss b/scss/components/__hr.scss index 528ab0e6fd..3666f8a45a 100644 --- a/scss/components/__hr.scss +++ b/scss/components/__hr.scss @@ -1,5 +1,5 @@ -.hr { - border-bottom: 1px solid #eee; - width: 100%; - margin: 20px 0; -} +.hr { + border-bottom: 1px solid #eee; + width: 100%; + margin: 20px 0; +} diff --git a/scss/components/__logos.scss b/scss/components/__logos.scss index 8031328b9d..b33e03ab09 100644 --- a/scss/components/__logos.scss +++ b/scss/components/__logos.scss @@ -1,14 +1,14 @@ -.logos { - display: flex; - align-items: center; - justify-content: center; - flex-flow: row wrap; - margin: 0 auto; - - img { - flex: 1 1 auto; - padding: 25px; - max-height: 130px; - vertical-align: middle; - } -} +.logos { + display: flex; + align-items: center; + justify-content: center; + flex-flow: row wrap; + margin: 0 auto; + + img { + flex: 1 1 auto; + padding: 25px; + max-height: 130px; + vertical-align: middle; + } +} diff --git a/scss/components/__md-banner.scss b/scss/components/__md-banner.scss index 8c98e29f50..a12116d5b5 100644 --- a/scss/components/__md-banner.scss +++ b/scss/components/__md-banner.scss @@ -1,11 +1,11 @@ -.md-banner { - a, - a:hover, - a:focus { - color: currentColor; - } - - .twitter { - color: var(--color-social--twitter); - } -} +.md-banner { + a, + a:hover, + a:focus { + color: currentColor; + } + + .twitter { + color: var(--color-social--twitter); + } +} diff --git a/scss/components/__md-content.scss b/scss/components/__md-content.scss index 894ba1fcc4..ef2e0a5ac2 100644 --- a/scss/components/__md-content.scss +++ b/scss/components/__md-content.scss @@ -1,12 +1,12 @@ -.md-content { - padding-left: 4%; - padding-right: 3%; - - a { - text-decoration: underline; - } - - label a { - text-decoration: none; - } -} +.md-content { + padding-left: 4%; + padding-right: 3%; + + a { + text-decoration: underline; + } + + label a { + text-decoration: none; + } +} diff --git a/scss/components/__md-footer.scss b/scss/components/__md-footer.scss index 5698b99307..61c0de8239 100644 --- a/scss/components/__md-footer.scss +++ b/scss/components/__md-footer.scss @@ -1,12 +1,12 @@ -.md-footer { - &-meta__inner { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin-top: var(--size-normal); - } - - &-social { - padding-top: 20px; - } -} +.md-footer { + &-meta__inner { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin-top: var(--size-normal); + } + + &-social { + padding-top: 20px; + } +} diff --git a/scss/components/__md-header.scss b/scss/components/__md-header.scss index 407aa40284..4164a95419 100644 --- a/scss/components/__md-header.scss +++ b/scss/components/__md-header.scss @@ -1,3 +1,3 @@ -.md-header__topic { - display: none; -} +.md-header__topic { + display: none; +} diff --git a/scss/components/__md-main.scss b/scss/components/__md-main.scss index df5301a5b3..90835e8740 100644 --- a/scss/components/__md-main.scss +++ b/scss/components/__md-main.scss @@ -1,22 +1,22 @@ -@use "../abstracts/" as *; - -.md-main { - flex-grow: 0; - - &__inner { - display: flex; - height: 100%; - } -} - -.md-container:not(:has(.tx-container)) .md-main__inner { - min-height: calc(100vh - 215px); - - @include respond-max($breakpoint-laptop) { - min-height: calc(100vh - 161px); - } - - @include respond-max(719px) { - min-height: calc(100vh - 190px); - } -} +@use "../abstracts/" as *; + +.md-main { + flex-grow: 0; + + &__inner { + display: flex; + height: 100%; + } +} + +.md-container:not(:has(.tx-container)) .md-main__inner { + min-height: calc(100vh - 215px); + + @include respond-max($breakpoint-laptop) { + min-height: calc(100vh - 161px); + } + + @include respond-max(719px) { + min-height: calc(100vh - 190px); + } +} diff --git a/scss/components/__md-nav.scss b/scss/components/__md-nav.scss index f2d99cdf63..03b9663c02 100644 --- a/scss/components/__md-nav.scss +++ b/scss/components/__md-nav.scss @@ -1,16 +1,16 @@ -[dir="ltr"] { - .md-nav--integrated > .md-nav__list > .md-nav__item--active .md-nav--secondary { - border-left-color: var(--color-yellow); - } - - .md-nav__link { - &:hover, - &:focus { - color: var(--color-blue-primary--dark); - } - } - .md-nav__item .md-nav__link--active { - color: var(--color-blue-primary--dark); - font-weight: var(--fontWeight-bold); - } -} +[dir="ltr"] { + .md-nav--integrated > .md-nav__list > .md-nav__item--active .md-nav--secondary { + border-left-color: var(--color-yellow); + } + + .md-nav__link { + &:hover, + &:focus { + color: var(--color-blue-primary--dark); + } + } + .md-nav__item .md-nav__link--active { + color: var(--color-blue-primary--dark); + font-weight: var(--fontWeight-bold); + } +} diff --git a/scss/components/__md-search.scss b/scss/components/__md-search.scss index 19362f3cbd..f406d62fcc 100644 --- a/scss/components/__md-search.scss +++ b/scss/components/__md-search.scss @@ -1,3 +1,3 @@ -.md-search-result mark { - font-weight: var(--fontWeight-bold); -} +.md-search-result mark { + font-weight: var(--fontWeight-bold); +} diff --git a/scss/components/__md-sidebar.scss b/scss/components/__md-sidebar.scss index 3fad77392e..37cbf8910d 100644 --- a/scss/components/__md-sidebar.scss +++ b/scss/components/__md-sidebar.scss @@ -1,17 +1,17 @@ -@use "../abstracts/" as *; - -[dir="ltr"] { - .md-sidebar { - width: 15rem; - - &--primary { - padding-right: 3%; - - left: -15.1rem; - } - } - - [data-md-toggle="drawer"]:checked ~ .md-container .md-sidebar--primary { - transform: translateX(15.1rem); - } -} +@use "../abstracts/" as *; + +[dir="ltr"] { + .md-sidebar { + width: 15rem; + + &--primary { + padding-right: 3%; + + left: -15.1rem; + } + } + + [data-md-toggle="drawer"]:checked ~ .md-container .md-sidebar--primary { + transform: translateX(15.1rem); + } +} diff --git a/scss/components/__md-typeset.scss b/scss/components/__md-typeset.scss index 5f775a88cb..36427f23eb 100644 --- a/scss/components/__md-typeset.scss +++ b/scss/components/__md-typeset.scss @@ -1,7 +1,7 @@ -.md-typeset { - h1, - h2 { - color: #000000ee; - font-weight: 500; - } -} +.md-typeset { + h1, + h2 { + color: #000000ee; + font-weight: 500; + } +} diff --git a/scss/components/__section.scss b/scss/components/__section.scss index a4e73a45ec..5ccf14f4b9 100644 --- a/scss/components/__section.scss +++ b/scss/components/__section.scss @@ -1,7 +1,7 @@ -.section { - &__title { - font-size: 25px; - font-weight: bolder; - color: var(--md-primary-fg-color); - } -} +.section { + &__title { + font-size: 25px; + font-weight: bolder; + color: var(--md-primary-fg-color); + } +} diff --git a/scss/components/__text-center.scss b/scss/components/__text-center.scss index 3f0e7b0956..65310d35a4 100644 --- a/scss/components/__text-center.scss +++ b/scss/components/__text-center.scss @@ -1,12 +1,12 @@ -.text-center { - text-align: center; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; - margin-top: 15px; - font-family: "Nunito", sans-serif; - font-size: 23px; - font-weight: 300; - padding-bottom: 10px; -} +.text-center { + text-align: center; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; + margin-top: 15px; + font-family: "Nunito", sans-serif; + font-size: 23px; + font-weight: 300; + padding-bottom: 10px; +} diff --git a/scss/components/__th-container.scss b/scss/components/__th-container.scss index 55c7bbf287..5024388977 100644 --- a/scss/components/__th-container.scss +++ b/scss/components/__th-container.scss @@ -1,8 +1,8 @@ -.th-container { - max-width: 61rem; - width: 100%; - padding-left: var(--size-normal-px); - padding-right: var(--size-normal-px); - margin-left: auto; - margin-right: auto; -} +.th-container { + max-width: 61rem; + width: 100%; + padding-left: var(--size-normal-px); + padding-right: var(--size-normal-px); + margin-left: auto; + margin-right: auto; +} diff --git a/scss/components/__top-hr.scss b/scss/components/__top-hr.scss index 7a50d8f38d..98d6a6949c 100644 --- a/scss/components/__top-hr.scss +++ b/scss/components/__top-hr.scss @@ -1,14 +1,14 @@ -@use "../abstracts" as *; - -.top-hr { - margin-top: 42px; - - @include respond-min($breakpoint-laptop) { - width: 100%; - display: flex; - max-width: 61rem; - margin-right: auto; - margin-left: auto; - padding: 0 0.2rem; - } -} +@use "../abstracts" as *; + +.top-hr { + margin-top: 42px; + + @include respond-min($breakpoint-laptop) { + width: 100%; + display: flex; + max-width: 61rem; + margin-right: auto; + margin-left: auto; + padding: 0 0.2rem; + } +} diff --git a/scss/components/__tx-container.scss b/scss/components/__tx-container.scss index 3f90e70fe5..715b13468c 100644 --- a/scss/components/__tx-container.scss +++ b/scss/components/__tx-container.scss @@ -1,4 +1,4 @@ -.tx-container { - padding-top: 0rem; - background: var(--md-primary-fg-color); -} +.tx-container { + padding-top: 0rem; + background: var(--md-primary-fg-color); +} diff --git a/scss/components/__tx-hero.scss b/scss/components/__tx-hero.scss index b3f4cffe2b..6c46a0a481 100644 --- a/scss/components/__tx-hero.scss +++ b/scss/components/__tx-hero.scss @@ -1,83 +1,83 @@ -@use "../abstracts" as *; - -.tx-hero { - display: flex; - align-items: center; - justify-content: space-between; - gap: var(--size-large-px); - - margin: var(--size-large-px) 0; - padding-left: var(--size-normal-px); - padding-right: var(--size-normal-px); - - color: var(--md-primary-bg-color); - - @include respond-max($breakpoint-small) { - flex-direction: column; - gap: var(--size-normal-px); - } - - h1 { - margin-bottom: var(--size-normal); - color: currentColor; - font-weight: var(--fontWeight-bold); - - @include respond-max(30rem) { - font-size: 1.4rem; - } - } - - &__content { - padding-bottom: var(--size-normal); - margin: 0 auto; - - @include respond-min($breakpoint-medium) { - max-width: 22rem; - margin-top: 3.5rem; - margin-bottom: 3.5rem; - margin-left: 0; - margin-right: 4rem; - align-items: center; - } - } - - &__image { - width: 50%; - max-height: 17rem; - order: 1; - padding-left: 2.5rem; - height: fit-content; - - @include respond-max($breakpoint-laptop) { - padding-left: 0; - } - - @include respond-max($breakpoint-small) { - width: 100%; - max-width: 27rem; - margin-left: auto; - margin-right: auto; - } - } - - .md-button { - margin-top: var(--size-small); - margin-right: var(--size-small); - color: var(--md-primary-bg-color); - } - - .md-button--primary { - background-color: var(--md-primary-bg-color); - color: var(--md-primary-fg-color--dark); - border-color: var(--md-primary-bg-color); - } - - .md-button { - &:focus, - &:hover { - background-color: var(--md-primary-fg-color--light); - color: var(--color-black); - border-color: var(--md-primary-fg-color--light); - } - } -} +@use "../abstracts" as *; + +.tx-hero { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--size-large-px); + + margin: var(--size-large-px) 0; + padding-left: var(--size-normal-px); + padding-right: var(--size-normal-px); + + color: var(--md-primary-bg-color); + + @include respond-max($breakpoint-small) { + flex-direction: column; + gap: var(--size-normal-px); + } + + h1 { + margin-bottom: var(--size-normal); + color: currentColor; + font-weight: var(--fontWeight-bold); + + @include respond-max(30rem) { + font-size: 1.4rem; + } + } + + &__content { + padding-bottom: var(--size-normal); + margin: 0 auto; + + @include respond-min($breakpoint-medium) { + max-width: 22rem; + margin-top: 3.5rem; + margin-bottom: 3.5rem; + margin-left: 0; + margin-right: 4rem; + align-items: center; + } + } + + &__image { + width: 50%; + max-height: 17rem; + order: 1; + padding-left: 2.5rem; + height: fit-content; + + @include respond-max($breakpoint-laptop) { + padding-left: 0; + } + + @include respond-max($breakpoint-small) { + width: 100%; + max-width: 27rem; + margin-left: auto; + margin-right: auto; + } + } + + .md-button { + margin-top: var(--size-small); + margin-right: var(--size-small); + color: var(--md-primary-bg-color); + } + + .md-button--primary { + background-color: var(--md-primary-bg-color); + color: var(--md-primary-fg-color--dark); + border-color: var(--md-primary-bg-color); + } + + .md-button { + &:focus, + &:hover { + background-color: var(--md-primary-fg-color--light); + color: var(--color-black); + border-color: var(--md-primary-fg-color--light); + } + } +} diff --git a/scss/components/_index.scss b/scss/components/_index.scss index 9fe6c2d5f2..befc9dc4ce 100644 --- a/scss/components/_index.scss +++ b/scss/components/_index.scss @@ -1,24 +1,24 @@ -@forward "./_md-banner"; -@forward "./_md-header"; -@forward "./_md-content"; -@forward "./_md-sidebar"; -@forward "./_md-typeset"; -@forward "./_md-main"; -@forward "./_md-footer"; -@forward "./_md-nav"; -@forward "./_md-search"; - -@forward "./_tx-container"; -@forward "./_tx-hero"; - -@forward "./_top-hr"; -@forward "./_bottom-hr"; -@forward "./_feature"; - -@forward "./_th-container"; -@forward "./_section"; -@forward "./_logos"; -@forward "./_hr-logos"; - -@forward "./_text-center"; -@forward "./_hr"; +@forward "./_md-banner"; +@forward "./_md-header"; +@forward "./_md-content"; +@forward "./_md-sidebar"; +@forward "./_md-typeset"; +@forward "./_md-main"; +@forward "./_md-footer"; +@forward "./_md-nav"; +@forward "./_md-search"; + +@forward "./_tx-container"; +@forward "./_tx-hero"; + +@forward "./_top-hr"; +@forward "./_bottom-hr"; +@forward "./_feature"; + +@forward "./_th-container"; +@forward "./_section"; +@forward "./_logos"; +@forward "./_hr-logos"; + +@forward "./_text-center"; +@forward "./_hr"; diff --git a/scss/extra.scss b/scss/extra.scss index af0f873482..c2288360a1 100644 --- a/scss/extra.scss +++ b/scss/extra.scss @@ -1,3 +1,268 @@ -@forward "./variables/"; -@forward "./bases/"; -@forward "./components/"; +@forward "./variables/"; +@forward "./bases/"; +@forward "./components/"; + +$w-mob: 480px; +$w-tab: 1220px; +$w-tab2: 768px; + +html { + scroll-behavior: smooth; + font-size: 22px; + + @media (max-width: $w-tab) { + font-size: 20px; + } + + @media (max-width: $w-mob) { + font-size: 20px; + } +} + + +header.md-header { + background: #fff; + display: flex; + flex-direction: column; + align-items: stretch; + box-shadow: unset !important; + border-bottom: 3px solid #ebeef5; + + .logo-frame { + @media (max-width: $w-tab) { + flex-grow: 1; + } + + img { + display: inline-block; + height: 3rem; + width: auto; + + @media (max-width: $w-mob) { + height: 2.9rem; + } + + @media (max-width: 360px) { + height: 2.5rem; + } + } + } + + .md-header { + &__inner { + padding: .45rem 1.76rem; + max-width: unset; + display: flex; + align-items: center; + flex-direction: row; + justify-content: space-between; + margin: unset; + + @media (max-width: $w-tab) { + padding: .45rem 1.76rem; + } + + @media (max-width: $w-mob) { + padding: .05rem .3rem; + justify-content: flex-start; + gap: .03rem; + } + } + + &__button { + background: #1969FF; + border-radius: 5.20833rem; + color: #fff !important; + flex-shrink: 0; + z-index: 0; + + @media (max-width: $w-tab) {} + + @media (max-width: $w-mob) { + padding: .5rem; + } + } + } + + .md-tabs { + background: unset; + + .md-grid, + &__list { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + gap: 1.33em; + + --md-accent-fg-color: #000; + } + + &__item { + display: flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + } + + &__link { + color: #000; + text-align: center; + font-family: 'Poppins'; + font-size: 0.7rem; + font-style: normal; + font-weight: 500; + line-height: 144%; + margin-top: unset !important; + } + } + + .md-search { + + &__inner { + display: flex; + flex-direction: column; + align-items: stretch; + justify-content: flex-start; + transition: margin .35s ease; + } + + &__icon { + position: relative; + left: unset; + top: unset; + + display: inline-block; + + padding: .38rem; + background: #1969FF; + border-radius: 5.20833rem; + color: #fff !important; + } + + &__form { + background: #ebecef; + border-radius: 5rem !important; + padding: .31rem .75rem; + box-sizing: content-box; + + display: inline-flex; + align-items: center; + justify-content: flex-start; + flex-direction: row; + + @media (max-width: $w-tab) {} + + @media (max-width: 959px) { + border-radius: 0 !important; + flex-direction: row-reverse; + gap: .7rem; + + .md-search__options { + gap: .15rem; + top: .5rem; + } + + .md-search__icon { + left: unset !important; + } + } + } + + &__output { + padding-top: 1.5rem; + margin-top: -.7rem; + border-bottom-left-radius: 1.5rem; + border-bottom-right-radius: 1.5rem; + background: #ebecef; + } + + &__suggest { + padding-left: 0 !important; + pointer-events: none; + } + + &__options { + display: inline-flex; + flex-direction: row; + align-items: center; + justify-content: flex-start; + gap: .33rem; + right: .2rem; + top: .2rem; + + .md-icon { + + &:hover { + opacity: 1 !important; + } + } + } + + &__input { + padding: 0 !important; + overflow: hidden; + + font-family: 'Poppins'; + font-size: 0.72917rem; + font-style: normal; + font-weight: 400; + line-height: 144%; + color: #000; + + &::placeholder { + color: #949DAA; + } + } + } + + .md-logo { + + @media (max-width: $w-tab) {} + + @media (max-width: $w-mob) { + flex-grow: 1; + } + + img { + height: 4.58333rem; + width: auto; + } + } +} + +footer { + margin-top: 5rem; + + @media (max-width: $w-mob) { + margin-top: 0rem; + } +} + +[data-md-toggle=search]:checked~.md-header { + .md-tabs { + z-index: -1; + } + + .md-search__inner { + margin-left: -23rem; + + @media (max-width: $w-tab) { + margin-left: 0rem; + } + + @media (max-width: $w-mob) { + font-size: 20px; + } + } +} + +body:has(section.docs-hero) { + .md-main { + * { + @media (min-width: 1219px) { + display: none; + } + } + } +} \ No newline at end of file diff --git a/scss/variables/__colors.scss b/scss/variables/__colors.scss index 2b47ca1d8a..6fff27fc78 100644 --- a/scss/variables/__colors.scss +++ b/scss/variables/__colors.scss @@ -1,24 +1,24 @@ -:root { - --color-black: #1b1b34; - --color-white: #ffffff; - - --color-blue-primary: #54c1c2; - --color-blue-primary--dark: #459b9c; - --color-blue-primary--light: rgba(84, 193, 194, 0.1); - --color-blue-primary--hover: #5cd0d1; - - --color-orange-amber: #ffa940; - --color-orange-amber--strict: #d77e15; - - --color-yellow: #e9cf42; - --color-yellow--light: rgba(233, 207, 66, 0.1); - - --color-social--twitter: #00acee; - - // theme overides - --md-primary-fg-color: var(--color-black); - --md-primary-fg-color--light: var(--color-yellow); - --md-primary-fg-color--dark: var(--color-black); - - --md-accent-fg-color: var(--color-blue-primary--dark); -} +:root { + --color-black: #1b1b34; + --color-white: #ffffff; + + --color-blue-primary: #54c1c2; + --color-blue-primary--dark: #459b9c; + --color-blue-primary--light: rgba(84, 193, 194, 0.1); + --color-blue-primary--hover: #5cd0d1; + + --color-orange-amber: #ffa940; + --color-orange-amber--strict: #d77e15; + + --color-yellow: #e9cf42; + --color-yellow--light: rgba(233, 207, 66, 0.1); + + --color-social--twitter: #00acee; + + // theme overides + --md-primary-fg-color: var(--color-black); + --md-primary-fg-color--light: var(--color-yellow); + --md-primary-fg-color--dark: var(--color-black); + + --md-accent-fg-color: var(--color-blue-primary--dark); +} diff --git a/scss/variables/__fonts.scss b/scss/variables/__fonts.scss index 5206b9aac6..34931b3214 100644 --- a/scss/variables/__fonts.scss +++ b/scss/variables/__fonts.scss @@ -1,5 +1,5 @@ -:root { - --fontWeight-bold: 700; - --fontWeight-regular: 400; - --fontWeight-light: 300; -} +:root { + --fontWeight-bold: 700; + --fontWeight-regular: 400; + --fontWeight-light: 300; +} diff --git a/scss/variables/__sizes.scss b/scss/variables/__sizes.scss index 848a4ae509..51237345ae 100644 --- a/scss/variables/__sizes.scss +++ b/scss/variables/__sizes.scss @@ -1,15 +1,15 @@ -:root { - --size-large: 2rem; - --size-medium: 1.5rem; - --size-normal: 1rem; - --size-small: 0.5rem; - --size-xsmall: 0.25rem; - --size-mini: 0.125rem; - - --size-large-px: 32px; - --size-medium-px: 24px; - --size-normal-px: 16px; - --size-small-px: 8px; - --size-xsmall-px: 4px; - --size-mini-px: 2px; -} +:root { + --size-large: 2rem; + --size-medium: 1.5rem; + --size-normal: 1rem; + --size-small: 0.5rem; + --size-xsmall: 0.25rem; + --size-mini: 0.125rem; + + --size-large-px: 32px; + --size-medium-px: 24px; + --size-normal-px: 16px; + --size-small-px: 8px; + --size-xsmall-px: 4px; + --size-mini-px: 2px; +} diff --git a/scss/variables/_index.scss b/scss/variables/_index.scss index e5dd9cf756..abfaf24f5e 100644 --- a/scss/variables/_index.scss +++ b/scss/variables/_index.scss @@ -1,3 +1,3 @@ -@forward "./_colors"; -@forward "./_fonts"; -@forward "./_sizes"; +@forward "./_colors"; +@forward "./_fonts"; +@forward "./_sizes";