mirror of
https://github.com/spacedriveapp/spacedrive
synced 2024-07-08 06:02:49 +00:00
styled explorer top bar
This commit is contained in:
parent
2f105e9bb6
commit
da344f954c
3
packages/assets/svgs/caret.svg
Normal file
3
packages/assets/svgs/caret.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<svg width="32" height="21" viewBox="0 0 32 21" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.4833 20.6496C15.2826 20.8018 14.0268 20.4168 13.1047 19.4947L1.18723 7.57729C-0.395744 5.99431 -0.395744 3.42781 1.18723 1.84484C2.7702 0.261866 5.3367 0.261864 6.91968 1.84484L15.9965 10.9217L25.0803 1.83789C26.6633 0.254917 29.2298 0.254917 30.8128 1.83789C32.3957 3.42086 32.3957 5.98737 30.8128 7.57034L18.8953 19.4878C18.2195 20.1636 17.3646 20.5508 16.4833 20.6496Z" fill="currentColor"/>
|
||||
</svg>
|
After Width: | Height: | Size: 559 B |
|
@ -26,49 +26,48 @@ import { Tooltip } from '../tooltip/Tooltip';
|
|||
import { ExplorerOptionsPanel } from './ExplorerOptionsPanel';
|
||||
|
||||
export interface TopBarButtonProps {
|
||||
icon: React.ComponentType<IconProps>;
|
||||
group?: boolean;
|
||||
children: React.ReactNode;
|
||||
rounding?: 'none' | 'left' | 'right' | 'both';
|
||||
active?: boolean;
|
||||
left?: boolean;
|
||||
right?: boolean;
|
||||
className?: string;
|
||||
onClick?: () => void;
|
||||
}
|
||||
|
||||
// export const TopBarIcon = (icon: any) => tw(icon)`m-0.5 w-5 h-5 text-ink-dull`;
|
||||
|
||||
const topBarButtonStyle = cva(
|
||||
'mr-[1px] flex py-0.5 px-0.5 text-md font-medium rounded-md transition-colors duration-100 outline-none hover:bg-app-selected',
|
||||
'border-none text-ink-dull hover:text-ink mr-[1px] flex py-0.5 px-0.5 text-md font-medium transition-colors duration-100 outline-none hover:bg-app-selected radix-state-open:bg-app-selected',
|
||||
{
|
||||
variants: {
|
||||
active: {
|
||||
true: 'bg-app-selected',
|
||||
false: 'bg-transparent'
|
||||
},
|
||||
group: {
|
||||
true: 'rounded-l-none rounded-r-none'
|
||||
},
|
||||
left: {
|
||||
true: 'rounded-l-md'
|
||||
},
|
||||
right: {
|
||||
true: 'rounded-r-md'
|
||||
rounding: {
|
||||
none: 'rounded-none',
|
||||
left: 'rounded-l-md rounded-r-none',
|
||||
right: 'rounded-r-md rounded-l-none',
|
||||
both: 'rounded-md'
|
||||
}
|
||||
},
|
||||
defaultVariants: {
|
||||
active: false,
|
||||
rounding: 'both'
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
const TOP_BAR_ICON_STYLE = 'm-0.5 w-5 h-5 text-ink-dull';
|
||||
|
||||
const TopBarButton = forwardRef<HTMLButtonElement, TopBarButtonProps>(
|
||||
({ icon: Icon, left, right, group, active, className, ...props }, ref) => {
|
||||
({ rounding, active, className, ...props }, ref) => {
|
||||
return (
|
||||
<Button
|
||||
{...props}
|
||||
ref={ref}
|
||||
className={clsx(
|
||||
'border-none',
|
||||
topBarButtonStyle({ left, right, group, active }),
|
||||
className
|
||||
)}
|
||||
className={clsx(topBarButtonStyle({ rounding, active }), className)}
|
||||
>
|
||||
<Icon weight={'regular'} className="m-0.5 w-5 h-5 text-ink-dull" />
|
||||
{props.children}
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
|
@ -203,10 +202,6 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
|
|||
<>
|
||||
<div
|
||||
data-tauri-drag-region
|
||||
// Backdrop blur was removed
|
||||
// but the explorer still resides under the top bar
|
||||
// in case you wanna turn it back on
|
||||
// honestly its just work to revert
|
||||
className={clsx(
|
||||
'flex h-[2.95rem] -mt-0.5 max-w z-10 pl-3 flex-shrink-0 items-center border-transparent border-b app-background overflow-hidden transition-[background-color] transition-[border-color] duration-250 ease-out',
|
||||
props.showSeparator && 'top-bar-blur'
|
||||
|
@ -214,10 +209,14 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
|
|||
>
|
||||
<div className="flex">
|
||||
<Tooltip label="Navigate back">
|
||||
<TopBarButton icon={ChevronLeftIcon} onClick={() => navigate(-1)} />
|
||||
<TopBarButton onClick={() => navigate(-1)}>
|
||||
<ChevronLeftIcon className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
<Tooltip label="Navigate forward">
|
||||
<TopBarButton icon={ChevronRightIcon} onClick={() => navigate(1)} />
|
||||
<TopBarButton onClick={() => navigate(1)}>
|
||||
<ChevronRightIcon className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
|
@ -231,30 +230,31 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
|
|||
<div className="flex mx-8">
|
||||
<Tooltip label="Grid view">
|
||||
<TopBarButton
|
||||
group
|
||||
left
|
||||
rounding="left"
|
||||
active={store.layoutMode === 'grid'}
|
||||
icon={SquaresFour}
|
||||
onClick={() => (getExplorerStore().layoutMode = 'grid')}
|
||||
/>
|
||||
>
|
||||
<SquaresFour className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
<Tooltip label="List view">
|
||||
<TopBarButton
|
||||
group
|
||||
rounding="none"
|
||||
active={store.layoutMode === 'list'}
|
||||
icon={Rows}
|
||||
onClick={() => (getExplorerStore().layoutMode = 'list')}
|
||||
/>
|
||||
>
|
||||
<Rows className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip label="Media view">
|
||||
<TopBarButton
|
||||
group
|
||||
right
|
||||
rounding="right"
|
||||
active={store.layoutMode === 'media'}
|
||||
icon={MonitorPlay}
|
||||
onClick={() => (getExplorerStore().layoutMode = 'media')}
|
||||
/>
|
||||
>
|
||||
<MonitorPlay className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
|
@ -265,23 +265,32 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
|
|||
className="focus:outline-none"
|
||||
trigger={
|
||||
// <Tooltip label="Major Key Alert">
|
||||
<TopBarButton icon={Key} />
|
||||
<TopBarButton>
|
||||
<Key className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
// </Tooltip>
|
||||
}
|
||||
>
|
||||
<div className="block w-[350px]">
|
||||
<KeyManager />
|
||||
<KeyManager className={TOP_BAR_ICON_STYLE} />
|
||||
</div>
|
||||
</OverlayPanel>
|
||||
<Tooltip label="Tag Assign Mode">
|
||||
<TopBarButton
|
||||
onClick={() => (getExplorerStore().tagAssignMode = !store.tagAssignMode)}
|
||||
active={store.tagAssignMode}
|
||||
icon={store.tagAssignMode ? TagIconSolid : TagIcon}
|
||||
/>
|
||||
>
|
||||
{store.tagAssignMode ? (
|
||||
<TagIconSolid className={TOP_BAR_ICON_STYLE} />
|
||||
) : (
|
||||
<TagIcon className={TOP_BAR_ICON_STYLE} />
|
||||
)}
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
<Tooltip label="Refresh">
|
||||
<TopBarButton icon={ArrowsClockwise} />
|
||||
<TopBarButton>
|
||||
<ArrowsClockwise className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -290,7 +299,9 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
|
|||
className="focus:outline-none"
|
||||
trigger={
|
||||
// <Tooltip label="Major Key Alert">
|
||||
<TopBarButton icon={List} className="my-2" />
|
||||
<TopBarButton className="my-2">
|
||||
<List className={TOP_BAR_ICON_STYLE} />
|
||||
</TopBarButton>
|
||||
// </Tooltip>
|
||||
}
|
||||
>
|
||||
|
@ -302,8 +313,13 @@ export const TopBar: React.FC<TopBarProps> = (props) => {
|
|||
active={store.showInspector}
|
||||
onClick={() => (getExplorerStore().showInspector = !store.showInspector)}
|
||||
className="my-2"
|
||||
icon={SidebarSimple}
|
||||
/>
|
||||
>
|
||||
{store.showInspector ? (
|
||||
<SidebarSimple className={TOP_BAR_ICON_STYLE} />
|
||||
) : (
|
||||
<SidebarSimple className={TOP_BAR_ICON_STYLE} />
|
||||
)}
|
||||
</TopBarButton>
|
||||
{/* <Dropdown
|
||||
// className="absolute block h-6 w-44 top-2 right-4"
|
||||
align="right"
|
||||
|
|
|
@ -11,7 +11,7 @@ export function KeyMounter() {
|
|||
const ref = useRef<HTMLInputElement>(null);
|
||||
|
||||
const [showKey, setShowKey] = useState(false);
|
||||
const [toggle, setToggle] = useState(false);
|
||||
const [toggle, setToggle] = useState(true);
|
||||
|
||||
const [key, setKey] = useState('');
|
||||
const [encryptionAlgo, setEncryptionAlgo] = useState('XChaCha20Poly1305');
|
||||
|
@ -58,20 +58,8 @@ export function KeyMounter() {
|
|||
checked={toggle}
|
||||
onCheckedChange={setToggle}
|
||||
/>
|
||||
<Switch
|
||||
className="bg-app-selected"
|
||||
size="md"
|
||||
checked={toggle}
|
||||
onCheckedChange={setToggle}
|
||||
/>
|
||||
<Switch
|
||||
className="bg-app-selected"
|
||||
size="lg"
|
||||
checked={toggle}
|
||||
onCheckedChange={setToggle}
|
||||
/>
|
||||
</div>
|
||||
<span className="ml-3 mt-[1px] font-medium text-xs">Sync with Library</span>
|
||||
<span className="ml-3 text-xs font-medium">Sync with Library</span>
|
||||
<Tooltip label="This key will be mounted on all devices running your Library">
|
||||
<InformationCircleIcon className="w-4 h-4 ml-1.5 text-ink-faint" />
|
||||
</Tooltip>
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
import { CogIcon, LockClosedIcon, PhotoIcon } from '@heroicons/react/24/outline';
|
||||
import { CogIcon, LockClosedIcon } from '@heroicons/react/24/outline';
|
||||
import { PlusIcon } from '@heroicons/react/24/solid';
|
||||
import { useCurrentLibrary, useLibraryMutation, useLibraryQuery, usePlatform } from '@sd/client';
|
||||
import { LocationCreateArgs } from '@sd/client';
|
||||
import { Button, CategoryHeading, Dropdown, OverlayPanel, cva } from '@sd/ui';
|
||||
import { restyle } from '@sd/ui';
|
||||
import { tw } from '@sd/ui';
|
||||
import clsx from 'clsx';
|
||||
import {
|
||||
CheckCircle,
|
||||
CirclesFour,
|
||||
Hexagon,
|
||||
Planet,
|
||||
ShareNetwork,
|
||||
WaveTriangle
|
||||
} from 'phosphor-react';
|
||||
import { PropsWithChildren, forwardRef } from 'react';
|
||||
LocationCreateArgs,
|
||||
useCurrentLibrary,
|
||||
useLibraryMutation,
|
||||
useLibraryQuery,
|
||||
usePlatform
|
||||
} from '@sd/client';
|
||||
import { Button, CategoryHeading, Dropdown, OverlayPanel, cva, tw } from '@sd/ui';
|
||||
import clsx from 'clsx';
|
||||
import { CheckCircle, CirclesFour, Planet, ShareNetwork } from 'phosphor-react';
|
||||
import { PropsWithChildren } from 'react';
|
||||
import { NavLink, NavLinkProps, useNavigate } from 'react-router-dom';
|
||||
|
||||
import { useOperatingSystem } from '../../hooks/useOperatingSystem';
|
||||
|
@ -178,7 +174,7 @@ export function Sidebar() {
|
|||
variant="gray"
|
||||
className={clsx(
|
||||
`w-full mb-1 mt-1 -mr-0.5 shadow-xs rounded`,
|
||||
`!bg-sidebar-box !border-sidebar-line hover:!border-sidebar-selected !text-ink`,
|
||||
`bg-sidebar-button border-sidebar-line active:bg-sidebar-button hover:!border-sidebar-selected text-ink`,
|
||||
(library === null || isLoadingLibraries) && '!text-ink-faint',
|
||||
macOnly(os, '!bg-opacity-80 !border-opacity-40')
|
||||
)}
|
||||
|
|
|
@ -14,7 +14,8 @@ body {
|
|||
.has-blur-effects {
|
||||
.app-background {
|
||||
// adjust macOS blur intensity here
|
||||
@apply bg-app/[0.88];
|
||||
// @apply bg-app/[0.88];
|
||||
@apply bg-app;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@headlessui/react": "^1.7.3",
|
||||
"@headlessui/tailwindcss": "^0.1.1",
|
||||
"@heroicons/react": "^2.0.12",
|
||||
"@radix-ui/react-context-menu": "^1.0.0",
|
||||
"@radix-ui/react-dialog": "^1.0.0",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { Menu, Transition } from '@headlessui/react';
|
||||
import { ChevronDownIcon } from '@heroicons/react/24/solid';
|
||||
import { ReactComponent as CaretDown } from '@sd/assets/svgs/caret.svg';
|
||||
import { VariantProps, cva } from 'class-variance-authority';
|
||||
import clsx from 'clsx';
|
||||
import { Fragment, PropsWithChildren } from 'react';
|
||||
|
@ -11,7 +11,7 @@ import { tw } from './utils';
|
|||
export const Section = tw.div`px-1 py-1 space-y-[2px]`;
|
||||
|
||||
const itemStyles = cva(
|
||||
'text-sm group flex grow shrink-0 rounded items-center w-full whitespace-nowrap px-2 py-1 mb-[2px] disabled:opacity-50 disabled:cursor-not-allowed',
|
||||
'text-sm group flex grow shrink-0 rounded items-center w-full whitespace-nowrap px-2 py-1 mb-[2px] disabled:opacity-50 disabled:cursor-not-allowed',
|
||||
{
|
||||
variants: {
|
||||
selected: {
|
||||
|
@ -21,19 +21,13 @@ const itemStyles = cva(
|
|||
},
|
||||
active: {
|
||||
true: ''
|
||||
// false: 'text-gray-900 dark:text-gray-200'
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
const itemIconStyles = cva('mr-2 w-4 h-4', {
|
||||
variants: {
|
||||
// active: {
|
||||
// // true: 'dark:text-ink-dull'
|
||||
// // false: 'text-gray-600 dark:text-gray-200'
|
||||
// }
|
||||
}
|
||||
variants: {}
|
||||
});
|
||||
|
||||
type DropdownItemProps =
|
||||
|
@ -69,7 +63,10 @@ export const Button = ({ children, className, ...props }: UI.ButtonProps) => {
|
|||
<UI.Button size="sm" {...props} className={clsx('flex text-left', className)}>
|
||||
{children}
|
||||
<span className="flex-grow" />
|
||||
<ChevronDownIcon className="w-5 h-5" aria-hidden="true" />
|
||||
<CaretDown
|
||||
className="w-[10px] text-ink-dull transition-transform ui-open:rotate-180"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</UI.Button>
|
||||
);
|
||||
};
|
||||
|
@ -99,7 +96,7 @@ export const Root = (props: PropsWithChildren<DropdownRootProps>) => {
|
|||
>
|
||||
<Menu.Items
|
||||
className={clsx(
|
||||
'absolute z-50 min-w-fit w-full border divide-y divide-app-border/50 rounded shadow-xl top-full ring-1 ring-black ring-opacity-5 focus:outline-none bg-app-box border-app-border',
|
||||
'absolute z-50 min-w-fit w-full border divide-y divide-app-line/50 rounded shadow-xl top-full ring-1 ring-black ring-opacity-5 focus:outline-none bg-app-box border-app-border',
|
||||
props.itemsClassName,
|
||||
{ 'left-0': props.align === 'left' },
|
||||
{ 'right-0': props.align === 'right' }
|
||||
|
|
|
@ -29,7 +29,7 @@ export function Select(props: PropsWithChildren<SelectProps>) {
|
|||
</span>
|
||||
|
||||
<SelectPrimitive.Icon>
|
||||
<ChevronDouble className="w-3 h-3 mr-0.5 text-gray-300" />
|
||||
<ChevronDouble className="w-3 h-3 mr-0.5 text-ink-dull" />
|
||||
</SelectPrimitive.Icon>
|
||||
</SelectPrimitive.Trigger>
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ const thumbStyles = cva(
|
|||
{
|
||||
variants: {
|
||||
size: {
|
||||
sm: 'w-[12px] h-[12px] radix-state-checked:translate-x-[15px]',
|
||||
sm: 'w-[12px] h-[12px] radix-state-checked:translate-x-[14px]',
|
||||
md: 'w-[19px] h-[19px] radix-state-checked:translate-x-[20px]',
|
||||
lg: 'w-6 h-6 radix-state-checked:translate-x-[23px]'
|
||||
}
|
||||
|
|
|
@ -13,5 +13,5 @@ export const List = tw(TabsPrimitive.TabsList)`
|
|||
`;
|
||||
|
||||
export const Trigger = tw(TabsPrimitive.TabsTrigger)`
|
||||
px-1.5 py-0.5 rounded text-sm font-medium radix-state-active:bg-accent radix-state-active:text-white
|
||||
px-2 py-0.5 rounded-full text-sm font-medium radix-state-active:bg-app-selected
|
||||
`;
|
||||
|
|
|
@ -53,15 +53,15 @@
|
|||
--color-sidebar: 230, 15%, 7%;
|
||||
--color-sidebar-box: 230, 15%, 13%;
|
||||
--color-sidebar-line: 230, 15%, 23%;
|
||||
--color-sidebar-divider: 230, 15%, 23%;
|
||||
--color-sidebar-button: 230, 15%, 23%;
|
||||
--color-sidebar-selected: 230, 15%, 16%;
|
||||
--color-sidebar-divider: 230, 15%, 17%;
|
||||
--color-sidebar-button: 230, 15%, 17%;
|
||||
--color-sidebar-selected: 230, 15%, 22%;
|
||||
--color-sidebar-separator: 230, 15%, 23%;
|
||||
--color-sidebar-shade: 230, 15%, 23%;
|
||||
// main
|
||||
--color-app: 230, 15%, 13%;
|
||||
--color-app-box: 230, 15%, 20%;
|
||||
--color-app-overlay: 230, 14%, 17%;
|
||||
--color-app-overlay: 230, 15%, 14%;
|
||||
--color-app-input: 230, 15%, 20%;
|
||||
--color-app-focus: 230, 15%, 10%;
|
||||
--color-app-line: 230, 15%, 26%;
|
||||
|
|
|
@ -107,10 +107,11 @@ module.exports = function (app, options) {
|
|||
},
|
||||
plugins: [
|
||||
require('@tailwindcss/forms'),
|
||||
plugin(({ addVariant }) => {
|
||||
addVariant('open', '&[data-state="open"]');
|
||||
addVariant('closed', '&[data-state="closed"]');
|
||||
}),
|
||||
// plugin(({ addVariant }) => {
|
||||
// addVariant('open', '&[data-state="open"]');
|
||||
// addVariant('closed', '&[data-state="closed"]');
|
||||
// }),
|
||||
require('@headlessui/tailwindcss'),
|
||||
require('tailwindcss-radix')()
|
||||
]
|
||||
};
|
||||
|
|
123
pnpm-lock.yaml
123
pnpm-lock.yaml
|
@ -518,6 +518,7 @@ importers:
|
|||
specifiers:
|
||||
'@babel/core': ^7.19.3
|
||||
'@headlessui/react': ^1.7.3
|
||||
'@headlessui/tailwindcss': ^0.1.1
|
||||
'@heroicons/react': ^2.0.12
|
||||
'@radix-ui/react-context-menu': ^1.0.0
|
||||
'@radix-ui/react-dialog': ^1.0.0
|
||||
|
@ -565,6 +566,7 @@ importers:
|
|||
typescript: ^4.8.4
|
||||
dependencies:
|
||||
'@headlessui/react': 1.7.3_biqbaboplfbrettd7655fr4n2y
|
||||
'@headlessui/tailwindcss': 0.1.1_xkowlklhtk6sfvtndbucb3hfiy
|
||||
'@heroicons/react': 2.0.12_react@18.2.0
|
||||
'@radix-ui/react-context-menu': 1.0.0_rj7ozvcq3uehdlnj3cbwzbi5ce
|
||||
'@radix-ui/react-dialog': 1.0.2_rj7ozvcq3uehdlnj3cbwzbi5ce
|
||||
|
@ -610,7 +612,7 @@ importers:
|
|||
storybook: 6.5.12_yalvw3r2waubxycyb7k7qsruca
|
||||
storybook-tailwind-dark-mode: 1.0.15_biqbaboplfbrettd7655fr4n2y
|
||||
style-loader: 3.3.1
|
||||
tailwindcss: 3.1.8_postcss@8.4.18
|
||||
tailwindcss: 3.1.8
|
||||
typescript: 4.8.4
|
||||
|
||||
packages:
|
||||
|
@ -2148,8 +2150,8 @@ packages:
|
|||
'@cspell/dict-docker': 1.1.1
|
||||
'@cspell/dict-dotnet': 2.0.1
|
||||
'@cspell/dict-elixir': 2.0.1
|
||||
'@cspell/dict-en-gb': 1.1.33
|
||||
'@cspell/dict-en_us': 2.3.3
|
||||
'@cspell/dict-en-gb': 1.1.33
|
||||
'@cspell/dict-filetypes': 2.1.1
|
||||
'@cspell/dict-fonts': 2.1.0
|
||||
'@cspell/dict-fullstack': 2.0.6
|
||||
|
@ -2940,6 +2942,17 @@ packages:
|
|||
react-dom: 18.2.0_react@18.2.0
|
||||
dev: false
|
||||
|
||||
/@headlessui/tailwindcss/0.1.1_xkowlklhtk6sfvtndbucb3hfiy:
|
||||
resolution: {integrity: sha512-MJbc/MG1iVDow0IQYdsZNVY2xiTa2fDpXLF01xIAyNH6M+Ks0c6X0k3x6PqAvwvKWKEFhS0MlMzrDUVTU6cXDA==}
|
||||
engines: {node: '>=10'}
|
||||
dependencies:
|
||||
tailwindcss: 0.0.0-insiders.fe08e91_xkowlklhtk6sfvtndbucb3hfiy
|
||||
transitivePeerDependencies:
|
||||
- autoprefixer
|
||||
- postcss
|
||||
- ts-node
|
||||
dev: false
|
||||
|
||||
/@heroicons/react/2.0.12_react@18.2.0:
|
||||
resolution: {integrity: sha512-FZxKh3i9aKIDxyALTgIpSF2t6V6/eZfF5mRu41QlwkX3Oxzecdm1u6dpft6PQGxIBwO7TKYWaMAYYL8mp/EaOg==}
|
||||
peerDependencies:
|
||||
|
@ -6650,7 +6663,7 @@ packages:
|
|||
tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
|
||||
dependencies:
|
||||
mini-svg-data-uri: 1.4.4
|
||||
tailwindcss: 3.1.8_postcss@8.4.18
|
||||
tailwindcss: 3.1.8
|
||||
dev: false
|
||||
|
||||
/@tailwindcss/line-clamp/0.4.2:
|
||||
|
@ -6664,7 +6677,7 @@ packages:
|
|||
peerDependencies:
|
||||
tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1'
|
||||
dependencies:
|
||||
tailwindcss: 3.1.8_postcss@8.4.18
|
||||
tailwindcss: 3.1.8
|
||||
dev: true
|
||||
|
||||
/@tailwindcss/typography/0.5.7:
|
||||
|
@ -6687,7 +6700,7 @@ packages:
|
|||
lodash.isplainobject: 4.0.6
|
||||
lodash.merge: 4.6.2
|
||||
postcss-selector-parser: 6.0.10
|
||||
tailwindcss: 3.1.8_postcss@8.4.18
|
||||
tailwindcss: 3.1.8
|
||||
dev: true
|
||||
|
||||
/@tanstack/match-sorter-utils/8.5.14:
|
||||
|
@ -7254,7 +7267,6 @@ packages:
|
|||
|
||||
/@types/parse-json/4.0.0:
|
||||
resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
|
||||
dev: true
|
||||
|
||||
/@types/parse5/5.0.3:
|
||||
resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==}
|
||||
|
@ -8510,7 +8522,6 @@ packages:
|
|||
picocolors: 1.0.0
|
||||
postcss: 8.4.18
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/autoprefixer/9.8.8:
|
||||
resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==}
|
||||
|
@ -9428,7 +9439,6 @@ packages:
|
|||
/callsites/3.1.0:
|
||||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/camel-case/4.1.2:
|
||||
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
|
||||
|
@ -10142,7 +10152,6 @@ packages:
|
|||
parse-json: 5.2.0
|
||||
path-type: 4.0.0
|
||||
yaml: 1.10.2
|
||||
dev: true
|
||||
|
||||
/cp-file/7.0.0:
|
||||
resolution: {integrity: sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==}
|
||||
|
@ -13776,7 +13785,6 @@ packages:
|
|||
dependencies:
|
||||
parent-module: 1.0.1
|
||||
resolve-from: 4.0.0
|
||||
dev: true
|
||||
|
||||
/import-lazy/2.1.0:
|
||||
resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==}
|
||||
|
@ -14750,7 +14758,6 @@ packages:
|
|||
|
||||
/json-parse-even-better-errors/2.3.1:
|
||||
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
|
||||
dev: true
|
||||
|
||||
/json-schema-deref-sync/0.13.0:
|
||||
resolution: {integrity: sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==}
|
||||
|
@ -16369,6 +16376,11 @@ packages:
|
|||
define-property: 0.2.5
|
||||
kind-of: 3.2.2
|
||||
|
||||
/object-hash/2.2.0:
|
||||
resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
|
||||
engines: {node: '>= 6'}
|
||||
dev: false
|
||||
|
||||
/object-hash/3.0.0:
|
||||
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
|
||||
engines: {node: '>= 6'}
|
||||
|
@ -16802,7 +16814,6 @@ packages:
|
|||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
callsites: 3.1.0
|
||||
dev: true
|
||||
|
||||
/parent-module/2.0.0:
|
||||
resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==}
|
||||
|
@ -16873,7 +16884,6 @@ packages:
|
|||
error-ex: 1.3.2
|
||||
json-parse-even-better-errors: 2.3.1
|
||||
lines-and-columns: 1.2.4
|
||||
dev: true
|
||||
|
||||
/parse-png/2.1.0:
|
||||
resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==}
|
||||
|
@ -17192,16 +17202,6 @@ packages:
|
|||
postcss: 7.0.39
|
||||
dev: true
|
||||
|
||||
/postcss-import/14.1.0:
|
||||
resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
peerDependencies:
|
||||
postcss: ^8.0.0
|
||||
dependencies:
|
||||
postcss-value-parser: 4.2.0
|
||||
read-cache: 1.0.0
|
||||
resolve: 1.22.1
|
||||
|
||||
/postcss-import/14.1.0_postcss@8.4.18:
|
||||
resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
|
@ -17213,14 +17213,6 @@ packages:
|
|||
read-cache: 1.0.0
|
||||
resolve: 1.22.1
|
||||
|
||||
/postcss-js/4.0.0:
|
||||
resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
|
||||
engines: {node: ^12 || ^14 || >= 16}
|
||||
peerDependencies:
|
||||
postcss: ^8.3.3
|
||||
dependencies:
|
||||
camelcase-css: 2.0.1
|
||||
|
||||
/postcss-js/4.0.0_postcss@8.4.18:
|
||||
resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
|
||||
engines: {node: ^12 || ^14 || >= 16}
|
||||
|
@ -17230,21 +17222,6 @@ packages:
|
|||
camelcase-css: 2.0.1
|
||||
postcss: 8.4.18
|
||||
|
||||
/postcss-load-config/3.1.4:
|
||||
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
|
||||
engines: {node: '>= 10'}
|
||||
peerDependencies:
|
||||
postcss: '>=8.0.9'
|
||||
ts-node: '>=9.0.0'
|
||||
peerDependenciesMeta:
|
||||
postcss:
|
||||
optional: true
|
||||
ts-node:
|
||||
optional: true
|
||||
dependencies:
|
||||
lilconfig: 2.0.6
|
||||
yaml: 1.10.2
|
||||
|
||||
/postcss-load-config/3.1.4_postcss@8.4.18:
|
||||
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
|
||||
engines: {node: '>= 10'}
|
||||
|
@ -17378,14 +17355,6 @@ packages:
|
|||
postcss: 8.4.18
|
||||
dev: true
|
||||
|
||||
/postcss-nested/5.0.6:
|
||||
resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
|
||||
engines: {node: '>=12.0'}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.14
|
||||
dependencies:
|
||||
postcss-selector-parser: 6.0.10
|
||||
|
||||
/postcss-nested/5.0.6_postcss@8.4.18:
|
||||
resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
|
||||
engines: {node: '>=12.0'}
|
||||
|
@ -18793,7 +18762,6 @@ packages:
|
|||
/resolve-from/4.0.0:
|
||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/resolve-from/5.0.0:
|
||||
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
|
||||
|
@ -20182,12 +20150,44 @@ packages:
|
|||
resolution: {integrity: sha512-32gv65ommaEMPKRS9yPmbvc6QcV+LsAqtSe1RFindBctVpS6+SbmkfcdecW/zgRvHW7KeAgl3iyzq2ZmRqsdZQ==}
|
||||
dev: false
|
||||
|
||||
/tailwindcss/0.0.0-insiders.fe08e91_xkowlklhtk6sfvtndbucb3hfiy:
|
||||
resolution: {integrity: sha512-W8rB1l3I1xEHJGnPGXqzeuq81F+AKGH+sn3c1jiH+Ydp7vyn/KhNr7niwe5e2MA538NUhtqlGL2wOeJlvXD2pw==}
|
||||
engines: {node: '>=12.13.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
autoprefixer: ^10.0.2
|
||||
postcss: ^8.0.9
|
||||
dependencies:
|
||||
arg: 5.0.2
|
||||
autoprefixer: 10.4.12_postcss@8.4.18
|
||||
chalk: 4.1.2
|
||||
chokidar: 3.5.3
|
||||
color-name: 1.1.4
|
||||
cosmiconfig: 7.0.1
|
||||
detective: 5.2.1
|
||||
didyoumean: 1.2.2
|
||||
dlv: 1.1.3
|
||||
fast-glob: 3.2.12
|
||||
glob-parent: 6.0.2
|
||||
is-glob: 4.0.3
|
||||
normalize-path: 3.0.0
|
||||
object-hash: 2.2.0
|
||||
postcss: 8.4.18
|
||||
postcss-js: 4.0.0_postcss@8.4.18
|
||||
postcss-load-config: 3.1.4_postcss@8.4.18
|
||||
postcss-nested: 5.0.6_postcss@8.4.18
|
||||
postcss-selector-parser: 6.0.10
|
||||
postcss-value-parser: 4.2.0
|
||||
quick-lru: 5.1.1
|
||||
resolve: 1.22.1
|
||||
transitivePeerDependencies:
|
||||
- ts-node
|
||||
dev: false
|
||||
|
||||
/tailwindcss/3.1.8:
|
||||
resolution: {integrity: sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==}
|
||||
engines: {node: '>=12.13.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
postcss: ^8.0.9
|
||||
dependencies:
|
||||
arg: 5.0.2
|
||||
chokidar: 3.5.3
|
||||
|
@ -20203,10 +20203,10 @@ packages:
|
|||
object-hash: 3.0.0
|
||||
picocolors: 1.0.0
|
||||
postcss: 8.4.18
|
||||
postcss-import: 14.1.0
|
||||
postcss-js: 4.0.0
|
||||
postcss-load-config: 3.1.4
|
||||
postcss-nested: 5.0.6
|
||||
postcss-import: 14.1.0_postcss@8.4.18
|
||||
postcss-js: 4.0.0_postcss@8.4.18
|
||||
postcss-load-config: 3.1.4_postcss@8.4.18
|
||||
postcss-nested: 5.0.6_postcss@8.4.18
|
||||
postcss-selector-parser: 6.0.10
|
||||
postcss-value-parser: 4.2.0
|
||||
quick-lru: 5.1.1
|
||||
|
@ -20245,6 +20245,7 @@ packages:
|
|||
resolve: 1.22.1
|
||||
transitivePeerDependencies:
|
||||
- ts-node
|
||||
dev: true
|
||||
|
||||
/tapable/1.1.3:
|
||||
resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
|
||||
|
|
Loading…
Reference in a new issue