Compare commits
10 Commits
21bc604fb8
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
1cf621b752
|
|||
|
e7c4343bfc
|
|||
|
2701957af8
|
|||
|
e101f503d2
|
|||
|
47d58680b3
|
|||
|
5679d71b5b
|
|||
|
6134755888
|
|||
|
7c41beb992
|
|||
|
1cedf24a65
|
|||
|
5249dda717
|
@@ -1,10 +1,10 @@
|
||||
# konstitisyon.la
|
||||
# konstitisyon.nu
|
||||
|
||||
Plateforme collaborative dédiée à la rédaction citoyenne d'une constitution. Ce projet vise à permettre aux citoyens de participer activement au processus de rédaction constitutionnelle à travers un système transparent et démocratique.
|
||||
|
||||
## Vision du projet
|
||||
|
||||
L'objectif de konstitisyon.la est de démocratiser le processus de rédaction constitutionnelle en :
|
||||
L'objectif de konstitisyon.nu est de démocratiser le processus de rédaction constitutionnelle en :
|
||||
- Permettant à chaque citoyen de proposer des modifications
|
||||
- Facilitant le débat et la discussion autour des propositions
|
||||
- Assurant la transparence du processus de rédaction
|
||||
@@ -41,7 +41,7 @@ L'objectif de konstitisyon.la est de démocratiser le processus de rédaction co
|
||||
|
||||
### Structure du projet
|
||||
```
|
||||
konstitisyon.la/
|
||||
konstitisyon.nu/
|
||||
├── app/ # Routes et pages Next.js
|
||||
├── components/
|
||||
│ ├── konstitisyon/ # Composants liés à la constitution
|
||||
|
||||
@@ -22,10 +22,6 @@ export const options = {
|
||||
|
||||
const user = await res.json()
|
||||
|
||||
if (!res.ok && user) {
|
||||
throw new Error('E-mail ou mot de passe incorrect')
|
||||
}
|
||||
|
||||
if (res.ok && user) {
|
||||
return user
|
||||
}
|
||||
|
||||
+3
-1
@@ -19,7 +19,9 @@ export default function LoginForm() {
|
||||
})
|
||||
|
||||
if (response?.error) {
|
||||
if (response.error === 'Configuration') {
|
||||
if (response.error === 'CredentialsSignin') {
|
||||
setError('E-mail ou mot de passe incorrect')
|
||||
} else if (response.error === 'Configuration') {
|
||||
setError('Une erreur s’est produite, contactez l’administrateur !')
|
||||
} else {
|
||||
setError(response.error)
|
||||
|
||||
@@ -3,8 +3,8 @@ import {redirect} from 'next/navigation'
|
||||
import ResetPasswordForm from './form.js'
|
||||
|
||||
export default async function ResetPasswordPage({searchParams}) {
|
||||
console.log('searchParams', searchParams)
|
||||
const {token} = searchParams
|
||||
const params = await searchParams
|
||||
const {token} = params
|
||||
|
||||
if (!token) {
|
||||
redirect('/login')
|
||||
|
||||
+39
-31
@@ -1,7 +1,7 @@
|
||||
'use client'
|
||||
|
||||
import PropTypes from 'prop-types'
|
||||
import {useEffect, useState} from 'react'
|
||||
import {useEffect, useState, useMemo} from 'react'
|
||||
import {signOut} from 'next-auth/react'
|
||||
import {useRouter} from 'next/navigation'
|
||||
import Box from '@mui/material/Box'
|
||||
@@ -15,7 +15,7 @@ import PersonAddIcon from '@mui/icons-material/PersonAdd'
|
||||
import {createDirectus, realtime, staticToken} from '@directus/sdk'
|
||||
import ConfirmationAlert from './confirmation-alert.js'
|
||||
|
||||
const apiWsUrl = process.env.DIRECTUS_API_WS_URL || process.env.NEXT_PUBLIC_DIRECTUS_API_WS_URL
|
||||
const apiUrl = process.env.DIRECTUS_API_URL || process.env.NEXT_PUBLIC_DIRECTUS_API_URL
|
||||
|
||||
const LightTooltip = styled(({className, ...props}) => (
|
||||
<Tooltip {...props} classes={{popper: className}} />
|
||||
@@ -32,17 +32,41 @@ export default function Sign({session, navButton}) {
|
||||
const router = useRouter()
|
||||
const [isOpen, setIsOpen] = useState(false)
|
||||
|
||||
const directusClientWS = createDirectus(apiWsUrl)
|
||||
.with(staticToken(session?.user?.accessToken))
|
||||
.with(realtime())
|
||||
|
||||
const handleSignout = () => {
|
||||
setIsOpen(false)
|
||||
signOut()
|
||||
}
|
||||
|
||||
async function subscribe() {
|
||||
const {subscription} = await directusClientWS.subscribe('directus_versions', {
|
||||
useEffect(() => {
|
||||
let cleanup = () => {}
|
||||
|
||||
if (session?.user?.accessToken) {
|
||||
(async () => {
|
||||
try {
|
||||
console.log('Creating WebSocket client with token...')
|
||||
|
||||
// Create client with static token
|
||||
const client = createDirectus(apiUrl)
|
||||
.with(staticToken(session.user.accessToken))
|
||||
.with(realtime())
|
||||
|
||||
console.log('Connecting to WebSocket...')
|
||||
await client.connect()
|
||||
|
||||
client.onWebSocket('open', () => {
|
||||
console.log({event: 'onopen', message: 'WebSocket connection opened'})
|
||||
})
|
||||
|
||||
client.onWebSocket('message', message => {
|
||||
console.log({event: 'onmessage', message})
|
||||
|
||||
// Once authenticated, subscribe
|
||||
if (message.type === 'auth' && message.status === 'ok') {
|
||||
console.log('WebSocket authenticated successfully!')
|
||||
|
||||
// Subscribe to version changes
|
||||
;(async () => {
|
||||
const {subscription} = await client.subscribe('directus_versions', {
|
||||
event: 'create',
|
||||
query: {
|
||||
fields: ['*'],
|
||||
@@ -57,37 +81,21 @@ export default function Sign({session, navButton}) {
|
||||
for await (const item of subscription) {
|
||||
console.log('New version created:', item)
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
let cleanup = () => {}
|
||||
|
||||
if (session) {
|
||||
(async () => {
|
||||
try {
|
||||
await directusClientWS.connect()
|
||||
|
||||
directusClientWS.onWebSocket('open', () => {
|
||||
console.log({event: 'onopen'})
|
||||
subscribe()
|
||||
})
|
||||
|
||||
directusClientWS.onWebSocket('message', message => {
|
||||
if (message.type === 'auth' && message.status === 'ok') {
|
||||
console.log({event: 'onmessage', message})
|
||||
})()
|
||||
}
|
||||
})
|
||||
|
||||
directusClientWS.onWebSocket('close', () => {
|
||||
console.log({event: 'onclose'})
|
||||
client.onWebSocket('close', () => {
|
||||
console.log({event: 'onclose', message: 'WebSocket connection closed'})
|
||||
})
|
||||
|
||||
directusClientWS.onWebSocket('error', error => {
|
||||
client.onWebSocket('error', error => {
|
||||
console.log({event: 'onerror', error})
|
||||
})
|
||||
|
||||
cleanup = () => {
|
||||
directusClientWS.disconnect()
|
||||
console.log('Disconnecting WebSocket...')
|
||||
client.disconnect()
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('WebSocket connection error:', error)
|
||||
@@ -96,7 +104,7 @@ export default function Sign({session, navButton}) {
|
||||
}
|
||||
|
||||
return () => cleanup()
|
||||
}, [session]) // eslint-disable-line react-hooks/exhaustive-deps
|
||||
}, [session?.user?.accessToken])
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -46,7 +46,7 @@ const renderMarkdownToHtml = async content => {
|
||||
}
|
||||
}
|
||||
|
||||
export default function ExportPdfButton({versionData, size = 'medium', variant = 'outlined'}) {
|
||||
export default function ExportPdfButton({versionData, isOutdated = false, size = 'medium', variant = 'outlined'}) {
|
||||
const [isExporting, setIsExporting] = useState(false)
|
||||
|
||||
const handleExportPdf = async () => {
|
||||
@@ -142,7 +142,8 @@ export default function ExportPdfButton({versionData, size = 'medium', variant =
|
||||
const authorName = versionData.user_created?.split('-')[0] || 'Système'
|
||||
const createdAt = new Date(versionData.date_created)
|
||||
const threeDaysAgo = new Date(Date.now() - (3 * 24 * 60 * 60 * 1000))
|
||||
const voteStatus = createdAt < threeDaysAgo ? 'fermé' : 'ouvert'
|
||||
const isExpired = createdAt < threeDaysAgo
|
||||
const voteStatus = (isExpired || isOutdated) ? 'fermé' : 'ouvert'
|
||||
const voteColor = voteStatus === 'ouvert' ? '#2e7d32' : '#d32f2f'
|
||||
|
||||
// Render markdown content to HTML
|
||||
@@ -177,7 +178,7 @@ export default function ExportPdfButton({versionData, size = 'medium', variant =
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 40px; padding-top: 20px; border-top: 1px solid #eee; font-size: 12px; color: #888; text-align: center;">
|
||||
Exporté depuis Konstitisyon.la le ${formatDate(new Date(), 'PPpp')}
|
||||
Exporté depuis Konstitisyon.nu le ${formatDate(new Date(), 'PPpp')}
|
||||
</div>
|
||||
`
|
||||
|
||||
@@ -251,6 +252,7 @@ export default function ExportPdfButton({versionData, size = 'medium', variant =
|
||||
|
||||
ExportPdfButton.propTypes = {
|
||||
versionData: PropTypes.object.isRequired,
|
||||
isOutdated: PropTypes.bool,
|
||||
size: PropTypes.oneOf(['small', 'medium', 'large']),
|
||||
variant: PropTypes.oneOf(['text', 'outlined', 'contained'])
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import {useState, useRef, useEffect} from 'react'
|
||||
import PropTypes from 'prop-types'
|
||||
import Grid from '@mui/material/Grid2'
|
||||
import Grid from '@mui/material/Grid'
|
||||
import Typography from '@mui/material/Typography'
|
||||
import HomeIcon from '@mui/icons-material/Home'
|
||||
import Box from '@mui/material/Box'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {forwardRef, useRef, useState} from 'react'
|
||||
import {forwardRef, useRef, useState, useEffect} from 'react'
|
||||
import PropTypes from 'prop-types'
|
||||
import Table from '@mui/material/Table'
|
||||
import TableBody from '@mui/material/TableBody'
|
||||
@@ -84,7 +84,8 @@ function rowContent({
|
||||
setError,
|
||||
setIsErrorAlertOpen,
|
||||
setIsOpenComparison,
|
||||
setVersionCompare
|
||||
setVersionCompare,
|
||||
outdatedStatusMap
|
||||
}) {
|
||||
const handleButtonClick = async versionId => {
|
||||
const version = await compareVersion({
|
||||
@@ -102,6 +103,8 @@ function rowContent({
|
||||
}
|
||||
}
|
||||
|
||||
const isOutdated = outdatedStatusMap[row.id] || false
|
||||
|
||||
return (
|
||||
<>
|
||||
{columns.map(column => (
|
||||
@@ -137,11 +140,13 @@ function rowContent({
|
||||
/>
|
||||
<ExportPdfButton
|
||||
versionData={row}
|
||||
isOutdated={isOutdated}
|
||||
size='small'
|
||||
variant='text'
|
||||
/>
|
||||
<PrintButton
|
||||
versionData={row}
|
||||
isOutdated={isOutdated}
|
||||
size='small'
|
||||
variant='text'
|
||||
/>
|
||||
@@ -182,6 +187,42 @@ export default function ListVersions({
|
||||
dateTo: '',
|
||||
status: ''
|
||||
})
|
||||
const [outdatedStatusMap, setOutdatedStatusMap] = useState({})
|
||||
|
||||
// Fetch outdated status for all versions
|
||||
useEffect(() => {
|
||||
async function fetchOutdatedStatus() {
|
||||
const statusMap = {}
|
||||
|
||||
await Promise.all(
|
||||
data.map(async version => {
|
||||
try {
|
||||
const comparisonData = await compareVersion({
|
||||
accessToken,
|
||||
userId,
|
||||
versionId: version.id,
|
||||
countdownRef,
|
||||
setError,
|
||||
setIsErrorAlertOpen
|
||||
})
|
||||
|
||||
if (comparisonData) {
|
||||
statusMap[version.id] = comparisonData.outdated || false
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn(`Failed to fetch outdated status for version ${version.id}:`, error)
|
||||
statusMap[version.id] = false
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
setOutdatedStatusMap(statusMap)
|
||||
}
|
||||
|
||||
if (data.length > 0) {
|
||||
fetchOutdatedStatus()
|
||||
}
|
||||
}, [data, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen])
|
||||
|
||||
// Filter data based on search and filters
|
||||
const filteredData = filterVersions(data, searchTerm, filters)
|
||||
@@ -261,7 +302,7 @@ export default function ListVersions({
|
||||
components={VirtuosoTableComponents}
|
||||
fixedHeaderContent={fixedHeaderContent}
|
||||
itemContent={(index, row) => rowContent({
|
||||
index, row, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen, setIsOpenComparison, setVersionCompare
|
||||
index, row, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen, setIsOpenComparison, setVersionCompare, outdatedStatusMap
|
||||
})}
|
||||
/>
|
||||
</Paper>
|
||||
|
||||
@@ -49,7 +49,7 @@ const renderMarkdownToHtml = async content => {
|
||||
}
|
||||
}
|
||||
|
||||
export default function PrintButton({versionData, size = 'medium', variant = 'outlined'}) {
|
||||
export default function PrintButton({versionData, isOutdated = false, size = 'medium', variant = 'outlined'}) {
|
||||
const [isPrinting, setIsPrinting] = useState(false)
|
||||
const [snackbar, setSnackbar] = useState({open: false, message: '', severity: 'success'})
|
||||
|
||||
@@ -61,7 +61,8 @@ export default function PrintButton({versionData, size = 'medium', variant = 'ou
|
||||
const authorName = versionData.user_created?.split('-')[0] || 'Système'
|
||||
const createdAt = new Date(versionData.date_created)
|
||||
const threeDaysAgo = new Date(Date.now() - (3 * 24 * 60 * 60 * 1000))
|
||||
const voteStatus = createdAt < threeDaysAgo ? 'fermé' : 'ouvert'
|
||||
const isExpired = createdAt < threeDaysAgo
|
||||
const voteStatus = (isExpired || isOutdated) ? 'fermé' : 'ouvert'
|
||||
const voteColor = voteStatus === 'ouvert' ? '#2e7d32' : '#d32f2f'
|
||||
|
||||
// Render markdown content to HTML
|
||||
@@ -81,7 +82,7 @@ export default function PrintButton({versionData, size = 'medium', variant = 'ou
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>${versionData.name} - Konstitisyon.la</title>
|
||||
<title>${versionData.name} - Konstitisyon.nu</title>
|
||||
<style>
|
||||
/* Print-optimized styles */
|
||||
@media print {
|
||||
@@ -318,7 +319,7 @@ export default function PrintButton({versionData, size = 'medium', variant = 'ou
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
Imprimé depuis Konstitisyon.la le ${formatDate(new Date(), 'PPpp')}
|
||||
Imprimé depuis Konstitisyon.nu le ${formatDate(new Date(), 'PPpp')}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -390,6 +391,7 @@ export default function PrintButton({versionData, size = 'medium', variant = 'ou
|
||||
|
||||
PrintButton.propTypes = {
|
||||
versionData: PropTypes.object.isRequired,
|
||||
isOutdated: PropTypes.bool,
|
||||
size: PropTypes.oneOf(['small', 'medium', 'large']),
|
||||
variant: PropTypes.oneOf(['text', 'outlined', 'contained'])
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ export default function ShareButton({
|
||||
// Use native share API if available
|
||||
await navigator.share({
|
||||
title: `Version: ${versionName}`,
|
||||
text: 'Découvrez cette version sur Konstitisyon.la',
|
||||
text: 'Découvrez cette version sur Konstitisyon.nu',
|
||||
url
|
||||
})
|
||||
} else if (navigator.clipboard && window.isSecureContext) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import Box from '@mui/material/Box'
|
||||
import Typography from '@mui/material/Typography'
|
||||
import Paper from '@mui/material/Paper'
|
||||
import Grid from '@mui/material/Grid2'
|
||||
import Grid from '@mui/material/Grid'
|
||||
import PropTypes from 'prop-types'
|
||||
import Snackbar from '@mui/material/Snackbar'
|
||||
import Alert from '@mui/material/Alert'
|
||||
|
||||
@@ -54,8 +54,7 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
|
||||
setVersionData(version)
|
||||
|
||||
// If in comparison mode, also fetch comparison data
|
||||
if (viewMode === 'comparison') {
|
||||
// Fetch comparison data (needed for outdated status even if not in comparison mode)
|
||||
const comparison = await compareVersion({
|
||||
accessToken,
|
||||
userId,
|
||||
@@ -68,7 +67,6 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
if (comparison) {
|
||||
setVersionCompare({...comparison, versionId})
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch version:', error)
|
||||
setError('Impossible de charger cette version')
|
||||
@@ -79,7 +77,7 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
}
|
||||
|
||||
fetchVersionData()
|
||||
}, [accessToken, userId, versionId, viewMode])
|
||||
}, [accessToken, userId, versionId])
|
||||
|
||||
const handleBack = () => {
|
||||
router.push('/dashboard')
|
||||
@@ -107,7 +105,7 @@ export default function VersionPage({session, versionId, viewMode}) {
|
||||
// Use native share API if available
|
||||
await navigator.share({
|
||||
title: `Version: ${versionData?.name || 'Version'}`,
|
||||
text: 'Découvrez cette version sur Konstitisyon.la',
|
||||
text: 'Découvrez cette version sur Konstitisyon.nu',
|
||||
url
|
||||
})
|
||||
setSnackbar({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {useRef, useState} from 'react'
|
||||
import {useRef, useState, useEffect} from 'react'
|
||||
import {useTheme} from '@mui/material/styles'
|
||||
import PropTypes from 'prop-types'
|
||||
import Box from '@mui/material/Box'
|
||||
@@ -34,17 +34,25 @@ import PrintButton from './print-button.js'
|
||||
import {formatDate} from '@/lib/format.js'
|
||||
import {compareVersion} from '@/lib/directus.js'
|
||||
|
||||
function getVersionStatus(version, index, totalVersions) {
|
||||
function getVersionStatus(version, index, totalVersions, data) {
|
||||
// Logic to determine version status based on position and data
|
||||
if (index === 0) {
|
||||
return 'current' // Most recent
|
||||
}
|
||||
// Find which version is the "main" (published) by checking if it matches current content
|
||||
// This would require the current item content to be passed
|
||||
// For now, we assume the most recent is current unless it's been promoted
|
||||
|
||||
// Check if this is the initial version
|
||||
if (index === totalVersions - 1) {
|
||||
return 'initial' // First version
|
||||
}
|
||||
|
||||
return 'archived' // Intermediate versions
|
||||
// If there's a more recent version after this one, this is outdated
|
||||
// unless this IS the main version (would need item content to determine)
|
||||
if (index > 0) {
|
||||
return 'outdated' // Older versions are outdated
|
||||
}
|
||||
|
||||
// Most recent version is current (being edited/proposed)
|
||||
return 'current'
|
||||
}
|
||||
|
||||
function getStatusConfig(status) {
|
||||
@@ -115,15 +123,56 @@ function VersionCard({
|
||||
onVoteResult
|
||||
}) {
|
||||
const theme = useTheme()
|
||||
const status = getVersionStatus(version, index, totalVersions)
|
||||
const [versionStatus, setVersionStatus] = useState(null)
|
||||
const [isOutdated, setIsOutdated] = useState(false)
|
||||
|
||||
// Fetch real status from API
|
||||
useEffect(() => {
|
||||
async function fetchVersionStatus() {
|
||||
try {
|
||||
const comparisonData = await compareVersion({
|
||||
accessToken,
|
||||
userId,
|
||||
versionId: version.id,
|
||||
countdownRef,
|
||||
setError,
|
||||
setIsErrorAlertOpen
|
||||
})
|
||||
|
||||
if (comparisonData) {
|
||||
// Store outdated flag for vote disabling
|
||||
setIsOutdated(comparisonData.outdated)
|
||||
|
||||
// Determine status based on API response
|
||||
let status
|
||||
if (comparisonData.outdated) {
|
||||
status = 'outdated'
|
||||
} else if (index === totalVersions - 1) {
|
||||
status = 'initial'
|
||||
} else {
|
||||
status = 'current'
|
||||
}
|
||||
setVersionStatus(status)
|
||||
}
|
||||
} catch (error) {
|
||||
// Fallback to position-based status on error
|
||||
setVersionStatus(getVersionStatus(version, index, totalVersions, null))
|
||||
}
|
||||
}
|
||||
|
||||
fetchVersionStatus()
|
||||
}, [version.id, index, totalVersions, accessToken, userId, countdownRef, setError, setIsErrorAlertOpen])
|
||||
|
||||
const status = versionStatus || getVersionStatus(version, index, totalVersions, null)
|
||||
|
||||
const statusConfig = getStatusConfig(status)
|
||||
const userDisplayName = version.user_created?.split('-')[0] || 'Système'
|
||||
|
||||
// Check if voting is disabled (after 3 days)
|
||||
// Check if voting is disabled (after 3 days OR if outdated)
|
||||
const createdAt = new Date(version.date_created)
|
||||
const threeDaysAgo = new Date(Date.now() - (3 * 24 * 60 * 60 * 1000))
|
||||
const isVoteDisabled = createdAt < threeDaysAgo
|
||||
const isExpired = createdAt < threeDaysAgo
|
||||
const isVoteDisabled = isExpired || isOutdated
|
||||
|
||||
const handleCompareClick = async () => {
|
||||
const comparisonData = await compareVersion({
|
||||
@@ -214,7 +263,7 @@ function VersionCard({
|
||||
size='small'
|
||||
variant='outlined'
|
||||
/>
|
||||
{isVoteDisabled && (
|
||||
{isExpired && !isOutdated && (
|
||||
<Chip
|
||||
label='Vote fermé'
|
||||
color='error'
|
||||
@@ -260,11 +309,13 @@ function VersionCard({
|
||||
/>
|
||||
<ExportPdfButton
|
||||
versionData={version}
|
||||
isOutdated={isOutdated}
|
||||
size='small'
|
||||
variant='text'
|
||||
/>
|
||||
<PrintButton
|
||||
versionData={version}
|
||||
isOutdated={isOutdated}
|
||||
size='small'
|
||||
variant='text'
|
||||
/>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
experimental: {
|
||||
// Optimiser les imports pour réduire la mémoire
|
||||
optimizePackageImports: ['@mui/material', '@mui/icons-material', '@emotion/react', '@emotion/styled'],
|
||||
},
|
||||
// Réduire l'utilisation mémoire
|
||||
compress: true,
|
||||
// Désactiver les source maps en dev pour économiser la mémoire
|
||||
productionBrowserSourceMaps: false,
|
||||
}
|
||||
|
||||
module.exports = nextConfig
|
||||
+14
-14
@@ -6,25 +6,25 @@
|
||||
"lint": "xo"
|
||||
},
|
||||
"dependencies": {
|
||||
"@directus/sdk": "^18.0.1",
|
||||
"@emotion/cache": "^11.13.5",
|
||||
"@emotion/react": "^11.13.5",
|
||||
"@emotion/styled": "^11.13.5",
|
||||
"@fontsource/roboto": "^5.1.0",
|
||||
"@mui/icons-material": "^6.1.9",
|
||||
"@mui/lab": "^7.0.0-beta.14",
|
||||
"@mui/material": "^6.1.9",
|
||||
"@mui/material-nextjs": "^6.1.9",
|
||||
"@uiw/react-md-editor": "^4.0.8",
|
||||
"date-fns": "^3.6.0",
|
||||
"@directus/sdk": "^20.3.0",
|
||||
"@emotion/cache": "^11.14.0",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@emotion/styled": "^11.14.1",
|
||||
"@fontsource/roboto": "^5.2.9",
|
||||
"@mui/icons-material": "^7.3.6",
|
||||
"@mui/lab": "^7.0.1-beta.20",
|
||||
"@mui/material": "^7.3.6",
|
||||
"@mui/material-nextjs": "^7.3.6",
|
||||
"@uiw/react-md-editor": "^4.0.11",
|
||||
"date-fns": "^4.1.0",
|
||||
"html2canvas": "^1.4.1",
|
||||
"jspdf": "^3.0.1",
|
||||
"marked": "^16.1.1",
|
||||
"jspdf": "^4.0.0",
|
||||
"marked": "^17.0.1",
|
||||
"next": "^16.1.0",
|
||||
"next-auth": "5.0.0-beta.25",
|
||||
"react": "^19.2.3",
|
||||
"react-dom": "^19.2.3",
|
||||
"react-virtuoso": "^4.10.2",
|
||||
"react-virtuoso": "^4.18.1",
|
||||
"use-debounce": "^10.0.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -57,17 +57,15 @@
|
||||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
|
||||
"@babel/runtime@^7.14.6", "@babel/runtime@^7.17.2", "@babel/runtime@^7.26.7", "@babel/runtime@^7.27.1", "@babel/runtime@^7.27.6":
|
||||
"@babel/runtime@^7.14.6", "@babel/runtime@^7.17.2":
|
||||
version "7.27.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6"
|
||||
integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==
|
||||
|
||||
"@babel/runtime@^7.26.0":
|
||||
version "7.26.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1"
|
||||
integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
"@babel/runtime@^7.28.4":
|
||||
version "7.28.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326"
|
||||
integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
|
||||
|
||||
"@babel/types@^7.24.0":
|
||||
version "7.24.5"
|
||||
@@ -78,10 +76,10 @@
|
||||
"@babel/helper-validator-identifier" "^7.24.5"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@directus/sdk@^18.0.1":
|
||||
version "18.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@directus/sdk/-/sdk-18.0.1.tgz#35219fbc1a06d382d0fa94092b23e7ed6743dd3e"
|
||||
integrity sha512-vUYhqn7qwuaIcqbVRhQtKhjGB9DNhumnzauOg0M8dVnuxk6BgW1W6ZYzkhXmP1vcsU3RohM1l8KPTxOkjikktg==
|
||||
"@directus/sdk@^20.3.0":
|
||||
version "20.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@directus/sdk/-/sdk-20.3.0.tgz#a7c02c135a348b99300191f3be760e974d746714"
|
||||
integrity sha512-auy59B0A7Ri+4JDy0JcdFHnsHvOkl3ixWMWYciXAbm4oYIE9S4be8xEpIwA5qhlPTOprJ6JHPWo9rEvcrLwNtA==
|
||||
|
||||
"@emnapi/runtime@^1.7.0":
|
||||
version "1.7.1"
|
||||
@@ -107,17 +105,6 @@
|
||||
source-map "^0.5.7"
|
||||
stylis "4.2.0"
|
||||
|
||||
"@emotion/cache@^11.13.5":
|
||||
version "11.13.5"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.13.5.tgz#e78dad0489e1ed7572507ba8ed9d2130529e4266"
|
||||
integrity sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==
|
||||
dependencies:
|
||||
"@emotion/memoize" "^0.9.0"
|
||||
"@emotion/sheet" "^1.4.0"
|
||||
"@emotion/utils" "^1.4.2"
|
||||
"@emotion/weak-memoize" "^0.4.0"
|
||||
stylis "4.2.0"
|
||||
|
||||
"@emotion/cache@^11.14.0":
|
||||
version "11.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76"
|
||||
@@ -146,16 +133,16 @@
|
||||
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102"
|
||||
integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==
|
||||
|
||||
"@emotion/react@^11.13.5":
|
||||
version "11.13.5"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.13.5.tgz#fc818ff5b13424f86501ba4d0740f343ae20b8d9"
|
||||
integrity sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==
|
||||
"@emotion/react@^11.14.0":
|
||||
version "11.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.14.0.tgz#cfaae35ebc67dd9ef4ea2e9acc6cd29e157dd05d"
|
||||
integrity sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.18.3"
|
||||
"@emotion/babel-plugin" "^11.13.5"
|
||||
"@emotion/cache" "^11.13.5"
|
||||
"@emotion/cache" "^11.14.0"
|
||||
"@emotion/serialize" "^1.3.3"
|
||||
"@emotion/use-insertion-effect-with-fallbacks" "^1.1.0"
|
||||
"@emotion/use-insertion-effect-with-fallbacks" "^1.2.0"
|
||||
"@emotion/utils" "^1.4.2"
|
||||
"@emotion/weak-memoize" "^0.4.0"
|
||||
hoist-non-react-statics "^3.3.1"
|
||||
@@ -176,16 +163,16 @@
|
||||
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c"
|
||||
integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==
|
||||
|
||||
"@emotion/styled@^11.13.5":
|
||||
version "11.13.5"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.13.5.tgz#0fa6602227414c5e42cf267506e3c35bae655df9"
|
||||
integrity sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==
|
||||
"@emotion/styled@^11.14.1":
|
||||
version "11.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.14.1.tgz#8c34bed2948e83e1980370305614c20955aacd1c"
|
||||
integrity sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.18.3"
|
||||
"@emotion/babel-plugin" "^11.13.5"
|
||||
"@emotion/is-prop-valid" "^1.3.0"
|
||||
"@emotion/serialize" "^1.3.3"
|
||||
"@emotion/use-insertion-effect-with-fallbacks" "^1.1.0"
|
||||
"@emotion/use-insertion-effect-with-fallbacks" "^1.2.0"
|
||||
"@emotion/utils" "^1.4.2"
|
||||
|
||||
"@emotion/unitless@^0.10.0":
|
||||
@@ -193,10 +180,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745"
|
||||
integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==
|
||||
|
||||
"@emotion/use-insertion-effect-with-fallbacks@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz#1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf"
|
||||
integrity sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==
|
||||
"@emotion/use-insertion-effect-with-fallbacks@^1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz#8a8cb77b590e09affb960f4ff1e9a89e532738bf"
|
||||
integrity sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==
|
||||
|
||||
"@emotion/utils@^1.4.2":
|
||||
version "1.4.2"
|
||||
@@ -255,10 +242,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
|
||||
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
|
||||
|
||||
"@fontsource/roboto@^5.1.0":
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-5.1.0.tgz#00230737ec09c60ae877a5e33d067c0607fdd5ba"
|
||||
integrity sha512-cFRRC1s6RqPygeZ8Uw/acwVHqih8Czjt6Q0MwoUoDe9U3m4dH1HmNDRBZyqlMSFwgNAUKgFImncKdmDHyKpwdg==
|
||||
"@fontsource/roboto@^5.2.9":
|
||||
version "5.2.9"
|
||||
resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-5.2.9.tgz#55092cf992ab8d5082be73b79b42f383a9c0903c"
|
||||
integrity sha512-ZTkyHiPk74B/aj8BZWbsxD5Yu+Lq+nR64eV4wirlrac2qXR7jYk2h6JlLYuOuoruTkGQWNw2fMuKNavw7/rg0w==
|
||||
|
||||
"@humanwhocodes/config-array@^0.11.14":
|
||||
version "0.11.14"
|
||||
@@ -438,160 +425,108 @@
|
||||
wrap-ansi "^8.1.0"
|
||||
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
|
||||
|
||||
"@mui/core-downloads-tracker@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.1.9.tgz#7f538205f7f877cdc335d06ef7e671fe840cf68f"
|
||||
integrity sha512-TWqj7b1w5cmSz4H/uf+y2AHxAH4ldPR7D2bz0XVyn60GCAo/zRbRPx7cF8gTs/i7CiYeHzV6dtat0VpMwOtolw==
|
||||
"@mui/core-downloads-tracker@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.6.tgz#e7e3a4dc161a377be8224aa988410e89571ab40a"
|
||||
integrity sha512-QaYtTHlr8kDFN5mE1wbvVARRKH7Fdw1ZuOjBJcFdVpfNfRYKF3QLT4rt+WaB6CKJvpqxRsmEo0kpYinhH5GeHg==
|
||||
|
||||
"@mui/icons-material@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-6.1.9.tgz#68b1003d3e29db4f5d5e5f46a4333f34762aeeeb"
|
||||
integrity sha512-AzlhIT51rdjkZ/EcUV2dbhNkNSUHIqCnNoUxodpiTw8buyAUBd+qnxg5OBSuPpun/ZEdSSB8Q7Uyh6zqjiMsEQ==
|
||||
"@mui/icons-material@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-7.3.6.tgz#c0092afd04a661603d9751c851e0099a27c1d556"
|
||||
integrity sha512-0FfkXEj22ysIq5pa41A2NbcAhJSvmcZQ/vcTIbjDsd6hlslG82k5BEBqqS0ZJprxwIL3B45qpJ+bPHwJPlF7uQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
|
||||
"@mui/lab@^7.0.0-beta.14":
|
||||
version "7.0.0-beta.14"
|
||||
resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-7.0.0-beta.14.tgz#9a62359d3438ea8598d4fe1ad865e168bb857c5e"
|
||||
integrity sha512-pn+ZvylDcBKQOo17oa/PhtIA/UFQFq8RvpN+r/jHrztz/CjMDju2CWBne0txvQ5JIS8uTIGp2/IsTa7II1g5wg==
|
||||
"@mui/lab@^7.0.1-beta.20":
|
||||
version "7.0.1-beta.20"
|
||||
resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-7.0.1-beta.20.tgz#e63282cf686c46c44b36066c99dc7e3cf3acdf86"
|
||||
integrity sha512-xZW+gLO0htUjL02lZRhrziyOuz/azdwqgyiyjKvn52W2wbbcXtFhDVp3ns7YYiQAF9I+Sgu1g1a2HZutOlqeWw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.27.1"
|
||||
"@mui/system" "^7.1.1"
|
||||
"@mui/types" "^7.4.3"
|
||||
"@mui/utils" "^7.1.1"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
"@mui/system" "^7.3.6"
|
||||
"@mui/types" "^7.4.9"
|
||||
"@mui/utils" "^7.3.6"
|
||||
clsx "^2.1.1"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@mui/material-nextjs@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/material-nextjs/-/material-nextjs-6.1.9.tgz#30cf5f11557dac6ba51bc1ba2878824b5a3292cd"
|
||||
integrity sha512-QIJANZt6tkRLoeRsIa0KoC4+MMywTIPQbthL2U2VXHLyrRan00+Yc2M+NFP85/EnPxNEUCRf19l4WKNaPtyetQ==
|
||||
"@mui/material-nextjs@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/material-nextjs/-/material-nextjs-7.3.6.tgz#199555bb3a7d6c49bdd40d08b7cf4da82917392f"
|
||||
integrity sha512-2fP1QyBRY9rT02/ykNw0yz9aAWy5ZVp+YzkLEqio9VTkIYkon/xSUQX7PfHLOWUbKlkwoKtCQOjsvrYtSOyKnQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
|
||||
"@mui/material@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/material/-/material-6.1.9.tgz#e596944ea4d95f16bdc9dd83ebd1b7067e5957be"
|
||||
integrity sha512-NwqIN0bdsgzSbZd5JFcC+2ez0XW/XNs8uiV2PDHrqQ4qf/FEasFJG1z6g8JbCN0YlTrHZekVb17X0Fv0qcYJfQ==
|
||||
"@mui/material@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/material/-/material-7.3.6.tgz#6bd4705ca97d80fd5ae1b6b2b7c56ba0cfab0d6a"
|
||||
integrity sha512-R4DaYF3dgCQCUAkr4wW1w26GHXcf5rCmBRHVBuuvJvaGLmZdD8EjatP80Nz5JCw0KxORAzwftnHzXVnjR8HnFw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@mui/core-downloads-tracker" "^6.1.9"
|
||||
"@mui/system" "^6.1.9"
|
||||
"@mui/types" "^7.2.19"
|
||||
"@mui/utils" "^6.1.9"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
"@mui/core-downloads-tracker" "^7.3.6"
|
||||
"@mui/system" "^7.3.6"
|
||||
"@mui/types" "^7.4.9"
|
||||
"@mui/utils" "^7.3.6"
|
||||
"@popperjs/core" "^2.11.8"
|
||||
"@types/react-transition-group" "^4.4.11"
|
||||
"@types/react-transition-group" "^4.4.12"
|
||||
clsx "^2.1.1"
|
||||
csstype "^3.1.3"
|
||||
prop-types "^15.8.1"
|
||||
react-is "^18.3.1"
|
||||
react-is "^19.2.0"
|
||||
react-transition-group "^4.4.5"
|
||||
|
||||
"@mui/private-theming@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.1.9.tgz#14b84e31bff4caef9b85d77870869d733fde39f6"
|
||||
integrity sha512-7aum/O1RquBYhfwL/7egDyl9GqJgPM6hoJDFFBbhF6Sgv9yI9v4w3ArKUkuVvR0CtVj4NXRVMKEioh1bjUzvuA==
|
||||
"@mui/private-theming@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.3.6.tgz#1ca65a08e8f7f538d9a10ba974f1f4db5231a969"
|
||||
integrity sha512-Ws9wZpqM+FlnbZXaY/7yvyvWQo1+02Tbx50mVdNmzWEi51C51y56KAbaDCYyulOOBL6BJxuaqG8rNNuj7ivVyw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@mui/utils" "^6.1.9"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
"@mui/utils" "^7.3.6"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@mui/private-theming@^7.2.0":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-7.2.0.tgz#8d601e0949c81598da4621559181f1ac8231efc5"
|
||||
integrity sha512-y6N1Yt3T5RMxVFnCh6+zeSWBuQdNDm5/UlM0EAYZzZR/1u+XKJWYQmbpx4e+F+1EpkYi3Nk8KhPiQDi83M3zIw==
|
||||
"@mui/styled-engine@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.3.6.tgz#dde8e6ae32c9b5b400dcd37afd9514a5344f7d91"
|
||||
integrity sha512-+wiYbtvj+zyUkmDB+ysH6zRjuQIJ+CM56w0fEXV+VDNdvOuSywG+/8kpjddvvlfMLsaWdQe5oTuYGBcodmqGzQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.27.6"
|
||||
"@mui/utils" "^7.2.0"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@mui/styled-engine@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.1.9.tgz#ef2c39d3e3eda94490e1822d1f23c4fb924651f1"
|
||||
integrity sha512-xynSLlJRxHLzSfQaiDjkaTx8LiFb9ByVa7aOdwFnTxGWFMY1F+mkXwAUY4jDDE+MAxkWxlzzQE0wOohnsxhdQg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@emotion/cache" "^11.13.5"
|
||||
"@emotion/serialize" "^1.3.3"
|
||||
"@emotion/sheet" "^1.4.0"
|
||||
csstype "^3.1.3"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@mui/styled-engine@^7.2.0":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-7.2.0.tgz#98bf5abe1f80adabd66d4f9c13ea9e4a2616908e"
|
||||
integrity sha512-yq08xynbrNYcB1nBcW9Fn8/h/iniM3ewRguGJXPIAbHvxEF7Pz95kbEEOAAhwzxMX4okhzvHmk0DFuC5ayvgIQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.27.6"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
"@emotion/cache" "^11.14.0"
|
||||
"@emotion/serialize" "^1.3.3"
|
||||
"@emotion/sheet" "^1.4.0"
|
||||
csstype "^3.1.3"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@mui/system@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.1.9.tgz#7b8735e7cbb6df552416607b9c00404557aa4e31"
|
||||
integrity sha512-8x+RucnNp21gfFYsklCaZf0COXbv3+v0lrVuXONxvPEkESi2rwLlOi8UPJfcz6LxZOAX3v3oQ7qw18vnpgueRg==
|
||||
"@mui/system@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.3.6.tgz#460f82fc6fe1b79b8c04dc97694f6b162ffc3d25"
|
||||
integrity sha512-8fehAazkHNP1imMrdD2m2hbA9sl7Ur6jfuNweh5o4l9YPty4iaZzRXqYvBCWQNwFaSHmMEj2KPbyXGp7Bt73Rg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@mui/private-theming" "^6.1.9"
|
||||
"@mui/styled-engine" "^6.1.9"
|
||||
"@mui/types" "^7.2.19"
|
||||
"@mui/utils" "^6.1.9"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
"@mui/private-theming" "^7.3.6"
|
||||
"@mui/styled-engine" "^7.3.6"
|
||||
"@mui/types" "^7.4.9"
|
||||
"@mui/utils" "^7.3.6"
|
||||
clsx "^2.1.1"
|
||||
csstype "^3.1.3"
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@mui/system@^7.1.1":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@mui/system/-/system-7.2.0.tgz#b13f99cb5937912228f29175d6ea67857d626d70"
|
||||
integrity sha512-PG7cm/WluU6RAs+gNND2R9vDwNh+ERWxPkqTaiXQJGIFAyJ+VxhyKfzpdZNk0z0XdmBxxi9KhFOpgxjehf/O0A==
|
||||
"@mui/types@^7.4.9":
|
||||
version "7.4.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.9.tgz#99accc87920b4c8c4ce33c5076a58f7f81b528fa"
|
||||
integrity sha512-dNO8Z9T2cujkSIaCnWwprfeKmTWh97cnjkgmpFJ2sbfXLx8SMZijCYHOtP/y5nnUb/Rm2omxbDMmtUoSaUtKaw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.27.6"
|
||||
"@mui/private-theming" "^7.2.0"
|
||||
"@mui/styled-engine" "^7.2.0"
|
||||
"@mui/types" "^7.4.4"
|
||||
"@mui/utils" "^7.2.0"
|
||||
clsx "^2.1.1"
|
||||
csstype "^3.1.3"
|
||||
prop-types "^15.8.1"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
|
||||
"@mui/types@^7.2.19":
|
||||
version "7.2.19"
|
||||
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.19.tgz#c941954dd24393fdce5f07830d44440cf4ab6c80"
|
||||
integrity sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==
|
||||
|
||||
"@mui/types@^7.4.3", "@mui/types@^7.4.4":
|
||||
version "7.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.4.4.tgz#0c5cd56905231e27096b41d096f1c948c26bdd5d"
|
||||
integrity sha512-p63yhbX52MO/ajXC7hDHJA5yjzJekvWD3q4YDLl1rSg+OXLczMYPvTuSuviPRCgRX8+E42RXz1D/dz9SxPSlWg==
|
||||
"@mui/utils@^7.3.6":
|
||||
version "7.3.6"
|
||||
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.3.6.tgz#508fbe864832f99b215d134eb89e1198cdc66b34"
|
||||
integrity sha512-jn+Ba02O6PiFs7nKva8R2aJJ9kJC+3kQ2R0BbKNY3KQQ36Qng98GnPRFTlbwYTdMD6hLEBKaMLUktyg/rTfd2w==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.27.6"
|
||||
|
||||
"@mui/utils@^6.1.9":
|
||||
version "6.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.1.9.tgz#821612300f66684054fd6e36336cfea91f050fbe"
|
||||
integrity sha512-N7uzBp7p2or+xanXn3aH2OTINC6F/Ru/U8h6amhRZEev8bJhKN86rIDIoxZZ902tj+09LXtH83iLxFMjMHyqNA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.0"
|
||||
"@mui/types" "^7.2.19"
|
||||
"@types/prop-types" "^15.7.13"
|
||||
clsx "^2.1.1"
|
||||
prop-types "^15.8.1"
|
||||
react-is "^18.3.1"
|
||||
|
||||
"@mui/utils@^7.1.1", "@mui/utils@^7.2.0":
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-7.2.0.tgz#31062697b41aa8ea8ef04e3d3fadca1dec3e1de1"
|
||||
integrity sha512-O0i1GQL6MDzhKdy9iAu5Yr0Sz1wZjROH1o3aoztuivdCXqEeQYnEjTDiRLGuFxI9zrUbTHBwobMyQH5sNtyacw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.27.6"
|
||||
"@mui/types" "^7.4.4"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
"@mui/types" "^7.4.9"
|
||||
"@types/prop-types" "^15.7.15"
|
||||
clsx "^2.1.1"
|
||||
prop-types "^15.8.1"
|
||||
react-is "^19.1.0"
|
||||
react-is "^19.2.0"
|
||||
|
||||
"@next/env@16.1.0":
|
||||
version "16.1.0"
|
||||
@@ -776,6 +711,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901"
|
||||
integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
|
||||
|
||||
"@types/pako@^2.0.3":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.4.tgz#c3575ef8125e176c345fa0e7b301c1db41170c15"
|
||||
integrity sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==
|
||||
|
||||
"@types/parse-json@^4.0.0":
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
|
||||
@@ -786,16 +726,6 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.5.tgz#72499abbb4c4ec9982446509d2f14fb8483869d6"
|
||||
integrity sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==
|
||||
|
||||
"@types/prop-types@*":
|
||||
version "15.7.12"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
|
||||
integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
|
||||
|
||||
"@types/prop-types@^15.7.13":
|
||||
version "15.7.13"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451"
|
||||
integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==
|
||||
|
||||
"@types/prop-types@^15.7.15":
|
||||
version "15.7.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7"
|
||||
@@ -806,20 +736,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.3.tgz#85f1d1d17569b28b8db45e16e996407a56b0ab04"
|
||||
integrity sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==
|
||||
|
||||
"@types/react-transition-group@^4.4.11":
|
||||
version "4.4.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.11.tgz#d963253a611d757de01ebb241143b1017d5d63d5"
|
||||
integrity sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==
|
||||
dependencies:
|
||||
"@types/react" "*"
|
||||
|
||||
"@types/react@*":
|
||||
version "18.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.2.tgz#462ae4904973bc212fa910424d901e3d137dbfcd"
|
||||
integrity sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==
|
||||
dependencies:
|
||||
"@types/prop-types" "*"
|
||||
csstype "^3.0.2"
|
||||
"@types/react-transition-group@^4.4.12":
|
||||
version "4.4.12"
|
||||
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
|
||||
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
|
||||
|
||||
"@types/trusted-types@^2.0.7":
|
||||
version "2.0.7"
|
||||
@@ -941,10 +861,10 @@
|
||||
remark-github-blockquote-alert "^1.0.0"
|
||||
unist-util-visit "^5.0.0"
|
||||
|
||||
"@uiw/react-md-editor@^4.0.8":
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@uiw/react-md-editor/-/react-md-editor-4.0.8.tgz#40b37e1e26966bccb4ee3dab33239da66bc698dd"
|
||||
integrity sha512-S3mOzZeGmJNhzdXJxRTCwsFMDp8nBWeQUf59cK3L6QHzDUHnRoHpcmWpfVRyKGKSg8zaI2+meU5cYWf8kYn3mQ==
|
||||
"@uiw/react-md-editor@^4.0.11":
|
||||
version "4.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@uiw/react-md-editor/-/react-md-editor-4.0.11.tgz#cd33452fe83b91c836badfee567c8d0b57c1a8b8"
|
||||
integrity sha512-F0OR5O1v54EkZYvJj3ew0I7UqLiPeU34hMAY4MdXS3hI86rruYi5DHVkG/VuvLkUZW7wIETM2QFtZ459gKIjQA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.14.6"
|
||||
"@uiw/react-markdown-preview" "^5.0.6"
|
||||
@@ -1140,11 +1060,6 @@ arrify@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/arrify/-/arrify-3.0.0.tgz#ccdefb8eaf2a1d2ab0da1ca2ce53118759fd46bc"
|
||||
integrity sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==
|
||||
|
||||
atob@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
||||
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
|
||||
|
||||
available-typed-arrays@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
|
||||
@@ -1223,11 +1138,6 @@ browserslist@^4.23.0:
|
||||
node-releases "^2.0.14"
|
||||
update-browserslist-db "^1.0.13"
|
||||
|
||||
btoa@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
|
||||
integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
|
||||
|
||||
builtin-modules@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
|
||||
@@ -1484,10 +1394,10 @@ data-view-byte-offset@^1.0.0:
|
||||
es-errors "^1.3.0"
|
||||
is-data-view "^1.0.1"
|
||||
|
||||
date-fns@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf"
|
||||
integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==
|
||||
date-fns@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14"
|
||||
integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==
|
||||
|
||||
debug@^3.2.7:
|
||||
version "3.2.7"
|
||||
@@ -2218,6 +2128,15 @@ fast-levenshtein@^2.0.6:
|
||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
||||
|
||||
fast-png@^6.2.0:
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-png/-/fast-png-6.4.0.tgz#807fc353ccab060d09151b7d082786e02d8e92d6"
|
||||
integrity sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==
|
||||
dependencies:
|
||||
"@types/pako" "^2.0.3"
|
||||
iobuffer "^5.3.2"
|
||||
pako "^2.1.0"
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.17.1"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
|
||||
@@ -2824,6 +2743,11 @@ interpret@^1.4.0:
|
||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
|
||||
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
|
||||
|
||||
iobuffer@^5.3.2:
|
||||
version "5.4.0"
|
||||
resolved "https://registry.yarnpkg.com/iobuffer/-/iobuffer-5.4.0.tgz#f85dff957fd0579257472f0a4cfe5ed3430e63e1"
|
||||
integrity sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==
|
||||
|
||||
irregular-plurals@^3.3.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.5.0.tgz#0835e6639aa8425bdc8b0d33d0dc4e89d9c01d2b"
|
||||
@@ -3218,14 +3142,13 @@ json5@^1.0.2:
|
||||
dependencies:
|
||||
minimist "^1.2.0"
|
||||
|
||||
jspdf@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-3.0.1.tgz#d81e1964f354f60412516eb2449ea2cccd4d2a3b"
|
||||
integrity sha512-qaGIxqxetdoNnFQQXxTKUD9/Z7AloLaw94fFsOiJMxbfYdBbrBuhWmbzI8TVjrw7s3jBY1PFHofBKMV/wZPapg==
|
||||
jspdf@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jspdf/-/jspdf-4.0.0.tgz#3731c0a1a7d8afe28c681891236f8ad4a662d893"
|
||||
integrity sha512-w12U97Z6edKd2tXDn3LzTLg7C7QLJlx0BPfM3ecjK2BckUl9/81vZ+r5gK4/3KQdhAcEZhENUxRhtgYBj75MqQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.26.7"
|
||||
atob "^2.1.2"
|
||||
btoa "^1.2.1"
|
||||
"@babel/runtime" "^7.28.4"
|
||||
fast-png "^6.2.0"
|
||||
fflate "^0.8.1"
|
||||
optionalDependencies:
|
||||
canvg "^3.0.11"
|
||||
@@ -3341,10 +3264,10 @@ markdown-table@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a"
|
||||
integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==
|
||||
|
||||
marked@^16.1.1:
|
||||
version "16.1.1"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-16.1.1.tgz#a7839dcf19fa5e349cad12c561f231320690acd4"
|
||||
integrity sha512-ij/2lXfCRT71L6u0M29tJPhP0bM5shLL3u5BePhFwPELj2blMJ6GDtD7PfJhRLhJ/c2UwrK17ySVcDzy2YHjHQ==
|
||||
marked@^17.0.1:
|
||||
version "17.0.1"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-17.0.1.tgz#9db34197ac145e5929572ee49ef701e37ee9b2e6"
|
||||
integrity sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==
|
||||
|
||||
mdast-util-find-and-replace@^3.0.0:
|
||||
version "3.0.2"
|
||||
@@ -4117,6 +4040,11 @@ p-try@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
||||
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
||||
|
||||
pako@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
|
||||
integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
|
||||
|
||||
parent-module@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
||||
@@ -4344,15 +4272,10 @@ react-is@^16.13.1, react-is@^16.7.0:
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
||||
react-is@^18.3.1:
|
||||
version "18.3.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
|
||||
integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
|
||||
|
||||
react-is@^19.1.0:
|
||||
version "19.1.0"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.1.0.tgz#805bce321546b7e14c084989c77022351bbdd11b"
|
||||
integrity sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==
|
||||
react-is@^19.2.0:
|
||||
version "19.2.3"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.3.tgz#eec2feb69c7fb31f77d0b5c08c10ae1c88886b29"
|
||||
integrity sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==
|
||||
|
||||
react-markdown@~9.0.1:
|
||||
version "9.0.3"
|
||||
@@ -4380,10 +4303,10 @@ react-transition-group@^4.4.5:
|
||||
loose-envify "^1.4.0"
|
||||
prop-types "^15.6.2"
|
||||
|
||||
react-virtuoso@^4.10.2:
|
||||
version "4.10.2"
|
||||
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.10.2.tgz#a27308a3c4cfeb24722032acc0b6a46055c26967"
|
||||
integrity sha512-os6n9QKeKRF+8mnQR/vGy/xrFf6vXIzuaAVL54q5k2st2d5QIEwI+KDKaflMUmMvnDbPxf68bs+CF5bY3YI7qA==
|
||||
react-virtuoso@^4.18.1:
|
||||
version "4.18.1"
|
||||
resolved "https://registry.yarnpkg.com/react-virtuoso/-/react-virtuoso-4.18.1.tgz#3eb7078f2739a31b96c723374019e587deeb6ebc"
|
||||
integrity sha512-KF474cDwaSb9+SJ380xruBB4P+yGWcVkcu26HtMqYNMTYlYbrNy8vqMkE+GpAApPPufJqgOLMoWMFG/3pJMXUA==
|
||||
|
||||
react@^19.2.3:
|
||||
version "19.2.3"
|
||||
|
||||
Reference in New Issue
Block a user