@redocly/marketing-pages 0.1.12 → 0.1.14
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/dist/pages/enterprise/components/RedoclyEnterprise.js +1 -1
- package/dist/pages/enterprise/components/SecurityAndCollaboration.js +3 -3
- package/dist/pages/pricing/components/PlansSection.js +7 -7
- package/dist/pages/pricing/pricingData/data.d.ts +3 -0
- package/dist/pages/pricing/pricingData/data.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import t from"react";import{TopPlanCard as o}from"../../../components/Cards/TopPlanCard";const
|
|
1
|
+
import t from"react";import{TopPlanCard as o}from"../../../components/Cards/TopPlanCard";const n=()=>{const e={title:"Elevate Your API Strategy with Redocly Enterprise",description:"Where security meets scalability. Designed for teams that prioritize protection and productivity.",label:"Enterprise",labelBackground:"linear-gradient(134.08deg, #207dff 0%, #9461ff 91.65%)",textTop:"Redocly Enterprise is more than just an API solution; it's a comprehensive platform designed to meet the complex needs of large organizations.",textBottom:"With AI-powered search, remote content capabilities, single sign-on (SSO), advanced security, and higher usage limits, Enterprise gives you everything in our Pro plan and more \u2014 so your API strategy can scale securely and efficiently."};return t.createElement(o,{title:e.title,description:e.description,label:e.label,labelBackground:e.labelBackground,textTop:e.textTop,textBottom:e.textBottom})};export{n as RedoclyEnterprise};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e from"react";import
|
|
1
|
+
import e from"react";import r from"styled-components";import{breakpoints as t}from"@redocly/theme/core/utils";import i from"../images/card-1.svg";import a from"../images/card-2.svg";import n from"../images/card-3.svg";import s from"../images/card-4.svg";import{PlanCards as m}from"../../../components/Cards/PlanCards";const y=()=>{const o=[{img:i,title:"Single Sign-On (SSO)",text:"Seamless integration with SAML2 or OIDC identity providers, ensuring secure and simplified access for your team."},{img:a,title:"Remote content",text:"Draw content from other Git repositories, URLs, or CI/CD processes with our remote content support. Managing updates just got a whole lot easier with several automation options."},{img:n,title:"AI Assistant",text:"Use AI to search your content. Create additional search facets. Better relevance for search results."},{img:s,title:"Content-Level RBAC",text:"Fine-grained Role-Based Access Control allows you to manage who can view, edit, or manage your API documentation and projects."}];return e.createElement(d,null,e.createElement(l,null,"Security and Collaboration at Its Core"),e.createElement(m,{cards:o}))},d=r.div`
|
|
2
2
|
padding: 64px 0;
|
|
3
3
|
@media screen and (min-width: ${t.medium}) {
|
|
4
4
|
padding: 96px 0 96px 48px;
|
|
@@ -6,7 +6,7 @@ import e from"react";import i from"styled-components";import{breakpoints as t}fr
|
|
|
6
6
|
@media screen and (min-width: ${t.large}) {
|
|
7
7
|
padding: 124px 0 124px 64px;
|
|
8
8
|
}
|
|
9
|
-
`,l=
|
|
9
|
+
`,l=r.p`
|
|
10
10
|
max-width: 560px;
|
|
11
11
|
font-family: Red Hat Display;
|
|
12
12
|
font-size: 32px;
|
|
@@ -20,4 +20,4 @@ import e from"react";import i from"styled-components";import{breakpoints as t}fr
|
|
|
20
20
|
line-height: 50px;
|
|
21
21
|
margin: 0 0 64px 0;
|
|
22
22
|
}
|
|
23
|
-
`;export{
|
|
23
|
+
`;export{y as SecurityAndCollaboration};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import*as t from"react";import n from"styled-components";import{breakpoints as l}from"@redocly/theme/core/utils";import{Tooltip as P}from"@redocly/theme/components/Tooltip/Tooltip";import{Link as M}from"@redocly/theme/components/Link/Link";import{periodsList as S,seatIntervals as f,seatProPlanIntervals as k}from"../pricingData/data";import{Period as y,Plan as v,Product as
|
|
1
|
+
import*as t from"react";import n from"styled-components";import{breakpoints as l}from"@redocly/theme/core/utils";import{Tooltip as P}from"@redocly/theme/components/Tooltip/Tooltip";import{Link as M}from"@redocly/theme/components/Link/Link";import{periodsList as S,seatIntervals as f,seatProPlanIntervals as k}from"../pricingData/data";import{Period as y,Plan as v,Product as g}from"../types/types";import{choosePeriod as T}from"../calculations/choosePeriod";import{plansList as L}from"../pricingData/data";import{PlanCard as z}from"./PlanCard";import{Switcher as O}from"../../calculator/components/Switcher";import{chooseProduct as N}from"../calculations/chooseProduct";import{ActiveCheckmark as A}from"../images/ActiveCheckmark";const D=(e,o,a,m)=>{let s=0;const p=!m||isNaN(m)||m<1?1:m;return o===v.PRO?a===y.YEAR?s=k[e][a]/12:s=k[e][a]:(o===v.ENTERPRISE&&(a===y.YEAR?s=f[e][a][f[e][a].findIndex(c=>p<=c.tierEnd&&p>=c.tierStart)].price/12:s=f[e][a][f[e][a].findIndex(c=>p<=c.tierEnd&&p>=c.tierStart)].price),s)},fe=({setCalculatorProperties:e,period:o,plan:a,amountSelectedProjects:m,onChange:s,onFocus:p,onBlur:c,seats:h,inputValue:b,calculatorProperties:r})=>{const E=[{name:g.REALM,subName:": All combined",gradient:["#1677FF","#08C7E0"]},{name:g.REDOC,color:"#1677FF",activeColor:"#E5F1FF",descriptionProperties:[{title:"OpenAPI",tooltip:"Render OpenAPI docs with the beauty and function of Redoc. Try it panel with Replay. Code samples generated automatically in a dozen languages."},{title:"GraphQL",tooltip:"Redoc renders GraphQL SDL files with a consistent design to OpenAPI."},{title:"AsyncAPI",tooltip:"AsyncAPI docs rendered natively\u2014just drop in your spec file."},{title:"SOAP",tooltip:"Redoc renders SOAP WSDL files with an extension. Functional but not beautiful. SOAP is outdated folks, do you really want us spending more time there?"},{title:"Mock servers",tooltip:"Mock servers are generated automatically for every OpenAPI and hosted at the same custom domain as your website."},{title:"Lint",tooltip:"Make sure API definitions are correct and enforce from a variety of rules or your own configurable rules."}]},{name:g.REVEL,color:"#735CFF",activeColor:"#EDEBFF",descriptionProperties:[{title:"Markdown docs",tooltip:"Render Markdown and Markdoc docs. You can also use our built-in Markdoc tags and create your own."},{title:"React pages",tooltip:"Render tsx and jsx files perfect for landing pages or other fancy pages. This actual web page is one of them."},{title:"Component ejections",tooltip:"Eject components (React code) to the file system in a folder where front end developers can wrap or tweak the components to meet your vision."},{title:"Localization",tooltip:"Translate your content and built-in website tokens."},{title:"Multi-product support",tooltip:"Segment your website by product, if you desire, and have separate configurations and content per product."}]},{name:g.REEF,color:"#A45CFF",activeColor:"#F1E5FF",descriptionProperties:[{title:"Catalog",linkTo:"/reef",underlined:!0,tooltip:"Catalog all the things, including your APIs. Filter by metadata."},{title:"API registry",tooltip:"This registry is automated. It recognizes APIs as they flow into the project and add to the registry automatically."},{title:"Scorecard for governance",tooltip:"Lint your APIs? This allows you to run multiple rulesets against each API. It collates the results into an interactive report some managers cannot live without."},{title:"API functions",tooltip:"Build custom backend logic (auth, data fetching, forms, and more) right inside your docs with API functions."},{title:"Markdown docs",tooltip:"Render Markdown and Markdoc docs. You can also use our built-in Markdoc tags and create your own."},{title:"Dynamic client registration",tooltip:"Want to allow customers to register a client/app, get API credentials, and request access to various API products or scopes?"}]}];return t.createElement(ie,null,t.createElement(j,{id:"selected-products"},E.map((i,x)=>t.createElement(Y,{key:x,isLastElement:E.length-1===x,isRealm:i.name===g.REALM},t.createElement(G,null,t.createElement("div",null,t.createElement(O,{height:"22px",transform:"translateX(18px)",width:"40px",right:"0",top:"0",activeColor:i.gradient?`linear-gradient(90deg, ${i.gradient[0]} 0%, ${i.gradient[1]} 100%)`:i.color,isActive:r.coreProducts.includes(i.name)||r.coreProducts.length===3,onClick:()=>N(e,i.name,r.coreProducts)})),t.createElement("p",null,i.name,i.subName&&t.createElement("span",null,i.subName))),i.descriptionProperties&&i.descriptionProperties.map((d,u)=>t.createElement(Q,{key:u},d.linkTo?t.createElement(B,{to:d.linkTo,underlined:d.underlined.toString()},t.createElement(I,null,t.createElement($,{isFirst:u===0,isActive:r.coreProducts.includes(i.name)||r.coreProducts.length===3,activeColor:i.color}),t.createElement(C,{isActive:r.coreProducts.includes(i.name)||r.coreProducts.length===3,activeColor:i.activeColor},r.coreProducts.includes(i.name)||r.coreProducts.length===3?t.createElement(A,{fill:i.color}):t.createElement(R,null))),d.title,t.createElement(w,{src:require("../images/external.svg")})):t.createElement(q,{underlined:d.underlined},t.createElement(I,null,t.createElement($,{isFirst:u===0,isActive:r.coreProducts.includes(i.name)||r.coreProducts.length===3,activeColor:i.color}),t.createElement(C,{isActive:r.coreProducts.includes(i.name)||r.coreProducts.length===3,activeColor:i.activeColor},r.coreProducts.includes(i.name)||r.coreProducts.length===3?t.createElement(A,{fill:i.color}):t.createElement(R,null))),t.createElement("p",null,d.title)),d.tooltip&&t.createElement(H,{tip:d.tooltip,width:"fit-content",children:t.createElement("img",{src:require("../images/tooltip.svg"),style:{maxWidth:"14px",maxHeight:"14px"}})})))))),t.createElement(te,null,t.createElement(ee,null,t.createElement(Z,null,t.createElement("p",null,"Seats"),t.createElement(K,null,t.createElement(J,{placeholder:"40",pattern:"\\d+(\\.\\d+)?",value:b!==void 0?b:h,onChange:s,onFocus:p,onBlur:c}),t.createElement(P,{tip:"Seats count for users who have the OWNER, MEMBER, or COMMITTER roles. Additional roles such as BILLING and VIEWER are users that do not count towards your seat limits.",children:t.createElement("img",{src:require("../images/tooltip.svg"),style:{maxWidth:"14px"}})}))),t.createElement(U,null,t.createElement(_,null,S.map(i=>t.createElement(X,{key:i,onClick:()=>T(e,i,a),selected:o===i},t.createElement(F,null,i,"ly")))),o===y.MONTH&&t.createElement(W,{src:require("../images/save-one-month-badge.svg")}))),t.createElement(V,null,L.map((i,x)=>t.createElement(z,{key:x,plan:i,period:o,price:D(m,i.name,o,h),isCustom:i.name===v.ENTERPRISE_PLUS||h>500})))))},W=n.img`
|
|
2
2
|
position: absolute;
|
|
3
3
|
right: 9px;
|
|
4
4
|
margin-bottom: 5px;
|
|
@@ -14,14 +14,14 @@ import*as t from"react";import n from"styled-components";import{breakpoints as l
|
|
|
14
14
|
margin-left: 8px;
|
|
15
15
|
margin-top: 6px;
|
|
16
16
|
align-self: center;
|
|
17
|
-
|
|
17
|
+
`,I=n.div`
|
|
18
18
|
display: flex;
|
|
19
19
|
flex-direction: column;
|
|
20
20
|
align-items: center;
|
|
21
21
|
justify-content: center;
|
|
22
22
|
margin-right: 12px;
|
|
23
23
|
height: 100%;
|
|
24
|
-
|
|
24
|
+
`,$=n.div`
|
|
25
25
|
background: ${({isActive:e,activeColor:o})=>e?o:"var(--border-color-secondary)"};
|
|
26
26
|
opacity: ${({isActive:e})=>e?"0.44":"1"};
|
|
27
27
|
width: 1px;
|
|
@@ -29,7 +29,7 @@ import*as t from"react";import n from"styled-components";import{breakpoints as l
|
|
|
29
29
|
margin-top: ${({isFirst:e})=>e&&"-4px"};
|
|
30
30
|
min-height: 8px;
|
|
31
31
|
max-height: 40px;
|
|
32
|
-
`,
|
|
32
|
+
`,C=n.div`
|
|
33
33
|
width: 40px;
|
|
34
34
|
height: 20px;
|
|
35
35
|
min-height: 20px;
|
|
@@ -44,7 +44,7 @@ import*as t from"react";import n from"styled-components";import{breakpoints as l
|
|
|
44
44
|
height: 4px;
|
|
45
45
|
border-radius: 50%;
|
|
46
46
|
background-color: var(--color-warm-grey-6);
|
|
47
|
-
`,
|
|
47
|
+
`,B=n(M)`
|
|
48
48
|
text-decoration: ${({underlined:e})=>e&&"underline dotted"};
|
|
49
49
|
color: var(--text-color-secondary);
|
|
50
50
|
align-items: flex-end;
|
|
@@ -64,7 +64,7 @@ import*as t from"react";import n from"styled-components";import{breakpoints as l
|
|
|
64
64
|
display: block;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
`,
|
|
67
|
+
`,j=n.div`
|
|
68
68
|
display: flex;
|
|
69
69
|
flex-direction: column;
|
|
70
70
|
width: 100%;
|
|
@@ -85,7 +85,7 @@ import*as t from"react";import n from"styled-components";import{breakpoints as l
|
|
|
85
85
|
padding: 16px 24px 0 0;
|
|
86
86
|
border-bottom: none;
|
|
87
87
|
}
|
|
88
|
-
`,
|
|
88
|
+
`,q=n.div`
|
|
89
89
|
display: flex;
|
|
90
90
|
align-items: flex-end;
|
|
91
91
|
color: var(--text-color-secondary);
|
|
@@ -27,6 +27,7 @@ export declare const plansList: ({
|
|
|
27
27
|
remoteContent?: undefined;
|
|
28
28
|
aiSearch?: undefined;
|
|
29
29
|
typesense?: undefined;
|
|
30
|
+
analytics?: undefined;
|
|
30
31
|
residencyOptions?: undefined;
|
|
31
32
|
salesAssistance?: undefined;
|
|
32
33
|
forms?: undefined;
|
|
@@ -46,6 +47,7 @@ export declare const plansList: ({
|
|
|
46
47
|
remoteContent: boolean;
|
|
47
48
|
aiSearch: boolean;
|
|
48
49
|
typesense: boolean;
|
|
50
|
+
analytics: boolean;
|
|
49
51
|
reunite?: undefined;
|
|
50
52
|
hasHosting?: undefined;
|
|
51
53
|
projects?: undefined;
|
|
@@ -79,6 +81,7 @@ export declare const plansList: ({
|
|
|
79
81
|
remoteContent?: undefined;
|
|
80
82
|
aiSearch?: undefined;
|
|
81
83
|
typesense?: undefined;
|
|
84
|
+
analytics?: undefined;
|
|
82
85
|
};
|
|
83
86
|
})[];
|
|
84
87
|
export declare const periodsList: Period[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Period as r,Plan as o,Product as a,ProductBundle as i}from"../types/types";const l=[{title:a.REALM,description:"All combined (Redoc + Revel + Reef)",bgColor:"linear-gradient(90deg, rgba(22, 119, 255, 0.08) 0%, rgba(8, 199, 224, 0.08) 100%)",titleColor:"linear-gradient(90deg, #1677FF 0%, #08C7E0 100%)"},{title:a.REDOC,description:"Streamline API development with support for OpenAPI, GraphQL, and AsyncAPI, with mock servers and advanced linting.",bgColor:"#E5F1FF",titleColor:"#1677FF",features:["OpenAPI","GraphQL","AsyncAPI","Mock servers","Lint"]},{title:a.REVEL,description:"Showcase your APIs. Add guides. Localize. Add contextual docs. Landing pages. Multi-product support.",bgColor:"#EDEBFF",titleColor:"#735CFF",features:["Markdown docs","React pages","Component ejections","Localization","Multi-product support"]},{title:a.REEF,description:"API catalog and registry are great for internal use cases. Scorecard for governance.
|
|
1
|
+
import{Period as r,Plan as o,Product as a,ProductBundle as i}from"../types/types";const l=[{title:a.REALM,description:"All combined (Redoc + Revel + Reef)",bgColor:"linear-gradient(90deg, rgba(22, 119, 255, 0.08) 0%, rgba(8, 199, 224, 0.08) 100%)",titleColor:"linear-gradient(90deg, #1677FF 0%, #08C7E0 100%)"},{title:a.REDOC,description:"Streamline API development with support for OpenAPI, GraphQL, and AsyncAPI, with mock servers and advanced linting.",bgColor:"#E5F1FF",titleColor:"#1677FF",features:["OpenAPI","GraphQL","AsyncAPI","Mock servers","Lint"]},{title:a.REVEL,description:"Showcase your APIs. Add guides. Localize. Add contextual docs. Landing pages. Multi-product support.",bgColor:"#EDEBFF",titleColor:"#735CFF",features:["Markdown docs","React pages","Component ejections","Localization","Multi-product support"]},{title:a.REEF,description:"API catalog and registry are great for internal use cases. Scorecard for governance. API functions for custom integration capabilities.",bgColor:"#F1E5FF",titleColor:"#A45CFF",features:["API catalog","API registry","Scorecard for governance","API functions","Markdown docs","Dynamic client registration"]}],d=[{property:"reunite",name:"Reunite",tooltip:"Reunite is a full collaboration suite with Git integration, editor, visual reviews, and more."},{property:"hasHosting",name:"Custom domain hosting",tooltip:"Host your project on your custom domain"},{property:"projects",name:"Project",tooltip:"The number of projects included under this plan. Extra available for USD $49/month."},{property:"pages",name:"Pages",tooltip:"Total number of pages included across all your projects. Extra available for USD $0.12/month."},{property:"SSO",name:"SSO",tooltip:"Single Sign-On integration for streamlined and secure login"},{property:"guestSSO",name:"Guest SSO",tooltip:"Single Sign-On integration for external guest login"},{property:"RBAC",name:"RBAC",tooltip:"Role-Based Access Control to manage user permissions"},{property:"residencyOptions",name:"Data residency options",tooltip:"Choose where your data is stored to comply with regional regulations"},{property:"IPNetworkRestrictions",name:"IP network restrictions and more",tooltip:"Set IP restrictions to enhance security and control access"},{property:"salesAssistance",name:"Sales-assistance",tooltip:"Get support from our sales team for finding the best solutions for your organization"},{property:"forms",name:"Procurement forms",tooltip:"Access and submit necessary procurement documentation"},{property:"securityQuestionnaires",name:"Security questionnaires",tooltip:"Receive and complete security questionnaires to ensure compliance"},{property:"payByInvoice",name:"Pay-by-invoice / PO process",tooltip:"Flexible payment options including invoices and purchase orders"},{property:"reviews",name:"Legal reviews",tooltip:"Get assistance with legal reviews and compliance checks"},{property:"singleTenant",name:"Single-tenant hosting options",tooltip:"Opt for dedicated hosting for enhanced security and performance"},{property:"premiumSupport",name:"Premium support and professional services options",tooltip:"Access priority support and professional services for your projects"},{property:"remoteContent",name:"Remote content",tooltip:"Remote content allows you to automate sourcing content from a remote source. This is different from sourcing the entire project repository. Remote content can be sourced from Git repos, CICD push command, or a remote URL."},{property:"aiSearch",name:"AI search",tooltip:"Use AI to search your content"},{property:"typesense",name:"Typesense search",tooltip:"Use Typesense to search your content. Create additional search facets. Better relevance for search results."},{property:"apiFunctions",name:"API functions",tooltip:"Custom API endpoints for dynamic and server-side logic"},{property:"analytics",name:"Analytics",tooltip:"Get a clear picture of what users see and search for\u2014page views, search trends, and AI-powered query details"}],u=[{name:o.PRO,features:{reunite:!0,hasHosting:!0,projects:1,pages:100}},{name:o.ENTERPRISE,features:{pages:500,SSO:!0,guestSSO:!0,RBAC:!0,remoteContent:!0,aiSearch:!0,typesense:!0,analytics:!0}},{name:o.ENTERPRISE_PLUS,features:{residencyOptions:!0,salesAssistance:!0,forms:!0,securityQuestionnaires:!0,payByInvoice:!0,reviews:!0,singleTenant:!0,premiumSupport:!0}}],m=[r.MONTH,r.YEAR],n=[{tierStart:1,tierEnd:20},{tierStart:21,tierEnd:50},{tierStart:51,tierEnd:100},{tierStart:101,tierEnd:250},{tierStart:251,tierEnd:500},{tierStart:501,tierEnd:1e3},{tierStart:1001,tierEnd:1/0}],E={[i.ONE]:{[r.MONTH]:n.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[24,21.6,19.2,16.8,15.6,14.4,13.2][t]})),[r.YEAR]:n.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[264,237.6,211.2,184.8,171.6,158.4,145.2][t]}))},[i.TWO]:{[r.MONTH]:n.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[48,43.2,38.4,33.6,31.2,28.8,26.4][t]})),[r.YEAR]:n.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[528,475.2,422.4,369.6,343.2,316.8,290.4][t]}))},[i.REALM]:{[r.MONTH]:n.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[66,59.4,52.8,46.2,42.9,39.6,36.3][t]})),[r.YEAR]:n.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[708,653.4,580.8,508.2,471.9,435.6,399.3][t]}))}},S={[i.ONE]:{[r.MONTH]:10,[r.YEAR]:108},[i.TWO]:{[r.MONTH]:20,[r.YEAR]:216},[i.REALM]:{[r.MONTH]:28,[r.YEAR]:300}},s=[{tierStart:1,tierEnd:500},{tierStart:501,tierEnd:1/0}],p=[{tierStart:1,tierEnd:100},{tierStart:101,tierEnd:1/0}],y={[o.PRO]:{[r.MONTH]:p.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[0,.12][t]})),[r.YEAR]:p.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[0,1.44][t]}))},[o.ENTERPRISE]:{[r.MONTH]:s.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[0,.12][t]})),[r.YEAR]:s.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[0,1.44][t]}))},[o.ENTERPRISE_PLUS]:{[r.MONTH]:s.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[0,.12][t]})),[r.YEAR]:s.map((e,t)=>({tierStart:e.tierStart,tierEnd:e.tierEnd,price:[0,1.44][t]}))}},g=49,f={[o.PRO]:1,[o.ENTERPRISE]:1,[o.ENTERPRISE_PLUS]:1};export{d as featuresList,y as pageIntervals,m as periodsList,u as plansList,g as pricePerProject,l as productItems,E as seatIntervals,S as seatProPlanIntervals,f as startNumOfProjectPerPlan};
|