efficient-shell 7.18.0 → 7.19.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 +2 -2
- package/dist/{Browser-AYWOX66T.js → Browser-62T2OSLK.js} +13 -13
- package/dist/{Calculator-NGSHZWOR.js → Calculator-YSHOGYHB.js} +22 -22
- package/dist/{ConfirmDialog-JMQI6CGW.js → ConfirmDialog-AVFQGXKL.js} +1 -1
- package/dist/{CurrencyConverter-PICVES6A.js → CurrencyConverter-V6LH7VQP.js} +9 -9
- package/dist/{Documents-AOXBUBLH.js → Documents-R6IE64IZ.js} +10 -10
- package/dist/{Files-EWRVA6X3.js → Files-RVESLH5D.js} +26 -26
- package/dist/{Notepad-NAWSBQ4K.js → Notepad-2QJH5T7B.js} +11 -11
- package/dist/{PomodoroTimer-OCAJKGQU.js → PomodoroTimer-M7BLRWTH.js} +4 -4
- package/dist/{Preview-NQKURFIP.js → Preview-3ZQ7SSHV.js} +22 -22
- package/dist/{Spreadsheet-OJ4TDOP2.js → Spreadsheet-OBFCMT3L.js} +13 -13
- package/dist/{Stock-74K5L75A.js → Stock-XDKUT7RW.js} +6 -6
- package/dist/{Weather-QTRJYIPS.js → Weather-XGIJGO23.js} +16 -16
- package/dist/{WorldClock-L6PSFBLE.js → WorldClock-V6S6QEXK.js} +6 -6
- package/dist/apps/index.js +1 -1
- package/dist/bin/ui-check.js +1 -1
- package/dist/{chunk-LUNVJKAH.js → chunk-3FLFIKAL.js} +1 -1
- package/dist/{chunk-EJ54JN6S.js → chunk-3LEHVM4D.js} +4 -4
- package/dist/chunk-76VCH7N6.js +29 -0
- package/dist/{chunk-QWSVX6OP.js → chunk-7JN73EKI.js} +1 -1
- package/dist/{chunk-BIYMQKF3.js → chunk-AJCAZNBF.js} +1 -1
- package/dist/chunk-FTZ5WHJM.js +1 -0
- package/dist/chunk-NUCPJVKD.js +108 -0
- package/dist/chunk-Q2HEVH2C.js +1025 -0
- package/dist/{index-Bup5fPMO.d.ts → index-C4iOtAIZ.d.ts} +5 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +24 -24
- package/dist/page-tabs/index.js +5 -5
- package/dist/telemetry/index.js +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-CWKX752E.js +0 -1025
- package/dist/chunk-F5XBJE54.js +0 -1
- package/dist/chunk-IBGEW3OA.js +0 -108
- package/dist/chunk-QBXX5A7U.js +0 -29
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-BIYMQKF3.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-JQRIAZDP.js";import{PREVIEW_OPENED_EVENT as l,openPreviewFile as i}from"./chunk-B4PGVDB6.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 _}from"./chunk-ITCBLL72.js";export{setShellTodoProvider}from"./chunk-ITCBLL72.js";import{TabStrip as E}from"./chunk-GNCH3JEH.js";export{startClientTelemetry}from"./chunk-LUNVJKAH.js";import{ROW_HEIGHTS as T,ContextMenu as M,TimeAgo as L,Markdown as P,CONTROL_HEIGHTS as I,useTheme as $,resolveTheme as D,Segmented as A,resolveCorners as R,useClickOutside as W,ListLoadError as j,Checkbox_default as F,ListFooter as O,copyToClipboard as B,firstEnabledIndex as z,FormField as H,Input_default as U,applyThemePrefs as K,selectionAt as X,lastEnabledIndex as V,nextEnabledIndex as Y,Calendar as G,matchTypeahead as q}from"./chunk-CWKX752E.js";export{APP_UPDATE_POLL_MS,Accordion,AlignmentGrid,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,BORDER_WIDTHS,Banner,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,CONTROL_HEIGHTS,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CornersInput,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,Drawer,DropdownMenu,ELEVATION_LEVELS,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FONT_WEIGHTS,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,IconButton_default as IconButton,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LinkPicker,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,MOTION_DURATIONS,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RADIUS_ROLES,ROW_HEIGHTS,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,SPACING_ROLES,SPACING_SCALE,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,SliderGroup,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,TYPE_SCALE,Tabs,TagInput,Text,TextLinkField,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,WidthsBar,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,assignSeriesSlots,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,columnSharesWidths,copyToClipboard,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,isSeverityTone,isSpacingStep,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceAxis,niceMax,parseHexColor,polygonPoints,radiusScale,resolveColumnShares,resolveColumnWidths,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveSeriesColorWithin,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,toggleSeriesSlot,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"./chunk-CWKX752E.js";export{Breadcrumbs}from"./chunk-Z2TTHY7G.js";import{SidebarLayout as J}from"./chunk-VFBUDSMF.js";export{ResizeHandle,SidebarLayout}from"./chunk-VFBUDSMF.js";import{navPagesProvider as Q,partitionNav as Z,sanitizeRecent as ee,favoritesToResults as te,pushRecent as re,BrandMark as ne,GlobalSearch as oe,PAGE_RESULT_ENTITY as ae,parsePageResultTarget as le}from"./chunk-BQ7GR7H6.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"./chunk-BQ7GR7H6.js";import{withSpareRow as ie,EditableGrid as se}from"./chunk-7BX3JQBP.js";export{EditableGrid}from"./chunk-7BX3JQBP.js";import{escapeHtml as ce}from"./chunk-BR22X7E5.js";import{PLACEHOLDER_INK as de,FILTER_ON as ue,FILTER_ON_INK as me,FILTER_OFF as he}from"./chunk-HJQAE6SP.js";export{INPUT_BASE,INPUT_SIZES,PLACEHOLDER_INK,inputClasses}from"./chunk-HJQAE6SP.js";export{isSafeLinkHref}from"./chunk-PJPK2ADX.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-RBKIYZ7H.js";import{publishDesktopFolders as pe,requestFilesTrashView as ge,FolderGlyph as fe,requestFilesDesktopFolderView as ye,FileIconTile as be}from"./chunk-XN7CAWSZ.js";import{setPdfPreview as xe}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as we,requestWindowFront as ve,useWindowManager as ke,WINDOW_REGISTRY as Ne,isPageEntry as Ce,Modal as Se,setPerfCollecting as _e,drainPerfEvents as Ee,forgetMaximizedWindowBoxes as Te,markMenuOpen as Me,setShellHomeRoute as Le,useCurrentTabKey as Pe,ModalActions as Ie,useModalActive as $e,LoadingSpinner as De,useEnclosingModalId as Ae,isShellApiClientConfigured as Re,client_default as We,KEY_ACTIVATED_SELECTOR as je,isDraftEntityId as Fe,subscribeWindowChrome as Oe,getWindowChromeVersion as Be,isTabWindow as ze,readWindowChrome as He,activateWindowById as Ue,CancelButton as Ke,setWindowPosition as Xe,isDraftEntityWindow as Ve,isEntityEntry as Ye}from"./chunk-IBGEW3OA.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-IBGEW3OA.js";import{startMenuCategories as Ge,navSections as qe,navIcons as Je,sectionIcons as Qe,TAB_STRIP_H as Ze,RAIL_COLLAPSED_W as et,RAIL_W as tt,WORK_AREA_CHANGED_EVENT as rt,useShellAuth as nt}from"./chunk-DSSLOQDW.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-DSSLOQDW.js";export{CopyButton}from"./chunk-SCJT2XXU.js";import{toast_default as ot}from"./chunk-RUHUTZN4.js";export{toast_default as toast}from"./chunk-RUHUTZN4.js";import{CMD_K as at,CMD_DOT as lt,SHIFT as it,MOD as st,ENTER as ct,CMD_A as dt,ALT_SHIFT_N as ut,ALT_SHIFT_E as mt,CMD_ENTER as ht,CMD_S as pt,ALT_SHIFT_D as gt,CMD_Z as ft,CMD_SHIFT_Z as yt,useShellPrefs as bt,useIsMobile as xt,useShellPrefsAdapter as wt}from"./chunk-ZRU5F2XT.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-ZRU5F2XT.js";import{navVisible as vt,isSection as kt,isReachable as Nt,visibleChildren as Ct}from"./chunk-5A7MWTXX.js";import{Button_default as St}from"./chunk-WYNQLAKD.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,popupBounds,useDropdownPosition}from"./chunk-WYNQLAKD.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"./chunk-QBXX5A7U.js";import{PopupMenuDivider as _t,PopupMenu as Et,PopupMenuLabel as Tt,PopupMenuItem as Mt,resolveMenuLevels as Lt,keepsNativeMenu as Pt,leavesContextMenuAlone as It,describeContextTarget as $t,MenuIcon as Dt,openMenuLevel as At,closeMenuBelow as Rt,clampMenuTop as Wt,menuPanelLeft as jt}from"./chunk-IQDY2YFN.js";export{NATIVE_MENU_ATTR,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-IQDY2YFN.js";import{useDismissPopupsOnOpen as Ft}from"./chunk-UVBK6YSR.js";export{buttonClasses,iconButtonClasses}from"./chunk-JTNKC4CR.js";import{GLASS_INPUT_BG as Ot,glassStyle as Bt}from"./chunk-7IQ3B77H.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle}from"./chunk-7IQ3B77H.js";import{Z_LAYERS as zt,registerModalEscapeInterceptor as Ht,onOverlayOpen as Ut}from"./chunk-FIEA5CGB.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"./chunk-FIEA5CGB.js";import{useBrowserState as Kt}from"./chunk-D65T4H6J.js";import{APP_VERSION as Xt,VERSION as Vt}from"./chunk-F5XBJE54.js";export{VERSION}from"./chunk-F5XBJE54.js";import"./chunk-KNUR2UEG.js";import{useFileIntake as Yt,FileIntakeAlert as Gt}from"./chunk-M4TRVJTO.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-M4TRVJTO.js";import{useShellStrings as qt,useShellLocale as Jt}from"./chunk-QRCDQPJA.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-QRCDQPJA.js";import{formatGrouped as Qt}from"./chunk-C3QOHMR6.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"./chunk-AP2QEJXQ.js";import{formatDate as Zt,timeAgo as er}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-KBOYLXAT.js";import{Icon as tr,subscribeIcons as rr,iconsVersion as nr,iconSets as or,activeIconSet as ar}from"./chunk-ZGUQLVY4.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-ZGUQLVY4.js";import{createContext as lr,lazy as ir,useSyncExternalStore as sr,useState as cr,useEffect as dr,useRef as ur,useCallback as mr,useLayoutEffect as hr,useMemo as pr,useContext as gr,isValidElement as fr,cloneElement as yr,Suspense as br,useId as xr}from"react";import{Dialog as wr,DialogBackdrop as vr,DialogPanel as kr}from"@headlessui/react";import{jsxs as Nr,jsx as Cr,Fragment as Sr}from"react/jsx-runtime";import{createPortal as _r}from"react-dom";import{useQueryClient as Er,useQuery as Tr,useInfiniteQuery as Mr,QueryClientContext as Lr,QueryClient as Pr}from"@tanstack/react-query";import"react-router-dom";function Ir(...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,we(e),void o();t={...n,nav:++r},o(),!1!==a?.raise&&ve(e)},get:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function Dr(e){return sr(e.subscribe,e.get,e.get)}var Ar=[{title:"Global",shortcuts:[{keys:at,description:"Search"},{keys:lt,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:`${it} Arrows`,description:"Resize window"},{keys:`${st} ←/→`,description:"Snap to left / right half"},{keys:`${st} ↑`,description:"Maximize"},{keys:`${st} ↓`,description:"Restore / minimize"},{keys:ct,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:dt,description:"Select / deselect all"},{keys:ut,description:"Create new item"},{keys:mt,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:ht,description:"Submit"},{keys:pt,description:"Save"},{keys:gt,description:"Save as new (duplicate)"},{keys:ft,description:"Undo the last change to the form"},{keys:yt,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function Rr(){const[e,t]=cr(!1);return dr(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),dr(()=>{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)},[]),Ft(e),/* @__PURE__ */Nr(wr,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:zt.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-AJCAZNBF.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-JQRIAZDP.js";import{PREVIEW_OPENED_EVENT as l,openPreviewFile as i}from"./chunk-B4PGVDB6.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 _}from"./chunk-ITCBLL72.js";export{setShellTodoProvider}from"./chunk-ITCBLL72.js";import{TabStrip as E}from"./chunk-GNCH3JEH.js";export{startClientTelemetry}from"./chunk-3FLFIKAL.js";import{ROW_HEIGHTS as T,ContextMenu as M,TimeAgo as L,Markdown as P,CONTROL_HEIGHTS as I,useTheme as $,resolveTheme as D,Segmented as A,resolveCorners as R,useClickOutside as W,ListLoadError as j,Checkbox_default as F,ListFooter as O,copyToClipboard as B,firstEnabledIndex as z,FormField as H,Input_default as U,applyThemePrefs as K,selectionAt as X,lastEnabledIndex as V,nextEnabledIndex as Y,Calendar as G,matchTypeahead as q}from"./chunk-Q2HEVH2C.js";export{APP_UPDATE_POLL_MS,Accordion,AlignmentGrid,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,BORDER_WIDTHS,Banner,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,CONTROL_HEIGHTS,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CornersInput,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,Drawer,DropdownMenu,ELEVATION_LEVELS,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FONT_WEIGHTS,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,IconButton_default as IconButton,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LinkPicker,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,MOTION_DURATIONS,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RADIUS_ROLES,ROW_HEIGHTS,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,SPACING_ROLES,SPACING_SCALE,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,SliderGroup,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,TYPE_SCALE,Tabs,TagInput,Text,TextLinkField,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,WidthsBar,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,assignSeriesSlots,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,columnSharesWidths,copyToClipboard,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,isSeverityTone,isSpacingStep,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceAxis,niceMax,parseHexColor,polygonPoints,radiusScale,resolveColumnShares,resolveColumnWidths,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveSeriesColorWithin,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,toggleSeriesSlot,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"./chunk-Q2HEVH2C.js";export{Breadcrumbs}from"./chunk-Z2TTHY7G.js";import{SidebarLayout as J}from"./chunk-VFBUDSMF.js";export{ResizeHandle,SidebarLayout}from"./chunk-VFBUDSMF.js";import{navPagesProvider as Q,partitionNav as Z,sanitizeRecent as ee,favoritesToResults as te,pushRecent as re,BrandMark as ne,GlobalSearch as oe,PAGE_RESULT_ENTITY as ae,parsePageResultTarget as le}from"./chunk-BQ7GR7H6.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"./chunk-BQ7GR7H6.js";import{withSpareRow as ie,EditableGrid as se}from"./chunk-7BX3JQBP.js";export{EditableGrid}from"./chunk-7BX3JQBP.js";import{escapeHtml as ce}from"./chunk-BR22X7E5.js";import{PLACEHOLDER_INK as de,FILTER_ON as ue,FILTER_ON_INK as me,FILTER_OFF as he}from"./chunk-HJQAE6SP.js";export{INPUT_BASE,INPUT_SIZES,PLACEHOLDER_INK,inputClasses}from"./chunk-HJQAE6SP.js";export{isSafeLinkHref}from"./chunk-PJPK2ADX.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-RBKIYZ7H.js";import{publishDesktopFolders as pe,requestFilesTrashView as ge,FolderGlyph as fe,requestFilesDesktopFolderView as ye,FileIconTile as be}from"./chunk-XN7CAWSZ.js";import{setPdfPreview as xe}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as we,requestWindowFront as ve,useWindowManager as ke,WINDOW_REGISTRY as Ne,isPageEntry as Ce,Modal as Se,setPerfCollecting as _e,drainPerfEvents as Ee,forgetMaximizedWindowBoxes as Te,markMenuOpen as Me,setShellHomeRoute as Le,useCurrentTabKey as Pe,ModalActions as Ie,useModalActive as $e,LoadingSpinner as De,useEnclosingModalId as Ae,isShellApiClientConfigured as Re,client_default as We,KEY_ACTIVATED_SELECTOR as je,isDraftEntityId as Fe,subscribeWindowChrome as Oe,getWindowChromeVersion as Be,isTabWindow as ze,readWindowChrome as He,activateWindowById as Ue,CancelButton as Ke,setWindowPosition as Xe,isDraftEntityWindow as Ve,isEntityEntry as Ye}from"./chunk-NUCPJVKD.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-NUCPJVKD.js";import{startMenuCategories as Ge,navSections as qe,navIcons as Je,sectionIcons as Qe,TAB_STRIP_H as Ze,RAIL_COLLAPSED_W as et,RAIL_W as tt,WORK_AREA_CHANGED_EVENT as rt,useShellAuth as nt}from"./chunk-DSSLOQDW.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-DSSLOQDW.js";export{CopyButton}from"./chunk-SCJT2XXU.js";import{toast_default as ot}from"./chunk-RUHUTZN4.js";export{toast_default as toast}from"./chunk-RUHUTZN4.js";import{CMD_K as at,CMD_DOT as lt,SHIFT as it,MOD as st,ENTER as ct,CMD_A as dt,ALT_SHIFT_N as ut,ALT_SHIFT_E as mt,CMD_ENTER as ht,CMD_S as pt,ALT_SHIFT_D as gt,CMD_Z as ft,CMD_SHIFT_Z as yt,useShellPrefs as bt,useIsMobile as xt,useShellPrefsAdapter as wt}from"./chunk-ZRU5F2XT.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-ZRU5F2XT.js";import{navVisible as vt,isSection as kt,isReachable as Nt,visibleChildren as Ct}from"./chunk-5A7MWTXX.js";import{Button_default as St}from"./chunk-WYNQLAKD.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,popupBounds,useDropdownPosition}from"./chunk-WYNQLAKD.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"./chunk-76VCH7N6.js";import{PopupMenuDivider as _t,PopupMenu as Et,PopupMenuLabel as Tt,PopupMenuItem as Mt,resolveMenuLevels as Lt,keepsNativeMenu as Pt,leavesContextMenuAlone as It,describeContextTarget as $t,MenuIcon as Dt,openMenuLevel as At,closeMenuBelow as Rt,clampMenuTop as Wt,menuPanelLeft as jt}from"./chunk-IQDY2YFN.js";export{NATIVE_MENU_ATTR,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-IQDY2YFN.js";import{useDismissPopupsOnOpen as Ft}from"./chunk-UVBK6YSR.js";export{buttonClasses,iconButtonClasses}from"./chunk-JTNKC4CR.js";import{GLASS_INPUT_BG as Ot,glassStyle as Bt}from"./chunk-7IQ3B77H.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle}from"./chunk-7IQ3B77H.js";import{Z_LAYERS as zt,registerModalEscapeInterceptor as Ht,onOverlayOpen as Ut}from"./chunk-FIEA5CGB.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"./chunk-FIEA5CGB.js";import{useBrowserState as Kt}from"./chunk-D65T4H6J.js";import{APP_VERSION as Xt,VERSION as Vt}from"./chunk-FTZ5WHJM.js";export{VERSION}from"./chunk-FTZ5WHJM.js";import"./chunk-KNUR2UEG.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"./chunk-AP2QEJXQ.js";import{formatDate as Yt,timeAgo as Gt}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";import{useFileIntake as qt,FileIntakeAlert as Jt}from"./chunk-M4TRVJTO.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-M4TRVJTO.js";import{useShellStrings as Qt,useShellLocale as Zt}from"./chunk-QRCDQPJA.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-QRCDQPJA.js";import{formatGrouped as er}from"./chunk-C3QOHMR6.js";export{ICON_NAMES,isIconName}from"./chunk-KBOYLXAT.js";import{Icon as tr,subscribeIcons as rr,iconsVersion as nr,iconSets as or,activeIconSet as ar}from"./chunk-ZGUQLVY4.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-ZGUQLVY4.js";import{createContext as lr,lazy as ir,useSyncExternalStore as sr,useState as cr,useEffect as dr,useRef as ur,useCallback as mr,useLayoutEffect as hr,useMemo as pr,useContext as gr,isValidElement as fr,cloneElement as yr,Suspense as br,useId as xr}from"react";import{Dialog as wr,DialogBackdrop as vr,DialogPanel as kr}from"@headlessui/react";import{jsxs as Nr,jsx as Cr,Fragment as Sr}from"react/jsx-runtime";import{createPortal as _r}from"react-dom";import{useQueryClient as Er,useQuery as Tr,useInfiniteQuery as Mr,QueryClientContext as Lr,QueryClient as Pr}from"@tanstack/react-query";import"react-router-dom";function Ir(...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,we(e),void o();t={...n,nav:++r},o(),!1!==a?.raise&&ve(e)},get:()=>t,subscribe:e=>(n.add(e),()=>{n.delete(e)})}}function Dr(e){return sr(e.subscribe,e.get,e.get)}var Ar=[{title:"Global",shortcuts:[{keys:at,description:"Search"},{keys:lt,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:`${it} Arrows`,description:"Resize window"},{keys:`${st} ←/→`,description:"Snap to left / right half"},{keys:`${st} ↑`,description:"Maximize"},{keys:`${st} ↓`,description:"Restore / minimize"},{keys:ct,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:dt,description:"Select / deselect all"},{keys:ut,description:"Create new item"},{keys:mt,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:ht,description:"Submit"},{keys:pt,description:"Save"},{keys:gt,description:"Save as new (duplicate)"},{keys:ft,description:"Undo the last change to the form"},{keys:yt,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function Rr(){const[e,t]=cr(!1);return dr(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),dr(()=>{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)},[]),Ft(e),/* @__PURE__ */Nr(wr,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:zt.overlay},children:[
|
|
3
3
|
/* @__PURE__ */Cr(vr,{className:"fixed inset-0 bg-black/30 transition-opacity"}),
|
|
4
4
|
/* @__PURE__ */Cr("div",{className:"fixed inset-0 flex items-center justify-center p-6",children:/* @__PURE__ */Nr(kr,{className:"w-full max-w-md rounded-lg bg-white shadow-xl",children:[
|
|
5
5
|
/* @__PURE__ */Nr("div",{className:"flex items-center justify-between px-5 pt-5 pb-3 border-b border-gray-200",children:[
|
|
@@ -25,7 +25,7 @@ import{wallpaperSrc as e,WALLPAPER_PREF_TOKEN as t,uploadWallpaper as r,wallpape
|
|
|
25
25
|
/* @__PURE__ */Nr(Mt,{onClick:l(()=>window.location.reload()),children:[
|
|
26
26
|
/* @__PURE__ */Cr(Dt,{d:Br}),"Reload"]},"reload"),
|
|
27
27
|
/* @__PURE__ */Nr(Mt,{onClick:l(()=>{B("Page address",window.location.href)}),children:[
|
|
28
|
-
/* @__PURE__ */Cr(Dt,{d:zr}),"Copy page address"]},"copy-page")]),/* @__PURE__ */Cr(M,{at:{x:t.x,y:t.y},owner:t.owner,minWidth:200,onClose:a,className:"shell-context-menu",autoFocus:!1,children:/* @__PURE__ */Cr("div",{"data-shell-context-menu":t.target.kind,children:i.map((e,t)=>/* @__PURE__ */Nr("div",{children:[t>0&&/* @__PURE__ */Cr(_t,{}),e]},t))})})}function Ur({useUnreadCount:e,list:t,markRead:r,markAllRead:n,onItemClick:o,onViewAll:a,popDirection:l}){const[i,c]=cr(!1),d=
|
|
28
|
+
/* @__PURE__ */Cr(Dt,{d:zr}),"Copy page address"]},"copy-page")]),/* @__PURE__ */Cr(M,{at:{x:t.x,y:t.y},owner:t.owner,minWidth:200,onClose:a,className:"shell-context-menu",autoFocus:!1,children:/* @__PURE__ */Cr("div",{"data-shell-context-menu":t.target.kind,children:i.map((e,t)=>/* @__PURE__ */Nr("div",{children:[t>0&&/* @__PURE__ */Cr(_t,{}),e]},t))})})}function Ur({useUnreadCount:e,list:t,markRead:r,markAllRead:n,onItemClick:o,onViewAll:a,popDirection:l}){const[i,c]=cr(!1),d=Qt().notifications,{prefs:u,save:m}=bt(),h=!0===u.notifications_dnd,p=ur(null),g=ur(null),f=Er(),y=e();dr(()=>{"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission()},[]);const b=mr(e=>{e.is_read||(f.setQueryData(["notification-unread-count"],e=>e?{...e,count:Math.max(0,(e.count||0)-1)}:e),f.setQueryData(["notifications-dropdown"],t=>t?.results?{...t,results:t.results.map(t=>t.id===e.id?{...t,is_read:!0}:t)}:t),r(e.id).catch(()=>{f.invalidateQueries({queryKey:["notification-unread-count"]}),f.invalidateQueries({queryKey:["notifications-dropdown"]})})),c(!1),o(e)},[f,r,o]),[x,w]=cr(null),v=ur(null),k=mr(()=>{v.current&&(clearTimeout(v.current),v.current=null),w(null)},[]),N=mr((e,t=function(e){const t=(e.title?.length??0)+(e.message?.length??0);return Math.min(12e3,Math.max(5e3,1e3*Math.round(t/15)))}(e))=>{w(e),s(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>w(null),t)},[]);dr(()=>()=>{v.current&&clearTimeout(v.current)},[]);const C=ur(null);dr(()=>{null!==C.current?(y>C.current&&!h&&t({page_size:1}).then(e=>{const t=e?.results?.[0];if(!t)return;const r=t.title||"New Notification",n=t.message||t.entity_label||"";if(document.hidden){if("Notification"in window&&"granted"===Notification.permission){const e=new Notification(r,{body:n,icon:"/favicon.svg",tag:`notif-${t.id}`});e.onclick=()=>{window.focus(),b(t),e.close()}}}else N(t)}).catch(()=>{}),C.current=y):C.current=y},[y,t,N,h]);const{data:S}=Tr({queryKey:["notifications-dropdown"],queryFn:()=>t({page_size:30}),staleTime:3e4,refetchInterval:3e4}),_=S?.results??[],[E,T]=cr({}),M=mr(()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--taskbar-position")?.trim()||"bottom",t=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--taskbar-height"))||56,r=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--taskbar-width"))||0,n=`calc(100vh - ${"top"===e||"bottom"===e?t+16:16}px)`;T("right"===l?{left:r+8,bottom:8,maxHeight:n}:"left"===l?{right:r+8,bottom:8,maxHeight:n}:"top"===e?{right:8,top:t+8,maxHeight:n}:{right:8,bottom:t+8,maxHeight:n})},[l]);return hr(()=>{i&&M()},[i,M]),dr(()=>{if(i)return window.addEventListener("resize",M),()=>window.removeEventListener("resize",M)},[i,M]),/* @__PURE__ */Nr("div",{ref:p,className:"relative",children:[
|
|
29
29
|
/* @__PURE__ */Nr("button",{ref:g,"data-menu-toggle":!0,onMouseEnter:()=>f.prefetchQuery({queryKey:["notifications-dropdown"],queryFn:()=>t({page_size:30})}),onClick:()=>c(e=>!e),title:h?d.dndOn:d.title,className:"relative shrink-0 rounded-md p-2 text-gray-900 hover:text-black hover:bg-white/20 transition-colors",children:[
|
|
30
30
|
/* @__PURE__ */Cr(tr,{name:"bell",className:"h-5 w-5",strokeWidth:1.5}),y>0&&/* @__PURE__ */Cr("span",{className:"absolute top-0.5 right-0.5 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-red-500 px-1 text-2xs font-bold text-white",children:y>99?"99+":y}),h&&
|
|
31
31
|
/* @__PURE__ */Cr("span",{"aria-hidden":"true",className:"absolute bottom-0.5 right-0.5 flex h-3 w-3 items-center justify-center rounded-full bg-indigo-500 text-white",children:/* @__PURE__ */Cr(tr,{name:"moon",look:"solid",className:"h-2 w-2"})})]}),i&&_r(
|
|
@@ -106,7 +106,7 @@ return Cr("div",{className:`flex-1 rounded-sm ${void 0===r?"bg-white/5":R.dot}`,
|
|
|
106
106
|
return Nr("div",{className:"flex items-baseline justify-between gap-2",children:[
|
|
107
107
|
/* @__PURE__ */Cr("dt",{className:"text-white/40",children:e}),
|
|
108
108
|
/* @__PURE__ */Cr("dd",{className:"tabular-nums text-white/70",children:t})]})}var Mn=[],Ln="documents",Pn="Recent Documents",In=90;var $n=lr({});function Dn({value:e,children:t}){/* @__PURE__ */
|
|
109
|
-
return Cr($n.Provider,{value:e,children:t})}function An(){return gr($n)}function Rn(){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 Wn({profile:e}){const t=
|
|
109
|
+
return Cr($n.Provider,{value:e,children:t})}function An(){return gr($n)}function Rn(){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 Wn({profile:e}){const t=Qt();Er();const{openEntity:r,openPage:n}=ke(),o=ur(null),{prefs:a,save:s}=bt(),c={...e?.preferences||{},...a},d=c.favorite_documents||[],u=c.desktop_folders||[],m=u.some(e=>e.id===Ln)?u.map(e=>e.id===Ln?{...e,name:Pn}:e):[...u,{id:Ln,name:Pn}],h=c.desktop_snap??!1,p=c.notepad_notes||[],g=p.filter(e=>e.sticky),f=An(),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):ot.error(`${n} not found`)}catch{ot.error(`Failed to open ${n}`)}else ot.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);xe(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__ */Cr("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__ */Cr("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__ */Cr(tr,{name:"check",className:"w-2.5 h-2.5",strokeWidth:3})},`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__ */Cr("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__ */Cr("span",{children:t.slice(d)},`t-${r}-${d}`)),0===c.length&&c.push(/* @__PURE__ */Cr("span",{children:""},`e-${r}`));const u=/^\[x\]/i.test(t.trimStart());/* @__PURE__ */
|
|
110
110
|
return Cr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[v,k]=cr(null),[N,C]=cr(null),[S,_]=cr(/* @__PURE__ */new Set),[E,T]=cr(null),[M,L]=cr(!1),[I,$]=cr(!1),[D,A]=cr(!1),[R,W]=cr(null),[j,F]=cr(""),[O,B]=cr(null),[z,H]=cr(null),[U,K]=cr(null),[X,V]=cr(null),Y=ur(null),G=mr(e=>{f.saveShortcuts?f.saveShortcuts(e):s({favorite_documents:e})},[f,s]),q=mr(e=>{f.saveFolders?f.saveFolders(e):s({desktop_folders:e})},[f,s]);mr(e=>{f.saveSnap?f.saveSnap(e):s({desktop_snap:e})},[f,s]);const J=ur({folders:m,favDocs:d,saveFolders:q,saveDocs:G});J.current={folders:m,favDocs:d,saveFolders:q,saveDocs:G},dr(()=>{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:Ln},...o])};return window.addEventListener(l,e),()=>window.removeEventListener(l,e)},[]);const Q=e=>({right:20+Math.floor(e/8)*In,top:20+e%8*In}),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=>{ye(e),n("/files")},oe=mr(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=mr(e=>{const{favDocs:t,saveDocs:r}=J.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.filter(e=>!(e.folderId&&n.has(`${e.entityType}|${e.entityId}`))))},[]),[le,ie]=cr({}),se=ur([]),ce=(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})}se.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())};dr(()=>{if(!v)return;const e=se.current,t=1===e.length&&"item"===e[0].type,r=()=>{if(!t)return null;const r=te[e[0].idx];return"page"===r?.entityType?r.entityId:null},n=()=>document.querySelector("[data-taskbar-dropzone]"),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,V(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,V(null),k(null),void(se.current=[])}l(!1);const u=Y.current,p=null!=u?m[u]:null;Y.current=null,V(null);const g=e.filter(e=>"trash"!==e.type).map(e=>{let t=e.origX-n,r=Math.max(0,e.origY+i);if(h){const e=(o=t,a=r,{x:Math.round(o/In)*In,y:Math.round(a/In)*In});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&&ie(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),ie(e=>({...e,...t}))}k(null),se.current=[]};return window.addEventListener("pointermove",i),window.addEventListener("pointerup",c),()=>{window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",c)}},[v,h,d,m,te,a]);const de=JSON.stringify(d.map(e=>`${e.entityId}:${e.x??""}:${e.y??""}:${e.folderId??""}`)),ue=JSON.stringify(m.map(e=>`${e.id}:${e.x??""}:${e.y??""}`));dr(()=>{ie({})},[de,ue]),dr(()=>{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);pe({folders:e.map(e=>({id:e.id,name:e.name,itemCount:r[e.id]?.length??0})),itemsByFolder:r,moveToDesktop:oe,removeShortcuts:ae})},[de,ue,oe,ae]),dr(()=>()=>pe(null),[]);const me=ur(!1);dr(()=>{if(!E)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-E.startX,l=n-E.startY;if(a*a+l*l>16&&(me.current=!0),T(e=>e?{...e,endX:r,endY:n}:null),me.current){const e=Math.min(E.startX,r),t=Math.max(E.startX,r),a=Math.min(E.startY,n),l=Math.max(E.startY,n);_(((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=()=>{T(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[E]);dr(()=>{if(!N)return;const e=()=>C(null);return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[N]);const he=(e,t)=>{q(m.map(r=>r.id===e?{...r,name:t}:r)),W(null)},xe=mr(e=>{f.saveNotes?f.saveNotes(e):s({notepad_notes:e})},[f,s]),we=(e,t)=>{xe(p.map(r=>r.id===e?{...r,content:t,updated_at:/* @__PURE__ */(new Date).toISOString()}:r))};dr(()=>{if(!z)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${z.id}"]`);t&&(t.style.left=z.origX+e.clientX-z.startX+"px",t.style.right="auto",t.style.top=z.origY+e.clientY-z.startY+"px")},t=e=>{const t=z.origX+e.clientX-z.startX,r=Math.max(0,z.origY+e.clientY-z.startY),n=document.querySelector(`[data-sticky-id="${z.id}"]`),o=n?.offsetWidth??192,a=t+o/2>window.innerWidth/2?"right":"left",l="right"===a?window.innerWidth-t-o:t;xe(p.map(e=>e.id===z.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)}},[z,p]),dr(()=>{if(!U)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${U.id}"]`);t&&(t.style.width=`${Math.max(140,U.origW+e.clientX-U.startX)}px`,t.style.height=`${Math.max(100,U.origH+e.clientY-U.startY)}px`)},t=e=>{const t=Math.max(140,U.origW+e.clientX-U.startX),r=Math.max(100,U.origH+e.clientY-U.startY);xe(p.map(e=>e.id===U.id?{...e,sticky_w:t,sticky_h:r}:e)),K(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[U,p]);const ve={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"},Ne=(e,t,r,n,o)=>/* @__PURE__ */Nr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
|
|
111
111
|
/* @__PURE__ */Cr(be,{entityType:e,isSelected:r,entityId:n,label:t,fileKind:o}),
|
|
112
112
|
/* @__PURE__ */Cr("span",{className:"text-2xs font-medium text-center leading-tight w-full drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(r?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:t})]}),Ce=(e,t)=>({...e+180>window.innerWidth?{right:window.innerWidth-e}:{left:e},...t+250>window.innerHeight?{bottom:window.innerHeight-t}:{top:t}});/* @__PURE__ */
|
|
@@ -173,17 +173,17 @@ return Cr("button",{onClick:e=>{e.stopPropagation(),$(!0)},style:{zIndex:2,botto
|
|
|
173
173
|
return Cr(Se,{open:!0,onClose:()=>$(!1),title:t.about.whatsNew,size:"md",children:0===e.length?/* @__PURE__ */Cr("div",{className:"flex-1 flex items-center justify-center",children:/* @__PURE__ */Cr("p",{className:"text-sm text-gray-400 text-center",children:t.about.noChangelog})}):/* @__PURE__ */Cr("div",{className:"space-y-5 px-1",children:e.map((t,r)=>/* @__PURE__ */Nr("div",{children:[
|
|
174
174
|
/* @__PURE__ */Nr("div",{className:"flex items-center gap-3 mb-2",children:[
|
|
175
175
|
/* @__PURE__ */Cr("span",{className:"text-sm font-bold text-gray-900 font-mono",children:t.version}),
|
|
176
|
-
/* @__PURE__ */Cr("span",{className:"text-xs text-gray-400",children:
|
|
176
|
+
/* @__PURE__ */Cr("span",{className:"text-xs text-gray-400",children:Yt(t.date)})]}),
|
|
177
177
|
/* @__PURE__ */Cr("ul",{className:"space-y-2 ml-1",children:t.changes.map((e,t)=>/* @__PURE__ */Nr("li",{className:"flex items-start gap-2 text-sm text-gray-600",children:[
|
|
178
178
|
/* @__PURE__ */Cr("span",{className:"text-blue-500 mt-1 shrink-0",children:"•"}),
|
|
179
|
-
/* @__PURE__ */Cr(P,{className:"min-w-0 [&_p]:m-0",children:e})]},t))}),r<e.length-1&&/* @__PURE__ */Cr("div",{className:"border-b border-gray-200 mt-4"})]},t.version))})})})()]})}var jn=["shell-uploaded-wallpaper"];function Fn(e,r){const n=Er(),o=e=>e===t,l=(o(e)||o(r))&&Re(),{data:i}=Tr({queryKey:jn,enabled:l,queryFn:()=>a(),staleTime:3e5,retry:!1}),s=mr(()=>{n.invalidateQueries({queryKey:jn})},[n]);return{url:i?.wallpaper_url??null,refresh:s}}function On(e){return"sidebar"===e.layout_mode?"sidebar":"classic"}function Bn(){const{prefs:e,save:t}=bt();return mr(r=>{const n=On(e);t(function(e,t){const r={layout_mode:t};return"classic"===t&&"maximized"===e.default_window_size&&(r.default_window_size="large"),r}(e,r)),"classic"===r&&"classic"===n&&(Te(),window.dispatchEvent(new CustomEvent("react-os-shell:restore-windowed")))},[e,t])}function zn(e,t){return`rosh-wtab-${t}-${e.replace(/[^A-Za-z0-9_-]/g,"_")}`}function Hn(e,t){let r=e.route;if("page"!==e.type&&e.entityType){const t=Ne[e.entityType];r=t&&Ye(t)?t.icon:void 0}return r?t[r]??void 0:void 0}var Un=(e,t,r)=>He(e)?.menu?.open(t,r),Kn=e=>He(e)?.menu?.items()??[];function Xn({left:e,navIcons:t,home:r,end:n}){const o=
|
|
179
|
+
/* @__PURE__ */Cr(P,{className:"min-w-0 [&_p]:m-0",children:e})]},t))}),r<e.length-1&&/* @__PURE__ */Cr("div",{className:"border-b border-gray-200 mt-4"})]},t.version))})})})()]})}var jn=["shell-uploaded-wallpaper"];function Fn(e,r){const n=Er(),o=e=>e===t,l=(o(e)||o(r))&&Re(),{data:i}=Tr({queryKey:jn,enabled:l,queryFn:()=>a(),staleTime:3e5,retry:!1}),s=mr(()=>{n.invalidateQueries({queryKey:jn})},[n]);return{url:i?.wallpaper_url??null,refresh:s}}function On(e){return"sidebar"===e.layout_mode?"sidebar":"classic"}function Bn(){const{prefs:e,save:t}=bt();return mr(r=>{const n=On(e);t(function(e,t){const r={layout_mode:t};return"classic"===t&&"maximized"===e.default_window_size&&(r.default_window_size="large"),r}(e,r)),"classic"===r&&"classic"===n&&(Te(),window.dispatchEvent(new CustomEvent("react-os-shell:restore-windowed")))},[e,t])}function zn(e,t){return`rosh-wtab-${t}-${e.replace(/[^A-Za-z0-9_-]/g,"_")}`}function Hn(e,t){let r=e.route;if("page"!==e.type&&e.entityType){const t=Ne[e.entityType];r=t&&Ye(t)?t.icon:void 0}return r?t[r]??void 0:void 0}var Un=(e,t,r)=>He(e)?.menu?.open(t,r),Kn=e=>He(e)?.menu?.items()??[];function Xn({left:e,navIcons:t,home:r,end:n}){const o=Qt().layout,{openWindows:a,remove:l}=ke(),i=Pe();sr(Oe,Be,Be);const s=pr(()=>{const e=a.filter(ze),t=r?e.find(e=>"page"===e.type&&e.route===r):void 0;return t?[t,...e.filter(e=>e!==t)]:e},[a,r]).map(e=>{const n=He(e.id),o=!!r&&"page"===e.type&&e.route===r;return{key:e.id,title:n?.title||e.label,icon:Hn(e,t),pinned:o,dirty:n?.dirty??!1,copy:n?.copy}}),c=mr((e,t)=>{const r=t?s.findIndex(e=>e.key===t):-1;s.filter((n,o)=>!n.pinned&&("all"===e||("others"===e?n.key!==t:o>r))).forEach(e=>l(e.key))},[s,l]);/* @__PURE__ */
|
|
180
180
|
return Cr("div",{className:"fixed top-0 right-0 z-(--z-taskbar)",style:{left:e,height:Ze},children:/* @__PURE__ */Cr(E,{tabs:s,activeKey:i,idFor:zn,onActivate:Ue,onClose:l,onCloseMany:c,label:o.openWindows,className:"relative flex h-full shrink-0 items-end gap-3 bg-gray-100 pl-3 pr-4",activeClassName:"z-[1] border-gray-200 bg-[rgb(var(--window-content-rgb))] text-gray-900",end:n,onIconMenu:Un,menuItems:Kn})})}function Vn({onComplete:e,ready:t=!1,productName:r="efficient-shell",subtitle:n,logo:o="/favicon.svg",adaptiveLogo:a=!1,logoHasAlpha:l=null,logoIsLight:i=null}){const[s,c]=cr("logo"),[d,u]=cr(!1),m=ur(e);m.current=e;const h=ur(!1);return dr(()=>{const e=setTimeout(()=>c("text"),600),t=setTimeout(()=>u(!0),2e3),r=setTimeout(()=>{h.current||(h.current=!0,c("fade"),setTimeout(()=>m.current(),500))},5e3);return()=>{clearTimeout(e),clearTimeout(t),clearTimeout(r)}},[]),dr(()=>{if(!t||!d||h.current)return;h.current=!0,c("fade");const e=setTimeout(()=>m.current(),500);return()=>clearTimeout(e)},[t,d]),/* @__PURE__ */Nr("div",{"data-startup-animation":"",className:"fixed inset-0 z-(--z-overlay) flex flex-col items-center justify-center transition-opacity duration-500 "+("fade"===s?"opacity-0 pointer-events-none":"opacity-100"),style:{background:"linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)"},children:[
|
|
181
181
|
/* @__PURE__ */Cr("div",{className:"absolute inset-0 overflow-hidden",children:/* @__PURE__ */Cr("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full opacity-20",style:{background:"radial-gradient(circle, rgba(124,58,237,0.4) 0%, transparent 70%)",animation:"pulse-glow 2s ease-in-out infinite"}})}),
|
|
182
182
|
/* @__PURE__ */Cr("div",{className:"relative transition-all duration-700 ease-out "+("logo"===s?"scale-75 opacity-0":"scale-100 opacity-100"),children:/* @__PURE__ */Cr(ne,{src:o,alt:"",slot:"compact",surface:"dark",size:80,adaptive:a,hasAlpha:l,isLight:i,decorative:!0,className:"drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]",style:{animation:"spin-in 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards"}})}),
|
|
183
183
|
/* @__PURE__ */Nr("div",{className:"mt-6 text-center transition-all duration-500 "+("logo"!==s?"opacity-100 translate-y-0":"opacity-0 translate-y-4"),children:[
|
|
184
184
|
/* @__PURE__ */Cr("h1",{className:"text-2xl font-bold tracking-[0.3em] text-white/90 uppercase",children:r}),
|
|
185
185
|
/* @__PURE__ */Cr("div",{className:"mt-2 flex items-center justify-center gap-2",children:[0,1,2].map(e=>/* @__PURE__ */Cr("div",{className:"w-1.5 h-1.5 rounded-full bg-purple-400",style:{animation:`dot-bounce 1s ease-in-out ${.15*e}s infinite`}},e))})]}),n&&/* @__PURE__ */Cr("div",{className:"absolute bottom-8 transition-all duration-500 "+("logo"!==s?"opacity-40":"opacity-0"),children:/* @__PURE__ */Cr("p",{className:"text-2xs text-white/40 font-mono tracking-wider",children:n})}),
|
|
186
|
-
/* @__PURE__ */Cr("style",{children:"\n @keyframes spin-in {\n 0% { transform: scale(0) rotate(-180deg); opacity: 0; }\n 100% { transform: scale(1) rotate(0deg); opacity: 1; }\n }\n @keyframes dot-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }\n 40% { transform: scale(1); opacity: 1; }\n }\n @keyframes pulse-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: the fades stay, the movement goes. animation:none\n * (stylesheet !important beats the inline animation shorthands) parks\n * the spin/bounce/pulse at their base state; restricting transitions\n * to opacity turns the slide/scale phases into plain cross-fades.\n * Timings and the ready-gating are untouched — this is about motion,\n * not about how long the splash holds. */\n @media (prefers-reduced-motion: reduce) {\n [data-startup-animation], [data-startup-animation] * {\n animation: none !important;\n transition-property: opacity !important;\n }\n }\n "})]})}function Yn({onComplete:e,subtitle:t,logo:r="/favicon.svg",adaptiveLogo:n=!1,logoHasAlpha:o=null,logoIsLight:a=null}){const[l,i]=cr("show"),s=
|
|
186
|
+
/* @__PURE__ */Cr("style",{children:"\n @keyframes spin-in {\n 0% { transform: scale(0) rotate(-180deg); opacity: 0; }\n 100% { transform: scale(1) rotate(0deg); opacity: 1; }\n }\n @keyframes dot-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }\n 40% { transform: scale(1); opacity: 1; }\n }\n @keyframes pulse-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: the fades stay, the movement goes. animation:none\n * (stylesheet !important beats the inline animation shorthands) parks\n * the spin/bounce/pulse at their base state; restricting transitions\n * to opacity turns the slide/scale phases into plain cross-fades.\n * Timings and the ready-gating are untouched — this is about motion,\n * not about how long the splash holds. */\n @media (prefers-reduced-motion: reduce) {\n [data-startup-animation], [data-startup-animation] * {\n animation: none !important;\n transition-property: opacity !important;\n }\n }\n "})]})}function Yn({onComplete:e,subtitle:t,logo:r="/favicon.svg",adaptiveLogo:n=!1,logoHasAlpha:o=null,logoIsLight:a=null}){const[l,i]=cr("show"),s=Qt();return dr(()=>{x();const t=setTimeout(()=>i("out"),800),r=setTimeout(e,2300);return()=>{clearTimeout(t),clearTimeout(r)}},[e]),/* @__PURE__ */Nr("div",{"data-logout-animation":"",className:"fixed inset-0 z-(--z-overlay) flex flex-col items-center justify-center",style:{background:"linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)"},children:[
|
|
187
187
|
/* @__PURE__ */Cr("div",{className:"absolute inset-0 overflow-hidden",children:/* @__PURE__ */Cr("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full",style:{background:"radial-gradient(circle, rgba(124,58,237,0.4) 0%, transparent 70%)",animation:"logout-glow 2s ease-in-out infinite",opacity:"show"===l?.2:0,transition:"opacity 1s"}})}),
|
|
188
188
|
/* @__PURE__ */Cr("div",{className:"relative transition-all duration-1000 ease-in "+("out"===l?"scale-0 opacity-0":"scale-100 opacity-100"),style:"out"===l?{transform:"scale(0) rotate(180deg)"}:void 0,children:/* @__PURE__ */Cr(ne,{src:r,alt:"",slot:"compact",surface:"dark",size:80,adaptive:n,hasAlpha:o,isLight:a,decorative:!0,className:"drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]"})}),
|
|
189
189
|
/* @__PURE__ */Nr("div",{className:"mt-6 text-center transition-all duration-700 "+("show"===l?"opacity-100 translate-y-0":"opacity-0 translate-y-4"),children:[
|
|
@@ -261,7 +261,7 @@ return Cr("button",{onClick:()=>a(e),title:t,onContextMenu:r=>{r.preventDefault(
|
|
|
261
261
|
/* @__PURE__ */Nr(Mt,{onClick:()=>{s(null),a(i.path)},children:[(()=>{const e=o[i.path];return e&&fr(e)?yr(e,{className:"h-4 w-4 text-gray-400"}):/* @__PURE__ */Cr("span",{className:"w-4"})})(),"Open ",i.label]}),
|
|
262
262
|
/* @__PURE__ */Cr(_t,{}),
|
|
263
263
|
/* @__PURE__ */Nr(Mt,{danger:!0,onClick:()=>{s(null),l(i.path)},children:[
|
|
264
|
-
/* @__PURE__ */Cr(tr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),"Remove from Favorites"]})]})]});var d,u}function mo({branding:t,productName:r="efficient-shell",productIcon:n="/favicon.svg",wallpapers:o,navSections:a=qe,navIcons:l=Je,sectionIcons:i=Qe,categories:s=Ge,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,_=t?.logoHasAlpha??null,E=t?.logoIsLight??null,T=An(),{user:M,logout:L,hasAnyPerm:P}=w(),{openPage:I,openEntity:D,openWindows:A,remove:R}=ke(),W=
|
|
264
|
+
/* @__PURE__ */Cr(tr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),"Remove from Favorites"]})]})]});var d,u}function mo({branding:t,productName:r="efficient-shell",productIcon:n="/favicon.svg",wallpapers:o,navSections:a=qe,navIcons:l=Je,sectionIcons:i=Qe,categories:s=Ge,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,_=t?.logoHasAlpha??null,E=t?.logoIsLight??null,T=An(),{user:M,logout:L,hasAnyPerm:P}=w(),{openPage:I,openEntity:D,openWindows:A,remove:R}=ke(),W=Qt().layout,[j,F]=cr(!1),O=xt(),B=M||{};$();const{favorites:z,toggle:H,desktopBg:U}=function(e){const{prefs:t,save:r}=bt(),n=t.favorite_pages||[],o=mr(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=ur(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=mr(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:o,isFavorite:e=>n.includes(e),desktopBg:s,setDesktopBg:c}}(o??T.wallpapers?.map(e=>e.src)),{url:K}=Fn(U),{prefs:X,save:V}=bt(),Y=On(X),G="sidebar"===Y,q=Bn(),[J,ie]=Kt(()=>v(k(N),window.innerWidth),!1),se=mr(()=>{ie(e=>(C(N,String(!e)),!e))},[ie]),ce=G?J?et:tt:0,de=X.taskbar_position||"bottom",ue=G?"top":de,me=X.taskbar_size||"medium",he=X.desktop_dblclick||"deactivate",pe="left"===ue||"right"===ue,ge=G?Ze:pe?0:"small"===me?42:"large"===me?72:56,fe=pe?"small"===me?180:"large"===me?260:220:0,ye="small"===me?2:"large"===me?6:4,be="small"===me?"h-[42px]":"large"===me?"h-[72px]":"h-14",xe="small"===me?"w-[180px]":"large"===me?"w-[260px]":"w-[220px]",we=!!X.reduce_transparency,ve=we?1:(X.transparency_taskbar??70)/100,Se=(X.transparency_start_menu??95)/100,_e=(X.transparency_inactive_header??70)/100,Ee=(X.transparency_inactive_content??80)/100,Me=(X.transparency_active_header??80)/100,Ie=(X.transparency_active_content??90)/100;dr(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",we),e.style.setProperty("--inactive-header-opacity",String(_e)),e.style.setProperty("--inactive-content-opacity",String(Ee)),e.style.setProperty("--active-header-opacity",String(Me)),e.style.setProperty("--active-content-opacity",String(Ie)),e.style.setProperty("--menu-opacity",String(Se)),e.style.setProperty("--taskbar-height",`${ge}px`),e.style.setProperty("--taskbar-width",`${fe}px`),e.style.setProperty("--taskbar-position",ue),e.style.setProperty("--sidebar-width",`${ce}px`),e.style.setProperty("--layout-mode",Y),"sidebar"===Xe.current&&"classic"===Y&&Te(),Xe.current=Y,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(rt)),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)},[we,_e,Ee,Me,Ie,ge,fe,ue,X.default_window_size,X.window_position,X.menu_density,X.start_menu_size,ce,Y]);const $e=pr(()=>{if(!f)return null;const e=Ne[f];if(!e||!Ce(e))return null;const t=e;return t.widget||t.utility?null:f},[f]),De=G&&!O?$e:null;dr(()=>{Le(De)},[De]),dr(()=>()=>Le(null),[]);const Ae=!!De&&A.some(e=>"page"===e.type&&e.route===De);dr(()=>{De&&!Ae&&I(De,{background:!0,shellOwned:!0})},[De,Ae,I]),dr(()=>{G||A.filter(e=>e.shellOwned).forEach(e=>R(e.id))},[G,A,R]);const Re=Pe(),We=G?A.find(e=>e.id===Re)?.route??null:null,je=pr(()=>G?Q(Z(a,s,P),P,W.pageResult):null,[G,a,s,P,W.pageResult]),Fe=pr(()=>je?[je,...u?.providers??[]]:u?.providers,[je,u?.providers]),Oe=pr(()=>ee(X.search_recent),[X.search_recent]),Be=pr(()=>te(X.favorite_documents,W.pageResult),[X.favorite_documents,W.pageResult]),ze=mr(e=>V({search_recent:re(Oe,e)}),[Oe,V]),He="__react-os-shell:switch-to-sidebar",Ue=pr(()=>({...s,footerItems:[...s.footerItems??[],{to:He,label:W.switchToSidebar,onSelect:()=>q("sidebar")}]}),[s,W.switchToSidebar,q]),Ke=pr(()=>({...l,[He]:/* @__PURE__ */Cr(tr,{name:"layout",className:"h-4 w-4",strokeWidth:1.5})}),[l]);dr(()=>{document.documentElement.style.setProperty("--mobile-bottom-nav","0px")},[]);const Xe=ur(Y),[Ve,Ye]=cr(!1),[nt,ot]=cr(!!document.fullscreenElement),[at,lt]=cr(null),[it,st]=cr(!1),ct=mr((e,t)=>{V({[e]:t})},[V]),dt=mr(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{}},[]);dr(()=>{const e=()=>{ot(!!document.fullscreenElement),!document.fullscreenElement&&navigator.keyboard?.unlock&&navigator.keyboard.unlock()};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const ut=ur(!1);dr(()=>{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,ht]=cr(!1),pt=ur(!1);dr(()=>{if(pt.current)return;pt.current=!0;const e="erp_startup_shown";sessionStorage.getItem(e)||(sessionStorage.setItem(e,"1"),ht(!0))},[]);const gt=ur(!1);dr(()=>{!gt.current&&mt&&(gt.current=!0,setTimeout(()=>c(),500))},[mt]),dr(()=>{const e=e=>{if((e.ctrlKey||e.metaKey)&&"."===e.key&&(e.preventDefault(),G?se():F(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,G,se]);const ft=mr(async()=>{const{confirm:e}=await(import("./ConfirmDialog-AVFQGXKL.js"));await e({title:W.signOutTitle,message:W.signOutMessage,confirmLabel:W.signOut,variant:"warning"})&&st(!0)},[W]),yt=/* @__PURE__ */Nr(Sr,{children:[
|
|
265
265
|
/* @__PURE__ */Cr(ao,{}),m,d&&/* @__PURE__ */Cr(Ur,{...d}),
|
|
266
266
|
/* @__PURE__ */Cr(lo,{clockCalendar:h})]});/* @__PURE__ */
|
|
267
267
|
return Nr("div",{className:"flex flex-col h-screen",children:[
|
|
@@ -284,7 +284,7 @@ return Nr("div",{className:"flex flex-col h-screen",children:[
|
|
|
284
284
|
/* @__PURE__ */Cr(ao,{}),m,d&&/* @__PURE__ */Cr(Ur,{...d,popDirection:"right"===ue?"left":"right"})]})}):yt]})]})})(),at&&/* @__PURE__ */Cr(co,{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:T.onReportBug,onSwitchLayout:()=>q("sidebar"),switchLayoutLabel:W.switchToSidebar}),
|
|
285
285
|
/* @__PURE__ */Cr(oe,{...u,providers:Fe,recent:Oe,favorites:Be,onRecord:ze,onSelect:e=>{if(e.entity_type===ae){const{path:t,search:r}=le(e.entity_id),n=je?.destinations.find(e=>e.to===t);return void(n?.onSelect?n.onSelect():I(t,r?{search:r}:{reuse:!0}))}D(e.entity_type,e.entity_id,void 0,e.label)}}),
|
|
286
286
|
/* @__PURE__ */Cr(Rr,{}),
|
|
287
|
-
/* @__PURE__ */Cr(Hr,{disabled:!g})]})}var ho=[{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]"}],po=["add","edit","trash","search","download","settings","bell","warning"],go=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],fo=[];function yo(){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 bo(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 xo({omit:a,section:l}={}){const i=new Set(a??[]),s=e=>void 0===l||l===e,c=An(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:fo,{prefs:u,save:m}=bt(),[h,p]=cr({}),g=e=>e in h?h[e]:u[e];dr(()=>{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));K(t),p(t=>({...t,...e})),m(e)};sr(rr,nr,nr);const b=or(),x=g("theme")||"system",w=D(x),v=u.desktop_bg||(d.length>0?"random":"none"),k=ur(d.length>0?d[Math.floor(Math.random()*d.length)].src:"none"),N="random"===v?k.current:v,C=u.desktop_bg_custom||"",S=N?.startsWith("#"),_=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),E=!S&&"none"!==N&&"random"!==v&&N&&!_.has(N),{url:T,refresh:M}=Fn(N,C),L=e(N,T),P=e(N===t?N:C||N,T),[I,$]=cr(null),[W,j]=cr(!1),F=(e,t)=>{m({[e]:t})},O=
|
|
287
|
+
/* @__PURE__ */Cr(Hr,{disabled:!g})]})}var ho=[{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]"}],po=["add","edit","trash","search","download","settings","bell","warning"],go=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],fo=[];function yo(){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 bo(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 xo({omit:a,section:l}={}){const i=new Set(a??[]),s=e=>void 0===l||l===e,c=An(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:fo,{prefs:u,save:m}=bt(),[h,p]=cr({}),g=e=>e in h?h[e]:u[e];dr(()=>{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));K(t),p(t=>({...t,...e})),m(e)};sr(rr,nr,nr);const b=or(),x=g("theme")||"system",w=D(x),v=u.desktop_bg||(d.length>0?"random":"none"),k=ur(d.length>0?d[Math.floor(Math.random()*d.length)].src:"none"),N="random"===v?k.current:v,C=u.desktop_bg_custom||"",S=N?.startsWith("#"),_=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),E=!S&&"none"!==N&&"random"!==v&&N&&!_.has(N),{url:T,refresh:M}=Fn(N,C),L=e(N,T),P=e(N===t?N:C||N,T),[I,$]=cr(null),[W,j]=cr(!1),F=(e,t)=>{m({[e]:t})},O=Qt().layout,B=On(u),z=Bn(),H=!!g("reduce_transparency"),[U,X]=cr({}),V=ur({}),Y=mr((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)),V.current[e]&&clearTimeout(V.current[e]),V.current[e]=setTimeout(()=>{F(e,t),X(t=>{const r={...t};return delete r[e],r})},300)},[F]);dr(()=>()=>{Object.values(V.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=bo(w,"bg-white/90","bg-[#1e1e2e]/90","bg-pink-50/90","bg-green-50/90","bg-gray-200/90","bg-blue-50/90"),Z=bo(w,"bg-gray-200","bg-[#313244]","bg-pink-200","bg-green-200","bg-gray-400","bg-blue-200"),ee=bo(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=bo(w,"bg-gray-100","bg-[#313244]","bg-pink-50","bg-green-50","bg-gray-300","bg-blue-100"),re=bo(w,"bg-blue-600","bg-blue-500","bg-pink-600","bg-green-600","bg-gray-700","bg-blue-700");/* @__PURE__ */
|
|
288
288
|
return Nr("div",{className:"space-y-6",children:[s("appearance")&&/* @__PURE__ */Nr(Sr,{children:[
|
|
289
289
|
/* @__PURE__ */Cr("div",{className:"flex justify-center",children:/* @__PURE__ */Cr("div",{className:"rounded-lg border border-gray-200 overflow-hidden",style:{width:480},children:/* @__PURE__ */Nr("div",{className:"relative",style:{height:300},children:[S?/* @__PURE__ */Cr("div",{className:"absolute inset-0",style:{backgroundColor:N}}):/* @__PURE__ */Cr("img",{src:L,alt:"",className:"absolute inset-0 w-full h-full object-cover"}),
|
|
290
290
|
/* @__PURE__ */Nr("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:[
|
|
@@ -422,7 +422,7 @@ return Nr("div",{className:"flex items-center gap-3",children:[
|
|
|
422
422
|
/* @__PURE__ */Cr("span",{className:"text-sm text-gray-700",children:"Reopen windows from the last session"}),
|
|
423
423
|
/* @__PURE__ */Cr("span",{className:"text-xs text-gray-400 ml-1",children:"— on login"})]}),
|
|
424
424
|
/* @__PURE__ */Cr(wo,{})]}),
|
|
425
|
-
/* @__PURE__ */Cr(Ie,{children:/* @__PURE__ */Cr("span",{className:"text-xs text-gray-400",children:"Changes are saved automatically"})})]})}function wo(){const[e,t]=cr(d()),[r,n]=cr(u()),o=
|
|
425
|
+
/* @__PURE__ */Cr(Ie,{children:/* @__PURE__ */Cr("span",{className:"text-xs text-gray-400",children:"Changes are saved automatically"})})]})}function wo(){const[e,t]=cr(d()),[r,n]=cr(u()),o=Qt().sounds;/* @__PURE__ */
|
|
426
426
|
return Nr("div",{className:"mt-2 space-y-2",children:[
|
|
427
427
|
/* @__PURE__ */Nr("label",{className:"flex items-center gap-2 cursor-pointer",children:[
|
|
428
428
|
/* @__PURE__ */Cr("input",{type:"checkbox",checked:e,onChange:e=>{localStorage.setItem("erp_sounds",String(e.target.checked)),t(e.target.checked)},className:"h-4 w-4 rounded border-gray-300 text-blue-600"}),
|
|
@@ -454,7 +454,7 @@ return Nr("div",{className:"space-y-6",children:[
|
|
|
454
454
|
/* @__PURE__ */Cr(Ie,{children:/* @__PURE__ */Cr("span",{className:"text-xs text-gray-400",children:"Changes are saved automatically"})})]})}function So({label:e,options:t,value:r,onChange:n}){/* @__PURE__ */
|
|
455
455
|
return Nr("div",{className:"flex items-center gap-3",children:[
|
|
456
456
|
/* @__PURE__ */Cr("span",{className:"text-sm text-gray-700 w-40 shrink-0",children:e}),
|
|
457
|
-
/* @__PURE__ */Cr("div",{className:"flex gap-2",children:t.map(e=>/* @__PURE__ */Cr("button",{type:"button",onClick:()=>n(e.key),className:"px-3 py-2 text-xs font-medium rounded-lg border transition-colors "+(r===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},e.key))})]})}function _o(){const[e,t]=cr(d()),[r,n]=cr(u()),o=
|
|
457
|
+
/* @__PURE__ */Cr("div",{className:"flex gap-2",children:t.map(e=>/* @__PURE__ */Cr("button",{type:"button",onClick:()=>n(e.key),className:"px-3 py-2 text-xs font-medium rounded-lg border transition-colors "+(r===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},e.key))})]})}function _o(){const[e,t]=cr(d()),[r,n]=cr(u()),o=Qt().sounds;/* @__PURE__ */
|
|
458
458
|
return Nr("div",{className:"space-y-4",children:[
|
|
459
459
|
/* @__PURE__ */Cr("h3",{className:"text-sm font-semibold text-gray-900",children:o.title}),
|
|
460
460
|
/* @__PURE__ */Nr("label",{className:"flex items-center gap-2 cursor-pointer",children:[
|
|
@@ -468,7 +468,7 @@ return Nr("div",{className:"space-y-4",children:[
|
|
|
468
468
|
return Cr(J,{storageKey:"shell.systemPreferences.sidebarWidth",defaultWidth:240,minWidth:200,maxWidth:360,className:r,sidebarClassName:"border-r border-gray-200 bg-gray-50",sidebar:/* @__PURE__ */Cr("nav",{className:"px-1 py-2 space-y-0.5",children:e.map(e=>{const t=e.key===o;/* @__PURE__ */
|
|
469
469
|
return Nr("button",{type:"button",onClick:()=>a(e.key),className:"w-full text-left rounded-lg px-3 py-3 text-sm transition-colors flex items-start gap-3 "+(t?"bg-blue-50 text-blue-700":"hover:bg-gray-100 text-gray-700"),children:[e.icon&&/* @__PURE__ */Cr("span",{className:"mt-0.5 "+(t?"text-blue-600":"text-gray-400"),children:e.icon}),
|
|
470
470
|
/* @__PURE__ */Nr("span",{className:"min-w-0",children:[
|
|
471
|
-
/* @__PURE__ */Cr("span",{className:"block "+(t?"font-semibold text-blue-700":"font-medium text-gray-800"),children:e.label}),e.description&&/* @__PURE__ */Cr("span",{className:"block text-2xs text-gray-500 mt-0.5",children:e.description})]})]},e.key)})}),children:/* @__PURE__ */Cr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})})}var To;function Mo(e,t,r,n,o,a){const[l,i]=cr(-1),s=ur(e),c=ur(t),d=ur(r),u=ur(n),m=ur(o),h=ur(l),p=ur(-1),g=$e(),f=ur(g),y=ur(a),b=ur(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=ur(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};dr(()=>()=>clearTimeout(x.current),[]);const v=ur(e.length);return dr(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),dr(()=>{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)}},[]),dr(()=>{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)},[]),dr(()=>{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?.(je)??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)},[]),dr(()=>{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 Lo(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function Po(e,t){return["react-os-shell","default-columns",e,t]}function Io(e){const t=pr(Lo,[]),r=gr(Lr)||(To||(To=new Pr),To),{data:n}=Tr({queryKey:Po(e??"",t),queryFn:()=>We.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&Re(),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 Do(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 Ao(e,t){const{prefs:r,save:n}=bt(),o=`columns_${e}`,a=r[o],{defaultConfig:l}=Io(e),[i,s]=cr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return Do([...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 Do(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=cr(null),[u,m]=cr(null),h=ur(null),p=ur(!1),g=ur(a);g.current=a;const f=ur(null),y=ur(n);y.current=n;const b=mr(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]);dr(()=>{if(p.current||!Array.isArray(a))return;const r=new Set(a.map(e=>e.key)),n=Do([...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]),dr(()=>{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=Do(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=ur(/* @__PURE__ */new Map);dr(()=>{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 Do(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=mr((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=mr(e=>{d(e)},[]),N=mr((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=mr((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=mr(()=>{d(null),m(null)},[]),_=mr(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]),E=mr(()=>{const e=Do(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:_,resetColumns:E,draggedIdx:c,dropGap:u}}function Ro({tableId:e,columns:t,sort:r,onSort:n,footer:o,afterBody:a,saveDefaultPerms:l=["change_numberingconfig"],children:i}){const s=xt(),[c,d]=cr(!1),u=pr(()=>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}=Ao(e,u),{hasAnyPerm:N}=nt(),C=
|
|
471
|
+
/* @__PURE__ */Cr("span",{className:"block "+(t?"font-semibold text-blue-700":"font-medium text-gray-800"),children:e.label}),e.description&&/* @__PURE__ */Cr("span",{className:"block text-2xs text-gray-500 mt-0.5",children:e.description})]})]},e.key)})}),children:/* @__PURE__ */Cr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:l?.render()})})}var To;function Mo(e,t,r,n,o,a){const[l,i]=cr(-1),s=ur(e),c=ur(t),d=ur(r),u=ur(n),m=ur(o),h=ur(l),p=ur(-1),g=$e(),f=ur(g),y=ur(a),b=ur(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=ur(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};dr(()=>()=>clearTimeout(x.current),[]);const v=ur(e.length);return dr(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),dr(()=>{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)}},[]),dr(()=>{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)},[]),dr(()=>{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?.(je)??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)},[]),dr(()=>{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 Lo(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function Po(e,t){return["react-os-shell","default-columns",e,t]}function Io(e){const t=pr(Lo,[]),r=gr(Lr)||(To||(To=new Pr),To),{data:n}=Tr({queryKey:Po(e??"",t),queryFn:()=>We.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&Re(),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 Do(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 Ao(e,t){const{prefs:r,save:n}=bt(),o=`columns_${e}`,a=r[o],{defaultConfig:l}=Io(e),[i,s]=cr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return Do([...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 Do(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=cr(null),[u,m]=cr(null),h=ur(null),p=ur(!1),g=ur(a);g.current=a;const f=ur(null),y=ur(n);y.current=n;const b=mr(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]);dr(()=>{if(p.current||!Array.isArray(a))return;const r=new Set(a.map(e=>e.key)),n=Do([...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]),dr(()=>{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=Do(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=ur(/* @__PURE__ */new Map);dr(()=>{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 Do(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=mr((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=mr(e=>{d(e)},[]),N=mr((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=mr((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=mr(()=>{d(null),m(null)},[]),_=mr(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]),E=mr(()=>{const e=Do(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:_,resetColumns:E,draggedIdx:c,dropGap:u}}function Ro({tableId:e,columns:t,sort:r,onSort:n,footer:o,afterBody:a,saveDefaultPerms:l=["change_numberingconfig"],children:i}){const s=xt(),[c,d]=cr(!1),u=pr(()=>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}=Ao(e,u),{hasAnyPerm:N}=nt(),C=Qt().columns,[S,_]=cr(!1),[E,T]=cr(!1),[M,L]=cr(!1),P=ur(null),I=l.length>0&&N(l);W(P,mr(()=>{S&&_(!1)},[S]));const $=m.reduce((e,t)=>e+t.width,0),D=m.map(e=>`${e.width}px`),A={tableLayout:"fixed",width:$,minWidth:"100%"},R=ur(null),j=mr(e=>{const t=R.current;t&&(t.scrollLeft=e.currentTarget.scrollLeft)},[]),F=pr(()=>t.some(e=>"_select"===e.key),[t]);/* @__PURE__ */
|
|
472
472
|
return Nr("div",{className:"flex flex-col flex-1 min-h-0 "+(s?"-mx-4":""),children:[
|
|
473
473
|
/* @__PURE__ */Cr("div",{ref:R,className:"shrink-0 overflow-x-hidden",children:/* @__PURE__ */Nr("table",{className:"divide-y divide-gray-200",style:A,children:[
|
|
474
474
|
/* @__PURE__ */Cr("colgroup",{children:m.map((e,t)=>/* @__PURE__ */Cr("col",{style:{width:D[t]}},e.key))}),
|
|
@@ -483,7 +483,7 @@ return Nr("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500
|
|
|
483
483
|
/* @__PURE__ */Cr("button",{onClick:w,className:"text-2xs text-gray-400 hover:text-gray-600",children:C.reset}),
|
|
484
484
|
/* @__PURE__ */Cr("button",{onClick:()=>_(!S),className:"text-gray-400 hover:text-gray-600",title:C.choose,children:/* @__PURE__ */Cr(tr,{name:"adjust",className:"w-4 h-4",strokeWidth:"1.5"})}),S&&/* @__PURE__ */Nr("div",{className:"absolute bottom-full right-0 mb-1 w-52 rounded-(--radius-popup) z-(--z-popup) py-1 max-h-80 overflow-y-auto",style:Bt(),children:[
|
|
485
485
|
/* @__PURE__ */Cr("p",{className:"px-3 py-2 text-3xs font-semibold text-gray-400 uppercase",children:C.heading}),h.filter(e=>"_select"!==e.key).map(e=>/* @__PURE__ */Nr("label",{className:"flex items-center gap-2 px-3 py-1 text-sm text-gray-700 hover:bg-gray-50 cursor-pointer",children:[
|
|
486
|
-
/* @__PURE__ */Cr("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__ */Cr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */Cr("button",{onClick:async()=>{T(!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 We.patch(`/auth/default-columns/${e}/`,o,{params:{viewport:n}}).catch(()=>We.post("/auth/default-columns/",{table_id:e,viewport:n,...o})),L(!0),setTimeout(()=>L(!1),2e3)}catch{}T(!1)},disabled:E,className:"text-2xs w-full text-center py-1 rounded "+(M?"text-green-600":"text-gray-500 hover:text-blue-600"),children:E?"...":M?C.savedDefault:C.saveDefault})})]})]})]})]})}function Wo(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function jo(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Fo(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:_="export.csv",contextActions:E}=e,[T,M]=cr(null),L=ur(null),P=
|
|
486
|
+
/* @__PURE__ */Cr("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__ */Cr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */Cr("button",{onClick:async()=>{T(!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 We.patch(`/auth/default-columns/${e}/`,o,{params:{viewport:n}}).catch(()=>We.post("/auth/default-columns/",{table_id:e,viewport:n,...o})),L(!0),setTimeout(()=>L(!1),2e3)}catch{}T(!1)},disabled:E,className:"text-2xs w-full text-center py-1 rounded "+(M?"text-green-600":"text-gray-500 hover:text-blue-600"),children:E?"...":M?C.savedDefault:C.saveDefault})})]})]})]})]})}function Wo(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function jo(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Fo(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:_="export.csv",contextActions:E}=e,[T,M]=cr(null),L=ur(null),P=Qt(),I=P.entityList,$=e=>{f(t=>{const r=new Set(t),n=m(e);return r.has(n)?r.delete(n):r.add(n),r})},D=()=>{f(e=>{const r=t.map(m),n=new Set(e);return r.every(t=>e.has(t))?r.forEach(e=>n.delete(e)):r.forEach(e=>n.add(e)),n})},A=Mo(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})},L),R=t.filter(e=>g.has(m(e))),W=()=>{const e=[...L.current?.querySelectorAll("tr[data-row-idx]")??[]].filter(e=>{const r=t[Number(e.dataset.rowIdx)];return void 0!==r&&g.has(m(r))}),r=e.length?Wo(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=>Wo(e).map(jo))}},z=()=>{M(null);const{header:e,body:t}=W();if(!t.length)return;const r=[e,...t].map(e=>e.join("\t")).join("\n"),n="<table><thead><tr>"+e.map(e=>`<th>${ce(e)}</th>`).join("")+"</tr></thead><tbody>"+t.map(e=>`<tr>${e.map(e=>`<td>${ce(e)}</td>`).join("")}</tr>`).join("")+"</tbody></table>";B(I.copiedRows(t.length),r,n)},H=async()=>{M(null);const e=R.map(m);if(!e.length||!S)return;const t=new URLSearchParams({ids:e.join(",")}),r=(()=>{const e=new Map(d.map(e=>[e.key,e.exportLabel??e.label]));try{const t=localStorage.getItem(`col-config-${c}`);if(t){const r=JSON.parse(t).filter(t=>!t.hidden&&"_select"!==t.key&&e.has(t.key)).map(t=>`${t.key}|${e.get(t.key)}`);if(r.length)return r.join(",")}}catch{}return d.filter(e=>!e.defaultHidden).map(e=>`${e.key}|${e.exportLabel??e.label}`).join(",")})();r&&t.set("cols",r);const n=S.includes("?")?"&":"?";try{const r=await We.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=_,a.click(),window.URL.revokeObjectURL(o);const l=r.headers??{},i=Number(l["x-row-count"]);if("true"===String(l["x-truncated"]))return void ot.notify(Number.isFinite(i)?I.exportTruncated(i,e.length):I.exportTruncatedUnknown(e.length));ot.success(I.exported(e.length))}catch{ot.error(I.exportFailed)}};if(r)/* @__PURE__ */return Cr(De,{});if(a&&0===t.length)/* @__PURE__ */
|
|
487
487
|
return Cr(j,{title:i,message:s,onRetry:l});if(0===t.length)/* @__PURE__ */return Cr(Sr,{children:n});const U=t.length>0&&R.length===t.length,K=R.length>0&&!U,V=g.size-R.length,Y=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */Cr(F,{"aria-label":P.table.selectAll,checked:U,indeterminate:K,onChange:D,style:{height:14,width:14}})},...d],G=/* @__PURE__ */Cr(O,{selectedCount:R.length,hiddenSelectedCount:V,loadedCount:t.length,totalCount:o,label:w,isFetchingMore:N,extra:v}),q=k?/* @__PURE__ */Nr(Sr,{children:[
|
|
488
488
|
/* @__PURE__ */Cr("div",{ref:k}),N&&/* @__PURE__ */Cr("div",{className:"text-center py-3",children:/* @__PURE__ */Cr("span",{className:"text-sm text-gray-500",children:P.list.loadingMore})})]}):void 0;let J=null;if(T){const{x:e,y:r,item:n,text:a,firstColumn:i}=T,s=E?E(R):[],c=R.length,d=()=>M(null),u=void 0!==o&&o>t.length;J=/* @__PURE__ */Nr(Et,{portal:!0,style:{left:e,top:r},onClose:d,minWidth:210,children:[
|
|
489
489
|
/* @__PURE__ */Cr(Tt,{children:V>0?P.list.selectedNotShown(c,V):P.list.selected(c)}),
|
|
@@ -509,7 +509,7 @@ return Nr("div",{ref:i,className:"relative",children:[
|
|
|
509
509
|
/* @__PURE__ */Cr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r(""),l("")},className:"cursor-pointer",children:/* @__PURE__ */Cr(tr,{name:"close",look:"mini",className:"h-3.5 w-3.5"})}):/* @__PURE__ */Cr(tr,{name:"chevron-down",className:"h-3.5 w-3.5 transition-transform "+(n?"rotate-180":""),strokeWidth:2})]}),n&&/* @__PURE__ */Nr("div",{className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-(--z-popup) overflow-hidden",style:Bt(),children:[
|
|
510
510
|
/* @__PURE__ */Cr("div",{className:"p-1 border-b border-gray-100",children:/* @__PURE__ */Cr("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 h-8 px-3 text-sm focus:border-blue-400 focus:ring-0 outline-none"})}),
|
|
511
511
|
/* @__PURE__ */Nr("div",{className:"max-h-52 overflow-y-auto",children:[
|
|
512
|
-
/* @__PURE__ */Cr("button",{onClick:()=>{r(""),o(!1),l("")},className:"w-full text-left h-8 px-3 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__ */Cr("p",{className:"px-3 py-3 text-sm text-gray-400 text-center",children:"No matches"}):d.map(e=>/* @__PURE__ */Cr("button",{onClick:()=>{r(e.value),o(!1),l("")},className:"w-full text-left h-8 px-3 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 Xo(){const[e,t]=cr({}),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 Vo=e=>e>0?`${e.toFixed(0)} fps`:"stalled";function Yo(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: ${Sn(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 ${Vo(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} ${Vo(e.medianFps)} (worst ${e.worstMs.toFixed(0)} ms)`).join(" · ")}`);const s=t.worstMenus[0];s&&a.push(`Slowest menu: ${s.key} — ${Vo(s.medianFps)}`);const c=t.worstWindows[0];return c&&a.push(`Slowest window: ${c.key} — ${Vo(c.medianFps)}`),t.idle&&t.interacting&&a.push(`At rest ${Vo(t.idle.medianFps)} vs in use ${Vo(t.interacting.medianFps)}.`),a.push("",`Full log attached as ${e.filename}.`),a.join("\n")}function Go(e){return new File([e.json],e.filename,{type:"application/json"})}function qo(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 Jo(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 Qo(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=Jo(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 Zo(e){return e?e.replace(/[$¥¥€£,\s]/g,""):""}function ea(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 ta(e,t){return 0===t?"key":e.kind??"text"}function ra(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(Zo(e))).length>.5*t.length,a=t.every(e=>/^\d+$/.test(Zo(e)));if(r&&!n)return"key";if(n)return"price";if(o)return"price";if(a){return t.reduce((e,t)=>e+parseInt(Zo(t)),0)/t.length>10?"qty":"skip"}return"key"}function na(e,t){if(0===e.length||0===e[0].length)return null;const r=e[0].length,n=t.map((e,t)=>ta(e,t)),o=[];for(let t=0;t<r;t++){const r=e.map(e=>e[t]||"");o.push(ra(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 oa({csvPreview:e,targetColumns:t,onConfirm:r,onCancel:n}){const o=na(e,t),[a,l]=cr(o||new Array(t.length).fill(-1)),i=e[0]?.length||0,s=
|
|
512
|
+
/* @__PURE__ */Cr("button",{onClick:()=>{r(""),o(!1),l("")},className:"w-full text-left h-8 px-3 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__ */Cr("p",{className:"px-3 py-3 text-sm text-gray-400 text-center",children:"No matches"}):d.map(e=>/* @__PURE__ */Cr("button",{onClick:()=>{r(e.value),o(!1),l("")},className:"w-full text-left h-8 px-3 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 Xo(){const[e,t]=cr({}),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 Vo=e=>e>0?`${e.toFixed(0)} fps`:"stalled";function Yo(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: ${Sn(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 ${Vo(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} ${Vo(e.medianFps)} (worst ${e.worstMs.toFixed(0)} ms)`).join(" · ")}`);const s=t.worstMenus[0];s&&a.push(`Slowest menu: ${s.key} — ${Vo(s.medianFps)}`);const c=t.worstWindows[0];return c&&a.push(`Slowest window: ${c.key} — ${Vo(c.medianFps)}`),t.idle&&t.interacting&&a.push(`At rest ${Vo(t.idle.medianFps)} vs in use ${Vo(t.interacting.medianFps)}.`),a.push("",`Full log attached as ${e.filename}.`),a.join("\n")}function Go(e){return new File([e.json],e.filename,{type:"application/json"})}function qo(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 Jo(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 Qo(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=Jo(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 Zo(e){return e?e.replace(/[$¥¥€£,\s]/g,""):""}function ea(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 ta(e,t){return 0===t?"key":e.kind??"text"}function ra(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(Zo(e))).length>.5*t.length,a=t.every(e=>/^\d+$/.test(Zo(e)));if(r&&!n)return"key";if(n)return"price";if(o)return"price";if(a){return t.reduce((e,t)=>e+parseInt(Zo(t)),0)/t.length>10?"qty":"skip"}return"key"}function na(e,t){if(0===e.length||0===e[0].length)return null;const r=e[0].length,n=t.map((e,t)=>ta(e,t)),o=[];for(let t=0;t<r;t++){const r=e.map(e=>e[t]||"");o.push(ra(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 oa({csvPreview:e,targetColumns:t,onConfirm:r,onCancel:n}){const o=na(e,t),[a,l]=cr(o||new Array(t.length).fill(-1)),i=e[0]?.length||0,s=Qt().bulkImport,c=a[0]>=0;/* @__PURE__ */
|
|
513
513
|
return Nr("div",{className:"border border-blue-200 rounded-lg bg-blue-50 p-4 mb-3",children:[
|
|
514
514
|
/* @__PURE__ */Cr("p",{className:"text-sm font-medium text-gray-800 mb-3",children:s.mapTitle}),
|
|
515
515
|
/* @__PURE__ */Cr("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 mb-4",children:t.map((t,r)=>/* @__PURE__ */Nr("div",{className:"flex items-center gap-2",children:[
|
|
@@ -523,7 +523,7 @@ return Nr("div",{className:"border border-blue-200 rounded-lg bg-blue-50 p-4 mb-
|
|
|
523
523
|
/* @__PURE__ */Cr("span",{className:"text-xs text-gray-500",children:s.rowsDetected(e.length)}),
|
|
524
524
|
/* @__PURE__ */Nr("div",{className:"flex gap-2",children:[
|
|
525
525
|
/* @__PURE__ */Cr(Ke,{onClick:n,className:"text-sm text-gray-500 hover:text-gray-700",children:s.cancel}),
|
|
526
|
-
/* @__PURE__ */Cr("button",{type:"button",onClick:()=>r(a),disabled:!c,className:"bg-blue-600 text-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-700 disabled:opacity-50",children:s.confirmMapping})]})]})]})}function aa({rows:e,groups:t,columns:r,resolutions:n,onResolutionChange:o,onConfirm:a,onCancel:l}){const i=
|
|
526
|
+
/* @__PURE__ */Cr("button",{type:"button",onClick:()=>r(a),disabled:!c,className:"bg-blue-600 text-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-700 disabled:opacity-50",children:s.confirmMapping})]})]})]})}function aa({rows:e,groups:t,columns:r,resolutions:n,onResolutionChange:o,onConfirm:a,onCancel:l}){const i=Qt().bulkImport,s=t.reduce((e,t)=>{const r=n[t.key.toUpperCase()];return"skip"===r?e:"all"===r?e+t.rowIndices.length:e+1},0),c=t.reduce((e,t)=>{const r=n[t.key.toUpperCase()];return"skip"===r?e+t.rowIndices.length:"all"===r?e:e+(t.rowIndices.length-1)},0);/* @__PURE__ */
|
|
527
527
|
return Nr("div",{className:"border border-amber-200 rounded-lg bg-amber-50 p-4 mb-3",children:[
|
|
528
528
|
/* @__PURE__ */Cr("p",{className:"text-sm font-medium text-gray-800 mb-1",children:i.duplicatesTitle}),
|
|
529
529
|
/* @__PURE__ */Cr("p",{className:"text-xs text-gray-600 mb-3",children:i.duplicatesFound(t.length)}),
|
|
@@ -542,7 +542,7 @@ return Nr("div",{className:"border border-amber-200 rounded bg-white p-3",childr
|
|
|
542
542
|
/* @__PURE__ */Cr("span",{className:"text-xs text-gray-600",children:i.keptDropped(s,c)}),
|
|
543
543
|
/* @__PURE__ */Nr("div",{className:"flex gap-2",children:[
|
|
544
544
|
/* @__PURE__ */Cr(Ke,{onClick:l,className:"text-sm text-gray-500 hover:text-gray-700",children:i.cancel}),
|
|
545
|
-
/* @__PURE__ */Cr("button",{type:"button",onClick:a,className:"bg-blue-600 text-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-700",children:i.proceed})]})]})]})}function la({rows:e,groups:t,columns:r,onConfirm:n,onCancel:o}){const a=r[0].key,l=t.reduce((e,t)=>e+t.rowIndices.length,0),i=
|
|
545
|
+
/* @__PURE__ */Cr("button",{type:"button",onClick:a,className:"bg-blue-600 text-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-700",children:i.proceed})]})]})]})}function la({rows:e,groups:t,columns:r,onConfirm:n,onCancel:o}){const a=r[0].key,l=t.reduce((e,t)=>e+t.rowIndices.length,0),i=Qt().bulkImport,s=Zt();/* @__PURE__ */
|
|
546
546
|
return Nr("div",{className:"border border-amber-200 rounded-lg bg-amber-50 p-4 mb-3",children:[
|
|
547
547
|
/* @__PURE__ */Cr("p",{className:"text-sm font-medium text-gray-800 mb-1",children:i.duplicatesTitle}),
|
|
548
548
|
/* @__PURE__ */Cr("p",{className:"text-xs text-gray-600 mb-3",children:i.duplicatesMerged(t.length)}),
|
|
@@ -553,23 +553,23 @@ return Nr("div",{className:"border border-amber-200 rounded-lg bg-amber-50 p-4 m
|
|
|
553
553
|
return Cr("td",{className:"px-2 py-1 font-mono font-medium text-gray-800",children:t.key},r.key);const n=t.rowIndices.map(t=>(e[t]?.[r.key]??"").trim()).filter(e=>""!==e&&Number.isFinite(Number(e))).map(Number);if(0===n.length)/* @__PURE__ */
|
|
554
554
|
return Cr("td",{className:"px-2 py-1 text-gray-300",children:"—"},r.key);const o=n.reduce((e,t)=>e+t,0);/* @__PURE__ */
|
|
555
555
|
return Nr("td",{className:"px-2 py-1 font-mono text-gray-700",children:[n.length>1&&/* @__PURE__ */Nr("span",{className:"text-gray-400",children:[n.join(" + ")," = "]}),
|
|
556
|
-
/* @__PURE__ */Cr("span",{className:"font-semibold text-gray-800",children:
|
|
556
|
+
/* @__PURE__ */Cr("span",{className:"font-semibold text-gray-800",children:er(o,s)})]},r.key)}),
|
|
557
557
|
/* @__PURE__ */Cr("td",{className:"px-2 py-1 text-right text-gray-500",children:i.mergedRows(t.rowIndices.length)})]},t.key.toUpperCase()))})]})}),
|
|
558
558
|
/* @__PURE__ */Nr("div",{className:"flex items-center justify-between",children:[
|
|
559
559
|
/* @__PURE__ */Cr("span",{className:"text-xs text-gray-600",children:i.mergeSummary(l,t.length)}),
|
|
560
560
|
/* @__PURE__ */Nr("div",{className:"flex gap-2",children:[
|
|
561
561
|
/* @__PURE__ */Cr(Ke,{onClick:o,className:"text-sm text-gray-500 hover:text-gray-700",children:i.cancel}),
|
|
562
|
-
/* @__PURE__ */Cr("button",{type:"button",onClick:n,className:"bg-blue-600 text-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-700",children:i.proceed})]})]})]})}function ia({columns:e,onImport:t,description:r,mergeDuplicates:n=!1}){const[o,a]=cr(()=>Array.from({length:15},()=>Array(e.length).fill(""))),[l,i]=cr(!1),[s,c]=cr(""),[d,u]=cr(null),[m,h]=cr(null),[p,g]=cr(null),f=e.length,y=e[0]?.title?.replace(" *","")||"",b=
|
|
562
|
+
/* @__PURE__ */Cr("button",{type:"button",onClick:n,className:"bg-blue-600 text-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-700",children:i.proceed})]})]})]})}function ia({columns:e,onImport:t,description:r,mergeDuplicates:n=!1}){const[o,a]=cr(()=>Array.from({length:15},()=>Array(e.length).fill(""))),[l,i]=cr(!1),[s,c]=cr(""),[d,u]=cr(null),[m,h]=cr(null),[p,g]=cr(null),f=e.length,y=e[0]?.title?.replace(" *","")||"",b=Qt().bulkImport,x=Zt(),w=o.filter(e=>e[0]?.trim()),v=w.length,k={};for(let t=1;t<e.length;t++){if("text"===ta(e[t],t))continue;let r=0;for(const e of w){const n=parseFloat(Zo(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=mr(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=ta(e[r],r);return"price"===n||"qty"===n?Zo(t):t})});for(;r.length<15;)r.push(Array(f).fill(""));a(ie(r,f))},[f,e]),S=qt({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(ea);if(0===r.length)return;const n=na(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)}),_=async e=>{i(!0);try{await t(e)}catch{c(b.importFailed)}i(!1)},E=r||b.description;/* @__PURE__ */
|
|
563
563
|
return Nr("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:[
|
|
564
564
|
/* @__PURE__ */Nr("div",{className:"px-4 pt-3 pb-2 flex items-center justify-between",children:[
|
|
565
565
|
/* @__PURE__ */Nr("p",{className:"text-xs text-gray-500",children:[E,
|
|
566
|
-
/* @__PURE__ */Nr("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"===ta(n,e.indexOf(n));return b.total(o,a?r.toLocaleString(x,{minimumFractionDigits:2,maximumFractionDigits:2}):
|
|
566
|
+
/* @__PURE__ */Nr("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"===ta(n,e.indexOf(n));return b.total(o,a?r.toLocaleString(x,{minimumFractionDigits:2,maximumFractionDigits:2}):er(r,x))}).join(" · "),")"]})]}),
|
|
567
567
|
/* @__PURE__ */Nr("div",{className:"flex items-center gap-2",children:[v>0&&/* @__PURE__ */Cr("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}),
|
|
568
568
|
/* @__PURE__ */Cr("input",{...S.inputProps}),
|
|
569
569
|
/* @__PURE__ */Cr("button",{type:"button",onClick:S.open,className:"text-blue-600 border border-blue-200 bg-white px-3 h-8 text-sm font-medium rounded-lg hover:bg-blue-50 hover:border-blue-300",children:b.upload}),
|
|
570
570
|
/* @__PURE__ */Cr("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=ta(e,n);r[e.key]="price"===a||"qty"===a?Zo(o):o}),r});if(0===t.length)return void c(b.enterAtLeastOne(y.toLowerCase(),y));c("");const r=qo(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 _(t)},disabled:l||0===v,className:"text-green-600 border border-green-200 bg-white px-3 h-8 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__ */Cr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Cr(oa,{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__ */Cr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Cr(aa,{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 _(o):c(b.allSkipped)},onCancel:()=>h(null)})}),p&&/* @__PURE__ */Cr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Cr(la,{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 _(t)},onCancel:()=>g(null)})}),
|
|
571
571
|
/* @__PURE__ */Cr(se,{columns:N,data:o,onChange:a}),
|
|
572
|
-
/* @__PURE__ */Cr(
|
|
572
|
+
/* @__PURE__ */Cr(Jt,{rejections:S.rejections,className:"px-4 py-1"}),s&&/* @__PURE__ */Cr("p",{className:"text-xs text-red-600 px-4 py-1",children:s})]})}function sa({healthCheck:e,healthUrl:t="/api/health/",pollMs:r=15e3,requestTimeoutMs:n=5e3,user:o,version:a=Vt}){const[l,i]=cr("checking"),[s,c]=cr(null),[d,u]=cr(null),[m,h]=cr(null),[p,g]=cr(navigator.onLine),[f,y]=cr(!1),[b,x]=cr({left:0,top:0}),[,w]=cr(0),v=ur(!1),k=ur(null),N=Qt().serverStatus,C=Zt(),S=ur(null),_=ur(e),E=ur(t),T=ur(n);_.current=e,E.current=t,T.current=n;const M=mr(async()=>{const e=performance.now();try{let t;if(_.current)t=await _.current();else{const r=new AbortController,n=setTimeout(()=>r.abort(),T.current);try{t={ok:(await fetch(E.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))}},[]);dr(()=>{v.current=!1,M();const e=setInterval(M,r);return()=>{v.current=!0,clearInterval(e)}},[M,r]),dr(()=>{const e=()=>g(!0),t=()=>g(!1);return window.addEventListener("online",e),window.addEventListener("offline",t),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",t)}},[]),dr(()=>{if(!f)return;const e=setInterval(()=>w(e=>e+1),1e3);return()=>clearInterval(e)},[f]);const L=mr(()=>{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})},[]);dr(()=>{if(f)return L(),window.addEventListener("resize",L),()=>window.removeEventListener("resize",L)},[f,L]),hr(()=>{f&&S.current&&L()},[f,L]),dr(()=>{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=Ut(()=>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,$="connected"===l?"bg-green-500":"disconnected"===l?"bg-red-500":"bg-gray-400",D=o?o.name?.trim()||o.email||"—":N.notSignedIn,A=o?.role||"";/* @__PURE__ */
|
|
573
573
|
return Nr(Sr,{children:[
|
|
574
574
|
/* @__PURE__ */Cr("button",{ref:k,type:"button",onClick:()=>y(e=>!e),className:"shrink-0 inline-flex items-center justify-center rounded-md p-2 transition-colors hover:bg-white/20 "+("disconnected"!==l||f?"":"animate-pulse"),title:s?N.lastOkTitle(I,s.toLocaleTimeString(C)):I,"aria-label":I,"aria-expanded":f,children:/* @__PURE__ */Cr(tr,{name:"globe",className:"h-5 w-5",stroke:P,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})}),f&&_r(
|
|
575
575
|
/* @__PURE__ */Nr("div",{ref:S,role:"dialog","aria-label":N.details,style:{position:"fixed",left:b.left,top:b.top,width:320,zIndex:zt.popup},className:"rounded-lg border border-gray-200 bg-white shadow-lg overflow-hidden text-gray-800",children:[
|
|
@@ -577,7 +577,7 @@ return Nr(Sr,{children:[
|
|
|
577
577
|
/* @__PURE__ */Nr("div",{className:"flex items-center gap-2",children:[
|
|
578
578
|
/* @__PURE__ */Cr("span",{className:`inline-block h-2 w-2 rounded-full ${$} ${"disconnected"===l?"animate-pulse":""}`}),
|
|
579
579
|
/* @__PURE__ */Cr("span",{className:"text-sm font-semibold text-gray-900",children:I}),"connected"===l&&null!=m&&/* @__PURE__ */Nr("span",{className:"ml-auto text-2xs text-gray-500 tabular-nums",children:[m," ms"]})]}),
|
|
580
|
-
/* @__PURE__ */Nr("p",{className:"mt-1 text-2xs text-gray-500",children:["connected"===l&&s&&N.lastPoll(
|
|
580
|
+
/* @__PURE__ */Nr("p",{className:"mt-1 text-2xs text-gray-500",children:["connected"===l&&s&&N.lastPoll(Gt(s,{precise:!0,locale:C})),"disconnected"===l&&d&&N.lastFailure(Gt(d,{precise:!0,locale:C})),"checking"===l&&N.firstPoll]})]}),
|
|
581
581
|
/* @__PURE__ */Nr("dl",{className:"px-4 py-3 text-xs grid grid-cols-[88px_1fr] gap-x-3 gap-y-2",children:[
|
|
582
582
|
/* @__PURE__ */Cr("dt",{className:"text-gray-500",children:N.server}),
|
|
583
583
|
/* @__PURE__ */Cr("dd",{className:"font-mono text-gray-900 truncate",title:window.location.origin,children:window.location.host}),
|
|
@@ -588,11 +588,11 @@ return Nr(Sr,{children:[
|
|
|
588
588
|
/* @__PURE__ */Cr("dt",{className:"text-gray-500",children:N.lastOk}),
|
|
589
589
|
/* @__PURE__ */Cr("dd",{className:"text-gray-900",children:s?/* @__PURE__ */Nr(Sr,{children:[
|
|
590
590
|
/* @__PURE__ */Cr("span",{className:"tabular-nums",children:s.toLocaleTimeString(C)}),
|
|
591
|
-
/* @__PURE__ */Nr("span",{className:"text-gray-400 ml-1",children:["· ",
|
|
591
|
+
/* @__PURE__ */Nr("span",{className:"text-gray-400 ml-1",children:["· ",Gt(s,{precise:!0,locale:C})]})]}):"—"}),d&&/* @__PURE__ */Nr(Sr,{children:[
|
|
592
592
|
/* @__PURE__ */Cr("dt",{className:"text-gray-500",children:N.lastFail}),
|
|
593
593
|
/* @__PURE__ */Nr("dd",{className:"text-gray-900",children:[
|
|
594
594
|
/* @__PURE__ */Cr("span",{className:"tabular-nums",children:d.toLocaleTimeString(C)}),
|
|
595
|
-
/* @__PURE__ */Nr("span",{className:"text-gray-400 ml-1",children:["· ",
|
|
595
|
+
/* @__PURE__ */Nr("span",{className:"text-gray-400 ml-1",children:["· ",Gt(d,{precise:!0,locale:C})]})]})]}),
|
|
596
596
|
/* @__PURE__ */Cr("dt",{className:"text-gray-500",children:N.latency}),
|
|
597
597
|
/* @__PURE__ */Cr("dd",{className:"text-gray-900 tabular-nums",children:null!=m?`${m} ms`:"—"}),
|
|
598
598
|
/* @__PURE__ */Cr("dt",{className:"text-gray-500",children:N.poll}),
|
|
@@ -610,7 +610,7 @@ return Nr(Sr,{children:[
|
|
|
610
610
|
/* @__PURE__ */Nr("div",{className:"px-4 py-2 border-t border-gray-100 bg-gray-50/60 flex items-center justify-between",children:[
|
|
611
611
|
/* @__PURE__ */Cr("span",{className:"text-2xs text-gray-400",children:N.pingHint}),
|
|
612
612
|
/* @__PURE__ */Nr("button",{type:"button",onClick:()=>{i("checking"),M()},disabled:"checking"===l,className:"inline-flex items-center gap-1 text-xs font-medium text-blue-600 hover:text-blue-800 disabled:opacity-50",children:[
|
|
613
|
-
/* @__PURE__ */Cr(tr,{name:"refresh",className:"h-3 w-3",strokeWidth:2}),N.refresh]})]})]}),document.body)]})}function ca({onSubmit:e,onSuccess:t,confirmOnSuccess:r=!0,minLength:n=8,submitLabel:o,doneLabel:a}){const l=
|
|
613
|
+
/* @__PURE__ */Cr(tr,{name:"refresh",className:"h-3 w-3",strokeWidth:2}),N.refresh]})]})]}),document.body)]})}function ca({onSubmit:e,onSuccess:t,confirmOnSuccess:r=!0,minLength:n=8,submitLabel:o,doneLabel:a}){const l=Qt().password,[i,s]=cr(""),[c,d]=cr(""),[u,m]=cr(""),[h,p]=cr(""),[g,f]=cr(!1),[y,b]=cr(!1);return y?/* @__PURE__ */Nr("div",{className:"space-y-4",children:[
|
|
614
614
|
/* @__PURE__ */Nr("div",{className:"rounded-md bg-green-50 px-4 py-3 flex items-start gap-3",children:[
|
|
615
615
|
/* @__PURE__ */Cr(tr,{name:"check-circle",className:"h-5 w-5 text-green-600 shrink-0 mt-0.5",strokeWidth:2}),
|
|
616
616
|
/* @__PURE__ */Cr("p",{className:"text-sm font-medium text-green-800",children:l.changed})]}),
|
|
@@ -619,7 +619,7 @@ return Nr(Sr,{children:[
|
|
|
619
619
|
/* @__PURE__ */Cr(H,{label:l.newPassword,required:!0,children:/* @__PURE__ */Cr(U,{type:"password",value:c,onChange:e=>d(e.target.value),required:!0,minLength:n})}),
|
|
620
620
|
/* @__PURE__ */Cr(H,{label:l.confirm,required:!0,children:/* @__PURE__ */Cr(U,{type:"password",value:u,onChange:e=>m(e.target.value),required:!0})}),h&&/* @__PURE__ */Cr("p",{className:"text-sm text-red-600",children:h}),
|
|
621
621
|
/* @__PURE__ */Cr("div",{className:"flex justify-end pt-2 border-t border-gray-200",children:/* @__PURE__ */Nr(St,{type:"submit",variant:"primary",loading:g,children:[g?l.submitting:o??l.submit,
|
|
622
|
-
/* @__PURE__ */Cr("kbd",{className:"kbd-submit rounded border px-2 py-0.5 text-2xs font-medium",children:ht})]})})]})}var da=/* @__PURE__ */Symbol("react-os-shell:timed-out");var ua=/* @__PURE__ */Cr(tr,{name:"page",className:"h-4 w-4",strokeWidth:1.5});function ma({fetchPdf:e,filename:t,label:r,className:n,disabled:o,onEmail:a,onPreviewOpened:l,openPreview:i,icon:s,timeoutMs:c=3e4}){const[d,u]=cr(!1),[m,h]=cr(!1),p=ur(null),[g,f]=cr({left:0,top:0}),{openPage:y}=ke(),b=
|
|
622
|
+
/* @__PURE__ */Cr("kbd",{className:"kbd-submit rounded border px-2 py-0.5 text-2xs font-medium",children:ht})]})})]})}var da=/* @__PURE__ */Symbol("react-os-shell:timed-out");var ua=/* @__PURE__ */Cr(tr,{name:"page",className:"h-4 w-4",strokeWidth:1.5});function ma({fetchPdf:e,filename:t,label:r,className:n,disabled:o,onEmail:a,onPreviewOpened:l,openPreview:i,icon:s,timeoutMs:c=3e4}){const[d,u]=cr(!1),[m,h]=cr(!1),p=ur(null),[g,f]=cr({left:0,top:0}),{openPage:y}=ke(),b=Qt().pdfAction;dr(()=>{if(d&&p.current){const e=p.current.getBoundingClientRect();f({left:e.left,top:e.bottom+4})}},[d]);const x=async()=>{h(!0);try{return await async function(e,t){if(!Number.isFinite(t)||t<=0)return e;let r;try{return await Promise.race([e,new Promise(e=>{r=setTimeout(()=>e(da),t)})])}finally{void 0!==r&&clearTimeout(r)}}(e(),c)}finally{h(!1)}};/* @__PURE__ */
|
|
623
623
|
return Nr(Sr,{children:[
|
|
624
624
|
/* @__PURE__ */Nr("button",{ref:p,type:"button",onClick:()=>u(!d),disabled:o||m,className:n||"inline-flex items-center gap-2 bg-white text-gray-700 border border-gray-300 px-3 min-h-8 py-1 text-sm font-medium rounded-lg hover:bg-gray-50 disabled:opacity-50","data-menu-toggle":!0,children:[s??ua,m?b.loading:r??b.label,
|
|
625
625
|
/* @__PURE__ */Cr(tr,{name:"chevron-down",className:"h-3 w-3",strokeWidth:2})]}),d&&_r(
|