+
diff --git a/components/TagBlock.tsx b/components/TagBlock.tsx
new file mode 100644
index 0000000..da0c895
--- /dev/null
+++ b/components/TagBlock.tsx
@@ -0,0 +1,22 @@
+import classNames from 'classnames';
+import React from 'react';
+
+interface Props {
+ tag: string;
+}
+
+export function TagBlock(props: Props) {
+ const { tag } = props;
+ const href = `/blog?tag=${tag.toLowerCase()}`;
+
+ return (
+
+ {tag.toLowerCase()}
+
+ );
+}
diff --git a/components/TagRow.tsx b/components/TagRow.tsx
new file mode 100644
index 0000000..d282876
--- /dev/null
+++ b/components/TagRow.tsx
@@ -0,0 +1,25 @@
+import React from 'react';
+import { TagBlock } from './TagBlock';
+
+interface Props {
+ tags: string[];
+}
+
+export function TagRow({ tags }: Props) {
+ return (
+
+ {tags
+ .filter(tag => Boolean(tag))
+ // Maximum of three tags
+ .slice(0, 3)
+ .map(tag => (
+
+ ))}
+
+ );
+}
diff --git a/components/article/sections/ArticleSubtitleSection.tsx b/components/article/sections/ArticleSubtitleSection.tsx
index 7eaa561..ef74e78 100644
--- a/components/article/sections/ArticleSubtitleSection.tsx
+++ b/components/article/sections/ArticleSubtitleSection.tsx
@@ -16,7 +16,7 @@ export function ArticleSubtitleSection({ subtitle }: Props) {
style={{
maxWidth: isDesktop ? '700px' : 'unset',
}}
- className="w-full mb-3 text-lg font-medium text-center text-gray-900 desktop:mb-6 desktop:text-2xl font-roboto"
+ className="w-full mb-3 text-lg font-medium text-center text-gray-900 desktop:mb-6 desktop:text-2xl font-sans"
>
{subtitle}
diff --git a/components/article/widgets/ArticleFeatureVideoWidget.tsx b/components/article/widgets/ArticleFeatureVideoWidget.tsx
deleted file mode 100644
index 7842e32..0000000
--- a/components/article/widgets/ArticleFeatureVideoWidget.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import React from 'react';
-import YouTube from 'react-youtube';
-
-interface Props {
- video: string;
-}
-
-export function ArticleFeatureVideoWidget({ video }: Props) {
- return (
-
-
-
user started video
- // onPlay={() => }
- />
-
- {/* */}
-
-
-
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Soluta labore
- eius iure aliquid asperiores cum, quibusdam sapiente!
-
-
- );
-}
diff --git a/components/article/widgets/ArticleShareWidget.tsx b/components/article/widgets/ArticleShareWidget.tsx
deleted file mode 100644
index a9a9d2d..0000000
--- a/components/article/widgets/ArticleShareWidget.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-import { useRouter } from 'next/router';
-import React, { useState } from 'react';
-// import ShareSVG from '../../../assets/svgs/share.svg';
-import {
- shareToFacebook,
- shareToReddit,
- shareToTwitter,
- shareToWhatsApp,
-} from '../../../utils/share';
-import { Button } from '../../Button';
-import { Dropdown } from '../../Dropdown';
-import { DropdownItem } from '../../DropdownItem';
-import { Input } from '../../Input';
-import { InputGroup } from '../../InputGroup';
-
-interface IShareDropdownItems {
- id: string;
- name: string;
- onClick: () => void;
-}
-
-interface Props {
- id: string;
- title: string;
- slug: string;
-}
-
-export function ArticleShareWidget(props: Props) {
- const { id, title, slug } = props;
-
- const router = useRouter();
- const [isDropdownOpen, setIsDropdownOpen] = useState(false);
- const articleUrl = `oxen.io${router.asPath}`;
-
- const dropdownItems: Array
= [
- {
- id: 'share-to-facebook',
- name: 'Facebook',
- onClick: () => shareToFacebook(title, slug),
- },
- {
- id: 'share-to-twitter',
- name: 'Twitter',
- onClick: () => shareToTwitter(title, slug),
- },
- {
- id: 'share-to-whatsapp',
- name: 'WhatsApp',
- onClick: () => shareToWhatsApp(title, slug),
- },
- {
- id: 'share-to-reddit',
- name: 'Reddit',
- onClick: () => shareToReddit(title, slug),
- },
- ];
-
- return (
-
-
-
setIsDropdownOpen(true)}
- >
- {/* */}
- Share
-
-
-
setIsDropdownOpen(false)}
- pull="center"
- offsetX={-50}
- offsetY={25}
- >
- <>
-
-
-
-
-
-
-
-
- {dropdownItems.map(item => (
-
- {item.name}
-
- ))}
- >
-
-
-
- );
-}
diff --git a/components/article/widgets/ArticleWidgetAuthor.tsx b/components/article/widgets/ArticleWidgetAuthor.tsx
index 646c167..823fe79 100644
--- a/components/article/widgets/ArticleWidgetAuthor.tsx
+++ b/components/article/widgets/ArticleWidgetAuthor.tsx
@@ -13,7 +13,7 @@ export function ArticleWidgetAuthor({ author, publishedDate }: Props) {
-
+
By: {author?.name}
{publishedDate}
diff --git a/components/cards/ArticleCard.tsx b/components/cards/ArticleCard.tsx
index e487f83..2a215d8 100644
--- a/components/cards/ArticleCard.tsx
+++ b/components/cards/ArticleCard.tsx
@@ -1,104 +1,85 @@
import classNames from 'classnames';
-import router from 'next/dist/client/router';
-import { SyntheticEvent } from 'react';
+import Link from 'next/link';
+import { useRouter } from 'next/router';
+import React from 'react';
import { useMeasure } from 'react-use';
import { IPost } from '../../types/cms';
import { generateURL } from '../../utils/routing';
-import { titleCase } from '../../utils/text';
-import { OutlineBlock } from '../OutlineBlock';
+import { TagRow } from '../TagRow';
export function ArticleCard(props: IPost): JSX.Element {
const {
- featureImage,
title,
+ description,
subtitle,
- /*tags*/ slug,
- // city,
- // category,
+ featureImage,
+ publishedDate,
+ author,
+ tags,
+ slug,
} = props;
+ const router = useRouter();
const [ref, { width }] = useMeasure();
const isSmall = width < 130;
- const handleClick = (e: SyntheticEvent) => {
- const { href, as } = generateURL(slug);
-
- e.preventDefault();
- router.push(href, as);
- };
-
- const tags = ['admin', 'testing'];
+ const { href, as } = generateURL(slug);
return (
handleClick(e)}
>
router.push(href, as)}
+ className="relative aspect-w-16 aspect-h-9"
>
{featureImage.imageUrl && (
-
-
-
+
)}
-
+
-
- {title}
-
+
+
+
+ {title}
+
+
+
+
- {subtitle}
+ {description?.substr(0, 250) ?? subtitle}...
-
-
- {tags
- .filter(tag => Boolean(tag))
- // Maximum of three tags
- .slice(0, 3)
- .map(tag => (
-
- {isSmall ? (
-
- {titleCase(tag)}
-
- ) : (
-
- {titleCase(tag)}
-
- )}
-
- ))}
+
+
+ {publishedDate} — {author.name}
+
+
+
diff --git a/components/cards/ArticleCardFeature.tsx b/components/cards/ArticleCardFeature.tsx
new file mode 100644
index 0000000..6d67a97
--- /dev/null
+++ b/components/cards/ArticleCardFeature.tsx
@@ -0,0 +1,69 @@
+import Link from 'next/link';
+import { useRouter } from 'next/router';
+import React from 'react';
+import { IPost } from '../../types/cms';
+import { generateURL } from '../../utils/routing';
+import { TagRow } from '../TagRow';
+
+export function ArticleCardFeature(props: IPost) {
+ const {
+ featureImage,
+ title,
+ subtitle,
+ description,
+ author,
+ publishedDate,
+ tags,
+ slug,
+ } = props;
+
+ const { href, as } = generateURL(slug);
+
+ const router = useRouter();
+ const onClick = () => router.push(href, as);
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ {publishedDate} — {author.name}
+
+
+
+
+
+
+ );
+}
diff --git a/components/cards/ArticleCardRow.tsx b/components/cards/ArticleCardRow.tsx
index f085ca3..96c4a78 100644
--- a/components/cards/ArticleCardRow.tsx
+++ b/components/cards/ArticleCardRow.tsx
@@ -46,7 +46,7 @@ export function ArticleCardRow(post: IPost) {
-
+
{post.title}
@@ -62,7 +62,7 @@ export function ArticleCardRow(post: IPost) {
className="flex flex-col flex-grow"
>
-
{post.title}
+
{post.title}
diff --git a/components/cards/CardGrid.tsx b/components/cards/CardGrid.tsx
index acc3702..91714a1 100644
--- a/components/cards/CardGrid.tsx
+++ b/components/cards/CardGrid.tsx
@@ -13,13 +13,13 @@ interface Props {
export function CardGrid({ children }: Props) {
const { isMobile, isTablet, isDesktop, isHuge } = useContext(ScreenContext);
- const spacing = isHuge ? 4 : isDesktop ? 4 : 3;
- const spacingX = `pl-${spacing}`;
+ const spacing = isHuge ? 4 : isDesktop ? 6 : 4;
const spacingY = `space-y-${spacing}`;
+ const spacingX = `space-x-${spacing}`;
return (
<>
- {isMobile || isTablet ? (
+ {isMobile ? (
{children.map(child => (
@@ -42,26 +42,11 @@ export function CardGrid({ children }: Props) {
{_.chunk(
children,
- isHuge ? 4 : isDesktop ? 3 : isTablet ? 2 : 1,
+ isHuge ? 4 : isDesktop ? 2 : isTablet ? 2 : 1,
).map(group => (
-
+
{group.map((item, index) => (
-
1 && spacingX,
- index === 1 && group.length > 2 && spacingX,
- index === 2 && group.length > 3 && spacingX,
- isHuge
- ? 'w-1/4'
- : isDesktop
- ? 'w-1/3'
- : isTablet
- ? 'w-1/2'
- : 'w-full',
- )}
- >
+
{item}
))}
diff --git a/components/design/DesignColorPalette.tsx b/components/design/DesignColorPalette.tsx
index ccf845a..279c763 100644
--- a/components/design/DesignColorPalette.tsx
+++ b/components/design/DesignColorPalette.tsx
@@ -8,7 +8,7 @@ export function ColorPalette() {
Color Palette
-
+
0
diff --git a/components/layout/index.tsx b/components/layout/index.tsx
index 46ff885..7d0d2ec 100644
--- a/components/layout/index.tsx
+++ b/components/layout/index.tsx
@@ -11,11 +11,16 @@ interface Props {
}
export default function Layout({ children }: Props) {
- const { isTablet } = useContext(ScreenContext);
+ const { isTablet, isDesktop } = useContext(ScreenContext);
const { sideMenuSplit, sideMenuExpanded } = useSelector(
(state: IState) => state.navigation,
);
+ const marginLeft =
+ (!sideMenuSplit && isDesktop) || isTablet
+ ? UI.SIDE_MENU_SIDE_BAR_WIDTH_PX
+ : 0;
+
return (
-
+
- {!isHuge && (
-
-
+
+
+ {!isDesktop && (
))}
-
-
-
-
-
-
+ )}
+
+
+
+
-
- )}
+
+
);
}
diff --git a/components/navigation/SideMenuSplit.tsx b/components/navigation/SideMenuSplit.tsx
index 4b1c702..d4e4343 100644
--- a/components/navigation/SideMenuSplit.tsx
+++ b/components/navigation/SideMenuSplit.tsx
@@ -1,7 +1,9 @@
import classNames from 'classnames';
-import React from 'react';
-import { useSelector } from 'react-redux';
+import React, { useRef } from 'react';
+import { useDispatch, useSelector } from 'react-redux';
+import { useClickAway } from 'react-use';
import { UI } from '../../constants';
+import { collapseSideMenu } from '../../state/navigation';
import { IState } from '../../state/reducers';
import { SideMenuInner } from './SideMenuInner';
import { SideBarMode, SideMenuSideBar } from './SideMenuSideBar';
@@ -11,8 +13,16 @@ export function SideMenuSplit() {
(state: IState) => state.navigation,
);
- console.log('Side menu split?', sideMenuSplit);
- console.log('SideMenuSplit ➡️ sideMenuExpanded:', sideMenuExpanded);
+ const ref = useRef(null);
+ const dispatch = useDispatch();
+
+ const onClickAway = () => {
+ if (sideMenuExpanded && !sideMenuSplit) {
+ dispatch(collapseSideMenu());
+ }
+ };
+
+ useClickAway(ref, onClickAway);
const transform =
sideMenuSplit || sideMenuExpanded
@@ -21,6 +31,7 @@ export function SideMenuSplit() {
return (
404
Nothing found here.
@@ -87,7 +87,7 @@ function oxen404() {
Something went wrong?
@@ -107,7 +107,7 @@ function oxen404() {
{
+ console.log('index ➡️ router.query;:', router.query);
+ }, []);
+
return (
{generateTitle('Blog')}
-
+
+
+
+
+
{[...posts, ...posts, ...posts, ...posts, ...posts]?.map(post => (
diff --git a/public/fonts/Roboto/Roboto-Black.ttf b/public/fonts/Roboto/Roboto-Black.ttf
deleted file mode 100644
index 2d45238..0000000
Binary files a/public/fonts/Roboto/Roboto-Black.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-BlackItalic.ttf b/public/fonts/Roboto/Roboto-BlackItalic.ttf
deleted file mode 100644
index 29a4359..0000000
Binary files a/public/fonts/Roboto/Roboto-BlackItalic.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-Bold.ttf b/public/fonts/Roboto/Roboto-Bold.ttf
deleted file mode 100644
index d998cf5..0000000
Binary files a/public/fonts/Roboto/Roboto-Bold.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-BoldItalic.ttf b/public/fonts/Roboto/Roboto-BoldItalic.ttf
deleted file mode 100644
index b4e2210..0000000
Binary files a/public/fonts/Roboto/Roboto-BoldItalic.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-Italic.ttf b/public/fonts/Roboto/Roboto-Italic.ttf
deleted file mode 100644
index 5b390ff..0000000
Binary files a/public/fonts/Roboto/Roboto-Italic.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-Light.ttf b/public/fonts/Roboto/Roboto-Light.ttf
deleted file mode 100644
index 3526798..0000000
Binary files a/public/fonts/Roboto/Roboto-Light.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-LightItalic.ttf b/public/fonts/Roboto/Roboto-LightItalic.ttf
deleted file mode 100644
index 46e9bf7..0000000
Binary files a/public/fonts/Roboto/Roboto-LightItalic.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-Medium.ttf b/public/fonts/Roboto/Roboto-Medium.ttf
deleted file mode 100644
index f714a51..0000000
Binary files a/public/fonts/Roboto/Roboto-Medium.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-MediumItalic.ttf b/public/fonts/Roboto/Roboto-MediumItalic.ttf
deleted file mode 100644
index 5dc6a2d..0000000
Binary files a/public/fonts/Roboto/Roboto-MediumItalic.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-Regular.ttf b/public/fonts/Roboto/Roboto-Regular.ttf
deleted file mode 100644
index 2b6392f..0000000
Binary files a/public/fonts/Roboto/Roboto-Regular.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-Thin.ttf b/public/fonts/Roboto/Roboto-Thin.ttf
deleted file mode 100644
index 4e797cf..0000000
Binary files a/public/fonts/Roboto/Roboto-Thin.ttf and /dev/null differ
diff --git a/public/fonts/Roboto/Roboto-ThinItalic.ttf b/public/fonts/Roboto/Roboto-ThinItalic.ttf
deleted file mode 100644
index eea836f..0000000
Binary files a/public/fonts/Roboto/Roboto-ThinItalic.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-Bold.ttf b/public/fonts/RobotoSlab/RobotoSlab-Bold.ttf
deleted file mode 100644
index 463745a..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-Bold.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-ExtraBold.ttf b/public/fonts/RobotoSlab/RobotoSlab-ExtraBold.ttf
deleted file mode 100644
index 0c796d0..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-ExtraBold.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-ExtraLight.ttf b/public/fonts/RobotoSlab/RobotoSlab-ExtraLight.ttf
deleted file mode 100644
index 7bb824f..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-ExtraLight.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-Light.ttf b/public/fonts/RobotoSlab/RobotoSlab-Light.ttf
deleted file mode 100644
index b12a3ac..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-Light.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-Medium.ttf b/public/fonts/RobotoSlab/RobotoSlab-Medium.ttf
deleted file mode 100644
index c698221..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-Medium.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-Regular.ttf b/public/fonts/RobotoSlab/RobotoSlab-Regular.ttf
deleted file mode 100644
index cc04d6a..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-Regular.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-SemiBold.ttf b/public/fonts/RobotoSlab/RobotoSlab-SemiBold.ttf
deleted file mode 100644
index 7989f07..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-SemiBold.ttf and /dev/null differ
diff --git a/public/fonts/RobotoSlab/RobotoSlab-Thin.ttf b/public/fonts/RobotoSlab/RobotoSlab-Thin.ttf
deleted file mode 100644
index 227de32..0000000
Binary files a/public/fonts/RobotoSlab/RobotoSlab-Thin.ttf and /dev/null differ
diff --git a/public/fonts/WorkSans/WorkSans-Italic-VariableFont_wght.ttf b/public/fonts/WorkSans/WorkSans-Italic-VariableFont_wght.ttf
new file mode 100644
index 0000000..dd9d85c
Binary files /dev/null and b/public/fonts/WorkSans/WorkSans-Italic-VariableFont_wght.ttf differ
diff --git a/public/fonts/WorkSans/WorkSans-VariableFont_wght.ttf b/public/fonts/WorkSans/WorkSans-VariableFont_wght.ttf
new file mode 100644
index 0000000..34f0583
Binary files /dev/null and b/public/fonts/WorkSans/WorkSans-VariableFont_wght.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Black.ttf b/public/fonts/WorkSans/static/WorkSans-Black.ttf
new file mode 100644
index 0000000..64f0462
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Black.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-BlackItalic.ttf b/public/fonts/WorkSans/static/WorkSans-BlackItalic.ttf
new file mode 100644
index 0000000..6018540
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-BlackItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Bold.ttf b/public/fonts/WorkSans/static/WorkSans-Bold.ttf
new file mode 100644
index 0000000..1db5ef6
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Bold.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-BoldItalic.ttf b/public/fonts/WorkSans/static/WorkSans-BoldItalic.ttf
new file mode 100644
index 0000000..f045d98
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-BoldItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-ExtraBold.ttf b/public/fonts/WorkSans/static/WorkSans-ExtraBold.ttf
new file mode 100644
index 0000000..d56644d
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-ExtraBold.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-ExtraBoldItalic.ttf b/public/fonts/WorkSans/static/WorkSans-ExtraBoldItalic.ttf
new file mode 100644
index 0000000..5a9e046
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-ExtraBoldItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-ExtraLight.ttf b/public/fonts/WorkSans/static/WorkSans-ExtraLight.ttf
new file mode 100644
index 0000000..88ae413
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-ExtraLight.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-ExtraLightItalic.ttf b/public/fonts/WorkSans/static/WorkSans-ExtraLightItalic.ttf
new file mode 100644
index 0000000..816c64d
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-ExtraLightItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Italic.ttf b/public/fonts/WorkSans/static/WorkSans-Italic.ttf
new file mode 100644
index 0000000..d7b91d4
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Italic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Light.ttf b/public/fonts/WorkSans/static/WorkSans-Light.ttf
new file mode 100644
index 0000000..3a7768d
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Light.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-LightItalic.ttf b/public/fonts/WorkSans/static/WorkSans-LightItalic.ttf
new file mode 100644
index 0000000..f186b05
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-LightItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Medium.ttf b/public/fonts/WorkSans/static/WorkSans-Medium.ttf
new file mode 100644
index 0000000..66af7dd
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Medium.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-MediumItalic.ttf b/public/fonts/WorkSans/static/WorkSans-MediumItalic.ttf
new file mode 100644
index 0000000..3a66a62
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-MediumItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Regular.ttf b/public/fonts/WorkSans/static/WorkSans-Regular.ttf
new file mode 100644
index 0000000..15047f2
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Regular.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-SemiBold.ttf b/public/fonts/WorkSans/static/WorkSans-SemiBold.ttf
new file mode 100644
index 0000000..3ef9f83
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-SemiBold.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-SemiBoldItalic.ttf b/public/fonts/WorkSans/static/WorkSans-SemiBoldItalic.ttf
new file mode 100644
index 0000000..afa58c8
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-SemiBoldItalic.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-Thin.ttf b/public/fonts/WorkSans/static/WorkSans-Thin.ttf
new file mode 100644
index 0000000..6f32ad8
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-Thin.ttf differ
diff --git a/public/fonts/WorkSans/static/WorkSans-ThinItalic.ttf b/public/fonts/WorkSans/static/WorkSans-ThinItalic.ttf
new file mode 100644
index 0000000..71531ac
Binary files /dev/null and b/public/fonts/WorkSans/static/WorkSans-ThinItalic.ttf differ
diff --git a/services/cms.ts b/services/cms.ts
index 9e9e832..34dbc49 100644
--- a/services/cms.ts
+++ b/services/cms.ts
@@ -127,12 +127,13 @@ export class CmsApi {
console.log('blog ➡️ author', rawAuthor);
return {
- id: rawData.sys.id,
- body: rawPost.body,
- subtitle: rawPost.subtitle,
- publishedDate: moment(rawPost.publishedDate).format('DD MMM YYYY'),
+ id: rawData.sys.id ?? null,
+ body: rawPost.body ?? null,
+ subtitle: rawPost.subtitle ?? null,
+ description: rawPost.description ?? null,
+ publishedDate: moment(rawPost.publishedDate).format('DD MMMM YYYY'),
slug: rawPost.slug,
- tags: rawPost?.tags ?? [],
+ tags: rawPost?.tags?.map(t => t?.fields?.label) ?? [],
title: rawPost.title,
featureImage: this.convertImage(rawFeatureImage),
author: this.convertAuthor(rawAuthor),
diff --git a/state/navigation.ts b/state/navigation.ts
index 7480283..8c704b5 100644
--- a/state/navigation.ts
+++ b/state/navigation.ts
@@ -16,6 +16,7 @@ export type TPages = {
};
export interface INavigation {
+ headerCollapsed: boolean;
sideMenuExpanded: boolean;
sideMenuSplit: boolean;
pages?: TPages;
@@ -24,11 +25,13 @@ export interface INavigation {
export const initialNavigationState: INavigation = {
// Side menu expanded only toggles for mobile.
// On desktop it's always open (if it fits).
+ headerCollapsed: true,
sideMenuExpanded: false,
sideMenuSplit: true,
};
export enum NavigationActions {
+ SET_HEADER_COLLAPSED = 'SET_HEADER_COLLAPSED',
SET_SIDE_MENU_SPLIT = 'SET_SIDE_MENU_SPLIT',
EXPAND_SIDE_MENU = 'EXPAND_SIDE_MENU',
COLLAPSE_SIDE_MENU = 'COLLAPSE_SIDE_MENU',
@@ -38,6 +41,11 @@ export enum NavigationActions {
// ////////////////////////////// //
// Action Creators //
// ////////////////////////////// //
+export const setHeaderCollapsed = (collapsed: boolean) => ({
+ type: NavigationActions.SET_HEADER_COLLAPSED,
+ payload: collapsed,
+});
+
export const setSideMenuSplit = (split: boolean) => ({
type: NavigationActions.SET_SIDE_MENU_SPLIT,
payload: split,
diff --git a/state/reducers/navigation.ts b/state/reducers/navigation.ts
index c7e68d9..cdd5db3 100644
--- a/state/reducers/navigation.ts
+++ b/state/reducers/navigation.ts
@@ -14,6 +14,9 @@ export const navigationReducer = (
action: NavigationAction,
) => {
switch (action.type) {
+ case NavigationActions.SET_HEADER_COLLAPSED: {
+ return { ...state, headerCollapsed: action.payload };
+ }
case NavigationActions.SET_SIDE_MENU_SPLIT: {
return { ...state, sideMenuSplit: action.payload };
}
diff --git a/tailwind.config.js b/tailwind.config.js
index e3e8d29..8db88ec 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -11,8 +11,7 @@ module.exports = {
},
fontFamily: {
prompt: ['Prompt'],
- roboto: ['Roboto'],
- robotoslab: ['RobotoSlab'],
+ sans: ['WorkSans'],
},
fontSize: {
xs: ['.75rem'],
diff --git a/types/cms.ts b/types/cms.ts
index a78902a..6820e56 100644
--- a/types/cms.ts
+++ b/types/cms.ts
@@ -19,17 +19,18 @@ export type IFigureImage = {
imageUrl: string;
};
-export type IPost = {
+export interface IPost {
id: string;
title: string;
subtitle: string;
+ description: string;
body: Document;
author?: IAuthor;
publishedDate: string;
featureImage?: IFigureImage;
tags: Array;
slug: string;
-};
+}
export type BodyDocument = {
nodeType: 'document';
diff --git a/yarn.lock b/yarn.lock
index 72ec227..332c591 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1396,11 +1396,6 @@
"@types/react" "*"
hoist-non-react-statics "^3.3.0"
-"@types/js-cookie@2.2.6":
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f"
- integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw==
-
"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4":
version "7.0.5"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd"
@@ -1753,7 +1748,7 @@
"@webassemblyjs/wast-parser" "1.9.0"
"@xtuc/long" "4.2.2"
-"@xobotyi/scrollbar-width@1.9.5":
+"@xobotyi/scrollbar-width@^1.9.5":
version "1.9.5"
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==
@@ -2775,11 +2770,6 @@ boolbase@^1.0.0, boolbase@~1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-bowser@^1.7.3:
- version "1.9.4"
- resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a"
- integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==
-
boxen@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
@@ -3550,7 +3540,7 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-copy-to-clipboard@^3.2.0:
+copy-to-clipboard@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==
@@ -3800,7 +3790,7 @@ css-tree@1.0.0-alpha.37:
mdn-data "2.0.4"
source-map "^0.6.1"
-css-tree@1.0.0-alpha.39, css-tree@^1.0.0-alpha.28:
+css-tree@1.0.0-alpha.39:
version "1.0.0-alpha.39"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
@@ -3808,6 +3798,14 @@ css-tree@1.0.0-alpha.39, css-tree@^1.0.0-alpha.28:
mdn-data "2.0.6"
source-map "^0.6.1"
+css-tree@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5"
+ integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
css-unit-converter@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21"
@@ -3913,16 +3911,16 @@ csso@^4.0.2:
dependencies:
css-tree "1.0.0-alpha.39"
-csstype@^2.5.5:
- version "2.6.13"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
- integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==
-
csstype@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7"
integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==
+csstype@^3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef"
+ integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==
+
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -4690,10 +4688,10 @@ fast-shallow-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz#d4dcaf6472440dcefa6f88b98e3251e27f25628b"
integrity sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==
-fastest-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-1.0.1.tgz#9122d406d4c9d98bea644a6b6853d5874b87b028"
- integrity sha1-kSLUBtTJ2YvqZEpraFPVh0uHsCg=
+fastest-stable-stringify@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76"
+ integrity sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==
fastparse@^1.1.2:
version "1.1.2"
@@ -5599,12 +5597,11 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
-inline-style-prefixer@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-4.0.2.tgz#d390957d26f281255fe101da863158ac6eb60911"
- integrity sha512-N8nVhwfYga9MiV9jWlwfdj1UDIaZlBFu4cJSJkIr7tZX7sHpHhGR5su1qdpW+7KPL8ISTvCIkcaFi/JdBknvPg==
+inline-style-prefixer@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz#f73d5dbf2855733d6b153a4d24b7b47a73e9770b"
+ integrity sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg==
dependencies:
- bowser "^1.7.3"
css-in-js-utils "^2.0.0"
insert-css@^2.0.0:
@@ -6457,6 +6454,11 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
mdn-data@2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
@@ -6734,19 +6736,19 @@ nan@^2.12.1, nan@^2.13.2:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
-nano-css@^5.2.1:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.3.0.tgz#9d3cd29788d48b6a07f52aa4aec7cf4da427b6b5"
- integrity sha512-uM/9NGK9/E9/sTpbIZ/bQ9xOLOIHZwrrb/CRlbDHBU/GFS7Gshl24v/WJhwsVViWkpOXUmiZ66XO7fSB4Wd92Q==
+nano-css@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.3.1.tgz#b709383e07ad3be61f64edffacb9d98250b87a1f"
+ integrity sha512-ENPIyNzANQRyYVvb62ajDd7PAyIgS2LIUnT9ewih4yrXSZX4hKoUwssy8WjUH++kEOA5wUTMgNnV7ko5n34kUA==
dependencies:
- css-tree "^1.0.0-alpha.28"
- csstype "^2.5.5"
- fastest-stable-stringify "^1.0.1"
- inline-style-prefixer "^4.0.0"
- rtl-css-js "^1.9.0"
- sourcemap-codec "^1.4.1"
- stacktrace-js "^2.0.0"
- stylis "3.5.0"
+ css-tree "^1.1.2"
+ csstype "^3.0.6"
+ fastest-stable-stringify "^2.0.2"
+ inline-style-prefixer "^6.0.0"
+ rtl-css-js "^1.14.0"
+ sourcemap-codec "^1.4.8"
+ stacktrace-js "^2.0.2"
+ stylis "^4.0.6"
nanoid@^3.1.12:
version "3.1.12"
@@ -8334,25 +8336,24 @@ react-universal-interface@^0.6.2:
resolved "https://registry.yarnpkg.com/react-universal-interface/-/react-universal-interface-0.6.2.tgz#5e8d438a01729a4dbbcbeeceb0b86be146fe2b3b"
integrity sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==
-react-use@^15.3.4:
- version "15.3.4"
- resolved "https://registry.yarnpkg.com/react-use/-/react-use-15.3.4.tgz#f853d310bd71f75b38900a8caa3db93f6dc6e872"
- integrity sha512-cHq1dELW6122oi1+xX7lwNyE/ugZs5L902BuO8eFJCfn2api1KeuPVG1M/GJouVARoUf54S2dYFMKo5nQXdTag==
+react-use@^17.1.0:
+ version "17.1.0"
+ resolved "https://registry.yarnpkg.com/react-use/-/react-use-17.1.0.tgz#a2db05f7cca2f09a6b90b2151cd4c620e9582fe8"
+ integrity sha512-BVVG5FWXYhfkQcGhtSYNx3wPh5bvOZieH2iq1h6/WYTDCScade1JqoM5XRHPkYXfFzAzhb8QlAtt9Suj8yAumA==
dependencies:
- "@types/js-cookie" "2.2.6"
- "@xobotyi/scrollbar-width" "1.9.5"
- copy-to-clipboard "^3.2.0"
+ "@xobotyi/scrollbar-width" "^1.9.5"
+ copy-to-clipboard "^3.3.1"
fast-deep-equal "^3.1.3"
fast-shallow-equal "^1.0.0"
js-cookie "^2.2.1"
- nano-css "^5.2.1"
+ nano-css "^5.3.1"
react-universal-interface "^0.6.2"
resize-observer-polyfill "^1.5.1"
- screenfull "^5.0.0"
+ screenfull "^5.1.0"
set-harmonic-interval "^1.0.1"
- throttle-debounce "^2.1.0"
+ throttle-debounce "^3.0.1"
ts-easing "^0.2.0"
- tslib "^2.0.0"
+ tslib "^2.1.0"
react@^17.0.0:
version "17.0.0"
@@ -8792,7 +8793,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
-rtl-css-js@^1.9.0:
+rtl-css-js@^1.14.0:
version "1.14.0"
resolved "https://registry.yarnpkg.com/rtl-css-js/-/rtl-css-js-1.14.0.tgz#daa4f192a92509e292a0519f4b255e6e3c076b7d"
integrity sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg==
@@ -8906,10 +8907,10 @@ schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6:
ajv "^6.12.2"
ajv-keywords "^3.4.1"
-screenfull@^5.0.0:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.0.2.tgz#b9acdcf1ec676a948674df5cd0ff66b902b0bed7"
- integrity sha512-cCF2b+L/mnEiORLN5xSAz6H3t18i2oHh9BA8+CQlAh5DRw2+NFAGQJOSYbcGw8B2k04g/lVvFcfZ83b3ysH5UQ==
+screenfull@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.1.0.tgz#85c13c70f4ead4c1b8a935c70010dfdcd2c0e5c8"
+ integrity sha512-dYaNuOdzr+kc6J6CFcBrzkLCfyGcMg+gWkJ8us93IQ7y1cevhQAugFsaCdMHb6lw8KV3xPzSxzH7zM1dQap9mA==
scss-tokenizer@^0.2.3:
version "0.2.3"
@@ -9216,7 +9217,7 @@ source-map@^0.5.0, source-map@^0.5.6:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-sourcemap-codec@^1.4.1:
+sourcemap-codec@^1.4.8:
version "1.4.8"
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
@@ -9314,7 +9315,7 @@ stacktrace-gps@^3.0.4:
source-map "0.5.6"
stackframe "^1.1.1"
-stacktrace-js@^2.0.0:
+stacktrace-js@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b"
integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==
@@ -9581,16 +9582,16 @@ stylis-rule-sheet@0.0.10:
resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
integrity sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==
-stylis@3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1"
- integrity sha512-pP7yXN6dwMzAR29Q0mBrabPCe0/mNO1MSr93bhay+hcZondvMMTpeGyd8nbhYJdyperNT2DRxONQuUGcJr5iPw==
-
stylis@3.5.4:
version "3.5.4"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+stylis@^4.0.6:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.7.tgz#412a90c28079417f3d27c028035095e4232d2904"
+ integrity sha512-OFFeUXFgwnGOKvEXaSv0D0KQ5ADP0n6g3SVONx6I/85JzNZ3u50FRwB3lVIk1QO2HNdI75tbVzc4Z66Gdp9voA==
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -9780,10 +9781,10 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-throttle-debounce@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2"
- integrity sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==
+throttle-debounce@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb"
+ integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==
through2@^2.0.0:
version "2.0.5"
@@ -9942,10 +9943,10 @@ tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
-tslib@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
- integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==
+tslib@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+ integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
tsutils@^3.17.1:
version "3.17.1"