efficient-shell 8.22.0 → 8.23.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 (299) hide show
  1. package/README.md +31 -0
  2. package/dist/{Browser-VZU2MTSA.js → Browser-6DBCKZYW.js} +14 -14
  3. package/dist/Calculator-WZIBSVDK.js +29 -0
  4. package/dist/{CurrencyConverter-BSQCX3HS.js → CurrencyConverter-BX5HDEX6.js} +8 -8
  5. package/dist/{Documents-NR3T434J.js → Documents-YPOCP5OP.js} +10 -10
  6. package/dist/Files-33ONRECZ.js +87 -0
  7. package/dist/{Notepad-M5MCY5DV.js → Notepad-MOWWMSOT.js} +10 -10
  8. package/dist/{PdfViewer-OODU3XIT.js → PdfViewer-67VBUIRD.js} +1 -1
  9. package/dist/PomodoroTimer-LBFYGZHA.js +91 -0
  10. package/dist/{Preview-QTDCPMCL.js → Preview-OUCMOCOE.js} +26 -26
  11. package/dist/Sidebar-OIWVKYUU.js +43 -0
  12. package/dist/{Spreadsheet-V2EWOJML.js → Spreadsheet-GC7GNZ7C.js} +12 -12
  13. package/dist/{Stock-U3G45T36.js → Stock-5TKATE4I.js} +3 -3
  14. package/dist/{Weather-GEC4VHLM.js → Weather-NQJCUUUN.js} +17 -17
  15. package/dist/{WorldClock-6ORV4NHF.js → WorldClock-QYZF2JCO.js} +6 -6
  16. package/dist/ai/index.js +13 -13
  17. package/dist/apps/index.d.ts +1 -1
  18. package/dist/apps/index.js +1 -1
  19. package/dist/bin/media-host-check.js +1 -1
  20. package/dist/bin/ui-check.js +1 -1
  21. package/dist/charts/BoxPlotChart.js +1 -1
  22. package/dist/charts/CandlestickChart.js +1 -1
  23. package/dist/charts/CartesianPlot.js +1 -1
  24. package/dist/charts/ChartBrush.js +1 -1
  25. package/dist/charts/ChartFrame.js +1 -1
  26. package/dist/charts/ChartSkeleton.js +1 -1
  27. package/dist/charts/ChordChart.js +1 -1
  28. package/dist/charts/ColumnChart.js +1 -1
  29. package/dist/charts/FunnelChart.js +1 -1
  30. package/dist/charts/HeatmapChart.js +1 -1
  31. package/dist/charts/HistogramChart.js +1 -1
  32. package/dist/charts/Meter.js +1 -1
  33. package/dist/charts/PieChart.js +1 -1
  34. package/dist/charts/RadarChart.js +1 -1
  35. package/dist/charts/RadialBarChart.js +1 -1
  36. package/dist/charts/RangeChart.js +1 -1
  37. package/dist/charts/RankedBars.js +1 -1
  38. package/dist/charts/SankeyChart.js +1 -1
  39. package/dist/charts/ScatterChart.js +1 -1
  40. package/dist/charts/StatTile.js +1 -1
  41. package/dist/charts/SunburstChart.js +1 -1
  42. package/dist/charts/TimeSeriesChart.js +1 -1
  43. package/dist/charts/TreemapChart.js +1 -1
  44. package/dist/charts/WaterfallChart.js +1 -1
  45. package/dist/chunk-3EKWDVBV.js +29 -0
  46. package/dist/{chunk-W7ZAFS7C.js → chunk-3GHBY2FP.js} +7 -7
  47. package/dist/{chunk-WXIEWJF7.js → chunk-3PGK3VFS.js} +1 -1
  48. package/dist/{chunk-I2FHDMIN.js → chunk-3PNKI44X.js} +6 -6
  49. package/dist/{chunk-KFSNSDTW.js → chunk-3V5Z2BJY.js} +12 -12
  50. package/dist/chunk-3WC6ITJ3.js +11 -0
  51. package/dist/{chunk-Q6A6W3DI.js → chunk-3XQGEILM.js} +1 -1
  52. package/dist/{chunk-QSN7X27F.js → chunk-4CFOKYVR.js} +7 -7
  53. package/dist/{chunk-D3BDPSVV.js → chunk-4F3IKYUO.js} +6 -6
  54. package/dist/{chunk-QUS3C264.js → chunk-4NXMMWL6.js} +1 -1
  55. package/dist/{chunk-PHYI7M45.js → chunk-4VLKDANH.js} +1 -1
  56. package/dist/{chunk-6AJM3QNG.js → chunk-4YUCXIRP.js} +1 -1
  57. package/dist/{chunk-C3ZZDCBU.js → chunk-5FTHHLJH.js} +16 -16
  58. package/dist/{chunk-VWMTQLVS.js → chunk-5PY4H4ZJ.js} +1 -1
  59. package/dist/{chunk-R4JU7MU2.js → chunk-64FIE4SX.js} +7 -7
  60. package/dist/chunk-6NMDKOQA.js +7 -0
  61. package/dist/{chunk-PFB2NSSS.js → chunk-6WSTN5A3.js} +5 -5
  62. package/dist/{chunk-R5FFVK2W.js → chunk-72YFU346.js} +1 -1
  63. package/dist/{chunk-SDORX5C2.js → chunk-77FLITYM.js} +6 -6
  64. package/dist/{chunk-DIZW2GZP.js → chunk-7CFH6Y4T.js} +1 -1
  65. package/dist/{chunk-3UL7IB25.js → chunk-BI6ZLD4X.js} +7 -7
  66. package/dist/chunk-BIYL7CEI.js +2 -0
  67. package/dist/{chunk-X2U5XB7J.js → chunk-BMZSMXE6.js} +1 -1
  68. package/dist/chunk-BOBUSE33.js +2 -0
  69. package/dist/{chunk-VNYFGNHO.js → chunk-BRHIRE4D.js} +4 -4
  70. package/dist/{chunk-QZRH7L2E.js → chunk-BSNWVZHW.js} +1 -1
  71. package/dist/{chunk-74HUZZPT.js → chunk-BY2OWWKC.js} +1 -1
  72. package/dist/chunk-CRLSG5AY.js +9 -0
  73. package/dist/{chunk-F6YMKW5G.js → chunk-CZ25A5RS.js} +1 -1
  74. package/dist/{chunk-V4WNEJ63.js → chunk-D2AUUIKG.js} +1 -1
  75. package/dist/{chunk-RIGW3E5M.js → chunk-D7FT2PXG.js} +5 -5
  76. package/dist/{chunk-SSOLRTVS.js → chunk-DFDDRKIJ.js} +1 -1
  77. package/dist/{chunk-5EK4DFB5.js → chunk-DISSJYKV.js} +7 -7
  78. package/dist/{chunk-BUWOFJGM.js → chunk-DITCVBR7.js} +10 -10
  79. package/dist/chunk-DODH46ZQ.js +8 -0
  80. package/dist/{chunk-IMDLBXO3.js → chunk-DTSCO7VM.js} +1 -1
  81. package/dist/{chunk-ZY62UQI2.js → chunk-DZNG34DC.js} +19 -19
  82. package/dist/{chunk-YF7A3BWA.js → chunk-E5ALJIXV.js} +4 -4
  83. package/dist/chunk-E6UCGCOC.js +1 -0
  84. package/dist/{chunk-TSOBVLV5.js → chunk-ECWSWLQR.js} +1 -1
  85. package/dist/{chunk-PZFETJAG.js → chunk-EJUR35JG.js} +1 -1
  86. package/dist/{chunk-DIW6WT5L.js → chunk-ERMZ75FO.js} +1 -1
  87. package/dist/{chunk-F6YIUCIJ.js → chunk-EYKUKN32.js} +4 -4
  88. package/dist/{chunk-XUQQCKKD.js → chunk-EYX6KLCZ.js} +1 -1
  89. package/dist/{chunk-NYLXA2EG.js → chunk-EZ3BQ6PK.js} +7 -7
  90. package/dist/{chunk-SFWIYB4T.js → chunk-FL2PUQX7.js} +1 -1
  91. package/dist/chunk-FRPNTDP4.js +8 -0
  92. package/dist/{chunk-X7JK22X2.js → chunk-GATKJSGL.js} +5 -5
  93. package/dist/{chunk-56C5SEZ7.js → chunk-GIM2422N.js} +1 -1
  94. package/dist/{chunk-HLZZ5Q5E.js → chunk-GQACKEKW.js} +16 -16
  95. package/dist/{chunk-TCN7XUCY.js → chunk-GWIPZKZJ.js} +4 -4
  96. package/dist/{chunk-GVNDUNQL.js → chunk-H3BC4KDE.js} +1 -1
  97. package/dist/{chunk-IUBWN3OA.js → chunk-HVX37PKU.js} +1 -1
  98. package/dist/{chunk-OPFCLDVM.js → chunk-IHQX4GYD.js} +1 -1
  99. package/dist/{chunk-6PWLY2LQ.js → chunk-IZCODCSC.js} +1 -1
  100. package/dist/{chunk-KBLMTCTD.js → chunk-JEXXJK7H.js} +1 -1
  101. package/dist/{chunk-MRLQH2GZ.js → chunk-JNDBRSYZ.js} +2 -2
  102. package/dist/{chunk-ONEF47LG.js → chunk-JPP7UWQA.js} +3 -3
  103. package/dist/{chunk-SH6ZLK4K.js → chunk-JWIKHVF4.js} +8 -8
  104. package/dist/{chunk-SO4WAMVA.js → chunk-K7KQDPLW.js} +5 -5
  105. package/dist/{chunk-5OGWWBJY.js → chunk-KDZUWQEG.js} +1 -1
  106. package/dist/{chunk-CJKDYVNE.js → chunk-KKSW5IZ7.js} +6 -6
  107. package/dist/{chunk-POMS7YQN.js → chunk-KZHPX4FM.js} +2 -2
  108. package/dist/{chunk-TYZ4IY7F.js → chunk-LBLV64XG.js} +2 -2
  109. package/dist/{chunk-35VA5UFB.js → chunk-LK2SICMI.js} +1 -1
  110. package/dist/{chunk-3APQ5V6P.js → chunk-LLLAIPFX.js} +1 -1
  111. package/dist/{chunk-WBU7NZBP.js → chunk-M5P6A7KS.js} +1 -1
  112. package/dist/{chunk-52L6IBTN.js → chunk-MAOJENIB.js} +1 -1
  113. package/dist/{chunk-ZLGU4VYO.js → chunk-MEYYQC43.js} +5 -5
  114. package/dist/{chunk-7AINUMUA.js → chunk-MMFJBWJC.js} +1 -1
  115. package/dist/{chunk-MIZO6SQ3.js → chunk-MTXTJLFK.js} +2 -2
  116. package/dist/{chunk-BJKZYQFA.js → chunk-MXHEREC6.js} +3 -3
  117. package/dist/chunk-N3GETPME.js +1 -0
  118. package/dist/{chunk-BBYHBN3R.js → chunk-NHCRQ7SW.js} +1 -1
  119. package/dist/chunk-NID6MGGC.js +13 -0
  120. package/dist/{chunk-SLORZA7W.js → chunk-NMK4UQXZ.js} +12 -12
  121. package/dist/{chunk-QLAQ6ASB.js → chunk-NT26CWMZ.js} +5 -5
  122. package/dist/{chunk-GTKNEJ3X.js → chunk-NVE6L27I.js} +8 -8
  123. package/dist/{chunk-CQZEO4UV.js → chunk-NWP6IJYK.js} +9 -9
  124. package/dist/{chunk-AXQBQH55.js → chunk-OFOLUFNB.js} +15 -15
  125. package/dist/chunk-OSA24YH6.js +19 -0
  126. package/dist/{chunk-IOESXYEI.js → chunk-OVVXSAGE.js} +8 -8
  127. package/dist/{chunk-Z4UKLPGE.js → chunk-PDXD6DT7.js} +1 -1
  128. package/dist/{chunk-ALYBCDHU.js → chunk-PNGL4ZW2.js} +6 -6
  129. package/dist/{chunk-2TBC254V.js → chunk-PNQ4EYYM.js} +3 -3
  130. package/dist/{chunk-JXGYIV44.js → chunk-PPFMXLEX.js} +9 -9
  131. package/dist/{chunk-IJICE6KT.js → chunk-Q3OCGLW7.js} +2 -2
  132. package/dist/{chunk-D7AA5WE2.js → chunk-QFA5COE6.js} +1 -1
  133. package/dist/{chunk-ZI7P5YGF.js → chunk-QQCHLRKG.js} +1 -1
  134. package/dist/{chunk-XCHY6QVH.js → chunk-QQK3XS6H.js} +8 -8
  135. package/dist/{chunk-46M6AYFJ.js → chunk-R6DGLGB3.js} +1 -1
  136. package/dist/chunk-RGBX3EVC.js +11 -0
  137. package/dist/chunk-RSO67DWS.js +8 -0
  138. package/dist/{chunk-GKTCCPME.js → chunk-RUQEB2ZC.js} +3 -3
  139. package/dist/{chunk-5LNFW5E4.js → chunk-RYBJ6MMM.js} +1 -1
  140. package/dist/{chunk-2RJKMYON.js → chunk-S7VSXUKS.js} +3 -3
  141. package/dist/{chunk-O3NLPJH2.js → chunk-SB7OTZI4.js} +19 -19
  142. package/dist/{chunk-5B73MLXV.js → chunk-SBHFEWR6.js} +1 -1
  143. package/dist/chunk-SG2MTCA2.js +100 -0
  144. package/dist/chunk-SXORVKIZ.js +9 -0
  145. package/dist/{chunk-CREVU3AF.js → chunk-TW7TA2AB.js} +1 -1
  146. package/dist/{chunk-JLPTSC66.js → chunk-TXS6JKFV.js} +1 -1
  147. package/dist/{chunk-DQB3ORB7.js → chunk-UB4BTRSB.js} +5 -5
  148. package/dist/{chunk-4ELYV3L6.js → chunk-UKB2I3UK.js} +1 -1
  149. package/dist/{chunk-LQHWFL5Y.js → chunk-UQZWPA5M.js} +2 -2
  150. package/dist/{chunk-XFIMTNUH.js → chunk-UVUBZL7K.js} +1 -1
  151. package/dist/{chunk-JGZLLQAN.js → chunk-UX6HNRFV.js} +7 -7
  152. package/dist/chunk-VTVOQS5L.js +20 -0
  153. package/dist/{chunk-V23TPYHO.js → chunk-VU6VPKM3.js} +6 -6
  154. package/dist/{chunk-F3AROMIU.js → chunk-W5M6P4DZ.js} +6 -6
  155. package/dist/{chunk-L2JOLPJR.js → chunk-WGSK7HEY.js} +1 -1
  156. package/dist/{chunk-WQKGBPOQ.js → chunk-WJ3XSJ6B.js} +1 -1
  157. package/dist/{chunk-TJPPV7KZ.js → chunk-WTY3SXO7.js} +1 -1
  158. package/dist/{chunk-2IV4XF3Y.js → chunk-WYN5KVU4.js} +3 -3
  159. package/dist/chunk-X6PPP6NX.js +14 -0
  160. package/dist/{chunk-6DT7HG3F.js → chunk-XHBQPVNG.js} +1 -1
  161. package/dist/{chunk-5BBDUKQP.js → chunk-Y2D2YMFY.js} +12 -12
  162. package/dist/{chunk-ZVTOB4RE.js → chunk-Y4MI6NRI.js} +1 -1
  163. package/dist/{chunk-ZMLRNHMS.js → chunk-Y5T257HX.js} +3 -3
  164. package/dist/{chunk-FW2EEIDB.js → chunk-YCQVEJOT.js} +2 -2
  165. package/dist/{chunk-JACPHDTK.js → chunk-YDYDR72S.js} +1 -1
  166. package/dist/chunk-YSFLXPUS.js +7 -0
  167. package/dist/{chunk-BJEBOXTR.js → chunk-YW2DH6YQ.js} +3 -3
  168. package/dist/{chunk-74QAQXSB.js → chunk-Z2YGQBLZ.js} +1 -1
  169. package/dist/{chunk-U4QZIU7X.js → chunk-ZEKM6HAA.js} +2 -2
  170. package/dist/{chunk-352MVBF7.js → chunk-ZN3O2KJ7.js} +18 -18
  171. package/dist/{chunk-FDENTKSM.js → chunk-ZOSIPTXM.js} +5 -5
  172. package/dist/{chunk-SRMRRJ5K.js → chunk-ZSRRV44J.js} +1 -1
  173. package/dist/{chunk-2JYQF3PJ.js → chunk-ZTB6EMC7.js} +1 -1
  174. package/dist/data/DataTable.js +1 -1
  175. package/dist/data/Kanban.js +1 -1
  176. package/dist/data/ListFooter.js +1 -1
  177. package/dist/data/ListLoadError.js +1 -1
  178. package/dist/data/Pagination.js +1 -1
  179. package/dist/file-intake/index.js +1 -1
  180. package/dist/forms/BorderInput.js +1 -1
  181. package/dist/forms/BrandAssetEditor.js +1 -1
  182. package/dist/forms/Calendar.js +1 -1
  183. package/dist/forms/ColorPicker.js +1 -1
  184. package/dist/forms/ComposerAttachments.js +1 -1
  185. package/dist/forms/CornersInput.js +1 -1
  186. package/dist/forms/DatePicker.js +1 -1
  187. package/dist/forms/DateRangePicker.js +1 -1
  188. package/dist/forms/DateTimePicker.js +1 -1
  189. package/dist/forms/DisplayChips.js +1 -1
  190. package/dist/forms/FilePicker.js +1 -1
  191. package/dist/forms/FormErrorSummary.js +1 -1
  192. package/dist/forms/IconPicker.js +1 -1
  193. package/dist/forms/ImageFocusPoint.js +1 -1
  194. package/dist/forms/InputNumber.js +1 -1
  195. package/dist/forms/LinkPicker.js +1 -1
  196. package/dist/forms/MediaLibrary.js +1 -1
  197. package/dist/forms/MediaUploadField.js +1 -1
  198. package/dist/forms/MediaUploadGrid.js +1 -1
  199. package/dist/forms/MediaUsedInList.js +1 -1
  200. package/dist/forms/NumericKeypad.js +1 -1
  201. package/dist/forms/PositionInput.js +1 -1
  202. package/dist/forms/Select.js +1 -1
  203. package/dist/forms/SidesInput.js +1 -1
  204. package/dist/forms/Slider.js +1 -1
  205. package/dist/forms/Snippet.js +1 -1
  206. package/dist/forms/TagInput.js +1 -1
  207. package/dist/forms/TextToolbar.js +1 -1
  208. package/dist/forms/TimePicker.js +1 -1
  209. package/dist/forms/WidthsBar.js +1 -1
  210. package/dist/forms/mediaLibraryMenu.js +1 -1
  211. package/dist/forms/mediaMoveItems.js +1 -1
  212. package/dist/forms/useFileIntake.js +1 -1
  213. package/dist/index.d.ts +18 -4
  214. package/dist/index.js +380 -380
  215. package/dist/locales/zh-Hans.js +1 -1
  216. package/dist/map/index.js +2 -2
  217. package/dist/page-tabs/index.js +5 -5
  218. package/dist/pdf/index.js +1 -1
  219. package/dist/shell/Accordion.js +1 -1
  220. package/dist/shell/AppUpdateBanner.js +1 -1
  221. package/dist/shell/Avatar.js +1 -1
  222. package/dist/shell/Banner.js +1 -1
  223. package/dist/shell/Breadcrumbs.js +1 -1
  224. package/dist/shell/BudgetBar.js +1 -1
  225. package/dist/shell/Card.js +1 -1
  226. package/dist/shell/ColoredBadge.js +1 -1
  227. package/dist/shell/ConfirmDialog.js +1 -1
  228. package/dist/shell/ContainerFillChart.js +1 -1
  229. package/dist/shell/CountBadge.js +1 -1
  230. package/dist/shell/Dialog.js +1 -1
  231. package/dist/shell/Drawer.js +1 -1
  232. package/dist/shell/EditableGrid.js +1 -1
  233. package/dist/shell/EmptyState.js +1 -1
  234. package/dist/shell/GlobalSearch.js +1 -1
  235. package/dist/shell/HelpCenter.js +1 -1
  236. package/dist/shell/IconRail.js +1 -1
  237. package/dist/shell/ImageLightbox.js +1 -1
  238. package/dist/shell/LanguageSelect.js +1 -1
  239. package/dist/shell/Markdown.js +1 -1
  240. package/dist/shell/MetricBar.js +1 -1
  241. package/dist/shell/MetricBarLegend.js +1 -1
  242. package/dist/shell/MilestoneTimeline.js +1 -1
  243. package/dist/shell/PageHeader.js +1 -1
  244. package/dist/shell/ProductionTimeline.js +1 -1
  245. package/dist/shell/ResizeHandle.js +1 -1
  246. package/dist/shell/Result.js +1 -1
  247. package/dist/shell/SearchableSelect.js +1 -1
  248. package/dist/shell/SettingReset.js +1 -1
  249. package/dist/shell/SettingRow.js +1 -1
  250. package/dist/shell/SidebarLayout.js +1 -1
  251. package/dist/shell/SidebarNav.js +1 -1
  252. package/dist/shell/SortableList.js +1 -1
  253. package/dist/shell/Statistic.js +1 -1
  254. package/dist/shell/TimeAgo.js +1 -1
  255. package/dist/shell/TimelineTrack.js +1 -1
  256. package/dist/shell/TransferProgress.js +1 -1
  257. package/dist/shell/Tree.js +1 -1
  258. package/dist/shell/language.js +1 -1
  259. package/dist/shell/strings.d.ts +5 -0
  260. package/dist/shell/strings.js +1 -1
  261. package/dist/shell/toast.js +1 -1
  262. package/dist/telemetry/index.js +1 -1
  263. package/dist/templates/AuthScreen.js +1 -1
  264. package/dist/templates/ChatTemplate.js +1 -1
  265. package/dist/templates/CheckoutTemplate.js +1 -1
  266. package/dist/templates/DashboardTemplate.js +1 -1
  267. package/dist/templates/DataTablePage.js +1 -1
  268. package/dist/templates/EmailTemplate.js +1 -1
  269. package/dist/templates/ErrorBoundary.js +1 -1
  270. package/dist/templates/ErrorPage.js +1 -1
  271. package/dist/templates/FormLayoutPage.js +1 -1
  272. package/dist/templates/GalleryTemplate.js +1 -1
  273. package/dist/{types-BOinJXUf.d.ts → types-ClT92-8Z.d.ts} +13 -1
  274. package/dist/ui/index.js +1 -1
  275. package/dist/version.js +1 -1
  276. package/package.json +1 -1
  277. package/dist/Calculator-DKZHOHOD.js +0 -29
  278. package/dist/Files-QMV2E74S.js +0 -87
  279. package/dist/PomodoroTimer-I423ZZOQ.js +0 -91
  280. package/dist/Sidebar-UVBEI4DQ.js +0 -43
  281. package/dist/chunk-6JCIQ7XL.js +0 -8
  282. package/dist/chunk-6UBBY54N.js +0 -2
  283. package/dist/chunk-B73YLHD2.js +0 -99
  284. package/dist/chunk-CPM3BQGV.js +0 -14
  285. package/dist/chunk-DSYIKLOK.js +0 -11
  286. package/dist/chunk-EUOFKZI3.js +0 -19
  287. package/dist/chunk-LVAGFIWK.js +0 -2
  288. package/dist/chunk-MWNZY33B.js +0 -13
  289. package/dist/chunk-NE42BDQX.js +0 -9
  290. package/dist/chunk-NHFLTKPK.js +0 -11
  291. package/dist/chunk-O5KDTFK5.js +0 -8
  292. package/dist/chunk-PMOGQHYX.js +0 -20
  293. package/dist/chunk-RPK3U2K2.js +0 -9
  294. package/dist/chunk-RPTQCFLR.js +0 -29
  295. package/dist/chunk-URFWJZTV.js +0 -7
  296. package/dist/chunk-VKMEQKYT.js +0 -1
  297. package/dist/chunk-W7NZKU27.js +0 -7
  298. package/dist/chunk-YPXVOPL4.js +0 -1
  299. package/dist/chunk-Z5TCGLCM.js +0 -8
@@ -0,0 +1,43 @@
1
+ import{useAuth as e,parseOpenSections as t,readStored as a,RAIL_OPEN_SECTIONS_KEY as r,RAIL_WIDTH_KEY as n,toggleOpenSection as i,writeStored as l}from"./chunk-Y65MPP3M.js";import{ResizeHandle as o}from"./chunk-KZHPX4FM.js";import{openGlobalSearch as s}from"./chunk-K7KQDPLW.js";import{partitionNav as c,flyoutGroups as d,visibleSectionItems as m,rowsContainRoute as h,visibleNavChildren as u}from"./chunk-WGRS6QBT.js";import{BrandMark as p}from"./chunk-MI67DI3H.js";import{IconButton_default as b}from"./chunk-4CANQ3B3.js";import{RAIL_MENU_GAP as g,navSections as f,startMenuCategories as y,TAB_STRIP_H as x,RAIL_COLLAPSED_INSET as k,RAIL_W as v,RAIL_MAX_W as N,RAIL_MIN_W as C,navIcons as j,sectionIcons as w}from"./chunk-CY5N5OA3.js";import"./chunk-5A7MWTXX.js";import"./chunk-PKXQDCNR.js";import{PopupMenu as S,PopupMenuItem as L,PopupMenuDivider as W,PopupMenuLabel as z}from"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-QR4RM7PO.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import{Icon as $}from"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import{useShellStrings as M}from"./chunk-E6UCGCOC.js";import"./chunk-C3QOHMR6.js";import{useMemo as R,useState as A,useRef as I,useEffect as K,isValidElement as T,cloneElement as D}from"react";import{jsx as H,jsxs as Q,Fragment as P}from"react/jsx-runtime";var B="undefined"!=typeof navigator&&/Mac|iPhone|iPad/.test(navigator.platform);function J(e,t,a){const r=Math.max(8,a-t.bottom);return{left:e+g,bottom:r,maxHeight:a-r-8,overflowY:"auto"}}var O=(e,t)=>["flex h-(--row-height-menu) w-full items-center gap-3 rounded-md px-3 text-left text-sm font-medium transition-colors",t?"justify-center px-0":"",e?"bg-gray-100 text-gray-900":"text-gray-600 hover:bg-gray-100 hover:text-gray-900"].join(" "),U="flex size-[18px] shrink-0 items-center justify-center [&>svg]:size-[18px]";function X({open:e}){/* @__PURE__ */
2
+ return H($,{name:"chevron-down",className:"size-4 shrink-0 transition-transform "+(e?"rotate-180":""),strokeWidth:2,"aria-hidden":"true"})}function G({dir:e}){/* @__PURE__ */
3
+ return H($,"left"===e?{name:"chevron-double-left",className:"size-[18px] shrink-0",strokeWidth:1.5,"aria-hidden":"true"}:{name:"chevron-double-right",className:"size-[18px] shrink-0",strokeWidth:1.5,"aria-hidden":"true"})}function _({className:e}){/* @__PURE__ */
4
+ return H($,{name:"search",className:e,strokeWidth:2,"aria-hidden":"true"})}var F=e=>.75+1.75*e+"rem";function V({width:V,collapsed:Y,onToggleCollapsed:Z,onResize:E,onHome:q,onOpen:ee,activeRoute:te,profile:ae,user:re,onLogout:ne,onSwitchToDesktop:ie,onReportBug:le,onClose:oe,navSections:se=f,navIcons:ce=j,sectionIcons:de=w,categories:me=y,productName:he,productIcon:ue,tagline:pe,adaptiveLogo:be=!1,logoHasAlpha:ge=null,logoIsLight:fe=null}){const ye=M().layout,{hasAnyPerm:xe}=e(),ke=R(()=>c(se,me,xe),[se,me,xe]),[ve,Ne]=A(()=>t(a(r))),Ce=e=>Ne(t=>{const a=i(t,e);return l(r,JSON.stringify([...a])),a}),[je,we]=A(null),[Se,Le]=A(!1),We=I(null);K(()=>{Y||we(null)},[Y]);const ze=(e,t)=>{we(null),e.onSelect?e.onSelect():ee(e.to,!!t&&(e=>e.metaKey||e.ctrlKey||1===e.button)(t))},$e=(e,t)=>{const a=t[e];/* @__PURE__ */
5
+ return H("span",{className:U,"aria-hidden":"true",children:a&&T(a)?D(a,{className:"size-[18px]"}):a})},Me=(e,t)=>{const a=u(e,xe),r=e.menuLabel??e.label;if(a.length>0){const n=`child:${e.to}`,i=ve.has(n),l=!i&&h(a,te,xe);/* @__PURE__ */
6
+ return Q("div",{children:[
7
+ /* @__PURE__ */Q("button",{type:"button",onClick:()=>Ce(n),"aria-expanded":i,className:O(l,!1),style:t>0?{paddingLeft:F(t)}:void 0,children:[0===t&&$e(e.to,ce),
8
+ /* @__PURE__ */H("span",{className:"min-w-0 flex-1 truncate",children:r}),
9
+ /* @__PURE__ */H(X,{open:i})]}),i&&/* @__PURE__ */H("div",{className:"space-y-0.5 pt-0.5",children:a.map(e=>Me(e,t+1))}),e.dividerAfter&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200",style:{marginLeft:F(t)},"aria-hidden":"true"})]},e.to)}const n=e.to===te;/* @__PURE__ */
10
+ return Q("div",{children:[
11
+ /* @__PURE__ */Q("button",{type:"button",onClick:t=>ze(e,t),onAuxClick:t=>{1===t.button&&ze(e,t)},"aria-current":n?"page":void 0,className:O(n,!1),style:t>0?{paddingLeft:F(t)}:void 0,children:[0===t&&$e(e.to,ce),
12
+ /* @__PURE__ */H("span",{className:"min-w-0 flex-1 truncate",children:r})]}),e.dividerAfter&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200",style:{marginLeft:F(t)},"aria-hidden":"true"})]},e.to)},Re=(e,t)=>{const a=t?e.items:m(e,xe);if(0===a.length)return null;const r="icon"in e&&e.icon?/* @__PURE__ */H("span",{className:U,"aria-hidden":"true",children:e.icon}):$e(e.label,de),n=e.menuLabel??e.label,i=h(a,te,xe),l="dividerAfter"in e&&e.dividerAfter;if(Y)/* @__PURE__ */
13
+ return Q("div",{children:[
14
+ /* @__PURE__ */H("button",{type:"button",title:n,"aria-label":n,"aria-haspopup":"menu","aria-expanded":je?.label===e.label,onClick:t=>{const r=t.currentTarget.getBoundingClientRect();we(t=>t?.label===e.label?null:{label:e.label,items:a,top:r.top})},className:O(i||je?.label===e.label,!0),children:r}),l&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200","aria-hidden":"true"})]},e.label);const o=ve.has(e.label),s=`rosh-rail-${e.label.replace(/[^a-z0-9]+/gi,"-").toLowerCase()}`;/* @__PURE__ */
15
+ return Q("div",{children:[
16
+ /* @__PURE__ */Q("button",{type:"button",onClick:()=>Ce(e.label),"aria-expanded":o,"aria-controls":s,className:O(!o&&i,!1),children:[r,
17
+ /* @__PURE__ */H("span",{className:"min-w-0 flex-1 truncate",children:n}),
18
+ /* @__PURE__ */H(X,{open:o})]}),
19
+ /* @__PURE__ */H("div",{id:s,role:"group","aria-label":n,hidden:!o,className:"space-y-0.5 pt-0.5",children:o&&a.map(e=>Me(e,1))}),l&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200","aria-hidden":"true"})]},e.label)},Ae=ae?.first_name?`${ae.first_name} ${ae.last_name||""}`.trim():re?.email||"",Ie=(ae?.first_name?.charAt(0)||re?.email?.charAt(0)||"?").toUpperCase(),Ke=ae?.avatar_url?/* @__PURE__ */H("img",{src:ae.avatar_url,alt:"",className:"size-8 shrink-0 rounded-full object-cover"}):/* @__PURE__ */H("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full bg-blue-600 text-xs font-semibold text-white",children:Ie}),Te=Se?We.current?.getBoundingClientRect():void 0,De=Y?"":"px-3",He=Y?{paddingInline:k}:void 0,Qe=`${Y?ye.expandSidebar:ye.collapseSidebar} (${B?"⌘":"Ctrl"} .)`,Pe=q?{run:q,label:ye.goHome,title:ye.goHome}:oe?null:{run:Z,label:Y?ye.expandSidebar:ye.collapseSidebar,title:Qe},Be=/* @__PURE__ */Q(P,{children:[ue&&/* @__PURE__ */H(p,{src:ue,alt:"",slot:"compact",surface:"light",adaptive:be,hasAlpha:ge,isLight:fe,size:28,decorative:!0}),!Y&&/* @__PURE__ */Q("span",{className:"min-w-0 text-left leading-tight",children:[
20
+ /* @__PURE__ */H("span",{className:"block truncate text-base font-bold tracking-wide text-gray-900",children:he??"Apps"}),pe&&/* @__PURE__ */H("span",{className:"block truncate text-2xs font-medium text-gray-500",children:pe})]})]}),Je=ke.erpSections.length>0||ke.systemSections.length>0||ke.virtualSections.length>0;/* @__PURE__ */
21
+ return Q("aside",{"aria-label":ye.navLabel,className:"fixed left-0 top-0 z-(--z-sidebar) flex h-dvh flex-col border-r border-gray-200 bg-white text-gray-800",style:{width:V},children:[
22
+ /* @__PURE__ */Q("div",{className:"flex shrink-0 items-center border-b border-gray-200 "+(Y?"justify-center":"justify-between gap-2 pl-4 pr-2"),style:{height:x},children:[Pe?/* @__PURE__ */H("button",{type:"button",onClick:Pe.run,"aria-label":Pe.label,title:Pe.title,className:"flex min-w-0 items-center gap-2 rounded-md transition-colors hover:bg-gray-100 "+(Y?"justify-center p-0.5":"-ml-1 p-1"),children:Be}):/* @__PURE__ */H("span",{className:"flex min-w-0 items-center gap-2",children:Be}),oe?/* @__PURE__ */H(b,{onClick:oe,"aria-label":ye.closeMenu,children:/* @__PURE__ */H($,{name:"close",className:"size-[18px]",strokeWidth:1.5,"aria-hidden":"true"})}):!Y&&/* @__PURE__ */H("button",{type:"button",onClick:Z,"aria-label":ye.collapseSidebar,title:`${ye.collapseSidebar} (${B?"⌘":"Ctrl"} .)`,className:"flex size-8 shrink-0 items-center justify-center rounded-md text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900",children:/* @__PURE__ */H(G,{dir:"left"})})]}),
23
+ /* @__PURE__ */H("div",{className:`shrink-0 pt-3 ${De}`,style:He,children:Y?/* @__PURE__ */H("button",{type:"button",onClick:s,"aria-label":ye.search,title:`${ye.search} (${B?"⌘K":"Ctrl K"})`,className:O(!1,!0),children:/* @__PURE__ */H(_,{className:"size-[18px] shrink-0"})}):/* @__PURE__ */Q("button",{type:"button",onClick:s,className:"flex h-(--row-height-menu) w-full items-center gap-2 rounded-md border border-gray-200 bg-white px-3 text-left transition-colors hover:bg-gray-100",children:[
24
+ /* @__PURE__ */H(_,{className:"size-3.5 text-gray-500"}),
25
+ /* @__PURE__ */H("span",{className:"min-w-0 flex-1 truncate text-sm text-gray-500",children:ye.search}),
26
+ /* @__PURE__ */H("kbd",{className:"rounded border border-gray-200 bg-gray-100 px-2 py-0.5 font-mono text-2xs font-semibold text-gray-500",children:B?"⌘K":"Ctrl K"})]})}),
27
+ /* @__PURE__ */Q("nav",{"aria-label":ye.navLabel,className:`min-h-0 flex-1 overflow-y-auto pb-4 pt-3 ${De} ${Y?"space-y-1":"space-y-0.5"}`,style:He,children:[Y&&/* @__PURE__ */H("button",{type:"button",onClick:Z,"aria-label":ye.expandSidebar,title:`${ye.expandSidebar} (${B?"⌘":"Ctrl"} .)`,className:`${O(!1,!0)} mb-3`,children:/* @__PURE__ */H(G,{dir:"right"})}),ke.topItems.map(e=>{if(!Y)return Me(e,0);const t=u(e,xe),a=e.to===te||h(t,te,xe),r=e.menuLabel??e.label;/* @__PURE__ */
28
+ return Q("div",{children:[
29
+ /* @__PURE__ */H("button",{type:"button",title:r,"aria-label":r,onClick:a=>{if(0===t.length)return void ze(e,a);const r=a.currentTarget.getBoundingClientRect();we(a=>a?.label===e.to?null:{label:e.to,items:t,top:r.top})},className:O(a,!0),children:$e(e.to,ce)}),e.dividerAfter&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200","aria-hidden":"true"})]},e.to)}),ke.topItems.length>0&&Je&&!ke.topItems[ke.topItems.length-1].dividerAfter&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200","aria-hidden":"true"}),ke.erpSections.map(e=>Re(e,!1)),ke.systemSections.map(e=>Re(e,!1)),ke.virtualSections.map(e=>Re(e,!0)),ke.footerSections.length>0&&/* @__PURE__ */H("div",{className:"mx-2 my-2 border-t border-gray-200","aria-hidden":"true"}),ke.footerSections.map(e=>Re(e,!1))]}),
30
+ /* @__PURE__ */H("div",{className:`shrink-0 border-t border-gray-200 py-2 ${De}`,style:He,children:/* @__PURE__ */Q("button",{ref:We,type:"button",onClick:()=>Le(e=>!e),"aria-haspopup":"menu","aria-expanded":Se,"aria-label":Y?ye.accountMenu(Ae):void 0,className:"flex w-full items-center gap-3 rounded-md hover:bg-gray-100 "+(Y?"justify-center py-2":"px-2 py-2"),children:[Ke,!Y&&/* @__PURE__ */Q("span",{className:"min-w-0 flex-1 text-left",children:[
31
+ /* @__PURE__ */H("span",{className:"block truncate text-sm font-semibold text-gray-800",children:Ae}),re?.email&&Ae!==re.email&&/* @__PURE__ */H("span",{className:"block truncate text-2xs text-gray-500",children:re.email})]})]})}),E&&!Y&&!oe&&/* @__PURE__ */H(o,{side:"left",width:V,onResize:E,min:C,max:N,defaultWidth:v,storageKey:n,label:ye.resizeSidebar}),Se&&Te&&/* @__PURE__ */Q(S,{portal:!0,minWidth:224,onClose:()=>Le(!1),style:J(V,Te,window.innerHeight),children:[Y&&/* @__PURE__ */Q("div",{className:"border-b border-gray-200 px-3 py-3",children:[
32
+ /* @__PURE__ */H("p",{className:"truncate text-sm font-semibold text-gray-800",children:Ae}),re?.email&&/* @__PURE__ */H("p",{className:"truncate text-xs text-gray-500",children:re.email})]}),
33
+ /* @__PURE__ */Q(L,{onClick:()=>{Le(!1),ee("/profile",!1)},children:[
34
+ /* @__PURE__ */H($,{name:"account",className:"h-4 w-4",strokeWidth:1.5,"aria-hidden":"true"}),ye.profile]}),ke.footerItems.map(e=>/* @__PURE__ */Q(L,{onClick:()=>{Le(!1),ze(e)},children:[
35
+ /* @__PURE__ */H("span",{className:"h-4 w-4 [&>svg]:size-4","aria-hidden":"true",children:ce[e.to]}),e.menuLabel??e.label]},e.to)),le&&/* @__PURE__ */Q(L,{onClick:()=>{Le(!1),le()},children:[
36
+ /* @__PURE__ */H($,{name:"error",className:"h-4 w-4",strokeWidth:1.5,"aria-hidden":"true"}),ye.reportIssue]}),
37
+ /* @__PURE__ */H(W,{}),ie&&/* @__PURE__ */Q(P,{children:[
38
+ /* @__PURE__ */Q(L,{onClick:()=>{Le(!1),ie()},children:[
39
+ /* @__PURE__ */H($,{name:"desktop",className:"h-4 w-4",strokeWidth:1.5,"aria-hidden":"true"}),ye.switchToDesktop]}),
40
+ /* @__PURE__ */H(W,{})]}),
41
+ /* @__PURE__ */Q(L,{danger:!0,onClick:()=>{Le(!1),ne()},children:[
42
+ /* @__PURE__ */H($,{name:"logout",className:"h-4 w-4",strokeWidth:1.5,"aria-hidden":"true"}),ye.signOut]})]}),je&&Y&&/* @__PURE__ */H(S,{portal:!0,minWidth:220,onClose:()=>we(null),style:{left:V+g,top:Math.min(je.top,window.innerHeight-48*Math.min(je.items.length,10)-16)},children:d(je.items,xe).map((e,t)=>/* @__PURE__ */Q("div",{role:e.heading?"group":void 0,"aria-label":e.heading?e.heading.menuLabel??e.heading.label:void 0,children:[t>0&&/* @__PURE__ */H(W,{}),e.heading&&/* @__PURE__ */H(z,{children:e.heading.menuLabel??e.heading.label}),e.items.map(e=>/* @__PURE__ */Q(L,{onClick:()=>ze(e),children:[$e(e.to,ce),
43
+ /* @__PURE__ */H("span",{className:e.to===te?"font-semibold":"",children:e.menuLabel??e.label})]},e.to))]},e.heading?.to??`run-${t}`))})]})}export{J as accountMenuPosition,V as default};
@@ -1,19 +1,19 @@
1
- import{EditableGrid as e}from"./chunk-JXGYIV44.js";import"./chunk-BR22X7E5.js";import{AboutApp as t}from"./chunk-LQHWFL5Y.js";import{peekSpreadsheetPreviewStage as r,claimSpreadsheetPreviewStage as n,SPREADSHEET_PREVIEW_UPDATE_EVENT as o}from"./chunk-VTVSMRFX.js";import{WindowTitle as a}from"./chunk-B73YLHD2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-IUBWN3OA.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-SFWIYB4T.js";import"./chunk-352MVBF7.js";import"./chunk-FW2EEIDB.js";import"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-74HUZZPT.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-YPXVOPL4.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-VKMEQKYT.js";import"./chunk-C3QOHMR6.js";import{useRef as l,useState as s,useEffect as c,useCallback as i}from"react";import{jsxs as u,jsx as d,Fragment as h}from"react/jsx-runtime";var m="ABCDEFGHIJKLMNOPQRSTUVWXYZ",p=10,x=30;function g(e){return e<26?m[e]:m[Math.floor(e/26)-1]+m[e%26]}function y(e){return Array.from({length:e},(e,t)=>({key:`col_${t}`,title:g(t),width:100}))}function b(e,t){return Array.from({length:e},()=>Array(t).fill(""))}function f(e){return{id:crypto.randomUUID(),name:e,columns:y(p),data:b(x,p),cellStyles:{}}}function v(e){return e.split("\n").map(e=>{if(e.includes("\t"))return e.split("\t").map(e=>e.trim());const t=[];let r="",n=!1;for(const o of e)'"'!==o?","!==o||n?r+=o:(t.push(r.trim()),r=""):n=!n;return t.push(r.trim()),t}).filter(e=>e.some(e=>e.trim()))}function k(e,t){const r=v(e);if(0===r.length)return null;const n=Math.max(p,r.reduce((e,t)=>Math.max(e,t.length),0)),o=r.map(e=>{for(;e.length<n;)e.push("");return e});for(;o.length<x;)o.push(Array(n).fill(""));return{id:crypto.randomUUID(),name:t,columns:y(n),data:o,cellStyles:{}}}function w(){const m=l(null),g=l(void 0);void 0===g.current&&(g.current=r());const w=l(g.current?.data??null),j=(()=>{const e=g.current;if(!e)return null;const t=k(e.data.csv,"Sheet 1");if(!t)return null;return{sheet:t,title:e.data.filename.replace(/\.(csv|tsv|txt)$/i,"")}})(),[N,C]=s(j?[j.sheet]:[f("Sheet 1")]),[S,U]=s(0),M=l([]),D=l(N),L=l(!1);c(()=>{L.current?L.current=!1:D.current!==N&&(M.current.push(D.current),M.current.length>50&&M.current.shift()),D.current=N},[N]);const E=i(()=>{const e=M.current.pop();e&&(L.current=!0,C(e))},[]);c(()=>{const e=e=>{if(!m.current?.contains(document.activeElement)&&!m.current?.matches(":focus-within"))return;(e.ctrlKey||e.metaKey)&&!e.shiftKey&&("z"===e.key||"Z"===e.key)&&(e.preventDefault(),E())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[E]);const[R,$]=s(j?.title??"Untitled"),[A,K]=s(()=>g.current?.data.onEmail),B=i(e=>{const t=k(e.csv,"Sheet 1");t&&(C([t]),U(0),$(e.filename.replace(/\.(csv|tsv|txt)$/i,"")),K(()=>e.onEmail))},[]);c(()=>{const e=g.current;null!=e&&(n(e),e.data!==w.current&&B(e.data))},[]),c(()=>{const e=g.current?.token;if(null==e)return;const t=t=>{const r=t.detail;r&&r.token===e&&B(r.data)};return window.addEventListener(o,t),()=>window.removeEventListener(o,t)},[]);const[F,T]=s(!1),[V,W]=s(null),[I,J]=s(""),Q=l(null),[X,O]=s("1"),[G,Y]=s("10"),H=N[S]||N[0],P=H.data,Z=H.columns,z=H.cellStyles??{},[_,q]=s(null),[ee,te]=s(null),re=i(()=>{if(ee){const e=Math.min(ee.anchor.row,ee.end.row),t=Math.max(ee.anchor.row,ee.end.row),r=Math.min(ee.anchor.col,ee.end.col),n=Math.max(ee.anchor.col,ee.end.col),o=[];for(let a=e;a<=t;a++)for(let e=r;e<=n;e++)o.push({row:a,col:e});return o}return _?[_]:[]},[ee,_]),ne=i((e,t)=>{const r=re();0!==r.length&&C(n=>n.map((n,o)=>{if(o!==S)return n;const a={...n.cellStyles??{}},l=`${r[0].row}:${r[0].col}`,s=void 0!==t?t:!(a[l]??{})[e];for(const{row:t,col:n}of r){const r=`${t}:${n}`;a[r]={...a[r]??{},[e]:s}}return{...n,cellStyles:a}}))},[re,S]),oe=ee?{row:ee.anchor.row,col:ee.anchor.col}:_,ae=oe?z[`${oe.row}:${oe.col}`]??{}:{},le=!!oe,se=i(e=>{C(t=>t.map((t,r)=>r===S?{...t,...e}:t))},[S]),ce=i(e=>{const t=e.reduce((e,t)=>Math.max(e,t.length),0);t!==Z.length?se({data:e,columns:y(t)}):se({data:e})},[se,Z.length]),ie=(e,t)=>{C(r=>r.map((r,n)=>n===e?{...r,name:t}:r)),W(null)},ue=()=>P.filter(e=>e.some(e=>e.trim())).map(e=>e.map(e=>e.includes(",")||e.includes('"')||e.includes("\n")?`"${e.replace(/"/g,'""')}"`:e).join(",")).join("\n"),de=[];P.forEach(e=>e.forEach(e=>{const t=parseFloat(e);!isNaN(t)&&e.trim()&&de.push(t)}));const he=P.reduce((e,t)=>e+t.filter(e=>e.trim()).length,0);/* @__PURE__ */
1
+ import{EditableGrid as e}from"./chunk-PPFMXLEX.js";import"./chunk-BR22X7E5.js";import{AboutApp as t}from"./chunk-UQZWPA5M.js";import{peekSpreadsheetPreviewStage as r,claimSpreadsheetPreviewStage as n,SPREADSHEET_PREVIEW_UPDATE_EVENT as o}from"./chunk-VTVSMRFX.js";import{WindowTitle as a}from"./chunk-SG2MTCA2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-HVX37PKU.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-FL2PUQX7.js";import"./chunk-ZN3O2KJ7.js";import"./chunk-YCQVEJOT.js";import"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-BY2OWWKC.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-N3GETPME.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-E6UCGCOC.js";import"./chunk-C3QOHMR6.js";import{useRef as l,useState as s,useEffect as c,useCallback as i}from"react";import{jsxs as u,jsx as d,Fragment as h}from"react/jsx-runtime";var m="ABCDEFGHIJKLMNOPQRSTUVWXYZ",p=10,x=30;function g(e){return e<26?m[e]:m[Math.floor(e/26)-1]+m[e%26]}function y(e){return Array.from({length:e},(e,t)=>({key:`col_${t}`,title:g(t),width:100}))}function b(e,t){return Array.from({length:e},()=>Array(t).fill(""))}function f(e){return{id:crypto.randomUUID(),name:e,columns:y(p),data:b(x,p),cellStyles:{}}}function v(e){return e.split("\n").map(e=>{if(e.includes("\t"))return e.split("\t").map(e=>e.trim());const t=[];let r="",n=!1;for(const o of e)'"'!==o?","!==o||n?r+=o:(t.push(r.trim()),r=""):n=!n;return t.push(r.trim()),t}).filter(e=>e.some(e=>e.trim()))}function k(e,t){const r=v(e);if(0===r.length)return null;const n=Math.max(p,r.reduce((e,t)=>Math.max(e,t.length),0)),o=r.map(e=>{for(;e.length<n;)e.push("");return e});for(;o.length<x;)o.push(Array(n).fill(""));return{id:crypto.randomUUID(),name:t,columns:y(n),data:o,cellStyles:{}}}function w(){const m=l(null),g=l(void 0);void 0===g.current&&(g.current=r());const w=l(g.current?.data??null),j=(()=>{const e=g.current;if(!e)return null;const t=k(e.data.csv,"Sheet 1");if(!t)return null;return{sheet:t,title:e.data.filename.replace(/\.(csv|tsv|txt)$/i,"")}})(),[C,N]=s(j?[j.sheet]:[f("Sheet 1")]),[S,U]=s(0),M=l([]),E=l(C),D=l(!1);c(()=>{D.current?D.current=!1:E.current!==C&&(M.current.push(E.current),M.current.length>50&&M.current.shift()),E.current=C},[C]);const L=i(()=>{const e=M.current.pop();e&&(D.current=!0,N(e))},[]);c(()=>{const e=e=>{if(!m.current?.contains(document.activeElement)&&!m.current?.matches(":focus-within"))return;(e.ctrlKey||e.metaKey)&&!e.shiftKey&&("z"===e.key||"Z"===e.key)&&(e.preventDefault(),L())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[L]);const[R,A]=s(j?.title??"Untitled"),[K,$]=s(()=>g.current?.data.onEmail),T=i(e=>{const t=k(e.csv,"Sheet 1");t&&(N([t]),U(0),A(e.filename.replace(/\.(csv|tsv|txt)$/i,"")),$(()=>e.onEmail))},[]);c(()=>{const e=g.current;null!=e&&(n(e),e.data!==w.current&&T(e.data))},[]),c(()=>{const e=g.current?.token;if(null==e)return;const t=t=>{const r=t.detail;r&&r.token===e&&T(r.data)};return window.addEventListener(o,t),()=>window.removeEventListener(o,t)},[]);const[W,X]=s(!1),[B,F]=s(null),[J,O]=s(""),Q=l(null),[V,G]=s("1"),[P,I]=s("10"),H=C[S]||C[0],Y=H.data,Z=H.columns,z=H.cellStyles??{},[_,q]=s(null),[ee,te]=s(null),re=i(()=>{if(ee){const e=Math.min(ee.anchor.row,ee.end.row),t=Math.max(ee.anchor.row,ee.end.row),r=Math.min(ee.anchor.col,ee.end.col),n=Math.max(ee.anchor.col,ee.end.col),o=[];for(let a=e;a<=t;a++)for(let e=r;e<=n;e++)o.push({row:a,col:e});return o}return _?[_]:[]},[ee,_]),ne=i((e,t)=>{const r=re();0!==r.length&&N(n=>n.map((n,o)=>{if(o!==S)return n;const a={...n.cellStyles??{}},l=`${r[0].row}:${r[0].col}`,s=void 0!==t?t:!(a[l]??{})[e];for(const{row:t,col:n}of r){const r=`${t}:${n}`;a[r]={...a[r]??{},[e]:s}}return{...n,cellStyles:a}}))},[re,S]),oe=ee?{row:ee.anchor.row,col:ee.anchor.col}:_,ae=oe?z[`${oe.row}:${oe.col}`]??{}:{},le=!!oe,se=i(e=>{N(t=>t.map((t,r)=>r===S?{...t,...e}:t))},[S]),ce=i(e=>{const t=e.reduce((e,t)=>Math.max(e,t.length),0);t!==Z.length?se({data:e,columns:y(t)}):se({data:e})},[se,Z.length]),ie=(e,t)=>{N(r=>r.map((r,n)=>n===e?{...r,name:t}:r)),F(null)},ue=()=>Y.filter(e=>e.some(e=>e.trim())).map(e=>e.map(e=>e.includes(",")||e.includes('"')||e.includes("\n")?`"${e.replace(/"/g,'""')}"`:e).join(",")).join("\n"),de=[];Y.forEach(e=>e.forEach(e=>{const t=parseFloat(e);!isNaN(t)&&e.trim()&&de.push(t)}));const he=Y.reduce((e,t)=>e+t.filter(e=>e.trim()).length,0);/* @__PURE__ */
2
2
  return u("div",{ref:m,className:"flex flex-col h-full",children:[
3
3
  /* @__PURE__ */d(a,{title:`${me=R||"Untitled",me.length>24?`${me.slice(0,23)}…`:me} - Spreadsheets`}),
4
4
  /* @__PURE__ */d(t,{app:"spreadsheet"}),
5
- /* @__PURE__ */u("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-gray-200 bg-gray-50 shrink-0",children:[F?/* @__PURE__ */d("input",{type:"text",value:R,onChange:e=>$(e.target.value),onBlur:()=>T(!1),onKeyDown:e=>{"Enter"===e.key&&T(!1)},autoFocus:!0,className:"text-sm font-medium text-gray-900 border border-gray-300 rounded px-2 py-0.5 w-40 focus:border-blue-500 focus:ring-blue-500"}):/* @__PURE__ */d("button",{onClick:()=>T(!0),className:"text-sm font-medium text-gray-900 hover:text-blue-600 truncate max-w-[200px]",title:"Click to rename",children:R||"Untitled"}),
5
+ /* @__PURE__ */u("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-gray-200 bg-gray-50 shrink-0",children:[W?/* @__PURE__ */d("input",{type:"text",value:R,onChange:e=>A(e.target.value),onBlur:()=>X(!1),onKeyDown:e=>{"Enter"===e.key&&X(!1)},autoFocus:!0,className:"text-sm font-medium text-gray-900 border border-gray-300 rounded px-2 py-0.5 w-40 focus:border-blue-500 focus:ring-blue-500"}):/* @__PURE__ */d("button",{onClick:()=>X(!0),className:"text-sm font-medium text-gray-900 hover:text-blue-600 truncate max-w-[200px]",title:"Click to rename",children:R||"Untitled"}),
6
6
  /* @__PURE__ */d("div",{className:"h-4 w-px bg-gray-300"}),
7
- /* @__PURE__ */d("input",{ref:Q,type:"file",accept:".csv,.tsv,.txt,.xlsx,.xls,.ods",onChange:async e=>{const t=e.target.files?.[0];if(!t)return;const r=t.name.replace(/\.(csv|tsv|txt|xlsx|xls|ods)$/i,"");if(/\.(xlsx|xls|ods)$/i.test(t.name)){const e=new Uint8Array(await t.arrayBuffer()),n=await(import("xlsx")),o=n.read(e,{type:"array"}),a=o.SheetNames.map(e=>{const t=n.utils.sheet_to_json(o.Sheets[e],{header:1,defval:""}),r=Math.max(p,t.reduce((e,t)=>Math.max(e,t.length),0)),a=t.map(e=>{const t=e.map(e=>String(e??""));for(;t.length<r;)t.push("");return t});for(;a.length<x;)a.push(Array(r).fill(""));return{id:crypto.randomUUID(),name:e,columns:y(r),data:a}});C(a),U(0),$(r)}else{const e=v(await t.text());if(0===e.length)return;const n=Math.max(p,e.reduce((e,t)=>Math.max(e,t.length),0)),o=e.map(e=>{for(;e.length<n;)e.push("");return e});for(;o.length<x;)o.push(Array(n).fill(""));se({columns:y(n),data:o}),$(r)}Q.current&&(Q.current.value="")},className:"hidden"}),
7
+ /* @__PURE__ */d("input",{ref:Q,type:"file",accept:".csv,.tsv,.txt,.xlsx,.xls,.ods",onChange:async e=>{const t=e.target.files?.[0];if(!t)return;const r=t.name.replace(/\.(csv|tsv|txt|xlsx|xls|ods)$/i,"");if(/\.(xlsx|xls|ods)$/i.test(t.name)){const e=new Uint8Array(await t.arrayBuffer()),n=await(import("xlsx")),o=n.read(e,{type:"array"}),a=o.SheetNames.map(e=>{const t=n.utils.sheet_to_json(o.Sheets[e],{header:1,defval:""}),r=Math.max(p,t.reduce((e,t)=>Math.max(e,t.length),0)),a=t.map(e=>{const t=e.map(e=>String(e??""));for(;t.length<r;)t.push("");return t});for(;a.length<x;)a.push(Array(r).fill(""));return{id:crypto.randomUUID(),name:e,columns:y(r),data:a}});N(a),U(0),A(r)}else{const e=v(await t.text());if(0===e.length)return;const n=Math.max(p,e.reduce((e,t)=>Math.max(e,t.length),0)),o=e.map(e=>{for(;e.length<n;)e.push("");return e});for(;o.length<x;)o.push(Array(n).fill(""));se({columns:y(n),data:o}),A(r)}Q.current&&(Q.current.value="")},className:"hidden"}),
8
8
  /* @__PURE__ */d("button",{onClick:()=>Q.current?.click(),className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"Open"}),
9
- /* @__PURE__ */d("button",{onClick:()=>{const e=new Blob([ue()],{type:"text/csv"}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=`${R||"spreadsheet"}.csv`,r.click(),URL.revokeObjectURL(t)},className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"Save CSV"}),A&&/* @__PURE__ */d("button",{onClick:()=>A(ue(),`${R||"spreadsheet"}.csv`),className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"Email"}),
9
+ /* @__PURE__ */d("button",{onClick:()=>{const e=new Blob([ue()],{type:"text/csv"}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=`${R||"spreadsheet"}.csv`,r.click(),URL.revokeObjectURL(t)},className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"Save CSV"}),K&&/* @__PURE__ */d("button",{onClick:()=>K(ue(),`${R||"spreadsheet"}.csv`),className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"Email"}),
10
10
  /* @__PURE__ */d("div",{className:"h-4 w-px bg-gray-300"}),
11
11
  /* @__PURE__ */u("div",{className:"flex items-center gap-1",children:[
12
- /* @__PURE__ */d("input",{type:"number",min:"1",max:"50",value:X,onChange:e=>O(e.target.value),className:"w-10 text-xs text-center border border-gray-300 rounded px-1 py-0.5 focus:border-blue-500 focus:ring-blue-500"}),
13
- /* @__PURE__ */d("button",{onClick:()=>(e=>{const t=Z.length+e;se({columns:y(t),data:P.map(t=>[...t,...Array(e).fill("")])})})(parseInt(X)||1),className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"+ Col"})]}),
12
+ /* @__PURE__ */d("input",{type:"number",min:"1",max:"50",value:V,onChange:e=>G(e.target.value),className:"w-10 text-xs text-center border border-gray-300 rounded px-1 py-0.5 focus:border-blue-500 focus:ring-blue-500"}),
13
+ /* @__PURE__ */d("button",{onClick:()=>(e=>{const t=Z.length+e;se({columns:y(t),data:Y.map(t=>[...t,...Array(e).fill("")])})})(parseInt(V)||1),className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"+ Col"})]}),
14
14
  /* @__PURE__ */u("div",{className:"flex items-center gap-1",children:[
15
- /* @__PURE__ */d("input",{type:"number",min:"1",max:"500",value:G,onChange:e=>Y(e.target.value),className:"w-10 text-xs text-center border border-gray-300 rounded px-1 py-0.5 focus:border-blue-500 focus:ring-blue-500"}),
16
- /* @__PURE__ */d("button",{onClick:()=>{return e=parseInt(G)||10,void se({data:[...P,...Array.from({length:e},()=>Array(Z.length).fill(""))]});var e},className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"+ Row"})]}),
15
+ /* @__PURE__ */d("input",{type:"number",min:"1",max:"500",value:P,onChange:e=>I(e.target.value),className:"w-10 text-xs text-center border border-gray-300 rounded px-1 py-0.5 focus:border-blue-500 focus:ring-blue-500"}),
16
+ /* @__PURE__ */d("button",{onClick:()=>{return e=parseInt(P)||10,void se({data:[...Y,...Array.from({length:e},()=>Array(Z.length).fill(""))]});var e},className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"+ Row"})]}),
17
17
  /* @__PURE__ */d("div",{className:"h-4 w-px bg-gray-300"}),
18
18
  /* @__PURE__ */d("button",{onClick:()=>{se({columns:y(p),data:b(x,p)})},className:"text-xs text-gray-600 hover:text-gray-900 px-2 py-1 rounded hover:bg-gray-200 transition-colors",children:"Clear"}),
19
19
  /* @__PURE__ */d("div",{className:"h-4 w-px bg-gray-300"}),
@@ -26,12 +26,12 @@ return u("div",{ref:m,className:"flex flex-col h-full",children:[
26
26
  /* @__PURE__ */d("option",{value:"base",children:"S"}),
27
27
  /* @__PURE__ */d("option",{value:"lg",children:"M"}),
28
28
  /* @__PURE__ */d("option",{value:"xl",children:"L"})]})]})]}),
29
- /* @__PURE__ */d("div",{className:"flex-1 min-h-0",children:/* @__PURE__ */d(e,{columns:Z,data:P,onChange:ce,onColumnsChange:e=>se({columns:e}),cellStyles:z,onFocusChange:q,onSelectionChange:te,minRows:x,maxHeight:"100%"})}),
29
+ /* @__PURE__ */d("div",{className:"flex-1 min-h-0",children:/* @__PURE__ */d(e,{columns:Z,data:Y,onChange:ce,onColumnsChange:e=>se({columns:e}),cellStyles:z,onFocusChange:q,onSelectionChange:te,minRows:x,maxHeight:"100%"})}),
30
30
  /* @__PURE__ */u("div",{className:"flex items-center border-t border-gray-200 bg-gray-50 shrink-0",children:[
31
- /* @__PURE__ */u("div",{className:"flex items-center gap-0.5 px-1 py-1 overflow-x-auto flex-1 min-w-0",children:[N.map((e,t)=>/* @__PURE__ */d("button",{onClick:()=>U(t),onDoubleClick:()=>{W(t),J(e.name)},onContextMenu:e=>{e.preventDefault(),N.length>1&&(e=>{N.length<=1||(C(t=>t.filter((t,r)=>r!==e)),S>=e&&S>0&&U(S-1))})(t)},className:"px-3 py-1 text-xs font-medium rounded-b whitespace-nowrap transition-colors "+(t===S?"bg-white text-blue-700 border border-t-0 border-gray-300 -mt-px relative z-10":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"),children:V===t?/* @__PURE__ */d("input",{type:"text",value:I,onChange:e=>J(e.target.value),onBlur:()=>ie(t,I||e.name),onKeyDown:r=>{"Enter"===r.key&&ie(t,I||e.name),"Escape"===r.key&&W(null)},onClick:e=>e.stopPropagation(),autoFocus:!0,className:"w-20 text-xs border border-blue-400 rounded px-1 py-0 focus:ring-0 focus:outline-none"}):e.name},e.id)),
32
- /* @__PURE__ */d("button",{onClick:()=>{const e=`Sheet ${N.length+1}`;C(t=>[...t,f(e)]),U(N.length)},className:"px-2 py-1 text-xs text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded",title:"Add sheet",children:"+"})]}),
31
+ /* @__PURE__ */u("div",{className:"flex items-center gap-0.5 px-1 py-1 overflow-x-auto flex-1 min-w-0",children:[C.map((e,t)=>/* @__PURE__ */d("button",{onClick:()=>U(t),onDoubleClick:()=>{F(t),O(e.name)},onContextMenu:e=>{e.preventDefault(),C.length>1&&(e=>{C.length<=1||(N(t=>t.filter((t,r)=>r!==e)),S>=e&&S>0&&U(S-1))})(t)},className:"px-3 py-1 text-xs font-medium rounded-b whitespace-nowrap transition-colors "+(t===S?"bg-white text-blue-700 border border-t-0 border-gray-300 -mt-px relative z-10":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"),children:B===t?/* @__PURE__ */d("input",{type:"text",value:J,onChange:e=>O(e.target.value),onBlur:()=>ie(t,J||e.name),onKeyDown:r=>{"Enter"===r.key&&ie(t,J||e.name),"Escape"===r.key&&F(null)},onClick:e=>e.stopPropagation(),autoFocus:!0,className:"w-20 text-xs border border-blue-400 rounded px-1 py-0 focus:ring-0 focus:outline-none"}):e.name},e.id)),
32
+ /* @__PURE__ */d("button",{onClick:()=>{const e=`Sheet ${C.length+1}`;N(t=>[...t,f(e)]),U(C.length)},className:"px-2 py-1 text-xs text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded",title:"Add sheet",children:"+"})]}),
33
33
  /* @__PURE__ */u("div",{className:"flex items-center gap-4 px-3 py-1 text-xs text-gray-500 shrink-0 border-l border-gray-200",children:[
34
34
  /* @__PURE__ */u("span",{children:[he," cells"]}),de.length>0&&/* @__PURE__ */u(h,{children:[
35
35
  /* @__PURE__ */u("span",{children:["Sum: ",de.reduce((e,t)=>e+t,0).toLocaleString(void 0,{maximumFractionDigits:2})]}),
36
36
  /* @__PURE__ */u("span",{children:["Avg: ",(de.reduce((e,t)=>e+t,0)/de.length).toLocaleString(void 0,{maximumFractionDigits:2})]})]}),
37
- /* @__PURE__ */u("span",{children:[P.length," × ",Z.length]})]})]})]});var me}export{w as default};
37
+ /* @__PURE__ */u("span",{children:[Y.length," × ",Z.length]})]})]})]});var me}export{w as default};
@@ -1,4 +1,4 @@
1
- import{loadAppearance as e,WidgetSettingsModal as t}from"./chunk-PZFETJAG.js";import{useWidgetSettings as r}from"./chunk-B73YLHD2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-IUBWN3OA.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-SFWIYB4T.js";import"./chunk-352MVBF7.js";import"./chunk-FW2EEIDB.js";import"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-74HUZZPT.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-VKMEQKYT.js";import"./chunk-C3QOHMR6.js";import{useState as n,useCallback as c}from"react";import{jsxs as a,Fragment as s,jsx as i}from"react/jsx-runtime";var o=["AAPL","MSFT","GOOGL","TSLA","NVDA"],m="stock_symbols",l="stock_appearance",h={AAPL:{price:229.87,change:1.42,changePct:.62},MSFT:{price:451.16,change:-2.31,changePct:-.51},GOOGL:{price:178.34,change:.89,changePct:.5},AMZN:{price:201.45,change:-1.08,changePct:-.53},TSLA:{price:248.92,change:6.74,changePct:2.78},NVDA:{price:134.81,change:-3.12,changePct:-2.26},META:{price:563.27,change:4.55,changePct:.81}},p=Object.keys(h);function u(){try{const e=JSON.parse(localStorage.getItem(m)||"");if(Array.isArray(e)&&e.length)return e.slice(0,8)}catch{}return o}var d=e=>`${e>=0?"+":""}${e.toFixed(2)}`;function g(){const[o,g]=n(u),[x,k]=n(()=>e(l)),[y,j]=n(!1),[b,N]=n([]),[f,v]=n(x),[A,D]=n(""),S=c(()=>{N([...o]),v({...x}),D(""),j(!0)},[o,x]);r(S);const T=()=>{const e=A.trim().toUpperCase();!e||b.includes(e)||b.length>=8||(N(t=>[...t,e]),D(""))},L=p.filter(e=>!b.includes(e));/* @__PURE__ */
1
+ import{loadAppearance as e,WidgetSettingsModal as t}from"./chunk-EJUR35JG.js";import{useWidgetSettings as r}from"./chunk-SG2MTCA2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-HVX37PKU.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-FL2PUQX7.js";import"./chunk-ZN3O2KJ7.js";import"./chunk-YCQVEJOT.js";import"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-BY2OWWKC.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-E6UCGCOC.js";import"./chunk-C3QOHMR6.js";import{useState as n,useCallback as c}from"react";import{jsxs as a,Fragment as s,jsx as i}from"react/jsx-runtime";var o=["AAPL","MSFT","GOOGL","TSLA","NVDA"],m="stock_symbols",l="stock_appearance",h={AAPL:{price:229.87,change:1.42,changePct:.62},MSFT:{price:451.16,change:-2.31,changePct:-.51},GOOGL:{price:178.34,change:.89,changePct:.5},AMZN:{price:201.45,change:-1.08,changePct:-.53},TSLA:{price:248.92,change:6.74,changePct:2.78},NVDA:{price:134.81,change:-3.12,changePct:-2.26},META:{price:563.27,change:4.55,changePct:.81}},p=Object.keys(h);function u(){try{const e=JSON.parse(localStorage.getItem(m)||"");if(Array.isArray(e)&&e.length)return e.slice(0,8)}catch{}return o}var d=e=>`${e>=0?"+":""}${e.toFixed(2)}`;function g(){const[o,g]=n(u),[x,k]=n(()=>e(l)),[y,j]=n(!1),[b,N]=n([]),[f,v]=n(x),[A,C]=n(""),S=c(()=>{N([...o]),v({...x}),C(""),j(!0)},[o,x]);r(S);const O=()=>{const e=A.trim().toUpperCase();!e||b.includes(e)||b.length>=8||(N(t=>[...t,e]),C(""))},D=p.filter(e=>!b.includes(e));/* @__PURE__ */
2
2
  return a(s,{children:[
3
3
  /* @__PURE__ */i("div",{style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${x.activeOpacity/100})`,backdropFilter:x.activeBlur>0?`blur(${x.activeBlur}px)`:void 0},children:/* @__PURE__ */i("div",{className:"px-4 py-3",children:0===o.length?/* @__PURE__ */i("div",{className:"text-xs text-gray-500 text-center py-6",children:"No symbols yet — add some in settings."}):/* @__PURE__ */i("div",{className:"space-y-0.5",children:o.map(e=>{const t=h[e],r=(t?.change??0)>=0,n=t?t.change>0?"text-green-600":t.change<0?"text-red-600":"text-gray-500":"text-gray-400";/* @__PURE__ */
4
4
  return a("div",{className:"flex items-center justify-between px-2 py-2 border-b border-gray-200 last:border-0",children:[
@@ -11,6 +11,6 @@ return a("div",{className:"flex items-center justify-between px-2 py-2 border-b
11
11
  /* @__PURE__ */a("div",{className:"space-y-1 mb-2",children:[b.map((e,t)=>/* @__PURE__ */a("div",{className:"flex items-center justify-between py-1 px-2 bg-gray-50 rounded",children:[
12
12
  /* @__PURE__ */i("span",{className:"text-sm font-semibold text-gray-700",children:e}),
13
13
  /* @__PURE__ */i("button",{onClick:()=>N(e=>e.filter((e,r)=>r!==t)),className:"text-red-400 hover:text-red-600",children:"×"})]},t)),0===b.length&&/* @__PURE__ */i("p",{className:"text-2xs text-gray-400 italic",children:"No symbols — add a ticker below."})]}),b.length<8?/* @__PURE__ */a("div",{className:"flex items-center gap-2",children:[
14
- /* @__PURE__ */i("input",{value:A,onChange:e=>D(e.target.value),onKeyDown:e=>{"Enter"===e.key&&T()},placeholder:"e.g. NVDA",className:"flex-1 bg-gray-50 border border-gray-200 rounded px-2 py-1 text-sm uppercase focus:outline-none focus:ring-1 focus:ring-blue-500"}),
15
- /* @__PURE__ */i("button",{onClick:T,className:"text-sm font-medium text-blue-600 hover:text-blue-800 px-2",children:"+ Add"})]}):/* @__PURE__ */a("p",{className:"text-2xs text-gray-400 italic",children:["Max ",8," symbols — remove one to add another."]}),L.length>0&&b.length<8&&/* @__PURE__ */i("div",{className:"flex flex-wrap gap-2 mt-2",children:L.map(e=>/* @__PURE__ */i("button",{onClick:()=>N(t=>t.length<8?[...t,e]:t),className:"text-2xs font-medium text-gray-600 bg-gray-100 hover:bg-gray-200 rounded px-2 py-0.5 transition-colors",children:e},e))}),
14
+ /* @__PURE__ */i("input",{value:A,onChange:e=>C(e.target.value),onKeyDown:e=>{"Enter"===e.key&&O()},placeholder:"e.g. NVDA",className:"flex-1 bg-gray-50 border border-gray-200 rounded px-2 py-1 text-sm uppercase focus:outline-none focus:ring-1 focus:ring-blue-500"}),
15
+ /* @__PURE__ */i("button",{onClick:O,className:"text-sm font-medium text-blue-600 hover:text-blue-800 px-2",children:"+ Add"})]}):/* @__PURE__ */a("p",{className:"text-2xs text-gray-400 italic",children:["Max ",8," symbols — remove one to add another."]}),D.length>0&&b.length<8&&/* @__PURE__ */i("div",{className:"flex flex-wrap gap-2 mt-2",children:D.map(e=>/* @__PURE__ */i("button",{onClick:()=>N(t=>t.length<8?[...t,e]:t),className:"text-2xs font-medium text-gray-600 bg-gray-100 hover:bg-gray-200 rounded px-2 py-0.5 transition-colors",children:e},e))}),
16
16
  /* @__PURE__ */i("p",{className:"text-2xs text-gray-400 mt-2",children:"Demo prices — static sample data, no live feed."})]})})]})}export{g as default};
@@ -1,4 +1,4 @@
1
- import{fetchCityWeather as e,getCondition as t,AVAILABLE_CITIES as a,toFahrenheit as r}from"./chunk-FBDZGO3V.js";import{loadAppearance as n,WidgetSettingsModal as i}from"./chunk-PZFETJAG.js";import{useWidgetSettings as s}from"./chunk-B73YLHD2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-IUBWN3OA.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-SFWIYB4T.js";import"./chunk-352MVBF7.js";import"./chunk-FW2EEIDB.js";import{useShellPrefs as o}from"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-74HUZZPT.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import{LoadingSpinner as l}from"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-VKMEQKYT.js";import"./chunk-C3QOHMR6.js";import{useState as c,useEffect as d,useCallback as m}from"react";import{jsx as h,jsxs as p,Fragment as u}from"react/jsx-runtime";var f="weather_city",y="weather_appearance",g={useFahrenheit:!1,showLocalTime:!0,use24Hour:!1};function x(){const e="undefined"!=typeof localStorage?localStorage.getItem(f):null;if(e&&a[e])return e;try{const e=JSON.parse(localStorage.getItem("weather_cities")||"");if(Array.isArray(e)&&e[0]&&a[e[0]])return localStorage.setItem(f,e[0]),e[0]}catch{}return function(){try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone;for(const[t,r]of Object.entries(a))if(r.tz===e)return t}catch{}return"London"}()}var b=r;function w(e,t=!1){try{if(t){const t=new Intl.DateTimeFormat("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!1}).formatToParts(/* @__PURE__ */new Date),a=parseInt(t.find(e=>"hour"===e.type)?.value||"0"),r=parseInt(t.find(e=>"minute"===e.type)?.value||"0");return`${String(a).padStart(2,"0")}:${String(r).padStart(2,"0")}`}const a=new Intl.DateTimeFormat("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!0}).formatToParts(/* @__PURE__ */new Date),r=parseInt(a.find(e=>"hour"===e.type)?.value||"12"),n=parseInt(a.find(e=>"minute"===e.type)?.value||"0"),i=a.find(e=>"dayPeriod"===e.type)?.value||"";return`${r}:${String(n).padStart(2,"0")} ${i}`}catch{return""}}function v(){/* @__PURE__ */
1
+ import{fetchCityWeather as e,getCondition as t,AVAILABLE_CITIES as a,toFahrenheit as r}from"./chunk-FBDZGO3V.js";import{loadAppearance as n,WidgetSettingsModal as i}from"./chunk-EJUR35JG.js";import{useWidgetSettings as s}from"./chunk-SG2MTCA2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-HVX37PKU.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-FL2PUQX7.js";import"./chunk-ZN3O2KJ7.js";import"./chunk-YCQVEJOT.js";import{useShellPrefs as o}from"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-BY2OWWKC.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import{LoadingSpinner as l}from"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-E6UCGCOC.js";import"./chunk-C3QOHMR6.js";import{useState as c,useEffect as d,useCallback as m}from"react";import{jsx as h,jsxs as p,Fragment as u}from"react/jsx-runtime";var f="weather_city",y="weather_appearance",g={useFahrenheit:!1,showLocalTime:!0,use24Hour:!1};function x(){const e="undefined"!=typeof localStorage?localStorage.getItem(f):null;if(e&&a[e])return e;try{const e=JSON.parse(localStorage.getItem("weather_cities")||"");if(Array.isArray(e)&&e[0]&&a[e[0]])return localStorage.setItem(f,e[0]),e[0]}catch{}return function(){try{const e=Intl.DateTimeFormat().resolvedOptions().timeZone;for(const[t,r]of Object.entries(a))if(r.tz===e)return t}catch{}return"London"}()}var b=r;function w(e,t=!1){try{if(t){const t=new Intl.DateTimeFormat("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!1}).formatToParts(/* @__PURE__ */new Date),a=parseInt(t.find(e=>"hour"===e.type)?.value||"0"),r=parseInt(t.find(e=>"minute"===e.type)?.value||"0");return`${String(a).padStart(2,"0")}:${String(r).padStart(2,"0")}`}const a=new Intl.DateTimeFormat("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!0}).formatToParts(/* @__PURE__ */new Date),r=parseInt(a.find(e=>"hour"===e.type)?.value||"12"),n=parseInt(a.find(e=>"minute"===e.type)?.value||"0"),i=a.find(e=>"dayPeriod"===e.type)?.value||"";return`${r}:${String(n).padStart(2,"0")} ${i}`}catch{return""}}function v(){/* @__PURE__ */
2
2
  return p("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[
3
3
  /* @__PURE__ */h("div",{className:"absolute -top-5 -right-5 w-24 h-24",style:{animation:"wx-sun-rays 70s linear infinite"},children:/* @__PURE__ */h("svg",{viewBox:"0 0 100 100",className:"w-full h-full",children:Array.from({length:12}).map((e,t)=>/* @__PURE__ */h("rect",{x:49,y:3,width:2,height:14,rx:1,fill:"rgba(255, 232, 130, 0.55)",transform:`rotate(${30*t} 50 50)`},t))})}),
4
4
  /* @__PURE__ */h("div",{className:"absolute top-1 right-1 w-10 h-10 rounded-full",style:{background:"radial-gradient(circle at 35% 35%, #fff8cc 0%, #ffd84a 55%, #ff9e2a 100%)",boxShadow:"0 0 18px 5px rgba(255, 200, 80, 0.55)",animation:"wx-sun-pulse 4.5s ease-in-out infinite"}})]})}function k(){const e=Array.from({length:16}).map((e,t)=>({left:(53*t+11)%95+"%",top:(37*t+9)%78+"%",size:1+13*t%3,delay:.41*t%4+"s",duration:2.5+7*t%5*.6+"s"}));/* @__PURE__ */
@@ -19,42 +19,42 @@ return p("div",{className:"absolute inset-0 overflow-hidden pointer-events-none"
19
19
  /* @__PURE__ */h("div",{className:"absolute",style:{top:"40%",animation:"wx-drift-cloud 60s linear -22s infinite",opacity:.85},children:/* @__PURE__ */h(a,{scale:1.25})}),
20
20
  /* @__PURE__ */h("div",{className:"absolute",style:{top:"68%",animation:"wx-drift-cloud 78s linear -45s infinite",opacity:.7},children:/* @__PURE__ */h(a,{scale:.75})})]})}function j({heavy:e=!1}){const t=e?26:16,a=["wx-rain-a","wx-rain-b","wx-rain-c"],r=Array.from({length:t}).map((e,r)=>({left:(100*r/t+11*r%7)%100+"%",delay:.087*r%1.3+"s",height:12+r%4*5+"px",duration:.7+r%3*.18+"s",variant:a[r%a.length]}));/* @__PURE__ */
21
21
  return h("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:r.map((e,t)=>/* @__PURE__ */h("div",{className:"absolute",style:{left:e.left,top:"-20px",width:"1px",height:e.height,background:"linear-gradient(180deg, rgba(180,210,255,0) 0%, rgba(220,235,255,0.85) 90%, rgba(255,255,255,0.95) 100%)",transform:"rotate(8deg)",animation:`${e.variant} ${e.duration} linear ${e.delay} infinite`,transformOrigin:"top"}},t))})}function S(){const e=["wx-snow-a","wx-snow-b","wx-snow-c"],t=Array.from({length:16}).map((t,a)=>({left:(100*a/16+13*a%5)%100+"%",delay:.43*a%5+"s",duration:4.5+a%5+"s",size:3+a%4*1.4,opacity:.65+7*a%4*.08,variant:e[a%e.length]}));/* @__PURE__ */
22
- return h("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:t.map((e,t)=>/* @__PURE__ */h("div",{className:"absolute rounded-full bg-white",style:{left:e.left,top:"-12px",width:e.size,height:e.size,opacity:e.opacity,boxShadow:"0 0 4px rgba(255,255,255,0.65)",animation:`${e.variant} ${e.duration} linear ${e.delay} infinite`}},t))})}function T(){/* @__PURE__ */
22
+ return h("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:t.map((e,t)=>/* @__PURE__ */h("div",{className:"absolute rounded-full bg-white",style:{left:e.left,top:"-12px",width:e.size,height:e.size,opacity:e.opacity,boxShadow:"0 0 4px rgba(255,255,255,0.65)",animation:`${e.variant} ${e.duration} linear ${e.delay} infinite`}},t))})}function C(){/* @__PURE__ */
23
23
  return p("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[
24
24
  /* @__PURE__ */h(j,{heavy:!0}),
25
25
  /* @__PURE__ */h("div",{className:"absolute inset-0 bg-white",style:{animation:"wx-flash 6s ease-out infinite"}}),
26
- /* @__PURE__ */h("div",{className:"absolute inset-y-0 right-1/3 flex items-center justify-center pointer-events-none",style:{animation:"wx-bolt 6s ease-out infinite"},children:/* @__PURE__ */h("svg",{viewBox:"0 0 18 60",className:"h-4/5",style:{filter:"drop-shadow(0 0 6px rgba(255, 240, 150, 0.95)) drop-shadow(0 0 14px rgba(255, 220, 90, 0.7))"},children:/* @__PURE__ */h("path",{d:"M11 0 L2 28 L8 30 L4 60 L16 24 L9 22 Z",fill:"rgba(255, 250, 200, 0.98)",stroke:"rgba(255, 255, 255, 0.9)",strokeWidth:.3})})})]})}function D(){/* @__PURE__ */
27
- return h("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:Array.from({length:4}).map((e,t)=>/* @__PURE__ */h("div",{className:"absolute left-0 right-0",style:{top:10+22*t+"%",height:"14px",background:"linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%)",filter:"blur(2px)",animation:`wx-fog-drift ${10+3*t}s ease-in-out ${.7*t}s infinite alternate`}},t))})}function $({code:e,isDay:t}){return 0===e||1===e?/* @__PURE__ */h(t?v:k,{}):2===e?/* @__PURE__ */p(u,{children:[/* @__PURE__ */h(t?v:k,{}),
28
- /* @__PURE__ */h(N,{tone:t?"light":"dark"})]}):3===e?/* @__PURE__ */h(N,{tone:t?"light":"dark"}):45===e||48===e?/* @__PURE__ */h(D,{}):[51,53,61,80,81].includes(e)?/* @__PURE__ */h(j,{}):[55,63,65,82].includes(e)?/* @__PURE__ */h(j,{heavy:!0}):[71,73,75].includes(e)?/* @__PURE__ */h(S,{}):[95,96,99].includes(e)?/* @__PURE__ */h(T,{}):null}function I(){const[r,v]=c(x),[k,N]=c(()=>n(y)),[j,S]=c(null),[T,D]=c(!0),[,I]=c(0);d(()=>{const e=setInterval(()=>I(e=>e+1),6e4);return()=>clearInterval(e)},[]);const[L,F]=c(!1),[B,C]=c(r),[A,W]=c(k),{prefs:O,save:H}=o(),J={...g,...O.weather_prefs??{}},[K,M]=c(J);s(m(()=>{C(r),W({...k}),M({...J}),F(!0)},[r,k,J])),d(()=>{let t=!1;return D(!0),e(r).then(e=>{t||(S(e),D(!1))}),()=>{t=!0}},[r]);const R=e=>J.useFahrenheit?`${b(e)}°F`:`${e}°`;if(T&&!j)/* @__PURE__ */
26
+ /* @__PURE__ */h("div",{className:"absolute inset-y-0 right-1/3 flex items-center justify-center pointer-events-none",style:{animation:"wx-bolt 6s ease-out infinite"},children:/* @__PURE__ */h("svg",{viewBox:"0 0 18 60",className:"h-4/5",style:{filter:"drop-shadow(0 0 6px rgba(255, 240, 150, 0.95)) drop-shadow(0 0 14px rgba(255, 220, 90, 0.7))"},children:/* @__PURE__ */h("path",{d:"M11 0 L2 28 L8 30 L4 60 L16 24 L9 22 Z",fill:"rgba(255, 250, 200, 0.98)",stroke:"rgba(255, 255, 255, 0.9)",strokeWidth:.3})})})]})}function T(){/* @__PURE__ */
27
+ return h("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:Array.from({length:4}).map((e,t)=>/* @__PURE__ */h("div",{className:"absolute left-0 right-0",style:{top:10+22*t+"%",height:"14px",background:"linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%)",filter:"blur(2px)",animation:`wx-fog-drift ${10+3*t}s ease-in-out ${.7*t}s infinite alternate`}},t))})}function D({code:e,isDay:t}){return 0===e||1===e?/* @__PURE__ */h(t?v:k,{}):2===e?/* @__PURE__ */p(u,{children:[/* @__PURE__ */h(t?v:k,{}),
28
+ /* @__PURE__ */h(N,{tone:t?"light":"dark"})]}):3===e?/* @__PURE__ */h(N,{tone:t?"light":"dark"}):45===e||48===e?/* @__PURE__ */h(T,{}):[51,53,61,80,81].includes(e)?/* @__PURE__ */h(j,{}):[55,63,65,82].includes(e)?/* @__PURE__ */h(j,{heavy:!0}):[71,73,75].includes(e)?/* @__PURE__ */h(S,{}):[95,96,99].includes(e)?/* @__PURE__ */h(C,{}):null}function $(){const[r,v]=c(x),[k,N]=c(()=>n(y)),[j,S]=c(null),[C,T]=c(!0),[,$]=c(0);d(()=>{const e=setInterval(()=>$(e=>e+1),6e4);return()=>clearInterval(e)},[]);const[L,I]=c(!1),[O,F]=c(r),[J,A]=c(k),{prefs:U,save:W}=o(),B={...g,...U.weather_prefs??{}},[G,K]=c(B);s(m(()=>{F(r),A({...k}),K({...B}),I(!0)},[r,k,B])),d(()=>{let t=!1;return T(!0),e(r).then(e=>{t||(S(e),T(!1))}),()=>{t=!0}},[r]);const R=e=>B.useFahrenheit?`${b(e)}°F`:`${e}°`;if(C&&!j)/* @__PURE__ */
29
29
  return h("div",{className:"flex items-center justify-center h-full bg-gradient-to-b from-sky-400 to-blue-500 rounded-lg text-white/80 text-xs",style:{minHeight:110},children:/* @__PURE__ */h(l,{size:"sm",padding:"",label:"Loading"})});if(!j)/* @__PURE__ */
30
- return h("div",{className:"flex items-center justify-center h-full bg-slate-700 rounded-lg text-white/80 text-xs",style:{minHeight:110},children:"Couldn't load weather"});const[U,G,z]=t(j.code,j.isDay);/* @__PURE__ */
30
+ return h("div",{className:"flex items-center justify-center h-full bg-slate-700 rounded-lg text-white/80 text-xs",style:{minHeight:110},children:"Couldn't load weather"});const[H,X,M]=t(j.code,j.isDay);/* @__PURE__ */
31
31
  return p(u,{children:[
32
32
  /* @__PURE__ */h("style",{children:"\n@keyframes wx-rain-a { 0% { transform: translate(0,-20px); opacity: 0; } 10% { opacity: 0.95; } 100% { transform: translate(8px,140px); opacity: 0; } }\n@keyframes wx-rain-b { 0% { transform: translate(0,-20px); opacity: 0; } 12% { opacity: 0.85; } 100% { transform: translate(12px,140px); opacity: 0; } }\n@keyframes wx-rain-c { 0% { transform: translate(0,-20px); opacity: 0; } 10% { opacity: 1; } 100% { transform: translate(5px,140px); opacity: 0; } }\n@keyframes wx-snow-a { 0% { transform: translate(0,-12px) rotate(0deg); opacity: 0; } 10% { opacity: 0.9; } 50% { transform: translate(10px,55px) rotate(180deg); } 100% { transform: translate(-4px,140px) rotate(360deg); opacity: 0; } }\n@keyframes wx-snow-b { 0% { transform: translate(0,-12px) rotate(0deg); opacity: 0; } 10% { opacity: 0.85; } 50% { transform: translate(-12px,55px) rotate(-180deg); } 100% { transform: translate(6px,140px) rotate(-360deg); opacity: 0; } }\n@keyframes wx-snow-c { 0% { transform: translate(0,-12px); opacity: 0; } 10% { opacity: 0.7; } 100% { transform: translate(2px,140px); opacity: 0; } }\n@keyframes wx-drift-cloud { 0% { transform: translateX(-40%); } 100% { transform: translateX(140%); } }\n@keyframes wx-twinkle { 0%, 100% { opacity: 0.25; transform: scale(1); } 50% { opacity: 1; transform: scale(1.6); } }\n@keyframes wx-flash { 0%, 86%, 100% { opacity: 0; } 87% { opacity: 0.95; } 88% { opacity: 0.15; } 89% { opacity: 0.85; } 90% { opacity: 0; } }\n@keyframes wx-bolt { 0%, 86%, 90%, 100% { opacity: 0; } 87% { opacity: 1; } 89% { opacity: 0.85; } }\n@keyframes wx-sun-pulse { 0%, 100% { transform: scale(1); opacity: 0.65; } 50% { transform: scale(1.12); opacity: 0.95; } }\n@keyframes wx-sun-rays { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n@keyframes wx-fog-drift { 0% { transform: translateX(-25%); opacity: 0.3; } 50% { opacity: 0.65; } 100% { transform: translateX(25%); opacity: 0.3; } }\n@keyframes wx-shooting-star { 0%, 95% { opacity: 0; transform: translate(0,0) scale(0); } 96% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(40px,30px) scale(1); } }\n"}),
33
- /* @__PURE__ */h("div",{className:"rounded-lg overflow-hidden",style:{backgroundColor:`rgba(15, 23, 42, ${k.activeOpacity/100})`,backdropFilter:k.activeBlur>0?`blur(${k.activeBlur}px)`:void 0},children:/* @__PURE__ */p("div",{className:`relative rounded-lg overflow-hidden text-white bg-gradient-to-br ${z}`,style:{height:110},children:[
34
- /* @__PURE__ */h($,{code:j.code,isDay:j.isDay}),
33
+ /* @__PURE__ */h("div",{className:"rounded-lg overflow-hidden",style:{backgroundColor:`rgba(15, 23, 42, ${k.activeOpacity/100})`,backdropFilter:k.activeBlur>0?`blur(${k.activeBlur}px)`:void 0},children:/* @__PURE__ */p("div",{className:`relative rounded-lg overflow-hidden text-white bg-gradient-to-br ${M}`,style:{height:110},children:[
34
+ /* @__PURE__ */h(D,{code:j.code,isDay:j.isDay}),
35
35
  /* @__PURE__ */p("div",{className:"relative z-10 px-3 py-3 flex flex-col h-full justify-between",children:[
36
36
  /* @__PURE__ */p("div",{className:"flex items-start justify-between gap-2",children:[
37
37
  /* @__PURE__ */p("div",{className:"min-w-0 flex-1",children:[
38
- /* @__PURE__ */h("div",{className:"text-base font-semibold leading-tight truncate drop-shadow-sm",children:j.city}),J.showLocalTime&&/* @__PURE__ */h("div",{className:"text-2xs opacity-90 leading-tight tabular-nums drop-shadow-sm",children:w(j.timezone,J.use24Hour)})]}),
38
+ /* @__PURE__ */h("div",{className:"text-base font-semibold leading-tight truncate drop-shadow-sm",children:j.city}),B.showLocalTime&&/* @__PURE__ */h("div",{className:"text-2xs opacity-90 leading-tight tabular-nums drop-shadow-sm",children:w(j.timezone,B.use24Hour)})]}),
39
39
  /* @__PURE__ */h("div",{className:"text-3xl font-extralight leading-none tracking-tight tabular-nums shrink-0 drop-shadow-sm",children:R(j.temp)})]}),
40
40
  /* @__PURE__ */p("div",{className:"flex items-end justify-between gap-2",children:[
41
41
  /* @__PURE__ */p("div",{className:"flex items-center gap-2 min-w-0",children:[
42
- /* @__PURE__ */h("span",{className:"text-lg leading-none drop-shadow-sm",children:G}),
43
- /* @__PURE__ */h("span",{className:"text-2xs font-medium drop-shadow-sm truncate",children:U})]}),
42
+ /* @__PURE__ */h("span",{className:"text-lg leading-none drop-shadow-sm",children:X}),
43
+ /* @__PURE__ */h("span",{className:"text-2xs font-medium drop-shadow-sm truncate",children:H})]}),
44
44
  /* @__PURE__ */p("span",{className:"text-2xs opacity-90 tabular-nums drop-shadow-sm shrink-0",children:["H:",R(j.high)," L:",R(j.low)]})]})]})]})}),
45
- /* @__PURE__ */p(i,{open:L,onClose:()=>F(!1),title:"Weather Settings",appearance:A,onAppearanceChange:W,onSave:()=>{v(B),N(A),H({weather_prefs:K}),localStorage.setItem(f,B),localStorage.setItem(y,JSON.stringify(A)),F(!1)},children:[
45
+ /* @__PURE__ */p(i,{open:L,onClose:()=>I(!1),title:"Weather Settings",appearance:J,onAppearanceChange:A,onSave:()=>{v(O),N(J),W({weather_prefs:G}),localStorage.setItem(f,O),localStorage.setItem(y,JSON.stringify(J)),I(!1)},children:[
46
46
  /* @__PURE__ */h("div",{className:"space-y-3",children:/* @__PURE__ */p("div",{children:[
47
47
  /* @__PURE__ */h("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:"Display"}),
48
48
  /* @__PURE__ */p("div",{className:"flex items-center gap-3 mb-2",children:[
49
49
  /* @__PURE__ */h("span",{className:"text-sm text-gray-600 w-24",children:"Temperature"}),
50
- /* @__PURE__ */h("div",{className:"flex gap-1",children:[{key:!1,label:"°C"},{key:!0,label:"°F"}].map(e=>/* @__PURE__ */h("button",{onClick:()=>M(t=>({...t,useFahrenheit:e.key})),className:"px-3 py-1 text-xs font-medium rounded-lg border transition-colors "+(K.useFahrenheit===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},String(e.key)))})]}),
50
+ /* @__PURE__ */h("div",{className:"flex gap-1",children:[{key:!1,label:"°C"},{key:!0,label:"°F"}].map(e=>/* @__PURE__ */h("button",{onClick:()=>K(t=>({...t,useFahrenheit:e.key})),className:"px-3 py-1 text-xs font-medium rounded-lg border transition-colors "+(G.useFahrenheit===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},String(e.key)))})]}),
51
51
  /* @__PURE__ */p("div",{className:"flex items-center gap-3 mb-2",children:[
52
52
  /* @__PURE__ */h("span",{className:"text-sm text-gray-600 w-24",children:"Time Format"}),
53
- /* @__PURE__ */h("div",{className:"flex gap-1",children:[{key:!1,label:"AM/PM"},{key:!0,label:"24H"}].map(e=>/* @__PURE__ */h("button",{onClick:()=>M(t=>({...t,use24Hour:e.key})),className:"px-3 py-1 text-xs font-medium rounded-lg border transition-colors "+(K.use24Hour===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},String(e.key)))})]}),
53
+ /* @__PURE__ */h("div",{className:"flex gap-1",children:[{key:!1,label:"AM/PM"},{key:!0,label:"24H"}].map(e=>/* @__PURE__ */h("button",{onClick:()=>K(t=>({...t,use24Hour:e.key})),className:"px-3 py-1 text-xs font-medium rounded-lg border transition-colors "+(G.use24Hour===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},String(e.key)))})]}),
54
54
  /* @__PURE__ */p("label",{className:"flex items-center gap-2 cursor-pointer",children:[
55
- /* @__PURE__ */h("input",{type:"checkbox",checked:K.showLocalTime,onChange:e=>M(t=>({...t,showLocalTime:e.target.checked})),className:"rounded border-gray-300 text-blue-600 h-3.5 w-3.5"}),
55
+ /* @__PURE__ */h("input",{type:"checkbox",checked:G.showLocalTime,onChange:e=>K(t=>({...t,showLocalTime:e.target.checked})),className:"rounded border-gray-300 text-blue-600 h-3.5 w-3.5"}),
56
56
  /* @__PURE__ */h("span",{className:"text-sm text-gray-600",children:"Show local time"})]})]})}),
57
57
  /* @__PURE__ */p("div",{children:[
58
58
  /* @__PURE__ */h("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:"City"}),
59
- /* @__PURE__ */h("select",{value:B,onChange:e=>C(e.target.value),className:"w-full bg-gray-50 border border-gray-200 rounded px-2 h-8 text-sm focus:outline-none focus:ring-1 focus:ring-blue-500",children:Object.keys(a).map(e=>/* @__PURE__ */h("option",{value:e,children:e},e))}),
60
- /* @__PURE__ */h("p",{className:"mt-1 text-2xs text-gray-400",children:"Auto-detected from your timezone; change if needed."})]})]})]})}export{I as default};
59
+ /* @__PURE__ */h("select",{value:O,onChange:e=>F(e.target.value),className:"w-full bg-gray-50 border border-gray-200 rounded px-2 h-8 text-sm focus:outline-none focus:ring-1 focus:ring-blue-500",children:Object.keys(a).map(e=>/* @__PURE__ */h("option",{value:e,children:e},e))}),
60
+ /* @__PURE__ */h("p",{className:"mt-1 text-2xs text-gray-400",children:"Auto-detected from your timezone; change if needed."})]})]})]})}export{$ as default};
@@ -1,6 +1,6 @@
1
- import{AVAILABLE_CITIES as e,fetchCityWeather as t,getCondition as r,toFahrenheit as n}from"./chunk-FBDZGO3V.js";import{loadAppearance as a,WidgetSettingsModal as s}from"./chunk-PZFETJAG.js";import{useWidgetSettings as i}from"./chunk-B73YLHD2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-IUBWN3OA.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-SFWIYB4T.js";import"./chunk-352MVBF7.js";import"./chunk-FW2EEIDB.js";import{useShellPrefs as c}from"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-74HUZZPT.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import{LoadingSpinner as o}from"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-VKMEQKYT.js";import"./chunk-C3QOHMR6.js";import{useState as l,useEffect as m,useCallback as h}from"react";import{jsxs as p,Fragment as u,jsx as d}from"react/jsx-runtime";var k="world_clock_appearance",g=["London","Shanghai","New York"];function x(){const{prefs:x,save:y}=c(),[b,j]=l(()=>a(k)),[f,N]=l(!1),[v,w]=l([]),[F,D]=l(b),T={useFahrenheit:!!x.weather_prefs?.useFahrenheit},[C,W]=l(T),[B,U]=l(()=>/* @__PURE__ */new Date);m(()=>{const e=setInterval(()=>U(/* @__PURE__ */new Date),3e4);return()=>clearInterval(e)},[]);const J=Object.fromEntries(Object.entries(e).map(([e,t])=>[t.tz,e])),K=x.world_clocks,L=(()=>{if(!Array.isArray(K)||0===K.length)return g;const t=[];for(const r of K){const n=e[r]?r:J[r];n&&!t.includes(n)&&t.push(n)}return t.length?t:g})(),[O,R]=l({}),[S,G]=l(!0);m(()=>{let e=!1;return G(!0),(async()=>{const r={};await Promise.all(L.map(async e=>{const n=await t(e);n&&(r[e]=n)})),e||(R(r),G(!1))})(),()=>{e=!0}},[L.join(",")]),i(h(()=>{w([...L]),D({...b}),W({...T}),N(!0)},[L.join(","),b,T.useFahrenheit]));const I=e=>T.useFahrenheit?`${n(e)}°`:`${e}°`;/* @__PURE__ */
1
+ import{AVAILABLE_CITIES as e,fetchCityWeather as t,getCondition as r,toFahrenheit as n}from"./chunk-FBDZGO3V.js";import{loadAppearance as a,WidgetSettingsModal as s}from"./chunk-EJUR35JG.js";import{useWidgetSettings as i}from"./chunk-SG2MTCA2.js";import"./chunk-CY5N5OA3.js";import"./chunk-AW7TOB6N.js";import"./chunk-JDCM2VHG.js";import"./chunk-KNUR2UEG.js";import"./chunk-HVX37PKU.js";import"./chunk-5A7MWTXX.js";import"./chunk-Y53KNQKL.js";import"./chunk-FL2PUQX7.js";import"./chunk-ZN3O2KJ7.js";import"./chunk-YCQVEJOT.js";import{useShellPrefs as c}from"./chunk-KC3EX26K.js";import"./chunk-VWGWZY7A.js";import"./chunk-PKXQDCNR.js";import"./chunk-O6JX6RDX.js";import"./chunk-5QFPTDQF.js";import"./chunk-BY2OWWKC.js";import"./chunk-UGTRSRIW.js";import"./chunk-QR4RM7PO.js";import"./chunk-D323R2FT.js";import"./chunk-CDAJKLGL.js";import"./chunk-6KO5VTL7.js";import"./chunk-4IU5BSVE.js";import"./chunk-K7U4RWXJ.js";import"./chunk-VH6GB73Q.js";import"./chunk-KIBL6M3T.js";import"./chunk-J75ZT2JQ.js";import{LoadingSpinner as o}from"./chunk-Q5MD3VY6.js";import"./chunk-MRJKZWWV.js";import"./chunk-22S6LG6D.js";import"./chunk-PGN5ME7B.js";import"./chunk-62LW225J.js";import"./chunk-GLUJS42B.js";import"./chunk-D65T4H6J.js";import"./chunk-DTJRIWFR.js";import"./chunk-TWVUQUUD.js";import"./chunk-E6UCGCOC.js";import"./chunk-C3QOHMR6.js";import{useState as l,useEffect as m,useCallback as h}from"react";import{jsxs as p,Fragment as u,jsx as d}from"react/jsx-runtime";var k="world_clock_appearance",g=["London","Shanghai","New York"];function x(){const{prefs:x,save:y}=c(),[b,j]=l(()=>a(k)),[f,N]=l(!1),[v,w]=l([]),[C,D]=l(b),F={useFahrenheit:!!x.weather_prefs?.useFahrenheit},[T,J]=l(F),[O,U]=l(()=>/* @__PURE__ */new Date);m(()=>{const e=setInterval(()=>U(/* @__PURE__ */new Date),3e4);return()=>clearInterval(e)},[]);const W=Object.fromEntries(Object.entries(e).map(([e,t])=>[t.tz,e])),K=x.world_clocks,R=(()=>{if(!Array.isArray(K)||0===K.length)return g;const t=[];for(const r of K){const n=e[r]?r:W[r];n&&!t.includes(n)&&t.push(n)}return t.length?t:g})(),[G,L]=l({}),[S,Q]=l(!0);m(()=>{let e=!1;return Q(!0),(async()=>{const r={};await Promise.all(R.map(async e=>{const n=await t(e);n&&(r[e]=n)})),e||(L(r),Q(!1))})(),()=>{e=!0}},[R.join(",")]),i(h(()=>{w([...R]),D({...b}),J({...F}),N(!0)},[R.join(","),b,F.useFahrenheit]));const V=e=>F.useFahrenheit?`${n(e)}°`:`${e}°`;/* @__PURE__ */
2
2
  return p(u,{children:[
3
- /* @__PURE__ */d("div",{style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${b.activeOpacity/100})`,backdropFilter:b.activeBlur>0?`blur(${b.activeBlur}px)`:void 0},children:/* @__PURE__ */p("div",{className:"divide-y divide-gray-200",children:[S&&L.every(e=>!O[e])&&/* @__PURE__ */d(o,{size:"sm",padding:"py-6",label:"Loading"}),L.map(t=>{const n=O[t],a=e[t]?.tz??"UTC",{time:s,ampm:i}=function(e,t){try{const r=new Intl.DateTimeFormat("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!0}).formatToParts(t),n=r.find(e=>"hour"===e.type)?.value||"12";return{time:`${n}:${r.find(e=>"minute"===e.type)?.value||"00"}`,ampm:(r.find(e=>"dayPeriod"===e.type)?.value||"").toUpperCase()}}catch{return{time:"",ampm:""}}}(a,B);if(!n)/* @__PURE__ */
3
+ /* @__PURE__ */d("div",{style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${b.activeOpacity/100})`,backdropFilter:b.activeBlur>0?`blur(${b.activeBlur}px)`:void 0},children:/* @__PURE__ */p("div",{className:"divide-y divide-gray-200",children:[S&&R.every(e=>!G[e])&&/* @__PURE__ */d(o,{size:"sm",padding:"py-6",label:"Loading"}),R.map(t=>{const n=G[t],a=e[t]?.tz??"UTC",{time:s,ampm:i}=function(e,t){try{const r=new Intl.DateTimeFormat("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!0}).formatToParts(t),n=r.find(e=>"hour"===e.type)?.value||"12";return{time:`${n}:${r.find(e=>"minute"===e.type)?.value||"00"}`,ampm:(r.find(e=>"dayPeriod"===e.type)?.value||"").toUpperCase()}}catch{return{time:"",ampm:""}}}(a,O);if(!n)/* @__PURE__ */
4
4
  return p("div",{className:"px-4 py-3",children:[
5
5
  /* @__PURE__ */p("div",{className:"flex items-baseline justify-between gap-2",children:[
6
6
  /* @__PURE__ */d("span",{className:"text-base font-semibold tracking-tight text-gray-900 truncate",children:t}),
@@ -10,7 +10,7 @@ return p("div",{className:"px-4 py-3",children:[
10
10
  return p("div",{className:"px-4 py-3",children:[
11
11
  /* @__PURE__ */p("div",{className:"flex items-baseline justify-between gap-2",children:[
12
12
  /* @__PURE__ */d("span",{className:"text-base font-semibold tracking-tight text-gray-900 truncate",children:t}),
13
- /* @__PURE__ */d("span",{className:"text-2xl font-extralight leading-none tabular-nums tracking-tight text-gray-900 shrink-0",children:I(n.temp)})]}),
13
+ /* @__PURE__ */d("span",{className:"text-2xl font-extralight leading-none tabular-nums tracking-tight text-gray-900 shrink-0",children:V(n.temp)})]}),
14
14
  /* @__PURE__ */p("div",{className:"flex items-center justify-between gap-2 mt-2 text-2xs",children:[
15
15
  /* @__PURE__ */p("div",{className:"flex items-center gap-2 min-w-0 text-gray-500",children:[
16
16
  /* @__PURE__ */d("span",{className:"text-base leading-none shrink-0",children:l}),
@@ -18,13 +18,13 @@ return p("div",{className:"px-4 py-3",children:[
18
18
  /* @__PURE__ */d("span",{className:"text-3xs font-medium ml-0.5 opacity-70",children:i})]}),
19
19
  /* @__PURE__ */d("span",{className:"text-gray-300 shrink-0",children:"·"}),
20
20
  /* @__PURE__ */d("span",{className:"truncate",children:c})]}),
21
- /* @__PURE__ */p("span",{className:"tabular-nums text-gray-500 shrink-0",children:["H:",I(n.high)," L:",I(n.low)]})]})]},t)})]})}),
22
- /* @__PURE__ */p(s,{open:f,onClose:()=>N(!1),title:"World Clock Settings",appearance:F,onAppearanceChange:D,onSave:()=>{0!==v.length&&(y({world_clocks:v,weather_prefs:{...x.weather_prefs??{},useFahrenheit:C.useFahrenheit}}),j(F),localStorage.setItem(k,JSON.stringify(F)),N(!1))},children:[
21
+ /* @__PURE__ */p("span",{className:"tabular-nums text-gray-500 shrink-0",children:["H:",V(n.high)," L:",V(n.low)]})]})]},t)})]})}),
22
+ /* @__PURE__ */p(s,{open:f,onClose:()=>N(!1),title:"World Clock Settings",appearance:C,onAppearanceChange:D,onSave:()=>{0!==v.length&&(y({world_clocks:v,weather_prefs:{...x.weather_prefs??{},useFahrenheit:T.useFahrenheit}}),j(C),localStorage.setItem(k,JSON.stringify(C)),N(!1))},children:[
23
23
  /* @__PURE__ */p("div",{children:[
24
24
  /* @__PURE__ */d("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:"Display"}),
25
25
  /* @__PURE__ */p("div",{className:"flex items-center gap-3 mb-2",children:[
26
26
  /* @__PURE__ */d("span",{className:"text-sm text-gray-600 w-24",children:"Temperature"}),
27
- /* @__PURE__ */d("div",{className:"flex gap-1",children:[{key:!1,label:"°C"},{key:!0,label:"°F"}].map(e=>/* @__PURE__ */d("button",{onClick:()=>W(t=>({...t,useFahrenheit:e.key})),className:"px-3 py-1 text-xs font-medium rounded-lg border transition-colors "+(C.useFahrenheit===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},String(e.key)))})]}),
27
+ /* @__PURE__ */d("div",{className:"flex gap-1",children:[{key:!1,label:"°C"},{key:!0,label:"°F"}].map(e=>/* @__PURE__ */d("button",{onClick:()=>J(t=>({...t,useFahrenheit:e.key})),className:"px-3 py-1 text-xs font-medium rounded-lg border transition-colors "+(T.useFahrenheit===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-700 border-gray-300 hover:bg-gray-50"),children:e.label},String(e.key)))})]}),
28
28
  /* @__PURE__ */d("p",{className:"text-2xs text-gray-400 mt-1",children:"Shared with the Weather widget."})]}),
29
29
  /* @__PURE__ */p("div",{children:[
30
30
  /* @__PURE__ */d("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:"Cities"}),
package/dist/ai/index.js CHANGED
@@ -1,38 +1,38 @@
1
1
  "use client";
2
- import{StepChain as e,StepChainItem as t}from"../chunk-SAKHGHF5.js";import{Markdown as n}from"../chunk-4ELYV3L6.js";import{Textarea_default as r}from"../chunk-AWY3F6PV.js";import{Banner as a}from"../chunk-TJPPV7KZ.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.js";import{IconButton_default as o}from"../chunk-4CANQ3B3.js";import"../chunk-JFSYWEHD.js";import{Button_default as s}from"../chunk-4IU5BSVE.js";import"../chunk-K7U4RWXJ.js";import"../chunk-VH6GB73Q.js";import{Icon as l}from"../chunk-KIBL6M3T.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as i}from"../chunk-Q5MD3VY6.js";import"../chunk-MRJKZWWV.js";import"../chunk-22S6LG6D.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-DTJRIWFR.js";import"../chunk-TWVUQUUD.js";import"../chunk-VKMEQKYT.js";import"../chunk-C3QOHMR6.js";import{useRef as c,useState as p,useEffect as d,useId as u,useCallback as m,useMemo as h}from"react";import{jsx as g,jsxs as f}from"react/jsx-runtime";import{isToolUIPart as v,getToolName as b,DefaultChatTransport as y,lastAssistantMessageIsCompleteWithApprovalResponses as x}from"ai";import{useChat as w}from"@ai-sdk/react";function k({labels:e,placeholder:t,busy:n,focusWhen:a,onSend:i,onStop:u,onNewChat:m}){const[h,v]=p(""),b=c(null);d(()=>{a&&b.current?.focus()},[a]);const y=()=>{!n&&h.trim()&&(i(h),v(""))};/* @__PURE__ */
2
+ import{StepChain as e,StepChainItem as t}from"../chunk-SAKHGHF5.js";import{Markdown as n}from"../chunk-UKB2I3UK.js";import{Textarea_default as r}from"../chunk-AWY3F6PV.js";import{Banner as a}from"../chunk-WTY3SXO7.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.js";import{IconButton_default as o}from"../chunk-4CANQ3B3.js";import"../chunk-JFSYWEHD.js";import{Button_default as s}from"../chunk-4IU5BSVE.js";import"../chunk-K7U4RWXJ.js";import"../chunk-VH6GB73Q.js";import{Icon as l}from"../chunk-KIBL6M3T.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as i}from"../chunk-Q5MD3VY6.js";import"../chunk-MRJKZWWV.js";import"../chunk-22S6LG6D.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-DTJRIWFR.js";import"../chunk-TWVUQUUD.js";import"../chunk-E6UCGCOC.js";import"../chunk-C3QOHMR6.js";import{useRef as c,useState as p,useEffect as d,useId as u,useCallback as m,useMemo as h}from"react";import{jsx as g,jsxs as f}from"react/jsx-runtime";import{isToolUIPart as v,getToolName as b,DefaultChatTransport as y,lastAssistantMessageIsCompleteWithApprovalResponses as x}from"ai";import{useChat as w}from"@ai-sdk/react";function k({labels:e,placeholder:t,busy:n,focusWhen:a,onSend:i,onStop:u,onNewChat:m}){const[h,v]=p(""),b=c(null);d(()=>{a&&b.current?.focus()},[a]);const y=()=>{!n&&h.trim()&&(i(h),v(""))};/* @__PURE__ */
3
3
  return f("form",{className:"flex items-end gap-2 border-t border-gray-200 p-3",onSubmit:e=>{e.preventDefault(),y()},children:[m&&/* @__PURE__ */g(o,{type:"button",variant:"ghost","aria-label":e.newChat,title:e.newChat,onClick:m,children:/* @__PURE__ */g(l,{name:"add"})}),
4
- /* @__PURE__ */g("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */g(r,{ref:b,"aria-label":e.inputLabel,placeholder:t,rows:1,autoGrow:!0,value:h,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),y())},className:"max-h-32"})}),/* @__PURE__ */g(s,n?{type:"button",variant:"secondary",onClick:u,children:e.stop}:{type:"submit",disabled:!h.trim(),children:e.send})]})}function N(e){if(!v(e))return null;const t=e;return{toolName:b(e),toolCallId:t.toolCallId,state:t.state,input:t.input,output:t.output,errorText:t.errorText,approvalId:t.approval?.id,approved:t.approval?.approved}}function C(e){return e.parts.map(e=>"text"===e.type?e.text:"").join("")}function j(e,t){const n=e[e.length-1];if(!n)throw new Error("assistant chat: no message to send");if("user"===n.role){const e=C(n).trim();if(!e)throw new Error("assistant chat: empty message");return{conversation_id:t,text:e,approvals:[]}}const r=function(e){const t=[];for(const n of e.parts){if(!v(n))continue;const e=n;if("approval-responded"!==e.state||!e.approval||"boolean"!=typeof e.approval.approved)continue;const r={approval_id:e.approval.id,approved:e.approval.approved};e.approval.reason&&(r.reason=e.approval.reason),t.push(r)}return t}(n);if(0===r.length)throw new Error("assistant chat: no approval decision to send");return{conversation_id:t,text:null,approvals:r}}var A=/* @__PURE__ */new Set(["proposed","approved","running"]);function S(e){return A.has(e.status)}function $(e){const t=[];for(const n of e.parts)"data-plan"===n.type&&t.push(n.data);return t}function _(e){const t=/* @__PURE__ */new Map;for(const n of e)for(const e of $(n))t.delete(e.id),t.set(e.id,e);return t}function T(e){const t=[..._(e).values()],n=t[t.length-1];if(!n)return null;if(S(n))return n;const r=e[e.length-1];return r&&"assistant"===r.role&&$(r).some(e=>e.id===n.id)?n:null}function I(e){const t=e.messages.filter(e=>e.text).map(e=>({id:e.id,role:e.role,parts:[{type:"text",text:e.text}],...e.source&&e.source!==e.role?{metadata:{source:e.source}}:{}})),n=(e.plans??[]).filter(S);return(e.pending_approvals.length>0||n.length>0)&&t.push({id:`pending-approvals-${e.id}`,role:"assistant",parts:[...n.map(e=>({type:"data-plan",id:e.id,data:e})),...e.pending_approvals.map(e=>({type:`tool-${e.tool_name}`,toolCallId:e.tool_call_id??e.approval_id,state:"approval-requested",input:e.input,approval:{id:e.approval_id}}))]}),t}function L(e,t){const n=e?.message?.trim();if(!n)return t;if(n.startsWith("{")){try{const e=JSON.parse(n);for(const t of["detail","errorText","message","title","error"]){const n=e[t];if("string"==typeof n&&n.trim())return n.trim()}}catch{return t}return t}return n.startsWith("<")||n.length>400?t:n}function D(e){const t=e.replace(/^tool-/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):e}var E={propose_plan:{label:"Plan the changes",running:"Planning the changes",done:"Planned the changes"}};function O(e,t){const n=t?.[e]??E[e];return"string"==typeof n?{label:n}:n??{label:D(e)}}function J(e,t){return O(e,t).label}function R(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function M(e,t,n){const r=O(e,n).describe;if(!r)return"";try{return r(R(t))?.trim()??""}catch{return""}}function P(e,t){return null==e?"":"boolean"==typeof e?e?"Yes":"No":"object"!=typeof e?String(e):Array.isArray(e)?e.map(e=>P(e,t+1)).filter(Boolean).join(", "):t>=3?"…":Object.entries(e).map(([e,n])=>{const r=P(n,t+1);return r?`${D(e)}: ${r}`:""}).filter(Boolean).join("; ")}function H(e){const t=R(e),n=[];for(const[e,r]of Object.entries(t)){const t=P(r,0);t&&n.push({label:D(e),value:t})}return 0===n.length&&null!=e&&"object"!=typeof e&&n.push({label:"Value",value:P(e,0)}),n}var U={proposed:"planProposed",approved:"planApproved",running:"planRunning",completed:"planCompleted",failed:"planFailed",denied:"planDenied",expired:"planExpired"},B={pending:"pending",running:"active",done:"complete",failed:"failed",skipped:"skipped"};function W(e,t){const n=M(e.tool_name,e.input,t);return`${J(e.tool_name,t)}${n?` ${n}`:""}`}function z(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function F(e,t){const n=e.steps.filter(e=>"done"===e.status).length;return`${z(t.planSummary,{done:n,total:e.steps.length})} · ${t[U[e.status]]}`}function K({plan:n,labels:r}){/* @__PURE__ */
5
- return g("section",{"aria-label":r.plan,className:"border-t border-gray-200 bg-white px-3 py-2",children:/* @__PURE__ */g(e,{summary:F(n,r),busy:S(n),label:r.plan,children:n.steps.map(e=>/* @__PURE__ */g(t,{label:e.title,status:B[e.status],description:"done"!==e.status&&e.result_summary?e.result_summary:void 0},e.id))})})}function V({approvalId:e,plan:t,input:n,labels:r,toolLabels:a,onApprove:o}){const l=function(e,t){if(e)return e.steps.map(e=>({key:e.id,title:e.title,tool_name:e.tool_name,input:e.input}));const n=t?.steps;return Array.isArray(n)?n.map((e,t)=>{const n=e??{};return{key:String(t),title:"string"==typeof n.title?n.title:"",tool_name:"string"==typeof n.tool?n.tool:"",input:n.args}}):[]}(t,n),i=z(r.planApprovalHeading,{count:l.length});/* @__PURE__ */
4
+ /* @__PURE__ */g("div",{className:"min-w-0 flex-1",children:/* @__PURE__ */g(r,{ref:b,"aria-label":e.inputLabel,placeholder:t,rows:1,autoGrow:!0,value:h,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),y())},className:"max-h-32"})}),/* @__PURE__ */g(s,n?{type:"button",variant:"secondary",onClick:u,children:e.stop}:{type:"submit",disabled:!h.trim(),children:e.send})]})}function N(e){if(!v(e))return null;const t=e;return{toolName:b(e),toolCallId:t.toolCallId,state:t.state,input:t.input,output:t.output,errorText:t.errorText,approvalId:t.approval?.id,approved:t.approval?.approved}}function C(e){return e.parts.map(e=>"text"===e.type?e.text:"").join("")}function j(e,t){const n=e[e.length-1];if(!n)throw new Error("assistant chat: no message to send");if("user"===n.role){const e=C(n).trim();if(!e)throw new Error("assistant chat: empty message");return{conversation_id:t,text:e,approvals:[]}}const r=function(e){const t=[];for(const n of e.parts){if(!v(n))continue;const e=n;if("approval-responded"!==e.state||!e.approval||"boolean"!=typeof e.approval.approved)continue;const r={approval_id:e.approval.id,approved:e.approval.approved};e.approval.reason&&(r.reason=e.approval.reason),t.push(r)}return t}(n);if(0===r.length)throw new Error("assistant chat: no approval decision to send");return{conversation_id:t,text:null,approvals:r}}var A=/* @__PURE__ */new Set(["proposed","approved","running"]);function S(e){return A.has(e.status)}function $(e){const t=[];for(const n of e.parts)"data-plan"===n.type&&t.push(n.data);return t}function _(e){const t=/* @__PURE__ */new Map;for(const n of e)for(const e of $(n))t.delete(e.id),t.set(e.id,e);return t}function T(e){const t=[..._(e).values()],n=t[t.length-1];if(!n)return null;if(S(n))return n;const r=e[e.length-1];return r&&"assistant"===r.role&&$(r).some(e=>e.id===n.id)?n:null}function I(e){const t=e.messages.filter(e=>e.text).map(e=>({id:e.id,role:e.role,parts:[{type:"text",text:e.text}],...e.source&&e.source!==e.role?{metadata:{source:e.source}}:{}})),n=(e.plans??[]).filter(S);return(e.pending_approvals.length>0||n.length>0)&&t.push({id:`pending-approvals-${e.id}`,role:"assistant",parts:[...n.map(e=>({type:"data-plan",id:e.id,data:e})),...e.pending_approvals.map(e=>({type:`tool-${e.tool_name}`,toolCallId:e.tool_call_id??e.approval_id,state:"approval-requested",input:e.input,approval:{id:e.approval_id}}))]}),t}function L(e,t){const n=e?.message?.trim();if(!n)return t;if(n.startsWith("{")){try{const e=JSON.parse(n);for(const t of["detail","errorText","message","title","error"]){const n=e[t];if("string"==typeof n&&n.trim())return n.trim()}}catch{return t}return t}return n.startsWith("<")||n.length>400?t:n}function O(e){const t=e.replace(/^tool-/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_\-.]+/g," ").trim().toLowerCase();return t?t.charAt(0).toUpperCase()+t.slice(1):e}var D={propose_plan:{label:"Plan the changes",running:"Planning the changes",done:"Planned the changes"}};function E(e,t){const n=t?.[e]??D[e];return"string"==typeof n?{label:n}:n??{label:O(e)}}function R(e,t){return E(e,t).label}function U(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function J(e,t,n){const r=E(e,n).describe;if(!r)return"";try{return r(U(t))?.trim()??""}catch{return""}}function B(e,t){return null==e?"":"boolean"==typeof e?e?"Yes":"No":"object"!=typeof e?String(e):Array.isArray(e)?e.map(e=>B(e,t+1)).filter(Boolean).join(", "):t>=3?"…":Object.entries(e).map(([e,n])=>{const r=B(n,t+1);return r?`${O(e)}: ${r}`:""}).filter(Boolean).join("; ")}function H(e){const t=U(e),n=[];for(const[e,r]of Object.entries(t)){const t=B(r,0);t&&n.push({label:O(e),value:t})}return 0===n.length&&null!=e&&"object"!=typeof e&&n.push({label:"Value",value:B(e,0)}),n}var M={proposed:"planProposed",approved:"planApproved",running:"planRunning",completed:"planCompleted",failed:"planFailed",denied:"planDenied",expired:"planExpired"},W={pending:"pending",running:"active",done:"complete",failed:"failed",skipped:"skipped"};function P(e,t){const n=J(e.tool_name,e.input,t);return`${R(e.tool_name,t)}${n?` ${n}`:""}`}function z(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function F(e,t){const n=e.steps.filter(e=>"done"===e.status).length;return`${z(t.planSummary,{done:n,total:e.steps.length})} · ${t[M[e.status]]}`}function K({plan:n,labels:r}){/* @__PURE__ */
5
+ return g("section",{"aria-label":r.plan,className:"border-t border-gray-200 bg-white px-3 py-2",children:/* @__PURE__ */g(e,{summary:F(n,r),busy:S(n),label:r.plan,children:n.steps.map(e=>/* @__PURE__ */g(t,{label:e.title,status:W[e.status],description:"done"!==e.status&&e.result_summary?e.result_summary:void 0},e.id))})})}function G({approvalId:e,plan:t,input:n,labels:r,toolLabels:a,onApprove:o}){const l=function(e,t){if(e)return e.steps.map(e=>({key:e.id,title:e.title,tool_name:e.tool_name,input:e.input}));const n=t?.steps;return Array.isArray(n)?n.map((e,t)=>{const n=e??{};return{key:String(t),title:"string"==typeof n.title?n.title:"",tool_name:"string"==typeof n.tool?n.tool:"",input:n.args}}):[]}(t,n),i=z(r.planApprovalHeading,{count:l.length});/* @__PURE__ */
6
6
  return f("div",{role:"group","aria-label":i,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
7
7
  /* @__PURE__ */g("div",{className:"font-medium text-gray-900",children:i}),
8
8
  /* @__PURE__ */g("ol",{className:"mt-2 list-decimal space-y-2 pl-5",children:l.map(e=>{const t=H(e.input);/* @__PURE__ */
9
9
  return f("li",{children:[
10
- /* @__PURE__ */g("div",{className:"font-medium text-gray-900",children:W(e,a)}),e.title&&/* @__PURE__ */g("div",{className:"text-xs text-gray-600",children:e.title}),t.length>0&&/* @__PURE__ */g("dl",{className:"mt-1 grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:t.map(e=>/* @__PURE__ */f("div",{className:"contents",children:[
10
+ /* @__PURE__ */g("div",{className:"font-medium text-gray-900",children:P(e,a)}),e.title&&/* @__PURE__ */g("div",{className:"text-xs text-gray-600",children:e.title}),t.length>0&&/* @__PURE__ */g("dl",{className:"mt-1 grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:t.map(e=>/* @__PURE__ */f("div",{className:"contents",children:[
11
11
  /* @__PURE__ */g("dt",{className:"text-gray-500",children:e.label}),
12
12
  /* @__PURE__ */g("dd",{className:"min-w-0 break-words text-gray-800",children:e.value})]},e.label))})]},e.key)})}),
13
13
  /* @__PURE__ */f("div",{className:"mt-3 flex gap-2",children:[
14
14
  /* @__PURE__ */g(s,{size:"sm",onClick:()=>o(e,!0),children:r.approvePlan}),
15
- /* @__PURE__ */g(s,{size:"sm",variant:"secondary",onClick:()=>o(e,!1),children:r.deny})]})]})}function G({rows:e}){/* @__PURE__ */
15
+ /* @__PURE__ */g(s,{size:"sm",variant:"secondary",onClick:()=>o(e,!1),children:r.deny})]})]})}function q({rows:e}){/* @__PURE__ */
16
16
  return g("dl",{className:"grid grid-cols-[max-content_1fr] gap-x-3 gap-y-1 text-xs",children:e.map(e=>/* @__PURE__ */f("div",{className:"contents",children:[
17
17
  /* @__PURE__ */g("dt",{className:"text-gray-500",children:e.label}),
18
- /* @__PURE__ */g("dd",{className:"min-w-0 break-words text-gray-800",children:e.value})]},e.label))})}function q({tool:e,toolLabels:t,labels:n,onApprove:r}){const a=M(e.toolName,e.input,t),o=H(e.input),l=e.approvalId,i=`${n.approvalNeeded}: ${J(e.toolName,t)}${a?` ${a}`:""}`;/* @__PURE__ */
18
+ /* @__PURE__ */g("dd",{className:"min-w-0 break-words text-gray-800",children:e.value})]},e.label))})}function V({tool:e,toolLabels:t,labels:n,onApprove:r}){const a=J(e.toolName,e.input,t),o=H(e.input),l=e.approvalId,i=`${n.approvalNeeded}: ${R(e.toolName,t)}${a?` ${a}`:""}`;/* @__PURE__ */
19
19
  return f("div",{role:"group","aria-label":i,className:"rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm",children:[
20
- /* @__PURE__ */g("div",{className:"font-medium text-gray-900",children:i}),o.length>0&&/* @__PURE__ */g("div",{className:"mt-2",children:/* @__PURE__ */g(G,{rows:o})}),
20
+ /* @__PURE__ */g("div",{className:"font-medium text-gray-900",children:i}),o.length>0&&/* @__PURE__ */g("div",{className:"mt-2",children:/* @__PURE__ */g(q,{rows:o})}),
21
21
  /* @__PURE__ */f("div",{className:"mt-3 flex gap-2",children:[
22
22
  /* @__PURE__ */g(s,{size:"sm",onClick:()=>r(l,!0),children:n.approve}),
23
- /* @__PURE__ */g(s,{size:"sm",variant:"secondary",onClick:()=>r(l,!1),children:n.deny})]})]})}var Q={running:"active",done:"complete",failed:"failed",declined:"stopped",waiting:"waiting"};function Y(e,t,n){return function(e,t,n,r,a,o){const s=O(n,a),l=M(n,r,a),i=(e,t)=>({kind:e,base:t,subject:l,text:l?`${t} ${l}`:t});switch(e){case"output-available":return i("done",s.done??s.label);case"output-error":return i("failed",`${s.label} ${o.toolFailed}`);case"output-denied":return i("declined",`${s.label} ${o.toolDeclined}`);case"approval-requested":return i("waiting",`${o.approvalNeeded}: ${s.label}`);case"approval-responded":return!1===t?i("declined",`${s.label} — ${o.declined}`):i("running",`${o.approved}: ${s.running??s.label}`);default:return i("running",s.running??s.label)}}(e.state,e.approved,e.toolName,e.input,t,n)}function Z({tool:e,toolLabels:n,labels:r,showOutput:a}){const o=Y(e,n,r),s=H(e.input),l=a&&"output-available"===e.state?H(e.output):[],i=a&&"output-error"===e.state&&e.errorText?e.errorText:"";let c=null;return(s.length>0||l.length>0||i)&&(c=/* @__PURE__ */f("details",{children:[
23
+ /* @__PURE__ */g(s,{size:"sm",variant:"secondary",onClick:()=>r(l,!1),children:n.deny})]})]})}var Q={running:"active",done:"complete",failed:"failed",declined:"stopped",waiting:"waiting"};function Y(e,t,n){return function(e,t,n,r,a,o){const s=E(n,a),l=J(n,r,a),i=(e,t)=>({kind:e,base:t,subject:l,text:l?`${t} ${l}`:t});switch(e){case"output-available":return i("done",s.done??s.label);case"output-error":return i("failed",`${s.label} ${o.toolFailed}`);case"output-denied":return i("declined",`${s.label} ${o.toolDeclined}`);case"approval-requested":return i("waiting",`${o.approvalNeeded}: ${s.label}`);case"approval-responded":return!1===t?i("declined",`${s.label} — ${o.declined}`):i("running",`${o.approved}: ${s.running??s.label}`);default:return i("running",s.running??s.label)}}(e.state,e.approved,e.toolName,e.input,t,n)}function X({tool:e,toolLabels:n,labels:r,showOutput:a}){const o=Y(e,n,r),s=H(e.input),l=a&&"output-available"===e.state?H(e.output):[],i=a&&"output-error"===e.state&&e.errorText?e.errorText:"";let c=null;return(s.length>0||l.length>0||i)&&(c=/* @__PURE__ */f("details",{children:[
24
24
  /* @__PURE__ */g("summary",{className:"cursor-pointer select-none",children:r.details}),
25
- /* @__PURE__ */f("div",{className:"mt-1 space-y-2",children:[s.length>0&&/* @__PURE__ */g(G,{rows:s}),l.length>0&&/* @__PURE__ */g(G,{rows:l}),i&&/* @__PURE__ */g("div",{className:"text-red-600",children:i})]})]})),/* @__PURE__ */g(t,{label:o.base,description:o.subject||void 0,status:Q[o.kind],children:c})}function X(e,t){return e>0&&t>=100?e/(t/1e3):null}function ee(e){return Math.ceil(e.length/4)}var te=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e),ne=e=>Math.round(e).toLocaleString();function re(e,t){const n=X(e.output_tokens,e.generation_ms);return null===n?te(t.replyTokens,{tokens:ne(e.output_tokens)}):te(t.replyStats,{tokens:ne(e.output_tokens),seconds:(e.generation_ms/1e3).toFixed(1),rate:ne(n)})}function ae(e,t,n){const r=t>=1e3?X(ee(e),t):null;return null===r?n.streaming:te(n.streamingRate,{rate:ne(r)})}function oe(e,t){return"approval-responded"===e.state&&t.some(t=>{return t.toolName===e.toolName&&"approval-requested"!==t.state&&(t.toolCallId===e.toolCallId||(n=t.input,r=e.input,JSON.stringify(n)===JSON.stringify(r)));var n,r})}function se(e,t,n,r){const a=e.flatMap(e=>"tool"===e.kind?[Y(e.tool,n,r)]:[]);if(t){const e=a.find(e=>"running"===e.kind);return e?e.base:r.working}const o=[...new Set(a.map(e=>e.base))];return o.length>0?o.join(" · "):r.reasoning}function le({message:e,live:t,labels:n}){const r=C(e),a=r.length>0,o=c(null),[s,l]=p(0);d(()=>{if(!t)return;null===o.current&&(o.current=performance.now());const e=setInterval(()=>l(performance.now()-(o.current??performance.now())),500);return()=>clearInterval(e)},[t]);const i=e.metadata?.usage;let u=null;return t?u=a?ae(r,s,n):null:i&&(u=re(i,n)),u?/* @__PURE__ */g("div",{className:"px-1 text-xs tabular-nums text-gray-500",children:u}):null}function ie({message:r,toolLabels:a,labels:o,showReasoning:s,showToolOutput:l,showUsage:i,live:c,onApprove:p,plans:d}){const u=r.metadata?.source;if("system"===u){const e=C(r);return e?/* @__PURE__ */g("div",{className:"text-center text-xs text-gray-500",children:e}):null}if("user"===r.role){const e=C(r);return e?/* @__PURE__ */g("div",{className:"flex justify-end",children:/* @__PURE__ */g("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl bg-blue-600 px-3 py-2 text-sm text-white",children:e})}):null}const m=r.parts.map(N),h=[],v=[];let b=-1;const y=e=>{b<0&&(b=h.push(null)-1),v.push(e)};if(r.parts.forEach((e,t)=>{if("text"===e.type)return void(e.text.trim()&&h.push(/* @__PURE__ */g(n,{children:e.text},t)));if("reasoning"===e.type)return void(s&&e.text.trim()&&y({kind:"reasoning",key:`r${t}`,text:e.text}));const r=m[t];r&&(oe(r,m.slice(t+1).filter(e=>null!==e))||("approval-requested"===r.state&&r.approvalId&&"propose_plan"===r.toolName?h.push(
26
- /* @__PURE__ */g(V,{approvalId:r.approvalId,plan:d?.get(r.approvalId),input:r.input,labels:o,toolLabels:a,onApprove:p},r.toolCallId)):"approval-requested"===r.state&&r.approvalId?h.push(
27
- /* @__PURE__ */g(q,{tool:r,toolLabels:a,labels:o,onApprove:p},r.toolCallId)):y({kind:"tool",key:r.toolCallId,tool:r})))}),b>=0&&(h[b]=/* @__PURE__ */g(e,{summary:se(v,c,a,o),busy:c,label:o.steps,children:v.map(e=>"tool"===e.kind?/* @__PURE__ */g(Z,{tool:e.tool,toolLabels:a,labels:o,showOutput:l},e.key):/* @__PURE__ */g(t,{status:"complete",label:/* @__PURE__ */f("details",{children:[
25
+ /* @__PURE__ */f("div",{className:"mt-1 space-y-2",children:[s.length>0&&/* @__PURE__ */g(q,{rows:s}),l.length>0&&/* @__PURE__ */g(q,{rows:l}),i&&/* @__PURE__ */g("div",{className:"text-red-600",children:i})]})]})),/* @__PURE__ */g(t,{label:o.base,description:o.subject||void 0,status:Q[o.kind],children:c})}function Z(e,t){return e>0&&t>=100?e/(t/1e3):null}function ee(e){return Math.ceil(e.length/4)}var te=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>t[n]??e),ne=e=>Math.round(e).toLocaleString();function re(e,t){const n=Z(e.output_tokens,e.generation_ms);return null===n?te(t.replyTokens,{tokens:ne(e.output_tokens)}):te(t.replyStats,{tokens:ne(e.output_tokens),seconds:(e.generation_ms/1e3).toFixed(1),rate:ne(n)})}function ae(e,t,n){const r=t>=1e3?Z(ee(e),t):null;return null===r?n.streaming:te(n.streamingRate,{rate:ne(r)})}function oe(e,t){return"approval-responded"===e.state&&t.some(t=>{return t.toolName===e.toolName&&"approval-requested"!==t.state&&(t.toolCallId===e.toolCallId||(n=t.input,r=e.input,JSON.stringify(n)===JSON.stringify(r)));var n,r})}function se(e,t,n,r){const a=e.flatMap(e=>"tool"===e.kind?[Y(e.tool,n,r)]:[]);if(t){const e=a.find(e=>"running"===e.kind);return e?e.base:r.working}const o=[...new Set(a.map(e=>e.base))];return o.length>0?o.join(" · "):r.reasoning}function le({message:e,live:t,labels:n}){const r=C(e),a=r.length>0,o=c(null),[s,l]=p(0);d(()=>{if(!t)return;null===o.current&&(o.current=performance.now());const e=setInterval(()=>l(performance.now()-(o.current??performance.now())),500);return()=>clearInterval(e)},[t]);const i=e.metadata?.usage;let u=null;return t?u=a?ae(r,s,n):null:i&&(u=re(i,n)),u?/* @__PURE__ */g("div",{className:"px-1 text-xs tabular-nums text-gray-500",children:u}):null}function ie({message:r,toolLabels:a,labels:o,showReasoning:s,showToolOutput:l,showUsage:i,live:c,onApprove:p,plans:d}){const u=r.metadata?.source;if("system"===u){const e=C(r);return e?/* @__PURE__ */g("div",{className:"text-center text-xs text-gray-500",children:e}):null}if("user"===r.role){const e=C(r);return e?/* @__PURE__ */g("div",{className:"flex justify-end",children:/* @__PURE__ */g("div",{className:"max-w-[85%] whitespace-pre-wrap break-words rounded-2xl bg-blue-600 px-3 py-2 text-sm text-white",children:e})}):null}const m=r.parts.map(N),h=[],v=[];let b=-1;const y=e=>{b<0&&(b=h.push(null)-1),v.push(e)};if(r.parts.forEach((e,t)=>{if("text"===e.type)return void(e.text.trim()&&h.push(/* @__PURE__ */g(n,{children:e.text},t)));if("reasoning"===e.type)return void(s&&e.text.trim()&&y({kind:"reasoning",key:`r${t}`,text:e.text}));const r=m[t];r&&(oe(r,m.slice(t+1).filter(e=>null!==e))||("approval-requested"===r.state&&r.approvalId&&"propose_plan"===r.toolName?h.push(
26
+ /* @__PURE__ */g(G,{approvalId:r.approvalId,plan:d?.get(r.approvalId),input:r.input,labels:o,toolLabels:a,onApprove:p},r.toolCallId)):"approval-requested"===r.state&&r.approvalId?h.push(
27
+ /* @__PURE__ */g(V,{tool:r,toolLabels:a,labels:o,onApprove:p},r.toolCallId)):y({kind:"tool",key:r.toolCallId,tool:r})))}),b>=0&&(h[b]=/* @__PURE__ */g(e,{summary:se(v,c,a,o),busy:c,label:o.steps,children:v.map(e=>"tool"===e.kind?/* @__PURE__ */g(X,{tool:e.tool,toolLabels:a,labels:o,showOutput:l},e.key):/* @__PURE__ */g(t,{status:"complete",label:/* @__PURE__ */f("details",{children:[
28
28
  /* @__PURE__ */g("summary",{className:"cursor-pointer select-none",children:o.reasoning}),
29
29
  /* @__PURE__ */g("div",{className:"mt-1 whitespace-pre-wrap text-gray-500",children:e.text})]})},e.key))},"chain")),0===h.length)return null;const x=/* @__PURE__ */f("div",{className:"max-w-[92%] min-w-0 space-y-2 rounded-2xl bg-white px-3 py-2 text-gray-800 shadow-sm",children:["staff"===u&&/* @__PURE__ */g("div",{className:"text-xs font-medium text-blue-600",children:o.teamName}),h]});return!i||u?/* @__PURE__ */g("div",{className:"flex justify-start",children:x}):/* @__PURE__ */f("div",{className:"flex flex-col items-start gap-1",children:[x,
30
30
  /* @__PURE__ */g(le,{message:r,live:c,labels:o})]})}function ce(e){const{messages:t,status:n,error:r,history:o,labels:s}=e,l=c(null),p=h(()=>function(e){const t=/* @__PURE__ */new Map;for(const n of _(e).values())t.set(n.approval_id,n);return t}(t),[t]);return d(()=>{const e=l.current;e&&(e.scrollTop=e.scrollHeight)},[t,n]),/* @__PURE__ */f("div",{ref:l,role:"log","aria-label":e.title,"aria-live":"polite","aria-busy":"submitted"===n||"streaming"===n,className:"flex min-h-0 flex-1 flex-col gap-3 overflow-auto bg-gray-50 p-3",children:["loading"===o&&/* @__PURE__ */f("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
31
31
  /* @__PURE__ */g(i,{className:"h-3 w-3"}),s.loadingHistory]}),"failed"===o&&/* @__PURE__ */g(a,{tone:"warning",children:s.historyFailed}),0===t.length&&"idle"===o&&/* @__PURE__ */g("p",{className:"m-auto text-center text-sm text-gray-500",children:s.emptyState}),t.map((r,a)=>/* @__PURE__ */g(ie,{live:a===t.length-1&&("submitted"===n||"streaming"===n),message:r,toolLabels:e.toolLabels,labels:s,showReasoning:e.showReasoning,showToolOutput:e.showToolOutput,showUsage:e.showUsage,onApprove:e.onApprove,plans:p},r.id)),e.handedOver&&/* @__PURE__ */g("div",{role:"status",className:"text-center text-xs text-gray-500",children:s.teamJoined}),"submitted"===n&&/* @__PURE__ */f("div",{role:"status",className:"flex items-center gap-2 text-xs text-gray-500",children:[
32
- /* @__PURE__ */g(i,{className:"h-3 w-3"}),s.thinking]}),r&&/* @__PURE__ */g("div",{role:"alert",children:/* @__PURE__ */g(a,{tone:"danger",children:L(r,s.genericError)})})]})}var pe={title:"Assistant",placeholder:"Ask a question…",inputLabel:"Message to the assistant",send:"Send",stop:"Stop",newChat:"New chat",open:"Open assistant",close:"Close assistant",thinking:"Thinking",loadingHistory:"Loading the conversation",historyFailed:"The earlier conversation could not be loaded.",emptyState:"Ask me anything to get started.",approvalNeeded:"Approval needed",approve:"Approve",deny:"Deny",approved:"Approved",declined:"Declined",toolFailed:"did not complete",toolDeclined:"was not approved",details:"Details",reasoning:"Reasoning",genericError:"Something went wrong. Please try again.",working:"Working",steps:"Steps",teamName:"Team",teamJoined:"A team member has joined",plan:"Plan",planSummary:"Plan: {done} of {total} done",planProposed:"waiting for your approval",planApproved:"approved, starting",planRunning:"in progress",planCompleted:"finished",planFailed:"stopped — not every step ran",planDenied:"not approved — nothing was changed",planExpired:"expired — nothing was changed",planApprovalHeading:"Approve this plan of {count} steps",approvePlan:"Approve plan",replyStats:"{tokens} tokens · {seconds} s · {rate} tok/s",replyTokens:"{tokens} tokens",streaming:"Streaming",streamingRate:"Streaming · ~{rate} tok/s"},de=(e,t)=>`${e.replace(/\/+$/,"")}/${t}`;function ue(e){return de(e,"assistant/chat/")}function me(e,t){return de(e,`assistant/chat/${encodeURIComponent(t)}/`)}function he(e){const t={...pe,...e.labels},n=e.variant??"panel",r=function(e){const t=c(e);t.current=e;const n=c(e.conversationId?{id:e.conversationId}:null),[r,a]=p("idle"),[o,s]=p(!1),[l,i]=p(n.current),u=m(e=>{n.current=e,i(e)},[]),g=m((e,n)=>(t.current.fetch??fetch)(e,n),[]),f=h(()=>new y({api:ue(e.apiBase),fetch:g,prepareSendMessagesRequest:async({messages:e})=>{const{apiBase:r,getHeaders:a,credentials:o}=t.current;return{api:ue(r),body:j(e,n.current?.id??null),headers:await(a?.())??{},...o?{credentials:o}:{}}}}),[g]),v=w({transport:f,sendAutomaticallyWhen:x,onData:e=>{if("data-conversation"!==e.type)return;const{id:r,guest_token:a}=e.data,o=n.current,s=a??(o?.id===r?o.guestToken:void 0);o&&o.id===r&&o.guestToken===s||(u(s?{id:r,guestToken:s}:{id:r}),t.current.onConversation?.(n.current))}}),{setMessages:b,stop:k}=v,N=m(async(e,n)=>{const{apiBase:r,getHeaders:o,credentials:l,onConversation:i}=t.current;a("loading");try{const t=await g(me(r,e),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},signal:n});if(n.aborted)return;if(404===t.status)return u(null),i?.(null),void a("idle");if(!t.ok)throw new Error(`history ${t.status}`);const c=await t.json();if(n.aborted)return;s(!0===c.handed_over),b(e=>e.length>0?e:I(c)),a("idle")}catch{n.aborted||a("failed")}},[g,b,u]),C=e.conversationId??null;d(()=>{if(C===(n.current?.id??null)&&v.messages.length>0)return;if(null===C)return n.current&&(u(null),k(),b([])),void a("idle");n.current?.id===C||u({id:C});const e=new AbortController;return N(C,e.signal),()=>e.abort()},[C,N,b,k,u]);const A=m(async e=>{const r=n.current?.id;if(r)try{const{apiBase:a,getHeaders:o,credentials:l}=t.current,i=await g(me(a,r),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},...e?{signal:e}:{}});if(!i.ok||e?.aborted||n.current?.id!==r)return;const c=await i.json();s(!0===c.handed_over);const p=I(c).filter(e=>e.metadata?.source);if(0===p.length)return;b(e=>{const t=new Set(e.map(e=>e.id)),n=p.filter(e=>!t.has(e.id));return n.length>0?[...e,...n]:e})}catch{}},[g,b]),S=c(A);S.current=A;const{status:$}=v,_="submitted"===$||"streaming"===$,T=c(!1),L=c(!1),D=!!e.subscribe;d(()=>{const e=T.current&&!_;if(T.current=_,!e)return;if(D&&!L.current)return;L.current=!1;const t=new AbortController;return S.current(t.signal),()=>t.abort()},[_,D]);const E=c(_);E.current=_;const O=l?.id,J=l?.guestToken;d(()=>{const e=n.current,r=t.current.subscribe;if(e&&r)return r(e,()=>{E.current?L.current=!0:S.current()})??void 0},[O,J]);const R=m(e=>{const t=e.trim();t&&v.sendMessage({text:t})},[v]),M=m((e,t)=>{v.addToolApprovalResponse({id:e,approved:t})},[v]),P=m(()=>{k(),u(null),b([]),a("idle"),s(!1),t.current.onConversation?.(null)},[b,k,u]);return{messages:v.messages,status:v.status,error:v.error,historyState:r,handedOver:o,send:R,stop:k,approve:M,reset:P}}(e),a="submitted"===r.status||"streaming"===r.status,i=c(e.onBusyChange);i.current=e.onBusyChange,d(()=>{i.current?.(a)},[a]);const u="window"===n,v=e.showHeader??"window"!==n,b=e.title??t.title,N=T(r.messages);/* @__PURE__ */
32
+ /* @__PURE__ */g(i,{className:"h-3 w-3"}),s.thinking]}),r&&/* @__PURE__ */g("div",{role:"alert",children:/* @__PURE__ */g(a,{tone:"danger",children:L(r,s.genericError)})})]})}var pe={title:"Assistant",placeholder:"Ask a question…",inputLabel:"Message to the assistant",send:"Send",stop:"Stop",newChat:"New chat",open:"Open assistant",close:"Close assistant",thinking:"Thinking",loadingHistory:"Loading the conversation",historyFailed:"The earlier conversation could not be loaded.",emptyState:"Ask me anything to get started.",approvalNeeded:"Approval needed",approve:"Approve",deny:"Deny",approved:"Approved",declined:"Declined",toolFailed:"did not complete",toolDeclined:"was not approved",details:"Details",reasoning:"Reasoning",genericError:"Something went wrong. Please try again.",working:"Working",steps:"Steps",teamName:"Team",teamJoined:"A team member has joined",plan:"Plan",planSummary:"Plan: {done} of {total} done",planProposed:"waiting for your approval",planApproved:"approved, starting",planRunning:"in progress",planCompleted:"finished",planFailed:"stopped — not every step ran",planDenied:"not approved — nothing was changed",planExpired:"expired — nothing was changed",planApprovalHeading:"Approve this plan of {count} steps",approvePlan:"Approve plan",replyStats:"{tokens} tokens · {seconds} s · {rate} tok/s",replyTokens:"{tokens} tokens",streaming:"Streaming",streamingRate:"Streaming · ~{rate} tok/s"},de=(e,t)=>`${e.replace(/\/+$/,"")}/${t}`;function ue(e){return de(e,"assistant/chat/")}function me(e,t){return de(e,`assistant/chat/${encodeURIComponent(t)}/`)}function he(e){const t={...pe,...e.labels},n=e.variant??"panel",r=function(e){const t=c(e);t.current=e;const n=c(e.conversationId?{id:e.conversationId}:null),[r,a]=p("idle"),[o,s]=p(!1),[l,i]=p(n.current),u=m(e=>{n.current=e,i(e)},[]),g=m((e,n)=>(t.current.fetch??fetch)(e,n),[]),f=h(()=>new y({api:ue(e.apiBase),fetch:g,prepareSendMessagesRequest:async({messages:e})=>{const{apiBase:r,getHeaders:a,credentials:o}=t.current;return{api:ue(r),body:j(e,n.current?.id??null),headers:await(a?.())??{},...o?{credentials:o}:{}}}}),[g]),v=w({transport:f,sendAutomaticallyWhen:x,onData:e=>{if("data-conversation"!==e.type)return;const{id:r,guest_token:a}=e.data,o=n.current,s=a??(o?.id===r?o.guestToken:void 0);o&&o.id===r&&o.guestToken===s||(u(s?{id:r,guestToken:s}:{id:r}),t.current.onConversation?.(n.current))}}),{setMessages:b,stop:k}=v,N=m(async(e,n)=>{const{apiBase:r,getHeaders:o,credentials:l,onConversation:i}=t.current;a("loading");try{const t=await g(me(r,e),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},signal:n});if(n.aborted)return;if(404===t.status)return u(null),i?.(null),void a("idle");if(!t.ok)throw new Error(`history ${t.status}`);const c=await t.json();if(n.aborted)return;s(!0===c.handed_over),b(e=>e.length>0?e:I(c)),a("idle")}catch{n.aborted||a("failed")}},[g,b,u]),C=e.conversationId??null;d(()=>{if(C===(n.current?.id??null)&&v.messages.length>0)return;if(null===C)return n.current&&(u(null),k(),b([])),void a("idle");n.current?.id===C||u({id:C});const e=new AbortController;return N(C,e.signal),()=>e.abort()},[C,N,b,k,u]);const A=m(async e=>{const r=n.current?.id;if(r)try{const{apiBase:a,getHeaders:o,credentials:l}=t.current,i=await g(me(a,r),{method:"GET",headers:await(o?.())??{},...l?{credentials:l}:{},...e?{signal:e}:{}});if(!i.ok||e?.aborted||n.current?.id!==r)return;const c=await i.json();s(!0===c.handed_over);const p=I(c).filter(e=>e.metadata?.source);if(0===p.length)return;b(e=>{const t=new Set(e.map(e=>e.id)),n=p.filter(e=>!t.has(e.id));return n.length>0?[...e,...n]:e})}catch{}},[g,b]),S=c(A);S.current=A;const{status:$}=v,_="submitted"===$||"streaming"===$,T=c(!1),L=c(!1),O=!!e.subscribe;d(()=>{const e=T.current&&!_;if(T.current=_,!e)return;if(O&&!L.current)return;L.current=!1;const t=new AbortController;return S.current(t.signal),()=>t.abort()},[_,O]);const D=c(_);D.current=_;const E=l?.id,R=l?.guestToken;d(()=>{const e=n.current,r=t.current.subscribe;if(e&&r)return r(e,()=>{D.current?L.current=!0:S.current()})??void 0},[E,R]);const U=m(e=>{const t=e.trim();t&&v.sendMessage({text:t})},[v]),J=m((e,t)=>{v.addToolApprovalResponse({id:e,approved:t})},[v]),B=m(()=>{k(),u(null),b([]),a("idle"),s(!1),t.current.onConversation?.(null)},[b,k,u]);return{messages:v.messages,status:v.status,error:v.error,historyState:r,handedOver:o,send:U,stop:k,approve:J,reset:B}}(e),a="submitted"===r.status||"streaming"===r.status,i=c(e.onBusyChange);i.current=e.onBusyChange,d(()=>{i.current?.(a)},[a]);const u="window"===n,v=e.showHeader??"window"!==n,b=e.title??t.title,N=T(r.messages);/* @__PURE__ */
33
33
  return f("section",{"aria-label":b,className:`flex h-full min-h-0 flex-col bg-white text-gray-900 ${e.className??""}`.trim(),children:[v&&/* @__PURE__ */f("header",{className:"flex items-center gap-2 border-b border-gray-200 px-3 py-2",children:[
34
34
  /* @__PURE__ */g("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:b}),r.messages.length>0&&/* @__PURE__ */g(s,{size:"sm",variant:"ghost",onClick:r.reset,children:t.newChat}),e.onClose&&/* @__PURE__ */g(o,{size:"sm","aria-label":t.close,onClick:e.onClose,children:/* @__PURE__ */g(l,{name:"close"})})]}),
35
35
  /* @__PURE__ */g(ce,{messages:r.messages,status:r.status,error:r.error,history:r.historyState,handedOver:r.handedOver,labels:t,title:b,toolLabels:e.toolLabels,showReasoning:u&&!0===e.showReasoning,showToolOutput:u,showUsage:u&&!0===e.showUsage,onApprove:r.approve}),N&&/* @__PURE__ */g(K,{plan:N,labels:t},N.id),
36
36
  /* @__PURE__ */g(k,{labels:t,placeholder:e.placeholder??t.placeholder,busy:a,focusWhen:e.focusComposer,onSend:r.send,onStop:r.stop,onNewChat:!v&&!1!==e.showNewChat&&r.messages.length>0?r.reset:void 0})]})}function ge(e){const t={...pe,...e.labels},[n,r]=p(e.defaultOpen??!1),a=u(),o=c(null),s=c(n),i=t=>{r(t),e.onOpenChange?.(t)};return d(()=>{s.current&&!n&&o.current?.focus(),s.current=n},[n]),/* @__PURE__ */f("div",{className:"rosh-assistant",style:{display:"contents"},children:[n&&/* @__PURE__ */g("div",{id:a,role:"dialog","aria-label":e.title??t.title,onKeyDown:e=>{"Escape"===e.key&&i(!1)},className:"fixed inset-x-2 bottom-20 z-[var(--z-window,1000)] h-[min(34rem,calc(100dvh-6rem))] overflow-hidden rounded-xl border border-gray-200 shadow-xl sm:inset-x-auto sm:right-4 sm:w-96",children:/* @__PURE__ */g(he,{...e,onClose:()=>i(!1),focusComposer:!0})}),
37
37
  /* @__PURE__ */g("button",{ref:o,type:"button","aria-expanded":n,"aria-controls":n?a:void 0,"aria-label":n?t.close:t.open,onClick:()=>i(!n),className:"fixed bottom-4 right-4 z-[var(--z-window,1000)] flex h-12 w-12 items-center justify-center rounded-full shadow-lg bg-[var(--assistant-launcher-bg,var(--color-blue-600))] text-[var(--assistant-launcher-ink,var(--color-white))] hover:bg-[var(--assistant-launcher-bg-hover,var(--color-blue-700))] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--assistant-launcher-bg,var(--color-blue-600))]",children:/* @__PURE__ */g(l,n?{name:"close",size:20}:{name:"chat-bubble-left-right",size:22})})]})}function fe(e){if("bubble"===e.variant)/* @__PURE__ */return g(ge,{...e});const t="window"!==e.variant;/* @__PURE__ */
38
- return g(he,{...e,className:`${t?"border-l border-gray-200":""} ${e.className??""}`.trim()})}export{q as ApprovalCard,fe as AssistantChat,ie as AssistantMessage,pe as DEFAULT_ASSISTANT_CHAT_LABELS,V as PlanApprovalCard,K as PlanChecklist,Z as ToolStep,j as buildRequestBody,ee as estimateTokens,re as finishedStats,ae as liveStats,I as messagesFromHistory,T as pinnedPlan,_ as plansOf,X as tokensPerSecond};
38
+ return g(he,{...e,className:`${t?"border-l border-gray-200":""} ${e.className??""}`.trim()})}export{V as ApprovalCard,fe as AssistantChat,ie as AssistantMessage,pe as DEFAULT_ASSISTANT_CHAT_LABELS,G as PlanApprovalCard,K as PlanChecklist,X as ToolStep,j as buildRequestBody,ee as estimateTokens,re as finishedStats,ae as liveStats,I as messagesFromHistory,T as pinnedPlan,_ as plansOf,Z as tokensPerSecond};
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { P as PdfViewer$1 } from '../PdfViewer-CvLb2j_l.js';
3
3
  export { a as PdfViewerProps } from '../PdfViewer-CvLb2j_l.js';
4
4
  import * as react from 'react';
5
- import { W as WindowRegistry } from '../types-BOinJXUf.js';
5
+ import { W as WindowRegistry } from '../types-ClT92-8Z.js';
6
6
 
7
7
  declare function Browser$1(): react_jsx_runtime.JSX.Element;
8
8