Enhance image upload experience in ReceiptForm and +page components by integrating a loading state with a spinner icon during image processing. Update styles for better accessibility and user feedback, ensuring a smoother interaction when converting images to WebP format.
This commit is contained in:
+6
-6
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
Icon_default
|
Icon_default
|
||||||
} from "./chunk-SK3R2OSP.js";
|
} from "./chunk-V6DNLLKF.js";
|
||||||
|
import "./chunk-2LGM3QYM.js";
|
||||||
import {
|
import {
|
||||||
check_target,
|
check_target,
|
||||||
hmr,
|
hmr,
|
||||||
@@ -9,11 +10,12 @@ import {
|
|||||||
snippet,
|
snippet,
|
||||||
spread_props,
|
spread_props,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment
|
comment
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
FILENAME,
|
FILENAME,
|
||||||
HMR,
|
HMR,
|
||||||
@@ -22,12 +24,10 @@ import {
|
|||||||
noop,
|
noop,
|
||||||
pop,
|
pop,
|
||||||
push
|
push
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-2LGM3QYM.js";
|
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|
||||||
// node_modules/@lucide/svelte/dist/icons/check.svelte
|
// node_modules/@lucide/svelte/dist/icons/check.svelte
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
Icon_default
|
Icon_default
|
||||||
} from "./chunk-SK3R2OSP.js";
|
} from "./chunk-V6DNLLKF.js";
|
||||||
|
import "./chunk-2LGM3QYM.js";
|
||||||
import {
|
import {
|
||||||
check_target,
|
check_target,
|
||||||
hmr,
|
hmr,
|
||||||
@@ -9,11 +10,12 @@ import {
|
|||||||
snippet,
|
snippet,
|
||||||
spread_props,
|
spread_props,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment
|
comment
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
FILENAME,
|
FILENAME,
|
||||||
HMR,
|
HMR,
|
||||||
@@ -22,12 +24,10 @@ import {
|
|||||||
noop,
|
noop,
|
||||||
pop,
|
pop,
|
||||||
push
|
push
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-2LGM3QYM.js";
|
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|
||||||
// node_modules/@lucide/svelte/dist/icons/chevron-right.svelte
|
// node_modules/@lucide/svelte/dist/icons/chevron-right.svelte
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
Icon_default
|
Icon_default
|
||||||
} from "./chunk-SK3R2OSP.js";
|
} from "./chunk-V6DNLLKF.js";
|
||||||
|
import "./chunk-2LGM3QYM.js";
|
||||||
import {
|
import {
|
||||||
check_target,
|
check_target,
|
||||||
hmr,
|
hmr,
|
||||||
@@ -9,11 +10,12 @@ import {
|
|||||||
snippet,
|
snippet,
|
||||||
spread_props,
|
spread_props,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment
|
comment
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
FILENAME,
|
FILENAME,
|
||||||
HMR,
|
HMR,
|
||||||
@@ -22,12 +24,10 @@ import {
|
|||||||
noop,
|
noop,
|
||||||
pop,
|
pop,
|
||||||
push
|
push
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-2LGM3QYM.js";
|
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|
||||||
// node_modules/@lucide/svelte/dist/icons/circle.svelte
|
// node_modules/@lucide/svelte/dist/icons/circle.svelte
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
Icon_default
|
Icon_default
|
||||||
} from "./chunk-SK3R2OSP.js";
|
} from "./chunk-V6DNLLKF.js";
|
||||||
|
import "./chunk-2LGM3QYM.js";
|
||||||
import {
|
import {
|
||||||
check_target,
|
check_target,
|
||||||
hmr,
|
hmr,
|
||||||
@@ -9,11 +10,12 @@ import {
|
|||||||
snippet,
|
snippet,
|
||||||
spread_props,
|
spread_props,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment
|
comment
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
FILENAME,
|
FILENAME,
|
||||||
HMR,
|
HMR,
|
||||||
@@ -22,12 +24,10 @@ import {
|
|||||||
noop,
|
noop,
|
||||||
pop,
|
pop,
|
||||||
push
|
push
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-2LGM3QYM.js";
|
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|
||||||
// node_modules/@lucide/svelte/dist/icons/minus.svelte
|
// node_modules/@lucide/svelte/dist/icons/minus.svelte
|
||||||
|
|||||||
+6
-6
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
Icon_default
|
Icon_default
|
||||||
} from "./chunk-SK3R2OSP.js";
|
} from "./chunk-V6DNLLKF.js";
|
||||||
|
import "./chunk-2LGM3QYM.js";
|
||||||
import {
|
import {
|
||||||
check_target,
|
check_target,
|
||||||
hmr,
|
hmr,
|
||||||
@@ -9,11 +10,12 @@ import {
|
|||||||
snippet,
|
snippet,
|
||||||
spread_props,
|
spread_props,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment
|
comment
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
FILENAME,
|
FILENAME,
|
||||||
HMR,
|
HMR,
|
||||||
@@ -22,12 +24,10 @@ import {
|
|||||||
noop,
|
noop,
|
||||||
pop,
|
pop,
|
||||||
push
|
push
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-2LGM3QYM.js";
|
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|
||||||
// node_modules/@lucide/svelte/dist/icons/x.svelte
|
// node_modules/@lucide/svelte/dist/icons/x.svelte
|
||||||
|
|||||||
+63
-57
@@ -2,30 +2,30 @@
|
|||||||
"hash": "e1b6cade",
|
"hash": "e1b6cade",
|
||||||
"configHash": "441370a6",
|
"configHash": "441370a6",
|
||||||
"lockfileHash": "9401e68b",
|
"lockfileHash": "9401e68b",
|
||||||
"browserHash": "c578848f",
|
"browserHash": "8eb13a4f",
|
||||||
"optimized": {
|
"optimized": {
|
||||||
"svelte": {
|
"svelte": {
|
||||||
"src": "../../svelte/src/index-client.js",
|
"src": "../../svelte/src/index-client.js",
|
||||||
"file": "svelte.js",
|
"file": "svelte.js",
|
||||||
"fileHash": "836a0569",
|
"fileHash": "07b115b9",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/animate": {
|
"svelte/animate": {
|
||||||
"src": "../../svelte/src/animate/index.js",
|
"src": "../../svelte/src/animate/index.js",
|
||||||
"file": "svelte_animate.js",
|
"file": "svelte_animate.js",
|
||||||
"fileHash": "a84129da",
|
"fileHash": "c012b289",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/attachments": {
|
"svelte/attachments": {
|
||||||
"src": "../../svelte/src/attachments/index.js",
|
"src": "../../svelte/src/attachments/index.js",
|
||||||
"file": "svelte_attachments.js",
|
"file": "svelte_attachments.js",
|
||||||
"fileHash": "2242f01b",
|
"fileHash": "6bded66c",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/easing": {
|
"svelte/easing": {
|
||||||
"src": "../../svelte/src/easing/index.js",
|
"src": "../../svelte/src/easing/index.js",
|
||||||
"file": "svelte_easing.js",
|
"file": "svelte_easing.js",
|
||||||
"fileHash": "0123c7d6",
|
"fileHash": "8c8820c0",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/internal": {
|
"svelte/internal": {
|
||||||
@@ -37,220 +37,226 @@
|
|||||||
"svelte/internal/client": {
|
"svelte/internal/client": {
|
||||||
"src": "../../svelte/src/internal/client/index.js",
|
"src": "../../svelte/src/internal/client/index.js",
|
||||||
"file": "svelte_internal_client.js",
|
"file": "svelte_internal_client.js",
|
||||||
"fileHash": "bf7d241e",
|
"fileHash": "c34b6da3",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/internal/disclose-version": {
|
"svelte/internal/disclose-version": {
|
||||||
"src": "../../svelte/src/internal/disclose-version.js",
|
"src": "../../svelte/src/internal/disclose-version.js",
|
||||||
"file": "svelte_internal_disclose-version.js",
|
"file": "svelte_internal_disclose-version.js",
|
||||||
"fileHash": "5ac70717",
|
"fileHash": "9a06bc8d",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/internal/flags/async": {
|
"svelte/internal/flags/async": {
|
||||||
"src": "../../svelte/src/internal/flags/async.js",
|
"src": "../../svelte/src/internal/flags/async.js",
|
||||||
"file": "svelte_internal_flags_async.js",
|
"file": "svelte_internal_flags_async.js",
|
||||||
"fileHash": "1b74e6fc",
|
"fileHash": "61336ace",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/internal/flags/legacy": {
|
"svelte/internal/flags/legacy": {
|
||||||
"src": "../../svelte/src/internal/flags/legacy.js",
|
"src": "../../svelte/src/internal/flags/legacy.js",
|
||||||
"file": "svelte_internal_flags_legacy.js",
|
"file": "svelte_internal_flags_legacy.js",
|
||||||
"fileHash": "1c59baa5",
|
"fileHash": "b5bf1ecd",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/internal/flags/tracing": {
|
"svelte/internal/flags/tracing": {
|
||||||
"src": "../../svelte/src/internal/flags/tracing.js",
|
"src": "../../svelte/src/internal/flags/tracing.js",
|
||||||
"file": "svelte_internal_flags_tracing.js",
|
"file": "svelte_internal_flags_tracing.js",
|
||||||
"fileHash": "6a43fbc1",
|
"fileHash": "3fd00f44",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/legacy": {
|
"svelte/legacy": {
|
||||||
"src": "../../svelte/src/legacy/legacy-client.js",
|
"src": "../../svelte/src/legacy/legacy-client.js",
|
||||||
"file": "svelte_legacy.js",
|
"file": "svelte_legacy.js",
|
||||||
"fileHash": "f44ad964",
|
"fileHash": "3de6d8ec",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/motion": {
|
"svelte/motion": {
|
||||||
"src": "../../svelte/src/motion/index.js",
|
"src": "../../svelte/src/motion/index.js",
|
||||||
"file": "svelte_motion.js",
|
"file": "svelte_motion.js",
|
||||||
"fileHash": "eed1a42f",
|
"fileHash": "d56675c0",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/reactivity": {
|
"svelte/reactivity": {
|
||||||
"src": "../../svelte/src/reactivity/index-client.js",
|
"src": "../../svelte/src/reactivity/index-client.js",
|
||||||
"file": "svelte_reactivity.js",
|
"file": "svelte_reactivity.js",
|
||||||
"fileHash": "8addd267",
|
"fileHash": "699399e6",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/reactivity/window": {
|
"svelte/reactivity/window": {
|
||||||
"src": "../../svelte/src/reactivity/window/index.js",
|
"src": "../../svelte/src/reactivity/window/index.js",
|
||||||
"file": "svelte_reactivity_window.js",
|
"file": "svelte_reactivity_window.js",
|
||||||
"fileHash": "cb259eae",
|
"fileHash": "a0847fd2",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/store": {
|
"svelte/store": {
|
||||||
"src": "../../svelte/src/store/index-client.js",
|
"src": "../../svelte/src/store/index-client.js",
|
||||||
"file": "svelte_store.js",
|
"file": "svelte_store.js",
|
||||||
"fileHash": "8719f5c5",
|
"fileHash": "14d7ddb4",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/transition": {
|
"svelte/transition": {
|
||||||
"src": "../../svelte/src/transition/index.js",
|
"src": "../../svelte/src/transition/index.js",
|
||||||
"file": "svelte_transition.js",
|
"file": "svelte_transition.js",
|
||||||
"fileHash": "6d4c0f07",
|
"fileHash": "423bf8f4",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte/events": {
|
"svelte/events": {
|
||||||
"src": "../../svelte/src/events/index.js",
|
"src": "../../svelte/src/events/index.js",
|
||||||
"file": "svelte_events.js",
|
"file": "svelte_events.js",
|
||||||
"fileHash": "ec738ae4",
|
"fileHash": "078c4a8c",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"svelte > clsx": {
|
"svelte > clsx": {
|
||||||
"src": "../../clsx/dist/clsx.mjs",
|
"src": "../../clsx/dist/clsx.mjs",
|
||||||
"file": "svelte___clsx.js",
|
"file": "svelte___clsx.js",
|
||||||
"fileHash": "a84375a2",
|
"fileHash": "1ee833c7",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/check": {
|
"@lucide/svelte/icons/check": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/check.js",
|
"src": "../../@lucide/svelte/dist/icons/check.js",
|
||||||
"file": "@lucide_svelte_icons_check.js",
|
"file": "@lucide_svelte_icons_check.js",
|
||||||
"fileHash": "cc59c42d",
|
"fileHash": "0ac209ae",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/chevron-right": {
|
"@lucide/svelte/icons/chevron-right": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/chevron-right.js",
|
"src": "../../@lucide/svelte/dist/icons/chevron-right.js",
|
||||||
"file": "@lucide_svelte_icons_chevron-right.js",
|
"file": "@lucide_svelte_icons_chevron-right.js",
|
||||||
"fileHash": "4ebfe37c",
|
"fileHash": "c09b9f4f",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/circle": {
|
"@lucide/svelte/icons/circle": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/circle.js",
|
"src": "../../@lucide/svelte/dist/icons/circle.js",
|
||||||
"file": "@lucide_svelte_icons_circle.js",
|
"file": "@lucide_svelte_icons_circle.js",
|
||||||
"fileHash": "c9116309",
|
"fileHash": "e48abf24",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/minus": {
|
"@lucide/svelte/icons/minus": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/minus.js",
|
"src": "../../@lucide/svelte/dist/icons/minus.js",
|
||||||
"file": "@lucide_svelte_icons_minus.js",
|
"file": "@lucide_svelte_icons_minus.js",
|
||||||
"fileHash": "e38affc6",
|
"fileHash": "cbdf943d",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/x": {
|
"@lucide/svelte/icons/x": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/x.js",
|
"src": "../../@lucide/svelte/dist/icons/x.js",
|
||||||
"file": "@lucide_svelte_icons_x.js",
|
"file": "@lucide_svelte_icons_x.js",
|
||||||
"fileHash": "dd4ef7b8",
|
"fileHash": "32d222b0",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"barcode-detector-api-polyfill": {
|
"barcode-detector-api-polyfill": {
|
||||||
"src": "../../barcode-detector-api-polyfill/esm/index.js",
|
"src": "../../barcode-detector-api-polyfill/esm/index.js",
|
||||||
"file": "barcode-detector-api-polyfill.js",
|
"file": "barcode-detector-api-polyfill.js",
|
||||||
"fileHash": "e171d6a3",
|
"fileHash": "44de5b82",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"bits-ui": {
|
"bits-ui": {
|
||||||
"src": "../../bits-ui/dist/index.js",
|
"src": "../../bits-ui/dist/index.js",
|
||||||
"file": "bits-ui.js",
|
"file": "bits-ui.js",
|
||||||
"fileHash": "79f12900",
|
"fileHash": "9adf7bd3",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"clsx": {
|
"clsx": {
|
||||||
"src": "../../clsx/dist/clsx.mjs",
|
"src": "../../clsx/dist/clsx.mjs",
|
||||||
"file": "clsx.js",
|
"file": "clsx.js",
|
||||||
"fileHash": "2d2f5d80",
|
"fileHash": "6547c390",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"devalue": {
|
"devalue": {
|
||||||
"src": "../../devalue/index.js",
|
"src": "../../devalue/index.js",
|
||||||
"file": "devalue.js",
|
"file": "devalue.js",
|
||||||
"fileHash": "d36225a1",
|
"fileHash": "6bd276fd",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"esm-env": {
|
"esm-env": {
|
||||||
"src": "../../esm-env/index.js",
|
"src": "../../esm-env/index.js",
|
||||||
"file": "esm-env.js",
|
"file": "esm-env.js",
|
||||||
"fileHash": "b2a3e5c0",
|
"fileHash": "a16abac7",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"pocketbase": {
|
"pocketbase": {
|
||||||
"src": "../../pocketbase/dist/pocketbase.es.mjs",
|
"src": "../../pocketbase/dist/pocketbase.es.mjs",
|
||||||
"file": "pocketbase.js",
|
"file": "pocketbase.js",
|
||||||
"fileHash": "d86e8c93",
|
"fileHash": "241d5081",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"tailwind-merge": {
|
"tailwind-merge": {
|
||||||
"src": "../../tailwind-merge/dist/bundle-mjs.mjs",
|
"src": "../../tailwind-merge/dist/bundle-mjs.mjs",
|
||||||
"file": "tailwind-merge.js",
|
"file": "tailwind-merge.js",
|
||||||
"fileHash": "5a4842de",
|
"fileHash": "7d5f8442",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"tailwind-variants": {
|
"tailwind-variants": {
|
||||||
"src": "../../tailwind-variants/dist/index.js",
|
"src": "../../tailwind-variants/dist/index.js",
|
||||||
"file": "tailwind-variants.js",
|
"file": "tailwind-variants.js",
|
||||||
"fileHash": "af3e226f",
|
"fileHash": "3821161a",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/chevron-down": {
|
"@lucide/svelte/icons/chevron-down": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/chevron-down.js",
|
"src": "../../@lucide/svelte/dist/icons/chevron-down.js",
|
||||||
"file": "@lucide_svelte_icons_chevron-down.js",
|
"file": "@lucide_svelte_icons_chevron-down.js",
|
||||||
"fileHash": "c086c4f6",
|
"fileHash": "48902207",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"@lucide/svelte/icons/chevron-up": {
|
"@lucide/svelte/icons/chevron-up": {
|
||||||
"src": "../../@lucide/svelte/dist/icons/chevron-up.js",
|
"src": "../../@lucide/svelte/dist/icons/chevron-up.js",
|
||||||
"file": "@lucide_svelte_icons_chevron-up.js",
|
"file": "@lucide_svelte_icons_chevron-up.js",
|
||||||
"fileHash": "8f687e14",
|
"fileHash": "b33cd26c",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"heic2any": {
|
"heic2any": {
|
||||||
"src": "../../heic2any/dist/heic2any.js",
|
"src": "../../heic2any/dist/heic2any.js",
|
||||||
"file": "heic2any.js",
|
"file": "heic2any.js",
|
||||||
"fileHash": "fb3f1ac6",
|
"fileHash": "4e438dea",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
|
},
|
||||||
|
"@lucide/svelte/icons/loader-2": {
|
||||||
|
"src": "../../@lucide/svelte/dist/icons/loader-2.js",
|
||||||
|
"file": "@lucide_svelte_icons_loader-2.js",
|
||||||
|
"fileHash": "7eba973c",
|
||||||
|
"needsInterop": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chunks": {
|
"chunks": {
|
||||||
"chunk-2KB4Y67V": {
|
"chunk-N4HEU72H": {
|
||||||
"file": "chunk-2KB4Y67V.js"
|
"file": "chunk-N4HEU72H.js"
|
||||||
},
|
},
|
||||||
"chunk-UKQGYTAZ": {
|
"chunk-MPD7DSJG": {
|
||||||
"file": "chunk-UKQGYTAZ.js"
|
"file": "chunk-MPD7DSJG.js"
|
||||||
},
|
},
|
||||||
"chunk-7RQDXF5S": {
|
"chunk-7RQDXF5S": {
|
||||||
"file": "chunk-7RQDXF5S.js"
|
"file": "chunk-7RQDXF5S.js"
|
||||||
},
|
},
|
||||||
"chunk-MZVN5SDE": {
|
"chunk-V6DNLLKF": {
|
||||||
"file": "chunk-MZVN5SDE.js"
|
"file": "chunk-V6DNLLKF.js"
|
||||||
},
|
},
|
||||||
"chunk-SK3R2OSP": {
|
"chunk-2LGM3QYM": {
|
||||||
"file": "chunk-SK3R2OSP.js"
|
"file": "chunk-2LGM3QYM.js"
|
||||||
},
|
},
|
||||||
"chunk-HRPYXN4O": {
|
"chunk-NTAG77ZX": {
|
||||||
"file": "chunk-HRPYXN4O.js"
|
"file": "chunk-NTAG77ZX.js"
|
||||||
},
|
},
|
||||||
"chunk-XGKSMLPM": {
|
"chunk-MKTP2BFS": {
|
||||||
"file": "chunk-XGKSMLPM.js"
|
"file": "chunk-MKTP2BFS.js"
|
||||||
},
|
|
||||||
"chunk-7XW5QO7S": {
|
|
||||||
"file": "chunk-7XW5QO7S.js"
|
|
||||||
},
|
|
||||||
"chunk-SWXNV5Y3": {
|
|
||||||
"file": "chunk-SWXNV5Y3.js"
|
|
||||||
},
|
|
||||||
"chunk-XWATFG4W": {
|
|
||||||
"file": "chunk-XWATFG4W.js"
|
|
||||||
},
|
},
|
||||||
"chunk-U7P2NEEE": {
|
"chunk-U7P2NEEE": {
|
||||||
"file": "chunk-U7P2NEEE.js"
|
"file": "chunk-U7P2NEEE.js"
|
||||||
},
|
},
|
||||||
|
"chunk-HZ6NBROY": {
|
||||||
|
"file": "chunk-HZ6NBROY.js"
|
||||||
|
},
|
||||||
|
"chunk-XWATFG4W": {
|
||||||
|
"file": "chunk-XWATFG4W.js"
|
||||||
|
},
|
||||||
"chunk-HNWPC2PS": {
|
"chunk-HNWPC2PS": {
|
||||||
"file": "chunk-HNWPC2PS.js"
|
"file": "chunk-HNWPC2PS.js"
|
||||||
},
|
},
|
||||||
|
"chunk-MZVN5SDE": {
|
||||||
|
"file": "chunk-MZVN5SDE.js"
|
||||||
|
},
|
||||||
"chunk-OHYQYV5R": {
|
"chunk-OHYQYV5R": {
|
||||||
"file": "chunk-OHYQYV5R.js"
|
"file": "chunk-OHYQYV5R.js"
|
||||||
},
|
},
|
||||||
"chunk-2LGM3QYM": {
|
"chunk-HRPYXN4O": {
|
||||||
"file": "chunk-2LGM3QYM.js"
|
"file": "chunk-HRPYXN4O.js"
|
||||||
},
|
},
|
||||||
"chunk-YERFD2CZ": {
|
"chunk-YERFD2CZ": {
|
||||||
"file": "chunk-YERFD2CZ.js"
|
"file": "chunk-YERFD2CZ.js"
|
||||||
|
|||||||
+10
-10
@@ -1,9 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
SvelteMap
|
SvelteMap
|
||||||
} from "./chunk-2KB4Y67V.js";
|
} from "./chunk-N4HEU72H.js";
|
||||||
import "./chunk-UKQGYTAZ.js";
|
import "./chunk-MPD7DSJG.js";
|
||||||
import "./chunk-7RQDXF5S.js";
|
import "./chunk-7RQDXF5S.js";
|
||||||
import "./chunk-MZVN5SDE.js";
|
import "./chunk-2LGM3QYM.js";
|
||||||
import {
|
import {
|
||||||
add_locations,
|
add_locations,
|
||||||
append_styles,
|
append_styles,
|
||||||
@@ -38,7 +38,7 @@ import {
|
|||||||
validate_snippet_args,
|
validate_snippet_args,
|
||||||
validate_void_dynamic_element,
|
validate_void_dynamic_element,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment,
|
comment,
|
||||||
@@ -49,7 +49,10 @@ import {
|
|||||||
set_text,
|
set_text,
|
||||||
text,
|
text,
|
||||||
unmount
|
unmount
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import {
|
||||||
|
clsx
|
||||||
|
} from "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
FILENAME,
|
FILENAME,
|
||||||
HMR,
|
HMR,
|
||||||
@@ -85,16 +88,13 @@ import {
|
|||||||
user_derived,
|
user_derived,
|
||||||
user_effect,
|
user_effect,
|
||||||
user_pre_effect
|
user_pre_effect
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import {
|
|
||||||
clsx
|
|
||||||
} from "./chunk-U7P2NEEE.js";
|
|
||||||
import {
|
import {
|
||||||
true_default
|
true_default
|
||||||
} from "./chunk-HNWPC2PS.js";
|
} from "./chunk-HNWPC2PS.js";
|
||||||
|
import "./chunk-MZVN5SDE.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-2LGM3QYM.js";
|
|
||||||
import {
|
import {
|
||||||
__export,
|
__export,
|
||||||
__privateAdd,
|
__privateAdd,
|
||||||
|
|||||||
+4
-4
@@ -7,12 +7,13 @@ import {
|
|||||||
hydratable,
|
hydratable,
|
||||||
onDestroy,
|
onDestroy,
|
||||||
onMount
|
onMount
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
hydrate,
|
hydrate,
|
||||||
mount,
|
mount,
|
||||||
unmount
|
unmount
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
createContext,
|
createContext,
|
||||||
flushSync,
|
flushSync,
|
||||||
@@ -24,9 +25,8 @@ import {
|
|||||||
settled,
|
settled,
|
||||||
tick,
|
tick,
|
||||||
untrack
|
untrack
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|||||||
+4
-4
@@ -1,11 +1,11 @@
|
|||||||
import {
|
import {
|
||||||
createAttachmentKey,
|
createAttachmentKey,
|
||||||
fromAction
|
fromAction
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import "./chunk-7XW5QO7S.js";
|
import "./chunk-MKTP2BFS.js";
|
||||||
import "./chunk-SWXNV5Y3.js";
|
|
||||||
import "./chunk-XWATFG4W.js";
|
|
||||||
import "./chunk-U7P2NEEE.js";
|
import "./chunk-U7P2NEEE.js";
|
||||||
|
import "./chunk-HZ6NBROY.js";
|
||||||
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
import "./chunk-7RQDXF5S.js";
|
import "./chunk-7RQDXF5S.js";
|
||||||
import {
|
import {
|
||||||
on
|
on
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
|
|||||||
+4
-4
@@ -107,7 +107,7 @@ import {
|
|||||||
validate_store,
|
validate_store,
|
||||||
validate_void_dynamic_element,
|
validate_void_dynamic_element,
|
||||||
wrap_snippet
|
wrap_snippet
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import {
|
import {
|
||||||
append,
|
append,
|
||||||
comment,
|
comment,
|
||||||
@@ -125,7 +125,8 @@ import {
|
|||||||
text,
|
text,
|
||||||
trusted,
|
trusted,
|
||||||
with_script
|
with_script
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
$document,
|
$document,
|
||||||
$window,
|
$window,
|
||||||
@@ -199,9 +200,8 @@ import {
|
|||||||
user_effect,
|
user_effect,
|
||||||
user_pre_effect,
|
user_pre_effect,
|
||||||
wait
|
wait
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|||||||
+2
-2
@@ -12,8 +12,8 @@ import {
|
|||||||
stopImmediatePropagation,
|
stopImmediatePropagation,
|
||||||
stopPropagation,
|
stopPropagation,
|
||||||
trusted
|
trusted
|
||||||
} from "./chunk-7XW5QO7S.js";
|
} from "./chunk-MKTP2BFS.js";
|
||||||
import "./chunk-SWXNV5Y3.js";
|
import "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
|
|||||||
+6
-6
@@ -1,14 +1,15 @@
|
|||||||
import {
|
import {
|
||||||
MediaQuery
|
MediaQuery
|
||||||
} from "./chunk-2KB4Y67V.js";
|
} from "./chunk-N4HEU72H.js";
|
||||||
import "./chunk-UKQGYTAZ.js";
|
import "./chunk-MPD7DSJG.js";
|
||||||
import "./chunk-7RQDXF5S.js";
|
import "./chunk-7RQDXF5S.js";
|
||||||
import {
|
import {
|
||||||
loop,
|
loop,
|
||||||
raf,
|
raf,
|
||||||
writable
|
writable
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import "./chunk-7XW5QO7S.js";
|
import "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
deferred,
|
deferred,
|
||||||
get,
|
get,
|
||||||
@@ -17,9 +18,8 @@ import {
|
|||||||
set,
|
set,
|
||||||
state,
|
state,
|
||||||
tag
|
tag
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import {
|
import {
|
||||||
true_default
|
true_default
|
||||||
} from "./chunk-HNWPC2PS.js";
|
} from "./chunk-HNWPC2PS.js";
|
||||||
|
|||||||
+6
-6
@@ -5,16 +5,16 @@ import {
|
|||||||
SvelteSet,
|
SvelteSet,
|
||||||
SvelteURL,
|
SvelteURL,
|
||||||
SvelteURLSearchParams
|
SvelteURLSearchParams
|
||||||
} from "./chunk-2KB4Y67V.js";
|
} from "./chunk-N4HEU72H.js";
|
||||||
import "./chunk-UKQGYTAZ.js";
|
import "./chunk-MPD7DSJG.js";
|
||||||
import "./chunk-7RQDXF5S.js";
|
import "./chunk-7RQDXF5S.js";
|
||||||
import "./chunk-XGKSMLPM.js";
|
import "./chunk-NTAG77ZX.js";
|
||||||
import "./chunk-7XW5QO7S.js";
|
import "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
createSubscriber
|
createSubscriber
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|||||||
+5
-5
@@ -1,18 +1,18 @@
|
|||||||
import {
|
import {
|
||||||
ReactiveValue
|
ReactiveValue
|
||||||
} from "./chunk-UKQGYTAZ.js";
|
} from "./chunk-MPD7DSJG.js";
|
||||||
import "./chunk-7RQDXF5S.js";
|
import "./chunk-7RQDXF5S.js";
|
||||||
import "./chunk-XGKSMLPM.js";
|
import "./chunk-NTAG77ZX.js";
|
||||||
import "./chunk-7XW5QO7S.js";
|
import "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
get,
|
get,
|
||||||
on,
|
on,
|
||||||
set,
|
set,
|
||||||
source,
|
source,
|
||||||
tag
|
tag
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import {
|
import {
|
||||||
true_default
|
true_default
|
||||||
} from "./chunk-HNWPC2PS.js";
|
} from "./chunk-HNWPC2PS.js";
|
||||||
|
|||||||
+4
-4
@@ -4,8 +4,9 @@ import {
|
|||||||
readable,
|
readable,
|
||||||
readonly,
|
readonly,
|
||||||
writable
|
writable
|
||||||
} from "./chunk-XGKSMLPM.js";
|
} from "./chunk-NTAG77ZX.js";
|
||||||
import "./chunk-7XW5QO7S.js";
|
import "./chunk-MKTP2BFS.js";
|
||||||
|
import "./chunk-U7P2NEEE.js";
|
||||||
import {
|
import {
|
||||||
active_effect,
|
active_effect,
|
||||||
active_reaction,
|
active_reaction,
|
||||||
@@ -15,9 +16,8 @@ import {
|
|||||||
render_effect,
|
render_effect,
|
||||||
set_active_effect,
|
set_active_effect,
|
||||||
set_active_reaction
|
set_active_reaction
|
||||||
} from "./chunk-SWXNV5Y3.js";
|
} from "./chunk-HZ6NBROY.js";
|
||||||
import "./chunk-XWATFG4W.js";
|
import "./chunk-XWATFG4W.js";
|
||||||
import "./chunk-U7P2NEEE.js";
|
|
||||||
import "./chunk-HNWPC2PS.js";
|
import "./chunk-HNWPC2PS.js";
|
||||||
import "./chunk-OHYQYV5R.js";
|
import "./chunk-OHYQYV5R.js";
|
||||||
import "./chunk-LYA4E26T.js";
|
import "./chunk-LYA4E26T.js";
|
||||||
|
|||||||
@@ -3,9 +3,13 @@
|
|||||||
import { Label } from "$lib/components/ui/label";
|
import { Label } from "$lib/components/ui/label";
|
||||||
import { convertImageToWebP } from "$lib/convert-image-to-webp";
|
import { convertImageToWebP } from "$lib/convert-image-to-webp";
|
||||||
import { enhance } from "$app/forms";
|
import { enhance } from "$app/forms";
|
||||||
|
import Loader2Icon from "@lucide/svelte/icons/loader-2";
|
||||||
|
|
||||||
const TYPE_OPTIONS = ["Purchase", "Gas"] as const;
|
const TYPE_OPTIONS = ["Purchase", "Gas"] as const;
|
||||||
|
|
||||||
|
const SCAN_BUTTON_CLASS =
|
||||||
|
"border-input bg-background hover:bg-accent hover:text-accent-foreground flex h-9 w-full cursor-pointer items-center justify-center gap-2 rounded-md border px-4 py-2 text-sm font-medium shadow-xs transition-colors";
|
||||||
|
|
||||||
let {
|
let {
|
||||||
action,
|
action,
|
||||||
submitLabel,
|
submitLabel,
|
||||||
@@ -32,6 +36,8 @@
|
|||||||
}
|
}
|
||||||
imageConverting = true;
|
imageConverting = true;
|
||||||
imageFileName = null;
|
imageFileName = null;
|
||||||
|
// Let the UI paint "Processing image…" before we block the main thread
|
||||||
|
await new Promise((r) => setTimeout(r, 0));
|
||||||
try {
|
try {
|
||||||
const webpFile = await convertImageToWebP(file);
|
const webpFile = await convertImageToWebP(file);
|
||||||
const dt = new DataTransfer();
|
const dt = new DataTransfer();
|
||||||
@@ -86,12 +92,20 @@
|
|||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
aria-label="Scan receipt"
|
aria-label="Scan receipt"
|
||||||
/>
|
/>
|
||||||
<label
|
{#if imageConverting}
|
||||||
for="Image"
|
<div
|
||||||
class="border-input bg-background hover:bg-accent hover:text-accent-foreground flex h-9 w-full cursor-pointer items-center justify-center rounded-md border px-4 py-2 text-sm font-medium shadow-xs transition-colors"
|
class="{SCAN_BUTTON_CLASS} pointer-events-none opacity-80"
|
||||||
>
|
aria-busy="true"
|
||||||
Scan receipt
|
aria-live="polite"
|
||||||
</label>
|
>
|
||||||
|
<Loader2Icon class="size-4 shrink-0 animate-spin" aria-hidden />
|
||||||
|
<span>Processing image…</span>
|
||||||
|
</div>
|
||||||
|
{:else}
|
||||||
|
<label for="Image" class={SCAN_BUTTON_CLASS}>
|
||||||
|
Scan receipt
|
||||||
|
</label>
|
||||||
|
{/if}
|
||||||
{#if imageConverting}
|
{#if imageConverting}
|
||||||
<p class="text-muted-foreground text-xs">Converting to WebP…</p>
|
<p class="text-muted-foreground text-xs">Converting to WebP…</p>
|
||||||
{:else if imageFileName}
|
{:else if imageFileName}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
import { enhance } from "$app/forms";
|
import { enhance } from "$app/forms";
|
||||||
import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
|
import ChevronDownIcon from "@lucide/svelte/icons/chevron-down";
|
||||||
import ChevronUpIcon from "@lucide/svelte/icons/chevron-up";
|
import ChevronUpIcon from "@lucide/svelte/icons/chevron-up";
|
||||||
|
import Loader2Icon from "@lucide/svelte/icons/loader-2";
|
||||||
import type { StackqReceipt } from "$lib/types/receipts";
|
import type { StackqReceipt } from "$lib/types/receipts";
|
||||||
import type { ReceiptLineItem } from "$lib/types/receipts";
|
import type { ReceiptLineItem } from "$lib/types/receipts";
|
||||||
|
|
||||||
@@ -122,6 +123,7 @@
|
|||||||
let imageFileName = $state<string | null>(null);
|
let imageFileName = $state<string | null>(null);
|
||||||
let selectedImageFile = $state<File | null>(null);
|
let selectedImageFile = $state<File | null>(null);
|
||||||
let imageError = $state(false);
|
let imageError = $state(false);
|
||||||
|
let imageConverting = $state(false);
|
||||||
|
|
||||||
/** On small screens image is collapsed by default; on lg+ expanded. */
|
/** On small screens image is collapsed by default; on lg+ expanded. */
|
||||||
let imageOpen = $state(false);
|
let imageOpen = $state(false);
|
||||||
@@ -141,6 +143,10 @@
|
|||||||
imageFileName = null;
|
imageFileName = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
imageConverting = true;
|
||||||
|
selectedImageFile = null;
|
||||||
|
imageFileName = null;
|
||||||
|
await new Promise((r) => setTimeout(r, 0));
|
||||||
try {
|
try {
|
||||||
const webpFile = await convertImageToWebP(file);
|
const webpFile = await convertImageToWebP(file);
|
||||||
selectedImageFile = webpFile;
|
selectedImageFile = webpFile;
|
||||||
@@ -149,6 +155,8 @@
|
|||||||
selectedImageFile = null;
|
selectedImageFile = null;
|
||||||
imageFileName = null;
|
imageFileName = null;
|
||||||
if (input) input.value = "";
|
if (input) input.value = "";
|
||||||
|
} finally {
|
||||||
|
imageConverting = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function imageLoadError() {
|
function imageLoadError() {
|
||||||
@@ -247,12 +255,23 @@
|
|||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
aria-label={receipt.Image ? "Replace image" : "Add image"}
|
aria-label={receipt.Image ? "Replace image" : "Add image"}
|
||||||
/>
|
/>
|
||||||
<label
|
{#if imageConverting}
|
||||||
for="receipt-image-input"
|
<div
|
||||||
class="border-input bg-background hover:bg-accent hover:text-accent-foreground inline-flex h-8 cursor-pointer items-center justify-center rounded-md border px-3 text-sm font-medium shadow-xs transition-colors"
|
class="border-input bg-background inline-flex h-8 cursor-not-allowed items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium opacity-80"
|
||||||
>
|
aria-busy="true"
|
||||||
{receipt.Image ? "Replace image" : "Add image"}
|
aria-live="polite"
|
||||||
</label>
|
>
|
||||||
|
<Loader2Icon class="size-4 shrink-0 animate-spin" aria-hidden />
|
||||||
|
<span>Processing image…</span>
|
||||||
|
</div>
|
||||||
|
{:else}
|
||||||
|
<label
|
||||||
|
for="receipt-image-input"
|
||||||
|
class="border-input bg-background hover:bg-accent hover:text-accent-foreground inline-flex h-8 cursor-pointer items-center justify-center rounded-md border px-3 text-sm font-medium shadow-xs transition-colors"
|
||||||
|
>
|
||||||
|
{receipt.Image ? "Replace image" : "Add image"}
|
||||||
|
</label>
|
||||||
|
{/if}
|
||||||
{#if imageFileName}
|
{#if imageFileName}
|
||||||
<span class="text-muted-foreground text-xs">New: {imageFileName}</span>
|
<span class="text-muted-foreground text-xs">New: {imageFileName}</span>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
Reference in New Issue
Block a user