starting off header with the full window dimensions

This commit is contained in:
talksik
2022-04-30 21:14:03 -05:00
parent b9141d643d
commit 66db28cd7c
14 changed files with 262 additions and 25 deletions
+5
View File
@@ -107,7 +107,12 @@
"webpack": "^5.72.0"
},
"dependencies": {
"@carbon/colors": "^11.1.0",
"@carbon/icons-react": "10.22.0",
"@carbon/motion": "^11.0.0",
"@carbon/react": "^1.2.0",
"@carbon/themes": "^11.2.0",
"@carbon/type": "^11.2.0",
"@getstation/electron-google-oauth2": "^2.1.0",
"@nirvana/core": "*",
"@types/carbon-components-react": "^7.55.1",
@@ -1,7 +1,4 @@
export enum LogoType {
primary = "primary",
small = "small",
}
export type LogoType = "primary" | "small";
export default function Logo({
className,
@@ -10,7 +7,7 @@ export default function Logo({
className: string;
type?: LogoType;
}) {
if (type === LogoType.small) {
if (type === "small") {
return (
<svg
width="85"
@@ -13,10 +13,11 @@ export default function ProtectedRoute({
}: {
children?: React.ReactNode;
}) {
const { isLoading, isError, isFetching, isSuccess, refetch } = useAuthCheck();
const [jwtToken, setJwtToken] = useRecoilState($jwtToken);
const { isLoading, isError, isFetching, isSuccess, refetch } =
useAuthCheck(jwtToken);
useEffect(() => {
// on load of this, if we already have jwt tokens in store,
// then try using them with auth check
@@ -40,11 +41,13 @@ export default function ProtectedRoute({
if (jwtToken) {
window.electronAPI.store.set(STORE_ITEMS.AUTH_SESSION_JWT, jwtToken);
setJwtToken(jwtToken);
} else {
window.electronAPI.store.set(STORE_ITEMS.AUTH_SESSION_JWT, null);
}
NirvanaApi._jwtToken = jwtToken;
refetch();
}, [jwtToken]);
@@ -0,0 +1,38 @@
import { Header, HeaderName } from "carbon-components-react";
import { useEffect, useMemo, useRef, useState } from "react";
import { Avatar } from "antd";
import Logo from "../Logo";
import { useGetUserDetails } from "../../controller/index";
export default function NirvanaHeader() {
const { data: userDetailsRes, isLoading } = useGetUserDetails();
const userVideo = useRef<HTMLVideoElement>();
const [userVideoStream, setUserVideoStream] =
useState<MediaStream>(undefined);
// todo: show user local video stream
useEffect(() => {
navigator.mediaDevices
.getUserMedia({ video: true, audio: true })
.then((stream: MediaStream) => {
if (userVideo) userVideo.current.srcObject = stream;
setUserVideoStream(stream);
});
}, []);
if (isLoading) return <>loading</>;
const userRepresentation = useMemo(() => {
if (userVideoStream) return;
}, []);
return (
<div className="flex flex-row items-center h-12 bg-gray-100">
<Logo type="small" className="scale-[0.2]" />
{userDetailsRes?.user?.picture && <></>}
</div>
);
}
+2 -1
View File
@@ -2,10 +2,11 @@ import NirvanaApi, { ApiCalls } from "./nirvanaApi";
import { useMutation, useQuery } from "react-query";
// ====== QUERIES
export function useAuthCheck() {
export function useAuthCheck(jwtToken?: string) {
return useQuery("AUTH_CHECK", ApiCalls.authCheck, {
retry: false,
refetchOnWindowFocus: false,
enabled: jwtToken ? true : false,
});
}
+21 -7
View File
@@ -12,14 +12,28 @@ export enum STORE_ITEMS {
AUTH_SESSION_JWT = "AUTH_SESSION_JWT",
}
export const Dimensions = {
default: {
height: 700,
width: 500,
export type Dimensions = {
height: number;
width: number;
};
export const DimensionPresets = {
terminal: {
height: 675,
width: 400,
},
selectedConvo: {
height: 700,
width: 900,
terminalDetailOrOverlay: {
height: 675,
width: 800,
},
terminalDetailOverlay: {
height: 675,
width: 1100,
},
// todo: typically just send whatever dimensions are needed
overlayMode: {
height: -1,
width: 300,
},
};
+2 -2
View File
@@ -1,6 +1,6 @@
import Channels, { Dimensions } from "./constants";
import { contextBridge, ipcRenderer } from "electron";
import Channels from "./constants";
import { STORE_ITEMS } from "./constants";
const electronAPI = {
@@ -20,7 +20,7 @@ const electronAPI = {
},
window: {
resizeWindow(newDimensions: { width: number; height: number }) {
resizeWindow(newDimensions: Dimensions) {
ipcRenderer.send(Channels.RESIZE_WINDOW, newDimensions);
},
},
+3 -1
View File
@@ -1,6 +1,7 @@
import { BrowserWindow, app, dialog, globalShortcut, ipcMain } from "electron";
import Channels, { Dimensions } from "./electron/constants";
import { DimensionPresets } from "./electron/constants";
import { handleGoogleLogin } from "./electron/handleLogin";
import path from "path";
import store from "./electron/store";
@@ -24,11 +25,12 @@ export let browserWindow: BrowserWindow;
const createWindow = (): void => {
// Create the browser window.
browserWindow = new BrowserWindow({
...Dimensions.default,
...DimensionPresets.terminal,
webPreferences: {
preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
sandbox: true,
},
alwaysOnTop: true,
icon: "./assets/1024x1024.icns",
});
@@ -0,0 +1,3 @@
export default function LineDetails() {
return <div className="flex flex-col flex-1">this is the line details</div>;
}
@@ -0,0 +1,3 @@
export default function Overlay() {
return <div className="flex flex-col flex-1">this is the overlay</div>;
}
+26 -1
View File
@@ -1,3 +1,28 @@
import { DimensionPresets, Dimensions } from "../../electron/constants";
import React, { useState } from "react";
import LineDetails from "../lineDetails";
import NirvanaTerminal from "../terminal";
import Overlay from "../overlay";
import { Search } from "carbon-components-react";
import { useEffect } from "react";
export default function NirvanaRouter() {
return <>this is the top level router</>;
const [desktopMode, setDesktopMode] = useState<Dimensions>(
DimensionPresets.terminalDetailOverlay
);
useEffect(() => {
window.electronAPI.window.resizeWindow(desktopMode);
}, [desktopMode]);
return (
<div className="h-screen w-screen flex flex-row">
<NirvanaTerminal />
<LineDetails />
<Overlay />
</div>
);
}
@@ -0,0 +1,9 @@
import NirvanaHeader from "../../components/header";
export default function NirvanaTerminal() {
return (
<div className="flex flex-col flex-1">
<NirvanaHeader />
</div>
);
}
+143 -6
View File
@@ -79,14 +79,31 @@
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.9.1":
"@babel/runtime@^7.16.7", "@babel/runtime@^7.9.1":
version "7.17.9"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
dependencies:
regenerator-runtime "^0.13.4"
"@carbon/icon-helpers@^10.10.0", "@carbon/icon-helpers@^10.28.0":
"@carbon/colors@^11.1.0":
version "11.1.0"
resolved "https://registry.yarnpkg.com/@carbon/colors/-/colors-11.1.0.tgz#8f3f1d0c06781298668af0e54155d5754e8f08f6"
integrity sha512-06VIETXyOgZRNkrZBG+scq5r2souu1klJntSvKaiuDCCgWa3zvMEx0PSGmlnQbj8fCMJlUYx6fUHq6WD9h84pQ==
"@carbon/feature-flags@^0.7.0":
version "0.7.0"
resolved "https://registry.yarnpkg.com/@carbon/feature-flags/-/feature-flags-0.7.0.tgz#fe8068b482439ae7af519ccdbf627f31373bb646"
integrity sha512-nxVvnSMC6Ia/xn0j02FHPATfB/Iv6nnkZAQ6GrEdPLivSF1T2oaTvgawUsXBO8RBX7wQBq5l7uW8qH/0WfjIFw==
"@carbon/grid@^11.1.0":
version "11.1.0"
resolved "https://registry.yarnpkg.com/@carbon/grid/-/grid-11.1.0.tgz#6ffec0466c09f91fbfeca45de237e8e8dc2d5fba"
integrity sha512-AS78yH03bEqBysxRQ/zujAJTE69NLBsNezDiECUFf+VAS6hJQi0LSDxuuo6HOKQpLqUANj4d6eZdcnrIuw/Z5A==
dependencies:
"@carbon/layout" "^11.1.0"
"@carbon/icon-helpers@^10.10.0", "@carbon/icon-helpers@^10.28.0", "@carbon/icon-helpers@^10.29.0":
version "10.29.0"
resolved "https://registry.yarnpkg.com/@carbon/icon-helpers/-/icon-helpers-10.29.0.tgz#686bc5a337bec6d8fb482655f4564f3376452a35"
integrity sha512-QlYdeL97klhqahsayK6uEDPtr7imU4bdaudWPVZojg+7Uio3WNzb5iUNLkWA5zRLvP4xgcjSpbdDX2sT3CgL2A==
@@ -108,11 +125,88 @@
"@carbon/telemetry" "0.1.0"
prop-types "^15.7.2"
"@carbon/icons-react@^11.2.0":
version "11.2.0"
resolved "https://registry.yarnpkg.com/@carbon/icons-react/-/icons-react-11.2.0.tgz#4197ea9a9db9aa0ebb0b572c2807a7db4962fbeb"
integrity sha512-Q8SEn6o3oC45TcwAf/A4jgaz6P69I2LMgXEC9YAawj8am13PoQJyi03JfmJpQ++FF/hPpbImCQYnJSFxebzzZw==
dependencies:
"@carbon/icon-helpers" "^10.29.0"
"@carbon/telemetry" "0.1.0"
prop-types "^15.7.2"
"@carbon/layout@^11.1.0":
version "11.1.0"
resolved "https://registry.yarnpkg.com/@carbon/layout/-/layout-11.1.0.tgz#7a2072495761b1c59ebfde4271166397d18ba2f5"
integrity sha512-aryW3p8nr4xjPtr8uN5oheV9ymtVf6SCYgSkDhCPFSIK8UZt1SCUMobaMVRi3stKTm/7B9WzC27T9nKGz336aA==
"@carbon/motion@^11.0.0":
version "11.0.0"
resolved "https://registry.yarnpkg.com/@carbon/motion/-/motion-11.0.0.tgz#2a6e4175ac0a29e9b9a9a83750deae46a0eeedb3"
integrity sha512-3KYZJEALeYq99EF/LyIbfa8NvkWeZAeAjlqlYGmCCs8rDihaX97NQ4QgfMT9kwzjD/3sEjV5CTmvI2CJJw0RfA==
"@carbon/react@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@carbon/react/-/react-1.2.0.tgz#276db8dd1addbfec256ca4065e51c05a3aeca189"
integrity sha512-A0qxC1eeFyv7h5yQ4gO0RqT4vTllYzQAQm396dqBIVdSdHZCsyF03TrTN5ioi1e765pVg/xo8jjrkdF9XnJuLw==
dependencies:
"@babel/runtime" "^7.16.7"
"@carbon/feature-flags" "^0.7.0"
"@carbon/icons-react" "^11.2.0"
"@carbon/layout" "^11.1.0"
"@carbon/styles" "^1.2.0"
"@carbon/telemetry" "0.1.0"
classnames "2.3.1"
copy-to-clipboard "^3.3.1"
downshift "5.2.1"
flatpickr "4.6.9"
invariant "^2.2.3"
lodash.debounce "^4.0.8"
lodash.findlast "^4.5.0"
lodash.isequal "^4.5.0"
lodash.omit "^4.5.0"
lodash.throttle "^4.1.1"
prop-types "^15.7.2"
react-is "^17.0.2"
use-resize-observer "^6.0.0"
wicg-inert "^3.1.1"
window-or-global "^1.0.1"
"@carbon/styles@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@carbon/styles/-/styles-1.2.0.tgz#b5169f0ead075b2722168386887a309fe2978c50"
integrity sha512-Mjayurl0usqnSN/4LDKgQg2eU2XouyUPvmSdaZdAGT9RCnRa5sQsSCAwh90Ctg3e1GwswVYcMynWcGDFpWxpbQ==
dependencies:
"@carbon/colors" "^11.1.0"
"@carbon/feature-flags" "^0.7.0"
"@carbon/grid" "^11.1.0"
"@carbon/layout" "^11.1.0"
"@carbon/motion" "^11.0.0"
"@carbon/themes" "^11.2.0"
"@carbon/type" "^11.2.0"
"@ibm/plex" "6.0.0-next.6"
"@carbon/[email protected]":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@carbon/telemetry/-/telemetry-0.1.0.tgz#57b331cd5a855b4abbf55457456da8211624d879"
integrity sha512-kNWt0bkgPwGW0i5h7HFuljbKRXPvIhsKbB+1tEURAYLXoJg9iJLF1eGvWN5iVoFCS2zje4GR3OGOsvvKVe7Hlg==
"@carbon/themes@^11.2.0":
version "11.2.0"
resolved "https://registry.yarnpkg.com/@carbon/themes/-/themes-11.2.0.tgz#86786737946d8a7ea35cff1b2ca767f2f0c88c16"
integrity sha512-dhZwbAoHl47MEdSYSr1S2vq/DYef9djNR/XU9QpbsyuKXvsHwxJti6+hdIKQc9DxQ+jtpCsGYxLeAKu8I8q6XA==
dependencies:
"@carbon/colors" "^11.1.0"
"@carbon/layout" "^11.1.0"
"@carbon/type" "^11.2.0"
color "^3.1.2"
"@carbon/type@^11.2.0":
version "11.2.0"
resolved "https://registry.yarnpkg.com/@carbon/type/-/type-11.2.0.tgz#631d307078eb5d82ac507756f4dd009d81a395b4"
integrity sha512-CRv2VA5MyGTYa4WUxUfLal6DVfaWpZCwnvfQr4RgT0qPD3uuGfP6DFoQ7YFnZFVnCZtcsMPJuqzcHiAJFR5jvQ==
dependencies:
"@carbon/grid" "^11.1.0"
"@cspotcode/[email protected]":
version "0.8.0"
resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz"
@@ -482,6 +576,11 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@ibm/[email protected]":
version "6.0.0-next.6"
resolved "https://registry.yarnpkg.com/@ibm/plex/-/plex-6.0.0-next.6.tgz#5b4ab81a84ddb06651fdf684521927cdce135b79"
integrity sha512-B3uGruTn2rS5gweynLmfSe7yCawSRsJguJJQHVQiqf4rh2RNgJFu8YLE2Zd/JHV0ZXoVMOslcXP2k3hMkxKEyA==
"@malept/cross-spawn-promise@^1.0.0", "@malept/cross-spawn-promise@^1.1.0":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d"
@@ -2095,7 +2194,7 @@ [email protected]:
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
[email protected], classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1:
[email protected], [email protected], classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
@@ -2183,7 +2282,7 @@ code-point-at@^1.0.0:
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
color-convert@^1.9.0:
color-convert@^1.9.0, color-convert@^1.9.3:
version "1.9.3"
resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -2202,16 +2301,32 @@ [email protected]:
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
color-name@^1.1.4, color-name@~1.1.4:
color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-string@^1.6.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
color@^3.1.2:
version "3.2.1"
resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
dependencies:
color-convert "^1.9.3"
color-string "^1.6.0"
colorette@^2.0.10:
version "2.0.16"
resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz"
@@ -2362,7 +2477,7 @@ [email protected], cookie@~0.4.1:
resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
copy-to-clipboard@^3.2.0:
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==
@@ -4680,6 +4795,11 @@ is-arrayish@^0.2.1:
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-arrayish@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
@@ -7101,6 +7221,11 @@ react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.6:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-is@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
react-query@^3.34.16:
version "3.34.16"
resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.34.16.tgz#279ea180bcaeaec49c7864b29d1711ee9f152594"
@@ -7665,6 +7790,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
dependencies:
is-arrayish "^0.3.1"
single-line-log@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364"
@@ -8775,6 +8907,11 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
wicg-inert@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.1.tgz#b033fd4fbfb9e3fd709e5d84becbdf2e06e5c229"
integrity sha512-PhBaNh8ur9Xm4Ggy4umelwNIP6pPP1bv3EaWaKqfb/QNme2rdLjm7wIInvV4WhxVHhzA4Spgw9qNSqWtB/ca2A==
wide-align@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"