partial: second batch of components
This commit is contained in:
parent
9f4bf1de7b
commit
f75477ac34
53 changed files with 673 additions and 757 deletions
|
|
@ -1,27 +1,27 @@
|
||||||
import Dialog from '@mui/material/Dialog'
|
import Dialog from '@mui/material/Dialog'
|
||||||
import DialogActions from '@mui/material/DialogActions'
|
import DialogActions from '@mui/material/DialogActions'
|
||||||
import DialogContent from '@mui/material/DialogContent'
|
import DialogContent from '@mui/material/DialogContent'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import InputLabel from '@mui/material/InputLabel'
|
import InputLabel from '@mui/material/InputLabel'
|
||||||
import React, { memo, useState } from 'react'
|
import React, { memo, useState } from 'react'
|
||||||
import { H4, P } from 'src/components/typography'
|
import { H4, P } from 'src/components/typography'
|
||||||
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
||||||
|
|
||||||
import { Button, IconButton } from 'src/components/buttons'
|
import { Button } from 'src/components/buttons'
|
||||||
import { TextInput } from 'src/components/inputs'
|
import { TextInput } from 'src/components/inputs'
|
||||||
|
|
||||||
import ErrorMessage from './ErrorMessage'
|
import ErrorMessage from './ErrorMessage'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
export const DialogTitle = ({ children, onClose }) => {
|
export const DialogTitle = ({ children, onClose }) => {
|
||||||
return (
|
return (
|
||||||
<div className="p-4 pr-3 flex justify-between">
|
<div className="p-4 pr-3 flex justify-between">
|
||||||
{children}
|
{children}
|
||||||
{onClose && (
|
{onClose && (
|
||||||
<IconButton
|
<IconButton aria-label="close" onClick={onClose} className="p-0 -mt-1">
|
||||||
size={16}
|
<SvgIcon fontSize="small">
|
||||||
aria-label="close"
|
<CloseIcon />
|
||||||
onClick={onClose}
|
</SvgIcon>
|
||||||
className="p-0 -mt-1">
|
|
||||||
<CloseIcon />
|
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@ const CopyToClipboard = ({
|
||||||
<div className={classnames('flex items-center', wrapperClassname)}>
|
<div className={classnames('flex items-center', wrapperClassname)}>
|
||||||
{children && (
|
{children && (
|
||||||
<>
|
<>
|
||||||
<Mono noMargin className={className}>
|
<Mono
|
||||||
|
noMargin
|
||||||
|
className={classnames('linebreak-anywhere', className)}>
|
||||||
{children}
|
{children}
|
||||||
</Mono>
|
</Mono>
|
||||||
<div className={buttonClassname}>
|
<div className={buttonClassname}>
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,25 @@
|
||||||
import Dialog from '@mui/material/Dialog'
|
import Dialog from '@mui/material/Dialog'
|
||||||
import DialogActions from '@mui/material/DialogActions'
|
import DialogActions from '@mui/material/DialogActions'
|
||||||
import DialogContent from '@mui/material/DialogContent'
|
import DialogContent from '@mui/material/DialogContent'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { H4, P } from 'src/components/typography'
|
import { H4, P } from 'src/components/typography'
|
||||||
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
||||||
|
|
||||||
import { Button, IconButton } from 'src/components/buttons'
|
import { Button } from 'src/components/buttons'
|
||||||
|
|
||||||
import ErrorMessage from './ErrorMessage'
|
import ErrorMessage from './ErrorMessage'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
export const DialogTitle = ({ children, close }) => {
|
export const DialogTitle = ({ children, close }) => {
|
||||||
return (
|
return (
|
||||||
<div className="p-4 pr-3 flex justify-between m-0">
|
<div className="p-4 pr-3 flex justify-between m-0">
|
||||||
{children}
|
{children}
|
||||||
{close && (
|
{close && (
|
||||||
<IconButton
|
<IconButton aria-label="close" onClick={close} className="p-0 -mt-1">
|
||||||
size={16}
|
<SvgIcon fontSize="small">
|
||||||
aria-label="close"
|
<CloseIcon />
|
||||||
onClick={close}
|
</SvgIcon>
|
||||||
className="p-0 -mt-1">
|
|
||||||
<CloseIcon />
|
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ const ImagePopper = memo(
|
||||||
|
|
||||||
const popperOpen = Boolean(popperAnchorEl)
|
const popperOpen = Boolean(popperAnchorEl)
|
||||||
|
|
||||||
const Image = ({ className }) => (
|
const Image = ({ className, style }) => (
|
||||||
<img className={classnames(className)} src={src} alt="" />
|
<img className={classnames(className)} style={style} src={src} alt="" />
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -35,12 +35,12 @@ const ImagePopper = memo(
|
||||||
<FeatureButton
|
<FeatureButton
|
||||||
Icon={ZoomIcon}
|
Icon={ZoomIcon}
|
||||||
InverseIcon={ZoomIconInverse}
|
InverseIcon={ZoomIconInverse}
|
||||||
className="rounded-br-lg"
|
className="rounded-none rounded-tr-lg rounded-br-lg"
|
||||||
style={{ height }}
|
style={{ height }}
|
||||||
onClick={handleOpenPopper}
|
onClick={handleOpenPopper}
|
||||||
/>
|
/>
|
||||||
<Popper open={popperOpen} anchorEl={popperAnchorEl} placement="top">
|
<Popper open={popperOpen} anchorEl={popperAnchorEl} placement="top">
|
||||||
<div className="block py-2 px-4">
|
<div className="py-2 px-4">
|
||||||
<Image
|
<Image
|
||||||
className="object-cover"
|
className="object-cover"
|
||||||
style={{ width: popupWidth, height: popupHeight }}
|
style={{ width: popupWidth, height: popupHeight }}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import Dialog from '@mui/material/Dialog'
|
import Dialog from '@mui/material/Dialog'
|
||||||
import DialogContent from '@mui/material/DialogContent'
|
import DialogContent from '@mui/material/DialogContent'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import React, { memo } from 'react'
|
import React, { memo } from 'react'
|
||||||
import { H1 } from 'src/components/typography'
|
import { H1 } from 'src/components/typography'
|
||||||
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
||||||
|
|
||||||
import { IconButton } from 'src/components/buttons'
|
|
||||||
|
|
||||||
export const InformativeDialog = memo(
|
export const InformativeDialog = memo(
|
||||||
({ title = '', open, onDissmised, disabled = false, data, ...props }) => {
|
({ title = '', open, onDissmised, disabled = false, data, ...props }) => {
|
||||||
const innerOnClose = () => {
|
const innerOnClose = () => {
|
||||||
|
|
@ -24,7 +24,10 @@ export const InformativeDialog = memo(
|
||||||
aria-labelledby="form-dialog-title"
|
aria-labelledby="form-dialog-title"
|
||||||
{...props}>
|
{...props}>
|
||||||
<div className="flex justify-end pt-4 pr-3 pb-0 pl-4">
|
<div className="flex justify-end pt-4 pr-3 pb-0 pl-4">
|
||||||
<IconButton size={16} aria-label="close" onClick={innerOnClose}>
|
<IconButton aria-label="close" onClick={innerOnClose}>
|
||||||
|
<SvgIcon fontSize="small">
|
||||||
|
<CloseIcon />
|
||||||
|
</SvgIcon>
|
||||||
<CloseIcon />
|
<CloseIcon />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import MaterialModal from '@mui/material/Modal'
|
import MaterialModal from '@mui/material/Modal'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import Paper from '@mui/material/Paper'
|
import Paper from '@mui/material/Paper'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { H1, H4 } from 'src/components/typography'
|
import { H1, H4 } from 'src/components/typography'
|
||||||
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
||||||
|
|
||||||
import { IconButton } from 'src/components/buttons'
|
|
||||||
|
|
||||||
const Modal = ({
|
const Modal = ({
|
||||||
width,
|
width,
|
||||||
height,
|
height,
|
||||||
|
|
@ -59,10 +59,11 @@ const Modal = ({
|
||||||
className="ml-auto"
|
className="ml-auto"
|
||||||
style={{ marginRight: marginBySize, marginTop: marginBySize }}>
|
style={{ marginRight: marginBySize, marginTop: marginBySize }}>
|
||||||
<IconButton
|
<IconButton
|
||||||
size={closeSize}
|
|
||||||
className="p-0 mb-auto ml-auto"
|
className="p-0 mb-auto ml-auto"
|
||||||
onClick={() => handleClose()}>
|
onClick={() => handleClose()}>
|
||||||
<CloseIcon />
|
<SvgIcon fontSize={xl ? 'large' : 'small'}>
|
||||||
|
<CloseIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import { useFormikContext, Form, Formik, Field as FormikField } from 'formik'
|
import { useFormikContext, Form, Formik, Field as FormikField } from 'formik'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState, memo } from 'react'
|
import React, { useState, memo } from 'react'
|
||||||
|
|
@ -9,9 +10,10 @@ import FalseIcon from 'src/styling/icons/table/false.svg?react'
|
||||||
import TrueIcon from 'src/styling/icons/table/true.svg?react'
|
import TrueIcon from 'src/styling/icons/table/true.svg?react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
import { Link, IconButton } from 'src/components/buttons'
|
import { Link } from 'src/components/buttons'
|
||||||
import { RadioGroup } from 'src/components/inputs/formik'
|
import { RadioGroup } from 'src/components/inputs/formik'
|
||||||
import { Table, TableBody, TableRow, TableCell } from 'src/components/table'
|
import { Table, TableBody, TableRow, TableCell } from 'src/components/table'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const BooleanCell = ({ name }) => {
|
const BooleanCell = ({ name }) => {
|
||||||
const { values } = useFormikContext()
|
const { values } = useFormikContext()
|
||||||
|
|
@ -78,9 +80,10 @@ const BooleanPropertiesTable = memo(
|
||||||
) : (
|
) : (
|
||||||
<IconButton
|
<IconButton
|
||||||
className="my-auto mx-3"
|
className="my-auto mx-3"
|
||||||
onClick={() => setEditing(true)}
|
onClick={() => setEditing(true)}>
|
||||||
size="large">
|
<SvgIcon fontSize="small">
|
||||||
{disabled ? <EditIconDisabled /> : <EditIcon />}
|
{disabled ? <EditIconDisabled /> : <EditIcon />}
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
import IconB from '@mui/material/IconButton'
|
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import React from 'react'
|
|
||||||
|
|
||||||
import { comet } from 'src/styling/variables'
|
|
||||||
|
|
||||||
const styles = {
|
|
||||||
root: ({ size }) => ({
|
|
||||||
width: size,
|
|
||||||
height: size,
|
|
||||||
'& svg': {
|
|
||||||
flex: 1
|
|
||||||
},
|
|
||||||
'&:hover': {
|
|
||||||
backgroundColor: 'inherit'
|
|
||||||
},
|
|
||||||
'&:hover rect': {
|
|
||||||
stroke: comet
|
|
||||||
},
|
|
||||||
'&:hover polygon': {
|
|
||||||
stroke: comet
|
|
||||||
},
|
|
||||||
'&:hover path': {
|
|
||||||
stroke: comet
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
const IconButton = ({ size, children, onClick, ...props }) => {
|
|
||||||
const classes = useStyles({ size })
|
|
||||||
return (
|
|
||||||
<IconB
|
|
||||||
{...props}
|
|
||||||
size="small"
|
|
||||||
classes={{ root: classes.root }}
|
|
||||||
disableRipple
|
|
||||||
onClick={onClick}>
|
|
||||||
{children}
|
|
||||||
</IconB>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default IconButton
|
|
||||||
|
|
@ -1,31 +1,18 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import InverseLinkIcon from 'src/styling/icons/action/external link/white.svg?react'
|
import InverseLinkIcon from 'src/styling/icons/action/external link/white.svg?react'
|
||||||
import LinkIcon from 'src/styling/icons/action/external link/zodiac.svg?react'
|
import LinkIcon from 'src/styling/icons/action/external link/zodiac.svg?react'
|
||||||
|
|
||||||
import { ActionButton } from 'src/components/buttons'
|
import { ActionButton } from 'src/components/buttons'
|
||||||
import { spacer, primaryColor } from 'src/styling/variables'
|
|
||||||
|
|
||||||
const useStyles = makeStyles({
|
|
||||||
actionButton: {
|
|
||||||
marginBottom: spacer * 4
|
|
||||||
},
|
|
||||||
actionButtonLink: {
|
|
||||||
textDecoration: 'none',
|
|
||||||
color: primaryColor
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const SupportLinkButton = ({ link, label }) => {
|
const SupportLinkButton = ({ link, label }) => {
|
||||||
const classes = useStyles()
|
|
||||||
return (
|
return (
|
||||||
<a
|
<a
|
||||||
className={classes.actionButtonLink}
|
className="no-underline text-zodiac"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
href={link}>
|
href={link}>
|
||||||
<ActionButton
|
<ActionButton
|
||||||
className={classes.actionButton}
|
className="mb-8"
|
||||||
color="primary"
|
color="primary"
|
||||||
Icon={LinkIcon}
|
Icon={LinkIcon}
|
||||||
InverseIcon={InverseLinkIcon}>
|
InverseIcon={InverseLinkIcon}>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import Button from './Button'
|
||||||
import DeleteButton from './DeleteButton'
|
import DeleteButton from './DeleteButton'
|
||||||
import FeatureButton from './FeatureButton'
|
import FeatureButton from './FeatureButton'
|
||||||
import IDButton from './IDButton'
|
import IDButton from './IDButton'
|
||||||
import IconButton from './IconButton'
|
|
||||||
import Link from './Link'
|
import Link from './Link'
|
||||||
import SubpageButton from './SubpageButton'
|
import SubpageButton from './SubpageButton'
|
||||||
import SupportLinkButton from './SupportLinkButton'
|
import SupportLinkButton from './SupportLinkButton'
|
||||||
|
|
@ -14,7 +13,6 @@ export {
|
||||||
Link,
|
Link,
|
||||||
ActionButton,
|
ActionButton,
|
||||||
FeatureButton,
|
FeatureButton,
|
||||||
IconButton,
|
|
||||||
IDButton,
|
IDButton,
|
||||||
AddButton,
|
AddButton,
|
||||||
SupportLinkButton,
|
SupportLinkButton,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import { compareAsc, differenceInDays, set } from 'date-fns/fp'
|
import { compareAsc, differenceInDays, set } from 'date-fns/fp'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
|
|
@ -6,15 +5,6 @@ import React, { useState, useEffect } from 'react'
|
||||||
|
|
||||||
import Calendar from './Calendar'
|
import Calendar from './Calendar'
|
||||||
|
|
||||||
const styles = {
|
|
||||||
wrapper: {
|
|
||||||
backgroundColor: 'white',
|
|
||||||
borderRadius: 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
const DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {
|
const DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {
|
||||||
const [from, setFrom] = useState(null)
|
const [from, setFrom] = useState(null)
|
||||||
const [to, setTo] = useState(null)
|
const [to, setTo] = useState(null)
|
||||||
|
|
@ -23,8 +13,6 @@ const DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {
|
||||||
onRangeChange(from, to)
|
onRangeChange(from, to)
|
||||||
}, [from, onRangeChange, to])
|
}, [from, onRangeChange, to])
|
||||||
|
|
||||||
const classes = useStyles()
|
|
||||||
|
|
||||||
const handleSelect = day => {
|
const handleSelect = day => {
|
||||||
if (
|
if (
|
||||||
(maxDate && compareAsc(maxDate, day) > 0) ||
|
(maxDate && compareAsc(maxDate, day) > 0) ||
|
||||||
|
|
@ -55,7 +43,7 @@ const DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={classnames(classes.wrapper, className)}>
|
<div className={classnames('bg-white rounded-xl', className)}>
|
||||||
<Calendar
|
<Calendar
|
||||||
from={from}
|
from={from}
|
||||||
to={to}
|
to={to}
|
||||||
|
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import React, { useState, memo } from 'react'
|
|
||||||
import { H4, P } from 'src/components/typography'
|
|
||||||
import EditIconDisabled from 'src/styling/icons/action/edit/disabled.svg?react'
|
|
||||||
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
|
||||||
|
|
||||||
import { Link } from 'src/components/buttons'
|
|
||||||
import { RadioGroup } from 'src/components/inputs'
|
|
||||||
|
|
||||||
import { editablePropertyStyles } from './EditableProperty.styles'
|
|
||||||
|
|
||||||
const useStyles = makeStyles(editablePropertyStyles)
|
|
||||||
|
|
||||||
const EditableProperty = memo(
|
|
||||||
({ title, prefixText, disabled, options, code, save }) => {
|
|
||||||
const [editing, setEditing] = useState(false)
|
|
||||||
const [currentCode, setCurrentCode] = useState(code)
|
|
||||||
|
|
||||||
const classes = useStyles()
|
|
||||||
|
|
||||||
const innerSave = () => {
|
|
||||||
save(currentCode)
|
|
||||||
setEditing(false)
|
|
||||||
}
|
|
||||||
|
|
||||||
const innerCancel = () => setEditing(false)
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<div className={classes.rowWrapper}>
|
|
||||||
<H4>{title}</H4>
|
|
||||||
{editing ? (
|
|
||||||
<div className={classes.leftSpace}>
|
|
||||||
<Link
|
|
||||||
className={classes.leftSpace}
|
|
||||||
onClick={innerCancel}
|
|
||||||
color="secondary">
|
|
||||||
Cancel
|
|
||||||
</Link>
|
|
||||||
<Link
|
|
||||||
className={classes.leftSpace}
|
|
||||||
onClick={innerSave}
|
|
||||||
color="primary">
|
|
||||||
Save
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
) : (
|
|
||||||
<div className={classes.transparentButton}>
|
|
||||||
<button disabled={disabled} onClick={() => setEditing(true)}>
|
|
||||||
{disabled ? <EditIconDisabled /> : <EditIcon />}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
{editing ? (
|
|
||||||
<RadioGroup
|
|
||||||
options={options}
|
|
||||||
value={currentCode}
|
|
||||||
onChange={event => setCurrentCode(event.target.value)}
|
|
||||||
className={classes.radioButtons}
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<P>
|
|
||||||
{`${prefixText} ${options
|
|
||||||
.find(it => it.code === currentCode)
|
|
||||||
.display.toLowerCase()}`}
|
|
||||||
</P>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
export default EditableProperty
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
const optionsRowHeigth = 43
|
|
||||||
|
|
||||||
const editablePropertyStyles = {
|
|
||||||
transparentButton: {
|
|
||||||
'& > *': {
|
|
||||||
margin: 'auto 12px'
|
|
||||||
},
|
|
||||||
'& button': {
|
|
||||||
border: 'none',
|
|
||||||
backgroundColor: 'transparent',
|
|
||||||
cursor: 'pointer'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
rowWrapper: {
|
|
||||||
display: 'flex',
|
|
||||||
alignItems: 'center',
|
|
||||||
position: 'relative',
|
|
||||||
flex: 'wrap',
|
|
||||||
height: optionsRowHeigth
|
|
||||||
},
|
|
||||||
rightAligned: {
|
|
||||||
display: 'flex',
|
|
||||||
position: 'absolute',
|
|
||||||
right: 0
|
|
||||||
},
|
|
||||||
radioButtons: {
|
|
||||||
display: 'flex',
|
|
||||||
flexDirection: 'row',
|
|
||||||
height: optionsRowHeigth
|
|
||||||
},
|
|
||||||
leftSpace: {
|
|
||||||
marginLeft: '20px'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export { editablePropertyStyles }
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
import EditableProperty from './EditableProperty'
|
|
||||||
|
|
||||||
export { EditableProperty }
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useContext } from 'react'
|
import React, { useContext } from 'react'
|
||||||
|
|
@ -13,14 +12,6 @@ import { sentenceCase } from 'src/utils/string'
|
||||||
|
|
||||||
import TableCtx from './Context'
|
import TableCtx from './Context'
|
||||||
|
|
||||||
const styles = {
|
|
||||||
orderedBySpan: {
|
|
||||||
whiteSpace: 'nowrap'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
const groupSecondHeader = elements => {
|
const groupSecondHeader = elements => {
|
||||||
const doubleHeader = R.prop('doubleHeader')
|
const doubleHeader = R.prop('doubleHeader')
|
||||||
const sameDoubleHeader = (a, b) => doubleHeader(a) === doubleHeader(b)
|
const sameDoubleHeader = (a, b) => doubleHeader(a) === doubleHeader(b)
|
||||||
|
|
@ -46,7 +37,6 @@ const groupSecondHeader = elements => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const Header = () => {
|
const Header = () => {
|
||||||
const classes = useStyles()
|
|
||||||
const {
|
const {
|
||||||
elements,
|
elements,
|
||||||
enableEdit,
|
enableEdit,
|
||||||
|
|
@ -79,7 +69,7 @@ const Header = () => {
|
||||||
idx
|
idx
|
||||||
) => {
|
) => {
|
||||||
const orderClasses = classnames({
|
const orderClasses = classnames({
|
||||||
[classes.orderedBySpan]:
|
'whitespace-nowrap':
|
||||||
R.isNil(header) && !R.isNil(orderedBy) && R.equals(name, orderedBy.code)
|
R.isNil(header) && !R.isNil(orderedBy) && R.equals(name, orderedBy.code)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
import { makeStyles } from '@mui/styles'
|
||||||
import Switch from '@mui/material/Switch'
|
import Switch from '@mui/material/Switch'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import { Field, useFormikContext } from 'formik'
|
import { Field, useFormikContext } from 'formik'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
|
|
@ -13,7 +15,7 @@ import DisabledEditIcon from 'src/styling/icons/action/edit/disabled.svg?react'
|
||||||
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
import StripesSvg from 'src/styling/icons/stripes.svg?react'
|
import StripesSvg from 'src/styling/icons/stripes.svg?react'
|
||||||
|
|
||||||
import { Link, IconButton } from 'src/components/buttons'
|
import { Link } from 'src/components/buttons'
|
||||||
|
|
||||||
import TableCtx from './Context'
|
import TableCtx from './Context'
|
||||||
import styles from './Row.styles'
|
import styles from './Row.styles'
|
||||||
|
|
@ -77,9 +79,10 @@ const ActionCol = ({ disabled, editing }) => {
|
||||||
<IconButton
|
<IconButton
|
||||||
disabled={disableEdit}
|
disabled={disableEdit}
|
||||||
className={classes.editButton}
|
className={classes.editButton}
|
||||||
onClick={() => onEdit && onEdit(values.id)}
|
onClick={() => onEdit && onEdit(values.id)}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
{disableEdit ? <DisabledEditIcon /> : <EditIcon />}
|
{disableEdit ? <DisabledEditIcon /> : <EditIcon />}
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Td>
|
</Td>
|
||||||
)}
|
)}
|
||||||
|
|
@ -89,9 +92,10 @@ const ActionCol = ({ disabled, editing }) => {
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setDeleteDialog(true)
|
setDeleteDialog(true)
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
{disabled ? <DisabledDeleteIcon /> : <DeleteIcon />}
|
{disabled ? <DisabledDeleteIcon /> : <DeleteIcon />}
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<DeleteDialog
|
<DeleteDialog
|
||||||
open={deleteDialog}
|
open={deleteDialog}
|
||||||
|
|
@ -116,7 +120,7 @@ const ActionCol = ({ disabled, editing }) => {
|
||||||
</Td>
|
</Td>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => {
|
const ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,10 @@
|
||||||
import Card from '@mui/material/Card'
|
import Card from '@mui/material/Card'
|
||||||
import CardContent from '@mui/material/CardContent'
|
import CardContent from '@mui/material/CardContent'
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
import { Link } from 'src/components/buttons'
|
import { Link } from 'src/components/buttons'
|
||||||
|
import styles from './Table.module.css'
|
||||||
import styles from './Table.styles'
|
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
const Table = ({ children, className, ...props }) => (
|
const Table = ({ children, className, ...props }) => (
|
||||||
<div className={classnames(className)} {...props}>
|
<div className={classnames(className)} {...props}>
|
||||||
|
|
@ -17,17 +13,12 @@ const Table = ({ children, className, ...props }) => (
|
||||||
)
|
)
|
||||||
|
|
||||||
const THead = ({ children, className }) => {
|
const THead = ({ children, className }) => {
|
||||||
const classes = useStyles()
|
return <div className={classnames(className, styles.header)}>{children}</div>
|
||||||
return <div className={classnames(className, classes.header)}>{children}</div>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const TDoubleLevelHead = ({ children, className }) => {
|
const TDoubleLevelHead = ({ children, className }) => {
|
||||||
const classes = useStyles()
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classnames(className, classes.doubleHeader)}>
|
<div className={classnames(className, styles.doubleHeader)}>{children}</div>
|
||||||
{children}
|
|
||||||
</div>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,15 +36,28 @@ const Td = ({
|
||||||
textAlign,
|
textAlign,
|
||||||
action
|
action
|
||||||
}) => {
|
}) => {
|
||||||
const classes = useStyles({ textAlign, width, size })
|
const inlineStyle = {
|
||||||
const classNames = {
|
width,
|
||||||
[classes.td]: true,
|
textAlign
|
||||||
[classes.tdHeader]: header,
|
|
||||||
[classes.actionCol]: action,
|
|
||||||
[classes.size]: !header,
|
|
||||||
[classes.bold]: !header && bold
|
|
||||||
}
|
}
|
||||||
return <div data-cy={`td-${header}`} className={classnames(className, classNames)}>{children}</div>
|
|
||||||
|
const cssClasses = {
|
||||||
|
[styles.td]: !header,
|
||||||
|
[styles.tdHeader]: header,
|
||||||
|
[styles.bold]: !header && bold,
|
||||||
|
[styles.actionCol]: action,
|
||||||
|
[styles.sizeSm]: !header && size === 'sm',
|
||||||
|
[styles.sizeLg]: !header && size === 'lg'
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
data-cy={`td-${header}`}
|
||||||
|
className={classnames(className, cssClasses)}
|
||||||
|
style={inlineStyle}>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const Th = ({ children, ...props }) => {
|
const Th = ({ children, ...props }) => {
|
||||||
|
|
@ -65,10 +69,10 @@ const Th = ({ children, ...props }) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const ThDoubleLevel = ({ title, children, className, width }) => {
|
const ThDoubleLevel = ({ title, children, className, width }) => {
|
||||||
const classes = useStyles({ width })
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classnames(className, classes.thDoubleLevel)}>
|
<div
|
||||||
|
className={classnames(className, styles.thDoubleLevel)}
|
||||||
|
style={{ width }}>
|
||||||
<div>{title}</div>
|
<div>{title}</div>
|
||||||
<div>{children}</div>
|
<div>{children}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -85,23 +89,25 @@ const Tr = ({
|
||||||
size,
|
size,
|
||||||
newRow
|
newRow
|
||||||
}) => {
|
}) => {
|
||||||
const classes = useStyles({ size })
|
const cardClasses = {
|
||||||
const cardClasses = { root: classes.cardContentRoot }
|
[styles.card]: true,
|
||||||
const classNames = {
|
[styles.trError]: error,
|
||||||
[classes.tr]: true,
|
[styles.trAdding]: newRow
|
||||||
[classes.trError]: error,
|
}
|
||||||
[classes.card]: true,
|
|
||||||
[classes.trAdding]: newRow,
|
const mainContentClasses = {
|
||||||
className
|
[styles.mainContent]: true,
|
||||||
|
[styles.sizeSm]: size === 'sm',
|
||||||
|
[styles.sizeLg]: size === 'lg'
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Card className={classnames(classNames, className)} onClick={onClick}>
|
<Card className={classnames(className, cardClasses)} onClick={onClick}>
|
||||||
<CardContent classes={cardClasses}>
|
<CardContent className={styles.cardContentRoot}>
|
||||||
<div className={classes.mainContent}>{children}</div>
|
<div className={classnames(mainContentClasses)}>{children}</div>
|
||||||
{error && shouldShowError && (
|
{error && shouldShowError && (
|
||||||
<div className={classes.errorContent}>{errorMessage}</div>
|
<div className={styles.errorContent}>{errorMessage}</div>
|
||||||
)}
|
)}
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
|
||||||
112
new-lamassu-admin/src/components/fake-table/Table.module.css
Normal file
112
new-lamassu-admin/src/components/fake-table/Table.module.css
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
.bold {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
background-color: var(--zodiac);
|
||||||
|
height: 32px;
|
||||||
|
text-align: left;
|
||||||
|
color: white;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doubleHeader {
|
||||||
|
background-color: var(--zodiac);
|
||||||
|
height: 64px;
|
||||||
|
color: white;
|
||||||
|
display: table-row;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thDoubleLevel {
|
||||||
|
display: table-cell;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thDoubleLevel > :first-child {
|
||||||
|
margin: 0 10px;
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: 500;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-color: var(--zodiac);
|
||||||
|
color: white;
|
||||||
|
border-radius: 0 0 8px 8px;
|
||||||
|
height: 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thDoubleLevel > :last-child {
|
||||||
|
padding: 0 11px;
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cellDoubleLevel {
|
||||||
|
display: flex;
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.td {
|
||||||
|
padding: 1px 24px 0 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tdHeader {
|
||||||
|
vertical-align: middle;
|
||||||
|
display: table-cell;
|
||||||
|
padding: 0 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.trError {
|
||||||
|
background-color: var(--misty-rose);
|
||||||
|
}
|
||||||
|
|
||||||
|
.trAdding {
|
||||||
|
background-color: var(--spring3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mainContent {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardContentRoot {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardContentRoot:last-child {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 4px 0 0 0;
|
||||||
|
width: 100%;
|
||||||
|
box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card:before {
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actionCol {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.errorContent {
|
||||||
|
padding: 12px 0 12px 24px;
|
||||||
|
color: var(--tomato);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sizeSm {
|
||||||
|
min-height: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sizeLg {
|
||||||
|
min-height: 68px;
|
||||||
|
}
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
import typographyStyles from 'src/components/typography/styles'
|
|
||||||
import { bySize, bold } from 'src/styling/helpers'
|
|
||||||
import {
|
|
||||||
tableHeaderColor,
|
|
||||||
tableHeaderHeight,
|
|
||||||
tableErrorColor,
|
|
||||||
tableSuccessColor,
|
|
||||||
spacer,
|
|
||||||
white,
|
|
||||||
tableDoubleHeaderHeight,
|
|
||||||
offColor,
|
|
||||||
errorColor
|
|
||||||
} from 'src/styling/variables'
|
|
||||||
|
|
||||||
const { tl2, p, label1 } = typographyStyles
|
|
||||||
|
|
||||||
export default {
|
|
||||||
size: ({ size }) => bySize(size),
|
|
||||||
bold,
|
|
||||||
header: {
|
|
||||||
extend: tl2,
|
|
||||||
backgroundColor: tableHeaderColor,
|
|
||||||
height: tableHeaderHeight,
|
|
||||||
textAlign: 'left',
|
|
||||||
color: white,
|
|
||||||
display: 'flex',
|
|
||||||
alignItems: 'center'
|
|
||||||
},
|
|
||||||
doubleHeader: {
|
|
||||||
extend: tl2,
|
|
||||||
backgroundColor: tableHeaderColor,
|
|
||||||
height: tableDoubleHeaderHeight,
|
|
||||||
color: white,
|
|
||||||
display: 'table-row'
|
|
||||||
},
|
|
||||||
thDoubleLevel: ({ width }) => ({
|
|
||||||
width,
|
|
||||||
display: 'table-cell',
|
|
||||||
'& > :first-child': {
|
|
||||||
margin: [[0, 10]],
|
|
||||||
extend: label1,
|
|
||||||
fontWeight: 700,
|
|
||||||
display: 'flex',
|
|
||||||
justifyContent: 'center',
|
|
||||||
alignItems: 'center',
|
|
||||||
backgroundColor: offColor,
|
|
||||||
color: white,
|
|
||||||
borderRadius: [[0, 0, 8, 8]],
|
|
||||||
height: 28
|
|
||||||
},
|
|
||||||
'& > :last-child': {
|
|
||||||
padding: [[0, 11]],
|
|
||||||
display: 'table-cell',
|
|
||||||
verticalAlign: 'middle',
|
|
||||||
height: tableDoubleHeaderHeight - 28
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
cellDoubleLevel: {
|
|
||||||
display: 'flex',
|
|
||||||
padding: [[0, spacer * 2]]
|
|
||||||
},
|
|
||||||
td: ({ textAlign, width }) => ({
|
|
||||||
width,
|
|
||||||
padding: [[1, spacer * 3, 0, spacer * 3]],
|
|
||||||
textAlign
|
|
||||||
}),
|
|
||||||
tdHeader: {
|
|
||||||
verticalAlign: 'middle',
|
|
||||||
display: 'table-cell',
|
|
||||||
padding: [[0, spacer * 3]]
|
|
||||||
},
|
|
||||||
trError: {
|
|
||||||
backgroundColor: tableErrorColor
|
|
||||||
},
|
|
||||||
trAdding: {
|
|
||||||
backgroundColor: tableSuccessColor
|
|
||||||
},
|
|
||||||
mainContent: ({ size }) => {
|
|
||||||
const sizes = {
|
|
||||||
sm: 34,
|
|
||||||
lg: 68
|
|
||||||
}
|
|
||||||
const minHeight = sizes[size] || 48
|
|
||||||
return {
|
|
||||||
display: 'flex',
|
|
||||||
alignItems: 'center',
|
|
||||||
minHeight
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// mui-overrides
|
|
||||||
cardContentRoot: {
|
|
||||||
margin: 0,
|
|
||||||
padding: 0,
|
|
||||||
'&:last-child': {
|
|
||||||
padding: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
card: {
|
|
||||||
extend: p,
|
|
||||||
'&:before': {
|
|
||||||
height: 0
|
|
||||||
},
|
|
||||||
margin: [[4, 0, 0, 0]],
|
|
||||||
width: '100%',
|
|
||||||
boxShadow: [[0, 0, 4, 0, 'rgba(0, 0, 0, 0.08)']]
|
|
||||||
},
|
|
||||||
actionCol: {
|
|
||||||
marginLeft: 'auto'
|
|
||||||
},
|
|
||||||
errorContent: {
|
|
||||||
padding: [[12, 0, 12, 24]],
|
|
||||||
color: errorColor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +1,12 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import { useSelect } from 'downshift'
|
import { useSelect } from 'downshift'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import Arrowdown from 'src/styling/icons/action/arrow/regular.svg?react'
|
import Arrowdown from 'src/styling/icons/action/arrow/regular.svg?react'
|
||||||
|
|
||||||
import styles from './Select.styles'
|
import styles from './Select.module.css'
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
function Select({ className, label, items, ...props }) {
|
function Select({ className, label, items, ...props }) {
|
||||||
const classes = useStyles()
|
|
||||||
|
|
||||||
const {
|
const {
|
||||||
isOpen,
|
isOpen,
|
||||||
|
|
@ -28,18 +24,18 @@ function Select({ className, label, items, ...props }) {
|
||||||
})
|
})
|
||||||
|
|
||||||
const selectClassNames = {
|
const selectClassNames = {
|
||||||
[classes.select]: true,
|
[styles.select]: true,
|
||||||
[classes.selectFiltered]: props.defaultAsFilter
|
[styles.selectFiltered]: props.defaultAsFilter
|
||||||
? true
|
? true
|
||||||
: !R.equals(selectedItem, props.default),
|
: !R.equals(selectedItem, props.default),
|
||||||
[classes.open]: isOpen
|
[styles.open]: isOpen
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classnames(selectClassNames, className)}>
|
<div className={classnames(selectClassNames, className)}>
|
||||||
<label {...getLabelProps()}>{label}</label>
|
<label {...getLabelProps()}>{label}</label>
|
||||||
<button {...getToggleButtonProps()}>
|
<button {...getToggleButtonProps()}>
|
||||||
<span className={classes.selectedItem}>{selectedItem.display}</span>
|
<span className={styles.selectedItem}>{selectedItem.display}</span>
|
||||||
<Arrowdown />
|
<Arrowdown />
|
||||||
</button>
|
</button>
|
||||||
<ul {...getMenuProps()}>
|
<ul {...getMenuProps()}>
|
||||||
|
|
|
||||||
100
new-lamassu-admin/src/components/inputs/base/Select.module.css
Normal file
100
new-lamassu-admin/src/components/inputs/base/Select.module.css
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
.selectedItem {
|
||||||
|
width: 111px;
|
||||||
|
display: block;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
width: 152px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select label {
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
color: var(--comet);
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select button {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
position: relative;
|
||||||
|
border: 0;
|
||||||
|
background-color: var(--zircon);
|
||||||
|
width: 152px;
|
||||||
|
padding: 6px 0 6px 12px;
|
||||||
|
border-radius: 20px;
|
||||||
|
line-height: 1.14;
|
||||||
|
text-align: left;
|
||||||
|
color: var(--comet);
|
||||||
|
cursor: pointer;
|
||||||
|
outline: 0 none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select ul {
|
||||||
|
max-height: 200px;
|
||||||
|
width: 152px;
|
||||||
|
overflow-y: auto;
|
||||||
|
position: absolute;
|
||||||
|
margin: 0;
|
||||||
|
border-top: 0;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 0 0 8px 8px;
|
||||||
|
background-color: var(--zircon);
|
||||||
|
outline: 0 none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select ul li {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 6px 12px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select ul li span {
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select ul li:hover {
|
||||||
|
background-color: var(--comet);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select svg {
|
||||||
|
position: absolute;
|
||||||
|
top: 12px;
|
||||||
|
right: 14px;
|
||||||
|
fill: var(--comet);
|
||||||
|
}
|
||||||
|
|
||||||
|
.selectFiltered button {
|
||||||
|
background-color: var(--comet);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selectFiltered ul li {
|
||||||
|
background-color: var(--comet);
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selectFiltered ul li:hover {
|
||||||
|
background-color: var(--zircon);
|
||||||
|
color: var(--comet);
|
||||||
|
}
|
||||||
|
|
||||||
|
.selectFiltered svg {
|
||||||
|
fill: white !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.open button {
|
||||||
|
border-radius: 8px 8px 0 0;
|
||||||
|
}
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
import { subheaderColor, offColor, white } from '../../../styling/variables'
|
|
||||||
import typographyStyles from '../../typography/styles'
|
|
||||||
|
|
||||||
const { p, label1 } = typographyStyles
|
|
||||||
|
|
||||||
const WIDTH = 152
|
|
||||||
|
|
||||||
export default {
|
|
||||||
selectedItem: {
|
|
||||||
width: WIDTH - 41,
|
|
||||||
display: 'block',
|
|
||||||
whiteSpace: 'nowrap',
|
|
||||||
overflow: 'hidden'
|
|
||||||
},
|
|
||||||
select: {
|
|
||||||
width: WIDTH,
|
|
||||||
zIndex: 1,
|
|
||||||
'& label': {
|
|
||||||
extend: label1,
|
|
||||||
color: offColor,
|
|
||||||
paddingLeft: 10
|
|
||||||
},
|
|
||||||
'& button': {
|
|
||||||
extend: p,
|
|
||||||
position: 'relative',
|
|
||||||
border: 0,
|
|
||||||
backgroundColor: subheaderColor,
|
|
||||||
width: WIDTH,
|
|
||||||
padding: [[6, 0, 6, 12]],
|
|
||||||
borderRadius: 20,
|
|
||||||
lineHeight: '1.14',
|
|
||||||
textAlign: 'left',
|
|
||||||
color: offColor,
|
|
||||||
cursor: 'pointer',
|
|
||||||
outline: '0 none'
|
|
||||||
},
|
|
||||||
'& ul': {
|
|
||||||
maxHeight: '200px',
|
|
||||||
width: WIDTH,
|
|
||||||
overflowY: 'auto',
|
|
||||||
position: 'absolute',
|
|
||||||
margin: 0,
|
|
||||||
borderTop: 0,
|
|
||||||
padding: 0,
|
|
||||||
borderRadius: [[0, 0, 8, 8]],
|
|
||||||
backgroundColor: subheaderColor,
|
|
||||||
outline: '0 none',
|
|
||||||
'& li': {
|
|
||||||
extend: p,
|
|
||||||
listStyleType: 'none',
|
|
||||||
padding: [[6, 12]],
|
|
||||||
cursor: 'pointer',
|
|
||||||
'& span': {
|
|
||||||
width: '100%',
|
|
||||||
display: 'block',
|
|
||||||
overflow: 'hidden',
|
|
||||||
whiteSpace: 'nowrap'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'& li:hover': {
|
|
||||||
backgroundColor: offColor,
|
|
||||||
color: white
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'& svg': {
|
|
||||||
position: 'absolute',
|
|
||||||
top: 12,
|
|
||||||
right: 14,
|
|
||||||
fill: offColor
|
|
||||||
}
|
|
||||||
},
|
|
||||||
selectFiltered: {
|
|
||||||
'& button': {
|
|
||||||
backgroundColor: offColor,
|
|
||||||
color: white
|
|
||||||
},
|
|
||||||
'& ul': {
|
|
||||||
'& li': {
|
|
||||||
backgroundColor: offColor,
|
|
||||||
color: white
|
|
||||||
},
|
|
||||||
'& li:hover': {
|
|
||||||
backgroundColor: subheaderColor,
|
|
||||||
color: offColor
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'& svg': {
|
|
||||||
fill: [[white], '!important']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
open: {
|
|
||||||
'& button': {
|
|
||||||
borderRadius: [[8, 8, 0, 0]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +1,9 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import TextField from '@mui/material/TextField'
|
import TextField from '@mui/material/TextField'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { memo } from 'react'
|
import React, { memo } from 'react'
|
||||||
|
|
||||||
import styles from './TextInput.styles'
|
import styles from './TextInput.module.css'
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
const TextInput = memo(
|
const TextInput = memo(
|
||||||
({
|
({
|
||||||
|
|
@ -27,11 +24,20 @@ const TextInput = memo(
|
||||||
InputProps,
|
InputProps,
|
||||||
...props
|
...props
|
||||||
}) => {
|
}) => {
|
||||||
const classes = useStyles({ textAlign, width, size })
|
|
||||||
const isTextFilled = !error && !R.isNil(value) && !R.isEmpty(value)
|
const isTextFilled = !error && !R.isNil(value) && !R.isEmpty(value)
|
||||||
const filled = isPasswordFilled || isTextFilled
|
const filled = isPasswordFilled || isTextFilled
|
||||||
|
|
||||||
|
// Set CSS variables for dynamic styles
|
||||||
|
const rootStyle = {
|
||||||
|
'--input-width': width,
|
||||||
|
'--input-text-align': textAlign
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine size class based on size prop
|
||||||
|
const sizeClass = size === 'sm' ? styles.sizeSm : size === 'lg' ? styles.sizeLg : styles.size
|
||||||
|
|
||||||
const divClass = {
|
const divClass = {
|
||||||
[classes.bold]: bold
|
[styles.bold]: bold
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -42,13 +48,14 @@ const TextInput = memo(
|
||||||
onBlur={onBlur}
|
onBlur={onBlur}
|
||||||
error={error}
|
error={error}
|
||||||
value={value}
|
value={value}
|
||||||
classes={{ root: classes.root }}
|
classes={{ root: styles.root }}
|
||||||
className={className}
|
className={className}
|
||||||
|
style={rootStyle}
|
||||||
InputProps={{
|
InputProps={{
|
||||||
className: classnames(divClass),
|
className: classnames(divClass),
|
||||||
classes: {
|
classes: {
|
||||||
root: classes.size,
|
root: sizeClass,
|
||||||
underline: filled ? classes.underline : null,
|
underline: filled ? styles.underline : null,
|
||||||
input: inputClasses
|
input: inputClasses
|
||||||
},
|
},
|
||||||
...InputProps
|
...InputProps
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
.size {
|
||||||
|
margin-top: 2px;
|
||||||
|
font-size: var(--input-font-size, 16px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sizeSm {
|
||||||
|
margin-top: 2px;
|
||||||
|
font-size: var(--input-font-size-sm, 14px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sizeLg {
|
||||||
|
margin-top: 0;
|
||||||
|
font-size: var(--input-font-size-lg, 24px);
|
||||||
|
font-weight: var(--input-font-weight-bold, 700);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bold {
|
||||||
|
font-weight: var(--input-font-weight-bold, 700);
|
||||||
|
}
|
||||||
|
|
||||||
|
.root {
|
||||||
|
width: var(--input-width);
|
||||||
|
}
|
||||||
|
|
||||||
|
.root input {
|
||||||
|
text-align: var(--input-text-align, left);
|
||||||
|
}
|
||||||
|
|
||||||
|
.underline:before {
|
||||||
|
border-bottom-color: var(--spring);
|
||||||
|
}
|
||||||
|
|
||||||
|
.underline:hover:not(.Mui-disabled)::before {
|
||||||
|
border-bottom-color: var(--spring);
|
||||||
|
}
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
import { bySize, bold } from 'src/styling/helpers'
|
|
||||||
import { secondaryColor } from 'src/styling/variables'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
size: ({ size }) => ({
|
|
||||||
marginTop: size === 'lg' ? 0 : 2,
|
|
||||||
...bySize(size)
|
|
||||||
}),
|
|
||||||
bold,
|
|
||||||
root: ({ width, textAlign }) => ({
|
|
||||||
width,
|
|
||||||
'& input': {
|
|
||||||
textAlign
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
underline: {
|
|
||||||
'&:before': {
|
|
||||||
borderBottomColor: secondaryColor
|
|
||||||
},
|
|
||||||
'&:hover:not(.Mui-disabled)::before': {
|
|
||||||
borderBottomColor: secondaryColor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +1,8 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import MUIToggleButtonGroup from '@mui/material/ToggleButtonGroup'
|
import MUIToggleButtonGroup from '@mui/material/ToggleButtonGroup'
|
||||||
import ToggleButton from '@mui/material/ToggleButton'
|
import ToggleButton from '@mui/material/ToggleButton'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { H4, P } from 'src/components/typography'
|
import { H4, P } from 'src/components/typography'
|
||||||
|
|
||||||
import { backgroundColor, comet } from 'src/styling/variables'
|
|
||||||
const styles = {
|
|
||||||
noTextTransform: {
|
|
||||||
textTransform: 'none'
|
|
||||||
},
|
|
||||||
flex: {
|
|
||||||
display: 'flex',
|
|
||||||
alignItems: 'center',
|
|
||||||
justifyContent: 'start',
|
|
||||||
width: '90%',
|
|
||||||
overflow: 'hidden',
|
|
||||||
maxHeight: 80
|
|
||||||
},
|
|
||||||
buttonTextContent: {
|
|
||||||
marginLeft: 32,
|
|
||||||
textTransform: 'none',
|
|
||||||
textAlign: 'left'
|
|
||||||
},
|
|
||||||
button: {
|
|
||||||
backgroundColor: backgroundColor,
|
|
||||||
marginBottom: 16
|
|
||||||
},
|
|
||||||
paragraph: {
|
|
||||||
color: comet,
|
|
||||||
marginTop: -10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
const ToggleButtonGroup = ({
|
const ToggleButtonGroup = ({
|
||||||
name,
|
name,
|
||||||
orientation = 'vertical',
|
orientation = 'vertical',
|
||||||
|
|
@ -42,7 +12,6 @@ const ToggleButtonGroup = ({
|
||||||
size = 'small',
|
size = 'small',
|
||||||
...props
|
...props
|
||||||
}) => {
|
}) => {
|
||||||
const classes = useStyles()
|
|
||||||
return (
|
return (
|
||||||
<MUIToggleButtonGroup
|
<MUIToggleButtonGroup
|
||||||
size={size}
|
size={size}
|
||||||
|
|
@ -54,15 +23,15 @@ const ToggleButtonGroup = ({
|
||||||
{props.options.map(option => {
|
{props.options.map(option => {
|
||||||
return (
|
return (
|
||||||
<ToggleButton
|
<ToggleButton
|
||||||
className={classes.button}
|
className="bg-ghost"
|
||||||
value={option.value}
|
value={option.value}
|
||||||
aria-label={option.value}
|
aria-label={option.value}
|
||||||
key={option.value}>
|
key={option.value}>
|
||||||
<div className={classes.flex}>
|
<div className="flex items-center justify-start w-9/10 overflow-hidden max-h-20">
|
||||||
<option.icon />
|
<option.icon />
|
||||||
<div className={classes.buttonTextContent}>
|
<div className="ml-8 normal-case text-left">
|
||||||
<H4>{option.title}</H4>
|
<H4>{option.title}</H4>
|
||||||
<P className={classes.paragraph}> {option.description}</P>
|
<P className="text-comet -mt-2"> {option.description}</P>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
Table,
|
Table,
|
||||||
|
|
@ -9,8 +11,6 @@ import {
|
||||||
} from 'src/components/fake-table/Table'
|
} from 'src/components/fake-table/Table'
|
||||||
import EditIcon from 'src/styling/icons/action/edit/white.svg?react'
|
import EditIcon from 'src/styling/icons/action/edit/white.svg?react'
|
||||||
|
|
||||||
import { IconButton } from 'src/components/buttons'
|
|
||||||
|
|
||||||
import { Label1, P } from '../typography/index.jsx'
|
import { Label1, P } from '../typography/index.jsx'
|
||||||
|
|
||||||
const SingleRowTable = ({
|
const SingleRowTable = ({
|
||||||
|
|
@ -27,8 +27,10 @@ const SingleRowTable = ({
|
||||||
<THead>
|
<THead>
|
||||||
<Th className="flex flex-1 justify-between items-center pr-3">
|
<Th className="flex flex-1 justify-between items-center pr-3">
|
||||||
{title}
|
{title}
|
||||||
<IconButton onClick={onEdit} className="mb-[1px]" size="large">
|
<IconButton onClick={onEdit} className="mb-[1px]">
|
||||||
<EditIcon />
|
<SvgIcon>
|
||||||
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</Th>
|
</Th>
|
||||||
</THead>
|
</THead>
|
||||||
|
|
|
||||||
3
new-lamassu-admin/src/components/table/Table.module.css
Normal file
3
new-lamassu-admin/src/components/table/Table.module.css
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
.tableCell {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
@ -1,17 +1,19 @@
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import React, { memo } from 'react'
|
import React, { memo } from 'react'
|
||||||
|
|
||||||
|
import classes from './Table.module.css'
|
||||||
|
|
||||||
const TableCell = memo(
|
const TableCell = memo(
|
||||||
({ colspan, rightAlign, className, children, ...props }) => {
|
({ colspan, rightAlign, className, children, ...props }) => {
|
||||||
const styles = {
|
const styles = {
|
||||||
'py-0 px-6': true,
|
[classes.tableCell]: true,
|
||||||
'text-right': rightAlign
|
'text-right': rightAlign
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<td
|
<td
|
||||||
colSpan={colspan}
|
colSpan={colspan}
|
||||||
className={classnames(styles, className)}
|
className={classnames(className, styles)}
|
||||||
{...props}>
|
{...props}>
|
||||||
{children}
|
{children}
|
||||||
</td>
|
</td>
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ const Row = ({
|
||||||
const trClasses = {
|
const trClasses = {
|
||||||
'cursor-pointer': hasPointer,
|
'cursor-pointer': hasPointer,
|
||||||
'border-2 border-transparent': true,
|
'border-2 border-transparent': true,
|
||||||
'border-2 border-zircon shadow-xl': expanded
|
'border-2 border-zircon shadow-md': expanded
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,12 @@
|
||||||
import { makeStyles } from '@mui/styles'
|
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
import styles from './styles'
|
import styles from './typography.module.css'
|
||||||
|
|
||||||
const useStyles = makeStyles(styles)
|
|
||||||
|
|
||||||
function H1({ children, noMargin, className, ...props }) {
|
function H1({ children, noMargin, className, ...props }) {
|
||||||
const classes = useStyles()
|
|
||||||
const classNames = {
|
const classNames = {
|
||||||
[classes.h1]: true,
|
[styles.h1]: true,
|
||||||
[classes.noMargin]: noMargin,
|
[styles.noMargin]: noMargin,
|
||||||
[className]: !!className
|
[className]: !!className
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -22,10 +18,9 @@ function H1({ children, noMargin, className, ...props }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function H2({ children, noMargin, className, ...props }) {
|
function H2({ children, noMargin, className, ...props }) {
|
||||||
const classes = useStyles()
|
|
||||||
const classNames = {
|
const classNames = {
|
||||||
[classes.h2]: true,
|
[styles.h2]: true,
|
||||||
[classes.noMargin]: noMargin,
|
[styles.noMargin]: noMargin,
|
||||||
[className]: !!className
|
[className]: !!className
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -37,10 +32,9 @@ function H2({ children, noMargin, className, ...props }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function H3({ children, noMargin, className, ...props }) {
|
function H3({ children, noMargin, className, ...props }) {
|
||||||
const classes = useStyles()
|
|
||||||
const classNames = {
|
const classNames = {
|
||||||
[classes.h3]: true,
|
[styles.h3]: true,
|
||||||
[classes.noMargin]: noMargin,
|
[styles.noMargin]: noMargin,
|
||||||
[className]: !!className
|
[className]: !!className
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -52,10 +46,9 @@ function H3({ children, noMargin, className, ...props }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function H4({ children, noMargin, className, ...props }) {
|
function H4({ children, noMargin, className, ...props }) {
|
||||||
const classes = useStyles()
|
|
||||||
const classNames = {
|
const classNames = {
|
||||||
[classes.h4]: true,
|
[styles.h4]: true,
|
||||||
[classes.noMargin]: noMargin,
|
[styles.noMargin]: noMargin,
|
||||||
[className]: !!className
|
[className]: !!className
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,10 +60,9 @@ function H4({ children, noMargin, className, ...props }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function H5({ children, noMargin, className, ...props }) {
|
function H5({ children, noMargin, className, ...props }) {
|
||||||
const classes = useStyles()
|
|
||||||
const classNames = {
|
const classNames = {
|
||||||
[classes.h5]: true,
|
[styles.h5]: true,
|
||||||
[classes.noMargin]: noMargin,
|
[styles.noMargin]: noMargin,
|
||||||
[className]: !!className
|
[className]: !!className
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -94,12 +86,11 @@ const Label3 = pBuilder('label3')
|
||||||
|
|
||||||
function pBuilder(elementClass) {
|
function pBuilder(elementClass) {
|
||||||
return ({ inline, noMargin, className, children, ...props }) => {
|
return ({ inline, noMargin, className, children, ...props }) => {
|
||||||
const classes = useStyles()
|
|
||||||
const classNames = {
|
const classNames = {
|
||||||
[className]: !!className,
|
[className]: !!className,
|
||||||
[classes[elementClass]]: elementClass,
|
[styles[elementClass]]: elementClass,
|
||||||
[classes.inline]: inline,
|
[styles.inline]: inline,
|
||||||
[classes.noMargin]: noMargin
|
[styles.noMargin]: noMargin
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<p className={classnames(classNames)} {...props}>
|
<p className={classnames(classNames)} {...props}>
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,7 @@ import {
|
||||||
fontSize5,
|
fontSize5,
|
||||||
fontPrimary,
|
fontPrimary,
|
||||||
fontSecondary,
|
fontSecondary,
|
||||||
fontMonospaced,
|
fontMonospaced
|
||||||
codeInputFontSize
|
|
||||||
} from 'src/styling/variables'
|
} from 'src/styling/variables'
|
||||||
|
|
||||||
const base = {
|
const base = {
|
||||||
|
|
@ -17,6 +16,10 @@ const base = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
base: {
|
||||||
|
lineHeight: '120%',
|
||||||
|
color: fontColor
|
||||||
|
},
|
||||||
h1: {
|
h1: {
|
||||||
extend: base,
|
extend: base,
|
||||||
fontSize: fontSize1,
|
fontSize: fontSize1,
|
||||||
|
|
@ -126,12 +129,6 @@ export default {
|
||||||
fontWeight: 500,
|
fontWeight: 500,
|
||||||
color: fontColor
|
color: fontColor
|
||||||
},
|
},
|
||||||
confirmationCode: {
|
|
||||||
extend: base,
|
|
||||||
fontSize: codeInputFontSize,
|
|
||||||
fontFamily: fontSecondary,
|
|
||||||
fontWeight: 900
|
|
||||||
},
|
|
||||||
inline: {
|
inline: {
|
||||||
display: 'inline'
|
display: 'inline'
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
.base {
|
||||||
|
line-height: 120%;
|
||||||
|
color: var(--zodiac);
|
||||||
|
}
|
||||||
|
|
||||||
|
.h1 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 24px;
|
||||||
|
font-family: var(--mont);
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h2 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: var(--mont);
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h3 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--mont);
|
||||||
|
font-weight: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h4 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--mont);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h5 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: var(--mont);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p {
|
||||||
|
composes: base;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tl1 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tl2 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info1 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 24px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info2 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info3 {
|
||||||
|
composes: base;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mono {
|
||||||
|
composes: base;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--bpmono);
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.monoBold {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.monoSmall {
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inputFont {
|
||||||
|
font-size: 20px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 110%;
|
||||||
|
color: var(--zodiac);
|
||||||
|
}
|
||||||
|
|
||||||
|
.regularLabel {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 110%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label1 {
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
color: var(--zodiac);
|
||||||
|
}
|
||||||
|
|
||||||
|
.label2 {
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--zodiac);
|
||||||
|
}
|
||||||
|
|
||||||
|
.label3 {
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: var(--museo);
|
||||||
|
font-weight: 500;
|
||||||
|
color: var(--zodiac);
|
||||||
|
}
|
||||||
|
|
||||||
|
.inline {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noMargin {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
import typographyStyles from 'src/components/typography/styles'
|
|
||||||
import {
|
|
||||||
placeholderColor,
|
|
||||||
primaryColor,
|
|
||||||
mainWidth,
|
|
||||||
spring2,
|
|
||||||
spring3,
|
|
||||||
errorColor
|
|
||||||
} from 'src/styling/variables'
|
|
||||||
|
|
||||||
const { tl2, p } = typographyStyles
|
|
||||||
|
|
||||||
const fill = '100%'
|
|
||||||
const flexDirection = 'column'
|
|
||||||
|
|
||||||
const styles = {
|
|
||||||
wrapper: {
|
|
||||||
width: mainWidth,
|
|
||||||
height: fill,
|
|
||||||
margin: '0 auto',
|
|
||||||
flex: 1,
|
|
||||||
display: 'flex',
|
|
||||||
flexDirection
|
|
||||||
},
|
|
||||||
contentDiv: {
|
|
||||||
display: 'flex',
|
|
||||||
flex: 1,
|
|
||||||
flexDirection: 'row'
|
|
||||||
},
|
|
||||||
headerDiv: {
|
|
||||||
display: 'flex',
|
|
||||||
justifyContent: 'space-between',
|
|
||||||
alignItems: 'center'
|
|
||||||
},
|
|
||||||
contentWrapper: {
|
|
||||||
marginLeft: 48
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default styles
|
|
||||||
|
|
@ -57,7 +57,7 @@ const LoginCard = () => {
|
||||||
<div className={classes.wrapper}>
|
<div className={classes.wrapper}>
|
||||||
<div className={classes.titleWrapper}>
|
<div className={classes.titleWrapper}>
|
||||||
<Logo className={classes.icon} />
|
<Logo className={classes.icon} />
|
||||||
<H5 className={classes.title}>Lamassu Admin</H5>
|
<h3 className={classes.title}>Lamassu Admin</h3>
|
||||||
</div>
|
</div>
|
||||||
{renderState()}
|
{renderState()}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ import Dialog from '@mui/material/Dialog'
|
||||||
import DialogTitle from '@mui/material/DialogTitle'
|
import DialogTitle from '@mui/material/DialogTitle'
|
||||||
import DialogContent from '@mui/material/DialogContent'
|
import DialogContent from '@mui/material/DialogContent'
|
||||||
import Switch from '@mui/material/Switch'
|
import Switch from '@mui/material/Switch'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import { HelpTooltip } from 'src/components/Tooltip'
|
import { HelpTooltip } from 'src/components/Tooltip'
|
||||||
|
|
@ -12,12 +14,7 @@ import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react'
|
||||||
import ReverseSettingsIcon from 'src/styling/icons/circle buttons/settings/white.svg?react'
|
import ReverseSettingsIcon from 'src/styling/icons/circle buttons/settings/white.svg?react'
|
||||||
import SettingsIcon from 'src/styling/icons/circle buttons/settings/zodiac.svg?react'
|
import SettingsIcon from 'src/styling/icons/circle buttons/settings/zodiac.svg?react'
|
||||||
|
|
||||||
import {
|
import { Link, Button, SupportLinkButton } from 'src/components/buttons'
|
||||||
Link,
|
|
||||||
Button,
|
|
||||||
IconButton,
|
|
||||||
SupportLinkButton
|
|
||||||
} from 'src/components/buttons'
|
|
||||||
import { fromNamespace, toNamespace } from 'src/utils/config'
|
import { fromNamespace, toNamespace } from 'src/utils/config'
|
||||||
|
|
||||||
import BlackListAdvanced from './BlacklistAdvanced'
|
import BlackListAdvanced from './BlacklistAdvanced'
|
||||||
|
|
@ -100,11 +97,12 @@ const PaperWalletDialog = ({ onConfirmed, onDissmised, open, props }) => {
|
||||||
<div className="p-2">
|
<div className="p-2">
|
||||||
<DialogTitle className="flex flex-col">
|
<DialogTitle className="flex flex-col">
|
||||||
<IconButton
|
<IconButton
|
||||||
size={30}
|
|
||||||
aria-label="close"
|
aria-label="close"
|
||||||
onClick={onDissmised}
|
onClick={onDissmised}
|
||||||
className="-mt-2 -mr-4 ml-auto">
|
className="-mt-2 -mr-4 ml-auto">
|
||||||
<CloseIcon />
|
<SvgIcon>
|
||||||
|
<CloseIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<H2 noMargin>{'Are you sure you want to enable this?'}</H2>
|
<H2 noMargin>{'Are you sure you want to enable this?'}</H2>
|
||||||
</DialogTitle>
|
</DialogTitle>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import { Form, Formik, Field } from 'formik'
|
import { Form, Formik, Field } from 'formik'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
|
|
@ -11,7 +13,7 @@ import DefaultIconReverse from 'src/styling/icons/button/retry/white.svg?react'
|
||||||
import DefaultIcon from 'src/styling/icons/button/retry/zodiac.svg?react'
|
import DefaultIcon from 'src/styling/icons/button/retry/zodiac.svg?react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
import { ActionButton, IconButton, Button } from 'src/components/buttons'
|
import { ActionButton, Button } from 'src/components/buttons'
|
||||||
import { TextInput } from 'src/components/inputs/formik'
|
import { TextInput } from 'src/components/inputs/formik'
|
||||||
|
|
||||||
const DEFAULT_MESSAGE = `This address may be associated with a deceptive offer or a prohibited group. Please make sure you're using an address from your own wallet.`
|
const DEFAULT_MESSAGE = `This address may be associated with a deceptive offer or a prohibited group. Please make sure you're using an address from your own wallet.`
|
||||||
|
|
@ -56,11 +58,10 @@ const BlacklistAdvanced = ({
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
size: 'sm',
|
size: 'sm',
|
||||||
view: it => (
|
view: it => (
|
||||||
<IconButton
|
<IconButton className="pl-3" onClick={() => setSelectedMessage(it)}>
|
||||||
className="pl-3"
|
<SvgIcon>
|
||||||
onClick={() => setSelectedMessage(it)}
|
<EditIcon />
|
||||||
size="large">
|
</SvgIcon>
|
||||||
<EditIcon />
|
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
@ -76,13 +77,14 @@ const BlacklistAdvanced = ({
|
||||||
disabled={
|
disabled={
|
||||||
!R.isNil(R.path(['allowToggle'], it)) &&
|
!R.isNil(R.path(['allowToggle'], it)) &&
|
||||||
!R.path(['allowToggle'], it)
|
!R.path(['allowToggle'], it)
|
||||||
}
|
}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
{R.path(['allowToggle'], it) ? (
|
{R.path(['allowToggle'], it) ? (
|
||||||
<DeleteIcon />
|
<DeleteIcon />
|
||||||
) : (
|
) : (
|
||||||
<DisabledDeleteIcon />
|
<DisabledDeleteIcon />
|
||||||
)}
|
)}
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import { DeleteDialog } from 'src/components/DeleteDialog'
|
import { DeleteDialog } from 'src/components/DeleteDialog'
|
||||||
|
|
@ -5,8 +7,6 @@ import DataTable from 'src/components/tables/DataTable'
|
||||||
import CopyToClipboard from 'src/components/CopyToClipboard.jsx'
|
import CopyToClipboard from 'src/components/CopyToClipboard.jsx'
|
||||||
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
||||||
|
|
||||||
import { IconButton } from 'src/components/buttons'
|
|
||||||
|
|
||||||
const BlacklistTable = ({
|
const BlacklistTable = ({
|
||||||
data,
|
data,
|
||||||
handleDeleteEntry,
|
handleDeleteEntry,
|
||||||
|
|
@ -42,9 +42,10 @@ const BlacklistTable = ({
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setDeleteDialog(true)
|
setDeleteDialog(true)
|
||||||
setToBeDeleted(it)
|
setToBeDeleted(it)
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<DeleteIcon />
|
<DeleteIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import { useQuery, useMutation, useLazyQuery, gql } from '@apollo/client'
|
import { useQuery, useMutation, useLazyQuery, gql } from '@apollo/client'
|
||||||
import Breadcrumbs from '@mui/material/Breadcrumbs'
|
import Breadcrumbs from '@mui/material/Breadcrumbs'
|
||||||
import DialogActions from '@mui/material/DialogActions'
|
import DialogActions from '@mui/material/DialogActions'
|
||||||
|
|
@ -18,7 +20,7 @@ import BlockIcon from 'src/styling/icons/button/block/zodiac.svg?react'
|
||||||
import DataReversedIcon from 'src/styling/icons/button/data/white.svg?react'
|
import DataReversedIcon from 'src/styling/icons/button/data/white.svg?react'
|
||||||
import DataIcon from 'src/styling/icons/button/data/zodiac.svg?react'
|
import DataIcon from 'src/styling/icons/button/data/zodiac.svg?react'
|
||||||
|
|
||||||
import { Button, IconButton, ActionButton } from 'src/components/buttons'
|
import { Button, ActionButton } from 'src/components/buttons'
|
||||||
import {
|
import {
|
||||||
OVERRIDE_AUTHORIZED,
|
OVERRIDE_AUTHORIZED,
|
||||||
OVERRIDE_REJECTED
|
OVERRIDE_REJECTED
|
||||||
|
|
@ -734,11 +736,10 @@ const RetrieveDataDialog = ({
|
||||||
}}
|
}}
|
||||||
{...props}>
|
{...props}>
|
||||||
<div className="pt-4 pr-4 flex justify-end">
|
<div className="pt-4 pr-4 flex justify-end">
|
||||||
<IconButton
|
<IconButton aria-label="close" onClick={() => onDismissed(false)}>
|
||||||
size={32}
|
<SvgIcon>
|
||||||
aria-label="close"
|
<CloseIcon />
|
||||||
onClick={() => onDismissed(false)}>
|
</SvgIcon>
|
||||||
<CloseIcon />
|
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
<H2 className="mb-2 ml-10">{'Retrieve API data from Twilio'}</H2>
|
<H2 className="mb-2 ml-10">{'Retrieve API data from Twilio'}</H2>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import { useQuery, useMutation, gql } from '@apollo/client'
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
|
|
||||||
import { Link, Button, IconButton } from 'src/components/buttons'
|
import { Link, Button } from 'src/components/buttons'
|
||||||
import { DeleteDialog } from 'src/components/DeleteDialog'
|
import { DeleteDialog } from 'src/components/DeleteDialog'
|
||||||
import DataTable from 'src/components/tables/DataTable'
|
import DataTable from 'src/components/tables/DataTable'
|
||||||
import { Label3, TL1 } from 'src/components/typography'
|
import { Label3, TL1 } from 'src/components/typography'
|
||||||
|
|
@ -136,9 +138,10 @@ const IndividualDiscounts = () => {
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setDeleteDialog(true)
|
setDeleteDialog(true)
|
||||||
setToBeDeleted({ variables: { discountId: t.id } })
|
setToBeDeleted({ variables: { discountId: t.id } })
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<DeleteIcon />
|
<DeleteIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import { useQuery, useMutation, gql } from '@apollo/client'
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
|
|
@ -6,7 +8,7 @@ import DataTable from 'src/components/tables/DataTable'
|
||||||
import { Label3, TL1 } from 'src/components/typography'
|
import { Label3, TL1 } from 'src/components/typography'
|
||||||
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
||||||
|
|
||||||
import { Link, Button, IconButton } from 'src/components/buttons'
|
import { Link, Button } from 'src/components/buttons'
|
||||||
|
|
||||||
import PromoCodesModal from './PromoCodesModal'
|
import PromoCodesModal from './PromoCodesModal'
|
||||||
|
|
||||||
|
|
@ -114,9 +116,10 @@ const PromoCodes = () => {
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setDeleteDialog(true)
|
setDeleteDialog(true)
|
||||||
setToBeDeleted({ variables: { codeId: t.id } })
|
setToBeDeleted({ variables: { codeId: t.id } })
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<DeleteIcon />
|
<DeleteIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
import { useQuery, useMutation, gql } from '@apollo/client'
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import DialogActions from '@mui/material/DialogActions'
|
import DialogActions from '@mui/material/DialogActions'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'
|
import LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'
|
||||||
|
|
@ -12,7 +14,7 @@ import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
import ReverseHistoryIcon from 'src/styling/icons/circle buttons/history/white.svg?react'
|
import ReverseHistoryIcon from 'src/styling/icons/circle buttons/history/white.svg?react'
|
||||||
import HistoryIcon from 'src/styling/icons/circle buttons/history/zodiac.svg?react'
|
import HistoryIcon from 'src/styling/icons/circle buttons/history/zodiac.svg?react'
|
||||||
|
|
||||||
import { IconButton, Button, SupportLinkButton } from 'src/components/buttons'
|
import { Button, SupportLinkButton } from 'src/components/buttons'
|
||||||
import { RadioGroup } from 'src/components/inputs'
|
import { RadioGroup } from 'src/components/inputs'
|
||||||
import { EmptyTable } from 'src/components/table'
|
import { EmptyTable } from 'src/components/table'
|
||||||
import { fromNamespace, toNamespace } from 'src/utils/config'
|
import { fromNamespace, toNamespace } from 'src/utils/config'
|
||||||
|
|
@ -252,8 +254,10 @@ const CashCassettes = () => {
|
||||||
{onlyFirstToUpper(cashboxReset)}
|
{onlyFirstToUpper(cashboxReset)}
|
||||||
</P>
|
</P>
|
||||||
)}
|
)}
|
||||||
<IconButton onClick={() => setEditingSchema(true)} size="large">
|
<IconButton onClick={() => setEditingSchema(true)}>
|
||||||
<EditIcon />
|
<SvgIcon>
|
||||||
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import { CashIn, CashOutLite } from 'src/components/inputs/cashbox/Cashbox'
|
import { CashIn, CashOutLite } from 'src/components/inputs/cashbox/Cashbox'
|
||||||
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
|
|
||||||
import { IconButton } from 'src/components/buttons'
|
|
||||||
import { fromNamespace } from 'src/utils/config'
|
import { fromNamespace } from 'src/utils/config'
|
||||||
import { getCashUnitCapacity } from 'src/utils/machine'
|
import { getCashUnitCapacity } from 'src/utils/machine'
|
||||||
|
|
||||||
|
|
@ -124,9 +125,10 @@ const getElements = (config, bills, setWizard, widths, setMachineId) => {
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
!R.isNil(setMachineId) && setMachineId(m.id ?? m.deviceId)
|
!R.isNil(setMachineId) && setMachineId(m.id ?? m.deviceId)
|
||||||
setWizard(true)
|
setWizard(true)
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<EditIcon />
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { H4 } from 'src/components/typography'
|
import { H4 } from 'src/components/typography'
|
||||||
import DisabledEditIcon from 'src/styling/icons/action/edit/disabled.svg?react'
|
import DisabledEditIcon from 'src/styling/icons/action/edit/disabled.svg?react'
|
||||||
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
|
|
||||||
import { Link, IconButton } from 'src/components/buttons'
|
import { Link } from 'src/components/buttons'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const Header = ({ title, editing, disabled, setEditing }) => {
|
const Header = ({ title, editing, disabled, setEditing }) => {
|
||||||
return (
|
return (
|
||||||
|
|
@ -15,9 +17,8 @@ const Header = ({ title, editing, disabled, setEditing }) => {
|
||||||
<IconButton
|
<IconButton
|
||||||
onClick={() => setEditing(true)}
|
onClick={() => setEditing(true)}
|
||||||
className="border-0 bg-transparent shrink-0 cursor-pointer ml-2"
|
className="border-0 bg-transparent shrink-0 cursor-pointer ml-2"
|
||||||
disabled={disabled}
|
disabled={disabled}>
|
||||||
size="large">
|
<SvgIcon>{disabled ? <DisabledEditIcon /> : <EditIcon />}</SvgIcon>
|
||||||
{disabled ? <DisabledEditIcon /> : <EditIcon />}
|
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
{editing && (
|
{editing && (
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import { useQuery, useMutation, gql } from '@apollo/client'
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import { Form, Formik, Field as FormikField } from 'formik'
|
import { Form, Formik, Field as FormikField } from 'formik'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
|
|
@ -9,13 +10,14 @@ import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
import WarningIcon from 'src/styling/icons/warning-icon/comet.svg?react'
|
import WarningIcon from 'src/styling/icons/warning-icon/comet.svg?react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
import { Link, IconButton } from 'src/components/buttons'
|
import { Link } from 'src/components/buttons'
|
||||||
import { TextInput } from 'src/components/inputs/formik'
|
import { TextInput } from 'src/components/inputs/formik'
|
||||||
import { fromNamespace, toNamespace, namespaces } from 'src/utils/config'
|
import { fromNamespace, toNamespace, namespaces } from 'src/utils/config'
|
||||||
|
|
||||||
import SwitchRow from './components/SwitchRow.jsx'
|
import SwitchRow from './components/SwitchRow.jsx'
|
||||||
import InfoMessage from './components/InfoMessage.jsx'
|
import InfoMessage from './components/InfoMessage.jsx'
|
||||||
import Header from './components/Header.jsx'
|
import Header from './components/Header.jsx'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const FIELD_WIDTH = 280
|
const FIELD_WIDTH = 280
|
||||||
|
|
||||||
|
|
@ -160,8 +162,10 @@ const ContactInfo = ({ wizard }) => {
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
<H4>Info card</H4>
|
<H4>Info card</H4>
|
||||||
{!editing && (
|
{!editing && (
|
||||||
<IconButton onClick={() => setEditing(true)} size="large">
|
<IconButton onClick={() => setEditing(true)}>
|
||||||
<EditIcon />
|
<SvgIcon>
|
||||||
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { useQuery, useMutation, gql } from '@apollo/client'
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import Paper from '@mui/material/Paper'
|
import Paper from '@mui/material/Paper'
|
||||||
import Switch from '@mui/material/Switch'
|
import Switch from '@mui/material/Switch'
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import { HelpTooltip } from 'src/components/Tooltip'
|
import { HelpTooltip } from 'src/components/Tooltip'
|
||||||
|
|
@ -11,10 +12,11 @@ import ExpandIconClosed from 'src/styling/icons/action/expand/closed.svg?react'
|
||||||
import ExpandIconOpen from 'src/styling/icons/action/expand/open.svg?react'
|
import ExpandIconOpen from 'src/styling/icons/action/expand/open.svg?react'
|
||||||
import WhiteLogo from 'src/styling/icons/menu/logo-white.svg?react'
|
import WhiteLogo from 'src/styling/icons/menu/logo-white.svg?react'
|
||||||
|
|
||||||
import { IconButton, SupportLinkButton } from 'src/components/buttons'
|
import { SupportLinkButton } from 'src/components/buttons'
|
||||||
import { formatDate } from 'src/utils/timezones'
|
import { formatDate } from 'src/utils/timezones'
|
||||||
|
|
||||||
import CustomSMSModal from './SMSNoticesModal'
|
import CustomSMSModal from './SMSNoticesModal'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const GET_SMS_NOTICES = gql`
|
const GET_SMS_NOTICES = gql`
|
||||||
query SMSNotices {
|
query SMSNotices {
|
||||||
|
|
@ -175,9 +177,10 @@ const SMSNotices = () => {
|
||||||
setPreviewOpen(false)
|
setPreviewOpen(false)
|
||||||
setSelectedSMS(it)
|
setSelectedSMS(it)
|
||||||
setShowModal(true)
|
setShowModal(true)
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<EditIcon />
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
@ -217,13 +220,14 @@ const SMSNotices = () => {
|
||||||
R.equals(selectedSMS, it)
|
R.equals(selectedSMS, it)
|
||||||
? setPreviewOpen(!previewOpen)
|
? setPreviewOpen(!previewOpen)
|
||||||
: setPreviewOpen(true)
|
: setPreviewOpen(true)
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
{R.equals(selectedSMS, it) && previewOpen ? (
|
{R.equals(selectedSMS, it) && previewOpen ? (
|
||||||
<ExpandIconOpen />
|
<ExpandIconOpen />
|
||||||
) : (
|
) : (
|
||||||
<ExpandIconClosed />
|
<ExpandIconClosed />
|
||||||
)}
|
)}
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import { useQuery, useMutation, gql } from '@apollo/client'
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import { Form, Formik, Field as FormikField } from 'formik'
|
import { Form, Formik, Field as FormikField } from 'formik'
|
||||||
|
|
@ -9,12 +10,13 @@ import { Info2, Info3, Label3 } from 'src/components/typography'
|
||||||
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
|
|
||||||
import { Link, IconButton } from 'src/components/buttons'
|
import { Link } from 'src/components/buttons'
|
||||||
import { TextInput } from 'src/components/inputs/formik'
|
import { TextInput } from 'src/components/inputs/formik'
|
||||||
import { fromNamespace, toNamespace, namespaces } from 'src/utils/config'
|
import { fromNamespace, toNamespace, namespaces } from 'src/utils/config'
|
||||||
|
|
||||||
import Header from './components/Header.jsx'
|
import Header from './components/Header.jsx'
|
||||||
import SwitchRow from './components/SwitchRow.jsx'
|
import SwitchRow from './components/SwitchRow.jsx'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const Field = ({
|
const Field = ({
|
||||||
editing,
|
editing,
|
||||||
|
|
@ -184,8 +186,10 @@ const TermsConditions = () => {
|
||||||
<div className="flex gap-3">
|
<div className="flex gap-3">
|
||||||
<Info2>Info card</Info2>
|
<Info2>Info card</Info2>
|
||||||
{!editing && (
|
{!editing && (
|
||||||
<IconButton onClick={() => setEditing(true)} size="large">
|
<IconButton onClick={() => setEditing(true)}>
|
||||||
<EditIcon />
|
<SvgIcon>
|
||||||
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { useQuery, useMutation, gql } from "@apollo/client";
|
import IconButton from '@mui/material/IconButton'
|
||||||
|
import { useQuery, useMutation, gql } from '@apollo/client'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import TitleSection from 'src/components/layout/TitleSection'
|
import TitleSection from 'src/components/layout/TitleSection'
|
||||||
|
|
@ -6,8 +7,8 @@ import DataTable from 'src/components/tables/DataTable'
|
||||||
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
||||||
import parser from 'ua-parser-js'
|
import parser from 'ua-parser-js'
|
||||||
|
|
||||||
import { IconButton } from 'src/components/buttons'
|
|
||||||
import { formatDate } from 'src/utils/timezones'
|
import { formatDate } from 'src/utils/timezones'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const GET_SESSIONS = gql`
|
const GET_SESSIONS = gql`
|
||||||
query sessions {
|
query sessions {
|
||||||
|
|
@ -98,9 +99,10 @@ const SessionManagement = () => {
|
||||||
<IconButton
|
<IconButton
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
deleteSession({ variables: { sid: s.sid } })
|
deleteSession({ variables: { sid: s.sid } })
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<DeleteIcon />
|
<DeleteIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import IconButton from '@mui/material/IconButton'
|
||||||
import { useMutation, useQuery, gql } from '@apollo/client'
|
import { useMutation, useQuery, gql } from '@apollo/client'
|
||||||
import * as R from 'ramda'
|
import * as R from 'ramda'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
|
|
@ -7,11 +8,12 @@ import { Info1, Info3, P } from 'src/components/typography'
|
||||||
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
import DeleteIcon from 'src/styling/icons/action/delete/enabled.svg?react'
|
||||||
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react'
|
||||||
|
|
||||||
import { IconButton, Button, Link } from 'src/components/buttons'
|
import { Button, Link } from 'src/components/buttons'
|
||||||
import { fromNamespace, namespaces, toNamespace } from 'src/utils/config'
|
import { fromNamespace, namespaces, toNamespace } from 'src/utils/config'
|
||||||
|
|
||||||
import DetailsRow from './DetailsCard'
|
import DetailsRow from './DetailsCard'
|
||||||
import Wizard from './Wizard'
|
import Wizard from './Wizard'
|
||||||
|
import SvgIcon from '@mui/material/SvgIcon'
|
||||||
|
|
||||||
const inputTypeDisplay = {
|
const inputTypeDisplay = {
|
||||||
numerical: 'Numerical',
|
numerical: 'Numerical',
|
||||||
|
|
@ -212,9 +214,10 @@ const CustomInfoRequests = ({
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setToBeEdited(it)
|
setToBeEdited(it)
|
||||||
return toggleWizard()
|
return toggleWizard()
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<EditIcon />
|
<EditIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -230,9 +233,10 @@ const CustomInfoRequests = ({
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setToBeDeleted(it.id)
|
setToBeDeleted(it.id)
|
||||||
return setDeleteDialog(true)
|
return setDeleteDialog(true)
|
||||||
}}
|
}}>
|
||||||
size="large">
|
<SvgIcon>
|
||||||
<DeleteIcon />
|
<DeleteIcon />
|
||||||
|
</SvgIcon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ const NumericalEntry = () => {
|
||||||
name="constraintType"
|
name="constraintType"
|
||||||
/>
|
/>
|
||||||
{isLength && (
|
{isLength && (
|
||||||
<div className="flex mt-27 max-w-29">
|
<div className="flex mt-6 max-w-29">
|
||||||
<Field
|
<Field
|
||||||
component={NumberInput}
|
component={NumberInput}
|
||||||
name={'inputLength'}
|
name={'inputLength'}
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,10 @@
|
||||||
column-span: all;
|
column-span: all;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@utility linebreak-anywhere {
|
||||||
|
line-break: anywhere;
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
width: 1200px;
|
width: 1200px;
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,11 @@ theme = createTheme(theme, {
|
||||||
body1: { ...p }
|
body1: { ...p }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
MuiIconButtonBase: {
|
||||||
|
defaultProps: {
|
||||||
|
disableRipple: true
|
||||||
|
}
|
||||||
|
},
|
||||||
MuiButtonBase: {
|
MuiButtonBase: {
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
disableRipple: true
|
disableRipple: true
|
||||||
|
|
@ -159,6 +164,9 @@ theme = createTheme(theme, {
|
||||||
},
|
},
|
||||||
MuiPaper: {
|
MuiPaper: {
|
||||||
styleOverrides: {
|
styleOverrides: {
|
||||||
|
root: {
|
||||||
|
color: primaryColor
|
||||||
|
},
|
||||||
elevation1: {
|
elevation1: {
|
||||||
boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'
|
boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,16 +32,12 @@ const mistyRose = '#ffeceb'
|
||||||
const pumpkin = '#ff7311'
|
const pumpkin = '#ff7311'
|
||||||
const linen = '#fbf3ec'
|
const linen = '#fbf3ec'
|
||||||
|
|
||||||
// Warning
|
|
||||||
const orangeYellow = '#ffcc00'
|
|
||||||
|
|
||||||
// Color Variables
|
// Color Variables
|
||||||
const primaryColor = zodiac
|
const primaryColor = zodiac
|
||||||
|
|
||||||
const secondaryColor = spring
|
const secondaryColor = spring
|
||||||
const secondaryColorDark = spring2
|
const secondaryColorDark = spring2
|
||||||
const secondaryColorDarker = spring4
|
const secondaryColorDarker = spring4
|
||||||
const secondaryColorLighter = spring3
|
|
||||||
|
|
||||||
const backgroundColor = ghost
|
const backgroundColor = ghost
|
||||||
const subheaderColor = zircon
|
const subheaderColor = zircon
|
||||||
|
|
@ -52,16 +48,13 @@ const fontColor = primaryColor
|
||||||
const offColor = comet
|
const offColor = comet
|
||||||
const offDarkColor = comet2
|
const offDarkColor = comet2
|
||||||
const offDarkerColor = comet3
|
const offDarkerColor = comet3
|
||||||
const placeholderColor = comet
|
|
||||||
const errorColor = tomato
|
const errorColor = tomato
|
||||||
const errorColorDark = tomato1
|
const errorColorDark = tomato1
|
||||||
const errorColorDarker = tomato2
|
const errorColorDarker = tomato2
|
||||||
const offErrorColor = mistyRose
|
const offErrorColor = mistyRose
|
||||||
const inputBorderColor = primaryColor
|
|
||||||
|
|
||||||
// General
|
// General
|
||||||
const spacer = 8
|
const spacer = 8
|
||||||
const mainWidth = 1200
|
|
||||||
|
|
||||||
// Buttons
|
// Buttons
|
||||||
const linkPrimaryColor = secondaryColor
|
const linkPrimaryColor = secondaryColor
|
||||||
|
|
@ -72,19 +65,11 @@ const fontPrimary = 'Mont'
|
||||||
const fontSecondary = 'MuseoSans'
|
const fontSecondary = 'MuseoSans'
|
||||||
const fontMonospaced = 'BPmono'
|
const fontMonospaced = 'BPmono'
|
||||||
|
|
||||||
let fontSize1 = 24
|
const fontSize1 = 24
|
||||||
let fontSize2 = 20
|
const fontSize2 = 20
|
||||||
let fontSize3 = 16
|
const fontSize3 = 16
|
||||||
let fontSize4 = 14
|
const fontSize4 = 14
|
||||||
let fontSize5 = 13
|
const fontSize5 = 13
|
||||||
|
|
||||||
if (version === 8) {
|
|
||||||
fontSize1 = 32
|
|
||||||
fontSize2 = 24
|
|
||||||
fontSize3 = 20
|
|
||||||
fontSize4 = 16
|
|
||||||
fontSize5 = 14
|
|
||||||
}
|
|
||||||
|
|
||||||
const smallestFontSize = fontSize5
|
const smallestFontSize = fontSize5
|
||||||
const inputFontSizeSm = fontSize4
|
const inputFontSizeSm = fontSize4
|
||||||
|
|
@ -93,7 +78,6 @@ const inputFontSizeLg = fontSize1
|
||||||
const inputFontWeight = 500
|
const inputFontWeight = 500
|
||||||
const inputFontWeightBold = 700
|
const inputFontWeightBold = 700
|
||||||
const inputFontFamily = fontSecondary
|
const inputFontFamily = fontSecondary
|
||||||
const codeInputFontSize = 35
|
|
||||||
|
|
||||||
// Breakpoints
|
// Breakpoints
|
||||||
const sm = 576
|
const sm = 576
|
||||||
|
|
@ -113,13 +97,7 @@ if (version === 8) {
|
||||||
|
|
||||||
const tableDoubleHeaderHeight = tableHeaderHeight * 2
|
const tableDoubleHeaderHeight = tableHeaderHeight * 2
|
||||||
|
|
||||||
const tableSmCellHeight = 30
|
|
||||||
const tableLgCellHeight = 76
|
|
||||||
|
|
||||||
const tableHeaderColor = primaryColor
|
const tableHeaderColor = primaryColor
|
||||||
const tableDisabledHeaderColor = zircon
|
|
||||||
const tableNewDisabledHeaderColor = spring3
|
|
||||||
const tableCellColor = white
|
|
||||||
const tableErrorColor = mistyRose
|
const tableErrorColor = mistyRose
|
||||||
const tableSuccessColor = spring3
|
const tableSuccessColor = spring3
|
||||||
|
|
||||||
|
|
@ -139,17 +117,14 @@ export {
|
||||||
java,
|
java,
|
||||||
neon,
|
neon,
|
||||||
linen,
|
linen,
|
||||||
orangeYellow,
|
|
||||||
// named colors
|
// named colors
|
||||||
primaryColor,
|
primaryColor,
|
||||||
secondaryColor,
|
secondaryColor,
|
||||||
secondaryColorDark,
|
secondaryColorDark,
|
||||||
secondaryColorDarker,
|
secondaryColorDarker,
|
||||||
secondaryColorLighter,
|
|
||||||
subheaderColor,
|
subheaderColor,
|
||||||
subheaderDarkColor,
|
subheaderDarkColor,
|
||||||
backgroundColor,
|
backgroundColor,
|
||||||
placeholderColor,
|
|
||||||
offColor,
|
offColor,
|
||||||
offDarkColor,
|
offDarkColor,
|
||||||
offDarkerColor,
|
offDarkerColor,
|
||||||
|
|
@ -162,7 +137,6 @@ export {
|
||||||
errorColorDarker,
|
errorColorDarker,
|
||||||
errorColorDark,
|
errorColorDark,
|
||||||
offErrorColor,
|
offErrorColor,
|
||||||
inputBorderColor,
|
|
||||||
// font sizes
|
// font sizes
|
||||||
fontSize1,
|
fontSize1,
|
||||||
fontSize2,
|
fontSize2,
|
||||||
|
|
@ -180,7 +154,6 @@ export {
|
||||||
inputFontFamily,
|
inputFontFamily,
|
||||||
inputFontWeight,
|
inputFontWeight,
|
||||||
inputFontWeightBold,
|
inputFontWeightBold,
|
||||||
codeInputFontSize,
|
|
||||||
// screen sizes
|
// screen sizes
|
||||||
sm,
|
sm,
|
||||||
md,
|
md,
|
||||||
|
|
@ -189,17 +162,11 @@ export {
|
||||||
xxl,
|
xxl,
|
||||||
// sizes
|
// sizes
|
||||||
spacer,
|
spacer,
|
||||||
mainWidth,
|
|
||||||
// table sizes
|
// table sizes
|
||||||
tableHeaderHeight,
|
tableHeaderHeight,
|
||||||
tableDoubleHeaderHeight,
|
tableDoubleHeaderHeight,
|
||||||
tableCellHeight,
|
tableCellHeight,
|
||||||
tableSmCellHeight,
|
|
||||||
tableLgCellHeight,
|
|
||||||
tableHeaderColor,
|
tableHeaderColor,
|
||||||
tableDisabledHeaderColor,
|
|
||||||
tableNewDisabledHeaderColor,
|
|
||||||
tableCellColor,
|
|
||||||
tableErrorColor,
|
tableErrorColor,
|
||||||
tableSuccessColor
|
tableSuccessColor
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue