From 03171a16b8f5946f3374beceaf1005f2f35ba2c8 Mon Sep 17 00:00:00 2001 From: PepperLola Date: Mon, 17 Jun 2024 17:31:14 -0700 Subject: [PATCH 01/15] migrated some components to MUI base with styles --- fission/bun.lockb | Bin 274767 -> 299386 bytes fission/package.json | 3 + fission/src/components/Button.tsx | 24 ++- fission/src/components/Checkbox.tsx | 41 +++-- fission/src/components/Dropdown.tsx | 154 ++++++++++++----- fission/src/components/Input.tsx | 54 +++--- fission/src/components/MainHUD.tsx | 55 +++--- fission/src/components/NumberInput.tsx | 74 ++++++++ fission/src/components/Slider.tsx | 158 ++++++++++-------- fission/src/components/Toast.tsx | 6 +- .../rio-config/RCConfigEncoderModal.tsx | 18 +- .../configuring/scoring/ZoneConfigPanel.tsx | 10 +- 12 files changed, 389 insertions(+), 208 deletions(-) create mode 100644 fission/src/components/NumberInput.tsx diff --git a/fission/bun.lockb b/fission/bun.lockb index 8ca9f4a4ab44ab72622fa81f2e042ca8b100e1fb..8db39c4f6af60d5953447e4577659114f0c6cc54 100755 GIT binary patch delta 75050 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

bwI^%y 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 pZsCR7 void className?: string @@ -17,7 +18,7 @@ type ButtonProps = { const Button: React.FC = ({ value, - colorClass, + colorOverrideClass, size, onClick, className, @@ -42,18 +43,15 @@ const Button: React.FC = ({ } return ( - + className={`${colorOverrideClass + ? colorOverrideClass + : "bg-gradient-to-r from-interactive-element-left via-interactive-element-right to-interactive-element-left bg-[length:200%_100%] active:bg-right" + } w-full h-full ${sizeClassNames} rounded-sm font-semibold cursor-pointer duration-200 border-none focus-visible:outline-0 ${className || "" + }`} + >{value} + ) } diff --git a/fission/src/components/Checkbox.tsx b/fission/src/components/Checkbox.tsx index 1d6ad3c6c4..2145327839 100644 --- a/fission/src/components/Checkbox.tsx +++ b/fission/src/components/Checkbox.tsx @@ -1,6 +1,7 @@ import React, { useState } from "react" import Stack, { StackDirection } from "./Stack" import Label, { LabelSize } from "./Label" +import { Switch } from '@mui/base/Switch' type CheckboxProps = { label: string @@ -17,7 +18,6 @@ const Checkbox: React.FC = ({ stateOverride, onClick, }) => { - const [state, setState] = useState(defaultState) return ( - { - const checked = (e.target as HTMLInputElement).checked - setState(checked) - if (onClick) onClick(checked) + ) => onClick && onClick(e.target.checked)} + slotProps={{ + root: { + className: `group relative inline-block w-[38px] h-[24px] m-2.5 cursor-pointer` + }, + input: { + className: `cursor-inherit absolute w-full h-full top-0 left-0 opacity-0 z-10 border-none` + }, + track: (ownerState) => { + return { + className: `absolute block w-full h-full transition rounded-full border border-solid outline-none border-slate-300 dark:border-gray-700 group-[.base--focusVisible]:shadow-outline-switch ${ownerState.checked ? 'bg-purple-500' : 'bg-slate-100 dark:bg-slate-900 hover:bg-slate-200 dark:hover:bg-slate-800'}` + } + }, + thumb: (ownerState) => { + return { + className: `block w-4 h-4 top-1 rounded-2xl border border-solid outline-none border-slate-300 dark:border-gray-700 transition shadow-[0_1px_2px_rgb(0_0_0_/_0.1)] dark:shadow-[0_1px_2px_rgb(0_0_0_/_0.25)] ${ownerState.checked ? 'left-[18px] bg-white shadow-[0_0_0_rgb(0_0_0_/_0.3)]' : 'left-[4px] bg-white'} relative transition-all` + } + } }} - className="bg-interactive-background translate-y-1/4 duration-200 cursor-pointer appearance-none w-5 h-5 rounded-full checked:bg-gradient-to-br checked:from-interactive-element-left checked:to-interactive-element-right" - checked={stateOverride != null ? stateOverride : undefined} /> ) } +// { +// const checked = (e.target as HTMLInputElement).checked +// setState(checked) +// if (onClick) onClick(checked) +// }} +// className="bg-interactive-background translate-y-1/4 duration-200 cursor-pointer appearance-none w-5 h-5 rounded-full checked:bg-gradient-to-br checked:from-interactive-element-left checked:to-interactive-element-right" +// checked={stateOverride != null ? stateOverride : undefined} +// /> export default Checkbox diff --git a/fission/src/components/Dropdown.tsx b/fission/src/components/Dropdown.tsx index 23d8cebcfc..cd090c8706 100644 --- a/fission/src/components/Dropdown.tsx +++ b/fission/src/components/Dropdown.tsx @@ -1,6 +1,28 @@ import React, { ReactNode, useState } from "react" -import { FaChevronDown, FaChevronUp } from "react-icons/fa" import Label, { LabelSize } from "./Label" +import { Select as BaseSelect, SelectProps, selectClasses, SelectRootSlotProps } from '@mui/base/Select' +import { Option as BaseOption, optionClasses } from '@mui/base/Option' +import { styled } from '@mui/system' +import { Button } from '@mui/base/Button' +import UnfoldMoreRoundedIcon from '@mui/icons-material/UnfoldMoreRounded' +import { SelectValue } from "@mui/base/useSelect" + +const Select = React.forwardRef(function Select< + TValue extends {}, + Multiple extends boolean, +>(props: SelectProps, ref: React.ForwardedRef) { + const slots: SelectProps['slots'] = { + root: CustomButton, + listbox: Listbox, + popup: Popup, + ...props.slots + }; + + // TODO: list options don't render at the same width as select root button + return ; +}) as ( + props: SelectProps & React.RefAttributes, +) => JSX.Element; type DropdownProps = { children?: ReactNode @@ -16,7 +38,6 @@ const Dropdown: React.FC = ({ options, onSelect, }) => { - const [expanded, setExpanded] = useState(false) const [optionList, setOptionList] = useState(options) type DropdownOptionProps = { @@ -25,49 +46,106 @@ const Dropdown: React.FC = ({ className?: string } - const DropdownOption: React.FC = ({ - children, - value, - className, - }) => ( - { - const newOptions = options.filter(item => item !== value) - newOptions.unshift(value) - setOptionList(newOptions) - if (onSelect) onSelect(value) - }} - className={`block relative duration-100 hover:backdrop-brightness-90 w-full h-full px-2 py-2 ${className}`} - > - {children} - - ) - return ( <> {label && } -

setExpanded(!expanded)} - className={`relative flex flex-col gap-2 select-none cursor-pointer bg-gradient-to-r from-interactive-element-left to-interactive-element-right w-full rounded-md ${className}`} - > - - {optionList[0]} - {optionList.length > 1 && ( -
- - -
- )} -
- {expanded && - optionList.slice(1).map(o => ( - - {o} - +
+
) } +const CustomButton = React.forwardRef(function CustomButton< + TValue extends {}, + Multiple extends boolean, +>( + props: SelectRootSlotProps, + ref: React.ForwardedRef, +) { + const { ownerState, ...other } = props; + return ( + + {other.children} + + + ); +}); + +const StyledButton = styled(Button)` + position: relative; + text-align: left; + width: 100%; + background-image: linear-gradient(to right, var(--interactive-element-left), var(--interactive-element-right)); + border-radius: 0.375rem; + border: none; + outline: none; + padding-left: calc(0.8em + 8px); + + &:hover, &:focus { + outline: none; + } + + & > svg { + font-size: 1rem; + position: absolute; + height: 100%; + top: 0; + right: 10px; + } +`; + +const Listbox = styled('ul')` + box-sizing: border-box; + width: 100%; + background-image: linear-gradient(to right, var(--interactive-element-right), var(--interactive-element-left)); + border-radius: 1rem; + padding: 8px; +`; + +const Option = styled(BaseOption)` + list-style: none; + cursor: default; + padding: 0.6em 0.8em; + border-radius: 1rem; + cursor: pointer; + &:hover { + backdrop-filter: brightness(90%); + } + &:hover, &:focus { + outline: none; + } +`; + +const Popup = styled('div')` + position: relative; + z-index: 1; + width: 100%; +`; + +//
setExpanded(!expanded)} +// className={`relative flex flex-col gap-2 select-none cursor-pointer bg-gradient-to-r from-interactive-element-left to-interactive-element-right w-full rounded-md ${className}`} +// > +// +// {optionList[0]} +// {optionList.length > 1 && ( +//
+// +// +//
+// )} +//
+// {expanded && +// optionList.slice(1).map(o => ( +// +// {o} +// +// ))} +//
+ export default Dropdown diff --git a/fission/src/components/Input.tsx b/fission/src/components/Input.tsx index 5bc7978345..3be85925d7 100644 --- a/fission/src/components/Input.tsx +++ b/fission/src/components/Input.tsx @@ -1,12 +1,10 @@ import React from "react" import Label, { LabelSize } from "./Label" +import { Input as BaseInput } from '@mui/base/Input' type InputProps = { placeholder: string - value?: string defaultValue?: string - numeric?: boolean - validate?: (s: string) => boolean label?: string onInput?: (value: string) => void className?: string @@ -14,10 +12,7 @@ type InputProps = { const Input: React.FC = ({ placeholder, - value, defaultValue, - numeric, - validate, label, onInput, className, @@ -25,30 +20,41 @@ const Input: React.FC = ({ return ( <> {label && } - { - if ( - e.key != null && - numeric && - !"1234567890,.".includes(e.key) - ) { - e.preventDefault() + placeholder={placeholder} + onChange={(e: React.ChangeEvent) => onInput && onInput(e.target.value)} + className={className} + slotProps={{ + input: { + className: `w-full text-sm font-normal font-sans leading-5 px-3 py-2 rounded-lg shadow-md text-main-text bg-background-secondary focus-visible:outline-0 border border-solid border-interactive-element-right dark:border-interactive-element-right hover:border-interactive-element-solid dark:hover:border-interactive-element-solid focus:border-interactive-solid dark:focus:border-interactive-element-solid` + // className: `w-full text-sm font-normal font-sans leading-5 px-3 py-2 rounded-lg shadow-md focus:shadow-outline-interactive-element-left dark:focus:shadow-outline-interactive-element-left dark:outline-interactive-element-right focus:shadow-lg border border-solid border-interactive-element-right hover:border-interactive-element-left dark:hover:border-interactive-element-left focus:border-interactive-element-left dark:focus:border-interactive-element-left dark:border-slate-600 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 focus-visible:outline-0` } - - if (validate && !validate(e.key)) e.preventDefault() }} - onChange={e => { - if (onInput) onInput(e.target.value) - }} - className={`bg-interactive-background px-2 py-1 bg-[length:200%_100%] w-min rounded-md font-semibold cursor-pointer placeholder:italic ${ - className || "" - }`} /> ) } +// { +// if ( +// e.key != null && +// numeric && +// !"1234567890,.".includes(e.key) +// ) { +// e.preventDefault() +// } + +// if (validate && !validate(e.key)) e.preventDefault() +// }} +// onChange={e => { +// if (onInput) onInput(e.target.value) +// }} +// className={`bg-interactive-background px-2 py-1 bg-[length:200%_100%] w-min rounded-md font-semibold cursor-pointer placeholder:italic ${className || "" +// }`} +// /> export default Input diff --git a/fission/src/components/MainHUD.tsx b/fission/src/components/MainHUD.tsx index d1178622e8..be14a95e1e 100644 --- a/fission/src/components/MainHUD.tsx +++ b/fission/src/components/MainHUD.tsx @@ -14,6 +14,7 @@ import { ToastType, useToastContext } from "../ToastContext" import { Random } from "@/util/Random" import APS, { APS_USER_INFO_UPDATE_EVENT } from "@/aps/APS" import { UserIcon } from "./UserIcon" +import { Button } from '@mui/base/Button' type ButtonProps = { value: string @@ -30,28 +31,19 @@ const MainHUDButton: React.FC = ({ }) => { if (larger == null) larger = false return ( -
+
+ + {value} + + ) } @@ -86,7 +78,7 @@ const MainHUD: React.FC = () => { {!isOpen && ( +
{ {userInfo ? - } - larger={true} - onClick={() => APS.logout()} - /> + } + larger={true} + onClick={() => APS.logout()} + /> : - } - larger={true} - onClick={() => APS.requestAuthCode()} - /> + } + larger={true} + onClick={() => APS.requestAuthCode()} + /> } diff --git a/fission/src/components/NumberInput.tsx b/fission/src/components/NumberInput.tsx new file mode 100644 index 0000000000..635a87242d --- /dev/null +++ b/fission/src/components/NumberInput.tsx @@ -0,0 +1,74 @@ +import React from "react" +import Label, { LabelSize } from "./Label" +import { Unstable_NumberInput as BaseNumberInput, NumberInputOwnerState, NumberInputProps } from '@mui/base/Unstable_NumberInput' + +const resolveSlotProps = (fn: any, args: any) => + typeof fn === 'function' ? fn(args) : fn; + +type InputProps = { + placeholder: string + defaultValue?: number + label?: string + onInput?: (value: number | null) => void + className?: string +} + +const NumberInput: React.FC = ({ + placeholder, + defaultValue, + label, + onInput, + className, +}) => { + return ( + <> + {label && } + onInput && onInput(val)} + slotProps={{ + root: (ownerState) => { + return { + className: `grid grid-cols-[1fr_8px] grid-rows-2 overflow-hidden rounded-lg text-main-text dark:text-main-text bg-background-secondary border border-solid hover:border-interactive-element-solid dark:hover:border-interactive-element-solid focus-visible:outline-0 p-1 ${ownerState.focused ? 'border-interactive-element-solid dark:border-interactive-element-solid' : 'border-interactive-element-right dark:border-interactive-element-right'}` + } + }, + input: { + className: 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-main-text dark:text-main-text bg-inherit border-0 rounded-[inherit] px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none' + }, + incrementButton: { + children: 'â–´', + className: 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center p-0 w-[19px] h-[19px] col-start-3 col-end-3 row-start-1 row-end-2 border border-solid outline-none text-sm box-border leading-[1.2] rounded-t-md rounded-b-none bg-interactive-secondary border-interactive-element-right dark:border-interactive-element-right bg-background-secondary text-main-text transition-all duration-[120ms] hover:cursor-pointer hover:border-interactive-element-right hover:bg-interactive-hover' + }, + decrementButton: { + children: 'â–¾', + className: 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center p-0 w-[19px] h-[19px] col-start-3 col-end-3 row-start-2 row-end-3 border border-solid outline-none text-sm box-border leading-[1.2] rounded-b-md rounded-t-none border-t-0 border-interactive-element-right dark:border-interactive-element-right bg-background-secondary text-main-text transition-all duration-[120ms] hover:cursor-pointer hover:border-interactive-element-right hover:bg-interactive-hover' + } + }} + /> + + ) +} + +// { +// if ( +// e.key != null && +// numeric && +// !"1234567890,.".includes(e.key) +// ) { +// e.preventDefault() +// } + +// if (validate && !validate(e.key)) e.preventDefault() +// }} +// onChange={e => { +// if (onInput) onInput(e.target.value) +// }} +// className={`bg-interactive-background px-2 py-1 bg-[length:200%_100%] w-min rounded-md font-semibold cursor-pointer placeholder:italic ${className || "" +// }`} +// /> +export default NumberInput diff --git a/fission/src/components/Slider.tsx b/fission/src/components/Slider.tsx index c207fb623c..0a65b447d8 100644 --- a/fission/src/components/Slider.tsx +++ b/fission/src/components/Slider.tsx @@ -1,4 +1,8 @@ import React, { SyntheticEvent, useRef, useState } from "react" +import { Slider as BaseSlider } from '@mui/base/Slider' +import { Mark } from "@mui/base/useSlider" +import Label, { LabelSize } from "./Label" +import { styled } from '@mui/system' type CustomFormatOptions = { prefix?: string @@ -11,6 +15,7 @@ type SliderProps = { max: number defaultValue: number onChange?: (v: number) => void + marks?: Mark[] | boolean step?: number locale?: string format?: Intl.NumberFormatOptions & CustomFormatOptions @@ -23,88 +28,93 @@ const Slider: React.FC = ({ defaultValue, onChange, step, + marks, locale, format, }) => { - const containerRef = useRef(null) - const [value, setValue] = useState(defaultValue) - const [mouseDown, setMouseDown] = useState(false) - - // non-inclusive top - // max += 1 - - if (!locale) { - locale = "en-us" - } - - if (!format) { - format = { - maximumFractionDigits: 0, - prefix: "", - suffix: "", - } - } - if (!format.prefix) { - format.prefix = "" - } - if (!format.suffix) { - format.suffix = "" + const [value, setValue] = useState(defaultValue); + locale ||= "en-us"; + format ||= { + maximumFractionDigits: 0, + prefix: "", + suffix: "", } + format.prefix ||= ""; + format.suffix ||= ""; - const getPercent = () => ((value - min) / (max - min)) * 100 - - const onMouseMove = (e: SyntheticEvent) => { - if (mouseDown) { - const layerX = (e.nativeEvent as MouseEvent).offsetX - const w = containerRef.current!.offsetWidth - let percent = layerX / w - if (step) { - const diff = percent % step - if (diff < step / 2) percent -= diff - else percent += step - diff - } - const v = percent * (max - min) + min - if (onChange) onChange(v) - setValue(v) - } - } - - // TODO thumb is hidden return ( -
-
-

{label}

-

- {format.prefix + - value.toLocaleString(locale, format) + - format.suffix} -

+ <> +
+ +
-
onMouseMove(ev)} - onMouseDown={() => setMouseDown(true)} - onMouseUp={() => setMouseDown(false)} - className="relative w-full h-4 max-w-full cursor-pointer" - > -
-
-
-
-
+ { + if (typeof (value) === "number") { + setValue(value); + onChange && onChange(value); + } + }} + defaultValue={defaultValue} + min={min} + max={max} + step={step} + marks={marks} + slotProps={{ + root: (ownerState) => { + return { + className: `h-1 w-full inline-flex items-center relative touch-none ${ownerState.disabled ? 'text-slate-200 dark:text-slate-200' : 'cursor-pointer text-[#343A40] dark:text-[#343A40]'}` + } + }, + rail: { + className: `block absolute w-full h-[12px] rounded-full bg-current` + }, + track: { + className: `block absolute h-[12px] rounded-full bg-gradient-to-r from-interactive-element-left to-interactive-element-right` + }, + thumb: (ownerState, { active, focused }) => { + return { + className: `display-none` + } + } + }} + /> + ) } +//
+//
+//

{label}

+//

+// {format.prefix + +// value.toLocaleString(locale, format) + +// format.suffix} +//

+//
+//
onMouseMove(ev)} +// onMouseDown={() => setMouseDown(true)} +// onMouseUp={() => setMouseDown(false)} +// className="relative w-full h-4 max-w-full cursor-pointer" +// > +//
+//
+//
+//
+//
+ export default Slider diff --git a/fission/src/components/Toast.tsx b/fission/src/components/Toast.tsx index 430bc5f9cc..5f8776b76b 100644 --- a/fission/src/components/Toast.tsx +++ b/fission/src/components/Toast.tsx @@ -54,9 +54,7 @@ const Toast: React.FC = ({ id, type, title, description }) => { } return ( -
+
{icon}
@@ -70,7 +68,7 @@ const Toast: React.FC = ({ id, type, title, description }) => { size={20} className="text-main-text" /> - +

{title}

{description}

diff --git a/fission/src/modals/configuring/rio-config/RCConfigEncoderModal.tsx b/fission/src/modals/configuring/rio-config/RCConfigEncoderModal.tsx index 5247c45627..51911425a5 100644 --- a/fission/src/modals/configuring/rio-config/RCConfigEncoderModal.tsx +++ b/fission/src/modals/configuring/rio-config/RCConfigEncoderModal.tsx @@ -1,10 +1,11 @@ import React, { useState } from "react" -import Modal, { ModalPropsImpl } from "../../../components/Modal" -import { useModalControlContext } from "../../../ModalContext" +import Modal, { ModalPropsImpl } from "@/components/Modal" +import { useModalControlContext } from "@/ModalContext" import { FaPlus } from "react-icons/fa6" -import Label, { LabelSize } from "../../../components/Label" -import Input from "../../../components/Input" -import Dropdown from "../../../components/Dropdown" +import Label, { LabelSize } from "@/components/Label" +import Input from "@/components/Input" +import Dropdown from "@/components/Dropdown" +import NumberInput from "@/components/NumberInput" const RCConfigEncoderModal: React.FC = ({ modalId }) => { const { openModal } = useModalControlContext() @@ -56,13 +57,12 @@ const RCConfigEncoderModal: React.FC = ({ modalId }) => { options={[...Array(numPorts).keys()].map(n => n.toString())} onSelect={s => setSelectedChannelB(parseInt(s))} /> - { - setConversionFactor(n != "" ? parseFloat(n) : 0) + setConversionFactor(n || 0) }} /> diff --git a/fission/src/panels/configuring/scoring/ZoneConfigPanel.tsx b/fission/src/panels/configuring/scoring/ZoneConfigPanel.tsx index e92c73d689..dc0b9d0cbd 100644 --- a/fission/src/panels/configuring/scoring/ZoneConfigPanel.tsx +++ b/fission/src/panels/configuring/scoring/ZoneConfigPanel.tsx @@ -5,6 +5,7 @@ import Button from "@/components/Button" import SelectButton from "@/components/SelectButton" import Checkbox from "@/components/Checkbox" import Slider from "@/components/Slider" +import NumberInput from "@/components/NumberInput" export type ScoringZone = { name: string @@ -40,18 +41,17 @@ const ZoneConfigPanel: React.FC = ({ panelId }) => { alliance[0].toUpperCase() + alliance.substring(1) } Alliance`} onClick={() => setAlliance(alliance == "blue" ? "red" : "blue")} - colorClass={`bg-match-${alliance}-alliance`} + colorOverrideClass={`bg-match-${alliance}-alliance`} /> setParent(p)} /> - setPoints(parseInt(v))} - numeric + defaultValue={1} + onInput={v => setPoints(v || 1)} /> Date: Tue, 18 Jun 2024 10:33:45 -0700 Subject: [PATCH 02/15] fixed checkbox style --- fission/src/components/Checkbox.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/fission/src/components/Checkbox.tsx b/fission/src/components/Checkbox.tsx index 2145327839..3605c6d341 100644 --- a/fission/src/components/Checkbox.tsx +++ b/fission/src/components/Checkbox.tsx @@ -30,20 +30,18 @@ const Checkbox: React.FC = ({ onChange={(e: React.ChangeEvent) => onClick && onClick(e.target.checked)} slotProps={{ root: { - className: `group relative inline-block w-[38px] h-[24px] m-2.5 cursor-pointer` + className: `group relative inline-block w-[24px] h-[24px] m-2.5 cursor-pointer` }, input: { className: `cursor-inherit absolute w-full h-full top-0 left-0 opacity-0 z-10 border-none` }, track: (ownerState) => { return { - className: `absolute block w-full h-full transition rounded-full border border-solid outline-none border-slate-300 dark:border-gray-700 group-[.base--focusVisible]:shadow-outline-switch ${ownerState.checked ? 'bg-purple-500' : 'bg-slate-100 dark:bg-slate-900 hover:bg-slate-200 dark:hover:bg-slate-800'}` + className: `absolute block w-full h-full transition rounded-full border border-solid outline-none border-interactive-element-right dark:border-interactive-element-right group-[.base--focusVisible]:shadow-outline-switch ${ownerState.checked ? 'bg-gradient-to-br from-interactive-element-left to-interactive-element-right' : 'bg-background-secondary'}` } }, - thumb: (ownerState) => { - return { - className: `block w-4 h-4 top-1 rounded-2xl border border-solid outline-none border-slate-300 dark:border-gray-700 transition shadow-[0_1px_2px_rgb(0_0_0_/_0.1)] dark:shadow-[0_1px_2px_rgb(0_0_0_/_0.25)] ${ownerState.checked ? 'left-[18px] bg-white shadow-[0_0_0_rgb(0_0_0_/_0.3)]' : 'left-[4px] bg-white'} relative transition-all` - } + thumb: { + className: `display-none` } }} /> From da8fdbcf8efca9d22fb8f2a0bff7fd6609587eff Mon Sep 17 00:00:00 2001 From: PepperLola Date: Tue, 18 Jun 2024 10:34:04 -0700 Subject: [PATCH 03/15] fixed panel background --- fission/src/components/Panel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fission/src/components/Panel.tsx b/fission/src/components/Panel.tsx index 7605e21942..ad7d452c74 100644 --- a/fission/src/components/Panel.tsx +++ b/fission/src/components/Panel.tsx @@ -56,7 +56,7 @@ const Panel: React.FC = ({ return (
{name && (