efficient-shell 8.18.0 → 8.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/{Browser-H5OJL6TK.js → Browser-EE7TUWTN.js} +14 -14
  2. package/dist/{Calculator-VHXRKH2M.js → Calculator-YTIRFXXR.js} +21 -21
  3. package/dist/{CurrencyConverter-5AIXDNF6.js → CurrencyConverter-NDMWLX7M.js} +6 -6
  4. package/dist/{Documents-352IGNWY.js → Documents-XSDBD4T7.js} +1 -1
  5. package/dist/{Files-ODENHLKQ.js → Files-B5HKRQN3.js} +18 -18
  6. package/dist/{Notepad-DWPTCM2I.js → Notepad-2SXHFPFX.js} +10 -10
  7. package/dist/{PomodoroTimer-YWR6X3FT.js → PomodoroTimer-L72X22QZ.js} +37 -37
  8. package/dist/{Preview-LMUHIWNB.js → Preview-DJHBCRKW.js} +33 -33
  9. package/dist/{Sidebar-ZIHLBHKR.js → Sidebar-YCSGGCLW.js} +1 -1
  10. package/dist/{Spreadsheet-DAZUBPFY.js → Spreadsheet-VHFYYFLK.js} +11 -11
  11. package/dist/{Stock-C2EQYFNA.js → Stock-C3DDF3V3.js} +3 -3
  12. package/dist/{Weather-EZU5A7JW.js → Weather-2XG5AIW2.js} +15 -15
  13. package/dist/{WorldClock-SKUEYQXU.js → WorldClock-2MU5CFUN.js} +6 -6
  14. package/dist/ai/index.js +1 -1
  15. package/dist/apps/index.js +1 -1
  16. package/dist/bin/media-host-check.js +1 -1
  17. package/dist/bin/ui-check.js +1 -1
  18. package/dist/{chunk-7F5FURAC.js → chunk-2MMEGCYI.js} +1 -1
  19. package/dist/chunk-EUFALBK3.js +1 -0
  20. package/dist/{chunk-EJNFOBE3.js → chunk-FJ72DO6A.js} +4 -4
  21. package/dist/{chunk-HAZLMRTT.js → chunk-KAELFRN4.js} +1 -1
  22. package/dist/{chunk-ZSRYQW64.js → chunk-MVYOBV4I.js} +3 -3
  23. package/dist/{chunk-6YPZHG7O.js → chunk-MWGVFDEV.js} +2 -2
  24. package/dist/{chunk-XINUGME7.js → chunk-R6WJ2NTT.js} +27 -27
  25. package/dist/{chunk-6OPAUSMV.js → chunk-ZQGPJZY4.js} +2 -2
  26. package/dist/{chunk-M7JJOCBU.js → chunk-ZXI4CWTI.js} +1 -1
  27. package/dist/data/ListLoadError.js +1 -1
  28. package/dist/format/index.js +1 -1
  29. package/dist/forms/BorderInput.js +1 -1
  30. package/dist/forms/BrandAssetEditor.js +1 -1
  31. package/dist/forms/ColorPicker.js +1 -1
  32. package/dist/forms/ComposerAttachments.js +1 -1
  33. package/dist/forms/CornersInput.js +1 -1
  34. package/dist/forms/DisplayChips.js +1 -1
  35. package/dist/forms/IconPicker.js +1 -1
  36. package/dist/forms/InputNumber.js +1 -1
  37. package/dist/forms/LinkPicker.js +1 -1
  38. package/dist/forms/MediaUsedInList.js +1 -1
  39. package/dist/forms/PositionInput.js +1 -1
  40. package/dist/forms/SidesInput.js +1 -1
  41. package/dist/forms/Slider.js +1 -1
  42. package/dist/forms/Snippet.js +1 -1
  43. package/dist/forms/SplitButton.js +1 -1
  44. package/dist/forms/TextToolbar.js +1 -1
  45. package/dist/forms/WidthsBar.js +1 -1
  46. package/dist/index.d.ts +10 -1
  47. package/dist/index.js +170 -170
  48. package/dist/map/index.js +1 -1
  49. package/dist/shell/AppUpdateBanner.js +1 -1
  50. package/dist/shell/ImageLightbox.js +1 -1
  51. package/dist/shell/LanguageSelect.js +1 -1
  52. package/dist/shell/SearchableSelect.js +1 -1
  53. package/dist/shell/SettingReset.js +1 -1
  54. package/dist/telemetry/index.js +1 -1
  55. package/dist/templates/ChatTemplate.js +1 -1
  56. package/dist/templates/CheckoutTemplate.js +1 -1
  57. package/dist/templates/DataTablePage.js +1 -1
  58. package/dist/templates/EmailTemplate.js +1 -1
  59. package/dist/templates/FormLayoutPage.js +1 -1
  60. package/dist/ui/index.js +1 -1
  61. package/dist/version.js +1 -1
  62. package/package.json +1 -1
  63. package/dist/chunk-AJOWAZ46.js +0 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import{PREVIEW_OPENED_EVENT as e,openPreviewFile as t}from"./chunk-RPY7FBYY.js";import{subscribePomo as r,getPomoSnapshot as n}from"./chunk-6YPZHG7O.js";export{setShellTodoProvider}from"./chunk-6YPZHG7O.js";import{wallpaperSrc as o,WALLPAPER_PREF_TOKEN as a,uploadWallpaper as s,wallpaperUploadError as i,deleteWallpaper as l,getWallpaper as c}from"./chunk-HAZLMRTT.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-2VFRVO3N.js";import{playNotification as d,playStartup as u,soundsEnabled as m,getSoundConfig as h,SOUND_GRID_SHOWN as p,SOUND_PACK_KEYS as f,soundPackName as g,SOUND_TYPES as b,soundTypeName as y,setSoundForType as x,previewSound as w,setAllSounds as v,playLogout as k}from"./chunk-CPWXLXQ7.js";import{useAuth as N,readStored as C,initialRailCollapsed as S,RAIL_COLLAPSED_KEY as _,writeStored as E,RAIL_WIDTH_KEY as T}from"./chunk-I74FRKHQ.js";export{setShellAuthBridge}from"./chunk-I74FRKHQ.js";import"./chunk-PCGZS6S4.js";export{ELEVATION_LEVELS,RADIUS_ROLES}from"./chunk-MVP6Q6KV.js";export{BORDER_WIDTHS,FONT_WEIGHTS,MOTION_DURATIONS,TYPE_SCALE}from"./chunk-LH7IKIGE.js";export{CheckoutTemplate}from"./chunk-2RKTVTJJ.js";export{DashboardTemplate}from"./chunk-HQIUFRWO.js";export{DataTablePage}from"./chunk-USE4HNZ2.js";export{EmailTemplate}from"./chunk-Z3ZIVVKE.js";export{ErrorBoundary}from"./chunk-I5T3A4KI.js";export{ErrorPage}from"./chunk-4S724CEA.js";export{FormLayoutPage}from"./chunk-HQNR4JQG.js";export{GalleryTemplate}from"./chunk-A3R6DKQ5.js";export{useTransferProgress}from"./chunk-QHOEMRR7.js";export{startClientTelemetry}from"./chunk-7F5FURAC.js";export{AuthScreen}from"./chunk-V7NVQ3Z7.js";export{ChatTemplate}from"./chunk-DTJQHW3Q.js";import{TimeAgo as M}from"./chunk-K2DUF2AR.js";export{TimeAgo}from"./chunk-K2DUF2AR.js";export{TopNav}from"./chunk-P5QRK7WD.js";export{Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam}from"./chunk-6MN2JR25.js";export{Grid,Inline,Stack}from"./chunk-3RPER7VH.js";export{Statistic}from"./chunk-DQEST7MN.js";export{Stepper}from"./chunk-TF3E5J3Y.js";export{Tabs,tabButtonId,tabPanelId}from"./chunk-4G5M752L.js";export{Paragraph,Text,Title}from"./chunk-5KUE6IHF.js";export{SettingReset}from"./chunk-KH6GERFP.js";export{SettingRow}from"./chunk-WVWIRII2.js";export{SidebarActionButton}from"./chunk-KMTCYDJH.js";import{SidebarLayout as j}from"./chunk-YFY2LSWZ.js";export{SidebarLayout}from"./chunk-YFY2LSWZ.js";export{SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,SidebarSection}from"./chunk-SACUPX6L.js";import"./chunk-QWK6DRSN.js";export{Skeleton}from"./chunk-4Z62SEA5.js";export{ListRow,SortableList}from"./chunk-3XLDWJDG.js";import"./chunk-P5ILG2DA.js";export{MilestoneTimeline}from"./chunk-QSVKEONU.js";export{PageHeader}from"./chunk-Y67ILJVG.js";export{POST_PRODUCTION_STATUSES,ProductionTimeline,STAGES,calcOverall,calcReportOverall,useProductionTimeline}from"./chunk-37DRDM4D.js";import"./chunk-SURSVJA2.js";export{TimelineTrack}from"./chunk-HNFLUVVM.js";export{DAY_MS,fmtSliderDate,toDayMs}from"./chunk-YDEIXM2A.js";import{readStoredWidth as I}from"./chunk-7NOU275V.js";export{ResizeHandle}from"./chunk-7NOU275V.js";export{IconRail,IconRailButton}from"./chunk-EOPPYQIT.js";import"./chunk-FQEALPZJ.js";export{ImageLightbox,lightboxKind}from"./chunk-FNQJO3HZ.js";export{ZoomableImage}from"./chunk-U5KIRPLV.js";export{LanguagePanel,LanguageSelect,languageSelectWidth}from"./chunk-EFUQ4KAH.js";import{MarqueeBox as L}from"./chunk-IC72MGON.js";export{MarqueeBox}from"./chunk-IC72MGON.js";export{MetricBar}from"./chunk-HKAWQF7O.js";export{isSeverityTone,severityOf}from"./chunk-TZFNWAED.js";export{MetricBarLegend}from"./chunk-ZVK74ERI.js";import"./chunk-URBCGEXG.js";export{Drawer}from"./chunk-6JLZMVVE.js";import{withSpareRow as P,EditableGrid as D}from"./chunk-KW4VUPJV.js";export{EditableGrid}from"./chunk-KW4VUPJV.js";import{escapeHtml as R}from"./chunk-BR22X7E5.js";export{EmptyState}from"./chunk-UNDHDLWB.js";export{EmptyValue}from"./chunk-64WSMLXG.js";export{FloatingBar}from"./chunk-EIUCHQI2.js";import{GlobalSearch as A,openGlobalSearch as $}from"./chunk-3NU2B2WM.js";export{GlobalSearch,openGlobalSearch}from"./chunk-3NU2B2WM.js";import{navPagesProvider as W,partitionNav as F,sanitizeRecent as O,favoritesToResults as B,pushRecent as H,PAGE_RESULT_ENTITY as U,parsePageResultTarget as z}from"./chunk-WGRS6QBT.js";export{pushRecent as pushRecentSearch,sanitizeRecent as sanitizeRecentSearches}from"./chunk-WGRS6QBT.js";export{HelpCenter}from"./chunk-PEEVPAIJ.js";export{ContainerFillChart}from"./chunk-2ZIVFBJN.js";import{ContextMenu as K}from"./chunk-XDG2RWUO.js";export{ContextMenu,useContextMenu}from"./chunk-XDG2RWUO.js";export{DescriptionList}from"./chunk-SACUSHVN.js";export{Divider}from"./chunk-DFOFEBYX.js";export{Accordion,AccordionBody,AccordionHeading}from"./chunk-V5GDA4I6.js";export{CountBadge}from"./chunk-A3MOA3T7.js";export{APP_UPDATE_POLL_MS,AppUpdateBanner,useAppUpdate}from"./chunk-HKTU536H.js";export{Avatar,AvatarGroup}from"./chunk-5WYCXSUM.js";export{Breadcrumbs}from"./chunk-DBBUHXRT.js";export{BudgetBar,budgetState}from"./chunk-CG4KTWP4.js";export{Card,StatCard}from"./chunk-TDAFCJY7.js";import{TabStrip as V}from"./chunk-VKLVHULL.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-73FD77RD.js";export{BRAND_ICON_NAMES,ICON_NAMES,isBrandIconName,isIconName}from"./chunk-SXPBOX32.js";export{BRAND_MAX_HEIGHT,BRAND_MIN_HEIGHT_PX,brandBox}from"./chunk-64ACCUNN.js";export{mediaMoveItems,useMediaMoveItems}from"./chunk-JSVYN6D6.js";export{TileButton_default as TileButton}from"./chunk-H2R4SNNO.js";export{TimePicker_default as TimePicker}from"./chunk-NQ46AZ3D.js";export{WidthsBar}from"./chunk-WVSLFX37.js";export{COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,columnSharesWidths,resolveColumnShares,resolveColumnWidths}from"./chunk-PLGJOHEG.js";export{SidesEachToggle,SidesInput,sidesStartEach}from"./chunk-Q6BY4BME.js";export{Slider,SliderGroup}from"./chunk-VSQSBY2P.js";import{copyToClipboard as Y,selectionAt as X}from"./chunk-QTNPOMXM.js";export{Snippet,copyToClipboard}from"./chunk-QTNPOMXM.js";export{SplitButton_default as SplitButton}from"./chunk-WOHOIJRZ.js";export{DropdownMenu}from"./chunk-TQP3L4OC.js";import"./chunk-JSOO4O5K.js";export{Switch_default as Switch}from"./chunk-STA76WXF.js";export{TagInput}from"./chunk-S2PKTGHB.js";export{TextToolbar,textToolbarRows,textToolbarWindowColumns}from"./chunk-AAYACT5T.js";export{NumericKeypad}from"./chunk-QAR4NYW6.js";export{MAX_FRACTION_DIGITS,appendKey,backspace}from"./chunk-VEPVOHCV.js";export{PictureTiles}from"./chunk-TLJCUUZU.js";export{PositionInput}from"./chunk-QCP4F6EF.js";export{RadioGroup}from"./chunk-TZSPJIP4.js";export{Radio_default as Radio}from"./chunk-NI5FXWK5.js";import{ShowWhen as G}from"./chunk-YEM4KYCW.js";export{ShowWhen}from"./chunk-YEM4KYCW.js";export{LinkPicker,TextLinkField}from"./chunk-QMLG5XKP.js";export{SearchableSelect}from"./chunk-GVYJYXVH.js";export{NativeSelect,Select_default as Select}from"./chunk-AG3ALTVD.js";import{firstEnabledIndex as J,lastEnabledIndex as Q,nextEnabledIndex as Z,matchTypeahead as q}from"./chunk-EO5RLFRX.js";import"./chunk-QSW26NAH.js";import{Input_default as ee}from"./chunk-UNEJ2ABD.js";export{Input_default as Input}from"./chunk-UNEJ2ABD.js";export{Label,labelClasses}from"./chunk-EQKUFYX6.js";export{MediaUploadGrid}from"./chunk-Z7PS4QUO.js";export{MediaUsedInList}from"./chunk-EA37JL6P.js";export{DateTimePicker_default as DateTimePicker}from"./chunk-UJULZQM2.js";export{DisplayChips}from"./chunk-EJNFOBE3.js";export{FilePicker_default as FilePicker}from"./chunk-ZVY4J3PU.js";export{FormErrorSummary}from"./chunk-HMA4ZSCS.js";export{IconPicker}from"./chunk-NADUURUA.js";export{AttachButton,AttachmentDropZone,AttachmentList,ComposerAttachments,PaperclipGlyph}from"./chunk-LDHYCVMV.js";export{CornersInput}from"./chunk-JBMGI5YX.js";export{DatePicker_default as DatePicker}from"./chunk-LJVLMM3Q.js";export{DateRangePicker,toISODate}from"./chunk-FJUFQXDS.js";import{Calendar as te}from"./chunk-JLDGZFNY.js";export{Calendar,fromKey as fromDateKey,toKey as toDateKey}from"./chunk-JLDGZFNY.js";import{useClickOutside as re}from"./chunk-SI26KESU.js";export{useClickOutside}from"./chunk-SI26KESU.js";export{useDebouncedValue}from"./chunk-SLGT5WPJ.js";export{useGridSelection}from"./chunk-VLKDWKVR.js";export{MARQUEE_IGNORE,marqueeHits,rectsIntersect,useMarquee}from"./chunk-OLFYNMTD.js";export{edgeScrollDelta,getScrollParent,scrollBoundsOf}from"./chunk-LACL4MAR.js";import{useTheme as ne,resolveTheme as oe,CORNERS_FOR_THEME as ae,resolveCorners as se,applyThemePrefs as ie}from"./chunk-4LXH6DCN.js";export{CORNERS,CORNERS_FOR_THEME,applyCorners,applyIconSet,applyThemePrefs,cornersFor,resolveCorners,resolveTheme,useTheme}from"./chunk-4LXH6DCN.js";import{THEME_ICON_SETS as le,loadIconSet as ce,ICON_SET_FOR_THEME as de}from"./chunk-VQCKMT5F.js";export{ICON_SET_FOR_THEME,THEME_ICON_SETS,iconSetFor,loadIconSet}from"./chunk-VQCKMT5F.js";export{AlignmentGrid}from"./chunk-C6LV3HJW.js";export{BORDER_LINE_STYLES,BorderInput,borderSides,borderStartEach}from"./chunk-ZSRYQW64.js";export{ColorPicker,ColorPickerPanel,ColorSwatch,HexInput,colorFill,colorSwatchClasses}from"./chunk-KIYO4U4T.js";export{hexToHsv,hsvToHex,parseHexColor}from"./chunk-H245LLX4.js";export{Popover}from"./chunk-RNBM5JZI.js";export{InputNumber_default as InputNumber}from"./chunk-EO2XHSIK.js";export{useInSettingRow,useSettingAuto}from"./chunk-E4Z5OXBI.js";export{BrandAssetEditor}from"./chunk-XW56UIDQ.js";export{MediaUploadField}from"./chunk-WEJFTUS7.js";export{ImageFocusPoint}from"./chunk-SLC3KT7F.js";import{FormField as ue}from"./chunk-MVQBVPWP.js";export{FormField}from"./chunk-MVQBVPWP.js";import{BrandMark as me}from"./chunk-MI67DI3H.js";export{BrandMark,resolveBrandMarkTreatment}from"./chunk-MI67DI3H.js";export{mediaFileName}from"./chunk-APMBWBD7.js";import{TransferProgress as he}from"./chunk-YGITR6I5.js";export{TransferProgress}from"./chunk-YGITR6I5.js";import{Segmented as pe}from"./chunk-CHNYSP6K.js";export{Segmented}from"./chunk-CHNYSP6K.js";import"./chunk-4G5VLI7E.js";export{DataTable}from"./chunk-56CQPUIJ.js";import{Checkbox_default as fe}from"./chunk-CGZBDI6C.js";export{Checkbox_default as Checkbox}from"./chunk-CGZBDI6C.js";export{Kanban}from"./chunk-WDIFRAQM.js";import{ListFooter as ge}from"./chunk-BJGD2ZWK.js";export{ListFooter}from"./chunk-BJGD2ZWK.js";import{ListLoadError as be}from"./chunk-4NB3WHWK.js";export{ListLoadError}from"./chunk-4NB3WHWK.js";export{Pagination}from"./chunk-DGTP6BGV.js";import{useFileIntake as ye,FileIntakeAlert as xe}from"./chunk-MPN267PR.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-MPN267PR.js";import{timeAgo as we}from"./chunk-X2S2XDZI.js";export{currencyDecimals,currencySymbol,formatBytes,formatMoney,setCurrencyFormats,timeAgo}from"./chunk-X2S2XDZI.js";export{addShowWhenFacts,isShown,lazyShowWhenContext,showWhenFactReaders,showWhenFactsContext,showWhenOf,shownForOption,truthy,withRowRules,withRowsShownWhen,withShowWhen,withShowWhenFacts}from"./chunk-HCP7WOAL.js";import{formatDate as ve}from"./chunk-5OTS2G3M.js";export{DATE_FORMAT_OPTIONS,TZ_AUTO,firstDayOfWeek,formatDate,formatDateTime,formatTime,getUserDateFormat,getUserTimezone,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile}from"./chunk-5OTS2G3M.js";export{EMPTY_VALUE}from"./chunk-36BRD5J3.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"./chunk-25RR3GQW.js";export{SankeyChart}from"./chunk-MNQ6EPAR.js";export{SCATTER_SERIES_CAP,ScatterChart}from"./chunk-FTQ5DH5U.js";export{StatTile}from"./chunk-TSOK3QNK.js";export{Sparkline}from"./chunk-CKCDGSTC.js";export{SunburstChart}from"./chunk-7GCBMTP2.js";export{TimeSeriesChart}from"./chunk-YULJ7F6Z.js";export{TreemapChart}from"./chunk-BG5BCF64.js";export{squarify}from"./chunk-46BYGPGD.js";export{WaterfallChart}from"./chunk-UB6TIA2R.js";export{HeatmapChart}from"./chunk-ZWQRFYE6.js";export{HistogramChart}from"./chunk-BE4APEUI.js";export{Meter}from"./chunk-5N6VSOZV.js";export{PieChart}from"./chunk-LAHK4WVH.js";export{RADAR_SERIES_CAP,RadarChart}from"./chunk-QYGBWH5J.js";export{RadialBarChart}from"./chunk-GVKFLNRP.js";export{RangeChart}from"./chunk-W4YNYZDQ.js";export{RankedBars}from"./chunk-ABD34D3N.js";export{ChartBrush}from"./chunk-4JCNWUVZ.js";export{ChartDot}from"./chunk-CK2YOGUS.js";export{ChartFrame}from"./chunk-6EAVTBKE.js";export{ChordChart}from"./chunk-CKDFXYYY.js";import"./chunk-X3II54HU.js";export{arcPath,areaBetween,areaFrom,bumpPath,curvePath,linearPath,monotonePath,polygonPoints,splinePath,stepPath}from"./chunk-VFC6QUEN.js";export{ColumnChart}from"./chunk-B6BE4WSP.js";export{ChartDefs,MOTION,dashFor,fillFor,fillId,glowId,groundId,maskId,stagger}from"./chunk-465RRWBY.js";export{ChartSkeleton}from"./chunk-NU55QIUV.js";export{FunnelChart}from"./chunk-U5YJREQJ.js";export{ChartHighlightProvider,autoHighlightIndex,highlightOpacity,useHighlight}from"./chunk-CNYAHYE6.js";export{StepChain,StepChainItem}from"./chunk-MKTO2FHK.js";import{Markdown as ke}from"./chunk-F2HM7SV4.js";export{Markdown,Markdown as MarkdownLite}from"./chunk-F2HM7SV4.js";export{Banner}from"./chunk-QTK5NV7L.js";export{Textarea_default as Textarea}from"./chunk-AWY3F6PV.js";import"./chunk-UJUTS6LJ.js";export{isSafeLinkHref}from"./chunk-PJPK2ADX.js";import{IconButton_default as Ne}from"./chunk-HMZLRXLA.js";export{IconButton_default as IconButton}from"./chunk-HMZLRXLA.js";import{PLACEHOLDER_INK as Ce,FILTER_ON as Se,FILTER_ON_INK as _e,FILTER_OFF as Ee}from"./chunk-JFSYWEHD.js";export{INPUT_BASE,INPUT_SIZES,PLACEHOLDER_INK,inputClasses}from"./chunk-JFSYWEHD.js";import{publishDesktopFolders as Te,requestFilesTrashView as Me,FolderGlyph as je,requestFilesDesktopFolderView as Ie,FileIconTile as Le}from"./chunk-BVDGHZ4H.js";import{setPdfPreview as Pe}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as De,windowHoldsChanges as Re,requestWindowFront as Ae,confirmWindowDiscard as $e,useWindowManager as We,WINDOW_REGISTRY as Fe,isPageEntry as Oe,Modal as Be,setPerfCollecting as He,drainPerfEvents as Ue,forgetMaximizedWindowBoxes as ze,markMenuOpen as Ke,setShellHomeRoute as Ve,useCurrentTabKey as Ye,ModalActions as Xe,useModalActive as Ge,LoadingSpinner as Je,useEnclosingModalId as Qe,isShellApiClientConfigured as Ze,client_default as qe,KEY_ACTIVATED_SELECTOR as et,isDraftEntityId as tt,activateWindowById as rt,CancelButton as nt,setWindowPosition as ot,isDraftEntityWindow as at,subscribeWindowChrome as st,getWindowChromeVersion as it,isTabWindow as lt,readWindowChrome as ct,isEntityEntry as dt}from"./chunk-XINUGME7.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-XINUGME7.js";import{startMenuCategories as ut,navSections as mt,navIcons as ht,sectionIcons as pt,RAIL_W as ft,RAIL_MIN_W as gt,RAIL_MAX_W as bt,RAIL_COLLAPSED_W as yt,WORK_AREA_CHANGED_EVENT as xt,useShellAuth as wt,TAB_STRIP_H as vt}from"./chunk-TPDOOCFS.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-TPDOOCFS.js";import{ROW_HEIGHTS as kt,CONTROL_HEIGHTS as Nt}from"./chunk-AW7TOB6N.js";export{CONTROL_HEIGHTS,ROW_HEIGHTS,SPACING_ROLES,SPACING_SCALE,isSpacingStep}from"./chunk-AW7TOB6N.js";import"./chunk-KNUR2UEG.js";export{NEXT_CHUNK_PATH_PREFIX,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isStaleChunkError}from"./chunk-JDCM2VHG.js";export{Result}from"./chunk-SS7BG7BS.js";import{CMD_K as Ct,CMD_DOT as St,SHIFT as _t,MOD as Et,ENTER as Tt,CMD_A as Mt,ALT_SHIFT_N as jt,ALT_SHIFT_E as It,CMD_ENTER as Lt,CMD_S as Pt,ALT_SHIFT_D as Dt,CMD_Z as Rt,CMD_SHIFT_Z as At}from"./chunk-Y53KNQKL.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,MOD,SHIFT,isMac}from"./chunk-Y53KNQKL.js";import{navVisible as $t,isSection as Wt,isReachable as Ft,visibleChildren as Ot}from"./chunk-5A7MWTXX.js";export{CopyButton}from"./chunk-O5PJELY7.js";export{ConfirmProvider,confirm,confirmDestructive,prompt,useConfirm}from"./chunk-SGVIMTN6.js";export{Dialog}from"./chunk-CGY5RNAF.js";import"./chunk-VWGWZY7A.js";import{useDismissPopupsOnOpen as Bt}from"./chunk-PKXQDCNR.js";import{toast_default as Ht}from"./chunk-HIDOSOI4.js";export{UNDOABLE_MS,toast_default as toast}from"./chunk-HIDOSOI4.js";import{PopupMenuDivider as Ut,PopupMenu as zt,PopupMenuLabel as Kt,PopupMenuItem as Vt,resolveMenuLevels as Yt,MenuIcon as Xt,openMenuLevel as Gt,closeMenuBelow as Jt,clampMenuTop as Qt,menuPanelLeft as Zt}from"./chunk-UPHXYWL6.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu}from"./chunk-UPHXYWL6.js";import{keepsNativeMenu as qt,leavesContextMenuAlone as er,describeContextTarget as tr}from"./chunk-5QFPTDQF.js";export{MENU_ON_MEDIA_ATTR,NATIVE_MENU_ATTR,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-5QFPTDQF.js";import{useIsMobile as rr,useIsPhone as nr}from"./chunk-UGTRSRIW.js";export{useIsMobile}from"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";export{ColoredBadge}from"./chunk-LWGNNVDA.js";import{useShellPrefs as or,useShellPrefsAdapter as ar}from"./chunk-KC3EX26K.js";export{ShellPrefsProvider,useLocalStoragePrefs,useShellPrefs}from"./chunk-KC3EX26K.js";export{useFocusTrap,useScrollLock}from"./chunk-CDAJKLGL.js";export{GROUP_COLORS,GROUP_COLORS_SOLID,StatusBadge,StatusBadgeProvider,groupColors,useStatusLabel}from"./chunk-5SULG7D5.js";import{TH_ONE_LINE as sr}from"./chunk-7T3COEQK.js";import{APP_VERSION as ir,VERSION as lr}from"./chunk-AJOWAZ46.js";export{VERSION}from"./chunk-AJOWAZ46.js";import{Button_default as cr}from"./chunk-UDD7GB4F.js";export{Button_default as Button}from"./chunk-UDD7GB4F.js";export{buttonClasses,iconButtonClasses}from"./chunk-K7U4RWXJ.js";import{Icon as dr,kitDrawing as ur}from"./chunk-42BBJJDP.js";export{Icon}from"./chunk-42BBJJDP.js";import{setThemeIconSetLoader as mr,subscribeIcons as hr,iconsVersion as pr,iconSets as fr,drawingIn as gr,defaultIconSet as br,hasIconSet as yr,registerIconSet as xr}from"./chunk-J75ZT2JQ.js";export{activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-J75ZT2JQ.js";import"./chunk-4TL3MRRE.js";import{SpinnerRing as wr,LoadingSpinner as vr}from"./chunk-Q5MD3VY6.js";export{LoadingSpinner,SpinnerRing}from"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";export{Tooltip}from"./chunk-2LXTJXWC.js";import{onOverlayOpen as kr}from"./chunk-PGN5ME7B.js";export{OVERLAY_OPEN_EVENT,dismissPopups}from"./chunk-PGN5ME7B.js";import{Z_LAYERS as Nr}from"./chunk-62LW225J.js";export{Z_LAYERS}from"./chunk-62LW225J.js";export{MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,placeMenu,popupBounds,useDropdownPosition}from"./chunk-GLUJS42B.js";import{useBrowserState as Cr}from"./chunk-D65T4H6J.js";export{PortalBrandingProvider,resolvePortalBrandAsset,usePortalBranding}from"./chunk-ACYYVK6G.js";export{BoxPlotChart}from"./chunk-K5UPORAA.js";export{CandlestickChart}from"./chunk-2YZ3ITNG.js";export{ChartTooltip}from"./chunk-P5BOTIJU.js";import{GLASS_INPUT_BG as Sr,glassStyle as _r}from"./chunk-DTJRIWFR.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle,solidSurfaceStyle}from"./chunk-DTJRIWFR.js";export{CartesianPlot}from"./chunk-ZGCLFQS5.js";import"./chunk-MG7A3R75.js";export{angleScale,bandScale,binValues,ladderScale,linearScale,logScale,niceAxis,niceMax,radiusScale}from"./chunk-2JWPNR2U.js";export{usePlotWidth}from"./chunk-MAFUXCPZ.js";export{CHART_INK,SERIES_SLOT_COUNT,SERIES_VARS,STATUS_VARS,assignSeriesSlots,resolveSeriesColor,resolveSeriesColorWithin,seriesColor,toggleSeriesSlot}from"./chunk-TZFACUMR.js";import{registerModalEscapeInterceptor as Er}from"./chunk-TWVUQUUD.js";export{registerModalEscapeInterceptor}from"./chunk-TWVUQUUD.js";import{useShellStrings as Tr,useShellLocale as Mr}from"./chunk-GTRUBA2R.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-GTRUBA2R.js";import{formatGrouped as jr}from"./chunk-C3QOHMR6.js";import{createContext as Ir,lazy as Lr,useSyncExternalStore as Pr,useState as Dr,useEffect as Rr,useRef as Ar,useCallback as $r,useLayoutEffect as Wr,Fragment as Fr,useMemo as Or,useContext as Br,isValidElement as Hr,cloneElement as Ur,Suspense as zr,useId as Kr}from"react";import{Dialog as Vr,DialogBackdrop as Yr,DialogPanel as Xr}from"@headlessui/react";import{jsxs as Gr,jsx as Jr,Fragment as Qr}from"react/jsx-runtime";import{createPortal as Zr}from"react-dom";import{useQueryClient as qr,useQuery as en,useInfiniteQuery as tn,QueryClientContext as rn,QueryClient as nn}from"@tanstack/react-query";import"react-router-dom";function on(...e){return Object.assign({},...e)}function an(e){let t=null,r=0,n=0;const o=/* @__PURE__ */new Set,a=()=>{o.forEach(e=>e())},s=(n,o)=>{t={...n,nav:++r},a(),!1!==o?.raise&&Ae(e)};return{windowKey:e,set(r,o){const i=++n;if(null===r)return t=null,De(e),void a();t&&!1!==o?.askDiscard&&Re(e)?(!1!==o?.raise&&Ae(e),$e(e).then(e=>{e&&i===n&&s(r,o)})):s(r,o)},get:()=>t,subscribe:e=>(o.add(e),()=>{o.delete(e)})}}function sn(e){return Pr(e.subscribe,e.get,e.get)}var ln=[{title:"Global",shortcuts:[{keys:Ct,description:"Search"},{keys:St,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:`${_t} Arrows`,description:"Resize window"},{keys:`${Et} ←/→`,description:"Snap to left / right half"},{keys:`${Et} ↑`,description:"Maximize"},{keys:`${Et} ↓`,description:"Restore / minimize"},{keys:Tt,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:Mt,description:"Select / deselect all"},{keys:jt,description:"Create new item"},{keys:It,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:Lt,description:"Submit"},{keys:Pt,description:"Save"},{keys:Dt,description:"Save as new (duplicate)"},{keys:Rt,description:"Undo the last change to the form"},{keys:At,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function cn(){const[e,t]=Dr(!1);return Rr(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),Rr(()=>{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)},[]),Bt(e),/* @__PURE__ */Gr(Vr,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:Nr.overlay},children:[
2
+ import{PREVIEW_OPENED_EVENT as e,openPreviewFile as t}from"./chunk-RPY7FBYY.js";import{subscribePomo as r,getPomoSnapshot as n}from"./chunk-MWGVFDEV.js";export{setShellTodoProvider}from"./chunk-MWGVFDEV.js";import{wallpaperSrc as o,WALLPAPER_PREF_TOKEN as a,uploadWallpaper as s,wallpaperUploadError as i,deleteWallpaper as l,getWallpaper as c}from"./chunk-KAELFRN4.js";export{ImageAnnotator_default as ImageAnnotator}from"./chunk-2VFRVO3N.js";import{playNotification as d,playStartup as u,soundsEnabled as m,getSoundConfig as h,SOUND_GRID_SHOWN as p,SOUND_PACK_KEYS as f,soundPackName as g,SOUND_TYPES as b,soundTypeName as y,setSoundForType as x,previewSound as w,setAllSounds as v,playLogout as k}from"./chunk-CPWXLXQ7.js";import{useAuth as N,readStored as C,initialRailCollapsed as S,RAIL_COLLAPSED_KEY as _,writeStored as E,RAIL_WIDTH_KEY as T}from"./chunk-I74FRKHQ.js";export{setShellAuthBridge}from"./chunk-I74FRKHQ.js";import"./chunk-PCGZS6S4.js";export{ELEVATION_LEVELS,RADIUS_ROLES}from"./chunk-MVP6Q6KV.js";export{BORDER_WIDTHS,FONT_WEIGHTS,MOTION_DURATIONS,TYPE_SCALE}from"./chunk-LH7IKIGE.js";export{CheckoutTemplate}from"./chunk-2RKTVTJJ.js";export{DashboardTemplate}from"./chunk-HQIUFRWO.js";export{DataTablePage}from"./chunk-USE4HNZ2.js";export{EmailTemplate}from"./chunk-Z3ZIVVKE.js";export{ErrorBoundary}from"./chunk-I5T3A4KI.js";export{ErrorPage}from"./chunk-4S724CEA.js";export{FormLayoutPage}from"./chunk-HQNR4JQG.js";export{GalleryTemplate}from"./chunk-A3R6DKQ5.js";export{useTransferProgress}from"./chunk-QHOEMRR7.js";export{startClientTelemetry}from"./chunk-2MMEGCYI.js";export{AuthScreen}from"./chunk-V7NVQ3Z7.js";export{ChatTemplate}from"./chunk-DTJQHW3Q.js";import{TimeAgo as M}from"./chunk-K2DUF2AR.js";export{TimeAgo}from"./chunk-K2DUF2AR.js";export{TopNav}from"./chunk-P5QRK7WD.js";export{Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam}from"./chunk-6MN2JR25.js";export{Grid,Inline,Stack}from"./chunk-3RPER7VH.js";export{Statistic}from"./chunk-DQEST7MN.js";export{Stepper}from"./chunk-TF3E5J3Y.js";export{Tabs,tabButtonId,tabPanelId}from"./chunk-4G5M752L.js";export{Paragraph,Text,Title}from"./chunk-5KUE6IHF.js";export{SettingReset}from"./chunk-KH6GERFP.js";export{SettingRow}from"./chunk-WVWIRII2.js";export{SidebarActionButton}from"./chunk-KMTCYDJH.js";import{SidebarLayout as j}from"./chunk-YFY2LSWZ.js";export{SidebarLayout}from"./chunk-YFY2LSWZ.js";export{SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,SidebarSection}from"./chunk-SACUPX6L.js";import"./chunk-QWK6DRSN.js";export{Skeleton}from"./chunk-4Z62SEA5.js";export{ListRow,SortableList}from"./chunk-3XLDWJDG.js";import"./chunk-P5ILG2DA.js";export{MilestoneTimeline}from"./chunk-QSVKEONU.js";export{PageHeader}from"./chunk-Y67ILJVG.js";export{POST_PRODUCTION_STATUSES,ProductionTimeline,STAGES,calcOverall,calcReportOverall,useProductionTimeline}from"./chunk-37DRDM4D.js";import"./chunk-SURSVJA2.js";export{TimelineTrack}from"./chunk-HNFLUVVM.js";export{DAY_MS,fmtSliderDate,toDayMs}from"./chunk-YDEIXM2A.js";import{readStoredWidth as I}from"./chunk-7NOU275V.js";export{ResizeHandle}from"./chunk-7NOU275V.js";export{IconRail,IconRailButton}from"./chunk-EOPPYQIT.js";import"./chunk-FQEALPZJ.js";export{ImageLightbox,lightboxKind}from"./chunk-FNQJO3HZ.js";export{ZoomableImage}from"./chunk-U5KIRPLV.js";export{LanguagePanel,LanguageSelect,languageSelectWidth}from"./chunk-EFUQ4KAH.js";import{MarqueeBox as L}from"./chunk-IC72MGON.js";export{MarqueeBox}from"./chunk-IC72MGON.js";export{MetricBar}from"./chunk-HKAWQF7O.js";export{isSeverityTone,severityOf}from"./chunk-TZFNWAED.js";export{MetricBarLegend}from"./chunk-ZVK74ERI.js";import"./chunk-URBCGEXG.js";export{Drawer}from"./chunk-6JLZMVVE.js";import{withSpareRow as P,EditableGrid as D}from"./chunk-KW4VUPJV.js";export{EditableGrid}from"./chunk-KW4VUPJV.js";import{escapeHtml as R}from"./chunk-BR22X7E5.js";export{EmptyState}from"./chunk-UNDHDLWB.js";export{EmptyValue}from"./chunk-64WSMLXG.js";export{FloatingBar}from"./chunk-EIUCHQI2.js";import{GlobalSearch as A,openGlobalSearch as $}from"./chunk-3NU2B2WM.js";export{GlobalSearch,openGlobalSearch}from"./chunk-3NU2B2WM.js";import{navPagesProvider as W,partitionNav as F,sanitizeRecent as O,favoritesToResults as B,pushRecent as H,PAGE_RESULT_ENTITY as U,parsePageResultTarget as K}from"./chunk-WGRS6QBT.js";export{pushRecent as pushRecentSearch,sanitizeRecent as sanitizeRecentSearches}from"./chunk-WGRS6QBT.js";export{HelpCenter}from"./chunk-PEEVPAIJ.js";export{ContainerFillChart}from"./chunk-2ZIVFBJN.js";import{ContextMenu as z}from"./chunk-XDG2RWUO.js";export{ContextMenu,useContextMenu}from"./chunk-XDG2RWUO.js";export{DescriptionList}from"./chunk-SACUSHVN.js";export{Divider}from"./chunk-DFOFEBYX.js";export{Accordion,AccordionBody,AccordionHeading}from"./chunk-V5GDA4I6.js";export{CountBadge}from"./chunk-A3MOA3T7.js";export{APP_UPDATE_POLL_MS,AppUpdateBanner,useAppUpdate}from"./chunk-HKTU536H.js";export{Avatar,AvatarGroup}from"./chunk-5WYCXSUM.js";export{Breadcrumbs}from"./chunk-DBBUHXRT.js";export{BudgetBar,budgetState}from"./chunk-CG4KTWP4.js";export{Card,StatCard}from"./chunk-TDAFCJY7.js";import{TabStrip as V}from"./chunk-VKLVHULL.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"./chunk-73FD77RD.js";export{BRAND_ICON_NAMES,ICON_NAMES,isBrandIconName,isIconName}from"./chunk-SXPBOX32.js";export{BRAND_MAX_HEIGHT,BRAND_MIN_HEIGHT_PX,brandBox}from"./chunk-64ACCUNN.js";import{useClickOutside as Y}from"./chunk-SI26KESU.js";export{useClickOutside}from"./chunk-SI26KESU.js";export{useDebouncedValue}from"./chunk-SLGT5WPJ.js";export{useGridSelection}from"./chunk-VLKDWKVR.js";export{MARQUEE_IGNORE,marqueeHits,rectsIntersect,useMarquee}from"./chunk-OLFYNMTD.js";export{edgeScrollDelta,getScrollParent,scrollBoundsOf}from"./chunk-LACL4MAR.js";import{useTheme as X,resolveTheme as G,CORNERS_FOR_THEME as J,resolveCorners as Q,applyThemePrefs as q}from"./chunk-4LXH6DCN.js";export{CORNERS,CORNERS_FOR_THEME,applyCorners,applyIconSet,applyThemePrefs,cornersFor,resolveCorners,resolveTheme,useTheme}from"./chunk-4LXH6DCN.js";import{THEME_ICON_SETS as Z,loadIconSet as ee,ICON_SET_FOR_THEME as te}from"./chunk-VQCKMT5F.js";export{ICON_SET_FOR_THEME,THEME_ICON_SETS,iconSetFor,loadIconSet}from"./chunk-VQCKMT5F.js";export{mediaMoveItems,useMediaMoveItems}from"./chunk-JSVYN6D6.js";export{TagInput}from"./chunk-S2PKTGHB.js";export{TextToolbar,textToolbarRows,textToolbarWindowColumns}from"./chunk-AAYACT5T.js";export{TileButton_default as TileButton}from"./chunk-H2R4SNNO.js";export{TimePicker_default as TimePicker}from"./chunk-NQ46AZ3D.js";export{WidthsBar}from"./chunk-WVSLFX37.js";export{COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,columnSharesWidths,resolveColumnShares,resolveColumnWidths}from"./chunk-PLGJOHEG.js";import{ShowWhen as re}from"./chunk-YEM4KYCW.js";export{ShowWhen}from"./chunk-YEM4KYCW.js";export{SidesEachToggle,SidesInput,sidesStartEach}from"./chunk-Q6BY4BME.js";export{Slider,SliderGroup}from"./chunk-VSQSBY2P.js";import{copyToClipboard as ne,selectionAt as oe}from"./chunk-QTNPOMXM.js";export{Snippet,copyToClipboard}from"./chunk-QTNPOMXM.js";export{SplitButton_default as SplitButton}from"./chunk-WOHOIJRZ.js";export{DropdownMenu}from"./chunk-TQP3L4OC.js";import"./chunk-JSOO4O5K.js";export{Switch_default as Switch}from"./chunk-STA76WXF.js";export{MediaUploadGrid}from"./chunk-Z7PS4QUO.js";export{MediaUsedInList}from"./chunk-EA37JL6P.js";export{NumericKeypad}from"./chunk-QAR4NYW6.js";export{MAX_FRACTION_DIGITS,appendKey,backspace}from"./chunk-VEPVOHCV.js";export{PictureTiles}from"./chunk-TLJCUUZU.js";export{PositionInput}from"./chunk-QCP4F6EF.js";export{RadioGroup}from"./chunk-TZSPJIP4.js";export{Radio_default as Radio}from"./chunk-NI5FXWK5.js";export{IconPicker}from"./chunk-NADUURUA.js";export{LinkPicker,TextLinkField}from"./chunk-QMLG5XKP.js";export{SearchableSelect}from"./chunk-GVYJYXVH.js";export{NativeSelect,Select_default as Select}from"./chunk-AG3ALTVD.js";import{firstEnabledIndex as ae,lastEnabledIndex as se,nextEnabledIndex as ie,matchTypeahead as le}from"./chunk-EO5RLFRX.js";import"./chunk-QSW26NAH.js";import{Input_default as ce}from"./chunk-UNEJ2ABD.js";export{Input_default as Input}from"./chunk-UNEJ2ABD.js";export{Label,labelClasses}from"./chunk-EQKUFYX6.js";export{AttachButton,AttachmentDropZone,AttachmentList,ComposerAttachments,PaperclipGlyph}from"./chunk-LDHYCVMV.js";export{CornersInput}from"./chunk-JBMGI5YX.js";export{DatePicker_default as DatePicker}from"./chunk-LJVLMM3Q.js";export{DateRangePicker,toISODate}from"./chunk-FJUFQXDS.js";export{DateTimePicker_default as DateTimePicker}from"./chunk-UJULZQM2.js";export{DisplayChips}from"./chunk-FJ72DO6A.js";export{FilePicker_default as FilePicker}from"./chunk-ZVY4J3PU.js";export{FormErrorSummary}from"./chunk-HMA4ZSCS.js";export{AlignmentGrid}from"./chunk-C6LV3HJW.js";export{BORDER_LINE_STYLES,BorderInput,borderSides,borderStartEach}from"./chunk-MVYOBV4I.js";export{BrandAssetEditor}from"./chunk-XW56UIDQ.js";export{MediaUploadField}from"./chunk-WEJFTUS7.js";export{ImageFocusPoint}from"./chunk-SLC3KT7F.js";import{FormField as de}from"./chunk-MVQBVPWP.js";export{FormField}from"./chunk-MVQBVPWP.js";export{mediaFileName}from"./chunk-APMBWBD7.js";import{TransferProgress as ue}from"./chunk-YGITR6I5.js";export{TransferProgress}from"./chunk-YGITR6I5.js";import{Segmented as me}from"./chunk-CHNYSP6K.js";export{Segmented}from"./chunk-CHNYSP6K.js";import"./chunk-4G5VLI7E.js";import{BrandMark as he}from"./chunk-MI67DI3H.js";export{BrandMark,resolveBrandMarkTreatment}from"./chunk-MI67DI3H.js";import{Calendar as pe}from"./chunk-JLDGZFNY.js";export{Calendar,fromKey as fromDateKey,toKey as toDateKey}from"./chunk-JLDGZFNY.js";export{ColorPicker,ColorPickerPanel,ColorSwatch,HexInput,colorFill,colorSwatchClasses}from"./chunk-KIYO4U4T.js";export{hexToHsv,hsvToHex,parseHexColor}from"./chunk-H245LLX4.js";export{Popover}from"./chunk-RNBM5JZI.js";export{InputNumber_default as InputNumber}from"./chunk-EO2XHSIK.js";export{useInSettingRow,useSettingAuto}from"./chunk-E4Z5OXBI.js";export{DataTable}from"./chunk-56CQPUIJ.js";import{Checkbox_default as fe}from"./chunk-CGZBDI6C.js";export{Checkbox_default as Checkbox}from"./chunk-CGZBDI6C.js";export{Kanban}from"./chunk-WDIFRAQM.js";import{ListFooter as ge}from"./chunk-BJGD2ZWK.js";export{ListFooter}from"./chunk-BJGD2ZWK.js";import{ListLoadError as be}from"./chunk-4NB3WHWK.js";export{ListLoadError}from"./chunk-4NB3WHWK.js";export{Pagination}from"./chunk-DGTP6BGV.js";import{useFileIntake as ye,FileIntakeAlert as xe}from"./chunk-MPN267PR.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"./chunk-MPN267PR.js";import{timeAgo as we}from"./chunk-X2S2XDZI.js";export{currencyDecimals,currencySymbol,formatBytes,formatMoney,setCurrencyFormats,timeAgo}from"./chunk-X2S2XDZI.js";export{addShowWhenFacts,isShown,lazyShowWhenContext,showWhenFactReaders,showWhenFactsContext,showWhenOf,shownForOption,truthy,withRowRules,withRowsShownWhen,withShowWhen,withShowWhenFacts}from"./chunk-HCP7WOAL.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"./chunk-25RR3GQW.js";import{formatDate as ve}from"./chunk-5OTS2G3M.js";export{DATE_FORMAT_OPTIONS,TZ_AUTO,firstDayOfWeek,formatDate,formatDateTime,formatTime,getUserDateFormat,getUserTimezone,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile}from"./chunk-5OTS2G3M.js";export{EMPTY_VALUE}from"./chunk-36BRD5J3.js";export{SankeyChart}from"./chunk-MNQ6EPAR.js";export{SCATTER_SERIES_CAP,ScatterChart}from"./chunk-FTQ5DH5U.js";export{StatTile}from"./chunk-TSOK3QNK.js";export{Sparkline}from"./chunk-CKCDGSTC.js";export{SunburstChart}from"./chunk-7GCBMTP2.js";export{TimeSeriesChart}from"./chunk-YULJ7F6Z.js";export{TreemapChart}from"./chunk-BG5BCF64.js";export{squarify}from"./chunk-46BYGPGD.js";export{WaterfallChart}from"./chunk-UB6TIA2R.js";export{HeatmapChart}from"./chunk-ZWQRFYE6.js";export{HistogramChart}from"./chunk-BE4APEUI.js";export{Meter}from"./chunk-5N6VSOZV.js";export{PieChart}from"./chunk-LAHK4WVH.js";export{RADAR_SERIES_CAP,RadarChart}from"./chunk-QYGBWH5J.js";export{RadialBarChart}from"./chunk-GVKFLNRP.js";export{RangeChart}from"./chunk-W4YNYZDQ.js";export{RankedBars}from"./chunk-ABD34D3N.js";export{ChartBrush}from"./chunk-4JCNWUVZ.js";export{ChartDot}from"./chunk-CK2YOGUS.js";export{ChartFrame}from"./chunk-6EAVTBKE.js";export{ChordChart}from"./chunk-CKDFXYYY.js";import"./chunk-X3II54HU.js";export{arcPath,areaBetween,areaFrom,bumpPath,curvePath,linearPath,monotonePath,polygonPoints,splinePath,stepPath}from"./chunk-VFC6QUEN.js";export{ColumnChart}from"./chunk-B6BE4WSP.js";export{ChartDefs,MOTION,dashFor,fillFor,fillId,glowId,groundId,maskId,stagger}from"./chunk-465RRWBY.js";export{ChartSkeleton}from"./chunk-NU55QIUV.js";export{FunnelChart}from"./chunk-U5YJREQJ.js";export{ChartHighlightProvider,autoHighlightIndex,highlightOpacity,useHighlight}from"./chunk-CNYAHYE6.js";export{StepChain,StepChainItem}from"./chunk-MKTO2FHK.js";import{Markdown as ke}from"./chunk-F2HM7SV4.js";export{Markdown,Markdown as MarkdownLite}from"./chunk-F2HM7SV4.js";export{Banner}from"./chunk-QTK5NV7L.js";export{Textarea_default as Textarea}from"./chunk-AWY3F6PV.js";import"./chunk-UJUTS6LJ.js";export{isSafeLinkHref}from"./chunk-PJPK2ADX.js";import{IconButton_default as Ne}from"./chunk-HMZLRXLA.js";export{IconButton_default as IconButton}from"./chunk-HMZLRXLA.js";import{PLACEHOLDER_INK as Ce,FILTER_ON as Se,FILTER_ON_INK as _e,FILTER_OFF as Ee}from"./chunk-JFSYWEHD.js";export{INPUT_BASE,INPUT_SIZES,PLACEHOLDER_INK,inputClasses}from"./chunk-JFSYWEHD.js";import{publishDesktopFolders as Te,requestFilesTrashView as Me,FolderGlyph as je,requestFilesDesktopFolderView as Ie,FileIconTile as Le}from"./chunk-BVDGHZ4H.js";import{setPdfPreview as Pe}from"./chunk-ESL5TDNA.js";import"./chunk-VTVSMRFX.js";import{cancelWindowFront as De,windowHoldsChanges as Re,requestWindowFront as Ae,confirmWindowDiscard as $e,useWindowManager as We,WINDOW_REGISTRY as Fe,isPageEntry as Oe,Modal as Be,setPerfCollecting as He,drainPerfEvents as Ue,forgetMaximizedWindowBoxes as Ke,markMenuOpen as ze,setShellHomeRoute as Ve,useCurrentTabKey as Ye,ModalActions as Xe,useModalActive as Ge,LoadingSpinner as Je,useEnclosingModalId as Qe,isShellApiClientConfigured as qe,client_default as Ze,KEY_ACTIVATED_SELECTOR as et,isDraftEntityId as tt,activateWindowById as rt,CancelButton as nt,setWindowPosition as ot,isDraftEntityWindow as at,subscribeWindowChrome as st,getWindowChromeVersion as it,isTabWindow as lt,readWindowChrome as ct,isEntityEntry as dt}from"./chunk-R6WJ2NTT.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-R6WJ2NTT.js";import{startMenuCategories as ut,navSections as mt,navIcons as ht,sectionIcons as pt,RAIL_W as ft,RAIL_MIN_W as gt,RAIL_MAX_W as bt,RAIL_COLLAPSED_W as yt,WORK_AREA_CHANGED_EVENT as xt,useShellAuth as wt,TAB_STRIP_H as vt}from"./chunk-TPDOOCFS.js";export{ShellAuthProvider,setShellNavIcons,useShellAuth}from"./chunk-TPDOOCFS.js";import{ROW_HEIGHTS as kt,CONTROL_HEIGHTS as Nt}from"./chunk-AW7TOB6N.js";export{CONTROL_HEIGHTS,ROW_HEIGHTS,SPACING_ROLES,SPACING_SCALE,isSpacingStep}from"./chunk-AW7TOB6N.js";import"./chunk-KNUR2UEG.js";export{NEXT_CHUNK_PATH_PREFIX,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isStaleChunkError}from"./chunk-JDCM2VHG.js";export{Result}from"./chunk-SS7BG7BS.js";import{CMD_K as Ct,CMD_DOT as St,SHIFT as _t,MOD as Et,ENTER as Tt,CMD_A as Mt,ALT_SHIFT_N as jt,ALT_SHIFT_E as It,CMD_ENTER as Lt,CMD_S as Pt,ALT_SHIFT_D as Dt,CMD_Z as Rt,CMD_SHIFT_Z as At}from"./chunk-Y53KNQKL.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,MOD,SHIFT,isMac}from"./chunk-Y53KNQKL.js";import{navVisible as $t,isSection as Wt,isReachable as Ft,visibleChildren as Ot}from"./chunk-5A7MWTXX.js";export{CopyButton}from"./chunk-O5PJELY7.js";export{ConfirmProvider,confirm,confirmDestructive,prompt,useConfirm}from"./chunk-SGVIMTN6.js";export{Dialog}from"./chunk-CGY5RNAF.js";import"./chunk-VWGWZY7A.js";import{useDismissPopupsOnOpen as Bt}from"./chunk-PKXQDCNR.js";import{useShellPrefs as Ht,useShellPrefsAdapter as Ut}from"./chunk-KC3EX26K.js";export{ShellPrefsProvider,useLocalStoragePrefs,useShellPrefs}from"./chunk-KC3EX26K.js";import{toast_default as Kt}from"./chunk-HIDOSOI4.js";export{UNDOABLE_MS,toast_default as toast}from"./chunk-HIDOSOI4.js";import{PopupMenuDivider as zt,PopupMenu as Vt,PopupMenuLabel as Yt,PopupMenuItem as Xt,resolveMenuLevels as Gt,MenuIcon as Jt,openMenuLevel as Qt,closeMenuBelow as qt,clampMenuTop as Zt,menuPanelLeft as er}from"./chunk-UPHXYWL6.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu}from"./chunk-UPHXYWL6.js";import{keepsNativeMenu as tr,leavesContextMenuAlone as rr,describeContextTarget as nr}from"./chunk-5QFPTDQF.js";export{MENU_ON_MEDIA_ATTR,NATIVE_MENU_ATTR,describeContextTarget,keepsNativeMenu,leavesContextMenuAlone}from"./chunk-5QFPTDQF.js";export{ColoredBadge}from"./chunk-LWGNNVDA.js";import{useIsMobile as or,useIsPhone as ar}from"./chunk-UGTRSRIW.js";export{useIsMobile}from"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";export{GROUP_COLORS,GROUP_COLORS_SOLID,StatusBadge,StatusBadgeProvider,groupColors,useStatusLabel}from"./chunk-5SULG7D5.js";export{useFocusTrap,useScrollLock}from"./chunk-CDAJKLGL.js";import{TH_ONE_LINE as sr}from"./chunk-7T3COEQK.js";import{APP_VERSION as ir,VERSION as lr}from"./chunk-EUFALBK3.js";export{VERSION}from"./chunk-EUFALBK3.js";import{Button_default as cr}from"./chunk-UDD7GB4F.js";export{Button_default as Button}from"./chunk-UDD7GB4F.js";export{buttonClasses,iconButtonClasses}from"./chunk-K7U4RWXJ.js";import"./chunk-4TL3MRRE.js";import{Icon as dr,kitDrawing as ur}from"./chunk-42BBJJDP.js";export{Icon}from"./chunk-42BBJJDP.js";import{setThemeIconSetLoader as mr,subscribeIcons as hr,iconsVersion as pr,iconSets as fr,drawingIn as gr,defaultIconSet as br,hasIconSet as yr,registerIconSet as xr}from"./chunk-J75ZT2JQ.js";export{activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"./chunk-J75ZT2JQ.js";import{SpinnerRing as wr,LoadingSpinner as vr}from"./chunk-Q5MD3VY6.js";export{LoadingSpinner,SpinnerRing}from"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";export{Tooltip}from"./chunk-2LXTJXWC.js";import{onOverlayOpen as kr}from"./chunk-PGN5ME7B.js";export{OVERLAY_OPEN_EVENT,dismissPopups}from"./chunk-PGN5ME7B.js";import{Z_LAYERS as Nr}from"./chunk-62LW225J.js";export{Z_LAYERS}from"./chunk-62LW225J.js";export{MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,placeMenu,popupBounds,useDropdownPosition}from"./chunk-GLUJS42B.js";import{useBrowserState as Cr}from"./chunk-D65T4H6J.js";export{PortalBrandingProvider,resolvePortalBrandAsset,usePortalBranding}from"./chunk-ACYYVK6G.js";export{BoxPlotChart}from"./chunk-K5UPORAA.js";export{CandlestickChart}from"./chunk-2YZ3ITNG.js";export{ChartTooltip}from"./chunk-P5BOTIJU.js";import{GLASS_INPUT_BG as Sr,glassStyle as _r}from"./chunk-DTJRIWFR.js";export{GLASS_DIVIDER,GLASS_INPUT_BG,glassStyle,solidSurfaceStyle}from"./chunk-DTJRIWFR.js";export{CartesianPlot}from"./chunk-ZGCLFQS5.js";import"./chunk-MG7A3R75.js";export{angleScale,bandScale,binValues,ladderScale,linearScale,logScale,niceAxis,niceMax,radiusScale}from"./chunk-2JWPNR2U.js";export{usePlotWidth}from"./chunk-MAFUXCPZ.js";export{CHART_INK,SERIES_SLOT_COUNT,SERIES_VARS,STATUS_VARS,assignSeriesSlots,resolveSeriesColor,resolveSeriesColorWithin,seriesColor,toggleSeriesSlot}from"./chunk-TZFACUMR.js";import{registerModalEscapeInterceptor as Er}from"./chunk-TWVUQUUD.js";export{registerModalEscapeInterceptor}from"./chunk-TWVUQUUD.js";import{useShellStrings as Tr,useShellLocale as Mr}from"./chunk-GTRUBA2R.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"./chunk-GTRUBA2R.js";import{formatGrouped as jr}from"./chunk-C3QOHMR6.js";import{createContext as Ir,lazy as Lr,useSyncExternalStore as Pr,useState as Dr,useEffect as Rr,useRef as Ar,useCallback as $r,useLayoutEffect as Wr,Fragment as Fr,useMemo as Or,useContext as Br,isValidElement as Hr,cloneElement as Ur,Suspense as Kr,useId as zr}from"react";import{Dialog as Vr,DialogBackdrop as Yr,DialogPanel as Xr}from"@headlessui/react";import{jsxs as Gr,jsx as Jr,Fragment as Qr}from"react/jsx-runtime";import{createPortal as qr}from"react-dom";import{useQueryClient as Zr,useQuery as en,useInfiniteQuery as tn,QueryClientContext as rn,QueryClient as nn}from"@tanstack/react-query";import"react-router-dom";function on(...e){return Object.assign({},...e)}function an(e){let t=null,r=0,n=0;const o=/* @__PURE__ */new Set,a=()=>{o.forEach(e=>e())},s=(n,o)=>{t={...n,nav:++r},a(),!1!==o?.raise&&Ae(e)};return{windowKey:e,set(r,o){const i=++n;if(null===r)return t=null,De(e),void a();t&&!1!==o?.askDiscard&&Re(e)?(!1!==o?.raise&&Ae(e),$e(e).then(e=>{e&&i===n&&s(r,o)})):s(r,o)},get:()=>t,subscribe:e=>(o.add(e),()=>{o.delete(e)})}}function sn(e){return Pr(e.subscribe,e.get,e.get)}var ln=[{title:"Global",shortcuts:[{keys:Ct,description:"Search"},{keys:St,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:`${_t} Arrows`,description:"Resize window"},{keys:`${Et} ←/→`,description:"Snap to left / right half"},{keys:`${Et} ↑`,description:"Maximize"},{keys:`${Et} ↓`,description:"Restore / minimize"},{keys:Tt,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:Mt,description:"Select / deselect all"},{keys:jt,description:"Create new item"},{keys:It,description:"Edit selected item"}]},{title:"Modals / Forms",shortcuts:[{keys:Lt,description:"Submit"},{keys:Pt,description:"Save"},{keys:Dt,description:"Save as new (duplicate)"},{keys:Rt,description:"Undo the last change to the form"},{keys:At,description:"Redo it"},{keys:"ESC",description:"Close modal"}]}];function cn(){const[e,t]=Dr(!1);return Rr(()=>{const e=()=>t(e=>!e);return document.addEventListener("toggle-shortcut-help",e),()=>document.removeEventListener("toggle-shortcut-help",e)},[]),Rr(()=>{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)},[]),Bt(e),/* @__PURE__ */Gr(Vr,{open:e,onClose:()=>t(!1),className:"relative",style:{zIndex:Nr.overlay},children:[
3
3
  /* @__PURE__ */Jr(Yr,{className:"fixed inset-0 bg-black/30 transition-opacity"}),
4
4
  /* @__PURE__ */Jr("div",{className:"fixed inset-0 flex items-center justify-center p-6",children:/* @__PURE__ */Gr(Xr,{className:"w-full max-w-md rounded-lg bg-white shadow-xl",children:[
5
5
  /* @__PURE__ */Gr("div",{className:"flex items-center justify-between px-5 pt-5 pb-3 border-b border-gray-200",children:[
@@ -11,36 +11,36 @@ import{PREVIEW_OPENED_EVENT as e,openPreviewFile as t}from"./chunk-RPY7FBYY.js";
11
11
  /* @__PURE__ */Jr("span",{className:"text-sm text-gray-700",children:e.description}),
12
12
  /* @__PURE__ */Jr("kbd",{className:"inline-flex items-center rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-xs font-medium text-gray-600 font-mono",children:e.keys})]},e.keys+e.description))})]},e.title))}),
13
13
  /* @__PURE__ */Jr("div",{className:"px-5 py-3 border-t border-gray-100 text-center",children:/* @__PURE__ */Gr("span",{className:"text-xs text-gray-400",children:["Press ",
14
- /* @__PURE__ */Jr("kbd",{className:"rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-2xs font-medium text-gray-500",children:"?"})," to toggle"]})})]})})]})}var dn="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m0 0H5.625",un="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25",mn="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18",hn="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3",pn="M16.023 9.348h4.992V4.356m-4.993 4.992l3.181-3.183a8.25 8.25 0 00-13.803 3.7M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7",fn="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244";function gn({disabled:e}={}){const[t,r]=Dr(null);if(Rr(()=>{if(e)return;const t=e=>{if(er(e))return;const t=("function"==typeof e.composedPath?e.composedPath()[0]:void 0)??e.target;e.preventDefault();const n=X(t);r({x:e.clientX,y:e.clientY,owner:t instanceof Element?t:null,target:tr(t,n?.text),selected:n})};return document.addEventListener("contextmenu",t),()=>{document.removeEventListener("contextmenu",t)}},[e]),!t)return null;const{linkUrl:n}=t.target,{selected:o}=t,a=()=>r(null),s=e=>()=>{e(),a()},i=[];return o&&i.push([
15
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>{Y("Text",o.text,o.html)}),children:[
16
- /* @__PURE__ */Jr(Xt,{d:dn}),"Copy"]},"copy")]),n&&i.push([
17
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>{return e=n,void window.open(e,"_blank","noopener,noreferrer");var e}),children:[
18
- /* @__PURE__ */Jr(Xt,{d:un}),"Open link in new tab"]},"open-link"),
19
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>{Y("Link address",n)}),children:[
20
- /* @__PURE__ */Jr(Xt,{d:fn}),"Copy link address"]},"copy-link")]),i.push([
21
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>window.history.back()),children:[
22
- /* @__PURE__ */Jr(Xt,{d:mn}),"Back"]},"back"),
23
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>window.history.forward()),children:[
24
- /* @__PURE__ */Jr(Xt,{d:hn}),"Forward"]},"forward"),
25
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>window.location.reload()),children:[
26
- /* @__PURE__ */Jr(Xt,{d:pn}),"Reload"]},"reload"),
27
- /* @__PURE__ */Gr(Vt,{onClick:s(()=>{Y("Page address",window.location.href)}),children:[
28
- /* @__PURE__ */Jr(Xt,{d:fn}),"Copy page address"]},"copy-page")]),/* @__PURE__ */Jr(K,{at:{x:t.x,y:t.y},owner:t.owner,minWidth:200,onClose:a,className:"shell-context-menu",autoFocus:!1,children:/* @__PURE__ */Jr("div",{"data-shell-context-menu":t.target.kind,children:i.map((e,t)=>/* @__PURE__ */Gr("div",{children:[t>0&&/* @__PURE__ */Jr(Ut,{}),e]},t))})})}function bn(e){let t=e.title??"",r=null;const n=e.entity_label?.trim();if(n){const e=`(${n})`,o=t.trimEnd();o.endsWith(e)&&o.length>e.length&&(t=o.slice(0,-e.length).trimEnd(),r=n)}const o=e.actor_name?.trim(),a=o&&!t.startsWith(o)?o:null;return{title:t,code:r,actor:a}}function yn({useUnreadCount:e,list:t,markRead:r,markAllRead:n,onItemClick:o,onViewAll:a,popDirection:s}){const[i,l]=Dr(!1),c=Tr().notifications,{prefs:u,save:m}=or(),h=!0===u.notifications_dnd,p=Ar(null),f=Ar(null),g=qr(),b=e();Rr(()=>{"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission()},[]);const y=$r(e=>{e.is_read||(g.setQueryData(["notification-unread-count"],e=>e?{...e,count:Math.max(0,(e.count||0)-1)}:e),g.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(()=>{g.invalidateQueries({queryKey:["notification-unread-count"]}),g.invalidateQueries({queryKey:["notifications-dropdown"]})})),l(!1),o(e)},[g,r,o]),[x,w]=Dr(null),v=Ar(null),k=$r(()=>{v.current&&(clearTimeout(v.current),v.current=null),w(null)},[]),N=$r((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),d(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>w(null),t)},[]);Rr(()=>()=>{v.current&&clearTimeout(v.current)},[]);const C=Ar(null);Rr(()=>{null!==C.current?(b>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(),y(t),e.close()}}}else N(t)}).catch(()=>{}),C.current=b):C.current=b},[b,t,N,h]);const{data:S}=en({queryKey:["notifications-dropdown"],queryFn:()=>t({page_size:30}),staleTime:3e4,refetchInterval:3e4}),_=S?.results??[],[E,T]=Dr({}),j=$r(()=>{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"===s?{left:r+8,bottom:8,maxHeight:n}:"left"===s?{right:r+8,bottom:8,maxHeight:n}:"top"===e?{right:8,top:t+8,maxHeight:n}:{right:8,bottom:t+8,maxHeight:n})},[s]);return Wr(()=>{i&&j()},[i,j]),Rr(()=>{if(i)return window.addEventListener("resize",j),()=>window.removeEventListener("resize",j)},[i,j]),/* @__PURE__ */Gr("div",{ref:p,className:"relative",children:[
14
+ /* @__PURE__ */Jr("kbd",{className:"rounded border border-gray-300 bg-gray-50 px-2 py-0.5 text-2xs font-medium text-gray-500",children:"?"})," to toggle"]})})]})})]})}var dn="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 01-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 011.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 00-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 01-1.125-1.125v-9.25m0 0H5.625",un="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25",mn="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18",hn="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3",pn="M16.023 9.348h4.992V4.356m-4.993 4.992l3.181-3.183a8.25 8.25 0 00-13.803 3.7M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7",fn="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244";function gn({disabled:e}={}){const[t,r]=Dr(null);if(Rr(()=>{if(e)return;const t=e=>{if(rr(e))return;const t=("function"==typeof e.composedPath?e.composedPath()[0]:void 0)??e.target;e.preventDefault();const n=oe(t);r({x:e.clientX,y:e.clientY,owner:t instanceof Element?t:null,target:nr(t,n?.text),selected:n})};return document.addEventListener("contextmenu",t),()=>{document.removeEventListener("contextmenu",t)}},[e]),!t)return null;const{linkUrl:n}=t.target,{selected:o}=t,a=()=>r(null),s=e=>()=>{e(),a()},i=[];return o&&i.push([
15
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>{ne("Text",o.text,o.html)}),children:[
16
+ /* @__PURE__ */Jr(Jt,{d:dn}),"Copy"]},"copy")]),n&&i.push([
17
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>{return e=n,void window.open(e,"_blank","noopener,noreferrer");var e}),children:[
18
+ /* @__PURE__ */Jr(Jt,{d:un}),"Open link in new tab"]},"open-link"),
19
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>{ne("Link address",n)}),children:[
20
+ /* @__PURE__ */Jr(Jt,{d:fn}),"Copy link address"]},"copy-link")]),i.push([
21
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>window.history.back()),children:[
22
+ /* @__PURE__ */Jr(Jt,{d:mn}),"Back"]},"back"),
23
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>window.history.forward()),children:[
24
+ /* @__PURE__ */Jr(Jt,{d:hn}),"Forward"]},"forward"),
25
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>window.location.reload()),children:[
26
+ /* @__PURE__ */Jr(Jt,{d:pn}),"Reload"]},"reload"),
27
+ /* @__PURE__ */Gr(Xt,{onClick:s(()=>{ne("Page address",window.location.href)}),children:[
28
+ /* @__PURE__ */Jr(Jt,{d:fn}),"Copy page address"]},"copy-page")]),/* @__PURE__ */Jr(z,{at:{x:t.x,y:t.y},owner:t.owner,minWidth:200,onClose:a,className:"shell-context-menu",autoFocus:!1,children:/* @__PURE__ */Jr("div",{"data-shell-context-menu":t.target.kind,children:i.map((e,t)=>/* @__PURE__ */Gr("div",{children:[t>0&&/* @__PURE__ */Jr(zt,{}),e]},t))})})}function bn(e){let t=e.title??"",r=null;const n=e.entity_label?.trim();if(n){const e=`(${n})`,o=t.trimEnd();o.endsWith(e)&&o.length>e.length&&(t=o.slice(0,-e.length).trimEnd(),r=n)}const o=e.actor_name?.trim(),a=o&&!t.startsWith(o)?o:null;return{title:t,code:r,actor:a}}function yn({useUnreadCount:e,list:t,markRead:r,markAllRead:n,onItemClick:o,onViewAll:a,popDirection:s}){const[i,l]=Dr(!1),c=Tr().notifications,{prefs:u,save:m}=Ht(),h=!0===u.notifications_dnd,p=Ar(null),f=Ar(null),g=Zr(),b=e();Rr(()=>{"Notification"in window&&"default"===Notification.permission&&Notification.requestPermission()},[]);const y=$r(e=>{e.is_read||(g.setQueryData(["notification-unread-count"],e=>e?{...e,count:Math.max(0,(e.count||0)-1)}:e),g.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(()=>{g.invalidateQueries({queryKey:["notification-unread-count"]}),g.invalidateQueries({queryKey:["notifications-dropdown"]})})),l(!1),o(e)},[g,r,o]),[x,w]=Dr(null),v=Ar(null),k=$r(()=>{v.current&&(clearTimeout(v.current),v.current=null),w(null)},[]),N=$r((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),d(),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>w(null),t)},[]);Rr(()=>()=>{v.current&&clearTimeout(v.current)},[]);const C=Ar(null);Rr(()=>{null!==C.current?(b>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(),y(t),e.close()}}}else N(t)}).catch(()=>{}),C.current=b):C.current=b},[b,t,N,h]);const{data:S}=en({queryKey:["notifications-dropdown"],queryFn:()=>t({page_size:30}),staleTime:3e4,refetchInterval:3e4}),_=S?.results??[],[E,T]=Dr({}),j=$r(()=>{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"===s?{left:r+8,bottom:8,maxHeight:n}:"left"===s?{right:r+8,bottom:8,maxHeight:n}:"top"===e?{right:8,top:t+8,maxHeight:n}:{right:8,bottom:t+8,maxHeight:n})},[s]);return Wr(()=>{i&&j()},[i,j]),Rr(()=>{if(i)return window.addEventListener("resize",j),()=>window.removeEventListener("resize",j)},[i,j]),/* @__PURE__ */Gr("div",{ref:p,className:"relative",children:[
29
29
  /* @__PURE__ */Gr("button",{ref:f,"data-menu-toggle":!0,onMouseEnter:()=>g.prefetchQuery({queryKey:["notifications-dropdown"],queryFn:()=>t({page_size:30})}),onClick:()=>l(e=>!e),title:h?c.dndOn:c.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__ */Jr(dr,{name:"bell",className:"h-5 w-5",strokeWidth:1.5}),b>0&&/* @__PURE__ */Jr("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:b>99?"99+":b}),h&&
31
- /* @__PURE__ */Jr("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__ */Jr(dr,{name:"moon",look:"solid",className:"h-2 w-2"})})]}),i&&Zr(
32
- /* @__PURE__ */Gr(zt,{minWidth:320,className:"w-80 flex flex-col overflow-hidden",style:{...E},onClose:()=>l(!1),children:[
33
- /* @__PURE__ */Jr(Kt,{children:/* @__PURE__ */Gr("span",{className:"flex items-center justify-between w-full gap-2",children:[
31
+ /* @__PURE__ */Jr("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__ */Jr(dr,{name:"moon",look:"solid",className:"h-2 w-2"})})]}),i&&qr(
32
+ /* @__PURE__ */Gr(Vt,{minWidth:320,className:"w-80 flex flex-col overflow-hidden",style:{...E},onClose:()=>l(!1),children:[
33
+ /* @__PURE__ */Jr(Yt,{children:/* @__PURE__ */Gr("span",{className:"flex items-center justify-between w-full gap-2",children:[
34
34
  /* @__PURE__ */Jr("span",{children:c.title}),
35
35
  /* @__PURE__ */Gr("span",{className:"flex items-center gap-2",children:[b>0&&/* @__PURE__ */Jr("button",{onClick:()=>{g.setQueryData(["notification-unread-count"],e=>e?{...e,count:0}:e),g.setQueryData(["notifications-dropdown"],e=>e?.results?{...e,results:e.results.map(e=>({...e,is_read:!0}))}:e),n().then(()=>{g.invalidateQueries({queryKey:["notification-unread-count"]}),g.invalidateQueries({queryKey:["notifications-dropdown"]})})},className:"text-2xs text-blue-600 hover:text-blue-700 font-medium normal-case tracking-normal",children:c.markAllRead}),
36
36
  /* @__PURE__ */Jr("button",{onClick:()=>m({notifications_dnd:!h}),"aria-pressed":h,title:c.dnd,className:"rounded p-0.5 transition-colors "+(h?"text-indigo-600 bg-indigo-50":"text-gray-400 hover:text-gray-600"),children:/* @__PURE__ */Jr(dr,{name:"moon",className:"h-3.5 w-3.5",fill:h?"currentColor":"none",strokeWidth:1.8})})]})]})}),
37
- /* @__PURE__ */Jr(Ut,{}),
37
+ /* @__PURE__ */Jr(zt,{}),
38
38
  /* @__PURE__ */Jr("div",{className:"overflow-y-auto overflow-x-hidden",style:{flex:"1 1 auto",minHeight:0},children:0===_.length?/* @__PURE__ */Gr("div",{className:"flex flex-col items-center justify-center py-8 px-4 text-center",children:[
39
39
  /* @__PURE__ */Jr(dr,{name:"bell",className:"h-8 w-8 text-gray-300 mb-2",strokeWidth:1.5}),
40
40
  /* @__PURE__ */Jr("p",{className:"text-sm text-gray-600 font-medium",children:c.caughtUp}),
41
41
  /* @__PURE__ */Jr("p",{className:"text-xs text-gray-400 mt-0.5",children:c.empty})]}):_.map((e,t)=>{const r=bn(e);/* @__PURE__ */
42
42
  return Gr(Fr,{children:[t>0&&/* @__PURE__ */Jr("div",{"aria-hidden":"true",className:"mx-3 border-t border-gray-100"}),
43
- /* @__PURE__ */Jr(Vt,{onClick:()=>y(e),children:/* @__PURE__ */Gr("div",{className:"flex w-full min-w-0 items-start gap-3 py-3",children:[
43
+ /* @__PURE__ */Jr(Xt,{onClick:()=>y(e),children:/* @__PURE__ */Gr("div",{className:"flex w-full min-w-0 items-start gap-3 py-3",children:[
44
44
  /* @__PURE__ */Jr("span",{"aria-hidden":"true",className:"mt-1 h-2 w-2 shrink-0 rounded-full "+(e.is_read?"":"bg-blue-500")}),
45
45
  /* @__PURE__ */Gr("div",{className:"min-w-0 flex-1",children:[
46
46
  /* @__PURE__ */Jr("p",{title:e.title,className:"text-sm leading-snug truncate "+(e.is_read?"":"font-medium"),children:r.title}),e.message&&/* @__PURE__ */Jr("p",{className:"text-xs text-gray-500 mt-0.5 truncate",children:e.message}),
@@ -48,8 +48,8 @@ return Gr(Fr,{children:[t>0&&/* @__PURE__ */Jr("div",{"aria-hidden":"true",class
48
48
  /* @__PURE__ */Jr("span",{className:"font-mono text-gray-500",children:r.code}),
49
49
  /* @__PURE__ */Jr("span",{"aria-hidden":"true",children:"·"})]}),
50
50
  /* @__PURE__ */Jr(M,{value:e.created_at}),r.actor&&/* @__PURE__ */Jr("span",{children:c.byActor(r.actor)})]})]})]})})]},e.id)})}),a&&/* @__PURE__ */Gr(Qr,{children:[
51
- /* @__PURE__ */Jr(Ut,{}),
52
- /* @__PURE__ */Jr(Vt,{onClick:()=>{l(!1),a()},children:/* @__PURE__ */Jr("span",{className:"w-full text-center text-xs text-blue-600 font-medium",children:c.viewAll})})]})]}),document.body),x&&Zr(
51
+ /* @__PURE__ */Jr(zt,{}),
52
+ /* @__PURE__ */Jr(Xt,{onClick:()=>{l(!1),a()},children:/* @__PURE__ */Jr("span",{className:"w-full text-center text-xs text-blue-600 font-medium",children:c.viewAll})})]})]}),document.body),x&&qr(
53
53
  /* @__PURE__ */Gr(Qr,{children:[
54
54
  /* @__PURE__ */Jr("style",{children:"@keyframes notif-in { from { opacity: 0; transform: translateX(30px) scale(0.95); } to { opacity: 1; transform: translateX(0) scale(1); } }"}),
55
55
  /* @__PURE__ */Gr("div",{onClick:()=>{y(x),k()},className:"fixed top-4 right-4 z-(--z-toast) w-[320px] max-w-[calc(100vw-2rem)] cursor-pointer rounded-(--radius-popup) bg-white/85 backdrop-blur-md border border-white/40 shadow-lg flex items-start gap-3 px-4 py-3",style:{animation:"notif-in 300ms cubic-bezier(0.4,0,0.2,1)"},children:[
@@ -77,7 +77,7 @@ return Gr("button",{onClick:()=>m(e),title:n?`Remove ${t} from desktop`:`Add ${t
77
77
  /* @__PURE__ */Jr("span",{className:"shrink-0 inline-flex items-center justify-center h-6 w-6 rounded-full border transition-colors "+(n?"border-blue-500 bg-blue-500 text-white group-hover:border-red-400 group-hover:bg-red-400":"border-gray-300 text-gray-400 group-hover:border-blue-400 group-hover:text-blue-500"),children:n?/* @__PURE__ */Gr(Qr,{children:[
78
78
  /* @__PURE__ */Jr(dr,{name:"check",className:"h-3.5 w-3.5 group-hover:hidden",strokeWidth:3}),
79
79
  /* @__PURE__ */Jr(dr,{name:"close",className:"h-3.5 w-3.5 hidden group-hover:block",strokeWidth:3})]}):/* @__PURE__ */Jr(dr,{name:"add",className:"h-3.5 w-3.5",strokeWidth:3})})]},e)})})}),
80
- /* @__PURE__ */Jr("p",{className:"shrink-0 pt-3 mt-1 border-t border-gray-100 text-2xs text-gray-400 leading-relaxed",children:"Drag a widget anywhere on the desktop to reposition it. Right-click a widget for its appearance settings."})]})})}var _n=50,En=20,Tn={kind:"cpu",label:"CPU-bound (JavaScript)",detail:"The main thread is blocked. Rendering settings will not help — this is script or data work."};function Mn(e){if(e.length<2)return{fps:0,frameMs:0,worstMs:0};let t=0;for(let r=1;r<e.length;r++){const n=e[r]-e[r-1];n>t&&(t=n)}const r=e[e.length-1]-e[0];if(r<=0)return{fps:0,frameMs:0,worstMs:0};const n=e.length-1;return{fps:n/r*1e3,frameMs:r/n,worstMs:t}}function jn(e){const{fps:t,blockedPct:r}=e,n=null!==r&&r>=20;return!Number.isFinite(t)||t<=0?n?Tn:{kind:"unknown",label:"Measuring",detail:"Collecting frame timings."}:t>=50?{kind:"smooth",label:"Smooth",detail:"Frames are landing on time. No rendering bottleneck here."}:null===r?{kind:"unknown",label:"Janky — cause unknown",detail:"This browser reports no long-task timing, so GPU and JS cannot be told apart. Try Chrome or Edge."}:n?Tn:{kind:"gpu",label:"GPU-bound (compositing)",detail:"Frames are late while the main thread sits idle. Try Preferences → Customization → Reduce transparency."}}var In=[{kind:"submenu",test:e=>e.submenus>0},{kind:"menu",test:e=>e.menus>0},{kind:"resize",test:e=>e.resizeMs>0},{kind:"move",test:e=>e.moveMs>0},{kind:"scroll",test:e=>e.scrolls>0},{kind:"type",test:e=>e.keys>0},{kind:"click",test:e=>e.clicks>0||e.dragMs>0}];function Ln(e){return In.find(t=>t.test(e))?.kind??"idle"}var Pn=2400,Dn=4,Rn=2;function An(e,t,r=2400){const n=e.length>=r?e.slice(e.length-r+1):e.slice();return n.push(t),n}function $n(e){return"idle"!==Ln(e)}function Wn(e){if(!e.length)return 0;const t=e.slice().sort((e,t)=>e-t),r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function Fn(e){const t=e.filter(e=>e.fps>0);return{samples:e.length,medianFps:Wn(t.map(e=>e.fps)),worstMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),stalls:e.length-t.length}}function On(e,t){const r=/* @__PURE__ */new Map;for(const n of e){const e=t(n);if(null===e)continue;const o=r.get(e);o?o.push(n):r.set(e,[n])}return r}function Bn(e){return e.sort((e,t)=>e.medianFps-t.medianFps)}function Hn(e){const t={samples:0,durationMs:0,medianFps:0,worstFrameMs:0,verdictShare:{smooth:0,gpu:0,cpu:0,unknown:0},interacting:null,idle:null,byActivity:[],byWindowCount:[],worstWindows:[],worstMenus:[]};if(!e.length)return t;const r={...t.verdictShare};for(const t of e)r[t.verdict]+=1/e.length;const n=e.filter($n),o=e.filter(e=>!$n(e));return{samples:e.length,durationMs:e[e.length-1].t-e[0].t,medianFps:Wn(e.filter(e=>e.fps>0).map(e=>e.fps)),worstFrameMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),verdictShare:r,interacting:n.length>=4?Fn(n):null,idle:o.length>=4?Fn(o):null,byActivity:Bn([...On(e,Ln).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({kind:e,...Fn(t)}))),byWindowCount:[...On(e,e=>e.windows).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({windows:e,...Fn(t)})).sort((e,t)=>e.windows-t.windows),worstWindows:Bn([...On(e,e=>e.active).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({key:e,...Fn(t)}))),worstMenus:Bn([...On(e,e=>e.menuKey).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({key:e,...Fn(t)})))}}var Un=["t","fps","frameMs","worstMs","blockedPct","heapMB","verdict","windows","active","clicks","keys","scrolls","dragMs","menus","submenus","menuKey","moveMs","resizeMs"];function zn(e){return[Un.join(","),...e.map(e=>Un.map(t=>(e=>{if(null==e)return"";const t=String("number"==typeof e?Math.round(10*e)/10:e);return/[",\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t})(e[t])).join(","))].join("\n")}function Kn(e){if(!e?.length)return null;const t=e.filter(e=>!/not[^a-z]*a[^a-z]*brand/i.test(e.brand)),r=t.find(e=>"Chromium"!==e.brand)??t[0];return r?`${r.brand} ${r.version}`:null}function Vn(e){return"string"==typeof e&&e?e:null}async function Yn(){return{hints:await Xn(),battery:await Gn()}}async function Xn(){const e=navigator.userAgentData;if(!e)return null;const t={platform:e.platform??null,platformVersion:null,architecture:null,model:null,browser:Kn(e.brands)};if(!e.getHighEntropyValues)return t;try{const r=await e.getHighEntropyValues(["platform","platformVersion","architecture","model","fullVersionList"]),n=r.fullVersionList;return{platform:Vn(r.platform)??t.platform,platformVersion:Vn(r.platformVersion),architecture:Vn(r.architecture),model:Vn(r.model),browser:Kn(n)??t.browser}}catch{return t}}async function Gn(){const e=navigator.getBattery;if(!e)return null;try{const t=await e.call(navigator);return{charging:t.charging,level:t.level}}catch{return null}}function Jn(e){try{return window.matchMedia(e).matches}catch{return!1}}function Qn(e){const t=navigator,r=performance.memory,n=e?.hints??null,o=function(){if("undefined"==typeof document)return{renderer:null,vendor:null,available:!1};try{const e=document.createElement("canvas").getContext("webgl");if(!e)return{renderer:null,vendor:null,available:!1};const t=e.getExtension("WEBGL_debug_renderer_info"),r=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),n=t?e.getParameter(t.UNMASKED_VENDOR_WEBGL):e.getParameter(e.VENDOR);return e.getExtension("WEBGL_lose_context")?.loseContext(),{renderer:Vn(r),vendor:Vn(n),available:!0}}catch{return{renderer:null,vendor:null,available:!1}}}(),a=t.connection;return{userAgent:t.userAgent,browser:n?.browser??null,platform:n?.platform??null,platformVersion:n?.platformVersion??null,architecture:n?.architecture??null,model:n?.model??null,cpuCores:"number"==typeof t.hardwareConcurrency?t.hardwareConcurrency:null,deviceMemoryGB:"number"==typeof t.deviceMemory?t.deviceMemory:null,gpu:o.renderer,gpuVendor:o.vendor,webglAvailable:o.available,screen:{width:screen.width,height:screen.height,dpr:window.devicePixelRatio,colorDepth:"number"==typeof screen.colorDepth?screen.colorDepth:null},viewport:{width:window.innerWidth,height:window.innerHeight},heapLimitMB:r?Math.round(r.jsHeapSizeLimit/1048576):null,network:a?{effectiveType:Vn(a.effectiveType),downlinkMbps:"number"==typeof a.downlink?a.downlink:null,rttMs:"number"==typeof a.rtt?a.rtt:null,saveData:!0===a.saveData}:null,battery:e?.battery??null,prefersReducedMotion:Jn("(prefers-reduced-motion: reduce)"),forcedColors:Jn("(forced-colors: active)"),reducedTransparency:document.documentElement.classList.contains("rosh-reduce-transparency"),touchPoints:"number"==typeof t.maxTouchPoints?t.maxTouchPoints:null}}function Zn(e){const t=[];e.browser&&t.push(e.browser);const r=[e.platform,e.platformVersion].filter(Boolean).join(" ");return r&&t.push(e.architecture?`${r} (${e.architecture})`:r),e.gpu?t.push(e.gpu):e.webglAvailable||t.push("no WebGL (software rendering)"),e.cpuCores&&t.push(`${e.cpuCores} cores`),e.deviceMemoryGB&&t.push(`${e.deviceMemoryGB}GB+ RAM`),t.push(`${e.screen.width}×${e.screen.height} @${e.screen.dpr}x`),e.battery&&!e.battery.charging&&t.push(`on battery ${Math.round(100*e.battery.level)}%`),e.reducedTransparency&&t.push("reduce transparency on"),e.prefersReducedMotion&&t.push("reduced motion"),t.join(" · ")}var qn={smooth:{dot:"bg-emerald-400",text:"text-emerald-300"},gpu:{dot:"bg-amber-400",text:"text-amber-300"},cpu:{dot:"bg-sky-400",text:"text-sky-300"},unknown:{dot:"bg-gray-400",text:"text-gray-300"}};function eo({onClose:e,onSubmit:t,className:r=""}){const n=Ar([]),o=Ar(0),a=Ar({clicks:0,keys:0,scrolls:0,dragMs:0}),s=Ar({down:!1,since:0}),i=Ar([]),l=Ar(0),c=Ar(0),d=Ar(null),u=Ar(null),[m,h]=Dr(!1),[p,f]=Dr({fps:0,frameMs:0,worstMs:0,blockedPct:null}),[g,b]=Dr([]),[y,x]=Dr(null),[w,v]=Dr(0),[k,N]=Dr(!1),[C,S]=Dr(""),[_,E]=Dr(!1),[T,M]=Dr(null);Rr(()=>(He(!0),()=>He(!1)),[]),Rr(()=>{let e=!0;return Yn().then(t=>{e&&(u.current=t)}),()=>{e=!1}},[]),Rr(()=>{let e=0;const t=r=>{const o=n.current;o.push(r);const a=r-1e3;for(;o.length&&o[0]<a;)o.shift();e=requestAnimationFrame(t)};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[]),Rr(()=>{if("undefined"==typeof PerformanceObserver)return;let e;try{e=new PerformanceObserver(e=>{for(const t of e.getEntries())o.current+=t.duration}),e.observe({entryTypes:["longtask"]}),h(!0)}catch{return}return()=>e?.disconnect()},[]),Rr(()=>{const e=()=>{a.current.clicks++,s.current={down:!0,since:performance.now()}},t=()=>{if(!s.current.down)return;const e=performance.now(),t=e-s.current.since;s.current.since=e,t<=100&&(a.current.dragMs+=t)},r=()=>{s.current.down=!1},n=()=>{a.current.keys++},o=()=>{a.current.scrolls++},i={capture:!0,passive:!0};return window.addEventListener("pointerdown",e,i),window.addEventListener("pointermove",t,i),window.addEventListener("pointerup",r,i),window.addEventListener("pointercancel",r,i),window.addEventListener("keydown",n,i),window.addEventListener("wheel",o,i),()=>{window.removeEventListener("pointerdown",e,i),window.removeEventListener("pointermove",t,i),window.removeEventListener("pointerup",r,i),window.removeEventListener("pointercancel",r,i),window.removeEventListener("keydown",n,i),window.removeEventListener("wheel",o,i)}},[]);const j=$r(()=>{try{localStorage.setItem("react-os-shell:perf-log",JSON.stringify(i.current))}catch{}},[]);Rr(()=>{const e=()=>j();return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",e),j()}},[j]),Rr(()=>{const e=setInterval(()=>{const e=performance.now();l.current||(l.current=e);const t=Mn(n.current),r=m?Math.min(100,o.current/500*100):null;o.current=0;const s=performance.memory,d=s?s.usedJSHeapSize/1048576:null,u={...t,blockedPct:r},h=a.current,p=Ue(),{windows:g,active:y}=function(){if("undefined"==typeof document)return{windows:0,active:null};const e=document.querySelectorAll("[data-modal-panel]");let t=null,r=-1/0;return e.forEach(e=>{const n=parseInt(window.getComputedStyle(e).zIndex,10),o=Number.isFinite(n)?n:0;o>=r&&(r=o,t=e.dataset.windowKey??e.dataset.modalId??null)}),{windows:e.length,active:t}}();i.current=An(i.current,{t:Math.round(e-l.current),...t,blockedPct:r,heapMB:d,verdict:jn(u).kind,windows:g,active:y,clicks:h.clicks,keys:h.keys,scrolls:h.scrolls,dragMs:Math.round(h.dragMs),menus:p.menus,submenus:p.submenus,menuKey:p.menuKey,moveMs:Math.round(p.moveMs),resizeMs:Math.round(p.resizeMs)}),h.clicks=0,h.keys=0,h.scrolls=0,h.dragMs=0,(!c.current||e-c.current>=1e4)&&(c.current=e,j()),f(u),b(e=>[...e,t.fps].slice(-40)),x(s?{usedMB:s.usedJSHeapSize/1048576,limitMB:s.jsHeapSizeLimit/1048576}:null),v(i.current.length)},500);return()=>clearInterval(e)},[m,j]);const I=$r(()=>{d.current=i.current.slice(),M(null),N(!0)},[]),L=jn(p),P=$r(()=>{const e=d.current??i.current,t=/* @__PURE__ */(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19),r=Hn(e),n=Qn(u.current);return{message:C,filename:`perf-log-${t}.json`,summary:r,environment:n,verdict:L.label,json:JSON.stringify({generatedAt:/* @__PURE__ */(new Date).toISOString(),message:C,verdict:L.label,environment:n,summary:r,records:e},null,2)}},[C,L.label]),D=$r(e=>{const t=URL.createObjectURL(new Blob([e.json],{type:"application/json"})),r=document.createElement("a");r.href=t,r.download=e.filename,r.click(),URL.revokeObjectURL(t)},[]),R=$r(async()=>{const e=P();E(!0),M(null);try{t?await t(e):D(e),d.current=null,S(""),N(!1)}catch(e){M(e instanceof Error&&e.message?e.message:"Could not send. Try again.")}finally{E(!1)}},[P,D,t]),A=qn[L.kind],$=Math.max(60,...g),W=Math.round(500*w/1e3),F=t?"Send":"Download",O=d.current?.length??w;/* @__PURE__ */
80
+ /* @__PURE__ */Jr("p",{className:"shrink-0 pt-3 mt-1 border-t border-gray-100 text-2xs text-gray-400 leading-relaxed",children:"Drag a widget anywhere on the desktop to reposition it. Right-click a widget for its appearance settings."})]})})}var _n=50,En=20,Tn={kind:"cpu",label:"CPU-bound (JavaScript)",detail:"The main thread is blocked. Rendering settings will not help — this is script or data work."};function Mn(e){if(e.length<2)return{fps:0,frameMs:0,worstMs:0};let t=0;for(let r=1;r<e.length;r++){const n=e[r]-e[r-1];n>t&&(t=n)}const r=e[e.length-1]-e[0];if(r<=0)return{fps:0,frameMs:0,worstMs:0};const n=e.length-1;return{fps:n/r*1e3,frameMs:r/n,worstMs:t}}function jn(e){const{fps:t,blockedPct:r}=e,n=null!==r&&r>=20;return!Number.isFinite(t)||t<=0?n?Tn:{kind:"unknown",label:"Measuring",detail:"Collecting frame timings."}:t>=50?{kind:"smooth",label:"Smooth",detail:"Frames are landing on time. No rendering bottleneck here."}:null===r?{kind:"unknown",label:"Janky — cause unknown",detail:"This browser reports no long-task timing, so GPU and JS cannot be told apart. Try Chrome or Edge."}:n?Tn:{kind:"gpu",label:"GPU-bound (compositing)",detail:"Frames are late while the main thread sits idle. Try Preferences → Customization → Reduce transparency."}}var In=[{kind:"submenu",test:e=>e.submenus>0},{kind:"menu",test:e=>e.menus>0},{kind:"resize",test:e=>e.resizeMs>0},{kind:"move",test:e=>e.moveMs>0},{kind:"scroll",test:e=>e.scrolls>0},{kind:"type",test:e=>e.keys>0},{kind:"click",test:e=>e.clicks>0||e.dragMs>0}];function Ln(e){return In.find(t=>t.test(e))?.kind??"idle"}var Pn=2400,Dn=4,Rn=2;function An(e,t,r=2400){const n=e.length>=r?e.slice(e.length-r+1):e.slice();return n.push(t),n}function $n(e){return"idle"!==Ln(e)}function Wn(e){if(!e.length)return 0;const t=e.slice().sort((e,t)=>e-t),r=Math.floor(t.length/2);return t.length%2?t[r]:(t[r-1]+t[r])/2}function Fn(e){const t=e.filter(e=>e.fps>0);return{samples:e.length,medianFps:Wn(t.map(e=>e.fps)),worstMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),stalls:e.length-t.length}}function On(e,t){const r=/* @__PURE__ */new Map;for(const n of e){const e=t(n);if(null===e)continue;const o=r.get(e);o?o.push(n):r.set(e,[n])}return r}function Bn(e){return e.sort((e,t)=>e.medianFps-t.medianFps)}function Hn(e){const t={samples:0,durationMs:0,medianFps:0,worstFrameMs:0,verdictShare:{smooth:0,gpu:0,cpu:0,unknown:0},interacting:null,idle:null,byActivity:[],byWindowCount:[],worstWindows:[],worstMenus:[]};if(!e.length)return t;const r={...t.verdictShare};for(const t of e)r[t.verdict]+=1/e.length;const n=e.filter($n),o=e.filter(e=>!$n(e));return{samples:e.length,durationMs:e[e.length-1].t-e[0].t,medianFps:Wn(e.filter(e=>e.fps>0).map(e=>e.fps)),worstFrameMs:e.reduce((e,t)=>t.worstMs>e?t.worstMs:e,0),verdictShare:r,interacting:n.length>=4?Fn(n):null,idle:o.length>=4?Fn(o):null,byActivity:Bn([...On(e,Ln).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({kind:e,...Fn(t)}))),byWindowCount:[...On(e,e=>e.windows).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({windows:e,...Fn(t)})).sort((e,t)=>e.windows-t.windows),worstWindows:Bn([...On(e,e=>e.active).entries()].filter(([,e])=>e.length>=4).map(([e,t])=>({key:e,...Fn(t)}))),worstMenus:Bn([...On(e,e=>e.menuKey).entries()].filter(([,e])=>e.length>=2).map(([e,t])=>({key:e,...Fn(t)})))}}var Un=["t","fps","frameMs","worstMs","blockedPct","heapMB","verdict","windows","active","clicks","keys","scrolls","dragMs","menus","submenus","menuKey","moveMs","resizeMs"];function Kn(e){return[Un.join(","),...e.map(e=>Un.map(t=>(e=>{if(null==e)return"";const t=String("number"==typeof e?Math.round(10*e)/10:e);return/[",\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t})(e[t])).join(","))].join("\n")}function zn(e){if(!e?.length)return null;const t=e.filter(e=>!/not[^a-z]*a[^a-z]*brand/i.test(e.brand)),r=t.find(e=>"Chromium"!==e.brand)??t[0];return r?`${r.brand} ${r.version}`:null}function Vn(e){return"string"==typeof e&&e?e:null}async function Yn(){return{hints:await Xn(),battery:await Gn()}}async function Xn(){const e=navigator.userAgentData;if(!e)return null;const t={platform:e.platform??null,platformVersion:null,architecture:null,model:null,browser:zn(e.brands)};if(!e.getHighEntropyValues)return t;try{const r=await e.getHighEntropyValues(["platform","platformVersion","architecture","model","fullVersionList"]),n=r.fullVersionList;return{platform:Vn(r.platform)??t.platform,platformVersion:Vn(r.platformVersion),architecture:Vn(r.architecture),model:Vn(r.model),browser:zn(n)??t.browser}}catch{return t}}async function Gn(){const e=navigator.getBattery;if(!e)return null;try{const t=await e.call(navigator);return{charging:t.charging,level:t.level}}catch{return null}}function Jn(e){try{return window.matchMedia(e).matches}catch{return!1}}function Qn(e){const t=navigator,r=performance.memory,n=e?.hints??null,o=function(){if("undefined"==typeof document)return{renderer:null,vendor:null,available:!1};try{const e=document.createElement("canvas").getContext("webgl");if(!e)return{renderer:null,vendor:null,available:!1};const t=e.getExtension("WEBGL_debug_renderer_info"),r=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),n=t?e.getParameter(t.UNMASKED_VENDOR_WEBGL):e.getParameter(e.VENDOR);return e.getExtension("WEBGL_lose_context")?.loseContext(),{renderer:Vn(r),vendor:Vn(n),available:!0}}catch{return{renderer:null,vendor:null,available:!1}}}(),a=t.connection;return{userAgent:t.userAgent,browser:n?.browser??null,platform:n?.platform??null,platformVersion:n?.platformVersion??null,architecture:n?.architecture??null,model:n?.model??null,cpuCores:"number"==typeof t.hardwareConcurrency?t.hardwareConcurrency:null,deviceMemoryGB:"number"==typeof t.deviceMemory?t.deviceMemory:null,gpu:o.renderer,gpuVendor:o.vendor,webglAvailable:o.available,screen:{width:screen.width,height:screen.height,dpr:window.devicePixelRatio,colorDepth:"number"==typeof screen.colorDepth?screen.colorDepth:null},viewport:{width:window.innerWidth,height:window.innerHeight},heapLimitMB:r?Math.round(r.jsHeapSizeLimit/1048576):null,network:a?{effectiveType:Vn(a.effectiveType),downlinkMbps:"number"==typeof a.downlink?a.downlink:null,rttMs:"number"==typeof a.rtt?a.rtt:null,saveData:!0===a.saveData}:null,battery:e?.battery??null,prefersReducedMotion:Jn("(prefers-reduced-motion: reduce)"),forcedColors:Jn("(forced-colors: active)"),reducedTransparency:document.documentElement.classList.contains("rosh-reduce-transparency"),touchPoints:"number"==typeof t.maxTouchPoints?t.maxTouchPoints:null}}function qn(e){const t=[];e.browser&&t.push(e.browser);const r=[e.platform,e.platformVersion].filter(Boolean).join(" ");return r&&t.push(e.architecture?`${r} (${e.architecture})`:r),e.gpu?t.push(e.gpu):e.webglAvailable||t.push("no WebGL (software rendering)"),e.cpuCores&&t.push(`${e.cpuCores} cores`),e.deviceMemoryGB&&t.push(`${e.deviceMemoryGB}GB+ RAM`),t.push(`${e.screen.width}×${e.screen.height} @${e.screen.dpr}x`),e.battery&&!e.battery.charging&&t.push(`on battery ${Math.round(100*e.battery.level)}%`),e.reducedTransparency&&t.push("reduce transparency on"),e.prefersReducedMotion&&t.push("reduced motion"),t.join(" · ")}var Zn={smooth:{dot:"bg-emerald-400",text:"text-emerald-300"},gpu:{dot:"bg-amber-400",text:"text-amber-300"},cpu:{dot:"bg-sky-400",text:"text-sky-300"},unknown:{dot:"bg-gray-400",text:"text-gray-300"}};function eo({onClose:e,onSubmit:t,className:r=""}){const n=Ar([]),o=Ar(0),a=Ar({clicks:0,keys:0,scrolls:0,dragMs:0}),s=Ar({down:!1,since:0}),i=Ar([]),l=Ar(0),c=Ar(0),d=Ar(null),u=Ar(null),[m,h]=Dr(!1),[p,f]=Dr({fps:0,frameMs:0,worstMs:0,blockedPct:null}),[g,b]=Dr([]),[y,x]=Dr(null),[w,v]=Dr(0),[k,N]=Dr(!1),[C,S]=Dr(""),[_,E]=Dr(!1),[T,M]=Dr(null);Rr(()=>(He(!0),()=>He(!1)),[]),Rr(()=>{let e=!0;return Yn().then(t=>{e&&(u.current=t)}),()=>{e=!1}},[]),Rr(()=>{let e=0;const t=r=>{const o=n.current;o.push(r);const a=r-1e3;for(;o.length&&o[0]<a;)o.shift();e=requestAnimationFrame(t)};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[]),Rr(()=>{if("undefined"==typeof PerformanceObserver)return;let e;try{e=new PerformanceObserver(e=>{for(const t of e.getEntries())o.current+=t.duration}),e.observe({entryTypes:["longtask"]}),h(!0)}catch{return}return()=>e?.disconnect()},[]),Rr(()=>{const e=()=>{a.current.clicks++,s.current={down:!0,since:performance.now()}},t=()=>{if(!s.current.down)return;const e=performance.now(),t=e-s.current.since;s.current.since=e,t<=100&&(a.current.dragMs+=t)},r=()=>{s.current.down=!1},n=()=>{a.current.keys++},o=()=>{a.current.scrolls++},i={capture:!0,passive:!0};return window.addEventListener("pointerdown",e,i),window.addEventListener("pointermove",t,i),window.addEventListener("pointerup",r,i),window.addEventListener("pointercancel",r,i),window.addEventListener("keydown",n,i),window.addEventListener("wheel",o,i),()=>{window.removeEventListener("pointerdown",e,i),window.removeEventListener("pointermove",t,i),window.removeEventListener("pointerup",r,i),window.removeEventListener("pointercancel",r,i),window.removeEventListener("keydown",n,i),window.removeEventListener("wheel",o,i)}},[]);const j=$r(()=>{try{localStorage.setItem("react-os-shell:perf-log",JSON.stringify(i.current))}catch{}},[]);Rr(()=>{const e=()=>j();return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",e),j()}},[j]),Rr(()=>{const e=setInterval(()=>{const e=performance.now();l.current||(l.current=e);const t=Mn(n.current),r=m?Math.min(100,o.current/500*100):null;o.current=0;const s=performance.memory,d=s?s.usedJSHeapSize/1048576:null,u={...t,blockedPct:r},h=a.current,p=Ue(),{windows:g,active:y}=function(){if("undefined"==typeof document)return{windows:0,active:null};const e=document.querySelectorAll("[data-modal-panel]");let t=null,r=-1/0;return e.forEach(e=>{const n=parseInt(window.getComputedStyle(e).zIndex,10),o=Number.isFinite(n)?n:0;o>=r&&(r=o,t=e.dataset.windowKey??e.dataset.modalId??null)}),{windows:e.length,active:t}}();i.current=An(i.current,{t:Math.round(e-l.current),...t,blockedPct:r,heapMB:d,verdict:jn(u).kind,windows:g,active:y,clicks:h.clicks,keys:h.keys,scrolls:h.scrolls,dragMs:Math.round(h.dragMs),menus:p.menus,submenus:p.submenus,menuKey:p.menuKey,moveMs:Math.round(p.moveMs),resizeMs:Math.round(p.resizeMs)}),h.clicks=0,h.keys=0,h.scrolls=0,h.dragMs=0,(!c.current||e-c.current>=1e4)&&(c.current=e,j()),f(u),b(e=>[...e,t.fps].slice(-40)),x(s?{usedMB:s.usedJSHeapSize/1048576,limitMB:s.jsHeapSizeLimit/1048576}:null),v(i.current.length)},500);return()=>clearInterval(e)},[m,j]);const I=$r(()=>{d.current=i.current.slice(),M(null),N(!0)},[]),L=jn(p),P=$r(()=>{const e=d.current??i.current,t=/* @__PURE__ */(new Date).toISOString().replace(/[:.]/g,"-").slice(0,19),r=Hn(e),n=Qn(u.current);return{message:C,filename:`perf-log-${t}.json`,summary:r,environment:n,verdict:L.label,json:JSON.stringify({generatedAt:/* @__PURE__ */(new Date).toISOString(),message:C,verdict:L.label,environment:n,summary:r,records:e},null,2)}},[C,L.label]),D=$r(e=>{const t=URL.createObjectURL(new Blob([e.json],{type:"application/json"})),r=document.createElement("a");r.href=t,r.download=e.filename,r.click(),URL.revokeObjectURL(t)},[]),R=$r(async()=>{const e=P();E(!0),M(null);try{t?await t(e):D(e),d.current=null,S(""),N(!1)}catch(e){M(e instanceof Error&&e.message?e.message:"Could not send. Try again.")}finally{E(!1)}},[P,D,t]),A=Zn[L.kind],$=Math.max(60,...g),W=Math.round(500*w/1e3),F=t?"Send":"Download",O=d.current?.length??w;/* @__PURE__ */
81
81
  return Gr("div",{className:`w-56 rounded-lg border border-white/15 bg-[#11111b]/95 px-3 py-2 font-mono text-2xs text-white/80 shadow-lg select-none ${r}`,role:"status","aria-live":"off","aria-label":"Performance statistics",children:[
82
82
  /* @__PURE__ */Gr("div",{className:"mb-2 flex items-center justify-between",children:[
83
83
  /* @__PURE__ */Jr("span",{className:"text-3xs uppercase tracking-wider text-white/40",children:"Performance"}),e&&/* @__PURE__ */Jr("button",{onClick:e,className:"-mr-1 px-1 leading-none text-white/40 transition-colors hover:text-white/90","aria-label":"Hide performance statistics",children:"×"})]}),
@@ -110,102 +110,102 @@ return Jr("div",{className:`flex-1 rounded-sm ${void 0===r?"bg-white/5":A.dot}`,
110
110
  return Gr("div",{className:"flex items-baseline justify-between gap-2",children:[
111
111
  /* @__PURE__ */Jr("dt",{className:"text-white/40",children:e}),
112
112
  /* @__PURE__ */Jr("dd",{className:"tabular-nums text-white/70",children:t})]})}var ro=[],no="documents",oo="Recent Documents",ao=90;var so=Ir({});function io({value:e,children:t}){/* @__PURE__ */
113
- return Jr(so.Provider,{value:e,children:t})}function lo(){return Br(so)}function co(){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 uo({profile:r}){const n=Tr();qr();const{openEntity:o,openPage:a}=We(),s=Ar(null),{prefs:i,save:l}=or(),c={...r?.preferences||{},...i},d=c.favorite_documents||[],u=c.desktop_folders||[],m=u.some(e=>e.id===no)?u.map(e=>e.id===no?{...e,name:oo}:e):[...u,{id:no,name:oo}],h=c.desktop_snap??!1,p=c.notepad_notes||[],f=p.filter(e=>e.sticky),g=lo(),b=g.hiddenContextMenuItems??[],y=async(e,t)=>{const r=`${e}#${t}`;if(g.stickyResolver)try{const n=await g.stickyResolver(e,t);n?o(n.entityType,n.entityId,n.snapshot,n.label??r):Ht.error(`${r} not found`)}catch{Ht.error(`Failed to open ${r}`)}else Ht.error(`Unknown reference: ${r}`)},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]",s=n.slice(0,t)+a+n.slice(t+o[0].length);pe(p.map(t=>t.id===e?{...t,content:s,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=[],s=/([A-Z]{2,4})#(\d{4,6})/g;let i;for(;null!==(i=s.exec(t));)if(g.stickyResolver){const e=i[1],t=i[2],n=i.index,o=i[0];a.push({idx:n,len:o.length,render:()=>/* @__PURE__ */Jr("button",{onClick:r=>{r.stopPropagation(),y(e,t)},className:"text-blue-700 hover:underline font-medium cursor-pointer",children:o},`r-${r}-${n}`)})}const l=/\[([ xX]?)\]/g;for(;null!==(i=l.exec(t));){const t="x"===i[1]||"X"===i[1],n=i.index,s=o+n;a.push({idx:n,len:i[0].length,render:()=>/* @__PURE__ */Jr("button",{onClick:t=>{t.stopPropagation(),x(e,s)},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__ */Jr(dr,{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__ */Jr("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__ */Jr("span",{children:t.slice(d)},`t-${r}-${d}`)),0===c.length&&c.push(/* @__PURE__ */Jr("span",{children:"​"},`e-${r}`));const u=/^\[x\]/i.test(t.trimStart());/* @__PURE__ */
114
- return Jr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[v,k]=Dr(null),[N,C]=Dr(null),[S,_]=Dr(/* @__PURE__ */new Set),[E,T]=Dr(null),[M,j]=Dr(!1),[I,P]=Dr(!1),[D,R]=Dr(!1),[A,$]=Dr(null),[W,F]=Dr(""),[O,B]=Dr(null),[H,U]=Dr(null),[z,K]=Dr(null),[V,Y]=Dr(null),X=Ar(null),G=$r(e=>{g.saveShortcuts?g.saveShortcuts(e):l({favorite_documents:e})},[g,l]),J=$r(e=>{g.saveFolders?g.saveFolders(e):l({desktop_folders:e})},[g,l]);$r(e=>{g.saveSnap?g.saveSnap(e):l({desktop_snap:e})},[g,l]);const Q=Ar({folders:m,favDocs:d,saveFolders:J,saveDocs:G});Q.current={folders:m,favDocs:d,saveFolders:J,saveDocs:G},Rr(()=>{const t=e=>{const t=e.detail;if(!t?.filePath)return;const{favDocs:r,saveDocs:n}=Q.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:no},...o])};return window.addEventListener(e,t),()=>window.removeEventListener(e,t)},[]);const Z=e=>({right:20+Math.floor(e/8)*ao,top:20+e%8*ao}),q=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Z(t),ee=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Z(d.filter(e=>!e.folderId).length+t),te=d.filter(e=>!e.folderId),re=e=>{"preview-file"===e.entityType&&e.filePath&&e.fileKind?t({filePath:e.filePath,filename:e.label,kind:e.fileKind,onStaged:e=>a(e)}):"page"===e.entityType?a(e.entityId):o(e.entityType,e.entityId,null,e.label)},ne=e=>{Ie(e),a("/files")},oe=$r(e=>{const{favDocs:t,saveDocs:r}=Q.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=$r(e=>{const{favDocs:t,saveDocs:r}=Q.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.filter(e=>!(e.folderId&&n.has(`${e.entityType}|${e.entityId}`))))},[]),[se,ie]=Dr({}),le=Ar([]),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=q(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})}le.current=a;const s=a.find(e=>e.key===n)??a[0];s&&(k({type:e,idx:t,startX:r.clientX,startY:r.clientY,origX:s.origX,origY:s.origY}),r.preventDefault())};Rr(()=>{if(!v)return;const e=le.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},a=e=>{const t=n();t&&(t.style.outline=e?"2px solid var(--accent-600, #7c3aed)":"",t.style.outlineOffset=e?"-2px":"")},s=n=>{const s=n.clientX-v.startX,i=n.clientY-v.startY;for(const t of e)t.el&&(t.el.style.right=t.origX-s+"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}}X.current=t,Y(e=>e===t?e:t),a(null!=r()&&o(n.clientX,n.clientY))}},c=t=>{const n=t.clientX-v.startX,s=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)){a(!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(i.favorite_pages)?i.favorite_pages:[];return t.includes(c)||l({favorite_pages:[...t,c]}),X.current=null,Y(null),k(null),void(le.current=[])}a(!1);const u=X.current,p=null!=u?m[u]:null;X.current=null,Y(null);const f=e.filter(e=>"trash"!==e.type).map(e=>{let t=e.origX-n,r=Math.max(0,e.origY+s);if(h){const e=(o=t,a=r,{x:Math.round(o/ao)*ao,y:Math.round(a/ao)*ao});t=e.x,r=e.y}var o,a;return t=Math.max(0,t),{entry:e,finalRight:t,finalTop:r}}),g=e.find(e=>"trash"===e.type);g&&l({desktop_trash_position:{right:Math.max(0,g.origX-n),bottom:Math.max(0,g.origY-s)}});const b=f.filter(e=>"item"===e.entry.type);if(b.length>0){const t=[...d],r={},n=1===b.length&&1===e.length?b[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 b){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 y=f.filter(e=>"folder"===e.entry.type);if(y.length>0){const e=[...m],t={};for(const r of y)e[r.entry.idx]={...e[r.entry.idx],x:r.finalRight,y:r.finalTop},t[`folder-${r.entry.idx}`]={right:r.finalRight,top:r.finalTop};J(e),ie(e=>({...e,...t}))}k(null),le.current=[]};return window.addEventListener("pointermove",s),window.addEventListener("pointerup",c),()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",c)}},[v,h,d,m,te,i]);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??""}`));Rr(()=>{ie({})},[de,ue]),Rr(()=>{const{folders:e,favDocs:t}=Q.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);Te({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]),Rr(()=>()=>Te(null),[]);const me=Ar(!1);Rr(()=>{if(!E)return;const e=e=>{const t=s.current?.getBoundingClientRect();if(!t)return;const r=e.clientX-t.left,n=e.clientY-t.top,o=r-E.startX,a=n-E.startY;if(o*o+a*a>16&&(me.current=!0),T(e=>e?{...e,endX:r,endY:n}:null),me.current){const e=Math.min(E.startX,r),t=Math.max(E.startX,r),o=Math.min(E.startY,n),a=Math.max(E.startY,n);_(((e,t,r,n)=>{const o=/* @__PURE__ */new Set,a=s.current?.clientWidth||800;te.forEach((s,i)=>{const l=q(s,i),c=a-l.right-80;c+40>e&&c<t&&l.top+40>r&&l.top<n&&o.add(`item-${i}`)}),m.forEach((s,i)=>{const l=ee(s,i),c=a-l.right-80;c+40>e&&c<t&&l.top+40>r&&l.top<n&&o.add(`folder-${i}`)});const i=s.current?.querySelector('[data-desktop-icon="trash"]'),l=s.current?.getBoundingClientRect();if(i&&l){const a=i.getBoundingClientRect(),s=a.left-l.left,c=a.top-l.top;s+a.width>e&&s<t&&c+a.height>r&&c<n&&o.add("trash")}return o})(e,t,o,a))}},t=()=>{T(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[E]);Rr(()=>{if(!N)return;const e=()=>C(null);return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[N]);const he=(e,t)=>{J(m.map(r=>r.id===e?{...r,name:t}:r)),$(null)},pe=$r(e=>{g.saveNotes?g.saveNotes(e):l({notepad_notes:e})},[g,l]),fe=(e,t)=>{pe(p.map(r=>r.id===e?{...r,content:t,updated_at:/* @__PURE__ */(new Date).toISOString()}:r))};Rr(()=>{if(!H)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${H.id}"]`);t&&(t.style.left=H.origX+e.clientX-H.startX+"px",t.style.right="auto",t.style.top=H.origY+e.clientY-H.startY+"px")},t=e=>{const t=H.origX+e.clientX-H.startX,r=Math.max(0,H.origY+e.clientY-H.startY),n=document.querySelector(`[data-sticky-id="${H.id}"]`),o=n?.offsetWidth??192,a=t+o/2>window.innerWidth/2?"right":"left",s="right"===a?window.innerWidth-t-o:t;pe(p.map(e=>e.id===H.id?{...e,sticky_x:s,sticky_y:r,sticky_anchor:a}:e)),n&&(n.style.left="",n.style.right=""),U(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[H,p]),Rr(()=>{if(!z)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${z.id}"]`);t&&(t.style.width=`${Math.max(140,z.origW+e.clientX-z.startX)}px`,t.style.height=`${Math.max(100,z.origH+e.clientY-z.startY)}px`)},t=e=>{const t=Math.max(140,z.origW+e.clientX-z.startX),r=Math.max(100,z.origH+e.clientY-z.startY);pe(p.map(e=>e.id===z.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)}},[z,p]);const ge={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"},be=(e,t,r,n,o)=>/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
113
+ return Jr(so.Provider,{value:e,children:t})}function lo(){return Br(so)}function co(){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 uo({profile:r,showItems:n=!0}){const o=Tr();Zr();const{openEntity:a,openPage:s}=We(),i=Ar(null),{prefs:l,save:c}=Ht(),d={...r?.preferences||{},...l},u=d.favorite_documents||[],m=d.desktop_folders||[],h=m.some(e=>e.id===no)?m.map(e=>e.id===no?{...e,name:oo}:e):[...m,{id:no,name:oo}],p=d.desktop_snap??!1,f=d.notepad_notes||[],g=f.filter(e=>e.sticky),b=lo(),y=b.hiddenContextMenuItems??[],x=async(e,t)=>{const r=`${e}#${t}`;if(b.stickyResolver)try{const n=await b.stickyResolver(e,t);n?a(n.entityType,n.entityId,n.snapshot,n.label??r):Kt.error(`${r} not found`)}catch{Kt.error(`Failed to open ${r}`)}else Kt.error(`Unknown reference: ${r}`)},w=(e,t)=>{const r=f.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]",s=n.slice(0,t)+a+n.slice(t+o[0].length);fe(f.map(t=>t.id===e?{...t,content:s,updated_at:/* @__PURE__ */(new Date).toISOString()}:t))},v=(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=[],s=/([A-Z]{2,4})#(\d{4,6})/g;let i;for(;null!==(i=s.exec(t));)if(b.stickyResolver){const e=i[1],t=i[2],n=i.index,o=i[0];a.push({idx:n,len:o.length,render:()=>/* @__PURE__ */Jr("button",{onClick:r=>{r.stopPropagation(),x(e,t)},className:"text-blue-700 hover:underline font-medium cursor-pointer",children:o},`r-${r}-${n}`)})}const l=/\[([ xX]?)\]/g;for(;null!==(i=l.exec(t));){const t="x"===i[1]||"X"===i[1],n=i.index,s=o+n;a.push({idx:n,len:i[0].length,render:()=>/* @__PURE__ */Jr("button",{onClick:t=>{t.stopPropagation(),w(e,s)},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__ */Jr(dr,{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__ */Jr("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__ */Jr("span",{children:t.slice(d)},`t-${r}-${d}`)),0===c.length&&c.push(/* @__PURE__ */Jr("span",{children:"​"},`e-${r}`));const u=/^\[x\]/i.test(t.trimStart());/* @__PURE__ */
114
+ return Jr("div",{className:u?"line-through opacity-50":"",children:c},r)})},[k,N]=Dr(null),[C,S]=Dr(null),[_,E]=Dr(/* @__PURE__ */new Set),[T,M]=Dr(null),[j,I]=Dr(!1),[P,D]=Dr(!1),[R,A]=Dr(!1),[$,W]=Dr(null),[F,O]=Dr(""),[B,H]=Dr(null),[U,K]=Dr(null),[z,V]=Dr(null),[Y,X]=Dr(null),G=Ar(null),J=$r(e=>{b.saveShortcuts?b.saveShortcuts(e):c({favorite_documents:e})},[b,c]),Q=$r(e=>{b.saveFolders?b.saveFolders(e):c({desktop_folders:e})},[b,c]);$r(e=>{b.saveSnap?b.saveSnap(e):c({desktop_snap:e})},[b,c]);const q=Ar({folders:h,favDocs:u,saveFolders:Q,saveDocs:J});q.current={folders:h,favDocs:u,saveFolders:Q,saveDocs:J},Rr(()=>{const t=e=>{const t=e.detail;if(!t?.filePath)return;const{favDocs:r,saveDocs:n}=q.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:no},...o])};return window.addEventListener(e,t),()=>window.removeEventListener(e,t)},[]);const Z=e=>({right:20+Math.floor(e/8)*ao,top:20+e%8*ao}),ee=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Z(t),te=(e,t)=>null!=e.x&&null!=e.y?{right:e.x,top:e.y}:Z(u.filter(e=>!e.folderId).length+t),re=u.filter(e=>!e.folderId),ne=e=>{"preview-file"===e.entityType&&e.filePath&&e.fileKind?t({filePath:e.filePath,filename:e.label,kind:e.fileKind,onStaged:e=>s(e)}):"page"===e.entityType?s(e.entityId):a(e.entityType,e.entityId,null,e.label)},oe=e=>{Ie(e),s("/files")},ae=$r(e=>{const{favDocs:t,saveDocs:r}=q.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))},[]),se=$r(e=>{const{favDocs:t,saveDocs:r}=q.current,n=new Set(e.map(e=>`${e.entityType}|${e.entityId}`));r(t.filter(e=>!(e.folderId&&n.has(`${e.entityType}|${e.entityId}`))))},[]),[ie,le]=Dr({}),ce=Ar([]),de=(e,t,r)=>{if(0!==r.button)return;const n="trash"===e?"trash":`${e}-${t}`,o=_.has(n)&&_.size>1?Array.from(_):[n],a=[];for(const e of o)if(e.startsWith("item-")){const t=parseInt(e.slice(5),10),r=re[t];if(!r)continue;const n=ee(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=h[t];if(!r)continue;const n=te(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})}ce.current=a;const s=a.find(e=>e.key===n)??a[0];s&&(N({type:e,idx:t,startX:r.clientX,startY:r.clientY,origX:s.origX,origY:s.origY}),r.preventDefault())};Rr(()=>{if(!k)return;const e=ce.current,t=1===e.length&&"item"===e[0].type,r=()=>{if(!t)return null;const r=re[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},a=e=>{const t=n();t&&(t.style.outline=e?"2px solid var(--accent-600, #7c3aed)":"",t.style.outlineOffset=e?"-2px":"")},s=n=>{const s=n.clientX-k.startX,i=n.clientY-k.startY;for(const t of e)t.el&&(t.el.style.right=t.origX-s+"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}}G.current=t,X(e=>e===t?e:t),a(null!=r()&&o(n.clientX,n.clientY))}},i=t=>{const n=t.clientX-k.startX,s=t.clientY-k.startY;for(const t of e)t.el&&(t.el.style.zIndex="",t.el.style.opacity="");const i=r();if(i&&o(t.clientX,t.clientY)){a(!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(l.favorite_pages)?l.favorite_pages:[];return t.includes(i)||c({favorite_pages:[...t,i]}),G.current=null,X(null),N(null),void(ce.current=[])}a(!1);const d=G.current,m=null!=d?h[d]:null;G.current=null,X(null);const f=e.filter(e=>"trash"!==e.type).map(e=>{let t=e.origX-n,r=Math.max(0,e.origY+s);if(p){const e=(o=t,a=r,{x:Math.round(o/ao)*ao,y:Math.round(a/ao)*ao});t=e.x,r=e.y}var o,a;return t=Math.max(0,t),{entry:e,finalRight:t,finalTop:r}}),g=e.find(e=>"trash"===e.type);g&&c({desktop_trash_position:{right:Math.max(0,g.origX-n),bottom:Math.max(0,g.origY-s)}});const b=f.filter(e=>"item"===e.entry.type);if(b.length>0){const t=[...u],r={},n=1===b.length&&1===e.length?b[0]:null,o=n?m??h.find((e,t)=>{const r=te(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=h.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 b){const n=u.indexOf(re[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=()=>{J(t),Object.keys(r).length>0&&le(e=>({...e,...r}))};o?setTimeout(a,220):a()}const y=f.filter(e=>"folder"===e.entry.type);if(y.length>0){const e=[...h],t={};for(const r of y)e[r.entry.idx]={...e[r.entry.idx],x:r.finalRight,y:r.finalTop},t[`folder-${r.entry.idx}`]={right:r.finalRight,top:r.finalTop};Q(e),le(e=>({...e,...t}))}N(null),ce.current=[]};return window.addEventListener("pointermove",s),window.addEventListener("pointerup",i),()=>{window.removeEventListener("pointermove",s),window.removeEventListener("pointerup",i)}},[k,p,u,h,re,l]);const ue=JSON.stringify(u.map(e=>`${e.entityId}:${e.x??""}:${e.y??""}:${e.folderId??""}`)),me=JSON.stringify(h.map(e=>`${e.id}:${e.x??""}:${e.y??""}`));Rr(()=>{le({})},[ue,me]),Rr(()=>{const{folders:e,favDocs:t}=q.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);Te({folders:e.map(e=>({id:e.id,name:e.name,itemCount:r[e.id]?.length??0})),itemsByFolder:r,moveToDesktop:ae,removeShortcuts:se})},[ue,me,ae,se]),Rr(()=>()=>Te(null),[]);const he=Ar(!1);Rr(()=>{if(!T)return;const e=e=>{const t=i.current?.getBoundingClientRect();if(!t)return;const r=e.clientX-t.left,n=e.clientY-t.top,o=r-T.startX,a=n-T.startY;if(o*o+a*a>16&&(he.current=!0),M(e=>e?{...e,endX:r,endY:n}:null),he.current){const e=Math.min(T.startX,r),t=Math.max(T.startX,r),o=Math.min(T.startY,n),a=Math.max(T.startY,n);E(((e,t,r,n)=>{const o=/* @__PURE__ */new Set,a=i.current?.clientWidth||800;re.forEach((s,i)=>{const l=ee(s,i),c=a-l.right-80;c+40>e&&c<t&&l.top+40>r&&l.top<n&&o.add(`item-${i}`)}),h.forEach((s,i)=>{const l=te(s,i),c=a-l.right-80;c+40>e&&c<t&&l.top+40>r&&l.top<n&&o.add(`folder-${i}`)});const s=i.current?.querySelector('[data-desktop-icon="trash"]'),l=i.current?.getBoundingClientRect();if(s&&l){const a=s.getBoundingClientRect(),i=a.left-l.left,c=a.top-l.top;i+a.width>e&&i<t&&c+a.height>r&&c<n&&o.add("trash")}return o})(e,t,o,a))}},t=()=>{M(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[T]);Rr(()=>{if(!C)return;const e=()=>S(null);return window.addEventListener("click",e),()=>window.removeEventListener("click",e)},[C]);const pe=(e,t)=>{Q(h.map(r=>r.id===e?{...r,name:t}:r)),W(null)},fe=$r(e=>{b.saveNotes?b.saveNotes(e):c({notepad_notes:e})},[b,c]),ge=(e,t)=>{fe(f.map(r=>r.id===e?{...r,content:t,updated_at:/* @__PURE__ */(new Date).toISOString()}:r))};Rr(()=>{if(!U)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${U.id}"]`);t&&(t.style.left=U.origX+e.clientX-U.startX+"px",t.style.right="auto",t.style.top=U.origY+e.clientY-U.startY+"px")},t=e=>{const t=U.origX+e.clientX-U.startX,r=Math.max(0,U.origY+e.clientY-U.startY),n=document.querySelector(`[data-sticky-id="${U.id}"]`),o=n?.offsetWidth??192,a=t+o/2>window.innerWidth/2?"right":"left",s="right"===a?window.innerWidth-t-o:t;fe(f.map(e=>e.id===U.id?{...e,sticky_x:s,sticky_y:r,sticky_anchor:a}:e)),n&&(n.style.left="",n.style.right=""),K(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[U,f]),Rr(()=>{if(!z)return;const e=e=>{const t=document.querySelector(`[data-sticky-id="${z.id}"]`);t&&(t.style.width=`${Math.max(140,z.origW+e.clientX-z.startX)}px`,t.style.height=`${Math.max(100,z.origH+e.clientY-z.startY)}px`)},t=e=>{const t=Math.max(140,z.origW+e.clientX-z.startX),r=Math.max(100,z.origH+e.clientY-z.startY);fe(f.map(e=>e.id===z.id?{...e,sticky_w:t,sticky_h:r}:e)),V(null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t)}},[z,f]);const be={yellow:"bg-yellow-100 border-yellow-300",blue:"bg-blue-100 border-blue-300",green:"bg-green-100 border-green-300",pink:"bg-pink-100 border-pink-300",purple:"bg-purple-100 border-purple-300",orange:"bg-orange-100 border-orange-300"},ye=(e,t,r,n,o)=>/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
115
115
  /* @__PURE__ */Jr(Le,{entityType:e,isSelected:r,entityId:n,label:t,fileKind:o}),
116
- /* @__PURE__ */Jr("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})]}),ye=(e,t)=>({...e+180>window.innerWidth?{right:window.innerWidth-e}:{left:e},...t+250>window.innerHeight?{bottom:window.innerHeight-t}:{top:t}});/* @__PURE__ */
117
- return Gr("div",{ref:s,className:"flex-1 relative overflow-hidden",onPointerDown:e=>{if(0!==e.button||e.target!==s.current)return;const t=s.current.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;T({startX:r,startY:n,endX:r,endY:n}),me.current=!1,_(/* @__PURE__ */new Set)},onContextMenu:e=>{e.preventDefault(),C({x:e.clientX,y:e.clientY})},onClick:()=>{me.current?me.current=!1:(_(/* @__PURE__ */new Set),C(null))},children:[(()=>{const e=co(),t=20+("right"===e.position?e.width:0),r=20+("bottom"===e.position?e.height:0),n=c.desktop_trash_position,o=n?.right??t,s=n?.bottom??r,i=S.has("trash");/* @__PURE__ */
118
- return Jr("div",{"data-desktop-icon":"trash",style:{position:"absolute",right:o,bottom:s,zIndex:1},onPointerDown:e=>{if(0!==e.button)return;if(e.preventDefault(),e.stopPropagation(),S.has("trash")&&S.size>1)return void ce("trash",0,e);const t=e.currentTarget,r=e.clientX,n=e.clientY;let a=!1;const i=e=>{const i=e.clientX-r,l=e.clientY-n;!a&&(Math.abs(i)>3||Math.abs(l)>3)&&(a=!0),a&&(t.style.right=o-i+"px",t.style.bottom=s-l+"px",t.style.opacity="0.7",t.style.zIndex="100")},c=e=>{if(window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",c),t.style.opacity="",t.style.zIndex="",!a)return;const d=Math.max(0,o-(e.clientX-r)),u=Math.max(0,s-(e.clientY-n));l({desktop_trash_position:{right:d,bottom:u}})};window.addEventListener("pointermove",i),window.addEventListener("pointerup",c)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?_(e=>{const t=new Set(e);return t.has("trash")?t.delete("trash"):t.add("trash"),t}):S.has("trash")||_(/* @__PURE__ */new Set(["trash"]))},onContextMenu:e=>e.preventDefault(),onDoubleClick:e=>{e.stopPropagation(),Me(),a("/files")},className:"cursor-default select-none",title:"Trash — double-click to open, drag to move",children:/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
116
+ /* @__PURE__ */Jr("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})]}),xe=(e,t)=>({...e+180>window.innerWidth?{right:window.innerWidth-e}:{left:e},...t+250>window.innerHeight?{bottom:window.innerHeight-t}:{top:t}});/* @__PURE__ */
117
+ return Gr("div",{ref:i,className:"flex-1 relative overflow-hidden",onPointerDown:e=>{if(!n)return;if(0!==e.button||e.target!==i.current)return;const t=i.current.getBoundingClientRect(),r=e.clientX-t.left,o=e.clientY-t.top;M({startX:r,startY:o,endX:r,endY:o}),he.current=!1,E(/* @__PURE__ */new Set)},onContextMenu:e=>{n&&(e.preventDefault(),S({x:e.clientX,y:e.clientY}))},onClick:()=>{he.current?he.current=!1:(E(/* @__PURE__ */new Set),S(null))},children:[n&&(()=>{const e=co(),t=20+("right"===e.position?e.width:0),r=20+("bottom"===e.position?e.height:0),n=d.desktop_trash_position,o=n?.right??t,a=n?.bottom??r,i=_.has("trash");/* @__PURE__ */
118
+ return Jr("div",{"data-desktop-icon":"trash",style:{position:"absolute",right:o,bottom:a,zIndex:1},onPointerDown:e=>{if(0!==e.button)return;if(e.preventDefault(),e.stopPropagation(),_.has("trash")&&_.size>1)return void de("trash",0,e);const t=e.currentTarget,r=e.clientX,n=e.clientY;let s=!1;const i=e=>{const i=e.clientX-r,l=e.clientY-n;!s&&(Math.abs(i)>3||Math.abs(l)>3)&&(s=!0),s&&(t.style.right=o-i+"px",t.style.bottom=a-l+"px",t.style.opacity="0.7",t.style.zIndex="100")},l=e=>{if(window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",l),t.style.opacity="",t.style.zIndex="",!s)return;const d=Math.max(0,o-(e.clientX-r)),u=Math.max(0,a-(e.clientY-n));c({desktop_trash_position:{right:d,bottom:u}})};window.addEventListener("pointermove",i),window.addEventListener("pointerup",l)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?E(e=>{const t=new Set(e);return t.has("trash")?t.delete("trash"):t.add("trash"),t}):_.has("trash")||E(/* @__PURE__ */new Set(["trash"]))},onContextMenu:e=>e.preventDefault(),onDoubleClick:e=>{e.stopPropagation(),Me(),s("/files")},className:"cursor-default select-none",title:"Trash — double-click to open, drag to move",children:/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
119
119
  /* @__PURE__ */Jr("div",{className:"w-12 h-12 flex items-center justify-center "+(i?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""),children:/* @__PURE__ */Jr("svg",{className:"h-12 w-12 drop-shadow-[0_2px_3px_rgba(0,0,0,0.4)]",viewBox:"0 0 24 24",children:/* @__PURE__ */Jr("path",{fill:"#c0c4cc",stroke:"#5f6677",strokeWidth:"0.6",strokeLinejoin:"round",fillRule:"evenodd",clipRule:"evenodd",d:"M16.5 4.478v.227a48.816 48.816 0 013.878.512.75.75 0 11-.256 1.478l-.209-.035-1.005 13.07a3 3 0 01-2.991 2.77H8.084a3 3 0 01-2.991-2.77L4.087 6.66l-.209.035a.75.75 0 01-.256-1.478A48.567 48.567 0 017.5 4.705v-.227c0-1.564 1.213-2.9 2.816-2.951a52.662 52.662 0 014.368 0c1.603.051 2.816 1.387 2.816 2.951zm-6.136-1.452a51.196 51.196 0 013.273 0C14.39 3.05 15 3.684 15 4.478v.113a49.488 49.488 0 00-6 0v-.113c0-.794.609-1.428 1.364-1.452zm-.355 5.945a.75.75 0 10-1.5.058l.347 9a.75.75 0 101.499-.058l-.346-9zm5.48.058a.75.75 0 10-1.498-.058l-.347 9a.75.75 0 001.5.058l.346-9z"})})}),
120
- /* @__PURE__ */Jr("span",{className:"text-2xs font-medium text-center leading-tight drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(i?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:"Trash"})]})})})(),te.map((e,t)=>{const r=d.indexOf(e),n=se[`item-${r}`]||q(e,t),o=S.has(`item-${t}`);/* @__PURE__ */
121
- return Jr("div",{"data-desktop-icon":`item-${t}`,style:{position:"absolute",right:n.right,top:n.top,zIndex:1},onPointerDown:e=>{e.stopPropagation(),ce("item",t,e)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?_(e=>{const r=new Set(e);return r.has(`item-${t}`)?r.delete(`item-${t}`):r.add(`item-${t}`),r}):S.has(`item-${t}`)||_(/* @__PURE__ */new Set([`item-${t}`]))},onContextMenu:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),C({x:e.clientX,y:e.clientY,itemIdx:t})})(e,t),onDoubleClick:t=>{t.stopPropagation(),re(e)},className:"cursor-default select-none",children:be(e.entityType,e.label,o,e.entityId,e.fileKind)},`item-${e.entityType}-${e.entityId}-${t}`)}),m.map((e,t)=>{const r=se[`folder-${t}`]||ee(e,t),n=S.has(`folder-${t}`),o=V===t,a=(s=e.id,d.filter(e=>e.folderId===s)).length;var s;/* @__PURE__ */
122
- return Jr("div",{"data-desktop-icon":`folder-${t}`,style:{position:"absolute",right:r.right,top:r.top,zIndex:1,transform:o?"scale(1.15)":"scale(1)",transition:"transform 180ms ease-out"},onPointerDown:e=>{e.stopPropagation(),ce("folder",t,e)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?_(e=>{const r=new Set(e);return r.has(`folder-${t}`)?r.delete(`folder-${t}`):r.add(`folder-${t}`),r}):S.has(`folder-${t}`)||_(/* @__PURE__ */new Set([`folder-${t}`]))},onContextMenu:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),C({x:e.clientX,y:e.clientY,folderIdx:t})})(e,t),onDoubleClick:t=>{t.stopPropagation(),ne(e.id)},className:"cursor-default select-none",children:/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
123
- /* @__PURE__ */Jr("div",{className:`w-12 h-12 flex items-center justify-center ${n?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""} ${o?"rounded-lg ring-4 ring-amber-400 shadow-[0_0_20px_rgba(245,158,11,0.6)]":""}`,children:/* @__PURE__ */Jr(je,{className:"h-12 w-12 text-amber-500 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)]"})}),A===e.id?/* @__PURE__ */Jr("input",{autoFocus:!0,value:W,onChange:e=>F(e.target.value),onBlur:()=>he(e.id,W),onKeyDown:t=>{"Enter"===t.key&&he(e.id,W),"Escape"===t.key&&$(null)},className:"text-2xs w-full text-center bg-white/80 rounded px-1 outline-none",onClick:e=>e.stopPropagation()}):/* @__PURE__ */Gr("span",{className:"text-2xs font-medium text-center leading-tight w-full drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(n?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:[e.name,a>0?` (${a})`:""]})]})},`folder-${e.id}`)}),f.map(e=>{const t=e.sticky_x??100,r=e.sticky_y??100,n=e.sticky_w??192,o=e.sticky_h??148,a=e.sticky_anchor||"left",i=ge[e.color]||ge.yellow,l=O===e.id;/* @__PURE__ */
124
- return Gr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===a?{right:t}:{left:t},top:r,width:n,height:o,zIndex:e.sticky_on_top?Nr.desktopWidget:l?Nr.window:Nr.raised},onClick:e=>e.stopPropagation(),className:`rounded-lg shadow-lg border ${i} select-none flex flex-col`,children:[
125
- /* @__PURE__ */Gr("div",{className:"flex items-center justify-between px-2 py-1 cursor-move border-b border-black/5",onPointerDown:o=>{if(0!==o.button)return;o.preventDefault(),o.stopPropagation();const i=o.target.closest("[data-sticky-id]"),l=i?i.getBoundingClientRect().left-(s.current?.getBoundingClientRect().left??0):"right"===a?window.innerWidth-t-n:t;U({id:e.id,startX:o.clientX,startY:o.clientY,origX:l,origY:r})},children:[
126
- /* @__PURE__ */Jr("div",{className:"flex items-center gap-1",children:/* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),(e=>{const t=["yellow","blue","green","pink","purple","orange"],r=p.find(t=>t.id===e);if(!r)return;const n=t.indexOf(r.color),o=t[(n+1)%t.length];pe(p.map(t=>t.id===e?{...t,color:o}:t))})(e.id)},title:"Change color",className:"w-3 h-3 rounded-full bg-black/10 hover:bg-black/20 transition-colors"})}),
120
+ /* @__PURE__ */Jr("span",{className:"text-2xs font-medium text-center leading-tight drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(i?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:"Trash"})]})})})(),n&&re.map((e,t)=>{const r=u.indexOf(e),n=ie[`item-${r}`]||ee(e,t),o=_.has(`item-${t}`);/* @__PURE__ */
121
+ return Jr("div",{"data-desktop-icon":`item-${t}`,style:{position:"absolute",right:n.right,top:n.top,zIndex:1},onPointerDown:e=>{e.stopPropagation(),de("item",t,e)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?E(e=>{const r=new Set(e);return r.has(`item-${t}`)?r.delete(`item-${t}`):r.add(`item-${t}`),r}):_.has(`item-${t}`)||E(/* @__PURE__ */new Set([`item-${t}`]))},onContextMenu:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),S({x:e.clientX,y:e.clientY,itemIdx:t})})(e,t),onDoubleClick:t=>{t.stopPropagation(),ne(e)},className:"cursor-default select-none",children:ye(e.entityType,e.label,o,e.entityId,e.fileKind)},`item-${e.entityType}-${e.entityId}-${t}`)}),n&&h.map((e,t)=>{const r=ie[`folder-${t}`]||te(e,t),n=_.has(`folder-${t}`),o=Y===t,a=(s=e.id,u.filter(e=>e.folderId===s)).length;var s;/* @__PURE__ */
122
+ return Jr("div",{"data-desktop-icon":`folder-${t}`,style:{position:"absolute",right:r.right,top:r.top,zIndex:1,transform:o?"scale(1.15)":"scale(1)",transition:"transform 180ms ease-out"},onPointerDown:e=>{e.stopPropagation(),de("folder",t,e)},onClick:e=>{e.stopPropagation(),e.shiftKey||e.metaKey||e.ctrlKey?E(e=>{const r=new Set(e);return r.has(`folder-${t}`)?r.delete(`folder-${t}`):r.add(`folder-${t}`),r}):_.has(`folder-${t}`)||E(/* @__PURE__ */new Set([`folder-${t}`]))},onContextMenu:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),S({x:e.clientX,y:e.clientY,folderIdx:t})})(e,t),onDoubleClick:t=>{t.stopPropagation(),oe(e.id)},className:"cursor-default select-none",children:/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-1 w-20 p-2",children:[
123
+ /* @__PURE__ */Jr("div",{className:`w-12 h-12 flex items-center justify-center ${n?"rounded-lg bg-blue-400/30 ring-2 ring-blue-500":""} ${o?"rounded-lg ring-4 ring-amber-400 shadow-[0_0_20px_rgba(245,158,11,0.6)]":""}`,children:/* @__PURE__ */Jr(je,{className:"h-12 w-12 text-amber-500 drop-shadow-[0_2px_3px_rgba(0,0,0,0.3)]"})}),$===e.id?/* @__PURE__ */Jr("input",{autoFocus:!0,value:F,onChange:e=>O(e.target.value),onBlur:()=>pe(e.id,F),onKeyDown:t=>{"Enter"===t.key&&pe(e.id,F),"Escape"===t.key&&W(null)},className:"text-2xs w-full text-center bg-white/80 rounded px-1 outline-none",onClick:e=>e.stopPropagation()}):/* @__PURE__ */Gr("span",{className:"text-2xs font-medium text-center leading-tight w-full drop-shadow-[0_1px_2px_rgba(0,0,0,0.8)] "+(n?"text-blue-200 bg-blue-600/60 rounded px-1":"text-white"),children:[e.name,a>0?` (${a})`:""]})]})},`folder-${e.id}`)}),n&&g.map(e=>{const t=e.sticky_x??100,r=e.sticky_y??100,n=e.sticky_w??192,o=e.sticky_h??148,a=e.sticky_anchor||"left",s=be[e.color]||be.yellow,l=B===e.id;/* @__PURE__ */
124
+ return Gr("div",{"data-sticky-id":e.id,style:{position:"absolute",..."right"===a?{right:t}:{left:t},top:r,width:n,height:o,zIndex:e.sticky_on_top?Nr.desktopWidget:l?Nr.window:Nr.raised},onClick:e=>e.stopPropagation(),className:`rounded-lg shadow-lg border ${s} select-none flex flex-col`,children:[
125
+ /* @__PURE__ */Gr("div",{className:"flex items-center justify-between px-2 py-1 cursor-move border-b border-black/5",onPointerDown:o=>{if(0!==o.button)return;o.preventDefault(),o.stopPropagation();const s=o.target.closest("[data-sticky-id]"),l=s?s.getBoundingClientRect().left-(i.current?.getBoundingClientRect().left??0):"right"===a?window.innerWidth-t-n:t;K({id:e.id,startX:o.clientX,startY:o.clientY,origX:l,origY:r})},children:[
126
+ /* @__PURE__ */Jr("div",{className:"flex items-center gap-1",children:/* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),(e=>{const t=["yellow","blue","green","pink","purple","orange"],r=f.find(t=>t.id===e);if(!r)return;const n=t.indexOf(r.color),o=t[(n+1)%t.length];fe(f.map(t=>t.id===e?{...t,color:o}:t))})(e.id)},title:"Change color",className:"w-3 h-3 rounded-full bg-black/10 hover:bg-black/20 transition-colors"})}),
127
127
  /* @__PURE__ */Gr("div",{className:"flex items-center gap-0.5",children:[
128
- /* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,pe(p.map(e=>e.id===r?{...e,sticky_on_top:!e.sticky_on_top}:e))},title:e.sticky_on_top?"Remove from top":"Always on top",className:"p-0.5 rounded transition-colors "+(e.sticky_on_top?"text-blue-500":"text-black/20 hover:text-black/50"),children:/* @__PURE__ */Gr("svg",{className:"h-3 w-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[
128
+ /* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,fe(f.map(e=>e.id===r?{...e,sticky_on_top:!e.sticky_on_top}:e))},title:e.sticky_on_top?"Remove from top":"Always on top",className:"p-0.5 rounded transition-colors "+(e.sticky_on_top?"text-blue-500":"text-black/20 hover:text-black/50"),children:/* @__PURE__ */Gr("svg",{className:"h-3 w-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[
129
129
  /* @__PURE__ */Jr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h5.25m5.914 5.046a5.25 5.25 0 01-1.414 0M15.75 9v6"}),
130
130
  /* @__PURE__ */Jr("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12.75 12l3 3 3-3"})]})}),
131
- /* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,pe(p.map(e=>e.id===r?{...e,sticky:!1}:e))},title:"Unpin from desktop",className:"p-0.5 rounded text-black/20 hover:text-black/50 transition-colors",children:/* @__PURE__ */Jr(dr,{name:"remove",className:"h-3 w-3",strokeWidth:2})}),
132
- /* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,pe(p.filter(e=>e.id!==r))},title:"Delete note",className:"p-0.5 rounded text-black/20 hover:text-red-500 transition-colors",children:/* @__PURE__ */Jr(dr,{name:"close",className:"h-3 w-3",strokeWidth:2})})]})]}),l?/* @__PURE__ */Jr("textarea",{autoFocus:!0,defaultValue:e.content,onBlur:t=>{fe(e.id,t.target.value),B(null)},onKeyDown:t=>{"Escape"===t.key&&(fe(e.id,t.target.value),B(null))},className:"flex-1 w-full p-2 text-xs leading-relaxed bg-transparent outline-none resize-none placeholder:text-black/30",placeholder:"Write something..."}):/* @__PURE__ */Jr("div",{className:"flex-1 p-2 cursor-text overflow-hidden",onDoubleClick:t=>{t.stopPropagation(),B(e.id)},children:/* @__PURE__ */Jr("div",{className:"text-xs leading-relaxed text-black/70",children:e.content?w(e.id,e.content):/* @__PURE__ */Jr("span",{className:"text-black/30 italic",children:"Double-click to edit..."})})}),
133
- /* @__PURE__ */Jr("div",{className:"absolute bottom-0 right-0 w-4 h-4 cursor-nwse-resize",onPointerDown:t=>{if(0!==t.button)return;t.preventDefault(),t.stopPropagation();const r=t.target.closest("[data-sticky-id]");K({id:e.id,startX:t.clientX,startY:t.clientY,origW:r?.offsetWidth??n,origH:r?.offsetHeight??o})},children:/* @__PURE__ */Gr("svg",{className:"w-3 h-3 text-black/15 absolute bottom-0.5 right-0.5",viewBox:"0 0 12 12",fill:"currentColor",children:[
131
+ /* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,fe(f.map(e=>e.id===r?{...e,sticky:!1}:e))},title:"Unpin from desktop",className:"p-0.5 rounded text-black/20 hover:text-black/50 transition-colors",children:/* @__PURE__ */Jr(dr,{name:"remove",className:"h-3 w-3",strokeWidth:2})}),
132
+ /* @__PURE__ */Jr("button",{onPointerDown:e=>e.stopPropagation(),onClick:t=>{var r;t.stopPropagation(),r=e.id,fe(f.filter(e=>e.id!==r))},title:"Delete note",className:"p-0.5 rounded text-black/20 hover:text-red-500 transition-colors",children:/* @__PURE__ */Jr(dr,{name:"close",className:"h-3 w-3",strokeWidth:2})})]})]}),l?/* @__PURE__ */Jr("textarea",{autoFocus:!0,defaultValue:e.content,onBlur:t=>{ge(e.id,t.target.value),H(null)},onKeyDown:t=>{"Escape"===t.key&&(ge(e.id,t.target.value),H(null))},className:"flex-1 w-full p-2 text-xs leading-relaxed bg-transparent outline-none resize-none placeholder:text-black/30",placeholder:"Write something..."}):/* @__PURE__ */Jr("div",{className:"flex-1 p-2 cursor-text overflow-hidden",onDoubleClick:t=>{t.stopPropagation(),H(e.id)},children:/* @__PURE__ */Jr("div",{className:"text-xs leading-relaxed text-black/70",children:e.content?v(e.id,e.content):/* @__PURE__ */Jr("span",{className:"text-black/30 italic",children:"Double-click to edit..."})})}),
133
+ /* @__PURE__ */Jr("div",{className:"absolute bottom-0 right-0 w-4 h-4 cursor-nwse-resize",onPointerDown:t=>{if(0!==t.button)return;t.preventDefault(),t.stopPropagation();const r=t.target.closest("[data-sticky-id]");V({id:e.id,startX:t.clientX,startY:t.clientY,origW:r?.offsetWidth??n,origH:r?.offsetHeight??o})},children:/* @__PURE__ */Gr("svg",{className:"w-3 h-3 text-black/15 absolute bottom-0.5 right-0.5",viewBox:"0 0 12 12",fill:"currentColor",children:[
134
134
  /* @__PURE__ */Jr("circle",{cx:"10",cy:"10",r:"1.5"}),
135
135
  /* @__PURE__ */Jr("circle",{cx:"6",cy:"10",r:"1.5"}),
136
136
  /* @__PURE__ */Jr("circle",{cx:"10",cy:"6",r:"1.5"})]})})]},`sticky-${e.id}`)}),
137
- /* @__PURE__ */Jr(L,{rect:E&&{left:Math.min(E.startX,E.endX),top:Math.min(E.startY,E.endY),width:Math.abs(E.endX-E.startX),height:Math.abs(E.endY-E.startY)}}),N&&null==N.itemIdx&&null==N.folderIdx&&/* @__PURE__ */Gr(zt,{style:ye(N.x,N.y),children:[
138
- /* @__PURE__ */Gr(Vt,{onClick:()=>{const e=s.current?.getBoundingClientRect(),t=N?N.x-(e?.left||0):100,r=N?N.y-(e?.top||0):100,n={id:`note-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,title:"",content:"",color:"yellow",sticky:!0,sticky_x:t,sticky_y:r,updated_at:/* @__PURE__ */(new Date).toISOString()};pe([n,...p]),B(n.id),C(null)},children:[
137
+ /* @__PURE__ */Jr(L,{rect:T&&{left:Math.min(T.startX,T.endX),top:Math.min(T.startY,T.endY),width:Math.abs(T.endX-T.startX),height:Math.abs(T.endY-T.startY)}}),C&&null==C.itemIdx&&null==C.folderIdx&&/* @__PURE__ */Gr(Vt,{style:xe(C.x,C.y),children:[
138
+ /* @__PURE__ */Gr(Xt,{onClick:()=>{const e=i.current?.getBoundingClientRect(),t=C?C.x-(e?.left||0):100,r=C?C.y-(e?.top||0):100,n={id:`note-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,title:"",content:"",color:"yellow",sticky:!0,sticky_x:t,sticky_y:r,updated_at:/* @__PURE__ */(new Date).toISOString()};fe([n,...f]),H(n.id),S(null)},children:[
139
139
  /* @__PURE__ */Jr(dr,{name:"note",className:"h-4 w-4",strokeWidth:1.5}),"New Sticky Note"]}),
140
- /* @__PURE__ */Gr(Vt,{onClick:()=>{const e=s.current?.getBoundingClientRect(),t=e?.width??0,r=N?N.x-(e?.left??0):t-100,n=N?N.y-(e?.top??0):100,o=Math.max(0,t-r-40),a=Math.max(0,n-20),i=`folder-${Date.now()}`;J([...m,{id:i,name:"New Folder",x:o,y:a}]),C(null),$(i),F("New Folder")},children:[
140
+ /* @__PURE__ */Gr(Xt,{onClick:()=>{const e=i.current?.getBoundingClientRect(),t=e?.width??0,r=C?C.x-(e?.left??0):t-100,n=C?C.y-(e?.top??0):100,o=Math.max(0,t-r-40),a=Math.max(0,n-20),s=`folder-${Date.now()}`;Q([...h,{id:s,name:"New Folder",x:o,y:a}]),S(null),W(s),O("New Folder")},children:[
141
141
  /* @__PURE__ */Jr(dr,{name:"folder",className:"h-4 w-4",strokeWidth:1.5}),"Create Folder"]}),
142
- /* @__PURE__ */Gr(Vt,{onClick:()=>{const e=s.current?.getBoundingClientRect(),t=e?.height||600,r=Math.max(1,Math.floor(t/ao));let n=0;const o=()=>{const e=Math.floor(n/r),t=n%r;return n++,{right:20+e*ao,top:10+t*ao}},a=m.map(e=>{const t=o();return{...e,x:t.right,y:t.top}});J(a);const i=d.map(e=>{if(e.folderId)return e;const t=o();return{...e,x:t.right,y:t.top}});G(i),C(null)},children:[
142
+ /* @__PURE__ */Gr(Xt,{onClick:()=>{const e=i.current?.getBoundingClientRect(),t=e?.height||600,r=Math.max(1,Math.floor(t/ao));let n=0;const o=()=>{const e=Math.floor(n/r),t=n%r;return n++,{right:20+e*ao,top:10+t*ao}},a=h.map(e=>{const t=o();return{...e,x:t.right,y:t.top}});Q(a);const s=u.map(e=>{if(e.folderId)return e;const t=o();return{...e,x:t.right,y:t.top}});J(s),S(null)},children:[
143
143
  /* @__PURE__ */Jr(dr,{name:"grid",className:"h-4 w-4",strokeWidth:1.5}),"Snap to Grid"]}),
144
- /* @__PURE__ */Gr(Vt,{onClick:()=>{C(null),R(!0)},children:[
145
- /* @__PURE__ */Jr(dr,{name:"widgets",className:"h-4 w-4",strokeWidth:1.5}),"Manage Widgets"]}),!b.includes("perf-stats")&&/* @__PURE__ */Gr(Vt,{onClick:()=>{C(null),l({show_desktop_stats:!0!==c.show_desktop_stats})},children:[
146
- /* @__PURE__ */Jr(dr,{name:"chart-bar",className:"h-4 w-4",strokeWidth:1.5}),!0===c.show_desktop_stats?"Hide Performance Stats":"Show Performance Stats"]}),!(b.includes("customization")&&b.includes("favorites")&&b.includes("about"))&&/* @__PURE__ */Jr(Ut,{}),!b.includes("customization")&&/* @__PURE__ */Gr(Vt,{onClick:()=>{C(null),a("/settings/customization")},children:[
147
- /* @__PURE__ */Jr(dr,{name:"styles",className:"h-4 w-4",strokeWidth:1.5}),"Preferences"]}),!b.includes("favorites")&&/* @__PURE__ */Gr(Vt,{onClick:()=>{C(null),a("/settings/favorites")},children:[
148
- /* @__PURE__ */Jr(dr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),"Favorites"]}),!b.includes("about")&&/* @__PURE__ */Gr(Vt,{onClick:()=>{C(null),j(!0)},children:[
149
- /* @__PURE__ */Jr(dr,{name:"info",className:"h-4 w-4",strokeWidth:1.5}),n.about.aboutPrefix," ",g.productName??n.about.thisApp]}),g.onReportBug&&/* @__PURE__ */Gr(Qr,{children:[
150
- /* @__PURE__ */Jr(Ut,{}),
151
- /* @__PURE__ */Gr(Vt,{onClick:()=>{C(null),g.onReportBug()},children:[
152
- /* @__PURE__ */Jr(dr,{name:"error",className:"h-4 w-4",strokeWidth:1.5}),"Suggestion or Bug"]})]})]}),N&&null!=N.itemIdx&&/* @__PURE__ */Gr(zt,{style:ye(N.x,N.y),minWidth:160,children:[
153
- /* @__PURE__ */Jr(Vt,{onClick:()=>{re(te[N.itemIdx]),C(null)},children:"Open"}),
154
- /* @__PURE__ */Jr(Ut,{}),
155
- /* @__PURE__ */Jr(Vt,{danger:!0,onClick:()=>(e=>{const t=d.indexOf(te[e]);G(d.filter((e,r)=>r!==t)),C(null)})(N.itemIdx),children:"Remove Shortcut"})]}),N&&null!=N.folderIdx&&/* @__PURE__ */Gr(zt,{style:ye(N.x,N.y),minWidth:160,children:[
156
- /* @__PURE__ */Jr(Vt,{onClick:()=>{ne(m[N.folderIdx].id),C(null)},children:"Open"}),m[N.folderIdx].id!==no&&/* @__PURE__ */Gr(Qr,{children:[
157
- /* @__PURE__ */Jr(Vt,{onClick:()=>{$(m[N.folderIdx].id),F(m[N.folderIdx].name),C(null)},children:"Rename"}),
158
- /* @__PURE__ */Jr(Ut,{}),
159
- /* @__PURE__ */Jr(Vt,{danger:!0,onClick:()=>(e=>{const t=m[e];if(t.id===no)return;const r=d.map(e=>e.folderId===t.id?{...e,folderId:void 0}:e);G(r),J(m.filter((t,r)=>r!==e)),C(null)})(N.folderIdx),children:"Delete Folder"})]})]}),
160
- /* @__PURE__ */Jr(Sn,{open:D,onClose:()=>R(!1)}),M&&(()=>{const e=g.productVersion??ir;/* @__PURE__ */
161
- return Jr(Be,{open:!0,onClose:()=>j(!1),title:`${n.about.aboutPrefix} ${g.productName??n.about.thisApp}`,size:"sm",bodyScroll:!1,compact:!0,dimensions:[340,420],children:/* @__PURE__ */Gr("div",{className:"flex flex-col items-center",children:[
144
+ /* @__PURE__ */Gr(Xt,{onClick:()=>{S(null),A(!0)},children:[
145
+ /* @__PURE__ */Jr(dr,{name:"widgets",className:"h-4 w-4",strokeWidth:1.5}),"Manage Widgets"]}),!y.includes("perf-stats")&&/* @__PURE__ */Gr(Xt,{onClick:()=>{S(null),c({show_desktop_stats:!0!==d.show_desktop_stats})},children:[
146
+ /* @__PURE__ */Jr(dr,{name:"chart-bar",className:"h-4 w-4",strokeWidth:1.5}),!0===d.show_desktop_stats?"Hide Performance Stats":"Show Performance Stats"]}),!(y.includes("customization")&&y.includes("favorites")&&y.includes("about"))&&/* @__PURE__ */Jr(zt,{}),!y.includes("customization")&&/* @__PURE__ */Gr(Xt,{onClick:()=>{S(null),s("/settings/customization")},children:[
147
+ /* @__PURE__ */Jr(dr,{name:"styles",className:"h-4 w-4",strokeWidth:1.5}),"Preferences"]}),!y.includes("favorites")&&/* @__PURE__ */Gr(Xt,{onClick:()=>{S(null),s("/settings/favorites")},children:[
148
+ /* @__PURE__ */Jr(dr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),"Favorites"]}),!y.includes("about")&&/* @__PURE__ */Gr(Xt,{onClick:()=>{S(null),I(!0)},children:[
149
+ /* @__PURE__ */Jr(dr,{name:"info",className:"h-4 w-4",strokeWidth:1.5}),o.about.aboutPrefix," ",b.productName??o.about.thisApp]}),b.onReportBug&&/* @__PURE__ */Gr(Qr,{children:[
150
+ /* @__PURE__ */Jr(zt,{}),
151
+ /* @__PURE__ */Gr(Xt,{onClick:()=>{S(null),b.onReportBug()},children:[
152
+ /* @__PURE__ */Jr(dr,{name:"error",className:"h-4 w-4",strokeWidth:1.5}),"Suggestion or Bug"]})]})]}),C&&null!=C.itemIdx&&/* @__PURE__ */Gr(Vt,{style:xe(C.x,C.y),minWidth:160,children:[
153
+ /* @__PURE__ */Jr(Xt,{onClick:()=>{ne(re[C.itemIdx]),S(null)},children:"Open"}),
154
+ /* @__PURE__ */Jr(zt,{}),
155
+ /* @__PURE__ */Jr(Xt,{danger:!0,onClick:()=>(e=>{const t=u.indexOf(re[e]);J(u.filter((e,r)=>r!==t)),S(null)})(C.itemIdx),children:"Remove Shortcut"})]}),C&&null!=C.folderIdx&&/* @__PURE__ */Gr(Vt,{style:xe(C.x,C.y),minWidth:160,children:[
156
+ /* @__PURE__ */Jr(Xt,{onClick:()=>{oe(h[C.folderIdx].id),S(null)},children:"Open"}),h[C.folderIdx].id!==no&&/* @__PURE__ */Gr(Qr,{children:[
157
+ /* @__PURE__ */Jr(Xt,{onClick:()=>{W(h[C.folderIdx].id),O(h[C.folderIdx].name),S(null)},children:"Rename"}),
158
+ /* @__PURE__ */Jr(zt,{}),
159
+ /* @__PURE__ */Jr(Xt,{danger:!0,onClick:()=>(e=>{const t=h[e];if(t.id===no)return;const r=u.map(e=>e.folderId===t.id?{...e,folderId:void 0}:e);J(r),Q(h.filter((t,r)=>r!==e)),S(null)})(C.folderIdx),children:"Delete Folder"})]})]}),
160
+ /* @__PURE__ */Jr(Sn,{open:R,onClose:()=>A(!1)}),j&&(()=>{const e=b.productVersion??ir;/* @__PURE__ */
161
+ return Jr(Be,{open:!0,onClose:()=>I(!1),title:`${o.about.aboutPrefix} ${b.productName??o.about.thisApp}`,size:"sm",bodyScroll:!1,compact:!0,dimensions:[340,420],children:/* @__PURE__ */Gr("div",{className:"flex flex-col items-center",children:[
162
162
  /* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-2 pt-4 pb-3 w-full",children:[
163
- /* @__PURE__ */Jr("img",{src:g.productIcon??"/favicon.svg",alt:"",className:"h-16 w-16"}),
163
+ /* @__PURE__ */Jr("img",{src:b.productIcon??"/favicon.svg",alt:"",className:"h-16 w-16"}),
164
164
  /* @__PURE__ */Gr("div",{className:"text-center",children:[
165
- /* @__PURE__ */Jr("h2",{className:"text-lg font-bold text-gray-900 tracking-wide",children:g.productName??"efficient-shell"}),g.productTagline&&/* @__PURE__ */Jr("p",{className:"text-xs text-gray-500",children:g.productTagline}),
165
+ /* @__PURE__ */Jr("h2",{className:"text-lg font-bold text-gray-900 tracking-wide",children:b.productName??"efficient-shell"}),b.productTagline&&/* @__PURE__ */Jr("p",{className:"text-xs text-gray-500",children:b.productTagline}),
166
166
  /* @__PURE__ */Jr("p",{className:"text-2xs text-gray-400 mt-1 font-mono",children:e})]})]}),
167
167
  /* @__PURE__ */Gr("div",{className:"py-3 border-t border-gray-200 w-full px-4",children:[
168
- /* @__PURE__ */Jr("h3",{className:"text-3xs font-semibold text-gray-400 uppercase tracking-wide mb-2 text-center",children:n.about.openSourceLicenses}),
168
+ /* @__PURE__ */Jr("h3",{className:"text-3xs font-semibold text-gray-400 uppercase tracking-wide mb-2 text-center",children:o.about.openSourceLicenses}),
169
169
  /* @__PURE__ */Jr("div",{className:"max-h-40 overflow-y-auto",children:/* @__PURE__ */Gr("table",{className:"w-full text-2xs",children:[
170
170
  /* @__PURE__ */Jr("thead",{children:/* @__PURE__ */Gr("tr",{className:"text-gray-500 border-b border-gray-100",children:[
171
171
  /* @__PURE__ */Jr("th",{className:`${sr} text-left py-1 font-medium`,children:"Package"}),
172
172
  /* @__PURE__ */Jr("th",{className:`${sr} text-left py-1 font-medium`,children:"License"})]})}),
173
173
  /* @__PURE__ */Jr("tbody",{className:"divide-y divide-gray-50",children:[["React","MIT","facebook/react"],["React DOM","MIT","facebook/react"],["React Router","MIT","remix-run/react-router"],["TanStack Query","MIT","TanStack/query"],["TanStack Table","MIT","TanStack/table"],["React Hook Form","MIT","react-hook-form"],["Axios","MIT","axios/axios"],["Tailwind CSS","MIT","tailwindlabs/tailwindcss"],["Headless UI","MIT","tailwindlabs/headlessui"],["Heroicons","MIT","tailwindlabs/heroicons"],["Recharts","MIT","recharts/recharts"],["Zod","MIT","colinhacks/zod"],["Vite","MIT","vitejs/vite"],["TypeScript","Apache-2.0","microsoft/TypeScript"],["jSpreadsheet CE","MIT","jspreadsheet/ce"],["Django","BSD-3","django/django"],["Django REST Framework","BSD-3","encode/django-rest-framework"],["PostgreSQL","PostgreSQL","postgres/postgres"],["Gunicorn","MIT","benoitc/gunicorn"]].map(([e,t,r])=>/* @__PURE__ */Gr("tr",{className:"text-gray-600",children:[
174
174
  /* @__PURE__ */Jr("td",{className:"py-1",children:/* @__PURE__ */Jr("a",{href:`https://github.com/${r}`,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:e})}),
175
- /* @__PURE__ */Jr("td",{className:"py-1 text-gray-400",children:t})]},e))})]})})]}),(g.productCopyright||g.productWebsite)&&/* @__PURE__ */Gr("div",{className:"pt-3 pb-2 border-t border-gray-200 w-full text-center",children:[g.productCopyright&&/* @__PURE__ */Jr("p",{className:"text-2xs text-gray-400",children:g.productCopyright}),g.productWebsite&&/* @__PURE__ */Jr("a",{href:g.productWebsite,target:"_blank",rel:"noopener noreferrer",className:"text-2xs text-blue-500 hover:underline",children:g.productWebsite.replace(/^https?:\/\//,"")})]})]})})})(),!0===c.show_desktop_stats&&(()=>{const e=!0===c.show_desktop_version&&!!(g.productVersion??ir),t="top"!==c.taskbar_position&&"left"!==c.taskbar_position&&"right"!==c.taskbar_position,r="right"===c.taskbar_position?"left-3":"right-3";/* @__PURE__ */
176
- return Jr("div",{className:`absolute z-(--z-desktop-widget) ${r} ${t?e?"bottom-24":"bottom-16":e?"bottom-8":"bottom-3"}`,children:/* @__PURE__ */Jr(eo,{onClose:()=>l({show_desktop_stats:!1}),onSubmit:g.onSubmitPerfReport})})})(),!0===c.show_desktop_version&&(g.productVersion??ir)&&(()=>{const e=co();/* @__PURE__ */
177
- return Jr("button",{onClick:e=>{e.stopPropagation(),P(!0)},style:{zIndex:2,bottom:"bottom"===e.position?e.height+4:8,..."right"===e.position?{left:4}:{right:4}},className:"absolute px-2 py-1 text-2xs text-white/50 font-mono select-none drop-shadow-[0_1px_1px_rgba(0,0,0,0.5)] hover:text-white/80 transition-colors cursor-pointer",children:g.productVersion??ir})})(),I&&(()=>{const e=g.productChangelog??ro;/* @__PURE__ */
178
- return Jr(Be,{open:!0,onClose:()=>P(!1),title:n.about.whatsNew,size:"md",children:0===e.length?/* @__PURE__ */Jr("div",{className:"flex-1 flex items-center justify-center",children:/* @__PURE__ */Jr("p",{className:"text-sm text-gray-400 text-center",children:n.about.noChangelog})}):/* @__PURE__ */Jr("div",{className:"space-y-5 px-1",children:e.map((t,r)=>/* @__PURE__ */Gr("div",{children:[
175
+ /* @__PURE__ */Jr("td",{className:"py-1 text-gray-400",children:t})]},e))})]})})]}),(b.productCopyright||b.productWebsite)&&/* @__PURE__ */Gr("div",{className:"pt-3 pb-2 border-t border-gray-200 w-full text-center",children:[b.productCopyright&&/* @__PURE__ */Jr("p",{className:"text-2xs text-gray-400",children:b.productCopyright}),b.productWebsite&&/* @__PURE__ */Jr("a",{href:b.productWebsite,target:"_blank",rel:"noopener noreferrer",className:"text-2xs text-blue-500 hover:underline",children:b.productWebsite.replace(/^https?:\/\//,"")})]})]})})})(),!0===d.show_desktop_stats&&(()=>{const e=n&&!0===d.show_desktop_version&&!!(b.productVersion??ir),t="top"!==d.taskbar_position&&"left"!==d.taskbar_position&&"right"!==d.taskbar_position,r="right"===d.taskbar_position?"left-3":"right-3";/* @__PURE__ */
176
+ return Jr("div",{className:`absolute z-(--z-desktop-widget) ${r} ${t?e?"bottom-24":"bottom-16":e?"bottom-8":"bottom-3"}`,children:/* @__PURE__ */Jr(eo,{onClose:()=>c({show_desktop_stats:!1}),onSubmit:b.onSubmitPerfReport})})})(),n&&!0===d.show_desktop_version&&(b.productVersion??ir)&&(()=>{const e=co();/* @__PURE__ */
177
+ return Jr("button",{onClick:e=>{e.stopPropagation(),D(!0)},style:{zIndex:2,bottom:"bottom"===e.position?e.height+4:8,..."right"===e.position?{left:4}:{right:4}},className:"absolute px-2 py-1 text-2xs text-white/50 font-mono select-none drop-shadow-[0_1px_1px_rgba(0,0,0,0.5)] hover:text-white/80 transition-colors cursor-pointer",children:b.productVersion??ir})})(),P&&(()=>{const e=b.productChangelog??ro;/* @__PURE__ */
178
+ return Jr(Be,{open:!0,onClose:()=>D(!1),title:o.about.whatsNew,size:"md",children:0===e.length?/* @__PURE__ */Jr("div",{className:"flex-1 flex items-center justify-center",children:/* @__PURE__ */Jr("p",{className:"text-sm text-gray-400 text-center",children:o.about.noChangelog})}):/* @__PURE__ */Jr("div",{className:"space-y-5 px-1",children:e.map((t,r)=>/* @__PURE__ */Gr("div",{children:[
179
179
  /* @__PURE__ */Gr("div",{className:"flex items-center gap-3 mb-2",children:[
180
180
  /* @__PURE__ */Jr("span",{className:"text-sm font-bold text-gray-900 font-mono",children:t.version}),
181
181
  /* @__PURE__ */Jr("span",{className:"text-xs text-gray-400",children:ve(t.date)})]}),
182
182
  /* @__PURE__ */Jr("ul",{className:"space-y-2 ml-1",children:t.changes.map((e,t)=>/* @__PURE__ */Gr("li",{className:"flex items-start gap-2 text-sm text-gray-600",children:[
183
183
  /* @__PURE__ */Jr("span",{className:"text-blue-500 mt-1 shrink-0",children:"•"}),
184
- /* @__PURE__ */Jr(ke,{className:"min-w-0 [&_p]:m-0",children:e})]},t))}),r<e.length-1&&/* @__PURE__ */Jr("div",{className:"border-b border-gray-200 mt-4"})]},t.version))})})})()]})}var mo=["shell-uploaded-wallpaper"];function ho(e,t){const r=qr(),n=e=>e===a,o=(n(e)||n(t))&&Ze(),{data:s}=en({queryKey:mo,enabled:o,queryFn:()=>c(),staleTime:3e5,retry:!1}),i=$r(()=>{r.invalidateQueries({queryKey:mo})},[r]);return{url:s?.wallpaper_url??null,refresh:i}}function po(e){return"sidebar"===e.layout_mode?"sidebar":"classic"}function fo(){const{prefs:e}=or(),t=rr();return{layout:t?"sidebar":po(e),forced:t}}function go(){const{prefs:e,save:t}=or();return $r(r=>{const n=po(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&&(ze(),window.dispatchEvent(new CustomEvent("react-os-shell:restore-windowed")))},[e,t])}var bo=(e,t)=>e&&Hr(e)?Ur(e,{className:t}):null,yo="mb-3 h-4 w-px shrink-0 self-end border-l border-gray-300";function xo({favorites:e,navSections:t,navIcons:r,onOpen:n,onToggleFavorite:o,variant:a="taskbar",vertical:s=!1,taskbarPosition:i="bottom",skip:l}){const c=Tr().layout,[d,u]=Dr(null),m=function(e){return Or(()=>{const t={},r=e=>{for(const n of e)t[n.to]??=n.label,n.children&&r(n.children)};for(const t of e)Wt(t)?r(t.items):r([t]);return e=>{if(t[e])return t[e];const r=Fe[e];return r&&Oe(r)?r.label:e.replace(/^\//,"")}},[e])}(t),h="strip"===a,p=l?e.filter(e=>!l(e)):e;if(0===p.length&&!d)return null;const f=h?"top":i,g=p.map(e=>{const t=m(e),o="h-4 w-4";/* @__PURE__ */
184
+ /* @__PURE__ */Jr(ke,{className:"min-w-0 [&_p]:m-0",children:e})]},t))}),r<e.length-1&&/* @__PURE__ */Jr("div",{className:"border-b border-gray-200 mt-4"})]},t.version))})})})()]})}var mo=["shell-uploaded-wallpaper"];function ho(e,t){const r=Zr(),n=e=>e===a,o=(n(e)||n(t))&&qe(),{data:s}=en({queryKey:mo,enabled:o,queryFn:()=>c(),staleTime:3e5,retry:!1}),i=$r(()=>{r.invalidateQueries({queryKey:mo})},[r]);return{url:s?.wallpaper_url??null,refresh:i}}function po(e){return"sidebar"===e.layout_mode?"sidebar":"classic"}function fo(){const{prefs:e}=Ht(),t=or();return{layout:t?"sidebar":po(e),forced:t}}function go(){const{prefs:e,save:t}=Ht();return $r(r=>{const n=po(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&&(Ke(),window.dispatchEvent(new CustomEvent("react-os-shell:restore-windowed")))},[e,t])}var bo=(e,t)=>e&&Hr(e)?Ur(e,{className:t}):null,yo="mb-3 h-4 w-px shrink-0 self-end border-l border-gray-300";function xo({favorites:e,navSections:t,navIcons:r,onOpen:n,onToggleFavorite:o,variant:a="taskbar",vertical:s=!1,taskbarPosition:i="bottom",skip:l}){const c=Tr().layout,[d,u]=Dr(null),m=function(e){return Or(()=>{const t={},r=e=>{for(const n of e)t[n.to]??=n.label,n.children&&r(n.children)};for(const t of e)Wt(t)?r(t.items):r([t]);return e=>{if(t[e])return t[e];const r=Fe[e];return r&&Oe(r)?r.label:e.replace(/^\//,"")}},[e])}(t),h="strip"===a,p=l?e.filter(e=>!l(e)):e;if(0===p.length&&!d)return null;const f=h?"top":i,g=p.map(e=>{const t=m(e),o="h-4 w-4";/* @__PURE__ */
185
185
  return Jr("button",{type:"button",onClick:()=>n(e),title:t,"aria-label":t,"data-favorite-launcher":e,onContextMenu:r=>{r.preventDefault(),r.stopPropagation(),u({x:r.clientX,y:r.clientY,path:e,label:t})},className:h?"flex size-7 shrink-0 items-center justify-center rounded-md text-gray-500 transition-colors hover:bg-gray-200/70 hover:text-gray-900 outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-500":"flex items-center justify-center rounded-lg p-2 border bg-gray-50/40 border-gray-200/40 text-gray-600 hover:bg-gray-200/40 hover:text-gray-800 transition-colors shrink-0",children:bo(r[e],o)??/* @__PURE__ */Jr(dr,{name:"grid",className:o,strokeWidth:1.5})},e)});/* @__PURE__ */
186
186
  return Gr(Qr,{children:[p.length>0&&(h?
187
187
  /* @__PURE__ */Gr("div",{role:"group","aria-label":c.favoriteApps,className:"flex shrink-0 items-end gap-3 self-stretch",children:[
188
188
  /* @__PURE__ */Jr("span",{"aria-hidden":"true",className:yo}),
189
189
  /* @__PURE__ */Jr("div",{className:"mb-0.5 flex max-w-[30vw] items-center gap-0.5 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:g}),
190
- /* @__PURE__ */Jr("span",{"aria-hidden":"true",className:yo})]}):/* @__PURE__ */Jr("div",{className:s?"w-full px-2 flex flex-wrap items-center justify-center gap-1 shrink-0 max-h-[30vh] overflow-y-auto":"flex items-center gap-1 shrink-0 max-w-[40vw] overflow-x-auto [scrollbar-width:none]",children:g})),d&&/* @__PURE__ */Gr(zt,{portal:!0,minWidth:180,style:(b=d.x,y=d.y,"top"===f?{left:Math.min(b,window.innerWidth-200),top:y+4}:"left"===f?{left:b+4,top:Math.min(y,window.innerHeight-120)}:"right"===f?{right:window.innerWidth-b+4,top:Math.min(y,window.innerHeight-120)}:{left:Math.min(b,window.innerWidth-200),bottom:window.innerHeight-y+4}),onClose:()=>u(null),children:[
191
- /* @__PURE__ */Gr(Vt,{onClick:()=>{u(null),n(d.path)},children:[bo(r[d.path],"h-4 w-4 text-gray-400")??/* @__PURE__ */Jr("span",{className:"w-4"}),c.openFavorite(d.label)]}),
192
- /* @__PURE__ */Jr(Ut,{}),
193
- /* @__PURE__ */Gr(Vt,{danger:!0,onClick:()=>{u(null),o(d.path)},children:[
190
+ /* @__PURE__ */Jr("span",{"aria-hidden":"true",className:yo})]}):/* @__PURE__ */Jr("div",{className:s?"w-full px-2 flex flex-wrap items-center justify-center gap-1 shrink-0 max-h-[30vh] overflow-y-auto":"flex items-center gap-1 shrink-0 max-w-[40vw] overflow-x-auto [scrollbar-width:none]",children:g})),d&&/* @__PURE__ */Gr(Vt,{portal:!0,minWidth:180,style:(b=d.x,y=d.y,"top"===f?{left:Math.min(b,window.innerWidth-200),top:y+4}:"left"===f?{left:b+4,top:Math.min(y,window.innerHeight-120)}:"right"===f?{right:window.innerWidth-b+4,top:Math.min(y,window.innerHeight-120)}:{left:Math.min(b,window.innerWidth-200),bottom:window.innerHeight-y+4}),onClose:()=>u(null),children:[
191
+ /* @__PURE__ */Gr(Xt,{onClick:()=>{u(null),n(d.path)},children:[bo(r[d.path],"h-4 w-4 text-gray-400")??/* @__PURE__ */Jr("span",{className:"w-4"}),c.openFavorite(d.label)]}),
192
+ /* @__PURE__ */Jr(zt,{}),
193
+ /* @__PURE__ */Gr(Xt,{danger:!0,onClick:()=>{u(null),o(d.path)},children:[
194
194
  /* @__PURE__ */Jr(dr,{name:"star",className:"h-4 w-4",strokeWidth:1.5}),c.removeFavorite]})]})]});var b,y}var wo=[];function vo(e,t){return`rosh-wtab-${t}-${e.replace(/[^A-Za-z0-9_-]/g,"_")}`}function ko(e,t){let r=e.route;if("page"!==e.type&&e.entityType){const t=Fe[e.entityType];r=t&&dt(t)?t.icon:void 0}return r?t[r]??void 0:void 0}var No=(e,t,r)=>ct(e)?.menu?.open(t,r),Co=e=>ct(e)?.menu?.items()??[];function So(e,t,r){return"page"===e.type&&e.route&&e.route!==r&&t.includes(e.route)?e.route:null}function _o(e,t,r=wo){const{openWindows:n,remove:o}=We(),a=Ye();Pr(st,it,it);const s=Or(()=>{const t=n.filter(lt),o=e?t.find(t=>"page"===t.type&&t.route===e):void 0,a=t.filter(e=>e!==o),s=t=>!!So(t,r,e),i=[...a.filter(s).reverse(),...a.filter(e=>!s(e))];return o?[o,...i]:i},[n,e,r]),i=s.map(n=>{const o=ct(n.id),a=!!e&&"page"===n.type&&n.route===e;return{key:n.id,title:o?.title||n.label,icon:ko(n,t),pinned:a,favorite:!!So(n,r,e),dirty:o?.dirty??!1,actions:o?.actions}}),l=$r((e,t)=>{const r=t?i.findIndex(e=>e.key===t):-1;i.filter((n,o)=>!n.pinned&&("all"===e||("others"===e?n.key!==t:o>r))).forEach(e=>o(e.key))},[i,o]);return{tabs:i,windows:s,activeKey:a,remove:o,closeMany:l}}function Eo({left:e,navIcons:t,home:r,end:n,favorites:o=wo,navSections:a=[],onOpenFavorite:s,onToggleFavorite:i}){const l=Tr().layout,{tabs:c,windows:d,activeKey:u,remove:m,closeMany:h}=_o(r,t,o),p=Or(()=>{const e=new Set(r?[r]:[]);for(const t of d){const n=So(t,o,r);n&&e.add(n)}return e},[d,o,r]),f=s&&o.some(e=>!p.has(e))?/* @__PURE__ */Jr(xo,{variant:"strip",favorites:o,skip:e=>p.has(e),navSections:a,navIcons:t,onOpen:s,onToggleFavorite:i??(()=>{})}):void 0;/* @__PURE__ */
195
195
  return Jr("div",{className:"fixed top-0 right-0 z-(--z-taskbar)",style:{left:e,height:vt},children:/* @__PURE__ */Jr(V,{tabs:c,activeKey:u,idFor:vo,onActivate:rt,onClose:m,onCloseMany:h,label:l.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,afterPinned:f,onIconMenu:No,menuItems:Co,sizing:"active-full"})})}var To={phosphor:()=>import("./icons/phosphor.js").then(e=>e.phosphor),iconoir:()=>import("./icons/iconoir.js").then(e=>e.iconoir),lucide:()=>import("./icons/lucide.js").then(e=>e.lucide),tabler:()=>import("./icons/tabler.js").then(e=>e.tabler)},Mo=/* @__PURE__ */new Map;function jo(e){const t=To[e];if(!t||yr(e))return Promise.resolve();let r=Mo.get(e);return r||(r=t(),Mo.set(e,r),r.catch(()=>{Mo.delete(e)})),r.then(t=>{yr(e)||xr(t,{asDefault:!1})},()=>{})}function Io(){mr(jo)}function Lo({onComplete:e,ready:t=!1,productName:r="efficient-shell",subtitle:n,logo:o="/favicon.svg",adaptiveLogo:a=!1,logoHasAlpha:s=null,logoIsLight:i=null}){const[l,c]=Dr("logo"),[d,u]=Dr(!1),m=Ar(e);m.current=e;const h=Ar(!1);return Rr(()=>{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)}},[]),Rr(()=>{if(!t||!d||h.current)return;h.current=!0,c("fade");const e=setTimeout(()=>m.current(),500);return()=>clearTimeout(e)},[t,d]),/* @__PURE__ */Gr("div",{"data-startup-animation":"",className:"fixed inset-0 z-(--z-overlay) flex flex-col items-center justify-center transition-opacity duration-500 "+("fade"===l?"opacity-0 pointer-events-none":"opacity-100"),style:{background:"linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)"},children:[
196
196
  /* @__PURE__ */Jr("div",{className:"absolute inset-0 overflow-hidden",children:/* @__PURE__ */Jr("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"}})}),
197
- /* @__PURE__ */Jr("div",{className:"relative transition-all duration-700 ease-out "+("logo"===l?"scale-75 opacity-0":"scale-100 opacity-100"),children:/* @__PURE__ */Jr(me,{src:o,alt:"",slot:"compact",surface:"dark",size:80,adaptive:a,hasAlpha:s,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"}})}),
197
+ /* @__PURE__ */Jr("div",{className:"relative transition-all duration-700 ease-out "+("logo"===l?"scale-75 opacity-0":"scale-100 opacity-100"),children:/* @__PURE__ */Jr(he,{src:o,alt:"",slot:"compact",surface:"dark",size:80,adaptive:a,hasAlpha:s,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"}})}),
198
198
  /* @__PURE__ */Gr("div",{className:"mt-6 text-center transition-all duration-500 "+("logo"!==l?"opacity-100 translate-y-0":"opacity-0 translate-y-4"),children:[
199
199
  /* @__PURE__ */Jr("h1",{className:"text-2xl font-bold tracking-[0.3em] text-white/90 uppercase",children:r}),
200
200
  /* @__PURE__ */Jr("div",{className:"mt-2 flex items-center justify-center gap-2",children:[0,1,2].map(e=>/* @__PURE__ */Jr("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__ */Jr("div",{className:"absolute bottom-8 transition-all duration-500 "+("logo"!==l?"opacity-40":"opacity-0"),children:/* @__PURE__ */Jr("p",{className:"text-2xs text-white/40 font-mono tracking-wider",children:n})}),
201
201
  /* @__PURE__ */Jr("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 Po({onComplete:e,subtitle:t,logo:r="/favicon.svg",adaptiveLogo:n=!1,logoHasAlpha:o=null,logoIsLight:a=null}){const[s,i]=Dr("show"),l=Tr();return Rr(()=>{k();const t=setTimeout(()=>i("out"),800),r=setTimeout(e,2300);return()=>{clearTimeout(t),clearTimeout(r)}},[e]),/* @__PURE__ */Gr("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:[
202
202
  /* @__PURE__ */Jr("div",{className:"absolute inset-0 overflow-hidden",children:/* @__PURE__ */Jr("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"===s?.2:0,transition:"opacity 1s"}})}),
203
- /* @__PURE__ */Jr("div",{className:"relative transition-all duration-1000 ease-in "+("out"===s?"scale-0 opacity-0":"scale-100 opacity-100"),style:"out"===s?{transform:"scale(0) rotate(180deg)"}:void 0,children:/* @__PURE__ */Jr(me,{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)]"})}),
203
+ /* @__PURE__ */Jr("div",{className:"relative transition-all duration-1000 ease-in "+("out"===s?"scale-0 opacity-0":"scale-100 opacity-100"),style:"out"===s?{transform:"scale(0) rotate(180deg)"}:void 0,children:/* @__PURE__ */Jr(he,{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)]"})}),
204
204
  /* @__PURE__ */Gr("div",{className:"mt-6 text-center transition-all duration-700 "+("show"===s?"opacity-100 translate-y-0":"opacity-0 translate-y-4"),children:[
205
205
  /* @__PURE__ */Jr("h1",{className:"text-2xl font-bold tracking-[0.3em] text-white/90 uppercase",children:l.logout.goodbye}),
206
206
  /* @__PURE__ */Jr("p",{className:"mt-2 text-xs text-white/40",children:l.logout.seeYou})]}),t&&/* @__PURE__ */Jr("div",{className:"absolute bottom-8 transition-all duration-500 "+("show"===s?"opacity-40":"opacity-0"),children:/* @__PURE__ */Jr("p",{className:"text-2xs text-white/40 font-mono tracking-wider",children:t})}),
207
- /* @__PURE__ */Jr("style",{children:"\n @keyframes logout-glow {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.15; }\n 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }\n }\n /* Reduced motion: same contract as StartupAnimation — fades stay,\n * movement goes, the 2300ms cover-and-swap timing is untouched. */\n @media (prefers-reduced-motion: reduce) {\n [data-logout-animation], [data-logout-animation] * {\n animation: none !important;\n transition-property: opacity !important;\n }\n }\n "})]})}function Do(e,t){return e.length===t.length&&e.every((e,r)=>e.type===t[r].type&&e.route===t[r].route&&e.entityType===t[r].entityType&&e.entityId===t[r].entityId&&e.label===t[r].label)}function Ro(){const{openWindows:e,openEntity:t,openPage:r}=We(),{prefs:n,save:o}=ar(),a=Ar(!1),s=Ar([]),i=Ar(null),l=Ar(0),c=Ar(void 0);return Rr(()=>{if(a.current)return;a.current=!0;const o=Array.isArray(n.session_windows)?n.session_windows:[];if(s.current=o,!1!==n.restore_windows&&!(e.length>0))for(const e of o)"page"===e.type&&e.route?r(e.route):"entity"===e.type&&e.entityType&&e.entityId&&!tt(e.entityId)&&t(e.entityType,e.entityId,void 0,e.label,e.route)},[]),Rr(()=>{if(!a.current)return;clearTimeout(c.current);const t=function(e){const t=[];for(const r of e)r.shellOwned||("page"===r.type&&r.route?t.push({type:"page",route:r.route}):r.entityType&&r.entityId&&"part_number"!==r.type&&!at(r)&&t.push({type:"entity",entityType:r.entityType,entityId:r.entityId,label:r.label,route:r.route}));return t}(e);return Do(t,s.current)||i.current&&Do(t,i.current)?void 0:(c.current=setTimeout(()=>{const e=++l.current;i.current=t,Promise.resolve(o({session_windows:t})).then(()=>{e===l.current&&(s.current=t,i.current=null)}).catch(()=>{e===l.current&&(i.current=null)})},800),()=>clearTimeout(c.current))},[e,o]),null}kt.menu;var Ao=e=>e.menuLabel??e.label,$o=e=>Boolean(e.menuLabel&&e.menuLabel!==e.label),Wo=e=>$o(e)?`${e.menuLabel}, ${e.label}`:void 0;function Fo({entry:e,className:t}){const r=$o(e),[n,o]=Dr(r);/* @__PURE__ */
208
- return Jr("span",{className:t,title:n?e.label:void 0,"data-menu-label":!0,onMouseEnter:e=>o(r||e.currentTarget.scrollWidth>e.currentTarget.clientWidth),children:Ao(e)})}function Oo({left:e,anchorY:t,estHeight:r,minTop:n,maxBottom:o,flipped:a,className:s,style:i,onMouseEnter:l,onMouseLeave:c,children:d}){const u=Ar(null);return Wr(()=>{const e=u.current;e&&(e.style.top=`${Qt(t,e.offsetHeight,n,o)}px`)}),/* @__PURE__ */Jr("div",{ref:u,"data-menu-panel":!0,className:`fixed rounded-(--radius-popup) overflow-hidden ${s??""}`,style:{left:e,top:Qt(t,r,n,o),animation:(a?"submenu-in-left":"submenu-in")+" 0.1s ease-out",...i},onMouseEnter:l,onMouseLeave:c,children:d})}function Bo({open:e,onClose:t,openPage:r,profile:n,user:o,onLogout:a,taskbarPosition:s,taskbarH:i,taskbarW:l=0,taskbarGap:c=4,size:d="medium",navSections:u=mt,navIcons:m=ht,sectionIcons:h=pt,categories:p=ut}){const f=new Set(p.erp),g=new Set(p.system),b=new Set(p.footer??[]),y=p.virtual??[],x=Object.fromEntries(y.map(e=>[e.label,e])),{hasAnyPerm:w}=N(),v=(p.footerItems??[]).filter(e=>$t(e,w)),k=rr(),[C,S]=Dr([]),[_,E]=Dr(""),[T,M]=Dr(0),j=Ar(null),I=Ar();Rr(()=>{e||(E(""),S([]),M(0))},[e]),Rr(()=>()=>clearTimeout(I.current),[]);const L=C.length>0?C[C.length-1].key:null;if(Rr(()=>{e&&Ke("menu","start")},[e]),Rr(()=>{L&&Ke("submenu",L)},[L]),Rr(()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()},n=e=>{e.target.closest("[data-menu-toggle]")||j.current&&!j.current.contains(e.target)&&t()};return window.addEventListener("keydown",r),window.addEventListener("pointerdown",n),()=>{window.removeEventListener("keydown",r),window.removeEventListener("pointerdown",n)}},[e,t]),!e)return null;const P=e=>{r(e),t()},D=e=>{if(e.onSelect)return e.onSelect(),void t();P(e.to)};if(k){const e=[],r=(t,n)=>{if($t(t,w)&&Ft(t,w)){e.push({item:t,sectionLabel:n});for(const e of Ot(t,w))r(e,t.label)}};for(const e of u)if(Wt(e)){const t=e;if(!$t(t,w))continue;for(const e of t.items)r(e,t.label)}else r(e);for(const e of v)r(e);const n=_.length>=1?e.filter(({item:e})=>e.label.toLowerCase().includes(_.toLowerCase())):e;/* @__PURE__ */
207
+ /* @__PURE__ */Jr("style",{children:"\n @keyframes logout-glow {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.15; }\n 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }\n }\n /* Reduced motion: same contract as StartupAnimation — fades stay,\n * movement goes, the 2300ms cover-and-swap timing is untouched. */\n @media (prefers-reduced-motion: reduce) {\n [data-logout-animation], [data-logout-animation] * {\n animation: none !important;\n transition-property: opacity !important;\n }\n }\n "})]})}function Do(e,t){return e.length===t.length&&e.every((e,r)=>e.type===t[r].type&&e.route===t[r].route&&e.entityType===t[r].entityType&&e.entityId===t[r].entityId&&e.label===t[r].label)}function Ro(){const{openWindows:e,openEntity:t,openPage:r}=We(),{prefs:n,save:o}=Ut(),a=Ar(!1),s=Ar([]),i=Ar(null),l=Ar(0),c=Ar(void 0);return Rr(()=>{if(a.current)return;a.current=!0;const o=Array.isArray(n.session_windows)?n.session_windows:[];if(s.current=o,!1!==n.restore_windows&&!(e.length>0))for(const e of o)"page"===e.type&&e.route?r(e.route):"entity"===e.type&&e.entityType&&e.entityId&&!tt(e.entityId)&&t(e.entityType,e.entityId,void 0,e.label,e.route)},[]),Rr(()=>{if(!a.current)return;clearTimeout(c.current);const t=function(e){const t=[];for(const r of e)r.shellOwned||("page"===r.type&&r.route?t.push({type:"page",route:r.route}):r.entityType&&r.entityId&&"part_number"!==r.type&&!at(r)&&t.push({type:"entity",entityType:r.entityType,entityId:r.entityId,label:r.label,route:r.route}));return t}(e);return Do(t,s.current)||i.current&&Do(t,i.current)?void 0:(c.current=setTimeout(()=>{const e=++l.current;i.current=t,Promise.resolve(o({session_windows:t})).then(()=>{e===l.current&&(s.current=t,i.current=null)}).catch(()=>{e===l.current&&(i.current=null)})},800),()=>clearTimeout(c.current))},[e,o]),null}kt.menu;var Ao=e=>e.menuLabel??e.label,$o=e=>Boolean(e.menuLabel&&e.menuLabel!==e.label),Wo=e=>$o(e)?`${e.menuLabel}, ${e.label}`:void 0;function Fo({entry:e,className:t}){const r=$o(e),[n,o]=Dr(r);/* @__PURE__ */
208
+ return Jr("span",{className:t,title:n?e.label:void 0,"data-menu-label":!0,onMouseEnter:e=>o(r||e.currentTarget.scrollWidth>e.currentTarget.clientWidth),children:Ao(e)})}function Oo({left:e,anchorY:t,estHeight:r,minTop:n,maxBottom:o,flipped:a,className:s,style:i,onMouseEnter:l,onMouseLeave:c,children:d}){const u=Ar(null);return Wr(()=>{const e=u.current;e&&(e.style.top=`${Zt(t,e.offsetHeight,n,o)}px`)}),/* @__PURE__ */Jr("div",{ref:u,"data-menu-panel":!0,className:`fixed rounded-(--radius-popup) overflow-hidden ${s??""}`,style:{left:e,top:Zt(t,r,n,o),animation:(a?"submenu-in-left":"submenu-in")+" 0.1s ease-out",...i},onMouseEnter:l,onMouseLeave:c,children:d})}function Bo({open:e,onClose:t,openPage:r,profile:n,user:o,onLogout:a,taskbarPosition:s,taskbarH:i,taskbarW:l=0,taskbarGap:c=4,size:d="medium",navSections:u=mt,navIcons:m=ht,sectionIcons:h=pt,categories:p=ut}){const f=new Set(p.erp),g=new Set(p.system),b=new Set(p.footer??[]),y=p.virtual??[],x=Object.fromEntries(y.map(e=>[e.label,e])),{hasAnyPerm:w}=N(),v=(p.footerItems??[]).filter(e=>$t(e,w)),k=or(),[C,S]=Dr([]),[_,E]=Dr(""),[T,M]=Dr(0),j=Ar(null),I=Ar();Rr(()=>{e||(E(""),S([]),M(0))},[e]),Rr(()=>()=>clearTimeout(I.current),[]);const L=C.length>0?C[C.length-1].key:null;if(Rr(()=>{e&&ze("menu","start")},[e]),Rr(()=>{L&&ze("submenu",L)},[L]),Rr(()=>{if(!e)return;const r=e=>{"Escape"===e.key&&t()},n=e=>{e.target.closest("[data-menu-toggle]")||j.current&&!j.current.contains(e.target)&&t()};return window.addEventListener("keydown",r),window.addEventListener("pointerdown",n),()=>{window.removeEventListener("keydown",r),window.removeEventListener("pointerdown",n)}},[e,t]),!e)return null;const P=e=>{r(e),t()},D=e=>{if(e.onSelect)return e.onSelect(),void t();P(e.to)};if(k){const e=[],r=(t,n)=>{if($t(t,w)&&Ft(t,w)){e.push({item:t,sectionLabel:n});for(const e of Ot(t,w))r(e,t.label)}};for(const e of u)if(Wt(e)){const t=e;if(!$t(t,w))continue;for(const e of t.items)r(e,t.label)}else r(e);for(const e of v)r(e);const n=_.length>=1?e.filter(({item:e})=>e.label.toLowerCase().includes(_.toLowerCase())):e;/* @__PURE__ */
209
209
  return Gr("div",{ref:j,className:"fixed inset-0 z-(--z-sidebar) flex flex-col bg-white",style:{paddingBottom:"var(--mobile-bottom-nav, 56px)"},children:[
210
210
  /* @__PURE__ */Gr("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-gray-200",children:[
211
211
  /* @__PURE__ */Jr("button",{onClick:t,className:"p-2 -ml-1 rounded-full active:bg-gray-200 text-gray-700","aria-label":"Close menu",children:/* @__PURE__ */Jr(dr,{name:"close",className:"h-5 w-5",strokeWidth:2})}),
@@ -216,10 +216,10 @@ return Gr("div",{ref:j,className:"fixed inset-0 z-(--z-sidebar) flex flex-col bg
216
216
  return Gr("button",{onClick:()=>D(e),"aria-label":Wo(e),className:"w-full flex items-center gap-3 px-4 py-3 active:bg-gray-100 border-b border-gray-100 text-left",children:[
217
217
  /* @__PURE__ */Jr("span",{className:"h-8 w-8 rounded-lg bg-gray-100 flex items-center justify-center text-gray-600 shrink-0",children:n&&Hr(n)?Ur(n,{className:"h-5 w-5"}):null}),
218
218
  /* @__PURE__ */Gr("div",{className:"min-w-0 flex-1",children:[
219
- /* @__PURE__ */Jr(Fo,{entry:e,className:"block truncate text-sm font-medium text-gray-900"}),t&&/* @__PURE__ */Jr("div",{className:"text-2xs text-gray-500 truncate",children:t})]})]},`${e.to}-${r}`)})})]})}const R="bottom"!==s,A=u.filter(e=>!Wt(e)).filter(e=>$t(e,w)&&Ft(e,w)),$=u.filter(e=>Wt(e)&&f.has(e.label)),W=u.filter(e=>Wt(e)&&g.has(e.label)),F=u.filter(e=>Wt(e)&&b.has(e.label)),O=A.length>0||W.length>0||y.length>0,B=0===W.length&&0===y.length&&!!A[A.length-1]?.dividerAfter,H=e=>e.items.filter(e=>$t(e,w)),U=e=>Ot(e,w),z=e=>U(e).filter(e=>Ft(e,w)),K=(e,t)=>{if(!$t(e,w))return[];if(!Ft(e,w))return[];const r=U(e),n=[];e.label.toLowerCase().includes(_.toLowerCase())&&n.push({...e,section:t});for(const t of r)n.push(...K(t,e.label));return n},V=_.length>=2?[...u.flatMap(e=>{if(Wt(e)){const t=e;return t.items.flatMap(e=>K(e,t.label))}return K(e,"")}),...v.flatMap(e=>K(e,""))]:[],Y="top"===s?{top:i+c,left:8}:"left"===s?{top:8,left:l+c}:"right"===s?{top:8,right:l+c}:{bottom:i+c,left:8},X=/* @__PURE__ */Jr("span",{"aria-hidden":"true","data-icon-slot":"",className:"h-4 w-4 shrink-0"}),G=e=>Hr(m[e]),J=[...A,...v].some(e=>G(e.to))||[...$,...W,...F].some(e=>{return t=e.label,Hr(h[t]);var t})||y.some(e=>!!e.icon),Q=(e,t=J)=>{const r=m[e];return r&&Hr(r)?Ur(r,{className:"h-4 w-4 shrink-0"}):t?X:null},Z=e=>{const t=h[e];return t&&Hr(t)?Ur(t,{className:"h-4 w-4 shrink-0"}):J?X:null},q=C.length>0?C[0].key:null,ee=q?x[q]:void 0,te=ee?null:q?[...$,...W,...F].find(e=>e.label===q):null,re=(ee?ee.items:te?H(te):[]).filter(e=>Ft(e,w)),ne="undefined"!=typeof document&&getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal",oe="tight"===ne||"large"===ne?ne:"normal",ae={tight:{small:{w:"w-52",fw:"w-44",fwPx:176,text:"text-xs",py:"py-1",px:"px-3",mw:208,itemH:24},medium:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-1",px:"px-3",mw:224,itemH:26},large:{w:"w-64",fw:"w-52",fwPx:208,text:"text-sm",py:"h-(--control-height-md)",px:"px-3",mw:256,itemH:Nt.md}},normal:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"h-(--control-height-md)",px:"px-3",mw:224,itemH:Nt.md},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"h-(--row-height-menu)",px:"px-4",mw:256,itemH:kt.menu},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"h-(--control-height-lg)",px:"px-4",mw:288,itemH:Nt.lg}},large:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-2",px:"px-3",mw:224,itemH:32},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"py-2",px:"px-4",mw:256,itemH:36},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"py-2",px:"px-4",mw:288,itemH:36}}}[oe][d],se=_r(),ie=`w-full min-w-0 overflow-hidden whitespace-nowrap flex items-center gap-2 rounded-lg ${ae.px} ${ae.py} ${ae.text}`,le="min-w-0 flex-1 truncate text-left",ce="undefined"!=typeof window?window.innerHeight:800,de="undefined"!=typeof window?window.innerWidth:1280,ue=("top"===s?i:0)+8,me=ce-("bottom"===s?i:0)-8,he=Math.max(0,me-ue),pe=Yt(re,C,z),fe=()=>clearTimeout(I.current),ge=(e,t)=>{const r=t.closest("[data-menu-panel]");if(!r)return{left:0,flipped:!1};const n=0===e?r.getBoundingClientRect().left:C[e-1]?.left??0,o=0===e?r.getBoundingClientRect().right:n+r.offsetWidth,a=e>0&&(C[e-1]?.flipped??!1);return Zt(n,o,ae.fwPx,de,4,a)},be=(e,t,r)=>{fe();const n=r.currentTarget,o=n.getBoundingClientRect(),a={key:t,y:o.top+o.height/2,...ge(e,n)};S(t=>Gt(t,e,a))},ye=e=>{fe(),I.current=setTimeout(()=>S(t=>Jt(t,e)),200)},xe=/* @__PURE__ */Jr(dr,{name:"chevron-right",className:"h-3.5 w-3.5 shrink-0 ml-auto",strokeWidth:2}),we=(e,t)=>{if(!$t(e,w))return null;if(0===H(e).length)return null;const r=q===e.label;/* @__PURE__ */
219
+ /* @__PURE__ */Jr(Fo,{entry:e,className:"block truncate text-sm font-medium text-gray-900"}),t&&/* @__PURE__ */Jr("div",{className:"text-2xs text-gray-500 truncate",children:t})]})]},`${e.to}-${r}`)})})]})}const R="bottom"!==s,A=u.filter(e=>!Wt(e)).filter(e=>$t(e,w)&&Ft(e,w)),$=u.filter(e=>Wt(e)&&f.has(e.label)),W=u.filter(e=>Wt(e)&&g.has(e.label)),F=u.filter(e=>Wt(e)&&b.has(e.label)),O=A.length>0||W.length>0||y.length>0,B=0===W.length&&0===y.length&&!!A[A.length-1]?.dividerAfter,H=e=>e.items.filter(e=>$t(e,w)),U=e=>Ot(e,w),K=e=>U(e).filter(e=>Ft(e,w)),z=(e,t)=>{if(!$t(e,w))return[];if(!Ft(e,w))return[];const r=U(e),n=[];e.label.toLowerCase().includes(_.toLowerCase())&&n.push({...e,section:t});for(const t of r)n.push(...z(t,e.label));return n},V=_.length>=2?[...u.flatMap(e=>{if(Wt(e)){const t=e;return t.items.flatMap(e=>z(e,t.label))}return z(e,"")}),...v.flatMap(e=>z(e,""))]:[],Y="top"===s?{top:i+c,left:8}:"left"===s?{top:8,left:l+c}:"right"===s?{top:8,right:l+c}:{bottom:i+c,left:8},X=/* @__PURE__ */Jr("span",{"aria-hidden":"true","data-icon-slot":"",className:"h-4 w-4 shrink-0"}),G=e=>Hr(m[e]),J=[...A,...v].some(e=>G(e.to))||[...$,...W,...F].some(e=>{return t=e.label,Hr(h[t]);var t})||y.some(e=>!!e.icon),Q=(e,t=J)=>{const r=m[e];return r&&Hr(r)?Ur(r,{className:"h-4 w-4 shrink-0"}):t?X:null},q=e=>{const t=h[e];return t&&Hr(t)?Ur(t,{className:"h-4 w-4 shrink-0"}):J?X:null},Z=C.length>0?C[0].key:null,ee=Z?x[Z]:void 0,te=ee?null:Z?[...$,...W,...F].find(e=>e.label===Z):null,re=(ee?ee.items:te?H(te):[]).filter(e=>Ft(e,w)),ne="undefined"!=typeof document&&getComputedStyle(document.documentElement).getPropertyValue("--menu-density")?.trim()||"normal",oe="tight"===ne||"large"===ne?ne:"normal",ae={tight:{small:{w:"w-52",fw:"w-44",fwPx:176,text:"text-xs",py:"py-1",px:"px-3",mw:208,itemH:24},medium:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-1",px:"px-3",mw:224,itemH:26},large:{w:"w-64",fw:"w-52",fwPx:208,text:"text-sm",py:"h-(--control-height-md)",px:"px-3",mw:256,itemH:Nt.md}},normal:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"h-(--control-height-md)",px:"px-3",mw:224,itemH:Nt.md},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"h-(--row-height-menu)",px:"px-4",mw:256,itemH:kt.menu},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"h-(--control-height-lg)",px:"px-4",mw:288,itemH:Nt.lg}},large:{small:{w:"w-56",fw:"w-48",fwPx:192,text:"text-xs",py:"py-2",px:"px-3",mw:224,itemH:32},medium:{w:"w-64",fw:"w-56",fwPx:224,text:"text-sm",py:"py-2",px:"px-4",mw:256,itemH:36},large:{w:"w-72",fw:"w-60",fwPx:240,text:"text-sm",py:"py-2",px:"px-4",mw:288,itemH:36}}}[oe][d],se=_r(),ie=`w-full min-w-0 overflow-hidden whitespace-nowrap flex items-center gap-2 rounded-lg ${ae.px} ${ae.py} ${ae.text}`,le="min-w-0 flex-1 truncate text-left",ce="undefined"!=typeof window?window.innerHeight:800,de="undefined"!=typeof window?window.innerWidth:1280,ue=("top"===s?i:0)+8,me=ce-("bottom"===s?i:0)-8,he=Math.max(0,me-ue),pe=Gt(re,C,K),fe=()=>clearTimeout(I.current),ge=(e,t)=>{const r=t.closest("[data-menu-panel]");if(!r)return{left:0,flipped:!1};const n=0===e?r.getBoundingClientRect().left:C[e-1]?.left??0,o=0===e?r.getBoundingClientRect().right:n+r.offsetWidth,a=e>0&&(C[e-1]?.flipped??!1);return er(n,o,ae.fwPx,de,4,a)},be=(e,t,r)=>{fe();const n=r.currentTarget,o=n.getBoundingClientRect(),a={key:t,y:o.top+o.height/2,...ge(e,n)};S(t=>Qt(t,e,a))},ye=e=>{fe(),I.current=setTimeout(()=>S(t=>qt(t,e)),200)},xe=/* @__PURE__ */Jr(dr,{name:"chevron-right",className:"h-3.5 w-3.5 shrink-0 ml-auto",strokeWidth:2}),we=(e,t)=>{if(!$t(e,w))return null;if(0===H(e).length)return null;const r=Z===e.label;/* @__PURE__ */
220
220
  return Gr("div",{onMouseEnter:t=>be(0,e.label,t),children:[
221
- /* @__PURE__ */Gr("button",{"aria-label":Wo(e),className:`${ie} transition-colors ${r?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[Z(e.label),
222
- /* @__PURE__ */Jr(Fo,{entry:e,className:`${le} ${t?"font-medium":""}`}),xe]}),e.dividerAfter&&/* @__PURE__ */Jr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.label)},ve=e=>{if(0===e.items.length)return null;const t=q===e.label;/* @__PURE__ */
221
+ /* @__PURE__ */Gr("button",{"aria-label":Wo(e),className:`${ie} transition-colors ${r?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[q(e.label),
222
+ /* @__PURE__ */Jr(Fo,{entry:e,className:`${le} ${t?"font-medium":""}`}),xe]}),e.dividerAfter&&/* @__PURE__ */Jr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.label)},ve=e=>{if(0===e.items.length)return null;const t=Z===e.label;/* @__PURE__ */
223
223
  return Jr("div",{onMouseEnter:t=>be(0,e.label,t),children:/* @__PURE__ */Gr("button",{"aria-label":Wo(e),className:`${ie} transition-colors ${t?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[e.icon?/* @__PURE__ */Jr("span",{className:"shrink-0",children:e.icon}):J?X:null,
224
224
  /* @__PURE__ */Jr(Fo,{entry:e,className:le}),xe]})},e.label)};
225
225
  /* @__PURE__ */
@@ -238,7 +238,7 @@ return Gr("div",{ref:j,className:"fixed z-(--z-start-menu)",style:Y,children:[
238
238
  /* @__PURE__ */Jr(Fo,{entry:e,className:le})]},e.to))]})]}),
239
239
  /* @__PURE__ */Jr("div",{className:(R?"border-b":"border-t")+" border-white/20 p-1",onMouseEnter:()=>ye(0),children:/* @__PURE__ */Gr("div",{onClick:()=>P("/profile"),className:"rounded-lg h-11 px-2 flex items-center gap-3 hover:bg-blue-50 hover:text-blue-700 transition-colors cursor-pointer",children:[n?.avatar_url?/* @__PURE__ */Jr("img",{src:n.avatar_url,alt:"",className:"h-8 w-8 rounded-full object-cover border border-white/20 shrink-0"}):/* @__PURE__ */Jr("div",{className:"h-8 w-8 rounded-full bg-blue-100 flex items-center justify-center text-sm font-bold text-blue-700 shrink-0",children:(n?.first_name?.charAt(0)||o?.email?.charAt(0)||"?").toUpperCase()}),
240
240
  /* @__PURE__ */Jr("p",{className:"flex-1 min-w-0 text-sm font-medium text-gray-900 truncate",children:n?.first_name?`${n.first_name} ${n.last_name||""}`.trim():o?.email}),
241
- /* @__PURE__ */Jr("button",{onClick:e=>{e.stopPropagation(),t(),a()},title:"Sign Out",className:"shrink-0 p-2 rounded-md text-gray-500 hover:text-red-600 hover:bg-red-50 transition-colors",children:/* @__PURE__ */Jr(dr,{name:"logout",className:"h-5 w-5",strokeWidth:1.5})})]})})]}),_.length<2&&pe.map((e,t)=>/* @__PURE__ */Jr(Oo,{left:C[t].left,anchorY:C[t].y,estHeight:e.length*ae.itemH+12,minTop:ue,maxBottom:me,flipped:C[t].flipped,className:ae.fw,style:se,onMouseEnter:()=>ye(t+1),onMouseLeave:()=>ye(t),children:/* @__PURE__ */Jr("div",{className:"py-1 px-1 overflow-y-auto overflow-x-hidden overscroll-contain",style:{maxHeight:he},children:e.map((e,r,n)=>{const o=n.some(e=>G(e.to)),a=z(e),s=C[t+1]?.key===e.to;/* @__PURE__ */
241
+ /* @__PURE__ */Jr("button",{onClick:e=>{e.stopPropagation(),t(),a()},title:"Sign Out",className:"shrink-0 p-2 rounded-md text-gray-500 hover:text-red-600 hover:bg-red-50 transition-colors",children:/* @__PURE__ */Jr(dr,{name:"logout",className:"h-5 w-5",strokeWidth:1.5})})]})})]}),_.length<2&&pe.map((e,t)=>/* @__PURE__ */Jr(Oo,{left:C[t].left,anchorY:C[t].y,estHeight:e.length*ae.itemH+12,minTop:ue,maxBottom:me,flipped:C[t].flipped,className:ae.fw,style:se,onMouseEnter:()=>ye(t+1),onMouseLeave:()=>ye(t),children:/* @__PURE__ */Jr("div",{className:"py-1 px-1 overflow-y-auto overflow-x-hidden overscroll-contain",style:{maxHeight:he},children:e.map((e,r,n)=>{const o=n.some(e=>G(e.to)),a=K(e),s=C[t+1]?.key===e.to;/* @__PURE__ */
242
242
  return Gr("div",{onMouseEnter:a.length>0?r=>be(t+1,e.to,r):()=>ye(t+1),children:[
243
243
  /* @__PURE__ */Gr("button",{onClick:a.length>0?r=>be(t+1,e.to,r):()=>D(e),"aria-label":Wo(e),className:`${ie} transition-colors ${s?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,children:[Q(e.to,o),
244
244
  /* @__PURE__ */Jr(Fo,{entry:e,className:le}),a.length>0&&xe]}),e.dividerAfter&&/* @__PURE__ */Jr("div",{className:"border-t border-white/20 my-2 mx-2"})]},e.to)})})},`${t}:${C[t].key}`))]}),
@@ -260,9 +260,9 @@ return Gr(Qr,{children:[o&&/* @__PURE__ */Gr("div",{"data-phone-app-banner":!0,c
260
260
  /* @__PURE__ */Jr("h2",{className:"mb-2 px-2 text-sm font-semibold text-gray-900",children:a.layout.openTabs}),
261
261
  /* @__PURE__ */Jr("ul",{className:"space-y-0.5",children:s.map(e=>/* @__PURE__ */Gr("li",{className:"flex items-center gap-1 rounded-md "+(e.key===i?"bg-gray-100":""),children:[
262
262
  /* @__PURE__ */Gr("button",{type:"button","aria-current":e.key===i?"page":void 0,onClick:()=>{rt(e.key),h(!1)},className:"flex h-(--row-height-menu) min-w-0 flex-1 items-center gap-3 px-2 text-left text-sm text-gray-800",children:[e.icon&&/* @__PURE__ */Jr("span",{className:"flex size-4 shrink-0 items-center justify-center [&>svg]:size-4","aria-hidden":"true",children:e.icon}),
263
- /* @__PURE__ */Jr("span",{className:"min-w-0 truncate",children:e.title}),e.dirty&&/* @__PURE__ */Jr("span",{className:"size-2 shrink-0 rounded-full bg-amber-500",role:"img","aria-label":a.pageTabs.unsaved})]}),!e.pinned&&/* @__PURE__ */Jr(Ne,{size:"sm",onClick:()=>l(e.key),"aria-label":a.pageTabs.closeTab?.(e.title)??`${a.pageTabs.close} ${e.title}`,children:/* @__PURE__ */Jr(dr,{name:"close",className:"size-4",strokeWidth:1.5,"aria-hidden":"true"})})]},e.key))}),s.some(e=>!e.pinned)&&/* @__PURE__ */Jr("button",{type:"button",onClick:()=>{c("all",null),h(!1)},className:"mt-3 w-full rounded-md py-2 text-center text-xs font-medium text-gray-500 hover:bg-gray-100",children:a.pageTabs.closeAll})]})]})]})}var zo=Lr(()=>import("./Sidebar-ZIHLBHKR.js"));function Ko(){const e=Pr(r,n,n),{openPage:t}=We();if(!(e.running||e.remaining<e.total&&e.remaining>0))return null;const o=String(Math.floor(e.remaining/60)).padStart(2,"0"),a=String(e.remaining%60).padStart(2,"0"),s="focus"===e.mode?"bg-blue-500":"short"===e.mode?"bg-emerald-500":"bg-emerald-600",i="focus"===e.mode?"Focus":"short"===e.mode?"Short break":"Long break";/* @__PURE__ */
263
+ /* @__PURE__ */Jr("span",{className:"min-w-0 truncate",children:e.title}),e.dirty&&/* @__PURE__ */Jr("span",{className:"size-2 shrink-0 rounded-full bg-amber-500",role:"img","aria-label":a.pageTabs.unsaved})]}),!e.pinned&&/* @__PURE__ */Jr(Ne,{size:"sm",onClick:()=>l(e.key),"aria-label":a.pageTabs.closeTab?.(e.title)??`${a.pageTabs.close} ${e.title}`,children:/* @__PURE__ */Jr(dr,{name:"close",className:"size-4",strokeWidth:1.5,"aria-hidden":"true"})})]},e.key))}),s.some(e=>!e.pinned)&&/* @__PURE__ */Jr("button",{type:"button",onClick:()=>{c("all",null),h(!1)},className:"mt-3 w-full rounded-md py-2 text-center text-xs font-medium text-gray-500 hover:bg-gray-100",children:a.pageTabs.closeAll})]})]})]})}var Ko=Lr(()=>import("./Sidebar-YCSGGCLW.js"));function zo(){const e=Pr(r,n,n),{openPage:t}=We();if(!(e.running||e.remaining<e.total&&e.remaining>0))return null;const o=String(Math.floor(e.remaining/60)).padStart(2,"0"),a=String(e.remaining%60).padStart(2,"0"),s="focus"===e.mode?"bg-blue-500":"short"===e.mode?"bg-emerald-500":"bg-emerald-600",i="focus"===e.mode?"Focus":"short"===e.mode?"Short break":"Long break";/* @__PURE__ */
264
264
  return Gr("button",{onClick:()=>t("/pomodoro"),title:`${i} · ${o}:${a}${e.running?"":" (paused)"}`,className:"shrink-0 flex items-center gap-2 rounded-md px-2 py-1 text-2xs font-mono font-semibold tabular-nums hover:bg-gray-200/50 transition-colors "+(e.running?"text-gray-800":"text-gray-400"),children:[
265
- /* @__PURE__ */Jr("span",{className:`block w-1.5 h-1.5 rounded-full ${s} ${e.running?"animate-pulse":"opacity-60"}`}),o,":",a]})}function Vo({clockCalendar:e}){const[t,r]=Dr(/* @__PURE__ */new Date),[n,o]=Dr(!1),a=Ar(null),s=Ar(null),{openPage:i}=We();return Rr(()=>{const e=setInterval(()=>r(/* @__PURE__ */new Date),1e4);return()=>clearInterval(e)},[]),re(a,$r(()=>{n&&o(!1)},[n])),/* @__PURE__ */Gr("div",{ref:a,className:"relative shrink-0",children:[
265
+ /* @__PURE__ */Jr("span",{className:`block w-1.5 h-1.5 rounded-full ${s} ${e.running?"animate-pulse":"opacity-60"}`}),o,":",a]})}function Vo({clockCalendar:e}){const[t,r]=Dr(/* @__PURE__ */new Date),[n,o]=Dr(!1),a=Ar(null),s=Ar(null),{openPage:i}=We();return Rr(()=>{const e=setInterval(()=>r(/* @__PURE__ */new Date),1e4);return()=>clearInterval(e)},[]),Y(a,$r(()=>{n&&o(!1)},[n])),/* @__PURE__ */Gr("div",{ref:a,className:"relative shrink-0",children:[
266
266
  /* @__PURE__ */Gr("button",{ref:s,onClick:()=>o(!n),className:"text-right leading-tight cursor-pointer hover:bg-gray-200/50 rounded px-2 py-0.5 transition-colors",children:[
267
267
  /* @__PURE__ */Jr("p",{className:"text-2xs font-medium text-gray-800",children:t.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}),
268
268
  /* @__PURE__ */Jr("p",{className:"text-2xs text-gray-700",children:t.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})})]}),n&&(()=>{const r=getComputedStyle(document.documentElement).getPropertyValue("--taskbar-position")?.trim()||"bottom",n=s.current?.getBoundingClientRect(),a=n?Math.max(8,window.innerWidth-n.right):8,i="top"===r?{right:a,top:(n?.bottom??0)+4}:{right:a,bottom:window.innerHeight-(n?.top??0)+4};/* @__PURE__ */
@@ -272,7 +272,7 @@ return Gr("div",{className:(a?"w-[300px]":"w-72")+" p-3",children:[
272
272
  /* @__PURE__ */Gr("div",{className:"px-1 pb-2 border-b border-gray-100",children:[
273
273
  /* @__PURE__ */Jr("div",{className:"text-2xs font-semibold text-gray-500 uppercase tracking-wide",children:s}),
274
274
  /* @__PURE__ */Jr("div",{className:"text-2xl font-semibold text-gray-800 tabular-nums leading-tight mt-0.5",children:i})]}),
275
- /* @__PURE__ */Jr(te,{className:"mt-2",value:a?n:Yo(e),onSelect:o,readOnly:!a,markedDates:t?.markedDates}),t?.renderDay&&/* @__PURE__ */Jr("div",{className:"mt-2 max-h-[280px] overflow-y-auto border-t border-gray-100 pt-2",children:t.renderDay(n,{close:r})},n)]})}function Go({x:e,y:t,position:r,size:n,onChangePosition:o,onChangeSize:a,onClose:s,onReportBug:i,onSwitchLayout:l,switchLayoutLabel:c}){const d=Ar(null);re(d,s);const u="top"===r?{left:Math.min(e,window.innerWidth-200),top:t+4}:"left"===r?{left:e+4,top:Math.min(t,window.innerHeight-300)}:"right"===r?{right:window.innerWidth-e+4,top:Math.min(t,window.innerHeight-300)}:{left:Math.min(e,window.innerWidth-200),bottom:window.innerHeight-t+4},m=e=>e?/* @__PURE__ */Jr(dr,{name:"check",className:"h-3.5 w-3.5 text-blue-600 shrink-0",strokeWidth:2.5}):/* @__PURE__ */Jr("span",{className:"w-3.5"});/* @__PURE__ */
275
+ /* @__PURE__ */Jr(pe,{className:"mt-2",value:a?n:Yo(e),onSelect:o,readOnly:!a,markedDates:t?.markedDates}),t?.renderDay&&/* @__PURE__ */Jr("div",{className:"mt-2 max-h-[280px] overflow-y-auto border-t border-gray-100 pt-2",children:t.renderDay(n,{close:r})},n)]})}function Go({x:e,y:t,position:r,size:n,onChangePosition:o,onChangeSize:a,onClose:s,onReportBug:i,onSwitchLayout:l,switchLayoutLabel:c}){const d=Ar(null);Y(d,s);const u="top"===r?{left:Math.min(e,window.innerWidth-200),top:t+4}:"left"===r?{left:e+4,top:Math.min(t,window.innerHeight-300)}:"right"===r?{right:window.innerWidth-e+4,top:Math.min(t,window.innerHeight-300)}:{left:Math.min(e,window.innerWidth-200),bottom:window.innerHeight-t+4},m=e=>e?/* @__PURE__ */Jr(dr,{name:"check",className:"h-3.5 w-3.5 text-blue-600 shrink-0",strokeWidth:2.5}):/* @__PURE__ */Jr("span",{className:"w-3.5"});/* @__PURE__ */
276
276
  return Gr("div",{ref:d,className:"fixed z-(--z-popup) rounded-(--radius-popup) py-1 min-w-[180px]",style:{...u,..._r()},children:[
277
277
  /* @__PURE__ */Jr("p",{className:"px-3 py-1 text-3xs font-semibold text-gray-400 uppercase tracking-wide",children:"Position"}),["bottom","top","left","right"].map(e=>/* @__PURE__ */Gr("button",{onClick:()=>o(e),className:"w-full text-left px-3 min-h-(--row-height-menu) py-2 text-sm text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors rounded-lg mx-1 flex items-center gap-2",style:{width:"calc(100% - 8px)"},children:[m(r===e),e.charAt(0).toUpperCase()+e.slice(1)]},e)),
278
278
  /* @__PURE__ */Jr("div",{className:"border-t border-white/20 my-1 mx-3"}),
@@ -282,79 +282,79 @@ return Gr("div",{ref:d,className:"fixed z-(--z-popup) rounded-(--radius-popup) p
282
282
  /* @__PURE__ */Jr(dr,{name:"layout",className:"h-3.5 w-3.5 text-gray-400 shrink-0",strokeWidth:1.5}),c]})]}),i&&/* @__PURE__ */Gr(Qr,{children:[
283
283
  /* @__PURE__ */Jr("div",{className:"border-t border-white/20 my-1 mx-3"}),
284
284
  /* @__PURE__ */Gr("button",{onClick:()=>{s(),i()},className:"w-full text-left px-3 min-h-(--row-height-menu) py-2 text-sm text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors rounded-lg mx-1 flex items-center gap-2",style:{width:"calc(100% - 8px)"},children:[
285
- /* @__PURE__ */Jr(dr,{name:"error",className:"h-3.5 w-3.5 text-gray-400 shrink-0",strokeWidth:1.5}),"Suggestion or Bug"]})]})]})}function Jo({branding:e,productName:t="efficient-shell",productIcon:r="/favicon.svg",wallpapers:n,navSections:a=mt,navIcons:s=ht,sectionIcons:i=pt,categories:l=ut,notifications:c,search:d,taskbarTrayLeft:m,clockCalendar:h,mobileApp:p,contextMenu:f=!0,home:g}={}){const b=e?.productName??t,y=e?.logo??r,x=e?.tagline,w=e?.adaptiveLogo??!1,v=e?.logoHasAlpha??null,k=e?.logoIsLight??null,M=lo(),{user:j,logout:L,hasAnyPerm:P}=N(),{openPage:D,openEntity:R,openWindows:$,remove:K}=We(),V=Tr().layout,[Y,X]=Dr(!1),G=rr(),J=j||{};Io(),ne();const{favorites:Q,toggle:Z,desktopBg:q}=function(e){const{prefs:t,save:r}=or(),n=t.favorite_pages||[],o=$r(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:[],s=Ar(a.length>0?a[Math.floor(Math.random()*a.length)]:"none"),i=t.desktop_bg||(a.length>0?"random":"none"),l="random"===i?s.current:i,c=$r(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:o,isFavorite:e=>n.includes(e),desktopBg:l,setDesktopBg:c}}(n??M.wallpapers?.map(e=>e.src)),{url:ee}=ho(q),{prefs:te,save:re}=or(),oe=nr(),ae=G?"sidebar":po(te),se="sidebar"===ae,[ie,le]=Cr(()=>"true"===C(Ho),!1),ce=oe&&!!p?.url&&!ie,de=go(),[ue,he]=Cr(()=>S(C(_),window.innerWidth),!1),pe=$r(()=>{he(e=>(E(_,String(!e)),!e))},[he]),[fe,ge]=Cr(()=>I(T,gt,bt)??ft,ft),be=se&&!oe?ue?yt:fe:0,ye=te.taskbar_position||"bottom",xe=se?"top":ye,we=te.taskbar_size||"medium",ve=te.desktop_dblclick||"deactivate",ke="left"===xe||"right"===xe,Ne=se?vt+(ce?36:0):ke?0:"small"===we?36:"large"===we?56:44,Ce=ke?"small"===we?180:"large"===we?260:220:0,Se="small"===we?2:"large"===we?6:4,_e="small"===we?"h-9":"large"===we?"h-14":"h-11",Ee="small"===we?"w-[180px]":"large"===we?"w-[260px]":"w-[220px]",Te=!!te.reduce_transparency,Me=Te?1:(te.transparency_taskbar??70)/100,je=(te.transparency_start_menu??95)/100,Ie=(te.transparency_inactive_header??70)/100,Le=(te.transparency_inactive_content??80)/100,Pe=(te.transparency_active_header??80)/100,De=(te.transparency_active_content??90)/100;Rr(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",Te),e.style.setProperty("--inactive-header-opacity",String(Ie)),e.style.setProperty("--inactive-content-opacity",String(Le)),e.style.setProperty("--active-header-opacity",String(Pe)),e.style.setProperty("--active-content-opacity",String(De)),e.style.setProperty("--menu-opacity",String(je)),e.style.setProperty("--taskbar-height",`${Ne}px`),e.style.setProperty("--taskbar-width",`${Ce}px`),e.style.setProperty("--taskbar-position",xe),e.style.setProperty("--sidebar-width",`${be}px`),e.style.setProperty("--layout-mode",ae),"sidebar"===et.current&&"classic"===ae&&ze(),et.current=ae,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(xt)),e.style.setProperty("--default-window-size",te.default_window_size||"large"),e.style.setProperty("--window-position",te.window_position||"cascade"),e.style.setProperty("--menu-density",te.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[te.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)},[Te,Ie,Le,Pe,De,Ne,Ce,xe,te.default_window_size,te.window_position,te.menu_density,te.start_menu_size,be,ae]);const Re=Or(()=>{if(!g)return null;const e=Fe[g];if(!e||!Oe(e))return null;const t=e;return t.widget||t.utility?null:g},[g]),Ae=se?Re:null;Rr(()=>{Ve(Ae)},[Ae]),Rr(()=>()=>Ve(null),[]);const $e=!!Ae&&$.some(e=>"page"===e.type&&e.route===Ae);Rr(()=>{Ae&&!$e&&D(Ae,{background:!0,shellOwned:!0})},[Ae,$e,D]),Rr(()=>{se||$.filter(e=>e.shellOwned).forEach(e=>K(e.id))},[se,$,K]);const Be=Ye(),He=se?$.find(e=>e.id===Be)?.route??null:null,Ue=Or(()=>se?W(F(a,l,P),P,V.pageResult):null,[se,a,l,P,V.pageResult]),Ke=Or(()=>Ue?[Ue,...d?.providers??[]]:d?.providers,[Ue,d?.providers]),Xe=Or(()=>O(te.search_recent),[te.search_recent]),Ge=Or(()=>B(te.favorite_documents,V.pageResult),[te.favorite_documents,V.pageResult]),Je=$r(e=>re({search_recent:H(Xe,e)}),[Xe,re]),Qe="__react-os-shell:switch-to-sidebar",Ze=Or(()=>({...l,footerItems:[...l.footerItems??[],{to:Qe,label:V.switchToSidebar,onSelect:()=>de("sidebar")}]}),[l,V.switchToSidebar,de]),qe=Or(()=>({...s,[Qe]:/* @__PURE__ */Jr(dr,{name:"layout",className:"h-4 w-4",strokeWidth:1.5})}),[s]);Rr(()=>{document.documentElement.style.setProperty("--mobile-bottom-nav","0px")},[]);const et=Ar(ae),[tt,rt]=Dr(!1),[nt,ot]=Dr(!!document.fullscreenElement),[at,st]=Dr(null),[it,lt]=Dr(!1),ct=$r((e,t)=>{re({[e]:t})},[re]),dt=$r(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{}},[]);Rr(()=>{const e=()=>{ot(!!document.fullscreenElement),!document.fullscreenElement&&navigator.keyboard?.unlock&&navigator.keyboard.unlock()};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const wt=Ar(!1);Rr(()=>{if(!wt.current&&te.auto_fullscreen&&!document.fullscreenElement){wt.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})}},[te.auto_fullscreen]);const[kt,Nt]=Dr(!1),Ct=Ar(!1);Rr(()=>{if(Ct.current)return;Ct.current=!0;const e="erp_startup_shown";sessionStorage.getItem(e)||(sessionStorage.setItem(e,"1"),Nt(!0))},[]);const St=Ar(!1);Rr(()=>{!St.current&&kt&&(St.current=!0,setTimeout(()=>u(),500))},[kt]),Rr(()=>{const e=e=>{if((e.ctrlKey||e.metaKey)&&"."===e.key&&(e.preventDefault(),se&&!oe?pe():X(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,se,oe,pe]);const _t=$r(async()=>{const{confirm:e}=await(import("./shell/ConfirmDialog.js"));await e({title:V.signOutTitle,message:V.signOutMessage,confirmLabel:V.signOut,variant:"warning"})&&lt(!0)},[V]),Et=/* @__PURE__ */Gr(Qr,{children:[
286
- /* @__PURE__ */Jr(Ko,{}),m,c&&/* @__PURE__ */Jr(yn,{...c}),
285
+ /* @__PURE__ */Jr(dr,{name:"error",className:"h-3.5 w-3.5 text-gray-400 shrink-0",strokeWidth:1.5}),"Suggestion or Bug"]})]})]})}function Jo({branding:e,productName:t="efficient-shell",productIcon:r="/favicon.svg",wallpapers:n,navSections:a=mt,navIcons:s=ht,sectionIcons:i=pt,categories:l=ut,notifications:c,search:d,taskbarTrayLeft:m,clockCalendar:h,mobileApp:p,contextMenu:f=!0,home:g}={}){const b=e?.productName??t,y=e?.logo??r,x=e?.tagline,w=e?.adaptiveLogo??!1,v=e?.logoHasAlpha??null,k=e?.logoIsLight??null,M=lo(),{user:j,logout:L,hasAnyPerm:P}=N(),{openPage:D,openEntity:R,openWindows:$,remove:z}=We(),V=Tr().layout,[Y,G]=Dr(!1),J=or(),Q=j||{};Io(),X();const{favorites:q,toggle:Z,desktopBg:ee}=function(e){const{prefs:t,save:r}=Ht(),n=t.favorite_pages||[],o=$r(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:[],s=Ar(a.length>0?a[Math.floor(Math.random()*a.length)]:"none"),i=t.desktop_bg||(a.length>0?"random":"none"),l="random"===i?s.current:i,c=$r(e=>{r({desktop_bg:e})},[r]);return{favorites:n,toggle:o,isFavorite:e=>n.includes(e),desktopBg:l,setDesktopBg:c}}(n??M.wallpapers?.map(e=>e.src)),{url:te}=ho(ee),{prefs:re,save:ne}=Ht(),oe=ar(),ae=J?"sidebar":po(re),se="sidebar"===ae,[ie,le]=Cr(()=>"true"===C(Ho),!1),ce=oe&&!!p?.url&&!ie,de=go(),[ue,me]=Cr(()=>S(C(_),window.innerWidth),!1),pe=$r(()=>{me(e=>(E(_,String(!e)),!e))},[me]),[fe,ge]=Cr(()=>I(T,gt,bt)??ft,ft),be=se&&!oe?ue?yt:fe:0,ye=re.taskbar_position||"bottom",xe=se?"top":ye,we=re.taskbar_size||"medium",ve=re.desktop_dblclick||"deactivate",ke="left"===xe||"right"===xe,Ne=se?vt+(ce?36:0):ke?0:"small"===we?36:"large"===we?56:44,Ce=ke?"small"===we?180:"large"===we?260:220:0,Se="small"===we?2:"large"===we?6:4,_e="small"===we?"h-9":"large"===we?"h-14":"h-11",Ee="small"===we?"w-[180px]":"large"===we?"w-[260px]":"w-[220px]",Te=!!re.reduce_transparency,Me=Te?1:(re.transparency_taskbar??70)/100,je=(re.transparency_start_menu??95)/100,Ie=(re.transparency_inactive_header??70)/100,Le=(re.transparency_inactive_content??80)/100,Pe=(re.transparency_active_header??80)/100,De=(re.transparency_active_content??90)/100;Rr(()=>{const e=document.documentElement;e.classList.toggle("rosh-reduce-transparency",Te),e.style.setProperty("--inactive-header-opacity",String(Ie)),e.style.setProperty("--inactive-content-opacity",String(Le)),e.style.setProperty("--active-header-opacity",String(Pe)),e.style.setProperty("--active-content-opacity",String(De)),e.style.setProperty("--menu-opacity",String(je)),e.style.setProperty("--taskbar-height",`${Ne}px`),e.style.setProperty("--taskbar-width",`${Ce}px`),e.style.setProperty("--taskbar-position",xe),e.style.setProperty("--sidebar-width",`${be}px`),e.style.setProperty("--layout-mode",ae),"sidebar"===et.current&&"classic"===ae&&Ke(),et.current=ae,window.dispatchEvent(new CustomEvent("react-os-shell:layout-mode-changed")),window.dispatchEvent(new CustomEvent(xt)),e.style.setProperty("--default-window-size",re.default_window_size||"large"),e.style.setProperty("--window-position",re.window_position||"cascade"),e.style.setProperty("--menu-density",re.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[re.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)},[Te,Ie,Le,Pe,De,Ne,Ce,xe,re.default_window_size,re.window_position,re.menu_density,re.start_menu_size,be,ae]);const Re=Or(()=>{if(!g)return null;const e=Fe[g];if(!e||!Oe(e))return null;const t=e;return t.widget||t.utility?null:g},[g]),Ae=se?Re:null;Rr(()=>{Ve(Ae)},[Ae]),Rr(()=>()=>Ve(null),[]);const $e=!!Ae&&$.some(e=>"page"===e.type&&e.route===Ae);Rr(()=>{Ae&&!$e&&D(Ae,{background:!0,shellOwned:!0})},[Ae,$e,D]),Rr(()=>{se||$.filter(e=>e.shellOwned).forEach(e=>z(e.id))},[se,$,z]);const Be=Ye(),He=se?$.find(e=>e.id===Be)?.route??null:null,Ue=Or(()=>se?W(F(a,l,P),P,V.pageResult):null,[se,a,l,P,V.pageResult]),ze=Or(()=>Ue?[Ue,...d?.providers??[]]:d?.providers,[Ue,d?.providers]),Xe=Or(()=>O(re.search_recent),[re.search_recent]),Ge=Or(()=>B(re.favorite_documents,V.pageResult),[re.favorite_documents,V.pageResult]),Je=$r(e=>ne({search_recent:H(Xe,e)}),[Xe,ne]),Qe="__react-os-shell:switch-to-sidebar",qe=Or(()=>({...l,footerItems:[...l.footerItems??[],{to:Qe,label:V.switchToSidebar,onSelect:()=>de("sidebar")}]}),[l,V.switchToSidebar,de]),Ze=Or(()=>({...s,[Qe]:/* @__PURE__ */Jr(dr,{name:"layout",className:"h-4 w-4",strokeWidth:1.5})}),[s]);Rr(()=>{document.documentElement.style.setProperty("--mobile-bottom-nav","0px")},[]);const et=Ar(ae),[tt,rt]=Dr(!1),[nt,ot]=Dr(!!document.fullscreenElement),[at,st]=Dr(null),[it,lt]=Dr(!1),ct=$r((e,t)=>{ne({[e]:t})},[ne]),dt=$r(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{}},[]);Rr(()=>{const e=()=>{ot(!!document.fullscreenElement),!document.fullscreenElement&&navigator.keyboard?.unlock&&navigator.keyboard.unlock()};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);const wt=Ar(!1);Rr(()=>{if(!wt.current&&re.auto_fullscreen&&!document.fullscreenElement){wt.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})}},[re.auto_fullscreen]);const[kt,Nt]=Dr(!1),Ct=Ar(!1);Rr(()=>{if(Ct.current)return;Ct.current=!0;const e="erp_startup_shown";sessionStorage.getItem(e)||(sessionStorage.setItem(e,"1"),Nt(!0))},[]);const St=Ar(!1);Rr(()=>{!St.current&&kt&&(St.current=!0,setTimeout(()=>u(),500))},[kt]),Rr(()=>{const e=e=>{if((e.ctrlKey||e.metaKey)&&"."===e.key&&(e.preventDefault(),se&&!oe?pe():G(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,se,oe,pe]);const _t=$r(async()=>{const{confirm:e}=await(import("./shell/ConfirmDialog.js"));await e({title:V.signOutTitle,message:V.signOutMessage,confirmLabel:V.signOut,variant:"warning"})&&lt(!0)},[V]),Et=/* @__PURE__ */Gr(Qr,{children:[
286
+ /* @__PURE__ */Jr(zo,{}),m,c&&/* @__PURE__ */Jr(yn,{...c}),
287
287
  /* @__PURE__ */Jr(Vo,{clockCalendar:h})]});/* @__PURE__ */
288
288
  return Gr("div",{className:"flex flex-col h-screen",children:[
289
- /* @__PURE__ */Jr(Ro,{}),kt&&/* @__PURE__ */Jr(Lo,{onComplete:()=>Nt(!1),ready:!!J,productName:b,logo:y,subtitle:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k}),it&&/* @__PURE__ */Jr(Po,{onComplete:()=>{sessionStorage.removeItem("erp_startup_shown"),L()},logo:y,subtitle:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k}),!se&&/* @__PURE__ */Jr(Bo,{open:Y,onClose:()=>X(!1),openPage:e=>{D(e),X(!1)},openWindows:$,profile:J,user:j,onLogout:()=>lt(!0),onNavigate:e=>{D(e),X(!1)},taskbarPosition:xe,taskbarH:Ne,taskbarW:Ce,taskbarGap:Se,size:te.start_menu_size||"medium",navSections:a,navIcons:qe,sectionIcons:i,categories:Ze}),se&&!oe&&/* @__PURE__ */Gr(Qr,{children:[
290
- /* @__PURE__ */Jr(zr,{fallback:null,children:/* @__PURE__ */Jr(zo,{width:be,collapsed:ue,onToggleCollapsed:pe,onResize:ge,onHome:Ae?()=>D(Ae,{reuse:!0}):void 0,onOpen:(e,t)=>D(e,t?void 0:{reuse:!0}),activeRoute:He,profile:J,user:j,onLogout:()=>{_t()},onSwitchToDesktop:G?void 0:()=>de("classic"),onReportBug:M.onReportBug,navSections:a,navIcons:s,sectionIcons:i,categories:l,productName:b,productIcon:y,tagline:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k})}),
291
- /* @__PURE__ */Jr(Eo,{left:be,navIcons:s,home:Ae,favorites:Q,navSections:a,onOpenFavorite:e=>D(e,{reuse:!0}),onToggleFavorite:Z,end:/* @__PURE__ */Jr("div",{className:"flex items-center gap-2",children:Et})})]}),se&&oe&&/* @__PURE__ */Jr(Uo,{home:Ae,navIcons:s,end:c?/* @__PURE__ */Jr(yn,{...c}):void 0,banner:ce&&p?.url?{text:p.heading??V.getTheApp(b),href:p.url,cta:p.ctaLabel??V.openApp,onDismiss:()=>{E(Ho,"true"),le(!0)}}:null,renderMenu:e=>/* @__PURE__ */Jr(zr,{fallback:null,children:/* @__PURE__ */Jr(zo,{width:Math.min(300,Math.round(.85*window.innerWidth)),collapsed:!1,onToggleCollapsed:e,onClose:e,onOpen:(t,r)=>{D(t,r?void 0:{reuse:!0}),e()},activeRoute:He,profile:J,user:j,onLogout:()=>{e(),_t()},onReportBug:M.onReportBug?()=>{e(),M.onReportBug?.()}:void 0,navSections:a,navIcons:s,sectionIcons:i,categories:l,productName:b,productIcon:y,tagline:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k})})}),(()=>{const e=se?"none":q,t=o(e,ee),r={backgroundColor:e?.startsWith("#")?e:"none"===e?(()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--custom-bg-color")?.trim();if(e)return e;return{light:"#f3f4f6",dark:"#1e1e2e",pink:"#fdf2f8",green:"#f0fdf4",grey:"#d1d5db",blue:"#eff6ff"}[document.documentElement.getAttribute("data-theme")||"light"]||"#f3f4f6"})():"#1a1a2e",backgroundImage:t?`url(${t})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"};/* @__PURE__ */
289
+ /* @__PURE__ */Jr(Ro,{}),kt&&/* @__PURE__ */Jr(Lo,{onComplete:()=>Nt(!1),ready:!!Q,productName:b,logo:y,subtitle:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k}),it&&/* @__PURE__ */Jr(Po,{onComplete:()=>{sessionStorage.removeItem("erp_startup_shown"),L()},logo:y,subtitle:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k}),!se&&/* @__PURE__ */Jr(Bo,{open:Y,onClose:()=>G(!1),openPage:e=>{D(e),G(!1)},openWindows:$,profile:Q,user:j,onLogout:()=>lt(!0),onNavigate:e=>{D(e),G(!1)},taskbarPosition:xe,taskbarH:Ne,taskbarW:Ce,taskbarGap:Se,size:re.start_menu_size||"medium",navSections:a,navIcons:Ze,sectionIcons:i,categories:qe}),se&&!oe&&/* @__PURE__ */Gr(Qr,{children:[
290
+ /* @__PURE__ */Jr(Kr,{fallback:null,children:/* @__PURE__ */Jr(Ko,{width:be,collapsed:ue,onToggleCollapsed:pe,onResize:ge,onHome:Ae?()=>D(Ae,{reuse:!0}):void 0,onOpen:(e,t)=>D(e,t?void 0:{reuse:!0}),activeRoute:He,profile:Q,user:j,onLogout:()=>{_t()},onSwitchToDesktop:J?void 0:()=>de("classic"),onReportBug:M.onReportBug,navSections:a,navIcons:s,sectionIcons:i,categories:l,productName:b,productIcon:y,tagline:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k})}),
291
+ /* @__PURE__ */Jr(Eo,{left:be,navIcons:s,home:Ae,favorites:q,navSections:a,onOpenFavorite:e=>D(e,{reuse:!0}),onToggleFavorite:Z,end:/* @__PURE__ */Jr("div",{className:"flex items-center gap-2",children:Et})})]}),se&&oe&&/* @__PURE__ */Jr(Uo,{home:Ae,navIcons:s,end:c?/* @__PURE__ */Jr(yn,{...c}):void 0,banner:ce&&p?.url?{text:p.heading??V.getTheApp(b),href:p.url,cta:p.ctaLabel??V.openApp,onDismiss:()=>{E(Ho,"true"),le(!0)}}:null,renderMenu:e=>/* @__PURE__ */Jr(Kr,{fallback:null,children:/* @__PURE__ */Jr(Ko,{width:Math.min(300,Math.round(.85*window.innerWidth)),collapsed:!1,onToggleCollapsed:e,onClose:e,onOpen:(t,r)=>{D(t,r?void 0:{reuse:!0}),e()},activeRoute:He,profile:Q,user:j,onLogout:()=>{e(),_t()},onReportBug:M.onReportBug?()=>{e(),M.onReportBug?.()}:void 0,navSections:a,navIcons:s,sectionIcons:i,categories:l,productName:b,productIcon:y,tagline:x,adaptiveLogo:w,logoHasAlpha:v,logoIsLight:k})})}),(()=>{const e=se?"none":ee,t=o(e,te),r={backgroundColor:e?.startsWith("#")?e:"none"===e?(()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--custom-bg-color")?.trim();if(e)return e;return{light:"#f3f4f6",dark:"#1e1e2e",pink:"#fdf2f8",green:"#f0fdf4",grey:"#d1d5db",blue:"#eff6ff"}[document.documentElement.getAttribute("data-theme")||"light"]||"#f3f4f6"})():"#1a1a2e",backgroundImage:t?`url(${t})`:"none",backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"};/* @__PURE__ */
292
292
  return Gr(Qr,{children:[
293
- /* @__PURE__ */Jr("div",{className:"flex flex-1 min-h-0",style:se?{paddingLeft:be,paddingTop:Ne}:void 0,children:/* @__PURE__ */Jr("main",{className:"flex-1 flex flex-col overflow-hidden cursor-default",onDoubleClick:()=>{"deactivate"===ve&&(X(!1),window.dispatchEvent(new CustomEvent("deactivate-all-modals")))},style:r,children:/* @__PURE__ */Jr(uo,{profile:J})})}),!se&&/* @__PURE__ */Gr("div",{className:"flex backdrop-blur-sm border-gray-200 z-(--z-taskbar) fixed "+(ke?`flex-col items-center ${Ee} py-3 gap-2 top-0 bottom-0 ${"left"===xe?"left-0 border-r":"right-0 border-l"}`:`items-center ${_e} px-3 gap-2 right-0 ${"top"===xe?"top-0 border-b":"bottom-0 border-t"}`),style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${Me})`,...ke?{}:{left:0}},"data-taskbar-dropzone":!0,onContextMenu:e=>{e.preventDefault(),st({x:e.clientX,y:e.clientY})},children:[
293
+ /* @__PURE__ */Jr("div",{className:"flex flex-1 min-h-0",style:se?{paddingLeft:be,paddingTop:Ne}:void 0,children:/* @__PURE__ */Jr("main",{className:"flex-1 flex flex-col overflow-hidden cursor-default",onDoubleClick:()=>{"deactivate"===ve&&(G(!1),window.dispatchEvent(new CustomEvent("deactivate-all-modals")))},style:r,children:/* @__PURE__ */Jr(uo,{profile:Q,showItems:!se})})}),!se&&/* @__PURE__ */Gr("div",{className:"flex backdrop-blur-sm border-gray-200 z-(--z-taskbar) fixed "+(ke?`flex-col items-center ${Ee} py-3 gap-2 top-0 bottom-0 ${"left"===xe?"left-0 border-r":"right-0 border-l"}`:`items-center ${_e} px-3 gap-2 right-0 ${"top"===xe?"top-0 border-b":"bottom-0 border-t"}`),style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${Me})`,...ke?{}:{left:0}},"data-taskbar-dropzone":!0,onContextMenu:e=>{e.preventDefault(),st({x:e.clientX,y:e.clientY})},children:[
294
294
  /* @__PURE__ */Gr("div",{className:"relative shrink-0",children:[0===$.length&&!Y&&!tt&&/* @__PURE__ */Gr("div",{className:"absolute left-1/2 -translate-x-1/2 whitespace-nowrap text-white text-2xs font-medium pl-3 pr-2 py-1 rounded-full shadow-lg animate-bounce flex items-center gap-1 "+("top"===xe?"top-full mt-2":"-top-8"),style:{backgroundColor:"var(--accent-600, #7c3aed)"},children:["Click here to start",
295
295
  /* @__PURE__ */Jr("button",{onClick:e=>{e.stopPropagation(),rt(!0)},className:"text-white/60 hover:text-white ml-2",children:/* @__PURE__ */Jr(dr,{name:"close",className:"h-3 w-3",strokeWidth:2.5})}),
296
296
  /* @__PURE__ */Jr("div",{className:"absolute left-1/2 -translate-x-1/2 border-[6px] border-transparent "+("top"===xe?"bottom-full border-b-[var(--accent-color,#7c3aed)]":"top-full border-t-[var(--accent-color,#7c3aed)]"),style:"top"===xe?{borderBottomColor:"var(--accent-600, #7c3aed)"}:{borderTopColor:"var(--accent-600, #7c3aed)"}})]}),
297
- /* @__PURE__ */Gr("button",{"data-menu-toggle":!0,onClick:()=>X(e=>!e),title:Y?"Close menu":"Open menu",className:`group/erp relative flex items-center justify-center gap-2 rounded-lg px-4 h-8 text-xs font-medium border overflow-hidden transition-all ${ke?"w-full":"min-w-[140px]"} ${Y?"bg-gray-200/40 border-gray-300/40 text-gray-800":"bg-gray-50/40 border-gray-200/40 text-gray-600 hover:text-gray-800"}`,style:{transition:"box-shadow 0.3s, border-color 0.3s"},onMouseMove:e=>{const t=e.currentTarget.getBoundingClientRect();e.currentTarget.style.setProperty("--mx",e.clientX-t.left+"px"),e.currentTarget.style.setProperty("--my",e.clientY-t.top+"px")},onMouseEnter:e=>{e.currentTarget.style.boxShadow="0 0 15px rgba(255,255,255,0.2), 0 0 30px rgba(255,255,255,0.1)",e.currentTarget.style.borderColor="rgba(255,255,255,0.4)"},onMouseLeave:e=>{e.currentTarget.style.boxShadow="",e.currentTarget.style.borderColor=""},children:[
298
- /* @__PURE__ */Jr("span",{className:"absolute inset-0 opacity-0 group-hover/erp:opacity-100 transition-opacity duration-200 pointer-events-none",style:{background:"radial-gradient(circle 60px at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.25) 0%, transparent 100%)"}}),y&&/* @__PURE__ */Jr(me,{src:y,alt:"",slot:"compact",surface:"light",adaptive:w,hasAlpha:v,isLight:k,size:14,decorative:!0,className:"relative z-10 opacity-60"}),
297
+ /* @__PURE__ */Gr("button",{"data-menu-toggle":!0,onClick:()=>G(e=>!e),title:Y?"Close menu":"Open menu",className:`group/erp relative flex items-center justify-center gap-2 rounded-lg px-4 h-8 text-xs font-medium border overflow-hidden transition-all ${ke?"w-full":"min-w-[140px]"} ${Y?"bg-gray-200/40 border-gray-300/40 text-gray-800":"bg-gray-50/40 border-gray-200/40 text-gray-600 hover:text-gray-800"}`,style:{transition:"box-shadow 0.3s, border-color 0.3s"},onMouseMove:e=>{const t=e.currentTarget.getBoundingClientRect();e.currentTarget.style.setProperty("--mx",e.clientX-t.left+"px"),e.currentTarget.style.setProperty("--my",e.clientY-t.top+"px")},onMouseEnter:e=>{e.currentTarget.style.boxShadow="0 0 15px rgba(255,255,255,0.2), 0 0 30px rgba(255,255,255,0.1)",e.currentTarget.style.borderColor="rgba(255,255,255,0.4)"},onMouseLeave:e=>{e.currentTarget.style.boxShadow="",e.currentTarget.style.borderColor=""},children:[
298
+ /* @__PURE__ */Jr("span",{className:"absolute inset-0 opacity-0 group-hover/erp:opacity-100 transition-opacity duration-200 pointer-events-none",style:{background:"radial-gradient(circle 60px at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.25) 0%, transparent 100%)"}}),y&&/* @__PURE__ */Jr(he,{src:y,alt:"",slot:"compact",surface:"light",adaptive:w,hasAlpha:v,isLight:k,size:14,decorative:!0,className:"relative z-10 opacity-60"}),
299
299
  /* @__PURE__ */Jr("span",{className:"relative z-10 truncate",children:b})]})]}),
300
- /* @__PURE__ */Jr(xo,{favorites:Q,vertical:ke,taskbarPosition:xe,navSections:a,navIcons:s,onOpen:e=>D(e),onToggleFavorite:Z}),
300
+ /* @__PURE__ */Jr(xo,{favorites:q,vertical:ke,taskbarPosition:xe,navSections:a,navIcons:s,onOpen:e=>D(e),onToggleFavorite:Z}),
301
301
  /* @__PURE__ */Jr("div",{className:ke?"h-px w-6 bg-gray-300 my-1":"w-px h-6 bg-gray-300 mx-1"}),
302
302
  /* @__PURE__ */Jr("div",{id:"taskbar-windows",className:"flex-1 flex "+(ke?"flex-col items-center gap-1 min-h-0 overflow-y-auto w-full":"items-center gap-2 min-w-0 overflow-x-auto")}),
303
303
  /* @__PURE__ */Jr("div",{className:ke?"h-px w-6 bg-gray-300 my-1":"w-px h-6 bg-gray-300 mx-1"}),ke?
304
304
  /* @__PURE__ */Jr("div",{className:"w-full px-2",children:/* @__PURE__ */Gr("div",{className:"flex items-center justify-center gap-2 "+("right"===xe?"flex-row-reverse":""),children:[
305
305
  /* @__PURE__ */Jr(Vo,{clockCalendar:h}),
306
- /* @__PURE__ */Jr(Ko,{}),m,c&&/* @__PURE__ */Jr(yn,{...c,popDirection:"right"===xe?"left":"right"})]})}):Et]})]})})(),at&&/* @__PURE__ */Jr(Go,{x:at.x,y:at.y,position:xe,size:we,onChangePosition:e=>{ct("taskbar_position",e),st(null)},onChangeSize:e=>{ct("taskbar_size",e),st(null)},onClose:()=>st(null),onReportBug:M.onReportBug,onSwitchLayout:()=>de("sidebar"),switchLayoutLabel:V.switchToSidebar}),
307
- /* @__PURE__ */Jr(A,{...d,providers:Ke,recent:Xe,favorites:Ge,onRecord:Je,onSelect:e=>{if(e.entity_type===U){const{path:t,search:r}=z(e.entity_id),n=Ue?.destinations.find(e=>e.to===t);return void(n?.onSelect?n.onSelect():D(t,r?{search:r}:{reuse:!0}))}R(e.entity_type,e.entity_id,void 0,e.label)}}),
306
+ /* @__PURE__ */Jr(zo,{}),m,c&&/* @__PURE__ */Jr(yn,{...c,popDirection:"right"===xe?"left":"right"})]})}):Et]})]})})(),at&&/* @__PURE__ */Jr(Go,{x:at.x,y:at.y,position:xe,size:we,onChangePosition:e=>{ct("taskbar_position",e),st(null)},onChangeSize:e=>{ct("taskbar_size",e),st(null)},onClose:()=>st(null),onReportBug:M.onReportBug,onSwitchLayout:()=>de("sidebar"),switchLayoutLabel:V.switchToSidebar}),
307
+ /* @__PURE__ */Jr(A,{...d,providers:ze,recent:Xe,favorites:Ge,onRecord:Je,onSelect:e=>{if(e.entity_type===U){const{path:t,search:r}=K(e.entity_id),n=Ue?.destinations.find(e=>e.to===t);return void(n?.onSelect?n.onSelect():D(t,r?{search:r}:{reuse:!0}))}R(e.entity_type,e.entity_id,void 0,e.label)}}),
308
308
  /* @__PURE__ */Jr(cn,{}),
309
309
  /* @__PURE__ */Jr(gn,{disabled:!f})]})}function Qo({children:e}){/* @__PURE__ */
310
310
  return Gr("p",{"data-desktop-only-note":!0,className:"flex items-start gap-2 rounded-lg bg-gray-50 px-3 py-2 text-xs text-gray-500",children:[
311
311
  /* @__PURE__ */Jr(dr,{name:"info",className:"h-4 w-4 shrink-0"}),
312
- /* @__PURE__ */Jr("span",{children:e})]})}function Zo(e){return`New window position, default window size and double-clicking the desktop belong to the ${e.desktop} layout. In the ${e.sidebar} layout every window opens full-size.`}var qo=[{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]"}],ea=["add","edit","trash","search","download","settings","bell","warning"],ta=["search","bell","trash"],ra={square:0,soft:4,round:10},na=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],oa={field:"accent_color",set:!0},aa={not:{context:"layout",is:"sidebar"}},sa={context:"layout",is:"sidebar"},ia=[];function la(){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 ca(e,t,r,n,o,a,s){return"dark"===e?r:"pink"===e?n:"green"===e?o:"grey"===e?a??t:"blue"===e?s??t:t}function da({omit:e,section:t}={}){Io();const r=new Set(e??[]),n=e=>void 0===t||t===e,c=lo(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:ia,{prefs:u,save:m}=or(),[h,p]=Dr({}),f=e=>e in h?h[e]:u[e];Rr(()=>{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 g=["theme","accent_color","custom_bg_color","custom_title_color","custom_window_color","custom_button_color","corners","icon_set"],b=e=>{const t={...e};for(const e of g)e in t||(t[e]=f(e));ie(t),p(t=>({...t,...e})),m(e)};Pr(hr,pr,pr),Rr(()=>{le.forEach(e=>{ce(e.name)})},[]);const y=new Set(le.map(e=>e.name)),x=fr().filter(e=>!y.has(e.name)),w=[...x.length>0?x:[{name:"",label:"Efficient"}],...le],v=e=>de[e]??null,k=e=>{return"custom"===e?"Any icons":v(e)?(t=v(e))&&w.find(e=>e.name===t)?.label||"":"System";var t},N=f("theme")||"system",C=oe(N),S=u.desktop_bg||(d.length>0?"random":"none"),_=Ar(d.length>0?d[Math.floor(Math.random()*d.length)].src:"none"),E="random"===S?_.current:S,T=u.desktop_bg_custom||"",M=E?.startsWith("#"),j=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),I=!M&&"none"!==E&&"random"!==S&&E&&!j.has(E),{url:L,refresh:P}=ho(E,T),D=o(E,L),R=o(E===a?E:T||E,L),[A,$]=Dr(null),[W,F]=Dr(!1),[O,B]=Dr(null),H=(e,t)=>{m({[e]:t})},U=Tr().layout,{layout:z,forced:K}=fo(),V=go(),Y=!!f("reduce_transparency"),[X,J]=Dr({}),Q=Ar({}),Z=$r((e,t)=>{J(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)),Q.current[e]&&clearTimeout(Q.current[e]),Q.current[e]=setTimeout(()=>{H(e,t),J(t=>{const r={...t};return delete r[e],r})},300)},[H]);Rr(()=>()=>{Object.values(Q.current).forEach(clearTimeout)},[]);const q=(u.transparency_taskbar??70)/100,ee=(u.transparency_active_header??80)/100,te=(u.transparency_active_content??90)/100,re=ca(C,"bg-white/90","bg-[#1e1e2e]/90","bg-pink-50/90","bg-green-50/90","bg-gray-200/90","bg-blue-50/90"),ne=ca(C,"bg-gray-200","bg-[#313244]","bg-pink-200","bg-green-200","bg-gray-400","bg-blue-200"),ue=ca(C,"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"),me=ca(C,"bg-gray-100","bg-[#313244]","bg-pink-50","bg-green-50","bg-gray-300","bg-blue-100"),fe=ca(C,"bg-blue-600","bg-blue-500","bg-pink-600","bg-green-600","bg-gray-700","bg-blue-700"),ge="sidebar"===z,be={values:{...u,...h},context:{layout:z}},ye=f("accent_color")?f("custom_bg_color")||"#f3f4f6":ca(C,"#f3f4f6","#1e1e2e","#fdf2f8","#f0fdf4","#d1d5db","#eff6ff");/* @__PURE__ */
312
+ /* @__PURE__ */Jr("span",{children:e})]})}function qo(e){return`New window position, default window size and double-clicking the desktop belong to the ${e.desktop} layout. In the ${e.sidebar} layout every window opens full-size.`}var Zo=[{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]"}],ea=["add","edit","trash","search","download","settings","bell","warning"],ta=["search","bell","trash"],ra={square:0,soft:4,round:10},na=[{value:"square",label:"Square"},{value:"soft",label:"Soft"},{value:"round",label:"Round"}],oa={field:"accent_color",set:!0},aa={not:{context:"layout",is:"sidebar"}},sa={context:"layout",is:"sidebar"},ia=[];function la(){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 ca(e,t,r,n,o,a,s){return"dark"===e?r:"pink"===e?n:"green"===e?o:"grey"===e?a??t:"blue"===e?s??t:t}function da({omit:e,section:t}={}){Io();const r=new Set(e??[]),n=e=>void 0===t||t===e,c=lo(),d=c.wallpapers&&c.wallpapers.length>0?c.wallpapers:ia,{prefs:u,save:m}=Ht(),[h,p]=Dr({}),f=e=>e in h?h[e]:u[e];Rr(()=>{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 g=["theme","accent_color","custom_bg_color","custom_title_color","custom_window_color","custom_button_color","corners","icon_set"],b=e=>{const t={...e};for(const e of g)e in t||(t[e]=f(e));q(t),p(t=>({...t,...e})),m(e)};Pr(hr,pr,pr),Rr(()=>{Z.forEach(e=>{ee(e.name)})},[]);const y=new Set(Z.map(e=>e.name)),x=fr().filter(e=>!y.has(e.name)),w=[...x.length>0?x:[{name:"",label:"Efficient"}],...Z],v=e=>te[e]??null,k=e=>{return"custom"===e?"Any icons":v(e)?(t=v(e))&&w.find(e=>e.name===t)?.label||"":"System";var t},N=f("theme")||"system",C=G(N),S=u.desktop_bg||(d.length>0?"random":"none"),_=Ar(d.length>0?d[Math.floor(Math.random()*d.length)].src:"none"),E="random"===S?_.current:S,T=u.desktop_bg_custom||"",M=E?.startsWith("#"),j=/* @__PURE__ */new Set([...d.map(e=>e.src),"random"]),I=!M&&"none"!==E&&"random"!==S&&E&&!j.has(E),{url:L,refresh:P}=ho(E,T),D=o(E,L),R=o(E===a?E:T||E,L),[A,$]=Dr(null),[W,F]=Dr(!1),[O,B]=Dr(null),H=(e,t)=>{m({[e]:t})},U=Tr().layout,{layout:K,forced:z}=fo(),V=go(),Y=!!f("reduce_transparency"),[X,ne]=Dr({}),oe=Ar({}),ae=$r((e,t)=>{ne(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)),oe.current[e]&&clearTimeout(oe.current[e]),oe.current[e]=setTimeout(()=>{H(e,t),ne(t=>{const r={...t};return delete r[e],r})},300)},[H]);Rr(()=>()=>{Object.values(oe.current).forEach(clearTimeout)},[]);const se=(u.transparency_taskbar??70)/100,ie=(u.transparency_active_header??80)/100,le=(u.transparency_active_content??90)/100,ce=ca(C,"bg-white/90","bg-[#1e1e2e]/90","bg-pink-50/90","bg-green-50/90","bg-gray-200/90","bg-blue-50/90"),de=ca(C,"bg-gray-200","bg-[#313244]","bg-pink-200","bg-green-200","bg-gray-400","bg-blue-200"),he=ca(C,"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"),pe=ca(C,"bg-gray-100","bg-[#313244]","bg-pink-50","bg-green-50","bg-gray-300","bg-blue-100"),fe=ca(C,"bg-blue-600","bg-blue-500","bg-pink-600","bg-green-600","bg-gray-700","bg-blue-700"),ge="sidebar"===K,be={values:{...u,...h},context:{layout:K}},ye=f("accent_color")?f("custom_bg_color")||"#f3f4f6":ca(C,"#f3f4f6","#1e1e2e","#fdf2f8","#f0fdf4","#d1d5db","#eff6ff");/* @__PURE__ */
313
313
  return Gr("div",{className:"space-y-6",children:[n("layout")&&/* @__PURE__ */Gr("div",{children:[
314
314
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-1",children:"Layout Mode"}),
315
315
  /* @__PURE__ */Jr("p",{className:"text-xs text-gray-500 mb-3",children:"Switch whenever you like — the windows you have open carry over. The settings below change to match the layout you pick."}),
316
- /* @__PURE__ */Jr("div",{className:"mx-auto grid grid-cols-2 gap-3 max-w-xl",children:[{key:"classic",label:U.desktop,note:"Windows you move, resize and stack, with a Start menu and a taskbar."},{key:"sidebar",label:U.sidebar,note:"The menu down the left, every window a full-size tab along the top."}].map(e=>{const t=K&&"classic"===e.key;/* @__PURE__ */
317
- return Gr("button",{type:"button",disabled:t,onClick:()=>V(e.key),"aria-pressed":z===e.key,className:"flex flex-col gap-2 rounded-lg border-2 p-2 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-50 "+(z===e.key?"border-blue-500":"border-gray-200 hover:border-gray-300"),children:[
316
+ /* @__PURE__ */Jr("div",{className:"mx-auto grid grid-cols-2 gap-3 max-w-xl",children:[{key:"classic",label:U.desktop,note:"Windows you move, resize and stack, with a Start menu and a taskbar."},{key:"sidebar",label:U.sidebar,note:"The menu down the left, every window a full-size tab along the top."}].map(e=>{const t=z&&"classic"===e.key;/* @__PURE__ */
317
+ return Gr("button",{type:"button",disabled:t,onClick:()=>V(e.key),"aria-pressed":K===e.key,className:"flex flex-col gap-2 rounded-lg border-2 p-2 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-50 "+(K===e.key?"border-blue-500":"border-gray-200 hover:border-gray-300"),children:[
318
318
  /* @__PURE__ */Jr(ua,{layout:e.key}),
319
319
  /* @__PURE__ */Gr("span",{children:[
320
- /* @__PURE__ */Jr("span",{className:"block text-sm font-medium "+(z===e.key?"text-blue-600":"text-gray-900"),children:e.label}),
321
- /* @__PURE__ */Jr("span",{className:"block text-xs text-gray-500",children:t?U.largerScreensOnly:K?U.usedOnThisDevice:e.note})]})]},e.key)})}),K&&/* @__PURE__ */Jr("div",{className:"mx-auto mt-3 max-w-xl",children:/* @__PURE__ */Jr(Qo,{children:U.deviceUsesSidebar})})]}),n("appearance")&&/* @__PURE__ */Gr(Qr,{children:[
322
- /* @__PURE__ */Jr("div",{className:"flex justify-center",children:/* @__PURE__ */Jr("div",{"data-layout-preview":z,className:"rounded-lg border border-gray-200 overflow-hidden",style:{width:480},children:/* @__PURE__ */Jr("div",{className:"relative",style:{height:300},children:/* @__PURE__ */Gr(Qr,ge?{children:[
320
+ /* @__PURE__ */Jr("span",{className:"block text-sm font-medium "+(K===e.key?"text-blue-600":"text-gray-900"),children:e.label}),
321
+ /* @__PURE__ */Jr("span",{className:"block text-xs text-gray-500",children:t?U.largerScreensOnly:z?U.usedOnThisDevice:e.note})]})]},e.key)})}),z&&/* @__PURE__ */Jr("div",{className:"mx-auto mt-3 max-w-xl",children:/* @__PURE__ */Jr(Qo,{children:U.deviceUsesSidebar})})]}),n("appearance")&&/* @__PURE__ */Gr(Qr,{children:[
322
+ /* @__PURE__ */Jr("div",{className:"flex justify-center",children:/* @__PURE__ */Jr("div",{"data-layout-preview":K,className:"rounded-lg border border-gray-200 overflow-hidden",style:{width:480},children:/* @__PURE__ */Jr("div",{className:"relative",style:{height:300},children:/* @__PURE__ */Gr(Qr,ge?{children:[
323
323
  /* @__PURE__ */Jr("div",{className:"absolute inset-0",style:{backgroundColor:ye}}),
324
- /* @__PURE__ */Gr("div",{className:`absolute left-0 top-0 bottom-0 w-24 ${ue} border-y-0 border-l-0 flex flex-col gap-2 p-2`,children:[
325
- /* @__PURE__ */Jr("div",{className:`h-3 rounded-sm border border-gray-200 ${me} mb-1`}),
324
+ /* @__PURE__ */Gr("div",{className:`absolute left-0 top-0 bottom-0 w-24 ${he} border-y-0 border-l-0 flex flex-col gap-2 p-2`,children:[
325
+ /* @__PURE__ */Jr("div",{className:`h-3 rounded-sm border border-gray-200 ${pe} mb-1`}),
326
326
  /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-3/4 ${fe}`}),
327
- /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-2/3 ${ne}`}),
328
- /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-4/5 ${ne}`}),
329
- /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-1/2 ${ne}`}),
327
+ /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-2/3 ${de}`}),
328
+ /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-4/5 ${de}`}),
329
+ /* @__PURE__ */Jr("div",{className:`h-2 rounded-sm w-1/2 ${de}`}),
330
330
  /* @__PURE__ */Jr("div",{className:`mt-auto h-4 w-4 rounded-full ${fe}`})]}),
331
- /* @__PURE__ */Gr("div",{className:`absolute left-24 right-0 top-0 h-5 ${me} flex items-end gap-1 px-2`,children:[
332
- /* @__PURE__ */Jr("div",{className:`h-4 w-16 rounded-t ${ue} border-b-0`}),
333
- /* @__PURE__ */Jr("div",{className:`h-3 w-12 rounded-t ${ne}`})]}),
334
- /* @__PURE__ */Jr("div",{className:`absolute rounded ${ue}`,style:{left:"calc(6rem + 8px)",right:8,top:28,bottom:8},children:/* @__PURE__ */Gr("div",{className:"p-3 space-y-2",children:[
335
- /* @__PURE__ */Jr("div",{className:`h-1.5 rounded w-1/3 ${ne}`}),
336
- /* @__PURE__ */Jr("div",{className:`h-1 rounded w-3/4 ${ne}`}),
337
- /* @__PURE__ */Jr("div",{className:`h-1 rounded w-2/3 ${ne}`}),
338
- /* @__PURE__ */Jr("div",{className:`h-1 rounded w-1/2 ${ne}`})]})})]}:{children:[M?/* @__PURE__ */Jr("div",{className:"absolute inset-0",style:{backgroundColor:E}}):/* @__PURE__ */Jr("img",{src:D,alt:"",className:"absolute inset-0 w-full h-full object-cover"}),
339
- /* @__PURE__ */Gr("div",{className:`absolute left-0 right-0 bottom-0 h-4 ${re} border-t border-gray-200/50 flex items-center px-2 gap-1`,style:{opacity:q},children:[
331
+ /* @__PURE__ */Gr("div",{className:`absolute left-24 right-0 top-0 h-5 ${pe} flex items-end gap-1 px-2`,children:[
332
+ /* @__PURE__ */Jr("div",{className:`h-4 w-16 rounded-t ${he} border-b-0`}),
333
+ /* @__PURE__ */Jr("div",{className:`h-3 w-12 rounded-t ${de}`})]}),
334
+ /* @__PURE__ */Jr("div",{className:`absolute rounded ${he}`,style:{left:"calc(6rem + 8px)",right:8,top:28,bottom:8},children:/* @__PURE__ */Gr("div",{className:"p-3 space-y-2",children:[
335
+ /* @__PURE__ */Jr("div",{className:`h-1.5 rounded w-1/3 ${de}`}),
336
+ /* @__PURE__ */Jr("div",{className:`h-1 rounded w-3/4 ${de}`}),
337
+ /* @__PURE__ */Jr("div",{className:`h-1 rounded w-2/3 ${de}`}),
338
+ /* @__PURE__ */Jr("div",{className:`h-1 rounded w-1/2 ${de}`})]})})]}:{children:[M?/* @__PURE__ */Jr("div",{className:"absolute inset-0",style:{backgroundColor:E}}):/* @__PURE__ */Jr("img",{src:D,alt:"",className:"absolute inset-0 w-full h-full object-cover"}),
339
+ /* @__PURE__ */Gr("div",{className:`absolute left-0 right-0 bottom-0 h-4 ${ce} border-t border-gray-200/50 flex items-center px-2 gap-1`,style:{opacity:se},children:[
340
340
  /* @__PURE__ */Jr("div",{className:`h-2 w-8 rounded-sm ${fe}`}),
341
- /* @__PURE__ */Jr("div",{className:`h-2 w-6 rounded-sm ${ne}`})]}),
341
+ /* @__PURE__ */Jr("div",{className:`h-2 w-6 rounded-sm ${de}`})]}),
342
342
  /* @__PURE__ */Jr("div",{className:"absolute left-4 top-4 flex gap-4",children:[{icon:"📋",label:"Orders"},{icon:"📦",label:"Products"},{icon:"📊",label:"Reports"}].map(e=>/* @__PURE__ */Gr("div",{className:"flex flex-col items-center gap-0.5 w-8",children:[
343
343
  /* @__PURE__ */Jr("div",{className:"text-sm drop-shadow",children:e.icon}),
344
344
  /* @__PURE__ */Jr("span",{className:"text-[5px] text-white font-medium drop-shadow-[0_1px_1px_rgba(0,0,0,0.8)] leading-tight",children:e.label})]},e.label))}),
345
- /* @__PURE__ */Gr("div",{className:`absolute rounded shadow-(--elevation-panel) ${ue}`,style:{left:"35%",top:"20%",width:"55%",height:"55%"},children:[
346
- /* @__PURE__ */Gr("div",{className:`h-3 rounded-t ${me} flex items-center px-2 gap-0.5`,style:{opacity:ee},children:[
345
+ /* @__PURE__ */Gr("div",{className:`absolute rounded shadow-(--elevation-panel) ${he}`,style:{left:"35%",top:"20%",width:"55%",height:"55%"},children:[
346
+ /* @__PURE__ */Gr("div",{className:`h-3 rounded-t ${pe} flex items-center px-2 gap-0.5`,style:{opacity:ie},children:[
347
347
  /* @__PURE__ */Jr("div",{className:"w-1 h-1 rounded-full bg-red-400"}),
348
348
  /* @__PURE__ */Jr("div",{className:"w-1 h-1 rounded-full bg-yellow-400"}),
349
349
  /* @__PURE__ */Jr("div",{className:"w-1 h-1 rounded-full bg-green-400"})]}),
350
- /* @__PURE__ */Gr("div",{className:"p-2 space-y-1",style:{opacity:te},children:[
351
- /* @__PURE__ */Jr("div",{className:`h-1 rounded w-3/4 ${ne}`}),
352
- /* @__PURE__ */Jr("div",{className:`h-1 rounded w-1/2 ${ne}`})]})]})]})})})}),
350
+ /* @__PURE__ */Gr("div",{className:"p-2 space-y-1",style:{opacity:le},children:[
351
+ /* @__PURE__ */Jr("div",{className:`h-1 rounded w-3/4 ${de}`}),
352
+ /* @__PURE__ */Jr("div",{className:`h-1 rounded w-1/2 ${de}`})]})]})]})})})}),
353
353
  /* @__PURE__ */Gr("div",{children:[
354
354
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Theme"}),
355
- /* @__PURE__ */Jr("div",{className:"flex gap-3 flex-wrap",children:[...qo,{key:"custom",label:"Custom",bar1:"bg-gray-200",bar2:"bg-gray-200"}].map(e=>{const t="custom"===e.key,r=t?"light":oe(e.key),n=f("accent_color")||"#8b5cf6",o=t?"":ca(r,"bg-[#2563eb]","bg-[#3b82f6]","bg-[#db2777]","bg-[#16a34a]","bg-[#374151]","bg-[#1d4ed8]"),a=t?"text-[#7c3aed]":ca(r,"text-[#2563eb]","text-[#2563eb]","text-[#db2777]","text-[#16a34a]","text-[#374151]","text-[#1d4ed8]"),s=t?"bg-[#ffffff] border-[#d1d5db]":ca(r,"bg-[#ffffff] border-[#d1d5db]","bg-[#1e1e2e] border-[#45475a]","bg-[#fdf2f8] border-[#f9a8d4]","bg-[#f0fdf4] border-[#86efac]","bg-[#e5e7eb] border-[#9ca3af]","bg-[#eff6ff] border-[#93c5fd]");/* @__PURE__ */
355
+ /* @__PURE__ */Jr("div",{className:"flex gap-3 flex-wrap",children:[...Zo,{key:"custom",label:"Custom",bar1:"bg-gray-200",bar2:"bg-gray-200"}].map(e=>{const t="custom"===e.key,r=t?"light":G(e.key),n=f("accent_color")||"#8b5cf6",o=t?"":ca(r,"bg-[#2563eb]","bg-[#3b82f6]","bg-[#db2777]","bg-[#16a34a]","bg-[#374151]","bg-[#1d4ed8]"),a=t?"text-[#7c3aed]":ca(r,"text-[#2563eb]","text-[#2563eb]","text-[#db2777]","text-[#16a34a]","text-[#374151]","text-[#1d4ed8]"),s=t?"bg-[#ffffff] border-[#d1d5db]":ca(r,"bg-[#ffffff] border-[#d1d5db]","bg-[#1e1e2e] border-[#45475a]","bg-[#fdf2f8] border-[#f9a8d4]","bg-[#f0fdf4] border-[#86efac]","bg-[#e5e7eb] border-[#9ca3af]","bg-[#eff6ff] border-[#93c5fd]");/* @__PURE__ */
356
356
  return Gr("button",{onClick:()=>{b(t?f("accent_color")?{theme:"light"}:{theme:"light",accent_color:"#8b5cf6"}:{theme:e.key,accent_color:null})},className:"flex flex-col items-center gap-2 rounded-lg border-2 p-3 transition-all "+((t?f("accent_color"):N===e.key&&!f("accent_color"))?"border-blue-500 shadow-(--elevation-panel)":"border-gray-200 hover:border-gray-300"),children:[
357
- /* @__PURE__ */Jr("div",{className:`w-20 h-14 ${s} border overflow-hidden flex flex-col`,style:{borderRadius:ra[t?"soft":ae[r]??"soft"]},children:"system"===e.key?/* @__PURE__ */Gr("div",{className:"flex-1 flex",children:[
357
+ /* @__PURE__ */Jr("div",{className:`w-20 h-14 ${s} border overflow-hidden flex flex-col`,style:{borderRadius:ra[t?"soft":J[r]??"soft"]},children:"system"===e.key?/* @__PURE__ */Gr("div",{className:"flex-1 flex",children:[
358
358
  /* @__PURE__ */Gr("div",{className:"flex-1 flex flex-col bg-[#ffffff]",children:[
359
359
  /* @__PURE__ */Jr("div",{className:"h-2 bg-[#2563eb] w-full"}),
360
360
  /* @__PURE__ */Gr("div",{className:"flex-1 flex gap-0.5 p-0.5",children:[
@@ -383,33 +383,33 @@ return Gr("button",{onClick:()=>{b(t?f("accent_color")?{theme:"light"}:{theme:"l
383
383
  /* @__PURE__ */Gr("span",{className:"flex flex-col items-center leading-tight",children:[
384
384
  /* @__PURE__ */Jr("span",{className:"text-xs font-medium "+((t?f("accent_color"):N===e.key&&!f("accent_color"))?"text-blue-600":"text-gray-600"),children:e.label}),
385
385
  /* @__PURE__ */Jr("span",{className:"text-2xs text-gray-400",children:k(e.key)})]})]},e.key)})}),
386
- /* @__PURE__ */Jr(G,{rule:oa,...be,children:/* @__PURE__ */Jr("div",{className:"mt-3 space-y-2",children:[{key:"custom_bg_color",label:"Background Color",defaultVal:"#f3f4f6"},{key:"custom_title_color",label:"Header & Footer Color",defaultVal:"#f9fafb"},{key:"custom_window_color",label:"Windows Background",defaultVal:"#ffffff"},{key:"custom_button_color",label:"Button Color",defaultVal:"#2563eb"},{key:"accent_color",label:"Accent Color",defaultVal:"#8b5cf6"}].map(e=>/* @__PURE__ */Gr("div",{className:"flex items-center gap-3",children:[
386
+ /* @__PURE__ */Jr(re,{rule:oa,...be,children:/* @__PURE__ */Jr("div",{className:"mt-3 space-y-2",children:[{key:"custom_bg_color",label:"Background Color",defaultVal:"#f3f4f6"},{key:"custom_title_color",label:"Header & Footer Color",defaultVal:"#f9fafb"},{key:"custom_window_color",label:"Windows Background",defaultVal:"#ffffff"},{key:"custom_button_color",label:"Button Color",defaultVal:"#2563eb"},{key:"accent_color",label:"Accent Color",defaultVal:"#8b5cf6"}].map(e=>/* @__PURE__ */Gr("div",{className:"flex items-center gap-3",children:[
387
387
  /* @__PURE__ */Jr("span",{className:"text-sm text-gray-700 w-40 shrink-0",children:e.label}),
388
388
  /* @__PURE__ */Jr("label",{className:"w-8 h-8 rounded-lg border-2 border-gray-300 overflow-hidden cursor-pointer flex items-center justify-center shrink-0",style:{backgroundColor:f(e.key)||e.defaultVal},children:/* @__PURE__ */Jr("input",{type:"color",value:f(e.key)||e.defaultVal,onChange:t=>b({[e.key]:t.target.value}),className:"opacity-0 absolute w-0 h-0"})}),
389
389
  /* @__PURE__ */Jr("span",{className:"text-xs text-gray-500 font-mono",children:f(e.key)||e.defaultVal})]},e.key))})})]}),
390
- /* @__PURE__ */Jr(G,{rule:oa,...be,children:/* @__PURE__ */Gr(Qr,{children:[
390
+ /* @__PURE__ */Jr(re,{rule:oa,...be,children:/* @__PURE__ */Gr(Qr,{children:[
391
391
  /* @__PURE__ */Gr("div",{className:"flex flex-wrap items-center justify-between gap-x-4 gap-y-2",children:[
392
392
  /* @__PURE__ */Gr("div",{children:[
393
393
  /* @__PURE__ */Jr("h3",{id:"rosh-corners-label",className:"text-sm font-semibold text-gray-900",children:"Corners"}),
394
394
  /* @__PURE__ */Jr("p",{id:"rosh-corners-note",className:"text-xs text-gray-500",children:"How rounded buttons, fields, menus and windows are."})]}),
395
- /* @__PURE__ */Jr(pe,{"aria-labelledby":"rosh-corners-label","aria-describedby":"rosh-corners-note",value:se(f("corners")),onChange:e=>b({corners:e}),options:na})]}),
395
+ /* @__PURE__ */Jr(me,{"aria-labelledby":"rosh-corners-label","aria-describedby":"rosh-corners-note",value:Q(f("corners")),onChange:e=>b({corners:e}),options:na})]}),
396
396
  /* @__PURE__ */Gr("div",{children:[
397
397
  /* @__PURE__ */Gr("div",{className:"space-y-2",children:[
398
398
  /* @__PURE__ */Gr("div",{children:[
399
399
  /* @__PURE__ */Jr("h3",{id:"rosh-icons-label",className:"text-sm font-semibold text-gray-900",children:"Icons"}),
400
400
  /* @__PURE__ */Jr("p",{id:"rosh-icons-note",className:"text-xs text-gray-500",children:"Which icon set the app draws with."})]}),
401
- /* @__PURE__ */Jr(pe,{"aria-labelledby":"rosh-icons-label","aria-describedby":"rosh-icons-note",value:"string"==typeof f("icon_set")&&f("icon_set")?f("icon_set"):br()??"",onChange:e=>b({icon_set:e||null}),options:w.map(e=>({value:e.name,label:e.label}))})]}),
401
+ /* @__PURE__ */Jr(me,{"aria-labelledby":"rosh-icons-label","aria-describedby":"rosh-icons-note",value:"string"==typeof f("icon_set")&&f("icon_set")?f("icon_set"):br()??"",onChange:e=>b({icon_set:e||null}),options:w.map(e=>({value:e.name,label:e.label}))})]}),
402
402
  /* @__PURE__ */Jr("div",{"data-icon-preview":!0,className:"mt-2 flex items-center gap-3 text-gray-600","aria-hidden":"true",children:ea.map(e=>/* @__PURE__ */Jr(dr,{name:e,size:20},e))})]})]})}),
403
- /* @__PURE__ */Jr(G,{rule:aa,...be,children:/* @__PURE__ */Gr("div",{"data-wallpaper-picker":!0,children:[
403
+ /* @__PURE__ */Jr(re,{rule:aa,...be,children:/* @__PURE__ */Gr("div",{"data-wallpaper-picker":!0,children:[
404
404
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Desktop Wallpaper"}),
405
405
  /* @__PURE__ */Gr("div",{className:"flex gap-2 flex-wrap items-center",children:[
406
406
  /* @__PURE__ */Jr("button",{onClick:()=>H("desktop_bg","none"),className:"w-28 h-20 rounded border-2 overflow-hidden flex items-center justify-center "+("none"===S?"border-blue-500":"border-gray-300"),style:{backgroundColor:ca(C,"#f3f4f6","#1e1e2e","#fdf2f8","#f0fdf4","#d1d5db","#eff6ff")},children:/* @__PURE__ */Jr("span",{className:"text-3xs text-gray-500",children:"None"})}),
407
407
  /* @__PURE__ */Jr("button",{onClick:()=>H("desktop_bg","random"),className:"w-28 h-20 rounded border-2 overflow-hidden flex items-center justify-center "+("random"===S?"border-blue-500":"border-gray-300"),children:/* @__PURE__ */Jr("div",{className:"grid grid-cols-2 grid-rows-2 w-full h-full",children:d.slice(0,4).map(e=>/* @__PURE__ */Jr("img",{src:e.src,alt:"",loading:"lazy",className:"w-full h-full object-cover"},e.src))})}),d.map(e=>/* @__PURE__ */Jr("button",{onClick:()=>H("desktop_bg",e.src),className:"w-28 h-20 rounded border-2 overflow-hidden "+(S===e.src?"border-blue-500":"border-gray-300"),children:/* @__PURE__ */Jr("img",{src:e.src,alt:e.label,loading:"lazy",className:"w-full h-full object-cover"})},e.src)),(T||I)&&/* @__PURE__ */Gr("div",{className:"relative group",children:[
408
408
  /* @__PURE__ */Jr("button",{onClick:()=>H("desktop_bg",T||E),className:"w-28 h-20 rounded border-2 overflow-hidden "+(I?"border-blue-500":"border-gray-300"),children:/* @__PURE__ */Jr("img",{src:R,alt:"Custom",loading:"lazy",className:"w-full h-full object-cover"})}),
409
- /* @__PURE__ */Jr("button",{onClick:async()=>{if($(null),Ze())try{await l()}catch{}await m({desktop_bg:"random",desktop_bg_custom:""}),P()},className:"absolute -top-1.5 -right-1.5 h-4 w-4 rounded-full bg-red-500 text-white flex items-center justify-center text-3xs leading-none opacity-0 group-hover:opacity-100 transition-opacity hover:bg-red-600 shadow",children:"×"})]}),
409
+ /* @__PURE__ */Jr("button",{onClick:async()=>{if($(null),qe())try{await l()}catch{}await m({desktop_bg:"random",desktop_bg_custom:""}),P()},className:"absolute -top-1.5 -right-1.5 h-4 w-4 rounded-full bg-red-500 text-white flex items-center justify-center text-3xs leading-none opacity-0 group-hover:opacity-100 transition-opacity hover:bg-red-600 shadow",children:"×"})]}),
410
410
  /* @__PURE__ */Gr("label",{className:"w-28 h-20 rounded border-2 border-gray-300 border-dashed overflow-hidden cursor-pointer flex items-center justify-center text-gray-400 hover:text-gray-600",children:[
411
411
  /* @__PURE__ */Jr(dr,{name:"add",className:"h-5 w-5",strokeWidth:1.5}),
412
- /* @__PURE__ */Jr("input",{type:"file",accept:"image/*",className:"hidden",disabled:W,onChange:e=>{const t=e.target.files?.[0];e.target.value="",t&&(async e=>{if($(null),!Ze()){const t=new FileReader;return t.onloadend=()=>{t.result&&m({desktop_bg:t.result,desktop_bg_custom:t.result})},void t.readAsDataURL(e)}F(!0),B(null);try{await s(e,B),await m({desktop_bg:a,desktop_bg_custom:a}),P()}catch(e){$(i(e))}finally{F(!1)}})(t)}})]})]}),W&&/* @__PURE__ */Jr("div",{className:"mt-2",children:/* @__PURE__ */Jr(he,{state:"busy",pct:O})}),A&&/* @__PURE__ */Jr("p",{role:"alert",className:"mt-2 text-xs text-red-600",children:A})]})})]}),n("layout")&&/* @__PURE__ */Jr(G,{rule:aa,...be,children:/* @__PURE__ */Gr("div",{children:[
412
+ /* @__PURE__ */Jr("input",{type:"file",accept:"image/*",className:"hidden",disabled:W,onChange:e=>{const t=e.target.files?.[0];e.target.value="",t&&(async e=>{if($(null),!qe()){const t=new FileReader;return t.onloadend=()=>{t.result&&m({desktop_bg:t.result,desktop_bg_custom:t.result})},void t.readAsDataURL(e)}F(!0),B(null);try{await s(e,B),await m({desktop_bg:a,desktop_bg_custom:a}),P()}catch(e){$(i(e))}finally{F(!1)}})(t)}})]})]}),W&&/* @__PURE__ */Jr("div",{className:"mt-2",children:/* @__PURE__ */Jr(ue,{state:"busy",pct:O})}),A&&/* @__PURE__ */Jr("p",{role:"alert",className:"mt-2 text-xs text-red-600",children:A})]})})]}),n("layout")&&/* @__PURE__ */Jr(re,{rule:aa,...be,children:/* @__PURE__ */Gr("div",{children:[
413
413
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Taskbar"}),
414
414
  /* @__PURE__ */Jr("div",{className:"space-y-3",children:/* @__PURE__ */Gr("div",{className:"flex items-center gap-3",children:[
415
415
  /* @__PURE__ */Jr("span",{className:"text-sm text-gray-700 w-24 shrink-0",children:"Position"}),
@@ -419,10 +419,10 @@ return Gr("button",{onClick:()=>{b(t?f("accent_color")?{theme:"light"}:{theme:"l
419
419
  /* @__PURE__ */Jr("input",{type:"checkbox",checked:Y,onChange:e=>{return t=e.target.checked,document.documentElement.classList.toggle("rosh-reduce-transparency",t),p(e=>({...e,reduce_transparency:t})),void m({reduce_transparency:t});var t},className:"h-4 w-4 mt-0.5 rounded border-gray-300 text-blue-600"}),
420
420
  /* @__PURE__ */Gr("span",{className:"text-sm text-gray-700",children:["Reduce transparency",
421
421
  /* @__PURE__ */Jr("span",{className:"block text-xs text-gray-400",children:"Turn off the frosted-glass blur and make windows, menus and the taskbar solid. Improves performance on older machines."})]})]}),
422
- /* @__PURE__ */Jr(G,{rule:aa,...be,children:/* @__PURE__ */Jr("div",{"data-transparency-levels":!0,className:"space-y-3 transition-opacity "+(Y?"opacity-40 pointer-events-none select-none":""),"aria-disabled":Y,children:[{key:"transparency_taskbar",label:"Taskbar",defaultVal:70},{key:"transparency_start_menu",label:"Start Menu",defaultVal:70},{key:"transparency_inactive_header",label:"Inactive Windows Header / Footer",defaultVal:70},{key:"transparency_inactive_content",label:"Inactive Windows Content",defaultVal:80},{key:"transparency_active_header",label:"Active Windows Header / Footer",defaultVal:80},{key:"transparency_active_content",label:"Active Windows Content",defaultVal:90}].map(e=>{const t=X[e.key]??u[e.key]??e.defaultVal;/* @__PURE__ */
422
+ /* @__PURE__ */Jr(re,{rule:aa,...be,children:/* @__PURE__ */Jr("div",{"data-transparency-levels":!0,className:"space-y-3 transition-opacity "+(Y?"opacity-40 pointer-events-none select-none":""),"aria-disabled":Y,children:[{key:"transparency_taskbar",label:"Taskbar",defaultVal:70},{key:"transparency_start_menu",label:"Start Menu",defaultVal:70},{key:"transparency_inactive_header",label:"Inactive Windows Header / Footer",defaultVal:70},{key:"transparency_inactive_content",label:"Inactive Windows Content",defaultVal:80},{key:"transparency_active_header",label:"Active Windows Header / Footer",defaultVal:80},{key:"transparency_active_content",label:"Active Windows Content",defaultVal:90}].map(e=>{const t=X[e.key]??u[e.key]??e.defaultVal;/* @__PURE__ */
423
423
  return Gr("div",{className:"flex items-center gap-3",children:[
424
424
  /* @__PURE__ */Jr("span",{className:"text-sm text-gray-700 w-64 shrink-0",children:e.label}),
425
- /* @__PURE__ */Jr("input",{type:"range",min:20,max:100,value:t,disabled:Y,onChange:t=>Z(e.key,Number(t.target.value)),className:"flex-1 h-1.5 accent-blue-600 cursor-pointer disabled:cursor-not-allowed"}),
425
+ /* @__PURE__ */Jr("input",{type:"range",min:20,max:100,value:t,disabled:Y,onChange:t=>ae(e.key,Number(t.target.value)),className:"flex-1 h-1.5 accent-blue-600 cursor-pointer disabled:cursor-not-allowed"}),
426
426
  /* @__PURE__ */Gr("span",{className:"text-xs text-gray-500 w-10 text-right font-mono",children:[t,"%"]})]},e.key)})})})]})}),n("layout")&&/* @__PURE__ */Gr("div",{children:[
427
427
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Menu"}),
428
428
  /* @__PURE__ */Jr("p",{className:"text-xs text-gray-500 mb-3",children:"Controls font size, padding, taskbar height, and window button height across the Start Menu, context menus, dropdowns, and the notification popup."}),
@@ -447,7 +447,7 @@ return Gr("div",{className:"flex items-center gap-3",children:[
447
447
  /* @__PURE__ */Jr("span",{className:"block text-xs text-gray-400",children:"Overlays frame rate, worst frame time and a bottleneck reading on the desktop, beside the version number. Turn it on to check whether Reduce transparency actually helps on this machine — or whether the slowness is coming from somewhere else."})]})]}),
448
448
  /* @__PURE__ */Gr("details",{className:"ml-6 mt-1 text-xs text-gray-400",children:[
449
449
  /* @__PURE__ */Jr("summary",{className:"cursor-pointer text-blue-600 hover:text-blue-700 rosh-focus-outline w-fit",children:"What's recorded"}),
450
- /* @__PURE__ */Jr("p",{className:"mt-1",children:"While it is on, each reading is recorded with what was happening at the time — how many windows were open, which one was on top, which menu or submenu you opened, how long you spent moving or resizing a window, and counts of clicks, keystrokes and scrolls. No page content or keystroke text is recorded. The log stays on this device unless you use the overlay's Report button, which sends it — with whatever you type in the box, and a description of this computer (browser, operating system, processor cores, memory, graphics card, screen, connection speed and whether you are on battery) — to the team as a bug report."})]})]})]}),(n("appearance")||n("layout"))&&/* @__PURE__ */Jr(G,{rule:sa,...be,children:/* @__PURE__ */Gr(Qo,{children:["The ",U.sidebar," layout shows a plain background. Wallpaper, taskbar and transparency levels belong to the ",U.desktop," layout",K?".":" — switch to it to change them."]})}),n("behavior")&&!r.has("behavior")&&/* @__PURE__ */Jr(G,{rule:sa,...be,children:/* @__PURE__ */Jr(Qo,{children:Zo(U)})}),n("behavior")&&!r.has("behavior")&&/* @__PURE__ */Jr(G,{rule:aa,...be,children:/* @__PURE__ */Gr("div",{children:[
450
+ /* @__PURE__ */Jr("p",{className:"mt-1",children:"While it is on, each reading is recorded with what was happening at the time — how many windows were open, which one was on top, which menu or submenu you opened, how long you spent moving or resizing a window, and counts of clicks, keystrokes and scrolls. No page content or keystroke text is recorded. The log stays on this device unless you use the overlay's Report button, which sends it — with whatever you type in the box, and a description of this computer (browser, operating system, processor cores, memory, graphics card, screen, connection speed and whether you are on battery) — to the team as a bug report."})]})]})]}),(n("appearance")||n("layout"))&&/* @__PURE__ */Jr(re,{rule:sa,...be,children:/* @__PURE__ */Gr(Qo,{children:["The ",U.sidebar," layout shows a plain background. Wallpaper, taskbar and transparency levels belong to the ",U.desktop," layout",z?".":" — switch to it to change them."]})}),n("behavior")&&!r.has("behavior")&&/* @__PURE__ */Jr(re,{rule:sa,...be,children:/* @__PURE__ */Jr(Qo,{children:qo(U)})}),n("behavior")&&!r.has("behavior")&&/* @__PURE__ */Jr(re,{rule:aa,...be,children:/* @__PURE__ */Gr("div",{children:[
451
451
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Behavior"}),
452
452
  /* @__PURE__ */Gr("div",{className:"space-y-3",children:[
453
453
  /* @__PURE__ */Gr("div",{className:"flex items-center gap-3",children:[
@@ -489,12 +489,12 @@ return Gr("div",{className:"mt-2 space-y-2",children:[
489
489
  /* @__PURE__ */Gr("label",{className:"flex items-center gap-2 cursor-pointer",children:[
490
490
  /* @__PURE__ */Jr("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"}),
491
491
  /* @__PURE__ */Jr("span",{className:"text-sm text-gray-700",children:o.enable})]}),
492
- /* @__PURE__ */Jr(G,{rule:p,values:{erp_sounds:e},children:/* @__PURE__ */Jr("div",{className:"ml-6",children:/* @__PURE__ */Jr("div",{className:"border border-gray-200 rounded-lg overflow-hidden",children:/* @__PURE__ */Gr("table",{className:"w-full text-2xs",children:[
492
+ /* @__PURE__ */Jr(re,{rule:p,values:{erp_sounds:e},children:/* @__PURE__ */Jr("div",{className:"ml-6",children:/* @__PURE__ */Jr("div",{className:"border border-gray-200 rounded-lg overflow-hidden",children:/* @__PURE__ */Gr("table",{className:"w-full text-2xs",children:[
493
493
  /* @__PURE__ */Jr("thead",{children:/* @__PURE__ */Gr("tr",{className:"bg-gray-50",children:[
494
494
  /* @__PURE__ */Jr("th",{className:`${sr} px-2 h-8 text-left font-medium text-gray-500 w-24`}),f.map(e=>/* @__PURE__ */Jr("th",{className:`${sr} px-1 h-8 text-center`,children:/* @__PURE__ */Jr("button",{onClick:()=>{return v(t=e),n(h()),void w(t,"success");var t},className:"font-medium text-gray-500 hover:text-blue-600 transition-colors",children:g(o,e)})},e))]})}),
495
495
  /* @__PURE__ */Jr("tbody",{className:"divide-y divide-gray-100",children:b.map(e=>/* @__PURE__ */Gr("tr",{children:[
496
- /* @__PURE__ */Jr("td",{className:"px-2 h-8 text-gray-700 font-medium",children:y(o,e)}),f.map(t=>/* @__PURE__ */Jr("td",{className:"px-1 h-8 text-center",children:/* @__PURE__ */Jr("button",{onClick:()=>((e,t)=>{x(e,t),n(h()),w(t,e)})(e,t),className:"w-4 h-4 rounded-full border-2 transition-colors "+(r[e]===t?"bg-blue-600 border-blue-600":"border-gray-300 hover:border-blue-400")})},t))]},e))})]})})})})]})}var ha=[{key:"center",label:"Center"},{key:"cascade",label:"Cascade"}],pa=[{key:"deactivate",label:"Deactivate all"},{key:"nothing",label:"Do nothing"}],fa=[{key:"small",label:"Small"},{key:"medium",label:"Medium"},{key:"large",label:"Large"},{key:"maximized",label:"Maximized"}];function ga(){const{prefs:e,save:t}=or(),r=(e,r)=>t({[e]:r}),n=e.window_position||"cascade",o=e.desktop_dblclick||"deactivate",a=e.default_window_size||"large",s=Tr().layout,i="sidebar"===fo().layout;/* @__PURE__ */
497
- return Gr("div",{className:"space-y-6",children:[i?/* @__PURE__ */Jr(Qo,{children:Zo(s)}):/* @__PURE__ */Gr("div",{children:[
496
+ /* @__PURE__ */Jr("td",{className:"px-2 h-8 text-gray-700 font-medium",children:y(o,e)}),f.map(t=>/* @__PURE__ */Jr("td",{className:"px-1 h-8 text-center",children:/* @__PURE__ */Jr("button",{onClick:()=>((e,t)=>{x(e,t),n(h()),w(t,e)})(e,t),className:"w-4 h-4 rounded-full border-2 transition-colors "+(r[e]===t?"bg-blue-600 border-blue-600":"border-gray-300 hover:border-blue-400")})},t))]},e))})]})})})})]})}var ha=[{key:"center",label:"Center"},{key:"cascade",label:"Cascade"}],pa=[{key:"deactivate",label:"Deactivate all"},{key:"nothing",label:"Do nothing"}],fa=[{key:"small",label:"Small"},{key:"medium",label:"Medium"},{key:"large",label:"Large"},{key:"maximized",label:"Maximized"}];function ga(){const{prefs:e,save:t}=Ht(),r=(e,r)=>t({[e]:r}),n=e.window_position||"cascade",o=e.desktop_dblclick||"deactivate",a=e.default_window_size||"large",s=Tr().layout,i="sidebar"===fo().layout;/* @__PURE__ */
497
+ return Gr("div",{className:"space-y-6",children:[i?/* @__PURE__ */Jr(Qo,{children:qo(s)}):/* @__PURE__ */Gr("div",{children:[
498
498
  /* @__PURE__ */Jr("h3",{className:"text-sm font-semibold text-gray-900 mb-3",children:"Behavior"}),
499
499
  /* @__PURE__ */Gr("div",{className:"space-y-3",children:[
500
500
  /* @__PURE__ */Jr(ba,{label:"New window position",options:ha,value:n,onChange:e=>r("window_position",e)}),
@@ -522,18 +522,18 @@ return Gr("div",{className:"space-y-4",children:[
522
522
  /* @__PURE__ */Gr("label",{className:"flex items-center gap-2 cursor-pointer",children:[
523
523
  /* @__PURE__ */Jr("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"}),
524
524
  /* @__PURE__ */Jr("span",{className:"text-sm text-gray-700",children:o.enable})]}),
525
- /* @__PURE__ */Jr(G,{rule:p,values:{erp_sounds:e},children:/* @__PURE__ */Jr("div",{className:"border border-gray-200 rounded-lg overflow-hidden",children:/* @__PURE__ */Gr("table",{className:"w-full text-2xs",children:[
525
+ /* @__PURE__ */Jr(re,{rule:p,values:{erp_sounds:e},children:/* @__PURE__ */Jr("div",{className:"border border-gray-200 rounded-lg overflow-hidden",children:/* @__PURE__ */Gr("table",{className:"w-full text-2xs",children:[
526
526
  /* @__PURE__ */Jr("thead",{children:/* @__PURE__ */Gr("tr",{className:"bg-gray-50",children:[
527
527
  /* @__PURE__ */Jr("th",{className:`${sr} px-2 h-8 text-left font-medium text-gray-500 w-24`}),f.map(e=>/* @__PURE__ */Jr("th",{className:`${sr} px-1 h-8 text-center`,children:/* @__PURE__ */Jr("button",{onClick:()=>{return v(t=e),n(h()),void w(t,"success");var t},className:"font-medium text-gray-500 hover:text-blue-600 transition-colors",children:g(o,e)})},e))]})}),
528
528
  /* @__PURE__ */Jr("tbody",{className:"divide-y divide-gray-100",children:b.map(e=>/* @__PURE__ */Gr("tr",{children:[
529
529
  /* @__PURE__ */Jr("td",{className:"px-2 h-8 text-gray-700 font-medium",children:y(o,e)}),f.map(t=>/* @__PURE__ */Jr("td",{className:"px-1 h-8 text-center",children:/* @__PURE__ */Jr("button",{onClick:()=>((e,t)=>{x(e,t),n(h()),w(t,e)})(e,t),"aria-label":o.choice(y(o,e),g(o,t)),"aria-pressed":r[e]===t,className:"w-4 h-4 rounded-full border-2 transition-colors "+(r[e]===t?"bg-blue-600 border-blue-600":"border-gray-300 hover:border-blue-400")})},t))]},e))})]})})}),
530
- /* @__PURE__ */Jr(Xe,{children:/* @__PURE__ */Jr("span",{className:"text-xs text-gray-400",children:o.autosave})})]})}function xa({sections:e,defaultSelected:t,className:r}){const n=t&&e.some(e=>e.key===t)?t:e[0]?.key??"",[o,a]=Dr(n),s=e.find(e=>e.key===o)??e[0],i=Tr().layout,l=nr(),[c,d]=Dr(!!t),u=/* @__PURE__ */Jr("nav",{className:"px-1 py-2 space-y-0.5",children:e.map(e=>{const t=e.key===o;/* @__PURE__ */
530
+ /* @__PURE__ */Jr(Xe,{children:/* @__PURE__ */Jr("span",{className:"text-xs text-gray-400",children:o.autosave})})]})}function xa({sections:e,defaultSelected:t,className:r}){const n=t&&e.some(e=>e.key===t)?t:e[0]?.key??"",[o,a]=Dr(n),s=e.find(e=>e.key===o)??e[0],i=Tr().layout,l=ar(),[c,d]=Dr(!!t),u=/* @__PURE__ */Jr("nav",{className:"px-1 py-2 space-y-0.5",children:e.map(e=>{const t=e.key===o;/* @__PURE__ */
531
531
  return Gr("button",{type:"button",onClick:()=>{return t=e.key,a(t),void d(!0);var t},className:"w-full text-left rounded-lg px-3 py-3 text-sm transition-colors flex items-start gap-3 "+(t?"bg-blue-50 text-blue-700":"hover:bg-gray-100 text-gray-700"),children:[e.icon&&/* @__PURE__ */Jr("span",{className:"mt-0.5 "+(t?"text-blue-600":"text-gray-400"),children:e.icon}),
532
532
  /* @__PURE__ */Gr("span",{className:"min-w-0",children:[
533
533
  /* @__PURE__ */Jr("span",{className:"block "+(t?"font-semibold text-blue-700":"font-medium text-gray-800"),children:e.label}),e.description&&/* @__PURE__ */Jr("span",{className:"block text-2xs text-gray-500 mt-0.5",children:e.description})]})]},e.key)})});return l?c?/* @__PURE__ */Gr("div",{className:`flex h-full w-full flex-col ${r??""}`,children:[
534
534
  /* @__PURE__ */Gr("button",{type:"button",onClick:()=>d(!1),className:"flex h-(--row-height-menu) shrink-0 items-center gap-1 border-b border-gray-200 px-3 text-sm font-medium text-blue-600",children:[
535
535
  /* @__PURE__ */Jr(dr,{name:"chevron-left",className:"size-4",strokeWidth:2,"aria-hidden":"true"}),i.back]}),
536
- /* @__PURE__ */Jr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:s?.render()})]}):/* @__PURE__ */Jr("div",{className:`h-full w-full overflow-auto bg-gray-50 ${r??""}`,children:u}):/* @__PURE__ */Jr(j,{storageKey:"shell.systemPreferences.sidebarWidth",defaultWidth:240,minWidth:200,maxWidth:360,className:r,sidebarClassName:"border-r border-gray-200 bg-gray-50",sidebar:u,children:/* @__PURE__ */Jr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:s?.render()})})}var wa;function va(e,t,r,n,o,a){const[s,i]=Dr(-1),l=Ar(e),c=Ar(t),d=Ar(r),u=Ar(n),m=Ar(o),h=Ar(s),p=Ar(-1),f=Ge(),g=Ar(f),b=Ar(a),y=Ar(null);l.current=e,c.current=t,d.current=r,u.current=n,m.current=o,h.current=s,g.current=f,b.current=a;const x=Ar(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};Rr(()=>()=>clearTimeout(x.current),[]);const v=Ar(e.length);return Rr(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),Rr(()=>{let e=!1;const t=()=>{e=document.activeElement===y.current},r=t=>{const r=e&&t.target===y.current;e=!1,r||(y.current=null)},n=e=>{y.current?.contains(e.target)&&(y.current=null)};return window.addEventListener("blur",t),document.addEventListener("focusin",r,!0),document.addEventListener("mousedown",n,!0),()=>{window.removeEventListener("blur",t),document.removeEventListener("focusin",r,!0),document.removeEventListener("mousedown",n,!0)}},[]),Rr(()=>{const e=e=>{if(!g.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)},[]),Rr(()=>{const e=e=>{if(!g.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=l.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?.(et)??null;if("Enter"!==e.key&&" "!==e.key||!a||a===y.current)if(n||o){y.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,b.current),e.shiftKey&&d.current&&(d.current(l.current[o]),p.current=o))}else if("Enter"===e.key&&h.current>=0&&h.current<r)e.preventDefault(),c.current(l.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?.(l.current[h.current]);p.current=h.current}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),Rr(()=>{const e=e=>{if(!g.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?.(l.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(l.current[r])}o||e.preventDefault(),e.stopPropagation(),p.current=n,i(n)};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),s}function ka(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function Na(e,t){return["react-os-shell","default-columns",e,t]}function Ca(e){const t=Or(ka,[]),r=Br(rn)||(wa||(wa=new nn),wa),{data:n}=en({queryKey:Na(e??"",t),queryFn:()=>qe.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&Ze(),retry:!1,staleTime:3e5,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},r);return{defaultConfig:n??void 0,viewport:t}}function Sa(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 _a(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 Ea(e,t){const{prefs:r,save:n}=or(),o=`columns_${e}`,a=r[o],{defaultConfig:s}=Ca(e),[i,l]=Dr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return _a([...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 _a(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=Dr(null),[u,m]=Dr(null),h=Ar(null),p=Ar(!1),f=Ar(a);f.current=a;const g=Ar(null),b=Ar(n);b.current=n;const y=$r(t=>{p.current=!0,localStorage.setItem(`col-config-${e}`,JSON.stringify(t)),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{b.current({[o]:t})},1e3)},[e,o]);Rr(()=>{if(p.current||!Array.isArray(a))return;const r=new Set(a.map(e=>e.key)),n=_a([...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}))]);l(e=>Sa(e,n)?e:n),localStorage.setItem(`col-config-${e}`,JSON.stringify(n))},[e,a]),Rr(()=>{if(p.current||Array.isArray(f.current))return;const r=s?.visible_columns;if(!Array.isArray(r)||0===r.length)return;const n=new Set(r),o=_a(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:!n.has(e.key)})));l(e=>Sa(e,o)?e:o),localStorage.setItem(`col-config-${e}`,JSON.stringify(o))},[e,s]);const x=Ar(/* @__PURE__ */new Map);Rr(()=>{l(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)),s=e.filter(e=>"_select"===e.key||n.has(e.key));if(!a.length&&s.length===e.length)return e;for(const t of e)"_select"===t.key||n.has(t.key)||r.set(t.key,t);const i=[...s];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 _a(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=$r((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,s=Math.max(a,o+e.clientX-n);l(e=>{const t=[...e];return t[r]={...t[r],width:s},t})},s=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s),h.current=null,l(e=>(y(e),e))};document.addEventListener("mousemove",a),document.addEventListener("mouseup",s)},[i,w,t,y]),k=$r(e=>{d(e)},[]),N=$r((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=$r((e,t)=>(t.preventDefault(),null===c||null===u||u===c||u===c+1?(d(null),void m(null)):(l(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],[s]=a.splice(n,1);return a.splice(o>n?o-1:o,0,s),y(a),a}),d(null),void m(null))),[c,u,y]),S=$r(()=>{d(null),m(null)},[]),_=$r(e=>{l(t=>{const r=t.map(t=>t.key===e?{...t,hidden:!t.hidden}:t);return 0===r.filter(e=>!e.hidden).length?t:(y(r),r)})},[y]),E=$r(()=>{const e=_a(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})));l(e),y(e)},[t,y]);return{orderedColumns:w.map(e=>({...t.find(t=>t.key===e.key),width:e.width})).filter(Boolean),allColumns:i.map(e=>{const r=t.find(t=>t.key===e.key);return{key:e.key,label:r?.label||e.key,hidden:!!e.hidden}}),onResizeStart:v,onDragStart:k,onDragOver:N,onDrop:C,onDragEnd:S,toggleColumn:_,resetColumns:E,draggedIdx:c,dropGap:u}}function Ta({tableId:e,columns:t,sort:r,onSort:n,footer:o,afterBody:a,saveDefaultPerms:s=["change_numberingconfig"],children:i}){const l=rr(),[c,d]=Dr(!1),u=Or(()=>l&&!c?t.filter(e=>"_select"!==e.key):t,[t,l,c]),{orderedColumns:m,allColumns:h,onResizeStart:p,onDragStart:f,onDragOver:g,onDrop:b,onDragEnd:y,toggleColumn:x,resetColumns:w,draggedIdx:v,dropGap:k}=Ea(e,u),{hasAnyPerm:N}=wt(),C=Tr().columns,[S,_]=Dr(!1),[E,T]=Dr(!1),[M,j]=Dr(!1),I=Ar(null),L=s.length>0&&N(s);re(I,$r(()=>{S&&_(!1)},[S]));const P=m.reduce((e,t)=>e+t.width,0),D=m.map(e=>`${e.width}px`),R={tableLayout:"fixed",width:P,minWidth:"100%"},A=Ar(null),$=$r(e=>{const t=A.current;t&&(t.scrollLeft=e.currentTarget.scrollLeft)},[]),W=Or(()=>t.some(e=>"_select"===e.key),[t]);/* @__PURE__ */
536
+ /* @__PURE__ */Jr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:s?.render()})]}):/* @__PURE__ */Jr("div",{className:`h-full w-full overflow-auto bg-gray-50 ${r??""}`,children:u}):/* @__PURE__ */Jr(j,{storageKey:"shell.systemPreferences.sidebarWidth",defaultWidth:240,minWidth:200,maxWidth:360,className:r,sidebarClassName:"border-r border-gray-200 bg-gray-50",sidebar:u,children:/* @__PURE__ */Jr("main",{className:"flex-1 min-w-0 overflow-auto p-4",children:s?.render()})})}var wa;function va(e,t,r,n,o,a){const[s,i]=Dr(-1),l=Ar(e),c=Ar(t),d=Ar(r),u=Ar(n),m=Ar(o),h=Ar(s),p=Ar(-1),f=Ge(),g=Ar(f),b=Ar(a),y=Ar(null);l.current=e,c.current=t,d.current=r,u.current=n,m.current=o,h.current=s,g.current=f,b.current=a;const x=Ar(void 0),w=e=>{clearTimeout(x.current),x.current=setTimeout(()=>i(e),0)};Rr(()=>()=>clearTimeout(x.current),[]);const v=Ar(e.length);return Rr(()=>{e.length!==v.current&&(clearTimeout(x.current),i(-1),p.current=-1,v.current=e.length)},[e.length]),Rr(()=>{let e=!1;const t=()=>{e=document.activeElement===y.current},r=t=>{const r=e&&t.target===y.current;e=!1,r||(y.current=null)},n=e=>{y.current?.contains(e.target)&&(y.current=null)};return window.addEventListener("blur",t),document.addEventListener("focusin",r,!0),document.addEventListener("mousedown",n,!0),()=>{window.removeEventListener("blur",t),document.removeEventListener("focusin",r,!0),document.removeEventListener("mousedown",n,!0)}},[]),Rr(()=>{const e=e=>{if(!g.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)},[]),Rr(()=>{const e=e=>{if(!g.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=l.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?.(et)??null;if("Enter"!==e.key&&" "!==e.key||!a||a===y.current)if(n||o){y.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,b.current),e.shiftKey&&d.current&&(d.current(l.current[o]),p.current=o))}else if("Enter"===e.key&&h.current>=0&&h.current<r)e.preventDefault(),c.current(l.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?.(l.current[h.current]);p.current=h.current}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),Rr(()=>{const e=e=>{if(!g.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?.(l.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(l.current[r])}o||e.preventDefault(),e.stopPropagation(),p.current=n,i(n)};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),s}function ka(){return"undefined"!=typeof window&&window.matchMedia("(max-width: 767px), (pointer: coarse)").matches?"mobile":"desktop"}function Na(e,t){return["react-os-shell","default-columns",e,t]}function Ca(e){const t=Or(ka,[]),r=Br(rn)||(wa||(wa=new nn),wa),{data:n}=en({queryKey:Na(e??"",t),queryFn:()=>Ze.get(`/auth/default-columns/${e}/`,{params:{viewport:t}}).then(e=>e?.data??null),enabled:!!e&&qe(),retry:!1,staleTime:3e5,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1},r);return{defaultConfig:n??void 0,viewport:t}}function Sa(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 _a(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 Ea(e,t){const{prefs:r,save:n}=Ht(),o=`columns_${e}`,a=r[o],{defaultConfig:s}=Ca(e),[i,l]=Dr(()=>{const r=localStorage.getItem(`col-config-${e}`);if(r)try{const e=JSON.parse(r),n=new Set(e.map(e=>e.key));return _a([...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 _a(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})))}),[c,d]=Dr(null),[u,m]=Dr(null),h=Ar(null),p=Ar(!1),f=Ar(a);f.current=a;const g=Ar(null),b=Ar(n);b.current=n;const y=$r(t=>{p.current=!0,localStorage.setItem(`col-config-${e}`,JSON.stringify(t)),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{b.current({[o]:t})},1e3)},[e,o]);Rr(()=>{if(p.current||!Array.isArray(a))return;const r=new Set(a.map(e=>e.key)),n=_a([...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}))]);l(e=>Sa(e,n)?e:n),localStorage.setItem(`col-config-${e}`,JSON.stringify(n))},[e,a]),Rr(()=>{if(p.current||Array.isArray(f.current))return;const r=s?.visible_columns;if(!Array.isArray(r)||0===r.length)return;const n=new Set(r),o=_a(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:!n.has(e.key)})));l(e=>Sa(e,o)?e:o),localStorage.setItem(`col-config-${e}`,JSON.stringify(o))},[e,s]);const x=Ar(/* @__PURE__ */new Map);Rr(()=>{l(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)),s=e.filter(e=>"_select"===e.key||n.has(e.key));if(!a.length&&s.length===e.length)return e;for(const t of e)"_select"===t.key||n.has(t.key)||r.set(t.key,t);const i=[...s];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 _a(i)}(e,t,x.current))},[t]);const w=i.filter(e=>!e.hidden),v=$r((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,s=Math.max(a,o+e.clientX-n);l(e=>{const t=[...e];return t[r]={...t[r],width:s},t})},s=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s),h.current=null,l(e=>(y(e),e))};document.addEventListener("mousemove",a),document.addEventListener("mouseup",s)},[i,w,t,y]),k=$r(e=>{d(e)},[]),N=$r((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=$r((e,t)=>(t.preventDefault(),null===c||null===u||u===c||u===c+1?(d(null),void m(null)):(l(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],[s]=a.splice(n,1);return a.splice(o>n?o-1:o,0,s),y(a),a}),d(null),void m(null))),[c,u,y]),S=$r(()=>{d(null),m(null)},[]),_=$r(e=>{l(t=>{const r=t.map(t=>t.key===e?{...t,hidden:!t.hidden}:t);return 0===r.filter(e=>!e.hidden).length?t:(y(r),r)})},[y]),E=$r(()=>{const e=_a(t.map(e=>({key:e.key,width:e.defaultWidth||150,hidden:e.defaultHidden})));l(e),y(e)},[t,y]);return{orderedColumns:w.map(e=>({...t.find(t=>t.key===e.key),width:e.width})).filter(Boolean),allColumns:i.map(e=>{const r=t.find(t=>t.key===e.key);return{key:e.key,label:r?.label||e.key,hidden:!!e.hidden}}),onResizeStart:v,onDragStart:k,onDragOver:N,onDrop:C,onDragEnd:S,toggleColumn:_,resetColumns:E,draggedIdx:c,dropGap:u}}function Ta({tableId:e,columns:t,sort:r,onSort:n,footer:o,afterBody:a,saveDefaultPerms:s=["change_numberingconfig"],children:i}){const l=or(),[c,d]=Dr(!1),u=Or(()=>l&&!c?t.filter(e=>"_select"!==e.key):t,[t,l,c]),{orderedColumns:m,allColumns:h,onResizeStart:p,onDragStart:f,onDragOver:g,onDrop:b,onDragEnd:y,toggleColumn:x,resetColumns:w,draggedIdx:v,dropGap:k}=Ea(e,u),{hasAnyPerm:N}=wt(),C=Tr().columns,[S,_]=Dr(!1),[E,T]=Dr(!1),[M,j]=Dr(!1),I=Ar(null),L=s.length>0&&N(s);Y(I,$r(()=>{S&&_(!1)},[S]));const P=m.reduce((e,t)=>e+t.width,0),D=m.map(e=>`${e.width}px`),R={tableLayout:"fixed",width:P,minWidth:"100%"},A=Ar(null),$=$r(e=>{const t=A.current;t&&(t.scrollLeft=e.currentTarget.scrollLeft)},[]),W=Or(()=>t.some(e=>"_select"===e.key),[t]);/* @__PURE__ */
537
537
  return Gr("div",{className:"flex flex-col flex-1 min-h-0 "+(l?"-mx-4":""),children:[
538
538
  /* @__PURE__ */Jr("div",{ref:A,className:"shrink-0 overflow-x-hidden",children:/* @__PURE__ */Gr("table",{className:"divide-y divide-gray-200",style:R,children:[
539
539
  /* @__PURE__ */Jr("colgroup",{children:m.map((e,t)=>/* @__PURE__ */Jr("col",{style:{width:D[t]}},e.key))}),
@@ -548,33 +548,33 @@ return Gr("th",{className:`${sr} px-4 py-3 text-left text-xs font-medium text-gr
548
548
  /* @__PURE__ */Jr("button",{onClick:w,className:"text-2xs text-gray-400 hover:text-gray-600",children:C.reset}),
549
549
  /* @__PURE__ */Jr("button",{onClick:()=>_(!S),className:"text-gray-400 hover:text-gray-600",title:C.choose,children:/* @__PURE__ */Jr(dr,{name:"adjust",className:"w-4 h-4",strokeWidth:"1.5"})}),S&&/* @__PURE__ */Gr("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:_r(),children:[
550
550
  /* @__PURE__ */Jr("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__ */Gr("label",{className:"flex items-center gap-2 px-3 py-1 text-sm text-gray-700 hover:bg-gray-50 cursor-pointer",children:[
551
- /* @__PURE__ */Jr("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)),L&&/* @__PURE__ */Jr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */Jr("button",{onClick:async()=>{T(!0);const t=h.filter(e=>!e.hidden).map(e=>e.key),n=l?"mobile":"desktop",o={visible_columns:t};r&&(o.sort=r);try{await qe.patch(`/auth/default-columns/${e}/`,o,{params:{viewport:n}}).catch(()=>qe.post("/auth/default-columns/",{table_id:e,viewport:n,...o})),j(!0),setTimeout(()=>j(!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 Ma(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function ja(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Ia(e){const{items:t,isLoading:r,emptyState:n,totalCount:o,isError:a,onRetry:s,errorTitle:i,errorMessage:l,tableId:c,columns:d,renderCell:u,getRowId:m=e=>e.id,sort:h,onSort:p,selected:f,setSelected:g,onRowClick:b,onRowHover:y,getRowClassName:x,footerLabel:w,footerExtra:v,sentinelRef:k,isFetchingNextPage:N,saveDefaultPerms:C,exportEndpoint:S,exportFilename:_="export.csv",contextActions:E}=e,[T,M]=Dr(null),j=Ar(null),I=Tr(),L=I.entityList,P=e=>{g(t=>{const r=new Set(t),n=m(e);return r.has(n)?r.delete(n):r.add(n),r})},D=()=>{g(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=va(t,b,P,D,(e,r)=>{g(n=>{const o=new Set(n);for(let n=e;n<=r;n++)o.add(m(t[n]));return o})},j),$=t.filter(e=>f.has(m(e))),W=()=>{const e=[...j.current?.querySelectorAll("tr[data-row-idx]")??[]].filter(e=>{const r=t[Number(e.dataset.rowIdx)];return void 0!==r&&f.has(m(r))}),r=e.length?Ma(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=>Ma(e).map(ja))}},F=()=>{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>${R(e)}</th>`).join("")+"</tr></thead><tbody>"+t.map(e=>`<tr>${e.map(e=>`<td>${R(e)}</td>`).join("")}</tr>`).join("")+"</tbody></table>";Y(L.copiedRows(t.length),r,n)},O=async()=>{M(null);const e=$.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 qe.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 s=r.headers??{},i=Number(s["x-row-count"]);if("true"===String(s["x-truncated"]))return void Ht.notify(Number.isFinite(i)?L.exportTruncated(i,e.length):L.exportTruncatedUnknown(e.length));Ht.success(L.exported(e.length))}catch{Ht.error(L.exportFailed)}};if(r)/* @__PURE__ */return Jr(Je,{});if(a&&0===t.length)/* @__PURE__ */
552
- return Jr(be,{title:i,message:l,onRetry:s});if(0===t.length)/* @__PURE__ */return Jr(Qr,{children:n});const B=t.length>0&&$.length===t.length,H=$.length>0&&!B,U=f.size-$.length,z=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */Jr(fe,{"aria-label":I.table.selectAll,checked:B,indeterminate:H,onChange:D,style:{height:14,width:14}})},...d],K=/* @__PURE__ */Jr(ge,{selectedCount:$.length,hiddenSelectedCount:U,loadedCount:t.length,totalCount:o,label:w,isFetchingMore:N,extra:v}),V=k?/* @__PURE__ */Gr(Qr,{children:[
553
- /* @__PURE__ */Jr("div",{ref:k}),N&&/* @__PURE__ */Jr(vr,{size:"sm",padding:"py-3",label:I.list.loadingMore})]}):void 0;let G=null;if(T){const{x:e,y:r,item:n,text:a,firstColumn:i}=T,l=E?E($):[],c=$.length,d=()=>M(null),u=void 0!==o&&o>t.length;G=/* @__PURE__ */Gr(zt,{portal:!0,style:{left:e,top:r},onClose:d,minWidth:210,children:[
554
- /* @__PURE__ */Jr(Kt,{children:U>0?I.list.selectedNotShown(c,U):I.list.selected(c)}),
555
- /* @__PURE__ */Jr(Vt,{className:"font-medium",onClick:()=>{d(),b(n)},children:L.open}),
556
- /* @__PURE__ */Jr(Ut,{}),a&&/* @__PURE__ */Jr(Vt,{onClick:()=>{d(),Y(L.copiedText,a.text,a.html)},children:L.copy}),i&&/* @__PURE__ */Jr(Vt,{onClick:()=>(e=>{M(null);const{keys:t,body:r}=W(),n=t.indexOf(e.key);n<0||!r.length||Y(e.label,r.map(e=>e[n]).join("\n"))})(i),children:L.copyColumn(i.label)}),
557
- /* @__PURE__ */Jr(Vt,{disabled:0===c,onClick:F,children:L.copyRows(c)}),S&&/* @__PURE__ */Jr(Vt,{onClick:O,children:L.exportSelected}),l.map((e,t)=>/* @__PURE__ */Gr("div",{children:[(e.divider||0===t)&&/* @__PURE__ */Jr(Ut,{}),
558
- /* @__PURE__ */Jr(Vt,{danger:e.danger,disabled:e.disabled,onClick:()=>{d(),e.onClick($)},children:e.label})]},t)),
559
- /* @__PURE__ */Jr(Ut,{}),!B&&/* @__PURE__ */Jr(Vt,{onClick:()=>{d(),g(e=>/* @__PURE__ */new Set([...e,...t.map(m)]))},children:u?L.selectAllLoaded(t.length):L.selectAll}),
560
- /* @__PURE__ */Jr(Vt,{onClick:()=>{d(),g(/* @__PURE__ */new Set)},children:L.clearSelection}),s&&/* @__PURE__ */Jr(Vt,{onClick:()=>{d(),s()},children:L.refresh})]})}/* @__PURE__ */
551
+ /* @__PURE__ */Jr("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)),L&&/* @__PURE__ */Jr("div",{className:"border-t border-gray-100 mt-1 pt-1 px-3 pb-1",children:/* @__PURE__ */Jr("button",{onClick:async()=>{T(!0);const t=h.filter(e=>!e.hidden).map(e=>e.key),n=l?"mobile":"desktop",o={visible_columns:t};r&&(o.sort=r);try{await Ze.patch(`/auth/default-columns/${e}/`,o,{params:{viewport:n}}).catch(()=>Ze.post("/auth/default-columns/",{table_id:e,viewport:n,...o})),j(!0),setTimeout(()=>j(!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 Ma(e){return Array.from(e.children).filter(e=>void 0!==e.dataset?.colKey&&"_select"!==e.dataset.colKey)}function ja(e){return("string"==typeof e.innerText?e.innerText:e.textContent??"").replace(/\s+/g," ").trim()}function Ia(e){const{items:t,isLoading:r,emptyState:n,totalCount:o,isError:a,onRetry:s,errorTitle:i,errorMessage:l,tableId:c,columns:d,renderCell:u,getRowId:m=e=>e.id,sort:h,onSort:p,selected:f,setSelected:g,onRowClick:b,onRowHover:y,getRowClassName:x,footerLabel:w,footerExtra:v,sentinelRef:k,isFetchingNextPage:N,saveDefaultPerms:C,exportEndpoint:S,exportFilename:_="export.csv",contextActions:E}=e,[T,M]=Dr(null),j=Ar(null),I=Tr(),L=I.entityList,P=e=>{g(t=>{const r=new Set(t),n=m(e);return r.has(n)?r.delete(n):r.add(n),r})},D=()=>{g(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=va(t,b,P,D,(e,r)=>{g(n=>{const o=new Set(n);for(let n=e;n<=r;n++)o.add(m(t[n]));return o})},j),$=t.filter(e=>f.has(m(e))),W=()=>{const e=[...j.current?.querySelectorAll("tr[data-row-idx]")??[]].filter(e=>{const r=t[Number(e.dataset.rowIdx)];return void 0!==r&&f.has(m(r))}),r=e.length?Ma(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=>Ma(e).map(ja))}},F=()=>{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>${R(e)}</th>`).join("")+"</tr></thead><tbody>"+t.map(e=>`<tr>${e.map(e=>`<td>${R(e)}</td>`).join("")}</tr>`).join("")+"</tbody></table>";ne(L.copiedRows(t.length),r,n)},O=async()=>{M(null);const e=$.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 Ze.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 s=r.headers??{},i=Number(s["x-row-count"]);if("true"===String(s["x-truncated"]))return void Kt.notify(Number.isFinite(i)?L.exportTruncated(i,e.length):L.exportTruncatedUnknown(e.length));Kt.success(L.exported(e.length))}catch{Kt.error(L.exportFailed)}};if(r)/* @__PURE__ */return Jr(Je,{});if(a&&0===t.length)/* @__PURE__ */
552
+ return Jr(be,{title:i,message:l,onRetry:s});if(0===t.length)/* @__PURE__ */return Jr(Qr,{children:n});const B=t.length>0&&$.length===t.length,H=$.length>0&&!B,U=f.size-$.length,K=[{key:"_select",label:"",defaultWidth:52,minWidth:52,headerNode:/* @__PURE__ */Jr(fe,{"aria-label":I.table.selectAll,checked:B,indeterminate:H,onChange:D,style:{height:14,width:14}})},...d],z=/* @__PURE__ */Jr(ge,{selectedCount:$.length,hiddenSelectedCount:U,loadedCount:t.length,totalCount:o,label:w,isFetchingMore:N,extra:v}),V=k?/* @__PURE__ */Gr(Qr,{children:[
553
+ /* @__PURE__ */Jr("div",{ref:k}),N&&/* @__PURE__ */Jr(vr,{size:"sm",padding:"py-3",label:I.list.loadingMore})]}):void 0;let Y=null;if(T){const{x:e,y:r,item:n,text:a,firstColumn:i}=T,l=E?E($):[],c=$.length,d=()=>M(null),u=void 0!==o&&o>t.length;Y=/* @__PURE__ */Gr(Vt,{portal:!0,style:{left:e,top:r},onClose:d,minWidth:210,children:[
554
+ /* @__PURE__ */Jr(Yt,{children:U>0?I.list.selectedNotShown(c,U):I.list.selected(c)}),
555
+ /* @__PURE__ */Jr(Xt,{className:"font-medium",onClick:()=>{d(),b(n)},children:L.open}),
556
+ /* @__PURE__ */Jr(zt,{}),a&&/* @__PURE__ */Jr(Xt,{onClick:()=>{d(),ne(L.copiedText,a.text,a.html)},children:L.copy}),i&&/* @__PURE__ */Jr(Xt,{onClick:()=>(e=>{M(null);const{keys:t,body:r}=W(),n=t.indexOf(e.key);n<0||!r.length||ne(e.label,r.map(e=>e[n]).join("\n"))})(i),children:L.copyColumn(i.label)}),
557
+ /* @__PURE__ */Jr(Xt,{disabled:0===c,onClick:F,children:L.copyRows(c)}),S&&/* @__PURE__ */Jr(Xt,{onClick:O,children:L.exportSelected}),l.map((e,t)=>/* @__PURE__ */Gr("div",{children:[(e.divider||0===t)&&/* @__PURE__ */Jr(zt,{}),
558
+ /* @__PURE__ */Jr(Xt,{danger:e.danger,disabled:e.disabled,onClick:()=>{d(),e.onClick($)},children:e.label})]},t)),
559
+ /* @__PURE__ */Jr(zt,{}),!B&&/* @__PURE__ */Jr(Xt,{onClick:()=>{d(),g(e=>/* @__PURE__ */new Set([...e,...t.map(m)]))},children:u?L.selectAllLoaded(t.length):L.selectAll}),
560
+ /* @__PURE__ */Jr(Xt,{onClick:()=>{d(),g(/* @__PURE__ */new Set)},children:L.clearSelection}),s&&/* @__PURE__ */Jr(Xt,{onClick:()=>{d(),s()},children:L.refresh})]})}/* @__PURE__ */
561
561
  return Gr("div",{className:"flex-1 flex flex-col mb-1 bg-white rounded-lg shadow overflow-hidden",children:[
562
- /* @__PURE__ */Jr("div",{className:"flex-1 min-h-0 flex flex-col",children:/* @__PURE__ */Jr(Ta,{tableId:c,columns:z,sort:h,onSort:p,footer:K,afterBody:V,saveDefaultPerms:C,children:e=>/* @__PURE__ */Jr("tbody",{ref:j,className:"divide-y divide-gray-100",children:t.map((t,r)=>{const n=m(t);/* @__PURE__ */
563
- return Jr("tr",{"data-row-idx":r,className:`cursor-pointer ${A===r?"bg-blue-50 ring-1 ring-inset ring-blue-300":f.has(n)?"bg-blue-50 hover:bg-blue-100":"hover:bg-gray-50"} ${x?.(t)??""}`,onClick:()=>b(t),onContextMenu:e=>((e,t)=>{if(e.shiftKey||qt(e.target))return;e.preventDefault();const r=m(t);f.has(r)||g(/* @__PURE__ */new Set([r]));const n=Ma(e.currentTarget)[0]?.dataset.colKey,o=n?d.find(e=>e.key===n)?.label:void 0;M({x:e.clientX,y:e.clientY,item:t,text:X(e.target),firstColumn:n&&o?{key:n,label:o}:null})})(e,t),onMouseEnter:y?()=>y(t):void 0,children:e.map(e=>/* @__PURE__ */Jr("td",{"data-col-key":e.key,className:"px-4 py-3 whitespace-nowrap text-sm overflow-hidden",children:"_select"===e.key?/* @__PURE__ */Jr(fe,{"aria-label":I.table.selectRow,checked:f.has(n),onChange:()=>P(t),onClick:e=>e.stopPropagation(),style:{height:14,width:14}}):u(t,e.key)},e.key))},n)})})})}),G]})}function La({queryKey:e,fetchFn:t,extraParams:r={},pageSize:n=25}){const o=Ar(null),a=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),s=tn({queryKey:e,queryFn:({pageParam:e=1})=>t({page:String(e),...a}),getNextPageParam:(e,t)=>{if(e.next)return t.length+1},initialPageParam:1}),{fetchNextPage:i,hasNextPage:l,isFetchingNextPage:c}=s,d=$r(e=>{const[t]=e;t.isIntersecting&&l&&!c&&i()},[i,l,c]);Rr(()=>{const e=o.current;if(!e)return;let t=e.parentElement;for(;t;){const e=getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)break;t=t.parentElement}const r=new IntersectionObserver(d,{root:t,rootMargin:"200px",threshold:0});return r.observe(e),()=>r.disconnect()},[d]);const u=/* @__PURE__ */new Set;return{items:(s.data?.pages.flatMap(e=>e?.results??[])??[]).filter(e=>null!=e).filter(e=>{const t=e.id;return null==t||!u.has(t)&&(u.add(t),!0)}),totalCount:s.data?.pages[0]?.count??0,isLoading:s.isLoading,isError:s.isError,error:s.error,isFetchingNextPage:c,hasNextPage:!!l,sentinelRef:o,refetch:s.refetch}}function Pa(e){const t=e;return!!t&&"string"==typeof t.field&&t.field.length>0&&("asc"===t.direction||"desc"===t.direction)}function Da(e,t="asc",r,n){const{prefs:o,save:a}=or(),s=r?`sort_${r}`:null,[i,l]=Dr(()=>{if(s){if(Pa(o[s]))return o[s];try{const e=JSON.parse(localStorage.getItem(`sort-config-${r}`)||"null");if(Pa(e))return e}catch{}}return{field:e,direction:t}}),c=Ar(!1),d=s?o[s]:void 0,u=Ar(d);u.current=d,Rr(()=>{if(!c.current&&Pa(d)){l(e=>e.field===d.field&&e.direction===d.direction?e:d);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(d))}catch{}}},[r,d?.field,d?.direction]);const{defaultConfig:m}=Ca(r);Rr(()=>{const e=m?.sort;if(!c.current&&!Pa(u.current)&&Pa(e)){l(t=>t.field===e.field&&t.direction===e.direction?t:e);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(e))}catch{}}},[r,m]);const h=n?.columns?.length?n.columns:void 0,p=!h||function(e,t){return e.some(e=>(e.sortField??("_select"!==e.key?e.key:""))===t&&""!==t)}(h,i.field)?i:{field:e,direction:t},f="desc"===p.direction?`-${p.field}`:p.field;return{sort:p,onSort:e=>{c.current=!0;const t=p.field===e?{field:e,direction:"asc"===p.direction?"desc":"asc"}:{field:e,direction:"asc"};if(l(t),s){try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(t))}catch{}a({[s]:t})}},ordering:f}}function Ra({filters:e,values:t,onChange:r,onClear:n,children:o}){const a=Object.values(t).filter(Boolean).length;/* @__PURE__ */
562
+ /* @__PURE__ */Jr("div",{className:"flex-1 min-h-0 flex flex-col",children:/* @__PURE__ */Jr(Ta,{tableId:c,columns:K,sort:h,onSort:p,footer:z,afterBody:V,saveDefaultPerms:C,children:e=>/* @__PURE__ */Jr("tbody",{ref:j,className:"divide-y divide-gray-100",children:t.map((t,r)=>{const n=m(t);/* @__PURE__ */
563
+ return Jr("tr",{"data-row-idx":r,className:`cursor-pointer ${A===r?"bg-blue-50 ring-1 ring-inset ring-blue-300":f.has(n)?"bg-blue-50 hover:bg-blue-100":"hover:bg-gray-50"} ${x?.(t)??""}`,onClick:()=>b(t),onContextMenu:e=>((e,t)=>{if(e.shiftKey||tr(e.target))return;e.preventDefault();const r=m(t);f.has(r)||g(/* @__PURE__ */new Set([r]));const n=Ma(e.currentTarget)[0]?.dataset.colKey,o=n?d.find(e=>e.key===n)?.label:void 0;M({x:e.clientX,y:e.clientY,item:t,text:oe(e.target),firstColumn:n&&o?{key:n,label:o}:null})})(e,t),onMouseEnter:y?()=>y(t):void 0,children:e.map(e=>/* @__PURE__ */Jr("td",{"data-col-key":e.key,className:"px-4 py-3 whitespace-nowrap text-sm overflow-hidden",children:"_select"===e.key?/* @__PURE__ */Jr(fe,{"aria-label":I.table.selectRow,checked:f.has(n),onChange:()=>P(t),onClick:e=>e.stopPropagation(),style:{height:14,width:14}}):u(t,e.key)},e.key))},n)})})})}),Y]})}function La({queryKey:e,fetchFn:t,extraParams:r={},pageSize:n=25}){const o=Ar(null),a=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),s=tn({queryKey:e,queryFn:({pageParam:e=1})=>t({page:String(e),...a}),getNextPageParam:(e,t)=>{if(e.next)return t.length+1},initialPageParam:1}),{fetchNextPage:i,hasNextPage:l,isFetchingNextPage:c}=s,d=$r(e=>{const[t]=e;t.isIntersecting&&l&&!c&&i()},[i,l,c]);Rr(()=>{const e=o.current;if(!e)return;let t=e.parentElement;for(;t;){const e=getComputedStyle(t).overflowY;if("auto"===e||"scroll"===e)break;t=t.parentElement}const r=new IntersectionObserver(d,{root:t,rootMargin:"200px",threshold:0});return r.observe(e),()=>r.disconnect()},[d]);const u=/* @__PURE__ */new Set;return{items:(s.data?.pages.flatMap(e=>e?.results??[])??[]).filter(e=>null!=e).filter(e=>{const t=e.id;return null==t||!u.has(t)&&(u.add(t),!0)}),totalCount:s.data?.pages[0]?.count??0,isLoading:s.isLoading,isError:s.isError,error:s.error,isFetchingNextPage:c,hasNextPage:!!l,sentinelRef:o,refetch:s.refetch}}function Pa(e){const t=e;return!!t&&"string"==typeof t.field&&t.field.length>0&&("asc"===t.direction||"desc"===t.direction)}function Da(e,t="asc",r,n){const{prefs:o,save:a}=Ht(),s=r?`sort_${r}`:null,[i,l]=Dr(()=>{if(s){if(Pa(o[s]))return o[s];try{const e=JSON.parse(localStorage.getItem(`sort-config-${r}`)||"null");if(Pa(e))return e}catch{}}return{field:e,direction:t}}),c=Ar(!1),d=s?o[s]:void 0,u=Ar(d);u.current=d,Rr(()=>{if(!c.current&&Pa(d)){l(e=>e.field===d.field&&e.direction===d.direction?e:d);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(d))}catch{}}},[r,d?.field,d?.direction]);const{defaultConfig:m}=Ca(r);Rr(()=>{const e=m?.sort;if(!c.current&&!Pa(u.current)&&Pa(e)){l(t=>t.field===e.field&&t.direction===e.direction?t:e);try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(e))}catch{}}},[r,m]);const h=n?.columns?.length?n.columns:void 0,p=!h||function(e,t){return e.some(e=>(e.sortField??("_select"!==e.key?e.key:""))===t&&""!==t)}(h,i.field)?i:{field:e,direction:t},f="desc"===p.direction?`-${p.field}`:p.field;return{sort:p,onSort:e=>{c.current=!0;const t=p.field===e?{field:e,direction:"asc"===p.direction?"desc":"asc"}:{field:e,direction:"asc"};if(l(t),s){try{localStorage.setItem(`sort-config-${r}`,JSON.stringify(t))}catch{}a({[s]:t})}},ordering:f}}function Ra({filters:e,values:t,onChange:r,onClear:n,children:o}){const a=Object.values(t).filter(Boolean).length;/* @__PURE__ */
564
564
  return Gr("div",{className:"flex items-center gap-3 flex-wrap",children:[e.map(e=>{const n=e.searchable??e.options.length>8;/* @__PURE__ */
565
565
  return Jr(n?$a:Aa,{filter:e,value:t[e.field]||"",onChange:t=>r(e.field,t)},e.field)}),o,a>0&&/* @__PURE__ */Gr("button",{onClick:n,className:"flex items-center gap-1 text-sm text-gray-500 hover:text-gray-700",children:[
566
- /* @__PURE__ */Jr(dr,{name:"close",look:"mini",className:"h-4 w-4"}),"Clear filters"]})]})}function Aa({filter:e,value:t,onChange:r}){const[n,o]=Dr(!1),[a,s]=Dr(-1),i=Ar(null),l=Ar(null),c=Ar(null),d=Ar(n);d.current=n;const u=Ar({buffer:"",timer:null}),m=Kr(),h=`${m}-listbox`,p=e=>`${m}-opt-${e}`,f=[{value:"",label:e.label},...e.options],g=t?f.findIndex(e=>e.value===t):0,b=t?e.options.find(e=>e.value===t)?.label:null,y=$r((e=!0)=>{o(!1),s(-1),e&&l.current?.focus()},[]),x=$r(()=>{s(g>=0?g:J(f)),o(!0)},[g,f]),w=$r(e=>{const t=f[e];t&&(r(t.value),y())},[f,r,y]);re(i,$r(()=>{n&&y(!1)},[n,y])),Rr(()=>{if(n)return Er(e=>!("Escape"!==e.key||!d.current)&&(y(),!0),()=>c.current)},[n,y]),Rr(()=>{!n||a<0||c.current?.querySelector(`#${CSS.escape(p(a))}`)?.scrollIntoView({block:"nearest"})});/* @__PURE__ */
566
+ /* @__PURE__ */Jr(dr,{name:"close",look:"mini",className:"h-4 w-4"}),"Clear filters"]})]})}function Aa({filter:e,value:t,onChange:r}){const[n,o]=Dr(!1),[a,s]=Dr(-1),i=Ar(null),l=Ar(null),c=Ar(null),d=Ar(n);d.current=n;const u=Ar({buffer:"",timer:null}),m=zr(),h=`${m}-listbox`,p=e=>`${m}-opt-${e}`,f=[{value:"",label:e.label},...e.options],g=t?f.findIndex(e=>e.value===t):0,b=t?e.options.find(e=>e.value===t)?.label:null,y=$r((e=!0)=>{o(!1),s(-1),e&&l.current?.focus()},[]),x=$r(()=>{s(g>=0?g:ae(f)),o(!0)},[g,f]),w=$r(e=>{const t=f[e];t&&(r(t.value),y())},[f,r,y]);Y(i,$r(()=>{n&&y(!1)},[n,y])),Rr(()=>{if(n)return Er(e=>!("Escape"!==e.key||!d.current)&&(y(),!0),()=>c.current)},[n,y]),Rr(()=>{!n||a<0||c.current?.querySelector(`#${CSS.escape(p(a))}`)?.scrollIntoView({block:"nearest"})});/* @__PURE__ */
567
567
  return Gr("div",{ref:i,className:"relative",children:[
568
- /* @__PURE__ */Gr("button",{ref:l,type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":n,"aria-controls":n?h:void 0,"aria-activedescendant":n&&a>=0?p(a):void 0,onClick:()=>n?y():x(),onKeyDown:e=>{switch(e.key){case"ArrowDown":return e.preventDefault(),void(n?s(e=>Z(f,e,1)):x());case"ArrowUp":return e.preventDefault(),void(n?s(e=>Z(f,e,-1)):x());case"Home":return void(n&&(e.preventDefault(),s(J(f))));case"End":return void(n&&(e.preventDefault(),s(Q(f))));case"Enter":return void(n&&(e.preventDefault(),w(a)));case" ":return e.preventDefault(),void(n?w(a):x());case"Escape":return void(n&&(e.preventDefault(),e.stopPropagation(),y()));case"Tab":return void(n&&y(!1));default:1!==e.key.length||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),(e=>{const t=u.current;t.timer&&clearTimeout(t.timer),t.buffer+=e,t.timer=setTimeout(()=>{t.buffer="",t.timer=null},500);const r=q(f,t.buffer,n?a:g);r<0||(n?s(r):w(r))})(e.key))}},className:`flex h-8 items-center gap-2 border rounded-lg px-3 text-sm transition-colors ${t?`${Se} ${_e}`:Ee}`,children:[
568
+ /* @__PURE__ */Gr("button",{ref:l,type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":n,"aria-controls":n?h:void 0,"aria-activedescendant":n&&a>=0?p(a):void 0,onClick:()=>n?y():x(),onKeyDown:e=>{switch(e.key){case"ArrowDown":return e.preventDefault(),void(n?s(e=>ie(f,e,1)):x());case"ArrowUp":return e.preventDefault(),void(n?s(e=>ie(f,e,-1)):x());case"Home":return void(n&&(e.preventDefault(),s(ae(f))));case"End":return void(n&&(e.preventDefault(),s(se(f))));case"Enter":return void(n&&(e.preventDefault(),w(a)));case" ":return e.preventDefault(),void(n?w(a):x());case"Escape":return void(n&&(e.preventDefault(),e.stopPropagation(),y()));case"Tab":return void(n&&y(!1));default:1!==e.key.length||e.metaKey||e.ctrlKey||e.altKey||(e.preventDefault(),(e=>{const t=u.current;t.timer&&clearTimeout(t.timer),t.buffer+=e,t.timer=setTimeout(()=>{t.buffer="",t.timer=null},500);const r=le(f,t.buffer,n?a:g);r<0||(n?s(r):w(r))})(e.key))}},className:`flex h-8 items-center gap-2 border rounded-lg px-3 text-sm transition-colors ${t?`${Se} ${_e}`:Ee}`,children:[
569
569
  /* @__PURE__ */Jr("span",{className:"truncate max-w-[140px]",children:b||e.label}),t?
570
- /* @__PURE__ */Jr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r("")},className:"cursor-pointer",children:/* @__PURE__ */Jr(dr,{name:"close",look:"mini",className:"h-3.5 w-3.5"})}):/* @__PURE__ */Jr(dr,{name:"chevron-down",className:"h-3.5 w-3.5 transition-transform "+(n?"rotate-180":""),strokeWidth:2})]}),n&&/* @__PURE__ */Jr("div",{ref:c,id:h,role:"listbox",className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-(--z-popup) max-h-52 overflow-y-auto py-1",style:_r(),children:f.map((e,t)=>/* @__PURE__ */Jr("div",{id:p(t),role:"option","aria-selected":t===g,onPointerEnter:()=>s(t),onClick:()=>w(t),className:"mx-1 h-8 cursor-pointer truncate rounded-lg px-3 text-sm leading-8\n "+(t===a?"bg-blue-50 text-blue-700":t===g?"font-medium text-blue-600":"text-gray-700"),children:e.label},e.value||"__all__"))})]})}function $a({filter:e,value:t,onChange:r}){const[n,o]=Dr(!1),[a,s]=Dr(""),i=Ar(null),l=Ar(null),c=t?e.options.find(e=>e.value===t)?.label:null;re(i,$r(()=>{n&&(o(!1),s(""))},[n])),Rr(()=>{n&&setTimeout(()=>l.current?.focus(),50)},[n]);const d=a?e.options.filter(e=>e.label.toLowerCase().includes(a.toLowerCase())):e.options;/* @__PURE__ */
570
+ /* @__PURE__ */Jr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r("")},className:"cursor-pointer",children:/* @__PURE__ */Jr(dr,{name:"close",look:"mini",className:"h-3.5 w-3.5"})}):/* @__PURE__ */Jr(dr,{name:"chevron-down",className:"h-3.5 w-3.5 transition-transform "+(n?"rotate-180":""),strokeWidth:2})]}),n&&/* @__PURE__ */Jr("div",{ref:c,id:h,role:"listbox",className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-(--z-popup) max-h-52 overflow-y-auto py-1",style:_r(),children:f.map((e,t)=>/* @__PURE__ */Jr("div",{id:p(t),role:"option","aria-selected":t===g,onPointerEnter:()=>s(t),onClick:()=>w(t),className:"mx-1 h-8 cursor-pointer truncate rounded-lg px-3 text-sm leading-8\n "+(t===a?"bg-blue-50 text-blue-700":t===g?"font-medium text-blue-600":"text-gray-700"),children:e.label},e.value||"__all__"))})]})}function $a({filter:e,value:t,onChange:r}){const[n,o]=Dr(!1),[a,s]=Dr(""),i=Ar(null),l=Ar(null),c=t?e.options.find(e=>e.value===t)?.label:null;Y(i,$r(()=>{n&&(o(!1),s(""))},[n])),Rr(()=>{n&&setTimeout(()=>l.current?.focus(),50)},[n]);const d=a?e.options.filter(e=>e.label.toLowerCase().includes(a.toLowerCase())):e.options;/* @__PURE__ */
571
571
  return Gr("div",{ref:i,className:"relative",children:[
572
572
  /* @__PURE__ */Gr("button",{onClick:()=>o(!n),className:`flex h-8 items-center gap-2 border rounded-lg px-3 text-sm transition-colors ${t?`${Se} ${_e}`:Ee}`,children:[
573
573
  /* @__PURE__ */Jr("span",{className:"truncate max-w-[140px]",children:c||e.label}),t?
574
574
  /* @__PURE__ */Jr("span",{"aria-hidden":"true",onClick:e=>{e.stopPropagation(),r(""),s("")},className:"cursor-pointer",children:/* @__PURE__ */Jr(dr,{name:"close",look:"mini",className:"h-3.5 w-3.5"})}):/* @__PURE__ */Jr(dr,{name:"chevron-down",className:"h-3.5 w-3.5 transition-transform "+(n?"rotate-180":""),strokeWidth:2})]}),n&&/* @__PURE__ */Gr("div",{className:"absolute top-full left-0 mt-1 w-56 rounded-(--radius-popup) z-(--z-popup) overflow-hidden",style:_r(),children:[
575
575
  /* @__PURE__ */Jr("div",{className:"p-1 border-b border-gray-100",children:/* @__PURE__ */Jr("input",{ref:l,value:a,onChange:e=>s(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"})}),
576
576
  /* @__PURE__ */Gr("div",{className:"max-h-52 overflow-y-auto",children:[
577
- /* @__PURE__ */Jr("button",{onClick:()=>{r(""),o(!1),s("")},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__ */Jr("p",{className:"px-3 py-3 text-sm text-gray-400 text-center",children:"No matches"}):d.map(e=>/* @__PURE__ */Jr("button",{onClick:()=>{r(e.value),o(!1),s("")},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 Wa(){const[e,t]=Dr({}),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 Fa=e=>e>0?`${e.toFixed(0)} fps`:"stalled";function Oa(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: ${Zn(o)}`);const s=o.network;s?.effectiveType&&"4g"!==s.effectiveType&&a.push(`Connection: ${s.effectiveType}${s.rttMs?` · ${s.rttMs} ms round trip`:""}`),a.push(""),a.push(`Median ${Fa(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} ${Fa(e.medianFps)} (worst ${e.worstMs.toFixed(0)} ms)`).join(" · ")}`);const l=t.worstMenus[0];l&&a.push(`Slowest menu: ${l.key} — ${Fa(l.medianFps)}`);const c=t.worstWindows[0];return c&&a.push(`Slowest window: ${c.key} — ${Fa(c.medianFps)}`),t.idle&&t.interacting&&a.push(`At rest ${Fa(t.idle.medianFps)} vs in use ${Fa(t.interacting.medianFps)}.`),a.push("",`Full log attached as ${e.filename}.`),a.join("\n")}function Ba(e){return new File([e.json],e.filename,{type:"application/json"})}function Ha(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 s=a.toUpperCase(),i=r.get(s);i?i.rowIndices.push(n):r.set(s,{key:a,rowIndices:[n]})});const n=[];for(const e of r.values())e.rowIndices.length>=2&&n.push(e);return n}function Ua(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 za(e){const{rows:t,existing:r,fieldMap:n,newItem:o,keyField:a="part_number"}=e,s=Object.entries(n).find(([,e])=>e===a);if(!s)throw new Error(`mergeBulkItems: fieldMap must map a row column to "${a}"`);const i=s[0],l=t.filter(e=>(e[i]??"").trim());if(0===l.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 l){const t=Ua(e,n),r=t[a];if(!r)continue;const s=c.get(r.toUpperCase());void 0!==s?d[s]={...d[s],...t}:u.push({...o(t),_isNew:!0})}return{merged:[...d,...u],importedCount:l.length}}function Ka(e){return e?e.replace(/[$¥¥€£,\s]/g,""):""}function Va(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 Ya(e,t){return 0===t?"key":e.kind??"text"}function Xa(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(Ka(e))).length>.5*t.length,a=t.every(e=>/^\d+$/.test(Ka(e)));if(r&&!n)return"key";if(n)return"price";if(o)return"price";if(a){return t.reduce((e,t)=>e+parseInt(Ka(t)),0)/t.length>10?"qty":"skip"}return"key"}function Ga(e,t){if(0===e.length||0===e[0].length)return null;const r=e[0].length,n=t.map((e,t)=>Ya(e,t)),o=[];for(let t=0;t<r;t++){const r=e.map(e=>e[t]||"");o.push(Xa(r))}const a=new Array(t.length).fill(-1),s=/* @__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(!s.has(n)&&o[n]===t){a[e]=n,s.add(n);break}}const i=n.map((e,t)=>({i:t,k:e})).filter(e=>"price"===e.k),l=o.map((e,t)=>({i:t,type:e})).filter(e=>"price"===e.type&&!s.has(e.i));let c=0;for(const e of i)-1===a[e.i]&&c<l.length&&(a[e.i]=l[c].i,s.add(l[c].i),c++);return-1===a[0]?null:a}function Ja({csvPreview:e,targetColumns:t,onConfirm:r,onCancel:n}){const o=Ga(e,t),[a,s]=Dr(o||new Array(t.length).fill(-1)),i=e[0]?.length||0,l=Tr().bulkImport,c=a[0]>=0;/* @__PURE__ */
577
+ /* @__PURE__ */Jr("button",{onClick:()=>{r(""),o(!1),s("")},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__ */Jr("p",{className:"px-3 py-3 text-sm text-gray-400 text-center",children:"No matches"}):d.map(e=>/* @__PURE__ */Jr("button",{onClick:()=>{r(e.value),o(!1),s("")},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 Wa(){const[e,t]=Dr({}),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 Fa=e=>e>0?`${e.toFixed(0)} fps`:"stalled";function Oa(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: ${qn(o)}`);const s=o.network;s?.effectiveType&&"4g"!==s.effectiveType&&a.push(`Connection: ${s.effectiveType}${s.rttMs?` · ${s.rttMs} ms round trip`:""}`),a.push(""),a.push(`Median ${Fa(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} ${Fa(e.medianFps)} (worst ${e.worstMs.toFixed(0)} ms)`).join(" · ")}`);const l=t.worstMenus[0];l&&a.push(`Slowest menu: ${l.key} — ${Fa(l.medianFps)}`);const c=t.worstWindows[0];return c&&a.push(`Slowest window: ${c.key} — ${Fa(c.medianFps)}`),t.idle&&t.interacting&&a.push(`At rest ${Fa(t.idle.medianFps)} vs in use ${Fa(t.interacting.medianFps)}.`),a.push("",`Full log attached as ${e.filename}.`),a.join("\n")}function Ba(e){return new File([e.json],e.filename,{type:"application/json"})}function Ha(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 s=a.toUpperCase(),i=r.get(s);i?i.rowIndices.push(n):r.set(s,{key:a,rowIndices:[n]})});const n=[];for(const e of r.values())e.rowIndices.length>=2&&n.push(e);return n}function Ua(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 Ka(e){const{rows:t,existing:r,fieldMap:n,newItem:o,keyField:a="part_number"}=e,s=Object.entries(n).find(([,e])=>e===a);if(!s)throw new Error(`mergeBulkItems: fieldMap must map a row column to "${a}"`);const i=s[0],l=t.filter(e=>(e[i]??"").trim());if(0===l.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 l){const t=Ua(e,n),r=t[a];if(!r)continue;const s=c.get(r.toUpperCase());void 0!==s?d[s]={...d[s],...t}:u.push({...o(t),_isNew:!0})}return{merged:[...d,...u],importedCount:l.length}}function za(e){return e?e.replace(/[$¥¥€£,\s]/g,""):""}function Va(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 Ya(e,t){return 0===t?"key":e.kind??"text"}function Xa(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(za(e))).length>.5*t.length,a=t.every(e=>/^\d+$/.test(za(e)));if(r&&!n)return"key";if(n)return"price";if(o)return"price";if(a){return t.reduce((e,t)=>e+parseInt(za(t)),0)/t.length>10?"qty":"skip"}return"key"}function Ga(e,t){if(0===e.length||0===e[0].length)return null;const r=e[0].length,n=t.map((e,t)=>Ya(e,t)),o=[];for(let t=0;t<r;t++){const r=e.map(e=>e[t]||"");o.push(Xa(r))}const a=new Array(t.length).fill(-1),s=/* @__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(!s.has(n)&&o[n]===t){a[e]=n,s.add(n);break}}const i=n.map((e,t)=>({i:t,k:e})).filter(e=>"price"===e.k),l=o.map((e,t)=>({i:t,type:e})).filter(e=>"price"===e.type&&!s.has(e.i));let c=0;for(const e of i)-1===a[e.i]&&c<l.length&&(a[e.i]=l[c].i,s.add(l[c].i),c++);return-1===a[0]?null:a}function Ja({csvPreview:e,targetColumns:t,onConfirm:r,onCancel:n}){const o=Ga(e,t),[a,s]=Dr(o||new Array(t.length).fill(-1)),i=e[0]?.length||0,l=Tr().bulkImport,c=a[0]>=0;/* @__PURE__ */
578
578
  return Gr("div",{className:"border border-blue-200 rounded-lg bg-blue-50 p-4 mb-3",children:[
579
579
  /* @__PURE__ */Jr("p",{className:"text-sm font-medium text-gray-800 mb-3",children:l.mapTitle}),
580
580
  /* @__PURE__ */Jr("div",{className:"grid grid-cols-2 gap-x-6 gap-y-2 mb-4",children:t.map((t,r)=>/* @__PURE__ */Gr("div",{className:"flex items-center gap-2",children:[
@@ -607,7 +607,7 @@ return Gr("div",{className:"border border-amber-200 rounded bg-white p-3",childr
607
607
  /* @__PURE__ */Jr("span",{className:"text-xs text-gray-600",children:i.keptDropped(l,c)}),
608
608
  /* @__PURE__ */Gr("div",{className:"flex gap-2",children:[
609
609
  /* @__PURE__ */Jr(nt,{onClick:s,className:"text-sm text-gray-500 hover:text-gray-700",children:i.cancel}),
610
- /* @__PURE__ */Jr("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 Za({rows:e,groups:t,columns:r,onConfirm:n,onCancel:o}){const a=r[0].key,s=t.reduce((e,t)=>e+t.rowIndices.length,0),i=Tr().bulkImport,l=Mr();/* @__PURE__ */
610
+ /* @__PURE__ */Jr("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 qa({rows:e,groups:t,columns:r,onConfirm:n,onCancel:o}){const a=r[0].key,s=t.reduce((e,t)=>e+t.rowIndices.length,0),i=Tr().bulkImport,l=Mr();/* @__PURE__ */
611
611
  return Gr("div",{className:"border border-amber-200 rounded-lg bg-amber-50 p-4 mb-3",children:[
612
612
  /* @__PURE__ */Jr("p",{className:"text-sm font-medium text-gray-800 mb-1",children:i.duplicatesTitle}),
613
613
  /* @__PURE__ */Jr("p",{className:"text-xs text-gray-600 mb-3",children:i.duplicatesMerged(t.length)}),
@@ -624,7 +624,7 @@ return Gr("td",{className:"px-2 py-1 font-mono text-gray-700",children:[n.length
624
624
  /* @__PURE__ */Jr("span",{className:"text-xs text-gray-600",children:i.mergeSummary(s,t.length)}),
625
625
  /* @__PURE__ */Gr("div",{className:"flex gap-2",children:[
626
626
  /* @__PURE__ */Jr(nt,{onClick:o,className:"text-sm text-gray-500 hover:text-gray-700",children:i.cancel}),
627
- /* @__PURE__ */Jr("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 qa({columns:e,onImport:t,description:r,mergeDuplicates:n=!1}){const[o,a]=Dr(()=>Array.from({length:15},()=>Array(e.length).fill(""))),[s,i]=Dr(!1),[l,c]=Dr(""),[d,u]=Dr(null),[m,h]=Dr(null),[p,f]=Dr(null),g=e.length,b=e[0]?.title?.replace(" *","")||"",y=Tr().bulkImport,x=Mr(),w=o.filter(e=>e[0]?.trim()),v=w.length,k={};for(let t=1;t<e.length;t++){if("text"===Ya(e[t],t))continue;let r=0;for(const e of w){const n=parseFloat(Ka(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=$r(t=>{const r=t.map(t=>{const r=[...t];for(;r.length<g;)r.push("");return r.slice(0,g).map((t,r)=>{const n=Ya(e[r],r);return"price"===n||"qty"===n?Ka(t):t})});for(;r.length<15;)r.push(Array(g).fill(""));a(P(r,g))},[g,e]),S=ye({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(Va);if(0===r.length)return;const n=Ga(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(y.importFailed)}i(!1)},E=r||y.description;/* @__PURE__ */
627
+ /* @__PURE__ */Jr("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 Za({columns:e,onImport:t,description:r,mergeDuplicates:n=!1}){const[o,a]=Dr(()=>Array.from({length:15},()=>Array(e.length).fill(""))),[s,i]=Dr(!1),[l,c]=Dr(""),[d,u]=Dr(null),[m,h]=Dr(null),[p,f]=Dr(null),g=e.length,b=e[0]?.title?.replace(" *","")||"",y=Tr().bulkImport,x=Mr(),w=o.filter(e=>e[0]?.trim()),v=w.length,k={};for(let t=1;t<e.length;t++){if("text"===Ya(e[t],t))continue;let r=0;for(const e of w){const n=parseFloat(za(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=$r(t=>{const r=t.map(t=>{const r=[...t];for(;r.length<g;)r.push("");return r.slice(0,g).map((t,r)=>{const n=Ya(e[r],r);return"price"===n||"qty"===n?za(t):t})});for(;r.length<15;)r.push(Array(g).fill(""));a(P(r,g))},[g,e]),S=ye({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(Va);if(0===r.length)return;const n=Ga(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(y.importFailed)}i(!1)},E=r||y.description;/* @__PURE__ */
628
628
  return Gr("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:[
629
629
  /* @__PURE__ */Gr("div",{className:"px-4 pt-3 pb-2 flex items-center justify-between",children:[
630
630
  /* @__PURE__ */Gr("p",{className:"text-xs text-gray-500",children:[E,
@@ -632,11 +632,11 @@ return Gr("div",{...S.zoneProps,className:["border rounded-lg bg-gray-50 mb-3 ov
632
632
  /* @__PURE__ */Gr("div",{className:"flex items-center gap-2",children:[v>0&&/* @__PURE__ */Jr("button",{type:"button",onClick:()=>{a(Array.from({length:15},()=>Array(g).fill("")))},className:"text-gray-400 hover:text-gray-600 text-xs",children:y.clear}),
633
633
  /* @__PURE__ */Jr("input",{...S.inputProps}),
634
634
  /* @__PURE__ */Jr("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:y.upload}),
635
- /* @__PURE__ */Jr("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=Ya(e,n);r[e.key]="price"===a||"qty"===a?Ka(o):o}),r});if(0===t.length)return void c(y.enterAtLeastOne(b.toLowerCase(),b));c("");const r=Ha(t,e[0].key);if(r.length>0)if(n)f({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:s||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:s?y.importing:y.importLines(v)})]})]}),d&&/* @__PURE__ */Jr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Jr(Ja,{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__ */Jr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Jr(Qa,{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(y.allSkipped)},onCancel:()=>h(null)})}),p&&/* @__PURE__ */Jr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Jr(Za,{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 s=[];return e.forEach((t,i)=>{const l=o.get(i);if(l){const t={};for(const o of r){if(o.key===n){t[o.key]=l.key;continue}const r=l.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)):""}s.push(t)}else a.has(i)||s.push(t)}),s}(p.rows,p.groups,e);f(null),await _(t)},onCancel:()=>f(null)})}),
635
+ /* @__PURE__ */Jr("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=Ya(e,n);r[e.key]="price"===a||"qty"===a?za(o):o}),r});if(0===t.length)return void c(y.enterAtLeastOne(b.toLowerCase(),b));c("");const r=Ha(t,e[0].key);if(r.length>0)if(n)f({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:s||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:s?y.importing:y.importLines(v)})]})]}),d&&/* @__PURE__ */Jr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Jr(Ja,{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__ */Jr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Jr(Qa,{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(y.allSkipped)},onCancel:()=>h(null)})}),p&&/* @__PURE__ */Jr("div",{className:"px-4 pb-2",children:/* @__PURE__ */Jr(qa,{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 s=[];return e.forEach((t,i)=>{const l=o.get(i);if(l){const t={};for(const o of r){if(o.key===n){t[o.key]=l.key;continue}const r=l.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)):""}s.push(t)}else a.has(i)||s.push(t)}),s}(p.rows,p.groups,e);f(null),await _(t)},onCancel:()=>f(null)})}),
636
636
  /* @__PURE__ */Jr(D,{columns:N,data:o,onChange:a}),
637
637
  /* @__PURE__ */Jr(xe,{rejections:S.rejections,className:"px-4 py-1"}),l&&/* @__PURE__ */Jr("p",{className:"text-xs text-red-600 px-4 py-1",children:l})]})}function es({healthCheck:e,healthUrl:t="/api/health/",pollMs:r=15e3,requestTimeoutMs:n=5e3,user:o,version:a=lr}){const[s,i]=Dr("checking"),[l,c]=Dr(null),[d,u]=Dr(null),[m,h]=Dr(null),[p,f]=Dr(navigator.onLine),[g,b]=Dr(!1),[y,x]=Dr({left:0,top:0}),[,w]=Dr(0),v=Ar(!1),k=Ar(null),N=Tr().serverStatus,C=Mr(),S=Ar(null),_=Ar(e),E=Ar(t),T=Ar(n);_.current=e,E.current=t,T.current=n;const M=$r(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))}},[]);Rr(()=>{v.current=!1,M();const e=setInterval(M,r);return()=>{v.current=!0,clearInterval(e)}},[M,r]),Rr(()=>{const e=()=>f(!0),t=()=>f(!1);return window.addEventListener("online",e),window.addEventListener("offline",t),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",t)}},[]),Rr(()=>{if(!g)return;const e=setInterval(()=>w(e=>e+1),1e3);return()=>clearInterval(e)},[g]);const j=$r(()=>{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})},[]);Rr(()=>{if(g)return j(),window.addEventListener("resize",j),()=>window.removeEventListener("resize",j)},[g,j]),Wr(()=>{g&&S.current&&j()},[g,j]),Rr(()=>{if(!g)return;const e=e=>{const t=e.target;S.current?.contains(t)||k.current?.contains(t)||b(!1)},t=e=>{"Escape"===e.key&&b(!1)};window.addEventListener("mousedown",e),window.addEventListener("keydown",t);const r=kr(()=>b(!1));return()=>{window.removeEventListener("mousedown",e),window.removeEventListener("keydown",t),r()}},[g]);const I="connected"===s?"#16a34a":"disconnected"===s?"#dc2626":"#9ca3af",L="connected"===s?N.connected:"disconnected"===s?N.disconnected:N.checking,P="connected"===s?"bg-green-500":"disconnected"===s?"bg-red-500":"bg-gray-400",D=o?o.name?.trim()||o.email||"—":N.notSignedIn,R=o?.role||"";/* @__PURE__ */
638
638
  return Gr(Qr,{children:[
639
- /* @__PURE__ */Jr("button",{ref:k,type:"button",onClick:()=>b(e=>!e),className:"shrink-0 inline-flex items-center justify-center rounded-md p-2 transition-colors hover:bg-white/20 "+("disconnected"!==s||g?"":"animate-pulse"),title:l?N.lastOkTitle(L,l.toLocaleTimeString(C)):L,"aria-label":L,"aria-expanded":g,children:/* @__PURE__ */Jr(dr,{name:"globe",className:"h-5 w-5",stroke:I,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})}),g&&Zr(
639
+ /* @__PURE__ */Jr("button",{ref:k,type:"button",onClick:()=>b(e=>!e),className:"shrink-0 inline-flex items-center justify-center rounded-md p-2 transition-colors hover:bg-white/20 "+("disconnected"!==s||g?"":"animate-pulse"),title:l?N.lastOkTitle(L,l.toLocaleTimeString(C)):L,"aria-label":L,"aria-expanded":g,children:/* @__PURE__ */Jr(dr,{name:"globe",className:"h-5 w-5",stroke:I,strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})}),g&&qr(
640
640
  /* @__PURE__ */Gr("div",{ref:S,role:"dialog","aria-label":N.details,style:{position:"fixed",left:y.left,top:y.top,width:320,zIndex:Nr.popup},className:"rounded-lg border border-gray-200 bg-white shadow-lg overflow-hidden text-gray-800",children:[
641
641
  /* @__PURE__ */Gr("div",{className:"px-4 py-3 border-b border-gray-100 bg-gray-50/60",children:[
642
642
  /* @__PURE__ */Gr("div",{className:"flex items-center gap-2",children:[
@@ -680,19 +680,19 @@ return Gr(Qr,{children:[
680
680
  /* @__PURE__ */Jr(dr,{name:"check-circle",className:"h-5 w-5 text-green-600 shrink-0 mt-0.5",strokeWidth:2}),
681
681
  /* @__PURE__ */Jr("p",{className:"text-sm font-medium text-green-800",children:s.changed})]}),
682
682
  /* @__PURE__ */Jr("div",{className:"flex justify-end pt-2 border-t border-gray-200",children:/* @__PURE__ */Jr(cr,{variant:"primary",onClick:()=>t?.(),children:a??s.done})})]}):/* @__PURE__ */Gr("form",{onSubmit:async o=>{if(o.preventDefault(),i)if(c.length<n)p(s.tooShort(n));else if(c===u){p(""),g(!0);try{await e(i,c),r?y(!0):t?.()}catch(e){p(e instanceof Error&&e.message?e.message:s.failed)}finally{g(!1)}}else p(s.mismatch);else p(s.currentRequired)},className:"space-y-4",children:[
683
- /* @__PURE__ */Jr(ue,{label:s.current,required:!0,children:/* @__PURE__ */Jr(ee,{type:"password",value:i,onChange:e=>l(e.target.value),required:!0})}),
684
- /* @__PURE__ */Jr(ue,{label:s.newPassword,required:!0,children:/* @__PURE__ */Jr(ee,{type:"password",value:c,onChange:e=>d(e.target.value),required:!0,minLength:n})}),
685
- /* @__PURE__ */Jr(ue,{label:s.confirm,required:!0,children:/* @__PURE__ */Jr(ee,{type:"password",value:u,onChange:e=>m(e.target.value),required:!0})}),h&&/* @__PURE__ */Jr("p",{className:"text-sm text-red-600",children:h}),
683
+ /* @__PURE__ */Jr(de,{label:s.current,required:!0,children:/* @__PURE__ */Jr(ce,{type:"password",value:i,onChange:e=>l(e.target.value),required:!0})}),
684
+ /* @__PURE__ */Jr(de,{label:s.newPassword,required:!0,children:/* @__PURE__ */Jr(ce,{type:"password",value:c,onChange:e=>d(e.target.value),required:!0,minLength:n})}),
685
+ /* @__PURE__ */Jr(de,{label:s.confirm,required:!0,children:/* @__PURE__ */Jr(ce,{type:"password",value:u,onChange:e=>m(e.target.value),required:!0})}),h&&/* @__PURE__ */Jr("p",{className:"text-sm text-red-600",children:h}),
686
686
  /* @__PURE__ */Jr("div",{className:"flex justify-end pt-2 border-t border-gray-200",children:/* @__PURE__ */Jr(cr,{type:"submit",variant:"primary",loading:f,children:o??s.submit})})]})}var rs=/* @__PURE__ */Symbol("react-os-shell:timed-out");var ns=/* @__PURE__ */Jr(dr,{name:"page",className:"h-4 w-4",strokeWidth:1.5});function os({fetchPdf:e,filename:t,label:r,className:n,disabled:o,onEmail:a,onPreviewOpened:s,openPreview:i,icon:l,timeoutMs:c=3e4}){const[d,u]=Dr(!1),[m,h]=Dr(!1),p=Ar(null),[f,g]=Dr({left:0,top:0}),{openPage:b}=We(),y=Tr().pdfAction;Rr(()=>{if(d&&p.current){const e=p.current.getBoundingClientRect();g({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(rs),t)})])}finally{void 0!==r&&clearTimeout(r)}}(e(),c)}finally{h(!1)}};/* @__PURE__ */
687
687
  return Gr(Qr,{children:[
688
688
  /* @__PURE__ */Gr("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:[m?/* @__PURE__ */Jr(wr,{className:"h-4 w-4",ink:""}):l??ns,r??y.label,
689
- /* @__PURE__ */Jr(dr,{name:"chevron-down",className:"h-3 w-3",strokeWidth:2})]}),d&&Zr(
690
- /* @__PURE__ */Gr(zt,{style:f,onClose:()=>u(!1),minWidth:180,children:[
691
- /* @__PURE__ */Gr(Vt,{onClick:async()=>{u(!1);const e=Pe({filename:t,converting:!0,convertingMessage:y.previewLoading});i?i():b("/preview");const r=await x();if(r===rs)return void e.update({filename:t,converting:!1,convertingMessage:y.previewTookTooLong});if(!r)return void e.update({filename:t,converting:!1,convertingMessage:y.previewFailed});const n=window.URL.createObjectURL(r);e.update({url:n,filename:t,...a?{onEmail:()=>a(r)}:{}}),s?.(t)},children:[
689
+ /* @__PURE__ */Jr(dr,{name:"chevron-down",className:"h-3 w-3",strokeWidth:2})]}),d&&qr(
690
+ /* @__PURE__ */Gr(Vt,{style:f,onClose:()=>u(!1),minWidth:180,children:[
691
+ /* @__PURE__ */Gr(Xt,{onClick:async()=>{u(!1);const e=Pe({filename:t,converting:!0,convertingMessage:y.previewLoading});i?i():b("/preview");const r=await x();if(r===rs)return void e.update({filename:t,converting:!1,convertingMessage:y.previewTookTooLong});if(!r)return void e.update({filename:t,converting:!1,convertingMessage:y.previewFailed});const n=window.URL.createObjectURL(r);e.update({url:n,filename:t,...a?{onEmail:()=>a(r)}:{}}),s?.(t)},children:[
692
692
  /* @__PURE__ */Jr(dr,{name:"eye",className:"h-4 w-4",strokeWidth:1.5}),y.preview]}),
693
- /* @__PURE__ */Gr(Vt,{onClick:async()=>{u(!1);const e=await x();if(e===rs)return void Ht.error(y.tookTooLong(t));if(!e)return;const r=window.URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.click(),window.URL.revokeObjectURL(r),Ht.success(y.downloaded(t))},children:[
693
+ /* @__PURE__ */Gr(Xt,{onClick:async()=>{u(!1);const e=await x();if(e===rs)return void Kt.error(y.tookTooLong(t));if(!e)return;const r=window.URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.click(),window.URL.revokeObjectURL(r),Kt.success(y.downloaded(t))},children:[
694
694
  /* @__PURE__ */Jr(dr,{name:"download",className:"h-4 w-4",strokeWidth:1.5}),y.download]}),a&&/* @__PURE__ */Gr(Qr,{children:[
695
- /* @__PURE__ */Jr(Ut,{}),
696
- /* @__PURE__ */Gr(Vt,{onClick:async()=>{u(!1);const e=await x();e!==rs?e&&a&&a(e):Ht.error(y.tookTooLong(t))},children:[
695
+ /* @__PURE__ */Jr(zt,{}),
696
+ /* @__PURE__ */Gr(Xt,{onClick:async()=>{u(!1);const e=await x();e!==rs?e&&a&&a(e):Kt.error(y.tookTooLong(t))},children:[
697
697
  /* @__PURE__ */Jr(dr,{name:"email",className:"h-4 w-4",strokeWidth:1.5}),y.email]})]})]}),document.body)]})}var as=Ir(null);function ss({value:e,children:t}){/* @__PURE__ */
698
- return Jr(as.Provider,{value:e,children:t})}function is(){return Br(as)??(e=>{throw new Error(`efficient-shell: cannot fetch ${e} — no <ShellEntityFetcherProvider> mounted. If your app registers entity windows, supply an entityFetcher.`)})}function ls(e){const t=Ge();Rr(()=>{if(!t)return;const r=t=>{const r="KeyN"===t.code||"N"===t.key||"n"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function cs(e){const t=Ge();Rr(()=>{if(!e||!t)return;const r=t=>{const r="KeyE"===t.code||"E"===t.key||"e"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function ds(e,t){const r=e?.modalId;return"string"!=typeof r||""===r||(!t||r===t)}function us(e){const t=Qe();Rr(()=>{if(!e)return;const r=r=>{ds(r.detail,t)&&e()};return document.addEventListener("modal-save",r),()=>document.removeEventListener("modal-save",r)},[e,t])}function ms(e){const t=Qe();Rr(()=>{if(!e)return;const r=r=>{ds(r.detail,t)&&e()};return document.addEventListener("modal-duplicate",r),()=>document.removeEventListener("modal-duplicate",r)},[e,t])}export{En as BLOCKED_PCT_CPU,ga as BehaviorPanel,qa as BulkImportGrid,ts as ChangePasswordForm,da as Customization,xn as DEV_BANNER_TEXT,uo as Desktop,io as DesktopHostProvider,kn as DevIndicator,Ia as EntityList,Ra as FilterBar,Pn as LOG_CAP,Jo as Layout,Rn as MIN_EVENT_SAMPLES,Dn as MIN_GROUP_SAMPLES,yn as NotificationBell,os as PdfActionButton,eo as PerfStats,Ta as ResizableTable,_n as SMOOTH_FPS,es as ServerStatusIndicator,gn as ShellContextMenu,ss as ShellEntityFetcherProvider,cn as ShortcutHelp,ya as SoundsPanel,Bo as StartMenu,xa as SystemPreferences,Sn as WidgetManager,An as appendPerfRecord,vn as applyDevTitle,Ln as classifyActivity,jn as classifyPerf,on as createWindowRegistry,an as createWindowTarget,Zn as describeMachine,Oa as describePerfReport,Ha as findDuplicateKeys,Io as installThemeIconSets,wn as isDevEnv,$n as isInteracting,po as layoutModeOf,za as mergeBulkItems,bn as notificationRowParts,zn as perfLogToCsv,Ba as perfReportFile,Qn as readPerfEnvironment,Yn as requestAsyncEnvironment,Mn as summariseFrames,Hn as summarisePerfLog,Ea as useColumnConfig,lo as useDesktopHost,cs as useEditHotkey,Wa as useFilters,La as useInfiniteScroll,ms as useModalDuplicate,us as useModalSave,ls as useNewHotkey,go as useSetLayoutMode,is as useShellEntityFetcher,Da as useSort,va as useTableNav,sn as useWindowTarget};
698
+ return Jr(as.Provider,{value:e,children:t})}function is(){return Br(as)??(e=>{throw new Error(`efficient-shell: cannot fetch ${e} — no <ShellEntityFetcherProvider> mounted. If your app registers entity windows, supply an entityFetcher.`)})}function ls(e){const t=Ge();Rr(()=>{if(!t)return;const r=t=>{const r="KeyN"===t.code||"N"===t.key||"n"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function cs(e){const t=Ge();Rr(()=>{if(!e||!t)return;const r=t=>{const r="KeyE"===t.code||"E"===t.key||"e"===t.key;t.altKey&&t.shiftKey&&r&&!t.metaKey&&!t.ctrlKey&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",r,!0),()=>window.removeEventListener("keydown",r,!0)},[e,t])}function ds(e,t){const r=e?.modalId;return"string"!=typeof r||""===r||(!t||r===t)}function us(e){const t=Qe();Rr(()=>{if(!e)return;const r=r=>{ds(r.detail,t)&&e()};return document.addEventListener("modal-save",r),()=>document.removeEventListener("modal-save",r)},[e,t])}function ms(e){const t=Qe();Rr(()=>{if(!e)return;const r=r=>{ds(r.detail,t)&&e()};return document.addEventListener("modal-duplicate",r),()=>document.removeEventListener("modal-duplicate",r)},[e,t])}export{En as BLOCKED_PCT_CPU,ga as BehaviorPanel,Za as BulkImportGrid,ts as ChangePasswordForm,da as Customization,xn as DEV_BANNER_TEXT,uo as Desktop,io as DesktopHostProvider,kn as DevIndicator,Ia as EntityList,Ra as FilterBar,Pn as LOG_CAP,Jo as Layout,Rn as MIN_EVENT_SAMPLES,Dn as MIN_GROUP_SAMPLES,yn as NotificationBell,os as PdfActionButton,eo as PerfStats,Ta as ResizableTable,_n as SMOOTH_FPS,es as ServerStatusIndicator,gn as ShellContextMenu,ss as ShellEntityFetcherProvider,cn as ShortcutHelp,ya as SoundsPanel,Bo as StartMenu,xa as SystemPreferences,Sn as WidgetManager,An as appendPerfRecord,vn as applyDevTitle,Ln as classifyActivity,jn as classifyPerf,on as createWindowRegistry,an as createWindowTarget,qn as describeMachine,Oa as describePerfReport,Ha as findDuplicateKeys,Io as installThemeIconSets,wn as isDevEnv,$n as isInteracting,po as layoutModeOf,Ka as mergeBulkItems,bn as notificationRowParts,Kn as perfLogToCsv,Ba as perfReportFile,Qn as readPerfEnvironment,Yn as requestAsyncEnvironment,Mn as summariseFrames,Hn as summarisePerfLog,Ea as useColumnConfig,lo as useDesktopHost,cs as useEditHotkey,Wa as useFilters,La as useInfiniteScroll,ms as useModalDuplicate,us as useModalSave,ls as useNewHotkey,go as useSetLayoutMode,is as useShellEntityFetcher,Da as useSort,va as useTableNav,sn as useWindowTarget};