@useupup/svelte 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +60 -0
- package/dist/UpupUploader.svelte +96 -0
- package/dist/UpupUploader.svelte.d.ts +5 -0
- package/dist/UpupUploader.svelte.d.ts.map +1 -0
- package/dist/assets/logos.d.ts +5 -0
- package/dist/assets/logos.d.ts.map +1 -0
- package/dist/assets/logos.js +4 -0
- package/dist/components/AudioUploader.svelte +220 -0
- package/dist/components/AudioUploader.svelte.d.ts +4 -0
- package/dist/components/AudioUploader.svelte.d.ts.map +1 -0
- package/dist/components/AudioWaveform.svelte +72 -0
- package/dist/components/AudioWaveform.svelte.d.ts +7 -0
- package/dist/components/AudioWaveform.svelte.d.ts.map +1 -0
- package/dist/components/BoxUploader.svelte +17 -0
- package/dist/components/BoxUploader.svelte.d.ts +19 -0
- package/dist/components/BoxUploader.svelte.d.ts.map +1 -0
- package/dist/components/CameraUploader.svelte +140 -0
- package/dist/components/CameraUploader.svelte.d.ts +4 -0
- package/dist/components/CameraUploader.svelte.d.ts.map +1 -0
- package/dist/components/ClientBoxUploader.svelte +60 -0
- package/dist/components/ClientBoxUploader.svelte.d.ts +19 -0
- package/dist/components/ClientBoxUploader.svelte.d.ts.map +1 -0
- package/dist/components/ClientDropboxUploader.svelte +60 -0
- package/dist/components/ClientDropboxUploader.svelte.d.ts +19 -0
- package/dist/components/ClientDropboxUploader.svelte.d.ts.map +1 -0
- package/dist/components/ClientGoogleDriveUploader.svelte +57 -0
- package/dist/components/ClientGoogleDriveUploader.svelte.d.ts +19 -0
- package/dist/components/ClientGoogleDriveUploader.svelte.d.ts.map +1 -0
- package/dist/components/ClientOneDriveUploader.svelte +60 -0
- package/dist/components/ClientOneDriveUploader.svelte.d.ts +19 -0
- package/dist/components/ClientOneDriveUploader.svelte.d.ts.map +1 -0
- package/dist/components/DefaultAddMoreIcon.svelte +11 -0
- package/dist/components/DefaultAddMoreIcon.svelte.d.ts +8 -0
- package/dist/components/DefaultAddMoreIcon.svelte.d.ts.map +1 -0
- package/dist/components/DefaultLoaderIcon.svelte +5 -0
- package/dist/components/DefaultLoaderIcon.svelte.d.ts +19 -0
- package/dist/components/DefaultLoaderIcon.svelte.d.ts.map +1 -0
- package/dist/components/DropboxUploader.svelte +17 -0
- package/dist/components/DropboxUploader.svelte.d.ts +19 -0
- package/dist/components/DropboxUploader.svelte.d.ts.map +1 -0
- package/dist/components/EmptyIcon.svelte +3 -0
- package/dist/components/EmptyIcon.svelte.d.ts +19 -0
- package/dist/components/EmptyIcon.svelte.d.ts.map +1 -0
- package/dist/components/FileHero.svelte +152 -0
- package/dist/components/FileHero.svelte.d.ts +8 -0
- package/dist/components/FileHero.svelte.d.ts.map +1 -0
- package/dist/components/FileIcon.svelte +23 -0
- package/dist/components/FileIcon.svelte.d.ts +8 -0
- package/dist/components/FileIcon.svelte.d.ts.map +1 -0
- package/dist/components/FileItem.svelte +95 -0
- package/dist/components/FileItem.svelte.d.ts +12 -0
- package/dist/components/FileItem.svelte.d.ts.map +1 -0
- package/dist/components/FileList.svelte +442 -0
- package/dist/components/FileList.svelte.d.ts +4 -0
- package/dist/components/FileList.svelte.d.ts.map +1 -0
- package/dist/components/FilePreview.svelte +218 -0
- package/dist/components/FilePreview.svelte.d.ts +17 -0
- package/dist/components/FilePreview.svelte.d.ts.map +1 -0
- package/dist/components/FilePreviewPortal.svelte +189 -0
- package/dist/components/FilePreviewPortal.svelte.d.ts +12 -0
- package/dist/components/FilePreviewPortal.svelte.d.ts.map +1 -0
- package/dist/components/FilePreviewThumbnail.svelte +87 -0
- package/dist/components/FilePreviewThumbnail.svelte.d.ts +17 -0
- package/dist/components/FilePreviewThumbnail.svelte.d.ts.map +1 -0
- package/dist/components/FileRow.svelte +192 -0
- package/dist/components/FileRow.svelte.d.ts +10 -0
- package/dist/components/FileRow.svelte.d.ts.map +1 -0
- package/dist/components/GoogleDriveUploader.svelte +17 -0
- package/dist/components/GoogleDriveUploader.svelte.d.ts +19 -0
- package/dist/components/GoogleDriveUploader.svelte.d.ts.map +1 -0
- package/dist/components/Icon.svelte +24 -0
- package/dist/components/Icon.svelte.d.ts +10 -0
- package/dist/components/Icon.svelte.d.ts.map +1 -0
- package/dist/components/Icons.d.ts +10 -0
- package/dist/components/Icons.d.ts.map +1 -0
- package/dist/components/Icons.js +9 -0
- package/dist/components/ImageEditorStub.svelte +3 -0
- package/dist/components/ImageEditorStub.svelte.d.ts +19 -0
- package/dist/components/ImageEditorStub.svelte.d.ts.map +1 -0
- package/dist/components/OneDriveUploader.svelte +17 -0
- package/dist/components/OneDriveUploader.svelte.d.ts +19 -0
- package/dist/components/OneDriveUploader.svelte.d.ts.map +1 -0
- package/dist/components/ScreenCaptureUploader.svelte +254 -0
- package/dist/components/ScreenCaptureUploader.svelte.d.ts +4 -0
- package/dist/components/ScreenCaptureUploader.svelte.d.ts.map +1 -0
- package/dist/components/ServerModeDriveUploader.svelte +250 -0
- package/dist/components/ServerModeDriveUploader.svelte.d.ts +10 -0
- package/dist/components/ServerModeDriveUploader.svelte.d.ts.map +1 -0
- package/dist/components/SourceSelector.svelte +292 -0
- package/dist/components/SourceSelector.svelte.d.ts +19 -0
- package/dist/components/SourceSelector.svelte.d.ts.map +1 -0
- package/dist/components/SourceView.svelte +100 -0
- package/dist/components/SourceView.svelte.d.ts +4 -0
- package/dist/components/SourceView.svelte.d.ts.map +1 -0
- package/dist/components/TrashIcon.svelte +11 -0
- package/dist/components/TrashIcon.svelte.d.ts +8 -0
- package/dist/components/TrashIcon.svelte.d.ts.map +1 -0
- package/dist/components/UploaderPanel.svelte +363 -0
- package/dist/components/UploaderPanel.svelte.d.ts +4 -0
- package/dist/components/UploaderPanel.svelte.d.ts.map +1 -0
- package/dist/components/UrlUploader.svelte +71 -0
- package/dist/components/UrlUploader.svelte.d.ts +4 -0
- package/dist/components/UrlUploader.svelte.d.ts.map +1 -0
- package/dist/components/icons/AudioIcon.svelte +5 -0
- package/dist/components/icons/AudioIcon.svelte.d.ts +7 -0
- package/dist/components/icons/AudioIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/BoxIcon.svelte +5 -0
- package/dist/components/icons/BoxIcon.svelte.d.ts +7 -0
- package/dist/components/icons/BoxIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/CameraIcon.svelte +5 -0
- package/dist/components/icons/CameraIcon.svelte.d.ts +7 -0
- package/dist/components/icons/CameraIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/DropboxIcon.svelte +5 -0
- package/dist/components/icons/DropboxIcon.svelte.d.ts +7 -0
- package/dist/components/icons/DropboxIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/GoogleDriveIcon.svelte +5 -0
- package/dist/components/icons/GoogleDriveIcon.svelte.d.ts +7 -0
- package/dist/components/icons/GoogleDriveIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/LinkIcon.svelte +5 -0
- package/dist/components/icons/LinkIcon.svelte.d.ts +7 -0
- package/dist/components/icons/LinkIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/MyDeviceIcon.svelte +5 -0
- package/dist/components/icons/MyDeviceIcon.svelte.d.ts +7 -0
- package/dist/components/icons/MyDeviceIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/OneDriveIcon.svelte +5 -0
- package/dist/components/icons/OneDriveIcon.svelte.d.ts +7 -0
- package/dist/components/icons/OneDriveIcon.svelte.d.ts.map +1 -0
- package/dist/components/icons/ScreenCaptureIcon.svelte +5 -0
- package/dist/components/icons/ScreenCaptureIcon.svelte.d.ts +7 -0
- package/dist/components/icons/ScreenCaptureIcon.svelte.d.ts.map +1 -0
- package/dist/components/shared/DriveAuthFallback.svelte +60 -0
- package/dist/components/shared/DriveAuthFallback.svelte.d.ts +12 -0
- package/dist/components/shared/DriveAuthFallback.svelte.d.ts.map +1 -0
- package/dist/components/shared/DriveBrowser.svelte +209 -0
- package/dist/components/shared/DriveBrowser.svelte.d.ts +25 -0
- package/dist/components/shared/DriveBrowser.svelte.d.ts.map +1 -0
- package/dist/components/shared/DriveBrowserHeader.svelte +191 -0
- package/dist/components/shared/DriveBrowserHeader.svelte.d.ts +14 -0
- package/dist/components/shared/DriveBrowserHeader.svelte.d.ts.map +1 -0
- package/dist/components/shared/DriveBrowserIcon.svelte +39 -0
- package/dist/components/shared/DriveBrowserIcon.svelte.d.ts +8 -0
- package/dist/components/shared/DriveBrowserIcon.svelte.d.ts.map +1 -0
- package/dist/components/shared/DriveBrowserItem.svelte +63 -0
- package/dist/components/shared/DriveBrowserItem.svelte.d.ts +10 -0
- package/dist/components/shared/DriveBrowserItem.svelte.d.ts.map +1 -0
- package/dist/components/shared/FileSuccessCheck.svelte +47 -0
- package/dist/components/shared/FileSuccessCheck.svelte.d.ts +10 -0
- package/dist/components/shared/FileSuccessCheck.svelte.d.ts.map +1 -0
- package/dist/components/shared/ProgressBar.svelte +81 -0
- package/dist/components/shared/ProgressBar.svelte.d.ts +10 -0
- package/dist/components/shared/ProgressBar.svelte.d.ts.map +1 -0
- package/dist/components/shared/SourceViewContainer.svelte +27 -0
- package/dist/components/shared/SourceViewContainer.svelte.d.ts +10 -0
- package/dist/components/shared/SourceViewContainer.svelte.d.ts.map +1 -0
- package/dist/components/shared/UploaderHeader.svelte +156 -0
- package/dist/components/shared/UploaderHeader.svelte.d.ts +13 -0
- package/dist/components/shared/UploaderHeader.svelte.d.ts.map +1 -0
- package/dist/composables/use-tiles-per-row.d.ts +19 -0
- package/dist/composables/use-tiles-per-row.d.ts.map +1 -0
- package/dist/composables/use-tiles-per-row.js +30 -0
- package/dist/composables/useBox.d.ts +28 -0
- package/dist/composables/useBox.d.ts.map +1 -0
- package/dist/composables/useBox.js +61 -0
- package/dist/composables/useCameraUploader.d.ts +23 -0
- package/dist/composables/useCameraUploader.d.ts.map +1 -0
- package/dist/composables/useCameraUploader.js +114 -0
- package/dist/composables/useDropbox.d.ts +28 -0
- package/dist/composables/useDropbox.d.ts.map +1 -0
- package/dist/composables/useDropbox.js +61 -0
- package/dist/composables/useFetchFileByUrl.d.ts +9 -0
- package/dist/composables/useFetchFileByUrl.d.ts.map +1 -0
- package/dist/composables/useFetchFileByUrl.js +33 -0
- package/dist/composables/useGoogleDrive.d.ts +28 -0
- package/dist/composables/useGoogleDrive.d.ts.map +1 -0
- package/dist/composables/useGoogleDrive.js +65 -0
- package/dist/composables/useOneDrive.d.ts +29 -0
- package/dist/composables/useOneDrive.d.ts.map +1 -0
- package/dist/composables/useOneDrive.js +64 -0
- package/dist/composables/useSSEProcessing.d.ts +20 -0
- package/dist/composables/useSSEProcessing.d.ts.map +1 -0
- package/dist/composables/useSSEProcessing.js +17 -0
- package/dist/composables/useServerModeDrive.d.ts +17 -0
- package/dist/composables/useServerModeDrive.d.ts.map +1 -0
- package/dist/composables/useServerModeDrive.js +33 -0
- package/dist/composables/useSourceSelector.d.ts +13 -0
- package/dist/composables/useSourceSelector.d.ts.map +1 -0
- package/dist/composables/useSourceSelector.js +36 -0
- package/dist/composables/useUploaderPanel.d.ts +12 -0
- package/dist/composables/useUploaderPanel.d.ts.map +1 -0
- package/dist/composables/useUploaderPanel.js +43 -0
- package/dist/context/create-uploader-context.d.ts +4 -0
- package/dist/context/create-uploader-context.d.ts.map +1 -0
- package/dist/context/create-uploader-context.js +324 -0
- package/dist/context/source-view-header-extra.d.ts +14 -0
- package/dist/context/source-view-header-extra.d.ts.map +1 -0
- package/dist/context/source-view-header-extra.js +41 -0
- package/dist/context/uploader-context.d.ts +109 -0
- package/dist/context/uploader-context.d.ts.map +1 -0
- package/dist/context/uploader-context.js +96 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/lib/constants.d.ts +13 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +67 -0
- package/dist/lib/to-readable.d.ts +14 -0
- package/dist/lib/to-readable.d.ts.map +1 -0
- package/dist/lib/to-readable.js +15 -0
- package/dist/lib/view-mode.d.ts +24 -0
- package/dist/lib/view-mode.d.ts.map +1 -0
- package/dist/lib/view-mode.js +31 -0
- package/dist/shared/types.d.ts +15 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +1 -0
- package/dist/styles.d.ts +4 -0
- package/dist/tailwind-prefixed.css +2479 -0
- package/dist/tailwind.css +74 -0
- package/dist/use-upup-upload.d.ts +38 -0
- package/dist/use-upup-upload.d.ts.map +1 -0
- package/dist/use-upup-upload.js +81 -0
- package/package.json +101 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { useUploaderFiles, useUploaderI18n, useUploaderOptions, useUploaderRuntime, useUploaderSource, useUploaderTheme, useUploaderUploadControls, useUploaderView } from '../context/uploader-context'
|
|
3
|
+
import { devinoDark, devinoLight, logoDark, logoLight } from '../assets/logos'
|
|
4
|
+
import useUploaderPanel from '../composables/useUploaderPanel'
|
|
5
|
+
import { cn } from '@useupup/core/internal'
|
|
6
|
+
import { UploadStatus, formatUiMessage } from '@useupup/core'
|
|
7
|
+
import SourceView from './SourceView.svelte'
|
|
8
|
+
import SourceSelector from './SourceSelector.svelte'
|
|
9
|
+
import FileList from './FileList.svelte'
|
|
10
|
+
|
|
11
|
+
const { files } = useUploaderFiles()
|
|
12
|
+
const { activeSource } = useUploaderSource()
|
|
13
|
+
const { sourceOverlayOpen, sourceOverlayClosing, dropRejected, closeSourceOverlay } = useUploaderView()
|
|
14
|
+
const { isOnline, motionMode } = useUploaderRuntime()
|
|
15
|
+
const { translations: tr } = useUploaderI18n()
|
|
16
|
+
const { isDark: dark } = useUploaderTheme()
|
|
17
|
+
const { mini, showBranding } = useUploaderOptions()
|
|
18
|
+
const { upload: { uploadStatus } } = useUploaderUploadControls()
|
|
19
|
+
const { isDragging, absoluteIsDragging, absoluteHasBorder, handleDragOver, handleDragLeave, handleDrop, handlePaste } = useUploaderPanel()
|
|
20
|
+
|
|
21
|
+
// The dashed dropzone frame is the idle-view affordance: shown only when the
|
|
22
|
+
// panel is an empty, at-rest dropzone (no active source, no add-more flow, no
|
|
23
|
+
// files). It supersedes the old pulsing CSS border.
|
|
24
|
+
const showDropzoneFrame = $derived(
|
|
25
|
+
$absoluteHasBorder && !$activeSource && !$sourceOverlayOpen && !$files.size,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
// The add-more overlay: once files exist, the source surface slides up over the
|
|
29
|
+
// still-mounted, dimmed file list, and stays mounted through the reverse
|
|
30
|
+
// close-slide (`sourceOverlayClosing`).
|
|
31
|
+
const hasFiles = $derived($files.size > 0)
|
|
32
|
+
const showSourceOverlay = $derived(
|
|
33
|
+
hasFiles && ($sourceOverlayOpen || $sourceOverlayClosing || !!$activeSource),
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
// Focus management (minimal — no focus trap; the dimmed list is `inert`).
|
|
37
|
+
// On open (or an inner view swap) pull focus into the overlay so keyboard/SR
|
|
38
|
+
// users don't land on the inert list underneath, capturing the trigger. On
|
|
39
|
+
// settled close, restore focus to the trigger if it's still connected.
|
|
40
|
+
let overlayEl: HTMLDivElement | null = $state(null)
|
|
41
|
+
let triggerEl: HTMLElement | null = null
|
|
42
|
+
|
|
43
|
+
$effect(() => {
|
|
44
|
+
if (!($sourceOverlayOpen || $activeSource)) return
|
|
45
|
+
const el = overlayEl
|
|
46
|
+
if (!el) return
|
|
47
|
+
if (!triggerEl && document.activeElement instanceof HTMLElement)
|
|
48
|
+
triggerEl = document.activeElement
|
|
49
|
+
el.querySelector<HTMLElement>('button:not([disabled])')?.focus()
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
$effect(() => {
|
|
53
|
+
if ($sourceOverlayOpen || $sourceOverlayClosing || $activeSource) return
|
|
54
|
+
const trigger = triggerEl
|
|
55
|
+
if (!trigger) return
|
|
56
|
+
triggerEl = null
|
|
57
|
+
if (trigger.isConnected) trigger.focus()
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
// Polite screen-reader announcement for upload-lifecycle transitions. It is a
|
|
61
|
+
// pure projection of uploadStatus (no new event plumbing).
|
|
62
|
+
const uploadAnnouncement = $derived(
|
|
63
|
+
$uploadStatus === UploadStatus.UPLOADING
|
|
64
|
+
? tr.announceUploadStarted
|
|
65
|
+
: $uploadStatus === UploadStatus.SUCCESSFUL
|
|
66
|
+
? tr.announceUploadComplete
|
|
67
|
+
: $uploadStatus === UploadStatus.FAILED
|
|
68
|
+
? tr.announceUploadFailed
|
|
69
|
+
: '',
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
// Sheet swipe-to-dismiss state (plain vars — dragging must not re-render).
|
|
73
|
+
let swipeStartY: number | null = null
|
|
74
|
+
let swiped = false
|
|
75
|
+
|
|
76
|
+
function onGripClick() {
|
|
77
|
+
if (!swiped) closeSourceOverlay()
|
|
78
|
+
swiped = false
|
|
79
|
+
}
|
|
80
|
+
function onGripPointerDown(e: PointerEvent) {
|
|
81
|
+
swipeStartY = e.clientY
|
|
82
|
+
;(e.currentTarget as HTMLElement).setPointerCapture(e.pointerId)
|
|
83
|
+
}
|
|
84
|
+
function onGripPointerMove(e: PointerEvent) {
|
|
85
|
+
const startY = swipeStartY
|
|
86
|
+
const sheet = overlayEl
|
|
87
|
+
if (startY === null || !sheet) return
|
|
88
|
+
const dy = Math.max(0, e.clientY - startY)
|
|
89
|
+
sheet.style.transition = 'none'
|
|
90
|
+
sheet.style.transform = `translateY(${dy}px)`
|
|
91
|
+
}
|
|
92
|
+
function onGripPointerUp(e: PointerEvent) {
|
|
93
|
+
const startY = swipeStartY
|
|
94
|
+
const sheet = overlayEl
|
|
95
|
+
swipeStartY = null
|
|
96
|
+
if (startY === null || !sheet) return
|
|
97
|
+
const dy = Math.max(0, e.clientY - startY)
|
|
98
|
+
sheet.style.transition = ''
|
|
99
|
+
sheet.style.transform = ''
|
|
100
|
+
if (dy > 72) {
|
|
101
|
+
swiped = true
|
|
102
|
+
closeSourceOverlay()
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function onOverlayKeydown(e: KeyboardEvent) {
|
|
107
|
+
if (e.key === 'Escape' && !$sourceOverlayClosing) closeSourceOverlay()
|
|
108
|
+
}
|
|
109
|
+
</script>
|
|
110
|
+
|
|
111
|
+
<div
|
|
112
|
+
data-testid="upup-dropzone"
|
|
113
|
+
data-upup-slot="uploader-panel"
|
|
114
|
+
data-motion={$motionMode}
|
|
115
|
+
role="region"
|
|
116
|
+
aria-label={tr.dropzoneLabel}
|
|
117
|
+
aria-dropeffect={$isDragging ? 'copy' : 'none'}
|
|
118
|
+
ondragover={handleDragOver}
|
|
119
|
+
ondragleave={handleDragLeave}
|
|
120
|
+
ondrop={handleDrop}
|
|
121
|
+
onpaste={handlePaste}
|
|
122
|
+
class={cn('upup-relative upup-flex upup-flex-1 upup-flex-col upup-overflow-hidden upup-rounded-lg', {
|
|
123
|
+
'upup-border upup-border-[#0ea5e9]': $absoluteHasBorder && !showDropzoneFrame,
|
|
124
|
+
'upup-border-[#38bdf8] dark:upup-border-[#38bdf8]': $absoluteHasBorder && !showDropzoneFrame && $dark,
|
|
125
|
+
'upup-border-dashed': !$isDragging && !showDropzoneFrame,
|
|
126
|
+
'upup-bg-[#e0f2fe] upup-backdrop-blur-sm': $absoluteIsDragging && !$dark,
|
|
127
|
+
'upup-bg-[#0b2a3a] upup-backdrop-blur-sm dark:upup-bg-[#0b2a3a]': $absoluteIsDragging && $dark,
|
|
128
|
+
})}
|
|
129
|
+
>
|
|
130
|
+
<div role="status" aria-live="polite" class="upup-sr-only">
|
|
131
|
+
{uploadAnnouncement}
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<!-- Drop-rejection toast: a file was dropped onto a read-only drive
|
|
135
|
+
picker (core DragDropController → transient-UI store). Auto-clears
|
|
136
|
+
after the store's 3s window drives an unmount — no JS timer here. -->
|
|
137
|
+
{#if $dropRejected}
|
|
138
|
+
<div
|
|
139
|
+
data-testid="upup-drop-rejected-toast"
|
|
140
|
+
data-upup-slot="drop-rejected-toast"
|
|
141
|
+
role="status"
|
|
142
|
+
aria-live="polite"
|
|
143
|
+
class={cn(
|
|
144
|
+
'upup-animate-informer-in upup-absolute upup-inset-x-4 upup-top-4 upup-z-30 upup-flex upup-items-center upup-gap-2.5 upup-rounded-xl upup-px-3.5 upup-py-2.5 upup-text-[13px] upup-leading-snug upup-ring-1',
|
|
145
|
+
$dark
|
|
146
|
+
? 'upup-bg-rose-500/[0.14] upup-text-rose-200 upup-ring-rose-400/30'
|
|
147
|
+
: 'upup-bg-rose-50 upup-text-rose-700 upup-ring-rose-300/60',
|
|
148
|
+
)}
|
|
149
|
+
>
|
|
150
|
+
<svg
|
|
151
|
+
viewBox="0 0 24 24"
|
|
152
|
+
width="16"
|
|
153
|
+
height="16"
|
|
154
|
+
fill="none"
|
|
155
|
+
stroke="currentColor"
|
|
156
|
+
stroke-width="1.9"
|
|
157
|
+
stroke-linecap="round"
|
|
158
|
+
stroke-linejoin="round"
|
|
159
|
+
aria-hidden="true"
|
|
160
|
+
class="upup-flex-none"
|
|
161
|
+
>
|
|
162
|
+
<circle cx="12" cy="12" r="9" />
|
|
163
|
+
<path d="M12 8v4" />
|
|
164
|
+
<path d="M12 16h.01" />
|
|
165
|
+
</svg>
|
|
166
|
+
<span>
|
|
167
|
+
{formatUiMessage(tr.dropRejected, { provider: $dropRejected })}
|
|
168
|
+
</span>
|
|
169
|
+
</div>
|
|
170
|
+
{/if}
|
|
171
|
+
|
|
172
|
+
{#if !$isOnline}
|
|
173
|
+
<div class={cn('upup-absolute upup-inset-x-0 upup-top-0 upup-z-30 upup-px-3 upup-py-1.5 upup-text-center upup-text-xs upup-font-medium upup-text-white upup-bg-yellow-500', { 'upup-bg-yellow-600': $dark })}>
|
|
174
|
+
No internet connection — uploads will resume when you reconnect.
|
|
175
|
+
</div>
|
|
176
|
+
{/if}
|
|
177
|
+
|
|
178
|
+
{#if showDropzoneFrame}
|
|
179
|
+
<!-- An <svg> is a replaced element: absolute insets position it but do NOT
|
|
180
|
+
stretch it (it keeps the 300x150 default), so the frame needs its size
|
|
181
|
+
stated explicitly alongside its inset. Hugs the panel edge (4px) so the
|
|
182
|
+
in-frame branding row has breathing room above the bottom dashes. -->
|
|
183
|
+
<svg
|
|
184
|
+
data-upup-slot="dropzone-frame"
|
|
185
|
+
aria-hidden="true"
|
|
186
|
+
class="upup-pointer-events-none upup-absolute upup-inset-1 upup-h-[calc(100%-0.5rem)] upup-w-[calc(100%-0.5rem)]"
|
|
187
|
+
>
|
|
188
|
+
<rect
|
|
189
|
+
x="1"
|
|
190
|
+
y="1"
|
|
191
|
+
rx="14"
|
|
192
|
+
ry="14"
|
|
193
|
+
fill="none"
|
|
194
|
+
stroke-width="1.5"
|
|
195
|
+
stroke-dasharray="5 7"
|
|
196
|
+
stroke={$dark
|
|
197
|
+
? ($absoluteIsDragging ? 'rgba(56,189,248,0.65)' : 'rgba(56,189,248,0.35)')
|
|
198
|
+
: ($absoluteIsDragging ? 'rgba(2,132,199,0.7)' : 'rgba(2,132,199,0.4)')}
|
|
199
|
+
class={cn($absoluteIsDragging && 'upup-animate-fx-dash-march')}
|
|
200
|
+
style="width: calc(100% - 2px); height: calc(100% - 2px)"
|
|
201
|
+
/>
|
|
202
|
+
</svg>
|
|
203
|
+
{/if}
|
|
204
|
+
|
|
205
|
+
<!-- Drag-over prompt: an explicit "drop it here" affordance (icon + text) so
|
|
206
|
+
the drag state never reads as a mere glow. Pointer events pass through —
|
|
207
|
+
the panel underneath owns the drop. -->
|
|
208
|
+
{#if $absoluteIsDragging}
|
|
209
|
+
<div
|
|
210
|
+
data-testid="upup-drag-overlay"
|
|
211
|
+
data-upup-slot="drag-overlay"
|
|
212
|
+
aria-hidden="true"
|
|
213
|
+
class={cn(
|
|
214
|
+
'upup-animate-fx-view upup-pointer-events-none upup-absolute upup-inset-0 upup-z-10 upup-flex upup-flex-col upup-items-center upup-justify-center upup-gap-3',
|
|
215
|
+
$dark ? 'upup-bg-[#0b1220]/70' : 'upup-bg-white/70',
|
|
216
|
+
)}
|
|
217
|
+
>
|
|
218
|
+
<span
|
|
219
|
+
class={cn(
|
|
220
|
+
'upup-flex upup-h-16 upup-w-16 upup-items-center upup-justify-center upup-rounded-2xl',
|
|
221
|
+
$dark
|
|
222
|
+
? 'upup-bg-[#38bdf8]/15 upup-text-[#38bdf8]'
|
|
223
|
+
: 'upup-bg-[#0284c7]/10 upup-text-[#0284c7]',
|
|
224
|
+
)}
|
|
225
|
+
>
|
|
226
|
+
<svg
|
|
227
|
+
viewBox="0 0 24 24"
|
|
228
|
+
width="30"
|
|
229
|
+
height="30"
|
|
230
|
+
fill="none"
|
|
231
|
+
stroke="currentColor"
|
|
232
|
+
stroke-width="1.8"
|
|
233
|
+
stroke-linecap="round"
|
|
234
|
+
stroke-linejoin="round"
|
|
235
|
+
aria-hidden="true"
|
|
236
|
+
>
|
|
237
|
+
<path d="M12 4v11" />
|
|
238
|
+
<path d="m7 10 5 5 5-5" />
|
|
239
|
+
<path d="M4 17v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-1" />
|
|
240
|
+
</svg>
|
|
241
|
+
</span>
|
|
242
|
+
<span
|
|
243
|
+
class={cn(
|
|
244
|
+
'upup-text-[15px] upup-font-semibold',
|
|
245
|
+
$dark ? 'upup-text-[#e2e8f0]' : 'upup-text-[#0f172a]',
|
|
246
|
+
)}
|
|
247
|
+
>
|
|
248
|
+
{tr.dropToUpload}
|
|
249
|
+
</span>
|
|
250
|
+
</div>
|
|
251
|
+
{/if}
|
|
252
|
+
|
|
253
|
+
<!-- Content area (source surface / file list) flexes above the in-panel
|
|
254
|
+
branding row so the dashed frame — inset-1 of this panel — wraps
|
|
255
|
+
EVERYTHING including the brand, per the mock. -->
|
|
256
|
+
<div class="upup-relative upup-flex upup-min-h-0 upup-flex-1 upup-flex-col">
|
|
257
|
+
<!-- Idle primary: the source surface fills the panel when empty. -->
|
|
258
|
+
{#if !hasFiles}
|
|
259
|
+
{#if $activeSource}
|
|
260
|
+
<SourceView />
|
|
261
|
+
{:else}
|
|
262
|
+
<SourceSelector />
|
|
263
|
+
{/if}
|
|
264
|
+
{/if}
|
|
265
|
+
<FileList />
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
<!-- Add-more DRAWER (states-tour-v2 sheet): the source surface slides up as a
|
|
269
|
+
translucent bottom sheet over the dimmed, still-mounted file list — the
|
|
270
|
+
files stay visible behind it so nothing feels lost. Swipe the grip down
|
|
271
|
+
(or Escape / the grip click) to close. -->
|
|
272
|
+
{#if showSourceOverlay}
|
|
273
|
+
<div
|
|
274
|
+
bind:this={overlayEl}
|
|
275
|
+
data-upup-slot="source-overlay"
|
|
276
|
+
role={$sourceOverlayClosing ? undefined : 'dialog'}
|
|
277
|
+
aria-modal={$sourceOverlayClosing ? undefined : 'true'}
|
|
278
|
+
aria-label={tr.addingMoreFiles}
|
|
279
|
+
class={cn(
|
|
280
|
+
'upup-absolute upup-inset-x-3 upup-bottom-3 upup-top-11 upup-z-20 upup-flex upup-flex-col upup-overflow-hidden upup-rounded-2xl upup-ring-1 upup-ring-inset upup-backdrop-blur-md',
|
|
281
|
+
$sourceOverlayClosing
|
|
282
|
+
? 'upup-fx-overlay-close-slide upup-pointer-events-none'
|
|
283
|
+
: 'upup-fx-overlay-slide',
|
|
284
|
+
$dark
|
|
285
|
+
? 'upup-bg-[#0b1220]/[0.85] upup-ring-white/[0.08] upup-shadow-[0_-18px_40px_-18px_rgba(0,0,0,0.65)]'
|
|
286
|
+
: 'upup-bg-white/[0.85] upup-ring-black/[0.08] upup-shadow-[0_-18px_40px_-18px_rgba(15,23,42,0.25)]',
|
|
287
|
+
)}
|
|
288
|
+
onkeydown={onOverlayKeydown}
|
|
289
|
+
>
|
|
290
|
+
<!-- Sheet grip: click closes; drag down past the threshold closes
|
|
291
|
+
(pointer capture — no transitionend reliance). -->
|
|
292
|
+
<button
|
|
293
|
+
type="button"
|
|
294
|
+
data-testid="upup-sheet-grip"
|
|
295
|
+
data-upup-slot="sheet-grip"
|
|
296
|
+
aria-label={tr.overlayBack}
|
|
297
|
+
class="upup-absolute upup-left-1/2 upup-top-1.5 upup-z-10 upup-flex upup-h-6 upup-w-20 upup--translate-x-1/2 upup-cursor-grab upup-touch-none upup-items-center upup-justify-center upup-rounded-full"
|
|
298
|
+
onclick={onGripClick}
|
|
299
|
+
onpointerdown={onGripPointerDown}
|
|
300
|
+
onpointermove={onGripPointerMove}
|
|
301
|
+
onpointerup={onGripPointerUp}
|
|
302
|
+
>
|
|
303
|
+
<span
|
|
304
|
+
aria-hidden="true"
|
|
305
|
+
class={cn(
|
|
306
|
+
'upup-h-1 upup-w-10 upup-rounded-full',
|
|
307
|
+
$dark ? 'upup-bg-white/20' : 'upup-bg-black/20',
|
|
308
|
+
)}
|
|
309
|
+
></span>
|
|
310
|
+
</button>
|
|
311
|
+
{#if $activeSource}
|
|
312
|
+
<SourceView />
|
|
313
|
+
{:else}
|
|
314
|
+
<SourceSelector />
|
|
315
|
+
{/if}
|
|
316
|
+
</div>
|
|
317
|
+
{/if}
|
|
318
|
+
|
|
319
|
+
<!-- Branding row INSIDE the panel (and the dashed frame). The add-more sheet
|
|
320
|
+
slides over it, per the states-tour mock. Hidden while a source view is
|
|
321
|
+
active — the drive browser / camera / url views own the full panel — and
|
|
322
|
+
once files are selected: the file-list screen needs the vertical space
|
|
323
|
+
(round-7 item 1). -->
|
|
324
|
+
{#if !mini && showBranding && !$activeSource && !hasFiles}
|
|
325
|
+
<div
|
|
326
|
+
data-testid="upup-branding"
|
|
327
|
+
class="upup-flex upup-w-full upup-flex-none upup-flex-col upup-items-center upup-justify-between upup-gap-1 upup-px-6 upup-pb-5 upup-pt-1.5 md:upup-flex-row"
|
|
328
|
+
>
|
|
329
|
+
<a
|
|
330
|
+
href="https://useupup.com/"
|
|
331
|
+
target="_blank"
|
|
332
|
+
rel="noopener noreferrer"
|
|
333
|
+
class="upup-flex upup-items-center upup-gap-[5px]"
|
|
334
|
+
>
|
|
335
|
+
{#if $dark}
|
|
336
|
+
<img src={logoDark} width={61} height={13} alt="logo-dark" />
|
|
337
|
+
{:else}
|
|
338
|
+
<img src={logoLight} width={61} height={13} alt="logo-light" />
|
|
339
|
+
{/if}
|
|
340
|
+
</a>
|
|
341
|
+
<a
|
|
342
|
+
href="https://devino.ca/"
|
|
343
|
+
target="_blank"
|
|
344
|
+
rel="noopener noreferrer"
|
|
345
|
+
class="upup-flex upup-flex-row upup-items-center upup-justify-end upup-gap-1"
|
|
346
|
+
>
|
|
347
|
+
<span
|
|
348
|
+
class={cn(
|
|
349
|
+
'upup-mr-0.5 upup-text-xs upup-leading-5 upup-text-[#6D6D6D] md:upup-text-sm',
|
|
350
|
+
{ 'upup-text-gray-300 dark:upup-text-gray-300': $dark },
|
|
351
|
+
)}
|
|
352
|
+
>
|
|
353
|
+
{tr.builtBy}
|
|
354
|
+
</span>
|
|
355
|
+
{#if $dark}
|
|
356
|
+
<img src={devinoDark} width={61} height={13} alt="logo-dark" />
|
|
357
|
+
{:else}
|
|
358
|
+
<img src={devinoLight} width={61} height={13} alt="logo-light" />
|
|
359
|
+
{/if}
|
|
360
|
+
</a>
|
|
361
|
+
</div>
|
|
362
|
+
{/if}
|
|
363
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploaderPanel.svelte.d.ts","sourceRoot":"","sources":["../../src/components/UploaderPanel.svelte.ts"],"names":[],"mappings":"AAsQA,QAAA,MAAM,aAAa,2DAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {
|
|
3
|
+
useUploaderFiles,
|
|
4
|
+
useUploaderI18n,
|
|
5
|
+
useUploaderOptions,
|
|
6
|
+
useUploaderRuntime,
|
|
7
|
+
useUploaderSource,
|
|
8
|
+
useUploaderTheme,
|
|
9
|
+
} from '../context/uploader-context'
|
|
10
|
+
import useFetchFileByUrl from '../composables/useFetchFileByUrl'
|
|
11
|
+
import { cn } from '@useupup/core/internal'
|
|
12
|
+
import SourceViewContainer from './shared/SourceViewContainer.svelte'
|
|
13
|
+
|
|
14
|
+
const { core } = useUploaderRuntime()
|
|
15
|
+
const { setFiles } = useUploaderFiles()
|
|
16
|
+
const { setActiveSource } = useUploaderSource()
|
|
17
|
+
const { translations: tr } = useUploaderI18n()
|
|
18
|
+
const { icons: { LoaderIcon } } = useUploaderOptions()
|
|
19
|
+
const { isDark: dark, slotOverrides: slotClasses } = useUploaderTheme()
|
|
20
|
+
|
|
21
|
+
let url = $state('')
|
|
22
|
+
const { loading, fetchImage } = useFetchFileByUrl()
|
|
23
|
+
|
|
24
|
+
async function handleFormSubmit(e: SubmitEvent) {
|
|
25
|
+
e.preventDefault()
|
|
26
|
+
core?.emit('url-submit', { url })
|
|
27
|
+
const file = await fetchImage(url)
|
|
28
|
+
if (file) {
|
|
29
|
+
Object.assign(file, { url })
|
|
30
|
+
setFiles([file])
|
|
31
|
+
url = ''
|
|
32
|
+
setActiveSource(undefined)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<SourceViewContainer data-testid="upup-url-uploader" data-upup-slot="url-uploader">
|
|
38
|
+
<form onsubmit={handleFormSubmit} class="upup-px-3 upup-py-2">
|
|
39
|
+
<input
|
|
40
|
+
type="url"
|
|
41
|
+
name="upup-url"
|
|
42
|
+
aria-label={tr.enterFileUrl}
|
|
43
|
+
placeholder={tr.enterFileUrl}
|
|
44
|
+
class={cn(
|
|
45
|
+
'upup-w-full upup-rounded-md upup-border-2 upup-border-[#e0e0e0] upup-bg-transparent upup-px-3 upup-py-2 upup-outline-none',
|
|
46
|
+
{
|
|
47
|
+
'upup-border-[#6D6D6D] upup-text-[#6D6D6D] dark:upup-border-[#6D6D6D] dark:upup-text-[#6D6D6D]': $dark,
|
|
48
|
+
},
|
|
49
|
+
$slotClasses.urlInput,
|
|
50
|
+
)}
|
|
51
|
+
bind:value={url}
|
|
52
|
+
/>
|
|
53
|
+
<button
|
|
54
|
+
class={cn(
|
|
55
|
+
'upup-disabled:bg-[#e0e0e0] upup-mt-2 upup-w-full upup-rounded-md upup-bg-[#0ea5e9] upup-p-2 upup-text-white upup-transition-all upup-duration-300',
|
|
56
|
+
{
|
|
57
|
+
'upup-disabled:bg-[#6D6D6D] dark:upup-disabled:bg-[#6D6D6D] upup-bg-[#38bdf8] dark:upup-bg-[#38bdf8]': $dark,
|
|
58
|
+
},
|
|
59
|
+
$slotClasses.urlFetchButton,
|
|
60
|
+
)}
|
|
61
|
+
type="submit"
|
|
62
|
+
disabled={!url}
|
|
63
|
+
>
|
|
64
|
+
{#if $loading}
|
|
65
|
+
<LoaderIcon />
|
|
66
|
+
{:else}
|
|
67
|
+
{tr.fetch}
|
|
68
|
+
{/if}
|
|
69
|
+
</button>
|
|
70
|
+
</form>
|
|
71
|
+
</SourceViewContainer>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlUploader.svelte.d.ts","sourceRoot":"","sources":["../../src/components/UrlUploader.svelte.ts"],"names":[],"mappings":"AAuEA,QAAA,MAAM,WAAW,2DAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/AudioIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,SAAS,sDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoxIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/BoxIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,OAAO,sDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CameraIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/CameraIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,UAAU,sDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropboxIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/DropboxIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
class?: string;
|
|
3
|
+
};
|
|
4
|
+
declare const GoogleDriveIcon: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
5
|
+
type GoogleDriveIcon = ReturnType<typeof GoogleDriveIcon>;
|
|
6
|
+
export default GoogleDriveIcon;
|
|
7
|
+
//# sourceMappingURL=GoogleDriveIcon.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoogleDriveIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/GoogleDriveIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/LinkIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
class?: string;
|
|
3
|
+
};
|
|
4
|
+
declare const MyDeviceIcon: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
5
|
+
type MyDeviceIcon = ReturnType<typeof MyDeviceIcon>;
|
|
6
|
+
export default MyDeviceIcon;
|
|
7
|
+
//# sourceMappingURL=MyDeviceIcon.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyDeviceIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/MyDeviceIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,YAAY,sDAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
class?: string;
|
|
3
|
+
};
|
|
4
|
+
declare const OneDriveIcon: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
5
|
+
type OneDriveIcon = ReturnType<typeof OneDriveIcon>;
|
|
6
|
+
export default OneDriveIcon;
|
|
7
|
+
//# sourceMappingURL=OneDriveIcon.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OneDriveIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/OneDriveIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,YAAY,sDAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
class?: string;
|
|
3
|
+
};
|
|
4
|
+
declare const ScreenCaptureIcon: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
5
|
+
type ScreenCaptureIcon = ReturnType<typeof ScreenCaptureIcon>;
|
|
6
|
+
export default ScreenCaptureIcon;
|
|
7
|
+
//# sourceMappingURL=ScreenCaptureIcon.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenCaptureIcon.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/icons/ScreenCaptureIcon.svelte.ts"],"names":[],"mappings":"AAKC,KAAK,gBAAgB,GAAI;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAS7C,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|