diff --git a/demo/src/app/app-routes.tsx b/demo/src/app/app-routes.tsx index 3806af4..2cabba7 100644 --- a/demo/src/app/app-routes.tsx +++ b/demo/src/app/app-routes.tsx @@ -1,4 +1,5 @@ -import { useRoutes } from 'react-router-dom' +import { UiThemeLink } from '@pubkey-ui/core' +import { Link, useRoutes } from 'react-router-dom' import { HomeRoutes } from './home/feature' export function AppRoutes() { @@ -7,3 +8,5 @@ export function AppRoutes() { { index: true, element: }, ]) } + +export const ThemeLink: UiThemeLink = ({ children, ...props }) => {children} diff --git a/demo/src/app/app.tsx b/demo/src/app/app.tsx index f3b99e1..6b58531 100644 --- a/demo/src/app/app.tsx +++ b/demo/src/app/app.tsx @@ -1,12 +1,13 @@ -import './ui/theme/styles' +import { UiLayout, UiThemeProvider } from '@pubkey-ui/core' import { AppRoutes } from './app-routes' -import { UiHeader, UiThemeProvider } from './ui' +import { UiAppHeader } from './ui/header/ui-app-header' export function App() { return ( - - + }> + + ) } diff --git a/demo/src/app/home/feature/home-feature.tsx b/demo/src/app/home/feature/home-feature.tsx index b7e1dbc..d6375c6 100644 --- a/demo/src/app/home/feature/home-feature.tsx +++ b/demo/src/app/home/feature/home-feature.tsx @@ -3,8 +3,7 @@ import { Container, Stack } from '@mantine/core' import { WalletModalProvider } from '@pubkeyapp/wallet-adapter-mantine-ui' import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react' import { clusterApiUrl } from '@solana/web3.js' -import { HomeUiExample } from '../ui' -import { HomeUiHero } from '../ui/hero/home-ui-hero' +import { HomeUiExample, HomeUiHero } from '../ui' export function HomeFeature() { return ( diff --git a/demo/src/app/home/ui/example/home-ui-example.tsx b/demo/src/app/home/ui/example/home-ui-example.tsx index 117b55b..318f3dc 100644 --- a/demo/src/app/home/ui/example/home-ui-example.tsx +++ b/demo/src/app/home/ui/example/home-ui-example.tsx @@ -1,7 +1,8 @@ -import { Anchor, Box, Code, Group, Stack, Table, Text, Title } from '@mantine/core' +import { Anchor, Box, Code, Group, SimpleGrid, Stack, Table, Text, Title } from '@mantine/core' +import { UiContainer, UiStack } from '@pubkey-ui/core' import { WalletDisconnectButton, WalletModalButton, WalletMultiButton } from '@pubkeyapp/wallet-adapter-mantine-ui' import { ReactNode } from 'react' -import { UiCode, UiContainer } from '../../../ui' +import { UiCode } from '../../../ui/code/ui-code' import classes from './home-ui-example.module.css' const demo = ` @@ -37,19 +38,18 @@ export function HomeUiExample() { packageUrl: 'https://www.npmjs.com/package/@pubkeyapp/wallet-adapter-mantine-ui/v/1.3.3', }, ] + const deps = '@pubkeyapp/wallet-adapter-mantine-ui @solana/wallet-adapter-react @solana/web3.js' return ( - - + + Getting started - + Install dependencies: - + + + + + Configure providers and components: - + Versions @@ -92,7 +92,12 @@ export function HomeUiExample() { Components - + @@ -108,8 +113,8 @@ export function HomeUiExample() { - - + + ) } diff --git a/demo/src/app/ui/code/ui-code.tsx b/demo/src/app/ui/code/ui-code.tsx index 4429008..79ad314 100644 --- a/demo/src/app/ui/code/ui-code.tsx +++ b/demo/src/app/ui/code/ui-code.tsx @@ -1,6 +1,7 @@ import { CodeHighlightTabs, CodeHighlightTabsCode } from '@mantine/code-highlight' +import '@mantine/code-highlight/styles.css' import { DEFAULT_THEME } from '@mantine/core' -import { IconBrandCss3, IconBrandReact, IconBrandTypescript, IconPackage } from '@tabler/icons-react' +import { IconBrandCss3, IconBrandNpm, IconBrandReact, IconBrandTypescript } from '@tabler/icons-react' function getFileIcon(fileName: string) { if (fileName.endsWith('.ts')) { @@ -14,8 +15,8 @@ function getFileIcon(fileName: string) { return } - if (fileName === 'yarn') { - return + if (fileName === 'npm' || fileName === 'pnpm' || fileName === 'yarn') { + return } return null } diff --git a/demo/src/app/ui/container/ui-container.tsx b/demo/src/app/ui/container/ui-container.tsx deleted file mode 100644 index 27deee4..0000000 --- a/demo/src/app/ui/container/ui-container.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Container, ContainerProps } from '@mantine/core' - -export function UiContainer({ children, ...props }: ContainerProps) { - return ( - - {children} - - ) -} diff --git a/demo/src/app/ui/header/ui-app-header.tsx b/demo/src/app/ui/header/ui-app-header.tsx new file mode 100644 index 0000000..504becd --- /dev/null +++ b/demo/src/app/ui/header/ui-app-header.tsx @@ -0,0 +1,27 @@ +import { Container, Group, Text } from '@mantine/core' +import { UiLogoType } from '@pubkey-ui/core' +import { IconBrandDiscord, IconBrandGithub, IconBrandNpm } from '@tabler/icons-react' +import { UiHeaderLinks } from './ui-header-links' +import classes from './ui-header.module.css' + +export function UiAppHeader() { + return ( + + + + + + Wallet Adapter for Mantine + + + + + + ) +} diff --git a/demo/src/app/ui/header/ui-header-links.tsx b/demo/src/app/ui/header/ui-header-links.tsx new file mode 100644 index 0000000..661d6f5 --- /dev/null +++ b/demo/src/app/ui/header/ui-header-links.tsx @@ -0,0 +1,15 @@ +import { ActionIconProps, Group } from '@mantine/core' +import { UiIconLink, UiIconLinkProps } from '../icon-link/ui-icon-link' +import { UiThemeToggle } from '../theme-toggle/ui-theme-toggle' + +export function UiHeaderLinks({ icons }: { icons: UiIconLinkProps[] }) { + const iconProps: ActionIconProps = { variant: 'light', size: 'xl' } + return ( + + {icons.map((icon) => ( + + ))} + + + ) +} diff --git a/demo/src/app/ui/header/ui-header.module.css b/demo/src/app/ui/header/ui-header.module.css index 7938055..e92cbef 100644 --- a/demo/src/app/ui/header/ui-header.module.css +++ b/demo/src/app/ui/header/ui-header.module.css @@ -1,7 +1,6 @@ .header { height: rem(56px); - background-color: var(--mantine-color-body); - border-bottom: rem(1px) solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-9)); } .inner { diff --git a/demo/src/app/ui/header/ui-header.tsx b/demo/src/app/ui/header/ui-header.tsx deleted file mode 100644 index 2943b91..0000000 --- a/demo/src/app/ui/header/ui-header.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { ActionIconProps, Container, Group, Text } from '@mantine/core' -import { IconBrandDiscord, IconBrandGithub, IconBrandNpm } from '@tabler/icons-react' -import { UiIconLink, UiIconLinkProps } from '../icon-link/ui-icon-link' -import { UiLogo } from '../logo/ui-logo' -import { UiThemeToggle } from '../theme-toggle/ui-theme-toggle' -import classes from './ui-header.module.css' - -const icons: UiIconLinkProps[] = [ - { href: 'https://discord.gg/XxuZQeDPNf', icon: IconBrandDiscord }, - { href: 'https://github.com/pubkeyapp/solana-wallet-adapter-mantine-ui', icon: IconBrandGithub }, - { href: 'https://npm.im/@pubkeyapp/wallet-adapter-mantine-ui', icon: IconBrandNpm }, -] - -export function UiHeader() { - const iconProps: ActionIconProps = { variant: 'light', size: 'xl' } - return ( - - - - - - Wallet Adapter for Mantine - - - - {icons.map((icon) => ( - - ))} - - - - - ) -} diff --git a/demo/src/app/ui/index.ts b/demo/src/app/ui/index.ts deleted file mode 100644 index a409a3f..0000000 --- a/demo/src/app/ui/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './code/ui-code' -export * from './container/ui-container' -export * from './header/ui-header' -export * from './icon-link/ui-icon-link' -export * from './logo/ui-logo' -export * from './theme-toggle/ui-theme-toggle' -export * from './theme/ui-color-scheme-provider' -export * from './theme/ui-theme-provider' diff --git a/demo/src/app/ui/logo/ui-logo.tsx b/demo/src/app/ui/logo/ui-logo.tsx deleted file mode 100644 index 5d3366a..0000000 --- a/demo/src/app/ui/logo/ui-logo.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Image } from '@mantine/core' -import { useUiColorScheme } from '../theme/ui-color-scheme-provider' - -export function UiLogo({ height = 28 }: { height?: number }) { - const { colorScheme: theme } = useUiColorScheme() - - return -} diff --git a/demo/src/app/ui/theme-toggle/ui-theme-toggle.tsx b/demo/src/app/ui/theme-toggle/ui-theme-toggle.tsx index b6d579b..f2f15fd 100644 --- a/demo/src/app/ui/theme-toggle/ui-theme-toggle.tsx +++ b/demo/src/app/ui/theme-toggle/ui-theme-toggle.tsx @@ -1,14 +1,14 @@ import { ActionIcon, ActionIconProps } from '@mantine/core' +import { useUiColorScheme } from '@pubkey-ui/core' import { IconMoon, IconSun } from '@tabler/icons-react' import cx from 'clsx' -import { useUiColorScheme } from '../theme/ui-color-scheme-provider' import classes from './ui-theme-toggle.module.css' export function UiThemeToggle(props?: ActionIconProps) { const { toggleColorScheme } = useUiColorScheme() return ( - + toggleColorScheme()} aria-label="Toggle color scheme" {...props}> diff --git a/demo/src/app/ui/theme/styles.tsx b/demo/src/app/ui/theme/styles.tsx deleted file mode 100644 index b639adf..0000000 --- a/demo/src/app/ui/theme/styles.tsx +++ /dev/null @@ -1,4 +0,0 @@ -// Mantine Core styles are first -import '@mantine/core/styles.css' -// Additional Mantine component styles are next -import '@mantine/code-highlight/styles.css' diff --git a/demo/src/app/ui/theme/ui-color-scheme-provider.tsx b/demo/src/app/ui/theme/ui-color-scheme-provider.tsx deleted file mode 100644 index 8af51fe..0000000 --- a/demo/src/app/ui/theme/ui-color-scheme-provider.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { MantineColorScheme, useComputedColorScheme, useMantineColorScheme } from '@mantine/core' -import { useHotkeys } from '@mantine/hooks' -import { createContext, ReactNode, useContext } from 'react' - -export interface UiColorSchemeContext { - colorScheme: MantineColorScheme - setColorScheme: (colorScheme: MantineColorScheme) => void - toggleColorScheme: () => void -} - -const Context = createContext({} as UiColorSchemeContext) - -export function UiColorSchemeProvider({ children }: { children: ReactNode }) { - const { setColorScheme } = useMantineColorScheme() - const colorScheme = useComputedColorScheme('dark', { getInitialValueInEffect: true }) - - function toggleColorScheme() { - setColorScheme(colorScheme === 'light' ? 'dark' : 'light') - } - - useHotkeys([['mod+J', () => toggleColorScheme()]]) - - const value: UiColorSchemeContext = { - colorScheme, - setColorScheme, - toggleColorScheme, - } - - return {children} -} - -export function useUiColorScheme() { - return useContext(Context) -} diff --git a/demo/src/app/ui/theme/ui-theme-provider.module.css b/demo/src/app/ui/theme/ui-theme-provider.module.css deleted file mode 100644 index b39ebf8..0000000 --- a/demo/src/app/ui/theme/ui-theme-provider.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.responsiveContainer { - max-width: rem(300px); - - @media (min-width: em(400px)) { - max-width: rem(100%); - } - - @media (min-width: em(600px)) { - max-width: rem(100%); - } -} diff --git a/demo/src/app/ui/theme/ui-theme-provider.tsx b/demo/src/app/ui/theme/ui-theme-provider.tsx deleted file mode 100644 index 7f7cbc0..0000000 --- a/demo/src/app/ui/theme/ui-theme-provider.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { Container, createTheme, DEFAULT_THEME, MantineProvider, mergeMantineTheme } from '@mantine/core' -import cx from 'clsx' -import { createContext, ReactNode, useContext } from 'react' -import { UiColorSchemeProvider } from './ui-color-scheme-provider' -import classes from './ui-theme-provider.module.css' - -const themeOverride = createTheme({ - components: { - Container: Container.extend({ - classNames: (_, { size }) => ({ - root: cx({ [classes.responsiveContainer]: size === 'responsive' }), - }), - }), - }, - colors: { - brand: DEFAULT_THEME.colors.blue, - }, - primaryColor: 'brand', -}) -export const theme = mergeMantineTheme(DEFAULT_THEME, themeOverride) - -const Context = createContext({}) - -export function UiThemeProvider({ children }: { children: ReactNode }) { - return ( - - - {children} - - - ) -} - -export function useUiTheme() { - return useContext(Context) -} diff --git a/demo/src/styles.css b/demo/src/styles.css index aa51752..06f062d 100644 --- a/demo/src/styles.css +++ b/demo/src/styles.css @@ -1,8 +1,5 @@ -/* core styles are required for all packages*/ - -/* other css files are required only if*/ -/* you are using components from the corresponding package*/ -/* import '@mantine/dates/styles.css';*/ -/* import '@mantine/dropzone/styles.css';*/ -/* import '@mantine/code-highlight/styles.css';*/ -/* ...*/ +html, +body, +#root { + height: 100%; +} diff --git a/package.json b/package.json index 82dc770..779d5be 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,11 @@ "dependencies": { "@mantine/code-highlight": "^7.2.2", "@mantine/core": "^7.2.2", + "@mantine/dates": "^7.2.2", + "@mantine/form": "^7.2.2", "@mantine/hooks": "^7.2.2", + "@mantine/modals": "^7.2.2", + "@pubkey-ui/core": "^1.0.1", "@pubkeyapp/logo": "^1.3.3", "@solana/buffer-layout": "^4.0.1", "@solana/wallet-adapter-base": "^0.9.23", @@ -21,11 +25,13 @@ "react": "18.2.0", "react-dom": "18.2.0", "react-router-dom": "6.20.1", + "timeago-react": "^3.0.6", "tslib": "^2.6.2" }, "devDependencies": { "@babel/core": "^7.23.5", "@babel/preset-react": "^7.23.3", + "@nx/eslint": "17.1.3", "@nx/eslint-plugin": "17.1.3", "@nx/jest": "17.1.3", "@nx/js": "17.1.3", @@ -72,7 +78,6 @@ "typescript": "5.3.2", "url-loader": "^4.1.1", "vite": "~5.0.4", - "vitest": "~0.34.6", - "@nx/eslint": "17.1.3" + "vitest": "~0.34.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb5a694..f0d027f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,21 @@ dependencies: '@mantine/core': specifier: ^7.2.2 version: 7.2.2(@mantine/hooks@7.2.2)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + '@mantine/dates': + specifier: ^7.2.2 + version: 7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + '@mantine/form': + specifier: ^7.2.2 + version: 7.2.2(react@18.2.0) '@mantine/hooks': specifier: ^7.2.2 version: 7.2.2(react@18.2.0) + '@mantine/modals': + specifier: ^7.2.2 + version: 7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(react-dom@18.2.0)(react@18.2.0) + '@pubkey-ui/core': + specifier: ^1.0.1 + version: 1.0.1(@types/react@18.2.41)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) '@pubkeyapp/logo': specifier: ^1.3.3 version: 1.3.3(@mantine/core@7.2.2)(core-js@3.33.3)(react@18.2.0) @@ -47,6 +59,9 @@ dependencies: react-router-dom: specifier: 6.20.1 version: 6.20.1(react-dom@18.2.0)(react@18.2.0) + timeago-react: + specifier: ^3.0.6 + version: 3.0.6(react@18.2.0) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -2271,6 +2286,33 @@ packages: - '@types/react' dev: false + /@mantine/dates@7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-MgUy2qODhXEkdK5OQE3talThrbXKfBK6V0AJ8iwPcrxMoQ77u4aMzTv4+47bEjQeUFyjrT8u916VFd82mn59SA==} + peerDependencies: + '@mantine/core': 7.2.2 + '@mantine/hooks': 7.2.2 + dayjs: ^1.10.5 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@mantine/core': 7.2.2(@mantine/hooks@7.2.2)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.2.2(react@18.2.0) + clsx: 2.0.0 + dayjs: 1.11.10 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@mantine/form@7.2.2(react@18.2.0): + resolution: {integrity: sha512-Tzux6WbUliK6id1I7lV8tmu6je0WFrJLPDg+0xVyW7Qk/zmju837kj7SSfvNcJa51dKAtYxf3FgqTRy6ap9QEA==} + peerDependencies: + react: ^18.2.0 + dependencies: + fast-deep-equal: 3.1.3 + klona: 2.0.6 + react: 18.2.0 + dev: false + /@mantine/hooks@7.2.2(react@18.2.0): resolution: {integrity: sha512-7CFSVP2aQHrBwLLAVf0q5dgj+6QTZmhLTNcuc3pE1du+HLFUdyVS6vvQC6kieZXxOd6UzwFGBlN4G+aDx95XeA==} peerDependencies: @@ -2279,6 +2321,44 @@ packages: react: 18.2.0 dev: false + /@mantine/modals@7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-J65xJ5ZULUG8fvNU+UnHboqEs3ueNDTMITUiVucqw4lupt93JHfamuR/PIV2mrXMYqSaKd4NBnxvkmcpjs0uRg==} + peerDependencies: + '@mantine/core': 7.2.2 + '@mantine/hooks': 7.2.2 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@mantine/core': 7.2.2(@mantine/hooks@7.2.2)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.2.2(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@mantine/notifications@7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-2MQ0jJi9HOspJOAq0sfE5QvacZytYoLB8k0GwnubnFilSACbpDYeoQXZWmKX0joYhHtKR15muTnF+P1s9kmr3Q==} + peerDependencies: + '@mantine/core': 7.2.2 + '@mantine/hooks': 7.2.2 + react: ^18.2.0 + react-dom: ^18.2.0 + dependencies: + '@mantine/core': 7.2.2(@mantine/hooks@7.2.2)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.2.2(react@18.2.0) + '@mantine/store': 7.2.2(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) + dev: false + + /@mantine/store@7.2.2(react@18.2.0): + resolution: {integrity: sha512-j8vR8whB332pGI8OXkM2/3rdh4LJxELJQTG+rTsCCd3VQuEJiRTQDKVaOvp9ONja3GU5b1Tk3zhKOrkpgxTJBA==} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + dev: false + /@mole-inc/bin-wrapper@8.0.1: resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3114,6 +3194,23 @@ packages: resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} dev: true + /@pubkey-ui/core@1.0.1(@types/react@18.2.41)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-x4CyQ1Y1z5GKIkC4JL5Kdv75Ei1EjNBMTf1xXfaMWMeY/IZh0q+fivO4teMtDNUOki7nM/HreTA0ygraMlXTyg==} + dependencies: + '@mantine/core': 7.2.2(@mantine/hooks@7.2.2)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + '@mantine/dates': 7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + '@mantine/form': 7.2.2(react@18.2.0) + '@mantine/hooks': 7.2.2(react@18.2.0) + '@mantine/modals': 7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(react-dom@18.2.0)(react@18.2.0) + '@mantine/notifications': 7.2.2(@mantine/core@7.2.2)(@mantine/hooks@7.2.2)(react-dom@18.2.0)(react@18.2.0) + timeago-react: 3.0.6(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - dayjs + - react + - react-dom + dev: false + /@pubkeyapp/logo@1.3.3(@mantine/core@7.2.2)(core-js@3.33.3)(react@18.2.0): resolution: {integrity: sha512-fXz86XAtGK6HT5XgmrAE26JK/ap7OjRDS7SPZVs9GomsqWaayKxTHKPBEMmldr6V2dIwW1LYJUWb+xB2Tvmq2w==} peerDependencies: @@ -6745,6 +6842,13 @@ packages: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dev: true + /dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dependencies: + '@babel/runtime': 7.23.5 + csstype: 3.1.2 + dev: false + /dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: @@ -7497,7 +7601,6 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-glob@3.2.7: resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} @@ -9579,7 +9682,6 @@ packages: /klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} - dev: true /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -12071,6 +12173,20 @@ packages: - '@types/react' dev: false + /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + dependencies: + '@babel/runtime': 7.23.5 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -13274,6 +13390,19 @@ packages: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: true + /timeago-react@3.0.6(react@18.2.0): + resolution: {integrity: sha512-4ywnCX3iFjdp84WPK7gt8s4n0FxXbYM+xv8hYL73p83dpcMxzmO+0W4xJuxflnkWNvum5aEaqTe6LZ3lUIudjQ==} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + timeago.js: 4.0.2 + dev: false + + /timeago.js@4.0.2: + resolution: {integrity: sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==} + dev: false + /tinybench@2.5.1: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true