@redocly/marketing-pages 0.1.7 → 0.1.9

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.
package/README.md CHANGED
@@ -22,4 +22,16 @@ npm link @redocly/marketing-pages
22
22
 
23
23
  3. Run `npm run dev` in this repo.
24
24
 
25
- 4. Run `npm start` in the marketing-site-portal repo.
25
+ 4. Run `npm start` in the marketing-site-portal repo.
26
+
27
+ ## Release
28
+
29
+ The release process is fully automated using [Changesets](https://github.com/changesets/changesets). Here's how it works:
30
+
31
+ ### Automated Release Flow
32
+
33
+ 1. **Changes merged to main** - Any changes merged to the main branch trigger the release workflow
34
+ 2. **Auto-changeset creation** - If no changeset exists, the system automatically creates one for a patch version bump
35
+ 3. **Version Packages PR** - A pull request is created with the title "chore: release new version 🚀"
36
+ 4. **Review & Merge** - Review a Version Packages PR and merge when ready to release
37
+ 5. **Automatic publishing** - The package is automatically published to npm after merging
@@ -1,4 +1,4 @@
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`
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`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  font-size: 16px;
@@ -6,7 +6,7 @@ import t from"react";import o,{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=o.p`
9
+ `,z=r.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 o,{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=o(T)`
24
+ `,C=r(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 o,{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=o.div`
38
+ `,L=r.div`
39
39
  display: flex;
40
40
  flex-direction: column;
41
41
  text-align: left;
@@ -63,7 +63,7 @@ import t from"react";import o,{css as v}from"styled-components";import{breakpoin
63
63
  margin-bottom: 60px;
64
64
  padding: 0;
65
65
  }
66
- `,s=o.div`
66
+ `,s=r.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 o,{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=o(n)`
75
+ `,O=r(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 o,{css as v}from"styled-components";import{breakpoin
86
86
  }
87
87
 
88
88
  &:last-child ${s} {
89
- margin-right: ${({$iconsOnly:r})=>r?"0":"var(--footer-item-icon-margin-right)"};
89
+ margin-right: ${({$iconsOnly:o})=>o?"0":"var(--footer-item-icon-margin-right)"};
90
90
  }
91
- `,g=o.div`
91
+ `,g=r.div`
92
92
  display: flex;
93
93
  flex-wrap: wrap;
94
94
  justify-content: center;
95
- flex-direction: ${r=>r.$iconsOnly?"row":"column"};
95
+ flex-direction: ${o=>o.$iconsOnly?"row":"column"};
96
96
 
97
- ${({$subscribeSection:r})=>r&&v`
97
+ ${({$subscribeSection:o})=>o&&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 o,{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=o.div`
108
+ `,R=r.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(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`
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`
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
- `,a=r.div`
15
+ `,m=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,o as FooterColumnsContainer,a as FooterRow};
34
+ `;export{d as FooterColumns,i as FooterColumnsContainer,m as FooterRow};
@@ -1,4 +1,4 @@
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`
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`
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 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`
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`
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 r,{css as z}from"styled-components";imp
21
21
  text-decoration: none;
22
22
  color: var(--menu-item-text-color);
23
23
  }
24
- `,Z=r.div`
24
+ `,Z=n.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 r,{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:n})=>`calc(
39
+ left: ${({depth:r})=>`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) * ${n})
43
+ var(--menu-item-nested-offset) * ${r})
44
44
  `};
45
45
  border: 0.5px solid var(--border-color-primary);
46
46
  }
47
- `,I=r.li`
47
+ `,I=n.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 r,{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:n,depth:e})=>`calc(
60
+ padding-left: ${({withChevron:r,depth:e})=>`calc(
61
61
  var(--menu-item-padding-horizontal) +
62
- ${n?"0px":"var(--menu-item-label-chevron-offset)"} +
62
+ ${r?"0px":"var(--menu-item-label-chevron-offset)"} +
63
63
  ${e?"var(--menu-item-nested-offset) * "+e:"0px"}
64
64
  )`};
65
65
 
66
- ${({active:n,deprecated:e})=>n&&z`
66
+ ${({active:r,deprecated:e})=>r&&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 r,{css as z}from"styled-components";imp
79
79
  }
80
80
  `};
81
81
 
82
- ${({deprecated:n})=>n&&z`
82
+ ${({deprecated:r})=>r&&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 r,{css as z}from"styled-components";imp
114
114
  &:empty {
115
115
  padding: 0;
116
116
  }
117
- `,T=r.div`
117
+ `,T=n.div`
118
118
  display: flex;
119
119
  flex-direction: column;
120
120
  flex-grow: 1;
121
- `,ee=r(T)`
121
+ `,ee=n(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 r,{css as z}from"styled-components";imp
127
127
  section {
128
128
  background-color: var(--bg-color);
129
129
  }
130
- `,C=r.div`
130
+ `,C=n.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=r.img`
136
+ `,M=n.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=r(F)`
143
+ `,te=n(F)`
144
144
  order: 1;
145
- `,ne=r.div`
145
+ `,re=n.div`
146
146
  height: var(--menu-item-separator-line-height);
147
147
  background-color: var(--menu-item-separator-line-bg-color);
148
- margin: ${({depth:n})=>`
148
+ margin: ${({depth:r})=>`
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
- ${n?"var(--menu-item-nested-offset) * "+n:"0px"})
153
+ ${r?"var(--menu-item-nested-offset) * "+r:"0px"})
154
154
  `};
155
- order: ${({linePosition:n})=>n==="top"?0:1};
156
- `,R=r.span`
155
+ order: ${({linePosition:r})=>r==="top"?0:1};
156
+ `,R=n.span`
157
157
  & > * {
158
158
  margin-right: var(--spacing-xxs);
159
159
  }
160
- `,D=r(q)`
160
+ `,D=n(q)`
161
161
  margin-left: 0;
162
- background-color: ${({color:n})=>n||"var(--color-info-base)"};
162
+ background-color: ${({color:r})=>r||"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 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`
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`
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(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`
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`
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 40px;
@@ -1 +1 @@
1
- import{linearGradient as f}from"polished";import e,{useRef as x}from"react";import{Link as y}from"@redocly/theme";import{Box as t}from"../../ui/Box";import{Button as a}from"../../components/Button/CustomButton";import{CallToAction as h}from"../../components/CallToAction/CallToAction";import{Centered as i,MediaBox as o,Skewed as s}from"../../components/PositionItems";import{Circle as u,CircleWrapper as g}from"../../components/Circle/Circle";import{Position as b}from"./components/Position";import{StickyMeme as w}from"./components/StickyMeme";import{BgWrapper as W,TopSection as _,PageText as C,Text as d,Title as p,TextGradientElement as T,PositionsSection as S,BottomSection as k,SubText as n,CareersContainer as A,DocumentationSection as v,ButtonWrapper as D,CenteredSection as P}from"./components/styled";import{PageTitle as j}from"../redoc/redoc.page";import{H4Title as l}from"../../components/TypographyElements";const K={seo:{title:"Careers"},slug:"/careers"};function Q({positions:E}){const m=x(),c=()=>{if(m.current){const{offsetTop:r}=m.current;window.scrollTo({top:r-20,behavior:"smooth"})}};return e.createElement(W,null,e.createElement(s,{angle:0,bg:f({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),offsetBottom:"-70%",style:{paddingBottom:"64px"}},e.createElement(o,null,e.createElement(_,null,e.createElement(t,null,e.createElement(A,null,e.createElement(t,null,e.createElement(j,null,"Careers at Redocly"),e.createElement(C,null,"Come build the future of the API economy ",e.createElement("br",null)," from anywhere in the big big world."),e.createElement(D,{display:"flex",justifyContent:{_:"center",small:"flex-start"}},e.createElement(a,{size:"medium",className:"landing-button",onClick:c},"See Open Positions")))),e.createElement(v,null,e.createElement(t,null,e.createElement(T,null,"Documentation is kind of our jam")))),e.createElement(w,{handleScroll:c}))),e.createElement(g,{style:{zIndex:-1},top:"-540px"},e.createElement(u,{size:"770px",top:"130px",left:"-455px"}),e.createElement(u,{size:"920px",left:"-550px"}))),e.createElement(o,{style:{paddingTop:"64px"}},e.createElement(P,{maxWidth:"930px"},e.createElement(d,null,"We are a tight-knit team of API enthusiasts trying to crack the world's best developer experience, and put it a single interactive product that teams adore. Docs are just the start."),e.createElement(d,null,"Join us. And yes, we\u2019ll also draw you a portrait.")),e.createElement(t,{pb:"15%",ref:m},e.createElement(i,null,e.createElement(p,null,"Open positions")),e.createElement(S,null,E.map(r=>e.createElement(b,{id:r.id,title:r.title,key:r.id,subtitle:r.subtitle,description:r.description}))),e.createElement(i,{maxWidth:"540px"},e.createElement(l,{color:"var(--color-text-indigo)",mb:{base:0}},e.createElement("span",null,"Email us at "),e.createElement(y,{to:"mailto:team@redocly.com",style:{color:"#0044D4"}},"team@redocly.com"),e.createElement("span",null," if you think you could provide value to Redocly in another role"))))),e.createElement(s,{angle:{_:0,medium:0},bg:"#F0F5FF",offsetTop:{_:"-1%",medium:"-10%",large:"-5%"},style:{paddingTop:"64px"}},e.createElement(o,null,e.createElement(i,null,e.createElement(p,null,"Why work at Redocly")),e.createElement(k,null,e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/market.svg"),alt:"Incredible market",width:80})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Incredible market"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"APIs are the new economy. It needs better, smarter, faster docs.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/startup.svg"),alt:"Startup environment",width:88})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Startup environment"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"We\u2019re small but tough (and funded). Join us early on when the future\u2019s brightest.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/world.svg"),alt:"World-class customers",width:80})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:0},"World-class customers"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Thousands of unicorns, enterprises and G-orgs trust us every day.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/work.svg"),alt:"Work from anywhere",width:105})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Work from anywhere"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Remote-first team working across projects and time zones.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/autonomy.svg"),alt:"Autonomy & growth",width:70})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Autonomy & growth"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Scratch your head. Pull-request the ace up your sleeve. Get it done. Repeat.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/salary.svg"),alt:"Texan-sized salary",width:100})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Texan-sized salary"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Wherever you choose to live. (Won\u2019t beat Austin\u2019s live music scene. Sorry)"))))))),e.createElement(h,{title:"Superpower your API lifecycle with Redocly"},e.createElement(a,{to:"https://auth.cloud.redocly.com/registration",style:{height:"50px"},size:"large",className:"landing-button"},"Start 30-day free trial"),e.createElement(a,{to:"/enterprise/",variant:"outlined",style:{height:"50px"},size:"large"},"Enterprise")))}export{Q as default,K as frontmatter};
1
+ import{linearGradient as f}from"polished";import e,{useRef as x}from"react";import{Link as y}from"@redocly/theme";import{Box as t}from"../../ui/Box";import{Button as a}from"../../components/Button/CustomButton";import{CallToAction as h}from"../../components/CallToAction/CallToAction";import{Centered as i,MediaBox as o,Skewed as s}from"../../components/PositionItems";import{Circle as u,CircleWrapper as g}from"../../components/Circle/Circle";import{Position as b}from"./components/Position";import{StickyMeme as w}from"./components/StickyMeme";import{BgWrapper as W,TopSection as _,PageText as C,Text as d,Title as p,TextGradientElement as T,PositionsSection as S,BottomSection as k,SubText as n,CareersContainer as A,DocumentationSection as v,ButtonWrapper as D,CenteredSection as P}from"./components/styled";import{PageTitle as j}from"../redoc/redoc.page";import{H4Title as l}from"../../components/TypographyElements";const K={seo:{title:"Careers"},slug:"/careers"};function Q({positions:E}){const m=x(),c=()=>{if(m.current){const{offsetTop:r}=m.current;window.scrollTo({top:r-20,behavior:"smooth"})}};return e.createElement(W,null,e.createElement(s,{angle:0,bg:f({colorStops:["rgb(0, 104, 251)","rgb(126, 65, 255)"],toDirection:"to right bottom"}),offsetBottom:"-70%",style:{paddingBottom:"64px"}},e.createElement(o,null,e.createElement(_,null,e.createElement(t,null,e.createElement(A,null,e.createElement(t,null,e.createElement(j,null,"Careers at Redocly"),e.createElement(C,null,"Come build the future of the API economy ",e.createElement("br",null)," from anywhere in the big big world."),e.createElement(D,{display:"flex",justifyContent:{_:"center",small:"flex-start"}},e.createElement(a,{size:"medium",className:"landing-button",onClick:c},"See Open Positions")))),e.createElement(v,null,e.createElement(t,null,e.createElement(T,null,"Documentation is kind of our jam")))),e.createElement(w,{handleScroll:c}))),e.createElement(g,{style:{zIndex:-1},top:"-540px"},e.createElement(u,{size:"770px",top:"130px",left:"-455px"}),e.createElement(u,{size:"920px",left:"-550px"}))),e.createElement(o,{style:{paddingTop:"64px"}},e.createElement(P,{maxWidth:"930px"},e.createElement(d,null,"We are a tight-knit team of API enthusiasts trying to crack the world's best developer experience, and put it a single interactive product that teams adore. Docs are just the start."),e.createElement(d,null,"Join us. And yes, we\u2019ll also draw you a portrait.")),e.createElement(t,{pb:"15%",ref:m},e.createElement(i,null,e.createElement(p,null,"Open positions")),e.createElement(S,null,E.map(r=>e.createElement(b,{id:r.id,title:r.title,key:r.id,subtitle:r.subtitle,description:r.description}))),e.createElement(i,{maxWidth:"540px"},e.createElement(l,{color:"var(--color-text-indigo)",mb:{base:0}},e.createElement("span",null,"Email us at "),e.createElement(y,{to:"mailto:careers@redocly.com",style:{color:"#0044D4"}},"careers@redocly.com"),e.createElement("span",null," if you think you could provide value to Redocly in another role"))))),e.createElement(s,{angle:{_:0,medium:0},bg:"#F0F5FF",offsetTop:{_:"-1%",medium:"-10%",large:"-5%"},style:{paddingTop:"64px"}},e.createElement(o,null,e.createElement(i,null,e.createElement(p,null,"Why work at Redocly")),e.createElement(k,null,e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/market.svg"),alt:"Incredible market",width:80})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Incredible market"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"APIs are the new economy. It needs better, smarter, faster docs.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/startup.svg"),alt:"Startup environment",width:88})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Startup environment"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"We\u2019re small but tough (and funded). Join us early on when the future\u2019s brightest.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/world.svg"),alt:"World-class customers",width:80})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:0},"World-class customers"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Thousands of unicorns, enterprises and G-orgs trust us every day.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/work.svg"),alt:"Work from anywhere",width:105})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Work from anywhere"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Remote-first team working across projects and time zones.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/autonomy.svg"),alt:"Autonomy & growth",width:70})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Autonomy & growth"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Scratch your head. Pull-request the ace up your sleeve. Get it done. Repeat.")))),e.createElement(t,{flexDirection:{_:"column",medium:"row"},display:"flex"},e.createElement(t,{minWidth:105,justifyContent:{_:"center",medium:"flex-end"},display:"flex"},e.createElement("img",{src:require("./images/salary.svg"),alt:"Texan-sized salary",width:100})),e.createElement(t,{ml:{medium:"20px"},textAlign:{_:"center",medium:"left"}},e.createElement(l,{mb:{base:"-0.5rem"},mt:{base:0}},"Texan-sized salary"),e.createElement(t,{maxWidth:"310px",m:"auto"},e.createElement(n,null,"Wherever you choose to live. (Won\u2019t beat Austin\u2019s live music scene. Sorry)"))))))),e.createElement(h,{title:"Superpower your API lifecycle with Redocly"},e.createElement(a,{to:"https://auth.cloud.redocly.com/registration",style:{height:"50px"},size:"large",className:"landing-button"},"Start 30-day free trial"),e.createElement(a,{to:"/enterprise/",variant:"outlined",style:{height:"50px"},size:"large"},"Enterprise")))}export{Q as default,K as frontmatter};
@@ -1,2 +1,17 @@
1
1
  import * as React from 'react';
2
- export declare const CardsBlock: () => React.JSX.Element;
2
+ export type CardProps = {
3
+ id: number;
4
+ key: string;
5
+ title: string;
6
+ description: string;
7
+ thumbnail: string;
8
+ moreItems: string;
9
+ landingPage: string;
10
+ items: {
11
+ title: string;
12
+ link: string;
13
+ }[];
14
+ };
15
+ export declare const CardsBlock: ({ cards }: {
16
+ cards: CardProps[];
17
+ }) => React.JSX.Element;
@@ -1,6 +1,6 @@
1
- import*as e from"react";import r from"styled-components";import{Link as s}from"@redocly/theme";import{Card as m}from"@redocly/theme/markdoc/components/Cards/Card";import{Cards as d}from"@redocly/theme/markdoc/components/Cards/Cards";import p from"../images/open-api-thumbnail.svg";import c from"../images/markdoc-thumbnail.svg";import g from"../images/yaml-thumbnail.svg";import h from"../images/arazzo-thumbnail.svg";const C=()=>{const n=[{id:1,key:"open-api",title:"OpenAPI",description:"Resources for learning more about OpenAPI and how to use it.",thumbnail:p,moreItems:"40 more topics",landingPage:"/learn/openapi/learning-openapi",items:[{title:"What is OpenAPI?",link:"/learn/openapi/learning-openapi"},{title:"OpenAPI best practices",link:"/learn/openapi/openapi-decisions"},{title:"$ref guide",link:"/learn/openapi/ref-guide"},{title:"Discriminator",link:"/learn/openapi/discriminator"}]},{id:2,key:"arazzo",title:"Arazzo",description:"Learn how to use Arazzo to describe practical API workflows.",thumbnail:h,moreItems:"4 more topics",landingPage:"/learn/arazzo/what-is-arazzo",items:[{title:"What is Arazzo?",link:"/learn/arazzo/what-is-arazzo"},{title:"Getting Started with Arazzo",link:"/learn/arazzo/why-arazzo-matters"},{title:"Arazzo walkthrough",link:"/learn/arazzo/arazzo-walkthrough"},{title:"Best Practices for Arazzo Integration",link:"/learn/arazzo/arazzo-basics"}]},{id:3,key:"markdoc",title:"Markdoc",description:"Next-generation markup resources and detailed tag library.",thumbnail:c,moreItems:"11 more topics",landingPage:"/learn/markdoc",items:[{title:"What is Markdoc?",link:"/learn/markdoc"},{title:"Getting started with Markdoc",link:"/learn/markdoc/write-with-markdoc"},{title:"Markdoc benefits",link:"/learn/markdoc/evaluating-markdoc"},{title:"Table tag",link:"/learn/markdoc/tags/table"}]},{id:4,key:"yaml",title:"YAML",description:"Learn how to use YAML in your API documentation and configuration.",thumbnail:g,moreItems:"4 more topics",landingPage:"/learn/yaml",items:[{title:"What is YAML?",link:"/learn/yaml"},{title:"The basics of YAML",link:"/learn/yaml/scalars"},{title:"YAML or JSON",link:"/learn/yaml/yaml-or-json"},{title:"Troubleshooting YAML",link:"/learn/yaml/troubleshooting"}]}],a=document.getElementsByTagName("h3");for(let t=0;t<a.length;t++)a[t].getElementsByTagName("path")[0]?.setAttribute("d","M8.53906 2.625L7.91344 3.23444L11.2297 6.5625H2.41406V7.4375H11.2297L7.91344 10.7507L8.53906 11.375L12.9141 7L8.53906 2.625Z");return e.createElement(v,{columns:3,children:n.map((t,l)=>e.createElement(x,{key:l,title:`Learn ${t.title}`,image:t.thumbnail,to:t.landingPage,children:e.createElement(k,null,e.createElement(f,null,t.description),e.createElement(w,{onClick:i=>i.stopPropagation()},t.items.map((i,o)=>e.createElement("div",{key:o,style:{width:"100%"}},e.createElement(y,{key:o,to:i.link},e.createElement("div",null,e.createElement("img",{src:require("../images/ellipse.svg")}),e.createElement("p",null,i.title)),e.createElement("svg",{width:"22",height:"23",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("rect",{x:"0.664062",width:"22",height:"22",rx:"11",fill:"inherit"}),e.createElement("path",{d:"M12.5391 6.625L11.9134 7.23444L15.2297 10.5625H6.41406V11.4375H15.2297L11.9134 14.7507L12.5391 15.375L16.9141 11L12.5391 6.625Z",fill:"inherit"}))),e.createElement(u,null))),t.moreItems&&e.createElement(b,null,"and ",t.moreItems)))}))})},x=r(m)`
1
+ import*as e from"react";import r from"styled-components";import{Link as d}from"@redocly/theme";import{Card as p}from"@redocly/theme/markdoc/components/Cards/Card";import{Cards as c}from"@redocly/theme/markdoc/components/Cards/Cards";const E=({cards:l})=>{const o=document.getElementsByTagName("h3");for(let t=0;t<o.length;t++)o[t].getElementsByTagName("path")[0]?.setAttribute("d","M8.53906 2.625L7.91344 3.23444L11.2297 6.5625H2.41406V7.4375H11.2297L7.91344 10.7507L8.53906 11.375L12.9141 7L8.53906 2.625Z");return e.createElement(y,{columns:3,children:l.map((t,a)=>e.createElement(s,{key:a,title:`Learn ${t.title}`,image:t.thumbnail,to:t.landingPage,children:e.createElement(x,null,e.createElement(m,null,t.description),e.createElement(v,{onClick:i=>i.stopPropagation()},t.items.map((i,n)=>e.createElement("div",{key:n,style:{width:"100%"}},e.createElement(h,{key:n,to:i.link},e.createElement("div",null,e.createElement("img",{src:require("../images/ellipse.svg")}),e.createElement("p",null,i.title)),e.createElement("svg",{width:"22",height:"23",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("rect",{x:"0.664062",width:"22",height:"22",rx:"11",fill:"inherit"}),e.createElement("path",{d:"M12.5391 6.625L11.9134 7.23444L15.2297 10.5625H6.41406V11.4375H15.2297L11.9134 14.7507L12.5391 15.375L16.9141 11L12.5391 6.625Z",fill:"inherit"}))),e.createElement(g,null))),t.moreItems&&e.createElement(f,null,"and ",t.moreItems)))}))})},s=r(p)`
2
2
  max-width: 405px;
3
- `,f=r.p`
3
+ `,m=r.p`
4
4
  color: var(--text-color-primary);
5
5
  font-family: Inter;
6
6
  font-size: 16px;
@@ -14,15 +14,15 @@ import*as e from"react";import r from"styled-components";import{Link as s}from"@
14
14
  padding: 0 16px;
15
15
 
16
16
  margin: 0;
17
- `,k=r.div`
17
+ `,x=r.div`
18
18
  display: flex;
19
19
  flex-direction: column;
20
20
  gap: 12px;
21
- `,u=r.div`
21
+ `,g=r.div`
22
22
  margin: 2px 8px;
23
23
  height: 1px;
24
24
  background: var(--border-color-secondary);
25
- `,y=r(s)`
25
+ `,h=r(d)`
26
26
  border-radius: 6px;
27
27
  background: transparent;
28
28
  display: flex;
@@ -73,7 +73,7 @@ import*as e from"react";import r from"styled-components";import{Link as s}from"@
73
73
  transition: transform 0.3s ease-in-out;
74
74
  }
75
75
  }
76
- `,b=r.div`
76
+ `,f=r.div`
77
77
  display: flex;
78
78
  padding: 8px;
79
79
  align-items: center;
@@ -86,11 +86,11 @@ import*as e from"react";import r from"styled-components";import{Link as s}from"@
86
86
  font-size: 14px;
87
87
  font-weight: 400;
88
88
  line-height: 22px;
89
- `,w=r.div`
89
+ `,v=r.div`
90
90
  display: flex;
91
91
  flex-direction: column;
92
92
  padding: 0 8px 16px 8px;
93
- `,v=r(d)`
93
+ `,y=r(c)`
94
94
  --cards-gap: 24px;
95
95
  --card-content-gap: 8px;
96
96
  --card-padding: 16px 0 0 0;
@@ -129,4 +129,4 @@ import*as e from"react";import r from"styled-components";import{Link as s}from"@
129
129
  height: unset;
130
130
  }
131
131
  }
132
- `;export{C as CardsBlock};
132
+ `;export{E as CardsBlock};
@@ -1,8 +1,11 @@
1
1
  import React from 'react';
2
+ import { CardProps } from './components/CardsBlock';
2
3
  export declare const frontmatter: {
3
4
  seo: {
4
5
  title: string;
5
6
  };
6
7
  slug: string;
7
8
  };
8
- export default function (): React.JSX.Element;
9
+ export default function ({ cards }: {
10
+ cards: CardProps[];
11
+ }): React.JSX.Element;
@@ -1,8 +1,8 @@
1
- import e from"react";import o from"styled-components";import{Box as a}from"../../ui/Box";import{breakpoints as t}from"@redocly/theme/core/utils";import{TopLearnBlock as l,CardsBlock as m,BottomLearnBlock as p}from"./components";const h={seo:{title:"Learn"},slug:"/learn"};function b(){const[i,r]=e.useState(localStorage.getItem("colorSchema")||"light");return e.useEffect(()=>{const n=new MutationObserver(()=>{document.documentElement.classList.contains("dark")?r("dark"):r("light")});return n.observe(document.documentElement,{attributes:!0}),()=>{n.disconnect()}},[]),e.createElement(d,{backgroundColor:"var(--bg-color)",width:"100vw",height:"fit-content",position:"relative"},e.createElement(c,{src:i==="light"?require("./images/hero-img.svg"):require("./images/hero-img-dark.svg")}),e.createElement(l,null),e.createElement(m,null),e.createElement(p,null))}const c=o.img`
1
+ import e from"react";import n from"styled-components";import{Box as l}from"../../ui/Box";import{breakpoints as t}from"@redocly/theme/core/utils";import{TopLearnBlock as m,CardsBlock as p,BottomLearnBlock as c}from"./components";const b={seo:{title:"Learn"},slug:"/learn"};function w({cards:a}){const[i,r]=e.useState(localStorage.getItem("colorSchema")||"light");return e.useEffect(()=>{const o=new MutationObserver(()=>{document.documentElement.classList.contains("dark")?r("dark"):r("light")});return o.observe(document.documentElement,{attributes:!0}),()=>{o.disconnect()}},[]),e.createElement(s,{backgroundColor:"var(--bg-color)",width:"100vw",height:"fit-content",position:"relative"},e.createElement(d,{src:i==="light"?require("./images/hero-img.svg"):require("./images/hero-img-dark.svg")}),e.createElement(m,null),e.createElement(p,{cards:a}),e.createElement(c,null))}const d=n.img`
2
2
  position: absolute;
3
3
  max-width: 1384px;
4
4
  width: -webkit-fill-available;
5
- `,d=o(a)`
5
+ `,s=n(l)`
6
6
  display: flex;
7
7
  align-items: center;
8
8
  flex-direction: column;
@@ -23,4 +23,4 @@ import e from"react";import o from"styled-components";import{Box as a}from"../..
23
23
  gap: 64px;
24
24
  padding: 0 128px 64px 128px;
25
25
  }
26
- `;export{b as default,h as frontmatter};
26
+ `;export{w as default,b as frontmatter};
@@ -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.7",
3
+ "version": "0.1.9",
4
4
  "keywords": [],
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
@@ -11,7 +11,8 @@
11
11
  "test:vitest:watch": "vitest",
12
12
  "copy-images": "copyfiles -u 1 \"src/**/*.{png,svg,jpg,jpeg,gif,webp}\" dist",
13
13
  "dev": "tsc --watch",
14
- "test": "npm run test:vitest"
14
+ "test": "npm run test:vitest",
15
+ "changeset:publish": "changeset publish"
15
16
  },
16
17
  "exports": {
17
18
  "./*": "./dist/*"
@@ -51,6 +52,7 @@
51
52
  "styled-components": ">=5.3.11"
52
53
  },
53
54
  "devDependencies": {
55
+ "@changesets/cli": "^2.29.5",
54
56
  "@redocly/config": "^0.24.0",
55
57
  "@redocly/theme": "^0.53.0",
56
58
  "@shikijs/types": "3.4.0",