diff --git a/package.json b/package.json index 5440bd783..ba3bab028 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "1.0.0-next.7", "@appwrite.io/pink-legacy": "^1.0.0", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3114ccc", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@4a73ad4", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ea84dd82..1f9a73b82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3114ccc - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3114ccc(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@4a73ad4 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@4a73ad4(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -223,8 +223,8 @@ packages: peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3114ccc0b95c9d94385c06730b7aeaef7b4a81fc': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3114ccc0b95c9d94385c06730b7aeaef7b4a81fc} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@4a73ad48c64ce1078565d893a9c91d887d05d90a': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@4a73ad48c64ce1078565d893a9c91d887d05d90a} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -238,8 +238,8 @@ packages: '@appwrite.io/pink-legacy@1.0.0': resolution: {integrity: sha512-EZk/wX8oDhIsCXf2A0oQjdNOaHvh5MnWbLQI4pAiGrdy5qQGPoU19AK6iVX6z3QoOq7geoEu0zVwAowBy5hZbQ==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3114ccc': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3114ccc} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@4a73ad4': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@4a73ad4} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -694,6 +694,11 @@ packages: peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.118 + '@melt-ui/svelte@0.86.2': + resolution: {integrity: sha512-wRVN603oIt1aXvx2QRmKqVDJgTScSvr/WJLLokkD8c4QzHgn6pfpPtUKmhV6Dvkk+OY89OG/1Irkd6ouA50Ztw==} + peerDependencies: + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.118 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -4087,7 +4092,7 @@ snapshots: dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3114ccc0b95c9d94385c06730b7aeaef7b4a81fc(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@4a73ad48c64ce1078565d893a9c91d887d05d90a(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4100,11 +4105,12 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@3114ccc(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@4a73ad4(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@3114ccc0b95c9d94385c06730b7aeaef7b4a81fc(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@4a73ad48c64ce1078565d893a9c91d887d05d90a(svelte@4.2.19) '@floating-ui/dom': 1.6.13 - '@melt-ui/svelte': 0.83.0(svelte@4.2.19) + '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.2(svelte@4.2.19))(svelte@4.2.19) + '@melt-ui/svelte': 0.86.2(svelte@4.2.19) pretty-bytes: 6.1.1 react-dom: 18.3.1(react@18.3.1) shiki: 1.27.2 @@ -4618,6 +4624,13 @@ snapshots: magic-string: 0.30.17 svelte: 4.2.19 + '@melt-ui/pp@0.3.2(@melt-ui/svelte@0.86.2(svelte@4.2.19))(svelte@4.2.19)': + dependencies: + '@melt-ui/svelte': 0.86.2(svelte@4.2.19) + estree-walker: 3.0.3 + magic-string: 0.30.17 + svelte: 4.2.19 + '@melt-ui/svelte@0.83.0(svelte@4.2.19)': dependencies: '@floating-ui/core': 1.6.9 @@ -4628,6 +4641,16 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 + '@melt-ui/svelte@0.86.2(svelte@4.2.19)': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/dom': 1.6.13 + '@internationalized/date': 3.6.0 + dequal: 2.0.3 + focus-trap: 7.6.4 + nanoid: 5.0.9 + svelte: 4.2.19 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 diff --git a/src/lib/components/labelCard.svelte b/src/lib/components/labelCard.svelte index 0ace79cd5..8c5ab9bc8 100644 --- a/src/lib/components/labelCard.svelte +++ b/src/lib/components/labelCard.svelte @@ -18,6 +18,8 @@ //temporarily unefined export let title: Props['title'] = undefined; export let disabled = false; + export let src: string = null; + export let alt: string = null; // TODO: remove after label card migration let slotTitle: HTMLSpanElement; @@ -26,6 +28,8 @@
import { Input } from '@appwrite.io/pink-svelte'; + import type { ComponentType } from 'svelte'; export let id: string; export let label: string | undefined = undefined; @@ -11,6 +12,7 @@ value: string | boolean | number | null; label: string; disabled?: boolean; + leadingIcon?: ComponentType; }[]; let element: HTMLSelectElement; diff --git a/src/lib/helpers/files.ts b/src/lib/helpers/files.ts new file mode 100644 index 000000000..97a3b8939 --- /dev/null +++ b/src/lib/helpers/files.ts @@ -0,0 +1,186 @@ +import ignore from 'ignore'; + +export interface FileData { + path: string; + buffer: ArrayBuffer; +} + +export async function processFileList(files: FileList): Promise { + const fileArray = Array.from(files); + const ignorer = ignore(); + + // Check for .gitignore file + const gitignoreFile = fileArray.find( + (file) => file.webkitRelativePath.endsWith('.gitignore') || file.name === '.gitignore' + ); + + if (gitignoreFile) { + const gitignoreContent = await gitignoreFile.text(); + ignorer.add(gitignoreContent); + } else { + ignorer.add(defaultIgnore); + } + + // Filter files using ignorer + const filteredFiles = fileArray.filter((file) => { + const path = file.webkitRelativePath || file.name; + return !ignorer.ignores(path); + }); + const filePromises = filteredFiles.map(async (file) => { + try { + const buffer = await file.arrayBuffer(); + return { + path: file?.webkitRelativePath || file.name, + buffer: buffer + }; + } catch (e) { + // console.log(file); + return null; + } + }); + + return Promise.all(filePromises); +} + +export const defaultIgnore = ` +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +`; diff --git a/src/routes/(console)/project-[project]/sites/(components)/deploymentDomains.svelte b/src/routes/(console)/project-[project]/sites/(components)/deploymentDomains.svelte index 34054242c..a43d4890b 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/deploymentDomains.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/deploymentDomains.svelte @@ -1,10 +1,10 @@ @@ -20,9 +20,9 @@ {#if domains.rules.length > 1} - + +{domains.rules.length - 1} - + {#each domains.rules as rule, i} diff --git a/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte b/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte index bc2766aa8..08cb03460 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte @@ -4,7 +4,7 @@ import { humanFileSize } from '$lib/helpers/sizeConvertion'; import { calculateTime } from '$lib/helpers/timeConversion'; import type { Models } from '@appwrite.io/console'; - import { Icon, Image, Layout, Status, Typography } from '@appwrite.io/pink-svelte'; + import { Divider, Icon, Image, Layout, Status, Typography } from '@appwrite.io/pink-svelte'; import DeploymentSource from './deploymentSource.svelte'; import DeploymentCreatedBy from './deploymentCreatedBy.svelte'; import { Button } from '$lib/elements/forms'; @@ -24,92 +24,106 @@ - - Screenshot - - - - {#if deployment.status === 'failed'} - - - Status - - - - - - {:else} - - - Deployed - - - + + + Screenshot + + + + {#if deployment.status === 'failed'} + + + Status + + + + + + {:else} + + + Deployed + + + + {/if} + + {#if siteUrl} + {/if} - {#if siteUrl} - - {/if} - - {#if proxyRuleList?.total} - - - Domains - - - - {:else if deployment.domain} - - - Domains - - - - - {deployment.domain} - - - - - - {/if} - - {#if deployment?.buildTime} - + {#if proxyRuleList?.total} + - Build time + Domains - - {calculateTime(deployment.buildTime)} + + + {:else if deployment.domain} + + + Domains + + + + {deployment.domain} + + + + {/if} - + + {#if deployment?.buildTime} + + + Build time + + + {calculateTime(deployment.buildTime)} + + + {/if} + + + Total size + + + {totalSize.value}{totalSize.unit} + + + + - Total size - - - {totalSize.value}{totalSize.unit} + Source + - - - Source - - - + + {#if $$slots.footer} + + + + + + + {/if} diff --git a/src/routes/(console)/project-[project]/sites/create-site/aside.svelte b/src/routes/(console)/project-[project]/sites/create-site/aside.svelte index 20d697c51..e6803ae48 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/aside.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/aside.svelte @@ -1,16 +1,10 @@ @@ -40,7 +19,7 @@ {#if framework?.name} - {@const frameworkIcon = getIcon(framework.key)} + {@const frameworkIcon = getFrameworkIcon(framework.key)} Framework diff --git a/src/routes/(console)/project-[project]/sites/create-site/details.svelte b/src/routes/(console)/project-[project]/sites/create-site/details.svelte index eed685a63..c9d6f9cc8 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/details.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/details.svelte @@ -1,9 +1,9 @@ + + + Create site - Appwrite + + + +
+ + + + + + Drag and drop files here or click to upload + + + + + Only PNG, JPEG, PDF files allowed + + + + Max file size: 10MB + + +
+ + + + + + + +