diff --git a/identity-wallet/src/state/dev_mode/reducers/ferris_static_profile.rs b/identity-wallet/src/state/dev_mode/reducers/ferris_static_profile.rs index 6f456e47d..392c19622 100644 --- a/identity-wallet/src/state/dev_mode/reducers/ferris_static_profile.rs +++ b/identity-wallet/src/state/dev_mode/reducers/ferris_static_profile.rs @@ -33,7 +33,7 @@ lazy_static! { record }; pub static ref DRIVERS_LICENSE_CREDENTIAL: VerifiableCredentialRecord = VerifiableCredentialRecord::try_from( - json!("eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2toUDQzTENTWGFqM1NRQm92eTF1RTJuWHZTQm5SUFdaMndoUExxblo4UGdEI3o2TWtraFA0M0xDU1hhajNTUUJvdnkxdUUyblh2U0JuUlBXWjJ3aFBMcW5aOFBnRCJ9.eyJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjEyNzo5MDkwLyIsInN1YiI6ImRpZDprZXk6ejZNa2cxWFhHVXFma2hBS1Uxa1ZkMVBtdzZVRWoxdnhpTGoxeGM5MU1CejVvd05ZIiwiZXhwIjo5OTk5OTk5OTk5LCJpYXQiOjAsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkRyaXZlckxpY2Vuc2VDcmVkZW50aWFsIl0sImlzc3VlciI6Imh0dHA6Ly8xOTIuMTY4LjEuMTI3OjkwOTAvIiwiaXNzdWFuY2VEYXRlIjoiMjAyMi0wOC0xNVQwOTozMDowMFoiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjctMDgtMTVUMjM6NTk6NTlaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5Ono2TWtnMVhYR1VxZmtoQUtVMWtWZDFQbXc2VUVqMXZ4aUxqMXhjOTFNQno1b3dOWSIsImxpY2Vuc2VDbGFzcyI6IkNsYXNzIEMiLCJpc3N1ZWRCeSI6IkNhbGlmb3JuaWEiLCJ2YWxpZGl0eSI6IlZhbGlkIn19fQ.OZCcZt5JTJcBhoLPIyrQuvZuc2dnVN65f8GvKQ3earAzJEgGMA9ZjKRNHEjI73wLwvG5MJBN7Zs_rWiNLEZ5Dg"), + json!("eyJ0eXAiOiJKV1QiLCJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa2toUDQzTENTWGFqM1NRQm92eTF1RTJuWHZTQm5SUFdaMndoUExxblo4UGdEI3o2TWtraFA0M0xDU1hhajNTUUJvdnkxdUUyblh2U0JuUlBXWjJ3aFBMcW5aOFBnRCJ9.eyJpc3MiOiJodHRwOi8vMTkyLjE2OC4xLjEyNzo5MDkwLyIsInN1YiI6ImRpZDprZXk6ejZNa2cxWFhHVXFma2hBS1Uxa1ZkMVBtdzZVRWoxdnhpTGoxeGM5MU1CejVvd05ZIiwiZXhwIjo5OTk5OTk5OTk5LCJpYXQiOjAsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkRyaXZlckxpY2Vuc2VDcmVkZW50aWFsIl0sImlzc3VlciI6Imh0dHA6Ly8xOTIuMTY4LjEuMTI3OjkwOTAvIiwiaXNzdWFuY2VEYXRlIjoiMjAwNC0wMi0wOFQwODoxNDowOFoiLCJleHBpcmF0aW9uRGF0ZSI6IjIwMjctMDgtMTVUMjM6NTk6NTlaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5Ono2TWtnMVhYR1VxZmtoQUtVMWtWZDFQbXc2VUVqMXZ4aUxqMXhjOTFNQno1b3dOWSIsImxpY2Vuc2VDbGFzcyI6IkNsYXNzIEMiLCJpc3N1ZWRCeSI6IkNhbGlmb3JuaWEiLCJ2YWxpZGl0eSI6IlZhbGlkIn19fQ.OZCcZt5JTJcBhoLPIyrQuvZuc2dnVN65f8GvKQ3earAzJEgGMA9ZjKRNHEjI73wLwvG5MJBN7Zs_rWiNLEZ5Dg"), ).unwrap(); pub static ref OPEN_BADGE: VerifiableCredentialRecord = { let mut record = VerifiableCredentialRecord::try_from( diff --git a/package-lock.json b/package-lock.json index 2a2ee57c0..2451d187b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1121,36 +1121,6 @@ "@iconify/types": "*" } }, - "node_modules/@iconify-json/emojione": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@iconify-json/emojione/-/emojione-1.1.10.tgz", - "integrity": "sha512-gzv5tbkbyoJFArWmmtGDmhvKjCcpa9a+qEFbW35IlKHc9LBL5lluRccP+BckCoYcoi5qi1VCPxzz6QL/UYW5VQ==", - "dev": true, - "license": "CC-BY-4.0", - "dependencies": { - "@iconify/types": "*" - } - }, - "node_modules/@iconify-json/heroicons": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/@iconify-json/heroicons/-/heroicons-1.1.21.tgz", - "integrity": "sha512-A+3L4KN+TjH3V8fQ2N2dkOOnLLxMgMBzO8RDT0P9YL+YzvLMIbe/lkDLSB8NB8x0DKWmkvTimoo1l4DKMwi7Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@iconify/types": "*" - } - }, - "node_modules/@iconify-json/lucide": { - "version": "1.1.198", - "resolved": "https://registry.npmjs.org/@iconify-json/lucide/-/lucide-1.1.198.tgz", - "integrity": "sha512-XFALR7z8cNMpoY6SGbw12GgqAdxhouAGE4KPYNUdwovcup6miwPZRrghyi2nSz15/E2xpwfZBpmwnUJUmdt6mQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@iconify/types": "*" - } - }, "node_modules/@iconify-json/ph": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/@iconify-json/ph/-/ph-1.1.13.tgz", @@ -1161,16 +1131,6 @@ "@iconify/types": "*" } }, - "node_modules/@iconify-json/svg-spinners": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@iconify-json/svg-spinners/-/svg-spinners-1.1.2.tgz", - "integrity": "sha512-Aab6SqkORaTJ1W+ooufn6C8BsBitrn3uk8iRQLPA6pjhyvQAhkKCGMctyXIL5ZjrycnoFVsZ4mx7KnwEMra8qg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@iconify/types": "*" - } - }, "node_modules/@iconify/types": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", @@ -9012,11 +8972,7 @@ }, "devDependencies": { "@iconify-json/circle-flags": "^1.1.46", - "@iconify-json/emojione": "^1.1.7", - "@iconify-json/heroicons": "^1.1.11", - "@iconify-json/lucide": "^1.1.112", "@iconify-json/ph": "^1.1.13", - "@iconify-json/svg-spinners": "^1.1.1", "@melt-ui/pp": "^0.3.0", "@melt-ui/svelte": "^0.76.0", "@sveltejs/adapter-static": "^3.0.0", diff --git a/unime/package.json b/unime/package.json index f070d69d3..026578d53 100644 --- a/unime/package.json +++ b/unime/package.json @@ -30,11 +30,7 @@ }, "devDependencies": { "@iconify-json/circle-flags": "^1.1.46", - "@iconify-json/emojione": "^1.1.7", - "@iconify-json/heroicons": "^1.1.11", - "@iconify-json/lucide": "^1.1.112", "@iconify-json/ph": "^1.1.13", - "@iconify-json/svg-spinners": "^1.1.1", "@melt-ui/pp": "^0.3.0", "@melt-ui/svelte": "^0.76.0", "@sveltejs/adapter-static": "^3.0.0", diff --git a/unime/src-tauri/gen-static/apply.sh b/unime/src-tauri/gen-static/apply.sh new file mode 100755 index 000000000..5fe529f7b --- /dev/null +++ b/unime/src-tauri/gen-static/apply.sh @@ -0,0 +1,2 @@ +# Copies all files tracked by git (/gen-static) to the generated resources (/gen) +cp -v ./android/app/build.gradle.kts ../gen/android/app/build.gradle.kts diff --git a/unime/src/lib/components/ListItemCard.svelte b/unime/src/lib/components/ListItemCard.svelte index de36d69c9..d7f000524 100644 --- a/unime/src/lib/components/ListItemCard.svelte +++ b/unime/src/lib/components/ListItemCard.svelte @@ -41,7 +41,7 @@ Can be used for credentials, connections, etc. - +
+ import { createEventDispatcher, onMount } from 'svelte'; + + import { fade, fly } from 'svelte/transition'; + + import Warning from '~icons/ph/warning'; + import X from '~icons/ph/x'; + + const dispatch = createEventDispatcher(); + + export let autoDismissAfterMs = 0; // A value of 0 means the toast will never auto-dismiss + export let title; + export let detail: string | undefined = undefined; + + onMount(() => { + if (autoDismissAfterMs > 0) { + setTimeout(() => { + dispatch('dismissed'); + }, autoDismissAfterMs); + } + }); + + +
+ +
+

+ {title} +

+ {#if detail} +

{detail}

+ {/if} +
+ +
diff --git a/unime/src/lib/components/navigation/TopNavBar.svelte b/unime/src/lib/components/navigation/TopNavBar.svelte index c11bf397e..be0afe6b0 100644 --- a/unime/src/lib/components/navigation/TopNavBar.svelte +++ b/unime/src/lib/components/navigation/TopNavBar.svelte @@ -3,7 +3,7 @@ import { twMerge } from 'tailwind-merge'; - import { ChevronLeftIcon } from '$lib/icons'; + import { CaretLeftBoldIcon } from '$lib/icons'; const dispatch = createEventDispatcher(); @@ -18,7 +18,7 @@ )} > {#if title}

diff --git a/unime/src/lib/icons/index.ts b/unime/src/lib/icons/index.ts index a64ad1b1c..a0156adcf 100644 --- a/unime/src/lib/icons/index.ts +++ b/unime/src/lib/icons/index.ts @@ -4,18 +4,16 @@ export { default as GBFlagIcon } from '~icons/circle-flags/gb'; export { default as NLFlagIcon } from '~icons/circle-flags/nl'; export { default as USFlagIcon } from '~icons/circle-flags/us'; -// Lucide icons: https://icon-sets.iconify.design/lucide/ -export { default as ChevronLeftIcon } from '~icons/lucide/chevron-left'; -export { default as ScrollTextIcon } from '~icons/lucide/scroll-text'; - // Phosphor icons: https://icon-sets.iconify.design/ph/ export { default as ArrowLeftRegularIcon } from '~icons/ph/arrow-left'; export { default as ArrowSquareOutBoldIcon } from '~icons/ph/arrow-square-out-bold'; export { default as BankLightIcon } from '~icons/ph/bank-light'; +export { default as BugRegularIcon } from '~icons/ph/bug'; export { default as CalendarCheckRegularIcon } from '~icons/ph/calendar-check'; export { default as CalendarPlusRegularIcon } from '~icons/ph/calendar-plus'; export { default as CameraSlashRegularIcon } from '~icons/ph/camera-slash'; export { default as CaretDownBoldIcon } from '~icons/ph/caret-down-bold'; +export { default as CaretLeftBoldIcon } from '~icons/ph/caret-left-bold'; export { default as CaretRightBoldIcon } from '~icons/ph/caret-right-bold'; export { default as CaretUpBoldIcon } from '~icons/ph/caret-up-bold'; export { default as CertificateLightIcon } from '~icons/ph/certificate-light'; @@ -25,6 +23,7 @@ export { default as CheckCircleRegularIcon } from '~icons/ph/check-circle'; export { default as CheckCircleFillIcon } from '~icons/ph/check-circle-fill'; export { default as CircleRegularIcon } from '~icons/ph/circle'; export { default as CodeBoldIcon } from '~icons/ph/code-bold'; +export { default as CodeRegularIcon } from '~icons/ph/code'; export { default as ConfettiFillIcon } from '~icons/ph/confetti-fill'; export { default as DownloadSimpleFillIcon } from '~icons/ph/download-simple-fill'; export { default as EnvelopeFillIcon } from '~icons/ph/envelope-fill'; @@ -68,5 +67,6 @@ export { default as UserLightIcon } from '~icons/ph/user-light'; export { default as VaultFillIcon } from '~icons/ph/vault-fill'; export { default as WarningRegularIcon } from '~icons/ph/warning'; export { default as WarningCircleFillIcon } from '~icons/ph/warning-circle-fill'; +export { default as WarningCircleRegularIcon } from '~icons/ph/warning-circle'; export { default as XRegularIcon } from '~icons/ph/x'; export { default as XBoldIcon } from '~icons/ph/x-bold'; diff --git a/unime/src/routes/(app)/scan/+page@.svelte b/unime/src/routes/(app)/scan/+page@.svelte index 6b50c8462..9d1a9c2d9 100644 --- a/unime/src/routes/(app)/scan/+page@.svelte +++ b/unime/src/routes/(app)/scan/+page@.svelte @@ -3,6 +3,7 @@ import { goto } from '$app/navigation'; import LL from '$i18n/i18n-svelte'; + import { fade } from 'svelte/transition'; import { cancel, @@ -18,7 +19,7 @@ import { BottomNavBar, Button, LoadingSpinner } from '$lib/components'; import { dispatch } from '$lib/dispatcher'; - import { CameraSlashRegularIcon } from '$lib/icons'; + import { CameraSlashRegularIcon, CodeRegularIcon, WarningCircleRegularIcon } from '$lib/icons'; import { state } from '$lib/stores'; let scanning = false; @@ -90,9 +91,9 @@ ...$state, current_user_prompt: { type: 'accept-connection', - client_name: 'Some other client', + client_name: 'Impierce Demo Portal', logo_uri: undefined, - redirect_uri: 'https://demo.ngdil.com/auth/callback', + redirect_uri: 'https://demo.impierce.com/auth/callback', previously_connected: false, domain_validation: { status: 'Unknown', @@ -102,12 +103,41 @@ }); }; + const mockOfferRequest = () => { + state.set({ + ...$state, + current_user_prompt: { + type: 'credential-offer', + issuer_name: 'State University', + logo_uri: undefined, + credential_configurations: { + 0: { + display: [ + { + name: 'Graduation Diploma', + locale: 'en-US', + }, + ], + credential_definition: { + type: ['VerifiableCredential', 'University Degree'], + }, + }, + 1: { + credential_definition: { + type: ['VerifiableCredential', 'Cafeteria Voucher'], + }, + }, + }, + }, + }); + }; + const mockShareRequest = () => { state.set({ ...$state, current_user_prompt: { type: 'share-credentials', - client_name: 'My Client Name', + client_name: 'Impierce Demo Portal', logo_uri: undefined, options: [$state.credentials[0].id], }, @@ -143,6 +173,12 @@

+ {#if loading} + +
+ +
+ {/if} {#if permissions_nullable && permissions_nullable !== 'granted'}
@@ -155,14 +191,43 @@ {/if} - {#if $state?.dev_mode !== 'Off'} + {#if $state?.dev_mode !== 'Off' && !loading} + +
+ + + +
+

Developer mode active

+

+ Click one of the following buttons to simulate a successful QR scan. +

+
+
+ + +
+ + + +
+

Warning

+

+ Accepting one of the mock requests can lead to unexpected behavior. +

+
+
+ +
-

Mock scans

diff --git a/unime/src/routes/welcome/password/confirm/+page.svelte b/unime/src/routes/welcome/password/confirm/+page.svelte index a7619799d..4948d7280 100644 --- a/unime/src/routes/welcome/password/confirm/+page.svelte +++ b/unime/src/routes/welcome/password/confirm/+page.svelte @@ -102,5 +102,5 @@
-
diff --git a/unime/src/routes/welcome/utils.ts b/unime/src/routes/welcome/utils.ts index 316360b17..e3a75eb0b 100644 --- a/unime/src/routes/welcome/utils.ts +++ b/unime/src/routes/welcome/utils.ts @@ -5,5 +5,5 @@ export const routeOrder = [ '/welcome/customize/name', '/welcome/password', '/welcome/password/confirm', - '/welcome/password/completed', + '/welcome/completed', ];