@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 +13 -1
- package/dist/components/Footer/FooterColumn.js +11 -11
- package/dist/components/Footer/FooterColumns.js +3 -3
- package/dist/components/Footer/FooterCopyright.js +1 -1
- package/dist/components/Menu/MenuItem.js +21 -21
- package/dist/components/Navbar/NavbarItem.js +1 -1
- package/dist/components/Navbar/NavbarMenu.js +1 -1
- package/dist/pages/careers/careers.page.js +1 -1
- package/dist/pages/learning-center/components/CardsBlock.d.ts +16 -1
- package/dist/pages/learning-center/components/CardsBlock.js +9 -9
- package/dist/pages/learning-center/learn.page.d.ts +4 -1
- package/dist/pages/learning-center/learn.page.js +3 -3
- package/dist/pages/security/security.page.js +1 -1
- package/package.json +4 -2
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
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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:
|
|
89
|
+
margin-right: ${({$iconsOnly:o})=>o?"0":"var(--footer-item-icon-margin-right)"};
|
|
90
90
|
}
|
|
91
|
-
`,g=
|
|
91
|
+
`,g=r.div`
|
|
92
92
|
display: flex;
|
|
93
93
|
flex-wrap: wrap;
|
|
94
94
|
justify-content: center;
|
|
95
|
-
flex-direction: ${
|
|
95
|
+
flex-direction: ${o=>o.$iconsOnly?"row":"column"};
|
|
96
96
|
|
|
97
|
-
${({$subscribeSection:
|
|
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=
|
|
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(
|
|
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
|
-
`,
|
|
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,
|
|
34
|
+
`;export{d as FooterColumns,i as FooterColumnsContainer,m as FooterRow};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
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
|
|
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=
|
|
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:
|
|
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) * ${
|
|
43
|
+
var(--menu-item-nested-offset) * ${r})
|
|
44
44
|
`};
|
|
45
45
|
border: 0.5px solid var(--border-color-primary);
|
|
46
46
|
}
|
|
47
|
-
`,I=
|
|
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:
|
|
60
|
+
padding-left: ${({withChevron:r,depth:e})=>`calc(
|
|
61
61
|
var(--menu-item-padding-horizontal) +
|
|
62
|
-
${
|
|
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:
|
|
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:
|
|
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=
|
|
117
|
+
`,T=n.div`
|
|
118
118
|
display: flex;
|
|
119
119
|
flex-direction: column;
|
|
120
120
|
flex-grow: 1;
|
|
121
|
-
`,ee=
|
|
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=
|
|
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=
|
|
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=
|
|
143
|
+
`,te=n(F)`
|
|
144
144
|
order: 1;
|
|
145
|
-
`,
|
|
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:
|
|
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
|
-
${
|
|
153
|
+
${r?"var(--menu-item-nested-offset) * "+r:"0px"})
|
|
154
154
|
`};
|
|
155
|
-
order: ${({linePosition:
|
|
156
|
-
`,R=
|
|
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=
|
|
160
|
+
`,D=n(q)`
|
|
161
161
|
margin-left: 0;
|
|
162
|
-
background-color: ${({color:
|
|
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
|
|
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(
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
17
|
+
`,x=r.div`
|
|
18
18
|
display: flex;
|
|
19
19
|
flex-direction: column;
|
|
20
20
|
gap: 12px;
|
|
21
|
-
`,
|
|
21
|
+
`,g=r.div`
|
|
22
22
|
margin: 2px 8px;
|
|
23
23
|
height: 1px;
|
|
24
24
|
background: var(--border-color-secondary);
|
|
25
|
-
`,
|
|
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
|
-
`,
|
|
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
|
-
`,
|
|
89
|
+
`,v=r.div`
|
|
90
90
|
display: flex;
|
|
91
91
|
flex-direction: column;
|
|
92
92
|
padding: 0 8px 16px 8px;
|
|
93
|
-
`,
|
|
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{
|
|
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 (
|
|
9
|
+
export default function ({ cards }: {
|
|
10
|
+
cards: CardProps[];
|
|
11
|
+
}): React.JSX.Element;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import e from"react";import
|
|
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
|
-
`,
|
|
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{
|
|
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
|
|
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.
|
|
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",
|