efficient-shell 4.179.0 → 4.180.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/{Browser-LZMLL4CZ.js → Browser-RZFOKBSF.js} +12 -12
- package/dist/{Documents-M4HKZAPJ.js → Documents-VD32HWDQ.js} +2 -2
- package/dist/{Files-OY5GKCXA.js → Files-NAY3WK6O.js} +17 -17
- package/dist/{Notepad-JLDNTMVB.js → Notepad-AHRPMF57.js} +8 -8
- package/dist/{Preview-2KHLL6NP.js → Preview-OKR5QRQP.js} +1 -1
- package/dist/{Spreadsheet-B5Z5MSX4.js → Spreadsheet-RME4IQ43.js} +10 -10
- package/dist/apps/index.js +1 -1
- package/dist/bin/ui-check.js +1 -1
- package/dist/{chunk-47VJNVB6.js → chunk-4VTHXNGZ.js} +12 -12
- package/dist/chunk-BSJIBRWC.js +1 -0
- package/dist/{chunk-CZK2VKIO.js → chunk-RQOP5JAJ.js} +2 -2
- package/dist/{index-DcUj0nXY.d.ts → index-HAwjA-hn.d.ts} +11 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +25 -25
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-AZURXTRB.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 o,getWallpaper as a}from"./chunk-FORN7LG7.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-R7EBJKN2.js";import{PREVIEW_OPENED_EVENT as l,openPreviewFile as i}from"./chunk-NHIGOEZF.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 y,setAllSounds as b,playLogout as x}from"./chunk-W33ZFDRR.js";import{useAuth as w,initialRailCollapsed as v,readStored 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 M}from"./chunk-6CFBF543.js";export{setShellTodoProvider}from"./chunk-6CFBF543.js";import{TabStrip as _}from"./chunk-UAIVAA5X.js";import{ContextMenu as L,TimeAgo as E,Markdown as T,useTheme as P,resolveTheme as I,Segmented as D,resolveCorners as $,useClickOutside as A,ListLoadError as j,Checkbox_default as R,ListFooter as W,copyToClipboard as B,firstEnabledIndex as F,FormField as z,Input_default as O,applyThemePrefs as H,selectionAt as V,lastEnabledIndex as K,nextEnabledIndex as X,matchTypeahead as U}from"./chunk-47VJNVB6.js";export{APP_UPDATE_POLL_MS,Accordion,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,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,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,Divider,DonutChart,Drawer,DropdownMenu,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,IconRail,IconRailButton,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LineChart,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,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,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,Tabs,TagInput,Text,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,copyToClipboard,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,inputClasses,isSeverityTone,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,parseHexColor,polygonPoints,radiusScale,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"./chunk-47VJNVB6.js";export{Breadcrumbs}from"./chunk-7WZEFHPS.js";import{SidebarLayout as Y}from"./chunk-PE4F4MJE.js";export{ResizeHandle,SidebarLayout}from"./chunk-PE4F4MJE.js";import{navPagesProvider as q,partitionNav as G,sanitizeRecent as J,favoritesToResults as Q,pushRecent as Z,BrandMark as ee,GlobalSearch as te,PAGE_RESULT_ENTITY as re,parsePageResultTarget as ne}from"./chunk-KDRAU4XQ.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"./chunk-KDRAU4XQ.js";import{withSpareRow as oe,EditableGrid as ae}from"./chunk-T4CFSGSL.js";export{EditableGrid}from"./chunk-T4CFSGSL.js";import{escapeHtml as le}from"./chunk-BR22X7E5.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-LK7V32MR.js";import{publishDesktopFolders as ie,requestFilesTrashView as se,FolderGlyph as ce,requestFilesDesktopFolderView as de,FileIconTile as ue}from"./chunk-C2A4PIGZ.js";import{setPdfPreview as me}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as he,requestWindowFront as pe,useWindowManager as ge,WINDOW_REGISTRY as fe,isPageEntry as ye,Modal as be,setPerfCollecting as xe,drainPerfEvents as we,forgetMaximizedWindowBoxes as ve,markMenuOpen as ke,setShellHomeRoute as Ne,useCurrentTabKey as Ce,ModalActions as Se,useModalActive as Me,LoadingSpinner as _e,useEnclosingModalId as Le,isShellApiClientConfigured as Ee,client_default as Te,KEY_ACTIVATED_SELECTOR as Pe,isDraftEntityId as Ie,subscribeWindowChrome as De,getWindowChromeVersion as $e,isTabWindow as Ae,readWindowChrome as je,activateWindowById as Re,CancelButton as We,setWindowPosition as Be,isDraftEntityWindow as Fe,isEntityEntry as ze}from"./chunk-N6STBYXR.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-N6STBYXR.js";import{startMenuCategories as Oe,navSections as He,navIcons as Ve,sectionIcons as Ke,TAB_STRIP_H as Xe,RAIL_COLLAPSED_W as Ue,RAIL_W as Ye,WORK_AREA_CHANGED_EVENT as qe,useShellAuth as Ge}from"./chunk-DSSLOQDW.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-DSSLOQDW.js";export{CopyButton}from"./chunk-KVOFUFPP.js";import{APP_VERSION as Je,VERSION as Qe}from"./chunk-AZURXTRB.js";export{VERSION}from"./chunk-AZURXTRB.js";import{toast_default as Ze}from"./chunk-3DGTIWZP.js";export{toast_default as toast}from"./chunk-3DGTIWZP.js";import{CMD_K as et,CMD_DOT as tt,SHIFT as rt,MOD as nt,ENTER as ot,CMD_A as at,ALT_SHIFT_N as lt,ALT_SHIFT_E as it,CMD_ENTER as st,CMD_S as ct,ALT_SHIFT_D as dt,CMD_Z as ut,CMD_SHIFT_Z as mt,useShellPrefs as ht,useIsMobile as pt,useShellPrefsAdapter as gt}from"./chunk-CIXQKCFA.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,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-CIXQKCFA.js";import{navVisible as ft,isSection as yt,isReachable as bt,visibleChildren as xt}from"./chunk-5A7MWTXX.js";import{Button_default as wt}from"./chunk-OGXU7QFW.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,buttonClasses,iconButtonClasses,popupBounds,useDropdownPosition}from"./chunk-OGXU7QFW.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"./chunk-ZAE6ROV7.js";import{PopupMenuDivider as vt,PopupMenu as kt,PopupMenuLabel as Nt,PopupMenuItem as Ct,resolveMenuLevels as St,keepsNativeMenu as Mt,leavesContextMenuAlone as _t,describeContextTarget as Lt,MenuIcon as Et,openMenuLevel as Tt,closeMenuBelow as Pt,clampMenuTop as It,menuPanelLeft as Dt}from"./chunk-AA4TMQOS.js";export{NATIVE_MENU_ATTR,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-AA4TMQOS.js";import{useDismissPopupsOnOpen as $t}from"./chunk-AFYQTVZO.js";import{GLASS_INPUT_BG as At,glassStyle as jt}from"./chunk-HZZNJHRH.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle}from"./chunk-HZZNJHRH.js";import{Z_LAYERS as Rt,registerModalEscapeInterceptor as Wt,onOverlayOpen as Bt}from"./chunk-X4FJ54PP.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"./chunk-X4FJ54PP.js";import{useBrowserState as Ft}from"./chunk-D65T4H6J.js";import{useFileIntake as zt,FileIntakeAlert as Ot}from"./chunk-WNEO7TSP.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-WNEO7TSP.js";import{useShellStrings as Ht,useShellLocale as Vt}from"./chunk-J3LIIIHJ.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-J3LIIIHJ.js";import{formatGrouped as Kt}from"./chunk-C3QOHMR6.js";import{formatDate as Xt,timeAgo as Ut}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-FWOPZB6I.js";import{subscribeIcons as Yt,iconsVersion as qt,iconSets as Gt,activeIconSet as Jt,Icon as Qt}from"./chunk-YKZHOXI4.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-YKZHOXI4.js";import{createContext as Zt,lazy as er,useSyncExternalStore as tr,useState as rr,useEffect as nr,useRef as or,useCallback as ar,useLayoutEffect as lr,useMemo as ir,useContext as sr,isValidElement as cr,cloneElement as dr,Suspense as ur,useId as mr}from"react";import{Dialog as hr,DialogBackdrop as pr,DialogPanel as gr}from"@headlessui/react";import{jsxs as fr,jsx as yr,Fragment as br}from"react/jsx-runtime";import{createPortal as xr}from"react-dom";import{useQueryClient as wr,useQuery as vr,useInfiniteQuery as kr,QueryClientContext as Nr,QueryClient as Cr}from"@tanstack/react-query";import"react-router-dom";import{XMarkIcon as Sr}from"@heroicons/react/20/solid";function Mr(...e){return Object.assign({},...e)}function _r(e){let t=null,r=0;const n=/* @__PURE__ */new Set,o=()=>{n.forEach(e=>e())};return{windowKey:e,set(n,a){if(null===n)return t=null,he(e),void o();t={...n,nav:++r},o(),!1!==a?.raise&&pe(e)},get:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function Lr(e){return tr(e.subscribe,e.get,e.get)}var Er=[{title:"Global",shortcuts:[{keys:et,description:"Search"},{keys:tt,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:`${rt} Arrows`,description:"Resize window"},{keys:`${nt} ←/→`,description:"Snap to left / right half"},{keys:`${nt} ↑`,description:"Maximize"},{keys:`${nt} ↓`,description:"Restore / minimize"},{keys:ot,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:at,description:"Select / deselect all"},{keys:lt,description:"Create new item"},{keys:it,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:st,description:"Submit"},{keys:ct,description:"Save"},{keys:dt,description:"Save as new (duplicate)"},{keys:ut,description:"Undo the last change to the form"},{keys:mt,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function Tr(){const[e,t]=rr(!1);return nr(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),nr(()=>{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)},[]),$t(e),/* @__PURE__ */fr(hr,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:Rt.overlay},children:[
|
|
2
|
+
import{wallpaperSrc as e,WALLPAPER_PREF_TOKEN as t,uploadWallpaper as r,wallpaperUploadError as n,deleteWallpaper as o,getWallpaper as a}from"./chunk-FORN7LG7.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-R7EBJKN2.js";import{PREVIEW_OPENED_EVENT as l,openPreviewFile as i}from"./chunk-NHIGOEZF.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 y,setAllSounds as b,playLogout as x}from"./chunk-W33ZFDRR.js";import{useAuth as w,initialRailCollapsed as v,readStored 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 M}from"./chunk-6CFBF543.js";export{setShellTodoProvider}from"./chunk-6CFBF543.js";import{TabStrip as _}from"./chunk-UAIVAA5X.js";import{ContextMenu as L,TimeAgo as E,Markdown as T,useTheme as P,resolveTheme as I,Segmented as D,resolveCorners as $,useClickOutside as A,ListLoadError as j,Checkbox_default as R,ListFooter as W,copyToClipboard as B,firstEnabledIndex as F,FormField as z,Input_default as O,applyThemePrefs as H,selectionAt as V,lastEnabledIndex as K,nextEnabledIndex as X,matchTypeahead as U}from"./chunk-4VTHXNGZ.js";export{APP_UPDATE_POLL_MS,Accordion,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,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,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,Divider,DonutChart,Drawer,DropdownMenu,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,IconRail,IconRailButton,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LineChart,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,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,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,Tabs,TagInput,Text,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,copyToClipboard,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,inputClasses,isSeverityTone,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,parseHexColor,polygonPoints,radiusScale,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"./chunk-4VTHXNGZ.js";export{Breadcrumbs}from"./chunk-7WZEFHPS.js";import{SidebarLayout as Y}from"./chunk-PE4F4MJE.js";export{ResizeHandle,SidebarLayout}from"./chunk-PE4F4MJE.js";import{navPagesProvider as G,partitionNav as q,sanitizeRecent as J,favoritesToResults as Q,pushRecent as Z,BrandMark as ee,GlobalSearch as te,PAGE_RESULT_ENTITY as re,parsePageResultTarget as ne}from"./chunk-KDRAU4XQ.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"./chunk-KDRAU4XQ.js";import{withSpareRow as oe,EditableGrid as ae}from"./chunk-T4CFSGSL.js";export{EditableGrid}from"./chunk-T4CFSGSL.js";import{escapeHtml as le}from"./chunk-BR22X7E5.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-LK7V32MR.js";import{publishDesktopFolders as ie,requestFilesTrashView as se,FolderGlyph as ce,requestFilesDesktopFolderView as de,FileIconTile as ue}from"./chunk-C2A4PIGZ.js";import{setPdfPreview as me}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as he,requestWindowFront as pe,useWindowManager as ge,WINDOW_REGISTRY as fe,isPageEntry as ye,Modal as be,setPerfCollecting as xe,drainPerfEvents as we,forgetMaximizedWindowBoxes as ve,markMenuOpen as ke,setShellHomeRoute as Ne,useCurrentTabKey as Ce,ModalActions as Se,useModalActive as Me,LoadingSpinner as _e,useEnclosingModalId as Le,isShellApiClientConfigured as Ee,client_default as Te,KEY_ACTIVATED_SELECTOR as Pe,isDraftEntityId as Ie,subscribeWindowChrome as De,getWindowChromeVersion as $e,isTabWindow as Ae,readWindowChrome as je,activateWindowById as Re,CancelButton as We,setWindowPosition as Be,isDraftEntityWindow as Fe,isEntityEntry as ze}from"./chunk-N6STBYXR.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-N6STBYXR.js";import{startMenuCategories as Oe,navSections as He,navIcons as Ve,sectionIcons as Ke,TAB_STRIP_H as Xe,RAIL_COLLAPSED_W as Ue,RAIL_W as Ye,WORK_AREA_CHANGED_EVENT as Ge,useShellAuth as qe}from"./chunk-DSSLOQDW.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-DSSLOQDW.js";export{CopyButton}from"./chunk-KVOFUFPP.js";import{APP_VERSION as Je,VERSION as Qe}from"./chunk-BSJIBRWC.js";export{VERSION}from"./chunk-BSJIBRWC.js";import{toast_default as Ze}from"./chunk-3DGTIWZP.js";export{toast_default as toast}from"./chunk-3DGTIWZP.js";import{CMD_K as et,CMD_DOT as tt,SHIFT as rt,MOD as nt,ENTER as ot,CMD_A as at,ALT_SHIFT_N as lt,ALT_SHIFT_E as it,CMD_ENTER as st,CMD_S as ct,ALT_SHIFT_D as dt,CMD_Z as ut,CMD_SHIFT_Z as mt,useShellPrefs as ht,useIsMobile as pt,useShellPrefsAdapter as gt}from"./chunk-CIXQKCFA.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,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-CIXQKCFA.js";import{navVisible as ft,isSection as yt,isReachable as bt,visibleChildren as xt}from"./chunk-5A7MWTXX.js";import{Button_default as wt}from"./chunk-OGXU7QFW.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,buttonClasses,iconButtonClasses,popupBounds,useDropdownPosition}from"./chunk-OGXU7QFW.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"./chunk-ZAE6ROV7.js";import{PopupMenuDivider as vt,PopupMenu as kt,PopupMenuLabel as Nt,PopupMenuItem as Ct,resolveMenuLevels as St,keepsNativeMenu as Mt,leavesContextMenuAlone as _t,describeContextTarget as Lt,MenuIcon as Et,openMenuLevel as Tt,closeMenuBelow as Pt,clampMenuTop as It,menuPanelLeft as Dt}from"./chunk-AA4TMQOS.js";export{NATIVE_MENU_ATTR,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-AA4TMQOS.js";import{useDismissPopupsOnOpen as $t}from"./chunk-AFYQTVZO.js";import{GLASS_INPUT_BG as At,glassStyle as jt}from"./chunk-HZZNJHRH.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle}from"./chunk-HZZNJHRH.js";import{Z_LAYERS as Rt,registerModalEscapeInterceptor as Wt,onOverlayOpen as Bt}from"./chunk-X4FJ54PP.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"./chunk-X4FJ54PP.js";import{useBrowserState as Ft}from"./chunk-D65T4H6J.js";import{useFileIntake as zt,FileIntakeAlert as Ot}from"./chunk-WNEO7TSP.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-WNEO7TSP.js";import{useShellStrings as Ht,useShellLocale as Vt}from"./chunk-J3LIIIHJ.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-J3LIIIHJ.js";import{formatGrouped as Kt}from"./chunk-C3QOHMR6.js";import{formatDate as Xt,timeAgo as Ut}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-FWOPZB6I.js";import{subscribeIcons as Yt,iconsVersion as Gt,iconSets as qt,activeIconSet as Jt,Icon as Qt}from"./chunk-YKZHOXI4.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-YKZHOXI4.js";import{createContext as Zt,lazy as er,useSyncExternalStore as tr,useState as rr,useEffect as nr,useRef as or,useCallback as ar,useLayoutEffect as lr,useMemo as ir,useContext as sr,isValidElement as cr,cloneElement as dr,Suspense as ur,useId as mr}from"react";import{Dialog as hr,DialogBackdrop as pr,DialogPanel as gr}from"@headlessui/react";import{jsxs as fr,jsx as yr,Fragment as br}from"react/jsx-runtime";import{createPortal as xr}from"react-dom";import{useQueryClient as wr,useQuery as vr,useInfiniteQuery as kr,QueryClientContext as Nr,QueryClient as Cr}from"@tanstack/react-query";import"react-router-dom";import{XMarkIcon as Sr}from"@heroicons/react/20/solid";function Mr(...e){return Object.assign({},...e)}function _r(e){let t=null,r=0;const n=/* @__PURE__ */new Set,o=()=>{n.forEach(e=>e())};return{windowKey:e,set(n,a){if(null===n)return t=null,he(e),void o();t={...n,nav:++r},o(),!1!==a?.raise&&pe(e)},get:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function Lr(e){return tr(e.subscribe,e.get,e.get)}var Er=[{title:"Global",shortcuts:[{keys:et,description:"Search"},{keys:tt,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:`${rt} Arrows`,description:"Resize window"},{keys:`${nt} ←/→`,description:"Snap to left / right half"},{keys:`${nt} ↑`,description:"Maximize"},{keys:`${nt} ↓`,description:"Restore / minimize"},{keys:ot,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:at,description:"Select / deselect all"},{keys:lt,description:"Create new item"},{keys:it,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:st,description:"Submit"},{keys:ct,description:"Save"},{keys:dt,description:"Save as new (duplicate)"},{keys:ut,description:"Undo the last change to the form"},{keys:mt,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function Tr(){const[e,t]=rr(!1);return nr(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),nr(()=>{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)},[]),$t(e),/* @__PURE__ */fr(hr,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:Rt.overlay},children:[
|
|
3
3
|
/* @__PURE__ */yr(pr,{className:"fixed inset-0 bg-black/30 transition-opacity"}),
|
|
4
4
|
/* @__PURE__ */yr("div",{className:"fixed inset-0 flex items-center justify-center p-6",children:/* @__PURE__ */fr(gr,{className:"w-full max-w-md rounded-lg bg-white shadow-xl",children:[
|
|
5
5
|
/* @__PURE__ */fr("div",{className:"flex items-center justify-between px-5 pt-5 pb-3 border-b border-gray-200",children:[
|
|
@@ -81,7 +81,7 @@ return fr("button",{onClick:()=>m(e),title:n?`Remove ${t} from desktop`:`Add ${t
|
|
|
81
81
|
/* @__PURE__ */yr("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__ */fr(br,{children:[
|
|
82
82
|
/* @__PURE__ */yr("svg",{className:"h-3.5 w-3.5 group-hover:hidden",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12.75l6 6 9-13.5"})}),
|
|
83
83
|
/* @__PURE__ */yr("svg",{className:"h-3.5 w-3.5 hidden group-hover:block",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})]}):/* @__PURE__ */yr("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"})})})]},e)})})}),
|
|
84
|
-
/* @__PURE__ */yr("p",{className:"shrink-0 pt-3 mt-1 border-t border-gray-100 text-[11px] 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 Xr=50,Ur=20,Yr={kind:"cpu",label:"CPU-bound (JavaScript)",detail:"The main thread is blocked. Rendering settings will not help — this is script or data work."};function qr(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 Gr(e){const{fps:t,blockedPct:r}=e,n=null!==r&&r>=20;return!Number.isFinite(t)||t<=0?n?Yr:{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?Yr:{kind:"gpu",label:"GPU-bound (compositing)",detail:"Frames are late while the main thread sits idle. Try Preferences → Customization → Reduce transparency."}}var Jr=[{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 Qr(e){return Jr.find(t=>t.test(e))?.kind??"idle"}var Zr=2400,en=4,tn=2;function rn(e,t,r=2400){const n=e.length>=r?e.slice(e.length-r+1):e.slice();return n.push(t),n}function nn(e){return"idle"!==Qr(e)}function on(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 an(e){const t=e.filter(e=>e.fps>0);return{samples:e.length,medianFps:on(t.map(e=>e.fps)),worstMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),stalls:e.length-t.length}}function ln(e,t){const r=/* @__PURE__ */new Map;for(const n of e){const e=t(n);if(null===e)continue;const o=r.get(e);o?o.push(n):r.set(e,[n])}return r}function sn(e){return e.sort((e,t)=>e.medianFps-t.medianFps)}function cn(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(nn),o=e.filter(e=>!nn(e));return{samples:e.length,durationMs:e[e.length-1].t-e[0].t,medianFps:on(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?an(n):null,idle:o.length>=4?an(o):null,byActivity:sn([...ln(e,Qr).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({kind:e,...an(t)}))),byWindowCount:[...ln(e,e=>e.windows).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({windows:e,...an(t)})).sort((e,t)=>e.windows-t.windows),worstWindows:sn([...ln(e,e=>e.active).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({key:e,...an(t)}))),worstMenus:sn([...ln(e,e=>e.menuKey).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({key:e,...an(t)})))}}var dn=["t","fps","frameMs","worstMs","blockedPct","heapMB","verdict","windows","active","clicks","keys","scrolls","dragMs","menus","submenus","menuKey","moveMs","resizeMs"];function un(e){return[dn.join(","),...e.map(e=>dn.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 mn(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 hn(e){return"string"==typeof e&&e?e:null}async function pn(){return{hints:await gn(),battery:await fn()}}async function gn(){const e=navigator.userAgentData;if(!e)return null;const t={platform:e.platform??null,platformVersion:null,architecture:null,model:null,browser:mn(e.brands)};if(!e.getHighEntropyValues)return t;try{const r=await e.getHighEntropyValues(["platform","platformVersion","architecture","model","fullVersionList"]),n=r.fullVersionList;return{platform:hn(r.platform)??t.platform,platformVersion:hn(r.platformVersion),architecture:hn(r.architecture),model:hn(r.model),browser:mn(n)??t.browser}}catch{return t}}async function fn(){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 yn(e){try{return window.matchMedia(e).matches}catch{return!1}}function bn(e){const t=navigator,r=performance.memory,n=e?.hints??null,o=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:hn(r),vendor:hn(n),available:!0}}catch{return{renderer:null,vendor:null,available:!1}}}(),a=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:o.renderer,gpuVendor:o.vendor,webglAvailable:o.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:a?{effectiveType:hn(a.effectiveType),downlinkMbps:"number"==typeof a.downlink?a.downlink:null,rttMs:"number"==typeof a.rtt?a.rtt:null,saveData:!0===a.saveData}:null,battery:e?.battery??null,prefersReducedMotion:yn("(prefers-reduced-motion: reduce)"),forcedColors:yn("(forced-colors: active)"),reducedTransparency:document.documentElement.classList.contains("rosh-reduce-transparency"),touchPoints:"number"==typeof t.maxTouchPoints?t.maxTouchPoints:null}}function xn(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 wn={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 vn({onClose:e,onSubmit:t,className:r=""}){const n=or([]),o=or(0),a=or({clicks:0,keys:0,scrolls:0,dragMs:0}),l=or({down:!1,since:0}),i=or([]),s=or(0),c=or(0),d=or(null),u=or(null),[m,h]=rr(!1),[p,g]=rr({fps:0,frameMs:0,worstMs:0,blockedPct:null}),[f,y]=rr([]),[b,x]=rr(null),[w,v]=rr(0),[k,N]=rr(!1),[C,S]=rr(""),[M,_]=rr(!1),[L,E]=rr(null);nr(()=>(xe(!0),()=>xe(!1)),[]),nr(()=>{let e=!0;return pn().then(t=>{e&&(u.current=t)}),()=>{e=!1}},[]),nr(()=>{let e=0;const t=r=>{const o=n.current;o.push(r);const a=r-1e3;for(;o.length&&o[0]<a;)o.shift();e=requestAnimationFrame(t)};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[]),nr(()=>{if("undefined"==typeof PerformanceObserver)return;let e;try{e=new PerformanceObserver(e=>{for(const t of e.getEntries())o.current+=t.duration}),e.observe({entryTypes:["longtask"]}),h(!0)}catch{return}return()=>e?.disconnect()},[]),nr(()=>{const e=()=>{a.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&&(a.current.dragMs+=t)},r=()=>{l.current.down=!1},n=()=>{a.current.keys++},o=()=>{a.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",o,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",o,i)}},[]);const T=ar(()=>{try{localStorage.setItem("react-os-shell:perf-log",JSON.stringify(i.current))}catch{}},[]);nr(()=>{const e=()=>T();return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",e),T()}},[T]),nr(()=>{const e=setInterval(()=>{const e=performance.now();s.current||(s.current=e);const t=qr(n.current),r=m?Math.min(100,o.current/500*100):null;o.current=0;const l=performance.memory,d=l?l.usedJSHeapSize/1048576:null,u={...t,blockedPct:r},h=a.current,p=we(),{windows:f,active:b}=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),o=Number.isFinite(n)?n:0;o>=r&&(r=o,t=e.dataset.windowKey??e.dataset.modalId??null)}),{windows:e.length,active:t}}();i.current=rn(i.current,{t:Math.round(e-s.current),...t,blockedPct:r,heapMB:d,verdict:Gr(u).kind,windows:f,active:b,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,T()),g(u),y(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,T]);const P=ar(()=>{d.current=i.current.slice(),E(null),N(!0)},[]),I=Gr(p),D=ar(()=>{const e=d.current??i.current,t=/* @__PURE__ */(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19),r=cn(e),n=bn(u.current);return{message:C,filename:`perf-log-${t}.json`,summary:r,environment:n,verdict:I.label,json:JSON.stringify({generatedAt:/* @__PURE__ */(new Date).toISOString(),message:C,verdict:I.label,environment:n,summary:r,records:e},null,2)}},[C,I.label]),$=ar(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)},[]),A=ar(async()=>{const e=D();_(!0),E(null);try{t?await t(e):$(e),d.current=null,S(""),N(!1)}catch(e){E(e instanceof Error&&e.message?e.message:"Could not send. Try again.")}finally{_(!1)}},[D,$,t]),j=wn[I.kind],R=Math.max(60,...f),W=Math.round(500*w/1e3),B=t?"Send":"Download",F=d.current?.length??w;/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */yr("p",{className:"shrink-0 pt-3 mt-1 border-t border-gray-100 text-[11px] 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 Xr=50,Ur=20,Yr={kind:"cpu",label:"CPU-bound (JavaScript)",detail:"The main thread is blocked. Rendering settings will not help — this is script or data work."};function Gr(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 qr(e){const{fps:t,blockedPct:r}=e,n=null!==r&&r>=20;return!Number.isFinite(t)||t<=0?n?Yr:{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?Yr:{kind:"gpu",label:"GPU-bound (compositing)",detail:"Frames are late while the main thread sits idle. Try Preferences → Customization → Reduce transparency."}}var Jr=[{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 Qr(e){return Jr.find(t=>t.test(e))?.kind??"idle"}var Zr=2400,en=4,tn=2;function rn(e,t,r=2400){const n=e.length>=r?e.slice(e.length-r+1):e.slice();return n.push(t),n}function nn(e){return"idle"!==Qr(e)}function on(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 an(e){const t=e.filter(e=>e.fps>0);return{samples:e.length,medianFps:on(t.map(e=>e.fps)),worstMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),stalls:e.length-t.length}}function ln(e,t){const r=/* @__PURE__ */new Map;for(const n of e){const e=t(n);if(null===e)continue;const o=r.get(e);o?o.push(n):r.set(e,[n])}return r}function sn(e){return e.sort((e,t)=>e.medianFps-t.medianFps)}function cn(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(nn),o=e.filter(e=>!nn(e));return{samples:e.length,durationMs:e[e.length-1].t-e[0].t,medianFps:on(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?an(n):null,idle:o.length>=4?an(o):null,byActivity:sn([...ln(e,Qr).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({kind:e,...an(t)}))),byWindowCount:[...ln(e,e=>e.windows).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({windows:e,...an(t)})).sort((e,t)=>e.windows-t.windows),worstWindows:sn([...ln(e,e=>e.active).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({key:e,...an(t)}))),worstMenus:sn([...ln(e,e=>e.menuKey).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({key:e,...an(t)})))}}var dn=["t","fps","frameMs","worstMs","blockedPct","heapMB","verdict","windows","active","clicks","keys","scrolls","dragMs","menus","submenus","menuKey","moveMs","resizeMs"];function un(e){return[dn.join(","),...e.map(e=>dn.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 mn(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 hn(e){return"string"==typeof e&&e?e:null}async function pn(){return{hints:await gn(),battery:await fn()}}async function gn(){const e=navigator.userAgentData;if(!e)return null;const t={platform:e.platform??null,platformVersion:null,architecture:null,model:null,browser:mn(e.brands)};if(!e.getHighEntropyValues)return t;try{const r=await e.getHighEntropyValues(["platform","platformVersion","architecture","model","fullVersionList"]),n=r.fullVersionList;return{platform:hn(r.platform)??t.platform,platformVersion:hn(r.platformVersion),architecture:hn(r.architecture),model:hn(r.model),browser:mn(n)??t.browser}}catch{return t}}async function fn(){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 yn(e){try{return window.matchMedia(e).matches}catch{return!1}}function bn(e){const t=navigator,r=performance.memory,n=e?.hints??null,o=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:hn(r),vendor:hn(n),available:!0}}catch{return{renderer:null,vendor:null,available:!1}}}(),a=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:o.renderer,gpuVendor:o.vendor,webglAvailable:o.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:a?{effectiveType:hn(a.effectiveType),downlinkMbps:"number"==typeof a.downlink?a.downlink:null,rttMs:"number"==typeof a.rtt?a.rtt:null,saveData:!0===a.saveData}:null,battery:e?.battery??null,prefersReducedMotion:yn("(prefers-reduced-motion: reduce)"),forcedColors:yn("(forced-colors: active)"),reducedTransparency:document.documentElement.classList.contains("rosh-reduce-transparency"),touchPoints:"number"==typeof t.maxTouchPoints?t.maxTouchPoints:null}}function xn(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 wn={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 vn({onClose:e,onSubmit:t,className:r=""}){const n=or([]),o=or(0),a=or({clicks:0,keys:0,scrolls:0,dragMs:0}),l=or({down:!1,since:0}),i=or([]),s=or(0),c=or(0),d=or(null),u=or(null),[m,h]=rr(!1),[p,g]=rr({fps:0,frameMs:0,worstMs:0,blockedPct:null}),[f,y]=rr([]),[b,x]=rr(null),[w,v]=rr(0),[k,N]=rr(!1),[C,S]=rr(""),[M,_]=rr(!1),[L,E]=rr(null);nr(()=>(xe(!0),()=>xe(!1)),[]),nr(()=>{let e=!0;return pn().then(t=>{e&&(u.current=t)}),()=>{e=!1}},[]),nr(()=>{let e=0;const t=r=>{const o=n.current;o.push(r);const a=r-1e3;for(;o.length&&o[0]<a;)o.shift();e=requestAnimationFrame(t)};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[]),nr(()=>{if("undefined"==typeof PerformanceObserver)return;let e;try{e=new PerformanceObserver(e=>{for(const t of e.getEntries())o.current+=t.duration}),e.observe({entryTypes:["longtask"]}),h(!0)}catch{return}return()=>e?.disconnect()},[]),nr(()=>{const e=()=>{a.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&&(a.current.dragMs+=t)},r=()=>{l.current.down=!1},n=()=>{a.current.keys++},o=()=>{a.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",o,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",o,i)}},[]);const T=ar(()=>{try{localStorage.setItem("react-os-shell:perf-log",JSON.stringify(i.current))}catch{}},[]);nr(()=>{const e=()=>T();return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",e),T()}},[T]),nr(()=>{const e=setInterval(()=>{const e=performance.now();s.current||(s.current=e);const t=Gr(n.current),r=m?Math.min(100,o.current/500*100):null;o.current=0;const l=performance.memory,d=l?l.usedJSHeapSize/1048576:null,u={...t,blockedPct:r},h=a.current,p=we(),{windows:f,active:b}=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),o=Number.isFinite(n)?n:0;o>=r&&(r=o,t=e.dataset.windowKey??e.dataset.modalId??null)}),{windows:e.length,active:t}}();i.current=rn(i.current,{t:Math.round(e-s.current),...t,blockedPct:r,heapMB:d,verdict:qr(u).kind,windows:f,active:b,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,T()),g(u),y(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,T]);const P=ar(()=>{d.current=i.current.slice(),E(null),N(!0)},[]),I=qr(p),D=ar(()=>{const e=d.current??i.current,t=/* @__PURE__ */(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19),r=cn(e),n=bn(u.current);return{message:C,filename:`perf-log-${t}.json`,summary:r,environment:n,verdict:I.label,json:JSON.stringify({generatedAt:/* @__PURE__ */(new Date).toISOString(),message:C,verdict:I.label,environment:n,summary:r,records:e},null,2)}},[C,I.label]),$=ar(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)},[]),A=ar(async()=>{const e=D();_(!0),E(null);try{t?await t(e):$(e),d.current=null,S(""),N(!1)}catch(e){E(e instanceof Error&&e.message?e.message:"Could not send. Try again.")}finally{_(!1)}},[D,$,t]),j=wn[I.kind],R=Math.max(60,...f),W=Math.round(500*w/1e3),B=t?"Send":"Download",F=d.current?.length??w;/* @__PURE__ */
|
|
85
85
|
return fr("div",{className:`w-56 rounded-lg border border-white/15 bg-[#11111b]/95 px-3 py-2 font-mono text-[10px] text-white/80 shadow-lg select-none ${r}`,role:"status","aria-live":"off","aria-label":"Performance statistics",children:[
|
|
86
86
|
/* @__PURE__ */fr("div",{className:"mb-1.5 flex items-center justify-between",children:[
|
|
87
87
|
/* @__PURE__ */yr("span",{className:"text-[9px] uppercase tracking-wider text-white/40",children:"Performance"}),e&&/* @__PURE__ */yr("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:"×"})]}),
|
|
@@ -115,7 +115,7 @@ return fr("div",{className:"flex items-baseline justify-between gap-2",children:
|
|
|
115
115
|
/* @__PURE__ */yr("dt",{className:"text-white/40",children:e}),
|
|
116
116
|
/* @__PURE__ */yr("dd",{className:"tabular-nums text-white/70",children:t})]})}var Nn=[],Cn="documents",Sn="Recent Documents",Mn=90;var _n=Zt({});function Ln({value:e,children:t}){/* @__PURE__ */
|
|
117
117
|
return yr(_n.Provider,{value:e,children:t})}function En(){return sr(_n)}function Tn(){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 Pn({profile:e}){const t=Ht();wr();const{openEntity:r,openPage:n}=ge(),o=or(null),{prefs:a,save:s}=ht(),c={...e?.preferences||{},...a},d=c.favorite_documents||[],u=c.desktop_folders||[],m=u.some(e=>e.id===Cn)?u.map(e=>e.id===Cn?{...e,name:Sn}:e):[...u,{id:Cn,name:Sn}],h=c.desktop_snap??!1,p=c.notepad_notes||[],g=p.filter(e=>e.sticky),f=En(),y=f.hiddenContextMenuItems??[],b=async(e,t)=>{const n=`${e}#${t}`;if(f.stickyResolver)try{const o=await f.stickyResolver(e,t);o?r(o.entityType,o.entityId,o.snapshot,o.label??n):Ze.error(`${n} not found`)}catch{Ze.error(`Failed to open ${n}`)}else Ze.error(`Unknown reference: ${n}`)},x=(e,t)=>{const r=p.find(t=>t.id===e);if(!r)return;const n=r.content,o=n.slice(t).match(/^\[([ xX]?)\]/);if(!o)return;const a="x"===o[1]||"X"===o[1]?"[ ]":"[x]",l=n.slice(0,t)+a+n.slice(t+o[0].length);ve(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 o=n;n+=t.length+1;const a=[],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,o=i[0];a.push({idx:n,len:o.length,render:()=>/* @__PURE__ */yr("button",{onClick:r=>{r.stopPropagation(),b(e,t)},className:"text-blue-700 hover:underline font-medium cursor-pointer",children:o},`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=o+n;a.push({idx:n,len:i[0].length,render:()=>/* @__PURE__ */yr("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__ */yr("svg",{className:"w-2.5 h-2.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4.5 12.75l6 6 9-13.5"})})},`c-${r}-${n}`)})}a.sort((e,t)=>e.idx-t.idx);const c=[];let d=0;for(const e of a)e.idx>d&&c.push(/* @__PURE__ */yr("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__ */yr("span",{children:t.slice(d)},`t-${r}-${d}`)),0===c.length&&c.push(/* @__PURE__ */yr("span",{children:""},`e-${r}`));const u=/^\[x\]/i.test(t.trimStart());/* @__PURE__ */
|
|
118
|
-
return yr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[v,k]=rr(null),[N,C]=rr(null),[S,M]=rr(/* @__PURE__ */new Set),[_,L]=rr(null),[E,P]=rr(!1),[I,D]=rr(!1),[$,A]=rr(!1),[j,R]=rr(null),[W,B]=rr(""),[F,z]=rr(null),[O,H]=rr(null),[V,K]=rr(null),[X,U]=rr(null),Y=or(null),
|
|
118
|
+
return yr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[v,k]=rr(null),[N,C]=rr(null),[S,M]=rr(/* @__PURE__ */new Set),[_,L]=rr(null),[E,P]=rr(!1),[I,D]=rr(!1),[$,A]=rr(!1),[j,R]=rr(null),[W,B]=rr(""),[F,z]=rr(null),[O,H]=rr(null),[V,K]=rr(null),[X,U]=rr(null),Y=or(null),G=ar(e=>{f.saveShortcuts?f.saveShortcuts(e):s({favorite_documents:e})},[f,s]),q=ar(e=>{f.saveFolders?f.saveFolders(e):s({desktop_folders:e})},[f,s]);ar(e=>{f.saveSnap?f.saveSnap(e):s({desktop_snap:e})},[f,s]);const J=or({folders:m,favDocs:d,saveFolders:q,saveDocs:G});J.current={folders:m,favDocs:d,saveFolders:q,saveDocs:G},nr(()=>{const e=e=>{const t=e.detail;if(!t?.filePath)return;const{favDocs:r,saveDocs:n}=J.current,o=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:Cn},...o])};return window.addEventListener(l,e),()=>window.removeEventListener(l,e)},[]);const Q=e=>({right:20+Math.floor(e/8)*Mn,top:20+e%8*Mn}),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=>{de(e),n("/files")},oe=ar(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))},[]),ae=ar(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,me]=rr({}),he=or([]),pe=(e,t,r)=>{if(0!==r.button)return;const n="trash"===e?"trash":`${e}-${t}`,o=S.has(n)&&S.size>1?Array.from(S):[n],a=[];for(const e of o)if(e.startsWith("item-")){const t=parseInt(e.slice(5),10),r=te[t];if(!r)continue;const n=Z(r,t),o=document.querySelector(`[data-desktop-icon="${e}"]`);a.push({key:e,type:"item",idx:t,origX:n.right,origY:n.top,el:o})}else if(e.startsWith("folder-")){const t=parseInt(e.slice(7),10),r=m[t];if(!r)continue;const n=ee(r,t),o=document.querySelector(`[data-desktop-icon="${e}"]`);a.push({key:e,type:"folder",idx:t,origX:n.right,origY:n.top,el:o})}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;a.push({key:e,type:"trash",idx:0,origX:r,origY:n,el:t})}he.current=a;const l=a.find(e=>e.key===n)??a[0];l&&(k({type:e,idx:t,startX:r.clientX,startY:r.clientY,origX:l.origX,origY:l.origY}),r.preventDefault())};nr(()=>{if(!v)return;const e=he.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]"),o=(e,t)=>{const r=n();if(!r)return!1;const o=r.getBoundingClientRect();return e>=o.left&&e<=o.right&&t>=o.top&&t<=o.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 a=n.clientX-v.startX,i=n.clientY-v.startY;for(const t of e)t.el&&(t.el.style.right=t.origX-a+"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,U(e=>e===t?e:t),l(null!=r()&&o(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&&o(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(a.favorite_pages)?a.favorite_pages:[];return t.includes(c)||s({favorite_pages:[...t,c]}),Y.current=null,U(null),k(null),void(he.current=[])}l(!1);const u=Y.current,p=null!=u?m[u]:null;Y.current=null,U(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=(o=t,a=r,{x:Math.round(o/Mn)*Mn,y:Math.round(a/Mn)*Mn});t=e.x,r=e.y}var o,a;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 y=g.filter(e=>"item"===e.entry.type);if(y.length>0){const t=[...d],r={},n=1===y.length&&1===e.length?y[0]:null,o=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(o&&n?.entry.el){const e=n.entry.el,t=m.indexOf(o),r=document.querySelector(`[data-desktop-icon="folder-${t}"]`);if(r){const t=e.getBoundingClientRect(),n=r.getBoundingClientRect(),o=n.left+n.width/2-(t.left+t.width/2),a=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(${o}px, ${a}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 y){const n=d.indexOf(te[e.entry.idx]);-1!==n&&(o?t[n]={...t[n],folderId:o.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 a=()=>{G(t),Object.keys(r).length>0&&me(e=>({...e,...r}))};o?setTimeout(a,220):a()}const b=g.filter(e=>"folder"===e.entry.type);if(b.length>0){const e=[...m],t={};for(const r of b)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),me(e=>({...e,...t}))}k(null),he.current=[]};return window.addEventListener("pointermove",i),window.addEventListener("pointerup",c),()=>{window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",c)}},[v,h,d,m,te,a]);const fe=JSON.stringify(d.map(e=>`${e.entityId}:${e.x??""}:${e.y??""}:${e.folderId??""}`)),ye=JSON.stringify(m.map(e=>`${e.id}:${e.x??""}:${e.y??""}`));nr(()=>{me({})},[fe,ye]),nr(()=>{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);ie({folders:e.map(e=>({id:e.id,name:e.name,itemCount:r[e.id]?.length??0})),itemsByFolder:r,moveToDesktop:oe,removeShortcuts:ae})},[fe,ye,oe,ae]),nr(()=>()=>ie(null),[]);const xe=or(!1);nr(()=>{if(!_)return;const e=e=>{const t=o.current?.getBoundingClientRect();if(!t)return;const r=e.clientX-t.left,n=e.clientY-t.top,a=r-_.startX,l=n-_.startY;if(a*a+l*l>16&&(xe.current=!0),L(e=>e?{...e,endX:r,endY:n}:null),xe.current){const e=Math.min(_.startX,r),t=Math.max(_.startX,r),a=Math.min(_.startY,n),l=Math.max(_.startY,n);M(((e,t,r,n)=>{const a=/* @__PURE__ */new Set,l=o.current?.clientWidth||800;te.forEach((o,i)=>{const s=Z(o,i),c=l-s.right-80;c+40>e&&c<t&&s.top+40>r&&s.top<n&&a.add(`item-${i}`)}),m.forEach((o,i)=>{const s=ee(o,i),c=l-s.right-80;c+40>e&&c<t&&s.top+40>r&&s.top<n&&a.add(`folder-${i}`)});const i=o.current?.querySelector('[data-desktop-icon="trash"]'),s=o.current?.getBoundingClientRect();if(i&&s){const o=i.getBoundingClientRect(),l=o.left-s.left,c=o.top-s.top;l+o.width>e&&l<t&&c+o.height>r&&c<n&&a.add("trash")}return a})(e,t,a,l))}},t=()=>{L(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[_]);nr(()=>{if(!N)return;const e=()=>C(null);return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[N]);const we=(e,t)=>{q(m.map(r=>r.id===e?{...r,name:t}:r)),R(null)},ve=ar(e=>{f.saveNotes?f.saveNotes(e):s({notepad_notes:e})},[f,s]),ke=(e,t)=>{ve(p.map(r=>r.id===e?{...r,content:t,updated_at:/* @__PURE__ */(new Date).toISOString()}:r))};nr(()=>{if(!O)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${O.id}"]`);t&&(t.style.left=O.origX+e.clientX-O.startX+"px",t.style.right="auto",t.style.top=O.origY+e.clientY-O.startY+"px")},t=e=>{const t=O.origX+e.clientX-O.startX,r=Math.max(0,O.origY+e.clientY-O.startY),n=document.querySelector(`[data-sticky-id="${O.id}"]`),o=n?.offsetWidth??192,a=t+o/2>window.innerWidth/2?"right":"left",l="right"===a?window.innerWidth-t-o:t;ve(p.map(e=>e.id===O.id?{...e,sticky_x:l,sticky_y:r,sticky_anchor:a}: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)}},[O,p]),nr(()=>{if(!V)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${V.id}"]`);t&&(t.style.width=`${Math.max(140,V.origW+e.clientX-V.startX)}px`,t.style.height=`${Math.max(100,V.origH+e.clientY-V.startY)}px`)},t=e=>{const t=Math.max(140,V.origW+e.clientX-V.startX),r=Math.max(100,V.origH+e.clientY-V.startY);ve(p.map(e=>e.id===V.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)}},[V,p]);const Ne={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"},Ce=(e,t,r,n,o)=>/* @__PURE__ */fr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
|
|
119
119
|
/* @__PURE__ */yr(ue,{entityType:e,isSelected:r,entityId:n,label:t,fileKind:o}),
|
|
120
120
|
/* @__PURE__ */yr("span",{className:"text-[10px] 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})]}),Se=(e,t)=>({...e+180>window.innerWidth?{right:window.innerWidth-e}:{left:e},...t+250>window.innerHeight?{bottom:window.innerHeight-t}:{top:t}});/* @__PURE__ */
|
|
121
121
|
return fr("div",{ref:o,className:"flex-1 relative overflow-hidden",onPointerDown:e=>{if(0!==e.button||e.target!==o.current)return;const t=o.current.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;L({startX:r,startY:n,endX:r,endY:n}),xe.current=!1,M(/* @__PURE__ */new Set)},onContextMenu:e=>{e.preventDefault(),C({x:e.clientX,y:e.clientY})},onClick:()=>{xe.current?xe.current=!1:(M(/* @__PURE__ */new Set),C(null))},children:[(()=>{const e=Tn(),t=20+("right"===e.position?e.width:0),r=20+("bottom"===e.position?e.height:0),o=c.desktop_trash_position,a=o?.right??t,l=o?.bottom??r,i=S.has("trash");/* @__PURE__ */
|
|
@@ -142,9 +142,9 @@ return fr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===l
|
|
|
142
142
|
/* @__PURE__ */fr("svg",{className:"h-4 w-4 text-yellow-500",fill:"currentColor",viewBox:"0 0 24 24",children:[
|
|
143
143
|
/* @__PURE__ */yr("path",{d:"M4 4a2 2 0 012-2h8a2 2 0 012 2v8a2 2 0 01-2 2H6a2 2 0 01-2-2V4z",opacity:"0.8"}),
|
|
144
144
|
/* @__PURE__ */yr("path",{d:"M14 14v4a2 2 0 01-2 2H6a2 2 0 01-2-2v-6",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),"New Sticky Note"]}),
|
|
145
|
-
/* @__PURE__ */fr(Ct,{onClick:()=>{const e=o.current?.getBoundingClientRect(),t=e?.width??0,r=N?N.x-(e?.left??0):t-100,n=N?N.y-(e?.top??0):100,a=Math.max(0,t-r-40),l=Math.max(0,n-20),i=`folder-${Date.now()}`;
|
|
145
|
+
/* @__PURE__ */fr(Ct,{onClick:()=>{const e=o.current?.getBoundingClientRect(),t=e?.width??0,r=N?N.x-(e?.left??0):t-100,n=N?N.y-(e?.top??0):100,a=Math.max(0,t-r-40),l=Math.max(0,n-20),i=`folder-${Date.now()}`;q([...m,{id:i,name:"New Folder",x:a,y:l}]),C(null),R(i),B("New Folder")},children:[
|
|
146
146
|
/* @__PURE__ */yr("svg",{className:"h-4 w-4 text-yellow-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"})}),"Create Folder"]}),
|
|
147
|
-
/* @__PURE__ */fr(Ct,{onClick:()=>{const e=o.current?.getBoundingClientRect(),t=e?.height||600,r=Math.max(1,Math.floor(t/Mn));let n=0;const a=()=>{const e=Math.floor(n/r),t=n%r;return n++,{right:20+e*Mn,top:10+t*Mn}},l=m.map(e=>{const t=a();return{...e,x:t.right,y:t.top}});
|
|
147
|
+
/* @__PURE__ */fr(Ct,{onClick:()=>{const e=o.current?.getBoundingClientRect(),t=e?.height||600,r=Math.max(1,Math.floor(t/Mn));let n=0;const a=()=>{const e=Math.floor(n/r),t=n%r;return n++,{right:20+e*Mn,top:10+t*Mn}},l=m.map(e=>{const t=a();return{...e,x:t.right,y:t.top}});q(l);const i=d.map(e=>{if(e.folderId)return e;const t=a();return{...e,x:t.right,y:t.top}});G(i),C(null)},children:[
|
|
148
148
|
/* @__PURE__ */yr("svg",{className:"h-4 w-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z"})}),"Snap to Grid"]}),
|
|
149
149
|
/* @__PURE__ */fr(Ct,{onClick:()=>{C(null),A(!0)},children:[
|
|
150
150
|
/* @__PURE__ */fr("svg",{className:"h-4 w-4 text-blue-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:[
|
|
@@ -161,11 +161,11 @@ return fr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===l
|
|
|
161
161
|
/* @__PURE__ */yr("svg",{className:"h-4 w-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"})}),"Suggestion or Bug"]})]})]}),N&&null!=N.itemIdx&&/* @__PURE__ */fr(kt,{style:Se(N.x,N.y),minWidth:160,children:[
|
|
162
162
|
/* @__PURE__ */yr(Ct,{onClick:()=>{re(te[N.itemIdx]),C(null)},children:"Open"}),
|
|
163
163
|
/* @__PURE__ */yr(vt,{}),
|
|
164
|
-
/* @__PURE__ */yr(Ct,{danger:!0,onClick:()=>(e=>{const t=d.indexOf(te[e]);
|
|
164
|
+
/* @__PURE__ */yr(Ct,{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__ */fr(kt,{style:Se(N.x,N.y),minWidth:160,children:[
|
|
165
165
|
/* @__PURE__ */yr(Ct,{onClick:()=>{ne(m[N.folderIdx].id),C(null)},children:"Open"}),m[N.folderIdx].id!==Cn&&/* @__PURE__ */fr(br,{children:[
|
|
166
166
|
/* @__PURE__ */yr(Ct,{onClick:()=>{R(m[N.folderIdx].id),B(m[N.folderIdx].name),C(null)},children:"Rename"}),
|
|
167
167
|
/* @__PURE__ */yr(vt,{}),
|
|
168
|
-
/* @__PURE__ */yr(Ct,{danger:!0,onClick:()=>(e=>{const t=m[e];if(t.id===Cn)return;const r=d.map(e=>e.folderId===t.id?{...e,folderId:void 0}:e);
|
|
168
|
+
/* @__PURE__ */yr(Ct,{danger:!0,onClick:()=>(e=>{const t=m[e];if(t.id===Cn)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"})]})]}),
|
|
169
169
|
/* @__PURE__ */yr(Kr,{open:$,onClose:()=>A(!1)}),E&&(()=>{const e=f.productVersion??Je;/* @__PURE__ */
|
|
170
170
|
return yr(be,{open:!0,onClose:()=>P(!1),title:`${t.about.aboutPrefix} ${f.productName??t.about.thisApp}`,size:"sm",bodyScroll:!1,compact:!0,dimensions:[340,420],children:/* @__PURE__ */fr("div",{className:"flex flex-col items-center",children:[
|
|
171
171
|
/* @__PURE__ */fr("div",{className:"flex flex-col items-center gap-2 pt-4 pb-3 w-full",children:[
|
|
@@ -204,7 +204,7 @@ return yr("div",{className:"fixed top-0 right-0 z-[250]",style:{left:e,height:Xe
|
|
|
204
204
|
/* @__PURE__ */yr("h1",{className:"text-2xl font-bold tracking-[0.3em] text-white/90 uppercase",children:s.logout.goodbye}),
|
|
205
205
|
/* @__PURE__ */yr("p",{className:"mt-2 text-xs text-white/40",children:s.logout.seeYou})]}),t&&/* @__PURE__ */yr("div",{className:"absolute bottom-8 transition-all duration-500 "+("show"===l?"opacity-40":"opacity-0"),children:/* @__PURE__ */yr("p",{className:"text-[10px] text-white/40 font-mono tracking-wider",children:t})}),
|
|
206
206
|
/* @__PURE__ */yr("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 Hn(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 Vn(){const{openWindows:e,openEntity:t,openPage:r}=ge(),{prefs:n,save:o}=gt(),a=or(!1),l=or([]),i=or(null),s=or(0),c=or(void 0);return nr(()=>{if(a.current)return;a.current=!0;const o=Array.isArray(n.session_windows)?n.session_windows:[];if(l.current=o,!1!==n.restore_windows&&!(e.length>0))for(const e of o)"page"===e.type&&e.route?r(e.route):"entity"===e.type&&e.entityType&&e.entityId&&!Ie(e.entityId)&&t(e.entityType,e.entityId,void 0,e.label,e.route)},[]),nr(()=>{if(!a.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&&!Fe(r)&&t.push({type:"entity",entityType:r.entityType,entityId:r.entityId,label:r.label,route:r.route}));return t}(e);return Hn(t,l.current)||i.current&&Hn(t,i.current)?void 0:(c.current=setTimeout(()=>{const e=++s.current;i.current=t,Promise.resolve(o({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,o]),null}var Kn=e=>e.menuLabel??e.label,Xn=e=>Boolean(e.menuLabel&&e.menuLabel!==e.label),Un=e=>Xn(e)?`${e.menuLabel}, ${e.label}`:void 0;function Yn({entry:e,className:t}){const r=Xn(e),[n,o]=rr(r);/* @__PURE__ */
|
|
207
|
-
return yr("span",{className:t,title:n?e.label:void 0,"data-menu-label":!0,onMouseEnter:e=>o(r||e.currentTarget.scrollWidth>e.currentTarget.clientWidth),children:Kn(e)})}function
|
|
207
|
+
return yr("span",{className:t,title:n?e.label:void 0,"data-menu-label":!0,onMouseEnter:e=>o(r||e.currentTarget.scrollWidth>e.currentTarget.clientWidth),children:Kn(e)})}function Gn({left:e,anchorY:t,estHeight:r,minTop:n,maxBottom:o,flipped:a,className:l,style:i,onMouseEnter:s,onMouseLeave:c,children:d}){const u=or(null);return lr(()=>{const e=u.current;e&&(e.style.top=`${It(t,e.offsetHeight,n,o)}px`)}),/* @__PURE__ */yr("div",{ref:u,"data-menu-panel":!0,className:`fixed rounded-(--radius-popup) overflow-hidden ${l??""}`,style:{left:e,top:It(t,r,n,o),animation:(a?"submenu-in-left":"submenu-in")+" 0.1s ease-out",...i},onMouseEnter:s,onMouseLeave:c,children:d})}function qn({open:e,onClose:t,openPage:r,profile:n,user:o,onLogout:a,taskbarPosition:l,taskbarH:i,taskbarW:s=0,taskbarGap:c=4,size:d="medium",navSections:u=He,navIcons:m=Ve,sectionIcons:h=Ke,categories:p=Oe}){const g=new Set(p.erp),f=new Set(p.system),y=new Set(p.footer??[]),b=p.virtual??[],x=Object.fromEntries(b.map(e=>[e.label,e])),{hasAnyPerm:v}=w(),k=(p.footerItems??[]).filter(e=>ft(e,v)),N=pt(),[C,S]=rr([]),[M,_]=rr(""),[L,E]=rr(0),T=or(null),P=or();nr(()=>{e||(_(""),S([]),E(0))},[e]),nr(()=>()=>clearTimeout(P.current),[]);const I=C.length>0?C[C.length-1].key:null;if(nr(()=>{e&&ke("menu","start")},[e]),nr(()=>{I&&ke("submenu",I)},[I]),nr(()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()},n=e=>{e.target.closest("[data-menu-toggle]")||T.current&&!T.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 D=e=>{r(e),t()},$=e=>{if(e.onSelect)return e.onSelect(),void t();D(e.to)};if(N){const e=[],r=(t,n)=>{if(ft(t,v)&&bt(t,v)){e.push({item:t,sectionLabel:n});for(const e of xt(t,v))r(e,t.label)}};for(const e of u)if(yt(e)){const t=e;if(!ft(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=M.length>=1?e.filter(({item:e})=>e.label.toLowerCase().includes(M.toLowerCase())):e;/* @__PURE__ */
|
|
208
208
|
return fr("div",{ref:T,className:"fixed inset-0 z-[260] flex flex-col bg-white",style:{paddingBottom:"var(--mobile-bottom-nav, 56px)"},children:[
|
|
209
209
|
/* @__PURE__ */fr("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-gray-200",children:[
|
|
210
210
|
/* @__PURE__ */yr("button",{onClick:t,className:"p-2 -ml-1 rounded-full active:bg-gray-200 text-gray-700","aria-label":"Close menu",children:/* @__PURE__ */yr("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}),
|
|
@@ -215,10 +215,10 @@ return fr("div",{ref:T,className:"fixed inset-0 z-[260] flex flex-col bg-white",
|
|
|
215
215
|
return fr("button",{onClick:()=>$(e),"aria-label":Un(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:[
|
|
216
216
|
/* @__PURE__ */yr("span",{className:"h-8 w-8 rounded-lg bg-gray-100 flex items-center justify-center text-gray-600 shrink-0",children:n&&cr(n)?dr(n,{className:"h-5 w-5"}):null}),
|
|
217
217
|
/* @__PURE__ */fr("div",{className:"min-w-0 flex-1",children:[
|
|
218
|
-
/* @__PURE__ */yr(Yn,{entry:e,className:"block truncate text-sm font-medium text-gray-900"}),t&&/* @__PURE__ */yr("div",{className:"text-[11px] text-gray-500 truncate",children:t})]})]},`${e.to}-${r}`)})})]})}const A="bottom"!==l,j=u.filter(e=>!yt(e)).filter(e=>ft(e,v)&&bt(e,v)),R=u.filter(e=>yt(e)&&g.has(e.label)),W=u.filter(e=>yt(e)&&f.has(e.label)),B=u.filter(e=>yt(e)&&y.has(e.label)),F=j.length>0||W.length>0||b.length>0,z=e=>e.items.filter(e=>ft(e,v)),O=e=>xt(e,v),H=e=>O(e).filter(e=>bt(e,v)),V=(e,t)=>{if(!ft(e,v))return[];if(!bt(e,v))return[];const r=O(e),n=[];e.label.toLowerCase().includes(M.toLowerCase())&&n.push({...e,section:t});for(const t of r)n.push(...V(t,e.label));return n},K=M.length>=2?[...u.flatMap(e=>{if(yt(e)){const t=e;return t.items.flatMap(e=>V(e,t.label))}return V(e,"")}),...k.flatMap(e=>V(e,""))]:[],X="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},U=e=>{const t=m[e];return t&&cr(t)?dr(t,{className:"h-4 w-4 shrink-0"}):null},Y=e=>{const t=h[e];return t&&cr(t)?dr(t,{className:"h-4 w-4 shrink-0"}):null},
|
|
218
|
+
/* @__PURE__ */yr(Yn,{entry:e,className:"block truncate text-sm font-medium text-gray-900"}),t&&/* @__PURE__ */yr("div",{className:"text-[11px] text-gray-500 truncate",children:t})]})]},`${e.to}-${r}`)})})]})}const A="bottom"!==l,j=u.filter(e=>!yt(e)).filter(e=>ft(e,v)&&bt(e,v)),R=u.filter(e=>yt(e)&&g.has(e.label)),W=u.filter(e=>yt(e)&&f.has(e.label)),B=u.filter(e=>yt(e)&&y.has(e.label)),F=j.length>0||W.length>0||b.length>0,z=e=>e.items.filter(e=>ft(e,v)),O=e=>xt(e,v),H=e=>O(e).filter(e=>bt(e,v)),V=(e,t)=>{if(!ft(e,v))return[];if(!bt(e,v))return[];const r=O(e),n=[];e.label.toLowerCase().includes(M.toLowerCase())&&n.push({...e,section:t});for(const t of r)n.push(...V(t,e.label));return n},K=M.length>=2?[...u.flatMap(e=>{if(yt(e)){const t=e;return t.items.flatMap(e=>V(e,t.label))}return V(e,"")}),...k.flatMap(e=>V(e,""))]:[],X="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},U=e=>{const t=m[e];return t&&cr(t)?dr(t,{className:"h-4 w-4 shrink-0"}):null},Y=e=>{const t=h[e];return t&&cr(t)?dr(t,{className:"h-4 w-4 shrink-0"}):null},G=C.length>0?C[0].key:null,q=G?x[G]:void 0,J=q?null:G?[...R,...W,...B].find(e=>e.label===G):null,Q=(q?q.items:J?z(J):[]).filter(e=>bt(e,v)),Z="undefined"!=typeof document&&getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal",ee={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:"py-1.5",px:"px-3",mw:256,itemH:30}},normal:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-1.5",px:"px-3",mw:224,itemH:30},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"py-1.5",px:"px-4",mw:256,itemH:32},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"py-2",px:"px-4",mw:288,itemH:36}},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}}}["tight"===Z||"large"===Z?Z:"normal"][d],te=jt(),re=`w-full min-w-0 overflow-hidden whitespace-nowrap flex items-center gap-2 rounded-lg ${ee.px} ${ee.py} ${ee.text}`,ne="min-w-0 flex-1 truncate text-left",oe="undefined"!=typeof window?window.innerHeight:800,ae="undefined"!=typeof window?window.innerWidth:1280,le=("top"===l?i:0)+8,ie=oe-("bottom"===l?i:0)-8,se=Math.max(0,ie-le),ce=St(Q,C,H),de=()=>clearTimeout(P.current),ue=(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,o=0===e?r.getBoundingClientRect().right:n+r.offsetWidth,a=e>0&&(C[e-1]?.flipped??!1);return Dt(n,o,ee.fwPx,ae,4,a)},me=(e,t,r)=>{de();const n=r.currentTarget,o=n.getBoundingClientRect(),a={key:t,y:o.top+o.height/2,...ue(e,n)};S(t=>Tt(t,e,a))},he=e=>{de(),P.current=setTimeout(()=>S(t=>Pt(t,e)),200)},pe=/* @__PURE__ */yr("svg",{className:"h-3.5 w-3.5 shrink-0 ml-auto text-gray-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 4.5l7.5 7.5-7.5 7.5"})}),ge=(e,t)=>{if(!ft(e,v))return null;if(0===z(e).length)return null;const r=G===e.label;/* @__PURE__ */
|
|
219
219
|
return fr("div",{onMouseEnter:t=>me(0,e.label,t),children:[
|
|
220
220
|
/* @__PURE__ */fr("button",{"aria-label":Un(e),className:`${re} transition-colors ${r?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[Y(e.label),
|
|
221
|
-
/* @__PURE__ */yr(Yn,{entry:e,className:`${ne} ${t?"font-medium":""}`}),pe]}),e.dividerAfter&&/* @__PURE__ */yr("div",{className:"border-t border-white/20 my-1.5 mx-2"})]},e.label)},fe=e=>{if(0===e.items.length)return null;const t=
|
|
221
|
+
/* @__PURE__ */yr(Yn,{entry:e,className:`${ne} ${t?"font-medium":""}`}),pe]}),e.dividerAfter&&/* @__PURE__ */yr("div",{className:"border-t border-white/20 my-1.5 mx-2"})]},e.label)},fe=e=>{if(0===e.items.length)return null;const t=G===e.label;/* @__PURE__ */
|
|
222
222
|
return yr("div",{onMouseEnter:t=>me(0,e.label,t),children:/* @__PURE__ */fr("button",{"aria-label":Un(e),className:`${re} transition-colors ${t?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[
|
|
223
223
|
/* @__PURE__ */yr("span",{className:"shrink-0",children:e.icon}),
|
|
224
224
|
/* @__PURE__ */yr(Yn,{entry:e,className:ne}),pe]})},e.label)};
|
|
@@ -238,7 +238,7 @@ return fr("div",{ref:T,className:"fixed z-[1100]",style:X,children:[
|
|
|
238
238
|
/* @__PURE__ */yr(Yn,{entry:e,className:ne})]},e.to))]})]}),
|
|
239
239
|
/* @__PURE__ */yr("div",{className:(A?"border-b":"border-t")+" border-white/20 p-1",onMouseEnter:()=>he(0),children:/* @__PURE__ */fr("div",{onClick:()=>D("/profile"),className:"rounded-lg px-2 py-1.5 flex items-center gap-2.5 hover:bg-blue-50 hover:text-blue-700 transition-colors cursor-pointer",children:[n?.avatar_url?/* @__PURE__ */yr("img",{src:n.avatar_url,alt:"",className:"h-8 w-8 rounded-full object-cover border border-white/20 shrink-0"}):/* @__PURE__ */yr("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)||o?.email?.charAt(0)||"?").toUpperCase()}),
|
|
240
240
|
/* @__PURE__ */yr("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():o?.email}),
|
|
241
|
-
/* @__PURE__ */yr("button",{onClick:e=>{e.stopPropagation(),t(),a()},title:"Sign Out",className:"shrink-0 p-1.5 rounded-md text-gray-500 hover:text-red-600 hover:bg-red-50 transition-colors",children:/* @__PURE__ */yr("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"})})})]})})]}),M.length<2&&ce.map((e,t)=>/* @__PURE__ */yr(
|
|
241
|
+
/* @__PURE__ */yr("button",{onClick:e=>{e.stopPropagation(),t(),a()},title:"Sign Out",className:"shrink-0 p-1.5 rounded-md text-gray-500 hover:text-red-600 hover:bg-red-50 transition-colors",children:/* @__PURE__ */yr("svg",{className:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"})})})]})})]}),M.length<2&&ce.map((e,t)=>/* @__PURE__ */yr(Gn,{left:C[t].left,anchorY:C[t].y,estHeight:e.length*ee.itemH+12,minTop:le,maxBottom:ie,flipped:C[t].flipped,className:ee.fw,style:te,onMouseEnter:()=>he(t+1),onMouseLeave:()=>he(t),children:/* @__PURE__ */yr("div",{className:"py-1 px-1 overflow-y-auto overflow-x-hidden overscroll-contain",style:{maxHeight:se},children:e.map(e=>{const r=H(e),n=C[t+1]?.key===e.to;/* @__PURE__ */
|
|
242
242
|
return fr("div",{onMouseEnter:r.length>0?r=>me(t+1,e.to,r):()=>he(t+1),children:[
|
|
243
243
|
/* @__PURE__ */fr("button",{onClick:r.length>0?r=>me(t+1,e.to,r):()=>$(e),"aria-label":Un(e),className:`${re} transition-colors ${n?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[U(e.to),
|
|
244
244
|
/* @__PURE__ */yr(Yn,{entry:e,className:ne}),r.length>0&&pe]}),e.dividerAfter&&/* @__PURE__ */yr("div",{className:"border-t border-white/20 my-1.5 mx-2"})]},e.to)})})},`${t}:${C[t].key}`))]}),
|
|
@@ -280,11 +280,11 @@ return yr("button",{onClick:()=>a(e),title:t,onContextMenu:r=>{r.preventDefault(
|
|
|
280
280
|
/* @__PURE__ */fr(Ct,{onClick:()=>{s(null),a(i.path)},children:[(()=>{const e=o[i.path];return e&&cr(e)?dr(e,{className:"h-4 w-4 text-gray-400"}):/* @__PURE__ */yr("span",{className:"w-4"})})(),"Open ",i.label]}),
|
|
281
281
|
/* @__PURE__ */yr(vt,{}),
|
|
282
282
|
/* @__PURE__ */fr(Ct,{danger:!0,onClick:()=>{s(null),l(i.path)},children:[
|
|
283
|
-
/* @__PURE__ */yr("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"})}),"Remove from Favorites"]})]})]});var d,u}function ao({branding:t,productName:r="efficient-shell",productIcon:n="/favicon.svg",wallpapers:o,navSections:a=He,navIcons:l=Ve,sectionIcons:i=Ke,categories:s=Oe,notifications:d,search:u,taskbarTrayLeft:m,clockCalendar:h,mobileApp:p,contextMenu:g=!0,home:f}={}){const y=t?.productName??r,b=t?.logo??n,x=t?.tagline,S=t?.adaptiveLogo??!1,M=t?.logoHasAlpha??null,_=t?.logoIsLight??null,L=En(),{user:E,logout:T,hasAnyPerm:I}=w(),{openPage:D,openEntity:$,openWindows:A,remove:j}=ge(),R=Ht().layout,[W,B]=rr(!1),F=pt(),z=E||{};P();const{favorites:O,toggle:H,desktopBg:V}=function(e){const{prefs:t,save:r}=ht(),n=t.favorite_pages||[],o=ar(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n,e];r({favorite_pages:t})},[n,r]),a=e&&e.length>0?e:[],l=or(a.length>0?a[Math.floor(Math.random()*a.length)]:"none"),i=t.desktop_bg||(a.length>0?"random":"none"),s="random"===i?l.current:i,c=ar(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:o,isFavorite:e=>n.includes(e),desktopBg:s,setDesktopBg:c}}(o??L.wallpapers?.map(e=>e.src)),{url:K}=Dn(V),{prefs:X,save:U}=ht(),Y=$n(X),oe="sidebar"===Y,ae=An(),[le,ie]=Ft(()=>v(k(N),window.innerWidth),!1),se=ar(()=>{ie(e=>(C(N,String(!e)),!e))},[ie]),ce=oe?le?Ue:Ye:0,de=X.taskbar_position||"bottom",ue=oe?"top":de,me=X.taskbar_size||"medium",he=X.desktop_dblclick||"deactivate",pe="left"===ue||"right"===ue,be=oe?Xe:pe?0:"small"===me?42:"large"===me?72:56,xe=pe?"small"===me?180:"large"===me?260:220:0,we="small"===me?2:"large"===me?6:4,ke="small"===me?"h-[42px]":"large"===me?"h-[72px]":"h-14",Se="small"===me?"w-[180px]":"large"===me?"w-[260px]":"w-[220px]",Me=!!X.reduce_transparency,_e=Me?1:(X.transparency_taskbar??70)/100,Le=(X.transparency_start_menu??95)/100,Ee=(X.transparency_inactive_header??70)/100,Te=(X.transparency_inactive_content??80)/100,Pe=(X.transparency_active_header??80)/100,Ie=(X.transparency_active_content??90)/100;nr(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",Me),e.style.setProperty("--inactive-header-opacity",String(Ee)),e.style.setProperty("--inactive-content-opacity",String(Te)),e.style.setProperty("--active-header-opacity",String(Pe)),e.style.setProperty("--active-content-opacity",String(Ie)),e.style.setProperty("--menu-opacity",String(Le)),e.style.setProperty("--taskbar-height",`${be}px`),e.style.setProperty("--taskbar-width",`${xe}px`),e.style.setProperty("--taskbar-position",ue),e.style.setProperty("--sidebar-width",`${ce}px`),e.style.setProperty("--layout-mode",Y),"sidebar"===et.current&&"classic"===Y&&ve(),et.current=Y,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(
|
|
283
|
+
/* @__PURE__ */yr("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"})}),"Remove from Favorites"]})]})]});var d,u}function ao({branding:t,productName:r="efficient-shell",productIcon:n="/favicon.svg",wallpapers:o,navSections:a=He,navIcons:l=Ve,sectionIcons:i=Ke,categories:s=Oe,notifications:d,search:u,taskbarTrayLeft:m,clockCalendar:h,mobileApp:p,contextMenu:g=!0,home:f}={}){const y=t?.productName??r,b=t?.logo??n,x=t?.tagline,S=t?.adaptiveLogo??!1,M=t?.logoHasAlpha??null,_=t?.logoIsLight??null,L=En(),{user:E,logout:T,hasAnyPerm:I}=w(),{openPage:D,openEntity:$,openWindows:A,remove:j}=ge(),R=Ht().layout,[W,B]=rr(!1),F=pt(),z=E||{};P();const{favorites:O,toggle:H,desktopBg:V}=function(e){const{prefs:t,save:r}=ht(),n=t.favorite_pages||[],o=ar(e=>{const t=n.includes(e)?n.filter(t=>t!==e):[...n,e];r({favorite_pages:t})},[n,r]),a=e&&e.length>0?e:[],l=or(a.length>0?a[Math.floor(Math.random()*a.length)]:"none"),i=t.desktop_bg||(a.length>0?"random":"none"),s="random"===i?l.current:i,c=ar(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:o,isFavorite:e=>n.includes(e),desktopBg:s,setDesktopBg:c}}(o??L.wallpapers?.map(e=>e.src)),{url:K}=Dn(V),{prefs:X,save:U}=ht(),Y=$n(X),oe="sidebar"===Y,ae=An(),[le,ie]=Ft(()=>v(k(N),window.innerWidth),!1),se=ar(()=>{ie(e=>(C(N,String(!e)),!e))},[ie]),ce=oe?le?Ue:Ye:0,de=X.taskbar_position||"bottom",ue=oe?"top":de,me=X.taskbar_size||"medium",he=X.desktop_dblclick||"deactivate",pe="left"===ue||"right"===ue,be=oe?Xe:pe?0:"small"===me?42:"large"===me?72:56,xe=pe?"small"===me?180:"large"===me?260:220:0,we="small"===me?2:"large"===me?6:4,ke="small"===me?"h-[42px]":"large"===me?"h-[72px]":"h-14",Se="small"===me?"w-[180px]":"large"===me?"w-[260px]":"w-[220px]",Me=!!X.reduce_transparency,_e=Me?1:(X.transparency_taskbar??70)/100,Le=(X.transparency_start_menu??95)/100,Ee=(X.transparency_inactive_header??70)/100,Te=(X.transparency_inactive_content??80)/100,Pe=(X.transparency_active_header??80)/100,Ie=(X.transparency_active_content??90)/100;nr(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",Me),e.style.setProperty("--inactive-header-opacity",String(Ee)),e.style.setProperty("--inactive-content-opacity",String(Te)),e.style.setProperty("--active-header-opacity",String(Pe)),e.style.setProperty("--active-content-opacity",String(Ie)),e.style.setProperty("--menu-opacity",String(Le)),e.style.setProperty("--taskbar-height",`${be}px`),e.style.setProperty("--taskbar-width",`${xe}px`),e.style.setProperty("--taskbar-position",ue),e.style.setProperty("--sidebar-width",`${ce}px`),e.style.setProperty("--layout-mode",Y),"sidebar"===et.current&&"classic"===Y&&ve(),et.current=Y,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(Ge)),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)},[Me,Ee,Te,Pe,Ie,be,xe,ue,X.default_window_size,X.window_position,X.menu_density,X.start_menu_size,ce,Y]);const De=ir(()=>{if(!f)return null;const e=fe[f];if(!e||!ye(e))return null;const t=e;return t.widget||t.utility?null:f},[f]),$e=oe&&!F?De:null;nr(()=>{Ne($e)},[$e]),nr(()=>()=>Ne(null),[]);const Ae=!!$e&&A.some(e=>"page"===e.type&&e.route===$e);nr(()=>{$e&&!Ae&&D($e,{background:!0,shellOwned:!0})},[$e,Ae,D]),nr(()=>{oe||A.filter(e=>e.shellOwned).forEach(e=>j(e.id))},[oe,A,j]);const je=Ce(),Re=oe?A.find(e=>e.id===je)?.route??null:null,We=ir(()=>oe?G(q(a,s,I),I,R.pageResult):null,[oe,a,s,I,R.pageResult]),Be=ir(()=>We?[We,...u?.providers??[]]:u?.providers,[We,u?.providers]),Fe=ir(()=>J(X.search_recent),[X.search_recent]),ze=ir(()=>Q(X.favorite_documents,R.pageResult),[X.favorite_documents,R.pageResult]),qe=ar(e=>U({search_recent:Z(Fe,e)}),[Fe,U]),Je="__react-os-shell:switch-to-sidebar",Qe=ir(()=>({...s,footerItems:[...s.footerItems??[],{to:Je,label:R.switchToSidebar,onSelect:()=>ae("sidebar")}]}),[s,R.switchToSidebar,ae]),Ze=ir(()=>({...l,[Je]:/* @__PURE__ */yr("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 3.75h4.5v16.5h-4.5zM11.25 3.75h9v4.5h-9z"})})}),[l]);nr(()=>{document.documentElement.style.setProperty("--mobile-bottom-nav","0px")},[]);const et=or(Y),[tt,rt]=rr(!1),[nt,ot]=rr(!!document.fullscreenElement),[at,lt]=rr(null),[it,st]=rr(!1),ct=ar((e,t)=>{U({[e]:t})},[U]),dt=ar(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{}},[]);nr(()=>{const e=()=>{ot(!!document.fullscreenElement),!document.fullscreenElement&&navigator.keyboard?.unlock&&navigator.keyboard.unlock()};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const ut=or(!1);nr(()=>{if(!ut.current&&X.auto_fullscreen&&!document.fullscreenElement){ut.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[mt,gt]=rr(!1),ft=or(!1);nr(()=>{if(ft.current)return;ft.current=!0;const e="erp_startup_shown";sessionStorage.getItem(e)||(sessionStorage.setItem(e,"1"),gt(!0))},[]);const yt=or(!1);nr(()=>{!yt.current&&mt&&(yt.current=!0,setTimeout(()=>c(),500))},[mt]),nr(()=>{const e=e=>{if((e.ctrlKey||e.metaKey)&&"."===e.key&&(e.preventDefault(),oe?se():B(e=>!e)),e.ctrlKey&&"F11"===e.key&&(e.preventDefault(),dt()),"Escape"===e.key&&document.fullscreenElement){document.querySelectorAll("[data-modal-panel]").length>0||(e.preventDefault(),dt())}};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[dt,oe,se]);const bt=ar(async()=>{const{confirm:e}=await(import("./ConfirmDialog-CMNQZQA3.js"));await e({title:R.signOutTitle,message:R.signOutMessage,confirmLabel:R.signOut,variant:"warning"})&&st(!0)},[R]),xt=/* @__PURE__ */fr(br,{children:[
|
|
284
284
|
/* @__PURE__ */yr(Zn,{}),m,d&&/* @__PURE__ */yr(Wr,{...d}),
|
|
285
285
|
/* @__PURE__ */yr(eo,{clockCalendar:h})]});/* @__PURE__ */
|
|
286
286
|
return fr("div",{className:"flex flex-col h-screen",children:[
|
|
287
|
-
/* @__PURE__ */yr(Vn,{}),mt&&/* @__PURE__ */yr(zn,{onComplete:()=>gt(!1),ready:!!z,productName:y,logo:b,subtitle:x,adaptiveLogo:S,logoHasAlpha:M,logoIsLight:_}),it&&/* @__PURE__ */yr(On,{onComplete:()=>{sessionStorage.removeItem("erp_startup_shown"),T()},logo:b,subtitle:x,adaptiveLogo:S,logoHasAlpha:M,logoIsLight:_}),!oe&&!F&&/* @__PURE__ */yr(
|
|
287
|
+
/* @__PURE__ */yr(Vn,{}),mt&&/* @__PURE__ */yr(zn,{onComplete:()=>gt(!1),ready:!!z,productName:y,logo:b,subtitle:x,adaptiveLogo:S,logoHasAlpha:M,logoIsLight:_}),it&&/* @__PURE__ */yr(On,{onComplete:()=>{sessionStorage.removeItem("erp_startup_shown"),T()},logo:b,subtitle:x,adaptiveLogo:S,logoHasAlpha:M,logoIsLight:_}),!oe&&!F&&/* @__PURE__ */yr(qn,{open:W,onClose:()=>B(!1),openPage:e=>{D(e),B(!1)},openWindows:A,profile:z,user:E,onLogout:()=>st(!0),onNavigate:e=>{D(e),B(!1)},taskbarPosition:ue,taskbarH:be,taskbarW:xe,taskbarGap:we,size:X.start_menu_size||"medium",navSections:a,navIcons:Ze,sectionIcons:i,categories:Qe}),oe&&!F&&/* @__PURE__ */fr(br,{children:[
|
|
288
288
|
/* @__PURE__ */yr(ur,{fallback:null,children:/* @__PURE__ */yr(Qn,{width:ce,collapsed:le,onToggleCollapsed:se,onOpen:(e,t)=>D(e,t?void 0:{reuse:!0}),activeRoute:Re,profile:z,user:E,onLogout:()=>{bt()},onSwitchToDesktop:()=>ae("classic"),onReportBug:L.onReportBug,navSections:a,navIcons:l,sectionIcons:i,categories:s,productName:y,productIcon:b,tagline:x,adaptiveLogo:S,logoHasAlpha:M,logoIsLight:_})}),
|
|
289
289
|
/* @__PURE__ */yr(Fn,{left:ce,navIcons:l,home:$e,end:/* @__PURE__ */yr("div",{className:"flex items-center gap-2",children:xt})})]}),(()=>{const t=e(V,K),r={backgroundColor:V?.startsWith("#")?V:"none"===V?(()=>{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:t?`url(${t})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"};return F?/* @__PURE__ */yr(Jn,{productName:y,productIcon:b,adaptiveLogo:S,logoHasAlpha:M,logoIsLight:_,config:p,wallpaperStyle:r}):/* @__PURE__ */fr(br,{children:[
|
|
290
290
|
/* @__PURE__ */yr("div",{className:"flex flex-1 min-h-0",style:oe?{paddingLeft:ce,paddingTop:Xe}:void 0,children:/* @__PURE__ */yr("main",{className:"flex-1 flex flex-col overflow-hidden cursor-default",onDoubleClick:()=>{"deactivate"===he&&(B(!1),window.dispatchEvent(new CustomEvent("deactivate-all-modals")))},style:r,children:/* @__PURE__ */yr(Pn,{profile:z})})}),!oe&&/* @__PURE__ */fr("div",{className:"flex backdrop-blur-sm border-gray-200 z-[250] fixed "+(pe?`flex-col items-center ${Se} py-3 gap-2 top-0 bottom-0 ${"left"===ue?"left-0 border-r":"right-0 border-l"}`:`items-center ${ke} px-3 gap-2 right-0 ${"top"===ue?"top-0 border-b":"bottom-0 border-t"}`),style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${_e})`,...pe?{}:{left:0}},"data-taskbar-dropzone":!0,onContextMenu:e=>{e.preventDefault(),lt({x:e.clientX,y:e.clientY})},children:[
|
|
@@ -301,19 +301,19 @@ return fr("div",{className:"flex flex-col h-screen",children:[
|
|
|
301
301
|
/* @__PURE__ */yr("div",{className:"w-full px-2",children:/* @__PURE__ */fr("div",{className:"flex items-center justify-center gap-2 "+("right"===ue?"flex-row-reverse":""),children:[
|
|
302
302
|
/* @__PURE__ */yr(eo,{clockCalendar:h}),
|
|
303
303
|
/* @__PURE__ */yr(Zn,{}),m,d&&/* @__PURE__ */yr(Wr,{...d,popDirection:"right"===ue?"left":"right"})]})}):xt]})]})})(),at&&/* @__PURE__ */yr(no,{x:at.x,y:at.y,position:ue,size:me,onChangePosition:e=>{ct("taskbar_position",e),lt(null)},onChangeSize:e=>{ct("taskbar_size",e),lt(null)},onClose:()=>lt(null),onReportBug:L.onReportBug,onSwitchLayout:()=>ae("sidebar"),switchLayoutLabel:R.switchToSidebar}),
|
|
304
|
-
/* @__PURE__ */yr(te,{...u,providers:Be,recent:Fe,favorites:ze,onRecord:
|
|
304
|
+
/* @__PURE__ */yr(te,{...u,providers:Be,recent:Fe,favorites:ze,onRecord:qe,onSelect:e=>{if(e.entity_type===re){const{path:t,search:r}=ne(e.entity_id),n=We?.destinations.find(e=>e.to===t);return void(n?.onSelect?n.onSelect():D(t,r?{search:r}:{reuse:!0}))}$(e.entity_type,e.entity_id,void 0,e.label)}}),
|
|
305
305
|
/* @__PURE__ */yr(Tr,{}),
|
|
306
|
-
/* @__PURE__ */yr(Rr,{disabled:!g})]})}var lo=[{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]"}],io=["add","edit","trash","search","download","settings","bell","warning"],so=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],co=[];function uo(){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 mo(e,t,r,n,o,a,l){return"dark"===e?r:"pink"===e?n:"green"===e?o:"grey"===e?a??t:"blue"===e?l??t:t}function ho({omit:a,section:l}={}){const i=new Set(a??[]),s=e=>void 0===l||l===e,c=En(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:co,{prefs:u,save:m}=ht(),[h,p]=rr({}),g=e=>e in h?h[e]:u[e];nr(()=>{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"],y=e=>{const t={...e};for(const e of f)e in t||(t[e]=g(e));H(t),p(t=>({...t,...e})),m(e)};tr(Yt,
|
|
306
|
+
/* @__PURE__ */yr(Rr,{disabled:!g})]})}var lo=[{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]"}],io=["add","edit","trash","search","download","settings","bell","warning"],so=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],co=[];function uo(){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 mo(e,t,r,n,o,a,l){return"dark"===e?r:"pink"===e?n:"green"===e?o:"grey"===e?a??t:"blue"===e?l??t:t}function ho({omit:a,section:l}={}){const i=new Set(a??[]),s=e=>void 0===l||l===e,c=En(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:co,{prefs:u,save:m}=ht(),[h,p]=rr({}),g=e=>e in h?h[e]:u[e];nr(()=>{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"],y=e=>{const t={...e};for(const e of f)e in t||(t[e]=g(e));H(t),p(t=>({...t,...e})),m(e)};tr(Yt,Gt,Gt);const b=qt(),x=g("theme")||"system",w=I(x),v=u.desktop_bg||(d.length>0?"random":"none"),k=or(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("#"),M=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),_=!S&&"none"!==N&&"random"!==v&&N&&!M.has(N),{url:L,refresh:E}=Dn(N,C),T=e(N,L),P=e(N===t?N:C||N,L),[A,j]=rr(null),[R,W]=rr(!1),B=(e,t)=>{m({[e]:t})},F=Ht().layout,z=$n(u),O=An(),V=!!g("reduce_transparency"),[K,X]=rr({}),U=or({}),Y=ar((e,t)=>{X(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)),U.current[e]&&clearTimeout(U.current[e]),U.current[e]=setTimeout(()=>{B(e,t),X(t=>{const r={...t};return delete r[e],r})},300)},[B]);nr(()=>()=>{Object.values(U.current).forEach(clearTimeout)},[]);const G=(u.transparency_taskbar??70)/100,q=(u.transparency_active_header??80)/100,J=(u.transparency_active_content??90)/100,Q=mo(w,"bg-white/90","bg-[#1e1e2e]/90","bg-pink-50/90","bg-green-50/90","bg-gray-200/90","bg-blue-50/90"),Z=mo(w,"bg-gray-200","bg-[#313244]","bg-pink-200","bg-green-200","bg-gray-400","bg-blue-200"),ee=mo(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"),te=mo(w,"bg-gray-100","bg-[#313244]","bg-pink-50","bg-green-50","bg-gray-300","bg-blue-100"),re=mo(w,"bg-blue-600","bg-blue-500","bg-pink-600","bg-green-600","bg-gray-700","bg-blue-700");/* @__PURE__ */
|
|
307
307
|
return fr("div",{className:"space-y-6",children:[s("appearance")&&/* @__PURE__ */fr(br,{children:[
|
|
308
308
|
/* @__PURE__ */yr("div",{className:"flex justify-center",children:/* @__PURE__ */yr("div",{className:"rounded-lg border border-gray-200 overflow-hidden",style:{width:480},children:/* @__PURE__ */fr("div",{className:"relative",style:{height:300},children:[S?/* @__PURE__ */yr("div",{className:"absolute inset-0",style:{backgroundColor:N}}):/* @__PURE__ */yr("img",{src:T,alt:"",className:"absolute inset-0 w-full h-full object-cover"}),
|
|
309
|
-
/* @__PURE__ */fr("div",{className:`absolute left-0 right-0 bottom-0 h-4 ${Q} border-t border-gray-200/50 flex items-center px-2 gap-1`,style:{opacity:
|
|
309
|
+
/* @__PURE__ */fr("div",{className:`absolute left-0 right-0 bottom-0 h-4 ${Q} border-t border-gray-200/50 flex items-center px-2 gap-1`,style:{opacity:G},children:[
|
|
310
310
|
/* @__PURE__ */yr("div",{className:`h-2 w-8 rounded-sm ${re}`}),
|
|
311
311
|
/* @__PURE__ */yr("div",{className:`h-2 w-6 rounded-sm ${Z}`})]}),
|
|
312
312
|
/* @__PURE__ */yr("div",{className:"absolute left-4 top-4 flex gap-4",children:[{icon:"📋",label:"Orders"},{icon:"📦",label:"Products"},{icon:"📊",label:"Reports"}].map(e=>/* @__PURE__ */fr("div",{className:"flex flex-col items-center gap-0.5 w-8",children:[
|
|
313
313
|
/* @__PURE__ */yr("div",{className:"text-sm drop-shadow",children:e.icon}),
|
|
314
314
|
/* @__PURE__ */yr("span",{className:"text-[5px] text-white font-medium drop-shadow-[0_1px_1px_rgba(0,0,0,0.8)] leading-tight",children:e.label})]},e.label))}),
|
|
315
315
|
/* @__PURE__ */fr("div",{className:`absolute rounded shadow-md ${ee}`,style:{left:"35%",top:"20%",width:"55%",height:"55%"},children:[
|
|
316
|
-
/* @__PURE__ */fr("div",{className:`h-3 rounded-t ${te} flex items-center px-1.5 gap-0.5`,style:{opacity:
|
|
316
|
+
/* @__PURE__ */fr("div",{className:`h-3 rounded-t ${te} flex items-center px-1.5 gap-0.5`,style:{opacity:q},children:[
|
|
317
317
|
/* @__PURE__ */yr("div",{className:"w-1 h-1 rounded-full bg-red-400"}),
|
|
318
318
|
/* @__PURE__ */yr("div",{className:"w-1 h-1 rounded-full bg-yellow-400"}),
|
|
319
319
|
/* @__PURE__ */yr("div",{className:"w-1 h-1 rounded-full bg-green-400"})]}),
|
|
@@ -487,7 +487,7 @@ return fr("div",{className:"space-y-4",children:[
|
|
|
487
487
|
return yr(Y,{storageKey:"shell.systemPreferences.sidebarWidth",defaultWidth:240,minWidth:200,maxWidth:360,className:r,sidebarClassName:"border-r border-gray-200 bg-gray-50",sidebar:/* @__PURE__ */yr("nav",{className:"px-1 py-1.5 space-y-0.5",children:e.map(e=>{const t=e.key===o;/* @__PURE__ */
|
|
488
488
|
return fr("button",{type:"button",onClick:()=>a(e.key),className:"w-full text-left rounded-lg px-3 py-2.5 text-sm transition-colors flex items-start gap-2.5 "+(t?"bg-blue-50 text-blue-700":"hover:bg-gray-100 text-gray-700"),children:[e.icon&&/* @__PURE__ */yr("span",{className:"mt-0.5 "+(t?"text-blue-600":"text-gray-400"),children:e.icon}),
|
|
489
489
|
/* @__PURE__ */fr("span",{className:"min-w-0",children:[
|
|
490
|
-
/* @__PURE__ */yr("span",{className:"block "+(t?"font-semibold text-blue-700":"font-medium text-gray-800"),children:e.label}),e.description&&/* @__PURE__ */yr("span",{className:"block text-[11px] text-gray-500 mt-0.5",children:e.description})]})]},e.key)})}),children:/* @__PURE__ */yr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})})}var ko;function No(e,t,r,n,o,a){const[l,i]=rr(-1),s=or(e),c=or(t),d=or(r),u=or(n),m=or(o),h=or(l),p=or(-1),g=Me(),f=or(g),y=or(a),b=or(null);s.current=e,c.current=t,d.current=r,u.current=n,m.current=o,h.current=l,f.current=g,y.current=a;const x=or(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};nr(()=>()=>clearTimeout(x.current),[]);const v=or(e.length);return nr(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),nr(()=>{let e=!1;const t=()=>{e=document.activeElement===b.current},r=t=>{const r=e&&t.target===b.current;e=!1,r||(b.current=null)},n=e=>{b.current?.contains(e.target)&&(b.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)}},[]),nr(()=>{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)},[]),nr(()=>{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,o="KeyK"===e.code||"k"===e.key||"K"===e.key||"ArrowUp"===e.key,a=e.target?.closest?.(Pe)??null;if("Enter"!==e.key&&" "!==e.key||!a||a===b.current)if(n||o){b.current=a?.closest('[aria-modal="true"], [role="menu"]')||e.defaultPrevented&&e.key.startsWith("Arrow")?null:a,e.preventDefault();const t=h.current,o=n?Math.min(t+1,r-1):Math.max(t-1,0);o!==t&&(i(o),function(e,t){requestAnimationFrame(()=>{const r=t?t.current:document,n=r?.querySelector(`[data-row-idx="${e}"]`);n?.scrollIntoView({block:"nearest"})})}(o,y.current),e.shiftKey&&d.current&&(d.current(s.current[o]),p.current=o))}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)},[]),nr(()=>{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 o="INPUT"===t.tagName&&"checkbox"===t.type?t:null,a=p.current;if(a<0){if(o)return p.current=n,void w(n);d.current?.(s.current[n])}else{const e=Math.min(a,n),t=Math.max(a,n);if(m.current)m.current(e,t),o&&(o.checked=!0);else if(d.current)for(let r=e;r<=t;r++)d.current(s.current[r])}o||e.preventDefault(),e.stopPropagation(),p.current=n,i(n)};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),l}function Co(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function So(e,t){return["react-os-shell","default-columns",e,t]}function Mo(e){const t=ir(Co,[]),r=sr(Nr)||(ko||(ko=new Cr),ko),{data:n}=vr({queryKey:So(e??"",t),queryFn:()=>Te.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&Ee(),retry:!1,staleTime:3e5,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},r);return{defaultConfig:n??void 0,viewport:t}}function _o(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 Lo(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 Eo(e,t){const{prefs:r,save:n}=ht(),o=`columns_${e}`,a=r[o],{defaultConfig:l}=Mo(e),[i,s]=rr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return Lo([...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 Lo(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=rr(null),[u,m]=rr(null),h=or(null),p=or(!1),g=or(a);g.current=a;const f=or(null),y=or(n);y.current=n;const b=ar(t=>{p.current=!0,localStorage.setItem(`col-config-${e}`,JSON.stringify(t)),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{y.current({[o]:t})},1e3)},[e,o]);nr(()=>{if(p.current||!Array.isArray(a))return;const r=new Set(a.map(e=>e.key)),n=Lo([...a.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=>_o(e,n)?e:n),localStorage.setItem(`col-config-${e}`,JSON.stringify(n))},[e,a]),nr(()=>{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),o=Lo(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:!n.has(e.key)})));s(e=>_o(e,o)?e:o),localStorage.setItem(`col-config-${e}`,JSON.stringify(o))},[e,l]);const x=or(/* @__PURE__ */new Map);nr(()=>{s(e=>function(e,t,r){const n=new Set(t.map(e=>e.key)),o=new Set(e.map(e=>e.key)),a=t.filter(e=>!o.has(e.key)),l=e.filter(e=>"_select"===e.key||n.has(e.key));if(!a.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 a){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 Lo(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=ar((e,r)=>{r.preventDefault(),r.stopPropagation();const n=w[e],o=i.findIndex(e=>e.key===n.key);h.current={idx:o,startX:r.clientX,startWidth:i[o].width};const a=e=>{if(!h.current)return;const{idx:r,startX:n,startWidth:o}=h.current,a=t.find(e=>e.key===i[r].key)?.minWidth||30,l=Math.max(a,o+e.clientX-n);s(e=>{const t=[...e];return t[r]={...t[r],width:l},t})},l=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l),h.current=null,s(e=>(b(e),e))};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)},[i,w,t,b]),k=ar(e=>{d(e)},[]),N=ar((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 o=i.filter(e=>!e.hidden);"_select"===o[0]?.key&&0===n&&(n=1),m(n)},[c,i]),C=ar((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 o;o=u<t.length?e.findIndex(e=>e.key===t[u].key):e.findIndex(e=>e.key===t[t.length-1].key)+1;const a=[...e],[l]=a.splice(n,1);return a.splice(o>n?o-1:o,0,l),b(a),a}),d(null),void m(null))),[c,u,b]),S=ar(()=>{d(null),m(null)},[]),M=ar(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:(b(r),r)})},[b]),_=ar(()=>{const e=Lo(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})));s(e),b(e)},[t,b]);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:M,resetColumns:_,draggedIdx:c,dropGap:u}}function To({tableId:e,columns:t,sort:r,onSort:n,footer:o,afterBody:a,saveDefaultPerms:l=["change_numberingconfig"],children:i}){const s=pt(),[c,d]=rr(!1),u=ir(()=>s&&!c?t.filter(e=>"_select"!==e.key):t,[t,s,c]),{orderedColumns:m,allColumns:h,onResizeStart:p,onDragStart:g,onDragOver:f,onDrop:y,onDragEnd:b,toggleColumn:x,resetColumns:w,draggedIdx:v,dropGap:k}=Eo(e,u),{hasAnyPerm:N}=
|
|
490
|
+
/* @__PURE__ */yr("span",{className:"block "+(t?"font-semibold text-blue-700":"font-medium text-gray-800"),children:e.label}),e.description&&/* @__PURE__ */yr("span",{className:"block text-[11px] text-gray-500 mt-0.5",children:e.description})]})]},e.key)})}),children:/* @__PURE__ */yr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})})}var ko;function No(e,t,r,n,o,a){const[l,i]=rr(-1),s=or(e),c=or(t),d=or(r),u=or(n),m=or(o),h=or(l),p=or(-1),g=Me(),f=or(g),y=or(a),b=or(null);s.current=e,c.current=t,d.current=r,u.current=n,m.current=o,h.current=l,f.current=g,y.current=a;const x=or(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};nr(()=>()=>clearTimeout(x.current),[]);const v=or(e.length);return nr(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),nr(()=>{let e=!1;const t=()=>{e=document.activeElement===b.current},r=t=>{const r=e&&t.target===b.current;e=!1,r||(b.current=null)},n=e=>{b.current?.contains(e.target)&&(b.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)}},[]),nr(()=>{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)},[]),nr(()=>{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,o="KeyK"===e.code||"k"===e.key||"K"===e.key||"ArrowUp"===e.key,a=e.target?.closest?.(Pe)??null;if("Enter"!==e.key&&" "!==e.key||!a||a===b.current)if(n||o){b.current=a?.closest('[aria-modal="true"], [role="menu"]')||e.defaultPrevented&&e.key.startsWith("Arrow")?null:a,e.preventDefault();const t=h.current,o=n?Math.min(t+1,r-1):Math.max(t-1,0);o!==t&&(i(o),function(e,t){requestAnimationFrame(()=>{const r=t?t.current:document,n=r?.querySelector(`[data-row-idx="${e}"]`);n?.scrollIntoView({block:"nearest"})})}(o,y.current),e.shiftKey&&d.current&&(d.current(s.current[o]),p.current=o))}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)},[]),nr(()=>{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 o="INPUT"===t.tagName&&"checkbox"===t.type?t:null,a=p.current;if(a<0){if(o)return p.current=n,void w(n);d.current?.(s.current[n])}else{const e=Math.min(a,n),t=Math.max(a,n);if(m.current)m.current(e,t),o&&(o.checked=!0);else if(d.current)for(let r=e;r<=t;r++)d.current(s.current[r])}o||e.preventDefault(),e.stopPropagation(),p.current=n,i(n)};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),l}function Co(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function So(e,t){return["react-os-shell","default-columns",e,t]}function Mo(e){const t=ir(Co,[]),r=sr(Nr)||(ko||(ko=new Cr),ko),{data:n}=vr({queryKey:So(e??"",t),queryFn:()=>Te.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&Ee(),retry:!1,staleTime:3e5,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},r);return{defaultConfig:n??void 0,viewport:t}}function _o(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 Lo(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 Eo(e,t){const{prefs:r,save:n}=ht(),o=`columns_${e}`,a=r[o],{defaultConfig:l}=Mo(e),[i,s]=rr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return Lo([...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 Lo(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=rr(null),[u,m]=rr(null),h=or(null),p=or(!1),g=or(a);g.current=a;const f=or(null),y=or(n);y.current=n;const b=ar(t=>{p.current=!0,localStorage.setItem(`col-config-${e}`,JSON.stringify(t)),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{y.current({[o]:t})},1e3)},[e,o]);nr(()=>{if(p.current||!Array.isArray(a))return;const r=new Set(a.map(e=>e.key)),n=Lo([...a.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=>_o(e,n)?e:n),localStorage.setItem(`col-config-${e}`,JSON.stringify(n))},[e,a]),nr(()=>{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),o=Lo(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:!n.has(e.key)})));s(e=>_o(e,o)?e:o),localStorage.setItem(`col-config-${e}`,JSON.stringify(o))},[e,l]);const x=or(/* @__PURE__ */new Map);nr(()=>{s(e=>function(e,t,r){const n=new Set(t.map(e=>e.key)),o=new Set(e.map(e=>e.key)),a=t.filter(e=>!o.has(e.key)),l=e.filter(e=>"_select"===e.key||n.has(e.key));if(!a.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 a){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 Lo(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=ar((e,r)=>{r.preventDefault(),r.stopPropagation();const n=w[e],o=i.findIndex(e=>e.key===n.key);h.current={idx:o,startX:r.clientX,startWidth:i[o].width};const a=e=>{if(!h.current)return;const{idx:r,startX:n,startWidth:o}=h.current,a=t.find(e=>e.key===i[r].key)?.minWidth||30,l=Math.max(a,o+e.clientX-n);s(e=>{const t=[...e];return t[r]={...t[r],width:l},t})},l=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",l),h.current=null,s(e=>(b(e),e))};document.addEventListener("mousemove",a),document.addEventListener("mouseup",l)},[i,w,t,b]),k=ar(e=>{d(e)},[]),N=ar((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 o=i.filter(e=>!e.hidden);"_select"===o[0]?.key&&0===n&&(n=1),m(n)},[c,i]),C=ar((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 o;o=u<t.length?e.findIndex(e=>e.key===t[u].key):e.findIndex(e=>e.key===t[t.length-1].key)+1;const a=[...e],[l]=a.splice(n,1);return a.splice(o>n?o-1:o,0,l),b(a),a}),d(null),void m(null))),[c,u,b]),S=ar(()=>{d(null),m(null)},[]),M=ar(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:(b(r),r)})},[b]),_=ar(()=>{const e=Lo(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})));s(e),b(e)},[t,b]);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:M,resetColumns:_,draggedIdx:c,dropGap:u}}function To({tableId:e,columns:t,sort:r,onSort:n,footer:o,afterBody:a,saveDefaultPerms:l=["change_numberingconfig"],children:i}){const s=pt(),[c,d]=rr(!1),u=ir(()=>s&&!c?t.filter(e=>"_select"!==e.key):t,[t,s,c]),{orderedColumns:m,allColumns:h,onResizeStart:p,onDragStart:g,onDragOver:f,onDrop:y,onDragEnd:b,toggleColumn:x,resetColumns:w,draggedIdx:v,dropGap:k}=Eo(e,u),{hasAnyPerm:N}=qe(),C=Ht().columns,[S,M]=rr(!1),[_,L]=rr(!1),[E,T]=rr(!1),P=or(null),I=l.length>0&&N(l);A(P,ar(()=>{S&&M(!1)},[S]));const D=m.reduce((e,t)=>e+t.width,0),$=m.map(e=>`${e.width}px`),j={tableLayout:"fixed",width:D,minWidth:"100%"},R=or(null),W=ar(e=>{const t=R.current;t&&(t.scrollLeft=e.currentTarget.scrollLeft)},[]),B=ir(()=>t.some(e=>"_select"===e.key),[t]);/* @__PURE__ */
|
|
491
491
|
return fr("div",{className:"flex flex-col flex-1 min-h-0 "+(s?"-mx-4":""),children:[
|
|
492
492
|
/* @__PURE__ */yr("div",{ref:R,className:"shrink-0 overflow-x-hidden",children:/* @__PURE__ */fr("table",{className:"divide-y divide-gray-200",style:j,children:[
|
|
493
493
|
/* @__PURE__ */yr("colgroup",{children:m.map((e,t)=>/* @__PURE__ */yr("col",{style:{width:$[t]}},e.key))}),
|
|
@@ -503,7 +503,7 @@ return fr("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500
|
|
|
503
503
|
/* @__PURE__ */yr("button",{onClick:()=>M(!S),className:"text-gray-400 hover:text-gray-600",title:C.choose,children:/* @__PURE__ */yr("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",strokeWidth:"1.5",viewBox:"0 0 24 24",children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 11-3 0m3 0a1.5 1.5 0 10-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-9.75 0h9.75"})})}),S&&/* @__PURE__ */fr("div",{className:"absolute bottom-full right-0 mb-1 w-52 rounded-(--radius-popup) z-50 py-1 max-h-80 overflow-y-auto",style:jt(),children:[
|
|
504
504
|
/* @__PURE__ */yr("p",{className:"px-3 py-1.5 text-[10px] font-semibold text-gray-400 uppercase",children:C.heading}),h.filter(e=>"_select"!==e.key).map(e=>/* @__PURE__ */fr("label",{className:"flex items-center gap-2 px-3 py-1 text-sm text-gray-700 hover:bg-gray-50 cursor-pointer",children:[
|
|
505
505
|
/* @__PURE__ */yr("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__ */yr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */yr("button",{onClick:async()=>{L(!0);const t=h.filter(e=>!e.hidden).map(e=>e.key),n=s?"mobile":"desktop",o={visible_columns:t};r&&(o.sort=r);try{await Te.patch(`/auth/default-columns/${e}/`,o,{params:{viewport:n}}).catch(()=>Te.post("/auth/default-columns/",{table_id:e,viewport:n,...o})),T(!0),setTimeout(()=>T(!1),2e3)}catch{}L(!1)},disabled:_,className:"text-[10px] w-full text-center py-1 rounded "+(E?"text-green-600":"text-gray-500 hover:text-blue-600"),children:_?"...":E?C.savedDefault:C.saveDefault})})]})]})]})]})}function Po(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function Io(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Do(e){const{items:t,isLoading:r,emptyState:n,totalCount:o,isError:a,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:y,onRowHover:b,getRowClassName:x,footerLabel:w,footerExtra:v,sentinelRef:k,isFetchingNextPage:N,saveDefaultPerms:C,exportEndpoint:S,exportFilename:M="export.csv",contextActions:_}=e,[L,E]=rr(null),T=or(null),P=Ht(),I=P.entityList,D=e=>{f(t=>{const r=new Set(t),n=m(e);return r.has(n)?r.delete(n):r.add(n),r})},$=()=>{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=No(t,y,D,$,(e,r)=>{f(n=>{const o=new Set(n);for(let n=e;n<=r;n++)o.add(m(t[n]));return o})},T),F=t.filter(e=>g.has(m(e))),z=()=>{const e=[...T.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?Po(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=>Po(e).map(Io))}},O=()=>{E(null);const{header:e,body:t}=z();if(!t.length)return;const r=[e,...t].map(e=>e.join("\t")).join("\n"),n="<table><thead><tr>"+e.map(e=>`<th>${le(e)}</th>`).join("")+"</tr></thead><tbody>"+t.map(e=>`<tr>${e.map(e=>`<td>${le(e)}</td>`).join("")}</tr>`).join("")+"</tbody></table>";B(I.copiedRows(t.length),r,n)},H=async()=>{E(null);const e=F.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 Te.get(`${S}${n}${t}`,{responseType:"blob"}),o=window.URL.createObjectURL(new Blob([r.data],{type:"text/csv"})),a=document.createElement("a");a.href=o,a.download=M,a.click(),window.URL.revokeObjectURL(o);const l=r.headers??{},i=Number(l["x-row-count"]);if("true"===String(l["x-truncated"]))return void Ze.notify(Number.isFinite(i)?I.exportTruncated(i,e.length):I.exportTruncatedUnknown(e.length));Ze.success(I.exported(e.length))}catch{Ze.error(I.exportFailed)}};if(r)/* @__PURE__ */return yr(_e,{});if(a&&0===t.length)/* @__PURE__ */
|
|
506
|
-
return yr(j,{title:i,message:s,onRetry:l});if(0===t.length)/* @__PURE__ */return yr(br,{children:n});const K=t.length>0&&F.length===t.length,X=F.length>0&&!K,U=g.size-F.length,Y=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */yr(R,{"aria-label":P.table.selectAll,checked:K,indeterminate:X,onChange:$,style:{height:14,width:14}})},...d],
|
|
506
|
+
return yr(j,{title:i,message:s,onRetry:l});if(0===t.length)/* @__PURE__ */return yr(br,{children:n});const K=t.length>0&&F.length===t.length,X=F.length>0&&!K,U=g.size-F.length,Y=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */yr(R,{"aria-label":P.table.selectAll,checked:K,indeterminate:X,onChange:$,style:{height:14,width:14}})},...d],G=/* @__PURE__ */yr(W,{selectedCount:F.length,hiddenSelectedCount:U,loadedCount:t.length,totalCount:o,label:w,isFetchingMore:N,extra:v}),q=k?/* @__PURE__ */fr(br,{children:[
|
|
507
507
|
/* @__PURE__ */yr("div",{ref:k}),N&&/* @__PURE__ */yr("div",{className:"text-center py-3",children:/* @__PURE__ */yr("span",{className:"text-sm text-gray-500",children:P.list.loadingMore})})]}):void 0;let J=null;if(L){const{x:e,y:r,item:n,text:a,firstColumn:i}=L,s=_?_(F):[],c=F.length,d=()=>E(null),u=void 0!==o&&o>t.length;J=/* @__PURE__ */fr(kt,{portal:!0,style:{left:e,top:r},onClose:d,minWidth:210,children:[
|
|
508
508
|
/* @__PURE__ */yr(Nt,{children:U>0?P.list.selectedNotShown(c,U):P.list.selected(c)}),
|
|
509
509
|
/* @__PURE__ */yr(Ct,{className:"font-medium",onClick:()=>{d(),y(n)},children:I.open}),
|
|
@@ -513,7 +513,7 @@ return yr(j,{title:i,message:s,onRetry:l});if(0===t.length)/* @__PURE__ */return
|
|
|
513
513
|
/* @__PURE__ */yr(vt,{}),!K&&/* @__PURE__ */yr(Ct,{onClick:()=>{d(),f(e=>/* @__PURE__ */new Set([...e,...t.map(m)]))},children:u?I.selectAllLoaded(t.length):I.selectAll}),
|
|
514
514
|
/* @__PURE__ */yr(Ct,{onClick:()=>{d(),f(/* @__PURE__ */new Set)},children:I.clearSelection}),l&&/* @__PURE__ */yr(Ct,{onClick:()=>{d(),l()},children:I.refresh})]})}/* @__PURE__ */
|
|
515
515
|
return fr("div",{className:"flex-1 flex flex-col mb-1 bg-white rounded-lg shadow overflow-hidden",children:[
|
|
516
|
-
/* @__PURE__ */yr("div",{className:"flex-1 min-h-0 flex flex-col",children:/* @__PURE__ */yr(To,{tableId:c,columns:Y,sort:h,onSort:p,footer:
|
|
516
|
+
/* @__PURE__ */yr("div",{className:"flex-1 min-h-0 flex flex-col",children:/* @__PURE__ */yr(To,{tableId:c,columns:Y,sort:h,onSort:p,footer:G,afterBody:q,saveDefaultPerms:C,children:e=>/* @__PURE__ */yr("tbody",{ref:T,className:"divide-y divide-gray-100",children:t.map((t,r)=>{const n=m(t);/* @__PURE__ */
|
|
517
517
|
return yr("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:()=>y(t),onContextMenu:e=>((e,t)=>{if(e.shiftKey||Mt(e.target))return;e.preventDefault();const r=m(t);g.has(r)||f(/* @__PURE__ */new Set([r]));const n=Po(e.currentTarget)[0]?.dataset.colKey,o=n?d.find(e=>e.key===n)?.label:void 0;E({x:e.clientX,y:e.clientY,item:t,text:V(e.target),firstColumn:n&&o?{key:n,label:o}:null})})(e,t),onMouseEnter:b?()=>b(t):void 0,children:e.map(e=>/* @__PURE__ */yr("td",{"data-col-key":e.key,className:"px-4 py-3 whitespace-nowrap text-sm overflow-hidden",children:"_select"===e.key?/* @__PURE__ */yr(R,{"aria-label":P.table.selectRow,checked:g.has(n),onChange:()=>D(t),onClick:e=>e.stopPropagation(),style:{height:14,width:14}}):u(t,e.key)},e.key))},n)})})})}),J]})}function $o({queryKey:e,fetchFn:t,extraParams:r={},pageSize:n=25}){const o=or(null),a=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),l=kr({queryKey:e,queryFn:({pageParam:e=1})=>t({page:String(e),...a}),getNextPageParam:(e,t)=>{if(e.next)return t.length+1},initialPageParam:1}),{fetchNextPage:i,hasNextPage:s,isFetchingNextPage:c}=l,d=ar(e=>{const[t]=e;t.isIntersecting&&s&&!c&&i()},[i,s,c]);nr(()=>{const e=o.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:o,refetch:l.refetch}}function Ao(e){const t=e;return!!t&&"string"==typeof t.field&&t.field.length>0&&("asc"===t.direction||"desc"===t.direction)}function jo(e,t="asc",r,n){const{prefs:o,save:a}=ht(),l=r?`sort_${r}`:null,[i,s]=rr(()=>{if(l){if(Ao(o[l]))return o[l];try{const e=JSON.parse(localStorage.getItem(`sort-config-${r}`)||"null");if(Ao(e))return e}catch{}}return{field:e,direction:t}}),c=or(!1),d=l?o[l]:void 0,u=or(d);u.current=d,nr(()=>{if(!c.current&&Ao(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}=Mo(r);nr(()=>{const e=m?.sort;if(!c.current&&!Ao(u.current)&&Ao(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{}a({[l]:t})}},ordering:g}}function Ro({filters:e,values:t,onChange:r,onClear:n,children:o}){const a=Object.values(t).filter(Boolean).length;/* @__PURE__ */
|
|
518
518
|
return fr("div",{className:"flex items-center gap-3 flex-wrap",children:[e.map(e=>{const n=e.searchable??e.options.length>8;/* @__PURE__ */
|
|
519
519
|
return yr(n?Bo:Wo,{filter:e,value:t[e.field]||"",onChange:t=>r(e.field,t)},e.field)}),o,a>0&&/* @__PURE__ */fr("button",{onClick:n,className:"flex items-center gap-1 text-sm text-gray-500 hover:text-gray-700",children:[
|
|
@@ -528,7 +528,7 @@ return fr("div",{ref:i,className:"relative",children:[
|
|
|
528
528
|
/* @__PURE__ */yr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r(""),l("")},className:"cursor-pointer text-blue-400 hover:text-blue-600",children:/* @__PURE__ */yr(Qt,{name:"close",fallback:Sr,className:"h-3.5 w-3.5"})}):/* @__PURE__ */yr("svg",{className:"h-3.5 w-3.5 text-gray-400 transition-transform "+(n?"rotate-180":""),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 8.25l-7.5 7.5-7.5-7.5"})})]}),n&&/* @__PURE__ */fr("div",{className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-[400] overflow-hidden",style:jt(),children:[
|
|
529
529
|
/* @__PURE__ */yr("div",{className:"p-1.5 border-b border-gray-100",children:/* @__PURE__ */yr("input",{ref:s,value:a,onChange:e=>l(e.target.value),placeholder:`Search ${e.label.replace(/^All\s*/i,"").toLowerCase()}...`,className:"w-full rounded-md border border-gray-200 px-2.5 py-1.5 text-sm focus:border-blue-400 focus:ring-0 outline-none"})}),
|
|
530
530
|
/* @__PURE__ */fr("div",{className:"max-h-52 overflow-y-auto",children:[
|
|
531
|
-
/* @__PURE__ */yr("button",{onClick:()=>{r(""),o(!1),l("")},className:"w-full text-left px-3 py-1.5 text-sm hover:bg-gray-50 "+(t?"text-gray-600":"text-blue-600 font-medium bg-blue-50/50"),children:e.label}),0===d.length?/* @__PURE__ */yr("p",{className:"px-3 py-3 text-sm text-gray-400 text-center",children:"No matches"}):d.map(e=>/* @__PURE__ */yr("button",{onClick:()=>{r(e.value),o(!1),l("")},className:"w-full text-left px-3 py-1.5 text-sm hover:bg-gray-50 truncate "+(t===e.value?"text-blue-600 font-medium bg-blue-50/50":"text-gray-700"),children:e.label},e.value))]})]})]})}function Fo(){const[e,t]=rr({}),r={};for(const[t,n]of Object.entries(e))n&&(r[t]=n);return{filterValues:e,setFilter:(e,r)=>{t(t=>{const n={...t};return r?n[e]=r:delete n[e],n})},clearFilters:()=>t({}),filterParams:r}}var zo=e=>e>0?`${e.toFixed(0)} fps`:"stalled";function Oo(e){const{summary:t,message:r,verdict:n,environment:o}=e,a=[`Performance report — ${n}`,""];a.push(r.trim()||"(No description given.)",""),a.push(`Machine: ${xn(o)}`);const l=o.network;l?.effectiveType&&"4g"!==l.effectiveType&&a.push(`Connection: ${l.effectiveType}${l.rttMs?` · ${l.rttMs} ms round trip`:""}`),a.push(""),a.push(`Median ${zo(t.medianFps)} over ${(e=>{const t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.round(t/60)}m`})(t.durationMs)} (${t.samples} samples), worst frame ${t.worstFrameMs.toFixed(0)} ms.`);const i=t.byActivity.slice(0,3);i.length&&a.push(`Slowest while: ${i.map(e=>`${e.kind} ${zo(e.medianFps)} (worst ${e.worstMs.toFixed(0)} ms)`).join(" · ")}`);const s=t.worstMenus[0];s&&a.push(`Slowest menu: ${s.key} — ${zo(s.medianFps)}`);const c=t.worstWindows[0];return c&&a.push(`Slowest window: ${c.key} — ${zo(c.medianFps)}`),t.idle&&t.interacting&&a.push(`At rest ${zo(t.idle.medianFps)} vs in use ${zo(t.interacting.medianFps)}.`),a.push("",`Full log attached as ${e.filename}.`),a.join("\n")}function Ho(e){return new File([e.json],e.filename,{type:"application/json"})}function Vo(e,t){const r=/* @__PURE__ */new Map;e.forEach((e,n)=>{const o=e[t],a="string"==typeof o?o.trim():"";if(!a)return;const l=a.toUpperCase(),i=r.get(l);i?i.rowIndices.push(n):r.set(l,{key:a,rowIndices:[n]})});const n=[];for(const e of r.values())e.rowIndices.length>=2&&n.push(e);return n}function Ko(e,t){const r={};for(const[n,o]of Object.entries(t)){const t=e[n],a="string"==typeof t?t.trim():"";""!==a&&(r[o]=a)}return r}function Xo(e){const{rows:t,existing:r,fieldMap:n,newItem:o,keyField:a="part_number"}=e,l=Object.entries(n).find(([,e])=>e===a);if(!l)throw new Error(`mergeBulkItems: fieldMap must map a row column to "${a}"`);const i=l[0],s=t.filter(e=>(e[i]??"").trim());if(0===s.length)return{merged:r,importedCount:0};const c=/* @__PURE__ */new Map;r.forEach((e,t)=>{const r=e[a];"string"==typeof r&&r.trim()&&c.set(r.toUpperCase(),t)});const d=[...r],u=[];for(const e of s){const t=Ko(e,n),r=t[a];if(!r)continue;const l=c.get(r.toUpperCase());void 0!==l?d[l]={...d[l],...t}:u.push({...o(t),_isNew:!0})}return{merged:[...d,...u],importedCount:s.length}}function Uo(e){return e?e.replace(/[$¥¥€£,\s]/g,""):""}function Yo(e){if(e.includes("\t"))return e.split("\t").map(e=>e.trim());const t=[];let r="",n=!1;for(const o of e)'"'!==o?","!==o||n?r+=o:(t.push(r.trim()),r=""):n=!n;return t.push(r.trim()),t}function
|
|
531
|
+
/* @__PURE__ */yr("button",{onClick:()=>{r(""),o(!1),l("")},className:"w-full text-left px-3 py-1.5 text-sm hover:bg-gray-50 "+(t?"text-gray-600":"text-blue-600 font-medium bg-blue-50/50"),children:e.label}),0===d.length?/* @__PURE__ */yr("p",{className:"px-3 py-3 text-sm text-gray-400 text-center",children:"No matches"}):d.map(e=>/* @__PURE__ */yr("button",{onClick:()=>{r(e.value),o(!1),l("")},className:"w-full text-left px-3 py-1.5 text-sm hover:bg-gray-50 truncate "+(t===e.value?"text-blue-600 font-medium bg-blue-50/50":"text-gray-700"),children:e.label},e.value))]})]})]})}function Fo(){const[e,t]=rr({}),r={};for(const[t,n]of Object.entries(e))n&&(r[t]=n);return{filterValues:e,setFilter:(e,r)=>{t(t=>{const n={...t};return r?n[e]=r:delete n[e],n})},clearFilters:()=>t({}),filterParams:r}}var zo=e=>e>0?`${e.toFixed(0)} fps`:"stalled";function Oo(e){const{summary:t,message:r,verdict:n,environment:o}=e,a=[`Performance report — ${n}`,""];a.push(r.trim()||"(No description given.)",""),a.push(`Machine: ${xn(o)}`);const l=o.network;l?.effectiveType&&"4g"!==l.effectiveType&&a.push(`Connection: ${l.effectiveType}${l.rttMs?` · ${l.rttMs} ms round trip`:""}`),a.push(""),a.push(`Median ${zo(t.medianFps)} over ${(e=>{const t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.round(t/60)}m`})(t.durationMs)} (${t.samples} samples), worst frame ${t.worstFrameMs.toFixed(0)} ms.`);const i=t.byActivity.slice(0,3);i.length&&a.push(`Slowest while: ${i.map(e=>`${e.kind} ${zo(e.medianFps)} (worst ${e.worstMs.toFixed(0)} ms)`).join(" · ")}`);const s=t.worstMenus[0];s&&a.push(`Slowest menu: ${s.key} — ${zo(s.medianFps)}`);const c=t.worstWindows[0];return c&&a.push(`Slowest window: ${c.key} — ${zo(c.medianFps)}`),t.idle&&t.interacting&&a.push(`At rest ${zo(t.idle.medianFps)} vs in use ${zo(t.interacting.medianFps)}.`),a.push("",`Full log attached as ${e.filename}.`),a.join("\n")}function Ho(e){return new File([e.json],e.filename,{type:"application/json"})}function Vo(e,t){const r=/* @__PURE__ */new Map;e.forEach((e,n)=>{const o=e[t],a="string"==typeof o?o.trim():"";if(!a)return;const l=a.toUpperCase(),i=r.get(l);i?i.rowIndices.push(n):r.set(l,{key:a,rowIndices:[n]})});const n=[];for(const e of r.values())e.rowIndices.length>=2&&n.push(e);return n}function Ko(e,t){const r={};for(const[n,o]of Object.entries(t)){const t=e[n],a="string"==typeof t?t.trim():"";""!==a&&(r[o]=a)}return r}function Xo(e){const{rows:t,existing:r,fieldMap:n,newItem:o,keyField:a="part_number"}=e,l=Object.entries(n).find(([,e])=>e===a);if(!l)throw new Error(`mergeBulkItems: fieldMap must map a row column to "${a}"`);const i=l[0],s=t.filter(e=>(e[i]??"").trim());if(0===s.length)return{merged:r,importedCount:0};const c=/* @__PURE__ */new Map;r.forEach((e,t)=>{const r=e[a];"string"==typeof r&&r.trim()&&c.set(r.toUpperCase(),t)});const d=[...r],u=[];for(const e of s){const t=Ko(e,n),r=t[a];if(!r)continue;const l=c.get(r.toUpperCase());void 0!==l?d[l]={...d[l],...t}:u.push({...o(t),_isNew:!0})}return{merged:[...d,...u],importedCount:s.length}}function Uo(e){return e?e.replace(/[$¥¥€£,\s]/g,""):""}function Yo(e){if(e.includes("\t"))return e.split("\t").map(e=>e.trim());const t=[];let r="",n=!1;for(const o of e)'"'!==o?","!==o||n?r+=o:(t.push(r.trim()),r=""):n=!n;return t.push(r.trim()),t}function Go(e,t){return 0===t?"key":e.kind??"text"}function qo(e){const t=e.filter(e=>e.trim());if(0===t.length)return"skip";if(e.every(e=>!e.trim()||/^\d+$/.test(e.trim()))){const e=t.map(e=>parseInt(e));if(e.length>2&&e.every((t,r)=>0===r||t>=e[r-1]))return"skip"}const r=t.some(e=>/[a-zA-Z]/.test(e)),n=t.some(e=>/\$/.test(e)),o=t.filter(e=>/\.\d{2}$/.test(Uo(e))).length>.5*t.length,a=t.every(e=>/^\d+$/.test(Uo(e)));if(r&&!n)return"key";if(n)return"price";if(o)return"price";if(a){return t.reduce((e,t)=>e+parseInt(Uo(t)),0)/t.length>10?"qty":"skip"}return"key"}function Jo(e,t){if(0===e.length||0===e[0].length)return null;const r=e[0].length,n=t.map((e,t)=>Go(e,t)),o=[];for(let t=0;t<r;t++){const r=e.map(e=>e[t]||"");o.push(qo(r))}const a=new Array(t.length).fill(-1),l=/* @__PURE__ */new Set;for(let e=0;e<t.length;e++){const t=n[e];if("text"!==t)for(let n=0;n<r;n++)if(!l.has(n)&&o[n]===t){a[e]=n,l.add(n);break}}const i=n.map((e,t)=>({i:t,k:e})).filter(e=>"price"===e.k),s=o.map((e,t)=>({i:t,type:e})).filter(e=>"price"===e.type&&!l.has(e.i));let c=0;for(const e of i)-1===a[e.i]&&c<s.length&&(a[e.i]=s[c].i,l.add(s[c].i),c++);return-1===a[0]?null:a}function Qo({csvPreview:e,targetColumns:t,onConfirm:r,onCancel:n}){const o=Jo(e,t),[a,l]=rr(o||new Array(t.length).fill(-1)),i=e[0]?.length||0,s=Ht().bulkImport,c=a[0]>=0;/* @__PURE__ */
|
|
532
532
|
return fr("div",{className:"border border-blue-200 rounded-lg bg-blue-50 p-4 mb-3",children:[
|
|
533
533
|
/* @__PURE__ */yr("p",{className:"text-sm font-medium text-gray-800 mb-3",children:s.mapTitle}),
|
|
534
534
|
/* @__PURE__ */yr("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 mb-4",children:t.map((t,r)=>/* @__PURE__ */fr("div",{className:"flex items-center gap-2",children:[
|
|
@@ -578,15 +578,15 @@ return fr("td",{className:"px-2 py-1 font-mono text-gray-700",children:[n.length
|
|
|
578
578
|
/* @__PURE__ */yr("span",{className:"text-xs text-gray-600",children:i.mergeSummary(l,t.length)}),
|
|
579
579
|
/* @__PURE__ */fr("div",{className:"flex gap-2",children:[
|
|
580
580
|
/* @__PURE__ */yr(We,{onClick:o,className:"text-sm text-gray-500 hover:text-gray-700",children:i.cancel}),
|
|
581
|
-
/* @__PURE__ */yr("button",{type:"button",onClick:n,className:"bg-blue-600 text-white px-3 py-1.5 text-sm font-medium rounded-lg hover:bg-blue-700",children:i.proceed})]})]})]})}function ta({columns:e,onImport:t,description:r,mergeDuplicates:n=!1}){const[o,a]=rr(()=>Array.from({length:15},()=>Array(e.length).fill(""))),[l,i]=rr(!1),[s,c]=rr(""),[d,u]=rr(null),[m,h]=rr(null),[p,g]=rr(null),f=e.length,y=e[0]?.title?.replace(" *","")||"",b=Ht().bulkImport,x=Vt(),w=o.filter(e=>e[0]?.trim()),v=w.length,k={};for(let t=1;t<e.length;t++){if("text"===
|
|
581
|
+
/* @__PURE__ */yr("button",{type:"button",onClick:n,className:"bg-blue-600 text-white px-3 py-1.5 text-sm font-medium rounded-lg hover:bg-blue-700",children:i.proceed})]})]})]})}function ta({columns:e,onImport:t,description:r,mergeDuplicates:n=!1}){const[o,a]=rr(()=>Array.from({length:15},()=>Array(e.length).fill(""))),[l,i]=rr(!1),[s,c]=rr(""),[d,u]=rr(null),[m,h]=rr(null),[p,g]=rr(null),f=e.length,y=e[0]?.title?.replace(" *","")||"",b=Ht().bulkImport,x=Vt(),w=o.filter(e=>e[0]?.trim()),v=w.length,k={};for(let t=1;t<e.length;t++){if("text"===Go(e[t],t))continue;let r=0;for(const e of w){const n=parseFloat(Uo(e[t]||""));isNaN(n)||(r+=n)}r>0&&(k[e[t].key]=r)}const N=e.map(e=>({key:e.key,title:e.title,width:e.width})),C=ar(t=>{const r=t.map(t=>{const r=[...t];for(;r.length<f;)r.push("");return r.slice(0,f).map((t,r)=>{const n=Go(e[r],r);return"price"===n||"qty"===n?Uo(t):t})});for(;r.length<15;)r.push(Array(f).fill(""));a(oe(r,f))},[f,e]),S=zt({accept:".csv,.tsv,.txt",acceptHint:"CSV · TSV · TXT",multiple:!1,onAccept:([t])=>(t=>{const r=new FileReader;r.onload=t=>{const r=(t.target?.result||"").split("\n").map(e=>e.trim()).filter(Boolean).map(Yo);if(0===r.length)return;const n=Jo(r,e);if(n){const t=r.map(t=>e.map((e,r)=>n[r]>=0&&t[n[r]]||""));C(t)}else u(r)},r.readAsText(t)})(t)}),M=async e=>{i(!0);try{await t(e)}catch{c(b.importFailed)}i(!1)},_=r||b.description;/* @__PURE__ */
|
|
582
582
|
return fr("div",{...S.zoneProps,className:["border rounded-lg bg-gray-50 mb-3 overflow-hidden transition-colors",S.dragOver?"border-dashed border-blue-500 bg-blue-50":"border-gray-200"].join(" "),children:[
|
|
583
583
|
/* @__PURE__ */fr("div",{className:"px-4 pt-3 pb-2 flex items-center justify-between",children:[
|
|
584
584
|
/* @__PURE__ */fr("p",{className:"text-xs text-gray-500",children:[_,
|
|
585
|
-
/* @__PURE__ */fr("span",{className:"text-gray-400 ml-1",children:["(",b.lines(v),Object.keys(k).length>0&&" · ",Object.entries(k).map(([t,r])=>{const n=e.find(e=>e.key===t),o=n?.title?.replace(" *","")||t,a=!!n&&"price"===
|
|
585
|
+
/* @__PURE__ */fr("span",{className:"text-gray-400 ml-1",children:["(",b.lines(v),Object.keys(k).length>0&&" · ",Object.entries(k).map(([t,r])=>{const n=e.find(e=>e.key===t),o=n?.title?.replace(" *","")||t,a=!!n&&"price"===Go(n,e.indexOf(n));return b.total(o,a?r.toLocaleString(x,{minimumFractionDigits:2,maximumFractionDigits:2}):Kt(r,x))}).join(" · "),")"]})]}),
|
|
586
586
|
/* @__PURE__ */fr("div",{className:"flex items-center gap-2",children:[v>0&&/* @__PURE__ */yr("button",{type:"button",onClick:()=>{a(Array.from({length:15},()=>Array(f).fill("")))},className:"text-gray-400 hover:text-gray-600 text-xs",children:b.clear}),
|
|
587
587
|
/* @__PURE__ */yr("input",{...S.inputProps}),
|
|
588
588
|
/* @__PURE__ */yr("button",{type:"button",onClick:S.open,className:"text-blue-600 border border-blue-200 bg-white px-3 py-1.5 text-sm font-medium rounded-lg hover:bg-blue-50 hover:border-blue-300",children:b.upload}),
|
|
589
|
-
/* @__PURE__ */yr("button",{type:"button",onClick:async()=>{const t=o.filter(e=>e[0]?.trim()).map(t=>{const r={};return e.forEach((e,n)=>{const o=t[n]?.trim()||"",a=
|
|
589
|
+
/* @__PURE__ */yr("button",{type:"button",onClick:async()=>{const t=o.filter(e=>e[0]?.trim()).map(t=>{const r={};return e.forEach((e,n)=>{const o=t[n]?.trim()||"",a=Go(e,n);r[e.key]="price"===a||"qty"===a?Uo(o):o}),r});if(0===t.length)return void c(b.enterAtLeastOne(y.toLowerCase(),y));c("");const r=Vo(t,e[0].key);if(r.length>0)if(n)g({rows:t,groups:r});else{const e={};for(const t of r)e[t.key.toUpperCase()]="first";h({rows:t,groups:r,resolutions:e})}else await M(t)},disabled:l||0===v,className:"text-green-600 border border-green-200 bg-white px-3 py-1.5 text-sm font-medium rounded-lg hover:bg-green-50 hover:border-green-300 disabled:opacity-50",children:l?b.importing:b.importLines(v)})]})]}),d&&/* @__PURE__ */yr("div",{className:"px-4 pb-2",children:/* @__PURE__ */yr(Qo,{csvPreview:d,targetColumns:e,onConfirm:t=>{if(!d)return;const r=d.map(r=>e.map((e,n)=>t[n]>=0&&r[t[n]]||""));C(r),u(null)},onCancel:()=>u(null)})}),m&&/* @__PURE__ */yr("div",{className:"px-4 pb-2",children:/* @__PURE__ */yr(Zo,{rows:m.rows,groups:m.groups,columns:e,resolutions:m.resolutions,onResolutionChange:(e,t)=>h(r=>r?{...r,resolutions:{...r.resolutions,[e]:t}}:r),onConfirm:async()=>{if(!m)return;const{rows:e,groups:t,resolutions:r}=m,n=/* @__PURE__ */new Set;for(const e of t){const t=r[e.key.toUpperCase()]||"first",o=e.rowIndices;if("first"===t)for(let e=1;e<o.length;e++)n.add(o[e]);else if("last"===t)for(let e=0;e<o.length-1;e++)n.add(o[e]);else if("skip"===t)for(const e of o)n.add(e)}const o=e.filter((e,t)=>!n.has(t));h(null),0!==o.length?await M(o):c(b.allSkipped)},onCancel:()=>h(null)})}),p&&/* @__PURE__ */yr("div",{className:"px-4 pb-2",children:/* @__PURE__ */yr(ea,{rows:p.rows,groups:p.groups,columns:e,onConfirm:async()=>{if(!p)return;const t=function(e,t,r){const n=r[0].key,o=/* @__PURE__ */new Map,a=/* @__PURE__ */new Set;for(const e of t)o.set(e.rowIndices[0],e),e.rowIndices.slice(1).forEach(e=>a.add(e));const l=[];return e.forEach((t,i)=>{const s=o.get(i);if(s){const t={};for(const o of r){if(o.key===n){t[o.key]=s.key;continue}const r=s.rowIndices.map(t=>(e[t]?.[o.key]??"").trim()).filter(e=>""!==e&&Number.isFinite(Number(e))).map(Number);t[o.key]=r.length>0?String(r.reduce((e,t)=>e+t,0)):""}l.push(t)}else a.has(i)||l.push(t)}),l}(p.rows,p.groups,e);g(null),await M(t)},onCancel:()=>g(null)})}),
|
|
590
590
|
/* @__PURE__ */yr(ae,{columns:N,data:o,onChange:a}),
|
|
591
591
|
/* @__PURE__ */yr(Ot,{rejections:S.rejections,className:"px-4 py-1"}),s&&/* @__PURE__ */yr("p",{className:"text-xs text-red-600 px-4 py-1",children:s})]})}function ra({healthCheck:e,healthUrl:t="/api/health/",pollMs:r=15e3,requestTimeoutMs:n=5e3,user:o,version:a=Qe}){const[l,i]=rr("checking"),[s,c]=rr(null),[d,u]=rr(null),[m,h]=rr(null),[p,g]=rr(navigator.onLine),[f,y]=rr(!1),[b,x]=rr({left:0,top:0}),[,w]=rr(0),v=or(!1),k=or(null),N=Ht().serverStatus,C=Vt(),S=or(null),M=or(e),_=or(t),L=or(n);M.current=e,_.current=t,L.current=n;const E=ar(async()=>{const e=performance.now();try{let t;if(M.current)t=await M.current();else{const r=new AbortController,n=setTimeout(()=>r.abort(),L.current);try{t={ok:(await fetch(_.current,{method:"GET",cache:"no-store",signal:r.signal})).ok,latencyMs:Math.round(performance.now()-e)}}finally{clearTimeout(n)}}if(v.current)return;t.ok?(i("connected"),c(/* @__PURE__ */new Date),h(t.latencyMs??Math.round(performance.now()-e))):(i("disconnected"),u(/* @__PURE__ */new Date))}catch{v.current||(i("disconnected"),u(/* @__PURE__ */new Date))}},[]);nr(()=>{v.current=!1,E();const e=setInterval(E,r);return()=>{v.current=!0,clearInterval(e)}},[E,r]),nr(()=>{const e=()=>g(!0),t=()=>g(!1);return window.addEventListener("online",e),window.addEventListener("offline",t),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",t)}},[]),nr(()=>{if(!f)return;const e=setInterval(()=>w(e=>e+1),1e3);return()=>clearInterval(e)},[f]);const T=ar(()=>{if(!k.current)return;const e=k.current.getBoundingClientRect(),t=S.current?.offsetHeight||320,r=e.left+e.width/2,n=Math.max(8,Math.min(window.innerWidth-320-8,r-160)),o=e.top+e.height/2>window.innerHeight/2?Math.max(8,e.top-t-6):e.bottom+6;x({left:n,top:o})},[]);nr(()=>{if(f)return T(),window.addEventListener("resize",T),()=>window.removeEventListener("resize",T)},[f,T]),lr(()=>{f&&S.current&&T()},[f,T]),nr(()=>{if(!f)return;const e=e=>{const t=e.target;S.current?.contains(t)||k.current?.contains(t)||y(!1)},t=e=>{"Escape"===e.key&&y(!1)};window.addEventListener("mousedown",e),window.addEventListener("keydown",t);const r=Bt(()=>y(!1));return()=>{window.removeEventListener("mousedown",e),window.removeEventListener("keydown",t),r()}},[f]);const P="connected"===l?"#16a34a":"disconnected"===l?"#dc2626":"#9ca3af",I="connected"===l?N.connected:"disconnected"===l?N.disconnected:N.checking,D="connected"===l?"bg-green-500":"disconnected"===l?"bg-red-500":"bg-gray-400",$=o?o.name?.trim()||o.email||"—":N.notSignedIn,A=o?.role||"";/* @__PURE__ */
|
|
592
592
|
return fr(br,{children:[
|
|
@@ -655,4 +655,4 @@ return fr(br,{children:[
|
|
|
655
655
|
/* @__PURE__ */yr(vt,{}),
|
|
656
656
|
/* @__PURE__ */fr(Ct,{onClick:async()=>{u(!1);const e=await x();e!==oa?e&&a&&a(e):Ze.error(b.tookTooLong(t))},children:[
|
|
657
657
|
/* @__PURE__ */yr("svg",{className:"h-4 w-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */yr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75"})}),b.email]})]})]}),document.body)]})}var ia=Zt(null);function sa({value:e,children:t}){/* @__PURE__ */
|
|
658
|
-
return yr(ia.Provider,{value:e,children:t})}function ca(){return sr(ia)??(e=>{throw new Error(`efficient-shell: cannot fetch ${e} — no <ShellEntityFetcherProvider> mounted. If your app registers entity windows, supply an entityFetcher.`)})}function da(e){const t=Me();nr(()=>{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 ua(e){const t=Me();nr(()=>{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 ma(e,t){const r=e?.modalId;return"string"!=typeof r||""===r||(!t||r===t)}function ha(e){const t=Le();nr(()=>{if(!e)return;const r=r=>{ma(r.detail,t)&&e()};return document.addEventListener("modal-save",r),()=>document.removeEventListener("modal-save",r)},[e,t])}function pa(e){const t=Le();nr(()=>{if(!e)return;const r=r=>{ma(r.detail,t)&&e()};return document.addEventListener("modal-duplicate",r),()=>document.removeEventListener("modal-duplicate",r)},[e,t])}export{Ur as BLOCKED_PCT_CPU,bo as BehaviorPanel,ta as BulkImportGrid,na as ChangePasswordForm,ho as Customization,Br as DEV_BANNER_TEXT,Pn as Desktop,Ln as DesktopHostProvider,Or as DevIndicator,Do as EntityList,Ro as FilterBar,Zr as LOG_CAP,ao as Layout,tn as MIN_EVENT_SAMPLES,en as MIN_GROUP_SAMPLES,Wr as NotificationBell,la as PdfActionButton,vn as PerfStats,To as ResizableTable,Xr as SMOOTH_FPS,ra as ServerStatusIndicator,Rr as ShellContextMenu,sa as ShellEntityFetcherProvider,Tr as ShortcutHelp,wo as SoundsPanel,
|
|
658
|
+
return yr(ia.Provider,{value:e,children:t})}function ca(){return sr(ia)??(e=>{throw new Error(`efficient-shell: cannot fetch ${e} — no <ShellEntityFetcherProvider> mounted. If your app registers entity windows, supply an entityFetcher.`)})}function da(e){const t=Me();nr(()=>{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 ua(e){const t=Me();nr(()=>{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 ma(e,t){const r=e?.modalId;return"string"!=typeof r||""===r||(!t||r===t)}function ha(e){const t=Le();nr(()=>{if(!e)return;const r=r=>{ma(r.detail,t)&&e()};return document.addEventListener("modal-save",r),()=>document.removeEventListener("modal-save",r)},[e,t])}function pa(e){const t=Le();nr(()=>{if(!e)return;const r=r=>{ma(r.detail,t)&&e()};return document.addEventListener("modal-duplicate",r),()=>document.removeEventListener("modal-duplicate",r)},[e,t])}export{Ur as BLOCKED_PCT_CPU,bo as BehaviorPanel,ta as BulkImportGrid,na as ChangePasswordForm,ho as Customization,Br as DEV_BANNER_TEXT,Pn as Desktop,Ln as DesktopHostProvider,Or as DevIndicator,Do as EntityList,Ro as FilterBar,Zr as LOG_CAP,ao as Layout,tn as MIN_EVENT_SAMPLES,en as MIN_GROUP_SAMPLES,Wr as NotificationBell,la as PdfActionButton,vn as PerfStats,To as ResizableTable,Xr as SMOOTH_FPS,ra as ServerStatusIndicator,Rr as ShellContextMenu,sa as ShellEntityFetcherProvider,Tr as ShortcutHelp,wo as SoundsPanel,qn as StartMenu,vo as SystemPreferences,Kr as WidgetManager,rn as appendPerfRecord,zr as applyDevTitle,Qr as classifyActivity,qr as classifyPerf,Mr as createWindowRegistry,_r as createWindowTarget,xn as describeMachine,Oo as describePerfReport,Vo as findDuplicateKeys,Fr as isDevEnv,nn as isInteracting,$n as layoutModeOf,Xo as mergeBulkItems,un as perfLogToCsv,Ho as perfReportFile,bn as readPerfEnvironment,pn as requestAsyncEnvironment,Gr as summariseFrames,cn as summarisePerfLog,Eo as useColumnConfig,En as useDesktopHost,ua as useEditHotkey,Fo as useFilters,$o as useInfiniteScroll,pa as useModalDuplicate,ha as useModalSave,da as useNewHotkey,An as useSetLayoutMode,ca as useShellEntityFetcher,jo as useSort,No as useTableNav,Lr as useWindowTarget};
|