efficient-shell 8.41.0 → 9.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -20
- package/dist/Browser-ZPOVP4Z7.js +43 -0
- package/dist/Calculator-CSYRZAS5.js +29 -0
- package/dist/CurrencyConverter-SSR2XDIC.js +21 -0
- package/dist/{Documents-VVKKYYJS.js → Documents-T7JYO223.js} +14 -14
- package/dist/Files-HBGW3JWI.js +88 -0
- package/dist/Notepad-GO2QT55C.js +25 -0
- package/dist/PdfViewer-XSISAJZP.js +1 -0
- package/dist/{PomodoroTimer-ZVD3D357.js → PomodoroTimer-EV6D4OFU.js} +28 -28
- package/dist/{Preview-K5AJQGE7.js → Preview-Z2CRCDHA.js} +58 -58
- package/dist/Sidebar-Y4DTQYW2.js +43 -0
- package/dist/Spreadsheet-GEE77GD3.js +37 -0
- package/dist/Stock-6ZIQHGPH.js +16 -0
- package/dist/Weather-II7NFRMK.js +60 -0
- package/dist/WorldClock-NBLNO63Q.js +32 -0
- package/dist/ai/index.d.ts +35 -4
- package/dist/ai/index.js +46 -46
- package/dist/ai.css +1 -1
- package/dist/apps/index.js +1 -1
- package/dist/bin/media-host-check.js +1 -1
- package/dist/bin/ui-check.js +1 -1
- package/dist/brand.css +1 -1
- package/dist/charts/BoxPlotChart.js +1 -1
- package/dist/charts/CandlestickChart.js +1 -1
- package/dist/charts/CartesianPlot.js +1 -1
- package/dist/charts/ChartBrush.js +1 -1
- package/dist/charts/ChartFrame.js +1 -1
- package/dist/charts/ChartSkeleton.js +1 -1
- package/dist/charts/ChartTooltip.js +1 -1
- package/dist/charts/ChordChart.js +1 -1
- package/dist/charts/ColumnChart.js +1 -1
- package/dist/charts/FunnelChart.js +1 -1
- package/dist/charts/HeatmapChart.js +1 -1
- package/dist/charts/HistogramChart.js +1 -1
- package/dist/charts/Meter.js +1 -1
- package/dist/charts/PieChart.js +1 -1
- package/dist/charts/RadarChart.js +1 -1
- package/dist/charts/RadialBarChart.js +1 -1
- package/dist/charts/RangeChart.js +1 -1
- package/dist/charts/RankedBars.js +1 -1
- package/dist/charts/SankeyChart.js +1 -1
- package/dist/charts/ScatterChart.js +1 -1
- package/dist/charts/SpecChart.js +1 -1
- package/dist/charts/StatTile.js +1 -1
- package/dist/charts/SunburstChart.js +1 -1
- package/dist/charts/TimeSeriesChart.js +1 -1
- package/dist/charts/TreemapChart.js +1 -1
- package/dist/charts/WaterfallChart.js +1 -1
- package/dist/chunk-24K6GVNM.js +28 -0
- package/dist/{chunk-M2AIC7IK.js → chunk-2HEJDLPP.js} +2 -2
- package/dist/{chunk-BRHIRE4D.js → chunk-2MLRK7IO.js} +2 -2
- package/dist/chunk-2R3BVU75.js +26 -0
- package/dist/chunk-2YLG32JY.js +2 -0
- package/dist/{chunk-TZSPJIP4.js → chunk-32VV2J22.js} +1 -1
- package/dist/{chunk-QQCHLRKG.js → chunk-3APSMJPN.js} +1 -1
- package/dist/{chunk-6SMQNPWS.js → chunk-43ONX6UZ.js} +1 -1
- package/dist/{chunk-L7IKTEOC.js → chunk-442FFHQJ.js} +13 -13
- package/dist/chunk-4MVRSCQE.js +1 -0
- package/dist/{chunk-BT3XDH3L.js → chunk-56RAOI7O.js} +6 -6
- package/dist/chunk-5F7HMNCX.js +5 -0
- package/dist/chunk-5GUBNCTP.js +1 -0
- package/dist/{chunk-LGLZTJ2W.js → chunk-5JRL5LXD.js} +6 -6
- package/dist/{chunk-OFHCDTJM.js → chunk-5VOVNIOU.js} +1 -1
- package/dist/{chunk-NID6MGGC.js → chunk-5VRMQTKV.js} +8 -8
- package/dist/chunk-6453ISTQ.js +4 -0
- package/dist/chunk-6FEL5D56.js +8 -0
- package/dist/{chunk-MVQBVPWP.js → chunk-6KBDNYRW.js} +1 -1
- package/dist/{chunk-D2AUUIKG.js → chunk-6MVHRNWC.js} +1 -1
- package/dist/{chunk-TW7TA2AB.js → chunk-6ZHX56NM.js} +1 -1
- package/dist/{chunk-RNBM5JZI.js → chunk-7JGR7WPD.js} +4 -4
- package/dist/{chunk-BIJ7ADTZ.js → chunk-7WGOLPGM.js} +1 -1
- package/dist/{chunk-SXSMIMFY.js → chunk-A6RB4PIX.js} +4 -4
- package/dist/chunk-AC373WIU.js +8 -0
- package/dist/{chunk-BMPBVI7P.js → chunk-AGUA3O5O.js} +1 -1
- package/dist/{chunk-UVUBZL7K.js → chunk-ANFLQSGX.js} +5 -5
- package/dist/chunk-ARWMJSQJ.js +3 -0
- package/dist/chunk-AYZY3YNC.js +1 -0
- package/dist/{chunk-BSNWVZHW.js → chunk-B4KMHEFZ.js} +1 -1
- package/dist/chunk-B6YOP2IX.js +6 -0
- package/dist/{chunk-4VLKDANH.js → chunk-BBEOFKLY.js} +1 -1
- package/dist/{chunk-22S6LG6D.js → chunk-BCDG4N6L.js} +1 -1
- package/dist/{chunk-DFDDRKIJ.js → chunk-BCUQXILM.js} +1 -1
- package/dist/chunk-BGRT775Y.js +2 -0
- package/dist/{chunk-5TFTSYOD.js → chunk-BVTNGW5S.js} +1 -1
- package/dist/{chunk-TVJRENCQ.js → chunk-BWUU565Y.js} +9 -9
- package/dist/{chunk-BKZGI76S.js → chunk-BZBMZDLD.js} +1 -1
- package/dist/chunk-BZG5E7GF.js +6 -0
- package/dist/{chunk-SBHFEWR6.js → chunk-C4UL2UNR.js} +1 -1
- package/dist/{chunk-DOCUM3K7.js → chunk-CAG3TSV2.js} +1 -1
- package/dist/chunk-CE5BARZI.js +16 -0
- package/dist/chunk-CJB73MHF.js +2 -0
- package/dist/{chunk-N6DTTOB6.js → chunk-CKPVXDKX.js} +3 -3
- package/dist/chunk-CO5RKOVX.js +20 -0
- package/dist/chunk-CRXFSN5K.js +20 -0
- package/dist/chunk-CVNJSD2J.js +18 -0
- package/dist/{chunk-RYBJ6MMM.js → chunk-CXMTDYVI.js} +1 -1
- package/dist/chunk-D7IXMMZT.js +9 -0
- package/dist/{chunk-JUGPTBMS.js → chunk-DLNYXXNE.js} +2 -2
- package/dist/chunk-DNWV6N4P.js +5 -0
- package/dist/{chunk-KZHPX4FM.js → chunk-DWBZ3Z34.js} +2 -2
- package/dist/chunk-DZTAGMNY.js +100 -0
- package/dist/chunk-E4E7MACR.js +20 -0
- package/dist/{chunk-DZNG34DC.js → chunk-EFFF3FCS.js} +23 -23
- package/dist/{chunk-NL5G26Q7.js → chunk-EGAV5LSX.js} +1 -1
- package/dist/{chunk-M5P6A7KS.js → chunk-ENL5L6NR.js} +1 -1
- package/dist/chunk-EW3L4W2I.js +14 -0
- package/dist/{chunk-6GWZ5UPX.js → chunk-EWVOGTEX.js} +1 -1
- package/dist/{chunk-I7HDD4IM.js → chunk-EXNAAHN4.js} +2 -2
- package/dist/{chunk-YDYDR72S.js → chunk-F4DIVARP.js} +1 -1
- package/dist/{chunk-WYN5KVU4.js → chunk-F7F6Z64G.js} +3 -3
- package/dist/{chunk-5PY4H4ZJ.js → chunk-FBUUXK5G.js} +1 -1
- package/dist/chunk-FKNJSD6B.js +14 -0
- package/dist/{chunk-D7FT2PXG.js → chunk-FLEG5KP5.js} +5 -5
- package/dist/{chunk-C4YN2DNM.js → chunk-FLQZ7GQ3.js} +11 -11
- package/dist/{chunk-L5ND7FNA.js → chunk-FPGRKHUW.js} +12 -12
- package/dist/chunk-G6CTTBKE.js +9 -0
- package/dist/{chunk-N2SJNPFY.js → chunk-GS5AISRS.js} +4 -4
- package/dist/{chunk-4Y4PWKMM.js → chunk-GVC535IA.js} +3 -3
- package/dist/chunk-HEEY4TVP.js +8 -0
- package/dist/chunk-HJWTWS5E.js +8 -0
- package/dist/{chunk-VH6GB73Q.js → chunk-HL6JSDN3.js} +1 -1
- package/dist/chunk-HNQPF5QZ.js +2 -0
- package/dist/{chunk-WRORJNS5.js → chunk-HQMN5THW.js} +10 -10
- package/dist/chunk-HUF34LSW.js +15 -0
- package/dist/chunk-IB4333CI.js +14 -0
- package/dist/chunk-IGNZULKG.js +17 -0
- package/dist/chunk-IJIESSTX.js +5 -0
- package/dist/{chunk-S7VSXUKS.js → chunk-IJWFKUYA.js} +4 -4
- package/dist/chunk-IK2WXW2E.js +27 -0
- package/dist/{chunk-UZMZ2EDW.js → chunk-IMOPDLMA.js} +1 -1
- package/dist/{chunk-2FLYC6I2.js → chunk-IN4KV3SJ.js} +1 -1
- package/dist/chunk-IPTCV6CQ.js +69 -0
- package/dist/{chunk-FORJ75AU.js → chunk-IQWIYZB5.js} +2 -2
- package/dist/chunk-IX6QMUJQ.js +9 -0
- package/dist/{chunk-4G5VLI7E.js → chunk-JDQGHQ2C.js} +1 -1
- package/dist/chunk-JIW5CJXC.js +4 -0
- package/dist/{chunk-P42YNSKI.js → chunk-JKDEE35P.js} +1 -1
- package/dist/{chunk-CKZ6ZDU5.js → chunk-JS6ZSEZJ.js} +1 -1
- package/dist/chunk-K4D63NP3.js +12 -0
- package/dist/chunk-KEK47CP3.js +12 -0
- package/dist/chunk-KWT6GT4M.js +29 -0
- package/dist/chunk-L4TN4EWK.js +1 -0
- package/dist/{chunk-SR4XAYLC.js → chunk-L67VXJMF.js} +1 -1
- package/dist/chunk-LAEXWXJA.js +9 -0
- package/dist/{chunk-D323R2FT.js → chunk-LNARMEEZ.js} +1 -1
- package/dist/{chunk-CZ25A5RS.js → chunk-LNQVTH5S.js} +1 -1
- package/dist/chunk-LUWRPPJA.js +7 -0
- package/dist/chunk-M554OMPA.js +2 -0
- package/dist/{chunk-BVW5U7QQ.js → chunk-M5GMIQ47.js} +3 -3
- package/dist/{chunk-GX2GSDJP.js → chunk-MAMWQCJ6.js} +1 -1
- package/dist/{chunk-ZTB6EMC7.js → chunk-MV6WDGB6.js} +1 -1
- package/dist/chunk-MWIT4UN2.js +14 -0
- package/dist/{chunk-BX2IOAD5.js → chunk-N2K6OAFM.js} +1 -1
- package/dist/{chunk-JPRJQ6B7.js → chunk-N3JXHNID.js} +10 -10
- package/dist/{chunk-EYKUKN32.js → chunk-N7T63BVD.js} +4 -4
- package/dist/chunk-NHH2MXFU.js +2 -0
- package/dist/chunk-NHVXVHUR.js +23 -0
- package/dist/{chunk-37CCKGHU.js → chunk-NWCW22U6.js} +2 -2
- package/dist/{chunk-J47HXHSL.js → chunk-O5LQBBW2.js} +7 -7
- package/dist/{chunk-IHQX4GYD.js → chunk-OQ2EDMB2.js} +1 -1
- package/dist/chunk-OUSKOWNP.js +12 -0
- package/dist/chunk-OV2SWQPT.js +22 -0
- package/dist/chunk-OX2DOOOI.js +8 -0
- package/dist/{chunk-6KO5VTL7.js → chunk-OZAAIE4E.js} +1 -1
- package/dist/chunk-P3OBE43Q.js +8 -0
- package/dist/{chunk-2C6IG7LG.js → chunk-P3Y5RFI4.js} +2 -2
- package/dist/{chunk-2UXAI77F.js → chunk-P4XTWAKJ.js} +1 -1
- package/dist/{chunk-7PCI6AUU.js → chunk-PB7G6CJ7.js} +1 -1
- package/dist/chunk-PDB5W7VI.js +6 -0
- package/dist/chunk-PDXPMHG3.js +4 -0
- package/dist/chunk-POCQ7ZL4.js +3 -0
- package/dist/{chunk-FORUFXAN.js → chunk-PVR4KU7H.js} +5 -5
- package/dist/{chunk-2RBWQVDC.js → chunk-PYLNMN6E.js} +13 -13
- package/dist/chunk-Q7KTTDUS.js +11 -0
- package/dist/{chunk-3PGK3VFS.js → chunk-QC6OK3ED.js} +1 -1
- package/dist/{chunk-MEJK6PBN.js → chunk-QSJR7EI7.js} +3 -3
- package/dist/{chunk-5DFKPSJQ.js → chunk-QTV3Y3UT.js} +1 -1
- package/dist/chunk-QWHQJNKL.js +1 -0
- package/dist/chunk-QXWY3CJ2.js +11 -0
- package/dist/{chunk-MG7OPTLQ.js → chunk-QZKWIVZW.js} +1 -1
- package/dist/chunk-R2VKEMZH.js +3 -0
- package/dist/{chunk-EXWGPXOS.js → chunk-RBD7SB6M.js} +1 -1
- package/dist/chunk-RC6UHOAV.js +4 -0
- package/dist/{chunk-ZVEOWBXE.js → chunk-RULVWW4A.js} +6 -6
- package/dist/chunk-RUTUVS4H.js +1 -0
- package/dist/{chunk-MAOJENIB.js → chunk-RWJCKZEY.js} +1 -1
- package/dist/chunk-S4Z657L6.js +6 -0
- package/dist/{chunk-Q3OCGLW7.js → chunk-SOP447EP.js} +2 -2
- package/dist/{chunk-CDRXZBVR.js → chunk-TBPHW42V.js} +1 -1
- package/dist/chunk-TLRCTNUF.js +6 -0
- package/dist/{chunk-KWX6NAOR.js → chunk-TVL3JPMY.js} +1 -1
- package/dist/{chunk-ZX2D25LG.js → chunk-U4OGRIP6.js} +1 -1
- package/dist/chunk-U5N6PSXO.js +9 -0
- package/dist/{chunk-SZIENHKR.js → chunk-UKDJUYIV.js} +1 -1
- package/dist/chunk-UQYNPYF4.js +1 -0
- package/dist/chunk-URHGHXDN.js +1 -0
- package/dist/{chunk-6WWAQC5V.js → chunk-VG2R6PZV.js} +1 -1
- package/dist/{chunk-RWGSMZGS.js → chunk-VVAJ23SD.js} +1 -1
- package/dist/chunk-VVGL5O4F.js +8 -0
- package/dist/chunk-VVJIKS47.js +1 -0
- package/dist/chunk-WE7CYRZT.js +7 -0
- package/dist/{chunk-L3G3YHVN.js → chunk-WFHYU66E.js} +1 -1
- package/dist/chunk-WH3JHMEA.js +13 -0
- package/dist/chunk-WUKN5WUM.js +11 -0
- package/dist/{chunk-ET2EF5CI.js → chunk-X7PM7JOD.js} +1 -1
- package/dist/{chunk-4NXMMWL6.js → chunk-XD34TCRG.js} +1 -1
- package/dist/chunk-XI4HKNFI.js +19 -0
- package/dist/{chunk-Y4MI6NRI.js → chunk-XNWQ72WA.js} +1 -1
- package/dist/{chunk-3BSPSRK4.js → chunk-XS4HFUTW.js} +3 -3
- package/dist/{chunk-Y5T257HX.js → chunk-XZYAFTW4.js} +4 -4
- package/dist/{chunk-Z35NWGMT.js → chunk-Y44ABEW3.js} +2 -2
- package/dist/chunk-YWGC7J6B.js +11 -0
- package/dist/{chunk-MMFJBWJC.js → chunk-Z3JW77LH.js} +1 -1
- package/dist/chunk-ZAU2HIRH.js +21 -0
- package/dist/{chunk-Y53KNQKL.js → chunk-ZDMZM7HD.js} +2 -2
- package/dist/chunk-ZHHEMSOD.js +3 -0
- package/dist/chunk-ZOHQVSB3.js +27 -0
- package/dist/{chunk-3AKIKASU.js → chunk-ZTL2RPNY.js} +1 -1
- package/dist/{chunk-QVR4LBBW.js → chunk-ZYDZY6ED.js} +1 -1
- package/dist/data/DataTable.js +1 -1
- package/dist/data/Kanban.js +1 -1
- package/dist/data/ListFooter.js +1 -1
- package/dist/data/ListLoadError.js +1 -1
- package/dist/data/Pagination.js +1 -1
- package/dist/file-intake/index.js +1 -1
- package/dist/format/index.js +1 -1
- package/dist/forms/AlignmentGrid.js +1 -1
- package/dist/forms/BorderInput.js +1 -1
- package/dist/forms/BrandAssetEditor.js +1 -1
- package/dist/forms/Button.js +1 -1
- package/dist/forms/Calendar.js +1 -1
- package/dist/forms/ColorPicker.js +1 -1
- package/dist/forms/ComposerAttachments.js +1 -1
- package/dist/forms/CornersInput.js +1 -1
- package/dist/forms/DatePicker.js +1 -1
- package/dist/forms/DateRangePicker.js +1 -1
- package/dist/forms/DateTimePicker.js +1 -1
- package/dist/forms/DisplayChips.js +1 -1
- package/dist/forms/FilePicker.js +1 -1
- package/dist/forms/FormErrorSummary.js +1 -1
- package/dist/forms/FormField.js +1 -1
- package/dist/forms/IconButton.js +1 -1
- package/dist/forms/IconPicker.js +1 -1
- package/dist/forms/ImageFocusPoint.js +1 -1
- package/dist/forms/Input.js +1 -1
- package/dist/forms/InputNumber.js +1 -1
- package/dist/forms/LinkPicker.js +1 -1
- package/dist/forms/MediaLibrary.d.ts +6 -1
- package/dist/forms/MediaLibrary.js +1 -1
- package/dist/forms/MediaUploadField.js +1 -1
- package/dist/forms/MediaUploadGrid.js +1 -1
- package/dist/forms/MediaUsedInList.js +1 -1
- package/dist/forms/NumericKeypad.js +1 -1
- package/dist/forms/PictureTiles.js +1 -1
- package/dist/forms/PositionInput.js +1 -1
- package/dist/forms/RadioGroup.js +1 -1
- package/dist/forms/Segmented.js +1 -1
- package/dist/forms/Select.d.ts +7 -1
- package/dist/forms/Select.js +1 -1
- package/dist/forms/SidesInput.js +1 -1
- package/dist/forms/Slider.d.ts +7 -1
- package/dist/forms/Slider.js +1 -1
- package/dist/forms/Snippet.js +1 -1
- package/dist/forms/SplitButton.js +1 -1
- package/dist/forms/TagInput.js +1 -1
- package/dist/forms/TextToolbar.d.ts +1 -1
- package/dist/forms/TextToolbar.js +1 -1
- package/dist/forms/Textarea.js +1 -1
- package/dist/forms/TimePicker.js +1 -1
- package/dist/forms/WidthsBar.d.ts +7 -8
- package/dist/forms/WidthsBar.js +1 -1
- package/dist/forms/buttonStyles.js +1 -1
- package/dist/forms/mediaLibraryMenu.js +1 -1
- package/dist/forms/mediaMoveItems.js +1 -1
- package/dist/forms/styles.d.ts +2 -2
- package/dist/forms/styles.js +1 -1
- package/dist/forms/textAlign.d.ts +1 -1
- package/dist/forms/textAlign.js +1 -1
- package/dist/forms/useFileIntake.js +1 -1
- package/dist/hooks/useTheme.d.ts +1 -1
- package/dist/icons/efficient-glyphs.d.ts +0 -1
- package/dist/icons/efficient-glyphs.js +1 -1
- package/dist/icons/efficient-looks.js +1 -1
- package/dist/icons/efficient-meanings.d.ts +0 -1
- package/dist/icons/efficient-meanings.js +1 -1
- package/dist/icons/efficient.d.ts +0 -1
- package/dist/icons/efficient.js +1 -1
- package/dist/icons/glyphs/SpinnerIcon.js +1 -1
- package/dist/icons/index.d.ts +2 -2
- package/dist/icons/index.js +1 -1
- package/dist/icons/looks/map.js +1 -1
- package/dist/icons/sets.js +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +695 -695
- package/dist/locales/zh-Hans.js +1 -1
- package/dist/map/index.js +12 -12
- package/dist/markdown/index.js +5 -5
- package/dist/{names-mX74Rrmy.d.ts → names-C1TgIb_2.d.ts} +1 -1
- package/dist/page-tabs/index.js +5 -5
- package/dist/pdf/index.js +1 -1
- package/dist/shell/Accordion.js +1 -1
- package/dist/shell/AppUpdateBanner.js +1 -1
- package/dist/shell/Avatar.js +1 -1
- package/dist/shell/Banner.js +1 -1
- package/dist/shell/Breadcrumbs.js +1 -1
- package/dist/shell/BudgetBar.js +1 -1
- package/dist/shell/Card.js +1 -1
- package/dist/shell/ColoredBadge.js +1 -1
- package/dist/shell/ConfirmDialog.js +1 -1
- package/dist/shell/ContainerFillChart.js +1 -1
- package/dist/shell/ContextMenu.js +1 -1
- package/dist/shell/CountBadge.js +1 -1
- package/dist/shell/Dialog.js +1 -1
- package/dist/shell/Drawer.js +1 -1
- package/dist/shell/DropdownMenu.js +1 -1
- package/dist/shell/EditableGrid.js +1 -1
- package/dist/shell/EmptyState.js +1 -1
- package/dist/shell/EmptyValue.js +1 -1
- package/dist/shell/GlobalSearch.js +1 -1
- package/dist/shell/HelpCenter.js +1 -1
- package/dist/shell/IconRail.js +1 -1
- package/dist/shell/ImageLightbox.js +1 -1
- package/dist/shell/ItemCount.d.ts +20 -0
- package/dist/shell/ItemCount.js +1 -0
- package/dist/shell/Kbd.js +1 -1
- package/dist/shell/LanguageSelect.js +1 -1
- package/dist/shell/Markdown.d.ts +1 -1
- package/dist/shell/Markdown.js +1 -1
- package/dist/shell/MetricBar.js +1 -1
- package/dist/shell/MetricBarLegend.js +1 -1
- package/dist/shell/MilestoneTimeline.js +1 -1
- package/dist/shell/PageHeader.js +1 -1
- package/dist/shell/Popover.js +1 -1
- package/dist/shell/PopupMenu.js +1 -1
- package/dist/shell/ProductionTimeline.js +1 -1
- package/dist/shell/ResizeHandle.js +1 -1
- package/dist/shell/Result.js +1 -1
- package/dist/shell/SearchableSelect.js +1 -1
- package/dist/shell/SettingReset.js +1 -1
- package/dist/shell/SettingRow.js +1 -1
- package/dist/shell/SidebarLayout.js +1 -1
- package/dist/shell/SidebarNav.d.ts +19 -5
- package/dist/shell/SidebarNav.js +1 -1
- package/dist/shell/SortableList.js +1 -1
- package/dist/shell/Spinner.js +1 -1
- package/dist/shell/Statistic.js +1 -1
- package/dist/shell/StatusBadge.js +1 -1
- package/dist/shell/StepChain.js +1 -1
- package/dist/shell/Tabs.js +1 -1
- package/dist/shell/TimeAgo.js +1 -1
- package/dist/shell/TimelineTrack.js +1 -1
- package/dist/shell/Tooltip.js +1 -1
- package/dist/shell/TopNav.js +1 -1
- package/dist/shell/TransferProgress.js +1 -1
- package/dist/shell/Tree.d.ts +15 -6
- package/dist/shell/Tree.js +1 -1
- package/dist/shell/language.js +1 -1
- package/dist/shell/strings.d.ts +24 -2
- package/dist/shell/strings.js +1 -1
- package/dist/shell/toast.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/templates/AuthScreen.js +1 -1
- package/dist/templates/ChatTemplate.js +1 -1
- package/dist/templates/CheckoutTemplate.js +1 -1
- package/dist/templates/DashboardTemplate.js +1 -1
- package/dist/templates/DataTablePage.js +1 -1
- package/dist/templates/EmailTemplate.js +1 -1
- package/dist/templates/ErrorBoundary.d.ts +1 -1
- package/dist/templates/ErrorBoundary.js +1 -1
- package/dist/templates/ErrorPage.js +1 -1
- package/dist/templates/FormLayoutPage.js +1 -1
- package/dist/templates/GalleryTemplate.js +1 -1
- package/dist/themes.css +101 -0
- package/dist/tokens/colour.d.ts +42 -0
- package/dist/tokens/colour.js +1 -0
- package/dist/tokens/elevation.d.ts +3 -1
- package/dist/tokens/elevation.js +1 -1
- package/dist/ui/index.d.ts +3 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui.css +266 -24
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/Browser-4C26ZOKV.js +0 -43
- package/dist/Calculator-MNTQSI6M.js +0 -29
- package/dist/CurrencyConverter-5XTNXV6T.js +0 -21
- package/dist/Files-BK7OAVOI.js +0 -87
- package/dist/Notepad-Z5XVWR2N.js +0 -25
- package/dist/PdfViewer-KJCJ6EPG.js +0 -1
- package/dist/Sidebar-LYTGLTQJ.js +0 -43
- package/dist/Spreadsheet-CCTSMXEG.js +0 -37
- package/dist/Stock-53UOMBQW.js +0 -16
- package/dist/Weather-S2ZIGNSU.js +0 -60
- package/dist/WorldClock-A62SDKTE.js +0 -32
- package/dist/chunk-26AYPJSK.js +0 -5
- package/dist/chunk-2CGZX62Z.js +0 -29
- package/dist/chunk-2NMT3Y5H.js +0 -20
- package/dist/chunk-3ZHFKOFX.js +0 -14
- package/dist/chunk-454DAGYG.js +0 -19
- package/dist/chunk-4CANQ3B3.js +0 -1
- package/dist/chunk-4CFOKYVR.js +0 -12
- package/dist/chunk-4IU5BSVE.js +0 -2
- package/dist/chunk-4IVT244O.js +0 -8
- package/dist/chunk-4SZDP3JF.js +0 -12
- package/dist/chunk-5BZMSSOV.js +0 -14
- package/dist/chunk-5E3WCKWB.js +0 -3
- package/dist/chunk-63EK6S3W.js +0 -3
- package/dist/chunk-64WSMLXG.js +0 -2
- package/dist/chunk-6BCFVOG7.js +0 -22
- package/dist/chunk-6BLWURSG.js +0 -4
- package/dist/chunk-6NMDKOQA.js +0 -7
- package/dist/chunk-6NSCK3YX.js +0 -100
- package/dist/chunk-7DKPJUGU.js +0 -2
- package/dist/chunk-7OCNF4AI.js +0 -5
- package/dist/chunk-BI6ZLD4X.js +0 -11
- package/dist/chunk-BOBUSE33.js +0 -2
- package/dist/chunk-CRLSG5AY.js +0 -9
- package/dist/chunk-CWXKRYVY.js +0 -5
- package/dist/chunk-DITCVBR7.js +0 -15
- package/dist/chunk-DODH46ZQ.js +0 -8
- package/dist/chunk-DZ6B5XCG.js +0 -13
- package/dist/chunk-E5ALJIXV.js +0 -9
- package/dist/chunk-E6UCGCOC.js +0 -1
- package/dist/chunk-EGDJEY4K.js +0 -27
- package/dist/chunk-EL2RLUT6.js +0 -20
- package/dist/chunk-ET32NQHX.js +0 -2
- package/dist/chunk-ETF7LAYZ.js +0 -8
- package/dist/chunk-EZ3BQ6PK.js +0 -18
- package/dist/chunk-GATKJSGL.js +0 -8
- package/dist/chunk-GNPTNAZH.js +0 -4
- package/dist/chunk-H33Z4ZIY.js +0 -11
- package/dist/chunk-HTYRV4WU.js +0 -3
- package/dist/chunk-I4VD5D43.js +0 -8
- package/dist/chunk-IFDW5QW6.js +0 -2
- package/dist/chunk-IUMFKZY7.js +0 -4
- package/dist/chunk-JPP7UWQA.js +0 -4
- package/dist/chunk-JVIOAZHW.js +0 -14
- package/dist/chunk-K7KQDPLW.js +0 -27
- package/dist/chunk-K7U4RWXJ.js +0 -1
- package/dist/chunk-L73LI7FG.js +0 -8
- package/dist/chunk-MEYYQC43.js +0 -8
- package/dist/chunk-MVP6Q6KV.js +0 -1
- package/dist/chunk-NDO24PK6.js +0 -21
- package/dist/chunk-NMKADD77.js +0 -1
- package/dist/chunk-P5BOTIJU.js +0 -6
- package/dist/chunk-PCQPV6MS.js +0 -6
- package/dist/chunk-PF3ANJFI.js +0 -1
- package/dist/chunk-Q23EHOXW.js +0 -17
- package/dist/chunk-Q5MD3VY6.js +0 -3
- package/dist/chunk-QR4RM7PO.js +0 -1
- package/dist/chunk-REVC6YPT.js +0 -7
- package/dist/chunk-RGOUJFAO.js +0 -9
- package/dist/chunk-S2OIRC5H.js +0 -12
- package/dist/chunk-SB7OTZI4.js +0 -69
- package/dist/chunk-SRKSGUGT.js +0 -23
- package/dist/chunk-SURSVJA2.js +0 -6
- package/dist/chunk-TIQKDAON.js +0 -11
- package/dist/chunk-VFCWCGO3.js +0 -9
- package/dist/chunk-VRODVMV3.js +0 -1
- package/dist/chunk-VU6VPKM3.js +0 -11
- package/dist/chunk-W6TS6WGA.js +0 -28
- package/dist/chunk-WSPO4N72.js +0 -19
- package/dist/chunk-X6PPP6NX.js +0 -14
- package/dist/chunk-XLD53X4P.js +0 -9
- package/dist/chunk-XSPDPN5O.js +0 -26
- package/dist/chunk-ZK2SULCA.js +0 -16
- package/dist/chunk-ZNCU3UIW.js +0 -8
- package/dist/chunk-ZNXBKFV7.js +0 -6
- package/dist/icons/glyphs/QuietIcon.d.ts +0 -8
- package/dist/icons/glyphs/QuietIcon.js +0 -1
- /package/dist/{chunk-EHPZIBOL.js → chunk-DSIDJYH7.js} +0 -0
- /package/dist/{chunk-KJRYEKQP.js → chunk-KC54JQYK.js} +0 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import{computeMaximizedBox as e,isSidebarStripReserved as t,boxFillsWorkArea as n,readAlwaysMaximizedFlag as r,WORK_AREA_CHANGED_EVENT as o,useShellAuth as i,scrollerIsFluid as a,growBoxToWidth as s,widthToFit as l,navIcons as c}from"./chunk-CY5N5OA3.js";import{ROW_HEIGHTS as u}from"./chunk-AW7TOB6N.js";import{reportBoundaryError as d}from"./chunk-KNUR2UEG.js";import{isStaleChunkError as h}from"./chunk-JDCM2VHG.js";import{Result as m}from"./chunk-AGUA3O5O.js";import{CMD_Z as p,CMD_SHIFT_Z as f}from"./chunk-ZDMZM7HD.js";import{CopyButton as w}from"./chunk-VG2R6PZV.js";import{confirm as y}from"./chunk-IK2WXW2E.js";import{useShellPrefs as g}from"./chunk-KC3EX26K.js";import{ItemCount as v}from"./chunk-PDXPMHG3.js";import{dialogA11y as b}from"./chunk-VWGWZY7A.js";import{useIsMobile as x,useIsPhone as k}from"./chunk-UGTRSRIW.js";import{ColoredBadge as E}from"./chunk-X7PM7JOD.js";import{focusableIn as M}from"./chunk-CDAJKLGL.js";import{PopupMenu as C,PopupMenuItem as N,PopupMenuDivider as S,PopupMenuLabel as L}from"./chunk-FPGRKHUW.js";import{StatusBadge as T}from"./chunk-LNARMEEZ.js";import{Button_default as z}from"./chunk-NHH2MXFU.js";import{Icon as A}from"./chunk-FSPFV4MI.js";import{LoadingSpinner as D}from"./chunk-R2VKEMZH.js";import{Z_LAYERS as P}from"./chunk-62LW225J.js";import{runEscapeInterceptors as I}from"./chunk-TWVUQUUD.js";import{useShellStrings as W}from"./chunk-QWHQJNKL.js";import{createContext as K,useContext as R,Component as $,useLayoutEffect as O,useRef as F,useEffect as j,useState as q,useSyncExternalStore as H,useCallback as B,isValidElement as U,Fragment as Y,Children as X,cloneElement as V,useMemo as G,useId as _,useReducer as J,Suspense as Z}from"react";import{jsxs as Q,jsx as ee,Fragment as te}from"react/jsx-runtime";import{createPortal as ne}from"react-dom";import{useLocation as re}from"react-router-dom";import{useQueryClient as oe,useQuery as ie}from"@tanstack/react-query";function ae(e){return"component"in e}function se(e){return"endpoint"in e}var le={};function ce(e){le=e}var ue=new Proxy({},{get:(e,t)=>le[t],has:(e,t)=>t in le,ownKeys:()=>Object.keys(le),getOwnPropertyDescriptor(e,t){if(t in le)return{configurable:!0,enumerable:!0,value:le[t]}}}),de=null;function he(e){de=e}function me(){return null!==de}var pe=/* @__PURE__ */new Set(["get","post","put","patch","delete","head","options","request"]),fe=new Proxy({},{get:(e,t)=>de?de[t]:"string"==typeof t&&pe.has(t)?()=>Promise.resolve({data:null,status:0,statusText:"",headers:{},config:{}}):void 0}),we=K(null);function ye(){return R(we)?.pageSearch??""}var ge=null,ve=/* @__PURE__ */new Set;function be(e){ge!==e&&(ge=e,ve.forEach(e=>e()))}function xe(){return ge}function ke(e){return ve.add(e),()=>{ve.delete(e)}}var Ee=null;function Me(e){Ee=e}function Ce({error:e,onReload:t}){const n=h(e);/* @__PURE__ */
|
|
2
|
+
return Q("div",{className:"flex-1 flex flex-col items-center justify-center gap-3 px-6 py-12 text-center",children:[
|
|
3
|
+
/* @__PURE__ */ee(A,{name:"warning",className:"h-8 w-8 text-amber-500",strokeWidth:1.5}),
|
|
4
|
+
/* @__PURE__ */Q("div",{className:"min-w-0",children:[
|
|
5
|
+
/* @__PURE__ */ee("p",{className:"text-sm font-medium text-gray-700",children:n?"This window needs the latest version of the app":"This window crashed"}),
|
|
6
|
+
/* @__PURE__ */ee("p",{className:"mt-1 text-xs text-gray-400 max-w-sm break-words",children:n?"A new version was deployed while this tab was open. Reload the page to pick it up.":e.message||String(e)})]}),
|
|
7
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:n?()=>window.location.reload():t,className:"bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 text-sm font-medium rounded-lg",children:n?"Reload page":"Reload window"})]})}var Ne=class extends ${state={error:null};static getDerivedStateFromError(e){return{error:e instanceof Error?e:new Error(String(e))}}componentDidCatch(e,t){console.error("[efficient-shell] window content crashed:",e,t.componentStack),d(e)}reset=()=>this.setState({error:null});render(){const{error:e}=this.state;return e?this.props.fallback?this.props.fallback(e,this.reset):/* @__PURE__ */ee(Ce,{error:e,onReload:this.reset}):this.props.children}},Se=K(null),Le="text-xs text-gray-500 hover:text-gray-700 disabled:opacity-40 disabled:hover:text-gray-500 disabled:cursor-default";function Te({className:e="",auto:t=!1}){const n=R(Se),r=W().undo,o=n?.claimOwnMount;if(O(()=>{if(!t&&o)return o(!0),()=>o(!1)},[t,o]),!n||!n.enabled)return null;const{undo:i,redo:a,canUndo:s,canRedo:l,undoLabel:c,redoLabel:u}=n;/* @__PURE__ */
|
|
8
|
+
return Q("div",{className:`flex items-center gap-2 ${e}`,"data-undo-controls":t?"shell":"form",children:[
|
|
9
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:i,disabled:!s,title:s?r.undoStep(c??"",p):r.nothingToUndo,className:Le,children:r.undo}),
|
|
10
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:a,disabled:!l,title:l?r.redoStep(u??"",f):r.nothingToRedo,className:Le,children:r.redo})]})}var ze=/* @__PURE__ */new Set([408,429]);function Ae(e){const t=e?.response?.status;return"number"==typeof t?t:void 0}function De(e){const t=Ae(e);return null!=t&&(t>=400&&t<500&&!ze.has(t))}function Pe(e,t){return!De(t)&&e<3}function Ie(e){if("page"!==e.type)return!0;const t=e.route?ue[e.route]:void 0;if(!t||!ae(t))return!0;const n=t;return!n.widget&&!n.utility}function We(e){const t=e.route?ue[e.route]:void 0;if(!t||!ae(t))return;const n=t;return n.taskbarGroup?n.taskbarGroup:{key:e.route,label:n.label,icon:e.route}}var Ke=(e,t)=>!!t&&"page"===e.type&&e.route===t;function Re(){const e=W().loading;/* @__PURE__ */
|
|
11
|
+
return ee(D,{size:"sm",padding:"p-8",label:e.label})}var $e="flex-1 min-h-0";function Oe(){const e=W().record;/* @__PURE__ */
|
|
12
|
+
return ee(D,{label:e.loading,padding:"",className:$e})}function Fe(e){return e??void 0}function je({isPending:e,isFetching:t,enabled:n=!0,error:r,onRetry:o}){const i=W().record;if(t||e&&n)/* @__PURE__ */return ee(Oe,{});if(r){const e=Ae(r);if(401===e)/* @__PURE__ */
|
|
13
|
+
return ee(m,{status:"warning",title:i.signInRequired,subTitle:i.signInBody,className:$e});if(403===e)/* @__PURE__ */
|
|
14
|
+
return ee(m,{status:"403",className:$e});if(404===e||410===e)/* @__PURE__ */
|
|
15
|
+
return ee(m,{status:"404",title:i.notFound,className:$e});const t=null==e||408===e||429===e||e>=500;/* @__PURE__ */
|
|
16
|
+
return ee(m,{status:"500",title:i.loadFailed,subTitle:t?i.checkConnection:i.rejected,extra:t?/* @__PURE__ */ee(z,{variant:"secondary",size:"sm",onClick:o,children:i.retry}):void 0,className:$e})}/* @__PURE__ */
|
|
17
|
+
return ee(m,{status:"404",title:i.notFound,className:$e})}function qe({entity:e,children:t,...n}){return null!=e?/* @__PURE__ */ee(te,{children:t(e)}):/* @__PURE__ */ee(je,{...n})}var He=/^[a-z]+(?:-[a-z]+)*-\d{13}$/;function Be(e){return"string"==typeof e&&(e.startsWith("new-")||He.test(e))}function Ue(e){if(Be(e.entityId))return!0;const t=e.entitySnapshot;return!(!t||"object"!=typeof t||!t._new&&!t._duplicate)}var Ye=K({openWindows:[],openEntity:()=>{},openPage:()=>{},reorderWindows:()=>{},closeEntity:()=>{},minimize:()=>{},items:[],restore:()=>{},remove:()=>{},restoreIfMinimized:()=>!1,openItems:[]}),Xe=K(null);function Ve(e){const t=R(Xe),n=F(null);null===n.current&&(n.current=/* @__PURE__ */Symbol("window-dirty")),O(()=>{if(t)return t(n.current,e)},[t,e]),j(()=>{if(!t||!e)return;const n=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",n),()=>window.removeEventListener("beforeunload",n)},[t,e])}function Ge(){const e=F(/* @__PURE__ */new Map),[t,n]=q(!1);return{dirty:t,registerDirty:B((t,r)=>{const o=()=>{const t=Array.from(e.current.values()).some(Boolean);n(e=>e===t?e:t)};return e.current.set(t,r),o(),()=>{e.current.delete(t),o()}},[])}}function _e(){return R(Ye)}function Je(e){if("page"!==e.type&&Ue(e))return null;const t="page"===e.type?"page":e.entityType||"",n="page"===e.type?e.route||"":e.entityId||"";return t&&n?{entityType:t,entityId:n,label:e.label}:null}function Ze({item:e,onClose:t,accentRgb:n}){const{dirty:r,registerDirty:o}=Ge(),i=ue[e.route];if(!i||!ae(i))return null;const a=i,s=a.component;/* @__PURE__ */
|
|
18
|
+
return ee(Vr,{open:!0,onClose:t,icon:c[e.route],title:a.label,size:a.size||"2xl",dirty:r,allowPinOnTop:a.allowPinOnTop,initialPosition:a.initialPosition,widget:a.widget,compact:a.compact,appStyle:a.appStyle,flushBody:a.flushBody,autoHeight:a.autoHeight,autoMinHeight:a.autoMinHeight,autoWidth:a.autoWidth,dimensions:a.dimensions,windowKey:e.id,openedFromKey:e.openedFrom,accentRgb:n,children:/* @__PURE__ */ee(Xe.Provider,{value:o,children:/* @__PURE__ */ee(Z,{fallback:/* @__PURE__ */ee("div",{className:"flex items-center justify-center py-12",children:/* @__PURE__ */ee(Re,{})}),children:/* @__PURE__ */ee(s,{})})})})}function Qe({entityType:e,entityId:t,label:n}){const r=W(),o=oe(),{data:i}=ie({queryKey:["my-profile-sidebar"],enabled:me(),queryFn:()=>fe.get("/auth/me/").then(e=>e.data)}),a=(i?.preferences||{}).favorite_documents||[],s=a.some(n=>n.entityType===e&&n.entityId===t);/* @__PURE__ */
|
|
19
|
+
return ee("button",{onClick:()=>{const r=s?a.filter(n=>!(n.entityType===e&&n.entityId===t)):[...a,{entityType:e,entityId:t,label:n}];fe.patch("/auth/me/",{preferences:{favorite_documents:r}}).then(()=>{o.invalidateQueries({queryKey:["my-profile-sidebar"]})})},title:s?r.taskbar.removeFromDesktop:r.taskbar.addToDesktop,className:"shrink-0 transition-colors "+(s?"text-yellow-500 hover:text-yellow-600":"text-gray-300 hover:text-yellow-400"),children:/* @__PURE__ */ee(A,{name:"star",className:"h-4 w-4",fill:s?"currentColor":"none",strokeWidth:1.5})})}var et=/* @__PURE__ */new Set,tt=()=>"hidden";function nt({item:e,onClose:t,onMinimize:n,accentRgb:r}){const o=ue[e.entityType];if(!o||!se(o))return null;const i=o,[a,s]=q(!1),{dirty:l,registerDirty:u}=Ge(),d=i.queryKey||i.endpoint.replace(/^\/|\/$/g,"").split("/").pop()||e.entityType,h=e.entitySnapshot?._duplicate,m=Be(e.entityId),p=!i.selfFetching&&!h&&!m&&me(),f=ie({queryKey:[d,e.entityId],queryFn:()=>{return fe.get((t=i.endpoint,n=String(e.entityId),`${t}${encodeURIComponent(n)}/`)).then(e=>e.data);var t,n},initialData:Fe(e.entitySnapshot),initialDataUpdatedAt:0,enabled:p,staleTime:0,refetchOnWindowFocus:!0,refetchOnMount:"always",refetchInterval:e=>!De(e.state.error)&&6e4,refetchIntervalInBackground:!1,retry:Pe}),w=f.data,y=f.refetch;j(()=>{var t;if(p)return t=t=>{t!==e.id||et.has(t)||y({cancelRefetch:!1})},Zn.add(t),()=>{Zn.delete(t)}},[y,e.id,p]);const g=B(()=>{a&&!l?s(!1):t()},[a,l,t]),v=(i.useEdit??tt)(w??null),b=!i.useEdit||m||h?void 0:{state:v,editing:a,onEdit:()=>s(!0),onDiscard:()=>s(!1)},x=i.selfFetching?e.label:w?i.title(w,a,s):e.label,k=i.icon,E=k?c[k]:null,M=x,C=!i.selfFetching&&w&&i.footer&&!h?i.footer(w):void 0;return i.rendersOwnModal?i.selfFetching?/* @__PURE__ */ee(Z,{fallback:/* @__PURE__ */ee(Re,{}),children:i.render(w??e.entitySnapshot,t,e.entityId,a,s)}):null!=w?/* @__PURE__ */ee(Z,{fallback:/* @__PURE__ */ee(Vr,{open:!0,onClose:t,title:e.label,size:i.size||"2xl",children:/* @__PURE__ */ee(Oe,{})}),children:i.render(w,t,e.entityId,a,s)}):/* @__PURE__ */ee(Vr,{open:!0,onClose:t,title:e.label,size:i.size||"2xl",children:/* @__PURE__ */ee(je,{isPending:f.isPending,isFetching:f.isFetching,enabled:p,error:f.error,onRetry:y})}):/* @__PURE__ */ee(Vr,{open:!0,onClose:g,onMinimize:n,initialBox:e.savedBox,icon:E,title:M,footer:C,copyText:e.label,windowKey:e.id,openedFromKey:e.openedFrom,size:i.size||"2xl",dirty:l,editing:a||m||h,edit:b,dimensions:i.dimensions,autoHeight:i.autoHeight,autoMinHeight:i.autoMinHeight,autoWidth:i.autoWidth,appStyle:i.appStyle,flushBody:i.flushBody,accentRgb:r,children:/* @__PURE__ */ee(Xe.Provider,{value:u,children:/* @__PURE__ */ee(Z,{fallback:/* @__PURE__ */ee(Oe,{}),children:i.selfFetching?i.render(null,t,e.entityId,a,s):/* @__PURE__ */ee(qe,{entity:w,isPending:f.isPending,isFetching:f.isFetching,enabled:p,error:f.error,onRetry:y,children:n=>i.render(n,t,e.entityId,a,s)})})})})}function rt(e){return document.querySelector(`[data-modal-panel][data-window-key="${e}"]`)}function ot(e){return document.querySelector(`[data-modal-panel][data-window-root][data-window-owner="${e}"]`)}function it(e){const t=rt(e),n=t??ot(e);if(!n)return;if(t&&!ur(t))return r=e,void window.dispatchEvent(new CustomEvent("modal-reveal",{detail:{windowKey:r}}));var r;const o=n.getAttribute("data-modal-id");o&&Qn(o)}function at(){const e=Mr();if(!e)return;const t=document.querySelector(`[data-modal-panel][data-modal-id="${e}"]`);return t?.getAttribute("data-window-key")??void 0}var st=/* @__PURE__ */new Map;function lt(){const e=at();if(e)return st.get(e)}function ct(e){const t=document.querySelectorAll("[data-modal-panel]");for(const n of Array.from(t)){const t=n.querySelector("[data-window-title]");if(t?.textContent?.includes(e))return n}return null}var ut="rosh-peek-style",dt=P.peek,ht=P.taskbarPreview;function mt(e){"undefined"!=typeof document&&(!function(){if("undefined"==typeof document||document.getElementById(ut))return;const e=document.createElement("style");e.id=ut,e.textContent=`body.rosh-peeking [data-modal-panel]{transition:opacity .18s ease}body.rosh-peeking [data-modal-panel]:not([data-peek-focus]){opacity:.4}body.rosh-peeking [data-modal-panel][data-peek-focus]{opacity:1}body.rosh-peeking [data-modal-panel][data-peek-focus]:not([data-pinned-top]){z-index:${dt}!important}html.rosh-reduce-transparency body.rosh-peeking [data-modal-panel]:not([data-peek-focus]){opacity:.92}@media (prefers-reduced-motion:reduce){body.rosh-peeking [data-modal-panel]{transition:none}}`,document.head.appendChild(e)}(),document.querySelectorAll("[data-modal-panel][data-peek-focus]").forEach(e=>e.removeAttribute("data-peek-focus")),e&&e.setAttribute("data-peek-focus",""),document.body.classList.toggle("rosh-peeking",!!e))}function pt(){"undefined"!=typeof document&&(document.body.classList.remove("rosh-peeking"),document.querySelectorAll("[data-modal-panel][data-peek-focus]").forEach(e=>e.removeAttribute("data-peek-focus")))}function ft({id:e,label:t,maxW:n,maxH:r,titleAbove:o=!1,onClick:i,onClose:a}){const s=W(),l=F(null),[c,u]=q({w:n,h:Math.round(.75*r)}),[d,h]=q(!1);return O(()=>{const o=l.current;if(!o)return;const i=rt(e)??ct(t);if(!i)return void h(!1);const a=i.getBoundingClientRect();if(0===a.width||0===a.height)return void h(!1);const s=Math.min(n/a.width,r/a.height),c=Math.max(80,Math.round(a.width*s)),d=Math.max(60,Math.round(a.height*s));u({w:c,h:d}),h(!0);const m=i.cloneNode(!0);return m.style.position="absolute",m.style.top="0",m.style.left="0",m.style.right="auto",m.style.bottom="auto",m.style.width=a.width+"px",m.style.height=a.height+"px",m.style.transform=`scale(${s})`,m.style.transformOrigin="top left",m.style.pointerEvents="none",m.style.animation="none",m.style.zIndex="auto",m.removeAttribute("data-modal-panel"),m.removeAttribute("data-modal-id"),m.removeAttribute("data-window-key"),m.removeAttribute("role"),m.removeAttribute("aria-labelledby"),m.removeAttribute("aria-label"),m.querySelectorAll('[role="dialog"], [data-portal]').forEach(e=>{e.style.display="none"}),o.innerHTML="",o.appendChild(m),()=>{o.innerHTML=""}},[e,t,n,r]),/* @__PURE__ */Q("div",{style:{width:c.w,height:c.h},className:"relative rounded-md overflow-hidden bg-white/95 border border-line-strong shadow-(--elevation-panel) cursor-pointer ring-2 ring-transparent group-hover:ring-blue-400 transition shrink-0",onClick:i,children:[
|
|
20
|
+
/* @__PURE__ */ee("div",{ref:l,className:"absolute inset-0 z-0 overflow-hidden"}),!d&&/* @__PURE__ */Q("div",{className:"absolute inset-0 flex flex-col items-center justify-center text-gray-400 bg-gray-50",children:[
|
|
21
|
+
/* @__PURE__ */ee(A,{name:"window",className:"h-6 w-6",strokeWidth:1.5}),
|
|
22
|
+
/* @__PURE__ */ee("span",{className:"mt-1 text-3xs uppercase tracking-wide",children:"Hidden"})]}),!o&&/* @__PURE__ */ee("div",{className:"absolute bottom-0 left-0 right-0 z-10 px-2 py-1 text-2xs font-medium text-on-accent bg-gradient-to-t from-black/80 to-transparent truncate pointer-events-none",children:t}),a&&/* @__PURE__ */ee("button",{onClick:e=>{e.stopPropagation(),a()},className:"absolute top-1 right-1 z-20 h-5 w-5 rounded-full bg-gray-900/90 ring-1 ring-white/80 shadow-sm hover:bg-red-500 text-on-accent flex items-center justify-center",title:s.taskbar.closeWindow,children:/* @__PURE__ */ee(A,{name:"close",className:"h-3 w-3",strokeWidth:3})})]})}function wt({items:e,anchorEl:t,onActivate:n,onClose:r,onMouseEnter:o,onMouseLeave:i}){const a=W(),s=e.length>1,l=F(null),[c,u]=q({left:-9999,top:-9999,ready:!1}),[d,h]=q(()=>"undefined"!=typeof document&&getComputedStyle(document.documentElement).getPropertyValue("--taskbar-position")?.trim()||"bottom");O(()=>{const e=l.current;if(!e)return;const n=()=>{const n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),o=getComputedStyle(document.documentElement).getPropertyValue("--taskbar-position")?.trim()||"bottom";h(o);let i,a=n.left+n.width/2-r.width/2;"top"===o?i=n.bottom+8:"left"===o?(a=n.right+8,i=n.top+n.height/2-r.height/2):"right"===o?(a=n.left-r.width-8,i=n.top+n.height/2-r.height/2):i=n.top-r.height-8,a=Math.max(8,Math.min(a,window.innerWidth-r.width-8)),i=Math.max(8,Math.min(i,window.innerHeight-r.height-8)),u({left:a,top:i,ready:!0})};n();const r=new ResizeObserver(n);return r.observe(e),()=>r.disconnect()},[t,e.length]),j(()=>pt,[]);const m="top"===d,p=(m?"mt-1":"mb-1")+" max-w-[240px] truncate text-2xs font-medium text-ink-strongest bg-white/80 px-2 py-0.5 rounded shadow-sm ring-2 ring-transparent transition group-hover:ring-blue-400";return ne(
|
|
23
|
+
/* @__PURE__ */ee("div",{ref:l,"data-taskbar-preview":"",style:{position:"fixed",left:c.left,top:c.top,zIndex:ht,maxWidth:"calc(100vw - 16px)",opacity:c.ready?1:0},className:s?"flex gap-2 flex-wrap":"",onMouseEnter:o,onMouseLeave:()=>{pt(),i()},children:e.map(e=>{const t=rt(e.id)??ct(e.label),o=t?function(e){if(ur(e))return null;const t=e.getBoundingClientRect(),n=or(),r=t.left+t.width/2-(n.x+n.w/2),o=t.top+t.height/2-(n.y+n.h/2);return 180*Math.atan2(o,r)/Math.PI}(t):null;/* @__PURE__ */
|
|
24
|
+
return Q("div",{className:"group flex flex-col items-center",onMouseEnter:()=>mt(t),children:[!m&&/* @__PURE__ */ee("span",{className:p,children:e.label}),
|
|
25
|
+
/* @__PURE__ */ee(ft,{id:e.id,label:e.label,maxW:240,maxH:160,titleAbove:!0,onClick:()=>n(e.id),onClose:()=>r(e.id)}),m&&/* @__PURE__ */ee("span",{className:p,children:e.label}),null!==o&&/* @__PURE__ */Q("span",{title:a.taskbar.offscreenHint,className:"mt-1 inline-flex items-center gap-1 rounded bg-amber-500 px-2 py-0.5 text-2xs font-semibold text-on-accent shadow-sm",children:[
|
|
26
|
+
/* @__PURE__ */ee(A,{name:"arrow-right",className:"h-3 w-3",style:{transform:`rotate(${o}deg)`},strokeWidth:3}),"Off screen"]})]},e.id)})}),document.body)}function yt(e,t){const n=getComputedStyle(document.documentElement).getPropertyValue("--taskbar-position")?.trim()||"bottom";return"top"===n?{left:Math.min(e,window.innerWidth-220),top:t+4}:"left"===n?{left:e+4,top:Math.min(t,window.innerHeight-160)}:"right"===n?{right:window.innerWidth-e+4,top:Math.min(t,window.innerHeight-160)}:{left:Math.min(e,window.innerWidth-220),bottom:window.innerHeight-t+4}}function gt({openWindows:e,onRemove:t,onSplitView:n,onActivate:r,onActivateById:o}){const i=W(),[a,s]=q(null);j(()=>{let e,t;const n=()=>{clearInterval(e),clearTimeout(t),e=void 0},r=()=>{const e=document.getElementById("taskbar-windows");return s(t=>t===e?t:e),!!e},o=()=>{n(),r()||(e=setInterval(()=>{r()&&n()},100),t=setTimeout(n,5e3))};return o(),window.addEventListener("react-os-shell:layout-mode-changed",o),()=>{n(),window.removeEventListener("react-os-shell:layout-mode-changed",o)}},[]);const l=H(Cr,Mr),[,u]=q(0);j(()=>{const e=()=>u(e=>e+1);return window.addEventListener("modal-geometry",e),window.addEventListener("resize",e),()=>{window.removeEventListener("modal-geometry",e),window.removeEventListener("resize",e)}},[]);const[,d]=q(0);j(()=>{const e=()=>d(e=>e+1);return window.addEventListener("window-title-update",e),()=>window.removeEventListener("window-title-update",e)},[]);const h=e=>{const t=ct(e),n=t?.querySelector("[data-window-title]");return n?.textContent?.trim()||e},[m,p]=q(null),[f,w]=q(null),[y,g]=q(null),b=F(null),x=()=>{b.current&&(clearTimeout(b.current),b.current=null),b.current=setTimeout(()=>{p(null),w(null)},150)},k=e.filter(e=>!e.route||!ue[e.route]?.utility);if(!a||!a.isConnected||0===k.length)return null;const E=[],M=/* @__PURE__ */new Map;for(const e of k){const t=e.route?ue[e.route]:void 0,n=t?.taskbarGroup,r=n?.key??e.route??`entity:${e.id}`,o=M.get(r);if(void 0!==o)E[o].items.push(e);else{M.set(r,E.length);const o=n?.label??t?.label??e.label;E.push({key:r,route:n?.icon??e.route,label:o,items:[e]})}}return ne(
|
|
27
|
+
/* @__PURE__ */Q(te,{children:[E.map(e=>{const n=e.route?c[e.route]:null,r=e.items[e.items.length-1];let a=!1;if(l){const t=document.querySelector(`[data-modal-id="${l}"]`);if(t){const n=t.querySelector("[data-window-title]"),r=n?.textContent??"";a=e.items.some(e=>r.includes(e.label))}}const s=e.items.length>1,u=e.items.some(e=>{const t=rt(e.id)??ct(e.label);return!!t&&!ur(t)});/* @__PURE__ */
|
|
28
|
+
return Q("button",{onClick:()=>o(r.id),onMouseEnter:t=>{return n=e.items,r=t.currentTarget,void(y||(b.current&&(clearTimeout(b.current),b.current=null),b.current=setTimeout(()=>{p(n),w(r)},350)));var n,r},onMouseLeave:x,onDoubleClick:e=>{e.stopPropagation(),window.dispatchEvent(new CustomEvent("modal-center",{detail:{windowKey:r.id,label:r.label}}))},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),b.current&&(clearTimeout(b.current),b.current=null),p(null),w(null),s?g({x:t.clientX,y:t.clientY,items:e.items,label:e.label}):window.dispatchEvent(new CustomEvent("modal-context-menu",{detail:{windowKey:r.id,label:r.label,x:t.clientX,y:t.clientY}}))},style:{width:"var(--window-tab-width, 200px)",fontSize:"var(--window-tab-font-size, 12px)"},"data-tab-group":e.key,className:"group relative flex items-center gap-2 rounded-lg px-3 py-2 font-medium transition-all min-w-0 shrink "+(a?"bg-blue-100/60 border border-blue-400/60 text-blue-700":"bg-gray-50/40 border border-gray-200/40 text-gray-700 hover:bg-gray-200/40"),children:[n&&U(n)?V(n,{className:"h-3.5 w-3.5 shrink-0"}):/* @__PURE__ */ee(A,{name:"expand",className:"h-3.5 w-3.5 shrink-0",strokeWidth:2}),
|
|
29
|
+
/* @__PURE__ */ee("span",{className:"truncate flex-1",children:s?e.label:h(r.label)}),u&&/* @__PURE__ */ee("span",{title:i.taskbar.offscreenDot,className:"shrink-0 h-1.5 w-1.5 rounded-full bg-amber-500"}),s&&/* @__PURE__ */ee(v,{count:e.items.length,label:i.count.windows(e.items.length)}),!s&&/* @__PURE__ */ee("span",{role:"button",onClick:e=>{e.stopPropagation(),t(r.id)},className:"ml-auto text-gray-400 hover:text-red-500 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity",children:/* @__PURE__ */ee(A,{name:"close",className:"h-3 w-3",strokeWidth:2})})]},e.key)}),
|
|
30
|
+
/* @__PURE__ */ee("div",{className:"flex-1"}),k.length>=2&&/* @__PURE__ */Q("button",{onClick:n,title:i.taskbar.expose,className:"flex items-center gap-1 rounded px-2 py-1 text-2xs font-medium text-blue-600 border border-blue-300 hover:bg-accent-tint transition-colors shrink-0",children:[
|
|
31
|
+
/* @__PURE__ */ee(A,{name:"grid",className:"h-3 w-3",strokeWidth:2}),"Exposé"]}),y&&/* @__PURE__ */Q(C,{portal:!0,minWidth:200,style:yt(y.x,y.y),onClose:()=>g(null),children:[
|
|
32
|
+
/* @__PURE__ */ee(L,{children:y.label}),
|
|
33
|
+
/* @__PURE__ */Q(N,{onClick:()=>{g(null),y.items.forEach(e=>function(e){const t=Rn.get(e);t&&er(t)}(e.id))},children:[
|
|
34
|
+
/* @__PURE__ */ee(A,{name:"remove",className:"h-4 w-4",strokeWidth:1.5}),i.taskbar.minimizeAllWindows]}),
|
|
35
|
+
/* @__PURE__ */Q(N,{onClick:()=>{g(null),y.items.forEach(e=>o(e.id))},children:[
|
|
36
|
+
/* @__PURE__ */ee("svg",{className:"h-4 w-4 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */ee("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 3.75h6.5v6.5h-6.5zM13.75 8.75h6.5v6.5h-6.5z"})}),i.taskbar.restoreAllWindows]}),
|
|
37
|
+
/* @__PURE__ */ee(S,{}),
|
|
38
|
+
/* @__PURE__ */Q(N,{danger:!0,onClick:()=>{g(null),y.items.forEach(e=>t(e.id))},children:[
|
|
39
|
+
/* @__PURE__ */ee(A,{name:"close",className:"h-4 w-4",strokeWidth:2}),`${i.taskbar.closeAllWindows} (${y.items.length})`]})]}),m&&f&&/* @__PURE__ */ee(wt,{items:m,anchorEl:f,onActivate:e=>{o(e),p(null),w(null)},onClose:e=>{t(e),p(null),w(null)},onMouseEnter:()=>{b.current&&(clearTimeout(b.current),b.current=null)},onMouseLeave:x})]}),a)}var vt=["/login","/forgot-password","/reset-password","/force-change-password"];function bt({children:e,windowAccentForRoute:t}){const n=re(),r=vt.some(e=>n.pathname.startsWith(e)),[o,i]=q([]),a=F(o);O(()=>{a.current=o},[o]);const s=H(ke,xe,xe),l=F(/* @__PURE__ */new Map),c=e=>{const t=Ie(e),n=!!s&&"page"===e.type&&e.route===s,r=e.pageSearch||void 0,o=l.current.get(e.id);if(o&&o.tab===t&&o.home===n&&o.pageSearch===r)return o;const i={key:e.id,tab:t,home:n,...r?{pageSearch:r}:{}};return l.current.set(e.id,i),i};j(()=>{st.clear();for(const e of o)e.route&&st.set(e.id,e.route)},[o]);const u=B(e=>{i(t=>t.filter(t=>t.id!==e))},[]),d=B(e=>{var t;rt(e)||ot(e)?(t=e,window.dispatchEvent(new CustomEvent(Nr,{detail:{windowKey:t}}))):u(e)},[u]),h=(e,t=!1)=>{const n=Dn;t&&et.add(e),setTimeout(()=>{const r=document.querySelector(`[data-modal-panel][data-window-key="${e}"]`),o=r?.getAttribute("data-modal-id");var i,a;!o||(i=o,a=n,(Pn.get(i)??-1)>a)||Qn(o),t&&et.delete(e)},50)},m=(e,t,n)=>{const r=Ee;if(n||!r)return[...e,t];const o=function(e,t,n){if(!Ie(t))return e.length;if(t.shellOwned&&Ke(t,n.home))return 0;const r=Ke(t,n.home)?void 0:We(t)?.key;if(r){let t=-1;if(e.forEach((e,o)=>{Ie(e)&&!Ke(e,n.home)&&We(e)?.key===r&&(t=o)}),t>=0)return t+1}if("page"===t.type&&t.route&&!Ke(t,n.home)&&n.favorites.includes(t.route))return e.length>0&&Ke(e[0],n.home)?1:0;const o=t.openedFrom?e.findIndex(e=>e.id===t.openedFrom):-1;if(o>=0){const t=/* @__PURE__ */new Set([e[o].id]);let r=o+1;for(;r<e.length&&e[r].openedFrom&&t.has(e[r].openedFrom);)t.add(e[r].id),r++;const i=t=>Ie(e[t])&&!Ke(e[t],n.home)?We(e[t])?.key:void 0;for(;r>0&&r<e.length&&void 0!==i(r)&&i(r)===i(r-1);)r++;return r}return e.length}(e,t,{home:xe(),favorites:r.favorites});return[...e.slice(0,o),t,...e.slice(o)]},p=B(e=>{i(t=>function(e,t){const n=new Set(t),r=new Map(e.map(e=>[e.id,e])),o=t.map(e=>r.get(e)).filter(e=>!!e);if(o.length!==n.size)return e;let i=0;const a=e.map(e=>n.has(e.id)?o[i++]:e);return a.every((t,n)=>t===e[n])?e:a}(t,e))},[]),f=B((e,t,n,r,o,a={})=>{if(!ue[e]||!se(ue[e]))return;const s=`${e}:${t}`,l=at();i(i=>{const c=i.find(n=>n.entityType===e&&String(n.entityId)===String(t));return c?(h(c.id),i):(h(s,!0),m(i,{id:s,type:"modal",label:r||t,route:o||window.location.pathname,entityType:e,entityId:t,entitySnapshot:Fe(n),openedFrom:l},!!a.append))})},[]),w=B((e,t={})=>{if(!ue[e]||!ae(ue[e]))return;const n=ue[e],{reuse:r=!1,background:o=!1,shellOwned:s,search:l,append:c=!1}=t,u=e=>{var t;o?(t=e,qn.add(t)):h(e)};if(n.widget){const t=a.current.find(t=>"page"===t.type&&t.route===e);if(t)return void d(t.id)}const p=at();i(t=>{if(n.multiInstance){const i=t.filter(t=>"page"===t.type&&t.route===e);if(r&&!l&&i.length>0)return o||h(i[i.length-1].id),t;const a=`page:${e}:${Math.random().toString(36).slice(2,8)}`;return u(a),m(t,{id:a,type:"page",label:n.label,route:e,openedFrom:p,...s?{shellOwned:s}:{},...l?{pageSearch:l}:{}},c)}const i=t.find(t=>"page"===t.type&&t.route===e);if(i)return n.widget?t:(o||h(i.id),l&&i.pageSearch!==l?t.map(e=>e===i?{...e,pageSearch:l}:e):t);const a=`page:${e}`;return u(a),m(t,{id:a,type:"page",label:n.label,route:e,openedFrom:p,...s?{shellOwned:s}:{},...l?{pageSearch:l}:{}},c)})},[d]),y=B(()=>{},[]),g=B(()=>{},[]),v=d,b=d;/* @__PURE__ */
|
|
40
|
+
return Q(Ye.Provider,{value:{openWindows:o,openEntity:f,openPage:w,reorderWindows:p,closeEntity:v,minimize:y,items:[],openItems:o,restore:g,remove:b,restoreIfMinimized:()=>!1},children:[e,
|
|
41
|
+
/* @__PURE__ */ee(gt,{openWindows:o,onRemove:d,onSplitView:Yr,onActivate:e=>{document.querySelectorAll("[data-modal-panel]").forEach(t=>{const n=t.querySelector("[data-window-title]");if(n?.textContent?.includes(e)){const e=t.getAttribute("data-modal-id");e&&Qn(e)}})},onActivateById:it}),
|
|
42
|
+
/* @__PURE__ */ee(Xr,{}),!r&&o.map(e=>{const n=e.route?t?.(e.route):void 0;
|
|
43
|
+
/* @__PURE__ */
|
|
44
|
+
return ee(we.Provider,{value:c(e),children:/* @__PURE__ */ee(Ne,{fallback:(t,n)=>/* @__PURE__ */ee(Vr,{open:!0,onClose:()=>u(e.id),title:e.label,size:"md",autoHeight:!0,windowKey:e.id,children:/* @__PURE__ */ee(Ce,{error:t,onReload:n})}),children:/* @__PURE__ */ee(_t,{spec:Je(e),children:/* @__PURE__ */ee(to,{windowId:e.id,children:"page"===e.type?/* @__PURE__ */ee(Ze,{item:e,onClose:()=>u(e.id),accentRgb:n}):/* @__PURE__ */ee(nt,{item:e,onClose:()=>u(e.id),onMinimize:()=>{},accentRgb:n})})})})},e.id)})]})}var xt=400;function kt({panelRef:e,bodyRef:t,open:n,widget:r,active:o,minimized:i}){const a=F(null),s=F(!1);n&&!s.current&&(a.current="undefined"==typeof document?null:document.activeElement),s.current=n;const l=F(!1),c=F(void 0),u=F(i),d=u.current&&!i;u.current=i;const h=()=>{l.current=!0,clearTimeout(c.current),c.current=setTimeout(()=>{l.current=!1},xt)};j(()=>{n&&!r&&h()},[n,r]),j(()=>{d&&n&&!r&&h()},[d]),j(()=>()=>clearTimeout(c.current),[]),j(()=>{if(!n||r||!o||i||!l.current)return;l.current=!1;const a=e.current;if(!a||a.contains(document.activeElement))return;if(document.activeElement?.closest('[aria-modal="true"]'))return;const s=t.current?M(t.current)[0]:void 0;s?s.focus():(a.hasAttribute("tabindex")||a.setAttribute("tabindex","-1"),a.focus())},[n,r,o,i,e,t]),O(()=>{if(!n||r)return;const t=e.current;return()=>{const e=a.current,n=document.activeElement;(!n||n===document.body||!!t?.contains(n))&&e&&e.isConnected&&!t?.contains(e)&&e.focus?.()}},[n,r,e])}var Et=null,Mt=/* @__PURE__ */new Set;function Ct(){return Et}function Nt(e){if(Et!==e){Et=e;for(const e of Mt)e()}}function St(e){return Mt.add(e),()=>{Mt.delete(e)}}var Lt=!1,Tt={menus:0,submenus:0,menuKey:null,moveMs:0,resizeMs:0},zt=()=>{};function At(e){Lt=e,Tt={menus:0,submenus:0,menuKey:null,moveMs:0,resizeMs:0}}function Dt(e,t){Lt&&("submenu"===e?Tt.submenus++:Tt.menus++,Tt.menuKey=t)}function Pt(e){if(!Lt)return zt;const t=performance.now();let n=!1;return()=>{if(n)return;if(n=!0,!Lt)return;const r=performance.now()-t;"move"===e?Tt.moveMs+=r:Tt.resizeMs+=r}}function It(){const e=Tt;return Tt={menus:0,submenus:0,menuKey:null,moveMs:0,resizeMs:0},e}var Wt=/* @__PURE__ */new Set([T,E]),Kt=e=>Wt.has(e)||"function"==typeof e&&"badge"===e.titleRole,Rt=/* @__PURE__ */new Set(["button","a","input","select","textarea","kbd"]),$t=/* @__PURE__ */new Set(["svg"]);function Ot(e){const t=[],n={text:"",accessories:[],badges:[],actions:[]};return Ft(e,n,t),n.text=t.join("").replace(/\s+/g," ").trim(),n}function Ft(e,t,n){if(null==e||"boolean"==typeof e)return;if("string"==typeof e||"number"==typeof e)return void n.push(String(e));if(Array.isArray(e))return void e.forEach(e=>Ft(e,t,n));if(!U(e))return;const r=e;if(r.type===w)return void(void 0===t.copy&&"string"==typeof r.props.text&&r.props.text&&(t.copy=r.props.text));if(r.type===Y)return void X.toArray(r.props.children).forEach(e=>Ft(e,t,n));if("string"==typeof r.type){if($t.has(r.type))return;if(!Rt.has(r.type))return n.push(" "),X.toArray(r.props.children).forEach(e=>Ft(e,t,n)),void n.push(" ")}const o=V(r,{key:`title-part-${t.accessories.length}`});t.accessories.push(o),(Kt(r.type)?t.badges:t.actions).push(o)}var jt=/* @__PURE__ */new Map,qt=/* @__PURE__ */new Set,Ht=0;function Bt(){Ht++,qt.forEach(e=>e())}function Ut(e){return jt.get(e)}function Yt(e){return qt.add(e),()=>{qt.delete(e)}}function Xt(){return Ht}var Vt=K(""),Gt=K(null);function _t({spec:e,children:t}){/* @__PURE__ */
|
|
45
|
+
return ee(Gt.Provider,{value:e,children:t})}var Jt=/* @__PURE__ */new Set(["button","input","textarea","select","kbd","svg"]),Zt='button[type="submit"], button[data-submit], button.btn-submit, button.bg-green-600, button.bg-blue-600',Qt='button, a[href], summary, [role="button"], [role="link"], [role="menuitem"], select';function en(e){return tn(e).replace(/\s+/g," ").trim()}function tn(e){if(null==e||"boolean"==typeof e)return"";if("string"==typeof e)return e;if("number"==typeof e)return String(e);if(Array.isArray(e))return e.map(tn).join("");if(U(e)){const t=e,n="string"==typeof t.type?t.type:"";return Jt.has(n)?"":` ${tn(t.props?.children)} `}return""}function nn(e){const t=R(Vt);j(()=>{if(!t)return;const n=n=>{n.detail===t&&e()};return window.addEventListener("widget-open-settings",n),()=>window.removeEventListener("widget-open-settings",n)},[e,t])}var rn={};function on(e,t,n){const r=R(Vt);j(()=>{if(!r)return;rn[r]||(rn[r]=[]);const o={label:e,icon:n,onClick:t};return rn[r].push(o),()=>{rn[r]=(rn[r]||[]).filter(e=>e!==o)}},[r,e,t,n])}function an({title:e}){const t=F(null);return j(()=>{const n=setTimeout(()=>{const n=t.current?.closest("[data-modal-id]"),r=n?.getAttribute("data-modal-id");r&&window.dispatchEvent(new CustomEvent("window-title-update",{detail:{id:r,title:e}}))},0);return()=>clearTimeout(n)},[e]),/* @__PURE__ */ee("span",{ref:t,style:{display:"none"},"aria-hidden":"true"})}function sn(e){}var ln=K(null);function cn(){return R(Vt)}function un(){const e=H(Cr,Mr),t=R(ln);return t?.active??(Tn.length<=1||null!=e)}function dn({children:e,position:t="right",quiet:n=!1}){const r=R(ln),[o,i]=q(null);return j(()=>{if(!r)return;const e="left"===t?r.leftRef:r.rightRef,o=()=>!!e.current&&(i(e.current),n||r.notify(),!0);if(o())return;const a=setInterval(()=>{o()&&clearInterval(a)},50),s=setTimeout(()=>clearInterval(a),2e3);return()=>{clearInterval(a),clearTimeout(s)}},[r,t,n]),o?ne(e,o):null}function hn({onClick:e,children:t,className:n}){const r=R(ln);/* @__PURE__ */
|
|
46
|
+
return ee("button",{type:"button",onClick:async()=>{if(r?.isDirty){const{confirm:e}=await(import("./shell/ConfirmDialog.js"));if(!await e({title:"Discard changes?",message:"You have unsaved changes. Are you sure you want to cancel? All changes will be lost.",confirmLabel:"Discard",cancelLabel:"Keep Editing",variant:"warning"}))return}e()},className:n||"bg-white text-gray-700 border border-gray-300 px-4 py-2 text-sm font-medium rounded-lg hover:bg-gray-50",children:t||"Cancel"})}var mn="erp_window_positions",pn={};try{const e=localStorage.getItem(mn);e&&(pn=JSON.parse(e))}catch{}var fn=null;function wn(){fn&&clearTimeout(fn),fn=setTimeout(()=>{try{localStorage.setItem(mn,JSON.stringify(pn))}catch{}},500)}var yn="erp_activation_order",gn=[];try{const e=localStorage.getItem(yn),t=e?JSON.parse(e):null;Array.isArray(t)&&t.every(e=>"string"==typeof e)&&(gn=t)}catch{}var vn=null;function bn(){vn&&clearTimeout(vn),vn=setTimeout(()=>{try{localStorage.setItem(yn,JSON.stringify(gn))}catch{}},500)}function xn(e,t){pn[e]||(pn[e]=t,wn())}function kn(e){return pn[e]?{...pn[e]}:null}function En(e,t){pn[e]=t,wn()}function Mn(){const r=e(),o=t();let i=!1;for(const e of Object.keys(pn))n(pn[e],r,o)&&(delete pn[e],i=!0);i&&wn()}var Cn={sm:384,md:512,lg:672,xl:896,"2xl":1152,"3xl":1408},Nn=4e3,Sn=()=>{if("undefined"==typeof document)return"large";const e=getComputedStyle(document.documentElement).getPropertyValue("--default-window-size")?.trim();return"small"===e||"medium"===e||"maximized"===e?e:"large"},Ln={small:.8,medium:1,large:1.25,maximized:1.25},Tn=[],zn=/* @__PURE__ */new Set,An=/* @__PURE__ */new Set,Dn=0,Pn=/* @__PURE__ */new Map;var In=0;function Wn(){return In}function Kn(){In++,zn.forEach(e=>e())}var Rn=/* @__PURE__ */new Map,$n=/* @__PURE__ */new Map,On=/* @__PURE__ */new Map;function Fn(){for(let e=Tn.length-1;e>=0;e--){const t=On.get(Tn[e]);if(t?.tab)return t.owner}return null}function jn(){return H(Cr,Fn,()=>null)}var qn=/* @__PURE__ */new Set;var Hn=null;function Bn(e){Hn=null,Qn(e)}function Un(e){Hn=e;const t=Rn.get(e);t&&Bn(t)}var Yn=/* @__PURE__ */new Map;function Xn(e){return Yn.get(e)?.holdsChanges()??!1}function Vn(e){const t=Yn.get(e);return t?t.ask():Promise.resolve(!0)}function Gn(e){Hn===e&&(Hn=null)}function _n(e,t,n){if(n&&On.set(e,n),t)if(Rn.set(t,e),$n.set(e,t),qn.delete(t)){Tn.unshift(e);const n=gn.indexOf(t);-1!==n&&gn.splice(n,1),gn.unshift(t),bn()}else!function(e,t){const n=gn.indexOf(t);if(-1===n)return void Tn.push(e);let r=Tn.length;for(let e=0;e<Tn.length;e++){const t=$n.get(Tn[e]);if(t&&gn.indexOf(t)>n){r=e;break}}Tn.splice(r,0,e)}(e,t),-1===gn.indexOf(t)&&(gn.push(t),bn());else Tn.push(e);Kn(),window.dispatchEvent(new CustomEvent("modal-reorder")),t&&Hn===t&&Bn(e)}function Jn(e){return e?On.get(e)?.owner??$n.get(e)??null:null}var Zn=/* @__PURE__ */new Set;function Qn(e){const t=Jn(Mr()),n=Tn.indexOf(e);-1!==n&&Tn.splice(n,1),Tn.push(e);const o=On.get(e);if(o?.root&&o.tab&&r()){const e=Tn.filter(e=>{const t=On.get(e);return!!t&&!t.root&&t.owner===o.owner});for(const t of e)Tn.splice(Tn.indexOf(t),1),Tn.push(t)}An.delete(e);const i=$n.get(e);if(i){const e=gn.indexOf(i);-1!==e&&gn.splice(e,1),gn.push(i),bn(),Hn&&Hn!==i&&(Hn=null)}Kn(),window.dispatchEvent(new CustomEvent("modal-reorder"));const a=Jn(Mr());a&&a!==t&&Zn.forEach(e=>e(a))}function er(e){const t=Tn.indexOf(e);-1!==t&&Tn.splice(t,1),An.add(e),Pn.set(e,++Dn);const n=$n.get(e);if(n){const e=gn.indexOf(n);-1!==e&&(gn.splice(e,1),bn())}Kn(),window.dispatchEvent(new CustomEvent("modal-reorder"))}var tr=/* @__PURE__ */new Set;var nr=8,rr=32;function or(){return e()}var ir=u.windowBar,ar=80,sr=384,lr=400;function cr(e,t=or()){const n=Math.min(Math.max(e.x,t.x+ar-e.w),t.x+t.w-ar),r=Math.min(Math.max(e.y,t.y),t.y+t.h-ir);return n===e.x&&r===e.y?e:{...e,x:n,y:r}}function ur(e){const t=e.getBoundingClientRect();if(0===t.width||0===t.height)return!0;const n=or();return t.left>=n.x-1&&t.top>=n.y-1&&t.right<=n.x+n.w+1&&t.bottom<=n.y+n.h+1}function dr(e){const t=or(),n=Math.floor(t.w/2),r=Math.floor(t.h/2);switch(e){case"top":return{x:t.x,y:t.y,w:t.w,h:t.h};case"left":return{x:t.x,y:t.y,w:n,h:t.h};case"right":return{x:t.x+n,y:t.y,w:t.w-n,h:t.h};case"tl":return{x:t.x,y:t.y,w:n,h:r};case"tr":return{x:t.x+n,y:t.y,w:t.w-n,h:r};case"bl":return{x:t.x,y:t.y+r,w:n,h:t.h-r};case"br":return{x:t.x+n,y:t.y+r,w:t.w-n,h:t.h-r}}}var hr=null;function mr(e){const t=(hr||((hr=document.createElement("div")).style.cssText=["position: fixed","pointer-events: none",`z-index: ${P.snapPreview}`,"border-radius: 8px","background: rgba(59, 130, 246, 0.18)","border: 2px solid rgb(59, 130, 246)","transition: left 120ms ease, top 120ms ease, width 120ms ease, height 120ms ease, opacity 120ms ease","opacity: 0","display: none"].join(";"),document.body.appendChild(hr)),hr);t.style.display="block",t.style.left=`${e.x}px`,t.style.top=`${e.y}px`,t.style.width=`${e.w}px`,t.style.height=`${e.h}px`,t.style.opacity="1"}function pr(){hr&&(hr.style.opacity="0",hr.style.display="none")}var fr=[{zone:"left",labelKey:"snapLeft",region:"inset-y-0 left-0 w-1/2"},{zone:"right",labelKey:"snapRight",region:"inset-y-0 right-0 w-1/2"},{zone:"tl",labelKey:"snapTopLeft",region:"top-0 left-0 h-1/2 w-1/2"},{zone:"tr",labelKey:"snapTopRight",region:"top-0 right-0 h-1/2 w-1/2"},{zone:"bl",labelKey:"snapBottomLeft",region:"bottom-0 left-0 h-1/2 w-1/2"},{zone:"br",labelKey:"snapBottomRight",region:"bottom-0 right-0 h-1/2 w-1/2"}],wr=350,yr=200;function gr({maximized:e,onToggleMax:t,onSnap:n,buttonClassName:r,strings:o}){const[i,a]=q(!1),s=F(void 0),l=F(void 0);j(()=>()=>{clearTimeout(s.current),clearTimeout(l.current)},[]);const c=()=>{clearTimeout(l.current),s.current=setTimeout(()=>a(!0),wr)},u=()=>{clearTimeout(s.current),l.current=setTimeout(()=>a(!1),yr)};/* @__PURE__ */
|
|
47
|
+
return Q("span",{className:"relative inline-flex",onMouseEnter:c,onMouseLeave:u,children:[
|
|
48
|
+
/* @__PURE__ */ee("button",{onClick:t,onFocus:c,onBlur:u,title:e?o.windowed:o.maximize,className:r,children:e?"❐":"⤢"}),i&&/* @__PURE__ */ee("div",{role:"group","aria-label":o.snapLayouts,onMouseEnter:()=>clearTimeout(l.current),onMouseLeave:u,className:"absolute right-0 top-full z-30 mt-1 grid w-max grid-cols-2 gap-1 rounded-lg border border-line bg-surface p-2 shadow-lg",children:fr.map(({zone:e,labelKey:t,region:r})=>/* @__PURE__ */ee("button",{type:"button","aria-label":o[t],title:o[t],onClick:()=>{a(!1),n(e)},onFocus:()=>clearTimeout(l.current),onBlur:u,className:"relative h-7 w-11 rounded border border-gray-300 bg-gray-50 hover:border-blue-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-400",children:/* @__PURE__ */ee("span",{"aria-hidden":"true",className:`absolute rounded-sm bg-blue-500/70 ${r}`,style:{margin:2}})},e))})]})}var vr="rosh-gesture-style";var br={se:"nwse-resize",nw:"nwse-resize",sw:"nesw-resize",ne:"nesw-resize",n:"ns-resize",s:"ns-resize",e:"ew-resize",w:"ew-resize"},xr=4;function kr(e,t,n,r){!function(){if("undefined"==typeof document||document.getElementById(vr))return;const e=document.createElement("style");e.id=vr,e.textContent="body.rosh-gesturing [data-modal-panel]{will-change:transform}",document.head.appendChild(e)}();try{e.setPointerCapture(t)}catch{}document.body.classList.add("rosh-gesturing");const o=document.createElement("div");o.setAttribute("data-drag-shield",""),o.style.cssText=`position:fixed;inset:0;z-index:2147483647;cursor:${n};background:transparent;touch-action:none`,document.body.appendChild(o);const i=Pt(r);let a=!1;return()=>{if(!a){a=!0,i();try{e.releasePointerCapture(t)}catch{}o.remove(),document.body.classList.remove("rosh-gesturing")}}}function Er(e){const t=Tn.indexOf(e);if(-1===t)return-1;const n=P.window+t*P.windowStep,o=On.get(e);if(!o||o.root||!o.tab||!r())return n;let i=-1;for(const[e,t]of On){if(!t.root||t.owner!==o.owner)continue;const n=Tn.indexOf(e);-1!==n&&(i=Math.max(i,P.window+n*P.windowStep))}return i>=n?i+2+Math.min(t,7):n}function Mr(){return Tn[Tn.length-1]||null}function Cr(e){return zn.add(e),()=>{zn.delete(e)}}"undefined"!=typeof window&&window.addEventListener("deactivate-all-modals",function(){for(let e=Tn.length-1;e>=0;e--)tr.has(Tn[e])||Tn.splice(e,1);gn=gn.filter(e=>{const t=Rn.get(e);return null!=t&&tr.has(t)}),bn(),Kn(),window.dispatchEvent(new CustomEvent("modal-reorder"))});var Nr="modal-close-request";function Sr(e){H(Cr,Wn);const t=R(ln);if(Tn.length<=1)return!0;if(e){const t=Rn.get(e);if(null!=t)return Mr()===t}return t?.active??null!=Mr()}var Lr=!1,Tr=/* @__PURE__ */new Set;function zr(e){return Tr.add(e),()=>Tr.delete(e)}function Ar(){return Lr}function Dr(e){Lr!==e&&(Lr=e,Tr.forEach(e=>e()))}function Pr(){Dr(!Lr)}function Ir(){Dr(!1)}var Wr=null,Kr=/* @__PURE__ */new Set;function Rr(e){return Kr.add(e),()=>Kr.delete(e)}function $r(){return Wr}function Or(e){Wr!==e&&(Wr=e,Kr.forEach(e=>e()))}var Fr=null,jr=/* @__PURE__ */new Set;function qr(e){return jr.add(e),()=>jr.delete(e)}function Hr(){return Fr}function Br(e){Fr!==e&&(Fr=e,jr.forEach(e=>e()))}function Ur(){if(!Fr)return void Dr(!1);Or(Fr),Br(null),Dr(!1)}function Yr(){Dr(!Lr),window.dispatchEvent(new CustomEvent("modal-split-view"))}function Xr(){const e=H(zr,Ar),[t,n]=q(e),[r,o]=q(e);return j(()=>{if(e){n(!0);const e=requestAnimationFrame(()=>o(!0));return()=>cancelAnimationFrame(e)}o(!1);const t=setTimeout(()=>n(!1),280);return()=>clearTimeout(t)},[e]),t&&"undefined"!=typeof document?ne(
|
|
49
|
+
/* @__PURE__ */ee("div",{onMouseDown:e=>{e.stopPropagation(),Dr(!1)},style:{position:"fixed",inset:0,background:"rgba(0,0,0,0.55)",backdropFilter:"blur(2px)",WebkitBackdropFilter:"blur(2px)",zIndex:P.expose,cursor:"pointer",opacity:r?1:0,transition:"opacity 260ms cubic-bezier(0.2, 0.8, 0.2, 1)",pointerEvents:r?"auto":"none"}}),document.body):null}function Vr({open:t,onClose:i,title:c,icon:u,copyText:d,size:h="lg",dirty:m=!1,onNext:p,onPrev:f,footer:w,bodyScroll:v,onMinimize:E,initialBox:M,actions:L,actionsLeft:T,editing:D=!1,edit:K,allowPinOnTop:$,initialPosition:Y,widget:X,compact:J,appStyle:Z,flushBody:re,autoHeight:oe,autoMinHeight:ie,autoWidth:ae,widgetMenu:se,dimensions:le,windowKey:ce,openedFromKey:ue,accentRgb:de,children:he}){const[me,pe]=q(()=>r()),fe=x()&&!me,ye=k()&&!!X,[ge,ve]=q(0),[be,xe]=q(!1),ke=F(null),Ee=F(0);j(()=>{Ee.current=ge},[ge]);const Me=B(e=>{fe&&(ke.current={startX:e.clientX,startY:e.clientY,pointerId:e.pointerId},xe(!0),Nt(ue??null))},[fe,ue]),Ce=H(St,Ct);j(()=>{if(!be)return;const e=e=>{if(!ke.current)return;const t=e.clientX-ke.current.startX;if(Math.abs(e.clientY-ke.current.startY)>Math.abs(t)+12)return ke.current=null,xe(!1),ve(0),void Nt(null);ve(Math.max(0,t))},t=()=>{if(!ke.current)return;const e=.3*window.innerWidth,t=Ee.current>e;ke.current=null,xe(!1),t?(ve(window.innerWidth),setTimeout(()=>{i(),ve(0),Nt(null)},180)):(ve(0),Nt(null))};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),window.addEventListener("pointercancel",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t),window.removeEventListener("pointercancel",t)}},[be]);const[Le,ze]=q(c),Ae=W(),De=Ae.window;j(()=>{ze(c)},[c]);const Pe=G(()=>en(Le).trim()||void 0,[Le]),Ie=_(),[We,Ke]=q(!1),Re=F(!1),[$e,Oe]=q(!1),[Fe,je]=q(null),qe=R(Gt),He=R(we),{prefs:Be,save:Ue}=g(),Ye=!!Be.window_accent_stripe,Xe=Be.favorite_documents||[],Ge=!!qe&&Xe.some(e=>e.entityType===qe.entityType&&e.entityId===qe.entityId),Je=B(()=>{if(!qe)return;const e=Ge?Xe.filter(e=>!(e.entityType===qe.entityType&&e.entityId===qe.entityId)):[...Xe,{entityType:qe.entityType,entityId:qe.entityId,label:qe.label}];Ue({favorite_documents:e})},[qe,Ge,Xe,Ue]),[Ze,Qe]=q(null),[et,tt]=q("top-right"===Y?"right":"left"),nt=F(!1),rt=F(null);O(()=>{const e=rt.current;e&&(de?e.style.setProperty("--window-accent-rgb",de):e.style.removeProperty("--window-accent-rgb"))},[de]);const ot=F(!1),it=F(null),at=F(null),st=F(null),[lt,ct]=q(!1),ut=F(null),dt=F(null),ht=F(null),[mt,pt]=q(!1);O(()=>{const e=dt.current,t=ht.current;if(!e||!t)return;const n=()=>pt(function(e,t){return e.scrollWidth>t.clientWidth}(t,e));if(n(),"undefined"==typeof ResizeObserver)return;const r=new ResizeObserver(n);return r.observe(e),r.observe(t),()=>r.disconnect()},[null!=w&&!1!==w]);const ft=!!K&&!X&&!J&&!Z&&(K.editing||"hidden"!==K.state),wt=!!(w||L||T)||lt||ft,yt=R(Se),gt=""!==R(Vt),vt=F(null);vt.current=He?{owner:He.key,tab:He.tab,root:!gt}:null;const bt=ce||(He&&!gt?He.key:null),xt=!!yt&&!gt&&yt.enabled&&yt.hasState&&(D||yt.declaredEditable)&&!yt.handMounted&&wt&&!X&&!J&&!Z&&!fe,Et=/* @__PURE__ */ee(A,{name:"window",className:"h-4 w-4",strokeWidth:1.5}),Mt=u&&U(u)?V(u,{className:`h-4 w-4 ${u.props?.className??""}`.trim()}):u??Et,Lt=()=>/* @__PURE__ */ee("button",{onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation();const t=e.currentTarget.getBoundingClientRect();je(e=>e?null:{x:t.left,y:t.bottom+4})},className:"shrink-0 p-0.5 rounded hover:bg-gray-200/50 transition-colors",title:"Window menu",children:Mt}),Tt=40,{minimize:zt,items:At,restoreIfMinimized:Dt,openWindows:Pt}=_e(),It=F(`modal-${Math.random().toString(36).slice(2,8)}`).current;j(()=>{if(X)return tr.add(It),()=>{tr.delete(It)}},[X,It]),j(()=>{const e=e=>{const t=e.detail;t?.id===It&&ze(t.title)};return window.addEventListener("window-title-update",e),()=>window.removeEventListener("window-title-update",e)},[It]);const[Wt,Kt]=q(P.window),Rt=function(e){const t=H(Cr,Mr);return Tn.length<=1||t===e}(It),$t=F(K);$t.current=K;const Ft=!!K&&!K.editing&&"enabled"===K.state;j(()=>{if(!t||!Rt||!Ft)return;const e=e=>{("KeyE"===e.code||"E"===e.key||"e"===e.key)&&e.altKey&&e.shiftKey&&!e.metaKey&&!e.ctrlKey&&(e.preventDefault(),e.stopPropagation(),$t.current?.onEdit())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[t,Rt,Ft]);const qt=function(e){return H(Cr,()=>An.has(e))}(It);kt({panelRef:rt,bodyRef:it,open:t,widget:!!X,active:Rt,minimized:qt});const Ht=H(zr,Ar),Ut=H(Rr,$r),Yt=H(qr,Hr),Xt=!$&&!X,_t=Ht&&Xt,[Jt,tn]=q(!1),nn=_t&&Yt===It,[on,an]=q(!1),sn=on&&Xt&&Ut===It?"picked":null,cn=F(_t);j(()=>{if(cn.current&&!_t){an(!0);const e=setTimeout(()=>{an(!1),Wr===It&&Or(null)},700);return cn.current=_t,()=>clearTimeout(e)}cn.current=_t},[_t,It]),j(()=>{_t||tn(!1)},[_t]),j(()=>{const e=at.current,t=st.current;if(!e&&!t)return;const n=e=>e?Array.from(e.children).filter(e=>"shell"!==e.dataset.undoControls).length:0,r=()=>ct(n(e)+n(t)>0);r();const o=new MutationObserver(r);return e&&o.observe(e,{childList:!0}),t&&o.observe(t,{childList:!0}),()=>o.disconnect()},[t]),j(()=>{const e=e=>{if(e.target.closest('button[type="submit"]')&&rt.current){const t=rt.current.querySelector("form");t&&(e.preventDefault(),t.requestSubmit())}},t=at.current,n=st.current;return t&&t.addEventListener("click",e),n&&n.addEventListener("click",e),()=>{t&&t.removeEventListener("click",e),n&&n.removeEventListener("click",e)}},[t]);const un=F(!1),dn=B(e,[]),hn=B(()=>{const t=e(),n=le?le[0]:Cn[h]||672,o=t.w-80,i=t.h-80,a=Math.min(n,o),s=Ln[Sn()],l=le?Math.min(le[1],i):(()=>{const e=("sm"===h?500:"md"===h?600:"lg"===h?700:"xl"===h?800:920)*s;return Math.max(320,Math.min(e,t.h-80))})(),c="cascade"!==(getComputedStyle(document.documentElement).getPropertyValue("--window-position")?.trim()||"cascade")||r()?0:30*(Tn.length-1),u=Math.max(Tt,(i-l)/2),d=(o-a)/2,m=t.h-Tt-l-u;return"top-right"===Y?{x:t.x+t.w-a-Tt,y:t.y+Tt,w:a,h:l}:"top-left"===Y?{x:t.x+Tt,y:t.y+Tt,w:a,h:l}:{x:t.x+Math.max(Tt,(o-a)/2+Tt)+Math.min(c,Math.max(0,d)),y:t.y+u+Math.min(c,Math.max(0,m)),w:a,h:l}},[h]),mn=F(!1);t||(mn.current=!1);const fn=ce||d||null;j(()=>{if(!t)return;_n(It,fn,vt.current??void 0),ce||Qn(It),un.current=!1,Kt(Er(It));const e=()=>{Kt(Er(It))},n=()=>{},r=e=>{if(!e)return!1;if(e.windowKey)return e.windowKey===ce;if(!e.label)return!1;const t=rt.current?.querySelector("[data-window-title]");return!!t?.textContent?.includes(e.label)},o=e=>{if(!r(e.detail))return;if(Qn(It),Dn.current)return;const t=or(),n=Math.min(Bn.current.w,t.w-40),o=Math.min(Bn.current.h,t.h-40),i=t.x+(t.w-n)/2,a=t.y+(t.h-o)/2;vn({x:i,y:a,w:n,h:o}),Hn(!1)},i=e=>{const t=e.detail;r(t)&&(Qn(It),je({x:t.x,y:t.y}))},a=e=>{if(e.detail?.windowKey!==ce)return;Qn(It);const t=Bn.current,n=function(e,t=or()){const n=Math.min(e.w,t.w),r=Math.min(e.h,t.h);return{w:n,h:r,x:Math.min(Math.max(e.x,t.x),t.x+t.w-n),y:Math.min(Math.max(e.y,t.y),t.y+t.h-r)}}(t);if(n.x===t.x&&n.y===t.y&&n.w===t.w&&n.h===t.h)return;const r=rt.current,o="function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(r&&!o){let e=!1;const t=()=>{e||(e=!0,r.style.transition="",window.dispatchEvent(new CustomEvent("modal-geometry")))};r.style.transition="left .28s ease, top .28s ease, width .28s ease, height .28s ease",r.addEventListener("transitionend",t,{once:!0}),window.setTimeout(t,400)}vn(n)};return window.addEventListener("modal-reorder",e),window.addEventListener("modal-split-view",n),window.addEventListener("modal-center",o),window.addEventListener("modal-reveal",a),window.addEventListener("modal-context-menu",i),()=>{!function(e){const t=Tn.indexOf(e);-1!==t&&(Tn.splice(t,1),Kn()),An.delete(e),Pn.delete(e),On.delete(e);const n=$n.get(e);n&&($n.delete(e),Rn.delete(n))}(It),window.removeEventListener("modal-reorder",e),window.removeEventListener("modal-split-view",n),window.removeEventListener("modal-center",o),window.removeEventListener("modal-reveal",a),window.removeEventListener("modal-context-menu",i),window.dispatchEvent(new CustomEvent("modal-reorder"))}},[t,It,fn,dn]);const yn=!X&&"maximized"===Sn(),[gn,vn]=q(()=>{if(fn&&pn[fn]){const e={...pn[fn]};return le&&(e.w=le[0],oe||(e.h=le[1])),cr(e)}return M?{x:M.x,y:M.y,w:M.w,h:M.h}:yn?dn():hn()}),[bn,xn]=q(()=>!oe),kn=F(me),En=F(null);j(()=>{const e=()=>{const e=r();e!==kn.current&&En.current?.(e),kn.current=e,pe(e),Kt(Er(It))};return window.addEventListener("react-os-shell:layout-mode-changed",e),()=>window.removeEventListener("react-os-shell:layout-mode-changed",e)},[It]);const Mn=me&&!!He?.tab&&!gt&&!X&&!fe,zn=Mn,Dn=F(zn);Dn.current=zn;const In=jn(),Wn=me&&!!He?.tab&&!X&&!fe&&!Ht&&In!==He.key,Fn=!!X&&me&&!Ht&&null!==In,[qn,Hn]=q(()=>fn&&pn[fn]||M?zn:zn||yn),Bn=F(gn);Bn.current=gn;const Un=F(qn);O(()=>{Un.current=qn},[qn]),O(()=>{if(bn||Mn)return;const e=rt.current,t=it.current;if(!e||!t)return;const n=ie??(X?0:240),r=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--taskbar-height"))||0;let o=0,i=null,a=null;const s=()=>{const c=t.firstElementChild;if(!c||e.offsetHeight<=0)return;c!==a&&(a&&l.unobserve(a),l.observe(c),a=c);const u=e.offsetHeight-t.offsetHeight,d=t.style.flex,h=t.style.overflowY,m=t.style.height;t.style.flex="0 0 auto",t.style.height="auto",t.style.overflowY="visible";const p=t.offsetHeight,f=c.offsetHeight;t.style.flex=d,t.style.height=m,t.style.overflowY=h;const w=c.offsetHeight>f+4,y=Math.max(n,window.innerHeight-r-Math.max(0,Bn.current.y)-24),g=w?Math.min(Bn.current.h,y):Math.min(Math.max(n,u+p),y),v=Math.abs(g-o)>1;v&&(o=g,vn(e=>Math.abs(e.h-g)>1?{...e,h:g}:e)),X||(g<=n?i&&(clearTimeout(i),i=null):(v||null===i)&&(i&&clearTimeout(i),i=setTimeout(()=>{const e=o;s(),o===e&&xn(!0)},160)))},l=new ResizeObserver(s);s(),ut.current&&l.observe(ut.current);const c=new MutationObserver(s);return c.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>{l.disconnect(),c.disconnect(),i&&clearTimeout(i)}},[bn,X,ie,wt,Mn]),O(()=>{if(!oe||!bn||X||!t)return;const e=ut.current;if(!e)return;let n=e.offsetHeight;const r=new ResizeObserver(()=>{if(!e.isConnected)return;const t=e.offsetHeight,r=t-n,o=t>0!=n>0;if(n=t,!o||0===r||qn)return;if(document.body.classList.contains("rosh-gesturing"))return;const i=ie??240,a=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--taskbar-height"))||0,s=Math.max(i,window.innerHeight-a-Math.max(0,Bn.current.y)-24);vn(e=>({...e,h:Math.min(Math.max(i,e.h+r),s)}))});return r.observe(e),()=>r.disconnect()},[oe,bn,X,t,qn,ie]);const Xn=!1!==ae&&!X&&!Z&&!fe,[Vn,Gn]=q(()=>!Xn);O(()=>{if(Vn||!t)return;if(!Xn||qn)return void Gn(!0);const n=rt.current,r=it.current;if(!n||!r)return;const o=/* @__PURE__ */new WeakSet;let i=Bn.current.w,c=0;const u=()=>Gn(!0),d=()=>{c=0;const t=Bn.current;if(Math.abs(t.w-i)>1||document.body.classList.contains("rosh-gesturing"))return void u();const d=e(),h=d.w-80;if(t.w>=h)return void u();const m=[],p=[];for(const e of[r,...Array.from(r.querySelectorAll("*"))]){const t=e.scrollWidth-e.clientWidth;if(t<=4||o.has(e))continue;const n=getComputedStyle(e).overflowX;"auto"!==n&&"scroll"!==n||(m.push(e),p.push(t))}if(!m.length)return;const f=Math.min(h,t.w+Math.max(...p)),w=f-t.w,y=n.style.width;n.style.width=`${f}px`;const g=m.map((e,t)=>({over:p[t],residual:e.scrollWidth-e.clientWidth}));n.style.width=y,g.forEach((e,t)=>{a(e,w)||o.add(m[t])});const v=s(t,l(t.w,w,g),d,Tt);v!==t&&(i=v.w,vn(v))};d();const h=new MutationObserver(()=>{c||(c=requestAnimationFrame(d))});h.observe(r,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["style","class","hidden"]});const m=setTimeout(u,Nn);return()=>{h.disconnect(),c&&cancelAnimationFrame(c),clearTimeout(m)}},[Vn,t,Xn,qn]);const Jn=F(null),Zn=!(!He?.tab||gt||X||fe);En.current=t=>{if(!Zn)return;if(t)return Jn.current||(Jn.current={box:{...Bn.current},maximized:Un.current}),void(Un.current=!0);const r=Jn.current;Jn.current=null;const o=e();if(r?.maximized)return Un.current=!0,Hn(!0),void vn(o);const i=r?.box??(fn?pn[fn]:void 0);if(Un.current=!1,Hn(!1),i&&!n(i,o,!1)){const e={...i};le&&(e.w=le[0],oe||(e.h=le[1])),vn(cr(e))}else vn(hn())},j(()=>{zn&&(Un.current=!0,Hn(!0),vn(dn()))},[zn,dn]),j(()=>{if(X)return;const e=()=>{const e=fn?pn[fn]:void 0;if(Un.current=!1,Hn(!1),e){const t={...e};le&&(t.w=le[0],oe||(t.h=le[1])),vn(cr(t))}else vn(hn())};return window.addEventListener("react-os-shell:restore-windowed",e),()=>window.removeEventListener("react-os-shell:restore-windowed",e)},[X,hn,fn]),j(()=>{t&&fn&&!Mn&&(pn[fn]=gn,wn()),t&&window.dispatchEvent(new CustomEvent("modal-geometry"))},[gn,t,fn,Mn]),j(()=>{if(!t)return;const e=()=>{Un.current?vn(dn()):document.body.classList.contains("rosh-gesturing")||vn(cr)};window.addEventListener("resize",e),window.addEventListener(o,e);let n=null;return qn&&(n=new MutationObserver(e),n.observe(document.body,{childList:!0,subtree:!1,attributes:!0,attributeFilter:["class"]})),()=>{window.removeEventListener("resize",e),window.removeEventListener(o,e),n?.disconnect()}},[t,qn,dn]),j(()=>{if(t&&(Ke(!1),Re.current=!1,nt.current=!1,Gn(!Xn),!Dn.current)){if(fn&&pn[fn]){const e=pn[fn];return void vn(t=>cr({...e,...oe?{h:t.h}:{},...Xn?{x:t.x,w:t.w}:{}}))}M&&(vn({x:M.x,y:M.y,w:M.w,h:M.h}),Hn(M.maximized))}},[t]),j(()=>{if(!t||"auto"!==m)return;let e;const n=t=>{rt.current?.contains(t.target)&&!Re.current&&(Re.current=!0,e=setTimeout(()=>Ke(!0),0))};return document.addEventListener("input",n,!0),document.addEventListener("change",n,!0),()=>{clearTimeout(e),document.removeEventListener("input",n,!0),document.removeEventListener("change",n,!0)}},[t,m]);const ir="auto"===m?We:!0===m,ar=He&&!gt?He.key:null,ur=G(()=>Ot(Le),[Le]),hr=F({shortcutSpec:qe,isOnDesktop:Ge,toggleDesktopShortcut:Je,taskbarStrings:Ae.taskbar});O(()=>{hr.current={shortcutSpec:qe,isOnDesktop:Ge,toggleDesktopShortcut:Je,taskbarStrings:Ae.taskbar}});const fr=F(null);fr.current||(fr.current={open:(e,t)=>je({x:e,y:t}),items:()=>{const e=hr.current,t=[];e.shortcutSpec&&t.push({label:e.isOnDesktop?e.taskbarStrings.removeFromDesktop:e.taskbarStrings.addToDesktop,onSelect:e.toggleDesktopShortcut});for(const e of rn[It]||[])t.push({label:e.label,icon:e.icon,onSelect:e.onClick});return t}}),j(()=>{if(t&&ar)return()=>{return e=ar,void(jt.delete(e)&&Bt());var e}},[t,ar]),Ve(!(ce||!t)&&ir);const wr=B(()=>ir||"auto"===m&&Re.current,[ir,m]),yr=B(async e=>{if(nt.current)return!1;if(!wr())return!0;nt.current=!0;const t=Pe,n="close"===e?"Are you sure you want to close?":"discard"===e?"Are you sure you want to stop editing?":"Are you sure you want to continue?",r=await y({title:"Discard changes?",message:t?`“${t}” has unsaved changes. ${n} All changes will be lost.`:`You have unsaved changes. ${n} All changes will be lost.`,confirmLabel:"Discard",cancelLabel:"Keep Editing",variant:"warning"});return nt.current=!1,r},[wr,Pe]),vr=B(()=>nt.current?Promise.resolve():wr()?yr("close").then(e=>{e&&i()}):(i(),Promise.resolve()),[wr,yr,i]),Sr=B(async()=>{await yr("discard")&&(Re.current=!1,Ke(!1),$t.current?.onDiscard())},[yr]),Lr=B(async()=>{const e=await yr("switch");return e&&(Re.current=!1,Ke(!1)),e},[yr]),Tr=F(()=>!1);O(()=>{Tr.current=wr}),O(()=>{if(!t||!ce)return;const e={holdsChanges:()=>Tr.current(),ask:Lr};return Yn.set(ce,e),()=>{Yn.get(ce)===e&&Yn.delete(ce)}},[t,ce,Lr]),O(()=>{if(!t||!bt)return;const e=e=>{e.detail?.windowKey===bt&&vr()};return window.addEventListener(Nr,e),()=>window.removeEventListener(Nr,e)},[t,bt,vr]);const Pr=F(null),Ir=B(e=>{if(0!==e.button)return;if(e.target.closest("button, input, a, kbd, select, textarea"))return;if(je(null),Qn(It),Dn.current)return void e.preventDefault();e.preventDefault();const t=e.currentTarget,n=e.pointerId;let r=null;const o=e.clientX,i=e.clientY,a=rt.current,s=a?.getBoundingClientRect();let l,c,u,d;if(Pr.current){const t=Pr.current;Pr.current=null,d=t.w,u=t.h;const n=s?Math.min(Math.max(20,e.clientX-s.left),t.w-20):t.w/2;l=e.clientX-n,c=e.clientY-12,a&&(a.style.width=`${d}px`,a.style.height=`${u}px`,a.style.left=`${l}px`,a.style.top=`${c}px`)}else l=s?s.left:Bn.current.x,c=s?s.top:Bn.current.y,u=s?s.height:Bn.current.h,d=s?s.width:Bn.current.w;Hn(!1),vn(e=>({...e,x:l,y:c,w:d,h:u}));let h=null;const m=e=>{if(!r){if(Math.abs(e.clientX-o)<xr&&Math.abs(e.clientY-i)<xr)return;r=kr(t,n,"move","move"),a&&(a.style.transition="none")}const s=l+e.clientX-o,u=Math.max(0,c+e.clientY-i);if(a&&(a.style.transform=`translate(${s-l}px, ${u-c}px)`),Bn.current={...Bn.current,x:s,y:u},!X){const t=function(e,t){const n=or(),r=e<=n.x+nr,o=e>=n.x+n.w-nr,i=t<=n.y+nr,a=t>=n.y+n.h-nr,s=e<=n.x+rr,l=e>=n.x+n.w-rr,c=t<=n.y+rr,u=t>=n.y+n.h-rr;return i&&s?"tl":i&&l?"tr":a&&s?"bl":a&&l?"br":c&&r?"tl":c&&o?"tr":u&&r?"bl":u&&o?"br":i?"top":r?"left":o?"right":null}(e.clientX,e.clientY);t!==h&&(h=t,t?mr(dr(t)):pr())}},p=()=>{window.removeEventListener("pointermove",m),window.removeEventListener("pointerup",p),r?.(),pr();const e=cr({...Bn.current});if(Bn.current=e,!X&&h){Pr.current={x:l,y:c,w:d,h:u};const e=dr(h);return a&&(a.style.left=`${e.x}px`,a.style.top=`${e.y}px`,a.style.width=`${e.w}px`,a.style.height=`${e.h}px`,a.style.transform="",a.style.transition=""),void vn(e)}if(X){const t=e.x+e.w/2,n=window.innerWidth/2;tt(t>n?"right":"left")}a&&(a.style.left=`${e.x}px`,a.style.top=`${e.y}px`,a.style.transform="",a.style.transition=""),vn(e)};window.addEventListener("pointermove",m),window.addEventListener("pointerup",p)},[]),Kr=B((e,t)=>{if(0!==e.button)return;e.preventDefault(),e.stopPropagation();const n=e.currentTarget,r=e.pointerId;let o=null;const i=e.clientX,a=e.clientY,s=rt.current,l=s?.getBoundingClientRect(),c=l?l.left:Bn.current.x,u=l?l.top:Bn.current.y,d=l?l.width:Bn.current.w,h=l?l.height:Bn.current.h,m="sw"===t||"nw"===t||"w"===t,p="ne"===t||"nw"===t||"n"===t,f="se"===t||"ne"===t||"e"===t,w="se"===t||"sw"===t||"s"===t;Hn(!1),vn({x:c,y:u,w:d,h:h}),Bn.current={x:c,y:u,w:d,h:h};let y=0,g=null;const v=()=>{if(y=0,!g)return;const e=g;g=null,Bn.current=e,s&&(s.style.left=`${e.x}px`,s.style.top=`${e.y}px`,s.style.width=`${e.w}px`,s.style.height=`${e.h}px`)},b=e=>{if(!o){if(Math.abs(e.clientX-i)<xr&&Math.abs(e.clientY-a)<xr)return;o=kr(n,r,br[t],"resize")}g=((e,t)=>{let n=c,r=u,o=d,i=h;if(f&&(o=Math.max(sr,d+e)),w&&(i=Math.max(lr,h+t)),m){const t=Math.max(sr,d-e);n=c+d-t,o=t}if(p){const e=Math.max(lr,h-t);r=u+h-e,i=e}return{x:n,y:r,w:o,h:i}})(e.clientX-i,e.clientY-a),y||(y=requestAnimationFrame(v))},x=()=>{window.removeEventListener("pointermove",b),window.removeEventListener("pointerup",x),y&&cancelAnimationFrame(y),v(),o?.(),vn({...Bn.current})};window.addEventListener("pointermove",b),window.addEventListener("pointerup",x)},[]),Fr=B(e=>{if(e.target.closest("button, input, a, kbd, select, textarea"))return;const t={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[e.key];if(!t&&"Enter"!==e.key)return;if(e.preventDefault(),e.stopPropagation(),Qn(It),"Enter"===e.key)return void(qn?(Hn(!1),vn(hn())):(Hn(!0),vn(dn())));const[n,r]=t;if(e.ctrlKey||e.metaKey){const e=()=>{Pr.current||(Pr.current={...Bn.current})};if(r<0)return e(),Hn(!0),void vn(dn());if(r>0){if(qn)return Hn(!1),void vn(hn());if(Pr.current){const e=cr(Pr.current);return Pr.current=null,Bn.current=e,void vn(e)}return void er(It)}e(),Hn(!1);const t=dr(n<0?"left":"right");return Bn.current=t,void vn(t)}if(qn)return;const o=Bn.current,i=e.shiftKey?{...o,w:Math.max(sr,o.w+24*n),h:Math.max(lr,o.h+24*r)}:cr({...o,x:o.x+24*n,y:Math.max(0,o.y+24*r)});Bn.current=i,vn(i)},[It,qn,hn,dn]),jr=B(e=>{Pr.current||(Pr.current={...Bn.current}),Hn(!1);const t=dr(e);Bn.current=t,vn(t),Qn(It)},[It]),Br=zn||_t?{}:{tabIndex:0,role:"group","aria-label":Pe?`${Pe} — ${De.windowSuffix}`:De.windowSuffix,"aria-keyshortcuts":"ArrowUp ArrowDown ArrowLeft ArrowRight Shift+ArrowUp Shift+ArrowDown Shift+ArrowLeft Shift+ArrowRight Control+ArrowUp Control+ArrowDown Control+ArrowLeft Control+ArrowRight Enter",onKeyDown:Fr},Ur=()=>{Hn(!0),vn(dn())},Yr=B(()=>{const e=rt.current;if(!e)return;const t=e.querySelector("form");if(t)t.requestSubmit();else{const t=e.querySelector(Zt);t&&!t.disabled&&t.click()}},[]);j(()=>{if(!t)return;if(X)return;const e=e=>{if(Tn[Tn.length-1]===It&&"Enter"===e.key){const t=e.target;if("TEXTAREA"===t.tagName||t.isContentEditable)return;if(e.metaKey||e.ctrlKey)e.preventDefault(),Yr();else{if("INPUT"===t.tagName&&t.closest("form"))return;if(!(t instanceof Element&&rt.current?.contains(t)))return;if(t.closest(Qt))return;e.preventDefault()}}};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[t,Yr,It,X]),j(()=>{if(!t)return;const e=e=>{Tn[Tn.length-1]===It&&((e.metaKey||e.ctrlKey)&&"s"===e.key?(e.preventDefault(),document.dispatchEvent(new CustomEvent("modal-save",{detail:{modalId:It}})),Re.current=!1,Ke(!1)):e.altKey&&e.shiftKey&&("KeyD"===e.code||"D"===e.key||"d"===e.key)&&(e.preventDefault(),document.dispatchEvent(new CustomEvent("modal-duplicate",{detail:{modalId:It}}))))};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[t]),j(()=>{if(!t)return;if(X)return;const e=e=>{if("Escape"===e.key&&Tn[Tn.length-1]===It){if(I(e))return e.preventDefault(),void e.stopPropagation();if(Mn&&!D)return;e.preventDefault(),e.stopPropagation(),vr()}};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[t,vr,It,X,Mn,D]);const Xr=t&&(void 0!==p||void 0!==f),[Vr]=q(()=>{if("undefined"==typeof document)return null;const e=document.createElement("span");return e.className="flex shrink-0 items-center gap-2",e.setAttribute("data-tab-actions",""),e}),Gr=Mn&&!He?.home&&ur.actions.length>0;j(()=>{t&&ar&&function(e,t){const n=jt.get(e);n&&n.title===t.title&&n.dirty===t.dirty&&n.copy===t.copy&&n.actions===t.actions&&n.menu===t.menu||(jt.set(e,t),Bt())}(ar,{title:ur.text||Pe,dirty:ir,copy:ur.copy,actions:Gr&&Vr?Vr:void 0,menu:fr.current??void 0})},[t,ar,Pe,ir,ur.text,ur.copy,Gr,Vr]);const _r=B(e=>{const t=document.getElementById("nav-boundary-toast");t&&t.remove();const n="bottom"===e?["That's the last one, chief.","You've hit rock bottom... of the list.","End of the line, buddy.","Nothing left. Go outside.","Congratulations, you scrolled to the void.","There's no more. I checked.","You've reached the edge of the known universe.","Plot twist: there is no next one.","Even scrolling has limits. Unlike your ambition.","Last one. Time to touch grass."]:["Already at the top. Overachiever.","There is no item above this. Trust me.","You're #1. Literally.","Can't go higher. You've peaked.","This is it. The summit. The top.","First item. No VIP lounge above this.","Going up? Nope. Elevator's broken.","You want negative indexes? Bold.","Top of the list. Top of the world.","The only way is down from here."],r=n[Math.floor(Math.random()*n.length)],o=document.createElement("div");o.id="nav-boundary-toast",o.className="fixed bottom-6 left-1/2 -translate-x-1/2 z-(--z-toast) bg-gray-900 text-on-accent flex min-h-10 items-center px-5 py-3 rounded-lg shadow-lg text-sm font-medium transition-opacity duration-300",o.textContent=r,document.body.appendChild(o),setTimeout(()=>{o.style.opacity="0",setTimeout(()=>o.remove(),300)},2e3)},[]);if(j(()=>{if(!t)return;const e=e=>{if(Tn[Tn.length-1]!==It)return;const t=e.target.tagName;"INPUT"!==t&&"TEXTAREA"!==t&&"SELECT"!==t&&(e.target.isContentEditable||("j"===e.key&&Xr&&(e.preventDefault(),p?p():_r("bottom")),"k"===e.key&&Xr&&(e.preventDefault(),f?f():_r("top"))))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t,p,f,Xr,_r,It]),!t||mn.current)return null;const Jr=_t?function(e){if("undefined"==typeof document)return null;const t=Array.from(document.querySelectorAll("[data-modal-panel]")).filter(e=>{const t=e;return!t.hasAttribute("data-utility")&&!t.hasAttribute("data-widget")&&"none"!==t.style.display});t.sort((e,t)=>(e.getAttribute("data-modal-id")||"").localeCompare(t.getAttribute("data-modal-id")||""));const n=t.findIndex(t=>t.getAttribute("data-modal-id")===e),r=t.length;if(n<0||r<1)return null;const o=Math.ceil(Math.sqrt(r)),i=Math.ceil(r/o),a=Math.floor(n/o),s=n%o,l=r-o*(i-1),c=a===i-1&&l<o,u=or(),d=(u.w-20*(o+1))/o,h=(u.h-14*(i+1)-22*i)/i,m=c?(o-l)*(d+20)/2:0;return{x:u.x+20+s*(d+20)+m,y:u.y+14+a*(h+14+22),w:d,h:h}}(It):null,Zr=_t&&Jr?Math.min(Jr.w/gn.w,Jr.h/gn.h):1,Qr=(()=>{if(_t&&Jr){const e=Zr,t=gn.w*e,n=gn.h*e,r=Jr.x+(Jr.w-t)/2-gn.x,o=Jr.y+(Jr.h-n)/2-gn.y,i=Jt||nn;return{transform:`translate(${r}px, ${o}px) scale(${e})`,transformOrigin:"top left",transition:"transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 280ms",cursor:"pointer",zIndex:P.expose+(i?20:10),boxShadow:i?"0 24px 72px rgba(0,0,0,0.6), 0 0 0 2px rgba(255,255,255,0.55), 0 0 36px 12px rgba(96,165,250,0.85), 0 0 96px 28px rgba(96,165,250,0.55)":"0 16px 48px rgba(0,0,0,0.55)",pointerEvents:"auto"}}if(on&&Xt){const e="picked"===sn;return{transition:e?"transform 640ms cubic-bezier(0.34, 1.42, 0.64, 1), box-shadow 600ms":"transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 600ms",...e?{zIndex:P.expose+30}:{}}}return null})(),eo=b({modal:!1,titleId:!X&&(Mn?!He?.home:!fe)?Ie:void 0,label:ur.text||Pe}),to=/* @__PURE__ */Q("div",{children:[
|
|
50
|
+
/* @__PURE__ */Q("div",{ref:rt,"data-modal-panel":!0,"data-modal-id":It,"data-window-key":ce||void 0,...$?{"data-utility":""}:{},...$e?{"data-pinned-top":""}:{},...X?{"data-widget":""}:{},...He?{"data-window-owner":He.key}:{},...He&&!gt?{"data-window-root":""}:{},...Mn?{"data-window-tab":""}:{},...eo,className:Mn?"fixed flex flex-col overflow-hidden":"fixed rounded-(--radius-window) flex flex-col overflow-hidden "+(X?Rt?"shadow-xl":"shadow-lg":"border "+(Rt?"shadow-xl border-line":"shadow-lg border-line-strong")),onMouseDownCapture:e=>{if(ot.current=!1,_t){if(e.target.closest("[data-expose-close]"))return;return e.preventDefault(),e.stopPropagation(),Or(It),Dr(!1),void Qn(It)}if(!Rt&&!X&&!$e&&0===e.button){const t=e.target;t.closest("[data-modal-panel]")===rt.current&&t.closest("button, input, a, select, textarea")&&!t.closest("[data-window-chrome]")&&(e.preventDefault(),e.stopPropagation(),ot.current=!0,je(null),Qn(It),window.addEventListener("mouseup",()=>{setTimeout(()=>{ot.current=!1},0)},{once:!0}))}},onClickCapture:e=>{ot.current&&(ot.current=!1,e.preventDefault(),e.stopPropagation())},onMouseDown:e=>{if(_t)return;je(null);e.target.closest("[data-modal-panel]")===rt.current&&(e.target.closest("button, input, a, select, textarea")||Qn(It))},style:fe?{zIndex:Wt+1,top:0,left:0,right:0,bottom:"var(--mobile-bottom-nav, 56px)",width:"auto",height:"auto",transform:`translateX(${ge}px)`,transition:be?"none":"transform 180ms ease-out",...X?{display:"none"}:{},...Wt<0?{display:"none"}:{},...Rt||$e||Ce&&ce===Ce?{}:{display:"none"}}:{zIndex:$e?P.pinnedWindow:Wt+1,width:gn.w,height:gn.h,top:gn.y,...X&&"right"===et?{right:window.innerWidth-gn.x-gn.w}:{left:gn.x},...Wt<0&&!$e?{display:"none"}:{},...ye?{display:"none"}:{},...Wn||Fn?{visibility:"hidden",pointerEvents:"none"}:{},...Qr??{}},children:[fe&&!X&&/* @__PURE__ */ee("div",{onPointerDown:Me,className:"absolute top-0 bottom-0 left-0 w-[22px] z-[5]",style:{touchAction:"pan-y"},"aria-hidden":"true"}),X?null:Mn?He?.home?null:/* @__PURE__ */Q(te,{children:[
|
|
51
|
+
/* @__PURE__ */ee("h2",{id:Ie,"data-window-title":!0,className:"sr-only",children:ur.text||Pe}),Gr&&Vr&&ne(
|
|
52
|
+
/* @__PURE__ */ee(te,{children:ur.actions}),Vr),ur.badges.length>0&&/* @__PURE__ */ee("div",{"data-window-chrome":"","data-record-bar":"",className:"flex h-9 shrink-0 select-none items-center gap-2 overflow-hidden border-b border-gray-200 px-4",style:{backgroundColor:"rgb(var(--window-content-rgb))"},children:ur.badges})]}):fe?null:
|
|
53
|
+
/* @__PURE__ */Q("div",J?{onPointerDown:Ir,"data-window-chrome":"",...Br,className:"flex items-center justify-between h-(--row-height-compact-bar) px-3 border-b border-line shrink-0 cursor-move select-none rounded-t-(--radius-window) focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-400 "+(Rt?"backdrop-blur-sm":""),style:{touchAction:"none",backgroundColor:Rt?"rgb(var(--window-header-rgb) / var(--active-header-opacity, 0.8))":"rgb(var(--window-header-rgb) / var(--inactive-header-opacity, 0.7))"},children:[
|
|
54
|
+
/* @__PURE__ */Q("div",{"data-window-title":!0,title:Pe,className:"text-sm font-medium min-w-0 flex-1 truncate flex items-center gap-2",style:{color:Rt?"var(--window-title-active, rgb(17 24 39))":"var(--window-title-inactive, rgb(156 163 175))"},children:[!_t&&Lt(),
|
|
55
|
+
/* @__PURE__ */ee("span",{id:Ie,className:"truncate",children:_t?en(Le):Le})]}),!_t&&/* @__PURE__ */Q("div",{className:"flex items-center gap-2 shrink-0 ml-2",children:[$&&/* @__PURE__ */ee("button",{onClick:()=>Oe(e=>!e),title:$e?De.unpin:De.pinOnTop,className:"p-0.5 rounded hover:bg-gray-200 "+($e?"text-blue-600":"text-gray-400 hover:text-gray-600"),children:/* @__PURE__ */ee(A,{name:"bookmark-square",className:"h-3 w-3",fill:$e?"currentColor":"none",strokeWidth:1.5})}),
|
|
56
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:vr,"aria-label":De.close,className:"rounded p-0.5 text-ink-faintest hover:text-gray-600 hover:bg-gray-200",children:/* @__PURE__ */ee(A,{name:"close",className:"h-4 w-4"})})]})]}:Z?{onPointerDown:Ir,"data-window-chrome":"",...Br,className:"flex items-center justify-between h-(--row-height-compact-bar) px-3 border-b border-line shrink-0 cursor-move select-none rounded-t-(--radius-window) focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-400 "+(Rt?"backdrop-blur-sm":""),style:{touchAction:"none",backgroundColor:Rt?"rgb(var(--window-header-rgb) / var(--active-header-opacity, 0.8))":"rgb(var(--window-header-rgb) / var(--inactive-header-opacity, 0.7))"},children:[
|
|
57
|
+
/* @__PURE__ */Q("div",{"data-window-title":!0,title:Pe,className:"text-sm font-medium min-w-0 flex-1 truncate flex items-center gap-2",style:{color:Rt?"var(--window-title-active, rgb(17 24 39))":"var(--window-title-inactive, rgb(156 163 175))"},children:[!_t&&Lt(),
|
|
58
|
+
/* @__PURE__ */ee("span",{id:Ie,className:"truncate",children:_t?en(Le):Le})]}),!_t&&/* @__PURE__ */Q("div",{className:"flex items-center gap-2 shrink-0 ml-2",children:[$&&/* @__PURE__ */ee("button",{onClick:()=>Oe(e=>!e),title:$e?De.unpin:De.pinOnTop,className:"p-0.5 rounded hover:bg-gray-200 "+($e?"text-blue-600":"text-gray-400 hover:text-gray-600"),children:/* @__PURE__ */ee(A,{name:"bookmark-square",className:"h-3 w-3",fill:$e?"currentColor":"none",strokeWidth:1.5})}),
|
|
59
|
+
/* @__PURE__ */ee("button",{onClick:()=>er(It),title:De.minimize,className:"text-gray-400 hover:text-gray-600 px-1 py-0.5 rounded hover:bg-gray-200 text-xs leading-none",children:"─"}),!zn&&/* @__PURE__ */ee(gr,{maximized:qn,onToggleMax:()=>{qn?(Hn(!1),vn(hn())):Ur()},onSnap:jr,buttonClassName:"text-gray-400 hover:text-gray-600 px-1 py-0.5 rounded hover:bg-gray-200 text-xs leading-none",strings:De}),
|
|
60
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:vr,"aria-label":De.close,className:"rounded p-0.5 text-ink-faintest hover:text-gray-600 hover:bg-gray-200",children:/* @__PURE__ */ee(A,{name:"close",className:"h-4 w-4"})})]})]}:{onPointerDown:Ir,"data-window-chrome":"",...Br,className:"flex items-center justify-between h-(--row-height-window-bar) px-3 border-b border-gray-200 shrink-0 cursor-move select-none rounded-t-(--radius-window) focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-400 "+(Rt?"backdrop-blur-sm":""),style:{touchAction:"none",backgroundColor:Rt?"rgb(var(--window-header-rgb) / var(--active-header-opacity, 0.8))":"rgb(var(--window-header-rgb) / var(--inactive-header-opacity, 0.7))"},children:[
|
|
61
|
+
/* @__PURE__ */Q("div",{"data-window-title":!0,title:Pe,className:"text-sm font-medium min-w-0 flex-1 truncate flex items-center gap-2",style:{color:Rt?"var(--window-title-active, rgb(17 24 39))":"var(--window-title-inactive, rgb(156 163 175))"},children:[!_t&&Lt(),
|
|
62
|
+
/* @__PURE__ */ee("span",{id:Ie,className:"truncate",children:_t?en(Le):Le})]}),!_t&&/* @__PURE__ */Q("div",{className:"flex items-center gap-3 shrink-0 ml-4",children:[$&&/* @__PURE__ */ee("button",{onClick:()=>Oe(e=>!e),title:$e?De.unpin:De.pinOnTop,className:"text-xs px-2 py-1 rounded hover:bg-gray-200 "+($e?"text-blue-600":"text-gray-400 hover:text-gray-600"),children:/* @__PURE__ */ee(A,{name:"bookmark-square",className:"h-3.5 w-3.5",fill:$e?"currentColor":"none",strokeWidth:1.5})}),
|
|
63
|
+
/* @__PURE__ */ee("button",{onClick:()=>er(It),title:De.minimize,className:"text-gray-400 hover:text-gray-600 text-xs px-2 py-1 rounded hover:bg-gray-200",children:"─"}),!zn&&/* @__PURE__ */ee(gr,{maximized:qn,onToggleMax:()=>{qn?(Hn(!1),vn(hn())):Ur()},onSnap:jr,buttonClassName:"text-gray-400 hover:text-gray-600 text-xs px-2 py-1 rounded hover:bg-gray-200",strings:De}),
|
|
64
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:vr,"aria-label":De.close,className:"rounded-(--radius-control) text-ink-faintest hover:text-gray-600",children:/* @__PURE__ */ee(A,{name:"close",className:"h-5 w-5"})})]})]}),de&&Ye&&!X&&!fe&&/* @__PURE__ */ee("div",{"aria-hidden":"true",className:"h-[3px] shrink-0 pointer-events-none",style:{backgroundColor:`rgb(var(--window-accent-rgb) / ${Rt?.9:.55})`}}),
|
|
65
|
+
/* @__PURE__ */ee(Vt.Provider,{value:It,children:/* @__PURE__ */ee(ln.Provider,{value:{rightRef:at,leftRef:st,notify:()=>ct(!0),active:Rt,isDirty:ir,footerOpen:wt&&!X&&!J&&!Z&&!fe},children:/* @__PURE__ */ee("div",{ref:it,...X?{onPointerDown:Ir,onContextMenu:e=>{e.preventDefault(),Qe({x:e.clientX,y:e.clientY})}}:{},className:`flex-1 min-h-0 flex flex-col ${X?"p-0 cursor-move":Z||re?"p-0":J?"p-2":"p-4"} ${X||Mn?"":"backdrop-blur-sm"} ${!1===v||Z||re?"overflow-hidden":"overflow-y-auto overscroll-contain"} ${X?"rounded-2xl select-none":""}`,style:{...X?{touchAction:"none"}:{},backgroundColor:X?"transparent":Mn?"rgb(var(--window-content-rgb))":Rt?"rgb(var(--window-content-rgb) / var(--active-content-opacity, 0.9))":"rgb(var(--window-content-rgb) / var(--inactive-content-opacity, 0.8))"},children:/* @__PURE__ */ee(Ne,{children:he})})})}),X&&Ze&&/* @__PURE__ */Q(C,{minWidth:160,style:{left:Ze.x,top:Ze.y},onClose:()=>Qe(null),children:[
|
|
66
|
+
/* @__PURE__ */ee(N,{onClick:()=>{Qe(null),window.dispatchEvent(new CustomEvent("widget-open-settings",{detail:It}))},children:"Settings"}),
|
|
67
|
+
/* @__PURE__ */ee(S,{}),se&&/* @__PURE__ */Q(te,{children:[se,
|
|
68
|
+
/* @__PURE__ */ee(S,{})]}),
|
|
69
|
+
/* @__PURE__ */Q(N,{onClick:()=>{Qe(null),Oe(e=>!e)},children:[
|
|
70
|
+
/* @__PURE__ */ee("span",{className:"flex-1",children:"Always on Top"}),$e&&/* @__PURE__ */ee(A,{name:"check",className:"h-4 w-4 text-blue-600 shrink-0",strokeWidth:2})]}),
|
|
71
|
+
/* @__PURE__ */ee(S,{}),
|
|
72
|
+
/* @__PURE__ */ee(N,{onClick:()=>{Qe(null),vr()},children:"Close"})]}),
|
|
73
|
+
/* @__PURE__ */Q("div",{onPointerDown:Ir,ref:ut,"data-modal-footer":"",className:`px-4 py-2 border-t border-gray-200 shrink-0 flex items-center justify-between text-xs select-none${Mn?"":" cursor-move"}${Rt&&!Mn?" backdrop-blur-sm":""}${X||J||Z||fe||!wt?" hidden":""}`,style:{touchAction:"none",backgroundColor:Mn?"rgb(var(--window-footer-rgb))":Rt?"rgb(var(--window-footer-rgb) / var(--active-header-opacity, 0.8))":"rgb(var(--window-footer-rgb) / var(--inactive-header-opacity, 0.7))"},children:[
|
|
74
|
+
/* @__PURE__ */Q("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[xt&&/* @__PURE__ */ee(Te,{auto:!0}),T,
|
|
75
|
+
/* @__PURE__ */ee("div",{ref:st,"data-modal-actions-left":!0,className:"flex items-center gap-2 shrink-0"}),null!=w&&!1!==w&&
|
|
76
|
+
/* @__PURE__ */ee("div",{ref:dt,"data-modal-footer-facts":"",className:"min-w-0 flex-1 overflow-hidden",children:/* @__PURE__ */ee("div",{ref:ht,className:"inline-flex items-center gap-2 whitespace-nowrap"+(mt?" invisible":""),children:w})})]}),
|
|
77
|
+
/* @__PURE__ */Q("div",{"data-modal-footer-right":"",className:"flex items-center gap-2 ml-auto shrink-0",children:[ft&&K&&(K.editing?/* @__PURE__ */ee(z,{variant:"secondary",size:"sm","data-modal-discard":"",onClick:()=>{Sr()},children:De.discard}):"object"==typeof K.state?/* @__PURE__ */ee(z,{variant:"secondary",size:"sm","data-modal-edit":"","aria-disabled":!0,disabledReason:K.state.disabledReason,children:De.edit}):/* @__PURE__ */ee(z,{variant:"secondary",size:"sm","data-modal-edit":"",onClick:()=>K.onEdit(),children:De.edit})),
|
|
78
|
+
/* @__PURE__ */ee("div",{ref:at,"data-modal-actions":!0,className:"flex items-center gap-2"}),L]})]}),!X&&!fe&&!_t&&Rt&&!zn&&/* @__PURE__ */Q(te,{children:[
|
|
79
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"se"),className:"absolute bottom-0 right-0 w-3 h-3 cursor-nwse-resize z-10"}),
|
|
80
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"sw"),className:"absolute bottom-0 left-0 w-3 h-3 cursor-nesw-resize z-10"}),
|
|
81
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"ne"),className:"absolute top-0 right-0 w-3 h-3 cursor-nesw-resize z-10"}),
|
|
82
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"nw"),className:"absolute top-0 left-0 w-3 h-3 cursor-nwse-resize z-10"}),
|
|
83
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"n"),className:"absolute top-0 left-3 right-3 h-1 cursor-ns-resize"}),
|
|
84
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"s"),className:"absolute bottom-0 left-3 right-3 h-1 cursor-ns-resize"}),
|
|
85
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"e"),className:"absolute top-3 bottom-3 right-0 w-1 cursor-ew-resize"}),
|
|
86
|
+
/* @__PURE__ */ee("div",{onPointerDown:e=>Kr(e,"w"),className:"absolute top-3 bottom-3 left-0 w-1 cursor-ew-resize"})]}),_t&&/* @__PURE__ */ee("div",{className:"absolute inset-0",style:{zIndex:P.hint,cursor:"pointer",background:"transparent"},onMouseEnter:()=>tn(!0),onMouseLeave:()=>tn(!1),onMouseDown:e=>{e.stopPropagation(),e.preventDefault(),Qn(It),Dr(!1)},onClick:e=>{e.stopPropagation(),e.preventDefault()},children:Jt&&/* @__PURE__ */ee("button",{type:"button","data-expose-close":!0,"aria-label":Ae.taskbar.closeWindow,title:"Close",className:"absolute flex items-center justify-center rounded-full bg-black/55 text-on-accent shadow-lg ring-1 ring-white/40 transition-colors hover:bg-red-500",style:{top:8,right:8,width:30,height:30,transform:`scale(${1/Zr})`,transformOrigin:"top right",zIndex:P.raised},onMouseDown:e=>{e.stopPropagation(),e.preventDefault()},onClick:e=>{e.stopPropagation(),e.preventDefault(),vr()},children:/* @__PURE__ */ee(A,{name:"close",className:"h-4 w-4",strokeWidth:2.2})})})]}),_t&&Jr&&/* @__PURE__ */ee("div",{className:"fixed pointer-events-none select-none truncate text-center",style:{left:Jr.x,top:Jr.y+Jr.h+4,width:Jr.w,zIndex:P.expose+(Jt?21:11),color:"white",fontSize:"var(--text-xs)",fontWeight:500,textShadow:"0 1px 2px rgba(0,0,0,0.6)"},children:en(Le)})]}),no=Fe&&/* @__PURE__ */Q(C,{style:{left:Fe.x,top:Fe.y},onClose:()=>je(null),minWidth:160,children:[!X&&!J&&!Mn&&/* @__PURE__ */Q(te,{children:[
|
|
87
|
+
/* @__PURE__ */Q(N,{onClick:()=>{er(It),je(null)},children:[
|
|
88
|
+
/* @__PURE__ */ee(A,{name:"remove",className:"h-4 w-4",strokeWidth:1.5}),De.minimize]}),!zn&&/* @__PURE__ */Q(N,qn?{onClick:()=>{Hn(!1),vn(hn()),je(null)},children:[
|
|
89
|
+
/* @__PURE__ */ee("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:/* @__PURE__ */ee("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 4.5v15m6-15v15M4.5 9h15M4.5 15h15"})}),De.windowed]}:{onClick:()=>{Ur(),je(null)},children:[
|
|
90
|
+
/* @__PURE__ */ee(A,{name:"expand",className:"h-4 w-4",strokeWidth:1.5}),De.maximize]})]}),$&&!Mn&&/* @__PURE__ */Q(N,{onClick:()=>{Oe(e=>!e),je(null)},children:[
|
|
91
|
+
/* @__PURE__ */ee(A,{name:"bookmark-square",className:"h-4 w-4 "+($e?"text-blue-600":""),fill:$e?"currentColor":"none",strokeWidth:1.5}),$e?De.unpin:De.pinOnTop]}),qe&&/* @__PURE__ */Q(N,{onClick:()=>{je(null),Je()},children:[
|
|
92
|
+
/* @__PURE__ */ee(A,{name:"star",className:"h-4 w-4",fill:Ge?"currentColor":"none",strokeWidth:1.5}),Ge?Ae.taskbar.removeFromDesktop:Ae.taskbar.addToDesktop]}),(rn[It]||[]).length>0&&/* @__PURE__ */ee(te,{children:(rn[It]||[]).map((e,t)=>/* @__PURE__ */Q(N,{onClick:()=>{je(null),e.onClick()},children:[e.icon,e.label]},t))}),!(Mn&&He?.home)&&/* @__PURE__ */Q(te,{children:[
|
|
93
|
+
/* @__PURE__ */ee(S,{}),
|
|
94
|
+
/* @__PURE__ */Q(N,{danger:!0,onClick:()=>{je(null),vr()},children:[
|
|
95
|
+
/* @__PURE__ */ee(A,{name:"close",className:"h-4 w-4"}),De.close]})]})]}),ro=!!ce&&Pt.some(e=>e.id===ce),oo=!qt||ro||X?null:/* @__PURE__ */Q("div",{"data-modal-restore-tab":!0,"data-modal-id":It,className:"fixed left-1/2 z-(--z-restore-tab) flex -translate-x-1/2 items-center gap-1 rounded-lg border border-line-strong bg-surface px-2 py-1 shadow-lg",style:{bottom:"calc(var(--taskbar-height, 0px) + 12px)"},children:[
|
|
96
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:()=>Qn(It),title:De.restore,className:"max-w-[16rem] truncate rounded px-2 py-0.5 text-sm font-medium text-gray-700 hover:bg-gray-100 hover:text-gray-900",children:Pe||De.windowSuffix}),
|
|
97
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:()=>Qn(It),title:De.restore,"aria-label":De.restore,className:"rounded px-2 py-0.5 text-xs leading-none text-ink-faintest hover:bg-gray-100 hover:text-gray-600",children:"▴"}),
|
|
98
|
+
/* @__PURE__ */ee("button",{type:"button",onClick:()=>{vr()},title:De.close,"aria-label":De.close,className:"rounded px-2 py-0.5 text-xs leading-none text-ink-faintest hover:bg-gray-100 hover:text-gray-600",children:"✕"})]});return ne(
|
|
99
|
+
/* @__PURE__ */Q(Gt.Provider,{value:null,children:[to,no,oo]}),document.body)}"undefined"!=typeof window&&window.addEventListener("keydown",e=>{Lr&&"Escape"===e.key&&(Br(null),Dr(!1))});var Gr=100,_r={past:[],future:[]};function Jr(e,t){switch(t.type){case"record":{const n=e.past[e.past.length-1];if(null!==t.step.coalesceKey&&n?.coalesceKey===t.step.coalesceKey)return 0===e.future.length?e:{...e,future:[]};const r=[...e.past,t.step];return{past:r.length>Gr?r.slice(r.length-Gr):r,future:[]}}case"undo":return 0===e.past.length?e:{past:e.past.slice(0,-1),future:[t.redoStep,...e.future]};case"redo":return 0===e.future.length?e:{past:[...e.past,t.undoStep],future:e.future.slice(1)};case"clear":return 0===e.past.length&&0===e.future.length?e:_r}}var Zr=/* @__PURE__ */new Set(["INPUT","TEXTAREA","SELECT"]);var Qr=500,eo=250;function to({children:e,canEdit:t=!0,perms:n,windowId:r}){const[o,a]=J(Jr,_r),s=F(/* @__PURE__ */new Map),[l,c]=q(0),u=l>0,[d,h]=q(0),[m,p]=q(0),f=m>0,{hasAnyPerm:w}=i(),y=t&&0===d&&(!(n&&n.length>0)||w(n)),g=F(null),v=F(!1),b=B(()=>{const e={};for(const[t,n]of s.current)e[t]=n.getLast();return e},[]),x=B((e,t)=>{s.current.has(e)||c(e=>e+1),s.current.set(e,t)},[]),k=B(e=>{s.current.delete(e)&&c(e=>e-1)},[]),E=B(e=>{h(t=>t+(e?1:-1))},[]),M=B(e=>{p(t=>t+(e?1:-1))},[]),[C,N]=q(0),S=C>0,L=B(e=>{N(t=>t+(e?1:-1))},[]),T=R(Se),z=T?.claimReadOnly;j(()=>{if(z&&!y)return z(!0),()=>z(!1)},[z,y]);const A=T?.claimOwnMount;j(()=>{if(A&&S)return A(!0),()=>A(!1)},[A,S]);const D=F({last:0,count:0,tripped:!1}),P=F(!1),I=B((e,t,n)=>{if(v.current)return void(n&&function(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||"object"!=typeof t||null===e||null===t)return!1;if(Array.isArray(e)!==Array.isArray(t))return!1;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}(n.prev,n.next)||(P.current=!0));if(!y||g.current)return;const r=D.current;if(r.tripped)return;const o=Date.now();if(o-r.last>eo&&(r.count=0),r.last=o,++r.count>Qr)return r.tripped=!0,void console.error(`[efficient-shell] UndoProvider: "${e}" recorded ${Qr} undo steps with no pause between them, which no user action can do. The value passed to useUndoable for this slice is almost certainly rebuilt on every render (a .map/.filter/object literal in the call) rather than held in state, so it reads as changed every time — and since recording a step re-renders the form, that is a loop. Undo recording is now off for this form to keep the tab responsive.`);g.current={values:b(),label:e,coalesceKey:t},queueMicrotask(()=>{const e=g.current;g.current=null,e&&a({type:"record",step:e})})},[y,b]),W=B(e=>{for(const[t,n]of Object.entries(e)){const e=s.current.get(t);e&&(e.setLast(n),e.apply(n))}},[]),K=B(()=>{const e=o.past[o.past.length-1];if(!e)return;const t={values:b(),label:e.label,coalesceKey:null};W(e.values),a({type:"undo",redoStep:t})},[o.past,b,W]),$=B(()=>{const e=o.future[0];if(!e)return;const t={values:b(),label:e.label,coalesceKey:null};W(e.values),a({type:"redo",undoStep:t})},[o.future,b,W]),[O,H]=q(0),U=F(0),Y=F(0),X=F(!1),V=B(()=>{v.current=!0,P.current=!1,g.current=null,U.current+=1,Y.current=U.current,H(U.current)},[]),_=F(void 0),Z=B(e=>{void 0!==e&&(void 0!==_.current&&e!==_.current&&(X.current=!0),_.current=e),V()},[V]);j(()=>{v.current&&O===Y.current&&(v.current=!1,g.current=null,(P.current||X.current)&&a({type:"clear"}),P.current=!1,X.current=!1)},[O]);const te=B(()=>{X.current=!0,a({type:"clear"}),V()},[V]),ne=y&&o.past.length>0,re=y&&o.future.length>0,oe=Sr(r),ie=F({undo:K,redo:$,canUndo:ne,canRedo:re});ie.current={undo:K,redo:$,canUndo:ne,canRedo:re},j(()=>{if(!oe||!y)return;const e=e=>{const t=function(e){if(!e.metaKey&&!e.ctrlKey||e.altKey)return null;const t=e.key.toLowerCase(),n="z"===t?e.shiftKey?"redo":"undo":"y"!==t||!e.ctrlKey||e.metaKey||e.shiftKey?null:"redo";if(!n)return null;const r=e.target;return r?.isContentEditable||r?.tagName&&Zr.has(r.tagName.toUpperCase())?null:n}(e);if(!t)return;const n=ie.current;("undo"===t?n.canUndo:n.canRedo)&&(e.preventDefault(),"undo"===t?n.undo():n.redo())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[oe,y]);const ae=G(()=>({register:x,unregister:k,record:I,undo:K,redo:$,clear:te,baseline:Z,canUndo:ne,canRedo:re,enabled:y,hasState:u,handMounted:S,claimOwnMount:L,claimReadOnly:E,declaredEditable:f,claimEditable:M,undoLabel:ne?o.past[o.past.length-1].label:null,redoLabel:re?o.future[0].label:null}),[x,k,I,K,$,te,Z,ne,re,y,u,S,L,E,f,M,o.past,o.future]),se=""!==cn(),le=R(ln)?.footerOpen??!1,ce=se&&y&&u&&!S&≤/* @__PURE__ */
|
|
100
|
+
return Q(Se.Provider,{value:ae,children:[ce&&/* @__PURE__ */ee(dn,{position:"left",quiet:!0,children:/* @__PURE__ */ee(Te,{auto:!0})}),e]})}function no(){const e=R(Se),t=B(()=>{},[]);return{undo:e?.undo??t,redo:e?.redo??t,clear:e?.clear??t,baseline:e?.baseline??t,canUndo:e?.canUndo??!1,canRedo:e?.canRedo??!1,undoLabel:e?.undoLabel??null,redoLabel:e?.redoLabel??null,enabled:e?.enabled??!1,hasState:e?.hasState??!1}}function ro(e){const t=R(Se),n=t?.claimReadOnly,r=t?.claimEditable;j(()=>{const t=e?r:n;if(t)return t(!0),()=>t(!1)},[n,r,e])}function oo(e,t,n){const r=R(Se),o=_(),i=F(e),a=F(t);a.current=t,j(()=>{if(r)return r.register(o,{getLast:()=>i.current,setLast:e=>{i.current=e},apply:e=>a.current(e)}),()=>r.unregister(o)},[r,o]);const{label:s,coalesceKey:l=null}=n,c=F(r);c.current=r;const u=F({label:s,coalesceKey:l});u.current={label:s,coalesceKey:l},j(()=>{const t=c.current;t&&(Object.is(e,i.current)||(t.record(u.current.label,u.current.coalesceKey,{prev:i.current,next:e}),i.current=e))},[e])}function io(e,t){const[n,r]=q(e);return oo(n,e=>r(()=>e),t),[n,r]}export{hn as CancelButton,Qe as DocFavStar,je as EntityWindowFallback,Oe as EntityWindowLoading,qe as EntityWindowState,Qt as KEY_ACTIVATED_SELECTOR,Re as LoadingSpinner,Zt as MODAL_SUBMIT_SELECTOR,Vr as Modal,dn as ModalActions,Te as UndoControls,to as UndoProvider,ue as WINDOW_REGISTRY,Ce as WindowCrashedFallback,Ne as WindowErrorBoundary,bt as WindowManagerProvider,an as WindowTitle,it as activateWindowById,Pt as beginWindowGesture,Gn as cancelWindowFront,fe as client_default,Ur as commitExposeHighlight,Vn as confirmWindowDiscard,It as drainPerfEvents,Ir as exitExposeMode,Mn as forgetMaximizedWindowBoxes,Mr as getActiveModalId,lt as getActiveWindowRoute,Hr as getExposeHighlight,Xt as getWindowChromeVersion,kn as getWindowPosition,Be as isDraftEntityId,Ue as isDraftEntityWindow,se as isEntityEntry,ae as isPageEntry,me as isShellApiClientConfigured,Ie as isTabWindow,Dt as markMenuOpen,Ut as readWindowChrome,Un as requestWindowFront,Br as setExposeHighlight,At as setPerfCollecting,he as setShellApiClient,be as setShellHomeRoute,Me as setShellTabStrip,ce as setShellWindowRegistry,xn as setWindowDefaultPosition,En as setWindowPosition,Ot as splitTitle,qr as subscribeExposeHighlight,Yt as subscribeWindowChrome,We as tabGroupOf,Pr as toggleExposeMode,jn as useCurrentTabKey,cn as useEnclosingModalId,Sr as useIsActiveWindow,un as useModalActive,ye as usePageSearch,no as useUndo,ro as useUndoCanEdit,oo as useUndoable,io as useUndoableState,nn as useWidgetSettings,Ve as useWindowDirty,_e as useWindowManager,on as useWindowMenuItem,sn as useWindowTitle,Xn as windowHoldsChanges};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{Checkbox_default as e}from"./chunk-CGZBDI6C.js";import{Pagination as t}from"./chunk-ENL5L6NR.js";import{SpinnerRing as r}from"./chunk-R2VKEMZH.js";import{TH_ONE_LINE as o,OneLineLabel as n}from"./chunk-OZAAIE4E.js";import{useBrowserLayoutEffect as l}from"./chunk-D65T4H6J.js";import{useShellStrings as s}from"./chunk-QWHQJNKL.js";import{useState as i,useRef as a}from"react";import{jsxs as c,Fragment as d,jsx as h}from"react/jsx-runtime";function u(e){const t={};if(!e)return t;for(const[r,o]of Object.entries(e))!r.startsWith("data-")||"string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o||(t[r]=o);return t}var m=e=>Array.isArray(e.columns),f=e=>"wide"===e.only?"rosh-dt-only-wide":"stacked"===e.only?"rosh-dt-only-stacked":"",g="rosh-dt-row-link rosh-focus-ring underline-offset-4 hover:underline",p={sm:"px-2 py-2",md:"px-3 py-2"},y={left:"text-left",right:"text-right",center:"text-center"};function b({direction:e}){/* @__PURE__ */
|
|
2
|
+
return c("span",{className:"ml-1 inline-flex flex-col leading-none","aria-hidden":"true",children:[
|
|
3
|
+
/* @__PURE__ */h("svg",{className:"h-2 w-2 "+("asc"===e?"text-gray-700":"text-gray-300"),viewBox:"0 0 8 5",fill:"currentColor",children:/* @__PURE__ */h("path",{d:"M4 0L8 5H0z"})}),
|
|
4
|
+
/* @__PURE__ */h("svg",{className:"h-2 w-2 "+("desc"===e?"text-gray-700":"text-gray-300"),viewBox:"0 0 8 5",fill:"currentColor",children:/* @__PURE__ */h("path",{d:"M4 5L0 0h8z"})})]})}function w(e,t=!1){const r=t?"":" whitespace-nowrap";return e.code?`font-mono${r}`:e.numeric?`tabular-nums${r}`:""}function x({columns:x,data:v,rowKey:k,sort:N=null,onSortChange:C,pagination:j,caption:M,loading:B=!1,bordered:$=!1,size:S="md",minWidth:z,rowClassName:H,onRow:E,rowHref:I,onRowPress:L,linkAs:T,emptyText:A,selection:O,footer:R,virtualized:D,stackOnNarrow:F=!1,stackBelow:K,className:P=""}){const W=s(),Z=A??W.table.empty,J=(e,t)=>"function"==typeof k?k(e,t):String(e[k]),Q=F&&!D,G=Q?x:x.flatMap(e=>{if(!m(e))return"stacked"===e.only?[]:[e];const t=e.columns.filter(e=>"stacked"!==e.only);return t.length?[{...e,columns:t}]:[]}),V=e=>Q?{role:e}:{},q=(e,t)=>(t??("string"==typeof e||"number"==typeof e?String(e):"")).trim()||void 0,[U,X]=i(0),Y=D?.overscan??6,_=D?e=>{const t=Math.max(0,Math.floor(e.currentTarget.scrollTop/D.rowHeight)-Y);X(e=>e===t?e:t)}:void 0,ee=D?Math.ceil(D.height/D.rowHeight)+2*Y:v.length,te=D?Math.min(U,Math.max(0,v.length-ee)):0,re=Math.min(v.length,te+ee),oe=D?te*D.rowHeight:0,ne=D?(v.length-re)*D.rowHeight:0,le=a(null),[se,ie]=i(0);l(()=>{if(!D)return;const e=le.current?.offsetHeight??0;ie(t=>t===e?t:e)});const ae=e=>e.sortField??e.key,ce=e=>N&&N.field===ae(e)?N.direction:null,de=G.flatMap(e=>m(e)?e.columns:[e]),he=G.some(m),ue=/* @__PURE__ */new Map;if(Q)for(const e of G)if(m(e))for(const t of e.columns)ue.set(t,q(e.title,e.label));const me=e=>{const t=q(e.title,e.label),r=ue.get(e);return t&&r?`${r} · ${t}`:t},fe=new Set(O?.selected??[]),ge=O?v.map((e,t)=>J(e,t)):[],pe=ge.length>0&&ge.every(e=>fe.has(e)),ye=ge.some(e=>fe.has(e)),be=O?36:0,we=de.length+(O?1:0),xe=de.some(e=>"left"===e.fixed),ve=Q&&!O&&de.some(e=>e.cardCorner),ke=T??"a",Ne=`${p[S]} ${"sm"===S?"text-xs":"text-sm"}`,Ce=(e,t)=>e.ellipsis?/* @__PURE__ */h("span",{className:"block w-0 min-w-full",children:t}):t,je=(e,t,r,l=0)=>{const s=ce(e),i=y[e.align??(e.numeric?"right":"left")],a="left"===e.fixed,d=!(!e.sortable||!C);/* @__PURE__ */
|
|
5
|
+
return h("th",{scope:"col",...V("columnheader"),rowSpan:r>1?r:void 0,"aria-sort":"asc"===s?"ascending":"desc"===s?"descending":d?"none":void 0,style:{width:e.width,...a?{left:(Be[t]??0)+be}:{},...D?{top:l}:{}},className:[Ne,i,o,"font-semibold uppercase tracking-wide text-gray-500","sm"===S?"text-2xs":"text-xs",a?D?"sticky z-20 bg-gray-50":"sticky z-10 bg-gray-50":D?"sticky z-10 bg-gray-50":"",Q&&d?"rosh-dt-sort":"",Q?f(e):"",e.headerClassName??""].filter(Boolean).join(" "),children:Ce(e,d?/* @__PURE__ */c("button",{type:"button",onClick:()=>(e=>{if(!C)return;const t=ae(e),r=ce(e),o=e.sortFirst??"asc";C(null===r?{field:t,direction:o}:r===o?{field:t,direction:"asc"===o?"desc":"asc"}:null)})(e),"data-group":Q?ue.get(e):void 0,className:`inline-flex max-w-full items-center font-semibold uppercase tracking-wide hover:text-ink ${i}`,children:[
|
|
6
|
+
/* @__PURE__ */h(n,{children:e.title}),
|
|
7
|
+
/* @__PURE__ */h(b,{direction:s})]}):/* @__PURE__ */h(n,{children:e.title}))},e.key)};let Me=0;const Be=de.map(e=>{if("left"!==e.fixed)return null;const t=Me;return Me+=e.width??0,t}),$e=/* @__PURE__ */c(d,{children:[
|
|
8
|
+
/* @__PURE__ */c("div",{onScroll:_,style:D?{maxHeight:D.height}:void 0,className:`relative overflow-x-auto ${D?"overflow-y-auto":""} ${$?"rounded-lg border border-gray-200":""}${Q?" rosh-dt-scroll":""}`.trim(),children:[B&&
|
|
9
|
+
/* @__PURE__ */c("div",{className:"absolute inset-0 z-20 flex items-start justify-center bg-white/60 pt-8",role:"status","aria-live":"polite",children:[
|
|
10
|
+
/* @__PURE__ */h(r,{className:"h-6 w-6"}),
|
|
11
|
+
/* @__PURE__ */h("span",{className:"sr-only",children:W.table.loading})]}),
|
|
12
|
+
/* @__PURE__ */c("table",{...V("table"),className:(Q?"rosh-dt-table ":"")+"w-full border-collapse tabular-nums",style:z?{minWidth:z}:void 0,children:[M&&/* @__PURE__ */h("caption",{className:"sr-only",children:M}),
|
|
13
|
+
/* @__PURE__ */c("thead",{...V("rowgroup"),className:Q?"rosh-dt-head":void 0,children:[
|
|
14
|
+
/* @__PURE__ */c("tr",{ref:le,...V("row"),className:"border-b border-gray-200 bg-gray-50",children:[O&&/* @__PURE__ */h("th",{scope:"col",...V("columnheader"),rowSpan:he?2:void 0,style:{width:36,...D?{top:0}:{}},className:[Ne,o,xe||D?"sticky z-20 bg-gray-50":"",xe?"left-0":"",Q?"rosh-dt-select":""].filter(Boolean).join(" "),children:/* @__PURE__ */h(e,{"aria-label":W.table.selectAll,checked:pe,indeterminate:ye&&!pe,onChange:()=>{if(!O)return;const e=new Set(ge);O.onChange(pe?O.selected.filter(t=>!e.has(t)):[...O.selected,...ge.filter(e=>!fe.has(e))])}})}),G.map((e,t)=>m(e)?/* @__PURE__ */h("th",{scope:"colgroup",...V("columnheader"),colSpan:e.columns.length,style:D?{top:0}:void 0,className:[Ne,"text-center",o,"font-semibold uppercase tracking-wide text-gray-500","sm"===S?"text-2xs":"text-xs","border-b border-gray-200",D?"sticky z-10 bg-gray-50":"",e.headerClassName??""].filter(Boolean).join(" "),children:/* @__PURE__ */h(n,{children:e.title})},e.key??`group-${t}`):je(e,de.indexOf(e),he?2:1))]}),he&&/* @__PURE__ */h("tr",{...V("row"),className:"border-b border-gray-200 bg-gray-50",children:G.flatMap(e=>m(e)?e.columns:[]).map(e=>je(e,de.indexOf(e),1,se))})]}),
|
|
15
|
+
/* @__PURE__ */h("tbody",{...V("rowgroup"),className:Q?"rosh-dt-body":void 0,children:0!==v.length||B?/* @__PURE__ */c(d,{children:[oe>0&&/* @__PURE__ */h("tr",{"aria-hidden":"true",children:/* @__PURE__ */h("td",{colSpan:we,style:{height:oe,padding:0,border:0}})}),v.slice(te,re).map((t,r)=>{const o=te+r,n=E?.(t,o),l=!!n?.current,s=I?.(t,o),i=void 0===s&&L?()=>L(t,o):void 0,a=void 0!==s||void 0!==i;let d=!1;const m=(e,t)=>{if(d=!0,!a)return e;const r=[g,i?"cursor-pointer text-left":"",t?.className??""].filter(Boolean).join(" "),o=l?"true":void 0;return void 0!==s?/* @__PURE__ */h(ke,{href:s,className:r,"aria-current":o,children:e}):/* @__PURE__ */h("button",{type:"button",onClick:i,className:r,"aria-current":o,children:e})},p=de.map(e=>e.render?e.render(t,o,m):e.dataIndex?t[e.dataIndex]:null);if(a&&!d){const e=de.findIndex(e=>"stacked"!==e.only&&!e.cardCorner),t=de.findIndex(e=>"wide"!==e.only&&!e.cardCorner);for(const r of/* @__PURE__ */new Set([e,t]))r>=0&&(p[r]=m(p[r]))}const b=e=>e?t=>{t.currentTarget.contains(t.relatedTarget)||e()}:void 0;/* @__PURE__ */
|
|
16
|
+
return c("tr",{...u(n),...V("row"),style:D?{height:D.rowHeight}:void 0,onClick:n?.onClick,onMouseEnter:n?.onMouseEnter,onMouseLeave:n?.onMouseLeave,onFocus:b(n?.onFocus),onBlur:b(n?.onBlur),"aria-current":l&&!a?"true":void 0,...n?.onClick?{tabIndex:0,onKeyDown:e=>{e.target===e.currentTarget&&("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n.onClick?.()))}}:{},className:[Q?O?"rosh-dt-row rosh-dt-row-select":"rosh-dt-row":"",Q&&ve?"rosh-dt-row-corner":"","border-b border-gray-100 last:border-b-0",n?.onClick?"cursor-pointer hover:bg-gray-50 rosh-focus-ring focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[color:var(--rosh-focus-ring-solid)]":"",a?"rosh-dt-linked hover:bg-gray-50":"",l?"rosh-dt-current":"",H?.(t,o)??"",n?.className??""].filter(Boolean).join(" "),children:[O&&(()=>{const r=J(t,o);/* @__PURE__ */
|
|
17
|
+
return h("td",{...V("cell"),style:{width:36},onClick:e=>e.stopPropagation(),className:[Ne,xe?"sticky left-0 z-10 bg-white":"",Q?"rosh-dt-select":""].filter(Boolean).join(" "),children:/* @__PURE__ */h(e,{"aria-label":W.table.selectRow,checked:fe.has(r),onChange:()=>(e=>{O&&O.onChange(fe.has(e)?O.selected.filter(t=>t!==e):[...O.selected,e])})(r)})})})(),de.map((e,t)=>{const r="left"===e.fixed,o=p[t],n=ve&&!!e.cardCorner,l=Q&&!n&&"wide"!==e.only;/* @__PURE__ */
|
|
18
|
+
return h("td",{...V("cell"),"data-label":l?me(e):void 0,style:r?{left:(Be[t]??0)+be}:void 0,className:[l?e.ellipsis?"rosh-dt-cell rosh-dt-clip":"rosh-dt-cell":"",n?"rosh-dt-corner":"",Q?f(e):"",Ne,y[e.align??(e.numeric?"right":"left")],Q?"":w(e),"text-ink-strongest",e.ellipsis?"max-w-0 truncate":"",r?"sticky z-10 bg-white":"",e.className??""].filter(Boolean).join(" "),children:Q?
|
|
19
|
+
/* @__PURE__ */h("span",{className:["rosh-dt-value",w(e,!0)].filter(Boolean).join(" "),children:o}):o},e.key)})]},J(t,o))}),ne>0&&/* @__PURE__ */h("tr",{"aria-hidden":"true",children:/* @__PURE__ */h("td",{colSpan:we,style:{height:ne,padding:0,border:0}})})]}):/* @__PURE__ */h("tr",{...V("row"),className:Q?"rosh-dt-empty":void 0,children:/* @__PURE__ */h("td",{...V("cell"),colSpan:we,className:`${Ne} py-10 text-center text-gray-500`,children:Z})})})]}),R]}),j&&j.pageCount>1&&/* @__PURE__ */h("div",{className:Q?"rosh-dt-pager mt-3 flex justify-end":"mt-3 flex justify-end",children:/* @__PURE__ */h(t,{page:j.page,pageCount:j.pageCount,onPageChange:j.onPageChange})})]});/* @__PURE__ */
|
|
20
|
+
return h("div",Q?void 0!==K&&K>0&&40!==K?{className:`rosh-dt-at ${P}`.trim(),children:/* @__PURE__ */h("div",{className:"rosh-dt-stack",style:{width:40/K*100+"%"},children:/* @__PURE__ */h("div",{className:"rosh-dt-fit",style:{width:K/40*100+"%"},children:$e})})}:{className:`rosh-dt-stack ${P}`.trim(),children:$e}:{className:P,children:$e})}export{x as DataTable};
|