efficient-shell 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +29 -2
  2. package/dist/{Browser-5F5LWXYQ.js → Browser-WUVL7ZSM.js} +18 -18
  3. package/dist/Calculator-E2CBADVF.js +29 -0
  4. package/dist/ConfirmDialog-ZM364NPI.js +1 -0
  5. package/dist/{CurrencyConverter-QEG6RFAS.js → CurrencyConverter-LF2WHJW4.js} +7 -7
  6. package/dist/{Documents-6DEUZVVA.js → Documents-MB4TJGNY.js} +26 -26
  7. package/dist/Files-JQYIBZEP.js +87 -0
  8. package/dist/{Notepad-KNJRTYXR.js → Notepad-UQSG5BE3.js} +11 -11
  9. package/dist/PdfViewer-4VGNBBED.js +1 -0
  10. package/dist/{PomodoroTimer-T6YAQFIE.js → PomodoroTimer-XARF7DO3.js} +50 -50
  11. package/dist/{Preview-KEIDYSHF.js → Preview-LETK6AJS.js} +126 -126
  12. package/dist/Sidebar-VR4QYFQU.js +44 -0
  13. package/dist/{Spreadsheet-HKXSYD5B.js → Spreadsheet-RCHOM2RE.js} +13 -13
  14. package/dist/{Stock-BZFC2ROU.js → Stock-25FQMI2G.js} +3 -3
  15. package/dist/{Weather-S3N5OWYF.js → Weather-KLQ55R64.js} +17 -17
  16. package/dist/{WorldClock-ACC3S6OA.js → WorldClock-RMPU7D2M.js} +6 -6
  17. package/dist/apps/index.js +1 -1
  18. package/dist/bin/ui-check.js +1 -1
  19. package/dist/brand.css +1 -1
  20. package/dist/{chunk-2DX65GOO.js → chunk-2KTBZE5F.js} +1 -1
  21. package/dist/{chunk-PQLVWCUI.js → chunk-2TP4GK53.js} +5 -5
  22. package/dist/chunk-3JK2LSFU.js +1 -0
  23. package/dist/{chunk-R7EBJKN2.js → chunk-4KLBITSY.js} +28 -28
  24. package/dist/{chunk-5IWSOLLY.js → chunk-5LCZFVE4.js} +2 -2
  25. package/dist/{chunk-GMMTTWHB.js → chunk-6TCHOT4R.js} +1 -1
  26. package/dist/{chunk-3DGTIWZP.js → chunk-DBB4DB7J.js} +1 -1
  27. package/dist/{chunk-KDRAU4XQ.js → chunk-DXNCJBGY.js} +7 -7
  28. package/dist/{chunk-WNEO7TSP.js → chunk-FA6E75W5.js} +1 -1
  29. package/dist/{chunk-TKUNR5KP.js → chunk-GPNNQIRY.js} +2 -2
  30. package/dist/{chunk-LK7V32MR.js → chunk-H5NEXQTX.js} +1 -1
  31. package/dist/{chunk-T4CFSGSL.js → chunk-HKLW5KTW.js} +6 -6
  32. package/dist/{chunk-NHIGOEZF.js → chunk-JK2KQ4PF.js} +1 -1
  33. package/dist/chunk-LOXV3J6X.js +1005 -0
  34. package/dist/{chunk-QRV7RNQX.js → chunk-LTGIQ7HO.js} +14 -14
  35. package/dist/{chunk-MIAJQGWE.js → chunk-LY2G6LHW.js} +1 -1
  36. package/dist/{chunk-PE4F4MJE.js → chunk-MDI265RK.js} +4 -4
  37. package/dist/{chunk-FOEVG7RT.js → chunk-N3W6PH55.js} +11 -11
  38. package/dist/chunk-OBMR6BEP.js +1 -0
  39. package/dist/{chunk-SBDIHKLU.js → chunk-TMZVVRTA.js} +20 -20
  40. package/dist/{chunk-ZZKIKW62.js → chunk-VOY6TCS2.js} +19 -19
  41. package/dist/{chunk-VJP3R52B.js → chunk-XNHYCOPO.js} +1 -1
  42. package/dist/file-intake/index.js +1 -1
  43. package/dist/i18n/index.d.ts +1 -1
  44. package/dist/{index-HMDUOPnX.d.ts → index-CzMz_Y9A.d.ts} +139 -3
  45. package/dist/index.d.ts +3 -3
  46. package/dist/index.js +479 -479
  47. package/dist/locales/zh-Hans.d.ts +1 -1
  48. package/dist/locales/zh-Hans.js +1 -1
  49. package/dist/map/index.js +5 -5
  50. package/dist/page-tabs/index.js +5 -5
  51. package/dist/pdf/index.js +1 -1
  52. package/dist/{strings-ZbotP_I6.d.ts → strings-BEuOOURI.d.ts} +21 -0
  53. package/dist/ui/index.d.ts +2 -2
  54. package/dist/ui/index.js +1 -1
  55. package/package.json +1 -1
  56. package/dist/Calculator-4K53PFBL.js +0 -29
  57. package/dist/ConfirmDialog-X2DPOYWO.js +0 -1
  58. package/dist/Files-2VSFXA45.js +0 -87
  59. package/dist/PdfViewer-UZGDE4HD.js +0 -1
  60. package/dist/Sidebar-3NZRIL7F.js +0 -44
  61. package/dist/chunk-67PNFBCW.js +0 -993
  62. package/dist/chunk-J3LIIIHJ.js +0 -1
  63. package/dist/chunk-YKHMAGEM.js +0 -1
@@ -1,4 +1,4 @@
1
- import { a as ShellStrings } from '../strings-ZbotP_I6.js';
1
+ import { a as ShellStrings } from '../strings-BEuOOURI.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
 
@@ -1 +1 @@
1
- import{formatPlain as e,formatGrouped as o,formatFixed as t,formatPercent as a}from"../chunk-C3QOHMR6.js";var i=[],n=/^[A-Za-z0-9]/,r=/[A-Za-z0-9]$/,l=e=>n.test(e)?` ${e}`:e,s=e=>r.test(e)?`${e} `:e,d=e=>s(l(e));function c(i="zh-Hans"){const n=o=>e(o,i),r=e=>o(e,i),c=(e,o)=>t(e,o,i),p=(e,o)=>a(e,o,i);return{window:{minimize:"最小化",restore:"还原",maximize:"最大化",windowed:"向下还原",pinOnTop:"置顶",unpin:"取消置顶",close:"关闭",windowSuffix:"窗口",prev:"上一条",next:"下一条",snapLayouts:"贴靠布局",snapLeft:"贴靠到左半屏",snapRight:"贴靠到右半屏",snapTopLeft:"贴靠到左上角",snapTopRight:"贴靠到右上角",snapBottomLeft:"贴靠到左下角",snapBottomRight:"贴靠到右下角"},taskbar:{closeWindow:"关闭窗口",offscreenHint:"此窗口位于屏幕之外,点击即可移回",offscreenDot:"位于屏幕之外,点击即可移回此窗口",expose:"窗口概览:以缩略图显示所有打开的窗口",addToDesktop:"添加到桌面",removeFromDesktop:"从桌面移除",minimizeAllWindows:"全部最小化",restoreAllWindows:"全部还原",closeAllWindows:"全部关闭"},logout:{goodbye:"再见",seeYou:"下次再见"},about:{aboutPrefix:"关于",thisApp:"本应用",openSourceLicenses:"开源许可",whatsNew:"更新内容",noChangelog:"暂无更新日志。"},table:{empty:"暂无数据",loading:"加载中",selectAll:"选择全部行",selectRow:"选择此行"},select:{none:"— 无 —",noMatches:"无匹配项",allSelected:"已选择全部选项",clear:"清除所选",remove:"移除",removeItem:e=>`移除${l(e)}`},notifications:{title:"通知",markAllRead:"全部标为已读",dnd:"勿扰模式",dndOn:"勿扰模式已开启",caughtUp:"全部已读",empty:"暂无通知",viewAll:"查看全部通知",cardLabel:"通知",dismiss:"关闭通知"},form:{errorSummaryTitle:"存在以下问题"},help:{title:"帮助",searchPlaceholder:"搜索帮助…",empty:"暂无帮助文章。",noResults:"没有符合搜索条件的文章。",loading:"加载中…",pickArticle:"请从左侧选择一篇帮助文章。",noBody:"这篇文章暂无内容。",draft:"草稿",newArticle:"+ 新建",edit:"编辑"},update:{available:"有新版本可用。",refreshNow:"立即刷新"},pageTabs:{label:"已打开的页面",close:"关闭",closeTab:e=>`关闭${l(e)}`,closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",closeAll:"关闭全部标签页",unsaved:"有未保存的更改",copy:e=>`复制${l(e)}`,copied:"已复制",tabMenu:"窗口菜单",discardTitle:"放弃未保存的更改?",discardOne:"此页面有尚未保存的更改。仍要关闭吗?",discardMany:"个页面有尚未保存的更改。仍要关闭吗?",discardCount:e=>`有 ${n(e)} 个页面的更改尚未保存。仍要关闭吗?`,discardConfirm:"放弃并关闭",keepEditing:"继续编辑"},dialog:{close:"关闭",cancel:"取消",ok:"确定",confirmTitle:"确认",destructiveTitle:"确认操作",destructiveCancel:"返回",destructiveConfirm:"删除",typeToConfirm:e=>`请输入 ${e} 以确认:`,promptTitle:"请输入内容"},calendar:{previousMonth:"上个月",nextMonth:"下个月",previousYear:"上一年",nextYear:"下一年",previousYears:"上一组年份",nextYears:"下一组年份",monthPanel:"选择月份",yearPanel:"选择年份",chooseMonth:e=>`选择月份,当前为${l(e)}`,chooseYear:e=>`选择年份,当前为 ${e} 年`},datePicker:{placeholder:"选择日期",dialog:"选择日期",clear:"清除",today:"今天",required:"必填"},dateRange:{placeholder:"日期范围",clearRange:"清除日期范围",dialog:"日期范围",from:"从",to:"至",start:"开始日期",end:"结束日期",fromOnly:e=>`自 ${e} 起`,toOnly:e=>`截至 ${e}`,range:(e,o)=>`${e} 至 ${o}`,required:"必填",last2Weeks:"过去 2 周",lastMonth:"上个月",last3Months:"过去 3 个月",last6Months:"过去 6 个月",last12Months:"过去 12 个月",custom:"自定义",clear:"清除",cancel:"取消",apply:"应用"},pagination:{label:"分页",first:"第一页",previous:"上一页",next:"下一页",last:"最后一页"},list:{selected:e=>`已选 ${n(e)} 项`,selectedNotShown:(e,o)=>`已选 ${n(e)} 项,${n(o)} 项未显示`,allLoaded:(e,o)=>`已加载全部 ${r(e)} ${o}`,count:(e,o)=>`共 ${r(e)} ${o}`,loadedOf:(e,o,t)=>`已加载 ${r(e)} / ${r(o)} ${t}`,loadingMore:"正在加载更多…",loadError:"无法加载此列表",loadErrorMessage:"获取这些记录时出错。请检查网络连接后重试。",retry:"重试"},kanban:{loading:"加载中…",empty:"暂无条目。",dropHere:"拖放到此处",addItem:"添加条目"},files:{attach:"添加附件",drop:"松开即可添加附件",remove:e=>`移除${l(e)}`,chooseMany:"选择文件",chooseOne:"选择文件",dragMany:"或拖放到此处",dragOne:"或拖放到此处",notAccepted:(e,o)=>`${s(e)}的文件类型不受支持${o?`(${o})`:""}`,tooLarge:(e,o,t)=>`${s(e)}大小为 ${o},上限为 ${t}`,tooMany:(e,o)=>`未添加${l(e)}:最多只能添加 ${n(o)} 个文件`,bytes:e=>`${n(e)} B`,kilobytes:e=>`${n(e)} KB`,megabytes:e=>`${c(e,1)} MB`},media:{uploadImage:"上传图片",uploadVideo:"上传视频",uploadFile:"上传文件",upload:"上传媒体",cta:"从媒体库选择或上传",replace:"替换",remove:"移除",uploading:"上传中…",cover:"封面",add:"添加",addMedia:"添加媒体",empty:"暂无媒体。",removeItem:e=>`移除${l(e)}`,reorder:(e,o,t)=>`${e},第 ${n(o)} 项,共 ${n(t)} 项。使用方向键调整顺序。`},brandAsset:{save:(e,o)=>`保存${l(o)}`,remove:(e,o)=>`移除${l(o)}`,discard:"放弃更改",saveFailed:(e,o)=>`无法保存${l(o)}。`,removeFailed:(e,o)=>`无法移除${l(o)}。`,region:(e,o)=>`${s(o)}的${e}`,usedFor:e=>`用于${l(e)}。`,previews:e=>`${s(e)}预览`,preview:"预览",alt:(e,o)=>`${s(e)}${o}`},copy:{copy:"复制",copyLabel:e=>`复制${l(e)}`,copied:"已复制",copyValue:e=>`复制${l(e)}`,copiedValue:"已复制!",copiedLabel:e=>`已复制${l(e)}`,failed:"无法复制到剪贴板"},keypad:{backspace:"退格",enter:"确认"},banner:{dismiss:"关闭"},badge:{remove:"移除",removeItem:e=>`移除${l(e)}`},breadcrumbs:{label:"面包屑导航",hidden:"已隐藏的层级"},emptyState:{message:"暂无内容。"},errors:{notFound:"找不到页面",notFoundBody:"您访问的页面不存在或已被移动。",forbidden:"访问被拒绝",forbiddenBody:"您没有查看此页面的权限。",noAccess:"您无权访问此内容",serverError:"出错了",serverErrorBody:"发生意外错误,请重试。",retry:"重试",details:"错误详情"},search:{placeholder:"搜索…",escBadge:"ESC",searching:"搜索中…",noResults:"未找到结果。",minChars:e=>`请至少输入 ${n(e)} 个字符再搜索…`,navigate:"切换",open:"打开",close:"关闭",enterKey:"Enter",escKey:"Esc",recent:"最近",favorites:"收藏",actions:"操作",listLabel:"搜索结果",groupCount:(e,o)=>`${n(e)}${o?"+":""}`,groupLabel:(e,o,t)=>`${e},${n(o)}${t?"+":""} 项`,seeAll:e=>`查看全部${l(e)}`,searchFailed:"搜索失败,请检查网络连接后重试。",partialFailure:"部分结果未能加载。",tabKey:"Tab",nextGroup:"下一组"},grid:{selectAll:"全选",insertRowAbove:"在上方插入行",insertRowBelow:"在下方插入行",deleteRow:e=>`删除第 ${e} 行`,insertColumnLeft:"在左侧插入列",insertColumnRight:"在右侧插入列",deleteColumn:e=>`删除${d(e)}列`,resize:"拖动调整大小 · 双击自动适应",fill:"拖动填充"},sidebar:{resize:"拖动调整大小 · 双击重置"},resizeHandle:{label:"调整面板大小",hint:"拖动调整大小 · 双击重置"},number:{increase:"增加",decrease:"减少"},slider:{value:e=>`${s(e)}数值`},color:{swatch:(e,o)=>`${e}:${o}`,none:"无",panel:e=>`${s(e)}选择器`,square:"饱和度和亮度",squareValue:(e,o)=>`饱和度 ${p(e,0)},亮度 ${p(o,0)}`,hue:"色相",hex:e=>`${s(e)}十六进制色值`,presets:"预设",clear:"无颜色"},tree:{empty:"暂无内容",dropHere:"拖放到此处",dragHint:"拖动以移动",moveHint:"按 Alt+向上键或 Alt+向下键可移动此项",insertHere:"在此处插入"},layout:{desktop:"桌面",sidebar:"侧边栏",switchToDesktop:"切换到桌面模式",switchToSidebar:"切换到侧边栏模式",collapseSidebar:"收起侧边栏",expandSidebar:"展开侧边栏",search:"搜索…",navLabel:"主菜单",openWindows:"已打开的窗口",pageResult:"页面",accountMenu:e=>`${s(e)}的账户菜单`,profile:"个人资料",notifications:"通知",reportIssue:"建议与问题反馈",signOut:"退出登录",signOutTitle:"退出登录",signOutMessage:"您确定要退出登录吗?重新登录后将重新打开所有窗口。"},markdown:{screenshot:"截图"},severity:{success:"正常",warning:"警告",danger:"严重",unrecognised:e=>`未识别的严重级别${l(e)}`},meter:{noData:"无数据",warningAt:e=>`警告 ≥ ${n(e)}`,criticalAt:e=>`严重 ≥ ${n(e)}`,noReading:"无读数",noBudget:"无预算",ofBudget:e=>`预算的 ${e}`,budget:"预算",hoursMinutes:(e,o)=>`${n(e)} 小时 ${n(o)} 分`,minutesSeconds:(e,o)=>`${n(e)} 分 ${n(o)} 秒`,seconds:e=>`${n(e)} 秒`},charts:{showTable:"以表格显示数据",loading:"正在加载图表数据",noData:"此时间段内无数据。",windowStart:"时间段起点",windowEnd:"时间段终点",window:(e,o,t)=>`时间段:正在显示 ${e} 至 ${o},共 ${n(t)} 个区间`,overIntervals:(e,o)=>`${e.join("、")},共 ${n(o)} 个区间`,acrossCategories:(e,o)=>`${e.join("、")},共 ${n(o)} 个类别`,acrossMeasures:(e,o)=>`${e.join("、")},共 ${n(o)} 项指标`,breakdown:(e,o)=>`${s(e)}的构成,共 ${n(o)} 个部分`,funnel:(e,o,t)=>`漏斗图,共 ${n(e)} 个阶段,从${d(o)}到${l(t)}`,radialTrack:e=>`${n(e)} 个类别,以同心环占比显示`,radialCycle:e=>`${n(e)} 个类别,按环形周期排列`,tableFrom:"来源",tableTo:"去向",tableItem:"项目",tableLevel:"层级",tableSeries:"系列",inBucket:e=>`此区间内共 ${e}`,inCategory:e=>`此类别内共 ${e}`,value:"数值",share:"占比",count:"数量",flow:"流量",totalFlow:"总流量",throughput:"通过量",open:"开盘",high:"最高",low:"最低",close:"收盘",maximum:"最大值",q3:"Q3",median:"中位数",q1:"Q1",minimum:"最小值",distribution:"分布",fiveNumber:(e,o)=>`${e}:${n(o)} 个类别的五数概括`,outliers:e=>`${n(e)} 个离群值超出须线范围`,price:"价格",ohlc:(e,o)=>`${e}:${n(o)} 个周期的开盘、最高、最低和收盘`,closedAbove:"收盘高于开盘",closedBelow:"收盘低于开盘",noFlows:"没有可绘制的流量。",chord:e=>`${n(e)} 个参与方之间的流量`,noStages:"没有可绘制的阶段。",ofFirstStage:"占首阶段",droppedHere:"此处流失",intensity:"强度",noActivity:"此时间段内无活动。",heatmap:(e,o,t)=>`${e},${n(o)} 行 ${n(t)} 列`,countAxis:"数量",histogram:(e,o,t)=>`${e}:${n(t)} 个观测值,分为 ${n(o)} 组`,observations:"观测值",notEnough:"符合条件的请求不足,无法判断。",objectiveMet:e=>`已达到目标 ${e}`,objectiveMissed:e=>`未达到目标 ${e}`,nothingToPlot:"没有可绘制的数据。",nothingToCompare:"没有可比较的数据。",other:"其他",nothingToBreakDown:"没有可细分的数据。",range:"范围",rangeLabel:(e,o)=>`${e}:${n(o)} 个类别的最低值和最高值`,nothingToRank:"此时间段内没有可排名的数据。",emphasised:"(重点)",sankey:(e,o)=>`${n(e)} 个节点之间的流量,共 ${n(o)} 条连接`,noObservations:"此时间段内无观测值。",xAxis:"x",yAxis:"y",size:"大小",scatter:(e,o,t)=>`${e.join("、")}:${s(o)}与${d(t)}的关系`,outsideRange:e=>`${n(e)} 个点超出显示范围`,waterfall:(e,o,t)=>`瀑布图,共 ${n(e)} 步,从${d(o)}到${l(t)}`,balance:"余额",increase:"增加",decrease:"减少",runningTotal:"累计",sunburst:(e,o)=>`${s(e)}的层级构成,共 ${n(o)} 层`,treemap:e=>`矩形树图,共 ${n(e)} 项`,trendUp:"上升",trendDown:"下降",trendFlat:"持平"},timeline:{days:e=>`${r(e)} 天`,daysToToday:e=>`距今 ${r(e)} 天`,notReached:"尚未达成",next:"下一项",more:e=>`还有 ${n(e)} 项`,today:"今天",todayTitle:e=>`今天:${e}`,open:e=>`打开${l(e)}`,openButton:"打开",scrub:"拖动浏览时间线",alsoToCome:e=>`后续还有:${e.join("、")}`,start:e=>`开始 · ${e}`,events:(e,o)=>`${n(e)} 个事件 · ${o.join("、")}`,started:e=>`开始于 ${e}`,duration:e=>`${r(e)} 天`,reached:(e,o)=>`已达成 ${n(e)} / ${n(o)} 个里程碑`,milestones:e=>`${s(e)}里程碑`},production:{heading:"生产进度",start:"开始",estimated:"预计",estimatedCompletion:"预计完成",estDone:"预计完工",play:"播放",pause:"暂停",playTitle:"逐份报告播放时间线",backTo:e=>`返回${l(e)}`,showing:e=>`正在显示 ${e}`,overall:e=>`总体 ${p(e,0)}`,inStock:e=>`库存 ${r(e)} 件`,noReport:"尚未提交生产报告",leadTime:e=>`交货周期 ${r(e)} 天`,report:"生产报告",shipment:"发货",inspection:"检验",invoice:"发票",scrub:"拖动浏览生产时间线",label:(e,o)=>`生产报告和事件,${e} 至 ${o}`},containers:{items:e=>`${n(e)} 项`,pieces:e=>`${n(e)} 件`,split:(e,o)=>`(指令 ${n(e)} / 已装 ${n(o)})`,added:(e,o)=>`新增 ${n(e)} 项(${n(o)} 件)`,fill:(e,o)=>`${c(e,1)} / ${n(o)} m³`,total:"合计:",instructed:e=>`指令 ${c(e,2)} m³`,loaded:e=>`已装 ${c(e,2)} m³`,volume:e=>`${c(e,2)} m³`,noVolume:"体积:暂无(这些料号没有体积数据)"},toast:{notification:"通知"},map:{failed:"无法在此处绘制地图。列表中包含地图显示的全部内容。",approximate:e=>`${e},大致位置`,approximateTitle:e=>`${e}(大致位置)`,places:()=>"地点",group:(e,o)=>`此处有 ${n(e)} 个${l(o)}`,stops:e=>`第 ${e} 站`,closeBy:(e,o)=>`附近还有 ${n(e)} 个${l(o)},放大地图后显示`,spread:"点按以分开查看",cycle:"这些地点位于同一位置:点按查看下一个",fullScreen:"全屏",leaveFullScreen:"退出全屏",chosen:e=>`${e},已在地图上选中`,closeCard:"关闭",openRecord:"打开"},pdf:{previousPage:"上一页",nextPage:"下一页",pageOf:(e,o)=>`${n(e)} / ${n(o)}`,zoomOut:"缩小",zoomIn:"放大",zoom:"缩放",fitWidth:"适合宽度",fitPage:"适合页面",fit:"适应",fitHint:"适应窗格:随窗格大小变化,直到您手动缩放",print:"打印",download:"下载",email:"发送邮件",loading:"正在加载 PDF…",loadFailed:"PDF 加载失败",allowPopups:"请允许弹出窗口以便打印"},loading:{label:"加载中…"},language:{title:"语言",description:"菜单、标签和消息所使用的语言。",reloadNote:"更改语言后页面将重新加载。"},entityList:{open:"打开",copy:"复制",copyColumn:e=>`复制${l(e)}`,copyRows:e=>1===e?"复制此行":`复制 ${n(e)} 行`,exportSelected:"将所选导出为 CSV",selectAll:"全选",selectAllLoaded:e=>`全选已加载的 ${n(e)} 项`,clearSelection:"清除所选",refresh:"刷新",copiedText:"文本",copiedRows:e=>1===e?"该行":`${n(e)} 行`,exported:e=>`已导出 ${n(e)} 行。`,exportTruncated:(e,o)=>`仅导出了 ${n(o)} 行中的 ${n(e)} 行。服务器限制了本次导出,文件不完整。`,exportTruncatedUnknown:e=>`仅导出了 ${n(e)} 行中的一部分。服务器限制了本次导出,文件不完整。`,exportFailed:"CSV 导出失败。"},columns:{choose:"选择列",heading:"列",reset:"重置",saveDefault:"保存为所有用户的默认设置",savedDefault:"已保存为默认设置",select:"选择",selectDone:"完成",showSelection:"显示选择列",hideSelection:"隐藏选择列"},record:{loading:"正在加载记录…",signInRequired:"需要登录",signInBody:"您的会话可能已过期。请重新登录以打开此记录。",notFound:"未找到记录",loadFailed:"无法加载记录",checkConnection:"请检查网络连接后重试。",rejected:"服务器拒绝了此请求。",retry:"重试"},password:{current:"当前密码",newPassword:"新密码",confirm:"确认密码",submit:"修改密码",submitting:"修改中…",done:"完成",currentRequired:"请输入当前密码。",tooShort:e=>`新密码至少需要 ${n(e)} 个字符。`,mismatch:"两次输入的密码不一致。",failed:"修改密码失败。",changed:"您的密码已修改成功。"},pdfAction:{label:"PDF",loading:"加载中…",preview:"预览",download:"下载",email:"通过邮件发送",downloaded:e=>`${s(e)}已下载。`,tookTooLong:e=>`${s(e)}加载时间过长,请重试。`,previewLoading:"正在加载 PDF",previewTookTooLong:"此文档加载时间过长。请关闭此窗口后重试。",previewFailed:"PDF 加载失败。"},undo:{undo:"撤销",redo:"重做",undoStep:(e,o)=>`撤销${l(e)}(${o})`,redoStep:(e,o)=>`重做${l(e)}(${o})`,nothingToUndo:"没有可撤销的操作",nothingToRedo:"没有可重做的操作"},sounds:{title:"声音",enable:"音效",autosave:"更改会自动保存",choice:(e,o)=>`${e}:${o}`,packClassic:"经典",packMinimal:"极简",packRetro:"复古",packSoft:"柔和",packArcade:"街机",packSilent:"静音",eventClick:"点击",eventSuccess:"成功",eventError:"错误",eventNotification:"通知",eventStartup:"启动",eventTimerDone:"计时结束",eventLogout:"退出登录"},serverStatus:{connected:"已连接",disconnected:"已断开",checking:"检测中…",lastOkTitle:(e,o)=>`${e} · 上次正常 ${o}`,details:"服务器连接详情",lastPoll:e=>`上次轮询:${e}。`,lastFailure:e=>`上次失败:${e}。`,firstPoll:"首次轮询进行中…",server:"服务器",protocol:"协议",browser:"浏览器",online:"在线",offline:"离线",lastOk:"上次正常",lastFail:"上次失败",latency:"延迟",poll:"轮询",pollEvery:e=>`每 ${n(e)} 秒`,session:"会话",user:"用户",notSignedIn:"未登录",role:"角色",build:"构建",app:"应用",userAgent:"用户代理",pingHint:"点击 ↻ 立即检测",refresh:"刷新"},bulkImport:{description:"可从电子表格粘贴、直接输入或上传 CSV。行无需按顺序排列,系统会自动匹配。列表中没有的值将添加到末尾。留空的字段不受影响。",lines:e=>`${n(e)} 行`,total:(e,o)=>`${e}:${o}`,clear:"清除",upload:"上传 CSV",importLines:e=>`导入 ${n(e)} 行`,importing:"导入中…",importFailed:"导入失败。",enterAtLeastOne:(e,o)=>`请至少输入一个${l(o)||"值"}。`,allSkipped:"所有行均已跳过。",cancel:"取消",mapTitle:"将 CSV 列映射到字段",skip:"— 跳过 —",columnOption:(e,o)=>`第 ${n(e)} 列(例如 ${o})`,rowsDetected:e=>`检测到 ${n(e)} 行`,confirmMapping:"确认映射",duplicatesTitle:"检测到重复项",duplicatesFound:e=>`导入内容中有 ${n(e)} 个值出现了多次。请先选择每个值的处理方式,然后再继续。`,occurrences:e=>`出现 ${n(e)} 次`,keepFirst:"保留第一个",keepLast:"保留最后一个",keepAll:"全部保留",skipAll:"全部跳过",keptDropped:(e,o)=>`保留 ${n(e)} · 丢弃 ${n(o)}`,proceed:"继续",duplicatesMerged:e=>`有 ${n(e)} 个值出现了多次。每个值已合并为一行,数量已累加,请检查后再继续。`,mergedFrom:"合并自",mergedRows:e=>`${n(e)} 行`,mergeSummary:(e,o)=>`${n(e)} 个重复行 → 合并为 ${n(o)} 行`},preview:{windowTitle:e=>`${e} - 预览`,untitled:"未命名",open:"打开",formats:"PDF · DXF · 3D · 图片",dropHere:e=>`将文件拖放到此处,或点击${e}。`,supportedFormats:"支持的格式",formatPdf:"多页文档查看器",formatDxf:e=>`矢量 CAD 图纸(可选依赖 ${e})`,format3d:e=>`3D 模型(可选依赖 ${e})`,formatImage:"位图图片",dwgNote:"DWG 文件需先在服务器端转换为 PDF 或 DXF。",dropToOpen:"松开以打开",dwgUnsupported:"DWG 文件需要在服务器端转换。请先转换为 PDF 或 DXF。",unsupportedType:e=>e?`不支持的文件类型:.${e}`:"不支持的文件类型:未知",converting:"正在转换文件",download:"下载",email:"发送邮件",howToNavigate:"操作方法",stopMeasuring:"停止测量(Esc)",scrollToZoom:"滚动缩放",closePanel:"关闭",annotate:"标注",annotateHint:"标注此图片",view:"查看",viewHint:"返回查看器",copy:"复制",save:"保存",imageFailed:"图片加载失败。",downloadFailed:"下载失败:无法访问该文件。"},drawing:{loading:"正在加载图纸…",notInstalled:"此应用未安装 dxf-viewer。",renderFailed:"DXF 渲染失败。",layers:"图层",layersHint:"切换图层可见性",allLayers:"全部",noLayers:"无",measure:"测量",measureHint:"测量距离:在图纸上点击两点,或在下方输入 DI / DIM",auto:"自动",autoHint:"自动:等同 AutoCAD 的 DIMLINEAR,测量两个拾取点之间 ΔX 与 ΔY 中较大的一个",horizontalHint:"水平:两个拾取点之间沿 X 轴的距离(AutoCAD DIMLINEAR 水平)",verticalHint:"垂直:两个拾取点之间沿 Y 轴的距离(AutoCAD DIMLINEAR 垂直)",point:"两点",pointHint:"两点:两个拾取点之间的直线(欧氏)距离(AutoCAD DIST)",fixX:"固定 Δx",fixY:"固定 Δy",fixHint:"将第二个拾取点在该轴上的坐标锁定为第一个拾取点加上此值(mm)。此时显示的测量值为正交方向的距离。",clearFixed:"清除固定距离",horizontalDistance:e=>"两个拾取点之间的水平距离(Δx)"+(e?":自动模式已判定为 X 轴":""),verticalDistance:e=>"两个拾取点之间的垂直距离(Δy)"+(e?":自动模式已判定为 Y 轴":""),straightDistance:"两个拾取点之间的直线距离",fit:"适应",fitHint:"使图纸适应视图",dragToPan:"拖动平移",fitToReset:"点“适应”重置",typeToMeasure:e=>`输入 ${e} 进行测量`,commandPlaceholder:"输入命令:DI、DIM、H、V、Z、LA(输入 ? 查看帮助)",commandHelp:"命令:DI 距离 · DIM/DLI 线性标注 · H / V 强制轴向 · <数值> 锁定 Δ · U 撤销拾取 · Z 适应 · LA 图层 · Esc 退出",echoDistance:(e,o,t)=>`距离 = ${e} ΔX = ${o} ΔY = ${t}`,echoLinear:(e,o)=>`线性标注 = ${e}(${o})`,echoLocked:(e,o,t,a)=>`${e} = ${o},${t} 锁定为 ${a}`,axisLocked:(e,o)=>`${e} 已锁定为 ${o},标签显示的是正交方向的距离`,fixedCleared:"已清除固定距离。",fixedNeedsAxis:"固定距离仅适用于 H 或 V 模式,请先输入 H 或 V。",echoDist:"DIST:点击两点;直线距离(按 Esc 退出)",echoDimLinear:"DIMLINEAR:点击两点;测量 ΔX 与 ΔY 中较大的一个(输入 H / V 可强制轴向)",echoHorizontal:"水平:两个拾取点之间的 ΔX",echoVertical:"垂直:两个拾取点之间的 ΔY",echoAuto:"自动(DIMLINEAR):沿两个拾取点的主轴方向测量",measureOn:"测量已开启,请点击两点。",measureOff:"测量已关闭。",pickRemoved:"已移除上一个拾取点。",zoomExtents:"已缩放至全图。",layersToggled:"已切换图层面板。",measurementCleared:"已清除测量结果。",readOnly:e=>`${e} 是绘图命令,而“预览”是只读查看器。测量命令:DI、DIM、H、V(输入 ? 查看帮助)`,unknownCommand:e=>`未知命令“${e}”,请尝试 DI、DIM、H、V、Z、LA(输入 ? 查看帮助)`,cancelled:"*取消*"},model:{loading:"正在加载 3D 模型…",stepNote:"STEP 文件首次使用时需加载 OpenCascade WASM(约 5 MB)。",notInstalled:"此应用未安装 online-3d-viewer。安装后即可查看 3D 文件。",loadFailed:"3D 模型加载失败。",rootNode:"根节点",node:"节点",collapse:"收起",expand:"展开",fitToView:"适应视图",hide:"隐藏",show:"显示",isometric:"轴测",isometricView:"等轴测视图",top:"俯视",topView:"俯视图",front:"前视",frontView:"前视图",side:"侧视",sideView:"侧视图",perspective:"透视",orthographic:"正交",toPerspective:"切换到透视视图",toOrthographic:"切换到正交视图",snapshot:"将快照保存为 PNG",measureHint:"测量距离:在模型上点击两点",point:"两点",pointHint:"两点:测量两个拾取点之间的直线距离",perpendicularHint:"垂直:拾取两个面,测量它们之间的垂直间距",straightDistance:"两个拾取点之间的直线距离",perpendicularDistance:"两个拾取面之间的垂直距离",meshesHint:"显示或隐藏网格面板",displayHint:"显示或隐藏显示设置面板",downloadOriginal:"下载原始文件",meshes:"网格",readingModel:"正在读取模型…",noStructure:"无可用结构",allVisible:"全部可见",hiddenCount:e=>`已隐藏 ${n(e)} 个`,dragToRotate:"拖动旋转",rightDragToPan:"右键拖动平移",display:"模型显示",backgroundColor:"背景颜色",showEdges:"显示边线",edgeColor:"边线颜色",edgeThreshold:"边线阈值",sectionView:"剖面视图",angle:"角度",axis:"轴",flipHint:"翻转剖切方向",flip:"翻转 →",flipped:"← 已翻转",position:"位置",resetDisplay:"恢复默认"},annotator:{toolSelect:"选择 / 移动",toolDraw:"画笔 / 手绘",toolRect:"矩形",toolEllipse:"椭圆",toolArrow:"箭头",toolMosaic:"马赛克",toolText:"文字",toolCrop:"裁剪",weight:"粗细",radius:"圆角",size:"大小",padding:"边距",fontSystem:"系统",fontSerif:"衬线",fontMono:"等宽",fontCursive:"手写",bold:"加粗",boldLetter:"B",italic:"斜体",italicLetter:"I",underline:"下划线",underlineLetter:"U",border:"边框",borderColor:"文本框边框颜色",addBorder:"添加边框",removeBorder:"移除边框",fill:"填充",fillColor:"文本框背景颜色",addFill:"添加背景填充",removeFill:"移除填充",add:"添加",zoomOut:"缩小",zoomIn:"放大",fit:"适应",fitHint:"适应区域",undo:"撤销",applyCrop:"应用裁剪",cancel:"取消",apply:"应用",hintSelected:"拖动可移动。拖动边角可调整大小。按 Delete / Backspace 可删除。点击外部可取消选择。",hintSelect:"点按形状即可选中。双击文字即可编辑。",hintText:"点击以放置文字标签。",hintCrop:"拖出一个矩形以设定裁剪区域。",hintDraw:"拖动以自由绘制。",hintShape:"在图片上拖动以绘制。",textPlaceholder:"输入后按 Enter…",loadFailed:"图片加载失败",exportFailed:"导出失败",clipboardUnsupported:"此浏览器不支持将图片复制到剪贴板",copyFailed:"复制失败",copied:"已复制到剪贴板",copyRefused:"复制失败(没有剪贴板权限?)"},attachment:{fallbackName:"附件",noLink:"此附件没有下载链接。",spreadsheetFailed:"无法打开电子表格,将改为直接打开文件。",workbookUnavailable:"此文件类型不支持电子表格预览,将改为直接打开文件。",noViewer:"没有可在此显示该文件的查看器,将在应用外打开。",loading:"正在加载文件",loadFailed:"文件加载失败。"},aboutApp:{title:e=>`关于${l(e)}`,version:e=>`版本 ${e}`,partOf:e=>`属于 ${e} 桌面环境`,shellVersion:e=>`外壳 v${e}`,spreadsheet:"多工作表电子表格编辑器,支持导入和导出 CSV / TSV。",notepad:"带颜色标记的便笺,支持清单、桌面便签和实体自动链接。",documents:"信纸版面的编辑器,适用于 Word 文档和纯文本文件,支持图片、列表和对齐。",preview:"PDF 文档、图片、DXF 图纸和 3D 模型的查看器,支持带对象捕捉的 CAD 式测量和类似 AutoCAD 的命令栏。",files:"个人文件管理器,支持文件夹、上传、配额、回收站和桌面快捷文件夹。",browser:"简洁的网页浏览器,带书签、历史记录和导航栏。"}}}var p=c;export{i as ZH_HANS_REVIEWED_SECTIONS,p as default,c as zhHansStrings};
1
+ import{formatPlain as e,formatGrouped as o,formatFixed as t,formatPercent as a}from"../chunk-C3QOHMR6.js";var i=[],n=/^[A-Za-z0-9]/,r=/[A-Za-z0-9]$/,l=e=>n.test(e)?` ${e}`:e,s=e=>r.test(e)?`${e} `:e,d=e=>s(l(e));function c(i="zh-Hans"){const n=o=>e(o,i),r=e=>o(e,i),c=(e,o)=>t(e,o,i),p=(e,o)=>a(e,o,i);return{window:{minimize:"最小化",restore:"还原",maximize:"最大化",windowed:"向下还原",pinOnTop:"置顶",unpin:"取消置顶",close:"关闭",windowSuffix:"窗口",prev:"上一条",next:"下一条",snapLayouts:"贴靠布局",snapLeft:"贴靠到左半屏",snapRight:"贴靠到右半屏",snapTopLeft:"贴靠到左上角",snapTopRight:"贴靠到右上角",snapBottomLeft:"贴靠到左下角",snapBottomRight:"贴靠到右下角"},taskbar:{closeWindow:"关闭窗口",offscreenHint:"此窗口位于屏幕之外,点击即可移回",offscreenDot:"位于屏幕之外,点击即可移回此窗口",expose:"窗口概览:以缩略图显示所有打开的窗口",addToDesktop:"添加到桌面",removeFromDesktop:"从桌面移除",minimizeAllWindows:"全部最小化",restoreAllWindows:"全部还原",closeAllWindows:"全部关闭"},logout:{goodbye:"再见",seeYou:"下次再见"},about:{aboutPrefix:"关于",thisApp:"本应用",openSourceLicenses:"开源许可",whatsNew:"更新内容",noChangelog:"暂无更新日志。"},table:{empty:"暂无数据",loading:"加载中",selectAll:"选择全部行",selectRow:"选择此行"},select:{none:"— 无 —",noMatches:"无匹配项",allSelected:"已选择全部选项",clear:"清除所选",remove:"移除",removeItem:e=>`移除${l(e)}`},notifications:{title:"通知",markAllRead:"全部标为已读",dnd:"勿扰模式",dndOn:"勿扰模式已开启",caughtUp:"全部已读",empty:"暂无通知",viewAll:"查看全部通知",cardLabel:"通知",dismiss:"关闭通知"},form:{errorSummaryTitle:"存在以下问题"},help:{title:"帮助",searchPlaceholder:"搜索帮助…",empty:"暂无帮助文章。",noResults:"没有符合搜索条件的文章。",loading:"加载中…",pickArticle:"请从左侧选择一篇帮助文章。",noBody:"这篇文章暂无内容。",draft:"草稿",newArticle:"+ 新建",edit:"编辑"},update:{available:"有新版本可用。",refreshNow:"立即刷新"},pageTabs:{label:"已打开的页面",close:"关闭",closeTab:e=>`关闭${l(e)}`,closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",closeAll:"关闭全部标签页",unsaved:"有未保存的更改",copy:e=>`复制${l(e)}`,copied:"已复制",tabMenu:"窗口菜单",discardTitle:"放弃未保存的更改?",discardOne:"此页面有尚未保存的更改。仍要关闭吗?",discardMany:"个页面有尚未保存的更改。仍要关闭吗?",discardCount:e=>`有 ${n(e)} 个页面的更改尚未保存。仍要关闭吗?`,discardConfirm:"放弃并关闭",keepEditing:"继续编辑"},dialog:{close:"关闭",cancel:"取消",ok:"确定",confirmTitle:"确认",destructiveTitle:"确认操作",destructiveCancel:"返回",destructiveConfirm:"删除",typeToConfirm:e=>`请输入 ${e} 以确认:`,promptTitle:"请输入内容"},calendar:{previousMonth:"上个月",nextMonth:"下个月",previousYear:"上一年",nextYear:"下一年",previousYears:"上一组年份",nextYears:"下一组年份",monthPanel:"选择月份",yearPanel:"选择年份",chooseMonth:e=>`选择月份,当前为${l(e)}`,chooseYear:e=>`选择年份,当前为 ${e} 年`},datePicker:{placeholder:"选择日期",dialog:"选择日期",clear:"清除",today:"今天",required:"必填"},dateRange:{placeholder:"日期范围",clearRange:"清除日期范围",dialog:"日期范围",from:"从",to:"至",start:"开始日期",end:"结束日期",fromOnly:e=>`自 ${e} 起`,toOnly:e=>`截至 ${e}`,range:(e,o)=>`${e} 至 ${o}`,required:"必填",last2Weeks:"过去 2 周",lastMonth:"上个月",last3Months:"过去 3 个月",last6Months:"过去 6 个月",last12Months:"过去 12 个月",custom:"自定义",clear:"清除",cancel:"取消",apply:"应用"},pagination:{label:"分页",first:"第一页",previous:"上一页",next:"下一页",last:"最后一页"},list:{selected:e=>`已选 ${n(e)} 项`,selectedNotShown:(e,o)=>`已选 ${n(e)} 项,${n(o)} 项未显示`,allLoaded:(e,o)=>`已加载全部 ${r(e)} ${o}`,count:(e,o)=>`共 ${r(e)} ${o}`,loadedOf:(e,o,t)=>`已加载 ${r(e)} / ${r(o)} ${t}`,loadingMore:"正在加载更多…",loadError:"无法加载此列表",loadErrorMessage:"获取这些记录时出错。请检查网络连接后重试。",retry:"重试"},kanban:{loading:"加载中…",empty:"暂无条目。",dropHere:"拖放到此处",addItem:"添加条目"},files:{attach:"添加附件",drop:"松开即可添加附件",remove:e=>`移除${l(e)}`,chooseMany:"选择文件",chooseOne:"选择文件",dragMany:"或拖放到此处",dragOne:"或拖放到此处",notAccepted:(e,o)=>`${s(e)}的文件类型不受支持${o?`(${o})`:""}`,tooLarge:(e,o,t)=>`${s(e)}大小为 ${o},上限为 ${t}`,tooMany:(e,o)=>`未添加${l(e)}:最多只能添加 ${n(o)} 个文件`,bytes:e=>`${n(e)} B`,kilobytes:e=>`${n(e)} KB`,megabytes:e=>`${c(e,1)} MB`},media:{uploadImage:"上传图片",uploadVideo:"上传视频",uploadFile:"上传文件",upload:"上传媒体",cta:"从媒体库选择或上传",replace:"替换",remove:"移除",uploading:"上传中…",cover:"封面",add:"添加",addMedia:"添加媒体",empty:"暂无媒体。",removeItem:e=>`移除${l(e)}`,reorder:(e,o,t)=>`${e},第 ${n(o)} 项,共 ${n(t)} 项。使用方向键调整顺序。`},brandAsset:{save:(e,o)=>`保存${l(o)}`,remove:(e,o)=>`移除${l(o)}`,discard:"放弃更改",saveFailed:(e,o)=>`无法保存${l(o)}。`,removeFailed:(e,o)=>`无法移除${l(o)}。`,region:(e,o)=>`${s(o)}的${e}`,usedFor:e=>`用于${l(e)}。`,previews:e=>`${s(e)}预览`,preview:"预览",alt:(e,o)=>`${s(e)}${o}`},copy:{copy:"复制",copyLabel:e=>`复制${l(e)}`,copied:"已复制",copyValue:e=>`复制${l(e)}`,copiedValue:"已复制!",copiedLabel:e=>`已复制${l(e)}`,failed:"无法复制到剪贴板"},keypad:{backspace:"退格",enter:"确认"},banner:{dismiss:"关闭"},badge:{remove:"移除",removeItem:e=>`移除${l(e)}`},breadcrumbs:{label:"面包屑导航",hidden:"已隐藏的层级"},emptyState:{message:"暂无内容。"},errors:{notFound:"找不到页面",notFoundBody:"您访问的页面不存在或已被移动。",forbidden:"访问被拒绝",forbiddenBody:"您没有查看此页面的权限。",noAccess:"您无权访问此内容",serverError:"出错了",serverErrorBody:"发生意外错误,请重试。",retry:"重试",details:"错误详情"},search:{placeholder:"搜索…",escBadge:"ESC",searching:"搜索中…",noResults:"未找到结果。",minChars:e=>`请至少输入 ${n(e)} 个字符再搜索…`,navigate:"切换",open:"打开",close:"关闭",enterKey:"Enter",escKey:"Esc",recent:"最近",favorites:"收藏",actions:"操作",listLabel:"搜索结果",groupCount:(e,o)=>`${n(e)}${o?"+":""}`,groupLabel:(e,o,t)=>`${e},${n(o)}${t?"+":""} 项`,seeAll:e=>`查看全部${l(e)}`,searchFailed:"搜索失败,请检查网络连接后重试。",partialFailure:"部分结果未能加载。",tabKey:"Tab",nextGroup:"下一组"},grid:{selectAll:"全选",insertRowAbove:"在上方插入行",insertRowBelow:"在下方插入行",deleteRow:e=>`删除第 ${e} 行`,insertColumnLeft:"在左侧插入列",insertColumnRight:"在右侧插入列",deleteColumn:e=>`删除${d(e)}列`,resize:"拖动调整大小 · 双击自动适应",fill:"拖动填充"},sidebar:{resize:"拖动调整大小 · 双击重置"},resizeHandle:{label:"调整面板大小",hint:"拖动调整大小 · 双击重置"},number:{increase:"增加",decrease:"减少"},slider:{value:e=>`${s(e)}数值`},displayChips:{shown:"显示中",hidden:"已隐藏",shownHint:"显示中 · 点击隐藏",hiddenHint:"已隐藏 · 点击显示"},color:{swatch:(e,o)=>`${e}:${o}`,none:"无",panel:e=>`${s(e)}选择器`,square:"饱和度和亮度",squareValue:(e,o)=>`饱和度 ${p(e,0)},亮度 ${p(o,0)}`,hue:"色相",hex:e=>`${s(e)}十六进制色值`,presets:"预设",clear:"无颜色"},imageFocus:{picture:(e,o)=>`${e}:${o}`,hint:"拖动图片上的圆点,或用方向键移动。按住 Shift 可移动更多。",noImage:"请先选择图片,目前还没有可设置焦点的图片。"},tree:{empty:"暂无内容",dropHere:"拖放到此处",dragHint:"拖动以移动",moveHint:"按 Alt+向上键或 Alt+向下键可移动此项",insertHere:"在此处插入"},layout:{desktop:"桌面",sidebar:"侧边栏",switchToDesktop:"切换到桌面模式",switchToSidebar:"切换到侧边栏模式",collapseSidebar:"收起侧边栏",expandSidebar:"展开侧边栏",search:"搜索…",navLabel:"主菜单",openWindows:"已打开的窗口",pageResult:"页面",accountMenu:e=>`${s(e)}的账户菜单`,profile:"个人资料",notifications:"通知",reportIssue:"建议与问题反馈",signOut:"退出登录",signOutTitle:"退出登录",signOutMessage:"您确定要退出登录吗?重新登录后将重新打开所有窗口。"},markdown:{screenshot:"截图"},severity:{success:"正常",warning:"警告",danger:"严重",unrecognised:e=>`未识别的严重级别${l(e)}`},meter:{noData:"无数据",warningAt:e=>`警告 ≥ ${n(e)}`,criticalAt:e=>`严重 ≥ ${n(e)}`,noReading:"无读数",noBudget:"无预算",ofBudget:e=>`预算的 ${e}`,budget:"预算",hoursMinutes:(e,o)=>`${n(e)} 小时 ${n(o)} 分`,minutesSeconds:(e,o)=>`${n(e)} 分 ${n(o)} 秒`,seconds:e=>`${n(e)} 秒`},charts:{showTable:"以表格显示数据",loading:"正在加载图表数据",noData:"此时间段内无数据。",windowStart:"时间段起点",windowEnd:"时间段终点",window:(e,o,t)=>`时间段:正在显示 ${e} 至 ${o},共 ${n(t)} 个区间`,overIntervals:(e,o)=>`${e.join("、")},共 ${n(o)} 个区间`,acrossCategories:(e,o)=>`${e.join("、")},共 ${n(o)} 个类别`,acrossMeasures:(e,o)=>`${e.join("、")},共 ${n(o)} 项指标`,breakdown:(e,o)=>`${s(e)}的构成,共 ${n(o)} 个部分`,funnel:(e,o,t)=>`漏斗图,共 ${n(e)} 个阶段,从${d(o)}到${l(t)}`,radialTrack:e=>`${n(e)} 个类别,以同心环占比显示`,radialCycle:e=>`${n(e)} 个类别,按环形周期排列`,tableFrom:"来源",tableTo:"去向",tableItem:"项目",tableLevel:"层级",tableSeries:"系列",inBucket:e=>`此区间内共 ${e}`,inCategory:e=>`此类别内共 ${e}`,value:"数值",share:"占比",count:"数量",flow:"流量",totalFlow:"总流量",throughput:"通过量",open:"开盘",high:"最高",low:"最低",close:"收盘",maximum:"最大值",q3:"Q3",median:"中位数",q1:"Q1",minimum:"最小值",distribution:"分布",fiveNumber:(e,o)=>`${e}:${n(o)} 个类别的五数概括`,outliers:e=>`${n(e)} 个离群值超出须线范围`,price:"价格",ohlc:(e,o)=>`${e}:${n(o)} 个周期的开盘、最高、最低和收盘`,closedAbove:"收盘高于开盘",closedBelow:"收盘低于开盘",noFlows:"没有可绘制的流量。",chord:e=>`${n(e)} 个参与方之间的流量`,noStages:"没有可绘制的阶段。",ofFirstStage:"占首阶段",droppedHere:"此处流失",intensity:"强度",noActivity:"此时间段内无活动。",heatmap:(e,o,t)=>`${e},${n(o)} 行 ${n(t)} 列`,countAxis:"数量",histogram:(e,o,t)=>`${e}:${n(t)} 个观测值,分为 ${n(o)} 组`,observations:"观测值",notEnough:"符合条件的请求不足,无法判断。",objectiveMet:e=>`已达到目标 ${e}`,objectiveMissed:e=>`未达到目标 ${e}`,nothingToPlot:"没有可绘制的数据。",nothingToCompare:"没有可比较的数据。",other:"其他",nothingToBreakDown:"没有可细分的数据。",range:"范围",rangeLabel:(e,o)=>`${e}:${n(o)} 个类别的最低值和最高值`,nothingToRank:"此时间段内没有可排名的数据。",emphasised:"(重点)",sankey:(e,o)=>`${n(e)} 个节点之间的流量,共 ${n(o)} 条连接`,noObservations:"此时间段内无观测值。",xAxis:"x",yAxis:"y",size:"大小",scatter:(e,o,t)=>`${e.join("、")}:${s(o)}与${d(t)}的关系`,outsideRange:e=>`${n(e)} 个点超出显示范围`,waterfall:(e,o,t)=>`瀑布图,共 ${n(e)} 步,从${d(o)}到${l(t)}`,balance:"余额",increase:"增加",decrease:"减少",runningTotal:"累计",sunburst:(e,o)=>`${s(e)}的层级构成,共 ${n(o)} 层`,treemap:e=>`矩形树图,共 ${n(e)} 项`,trendUp:"上升",trendDown:"下降",trendFlat:"持平"},timeline:{days:e=>`${r(e)} 天`,daysToToday:e=>`距今 ${r(e)} 天`,notReached:"尚未达成",next:"下一项",more:e=>`还有 ${n(e)} 项`,today:"今天",todayTitle:e=>`今天:${e}`,open:e=>`打开${l(e)}`,openButton:"打开",scrub:"拖动浏览时间线",alsoToCome:e=>`后续还有:${e.join("、")}`,start:e=>`开始 · ${e}`,events:(e,o)=>`${n(e)} 个事件 · ${o.join("、")}`,started:e=>`开始于 ${e}`,duration:e=>`${r(e)} 天`,reached:(e,o)=>`已达成 ${n(e)} / ${n(o)} 个里程碑`,milestones:e=>`${s(e)}里程碑`},production:{heading:"生产进度",start:"开始",estimated:"预计",estimatedCompletion:"预计完成",estDone:"预计完工",play:"播放",pause:"暂停",playTitle:"逐份报告播放时间线",backTo:e=>`返回${l(e)}`,showing:e=>`正在显示 ${e}`,overall:e=>`总体 ${p(e,0)}`,inStock:e=>`库存 ${r(e)} 件`,noReport:"尚未提交生产报告",leadTime:e=>`交货周期 ${r(e)} 天`,report:"生产报告",shipment:"发货",inspection:"检验",invoice:"发票",scrub:"拖动浏览生产时间线",label:(e,o)=>`生产报告和事件,${e} 至 ${o}`},containers:{items:e=>`${n(e)} 项`,pieces:e=>`${n(e)} 件`,split:(e,o)=>`(指令 ${n(e)} / 已装 ${n(o)})`,added:(e,o)=>`新增 ${n(e)} 项(${n(o)} 件)`,fill:(e,o)=>`${c(e,1)} / ${n(o)} m³`,total:"合计:",instructed:e=>`指令 ${c(e,2)} m³`,loaded:e=>`已装 ${c(e,2)} m³`,volume:e=>`${c(e,2)} m³`,noVolume:"体积:暂无(这些料号没有体积数据)"},toast:{notification:"通知"},map:{failed:"无法在此处绘制地图。列表中包含地图显示的全部内容。",approximate:e=>`${e},大致位置`,approximateTitle:e=>`${e}(大致位置)`,places:()=>"地点",group:(e,o)=>`此处有 ${n(e)} 个${l(o)}`,stops:e=>`第 ${e} 站`,closeBy:(e,o)=>`附近还有 ${n(e)} 个${l(o)},放大地图后显示`,spread:"点按以分开查看",cycle:"这些地点位于同一位置:点按查看下一个",fullScreen:"全屏",leaveFullScreen:"退出全屏",chosen:e=>`${e},已在地图上选中`,closeCard:"关闭",openRecord:"打开"},pdf:{previousPage:"上一页",nextPage:"下一页",pageOf:(e,o)=>`${n(e)} / ${n(o)}`,zoomOut:"缩小",zoomIn:"放大",zoom:"缩放",fitWidth:"适合宽度",fitPage:"适合页面",fit:"适应",fitHint:"适应窗格:随窗格大小变化,直到您手动缩放",print:"打印",download:"下载",email:"发送邮件",loading:"正在加载 PDF…",loadFailed:"PDF 加载失败",allowPopups:"请允许弹出窗口以便打印"},loading:{label:"加载中…"},language:{title:"语言",description:"菜单、标签和消息所使用的语言。",reloadNote:"更改语言后页面将重新加载。"},entityList:{open:"打开",copy:"复制",copyColumn:e=>`复制${l(e)}`,copyRows:e=>1===e?"复制此行":`复制 ${n(e)} 行`,exportSelected:"将所选导出为 CSV",selectAll:"全选",selectAllLoaded:e=>`全选已加载的 ${n(e)} 项`,clearSelection:"清除所选",refresh:"刷新",copiedText:"文本",copiedRows:e=>1===e?"该行":`${n(e)} 行`,exported:e=>`已导出 ${n(e)} 行。`,exportTruncated:(e,o)=>`仅导出了 ${n(o)} 行中的 ${n(e)} 行。服务器限制了本次导出,文件不完整。`,exportTruncatedUnknown:e=>`仅导出了 ${n(e)} 行中的一部分。服务器限制了本次导出,文件不完整。`,exportFailed:"CSV 导出失败。"},columns:{choose:"选择列",heading:"列",reset:"重置",saveDefault:"保存为所有用户的默认设置",savedDefault:"已保存为默认设置",select:"选择",selectDone:"完成",showSelection:"显示选择列",hideSelection:"隐藏选择列"},record:{loading:"正在加载记录…",signInRequired:"需要登录",signInBody:"您的会话可能已过期。请重新登录以打开此记录。",notFound:"未找到记录",loadFailed:"无法加载记录",checkConnection:"请检查网络连接后重试。",rejected:"服务器拒绝了此请求。",retry:"重试"},password:{current:"当前密码",newPassword:"新密码",confirm:"确认密码",submit:"修改密码",submitting:"修改中…",done:"完成",currentRequired:"请输入当前密码。",tooShort:e=>`新密码至少需要 ${n(e)} 个字符。`,mismatch:"两次输入的密码不一致。",failed:"修改密码失败。",changed:"您的密码已修改成功。"},pdfAction:{label:"PDF",loading:"加载中…",preview:"预览",download:"下载",email:"通过邮件发送",downloaded:e=>`${s(e)}已下载。`,tookTooLong:e=>`${s(e)}加载时间过长,请重试。`,previewLoading:"正在加载 PDF",previewTookTooLong:"此文档加载时间过长。请关闭此窗口后重试。",previewFailed:"PDF 加载失败。"},undo:{undo:"撤销",redo:"重做",undoStep:(e,o)=>`撤销${l(e)}(${o})`,redoStep:(e,o)=>`重做${l(e)}(${o})`,nothingToUndo:"没有可撤销的操作",nothingToRedo:"没有可重做的操作"},sounds:{title:"声音",enable:"音效",autosave:"更改会自动保存",choice:(e,o)=>`${e}:${o}`,packClassic:"经典",packMinimal:"极简",packRetro:"复古",packSoft:"柔和",packArcade:"街机",packSilent:"静音",eventClick:"点击",eventSuccess:"成功",eventError:"错误",eventNotification:"通知",eventStartup:"启动",eventTimerDone:"计时结束",eventLogout:"退出登录"},serverStatus:{connected:"已连接",disconnected:"已断开",checking:"检测中…",lastOkTitle:(e,o)=>`${e} · 上次正常 ${o}`,details:"服务器连接详情",lastPoll:e=>`上次轮询:${e}。`,lastFailure:e=>`上次失败:${e}。`,firstPoll:"首次轮询进行中…",server:"服务器",protocol:"协议",browser:"浏览器",online:"在线",offline:"离线",lastOk:"上次正常",lastFail:"上次失败",latency:"延迟",poll:"轮询",pollEvery:e=>`每 ${n(e)} 秒`,session:"会话",user:"用户",notSignedIn:"未登录",role:"角色",build:"构建",app:"应用",userAgent:"用户代理",pingHint:"点击 ↻ 立即检测",refresh:"刷新"},bulkImport:{description:"可从电子表格粘贴、直接输入或上传 CSV。行无需按顺序排列,系统会自动匹配。列表中没有的值将添加到末尾。留空的字段不受影响。",lines:e=>`${n(e)} 行`,total:(e,o)=>`${e}:${o}`,clear:"清除",upload:"上传 CSV",importLines:e=>`导入 ${n(e)} 行`,importing:"导入中…",importFailed:"导入失败。",enterAtLeastOne:(e,o)=>`请至少输入一个${l(o)||"值"}。`,allSkipped:"所有行均已跳过。",cancel:"取消",mapTitle:"将 CSV 列映射到字段",skip:"— 跳过 —",columnOption:(e,o)=>`第 ${n(e)} 列(例如 ${o})`,rowsDetected:e=>`检测到 ${n(e)} 行`,confirmMapping:"确认映射",duplicatesTitle:"检测到重复项",duplicatesFound:e=>`导入内容中有 ${n(e)} 个值出现了多次。请先选择每个值的处理方式,然后再继续。`,occurrences:e=>`出现 ${n(e)} 次`,keepFirst:"保留第一个",keepLast:"保留最后一个",keepAll:"全部保留",skipAll:"全部跳过",keptDropped:(e,o)=>`保留 ${n(e)} · 丢弃 ${n(o)}`,proceed:"继续",duplicatesMerged:e=>`有 ${n(e)} 个值出现了多次。每个值已合并为一行,数量已累加,请检查后再继续。`,mergedFrom:"合并自",mergedRows:e=>`${n(e)} 行`,mergeSummary:(e,o)=>`${n(e)} 个重复行 → 合并为 ${n(o)} 行`},preview:{windowTitle:e=>`${e} - 预览`,untitled:"未命名",open:"打开",formats:"PDF · DXF · 3D · 图片",dropHere:e=>`将文件拖放到此处,或点击${e}。`,supportedFormats:"支持的格式",formatPdf:"多页文档查看器",formatDxf:e=>`矢量 CAD 图纸(可选依赖 ${e})`,format3d:e=>`3D 模型(可选依赖 ${e})`,formatImage:"位图图片",dwgNote:"DWG 文件需先在服务器端转换为 PDF 或 DXF。",dropToOpen:"松开以打开",dwgUnsupported:"DWG 文件需要在服务器端转换。请先转换为 PDF 或 DXF。",unsupportedType:e=>e?`不支持的文件类型:.${e}`:"不支持的文件类型:未知",converting:"正在转换文件",download:"下载",email:"发送邮件",howToNavigate:"操作方法",stopMeasuring:"停止测量(Esc)",scrollToZoom:"滚动缩放",closePanel:"关闭",annotate:"标注",annotateHint:"标注此图片",view:"查看",viewHint:"返回查看器",copy:"复制",save:"保存",imageFailed:"图片加载失败。",downloadFailed:"下载失败:无法访问该文件。"},drawing:{loading:"正在加载图纸…",notInstalled:"此应用未安装 dxf-viewer。",renderFailed:"DXF 渲染失败。",layers:"图层",layersHint:"切换图层可见性",allLayers:"全部",noLayers:"无",measure:"测量",measureHint:"测量距离:在图纸上点击两点,或在下方输入 DI / DIM",auto:"自动",autoHint:"自动:等同 AutoCAD 的 DIMLINEAR,测量两个拾取点之间 ΔX 与 ΔY 中较大的一个",horizontalHint:"水平:两个拾取点之间沿 X 轴的距离(AutoCAD DIMLINEAR 水平)",verticalHint:"垂直:两个拾取点之间沿 Y 轴的距离(AutoCAD DIMLINEAR 垂直)",point:"两点",pointHint:"两点:两个拾取点之间的直线(欧氏)距离(AutoCAD DIST)",fixX:"固定 Δx",fixY:"固定 Δy",fixHint:"将第二个拾取点在该轴上的坐标锁定为第一个拾取点加上此值(mm)。此时显示的测量值为正交方向的距离。",clearFixed:"清除固定距离",horizontalDistance:e=>"两个拾取点之间的水平距离(Δx)"+(e?":自动模式已判定为 X 轴":""),verticalDistance:e=>"两个拾取点之间的垂直距离(Δy)"+(e?":自动模式已判定为 Y 轴":""),straightDistance:"两个拾取点之间的直线距离",fit:"适应",fitHint:"使图纸适应视图",dragToPan:"拖动平移",fitToReset:"点“适应”重置",typeToMeasure:e=>`输入 ${e} 进行测量`,commandPlaceholder:"输入命令:DI、DIM、H、V、Z、LA(输入 ? 查看帮助)",commandHelp:"命令:DI 距离 · DIM/DLI 线性标注 · H / V 强制轴向 · <数值> 锁定 Δ · U 撤销拾取 · Z 适应 · LA 图层 · Esc 退出",echoDistance:(e,o,t)=>`距离 = ${e} ΔX = ${o} ΔY = ${t}`,echoLinear:(e,o)=>`线性标注 = ${e}(${o})`,echoLocked:(e,o,t,a)=>`${e} = ${o},${t} 锁定为 ${a}`,axisLocked:(e,o)=>`${e} 已锁定为 ${o},标签显示的是正交方向的距离`,fixedCleared:"已清除固定距离。",fixedNeedsAxis:"固定距离仅适用于 H 或 V 模式,请先输入 H 或 V。",echoDist:"DIST:点击两点;直线距离(按 Esc 退出)",echoDimLinear:"DIMLINEAR:点击两点;测量 ΔX 与 ΔY 中较大的一个(输入 H / V 可强制轴向)",echoHorizontal:"水平:两个拾取点之间的 ΔX",echoVertical:"垂直:两个拾取点之间的 ΔY",echoAuto:"自动(DIMLINEAR):沿两个拾取点的主轴方向测量",measureOn:"测量已开启,请点击两点。",measureOff:"测量已关闭。",pickRemoved:"已移除上一个拾取点。",zoomExtents:"已缩放至全图。",layersToggled:"已切换图层面板。",measurementCleared:"已清除测量结果。",readOnly:e=>`${e} 是绘图命令,而“预览”是只读查看器。测量命令:DI、DIM、H、V(输入 ? 查看帮助)`,unknownCommand:e=>`未知命令“${e}”,请尝试 DI、DIM、H、V、Z、LA(输入 ? 查看帮助)`,cancelled:"*取消*"},model:{loading:"正在加载 3D 模型…",stepNote:"STEP 文件首次使用时需加载 OpenCascade WASM(约 5 MB)。",notInstalled:"此应用未安装 online-3d-viewer。安装后即可查看 3D 文件。",loadFailed:"3D 模型加载失败。",rootNode:"根节点",node:"节点",collapse:"收起",expand:"展开",fitToView:"适应视图",hide:"隐藏",show:"显示",isometric:"轴测",isometricView:"等轴测视图",top:"俯视",topView:"俯视图",front:"前视",frontView:"前视图",side:"侧视",sideView:"侧视图",perspective:"透视",orthographic:"正交",toPerspective:"切换到透视视图",toOrthographic:"切换到正交视图",snapshot:"将快照保存为 PNG",measureHint:"测量距离:在模型上点击两点",point:"两点",pointHint:"两点:测量两个拾取点之间的直线距离",perpendicularHint:"垂直:拾取两个面,测量它们之间的垂直间距",straightDistance:"两个拾取点之间的直线距离",perpendicularDistance:"两个拾取面之间的垂直距离",meshesHint:"显示或隐藏网格面板",displayHint:"显示或隐藏显示设置面板",downloadOriginal:"下载原始文件",meshes:"网格",readingModel:"正在读取模型…",noStructure:"无可用结构",allVisible:"全部可见",hiddenCount:e=>`已隐藏 ${n(e)} 个`,dragToRotate:"拖动旋转",rightDragToPan:"右键拖动平移",display:"模型显示",backgroundColor:"背景颜色",showEdges:"显示边线",edgeColor:"边线颜色",edgeThreshold:"边线阈值",sectionView:"剖面视图",angle:"角度",axis:"轴",flipHint:"翻转剖切方向",flip:"翻转 →",flipped:"← 已翻转",position:"位置",resetDisplay:"恢复默认"},annotator:{toolSelect:"选择 / 移动",toolDraw:"画笔 / 手绘",toolRect:"矩形",toolEllipse:"椭圆",toolArrow:"箭头",toolMosaic:"马赛克",toolText:"文字",toolCrop:"裁剪",weight:"粗细",radius:"圆角",size:"大小",padding:"边距",fontSystem:"系统",fontSerif:"衬线",fontMono:"等宽",fontCursive:"手写",bold:"加粗",boldLetter:"B",italic:"斜体",italicLetter:"I",underline:"下划线",underlineLetter:"U",border:"边框",borderColor:"文本框边框颜色",addBorder:"添加边框",removeBorder:"移除边框",fill:"填充",fillColor:"文本框背景颜色",addFill:"添加背景填充",removeFill:"移除填充",add:"添加",zoomOut:"缩小",zoomIn:"放大",fit:"适应",fitHint:"适应区域",undo:"撤销",applyCrop:"应用裁剪",cancel:"取消",apply:"应用",hintSelected:"拖动可移动。拖动边角可调整大小。按 Delete / Backspace 可删除。点击外部可取消选择。",hintSelect:"点按形状即可选中。双击文字即可编辑。",hintText:"点击以放置文字标签。",hintCrop:"拖出一个矩形以设定裁剪区域。",hintDraw:"拖动以自由绘制。",hintShape:"在图片上拖动以绘制。",textPlaceholder:"输入后按 Enter…",loadFailed:"图片加载失败",exportFailed:"导出失败",clipboardUnsupported:"此浏览器不支持将图片复制到剪贴板",copyFailed:"复制失败",copied:"已复制到剪贴板",copyRefused:"复制失败(没有剪贴板权限?)"},attachment:{fallbackName:"附件",noLink:"此附件没有下载链接。",spreadsheetFailed:"无法打开电子表格,将改为直接打开文件。",workbookUnavailable:"此文件类型不支持电子表格预览,将改为直接打开文件。",noViewer:"没有可在此显示该文件的查看器,将在应用外打开。",loading:"正在加载文件",loadFailed:"文件加载失败。"},aboutApp:{title:e=>`关于${l(e)}`,version:e=>`版本 ${e}`,partOf:e=>`属于 ${e} 桌面环境`,shellVersion:e=>`外壳 v${e}`,spreadsheet:"多工作表电子表格编辑器,支持导入和导出 CSV / TSV。",notepad:"带颜色标记的便笺,支持清单、桌面便签和实体自动链接。",documents:"信纸版面的编辑器,适用于 Word 文档和纯文本文件,支持图片、列表和对齐。",preview:"PDF 文档、图片、DXF 图纸和 3D 模型的查看器,支持带对象捕捉的 CAD 式测量和类似 AutoCAD 的命令栏。",files:"个人文件管理器,支持文件夹、上传、配额、回收站和桌面快捷文件夹。",browser:"简洁的网页浏览器,带书签、历史记录和导航栏。"}}}var p=c;export{i as ZH_HANS_REVIEWED_SECTIONS,p as default,c as zhHansStrings};
package/dist/map/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import{Button_default as e}from"../chunk-OGXU7QFW.js";import{rootIsDark as t,ROOT_THEME_ATTRIBUTES as n}from"../chunk-HZZNJHRH.js";import"../chunk-X4FJ54PP.js";import"../chunk-D65T4H6J.js";import{CollapseFallback as r,ExpandFallback as o,CloseFallback as a}from"../chunk-XUF7VW4U.js";import{useShellStrings as l}from"../chunk-J3LIIIHJ.js";import"../chunk-C3QOHMR6.js";import{Icon as i}from"../chunk-YKZHOXI4.js";import{useRef as s,useState as c,useEffect as u,useCallback as d,useMemo as p,useSyncExternalStore as m}from"react";import{createPortal as h}from"react-dom";import{jsxs as g,jsx as f,Fragment as y}from"react/jsx-runtime";import{useQuery as b}from"@tanstack/react-query";var x="maplibregl-compact-show";function v(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(x)&&(e.classList.remove(x),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var w=20,k=12,N=480,M={center:[0,0],left:[w,0],right:[-20,0],top:[0,w],"top-left":[0,w],"top-right":[0,w],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},C=(e,t=12)=>Math.max(0,Math.floor(e-t-k-w-10-16));function L(e,t,n,r=12){const o=e.y-w-r,a=n.height-e.y-w-k,l=t.height<=o||t.height>a&&o>=a,i=l?Math.max(0,t.height-o):-Math.max(0,t.height-a);let s="",c=0;return e.x-t.width/2<k?(s="-left",c=Math.max(0,k-e.x)):e.x+t.width/2>n.width-k&&(s="-right",c=-Math.max(0,e.x-(n.width-k))),{anchor:`${l?"bottom":"top"}${s}`,move:{x:c,y:i}}}var $="maplibre-gl-worker.mjs",E=e=>`/maplibre-gl/${e}/${$}`,S=null;function j(){return S??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(E(e.getVersion())),e)).catch(e=>{throw S=null,e}),S}var z=24,A=28,O=29;function R(e){const t=[...e].sort((e,t)=>e-t),n=[];for(let e=0;e<t.length;){let r=e;for(;r+1<t.length&&t[r+1]===t[r]+1;)r++;n.push(r===e?String(t[e]):`${t[e]}–${t[r]}`),e=r+1}return n.join(", ")}function T(e){const t=Math.max(A,12+8*e.length);return t+t%2}var B=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function W(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var F=e=>B(e.x,e.y,e.width,e.height);function H(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(W(F(e[t]),F(e[n])))return[e[t],e[n]];return null}function K(e,t=[]){const n=[],r=e=>t.some(t=>W(t,e));let o=e.filter(e=>null!==e.stop).sort((e,t)=>e.stop-t.stop).map(e=>({keys:[e.key],stops:[e.stop],x:e.x,y:e.y,width:A,height:A,under:0}));for(let e=H(o);e;e=H(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=T(R(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(F(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=B(t.x,t.y,z,z),l=o.find(t=>W(F(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const i=a.find(t=>W(F(t),e));i?i.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:z,height:z,under:0})}return{groups:[...o,...a],hidden:n}}function q(e,t,n){let r=-1/0;for(const o of t){const t=Math.max(Math.abs(o.x-e.x),Math.abs(o.y-e.y));r=Math.max(r,0===t?1/0:n+Math.log2(29/t))}return r}function _(e){const t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:n}),()=>t.disconnect()}var P=t;var I="routes",Z=["routes-road","routes-estimate"];function D(e){const t=document.createElement("span");t.style.display="none",t.style.color=e,document.body.appendChild(t);const n=getComputedStyle(t).color||"#2563eb";return t.remove(),J(n)}function J(e){const t=document.createElement("canvas").getContext("2d");if(!t)return"#2563eb";t.fillStyle="#2563eb",t.fillStyle=e,t.fillRect(0,0,1,1);const[n,r,o]=t.getImageData(0,0,1,1).data;return`rgb(${n}, ${r}, ${o})`}var U={light:"https://tiles.openfreemap.org/styles/positron",dark:"https://tiles.openfreemap.org/styles/dark"},G={center:[30,20],zoom:1},X="ring-2 ring-gray-900 ring-offset-2";var V="var(--color-gray-600, #4b5563)",Q="http://www.w3.org/2000/svg",Y=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,ee=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function te(e){return e.split(/\s+/).some(e=>{const t=e.search(/[[(]/),n=t<0?e:e.slice(0,t),r=e.slice(n.lastIndexOf(":")+1);return r.startsWith("border-")&&!ee.test(r.slice(7))})}var ne=(...e)=>e.filter(Boolean).join(" ");function re(e){const t=document.createElementNS(Q,"svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("aria-hidden","true");for(const n of e){const e=document.createElementNS(Q,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function oe(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}var ae=(e,t)=>ne("relative grid place-items-center rounded-full cursor-pointer",t&&(null!=e.stop?"h-7 w-7":"h-6 w-6"));function le(e,t,n,r){const o=t&&!r&&null==e.stop&&!e.dot;return ne("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-md transition-transform motion-reduce:transition-none",!te(e.tone)&&"border-white",e.tone,e.dot?"h-4 w-4 opacity-80":null!=e.stop?"h-7 w-7 text-xs ring-2 ring-gray-900":o?"h-8 w-8 text-xs [&_svg]:h-4 [&_svg]:w-4":"h-6 w-6 text-[10px] [&_svg]:h-3.5 [&_svg]:w-3.5",t&&(o?"ring-2 ring-gray-900 ring-offset-1":X),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")}var ie=e=>ne("grid place-items-center border-2 px-0.5 text-xs font-semibold leading-none shadow-sm",e.stop?"h-7 min-w-7":"h-6 min-w-6",!te(e.tone??"")&&"border-white",e.tone??"bg-gray-900 text-white");function se({pins:t,selectedKey:n,focus:r,onSelect:o,ariaLabel:a,className:i="",children:p,routes:y,fitTo:b,attribution:x,marks:w,groupCrowded:k=!1,noun:N,highlightKey:$=null,picking:E=!1,onPick:S,card:O,cardMinMapWidth:T=480,fullScreen:B,initialView:W=G,cooperativeGestures:F=!1}){const H=l().map,Q=s(null),ee=s(null),te=s(null),se=s(null),de=s([]),pe=s(/* @__PURE__ */new Map),me=s(/* @__PURE__ */new Map),he=s(/* @__PURE__ */new Map),ge=s(null),fe=s(/* @__PURE__ */new Map),ye=s(""),[be,xe]=c(!1),[ve,we]=c(!1),ke=m(_,P,()=>!1)?"dark":"light",Ne=s({onSelect:o,onPick:S,picking:E,pins:t,selectedKey:n,highlightKey:$,groupCrowded:k,strings:H,noun:N});u(()=>{Ne.current={onSelect:o,onPick:S,picking:E,pins:t,selectedKey:n,highlightKey:$,groupCrowded:k,strings:H,noun:N}});const Me=d(()=>{const e=te.current,{pins:t,selectedKey:n}=Ne.current,r=n?t.find(e=>e.key===n):void 0;e&&r&&!e.getBounds().contains([r.lng,r.lat])&&e.easeTo({center:[r.lng,r.lat],duration:Y()?0:400})},[]),Ce=s(!1),Le=d((e,t)=>{const n=te.current,r=se.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(Ne.current.selectedKey??"");return void Ne.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>pe.current.get(e).pin),l=new r.LngLatBounds([a[0].lng,a[0].lat],[a[0].lng,a[0].lat]);for(const e of a)l.extend([e.lng,e.lat]);const i=a.map(e=>n.project([e.lng,e.lat])),s=Math.max(...i.map((e,t)=>q(e,i.filter((e,n)=>n!==t),o))),{clientWidth:c,clientHeight:u}=n.getContainer(),d=n.cameraForBounds(l,{padding:Math.min(64,c/4,u/4)})?.zoom??18,p=document.activeElement===t;Ce.current=!0,n.once("moveend",()=>{if(Ce.current=!1,!p)return;const e=a[0].key,t=pe.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...me.current.values()].find(t=>t.keys.includes(e))?.button;n?.focus({preventScroll:!0})}),n.easeTo({center:l.getCenter(),zoom:Math.min(18,Math.max(o+1,Math.min(d,s))),duration:Y()?0:600})},[]),$e=d(()=>{const e=te.current,t=se.current;if(!e||!t||!Q.current||Ce.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l}=Ne.current;for(const[e,t]of pe.current){const a=le(t.pin,e===n,e===r,o);t.mark.className!==a&&(t.mark.className=a);const l=e===n?"1":"";t.button.style.zIndex!==l&&(t.button.style.zIndex=l)}let i=null;if(o){const r=e.getContainer().getBoundingClientRect(),o=[...Q.current.querySelectorAll("a[href], button, input, select, textarea, summary, [role='button'], [tabindex]:not([tabindex='-1'])")].filter(e=>!e.closest("[data-pin], [data-pin-group], .maplibregl-canvas")).map(e=>{const t=e.getBoundingClientRect(),n=e.closest("[data-map-card]")?.getBoundingClientRect()??t;return{left:Math.max(t.left,n.left)-r.left,top:Math.max(t.top,n.top)-r.top,right:Math.min(t.right,n.right)-r.left,bottom:Math.min(t.bottom,n.bottom)-r.top}}).filter(e=>e.right>e.left&&e.bottom>e.top);i=K([...pe.current.values()].map(({pin:t})=>{const n=e.project([t.lng,t.lat]);return{key:t.key,x:n.x,y:n.y,stop:t.stop??null}}),o);const s=e=>(l??a.places)(e),c=e.getZoom()<17.5?a.spread:a.cycle,u=(e,t)=>{const n=t?"":"none";e.style.display!==n&&(e.style.display=n)},d=/* @__PURE__ */new Map;for(const r of i.groups){const o=r.under>0?a.closeBy(r.under,s(r.under)):null,l=1===r.keys.length?pe.current.get(r.keys[0]):null;if(l){u(l.button,!0),l.button.setAttribute("aria-label",o?`${l.name}; ${o}`:l.name),l.button.title=o?`${l.title}\n${o}`:l.title;continue}for(const e of r.keys)u(pe.current.get(e).button,!1);const i=r.keys.join(" ");let p=me.current.get(i);if(!p){const n=document.createElement("button");n.type="button",n.dataset.pinGroup="",n.className="grid place-items-center rounded-full cursor-pointer",n.append(document.createElement("span"));const o=pe.current.get(r.keys[0]).pin,a={button:n,keys:r.keys,marker:new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)};n.addEventListener("click",e=>{e.stopPropagation(),Le(a.keys,n)}),p=a}p.keys=r.keys;const m=r.keys.map(e=>pe.current.get(e)),h=r.stops.length>0?R(r.stops):String(m.length),g=r.stops.length>0?a.stops(h):a.group(m.length,s(m.length));p.button.style.width=`${r.width}px`,p.button.style.height=`${r.height}px`,p.button.setAttribute("aria-label",`${g}: ${m.map(e=>e.pin.label).join("; ")}. ${c}${o?`; ${o}`:""}.`),p.button.title=[`${g}:`,...m.map(e=>e.title),...o?[o]:[],c].join("\n");const f=p.button.firstElementChild;f.textContent=h;const y=ne("grid place-items-center rounded-full border-2 border-gray-700 bg-white font-semibold leading-none text-gray-900 shadow-sm",r.stops.length>0?"h-7 w-full px-1 text-xs ring-2 ring-gray-900":m.every(e=>e.pin.dot)?"h-5 w-5 text-[0.6rem]":"h-6 w-6 text-[0.7rem]",null!=n&&r.keys.includes(n)&&X);f.className!==y&&(f.className=y),d.set(i,p)}for(const e of i.hidden)u(pe.current.get(e).button,!1);for(const[e,t]of me.current)d.has(e)||t.marker.remove();me.current=d}if(ge.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?pe.current.get(r):void 0,n=r?he.current.get(r):void 0,o=e?{at:pe.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?A:z),height:t.button.offsetHeight||(null!=t.pin.stop?A:z)}:n?{at:n.mark,width:n.element.offsetWidth||A,height:n.element.offsetHeight||A}:null,a=ge.current.getElement();a.style.display=o?"":"none",o&&(ge.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Le]);u(()=>{if($e(),!Q.current)return;const e=new ResizeObserver(()=>$e());e.observe(Q.current);for(const t of Q.current.children)t.contains(ee.current)||e.observe(t);return()=>e.disconnect()}),u(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await j();if(e||!ee.current)return;se.current=o,t=new o.Map({container:ee.current,style:U[ke],center:W.center,zoom:W.zoom,attributionControl:x?{compact:!0,customAttribution:x}:{compact:!0},dragRotate:!1,pitchWithRotate:!1,touchPitch:!1,maxPitch:0,cooperativeGestures:"coarse"===F?window.matchMedia("(pointer: coarse)").matches:F}),t.touchZoomRotate.disableRotation(),t.keyboard.disableRotation(),t.addControl(new o.NavigationControl({showCompass:!1}),"top-right");const a=document.createElement("div");a.dataset.pinRing="",a.setAttribute("aria-hidden","true"),a.className="pointer-events-none rounded-full border-2 border-gray-900 bg-gray-900/15 shadow-[0_0_0_2px_var(--color-white,#fff)]",a.style.display="none",ge.current=new o.Marker({element:a,anchor:"center"}).setLngLat(W.center).addTo(t),t.on("click",e=>{Ne.current.picking&&Ne.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",$e),t.on("moveend",$e),t.on("resize",$e),t.on("error",e=>console.warn("[map]",e.error?.message)),r=v(ee.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),Me()}),n.observe(ee.current),te.current=t,xe(!0)}catch(t){console.error("[map] could not start",t),e||we(!0)}})(),()=>{e=!0,n?.disconnect(),r(),de.current.forEach(e=>e.remove()),de.current=[],me.current.forEach(e=>e.marker.remove()),me.current.clear(),ge.current?.remove(),ge.current=null,t?.remove(),te.current=null}},[]);const Ee=s(ke);u(()=>{be&&te.current&&Ee.current!==ke&&(Ee.current=ke,te.current.setStyle(U[ke]))},[be,ke]),u(()=>{const e=te.current,n=se.current;if(!be||!e||!n)return;de.current.forEach(e=>e.remove()),de.current=[],me.current.forEach(e=>e.marker.remove()),me.current.clear(),pe.current.clear(),he.current.clear();for(const e of fe.current.keys())t.some(t=>t.key===e)||fe.current.delete(e);const r=Ne.current.strings;for(const o of t){const t=document.createElement("button");t.type="button",t.dataset.pin=o.key,t.className=ae(o,k);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);t.setAttribute("aria-label",a),t.title=l;const i=document.createElement("span");if(oe(i,o.data),o.dot);else if(null!=o.iconNode){const e=fe.current.get(o.key);e&&i.append(e)}else o.icon?.length?i.append(re(o.icon)):i.textContent=null!=o.stop?String(o.stop):o.glyph;if(t.append(i),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=ne("absolute -right-2 -top-2 grid h-4 min-w-4 place-items-center rounded-full px-0.5 text-[9px] font-semibold leading-none shadow",o.badgeTone??"bg-white text-gray-900"),e.textContent=o.badge,t.appendChild(e)}t.addEventListener("click",e=>{e.stopPropagation(),Ne.current.onSelect(o.key)}),de.current.push(new n.Marker({element:t,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),pe.current.set(o.key,{pin:o,button:t,mark:i,name:a,title:l})}for(const t of w??[]){const r=document.createElement("div");r.dataset.mapMark=t.key,oe(r,t.data),r.className=ie(t),r.textContent=t.text,r.title=t.title??t.label,r.setAttribute("role","img"),r.setAttribute("aria-label",t.label),de.current.push(new n.Marker({element:r,anchor:"center"}).setLngLat([t.lng,t.lat]).addTo(e)),he.current.set(t.key,{mark:t,element:r})}$e()},[be,t,w,k,$e]),u(()=>{be&&$e()},[be,n,$,$e]),u(()=>{if(!be||!n)return;const e=requestAnimationFrame(Me);return()=>cancelAnimationFrame(e)},[be,n,Me]),u(()=>{const e=te.current,n=se.current,r=b?[...t,...w??[]].filter(e=>b.includes(e.key)):t;if(!be||!e||!n||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(ye.current===o)return;const a=""===ye.current;if(ye.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new n.LngLatBounds([r[0].lng,r[0].lat],[r[0].lng,r[0].lat]);for(const e of r)l.extend([e.lng,e.lat]);e.fitBounds(l,{padding:48,maxZoom:14,animate:!a})},[be,t,w,b]),u(()=>{const e=te.current;if(!be||!e)return;const t=(y??[]).filter(e=>e.coordinates.length>=2),n=[...new Set(t.flatMap(e=>e.attribution?[e.attribution]:[]))].join(" · "),r=()=>{const r=function(){const e=document.createElement("span");e.className="text-blue-600",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e).color||"#2563eb";return e.remove(),J(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?D(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],i=e.getSource(I);if(i&&(i.attribution||"")!==n){for(const t of Z)e.getLayer(t)&&e.removeLayer(t);e.removeSource(I)}const s=e.getSource(I);s?s.setData(o):e.addSource(I,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:I,filter:["!",["get","estimate"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":4,"line-opacity":a}}),e.getLayer("routes-estimate")||e.addLayer({id:"routes-estimate",type:"line",source:I,filter:["get","estimate"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":3,"line-dasharray":[1.5,1.5],"line-opacity":a}})},o=()=>{try{r()}catch(e){console.debug("[map] routes wait for the style",e)}};return o(),e.on("style.load",o),e.once("idle",o),()=>{e.off("style.load",o),e.off("idle",o)}},[be,y,ke]),u(()=>{const e=te.current;if(!be||!e||!r)return;const n=t.find(e=>e.key===r.key);if(!n)return;const o=e.getZoom(),a=k?q(e.project([n.lng,n.lat]),t.filter(e=>e.key!==n.key).map(t=>e.project([t.lng,t.lat])),o):-1/0,l={center:[n.lng,n.lat],zoom:Math.min(18,Math.max(o,13,a))};Y()?e.jumpTo(l):e.flyTo({...l,duration:600})},[be,r?.n]);const[Se,je]=c(!1);u(()=>{const e=Q.current;if(!e)return;const t=()=>je(e.clientWidth<T);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[T]);const ze=n?t.find(e=>e.key===n)??null:null,Ae=ze?.key??null,Oe=ze?.lng??0,Re=ze?.lat??0,Te=be&&!Se&&null!=O&&!!ze,[Be,We]=c(null);u(()=>{const e=te.current,t=se.current;if(!(Te&&e&&t&&Ae))return;const n=document.createElement("div");n.dataset.mapCard="",n.className="w-[26rem] overflow-y-auto overscroll-contain";const r=new t.Popup({anchor:"bottom",offset:M,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Oe,Re]).setDOMContent(n).addTo(e),o=r.getElement(),a=o.querySelector(".maplibregl-popup-content");a&&Object.assign(a.style,{padding:"0",background:"transparent",borderRadius:"0",boxShadow:"none"});const l=o.querySelector(".maplibregl-popup-tip");l&&Object.assign(l.style,{borderTopColor:V,borderBottomColor:V}),We(n);let i=!1,s=!1;const c=(t=!0)=>{if(s)return;if(e.isMoving())return void(i||(i=!0,e.once("moveend",()=>{i=!1,c()})));const{clientWidth:o,clientHeight:a}=e.getContainer(),l=function(e,t){const n=e.getBoundingClientRect().top,r=[...e.querySelectorAll(".maplibregl-ctrl-top-left > *, .maplibregl-ctrl-top-right > *"),...t?.querySelectorAll(":scope > [data-map-control]")??[]];let o=0;for(const e of r){const t=e.getBoundingClientRect();t.height>0&&(o=Math.max(o,t.bottom-n))}return o}(e.getContainer(),Q.current)+8,u=`${C(a,l)}px`;n.style.maxHeight!==u&&(n.style.maxHeight=u);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=L(e.project(p),{width:d.offsetWidth,height:d.offsetHeight},{width:o,height:a},l);r.options.anchor!==m&&(r.options.anchor=m,r.setLngLat(p)),!t||0===h.x&&0===h.y||e.panBy([-h.x,-h.y],{duration:Y()?0:250}),$e()},u=new ResizeObserver(()=>c());u.observe(n);const d=()=>c(),p=()=>{i||c(!1)};e.on("resize",d),e.on("moveend",p);let m=!1;const h=pe.current,g=e=>{m=n.contains(e.target)};return document.addEventListener("focusin",g),()=>{if(s=!0,u.disconnect(),e.off("resize",d),e.off("moveend",p),document.removeEventListener("focusin",g),r.remove(),We(null),m&&(!document.activeElement||document.activeElement===document.body)){const e=h.get(Ae)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Te,Ae,Oe,Re,$e]);const Fe=B?.active??!1,He=s(B?.onChange);u(()=>{He.current=B?.onChange}),u(()=>{if(!B)return;const e=document.documentElement;Fe&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!Fe&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[Fe]);const Ke=!!B;return u(()=>{if(!Ke)return;const e=()=>{document.fullscreenElement||He.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[Ke]),/* @__PURE__ */g("div",{ref:Q,className:ne("relative min-h-72 overflow-hidden rounded-lg border border-gray-200 bg-gray-100",E&&"[&_canvas]:cursor-crosshair",i),children:[
3
- /* @__PURE__ */f("div",{className:"absolute inset-0",children:/* @__PURE__ */f("div",{ref:ee,className:"h-full w-full",role:"region","aria-label":a})}),ve&&/* @__PURE__ */f("p",{className:"absolute inset-0 grid place-items-center p-6 text-center text-sm text-gray-500",children:H.failed}),B&&/* @__PURE__ */f(e,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>B.onChange(!B.active),leftIcon:/* @__PURE__ */f(ue,{leave:B.active}),children:B.active?H.leaveFullScreen:H.fullScreen}),p,null!=O&&!Te&&/* @__PURE__ */f("div",{"data-map-card":"",className:"absolute bottom-3 left-3 right-3 z-10 max-h-[calc(100%-1.5rem)] max-w-md overflow-y-auto overscroll-contain",children:O}),Te&&Be?h(O,Be):null,be&&/* @__PURE__ */f(ce,{pins:t,hosts:fe.current})]})}function ce({pins:e,hosts:t}){/* @__PURE__ */
2
+ import{Button_default as e}from"../chunk-OGXU7QFW.js";import{rootIsDark as t,ROOT_THEME_ATTRIBUTES as n}from"../chunk-HZZNJHRH.js";import"../chunk-X4FJ54PP.js";import"../chunk-D65T4H6J.js";import{CollapseFallback as r,ExpandFallback as o,CloseFallback as a}from"../chunk-XUF7VW4U.js";import{useShellStrings as l}from"../chunk-3JK2LSFU.js";import"../chunk-C3QOHMR6.js";import{Icon as i}from"../chunk-YKZHOXI4.js";import{useRef as s,useState as c,useEffect as u,useCallback as d,useMemo as p,useSyncExternalStore as m}from"react";import{createPortal as h}from"react-dom";import{jsxs as g,jsx as f,Fragment as y}from"react/jsx-runtime";import{useQuery as b}from"@tanstack/react-query";var x="maplibregl-compact-show";function v(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(x)&&(e.classList.remove(x),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var w=20,k=12,N=480,M={center:[0,0],left:[w,0],right:[-20,0],top:[0,w],"top-left":[0,w],"top-right":[0,w],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},C=(e,t=12)=>Math.max(0,Math.floor(e-t-k-w-10-16));function L(e,t,n,r=12){const o=e.y-w-r,a=n.height-e.y-w-k,l=t.height<=o||t.height>a&&o>=a,i=l?Math.max(0,t.height-o):-Math.max(0,t.height-a);let s="",c=0;return e.x-t.width/2<k?(s="-left",c=Math.max(0,k-e.x)):e.x+t.width/2>n.width-k&&(s="-right",c=-Math.max(0,e.x-(n.width-k))),{anchor:`${l?"bottom":"top"}${s}`,move:{x:c,y:i}}}var $="maplibre-gl-worker.mjs",S=e=>`/maplibre-gl/${e}/${$}`,E=null;function j(){return E??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(S(e.getVersion())),e)).catch(e=>{throw E=null,e}),E}var z=24,A=28,O=29;function R(e){const t=[...e].sort((e,t)=>e-t),n=[];for(let e=0;e<t.length;){let r=e;for(;r+1<t.length&&t[r+1]===t[r]+1;)r++;n.push(r===e?String(t[e]):`${t[e]}–${t[r]}`),e=r+1}return n.join(", ")}function T(e){const t=Math.max(A,12+8*e.length);return t+t%2}var B=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function F(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var W=e=>B(e.x,e.y,e.width,e.height);function K(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(F(W(e[t]),W(e[n])))return[e[t],e[n]];return null}function q(e,t=[]){const n=[],r=e=>t.some(t=>F(t,e));let o=e.filter(e=>null!==e.stop).sort((e,t)=>e.stop-t.stop).map(e=>({keys:[e.key],stops:[e.stop],x:e.x,y:e.y,width:A,height:A,under:0}));for(let e=K(o);e;e=K(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=T(R(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(W(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=B(t.x,t.y,z,z),l=o.find(t=>F(W(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const i=a.find(t=>F(W(t),e));i?i.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:z,height:z,under:0})}return{groups:[...o,...a],hidden:n}}function H(e,t,n){let r=-1/0;for(const o of t){const t=Math.max(Math.abs(o.x-e.x),Math.abs(o.y-e.y));r=Math.max(r,0===t?1/0:n+Math.log2(29/t))}return r}function _(e){const t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:n}),()=>t.disconnect()}var P=t;var I="routes",Z=["routes-road","routes-estimate"];function D(e){const t=document.createElement("span");t.style.display="none",t.style.color=e,document.body.appendChild(t);const n=getComputedStyle(t).color||"#2563eb";return t.remove(),U(n)}function U(e){const t=document.createElement("canvas").getContext("2d");if(!t)return"#2563eb";t.fillStyle="#2563eb",t.fillStyle=e,t.fillRect(0,0,1,1);const[n,r,o]=t.getImageData(0,0,1,1).data;return`rgb(${n}, ${r}, ${o})`}var G={light:"https://tiles.openfreemap.org/styles/positron",dark:"https://tiles.openfreemap.org/styles/dark"},J={center:[30,20],zoom:1},X="ring-2 ring-gray-900 ring-offset-2";var V="var(--color-gray-600, #4b5563)",Q="http://www.w3.org/2000/svg",Y=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,ee=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function te(e){return e.split(/\s+/).some(e=>{const t=e.search(/[[(]/),n=t<0?e:e.slice(0,t),r=e.slice(n.lastIndexOf(":")+1);return r.startsWith("border-")&&!ee.test(r.slice(7))})}var ne=(...e)=>e.filter(Boolean).join(" ");function re(e){const t=document.createElementNS(Q,"svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("aria-hidden","true");for(const n of e){const e=document.createElementNS(Q,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function oe(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}var ae=(e,t)=>ne("relative grid place-items-center rounded-full cursor-pointer",t&&(null!=e.stop?"h-7 w-7":"h-6 w-6"));function le(e,t,n,r){const o=t&&!r&&null==e.stop&&!e.dot;return ne("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-md transition-transform motion-reduce:transition-none",!te(e.tone)&&"border-white",e.tone,e.dot?"h-4 w-4 opacity-80":null!=e.stop?"h-7 w-7 text-xs ring-2 ring-gray-900":o?"h-8 w-8 text-xs [&_svg]:h-4 [&_svg]:w-4":"h-6 w-6 text-[10px] [&_svg]:h-3.5 [&_svg]:w-3.5",t&&(o?"ring-2 ring-gray-900 ring-offset-1":X),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")}var ie=e=>ne("grid place-items-center border-2 px-0.5 text-xs font-semibold leading-none shadow-sm",e.stop?"h-7 min-w-7":"h-6 min-w-6",!te(e.tone??"")&&"border-white",e.tone??"bg-gray-900 text-white");function se({pins:t,selectedKey:n,focus:r,onSelect:o,ariaLabel:a,className:i="",children:p,routes:y,fitTo:b,attribution:x,marks:w,groupCrowded:k=!1,noun:N,highlightKey:$=null,picking:S=!1,onPick:E,card:O,cardMinMapWidth:T=480,fullScreen:B,initialView:F=J,cooperativeGestures:W=!1}){const K=l().map,Q=s(null),ee=s(null),te=s(null),se=s(null),de=s([]),pe=s(/* @__PURE__ */new Map),me=s(/* @__PURE__ */new Map),he=s(/* @__PURE__ */new Map),ge=s(null),fe=s(/* @__PURE__ */new Map),ye=s(""),[be,xe]=c(!1),[ve,we]=c(!1),ke=m(_,P,()=>!1)?"dark":"light",Ne=s({onSelect:o,onPick:E,picking:S,pins:t,selectedKey:n,highlightKey:$,groupCrowded:k,strings:K,noun:N});u(()=>{Ne.current={onSelect:o,onPick:E,picking:S,pins:t,selectedKey:n,highlightKey:$,groupCrowded:k,strings:K,noun:N}});const Me=d(()=>{const e=te.current,{pins:t,selectedKey:n}=Ne.current,r=n?t.find(e=>e.key===n):void 0;e&&r&&!e.getBounds().contains([r.lng,r.lat])&&e.easeTo({center:[r.lng,r.lat],duration:Y()?0:400})},[]),Ce=s(!1),Le=d((e,t)=>{const n=te.current,r=se.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(Ne.current.selectedKey??"");return void Ne.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>pe.current.get(e).pin),l=new r.LngLatBounds([a[0].lng,a[0].lat],[a[0].lng,a[0].lat]);for(const e of a)l.extend([e.lng,e.lat]);const i=a.map(e=>n.project([e.lng,e.lat])),s=Math.max(...i.map((e,t)=>H(e,i.filter((e,n)=>n!==t),o))),{clientWidth:c,clientHeight:u}=n.getContainer(),d=n.cameraForBounds(l,{padding:Math.min(64,c/4,u/4)})?.zoom??18,p=document.activeElement===t;Ce.current=!0,n.once("moveend",()=>{if(Ce.current=!1,!p)return;const e=a[0].key,t=pe.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...me.current.values()].find(t=>t.keys.includes(e))?.button;n?.focus({preventScroll:!0})}),n.easeTo({center:l.getCenter(),zoom:Math.min(18,Math.max(o+1,Math.min(d,s))),duration:Y()?0:600})},[]),$e=d(()=>{const e=te.current,t=se.current;if(!e||!t||!Q.current||Ce.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l}=Ne.current;for(const[e,t]of pe.current){const a=le(t.pin,e===n,e===r,o);t.mark.className!==a&&(t.mark.className=a);const l=e===n?"1":"";t.button.style.zIndex!==l&&(t.button.style.zIndex=l)}let i=null;if(o){const r=e.getContainer().getBoundingClientRect(),o=[...Q.current.querySelectorAll("a[href], button, input, select, textarea, summary, [role='button'], [tabindex]:not([tabindex='-1'])")].filter(e=>!e.closest("[data-pin], [data-pin-group], .maplibregl-canvas")).map(e=>{const t=e.getBoundingClientRect(),n=e.closest("[data-map-card]")?.getBoundingClientRect()??t;return{left:Math.max(t.left,n.left)-r.left,top:Math.max(t.top,n.top)-r.top,right:Math.min(t.right,n.right)-r.left,bottom:Math.min(t.bottom,n.bottom)-r.top}}).filter(e=>e.right>e.left&&e.bottom>e.top);i=q([...pe.current.values()].map(({pin:t})=>{const n=e.project([t.lng,t.lat]);return{key:t.key,x:n.x,y:n.y,stop:t.stop??null}}),o);const s=e=>(l??a.places)(e),c=e.getZoom()<17.5?a.spread:a.cycle,u=(e,t)=>{const n=t?"":"none";e.style.display!==n&&(e.style.display=n)},d=/* @__PURE__ */new Map;for(const r of i.groups){const o=r.under>0?a.closeBy(r.under,s(r.under)):null,l=1===r.keys.length?pe.current.get(r.keys[0]):null;if(l){u(l.button,!0),l.button.setAttribute("aria-label",o?`${l.name}; ${o}`:l.name),l.button.title=o?`${l.title}\n${o}`:l.title;continue}for(const e of r.keys)u(pe.current.get(e).button,!1);const i=r.keys.join(" ");let p=me.current.get(i);if(!p){const n=document.createElement("button");n.type="button",n.dataset.pinGroup="",n.className="grid place-items-center rounded-full cursor-pointer",n.append(document.createElement("span"));const o=pe.current.get(r.keys[0]).pin,a={button:n,keys:r.keys,marker:new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)};n.addEventListener("click",e=>{e.stopPropagation(),Le(a.keys,n)}),p=a}p.keys=r.keys;const m=r.keys.map(e=>pe.current.get(e)),h=r.stops.length>0?R(r.stops):String(m.length),g=r.stops.length>0?a.stops(h):a.group(m.length,s(m.length));p.button.style.width=`${r.width}px`,p.button.style.height=`${r.height}px`,p.button.setAttribute("aria-label",`${g}: ${m.map(e=>e.pin.label).join("; ")}. ${c}${o?`; ${o}`:""}.`),p.button.title=[`${g}:`,...m.map(e=>e.title),...o?[o]:[],c].join("\n");const f=p.button.firstElementChild;f.textContent=h;const y=ne("grid place-items-center rounded-full border-2 border-gray-700 bg-white font-semibold leading-none text-gray-900 shadow-sm",r.stops.length>0?"h-7 w-full px-1 text-xs ring-2 ring-gray-900":m.every(e=>e.pin.dot)?"h-5 w-5 text-[0.6rem]":"h-6 w-6 text-[0.7rem]",null!=n&&r.keys.includes(n)&&X);f.className!==y&&(f.className=y),d.set(i,p)}for(const e of i.hidden)u(pe.current.get(e).button,!1);for(const[e,t]of me.current)d.has(e)||t.marker.remove();me.current=d}if(ge.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?pe.current.get(r):void 0,n=r?he.current.get(r):void 0,o=e?{at:pe.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?A:z),height:t.button.offsetHeight||(null!=t.pin.stop?A:z)}:n?{at:n.mark,width:n.element.offsetWidth||A,height:n.element.offsetHeight||A}:null,a=ge.current.getElement();a.style.display=o?"":"none",o&&(ge.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Le]);u(()=>{if($e(),!Q.current)return;const e=new ResizeObserver(()=>$e());e.observe(Q.current);for(const t of Q.current.children)t.contains(ee.current)||e.observe(t);return()=>e.disconnect()}),u(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await j();if(e||!ee.current)return;se.current=o,t=new o.Map({container:ee.current,style:G[ke],center:F.center,zoom:F.zoom,attributionControl:x?{compact:!0,customAttribution:x}:{compact:!0},dragRotate:!1,pitchWithRotate:!1,touchPitch:!1,maxPitch:0,cooperativeGestures:"coarse"===W?window.matchMedia("(pointer: coarse)").matches:W}),t.touchZoomRotate.disableRotation(),t.keyboard.disableRotation(),t.addControl(new o.NavigationControl({showCompass:!1}),"top-right");const a=document.createElement("div");a.dataset.pinRing="",a.setAttribute("aria-hidden","true"),a.className="pointer-events-none rounded-full border-2 border-gray-900 bg-gray-900/15 shadow-[0_0_0_2px_var(--color-white,#fff)]",a.style.display="none",ge.current=new o.Marker({element:a,anchor:"center"}).setLngLat(F.center).addTo(t),t.on("click",e=>{Ne.current.picking&&Ne.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",$e),t.on("moveend",$e),t.on("resize",$e),t.on("error",e=>console.warn("[map]",e.error?.message)),r=v(ee.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),Me()}),n.observe(ee.current),te.current=t,xe(!0)}catch(t){console.error("[map] could not start",t),e||we(!0)}})(),()=>{e=!0,n?.disconnect(),r(),de.current.forEach(e=>e.remove()),de.current=[],me.current.forEach(e=>e.marker.remove()),me.current.clear(),ge.current?.remove(),ge.current=null,t?.remove(),te.current=null}},[]);const Se=s(ke);u(()=>{be&&te.current&&Se.current!==ke&&(Se.current=ke,te.current.setStyle(G[ke]))},[be,ke]),u(()=>{const e=te.current,n=se.current;if(!be||!e||!n)return;de.current.forEach(e=>e.remove()),de.current=[],me.current.forEach(e=>e.marker.remove()),me.current.clear(),pe.current.clear(),he.current.clear();for(const e of fe.current.keys())t.some(t=>t.key===e)||fe.current.delete(e);const r=Ne.current.strings;for(const o of t){const t=document.createElement("button");t.type="button",t.dataset.pin=o.key,t.className=ae(o,k);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);t.setAttribute("aria-label",a),t.title=l;const i=document.createElement("span");if(oe(i,o.data),o.dot);else if(null!=o.iconNode){const e=fe.current.get(o.key);e&&i.append(e)}else o.icon?.length?i.append(re(o.icon)):i.textContent=null!=o.stop?String(o.stop):o.glyph;if(t.append(i),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=ne("absolute -right-2 -top-2 grid h-4 min-w-4 place-items-center rounded-full px-0.5 text-[9px] font-semibold leading-none shadow",o.badgeTone??"bg-white text-gray-900"),e.textContent=o.badge,t.appendChild(e)}t.addEventListener("click",e=>{e.stopPropagation(),Ne.current.onSelect(o.key)}),de.current.push(new n.Marker({element:t,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),pe.current.set(o.key,{pin:o,button:t,mark:i,name:a,title:l})}for(const t of w??[]){const r=document.createElement("div");r.dataset.mapMark=t.key,oe(r,t.data),r.className=ie(t),r.textContent=t.text,r.title=t.title??t.label,r.setAttribute("role","img"),r.setAttribute("aria-label",t.label),de.current.push(new n.Marker({element:r,anchor:"center"}).setLngLat([t.lng,t.lat]).addTo(e)),he.current.set(t.key,{mark:t,element:r})}$e()},[be,t,w,k,$e]),u(()=>{be&&$e()},[be,n,$,$e]),u(()=>{if(!be||!n)return;const e=requestAnimationFrame(Me);return()=>cancelAnimationFrame(e)},[be,n,Me]),u(()=>{const e=te.current,n=se.current,r=b?[...t,...w??[]].filter(e=>b.includes(e.key)):t;if(!be||!e||!n||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(ye.current===o)return;const a=""===ye.current;if(ye.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new n.LngLatBounds([r[0].lng,r[0].lat],[r[0].lng,r[0].lat]);for(const e of r)l.extend([e.lng,e.lat]);e.fitBounds(l,{padding:48,maxZoom:14,animate:!a})},[be,t,w,b]),u(()=>{const e=te.current;if(!be||!e)return;const t=(y??[]).filter(e=>e.coordinates.length>=2),n=[...new Set(t.flatMap(e=>e.attribution?[e.attribution]:[]))].join(" · "),r=()=>{const r=function(){const e=document.createElement("span");e.className="text-blue-600",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e).color||"#2563eb";return e.remove(),U(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?D(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],i=e.getSource(I);if(i&&(i.attribution||"")!==n){for(const t of Z)e.getLayer(t)&&e.removeLayer(t);e.removeSource(I)}const s=e.getSource(I);s?s.setData(o):e.addSource(I,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:I,filter:["!",["get","estimate"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":4,"line-opacity":a}}),e.getLayer("routes-estimate")||e.addLayer({id:"routes-estimate",type:"line",source:I,filter:["get","estimate"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":3,"line-dasharray":[1.5,1.5],"line-opacity":a}})},o=()=>{try{r()}catch(e){console.debug("[map] routes wait for the style",e)}};return o(),e.on("style.load",o),e.once("idle",o),()=>{e.off("style.load",o),e.off("idle",o)}},[be,y,ke]),u(()=>{const e=te.current;if(!be||!e||!r)return;const n=t.find(e=>e.key===r.key);if(!n)return;const o=e.getZoom(),a=k?H(e.project([n.lng,n.lat]),t.filter(e=>e.key!==n.key).map(t=>e.project([t.lng,t.lat])),o):-1/0,l={center:[n.lng,n.lat],zoom:Math.min(18,Math.max(o,13,a))};Y()?e.jumpTo(l):e.flyTo({...l,duration:600})},[be,r?.n]);const[Ee,je]=c(!1);u(()=>{const e=Q.current;if(!e)return;const t=()=>je(e.clientWidth<T);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[T]);const ze=n?t.find(e=>e.key===n)??null:null,Ae=ze?.key??null,Oe=ze?.lng??0,Re=ze?.lat??0,Te=be&&!Ee&&null!=O&&!!ze,[Be,Fe]=c(null);u(()=>{const e=te.current,t=se.current;if(!(Te&&e&&t&&Ae))return;const n=document.createElement("div");n.dataset.mapCard="",n.className="w-[26rem] overflow-y-auto overscroll-contain";const r=new t.Popup({anchor:"bottom",offset:M,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Oe,Re]).setDOMContent(n).addTo(e),o=r.getElement(),a=o.querySelector(".maplibregl-popup-content");a&&Object.assign(a.style,{padding:"0",background:"transparent",borderRadius:"0",boxShadow:"none"});const l=o.querySelector(".maplibregl-popup-tip");l&&Object.assign(l.style,{borderTopColor:V,borderBottomColor:V}),Fe(n);let i=!1,s=!1;const c=(t=!0)=>{if(s)return;if(e.isMoving())return void(i||(i=!0,e.once("moveend",()=>{i=!1,c()})));const{clientWidth:o,clientHeight:a}=e.getContainer(),l=function(e,t){const n=e.getBoundingClientRect().top,r=[...e.querySelectorAll(".maplibregl-ctrl-top-left > *, .maplibregl-ctrl-top-right > *"),...t?.querySelectorAll(":scope > [data-map-control]")??[]];let o=0;for(const e of r){const t=e.getBoundingClientRect();t.height>0&&(o=Math.max(o,t.bottom-n))}return o}(e.getContainer(),Q.current)+8,u=`${C(a,l)}px`;n.style.maxHeight!==u&&(n.style.maxHeight=u);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=L(e.project(p),{width:d.offsetWidth,height:d.offsetHeight},{width:o,height:a},l);r.options.anchor!==m&&(r.options.anchor=m,r.setLngLat(p)),!t||0===h.x&&0===h.y||e.panBy([-h.x,-h.y],{duration:Y()?0:250}),$e()},u=new ResizeObserver(()=>c());u.observe(n);const d=()=>c(),p=()=>{i||c(!1)};e.on("resize",d),e.on("moveend",p);let m=!1;const h=pe.current,g=e=>{m=n.contains(e.target)};return document.addEventListener("focusin",g),()=>{if(s=!0,u.disconnect(),e.off("resize",d),e.off("moveend",p),document.removeEventListener("focusin",g),r.remove(),Fe(null),m&&(!document.activeElement||document.activeElement===document.body)){const e=h.get(Ae)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Te,Ae,Oe,Re,$e]);const We=B?.active??!1,Ke=s(B?.onChange);u(()=>{Ke.current=B?.onChange}),u(()=>{if(!B)return;const e=document.documentElement;We&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!We&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[We]);const qe=!!B;return u(()=>{if(!qe)return;const e=()=>{document.fullscreenElement||Ke.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[qe]),/* @__PURE__ */g("div",{ref:Q,className:ne("relative min-h-72 overflow-hidden rounded-lg border border-gray-200 bg-gray-100",S&&"[&_canvas]:cursor-crosshair",i),children:[
3
+ /* @__PURE__ */f("div",{className:"absolute inset-0",children:/* @__PURE__ */f("div",{ref:ee,className:"h-full w-full",role:"region","aria-label":a})}),ve&&/* @__PURE__ */f("p",{className:"absolute inset-0 grid place-items-center p-6 text-center text-sm text-gray-500",children:K.failed}),B&&/* @__PURE__ */f(e,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>B.onChange(!B.active),leftIcon:/* @__PURE__ */f(ue,{leave:B.active}),children:B.active?K.leaveFullScreen:K.fullScreen}),p,null!=O&&!Te&&/* @__PURE__ */f("div",{"data-map-card":"",className:"absolute bottom-3 left-3 right-3 z-10 max-h-[calc(100%-1.5rem)] max-w-md overflow-y-auto overscroll-contain",children:O}),Te&&Be?h(O,Be):null,be&&/* @__PURE__ */f(ce,{pins:t,hosts:fe.current})]})}function ce({pins:e,hosts:t}){/* @__PURE__ */
4
4
  return f(y,{children:e.map(e=>{if(null==e.iconNode||e.dot)return null;let n=t.get(e.key);return n||(n=document.createElement("span"),n.className="contents",t.set(e.key,n)),h(e.iconNode,n,e.key)})})}function ue({leave:e}){/* @__PURE__ */
5
- return f(i,e?{name:"collapse",fallback:r,"aria-hidden":"true",className:"h-4 w-4",strokeWidth:2}:{name:"expand",fallback:o,"aria-hidden":"true",className:"h-4 w-4",strokeWidth:2})}function de(){const[e,t]=c(null);return{highlightKey:e,pointAt:d(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var pe=3e3,me=e=>!!e?.pending&&3e3,he=e=>`${e.kind}:${e.id}`,ge=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function fe(e){switch(e){case"located":return null;case"approximate":return"Approximate: only the suburb or postcode matched";case"pending":return"Locating…";case"not_found":return"Not on the map: address not found";case"failed":return"Not on the map: the map service could not be reached";case"no_address":return"Not on the map: no city or postcode"}}var ye={importer:{label:"Importer",tone:"bg-sky-600 text-white"},dealer:{label:"Dealer",tone:"bg-purple-600 text-white"},retail:{label:"Retail",tone:"bg-green-600 text-white"},supplier:{label:"Supplier",tone:"bg-sky-600 text-white"},delivery_location:{label:"Delivery location",tone:"bg-amber-600 text-white"},warehouse:{label:"Warehouse",tone:"bg-amber-600 text-white"}},be=["importer","dealer","retail","supplier","delivery_location","warehouse"];function xe(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var ve=(e,t=ye)=>t[e]?.tone??"bg-gray-700 text-white",we=(e,t=ye)=>t[e]?.label??e,ke=(e,t)=>ve(xe(e),t);function Ne(e,t,n=ye){return null!=t?String(t):(n[xe(e)]?.label??"").charAt(0).toUpperCase()}var Me=["delivery_location","warehouse"];function Ce(e,t=Me){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(he(o),++r);return n}function Le(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)ge(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function $e(e){const t=[`${e.onMap} on the map`];return e.approximate&&t.push(`${e.approximate} approximate`),e.pending&&t.push(`${e.pending} locating`),e.off&&t.push(`${e.off} not on the map`),t.join(" · ")}function Ee(e){const t=[...new Set(e.filter(ge).map(xe))];return[...be.filter(e=>t.includes(e)),...t.filter(e=>!be.includes(e))]}function Se(e,t){return e.filter(e=>!ge(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(he(e)),r=fe(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:he(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function je({categories:e,palette:t=ye,floating:n=!0}){return e.length<2?null:/* @__PURE__ */f("div",{className:(n?"absolute left-3 top-3 z-10 ":"")+"flex flex-wrap gap-x-3 gap-y-1 rounded-lg border border-gray-200 bg-white px-2.5 py-1.5 text-xs text-gray-600 shadow-sm",children:e.map(e=>/* @__PURE__ */g("span",{className:"inline-flex items-center gap-1.5",children:[
5
+ return f(i,e?{name:"collapse",fallback:r,"aria-hidden":"true",className:"h-4 w-4",strokeWidth:2}:{name:"expand",fallback:o,"aria-hidden":"true",className:"h-4 w-4",strokeWidth:2})}function de(){const[e,t]=c(null);return{highlightKey:e,pointAt:d(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var pe=3e3,me=e=>!!e?.pending&&3e3,he=e=>`${e.kind}:${e.id}`,ge=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function fe(e){switch(e){case"located":return null;case"approximate":return"Approximate: only the suburb or postcode matched";case"pending":return"Locating…";case"not_found":return"Not on the map: address not found";case"failed":return"Not on the map: the map service could not be reached";case"no_address":return"Not on the map: no city or postcode"}}var ye={importer:{label:"Importer",tone:"bg-sky-600 text-white"},dealer:{label:"Dealer",tone:"bg-purple-600 text-white"},retail:{label:"Retail",tone:"bg-green-600 text-white"},supplier:{label:"Supplier",tone:"bg-sky-600 text-white"},delivery_location:{label:"Delivery location",tone:"bg-amber-600 text-white"},warehouse:{label:"Warehouse",tone:"bg-amber-600 text-white"}},be=["importer","dealer","retail","supplier","delivery_location","warehouse"];function xe(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var ve=(e,t=ye)=>t[e]?.tone??"bg-gray-700 text-white",we=(e,t=ye)=>t[e]?.label??e,ke=(e,t)=>ve(xe(e),t);function Ne(e,t,n=ye){return null!=t?String(t):(n[xe(e)]?.label??"").charAt(0).toUpperCase()}var Me=["delivery_location","warehouse"];function Ce(e,t=Me){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(he(o),++r);return n}function Le(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)ge(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function $e(e){const t=[`${e.onMap} on the map`];return e.approximate&&t.push(`${e.approximate} approximate`),e.pending&&t.push(`${e.pending} locating`),e.off&&t.push(`${e.off} not on the map`),t.join(" · ")}function Se(e){const t=[...new Set(e.filter(ge).map(xe))];return[...be.filter(e=>t.includes(e)),...t.filter(e=>!be.includes(e))]}function Ee(e,t){return e.filter(e=>!ge(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(he(e)),r=fe(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:he(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function je({categories:e,palette:t=ye,floating:n=!0}){return e.length<2?null:/* @__PURE__ */f("div",{className:(n?"absolute left-3 top-3 z-10 ":"")+"flex flex-wrap gap-x-3 gap-y-1 rounded-lg border border-gray-200 bg-white px-2.5 py-1.5 text-xs text-gray-600 shadow-sm",children:e.map(e=>/* @__PURE__ */g("span",{className:"inline-flex items-center gap-1.5",children:[
6
6
  /* @__PURE__ */f("span",{"aria-hidden":!0,className:`h-2.5 w-2.5 rounded-full ${ve(e,t)}`}),we(e,t)]},e))})}function ze({point:t,number:n,onOpen:r,onClose:o,palette:s=ye}){const c=fe(t.placement),u=xe(t),d=l().map;/* @__PURE__ */
7
7
  return g("section",{"aria-label":d.chosen(t.label),className:"absolute bottom-3 left-3 right-3 z-10 max-w-md space-y-1.5 rounded-lg border border-gray-200 bg-white p-3 shadow-md",children:[
8
8
  /* @__PURE__ */g("div",{className:"flex items-start justify-between gap-2",children:[
@@ -10,7 +10,7 @@ return g("section",{"aria-label":d.chosen(t.label),className:"absolute bottom-3
10
10
  /* @__PURE__ */g("h3",{className:"text-sm font-semibold text-gray-900 [overflow-wrap:anywhere]",children:[null!=n&&/* @__PURE__ */g("span",{className:"mr-1 text-gray-400",children:[n,"."]}),t.label,t.code&&/* @__PURE__ */f("span",{className:"ml-1.5 text-xs font-normal text-gray-400",children:t.code})]}),
11
11
  /* @__PURE__ */f("p",{className:"text-xs text-gray-500",children:s[u]?we(u,s):t.category})]}),
12
12
  /* @__PURE__ */f("button",{type:"button",onClick:o,"aria-label":d.closeCard,className:"rounded p-0.5 text-gray-400 hover:text-gray-600",children:/* @__PURE__ */f(i,{name:"close",fallback:a,"aria-hidden":!0,className:"h-4 w-4",strokeWidth:2})})]}),
13
- /* @__PURE__ */f("p",{className:"text-sm text-gray-700 [overflow-wrap:anywhere]",children:t.address||"—"}),c&&/* @__PURE__ */f("p",{className:"text-xs text-gray-500",children:c}),t.matched&&"approximate"===t.placement&&/* @__PURE__ */g("p",{className:"text-xs text-gray-400 [overflow-wrap:anywhere]",children:["Placed at: ",t.matched]}),r&&/* @__PURE__ */f("div",{className:"flex justify-end",children:/* @__PURE__ */f(e,{variant:"secondary",size:"sm",onClick:r,children:d.openRecord})})]})}function Ae(e,t,{staleTime:n}={}){return b({queryKey:e,queryFn:t,staleTime:n,refetchInterval:e=>me(e.state.data)})}function Oe({queryKey:e,queryFn:t,refreshSignal:n,onOpen:r,ariaLabel:o,title:a="Locations",palette:l=ye,numbers:i,className:d="",mapClassName:m="min-h-[240px] flex-1"}){const{data:h,isError:y,refetch:b}=Ae(e,t,{staleTime:0}),x=s(!1);u(()=>{x.current?b():x.current=!0},[n]);const[v,w]=c(null),k=p(()=>h?.points??[],[h]),N=p(()=>i??Ce(k),[i,k]),M=p(()=>k.filter(ge).map(e=>({key:he(e),label:e.label,lat:e.lat,lng:e.lng,glyph:Ne(e,N.get(he(e))??null,l),tone:ke(e,l),approximate:"approximate"===e.placement})),[k,N,l]),C=p(()=>Se(k,N),[k,N]),L=p(()=>Ee(k),[k]),$=h?.pending??0,E=k.find(e=>he(e)===v)??null,S=E&&r?r(E):null;/* @__PURE__ */
13
+ /* @__PURE__ */f("p",{className:"text-sm text-gray-700 [overflow-wrap:anywhere]",children:t.address||"—"}),c&&/* @__PURE__ */f("p",{className:"text-xs text-gray-500",children:c}),t.matched&&"approximate"===t.placement&&/* @__PURE__ */g("p",{className:"text-xs text-gray-400 [overflow-wrap:anywhere]",children:["Placed at: ",t.matched]}),r&&/* @__PURE__ */f("div",{className:"flex justify-end",children:/* @__PURE__ */f(e,{variant:"secondary",size:"sm",onClick:r,children:d.openRecord})})]})}function Ae(e,t,{staleTime:n}={}){return b({queryKey:e,queryFn:t,staleTime:n,refetchInterval:e=>me(e.state.data)})}function Oe({queryKey:e,queryFn:t,refreshSignal:n,onOpen:r,ariaLabel:o,title:a="Locations",palette:l=ye,numbers:i,className:d="",mapClassName:m="min-h-[240px] flex-1"}){const{data:h,isError:y,refetch:b}=Ae(e,t,{staleTime:0}),x=s(!1);u(()=>{x.current?b():x.current=!0},[n]);const[v,w]=c(null),k=p(()=>h?.points??[],[h]),N=p(()=>i??Ce(k),[i,k]),M=p(()=>k.filter(ge).map(e=>({key:he(e),label:e.label,lat:e.lat,lng:e.lng,glyph:Ne(e,N.get(he(e))??null,l),tone:ke(e,l),approximate:"approximate"===e.placement})),[k,N,l]),C=p(()=>Ee(k,N),[k,N]),L=p(()=>Se(k),[k]),$=h?.pending??0,S=k.find(e=>he(e)===v)??null,E=S&&r?r(S):null;/* @__PURE__ */
14
14
  return g("section",{"aria-label":a,className:`flex min-w-0 flex-col ${d}`,children:[
15
15
  /* @__PURE__ */g("div",{className:"flex min-h-[30px] items-center justify-between mb-2",children:[
16
16
  /* @__PURE__ */f("h3",{className:"text-sm font-semibold text-gray-900",children:a}),h&&/* @__PURE__ */f("span",{className:"text-xs text-gray-500",children:$e(Le(k))})]}),
@@ -20,4 +20,4 @@ return g("section",{"aria-label":a,className:`flex min-w-0 flex-col ${d}`,childr
20
20
  /* @__PURE__ */f("button",{type:"button",onClick:()=>{b()},className:"font-medium text-blue-600 hover:text-blue-800 hover:underline",children:"Try again"})]}),!y&&($>0||C.length>0)&&/* @__PURE__ */g("div",{className:"max-w-full space-y-0.5 rounded-lg border border-gray-200 bg-white px-2.5 py-1.5 text-xs shadow-sm","aria-live":"polite",children:[$>0&&/* @__PURE__ */g("p",{className:"flex items-center gap-1.5 text-gray-500",children:[
21
21
  /* @__PURE__ */g("svg",{className:"h-3 w-3 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[
22
22
  /* @__PURE__ */f("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),
23
- /* @__PURE__ */f("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"Locating ",$," address",1===$?"":"es","…"]}),C.slice(0,3).map(e=>/* @__PURE__ */f("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),C.length>3&&/* @__PURE__ */g("p",{className:"text-gray-500",children:["+",C.length-3," more not on the map"]})]})]}),E&&/* @__PURE__ */f(ze,{point:E,number:N.get(he(E))??null,onOpen:S,onClose:()=>w(null),palette:l})]})]})}export{N as CARD_MIN_MAP_WIDTH,x as COMPACT_SHOW,se as EntityMap,Oe as LocationsMap,$ as MAPLIBRE_WORKER_FILE,O as MAP_APART_PX,ye as MAP_CATEGORIES,A as MAP_STOP_PX,z as MAP_TARGET_PX,je as MapLegend,pe as PENDING_POLL_MS,Me as SECONDARY_KINDS,ze as SelectedCard,C as cardMaxHeight,we as categoryLabel,ve as categoryTone,v as foldAttributionOnce,ge as isOnMap,K as layoutPins,Ee as legendCategories,j as loadMapLibre,Ce as locationNumbers,E as mapLibreWorkerUrl,me as mapPointsRefetchInterval,Se as offMapNotes,xe as pinCategory,Ne as pinGlyph,ke as pinTone,L as placeCard,fe as placementNote,he as pointKey,R as stopsLabel,Le as summarize,$e as summaryText,de as useMapHighlight,Ae as useMapPoints,q as zoomApart};
23
+ /* @__PURE__ */f("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"Locating ",$," address",1===$?"":"es","…"]}),C.slice(0,3).map(e=>/* @__PURE__ */f("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),C.length>3&&/* @__PURE__ */g("p",{className:"text-gray-500",children:["+",C.length-3," more not on the map"]})]})]}),S&&/* @__PURE__ */f(ze,{point:S,number:N.get(he(S))??null,onOpen:E,onClose:()=>w(null),palette:l})]})]})}export{N as CARD_MIN_MAP_WIDTH,x as COMPACT_SHOW,se as EntityMap,Oe as LocationsMap,$ as MAPLIBRE_WORKER_FILE,O as MAP_APART_PX,ye as MAP_CATEGORIES,A as MAP_STOP_PX,z as MAP_TARGET_PX,je as MapLegend,pe as PENDING_POLL_MS,Me as SECONDARY_KINDS,ze as SelectedCard,C as cardMaxHeight,we as categoryLabel,ve as categoryTone,v as foldAttributionOnce,ge as isOnMap,q as layoutPins,Se as legendCategories,j as loadMapLibre,Ce as locationNumbers,S as mapLibreWorkerUrl,me as mapPointsRefetchInterval,Ee as offMapNotes,xe as pinCategory,Ne as pinGlyph,ke as pinTone,L as placeCard,fe as placementNote,he as pointKey,R as stopsLabel,Le as summarize,$e as summaryText,de as useMapHighlight,Ae as useMapPoints,H as zoomApart};
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{TabStrip as e}from"../chunk-FOEVG7RT.js";import{useShellLanguage as t}from"../chunk-LK7V32MR.js";import"../chunk-GMMTTWHB.js";import{confirm as n}from"../chunk-ZZKIKW62.js";import"../chunk-ZDF5AR5W.js";import"../chunk-AFYQTVZO.js";import"../chunk-HZZNJHRH.js";import"../chunk-X4FJ54PP.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-XUF7VW4U.js";import{useShellStrings as i}from"../chunk-J3LIIIHJ.js";import"../chunk-C3QOHMR6.js";import"../chunk-YKZHOXI4.js";import*as l from"react";import{createContext as c,memo as a,useRef as s,useEffect as o,useMemo as u,useId as y,useCallback as d,useReducer as f,useState as p,useContext as k}from"react";import{useLocation as m,useNavigate as b}from"react-router-dom";import{jsx as v,Fragment as h,jsxs as g}from"react/jsx-runtime";var K=c(null),F=c(null),T=12;var I=(e,t)=>e.filter(e=>e!==t);function M(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function N(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let l={...e,tabs:i,activeKey:t.key,mounted:(c=e.mounted,a=t.key,c.includes(a)?c:[...c,a]),clock:r};var c,a;return l.closing&&l.closing!==t.key?l=A(l,l.closing):l.closing===t.key&&(l={...l,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=A(n,e[0].key)}return n}(l,n)}function j(e){let t={...e,activeKey:null};return t.closing&&(t=A(t,t.closing)),t}function A(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:I(e.mounted,t),dirty:I(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function w(e,t){switch(t.type){case"visit":return N(e,t.entry,t.maxTabs);case"transient":return j(e);case"close":{let n=e;for(const e of t.keys)n=A(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:I(e.dirty,t)}}(e,t.key,t.dirty)}}var O=e=>`${e.pathname}${e.search}`;function C(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function x({children:e,resolve:l,pinned:c=[],storageKey:a,maxTabs:k=12,enabled:h=!0,confirmDiscard:g}){const F=m(),T=b(),I=i().pageTabs,A=y(),x=s(l);x.current=l;const L=d(e=>{const t=x.current(e);return t?{key:t.key??e.pathname,path:O(e),title:t.title}:null},[]),{language:R}=t(),[H,J]=f(w,void 0,()=>{const e=function(e,t,n){if(!e)return[];let r;try{r=JSON.parse(e)}catch{return[]}const i=r;if(!i||1!==i.v||!Array.isArray(i.tabs))return[];const l=Boolean(n&&"string"==typeof i.lang&&i.lang!==n),c=[];for(const e of i.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,i=t(r);if(!i||c.some(e=>e.key===i.key))continue;const a=!l&&"page"===e.titleFrom&&"string"==typeof e.title&&e.title;c.push({key:i.key,path:r,title:a||i.title,titleFrom:a?"page":"route",pinned:!1,lastActive:0})}return c}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(a),e=>L(C(e)),R);let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:M(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},c.map(e=>L(C(e))).filter(e=>Boolean(e)));const n=h?L(F):null;return t=n?N(t,n,k):j(t),t}),Z=s(H);Z.current=H;const $=s(/* @__PURE__ */new Map),D=h?L(F):null,E=D?.key??null;r(()=>{if(!h)return;const e=L(F);e?($.current.set(e.key,F),J({type:"visit",entry:e,maxTabs:k})):J({type:"transient"})},[F,h,k,L]),o(()=>{const e=new Set(H.tabs.map(e=>e.key));for(const t of $.current.keys())e.has(t)||$.current.delete(t)},[H.tabs]);const S=u(()=>function(e,t){const n={v:1,...t?{lang:t}:{},tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(n)}(H,R),[H,R]);o(()=>{if(a)try{localStorage.setItem(a,S)}catch{}},[S,a]);const W=H.dirty.length>0;o(()=>{if(!W)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[W]);const B=s(/* @__PURE__ */new Map),V=d((e,t)=>{let n=B.current.get(e);return void 0===n&&(n=B.current.size,B.current.set(e,n)),`${A}-page-${t}-${n}`},[A]),P=d(e=>g?g(e):n({title:I.discardTitle,message:1===e.length?I.discardOne:I.discardCount?.(e.length)??`${e.length} ${I.discardMany}`,confirmLabel:I.discardConfirm,cancelLabel:I.keepEditing,variant:"warning"}),[g,I]),X=d(()=>{const e=Z.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),G=d((e,t,n)=>{const r=Z.current,i=r.activeKey;if(!i||!e.includes(i))return void J({type:"close",keys:e,closing:null});let l=t;if(!l){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},c=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;l=(c??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??X()}J({type:"close",keys:e.filter(e=>e!==i),closing:i}),T(l)},[T,X]),Q=d(async(e,t={})=>{const n=Z.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&T(t.to),!1):!(!t.force&&Z.current.dirty.includes(e)&&!await P([n]))&&(!!Z.current.tabs.some(t=>t.key===e)&&(G([e],t.to),!0))},[P,G,T]),U=d(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}(Z.current,e,t);const r=Z.current.tabs.filter(e=>n.includes(e.key)&&Z.current.dirty.includes(e.key));r.length&&!await P(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(Z.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&G(n,void 0,"all"===e?null:t)},[P,G]),Y=d(e=>{const t=Z.current.tabs.find(t=>t.key===e);t&&e!==Z.current.activeKey&&T(t.path)},[T]),z=d((e,t)=>J({type:"title",key:e,title:t}),[]),q=d((e,t)=>J({type:"dirty",key:e,dirty:t}),[]),[_,ee]=p({}),te=d((e,t)=>{ee(n=>{if((n[e]??null)===t)return n;const r={...n};return t?r[e]=t:delete r[e],r})},[]),ne=d(e=>L(e)?.key??null,[L]),re=d(e=>$.current.get(e),[]),ie=u(()=>h?H.tabs.filter(e=>e.key!==H.closing):[],[h,H.tabs,H.closing]),le=u(()=>({enabled:h,state:H,currentKey:E,resolve:l,keyFor:ne,locationFor:re,idFor:V,activate:Y,close:Q,closeMany:U,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[h,H,E,l,ne,re,V,Y,Q,U,z,q,_,te,ie]);/* @__PURE__ */
3
- return v(K.Provider,{value:le,children:e})}var L=l.Activity,R=Boolean(L);function H({active:e,children:t}){return L?/* @__PURE__ */v(L,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */v(h,{children:t})}var J=a(function({tabKey:e,active:t,location:n,render:i,className:l,panelId:c,tabId:a}){const y=s(null),d=s(t),f=s(/* @__PURE__ */new Map);r(()=>{const e=d.current;if(d.current=t,t&&!e)for(const[e,[t,n]]of f.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):f.current.delete(e)},[t]),o(()=>{const e=y.current;if(!e)return;const t=e=>{if(!d.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&f.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const p=u(()=>({key:e,activeRef:d}),[e]);/* @__PURE__ */
4
- return v("div",{ref:y,role:c?"tabpanel":void 0,id:c,"aria-labelledby":a,hidden:!t,style:t?void 0:{display:"none"},className:l,"data-page-tab":e,children:/* @__PURE__ */v(F.Provider,{value:p,children:/* @__PURE__ */v(H,{active:t,children:i(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),Z="\0transient";function $({children:e,frameClassName:t}){const n=k(K),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
- return v("div",{className:t,children:e(r)},Z);const{state:i,currentKey:l,locationFor:c,idFor:a}=n,s=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return l&&!s.includes(l)&&s.push(l),/* @__PURE__ */g(h,{children:[s.map(n=>{const i=n===l,s=i?r:c(n);return s?/* @__PURE__ */v(J,{tabKey:n,active:i,location:s,render:e,className:t,panelId:a(n,"panel"),tabId:a(n,"tab")},n):null}),!l&&/* @__PURE__ */v(J,{tabKey:Z,active:!0,location:r,render:e,className:t},Z)]})}function D({className:t,activeClassName:n,end:r}){const l=k(K),c=i().pageTabs;if(!l||!l.enabled)return null;const{visibleTabs:a,state:s,idFor:o,activate:u,close:y,closeMany:d,resolve:f}=l;/* @__PURE__ */
6
- return v(e,{tabs:a.map(e=>({key:e.key,title:e.title,pinned:e.pinned,dirty:s.dirty.includes(e.key),copy:l.copies[e.key],icon:f(C(e.path))?.icon})),activeKey:l.currentKey??null,idFor:o,panelMounted:e=>s.mounted.includes(e),onActivate:u,onClose:e=>{y(e)},onCloseMany:(e,t)=>{d(e,t)},label:c.label,className:t,activeClassName:n,end:r})}var E={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function S(){const e=k(K);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:E}function W(){const e=k(K),t=k(F),n=b();return{key:e?.enabled&&t?t.key:null,close:d(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function B(e){const t=k(K),n=k(F),r=t?.enabled?t.setTitle:void 0,i=n?.key;o(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function V(e){const t=k(K),n=k(F),r=t?.enabled?t.setCopy:void 0,i=n?.key;o(()=>{if(r&&i)return r(i,e||null),()=>r(i,null)},[r,i,e])}function P(e){const t=k(K),n=k(F),r=t?.enabled?t.setDirty:void 0;o(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{T as DEFAULT_MAX_TABS,R as PAGE_TABS_PAUSE_HIDDEN,D as PageTabBar,$ as PageTabsOutlet,x as PageTabsProvider,C as parseTabPath,W as usePageTab,V as usePageTabCopy,P as usePageTabDirty,B as usePageTabTitle,S as usePageTabs};
2
+ import{TabStrip as e}from"../chunk-N3W6PH55.js";import{useShellLanguage as t}from"../chunk-H5NEXQTX.js";import"../chunk-6TCHOT4R.js";import{confirm as n}from"../chunk-VOY6TCS2.js";import"../chunk-ZDF5AR5W.js";import"../chunk-AFYQTVZO.js";import"../chunk-HZZNJHRH.js";import"../chunk-X4FJ54PP.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-XUF7VW4U.js";import{useShellStrings as i}from"../chunk-3JK2LSFU.js";import"../chunk-C3QOHMR6.js";import"../chunk-YKZHOXI4.js";import*as l from"react";import{createContext as c,memo as a,useRef as s,useEffect as o,useMemo as u,useId as y,useCallback as d,useReducer as f,useState as p,useContext as k}from"react";import{useLocation as m,useNavigate as b}from"react-router-dom";import{jsx as v,Fragment as h,jsxs as g}from"react/jsx-runtime";var K=c(null),F=c(null),T=12;var N=(e,t)=>e.filter(e=>e!==t);function j(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function A(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let l={...e,tabs:i,activeKey:t.key,mounted:(c=e.mounted,a=t.key,c.includes(a)?c:[...c,a]),clock:r};var c,a;return l.closing&&l.closing!==t.key?l=C(l,l.closing):l.closing===t.key&&(l={...l,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=C(n,e[0].key)}return n}(l,n)}function w(e){let t={...e,activeKey:null};return t.closing&&(t=C(t,t.closing)),t}function C(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:N(e.mounted,t),dirty:N(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function I(e,t){switch(t.type){case"visit":return A(e,t.entry,t.maxTabs);case"transient":return w(e);case"close":{let n=e;for(const e of t.keys)n=C(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:N(e.dirty,t)}}(e,t.key,t.dirty)}}var O=e=>`${e.pathname}${e.search}`;function M(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function x({children:e,resolve:l,pinned:c=[],storageKey:a,maxTabs:k=12,enabled:h=!0,confirmDiscard:g}){const F=m(),T=b(),N=i().pageTabs,C=y(),x=s(l);x.current=l;const H=d(e=>{const t=x.current(e);return t?{key:t.key??e.pathname,path:O(e),title:t.title}:null},[]),{language:L}=t(),[R,S]=f(I,void 0,()=>{const e=function(e,t,n){if(!e)return[];let r;try{r=JSON.parse(e)}catch{return[]}const i=r;if(!i||1!==i.v||!Array.isArray(i.tabs))return[];const l=Boolean(n&&"string"==typeof i.lang&&i.lang!==n),c=[];for(const e of i.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,i=t(r);if(!i||c.some(e=>e.key===i.key))continue;const a=!l&&"page"===e.titleFrom&&"string"==typeof e.title&&e.title;c.push({key:i.key,path:r,title:a||i.title,titleFrom:a?"page":"route",pinned:!1,lastActive:0})}return c}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(a),e=>H(M(e)),L);let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:j(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},c.map(e=>H(M(e))).filter(e=>Boolean(e)));const n=h?H(F):null;return t=n?A(t,n,k):w(t),t}),$=s(R);$.current=R;const D=s(/* @__PURE__ */new Map),E=h?H(F):null,J=E?.key??null;r(()=>{if(!h)return;const e=H(F);e?(D.current.set(e.key,F),S({type:"visit",entry:e,maxTabs:k})):S({type:"transient"})},[F,h,k,H]),o(()=>{const e=new Set(R.tabs.map(e=>e.key));for(const t of D.current.keys())e.has(t)||D.current.delete(t)},[R.tabs]);const P=u(()=>function(e,t){const n={v:1,...t?{lang:t}:{},tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(n)}(R,L),[R,L]);o(()=>{if(a)try{localStorage.setItem(a,P)}catch{}},[P,a]);const W=R.dirty.length>0;o(()=>{if(!W)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[W]);const X=s(/* @__PURE__ */new Map),Z=d((e,t)=>{let n=X.current.get(e);return void 0===n&&(n=X.current.size,X.current.set(e,n)),`${C}-page-${t}-${n}`},[C]),B=d(e=>g?g(e):n({title:N.discardTitle,message:1===e.length?N.discardOne:N.discardCount?.(e.length)??`${e.length} ${N.discardMany}`,confirmLabel:N.discardConfirm,cancelLabel:N.keepEditing,variant:"warning"}),[g,N]),V=d(()=>{const e=$.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),Q=d((e,t,n)=>{const r=$.current,i=r.activeKey;if(!i||!e.includes(i))return void S({type:"close",keys:e,closing:null});let l=t;if(!l){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},c=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;l=(c??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??V()}S({type:"close",keys:e.filter(e=>e!==i),closing:i}),T(l)},[T,V]),U=d(async(e,t={})=>{const n=$.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&T(t.to),!1):!(!t.force&&$.current.dirty.includes(e)&&!await B([n]))&&(!!$.current.tabs.some(t=>t.key===e)&&(Q([e],t.to),!0))},[B,Q,T]),Y=d(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}($.current,e,t);const r=$.current.tabs.filter(e=>n.includes(e.key)&&$.current.dirty.includes(e.key));r.length&&!await B(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set($.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&Q(n,void 0,"all"===e?null:t)},[B,Q]),z=d(e=>{const t=$.current.tabs.find(t=>t.key===e);t&&e!==$.current.activeKey&&T(t.path)},[T]),q=d((e,t)=>S({type:"title",key:e,title:t}),[]),G=d((e,t)=>S({type:"dirty",key:e,dirty:t}),[]),[_,ee]=p({}),te=d((e,t)=>{ee(n=>{if((n[e]??null)===t)return n;const r={...n};return t?r[e]=t:delete r[e],r})},[]),ne=d(e=>H(e)?.key??null,[H]),re=d(e=>D.current.get(e),[]),ie=u(()=>h?R.tabs.filter(e=>e.key!==R.closing):[],[h,R.tabs,R.closing]),le=u(()=>({enabled:h,state:R,currentKey:J,resolve:l,keyFor:ne,locationFor:re,idFor:Z,activate:z,close:U,closeMany:Y,setTitle:q,setDirty:G,copies:_,setCopy:te,visibleTabs:ie}),[h,R,J,l,ne,re,Z,z,U,Y,q,G,_,te,ie]);/* @__PURE__ */
3
+ return v(K.Provider,{value:le,children:e})}var H=l.Activity,L=Boolean(H);function R({active:e,children:t}){return H?/* @__PURE__ */v(H,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */v(h,{children:t})}var S=a(function({tabKey:e,active:t,location:n,render:i,className:l,panelId:c,tabId:a}){const y=s(null),d=s(t),f=s(/* @__PURE__ */new Map);r(()=>{const e=d.current;if(d.current=t,t&&!e)for(const[e,[t,n]]of f.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):f.current.delete(e)},[t]),o(()=>{const e=y.current;if(!e)return;const t=e=>{if(!d.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&f.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const p=u(()=>({key:e,activeRef:d}),[e]);/* @__PURE__ */
4
+ return v("div",{ref:y,role:c?"tabpanel":void 0,id:c,"aria-labelledby":a,hidden:!t,style:t?void 0:{display:"none"},className:l,"data-page-tab":e,children:/* @__PURE__ */v(F.Provider,{value:p,children:/* @__PURE__ */v(R,{active:t,children:i(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),$="\0transient";function D({children:e,frameClassName:t}){const n=k(K),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
+ return v("div",{className:t,children:e(r)},$);const{state:i,currentKey:l,locationFor:c,idFor:a}=n,s=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return l&&!s.includes(l)&&s.push(l),/* @__PURE__ */g(h,{children:[s.map(n=>{const i=n===l,s=i?r:c(n);return s?/* @__PURE__ */v(S,{tabKey:n,active:i,location:s,render:e,className:t,panelId:a(n,"panel"),tabId:a(n,"tab")},n):null}),!l&&/* @__PURE__ */v(S,{tabKey:$,active:!0,location:r,render:e,className:t},$)]})}function E({className:t,activeClassName:n,end:r}){const l=k(K),c=i().pageTabs;if(!l||!l.enabled)return null;const{visibleTabs:a,state:s,idFor:o,activate:u,close:y,closeMany:d,resolve:f}=l;/* @__PURE__ */
6
+ return v(e,{tabs:a.map(e=>({key:e.key,title:e.title,pinned:e.pinned,dirty:s.dirty.includes(e.key),copy:l.copies[e.key],icon:f(M(e.path))?.icon})),activeKey:l.currentKey??null,idFor:o,panelMounted:e=>s.mounted.includes(e),onActivate:u,onClose:e=>{y(e)},onCloseMany:(e,t)=>{d(e,t)},label:c.label,className:t,activeClassName:n,end:r})}var J={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function P(){const e=k(K);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:J}function W(){const e=k(K),t=k(F),n=b();return{key:e?.enabled&&t?t.key:null,close:d(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function X(e){const t=k(K),n=k(F),r=t?.enabled?t.setTitle:void 0,i=n?.key;o(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function Z(e){const t=k(K),n=k(F),r=t?.enabled?t.setCopy:void 0,i=n?.key;o(()=>{if(r&&i)return r(i,e||null),()=>r(i,null)},[r,i,e])}function B(e){const t=k(K),n=k(F),r=t?.enabled?t.setDirty:void 0;o(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{T as DEFAULT_MAX_TABS,L as PAGE_TABS_PAUSE_HIDDEN,E as PageTabBar,D as PageTabsOutlet,x as PageTabsProvider,M as parseTabPath,W as usePageTab,Z as usePageTabCopy,B as usePageTabDirty,X as usePageTabTitle,P as usePageTabs};
package/dist/pdf/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{lazy as r}from"react";var e=r(()=>import("../PdfViewer-UZGDE4HD.js"));export{e as PdfViewer};
2
+ import{lazy as r}from"react";var e=r(()=>import("../PdfViewer-4VGNBBED.js"));export{e as PdfViewer};
@@ -432,6 +432,17 @@ interface ShellStrings {
432
432
  /** The typed value box beside the range: "Opacity value". */
433
433
  value: (label: string) => string;
434
434
  };
435
+ /** `DisplayChips`: the show / hide chip of each part of a section. */
436
+ displayChips: {
437
+ /** A shown chip's description, for a screen reader. */
438
+ shown: string;
439
+ /** A hidden chip's description. */
440
+ hidden: string;
441
+ /** A shown chip's hover label: its state and what a press does. */
442
+ shownHint: string;
443
+ /** A hidden chip's hover label. */
444
+ hiddenHint: string;
445
+ };
435
446
  /** `ColorPicker`, `ColorPickerPanel` and `ColorSwatch`. The label arrives
436
447
  * as the caller wrote it; a colour arrives as the hex that is printed. */
437
448
  color: {
@@ -453,6 +464,16 @@ interface ShellStrings {
453
464
  /** The swatch that takes the colour away. */
454
465
  clear: string;
455
466
  };
467
+ /** `ImageFocusPoint`. The label arrives as the caller wrote it; the point
468
+ * arrives as the stored string, "38% 64%". */
469
+ imageFocus: {
470
+ /** The picture's accessible name: "Image focus: 38% 64%". */
471
+ picture: (label: string, value: string) => string;
472
+ /** The line under the picture, and its description: how to use it. */
473
+ hint: string;
474
+ /** Shown instead of the picture while there is none. */
475
+ noImage: string;
476
+ };
456
477
  /** `TreeEmptySlot`, a draggable `TreeRow`'s grip and `TreeSeam`. */
457
478
  tree: {
458
479
  /** What an empty list says at rest. */
@@ -1,8 +1,8 @@
1
- export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AngleScale, k as AppUpdateBanner, l as AppUpdateBannerProps, m as AttachButton, n as AttachButtonProps, o as AttachmentDropZone, p as AttachmentDropZoneProps, q as AttachmentList, r as AttachmentListProps, s as AuthScreen, t as AuthScreenProps, u as Avatar, v as AvatarGroup, w as AvatarGroupProps, x as AvatarProps, y as AvatarSize, z as AvatarStatus, B as BackgroundVariant, D as BandScale, E as Banner, F as BannerEmphasis, G as BannerProps, H as BannerTone, I as BarChart, J as BarChartProps, K as BoxPlotBox, L as BoxPlotChart, M as BoxPlotChartProps, N as BrandAssetEditor, O as BrandAssetEditorProps, Q as BrandAssetPreview, R as BrandMark, T as BrandMarkProps, U as BrandMarkSlot, V as BrandMarkSurface, W as BrandMarkTreatment, X as BreadcrumbItem, Y as Breadcrumbs, Z as BreadcrumbsProps, _ as BudgetBar, $ as BudgetBarProps, a0 as BudgetState, a1 as Button, a2 as ButtonClassesOptions, a3 as ButtonProps, a4 as ButtonSize, a5 as ButtonVariant, a6 as CHART_INK, a7 as CMD_A, a8 as CMD_DOT, a9 as CMD_ENTER, aa as CMD_K, ab as CMD_S, ac as CORNERS, ad as Calendar, ae as CalendarMode, af as CalendarProps, ag as Candle, ah as CandlestickChart, ai as CandlestickChartProps, aj as Card, ak as CardPadding, al as CardProps, am as CartesianPlot, an as CartesianPlotProps, ao as CellStyle, ap as ChartBackgroundVariant, aq as ChartBrush, ar as ChartBrushProps, as as ChartCurve, at as ChartDefs, au as ChartDefsProps, av as ChartDot, aw as ChartDotProps, ax as ChartDotVariant, ay as ChartFillVariant, az as ChartFrame, aA as ChartFrameProps, aB as ChartHighlightProvider, aC as ChartLegendEntry, aD as ChartLegendSwatch, aE as ChartRange, aF as ChartReferenceLine, aG as ChartRevealDirection, aH as ChartSkeleton, aI as ChartSkeletonProps, aJ as ChartStatusTone, aK as ChartStrokeVariant, aL as ChartTooltip, aM as ChartTooltipProps, aN as ChartTooltipRow, aO as ChatTemplate, aP as Checkbox, aQ as CheckboxProps, aR as CheckoutTemplate, aS as ChordChart, aT as ChordChartProps, aU as ColorPicker, aV as ColorPickerPanel, aW as ColorPickerPanelProps, aX as ColorPickerProps, aY as ColorPreset, aZ as ColorSwatch, a_ as ColorSwatchProps, a$ as ColorSwatchSize, b0 as ColoredBadge, b1 as ColoredBadgeProps, b2 as ColumnChart, b3 as ColumnChartProps, C as ColumnDef, b4 as ColumnSeries, b5 as ComposerAttachments, b6 as ComposerAttachmentsProps, b7 as ConfirmProvider, b8 as ContainerFillChart, b9 as ContainerFillChartProps, ba as ContainerFillItem, bb as ContextMenu, bc as ContextMenuPoint, bd as ContextMenuProps, be as ContextMenuState, bf as Corners, bg as CountBadge, bh as CountBadgeProps, bi as CountBadgeTone, bj as Curve, bk as DAY_MS, bl as DashboardTemplate, bm as DataTable, bn as DataTableColumn, bo as DataTableColumnGroup, bp as DataTableHeader, bq as DataTablePage, br as DataTableProps, bs as DataTableRowLink, bt as DataTableRowProps, bu as DatePicker, bv as DatePickerProps, bw as DateRangePicker, bx as DateRangePickerProps, by as DateTimePicker, bz as DateTimePickerProps, bA as DescriptionColumns, bB as DescriptionItem, bC as DescriptionList, bD as DescriptionListProps, bE as Dialog, bF as DialogProps, bG as DialogSize, bH as Divider, bI as DividerProps, bJ as DividerSpacing, bK as DonutChart, bL as DonutChartProps, bM as DonutSegment, bN as Drawer, bO as DrawerProps, bP as DrawerSide, bQ as DrawerSize, bR as DropdownMenu, bS as DropdownMenuAlign, bT as DropdownMenuCheckboxItem, bU as DropdownMenuDividerItem, bV as DropdownMenuEntry, bW as DropdownMenuItem, bX as DropdownMenuLabelItem, bY as DropdownMenuLinkItem, bZ as DropdownMenuProps, b_ as DropdownMenuRadioItem, b$ as DropdownMenuSide, c0 as DropdownPositionOptions, c1 as ENGLISH, c2 as ENTER, c3 as EditableGrid, c4 as EditableGridProps, c5 as EmailTemplate, c6 as EmptyState, c7 as EmptyStateProps, c8 as EmptyValue, c9 as EmptyValueProps, ca as ErrorBoundary, cb as ErrorBoundaryProps, cc as ErrorPage, cd as ErrorPageProps, ce as FileIntake, cf as FilePicker, cg as FilePickerProps, ch as FillVariant, ci as FormError, cj as FormErrorSummary, ck as FormErrorSummaryProps, cl as FormField, cm as FormFieldProps, cn as FormLayoutPage, co as FunnelChart, cp as FunnelChartProps, cq as FunnelStage, cr as GLASS_DIVIDER, ct as GROUP_COLORS, cu as GROUP_COLORS_SOLID, cv as GalleryTemplate, cw as Gap, cx as GlassOptions, cy as GlobalSearch, cz as GlobalSearchProps, cA as Grid, cB as GridCols, cC as GridColumn, cD as GridProps, cE as HeatmapChart, cF as HeatmapChartProps, cG as HelpCenter, cH as HelpCenterDoc, cI as HelpCenterProps, cJ as HexInput, cK as HistogramBin, cL as HistogramChart, cM as HistogramChartProps, cN as Hsv, cO as INPUT_BASE, cP as INPUT_SIZES, cQ as IconButton, cR as IconButtonClassesOptions, cS as IconButtonProps, cT as IconRail, cU as IconRailButton, cV as IconRailButtonProps, cW as IconRailLabels, cX as IconRailLabelsShown, cY as IconRailOrientation, cZ as IconRailProps, c_ as Inline, c$ as InlineProps, d0 as Input, d1 as InputNumber, d2 as InputNumberProps, d3 as InputProps, d4 as InputSize, d5 as Justify, d6 as Kanban, d7 as KanbanColumn, d8 as KanbanProps, d9 as Kbd, da as KbdProps, db as KbdSize, dc as Label, dd as LabelClassesOptions, de as LabelProps, df as LadderScale, dg as LanguagePanel, dh as LanguagePanelProps, di as LanguageSelect, dj as LanguageSelectProps, dk as LineChart, dl as LineChartProps, dm as LineChartSeries, dn as LinearScale, dp as ListDrop, dq as ListFooter, dr as ListLoadError, ds as ListLoadErrorProps, dt as ListMove, du as ListRow, dv as ListRowProps, dw as LoadingSpinner, dx as LoadingSpinnerProps, dy as MAX_FRACTION_DIGITS, dz as MENU_MAX_HEIGHT, dA as MOD, dB as MOTION, dC as Markdown, dC as MarkdownLite, dD as MarkdownLiteProps, dD as MarkdownProps, dE as MediaUploadField, dF as MediaUploadFieldProps, dG as MediaUploadGrid, dH as MediaUploadGridItem, dI as MediaUploadGridProps, dJ as MenuPos, dK as Meter, dL as MeterProps, dM as MetricBar, dN as MetricBarProps, dO as Milestone, dP as MilestoneKind, dQ as MilestoneTimeline, dR as MilestoneTimelineProps, dT as NEXT_CHUNK_PATH_PREFIX, dU as NativeSelect, dV as NumericKeypad, dW as NumericKeypadProps, dX as OVERLAY_OPEN_EVENT, dY as POPUP_MAX_WIDTH, dZ as POST_PRODUCTION_STATUSES, d_ as PageHeader, d$ as PageHeaderProps, P as PaginatedResponse, e0 as Pagination, e1 as PaginationProps, e2 as PaperclipGlyph, e3 as Paragraph, e4 as ParagraphProps, e5 as PieChart, e6 as PieChartProps, e7 as PieSegment, e8 as PlotGeometry, e9 as Point, ea as Popover, eb as PopoverAlign, ec as PopoverProps, ed as PopoverRenderProps, ee as PopoverSide, ef as PopupMenu, eg as PopupMenuDivider, eh as PopupMenuItem, ei as PopupMenuItemProps, ej as PopupMenuLabel, ek as PopupMenuProps, el as PopupSubmenu, em as PopupSubmenuProps, en as PortalBrandingContextValue, eo as PortalBrandingProvider, ep as PortalBrandingProviderProps, eq as ProductionTimeline, er as ProductionTimelineProps, es as ProductionTimelineSnapshot, et as ProgressItem, eu as PublicPortal, ev as PublicPortalBranding, ew as RADAR_SERIES_CAP, ex as RadarAxis, ey as RadarChart, ez as RadarChartProps, eA as RadarSeries, eB as RadialBarChart, eC as RadialBarChartProps, eD as RadialBarRow, eE as Radio, eF as RadioGroup, eG as RadioGroupOption, eH as RadioGroupOrientation, eI as RadioGroupProps, eJ as RadioProps, eK as Range, eL as RangeChart, eM as RangeChartProps, eN as RangeRow, eO as RankedBars, eP as RankedBarsProps, eQ as RankedBarsRow, eR as ResizeHandle, eS as ResizeHandleProps, eT as ResizeHandleSide, eU as ResolvedPortalBrandAsset, eV as Result, eW as ResultProps, eX as ResultStatus, eY as RevealDirection, eZ as SCATTER_SERIES_CAP, e_ as SERIES_SLOT_COUNT, e$ as SERIES_VARS, f0 as SHELL_LANGUAGE_STORAGE_KEY, f1 as SHIFT, f2 as STAGES, f3 as STALE_CHUNK_RELOAD_COOLDOWN_MS, f4 as STALE_CHUNK_RELOAD_KEY, f5 as STATUS_VARS, f6 as SankeyChart, f7 as SankeyChartProps, f8 as SankeyLink, f9 as SankeyNode, fa as ScatterChart, fb as ScatterChartProps, fc as ScatterPoint, fd as ScatterSeries, S as SearchConfig, fe as SearchListRoute, ff as SearchProvider, fg as SearchQuickAction, fh as SearchResponse, fi as SearchResult, fj as SearchableItem, fk as SearchableOption, fl as SearchableOptionGroup, fm as SearchableSelect, fn as SearchableSelectBaseProps, fo as SearchableSelectMultipleProps, fp as SearchableSelectProps, fq as Segmented, fr as SegmentedOption, fs as SegmentedProps, ft as SegmentedSize, fu as Select, fv as SelectBaseProps, fw as SelectItem, fx as SelectMultipleProps, fy as SelectOption, fz as SelectOptionGroup, fA as SelectProps, fB as SemanticGroup, fC as SettingRow, fD as SettingRowProps, fE as SeverityTone, fH as ShellLanguage, fI as ShellLanguageProvider, fJ as ShellLanguageState, fK as ShellPrefsAdapter, fL as ShellPrefsProvider, fM as SidebarActionButton, fN as SidebarActionButtonProps, fO as SidebarGroupLabel, fP as SidebarGroupLabelProps, fQ as SidebarLayout, fR as SidebarLayoutProps, fS as SidebarNavGroup, fT as SidebarNavGroupProps, fU as SidebarNavItem, fV as SidebarNavItemProps, fW as Skeleton, fX as SkeletonProps, fY as SkeletonVariant, fZ as Slider, f_ as SliderProps, f$ as SliderSize, g0 as Snippet, g1 as SnippetProps, g2 as SnippetSize, g3 as SnippetVariant, a as SortState, g4 as SortableList, g5 as SortableListProps, g6 as SortableListSpacing, g7 as Sparkline, g8 as SparklineProps, g9 as Stack, ga as StackProps, gb as StaleChunkReloadOptions, gc as StatCard, gd as StatCardProps, ge as StatTile, gf as StatTileProps, gg as Statistic, gh as StatisticProps, gi as StatisticSize, gj as StatisticTone, gk as StatusBadge, gl as StatusBadgeProvider, gm as StatusEmphasis, gn as StepItem, go as Stepper, gp as StepperProps, gq as StrokeVariant, gr as SunburstChart, gs as SunburstChartProps, gt as SunburstNode, gu as Switch, gv as SwitchProps, gw as SwitchSize, gx as TabItem, gy as Tabs, gz as TabsProps, gA as TagInput, gB as TagInputOption, gC as TagInputProps, gD as Text, gE as TextProps, gF as TextSize, gG as TextTone, gH as TextWeight, gI as Textarea, gJ as TextareaProps, gK as Theme, gL as TileButton, gM as TileButtonProps, gN as TileSize, gO as TimeAgo, gP as TimeAgoProps, gQ as TimePicker, gR as TimePickerProps, gS as TimeSeriesChart, gT as TimeSeriesChartProps, gU as TimeSeriesSeries, gV as TimelineMarker, gW as TimelineMarkerKind, gX as TimelineReport, gY as TimelineScrubProgress, gZ as TimelineTrack, g_ as TimelineTrackItem, g$ as TimelineTrackKind, h0 as TimelineTrackPending, h1 as TimelineTrackPhase, h2 as TimelineTrackPlayback, h3 as TimelineTrackProps, h4 as TimelineTrackThumb, h5 as Title, h6 as TitleLevel, h7 as TitleProps, h8 as ToastOptions, h9 as ToastPlacement, ha as Tooltip, hb as TooltipProps, hc as TopNav, hd as TopNavItem, he as TopNavProps, hf as Tree, hg as TreeDrop, hh as TreeEmptySlot, hi as TreeEmptySlotProps, hj as TreeGroup, hk as TreeGroupLabel, hl as TreeGroupProps, hm as TreeMove, hn as TreeProps, ho as TreeRow, hp as TreeRowProps, hq as TreeSeam, hr as TreeSeamProps, hs as TreemapChart, ht as TreemapChartProps, hu as TreemapItem, hv as TreemapTile, hw as UseAppUpdateOptions, hx as UseContextMenu, hy as UseProductionTimelineOpts, hz as VERSION, hA as VITE_PRELOAD_ERROR_EVENT, hB as WaterfallChart, hC as WaterfallChartProps, hD as WaterfallStep, hE as ZLayer, hF as Z_LAYERS, hG as angleScale, hH as appendKey, hI as applyCorners, hJ as applyIconSet, hK as applyThemePrefs, hL as arcPath, hM as areaBetween, hN as areaFrom, hO as autoHighlightIndex, hP as backspace, hQ as bandScale, hR as binValues, hS as budgetState, hT as bumpPath, hU as buttonClasses, hV as calcOverall, hW as calcReportOverall, hX as colorFill, hY as colorSwatchClasses, hZ as confirm, h_ as confirmDestructive, h$ as curvePath, i0 as dashFor, i2 as dismissPopups, i3 as fillFor, i4 as fillId, i5 as fmtSliderDate, i6 as fromDateKey, i7 as glassStyle, i8 as glowId, i9 as groundId, ia as groupColors, ib as hexToHsv, ic as highlightOpacity, id as hsvToHex, ie as iconButtonClasses, ig as inputClasses, ih as installStaleChunkReload, ii as isMac, ij as isSeverityTone, ik as isStaleChunkError, im as labelClasses, io as ladderScale, ip as languageSelectWidth, iq as leavesContextMenuAlone, ir as linearPath, is as linearScale, it as logScale, iu as maskId, iv as matchShellLanguage, iw as mediaFileName, ix as monotonePath, iy as niceMax, iz as openGlobalSearch, iA as parseHexColor, iB as polygonPoints, iC as popupBounds, iD as prompt, iE as pushRecentSearch, iF as radiusScale, iG as readSavedShellLanguage, iH as registerModalEscapeInterceptor, iI as resolveBrandMarkTreatment, iJ as resolveCorners, iK as resolvePortalBrandAsset, iL as resolveSeriesColor, iM as resolveShellLanguage, iN as resolveTheme, iO as sanitizeRecentSearches, iP as saveShellLanguage, iQ as seriesColor, iR as severityOf, iS as splinePath, iT as squarify, iU as stagger, iV as stepPath, iW as tabButtonId, iX as tabPanelId, iY as toDateKey, iZ as toDayMs, i_ as toISODate, i$ as toast, j0 as useAppUpdate, j1 as useClickOutside, j2 as useConfirm, j3 as useContextMenu, j4 as useDebouncedValue, j5 as useDropdownPosition, j6 as useFocusTrap, j7 as useHighlight, j8 as useIsMobile, j9 as useLocalStoragePrefs, ja as usePlotWidth, jb as usePortalBranding, jc as useProductionTimeline, jd as useScrollLock, je as useShellLanguage, jf as useShellPrefs, jg as useStatusLabel, jh as useTheme } from '../index-HMDUOPnX.js';
1
+ export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AngleScale, k as AppUpdateBanner, l as AppUpdateBannerProps, m as AttachButton, n as AttachButtonProps, o as AttachmentDropZone, p as AttachmentDropZoneProps, q as AttachmentList, r as AttachmentListProps, s as AuthScreen, t as AuthScreenProps, u as Avatar, v as AvatarGroup, w as AvatarGroupProps, x as AvatarProps, y as AvatarSize, z as AvatarStatus, B as BackgroundVariant, D as BandScale, E as Banner, F as BannerEmphasis, G as BannerProps, H as BannerTone, I as BarChart, J as BarChartProps, K as BoxPlotBox, L as BoxPlotChart, M as BoxPlotChartProps, N as BrandAssetEditor, O as BrandAssetEditorProps, Q as BrandAssetPreview, R as BrandMark, T as BrandMarkProps, U as BrandMarkSlot, V as BrandMarkSurface, W as BrandMarkTreatment, X as BreadcrumbItem, Y as Breadcrumbs, Z as BreadcrumbsProps, _ as BudgetBar, $ as BudgetBarProps, a0 as BudgetState, a1 as Button, a2 as ButtonClassesOptions, a3 as ButtonProps, a4 as ButtonSize, a5 as ButtonVariant, a6 as CHART_INK, a7 as CMD_A, a8 as CMD_DOT, a9 as CMD_ENTER, aa as CMD_K, ab as CMD_S, ac as CORNERS, ad as Calendar, ae as CalendarMode, af as CalendarProps, ag as Candle, ah as CandlestickChart, ai as CandlestickChartProps, aj as Card, ak as CardPadding, al as CardProps, am as CartesianPlot, an as CartesianPlotProps, ao as CellStyle, ap as ChartBackgroundVariant, aq as ChartBrush, ar as ChartBrushProps, as as ChartCurve, at as ChartDefs, au as ChartDefsProps, av as ChartDot, aw as ChartDotProps, ax as ChartDotVariant, ay as ChartFillVariant, az as ChartFrame, aA as ChartFrameProps, aB as ChartHighlightProvider, aC as ChartLegendEntry, aD as ChartLegendSwatch, aE as ChartRange, aF as ChartReferenceLine, aG as ChartRevealDirection, aH as ChartSkeleton, aI as ChartSkeletonProps, aJ as ChartStatusTone, aK as ChartStrokeVariant, aL as ChartTooltip, aM as ChartTooltipProps, aN as ChartTooltipRow, aO as ChatTemplate, aP as Checkbox, aQ as CheckboxProps, aR as CheckoutTemplate, aS as ChordChart, aT as ChordChartProps, aU as ColorPicker, aV as ColorPickerPanel, aW as ColorPickerPanelProps, aX as ColorPickerProps, aY as ColorPreset, aZ as ColorSwatch, a_ as ColorSwatchProps, a$ as ColorSwatchSize, b0 as ColoredBadge, b1 as ColoredBadgeProps, b2 as ColumnChart, b3 as ColumnChartProps, C as ColumnDef, b4 as ColumnSeries, b5 as ComposerAttachments, b6 as ComposerAttachmentsProps, b7 as ConfirmProvider, b8 as ContainerFillChart, b9 as ContainerFillChartProps, ba as ContainerFillItem, bb as ContextMenu, bc as ContextMenuPoint, bd as ContextMenuProps, be as ContextMenuState, bf as Corners, bg as CountBadge, bh as CountBadgeProps, bi as CountBadgeTone, bj as Curve, bk as DAY_MS, bl as DashboardTemplate, bm as DataTable, bn as DataTableColumn, bo as DataTableColumnGroup, bp as DataTableHeader, bq as DataTablePage, br as DataTableProps, bs as DataTableRowLink, bt as DataTableRowProps, bu as DatePicker, bv as DatePickerProps, bw as DateRangePicker, bx as DateRangePickerProps, by as DateTimePicker, bz as DateTimePickerProps, bA as DescriptionColumns, bB as DescriptionItem, bC as DescriptionList, bD as DescriptionListProps, bE as Dialog, bF as DialogProps, bG as DialogSize, bH as DisplayChipItem, bI as DisplayChips, bJ as DisplayChipsProps, bK as Divider, bL as DividerProps, bM as DividerSpacing, bN as DonutChart, bO as DonutChartProps, bP as DonutSegment, bQ as Drawer, bR as DrawerProps, bS as DrawerSide, bT as DrawerSize, bU as DropdownMenu, bV as DropdownMenuAlign, bW as DropdownMenuCheckboxItem, bX as DropdownMenuDividerItem, bY as DropdownMenuEntry, bZ as DropdownMenuItem, b_ as DropdownMenuLabelItem, b$ as DropdownMenuLinkItem, c0 as DropdownMenuProps, c1 as DropdownMenuRadioItem, c2 as DropdownMenuSide, c3 as DropdownPositionOptions, c4 as ENGLISH, c5 as ENTER, c6 as EditableGrid, c7 as EditableGridProps, c8 as EmailTemplate, c9 as EmptyState, ca as EmptyStateProps, cb as EmptyValue, cc as EmptyValueProps, cd as ErrorBoundary, ce as ErrorBoundaryProps, cf as ErrorPage, cg as ErrorPageProps, ch as FOCAL_DEFAULT, ci as FOCAL_NUDGE_COARSE, cj as FOCAL_NUDGE_STEP, ck as FileIntake, cl as FilePicker, cm as FilePickerProps, cn as FillVariant, co as FocalPoint, cp as FormError, cq as FormErrorSummary, cr as FormErrorSummaryProps, cs as FormField, ct as FormFieldProps, cu as FormLayoutPage, cv as FunnelChart, cw as FunnelChartProps, cx as FunnelStage, cy as GLASS_DIVIDER, cA as GROUP_COLORS, cB as GROUP_COLORS_SOLID, cC as GalleryTemplate, cD as Gap, cE as GlassOptions, cF as GlobalSearch, cG as GlobalSearchProps, cH as Grid, cI as GridCols, cJ as GridColumn, cK as GridProps, cL as HeatmapChart, cM as HeatmapChartProps, cN as HelpCenter, cO as HelpCenterDoc, cP as HelpCenterProps, cQ as HexInput, cR as HistogramBin, cS as HistogramChart, cT as HistogramChartProps, cU as Hsv, cV as INPUT_BASE, cW as INPUT_SIZES, cX as IconButton, cY as IconButtonClassesOptions, cZ as IconButtonProps, c_ as IconRail, c$ as IconRailButton, d0 as IconRailButtonProps, d1 as IconRailLabels, d2 as IconRailLabelsShown, d3 as IconRailOrientation, d4 as IconRailProps, d5 as ImageFocusPoint, d6 as ImageFocusPointProps, d7 as Inline, d8 as InlineProps, d9 as Input, da as InputNumber, db as InputNumberProps, dc as InputProps, dd as InputSize, de as Justify, df as Kanban, dg as KanbanColumn, dh as KanbanProps, di as Kbd, dj as KbdProps, dk as KbdSize, dl as Label, dm as LabelClassesOptions, dn as LabelProps, dp as LadderScale, dq as LanguagePanel, dr as LanguagePanelProps, ds as LanguageSelect, dt as LanguageSelectProps, du as LineChart, dv as LineChartProps, dw as LineChartSeries, dx as LinearScale, dy as ListDrop, dz as ListFooter, dA as ListLoadError, dB as ListLoadErrorProps, dC as ListMove, dD as ListRow, dE as ListRowProps, dF as LoadingSpinner, dG as LoadingSpinnerProps, dH as MAX_FRACTION_DIGITS, dI as MENU_MAX_HEIGHT, dJ as MOD, dK as MOTION, dL as Markdown, dL as MarkdownLite, dM as MarkdownLiteProps, dM as MarkdownProps, dN as MediaUploadField, dO as MediaUploadFieldProps, dP as MediaUploadGrid, dQ as MediaUploadGridItem, dR as MediaUploadGridProps, dS as MenuPos, dT as Meter, dU as MeterProps, dV as MetricBar, dW as MetricBarProps, dX as Milestone, dY as MilestoneKind, dZ as MilestoneTimeline, d_ as MilestoneTimelineProps, e0 as NEXT_CHUNK_PATH_PREFIX, e1 as NativeSelect, e2 as NumericKeypad, e3 as NumericKeypadProps, e4 as OVERLAY_OPEN_EVENT, e5 as POPUP_MAX_WIDTH, e6 as POST_PRODUCTION_STATUSES, e7 as PageHeader, e8 as PageHeaderProps, P as PaginatedResponse, e9 as Pagination, ea as PaginationProps, eb as PaperclipGlyph, ec as Paragraph, ed as ParagraphProps, ee as PieChart, ef as PieChartProps, eg as PieSegment, eh as PlotGeometry, ei as Point, ej as Popover, ek as PopoverAlign, el as PopoverProps, em as PopoverRenderProps, en as PopoverSide, eo as PopupMenu, ep as PopupMenuDivider, eq as PopupMenuItem, er as PopupMenuItemProps, es as PopupMenuLabel, et as PopupMenuProps, eu as PopupSubmenu, ev as PopupSubmenuProps, ew as PortalBrandingContextValue, ex as PortalBrandingProvider, ey as PortalBrandingProviderProps, ez as ProductionTimeline, eA as ProductionTimelineProps, eB as ProductionTimelineSnapshot, eC as ProgressItem, eD as PublicPortal, eE as PublicPortalBranding, eF as RADAR_SERIES_CAP, eG as RadarAxis, eH as RadarChart, eI as RadarChartProps, eJ as RadarSeries, eK as RadialBarChart, eL as RadialBarChartProps, eM as RadialBarRow, eN as Radio, eO as RadioGroup, eP as RadioGroupOption, eQ as RadioGroupOrientation, eR as RadioGroupProps, eS as RadioProps, eT as Range, eU as RangeChart, eV as RangeChartProps, eW as RangeRow, eX as RankedBars, eY as RankedBarsProps, eZ as RankedBarsRow, e_ as ResizeHandle, e$ as ResizeHandleProps, f0 as ResizeHandleSide, f1 as ResolvedPortalBrandAsset, f2 as Result, f3 as ResultProps, f4 as ResultStatus, f5 as RevealDirection, f6 as SCATTER_SERIES_CAP, f7 as SERIES_SLOT_COUNT, f8 as SERIES_VARS, f9 as SHELL_LANGUAGE_STORAGE_KEY, fa as SHIFT, fb as STAGES, fc as STALE_CHUNK_RELOAD_COOLDOWN_MS, fd as STALE_CHUNK_RELOAD_KEY, fe as STATUS_VARS, ff as SankeyChart, fg as SankeyChartProps, fh as SankeyLink, fi as SankeyNode, fj as ScatterChart, fk as ScatterChartProps, fl as ScatterPoint, fm as ScatterSeries, S as SearchConfig, fn as SearchListRoute, fo as SearchProvider, fp as SearchQuickAction, fq as SearchResponse, fr as SearchResult, fs as SearchableItem, ft as SearchableOption, fu as SearchableOptionGroup, fv as SearchableSelect, fw as SearchableSelectBaseProps, fx as SearchableSelectMultipleProps, fy as SearchableSelectProps, fz as Segmented, fA as SegmentedOption, fB as SegmentedProps, fC as SegmentedSize, fD as Select, fE as SelectBaseProps, fF as SelectItem, fG as SelectMultipleProps, fH as SelectOption, fI as SelectOptionGroup, fJ as SelectProps, fK as SemanticGroup, fL as SettingRow, fM as SettingRowProps, fN as SeverityTone, fQ as ShellLanguage, fR as ShellLanguageProvider, fS as ShellLanguageState, fT as ShellPrefsAdapter, fU as ShellPrefsProvider, fV as SidebarActionButton, fW as SidebarActionButtonProps, fX as SidebarGroupLabel, fY as SidebarGroupLabelProps, fZ as SidebarLayout, f_ as SidebarLayoutProps, f$ as SidebarNavGroup, g0 as SidebarNavGroupProps, g1 as SidebarNavItem, g2 as SidebarNavItemProps, g3 as Skeleton, g4 as SkeletonProps, g5 as SkeletonVariant, g6 as Slider, g7 as SliderProps, g8 as SliderSize, g9 as Snippet, ga as SnippetProps, gb as SnippetSize, gc as SnippetVariant, a as SortState, gd as SortableList, ge as SortableListProps, gf as SortableListSpacing, gg as Sparkline, gh as SparklineProps, gi as Stack, gj as StackProps, gk as StaleChunkReloadOptions, gl as StatCard, gm as StatCardProps, gn as StatTile, go as StatTileProps, gp as Statistic, gq as StatisticProps, gr as StatisticSize, gs as StatisticTone, gt as StatusBadge, gu as StatusBadgeProvider, gv as StatusEmphasis, gw as StepItem, gx as Stepper, gy as StepperProps, gz as StrokeVariant, gA as SunburstChart, gB as SunburstChartProps, gC as SunburstNode, gD as Switch, gE as SwitchProps, gF as SwitchSize, gG as TabItem, gH as Tabs, gI as TabsProps, gJ as TagInput, gK as TagInputOption, gL as TagInputProps, gM as Text, gN as TextProps, gO as TextSize, gP as TextTone, gQ as TextWeight, gR as Textarea, gS as TextareaProps, gT as Theme, gU as TileButton, gV as TileButtonProps, gW as TileSize, gX as TimeAgo, gY as TimeAgoProps, gZ as TimePicker, g_ as TimePickerProps, g$ as TimeSeriesChart, h0 as TimeSeriesChartProps, h1 as TimeSeriesSeries, h2 as TimelineMarker, h3 as TimelineMarkerKind, h4 as TimelineReport, h5 as TimelineScrubProgress, h6 as TimelineTrack, h7 as TimelineTrackItem, h8 as TimelineTrackKind, h9 as TimelineTrackPending, ha as TimelineTrackPhase, hb as TimelineTrackPlayback, hc as TimelineTrackProps, hd as TimelineTrackThumb, he as Title, hf as TitleLevel, hg as TitleProps, hh as ToastOptions, hi as ToastPlacement, hj as Tooltip, hk as TooltipProps, hl as TopNav, hm as TopNavItem, hn as TopNavProps, ho as Tree, hp as TreeDrop, hq as TreeEmptySlot, hr as TreeEmptySlotProps, hs as TreeGroup, ht as TreeGroupLabel, hu as TreeGroupProps, hv as TreeMove, hw as TreeProps, hx as TreeRow, hy as TreeRowProps, hz as TreeSeam, hA as TreeSeamProps, hB as TreemapChart, hC as TreemapChartProps, hD as TreemapItem, hE as TreemapTile, hF as UseAppUpdateOptions, hG as UseContextMenu, hH as UseProductionTimelineOpts, hI as VERSION, hJ as VITE_PRELOAD_ERROR_EVENT, hK as WaterfallChart, hL as WaterfallChartProps, hM as WaterfallStep, hN as ZLayer, hO as Z_LAYERS, hP as angleScale, hQ as appendKey, hR as applyCorners, hS as applyIconSet, hT as applyThemePrefs, hU as arcPath, hV as areaBetween, hW as areaFrom, hX as autoHighlightIndex, hY as backspace, hZ as bandScale, h_ as binValues, h$ as budgetState, i0 as bumpPath, i1 as buttonClasses, i2 as calcOverall, i3 as calcReportOverall, i4 as colorFill, i5 as colorSwatchClasses, i6 as confirm, i7 as confirmDestructive, i8 as curvePath, i9 as dashFor, ib as dismissPopups, ic as fillFor, id as fillId, ie as fmtSliderDate, ig as focalFromRect, ih as formatFocal, ii as fromDateKey, ij as glassStyle, ik as glowId, il as groundId, im as groupColors, io as hexToHsv, ip as highlightOpacity, iq as hsvToHex, ir as iconButtonClasses, is as inputClasses, it as installStaleChunkReload, iu as isMac, iv as isSeverityTone, iw as isStaleChunkError, iy as labelClasses, iz as ladderScale, iA as languageSelectWidth, iB as leavesContextMenuAlone, iC as linearPath, iD as linearScale, iE as logScale, iF as maskId, iG as matchShellLanguage, iH as mediaFileName, iI as monotonePath, iJ as niceMax, iK as nudgeFocal, iL as openGlobalSearch, iM as parseFocal, iN as parseHexColor, iO as polygonPoints, iP as popupBounds, iQ as prompt, iR as pushRecentSearch, iS as radiusScale, iT as readSavedShellLanguage, iU as registerModalEscapeInterceptor, iV as resolveBrandMarkTreatment, iW as resolveCorners, iX as resolvePortalBrandAsset, iY as resolveSeriesColor, iZ as resolveShellLanguage, i_ as resolveTheme, i$ as sanitizeRecentSearches, j0 as saveShellLanguage, j1 as seriesColor, j2 as severityOf, j3 as splinePath, j4 as squarify, j5 as stagger, j6 as stepPath, j7 as tabButtonId, j8 as tabPanelId, j9 as toDateKey, ja as toDayMs, jb as toISODate, jc as toast, jd as useAppUpdate, je as useClickOutside, jf as useConfirm, jg as useContextMenu, jh as useDebouncedValue, ji as useDropdownPosition, jj as useFocusTrap, jk as useHighlight, jl as useIsMobile, jm as useLocalStoragePrefs, jn as usePlotWidth, jo as usePortalBranding, jp as useProductionTimeline, jq as useScrollLock, jr as useShellLanguage, js as useShellPrefs, jt as useStatusLabel, ju as useTheme } from '../index-CzMz_Y9A.js';
2
2
  export { FileIntakeAlert, FileIntakeLimits, FileIntakeOptions, FileRejection, FileRejectionReason, acceptsFile, useFileIntake } from '../file-intake/index.js';
3
3
  export { ICON_NAMES, Icon, IconName, IconProps, IconTone, isIconName } from '../icons/index.js';
4
4
  export { a as IconDrawing, I as IconSet, b as activeIconSet, i as iconSets, c as iconsVersion, r as registerIconSet, d as registerIcons, e as resolveIcon, s as setDefaultIconSet, f as setIconSet, g as subscribeIcons } from '../registry-FHdUeVww.js';
5
- export { D as DEFAULT_SHELL_STRINGS, a as ShellStrings, S as ShellStringsOverride, b as ShellStringsProvider, u as useShellLocale, c as useShellStrings } from '../strings-ZbotP_I6.js';
5
+ export { D as DEFAULT_SHELL_STRINGS, a as ShellStrings, S as ShellStringsOverride, b as ShellStringsProvider, u as useShellLocale, c as useShellStrings } from '../strings-BEuOOURI.js';
6
6
  export { C as CurrencyFormat, D as DATE_FORMAT_OPTIONS, a as DateFormatKey, E as EMPTY_VALUE, F as FormatDateOptions, b as FormatMoneyOptions, T as TZ_AUTO, c as TimeAgoOptions, d as currencyDecimals, e as currencySymbol, f as firstDayOfWeek, g as formatBytes, h as formatDate, i as formatDateTime, j as formatMoney, k as formatTime, l as getUserDateFormat, m as getUserTimezone, s as setCurrencyFormats, n as setUserDateFormat, o as setUserTimezone, p as syncTimezoneFromProfile, t as timeAgo } from '../index-DpUDK9zG.js';
7
7
  import 'react';
8
8
  import 'react/jsx-runtime';
package/dist/ui/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{APP_UPDATE_POLL_MS,Accordion,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,Divider,DonutChart,Drawer,DropdownMenu,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,IconRail,IconRailButton,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LineChart,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,Tabs,TagInput,Text,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,inputClasses,isSeverityTone,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,parseHexColor,polygonPoints,radiusScale,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"../chunk-67PNFBCW.js";export{Breadcrumbs}from"../chunk-VJP3R52B.js";export{ResizeHandle,SidebarLayout}from"../chunk-PE4F4MJE.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"../chunk-KDRAU4XQ.js";export{EditableGrid}from"../chunk-T4CFSGSL.js";import"../chunk-BR22X7E5.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"../chunk-LK7V32MR.js";export{VERSION}from"../chunk-YKHMAGEM.js";export{toast_default as toast}from"../chunk-3DGTIWZP.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"../chunk-PQLVWCUI.js";import"../chunk-5A7MWTXX.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,buttonClasses,iconButtonClasses,popupBounds,useDropdownPosition}from"../chunk-OGXU7QFW.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"../chunk-ZZKIKW62.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,leavesContextMenuAlone}from"../chunk-ZDF5AR5W.js";import"../chunk-AFYQTVZO.js";export{GLASS_DIVIDER,glassStyle}from"../chunk-HZZNJHRH.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"../chunk-X4FJ54PP.js";import"../chunk-D65T4H6J.js";import"../chunk-XUF7VW4U.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-WNEO7TSP.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"../chunk-J3LIIIHJ.js";import"../chunk-C3QOHMR6.js";export{DATE_FORMAT_OPTIONS,EMPTY_VALUE,TZ_AUTO,currencyDecimals,currencySymbol,firstDayOfWeek,formatBytes,formatDate,formatDateTime,formatMoney,formatTime,getUserDateFormat,getUserTimezone,setCurrencyFormats,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile,timeAgo}from"../chunk-W32SKK3D.js";export{ICON_NAMES,isIconName}from"../chunk-FWOPZB6I.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"../chunk-YKZHOXI4.js";
2
+ export{APP_UPDATE_POLL_MS,Accordion,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,DonutChart,Drawer,DropdownMenu,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LineChart,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,Tabs,TagInput,Text,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,curvePath,dashFor,fillFor,fillId,fmtSliderDate,focalFromRect,formatFocal,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,inputClasses,isSeverityTone,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,nudgeFocal,parseFocal,parseHexColor,polygonPoints,radiusScale,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"../chunk-LOXV3J6X.js";export{Breadcrumbs}from"../chunk-XNHYCOPO.js";export{ResizeHandle,SidebarLayout}from"../chunk-MDI265RK.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"../chunk-DXNCJBGY.js";export{EditableGrid}from"../chunk-HKLW5KTW.js";import"../chunk-BR22X7E5.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"../chunk-H5NEXQTX.js";export{VERSION}from"../chunk-OBMR6BEP.js";export{toast_default as toast}from"../chunk-DBB4DB7J.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"../chunk-2TP4GK53.js";import"../chunk-5A7MWTXX.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,buttonClasses,iconButtonClasses,popupBounds,useDropdownPosition}from"../chunk-OGXU7QFW.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"../chunk-VOY6TCS2.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,leavesContextMenuAlone}from"../chunk-ZDF5AR5W.js";import"../chunk-AFYQTVZO.js";export{GLASS_DIVIDER,glassStyle}from"../chunk-HZZNJHRH.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"../chunk-X4FJ54PP.js";import"../chunk-D65T4H6J.js";import"../chunk-XUF7VW4U.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-FA6E75W5.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"../chunk-3JK2LSFU.js";import"../chunk-C3QOHMR6.js";export{DATE_FORMAT_OPTIONS,EMPTY_VALUE,TZ_AUTO,currencyDecimals,currencySymbol,firstDayOfWeek,formatBytes,formatDate,formatDateTime,formatMoney,formatTime,getUserDateFormat,getUserTimezone,setCurrencyFormats,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile,timeAgo}from"../chunk-W32SKK3D.js";export{ICON_NAMES,isIconName}from"../chunk-FWOPZB6I.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"../chunk-YKZHOXI4.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-shell",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "Desktop-style React UI shell — windows, taskbar, start menu, sticky notes, frosted glass theming, and bundled apps.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",