@useupup/preact 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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -0
  3. package/dist/AudioUploader-2WITC5YR-4WGBUCEB.js +298 -0
  4. package/dist/AudioUploader-2WITC5YR-4WGBUCEB.js.map +1 -0
  5. package/dist/AudioUploader-2WITC5YR-GCKVRJAT.cjs +298 -0
  6. package/dist/AudioUploader-2WITC5YR-GCKVRJAT.cjs.map +1 -0
  7. package/dist/BoxUploader-VE5LRJ7M-CWGNYYJV.js +170 -0
  8. package/dist/BoxUploader-VE5LRJ7M-CWGNYYJV.js.map +1 -0
  9. package/dist/BoxUploader-VE5LRJ7M-IE7LYW5P.cjs +170 -0
  10. package/dist/BoxUploader-VE5LRJ7M-IE7LYW5P.cjs.map +1 -0
  11. package/dist/CameraUploader-WF5A6UIS-3KBW647M.cjs +628 -0
  12. package/dist/CameraUploader-WF5A6UIS-3KBW647M.cjs.map +1 -0
  13. package/dist/CameraUploader-WF5A6UIS-DONVXSEZ.js +628 -0
  14. package/dist/CameraUploader-WF5A6UIS-DONVXSEZ.js.map +1 -0
  15. package/dist/DropboxUploader-VMUYG3OP-7FKTLIIL.cjs +172 -0
  16. package/dist/DropboxUploader-VMUYG3OP-7FKTLIIL.cjs.map +1 -0
  17. package/dist/DropboxUploader-VMUYG3OP-DBUPHIG7.js +172 -0
  18. package/dist/DropboxUploader-VMUYG3OP-DBUPHIG7.js.map +1 -0
  19. package/dist/GoogleDriveUploader-YA56X3QR-FMS6MTYU.js +175 -0
  20. package/dist/GoogleDriveUploader-YA56X3QR-FMS6MTYU.js.map +1 -0
  21. package/dist/GoogleDriveUploader-YA56X3QR-OR3CQLX2.cjs +175 -0
  22. package/dist/GoogleDriveUploader-YA56X3QR-OR3CQLX2.cjs.map +1 -0
  23. package/dist/ImageEditorInline-N2NSAODR-QWXPP3ON.js +184 -0
  24. package/dist/ImageEditorInline-N2NSAODR-QWXPP3ON.js.map +1 -0
  25. package/dist/ImageEditorInline-N2NSAODR-ZVAM6EOA.cjs +184 -0
  26. package/dist/ImageEditorInline-N2NSAODR-ZVAM6EOA.cjs.map +1 -0
  27. package/dist/ImageEditorModal-CWKMDVPY-PRD43JPH.cjs +236 -0
  28. package/dist/ImageEditorModal-CWKMDVPY-PRD43JPH.cjs.map +1 -0
  29. package/dist/ImageEditorModal-CWKMDVPY-ZRPTYHYN.js +236 -0
  30. package/dist/ImageEditorModal-CWKMDVPY-ZRPTYHYN.js.map +1 -0
  31. package/dist/OneDriveUploader-I25Y6AJP-FVXK6RGT.js +173 -0
  32. package/dist/OneDriveUploader-I25Y6AJP-FVXK6RGT.js.map +1 -0
  33. package/dist/OneDriveUploader-I25Y6AJP-GBOBEJQR.cjs +173 -0
  34. package/dist/OneDriveUploader-I25Y6AJP-GBOBEJQR.cjs.map +1 -0
  35. package/dist/ScreenCaptureUploader-WKDO4S75-3TT6GNEN.js +286 -0
  36. package/dist/ScreenCaptureUploader-WKDO4S75-3TT6GNEN.js.map +1 -0
  37. package/dist/ScreenCaptureUploader-WKDO4S75-G7ADH264.cjs +286 -0
  38. package/dist/ScreenCaptureUploader-WKDO4S75-G7ADH264.cjs.map +1 -0
  39. package/dist/chunk-2XFVSPFN.cjs +293 -0
  40. package/dist/chunk-2XFVSPFN.cjs.map +1 -0
  41. package/dist/chunk-7JLN2HMZ.cjs +4296 -0
  42. package/dist/chunk-7JLN2HMZ.cjs.map +1 -0
  43. package/dist/chunk-BVMKSTAE.js +4296 -0
  44. package/dist/chunk-BVMKSTAE.js.map +1 -0
  45. package/dist/chunk-C7QBCXAH.js +39 -0
  46. package/dist/chunk-C7QBCXAH.js.map +1 -0
  47. package/dist/chunk-CR6CXFRP.js +195 -0
  48. package/dist/chunk-CR6CXFRP.js.map +1 -0
  49. package/dist/chunk-ETIJATY7.cjs +39 -0
  50. package/dist/chunk-ETIJATY7.cjs.map +1 -0
  51. package/dist/chunk-FH3LYESR.js +411 -0
  52. package/dist/chunk-FH3LYESR.js.map +1 -0
  53. package/dist/chunk-GKMTOOTQ.cjs +411 -0
  54. package/dist/chunk-GKMTOOTQ.cjs.map +1 -0
  55. package/dist/chunk-KHH3WHWU.js +74 -0
  56. package/dist/chunk-KHH3WHWU.js.map +1 -0
  57. package/dist/chunk-V2O5HRJV.cjs +74 -0
  58. package/dist/chunk-V2O5HRJV.cjs.map +1 -0
  59. package/dist/chunk-WCI3AGJV.js +831 -0
  60. package/dist/chunk-WCI3AGJV.js.map +1 -0
  61. package/dist/chunk-YWJHE7U4.cjs +195 -0
  62. package/dist/chunk-YWJHE7U4.cjs.map +1 -0
  63. package/dist/chunk-ZGWETRKI.js +293 -0
  64. package/dist/chunk-ZGWETRKI.js.map +1 -0
  65. package/dist/chunk-ZKZJ5PPP.cjs +831 -0
  66. package/dist/chunk-ZKZJ5PPP.cjs.map +1 -0
  67. package/dist/filerobot-bridge-52YH7W2M.cjs +92 -0
  68. package/dist/filerobot-bridge-52YH7W2M.cjs.map +1 -0
  69. package/dist/filerobot-bridge-ED4XMHX4.js +92 -0
  70. package/dist/filerobot-bridge-ED4XMHX4.js.map +1 -0
  71. package/dist/filerobot-island.css +97 -0
  72. package/dist/filerobot-island.css.map +1 -0
  73. package/dist/filerobot-island.js +77951 -0
  74. package/dist/filerobot-island.js.map +1 -0
  75. package/dist/index.cjs +5600 -0
  76. package/dist/index.cjs.map +1 -0
  77. package/dist/index.d.cts +1 -0
  78. package/dist/index.d.ts +1 -0
  79. package/dist/index.js +5600 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/styles.d.ts +4 -0
  82. package/dist/tailwind-prefixed.css +2529 -0
  83. package/package.json +130 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../react/src/components/shared/DriveAuthFallback.tsx","../../react/src/components/shared/DriveBrowser.tsx","../../react/src/components/shared/DriveBrowserHeader.tsx","../../react/src/components/shared/DriveBrowserItem.tsx","../../react/src/components/shared/DriveBrowserIcon.tsx","../../react/src/components/ServerModeDriveUploader.tsx","../../react/src/hooks/useServerModeDrive.ts"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\r\nimport { type DriveBrowserError, formatUiMessage as t } from '@useupup/core'\r\nimport { cn } from '@useupup/core/internal'\r\nimport {\r\n useUploaderI18n,\r\n useUploaderTheme,\r\n} from '../../context/UploaderContext'\r\nimport SourceViewContainer from './SourceViewContainer'\r\n\r\ntype Props = {\r\n providerName: string\r\n onRetry: () => void\r\n /** initGis degradation (F-124) — missing config / GIS failed to attach. */\r\n error?: DriveBrowserError | undefined\r\n 'data-upup-slot'?: string | undefined\r\n}\r\n\r\nexport default function DriveAuthFallback({\r\n providerName,\r\n onRetry,\r\n error,\r\n 'data-upup-slot': dataUpupSlot = 'drive-auth-fallback',\r\n}: Readonly<Props>): React.ReactElement | null {\r\n const { isDark: dark, slotOverrides: slotClasses } = useUploaderTheme()\r\n const { translations: tr } = useUploaderI18n()\r\n\r\n // One-shot auto sign-in: the provider tile click carries a transient user\r\n // activation (~5s in modern browsers), so kicking the OAuth popup off on\r\n // mount goes straight to the provider instead of an interstitial. If the\r\n // popup is blocked (activation consumed/expired), this view stays as the\r\n // manual fallback. Never auto-retries after an error.\r\n const attemptedRef = useRef(false)\r\n useEffect(() => {\r\n if (attemptedRef.current || error) return\r\n attemptedRef.current = true\r\n onRetry()\r\n }, [error, onRetry])\r\n\r\n return (\r\n <SourceViewContainer data-upup-slot={dataUpupSlot}>\r\n <div className=\"upup-flex upup-h-full upup-w-full upup-flex-col upup-items-center upup-justify-center upup-gap-4 upup-p-6 upup-text-center\">\r\n {!!error && (\r\n <p\r\n data-testid=\"upup-drive-error\"\r\n data-upup-slot=\"drive-error\"\r\n role=\"alert\"\r\n className=\"upup-p-4 upup-text-sm upup-text-red-600 dark:upup-text-red-400\"\r\n >\r\n {t(tr.driveLoadError, { message: error.message })}\r\n </p>\r\n )}\r\n <p\r\n className={cn(\r\n 'upup-text-sm upup-text-[#333]',\r\n {\r\n 'upup-text-[#FAFAFA] dark:upup-text-[#FAFAFA]':\r\n dark,\r\n },\r\n slotClasses.sourceView,\r\n )}\r\n >\r\n {t(tr.authenticatePrompt, { provider: providerName })}\r\n </p>\r\n <button\r\n type=\"button\"\r\n className={cn(\r\n 'upup-rounded-md upup-bg-[#0ea5e9] upup-px-4 upup-py-2 upup-text-sm upup-font-medium upup-text-white upup-transition-all upup-duration-300 hover:upup-bg-[#0284c7]',\r\n {\r\n 'upup-bg-[#38bdf8] hover:upup-bg-[#0ea5e9] dark:upup-bg-[#38bdf8] dark:hover:upup-bg-[#0ea5e9]':\r\n dark,\r\n },\r\n )}\r\n onClick={onRetry}\r\n >\r\n {t(tr.signInWith, { provider: providerName })}\r\n </button>\r\n </div>\r\n </SourceViewContainer>\r\n )\r\n}\r\n","import React, { Dispatch, SetStateAction, useMemo, useState } from 'react'\r\nimport {\r\n type DriveBrowserError,\r\n type DriveFile,\r\n type DriveFolder,\r\n type DriveUser,\r\n formatUiMessage as t,\r\n pluralUiMessage as plural,\r\n} from '@useupup/core'\r\nimport { cn } from '@useupup/core/internal'\r\nimport {\r\n useUploaderI18n,\r\n useUploaderOptions,\r\n useUploaderTheme,\r\n} from '../../context/UploaderContext'\r\nimport { searchDriveFiles } from '../../lib/file'\r\nimport SourceViewContainer from './SourceViewContainer'\r\nimport DriveBrowserHeader from './DriveBrowserHeader'\r\nimport DriveBrowserItem from './DriveBrowserItem'\r\n\r\ntype Props = {\r\n isClickLoading?: boolean | undefined\r\n driveFiles?: DriveFolder | undefined\r\n path: DriveFolder[]\r\n setPath: Dispatch<SetStateAction<DriveFolder[]>>\r\n user?: DriveUser | undefined\r\n handleSignOut: () => Promise<void>\r\n handleClick: (file: DriveFile) => void | Promise<void>\r\n selectedFiles: DriveFile[]\r\n showLoader: boolean\r\n handleSubmit: () => Promise<void>\r\n handleCancelDownload: () => void\r\n onSelectCurrentFolder?: (() => Promise<void> | void) | undefined\r\n /** The one drive browse-failure surface (F-124). Set = show the banner, not the loader. */\r\n error?: DriveBrowserError | undefined\r\n /** Drives the \"Load more\" button (F-125). */\r\n hasMore?: boolean | undefined\r\n isLoadingMore?: boolean | undefined\r\n loadMore?: (() => void | Promise<void>) | undefined\r\n 'data-upup-slot'?: string | undefined\r\n signIn?: (() => void) | undefined\r\n}\r\n\r\nfunction filterItems(item: DriveFile, accept: string) {\r\n if (item.isFolder) return true\r\n if (!accept || accept === '*') return true\r\n return accept.split(',').some(pattern => {\r\n const p = pattern.trim()\r\n if (p.startsWith('.')) return item.name.endsWith(p)\r\n if (p.endsWith('/*'))\r\n return item.mimeType.startsWith(p.replace('/*', '/'))\r\n return item.mimeType === p\r\n })\r\n}\r\n\r\nexport default function DriveBrowser({\r\n isClickLoading = false,\r\n driveFiles,\r\n path,\r\n setPath,\r\n handleClick,\r\n selectedFiles,\r\n showLoader,\r\n handleSubmit,\r\n handleCancelDownload,\r\n onSelectCurrentFolder,\r\n error,\r\n hasMore = false,\r\n isLoadingMore = false,\r\n loadMore,\r\n 'data-upup-slot': dataUpupSlot = 'drive-browser',\r\n ...rest\r\n}: Readonly<Props>): React.ReactElement | null {\r\n const {\r\n allowedFileTypes,\r\n icons: { LoaderIcon },\r\n } = useUploaderOptions()\r\n const { isDark: dark, slotOverrides: slotClasses } = useUploaderTheme()\r\n const { translations: tr } = useUploaderI18n()\r\n const [searchTerm, setSearchTerm] = useState('')\r\n const items = path[path.length - 1]?.children?.filter(item =>\r\n filterItems(item, allowedFileTypes),\r\n )\r\n const displayedItems = useMemo(\r\n () => searchDriveFiles(items ?? [], searchTerm) || [],\r\n [searchTerm, items],\r\n )\r\n // error short-circuits the perpetual loader — the exact F-123/F-124 symptom\r\n // (a failed load or download previously left the spinner running forever).\r\n const isLoading = !error && (isClickLoading || !driveFiles)\r\n\r\n return (\r\n <SourceViewContainer\r\n isLoading={isLoading}\r\n data-upup-slot={dataUpupSlot}\r\n >\r\n {isLoading ? (\r\n <LoaderIcon />\r\n ) : (\r\n <div\r\n data-testid=\"upup-drive-browser\"\r\n className=\"upup-grid upup-h-full upup-w-full upup-grid-rows-[auto,1fr,auto] upup-overflow-auto\"\r\n >\r\n <DriveBrowserHeader\r\n showSearch={!!items?.length}\r\n path={path}\r\n setPath={setPath}\r\n searchTerm={searchTerm}\r\n onSearch={setSearchTerm}\r\n {...rest}\r\n />\r\n {!!path && (\r\n <div\r\n // Transparent on the panel gradient — no inner box.\r\n className={cn(\r\n 'upup-h-full upup-overflow-y-auto upup-pt-2',\r\n {\r\n 'upup-text-[#fafafa] dark:upup-text-[#fafafa]':\r\n dark,\r\n },\r\n slotClasses.driveBody,\r\n )}\r\n >\r\n {/* Error state: a calm centered message, not a\r\n banner strip over an empty list. */}\r\n {!!error && (\r\n <div className=\"upup-flex upup-h-full upup-flex-col upup-items-center upup-justify-center upup-px-6 upup-text-center\">\r\n <p\r\n data-testid=\"upup-drive-error\"\r\n data-upup-slot=\"drive-error\"\r\n role=\"alert\"\r\n className=\"upup-text-sm upup-text-red-600 dark:upup-text-red-400\"\r\n >\r\n {t(tr.driveLoadError, {\r\n message: error.message,\r\n })}\r\n </p>\r\n </div>\r\n )}\r\n {!!displayedItems.length && (\r\n <ul className=\"upup-p-2\">\r\n {displayedItems.map(file => {\r\n return (\r\n <DriveBrowserItem\r\n key={file.id}\r\n file={file}\r\n handleClick={\r\n isClickLoading || showLoader\r\n ? () => {}\r\n : handleClick\r\n }\r\n selectedFiles={selectedFiles}\r\n />\r\n )\r\n })}\r\n </ul>\r\n )}\r\n {!displayedItems.length && !error && (\r\n <div className=\"upup-flex upup-h-full upup-flex-col upup-items-center upup-justify-center\">\r\n <p className=\"upup-text-xs upup-opacity-70\">\r\n {tr.noAcceptedFilesFound}\r\n </p>\r\n </div>\r\n )}\r\n {hasMore && (\r\n <button\r\n data-testid=\"upup-drive-load-more\"\r\n data-upup-slot=\"drive-load-more\"\r\n onClick={() => {\r\n void loadMore?.()\r\n }}\r\n disabled={isLoadingMore}\r\n className=\"upup-mx-auto upup-my-2 upup-block upup-rounded-md upup-px-3 upup-py-1.5 upup-text-sm upup-text-[#0284c7] disabled:upup-opacity-50\"\r\n >\r\n {isLoadingMore ? tr.loading : tr.loadMore}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Footer only when there is something to act on — never\r\n under an error state. Hairline divider, no inner box. */}\r\n {(!!selectedFiles.length || !!onSelectCurrentFolder) &&\r\n !error && (\r\n <div\r\n className={cn(\r\n 'upup-flex upup-origin-bottom upup-items-center upup-justify-start upup-gap-4 upup-border-t upup-px-3 upup-py-2',\r\n dark\r\n ? 'upup-border-white/[0.08] upup-text-[#fafafa]'\r\n : 'upup-border-black/[0.06]',\r\n slotClasses.driveFooter,\r\n )}\r\n >\r\n {!!onSelectCurrentFolder && (\r\n <button\r\n className={cn(\r\n 'upup-rounded-md upup-bg-transparent upup-px-3 upup-py-2 upup-text-sm upup-font-medium upup-text-[#0284c7] upup-transition-all upup-duration-300',\r\n {\r\n 'upup-text-[#38bdf8] dark:upup-text-[#38bdf8]':\r\n dark,\r\n },\r\n )}\r\n onClick={() => {\r\n void onSelectCurrentFolder?.()\r\n }}\r\n disabled={showLoader}\r\n >\r\n {tr.selectThisFolder}\r\n </button>\r\n )}\r\n <button\r\n className={cn(\r\n 'upup-rounded-md upup-bg-[#0ea5e9] upup-px-3 upup-py-2 upup-text-sm upup-font-medium upup-text-white upup-transition-all upup-duration-300',\r\n {\r\n 'upup-animate-pulse': showLoader,\r\n 'upup-bg-[#38bdf8] dark:upup-bg-[#38bdf8]':\r\n dark,\r\n },\r\n slotClasses.driveAddFilesButton,\r\n )}\r\n onClick={() => {\r\n void handleSubmit()\r\n }}\r\n disabled={showLoader}\r\n >\r\n {t(\r\n plural(\r\n tr,\r\n 'addFiles',\r\n selectedFiles.length,\r\n ),\r\n { count: selectedFiles.length },\r\n )}\r\n </button>\r\n <button\r\n className={cn(\r\n 'upup-ml-auto upup-rounded-md upup-p-1 upup-text-sm upup-text-[#0284c7] upup-transition-all upup-duration-300',\r\n {\r\n 'upup-text-[#38bdf8] dark:upup-text-[#38bdf8]':\r\n dark,\r\n },\r\n slotClasses.driveCancelFilesButton,\r\n )}\r\n onClick={handleCancelDownload}\r\n disabled={showLoader}\r\n >\r\n {tr.cancel}\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </SourceViewContainer>\r\n )\r\n}\r\n","import React, {\r\n Dispatch,\r\n SetStateAction,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { createPortal } from 'react-dom'\r\nimport { type DriveFolder, type DriveUser } from '@useupup/core'\r\nimport { cn } from '@useupup/core/internal'\r\nimport Icon from '../Icon'\r\nimport {\r\n useUploaderI18n,\r\n useUploaderSource,\r\n useUploaderTheme,\r\n} from '../../context/UploaderContext'\r\nimport { SourceViewHeaderExtraContext } from '../../context/SourceViewHeaderExtraContext'\r\n\r\ntype Props = {\r\n path: DriveFolder[]\r\n setPath: Dispatch<SetStateAction<DriveFolder[]>>\r\n handleSignOut: () => Promise<void>\r\n showSearch: boolean\r\n searchTerm: string\r\n onSearch: Dispatch<SetStateAction<string>>\r\n user?: DriveUser | undefined\r\n signIn?: (() => void) | undefined\r\n}\r\n\r\nexport default function DriveBrowserHeader({\r\n path,\r\n setPath,\r\n user,\r\n handleSignOut,\r\n showSearch,\r\n onSearch,\r\n searchTerm,\r\n}: Readonly<Props>): React.ReactElement | null {\r\n const { setActiveSource } = useUploaderSource()\r\n const { translations: tr } = useUploaderI18n()\r\n const { isDark: dark, slotOverrides: slotClasses } = useUploaderTheme()\r\n const headerExtraHost = useContext(SourceViewHeaderExtraContext)\r\n // Collapsed/expanded search lives here; the term itself stays in DriveBrowser.\r\n const [searchOpen, setSearchOpen] = useState(false)\r\n const searchInputRef = useRef<HTMLInputElement>(null)\r\n\r\n // Focus the field the moment it expands.\r\n useEffect(() => {\r\n if (searchOpen) searchInputRef.current?.focus()\r\n }, [searchOpen])\r\n\r\n if (!user) return null\r\n\r\n // Once navigated into a folder we show a Back affordance + the current\r\n // folder name, not a full breadcrumb trail (long provider folder names\r\n // blew the row up, and multi-level jumps weren't worth the fragility).\r\n const navigated = path.length > 1\r\n const currentFolder = path[path.length - 1]\r\n const hasFilter = searchTerm.trim().length > 0\r\n\r\n const searchField = (expand: boolean): React.ReactElement => (\r\n <div\r\n className={cn(\r\n 'upup-relative upup-min-w-0 upup-flex-1',\r\n expand && 'upup-fx-search-expand',\r\n slotClasses.driveSearchContainer,\r\n )}\r\n >\r\n <input\r\n ref={searchInputRef}\r\n type=\"search\"\r\n name=\"upup-drive-search\"\r\n data-testid=\"upup-drive-search-input\"\r\n data-upup-slot=\"drive-search-input\"\r\n aria-label={tr.search}\r\n className={cn(\r\n 'upup-w-full upup-rounded-lg upup-px-3 upup-py-1.5 upup-pl-8 upup-text-xs upup-outline-none upup-ring-1 upup-transition-shadow focus:upup-ring-2 focus:upup-ring-[#38bdf8]',\r\n dark\r\n ? 'upup-bg-white/[0.06] upup-text-[#e2e8f0] upup-ring-white/[0.1] placeholder:upup-text-[#64748b]'\r\n : 'upup-bg-white upup-text-[#0f172a] upup-ring-black/[0.08] placeholder:upup-text-[#94a3b8]',\r\n slotClasses.driveSearchInput,\r\n )}\r\n placeholder={tr.search}\r\n value={searchTerm}\r\n onChange={e => {\r\n onSearch(e.currentTarget.value)\r\n }}\r\n onKeyDown={e => {\r\n if (e.key === 'Escape') setSearchOpen(false)\r\n }}\r\n onBlur={() => {\r\n // Collapse only when empty — a live filter must stay visible.\r\n if (!searchTerm) setSearchOpen(false)\r\n }}\r\n />\r\n <Icon\r\n name=\"search\"\r\n className=\"upup-absolute upup-left-2.5 upup-top-1/2 upup--translate-y-1/2 upup-text-[#939393]\"\r\n />\r\n </div>\r\n )\r\n\r\n return (\r\n <div data-upup-slot=\"drive-browser-header\">\r\n {/* Account controls live in the SourceView header row (portal),\r\n next to Back, separated by a hairline — not in their own strip. */}\r\n {!!headerExtraHost &&\r\n createPortal(\r\n <>\r\n <div className=\"upup-relative upup-flex upup-h-6 upup-w-6 upup-items-center upup-justify-center upup-overflow-hidden upup-rounded-full\">\r\n {!!user.picture && (\r\n <img\r\n alt={user.name}\r\n src={user.picture}\r\n className=\"upup-bg-center upup-object-cover\"\r\n />\r\n )}\r\n {!user.picture && (\r\n <Icon name=\"user\" className=\"upup-text-xl\" />\r\n )}\r\n </div>\r\n <button\r\n className={cn(\r\n 'upup-hover:upup-underline upup-text-xs upup-font-medium upup-text-[#0284c7]',\r\n {\r\n 'upup-text-[#38bdf8] dark:upup-text-[#38bdf8]':\r\n dark,\r\n },\r\n slotClasses.driveLogoutButton,\r\n )}\r\n onClick={() => {\r\n void handleSignOut()\r\n setActiveSource(undefined)\r\n }}\r\n >\r\n {tr.logOut}\r\n </button>\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'upup-h-4 upup-w-px',\r\n dark ? 'upup-bg-white/15' : 'upup-bg-black/15',\r\n )}\r\n />\r\n </>,\r\n headerExtraHost,\r\n )}\r\n {(navigated || showSearch) && (\r\n <div\r\n className={cn(\r\n 'upup-flex upup-items-center upup-gap-2.5 upup-px-3 upup-py-2 upup-text-xs upup-font-medium upup-text-[#333]',\r\n {\r\n 'upup-text-[#FAFAFA] dark:upup-text-[#FAFAFA]':\r\n dark,\r\n },\r\n slotClasses.driveHeader,\r\n )}\r\n >\r\n {navigated ? (\r\n <>\r\n <button\r\n type=\"button\"\r\n data-testid=\"upup-drive-back\"\r\n data-upup-slot=\"drive-back\"\r\n aria-label={tr.overlayBack}\r\n onClick={() => {\r\n setPath(prev => prev.slice(0, -1))\r\n }}\r\n className={cn(\r\n 'upup-fx-hover-lift upup-fx-press upup-flex upup-h-7 upup-w-7 upup-shrink-0 upup-items-center upup-justify-center upup-rounded-lg',\r\n dark\r\n ? 'upup-text-[#e2e8f0] hover:upup-bg-white/[0.08]'\r\n : 'upup-text-[#334155] hover:upup-bg-black/[0.05]',\r\n )}\r\n >\r\n <Icon name=\"chevron-left\" />\r\n </button>\r\n {!searchOpen && (\r\n <span\r\n data-upup-slot=\"drive-current-folder\"\r\n title={currentFolder?.name}\r\n className=\"upup-min-w-0 upup-flex-1 upup-truncate upup-font-medium\"\r\n >\r\n {currentFolder?.name}\r\n </span>\r\n )}\r\n {showSearch && !searchOpen && (\r\n <button\r\n type=\"button\"\r\n data-testid=\"upup-drive-search-toggle\"\r\n data-upup-slot=\"drive-search-toggle\"\r\n aria-label={tr.search}\r\n aria-expanded={false}\r\n onClick={() => {\r\n setSearchOpen(true)\r\n }}\r\n className={cn(\r\n 'upup-fx-hover-lift upup-fx-press upup-ml-auto upup-flex upup-h-7 upup-w-7 upup-shrink-0 upup-items-center upup-justify-center upup-rounded-lg',\r\n hasFilter\r\n ? 'upup-text-[#0ea5e9]'\r\n : dark\r\n ? 'upup-text-[#94a3b8] hover:upup-bg-white/[0.08]'\r\n : 'upup-text-[#64748b] hover:upup-bg-black/[0.05]',\r\n )}\r\n >\r\n <Icon name=\"search\" />\r\n </button>\r\n )}\r\n {showSearch && searchOpen && searchField(true)}\r\n </>\r\n ) : (\r\n showSearch && searchField(false)\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n","import React from 'react'\r\nimport { type DriveFile } from '@useupup/core'\r\nimport { cn } from '@useupup/core/internal'\r\nimport { useUploaderTheme } from '../../context/UploaderContext'\r\nimport DriveBrowserIcon from './DriveBrowserIcon'\r\n\r\ntype DriveBrowserItemProps = {\r\n file: DriveFile\r\n handleClick: (file: DriveFile) => void | Promise<void>\r\n selectedFiles: DriveFile[]\r\n}\r\n\r\nexport default function DriveBrowserItem({\r\n file,\r\n selectedFiles,\r\n handleClick,\r\n}: Readonly<DriveBrowserItemProps>): React.ReactElement | null {\r\n const { isDark: dark, slotOverrides: slotClasses } = useUploaderTheme()\r\n const isFolder = file.isFolder\r\n const isFileSelected = selectedFiles.filter(f => f.id === file.id).length\r\n\r\n return (\r\n <div\r\n data-upup-slot=\"drive-browser-item\"\r\n className={cn(\r\n // Panel-chrome row (states-tour-3 .st3-prow): translucent card +\r\n // hairline ring, sky-tinted selection, subtle lift on hover.\r\n 'upup-fx-hover-lift upup-group upup-mb-1.5 upup-flex upup-cursor-pointer upup-items-center upup-justify-between upup-gap-2 upup-rounded-[11px] upup-px-3 upup-py-2.5 upup-ring-1',\r\n {\r\n 'upup-font-medium': isFolder,\r\n },\r\n isFileSelected\r\n ? dark\r\n ? 'upup-bg-[#0ea5e9]/10 upup-ring-[#38bdf8]/35'\r\n : 'upup-bg-[#0ea5e9]/10 upup-ring-[#0ea5e9]/40'\r\n : dark\r\n ? 'upup-bg-white/[0.04] upup-ring-white/[0.06] hover:upup-bg-white/[0.07]'\r\n : 'upup-bg-white upup-ring-black/[0.07] hover:upup-bg-slate-50',\r\n {\r\n [slotClasses.driveItemContainerDefault ?? '']:\r\n !isFileSelected &&\r\n slotClasses.driveItemContainerDefault,\r\n [slotClasses.driveItemContainerSelected ?? '']:\r\n isFileSelected &&\r\n slotClasses.driveItemContainerSelected,\r\n },\r\n )}\r\n onClick={() => {\r\n void handleClick(file)\r\n }}\r\n >\r\n <div\r\n className={cn(\r\n 'upup-flex upup-items-center upup-gap-2',\r\n slotClasses.driveItemContainerInner,\r\n )}\r\n >\r\n <DriveBrowserIcon file={file} />\r\n <h1\r\n className={cn(\r\n 'upup-text-wrap upup-break-all upup-text-xs',\r\n {\r\n 'upup-text-[#e0e0e0] dark:upup-text-[#e0e0e0]':\r\n dark,\r\n },\r\n slotClasses.driveItemInnerText,\r\n )}\r\n >\r\n {file.name}\r\n </h1>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","import React, { ReactEventHandler } from 'react'\r\nimport { type DriveFile } from '@useupup/core'\r\nimport { b64EncodeUnicode, cn } from '@useupup/core/internal'\r\nimport Icon from '../Icon'\r\nimport { useUploaderTheme } from '../../context/UploaderContext'\r\n\r\nconst handleImgError: ReactEventHandler<HTMLImageElement> = e => {\r\n const svg = `<svg stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" viewBox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M14 3v4a1 1 0 0 0 1 1h4\"></path><path d=\"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z\"></path></svg>`\r\n e.currentTarget.src = `data:image/svg+xml;base64,${b64EncodeUnicode(svg)}`\r\n e.currentTarget.onerror = null\r\n}\r\n\r\nexport default function DriveBrowserIcon({\r\n file,\r\n}: {\r\n file: DriveFile\r\n}): React.ReactElement | null {\r\n const { isDark: dark } = useUploaderTheme()\r\n const isFolder = file.isFolder\r\n const src = file.thumbnail\r\n\r\n if (isFolder)\r\n return (\r\n <i className=\"upup-flex-grow upup-text-lg\">\r\n {/* Amber filled folder in both themes — folders read\r\n unmistakably as folders. */}\r\n <Icon name=\"folder-filled\" className=\"upup-text-[#fbbf24]\" />\r\n </i>\r\n )\r\n if (!src)\r\n return (\r\n <i className=\"upup-flex-grow upup-text-lg\">\r\n <Icon\r\n name=\"file\"\r\n className={cn({\r\n 'upup-text-[#6D6D6D] dark:upup-text-[#6D6D6D]': dark,\r\n })}\r\n />\r\n </i>\r\n )\r\n\r\n return (\r\n <img\r\n src={src}\r\n alt={file.name}\r\n className=\"upup-h-5 upup-w-5 upup-flex-grow upup-rounded-md upup-shadow\"\r\n onError={handleImgError}\r\n />\r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport {\r\n useUploaderI18n,\r\n useUploaderOptions,\r\n useUploaderTheme,\r\n} from '../context/UploaderContext'\r\nimport {\r\n useServerModeDrive,\r\n type ServerDriveFile,\r\n type ServerModeProvider,\r\n} from '../hooks/useServerModeDrive'\r\nimport SourceViewContainer from './shared/SourceViewContainer'\r\nimport DriveAuthFallback from './shared/DriveAuthFallback'\r\nimport { errorCodeToMessageKey } from '@useupup/core'\r\nimport { cn } from '@useupup/core/internal'\r\n\r\ntype Props = {\r\n provider: ServerModeProvider\r\n onBack?: () => void\r\n 'data-upup-slot'?: string\r\n}\r\n\r\nconst PROVIDER_LABEL: Record<ServerModeProvider, string> = {\r\n 'google-drive': 'Google Drive',\r\n 'one-drive': 'OneDrive',\r\n dropbox: 'Dropbox',\r\n box: 'Box',\r\n}\r\n\r\nexport default function ServerModeDriveUploader({\r\n provider,\r\n onBack,\r\n 'data-upup-slot': dataUpupSlot = `drive-browser-${provider}`,\r\n}: Readonly<Props>): React.ReactElement | null {\r\n const { isDark: dark } = useUploaderTheme()\r\n const {\r\n icons: { LoaderIcon },\r\n } = useUploaderOptions()\r\n const { translator } = useUploaderI18n()\r\n const { state, search, setSearch, refresh, transfer, startAuth } =\r\n useServerModeDrive(provider)\r\n const [selected, setSelected] = useState<Set<string>>(new Set())\r\n const [transferring, setTransferring] = useState(false)\r\n\r\n if (state.status === 'reauth') {\r\n return (\r\n <DriveAuthFallback\r\n providerName={PROVIDER_LABEL[provider]}\r\n onRetry={startAuth}\r\n />\r\n )\r\n }\r\n\r\n const isLoading = state.status === 'loading' || state.status === 'idle'\r\n const files: ServerDriveFile[] = state.status === 'ready' ? state.files : []\r\n\r\n const toggle = (id: string) => {\r\n setSelected(prev => {\r\n const next = new Set(prev)\r\n if (next.has(id)) next.delete(id)\r\n else next.add(id)\r\n return next\r\n })\r\n }\r\n\r\n const handleTransfer = async () => {\r\n setTransferring(true)\r\n try {\r\n for (const file of files.filter(f => selected.has(f.id))) {\r\n const result = await transfer(file)\r\n if (result.status === 'reauth') {\r\n startAuth()\r\n return\r\n }\r\n }\r\n setSelected(new Set())\r\n onBack?.()\r\n } finally {\r\n setTransferring(false)\r\n }\r\n }\r\n\r\n return (\r\n <SourceViewContainer\r\n isLoading={isLoading}\r\n data-upup-slot={dataUpupSlot}\r\n >\r\n {isLoading ? (\r\n <LoaderIcon />\r\n ) : (\r\n <div\r\n data-testid=\"upup-server-drive-browser\"\r\n className=\"upup-grid upup-h-full upup-w-full upup-grid-rows-[auto,1fr,auto] upup-overflow-auto\"\r\n >\r\n <div\r\n className={cn(\r\n 'upup-flex upup-items-center upup-gap-2 upup-border-b upup-px-3 upup-py-2.5',\r\n dark\r\n ? 'upup-border-white/[0.06] upup-text-[#e2e8f0]'\r\n : 'upup-border-black/[0.06] upup-text-gray-800',\r\n )}\r\n data-upup-slot=\"drive-browser-header\"\r\n >\r\n <span className=\"upup-text-sm upup-font-medium\">\r\n {PROVIDER_LABEL[provider]}\r\n </span>\r\n <input\r\n type=\"search\"\r\n name=\"upup-drive-search\"\r\n aria-label=\"Search\"\r\n value={search}\r\n onChange={e => {\r\n setSearch(e.target.value)\r\n }}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter') {\r\n void refresh({\r\n search: e.currentTarget.value,\r\n })\r\n }\r\n }}\r\n placeholder=\"Search…\"\r\n className={cn(\r\n 'upup-ml-auto upup-rounded upup-border upup-px-2 upup-py-1 upup-text-xs',\r\n dark\r\n ? 'upup-border-gray-700 upup-bg-gray-800 upup-text-gray-100'\r\n : 'upup-border-gray-300 upup-bg-white',\r\n )}\r\n />\r\n </div>\r\n <div className=\"upup-overflow-auto upup-p-2\">\r\n {state.status === 'error' && (\r\n <p\r\n data-testid=\"upup-drive-error\"\r\n data-upup-slot=\"drive-error\"\r\n role=\"alert\"\r\n className={cn(\r\n 'upup-p-4 upup-text-sm',\r\n dark\r\n ? 'upup-text-red-400'\r\n : 'upup-text-red-600',\r\n )}\r\n >\r\n {state.code && translator\r\n ? translator(\r\n `errors.${errorCodeToMessageKey(state.code)}`,\r\n { code: state.code },\r\n )\r\n : state.message}\r\n </p>\r\n )}\r\n {files.map(file => {\r\n const isSelected = selected.has(file.id)\r\n return (\r\n <button\r\n key={file.id}\r\n type=\"button\"\r\n onClick={() => {\r\n file.isFolder\r\n ? void refresh({\r\n folderId: file.id,\r\n })\r\n : toggle(file.id)\r\n }}\r\n data-upup-slot=\"drive-browser-item\"\r\n data-selected={isSelected}\r\n className={cn(\r\n // Panel-chrome row (states-tour-3 .st3-prow).\r\n 'upup-fx-hover-lift upup-mb-1.5 upup-flex upup-w-full upup-items-center upup-gap-3 upup-rounded-[11px] upup-px-3 upup-py-2.5 upup-text-left upup-text-sm upup-ring-1',\r\n isSelected\r\n ? 'upup-bg-[#0ea5e9]/10 upup-ring-[#38bdf8]/35'\r\n : dark\r\n ? 'upup-bg-white/[0.04] upup-text-[#e2e8f0] upup-ring-white/[0.06] hover:upup-bg-white/[0.07]'\r\n : 'upup-bg-black/[0.03] upup-text-gray-800 upup-ring-black/[0.06] hover:upup-bg-black/[0.05]',\r\n )}\r\n >\r\n <span\r\n className=\"upup-flex upup-h-[30px] upup-w-[30px] upup-flex-none upup-items-center upup-justify-center upup-rounded-[8px] upup-bg-white/[0.05]\"\r\n aria-hidden=\"true\"\r\n >\r\n {file.isFolder ? (\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"17\"\r\n height=\"17\"\r\n fill=\"none\"\r\n stroke=\"#38bdf8\"\r\n strokeWidth=\"1.7\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M3 7a2 2 0 0 1 2-2h4l2 2h6a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\r\n </svg>\r\n ) : (\r\n <svg\r\n viewBox=\"0 0 24 24\"\r\n width=\"17\"\r\n height=\"17\"\r\n fill=\"none\"\r\n stroke={\r\n dark ? '#94a3b8' : '#64748b'\r\n }\r\n strokeWidth=\"1.6\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n >\r\n <path d=\"M6 3h8l4 4v13a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z\" />\r\n <path d=\"M14 3v4h4\" />\r\n </svg>\r\n )}\r\n </span>\r\n <span className=\"upup-flex-1 upup-truncate\">\r\n {file.name}\r\n </span>\r\n {file.size != null && !file.isFolder && (\r\n <span className=\"upup-text-xs upup-opacity-60\">\r\n {formatBytes(file.size)}\r\n </span>\r\n )}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n <div\r\n className={cn(\r\n 'upup-flex upup-items-center upup-justify-between upup-gap-2 upup-border-t upup-p-3',\r\n dark\r\n ? 'upup-border-white/[0.06]'\r\n : 'upup-border-black/[0.06]',\r\n )}\r\n >\r\n <button\r\n type=\"button\"\r\n onClick={onBack}\r\n className=\"upup-text-sm upup-opacity-70 hover:upup-opacity-100\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n type=\"button\"\r\n disabled={selected.size === 0 || transferring}\r\n onClick={() => void handleTransfer()}\r\n className=\"upup-fx-press upup-rounded-lg upup-bg-[#0ea5e9] upup-px-3 upup-py-1.5 upup-text-sm upup-font-medium upup-text-white hover:upup-bg-[#0284c7] disabled:upup-opacity-50\"\r\n >\r\n {transferring\r\n ? 'Uploading…'\r\n : `Add files${selected.size ? ` (${selected.size})` : ''}`}\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </SourceViewContainer>\r\n )\r\n}\r\n\r\nfunction formatBytes(bytes: number): string {\r\n if (bytes < 1024) return `${bytes} B`\r\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`\r\n if (bytes < 1024 * 1024 * 1024)\r\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`\r\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`\r\n}\r\n","import { useEffect, useRef, useSyncExternalStore } from 'react'\r\nimport { ServerModeDriveController } from '@useupup/core/internal'\r\nimport type {\r\n ServerDriveSnapshot,\r\n ServerDriveTransferResult,\r\n} from '@useupup/core/internal'\r\nimport type { ServerModeProvider, ServerDriveFile } from '@useupup/core'\r\nimport { useUploaderRuntime } from '../context/UploaderContext'\r\n\r\n// Re-export so existing consumers that imported these from this module keep working.\r\nexport type { ServerModeProvider, ServerDriveFile }\r\n\r\nexport function useServerModeDrive(provider: ServerModeProvider): {\r\n state: ServerDriveSnapshot['state']\r\n folderId: ServerDriveSnapshot['folderId']\r\n setFolderId: (id: string | undefined) => void\r\n search: ServerDriveSnapshot['search']\r\n setSearch: (s: string) => void\r\n refresh: (opts?: { folderId?: string; search?: string }) => Promise<void>\r\n transfer: (file: ServerDriveFile) => Promise<ServerDriveTransferResult>\r\n startAuth: () => void\r\n} {\r\n const { serverUrl } = useUploaderRuntime()\r\n const latest = useRef({ serverUrl })\r\n latest.current = { serverUrl }\r\n\r\n const controllerRef = useRef<ServerModeDriveController | undefined>(\r\n undefined,\r\n )\r\n if (!controllerRef.current) {\r\n controllerRef.current = new ServerModeDriveController({\r\n provider,\r\n serverUrl: () => latest.current.serverUrl,\r\n })\r\n }\r\n const controller = controllerRef.current\r\n\r\n const snap = useSyncExternalStore(\r\n controller.subscribe,\r\n controller.getSnapshot,\r\n )\r\n\r\n useEffect(() => {\r\n controller.init()\r\n return () => {\r\n controller.destroy()\r\n }\r\n }, [controller])\r\n\r\n return {\r\n state: snap.state,\r\n folderId: snap.folderId,\r\n setFolderId: (id: string | undefined) => {\r\n controller.setFolderId(id)\r\n void controller.refresh()\r\n },\r\n search: snap.search,\r\n setSearch: (s: string) => {\r\n controller.setSearch(s)\r\n void controller.refresh()\r\n },\r\n refresh: (opts?: { folderId?: string; search?: string }) =>\r\n controller.refresh(opts),\r\n transfer: (file: ServerDriveFile) => controller.transfer(file),\r\n startAuth: () => {\r\n controller.startAuth()\r\n },\r\n }\r\n}\r\n"],"mappings":"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","names":["t","cn","cn","cn","useRef","useEffect","jsxs","cn","jsx","useState","t"]}
@@ -0,0 +1,195 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// ../react/dist/chunk-N7TWHP5Z.js
2
+
3
+
4
+
5
+
6
+ var _internal = require('@useupup/core/internal');
7
+ function getFilerobotTheme(isDarkTheme) {
8
+ return isDarkTheme ? {
9
+ palette: {
10
+ "bg-secondary": "#1a1a1a",
11
+ "bg-primary": "#232323",
12
+ "bg-primary-active": "#2d2d2d",
13
+ "bg-stateless": "#2d2d2d",
14
+ "bg-hover": "#3a3a3a",
15
+ "bg-active": "#3a3a3a",
16
+ "accent-primary": "#30C5F7",
17
+ "accent-primary-hover": "#6DD8FB",
18
+ "accent-primary-active": "#6DD8FB",
19
+ accent_1_2_opacity: "rgba(48, 197, 247, 0.12)",
20
+ "accent-stateless": "#30C5F7",
21
+ "icon-primary": "#ffffff",
22
+ "icons-primary": "#ffffff",
23
+ "icons-secondary": "#d1d5db",
24
+ "icons-placeholder": "#9ca3af",
25
+ "borders-secondary": "#374151",
26
+ "borders-primary": "#4b5563",
27
+ "borders-strong": "#6b7280",
28
+ "borders-disabled": "#6b7280",
29
+ "borders-button": "#4b5563",
30
+ "light-shadow": "rgba(0, 0, 0, 0.4)",
31
+ warning: "#f59e0b",
32
+ "txt-primary": "#ffffff",
33
+ "txt-secondary": "#d1d5db",
34
+ "txt-primary-invert": "#232323",
35
+ "txt-secondary-invert": "#1a1a1a",
36
+ "btn-primary-text": "#ffffff",
37
+ "btn-secondary-text": "#d1d5db",
38
+ "btn-disabled-text": "#6b7280",
39
+ "link-stateless": "#d1d5db"
40
+ },
41
+ typography: {
42
+ fontFamily: "inherit"
43
+ }
44
+ } : {
45
+ palette: {
46
+ "bg-secondary": "#f9fafb",
47
+ "bg-primary": "#ffffff",
48
+ "bg-primary-active": "#f3f4f6",
49
+ "bg-stateless": "#ffffff",
50
+ "bg-hover": "#eff6ff",
51
+ "bg-active": "#dbeafe",
52
+ "accent-primary": "#2563eb",
53
+ "accent-primary-hover": "#1d4ed8",
54
+ "accent-primary-active": "#1e40af",
55
+ accent_1_2_opacity: "rgba(37, 99, 235, 0.12)",
56
+ "accent-stateless": "#2563eb",
57
+ "icon-primary": "#111827",
58
+ "icons-primary": "#111827",
59
+ "icons-secondary": "#4b5563",
60
+ "icons-placeholder": "#9ca3af",
61
+ "borders-secondary": "#e5e7eb",
62
+ "borders-primary": "#d1d5db",
63
+ "borders-strong": "#9ca3af",
64
+ "borders-disabled": "#d1d5db",
65
+ "borders-button": "#2563eb",
66
+ "light-shadow": "rgba(15, 23, 42, 0.12)",
67
+ warning: "#d97706",
68
+ "txt-primary": "#111827",
69
+ "txt-secondary": "#4b5563",
70
+ "txt-primary-invert": "#ffffff",
71
+ "txt-secondary-invert": "#f9fafb",
72
+ "btn-primary-text": "#ffffff",
73
+ "btn-secondary-text": "#1d4ed8",
74
+ "btn-disabled-text": "#93c5fd",
75
+ "link-stateless": "#2563eb"
76
+ },
77
+ typography: {
78
+ fontFamily: "inherit"
79
+ }
80
+ };
81
+ }
82
+ function getImageEditorCssOverrides(isDarkTheme) {
83
+ const common = `
84
+ /* Fill container */
85
+ .FIE_root {
86
+ height: 100% !important;
87
+ }
88
+ `;
89
+ return isDarkTheme ? common + `
90
+ /* Input background & border overrides (hardcoded in @scaleflex/ui) */
91
+ [data-upup-theme='dark'] .SfxInput-Base {
92
+ background-color: #2d2d2d !important;
93
+ border-color: #4b5563 !important;
94
+ }
95
+ [data-upup-theme='dark'] .SfxInput-Base:focus-within {
96
+ background-color: #353535 !important;
97
+ border-color: #6b7280 !important;
98
+ }
99
+ [data-upup-theme='dark'] .SfxInput-Base:hover {
100
+ background-color: #353535 !important;
101
+ }
102
+ /* Carousel gradient arrow overrides (hardcoded white in FIE) */
103
+ [data-upup-theme='dark'] .FIE_carousel-prev-button {
104
+ background: linear-gradient(
105
+ 90deg,
106
+ #232323 1.56%,
107
+ rgba(35, 35, 35, 0.89) 52.4%,
108
+ rgba(35, 35, 35, 0.53) 76.04%,
109
+ rgba(35, 35, 35, 0) 100%
110
+ ) !important;
111
+ }
112
+ [data-upup-theme='dark'] .FIE_carousel-next-button {
113
+ background: linear-gradient(
114
+ 270deg,
115
+ #232323 1.56%,
116
+ rgba(35, 35, 35, 0.89) 52.4%,
117
+ rgba(35, 35, 35, 0.53) 76.04%,
118
+ rgba(35, 35, 35, 0) 100%
119
+ ) !important;
120
+ }
121
+ [data-upup-theme='dark'] .FIE_topbar-save-button,
122
+ [data-upup-theme='dark'] .FIE_watermark-add-button {
123
+ background-color: #30c5f7 !important;
124
+ color: #ffffff !important;
125
+ border: none !important;
126
+ }
127
+ [data-upup-theme='dark'] .FIE_topbar-save-button .SfxButton-Label,
128
+ [data-upup-theme='dark'] .FIE_watermark-add-button .SfxButton-Label {
129
+ color: #ffffff !important;
130
+ opacity: 1 !important;
131
+ }
132
+ [data-upup-theme='dark'] .FIE_topbar-save-button:hover,
133
+ [data-upup-theme='dark'] .FIE_topbar-save-button:focus-visible,
134
+ [data-upup-theme='dark'] .FIE_watermark-add-button:hover,
135
+ [data-upup-theme='dark'] .FIE_watermark-add-button:focus-visible {
136
+ background-color: #6dd8fb !important;
137
+ }
138
+ [data-upup-theme='dark'] .FIE_topbar-save-button:active,
139
+ [data-upup-theme='dark'] .FIE_watermark-add-button:active {
140
+ background-color: #27b1df !important;
141
+ }
142
+ [data-upup-theme='dark'] .FIE_topbar-save-button:disabled,
143
+ [data-upup-theme='dark'] .FIE_watermark-add-button:disabled {
144
+ color: #9ca3af !important;
145
+ background-color: rgba(48, 197, 247, 0.12) !important;
146
+ border: 1px solid #4b5563 !important;
147
+ }
148
+ [data-upup-theme='dark'] .FIE_topbar-save-button:disabled .SfxButton-Label,
149
+ [data-upup-theme='dark'] .FIE_watermark-add-button:disabled .SfxButton-Label {
150
+ color: #9ca3af !important;
151
+ opacity: 1 !important;
152
+ }
153
+ ` : common + `
154
+ [data-upup-theme='light'] .FIE_topbar-save-button,
155
+ [data-upup-theme='light'] .FIE_watermark-add-button {
156
+ background-color: #2563eb !important;
157
+ color: #ffffff !important;
158
+ border: 1px solid #2563eb !important;
159
+ }
160
+ [data-upup-theme='light'] .FIE_topbar-save-button .SfxButton-Label,
161
+ [data-upup-theme='light'] .FIE_watermark-add-button .SfxButton-Label {
162
+ color: #ffffff !important;
163
+ opacity: 1 !important;
164
+ }
165
+ [data-upup-theme='light'] .FIE_topbar-save-button:hover,
166
+ [data-upup-theme='light'] .FIE_topbar-save-button:focus-visible,
167
+ [data-upup-theme='light'] .FIE_watermark-add-button:hover,
168
+ [data-upup-theme='light'] .FIE_watermark-add-button:focus-visible {
169
+ background-color: #1d4ed8 !important;
170
+ border-color: #1d4ed8 !important;
171
+ }
172
+ [data-upup-theme='light'] .FIE_topbar-save-button:active,
173
+ [data-upup-theme='light'] .FIE_watermark-add-button:active {
174
+ background-color: #1e40af !important;
175
+ border-color: #1e40af !important;
176
+ }
177
+ [data-upup-theme='light'] .FIE_topbar-save-button:disabled,
178
+ [data-upup-theme='light'] .FIE_watermark-add-button:disabled {
179
+ color: #93c5fd !important;
180
+ background-color: rgba(37, 99, 235, 0.12) !important;
181
+ border: 1px solid #bfdbfe !important;
182
+ }
183
+ [data-upup-theme='light'] .FIE_topbar-save-button:disabled .SfxButton-Label,
184
+ [data-upup-theme='light'] .FIE_watermark-add-button:disabled .SfxButton-Label {
185
+ color: #93c5fd !important;
186
+ opacity: 1 !important;
187
+ }
188
+ `;
189
+ }
190
+
191
+
192
+
193
+
194
+ exports.getFilerobotTheme = getFilerobotTheme; exports.getImageEditorCssOverrides = getImageEditorCssOverrides;
195
+ //# sourceMappingURL=chunk-YWJHE7U4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["c:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\preact\\dist\\chunk-YWJHE7U4.cjs"],"names":[],"mappings":"AAAA;AACA;AACE;AACA;AACA;AACF,kDAA+B;AAC/B,SAAS,iBAAiB,CAAC,WAAW,EAAE;AACxC,EAAE,OAAO,YAAY,EAAE;AACvB,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,YAAY,EAAE,SAAS;AAC7B,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,UAAU,EAAE,SAAS;AAC3B,MAAM,WAAW,EAAE,SAAS;AAC5B,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,sBAAsB,EAAE,SAAS;AACvC,MAAM,uBAAuB,EAAE,SAAS;AACxC,MAAM,kBAAkB,EAAE,0BAA0B;AACpD,MAAM,kBAAkB,EAAE,SAAS;AACnC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,iBAAiB,EAAE,SAAS;AAClC,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,iBAAiB,EAAE,SAAS;AAClC,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,kBAAkB,EAAE,SAAS;AACnC,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,cAAc,EAAE,oBAAoB;AAC1C,MAAM,OAAO,EAAE,SAAS;AACxB,MAAM,aAAa,EAAE,SAAS;AAC9B,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,oBAAoB,EAAE,SAAS;AACrC,MAAM,sBAAsB,EAAE,SAAS;AACvC,MAAM,kBAAkB,EAAE,SAAS;AACnC,MAAM,oBAAoB,EAAE,SAAS;AACrC,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,gBAAgB,EAAE;AACxB,IAAI,CAAC;AACL,IAAI,UAAU,EAAE;AAChB,MAAM,UAAU,EAAE;AAClB,IAAI;AACJ,EAAE,EAAE,EAAE;AACN,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,YAAY,EAAE,SAAS;AAC7B,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,UAAU,EAAE,SAAS;AAC3B,MAAM,WAAW,EAAE,SAAS;AAC5B,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,sBAAsB,EAAE,SAAS;AACvC,MAAM,uBAAuB,EAAE,SAAS;AACxC,MAAM,kBAAkB,EAAE,yBAAyB;AACnD,MAAM,kBAAkB,EAAE,SAAS;AACnC,MAAM,cAAc,EAAE,SAAS;AAC/B,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,iBAAiB,EAAE,SAAS;AAClC,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,iBAAiB,EAAE,SAAS;AAClC,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,kBAAkB,EAAE,SAAS;AACnC,MAAM,gBAAgB,EAAE,SAAS;AACjC,MAAM,cAAc,EAAE,wBAAwB;AAC9C,MAAM,OAAO,EAAE,SAAS;AACxB,MAAM,aAAa,EAAE,SAAS;AAC9B,MAAM,eAAe,EAAE,SAAS;AAChC,MAAM,oBAAoB,EAAE,SAAS;AACrC,MAAM,sBAAsB,EAAE,SAAS;AACvC,MAAM,kBAAkB,EAAE,SAAS;AACnC,MAAM,oBAAoB,EAAE,SAAS;AACrC,MAAM,mBAAmB,EAAE,SAAS;AACpC,MAAM,gBAAgB,EAAE;AACxB,IAAI,CAAC;AACL,IAAI,UAAU,EAAE;AAChB,MAAM,UAAU,EAAE;AAClB,IAAI;AACJ,EAAE,CAAC;AACH;AACA,SAAS,0BAA0B,CAAC,WAAW,EAAE;AACjD,EAAE,MAAM,OAAO,EAAE,CAAC;AAClB;AACA;AACA;AACA;AACA,IAAI,CAAC;AACL,EAAE,OAAO,YAAY,EAAE,OAAO,EAAE,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,CAAC;AACT;AACA;AACA;AACE;AACA;AACF,+GAAC","file":"C:\\Users\\amind\\OneDrive\\Desktop\\Projects\\INTERNAL\\upup\\packages\\preact\\dist\\chunk-YWJHE7U4.cjs","sourcesContent":[null]}
@@ -0,0 +1,293 @@
1
+ import {
2
+ compat_module_exports,
3
+ createContext,
4
+ createElement,
5
+ init_compat_module
6
+ } from "./chunk-FH3LYESR.js";
7
+
8
+ // ../react/dist/chunk-LCMDDPUD.js
9
+ init_compat_module();
10
+ import { UploadStatus } from "@useupup/core";
11
+ var UploaderContext = createContext(null);
12
+ var RuntimeContext = createContext(null);
13
+ var SourceContext = createContext(null);
14
+ var I18nContext = createContext(null);
15
+ var FilesContext = createContext(null);
16
+ var UploadControlsContext = createContext(null);
17
+ var ViewContext = createContext(null);
18
+ var EditorContext = createContext(null);
19
+ var OptionsContext = createContext(null);
20
+ var ThemeContext = createContext(null);
21
+ function useContextOrThrow(context, name) {
22
+ const value = (0, compat_module_exports.useContext)(context);
23
+ if (!value) {
24
+ throw new Error(`${name} must be used inside <UpupUploader />`);
25
+ }
26
+ return value;
27
+ }
28
+ function UploaderContextProvider({
29
+ value,
30
+ children
31
+ }) {
32
+ const runtime = (0, compat_module_exports.useMemo)(
33
+ () => ({
34
+ core: value.core,
35
+ orchestrator: value.orchestrator,
36
+ mode: value.mode,
37
+ serverUrl: value.serverUrl,
38
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- runtime context must still expose inputRef for back-compat consumers; v3 removal tracked
39
+ inputRef: value.inputRef,
40
+ openFilePicker: value.openFilePicker,
41
+ isOnline: value.isOnline,
42
+ motionMode: value.motionMode
43
+ }),
44
+ [
45
+ value.core,
46
+ value.orchestrator,
47
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- see above
48
+ value.inputRef,
49
+ value.isOnline,
50
+ value.motionMode,
51
+ value.mode,
52
+ value.openFilePicker,
53
+ value.serverUrl
54
+ ]
55
+ );
56
+ const source = (0, compat_module_exports.useMemo)(
57
+ () => ({
58
+ activeSource: value.activeSource,
59
+ setActiveSource: value.setActiveSource,
60
+ cloudDrives: value.cloudDrives
61
+ }),
62
+ [value.activeSource, value.cloudDrives, value.setActiveSource]
63
+ );
64
+ const i18n = (0, compat_module_exports.useMemo)(
65
+ () => ({
66
+ translations: value.translations,
67
+ translator: value.translator,
68
+ lang: value.lang,
69
+ dir: value.dir
70
+ }),
71
+ [value.dir, value.lang, value.translations, value.translator]
72
+ );
73
+ const files = (0, compat_module_exports.useMemo)(
74
+ () => ({
75
+ files: value.files,
76
+ leavingFileIds: value.leavingFileIds,
77
+ setFiles: value.setFiles,
78
+ replaceFiles: value.replaceFiles,
79
+ resetState: value.resetState,
80
+ uploadFiles: value.uploadFiles,
81
+ handleFileRemove: value.handleFileRemove
82
+ }),
83
+ [
84
+ value.uploadFiles,
85
+ value.replaceFiles,
86
+ value.files,
87
+ value.leavingFileIds,
88
+ value.handleFileRemove,
89
+ value.resetState,
90
+ value.setFiles
91
+ ]
92
+ );
93
+ const uploadControls = (0, compat_module_exports.useMemo)(
94
+ () => ({
95
+ upload: value.upload,
96
+ handleDone: value.handleDone,
97
+ handleCancel: value.handleCancel,
98
+ handlePause: value.handlePause,
99
+ handleResume: value.handleResume
100
+ }),
101
+ [
102
+ value.handleCancel,
103
+ value.handleDone,
104
+ value.handlePause,
105
+ value.handleResume,
106
+ value.upload
107
+ ]
108
+ );
109
+ const view = (0, compat_module_exports.useMemo)(
110
+ () => ({
111
+ sourceOverlayOpen: value.sourceOverlayOpen,
112
+ sourceOverlayClosing: value.sourceOverlayClosing,
113
+ openSourceOverlay: value.openSourceOverlay,
114
+ closeSourceOverlay: value.closeSourceOverlay,
115
+ dropRejected: value.dropRejected,
116
+ flagDriveDropRejected: value.flagDriveDropRejected,
117
+ viewMode: value.viewMode,
118
+ setViewMode: value.setViewMode
119
+ }),
120
+ [
121
+ value.sourceOverlayOpen,
122
+ value.sourceOverlayClosing,
123
+ value.openSourceOverlay,
124
+ value.closeSourceOverlay,
125
+ value.dropRejected,
126
+ value.flagDriveDropRejected,
127
+ value.setViewMode,
128
+ value.viewMode
129
+ ]
130
+ );
131
+ const editor = (0, compat_module_exports.useMemo)(
132
+ () => ({
133
+ editingFile: value.editingFile,
134
+ openImageEditor: value.openImageEditor,
135
+ closeImageEditor: value.closeImageEditor,
136
+ saveImageEdit: value.saveImageEdit,
137
+ replaceFile: value.replaceFile
138
+ }),
139
+ [
140
+ value.closeImageEditor,
141
+ value.editingFile,
142
+ value.openImageEditor,
143
+ value.replaceFile,
144
+ value.saveImageEdit
145
+ ]
146
+ );
147
+ const options = (0, compat_module_exports.useMemo)(
148
+ () => value.props,
149
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- intentional: memoize on granular prop fields, not the parent object identity (which changes every render)
150
+ [
151
+ value.props.allowedFileTypes,
152
+ value.props.allowPreview,
153
+ value.props.className,
154
+ value.props.disableDragDrop,
155
+ value.props.enablePaste,
156
+ value.props.folderPickerButtonVisible,
157
+ value.props.folderUploadAllowDrop,
158
+ value.props.icons,
159
+ value.props.imageEditor,
160
+ value.props.isProcessing,
161
+ value.props.limit,
162
+ value.props.maxFileSize,
163
+ value.props.maxRetries,
164
+ value.props.mini,
165
+ value.props.multiple,
166
+ value.props.onError,
167
+ value.props.onFileClick,
168
+ value.props.onFilesDragLeave,
169
+ value.props.onFilesDragOver,
170
+ value.props.onFilesDrop,
171
+ value.props.onWarn,
172
+ value.props.onIntegrationClick,
173
+ value.props.resumable,
174
+ value.props.showBranding,
175
+ value.props.quietCompletion,
176
+ value.props.sources,
177
+ value.props.style
178
+ ]
179
+ );
180
+ const theme = (0, compat_module_exports.useMemo)(
181
+ () => value.theme,
182
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- intentional: memoize on granular theme fields, not the parent object identity (which changes every render)
183
+ [
184
+ value.theme.isDark,
185
+ value.theme.resolved,
186
+ value.theme.slotOverrides,
187
+ value.theme.slots,
188
+ value.theme.themeMode,
189
+ value.theme.tokens
190
+ ]
191
+ );
192
+ return createElement(
193
+ UploaderContext.Provider,
194
+ { value },
195
+ createElement(
196
+ RuntimeContext.Provider,
197
+ { value: runtime },
198
+ createElement(
199
+ SourceContext.Provider,
200
+ { value: source },
201
+ createElement(
202
+ I18nContext.Provider,
203
+ { value: i18n },
204
+ createElement(
205
+ FilesContext.Provider,
206
+ { value: files },
207
+ createElement(
208
+ UploadControlsContext.Provider,
209
+ { value: uploadControls },
210
+ createElement(
211
+ ViewContext.Provider,
212
+ { value: view },
213
+ createElement(
214
+ EditorContext.Provider,
215
+ { value: editor },
216
+ createElement(
217
+ OptionsContext.Provider,
218
+ { value: options },
219
+ createElement(
220
+ ThemeContext.Provider,
221
+ { value: theme },
222
+ children
223
+ )
224
+ )
225
+ )
226
+ )
227
+ )
228
+ )
229
+ )
230
+ )
231
+ )
232
+ );
233
+ }
234
+ function useUploaderContext() {
235
+ return useContextOrThrow(UploaderContext, "useUploaderContext");
236
+ }
237
+ function useUploaderRuntime() {
238
+ return useContextOrThrow(RuntimeContext, "useUploaderRuntime");
239
+ }
240
+ function useUploaderSource() {
241
+ return useContextOrThrow(SourceContext, "useUploaderSource");
242
+ }
243
+ function useUploaderI18n() {
244
+ return useContextOrThrow(I18nContext, "useUploaderI18n");
245
+ }
246
+ function useUploaderFiles() {
247
+ return useContextOrThrow(FilesContext, "useUploaderFiles");
248
+ }
249
+ function useUploaderUploadControls() {
250
+ return useContextOrThrow(UploadControlsContext, "useUploaderUploadControls");
251
+ }
252
+ function useUploaderView() {
253
+ return useContextOrThrow(ViewContext, "useUploaderView");
254
+ }
255
+ function useUploaderEditor() {
256
+ return useContextOrThrow(EditorContext, "useUploaderEditor");
257
+ }
258
+ function useUploaderOptions() {
259
+ return useContextOrThrow(OptionsContext, "useUploaderOptions");
260
+ }
261
+ function useUploaderTheme() {
262
+ return useContextOrThrow(ThemeContext, "useUploaderTheme");
263
+ }
264
+
265
+ // ../../node_modules/.pnpm/preact@10.29.8_preact-render-to-string@6.7.0/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
266
+ import { options as r, Fragment as e } from "preact";
267
+ import { Fragment } from "preact";
268
+ var f = 0;
269
+ function u(e2, t, n, o, i, u2) {
270
+ t || (t = {});
271
+ var a, c, p = t;
272
+ if ("ref" in p) for (c in p = {}, t) "ref" == c ? a = t[c] : p[c] = t[c];
273
+ var l = { type: e2, props: p, key: n, ref: a, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --f, __i: -1, __u: 0, __source: i, __self: u2 };
274
+ if ("function" == typeof e2 && (a = e2.defaultProps)) for (c in a) void 0 === p[c] && (p[c] = a[c]);
275
+ return r.vnode && r.vnode(l), l;
276
+ }
277
+
278
+ export {
279
+ UploaderContextProvider,
280
+ useUploaderContext,
281
+ useUploaderRuntime,
282
+ useUploaderSource,
283
+ useUploaderI18n,
284
+ useUploaderFiles,
285
+ useUploaderUploadControls,
286
+ useUploaderView,
287
+ useUploaderEditor,
288
+ useUploaderOptions,
289
+ useUploaderTheme,
290
+ u,
291
+ Fragment
292
+ };
293
+ //# sourceMappingURL=chunk-ZGWETRKI.js.map