From 01122eb7a82ebc7db06f4856fddf3f34dac3b3ab Mon Sep 17 00:00:00 2001 From: Cody Bender Date: Thu, 8 Aug 2024 22:03:52 -0400 Subject: [PATCH 01/10] style: set primary to laconic blue --- src/components/AppBar.js | 40 +++--- src/components/Json.js | 9 +- src/components/Toolbar.js | 23 ++-- src/containers/panels/registry/Registry.js | 56 ++++---- src/theme.js | 148 +++++++++++---------- 5 files changed, 146 insertions(+), 130 deletions(-) diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 1aebe39..45f4594 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -2,13 +2,13 @@ // Copyright 2020 DXOS.org // -import React from 'react'; -import { makeStyles } from '@material-ui/core'; -import MuiAppBar from '@material-ui/core/AppBar'; -import Link from '@material-ui/core/Link'; -import Toolbar from '@material-ui/core/Toolbar'; -import Typography from '@material-ui/core/Typography'; -import blueGrey from '@material-ui/core/colors/blueGrey'; +import React from "react"; +import { makeStyles } from "@material-ui/core"; +import MuiAppBar from "@material-ui/core/AppBar"; +import Link from "@material-ui/core/Link"; +import Toolbar from "@material-ui/core/Toolbar"; +import Typography from "@material-ui/core/Typography"; +import blueGrey from "@material-ui/core/colors/blueGrey"; // import GraphQLIcon from '@material-ui/icons/Adb'; // import LaconicIcon from '../icons/Laconic'; @@ -21,26 +21,26 @@ const useStyles = makeStyles((theme) => ({ marginRight: theme.spacing(2), color: theme.palette.grey[800], - '& svg': { + "& svg": { width: 100, - height: 48 - } + height: 48, + }, }, logoLink: { - lineHeight: 0 + lineHeight: 0, }, title: { - display: 'flex', + display: "flex", flex: 1, marginTop: 2, - color: theme.palette.grey[800] + color: "#FBFBFB", }, link: { - color: blueGrey[900] - } + color: blueGrey[900], + }, })); const AppBar = ({ config }) => { @@ -48,19 +48,19 @@ const AppBar = ({ config }) => { return ( <> - - - + + + {/*
*/}
- Laconic + Laconic
 
- {config.app.title} + {config.app.title}
{/*
({ const Json = ({ data }) => { const classes = useStyles(); - return ( - - ); + return null + // return ( + // + // ); }; export default Json; diff --git a/src/components/Toolbar.js b/src/components/Toolbar.js index 223a3b2..e895558 100644 --- a/src/components/Toolbar.js +++ b/src/components/Toolbar.js @@ -2,20 +2,21 @@ // Copyright 2020 DXOS.org // -import React from 'react'; -import { makeStyles } from '@material-ui/core'; -import MuiToolbar from '@material-ui/core/Toolbar'; +import React from "react"; +import { makeStyles } from "@material-ui/core"; +import MuiToolbar from "@material-ui/core/Toolbar"; -const useStyles = makeStyles(theme => ({ +const useStyles = makeStyles((theme) => ({ toolbar: { - display: 'flex', - justifyContent: 'space-between', - whiteSpace: 'nowrap', + display: "flex", + justifyContent: "space-between", + whiteSpace: "nowrap", - '& > button': { - margin: theme.spacing(0.5) - } - } + "& > button": { + margin: theme.spacing(0.5), + }, + color: "primary", + }, })); // TODO(burdon): Tabs. diff --git a/src/containers/panels/registry/Registry.js b/src/containers/panels/registry/Registry.js index 90ad6e8..dec0e07 100644 --- a/src/containers/panels/registry/Registry.js +++ b/src/containers/panels/registry/Registry.js @@ -2,43 +2,43 @@ // Copyright 2020 DXOS.org // -import React, { useState } from 'react'; -import { makeStyles } from '@material-ui/core'; -import Paper from '@material-ui/core/Paper'; -import Tab from '@material-ui/core/Tab'; -import Tabs from '@material-ui/core/Tabs'; -import TabContext from '@material-ui/lab/TabContext'; +import React, { useState } from "react"; +import { makeStyles } from "@material-ui/core"; +import Paper from "@material-ui/core/Paper"; +import Tab from "@material-ui/core/Tab"; +import Tabs from "@material-ui/core/Tabs"; +import TabContext from "@material-ui/lab/TabContext"; -import Panel from '../../../components/Panel'; -import Toolbar from '../../../components/Toolbar'; +import Panel from "../../../components/Panel"; +import Toolbar from "../../../components/Toolbar"; // import LogPoller from '../../../components/LogPoller'; -import RegistryLookup, { LookupType } from './RegistryLookup'; -import RegistryStatus from './RegistryStatus'; -import RegistryRecords from './RegistryRecords'; +import RegistryLookup, { LookupType } from "./RegistryLookup"; +import RegistryStatus from "./RegistryStatus"; +import RegistryRecords from "./RegistryRecords"; // import RegistryRecords, { RecordType } from './RegistryRecords'; -const TAB_RECORDS = 'records'; -const TAB_STATUS = 'status'; -const TAB_LOOKUP = 'lookup'; +const TAB_RECORDS = "records"; +const TAB_STATUS = "status"; +const TAB_LOOKUP = "lookup"; // const TAB_LOG = 'log'; const useStyles = makeStyles(() => ({ expand: { - flex: 1 + flex: 1, }, panel: { - display: 'flex', - overflowY: 'scroll', - flex: 1 + display: "flex", + overflowY: "scroll", + flex: 1, }, paper: { - display: 'flex', - overflow: 'hidden', - flex: 1 - } + display: "flex", + overflow: "hidden", + flex: 1, + }, })); const Registry = () => { @@ -51,10 +51,14 @@ const Registry = () => { - setTab(value)}> - - - + setTab(value)} + indicatorColor="primary" + > + + + {/* */} diff --git a/src/theme.js b/src/theme.js index ae763c6..2739619 100644 --- a/src/theme.js +++ b/src/theme.js @@ -2,78 +2,88 @@ // Copyright 2019 DXOS.org // -import { createTheme as createMuiTheme } from '@material-ui/core/styles'; -import teal from '@material-ui/core/colors/teal'; -import orange from '@material-ui/core/colors/orange'; +import { createTheme as createMuiTheme } from "@material-ui/core/styles"; +import teal from "@material-ui/core/colors/teal"; +import orange from "@material-ui/core/colors/orange"; -export const createTheme = (theme) => createMuiTheme({ +export const createTheme = (theme) => + createMuiTheme({ + // https://material-ui.com/system/shadows + shadows: ["none"], - // https://material-ui.com/system/shadows - shadows: ['none'], + // https://stackoverflow.com/questions/60567673/reactjs-material-ui-theme-mixins-toolbar-offset-is-not-adapting-when-toolbar + mixins: { + denseToolbar: { + height: 48, + }, + }, - // https://stackoverflow.com/questions/60567673/reactjs-material-ui-theme-mixins-toolbar-offset-is-not-adapting-when-toolbar - mixins: { - denseToolbar: { - height: 48 - } - }, + // https://material-ui.com/customization/globals/#default-props + props: { + MuiButtonBase: { + disableRipple: true, + }, + MuiButton: { + size: "small", + }, + MuiFilledInput: { + margin: "dense", + }, + MuiFormControl: { + margin: "dense", + }, + MuiFormHelperText: { + margin: "dense", + }, + MuiIconButton: { + size: "small", + }, + MuiInputBase: { + margin: "dense", + }, + MuiInputLabel: { + margin: "dense", + }, + MuiTable: { + size: "small", + }, + MuiTextField: { + margin: "dense", + }, + MuiToolbar: { + variant: "dense", + }, + }, - // https://material-ui.com/customization/globals/#default-props - props: { - MuiButtonBase: { - disableRipple: true - }, - MuiButton: { - size: 'small' - }, - MuiFilledInput: { - margin: 'dense' - }, - MuiFormControl: { - margin: 'dense' - }, - MuiFormHelperText: { - margin: 'dense' - }, - MuiIconButton: { - size: 'small' - }, - MuiInputBase: { - margin: 'dense' - }, - MuiInputLabel: { - margin: 'dense' - }, - MuiTable: { - size: 'small' - }, - MuiTextField: { - margin: 'dense' - }, - MuiToolbar: { - variant: 'dense' - } - }, + // https://material-ui.com/customization/palette/ + palette: + theme === "dark" + ? { + type: "dark", + primary: { + main: "#0000F4", + }, + background: { + default: "#0F0F0F", + secondary: "#18181A", + paper: "#18181A", + }, + } + : { + primary: teal, + }, - // https://material-ui.com/customization/palette/ - palette: theme === 'dark' ? { - type: 'dark', - primary: orange - } : { - primary: teal - }, + // https://material-ui.com/customization/theming/#theme-configuration-variables - // https://material-ui.com/customization/theming/#theme-configuration-variables - - // https://material-ui.com/customization/globals/ - overrides: { - MuiCssBaseline: { - '@global': { - body: { - margin: 0, - overflow: 'hidden' - } - } - } - } -}); + // https://material-ui.com/customization/globals/ + overrides: { + MuiCssBaseline: { + "@global": { + body: { + margin: 0, + overflow: "hidden", + }, + }, + }, + }, + }); -- 2.45.2 From ccb31956a86c87335859715e483efebcbb642651 Mon Sep 17 00:00:00 2001 From: Cody Bender Date: Thu, 8 Aug 2024 22:24:20 -0400 Subject: [PATCH 02/10] style: some more colors --- src/components/Sidebar.js | 83 +++++++++++++++++++++++++-------------- src/theme.js | 4 ++ 2 files changed, 57 insertions(+), 30 deletions(-) diff --git a/src/components/Sidebar.js b/src/components/Sidebar.js index d5f91ef..7d7885f 100644 --- a/src/components/Sidebar.js +++ b/src/components/Sidebar.js @@ -2,45 +2,51 @@ // Copyright 2020 DXOS.org // -import clsx from 'clsx'; -import React from 'react'; -import { useHistory, useParams } from 'react-router'; +import clsx from "clsx"; +import React from "react"; +import { useHistory, useParams } from "react-router"; // import { useQuery } from '@apollo/react-hooks'; -import { makeStyles } from '@material-ui/core'; -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemIcon from '@material-ui/core/ListItemIcon'; -import LinkIcon from '@material-ui/icons/ExitToApp'; -import ListItemText from '@material-ui/core/ListItemText'; +import { makeStyles } from "@material-ui/core"; +import List from "@material-ui/core/List"; +import ListItem from "@material-ui/core/ListItem"; +import ListItemIcon from "@material-ui/core/ListItemIcon"; +import LinkIcon from "@material-ui/icons/ExitToApp"; +import ListItemText from "@material-ui/core/ListItemText"; // import EXTENSIONS from '../gql/extensions.graphql'; // import { useQueryStatusReducer } from '../hooks'; -const useStyles = makeStyles(theme => ({ +const useStyles = makeStyles((theme) => ({ root: { - display: 'flex', + display: "flex", flex: 1, - flexDirection: 'column', - justifyContent: 'space-between' + flexDirection: "column", + justifyContent: "space-between", }, list: { - padding: 0 + padding: 0, + }, + + listItem: { + display: "flex", + alignItems: "center", + backgroundColor: theme.palette.background.secondary, }, icon: { minWidth: 40, - color: theme.palette.grey[500] + color: theme.palette.grey[500], }, selected: { - color: theme.palette.primary.main + color: theme.palette.primary.main, }, expand: { - flex: 1 - } + flex: 1, + }, })); const Sidebar = ({ modules: { services, settings } }) => { @@ -52,38 +58,55 @@ const Sidebar = ({ modules: { services, settings } }) => { // const extensions = extensionsData ? JSON.parse(extensionsData.extensions.json) : []; const extensions = []; - const isSelected = path => path === `/${module}`; + const isSelected = (path) => path === `/${module}`; const Modules = ({ modules }) => ( - + {modules.map(({ path, title, icon: Icon }) => ( - history.push(path)}> + history.push(path)} + className={classes.listItem} + > - + - + ))} ); const Extensions = ({ extensions }) => ( - + {extensions.map(({ url, title }) => { url = url - .replace('%HOST%', window.location.host) - .replace('%PORT%', window.location.port) - .replace('%PROTOCOL%', window.location.protocol); + .replace("%HOST%", window.location.host) + .replace("%PORT%", window.location.port) + .replace("%PROTOCOL%", window.location.protocol); return ( - { window.location = url; return true; }}> + { + window.location = url; + return true; + }} + > ); - } - )} + })} ); diff --git a/src/theme.js b/src/theme.js index 2739619..972dc53 100644 --- a/src/theme.js +++ b/src/theme.js @@ -68,6 +68,10 @@ export const createTheme = (theme) => secondary: "#18181A", paper: "#18181A", }, + text: { + primary: "#FBFBFB", + secondary: "#BDBCC3", + }, } : { primary: teal, -- 2.45.2 From 956c84c17ea7c780f2679b0550aad43a2e818efe Mon Sep 17 00:00:00 2001 From: Monkey Date: Thu, 8 Aug 2024 22:36:39 -0400 Subject: [PATCH 03/10] sidebar icon selected color matches font color --- src/components/Sidebar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Sidebar.js b/src/components/Sidebar.js index 7d7885f..2dda898 100644 --- a/src/components/Sidebar.js +++ b/src/components/Sidebar.js @@ -41,7 +41,7 @@ const useStyles = makeStyles((theme) => ({ }, selected: { - color: theme.palette.primary.main, + color: theme.palette.text.primary, }, expand: { -- 2.45.2 From aa794637d187964540bf2e3e48ac6b6f9d18b9cf Mon Sep 17 00:00:00 2001 From: Cody Bender Date: Thu, 8 Aug 2024 22:45:56 -0400 Subject: [PATCH 04/10] style: font --- public/index.html | 26 +++++++++++++++------- src/components/Sidebar.js | 21 ++++++++++++++--- src/containers/panels/registry/Registry.js | 11 ++++++--- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/public/index.html b/public/index.html index 835bbfd..e969b4d 100644 --- a/public/index.html +++ b/public/index.html @@ -1,10 +1,20 @@ - + - - - <%= title %> - - -
- + + + + + <%= title %> + + + + + + + +
+ + diff --git a/src/components/Sidebar.js b/src/components/Sidebar.js index 2dda898..353f78f 100644 --- a/src/components/Sidebar.js +++ b/src/components/Sidebar.js @@ -32,9 +32,18 @@ const useStyles = makeStyles((theme) => ({ listItem: { display: "flex", alignItems: "center", + backgroundColor: theme.palette.background.default, + }, + + selected: { backgroundColor: theme.palette.background.secondary, }, + itemText: { + fontFamily: '"DM Mono", monospace', + fontWeight: 400, + }, + icon: { minWidth: 40, color: theme.palette.grey[500], @@ -68,7 +77,7 @@ const Sidebar = ({ modules: { services, settings } }) => { selected={isSelected(path)} key={path} onClick={() => history.push(path)} - className={classes.listItem} + classes={{ root: classes.listItem, selected: classes.selected }} > { )} /> - + ))}
@@ -103,7 +115,10 @@ const Sidebar = ({ modules: { services, settings } }) => { - + ); })} diff --git a/src/containers/panels/registry/Registry.js b/src/containers/panels/registry/Registry.js index dec0e07..167961b 100644 --- a/src/containers/panels/registry/Registry.js +++ b/src/containers/panels/registry/Registry.js @@ -39,6 +39,11 @@ const useStyles = makeStyles(() => ({ overflow: "hidden", flex: 1, }, + + tabs: { + fontFamily: '"DM Mono", monospace', + fontWeight: 400, + }, })); const Registry = () => { @@ -56,9 +61,9 @@ const Registry = () => { onChange={(_, value) => setTab(value)} indicatorColor="primary" > - - - + + + {/* */}
-- 2.45.2 From 3ead0ee0d0715657aff4fff535c0704ba3eeed3b Mon Sep 17 00:00:00 2001 From: Cody Bender Date: Thu, 8 Aug 2024 23:00:38 -0400 Subject: [PATCH 05/10] style: appbar logo --- src/components/AppBar.js | 24 +++++++++++----- src/icons/Logo.js | 62 ++++++++++++++++++++++++---------------- 2 files changed, 54 insertions(+), 32 deletions(-) diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 45f4594..37d1d66 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -5,13 +5,14 @@ import React from "react"; import { makeStyles } from "@material-ui/core"; import MuiAppBar from "@material-ui/core/AppBar"; +import Divider from "@material-ui/core/Divider"; import Link from "@material-ui/core/Link"; import Toolbar from "@material-ui/core/Toolbar"; import Typography from "@material-ui/core/Typography"; import blueGrey from "@material-ui/core/colors/blueGrey"; // import GraphQLIcon from '@material-ui/icons/Adb'; -// import LaconicIcon from '../icons/Laconic'; +import LaconicIcon from "../icons/Logo"; // import { graphqlApi } from '../client'; const useStyles = makeStyles((theme) => ({ @@ -41,6 +42,14 @@ const useStyles = makeStyles((theme) => ({ link: { color: blueGrey[900], }, + + divider: { + backgroundColor: theme.palette.text.primary, + width: "1px", + height: "20px", + alignSelf: "center", + marginRight: 14, + }, })); const AppBar = ({ config }) => { @@ -49,16 +58,17 @@ const AppBar = ({ config }) => { return ( <> - + - {/*
+
-
*/} -
- Laconic
-   +
{config.app.title}
diff --git a/src/icons/Logo.js b/src/icons/Logo.js index 72f9c3c..cf3af44 100644 --- a/src/icons/Logo.js +++ b/src/icons/Logo.js @@ -2,35 +2,47 @@ // Copyright 2020 DXOS.org // -import React from 'react'; -import SvgIcon from '@material-ui/core/SvgIcon'; +import React from "react"; +import SvgIcon from "@material-ui/core/SvgIcon"; // TODO(burdon): Fixed color? const Icon = (props) => ( - - - - - - - - + + + + + + + + + ); -- 2.45.2 From a4c15a4d3f2444714dbb00e669c060f3aee8adab Mon Sep 17 00:00:00 2001 From: Cody Bender Date: Thu, 8 Aug 2024 23:15:50 -0400 Subject: [PATCH 06/10] chore: undo json comment --- src/components/Json.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/components/Json.js b/src/components/Json.js index 23c4419..0830470 100644 --- a/src/components/Json.js +++ b/src/components/Json.js @@ -2,26 +2,28 @@ // Copyright 2020 DXOS.org // -import React from 'react'; -import { makeStyles } from '@material-ui/core'; +import React from "react"; +import { makeStyles } from "@material-ui/core"; -// import { JsonTreeView } from '@lirewine/react-ux'; +import { JsonTreeView } from "@lirewine/react-ux"; -import { omitDeep } from '../util/omit'; +import { omitDeep } from "../util/omit"; const useStyles = makeStyles(() => ({ root: { - flex: 1 - } + flex: 1, + }, })); const Json = ({ data }) => { const classes = useStyles(); - return null - // return ( - // - // ); + return ( + + ); }; export default Json; -- 2.45.2 From bff6749a91e9c3b574aa2f6f3b211d48566a0023 Mon Sep 17 00:00:00 2001 From: Monkey Date: Thu, 8 Aug 2024 23:44:49 -0400 Subject: [PATCH 07/10] lighten background color, footer background color and border --- src/containers/StatusBar.js | 5 ++++- src/theme.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/containers/StatusBar.js b/src/containers/StatusBar.js index 63100fc..92077ec 100644 --- a/src/containers/StatusBar.js +++ b/src/containers/StatusBar.js @@ -28,7 +28,10 @@ const useStyles = makeStyles((theme) => ({ flexDirection: 'row', flex: 1, justifyContent: 'space-between', - backgroundColor: grey[900], + backgroundColor: theme.palette.background.default, + borderTop: 1, + borderTopColor: "rgba(255, 255, 255, 0.12)", + borderTopStyle: "solid", color: grey[400] }, left: { diff --git a/src/theme.js b/src/theme.js index 972dc53..56a5993 100644 --- a/src/theme.js +++ b/src/theme.js @@ -64,7 +64,7 @@ export const createTheme = (theme) => main: "#0000F4", }, background: { - default: "#0F0F0F", + default: "#18181A", secondary: "#18181A", paper: "#18181A", }, -- 2.45.2 From 4afadb950212f2972c98f4fd248430b256747a9e Mon Sep 17 00:00:00 2001 From: Cody Bender Date: Thu, 8 Aug 2024 23:44:45 -0400 Subject: [PATCH 08/10] style: json tree view --- src/components/AppBar.js | 2 +- src/components/Json.js | 9 +++++++++ src/theme.js | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 37d1d66..e11a072 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -57,7 +57,7 @@ const AppBar = ({ config }) => { return ( <> - +
diff --git a/src/components/Json.js b/src/components/Json.js index 0830470..49147ee 100644 --- a/src/components/Json.js +++ b/src/components/Json.js @@ -14,9 +14,18 @@ const useStyles = makeStyles(() => ({ flex: 1, }, })); +const useTreeStyles = makeStyles( + (theme) => ({ + colorPrimary: { + color: theme.palette.secondary.main, + }, + }), + { name: "MuiTypography" }, +); const Json = ({ data }) => { const classes = useStyles(); + useTreeStyles(); return ( primary: { main: "#0000F4", }, + secondary: { + main: "#A2A2FF", + }, background: { default: "#18181A", secondary: "#18181A", -- 2.45.2 From fc76478b8afa63b28447a2115a1d0d2176451c1b Mon Sep 17 00:00:00 2001 From: Monkey Date: Fri, 9 Aug 2024 00:02:37 -0400 Subject: [PATCH 09/10] background for sidebar, tabs and footer darker, inner container lighter --- src/components/Panel.js | 5 +++-- src/theme.js | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/Panel.js b/src/components/Panel.js index a722b4b..35278bc 100644 --- a/src/components/Panel.js +++ b/src/components/Panel.js @@ -5,7 +5,7 @@ import React from 'react'; import { makeStyles } from '@material-ui/core'; -const useStyles = makeStyles(() => ({ +const useStyles = makeStyles(theme => ({ root: { display: 'flex', flexDirection: 'column', @@ -17,7 +17,8 @@ const useStyles = makeStyles(() => ({ display: 'flex', flexDirection: 'column', flex: 1, - overflow: 'hidden' + overflow: 'hidden', + backgroundColor: theme.palette.background.paper, } })); diff --git a/src/theme.js b/src/theme.js index fdf33ea..be2be34 100644 --- a/src/theme.js +++ b/src/theme.js @@ -67,13 +67,14 @@ export const createTheme = (theme) => main: "#A2A2FF", }, background: { - default: "#18181A", + default: "#0F0F0F", secondary: "#18181A", paper: "#18181A", }, text: { primary: "#FBFBFB", secondary: "#BDBCC3", + lineLabel: "#A2A2FF", }, } : { -- 2.45.2 From b1f95b488c7417875d8fca8432c84694f4be32f2 Mon Sep 17 00:00:00 2001 From: Monkey Date: Fri, 9 Aug 2024 10:16:13 -0400 Subject: [PATCH 10/10] add favicon, hard code site title --- config-local.yml | 2 +- public/favicon.ico | Bin 0 -> 15406 bytes public/index.html | 4 +--- webpack.config.js | 1 + 4 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 public/favicon.ico diff --git a/config-local.yml b/config-local.yml index 580e414..849163b 100644 --- a/config-local.yml +++ b/config-local.yml @@ -5,7 +5,7 @@ app: title: 'Console' - org': 'Laconic' + org: 'Laconic' theme: 'dark' website: 'https://laconic.com' publicUrl: '/console' diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dd0f40afdd1c336e0658854facf1a85f9e55f110 GIT binary patch literal 15406 zcmeHOXQ*678$L17*iF>fHP;puTTqNGk*L_g@=sATDr#(~Ahw7F6%hnQ#1c`1n*8vG z1@$7>MWbTxU9l$Cv@>(g%;x*v?|Ei-_MScE?m4@g+EZ-`Y=@An~J*iv9g}vA_K$HVm`v@4qG7 za?93nTs!E-k31srQ%{K^?M*k8=<>^@hB<1rTC>^Z%k#%?zPZ>%i$qPHJTN!r)JGpJ z=95pPX04l}XuR5G7qP$oD&fS51LOUkti86V!wwS-Jo?&eC0u{~%sXzpQlig4Kl58i zeqj#R`#Dp+A8%Kz5Ow(B%{lnoy#Bh_rAx)U`KG8n_iX-_lovmqyfW{;E8+O@j-Gk# zwI=VHzvb*-ay)sZ4m!xKll;o?f3wXp7+S^ygTC}q3CE2S^WJ+c>0?u zlQ)jfR;nPlzr#7)`OQ@d6&_O0^r6i}qkby-TY}esa{*e2R1JeP_4Nmy3iLqr|RH?MICx*^)_RMgd1$&_q|fDcHdp%`|cC_ z?YClaN7;Y=souW-UZ}6Cu3gQXDdxiurDlxOaEI9MzH@h$UA(wOcP904-e>#gpQ85N zw-SA>+ux7o{r5$mdaBdK;Wpcd+HXIJZo0|wBadGCS!Mdr$MM~FyLI!P2zj^B{z&R4 zyrWM$P3+G-MyLPrkrzimtz2%oktOaWrh2PS>xGKfZ2P@JaVb&5tg=`}K4GXfLZHkCc#W8f;F=!FuaSNc)D3pWBTom@i46HXrv; zO`l#&A2zI>HA~EkFE(v_^U5m{op)YGdbfo>ZG2*Q`DF<=*(8f$-E}3t{dTD>Tb4b4 zu$ig59X|@zn#a=&ePYmBqKhtSPDnli!9(akrvo|h7|-I+j)K^=04@E*>z{r9i? z?CH69{{aW>Jhjh0bzQ}0>Gwvzx9|l1-;nuV4chauM?>a+MnNzc^yjZmU$8-IKK<{a zxWNC*bH+&!q77!D4HhSnAQ+FmngQO;gWN2}o^=x+YB>X|Ku0i!w3t|z12eI+2c3RA zUpCCKd){yj%dm!iVsG%B*!}M#qHnBW9&j%jA$(8s)yYx=`+r9o{~^q#`60@w3l%mN)P+#dV;Tf%(Sh>Z`>(^Nbke zVqE;)jf~ z)+W03)_T2D9+u(uEQO!Ck8($GBEy7Qm8Ec3hf4r_E$k)8}`)3<&DEheL!~mzu3$aFzbC4Ij%UJh^T#$MGd7&<% zZW?qxKX1Ff2tVoaEWlQdF1xI*D~jfVU&-8-MJ-*rwlHH$Fs}idPt(4lJQdAZ_IVrp zn6L68RRC*-+l|Fp&4;0f6eTKU;{rseh`Uu|HRe0~$Y2d%P+5pyQ`8lihCGnGA@q-Tz~;uVs4HXhnD2(R!ZzoK^a= z@1vW__j($ze;He`&`&%gWw7&3VcbF^&)u~>R0ThLCXL#`OszcXGoy3Qbv4~> z*Ffwz@6k2a4Af$HUUbs;0zc`ZJ}E-nk+BrktY`EoZ6VYOS;)M@&i`lVM(+Jui68bN zZN#>*S?GCv@x{e<3*^fA@Auy8YEP*j>7%n}Eo%J01MYt(Tn$XOc7w-H`GpQ=EtNj= z%)uMpakV^2{p08HJ^ewPY1U3ME~8F5N%T=iIlDT9joP)p=;s;JeAOMW4xE z>UH|P?0d!UB6_3G%k4{Nd}0oA#N|&Ln2CMF=C2#rnS)=7wkr3y=X3k|0UZR>fxW-6 q2L6B1u$84m&Yk>r^&5#Al#x&i;cFh|k?+Kg@}SYbQ4Vy>f&T$q2?`DX literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index e969b4d..b99c433 100644 --- a/public/index.html +++ b/public/index.html @@ -3,9 +3,7 @@ - - <%= title %> - + Laconic | Console