diff --git a/.moon/tasks.yml b/.moon/tasks.yml
index bb81e170..f30f61f3 100644
--- a/.moon/tasks.yml
+++ b/.moon/tasks.yml
@@ -19,12 +19,25 @@ tasks:
outputStyle: 'stream'
runDepsInParallel: false
+ clean.dist:
+ command: rm -rf dist
+ options:
+ cache: false
+
compile:
- command: rm -rf dist && pnpm exec tsc --project tsconfig.json && pnpm exec tsc --project tsconfig.json --outDir dist/es --module esnext --target esnext
+ command: tsc --project tsconfig.json --outDir dist/es --module esnext --target esnext
inputs:
- src
deps:
- ~:tsconfig.link
+ - ~:compile.cjs
+ options:
+ runDepsInParallel: false
+
+ compile.cjs:
+ command: tsc --project tsconfig.json
+ options:
+ cache: false
# FIXME: since @jsx-email/components uses workspace deps now, we'll need a script that recognizes
# it needs to be updated and manually commits to update the package using versioner
diff --git a/.moon/workspace.yml b/.moon/workspace.yml
index 1d8626ae..f5c8da32 100644
--- a/.moon/workspace.yml
+++ b/.moon/workspace.yml
@@ -2,8 +2,8 @@
$schema: 'https://moonrepo.dev/schemas/workspace.json'
projects:
+ - 'apps/*'
- 'packages/*'
- - deprecated/react-email
- '.'
vcs:
diff --git a/apps/demo/README.md b/apps/demo/README.md
index eb7a6a7b..2d12575d 100644
--- a/apps/demo/README.md
+++ b/apps/demo/README.md
@@ -27,7 +27,7 @@ $ moon run cli:build
To start up the preview server locally:
```console
-$ pnpm dev
+$ moon run demo:dev
```
Open up the preview server [http://localhost:55420/](http://localhost:55420/)
\ No newline at end of file
diff --git a/apps/demo/emails/airbnb-review.tsx b/apps/demo/emails/airbnb-review.tsx
index 3b0617f7..3b86e428 100644
--- a/apps/demo/emails/airbnb-review.tsx
+++ b/apps/demo/emails/airbnb-review.tsx
@@ -10,7 +10,7 @@ import {
Preview,
Row,
Section,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -20,14 +20,12 @@ interface AirbnbReviewEmailProps {
reviewText?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const AirbnbReviewEmail = ({
authorName,
authorImage,
- reviewText,
+ reviewText
}: AirbnbReviewEmailProps) => {
const previewText = `Read ${authorName}'s review`;
@@ -40,21 +38,10 @@ export const AirbnbReviewEmail = ({
-
+
-
+
@@ -65,9 +52,8 @@ export const AirbnbReviewEmail = ({
’s review to your Airbnb profile.
- While it’s too late to write a review of your own, you can
- send your feedback to {authorName} using your Airbnb message
- thread.
+ While it’s too late to write a review of your own, you can send your feedback to{' '}
+ {authorName} using your Airbnb message thread.
@@ -80,19 +66,14 @@ export const AirbnbReviewEmail = ({
-
- Common questions
-
+ Common questions
How do reviews work?
-
+
How do star ratings work?
@@ -102,9 +83,7 @@ export const AirbnbReviewEmail = ({
-
- Airbnb, Inc., 888 Brannan St, San Francisco, CA 94103
-
+ Airbnb, Inc., 888 Brannan St, San Francisco, CA 94103
Report unsafe behavior
@@ -123,7 +102,7 @@ AirbnbReviewEmail.PreviewProps = {
reviewText: `“Zeno was a great guest! Easy communication, the apartment was left
in great condition, very polite, and respectful of all house rules.
He’s welcome back anytime and would easily recommend him to any
- host!”`,
+ host!”`
} as AirbnbReviewEmailProps;
export default AirbnbReviewEmail;
@@ -131,39 +110,39 @@ export default AirbnbReviewEmail;
const main = {
backgroundColor: '#ffffff',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const container = {
margin: '0 auto',
padding: '20px 0 48px',
- width: '580px',
+ width: '580px'
};
const userImage = {
margin: '0 auto',
marginBottom: '16px',
- borderRadius: '50%',
+ borderRadius: '50%'
};
const heading = {
fontSize: '32px',
lineHeight: '1.3',
fontWeight: '700',
- color: '#484848',
+ color: '#484848'
};
const paragraph = {
fontSize: '18px',
lineHeight: '1.4',
- color: '#484848',
+ color: '#484848'
};
const review = {
...paragraph,
padding: '24px',
backgroundColor: '#f2f3f3',
- borderRadius: '4px',
+ borderRadius: '4px'
};
const button = {
@@ -174,28 +153,28 @@ const button = {
textDecoration: 'none',
textAlign: 'center' as const,
display: 'block',
- width: '100%',
+ width: '100%'
};
const link = {
...paragraph,
color: '#ff5a5f',
- display: 'block',
+ display: 'block'
};
const reportLink = {
fontSize: '14px',
color: '#9ca299',
- textDecoration: 'underline',
+ textDecoration: 'underline'
};
const hr = {
borderColor: '#cccccc',
- margin: '20px 0',
+ margin: '20px 0'
};
const footer = {
color: '#9ca299',
fontSize: '14px',
- marginBottom: '10px',
+ marginBottom: '10px'
};
diff --git a/apps/demo/emails/amazon-review.tsx b/apps/demo/emails/amazon-review.tsx
index 5e5af929..b2530d6f 100644
--- a/apps/demo/emails/amazon-review.tsx
+++ b/apps/demo/emails/amazon-review.tsx
@@ -10,9 +10,9 @@ import {
Preview,
Row,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
interface AmazonReviewEmailProps {
titleText?: string;
@@ -21,19 +21,17 @@ interface AmazonReviewEmailProps {
socialMediaIcons?: string[];
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const AmazonReviewEmail = ({
- titleText = "Your opinion is important!",
- reviewText = "Zeno Rocha, do you have a moment? We would like to know if everything went well for you. Take a moment to review your most recent purchases.",
+ titleText = 'Your opinion is important!',
+ reviewText = 'Zeno Rocha, do you have a moment? We would like to know if everything went well for you. Take a moment to review your most recent purchases.',
reviwStars = Array(5).fill(`${baseUrl}/static/amazon-rating.gif`),
socialMediaIcons = [
`${baseUrl}/static/amazon-instagram.jpg`,
`${baseUrl}/static/amazon-facebook.jpg`,
- `${baseUrl}/static/amazon-twitter.jpg`,
- ],
+ `${baseUrl}/static/amazon-twitter.jpg`
+ ]
}: AmazonReviewEmailProps) => {
return (
@@ -78,9 +76,7 @@ export const AmazonReviewEmail = ({
-
- 14 Habits of Highly Productive Developers (English Edition)
-
+ 14 Habits of Highly Productive Developers (English Edition)
Start with rating this product
{reviwStars.map((star) => (
@@ -99,14 +95,14 @@ export const AmazonReviewEmail = ({
- How about evaluating a previous purchase?{" "}
+ How about evaluating a previous purchase?{' '}
View more
-
+
@@ -136,24 +132,21 @@ export const AmazonReviewEmail = ({
- Customer reviews must adhere to the{" "}
+ Customer reviews must adhere to the{' '}
Community Guidelines .
- We hope this message was helpful to you. However, if you prefer
- not to receive this type of communication from{" "}
- Amazon.com at{" "}
- zenorocha@gmail.com ,{" "}
+ We hope this message was helpful to you. However, if you prefer not to receive this
+ type of communication from Amazon.com at{' '}
+ zenorocha@gmail.com ,{' '}
click here .
- Please note that product prices and availability are subject to
- change.
+ Please note that product prices and availability are subject to change.
- © 2023 Amazon.com, Inc. or its affiliates. Amazon and all
- associated marks are trademarks of Amazon.com, Inc. or its
- affiliates.
+ © 2023 Amazon.com, Inc. or its affiliates. Amazon and all associated marks are
+ trademarks of Amazon.com, Inc. or its affiliates.
Reference: 706784740
@@ -167,70 +160,70 @@ export const AmazonReviewEmail = ({
export default AmazonReviewEmail;
const main = {
- fontFamily: "Ember,Helvetica,Arial,sans-seri",
- backgroundColor: "#ffffff",
+ fontFamily: 'Ember,Helvetica,Arial,sans-seri',
+ backgroundColor: '#ffffff'
};
const container = {
- borderTop: "4px solid #FF9900",
- margin: "0 auto",
- padding: "20px",
- width: "640px",
+ borderTop: '4px solid #FF9900',
+ margin: '0 auto',
+ padding: '20px',
+ width: '640px'
};
const title = {
- color: "#232f3e",
- fontSize: "36px",
- lineHeight: "38px",
- fontWeight: "400",
- margin: "20px 0",
+ color: '#232f3e',
+ fontSize: '36px',
+ lineHeight: '38px',
+ fontWeight: '400',
+ margin: '20px 0'
};
const ratingContent = {
- paddingLeft: "30px",
+ paddingLeft: '30px'
};
const rating = {
- display: "inline-block",
+ display: 'inline-block'
};
const previewPurchase = {
- background: "#008296",
- color: "#ffffff",
- padding: "8px 0",
+ background: '#008296',
+ color: '#ffffff',
+ padding: '8px 0'
};
const previewPurchaseLink = {
- color: "#ffffff",
- textDecoration: "underline",
- cursor: "pointer",
+ color: '#ffffff',
+ textDecoration: 'underline',
+ cursor: 'pointer'
};
const socialMedia = {
- display: "inline-block",
- marginLeft: "10px",
+ display: 'inline-block',
+ marginLeft: '10px'
};
const communityLink = {
- color: "#666666",
- textDecoration: "underline",
- cursor: "pointer",
+ color: '#666666',
+ textDecoration: 'underline',
+ cursor: 'pointer'
};
const clickHereLink = {
- color: "#999999",
- textDecoration: "underline",
- cursor: "pointer",
+ color: '#999999',
+ textDecoration: 'underline',
+ cursor: 'pointer'
};
const urlLink = {
- color: "#1155cc",
- textDecoration: "underline",
- cursor: "pointer",
+ color: '#1155cc',
+ textDecoration: 'underline',
+ cursor: 'pointer'
};
const footerText = {
- fontSize: "10px",
- color: "#666666",
- margin: "8px 0",
+ fontSize: '10px',
+ color: '#666666',
+ margin: '8px 0'
};
diff --git a/apps/demo/emails/apple-receipt.tsx b/apps/demo/emails/apple-receipt.tsx
index 5cfe464d..db70b011 100644
--- a/apps/demo/emails/apple-receipt.tsx
+++ b/apps/demo/emails/apple-receipt.tsx
@@ -10,13 +10,11 @@ import {
Preview,
Row,
Section,
- Text,
-} from'@jsx-email/components';
-import * as React from "react";
+ Text
+} from '@jsx-email/components';
+import * as React from 'react';
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const AppleReceiptEmail = () => (
@@ -44,10 +42,8 @@ export const AppleReceiptEmail = () => (
Save 3% on all your Apple purchases with Apple Card.
- 1 {" "}
-
- Apply and use in minutes
-
+ 1 {' '}
+ Apply and use in minutes
2
@@ -61,8 +57,8 @@ export const AppleReceiptEmail = () => (
zeno.rocha@gmail.com
@@ -83,8 +79,8 @@ export const AppleReceiptEmail = () => (
ML4F5L8522
@@ -99,9 +95,7 @@ export const AppleReceiptEmail = () => (
BILLED TO
-
- Visa .... 7461 (Apple Pay)
-
+ Visa .... 7461 (Apple Pay)
Zeno Rocha
2125 Chestnut St
San Francisco, CA 94123
@@ -114,7 +108,7 @@ export const AppleReceiptEmail = () => (
-
+
(
style={productIcon}
/>
-
+
HBO Max: Stream TV & Movies
HBO Max Ad-Free (Monthly)
Renews Aug 20, 2023
@@ -202,61 +196,53 @@ export const AppleReceiptEmail = () => (
- 1. 3% savings is earned as Daily Cash and is transferred to your Apple
- Cash card when transactions post to your Apple Card account. If you do
- not have an Apple Cash card, Daily Cash can be applied by you as a
- credit on your statement balance. 3% is the total amount of Daily Cash
- earned for these purchases. See the Apple Card Customer Agreement for
- more details on Daily Cash and qualifying transactions.
+ 1. 3% savings is earned as Daily Cash and is transferred to your Apple Cash card when
+ transactions post to your Apple Card account. If you do not have an Apple Cash card, Daily
+ Cash can be applied by you as a credit on your statement balance. 3% is the total amount
+ of Daily Cash earned for these purchases. See the Apple Card Customer Agreement for more
+ details on Daily Cash and qualifying transactions.
2. Subject to credit approval.
- To access and use all the features of Apple Card, you must add Apple
- Card to Wallet on an iPhone or iPad with iOS or iPadOS 13.2 or later.
- Update to the latest version of iOS or iPadOS by going to Settings
- > General > Software Update. Tap Download and Install.
-
-
- Available for qualifying applicants in the United States.
+ To access and use all the features of Apple Card, you must add Apple Card to Wallet on an
+ iPhone or iPad with iOS or iPadOS 13.2 or later. Update to the latest version of iOS or
+ iPadOS by going to Settings > General > Software Update. Tap Download and Install.
+ Available for qualifying applicants in the United States.
Apple Card is issued by Goldman Sachs Bank USA, Salt Lake City Branch.
- If you reside in the US territories, please call Goldman Sachs at
- 877-255-5923 with questions about Apple Card.
+ If you reside in the US territories, please call Goldman Sachs at 877-255-5923 with
+ questions about Apple Card.
Privacy: We use a
- {" "}
- Subscriber ID{" "}
+ {' '}
+ Subscriber ID{' '}
to provide reports to developers.
Get help with subscriptions and purchases.
-
+
Visit Apple Support.
- Learn how to{" "}
+ Learn how to{' '}
manage your password preferences
- {" "}
+ {' '}
for iTunes, Apple Books, and App Store purchases.
- {" "}
- You have the option to stop receiving email receipts for your
- subscription renewals. If you have opted out, you can still view your
- receipts in your account under Purchase History. To manage receipts or
- to opt in again, go to{" "}
+ {' '}
+ You have the option to stop receiving email receipts for your subscription renewals. If
+ you have opted out, you can still view your receipts in your account under Purchase
+ History. To manage receipts or to opt in again, go to{' '}
Account Settings.
@@ -276,18 +262,12 @@ export const AppleReceiptEmail = () => (
Account Settings
- {" "}
- •{" "}
-
- Terms of Sale
- {" "}
- •{" "}
-
- Privacy Policy{" "}
-
+ {' '}
+ • Terms of Sale •{' '}
+ Privacy Policy
- Copyright © 2023 Apple Inc. {" "}
+ Copyright © 2023 Apple Inc. {' '}
All rights reserved
@@ -299,215 +279,215 @@ export default AppleReceiptEmail;
const main = {
fontFamily: '"Helvetica Neue",Helvetica,Arial,sans-serif',
- backgroundColor: "#ffffff",
+ backgroundColor: '#ffffff'
};
const resetText = {
- margin: "0",
- padding: "0",
- lineHeight: 1.4,
+ margin: '0',
+ padding: '0',
+ lineHeight: 1.4
};
const container = {
- margin: "0 auto",
- padding: "20px 0 48px",
- width: "660px",
+ margin: '0 auto',
+ padding: '20px 0 48px',
+ width: '660px'
};
-const tableCell = { display: "table-cell" };
+const tableCell = { display: 'table-cell' };
const heading = {
- fontSize: "32px",
- fontWeight: "300",
- color: "#888888",
+ fontSize: '32px',
+ fontWeight: '300',
+ color: '#888888'
};
const cupomText = {
- textAlign: "center" as const,
- margin: "36px 0 40px 0",
- fontSize: "14px",
- fontWeight: "500",
- color: "#111111",
+ textAlign: 'center' as const,
+ margin: '36px 0 40px 0',
+ fontSize: '14px',
+ fontWeight: '500',
+ color: '#111111'
};
const supStyle = {
- fontWeight: "300",
+ fontWeight: '300'
};
const informationTable = {
- borderCollapse: "collapse" as const,
- borderSpacing: "0px",
- color: "rgb(51,51,51)",
- backgroundColor: "rgb(250,250,250)",
- borderRadius: "3px",
- fontSize: "12px",
+ borderCollapse: 'collapse' as const,
+ borderSpacing: '0px',
+ color: 'rgb(51,51,51)',
+ backgroundColor: 'rgb(250,250,250)',
+ borderRadius: '3px',
+ fontSize: '12px'
};
const informationTableRow = {
- height: "46px",
+ height: '46px'
};
const informationTableColumn = {
- paddingLeft: "20px",
- borderStyle: "solid",
- borderColor: "white",
- borderWidth: "0px 1px 1px 0px",
- height: "44px",
+ paddingLeft: '20px',
+ borderStyle: 'solid',
+ borderColor: 'white',
+ borderWidth: '0px 1px 1px 0px',
+ height: '44px'
};
const informationTableLabel = {
...resetText,
- color: "rgb(102,102,102)",
- fontSize: "10px",
+ color: 'rgb(102,102,102)',
+ fontSize: '10px'
};
const informationTableValue = {
- fontSize: "12px",
- margin: "0",
- padding: "0",
- lineHeight: 1.4,
+ fontSize: '12px',
+ margin: '0',
+ padding: '0',
+ lineHeight: 1.4
};
const productTitleTable = {
...informationTable,
- margin: "30px 0 15px 0",
- height: "24px",
+ margin: '30px 0 15px 0',
+ height: '24px'
};
const productsTitle = {
- background: "#fafafa",
- paddingLeft: "10px",
- fontSize: "14px",
- fontWeight: "500",
- margin: "0",
+ background: '#fafafa',
+ paddingLeft: '10px',
+ fontSize: '14px',
+ fontWeight: '500',
+ margin: '0'
};
const productIcon = {
- margin: "0 0 0 20px",
- borderRadius: "14px",
- border: "1px solid rgba(128,128,128,0.2)",
+ margin: '0 0 0 20px',
+ borderRadius: '14px',
+ border: '1px solid rgba(128,128,128,0.2)'
};
-const productTitle = { fontSize: "12px", fontWeight: "600", ...resetText };
+const productTitle = { fontSize: '12px', fontWeight: '600', ...resetText };
const productDescription = {
- fontSize: "12px",
- color: "rgb(102,102,102)",
- ...resetText,
+ fontSize: '12px',
+ color: 'rgb(102,102,102)',
+ ...resetText
};
const productLink = {
- fontSize: "12px",
- color: "rgb(0,112,201)",
- textDecoration: "none",
+ fontSize: '12px',
+ color: 'rgb(0,112,201)',
+ textDecoration: 'none'
};
const divisor = {
- marginLeft: "4px",
- marginRight: "4px",
- color: "rgb(51,51,51)",
- fontWeight: 200,
+ marginLeft: '4px',
+ marginRight: '4px',
+ color: 'rgb(51,51,51)',
+ fontWeight: 200
};
const productPriceTotal = {
- margin: "0",
- color: "rgb(102,102,102)",
- fontSize: "10px",
- fontWeight: "600",
- padding: "0px 30px 0px 0px",
- textAlign: "right" as const,
+ margin: '0',
+ color: 'rgb(102,102,102)',
+ fontSize: '10px',
+ fontWeight: '600',
+ padding: '0px 30px 0px 0px',
+ textAlign: 'right' as const
};
const productPrice = {
- fontSize: "12px",
- fontWeight: "600",
- margin: "0",
+ fontSize: '12px',
+ fontWeight: '600',
+ margin: '0'
};
const productPriceLarge = {
- margin: "0px 20px 0px 0px",
- fontSize: "16px",
- fontWeight: "600",
- whiteSpace: "nowrap" as const,
- textAlign: "right" as const,
+ margin: '0px 20px 0px 0px',
+ fontSize: '16px',
+ fontWeight: '600',
+ whiteSpace: 'nowrap' as const,
+ textAlign: 'right' as const
};
const productPriceWrapper = {
- display: "table-cell",
- padding: "0px 20px 0px 0px",
- width: "100px",
- verticalAlign: "top",
+ display: 'table-cell',
+ padding: '0px 20px 0px 0px',
+ width: '100px',
+ verticalAlign: 'top'
};
-const productPriceLine = { margin: "30px 0 0 0" };
+const productPriceLine = { margin: '30px 0 0 0' };
const productPriceVerticalLine = {
- height: "48px",
- borderLeft: "1px solid",
- borderColor: "rgb(238,238,238)",
+ height: '48px',
+ borderLeft: '1px solid',
+ borderColor: 'rgb(238,238,238)'
};
-const productPriceLargeWrapper = { display: "table-cell", width: "90px" };
+const productPriceLargeWrapper = { display: 'table-cell', width: '90px' };
-const productPriceLineBottom = { margin: "0 0 75px 0" };
+const productPriceLineBottom = { margin: '0 0 75px 0' };
-const block = { display: "block" };
+const block = { display: 'block' };
const ctaTitle = {
- display: "block",
- margin: "15px 0 0 0",
+ display: 'block',
+ margin: '15px 0 0 0'
};
-const ctaText = { fontSize: "24px", fontWeight: "500" };
+const ctaText = { fontSize: '24px', fontWeight: '500' };
-const walletWrapper = { display: "table-cell", margin: "10px 0 0 0" };
+const walletWrapper = { display: 'table-cell', margin: '10px 0 0 0' };
-const walletLink = { color: "rgb(0,126,255)", textDecoration: "none" };
+const walletLink = { color: 'rgb(0,126,255)', textDecoration: 'none' };
const walletImage = {
- display: "inherit",
- paddingRight: "8px",
- verticalAlign: "middle",
+ display: 'inherit',
+ paddingRight: '8px',
+ verticalAlign: 'middle'
};
-const walletBottomLine = { margin: "65px 0 20px 0" };
+const walletBottomLine = { margin: '65px 0 20px 0' };
const footerText = {
- fontSize: "12px",
- color: "rgb(102,102,102)",
- margin: "0",
- lineHeight: "auto",
- marginBottom: "16px",
+ fontSize: '12px',
+ color: 'rgb(102,102,102)',
+ margin: '0',
+ lineHeight: 'auto',
+ marginBottom: '16px'
};
const footerTextCenter = {
- fontSize: "12px",
- color: "rgb(102,102,102)",
- margin: "20px 0",
- lineHeight: "auto",
- textAlign: "center" as const,
+ fontSize: '12px',
+ color: 'rgb(102,102,102)',
+ margin: '20px 0',
+ lineHeight: 'auto',
+ textAlign: 'center' as const
};
-const footerLink = { color: "rgb(0,115,255)" };
+const footerLink = { color: 'rgb(0,115,255)' };
-const footerIcon = { display: "block", margin: "40px 0 0 0" };
+const footerIcon = { display: 'block', margin: '40px 0 0 0' };
const footerLinksWrapper = {
- margin: "8px 0 0 0",
- textAlign: "center" as const,
- fontSize: "12px",
- color: "rgb(102,102,102)",
+ margin: '8px 0 0 0',
+ textAlign: 'center' as const,
+ fontSize: '12px',
+ color: 'rgb(102,102,102)'
};
const footerCopyright = {
- margin: "25px 0 0 0",
- textAlign: "center" as const,
- fontSize: "12px",
- color: "rgb(102,102,102)",
+ margin: '25px 0 0 0',
+ textAlign: 'center' as const,
+ fontSize: '12px',
+ color: 'rgb(102,102,102)'
};
const walletLinkText = {
- fontSize: "14px",
- fontWeight: "400",
- textDecoration: "none",
+ fontSize: '14px',
+ fontWeight: '400',
+ textDecoration: 'none'
};
diff --git a/apps/demo/emails/codepen-challengers.tsx b/apps/demo/emails/codepen-challengers.tsx
index 06d68d48..5ac0cc54 100644
--- a/apps/demo/emails/codepen-challengers.tsx
+++ b/apps/demo/emails/codepen-challengers.tsx
@@ -11,13 +11,11 @@ import {
Preview,
Section,
Text,
- Row,
+ Row
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const CodepenChallengersEmail = () => (
@@ -38,52 +36,42 @@ export const CodepenChallengersEmail = () => (
- This week: #CodePenChallenge:{" "}
- Cubes
+ This week: #CodePenChallenge: Cubes
The Shape challenge continues!
- Last week, we kicked things off with round shapes. We "rounded" up
- the Pens from week one in our{" "}
- #CodePenChallenge: Round collection.
+ Last week, we kicked things off with round shapes. We "rounded" up the Pens from week
+ one in our #CodePenChallenge: Round collection.
This week, we move on to cubes 🧊
- Creating cubes in the browser is all about mastery of illusion. Take
- control of perspective and shadows and you can make the magic of 3D
- on a flat screen 🧙
+ Creating cubes in the browser is all about mastery of illusion. Take control of
+ perspective and shadows and you can make the magic of 3D on a flat screen 🧙
- This week is a fun chance to work on your CSS shape-building skills,
- or dig into a 3D JavaScript library like Three.js.
+ This week is a fun chance to work on your CSS shape-building skills, or dig into a 3D
+ JavaScript library like Three.js.
- This week's starter template features an ice cube emoji to help
- inspire a "cool" idea for your Pen. As always, the template is just
- as jumping off point. Feel free to incorporate the 🧊 in your
- creation, add more elements, or freeze it out completely and start
- over from scratch!
+ This week's starter template features an ice cube emoji to help inspire a "cool" idea
+ for your Pen. As always, the template is just as jumping off point. Feel free to
+ incorporate the 🧊 in your creation, add more elements, or freeze it out completely and
+ start over from scratch!
- 💪 Your Challenge: {" "}
-
- create a Pen that includes cube shapes.
-
+ 💪 Your Challenge: {' '}
+ create a Pen that includes cube shapes.
-
+
(
/>
- CodePen PRO combines a bunch of features that can help any
- front-end designer or developer at any experience level.
+ CodePen PRO combines a bunch of features that can help any front-end designer or
+ developer at any experience level.
@@ -105,20 +93,18 @@ export const CodepenChallengersEmail = () => (
- To participate: {" "}
- Create a Pen → and tag it{" "}
+ To participate: Create a Pen → and tag it{' '}
codepenchallenge
- {" "}
+ {' '}
and
- {" "}
+ {' '}
cpc-cubes
- . We'll be watching and gathering the Pens into a Collection, and
- sharing on Twitter and{" "}
- Instagram (Use the #CodePenChallenge tag
- on Twitter and Instagram as well).
+ . We'll be watching and gathering the Pens into a Collection, and sharing on{' '}
+ Twitter and Instagram (Use the
+ #CodePenChallenge tag on Twitter and Instagram as well).
@@ -129,35 +115,33 @@ export const CodepenChallengersEmail = () => (
🌟
- This week we move from 2 dimensions to three! Maybe you could
- exercise your perspective in CSS
- to create a 3D cube. Or, you can try out creating 3D shapes in
- JavaScript, using WebGL or
- building a Three.js scene.
+ This week we move from 2 dimensions to three! Maybe you could exercise your{' '}
+ perspective in CSS to create a 3D cube. Or, you can
+ try out creating 3D shapes in JavaScript, using{' '}
+ WebGL or building a{' '}
+ Three.js scene.
🌟
- There's more to cubes than just six square sides. There are
- variations on the cube that could be fun to play with this
- week: cuboid shapes are
- hexahedrons with faces that aren't always squares. And if you
- want to really push the boundaries of shape, consider the 4
- dimensional tesseract!
+ There's more to cubes than just six square sides. There are variations on the cube
+ that could be fun to play with this week:{' '}
+ cuboid shapes are hexahedrons with faces that aren't
+ always squares. And if you want to really push the boundaries of shape, consider
+ the 4 dimensional tesseract!
🌟
- Here's a mind-bending idea that can combine the round shapes
- from week one with this week's cube theme:{" "}
- Spherical Cubes 😳 Solving
- longstanding mathematical mysteries is probably outside the
- scope of a CodePen challenge, but you could use front-end
- tools to explore fitting spheres into cubes, or vice-versa.
+ Here's a mind-bending idea that can combine the round shapes from week one with
+ this week's cube theme: Spherical Cubes 😳 Solving
+ longstanding mathematical mysteries is probably outside the scope of a CodePen
+ challenge, but you could use front-end tools to explore fitting spheres into
+ cubes, or vice-versa.
@@ -167,24 +151,19 @@ export const CodepenChallengersEmail = () => (
📖
- Learn all about{" "}
- How CSS Perspective Works and
- how to build a 3D CSS cube from scratch in Amit Sheen's
- in-depth tutorial for CSS-Tricks. Or, check out stunning
- examples of WebGL cubes from Matthias Hurrle:{" "}
- Just Ice and{" "}
- Posing.
+ Learn all about How CSS Perspective Works and how to
+ build a 3D CSS cube from scratch in Amit Sheen's in-depth tutorial for CSS-Tricks.
+ Or, check out stunning examples of WebGL cubes from Matthias Hurrle:{' '}
+ Just Ice and Posing.
📖
- Want to go beyond the square cube? Draw inspiration from
- EntropyReversed's{" "}
- Pulsating Tesseract, Josetxu's{" "}
- Rainbow Cuboid Loader, or Ana
- Tudor's{" "}
+ Want to go beyond the square cube? Draw inspiration from EntropyReversed's{' '}
+ Pulsating Tesseract, Josetxu's{' '}
+ Rainbow Cuboid Loader, or Ana Tudor's{' '}
Pure CSS cuboid jellyfish.
@@ -192,16 +171,12 @@ export const CodepenChallengersEmail = () => (
📖
- Did that spherical cubes concept pique your interest? Explore
- Ryan Mulligan's Cube Sphere,
- Munir Safi's{" "}
-
- 3D Sphere to Cube Animation With Virtual Trackball
- {" "}
- and Ana Tudor's{" "}
- Infinitely unpack prism for more
- mindbending cube concepts that test the boundaries of how
- shapes interact with each other.
+ Did that spherical cubes concept pique your interest? Explore Ryan Mulligan's{' '}
+ Cube Sphere, Munir Safi's{' '}
+ 3D Sphere to Cube Animation With Virtual Trackball{' '}
+ and Ana Tudor's Infinitely unpack prism for more
+ mindbending cube concepts that test the boundaries of how shapes interact with
+ each other.
@@ -216,11 +191,9 @@ export const CodepenChallengersEmail = () => (
- You can adjust your{" "}
- email preferences any time, or{" "}
- instantly opt out of emails of this
- kind. Need help with anything? Hit up{" "}
- support.
+ You can adjust your email preferences any time, or{' '}
+ instantly opt out of emails of this kind. Need help with
+ anything? Hit up support.
@@ -232,184 +205,184 @@ export default CodepenChallengersEmail;
const main = {
fontFamily: '"Google Sans",Roboto,RobotoDraft,Helvetica,Arial,sans-serif',
- backgroundColor: "#505050",
- margin: "0",
+ backgroundColor: '#505050',
+ margin: '0'
};
const imgHeader = {
- margin: "auto",
+ margin: 'auto'
};
const header = {
- width: "100%",
- backgroundColor: "#191919",
- margin: "0 auto",
- paddingBottom: "30px",
- zIndex: "999",
+ width: '100%',
+ backgroundColor: '#191919',
+ margin: '0 auto',
+ paddingBottom: '30px',
+ zIndex: '999'
};
const container = {
- paddingLeft: "12px",
- paddingRight: "12px",
- margin: "0 auto",
- width: "648px",
- maxWidth: "648px",
- position: "relative" as const,
+ paddingLeft: '12px',
+ paddingRight: '12px',
+ margin: '0 auto',
+ width: '648px',
+ maxWidth: '648px',
+ position: 'relative' as const
};
const challengeLink = {
- backgroundColor: "#505050",
- textAlign: "center" as const,
- padding: "10px 0 25px 0",
- fontSize: "13px",
- position: "absolute" as const,
- width: "100%",
- maxWidth: "648px",
- top: "-28px",
- margin: "0 0 16px 0",
+ backgroundColor: '#505050',
+ textAlign: 'center' as const,
+ padding: '10px 0 25px 0',
+ fontSize: '13px',
+ position: 'absolute' as const,
+ width: '100%',
+ maxWidth: '648px',
+ top: '-28px',
+ margin: '0 0 16px 0'
};
const link = {
- color: "#fff",
- cursor: "pointer",
+ color: '#fff',
+ cursor: 'pointer'
};
const blueLink = {
- color: "#15c",
- cursor: "pointer",
+ color: '#15c',
+ cursor: 'pointer'
};
const heading = {
- background: "#f0d361",
- padding: "30px",
- color: "#191919",
- fontWeight: "400",
- marginBottom: "0",
+ background: '#f0d361',
+ padding: '30px',
+ color: '#191919',
+ fontWeight: '400',
+ marginBottom: '0'
};
const section = {
- margin: "0",
- background: "#fff",
- padding: "0 24px",
+ margin: '0',
+ background: '#fff',
+ padding: '0 24px'
};
const yellowSection = {
- background: "#f5d247",
- padding: "30px",
- fontSize: "18px",
- lineHeight: "1.5",
+ background: '#f5d247',
+ padding: '30px',
+ fontSize: '18px',
+ lineHeight: '1.5'
};
const text = {
- fontSize: "16px",
+ fontSize: '16px'
};
-const cubeText = { fontSize: "32px", margin: "4px 0 0 0" };
+const cubeText = { fontSize: '32px', margin: '4px 0 0 0' };
const yourChallenge = {
- fontSize: "16px",
- border: "6px solid #ebd473",
- padding: "20px",
- margin: "0 0 40px 0",
+ fontSize: '16px',
+ border: '6px solid #ebd473',
+ padding: '20px',
+ margin: '0 0 40px 0'
};
const sectionPro = {
- marginTop: "40px",
- marginBottom: "24px",
- textAlign: "center" as const,
- background: "#0b112a",
- color: "#fff",
- padding: "35px 20px 30px 20px",
- border: "6px solid #2138c6",
+ marginTop: '40px',
+ marginBottom: '24px',
+ textAlign: 'center' as const,
+ background: '#0b112a',
+ color: '#fff',
+ padding: '35px 20px 30px 20px',
+ border: '6px solid #2138c6'
};
-const imagePro = { margin: "0 auto 30px auto" };
+const imagePro = { margin: '0 auto 30px auto' };
const button = {
- background: "#2138c6",
- color: "#fff",
- border: "0",
- fontSize: "15px",
- lineHeight: "18px",
- cursor: "pointer",
- borderRadius: "4px",
+ background: '#2138c6',
+ color: '#fff',
+ border: '0',
+ fontSize: '15px',
+ lineHeight: '18px',
+ cursor: 'pointer',
+ borderRadius: '4px'
};
const resourcesTitle = {
- fontWeight: "900",
- lineHeight: "1.1",
- marginTop: "-40px",
- fontSize: "18px",
+ fontWeight: '900',
+ lineHeight: '1.1',
+ marginTop: '-40px',
+ fontSize: '18px'
};
const ideasTitle = {
- fontWeight: "900",
- lineHeight: "1.1",
- fontSize: "18px",
+ fontWeight: '900',
+ lineHeight: '1.1',
+ fontSize: '18px'
};
const ideas = {
- width: "50%",
- paddingRight: "10px",
+ width: '50%',
+ paddingRight: '10px'
};
const resources = {
- width: "50%",
- paddingLeft: "10px",
+ width: '50%',
+ paddingLeft: '10px'
};
const card = {
- padding: "20px",
- margin: "0 0 20px 0",
- borderRadius: "10px",
- fontSize: "36px",
- textAlign: "center" as const,
+ padding: '20px',
+ margin: '0 0 20px 0',
+ borderRadius: '10px',
+ fontSize: '36px',
+ textAlign: 'center' as const
};
const yellowCard = {
...card,
- background: "#fff4c8",
- border: "1px solid #f4d247",
+ background: '#fff4c8',
+ border: '1px solid #f4d247'
};
const blueCard = {
...card,
- background: "#d9f6ff",
- border: "1px solid #92bfd0",
+ background: '#d9f6ff',
+ border: '1px solid #92bfd0'
};
const textCard = {
- fontSize: "13px",
- textAlign: "left" as const,
+ fontSize: '13px',
+ textAlign: 'left' as const
};
const goToChallenge = {
- margin: "40px 0 120px 0",
- textAlign: "center" as const,
+ margin: '40px 0 120px 0',
+ textAlign: 'center' as const
};
const footerButton = {
- fontSize: "26px",
- color: "#15c",
- background: "#222",
- borderRadius: "4px",
- fontWeight: "bold",
- cursor: "pointer",
+ fontSize: '26px',
+ color: '#15c',
+ background: '#222',
+ borderRadius: '4px',
+ fontWeight: 'bold',
+ cursor: 'pointer'
};
const footer = {
- background: "#fff",
- color: "#505050",
- padding: "0 24px",
- marginBottom: "48px",
+ background: '#fff',
+ color: '#505050',
+ padding: '0 24px',
+ marginBottom: '48px'
};
const footerText = {
- fontSize: "13px",
+ fontSize: '13px'
};
const footerLink = {
- textDecoration: "underline",
- color: "#505050",
- cursor: "pointer",
+ textDecoration: 'underline',
+ color: '#505050',
+ cursor: 'pointer'
};
diff --git a/apps/demo/emails/dropbox-reset-password.tsx b/apps/demo/emails/dropbox-reset-password.tsx
index bf1cacbe..dd0bbcf9 100644
--- a/apps/demo/emails/dropbox-reset-password.tsx
+++ b/apps/demo/emails/dropbox-reset-password.tsx
@@ -8,22 +8,20 @@ import {
Link,
Preview,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
interface DropboxResetPasswordEmailProps {
userFirstname?: string;
resetPasswordLink?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const DropboxResetPasswordEmail = ({
userFirstname,
- resetPasswordLink,
+ resetPasswordLink
}: DropboxResetPasswordEmailProps) => {
return (
@@ -31,28 +29,23 @@ export const DropboxResetPasswordEmail = ({
Dropbox reset your password
-
+
Hi {userFirstname},
- Someone recently requested a password change for your Dropbox
- account. If this was you, you can set a new password here:
+ Someone recently requested a password change for your Dropbox account. If this was
+ you, you can set a new password here:
Reset password
- If you don't want to change your password or didn't
- request this, just ignore and delete this message.
+ If you don't want to change your password or didn't request this, just
+ ignore and delete this message.
- To keep your account secure, please don't forward this email
- to anyone. See our Help Center for{" "}
+ To keep your account secure, please don't forward this email to anyone. See our
+ Help Center for{' '}
more security tips.
@@ -66,44 +59,44 @@ export const DropboxResetPasswordEmail = ({
};
DropboxResetPasswordEmail.PreviewProps = {
- userFirstname: "Zeno",
- resetPasswordLink: "https://dropbox.com",
+ userFirstname: 'Zeno',
+ resetPasswordLink: 'https://dropbox.com'
} as DropboxResetPasswordEmailProps;
export default DropboxResetPasswordEmail;
const main = {
- backgroundColor: "#f6f9fc",
- padding: "10px 0",
+ backgroundColor: '#f6f9fc',
+ padding: '10px 0'
};
const container = {
- backgroundColor: "#ffffff",
- border: "1px solid #f0f0f0",
- padding: "45px",
+ backgroundColor: '#ffffff',
+ border: '1px solid #f0f0f0',
+ padding: '45px'
};
const text = {
- fontSize: "16px",
+ fontSize: '16px',
fontFamily:
"'Open Sans', 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif",
- fontWeight: "300",
- color: "#404040",
- lineHeight: "26px",
+ fontWeight: '300',
+ color: '#404040',
+ lineHeight: '26px'
};
const button = {
- backgroundColor: "#007ee6",
- borderRadius: "4px",
- color: "#fff",
+ backgroundColor: '#007ee6',
+ borderRadius: '4px',
+ color: '#fff',
fontFamily: "'Open Sans', 'Helvetica Neue', Arial",
- fontSize: "15px",
- textDecoration: "none",
- textAlign: "center" as const,
- display: "block",
- width: "210px",
+ fontSize: '15px',
+ textDecoration: 'none',
+ textAlign: 'center' as const,
+ display: 'block',
+ width: '210px'
};
const anchor = {
- textDecoration: "underline",
+ textDecoration: 'underline'
};
diff --git a/apps/demo/emails/github-access-token.tsx b/apps/demo/emails/github-access-token.tsx
index 17a04242..7ae02485 100644
--- a/apps/demo/emails/github-access-token.tsx
+++ b/apps/demo/emails/github-access-token.tsx
@@ -8,38 +8,26 @@ import {
Link,
Preview,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
interface GithubAccessTokenEmailProps {
username?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const GithubAccessTokenEmail = ({
- username,
-}: GithubAccessTokenEmailProps) => (
+export const GithubAccessTokenEmail = ({ username }: GithubAccessTokenEmailProps) => (
-
- A fine-grained personal access token has been added to your account
-
+ A fine-grained personal access token has been added to your account
-
+
- @{username} , a personal access was created on your
- account.
+ @{username} , a personal access was created on your account.
@@ -47,8 +35,8 @@ export const GithubAccessTokenEmail = ({
Hey {username} !
- A fine-grained personal access token ( resend) was
- recently added to your account.
+ A fine-grained personal access token ( resend) was recently added to your
+ account.
@@ -56,7 +44,7 @@ export const GithubAccessTokenEmail = ({
- Your security audit log ・{" "}
+ Your security audit log ・{' '}
Contact support
@@ -69,61 +57,61 @@ export const GithubAccessTokenEmail = ({
);
GithubAccessTokenEmail.PreviewProps = {
- username: "zenorocha",
+ username: 'zenorocha'
} as GithubAccessTokenEmailProps;
export default GithubAccessTokenEmail;
const main = {
- backgroundColor: "#ffffff",
- color: "#24292e",
+ backgroundColor: '#ffffff',
+ color: '#24292e',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"'
};
const container = {
- width: "480px",
- margin: "0 auto",
- padding: "20px 0 48px",
+ width: '480px',
+ margin: '0 auto',
+ padding: '20px 0 48px'
};
const title = {
- fontSize: "24px",
- lineHeight: 1.25,
+ fontSize: '24px',
+ lineHeight: 1.25
};
const section = {
- padding: "24px",
- border: "solid 1px #dedede",
- borderRadius: "5px",
- textAlign: "center" as const,
+ padding: '24px',
+ border: 'solid 1px #dedede',
+ borderRadius: '5px',
+ textAlign: 'center' as const
};
const text = {
- margin: "0 0 10px 0",
- textAlign: "left" as const,
+ margin: '0 0 10px 0',
+ textAlign: 'left' as const
};
const button = {
- fontSize: "14px",
- backgroundColor: "#28a745",
- color: "#fff",
+ fontSize: '14px',
+ backgroundColor: '#28a745',
+ color: '#fff',
lineHeight: 1.5,
- borderRadius: "0.5em",
+ borderRadius: '0.5em'
};
const links = {
- textAlign: "center" as const,
+ textAlign: 'center' as const
};
const link = {
- color: "#0366d6",
- fontSize: "12px",
+ color: '#0366d6',
+ fontSize: '12px'
};
const footer = {
- color: "#6a737d",
- fontSize: "12px",
- textAlign: "center" as const,
- marginTop: "60px",
+ color: '#6a737d',
+ fontSize: '12px',
+ textAlign: 'center' as const,
+ marginTop: '60px'
};
diff --git a/apps/demo/emails/google-play-policy-update.tsx b/apps/demo/emails/google-play-policy-update.tsx
index 2bce6eee..a5b80a0f 100644
--- a/apps/demo/emails/google-play-policy-update.tsx
+++ b/apps/demo/emails/google-play-policy-update.tsx
@@ -10,13 +10,11 @@ import {
Preview,
Row,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const GooglePlayPolicyUpdateEmail = () => (
@@ -50,31 +48,29 @@ export const GooglePlayPolicyUpdateEmail = () => (
DEVELOPER UPDATE
Hello Google Play Developer,
- We strive to make Google Play a safe and trusted experience for
- users.
+ We strive to make Google Play a safe and trusted experience for users.
- We've added clarifications to our{" "}
+ We've added clarifications to our{' '}
Target API Level policy
- . Because this is a clarification, our enforcement standards and
- practices for this policy remain the same.
+ . Because this is a clarification, our enforcement standards and practices for this
+ policy remain the same.
- We’re noting exceptions to the{" "}
+ We’re noting exceptions to the{' '}
Target API Level policy
- , which can be found in our updated{" "}
+ , which can be found in our updated{' '}
Help Center article.
- These exceptions include permanently private apps and apps that
- target automotive or wearables form factors and are bundled within
- the same package.{" "}
+ These exceptions include permanently private apps and apps that target automotive or
+ wearables form factors and are bundled within the same package.{' '}
Learn more
@@ -82,21 +78,18 @@ export const GooglePlayPolicyUpdateEmail = () => (
- We’re also extending the deadline to give you more time to adjust to
- these changes. Now, apps that target API level 29 or below will
- start experiencing reduced distribution starting Jan 31, 2023 {" "}
- instead of Nov 1, 2022. If you need more time to update your app,
- you can request an extension to keep your app discoverable to all
- users until May 1, 2023.
+ We’re also extending the deadline to give you more time to adjust to these changes. Now,
+ apps that target API level 29 or below will start experiencing reduced distribution
+ starting Jan 31, 2023 instead of Nov 1, 2022. If you need more time to update
+ your app, you can request an extension to keep your app discoverable to all users until
+ May 1, 2023.
Thank you,
-
- The Google Play team
-
+ The Google Play team
@@ -106,44 +99,28 @@ export const GooglePlayPolicyUpdateEmail = () => (
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -151,25 +128,23 @@ export const GooglePlayPolicyUpdateEmail = () => (
- © 2022 Google LLC 1600 Amphitheatre Parkway, Mountain View, CA
- 94043, USA
+ © 2022 Google LLC 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA
- You have received this mandatory email service announcement to
- update you about important changes to your Google Play Developer
- account.
+ You have received this mandatory email service announcement to update you about
+ important changes to your Google Play Developer account.
@@ -180,62 +155,62 @@ export const GooglePlayPolicyUpdateEmail = () => (
export default GooglePlayPolicyUpdateEmail;
const main = {
- backgroundColor: "#dbddde",
+ backgroundColor: '#dbddde',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const sectionLogo = {
- padding: "0 40px",
+ padding: '0 40px'
};
const headerBlue = {
- marginTop: "-1px",
+ marginTop: '-1px'
};
const container = {
- margin: "30px auto",
- width: "610px",
- backgroundColor: "#fff",
+ margin: '30px auto',
+ width: '610px',
+ backgroundColor: '#fff',
borderRadius: 5,
- overflow: "hidden",
+ overflow: 'hidden'
};
const containerContact = {
- backgroundColor: "#f0fcff",
- width: "90%",
- borderRadius: "5px",
- overflow: "hidden",
- paddingLeft: "20px",
+ backgroundColor: '#f0fcff',
+ width: '90%',
+ borderRadius: '5px',
+ overflow: 'hidden',
+ paddingLeft: '20px'
};
const heading = {
- fontSize: "14px",
- lineHeight: "26px",
- fontWeight: "700",
- color: "#004dcf",
+ fontSize: '14px',
+ lineHeight: '26px',
+ fontWeight: '700',
+ color: '#004dcf'
};
const paragraphContent = {
- padding: "0 40px",
+ padding: '0 40px'
};
const paragraphList = {
- paddingLeft: 40,
+ paddingLeft: 40
};
const paragraph = {
- fontSize: "14px",
- lineHeight: "22px",
- color: "#3c4043",
+ fontSize: '14px',
+ lineHeight: '22px',
+ color: '#3c4043'
};
const link = {
...paragraph,
- color: "#004dcf",
+ color: '#004dcf'
};
const hr = {
- borderColor: "#e8eaed",
- margin: "20px 0",
+ borderColor: '#e8eaed',
+ margin: '20px 0'
};
diff --git a/apps/demo/emails/koala-welcome.tsx b/apps/demo/emails/koala-welcome.tsx
index 47fb22c8..4f3f3cf6 100644
--- a/apps/demo/emails/koala-welcome.tsx
+++ b/apps/demo/emails/koala-welcome.tsx
@@ -8,7 +8,7 @@ import {
Img,
Preview,
Section,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -16,18 +16,12 @@ interface KoalaWelcomeEmailProps {
userFirstname: string;
}
-const baseUrl = import.meta?.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const KoalaWelcomeEmail = ({
- userFirstname,
-}: KoalaWelcomeEmailProps) => (
+export const KoalaWelcomeEmail = ({ userFirstname }: KoalaWelcomeEmailProps) => (
-
- The sales intelligence platform that helps you uncover qualified leads.
-
+ The sales intelligence platform that helps you uncover qualified leads.
Hi {userFirstname},
- Welcome to Koala, the sales intelligence platform that helps you
- uncover qualified leads and close deals faster.
+ Welcome to Koala, the sales intelligence platform that helps you uncover qualified leads
+ and close deals faster.
@@ -68,25 +62,25 @@ export default KoalaWelcomeEmail;
const main = {
backgroundColor: '#ffffff',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const container = {
margin: '0 auto',
- padding: '20px 0 48px',
+ padding: '20px 0 48px'
};
const logo = {
- margin: '0 auto',
+ margin: '0 auto'
};
const paragraph = {
fontSize: '16px',
- lineHeight: '26px',
+ lineHeight: '26px'
};
const btnContainer = {
- textAlign: 'center' as const,
+ textAlign: 'center' as const
};
const button = {
@@ -96,15 +90,15 @@ const button = {
fontSize: '16px',
textDecoration: 'none',
textAlign: 'center' as const,
- display: 'block',
+ display: 'block'
};
const hr = {
borderColor: '#cccccc',
- margin: '20px 0',
+ margin: '20px 0'
};
const footer = {
color: '#8898aa',
- fontSize: '12px',
+ fontSize: '12px'
};
diff --git a/apps/demo/emails/linear-login-code.tsx b/apps/demo/emails/linear-login-code.tsx
index 29950f2e..7072e6ea 100644
--- a/apps/demo/emails/linear-login-code.tsx
+++ b/apps/demo/emails/linear-login-code.tsx
@@ -10,7 +10,7 @@ import {
Link,
Preview,
Section,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -18,13 +18,9 @@ interface LinearLoginCodeEmailProps {
validationCode?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const LinearLoginCodeEmail = ({
- validationCode,
-}: LinearLoginCodeEmailProps) => (
+export const LinearLoginCodeEmail = ({ validationCode }: LinearLoginCodeEmailProps) => (
Your login code for Linear
@@ -44,8 +40,8 @@ export const LinearLoginCodeEmail = ({
- This link and code will only be valid for the next 5 minutes. If the
- link does not work, you can use the login verification code directly:
+ This link and code will only be valid for the next 5 minutes. If the link does not work,
+ you can use the login verification code directly:
{validationCode}
@@ -58,7 +54,7 @@ export const LinearLoginCodeEmail = ({
);
LinearLoginCodeEmail.PreviewProps = {
- validationCode: 'tt226-5398x',
+ validationCode: 'tt226-5398x'
} as LinearLoginCodeEmailProps;
export default LinearLoginCodeEmail;
@@ -66,19 +62,19 @@ export default LinearLoginCodeEmail;
const logo = {
borderRadius: 21,
width: 42,
- height: 42,
+ height: 42
};
const main = {
backgroundColor: '#ffffff',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const container = {
margin: '0 auto',
padding: '20px 0 48px',
- width: '560px',
+ width: '560px'
};
const heading = {
@@ -87,18 +83,18 @@ const heading = {
lineHeight: '1.3',
fontWeight: '400',
color: '#484848',
- padding: '17px 0 0',
+ padding: '17px 0 0'
};
const paragraph = {
margin: '0 0 15px',
fontSize: '15px',
lineHeight: '1.4',
- color: '#3c4149',
+ color: '#3c4149'
};
const buttonContainer = {
- padding: '27px 0 27px',
+ padding: '27px 0 27px'
};
const button = {
@@ -109,17 +105,17 @@ const button = {
fontSize: '15px',
textDecoration: 'none',
textAlign: 'center' as const,
- display: 'block',
+ display: 'block'
};
const reportLink = {
fontSize: '14px',
- color: '#b4becc',
+ color: '#b4becc'
};
const hr = {
borderColor: '#dfe1e4',
- margin: '42px 0 26px',
+ margin: '42px 0 26px'
};
const code = {
@@ -130,5 +126,5 @@ const code = {
letterSpacing: '-0.3px',
fontSize: '21px',
borderRadius: '4px',
- color: '#3c4149',
+ color: '#3c4149'
};
diff --git a/apps/demo/emails/netlify-welcome.tsx b/apps/demo/emails/netlify-welcome.tsx
index 4c427014..5f2f7e8e 100644
--- a/apps/demo/emails/netlify-welcome.tsx
+++ b/apps/demo/emails/netlify-welcome.tsx
@@ -12,9 +12,9 @@ import {
Row,
Section,
Tailwind,
- Text,
-} from'@jsx-email/components';
-import * as React from "react";
+ Text
+} from '@jsx-email/components';
+import * as React from 'react';
interface NetlifyWelcomeEmailProps {
steps?: {
@@ -24,9 +24,7 @@ interface NetlifyWelcomeEmailProps {
links?: string[];
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
const PropDefaults: NetlifyWelcomeEmailProps = {
steps: [
@@ -34,49 +32,46 @@ const PropDefaults: NetlifyWelcomeEmailProps = {
id: 1,
Description: (
- Deploy your first project. {" "}
- Connect to Git, choose a template, or manually deploy a
- project you've been working on locally.
+ Deploy your first project. Connect to Git, choose a template
+ , or manually deploy a project you've been working on locally.
- ),
+ )
},
{
id: 2,
Description: (
- Check your deploy logs. Find out what's included in
- your build and watch for errors or failed deploys.{" "}
- Learn how to read your deploy logs.
+ Check your deploy logs. Find out what's included in your build and watch
+ for errors or failed deploys. Learn how to read your deploy logs.
- ),
+ )
},
{
id: 3,
Description: (
- Choose an integration. Quickly discover, connect, and
- configure the right tools for your project with 150+ integrations to
- choose from. Explore the Integrations Hub.
+ Choose an integration. Quickly discover, connect, and configure the right
+ tools for your project with 150+ integrations to choose from.{' '}
+ Explore the Integrations Hub.
- ),
+ )
},
{
id: 4,
Description: (
- Set up a custom domain. You can register a new domain
- and buy it through Netlify or assign a domain you already own to your
- site. Add a custom domain.
+ Set up a custom domain. You can register a new domain and buy it through
+ Netlify or assign a domain you already own to your site. Add a custom domain.
- ),
- },
+ )
+ }
],
- links: ["Visit the forums", "Read the docs", "Contact an expert"],
+ links: ['Visit the forums', 'Read the docs', 'Contact an expert']
};
export const NetlifyWelcomeEmail = ({
steps = PropDefaults.steps,
- links = PropDefaults.links,
+ links = PropDefaults.links
}: NetlifyWelcomeEmailProps) => {
return (
@@ -87,16 +82,16 @@ export const NetlifyWelcomeEmail = ({
theme: {
extend: {
colors: {
- brand: "#2250f4",
- offwhite: "#fafbfb",
+ brand: '#2250f4',
+ offwhite: '#fafbfb'
},
spacing: {
- 0: "0px",
- 20: "20px",
- 45: "45px",
- },
- },
- },
+ 0: '0px',
+ 20: '20px',
+ 45: '45px'
+ }
+ }
+ }
}}
>
@@ -113,9 +108,8 @@ export const NetlifyWelcomeEmail = ({
- Congratulations! You're joining over 3 million developers
- around the world who use Netlify to build and ship sites,
- stores, and apps.
+ Congratulations! You're joining over 3 million developers around the world who use
+ Netlify to build and ship sites, stores, and apps.
Here's how to get started:
@@ -125,11 +119,7 @@ export const NetlifyWelcomeEmail = ({
{steps?.map(({ Description }) => Description)}
@@ -138,9 +128,7 @@ export const NetlifyWelcomeEmail = ({
{links?.map((link) => (
-
- {link}
- {" "}
+ {link}{' '}
→
))}
diff --git a/apps/demo/emails/nike-receipt.tsx b/apps/demo/emails/nike-receipt.tsx
index 3a31420c..8779bac4 100644
--- a/apps/demo/emails/nike-receipt.tsx
+++ b/apps/demo/emails/nike-receipt.tsx
@@ -11,13 +11,11 @@ import {
Preview,
Row,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const NikeReceiptEmail = () => (
@@ -43,16 +41,16 @@ export const NikeReceiptEmail = () => (
width="66"
height="22"
alt="Nike"
- style={{ margin: "auto" }}
+ style={{ margin: 'auto' }}
/>
It's On Its Way.
You order's is on its way. Use the link above to track its progress.
- We´ve also charged your payment method for the cost of your order
- and will be removing any authorization holds. For payment details,
- please visit your Orders page on Nike.com or in the Nike app.
+ We´ve also charged your payment method for the cost of your order and will be removing
+ any authorization holds. For payment details, please visit your Orders page on Nike.com
+ or in the Nike app.
@@ -63,20 +61,18 @@ export const NikeReceiptEmail = () => (
-
+
-
-
+
+
Brazil 2022/23 Stadium Away Women's Nike Dri-FIT Soccer Jersey
Size L (12–14)
@@ -85,8 +81,8 @@ export const NikeReceiptEmail = () => (
-
-
+
+
Order Number
C0106373851
@@ -107,21 +103,14 @@ export const NikeReceiptEmail = () => (
Top Picks For You
-
+
-
- USWNT 2022/23 Stadium Home
-
-
- Women's Nike Dri-FIT Soccer Jersey
-
+ USWNT 2022/23 Stadium Home
+ Women's Nike Dri-FIT Soccer Jersey
(
alt="Brazil 2022/23 Stadium Away Women's Nike Dri-FIT Soccer Jersey"
width="100%"
/>
-
- Brazil 2022/23 Stadium Goalkeeper
-
+ Brazil 2022/23 Stadium Goalkeeper
Men's Nike Dri-FIT Short-Sleeve Football Shirt
@@ -145,19 +132,14 @@ export const NikeReceiptEmail = () => (
FFF
Women's Soccer Jacket
-
+
FFF
-
- Women's Nike Pre-Match Football Top
-
+ Women's Nike Pre-Match Football Top
@@ -167,29 +149,29 @@ export const NikeReceiptEmail = () => (
Get Help
-
+
Shipping Status
-
+
Shipping & Delivery
-
+
Returns & Exchanges
-
-
+
+
How to Return
-
+
Contact Options
@@ -199,18 +181,16 @@ export const NikeReceiptEmail = () => (
-
+
-
- 1-800-806-6453
-
+ 1-800-806-6453
@@ -218,7 +198,7 @@ export const NikeReceiptEmail = () => (
4 am - 11 pm PT
@@ -254,7 +234,7 @@ export const NikeReceiptEmail = () => (
-
+
@@ -266,14 +246,12 @@ export const NikeReceiptEmail = () => (
- Please contact us if you have any questions. (If you reply to this
- email, we won't be able to see it.)
+ Please contact us if you have any questions. (If you reply to this email, we won't be
+ able to see it.)
-
- © 2022 Nike, Inc. All Rights Reserved.
-
+ © 2022 Nike, Inc. All Rights Reserved.
@@ -289,18 +267,18 @@ export const NikeReceiptEmail = () => (
export default NikeReceiptEmail;
const paddingX = {
- paddingLeft: "40px",
- paddingRight: "40px",
+ paddingLeft: '40px',
+ paddingRight: '40px'
};
const paddingY = {
- paddingTop: "22px",
- paddingBottom: "22px",
+ paddingTop: '22px',
+ paddingBottom: '22px'
};
const paragraph = {
- margin: "0",
- lineHeight: "2",
+ margin: '0',
+ lineHeight: '2'
};
const global = {
@@ -308,152 +286,152 @@ const global = {
paddingY,
defaultPadding: {
...paddingX,
- ...paddingY,
+ ...paddingY
},
- paragraphWithBold: { ...paragraph, fontWeight: "bold" },
+ paragraphWithBold: { ...paragraph, fontWeight: 'bold' },
heading: {
- fontSize: "32px",
- lineHeight: "1.3",
- fontWeight: "700",
- textAlign: "center",
- letterSpacing: "-1px",
+ fontSize: '32px',
+ lineHeight: '1.3',
+ fontWeight: '700',
+ textAlign: 'center',
+ letterSpacing: '-1px'
} as React.CSSProperties,
text: {
...paragraph,
- color: "#747474",
- fontWeight: "500",
+ color: '#747474',
+ fontWeight: '500'
},
button: {
- border: "1px solid #929292",
- fontSize: "16px",
- textDecoration: "none",
- padding: "10px 0px",
- width: "220px",
- display: "block",
- textAlign: "center",
+ border: '1px solid #929292',
+ fontSize: '16px',
+ textDecoration: 'none',
+ padding: '10px 0px',
+ width: '220px',
+ display: 'block',
+ textAlign: 'center',
fontWeight: 500,
- color: "#000",
+ color: '#000'
} as React.CSSProperties,
hr: {
- borderColor: "#E5E5E5",
- margin: "0",
- },
+ borderColor: '#E5E5E5',
+ margin: '0'
+ }
};
const main = {
- backgroundColor: "#ffffff",
+ backgroundColor: '#ffffff',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const container = {
- margin: "10px auto",
- width: "600px",
- border: "1px solid #E5E5E5",
+ margin: '10px auto',
+ width: '600px',
+ border: '1px solid #E5E5E5'
};
const track = {
container: {
- padding: "22px 40px",
- backgroundColor: "#F7F7F7",
+ padding: '22px 40px',
+ backgroundColor: '#F7F7F7'
},
number: {
- margin: "12px 0 0 0",
+ margin: '12px 0 0 0',
fontWeight: 500,
- lineHeight: "1.4",
- color: "#6F6F6F",
- },
+ lineHeight: '1.4',
+ color: '#6F6F6F'
+ }
};
const message = {
- padding: "40px 74px",
- textAlign: "center",
+ padding: '40px 74px',
+ textAlign: 'center'
} as React.CSSProperties;
const adressTitle = {
...paragraph,
- fontSize: "15px",
- fontWeight: "bold",
+ fontSize: '15px',
+ fontWeight: 'bold'
};
const recomendationsText = {
- margin: "0",
- fontSize: "15px",
- lineHeight: "1",
- paddingLeft: "10px",
- paddingRight: "10px",
+ margin: '0',
+ fontSize: '15px',
+ lineHeight: '1',
+ paddingLeft: '10px',
+ paddingRight: '10px'
};
const recomendations = {
container: {
- padding: "20px 0",
+ padding: '20px 0'
},
product: {
- verticalAlign: "top",
- textAlign: "left" as const,
- paddingLeft: "2px",
- paddingRight: "2px",
+ verticalAlign: 'top',
+ textAlign: 'left' as const,
+ paddingLeft: '2px',
+ paddingRight: '2px'
},
- title: { ...recomendationsText, paddingTop: "12px", fontWeight: "500" },
+ title: { ...recomendationsText, paddingTop: '12px', fontWeight: '500' },
text: {
...recomendationsText,
- paddingTop: "4px",
- color: "#747474",
- },
+ paddingTop: '4px',
+ color: '#747474'
+ }
};
const menu = {
container: {
- paddingLeft: "20px",
- paddingRight: "20px",
- paddingTop: "20px",
- backgroundColor: "#F7F7F7",
+ paddingLeft: '20px',
+ paddingRight: '20px',
+ paddingTop: '20px',
+ backgroundColor: '#F7F7F7'
},
content: {
...paddingY,
- paddingLeft: "20px",
- paddingRight: "20px",
+ paddingLeft: '20px',
+ paddingRight: '20px'
},
title: {
- paddingLeft: "20px",
- paddingRight: "20px",
- fontWeight: "bold",
+ paddingLeft: '20px',
+ paddingRight: '20px',
+ fontWeight: 'bold'
},
text: {
- fontSize: "13.5px",
+ fontSize: '13.5px',
marginTop: 0,
fontWeight: 500,
- color: "#000",
+ color: '#000'
},
tel: {
- paddingLeft: "20px",
- paddingRight: "20px",
- paddingTop: "32px",
- paddingBottom: "22px",
- },
+ paddingLeft: '20px',
+ paddingRight: '20px',
+ paddingTop: '32px',
+ paddingBottom: '22px'
+ }
};
const categories = {
container: {
- width: "370px",
- margin: "auto",
- paddingTop: "12px",
+ width: '370px',
+ margin: 'auto',
+ paddingTop: '12px'
},
text: {
- fontWeight: "500",
- color: "#000",
- },
+ fontWeight: '500',
+ color: '#000'
+ }
};
const footer = {
policy: {
- width: "166px",
- margin: "auto",
+ width: '166px',
+ margin: 'auto'
},
text: {
- margin: "0",
- color: "#AFAFAF",
- fontSize: "13px",
- textAlign: "center",
- } as React.CSSProperties,
+ margin: '0',
+ color: '#AFAFAF',
+ fontSize: '13px',
+ textAlign: 'center'
+ } as React.CSSProperties
};
diff --git a/apps/demo/emails/notion-magic-link.tsx b/apps/demo/emails/notion-magic-link.tsx
index 8e141a0d..4981880e 100644
--- a/apps/demo/emails/notion-magic-link.tsx
+++ b/apps/demo/emails/notion-magic-link.tsx
@@ -7,7 +7,7 @@ import {
Img,
Link,
Preview,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -15,13 +15,9 @@ interface NotionMagicLinkEmailProps {
loginCode?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const NotionMagicLinkEmail = ({
- loginCode,
-}: NotionMagicLinkEmailProps) => (
+export const NotionMagicLinkEmail = ({ loginCode }: NotionMagicLinkEmailProps) => (
Log in with this magic link
@@ -34,7 +30,7 @@ export const NotionMagicLinkEmail = ({
style={{
...link,
display: 'block',
- marginBottom: '16px',
+ marginBottom: '16px'
}}
>
Click here to log in with this magic link
@@ -48,7 +44,7 @@ export const NotionMagicLinkEmail = ({
...text,
color: '#ababab',
marginTop: '14px',
- marginBottom: '16px',
+ marginBottom: '16px'
}}
>
If you didn't try to login, you can safely ignore this email.
@@ -58,24 +54,14 @@ export const NotionMagicLinkEmail = ({
...text,
color: '#ababab',
marginTop: '12px',
- marginBottom: '38px',
+ marginBottom: '38px'
}}
>
- Hint: You can set a permanent password in Settings & members → My
- account.
+ Hint: You can set a permanent password in Settings & members → My account.
-
+
-
+
Notion.so
, the all-in-one-workspace
@@ -88,19 +74,19 @@ export const NotionMagicLinkEmail = ({
);
NotionMagicLinkEmail.PreviewProps = {
- loginCode: 'sparo-ndigo-amurt-secan',
+ loginCode: 'sparo-ndigo-amurt-secan'
} as NotionMagicLinkEmailProps;
export default NotionMagicLinkEmail;
const main = {
- backgroundColor: '#ffffff',
+ backgroundColor: '#ffffff'
};
const container = {
paddingLeft: '12px',
paddingRight: '12px',
- margin: '0 auto',
+ margin: '0 auto'
};
const h1 = {
@@ -110,7 +96,7 @@ const h1 = {
fontSize: '24px',
fontWeight: 'bold',
margin: '40px 0',
- padding: '0',
+ padding: '0'
};
const link = {
@@ -118,7 +104,7 @@ const link = {
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '14px',
- textDecoration: 'underline',
+ textDecoration: 'underline'
};
const text = {
@@ -126,7 +112,7 @@ const text = {
fontFamily:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
fontSize: '14px',
- margin: '24px 0',
+ margin: '24px 0'
};
const footer = {
@@ -136,7 +122,7 @@ const footer = {
fontSize: '12px',
lineHeight: '22px',
marginTop: '12px',
- marginBottom: '24px',
+ marginBottom: '24px'
};
const code = {
@@ -146,5 +132,5 @@ const code = {
backgroundColor: '#f4f4f4',
borderRadius: '5px',
border: '1px solid #eee',
- color: '#333',
+ color: '#333'
};
diff --git a/apps/demo/emails/plaid-verify-identity.tsx b/apps/demo/emails/plaid-verify-identity.tsx
index c33f4491..3076e7d7 100644
--- a/apps/demo/emails/plaid-verify-identity.tsx
+++ b/apps/demo/emails/plaid-verify-identity.tsx
@@ -7,7 +7,7 @@ import {
Img,
Link,
Section,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -15,13 +15,9 @@ interface PlaidVerifyIdentityEmailProps {
validationCode?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const PlaidVerifyIdentityEmail = ({
- validationCode,
-}: PlaidVerifyIdentityEmailProps) => (
+export const PlaidVerifyIdentityEmail = ({ validationCode }: PlaidVerifyIdentityEmailProps) => (
@@ -34,9 +30,7 @@ export const PlaidVerifyIdentityEmail = ({
style={logo}
/>
Verify Your Identity
-
- Enter the following code to finish linking Venmo.
-
+ Enter the following code to finish linking Venmo.
@@ -55,14 +49,14 @@ export const PlaidVerifyIdentityEmail = ({
);
PlaidVerifyIdentityEmail.PreviewProps = {
- validationCode: '144833',
+ validationCode: '144833'
} as PlaidVerifyIdentityEmailProps;
export default PlaidVerifyIdentityEmail;
const main = {
backgroundColor: '#ffffff',
- fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif',
+ fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif'
};
const container = {
@@ -73,11 +67,11 @@ const container = {
marginTop: '20px',
width: '360px',
margin: '0 auto',
- padding: '68px 0 130px',
+ padding: '68px 0 130px'
};
const logo = {
- margin: '0 auto',
+ margin: '0 auto'
};
const tertiary = {
@@ -90,7 +84,7 @@ const tertiary = {
lineHeight: '16px',
margin: '16px 8px 8px 8px',
textTransform: 'uppercase' as const,
- textAlign: 'center' as const,
+ textAlign: 'center' as const
};
const secondary = {
@@ -102,7 +96,7 @@ const secondary = {
lineHeight: '24px',
marginBottom: '0',
marginTop: '0',
- textAlign: 'center' as const,
+ textAlign: 'center' as const
};
const codeContainer = {
@@ -110,7 +104,7 @@ const codeContainer = {
borderRadius: '4px',
margin: '16px auto 14px',
verticalAlign: 'middle',
- width: '280px',
+ width: '280px'
};
const code = {
@@ -125,7 +119,7 @@ const code = {
paddingTop: '8px',
margin: '0 auto',
width: '100%',
- textAlign: 'center' as const,
+ textAlign: 'center' as const
};
const paragraph = {
@@ -136,12 +130,12 @@ const paragraph = {
lineHeight: '23px',
padding: '0 40px',
margin: '0',
- textAlign: 'center' as const,
+ textAlign: 'center' as const
};
const link = {
color: '#444',
- textDecoration: 'underline',
+ textDecoration: 'underline'
};
const footer = {
@@ -154,5 +148,5 @@ const footer = {
marginTop: '20px',
fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif',
textAlign: 'center' as const,
- textTransform: 'uppercase' as const,
+ textTransform: 'uppercase' as const
};
diff --git a/apps/demo/emails/raycast-magic-link.tsx b/apps/demo/emails/raycast-magic-link.tsx
index 6d6d65d4..e6167000 100644
--- a/apps/demo/emails/raycast-magic-link.tsx
+++ b/apps/demo/emails/raycast-magic-link.tsx
@@ -9,7 +9,7 @@ import {
Link,
Preview,
Section,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -17,24 +17,15 @@ interface RaycastMagicLinkEmailProps {
magicLink?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const RaycastMagicLinkEmail = ({
- magicLink,
-}: RaycastMagicLinkEmailProps) => (
+export const RaycastMagicLinkEmail = ({ magicLink }: RaycastMagicLinkEmailProps) => (
Log in with this magic link.
-
+
🪄 Your magic link
@@ -42,9 +33,7 @@ export const RaycastMagicLinkEmail = ({
👉 Click here to sign in 👈
-
- If you didn't request this, please ignore this email.
-
+ If you didn't request this, please ignore this email.
Best,
@@ -58,20 +47,18 @@ export const RaycastMagicLinkEmail = ({
style={{
WebkitFilter: 'grayscale(100%)',
filter: 'grayscale(100%)',
- margin: '20px 0',
+ margin: '20px 0'
}}
/>
Raycast Technologies Inc.
-
- 2093 Philadelphia Pike #3222, Claymont, DE 19703
-
+ 2093 Philadelphia Pike #3222, Claymont, DE 19703
);
RaycastMagicLinkEmail.PreviewProps = {
- magicLink: 'https://raycast.com',
+ magicLink: 'https://raycast.com'
} as RaycastMagicLinkEmailProps;
export default RaycastMagicLinkEmail;
@@ -79,7 +66,7 @@ export default RaycastMagicLinkEmail;
const main = {
backgroundColor: '#ffffff',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const container = {
@@ -87,35 +74,35 @@ const container = {
padding: '20px 25px 48px',
backgroundImage: 'url("/assets/raycast-bg.png")',
backgroundPosition: 'bottom',
- backgroundRepeat: 'no-repeat, no-repeat',
+ backgroundRepeat: 'no-repeat, no-repeat'
};
const heading = {
fontSize: '28px',
fontWeight: 'bold',
- marginTop: '48px',
+ marginTop: '48px'
};
const body = {
- margin: '24px 0',
+ margin: '24px 0'
};
const paragraph = {
fontSize: '16px',
- lineHeight: '26px',
+ lineHeight: '26px'
};
const link = {
- color: '#FF6363',
+ color: '#FF6363'
};
const hr = {
borderColor: '#dddddd',
- marginTop: '48px',
+ marginTop: '48px'
};
const footer = {
color: '#8898aa',
fontSize: '12px',
- marginLeft: '4px',
+ marginLeft: '4px'
};
diff --git a/apps/demo/emails/slack-confirm.tsx b/apps/demo/emails/slack-confirm.tsx
index 45d5aa0c..0fc0e6a0 100644
--- a/apps/demo/emails/slack-confirm.tsx
+++ b/apps/demo/emails/slack-confirm.tsx
@@ -10,38 +10,29 @@ import {
Preview,
Row,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
interface SlackConfirmEmailProps {
validationCode?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
-export const SlackConfirmEmail = ({
- validationCode,
-}: SlackConfirmEmailProps) => (
+export const SlackConfirmEmail = ({ validationCode }: SlackConfirmEmailProps) => (
Confirm your email address
-
+
Confirm your email address
- Your confirmation code is below - enter it in your open browser window
- and we'll help you get signed in.
+ Your confirmation code is below - enter it in your open browser window and we'll help you
+ get signed in.
@@ -49,19 +40,14 @@ export const SlackConfirmEmail = ({
- If you didn't request this email, there's nothing to worry about - you
- can safely ignore it.
+ If you didn't request this email, there's nothing to worry about - you can safely ignore
+ it.
-
-
+
+
@@ -156,83 +142,83 @@ export const SlackConfirmEmail = ({
);
SlackConfirmEmail.PreviewProps = {
- validationCode: "DJZ-TLX",
+ validationCode: 'DJZ-TLX'
} as SlackConfirmEmailProps;
export default SlackConfirmEmail;
const footerText = {
- fontSize: "12px",
- color: "#b7b7b7",
- lineHeight: "15px",
- textAlign: "left" as const,
- marginBottom: "50px",
+ fontSize: '12px',
+ color: '#b7b7b7',
+ lineHeight: '15px',
+ textAlign: 'left' as const,
+ marginBottom: '50px'
};
const footerLink = {
- color: "#b7b7b7",
- textDecoration: "underline",
+ color: '#b7b7b7',
+ textDecoration: 'underline'
};
const footerLogos = {
- marginBottom: "32px",
- paddingLeft: "8px",
- paddingRight: "8px",
- width: "100%",
+ marginBottom: '32px',
+ paddingLeft: '8px',
+ paddingRight: '8px',
+ width: '100%'
};
const socialMediaIcon = {
- display: "inline",
- marginLeft: "32px",
+ display: 'inline',
+ marginLeft: '32px'
};
const main = {
- backgroundColor: "#ffffff",
- margin: "0 auto",
+ backgroundColor: '#ffffff',
+ margin: '0 auto',
fontFamily:
- "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif",
+ "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif"
};
const container = {
- maxWidth: "600px",
- margin: "0 auto",
+ maxWidth: '600px',
+ margin: '0 auto'
};
const logoContainer = {
- marginTop: "32px",
+ marginTop: '32px'
};
const h1 = {
- color: "#1d1c1d",
- fontSize: "36px",
- fontWeight: "700",
- margin: "30px 0",
- padding: "0",
- lineHeight: "42px",
+ color: '#1d1c1d',
+ fontSize: '36px',
+ fontWeight: '700',
+ margin: '30px 0',
+ padding: '0',
+ lineHeight: '42px'
};
const heroText = {
- fontSize: "20px",
- lineHeight: "28px",
- marginBottom: "30px",
+ fontSize: '20px',
+ lineHeight: '28px',
+ marginBottom: '30px'
};
const codeBox = {
- background: "rgb(245, 244, 245)",
- borderRadius: "4px",
- marginRight: "50px",
- marginBottom: "30px",
- padding: "43px 23px",
+ background: 'rgb(245, 244, 245)',
+ borderRadius: '4px',
+ marginRight: '50px',
+ marginBottom: '30px',
+ padding: '43px 23px'
};
const confirmationCodeText = {
- fontSize: "30px",
- textAlign: "center" as const,
- verticalAlign: "middle",
+ fontSize: '30px',
+ textAlign: 'center' as const,
+ verticalAlign: 'middle'
};
const text = {
- color: "#000",
- fontSize: "14px",
- lineHeight: "24px",
+ color: '#000',
+ fontSize: '14px',
+ lineHeight: '24px'
};
diff --git a/apps/demo/emails/stack-overflow-tips.tsx b/apps/demo/emails/stack-overflow-tips.tsx
index 1b7d6551..a2c39d89 100644
--- a/apps/demo/emails/stack-overflow-tips.tsx
+++ b/apps/demo/emails/stack-overflow-tips.tsx
@@ -11,41 +11,35 @@ import {
Preview,
Section,
Text,
- Row,
+ Row
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
interface StackOverflowTipsEmailProps {
tips?: { id: number; description: string }[];
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
const PropDefaults: StackOverflowTipsEmailProps = {
tips: [
{
id: 1,
- description:
- 'To find a specific phrase, enter it in quotes: "local storage"',
+ description: 'To find a specific phrase, enter it in quotes: "local storage"'
},
{
id: 1,
- description:
- "To search within specific tag(s), enter them in square brackets: [javascript]",
+ description: 'To search within specific tag(s), enter them in square brackets: [javascript]'
},
{
id: 1,
description:
- 'Combine them to get even more precise results - [javascript] "local storage" searches for the phrase “local storage” in questions that have the [javascript] tag',
- },
- ],
+ 'Combine them to get even more precise results - [javascript] "local storage" searches for the phrase “local storage” in questions that have the [javascript] tag'
+ }
+ ]
};
-export const StackOverflowTipsEmail = ({
- tips = [],
-}: StackOverflowTipsEmailProps) => (
+export const StackOverflowTipsEmail = ({ tips = [] }: StackOverflowTipsEmailProps) => (
Stack overflow tips for searching
@@ -58,18 +52,13 @@ export const StackOverflowTipsEmail = ({
-
- Find what you want, faster
-
+ Find what you want, faster
Tips and tricks for searching on Stack Overflow
-
+
@@ -79,8 +68,8 @@ export const StackOverflowTipsEmail = ({
Searching for solutions
- With more than 18 million questions, it's possible that someone has
- already provided a solution to the problem you're facing.{" "}
+ With more than 18 million questions, it's possible that someone has already provided a
+ solution to the problem you're facing.{' '}
@@ -88,9 +77,7 @@ export const StackOverflowTipsEmail = ({
Use the search bar at the top of the page to find what you need
-
- Here are a few simple search tips to get you started:
-
+ Here are a few simple search tips to get you started:
{tips.map((tip) => (
@@ -100,9 +87,9 @@ export const StackOverflowTipsEmail = ({
- The more information you can put in the search bar, the more likely
- you will be to either find the answer you need or feel confident
- that no one else has asked the question before.
+ The more information you can put in the search bar, the more likely you will be to
+ either find the answer you need or feel confident that no one else has asked the
+ question before.
@@ -121,15 +108,15 @@ export const StackOverflowTipsEmail = ({
- You're receiving this email because your Stack Overflow activity
- triggered this tip or reminder.
+ You're receiving this email because your Stack Overflow activity triggered this tip or
+ reminder.
- Unsubscribe from emails like this{" "}
+ Unsubscribe from emails like this{' '}
- Edit email settings{" "}
+ Edit email settings{' '}
Contact us
@@ -142,145 +129,144 @@ export const StackOverflowTipsEmail = ({
- Stack Overflow , 110 William Street, 28th Floor, New
- York, NY 10038
+ Stack Overflow , 110 William Street, 28th Floor, New York, NY 10038
- {"<3"}
+ {'<3'}
);
StackOverflowTipsEmail.PreviewProps = {
- tips: PropDefaults.tips,
+ tips: PropDefaults.tips
} as StackOverflowTipsEmailProps;
export default StackOverflowTipsEmail;
const main = {
- backgroundColor: "#f3f3f5",
- fontFamily: "HelveticaNeue,Helvetica,Arial,sans-serif",
+ backgroundColor: '#f3f3f5',
+ fontFamily: 'HelveticaNeue,Helvetica,Arial,sans-serif'
};
-const headerContent = { padding: "20px 30px 15px" };
+const headerContent = { padding: '20px 30px 15px' };
const headerContentTitle = {
- color: "#fff",
- fontSize: "27px",
- fontWeight: "bold",
- lineHeight: "27px",
+ color: '#fff',
+ fontSize: '27px',
+ fontWeight: 'bold',
+ lineHeight: '27px'
};
const headerContentSubtitle = {
- color: "#fff",
- fontSize: "17px",
+ color: '#fff',
+ fontSize: '17px'
};
const headerImageContainer = {
- padding: "30px 10px",
+ padding: '30px 10px'
};
const title = {
- margin: "0 0 15px",
- fontWeight: "bold",
- fontSize: "21px",
- lineHeight: "21px",
- color: "#0c0d0e",
+ margin: '0 0 15px',
+ fontWeight: 'bold',
+ fontSize: '21px',
+ lineHeight: '21px',
+ color: '#0c0d0e'
};
const paragraph = {
- fontSize: "15px",
- lineHeight: "21px",
- color: "#3c3f44",
+ fontSize: '15px',
+ lineHeight: '21px',
+ color: '#3c3f44'
};
const divider = {
- margin: "30px 0",
+ margin: '30px 0'
};
const container = {
- maxWidth: "680px",
- width: "100%",
- margin: "0 auto",
- backgroundColor: "#ffffff",
+ maxWidth: '680px',
+ width: '100%',
+ margin: '0 auto',
+ backgroundColor: '#ffffff'
};
const footer = {
- width: "680px",
- margin: "32px auto 0 auto",
- padding: "0 30px",
+ width: '680px',
+ margin: '32px auto 0 auto',
+ padding: '0 30px'
};
const content = {
- padding: "30px 30px 40px 30px",
+ padding: '30px 30px 40px 30px'
};
const logo = {
- display: "flex",
- background: "#f3f3f5",
- padding: "20px 30px",
+ display: 'flex',
+ background: '#f3f3f5',
+ padding: '20px 30px'
};
const header = {
- borderRadius: "5px 5px 0 0",
- display: "flex",
- flexDireciont: "column",
- backgroundColor: "#2b2d6e",
+ borderRadius: '5px 5px 0 0',
+ display: 'flex',
+ flexDireciont: 'column',
+ backgroundColor: '#2b2d6e'
};
const buttonContainer = {
- marginTop: "24px",
- display: "block",
+ marginTop: '24px',
+ display: 'block'
};
const button = {
- backgroundColor: "#0095ff",
- border: "1px solid #0077cc",
- fontSize: "17px",
- lineHeight: "17px",
- padding: "13px 17px",
- borderRadius: "4px",
- maxWidth: "120px",
- color: "#fff",
+ backgroundColor: '#0095ff',
+ border: '1px solid #0077cc',
+ fontSize: '17px',
+ lineHeight: '17px',
+ padding: '13px 17px',
+ borderRadius: '4px',
+ maxWidth: '120px',
+ color: '#fff'
};
const footerDivider = {
...divider,
- borderColor: "#d6d8db",
+ borderColor: '#d6d8db'
};
const footerText = {
- fontSize: "12px",
- lineHeight: "15px",
- color: "#9199a1",
- margin: "0",
+ fontSize: '12px',
+ lineHeight: '15px',
+ color: '#9199a1',
+ margin: '0'
};
const footerLink = {
- display: "inline-block",
- color: "#9199a1",
- textDecoration: "underline",
- fontSize: "12px",
- marginRight: "10px",
- marginBottom: "0",
- marginTop: "8px",
+ display: 'inline-block',
+ color: '#9199a1',
+ textDecoration: 'underline',
+ fontSize: '12px',
+ marginRight: '10px',
+ marginBottom: '0',
+ marginTop: '8px'
};
const footerAddress = {
- margin: "4px 0",
- fontSize: "12px",
- lineHeight: "15px",
- color: "#9199a1",
+ margin: '4px 0',
+ fontSize: '12px',
+ lineHeight: '15px',
+ color: '#9199a1'
};
const footerHeart = {
- borderRadius: "1px",
- border: "1px solid #d6d9dc",
- padding: "4px 6px 3px 6px",
- fontSize: "11px",
- lineHeight: "11px",
- fontFamily: "Consolas,monospace",
- color: "#e06c77",
- maxWidth: "min-content",
- margin: "0 0 32px 0",
+ borderRadius: '1px',
+ border: '1px solid #d6d9dc',
+ padding: '4px 6px 3px 6px',
+ fontSize: '11px',
+ lineHeight: '11px',
+ fontFamily: 'Consolas,monospace',
+ color: '#e06c77',
+ maxWidth: 'min-content',
+ margin: '0 0 32px 0'
};
diff --git a/apps/demo/emails/stripe-welcome.tsx b/apps/demo/emails/stripe-welcome.tsx
index 4f97e953..b6cbed78 100644
--- a/apps/demo/emails/stripe-welcome.tsx
+++ b/apps/demo/emails/stripe-welcome.tsx
@@ -9,13 +9,11 @@ import {
Link,
Preview,
Section,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const StripeWelcomeEmail = () => (
@@ -24,27 +22,17 @@ export const StripeWelcomeEmail = () => (
-
+
- Thanks for submitting your account information. You're now ready to
- make live transactions with Stripe!
+ Thanks for submitting your account information. You're now ready to make live
+ transactions with Stripe!
- You can view your payments and a variety of other information about
- your account right from your dashboard.
+ You can view your payments and a variety of other information about your account right
+ from your dashboard.
-
+
View your Stripe Dashboard
@@ -56,17 +44,12 @@ export const StripeWelcomeEmail = () => (
handy.
- Once you're ready to start accepting payments, you'll just need to
- use your live{' '}
-
+ Once you're ready to start accepting payments, you'll just need to use your live{' '}
+
API keys
{' '}
- instead of your test API keys. Your account can simultaneously be
- used for both test and live requests, so you can continue testing
- while accepting live payments. Check out our{' '}
+ instead of your test API keys. Your account can simultaneously be used for both test and
+ live requests, so you can continue testing while accepting live payments. Check out our{' '}
tutorial about account basics
@@ -74,17 +57,14 @@ export const StripeWelcomeEmail = () => (
Finally, we've put together a{' '}
-
+
quick checklist
{' '}
to ensure your website conforms to card network standards.
- We'll be here to help you with any step along the way. You can find
- answers to most questions and get in touch with us on our{' '}
+ We'll be here to help you with any step along the way. You can find answers to most
+ questions and get in touch with us on our{' '}
support site
@@ -92,9 +72,7 @@ export const StripeWelcomeEmail = () => (
— The Stripe team
-
- Stripe, 354 Oyster Point Blvd, South San Francisco, CA 94080
-
+ Stripe, 354 Oyster Point Blvd, South San Francisco, CA 94080
@@ -106,23 +84,23 @@ export default StripeWelcomeEmail;
const main = {
backgroundColor: '#f6f9fc',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif'
};
const container = {
backgroundColor: '#ffffff',
margin: '0 auto',
padding: '20px 0 48px',
- marginBottom: '64px',
+ marginBottom: '64px'
};
const box = {
- padding: '0 48px',
+ padding: '0 48px'
};
const hr = {
borderColor: '#e6ebf1',
- margin: '20px 0',
+ margin: '20px 0'
};
const paragraph = {
@@ -130,11 +108,11 @@ const paragraph = {
fontSize: '16px',
lineHeight: '24px',
- textAlign: 'left' as const,
+ textAlign: 'left' as const
};
const anchor = {
- color: '#556cd6',
+ color: '#556cd6'
};
const button = {
@@ -146,11 +124,11 @@ const button = {
textDecoration: 'none',
textAlign: 'center' as const,
display: 'block',
- width: '100%',
+ width: '100%'
};
const footer = {
color: '#8898aa',
fontSize: '12px',
- lineHeight: '16px',
+ lineHeight: '16px'
};
diff --git a/apps/demo/emails/twitch-reset-password.tsx b/apps/demo/emails/twitch-reset-password.tsx
index 1fd132b2..9a2158ca 100644
--- a/apps/demo/emails/twitch-reset-password.tsx
+++ b/apps/demo/emails/twitch-reset-password.tsx
@@ -9,26 +9,24 @@ import {
Preview,
Row,
Section,
- Text,
-} from'@jsx-email/components';
-import * as React from "react";
+ Text
+} from '@jsx-email/components';
+import * as React from 'react';
interface TwitchResetPasswordEmailProps {
username?: string;
updatedDate?: Date;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const TwitchResetPasswordEmail = ({
username,
- updatedDate,
+ updatedDate
}: TwitchResetPasswordEmailProps) => {
- const formattedDate = new Intl.DateTimeFormat("en", {
- dateStyle: "medium",
- timeStyle: "medium",
+ const formattedDate = new Intl.DateTimeFormat('en', {
+ dateStyle: 'medium',
+ timeStyle: 'medium'
}).format(updatedDate);
return (
@@ -50,27 +48,25 @@ export const TwitchResetPasswordEmail = ({
Hi {username},
- You updated the password for your Twitch account on{" "}
- {formattedDate}. If this was you, then no further action is
- required.
+ You updated the password for your Twitch account on {formattedDate}. If this was you,
+ then no further action is required.
- However if you did NOT perform this password change, please{" "}
+ However if you did NOT perform this password change, please{' '}
reset your account password
- {" "}
+ {' '}
immediately.
- Remember to use a password that is both strong and unique to your
- Twitch account. To learn more about how to create a strong and
- unique password,{" "}
+ Remember to use a password that is both strong and unique to your Twitch account. To
+ learn more about how to create a strong and unique password,{' '}
click here.
- Still have questions? Please contact{" "}
+ Still have questions? Please contact{' '}
Twitch Support
@@ -85,15 +81,15 @@ export const TwitchResetPasswordEmail = ({
-
+
-
+
-
+
© 2022 Twitch, All Rights Reserved
350 Bush Street, 2nd Floor, San Francisco, CA, 94104 - USA
@@ -105,61 +101,61 @@ export const TwitchResetPasswordEmail = ({
};
TwitchResetPasswordEmail.PreviewProps = {
- username: "zenorocha",
- updatedDate: new Date("June 23, 2022 4:06:00 pm UTC"),
+ username: 'zenorocha',
+ updatedDate: new Date('June 23, 2022 4:06:00 pm UTC')
} as TwitchResetPasswordEmailProps;
export default TwitchResetPasswordEmail;
-const fontFamily = "HelveticaNeue,Helvetica,Arial,sans-serif";
+const fontFamily = 'HelveticaNeue,Helvetica,Arial,sans-serif';
const main = {
- backgroundColor: "#efeef1",
- fontFamily,
+ backgroundColor: '#efeef1',
+ fontFamily
};
const paragraph = {
lineHeight: 1.5,
- fontSize: 14,
+ fontSize: 14
};
const container = {
- width: "580px",
- margin: "30px auto",
- backgroundColor: "#ffffff",
+ width: '580px',
+ margin: '30px auto',
+ backgroundColor: '#ffffff'
};
const footer = {
- width: "580px",
- margin: "0 auto",
+ width: '580px',
+ margin: '0 auto'
};
const content = {
- padding: "5px 50px 10px 60px",
+ padding: '5px 50px 10px 60px'
};
const logo = {
- display: "flex",
- justifyContent: "center",
- alingItems: "center",
- padding: 30,
+ display: 'flex',
+ justifyContent: 'center',
+ alingItems: 'center',
+ padding: 30
};
const sectionsBorders = {
- width: "100%",
- display: "flex",
+ width: '100%',
+ display: 'flex'
};
const sectionBorder = {
- borderBottom: "1px solid rgb(238,238,238)",
- width: "249px",
+ borderBottom: '1px solid rgb(238,238,238)',
+ width: '249px'
};
const sectionCenter = {
- borderBottom: "1px solid rgb(145,71,255)",
- width: "102px",
+ borderBottom: '1px solid rgb(145,71,255)',
+ width: '102px'
};
const link = {
- textDecoration: "underline",
+ textDecoration: 'underline'
};
diff --git a/apps/demo/emails/vercel-invite-user.tsx b/apps/demo/emails/vercel-invite-user.tsx
index 932a1095..32b40f6d 100644
--- a/apps/demo/emails/vercel-invite-user.tsx
+++ b/apps/demo/emails/vercel-invite-user.tsx
@@ -13,7 +13,7 @@ import {
Row,
Section,
Tailwind,
- Text,
+ Text
} from '@jsx-email/components';
import * as React from 'react';
@@ -29,9 +29,7 @@ interface VercelInviteUserEmailProps {
inviteFromLocation?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : '';
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const VercelInviteUserEmail = ({
username,
@@ -42,7 +40,7 @@ export const VercelInviteUserEmail = ({
teamImage,
inviteLink,
inviteFromIp,
- inviteFromLocation,
+ inviteFromLocation
}: VercelInviteUserEmailProps) => {
const previewText = `Join ${invitedByUsername} on Vercel`;
@@ -65,19 +63,13 @@ export const VercelInviteUserEmail = ({
Join {teamName} on Vercel
-
- Hello {username},
-
+ Hello {username},
{invitedByUsername} (
-
+
{invitedByEmail}
- ) has invited you to the {teamName} team on{' '}
- Vercel .
+ ) has invited you to the {teamName} team on Vercel .
@@ -109,22 +101,17 @@ export const VercelInviteUserEmail = ({
or copy and paste this URL into your browser:{' '}
-
+
{inviteLink}
- This invitation was intended for{' '}
- {username} .This invite was sent from{' '}
- {inviteFromIp} located in{' '}
- {inviteFromLocation} . If you were not
- expecting this invitation, you can ignore this email. If you are
- concerned about your account's safety, please reply to this email to
- get in touch with us.
+ This invitation was intended for {username} .This
+ invite was sent from {inviteFromIp} located in{' '}
+ {inviteFromLocation} . If you were not expecting
+ this invitation, you can ignore this email. If you are concerned about your account's
+ safety, please reply to this email to get in touch with us.
@@ -142,7 +129,7 @@ VercelInviteUserEmail.PreviewProps = {
teamImage: `${baseUrl}/static/vercel-team.png`,
inviteLink: 'https://vercel.com/teams/invite/foo',
inviteFromIp: '204.13.186.218',
- inviteFromLocation: 'São Paulo, Brazil',
+ inviteFromLocation: 'São Paulo, Brazil'
} as VercelInviteUserEmailProps;
export default VercelInviteUserEmail;
diff --git a/apps/demo/emails/yelp-recent-login.tsx b/apps/demo/emails/yelp-recent-login.tsx
index 926304fa..aab5d08d 100644
--- a/apps/demo/emails/yelp-recent-login.tsx
+++ b/apps/demo/emails/yelp-recent-login.tsx
@@ -10,9 +10,9 @@ import {
Preview,
Row,
Section,
- Text,
+ Text
} from '@jsx-email/components';
-import * as React from "react";
+import * as React from 'react';
interface YelpRecentLoginEmailProps {
userFirstName?: string;
@@ -22,20 +22,18 @@ interface YelpRecentLoginEmailProps {
loginIp?: string;
}
-const baseUrl = import.meta.env.VERCEL_URL
- ? `https://${import.meta.env.VERCEL_URL}`
- : "";
+const baseUrl = process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : '';
export const YelpRecentLoginEmail = ({
userFirstName,
loginDate,
loginDevice,
loginLocation,
- loginIp,
+ loginIp
}: YelpRecentLoginEmailProps) => {
- const formattedDate = new Intl.DateTimeFormat("en", {
- dateStyle: "long",
- timeStyle: "short",
+ const formattedDate = new Intl.DateTimeFormat('en', {
+ dateStyle: 'long',
+ timeStyle: 'short'
}).format(loginDate);
return (
@@ -53,13 +51,13 @@ export const YelpRecentLoginEmail = ({
-
+
Hi {userFirstName},
@@ -68,8 +66,8 @@ export const YelpRecentLoginEmail = ({
as="h2"
style={{
fontSize: 26,
- fontWeight: "bold",
- textAlign: "center",
+ fontWeight: 'bold',
+ textAlign: 'center'
}}
>
We noticed a recent login to your Yelp account.
@@ -89,25 +87,23 @@ export const YelpRecentLoginEmail = ({
*Approximate geographic location based on IP address:
{loginIp}
-
- If this was you, there's nothing else you need to do.
-
+ If this was you, there's nothing else you need to do.
- If this wasn't you or if you have additional questions, please
- see our support page.
+ If this wasn't you or if you have additional questions, please see our support
+ page.
-
+
Learn More
@@ -122,13 +118,12 @@ export const YelpRecentLoginEmail = ({
- © 2022 | Yelp Inc., 350 Mission Street, San Francisco, CA 94105,
- U.S.A. | www.yelp.com
+ © 2022 | Yelp Inc., 350 Mission Street, San Francisco, CA 94105, U.S.A. | www.yelp.com
@@ -137,54 +132,54 @@ export const YelpRecentLoginEmail = ({
};
YelpRecentLoginEmail.PreviewProps = {
- userFirstName: "Zeno",
- loginDate: new Date("September 7, 2022, 10:58 am"),
- loginDevice: "Chrome on Mac OS X",
- loginLocation: "Upland, California, United States",
- loginIp: "47.149.53.167",
+ userFirstName: 'Zeno',
+ loginDate: new Date('September 7, 2022, 10:58 am'),
+ loginDevice: 'Chrome on Mac OS X',
+ loginLocation: 'Upland, California, United States',
+ loginIp: '47.149.53.167'
} as YelpRecentLoginEmailProps;
export default YelpRecentLoginEmail;
const main = {
- backgroundColor: "#fff",
+ backgroundColor: '#fff',
fontFamily:
- '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif',
+ '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif'
};
const paragraph = {
- fontSize: 16,
+ fontSize: 16
};
const logo = {
- padding: "30px 20px",
+ padding: '30px 20px'
};
const containerButton = {
- display: "flex",
- justifyContent: "center",
- width: "100%",
+ display: 'flex',
+ justifyContent: 'center',
+ width: '100%'
};
const button = {
- backgroundColor: "#e00707",
+ backgroundColor: '#e00707',
borderRadius: 3,
- color: "#FFF",
- fontWeight: "bold",
- border: "1px solid rgb(0,0,0, 0.1)",
- cursor: "pointer",
+ color: '#FFF',
+ fontWeight: 'bold',
+ border: '1px solid rgb(0,0,0, 0.1)',
+ cursor: 'pointer'
};
const content = {
- border: "1px solid rgb(0,0,0, 0.1)",
- borderRadius: "3px",
- overflow: "hidden",
+ border: '1px solid rgb(0,0,0, 0.1)',
+ borderRadius: '3px',
+ overflow: 'hidden'
};
const boxInfos = {
- padding: "20px 40px",
+ padding: '20px 40px'
};
const containerImageFooter = {
- padding: "45px 0 0 0",
+ padding: '45px 0 0 0'
};
diff --git a/apps/demo/moon.yml b/apps/demo/moon.yml
new file mode 100644
index 00000000..5e49b7ed
--- /dev/null
+++ b/apps/demo/moon.yml
@@ -0,0 +1,12 @@
+# https://moonrepo.dev/docs/config/tasks
+$schema: 'https://moonrepo.dev/schemas/tasks.json'
+
+workspace:
+ inheritedTasks:
+ exclude: ['build', 'compile']
+
+tasks:
+ dev:
+ command: email preview emails
+ options:
+ cache: false
diff --git a/apps/demo/package.json b/apps/demo/package.json
index aa79feb4..453c07f2 100644
--- a/apps/demo/package.json
+++ b/apps/demo/package.json
@@ -4,9 +4,6 @@
"private": true,
"description": "A demo package to run the preview server against. This is not published",
"license": "MIT",
- "scripts": {
- "dev": "email preview emails"
- },
"peerDependencies": {
"react": "^18.2.0"
},
@@ -14,4 +11,4 @@
"@jsx-email/cli": "workspace:*",
"@jsx-email/components": "workspace:*"
}
-}
\ No newline at end of file
+}
diff --git a/apps/docs/package.json b/apps/docs/package.json
index d8ffa744..26c87582 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -3,8 +3,7 @@
"version": "0.0.0",
"private": true,
"scripts": {
- "dev": "mintlify dev",
- "install": "mintlify install"
+ "dev": "mintlify dev"
},
"dependencies": {
"mintlify": "3.0.65"
diff --git a/moon.yml b/moon.yml
index 4bbc1152..74f7e5f2 100644
--- a/moon.yml
+++ b/moon.yml
@@ -28,8 +28,9 @@ tasks:
- text:build
# Note: Build render second to last
- render:build
- # Note: Build components last
+ # Note: Build components and cli last
- components:build
+ - cli:build
options:
cache: false
outputStyle: 'stream'
diff --git a/package.json b/package.json
index f393ce2b..0dc93691 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "jsx-email",
+ "name": "repo",
"version": "0.0.0",
"private": true,
"scripts": {
@@ -48,4 +48,4 @@
"react-router-dom": "6.16.0"
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/cli/app/src/App.css b/packages/cli/app/src/App.css
deleted file mode 100644
index b9d355df..00000000
--- a/packages/cli/app/src/App.css
+++ /dev/null
@@ -1,42 +0,0 @@
-#root {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
- text-align: center;
-}
-
-.logo {
- height: 6em;
- padding: 1.5em;
- will-change: filter;
- transition: filter 300ms;
-}
-.logo:hover {
- filter: drop-shadow(0 0 2em #646cffaa);
-}
-.logo.react:hover {
- filter: drop-shadow(0 0 2em #61dafbaa);
-}
-
-@keyframes logo-spin {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(360deg);
- }
-}
-
-@media (prefers-reduced-motion: no-preference) {
- a:nth-of-type(2) .logo {
- animation: logo-spin infinite 20s linear;
- }
-}
-
-.card {
- padding: 2em;
-}
-
-.read-the-docs {
- color: #888;
-}
diff --git a/packages/cli/app/src/App.old.tsx b/packages/cli/app/src/App.old.tsx
deleted file mode 100644
index e2da0537..00000000
--- a/packages/cli/app/src/App.old.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { useState } from 'react';
-import './App.css';
-
-function App() {
- const [count, setCount] = useState(0);
-
- return (
- <>
-
- Vite + React
-
-
setCount((count) => count + 1)}>count is {count}
-
- Edit src/App.tsx
and save to test HMR
-
-
- Click on the Vite and React logos to learn more
- >
- );
-}
-
-export default App;
diff --git a/packages/cli/app/src/components/code-container.tsx b/packages/cli/app/src/components/code-container.tsx
index 186c7956..96213fdc 100644
--- a/packages/cli/app/src/components/code-container.tsx
+++ b/packages/cli/app/src/components/code-container.tsx
@@ -1,33 +1,33 @@
-import { LayoutGroup, motion } from 'framer-motion';
+import classNames from 'classnames';
import * as React from 'react';
-import { PreviewLanguage, copyTextToClipboard, languageMap } from '../helpers';
+import { PreviewLanguage, copyTextToClipboard } from '../helpers';
import { Code } from './code';
import { IconButton, IconCheck, IconClipboard, IconDownload } from './icons';
import { Tooltip } from './tooltip';
-interface MarkupProps {
+interface RawProps {
content: string;
language: PreviewLanguage;
}
interface CodeContainerProps {
- activeLang: string;
- markups: MarkupProps[];
- setActiveLang: (lang: string) => void;
+ activeView: string;
+ raws: RawProps[];
+ setActiveView: (lang: string) => void;
}
export const CodeContainer: React.FC> = ({
- activeLang,
- markups,
- setActiveLang
+ activeView,
+ raws
+ // setActiveLang
}) => {
const [isCopied, setIsCopied] = React.useState(false);
const renderDownloadIcon = () => {
- const value = markups.filter((markup) => markup.language === activeLang);
- const file = new File([value[0].content], `email.${value[0].language}`);
+ const value = raws.find((raw) => raw.language === activeView);
+ const file = new File([value!.content], `email.${value!.language}`);
const url = URL.createObjectURL(file);
return (
@@ -43,7 +43,7 @@ export const CodeContainer: React.FC> = ({
const renderClipboardIcon = () => {
const handleClipboard = async () => {
- const activeContent = markups.filter(({ language }) => activeLang === language);
+ const activeContent = raws.filter(({ language }) => activeView === language);
setIsCopied(true);
await copyTextToClipboard(activeContent[0].content);
setTimeout(() => setIsCopied(false), 3000);
@@ -58,66 +58,37 @@ export const CodeContainer: React.FC> = ({
React.useEffect(() => {
setIsCopied(false);
- }, [activeLang]);
+ }, [activeView]);
return (
-
-
-
-
- {markups.map(({ language }) => {
- const isCurrentLang = activeLang === language;
- return (
- setActiveLang(language)}
- key={language}
- >
- {isCurrentLang && (
-
- )}
- {languageMap[language]}
-
- );
- })}
-
-
-
-
- {renderClipboardIcon()}
-
- Copy to Clipboard
-
-
-
- {renderDownloadIcon()}
-
- Download
-
-
- {markups.map(({ language, content }) => (
-
-
{content}
+ <>
+
+
+ {renderClipboardIcon()}
+
+ Copy to Clipboard
+
+
+
+ {renderDownloadIcon()}
+
+ Download
+
+ {raws.map(({ language, content }) => (
+
+ {content.trim()}
))}
-
+ >
);
};
diff --git a/packages/cli/app/src/components/code.tsx b/packages/cli/app/src/components/code.tsx
index 84c88e62..e592e035 100644
--- a/packages/cli/app/src/components/code.tsx
+++ b/packages/cli/app/src/components/code.tsx
@@ -1,97 +1,41 @@
import classnames from 'classnames';
-import { Highlight, Language } from 'prism-react-renderer';
-import * as React from 'react';
+import { getHighlighter } from 'shikiji';
import { PreviewLanguage } from '../helpers';
interface CodeProps {
- children: any;
+ children: string;
className?: string;
language?: PreviewLanguage;
}
-// const theme = {
-// plain: {
-// color: '#EDEDEF',
-// fontFamily: 'MonoLisa, Menlo, monospace',
-// fontSize: 13
-// },
-// styles: [
-// {
-// style: {
-// color: '#706F78'
-// },
-// types: ['comment']
-// },
-// {
-// style: {
-// color: '#7E7D86'
-// },
-// types: ['atrule', 'keyword', 'attr-name', 'selector']
-// },
-// {
-// style: {
-// color: '#706F78'
-// },
-// types: ['punctuation', 'operator']
-// },
-// {
-// style: {
-// color: '#EDEDEF'
-// },
-// types: ['class-name', 'function', 'tag', 'key-white']
-// }
-// ]
-// };
+const theme = 'dark-plus';
+const shiki = await getHighlighter({
+ langs: ['html', 'tsx'],
+ themes: [theme]
+});
-export const Code: React.FC
> = ({ children, language = 'html' }) => {
+export const Code = ({ children: value, language = 'html' }: CodeProps) => {
// const [isCopied, setIsCopied] = React.useState(false);
- const value = children.trim();
-
- // const file = new File([value], `email.${language}`);
- // const url = URL.createObjectURL(file);
+ const lang = language === 'jsx' ? 'tsx' : language;
+ const code = language === 'plain' ? value : shiki.codeToHtml(value, { lang, theme });
+ const lines = value.split('\n').length;
+ const css = `
+ .${language} .shiki .line:before {
+ width: calc(${lines.toString().length} * 12px + 12px);
+ }`;
return (
-
- {({ tokens, getLineProps, getTokenProps }) => (
- <>
-
-
- {tokens.map((line, i) => {
- const { key: lineKey, ...lineProps } = getLineProps({ key: i, line });
- return (
-
- {line.map((token, key) => {
- const { key: tokenKey, ...tokenProps } = getTokenProps({ key, token });
- const isException = token.content === 'from' && line[key + 1]?.content === ':';
- const newTypes = isException ? [...token.types, 'key-white'] : token.types;
- token.types = newTypes;
-
- return (
-
-
-
- );
- })}
-
- );
- })}
-
-
- >
- )}
-
+ <>
+
+
+ >
);
};
diff --git a/packages/cli/app/src/components/logo.tsx b/packages/cli/app/src/components/logo.tsx
index 9ed4820d..59cb1eee 100644
--- a/packages/cli/app/src/components/logo.tsx
+++ b/packages/cli/app/src/components/logo.tsx
@@ -6,8 +6,8 @@ type RootProps = React.ComponentPropsWithoutRef<'svg'>;
export const Logo = React.forwardRef>((_, __) => (
diff --git a/packages/cli/app/src/components/shell.tsx b/packages/cli/app/src/components/shell.tsx
index 6e860b4b..38598fa4 100644
--- a/packages/cli/app/src/components/shell.tsx
+++ b/packages/cli/app/src/components/shell.tsx
@@ -42,7 +42,7 @@ export const Shell = React.forwardRef>(
markup={html}
/>
)}
-
+
diff --git a/packages/cli/app/src/components/sidebar.tsx b/packages/cli/app/src/components/sidebar.tsx
index f74f5688..74a90277 100644
--- a/packages/cli/app/src/components/sidebar.tsx
+++ b/packages/cli/app/src/components/sidebar.tsx
@@ -85,8 +85,9 @@ export const Sidebar = React.forwardRef
>(
diff --git a/packages/cli/app/src/components/topbar.tsx b/packages/cli/app/src/components/topbar.tsx
index 84a30ac0..3d335067 100644
--- a/packages/cli/app/src/components/topbar.tsx
+++ b/packages/cli/app/src/components/topbar.tsx
@@ -17,7 +17,8 @@ interface TopbarProps extends RootProps {
export const Topbar = React.forwardRef>(
({ className, title, markup, activeView, setActiveView, ...props }, forwardedRef) => {
- const columnWidth = 'w-[200px]';
+ const button = 'text-sm font-medium px-3 py-2 transition ease-in-out duration-200 relative';
+ const span = 'absolute left-0 right-0 top-0 bottom-0 bg-cta-bg';
return (
>(
)}
{...props}
>
-
+
{title}
-
+
{setActiveView && (
>(
}}
>
-
+
{activeView === 'desktop' && (
>(
-
-
+
+ {activeView === 'jsx' && (
+
)}
- >
- {activeView === 'source' && (
+
+ JSX
+
+
+
+
+
+ {activeView === 'html' && (
+
+ )}
+
+ HTML
+
+
+
+
+
+ {activeView === 'plain' && (
>(
)}
- Source
+ Plain Text
diff --git a/packages/cli/app/src/css/cta.css b/packages/cli/app/src/css/cta.css
deleted file mode 100644
index bd7ab0ac..00000000
--- a/packages/cli/app/src/css/cta.css
+++ /dev/null
@@ -1,9 +0,0 @@
-
-cta button
-padding: 0.5em 1em;
-font-weight: 500;
-text-decoration: none;
-border-radius: 5px;
-color: #343233;
-background-color: #ffd152;
-
diff --git a/packages/cli/app/src/css/globals.css b/packages/cli/app/src/css/globals.css
index 362722c9..ac98e5e4 100644
--- a/packages/cli/app/src/css/globals.css
+++ b/packages/cli/app/src/css/globals.css
@@ -6,7 +6,47 @@
@tailwind utilities;
@layer base {
- html, body, nav, button, div {
+ html, body {
font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
}
+
+ .shiki {
+ background: inherit !important;
+ counter-reset: line 0;
+ display: block;
+ gap: 0.3em;
+ grid-auto-rows: 1em;
+ grid-template-columns: min-content 1fr;
+ }
+
+ .shiki .line {
+ display: inline-block;
+ line-height: 20px;
+ min-height: auto;
+ vertical-align: middle;
+ white-space: pre;
+ }
+
+ .shiki .line:last-child:before, .shiki .line:last-child span {
+ padding-bottom: 30px;
+ }
+
+ .shiki .line:first-child:before, .shiki .line:first-child span {
+ padding-top: 10px;
+ }
+
+ .shiki .line:before {
+ background: #3d3a3a;
+ color: #777;
+ content: counter(line);
+ counter-increment: line;
+ display: inline-block;
+ margin-right: 10px;
+ padding-right: 10px;
+ text-align: right;
+ }
+
+ .plainText .shiki .line:before {
+ display: none;
+ }
}
diff --git a/packages/cli/app/src/css/monokai1.css b/packages/cli/app/src/css/monokai1.css
deleted file mode 100644
index 6133d166..00000000
--- a/packages/cli/app/src/css/monokai1.css
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
- * Monokai theme for Prism.JS
- *
- * @author Martijn Swaagman
- * @license MIT 2015
- */
- code[class*="language-"],
- pre[class*="language-"] {
- color: #f8f8f2;
- text-shadow: 0 1px rgba(0, 0, 0, 0.3);
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
- direction: ltr;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- line-height: 1.5;
-
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
-
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
- }
-
- pre[class*="language-"] {
- padding: 1em;
- margin: .5em 0;
- overflow: auto;
- border-radius: 0.3em;
- }
-
- :not(pre) > code[class*="language-"],
- pre[class*="language-"] {
- background: #272822;
- }
-
- :not(pre) > code[class*="language-"] {
- padding: .1em;
- border-radius: .3em;
- }
-
- .token.comment,
- .token.prolog,
- .token.doctype,
- .token.cdata {
- color: #778090;
- }
-
- .token.punctuation {
- color: #F8F8F2;
- }
-
- .namespace {
- opacity: .7;
- }
-
- .token.property,
- .token.tag,
- .token.constant,
- .token.symbol,
- .token.deleted {
- color: #F92672;
- }
-
- .token.boolean,
- .token.number {
- color: #AE81FF;
- }
-
- .token.selector,
- .token.attr-name,
- .token.string,
- .token.char,
- .token.builtin,
- .token.inserted {
- color: #A6E22E;
- }
-
- .token.operator,
- .token.entity,
- .token.url,
- .language-css .token.string,
- .style .token.string,
- .token.variable {
- color: #F8F8F2;
- }
-
- .token.atrule,
- .token.attr-value,
- .token.function {
- color: #E6DB74;
- }
-
- .token.keyword {
- color: #F92672;
- }
-
- .token.regex,
- .token.important {
- color: #FD971F;
- }
-
- .token.important,
- .token.bold {
- font-weight: bold;
- }
- .token.italic {
- font-style: italic;
- }
-
- .token.entity {
- cursor: help;
- }
\ No newline at end of file
diff --git a/packages/cli/app/src/css/monokai2.css b/packages/cli/app/src/css/monokai2.css
deleted file mode 100644
index 29324299..00000000
--- a/packages/cli/app/src/css/monokai2.css
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- * one-monokai theme for `prism.js`
- *
- * @author XZYQvQ (@konnyakuxzy)
- *
- * Based on Vscode One Monokai theme (https://github.com/azemoh/vscode-one-monokai)
- */
-/*********************************************************
-* General
-*/
-pre[class*="language-"],
-code[class*="language-"] {
- color: #bbbbbb;
- font-size: 13px;
- text-shadow: none;
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
- direction: ltr;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- line-height: 1.5;
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
-}
-pre[class*="language-"]::selection,
-code[class*="language-"]::selection,
-pre[class*="language-"]::mozselection,
-code[class*="language-"]::mozselection {
- text-shadow: none;
- background: #bbbbbb;
-}
-@media print {
- pre[class*="language-"],
- code[class*="language-"] {
- text-shadow: none;
- }
-}
-pre[class*="language-"] {
- padding: 1em;
- margin: .5em 0;
- overflow: auto;
- background: #282c34;
-}
-:not(pre) > code[class*="language-"] {
- padding: .1em .3em;
- border-radius: .3em;
- color: #DB4C69;
- background: #f9f2f4;
-}
-/*********************************************************
-* Tokens
-*/
-.namespace {
- opacity: .7;
-}
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
- color: #676f7d;
-}
-.token.punctuation {
- color: #bbbbbb;
-}
-.token.property,
-.token.tag,
-.token.boolean,
-.token.number,
-.token.constant,
-.token.symbol,
-.token.deleted {
- color: #c678dd;
-}
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
- color: #e5c07b;
-}
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string {
- color: #e06c75;
- background: #282c34;
-}
-.token.atrule,
-.token.attr-value,
-.token.keyword {
- color: #56b6c2;
-}
-.token.function {
- color: #98c379;
-}
-.token.regex,
-.token.important,
-.token.variable {
- color: #61afef;
-}
-.token.important,
-.token.bold {
- font-weight: bold;
-}
-.token.italic {
- font-style: italic;
-}
-.token.entity {
- cursor: help;
-}
-/*********************************************************
-* Line highlighting
-*/
-pre[data-line] {
- position: relative;
-}
-pre[class*="language-"] > code[class*="language-"] {
- position: relative;
- z-index: 1;
-}
-.line-highlight {
- position: absolute;
- left: 0;
- right: 0;
- padding: inherit 0;
- margin-top: 1em;
- background: #383e4a;
- box-shadow: inset 5px 0 0 #93979e;
- z-index: 0;
- pointer-events: none;
- line-height: inherit;
- white-space: pre;
-}
\ No newline at end of file
diff --git a/packages/cli/app/src/css/monokai3.css b/packages/cli/app/src/css/monokai3.css
deleted file mode 100644
index 1706ee8c..00000000
--- a/packages/cli/app/src/css/monokai3.css
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * prism.js Monokai theme for CSS & Sass/Scss
- *
- * @todo test for JavaScript & HTML
- *
- * @author @MoOx
- */
-/* line 35, syntax-highlighting.scss */
-code[class*="language-"],
-pre[class*="language-"] {
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
- white-space: pre;
- white-space: pre-wrap;
- word-break: break-all;
- word-wrap: break-word;
- font-family: Menlo, Monaco, "Courier New", monospace;
- font-size: 12px;
- line-height: 18px;
- color: #76d9e6;
- text-shadow: none;
-}
-
-/* line 61, syntax-highlighting.scss */
-pre[class*="language-"],
-:not(pre) > code[class*="language-"] {
- background: #2a2a2a;
-}
-
-/* line 66, syntax-highlighting.scss */
-pre[class*="language-"] {
- padding: 15px;
- border-radius: 4px;
- border: 1px solid #e1e1e8;
-}
-
-/* line 85, syntax-highlighting.scss */
-:not(pre) > code[class*="language-"] {
- padding: .15em .2em .05em;
- border-radius: .3em;
- border: 0.13em solid #7a6652;
- box-shadow: 1px 1px .3em -.1em black inset;
-}
-
-/* line 92, syntax-highlighting.scss */
-.namespace {
- opacity: .7;
-}
-
-/* line 100, syntax-highlighting.scss */
-.token.comment, .token.prolog, .token.doctype, .token.cdata {
- color: #6f705e;
-}
-/* line 107, syntax-highlighting.scss */
-.token.null, .token.operator, .token.boolean, .token.number {
- color: #a77afe;
-}
-/* line 112, syntax-highlighting.scss */
-.token.attr-name, .token.string {
- color: #e6d06c;
-}
-/* line 119, syntax-highlighting.scss */
-.token.entity, .token.url, .language-css .token.string, .style .token.string {
- color: #e6d06c;
-}
-/* line 123, syntax-highlighting.scss */
-.token.selector {
- color: #a6e22d;
-}
-/* line 133, syntax-highlighting.scss */
-.token.atrule, .token.attr-value, .token.keyword, .token.control, .token.directive, .token.important, .token.unit {
- color: #ef3b7d;
-}
-/* line 138, syntax-highlighting.scss */
-.token.regex, .token.statement {
- color: #76d9e6;
-}
-/* line 143, syntax-highlighting.scss */
-.token.placeholder, .token.variable {
- color: white;
-}
-/* line 148, syntax-highlighting.scss */
-.token.important, .token.statement {
- font-weight: bold;
-}
-/* line 152, syntax-highlighting.scss */
-.token.punctuation {
- color: #bebec5;
-}
-/* line 156, syntax-highlighting.scss */
-.token.entity {
- cursor: help;
-}
-/* line 161, syntax-highlighting.scss */
-.token.debug {
- color: red;
-}
-
-/* line 164, syntax-highlighting.scss */
-pre[data-line] {
- position: relative;
- padding: 1em 0 1em 3em;
-}
-
-/* line 169, syntax-highlighting.scss */
-.line-highlight {
- position: absolute;
- left: 0;
- right: 0;
- padding: inherit 0;
- margin-top: 1em;
- background: rgba(255, 255, 255, 0.08);
- pointer-events: none;
- line-height: inherit;
- white-space: pre;
-}
-
-/* line 185, syntax-highlighting.scss */
-.line-highlight:before,
-.line-highlight[data-end]:after {
- content: attr(data-start);
- position: absolute;
- top: .4em;
- left: .6em;
- min-width: 1em;
- padding: 0.2em .5em;
- background-color: rgba(255, 255, 255, 0.4);
- color: black;
- font: bold 65%/1 sans-serif;
- height: 1em;
- line-height: 1em;
- text-align: center;
- border-radius: 999px;
- text-shadow: none;
- box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
-}
-
-/* line 207, syntax-highlighting.scss */
-.line-highlight[data-end]:after {
- content: attr(data-end);
- top: auto;
- bottom: .4em;
-}
-
-/******************************************************************
-CODE - SWITCH COLORS A BIT DEPENDING ON LANGUAGE
-******************************************************************/
-/* line 216, syntax-highlighting.scss */
-code.language-markup {
- color: #f9f9f9;
-}
-/* line 220, syntax-highlighting.scss */
-code.language-markup .token.tag {
- color: #ef3b7d;
-}
-/* line 221, syntax-highlighting.scss */
-code.language-markup .token.attr-name {
- color: #a6e22d;
-}
-/* line 222, syntax-highlighting.scss */
-code.language-markup .token.attr-value {
- color: #e6d06c;
-}
-/* line 225, syntax-highlighting.scss */
-code.language-markup .token.style, code.language-markup .token.script {
- color: #76d9e6;
-}
-/* line 230, syntax-highlighting.scss */
-code.language-markup .token.script .token.keyword {
- color: #76d9e6;
-}
-
-/******************************************************************
-CODE - PRISM THEME OVERRIDES
-******************************************************************/
-/* line 241, syntax-highlighting.scss */
-code[class*="language-"],
-pre[class*="language-"] {
- white-space: pre !important;
- word-wrap: normal !important;
- overflow: auto;
- max-height: 610px;
-}
-
-/* line 251, syntax-highlighting.scss */
-pre {
- position: relative;
-}
-/* line 254, syntax-highlighting.scss */
-pre:before {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- padding: .5em 0;
- background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #333333), color-stop(100%, #000000));
- background: -webkit-linear-gradient(#333333, #000000);
- background: -moz-linear-gradient(#333333, #000000);
- background: -o-linear-gradient(#333333, #000000);
- background: linear-gradient(#333333, #000000);
- -webkit-border-radius: 4px 4px 0 0;
- -moz-border-radius: 4px 4px 0 0;
- -ms-border-radius: 4px 4px 0 0;
- -o-border-radius: 4px 4px 0 0;
- border-radius: 4px 4px 0 0;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
- font: bold 15px/1 sans-serif;
- color: white;
- text-indent: 1em;
-}
-/* line 269, syntax-highlighting.scss */
-pre code {
- overflow: auto;
- white-space: pre;
- display: block;
-}
-
-/* line 277, syntax-highlighting.scss */
-pre.language-markup:before {
- content: 'HTML';
-}
-
-/* line 278, syntax-highlighting.scss */
-pre.language-css:before {
- content: 'CSS';
-}
-
-/* line 279, syntax-highlighting.scss */
-pre.language-javascript:before {
- content: 'JavaScript';
-}
-
-/* line 280, syntax-highlighting.scss */
-pre.language-php:before {
- content: 'PHP';
-}
-
-/* line 281, syntax-highlighting.scss */
-pre.language-scss:before {
- content: 'SCSS (Sass / Compass)';
-}
\ No newline at end of file
diff --git a/packages/cli/app/src/css/monokai4.css b/packages/cli/app/src/css/monokai4.css
deleted file mode 100644
index e0c28cde..00000000
--- a/packages/cli/app/src/css/monokai4.css
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * prism.js Monokai theme
- * @author Sam Clarke
- */
- code[class*="language-"],
- pre[class*="language-"] {
- color: #f8f8f2;
- background: none;
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- line-height: 1.4;
-
- -moz-tab-size: 8;
- -o-tab-size: 8;
- tab-size: 8;
-
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
- }
-
- /* Code blocks */
- pre[class*="language-"] {
- padding: .8em;
- overflow: auto;
- background: #272822;
- }
-
- /* Inline code */
- :not(pre) > code[class*="language-"] {
- padding: .1em;
- border-radius: .3em;
- white-space: normal;
- background: #272822;
- }
-
- .token.comment,
- .token.blockquote,
- .token.shebang.important,
- .token.shebang {
- color: #75715e;
- }
-
- .token.operator,
- .token.important,
- .token.keyword,
- .token.rule,
- .token.tag,
- .token.deleted,
- .token.selector,
- .token.prolog,
- .token.title .token.punctuation {
- color: #f92672;
- }
-
- .token.property,
- .token.entity,
- .token.atrule,
- .token.command,
- .token.code {
- color: #66d9ef;
- }
-
- .token.regex,
- .token.atrule .token.property {
- color: #fd971f;
- }
-
- .token.pseudo-element,
- .token.id,
- .token.class,
- .token.class-name,
- .token.pseudo-class,
- .token.function,
- .token.namespace,
- .token.inserted,
- .token.symbol,
- .token.url-reference .token.variable,
- .token.attr-name {
- color: #a6e22e;
- }
-
- .token.string,
- .token.url,
- .token.list,
- .token.cdata,
- .token.attr-value,
- .token.attr-value a.token.url-link {
- color: #e6db74;
- }
-
- .token.constant,
- .token.hexcode,
- .token.builtin,
- .token.number,
- .token.boolean {
- color: #ae81ff;
- }
-
- .token.doctype,
- .token.punctuation,
- .token.variable,
- .token.macro.property {
- color: #f8f8f2;
- }
-
- .token.entity {
- cursor: help;
- }
-
- .token.title,
- .token.title .token.punctuation {
- font-weight: bold;
- }
-
- .token.bold {
- font-weight: bold;
- }
-
- .token.italic {
- font-style: italic;
- }
-
- /* YAML */
- .language-yaml .token.atrule {
- color: #f92672;
- }
-
- /* Bash */
- .language-bash .token.function {
- color: #f92672;
- }
\ No newline at end of file
diff --git a/packages/cli/app/src/helpers.ts b/packages/cli/app/src/helpers.ts
index ab2fab0b..12776f1b 100644
--- a/packages/cli/app/src/helpers.ts
+++ b/packages/cli/app/src/helpers.ts
@@ -25,7 +25,7 @@ export type As<
as: T5;
});
-export type PreviewLanguage = 'html' | 'jsx' | 'plainText';
+export type PreviewLanguage = 'html' | 'jsx' | 'plain';
export const copyTextToClipboard = async (text: string) => {
try {
diff --git a/packages/cli/app/src/layout.tsx b/packages/cli/app/src/layout.tsx
index 257e2b5c..4e0fe02d 100644
--- a/packages/cli/app/src/layout.tsx
+++ b/packages/cli/app/src/layout.tsx
@@ -2,7 +2,7 @@
import './css/globals.css';
export const Layout = ({ children }: { children: React.ReactNode }) => (
-
-
{children}
+
);
diff --git a/packages/cli/app/src/main.tsx b/packages/cli/app/src/main.tsx
index fdc73330..904f597c 100644
--- a/packages/cli/app/src/main.tsx
+++ b/packages/cli/app/src/main.tsx
@@ -56,6 +56,12 @@ const templateRoutes: RouteObject[] = templates.map((template) => {
if (Struct) props = create({}, Struct);
else if (PreviewProps) props = PreviewProps();
+ else if ((Template as any).PreviewProps) {
+ console.warn(
+ `jsx-email: ${Name} → PreviewProps as a property of a component is deprecated. Please used a named export.`
+ );
+ props = (Template as any).PreviewProps;
+ }
const html = render(
, { pretty: true });
const plainText = render(
, { plainText: true });
diff --git a/packages/cli/app/src/preview.tsx b/packages/cli/app/src/preview.tsx
index 12f4b779..fc797271 100644
--- a/packages/cli/app/src/preview.tsx
+++ b/packages/cli/app/src/preview.tsx
@@ -21,16 +21,13 @@ export const Preview = ({ html, jsx, plainText, templateNames, title }: PreviewP
const [searchParams] = useSearchParams();
const [activeView, setActiveView] = React.useState('desktop');
- const [activeLang, setActiveLang] = React.useState('jsx');
React.useEffect(() => {
document.title = `JSX email • ${title}`;
const view = searchParams.get('view');
- const lang = searchParams.get('lang');
- if (view === 'source' || view === 'desktop') setActiveView(view);
- if (lang === 'jsx' || lang === 'markup' || lang === 'markdown') setActiveLang(lang);
+ if (view && ['desktop', 'html', 'jsx', 'plainText'].includes(view)) setActiveView(view);
}, [searchParams]);
const handleViewChange = (view: string) => {
@@ -38,11 +35,6 @@ export const Preview = ({ html, jsx, plainText, templateNames, title }: PreviewP
navigate(`${pathname}?view=${view}`);
};
- const handleLangChange = (lang: string) => {
- setActiveLang(lang);
- navigate(`${pathname}?view=source&lang=${lang}`);
- };
-
return (
{activeView === 'desktop' ? (
-
+
) : (
-
+
diff --git a/packages/cli/app/vite.config.ts b/packages/cli/app/vite.config.ts
index 0df1bf4f..13bf0d2d 100644
--- a/packages/cli/app/vite.config.ts
+++ b/packages/cli/app/vite.config.ts
@@ -4,6 +4,9 @@ import react from '@vitejs/plugin-react';
process.chdir(__dirname);
export default defineConfig({
+ define: {
+ 'process.env': 'import.meta.env'
+ },
plugins: [react()],
root: __dirname
});
diff --git a/packages/cli/moon.yml b/packages/cli/moon.yml
index 6fe6c29b..70e232bb 100644
--- a/packages/cli/moon.yml
+++ b/packages/cli/moon.yml
@@ -7,7 +7,10 @@ workspace:
tasks:
build:
- command: rm -f tsconfig.json
+ command: rm -f tsconfig.json
+ inputs:
+ - app
+ - src
deps:
- ~:compile
options:
@@ -18,6 +21,7 @@ tasks:
compile:
command: echo "Compile compelete"
inputs:
+ - app
- src
deps:
- ~:tsconfig.link
diff --git a/packages/cli/package.json b/packages/cli/package.json
index a262f4f0..8fa6c17c 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -46,10 +46,10 @@
"js-beautify": "^1.14.9",
"mustache": "^4.2.0",
"postcss": "^8.4.29",
- "prism-react-renderer": "2.0.6",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-router-dom": "6.16.0",
+ "shikiji": "^0.6.8",
"superstruct": "^1.0.3",
"tailwindcss": "3.3.3",
"titleize": "^4.0.0",
diff --git a/packages/tailwind/src/tailwind.tsx b/packages/tailwind/src/tailwind.tsx
index 7d9e6139..0218ea32 100644
--- a/packages/tailwind/src/tailwind.tsx
+++ b/packages/tailwind/src/tailwind.tsx
@@ -42,6 +42,7 @@ export const Tailwind: React.FC
= ({ children, config }) => {
const html = renderToStaticMarkup(child);
const parsedHTML = htmlParser(html, {
+ // eslint-disable-next-line consistent-return
replace: (domNode) => {
if (domNode instanceof Element) {
if (hasResponsiveStyles && hasHead && domNode.name === 'head') {
@@ -62,7 +63,8 @@ export const Tailwind: React.FC = ({ children, config }) => {
}
if (domNode.attribs?.class) {
- const cleanRegex = /[:#!\-[\]/.%]+/g;
+ // eslint-disable-next-line no-useless-escape
+ const cleanRegex = /[:#\!\-[\]\/\.%]+/g;
const cleanTailwindClasses = domNode.attribs.class
// replace all non-alphanumeric characters with underscores
.replace(cleanRegex, '_');
@@ -77,10 +79,7 @@ export const Tailwind: React.FC = ({ children, config }) => {
domNode.attribs.class = domNode.attribs.class
// remove all non-responsive classes (ex: m-2 md:m-4 > md:m-4)
.split(' ')
- .filter((className: string) => {
- const cleanedClassName = className.replace(cleanRegex, '_');
- return className.search(/^.{2}:/) !== -1 || !cssMap[`.${cleanedClassName}`];
- })
+ .filter((className: string) => className.search(/^.{2}:/) !== -1)
.join(' ')
// replace all non-alphanumeric characters with underscores
.replace(cleanRegex, '_');
@@ -88,7 +87,6 @@ export const Tailwind: React.FC = ({ children, config }) => {
if (domNode.attribs.class === '') delete domNode.attribs.class;
}
}
- return void 0;
}
});
@@ -107,10 +105,15 @@ function cleanCss(css: string) {
const newCss = css
.replace(/\\/g, '')
// find all css selectors and look ahead for opening and closing curly braces
- .replace(/[.!#\w\d\\:\-[\]/.%())]+(?=\s*?{[^{]*?\})\s*?{/g, (m) =>
- m.replace(/[:#!\-[\\\]/.%()]+/g, '_')
+ // eslint-disable-next-line no-useless-escape
+ .replace(/[.\!\#\w\d\\:\-\[\]\/\.%\(\))]+(?=\s*?{[^{]*?\})\s*?{/g, (m) =>
+ // eslint-disable-next-line no-useless-escape
+ m.replace(/(?<=.)[:#\!\-[\\\]\/\.%]+/g, '_')
)
- .replace(/font-family([^;\r\n]+)/g, (_, value) => `font-family${value.replace(/['"]+/g, '')}`);
+ .replace(
+ /font-family(?[^;\r\n]+)/g,
+ (_, value) => `font-family${value.replace(/['"]+/g, '')}`
+ );
return newCss;
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 44765740..44c2fdd0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,5 +1,9 @@
lockfileVersion: '6.0'
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
overrides:
'@types/react': 18.2.22
'@types/react-dom': 18.2.7
@@ -63,7 +67,7 @@ importers:
specifier: workspace:*
version: link:../../packages/components
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
apps/docs:
@@ -94,7 +98,7 @@ importers:
version: 2.3.2
date-fns:
specifier: ^2.29.3
- version: 2.29.3
+ version: 2.30.0
next:
specifier: 13.4.10
version: 13.4.10(react-dom@18.2.0)(react@18.2.0)
@@ -154,13 +158,13 @@ importers:
packages/body:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/button:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/cli:
@@ -240,9 +244,6 @@ importers:
postcss:
specifier: ^8.4.29
version: 8.4.29
- prism-react-renderer:
- specifier: 2.0.6
- version: 2.0.6(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -252,6 +253,9 @@ importers:
react-router-dom:
specifier: 6.16.0
version: 6.16.0(react-dom@18.2.0)(react@18.2.0)
+ shikiji:
+ specifier: ^0.6.8
+ version: 0.6.8
superstruct:
specifier: ^1.0.3
version: 1.0.3
@@ -287,7 +291,7 @@ importers:
packages/column:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/components:
@@ -347,25 +351,25 @@ importers:
specifier: workspace:*
version: link:../text
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/container:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/font:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/head:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/heading:
@@ -374,31 +378,31 @@ importers:
specifier: 1.0.2
version: 1.0.2(@types/react@18.2.22)(react@18.2.0)
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/hr:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/html:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/img:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/link:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/markdown:
@@ -407,13 +411,13 @@ importers:
specifier: ^4.1.0
version: 4.1.0(react-email@1.9.4)(react@18.2.0)
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/preview:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/render:
@@ -441,13 +445,13 @@ importers:
packages/row:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/section:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages/tailwind:
@@ -468,7 +472,7 @@ importers:
packages/text:
dependencies:
react:
- specifier: ^18.2.0
+ specifier: 18.2.0
version: 18.2.0
packages:
@@ -526,28 +530,28 @@ packages:
resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.22.20
+ '@babel/highlight': 7.22.13
chalk: 2.4.2
- /@babel/compat-data@7.22.20:
- resolution: {integrity: sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==}
+ /@babel/compat-data@7.22.9:
+ resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==}
engines: {node: '>=6.9.0'}
dev: false
- /@babel/core@7.22.20:
- resolution: {integrity: sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==}
+ /@babel/core@7.22.15:
+ resolution: {integrity: sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.1
'@babel/code-frame': 7.22.13
'@babel/generator': 7.22.15
'@babel/helper-compilation-targets': 7.22.15
- '@babel/helper-module-transforms': 7.22.20(@babel/core@7.22.20)
+ '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15)
'@babel/helpers': 7.22.15
- '@babel/parser': 7.22.16
+ '@babel/parser': 7.22.15
'@babel/template': 7.22.15
- '@babel/traverse': 7.22.20
- '@babel/types': 7.22.19
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
convert-source-map: 1.9.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -561,7 +565,7 @@ packages:
resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.19
jsesc: 2.5.2
@@ -571,15 +575,15 @@ packages:
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/compat-data': 7.22.20
+ '@babel/compat-data': 7.22.9
'@babel/helper-validator-option': 7.22.15
browserslist: 4.21.10
lru-cache: 5.1.1
semver: 6.3.1
dev: false
- /@babel/helper-environment-visitor@7.22.20:
- resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
+ /@babel/helper-environment-visitor@7.22.5:
+ resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==}
engines: {node: '>=6.9.0'}
dev: false
@@ -588,35 +592,35 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.22.15
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
dev: false
/@babel/helper-hoist-variables@7.22.5:
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
dev: false
/@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
dev: false
- /@babel/helper-module-transforms@7.22.20(@babel/core@7.22.20):
- resolution: {integrity: sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==}
+ /@babel/helper-module-transforms@7.22.15(@babel/core@7.22.15):
+ resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.22.20
- '@babel/helper-environment-visitor': 7.22.20
+ '@babel/core': 7.22.15
+ '@babel/helper-environment-visitor': 7.22.5
'@babel/helper-module-imports': 7.22.15
'@babel/helper-simple-access': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/helper-validator-identifier': 7.22.15
dev: false
/@babel/helper-plugin-utils@7.22.5:
@@ -628,14 +632,14 @@ packages:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
dev: false
/@babel/helper-split-export-declaration@7.22.6:
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
dev: false
/@babel/helper-string-parser@7.22.5:
@@ -643,8 +647,8 @@ packages:
engines: {node: '>=6.9.0'}
dev: false
- /@babel/helper-validator-identifier@7.22.20:
- resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ /@babel/helper-validator-identifier@7.22.15:
+ resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==}
engines: {node: '>=6.9.0'}
/@babel/helper-validator-option@7.22.15:
@@ -657,45 +661,45 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.22.15
- '@babel/traverse': 7.22.20
- '@babel/types': 7.22.19
+ '@babel/traverse': 7.22.15
+ '@babel/types': 7.22.15
transitivePeerDependencies:
- supports-color
dev: false
- /@babel/highlight@7.22.20:
- resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
+ /@babel/highlight@7.22.13:
+ resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/helper-validator-identifier': 7.22.15
chalk: 2.4.2
js-tokens: 4.0.0
- /@babel/parser@7.22.16:
- resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==}
+ /@babel/parser@7.22.15:
+ resolution: {integrity: sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.22.19
+ '@babel/types': 7.22.15
dev: false
- /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.20):
+ /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.15):
resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.20
+ '@babel/core': 7.22.15
'@babel/helper-plugin-utils': 7.22.5
dev: false
- /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.20):
+ /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.15):
resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.22.20
+ '@babel/core': 7.22.15
'@babel/helper-plugin-utils': 7.22.5
dev: false
@@ -710,41 +714,44 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.22.13
- '@babel/parser': 7.22.16
- '@babel/types': 7.22.19
+ '@babel/parser': 7.22.15
+ '@babel/types': 7.22.15
dev: false
- /@babel/traverse@7.22.20:
- resolution: {integrity: sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==}
+ /@babel/traverse@7.22.15:
+ resolution: {integrity: sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.22.13
'@babel/generator': 7.22.15
- '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-environment-visitor': 7.22.5
'@babel/helper-function-name': 7.22.5
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.22.16
- '@babel/types': 7.22.19
+ '@babel/parser': 7.22.15
+ '@babel/types': 7.22.15
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: false
- /@babel/types@7.22.19:
- resolution: {integrity: sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==}
+ /@babel/types@7.22.15:
+ resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.22.5
- '@babel/helper-validator-identifier': 7.22.20
+ '@babel/helper-validator-identifier': 7.22.15
to-fast-properties: 2.0.0
dev: false
/@commander-js/extra-typings@9.4.1(commander@9.4.1):
resolution: {integrity: sha512-v0BqORYamk1koxDon6femDGLWSL7P78vYTyOU5nFaALnmNALL+ktgdHvWbxzzBBJIKS7kv3XvM/DqNwiLcgFTA==}
peerDependencies:
- commander: 9.4.x
+ commander: '*'
+ peerDependenciesMeta:
+ commander:
+ optional: true
dependencies:
commander: 9.4.1
dev: false
@@ -1416,8 +1423,8 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
- /@eslint-community/regexpp@4.8.1:
- resolution: {integrity: sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==}
+ /@eslint-community/regexpp@4.8.0:
+ resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
@@ -1465,32 +1472,32 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@floating-ui/core@1.5.0:
- resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==}
+ /@floating-ui/core@1.4.1:
+ resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==}
dependencies:
- '@floating-ui/utils': 0.1.4
+ '@floating-ui/utils': 0.1.1
dev: false
- /@floating-ui/dom@1.5.3:
- resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
+ /@floating-ui/dom@1.5.1:
+ resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==}
dependencies:
- '@floating-ui/core': 1.5.0
- '@floating-ui/utils': 0.1.4
+ '@floating-ui/core': 1.4.1
+ '@floating-ui/utils': 0.1.1
dev: false
/@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==}
peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
+ react: 18.2.0
+ react-dom: 18.2.0
dependencies:
- '@floating-ui/dom': 1.5.3
+ '@floating-ui/dom': 1.5.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@floating-ui/utils@0.1.4:
- resolution: {integrity: sha512-qprfWkn82Iw821mcKofJ5Pk9wgioHicxcQMxx+5zt5GSKoqdWvgG5AxVmpmUUjzTLPVSH5auBrhI93Deayn/DA==}
+ /@floating-ui/utils@0.1.1:
+ resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==}
dev: false
/@fontsource/inter@5.0.8:
@@ -2046,10 +2053,10 @@ packages:
/@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2067,10 +2074,10 @@ packages:
/@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2095,10 +2102,10 @@ packages:
/@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2119,8 +2126,8 @@ packages:
/@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2133,8 +2140,8 @@ packages:
/@radix-ui/react-context@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2147,8 +2154,8 @@ packages:
/@radix-ui/react-direction@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2161,10 +2168,10 @@ packages:
/@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2186,8 +2193,8 @@ packages:
/@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2200,10 +2207,10 @@ packages:
/@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2223,8 +2230,8 @@ packages:
/@radix-ui/react-id@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2238,10 +2245,10 @@ packages:
/@radix-ui/react-popover@1.0.6(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-cZ4defGpkZ0qTRtlIBzJLSzL6ht7ofhhW4i1+pkemjV1IKXm0wgCRnee154qlV6r9Ttunmh2TNZhMfV2bavUyA==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2273,10 +2280,10 @@ packages:
/@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2303,10 +2310,10 @@ packages:
/@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2324,10 +2331,10 @@ packages:
/@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2346,10 +2353,10 @@ packages:
/@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2367,10 +2374,10 @@ packages:
/@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2396,8 +2403,8 @@ packages:
/@radix-ui/react-slot@1.0.2(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2411,10 +2418,10 @@ packages:
/@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2438,10 +2445,10 @@ packages:
/@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2461,10 +2468,10 @@ packages:
/@radix-ui/react-tooltip@1.0.6(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2493,8 +2500,8 @@ packages:
/@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2507,8 +2514,8 @@ packages:
/@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2522,8 +2529,8 @@ packages:
/@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2537,8 +2544,8 @@ packages:
/@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2551,8 +2558,8 @@ packages:
/@radix-ui/react-use-rect@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2566,8 +2573,8 @@ packages:
/@radix-ui/react-use-size@1.0.1(@types/react@18.2.22)(react@18.2.0):
resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2581,10 +2588,10 @@ packages:
/@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.7)(@types/react@18.2.22)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==}
peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0
- react-dom: ^16.8 || ^17.0 || ^18.0
+ '@types/react': 18.2.22
+ '@types/react-dom': 18.2.7
+ react: 18.2.0
+ react-dom: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -2799,7 +2806,7 @@ packages:
optional: true
dependencies:
'@swc/helpers': 0.5.1
- '@swc/types': 0.1.5
+ '@swc/types': 0.1.4
optionalDependencies:
'@swc/core-darwin-arm64': 1.3.82
'@swc/core-darwin-x64': 1.3.82
@@ -2817,8 +2824,8 @@ packages:
dependencies:
tslib: 2.6.2
- /@swc/types@0.1.5:
- resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
+ /@swc/types@0.1.4:
+ resolution: {integrity: sha512-z/G02d+59gyyUb7KYhKi9jOhicek6QD2oMaotUyG+lUkybpXoV49dY9bj7Ah5Q+y7knK2jU67UTX9FyfGzaxQg==}
/@tsconfig/node10@1.0.9:
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
@@ -2866,6 +2873,12 @@ packages:
'@types/unist': 2.0.8
dev: false
+ /@types/hast@3.0.1:
+ resolution: {integrity: sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==}
+ dependencies:
+ '@types/unist': 3.0.0
+ dev: false
+
/@types/html-minifier-terser@7.0.0:
resolution: {integrity: sha512-hw3bhStrg5e3FQT8qZKCJTrzt/UbEaunU1xRWJ+aNOTmeBMvE3S4Ml2HiiNnZgL8izu0LFVkHUoPFXL1s5QNpQ==}
dev: true
@@ -2882,8 +2895,8 @@ packages:
resolution: {integrity: sha512-OrJo4dEKd/8YKwGWuRP7qC/NoxNQCVsjAT7aHhgoIrNJaaDudLwX8husFrklktmXKIFbXevxzrLyEhB1842zjg==}
dev: true
- /@types/json-schema@7.0.13:
- resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
+ /@types/json-schema@7.0.12:
+ resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
dev: true
/@types/json5@0.0.29:
@@ -2896,6 +2909,12 @@ packages:
'@types/unist': 2.0.8
dev: false
+ /@types/mdast@4.0.0:
+ resolution: {integrity: sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==}
+ dependencies:
+ '@types/unist': 3.0.0
+ dev: false
+
/@types/minimist@1.2.2:
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
dev: true
@@ -2929,12 +2948,8 @@ packages:
resolution: {integrity: sha512-l18spTC0Q2OEUIHGPyw37XBOacFI4Kng1fgfFjgDTg2FR9wqJ/NY9zWyXv87NRUlFDU6JA+E/GVnNJiWgyon6A==}
dev: true
- /@types/prismjs@1.26.0:
- resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==}
- dev: false
-
- /@types/prop-types@15.7.6:
- resolution: {integrity: sha512-RK/kBbYOQQHLYj9Z95eh7S6t7gq4Ojt/NT8HTk8bWVhA5DaF+5SMnxHKkP4gPNN3wAZkKP+VjAf0ebtYzf+fxg==}
+ /@types/prop-types@15.7.5:
+ resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
/@types/react-dom@18.2.7:
resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==}
@@ -2944,21 +2959,25 @@ packages:
/@types/react@18.2.22:
resolution: {integrity: sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==}
dependencies:
- '@types/prop-types': 15.7.6
+ '@types/prop-types': 15.7.5
'@types/scheduler': 0.16.3
csstype: 3.1.2
/@types/scheduler@0.16.3:
resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
- /@types/semver@7.5.2:
- resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==}
+ /@types/semver@7.5.1:
+ resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==}
dev: true
/@types/unist@2.0.8:
resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==}
dev: false
+ /@types/unist@3.0.0:
+ resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==}
+ dev: false
+
/@types/websocket@1.0.6:
resolution: {integrity: sha512-JXkliwz93B2cMWOI1ukElQBPN88vMg3CruvW4KVSKpflt3NyNCJImnhIuB/f97rG7kakqRJGFiwkA895Kn02Dg==}
dependencies:
@@ -2976,7 +2995,7 @@ packages:
typescript:
optional: true
dependencies:
- '@eslint-community/regexpp': 4.8.1
+ '@eslint-community/regexpp': 4.8.0
'@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2)
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/type-utils': 5.62.0(eslint@8.27.0)(typescript@5.2.2)
@@ -3128,8 +3147,8 @@ packages:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.27.0)
- '@types/json-schema': 7.0.13
- '@types/semver': 7.5.2
+ '@types/json-schema': 7.0.12
+ '@types/semver': 7.5.1
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2)
@@ -3149,6 +3168,10 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
+ /@ungap/structured-clone@1.2.0:
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ dev: false
+
/@vercel/analytics@1.0.1:
resolution: {integrity: sha512-Ux0c9qUfkcPqng3vrR0GTrlQdqNJ2JREn/2ydrVuKwM3RtMfF2mWX31Ijqo1opSjNAq6rK76PwtANw6kl6TAow==}
dev: false
@@ -3159,9 +3182,9 @@ packages:
peerDependencies:
vite: ^4.2.0
dependencies:
- '@babel/core': 7.22.20
- '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.20)
- '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.20)
+ '@babel/core': 7.22.15
+ '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.15)
+ '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.15)
react-refresh: 0.14.0
vite: 4.4.9(@types/node@20.6.2)
transitivePeerDependencies:
@@ -3339,8 +3362,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
get-intrinsic: 1.2.1
is-string: 1.0.7
dev: true
@@ -3354,29 +3377,29 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
get-intrinsic: 1.2.1
dev: true
- /array.prototype.flat@1.3.2:
- resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
+ /array.prototype.flat@1.3.1:
+ resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
dev: true
- /array.prototype.flatmap@1.3.2:
- resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
+ /array.prototype.flatmap@1.3.1:
+ resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
dev: true
@@ -3384,20 +3407,19 @@ packages:
resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
get-intrinsic: 1.2.1
dev: true
- /arraybuffer.prototype.slice@1.0.2:
- resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
+ /arraybuffer.prototype.slice@1.0.1:
+ resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
get-intrinsic: 1.2.1
is-array-buffer: 3.0.2
is-shared-array-buffer: 1.0.2
@@ -3430,7 +3452,7 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.10
- caniuse-lite: 1.0.30001538
+ caniuse-lite: 1.0.30001525
fraction.js: 4.3.6
normalize-range: 0.1.2
picocolors: 1.0.0
@@ -3446,7 +3468,7 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.10
- caniuse-lite: 1.0.30001538
+ caniuse-lite: 1.0.30001525
fraction.js: 4.3.6
normalize-range: 0.1.2
picocolors: 1.0.0
@@ -3459,8 +3481,8 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /axe-core@4.8.2:
- resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==}
+ /axe-core@4.8.1:
+ resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==}
engines: {node: '>=4'}
dev: true
@@ -3568,8 +3590,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001538
- electron-to-chromium: 1.4.525
+ caniuse-lite: 1.0.30001525
+ electron-to-chromium: 1.4.508
node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.10)
@@ -3656,8 +3678,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /caniuse-lite@1.0.30001538:
- resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==}
+ /caniuse-lite@1.0.30001525:
+ resolution: {integrity: sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==}
/ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -3769,8 +3791,8 @@ packages:
dependencies:
restore-cursor: 4.0.0
- /cli-spinners@2.9.1:
- resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==}
+ /cli-spinners@2.9.0:
+ resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==}
engines: {node: '>=6'}
dev: false
@@ -3805,11 +3827,6 @@ packages:
engines: {node: '>=0.8'}
dev: false
- /clsx@1.2.1:
- resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
- engines: {node: '>=6'}
- dev: false
-
/color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
@@ -3838,6 +3855,10 @@ packages:
delayed-stream: 1.0.0
dev: false
+ /comma-separated-tokens@2.0.3:
+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+ dev: false
+
/commander@10.0.1:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
@@ -3959,9 +3980,11 @@ packages:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
dev: true
- /date-fns@2.29.3:
- resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==}
+ /date-fns@2.30.0:
+ resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
+ dependencies:
+ '@babel/runtime': 7.22.15
dev: false
/debug@2.6.9:
@@ -3983,7 +4006,7 @@ packages:
supports-color:
optional: true
dependencies:
- ms: 2.1.3
+ ms: 2.1.2
dev: true
/debug@4.3.4:
@@ -4045,6 +4068,14 @@ packages:
engines: {node: '>=8'}
dev: false
+ /define-properties@1.2.0:
+ resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-property-descriptors: 1.0.0
+ object-keys: 1.1.1
+ dev: true
+
/define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
@@ -4112,6 +4143,12 @@ packages:
minimist: 1.2.8
dev: false
+ /devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+ dependencies:
+ dequal: 2.0.3
+ dev: false
+
/didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
@@ -4202,8 +4239,8 @@ packages:
semver: 7.5.4
dev: false
- /electron-to-chromium@1.4.525:
- resolution: {integrity: sha512-GIZ620hDK4YmIqAWkscG4W6RwY6gOx1y5J6f4JUQwctiJrqH2oxZYU4mXHi35oV32tr630UcepBzSBGJ/WYcZA==}
+ /electron-to-chromium@1.4.508:
+ resolution: {integrity: sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==}
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -4231,12 +4268,12 @@ packages:
dependencies:
is-arrayish: 0.2.1
- /es-abstract@1.22.2:
- resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
+ /es-abstract@1.22.1:
+ resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
- arraybuffer.prototype.slice: 1.0.2
+ arraybuffer.prototype.slice: 1.0.1
available-typed-arrays: 1.0.5
call-bind: 1.0.2
es-set-tostringtag: 2.0.1
@@ -4262,12 +4299,12 @@ packages:
object-inspect: 1.12.3
object-keys: 1.1.1
object.assign: 4.1.4
- regexp.prototype.flags: 1.5.1
- safe-array-concat: 1.0.1
+ regexp.prototype.flags: 1.5.0
+ safe-array-concat: 1.0.0
safe-regex-test: 1.0.0
- string.prototype.trim: 1.2.8
- string.prototype.trimend: 1.0.7
- string.prototype.trimstart: 1.0.7
+ string.prototype.trim: 1.2.7
+ string.prototype.trimend: 1.0.6
+ string.prototype.trimstart: 1.0.6
typed-array-buffer: 1.0.0
typed-array-byte-length: 1.0.0
typed-array-byte-offset: 1.0.0
@@ -4282,7 +4319,7 @@ packages:
asynciterator.prototype: 1.0.0
call-bind: 1.0.2
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.1
es-set-tostringtag: 2.0.1
function-bind: 1.1.1
get-intrinsic: 1.2.1
@@ -4479,7 +4516,7 @@ packages:
eslint: 8.45.0
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.45.0)
- eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.45.0)
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
eslint-plugin-react: 7.33.2(eslint@8.45.0)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0)
@@ -4505,7 +4542,7 @@ packages:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.27.0)(typescript@5.2.2)
'@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2)
eslint: 8.27.0
- eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.45.0)
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.27.0)
eslint-plugin-prettier: 4.2.1(eslint@8.27.0)(prettier@2.8.8)
eslint-plugin-typescript-sort-keys: 2.3.0(@typescript-eslint/parser@5.62.0)(eslint@8.27.0)(typescript@5.2.2)
prettier: 2.8.8
@@ -4523,7 +4560,7 @@ packages:
dependencies:
debug: 3.2.7
is-core-module: 2.13.0
- resolve: 1.22.6
+ resolve: 1.22.4
transitivePeerDependencies:
- supports-color
dev: true
@@ -4539,7 +4576,7 @@ packages:
enhanced-resolve: 5.15.0
eslint: 8.45.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.45.0)
- eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.45.0)
+ eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.45.0)
fast-glob: 3.3.1
get-tsconfig: 4.7.1
is-core-module: 2.13.0
@@ -4581,7 +4618,65 @@ packages:
- supports-color
dev: true
- /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.45.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.27.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2)
+ debug: 3.2.7
+ eslint: 8.27.0
+ eslint-import-resolver-node: 0.3.9
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.45.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2)
+ debug: 3.2.7
+ eslint: 8.45.0
+ eslint-import-resolver-node: 0.3.9
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.27.0):
resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
engines: {node: '>=4'}
peerDependencies:
@@ -4591,16 +4686,51 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2)
+ array-includes: 3.1.7
+ array.prototype.findlastindex: 1.2.3
+ array.prototype.flat: 1.3.1
+ array.prototype.flatmap: 1.3.1
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.27.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.27.0)
+ has: 1.0.3
+ is-core-module: 2.13.0
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.7
+ object.groupby: 1.0.1
+ object.values: 1.1.7
+ semver: 6.3.1
+ tsconfig-paths: 3.14.2
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.45.0):
+ resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@5.2.2)
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
+ array.prototype.flat: 1.3.1
+ array.prototype.flatmap: 1.3.1
debug: 3.2.7
doctrine: 2.1.0
eslint: 8.45.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.45.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.45.0)
has: 1.0.3
is-core-module: 2.13.0
is-glob: 4.0.3
@@ -4625,9 +4755,9 @@ packages:
'@babel/runtime': 7.22.15
aria-query: 5.3.0
array-includes: 3.1.7
- array.prototype.flatmap: 1.3.2
+ array.prototype.flatmap: 1.3.1
ast-types-flow: 0.0.7
- axe-core: 4.8.2
+ axe-core: 4.8.1
axobject-query: 3.2.1
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
@@ -4673,7 +4803,7 @@ packages:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
dependencies:
array-includes: 3.1.7
- array.prototype.flatmap: 1.3.2
+ array.prototype.flatmap: 1.3.1
array.prototype.tosorted: 1.1.2
doctrine: 2.1.0
es-iterator-helpers: 1.0.15
@@ -4826,7 +4956,7 @@ packages:
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
- '@eslint-community/regexpp': 4.8.1
+ '@eslint-community/regexpp': 4.8.0
'@eslint/eslintrc': 2.1.2
'@eslint/js': 8.44.0
'@humanwhocodes/config-array': 0.11.11
@@ -4872,7 +5002,7 @@ packages:
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0)
- '@eslint-community/regexpp': 4.8.1
+ '@eslint-community/regexpp': 4.8.0
'@eslint/eslintrc': 2.1.2
'@eslint/js': 8.49.0
'@humanwhocodes/config-array': 0.11.11
@@ -5110,13 +5240,13 @@ packages:
resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==}
engines: {node: '>=12.0.0'}
dependencies:
- flatted: 3.2.9
+ flatted: 3.2.7
keyv: 4.5.3
rimraf: 3.0.2
dev: true
- /flatted@3.2.9:
- resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
+ /flatted@3.2.7:
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
dev: true
/follow-redirects@1.15.3:
@@ -5155,8 +5285,8 @@ packages:
/framer-motion@8.5.5(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-5IDx5bxkjWHWUF3CVJoSyUVOtrbAxtzYBBowRE2uYI/6VYhkEBD+rbTHEGuUmbGHRj6YqqSfoG7Aa1cLyWCrBA==}
peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
+ react: 18.2.0
+ react-dom: 18.2.0
dependencies:
'@motionone/dom': 10.16.2
hey-listen: 1.0.8
@@ -5222,8 +5352,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
functions-have-names: 1.2.3
dev: true
@@ -5362,7 +5492,7 @@ packages:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
engines: {node: '>= 0.4'}
dependencies:
- define-properties: 1.2.1
+ define-properties: 1.2.0
dev: true
/globby@11.0.4:
@@ -5462,6 +5592,88 @@ packages:
dependencies:
function-bind: 1.1.1
+ /hast-util-from-parse5@8.0.1:
+ resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
+ dependencies:
+ '@types/hast': 3.0.1
+ '@types/unist': 3.0.0
+ devlop: 1.1.0
+ hastscript: 8.0.0
+ property-information: 6.3.0
+ vfile: 6.0.1
+ vfile-location: 5.0.2
+ web-namespaces: 2.0.1
+ dev: false
+
+ /hast-util-parse-selector@4.0.0:
+ resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
+ dependencies:
+ '@types/hast': 3.0.1
+ dev: false
+
+ /hast-util-raw@9.0.1:
+ resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==}
+ dependencies:
+ '@types/hast': 3.0.1
+ '@types/unist': 3.0.0
+ '@ungap/structured-clone': 1.2.0
+ hast-util-from-parse5: 8.0.1
+ hast-util-to-parse5: 8.0.0
+ html-void-elements: 3.0.0
+ mdast-util-to-hast: 13.0.2
+ parse5: 7.1.2
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.0.0
+ vfile: 6.0.1
+ web-namespaces: 2.0.1
+ zwitch: 2.0.4
+ dev: false
+
+ /hast-util-to-html@9.0.0:
+ resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==}
+ dependencies:
+ '@types/hast': 3.0.1
+ '@types/unist': 3.0.0
+ ccount: 2.0.1
+ comma-separated-tokens: 2.0.3
+ hast-util-raw: 9.0.1
+ hast-util-whitespace: 3.0.0
+ html-void-elements: 3.0.0
+ mdast-util-to-hast: 13.0.2
+ property-information: 6.3.0
+ space-separated-tokens: 2.0.2
+ stringify-entities: 4.0.3
+ zwitch: 2.0.4
+ dev: false
+
+ /hast-util-to-parse5@8.0.0:
+ resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
+ dependencies:
+ '@types/hast': 3.0.1
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ property-information: 6.3.0
+ space-separated-tokens: 2.0.2
+ web-namespaces: 2.0.1
+ zwitch: 2.0.4
+ dev: false
+
+ /hast-util-whitespace@3.0.0:
+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+ dependencies:
+ '@types/hast': 3.0.1
+ dev: false
+
+ /hastscript@8.0.0:
+ resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
+ dependencies:
+ '@types/hast': 3.0.1
+ comma-separated-tokens: 2.0.3
+ hast-util-parse-selector: 4.0.0
+ property-information: 6.3.0
+ space-separated-tokens: 2.0.2
+ dev: false
+
/hey-listen@1.0.8:
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
dev: false
@@ -5500,7 +5712,7 @@ packages:
/html-react-parser@4.2.2(react@18.2.0):
resolution: {integrity: sha512-lh0wEGISnFZEAmvQqK4xc0duFMUh/m9YYyAhFursWxdtNv+hCZge0kj1y4wep6qPB5Zm33L+2/P6TcGWAJJbjA==}
peerDependencies:
- react: 0.14 || 15 || 16 || 17 || 18
+ react: 18.2.0
dependencies:
domhandler: 5.0.3
html-dom-parser: 4.0.0
@@ -5531,6 +5743,10 @@ packages:
selderee: 0.11.0
dev: false
+ /html-void-elements@3.0.0:
+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+ dev: false
+
/htmlparser2@8.0.2:
resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
dependencies:
@@ -6078,7 +6294,7 @@ packages:
engines: {node: '>=4.0'}
dependencies:
array-includes: 3.1.7
- array.prototype.flat: 1.3.2
+ array.prototype.flat: 1.3.1
object.assign: 4.1.4
object.values: 1.1.7
dev: true
@@ -6294,7 +6510,7 @@ packages:
/md-to-react-email@4.1.0(react-email@1.9.4)(react@18.2.0):
resolution: {integrity: sha512-aQvj4dCuy0wmBVvSB377qTErlpjN5Pl61+5v+B8Z76KoxOgKhbzvK3qnO94eOsuGSWwI+9n4zb3xD3/MypxM4w==}
peerDependencies:
- react: 18.x
+ react: 18.2.0
react-email: '>1.9.3'
dependencies:
marked: 7.0.4
@@ -6456,6 +6672,19 @@ packages:
unist-util-is: 5.2.1
dev: false
+ /mdast-util-to-hast@13.0.2:
+ resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==}
+ dependencies:
+ '@types/hast': 3.0.1
+ '@types/mdast': 4.0.0
+ '@ungap/structured-clone': 1.2.0
+ devlop: 1.1.0
+ micromark-util-sanitize-uri: 2.0.0
+ trim-lines: 3.0.1
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.0.0
+ dev: false
+
/mdast-util-to-markdown@1.5.0:
resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==}
dependencies:
@@ -6724,6 +6953,13 @@ packages:
micromark-util-types: 1.1.0
dev: false
+ /micromark-util-character@2.0.1:
+ resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==}
+ dependencies:
+ micromark-util-symbol: 2.0.0
+ micromark-util-types: 2.0.0
+ dev: false
+
/micromark-util-chunked@1.1.0:
resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==}
dependencies:
@@ -6764,6 +7000,10 @@ packages:
resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==}
dev: false
+ /micromark-util-encode@2.0.0:
+ resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
+ dev: false
+
/micromark-util-events-to-acorn@1.2.3:
resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==}
dependencies:
@@ -6801,6 +7041,14 @@ packages:
micromark-util-symbol: 1.1.0
dev: false
+ /micromark-util-sanitize-uri@2.0.0:
+ resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
+ dependencies:
+ micromark-util-character: 2.0.1
+ micromark-util-encode: 2.0.0
+ micromark-util-symbol: 2.0.0
+ dev: false
+
/micromark-util-subtokenize@1.1.0:
resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==}
dependencies:
@@ -6814,10 +7062,18 @@ packages:
resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
dev: false
+ /micromark-util-symbol@2.0.0:
+ resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
+ dev: false
+
/micromark-util-types@1.1.0:
resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
dev: false
+ /micromark-util-types@2.0.0:
+ resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
+ dev: false
+
/micromark@3.2.0:
resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
dependencies:
@@ -6939,10 +7195,6 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- /ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- dev: true
-
/mustache@4.2.0:
resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
hasBin: true
@@ -6984,8 +7236,8 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.1.0
fibers: '>= 3.1.0'
- react: ^18.2.0
- react-dom: ^18.2.0
+ react: 18.2.0
+ react-dom: 18.2.0
sass: ^1.3.0
peerDependenciesMeta:
'@opentelemetry/api':
@@ -6998,7 +7250,7 @@ packages:
'@next/env': 13.4.10
'@swc/helpers': 0.5.1
busboy: 1.6.0
- caniuse-lite: 1.0.30001538
+ caniuse-lite: 1.0.30001525
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -7059,7 +7311,7 @@ packages:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
hosted-git-info: 2.8.9
- resolve: 1.22.6
+ resolve: 1.22.4
semver: 5.7.2
validate-npm-package-license: 3.0.4
@@ -7122,7 +7374,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
+ define-properties: 1.2.0
has-symbols: 1.0.3
object-keys: 1.1.1
dev: true
@@ -7132,8 +7384,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
/object.fromentries@2.0.7:
@@ -7141,24 +7393,24 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
/object.groupby@1.0.1:
resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
get-intrinsic: 1.2.1
dev: true
/object.hasown@1.1.3:
resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
dependencies:
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
/object.values@1.1.7:
@@ -7166,8 +7418,8 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
/once@1.4.0:
@@ -7220,7 +7472,7 @@ packages:
bl: 4.1.0
chalk: 4.1.2
cli-cursor: 3.1.0
- cli-spinners: 2.9.1
+ cli-spinners: 2.9.0
is-interactive: 1.0.0
is-unicode-supported: 0.1.0
log-symbols: 4.1.0
@@ -7234,7 +7486,7 @@ packages:
dependencies:
chalk: 5.3.0
cli-cursor: 4.0.0
- cli-spinners: 2.9.1
+ cli-spinners: 2.9.0
is-interactive: 2.0.0
is-unicode-supported: 1.3.0
log-symbols: 5.1.0
@@ -7436,7 +7688,7 @@ packages:
postcss: 8.4.21
postcss-value-parser: 4.2.0
read-cache: 1.0.0
- resolve: 1.22.6
+ resolve: 1.22.4
dev: false
/postcss-import@15.1.0(postcss@8.4.29):
@@ -7448,7 +7700,7 @@ packages:
postcss: 8.4.29
postcss-value-parser: 4.2.0
read-cache: 1.0.0
- resolve: 1.22.6
+ resolve: 1.22.4
/postcss-js@4.0.1(postcss@8.4.21):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
@@ -7618,18 +7870,8 @@ packages:
/prism-react-renderer@1.3.5(react@18.2.0):
resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==}
peerDependencies:
- react: '>=0.14.9'
- dependencies:
react: 18.2.0
- dev: false
-
- /prism-react-renderer@2.0.6(react@18.2.0):
- resolution: {integrity: sha512-ERzmAI5UvrcTw5ivfEG20/dYClAsC84eSED5p9X3oKpm0xPV4A5clFK1mp7lPIdKmbLnQYsPTGiOI7WS6gWigw==}
- peerDependencies:
- react: '>=16.0.0'
dependencies:
- '@types/prismjs': 1.26.0
- clsx: 1.2.1
react: 18.2.0
dev: false
@@ -7645,6 +7887,10 @@ packages:
react-is: 16.13.1
dev: true
+ /property-information@6.3.0:
+ resolution: {integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==}
+ dev: false
+
/proto-list@1.2.4:
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
dev: false
@@ -7673,7 +7919,7 @@ packages:
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
- react: ^18.2.0
+ react: 18.2.0
dependencies:
loose-envify: 1.4.0
react: 18.2.0
@@ -7722,8 +7968,8 @@ packages:
resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
engines: {node: '>=10'}
peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -7738,8 +7984,8 @@ packages:
resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
engines: {node: '>=10'}
peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -7757,8 +8003,8 @@ packages:
resolution: {integrity: sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==}
engines: {node: '>=14.0.0'}
peerDependencies:
- react: '>=16.8'
- react-dom: '>=16.8'
+ react: 18.2.0
+ react-dom: 18.2.0
dependencies:
'@remix-run/router': 1.9.0
react: 18.2.0
@@ -7770,7 +8016,7 @@ packages:
resolution: {integrity: sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==}
engines: {node: '>=14.0.0'}
peerDependencies:
- react: '>=16.8'
+ react: 18.2.0
dependencies:
'@remix-run/router': 1.9.0
react: 18.2.0
@@ -7780,8 +8026,8 @@ packages:
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
engines: {node: '>=10'}
peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -7863,7 +8109,7 @@ packages:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: '>= 0.10'}
dependencies:
- resolve: 1.22.6
+ resolve: 1.22.4
dev: false
/redent@3.0.0:
@@ -7880,7 +8126,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.1
- es-abstract: 1.22.2
+ es-abstract: 1.22.1
get-intrinsic: 1.2.1
globalthis: 1.0.3
which-builtin-type: 1.1.3
@@ -7889,13 +8135,13 @@ packages:
/regenerator-runtime@0.14.0:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
- /regexp.prototype.flags@1.5.1:
- resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
+ /regexp.prototype.flags@1.5.0:
+ resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- set-function-name: 2.0.1
+ define-properties: 1.2.0
+ functions-have-names: 1.2.3
dev: true
/regexpp@3.2.0:
@@ -8007,8 +8253,8 @@ packages:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
dev: true
- /resolve@1.22.6:
- resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
+ /resolve@1.22.4:
+ resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==}
hasBin: true
dependencies:
is-core-module: 2.13.0
@@ -8061,8 +8307,8 @@ packages:
glob: 7.2.3
dev: true
- /rollup@3.29.2:
- resolution: {integrity: sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==}
+ /rollup@3.28.1:
+ resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
@@ -8092,6 +8338,16 @@ packages:
mri: 1.2.0
dev: false
+ /safe-array-concat@1.0.0:
+ resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
+ engines: {node: '>=0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+ dev: true
+
/safe-array-concat@1.0.1:
resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
engines: {node: '>=0.4'}
@@ -8195,6 +8451,12 @@ packages:
rechoir: 0.6.2
dev: false
+ /shikiji@0.6.8:
+ resolution: {integrity: sha512-K0axxNAdB9KvLUflU7QoLC7p6i2p1R2MFG0eP+iclbjtuEZqng99jHcg3VJL0GWRO67yozTICnykjo1HjOzdkg==}
+ dependencies:
+ hast-util-to-html: 9.0.0
+ dev: false
+
/side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
@@ -8239,11 +8501,15 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ /space-separated-tokens@2.0.2:
+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+ dev: false
+
/spdx-correct@3.2.0:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
dependencies:
spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.15
+ spdx-license-ids: 3.0.13
/spdx-exceptions@2.3.0:
resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
@@ -8252,10 +8518,10 @@ packages:
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
dependencies:
spdx-exceptions: 2.3.0
- spdx-license-ids: 3.0.15
+ spdx-license-ids: 3.0.13
- /spdx-license-ids@3.0.15:
- resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==}
+ /spdx-license-ids@3.0.13:
+ resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==}
/split2@3.2.2:
resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
@@ -8306,39 +8572,39 @@ packages:
resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
get-intrinsic: 1.2.1
has-symbols: 1.0.3
internal-slot: 1.0.5
- regexp.prototype.flags: 1.5.1
+ regexp.prototype.flags: 1.5.0
set-function-name: 2.0.1
side-channel: 1.0.4
dev: true
- /string.prototype.trim@1.2.8:
- resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
+ /string.prototype.trim@1.2.7:
+ resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
- /string.prototype.trimend@1.0.7:
- resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
+ /string.prototype.trimend@1.0.6:
+ resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
- /string.prototype.trimstart@1.0.7:
- resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
+ /string.prototype.trimstart@1.0.6:
+ resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
dependencies:
call-bind: 1.0.2
- define-properties: 1.2.1
- es-abstract: 1.22.2
+ define-properties: 1.2.0
+ es-abstract: 1.22.1
dev: true
/string_decoder@1.1.1:
@@ -8419,7 +8685,7 @@ packages:
peerDependencies:
'@babel/core': '*'
babel-plugin-macros: '*'
- react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
+ react: 18.2.0
peerDependenciesMeta:
'@babel/core':
optional: true
@@ -8493,7 +8759,7 @@ packages:
postcss-selector-parser: 6.0.13
postcss-value-parser: 4.2.0
quick-lru: 5.1.1
- resolve: 1.22.6
+ resolve: 1.22.4
transitivePeerDependencies:
- ts-node
dev: false
@@ -8523,7 +8789,7 @@ packages:
postcss-load-config: 4.0.1(postcss@8.4.29)(ts-node@10.9.1)
postcss-nested: 6.0.1(postcss@8.4.29)
postcss-selector-parser: 6.0.13
- resolve: 1.22.6
+ resolve: 1.22.4
sucrase: 3.34.0
transitivePeerDependencies:
- ts-node
@@ -8614,6 +8880,10 @@ packages:
pretty-bytes: 5.6.0
dev: false
+ /trim-lines@3.0.1:
+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+ dev: false
+
/trim-newlines@3.0.1:
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
engines: {node: '>=8'}
@@ -8840,12 +9110,24 @@ packages:
'@types/unist': 2.0.8
dev: false
+ /unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+ dependencies:
+ '@types/unist': 3.0.0
+ dev: false
+
/unist-util-position-from-estree@1.1.2:
resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==}
dependencies:
'@types/unist': 2.0.8
dev: false
+ /unist-util-position@5.0.0:
+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+ dependencies:
+ '@types/unist': 3.0.0
+ dev: false
+
/unist-util-remove-position@4.0.2:
resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==}
dependencies:
@@ -8859,6 +9141,12 @@ packages:
'@types/unist': 2.0.8
dev: false
+ /unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+ dependencies:
+ '@types/unist': 3.0.0
+ dev: false
+
/unist-util-visit-parents@5.1.3:
resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
dependencies:
@@ -8866,6 +9154,13 @@ packages:
unist-util-is: 5.2.1
dev: false
+ /unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+ dependencies:
+ '@types/unist': 3.0.0
+ unist-util-is: 6.0.0
+ dev: false
+
/unist-util-visit@4.1.2:
resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
dependencies:
@@ -8874,6 +9169,14 @@ packages:
unist-util-visit-parents: 5.1.3
dev: false
+ /unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ dependencies:
+ '@types/unist': 3.0.0
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+ dev: false
+
/universal-user-agent@6.0.0:
resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==}
dev: false
@@ -8922,8 +9225,8 @@ packages:
resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
engines: {node: '>=10'}
peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -8937,8 +9240,8 @@ packages:
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
engines: {node: '>=10'}
peerDependencies:
- '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ '@types/react': 18.2.22
+ react: 18.2.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -8980,6 +9283,13 @@ packages:
spdx-correct: 3.2.0
spdx-expression-parse: 3.0.1
+ /vfile-location@5.0.2:
+ resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==}
+ dependencies:
+ '@types/unist': 3.0.0
+ vfile: 6.0.1
+ dev: false
+
/vfile-message@3.1.4:
resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==}
dependencies:
@@ -8987,6 +9297,13 @@ packages:
unist-util-stringify-position: 3.0.3
dev: false
+ /vfile-message@4.0.2:
+ resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+ dependencies:
+ '@types/unist': 3.0.0
+ unist-util-stringify-position: 4.0.0
+ dev: false
+
/vfile@5.3.7:
resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
dependencies:
@@ -8996,6 +9313,14 @@ packages:
vfile-message: 3.1.4
dev: false
+ /vfile@6.0.1:
+ resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==}
+ dependencies:
+ '@types/unist': 3.0.0
+ unist-util-stringify-position: 4.0.0
+ vfile-message: 4.0.2
+ dev: false
+
/vite@4.4.9(@types/node@20.6.2):
resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -9027,7 +9352,7 @@ packages:
'@types/node': 20.6.2
esbuild: 0.18.20
postcss: 8.4.29
- rollup: 3.29.2
+ rollup: 3.28.1
optionalDependencies:
fsevents: 2.3.3
dev: false
@@ -9046,6 +9371,10 @@ packages:
defaults: 1.0.4
dev: false
+ /web-namespaces@2.0.1:
+ resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
+ dev: false
+
/webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: false
@@ -9271,7 +9600,3 @@ packages:
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
dev: false
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
diff --git a/test/demo/package.json b/test/demo/package.json
deleted file mode 100644
index 453c07f2..00000000
--- a/test/demo/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "@jsx-email/demo",
- "version": "0.0.0",
- "private": true,
- "description": "A demo package to run the preview server against. This is not published",
- "license": "MIT",
- "peerDependencies": {
- "react": "^18.2.0"
- },
- "dependencies": {
- "@jsx-email/cli": "workspace:*",
- "@jsx-email/components": "workspace:*"
- }
-}
diff --git a/test/demo/readme.md b/test/demo/readme.md
deleted file mode 100644
index 05476d5a..00000000
--- a/test/demo/readme.md
+++ /dev/null
@@ -1,64 +0,0 @@
-![React Email HTML cover](https://react.email/static/covers/html.png)
-
-@react-email/body
-A React body component to wrap emails.
-
-
-
-## Install
-
-Install component from your command line.
-
-#### With yarn
-
-```sh
-yarn add @react-email/body -E
-```
-
-#### With npm
-
-```sh
-npm install @react-email/body -E
-```
-
-## Getting started
-
-Add the component to your email template. Include styles where needed.
-
-```jsx
-import { Html } from "@jsx-email/html";
-import { Body } from "@jsx-email/body";
-import { Section } from "@jsx-email/section";
-import { Column } from "@jsx-email/section";
-
-const Email = () => {
- return (
-
-
-
- {/* First column */}
- {/* Second column */}
-
-
-
- );
-};
-```
-
-## Support
-
-This component was tested using the most popular email clients.
-
-| | | | | | |
-| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
-| Gmail ✔ | Apple Mail ✔ | Outlook ✔ | Yahoo! Mail ✔ | HEY ✔ | Superhuman ✔ |
-
-## License
-
-MIT License
diff --git a/test/demo/src/stripe-welcome.tsx b/test/demo/src/stripe-welcome.tsx
deleted file mode 100644
index bcac3fe7..00000000
--- a/test/demo/src/stripe-welcome.tsx
+++ /dev/null
@@ -1,128 +0,0 @@
-import {
- Body,
- Button,
- Container,
- Head,
- Hr,
- Html,
- Img,
- Link,
- Preview,
- Section,
- Text
-} from '@jsx-email/components';
-
-const main = {
- backgroundColor: '#f6f9fc',
- fontFamily: `-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif`
-};
-
-const container = {
- backgroundColor: '#ffffff',
- margin: '0 auto',
- marginBottom: '64px',
- padding: '20px 0 48px'
-};
-
-const box = {
- padding: '0 48px'
-};
-
-const hr = {
- borderColor: '#e6ebf1',
- margin: '20px 0'
-};
-
-const paragraph = {
- color: '#525f7f',
-
- fontSize: '16px',
- lineHeight: '24px',
- textAlign: 'left' as const
-};
-
-const anchor = {
- color: '#556cd6'
-};
-
-const button = {
- backgroundColor: '#656ee8',
- borderRadius: '5px',
- color: '#fff',
- display: 'block',
- fontSize: '16px',
- fontWeight: 'bold',
- textAlign: 'center' as const,
- textDecoration: 'none',
- width: '100%'
-};
-
-const footer = {
- color: '#8898aa',
- fontSize: '12px',
- lineHeight: '16px'
-};
-
-export const Template = () => (
-
-
- HooooYou're now ready to make live transactions with Stripe!
-
-
-
-
-
-
- HooooThanks for submitting your account information. You're now ready to make live
- transactions with Stripe!
-
-
- You can view your payments and a variety of other information about your account right
- from your dashboard.
-
-
- View your Stripe Dashboard
-
-
-
- If you haven't finished your integration, you might find our{' '}
-
- docs
- {' '}
- handy.
-
-
- Once you're ready to start accepting payments, you'll just need to use your live{' '}
-
- API keys
- {' '}
- instead of your test API keys. Your account can simultaneously be used for both test and
- live requests, so you can continue testing while accepting live payments. Check out our{' '}
-
- tutorial about account basics
-
- .
-
-
- Finally, we've put together a{' '}
-
- quick checklist
- {' '}
- to ensure your website conforms to card network standards.
-
-
- We'll be here to help you with any step along the way. You can find answers to most
- questions and get in touch with us on our{' '}
-
- support site
-
- .
-
- — The Stripe team
-
- Stripe, 354 Oyster Point Blvd, South San Francisco, CA 94080
-
-
-
-
-);