@redocly/marketing-pages 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import t from"react";import r,{css as v}from"styled-components";import{breakpoints as i}from"@redocly/theme/core/utils";import{useThemeHooks as E}from"@redocly/theme/core/hooks";import{LaunchIcon as k}from"@redocly/theme/icons/LaunchIcon/LaunchIcon";import{Link as n}from"@redocly/theme/components/Link/Link";import{Image as $}from"@redocly/theme/components/Image/Image";import{ResponsiveImg as a}from"../ImageComponents";import{Box as T}from"../../ui/Box";import{FooterCopyright as I}from"./FooterCopyright";function S({column:o,className:x,subscribeSection:l,copyrightText:u}){const{useTranslate:h,useTelemetry:y}=E(),{translate:m}=h(),b=y(),{items:d=[]}=o,c=d.every(e=>e.label===e.link&&(e.icon||e.srcSet)),p=m(o.labelTranslationKey,o.label),w=o.type==="link"?t.createElement(n,{to:o.link,external:o.external,target:o.target},p):p;return t.createElement(L,{"data-component-name":"Footer/FooterColumn",className:x},t.createElement(z,null,w),l&&t.createElement(C,null,t.createElement(n,{to:"https://github.com/Redocly"},t.createElement(a,{src:require("../../../images/icons/github.svg"),alt:"GitHub icon"})),t.createElement(n,{to:"https://www.linkedin.com/company/redocly"},t.createElement(a,{src:require("../../../images/icons/linkedin.svg"),alt:"LinkedIn icon"})),t.createElement(n,{to:"https://x.com/Redocly"},t.createElement(a,{src:require("../../../images/icons/logo-x.svg"),alt:"X icon"})),t.createElement(n,{to:"https://www.youtube.com/@redocly"},t.createElement(a,{src:require("../../../images/icons/youtube.svg"),alt:"YouTube icon"}))),t.createElement(g,{$iconsOnly:c,$subscribeSection:l},d?.map((e,f)=>e.type==="error"?null:e.type==="separator"?t.createElement(R,{key:e.label+"_"+f},m(e.labelTranslationKey,e.label)):t.createElement(O,{key:f,to:e.link,external:e.external,target:e.target,"data-cy":e.label,$iconsOnly:c,onClick:()=>b.send("footer_item_clicked",{})},e.icon||e.srcSet?t.createElement(s,null,t.createElement($,{src:e.icon,srcSet:e.srcSet})):null,!c&&m(e.labelTranslationKey,e.label),e.external?t.createElement(k,{size:"10px"}):null)),l&&t.createElement(F,null,t.createElement(I,{copyrightText:u||""}))))}const F=r.div`
1
+ import t from"react";import o,{css as v}from"styled-components";import{breakpoints as i}from"@redocly/theme/core/utils";import{useThemeHooks as E}from"@redocly/theme/core/hooks";import{LaunchIcon as k}from"@redocly/theme/icons/LaunchIcon/LaunchIcon";import{Link as n}from"@redocly/theme/components/Link/Link";import{Image as $}from"@redocly/theme/components/Image/Image";import{ResponsiveImg as a}from"../ImageComponents";import{Box as T}from"../../ui/Box";import{FooterCopyright as I}from"./FooterCopyright";function S({column:r,className:x,subscribeSection:l,copyrightText:h}){const{useTranslate:u,useTelemetry:y}=E(),{translate:m}=u(),b=y(),{items:d=[]}=r,c=d.every(e=>e.label===e.link&&(e.icon||e.srcSet)),p=m(r.labelTranslationKey,r.label),w=r.type==="link"?t.createElement(n,{to:r.link,external:r.external,target:r.target},p):p;return t.createElement(L,{"data-component-name":"Footer/FooterColumn",className:x},t.createElement(z,null,w),l&&t.createElement(C,null,t.createElement(n,{to:"https://github.com/Redocly"},t.createElement(a,{src:require("../../../images/icons/github.svg"),alt:"GitHub icon"})),t.createElement(n,{to:"https://www.linkedin.com/company/redocly"},t.createElement(a,{src:require("../../../images/icons/linkedin.svg"),alt:"LinkedIn icon"})),t.createElement(n,{to:"https://x.com/Redocly"},t.createElement(a,{src:require("../../../images/icons/logo-x.svg"),alt:"X icon"})),t.createElement(n,{to:"https://www.youtube.com/@redocly"},t.createElement(a,{src:require("../../../images/icons/youtube.svg"),alt:"YouTube icon"}))),t.createElement(g,{$iconsOnly:c,$subscribeSection:l},d?.map((e,f)=>e.type==="error"?null:e.type==="separator"?t.createElement(R,{key:e.label+"_"+f},m(e.labelTranslationKey,e.label)):t.createElement(O,{key:f,to:e.link,external:e.external,target:e.target,"data-cy":e.label,$iconsOnly:c,onClick:()=>b.send("footer_item_clicked",{})},e.icon||e.srcSet?t.createElement(s,null,t.createElement($,{src:e.icon,srcSet:e.srcSet})):null,!c&&m(e.labelTranslationKey,e.label),e.external?t.createElement(k,{size:"10px"}):null)),l&&t.createElement(F,null,t.createElement(I,{copyrightText:h||""}))))}const F=o.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  font-size: 16px;
@@ -6,7 +6,7 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
6
6
  line-height: 24px;
7
7
  color: var(--typography-text-color);
8
8
  font-family: Inter;
9
- `,z=r.p`
9
+ `,z=o.p`
10
10
  display: inline-block;
11
11
  font-weight: var(--footer-title-font-weight);
12
12
  margin-top: 0;
@@ -21,7 +21,7 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
21
21
  @media screen and (min-width: ${i.small}) {
22
22
  margin-bottom: var(--footer-title-margin-bottom);
23
23
  }
24
- `,C=r(T)`
24
+ `,C=o(T)`
25
25
  display: flex;
26
26
  flex-direction: row;
27
27
  justify-content: space-between;
@@ -35,7 +35,7 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
35
35
  background-color: var(--color-warm-grey-2);
36
36
  border-radius: 6px;
37
37
  }
38
- `,L=r.div`
38
+ `,L=o.div`
39
39
  display: flex;
40
40
  flex-direction: column;
41
41
  text-align: left;
@@ -63,7 +63,7 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
63
63
  margin-bottom: 60px;
64
64
  padding: 0;
65
65
  }
66
- `,s=r.div`
66
+ `,s=o.div`
67
67
  display: inline-flex;
68
68
  width: var(--footer-item-icon-width);
69
69
  height: var(--footer-item-icon-height);
@@ -72,7 +72,7 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
72
72
  border: 1px solid var(--footer-item-icon-border-color);
73
73
  border-radius: var(--footer-item-icon-border-radius);
74
74
  padding: var(--footer-item-icon-padding);
75
- `,O=r(n)`
75
+ `,O=o(n)`
76
76
  color: var(--text-color-secondary);
77
77
  text-decoration: none;
78
78
  font-family: Inter;
@@ -86,15 +86,15 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
86
86
  }
87
87
 
88
88
  &:last-child ${s} {
89
- margin-right: ${({$iconsOnly:o})=>o?"0":"var(--footer-item-icon-margin-right)"};
89
+ margin-right: ${({$iconsOnly:r})=>r?"0":"var(--footer-item-icon-margin-right)"};
90
90
  }
91
- `,g=r.div`
91
+ `,g=o.div`
92
92
  display: flex;
93
93
  flex-wrap: wrap;
94
94
  justify-content: center;
95
- flex-direction: ${o=>o.$iconsOnly?"row":"column"};
95
+ flex-direction: ${r=>r.$iconsOnly?"row":"column"};
96
96
 
97
- ${({$subscribeSection:o})=>o&&v`
97
+ ${({$subscribeSection:r})=>r&&v`
98
98
  @media screen and (max-width: ${i.medium}) {
99
99
  flex-direction: row;
100
100
  gap: 24px;
@@ -105,7 +105,7 @@ import t from"react";import r,{css as v}from"styled-components";import{breakpoin
105
105
  @media screen and (min-width: ${i.small}) {
106
106
  justify-content: flex-start;
107
107
  }
108
- `,R=r.div`
108
+ `,R=o.div`
109
109
  opacity: 0.75;
110
110
  margin: 10px 0 5px 0;
111
111
  font-size: 0.75em;
@@ -1,4 +1,4 @@
1
- import n from"react";import r from"styled-components";import{FooterColumn as c}from"./FooterColumn";import{breakpoints as e}from"@redocly/theme/core/utils";function d({columns:t,className:l,copyrightText:s}){return t?.length?n.createElement(i,{"data-component-name":"Footer/FooterColumns",className:l},n.createElement(m,null,t.map((o,a)=>n.createElement(c,{key:`${o.label}_${a}`,column:o,subscribeSection:t.length-1===a,copyrightText:s})))):null}const i=r.div`
1
+ import n from"react";import r from"styled-components";import{FooterColumn as c}from"./FooterColumn";import{breakpoints as e}from"@redocly/theme/core/utils";function d({columns:t,className:l,copyrightText:s}){return t?.length?n.createElement(o,{"data-component-name":"Footer/FooterColumns",className:l},n.createElement(a,null,t.map((i,m)=>n.createElement(c,{key:`${i.label}_${m}`,column:i,subscribeSection:t.length-1===m,copyrightText:s})))):null}const o=r.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  justify-content: center;
@@ -12,7 +12,7 @@ import n from"react";import r from"styled-components";import{FooterColumn as c}f
12
12
  @media screen and (min-width: ${e.small}) {
13
13
  margin: 0 auto;
14
14
  }
15
- `,m=r.div`
15
+ `,a=r.div`
16
16
  display: grid;
17
17
  grid-template-columns: repeat(2, 1fr);
18
18
  justify-content: center;
@@ -31,4 +31,4 @@ import n from"react";import r from"styled-components";import{FooterColumn as c}f
31
31
  @media screen and (min-width: ${e.large}) {
32
32
  padding: 0 100px;
33
33
  }
34
- `;export{d as FooterColumns,i as FooterColumnsContainer,m as FooterRow};
34
+ `;export{d as FooterColumns,o as FooterColumnsContainer,a as FooterRow};
@@ -1,4 +1,4 @@
1
- import t from"react";import o from"styled-components";import{useThemeHooks as i}from"@redocly/theme/core/hooks";import{breakpoints as m}from"@redocly/theme/core/utils";function s({copyrightText:e="",className:r}){const{useTranslate:n}=i(),{translate:a}=n();return e?t.createElement(l,{className:r,"data-component-name":"Footer/FooterCopyright","data-translation-key":"theme.footer.copyrightText"},t.createElement(c,null,a("theme.footer.copyrightText",e))):null}const l=o.section`
1
+ import e from"react";import o from"styled-components";import{useThemeHooks as i}from"@redocly/theme/core/hooks";import{breakpoints as m}from"@redocly/theme/core/utils";function s({copyrightText:t="",className:r}){const{useTranslate:n}=i(),{translate:a}=n();return t?e.createElement(l,{className:r,"data-component-name":"Footer/FooterCopyright","data-translation-key":"theme.footer.copyrightText"},e.createElement(c,null,a("theme.footer.copyrightText",t))):null}const l=o.section`
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  align-items: center;
@@ -1,4 +1,4 @@
1
- import t,{useRef as E}from"react";import n,{css as z}from"styled-components";import{useNestedMenu as W,useThemeHooks as _}from"@redocly/theme/core/hooks";import{LaunchIcon as $}from"@redocly/theme/icons/LaunchIcon/LaunchIcon";import{Link as F}from"@redocly/theme/components/Link/Link";import{ChevronDownIcon as s}from"@redocly/theme/icons/ChevronDownIcon/ChevronDownIcon";import{ChevronRightIcon as u}from"@redocly/theme/icons/ChevronRightIcon/ChevronRightIcon";import{HttpTag as G}from"@redocly/theme/components/Tags/HttpTag";import{MenuItemType as d}from"@redocly/theme/core/constants";import{getMenuItemType as O}from"@redocly/theme/core/utils";import{ArrowRightIcon as U}from"@redocly/theme/icons/ArrowRightIcon/ArrowRightIcon";import{Badge as q}from"@redocly/theme/components/Badge/Badge";import{ButtonWithArrow as J}from"../Button/ButtonWithArrow";function Q(r){const{item:e,depth:a,className:l,onClick:v}=r,{useTranslate:L,useTelemetry:N}=_(),{translate:m}=L(),i=O(e),f=E(null),p=E(null),{isExpanded:g,canUnmount:K,style:H,handleExpand:P}=W({...r,type:i,labelRef:p,nestedMenuRef:f}),S=N(),x=i===d.DrillDown,h=i===d.Group,c=h&&!x,V=i===d.Operation,y=e.label==="Reunite"&&e.link==="/reunite",k=()=>{S.send?.("sidebar_item_clicked",{label:e.label,type:e.type}),v?.(),h&&P()},j=c?g?t.createElement(s,{size:"var(--menu-item-label-chevron-size)",color:"--tree-content-color-default"}):t.createElement(u,{size:"var(--menu-item-label-chevron-size)",color:"--tree-content-color-default"}):null,A=e.deprecated?"http-deprecated":e.httpVerb,B=y&&t.createElement(I,{active:e.active,deprecated:e.deprecated,depth:a,withChevron:c,onClick:k,ref:p,role:e.link?"none":"link",style:{flexDirection:"column"}},e.sublabel?t.createElement(C,{style:{margin:"0",color:"var(--text-color-primary)",fontFamily:"Inter",fontSize:"14px",fontWeight:"400",lineHeight:"22px"}},m(e.subLabelTranslationKey,e.sublabel)):null,t.createElement(ee,null,t.createElement("div",{style:{flexDirection:"row",gap:"8px",display:"flex",alignItems:"center"}},e.icon?t.createElement(M,{src:e.icon}):null,t.createElement(R,null,t.createElement("span",null,m(e.labelTranslationKey,e.label)),e.badges?.map(({name:o,color:b})=>t.createElement(D,{color:b,key:o},o)),e.external?t.createElement($,{size:"var(--menu-item-external-icon-size)"}):null)),t.createElement(J,{mode:"light",link:e.link,buttonText:""}))),w=e.label&&!y&&t.createElement(I,{active:e.active,deprecated:e.deprecated,depth:a,withChevron:c,onClick:k,ref:p,role:e.link?"none":"link"},c&&j,e.icon?t.createElement(M,{src:e.icon}):null,t.createElement(T,null,t.createElement(R,null,t.createElement("span",null,m(e.labelTranslationKey,e.label)),e.badges?.map(({name:o,color:b})=>t.createElement(D,{color:b,key:o},o)),e.external?t.createElement($,{size:"var(--menu-item-external-icon-size)"}):null),e.sublabel?t.createElement(C,null,m(e.subLabelTranslationKey,e.sublabel)):null),x?t.createElement(U,{size:"16px"}):null,V?t.createElement(G,{color:A||""},e.httpVerb==="hook"?"event":e.httpVerb):null);return t.createElement(Y,{"data-component-name":"Menu/MenuItem",className:X({type:i,item:e,className:l})},e.link?t.createElement(te,{to:e.link,external:e.external,target:e.target,languageInsensitive:e.languageInsensitive},w,B):w,h?t.createElement(Z,{depth:a,ref:f,style:H},g||!K?r.children:null):null,e.separatorLine?t.createElement(re,{depth:a,linePosition:e.linePosition}):null)}function X({type:r,item:e,className:a}){const l=[a,`menu-item-type-${r}`];return r===d.Separator&&l.push(`menu-item-type-${r}-${e.variant||"primary"}`),e.menuStyle==="drilldown-header"&&(l.push("menu-item-type-drilldown-header"),e.link&&l.push("menu-item-type-drilldown-header-link")),l.filter(v=>v).join(" ").trim()}const Y=n.div`
1
+ import t,{useRef as E}from"react";import r,{css as z}from"styled-components";import{useNestedMenu as W,useThemeHooks as _}from"@redocly/theme/core/hooks";import{LaunchIcon as $}from"@redocly/theme/icons/LaunchIcon/LaunchIcon";import{Link as F}from"@redocly/theme/components/Link/Link";import{ChevronDownIcon as s}from"@redocly/theme/icons/ChevronDownIcon/ChevronDownIcon";import{ChevronRightIcon as u}from"@redocly/theme/icons/ChevronRightIcon/ChevronRightIcon";import{HttpTag as G}from"@redocly/theme/components/Tags/HttpTag";import{MenuItemType as d}from"@redocly/theme/core/constants";import{getMenuItemType as O}from"@redocly/theme/core/utils";import{ArrowRightIcon as U}from"@redocly/theme/icons/ArrowRightIcon/ArrowRightIcon";import{Badge as q}from"@redocly/theme/components/Badge/Badge";import{ButtonWithArrow as J}from"../Button/ButtonWithArrow";function Q(n){const{item:e,depth:a,className:l,onClick:v}=n,{useTranslate:L,useTelemetry:N}=_(),{translate:m}=L(),i=O(e),b=E(null),p=E(null),{isExpanded:g,canUnmount:K,style:H,handleExpand:P}=W({...n,type:i,labelRef:p,nestedMenuRef:b}),S=N(),x=i===d.DrillDown,h=i===d.Group,c=h&&!x,V=i===d.Operation,y=e.label==="Reunite"&&e.link==="/reunite",k=()=>{S.send?.("sidebar_item_clicked",{label:e.label,type:e.type}),v?.(),h&&P()},j=c?g?t.createElement(s,{size:"var(--menu-item-label-chevron-size)",color:"--tree-content-color-default"}):t.createElement(u,{size:"var(--menu-item-label-chevron-size)",color:"--tree-content-color-default"}):null,A=e.deprecated?"http-deprecated":e.httpVerb,B=y&&t.createElement(I,{active:e.active,deprecated:e.deprecated,depth:a,withChevron:c,onClick:k,ref:p,role:e.link?"none":"link",style:{flexDirection:"column"}},e.sublabel?t.createElement(C,{style:{margin:"0",color:"var(--text-color-primary)",fontFamily:"Inter",fontSize:"14px",fontWeight:"400",lineHeight:"22px"}},m(e.subLabelTranslationKey,e.sublabel)):null,t.createElement(ee,null,t.createElement("div",{style:{flexDirection:"row",gap:"8px",display:"flex",alignItems:"center"}},e.icon?t.createElement(M,{src:e.icon}):null,t.createElement(R,null,t.createElement("span",null,m(e.labelTranslationKey,e.label)),e.badges?.map(({name:o,color:f})=>t.createElement(D,{color:f,key:o},o)),e.external?t.createElement($,{size:"var(--menu-item-external-icon-size)"}):null)),t.createElement(J,{mode:"light",link:e.link,buttonText:""}))),w=e.label&&!y&&t.createElement(I,{active:e.active,deprecated:e.deprecated,depth:a,withChevron:c,onClick:k,ref:p,role:e.link?"none":"link"},c&&j,e.icon?t.createElement(M,{src:e.icon}):null,t.createElement(T,null,t.createElement(R,null,t.createElement("span",null,m(e.labelTranslationKey,e.label)),e.badges?.map(({name:o,color:f})=>t.createElement(D,{color:f,key:o},o)),e.external?t.createElement($,{size:"var(--menu-item-external-icon-size)"}):null),e.sublabel?t.createElement(C,null,m(e.subLabelTranslationKey,e.sublabel)):null),x?t.createElement(U,{size:"16px"}):null,V?t.createElement(G,{color:A||""},e.httpVerb==="hook"?"event":e.httpVerb):null);return t.createElement(Y,{"data-component-name":"Menu/MenuItem",className:X({type:i,item:e,className:l})},e.link?t.createElement(te,{to:e.link,external:e.external,target:e.target,languageInsensitive:e.languageInsensitive},w,B):w,h?t.createElement(Z,{depth:a,ref:b,style:H},g||!K?n.children:null):null,e.separatorLine?t.createElement(ne,{depth:a,linePosition:e.linePosition}):null)}function X({type:n,item:e,className:a}){const l=[a,`menu-item-type-${n}`];return n===d.Separator&&l.push(`menu-item-type-${n}-${e.variant||"primary"}`),e.menuStyle==="drilldown-header"&&(l.push("menu-item-type-drilldown-header"),e.link&&l.push("menu-item-type-drilldown-header-link")),l.filter(v=>v).join(" ").trim()}const Y=r.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  background-color: var(--menu-item-bg-color);
@@ -21,7 +21,7 @@ import t,{useRef as E}from"react";import n,{css as z}from"styled-components";imp
21
21
  text-decoration: none;
22
22
  color: var(--menu-item-text-color);
23
23
  }
24
- `,Z=n.div`
24
+ `,Z=r.div`
25
25
  overflow: hidden;
26
26
  order: 1;
27
27
  position: relative;
@@ -36,15 +36,15 @@ import t,{useRef as E}from"react";import n,{css as z}from"styled-components";imp
36
36
  bottom: var(--spacing-unit);
37
37
  top: 0;
38
38
  z-index: var(--z-index-surface);
39
- left: ${({depth:r})=>`calc(
39
+ left: ${({depth:n})=>`calc(
40
40
  var(--menu-item-label-margin-horizontal) +
41
41
  var(--menu-item-padding-horizontal) +
42
42
  (var(--menu-item-label-chevron-size) / 2 - 1px) +
43
- var(--menu-item-nested-offset) * ${r})
43
+ var(--menu-item-nested-offset) * ${n})
44
44
  `};
45
45
  border: 0.5px solid var(--border-color-primary);
46
46
  }
47
- `,I=n.li`
47
+ `,I=r.li`
48
48
  display: flex;
49
49
  position: relative;
50
50
  cursor: pointer;
@@ -57,13 +57,13 @@ import t,{useRef as E}from"react";import n,{css as z}from"styled-components";imp
57
57
  padding: var(--menu-item-label-padding);
58
58
  gap: var(--menu-item-label-gap);
59
59
 
60
- padding-left: ${({withChevron:r,depth:e})=>`calc(
60
+ padding-left: ${({withChevron:n,depth:e})=>`calc(
61
61
  var(--menu-item-padding-horizontal) +
62
- ${r?"0px":"var(--menu-item-label-chevron-offset)"} +
62
+ ${n?"0px":"var(--menu-item-label-chevron-offset)"} +
63
63
  ${e?"var(--menu-item-nested-offset) * "+e:"0px"}
64
64
  )`};
65
65
 
66
- ${({active:r,deprecated:e})=>r&&z`
66
+ ${({active:n,deprecated:e})=>n&&z`
67
67
  color: ${e?"var(--menu-content-color-disabled)":"var(--menu-item-color-active)"};
68
68
  background-color: var(--menu-item-bg-color-active);
69
69
 
@@ -79,7 +79,7 @@ import t,{useRef as E}from"react";import n,{css as z}from"styled-components";imp
79
79
  }
80
80
  `};
81
81
 
82
- ${({deprecated:r})=>r&&z`
82
+ ${({deprecated:n})=>n&&z`
83
83
  color: var(--menu-content-color-disabled);
84
84
 
85
85
  &:hover {
@@ -114,11 +114,11 @@ import t,{useRef as E}from"react";import n,{css as z}from"styled-components";imp
114
114
  &:empty {
115
115
  padding: 0;
116
116
  }
117
- `,T=n.div`
117
+ `,T=r.div`
118
118
  display: flex;
119
119
  flex-direction: column;
120
120
  flex-grow: 1;
121
- `,ee=n(T)`
121
+ `,ee=r(T)`
122
122
  flex-direction: row;
123
123
  justify-content: space-between;
124
124
  width: 100%;
@@ -127,39 +127,39 @@ import t,{useRef as E}from"react";import n,{css as z}from"styled-components";imp
127
127
  section {
128
128
  background-color: var(--bg-color);
129
129
  }
130
- `,C=n.div`
130
+ `,C=r.div`
131
131
  margin: var(--menu-item-sublabel-margin);
132
132
  color: var(--menu-item-sublabel-text-color);
133
133
  font-weight: var(--menu-item-sublabel-font-weight);
134
134
  font-size: var(--menu-item-sublabel-font-size);
135
135
  font-family: var(--menu-item-sublabel-font-family);
136
- `,M=n.img`
136
+ `,M=r.img`
137
137
  width: var(--menu-item-icon-size);
138
138
  height: var(--menu-item-icon-size);
139
139
  margin: var(--menu-item-icon-margin);
140
140
  border-radius: var(--menu-item-icon-border-radius);
141
141
  flex-shrink: 0;
142
142
  overflow: hidden;
143
- `,te=n(F)`
143
+ `,te=r(F)`
144
144
  order: 1;
145
- `,re=n.div`
145
+ `,ne=r.div`
146
146
  height: var(--menu-item-separator-line-height);
147
147
  background-color: var(--menu-item-separator-line-bg-color);
148
- margin: ${({depth:r})=>`
148
+ margin: ${({depth:n})=>`
149
149
  var(--menu-item-padding-vertical)
150
150
  var(--sidebar-margin-horizontal)
151
151
  var(--menu-item-padding-vertical)
152
152
  calc(var(--sidebar-margin-horizontal) +
153
- ${r?"var(--menu-item-nested-offset) * "+r:"0px"})
153
+ ${n?"var(--menu-item-nested-offset) * "+n:"0px"})
154
154
  `};
155
- order: ${({linePosition:r})=>r==="top"?0:1};
156
- `,R=n.span`
155
+ order: ${({linePosition:n})=>n==="top"?0:1};
156
+ `,R=r.span`
157
157
  & > * {
158
158
  margin-right: var(--spacing-xxs);
159
159
  }
160
- `,D=n(q)`
160
+ `,D=r(q)`
161
161
  margin-left: 0;
162
- background-color: ${({color:r})=>r||"var(--color-info-base)"};
162
+ background-color: ${({color:n})=>n||"var(--color-info-base)"};
163
163
  font-size: var(--font-size-sm);
164
164
  line-height: var(--line-height-sm);
165
165
  padding: 0 var(--spacing-xxs);
@@ -1,4 +1,4 @@
1
- import e from"react";import t,{css as O}from"styled-components";import{useLocation as q}from"react-router-dom";import{getPathnameForLocale as k,withPathPrefix as E}from"@redocly/theme/core/utils";import{useThemeHooks as M}from"@redocly/theme/core/hooks";import{LaunchIcon as A}from"@redocly/theme/icons/LaunchIcon/LaunchIcon";import{Link as v}from"@redocly/theme/components/Link/Link";import{Dropdown as K}from"@redocly/theme/components/Dropdown/Dropdown";function Z({navItem:a,className:c}){const{pathname:h}=q(),{useTranslate:P,useI18nConfig:_,useTelemetry:j}=M(),{translate:u}=P(),{defaultLocale:x,currentLocale:f,locales:b}=_(),w=j(),[R,T]=e.useState(!1);if(e.useEffect(()=>{T(window.ontouchstart!==void 0)},[]),a.link){const i=a,n=h===E(k(i.link,x,f,b));return e.createElement(I,{active:n,"data-component-name":"Navbar/NavbarItem",className:c,onClick:()=>w.send("navbar_menu_item_clicked",{type:"link"})},e.createElement(ie,{to:i.link,external:i.external,target:i.target,active:n},i.icon?e.createElement(N,{url:i.icon}):null,e.createElement(C,null,u(i.labelTranslationKey,i.label)),i.external?e.createElement(A,{size:"10px"}):null))}else if(a.items){const i=a,n=i.items,B=n.flatMap(r=>r.link?h===E(k(r?.link,x,f,b)):!1).includes(!0),y=["Collaborative editor suite","Combo of Redoc, Revel, and Reef","External developer showcase","API reference and mock server","Internal service catalog","API monitoring"],D=n.reduce((r,o,l)=>(o.type.startsWith("separator")?r.push({[o.label]:[]}):o.label==="Reunite"?r[r.length-1][Object.keys(r[r.length-1])[0]].push(e.createElement(G,{key:`${o.label}`,to:o.link},e.createElement(J,null,"Build your docs with"),e.createElement(Q,null,e.createElement(U,null,e.createElement(L,{src:o.icon}),e.createElement("p",null,o.label)),e.createElement("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"inherit",xmlns:"http://www.w3.org/2000/svg"},e.createElement("rect",{width:"28",height:"28",rx:"14",fill:"inherit"}),e.createElement("path",{d:"M14.875 9.625L14.2494 10.2344L17.5656 13.5625H8.75V14.4375H17.5656L14.2494 17.7507L14.875 18.375L19.25 14L14.875 9.625Z",fill:"inherit"}))))):r[r.length-1][Object.keys(r[r.length-1])[0]].push(e.createElement(ae,{key:`${o.label}`,to:o.link},o.icon&&e.createElement(L,{src:o.icon}),e.createElement(X,null,o.label,y[l-1]&&e.createElement("span",null,y[l-1])))),r),[]),d=[],p=[];let m={};return D.map(r=>{Object.entries(r).map(([o,l])=>{o==="Products"?l.map((s,H)=>{H===0?m=s:d.push(s)}):l.map(s=>{p.push(s)})})}),e.createElement(oe,{trigger:e.createElement(I,{active:B,"data-component-name":"Navbar/NavbarItem",className:c,onClick:()=>w.send("navbar_menu_item_clicked",{type:"group"})},e.createElement(N,{url:i.icon}),e.createElement(C,null,u(i.labelTranslationKey,i.label)),e.createElement(z,{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("rect",{width:"16",height:"16",fill:"none",style:{mixBlendMode:"multiply"}}),e.createElement("path",{d:"M8 10.9998L3 5.9998L3.7 5.2998L8 9.5998L12.3 5.2998L13 5.9998L8 10.9998Z",fill:"#1C1C1C"}))),triggerEvent:R?"click":"hover"},e.createElement(Y,null,e.createElement(re,null,e.createElement(W,null,m&&e.createElement(ee,{style:{display:"flex"}},m),e.createElement($,null,d&&e.createElement(te,null,d.map((r,o)=>e.createElement(g,{key:o,product:`${r.key.toLowerCase()}`,isLast:o===d.length-1},r))),p&&e.createElement(V,null,e.createElement(S,null,e.createElement("img",{src:require("./images/open-source-icon.svg")}),"Open source tools:"),e.createElement(F,null,p.map((r,o)=>e.createElement("span",{key:o},r)))))))))}else return null}const F=t.div`
1
+ import e from"react";import t,{css as O}from"styled-components";import{useLocation as q}from"react-router-dom";import{getPathnameForLocale as k,withPathPrefix as E}from"@redocly/theme/core/utils";import{useThemeHooks as H}from"@redocly/theme/core/hooks";import{LaunchIcon as A}from"@redocly/theme/icons/LaunchIcon/LaunchIcon";import{Link as v}from"@redocly/theme/components/Link/Link";import{Dropdown as K}from"@redocly/theme/components/Dropdown/Dropdown";function Z({navItem:a,className:c}){const{pathname:h}=q(),{useTranslate:P,useI18nConfig:_,useTelemetry:j}=H(),{translate:u}=P(),{defaultLocale:x,currentLocale:f,locales:b}=_(),w=j(),[R,T]=e.useState(!1);if(e.useEffect(()=>{T(window.ontouchstart!==void 0)},[]),a.link){const i=a,n=h===E(k(i.link,x,f,b));return e.createElement(I,{active:n,"data-component-name":"Navbar/NavbarItem",className:c,onClick:()=>w.send("navbar_menu_item_clicked",{type:"link"})},e.createElement(ie,{to:i.link,external:i.external,target:i.target,active:n},i.icon?e.createElement(N,{url:i.icon}):null,e.createElement(C,null,u(i.labelTranslationKey,i.label)),i.external?e.createElement(A,{size:"10px"}):null))}else if(a.items){const i=a,n=i.items,B=n.flatMap(r=>r.link?h===E(k(r?.link,x,f,b)):!1).includes(!0),y=["Collaborative editor suite","Combo of Redoc, Revel, and Reef","External developer showcase","API reference and mock server","Internal service catalog","API monitoring"],D=n.reduce((r,o,l)=>(o.type.startsWith("separator")?r.push({[o.label]:[]}):o.label==="Reunite"?r[r.length-1][Object.keys(r[r.length-1])[0]].push(e.createElement(G,{key:`${o.label}`,to:o.link},e.createElement(J,null,"Build your docs with"),e.createElement(Q,null,e.createElement(U,null,e.createElement(L,{src:o.icon}),e.createElement("p",null,o.label)),e.createElement("svg",{width:"28",height:"28",viewBox:"0 0 28 28",fill:"inherit",xmlns:"http://www.w3.org/2000/svg"},e.createElement("rect",{width:"28",height:"28",rx:"14",fill:"inherit"}),e.createElement("path",{d:"M14.875 9.625L14.2494 10.2344L17.5656 13.5625H8.75V14.4375H17.5656L14.2494 17.7507L14.875 18.375L19.25 14L14.875 9.625Z",fill:"inherit"}))))):r[r.length-1][Object.keys(r[r.length-1])[0]].push(e.createElement(ae,{key:`${o.label}`,to:o.link},o.icon&&e.createElement(L,{src:o.icon}),e.createElement(X,null,o.label,y[l-1]&&e.createElement("span",null,y[l-1])))),r),[]),d=[],p=[];let m={};return D.map(r=>{Object.entries(r).map(([o,l])=>{o==="Products"?l.map((s,M)=>{M===0?m=s:d.push(s)}):l.map(s=>{p.push(s)})})}),e.createElement(oe,{trigger:e.createElement(I,{active:B,"data-component-name":"Navbar/NavbarItem",className:c,onClick:()=>w.send("navbar_menu_item_clicked",{type:"group"})},e.createElement(N,{url:i.icon}),e.createElement(C,null,u(i.labelTranslationKey,i.label)),e.createElement(z,{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("rect",{width:"16",height:"16",fill:"none",style:{mixBlendMode:"multiply"}}),e.createElement("path",{d:"M8 10.9998L3 5.9998L3.7 5.2998L8 9.5998L12.3 5.2998L13 5.9998L8 10.9998Z",fill:"#1C1C1C"}))),triggerEvent:R?"click":"hover"},e.createElement(Y,null,e.createElement(re,null,e.createElement(W,null,m&&e.createElement(ee,{style:{display:"flex"}},m),e.createElement($,null,d&&e.createElement(te,null,d.map((r,o)=>e.createElement(g,{key:o,product:`${r.key.toLowerCase()}`,isLast:o===d.length-1},r))),p&&e.createElement(V,null,e.createElement(S,null,e.createElement("img",{src:require("./images/open-source-icon.svg")}),"Open source tools:"),e.createElement(F,null,p.map((r,o)=>e.createElement("span",{key:o},r)))))))))}else return null}const F=t.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: 16px;
@@ -1,4 +1,4 @@
1
- import a from"react";import i from"styled-components";import{NavbarItem as p}from"@redocly/theme/components/Navbar/NavbarItem";import{breakpoints as u}from"@redocly/theme/core/utils";function v({menuItems:l,className:m}){return a.useEffect(()=>{const t=document.querySelectorAll('[data-component-name="Navbar/NavbarItem"]'),e=document.getElementById("navigation-menu"),n=document.getElementById("nav-items-block");t.forEach(o=>{o.addEventListener("mouseover",()=>{if(n!==null&&e!==null){const r=o.getBoundingClientRect(),s=n?.getBoundingClientRect(),d=r.width,c=r.left-s.left;e.style.width=`${d}px`,e.style.transform=`translateX(${c}px)`,e.style.opacity="1"}})}),n?.addEventListener("mouseleave",()=>{e!==null&&(e.style.opacity="0")})},[]),a.createElement(y,{"data-component-name":"Navbar/NavbarMenu",className:m},a.createElement(b,{id:"nav-items-block"},a.createElement(f,{id:"navigation-menu"}),l.map((t,e)=>a.createElement(p,{key:`${t.label}_${e}`,"data-cy":t.label,navItem:t}))))}const f=i.div`
1
+ import a from"react";import i from"styled-components";import{NavbarItem as p}from"@redocly/theme/components/Navbar/NavbarItem";import{breakpoints as u}from"@redocly/theme/core/utils";function v({menuItems:l,className:m}){return a.useEffect(()=>{const t=document.querySelectorAll('[data-component-name="Navbar/NavbarItem"]'),e=document.getElementById("navigation-menu"),n=document.getElementById("nav-items-block");t.forEach(r=>{r.addEventListener("mouseover",()=>{if(n!==null&&e!==null){const o=r.getBoundingClientRect(),s=n?.getBoundingClientRect(),d=o.width,c=o.left-s.left;e.style.width=`${d}px`,e.style.transform=`translateX(${c}px)`,e.style.opacity="1"}})}),n?.addEventListener("mouseleave",()=>{e!==null&&(e.style.opacity="0")})},[]),a.createElement(y,{"data-component-name":"Navbar/NavbarMenu",className:m},a.createElement(b,{id:"nav-items-block"},a.createElement(f,{id:"navigation-menu"}),l.map((t,e)=>a.createElement(p,{key:`${t.label}_${e}`,"data-cy":t.label,navItem:t}))))}const f=i.div`
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 40px;
@@ -1,4 +1,4 @@
1
- import e from"react";import{linearGradient as c}from"polished";import a from"styled-components";import{breakpoints as n}from"@redocly/theme/core/utils";import{Box as t}from"../../ui/Box";import{DualView as E}from"../../components/DualView/DualView";import{Button as b}from"../../components/Button/CustomButton";import{CallToAction as R}from"../../components/CallToAction/CallToAction";import{Circle as s,CircleWrapper as y}from"../../components/Circle/Circle";import{Grid as u,MediaBox as o,Skewed as d}from"../../components/PositionItems";import{ResponsiveImg as g}from"../../components/ImageComponents";import{Tooltip as I}from"../../components/CustomTooltip/Tooltip";import{QuoteTip as m}from"../../components/QuoteTip/QuoteTip";import{VerticalLine as x}from"../../components/VerticalLine/VerticalLine";import{RecentPosts as k}from"../../components/Blog/RecentPosts";import{CareerCard as C}from"./components/CareerCard";import{Avatar as v,FoundersQuoteWrapper as D}from"../../components/FoundersQuoteWrapper";import{RedockerCard as T}from"./components/RedockerCard";import{TripleComponent as z}from"./components/TripleComponent";import{WorldMap as O}from"./components/WorldMap";import{RedocWidget as P}from"./components/RedocWidget";import w from"../../images/redockers/adam-headshot.png";import A from"../../images/redockers/roman-headshot.png";import W from"../../images/redockers/pat-headshot.png";import{H1Title as _,H2Title as p,H4Title as l,Paragraph as i}from"../../components/TypographyElements";function ge(){return e.createElement(e.Fragment,null,e.createElement(d,{angle:0,bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),offsetBottom:"10px"},e.createElement(o,null,e.createElement(t,{maxWidth:"900px",mt:{_:"50px",small:"100px"},mb:"40px",mx:"auto"},e.createElement(j,null,"Redocly bridges the divide between documentation and innovation")))),e.createElement(O,null,e.createElement(o,null,e.createElement(t,{maxWidth:"500px"},e.createElement(p,{color:"var(--secondary-color)"},"The almighty API Economy is leaving more and more companies behind. We are here to change that.")))),e.createElement(d,{angle:0,bg:"#F0F5FF",offsetTop:"calc(-40px - 10vw)"},e.createElement(o,{width:"730px"},e.createElement(m,{to:"bottom",style:{boxShadow:"0 3px 16px 0px rgb(0 68 212 / 20%)"},padding:{_:"20px",small:"40px 60px"}},e.createElement(i,{color:"var(--color-text-dimmed)",mt:{base:0},mb:{base:0}},"API docs have become a make-or-break asset in today\u2019s connected economy. Redocly helps companies make the most of their APIs by keeping documentation sleek, up to date, and ready for internal and external users. With minimal hand-holding and maximum ROI."))),e.createElement(o,null,e.createElement(t,{maxWidth:"1000px",mt:"100px",mb:{_:"60px",small:"130px"},mx:"auto"},e.createElement(p,{textAlign:{base:"center"},mt:{base:"50px"},mb:{base:"50px"},color:"var(--color-text-dark)"},"Our North-Star design principles"),e.createElement(q,null,e.createElement(f,null,e.createElement(g,{src:require("./images/icons/developers-first.svg"),alt:"developer first"}),e.createElement(l,null,"Developers first"),e.createElement(t,{maxWidth:{_:"200px",small:"initial"},m:"auto"},e.createElement(h,null,"Docs-like-code fully integrated with your delivery pipeline."))),e.createElement(f,null,e.createElement(g,{src:require("./images/icons/everyone-all-in.svg"),alt:"all in"}),e.createElement(l,null,"Everyone all-in"),e.createElement(h,null,"Removing friction between API creators, documentarians and users.")),e.createElement(f,null,e.createElement(g,{src:require("./images/icons/on-board.svg"),alt:"brand"}),e.createElement(l,null,"On brand, on your terms"),e.createElement(t,{maxWidth:{_:"250px",small:"initial"},m:"auto"},e.createElement(h,null,"Full customization power for every part of your API consumer\u2019s journey."))))))),e.createElement(t,{pt:"32px",bg:"#F8FAFF",textAlign:"center"},e.createElement(y,{zIndex:1},e.createElement(s,{size:"600px",top:"-300px",left:"-250px"}),e.createElement(s,{size:"800px",top:"-400px",left:"-400px"})),e.createElement(o,{mt:{_:"10px",small:"60px"}},e.createElement(p,{color:"var(--color-text-dark)",textAlign:{base:"center"}},"The Origin Story"),e.createElement(D,null,e.createElement(I,{id:"global"},"Our co-founders",e.createElement("br",null),"Roman & Adam"),e.createElement(t,{className:"avatars","data-tip":!0,"data-for":"global"},e.createElement(v,{src:A}),e.createElement(v,{src:w})),e.createElement(m,{to:"left",style:{boxShadow:"rgb(0 68 212 / 20%) 0px 0px 15px -5px"},padding:{_:"12px 12px",small:"16px 32px"}},e.createElement(i,{mt:{base:0},mb:{base:0},color:"#0044D4"},e.createElement($,null,"\u201CIf you want something done right, DIY\u201D")))),e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),style:{width:"min-content",color:"white",margin:"0 auto 40px"},padding:"12px 32px"},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2015")),e.createElement(E,{imageSrc:require("./images/story-2015-a.png"),reversed:!0},e.createElement(t,{maxWidth:"420px",ml:"auto",mr:{_:"auto",medium:"40px"}},e.createElement(i,{textAlign:{base:"left"},color:"var(--color-text-dimmed)"},"Rebilly, a Texas-bred payments fintech, adopts OpenAPI but is severely disappointed in Swagger\u2019s UI and performance. So they build their own documentation tool from scratch.")),e.createElement(x,null)),e.createElement("div",{style:{background:"#f8faff"}},e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),padding:"12px 32px",style:{width:"min-content",color:"white",margin:"0 auto 40px"}},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2016")),e.createElement(t,{position:"relative",mb:"40px"},e.createElement(x,null),e.createElement(H,null,e.createElement(P,null),e.createElement(t,{maxWidth:"415px",mr:"auto",ml:{_:"auto",medium:"40px"}},e.createElement(i,{textAlign:{base:"left"},color:"var(--color-text-dimmed)"},"Redoc (",e.createElement("strong",null,"Re"),"billy ",e.createElement("strong",null,"Doc"),"umentation) sees the light and developers jump onboard en masse. 17,000+ GitHub stars and 10,000s of corporate users later, it\u2019s the favorite open-source API documentation tool out there.")))),e.createElement(d,{angle:0,bg:"#F8FAFF"},e.createElement(o,null,e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),width:"min-content",color:"var(--color-text-light)",margin:"0 auto 40px",padding:"12px 32px"},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2018")),e.createElement(E,{imageSrc:require("./images/story-2018.png"),reversed:!0},e.createElement(t,{maxWidth:"415px",ml:"auto",mr:{_:"auto",medium:"40px"}},e.createElement(i,{textAlign:{base:"left"},color:"var(--color-text-dimmed)"},"Following user demand and interest by leading investors, Redocly is launched as a premium SaaS: faster, feature-packed and catering to the enterprise of today... and tomorrow.")),e.createElement(x,null))))))),e.createElement(d,{angle:0,bg:"#F0F5FF",offsetBottom:"150px",style:{overflowX:"clip"}},e.createElement(o,null,e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),width:"min-content",color:"var(--color-text-light)",margin:"0 auto 40px",padding:"12px 32px"},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2020+")),e.createElement(z,null),e.createElement(t,{maxWidth:"600px",margin:"0 auto",style:{textAlign:"center"},padding:"0 0 40px"},e.createElement(i,{textAlign:{base:"center"},color:"var(--color-text-dimmed)"},"Redocly\u2019s full product is used daily by over 10,000 corporate customers that value better, future-proofed API docs and developer experiences. Our story continues with you \u{1F447}"),e.createElement(t,{display:"flex",justifyContent:"center"},e.createElement(b,{to:"https://auth.cloud.redocly.com/registration",size:"large",className:"landing-button"},"Start 30-day free trial")))),e.createElement(y,{left:"100%",zIndex:-1},e.createElement(s,{size:"600px",top:"-300px",right:"-340px"}),e.createElement(s,{size:"800px",top:"-400px",right:"-480px"})),e.createElement(o,{style:{textAlign:"center"},mt:{_:"30px",small:"60px"}},e.createElement(p,{color:"var(--color-text-dark)"},"Redockers, assemble!"),e.createElement(B,null,N.map(([r,S,F])=>e.createElement(T,{key:r,image:F,name:r,position:S}))))),e.createElement(o,{mt:{_:5,small:6}},e.createElement(C,null),e.createElement(t,{my:{_:6,small:7}},e.createElement(k,null))),e.createElement(R,{title:"Speed all the way to API maturity",description:"Launch API docs in seconds, for free. Try the full product suite for 14 days."},e.createElement(b,{to:"https://auth.cloud.redocly.com/registration",size:"large",className:"landing-button"},"Start 30-day free trial")))}const f=a(t)`
1
+ import e from"react";import{linearGradient as c}from"polished";import a from"styled-components";import{breakpoints as n}from"@redocly/theme/core/utils";import{Box as t}from"../../ui/Box";import{DualView as E}from"../../components/DualView/DualView";import{Button as b}from"../../components/Button/CustomButton";import{CallToAction as R}from"../../components/CallToAction/CallToAction";import{Circle as s,CircleWrapper as y}from"../../components/Circle/Circle";import{Grid as u,MediaBox as o,Skewed as d}from"../../components/PositionItems";import{ResponsiveImg as g}from"../../components/ImageComponents";import{Tooltip as I}from"../../components/CustomTooltip/Tooltip";import{QuoteTip as m}from"../../components/QuoteTip/QuoteTip";import{VerticalLine as x}from"../../components/VerticalLine/VerticalLine";import{RecentPosts as k}from"../../components/Blog/RecentPosts";import{CareerCard as D}from"./components/CareerCard";import{Avatar as v,FoundersQuoteWrapper as z}from"../../components/FoundersQuoteWrapper";import{RedockerCard as C}from"./components/RedockerCard";import{TripleComponent as T}from"./components/TripleComponent";import{WorldMap as W}from"./components/WorldMap";import{RedocWidget as O}from"./components/RedocWidget";import w from"../../images/redockers/adam-headshot.png";import A from"../../images/redockers/roman-headshot.png";import{H1Title as P,H2Title as p,H4Title as l,Paragraph as i}from"../../components/TypographyElements";function pe(){return e.createElement(e.Fragment,null,e.createElement(d,{angle:0,bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),offsetBottom:"10px"},e.createElement(o,null,e.createElement(t,{maxWidth:"900px",mt:{_:"50px",small:"100px"},mb:"40px",mx:"auto"},e.createElement(N,null,"Redocly bridges the divide between documentation and innovation")))),e.createElement(W,null,e.createElement(o,null,e.createElement(t,{maxWidth:"500px"},e.createElement(p,{color:"var(--secondary-color)"},"The almighty API Economy is leaving more and more companies behind. We are here to change that.")))),e.createElement(d,{angle:0,bg:"#F0F5FF",offsetTop:"calc(-40px - 10vw)"},e.createElement(o,{width:"730px"},e.createElement(m,{to:"bottom",style:{boxShadow:"0 3px 16px 0px rgb(0 68 212 / 20%)"},padding:{_:"20px",small:"40px 60px"}},e.createElement(i,{color:"var(--color-text-dimmed)",mt:{base:0},mb:{base:0}},"API docs have become a make-or-break asset in today\u2019s connected economy. Redocly helps companies make the most of their APIs by keeping documentation sleek, up to date, and ready for internal and external users. With minimal hand-holding and maximum ROI."))),e.createElement(o,null,e.createElement(t,{maxWidth:"1000px",mt:"100px",mb:{_:"60px",small:"130px"},mx:"auto"},e.createElement(p,{textAlign:{base:"center"},mt:{base:"50px"},mb:{base:"50px"},color:"var(--color-text-dark)"},"Our North-Star design principles"),e.createElement(j,null,e.createElement(f,null,e.createElement(g,{src:require("./images/icons/developers-first.svg"),alt:"developer first"}),e.createElement(l,null,"Developers first"),e.createElement(t,{maxWidth:{_:"200px",small:"initial"},m:"auto"},e.createElement(h,null,"Docs-like-code fully integrated with your delivery pipeline."))),e.createElement(f,null,e.createElement(g,{src:require("./images/icons/everyone-all-in.svg"),alt:"all in"}),e.createElement(l,null,"Everyone all-in"),e.createElement(h,null,"Removing friction between API creators, documentarians and users.")),e.createElement(f,null,e.createElement(g,{src:require("./images/icons/on-board.svg"),alt:"brand"}),e.createElement(l,null,"On brand, on your terms"),e.createElement(t,{maxWidth:{_:"250px",small:"initial"},m:"auto"},e.createElement(h,null,"Full customization power for every part of your API consumer\u2019s journey."))))))),e.createElement(t,{pt:"32px",bg:"#F8FAFF",textAlign:"center"},e.createElement(y,{zIndex:1},e.createElement(s,{size:"600px",top:"-300px",left:"-250px"}),e.createElement(s,{size:"800px",top:"-400px",left:"-400px"})),e.createElement(o,{mt:{_:"10px",small:"60px"}},e.createElement(p,{color:"var(--color-text-dark)",textAlign:{base:"center"}},"The Origin Story"),e.createElement(z,null,e.createElement(I,{id:"global"},"Our co-founders",e.createElement("br",null),"Roman & Adam"),e.createElement(t,{className:"avatars","data-tip":!0,"data-for":"global"},e.createElement(v,{src:A}),e.createElement(v,{src:w})),e.createElement(m,{to:"left",style:{boxShadow:"rgb(0 68 212 / 20%) 0px 0px 15px -5px"},padding:{_:"12px 12px",small:"16px 32px"}},e.createElement(i,{mt:{base:0},mb:{base:0},color:"#0044D4"},e.createElement(_,null,"\u201CIf you want something done right, DIY\u201D")))),e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),style:{width:"min-content",color:"white",margin:"0 auto 40px"},padding:"12px 32px"},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2015")),e.createElement(E,{imageSrc:require("./images/story-2015-a.png"),reversed:!0},e.createElement(t,{maxWidth:"420px",ml:"auto",mr:{_:"auto",medium:"40px"}},e.createElement(i,{textAlign:{base:"left"},color:"var(--color-text-dimmed)"},"Rebilly, a Texas-bred payments fintech, adopts OpenAPI but is severely disappointed in Swagger\u2019s UI and performance. So they build their own documentation tool from scratch.")),e.createElement(x,null)),e.createElement("div",{style:{background:"#f8faff"}},e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),padding:"12px 32px",style:{width:"min-content",color:"white",margin:"0 auto 40px"}},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2016")),e.createElement(t,{position:"relative",mb:"40px"},e.createElement(x,null),e.createElement(B,null,e.createElement(O,null),e.createElement(t,{maxWidth:"415px",mr:"auto",ml:{_:"auto",medium:"40px"}},e.createElement(i,{textAlign:{base:"left"},color:"var(--color-text-dimmed)"},"Redoc (",e.createElement("strong",null,"Re"),"billy ",e.createElement("strong",null,"Doc"),"umentation) sees the light and developers jump onboard en masse. 17,000+ GitHub stars and 10,000s of corporate users later, it\u2019s the favorite open-source API documentation tool out there.")))),e.createElement(d,{angle:0,bg:"#F8FAFF"},e.createElement(o,null,e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),width:"min-content",color:"var(--color-text-light)",margin:"0 auto 40px",padding:"12px 32px"},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2018")),e.createElement(E,{imageSrc:require("./images/story-2018.png"),reversed:!0},e.createElement(t,{maxWidth:"415px",ml:"auto",mr:{_:"auto",medium:"40px"}},e.createElement(i,{textAlign:{base:"left"},color:"var(--color-text-dimmed)"},"Following user demand and interest by leading investors, Redocly is launched as a premium SaaS: faster, feature-packed and catering to the enterprise of today... and tomorrow.")),e.createElement(x,null))))))),e.createElement(d,{angle:0,bg:"#F0F5FF",offsetBottom:"150px",style:{overflowX:"clip"}},e.createElement(o,null,e.createElement(m,{to:"bottom",bg:c({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),width:"min-content",color:"var(--color-text-light)",margin:"0 auto 40px",padding:"12px 32px"},e.createElement(l,{mb:0,mt:0,color:"var(--secondary-color)"},"2020+")),e.createElement(T,null),e.createElement(t,{maxWidth:"600px",margin:"0 auto",style:{textAlign:"center"},padding:"0 0 40px"},e.createElement(i,{textAlign:{base:"center"},color:"var(--color-text-dimmed)"},"Redocly\u2019s full product is used daily by over 10,000 corporate customers that value better, future-proofed API docs and developer experiences. Our story continues with you \u{1F447}"),e.createElement(t,{display:"flex",justifyContent:"center"},e.createElement(b,{to:"https://auth.cloud.redocly.com/registration",size:"large",className:"landing-button"},"Start 30-day free trial")))),e.createElement(y,{left:"100%",zIndex:-1},e.createElement(s,{size:"600px",top:"-300px",right:"-340px"}),e.createElement(s,{size:"800px",top:"-400px",right:"-480px"})),e.createElement(o,{style:{textAlign:"center"},mt:{_:"30px",small:"60px"}},e.createElement(p,{color:"var(--color-text-dark)"},"Redockers, assemble!"),e.createElement(q,null,$.map(([r,F,S])=>e.createElement(C,{key:r,image:S,name:r,position:F}))))),e.createElement(o,{mt:{_:5,small:6}},e.createElement(D,null),e.createElement(t,{my:{_:6,small:7}},e.createElement(k,null))),e.createElement(R,{title:"Speed all the way to API maturity",description:"Launch API docs in seconds, for free. Try the full product suite for 14 days."},e.createElement(b,{to:"https://auth.cloud.redocly.com/registration",size:"large",className:"landing-button"},"Start 30-day free trial")))}const f=a(t)`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  text-align: center;
@@ -17,13 +17,13 @@ import e from"react";import{linearGradient as c}from"polished";import a from"sty
17
17
  height: 130px;
18
18
  }
19
19
  }
20
- `,$=a.i`
20
+ `,_=a.i`
21
21
  font-weight: bold;
22
22
  font-style: normal;
23
- `,N=[["Adam Altman","CO-FOUNDER & CEO",w],["Roman Hotsiy","CO-FOUNDER & CTO",A],["Patrick Chiang","PRESIDENT & COO",W]],j=a(_)`
23
+ `,$=[["Adam Altman","CO-FOUNDER & CEO",w],["Roman Hotsiy","CO-FOUNDER & CTO",A]],N=a(P)`
24
24
  text-align: center;
25
25
  color: var(--secondary-color);
26
- `,xe=a.p`
26
+ `,ue=a.p`
27
27
  font-size: var(--font-size-base);
28
28
  line-height: var(--line-height-sm);
29
29
  font-family: var(--font-family);
@@ -37,7 +37,7 @@ import e from"react";import{linearGradient as c}from"polished";import a from"sty
37
37
  font-size: var(--font-size-p-lg);
38
38
  line-height: var(--line-height-lg);
39
39
  }
40
- `,q=a(u)`
40
+ `,j=a(u)`
41
41
  grid-gap: 4rem;
42
42
  grid-row-gap: 5rem;
43
43
  grid-template-columns: 1f;
@@ -56,16 +56,16 @@ import e from"react";import{linearGradient as c}from"polished";import a from"sty
56
56
  font-size: var(--font-size-small-lg);
57
57
  line-height: var(--line-height-small-lg);
58
58
  }
59
- `,B=a(u)`
59
+ `,q=a(u)`
60
60
  grid-template-columns: 1fr;
61
61
  justify-items: center;
62
62
  max-width: 1000px;
63
63
  margin: 0 auto 40px auto;
64
64
 
65
65
  @media screen and (min-width: ${n.medium}) {
66
- grid-template-columns: repeat(3, 1fr);
66
+ grid-template-columns: repeat(2, 1fr);
67
67
  }
68
- `,H=a(u)`
68
+ `,B=a(u)`
69
69
  grid-gap: 4rem;
70
70
  justify-items: center;
71
71
  align-items: center;
@@ -74,4 +74,4 @@ import e from"react";import{linearGradient as c}from"polished";import a from"sty
74
74
  grid-template-columns: 1fr 1fr;
75
75
  grid-gap: 6rem;
76
76
  }
77
- `;export{f as FeaturesCard,ge as default};
77
+ `;export{f as FeaturesCard,pe as default};
@@ -1,4 +1,4 @@
1
- import{linearGradient as S}from"polished";import e from"react";import R from"styled-components";import{Link as u,ArrowRightIcon as g}from"@redocly/theme";import{Box as t}from"../../ui/Box";import{Button as E}from"../../components/Button/CustomButton";import{CallToAction as A}from"../../components/CallToAction/CallToAction";import{Circle as n,CircleWrapper as f}from"../../components/Circle/Circle";import{MediaBox as l,Skewed as o,SkewedBefore as T}from"../../components/PositionItems";import{ResponsiveImg as d}from"../../components/ImageComponents";import{DataAndContentSection as k}from"./DataAndContentSection";import{LeftRight as y}from"./LeftRight";import{Card as a}from"./Card";import{CardTitle as x,Group as p,HorizontalLine as W,PageSubTitle as i,PageTitle as C,SectionGroup as m,SecurityCard as b,SecurityMeasuresTableRow as c,SubTitle as h,TextComponent as r,TopicTitle as s}from"./styled";import{TextSmall as v}from"../../components/TypographyElements/TypographyElements";const J={seo:{title:"Security at Redocly"},slug:"/security"};function N(){return e.createElement(e.Fragment,null,e.createElement(o,{style:{marginBottom:"0",paddingBottom:"9%"},angle:0,bg:S({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"})},e.createElement(l,{textAlign:"center",maxWidth:"700px",pt:6},e.createElement(C,null,"Security at Redocly"),e.createElement(r,{color:"white"},"From product architecture, to legal compliance, to privacy protection, we take security very seriously to remain worthy of thousands of developers who trust us with their API lifecycles."))),e.createElement(o,{style:{paddingTop:"64px"},angle:0,bg:"#f9faff",pb:"14%"},e.createElement(l,{textAlign:"center"},e.createElement(t,{maxWidth:"630px",mx:"auto"},e.createElement(i,{color:"var(--color-text-dark)"},"Redocly is secure by design and designed to help you stay secure")),e.createElement(m,{gridGap:4},e.createElement(t,null,e.createElement(h,{textAlign:{base:"left"}},"HTTPS & data encryption")),e.createElement(m,{gridGap:4},e.createElement(a,{title:"TLS (1.2+)",content:" TLS certificate to encrypt data in transit, free on every plan."}),e.createElement(a,{title:"AES-256",content:" We encrypt all data at rest with the highest security standard."}))),e.createElement(W,null),e.createElement(m,{gridGap:4},e.createElement(t,{textAlign:"left"},e.createElement(h,{textAlign:{base:"left"}},"Identity and access management"),e.createElement(r,{color:"var(--color-text-dimmed)"},"Redocly\u2019s cloud application Workflows features highly customizable access policies to fit your exact security requirements.")),e.createElement(m,{gridGap:4},e.createElement(a,{title:"SSO",content:"SAML2 or OpenID connect with domain verification.",chipText:"Enterprise",link:"/docs-legacy/settings/identity-providers/"}),e.createElement(a,{title:"Roles & permissions",content:"Give project-level permissions to groups of people.",link:"/docs-legacy/settings/access-control/"}),e.createElement(a,{title:"Team mapping",content:" Map users to relevant teams based on their IdP attributes.",link:"/docs-legacy/teams/manage-team-mapping/"}),e.createElement(a,{title:"Audit trail",content:"Rich event logging to track how users updated projects over time."})))),e.createElement(f,null,e.createElement(n,{size:"600px",top:"-300px",left:"-400px"}),e.createElement(n,{size:"800px",top:"-400px",left:"-550px"}))),e.createElement(o,{angle:0,bg:"#F0F5FF",offsetBottom:"2%"},e.createElement(l,{pb:"100px"},e.createElement(t,{maxWidth:"615px",m:"0 auto"},e.createElement(i,{textAlign:{base:"center"},color:"var(--color-text-dark)",mb:{base:"30px"}},"Regular security measures and activities")),e.createElement(p,{gridTemplateColumns:{small:"1fr",medium:"1fr 1fr"},gridColumnGap:"0px",gridRowGap:"0px"},e.createElement(c,{borderRight:{small:"none",medium:"var(--border-dashed)"},borderBottom:{small:"none",medium:"var(--border-dashed);"}},e.createElement(s,{style:{display:"table-cell"}},"Penetration testing"),e.createElement(r,null,"Redocly conducts internal and external (3rd party) penetration testing at least annually.")),e.createElement(c,{borderBottom:{small:"none",medium:"var(--border-dashed);"}},e.createElement(s,{style:{display:"table-cell"}},"Vulnerability management"),e.createElement(r,null,"We scan our code and dependencies daily with AWS Elastic Container Registry. Critical issues are resolved in under one week.")),e.createElement(c,{borderRight:{small:"none",medium:"var(--border-dashed);"}},e.createElement(s,{style:{display:"table-cell"}},"People",e.createElement("br",null),"security"),e.createElement(r,null,"Background checks, security awareness training, access levels following the principle of least privilege.")),e.createElement(c,null,e.createElement(s,{style:{display:"table-cell",marginRight:"4px"}},"Malware protection"),e.createElement(r,null,"Continuous monitoring of containers using AWS ECR, and agents for continuous monitoring of our devices."))))),e.createElement(k,null),e.createElement(o,{angle:0,mt:{_:5,medium:7}},e.createElement(l,null,e.createElement(p,{gridTemplateColumns:{_:"1fr",small:"1fr 1fr"},gridTemplateAreas:{_:'"sub-processors" "card-1" "card-2"',medium:'"sub-processors ." "card-1 card-2"'},gridColumnGap:4,gridRowGap:3,mb:"6rem"},e.createElement(t,{gridArea:"sub-processors",maxWidth:"580px"},e.createElement(i,{mb:"0",color:"var(--color-text-dark)"},"Third party vendor management"),e.createElement(r,null,"We ensure each of our providers adheres to our standards of privacy and security, and inspect their compliance records annually. Please refer to our full list of sub-processors for an up to date list."),e.createElement(w,{to:"/sub-processors/"},"SUB-PROCESSORS WE USE",e.createElement(g,null))),e.createElement(b,{flexDirection:{_:"column",medium:"row"},alignItems:{_:"flex-start",small:"center"},gridArea:"card-1"},e.createElement(t,{mr:{_:0,medium:"2em"},mt:"auto",mb:{_:4,small:"auto"}},e.createElement(d,{src:require("./images/image-128.png"),alt:"AWS",maxWidth:"100px"})),e.createElement(t,null,e.createElement(x,{mt:"0",mb:2},"SaaS delivery"),e.createElement(t,{mt:2},e.createElement(v,{color:"var(--color-text-dimmed)"},"Our platform runs on AWS and we use 3rd parties for identity management and payments & subscription billing.")))),e.createElement(b,{flexDirection:{_:"column",medium:"row"},alignItems:{_:"flex-start",small:"center"},gridArea:"card-2"},e.createElement(t,{mr:{_:0,medium:"2em"},mt:"auto",mb:{_:4,small:"auto"}},e.createElement(d,{src:require("./images/gears.svg"),alt:"gears",maxWidth:"90px"})),e.createElement(t,null,e.createElement(x,{mt:"0",mb:2},"Support services"),e.createElement(t,{mt:2},e.createElement(v,{color:"var(--color-text-dimmed)"},"We use a range of tools for email, meetings, CRM, status page, project management and communication ."))))))),e.createElement(T,{angle:0,bg:"#F0F5FF",py:{_:5,medium:6},style:{overflowX:"clip"}},e.createElement(f,{left:"100%",zIndex:-1},e.createElement(n,{size:"600px",top:"-700px",right:"-300px"}),e.createElement(n,{size:"800px",top:"-780px",right:"-340px"})),e.createElement(l,null,e.createElement(p,{gridTemplateColumns:{small:"1fr",medium:"1fr 1fr"},gridGap:{_:5,small:6},gridTemplateAreas:{_:'".""image"',medium:'"image ."'}},e.createElement(t,{gridArea:"image",mx:"auto"},e.createElement(d,{src:require("./images/status.svg")})),e.createElement(t,null,e.createElement(i,{mb:"0",color:"var(--color-text-dark)"},"Service availability"),e.createElement(r,null,"We take aggressive measures to ensure business continuity for us and our customers, with frequent backups and fast disaster recovery, both tested regularly. All traffic is protected by web application firewall (WAF) and we keep our status up to date at"," ",e.createElement(u,{to:"https://status.redocly.com"},"status.redocly.com"),"."),e.createElement(t,{display:"flex",flexWrap:"wrap",justifyContent:"space-between",alignItems:"center",pb:"30px"},e.createElement(y,{left:"RPO",right:"10 min",hint:"Recovery Point Objective: how frequently we take backups",mr:"4px"}),e.createElement(y,{left:"RTO",right:"30 min",hint:"Recovery Time Objective: how long to restore from last recovery point",mr:"4px"}),e.createElement(t,{flexBasis:{_:"100%",small:"auto"},mt:{_:4,small:"10px"}},e.createElement(r,{fs:"18px",fw:"900",color:"dimmed"},"Last tested: July 17, 2024"))),e.createElement(w,{to:"/sla/"},"READ Redocly\u2019s SLA",e.createElement(g,null)))))),e.createElement(A,{title:"Win at the API economy in full safety and confidence"},e.createElement(E,{className:"landing-button",size:"medium",to:"https://auth.cloud.redocly.com/registration"},"Start 30-day free trial"),e.createElement(E,{to:"/contact-sales/",size:"medium",variant:"outlined"},"Enterprise")))}const w=R(u)`
1
+ import{linearGradient as S}from"polished";import e from"react";import R from"styled-components";import{Link as u,ArrowRightIcon as g}from"@redocly/theme";import{Box as t}from"../../ui/Box";import{Button as E}from"../../components/Button/CustomButton";import{CallToAction as A}from"../../components/CallToAction/CallToAction";import{Circle as n,CircleWrapper as f}from"../../components/Circle/Circle";import{MediaBox as l,Skewed as o,SkewedBefore as T}from"../../components/PositionItems";import{ResponsiveImg as d}from"../../components/ImageComponents";import{DataAndContentSection as k}from"./DataAndContentSection";import{LeftRight as y}from"./LeftRight";import{Card as a}from"./Card";import{CardTitle as x,Group as p,HorizontalLine as W,PageSubTitle as i,PageTitle as C,SectionGroup as m,SecurityCard as b,SecurityMeasuresTableRow as c,SubTitle as h,TextComponent as r,TopicTitle as s}from"./styled";import{TextSmall as v}from"../../components/TypographyElements/TypographyElements";const J={seo:{title:"Security at Redocly"},slug:"/security"};function N(){return e.createElement(e.Fragment,null,e.createElement(o,{style:{marginBottom:"0",paddingBottom:"9%"},angle:0,bg:S({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"})},e.createElement(l,{textAlign:"center",maxWidth:"700px",pt:6},e.createElement(C,null,"Security at Redocly"),e.createElement(r,{color:"white"},"From product architecture, to legal compliance, to privacy protection, we take security very seriously to remain worthy of thousands of developers who trust us with their API lifecycles."))),e.createElement(o,{style:{paddingTop:"64px"},angle:0,bg:"#f9faff",pb:"14%"},e.createElement(l,{textAlign:"center"},e.createElement(t,{maxWidth:"630px",mx:"auto"},e.createElement(i,{color:"var(--color-text-dark)"},"Redocly is secure by design and designed to help you stay secure")),e.createElement(m,{gridGap:4},e.createElement(t,null,e.createElement(h,{textAlign:{base:"left"}},"HTTPS & data encryption")),e.createElement(m,{gridGap:4},e.createElement(a,{title:"TLS (1.2+)",content:" TLS certificate to encrypt data in transit, free on every plan."}),e.createElement(a,{title:"AES-256",content:" We encrypt all data at rest with the highest security standard."}))),e.createElement(W,null),e.createElement(m,{gridGap:4},e.createElement(t,{textAlign:"left"},e.createElement(h,{textAlign:{base:"left"}},"Identity and access management"),e.createElement(r,{color:"var(--color-text-dimmed)"},"Redocly\u2019s cloud application Workflows features highly customizable access policies to fit your exact security requirements.")),e.createElement(m,{gridGap:4},e.createElement(a,{title:"SSO",content:"SAML2 or OpenID connect with domain verification.",chipText:"Enterprise",link:"/docs-legacy/settings/identity-providers/"}),e.createElement(a,{title:"Roles & permissions",content:"Give project-level permissions to groups of people.",link:"/docs-legacy/settings/access-control/"}),e.createElement(a,{title:"Team mapping",content:" Map users to relevant teams based on their IdP attributes.",link:"/docs-legacy/teams/manage-team-mapping/"}),e.createElement(a,{title:"Audit trail",content:"Rich event logging to track how users updated projects over time."})))),e.createElement(f,null,e.createElement(n,{size:"600px",top:"-300px",left:"-400px"}),e.createElement(n,{size:"800px",top:"-400px",left:"-550px"}))),e.createElement(o,{angle:0,bg:"#F0F5FF",offsetBottom:"2%"},e.createElement(l,{pb:"100px"},e.createElement(t,{maxWidth:"615px",m:"0 auto"},e.createElement(i,{textAlign:{base:"center"},color:"var(--color-text-dark)",mb:{base:"30px"}},"Regular security measures and activities")),e.createElement(p,{gridTemplateColumns:{small:"1fr",medium:"1fr 1fr"},gridColumnGap:"0px",gridRowGap:"0px"},e.createElement(c,{borderRight:{small:"none",medium:"var(--border-dashed)"},borderBottom:{small:"none",medium:"var(--border-dashed);"}},e.createElement(s,{style:{display:"table-cell"}},"Penetration testing"),e.createElement(r,null,"Redocly conducts internal and external (3rd party) penetration testing at least annually.")),e.createElement(c,{borderBottom:{small:"none",medium:"var(--border-dashed);"}},e.createElement(s,{style:{display:"table-cell"}},"Vulnerability management"),e.createElement(r,null,"We scan our code and dependencies daily with AWS Elastic Container Registry. Critical issues are resolved in under one week.")),e.createElement(c,{borderRight:{small:"none",medium:"var(--border-dashed);"}},e.createElement(s,{style:{display:"table-cell"}},"People",e.createElement("br",null),"security"),e.createElement(r,null,"Background checks, security awareness training, access levels following the principle of least privilege.")),e.createElement(c,null,e.createElement(s,{style:{display:"table-cell",marginRight:"4px"}},"Malware protection"),e.createElement(r,null,"Continuous monitoring of containers using AWS ECR, and agents for continuous monitoring of our devices."))))),e.createElement(k,null),e.createElement(o,{angle:0,mt:{_:5,medium:7}},e.createElement(l,null,e.createElement(p,{gridTemplateColumns:{_:"1fr",small:"1fr 1fr"},gridTemplateAreas:{_:'"sub-processors" "card-1" "card-2"',medium:'"sub-processors ." "card-1 card-2"'},gridColumnGap:4,gridRowGap:3,mb:"6rem"},e.createElement(t,{gridArea:"sub-processors",maxWidth:"580px"},e.createElement(i,{mb:"0",color:"var(--color-text-dark)"},"Third party vendor management"),e.createElement(r,null,"We ensure each of our providers adheres to our standards of privacy and security, and inspect their compliance records annually. Please refer to our full list of sub-processors for an up to date list."),e.createElement(w,{to:"/sub-processors/"},"SUB-PROCESSORS WE USE",e.createElement(g,null))),e.createElement(b,{flexDirection:{_:"column",medium:"row"},alignItems:{_:"flex-start",small:"center"},gridArea:"card-1"},e.createElement(t,{mr:{_:0,medium:"2em"},mt:"auto",mb:{_:4,small:"auto"}},e.createElement(d,{src:require("./images/image-128.png"),alt:"AWS",maxWidth:"100px"})),e.createElement(t,null,e.createElement(x,{mt:"0",mb:2},"SaaS delivery"),e.createElement(t,{mt:2},e.createElement(v,{color:"var(--color-text-dimmed)"},"Our platform runs on AWS and we use 3rd parties for identity management and payments & subscription billing.")))),e.createElement(b,{flexDirection:{_:"column",medium:"row"},alignItems:{_:"flex-start",small:"center"},gridArea:"card-2"},e.createElement(t,{mr:{_:0,medium:"2em"},mt:"auto",mb:{_:4,small:"auto"}},e.createElement(d,{src:require("./images/gears.svg"),alt:"gears",maxWidth:"90px"})),e.createElement(t,null,e.createElement(x,{mt:"0",mb:2},"Support services"),e.createElement(t,{mt:2},e.createElement(v,{color:"var(--color-text-dimmed)"},"We use a range of tools for email, meetings, CRM, status page, project management and communication ."))))))),e.createElement(T,{angle:0,bg:"#F0F5FF",py:{_:5,medium:6},style:{overflowX:"clip"}},e.createElement(f,{left:"100%",zIndex:-1},e.createElement(n,{size:"600px",top:"-700px",right:"-300px"}),e.createElement(n,{size:"800px",top:"-780px",right:"-340px"})),e.createElement(l,null,e.createElement(p,{gridTemplateColumns:{small:"1fr",medium:"1fr 1fr"},gridGap:{_:5,small:6},gridTemplateAreas:{_:'".""image"',medium:'"image ."'}},e.createElement(t,{gridArea:"image",mx:"auto"},e.createElement(d,{src:require("./images/status.svg")})),e.createElement(t,null,e.createElement(i,{mb:"0",color:"var(--color-text-dark)"},"Service availability"),e.createElement(r,null,"We take aggressive measures to ensure business continuity for us and our customers, with frequent backups and fast disaster recovery, both tested regularly. All traffic is protected by web application firewall (WAF) and we keep our status up to date at"," ",e.createElement(u,{to:"https://status.redocly.com"},"status.redocly.com"),"."),e.createElement(t,{display:"flex",flexWrap:"wrap",justifyContent:"space-between",alignItems:"center",pb:"30px"},e.createElement(y,{left:"RPO",right:"10 min",hint:"Recovery Point Objective: how frequently we take backups",mr:"4px"}),e.createElement(y,{left:"RTO",right:"30 min",hint:"Recovery Time Objective: how long to restore from last recovery point",mr:"4px"}),e.createElement(t,{flexBasis:{_:"100%",small:"auto"},mt:{_:4,small:"10px"}},e.createElement(r,{fs:"18px",fw:"900",color:"dimmed"},"Last tested: July 14, 2025"))),e.createElement(w,{to:"/sla/"},"READ Redocly\u2019s SLA",e.createElement(g,null)))))),e.createElement(A,{title:"Win at the API economy in full safety and confidence"},e.createElement(E,{className:"landing-button",size:"medium",to:"https://auth.cloud.redocly.com/registration"},"Start 30-day free trial"),e.createElement(E,{to:"/contact-sales/",size:"medium",variant:"outlined"},"Enterprise")))}const w=R(u)`
2
2
  font-size: 14px;
3
3
  font-weight: bold;
4
4
  text-decoration: none;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/marketing-pages",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "keywords": [],
5
5
  "author": "",
6
6
  "license": "UNLICENSED",