efficient-shell 4.179.0 → 4.181.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/README.md +15 -1
- package/dist/Browser-QYHW6I6J.js +43 -0
- package/dist/Calculator-4K53PFBL.js +29 -0
- package/dist/ConfirmDialog-X2DPOYWO.js +1 -0
- package/dist/{CurrencyConverter-AMXUOQR2.js → CurrencyConverter-QEG6RFAS.js} +9 -9
- package/dist/Documents-SFNMDRYU.js +52 -0
- package/dist/Files-OX2UBSQQ.js +87 -0
- package/dist/Notepad-CNZEWFCR.js +25 -0
- package/dist/PdfViewer-UZGDE4HD.js +1 -0
- package/dist/PomodoroTimer-T6YAQFIE.js +91 -0
- package/dist/Preview-OOVIIQQG.js +182 -0
- package/dist/Sidebar-3NZRIL7F.js +44 -0
- package/dist/Spreadsheet-7NUDGOSX.js +37 -0
- package/dist/{Stock-GWVG2INU.js → Stock-BZFC2ROU.js} +6 -6
- package/dist/{Weather-APBCG4TO.js → Weather-S3N5OWYF.js} +17 -17
- package/dist/{WorldClock-2LMZYKWR.js → WorldClock-ACC3S6OA.js} +4 -4
- package/dist/apps/index.js +1 -1
- package/dist/bin/ui-check.js +1 -1
- package/dist/{chunk-FORN7LG7.js → chunk-2DX65GOO.js} +1 -1
- package/dist/{chunk-6CFBF543.js → chunk-5IWSOLLY.js} +2 -2
- package/dist/chunk-FOEVG7RT.js +21 -0
- package/dist/chunk-GMMTTWHB.js +3 -0
- package/dist/chunk-LMIQV3NB.js +13 -0
- package/dist/{chunk-SVO3ES2E.js → chunk-MIAJQGWE.js} +1 -1
- package/dist/chunk-MSIN5HKX.js +9 -0
- package/dist/chunk-OD5KLVU5.js +1 -0
- package/dist/{chunk-ILTSTULF.js → chunk-P4SGJTK3.js} +1 -1
- package/dist/chunk-PQLVWCUI.js +11 -0
- package/dist/chunk-QRV7RNQX.js +24 -0
- package/dist/chunk-R3PCJLQF.js +993 -0
- package/dist/chunk-SBDIHKLU.js +108 -0
- package/dist/chunk-VJP3R52B.js +6 -0
- package/dist/chunk-XUF7VW4U.js +136 -0
- package/dist/chunk-ZDF5AR5W.js +10 -0
- package/dist/chunk-ZZKIKW62.js +29 -0
- package/dist/{index-DcUj0nXY.d.ts → index-HAwjA-hn.d.ts} +11 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +639 -656
- package/dist/map/index.js +22 -22
- package/dist/markdown/index.js +6 -6
- package/dist/page-tabs/index.js +5 -5
- package/dist/pdf/index.js +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -1
- package/package.json +1 -1
- package/dist/Browser-LZMLL4CZ.js +0 -43
- package/dist/Calculator-R5OEHQ67.js +0 -29
- package/dist/ConfirmDialog-CMNQZQA3.js +0 -1
- package/dist/Documents-M4HKZAPJ.js +0 -52
- package/dist/Files-OY5GKCXA.js +0 -89
- package/dist/Notepad-JLDNTMVB.js +0 -25
- package/dist/PdfViewer-3SC3LE4U.js +0 -1
- package/dist/PomodoroTimer-LE6J2KUU.js +0 -99
- package/dist/Preview-2KHLL6NP.js +0 -188
- package/dist/Sidebar-BQ4P5LBI.js +0 -44
- package/dist/Spreadsheet-B5Z5MSX4.js +0 -37
- package/dist/chunk-47VJNVB6.js +0 -1003
- package/dist/chunk-5ZDM6WIC.js +0 -24
- package/dist/chunk-7WZEFHPS.js +0 -6
- package/dist/chunk-AA4TMQOS.js +0 -10
- package/dist/chunk-AZURXTRB.js +0 -1
- package/dist/chunk-C2A4PIGZ.js +0 -13
- package/dist/chunk-CIXQKCFA.js +0 -11
- package/dist/chunk-CZK2VKIO.js +0 -9
- package/dist/chunk-KVOFUFPP.js +0 -3
- package/dist/chunk-N6STBYXR.js +0 -112
- package/dist/chunk-UAIVAA5X.js +0 -21
- package/dist/chunk-ZAE6ROV7.js +0 -29
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{navIcons as e}from"./chunk-DSSLOQDW.js";import{FolderFallback as t,PageFallback as r}from"./chunk-XUF7VW4U.js";import{Icon as n}from"./chunk-YKZHOXI4.js";import{isValidElement as o,cloneElement as i}from"react";import{jsx as l,jsxs as a}from"react/jsx-runtime";var d=["from-blue-500 to-blue-700","from-indigo-500 to-purple-600","from-purple-500 to-pink-600","from-pink-500 to-rose-600","from-red-500 to-rose-600","from-orange-500 to-red-600","from-amber-500 to-orange-600","from-yellow-500 to-amber-500","from-lime-500 to-green-600","from-green-500 to-emerald-600","from-emerald-500 to-teal-600","from-teal-500 to-cyan-600","from-cyan-500 to-sky-600","from-sky-500 to-blue-600","from-violet-500 to-fuchsia-600"];function s(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r);return d[Math.abs(t)%d.length]}var c={order:"text-blue-600",purchase_order:"text-purple-600",invoice:"text-green-600",client:"text-indigo-600",manufacturer:"text-orange-600",shipment:"text-teal-600",part_number:"text-gray-600",project:"text-pink-600",mould:"text-red-600",design:"text-cyan-600",brand:"text-amber-600",price_sheet:"text-emerald-600",folder:"text-yellow-600",page:"text-blue-500"},f={order:"SO",purchase_order:"PO",invoice:"INV",client:"CLI",manufacturer:"MFR",shipment:"DN",part_number:"PN",project:"PRJ",mould:"MLD",design:"DSN",brand:"BRD",price_sheet:"PS",vendor_invoice:"VI",vendor_payment:"VP",warranty_claim:"WC",qc_report:"QC",vendor_shipment:"GRN",bank_account:"BA",wheel_finish:"WF",weight_log:"WL",production_progress:"PP",vendor_price_sheet:"VPS",proposal:"PR",folder:"FLD"},p={pdf:"PDF",dxf:"DXF","3d":"STP",image:"IMG",csv:"CSV"},u={pdf:"text-red-600",dxf:"text-blue-600","3d":"text-purple-600",image:"text-emerald-600",csv:"text-green-600"};function m({className:e}){/* @__PURE__ */
|
|
2
|
+
return l(n,{name:"folder",fallback:t,className:e})}function h(t,r){return r&&e[r]||(t?e[t]:void 0)}var w=/* @__PURE__ */l("svg",{className:"h-7 w-7",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */l("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6z"})});function g({entityType:e,isSelected:t,entityId:r,label:n,fileKind:d}){const g="preview-file"===e&&d,y=g?u[d]:null,x=g?p[d]:null;if("folder"===e)/* @__PURE__ */
|
|
3
|
+
return l("div",{className:"w-12 h-12 flex items-center justify-center "+(t?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""),children:/* @__PURE__ */l(m,{className:"h-12 w-12 text-amber-500 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)]"})});if("page"===e){const e=h(r,n),a=s(r||n||"page");/* @__PURE__ */
|
|
4
|
+
return l("div",{className:"w-12 h-12 flex items-center justify-center "+(t?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""),children:/* @__PURE__ */l("span",{className:`h-11 w-11 rounded-xl bg-gradient-to-br ${a} flex items-center justify-center text-white border border-white/30 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)]`,children:e&&o(e)?i(e,{className:"h-7 w-7 text-white"}):w})})}/* @__PURE__ */
|
|
5
|
+
return a("div",{className:"w-12 h-12 relative flex items-center justify-center "+(t?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""),children:[
|
|
6
|
+
/* @__PURE__ */a("svg",{className:`w-10 h-12 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)] ${y??c[e]??"text-gray-500"}`,viewBox:"0 0 40 48",fill:"none",children:[
|
|
7
|
+
/* @__PURE__ */l("path",{d:"M4 0h22l10 10v34a4 4 0 01-4 4H4a4 4 0 01-4-4V4a4 4 0 014-4z",fill:"white",fillOpacity:"0.92"}),
|
|
8
|
+
/* @__PURE__ */l("path",{d:"M26 0l10 10H30a4 4 0 01-4-4V0z",fill:"currentColor",fillOpacity:"0.2"}),
|
|
9
|
+
/* @__PURE__ */l("path",{d:"M4 0h22l10 10v34a4 4 0 01-4 4H4a4 4 0 01-4-4V4a4 4 0 014-4z",stroke:"currentColor",strokeWidth:"1.5",strokeOpacity:"0.5"})]}),
|
|
10
|
+
/* @__PURE__ */l("span",{className:`absolute inset-0 flex items-center justify-center text-[9px] font-bold pt-2 ${y??c[e]??"text-gray-600"}`,children:x??f[e]??e.slice(0,3).toUpperCase()})]})}function y({item:e}){if("folder"===e.entityType)/* @__PURE__ */
|
|
11
|
+
return l(m,{className:"h-4 w-4 shrink-0 text-amber-500"});if("page"===e.entityType){const t=h(e.entityId,e.label);/* @__PURE__ */
|
|
12
|
+
return l("span",{className:`h-4 w-4 rounded bg-gradient-to-br ${s(e.entityId||e.label||"page")} flex items-center justify-center text-white shrink-0`,children:t&&o(t)?i(t,{className:"h-3 w-3 text-white"}):/* @__PURE__ */l("span",{className:"h-1.5 w-1.5 rounded-[2px] border border-white/80"})})}const t=("preview-file"===e.entityType&&e.fileKind?u[e.fileKind]:c[e.entityType])??"text-gray-400";/* @__PURE__ */
|
|
13
|
+
return l(n,{name:"page",fallback:r,className:`h-4 w-4 shrink-0 ${t}`,strokeWidth:1.5})}function x(e){return"preview-file"===e.entityType&&e.fileKind?p[e.fileKind]:"page"===e.entityType?"App":"folder"===e.entityType?"Folder":f[e.entityType]??e.entityType.slice(0,3).toUpperCase()}var b=null,v=/* @__PURE__ */new Set;function _(e){b=e,v.forEach(e=>e())}function k(e){return v.add(e),()=>{v.delete(e)}}function N(){return b}var j="__REACT_OS_SHELL_FILES_VIEW__",C="react-os-shell:files-show-trash",I="react-os-shell:files-open-desktop-folder";function S(){"undefined"!=typeof window&&(window[j]="trash",window.dispatchEvent(new CustomEvent(C)))}function T(e){"undefined"!=typeof window&&(window[j]={view:"desktop-folder",folderId:e},window.dispatchEvent(new CustomEvent(I,{detail:{folderId:e}})))}function P(){if("undefined"==typeof window)return null;const e=window[j];return"trash"===e?"trash":e&&"object"==typeof e&&"desktop-folder"===e.view&&"string"==typeof e.folderId?e:null}function V(){const e=P();return"undefined"!=typeof window&&(window[j]=null),e}export{y as DesktopItemMiniIcon,I as FILES_OPEN_DESKTOP_FOLDER_EVENT,C as FILES_SHOW_TRASH_EVENT,g as FileIconTile,m as FolderGlyph,V as consumeFilesViewRequest,x as desktopItemTypeLabel,N as getDesktopFoldersSnapshot,P as peekFilesViewRequest,_ as publishDesktopFolders,T as requestFilesDesktopFolderView,S as requestFilesTrashView,k as subscribeDesktopFolders};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Modal as e}from"./chunk-
|
|
1
|
+
import{Modal as e}from"./chunk-SBDIHKLU.js";import{keepsNativeMenu as a}from"./chunk-ZDF5AR5W.js";import{jsx as i,jsxs as n}from"react/jsx-runtime";var t={activeOpacity:70,inactiveOpacity:50,activeBlur:0,inactiveBlur:0};function r(e){try{const a=JSON.parse(localStorage.getItem(e)||"");return null!=a.blur&&null==a.activeBlur&&(a.activeBlur=a.blur,a.inactiveBlur=a.blur,delete a.blur),{...t,...a}}catch{return t}}function l({open:t,onClose:r,title:l,appearance:c,onAppearanceChange:s,onSave:d,children:o}){if(!t)return null;const u="w-full h-1.5 rounded-full appearance-none bg-gray-200 cursor-pointer accent-blue-500",p="flex items-center justify-between text-xs text-gray-500";/* @__PURE__ */
|
|
2
2
|
return i("div",{onPointerDown:e=>e.stopPropagation(),onContextMenu:e=>{e.stopPropagation(),a(e.target)||e.preventDefault()},children:/* @__PURE__ */i(e,{open:t,onClose:r,title:l,size:"sm",children:/* @__PURE__ */n("div",{className:"space-y-4",children:[o,
|
|
3
3
|
/* @__PURE__ */n("div",{children:[
|
|
4
4
|
/* @__PURE__ */i("h3",{className:"text-sm font-semibold text-gray-700 mb-3",children:"Appearance"}),
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{useWindowMenuItem as e,Modal as t}from"./chunk-SBDIHKLU.js";import{navIcons as r}from"./chunk-DSSLOQDW.js";import{VERSION as s}from"./chunk-OD5KLVU5.js";import{InfoFallback as o,WindowFallback as n}from"./chunk-XUF7VW4U.js";import{DEFAULT_SHELL_STRINGS as i,useShellStrings as a,splitAround as m}from"./chunk-J3LIIIHJ.js";import{Icon as c}from"./chunk-YKZHOXI4.js";import{useState as l,useCallback as p,isValidElement as d,cloneElement as h}from"react";import{jsx as u,jsxs as f}from"react/jsx-runtime";var x=i.aboutApp,v={spreadsheet:{name:"Spreadsheets",version:"1.1.3",route:"/spreadsheet",description:x.spreadsheet},notepad:{name:"Notepad",version:"1.0.1",route:"/notepad",description:x.notepad},documents:{name:"Documents",version:"1.1.0",route:"/documents",description:x.documents},preview:{name:"Preview",version:"1.4.2",route:"/preview",description:x.preview},files:{name:"Files",version:"1.1.1",route:"/files",description:x.files},browser:{name:"Browser",version:"1.0.1",route:"/browser",description:x.browser}},w=/* @__PURE__ */u(c,{name:"info",fallback:o,className:"h-4 w-4 text-gray-400",strokeWidth:1.5}),g=/* @__PURE__ */u(c,{name:"window",fallback:n,className:"h-9 w-9",strokeWidth:1.5});function b({app:o}){const n=v[o],[i,c]=l(!1),x=p(()=>c(!0),[]),b=a().aboutApp,N=b.title(n.name);if(e(N,x,w),!i)return null;const y=r[n.route],k=d(y)?h(y,{className:"h-9 w-9"}):g,[j,D]=m(b.partOf);/* @__PURE__ */
|
|
2
|
+
return u(t,{open:!0,onClose:()=>c(!1),title:N,size:"sm",compact:!0,bodyScroll:!1,autoHeight:!0,dimensions:[320,320],children:/* @__PURE__ */f("div",{className:"flex flex-col items-center text-center px-5 pt-5 pb-4",children:[
|
|
3
|
+
/* @__PURE__ */u("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl bg-gray-100 text-gray-600 shrink-0",children:k}),
|
|
4
|
+
/* @__PURE__ */u("h2",{className:"mt-3 text-lg font-bold text-gray-900",children:n.name}),
|
|
5
|
+
/* @__PURE__ */u("p",{className:"text-[11px] font-mono text-gray-400",children:b.version(n.version)}),
|
|
6
|
+
/* @__PURE__ */u("p",{className:"mt-2 text-xs text-gray-500 leading-relaxed",children:b[o]}),
|
|
7
|
+
/* @__PURE__ */f("div",{className:"mt-4 pt-3 border-t border-gray-200 w-full",children:[
|
|
8
|
+
/* @__PURE__ */f("p",{className:"text-[11px] text-gray-500",children:[j,
|
|
9
|
+
/* @__PURE__ */u("span",{className:"font-medium text-gray-700",children:"efficient-shell"}),D]}),s&&/* @__PURE__ */u("p",{className:"mt-0.5 text-[10px] font-mono text-gray-400",children:b.shellVersion(s)})]})]})})}export{b as AboutApp,v as BUILTIN_APP_INFO};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var r="4.181.0",a=r;export{a as APP_VERSION,r as VERSION};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{requestFilesTrashView as n}from"./chunk-
|
|
1
|
+
import{requestFilesTrashView as n}from"./chunk-LMIQV3NB.js";var o=null;function r(n){o=n}function t(){return o}function u(){n()}export{t as getFilesDemoTree,u as openFilesInTrashMode,r as setFilesDemoTree};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{useHydrated as e,useBrowserState as t}from"./chunk-D65T4H6J.js";import{InfoFallback as r,ErrorFallback as n,CloseFallback as o,CheckFallback as i}from"./chunk-XUF7VW4U.js";import{useShellStrings as a}from"./chunk-J3LIIIHJ.js";import{Icon as s}from"./chunk-YKZHOXI4.js";import{createContext as c,useSyncExternalStore as l,useCallback as u,useContext as d,useMemo as f}from"react";import{jsxs as m,jsx as h}from"react/jsx-runtime";var w="(max-width: 767px), (pointer: coarse)";function p(){return!("undefined"==typeof window||!window.matchMedia)&&window.matchMedia(w).matches}function g(){return!1}function y(e){if("undefined"==typeof window||!window.matchMedia)return()=>{};const t=window.matchMedia(w);return t.addEventListener?(t.addEventListener("change",e),()=>t.removeEventListener("change",e)):(t.addListener(e),()=>t.removeListener(e))}function v(){return l(y,p,g)}var x={success:"success",error:"error",warning:"warning",info:"info",404:"info",403:"warning",500:"error"},b={success:"text-green-600 bg-green-100",error:"text-red-600 bg-red-100",warning:"text-amber-600 bg-amber-100",info:"text-blue-600 bg-blue-100"},_={404:e=>e.notFound,403:e=>e.noAccess,500:e=>e.serverError};function N({tone:e}){const t={className:"h-6 w-6",strokeWidth:1.5,"aria-hidden":!0};switch(e){case"success":/* @__PURE__ */
|
|
2
|
+
return h(s,{name:"check",fallback:i,...t});case"error":/* @__PURE__ */
|
|
3
|
+
return h(s,{name:"close",fallback:o,...t});case"warning":/* @__PURE__ */
|
|
4
|
+
return h(s,{name:"error",fallback:n,...t});default:/* @__PURE__ */
|
|
5
|
+
return h(s,{name:"info",fallback:r,...t})}}function S({status:e="info",title:t,subTitle:r,extra:n,icon:o,children:i,className:s=""}){const c=x[e],l=a().errors;/* @__PURE__ */
|
|
6
|
+
return m("div",{role:"error"===c?"alert":void 0,className:`flex flex-col items-center justify-center px-6 py-12 text-center ${s}`.trim(),children:[
|
|
7
|
+
/* @__PURE__ */h("div",{className:`flex h-14 w-14 items-center justify-center rounded-full ${b[c]}`,children:o??/* @__PURE__ */h(N,{tone:c})}),
|
|
8
|
+
/* @__PURE__ */h("h2",{className:"mt-4 text-lg font-semibold text-gray-900",children:t??_[e]?.(l)??""}),r&&/* @__PURE__ */h("p",{className:"mt-1 max-w-md text-sm text-gray-500",children:r}),i&&/* @__PURE__ */h("div",{className:"mt-4 w-full max-w-md text-left",children:i}),n&&/* @__PURE__ */h("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-3",children:n})]})}function C({size:e="md",padding:t="py-12",label:r,className:n=""}){const o=/* @__PURE__ */h("div",{className:`${"sm"===e?"h-5 w-5":"lg"===e?"h-12 w-12":"h-8 w-8"} animate-spin rounded-full border-2 border-gray-200 border-t-blue-600`});return null==r?/* @__PURE__ */h("div",{className:`flex items-center justify-center ${t} ${n}`,children:o}):/* @__PURE__ */m("div",{role:"status",className:`flex flex-col items-center justify-center gap-3 ${t} ${n}`,children:[o,
|
|
9
|
+
/* @__PURE__ */h("p",{className:"text-sm text-gray-500",children:r})]})}var D="undefined"!=typeof window&&"undefined"!=typeof navigator&&/Mac|iPhone|iPad/.test(navigator.platform||navigator.userAgent),E={MOD:["⌘","Ctrl"],ALT:["⌥","Alt"],CMD_ENTER:["⌘⏎","Ctrl⏎"],CMD_S:["⌘S","Ctrl+S"],CMD_K:["⌘K","Ctrl+K"],CMD_DOT:["⌘.","Ctrl+."],CMD_A:["⌘A","Ctrl+A"],CMD_Z:["⌘Z","Ctrl+Z"],CMD_SHIFT_Z:["⌘⇧Z","Ctrl+Shift+Z"],ALT_SHIFT_D:["⌥⇧D","Alt+Shift+D"],ALT_SHIFT_E:["⌥⇧E","Alt+Shift+E"],ALT_SHIFT_N:["⌥⇧N","Alt+Shift+N"]},L=D?0:1,M=E.MOD[L],T=E.ALT[L],k="⇧",A="⏎",I=E.CMD_ENTER[L],H=E.CMD_S[L],j=E.CMD_K[L],F=E.CMD_DOT[L],Z=E.CMD_A[L],O=E.CMD_Z[L],P=E.CMD_SHIFT_Z[L],$=E.ALT_SHIFT_D[L],J=E.ALT_SHIFT_E[L],K=E.ALT_SHIFT_N[L],U=new Map(D?Object.values(E).map(([e,t])=>[e,t]):[]);function z(t){return e()?t:U.get(t)??t}var R="inline-flex items-center justify-center rounded border border-gray-200 bg-gray-50 font-medium text-gray-500",W={sm:"px-1 py-0.5 text-[10px]",md:"px-1.5 py-0.5 text-[11px]"};function X({keys:e,size:t="md",className:r=""}){const n=z(e);/* @__PURE__ */
|
|
10
|
+
return h("kbd",{className:[R,W[t],r].filter(Boolean).join(" "),children:n})}var B=c(null);function V({value:e,children:t}){/* @__PURE__ */
|
|
11
|
+
return h(B.Provider,{value:e,children:t})}function Y(e="react-os-shell:prefs",r){const[n,o]=t(()=>{try{const t=JSON.parse(localStorage.getItem(e)||"{}");return{...r??{},...t}}catch{return{...r??{}}}},{...r??{}});return{prefs:n,save:u(t=>{o(r=>{const n={...r,...t};try{localStorage.setItem(e,JSON.stringify(n))}catch{}return n})},[e])}}var q={prefs:{},save:()=>{}};function G(){return d(B)??q}function Q(){const{prefs:e,save:t}=G(),r=u(e=>{const r=t(e);return r&&"function"==typeof r.then?r.catch(()=>{}):r},[t]);return f(()=>({prefs:e,save:r}),[e,r])}var ee="react-os-shell:stale-chunk-reload-at",te=3e4,re="vite:preloadError",ne="/_next/static/",oe=/Failed to fetch dynamically imported module|error loading dynamically imported module|Importing a module script failed|Unable to preload CSS/i;function ie(e){if(e instanceof Error&&"ChunkLoadError"===e.name)return!0;const t=e instanceof Error?e.message:"string"==typeof e?e:"";return oe.test(t)}function ae(e={}){if("undefined"==typeof window)return()=>{};const t=e.cooldownMs??3e4,r=e.reload??(()=>window.location.reload()),n=e.now??Date.now,o=void 0===e.storage?function(){try{const e=window.sessionStorage;return e.getItem(ee),e}catch{return null}}():e.storage,i=void 0===e.chunkPathPrefix?ne:e.chunkPathPrefix,a=e=>{const r=n(),i=function(e){if(!e)return null;try{const t=e.getItem(ee),r=null===t?NaN:Number(t);return Number.isFinite(r)?r:null}catch{return null}}(o);return null!==i&&r-i<t?(console.error("[efficient-shell] a lazy chunk is still missing after a reload; letting the failure through:",e),!1):(function(e,t){if(e)try{e.setItem(ee,String(t))}catch{}}(o,r),console.warn("[efficient-shell] a lazy chunk is no longer on the server (new deploy?); reloading onto the current build:",e),!0)},s=e=>{const t=e.payload;ie(t)&&a(t)&&(e.preventDefault(),r())};let c=!0,l=!1;const u=/* @__PURE__ */new Set,d=null===i?null:e=>{const t=function(e,t){const r=e.target;let n="";if(r instanceof window.HTMLScriptElement?n=r.src:r instanceof window.HTMLLinkElement&&function(e){const t=e.rel.toLowerCase().split(/\s+/);if(t.includes("stylesheet")||t.includes("modulepreload"))return!0;const r=(e.getAttribute("as")??"").toLowerCase();return t.includes("preload")&&("script"===r||"style"===r)}(r)?n=r.href:e instanceof window.ErrorEvent&&"SyntaxError"===e.error?.name&&(n=e.filename),!n)return null;try{const e=new URL(t,window.location.origin).href,r=new URL(n,window.location.href).href;return r.startsWith(e)?r:null}catch{return null}}(e,i);!t||l||u.has(t)||(u.add(t),async function(e){try{const t=await fetch(e,{method:"HEAD",cache:"no-store"});return 404===t.status||410===t.status||t.ok&&/\btext\/html\b/i.test(t.headers.get("content-type")??"")}catch{return!1}}(t).then(e=>{u.delete(t),e&&c&&!l&&a(t)&&(l=!0,r())}))};return window.addEventListener(re,s),d&&window.addEventListener("error",d,!0),()=>{c=!1,window.removeEventListener(re,s),d&&window.removeEventListener("error",d,!0)}}export{T as ALT,$ as ALT_SHIFT_D,J as ALT_SHIFT_E,K as ALT_SHIFT_N,Z as CMD_A,F as CMD_DOT,I as CMD_ENTER,j as CMD_K,H as CMD_S,P as CMD_SHIFT_Z,O as CMD_Z,A as ENTER,X as Kbd,C as LoadingSpinner,M as MOD,ne as NEXT_CHUNK_PATH_PREFIX,S as Result,k as SHIFT,te as STALE_CHUNK_RELOAD_COOLDOWN_MS,ee as STALE_CHUNK_RELOAD_KEY,V as ShellPrefsProvider,re as VITE_PRELOAD_ERROR_EVENT,ae as installStaleChunkReload,D as isMac,ie as isStaleChunkError,v as useIsMobile,Y as useLocalStoragePrefs,Q as useShellPrefs,G as useShellPrefsAdapter,z as useShortcutLabel};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{toast_default as e}from"./chunk-3DGTIWZP.js";import{ChevronLeftFallback as t,ChevronRightFallback as n,PrintFallback as r,DownloadFallback as a,EmailFallback as o}from"./chunk-XUF7VW4U.js";import{useShellStrings as i}from"./chunk-J3LIIIHJ.js";import{Icon as l}from"./chunk-YKZHOXI4.js";import{createContext as s,useContext as c,useRef as d,useState as u,useEffect as m}from"react";import*as h from"pdfjs-dist";import{createPortal as p}from"react-dom";import{jsx as f,jsxs as g}from"react/jsx-runtime";function w(e,t,n){return new Error(`The response for ${e} is not a WebAssembly module (got ${function(e){if(0===e.length)return"an empty response";const t=Array.from(e.subarray(0,24)).map(e=>e>=32&&e<127?String.fromCharCode(e):".").join("");return`${e.length} bytes starting "${t}"`}(n)}). The bundler did not emit "${t}" as an asset, and the host answered with a fallback page instead of a 404. Serve pdfjs-dist/wasm/ yourself and point window.__REACT_OS_SHELL_PDF_WASM__ at it.`)}var y=s(null);function b({children:e}){const t=c(y);return t?p(e,t):
|
|
2
|
+
/* @__PURE__ */f("div",{className:"flex shrink-0 flex-wrap items-center gap-1 border-b border-gray-200 bg-gray-50 px-3 py-2 text-xs",children:e})}"undefined"==typeof window||h.GlobalWorkerOptions.workerSrc||(h.GlobalWorkerOptions.workerSrc=`https://unpkg.com/pdfjs-dist@${h.version}/build/pdf.worker.min.mjs`);var v={"jbig2.wasm":new URL("pdfjs-dist/wasm/jbig2.wasm",import.meta.url).href,"openjpeg.wasm":new URL("pdfjs-dist/wasm/openjpeg.wasm",import.meta.url).href},x=class{async fetch({kind:e,filename:t}){if("wasmUrl"!==e)throw new Error(`Ensure that the \`${e}\` API parameter is provided.`);const n=v[t];if(!n)throw new Error(`No bundled pdf.js wasm module for "${t}".`);const r=await fetch(n);if(!r.ok)throw new Error(`Unable to load wasm data at: ${n}`);const a=new Uint8Array(await r.arrayBuffer());if(!function(e){return e.length>=4&&0===e[0]&&97===e[1]&&115===e[2]&&109===e[3]}(a))throw w(n,t,a);return a}};function k(e){const t=e||("undefined"!=typeof window?window.__REACT_OS_SHELL_PDF_WASM__:void 0);return"string"==typeof t&&t?{wasmUrl:t.endsWith("/")?t:`${t}/`}:{BinaryDataFactory:x}}var C=[50,75,100,125,150,200,300,400];function N(e,t,n){const r=(t.width-40)/n.width,a="page"===e?Math.min(r,(t.height-40)/n.height):r;return Math.min(Math.max(a,.3),4)}function j({url:s,filename:c,fit:p="width",onDownload:w,onEmail:y,workerSrc:v,wasmUrl:x}){const j=i().pdf,M=d(null),E=d(null),P=d(null),[W,_]=u(null),[z,D]=u(1),[L,S]=u(0),[T,$]=u(1),[O,A]=u(!0),[U,H]=u(!0),I=d(j.loadFailed);I.current=j.loadFailed,m(()=>{let t=!1;return H(!0),D(1),v&&(h.GlobalWorkerOptions.workerSrc=v),h.getDocument({url:s,...k(x)}).promise.then(e=>{t||(_(e),S(e.numPages),H(!1))}).catch(()=>{t||(e.error(I.current),H(!1))}),()=>{t=!0}},[s,v,x]),m(()=>{if(!W||!O||!P.current)return;const e=()=>{const e=P.current;e&&W.getPage(z).then(t=>{if(!P.current)return;const n=t.getViewport({scale:1}),r=N(p,{width:e.clientWidth,height:e.clientHeight},{width:n.width,height:n.height});$(e=>Math.abs(e-r)<.005?e:r)})};e();const t=new ResizeObserver(e);return t.observe(P.current),()=>t.disconnect()},[W,z,O,p]),m(()=>{if(!W||!M.current)return;let e=!1,t=null,n=null;return W.getPage(z).then(r=>{if(e||!M.current)return;const a=r.getViewport({scale:T}),o=M.current;o.width=a.width,o.height=a.height,o.style.width=`${a.width}px`,o.style.height=`${a.height}px`;const i=o.getContext("2d");t=r.render({canvas:o,canvasContext:i,viewport:a}),t.promise.catch(()=>{});const l=E.current;l&&(l.replaceChildren(),l.style.setProperty("--total-scale-factor",String(a.scale)),n=new h.TextLayer({textContentSource:r.streamTextContent(),container:l,viewport:a}),n.render().then(()=>{if(e)return;const t=document.createElement("div");t.className="endOfContent",l.append(t)}).catch(()=>{}))}),()=>{e=!0,t?.cancel(),n?.cancel()}},[W,z,T]),m(()=>{const e=()=>E.current?.classList.remove("selecting");return window.addEventListener("pointerup",e),()=>window.removeEventListener("pointerup",e)},[]);const F="page"===p?j.fitPage:j.fitWidth,R="px-2 py-1 rounded hover:bg-gray-200 transition-colors text-gray-600 flex items-center gap-1";/* @__PURE__ */
|
|
3
|
+
return g("div",{className:"flex flex-col h-full",children:[
|
|
4
|
+
/* @__PURE__ */g(b,{children:[
|
|
5
|
+
/* @__PURE__ */f("button",{type:"button","aria-label":j.previousPage,onClick:()=>D(e=>Math.max(1,e-1)),disabled:z<=1,className:"px-1 py-1 rounded hover:bg-gray-200 disabled:opacity-30 text-gray-600",children:/* @__PURE__ */f(l,{name:"chevron-left",fallback:t,className:"h-3.5 w-3.5",strokeWidth:2})}),
|
|
6
|
+
/* @__PURE__ */f("span",{className:"text-gray-600 font-medium tabular-nums whitespace-nowrap",children:j.pageOf(z,L)}),
|
|
7
|
+
/* @__PURE__ */f("button",{type:"button","aria-label":j.nextPage,onClick:()=>D(e=>Math.min(L,e+1)),disabled:z>=L,className:"px-1 py-1 rounded hover:bg-gray-200 disabled:opacity-30 text-gray-600",children:/* @__PURE__ */f(l,{name:"chevron-right",fallback:n,className:"h-3.5 w-3.5",strokeWidth:2})}),
|
|
8
|
+
/* @__PURE__ */f("div",{className:"h-4 w-px bg-gray-300 mx-1"}),
|
|
9
|
+
/* @__PURE__ */f("button",{type:"button","aria-label":j.zoomOut,title:j.zoomOut,onClick:()=>{A(!1),$(e=>Math.max(.3,Math.round(100*(e-.25))/100))},className:R,children:/* @__PURE__ */f("span",{"aria-hidden":"true",children:"−"})}),
|
|
10
|
+
/* @__PURE__ */g("select",{value:O?"fit":C.includes(Math.round(100*T))?Math.round(100*T):"custom",onChange:e=>{const t=e.target.value;"fit"!==t?"custom"!==t&&(A(!1),$(Number(t)/100)):A(!0)},className:"bg-transparent hover:bg-gray-200 rounded px-1 py-1 text-gray-600 tabular-nums cursor-pointer focus:outline-none focus:ring-1 focus:ring-blue-400","aria-label":j.zoom,title:j.zoom,children:[
|
|
11
|
+
/* @__PURE__ */f("option",{value:"fit",children:F}),!O&&!C.includes(Math.round(100*T))&&/* @__PURE__ */g("option",{value:"custom",children:[Math.round(100*T),"%"]}),C.map(e=>/* @__PURE__ */g("option",{value:e,children:[e,"%"]},e))]}),
|
|
12
|
+
/* @__PURE__ */f("button",{type:"button","aria-label":j.zoomIn,title:j.zoomIn,onClick:()=>{A(!1),$(e=>Math.min(4,Math.round(100*(e+.25))/100))},className:R,children:/* @__PURE__ */f("span",{"aria-hidden":"true",children:"+"})}),
|
|
13
|
+
/* @__PURE__ */f("button",{type:"button",onClick:()=>A(!0),"aria-pressed":O,className:R+(O?" bg-gray-200 text-gray-900":""),title:j.fitHint,children:j.fit}),
|
|
14
|
+
/* @__PURE__ */f("div",{className:"h-4 w-px bg-gray-300 mx-1"}),
|
|
15
|
+
/* @__PURE__ */g("button",{type:"button",onClick:()=>{if(!W)return;const t=window.open("","_blank");if(!t)return void e.error(j.allowPopups);const n=[];for(let e=1;e<=L;e++)n.push(W.getPage(e).then(e=>{const t=e.getViewport({scale:2}),n=document.createElement("canvas");return n.width=t.width,n.height=t.height,e.render({canvas:n,canvasContext:n.getContext("2d"),viewport:t}).promise.then(()=>n.toDataURL())}));Promise.all(n).then(e=>{var n;t.document.write(`<html><head><title>${n=c,n.replace(/[&<>"]/g,e=>({"&":"&","<":"<",">":">",'"':"""}[e]))}</title><style>@media print{body{margin:0}img{width:100%;page-break-after:always}}</style></head><body>`),t.document.write(e.map(e=>`<img src="${e}"/>`).join("")),t.document.write("</body></html>"),t.document.close(),setTimeout(()=>{t.print(),t.close()},300)})},className:R,children:[
|
|
16
|
+
/* @__PURE__ */f(l,{name:"print",fallback:r,className:"h-3.5 w-3.5",strokeWidth:1.5}),j.print]}),
|
|
17
|
+
/* @__PURE__ */g("button",{type:"button",onClick:w??(()=>{const e=document.createElement("a");e.href=s,e.download=c,e.click()}),className:R,children:[
|
|
18
|
+
/* @__PURE__ */f(l,{name:"download",fallback:a,className:"h-3.5 w-3.5",strokeWidth:1.5}),j.download]}),y&&/* @__PURE__ */g("button",{type:"button",onClick:y,className:R,children:[
|
|
19
|
+
/* @__PURE__ */f(l,{name:"email",fallback:o,className:"h-3.5 w-3.5",strokeWidth:1.5}),j.email]})]}),
|
|
20
|
+
/* @__PURE__ */f("div",{ref:P,className:"flex-1 overflow-auto bg-gray-100 outline-none",tabIndex:0,onWheel:e=>{if(!W)return;if(e.ctrlKey||e.metaKey)return;const t=P.current;if(!t)return;const n=t.scrollTop<=0,r=t.scrollTop+t.clientHeight>=t.scrollHeight-1;e.deltaY>0&&r&&z<L?(e.preventDefault(),D(e=>Math.min(L,e+1)),requestAnimationFrame(()=>{P.current&&(P.current.scrollTop=0)})):e.deltaY<0&&n&&z>1&&(e.preventDefault(),D(e=>Math.max(1,e-1)),requestAnimationFrame(()=>{P.current&&(P.current.scrollTop=P.current.scrollHeight)}))},onKeyDown:e=>{if(!W)return;const t=(document.activeElement?.tagName||"").toLowerCase();"input"===t||"textarea"===t||document.activeElement?.isContentEditable||("PageDown"===e.key||"ArrowRight"===e.key?z<L&&(e.preventDefault(),D(e=>Math.min(L,e+1))):"PageUp"===e.key||"ArrowLeft"===e.key?z>1&&(e.preventDefault(),D(e=>Math.max(1,e-1))):"Home"===e.key?(e.preventDefault(),D(1)):"End"===e.key&&(e.preventDefault(),D(L)))},children:U?/* @__PURE__ */f("div",{className:"flex items-center justify-center h-full text-gray-500 text-sm",role:"status",children:j.loading}):/* @__PURE__ */g("div",{className:"min-h-full flex items-center justify-center p-4",children:[
|
|
21
|
+
/* @__PURE__ */f("style",{children:'\n.preview-pdf-textlayer {\n position: absolute;\n inset: 0;\n overflow: clip;\n line-height: 1;\n text-align: initial;\n text-size-adjust: none;\n forced-color-adjust: none;\n transform-origin: 0 0;\n caret-color: CanvasText;\n --min-font-size: 1;\n --text-scale-factor: calc(var(--total-scale-factor, 1) * var(--min-font-size));\n --min-font-size-inv: calc(1 / var(--min-font-size));\n}\n.preview-pdf-textlayer :is(span, br) {\n color: transparent;\n position: absolute;\n white-space: pre;\n cursor: text;\n transform-origin: 0% 0%;\n}\n.preview-pdf-textlayer > :not(.markedContent),\n.preview-pdf-textlayer .markedContent span:not(.markedContent) {\n z-index: 1;\n --font-height: 0;\n font-size: calc(var(--text-scale-factor) * var(--font-height));\n --scale-x: 1;\n --rotate: 0deg;\n transform: rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv));\n}\n.preview-pdf-textlayer .markedContent {\n display: contents;\n}\n.preview-pdf-textlayer span[role="img"] {\n user-select: none;\n cursor: default;\n}\n.preview-pdf-textlayer ::selection {\n background: rgba(0, 80, 255, 0.25);\n}\n.preview-pdf-textlayer br::selection {\n background: transparent;\n}\n.preview-pdf-textlayer .endOfContent {\n display: block;\n position: absolute;\n inset: 100% 0 0;\n z-index: 0;\n cursor: default;\n user-select: none;\n}\n.preview-pdf-textlayer.selecting .endOfContent {\n top: 0;\n}\n'}),
|
|
22
|
+
/* @__PURE__ */g("div",{className:"relative shadow-lg rounded",children:[
|
|
23
|
+
/* @__PURE__ */f("canvas",{ref:M,className:"block rounded"}),
|
|
24
|
+
/* @__PURE__ */f("div",{ref:E,className:"preview-pdf-textlayer",onPointerDown:e=>e.currentTarget.classList.add("selecting")})]})]})})]})}export{b as PanelActions,j as PdfViewer,y as ToolbarSlotContext,N as fitScale,k as pdfWasmParams};
|