efficient-shell 7.28.0 → 7.29.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 (62) hide show
  1. package/dist/{Browser-CUAQCAZ2.js → Browser-5DWPCWSB.js} +14 -14
  2. package/dist/Calculator-756J7AGT.js +29 -0
  3. package/dist/ConfirmDialog-GY3PLMAD.js +1 -0
  4. package/dist/{CurrencyConverter-ZIERKELA.js → CurrencyConverter-TVIYMDYE.js} +9 -9
  5. package/dist/{Documents-GOOHQYBQ.js → Documents-ZHENRDK2.js} +4 -4
  6. package/dist/Files-YKUTWABM.js +87 -0
  7. package/dist/{Notepad-YV4JDSRK.js → Notepad-7MXZE6S4.js} +10 -10
  8. package/dist/PdfViewer-T6SP6R6J.js +1 -0
  9. package/dist/{PomodoroTimer-GYLJIAWS.js → PomodoroTimer-IUPEDDQV.js} +6 -6
  10. package/dist/{Preview-K4QOB3J2.js → Preview-6XGCKFXK.js} +23 -23
  11. package/dist/Sidebar-P3WJQSY5.js +44 -0
  12. package/dist/{Spreadsheet-7WU4NDJP.js → Spreadsheet-POFCH3DZ.js} +12 -12
  13. package/dist/{Stock-7AOF4PKL.js → Stock-MKUCNEAH.js} +6 -6
  14. package/dist/{Weather-23SUCMNL.js → Weather-6Q7DSJR4.js} +15 -15
  15. package/dist/{WorldClock-ENURKJG6.js → WorldClock-LTJJP4SS.js} +4 -4
  16. package/dist/apps/index.js +1 -1
  17. package/dist/bin/ui-check.js +1 -1
  18. package/dist/{chunk-IUBESHKK.js → chunk-2ECESCBH.js} +1 -1
  19. package/dist/{chunk-EZ73LTEI.js → chunk-2PNYIWIN.js} +1 -1
  20. package/dist/{chunk-KROUETJQ.js → chunk-4EMCPU7W.js} +18 -18
  21. package/dist/{chunk-A22D3FXG.js → chunk-BDXFODVC.js} +2 -2
  22. package/dist/chunk-BTLM7W6P.js +1 -0
  23. package/dist/{chunk-ITW5DB2J.js → chunk-C4QIJNW3.js} +12 -12
  24. package/dist/{chunk-4MSDABE3.js → chunk-DFCTQOIL.js} +1 -1
  25. package/dist/{chunk-5TFUQOEM.js → chunk-DFEO2CGF.js} +1 -1
  26. package/dist/{chunk-FHKJQU3U.js → chunk-EFYGUYEZ.js} +8 -8
  27. package/dist/{chunk-7776CT23.js → chunk-GPHWFPXA.js} +1 -1
  28. package/dist/{chunk-HCQ7SIGC.js → chunk-H3ODY2XB.js} +1 -1
  29. package/dist/{chunk-AHBO5PKR.js → chunk-IIIUHK3J.js} +8 -8
  30. package/dist/{chunk-BJN6DNDM.js → chunk-JIHKEOLY.js} +1 -1
  31. package/dist/{chunk-MQUGCJRS.js → chunk-LKFJPLTO.js} +208 -208
  32. package/dist/{chunk-QHL3LL5F.js → chunk-LU7X6LLY.js} +28 -28
  33. package/dist/{chunk-I4GL7BVS.js → chunk-OD3MT6SF.js} +2 -2
  34. package/dist/{chunk-XTAGVLZJ.js → chunk-RAFTWZF5.js} +1 -1
  35. package/dist/{chunk-QJ4YAH34.js → chunk-REZ2UWJT.js} +41 -41
  36. package/dist/{chunk-ABXVRYKR.js → chunk-T3UAIICC.js} +1 -1
  37. package/dist/chunk-V5MNUKAJ.js +1 -0
  38. package/dist/{chunk-76VZ67RK.js → chunk-X6ALQ2S6.js} +3 -3
  39. package/dist/{chunk-SUXBGACL.js → chunk-YO4FRA7Y.js} +6 -6
  40. package/dist/{chunk-EBTCC5N3.js → chunk-Z756FAL6.js} +9 -9
  41. package/dist/file-intake/index.js +1 -1
  42. package/dist/i18n/index.d.ts +1 -1
  43. package/dist/{index-HJwNWiNU.d.ts → index-CLkh3Bps.d.ts} +42 -2
  44. package/dist/index.d.ts +3 -3
  45. package/dist/index.js +56 -56
  46. package/dist/locales/zh-Hans.d.ts +1 -1
  47. package/dist/locales/zh-Hans.js +1 -1
  48. package/dist/map/index.js +7 -7
  49. package/dist/page-tabs/index.js +4 -4
  50. package/dist/pdf/index.js +1 -1
  51. package/dist/{strings-BuYlsGKG.d.ts → strings-DzmlWMRe.d.ts} +2 -0
  52. package/dist/telemetry/index.js +1 -1
  53. package/dist/ui/index.d.ts +2 -2
  54. package/dist/ui/index.js +1 -1
  55. package/package.json +1 -1
  56. package/dist/Calculator-YQS2NTUZ.js +0 -29
  57. package/dist/ConfirmDialog-YZCM3HJP.js +0 -1
  58. package/dist/Files-R4Z3BYJL.js +0 -87
  59. package/dist/PdfViewer-JLIMTMVK.js +0 -1
  60. package/dist/Sidebar-4RJEWBBN.js +0 -44
  61. package/dist/chunk-3VYANOTN.js +0 -1
  62. package/dist/chunk-KWW5PPQN.js +0 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import{wallpaperSrc as e,WALLPAPER_PREF_TOKEN as t,uploadWallpaper as r,wallpaperUploadError as n,deleteWallpaper as a,getWallpaper as o}from"./chunk-BJN6DNDM.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-QHL3LL5F.js";import{PREVIEW_OPENED_EVENT as l,openPreviewFile as i}from"./chunk-XTAGVLZJ.js";import{playNotification as s,playStartup as c,soundsEnabled as d,getSoundConfig as u,SOUND_PACK_KEYS as m,soundPackName as h,SOUND_TYPES as p,soundTypeName as g,setSoundForType as f,previewSound as b,setAllSounds as y,playLogout as x}from"./chunk-W33ZFDRR.js";import{useAuth as w,readStored as v,initialRailCollapsed as k,RAIL_COLLAPSED_KEY as N,writeStored as C}from"./chunk-S2PS4IOT.js";export{setShellAuthBridge}from"./chunk-S2PS4IOT.js";import{subscribePomo as S,getPomoSnapshot as _}from"./chunk-I4GL7BVS.js";export{setShellTodoProvider}from"./chunk-I4GL7BVS.js";import{TabStrip as E}from"./chunk-AHBO5PKR.js";export{startClientTelemetry}from"./chunk-5TFUQOEM.js";import{ROW_HEIGHTS as T,ContextMenu as M,TimeAgo as L,Spinner as P,Markdown as I,CONTROL_HEIGHTS as $,useTheme as D,resolveTheme as A,Segmented as R,resolveCorners as W,TransferProgress as j,useClickOutside as O,ListLoadError as F,Checkbox_default as z,ListFooter as B,copyToClipboard as H,firstEnabledIndex as K,FormField as U,Input_default as X,applyThemePrefs as V,selectionAt as Y,lastEnabledIndex as G,nextEnabledIndex as q,Calendar as J,matchTypeahead as Q}from"./chunk-MQUGCJRS.js";export{APP_UPDATE_POLL_MS,Accordion,AlignmentGrid,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,BORDER_WIDTHS,Banner,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,CONTROL_HEIGHTS,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CornersInput,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,Drawer,DropdownMenu,ELEVATION_LEVELS,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FONT_WEIGHTS,FilePicker_default as FilePicker,FloatingBar,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LinkPicker,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,MOTION_DURATIONS,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RADIUS_ROLES,ROW_HEIGHTS,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,SPACING_ROLES,SPACING_SCALE,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,SliderGroup,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,TYPE_SCALE,Tabs,TagInput,Text,TextLinkField,TextToolbar,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,TransferProgress,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,WidthsBar,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,assignSeriesSlots,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,columnSharesWidths,copyToClipboard,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,isSeverityTone,isSpacingStep,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceAxis,niceMax,parseHexColor,polygonPoints,radiusScale,resolveColumnShares,resolveColumnWidths,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveSeriesColorWithin,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,textToolbarRows,textToolbarWindowColumns,toKey as toDateKey,toDayMs,toISODate,toggleSeriesSlot,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme,useTransferProgress}from"./chunk-MQUGCJRS.js";export{Breadcrumbs}from"./chunk-ABXVRYKR.js";import{SidebarLayout as Z}from"./chunk-A22D3FXG.js";export{ResizeHandle,SidebarLayout}from"./chunk-A22D3FXG.js";import{navPagesProvider as ee,partitionNav as te,sanitizeRecent as re,favoritesToResults as ne,pushRecent as ae,BrandMark as oe,GlobalSearch as le,PAGE_RESULT_ENTITY as ie,parsePageResultTarget as se,IconButton_default as ce,openGlobalSearch as de}from"./chunk-FHKJQU3U.js";export{BrandMark,GlobalSearch,IconButton_default as IconButton,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"./chunk-FHKJQU3U.js";import{withSpareRow as ue,EditableGrid as me}from"./chunk-EBTCC5N3.js";export{EditableGrid}from"./chunk-EBTCC5N3.js";import{escapeHtml as he}from"./chunk-BR22X7E5.js";import{TH_ONE_LINE as pe}from"./chunk-RYBDLJJV.js";import{PLACEHOLDER_INK as ge,FILTER_ON as fe,FILTER_ON_INK as be,FILTER_OFF as ye}from"./chunk-HJQAE6SP.js";export{INPUT_BASE,INPUT_SIZES,PLACEHOLDER_INK,inputClasses}from"./chunk-HJQAE6SP.js";export{isSafeLinkHref}from"./chunk-PJPK2ADX.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-IUBESHKK.js";import{publishDesktopFolders as xe,requestFilesTrashView as we,FolderGlyph as ve,requestFilesDesktopFolderView as ke,FileIconTile as Ne}from"./chunk-Y6UUDJNU.js";import{setPdfPreview as Ce}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as Se,requestWindowFront as _e,useWindowManager as Ee,WINDOW_REGISTRY as Te,isPageEntry as Me,Modal as Le,setPerfCollecting as Pe,drainPerfEvents as Ie,forgetMaximizedWindowBoxes as $e,markMenuOpen as De,setShellHomeRoute as Ae,useCurrentTabKey as Re,ModalActions as We,useModalActive as je,LoadingSpinner as Oe,useEnclosingModalId as Fe,isShellApiClientConfigured as ze,client_default as Be,KEY_ACTIVATED_SELECTOR as He,isDraftEntityId as Ke,activateWindowById as Ue,CancelButton as Xe,setWindowPosition as Ve,isDraftEntityWindow as Ye,subscribeWindowChrome as Ge,getWindowChromeVersion as qe,isTabWindow as Je,readWindowChrome as Qe,isEntityEntry as Ze}from"./chunk-QJ4YAH34.js";export{CancelButton,DocFavStar,EntityWindowFallback,EntityWindowLoading,EntityWindowState,MODAL_SUBMIT_SELECTOR,Modal,ModalActions,UndoControls,UndoProvider,WindowCrashedFallback,WindowErrorBoundary,WindowManagerProvider,WindowTitle,activateWindowById,beginWindowGesture,commitExposeHighlight,exitExposeMode,getActiveWindowRoute,getExposeHighlight,getWindowPosition,isEntityEntry,isPageEntry,markMenuOpen,requestWindowFront,setExposeHighlight,setShellApiClient,setShellWindowRegistry,setWindowDefaultPosition,setWindowPosition,splitTitle,subscribeExposeHighlight,toggleExposeMode,useCurrentTabKey,useEnclosingModalId,useIsActiveWindow,useModalActive,usePageSearch,useUndo,useUndoCanEdit,useUndoable,useUndoableState,useWidgetSettings,useWindowDirty,useWindowManager,useWindowMenuItem,useWindowTitle}from"./chunk-QJ4YAH34.js";import{startMenuCategories as et,navSections as tt,navIcons as rt,sectionIcons as nt,RAIL_COLLAPSED_W as at,RAIL_W as ot,WORK_AREA_CHANGED_EVENT as lt,useShellAuth as it,TAB_STRIP_H as st}from"./chunk-DSSLOQDW.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-DSSLOQDW.js";export{CopyButton}from"./chunk-HCQ7SIGC.js";import{toast_default as ct}from"./chunk-3VYANOTN.js";export{toast_default as toast}from"./chunk-3VYANOTN.js";import{CMD_K as dt,CMD_DOT as ut,SHIFT as mt,MOD as ht,ENTER as pt,CMD_A as gt,ALT_SHIFT_N as ft,ALT_SHIFT_E as bt,CMD_ENTER as yt,CMD_S as xt,ALT_SHIFT_D as wt,CMD_Z as vt,CMD_SHIFT_Z as kt,useShellPrefs as Nt,useIsMobile as Ct,useIsPhone as St,useShellPrefsAdapter as _t}from"./chunk-SUXBGACL.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"./chunk-SUXBGACL.js";import{navVisible as Et,isSection as Tt,isReachable as Mt,visibleChildren as Lt}from"./chunk-5A7MWTXX.js";import{LoadingSpinner as Pt}from"./chunk-NVFKXL52.js";export{LoadingSpinner}from"./chunk-NVFKXL52.js";import{Button_default as It}from"./chunk-XZXMVACA.js";export{Button_default as Button}from"./chunk-XZXMVACA.js";export{MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,popupBounds,useDropdownPosition}from"./chunk-WOZ36LPR.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"./chunk-KROUETJQ.js";import{PopupMenuDivider as $t,PopupMenu as Dt,PopupMenuLabel as At,PopupMenuItem as Rt,resolveMenuLevels as Wt,keepsNativeMenu as jt,leavesContextMenuAlone as Ot,describeContextTarget as Ft,MenuIcon as zt,openMenuLevel as Bt,closeMenuBelow as Ht,clampMenuTop as Kt,menuPanelLeft as Ut}from"./chunk-GNW45MGV.js";export{NATIVE_MENU_ATTR,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-GNW45MGV.js";import{useDismissPopupsOnOpen as Xt}from"./chunk-UVBK6YSR.js";import{GLASS_INPUT_BG as Vt,glassStyle as Yt}from"./chunk-7IQ3B77H.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle,solidSurfaceStyle}from"./chunk-7IQ3B77H.js";import{Z_LAYERS as Gt,registerModalEscapeInterceptor as qt,onOverlayOpen as Jt}from"./chunk-FIEA5CGB.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"./chunk-FIEA5CGB.js";export{buttonClasses,iconButtonClasses}from"./chunk-K7PQXJO7.js";import{useBrowserState as Qt}from"./chunk-D65T4H6J.js";import{APP_VERSION as Zt,VERSION as er}from"./chunk-KWW5PPQN.js";export{VERSION}from"./chunk-KWW5PPQN.js";import"./chunk-KNUR2UEG.js";import{useFileIntake as tr,FileIntakeAlert as rr}from"./chunk-4MSDABE3.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-4MSDABE3.js";import{useShellStrings as nr,useShellLocale as ar}from"./chunk-EZ73LTEI.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-EZ73LTEI.js";import{formatGrouped as or}from"./chunk-C3QOHMR6.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"./chunk-AP2QEJXQ.js";import{formatDate as lr,timeAgo as ir}from"./chunk-W32SKK3D.js";export{DATE_FORMAT_OPTIONS,EMPTY_VALUE,TZ_AUTO,currencyDecimals,currencySymbol,firstDayOfWeek,formatBytes,formatDate,formatDateTime,formatMoney,formatTime,getUserDateFormat,getUserTimezone,setCurrencyFormats,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile,timeAgo}from"./chunk-W32SKK3D.js";export{ICON_NAMES,isIconName}from"./chunk-D47VEYIW.js";import{Icon as sr,subscribeIcons as cr,iconsVersion as dr,iconSets as ur,activeIconSet as mr}from"./chunk-B427NVDP.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-B427NVDP.js";import{createContext as hr,lazy as pr,useSyncExternalStore as gr,useState as fr,useEffect as br,useRef as yr,useCallback as xr,useLayoutEffect as wr,useMemo as vr,useContext as kr,isValidElement as Nr,cloneElement as Cr,Suspense as Sr,useId as _r}from"react";import{Dialog as Er,DialogBackdrop as Tr,DialogPanel as Mr}from"@headlessui/react";import{jsxs as Lr,jsx as Pr,Fragment as Ir}from"react/jsx-runtime";import{createPortal as $r}from"react-dom";import{useQueryClient as Dr,useQuery as Ar,useInfiniteQuery as Rr,QueryClientContext as Wr,QueryClient as jr}from"@tanstack/react-query";import"react-router-dom";function Or(...e){return Object.assign({},...e)}function Fr(e){let t=null,r=0;const n=/* @__PURE__ */new Set,a=()=>{n.forEach(e=>e())};return{windowKey:e,set(n,o){if(null===n)return t=null,Se(e),void a();t={...n,nav:++r},a(),!1!==o?.raise&&_e(e)},get:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function zr(e){return gr(e.subscribe,e.get,e.get)}var Br=[{title:"Global",shortcuts:[{keys:dt,description:"Search"},{keys:ut,description:"Start menu, or collapse the sidebar"},{keys:"Ctrl F11",description:"Toggle fullscreen"},{keys:"ESC",description:"Exit fullscreen (when no windows open)"},{keys:"?",description:"Show keyboard shortcuts"}]},{title:"Windows (title bar focused)",shortcuts:[{keys:"←↑→↓",description:"Move window"},{keys:`${mt} Arrows`,description:"Resize window"},{keys:`${ht} ←/→`,description:"Snap to left / right half"},{keys:`${ht} ↑`,description:"Maximize"},{keys:`${ht} ↓`,description:"Restore / minimize"},{keys:pt,description:"Toggle maximize"}]},{title:"Lists",shortcuts:[{keys:"J / ↓",description:"Next row"},{keys:"K / ↑",description:"Previous row"},{keys:"⏎",description:"Open selected row"},{keys:"⇧J / ⇧K",description:"Move and select"},{keys:"⇧ Click",description:"Range select"},{keys:"Space",description:"Toggle row checkbox"},{keys:gt,description:"Select / deselect all"},{keys:ft,description:"Create new item"},{keys:bt,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:yt,description:"Submit"},{keys:xt,description:"Save"},{keys:wt,description:"Save as new (duplicate)"},{keys:vt,description:"Undo the last change to the form"},{keys:kt,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function Hr(){const[e,t]=fr(!1);return br(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),br(()=>{const e=e=>{if("?"===e.key&&!e.metaKey&&!e.ctrlKey&&!e.altKey){const r=e.target?.tagName;if("INPUT"===r||"TEXTAREA"===r||"SELECT"===r)return;if(e.target?.isContentEditable)return;e.preventDefault(),t(e=>!e)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),Xt(e),/* @__PURE__ */Lr(Er,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:Gt.overlay},children:[
2
+ import{wallpaperSrc as e,WALLPAPER_PREF_TOKEN as t,uploadWallpaper as r,wallpaperUploadError as n,deleteWallpaper as a,getWallpaper as o}from"./chunk-JIHKEOLY.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-LU7X6LLY.js";import{PREVIEW_OPENED_EVENT as l,openPreviewFile as i}from"./chunk-RAFTWZF5.js";import{playNotification as s,playStartup as c,soundsEnabled as d,getSoundConfig as u,SOUND_PACK_KEYS as m,soundPackName as h,SOUND_TYPES as p,soundTypeName as g,setSoundForType as f,previewSound as b,setAllSounds as y,playLogout as x}from"./chunk-W33ZFDRR.js";import{useAuth as w,readStored as v,initialRailCollapsed as k,RAIL_COLLAPSED_KEY as N,writeStored as C}from"./chunk-S2PS4IOT.js";export{setShellAuthBridge}from"./chunk-S2PS4IOT.js";import{subscribePomo as S,getPomoSnapshot as _}from"./chunk-OD3MT6SF.js";export{setShellTodoProvider}from"./chunk-OD3MT6SF.js";import{TabStrip as E}from"./chunk-IIIUHK3J.js";export{startClientTelemetry}from"./chunk-DFEO2CGF.js";import{ROW_HEIGHTS as T,ContextMenu as M,TimeAgo as L,Spinner as P,Markdown as I,CONTROL_HEIGHTS as $,useTheme as D,resolveTheme as A,Segmented as R,resolveCorners as W,TransferProgress as j,useClickOutside as F,ListLoadError as O,Checkbox_default as z,ListFooter as B,copyToClipboard as H,firstEnabledIndex as U,FormField as K,Input_default as X,applyThemePrefs as V,selectionAt as Y,lastEnabledIndex as G,nextEnabledIndex as q,Calendar as J,matchTypeahead as Q}from"./chunk-LKFJPLTO.js";export{APP_UPDATE_POLL_MS,Accordion,AlignmentGrid,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,BORDER_WIDTHS,Banner,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,CONTROL_HEIGHTS,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CornersInput,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,Drawer,DropdownMenu,ELEVATION_LEVELS,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FONT_WEIGHTS,FilePicker_default as FilePicker,FloatingBar,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LinkPicker,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,MOTION_DURATIONS,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RADIUS_ROLES,ROW_HEIGHTS,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,SPACING_ROLES,SPACING_SCALE,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,SliderGroup,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,TYPE_SCALE,Tabs,TagInput,Text,TextLinkField,TextToolbar,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,TransferProgress,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,WidthsBar,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,assignSeriesSlots,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,columnSharesWidths,copyToClipboard,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,isSeverityTone,isSpacingStep,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceAxis,niceMax,parseHexColor,polygonPoints,radiusScale,resolveColumnShares,resolveColumnWidths,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveSeriesColorWithin,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,textToolbarRows,textToolbarWindowColumns,toKey as toDateKey,toDayMs,toISODate,toggleSeriesSlot,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme,useTransferProgress}from"./chunk-LKFJPLTO.js";export{Breadcrumbs}from"./chunk-T3UAIICC.js";import{SidebarLayout as Z}from"./chunk-BDXFODVC.js";export{ResizeHandle,SidebarLayout}from"./chunk-BDXFODVC.js";import{navPagesProvider as ee,partitionNav as te,sanitizeRecent as re,favoritesToResults as ne,pushRecent as ae,BrandMark as oe,GlobalSearch as le,PAGE_RESULT_ENTITY as ie,parsePageResultTarget as se,IconButton_default as ce,openGlobalSearch as de}from"./chunk-EFYGUYEZ.js";export{BrandMark,GlobalSearch,IconButton_default as IconButton,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"./chunk-EFYGUYEZ.js";import{withSpareRow as ue,EditableGrid as me}from"./chunk-Z756FAL6.js";export{EditableGrid}from"./chunk-Z756FAL6.js";import{escapeHtml as he}from"./chunk-BR22X7E5.js";import{TH_ONE_LINE as pe}from"./chunk-RYBDLJJV.js";import{PLACEHOLDER_INK as ge,FILTER_ON as fe,FILTER_ON_INK as be,FILTER_OFF as ye}from"./chunk-HJQAE6SP.js";export{INPUT_BASE,INPUT_SIZES,PLACEHOLDER_INK,inputClasses}from"./chunk-HJQAE6SP.js";export{isSafeLinkHref}from"./chunk-PJPK2ADX.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-2ECESCBH.js";import{publishDesktopFolders as xe,requestFilesTrashView as we,FolderGlyph as ve,requestFilesDesktopFolderView as ke,FileIconTile as Ne}from"./chunk-Y6UUDJNU.js";import{setPdfPreview as Ce}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as Se,requestWindowFront as _e,useWindowManager as Ee,WINDOW_REGISTRY as Te,isPageEntry as Me,Modal as Le,setPerfCollecting as Pe,drainPerfEvents as Ie,forgetMaximizedWindowBoxes as $e,markMenuOpen as De,setShellHomeRoute as Ae,useCurrentTabKey as Re,ModalActions as We,useModalActive as je,LoadingSpinner as Fe,useEnclosingModalId as Oe,isShellApiClientConfigured as ze,client_default as Be,KEY_ACTIVATED_SELECTOR as He,isDraftEntityId as Ue,activateWindowById as Ke,CancelButton as Xe,setWindowPosition as Ve,isDraftEntityWindow as Ye,subscribeWindowChrome as Ge,getWindowChromeVersion as qe,isTabWindow as Je,readWindowChrome as Qe,isEntityEntry as Ze}from"./chunk-REZ2UWJT.js";export{CancelButton,DocFavStar,EntityWindowFallback,EntityWindowLoading,EntityWindowState,MODAL_SUBMIT_SELECTOR,Modal,ModalActions,UndoControls,UndoProvider,WindowCrashedFallback,WindowErrorBoundary,WindowManagerProvider,WindowTitle,activateWindowById,beginWindowGesture,commitExposeHighlight,exitExposeMode,getActiveWindowRoute,getExposeHighlight,getWindowPosition,isEntityEntry,isPageEntry,markMenuOpen,requestWindowFront,setExposeHighlight,setShellApiClient,setShellWindowRegistry,setWindowDefaultPosition,setWindowPosition,splitTitle,subscribeExposeHighlight,toggleExposeMode,useCurrentTabKey,useEnclosingModalId,useIsActiveWindow,useModalActive,usePageSearch,useUndo,useUndoCanEdit,useUndoable,useUndoableState,useWidgetSettings,useWindowDirty,useWindowManager,useWindowMenuItem,useWindowTitle}from"./chunk-REZ2UWJT.js";import{startMenuCategories as et,navSections as tt,navIcons as rt,sectionIcons as nt,RAIL_COLLAPSED_W as at,RAIL_W as ot,WORK_AREA_CHANGED_EVENT as lt,useShellAuth as it,TAB_STRIP_H as st}from"./chunk-DSSLOQDW.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-DSSLOQDW.js";export{CopyButton}from"./chunk-H3ODY2XB.js";import{toast_default as ct}from"./chunk-BTLM7W6P.js";export{UNDOABLE_MS,toast_default as toast}from"./chunk-BTLM7W6P.js";import{CMD_K as dt,CMD_DOT as ut,SHIFT as mt,MOD as ht,ENTER as pt,CMD_A as gt,ALT_SHIFT_N as ft,ALT_SHIFT_E as bt,CMD_ENTER as yt,CMD_S as xt,ALT_SHIFT_D as wt,CMD_Z as vt,CMD_SHIFT_Z as kt,useShellPrefs as Nt,useIsMobile as Ct,useIsPhone as St,useShellPrefsAdapter as _t}from"./chunk-YO4FRA7Y.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"./chunk-YO4FRA7Y.js";import{navVisible as Et,isSection as Tt,isReachable as Mt,visibleChildren as Lt}from"./chunk-5A7MWTXX.js";import{LoadingSpinner as Pt}from"./chunk-NVFKXL52.js";export{LoadingSpinner}from"./chunk-NVFKXL52.js";import{Button_default as It}from"./chunk-XZXMVACA.js";export{Button_default as Button}from"./chunk-XZXMVACA.js";export{MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,popupBounds,useDropdownPosition}from"./chunk-WOZ36LPR.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"./chunk-4EMCPU7W.js";import{PopupMenuDivider as $t,PopupMenu as Dt,PopupMenuLabel as At,PopupMenuItem as Rt,resolveMenuLevels as Wt,keepsNativeMenu as jt,leavesContextMenuAlone as Ft,describeContextTarget as Ot,MenuIcon as zt,openMenuLevel as Bt,closeMenuBelow as Ht,clampMenuTop as Ut,menuPanelLeft as Kt}from"./chunk-GNW45MGV.js";export{NATIVE_MENU_ATTR,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-GNW45MGV.js";import{useDismissPopupsOnOpen as Xt}from"./chunk-UVBK6YSR.js";import{GLASS_INPUT_BG as Vt,glassStyle as Yt}from"./chunk-7IQ3B77H.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle,solidSurfaceStyle}from"./chunk-7IQ3B77H.js";import{Z_LAYERS as Gt,registerModalEscapeInterceptor as qt,onOverlayOpen as Jt}from"./chunk-FIEA5CGB.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"./chunk-FIEA5CGB.js";export{buttonClasses,iconButtonClasses}from"./chunk-K7PQXJO7.js";import{useBrowserState as Qt}from"./chunk-D65T4H6J.js";import{APP_VERSION as Zt,VERSION as er}from"./chunk-V5MNUKAJ.js";export{VERSION}from"./chunk-V5MNUKAJ.js";import"./chunk-KNUR2UEG.js";import{useFileIntake as tr,FileIntakeAlert as rr}from"./chunk-DFCTQOIL.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-DFCTQOIL.js";import{useShellStrings as nr,useShellLocale as ar}from"./chunk-2PNYIWIN.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-2PNYIWIN.js";import{formatGrouped as or}from"./chunk-C3QOHMR6.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"./chunk-AP2QEJXQ.js";import{formatDate as lr,timeAgo as ir}from"./chunk-W32SKK3D.js";export{DATE_FORMAT_OPTIONS,EMPTY_VALUE,TZ_AUTO,currencyDecimals,currencySymbol,firstDayOfWeek,formatBytes,formatDate,formatDateTime,formatMoney,formatTime,getUserDateFormat,getUserTimezone,setCurrencyFormats,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile,timeAgo}from"./chunk-W32SKK3D.js";export{ICON_NAMES,isIconName}from"./chunk-D47VEYIW.js";import{Icon as sr,subscribeIcons as cr,iconsVersion as dr,iconSets as ur,activeIconSet as mr}from"./chunk-B427NVDP.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-B427NVDP.js";import{createContext as hr,lazy as pr,useSyncExternalStore as gr,useState as fr,useEffect as br,useRef as yr,useCallback as xr,useLayoutEffect as wr,useMemo as vr,useContext as kr,isValidElement as Nr,cloneElement as Cr,Suspense as Sr,useId as _r}from"react";import{Dialog as Er,DialogBackdrop as Tr,DialogPanel as Mr}from"@headlessui/react";import{jsxs as Lr,jsx as Pr,Fragment as Ir}from"react/jsx-runtime";import{createPortal as $r}from"react-dom";import{useQueryClient as Dr,useQuery as Ar,useInfiniteQuery as Rr,QueryClientContext as Wr,QueryClient as jr}from"@tanstack/react-query";import"react-router-dom";function Fr(...e){return Object.assign({},...e)}function Or(e){let t=null,r=0;const n=/* @__PURE__ */new Set,a=()=>{n.forEach(e=>e())};return{windowKey:e,set(n,o){if(null===n)return t=null,Se(e),void a();t={...n,nav:++r},a(),!1!==o?.raise&&_e(e)},get:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function zr(e){return gr(e.subscribe,e.get,e.get)}var Br=[{title:"Global",shortcuts:[{keys:dt,description:"Search"},{keys:ut,description:"Start menu, or collapse the sidebar"},{keys:"Ctrl F11",description:"Toggle fullscreen"},{keys:"ESC",description:"Exit fullscreen (when no windows open)"},{keys:"?",description:"Show keyboard shortcuts"}]},{title:"Windows (title bar focused)",shortcuts:[{keys:"←↑→↓",description:"Move window"},{keys:`${mt} Arrows`,description:"Resize window"},{keys:`${ht} ←/→`,description:"Snap to left / right half"},{keys:`${ht} ↑`,description:"Maximize"},{keys:`${ht} ↓`,description:"Restore / minimize"},{keys:pt,description:"Toggle maximize"}]},{title:"Lists",shortcuts:[{keys:"J / ↓",description:"Next row"},{keys:"K / ↑",description:"Previous row"},{keys:"⏎",description:"Open selected row"},{keys:"⇧J / ⇧K",description:"Move and select"},{keys:"⇧ Click",description:"Range select"},{keys:"Space",description:"Toggle row checkbox"},{keys:gt,description:"Select / deselect all"},{keys:ft,description:"Create new item"},{keys:bt,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:yt,description:"Submit"},{keys:xt,description:"Save"},{keys:wt,description:"Save as new (duplicate)"},{keys:vt,description:"Undo the last change to the form"},{keys:kt,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function Hr(){const[e,t]=fr(!1);return br(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),br(()=>{const e=e=>{if("?"===e.key&&!e.metaKey&&!e.ctrlKey&&!e.altKey){const r=e.target?.tagName;if("INPUT"===r||"TEXTAREA"===r||"SELECT"===r)return;if(e.target?.isContentEditable)return;e.preventDefault(),t(e=>!e)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),Xt(e),/* @__PURE__ */Lr(Er,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:Gt.overlay},children:[
3
3
  /* @__PURE__ */Pr(Tr,{className:"fixed inset-0 bg-black/30 transition-opacity"}),
4
4
  /* @__PURE__ */Pr("div",{className:"fixed inset-0 flex items-center justify-center p-6",children:/* @__PURE__ */Lr(Mr,{className:"w-full max-w-md rounded-lg bg-white shadow-xl",children:[
5
5
  /* @__PURE__ */Lr("div",{className:"flex items-center justify-between px-5 pt-5 pb-3 border-b border-gray-200",children:[
@@ -11,11 +11,11 @@ import{wallpaperSrc as e,WALLPAPER_PREF_TOKEN as t,uploadWallpaper as r,wallpape
11
11
  /* @__PURE__ */Pr("span",{className:"text-sm text-gray-700",children:e.description}),
12
12
  /* @__PURE__ */Pr("kbd",{className:"inline-flex items-center rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-xs font-medium text-gray-600 font-mono",children:e.keys})]},e.keys+e.description))})]},e.title))}),
13
13
  /* @__PURE__ */Pr("div",{className:"px-5 py-3 border-t border-gray-100 text-center",children:/* @__PURE__ */Lr("span",{className:"text-xs text-gray-400",children:["Press ",
14
- /* @__PURE__ */Pr("kbd",{className:"rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-2xs font-medium text-gray-500",children:"?"})," to toggle"]})})]})})]})}var Kr="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m0 0H5.625",Ur="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25",Xr="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18",Vr="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3",Yr="M16.023 9.348h4.992V4.356m-4.993 4.992l3.181-3.183a8.25 8.25 0 00-13.803 3.7M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7",Gr="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244";function qr({disabled:e}={}){const[t,r]=fr(null);if(br(()=>{if(e)return;const t=e=>{if(Ot(e))return;const t=("function"==typeof e.composedPath?e.composedPath()[0]:void 0)??e.target;e.preventDefault();const n=Y(t);r({x:e.clientX,y:e.clientY,owner:t instanceof Element?t:null,target:Ft(t,n?.text),selected:n})};return document.addEventListener("contextmenu",t),()=>{document.removeEventListener("contextmenu",t)}},[e]),!t)return null;const{linkUrl:n}=t.target,{selected:a}=t,o=()=>r(null),l=e=>()=>{e(),o()},i=[];return a&&i.push([
14
+ /* @__PURE__ */Pr("kbd",{className:"rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-2xs font-medium text-gray-500",children:"?"})," to toggle"]})})]})})]})}var Ur="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m0 0H5.625",Kr="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25",Xr="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18",Vr="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3",Yr="M16.023 9.348h4.992V4.356m-4.993 4.992l3.181-3.183a8.25 8.25 0 00-13.803 3.7M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7",Gr="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244";function qr({disabled:e}={}){const[t,r]=fr(null);if(br(()=>{if(e)return;const t=e=>{if(Ft(e))return;const t=("function"==typeof e.composedPath?e.composedPath()[0]:void 0)??e.target;e.preventDefault();const n=Y(t);r({x:e.clientX,y:e.clientY,owner:t instanceof Element?t:null,target:Ot(t,n?.text),selected:n})};return document.addEventListener("contextmenu",t),()=>{document.removeEventListener("contextmenu",t)}},[e]),!t)return null;const{linkUrl:n}=t.target,{selected:a}=t,o=()=>r(null),l=e=>()=>{e(),o()},i=[];return a&&i.push([
15
15
  /* @__PURE__ */Lr(Rt,{onClick:l(()=>{H("Text",a.text,a.html)}),children:[
16
- /* @__PURE__ */Pr(zt,{d:Kr}),"Copy"]},"copy")]),n&&i.push([
16
+ /* @__PURE__ */Pr(zt,{d:Ur}),"Copy"]},"copy")]),n&&i.push([
17
17
  /* @__PURE__ */Lr(Rt,{onClick:l(()=>{return e=n,void window.open(e,"_blank","noopener,noreferrer");var e}),children:[
18
- /* @__PURE__ */Pr(zt,{d:Ur}),"Open link in new tab"]},"open-link"),
18
+ /* @__PURE__ */Pr(zt,{d:Kr}),"Open link in new tab"]},"open-link"),
19
19
  /* @__PURE__ */Lr(Rt,{onClick:l(()=>{H("Link address",n)}),children:[
20
20
  /* @__PURE__ */Pr(zt,{d:Gr}),"Copy link address"]},"copy-link")]),i.push([
21
21
  /* @__PURE__ */Lr(Rt,{onClick:l(()=>window.history.back()),children:[
@@ -73,7 +73,7 @@ return Lr("button",{onClick:()=>m(e),title:n?`Remove ${t} from desktop`:`Add ${t
73
73
  /* @__PURE__ */Pr("span",{className:"shrink-0 inline-flex items-center justify-center h-6 w-6 rounded-full border transition-colors "+(n?"border-blue-500 bg-blue-500 text-white group-hover:border-red-400 group-hover:bg-red-400":"border-gray-300 text-gray-400 group-hover:border-blue-400 group-hover:text-blue-500"),children:n?/* @__PURE__ */Lr(Ir,{children:[
74
74
  /* @__PURE__ */Pr(sr,{name:"check",className:"h-3.5 w-3.5 group-hover:hidden",strokeWidth:3}),
75
75
  /* @__PURE__ */Pr(sr,{name:"close",className:"h-3.5 w-3.5 hidden group-hover:block",strokeWidth:3})]}):/* @__PURE__ */Pr(sr,{name:"add",className:"h-3.5 w-3.5",strokeWidth:3})})]},e)})})}),
76
- /* @__PURE__ */Pr("p",{className:"shrink-0 pt-3 mt-1 border-t border-gray-100 text-2xs text-gray-400 leading-relaxed",children:"Drag a widget anywhere on the desktop to reposition it. Right-click a widget for its appearance settings."})]})})}var on=50,ln=20,sn={kind:"cpu",label:"CPU-bound (JavaScript)",detail:"The main thread is blocked. Rendering settings will not help — this is script or data work."};function cn(e){if(e.length<2)return{fps:0,frameMs:0,worstMs:0};let t=0;for(let r=1;r<e.length;r++){const n=e[r]-e[r-1];n>t&&(t=n)}const r=e[e.length-1]-e[0];if(r<=0)return{fps:0,frameMs:0,worstMs:0};const n=e.length-1;return{fps:n/r*1e3,frameMs:r/n,worstMs:t}}function dn(e){const{fps:t,blockedPct:r}=e,n=null!==r&&r>=20;return!Number.isFinite(t)||t<=0?n?sn:{kind:"unknown",label:"Measuring",detail:"Collecting frame timings."}:t>=50?{kind:"smooth",label:"Smooth",detail:"Frames are landing on time. No rendering bottleneck here."}:null===r?{kind:"unknown",label:"Janky — cause unknown",detail:"This browser reports no long-task timing, so GPU and JS cannot be told apart. Try Chrome or Edge."}:n?sn:{kind:"gpu",label:"GPU-bound (compositing)",detail:"Frames are late while the main thread sits idle. Try Preferences → Customization → Reduce transparency."}}var un=[{kind:"submenu",test:e=>e.submenus>0},{kind:"menu",test:e=>e.menus>0},{kind:"resize",test:e=>e.resizeMs>0},{kind:"move",test:e=>e.moveMs>0},{kind:"scroll",test:e=>e.scrolls>0},{kind:"type",test:e=>e.keys>0},{kind:"click",test:e=>e.clicks>0||e.dragMs>0}];function mn(e){return un.find(t=>t.test(e))?.kind??"idle"}var hn=2400,pn=4,gn=2;function fn(e,t,r=2400){const n=e.length>=r?e.slice(e.length-r+1):e.slice();return n.push(t),n}function bn(e){return"idle"!==mn(e)}function yn(e){if(!e.length)return 0;const t=e.slice().sort((e,t)=>e-t),r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function xn(e){const t=e.filter(e=>e.fps>0);return{samples:e.length,medianFps:yn(t.map(e=>e.fps)),worstMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),stalls:e.length-t.length}}function wn(e,t){const r=/* @__PURE__ */new Map;for(const n of e){const e=t(n);if(null===e)continue;const a=r.get(e);a?a.push(n):r.set(e,[n])}return r}function vn(e){return e.sort((e,t)=>e.medianFps-t.medianFps)}function kn(e){const t={samples:0,durationMs:0,medianFps:0,worstFrameMs:0,verdictShare:{smooth:0,gpu:0,cpu:0,unknown:0},interacting:null,idle:null,byActivity:[],byWindowCount:[],worstWindows:[],worstMenus:[]};if(!e.length)return t;const r={...t.verdictShare};for(const t of e)r[t.verdict]+=1/e.length;const n=e.filter(bn),a=e.filter(e=>!bn(e));return{samples:e.length,durationMs:e[e.length-1].t-e[0].t,medianFps:yn(e.filter(e=>e.fps>0).map(e=>e.fps)),worstFrameMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),verdictShare:r,interacting:n.length>=4?xn(n):null,idle:a.length>=4?xn(a):null,byActivity:vn([...wn(e,mn).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({kind:e,...xn(t)}))),byWindowCount:[...wn(e,e=>e.windows).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({windows:e,...xn(t)})).sort((e,t)=>e.windows-t.windows),worstWindows:vn([...wn(e,e=>e.active).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({key:e,...xn(t)}))),worstMenus:vn([...wn(e,e=>e.menuKey).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({key:e,...xn(t)})))}}var Nn=["t","fps","frameMs","worstMs","blockedPct","heapMB","verdict","windows","active","clicks","keys","scrolls","dragMs","menus","submenus","menuKey","moveMs","resizeMs"];function Cn(e){return[Nn.join(","),...e.map(e=>Nn.map(t=>(e=>{if(null==e)return"";const t=String("number"==typeof e?Math.round(10*e)/10:e);return/[",\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t})(e[t])).join(","))].join("\n")}function Sn(e){if(!e?.length)return null;const t=e.filter(e=>!/not[^a-z]*a[^a-z]*brand/i.test(e.brand)),r=t.find(e=>"Chromium"!==e.brand)??t[0];return r?`${r.brand} ${r.version}`:null}function _n(e){return"string"==typeof e&&e?e:null}async function En(){return{hints:await Tn(),battery:await Mn()}}async function Tn(){const e=navigator.userAgentData;if(!e)return null;const t={platform:e.platform??null,platformVersion:null,architecture:null,model:null,browser:Sn(e.brands)};if(!e.getHighEntropyValues)return t;try{const r=await e.getHighEntropyValues(["platform","platformVersion","architecture","model","fullVersionList"]),n=r.fullVersionList;return{platform:_n(r.platform)??t.platform,platformVersion:_n(r.platformVersion),architecture:_n(r.architecture),model:_n(r.model),browser:Sn(n)??t.browser}}catch{return t}}async function Mn(){const e=navigator.getBattery;if(!e)return null;try{const t=await e.call(navigator);return{charging:t.charging,level:t.level}}catch{return null}}function Ln(e){try{return window.matchMedia(e).matches}catch{return!1}}function Pn(e){const t=navigator,r=performance.memory,n=e?.hints??null,a=function(){if("undefined"==typeof document)return{renderer:null,vendor:null,available:!1};try{const e=document.createElement("canvas").getContext("webgl");if(!e)return{renderer:null,vendor:null,available:!1};const t=e.getExtension("WEBGL_debug_renderer_info"),r=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),n=t?e.getParameter(t.UNMASKED_VENDOR_WEBGL):e.getParameter(e.VENDOR);return e.getExtension("WEBGL_lose_context")?.loseContext(),{renderer:_n(r),vendor:_n(n),available:!0}}catch{return{renderer:null,vendor:null,available:!1}}}(),o=t.connection;return{userAgent:t.userAgent,browser:n?.browser??null,platform:n?.platform??null,platformVersion:n?.platformVersion??null,architecture:n?.architecture??null,model:n?.model??null,cpuCores:"number"==typeof t.hardwareConcurrency?t.hardwareConcurrency:null,deviceMemoryGB:"number"==typeof t.deviceMemory?t.deviceMemory:null,gpu:a.renderer,gpuVendor:a.vendor,webglAvailable:a.available,screen:{width:screen.width,height:screen.height,dpr:window.devicePixelRatio,colorDepth:"number"==typeof screen.colorDepth?screen.colorDepth:null},viewport:{width:window.innerWidth,height:window.innerHeight},heapLimitMB:r?Math.round(r.jsHeapSizeLimit/1048576):null,network:o?{effectiveType:_n(o.effectiveType),downlinkMbps:"number"==typeof o.downlink?o.downlink:null,rttMs:"number"==typeof o.rtt?o.rtt:null,saveData:!0===o.saveData}:null,battery:e?.battery??null,prefersReducedMotion:Ln("(prefers-reduced-motion: reduce)"),forcedColors:Ln("(forced-colors: active)"),reducedTransparency:document.documentElement.classList.contains("rosh-reduce-transparency"),touchPoints:"number"==typeof t.maxTouchPoints?t.maxTouchPoints:null}}function In(e){const t=[];e.browser&&t.push(e.browser);const r=[e.platform,e.platformVersion].filter(Boolean).join(" ");return r&&t.push(e.architecture?`${r} (${e.architecture})`:r),e.gpu?t.push(e.gpu):e.webglAvailable||t.push("no WebGL (software rendering)"),e.cpuCores&&t.push(`${e.cpuCores} cores`),e.deviceMemoryGB&&t.push(`${e.deviceMemoryGB}GB+ RAM`),t.push(`${e.screen.width}×${e.screen.height} @${e.screen.dpr}x`),e.battery&&!e.battery.charging&&t.push(`on battery ${Math.round(100*e.battery.level)}%`),e.reducedTransparency&&t.push("reduce transparency on"),e.prefersReducedMotion&&t.push("reduced motion"),t.join(" · ")}var $n={smooth:{dot:"bg-emerald-400",text:"text-emerald-300"},gpu:{dot:"bg-amber-400",text:"text-amber-300"},cpu:{dot:"bg-sky-400",text:"text-sky-300"},unknown:{dot:"bg-gray-400",text:"text-gray-300"}};function Dn({onClose:e,onSubmit:t,className:r=""}){const n=yr([]),a=yr(0),o=yr({clicks:0,keys:0,scrolls:0,dragMs:0}),l=yr({down:!1,since:0}),i=yr([]),s=yr(0),c=yr(0),d=yr(null),u=yr(null),[m,h]=fr(!1),[p,g]=fr({fps:0,frameMs:0,worstMs:0,blockedPct:null}),[f,b]=fr([]),[y,x]=fr(null),[w,v]=fr(0),[k,N]=fr(!1),[C,S]=fr(""),[_,E]=fr(!1),[T,M]=fr(null);br(()=>(Pe(!0),()=>Pe(!1)),[]),br(()=>{let e=!0;return En().then(t=>{e&&(u.current=t)}),()=>{e=!1}},[]),br(()=>{let e=0;const t=r=>{const a=n.current;a.push(r);const o=r-1e3;for(;a.length&&a[0]<o;)a.shift();e=requestAnimationFrame(t)};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[]),br(()=>{if("undefined"==typeof PerformanceObserver)return;let e;try{e=new PerformanceObserver(e=>{for(const t of e.getEntries())a.current+=t.duration}),e.observe({entryTypes:["longtask"]}),h(!0)}catch{return}return()=>e?.disconnect()},[]),br(()=>{const e=()=>{o.current.clicks++,l.current={down:!0,since:performance.now()}},t=()=>{if(!l.current.down)return;const e=performance.now(),t=e-l.current.since;l.current.since=e,t<=100&&(o.current.dragMs+=t)},r=()=>{l.current.down=!1},n=()=>{o.current.keys++},a=()=>{o.current.scrolls++},i={capture:!0,passive:!0};return window.addEventListener("pointerdown",e,i),window.addEventListener("pointermove",t,i),window.addEventListener("pointerup",r,i),window.addEventListener("pointercancel",r,i),window.addEventListener("keydown",n,i),window.addEventListener("wheel",a,i),()=>{window.removeEventListener("pointerdown",e,i),window.removeEventListener("pointermove",t,i),window.removeEventListener("pointerup",r,i),window.removeEventListener("pointercancel",r,i),window.removeEventListener("keydown",n,i),window.removeEventListener("wheel",a,i)}},[]);const L=xr(()=>{try{localStorage.setItem("react-os-shell:perf-log",JSON.stringify(i.current))}catch{}},[]);br(()=>{const e=()=>L();return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",e),L()}},[L]),br(()=>{const e=setInterval(()=>{const e=performance.now();s.current||(s.current=e);const t=cn(n.current),r=m?Math.min(100,a.current/500*100):null;a.current=0;const l=performance.memory,d=l?l.usedJSHeapSize/1048576:null,u={...t,blockedPct:r},h=o.current,p=Ie(),{windows:f,active:y}=function(){if("undefined"==typeof document)return{windows:0,active:null};const e=document.querySelectorAll("[data-modal-panel]");let t=null,r=-1/0;return e.forEach(e=>{const n=parseInt(window.getComputedStyle(e).zIndex,10),a=Number.isFinite(n)?n:0;a>=r&&(r=a,t=e.dataset.windowKey??e.dataset.modalId??null)}),{windows:e.length,active:t}}();i.current=fn(i.current,{t:Math.round(e-s.current),...t,blockedPct:r,heapMB:d,verdict:dn(u).kind,windows:f,active:y,clicks:h.clicks,keys:h.keys,scrolls:h.scrolls,dragMs:Math.round(h.dragMs),menus:p.menus,submenus:p.submenus,menuKey:p.menuKey,moveMs:Math.round(p.moveMs),resizeMs:Math.round(p.resizeMs)}),h.clicks=0,h.keys=0,h.scrolls=0,h.dragMs=0,(!c.current||e-c.current>=1e4)&&(c.current=e,L()),g(u),b(e=>[...e,t.fps].slice(-40)),x(l?{usedMB:l.usedJSHeapSize/1048576,limitMB:l.jsHeapSizeLimit/1048576}:null),v(i.current.length)},500);return()=>clearInterval(e)},[m,L]);const I=xr(()=>{d.current=i.current.slice(),M(null),N(!0)},[]),$=dn(p),D=xr(()=>{const e=d.current??i.current,t=/* @__PURE__ */(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19),r=kn(e),n=Pn(u.current);return{message:C,filename:`perf-log-${t}.json`,summary:r,environment:n,verdict:$.label,json:JSON.stringify({generatedAt:/* @__PURE__ */(new Date).toISOString(),message:C,verdict:$.label,environment:n,summary:r,records:e},null,2)}},[C,$.label]),A=xr(e=>{const t=URL.createObjectURL(new Blob([e.json],{type:"application/json"})),r=document.createElement("a");r.href=t,r.download=e.filename,r.click(),URL.revokeObjectURL(t)},[]),R=xr(async()=>{const e=D();E(!0),M(null);try{t?await t(e):A(e),d.current=null,S(""),N(!1)}catch(e){M(e instanceof Error&&e.message?e.message:"Could not send. Try again.")}finally{E(!1)}},[D,A,t]),W=$n[$.kind],j=Math.max(60,...f),O=Math.round(500*w/1e3),F=t?"Send":"Download",z=d.current?.length??w;/* @__PURE__ */
76
+ /* @__PURE__ */Pr("p",{className:"shrink-0 pt-3 mt-1 border-t border-gray-100 text-2xs text-gray-400 leading-relaxed",children:"Drag a widget anywhere on the desktop to reposition it. Right-click a widget for its appearance settings."})]})})}var on=50,ln=20,sn={kind:"cpu",label:"CPU-bound (JavaScript)",detail:"The main thread is blocked. Rendering settings will not help — this is script or data work."};function cn(e){if(e.length<2)return{fps:0,frameMs:0,worstMs:0};let t=0;for(let r=1;r<e.length;r++){const n=e[r]-e[r-1];n>t&&(t=n)}const r=e[e.length-1]-e[0];if(r<=0)return{fps:0,frameMs:0,worstMs:0};const n=e.length-1;return{fps:n/r*1e3,frameMs:r/n,worstMs:t}}function dn(e){const{fps:t,blockedPct:r}=e,n=null!==r&&r>=20;return!Number.isFinite(t)||t<=0?n?sn:{kind:"unknown",label:"Measuring",detail:"Collecting frame timings."}:t>=50?{kind:"smooth",label:"Smooth",detail:"Frames are landing on time. No rendering bottleneck here."}:null===r?{kind:"unknown",label:"Janky — cause unknown",detail:"This browser reports no long-task timing, so GPU and JS cannot be told apart. Try Chrome or Edge."}:n?sn:{kind:"gpu",label:"GPU-bound (compositing)",detail:"Frames are late while the main thread sits idle. Try Preferences → Customization → Reduce transparency."}}var un=[{kind:"submenu",test:e=>e.submenus>0},{kind:"menu",test:e=>e.menus>0},{kind:"resize",test:e=>e.resizeMs>0},{kind:"move",test:e=>e.moveMs>0},{kind:"scroll",test:e=>e.scrolls>0},{kind:"type",test:e=>e.keys>0},{kind:"click",test:e=>e.clicks>0||e.dragMs>0}];function mn(e){return un.find(t=>t.test(e))?.kind??"idle"}var hn=2400,pn=4,gn=2;function fn(e,t,r=2400){const n=e.length>=r?e.slice(e.length-r+1):e.slice();return n.push(t),n}function bn(e){return"idle"!==mn(e)}function yn(e){if(!e.length)return 0;const t=e.slice().sort((e,t)=>e-t),r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function xn(e){const t=e.filter(e=>e.fps>0);return{samples:e.length,medianFps:yn(t.map(e=>e.fps)),worstMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),stalls:e.length-t.length}}function wn(e,t){const r=/* @__PURE__ */new Map;for(const n of e){const e=t(n);if(null===e)continue;const a=r.get(e);a?a.push(n):r.set(e,[n])}return r}function vn(e){return e.sort((e,t)=>e.medianFps-t.medianFps)}function kn(e){const t={samples:0,durationMs:0,medianFps:0,worstFrameMs:0,verdictShare:{smooth:0,gpu:0,cpu:0,unknown:0},interacting:null,idle:null,byActivity:[],byWindowCount:[],worstWindows:[],worstMenus:[]};if(!e.length)return t;const r={...t.verdictShare};for(const t of e)r[t.verdict]+=1/e.length;const n=e.filter(bn),a=e.filter(e=>!bn(e));return{samples:e.length,durationMs:e[e.length-1].t-e[0].t,medianFps:yn(e.filter(e=>e.fps>0).map(e=>e.fps)),worstFrameMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),verdictShare:r,interacting:n.length>=4?xn(n):null,idle:a.length>=4?xn(a):null,byActivity:vn([...wn(e,mn).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({kind:e,...xn(t)}))),byWindowCount:[...wn(e,e=>e.windows).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({windows:e,...xn(t)})).sort((e,t)=>e.windows-t.windows),worstWindows:vn([...wn(e,e=>e.active).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({key:e,...xn(t)}))),worstMenus:vn([...wn(e,e=>e.menuKey).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({key:e,...xn(t)})))}}var Nn=["t","fps","frameMs","worstMs","blockedPct","heapMB","verdict","windows","active","clicks","keys","scrolls","dragMs","menus","submenus","menuKey","moveMs","resizeMs"];function Cn(e){return[Nn.join(","),...e.map(e=>Nn.map(t=>(e=>{if(null==e)return"";const t=String("number"==typeof e?Math.round(10*e)/10:e);return/[",\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t})(e[t])).join(","))].join("\n")}function Sn(e){if(!e?.length)return null;const t=e.filter(e=>!/not[^a-z]*a[^a-z]*brand/i.test(e.brand)),r=t.find(e=>"Chromium"!==e.brand)??t[0];return r?`${r.brand} ${r.version}`:null}function _n(e){return"string"==typeof e&&e?e:null}async function En(){return{hints:await Tn(),battery:await Mn()}}async function Tn(){const e=navigator.userAgentData;if(!e)return null;const t={platform:e.platform??null,platformVersion:null,architecture:null,model:null,browser:Sn(e.brands)};if(!e.getHighEntropyValues)return t;try{const r=await e.getHighEntropyValues(["platform","platformVersion","architecture","model","fullVersionList"]),n=r.fullVersionList;return{platform:_n(r.platform)??t.platform,platformVersion:_n(r.platformVersion),architecture:_n(r.architecture),model:_n(r.model),browser:Sn(n)??t.browser}}catch{return t}}async function Mn(){const e=navigator.getBattery;if(!e)return null;try{const t=await e.call(navigator);return{charging:t.charging,level:t.level}}catch{return null}}function Ln(e){try{return window.matchMedia(e).matches}catch{return!1}}function Pn(e){const t=navigator,r=performance.memory,n=e?.hints??null,a=function(){if("undefined"==typeof document)return{renderer:null,vendor:null,available:!1};try{const e=document.createElement("canvas").getContext("webgl");if(!e)return{renderer:null,vendor:null,available:!1};const t=e.getExtension("WEBGL_debug_renderer_info"),r=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),n=t?e.getParameter(t.UNMASKED_VENDOR_WEBGL):e.getParameter(e.VENDOR);return e.getExtension("WEBGL_lose_context")?.loseContext(),{renderer:_n(r),vendor:_n(n),available:!0}}catch{return{renderer:null,vendor:null,available:!1}}}(),o=t.connection;return{userAgent:t.userAgent,browser:n?.browser??null,platform:n?.platform??null,platformVersion:n?.platformVersion??null,architecture:n?.architecture??null,model:n?.model??null,cpuCores:"number"==typeof t.hardwareConcurrency?t.hardwareConcurrency:null,deviceMemoryGB:"number"==typeof t.deviceMemory?t.deviceMemory:null,gpu:a.renderer,gpuVendor:a.vendor,webglAvailable:a.available,screen:{width:screen.width,height:screen.height,dpr:window.devicePixelRatio,colorDepth:"number"==typeof screen.colorDepth?screen.colorDepth:null},viewport:{width:window.innerWidth,height:window.innerHeight},heapLimitMB:r?Math.round(r.jsHeapSizeLimit/1048576):null,network:o?{effectiveType:_n(o.effectiveType),downlinkMbps:"number"==typeof o.downlink?o.downlink:null,rttMs:"number"==typeof o.rtt?o.rtt:null,saveData:!0===o.saveData}:null,battery:e?.battery??null,prefersReducedMotion:Ln("(prefers-reduced-motion: reduce)"),forcedColors:Ln("(forced-colors: active)"),reducedTransparency:document.documentElement.classList.contains("rosh-reduce-transparency"),touchPoints:"number"==typeof t.maxTouchPoints?t.maxTouchPoints:null}}function In(e){const t=[];e.browser&&t.push(e.browser);const r=[e.platform,e.platformVersion].filter(Boolean).join(" ");return r&&t.push(e.architecture?`${r} (${e.architecture})`:r),e.gpu?t.push(e.gpu):e.webglAvailable||t.push("no WebGL (software rendering)"),e.cpuCores&&t.push(`${e.cpuCores} cores`),e.deviceMemoryGB&&t.push(`${e.deviceMemoryGB}GB+ RAM`),t.push(`${e.screen.width}×${e.screen.height} @${e.screen.dpr}x`),e.battery&&!e.battery.charging&&t.push(`on battery ${Math.round(100*e.battery.level)}%`),e.reducedTransparency&&t.push("reduce transparency on"),e.prefersReducedMotion&&t.push("reduced motion"),t.join(" · ")}var $n={smooth:{dot:"bg-emerald-400",text:"text-emerald-300"},gpu:{dot:"bg-amber-400",text:"text-amber-300"},cpu:{dot:"bg-sky-400",text:"text-sky-300"},unknown:{dot:"bg-gray-400",text:"text-gray-300"}};function Dn({onClose:e,onSubmit:t,className:r=""}){const n=yr([]),a=yr(0),o=yr({clicks:0,keys:0,scrolls:0,dragMs:0}),l=yr({down:!1,since:0}),i=yr([]),s=yr(0),c=yr(0),d=yr(null),u=yr(null),[m,h]=fr(!1),[p,g]=fr({fps:0,frameMs:0,worstMs:0,blockedPct:null}),[f,b]=fr([]),[y,x]=fr(null),[w,v]=fr(0),[k,N]=fr(!1),[C,S]=fr(""),[_,E]=fr(!1),[T,M]=fr(null);br(()=>(Pe(!0),()=>Pe(!1)),[]),br(()=>{let e=!0;return En().then(t=>{e&&(u.current=t)}),()=>{e=!1}},[]),br(()=>{let e=0;const t=r=>{const a=n.current;a.push(r);const o=r-1e3;for(;a.length&&a[0]<o;)a.shift();e=requestAnimationFrame(t)};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[]),br(()=>{if("undefined"==typeof PerformanceObserver)return;let e;try{e=new PerformanceObserver(e=>{for(const t of e.getEntries())a.current+=t.duration}),e.observe({entryTypes:["longtask"]}),h(!0)}catch{return}return()=>e?.disconnect()},[]),br(()=>{const e=()=>{o.current.clicks++,l.current={down:!0,since:performance.now()}},t=()=>{if(!l.current.down)return;const e=performance.now(),t=e-l.current.since;l.current.since=e,t<=100&&(o.current.dragMs+=t)},r=()=>{l.current.down=!1},n=()=>{o.current.keys++},a=()=>{o.current.scrolls++},i={capture:!0,passive:!0};return window.addEventListener("pointerdown",e,i),window.addEventListener("pointermove",t,i),window.addEventListener("pointerup",r,i),window.addEventListener("pointercancel",r,i),window.addEventListener("keydown",n,i),window.addEventListener("wheel",a,i),()=>{window.removeEventListener("pointerdown",e,i),window.removeEventListener("pointermove",t,i),window.removeEventListener("pointerup",r,i),window.removeEventListener("pointercancel",r,i),window.removeEventListener("keydown",n,i),window.removeEventListener("wheel",a,i)}},[]);const L=xr(()=>{try{localStorage.setItem("react-os-shell:perf-log",JSON.stringify(i.current))}catch{}},[]);br(()=>{const e=()=>L();return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",e),L()}},[L]),br(()=>{const e=setInterval(()=>{const e=performance.now();s.current||(s.current=e);const t=cn(n.current),r=m?Math.min(100,a.current/500*100):null;a.current=0;const l=performance.memory,d=l?l.usedJSHeapSize/1048576:null,u={...t,blockedPct:r},h=o.current,p=Ie(),{windows:f,active:y}=function(){if("undefined"==typeof document)return{windows:0,active:null};const e=document.querySelectorAll("[data-modal-panel]");let t=null,r=-1/0;return e.forEach(e=>{const n=parseInt(window.getComputedStyle(e).zIndex,10),a=Number.isFinite(n)?n:0;a>=r&&(r=a,t=e.dataset.windowKey??e.dataset.modalId??null)}),{windows:e.length,active:t}}();i.current=fn(i.current,{t:Math.round(e-s.current),...t,blockedPct:r,heapMB:d,verdict:dn(u).kind,windows:f,active:y,clicks:h.clicks,keys:h.keys,scrolls:h.scrolls,dragMs:Math.round(h.dragMs),menus:p.menus,submenus:p.submenus,menuKey:p.menuKey,moveMs:Math.round(p.moveMs),resizeMs:Math.round(p.resizeMs)}),h.clicks=0,h.keys=0,h.scrolls=0,h.dragMs=0,(!c.current||e-c.current>=1e4)&&(c.current=e,L()),g(u),b(e=>[...e,t.fps].slice(-40)),x(l?{usedMB:l.usedJSHeapSize/1048576,limitMB:l.jsHeapSizeLimit/1048576}:null),v(i.current.length)},500);return()=>clearInterval(e)},[m,L]);const I=xr(()=>{d.current=i.current.slice(),M(null),N(!0)},[]),$=dn(p),D=xr(()=>{const e=d.current??i.current,t=/* @__PURE__ */(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19),r=kn(e),n=Pn(u.current);return{message:C,filename:`perf-log-${t}.json`,summary:r,environment:n,verdict:$.label,json:JSON.stringify({generatedAt:/* @__PURE__ */(new Date).toISOString(),message:C,verdict:$.label,environment:n,summary:r,records:e},null,2)}},[C,$.label]),A=xr(e=>{const t=URL.createObjectURL(new Blob([e.json],{type:"application/json"})),r=document.createElement("a");r.href=t,r.download=e.filename,r.click(),URL.revokeObjectURL(t)},[]),R=xr(async()=>{const e=D();E(!0),M(null);try{t?await t(e):A(e),d.current=null,S(""),N(!1)}catch(e){M(e instanceof Error&&e.message?e.message:"Could not send. Try again.")}finally{E(!1)}},[D,A,t]),W=$n[$.kind],j=Math.max(60,...f),F=Math.round(500*w/1e3),O=t?"Send":"Download",z=d.current?.length??w;/* @__PURE__ */
77
77
  return Lr("div",{className:`w-56 rounded-lg border border-white/15 bg-[#11111b]/95 px-3 py-2 font-mono text-2xs text-white/80 shadow-lg select-none ${r}`,role:"status","aria-live":"off","aria-label":"Performance statistics",children:[
78
78
  /* @__PURE__ */Lr("div",{className:"mb-2 flex items-center justify-between",children:[
79
79
  /* @__PURE__ */Pr("span",{className:"text-3xs uppercase tracking-wider text-white/40",children:"Performance"}),e&&/* @__PURE__ */Pr("button",{onClick:e,className:"-mr-1 px-1 leading-none text-white/40 transition-colors hover:text-white/90","aria-label":"Hide performance statistics",children:"×"})]}),
@@ -100,14 +100,14 @@ return Pr("div",{className:`flex-1 rounded-sm ${void 0===r?"bg-white/5":W.dot}`,
100
100
  /* @__PURE__ */Lr("span",{className:"text-white/35",children:[z," samples"]}),
101
101
  /* @__PURE__ */Lr("span",{className:"flex gap-1",children:[
102
102
  /* @__PURE__ */Pr("button",{onClick:()=>{N(!1),d.current=null,M(null)},disabled:_,className:"rounded border border-white/15 px-2 py-0.5 text-white/50 transition-colors hover:border-white/30 hover:text-white disabled:opacity-40",children:"Cancel"}),
103
- /* @__PURE__ */Lr("button",{onClick:R,disabled:_,"aria-busy":_||void 0,className:"inline-flex items-center gap-1 rounded border border-white/30 bg-white/10 px-2 py-0.5 text-white/90 transition-colors hover:bg-white/20 disabled:cursor-not-allowed disabled:opacity-40",children:[_&&/* @__PURE__ */Pr(P,{className:"h-3 w-3"}),F]})]})]})]}:{className:"flex items-center justify-between",children:[
104
- /* @__PURE__ */Lr("span",{className:"text-white/35",children:["log ",w," · ",O<60?`${O}s`:`${Math.round(O/60)}m`]}),
103
+ /* @__PURE__ */Lr("button",{onClick:R,disabled:_,"aria-busy":_||void 0,className:"inline-flex items-center gap-1 rounded border border-white/30 bg-white/10 px-2 py-0.5 text-white/90 transition-colors hover:bg-white/20 disabled:cursor-not-allowed disabled:opacity-40",children:[_&&/* @__PURE__ */Pr(P,{className:"h-3 w-3"}),O]})]})]})]}:{className:"flex items-center justify-between",children:[
104
+ /* @__PURE__ */Lr("span",{className:"text-white/35",children:["log ",w," · ",F<60?`${F}s`:`${Math.round(F/60)}m`]}),
105
105
  /* @__PURE__ */Pr("button",{onClick:I,disabled:!w,className:"rounded border border-white/15 px-2 py-0.5 text-white/60 transition-colors hover:border-white/30 hover:text-white disabled:cursor-not-allowed disabled:opacity-40",children:t?"Report this":"Save report"})]})})]})}function An({label:e,value:t}){/* @__PURE__ */
106
106
  return Lr("div",{className:"flex items-baseline justify-between gap-2",children:[
107
107
  /* @__PURE__ */Pr("dt",{className:"text-white/40",children:e}),
108
- /* @__PURE__ */Pr("dd",{className:"tabular-nums text-white/70",children:t})]})}var Rn=[],Wn="documents",jn="Recent Documents",On=90;var Fn=hr({});function zn({value:e,children:t}){/* @__PURE__ */
109
- return Pr(Fn.Provider,{value:e,children:t})}function Bn(){return kr(Fn)}function Hn(){const e="undefined"!=typeof document?getComputedStyle(document.documentElement):null,t=(e?.getPropertyValue("--taskbar-position")||"bottom").trim();return{position:t,vertical:"left"===t||"right"===t,height:parseInt(e?.getPropertyValue("--taskbar-height")||"0")||0,width:parseInt(e?.getPropertyValue("--taskbar-width")||"0")||0}}function Kn({profile:e}){const t=nr();Dr();const{openEntity:r,openPage:n}=Ee(),a=yr(null),{prefs:o,save:s}=Nt(),c={...e?.preferences||{},...o},d=c.favorite_documents||[],u=c.desktop_folders||[],m=u.some(e=>e.id===Wn)?u.map(e=>e.id===Wn?{...e,name:jn}:e):[...u,{id:Wn,name:jn}],h=c.desktop_snap??!1,p=c.notepad_notes||[],g=p.filter(e=>e.sticky),f=Bn(),b=f.hiddenContextMenuItems??[],y=async(e,t)=>{const n=`${e}#${t}`;if(f.stickyResolver)try{const a=await f.stickyResolver(e,t);a?r(a.entityType,a.entityId,a.snapshot,a.label??n):ct.error(`${n} not found`)}catch{ct.error(`Failed to open ${n}`)}else ct.error(`Unknown reference: ${n}`)},x=(e,t)=>{const r=p.find(t=>t.id===e);if(!r)return;const n=r.content,a=n.slice(t).match(/^\[([ xX]?)\]/);if(!a)return;const o="x"===a[1]||"X"===a[1]?"[ ]":"[x]",l=n.slice(0,t)+o+n.slice(t+a[0].length);ge(p.map(t=>t.id===e?{...t,content:l,updated_at:/* @__PURE__ */(new Date).toISOString()}:t))},w=(e,t)=>{if(!t)return[];const r=t.split("\n");let n=0;return r.map((t,r)=>{const a=n;n+=t.length+1;const o=[],l=/([A-Z]{2,4})#(\d{4,6})/g;let i;for(;null!==(i=l.exec(t));)if(f.stickyResolver){const e=i[1],t=i[2],n=i.index,a=i[0];o.push({idx:n,len:a.length,render:()=>/* @__PURE__ */Pr("button",{onClick:r=>{r.stopPropagation(),y(e,t)},className:"text-blue-700 hover:underline font-medium cursor-pointer",children:a},`r-${r}-${n}`)})}const s=/\[([ xX]?)\]/g;for(;null!==(i=s.exec(t));){const t="x"===i[1]||"X"===i[1],n=i.index,l=a+n;o.push({idx:n,len:i[0].length,render:()=>/* @__PURE__ */Pr("button",{onClick:t=>{t.stopPropagation(),x(e,l)},className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded border ${t?"bg-blue-500 border-blue-500 text-white":"border-gray-500 bg-white/50 hover:border-blue-400"} cursor-pointer align-text-bottom mr-0.5`,children:t&&/* @__PURE__ */Pr(sr,{name:"check",className:"w-2.5 h-2.5",strokeWidth:3})},`c-${r}-${n}`)})}o.sort((e,t)=>e.idx-t.idx);const c=[];let d=0;for(const e of o)e.idx>d&&c.push(/* @__PURE__ */Pr("span",{children:t.slice(d,e.idx)},`t-${r}-${d}`)),c.push(e.render()),d=e.idx+e.len;d<t.length&&c.push(/* @__PURE__ */Pr("span",{children:t.slice(d)},`t-${r}-${d}`)),0===c.length&&c.push(/* @__PURE__ */Pr("span",{children:"​"},`e-${r}`));const u=/^\[x\]/i.test(t.trimStart());/* @__PURE__ */
110
- return Pr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[v,k]=fr(null),[N,C]=fr(null),[S,_]=fr(/* @__PURE__ */new Set),[E,T]=fr(null),[M,L]=fr(!1),[P,$]=fr(!1),[D,A]=fr(!1),[R,W]=fr(null),[j,O]=fr(""),[F,z]=fr(null),[B,H]=fr(null),[K,U]=fr(null),[X,V]=fr(null),Y=yr(null),G=xr(e=>{f.saveShortcuts?f.saveShortcuts(e):s({favorite_documents:e})},[f,s]),q=xr(e=>{f.saveFolders?f.saveFolders(e):s({desktop_folders:e})},[f,s]);xr(e=>{f.saveSnap?f.saveSnap(e):s({desktop_snap:e})},[f,s]);const J=yr({folders:m,favDocs:d,saveFolders:q,saveDocs:G});J.current={folders:m,favDocs:d,saveFolders:q,saveDocs:G},br(()=>{const e=e=>{const t=e.detail;if(!t?.filePath)return;const{favDocs:r,saveDocs:n}=J.current,a=r.filter(e=>!("preview-file"===e.entityType&&e.filePath===t.filePath));n([{entityType:"preview-file",entityId:t.filePath,label:t.filename,filePath:t.filePath,fileKind:t.kind,folderId:Wn},...a])};return window.addEventListener(l,e),()=>window.removeEventListener(l,e)},[]);const Q=e=>({right:20+Math.floor(e/8)*On,top:20+e%8*On}),Z=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Q(t),ee=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Q(d.filter(e=>!e.folderId).length+t),te=d.filter(e=>!e.folderId),re=e=>{"preview-file"===e.entityType&&e.filePath&&e.fileKind?i({filePath:e.filePath,filename:e.label,kind:e.fileKind,onStaged:e=>n(e)}):"page"===e.entityType?n(e.entityId):r(e.entityType,e.entityId,null,e.label)},ne=e=>{ke(e),n("/files")},ae=xr(e=>{const{favDocs:t,saveDocs:r}=J.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.map(e=>e.folderId&&n.has(`${e.entityType}|${e.entityId}`)?{...e,folderId:void 0,folderX:void 0,folderY:void 0}:e))},[]),oe=xr(e=>{const{favDocs:t,saveDocs:r}=J.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.filter(e=>!(e.folderId&&n.has(`${e.entityType}|${e.entityId}`))))},[]),[le,ie]=fr({}),se=yr([]),ce=(e,t,r)=>{if(0!==r.button)return;const n="trash"===e?"trash":`${e}-${t}`,a=S.has(n)&&S.size>1?Array.from(S):[n],o=[];for(const e of a)if(e.startsWith("item-")){const t=parseInt(e.slice(5),10),r=te[t];if(!r)continue;const n=Z(r,t),a=document.querySelector(`[data-desktop-icon="${e}"]`);o.push({key:e,type:"item",idx:t,origX:n.right,origY:n.top,el:a})}else if(e.startsWith("folder-")){const t=parseInt(e.slice(7),10),r=m[t];if(!r)continue;const n=ee(r,t),a=document.querySelector(`[data-desktop-icon="${e}"]`);o.push({key:e,type:"folder",idx:t,origX:n.right,origY:n.top,el:a})}else if("trash"===e){const t=document.querySelector('[data-desktop-icon="trash"]');if(!t)continue;const r=parseFloat(t.style.right||"0")||0,n=parseFloat(t.style.bottom||"0")||0;o.push({key:e,type:"trash",idx:0,origX:r,origY:n,el:t})}se.current=o;const l=o.find(e=>e.key===n)??o[0];l&&(k({type:e,idx:t,startX:r.clientX,startY:r.clientY,origX:l.origX,origY:l.origY}),r.preventDefault())};br(()=>{if(!v)return;const e=se.current,t=1===e.length&&"item"===e[0].type,r=()=>{if(!t)return null;const r=te[e[0].idx];return"page"===r?.entityType?r.entityId:null},n=()=>document.querySelector("[data-taskbar-dropzone]"),a=(e,t)=>{const r=n();if(!r)return!1;const a=r.getBoundingClientRect();return e>=a.left&&e<=a.right&&t>=a.top&&t<=a.bottom},l=e=>{const t=n();t&&(t.style.outline=e?"2px solid var(--accent-600, #7c3aed)":"",t.style.outlineOffset=e?"-2px":"")},i=n=>{const o=n.clientX-v.startX,i=n.clientY-v.startY;for(const t of e)t.el&&(t.el.style.right=t.origX-o+"px","trash"===t.type?t.el.style.bottom=t.origY-i+"px":(t.el.style.top=`${t.origY+i}px`,t.el.style.left="auto"),t.el.style.zIndex="100",t.el.style.opacity="0.7");if(t){const e=document.elementsFromPoint(n.clientX,n.clientY);let t=null;for(const r of e){const e=r.closest?.('[data-desktop-icon^="folder-"]');if(e){const r=e.getAttribute("data-desktop-icon");r&&(t=parseInt(r.slice(7),10));break}}Y.current=t,V(e=>e===t?e:t),l(null!=r()&&a(n.clientX,n.clientY))}},c=t=>{const n=t.clientX-v.startX,i=t.clientY-v.startY;for(const t of e)t.el&&(t.el.style.zIndex="",t.el.style.opacity="");const c=r();if(c&&a(t.clientX,t.clientY)){l(!1);for(const t of e)t.el&&(t.el.style.left="auto",t.el.style.right=`${t.origX}px`,t.el.style.top=`${t.origY}px`);const t=Array.isArray(o.favorite_pages)?o.favorite_pages:[];return t.includes(c)||s({favorite_pages:[...t,c]}),Y.current=null,V(null),k(null),void(se.current=[])}l(!1);const u=Y.current,p=null!=u?m[u]:null;Y.current=null,V(null);const g=e.filter(e=>"trash"!==e.type).map(e=>{let t=e.origX-n,r=Math.max(0,e.origY+i);if(h){const e=(a=t,o=r,{x:Math.round(a/On)*On,y:Math.round(o/On)*On});t=e.x,r=e.y}var a,o;return t=Math.max(0,t),{entry:e,finalRight:t,finalTop:r}}),f=e.find(e=>"trash"===e.type);f&&s({desktop_trash_position:{right:Math.max(0,f.origX-n),bottom:Math.max(0,f.origY-i)}});const b=g.filter(e=>"item"===e.entry.type);if(b.length>0){const t=[...d],r={},n=1===b.length&&1===e.length?b[0]:null,a=n?p??m.find((e,t)=>{const r=ee(e,t);return Math.abs(n.finalRight-r.right)<40&&Math.abs(n.finalTop-r.top)<40}):void 0;if(a&&n?.entry.el){const e=n.entry.el,t=m.indexOf(a),r=document.querySelector(`[data-desktop-icon="folder-${t}"]`);if(r){const t=e.getBoundingClientRect(),n=r.getBoundingClientRect(),a=n.left+n.width/2-(t.left+t.width/2),o=n.top+n.height/2-(t.top+t.height/2);e.style.transition="transform 220ms ease-out, opacity 220ms ease-out",e.style.transform=`translate(${a}px, ${o}px) scale(0.2)`,e.style.opacity="0"}r?.animate([{transform:"scale(1)"},{transform:"scale(1.15)"},{transform:"scale(1)"}],{duration:280,easing:"ease-out"})}for(const e of b){const n=d.indexOf(te[e.entry.idx]);-1!==n&&(a?t[n]={...t[n],folderId:a.id,x:void 0,y:void 0,folderX:void 0,folderY:void 0}:(t[n]={...t[n],x:e.finalRight,y:e.finalTop,folderId:void 0},r[`item-${n}`]={right:e.finalRight,top:e.finalTop}))}const o=()=>{G(t),Object.keys(r).length>0&&ie(e=>({...e,...r}))};a?setTimeout(o,220):o()}const y=g.filter(e=>"folder"===e.entry.type);if(y.length>0){const e=[...m],t={};for(const r of y)e[r.entry.idx]={...e[r.entry.idx],x:r.finalRight,y:r.finalTop},t[`folder-${r.entry.idx}`]={right:r.finalRight,top:r.finalTop};q(e),ie(e=>({...e,...t}))}k(null),se.current=[]};return window.addEventListener("pointermove",i),window.addEventListener("pointerup",c),()=>{window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",c)}},[v,h,d,m,te,o]);const de=JSON.stringify(d.map(e=>`${e.entityId}:${e.x??""}:${e.y??""}:${e.folderId??""}`)),ue=JSON.stringify(m.map(e=>`${e.id}:${e.x??""}:${e.y??""}`));br(()=>{ie({})},[de,ue]),br(()=>{const{folders:e,favDocs:t}=J.current,r={};for(const t of e)r[t.id]=[];for(const e of t)e.folderId&&r[e.folderId]&&r[e.folderId].push(e);xe({folders:e.map(e=>({id:e.id,name:e.name,itemCount:r[e.id]?.length??0})),itemsByFolder:r,moveToDesktop:ae,removeShortcuts:oe})},[de,ue,ae,oe]),br(()=>()=>xe(null),[]);const me=yr(!1);br(()=>{if(!E)return;const e=e=>{const t=a.current?.getBoundingClientRect();if(!t)return;const r=e.clientX-t.left,n=e.clientY-t.top,o=r-E.startX,l=n-E.startY;if(o*o+l*l>16&&(me.current=!0),T(e=>e?{...e,endX:r,endY:n}:null),me.current){const e=Math.min(E.startX,r),t=Math.max(E.startX,r),o=Math.min(E.startY,n),l=Math.max(E.startY,n);_(((e,t,r,n)=>{const o=/* @__PURE__ */new Set,l=a.current?.clientWidth||800;te.forEach((a,i)=>{const s=Z(a,i),c=l-s.right-80;c+40>e&&c<t&&s.top+40>r&&s.top<n&&o.add(`item-${i}`)}),m.forEach((a,i)=>{const s=ee(a,i),c=l-s.right-80;c+40>e&&c<t&&s.top+40>r&&s.top<n&&o.add(`folder-${i}`)});const i=a.current?.querySelector('[data-desktop-icon="trash"]'),s=a.current?.getBoundingClientRect();if(i&&s){const a=i.getBoundingClientRect(),l=a.left-s.left,c=a.top-s.top;l+a.width>e&&l<t&&c+a.height>r&&c<n&&o.add("trash")}return o})(e,t,o,l))}},t=()=>{T(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[E]);br(()=>{if(!N)return;const e=()=>C(null);return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[N]);const he=(e,t)=>{q(m.map(r=>r.id===e?{...r,name:t}:r)),W(null)},ge=xr(e=>{f.saveNotes?f.saveNotes(e):s({notepad_notes:e})},[f,s]),fe=(e,t)=>{ge(p.map(r=>r.id===e?{...r,content:t,updated_at:/* @__PURE__ */(new Date).toISOString()}:r))};br(()=>{if(!B)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${B.id}"]`);t&&(t.style.left=B.origX+e.clientX-B.startX+"px",t.style.right="auto",t.style.top=B.origY+e.clientY-B.startY+"px")},t=e=>{const t=B.origX+e.clientX-B.startX,r=Math.max(0,B.origY+e.clientY-B.startY),n=document.querySelector(`[data-sticky-id="${B.id}"]`),a=n?.offsetWidth??192,o=t+a/2>window.innerWidth/2?"right":"left",l="right"===o?window.innerWidth-t-a:t;ge(p.map(e=>e.id===B.id?{...e,sticky_x:l,sticky_y:r,sticky_anchor:o}:e)),n&&(n.style.left="",n.style.right=""),H(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[B,p]),br(()=>{if(!K)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${K.id}"]`);t&&(t.style.width=`${Math.max(140,K.origW+e.clientX-K.startX)}px`,t.style.height=`${Math.max(100,K.origH+e.clientY-K.startY)}px`)},t=e=>{const t=Math.max(140,K.origW+e.clientX-K.startX),r=Math.max(100,K.origH+e.clientY-K.startY);ge(p.map(e=>e.id===K.id?{...e,sticky_w:t,sticky_h:r}:e)),U(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[K,p]);const be={yellow:"bg-yellow-100 border-yellow-300",blue:"bg-blue-100 border-blue-300",green:"bg-green-100 border-green-300",pink:"bg-pink-100 border-pink-300",purple:"bg-purple-100 border-purple-300",orange:"bg-orange-100 border-orange-300"},ye=(e,t,r,n,a)=>/* @__PURE__ */Lr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
108
+ /* @__PURE__ */Pr("dd",{className:"tabular-nums text-white/70",children:t})]})}var Rn=[],Wn="documents",jn="Recent Documents",Fn=90;var On=hr({});function zn({value:e,children:t}){/* @__PURE__ */
109
+ return Pr(On.Provider,{value:e,children:t})}function Bn(){return kr(On)}function Hn(){const e="undefined"!=typeof document?getComputedStyle(document.documentElement):null,t=(e?.getPropertyValue("--taskbar-position")||"bottom").trim();return{position:t,vertical:"left"===t||"right"===t,height:parseInt(e?.getPropertyValue("--taskbar-height")||"0")||0,width:parseInt(e?.getPropertyValue("--taskbar-width")||"0")||0}}function Un({profile:e}){const t=nr();Dr();const{openEntity:r,openPage:n}=Ee(),a=yr(null),{prefs:o,save:s}=Nt(),c={...e?.preferences||{},...o},d=c.favorite_documents||[],u=c.desktop_folders||[],m=u.some(e=>e.id===Wn)?u.map(e=>e.id===Wn?{...e,name:jn}:e):[...u,{id:Wn,name:jn}],h=c.desktop_snap??!1,p=c.notepad_notes||[],g=p.filter(e=>e.sticky),f=Bn(),b=f.hiddenContextMenuItems??[],y=async(e,t)=>{const n=`${e}#${t}`;if(f.stickyResolver)try{const a=await f.stickyResolver(e,t);a?r(a.entityType,a.entityId,a.snapshot,a.label??n):ct.error(`${n} not found`)}catch{ct.error(`Failed to open ${n}`)}else ct.error(`Unknown reference: ${n}`)},x=(e,t)=>{const r=p.find(t=>t.id===e);if(!r)return;const n=r.content,a=n.slice(t).match(/^\[([ xX]?)\]/);if(!a)return;const o="x"===a[1]||"X"===a[1]?"[ ]":"[x]",l=n.slice(0,t)+o+n.slice(t+a[0].length);ge(p.map(t=>t.id===e?{...t,content:l,updated_at:/* @__PURE__ */(new Date).toISOString()}:t))},w=(e,t)=>{if(!t)return[];const r=t.split("\n");let n=0;return r.map((t,r)=>{const a=n;n+=t.length+1;const o=[],l=/([A-Z]{2,4})#(\d{4,6})/g;let i;for(;null!==(i=l.exec(t));)if(f.stickyResolver){const e=i[1],t=i[2],n=i.index,a=i[0];o.push({idx:n,len:a.length,render:()=>/* @__PURE__ */Pr("button",{onClick:r=>{r.stopPropagation(),y(e,t)},className:"text-blue-700 hover:underline font-medium cursor-pointer",children:a},`r-${r}-${n}`)})}const s=/\[([ xX]?)\]/g;for(;null!==(i=s.exec(t));){const t="x"===i[1]||"X"===i[1],n=i.index,l=a+n;o.push({idx:n,len:i[0].length,render:()=>/* @__PURE__ */Pr("button",{onClick:t=>{t.stopPropagation(),x(e,l)},className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded border ${t?"bg-blue-500 border-blue-500 text-white":"border-gray-500 bg-white/50 hover:border-blue-400"} cursor-pointer align-text-bottom mr-0.5`,children:t&&/* @__PURE__ */Pr(sr,{name:"check",className:"w-2.5 h-2.5",strokeWidth:3})},`c-${r}-${n}`)})}o.sort((e,t)=>e.idx-t.idx);const c=[];let d=0;for(const e of o)e.idx>d&&c.push(/* @__PURE__ */Pr("span",{children:t.slice(d,e.idx)},`t-${r}-${d}`)),c.push(e.render()),d=e.idx+e.len;d<t.length&&c.push(/* @__PURE__ */Pr("span",{children:t.slice(d)},`t-${r}-${d}`)),0===c.length&&c.push(/* @__PURE__ */Pr("span",{children:"​"},`e-${r}`));const u=/^\[x\]/i.test(t.trimStart());/* @__PURE__ */
110
+ return Pr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[v,k]=fr(null),[N,C]=fr(null),[S,_]=fr(/* @__PURE__ */new Set),[E,T]=fr(null),[M,L]=fr(!1),[P,$]=fr(!1),[D,A]=fr(!1),[R,W]=fr(null),[j,F]=fr(""),[O,z]=fr(null),[B,H]=fr(null),[U,K]=fr(null),[X,V]=fr(null),Y=yr(null),G=xr(e=>{f.saveShortcuts?f.saveShortcuts(e):s({favorite_documents:e})},[f,s]),q=xr(e=>{f.saveFolders?f.saveFolders(e):s({desktop_folders:e})},[f,s]);xr(e=>{f.saveSnap?f.saveSnap(e):s({desktop_snap:e})},[f,s]);const J=yr({folders:m,favDocs:d,saveFolders:q,saveDocs:G});J.current={folders:m,favDocs:d,saveFolders:q,saveDocs:G},br(()=>{const e=e=>{const t=e.detail;if(!t?.filePath)return;const{favDocs:r,saveDocs:n}=J.current,a=r.filter(e=>!("preview-file"===e.entityType&&e.filePath===t.filePath));n([{entityType:"preview-file",entityId:t.filePath,label:t.filename,filePath:t.filePath,fileKind:t.kind,folderId:Wn},...a])};return window.addEventListener(l,e),()=>window.removeEventListener(l,e)},[]);const Q=e=>({right:20+Math.floor(e/8)*Fn,top:20+e%8*Fn}),Z=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Q(t),ee=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Q(d.filter(e=>!e.folderId).length+t),te=d.filter(e=>!e.folderId),re=e=>{"preview-file"===e.entityType&&e.filePath&&e.fileKind?i({filePath:e.filePath,filename:e.label,kind:e.fileKind,onStaged:e=>n(e)}):"page"===e.entityType?n(e.entityId):r(e.entityType,e.entityId,null,e.label)},ne=e=>{ke(e),n("/files")},ae=xr(e=>{const{favDocs:t,saveDocs:r}=J.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.map(e=>e.folderId&&n.has(`${e.entityType}|${e.entityId}`)?{...e,folderId:void 0,folderX:void 0,folderY:void 0}:e))},[]),oe=xr(e=>{const{favDocs:t,saveDocs:r}=J.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.filter(e=>!(e.folderId&&n.has(`${e.entityType}|${e.entityId}`))))},[]),[le,ie]=fr({}),se=yr([]),ce=(e,t,r)=>{if(0!==r.button)return;const n="trash"===e?"trash":`${e}-${t}`,a=S.has(n)&&S.size>1?Array.from(S):[n],o=[];for(const e of a)if(e.startsWith("item-")){const t=parseInt(e.slice(5),10),r=te[t];if(!r)continue;const n=Z(r,t),a=document.querySelector(`[data-desktop-icon="${e}"]`);o.push({key:e,type:"item",idx:t,origX:n.right,origY:n.top,el:a})}else if(e.startsWith("folder-")){const t=parseInt(e.slice(7),10),r=m[t];if(!r)continue;const n=ee(r,t),a=document.querySelector(`[data-desktop-icon="${e}"]`);o.push({key:e,type:"folder",idx:t,origX:n.right,origY:n.top,el:a})}else if("trash"===e){const t=document.querySelector('[data-desktop-icon="trash"]');if(!t)continue;const r=parseFloat(t.style.right||"0")||0,n=parseFloat(t.style.bottom||"0")||0;o.push({key:e,type:"trash",idx:0,origX:r,origY:n,el:t})}se.current=o;const l=o.find(e=>e.key===n)??o[0];l&&(k({type:e,idx:t,startX:r.clientX,startY:r.clientY,origX:l.origX,origY:l.origY}),r.preventDefault())};br(()=>{if(!v)return;const e=se.current,t=1===e.length&&"item"===e[0].type,r=()=>{if(!t)return null;const r=te[e[0].idx];return"page"===r?.entityType?r.entityId:null},n=()=>document.querySelector("[data-taskbar-dropzone]"),a=(e,t)=>{const r=n();if(!r)return!1;const a=r.getBoundingClientRect();return e>=a.left&&e<=a.right&&t>=a.top&&t<=a.bottom},l=e=>{const t=n();t&&(t.style.outline=e?"2px solid var(--accent-600, #7c3aed)":"",t.style.outlineOffset=e?"-2px":"")},i=n=>{const o=n.clientX-v.startX,i=n.clientY-v.startY;for(const t of e)t.el&&(t.el.style.right=t.origX-o+"px","trash"===t.type?t.el.style.bottom=t.origY-i+"px":(t.el.style.top=`${t.origY+i}px`,t.el.style.left="auto"),t.el.style.zIndex="100",t.el.style.opacity="0.7");if(t){const e=document.elementsFromPoint(n.clientX,n.clientY);let t=null;for(const r of e){const e=r.closest?.('[data-desktop-icon^="folder-"]');if(e){const r=e.getAttribute("data-desktop-icon");r&&(t=parseInt(r.slice(7),10));break}}Y.current=t,V(e=>e===t?e:t),l(null!=r()&&a(n.clientX,n.clientY))}},c=t=>{const n=t.clientX-v.startX,i=t.clientY-v.startY;for(const t of e)t.el&&(t.el.style.zIndex="",t.el.style.opacity="");const c=r();if(c&&a(t.clientX,t.clientY)){l(!1);for(const t of e)t.el&&(t.el.style.left="auto",t.el.style.right=`${t.origX}px`,t.el.style.top=`${t.origY}px`);const t=Array.isArray(o.favorite_pages)?o.favorite_pages:[];return t.includes(c)||s({favorite_pages:[...t,c]}),Y.current=null,V(null),k(null),void(se.current=[])}l(!1);const u=Y.current,p=null!=u?m[u]:null;Y.current=null,V(null);const g=e.filter(e=>"trash"!==e.type).map(e=>{let t=e.origX-n,r=Math.max(0,e.origY+i);if(h){const e=(a=t,o=r,{x:Math.round(a/Fn)*Fn,y:Math.round(o/Fn)*Fn});t=e.x,r=e.y}var a,o;return t=Math.max(0,t),{entry:e,finalRight:t,finalTop:r}}),f=e.find(e=>"trash"===e.type);f&&s({desktop_trash_position:{right:Math.max(0,f.origX-n),bottom:Math.max(0,f.origY-i)}});const b=g.filter(e=>"item"===e.entry.type);if(b.length>0){const t=[...d],r={},n=1===b.length&&1===e.length?b[0]:null,a=n?p??m.find((e,t)=>{const r=ee(e,t);return Math.abs(n.finalRight-r.right)<40&&Math.abs(n.finalTop-r.top)<40}):void 0;if(a&&n?.entry.el){const e=n.entry.el,t=m.indexOf(a),r=document.querySelector(`[data-desktop-icon="folder-${t}"]`);if(r){const t=e.getBoundingClientRect(),n=r.getBoundingClientRect(),a=n.left+n.width/2-(t.left+t.width/2),o=n.top+n.height/2-(t.top+t.height/2);e.style.transition="transform 220ms ease-out, opacity 220ms ease-out",e.style.transform=`translate(${a}px, ${o}px) scale(0.2)`,e.style.opacity="0"}r?.animate([{transform:"scale(1)"},{transform:"scale(1.15)"},{transform:"scale(1)"}],{duration:280,easing:"ease-out"})}for(const e of b){const n=d.indexOf(te[e.entry.idx]);-1!==n&&(a?t[n]={...t[n],folderId:a.id,x:void 0,y:void 0,folderX:void 0,folderY:void 0}:(t[n]={...t[n],x:e.finalRight,y:e.finalTop,folderId:void 0},r[`item-${n}`]={right:e.finalRight,top:e.finalTop}))}const o=()=>{G(t),Object.keys(r).length>0&&ie(e=>({...e,...r}))};a?setTimeout(o,220):o()}const y=g.filter(e=>"folder"===e.entry.type);if(y.length>0){const e=[...m],t={};for(const r of y)e[r.entry.idx]={...e[r.entry.idx],x:r.finalRight,y:r.finalTop},t[`folder-${r.entry.idx}`]={right:r.finalRight,top:r.finalTop};q(e),ie(e=>({...e,...t}))}k(null),se.current=[]};return window.addEventListener("pointermove",i),window.addEventListener("pointerup",c),()=>{window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",c)}},[v,h,d,m,te,o]);const de=JSON.stringify(d.map(e=>`${e.entityId}:${e.x??""}:${e.y??""}:${e.folderId??""}`)),ue=JSON.stringify(m.map(e=>`${e.id}:${e.x??""}:${e.y??""}`));br(()=>{ie({})},[de,ue]),br(()=>{const{folders:e,favDocs:t}=J.current,r={};for(const t of e)r[t.id]=[];for(const e of t)e.folderId&&r[e.folderId]&&r[e.folderId].push(e);xe({folders:e.map(e=>({id:e.id,name:e.name,itemCount:r[e.id]?.length??0})),itemsByFolder:r,moveToDesktop:ae,removeShortcuts:oe})},[de,ue,ae,oe]),br(()=>()=>xe(null),[]);const me=yr(!1);br(()=>{if(!E)return;const e=e=>{const t=a.current?.getBoundingClientRect();if(!t)return;const r=e.clientX-t.left,n=e.clientY-t.top,o=r-E.startX,l=n-E.startY;if(o*o+l*l>16&&(me.current=!0),T(e=>e?{...e,endX:r,endY:n}:null),me.current){const e=Math.min(E.startX,r),t=Math.max(E.startX,r),o=Math.min(E.startY,n),l=Math.max(E.startY,n);_(((e,t,r,n)=>{const o=/* @__PURE__ */new Set,l=a.current?.clientWidth||800;te.forEach((a,i)=>{const s=Z(a,i),c=l-s.right-80;c+40>e&&c<t&&s.top+40>r&&s.top<n&&o.add(`item-${i}`)}),m.forEach((a,i)=>{const s=ee(a,i),c=l-s.right-80;c+40>e&&c<t&&s.top+40>r&&s.top<n&&o.add(`folder-${i}`)});const i=a.current?.querySelector('[data-desktop-icon="trash"]'),s=a.current?.getBoundingClientRect();if(i&&s){const a=i.getBoundingClientRect(),l=a.left-s.left,c=a.top-s.top;l+a.width>e&&l<t&&c+a.height>r&&c<n&&o.add("trash")}return o})(e,t,o,l))}},t=()=>{T(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[E]);br(()=>{if(!N)return;const e=()=>C(null);return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[N]);const he=(e,t)=>{q(m.map(r=>r.id===e?{...r,name:t}:r)),W(null)},ge=xr(e=>{f.saveNotes?f.saveNotes(e):s({notepad_notes:e})},[f,s]),fe=(e,t)=>{ge(p.map(r=>r.id===e?{...r,content:t,updated_at:/* @__PURE__ */(new Date).toISOString()}:r))};br(()=>{if(!B)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${B.id}"]`);t&&(t.style.left=B.origX+e.clientX-B.startX+"px",t.style.right="auto",t.style.top=B.origY+e.clientY-B.startY+"px")},t=e=>{const t=B.origX+e.clientX-B.startX,r=Math.max(0,B.origY+e.clientY-B.startY),n=document.querySelector(`[data-sticky-id="${B.id}"]`),a=n?.offsetWidth??192,o=t+a/2>window.innerWidth/2?"right":"left",l="right"===o?window.innerWidth-t-a:t;ge(p.map(e=>e.id===B.id?{...e,sticky_x:l,sticky_y:r,sticky_anchor:o}:e)),n&&(n.style.left="",n.style.right=""),H(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[B,p]),br(()=>{if(!U)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${U.id}"]`);t&&(t.style.width=`${Math.max(140,U.origW+e.clientX-U.startX)}px`,t.style.height=`${Math.max(100,U.origH+e.clientY-U.startY)}px`)},t=e=>{const t=Math.max(140,U.origW+e.clientX-U.startX),r=Math.max(100,U.origH+e.clientY-U.startY);ge(p.map(e=>e.id===U.id?{...e,sticky_w:t,sticky_h:r}:e)),K(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[U,p]);const be={yellow:"bg-yellow-100 border-yellow-300",blue:"bg-blue-100 border-blue-300",green:"bg-green-100 border-green-300",pink:"bg-pink-100 border-pink-300",purple:"bg-purple-100 border-purple-300",orange:"bg-orange-100 border-orange-300"},ye=(e,t,r,n,a)=>/* @__PURE__ */Lr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
111
111
  /* @__PURE__ */Pr(Ne,{entityType:e,isSelected:r,entityId:n,label:t,fileKind:a}),
112
112
  /* @__PURE__ */Pr("span",{className:"text-2xs font-medium text-center leading-tight w-full drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(r?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:t})]}),Ce=(e,t)=>({...e+180>window.innerWidth?{right:window.innerWidth-e}:{left:e},...t+250>window.innerHeight?{bottom:window.innerHeight-t}:{top:t}});/* @__PURE__ */
113
113
  return Lr("div",{ref:a,className:"flex-1 relative overflow-hidden",onPointerDown:e=>{if(0!==e.button||e.target!==a.current)return;const t=a.current.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;T({startX:r,startY:n,endX:r,endY:n}),me.current=!1,_(/* @__PURE__ */new Set)},onContextMenu:e=>{e.preventDefault(),C({x:e.clientX,y:e.clientY})},onClick:()=>{me.current?me.current=!1:(_(/* @__PURE__ */new Set),C(null))},children:[(()=>{const e=Hn(),t=20+("right"===e.position?e.width:0),r=20+("bottom"===e.position?e.height:0),a=c.desktop_trash_position,o=a?.right??t,l=a?.bottom??r,i=S.has("trash");/* @__PURE__ */
@@ -116,7 +116,7 @@ return Pr("div",{"data-desktop-icon":"trash",style:{position:"absolute",right:o,
116
116
  /* @__PURE__ */Pr("span",{className:"text-2xs font-medium text-center leading-tight drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(i?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:"Trash"})]})})})(),te.map((e,t)=>{const r=d.indexOf(e),n=le[`item-${r}`]||Z(e,t),a=S.has(`item-${t}`);/* @__PURE__ */
117
117
  return Pr("div",{"data-desktop-icon":`item-${t}`,style:{position:"absolute",right:n.right,top:n.top,zIndex:1},onPointerDown:e=>{e.stopPropagation(),ce("item",t,e)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?_(e=>{const r=new Set(e);return r.has(`item-${t}`)?r.delete(`item-${t}`):r.add(`item-${t}`),r}):S.has(`item-${t}`)||_(/* @__PURE__ */new Set([`item-${t}`]))},onContextMenu:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),C({x:e.clientX,y:e.clientY,itemIdx:t})})(e,t),onDoubleClick:t=>{t.stopPropagation(),re(e)},className:"cursor-default select-none",children:ye(e.entityType,e.label,a,e.entityId,e.fileKind)},`item-${e.entityType}-${e.entityId}-${t}`)}),m.map((e,t)=>{const r=le[`folder-${t}`]||ee(e,t),n=S.has(`folder-${t}`),a=X===t,o=(l=e.id,d.filter(e=>e.folderId===l)).length;var l;/* @__PURE__ */
118
118
  return Pr("div",{"data-desktop-icon":`folder-${t}`,style:{position:"absolute",right:r.right,top:r.top,zIndex:1,transform:a?"scale(1.15)":"scale(1)",transition:"transform 180ms ease-out"},onPointerDown:e=>{e.stopPropagation(),ce("folder",t,e)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?_(e=>{const r=new Set(e);return r.has(`folder-${t}`)?r.delete(`folder-${t}`):r.add(`folder-${t}`),r}):S.has(`folder-${t}`)||_(/* @__PURE__ */new Set([`folder-${t}`]))},onContextMenu:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),C({x:e.clientX,y:e.clientY,folderIdx:t})})(e,t),onDoubleClick:t=>{t.stopPropagation(),ne(e.id)},className:"cursor-default select-none",children:/* @__PURE__ */Lr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
119
- /* @__PURE__ */Pr("div",{className:`w-12 h-12 flex items-center justify-center ${n?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""} ${a?"rounded-lg ring-4 ring-amber-400 shadow-[0_0_20px_rgba(245,158,11,0.6)]":""}`,children:/* @__PURE__ */Pr(ve,{className:"h-12 w-12 text-amber-500 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)]"})}),R===e.id?/* @__PURE__ */Pr("input",{autoFocus:!0,value:j,onChange:e=>O(e.target.value),onBlur:()=>he(e.id,j),onKeyDown:t=>{"Enter"===t.key&&he(e.id,j),"Escape"===t.key&&W(null)},className:"text-2xs w-full text-center bg-white/80 rounded px-1 outline-none",onClick:e=>e.stopPropagation()}):/* @__PURE__ */Lr("span",{className:"text-2xs font-medium text-center leading-tight w-full drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(n?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:[e.name,o>0?` (${o})`:""]})]})},`folder-${e.id}`)}),g.map(e=>{const t=e.sticky_x??100,r=e.sticky_y??100,n=e.sticky_w??192,o=e.sticky_h??148,l=e.sticky_anchor||"left",i=be[e.color]||be.yellow,s=F===e.id;/* @__PURE__ */
119
+ /* @__PURE__ */Pr("div",{className:`w-12 h-12 flex items-center justify-center ${n?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""} ${a?"rounded-lg ring-4 ring-amber-400 shadow-[0_0_20px_rgba(245,158,11,0.6)]":""}`,children:/* @__PURE__ */Pr(ve,{className:"h-12 w-12 text-amber-500 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)]"})}),R===e.id?/* @__PURE__ */Pr("input",{autoFocus:!0,value:j,onChange:e=>F(e.target.value),onBlur:()=>he(e.id,j),onKeyDown:t=>{"Enter"===t.key&&he(e.id,j),"Escape"===t.key&&W(null)},className:"text-2xs w-full text-center bg-white/80 rounded px-1 outline-none",onClick:e=>e.stopPropagation()}):/* @__PURE__ */Lr("span",{className:"text-2xs font-medium text-center leading-tight w-full drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(n?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:[e.name,o>0?` (${o})`:""]})]})},`folder-${e.id}`)}),g.map(e=>{const t=e.sticky_x??100,r=e.sticky_y??100,n=e.sticky_w??192,o=e.sticky_h??148,l=e.sticky_anchor||"left",i=be[e.color]||be.yellow,s=O===e.id;/* @__PURE__ */
120
120
  return Lr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===l?{right:t}:{left:t},top:r,width:n,height:o,zIndex:e.sticky_on_top?Gt.desktopWidget:s?Gt.window:Gt.raised},onClick:e=>e.stopPropagation(),className:`rounded-lg shadow-lg border ${i} select-none flex flex-col`,children:[
121
121
  /* @__PURE__ */Lr("div",{className:"flex items-center justify-between px-2 py-1 cursor-move border-b border-black/5",onPointerDown:o=>{if(0!==o.button)return;o.preventDefault(),o.stopPropagation();const i=o.target.closest("[data-sticky-id]"),s=i?i.getBoundingClientRect().left-(a.current?.getBoundingClientRect().left??0):"right"===l?window.innerWidth-t-n:t;H({id:e.id,startX:o.clientX,startY:o.clientY,origX:s,origY:r})},children:[
122
122
  /* @__PURE__ */Pr("div",{className:"flex items-center gap-1",children:/* @__PURE__ */Pr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),(e=>{const t=["yellow","blue","green","pink","purple","orange"],r=p.find(t=>t.id===e);if(!r)return;const n=t.indexOf(r.color),a=t[(n+1)%t.length];ge(p.map(t=>t.id===e?{...t,color:a}:t))})(e.id)},title:"Change color",className:"w-3 h-3 rounded-full bg-black/10 hover:bg-black/20 transition-colors"})}),
@@ -126,15 +126,15 @@ return Lr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===l
126
126
  /* @__PURE__ */Pr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12.75 12l3 3 3-3"})]})}),
127
127
  /* @__PURE__ */Pr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,ge(p.map(e=>e.id===r?{...e,sticky:!1}:e))},title:"Unpin from desktop",className:"p-0.5 rounded text-black/20 hover:text-black/50 transition-colors",children:/* @__PURE__ */Pr(sr,{name:"remove",className:"h-3 w-3",strokeWidth:2})}),
128
128
  /* @__PURE__ */Pr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,ge(p.filter(e=>e.id!==r))},title:"Delete note",className:"p-0.5 rounded text-black/20 hover:text-red-500 transition-colors",children:/* @__PURE__ */Pr(sr,{name:"close",className:"h-3 w-3",strokeWidth:2})})]})]}),s?/* @__PURE__ */Pr("textarea",{autoFocus:!0,defaultValue:e.content,onBlur:t=>{fe(e.id,t.target.value),z(null)},onKeyDown:t=>{"Escape"===t.key&&(fe(e.id,t.target.value),z(null))},className:"flex-1 w-full p-2 text-xs leading-relaxed bg-transparent outline-none resize-none placeholder:text-black/30",placeholder:"Write something..."}):/* @__PURE__ */Pr("div",{className:"flex-1 p-2 cursor-text overflow-hidden",onDoubleClick:t=>{t.stopPropagation(),z(e.id)},children:/* @__PURE__ */Pr("div",{className:"text-xs leading-relaxed text-black/70",children:e.content?w(e.id,e.content):/* @__PURE__ */Pr("span",{className:"text-black/30 italic",children:"Double-click to edit..."})})}),
129
- /* @__PURE__ */Pr("div",{className:"absolute bottom-0 right-0 w-4 h-4 cursor-nwse-resize",onPointerDown:t=>{if(0!==t.button)return;t.preventDefault(),t.stopPropagation();const r=t.target.closest("[data-sticky-id]");U({id:e.id,startX:t.clientX,startY:t.clientY,origW:r?.offsetWidth??n,origH:r?.offsetHeight??o})},children:/* @__PURE__ */Lr("svg",{className:"w-3 h-3 text-black/15 absolute bottom-0.5 right-0.5",viewBox:"0 0 12 12",fill:"currentColor",children:[
129
+ /* @__PURE__ */Pr("div",{className:"absolute bottom-0 right-0 w-4 h-4 cursor-nwse-resize",onPointerDown:t=>{if(0!==t.button)return;t.preventDefault(),t.stopPropagation();const r=t.target.closest("[data-sticky-id]");K({id:e.id,startX:t.clientX,startY:t.clientY,origW:r?.offsetWidth??n,origH:r?.offsetHeight??o})},children:/* @__PURE__ */Lr("svg",{className:"w-3 h-3 text-black/15 absolute bottom-0.5 right-0.5",viewBox:"0 0 12 12",fill:"currentColor",children:[
130
130
  /* @__PURE__ */Pr("circle",{cx:"10",cy:"10",r:"1.5"}),
131
131
  /* @__PURE__ */Pr("circle",{cx:"6",cy:"10",r:"1.5"}),
132
132
  /* @__PURE__ */Pr("circle",{cx:"10",cy:"6",r:"1.5"})]})})]},`sticky-${e.id}`)}),E&&/* @__PURE__ */Pr("div",{className:"absolute border border-blue-400 bg-blue-400/10 pointer-events-none",style:{left:Math.min(E.startX,E.endX),top:Math.min(E.startY,E.endY),width:Math.abs(E.endX-E.startX),height:Math.abs(E.endY-E.startY)}}),N&&null==N.itemIdx&&null==N.folderIdx&&/* @__PURE__ */Lr(Dt,{style:Ce(N.x,N.y),children:[
133
133
  /* @__PURE__ */Lr(Rt,{onClick:()=>{const e=a.current?.getBoundingClientRect(),t=N?N.x-(e?.left||0):100,r=N?N.y-(e?.top||0):100,n={id:`note-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,title:"",content:"",color:"yellow",sticky:!0,sticky_x:t,sticky_y:r,updated_at:/* @__PURE__ */(new Date).toISOString()};ge([n,...p]),z(n.id),C(null)},children:[
134
134
  /* @__PURE__ */Pr(sr,{name:"note",className:"h-4 w-4",strokeWidth:1.5}),"New Sticky Note"]}),
135
- /* @__PURE__ */Lr(Rt,{onClick:()=>{const e=a.current?.getBoundingClientRect(),t=e?.width??0,r=N?N.x-(e?.left??0):t-100,n=N?N.y-(e?.top??0):100,o=Math.max(0,t-r-40),l=Math.max(0,n-20),i=`folder-${Date.now()}`;q([...m,{id:i,name:"New Folder",x:o,y:l}]),C(null),W(i),O("New Folder")},children:[
135
+ /* @__PURE__ */Lr(Rt,{onClick:()=>{const e=a.current?.getBoundingClientRect(),t=e?.width??0,r=N?N.x-(e?.left??0):t-100,n=N?N.y-(e?.top??0):100,o=Math.max(0,t-r-40),l=Math.max(0,n-20),i=`folder-${Date.now()}`;q([...m,{id:i,name:"New Folder",x:o,y:l}]),C(null),W(i),F("New Folder")},children:[
136
136
  /* @__PURE__ */Pr(sr,{name:"folder",className:"h-4 w-4",strokeWidth:1.5}),"Create Folder"]}),
137
- /* @__PURE__ */Lr(Rt,{onClick:()=>{const e=a.current?.getBoundingClientRect(),t=e?.height||600,r=Math.max(1,Math.floor(t/On));let n=0;const o=()=>{const e=Math.floor(n/r),t=n%r;return n++,{right:20+e*On,top:10+t*On}},l=m.map(e=>{const t=o();return{...e,x:t.right,y:t.top}});q(l);const i=d.map(e=>{if(e.folderId)return e;const t=o();return{...e,x:t.right,y:t.top}});G(i),C(null)},children:[
137
+ /* @__PURE__ */Lr(Rt,{onClick:()=>{const e=a.current?.getBoundingClientRect(),t=e?.height||600,r=Math.max(1,Math.floor(t/Fn));let n=0;const o=()=>{const e=Math.floor(n/r),t=n%r;return n++,{right:20+e*Fn,top:10+t*Fn}},l=m.map(e=>{const t=o();return{...e,x:t.right,y:t.top}});q(l);const i=d.map(e=>{if(e.folderId)return e;const t=o();return{...e,x:t.right,y:t.top}});G(i),C(null)},children:[
138
138
  /* @__PURE__ */Pr(sr,{name:"grid",className:"h-4 w-4",strokeWidth:1.5}),"Snap to Grid"]}),
139
139
  /* @__PURE__ */Lr(Rt,{onClick:()=>{C(null),A(!0)},children:[
140
140
  /* @__PURE__ */Pr(sr,{name:"widgets",className:"h-4 w-4",strokeWidth:1.5}),"Manage Widgets"]}),!b.includes("perf-stats")&&/* @__PURE__ */Lr(Rt,{onClick:()=>{C(null),s({show_desktop_stats:!0!==c.show_desktop_stats})},children:[
@@ -149,7 +149,7 @@ return Lr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===l
149
149
  /* @__PURE__ */Pr($t,{}),
150
150
  /* @__PURE__ */Pr(Rt,{danger:!0,onClick:()=>(e=>{const t=d.indexOf(te[e]);G(d.filter((e,r)=>r!==t)),C(null)})(N.itemIdx),children:"Remove Shortcut"})]}),N&&null!=N.folderIdx&&/* @__PURE__ */Lr(Dt,{style:Ce(N.x,N.y),minWidth:160,children:[
151
151
  /* @__PURE__ */Pr(Rt,{onClick:()=>{ne(m[N.folderIdx].id),C(null)},children:"Open"}),m[N.folderIdx].id!==Wn&&/* @__PURE__ */Lr(Ir,{children:[
152
- /* @__PURE__ */Pr(Rt,{onClick:()=>{W(m[N.folderIdx].id),O(m[N.folderIdx].name),C(null)},children:"Rename"}),
152
+ /* @__PURE__ */Pr(Rt,{onClick:()=>{W(m[N.folderIdx].id),F(m[N.folderIdx].name),C(null)},children:"Rename"}),
153
153
  /* @__PURE__ */Pr($t,{}),
154
154
  /* @__PURE__ */Pr(Rt,{danger:!0,onClick:()=>(e=>{const t=m[e];if(t.id===Wn)return;const r=d.map(e=>e.folderId===t.id?{...e,folderId:void 0}:e);G(r),q(m.filter((t,r)=>r!==e)),C(null)})(N.folderIdx),children:"Delete Folder"})]})]}),
155
155
  /* @__PURE__ */Pr(an,{open:D,onClose:()=>A(!1)}),M&&(()=>{const e=f.productVersion??Zt;/* @__PURE__ */
@@ -176,8 +176,8 @@ return Pr(Le,{open:!0,onClose:()=>$(!1),title:t.about.whatsNew,size:"md",childre
176
176
  /* @__PURE__ */Pr("span",{className:"text-xs text-gray-400",children:lr(t.date)})]}),
177
177
  /* @__PURE__ */Pr("ul",{className:"space-y-2 ml-1",children:t.changes.map((e,t)=>/* @__PURE__ */Lr("li",{className:"flex items-start gap-2 text-sm text-gray-600",children:[
178
178
  /* @__PURE__ */Pr("span",{className:"text-blue-500 mt-1 shrink-0",children:"•"}),
179
- /* @__PURE__ */Pr(I,{className:"min-w-0 [&_p]:m-0",children:e})]},t))}),r<e.length-1&&/* @__PURE__ */Pr("div",{className:"border-b border-gray-200 mt-4"})]},t.version))})})})()]})}var Un=["shell-uploaded-wallpaper"];function Xn(e,r){const n=Dr(),a=e=>e===t,l=(a(e)||a(r))&&ze(),{data:i}=Ar({queryKey:Un,enabled:l,queryFn:()=>o(),staleTime:3e5,retry:!1}),s=xr(()=>{n.invalidateQueries({queryKey:Un})},[n]);return{url:i?.wallpaper_url??null,refresh:s}}function Vn(e){return"sidebar"===e.layout_mode?"sidebar":"classic"}function Yn(){const{prefs:e}=Nt(),t=Ct();return{layout:t?"sidebar":Vn(e),forced:t}}function Gn(){const{prefs:e,save:t}=Nt();return xr(r=>{const n=Vn(e);t(function(e,t){const r={layout_mode:t};return"classic"===t&&"maximized"===e.default_window_size&&(r.default_window_size="large"),r}(e,r)),"classic"===r&&"classic"===n&&($e(),window.dispatchEvent(new CustomEvent("react-os-shell:restore-windowed")))},[e,t])}function qn(e,t){return`rosh-wtab-${t}-${e.replace(/[^A-Za-z0-9_-]/g,"_")}`}function Jn(e,t){let r=e.route;if("page"!==e.type&&e.entityType){const t=Te[e.entityType];r=t&&Ze(t)?t.icon:void 0}return r?t[r]??void 0:void 0}var Qn=(e,t,r)=>Qe(e)?.menu?.open(t,r),Zn=e=>Qe(e)?.menu?.items()??[];function ea(e,t){const{openWindows:r,remove:n}=Ee(),a=Re();gr(Ge,qe,qe);const o=vr(()=>{const t=r.filter(Je),n=e?t.find(t=>"page"===t.type&&t.route===e):void 0;return n?[n,...t.filter(e=>e!==n)]:t},[r,e]).map(r=>{const n=Qe(r.id),a=!!e&&"page"===r.type&&r.route===e;return{key:r.id,title:n?.title||r.label,icon:Jn(r,t),pinned:a,dirty:n?.dirty??!1,copy:n?.copy}}),l=xr((e,t)=>{const r=t?o.findIndex(e=>e.key===t):-1;o.filter((n,a)=>!n.pinned&&("all"===e||("others"===e?n.key!==t:a>r))).forEach(e=>n(e.key))},[o,n]);return{tabs:o,activeKey:a,remove:n,closeMany:l}}function ta({left:e,navIcons:t,home:r,end:n}){const a=nr().layout,{tabs:o,activeKey:l,remove:i,closeMany:s}=ea(r,t);/* @__PURE__ */
180
- return Pr("div",{className:"fixed top-0 right-0 z-(--z-taskbar)",style:{left:e,height:st},children:/* @__PURE__ */Pr(E,{tabs:o,activeKey:l,idFor:qn,onActivate:Ue,onClose:i,onCloseMany:s,label:a.openWindows,className:"relative flex h-full shrink-0 items-end gap-3 bg-gray-100 pl-3 pr-4",activeClassName:"z-[1] border-gray-200 bg-[rgb(var(--window-content-rgb))] text-gray-900",end:n,onIconMenu:Qn,menuItems:Zn})})}function ra({onComplete:e,ready:t=!1,productName:r="efficient-shell",subtitle:n,logo:a="/favicon.svg",adaptiveLogo:o=!1,logoHasAlpha:l=null,logoIsLight:i=null}){const[s,c]=fr("logo"),[d,u]=fr(!1),m=yr(e);m.current=e;const h=yr(!1);return br(()=>{const e=setTimeout(()=>c("text"),600),t=setTimeout(()=>u(!0),2e3),r=setTimeout(()=>{h.current||(h.current=!0,c("fade"),setTimeout(()=>m.current(),500))},5e3);return()=>{clearTimeout(e),clearTimeout(t),clearTimeout(r)}},[]),br(()=>{if(!t||!d||h.current)return;h.current=!0,c("fade");const e=setTimeout(()=>m.current(),500);return()=>clearTimeout(e)},[t,d]),/* @__PURE__ */Lr("div",{"data-startup-animation":"",className:"fixed inset-0 z-(--z-overlay) flex flex-col items-center justify-center transition-opacity duration-500 "+("fade"===s?"opacity-0 pointer-events-none":"opacity-100"),style:{background:"linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)"},children:[
179
+ /* @__PURE__ */Pr(I,{className:"min-w-0 [&_p]:m-0",children:e})]},t))}),r<e.length-1&&/* @__PURE__ */Pr("div",{className:"border-b border-gray-200 mt-4"})]},t.version))})})})()]})}var Kn=["shell-uploaded-wallpaper"];function Xn(e,r){const n=Dr(),a=e=>e===t,l=(a(e)||a(r))&&ze(),{data:i}=Ar({queryKey:Kn,enabled:l,queryFn:()=>o(),staleTime:3e5,retry:!1}),s=xr(()=>{n.invalidateQueries({queryKey:Kn})},[n]);return{url:i?.wallpaper_url??null,refresh:s}}function Vn(e){return"sidebar"===e.layout_mode?"sidebar":"classic"}function Yn(){const{prefs:e}=Nt(),t=Ct();return{layout:t?"sidebar":Vn(e),forced:t}}function Gn(){const{prefs:e,save:t}=Nt();return xr(r=>{const n=Vn(e);t(function(e,t){const r={layout_mode:t};return"classic"===t&&"maximized"===e.default_window_size&&(r.default_window_size="large"),r}(e,r)),"classic"===r&&"classic"===n&&($e(),window.dispatchEvent(new CustomEvent("react-os-shell:restore-windowed")))},[e,t])}function qn(e,t){return`rosh-wtab-${t}-${e.replace(/[^A-Za-z0-9_-]/g,"_")}`}function Jn(e,t){let r=e.route;if("page"!==e.type&&e.entityType){const t=Te[e.entityType];r=t&&Ze(t)?t.icon:void 0}return r?t[r]??void 0:void 0}var Qn=(e,t,r)=>Qe(e)?.menu?.open(t,r),Zn=e=>Qe(e)?.menu?.items()??[];function ea(e,t){const{openWindows:r,remove:n}=Ee(),a=Re();gr(Ge,qe,qe);const o=vr(()=>{const t=r.filter(Je),n=e?t.find(t=>"page"===t.type&&t.route===e):void 0;return n?[n,...t.filter(e=>e!==n)]:t},[r,e]).map(r=>{const n=Qe(r.id),a=!!e&&"page"===r.type&&r.route===e;return{key:r.id,title:n?.title||r.label,icon:Jn(r,t),pinned:a,dirty:n?.dirty??!1,copy:n?.copy}}),l=xr((e,t)=>{const r=t?o.findIndex(e=>e.key===t):-1;o.filter((n,a)=>!n.pinned&&("all"===e||("others"===e?n.key!==t:a>r))).forEach(e=>n(e.key))},[o,n]);return{tabs:o,activeKey:a,remove:n,closeMany:l}}function ta({left:e,navIcons:t,home:r,end:n}){const a=nr().layout,{tabs:o,activeKey:l,remove:i,closeMany:s}=ea(r,t);/* @__PURE__ */
180
+ return Pr("div",{className:"fixed top-0 right-0 z-(--z-taskbar)",style:{left:e,height:st},children:/* @__PURE__ */Pr(E,{tabs:o,activeKey:l,idFor:qn,onActivate:Ke,onClose:i,onCloseMany:s,label:a.openWindows,className:"relative flex h-full shrink-0 items-end gap-3 bg-gray-100 pl-3 pr-4",activeClassName:"z-[1] border-gray-200 bg-[rgb(var(--window-content-rgb))] text-gray-900",end:n,onIconMenu:Qn,menuItems:Zn})})}function ra({onComplete:e,ready:t=!1,productName:r="efficient-shell",subtitle:n,logo:a="/favicon.svg",adaptiveLogo:o=!1,logoHasAlpha:l=null,logoIsLight:i=null}){const[s,c]=fr("logo"),[d,u]=fr(!1),m=yr(e);m.current=e;const h=yr(!1);return br(()=>{const e=setTimeout(()=>c("text"),600),t=setTimeout(()=>u(!0),2e3),r=setTimeout(()=>{h.current||(h.current=!0,c("fade"),setTimeout(()=>m.current(),500))},5e3);return()=>{clearTimeout(e),clearTimeout(t),clearTimeout(r)}},[]),br(()=>{if(!t||!d||h.current)return;h.current=!0,c("fade");const e=setTimeout(()=>m.current(),500);return()=>clearTimeout(e)},[t,d]),/* @__PURE__ */Lr("div",{"data-startup-animation":"",className:"fixed inset-0 z-(--z-overlay) flex flex-col items-center justify-center transition-opacity duration-500 "+("fade"===s?"opacity-0 pointer-events-none":"opacity-100"),style:{background:"linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)"},children:[
181
181
  /* @__PURE__ */Pr("div",{className:"absolute inset-0 overflow-hidden",children:/* @__PURE__ */Pr("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full opacity-20",style:{background:"radial-gradient(circle, rgba(124,58,237,0.4) 0%, transparent 70%)",animation:"pulse-glow 2s ease-in-out infinite"}})}),
182
182
  /* @__PURE__ */Pr("div",{className:"relative transition-all duration-700 ease-out "+("logo"===s?"scale-75 opacity-0":"scale-100 opacity-100"),children:/* @__PURE__ */Pr(oe,{src:a,alt:"",slot:"compact",surface:"dark",size:80,adaptive:o,hasAlpha:l,isLight:i,decorative:!0,className:"drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]",style:{animation:"spin-in 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards"}})}),
183
183
  /* @__PURE__ */Lr("div",{className:"mt-6 text-center transition-all duration-500 "+("logo"!==s?"opacity-100 translate-y-0":"opacity-0 translate-y-4"),children:[
@@ -189,8 +189,8 @@ return Pr("div",{className:"fixed top-0 right-0 z-(--z-taskbar)",style:{left:e,h
189
189
  /* @__PURE__ */Lr("div",{className:"mt-6 text-center transition-all duration-700 "+("show"===l?"opacity-100 translate-y-0":"opacity-0 translate-y-4"),children:[
190
190
  /* @__PURE__ */Pr("h1",{className:"text-2xl font-bold tracking-[0.3em] text-white/90 uppercase",children:s.logout.goodbye}),
191
191
  /* @__PURE__ */Pr("p",{className:"mt-2 text-xs text-white/40",children:s.logout.seeYou})]}),t&&/* @__PURE__ */Pr("div",{className:"absolute bottom-8 transition-all duration-500 "+("show"===l?"opacity-40":"opacity-0"),children:/* @__PURE__ */Pr("p",{className:"text-2xs text-white/40 font-mono tracking-wider",children:t})}),
192
- /* @__PURE__ */Pr("style",{children:"\n @keyframes logout-glow {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.15; }\n 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }\n }\n /* Reduced motion: same contract as StartupAnimation — fades stay,\n * movement goes, the 2300ms cover-and-swap timing is untouched. */\n @media (prefers-reduced-motion: reduce) {\n [data-logout-animation], [data-logout-animation] * {\n animation: none !important;\n transition-property: opacity !important;\n }\n }\n "})]})}function aa(e,t){return e.length===t.length&&e.every((e,r)=>e.type===t[r].type&&e.route===t[r].route&&e.entityType===t[r].entityType&&e.entityId===t[r].entityId&&e.label===t[r].label)}function oa(){const{openWindows:e,openEntity:t,openPage:r}=Ee(),{prefs:n,save:a}=_t(),o=yr(!1),l=yr([]),i=yr(null),s=yr(0),c=yr(void 0);return br(()=>{if(o.current)return;o.current=!0;const a=Array.isArray(n.session_windows)?n.session_windows:[];if(l.current=a,!1!==n.restore_windows&&!(e.length>0))for(const e of a)"page"===e.type&&e.route?r(e.route):"entity"===e.type&&e.entityType&&e.entityId&&!Ke(e.entityId)&&t(e.entityType,e.entityId,void 0,e.label,e.route)},[]),br(()=>{if(!o.current)return;clearTimeout(c.current);const t=function(e){const t=[];for(const r of e)r.shellOwned||("page"===r.type&&r.route?t.push({type:"page",route:r.route}):r.entityType&&r.entityId&&"part_number"!==r.type&&!Ye(r)&&t.push({type:"entity",entityType:r.entityType,entityId:r.entityId,label:r.label,route:r.route}));return t}(e);return aa(t,l.current)||i.current&&aa(t,i.current)?void 0:(c.current=setTimeout(()=>{const e=++s.current;i.current=t,Promise.resolve(a({session_windows:t})).then(()=>{e===s.current&&(l.current=t,i.current=null)}).catch(()=>{e===s.current&&(i.current=null)})},800),()=>clearTimeout(c.current))},[e,a]),null}T.menu;var la=e=>e.menuLabel??e.label,ia=e=>Boolean(e.menuLabel&&e.menuLabel!==e.label),sa=e=>ia(e)?`${e.menuLabel}, ${e.label}`:void 0;function ca({entry:e,className:t}){const r=ia(e),[n,a]=fr(r);/* @__PURE__ */
193
- return Pr("span",{className:t,title:n?e.label:void 0,"data-menu-label":!0,onMouseEnter:e=>a(r||e.currentTarget.scrollWidth>e.currentTarget.clientWidth),children:la(e)})}function da({left:e,anchorY:t,estHeight:r,minTop:n,maxBottom:a,flipped:o,className:l,style:i,onMouseEnter:s,onMouseLeave:c,children:d}){const u=yr(null);return wr(()=>{const e=u.current;e&&(e.style.top=`${Kt(t,e.offsetHeight,n,a)}px`)}),/* @__PURE__ */Pr("div",{ref:u,"data-menu-panel":!0,className:`fixed rounded-(--radius-popup) overflow-hidden ${l??""}`,style:{left:e,top:Kt(t,r,n,a),animation:(o?"submenu-in-left":"submenu-in")+" 0.1s ease-out",...i},onMouseEnter:s,onMouseLeave:c,children:d})}function ua({open:e,onClose:t,openPage:r,profile:n,user:a,onLogout:o,taskbarPosition:l,taskbarH:i,taskbarW:s=0,taskbarGap:c=4,size:d="medium",navSections:u=tt,navIcons:m=rt,sectionIcons:h=nt,categories:p=et}){const g=new Set(p.erp),f=new Set(p.system),b=new Set(p.footer??[]),y=p.virtual??[],x=Object.fromEntries(y.map(e=>[e.label,e])),{hasAnyPerm:v}=w(),k=(p.footerItems??[]).filter(e=>Et(e,v)),N=Ct(),[C,S]=fr([]),[_,E]=fr(""),[M,L]=fr(0),P=yr(null),I=yr();br(()=>{e||(E(""),S([]),L(0))},[e]),br(()=>()=>clearTimeout(I.current),[]);const D=C.length>0?C[C.length-1].key:null;if(br(()=>{e&&De("menu","start")},[e]),br(()=>{D&&De("submenu",D)},[D]),br(()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()},n=e=>{e.target.closest("[data-menu-toggle]")||P.current&&!P.current.contains(e.target)&&t()};return window.addEventListener("keydown",r),window.addEventListener("pointerdown",n),()=>{window.removeEventListener("keydown",r),window.removeEventListener("pointerdown",n)}},[e,t]),!e)return null;const A=e=>{r(e),t()},R=e=>{if(e.onSelect)return e.onSelect(),void t();A(e.to)};if(N){const e=[],r=(t,n)=>{if(Et(t,v)&&Mt(t,v)){e.push({item:t,sectionLabel:n});for(const e of Lt(t,v))r(e,t.label)}};for(const e of u)if(Tt(e)){const t=e;if(!Et(t,v))continue;for(const e of t.items)r(e,t.label)}else r(e);for(const e of k)r(e);const n=_.length>=1?e.filter(({item:e})=>e.label.toLowerCase().includes(_.toLowerCase())):e;/* @__PURE__ */
192
+ /* @__PURE__ */Pr("style",{children:"\n @keyframes logout-glow {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.15; }\n 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }\n }\n /* Reduced motion: same contract as StartupAnimation — fades stay,\n * movement goes, the 2300ms cover-and-swap timing is untouched. */\n @media (prefers-reduced-motion: reduce) {\n [data-logout-animation], [data-logout-animation] * {\n animation: none !important;\n transition-property: opacity !important;\n }\n }\n "})]})}function aa(e,t){return e.length===t.length&&e.every((e,r)=>e.type===t[r].type&&e.route===t[r].route&&e.entityType===t[r].entityType&&e.entityId===t[r].entityId&&e.label===t[r].label)}function oa(){const{openWindows:e,openEntity:t,openPage:r}=Ee(),{prefs:n,save:a}=_t(),o=yr(!1),l=yr([]),i=yr(null),s=yr(0),c=yr(void 0);return br(()=>{if(o.current)return;o.current=!0;const a=Array.isArray(n.session_windows)?n.session_windows:[];if(l.current=a,!1!==n.restore_windows&&!(e.length>0))for(const e of a)"page"===e.type&&e.route?r(e.route):"entity"===e.type&&e.entityType&&e.entityId&&!Ue(e.entityId)&&t(e.entityType,e.entityId,void 0,e.label,e.route)},[]),br(()=>{if(!o.current)return;clearTimeout(c.current);const t=function(e){const t=[];for(const r of e)r.shellOwned||("page"===r.type&&r.route?t.push({type:"page",route:r.route}):r.entityType&&r.entityId&&"part_number"!==r.type&&!Ye(r)&&t.push({type:"entity",entityType:r.entityType,entityId:r.entityId,label:r.label,route:r.route}));return t}(e);return aa(t,l.current)||i.current&&aa(t,i.current)?void 0:(c.current=setTimeout(()=>{const e=++s.current;i.current=t,Promise.resolve(a({session_windows:t})).then(()=>{e===s.current&&(l.current=t,i.current=null)}).catch(()=>{e===s.current&&(i.current=null)})},800),()=>clearTimeout(c.current))},[e,a]),null}T.menu;var la=e=>e.menuLabel??e.label,ia=e=>Boolean(e.menuLabel&&e.menuLabel!==e.label),sa=e=>ia(e)?`${e.menuLabel}, ${e.label}`:void 0;function ca({entry:e,className:t}){const r=ia(e),[n,a]=fr(r);/* @__PURE__ */
193
+ return Pr("span",{className:t,title:n?e.label:void 0,"data-menu-label":!0,onMouseEnter:e=>a(r||e.currentTarget.scrollWidth>e.currentTarget.clientWidth),children:la(e)})}function da({left:e,anchorY:t,estHeight:r,minTop:n,maxBottom:a,flipped:o,className:l,style:i,onMouseEnter:s,onMouseLeave:c,children:d}){const u=yr(null);return wr(()=>{const e=u.current;e&&(e.style.top=`${Ut(t,e.offsetHeight,n,a)}px`)}),/* @__PURE__ */Pr("div",{ref:u,"data-menu-panel":!0,className:`fixed rounded-(--radius-popup) overflow-hidden ${l??""}`,style:{left:e,top:Ut(t,r,n,a),animation:(o?"submenu-in-left":"submenu-in")+" 0.1s ease-out",...i},onMouseEnter:s,onMouseLeave:c,children:d})}function ua({open:e,onClose:t,openPage:r,profile:n,user:a,onLogout:o,taskbarPosition:l,taskbarH:i,taskbarW:s=0,taskbarGap:c=4,size:d="medium",navSections:u=tt,navIcons:m=rt,sectionIcons:h=nt,categories:p=et}){const g=new Set(p.erp),f=new Set(p.system),b=new Set(p.footer??[]),y=p.virtual??[],x=Object.fromEntries(y.map(e=>[e.label,e])),{hasAnyPerm:v}=w(),k=(p.footerItems??[]).filter(e=>Et(e,v)),N=Ct(),[C,S]=fr([]),[_,E]=fr(""),[M,L]=fr(0),P=yr(null),I=yr();br(()=>{e||(E(""),S([]),L(0))},[e]),br(()=>()=>clearTimeout(I.current),[]);const D=C.length>0?C[C.length-1].key:null;if(br(()=>{e&&De("menu","start")},[e]),br(()=>{D&&De("submenu",D)},[D]),br(()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()},n=e=>{e.target.closest("[data-menu-toggle]")||P.current&&!P.current.contains(e.target)&&t()};return window.addEventListener("keydown",r),window.addEventListener("pointerdown",n),()=>{window.removeEventListener("keydown",r),window.removeEventListener("pointerdown",n)}},[e,t]),!e)return null;const A=e=>{r(e),t()},R=e=>{if(e.onSelect)return e.onSelect(),void t();A(e.to)};if(N){const e=[],r=(t,n)=>{if(Et(t,v)&&Mt(t,v)){e.push({item:t,sectionLabel:n});for(const e of Lt(t,v))r(e,t.label)}};for(const e of u)if(Tt(e)){const t=e;if(!Et(t,v))continue;for(const e of t.items)r(e,t.label)}else r(e);for(const e of k)r(e);const n=_.length>=1?e.filter(({item:e})=>e.label.toLowerCase().includes(_.toLowerCase())):e;/* @__PURE__ */
194
194
  return Lr("div",{ref:P,className:"fixed inset-0 z-(--z-sidebar) flex flex-col bg-white",style:{paddingBottom:"var(--mobile-bottom-nav, 56px)"},children:[
195
195
  /* @__PURE__ */Lr("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-gray-200",children:[
196
196
  /* @__PURE__ */Pr("button",{onClick:t,className:"p-2 -ml-1 rounded-full active:bg-gray-200 text-gray-700","aria-label":"Close menu",children:/* @__PURE__ */Pr(sr,{name:"close",className:"h-5 w-5",strokeWidth:2})}),
@@ -201,7 +201,7 @@ return Lr("div",{ref:P,className:"fixed inset-0 z-(--z-sidebar) flex flex-col bg
201
201
  return Lr("button",{onClick:()=>R(e),"aria-label":sa(e),className:"w-full flex items-center gap-3 px-4 py-3 active:bg-gray-100 border-b border-gray-100 text-left",children:[
202
202
  /* @__PURE__ */Pr("span",{className:"h-8 w-8 rounded-lg bg-gray-100 flex items-center justify-center text-gray-600 shrink-0",children:n&&Nr(n)?Cr(n,{className:"h-5 w-5"}):null}),
203
203
  /* @__PURE__ */Lr("div",{className:"min-w-0 flex-1",children:[
204
- /* @__PURE__ */Pr(ca,{entry:e,className:"block truncate text-sm font-medium text-gray-900"}),t&&/* @__PURE__ */Pr("div",{className:"text-2xs text-gray-500 truncate",children:t})]})]},`${e.to}-${r}`)})})]})}const W="bottom"!==l,j=u.filter(e=>!Tt(e)).filter(e=>Et(e,v)&&Mt(e,v)),O=u.filter(e=>Tt(e)&&g.has(e.label)),F=u.filter(e=>Tt(e)&&f.has(e.label)),z=u.filter(e=>Tt(e)&&b.has(e.label)),B=j.length>0||F.length>0||y.length>0,H=0===F.length&&0===y.length&&!!j[j.length-1]?.dividerAfter,K=e=>e.items.filter(e=>Et(e,v)),U=e=>Lt(e,v),X=e=>U(e).filter(e=>Mt(e,v)),V=(e,t)=>{if(!Et(e,v))return[];if(!Mt(e,v))return[];const r=U(e),n=[];e.label.toLowerCase().includes(_.toLowerCase())&&n.push({...e,section:t});for(const t of r)n.push(...V(t,e.label));return n},Y=_.length>=2?[...u.flatMap(e=>{if(Tt(e)){const t=e;return t.items.flatMap(e=>V(e,t.label))}return V(e,"")}),...k.flatMap(e=>V(e,""))]:[],G="top"===l?{top:i+c,left:8}:"left"===l?{top:8,left:s+c}:"right"===l?{top:8,right:s+c}:{bottom:i+c,left:8},q=/* @__PURE__ */Pr("span",{"aria-hidden":"true","data-icon-slot":"",className:"h-4 w-4 shrink-0"}),J=e=>Nr(m[e]),Q=[...j,...k].some(e=>J(e.to))||[...O,...F,...z].some(e=>{return t=e.label,Nr(h[t]);var t})||y.some(e=>!!e.icon),Z=(e,t=Q)=>{const r=m[e];return r&&Nr(r)?Cr(r,{className:"h-4 w-4 shrink-0"}):t?q:null},ee=e=>{const t=h[e];return t&&Nr(t)?Cr(t,{className:"h-4 w-4 shrink-0"}):Q?q:null},te=C.length>0?C[0].key:null,re=te?x[te]:void 0,ne=re?null:te?[...O,...F,...z].find(e=>e.label===te):null,ae=(re?re.items:ne?K(ne):[]).filter(e=>Mt(e,v)),oe="undefined"!=typeof document&&getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal",le="tight"===oe||"large"===oe?oe:"normal",ie={tight:{small:{w:"w-52",fw:"w-44",fwPx:176,text:"text-xs",py:"py-1",px:"px-3",mw:208,itemH:24},medium:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-1",px:"px-3",mw:224,itemH:26},large:{w:"w-64",fw:"w-52",fwPx:208,text:"text-sm",py:"h-(--control-height-md)",px:"px-3",mw:256,itemH:$.md}},normal:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"h-(--control-height-md)",px:"px-3",mw:224,itemH:$.md},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"h-(--row-height-menu)",px:"px-4",mw:256,itemH:T.menu},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"h-(--control-height-lg)",px:"px-4",mw:288,itemH:$.lg}},large:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-2",px:"px-3",mw:224,itemH:32},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"py-2",px:"px-4",mw:256,itemH:36},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"py-2",px:"px-4",mw:288,itemH:36}}}[le][d],se=Yt(),ce=`w-full min-w-0 overflow-hidden whitespace-nowrap flex items-center gap-2 rounded-lg ${ie.px} ${ie.py} ${ie.text}`,de="min-w-0 flex-1 truncate text-left",ue="undefined"!=typeof window?window.innerHeight:800,me="undefined"!=typeof window?window.innerWidth:1280,he=("top"===l?i:0)+8,pe=ue-("bottom"===l?i:0)-8,fe=Math.max(0,pe-he),be=Wt(ae,C,X),ye=()=>clearTimeout(I.current),xe=(e,t)=>{const r=t.closest("[data-menu-panel]");if(!r)return{left:0,flipped:!1};const n=0===e?r.getBoundingClientRect().left:C[e-1]?.left??0,a=0===e?r.getBoundingClientRect().right:n+r.offsetWidth,o=e>0&&(C[e-1]?.flipped??!1);return Ut(n,a,ie.fwPx,me,4,o)},we=(e,t,r)=>{ye();const n=r.currentTarget,a=n.getBoundingClientRect(),o={key:t,y:a.top+a.height/2,...xe(e,n)};S(t=>Bt(t,e,o))},ve=e=>{ye(),I.current=setTimeout(()=>S(t=>Ht(t,e)),200)},ke=/* @__PURE__ */Pr(sr,{name:"chevron-right",className:"h-3.5 w-3.5 shrink-0 ml-auto",strokeWidth:2}),Ne=(e,t)=>{if(!Et(e,v))return null;if(0===K(e).length)return null;const r=te===e.label;/* @__PURE__ */
204
+ /* @__PURE__ */Pr(ca,{entry:e,className:"block truncate text-sm font-medium text-gray-900"}),t&&/* @__PURE__ */Pr("div",{className:"text-2xs text-gray-500 truncate",children:t})]})]},`${e.to}-${r}`)})})]})}const W="bottom"!==l,j=u.filter(e=>!Tt(e)).filter(e=>Et(e,v)&&Mt(e,v)),F=u.filter(e=>Tt(e)&&g.has(e.label)),O=u.filter(e=>Tt(e)&&f.has(e.label)),z=u.filter(e=>Tt(e)&&b.has(e.label)),B=j.length>0||O.length>0||y.length>0,H=0===O.length&&0===y.length&&!!j[j.length-1]?.dividerAfter,U=e=>e.items.filter(e=>Et(e,v)),K=e=>Lt(e,v),X=e=>K(e).filter(e=>Mt(e,v)),V=(e,t)=>{if(!Et(e,v))return[];if(!Mt(e,v))return[];const r=K(e),n=[];e.label.toLowerCase().includes(_.toLowerCase())&&n.push({...e,section:t});for(const t of r)n.push(...V(t,e.label));return n},Y=_.length>=2?[...u.flatMap(e=>{if(Tt(e)){const t=e;return t.items.flatMap(e=>V(e,t.label))}return V(e,"")}),...k.flatMap(e=>V(e,""))]:[],G="top"===l?{top:i+c,left:8}:"left"===l?{top:8,left:s+c}:"right"===l?{top:8,right:s+c}:{bottom:i+c,left:8},q=/* @__PURE__ */Pr("span",{"aria-hidden":"true","data-icon-slot":"",className:"h-4 w-4 shrink-0"}),J=e=>Nr(m[e]),Q=[...j,...k].some(e=>J(e.to))||[...F,...O,...z].some(e=>{return t=e.label,Nr(h[t]);var t})||y.some(e=>!!e.icon),Z=(e,t=Q)=>{const r=m[e];return r&&Nr(r)?Cr(r,{className:"h-4 w-4 shrink-0"}):t?q:null},ee=e=>{const t=h[e];return t&&Nr(t)?Cr(t,{className:"h-4 w-4 shrink-0"}):Q?q:null},te=C.length>0?C[0].key:null,re=te?x[te]:void 0,ne=re?null:te?[...F,...O,...z].find(e=>e.label===te):null,ae=(re?re.items:ne?U(ne):[]).filter(e=>Mt(e,v)),oe="undefined"!=typeof document&&getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal",le="tight"===oe||"large"===oe?oe:"normal",ie={tight:{small:{w:"w-52",fw:"w-44",fwPx:176,text:"text-xs",py:"py-1",px:"px-3",mw:208,itemH:24},medium:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-1",px:"px-3",mw:224,itemH:26},large:{w:"w-64",fw:"w-52",fwPx:208,text:"text-sm",py:"h-(--control-height-md)",px:"px-3",mw:256,itemH:$.md}},normal:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"h-(--control-height-md)",px:"px-3",mw:224,itemH:$.md},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"h-(--row-height-menu)",px:"px-4",mw:256,itemH:T.menu},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"h-(--control-height-lg)",px:"px-4",mw:288,itemH:$.lg}},large:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-2",px:"px-3",mw:224,itemH:32},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"py-2",px:"px-4",mw:256,itemH:36},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"py-2",px:"px-4",mw:288,itemH:36}}}[le][d],se=Yt(),ce=`w-full min-w-0 overflow-hidden whitespace-nowrap flex items-center gap-2 rounded-lg ${ie.px} ${ie.py} ${ie.text}`,de="min-w-0 flex-1 truncate text-left",ue="undefined"!=typeof window?window.innerHeight:800,me="undefined"!=typeof window?window.innerWidth:1280,he=("top"===l?i:0)+8,pe=ue-("bottom"===l?i:0)-8,fe=Math.max(0,pe-he),be=Wt(ae,C,X),ye=()=>clearTimeout(I.current),xe=(e,t)=>{const r=t.closest("[data-menu-panel]");if(!r)return{left:0,flipped:!1};const n=0===e?r.getBoundingClientRect().left:C[e-1]?.left??0,a=0===e?r.getBoundingClientRect().right:n+r.offsetWidth,o=e>0&&(C[e-1]?.flipped??!1);return Kt(n,a,ie.fwPx,me,4,o)},we=(e,t,r)=>{ye();const n=r.currentTarget,a=n.getBoundingClientRect(),o={key:t,y:a.top+a.height/2,...xe(e,n)};S(t=>Bt(t,e,o))},ve=e=>{ye(),I.current=setTimeout(()=>S(t=>Ht(t,e)),200)},ke=/* @__PURE__ */Pr(sr,{name:"chevron-right",className:"h-3.5 w-3.5 shrink-0 ml-auto",strokeWidth:2}),Ne=(e,t)=>{if(!Et(e,v))return null;if(0===U(e).length)return null;const r=te===e.label;/* @__PURE__ */
205
205
  return Lr("div",{onMouseEnter:t=>we(0,e.label,t),children:[
206
206
  /* @__PURE__ */Lr("button",{"aria-label":sa(e),className:`${ce} transition-colors ${r?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[ee(e.label),
207
207
  /* @__PURE__ */Pr(ca,{entry:e,className:`${de} ${t?"font-medium":""}`}),ke]}),e.dividerAfter&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.label)},Ce=e=>{if(0===e.items.length)return null;const t=te===e.label;/* @__PURE__ */
@@ -215,11 +215,11 @@ return Lr("div",{ref:P,className:"fixed z-(--z-start-menu)",style:G,children:[
215
215
  /* @__PURE__ */Pr(sr,{name:"search",className:`h-3.5 w-3.5 shrink-0 ${ge}`,strokeWidth:2}),
216
216
  /* @__PURE__ */Pr("input",{value:_,onChange:e=>{E(e.target.value),S([]),L(0)},onKeyDown:e=>{_.length>=2&&Y.length>0&&("ArrowDown"===e.key?(e.preventDefault(),L(e=>Math.min(e+1,Y.length-1))):"ArrowUp"===e.key?(e.preventDefault(),L(e=>Math.max(e-1,0))):"Enter"===e.key&&(e.preventDefault(),R(Y[M])))},placeholder:"Search...",className:"flex-1 bg-transparent text-xs outline-none placeholder-gray-400",autoFocus:!0})]})}),_.length>=2?/* @__PURE__ */Pr("div",{className:"flex-1 overflow-y-auto overflow-x-hidden px-1 pb-2 max-h-[400px]",children:0===Y.length?/* @__PURE__ */Pr("p",{className:"text-xs text-gray-400 text-center py-4",children:"No results"}):Y.map((e,t)=>/* @__PURE__ */Lr("button",{onClick:()=>R(e),onMouseEnter:()=>L(t),"aria-label":sa(e),className:`${ce} transition-colors ${t===M?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[Z(e.to),
217
217
  /* @__PURE__ */Pr(ca,{entry:e,className:de}),e.section&&/* @__PURE__ */Pr("span",{className:"max-w-[40%] shrink-0 truncate text-2xs text-gray-400 ml-auto",children:e.section})]},t))}):/* @__PURE__ */Lr("div",{className:"flex-1 overflow-y-auto overflow-x-hidden px-1 pb-1 flex flex-col",children:[W&&/* @__PURE__ */Lr(Ir,{children:[k.map(e=>/* @__PURE__ */Lr("button",{onClick:()=>R(e),onMouseEnter:()=>ve(0),"aria-label":sa(e),className:`${ce} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,children:[Z(e.to),
218
- /* @__PURE__ */Pr(ca,{entry:e,className:de})]},e.to)),z.map(e=>Ne(e,!1)),(z.length>0||k.length>0)&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),O.map(e=>Ne(e,!0)),O.length>0&&B&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),j.map(e=>/* @__PURE__ */Lr("div",{onMouseEnter:()=>ve(0),children:[
218
+ /* @__PURE__ */Pr(ca,{entry:e,className:de})]},e.to)),z.map(e=>Ne(e,!1)),(z.length>0||k.length>0)&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),F.map(e=>Ne(e,!0)),F.length>0&&B&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),j.map(e=>/* @__PURE__ */Lr("div",{onMouseEnter:()=>ve(0),children:[
219
219
  /* @__PURE__ */Lr("button",{onClick:()=>R(e),"aria-label":sa(e),className:`${ce} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,children:[Z(e.to),
220
- /* @__PURE__ */Pr(ca,{entry:e,className:de})]}),e.dividerAfter&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.to)),F.map(e=>Ne(e,!1)),y.map(e=>Ce(e))]}),!W&&/* @__PURE__ */Lr(Ir,{children:[j.map(e=>/* @__PURE__ */Lr("div",{onMouseEnter:()=>ve(0),children:[
220
+ /* @__PURE__ */Pr(ca,{entry:e,className:de})]}),e.dividerAfter&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.to)),O.map(e=>Ne(e,!1)),y.map(e=>Ce(e))]}),!W&&/* @__PURE__ */Lr(Ir,{children:[j.map(e=>/* @__PURE__ */Lr("div",{onMouseEnter:()=>ve(0),children:[
221
221
  /* @__PURE__ */Lr("button",{onClick:()=>R(e),"aria-label":sa(e),className:`${ce} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,children:[Z(e.to),
222
- /* @__PURE__ */Pr(ca,{entry:e,className:de})]}),e.dividerAfter&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.to)),F.map(e=>Ne(e,!1)),y.map(e=>Ce(e)),B&&O.length>0&&!H&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),O.map(e=>Ne(e,!0)),(z.length>0||k.length>0)&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),z.map(e=>Ne(e,!1)),k.map(e=>/* @__PURE__ */Lr("button",{onClick:()=>R(e),onMouseEnter:()=>ve(0),"aria-label":sa(e),className:`${ce} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,children:[Z(e.to),
222
+ /* @__PURE__ */Pr(ca,{entry:e,className:de})]}),e.dividerAfter&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.to)),O.map(e=>Ne(e,!1)),y.map(e=>Ce(e)),B&&F.length>0&&!H&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),F.map(e=>Ne(e,!0)),(z.length>0||k.length>0)&&/* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-2 mx-2"}),z.map(e=>Ne(e,!1)),k.map(e=>/* @__PURE__ */Lr("button",{onClick:()=>R(e),onMouseEnter:()=>ve(0),"aria-label":sa(e),className:`${ce} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,children:[Z(e.to),
223
223
  /* @__PURE__ */Pr(ca,{entry:e,className:de})]},e.to))]})]}),
224
224
  /* @__PURE__ */Pr("div",{className:(W?"border-b":"border-t")+" border-white/20 p-1",onMouseEnter:()=>ve(0),children:/* @__PURE__ */Lr("div",{onClick:()=>A("/profile"),className:"rounded-lg h-8 px-2 flex items-center gap-3 hover:bg-blue-50 hover:text-blue-700 transition-colors cursor-pointer",children:[n?.avatar_url?/* @__PURE__ */Pr("img",{src:n.avatar_url,alt:"",className:"h-8 w-8 rounded-full object-cover border border-white/20 shrink-0"}):/* @__PURE__ */Pr("div",{className:"h-8 w-8 rounded-full bg-blue-100 flex items-center justify-center text-sm font-bold text-blue-700 shrink-0",children:(n?.first_name?.charAt(0)||a?.email?.charAt(0)||"?").toUpperCase()}),
225
225
  /* @__PURE__ */Pr("p",{className:"flex-1 min-w-0 text-sm font-medium text-gray-900 truncate",children:n?.first_name?`${n.first_name} ${n.last_name||""}`.trim():a?.email}),
@@ -244,10 +244,10 @@ return Lr(Ir,{children:[a&&/* @__PURE__ */Lr("div",{"data-phone-app-banner":!0,c
244
244
  /* @__PURE__ */Pr("div",{className:"mx-auto mb-3 h-1 w-9 rounded-full bg-gray-300","aria-hidden":"true"}),
245
245
  /* @__PURE__ */Pr("h2",{className:"mb-2 px-2 text-sm font-semibold text-gray-900",children:o.layout.openTabs}),
246
246
  /* @__PURE__ */Pr("ul",{className:"space-y-0.5",children:l.map(e=>/* @__PURE__ */Lr("li",{className:"flex items-center gap-1 rounded-md "+(e.key===i?"bg-gray-100":""),children:[
247
- /* @__PURE__ */Lr("button",{type:"button","aria-current":e.key===i?"page":void 0,onClick:()=>{Ue(e.key),h(!1)},className:"flex h-(--row-height-menu) min-w-0 flex-1 items-center gap-3 px-2 text-left text-sm text-gray-800",children:[e.icon&&/* @__PURE__ */Pr("span",{className:"flex size-4 shrink-0 items-center justify-center [&>svg]:size-4","aria-hidden":"true",children:e.icon}),
248
- /* @__PURE__ */Pr("span",{className:"min-w-0 truncate",children:e.title}),e.dirty&&/* @__PURE__ */Pr("span",{className:"size-2 shrink-0 rounded-full bg-amber-500",role:"img","aria-label":o.pageTabs.unsaved})]}),!e.pinned&&/* @__PURE__ */Pr(ce,{size:"sm",onClick:()=>s(e.key),"aria-label":o.pageTabs.closeTab?.(e.title)??`${o.pageTabs.close} ${e.title}`,children:/* @__PURE__ */Pr(sr,{name:"close",className:"size-4",strokeWidth:1.5,"aria-hidden":"true"})})]},e.key))}),l.some(e=>!e.pinned)&&/* @__PURE__ */Pr("button",{type:"button",onClick:()=>{c("all",null),h(!1)},className:"mt-3 w-full rounded-md py-2 text-center text-xs font-medium text-gray-500 hover:bg-gray-100",children:o.pageTabs.closeAll})]})]})]})}var pa=pr(()=>import("./Sidebar-4RJEWBBN.js"));function ga(){const e=gr(S,_,_),{openPage:t}=Ee();if(!(e.running||e.remaining<e.total&&e.remaining>0))return null;const r=String(Math.floor(e.remaining/60)).padStart(2,"0"),n=String(e.remaining%60).padStart(2,"0"),a="focus"===e.mode?"bg-blue-500":"short"===e.mode?"bg-emerald-500":"bg-emerald-600",o="focus"===e.mode?"Focus":"short"===e.mode?"Short break":"Long break";/* @__PURE__ */
247
+ /* @__PURE__ */Lr("button",{type:"button","aria-current":e.key===i?"page":void 0,onClick:()=>{Ke(e.key),h(!1)},className:"flex h-(--row-height-menu) min-w-0 flex-1 items-center gap-3 px-2 text-left text-sm text-gray-800",children:[e.icon&&/* @__PURE__ */Pr("span",{className:"flex size-4 shrink-0 items-center justify-center [&>svg]:size-4","aria-hidden":"true",children:e.icon}),
248
+ /* @__PURE__ */Pr("span",{className:"min-w-0 truncate",children:e.title}),e.dirty&&/* @__PURE__ */Pr("span",{className:"size-2 shrink-0 rounded-full bg-amber-500",role:"img","aria-label":o.pageTabs.unsaved})]}),!e.pinned&&/* @__PURE__ */Pr(ce,{size:"sm",onClick:()=>s(e.key),"aria-label":o.pageTabs.closeTab?.(e.title)??`${o.pageTabs.close} ${e.title}`,children:/* @__PURE__ */Pr(sr,{name:"close",className:"size-4",strokeWidth:1.5,"aria-hidden":"true"})})]},e.key))}),l.some(e=>!e.pinned)&&/* @__PURE__ */Pr("button",{type:"button",onClick:()=>{c("all",null),h(!1)},className:"mt-3 w-full rounded-md py-2 text-center text-xs font-medium text-gray-500 hover:bg-gray-100",children:o.pageTabs.closeAll})]})]})]})}var pa=pr(()=>import("./Sidebar-P3WJQSY5.js"));function ga(){const e=gr(S,_,_),{openPage:t}=Ee();if(!(e.running||e.remaining<e.total&&e.remaining>0))return null;const r=String(Math.floor(e.remaining/60)).padStart(2,"0"),n=String(e.remaining%60).padStart(2,"0"),a="focus"===e.mode?"bg-blue-500":"short"===e.mode?"bg-emerald-500":"bg-emerald-600",o="focus"===e.mode?"Focus":"short"===e.mode?"Short break":"Long break";/* @__PURE__ */
249
249
  return Lr("button",{onClick:()=>t("/pomodoro"),title:`${o} · ${r}:${n}${e.running?"":" (paused)"}`,className:"shrink-0 flex items-center gap-2 rounded-md px-2 py-1 text-2xs font-mono font-semibold tabular-nums hover:bg-gray-200/50 transition-colors "+(e.running?"text-gray-800":"text-gray-400"),children:[
250
- /* @__PURE__ */Pr("span",{className:`block w-1.5 h-1.5 rounded-full ${a} ${e.running?"animate-pulse":"opacity-60"}`}),r,":",n]})}function fa({clockCalendar:e}){const[t,r]=fr(/* @__PURE__ */new Date),[n,a]=fr(!1),o=yr(null),l=yr(null),{openPage:i}=Ee();return br(()=>{const e=setInterval(()=>r(/* @__PURE__ */new Date),1e4);return()=>clearInterval(e)},[]),O(o,xr(()=>{n&&a(!1)},[n])),/* @__PURE__ */Lr("div",{ref:o,className:"relative shrink-0",children:[
250
+ /* @__PURE__ */Pr("span",{className:`block w-1.5 h-1.5 rounded-full ${a} ${e.running?"animate-pulse":"opacity-60"}`}),r,":",n]})}function fa({clockCalendar:e}){const[t,r]=fr(/* @__PURE__ */new Date),[n,a]=fr(!1),o=yr(null),l=yr(null),{openPage:i}=Ee();return br(()=>{const e=setInterval(()=>r(/* @__PURE__ */new Date),1e4);return()=>clearInterval(e)},[]),F(o,xr(()=>{n&&a(!1)},[n])),/* @__PURE__ */Lr("div",{ref:o,className:"relative shrink-0",children:[
251
251
  /* @__PURE__ */Lr("button",{ref:l,onClick:()=>a(!n),className:"text-right leading-tight cursor-pointer hover:bg-gray-200/50 rounded px-2 py-0.5 transition-colors",children:[
252
252
  /* @__PURE__ */Pr("p",{className:"text-2xs font-medium text-gray-800",children:t.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}),
253
253
  /* @__PURE__ */Pr("p",{className:"text-2xs text-gray-700",children:t.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})})]}),n&&(()=>{const r=getComputedStyle(document.documentElement).getPropertyValue("--taskbar-position")?.trim()||"bottom",n=l.current?.getBoundingClientRect(),o=n?Math.max(8,window.innerWidth-n.right):8,i="top"===r?{right:o,top:(n?.bottom??0)+4}:{right:o,bottom:window.innerHeight-(n?.top??0)+4};/* @__PURE__ */
@@ -257,7 +257,7 @@ return Lr("div",{className:(o?"w-[300px]":"w-72")+" p-3",children:[
257
257
  /* @__PURE__ */Lr("div",{className:"px-1 pb-2 border-b border-gray-100",children:[
258
258
  /* @__PURE__ */Pr("div",{className:"text-2xs font-semibold text-gray-500 uppercase tracking-wide",children:l}),
259
259
  /* @__PURE__ */Pr("div",{className:"text-2xl font-semibold text-gray-800 tabular-nums leading-tight mt-0.5",children:i})]}),
260
- /* @__PURE__ */Pr(J,{className:"mt-2",value:o?n:ba(e),onSelect:a,readOnly:!o,markedDates:t?.markedDates}),t?.renderDay&&/* @__PURE__ */Pr("div",{className:"mt-2 max-h-[280px] overflow-y-auto border-t border-gray-100 pt-2",children:t.renderDay(n,{close:r})},n)]})}function xa({x:e,y:t,position:r,size:n,onChangePosition:a,onChangeSize:o,onClose:l,onReportBug:i,onSwitchLayout:s,switchLayoutLabel:c}){const d=yr(null);O(d,l);const u="top"===r?{left:Math.min(e,window.innerWidth-200),top:t+4}:"left"===r?{left:e+4,top:Math.min(t,window.innerHeight-300)}:"right"===r?{right:window.innerWidth-e+4,top:Math.min(t,window.innerHeight-300)}:{left:Math.min(e,window.innerWidth-200),bottom:window.innerHeight-t+4},m=e=>e?/* @__PURE__ */Pr(sr,{name:"check",className:"h-3.5 w-3.5 text-blue-600 shrink-0",strokeWidth:2.5}):/* @__PURE__ */Pr("span",{className:"w-3.5"});/* @__PURE__ */
260
+ /* @__PURE__ */Pr(J,{className:"mt-2",value:o?n:ba(e),onSelect:a,readOnly:!o,markedDates:t?.markedDates}),t?.renderDay&&/* @__PURE__ */Pr("div",{className:"mt-2 max-h-[280px] overflow-y-auto border-t border-gray-100 pt-2",children:t.renderDay(n,{close:r})},n)]})}function xa({x:e,y:t,position:r,size:n,onChangePosition:a,onChangeSize:o,onClose:l,onReportBug:i,onSwitchLayout:s,switchLayoutLabel:c}){const d=yr(null);F(d,l);const u="top"===r?{left:Math.min(e,window.innerWidth-200),top:t+4}:"left"===r?{left:e+4,top:Math.min(t,window.innerHeight-300)}:"right"===r?{right:window.innerWidth-e+4,top:Math.min(t,window.innerHeight-300)}:{left:Math.min(e,window.innerWidth-200),bottom:window.innerHeight-t+4},m=e=>e?/* @__PURE__ */Pr(sr,{name:"check",className:"h-3.5 w-3.5 text-blue-600 shrink-0",strokeWidth:2.5}):/* @__PURE__ */Pr("span",{className:"w-3.5"});/* @__PURE__ */
261
261
  return Lr("div",{ref:d,className:"fixed z-(--z-popup) rounded-(--radius-popup) py-1 min-w-[180px]",style:{...u,...Yt()},children:[
262
262
  /* @__PURE__ */Pr("p",{className:"px-3 py-1 text-3xs font-semibold text-gray-400 uppercase tracking-wide",children:"Position"}),["bottom","top","left","right"].map(e=>/* @__PURE__ */Lr("button",{onClick:()=>a(e),className:"w-full text-left px-3 min-h-(--row-height-menu) py-2 text-sm text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors rounded-lg mx-1 flex items-center gap-2",style:{width:"calc(100% - 8px)"},children:[m(r===e),e.charAt(0).toUpperCase()+e.slice(1)]},e)),
263
263
  /* @__PURE__ */Pr("div",{className:"border-t border-white/20 my-1 mx-3"}),
@@ -274,19 +274,19 @@ return Pr("button",{onClick:()=>o(e),title:t,onContextMenu:r=>{r.preventDefault(
274
274
  /* @__PURE__ */Lr(Rt,{onClick:()=>{s(null),o(i.path)},children:[(()=>{const e=a[i.path];return e&&Nr(e)?Cr(e,{className:"h-4 w-4 text-gray-400"}):/* @__PURE__ */Pr("span",{className:"w-4"})})(),"Open ",i.label]}),
275
275
  /* @__PURE__ */Pr($t,{}),
276
276
  /* @__PURE__ */Lr(Rt,{danger:!0,onClick:()=>{s(null),l(i.path)},children:[
277
- /* @__PURE__ */Pr(sr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),"Remove from Favorites"]})]})]});var d,u}function va({branding:t,productName:r="efficient-shell",productIcon:n="/favicon.svg",wallpapers:a,navSections:o=tt,navIcons:l=rt,sectionIcons:i=nt,categories:s=et,notifications:d,search:u,taskbarTrayLeft:m,clockCalendar:h,mobileApp:p,contextMenu:g=!0,home:f}={}){const b=t?.productName??r,y=t?.logo??n,x=t?.tagline,S=t?.adaptiveLogo??!1,_=t?.logoHasAlpha??null,E=t?.logoIsLight??null,T=Bn(),{user:M,logout:L,hasAnyPerm:P}=w(),{openPage:I,openEntity:$,openWindows:A,remove:R}=Ee(),W=nr().layout,[j,O]=fr(!1),F=Ct(),z=M||{};D();const{favorites:B,toggle:H,desktopBg:K}=function(e){const{prefs:t,save:r}=Nt(),n=t.favorite_pages||[],a=xr(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n,e];r({favorite_pages:t})},[n,r]),o=e&&e.length>0?e:[],l=yr(o.length>0?o[Math.floor(Math.random()*o.length)]:"none"),i=t.desktop_bg||(o.length>0?"random":"none"),s="random"===i?l.current:i,c=xr(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:a,isFavorite:e=>n.includes(e),desktopBg:s,setDesktopBg:c}}(a??T.wallpapers?.map(e=>e.src)),{url:U}=Xn(K),{prefs:X,save:V}=Nt(),Y=St(),G=F?"sidebar":Vn(X),q="sidebar"===G,[J,Q]=Qt(()=>"true"===v(ma),!1),Z=Y&&!!p?.url&&!J,ce=Gn(),[de,ue]=Qt(()=>k(v(N),window.innerWidth),!1),me=xr(()=>{ue(e=>(C(N,String(!e)),!e))},[ue]),he=q&&!Y?de?at:ot:0,pe=X.taskbar_position||"bottom",ge=q?"top":pe,fe=X.taskbar_size||"medium",be=X.desktop_dblclick||"deactivate",ye="left"===ge||"right"===ge,xe=q?st+(Z?36:0):ye?0:"small"===fe?42:"large"===fe?72:56,we=ye?"small"===fe?180:"large"===fe?260:220:0,ve="small"===fe?2:"large"===fe?6:4,ke="small"===fe?"h-[42px]":"large"===fe?"h-[72px]":"h-14",Ne="small"===fe?"w-[180px]":"large"===fe?"w-[260px]":"w-[220px]",Ce=!!X.reduce_transparency,Se=Ce?1:(X.transparency_taskbar??70)/100,_e=(X.transparency_start_menu??95)/100,Le=(X.transparency_inactive_header??70)/100,Pe=(X.transparency_inactive_content??80)/100,Ie=(X.transparency_active_header??80)/100,De=(X.transparency_active_content??90)/100;br(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",Ce),e.style.setProperty("--inactive-header-opacity",String(Le)),e.style.setProperty("--inactive-content-opacity",String(Pe)),e.style.setProperty("--active-header-opacity",String(Ie)),e.style.setProperty("--active-content-opacity",String(De)),e.style.setProperty("--menu-opacity",String(_e)),e.style.setProperty("--taskbar-height",`${xe}px`),e.style.setProperty("--taskbar-width",`${we}px`),e.style.setProperty("--taskbar-position",ge),e.style.setProperty("--sidebar-width",`${he}px`),e.style.setProperty("--layout-mode",G),"sidebar"===qe.current&&"classic"===G&&$e(),qe.current=G,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(lt)),e.style.setProperty("--default-window-size",X.default_window_size||"large"),e.style.setProperty("--window-position",X.window_position||"cascade"),e.style.setProperty("--menu-density",X.menu_density||"normal");const t={small:{font:"12px",px:"0.75rem",py:"0.25rem",tabW:"150px",tabFont:"11px"},medium:{font:"14px",px:"1rem",py:"0.5rem",tabW:"200px",tabFont:"12px"},large:{font:"15px",px:"1.125rem",py:"0.625rem",tabW:"240px",tabFont:"13px"}},r=t[X.start_menu_size||"medium"]||t.medium;e.style.setProperty("--menu-font-size",r.font),e.style.setProperty("--menu-padding-x",r.px),e.style.setProperty("--menu-padding-y",r.py),e.style.setProperty("--window-tab-width",r.tabW),e.style.setProperty("--window-tab-font-size",r.tabFont)},[Ce,Le,Pe,Ie,De,xe,we,ge,X.default_window_size,X.window_position,X.menu_density,X.start_menu_size,he,G]);const We=vr(()=>{if(!f)return null;const e=Te[f];if(!e||!Me(e))return null;const t=e;return t.widget||t.utility?null:f},[f]),je=q?We:null;br(()=>{Ae(je)},[je]),br(()=>()=>Ae(null),[]);const Oe=!!je&&A.some(e=>"page"===e.type&&e.route===je);br(()=>{je&&!Oe&&I(je,{background:!0,shellOwned:!0})},[je,Oe,I]),br(()=>{q||A.filter(e=>e.shellOwned).forEach(e=>R(e.id))},[q,A,R]);const Fe=Re(),ze=q?A.find(e=>e.id===Fe)?.route??null:null,Be=vr(()=>q?ee(te(o,s,P),P,W.pageResult):null,[q,o,s,P,W.pageResult]),He=vr(()=>Be?[Be,...u?.providers??[]]:u?.providers,[Be,u?.providers]),Ke=vr(()=>re(X.search_recent),[X.search_recent]),Ue=vr(()=>ne(X.favorite_documents,W.pageResult),[X.favorite_documents,W.pageResult]),Xe=xr(e=>V({search_recent:ae(Ke,e)}),[Ke,V]),Ve="__react-os-shell:switch-to-sidebar",Ye=vr(()=>({...s,footerItems:[...s.footerItems??[],{to:Ve,label:W.switchToSidebar,onSelect:()=>ce("sidebar")}]}),[s,W.switchToSidebar,ce]),Ge=vr(()=>({...l,[Ve]:/* @__PURE__ */Pr(sr,{name:"layout",className:"h-4 w-4",strokeWidth:1.5})}),[l]);br(()=>{document.documentElement.style.setProperty("--mobile-bottom-nav","0px")},[]);const qe=yr(G),[Je,Qe]=fr(!1),[Ze,it]=fr(!!document.fullscreenElement),[ct,dt]=fr(null),[ut,mt]=fr(!1),ht=xr((e,t)=>{V({[e]:t})},[V]),pt=xr(async()=>{if(document.fullscreenElement)navigator.keyboard?.unlock&&navigator.keyboard.unlock(),document.exitFullscreen();else if(await document.documentElement.requestFullscreen(),navigator.keyboard?.lock)try{await navigator.keyboard.lock(["Escape"])}catch{}},[]);br(()=>{const e=()=>{it(!!document.fullscreenElement),!document.fullscreenElement&&navigator.keyboard?.unlock&&navigator.keyboard.unlock()};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const gt=yr(!1);br(()=>{if(!gt.current&&X.auto_fullscreen&&!document.fullscreenElement){gt.current=!0;const e=async()=>{if(!document.fullscreenElement)try{await document.documentElement.requestFullscreen(),navigator.keyboard?.lock&&navigator.keyboard.lock(["Escape"]).catch(()=>{})}catch{}document.removeEventListener("click",e)};document.addEventListener("click",e,{once:!0})}},[X.auto_fullscreen]);const[ft,bt]=fr(!1),yt=yr(!1);br(()=>{if(yt.current)return;yt.current=!0;const e="erp_startup_shown";sessionStorage.getItem(e)||(sessionStorage.setItem(e,"1"),bt(!0))},[]);const xt=yr(!1);br(()=>{!xt.current&&ft&&(xt.current=!0,setTimeout(()=>c(),500))},[ft]),br(()=>{const e=e=>{if((e.ctrlKey||e.metaKey)&&"."===e.key&&(e.preventDefault(),q&&!Y?me():O(e=>!e)),e.ctrlKey&&"F11"===e.key&&(e.preventDefault(),pt()),"Escape"===e.key&&document.fullscreenElement){document.querySelectorAll("[data-modal-panel]").length>0||(e.preventDefault(),pt())}};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[pt,q,Y,me]);const wt=xr(async()=>{const{confirm:e}=await(import("./ConfirmDialog-YZCM3HJP.js"));await e({title:W.signOutTitle,message:W.signOutMessage,confirmLabel:W.signOut,variant:"warning"})&&mt(!0)},[W]),vt=/* @__PURE__ */Lr(Ir,{children:[
277
+ /* @__PURE__ */Pr(sr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),"Remove from Favorites"]})]})]});var d,u}function va({branding:t,productName:r="efficient-shell",productIcon:n="/favicon.svg",wallpapers:a,navSections:o=tt,navIcons:l=rt,sectionIcons:i=nt,categories:s=et,notifications:d,search:u,taskbarTrayLeft:m,clockCalendar:h,mobileApp:p,contextMenu:g=!0,home:f}={}){const b=t?.productName??r,y=t?.logo??n,x=t?.tagline,S=t?.adaptiveLogo??!1,_=t?.logoHasAlpha??null,E=t?.logoIsLight??null,T=Bn(),{user:M,logout:L,hasAnyPerm:P}=w(),{openPage:I,openEntity:$,openWindows:A,remove:R}=Ee(),W=nr().layout,[j,F]=fr(!1),O=Ct(),z=M||{};D();const{favorites:B,toggle:H,desktopBg:U}=function(e){const{prefs:t,save:r}=Nt(),n=t.favorite_pages||[],a=xr(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n,e];r({favorite_pages:t})},[n,r]),o=e&&e.length>0?e:[],l=yr(o.length>0?o[Math.floor(Math.random()*o.length)]:"none"),i=t.desktop_bg||(o.length>0?"random":"none"),s="random"===i?l.current:i,c=xr(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:a,isFavorite:e=>n.includes(e),desktopBg:s,setDesktopBg:c}}(a??T.wallpapers?.map(e=>e.src)),{url:K}=Xn(U),{prefs:X,save:V}=Nt(),Y=St(),G=O?"sidebar":Vn(X),q="sidebar"===G,[J,Q]=Qt(()=>"true"===v(ma),!1),Z=Y&&!!p?.url&&!J,ce=Gn(),[de,ue]=Qt(()=>k(v(N),window.innerWidth),!1),me=xr(()=>{ue(e=>(C(N,String(!e)),!e))},[ue]),he=q&&!Y?de?at:ot:0,pe=X.taskbar_position||"bottom",ge=q?"top":pe,fe=X.taskbar_size||"medium",be=X.desktop_dblclick||"deactivate",ye="left"===ge||"right"===ge,xe=q?st+(Z?36:0):ye?0:"small"===fe?42:"large"===fe?72:56,we=ye?"small"===fe?180:"large"===fe?260:220:0,ve="small"===fe?2:"large"===fe?6:4,ke="small"===fe?"h-[42px]":"large"===fe?"h-[72px]":"h-14",Ne="small"===fe?"w-[180px]":"large"===fe?"w-[260px]":"w-[220px]",Ce=!!X.reduce_transparency,Se=Ce?1:(X.transparency_taskbar??70)/100,_e=(X.transparency_start_menu??95)/100,Le=(X.transparency_inactive_header??70)/100,Pe=(X.transparency_inactive_content??80)/100,Ie=(X.transparency_active_header??80)/100,De=(X.transparency_active_content??90)/100;br(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",Ce),e.style.setProperty("--inactive-header-opacity",String(Le)),e.style.setProperty("--inactive-content-opacity",String(Pe)),e.style.setProperty("--active-header-opacity",String(Ie)),e.style.setProperty("--active-content-opacity",String(De)),e.style.setProperty("--menu-opacity",String(_e)),e.style.setProperty("--taskbar-height",`${xe}px`),e.style.setProperty("--taskbar-width",`${we}px`),e.style.setProperty("--taskbar-position",ge),e.style.setProperty("--sidebar-width",`${he}px`),e.style.setProperty("--layout-mode",G),"sidebar"===qe.current&&"classic"===G&&$e(),qe.current=G,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(lt)),e.style.setProperty("--default-window-size",X.default_window_size||"large"),e.style.setProperty("--window-position",X.window_position||"cascade"),e.style.setProperty("--menu-density",X.menu_density||"normal");const t={small:{font:"12px",px:"0.75rem",py:"0.25rem",tabW:"150px",tabFont:"11px"},medium:{font:"14px",px:"1rem",py:"0.5rem",tabW:"200px",tabFont:"12px"},large:{font:"15px",px:"1.125rem",py:"0.625rem",tabW:"240px",tabFont:"13px"}},r=t[X.start_menu_size||"medium"]||t.medium;e.style.setProperty("--menu-font-size",r.font),e.style.setProperty("--menu-padding-x",r.px),e.style.setProperty("--menu-padding-y",r.py),e.style.setProperty("--window-tab-width",r.tabW),e.style.setProperty("--window-tab-font-size",r.tabFont)},[Ce,Le,Pe,Ie,De,xe,we,ge,X.default_window_size,X.window_position,X.menu_density,X.start_menu_size,he,G]);const We=vr(()=>{if(!f)return null;const e=Te[f];if(!e||!Me(e))return null;const t=e;return t.widget||t.utility?null:f},[f]),je=q?We:null;br(()=>{Ae(je)},[je]),br(()=>()=>Ae(null),[]);const Fe=!!je&&A.some(e=>"page"===e.type&&e.route===je);br(()=>{je&&!Fe&&I(je,{background:!0,shellOwned:!0})},[je,Fe,I]),br(()=>{q||A.filter(e=>e.shellOwned).forEach(e=>R(e.id))},[q,A,R]);const Oe=Re(),ze=q?A.find(e=>e.id===Oe)?.route??null:null,Be=vr(()=>q?ee(te(o,s,P),P,W.pageResult):null,[q,o,s,P,W.pageResult]),He=vr(()=>Be?[Be,...u?.providers??[]]:u?.providers,[Be,u?.providers]),Ue=vr(()=>re(X.search_recent),[X.search_recent]),Ke=vr(()=>ne(X.favorite_documents,W.pageResult),[X.favorite_documents,W.pageResult]),Xe=xr(e=>V({search_recent:ae(Ue,e)}),[Ue,V]),Ve="__react-os-shell:switch-to-sidebar",Ye=vr(()=>({...s,footerItems:[...s.footerItems??[],{to:Ve,label:W.switchToSidebar,onSelect:()=>ce("sidebar")}]}),[s,W.switchToSidebar,ce]),Ge=vr(()=>({...l,[Ve]:/* @__PURE__ */Pr(sr,{name:"layout",className:"h-4 w-4",strokeWidth:1.5})}),[l]);br(()=>{document.documentElement.style.setProperty("--mobile-bottom-nav","0px")},[]);const qe=yr(G),[Je,Qe]=fr(!1),[Ze,it]=fr(!!document.fullscreenElement),[ct,dt]=fr(null),[ut,mt]=fr(!1),ht=xr((e,t)=>{V({[e]:t})},[V]),pt=xr(async()=>{if(document.fullscreenElement)navigator.keyboard?.unlock&&navigator.keyboard.unlock(),document.exitFullscreen();else if(await document.documentElement.requestFullscreen(),navigator.keyboard?.lock)try{await navigator.keyboard.lock(["Escape"])}catch{}},[]);br(()=>{const e=()=>{it(!!document.fullscreenElement),!document.fullscreenElement&&navigator.keyboard?.unlock&&navigator.keyboard.unlock()};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const gt=yr(!1);br(()=>{if(!gt.current&&X.auto_fullscreen&&!document.fullscreenElement){gt.current=!0;const e=async()=>{if(!document.fullscreenElement)try{await document.documentElement.requestFullscreen(),navigator.keyboard?.lock&&navigator.keyboard.lock(["Escape"]).catch(()=>{})}catch{}document.removeEventListener("click",e)};document.addEventListener("click",e,{once:!0})}},[X.auto_fullscreen]);const[ft,bt]=fr(!1),yt=yr(!1);br(()=>{if(yt.current)return;yt.current=!0;const e="erp_startup_shown";sessionStorage.getItem(e)||(sessionStorage.setItem(e,"1"),bt(!0))},[]);const xt=yr(!1);br(()=>{!xt.current&&ft&&(xt.current=!0,setTimeout(()=>c(),500))},[ft]),br(()=>{const e=e=>{if((e.ctrlKey||e.metaKey)&&"."===e.key&&(e.preventDefault(),q&&!Y?me():F(e=>!e)),e.ctrlKey&&"F11"===e.key&&(e.preventDefault(),pt()),"Escape"===e.key&&document.fullscreenElement){document.querySelectorAll("[data-modal-panel]").length>0||(e.preventDefault(),pt())}};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[pt,q,Y,me]);const wt=xr(async()=>{const{confirm:e}=await(import("./ConfirmDialog-GY3PLMAD.js"));await e({title:W.signOutTitle,message:W.signOutMessage,confirmLabel:W.signOut,variant:"warning"})&&mt(!0)},[W]),vt=/* @__PURE__ */Lr(Ir,{children:[
278
278
  /* @__PURE__ */Pr(ga,{}),m,d&&/* @__PURE__ */Pr(Jr,{...d}),
279
279
  /* @__PURE__ */Pr(fa,{clockCalendar:h})]});/* @__PURE__ */
280
280
  return Lr("div",{className:"flex flex-col h-screen",children:[
281
- /* @__PURE__ */Pr(oa,{}),ft&&/* @__PURE__ */Pr(ra,{onComplete:()=>bt(!1),ready:!!z,productName:b,logo:y,subtitle:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E}),ut&&/* @__PURE__ */Pr(na,{onComplete:()=>{sessionStorage.removeItem("erp_startup_shown"),L()},logo:y,subtitle:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E}),!q&&/* @__PURE__ */Pr(ua,{open:j,onClose:()=>O(!1),openPage:e=>{I(e),O(!1)},openWindows:A,profile:z,user:M,onLogout:()=>mt(!0),onNavigate:e=>{I(e),O(!1)},taskbarPosition:ge,taskbarH:xe,taskbarW:we,taskbarGap:ve,size:X.start_menu_size||"medium",navSections:o,navIcons:Ge,sectionIcons:i,categories:Ye}),q&&!Y&&/* @__PURE__ */Lr(Ir,{children:[
282
- /* @__PURE__ */Pr(Sr,{fallback:null,children:/* @__PURE__ */Pr(pa,{width:he,collapsed:de,onToggleCollapsed:me,onOpen:(e,t)=>I(e,t?void 0:{reuse:!0}),activeRoute:ze,profile:z,user:M,onLogout:()=>{wt()},onSwitchToDesktop:F?void 0:()=>ce("classic"),onReportBug:T.onReportBug,navSections:o,navIcons:l,sectionIcons:i,categories:s,productName:b,productIcon:y,tagline:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E})}),
283
- /* @__PURE__ */Pr(ta,{left:he,navIcons:l,home:je,end:/* @__PURE__ */Pr("div",{className:"flex items-center gap-2",children:vt})})]}),q&&Y&&/* @__PURE__ */Pr(ha,{home:je,navIcons:l,end:d?/* @__PURE__ */Pr(Jr,{...d}):void 0,banner:Z&&p?.url?{text:p.heading??W.getTheApp(b),href:p.url,cta:p.ctaLabel??W.openApp,onDismiss:()=>{C(ma,"true"),Q(!0)}}:null,renderMenu:e=>/* @__PURE__ */Pr(Sr,{fallback:null,children:/* @__PURE__ */Pr(pa,{width:Math.min(300,Math.round(.85*window.innerWidth)),collapsed:!1,onToggleCollapsed:e,onClose:e,onOpen:(t,r)=>{I(t,r?void 0:{reuse:!0}),e()},activeRoute:ze,profile:z,user:M,onLogout:()=>{e(),wt()},onReportBug:T.onReportBug?()=>{e(),T.onReportBug?.()}:void 0,navSections:o,navIcons:l,sectionIcons:i,categories:s,productName:b,productIcon:y,tagline:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E})})}),(()=>{const t=q?"none":K,r=e(t,U),n={backgroundColor:t?.startsWith("#")?t:"none"===t?(()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--custom-bg-color")?.trim();if(e)return e;return{light:"#f3f4f6",dark:"#1e1e2e",pink:"#fdf2f8",green:"#f0fdf4",grey:"#d1d5db",blue:"#eff6ff"}[document.documentElement.getAttribute("data-theme")||"light"]||"#f3f4f6"})():"#1a1a2e",backgroundImage:r?`url(${r})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"};/* @__PURE__ */
281
+ /* @__PURE__ */Pr(oa,{}),ft&&/* @__PURE__ */Pr(ra,{onComplete:()=>bt(!1),ready:!!z,productName:b,logo:y,subtitle:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E}),ut&&/* @__PURE__ */Pr(na,{onComplete:()=>{sessionStorage.removeItem("erp_startup_shown"),L()},logo:y,subtitle:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E}),!q&&/* @__PURE__ */Pr(ua,{open:j,onClose:()=>F(!1),openPage:e=>{I(e),F(!1)},openWindows:A,profile:z,user:M,onLogout:()=>mt(!0),onNavigate:e=>{I(e),F(!1)},taskbarPosition:ge,taskbarH:xe,taskbarW:we,taskbarGap:ve,size:X.start_menu_size||"medium",navSections:o,navIcons:Ge,sectionIcons:i,categories:Ye}),q&&!Y&&/* @__PURE__ */Lr(Ir,{children:[
282
+ /* @__PURE__ */Pr(Sr,{fallback:null,children:/* @__PURE__ */Pr(pa,{width:he,collapsed:de,onToggleCollapsed:me,onOpen:(e,t)=>I(e,t?void 0:{reuse:!0}),activeRoute:ze,profile:z,user:M,onLogout:()=>{wt()},onSwitchToDesktop:O?void 0:()=>ce("classic"),onReportBug:T.onReportBug,navSections:o,navIcons:l,sectionIcons:i,categories:s,productName:b,productIcon:y,tagline:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E})}),
283
+ /* @__PURE__ */Pr(ta,{left:he,navIcons:l,home:je,end:/* @__PURE__ */Pr("div",{className:"flex items-center gap-2",children:vt})})]}),q&&Y&&/* @__PURE__ */Pr(ha,{home:je,navIcons:l,end:d?/* @__PURE__ */Pr(Jr,{...d}):void 0,banner:Z&&p?.url?{text:p.heading??W.getTheApp(b),href:p.url,cta:p.ctaLabel??W.openApp,onDismiss:()=>{C(ma,"true"),Q(!0)}}:null,renderMenu:e=>/* @__PURE__ */Pr(Sr,{fallback:null,children:/* @__PURE__ */Pr(pa,{width:Math.min(300,Math.round(.85*window.innerWidth)),collapsed:!1,onToggleCollapsed:e,onClose:e,onOpen:(t,r)=>{I(t,r?void 0:{reuse:!0}),e()},activeRoute:ze,profile:z,user:M,onLogout:()=>{e(),wt()},onReportBug:T.onReportBug?()=>{e(),T.onReportBug?.()}:void 0,navSections:o,navIcons:l,sectionIcons:i,categories:s,productName:b,productIcon:y,tagline:x,adaptiveLogo:S,logoHasAlpha:_,logoIsLight:E})})}),(()=>{const t=q?"none":U,r=e(t,K),n={backgroundColor:t?.startsWith("#")?t:"none"===t?(()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--custom-bg-color")?.trim();if(e)return e;return{light:"#f3f4f6",dark:"#1e1e2e",pink:"#fdf2f8",green:"#f0fdf4",grey:"#d1d5db",blue:"#eff6ff"}[document.documentElement.getAttribute("data-theme")||"light"]||"#f3f4f6"})():"#1a1a2e",backgroundImage:r?`url(${r})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"};/* @__PURE__ */
284
284
  return Lr(Ir,{children:[
285
- /* @__PURE__ */Pr("div",{className:"flex flex-1 min-h-0",style:q?{paddingLeft:he,paddingTop:xe}:void 0,children:/* @__PURE__ */Pr("main",{className:"flex-1 flex flex-col overflow-hidden cursor-default",onDoubleClick:()=>{"deactivate"===be&&(O(!1),window.dispatchEvent(new CustomEvent("deactivate-all-modals")))},style:n,children:/* @__PURE__ */Pr(Kn,{profile:z})})}),!q&&/* @__PURE__ */Lr("div",{className:"flex backdrop-blur-sm border-gray-200 z-(--z-taskbar) fixed "+(ye?`flex-col items-center ${Ne} py-3 gap-2 top-0 bottom-0 ${"left"===ge?"left-0 border-r":"right-0 border-l"}`:`items-center ${ke} px-3 gap-2 right-0 ${"top"===ge?"top-0 border-b":"bottom-0 border-t"}`),style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${Se})`,...ye?{}:{left:0}},"data-taskbar-dropzone":!0,onContextMenu:e=>{e.preventDefault(),dt({x:e.clientX,y:e.clientY})},children:[
285
+ /* @__PURE__ */Pr("div",{className:"flex flex-1 min-h-0",style:q?{paddingLeft:he,paddingTop:xe}:void 0,children:/* @__PURE__ */Pr("main",{className:"flex-1 flex flex-col overflow-hidden cursor-default",onDoubleClick:()=>{"deactivate"===be&&(F(!1),window.dispatchEvent(new CustomEvent("deactivate-all-modals")))},style:n,children:/* @__PURE__ */Pr(Un,{profile:z})})}),!q&&/* @__PURE__ */Lr("div",{className:"flex backdrop-blur-sm border-gray-200 z-(--z-taskbar) fixed "+(ye?`flex-col items-center ${Ne} py-3 gap-2 top-0 bottom-0 ${"left"===ge?"left-0 border-r":"right-0 border-l"}`:`items-center ${ke} px-3 gap-2 right-0 ${"top"===ge?"top-0 border-b":"bottom-0 border-t"}`),style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${Se})`,...ye?{}:{left:0}},"data-taskbar-dropzone":!0,onContextMenu:e=>{e.preventDefault(),dt({x:e.clientX,y:e.clientY})},children:[
286
286
  /* @__PURE__ */Lr("div",{className:"relative shrink-0",children:[0===A.length&&!j&&!Je&&/* @__PURE__ */Lr("div",{className:"absolute left-1/2 -translate-x-1/2 whitespace-nowrap text-white text-2xs font-medium pl-3 pr-2 py-1 rounded-full shadow-lg animate-bounce flex items-center gap-1 "+("top"===ge?"top-full mt-2":"-top-8"),style:{backgroundColor:"var(--accent-600, #7c3aed)"},children:["Click here to start",
287
287
  /* @__PURE__ */Pr("button",{onClick:e=>{e.stopPropagation(),Qe(!0)},className:"text-white/60 hover:text-white ml-2",children:/* @__PURE__ */Pr(sr,{name:"close",className:"h-3 w-3",strokeWidth:2.5})}),
288
288
  /* @__PURE__ */Pr("div",{className:"absolute left-1/2 -translate-x-1/2 border-[6px] border-transparent "+("top"===ge?"bottom-full border-b-[var(--accent-color,#7c3aed)]":"top-full border-t-[var(--accent-color,#7c3aed)]"),style:"top"===ge?{borderBottomColor:"var(--accent-600, #7c3aed)"}:{borderTopColor:"var(--accent-600, #7c3aed)"}})]}),
289
- /* @__PURE__ */Lr("button",{"data-menu-toggle":!0,onClick:()=>O(e=>!e),title:j?"Close menu":"Open menu",className:`group/erp relative flex items-center justify-center gap-2 rounded-lg px-4 h-8 text-xs font-medium border overflow-hidden transition-all ${ye?"w-full":"min-w-[140px]"} ${j?"bg-gray-200/40 border-gray-300/40 text-gray-800":"bg-gray-50/40 border-gray-200/40 text-gray-600 hover:text-gray-800"}`,style:{transition:"box-shadow 0.3s, border-color 0.3s"},onMouseMove:e=>{const t=e.currentTarget.getBoundingClientRect();e.currentTarget.style.setProperty("--mx",e.clientX-t.left+"px"),e.currentTarget.style.setProperty("--my",e.clientY-t.top+"px")},onMouseEnter:e=>{e.currentTarget.style.boxShadow="0 0 15px rgba(255,255,255,0.2), 0 0 30px rgba(255,255,255,0.1)",e.currentTarget.style.borderColor="rgba(255,255,255,0.4)"},onMouseLeave:e=>{e.currentTarget.style.boxShadow="",e.currentTarget.style.borderColor=""},children:[
289
+ /* @__PURE__ */Lr("button",{"data-menu-toggle":!0,onClick:()=>F(e=>!e),title:j?"Close menu":"Open menu",className:`group/erp relative flex items-center justify-center gap-2 rounded-lg px-4 h-8 text-xs font-medium border overflow-hidden transition-all ${ye?"w-full":"min-w-[140px]"} ${j?"bg-gray-200/40 border-gray-300/40 text-gray-800":"bg-gray-50/40 border-gray-200/40 text-gray-600 hover:text-gray-800"}`,style:{transition:"box-shadow 0.3s, border-color 0.3s"},onMouseMove:e=>{const t=e.currentTarget.getBoundingClientRect();e.currentTarget.style.setProperty("--mx",e.clientX-t.left+"px"),e.currentTarget.style.setProperty("--my",e.clientY-t.top+"px")},onMouseEnter:e=>{e.currentTarget.style.boxShadow="0 0 15px rgba(255,255,255,0.2), 0 0 30px rgba(255,255,255,0.1)",e.currentTarget.style.borderColor="rgba(255,255,255,0.4)"},onMouseLeave:e=>{e.currentTarget.style.boxShadow="",e.currentTarget.style.borderColor=""},children:[
290
290
  /* @__PURE__ */Pr("span",{className:"absolute inset-0 opacity-0 group-hover/erp:opacity-100 transition-opacity duration-200 pointer-events-none",style:{background:"radial-gradient(circle 60px at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.25) 0%, transparent 100%)"}}),y&&/* @__PURE__ */Pr(oe,{src:y,alt:"",slot:"compact",surface:"light",adaptive:S,hasAlpha:_,isLight:E,size:14,decorative:!0,className:"relative z-10 opacity-60"}),
291
291
  /* @__PURE__ */Pr("span",{className:"relative z-10 truncate",children:b})]})]}),
292
292
  /* @__PURE__ */Pr(wa,{favorites:B,vertical:ye,taskbarPosition:ge,navSections:o,navIcons:l,onOpen:e=>I(e),onToggleFavorite:H}),
@@ -296,22 +296,22 @@ return Lr(Ir,{children:[
296
296
  /* @__PURE__ */Pr("div",{className:"w-full px-2",children:/* @__PURE__ */Lr("div",{className:"flex items-center justify-center gap-2 "+("right"===ge?"flex-row-reverse":""),children:[
297
297
  /* @__PURE__ */Pr(fa,{clockCalendar:h}),
298
298
  /* @__PURE__ */Pr(ga,{}),m,d&&/* @__PURE__ */Pr(Jr,{...d,popDirection:"right"===ge?"left":"right"})]})}):vt]})]})})(),ct&&/* @__PURE__ */Pr(xa,{x:ct.x,y:ct.y,position:ge,size:fe,onChangePosition:e=>{ht("taskbar_position",e),dt(null)},onChangeSize:e=>{ht("taskbar_size",e),dt(null)},onClose:()=>dt(null),onReportBug:T.onReportBug,onSwitchLayout:()=>ce("sidebar"),switchLayoutLabel:W.switchToSidebar}),
299
- /* @__PURE__ */Pr(le,{...u,providers:He,recent:Ke,favorites:Ue,onRecord:Xe,onSelect:e=>{if(e.entity_type===ie){const{path:t,search:r}=se(e.entity_id),n=Be?.destinations.find(e=>e.to===t);return void(n?.onSelect?n.onSelect():I(t,r?{search:r}:{reuse:!0}))}$(e.entity_type,e.entity_id,void 0,e.label)}}),
299
+ /* @__PURE__ */Pr(le,{...u,providers:He,recent:Ue,favorites:Ke,onRecord:Xe,onSelect:e=>{if(e.entity_type===ie){const{path:t,search:r}=se(e.entity_id),n=Be?.destinations.find(e=>e.to===t);return void(n?.onSelect?n.onSelect():I(t,r?{search:r}:{reuse:!0}))}$(e.entity_type,e.entity_id,void 0,e.label)}}),
300
300
  /* @__PURE__ */Pr(Hr,{}),
301
301
  /* @__PURE__ */Pr(qr,{disabled:!g})]})}function ka({children:e}){/* @__PURE__ */
302
302
  return Lr("p",{"data-desktop-only-note":!0,className:"flex items-start gap-2 rounded-lg bg-gray-50 px-3 py-2 text-xs text-gray-500",children:[
303
303
  /* @__PURE__ */Pr(sr,{name:"info",className:"h-4 w-4 shrink-0"}),
304
- /* @__PURE__ */Pr("span",{children:e})]})}function Na(e){return`New window position, default window size and double-clicking the desktop belong to the ${e.desktop} layout. In the ${e.sidebar} layout every window opens full-size.`}var Ca=[{key:"system",label:"System",bar1:"bg-[#e5e7eb]",bar2:"bg-[#e5e7eb]"},{key:"light",label:"Light",bar1:"bg-[#e5e7eb]",bar2:"bg-[#e5e7eb]"},{key:"dark",label:"Dark",bar1:"bg-[#45475a]",bar2:"bg-[#45475a]"},{key:"pink",label:"Blossom",bar1:"bg-[#fbcfe8]",bar2:"bg-[#fbcfe8]"},{key:"green",label:"Nature",bar1:"bg-[#bbf7d0]",bar2:"bg-[#bbf7d0]"},{key:"grey",label:"Quicksilver",bar1:"bg-[#d1d5db]",bar2:"bg-[#d1d5db]"},{key:"blue",label:"Ocean",bar1:"bg-[#bfdbfe]",bar2:"bg-[#bfdbfe]"}],Sa=["add","edit","trash","search","download","settings","bell","warning"],_a=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],Ea=[];function Ta(){const e=/* @__PURE__ */new Date;return`v${String(e.getDate()).padStart(2,"0")}${String(e.getMonth()+1).padStart(2,"0")}.${String(e.getHours()).padStart(2,"0")}.${String(e.getMinutes()).padStart(2,"0")}.${e.getFullYear()}`}function Ma(e,t,r,n,a,o,l){return"dark"===e?r:"pink"===e?n:"green"===e?a:"grey"===e?o??t:"blue"===e?l??t:t}function La({omit:o,section:l}={}){const i=new Set(o??[]),s=e=>void 0===l||l===e,c=Bn(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:Ea,{prefs:u,save:m}=Nt(),[h,p]=fr({}),g=e=>e in h?h[e]:u[e];br(()=>{p(e=>{const t={};let r=!1;for(const n of Object.keys(e))u[n]===e[n]?r=!0:t[n]=e[n];return r?t:e})},[u]);const f=["theme","accent_color","custom_bg_color","custom_title_color","custom_window_color","custom_button_color","corners","icon_set"],b=e=>{const t={...e};for(const e of f)e in t||(t[e]=g(e));V(t),p(t=>({...t,...e})),m(e)};gr(cr,dr,dr);const y=ur(),x=g("theme")||"system",w=A(x),v=u.desktop_bg||(d.length>0?"random":"none"),k=yr(d.length>0?d[Math.floor(Math.random()*d.length)].src:"none"),N="random"===v?k.current:v,C=u.desktop_bg_custom||"",S=N?.startsWith("#"),_=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),E=!S&&"none"!==N&&"random"!==v&&N&&!_.has(N),{url:T,refresh:M}=Xn(N,C),L=e(N,T),P=e(N===t?N:C||N,T),[I,$]=fr(null),[D,O]=fr(!1),[F,z]=fr(null),B=(e,t)=>{m({[e]:t})},H=nr().layout,{layout:K,forced:U}=Yn(),X=Gn(),Y=!!g("reduce_transparency"),[G,q]=fr({}),J=yr({}),Q=xr((e,t)=>{q(r=>({...r,[e]:t}));const r={transparency_taskbar:"--taskbar-opacity",transparency_inactive_header:"--inactive-header-opacity",transparency_inactive_content:"--inactive-content-opacity",transparency_active_header:"--active-header-opacity",transparency_active_content:"--active-content-opacity"};r[e]&&document.documentElement.style.setProperty(r[e],String(t/100)),J.current[e]&&clearTimeout(J.current[e]),J.current[e]=setTimeout(()=>{B(e,t),q(t=>{const r={...t};return delete r[e],r})},300)},[B]);br(()=>()=>{Object.values(J.current).forEach(clearTimeout)},[]);const Z=(u.transparency_taskbar??70)/100,ee=(u.transparency_active_header??80)/100,te=(u.transparency_active_content??90)/100,re=Ma(w,"bg-white/90","bg-[#1e1e2e]/90","bg-pink-50/90","bg-green-50/90","bg-gray-200/90","bg-blue-50/90"),ne=Ma(w,"bg-gray-200","bg-[#313244]","bg-pink-200","bg-green-200","bg-gray-400","bg-blue-200"),ae=Ma(w,"bg-white border border-gray-200","bg-[#1e1e2e] border border-[#45475a]","bg-white border border-pink-200","bg-white border border-green-200","bg-gray-100 border border-gray-300","bg-blue-50 border border-blue-200"),oe=Ma(w,"bg-gray-100","bg-[#313244]","bg-pink-50","bg-green-50","bg-gray-300","bg-blue-100"),le=Ma(w,"bg-blue-600","bg-blue-500","bg-pink-600","bg-green-600","bg-gray-700","bg-blue-700"),ie="sidebar"===K,se=g("accent_color")?g("custom_bg_color")||"#f3f4f6":Ma(w,"#f3f4f6","#1e1e2e","#fdf2f8","#f0fdf4","#d1d5db","#eff6ff");/* @__PURE__ */
304
+ /* @__PURE__ */Pr("span",{children:e})]})}function Na(e){return`New window position, default window size and double-clicking the desktop belong to the ${e.desktop} layout. In the ${e.sidebar} layout every window opens full-size.`}var Ca=[{key:"system",label:"System",bar1:"bg-[#e5e7eb]",bar2:"bg-[#e5e7eb]"},{key:"light",label:"Light",bar1:"bg-[#e5e7eb]",bar2:"bg-[#e5e7eb]"},{key:"dark",label:"Dark",bar1:"bg-[#45475a]",bar2:"bg-[#45475a]"},{key:"pink",label:"Blossom",bar1:"bg-[#fbcfe8]",bar2:"bg-[#fbcfe8]"},{key:"green",label:"Nature",bar1:"bg-[#bbf7d0]",bar2:"bg-[#bbf7d0]"},{key:"grey",label:"Quicksilver",bar1:"bg-[#d1d5db]",bar2:"bg-[#d1d5db]"},{key:"blue",label:"Ocean",bar1:"bg-[#bfdbfe]",bar2:"bg-[#bfdbfe]"}],Sa=["add","edit","trash","search","download","settings","bell","warning"],_a=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],Ea=[];function Ta(){const e=/* @__PURE__ */new Date;return`v${String(e.getDate()).padStart(2,"0")}${String(e.getMonth()+1).padStart(2,"0")}.${String(e.getHours()).padStart(2,"0")}.${String(e.getMinutes()).padStart(2,"0")}.${e.getFullYear()}`}function Ma(e,t,r,n,a,o,l){return"dark"===e?r:"pink"===e?n:"green"===e?a:"grey"===e?o??t:"blue"===e?l??t:t}function La({omit:o,section:l}={}){const i=new Set(o??[]),s=e=>void 0===l||l===e,c=Bn(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:Ea,{prefs:u,save:m}=Nt(),[h,p]=fr({}),g=e=>e in h?h[e]:u[e];br(()=>{p(e=>{const t={};let r=!1;for(const n of Object.keys(e))u[n]===e[n]?r=!0:t[n]=e[n];return r?t:e})},[u]);const f=["theme","accent_color","custom_bg_color","custom_title_color","custom_window_color","custom_button_color","corners","icon_set"],b=e=>{const t={...e};for(const e of f)e in t||(t[e]=g(e));V(t),p(t=>({...t,...e})),m(e)};gr(cr,dr,dr);const y=ur(),x=g("theme")||"system",w=A(x),v=u.desktop_bg||(d.length>0?"random":"none"),k=yr(d.length>0?d[Math.floor(Math.random()*d.length)].src:"none"),N="random"===v?k.current:v,C=u.desktop_bg_custom||"",S=N?.startsWith("#"),_=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),E=!S&&"none"!==N&&"random"!==v&&N&&!_.has(N),{url:T,refresh:M}=Xn(N,C),L=e(N,T),P=e(N===t?N:C||N,T),[I,$]=fr(null),[D,F]=fr(!1),[O,z]=fr(null),B=(e,t)=>{m({[e]:t})},H=nr().layout,{layout:U,forced:K}=Yn(),X=Gn(),Y=!!g("reduce_transparency"),[G,q]=fr({}),J=yr({}),Q=xr((e,t)=>{q(r=>({...r,[e]:t}));const r={transparency_taskbar:"--taskbar-opacity",transparency_inactive_header:"--inactive-header-opacity",transparency_inactive_content:"--inactive-content-opacity",transparency_active_header:"--active-header-opacity",transparency_active_content:"--active-content-opacity"};r[e]&&document.documentElement.style.setProperty(r[e],String(t/100)),J.current[e]&&clearTimeout(J.current[e]),J.current[e]=setTimeout(()=>{B(e,t),q(t=>{const r={...t};return delete r[e],r})},300)},[B]);br(()=>()=>{Object.values(J.current).forEach(clearTimeout)},[]);const Z=(u.transparency_taskbar??70)/100,ee=(u.transparency_active_header??80)/100,te=(u.transparency_active_content??90)/100,re=Ma(w,"bg-white/90","bg-[#1e1e2e]/90","bg-pink-50/90","bg-green-50/90","bg-gray-200/90","bg-blue-50/90"),ne=Ma(w,"bg-gray-200","bg-[#313244]","bg-pink-200","bg-green-200","bg-gray-400","bg-blue-200"),ae=Ma(w,"bg-white border border-gray-200","bg-[#1e1e2e] border border-[#45475a]","bg-white border border-pink-200","bg-white border border-green-200","bg-gray-100 border border-gray-300","bg-blue-50 border border-blue-200"),oe=Ma(w,"bg-gray-100","bg-[#313244]","bg-pink-50","bg-green-50","bg-gray-300","bg-blue-100"),le=Ma(w,"bg-blue-600","bg-blue-500","bg-pink-600","bg-green-600","bg-gray-700","bg-blue-700"),ie="sidebar"===U,se=g("accent_color")?g("custom_bg_color")||"#f3f4f6":Ma(w,"#f3f4f6","#1e1e2e","#fdf2f8","#f0fdf4","#d1d5db","#eff6ff");/* @__PURE__ */
305
305
  return Lr("div",{className:"space-y-6",children:[s("layout")&&/* @__PURE__ */Lr("div",{children:[
306
306
  /* @__PURE__ */Pr("h3",{className:"text-sm font-semibold text-gray-900 mb-1",children:"Layout Mode"}),
307
307
  /* @__PURE__ */Pr("p",{className:"text-xs text-gray-500 mb-3",children:"Switch whenever you like — the windows you have open carry over. The settings below change to match the layout you pick."}),
308
- /* @__PURE__ */Pr("div",{className:"grid grid-cols-2 gap-3 max-w-xl",children:[{key:"classic",label:H.desktop,note:"Windows you move, resize and stack, with a Start menu and a taskbar."},{key:"sidebar",label:H.sidebar,note:"The menu down the left, every window a full-size tab along the top."}].map(e=>{const t=U&&"classic"===e.key;/* @__PURE__ */
309
- return Lr("button",{type:"button",disabled:t,onClick:()=>X(e.key),"aria-pressed":K===e.key,className:"flex flex-col gap-2 rounded-lg border-2 p-2 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-50 "+(K===e.key?"border-blue-500":"border-gray-200 hover:border-gray-300"),children:[
308
+ /* @__PURE__ */Pr("div",{className:"grid grid-cols-2 gap-3 max-w-xl",children:[{key:"classic",label:H.desktop,note:"Windows you move, resize and stack, with a Start menu and a taskbar."},{key:"sidebar",label:H.sidebar,note:"The menu down the left, every window a full-size tab along the top."}].map(e=>{const t=K&&"classic"===e.key;/* @__PURE__ */
309
+ return Lr("button",{type:"button",disabled:t,onClick:()=>X(e.key),"aria-pressed":U===e.key,className:"flex flex-col gap-2 rounded-lg border-2 p-2 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-50 "+(U===e.key?"border-blue-500":"border-gray-200 hover:border-gray-300"),children:[
310
310
  /* @__PURE__ */Pr(Pa,{layout:e.key}),
311
311
  /* @__PURE__ */Lr("span",{children:[
312
- /* @__PURE__ */Pr("span",{className:"block text-sm font-medium "+(K===e.key?"text-blue-600":"text-gray-900"),children:e.label}),
313
- /* @__PURE__ */Pr("span",{className:"block text-xs text-gray-500",children:t?H.largerScreensOnly:U?H.usedOnThisDevice:e.note})]})]},e.key)})}),U&&/* @__PURE__ */Pr("div",{className:"mt-3 max-w-xl",children:/* @__PURE__ */Pr(ka,{children:H.deviceUsesSidebar})})]}),s("appearance")&&/* @__PURE__ */Lr(Ir,{children:[
314
- /* @__PURE__ */Pr("div",{className:"flex justify-center",children:/* @__PURE__ */Pr("div",{"data-layout-preview":K,className:"rounded-lg border border-gray-200 overflow-hidden",style:{width:480},children:/* @__PURE__ */Pr("div",{className:"relative",style:{height:300},children:/* @__PURE__ */Lr(Ir,ie?{children:[
312
+ /* @__PURE__ */Pr("span",{className:"block text-sm font-medium "+(U===e.key?"text-blue-600":"text-gray-900"),children:e.label}),
313
+ /* @__PURE__ */Pr("span",{className:"block text-xs text-gray-500",children:t?H.largerScreensOnly:K?H.usedOnThisDevice:e.note})]})]},e.key)})}),K&&/* @__PURE__ */Pr("div",{className:"mt-3 max-w-xl",children:/* @__PURE__ */Pr(ka,{children:H.deviceUsesSidebar})})]}),s("appearance")&&/* @__PURE__ */Lr(Ir,{children:[
314
+ /* @__PURE__ */Pr("div",{className:"flex justify-center",children:/* @__PURE__ */Pr("div",{"data-layout-preview":U,className:"rounded-lg border border-gray-200 overflow-hidden",style:{width:480},children:/* @__PURE__ */Pr("div",{className:"relative",style:{height:300},children:/* @__PURE__ */Lr(Ir,ie?{children:[
315
315
  /* @__PURE__ */Pr("div",{className:"absolute inset-0",style:{backgroundColor:se}}),
316
316
  /* @__PURE__ */Lr("div",{className:`absolute left-0 top-0 bottom-0 w-24 ${ae} border-y-0 border-l-0 flex flex-col gap-2 p-2`,children:[
317
317
  /* @__PURE__ */Pr("div",{className:`h-3 rounded-sm border border-gray-200 ${oe} mb-1`}),
@@ -394,7 +394,7 @@ return Lr("button",{onClick:()=>{b(t?g("accent_color")?{theme:"light"}:{theme:"l
394
394
  /* @__PURE__ */Pr("button",{onClick:async()=>{if($(null),ze())try{await a()}catch{}await m({desktop_bg:"random",desktop_bg_custom:""}),M()},className:"absolute -top-1.5 -right-1.5 h-4 w-4 rounded-full bg-red-500 text-white flex items-center justify-center text-3xs leading-none opacity-0 group-hover:opacity-100 transition-opacity hover:bg-red-600 shadow",children:"×"})]}),
395
395
  /* @__PURE__ */Lr("label",{className:"w-28 h-20 rounded border-2 border-gray-300 border-dashed overflow-hidden cursor-pointer flex items-center justify-center text-gray-400 hover:text-gray-600",children:[
396
396
  /* @__PURE__ */Pr(sr,{name:"add",className:"h-5 w-5",strokeWidth:1.5}),
397
- /* @__PURE__ */Pr("input",{type:"file",accept:"image/*",className:"hidden",disabled:D,onChange:e=>{const a=e.target.files?.[0];e.target.value="",a&&(async e=>{if($(null),!ze()){const t=new FileReader;return t.onloadend=()=>{t.result&&m({desktop_bg:t.result,desktop_bg_custom:t.result})},void t.readAsDataURL(e)}O(!0),z(null);try{await r(e,z),await m({desktop_bg:t,desktop_bg_custom:t}),M()}catch(e){$(n(e))}finally{O(!1)}})(a)}})]})]}),D&&/* @__PURE__ */Pr("div",{className:"mt-2",children:/* @__PURE__ */Pr(j,{state:"busy",pct:F})}),I&&/* @__PURE__ */Pr("p",{role:"alert",className:"mt-2 text-xs text-red-600",children:I})]})]}),s("layout")&&!ie&&/* @__PURE__ */Lr("div",{children:[
397
+ /* @__PURE__ */Pr("input",{type:"file",accept:"image/*",className:"hidden",disabled:D,onChange:e=>{const a=e.target.files?.[0];e.target.value="",a&&(async e=>{if($(null),!ze()){const t=new FileReader;return t.onloadend=()=>{t.result&&m({desktop_bg:t.result,desktop_bg_custom:t.result})},void t.readAsDataURL(e)}F(!0),z(null);try{await r(e,z),await m({desktop_bg:t,desktop_bg_custom:t}),M()}catch(e){$(n(e))}finally{F(!1)}})(a)}})]})]}),D&&/* @__PURE__ */Pr("div",{className:"mt-2",children:/* @__PURE__ */Pr(j,{state:"busy",pct:O})}),I&&/* @__PURE__ */Pr("p",{role:"alert",className:"mt-2 text-xs text-red-600",children:I})]})]}),s("layout")&&!ie&&/* @__PURE__ */Lr("div",{children:[
398
398
  /* @__PURE__ */Pr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Taskbar"}),
399
399
  /* @__PURE__ */Pr("div",{className:"space-y-3",children:/* @__PURE__ */Lr("div",{className:"flex items-center gap-3",children:[
400
400
  /* @__PURE__ */Pr("span",{className:"text-sm text-gray-700 w-24 shrink-0",children:"Position"}),
@@ -431,7 +431,7 @@ return Lr("div",{className:"flex items-center gap-3",children:[
431
431
  /* @__PURE__ */Pr("span",{className:"block text-xs text-gray-400",children:"Overlays frame rate, worst frame time and a bottleneck reading on the desktop, beside the version number. Turn it on to check whether Reduce transparency actually helps on this machine — or whether the slowness is coming from somewhere else."})]})]}),
432
432
  /* @__PURE__ */Lr("details",{className:"ml-6 mt-1 text-xs text-gray-400",children:[
433
433
  /* @__PURE__ */Pr("summary",{className:"cursor-pointer text-blue-600 hover:text-blue-700 rosh-focus-outline w-fit",children:"What's recorded"}),
434
- /* @__PURE__ */Pr("p",{className:"mt-1",children:"While it is on, each reading is recorded with what was happening at the time — how many windows were open, which one was on top, which menu or submenu you opened, how long you spent moving or resizing a window, and counts of clicks, keystrokes and scrolls. No page content or keystroke text is recorded. The log stays on this device unless you use the overlay's Report button, which sends it — with whatever you type in the box, and a description of this computer (browser, operating system, processor cores, memory, graphics card, screen, connection speed and whether you are on battery) — to the team as a bug report."})]})]})]}),ie&&(s("appearance")||s("layout"))&&/* @__PURE__ */Lr(ka,{children:["The ",H.sidebar," layout shows a plain background. Wallpaper, taskbar and transparency levels belong to the ",H.desktop," layout",U?".":" — switch to it to change them."]}),s("behavior")&&!i.has("behavior")&&ie&&/* @__PURE__ */Pr(ka,{children:Na(H)}),s("behavior")&&!i.has("behavior")&&!ie&&/* @__PURE__ */Lr("div",{children:[
434
+ /* @__PURE__ */Pr("p",{className:"mt-1",children:"While it is on, each reading is recorded with what was happening at the time — how many windows were open, which one was on top, which menu or submenu you opened, how long you spent moving or resizing a window, and counts of clicks, keystrokes and scrolls. No page content or keystroke text is recorded. The log stays on this device unless you use the overlay's Report button, which sends it — with whatever you type in the box, and a description of this computer (browser, operating system, processor cores, memory, graphics card, screen, connection speed and whether you are on battery) — to the team as a bug report."})]})]})]}),ie&&(s("appearance")||s("layout"))&&/* @__PURE__ */Lr(ka,{children:["The ",H.sidebar," layout shows a plain background. Wallpaper, taskbar and transparency levels belong to the ",H.desktop," layout",K?".":" — switch to it to change them."]}),s("behavior")&&!i.has("behavior")&&ie&&/* @__PURE__ */Pr(ka,{children:Na(H)}),s("behavior")&&!i.has("behavior")&&!ie&&/* @__PURE__ */Lr("div",{children:[
435
435
  /* @__PURE__ */Pr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Behavior"}),
436
436
  /* @__PURE__ */Lr("div",{className:"space-y-3",children:[
437
437
  /* @__PURE__ */Lr("div",{className:"flex items-center gap-3",children:[
@@ -509,13 +509,13 @@ return Lr("div",{className:"space-y-4",children:[
509
509
  /* @__PURE__ */Pr("th",{className:`${pe} px-2 h-8 text-left font-medium text-gray-500 w-24`}),m.map(e=>/* @__PURE__ */Pr("th",{className:`${pe} px-1 h-8 text-center`,children:/* @__PURE__ */Pr("button",{onClick:()=>{return y(t=e),n(u()),void b(t,"success");var t},className:"font-medium text-gray-500 hover:text-blue-600 transition-colors",children:h(a,e)})},e))]})}),
510
510
  /* @__PURE__ */Pr("tbody",{className:"divide-y divide-gray-100",children:p.map(e=>/* @__PURE__ */Lr("tr",{children:[
511
511
  /* @__PURE__ */Pr("td",{className:"px-2 h-8 text-gray-700 font-medium",children:g(a,e)}),m.map(t=>/* @__PURE__ */Pr("td",{className:"px-1 h-8 text-center",children:/* @__PURE__ */Pr("button",{onClick:()=>((e,t)=>{f(e,t),n(u()),b(t,e)})(e,t),"aria-label":a.choice(g(a,e),h(a,t)),"aria-pressed":r[e]===t,className:"w-4 h-4 rounded-full border-2 transition-colors "+(r[e]===t?"bg-blue-600 border-blue-600":"border-gray-300 hover:border-blue-400")})},t))]},e))})]})}),
512
- /* @__PURE__ */Pr(We,{children:/* @__PURE__ */Pr("span",{className:"text-xs text-gray-400",children:a.autosave})})]})}function Oa({sections:e,defaultSelected:t,className:r}){const n=t&&e.some(e=>e.key===t)?t:e[0]?.key??"",[a,o]=fr(n),l=e.find(e=>e.key===a)??e[0],i=nr().layout,s=St(),[c,d]=fr(!!t),u=/* @__PURE__ */Pr("nav",{className:"px-1 py-2 space-y-0.5",children:e.map(e=>{const t=e.key===a;/* @__PURE__ */
512
+ /* @__PURE__ */Pr(We,{children:/* @__PURE__ */Pr("span",{className:"text-xs text-gray-400",children:a.autosave})})]})}function Fa({sections:e,defaultSelected:t,className:r}){const n=t&&e.some(e=>e.key===t)?t:e[0]?.key??"",[a,o]=fr(n),l=e.find(e=>e.key===a)??e[0],i=nr().layout,s=St(),[c,d]=fr(!!t),u=/* @__PURE__ */Pr("nav",{className:"px-1 py-2 space-y-0.5",children:e.map(e=>{const t=e.key===a;/* @__PURE__ */
513
513
  return Lr("button",{type:"button",onClick:()=>{return t=e.key,o(t),void d(!0);var t},className:"w-full text-left rounded-lg px-3 py-3 text-sm transition-colors flex items-start gap-3 "+(t?"bg-blue-50 text-blue-700":"hover:bg-gray-100 text-gray-700"),children:[e.icon&&/* @__PURE__ */Pr("span",{className:"mt-0.5 "+(t?"text-blue-600":"text-gray-400"),children:e.icon}),
514
514
  /* @__PURE__ */Lr("span",{className:"min-w-0",children:[
515
515
  /* @__PURE__ */Pr("span",{className:"block "+(t?"font-semibold text-blue-700":"font-medium text-gray-800"),children:e.label}),e.description&&/* @__PURE__ */Pr("span",{className:"block text-2xs text-gray-500 mt-0.5",children:e.description})]})]},e.key)})});return s?c?/* @__PURE__ */Lr("div",{className:`flex h-full w-full flex-col ${r??""}`,children:[
516
516
  /* @__PURE__ */Lr("button",{type:"button",onClick:()=>d(!1),className:"flex h-(--row-height-menu) shrink-0 items-center gap-1 border-b border-gray-200 px-3 text-sm font-medium text-blue-600",children:[
517
517
  /* @__PURE__ */Pr(sr,{name:"chevron-left",className:"size-4",strokeWidth:2,"aria-hidden":"true"}),i.back]}),
518
- /* @__PURE__ */Pr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})]}):/* @__PURE__ */Pr("div",{className:`h-full w-full overflow-auto bg-gray-50 ${r??""}`,children:u}):/* @__PURE__ */Pr(Z,{storageKey:"shell.systemPreferences.sidebarWidth",defaultWidth:240,minWidth:200,maxWidth:360,className:r,sidebarClassName:"border-r border-gray-200 bg-gray-50",sidebar:u,children:/* @__PURE__ */Pr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})})}var Fa;function za(e,t,r,n,a,o){const[l,i]=fr(-1),s=yr(e),c=yr(t),d=yr(r),u=yr(n),m=yr(a),h=yr(l),p=yr(-1),g=je(),f=yr(g),b=yr(o),y=yr(null);s.current=e,c.current=t,d.current=r,u.current=n,m.current=a,h.current=l,f.current=g,b.current=o;const x=yr(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};br(()=>()=>clearTimeout(x.current),[]);const v=yr(e.length);return br(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),br(()=>{let e=!1;const t=()=>{e=document.activeElement===y.current},r=t=>{const r=e&&t.target===y.current;e=!1,r||(y.current=null)},n=e=>{y.current?.contains(e.target)&&(y.current=null)};return window.addEventListener("blur",t),document.addEventListener("focusin",r,!0),document.addEventListener("mousedown",n,!0),()=>{window.removeEventListener("blur",t),document.removeEventListener("focusin",r,!0),document.removeEventListener("mousedown",n,!0)}},[]),br(()=>{const e=e=>{if(!f.current)return;if(e.shiftKey)return;const t=e.target,r=t?.closest?.("[data-row-idx]");if(!r)return;if("INPUT"!==t.tagName||"checkbox"!==t.type)return;const n=parseInt(r.getAttribute("data-row-idx"),10);isNaN(n)||(p.current=n,w(n))};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),br(()=>{const e=e=>{if(!f.current)return;const t=e.target?.tagName;if("INPUT"===t||"TEXTAREA"===t||"SELECT"===t)return;if(e.target?.isContentEditable)return;if((e.metaKey||e.ctrlKey)&&"a"===e.key)return e.preventDefault(),void u.current?.();if(e.metaKey||e.ctrlKey||e.altKey)return;const r=s.current.length;if(0===r)return;const n="KeyJ"===e.code||"j"===e.key||"J"===e.key||"ArrowDown"===e.key,a="KeyK"===e.code||"k"===e.key||"K"===e.key||"ArrowUp"===e.key,o=e.target?.closest?.(He)??null;if("Enter"!==e.key&&" "!==e.key||!o||o===y.current)if(n||a){y.current=o?.closest('[aria-modal="true"], [role="menu"]')||e.defaultPrevented&&e.key.startsWith("Arrow")?null:o,e.preventDefault();const t=h.current,a=n?Math.min(t+1,r-1):Math.max(t-1,0);a!==t&&(i(a),function(e,t){requestAnimationFrame(()=>{const r=t?t.current:document,n=r?.querySelector(`[data-row-idx="${e}"]`);n?.scrollIntoView({block:"nearest"})})}(a,b.current),e.shiftKey&&d.current&&(d.current(s.current[a]),p.current=a))}else if("Enter"===e.key&&h.current>=0&&h.current<r)e.preventDefault(),c.current(s.current[h.current]);else if(" "===e.key&&h.current>=0&&h.current<r){if(e.preventDefault(),e.shiftKey&&p.current>=0&&m.current){const e=Math.min(p.current,h.current),t=Math.max(p.current,h.current);m.current(e,t)}else d.current?.(s.current[h.current]);p.current=h.current}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),br(()=>{const e=e=>{if(!f.current)return;if(!e.shiftKey)return;const t=e.target,r=t?.closest?.("[data-row-idx]");if(!r)return;const n=parseInt(r.getAttribute("data-row-idx"),10);if(isNaN(n))return;const a="INPUT"===t.tagName&&"checkbox"===t.type?t:null,o=p.current;if(o<0){if(a)return p.current=n,void w(n);d.current?.(s.current[n])}else{const e=Math.min(o,n),t=Math.max(o,n);if(m.current)m.current(e,t),a&&(a.checked=!0);else if(d.current)for(let r=e;r<=t;r++)d.current(s.current[r])}a||e.preventDefault(),e.stopPropagation(),p.current=n,i(n)};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),l}function Ba(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function Ha(e,t){return["react-os-shell","default-columns",e,t]}function Ka(e){const t=vr(Ba,[]),r=kr(Wr)||(Fa||(Fa=new jr),Fa),{data:n}=Ar({queryKey:Ha(e??"",t),queryFn:()=>Be.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&ze(),retry:!1,staleTime:3e5,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},r);return{defaultConfig:n??void 0,viewport:t}}function Ua(e,t){return e.length===t.length&&e.every((e,r)=>e.key===t[r].key&&e.width===t[r].width&&!!e.hidden==!!t[r].hidden)}function Xa(e){const t=e.findIndex(e=>"_select"===e.key);if(t>=0){const[r]=e.splice(t,1);r.hidden=!1,e.unshift(r)}return e}function Va(e,t){const{prefs:r,save:n}=Nt(),a=`columns_${e}`,o=r[a],{defaultConfig:l}=Ka(e),[i,s]=fr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return Xa([...e.filter(e=>t.some(t=>t.key===e.key)),...t.filter(e=>!n.has(e.key)).map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden}))])}catch{}return Xa(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=fr(null),[u,m]=fr(null),h=yr(null),p=yr(!1),g=yr(o);g.current=o;const f=yr(null),b=yr(n);b.current=n;const y=xr(t=>{p.current=!0,localStorage.setItem(`col-config-${e}`,JSON.stringify(t)),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{b.current({[a]:t})},1e3)},[e,a]);br(()=>{if(p.current||!Array.isArray(o))return;const r=new Set(o.map(e=>e.key)),n=Xa([...o.filter(e=>t.some(t=>t.key===e.key)).map(e=>({...e})),...t.filter(e=>!r.has(e.key)).map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden}))]);s(e=>Ua(e,n)?e:n),localStorage.setItem(`col-config-${e}`,JSON.stringify(n))},[e,o]),br(()=>{if(p.current||Array.isArray(g.current))return;const r=l?.visible_columns;if(!Array.isArray(r)||0===r.length)return;const n=new Set(r),a=Xa(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:!n.has(e.key)})));s(e=>Ua(e,a)?e:a),localStorage.setItem(`col-config-${e}`,JSON.stringify(a))},[e,l]);const x=yr(/* @__PURE__ */new Map);br(()=>{s(e=>function(e,t,r){const n=new Set(t.map(e=>e.key)),a=new Set(e.map(e=>e.key)),o=t.filter(e=>!a.has(e.key)),l=e.filter(e=>"_select"===e.key||n.has(e.key));if(!o.length&&l.length===e.length)return e;for(const t of e)"_select"===t.key||n.has(t.key)||r.set(t.key,t);const i=[...l];for(const e of o){let n=-1;for(let r=t.indexOf(e)-1;r>=0;r-=1){const e=i.findIndex(e=>e.key===t[r].key);if(e>=0){n=e;break}}i.splice(n+1,0,r.get(e.key)??{key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden}),r.delete(e.key)}return Xa(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=xr((e,r)=>{r.preventDefault(),r.stopPropagation();const n=w[e],a=i.findIndex(e=>e.key===n.key);h.current={idx:a,startX:r.clientX,startWidth:i[a].width};const o=e=>{if(!h.current)return;const{idx:r,startX:n,startWidth:a}=h.current,o=t.find(e=>e.key===i[r].key)?.minWidth||30,l=Math.max(o,a+e.clientX-n);s(e=>{const t=[...e];return t[r]={...t[r],width:l},t})},l=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l),h.current=null,s(e=>(y(e),e))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)},[i,w,t,y]),k=xr(e=>{d(e)},[]),N=xr((e,t)=>{if(t.preventDefault(),null===c)return;const r=t.currentTarget.getBoundingClientRect();let n=t.clientX<r.left+r.width/2?e:e+1;const a=i.filter(e=>!e.hidden);"_select"===a[0]?.key&&0===n&&(n=1),m(n)},[c,i]),C=xr((e,t)=>(t.preventDefault(),null===c||null===u||u===c||u===c+1?(d(null),void m(null)):(s(e=>{const t=e.filter(e=>!e.hidden),r=t[c];if(!r)return e;const n=e.findIndex(e=>e.key===r.key);let a;a=u<t.length?e.findIndex(e=>e.key===t[u].key):e.findIndex(e=>e.key===t[t.length-1].key)+1;const o=[...e],[l]=o.splice(n,1);return o.splice(a>n?a-1:a,0,l),y(o),o}),d(null),void m(null))),[c,u,y]),S=xr(()=>{d(null),m(null)},[]),_=xr(e=>{s(t=>{const r=t.map(t=>t.key===e?{...t,hidden:!t.hidden}:t);return 0===r.filter(e=>!e.hidden).length?t:(y(r),r)})},[y]),E=xr(()=>{const e=Xa(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})));s(e),y(e)},[t,y]);return{orderedColumns:w.map(e=>({...t.find(t=>t.key===e.key),width:e.width})).filter(Boolean),allColumns:i.map(e=>{const r=t.find(t=>t.key===e.key);return{key:e.key,label:r?.label||e.key,hidden:!!e.hidden}}),onResizeStart:v,onDragStart:k,onDragOver:N,onDrop:C,onDragEnd:S,toggleColumn:_,resetColumns:E,draggedIdx:c,dropGap:u}}function Ya({tableId:e,columns:t,sort:r,onSort:n,footer:a,afterBody:o,saveDefaultPerms:l=["change_numberingconfig"],children:i}){const s=Ct(),[c,d]=fr(!1),u=vr(()=>s&&!c?t.filter(e=>"_select"!==e.key):t,[t,s,c]),{orderedColumns:m,allColumns:h,onResizeStart:p,onDragStart:g,onDragOver:f,onDrop:b,onDragEnd:y,toggleColumn:x,resetColumns:w,draggedIdx:v,dropGap:k}=Va(e,u),{hasAnyPerm:N}=it(),C=nr().columns,[S,_]=fr(!1),[E,T]=fr(!1),[M,L]=fr(!1),P=yr(null),I=l.length>0&&N(l);O(P,xr(()=>{S&&_(!1)},[S]));const $=m.reduce((e,t)=>e+t.width,0),D=m.map(e=>`${e.width}px`),A={tableLayout:"fixed",width:$,minWidth:"100%"},R=yr(null),W=xr(e=>{const t=R.current;t&&(t.scrollLeft=e.currentTarget.scrollLeft)},[]),j=vr(()=>t.some(e=>"_select"===e.key),[t]);/* @__PURE__ */
518
+ /* @__PURE__ */Pr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})]}):/* @__PURE__ */Pr("div",{className:`h-full w-full overflow-auto bg-gray-50 ${r??""}`,children:u}):/* @__PURE__ */Pr(Z,{storageKey:"shell.systemPreferences.sidebarWidth",defaultWidth:240,minWidth:200,maxWidth:360,className:r,sidebarClassName:"border-r border-gray-200 bg-gray-50",sidebar:u,children:/* @__PURE__ */Pr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})})}var Oa;function za(e,t,r,n,a,o){const[l,i]=fr(-1),s=yr(e),c=yr(t),d=yr(r),u=yr(n),m=yr(a),h=yr(l),p=yr(-1),g=je(),f=yr(g),b=yr(o),y=yr(null);s.current=e,c.current=t,d.current=r,u.current=n,m.current=a,h.current=l,f.current=g,b.current=o;const x=yr(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};br(()=>()=>clearTimeout(x.current),[]);const v=yr(e.length);return br(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),br(()=>{let e=!1;const t=()=>{e=document.activeElement===y.current},r=t=>{const r=e&&t.target===y.current;e=!1,r||(y.current=null)},n=e=>{y.current?.contains(e.target)&&(y.current=null)};return window.addEventListener("blur",t),document.addEventListener("focusin",r,!0),document.addEventListener("mousedown",n,!0),()=>{window.removeEventListener("blur",t),document.removeEventListener("focusin",r,!0),document.removeEventListener("mousedown",n,!0)}},[]),br(()=>{const e=e=>{if(!f.current)return;if(e.shiftKey)return;const t=e.target,r=t?.closest?.("[data-row-idx]");if(!r)return;if("INPUT"!==t.tagName||"checkbox"!==t.type)return;const n=parseInt(r.getAttribute("data-row-idx"),10);isNaN(n)||(p.current=n,w(n))};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),br(()=>{const e=e=>{if(!f.current)return;const t=e.target?.tagName;if("INPUT"===t||"TEXTAREA"===t||"SELECT"===t)return;if(e.target?.isContentEditable)return;if((e.metaKey||e.ctrlKey)&&"a"===e.key)return e.preventDefault(),void u.current?.();if(e.metaKey||e.ctrlKey||e.altKey)return;const r=s.current.length;if(0===r)return;const n="KeyJ"===e.code||"j"===e.key||"J"===e.key||"ArrowDown"===e.key,a="KeyK"===e.code||"k"===e.key||"K"===e.key||"ArrowUp"===e.key,o=e.target?.closest?.(He)??null;if("Enter"!==e.key&&" "!==e.key||!o||o===y.current)if(n||a){y.current=o?.closest('[aria-modal="true"], [role="menu"]')||e.defaultPrevented&&e.key.startsWith("Arrow")?null:o,e.preventDefault();const t=h.current,a=n?Math.min(t+1,r-1):Math.max(t-1,0);a!==t&&(i(a),function(e,t){requestAnimationFrame(()=>{const r=t?t.current:document,n=r?.querySelector(`[data-row-idx="${e}"]`);n?.scrollIntoView({block:"nearest"})})}(a,b.current),e.shiftKey&&d.current&&(d.current(s.current[a]),p.current=a))}else if("Enter"===e.key&&h.current>=0&&h.current<r)e.preventDefault(),c.current(s.current[h.current]);else if(" "===e.key&&h.current>=0&&h.current<r){if(e.preventDefault(),e.shiftKey&&p.current>=0&&m.current){const e=Math.min(p.current,h.current),t=Math.max(p.current,h.current);m.current(e,t)}else d.current?.(s.current[h.current]);p.current=h.current}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),br(()=>{const e=e=>{if(!f.current)return;if(!e.shiftKey)return;const t=e.target,r=t?.closest?.("[data-row-idx]");if(!r)return;const n=parseInt(r.getAttribute("data-row-idx"),10);if(isNaN(n))return;const a="INPUT"===t.tagName&&"checkbox"===t.type?t:null,o=p.current;if(o<0){if(a)return p.current=n,void w(n);d.current?.(s.current[n])}else{const e=Math.min(o,n),t=Math.max(o,n);if(m.current)m.current(e,t),a&&(a.checked=!0);else if(d.current)for(let r=e;r<=t;r++)d.current(s.current[r])}a||e.preventDefault(),e.stopPropagation(),p.current=n,i(n)};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),l}function Ba(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function Ha(e,t){return["react-os-shell","default-columns",e,t]}function Ua(e){const t=vr(Ba,[]),r=kr(Wr)||(Oa||(Oa=new jr),Oa),{data:n}=Ar({queryKey:Ha(e??"",t),queryFn:()=>Be.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&ze(),retry:!1,staleTime:3e5,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},r);return{defaultConfig:n??void 0,viewport:t}}function Ka(e,t){return e.length===t.length&&e.every((e,r)=>e.key===t[r].key&&e.width===t[r].width&&!!e.hidden==!!t[r].hidden)}function Xa(e){const t=e.findIndex(e=>"_select"===e.key);if(t>=0){const[r]=e.splice(t,1);r.hidden=!1,e.unshift(r)}return e}function Va(e,t){const{prefs:r,save:n}=Nt(),a=`columns_${e}`,o=r[a],{defaultConfig:l}=Ua(e),[i,s]=fr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return Xa([...e.filter(e=>t.some(t=>t.key===e.key)),...t.filter(e=>!n.has(e.key)).map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden}))])}catch{}return Xa(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=fr(null),[u,m]=fr(null),h=yr(null),p=yr(!1),g=yr(o);g.current=o;const f=yr(null),b=yr(n);b.current=n;const y=xr(t=>{p.current=!0,localStorage.setItem(`col-config-${e}`,JSON.stringify(t)),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{b.current({[a]:t})},1e3)},[e,a]);br(()=>{if(p.current||!Array.isArray(o))return;const r=new Set(o.map(e=>e.key)),n=Xa([...o.filter(e=>t.some(t=>t.key===e.key)).map(e=>({...e})),...t.filter(e=>!r.has(e.key)).map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden}))]);s(e=>Ka(e,n)?e:n),localStorage.setItem(`col-config-${e}`,JSON.stringify(n))},[e,o]),br(()=>{if(p.current||Array.isArray(g.current))return;const r=l?.visible_columns;if(!Array.isArray(r)||0===r.length)return;const n=new Set(r),a=Xa(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:!n.has(e.key)})));s(e=>Ka(e,a)?e:a),localStorage.setItem(`col-config-${e}`,JSON.stringify(a))},[e,l]);const x=yr(/* @__PURE__ */new Map);br(()=>{s(e=>function(e,t,r){const n=new Set(t.map(e=>e.key)),a=new Set(e.map(e=>e.key)),o=t.filter(e=>!a.has(e.key)),l=e.filter(e=>"_select"===e.key||n.has(e.key));if(!o.length&&l.length===e.length)return e;for(const t of e)"_select"===t.key||n.has(t.key)||r.set(t.key,t);const i=[...l];for(const e of o){let n=-1;for(let r=t.indexOf(e)-1;r>=0;r-=1){const e=i.findIndex(e=>e.key===t[r].key);if(e>=0){n=e;break}}i.splice(n+1,0,r.get(e.key)??{key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden}),r.delete(e.key)}return Xa(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=xr((e,r)=>{r.preventDefault(),r.stopPropagation();const n=w[e],a=i.findIndex(e=>e.key===n.key);h.current={idx:a,startX:r.clientX,startWidth:i[a].width};const o=e=>{if(!h.current)return;const{idx:r,startX:n,startWidth:a}=h.current,o=t.find(e=>e.key===i[r].key)?.minWidth||30,l=Math.max(o,a+e.clientX-n);s(e=>{const t=[...e];return t[r]={...t[r],width:l},t})},l=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l),h.current=null,s(e=>(y(e),e))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)},[i,w,t,y]),k=xr(e=>{d(e)},[]),N=xr((e,t)=>{if(t.preventDefault(),null===c)return;const r=t.currentTarget.getBoundingClientRect();let n=t.clientX<r.left+r.width/2?e:e+1;const a=i.filter(e=>!e.hidden);"_select"===a[0]?.key&&0===n&&(n=1),m(n)},[c,i]),C=xr((e,t)=>(t.preventDefault(),null===c||null===u||u===c||u===c+1?(d(null),void m(null)):(s(e=>{const t=e.filter(e=>!e.hidden),r=t[c];if(!r)return e;const n=e.findIndex(e=>e.key===r.key);let a;a=u<t.length?e.findIndex(e=>e.key===t[u].key):e.findIndex(e=>e.key===t[t.length-1].key)+1;const o=[...e],[l]=o.splice(n,1);return o.splice(a>n?a-1:a,0,l),y(o),o}),d(null),void m(null))),[c,u,y]),S=xr(()=>{d(null),m(null)},[]),_=xr(e=>{s(t=>{const r=t.map(t=>t.key===e?{...t,hidden:!t.hidden}:t);return 0===r.filter(e=>!e.hidden).length?t:(y(r),r)})},[y]),E=xr(()=>{const e=Xa(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})));s(e),y(e)},[t,y]);return{orderedColumns:w.map(e=>({...t.find(t=>t.key===e.key),width:e.width})).filter(Boolean),allColumns:i.map(e=>{const r=t.find(t=>t.key===e.key);return{key:e.key,label:r?.label||e.key,hidden:!!e.hidden}}),onResizeStart:v,onDragStart:k,onDragOver:N,onDrop:C,onDragEnd:S,toggleColumn:_,resetColumns:E,draggedIdx:c,dropGap:u}}function Ya({tableId:e,columns:t,sort:r,onSort:n,footer:a,afterBody:o,saveDefaultPerms:l=["change_numberingconfig"],children:i}){const s=Ct(),[c,d]=fr(!1),u=vr(()=>s&&!c?t.filter(e=>"_select"!==e.key):t,[t,s,c]),{orderedColumns:m,allColumns:h,onResizeStart:p,onDragStart:g,onDragOver:f,onDrop:b,onDragEnd:y,toggleColumn:x,resetColumns:w,draggedIdx:v,dropGap:k}=Va(e,u),{hasAnyPerm:N}=it(),C=nr().columns,[S,_]=fr(!1),[E,T]=fr(!1),[M,L]=fr(!1),P=yr(null),I=l.length>0&&N(l);F(P,xr(()=>{S&&_(!1)},[S]));const $=m.reduce((e,t)=>e+t.width,0),D=m.map(e=>`${e.width}px`),A={tableLayout:"fixed",width:$,minWidth:"100%"},R=yr(null),W=xr(e=>{const t=R.current;t&&(t.scrollLeft=e.currentTarget.scrollLeft)},[]),j=vr(()=>t.some(e=>"_select"===e.key),[t]);/* @__PURE__ */
519
519
  return Lr("div",{className:"flex flex-col flex-1 min-h-0 "+(s?"-mx-4":""),children:[
520
520
  /* @__PURE__ */Pr("div",{ref:R,className:"shrink-0 overflow-x-hidden",children:/* @__PURE__ */Lr("table",{className:"divide-y divide-gray-200",style:A,children:[
521
521
  /* @__PURE__ */Pr("colgroup",{children:m.map((e,t)=>/* @__PURE__ */Pr("col",{style:{width:D[t]}},e.key))}),
@@ -530,26 +530,26 @@ return Lr("th",{className:`${pe} px-4 py-3 text-left text-xs font-medium text-gr
530
530
  /* @__PURE__ */Pr("button",{onClick:w,className:"text-2xs text-gray-400 hover:text-gray-600",children:C.reset}),
531
531
  /* @__PURE__ */Pr("button",{onClick:()=>_(!S),className:"text-gray-400 hover:text-gray-600",title:C.choose,children:/* @__PURE__ */Pr(sr,{name:"adjust",className:"w-4 h-4",strokeWidth:"1.5"})}),S&&/* @__PURE__ */Lr("div",{className:"absolute bottom-full right-0 mb-1 w-52 rounded-(--radius-popup) z-(--z-popup) py-1 max-h-80 overflow-y-auto",style:Yt(),children:[
532
532
  /* @__PURE__ */Pr("p",{className:"px-3 py-2 text-3xs font-semibold text-gray-400 uppercase",children:C.heading}),h.filter(e=>"_select"!==e.key).map(e=>/* @__PURE__ */Lr("label",{className:"flex items-center gap-2 px-3 py-1 text-sm text-gray-700 hover:bg-gray-50 cursor-pointer",children:[
533
- /* @__PURE__ */Pr("input",{type:"checkbox",checked:!e.hidden,onChange:()=>x(e.key),className:"h-3.5 w-3.5 rounded border-gray-300 text-blue-600"}),e.label]},e.key)),I&&/* @__PURE__ */Pr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */Pr("button",{onClick:async()=>{T(!0);const t=h.filter(e=>!e.hidden).map(e=>e.key),n=s?"mobile":"desktop",a={visible_columns:t};r&&(a.sort=r);try{await Be.patch(`/auth/default-columns/${e}/`,a,{params:{viewport:n}}).catch(()=>Be.post("/auth/default-columns/",{table_id:e,viewport:n,...a})),L(!0),setTimeout(()=>L(!1),2e3)}catch{}T(!1)},disabled:E,className:"text-2xs w-full text-center py-1 rounded "+(M?"text-green-600":"text-gray-500 hover:text-blue-600"),children:E?"...":M?C.savedDefault:C.saveDefault})})]})]})]})]})}function Ga(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function qa(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Ja(e){const{items:t,isLoading:r,emptyState:n,totalCount:a,isError:o,onRetry:l,errorTitle:i,errorMessage:s,tableId:c,columns:d,renderCell:u,getRowId:m=e=>e.id,sort:h,onSort:p,selected:g,setSelected:f,onRowClick:b,onRowHover:y,getRowClassName:x,footerLabel:w,footerExtra:v,sentinelRef:k,isFetchingNextPage:N,saveDefaultPerms:C,exportEndpoint:S,exportFilename:_="export.csv",contextActions:E}=e,[T,M]=fr(null),L=yr(null),P=nr(),I=P.entityList,$=e=>{f(t=>{const r=new Set(t),n=m(e);return r.has(n)?r.delete(n):r.add(n),r})},D=()=>{f(e=>{const r=t.map(m),n=new Set(e);return r.every(t=>e.has(t))?r.forEach(e=>n.delete(e)):r.forEach(e=>n.add(e)),n})},A=za(t,b,$,D,(e,r)=>{f(n=>{const a=new Set(n);for(let n=e;n<=r;n++)a.add(m(t[n]));return a})},L),R=t.filter(e=>g.has(m(e))),W=()=>{const e=[...L.current?.querySelectorAll("tr[data-row-idx]")??[]].filter(e=>{const r=t[Number(e.dataset.rowIdx)];return void 0!==r&&g.has(m(r))}),r=e.length?Ga(e[0]).map(e=>e.dataset.colKey??""):[],n=new Map(d.map(e=>[e.key,e.label]));return{keys:r,header:r.map(e=>n.get(e)??e),body:e.map(e=>Ga(e).map(qa))}},j=()=>{M(null);const{header:e,body:t}=W();if(!t.length)return;const r=[e,...t].map(e=>e.join("\t")).join("\n"),n="<table><thead><tr>"+e.map(e=>`<th>${he(e)}</th>`).join("")+"</tr></thead><tbody>"+t.map(e=>`<tr>${e.map(e=>`<td>${he(e)}</td>`).join("")}</tr>`).join("")+"</tbody></table>";H(I.copiedRows(t.length),r,n)},O=async()=>{M(null);const e=R.map(m);if(!e.length||!S)return;const t=new URLSearchParams({ids:e.join(",")}),r=(()=>{const e=new Map(d.map(e=>[e.key,e.exportLabel??e.label]));try{const t=localStorage.getItem(`col-config-${c}`);if(t){const r=JSON.parse(t).filter(t=>!t.hidden&&"_select"!==t.key&&e.has(t.key)).map(t=>`${t.key}|${e.get(t.key)}`);if(r.length)return r.join(",")}}catch{}return d.filter(e=>!e.defaultHidden).map(e=>`${e.key}|${e.exportLabel??e.label}`).join(",")})();r&&t.set("cols",r);const n=S.includes("?")?"&":"?";try{const r=await Be.get(`${S}${n}${t}`,{responseType:"blob"}),a=window.URL.createObjectURL(new Blob([r.data],{type:"text/csv"})),o=document.createElement("a");o.href=a,o.download=_,o.click(),window.URL.revokeObjectURL(a);const l=r.headers??{},i=Number(l["x-row-count"]);if("true"===String(l["x-truncated"]))return void ct.notify(Number.isFinite(i)?I.exportTruncated(i,e.length):I.exportTruncatedUnknown(e.length));ct.success(I.exported(e.length))}catch{ct.error(I.exportFailed)}};if(r)/* @__PURE__ */return Pr(Oe,{});if(o&&0===t.length)/* @__PURE__ */
534
- return Pr(F,{title:i,message:s,onRetry:l});if(0===t.length)/* @__PURE__ */return Pr(Ir,{children:n});const K=t.length>0&&R.length===t.length,U=R.length>0&&!K,X=g.size-R.length,V=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */Pr(z,{"aria-label":P.table.selectAll,checked:K,indeterminate:U,onChange:D,style:{height:14,width:14}})},...d],G=/* @__PURE__ */Pr(B,{selectedCount:R.length,hiddenSelectedCount:X,loadedCount:t.length,totalCount:a,label:w,isFetchingMore:N,extra:v}),q=k?/* @__PURE__ */Lr(Ir,{children:[
533
+ /* @__PURE__ */Pr("input",{type:"checkbox",checked:!e.hidden,onChange:()=>x(e.key),className:"h-3.5 w-3.5 rounded border-gray-300 text-blue-600"}),e.label]},e.key)),I&&/* @__PURE__ */Pr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */Pr("button",{onClick:async()=>{T(!0);const t=h.filter(e=>!e.hidden).map(e=>e.key),n=s?"mobile":"desktop",a={visible_columns:t};r&&(a.sort=r);try{await Be.patch(`/auth/default-columns/${e}/`,a,{params:{viewport:n}}).catch(()=>Be.post("/auth/default-columns/",{table_id:e,viewport:n,...a})),L(!0),setTimeout(()=>L(!1),2e3)}catch{}T(!1)},disabled:E,className:"text-2xs w-full text-center py-1 rounded "+(M?"text-green-600":"text-gray-500 hover:text-blue-600"),children:E?"...":M?C.savedDefault:C.saveDefault})})]})]})]})]})}function Ga(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function qa(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Ja(e){const{items:t,isLoading:r,emptyState:n,totalCount:a,isError:o,onRetry:l,errorTitle:i,errorMessage:s,tableId:c,columns:d,renderCell:u,getRowId:m=e=>e.id,sort:h,onSort:p,selected:g,setSelected:f,onRowClick:b,onRowHover:y,getRowClassName:x,footerLabel:w,footerExtra:v,sentinelRef:k,isFetchingNextPage:N,saveDefaultPerms:C,exportEndpoint:S,exportFilename:_="export.csv",contextActions:E}=e,[T,M]=fr(null),L=yr(null),P=nr(),I=P.entityList,$=e=>{f(t=>{const r=new Set(t),n=m(e);return r.has(n)?r.delete(n):r.add(n),r})},D=()=>{f(e=>{const r=t.map(m),n=new Set(e);return r.every(t=>e.has(t))?r.forEach(e=>n.delete(e)):r.forEach(e=>n.add(e)),n})},A=za(t,b,$,D,(e,r)=>{f(n=>{const a=new Set(n);for(let n=e;n<=r;n++)a.add(m(t[n]));return a})},L),R=t.filter(e=>g.has(m(e))),W=()=>{const e=[...L.current?.querySelectorAll("tr[data-row-idx]")??[]].filter(e=>{const r=t[Number(e.dataset.rowIdx)];return void 0!==r&&g.has(m(r))}),r=e.length?Ga(e[0]).map(e=>e.dataset.colKey??""):[],n=new Map(d.map(e=>[e.key,e.label]));return{keys:r,header:r.map(e=>n.get(e)??e),body:e.map(e=>Ga(e).map(qa))}},j=()=>{M(null);const{header:e,body:t}=W();if(!t.length)return;const r=[e,...t].map(e=>e.join("\t")).join("\n"),n="<table><thead><tr>"+e.map(e=>`<th>${he(e)}</th>`).join("")+"</tr></thead><tbody>"+t.map(e=>`<tr>${e.map(e=>`<td>${he(e)}</td>`).join("")}</tr>`).join("")+"</tbody></table>";H(I.copiedRows(t.length),r,n)},F=async()=>{M(null);const e=R.map(m);if(!e.length||!S)return;const t=new URLSearchParams({ids:e.join(",")}),r=(()=>{const e=new Map(d.map(e=>[e.key,e.exportLabel??e.label]));try{const t=localStorage.getItem(`col-config-${c}`);if(t){const r=JSON.parse(t).filter(t=>!t.hidden&&"_select"!==t.key&&e.has(t.key)).map(t=>`${t.key}|${e.get(t.key)}`);if(r.length)return r.join(",")}}catch{}return d.filter(e=>!e.defaultHidden).map(e=>`${e.key}|${e.exportLabel??e.label}`).join(",")})();r&&t.set("cols",r);const n=S.includes("?")?"&":"?";try{const r=await Be.get(`${S}${n}${t}`,{responseType:"blob"}),a=window.URL.createObjectURL(new Blob([r.data],{type:"text/csv"})),o=document.createElement("a");o.href=a,o.download=_,o.click(),window.URL.revokeObjectURL(a);const l=r.headers??{},i=Number(l["x-row-count"]);if("true"===String(l["x-truncated"]))return void ct.notify(Number.isFinite(i)?I.exportTruncated(i,e.length):I.exportTruncatedUnknown(e.length));ct.success(I.exported(e.length))}catch{ct.error(I.exportFailed)}};if(r)/* @__PURE__ */return Pr(Fe,{});if(o&&0===t.length)/* @__PURE__ */
534
+ return Pr(O,{title:i,message:s,onRetry:l});if(0===t.length)/* @__PURE__ */return Pr(Ir,{children:n});const U=t.length>0&&R.length===t.length,K=R.length>0&&!U,X=g.size-R.length,V=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */Pr(z,{"aria-label":P.table.selectAll,checked:U,indeterminate:K,onChange:D,style:{height:14,width:14}})},...d],G=/* @__PURE__ */Pr(B,{selectedCount:R.length,hiddenSelectedCount:X,loadedCount:t.length,totalCount:a,label:w,isFetchingMore:N,extra:v}),q=k?/* @__PURE__ */Lr(Ir,{children:[
535
535
  /* @__PURE__ */Pr("div",{ref:k}),N&&/* @__PURE__ */Pr(Pt,{size:"sm",padding:"py-3",label:P.list.loadingMore})]}):void 0;let J=null;if(T){const{x:e,y:r,item:n,text:o,firstColumn:i}=T,s=E?E(R):[],c=R.length,d=()=>M(null),u=void 0!==a&&a>t.length;J=/* @__PURE__ */Lr(Dt,{portal:!0,style:{left:e,top:r},onClose:d,minWidth:210,children:[
536
536
  /* @__PURE__ */Pr(At,{children:X>0?P.list.selectedNotShown(c,X):P.list.selected(c)}),
537
537
  /* @__PURE__ */Pr(Rt,{className:"font-medium",onClick:()=>{d(),b(n)},children:I.open}),
538
538
  /* @__PURE__ */Pr($t,{}),o&&/* @__PURE__ */Pr(Rt,{onClick:()=>{d(),H(I.copiedText,o.text,o.html)},children:I.copy}),i&&/* @__PURE__ */Pr(Rt,{onClick:()=>(e=>{M(null);const{keys:t,body:r}=W(),n=t.indexOf(e.key);n<0||!r.length||H(e.label,r.map(e=>e[n]).join("\n"))})(i),children:I.copyColumn(i.label)}),
539
- /* @__PURE__ */Pr(Rt,{disabled:0===c,onClick:j,children:I.copyRows(c)}),S&&/* @__PURE__ */Pr(Rt,{onClick:O,children:I.exportSelected}),s.map((e,t)=>/* @__PURE__ */Lr("div",{children:[(e.divider||0===t)&&/* @__PURE__ */Pr($t,{}),
539
+ /* @__PURE__ */Pr(Rt,{disabled:0===c,onClick:j,children:I.copyRows(c)}),S&&/* @__PURE__ */Pr(Rt,{onClick:F,children:I.exportSelected}),s.map((e,t)=>/* @__PURE__ */Lr("div",{children:[(e.divider||0===t)&&/* @__PURE__ */Pr($t,{}),
540
540
  /* @__PURE__ */Pr(Rt,{danger:e.danger,disabled:e.disabled,onClick:()=>{d(),e.onClick(R)},children:e.label})]},t)),
541
- /* @__PURE__ */Pr($t,{}),!K&&/* @__PURE__ */Pr(Rt,{onClick:()=>{d(),f(e=>/* @__PURE__ */new Set([...e,...t.map(m)]))},children:u?I.selectAllLoaded(t.length):I.selectAll}),
541
+ /* @__PURE__ */Pr($t,{}),!U&&/* @__PURE__ */Pr(Rt,{onClick:()=>{d(),f(e=>/* @__PURE__ */new Set([...e,...t.map(m)]))},children:u?I.selectAllLoaded(t.length):I.selectAll}),
542
542
  /* @__PURE__ */Pr(Rt,{onClick:()=>{d(),f(/* @__PURE__ */new Set)},children:I.clearSelection}),l&&/* @__PURE__ */Pr(Rt,{onClick:()=>{d(),l()},children:I.refresh})]})}/* @__PURE__ */
543
543
  return Lr("div",{className:"flex-1 flex flex-col mb-1 bg-white rounded-lg shadow overflow-hidden",children:[
544
544
  /* @__PURE__ */Pr("div",{className:"flex-1 min-h-0 flex flex-col",children:/* @__PURE__ */Pr(Ya,{tableId:c,columns:V,sort:h,onSort:p,footer:G,afterBody:q,saveDefaultPerms:C,children:e=>/* @__PURE__ */Pr("tbody",{ref:L,className:"divide-y divide-gray-100",children:t.map((t,r)=>{const n=m(t);/* @__PURE__ */
545
- return Pr("tr",{"data-row-idx":r,className:`cursor-pointer ${A===r?"bg-blue-50 ring-1 ring-inset ring-blue-300":g.has(n)?"bg-blue-50 hover:bg-blue-100":"hover:bg-gray-50"} ${x?.(t)??""}`,onClick:()=>b(t),onContextMenu:e=>((e,t)=>{if(e.shiftKey||jt(e.target))return;e.preventDefault();const r=m(t);g.has(r)||f(/* @__PURE__ */new Set([r]));const n=Ga(e.currentTarget)[0]?.dataset.colKey,a=n?d.find(e=>e.key===n)?.label:void 0;M({x:e.clientX,y:e.clientY,item:t,text:Y(e.target),firstColumn:n&&a?{key:n,label:a}:null})})(e,t),onMouseEnter:y?()=>y(t):void 0,children:e.map(e=>/* @__PURE__ */Pr("td",{"data-col-key":e.key,className:"px-4 py-3 whitespace-nowrap text-sm overflow-hidden",children:"_select"===e.key?/* @__PURE__ */Pr(z,{"aria-label":P.table.selectRow,checked:g.has(n),onChange:()=>$(t),onClick:e=>e.stopPropagation(),style:{height:14,width:14}}):u(t,e.key)},e.key))},n)})})})}),J]})}function Qa({queryKey:e,fetchFn:t,extraParams:r={},pageSize:n=25}){const a=yr(null),o=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),l=Rr({queryKey:e,queryFn:({pageParam:e=1})=>t({page:String(e),...o}),getNextPageParam:(e,t)=>{if(e.next)return t.length+1},initialPageParam:1}),{fetchNextPage:i,hasNextPage:s,isFetchingNextPage:c}=l,d=xr(e=>{const[t]=e;t.isIntersecting&&s&&!c&&i()},[i,s,c]);br(()=>{const e=a.current;if(!e)return;let t=e.parentElement;for(;t;){const e=getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)break;t=t.parentElement}const r=new IntersectionObserver(d,{root:t,rootMargin:"200px",threshold:0});return r.observe(e),()=>r.disconnect()},[d]);const u=/* @__PURE__ */new Set;return{items:(l.data?.pages.flatMap(e=>e?.results??[])??[]).filter(e=>null!=e).filter(e=>{const t=e.id;return null==t||!u.has(t)&&(u.add(t),!0)}),totalCount:l.data?.pages[0]?.count??0,isLoading:l.isLoading,isError:l.isError,error:l.error,isFetchingNextPage:c,hasNextPage:!!s,sentinelRef:a,refetch:l.refetch}}function Za(e){const t=e;return!!t&&"string"==typeof t.field&&t.field.length>0&&("asc"===t.direction||"desc"===t.direction)}function eo(e,t="asc",r,n){const{prefs:a,save:o}=Nt(),l=r?`sort_${r}`:null,[i,s]=fr(()=>{if(l){if(Za(a[l]))return a[l];try{const e=JSON.parse(localStorage.getItem(`sort-config-${r}`)||"null");if(Za(e))return e}catch{}}return{field:e,direction:t}}),c=yr(!1),d=l?a[l]:void 0,u=yr(d);u.current=d,br(()=>{if(!c.current&&Za(d)){s(e=>e.field===d.field&&e.direction===d.direction?e:d);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(d))}catch{}}},[r,d?.field,d?.direction]);const{defaultConfig:m}=Ka(r);br(()=>{const e=m?.sort;if(!c.current&&!Za(u.current)&&Za(e)){s(t=>t.field===e.field&&t.direction===e.direction?t:e);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(e))}catch{}}},[r,m]);const h=n?.columns?.length?n.columns:void 0,p=!h||function(e,t){return e.some(e=>(e.sortField??("_select"!==e.key?e.key:""))===t&&""!==t)}(h,i.field)?i:{field:e,direction:t},g="desc"===p.direction?`-${p.field}`:p.field;return{sort:p,onSort:e=>{c.current=!0;const t=p.field===e?{field:e,direction:"asc"===p.direction?"desc":"asc"}:{field:e,direction:"asc"};if(s(t),l){try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(t))}catch{}o({[l]:t})}},ordering:g}}function to({filters:e,values:t,onChange:r,onClear:n,children:a}){const o=Object.values(t).filter(Boolean).length;/* @__PURE__ */
545
+ return Pr("tr",{"data-row-idx":r,className:`cursor-pointer ${A===r?"bg-blue-50 ring-1 ring-inset ring-blue-300":g.has(n)?"bg-blue-50 hover:bg-blue-100":"hover:bg-gray-50"} ${x?.(t)??""}`,onClick:()=>b(t),onContextMenu:e=>((e,t)=>{if(e.shiftKey||jt(e.target))return;e.preventDefault();const r=m(t);g.has(r)||f(/* @__PURE__ */new Set([r]));const n=Ga(e.currentTarget)[0]?.dataset.colKey,a=n?d.find(e=>e.key===n)?.label:void 0;M({x:e.clientX,y:e.clientY,item:t,text:Y(e.target),firstColumn:n&&a?{key:n,label:a}:null})})(e,t),onMouseEnter:y?()=>y(t):void 0,children:e.map(e=>/* @__PURE__ */Pr("td",{"data-col-key":e.key,className:"px-4 py-3 whitespace-nowrap text-sm overflow-hidden",children:"_select"===e.key?/* @__PURE__ */Pr(z,{"aria-label":P.table.selectRow,checked:g.has(n),onChange:()=>$(t),onClick:e=>e.stopPropagation(),style:{height:14,width:14}}):u(t,e.key)},e.key))},n)})})})}),J]})}function Qa({queryKey:e,fetchFn:t,extraParams:r={},pageSize:n=25}){const a=yr(null),o=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),l=Rr({queryKey:e,queryFn:({pageParam:e=1})=>t({page:String(e),...o}),getNextPageParam:(e,t)=>{if(e.next)return t.length+1},initialPageParam:1}),{fetchNextPage:i,hasNextPage:s,isFetchingNextPage:c}=l,d=xr(e=>{const[t]=e;t.isIntersecting&&s&&!c&&i()},[i,s,c]);br(()=>{const e=a.current;if(!e)return;let t=e.parentElement;for(;t;){const e=getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)break;t=t.parentElement}const r=new IntersectionObserver(d,{root:t,rootMargin:"200px",threshold:0});return r.observe(e),()=>r.disconnect()},[d]);const u=/* @__PURE__ */new Set;return{items:(l.data?.pages.flatMap(e=>e?.results??[])??[]).filter(e=>null!=e).filter(e=>{const t=e.id;return null==t||!u.has(t)&&(u.add(t),!0)}),totalCount:l.data?.pages[0]?.count??0,isLoading:l.isLoading,isError:l.isError,error:l.error,isFetchingNextPage:c,hasNextPage:!!s,sentinelRef:a,refetch:l.refetch}}function Za(e){const t=e;return!!t&&"string"==typeof t.field&&t.field.length>0&&("asc"===t.direction||"desc"===t.direction)}function eo(e,t="asc",r,n){const{prefs:a,save:o}=Nt(),l=r?`sort_${r}`:null,[i,s]=fr(()=>{if(l){if(Za(a[l]))return a[l];try{const e=JSON.parse(localStorage.getItem(`sort-config-${r}`)||"null");if(Za(e))return e}catch{}}return{field:e,direction:t}}),c=yr(!1),d=l?a[l]:void 0,u=yr(d);u.current=d,br(()=>{if(!c.current&&Za(d)){s(e=>e.field===d.field&&e.direction===d.direction?e:d);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(d))}catch{}}},[r,d?.field,d?.direction]);const{defaultConfig:m}=Ua(r);br(()=>{const e=m?.sort;if(!c.current&&!Za(u.current)&&Za(e)){s(t=>t.field===e.field&&t.direction===e.direction?t:e);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(e))}catch{}}},[r,m]);const h=n?.columns?.length?n.columns:void 0,p=!h||function(e,t){return e.some(e=>(e.sortField??("_select"!==e.key?e.key:""))===t&&""!==t)}(h,i.field)?i:{field:e,direction:t},g="desc"===p.direction?`-${p.field}`:p.field;return{sort:p,onSort:e=>{c.current=!0;const t=p.field===e?{field:e,direction:"asc"===p.direction?"desc":"asc"}:{field:e,direction:"asc"};if(s(t),l){try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(t))}catch{}o({[l]:t})}},ordering:g}}function to({filters:e,values:t,onChange:r,onClear:n,children:a}){const o=Object.values(t).filter(Boolean).length;/* @__PURE__ */
546
546
  return Lr("div",{className:"flex items-center gap-3 flex-wrap",children:[e.map(e=>{const n=e.searchable??e.options.length>8;/* @__PURE__ */
547
547
  return Pr(n?no:ro,{filter:e,value:t[e.field]||"",onChange:t=>r(e.field,t)},e.field)}),a,o>0&&/* @__PURE__ */Lr("button",{onClick:n,className:"flex items-center gap-1 text-sm text-gray-500 hover:text-gray-700",children:[
548
- /* @__PURE__ */Pr(sr,{name:"close",look:"mini",className:"h-4 w-4"}),"Clear filters"]})]})}function ro({filter:e,value:t,onChange:r}){const[n,a]=fr(!1),[o,l]=fr(-1),i=yr(null),s=yr(null),c=yr(null),d=yr(n);d.current=n;const u=yr({buffer:"",timer:null}),m=_r(),h=`${m}-listbox`,p=e=>`${m}-opt-${e}`,g=[{value:"",label:e.label},...e.options],f=t?g.findIndex(e=>e.value===t):0,b=t?e.options.find(e=>e.value===t)?.label:null,y=xr((e=!0)=>{a(!1),l(-1),e&&s.current?.focus()},[]),x=xr(()=>{l(f>=0?f:K(g)),a(!0)},[f,g]),w=xr(e=>{const t=g[e];t&&(r(t.value),y())},[g,r,y]);O(i,xr(()=>{n&&y(!1)},[n,y])),br(()=>{if(n)return qt(e=>!("Escape"!==e.key||!d.current)&&(y(),!0),()=>c.current)},[n,y]),br(()=>{!n||o<0||c.current?.querySelector(`#${CSS.escape(p(o))}`)?.scrollIntoView({block:"nearest"})});/* @__PURE__ */
548
+ /* @__PURE__ */Pr(sr,{name:"close",look:"mini",className:"h-4 w-4"}),"Clear filters"]})]})}function ro({filter:e,value:t,onChange:r}){const[n,a]=fr(!1),[o,l]=fr(-1),i=yr(null),s=yr(null),c=yr(null),d=yr(n);d.current=n;const u=yr({buffer:"",timer:null}),m=_r(),h=`${m}-listbox`,p=e=>`${m}-opt-${e}`,g=[{value:"",label:e.label},...e.options],f=t?g.findIndex(e=>e.value===t):0,b=t?e.options.find(e=>e.value===t)?.label:null,y=xr((e=!0)=>{a(!1),l(-1),e&&s.current?.focus()},[]),x=xr(()=>{l(f>=0?f:U(g)),a(!0)},[f,g]),w=xr(e=>{const t=g[e];t&&(r(t.value),y())},[g,r,y]);F(i,xr(()=>{n&&y(!1)},[n,y])),br(()=>{if(n)return qt(e=>!("Escape"!==e.key||!d.current)&&(y(),!0),()=>c.current)},[n,y]),br(()=>{!n||o<0||c.current?.querySelector(`#${CSS.escape(p(o))}`)?.scrollIntoView({block:"nearest"})});/* @__PURE__ */
549
549
  return Lr("div",{ref:i,className:"relative",children:[
550
- /* @__PURE__ */Lr("button",{ref:s,type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":n,"aria-controls":n?h:void 0,"aria-activedescendant":n&&o>=0?p(o):void 0,onClick:()=>n?y():x(),onKeyDown:e=>{switch(e.key){case"ArrowDown":return e.preventDefault(),void(n?l(e=>q(g,e,1)):x());case"ArrowUp":return e.preventDefault(),void(n?l(e=>q(g,e,-1)):x());case"Home":return void(n&&(e.preventDefault(),l(K(g))));case"End":return void(n&&(e.preventDefault(),l(G(g))));case"Enter":return void(n&&(e.preventDefault(),w(o)));case" ":return e.preventDefault(),void(n?w(o):x());case"Escape":return void(n&&(e.preventDefault(),e.stopPropagation(),y()));case"Tab":return void(n&&y(!1));default:1!==e.key.length||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),(e=>{const t=u.current;t.timer&&clearTimeout(t.timer),t.buffer+=e,t.timer=setTimeout(()=>{t.buffer="",t.timer=null},500);const r=Q(g,t.buffer,n?o:f);r<0||(n?l(r):w(r))})(e.key))}},className:`flex h-8 items-center gap-2 border rounded-lg px-3 text-sm transition-colors ${t?`${fe} ${be}`:ye}`,children:[
550
+ /* @__PURE__ */Lr("button",{ref:s,type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":n,"aria-controls":n?h:void 0,"aria-activedescendant":n&&o>=0?p(o):void 0,onClick:()=>n?y():x(),onKeyDown:e=>{switch(e.key){case"ArrowDown":return e.preventDefault(),void(n?l(e=>q(g,e,1)):x());case"ArrowUp":return e.preventDefault(),void(n?l(e=>q(g,e,-1)):x());case"Home":return void(n&&(e.preventDefault(),l(U(g))));case"End":return void(n&&(e.preventDefault(),l(G(g))));case"Enter":return void(n&&(e.preventDefault(),w(o)));case" ":return e.preventDefault(),void(n?w(o):x());case"Escape":return void(n&&(e.preventDefault(),e.stopPropagation(),y()));case"Tab":return void(n&&y(!1));default:1!==e.key.length||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),(e=>{const t=u.current;t.timer&&clearTimeout(t.timer),t.buffer+=e,t.timer=setTimeout(()=>{t.buffer="",t.timer=null},500);const r=Q(g,t.buffer,n?o:f);r<0||(n?l(r):w(r))})(e.key))}},className:`flex h-8 items-center gap-2 border rounded-lg px-3 text-sm transition-colors ${t?`${fe} ${be}`:ye}`,children:[
551
551
  /* @__PURE__ */Pr("span",{className:"truncate max-w-[140px]",children:b||e.label}),t?
552
- /* @__PURE__ */Pr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r("")},className:"cursor-pointer",children:/* @__PURE__ */Pr(sr,{name:"close",look:"mini",className:"h-3.5 w-3.5"})}):/* @__PURE__ */Pr(sr,{name:"chevron-down",className:"h-3.5 w-3.5 transition-transform "+(n?"rotate-180":""),strokeWidth:2})]}),n&&/* @__PURE__ */Pr("div",{ref:c,id:h,role:"listbox",className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-(--z-popup) max-h-52 overflow-y-auto py-1",style:Yt(),children:g.map((e,t)=>/* @__PURE__ */Pr("div",{id:p(t),role:"option","aria-selected":t===f,onPointerEnter:()=>l(t),onClick:()=>w(t),className:"mx-1 h-8 cursor-pointer truncate rounded-lg px-3 text-sm leading-8\n "+(t===o?"bg-blue-50 text-blue-700":t===f?"font-medium text-blue-600":"text-gray-700"),children:e.label},e.value||"__all__"))})]})}function no({filter:e,value:t,onChange:r}){const[n,a]=fr(!1),[o,l]=fr(""),i=yr(null),s=yr(null),c=t?e.options.find(e=>e.value===t)?.label:null;O(i,xr(()=>{n&&(a(!1),l(""))},[n])),br(()=>{n&&setTimeout(()=>s.current?.focus(),50)},[n]);const d=o?e.options.filter(e=>e.label.toLowerCase().includes(o.toLowerCase())):e.options;/* @__PURE__ */
552
+ /* @__PURE__ */Pr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r("")},className:"cursor-pointer",children:/* @__PURE__ */Pr(sr,{name:"close",look:"mini",className:"h-3.5 w-3.5"})}):/* @__PURE__ */Pr(sr,{name:"chevron-down",className:"h-3.5 w-3.5 transition-transform "+(n?"rotate-180":""),strokeWidth:2})]}),n&&/* @__PURE__ */Pr("div",{ref:c,id:h,role:"listbox",className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-(--z-popup) max-h-52 overflow-y-auto py-1",style:Yt(),children:g.map((e,t)=>/* @__PURE__ */Pr("div",{id:p(t),role:"option","aria-selected":t===f,onPointerEnter:()=>l(t),onClick:()=>w(t),className:"mx-1 h-8 cursor-pointer truncate rounded-lg px-3 text-sm leading-8\n "+(t===o?"bg-blue-50 text-blue-700":t===f?"font-medium text-blue-600":"text-gray-700"),children:e.label},e.value||"__all__"))})]})}function no({filter:e,value:t,onChange:r}){const[n,a]=fr(!1),[o,l]=fr(""),i=yr(null),s=yr(null),c=t?e.options.find(e=>e.value===t)?.label:null;F(i,xr(()=>{n&&(a(!1),l(""))},[n])),br(()=>{n&&setTimeout(()=>s.current?.focus(),50)},[n]);const d=o?e.options.filter(e=>e.label.toLowerCase().includes(o.toLowerCase())):e.options;/* @__PURE__ */
553
553
  return Lr("div",{ref:i,className:"relative",children:[
554
554
  /* @__PURE__ */Lr("button",{onClick:()=>a(!n),className:`flex h-8 items-center gap-2 border rounded-lg px-3 text-sm transition-colors ${t?`${fe} ${be}`:ye}`,children:[
555
555
  /* @__PURE__ */Pr("span",{className:"truncate max-w-[140px]",children:c||e.label}),t?
@@ -662,9 +662,9 @@ return Lr(Ir,{children:[
662
662
  /* @__PURE__ */Pr(sr,{name:"check-circle",className:"h-5 w-5 text-green-600 shrink-0 mt-0.5",strokeWidth:2}),
663
663
  /* @__PURE__ */Pr("p",{className:"text-sm font-medium text-green-800",children:l.changed})]}),
664
664
  /* @__PURE__ */Pr("div",{className:"flex justify-end pt-2 border-t border-gray-200",children:/* @__PURE__ */Pr(It,{variant:"primary",onClick:()=>t?.(),children:o??l.done})})]}):/* @__PURE__ */Lr("form",{onSubmit:async a=>{if(a.preventDefault(),i)if(c.length<n)p(l.tooShort(n));else if(c===u){p(""),f(!0);try{await e(i,c),r?y(!0):t?.()}catch(e){p(e instanceof Error&&e.message?e.message:l.failed)}finally{f(!1)}}else p(l.mismatch);else p(l.currentRequired)},className:"space-y-4",children:[
665
- /* @__PURE__ */Pr(U,{label:l.current,required:!0,children:/* @__PURE__ */Pr(X,{type:"password",value:i,onChange:e=>s(e.target.value),required:!0})}),
666
- /* @__PURE__ */Pr(U,{label:l.newPassword,required:!0,children:/* @__PURE__ */Pr(X,{type:"password",value:c,onChange:e=>d(e.target.value),required:!0,minLength:n})}),
667
- /* @__PURE__ */Pr(U,{label:l.confirm,required:!0,children:/* @__PURE__ */Pr(X,{type:"password",value:u,onChange:e=>m(e.target.value),required:!0})}),h&&/* @__PURE__ */Pr("p",{className:"text-sm text-red-600",children:h}),
665
+ /* @__PURE__ */Pr(K,{label:l.current,required:!0,children:/* @__PURE__ */Pr(X,{type:"password",value:i,onChange:e=>s(e.target.value),required:!0})}),
666
+ /* @__PURE__ */Pr(K,{label:l.newPassword,required:!0,children:/* @__PURE__ */Pr(X,{type:"password",value:c,onChange:e=>d(e.target.value),required:!0,minLength:n})}),
667
+ /* @__PURE__ */Pr(K,{label:l.confirm,required:!0,children:/* @__PURE__ */Pr(X,{type:"password",value:u,onChange:e=>m(e.target.value),required:!0})}),h&&/* @__PURE__ */Pr("p",{className:"text-sm text-red-600",children:h}),
668
668
  /* @__PURE__ */Pr("div",{className:"flex justify-end pt-2 border-t border-gray-200",children:/* @__PURE__ */Lr(It,{type:"submit",variant:"primary",loading:g,children:[a??l.submit,
669
669
  /* @__PURE__ */Pr("kbd",{className:"kbd-submit rounded border px-2 py-0.5 text-2xs font-medium",children:yt})]})})]})}var No=/* @__PURE__ */Symbol("react-os-shell:timed-out");var Co=/* @__PURE__ */Pr(sr,{name:"page",className:"h-4 w-4",strokeWidth:1.5});function So({fetchPdf:e,filename:t,label:r,className:n,disabled:a,onEmail:o,onPreviewOpened:l,openPreview:i,icon:s,timeoutMs:c=3e4}){const[d,u]=fr(!1),[m,h]=fr(!1),p=yr(null),[g,f]=fr({left:0,top:0}),{openPage:b}=Ee(),y=nr().pdfAction;br(()=>{if(d&&p.current){const e=p.current.getBoundingClientRect();f({left:e.left,top:e.bottom+4})}},[d]);const x=async()=>{h(!0);try{return await async function(e,t){if(!Number.isFinite(t)||t<=0)return e;let r;try{return await Promise.race([e,new Promise(e=>{r=setTimeout(()=>e(No),t)})])}finally{void 0!==r&&clearTimeout(r)}}(e(),c)}finally{h(!1)}};/* @__PURE__ */
670
670
  return Lr(Ir,{children:[
@@ -678,4 +678,4 @@ return Lr(Ir,{children:[
678
678
  /* @__PURE__ */Pr($t,{}),
679
679
  /* @__PURE__ */Lr(Rt,{onClick:async()=>{u(!1);const e=await x();e!==No?e&&o&&o(e):ct.error(y.tookTooLong(t))},children:[
680
680
  /* @__PURE__ */Pr(sr,{name:"email",className:"h-4 w-4",strokeWidth:1.5}),y.email]})]})]}),document.body)]})}var _o=hr(null);function Eo({value:e,children:t}){/* @__PURE__ */
681
- return Pr(_o.Provider,{value:e,children:t})}function To(){return kr(_o)??(e=>{throw new Error(`efficient-shell: cannot fetch ${e} — no <ShellEntityFetcherProvider> mounted. If your app registers entity windows, supply an entityFetcher.`)})}function Mo(e){const t=je();br(()=>{if(!t)return;const r=t=>{const r="KeyN"===t.code||"N"===t.key||"n"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function Lo(e){const t=je();br(()=>{if(!e||!t)return;const r=t=>{const r="KeyE"===t.code||"E"===t.key||"e"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function Po(e,t){const r=e?.modalId;return"string"!=typeof r||""===r||(!t||r===t)}function Io(e){const t=Fe();br(()=>{if(!e)return;const r=r=>{Po(r.detail,t)&&e()};return document.addEventListener("modal-save",r),()=>document.removeEventListener("modal-save",r)},[e,t])}function $o(e){const t=Fe();br(()=>{if(!e)return;const r=r=>{Po(r.detail,t)&&e()};return document.addEventListener("modal-duplicate",r),()=>document.removeEventListener("modal-duplicate",r)},[e,t])}export{ln as BLOCKED_PCT_CPU,Ra as BehaviorPanel,wo as BulkImportGrid,ko as ChangePasswordForm,La as Customization,Qr as DEV_BANNER_TEXT,Kn as Desktop,zn as DesktopHostProvider,tn as DevIndicator,Ja as EntityList,to as FilterBar,hn as LOG_CAP,va as Layout,gn as MIN_EVENT_SAMPLES,pn as MIN_GROUP_SAMPLES,Jr as NotificationBell,So as PdfActionButton,Dn as PerfStats,Ya as ResizableTable,on as SMOOTH_FPS,vo as ServerStatusIndicator,qr as ShellContextMenu,Eo as ShellEntityFetcherProvider,Hr as ShortcutHelp,ja as SoundsPanel,ua as StartMenu,Oa as SystemPreferences,an as WidgetManager,fn as appendPerfRecord,en as applyDevTitle,mn as classifyActivity,dn as classifyPerf,Or as createWindowRegistry,Fr as createWindowTarget,In as describeMachine,lo as describePerfReport,so as findDuplicateKeys,Zr as isDevEnv,bn as isInteracting,Vn as layoutModeOf,uo as mergeBulkItems,Cn as perfLogToCsv,io as perfReportFile,Pn as readPerfEnvironment,En as requestAsyncEnvironment,cn as summariseFrames,kn as summarisePerfLog,Va as useColumnConfig,Bn as useDesktopHost,Lo as useEditHotkey,ao as useFilters,Qa as useInfiniteScroll,$o as useModalDuplicate,Io as useModalSave,Mo as useNewHotkey,Gn as useSetLayoutMode,To as useShellEntityFetcher,eo as useSort,za as useTableNav,zr as useWindowTarget};
681
+ return Pr(_o.Provider,{value:e,children:t})}function To(){return kr(_o)??(e=>{throw new Error(`efficient-shell: cannot fetch ${e} — no <ShellEntityFetcherProvider> mounted. If your app registers entity windows, supply an entityFetcher.`)})}function Mo(e){const t=je();br(()=>{if(!t)return;const r=t=>{const r="KeyN"===t.code||"N"===t.key||"n"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function Lo(e){const t=je();br(()=>{if(!e||!t)return;const r=t=>{const r="KeyE"===t.code||"E"===t.key||"e"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function Po(e,t){const r=e?.modalId;return"string"!=typeof r||""===r||(!t||r===t)}function Io(e){const t=Oe();br(()=>{if(!e)return;const r=r=>{Po(r.detail,t)&&e()};return document.addEventListener("modal-save",r),()=>document.removeEventListener("modal-save",r)},[e,t])}function $o(e){const t=Oe();br(()=>{if(!e)return;const r=r=>{Po(r.detail,t)&&e()};return document.addEventListener("modal-duplicate",r),()=>document.removeEventListener("modal-duplicate",r)},[e,t])}export{ln as BLOCKED_PCT_CPU,Ra as BehaviorPanel,wo as BulkImportGrid,ko as ChangePasswordForm,La as Customization,Qr as DEV_BANNER_TEXT,Un as Desktop,zn as DesktopHostProvider,tn as DevIndicator,Ja as EntityList,to as FilterBar,hn as LOG_CAP,va as Layout,gn as MIN_EVENT_SAMPLES,pn as MIN_GROUP_SAMPLES,Jr as NotificationBell,So as PdfActionButton,Dn as PerfStats,Ya as ResizableTable,on as SMOOTH_FPS,vo as ServerStatusIndicator,qr as ShellContextMenu,Eo as ShellEntityFetcherProvider,Hr as ShortcutHelp,ja as SoundsPanel,ua as StartMenu,Fa as SystemPreferences,an as WidgetManager,fn as appendPerfRecord,en as applyDevTitle,mn as classifyActivity,dn as classifyPerf,Fr as createWindowRegistry,Or as createWindowTarget,In as describeMachine,lo as describePerfReport,so as findDuplicateKeys,Zr as isDevEnv,bn as isInteracting,Vn as layoutModeOf,uo as mergeBulkItems,Cn as perfLogToCsv,io as perfReportFile,Pn as readPerfEnvironment,En as requestAsyncEnvironment,cn as summariseFrames,kn as summarisePerfLog,Va as useColumnConfig,Bn as useDesktopHost,Lo as useEditHotkey,ao as useFilters,Qa as useInfiniteScroll,$o as useModalDuplicate,Io as useModalSave,Mo as useNewHotkey,Gn as useSetLayoutMode,To as useShellEntityFetcher,eo as useSort,za as useTableNav,zr as useWindowTarget};