feat: transloadit

This commit is contained in:
Nevo David 2025-06-28 17:03:33 +07:00
parent 2c4d0a8234
commit 0f8b6cf02f
9 changed files with 660 additions and 162 deletions

View File

@ -86,6 +86,18 @@ export class MediaController {
);
}
@Post('/save-media')
async saveMedia(
@GetOrgFromRequest() org: Organization,
@Req() req: Request,
@Body('name') name: string
) {
if (!name) {
return false;
}
return this._mediaService.saveFile(org.id, name, process.env.CLOUDFLARE_BUCKET_URL + '/' + name);
}
@Post('/upload-simple')
@UseInterceptors(FileInterceptor('file'))
async uploadSimple(

View File

@ -3,6 +3,8 @@
@tailwind utilities;
@import './colors.scss';
@import './polonto.css';
@import '@uppy/core/dist/style.css';
@import '@uppy/dashboard/dist/style.css';
body,
html {
@ -480,3 +482,52 @@ html[dir='rtl'] .lbox {
html[dir='rtl'] [dir='ltr'] {
direction: rtl !important;
}
//
.uppy-Dashboard-AddFiles {
display: none !important;
}
.uppy-Dashboard-inner * {
@apply text-textColor;
}
.uppy-Dashboard-inner,
.uppy-StatusBar {
background: transparent;
border-radius: 0 !important;
border: 0 !important;
}
.bigWrap .uppy-StatusBar-statusSecondary {
display: none !important;
opacity: 0 !important;
}
.bigWrap .uppy-StatusBar {
height: 32px !important;
}
.uppy-StatusBar {
//@apply bg-customColor55;
}
//
//.uppy-Dashboard-inner {
// height: 70px !important;
//}
.uppy-Dashboard-files {
display: none;
}
//
.uppy-DashboardContent-bar {
display: none !important;
}
.uppy-StatusBar-progress {
display: block;
}
.uppy-StatusBar-content {
}
//
//.uppy-StatusBar-content {
// padding: 0 !important;
//}
//

View File

@ -1,11 +1,12 @@
import { TopTitle } from '@gitroom/frontend/components/launches/helpers/top.title.component';
import React, { FC, useCallback, useMemo, useState } from 'react';
import React, { FC, useCallback, useState } from 'react';
import { useModals } from '@mantine/modals';
import { Integration } from '@prisma/client';
import { useFetch } from '@gitroom/helpers/utils/custom.fetch';
import { Button } from '@gitroom/react/form/button';
import { Slider } from '@gitroom/react/form/slider';
import { useT } from '@gitroom/react/translation/get.transation.service.client';
export const Element: FC<{
setting: any;
onChange: (value: any) => void;

View File

@ -180,7 +180,6 @@ export const MediaBox: FC<{
},
]
);
// closeModal();
},
[selectedMedia]
);
@ -204,7 +203,8 @@ export const MediaBox: FC<{
closeModal();
}, [selectedMedia]);
const { data, mutate } = useSWR(`get-media-${page}`, loadMedia);
const finishUpload = useCallback(async () => {
const finishUpload = useCallback(async (res: any) => {
const lastMedia = mediaList?.[0]?.id;
const newData = await mutate();
const untilLastMedia = newData.results.findIndex(
@ -216,6 +216,7 @@ export const MediaBox: FC<{
);
addNewMedia(onlyNewMedia)();
}, [mutate, addNewMedia, mediaList, selectedMedia]);
const dragAndDrop = useCallback(
async (event: ClipboardEvent<HTMLDivElement> | File[]) => {
// @ts-ignore
@ -255,7 +256,6 @@ export const MediaBox: FC<{
ref.current.setOptions({
autoProceed: true,
});
finishUpload();
},
[mutate, addNewMedia, mediaList, selectedMedia]
);
@ -301,7 +301,7 @@ export const MediaBox: FC<{
</div>
<button
onClick={closeModal}
className="outline-none z-[300] absolute end-[20px] top-[20px] mantine-UnstyledButton-root mantine-ActionIcon-root bg-primary hover:bg-tableBorder cursor-pointer mantine-Modal-close mantine-1dcetaa"
className="outline-none z-[300] absolute end-[20px] top-[15px] mantine-UnstyledButton-root mantine-ActionIcon-root bg-primary hover:bg-tableBorder cursor-pointer mantine-Modal-close mantine-1dcetaa"
type="button"
>
<svg
@ -335,7 +335,7 @@ export const MediaBox: FC<{
{!!mediaList.length && (
<>
<div className="flex absolute h-[57px] w-full start-0 top-0 rounded-lg transition-all group text-sm font-semibold bg-transparent text-gray-800 hover:bg-gray-100 focus:text-primary-500">
<div className="relative flex flex-1 pe-[45px] gap-2 items-center justify-center">
<div className="relative flex flex-1 pe-[55px] gap-2 items-center justify-center">
<div className="flex-1" />
<MultipartFileUploader
uppRef={ref}

View File

@ -4,16 +4,15 @@ import Uppy, { UploadResult } from '@uppy/core';
// @ts-ignore
import { useFetch } from '@gitroom/helpers/utils/custom.fetch';
import { getUppyUploadPlugin } from '@gitroom/react/helpers/uppy.upload';
import { FileInput, ProgressBar } from '@uppy/react';
import { Dashboard, FileInput, ProgressBar } from '@uppy/react';
// Uppy styles
import '@uppy/core/dist/style.min.css';
import '@uppy/dashboard/dist/style.min.css';
import { useVariables } from '@gitroom/react/helpers/variable.context';
import Compressor from '@uppy/compressor';
import { useT } from '@gitroom/react/translation/get.transation.service.client';
import { useToaster } from '@gitroom/react/toaster/toaster';
import { useLaunchStore } from '@gitroom/frontend/components/new-launch/store';
import { uniq } from 'lodash';
export function MultipartFileUploader({
onUploadSuccess,
@ -60,7 +59,7 @@ export function useUppyUploader(props: {
onUploadSuccess: (result: UploadResult) => void;
allowedFileTypes: string;
}) {
const setLocked = useLaunchStore(state => state.setLocked);
const setLocked = useLaunchStore((state) => state.setLocked);
const toast = useToaster();
const { storageProvider, backendUrl, disableImageCompression, transloadit } =
useVariables();
@ -147,10 +146,43 @@ export function useUppyUploader(props: {
});
uppy2.on('error', (result) => {
setLocked(false);
})
uppy2.on('complete', (result) => {
});
uppy2.on('complete', async (result) => {
if (storageProvider === 'local') {
setLocked(false);
onUploadSuccess(result.successful.map((p) => p.response.body));
return;
}
if (transloadit.length > 0) {
// @ts-ignore
const allRes = result.transloadit[0].results;
const toSave = uniq<string>(
allRes[Object.keys(allRes)[0]].flatMap((item: any) =>
item.url.split('/').pop()
)
);
const loadAllMedia = await Promise.all(
toSave.map(async (name) => {
return (
await fetch('/media/save-media', {
method: 'POST',
body: JSON.stringify({
name,
}),
})
).json();
})
);
setLocked(false);
onUploadSuccess(loadAllMedia);
return;
}
setLocked(false);
onUploadSuccess(result);
onUploadSuccess(result.successful.map((p) => p.response.body.saved));
});
uppy2.on('upload-success', (file, response) => {
// @ts-ignore
@ -188,8 +220,20 @@ export function MultipartFileUploaderAfter({
return (
<>
{/* <Dashboard uppy={uppy} /> */}
<div className="pointer-events-none">
<ProgressBar uppy={uppyInstance} />
<div className="pointer-events-none bigWrap">
<Dashboard
height={23}
width={200}
className=""
uppy={uppyInstance}
id={`media-uploader`}
showProgressDetails={true}
hideUploadButton={true}
hideRetryButton={true}
hidePauseResumeButton={true}
hideCancelButton={true}
hideProgressAfterFinish={true}
/>
</div>
<FileInput
uppy={uppyInstance}

View File

@ -36,7 +36,7 @@ import {
import { DropEvent, FileRejection, useDropzone } from 'react-dropzone';
import { useUppyUploader } from '@gitroom/frontend/components/media/new.uploader';
import { UploadResult } from '@uppy/core';
import { ProgressBar } from '@uppy/react';
import { Dashboard, ProgressBar } from '@uppy/react';
export const EditorWrapper: FC<{
totalPosts: number;
value: string;
@ -382,13 +382,8 @@ export const Editor: FC<{
const t = useT();
const uppy = useUppyUploader({
onUploadSuccess: (result: UploadResult<any, any>) => {
appendImages([
...result.successful.map((p) => ({
id: p.response.body.saved.id,
path: p.response.body.saved.path,
})),
]);
onUploadSuccess: (result: any) => {
appendImages(result);
uppy.clear();
},
allowedFileTypes: 'image/*,video/mp4',
@ -436,16 +431,8 @@ export const Editor: FC<{
[props.value, id]
);
return (
<div {...getRootProps()}>
<div>
<div className="relative bg-customColor2" id={id}>
<div
className={clsx(
'absolute left-0 top-0 w-full h-full bg-black/70 z-[300] transition-all items-center justify-center flex text-white text-sm',
!isDragActive ? 'pointer-events-none opacity-0' : 'opacity-100'
)}
>
Drop your files here to upload
</div>
<div className="flex gap-[5px] bg-customColor55 border-b border-t border-customColor3 justify-center items-center p-[5px]">
<SignatureBox editor={newRef?.current?.editor!} />
<UText
@ -479,33 +466,54 @@ export const Editor: FC<{
</div>
</div>
<div className="relative">
<div className="pointer-events-none absolute end-0 bottom-0 z-[200]">
<ProgressBar id={`prog-${num}`} uppy={uppy} />
</div>
<CopilotTextarea
disableBranding={true}
ref={newRef}
className={clsx(
'!min-h-40 p-2 overflow-x-hidden scrollbar scrollbar-thumb-[#612AD5] bg-customColor2 outline-none',
props.totalPosts > 1 && '!max-h-80'
)}
value={props.value}
onChange={(e) => {
props?.onChange?.(e.target.value);
}}
onPaste={paste}
placeholder={t('write_your_reply', 'Write your post...')}
autosuggestionsConfig={{
textareaPurpose: `Assist me in writing social media posts.`,
chatApiConfigs: {
suggestionsApiConfig: {
maxTokens: 20,
stop: ['.', '?', '!'],
{/*<ProgressBar id={`prog-${num}`} uppy={uppy} />*/}
<div {...getRootProps()}>
<div
className={clsx(
'absolute left-0 top-0 w-full h-full bg-black/70 z-[300] transition-all items-center justify-center flex text-white text-sm',
!isDragActive ? 'pointer-events-none opacity-0' : 'opacity-100'
)}
>
Drop your files here to upload
</div>
<CopilotTextarea
disableBranding={true}
ref={newRef}
className={clsx(
'!min-h-40 p-2 overflow-x-hidden scrollbar scrollbar-thumb-[#612AD5] bg-customColor2 outline-none',
props.totalPosts > 1 && '!max-h-80'
)}
value={props.value}
onChange={(e) => {
props?.onChange?.(e.target.value);
}}
onPaste={paste}
placeholder={t('write_your_reply', 'Write your post...')}
autosuggestionsConfig={{
textareaPurpose: `Assist me in writing social media posts.`,
chatApiConfigs: {
suggestionsApiConfig: {
maxTokens: 20,
stop: ['.', '?', '!'],
},
},
},
disabled: user?.tier?.ai ? !autoComplete : true,
}}
/>
disabled: user?.tier?.ai ? !autoComplete : true,
}}
/>
<Dashboard
height={46}
className=""
uppy={uppy}
id={`prog-${num}`}
showProgressDetails={true}
hideUploadButton={true}
hideRetryButton={true}
hidePauseResumeButton={true}
hideCancelButton={true}
hideProgressAfterFinish={true}
/>
</div>
</div>
{validateChars && props.value.length < 6 && (
<div className="px-3 text-sm bg-red-600 !text-white mb-[4px]">

View File

@ -30,6 +30,8 @@ export const getUppyUploadPlugin = (
return {
plugin: Transloadit,
options: {
waitForEncoding: true,
alwaysRunAssembly: true,
assemblyOptions: {
params: {
auth: { key: transloadit[0] },

View File

@ -110,15 +110,15 @@
"@uiw/react-md-editor": "^4.0.3",
"@uppy/aws-s3": "^4.1.0",
"@uppy/compressor": "^2.1.1",
"@uppy/core": "^4.2.0",
"@uppy/dashboard": "^4.1.0",
"@uppy/drag-drop": "^4.0.2",
"@uppy/file-input": "^4.0.1",
"@uppy/progress-bar": "^4.0.0",
"@uppy/react": "^4.0.2",
"@uppy/status-bar": "^4.0.3",
"@uppy/core": "^4.4.6",
"@uppy/dashboard": "^4.3.4",
"@uppy/drag-drop": "^4.1.3",
"@uppy/file-input": "^4.1.3",
"@uppy/progress-bar": "^4.2.1",
"@uppy/react": "^4.3.0",
"@uppy/status-bar": "^4.1.3",
"@uppy/transloadit": "^4.2.2",
"@uppy/xhr-upload": "^4.1.0",
"@uppy/xhr-upload": "^4.3.3",
"accept-language": "^3.0.20",
"ai": "^4.0.22",
"algoliasearch": "^5.18.0",

View File

@ -203,37 +203,37 @@ importers:
version: 4.0.6(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@uppy/aws-s3':
specifier: ^4.1.0
version: 4.2.3(@uppy/core@4.4.4)
version: 4.2.3(@uppy/core@4.4.6)
'@uppy/compressor':
specifier: ^2.1.1
version: 2.2.1(@uppy/core@4.4.4)
version: 2.2.1(@uppy/core@4.4.6)
'@uppy/core':
specifier: ^4.2.0
version: 4.4.4
specifier: ^4.4.6
version: 4.4.6
'@uppy/dashboard':
specifier: ^4.1.0
version: 4.3.3(@uppy/core@4.4.4)
specifier: ^4.3.4
version: 4.3.4(@uppy/core@4.4.6)
'@uppy/drag-drop':
specifier: ^4.0.2
version: 4.1.2(@uppy/core@4.4.4)
specifier: ^4.1.3
version: 4.1.3(@uppy/core@4.4.6)
'@uppy/file-input':
specifier: ^4.0.1
version: 4.1.2(@uppy/core@4.4.4)
specifier: ^4.1.3
version: 4.1.3(@uppy/core@4.4.6)
'@uppy/progress-bar':
specifier: ^4.0.0
version: 4.2.1(@uppy/core@4.4.4)
specifier: ^4.2.1
version: 4.2.1(@uppy/core@4.4.6)
'@uppy/react':
specifier: ^4.0.2
version: 4.2.3(@uppy/core@4.4.4)(@uppy/dashboard@4.3.3(@uppy/core@4.4.4))(@uppy/drag-drop@4.1.2(@uppy/core@4.4.4))(@uppy/file-input@4.1.2(@uppy/core@4.4.4))(@uppy/progress-bar@4.2.1(@uppy/core@4.4.4))(@uppy/status-bar@4.1.3(@uppy/core@4.4.4))(react@18.3.1)
specifier: ^4.3.0
version: 4.3.0(@uppy/core@4.4.6)(@uppy/dashboard@4.3.4(@uppy/core@4.4.6))(@uppy/drag-drop@4.1.3(@uppy/core@4.4.6))(@uppy/file-input@4.1.3(@uppy/core@4.4.6))(@uppy/progress-bar@4.2.1(@uppy/core@4.4.6))(@uppy/status-bar@4.1.3(@uppy/core@4.4.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@uppy/status-bar':
specifier: ^4.0.3
version: 4.1.3(@uppy/core@4.4.4)
specifier: ^4.1.3
version: 4.1.3(@uppy/core@4.4.6)
'@uppy/transloadit':
specifier: ^4.2.2
version: 4.2.2(@uppy/core@4.4.4)
version: 4.2.2(@uppy/core@4.4.6)
'@uppy/xhr-upload':
specifier: ^4.1.0
version: 4.3.3(@uppy/core@4.4.4)
specifier: ^4.3.3
version: 4.3.3(@uppy/core@4.4.6)
accept-language:
specifier: ^3.0.20
version: 3.0.20
@ -4034,6 +4034,88 @@ packages:
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines: {node: '>=8.0.0'}
'@parcel/watcher-android-arm64@2.5.1':
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [android]
'@parcel/watcher-darwin-arm64@2.5.1':
resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [darwin]
'@parcel/watcher-darwin-x64@2.5.1':
resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [darwin]
'@parcel/watcher-freebsd-x64@2.5.1':
resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [freebsd]
'@parcel/watcher-linux-arm-glibc@2.5.1':
resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
'@parcel/watcher-linux-arm-musl@2.5.1':
resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
'@parcel/watcher-linux-arm64-glibc@2.5.1':
resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
'@parcel/watcher-linux-arm64-musl@2.5.1':
resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
'@parcel/watcher-linux-x64-glibc@2.5.1':
resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
'@parcel/watcher-linux-x64-musl@2.5.1':
resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
'@parcel/watcher-win32-arm64@2.5.1':
resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [win32]
'@parcel/watcher-win32-ia32@2.5.1':
resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
engines: {node: '>= 10.0.0'}
cpu: [ia32]
os: [win32]
'@parcel/watcher-win32-x64@2.5.1':
resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [win32]
'@parcel/watcher@2.5.1':
resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
engines: {node: '>= 10.0.0'}
'@particle-network/analytics@1.0.2':
resolution: {integrity: sha512-E4EpTRYcfNOkxj+bgNdQydBrvdLGo4HfVStZCuOr3967dYek30r6L7Nkaa9zJXRE2eGT4lPvcAXDV2WxDZl/Xg==}
@ -5581,12 +5663,25 @@ packages:
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
'@tailwindcss/cli@4.1.11':
resolution: {integrity: sha512-7RAFOrVaXCFz5ooEG36Kbh+sMJiI2j4+Ozp71smgjnLfBRu7DTfoq8DsTvzse2/6nDeo2M3vS/FGaxfDgr3rtQ==}
hasBin: true
'@tailwindcss/node@4.1.11':
resolution: {integrity: sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==}
'@tailwindcss/node@4.1.6':
resolution: {integrity: sha512-ed6zQbgmKsjsVvodAS1q1Ld2BolEuxJOSyyNc+vhkjdmfNUDCmQnlXBfQkHrlzNmslxHsQU/bFmzcEbv4xXsLg==}
'@tailwindcss/node@4.1.7':
resolution: {integrity: sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==}
'@tailwindcss/oxide-android-arm64@4.1.11':
resolution: {integrity: sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
'@tailwindcss/oxide-android-arm64@4.1.6':
resolution: {integrity: sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==}
engines: {node: '>= 10'}
@ -5599,6 +5694,12 @@ packages:
cpu: [arm64]
os: [android]
'@tailwindcss/oxide-darwin-arm64@4.1.11':
resolution: {integrity: sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@tailwindcss/oxide-darwin-arm64@4.1.6':
resolution: {integrity: sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==}
engines: {node: '>= 10'}
@ -5611,6 +5712,12 @@ packages:
cpu: [arm64]
os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.1.11':
resolution: {integrity: sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.1.6':
resolution: {integrity: sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==}
engines: {node: '>= 10'}
@ -5623,6 +5730,12 @@ packages:
cpu: [x64]
os: [darwin]
'@tailwindcss/oxide-freebsd-x64@4.1.11':
resolution: {integrity: sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
'@tailwindcss/oxide-freebsd-x64@4.1.6':
resolution: {integrity: sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==}
engines: {node: '>= 10'}
@ -5635,6 +5748,12 @@ packages:
cpu: [x64]
os: [freebsd]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11':
resolution: {integrity: sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6':
resolution: {integrity: sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==}
engines: {node: '>= 10'}
@ -5647,6 +5766,12 @@ packages:
cpu: [arm]
os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.1.11':
resolution: {integrity: sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.1.6':
resolution: {integrity: sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==}
engines: {node: '>= 10'}
@ -5659,6 +5784,12 @@ packages:
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.1.11':
resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.1.6':
resolution: {integrity: sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==}
engines: {node: '>= 10'}
@ -5671,6 +5802,12 @@ packages:
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.1.11':
resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.1.6':
resolution: {integrity: sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==}
engines: {node: '>= 10'}
@ -5683,6 +5820,12 @@ packages:
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.1.11':
resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.1.6':
resolution: {integrity: sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==}
engines: {node: '>= 10'}
@ -5695,6 +5838,18 @@ packages:
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-wasm32-wasi@4.1.11':
resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
- '@napi-rs/wasm-runtime'
- '@emnapi/core'
- '@emnapi/runtime'
- '@tybys/wasm-util'
- '@emnapi/wasi-threads'
- tslib
'@tailwindcss/oxide-wasm32-wasi@4.1.6':
resolution: {integrity: sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==}
engines: {node: '>=14.0.0'}
@ -5719,6 +5874,12 @@ packages:
- '@emnapi/wasi-threads'
- tslib
'@tailwindcss/oxide-win32-arm64-msvc@4.1.11':
resolution: {integrity: sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@tailwindcss/oxide-win32-arm64-msvc@4.1.6':
resolution: {integrity: sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==}
engines: {node: '>= 10'}
@ -5731,6 +5892,12 @@ packages:
cpu: [arm64]
os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.1.11':
resolution: {integrity: sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.1.6':
resolution: {integrity: sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==}
engines: {node: '>= 10'}
@ -5743,6 +5910,10 @@ packages:
cpu: [x64]
os: [win32]
'@tailwindcss/oxide@4.1.11':
resolution: {integrity: sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==}
engines: {node: '>= 10'}
'@tailwindcss/oxide@4.1.6':
resolution: {integrity: sha512-0bpEBQiGx+227fW4G0fLQ8vuvyy5rsB1YIYNapTq3aRsJ9taF3f5cCaovDjN5pUGKKzcpMrZst/mhNaKAPOHOA==}
engines: {node: '>= 10'}
@ -6393,28 +6564,49 @@ packages:
peerDependencies:
'@uppy/core': ^4.4.1
'@uppy/components@0.1.0':
resolution: {integrity: sha512-pKWDb036mMlARgRbBUKIXNDgxA9au30MYs+95/FD97wuiA4tEiGewSmYX7vUa6yf4NTDi6ouIU+CImGtEZlgww==}
peerDependencies:
'@uppy/audio': ^2.1.3
'@uppy/core': ^4.4.6
'@uppy/google-drive-picker': '*'
'@uppy/image-editor': ^3.3.3
'@uppy/screen-capture': ^4.3.0
'@uppy/webcam': ^4.2.0
peerDependenciesMeta:
'@uppy/audio':
optional: true
'@uppy/google-drive-picker':
optional: true
'@uppy/image-editor':
optional: true
'@uppy/screen-capture':
optional: true
'@uppy/webcam':
optional: true
'@uppy/compressor@2.2.1':
resolution: {integrity: sha512-2xWEHfmy/9HxOYZ1m11do69Gfa9Detz/zdfATlDZXlxUBhb9SKidea2FdZrea7gxFJjcBH9hO9tPK9k4ev+YJA==}
peerDependencies:
'@uppy/core': ^4.4.1
'@uppy/core@4.4.4':
resolution: {integrity: sha512-etaG6uSrShnS8x/CGI9ME/XP23jw8FTkujzKbaag4lDTtdlvcs6PxcObtH3I5MxxJXUEWwcfVGTdAUvd/tGCaA==}
'@uppy/core@4.4.6':
resolution: {integrity: sha512-EH5C5TSwY3tXp/gl4SPTpcxzEjBz8Ntt1o1s/v03bw8AUTl7X0lGUWRepbCh/XIUJyBTMJ1O+4Uv4/164WQSLg==}
'@uppy/dashboard@4.3.3':
resolution: {integrity: sha512-bZzzyzWzyoCsXxLUKsjT+X6AWNlFjRU1Ui+28Hp0C7A43zm8y0pb8BbwECl8a3NJH10tKNOHwT8IiVwbiGwXPQ==}
'@uppy/dashboard@4.3.4':
resolution: {integrity: sha512-SMPa5K3jZ2qNf110Hf8adN/cEAQLdpvXGjgl+R9c8AnUdpKE5f4XxaWSukdW6N7YYWmoBrLGesFvwRSPKZzCOw==}
peerDependencies:
'@uppy/core': ^4.4.4
'@uppy/core': ^4.4.5
'@uppy/drag-drop@4.1.2':
resolution: {integrity: sha512-vD/T2NmS+2zHcdYSVzv4zmCBOm3Bcr2efPDu5A5U8351t84MFT6v5Lk2Il6EBzgDZ9OHpVGSrn2aMno2PhzaGQ==}
'@uppy/drag-drop@4.1.3':
resolution: {integrity: sha512-oxWTIfIM6v28Krl1fv3wrixHshkNMrp0vGiDO8W2qOgP2zSJCVx9KTagj3BY2tn9iyy4A7yuQZXKPmmzgfPyaQ==}
peerDependencies:
'@uppy/core': ^4.4.4
'@uppy/core': ^4.4.5
'@uppy/file-input@4.1.2':
resolution: {integrity: sha512-tpxT41/00wI3WzqzbRaBPf9bphWYT8XMPxDhPhUqG7Y+k29PLhCu0rL57m/pvOfOWundug4E1CAejo9V01FNRg==}
'@uppy/file-input@4.1.3':
resolution: {integrity: sha512-wiZeS46c49s8NdnbTYfamfMn4WTsvMtPRTDfBD5M7CocBWRmIfKQ/nisv/1Nhy8J1a/P0eIj9Tmf518SaepN5A==}
peerDependencies:
'@uppy/core': ^4.4.4
'@uppy/core': ^4.4.5
'@uppy/informer@4.2.1':
resolution: {integrity: sha512-0en8Py47pl6RMDrgUfqFoF807W5kK5AKVJNT1SkTsLiGg5anmTIMuvmNG3k6LN4cn9P/rKyEHSdGcoBBUj9u7Q==}
@ -6431,16 +6623,19 @@ packages:
peerDependencies:
'@uppy/core': ^4.4.4
'@uppy/react@4.2.3':
resolution: {integrity: sha512-zIG2LzjB+gsiduHsgzfi+wSywTE+DSFPg+FAIlyWP24XF0HEv0ekai0fngewxjBUItZ6HGddWFkvMiRMD6+63g==}
'@uppy/react@4.3.0':
resolution: {integrity: sha512-KobhqnOWIg3GAEGWpRfgmSCZDq7+GmsqHbjmHmxdTDHCFIxp91M2XuxmcEVLmUFSU6XTUdGZS6Lf2Zmt/QgMKw==}
peerDependencies:
'@uppy/core': ^4.4.4
'@uppy/dashboard': ^4.3.3
'@uppy/drag-drop': ^4.1.2
'@uppy/file-input': ^4.1.2
'@uppy/core': ^4.4.6
'@uppy/dashboard': ^4.3.4
'@uppy/drag-drop': ^4.1.3
'@uppy/file-input': ^4.1.3
'@uppy/progress-bar': ^4.2.1
'@uppy/screen-capture': ^4.3.0
'@uppy/status-bar': ^4.1.3
'@uppy/webcam': ^4.2.0
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
peerDependenciesMeta:
'@uppy/dashboard':
optional: true
@ -6450,8 +6645,12 @@ packages:
optional: true
'@uppy/progress-bar':
optional: true
'@uppy/screen-capture':
optional: true
'@uppy/status-bar':
optional: true
'@uppy/webcam':
optional: true
'@uppy/status-bar@4.1.3':
resolution: {integrity: sha512-1YlbsoA9lTNL2b7nhehDri15XslVzGLG+J7HFAsxbE2cMHnOusuLCkm03oE9c72pOU9nG2qZV6yqdWBTwdxbNA==}
@ -6479,6 +6678,9 @@ packages:
'@uppy/utils@6.1.3':
resolution: {integrity: sha512-7WuTtMf0k1g962sE76mKy8aDV/kLeDrF8Wv1oTxaXQzUpmHBAoKd3FXLrQXu7TgM0XNHHRZXAckBttbVOWkKCw==}
'@uppy/utils@6.1.5':
resolution: {integrity: sha512-R+3l4ir01I6MzZ80t5CSBoOGvV9mCqLZC9FoNYVTp/lsanQ3yMAZFGLN/x7JVGO7oi/m/ykmNR1jAH+JTtXdFg==}
'@uppy/xhr-upload@4.3.3':
resolution: {integrity: sha512-I7RVppwTvLRlVfoW5piMxcZKzWF42E6CwYFQ42d2LzizrkG4tVLQkQrTZlw85za3nhcSrX3o/d1eNx3pzLmsdw==}
peerDependencies:
@ -8339,6 +8541,11 @@ packages:
detect-browser@5.3.0:
resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==}
detect-libc@1.0.3:
resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
engines: {node: '>=0.10'}
hasBin: true
detect-libc@2.0.4:
resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
engines: {node: '>=8'}
@ -11956,6 +12163,9 @@ packages:
node-addon-api@5.1.0:
resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
node-addon-api@7.1.1:
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
@ -12854,6 +13064,10 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
pretty-bytes@6.1.1:
resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
engines: {node: ^14.13.1 || >=16.0.0}
pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@ -14423,6 +14637,9 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
tailwindcss@4.1.11:
resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==}
tailwindcss@4.1.6:
resolution: {integrity: sha512-j0cGLTreM6u4OWzBeLBpycK0WIh8w7kSwcUsQZoGLHZ7xDTdM69lN64AgoIEEwFi0tnhs4wSykUa5YWxAzgFYg==}
@ -20433,6 +20650,66 @@ snapshots:
'@opentelemetry/api@1.9.0': {}
'@parcel/watcher-android-arm64@2.5.1':
optional: true
'@parcel/watcher-darwin-arm64@2.5.1':
optional: true
'@parcel/watcher-darwin-x64@2.5.1':
optional: true
'@parcel/watcher-freebsd-x64@2.5.1':
optional: true
'@parcel/watcher-linux-arm-glibc@2.5.1':
optional: true
'@parcel/watcher-linux-arm-musl@2.5.1':
optional: true
'@parcel/watcher-linux-arm64-glibc@2.5.1':
optional: true
'@parcel/watcher-linux-arm64-musl@2.5.1':
optional: true
'@parcel/watcher-linux-x64-glibc@2.5.1':
optional: true
'@parcel/watcher-linux-x64-musl@2.5.1':
optional: true
'@parcel/watcher-win32-arm64@2.5.1':
optional: true
'@parcel/watcher-win32-ia32@2.5.1':
optional: true
'@parcel/watcher-win32-x64@2.5.1':
optional: true
'@parcel/watcher@2.5.1':
dependencies:
detect-libc: 1.0.3
is-glob: 4.0.3
micromatch: 4.0.8
node-addon-api: 7.1.1
optionalDependencies:
'@parcel/watcher-android-arm64': 2.5.1
'@parcel/watcher-darwin-arm64': 2.5.1
'@parcel/watcher-darwin-x64': 2.5.1
'@parcel/watcher-freebsd-x64': 2.5.1
'@parcel/watcher-linux-arm-glibc': 2.5.1
'@parcel/watcher-linux-arm-musl': 2.5.1
'@parcel/watcher-linux-arm64-glibc': 2.5.1
'@parcel/watcher-linux-arm64-musl': 2.5.1
'@parcel/watcher-linux-x64-glibc': 2.5.1
'@parcel/watcher-linux-x64-musl': 2.5.1
'@parcel/watcher-win32-arm64': 2.5.1
'@parcel/watcher-win32-ia32': 2.5.1
'@parcel/watcher-win32-x64': 2.5.1
'@particle-network/analytics@1.0.2':
dependencies:
hash.js: 1.1.7
@ -22629,6 +22906,26 @@ snapshots:
dependencies:
defer-to-connect: 2.0.1
'@tailwindcss/cli@4.1.11':
dependencies:
'@parcel/watcher': 2.5.1
'@tailwindcss/node': 4.1.11
'@tailwindcss/oxide': 4.1.11
enhanced-resolve: 5.18.1
mri: 1.2.0
picocolors: 1.1.1
tailwindcss: 4.1.11
'@tailwindcss/node@4.1.11':
dependencies:
'@ampproject/remapping': 2.3.0
enhanced-resolve: 5.18.1
jiti: 2.4.2
lightningcss: 1.30.1
magic-string: 0.30.17
source-map-js: 1.2.1
tailwindcss: 4.1.11
'@tailwindcss/node@4.1.6':
dependencies:
'@ampproject/remapping': 2.3.0
@ -22649,78 +22946,132 @@ snapshots:
source-map-js: 1.2.1
tailwindcss: 4.1.7
'@tailwindcss/oxide-android-arm64@4.1.11':
optional: true
'@tailwindcss/oxide-android-arm64@4.1.6':
optional: true
'@tailwindcss/oxide-android-arm64@4.1.7':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.1.11':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.1.6':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.1.7':
optional: true
'@tailwindcss/oxide-darwin-x64@4.1.11':
optional: true
'@tailwindcss/oxide-darwin-x64@4.1.6':
optional: true
'@tailwindcss/oxide-darwin-x64@4.1.7':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.1.11':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.1.6':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.1.7':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.6':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.1.11':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.1.6':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.1.7':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.1.11':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.1.6':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.1.7':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.1.11':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.1.6':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.1.7':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.1.11':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.1.6':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.1.7':
optional: true
'@tailwindcss/oxide-wasm32-wasi@4.1.11':
optional: true
'@tailwindcss/oxide-wasm32-wasi@4.1.6':
optional: true
'@tailwindcss/oxide-wasm32-wasi@4.1.7':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.1.11':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.1.6':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.1.7':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.1.11':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.1.6':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.1.7':
optional: true
'@tailwindcss/oxide@4.1.11':
dependencies:
detect-libc: 2.0.4
tar: 7.4.3
optionalDependencies:
'@tailwindcss/oxide-android-arm64': 4.1.11
'@tailwindcss/oxide-darwin-arm64': 4.1.11
'@tailwindcss/oxide-darwin-x64': 4.1.11
'@tailwindcss/oxide-freebsd-x64': 4.1.11
'@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.11
'@tailwindcss/oxide-linux-arm64-gnu': 4.1.11
'@tailwindcss/oxide-linux-arm64-musl': 4.1.11
'@tailwindcss/oxide-linux-x64-gnu': 4.1.11
'@tailwindcss/oxide-linux-x64-musl': 4.1.11
'@tailwindcss/oxide-wasm32-wasi': 4.1.11
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.11
'@tailwindcss/oxide-win32-x64-msvc': 4.1.11
'@tailwindcss/oxide@4.1.6':
dependencies:
detect-libc: 2.0.4
@ -23494,48 +23845,57 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.7.2':
optional: true
'@uppy/aws-s3@4.2.3(@uppy/core@4.4.4)':
'@uppy/aws-s3@4.2.3(@uppy/core@4.4.6)':
dependencies:
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.4)
'@uppy/core': 4.4.4
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.6)
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.3
'@uppy/companion-client@4.4.1(@uppy/core@4.4.4)':
'@uppy/companion-client@4.4.1(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
namespace-emitter: 2.0.1
p-retry: 6.2.1
'@uppy/compressor@2.2.1(@uppy/core@4.4.4)':
'@uppy/components@0.1.0(@uppy/core@4.4.6)':
dependencies:
'@tailwindcss/cli': 4.1.11
'@uppy/core': 4.4.6
clsx: 2.1.1
preact: 10.26.5
pretty-bytes: 6.1.1
tailwindcss: 4.1.11
'@uppy/compressor@2.2.1(@uppy/core@4.4.6)':
dependencies:
'@transloadit/prettier-bytes': 0.3.5
'@uppy/core': 4.4.4
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.3
compressorjs: 1.2.1
preact: 10.26.5
promise-queue: 2.2.5
'@uppy/core@4.4.4':
'@uppy/core@4.4.6':
dependencies:
'@transloadit/prettier-bytes': 0.3.5
'@uppy/store-default': 4.2.0
'@uppy/utils': 6.1.3
'@uppy/utils': 6.1.5
lodash: 4.17.21
mime-match: 1.0.2
namespace-emitter: 2.0.1
nanoid: 5.1.5
preact: 10.26.5
'@uppy/dashboard@4.3.3(@uppy/core@4.4.4)':
'@uppy/dashboard@4.3.4(@uppy/core@4.4.6)':
dependencies:
'@transloadit/prettier-bytes': 0.3.5
'@uppy/core': 4.4.4
'@uppy/informer': 4.2.1(@uppy/core@4.4.4)
'@uppy/provider-views': 4.4.3(@uppy/core@4.4.4)
'@uppy/status-bar': 4.1.3(@uppy/core@4.4.4)
'@uppy/thumbnail-generator': 4.1.1(@uppy/core@4.4.4)
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/informer': 4.2.1(@uppy/core@4.4.6)
'@uppy/provider-views': 4.4.3(@uppy/core@4.4.6)
'@uppy/status-bar': 4.1.3(@uppy/core@4.4.6)
'@uppy/thumbnail-generator': 4.1.1(@uppy/core@4.4.6)
'@uppy/utils': 6.1.5
classnames: 2.5.1
lodash: 4.17.21
memoize-one: 6.0.0
@ -23543,82 +23903,89 @@ snapshots:
preact: 10.26.5
shallow-equal: 3.1.0
'@uppy/drag-drop@4.1.2(@uppy/core@4.4.4)':
'@uppy/drag-drop@4.1.3(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
preact: 10.26.5
'@uppy/file-input@4.1.2(@uppy/core@4.4.4)':
'@uppy/file-input@4.1.3(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
preact: 10.26.5
'@uppy/informer@4.2.1(@uppy/core@4.4.4)':
'@uppy/informer@4.2.1(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
preact: 10.26.5
'@uppy/progress-bar@4.2.1(@uppy/core@4.4.4)':
'@uppy/progress-bar@4.2.1(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
preact: 10.26.5
'@uppy/provider-views@4.4.3(@uppy/core@4.4.4)':
'@uppy/provider-views@4.4.3(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
classnames: 2.5.1
nanoid: 5.1.5
p-queue: 8.1.0
preact: 10.26.5
'@uppy/react@4.2.3(@uppy/core@4.4.4)(@uppy/dashboard@4.3.3(@uppy/core@4.4.4))(@uppy/drag-drop@4.1.2(@uppy/core@4.4.4))(@uppy/file-input@4.1.2(@uppy/core@4.4.4))(@uppy/progress-bar@4.2.1(@uppy/core@4.4.4))(@uppy/status-bar@4.1.3(@uppy/core@4.4.4))(react@18.3.1)':
'@uppy/react@4.3.0(@uppy/core@4.4.6)(@uppy/dashboard@4.3.4(@uppy/core@4.4.6))(@uppy/drag-drop@4.1.3(@uppy/core@4.4.6))(@uppy/file-input@4.1.3(@uppy/core@4.4.6))(@uppy/progress-bar@4.2.1(@uppy/core@4.4.6))(@uppy/status-bar@4.1.3(@uppy/core@4.4.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/components': 0.1.0(@uppy/core@4.4.6)
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
preact: 10.26.5
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
use-sync-external-store: 1.5.0(react@18.3.1)
optionalDependencies:
'@uppy/dashboard': 4.3.3(@uppy/core@4.4.4)
'@uppy/drag-drop': 4.1.2(@uppy/core@4.4.4)
'@uppy/file-input': 4.1.2(@uppy/core@4.4.4)
'@uppy/progress-bar': 4.2.1(@uppy/core@4.4.4)
'@uppy/status-bar': 4.1.3(@uppy/core@4.4.4)
'@uppy/dashboard': 4.3.4(@uppy/core@4.4.6)
'@uppy/drag-drop': 4.1.3(@uppy/core@4.4.6)
'@uppy/file-input': 4.1.3(@uppy/core@4.4.6)
'@uppy/progress-bar': 4.2.1(@uppy/core@4.4.6)
'@uppy/status-bar': 4.1.3(@uppy/core@4.4.6)
transitivePeerDependencies:
- '@uppy/audio'
- '@uppy/google-drive-picker'
- '@uppy/image-editor'
'@uppy/status-bar@4.1.3(@uppy/core@4.4.4)':
'@uppy/status-bar@4.1.3(@uppy/core@4.4.6)':
dependencies:
'@transloadit/prettier-bytes': 0.3.5
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
classnames: 2.5.1
preact: 10.26.5
'@uppy/store-default@4.2.0': {}
'@uppy/thumbnail-generator@4.1.1(@uppy/core@4.4.4)':
'@uppy/thumbnail-generator@4.1.1(@uppy/core@4.4.6)':
dependencies:
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
exifr: 7.1.3
'@uppy/transloadit@4.2.2(@uppy/core@4.4.4)':
'@uppy/transloadit@4.2.2(@uppy/core@4.4.6)':
dependencies:
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.4)
'@uppy/core': 4.4.4
'@uppy/provider-views': 4.4.3(@uppy/core@4.4.4)
'@uppy/tus': 4.2.2(@uppy/core@4.4.4)
'@uppy/utils': 6.1.3
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.6)
'@uppy/core': 4.4.6
'@uppy/provider-views': 4.4.3(@uppy/core@4.4.6)
'@uppy/tus': 4.2.2(@uppy/core@4.4.6)
'@uppy/utils': 6.1.5
component-emitter: 2.0.0
'@uppy/tus@4.2.2(@uppy/core@4.4.4)':
'@uppy/tus@4.2.2(@uppy/core@4.4.6)':
dependencies:
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.4)
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.6)
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
tus-js-client: 4.3.1
'@uppy/utils@6.1.3':
@ -23626,11 +23993,16 @@ snapshots:
lodash: 4.17.21
preact: 10.26.5
'@uppy/xhr-upload@4.3.3(@uppy/core@4.4.4)':
'@uppy/utils@6.1.5':
dependencies:
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.4)
'@uppy/core': 4.4.4
'@uppy/utils': 6.1.3
lodash: 4.17.21
preact: 10.26.5
'@uppy/xhr-upload@4.3.3(@uppy/core@4.4.6)':
dependencies:
'@uppy/companion-client': 4.4.1(@uppy/core@4.4.6)
'@uppy/core': 4.4.6
'@uppy/utils': 6.1.5
'@urql/core@5.1.1(graphql@16.11.0)':
dependencies:
@ -26221,6 +26593,8 @@ snapshots:
detect-browser@5.3.0: {}
detect-libc@1.0.3: {}
detect-libc@2.0.4: {}
detect-newline@3.1.0: {}
@ -31184,6 +31558,8 @@ snapshots:
node-addon-api@5.1.0: {}
node-addon-api@7.1.1: {}
node-domexception@1.0.0: {}
node-emoji@1.11.0:
@ -32214,6 +32590,8 @@ snapshots:
prettier@2.8.8: {}
pretty-bytes@6.1.1: {}
pretty-format@27.5.1:
dependencies:
ansi-regex: 5.0.1
@ -34156,6 +34534,8 @@ snapshots:
transitivePeerDependencies:
- ts-node
tailwindcss@4.1.11: {}
tailwindcss@4.1.6: {}
tailwindcss@4.1.7: {}