@hot-updater/console 1.0.0-rc.2 → 1.0.0-rc.20

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 (275) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/ConsoleFeatureUnavailable-B9VYGA3N.js +1 -0
  3. package/.output/public/assets/HashValueDisplay-D880zntR.js +1 -0
  4. package/.output/public/assets/InsightsInfo-By_sPjTE.js +1 -0
  5. package/.output/public/assets/InsightsPageHeader-9_kx_LL7.js +1 -0
  6. package/.output/public/assets/NotFoundPage-Dys8C0cW.js +1 -0
  7. package/.output/public/assets/api-CtarlV0l.js +1 -0
  8. package/.output/public/assets/api-keys-DFF_QqtN.js +1 -0
  9. package/.output/public/assets/api-keys-evfsQ4sN.js +1 -0
  10. package/.output/public/assets/arrow-left-BP9D-ta_.js +1 -0
  11. package/.output/public/assets/arrow-up-right-CDP9Tevw.js +1 -0
  12. package/.output/public/assets/card-DzCPSRsh.js +1 -0
  13. package/.output/public/assets/console-features-api-yv7rm3DX.js +1 -0
  14. package/.output/public/assets/dialog-BDvCy_QO.js +1 -0
  15. package/.output/public/assets/dist-Clb6cQ9l.js +1 -0
  16. package/.output/public/assets/empty-C5x9mn_s.js +1 -0
  17. package/.output/public/assets/field-Bou7shoO.js +1 -0
  18. package/.output/public/assets/index-0eg3l8aC.js +10 -0
  19. package/.output/public/assets/input-group-DVtWFUUF.js +1 -0
  20. package/.output/public/assets/insights-2MbdiSNv.js +1 -0
  21. package/.output/public/assets/insights-C6tmCZHk.js +2 -0
  22. package/.output/public/assets/insights-CadS_aIA.js +42 -0
  23. package/.output/public/assets/insights-recovery-rpc-wvdyM4LD.js +1 -0
  24. package/.output/public/assets/insights-search-KIF7mRtB.js +1 -0
  25. package/.output/public/assets/insights-usage-rpc-qUkNtrWr.js +1 -0
  26. package/.output/public/assets/insights_.distribution-BhBs6PNA.js +1 -0
  27. package/.output/public/assets/insights_.distribution-CItZw3-8.js +1 -0
  28. package/.output/public/assets/insights_.distribution-CJUH_wAS.js +2 -0
  29. package/.output/public/assets/installations-CH2H7JQt.js +2 -0
  30. package/.output/public/assets/installations-DMeMuwsW.js +1 -0
  31. package/.output/public/assets/installations-DnvxI9Dt.js +1 -0
  32. package/.output/public/assets/loader-circle-Ca7C9YY1.js +1 -0
  33. package/.output/public/assets/mutation-x9L28_CD.js +1 -0
  34. package/.output/public/assets/preload-helper-BN-UkjOE.js +1 -0
  35. package/.output/public/assets/refresh-cw-CVGqvy8Z.js +1 -0
  36. package/.output/public/assets/routes-BhK8DuZA.js +1 -0
  37. package/.output/public/assets/routes-veKtDW39.js +2 -0
  38. package/.output/public/assets/sidebar-B45aMqRm.js +3 -0
  39. package/.output/public/assets/styles-Dn0pK1EX.css +2 -0
  40. package/.output/public/assets/table-CwLnN6KX.js +1 -0
  41. package/.output/public/assets/useCompositeListItem-CF7vsfcA.js +1 -0
  42. package/.output/public/assets/useMutation-CN1ygYEr.js +1 -0
  43. package/.output/public/assets/useOpenInteractionType-AnAMWYIY.js +1 -0
  44. package/.output/public/assets/valueToPercent-C-t8FT0y.js +1 -0
  45. package/.output/server/{__23tanstack-start-server-fn-resolver-B7ioJhtE.mjs → __23tanstack-start-server-fn-resolver-CUQLz7hs.mjs} +52 -40
  46. package/.output/server/_libs/@base-ui/react+[...].mjs +7044 -3622
  47. package/.output/server/_libs/@reduxjs/toolkit+[...].mjs +1554 -0
  48. package/.output/server/_libs/@tanstack/react-router+[...].mjs +49 -3
  49. package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +4 -4
  50. package/.output/server/_libs/d3-array.mjs +231 -0
  51. package/.output/server/_libs/d3-color.mjs +330 -0
  52. package/.output/server/_libs/d3-format.mjs +252 -0
  53. package/.output/server/_libs/d3-interpolate.mjs +207 -0
  54. package/.output/server/_libs/d3-path.mjs +77 -0
  55. package/.output/server/_libs/d3-scale+[...].mjs +1907 -0
  56. package/.output/server/_libs/d3-shape.mjs +818 -0
  57. package/.output/server/_libs/decimal.js-light.mjs +884 -0
  58. package/.output/server/_libs/es-toolkit.mjs +1159 -0
  59. package/.output/server/_libs/eventemitter3.mjs +236 -0
  60. package/.output/server/_libs/immer.mjs +532 -0
  61. package/.output/server/_libs/lucide-react.mjs +46 -32
  62. package/.output/server/_libs/next-themes.mjs +2 -2
  63. package/.output/server/_libs/react-redux+[...].mjs +205 -0
  64. package/.output/server/_libs/recharts+[...].mjs +14350 -0
  65. package/.output/server/_libs/sonner.mjs +2 -2
  66. package/.output/server/_libs/tanstack__react-query.mjs +8 -3
  67. package/.output/server/_libs/verkit.mjs +99 -1
  68. package/.output/server/_runtime.mjs +10 -1
  69. package/.output/server/_ssr/ConsoleFeatureUnavailable-DoxET2AT.mjs +58 -0
  70. package/.output/server/_ssr/{HashValueDisplay-DwpGLfrl.mjs → HashValueDisplay-BplboHEb.mjs} +3 -3
  71. package/.output/server/_ssr/InsightsInfo-o2YPd5Qc.mjs +37 -0
  72. package/.output/server/_ssr/InsightsPageHeader-NExCJL1I.mjs +154 -0
  73. package/.output/server/_ssr/NotFoundPage-Cd-A8ock.mjs +37 -0
  74. package/.output/server/_ssr/api-B1Ro0uys.mjs +202 -0
  75. package/.output/server/_ssr/api-C0G9MTMI.mjs +4205 -0
  76. package/.output/server/_ssr/{api-keys-CZeTPQys.mjs → api-keys-CT3HG7KT.mjs} +49 -9
  77. package/.output/server/_ssr/api-keys-Dvvy1sem.mjs +5 -0
  78. package/.output/server/_ssr/api-keys-rpc-b1qTTFfG.mjs +52 -0
  79. package/.output/server/_ssr/api-rpc-Cbns2MGx.mjs +338 -0
  80. package/.output/server/_ssr/{auth-rpc-DUaeOWKK.mjs → auth-rpc-DChS7m9y.mjs} +6 -6
  81. package/.output/server/_ssr/auth.server-Ccqz2iVv.mjs +37 -0
  82. package/.output/server/_ssr/bundleActivity-D17Pb_h5.mjs +19 -0
  83. package/.output/server/_ssr/card-DMbcvlPz.mjs +49 -0
  84. package/.output/server/_ssr/config-DMEJdhoW.mjs +13 -0
  85. package/.output/server/_ssr/config.server-DyypN6cQ.mjs +60 -0
  86. package/.output/server/_ssr/console-access-KpPv5lin.mjs +17 -0
  87. package/.output/server/_ssr/console-features-CsbyHYfK.mjs +55 -0
  88. package/.output/server/_ssr/console-features-api-B-KVuo4p.mjs +43 -0
  89. package/.output/server/_ssr/console-features-rpc-Djyo5740.mjs +19 -0
  90. package/.output/server/_ssr/{createServerFn-B2hcXoPM.mjs → createMiddleware-B_I3Ll4M.mjs} +28 -2
  91. package/.output/server/_ssr/{createServerRpc-DB29C_5p.mjs → createServerRpc-DuNm5mmo.mjs} +2 -2
  92. package/.output/server/_ssr/databaseRows-CXxf_VIB.mjs +132 -0
  93. package/.output/server/_ssr/{deleteBundle-BTGwBgzx.mjs → deleteBundle-Dcc21Lbd.mjs} +9 -19
  94. package/.output/server/_ssr/{dialog-DS-nw-pA.mjs → dialog-cOmLTUV2.mjs} +2 -2
  95. package/.output/server/_ssr/{dist-CyzPaI5v.mjs → dist-B-r4u3Lg.mjs} +28 -5
  96. package/.output/server/_ssr/{downloadBundle-CNnYxYO2.mjs → downloadBundle-CexOFoZ4.mjs} +6 -7
  97. package/.output/server/_ssr/empty-BHoY_5jt.mjs +49 -0
  98. package/.output/server/_ssr/{table-CnZmon_Z.mjs → field-mjhcNEXD.mjs} +63 -51
  99. package/.output/server/_ssr/getBundleChildren-DbDXe9wB.mjs +22 -0
  100. package/.output/server/_ssr/{input-group-BpsnmvZw.mjs → input-group-96H30HWC.mjs} +2 -2
  101. package/.output/server/_ssr/insights-D25VDVaz.mjs +5 -0
  102. package/.output/server/_ssr/insights-D359GJFL.mjs +14 -0
  103. package/.output/server/_ssr/insights-DgFv1NsO.mjs +1238 -0
  104. package/.output/server/_ssr/insights-api-ChAKrbhG.mjs +105 -0
  105. package/.output/server/_ssr/insights-failures-WQ-ttjOx.mjs +44 -0
  106. package/.output/server/_ssr/insights-failures-rpc-BFsqlltN.mjs +21 -0
  107. package/.output/server/_ssr/insights-recovery-DkL6bxMW.mjs +28 -0
  108. package/.output/server/_ssr/insights-recovery-rpc-2P5m8F62.mjs +46 -0
  109. package/.output/server/_ssr/insights-recovery-rpc-Tj8vNC19.mjs +20 -0
  110. package/.output/server/_ssr/{insights-rpc-38DujK0G.mjs → insights-rpc-DrkVmV9o.mjs} +22 -14
  111. package/.output/server/_ssr/insights-search-BsalnNw-.mjs +25 -0
  112. package/.output/server/_ssr/insights-usage-1nVTQrLy.mjs +29 -0
  113. package/.output/server/_ssr/insights-usage-rpc-Ct_4xHhZ.mjs +29 -0
  114. package/.output/server/_ssr/insights-usage-rpc-DaYIRtFK.mjs +41 -0
  115. package/.output/server/_ssr/insightsRecovery-CpGucWN1.mjs +45 -0
  116. package/.output/server/_ssr/insightsUsage-JYpKZAF7.mjs +56 -0
  117. package/.output/server/_ssr/insights_.distribution-Bcu6uYs_.mjs +5 -0
  118. package/.output/server/_ssr/insights_.distribution-D3Csuyjw.mjs +14 -0
  119. package/.output/server/_ssr/insights_.distribution-jQZEF07J.mjs +335 -0
  120. package/.output/server/_ssr/installations-B8Vh54lH.mjs +69 -0
  121. package/.output/server/_ssr/installations-BI5kelHv.mjs +5 -0
  122. package/.output/server/_ssr/{installations-DiVKEF5T.mjs → installations-Cxikllmx.mjs} +517 -54
  123. package/.output/server/_ssr/listReleases-DqU9t1l3.mjs +79 -0
  124. package/.output/server/_ssr/releaseManagement-B3e7I8J9.mjs +11 -0
  125. package/.output/server/_ssr/{router-B9wG_9f8.mjs → router-CRkm-wHD.mjs} +117 -124
  126. package/.output/server/_ssr/routes-B3IJo_jL.mjs +292 -0
  127. package/.output/server/_ssr/{routes-D7Yh_jfj.mjs → routes-CNAi0Mmv.mjs} +176 -455
  128. package/.output/server/_ssr/runtime.server-NucbYjc7.mjs +1372 -0
  129. package/.output/server/_ssr/select-BkPAJFL7.mjs +107 -0
  130. package/.output/server/_ssr/{server-D_C2rMzf.mjs → server-DKJYsaCP.mjs} +6 -32
  131. package/.output/server/_ssr/{createSsrRpc-DjWNJ0uc.mjs → sidebar-Cw1VuC7d.mjs} +117 -63
  132. package/.output/server/_ssr/ssr.mjs +1 -1
  133. package/.output/server/_ssr/table-q0P9wz7x.mjs +53 -0
  134. package/.output/server/_ssr/updateFailures-DMU9f0pK.mjs +24 -0
  135. package/.output/server/_ssr/{uuidv7-D0QFkPL_.mjs → uuidv7-BzSO-fr-.mjs} +2 -2
  136. package/.output/server/_tanstack-start-manifest_v-Bb0gKDbb.mjs +124 -0
  137. package/.output/server/index.mjs +273 -168
  138. package/README.md +71 -65
  139. package/lib/index.d.mts +13 -11
  140. package/lib/vite-internal.mjs +6 -3
  141. package/package.json +8 -8
  142. package/src/components/AppSidebar.tsx +91 -71
  143. package/src/components/ConsoleAccessPage.tsx +5 -1
  144. package/src/components/ConsoleFeatureUnavailable.tsx +82 -0
  145. package/src/components/NotFoundPage.tsx +7 -7
  146. package/src/components/features/FeatureSlots.tsx +99 -0
  147. package/src/components/features/api-keys/apiKeysFeatureUi.tsx +15 -0
  148. package/src/components/features/bundles/BundleMetadata.tsx +7 -4
  149. package/src/components/features/channels/ChannelManagementDialog.tsx +2 -5
  150. package/src/components/features/insights/AppUsage.tsx +370 -0
  151. package/src/components/features/insights/EstimatedCount.tsx +18 -0
  152. package/src/components/features/insights/EventDetails.tsx +117 -37
  153. package/src/components/features/insights/EventHistoryCard.tsx +112 -26
  154. package/src/components/features/insights/EventHistoryList.tsx +2 -2
  155. package/src/components/features/insights/InsightsControls.tsx +265 -102
  156. package/src/components/features/insights/InsightsErrorAlert.tsx +14 -1
  157. package/src/components/features/insights/InsightsInfo.tsx +48 -0
  158. package/src/components/features/insights/InsightsOverview.tsx +176 -173
  159. package/src/components/features/insights/InsightsPageHeader.tsx +35 -20
  160. package/src/components/features/insights/InsightsPeriodSelector.tsx +89 -0
  161. package/src/components/features/insights/InstallationHistoryCard.tsx +52 -10
  162. package/src/components/features/insights/InstallationMatchesCard.tsx +1 -1
  163. package/src/components/features/insights/ReleaseActivity.tsx +188 -0
  164. package/src/components/features/insights/ReportingDevicesSummary.tsx +65 -0
  165. package/src/components/features/insights/UpdateFailures.tsx +319 -0
  166. package/src/components/features/insights/insightsFeatureUi.tsx +35 -0
  167. package/src/components/features/releases/ReleaseEditorSheet.tsx +24 -1
  168. package/src/components/ui/card.tsx +1 -1
  169. package/src/components/ui/empty.tsx +101 -0
  170. package/src/components/ui/scroll-area.tsx +52 -0
  171. package/src/components/ui/sidebar.tsx +22 -29
  172. package/src/components/ui/tabs.tsx +81 -0
  173. package/src/index.ts +12 -17
  174. package/src/lib/api-keys-api.ts +0 -28
  175. package/src/lib/api-keys-rpc.ts +27 -38
  176. package/src/lib/api-rpc.ts +197 -221
  177. package/src/lib/api.ts +11 -13
  178. package/src/lib/bundle-activity.ts +31 -0
  179. package/src/lib/console-access.ts +20 -0
  180. package/src/lib/console-features-api.ts +68 -0
  181. package/src/lib/console-features-rpc.ts +13 -0
  182. package/src/lib/console-features.ts +91 -0
  183. package/src/lib/insights-api.ts +37 -1
  184. package/src/lib/insights-failures-rpc.ts +21 -0
  185. package/src/lib/insights-failures.ts +129 -0
  186. package/src/lib/insights-recovery-rpc.ts +51 -0
  187. package/src/lib/insights-recovery.ts +68 -0
  188. package/src/lib/insights-retention.ts +21 -0
  189. package/src/lib/insights-rpc.ts +30 -12
  190. package/src/lib/insights-search.ts +58 -0
  191. package/src/lib/insights-usage-rpc.ts +29 -0
  192. package/src/lib/insights-usage.ts +74 -0
  193. package/src/lib/insights-view.ts +38 -2
  194. package/src/lib/scroll-restoration.ts +21 -0
  195. package/src/lib/server/adminInsights.ts +124 -0
  196. package/src/lib/server/auth.server.ts +13 -5
  197. package/src/lib/server/bundleActivity.ts +37 -0
  198. package/src/lib/server/config.server.ts +16 -32
  199. package/src/lib/server/console-feature-apis.ts +59 -0
  200. package/src/lib/server/console-runtime.server.ts +6 -40
  201. package/src/lib/server/deleteBundle.ts +16 -25
  202. package/src/lib/server/downloadBundle.ts +7 -10
  203. package/src/lib/server/getBundleChildren.ts +31 -122
  204. package/src/lib/server/insightsRecovery.ts +55 -0
  205. package/src/lib/server/insightsUsage.ts +63 -0
  206. package/src/lib/server/listReleases.ts +109 -44
  207. package/src/lib/server/releaseReachability.ts +4 -3
  208. package/src/lib/server/runtime.server.ts +132 -31
  209. package/src/lib/server/updateFailures.ts +31 -0
  210. package/src/routeTree.gen.ts +21 -21
  211. package/src/router.tsx +3 -2
  212. package/src/routes/-installations-search.ts +32 -8
  213. package/src/routes/-releases-search.ts +76 -29
  214. package/src/routes/__root.tsx +10 -4
  215. package/src/routes/api/bundles/$bundleId/download.ts +2 -5
  216. package/src/routes/api-keys.tsx +5 -2
  217. package/src/routes/index.tsx +167 -104
  218. package/src/routes/insights.tsx +100 -59
  219. package/src/routes/insights_.distribution.tsx +398 -0
  220. package/src/routes/installations.tsx +98 -41
  221. package/src/vite-internal.ts +6 -3
  222. package/.output/public/assets/HashValueDisplay-CB0Eskit.js +0 -1
  223. package/.output/public/assets/InsightsPageHeader-Car5LNiZ.js +0 -1
  224. package/.output/public/assets/api-keys-BzKocqRy.js +0 -1
  225. package/.output/public/assets/api-keys-api-BHcODB7q.js +0 -1
  226. package/.output/public/assets/card-Dhr_eFYj.js +0 -1
  227. package/.output/public/assets/chart-no-axes-combined-Dy4WJv2U.js +0 -1
  228. package/.output/public/assets/composite-Bp98A0Ld.js +0 -1
  229. package/.output/public/assets/createServerFn-CA8fs7QD.js +0 -3
  230. package/.output/public/assets/dialog-CUTrcPlB.js +0 -1
  231. package/.output/public/assets/dist-C_NydL0e.js +0 -1
  232. package/.output/public/assets/index-DdAz-CXv.js +0 -10
  233. package/.output/public/assets/input-group-cSOG4wh_.js +0 -1
  234. package/.output/public/assets/insights-C0PBSZ-n.js +0 -1
  235. package/.output/public/assets/installations-CE33wgbY.js +0 -2
  236. package/.output/public/assets/installations-CStZja8x.js +0 -1
  237. package/.output/public/assets/lazyRouteComponent-Ccp3bwBY.js +0 -1
  238. package/.output/public/assets/link-CI8idAUi.js +0 -1
  239. package/.output/public/assets/loader-circle-BoxLrsOu.js +0 -1
  240. package/.output/public/assets/preload-helper-CQ36nxok.js +0 -1
  241. package/.output/public/assets/refresh-cw-Bqc72UZG.js +0 -1
  242. package/.output/public/assets/routes-DGVXdzpw.js +0 -2
  243. package/.output/public/assets/routes-DTlwOr8I.js +0 -1
  244. package/.output/public/assets/shield-check-uK3MHWJZ.js +0 -1
  245. package/.output/public/assets/signing-CMf4aqDO.js +0 -1
  246. package/.output/public/assets/styles-BCvbtKsm.css +0 -2
  247. package/.output/public/assets/table-2vcV89QB.js +0 -1
  248. package/.output/public/assets/useCompositeListItem-CHLITE_4.js +0 -1
  249. package/.output/public/assets/x-DCd0j8c6.js +0 -1
  250. package/.output/server/_ssr/InsightsPageHeader-Df4Brj8u.mjs +0 -484
  251. package/.output/server/_ssr/api-keys-api-BUPQVSpk.mjs +0 -60
  252. package/.output/server/_ssr/api-keys-rpc-Cs7tS5_j.mjs +0 -136
  253. package/.output/server/_ssr/api-rpc-tAupfGQm.mjs +0 -1399
  254. package/.output/server/_ssr/auth.server-DW71WzsD.mjs +0 -47
  255. package/.output/server/_ssr/bundle-signing-rpc-BhnBw0-d.mjs +0 -16
  256. package/.output/server/_ssr/bundle-signing.server-C4NW5mWx.mjs +0 -12
  257. package/.output/server/_ssr/card-BRiPmi0C.mjs +0 -108
  258. package/.output/server/_ssr/config-Dv8qLDZ0.mjs +0 -13
  259. package/.output/server/_ssr/config.server-afDuAwaG.mjs +0 -368
  260. package/.output/server/_ssr/databaseJsonValue-d6I3nAS4.mjs +0 -45
  261. package/.output/server/_ssr/databaseRows-5bCRTxm-.mjs +0 -126
  262. package/.output/server/_ssr/getBundleChildren-C0vh4ZvE.mjs +0 -50
  263. package/.output/server/_ssr/insights-BdS364Xu.mjs +0 -460
  264. package/.output/server/_ssr/insightsContract-fjJDBeEE.mjs +0 -303
  265. package/.output/server/_ssr/installations-CtA59MQG.mjs +0 -29
  266. package/.output/server/_ssr/routes-CKrrS2q2.mjs +0 -37
  267. package/.output/server/_ssr/runtime.server-DacU1TBV.mjs +0 -438
  268. package/.output/server/_ssr/signing-Dz1WkZOf.mjs +0 -133
  269. package/.output/server/_tanstack-start-manifest_v-2MjTyxil.mjs +0 -97
  270. package/src/components/features/insights/InsightsBundleReports.tsx +0 -51
  271. package/src/components/features/signing/BundleSigningPage.tsx +0 -139
  272. package/src/lib/bundle-signing-api.ts +0 -14
  273. package/src/lib/bundle-signing-rpc.ts +0 -16
  274. package/src/lib/server/bundle-signing.server.ts +0 -23
  275. package/src/routes/signing.tsx +0 -37
@@ -0,0 +1,107 @@
1
+ import "../_runtime.mjs";
2
+ import { A as SelectGroup$1, B as SelectIcon, F as SelectItem$1, H as SelectTrigger$1, I as SelectList, L as SelectPopup, M as SelectScrollDownArrow, N as SelectItemText, P as SelectItemIndicator, R as SelectPositioner, U as SelectRoot, V as SelectValue$1, j as SelectScrollUpArrow, mt as require_react, pt as require_jsx_runtime, z as SelectPortal } from "../_libs/@base-ui/react+[...].mjs";
3
+ import { F as Check, P as ChevronDown, j as ChevronUp } from "../_libs/lucide-react.mjs";
4
+ import { O as cn } from "./sidebar-Cw1VuC7d.mjs";
5
+ require_react();
6
+ var import_jsx_runtime = require_jsx_runtime();
7
+ function AppleIcon({ className }) {
8
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
9
+ "aria-hidden": "true",
10
+ viewBox: "0 0 24 24",
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ className,
13
+ fill: "currentColor",
14
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701" })
15
+ });
16
+ }
17
+ function AndroidIcon({ className }) {
18
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
19
+ "aria-hidden": "true",
20
+ viewBox: "0 0 24 24",
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ className,
23
+ fill: "currentColor",
24
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z" })
25
+ });
26
+ }
27
+ function PlatformIcon({ platform, className }) {
28
+ if (platform === "ios") return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppleIcon, { className });
29
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AndroidIcon, { className });
30
+ }
31
+ var Select$1 = SelectRoot;
32
+ function SelectGroup({ className, ...props }) {
33
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectGroup$1, {
34
+ "data-slot": "select-group",
35
+ className: cn("scroll-my-1 p-1", className),
36
+ ...props
37
+ });
38
+ }
39
+ function SelectValue({ className, ...props }) {
40
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectValue$1, {
41
+ "data-slot": "select-value",
42
+ className: cn("flex flex-1 text-left", className),
43
+ ...props
44
+ });
45
+ }
46
+ function SelectTrigger({ className, size = "default", children, ...props }) {
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SelectTrigger$1, {
48
+ "data-slot": "select-trigger",
49
+ "data-size": size,
50
+ className: cn("flex w-fit items-center justify-between gap-1.5 rounded-md border border-input bg-input/20 px-2 py-1.5 text-xs/relaxed whitespace-nowrap transition-colors outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-7 data-[size=sm]:h-6 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5", className),
51
+ ...props,
52
+ children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectIcon, { render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronDown, { className: "pointer-events-none size-3.5 text-muted-foreground" }) })]
53
+ });
54
+ }
55
+ function SelectContent({ className, children, side = "bottom", sideOffset = 4, align = "center", alignOffset = 0, alignItemWithTrigger = true, ...props }) {
56
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPositioner, {
57
+ side,
58
+ sideOffset,
59
+ align,
60
+ alignOffset,
61
+ alignItemWithTrigger,
62
+ className: "isolate z-50",
63
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SelectPopup, {
64
+ "data-slot": "select-content",
65
+ "data-align-trigger": alignItemWithTrigger,
66
+ className: cn("dark relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
67
+ ...props,
68
+ children: [
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollUpButton, {}),
70
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectList, { children }),
71
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollDownButton, {})
72
+ ]
73
+ })
74
+ }) });
75
+ }
76
+ function SelectItem({ className, children, ...props }) {
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SelectItem$1, {
78
+ "data-slot": "select-item",
79
+ className: cn("relative flex min-h-7 w-full cursor-default items-center gap-2 rounded-md px-2 py-1 text-xs/relaxed outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
80
+ ...props,
81
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemText, {
82
+ className: "flex flex-1 shrink-0 gap-2 whitespace-nowrap",
83
+ children
84
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemIndicator, {
85
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "pointer-events-none absolute right-2 flex items-center justify-center" }),
86
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Check, { className: "pointer-events-none" })
87
+ })]
88
+ });
89
+ }
90
+ function SelectScrollUpButton({ className, ...props }) {
91
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollUpArrow, {
92
+ "data-slot": "select-scroll-up-button",
93
+ className: cn("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-3.5", className),
94
+ ...props,
95
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronUp, {})
96
+ });
97
+ }
98
+ function SelectScrollDownButton({ className, ...props }) {
99
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollDownArrow, {
100
+ "data-slot": "select-scroll-down-button",
101
+ className: cn("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-3.5", className),
102
+ ...props,
103
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronDown, {})
104
+ });
105
+ }
106
+ //#endregion
107
+ export { SelectItem as a, SelectGroup as i, Select$1 as n, SelectTrigger as o, SelectContent as r, SelectValue as s, PlatformIcon as t };
@@ -1,8 +1,8 @@
1
1
  import "../_runtime.mjs";
2
- import { a as X_TSS_RAW_RESPONSE, d as getStartOptions, f as isRedirect, g as safeObjectMerge, h as runWithStartContext, i as TSS_SERVER_FUNCTION, l as flattenMiddlewares, m as mergeHeaders, n as TSS_CONTENT_TYPE_FRAMED_VERSIONED, o as X_TSS_SERIALIZED, p as isResolvedRedirect, r as TSS_FORMDATA_CONTEXT, s as createNullProtoObject, t as FrameType, u as getStartContext } from "./createServerFn-B2hcXoPM.mjs";
3
- import { t as getServerFnById } from "../__23tanstack-start-server-fn-resolver-B7ioJhtE.mjs";
4
- import { J as require_react, q as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
5
- import { c as RouterProvider, n as defineHandlerCallback, r as renderRouterToString, t as renderRouterToStream } from "../_libs/@tanstack/react-router+[...].mjs";
2
+ import { _ as safeObjectMerge, a as X_TSS_RAW_RESPONSE, c as createNullProtoObject, d as getStartContext, f as getStartOptions, g as runWithStartContext, h as mergeHeaders, i as TSS_SERVER_FUNCTION, m as isResolvedRedirect, n as TSS_CONTENT_TYPE_FRAMED_VERSIONED, o as X_TSS_SERIALIZED, p as isRedirect, r as TSS_FORMDATA_CONTEXT, s as createMiddleware, t as FrameType, u as flattenMiddlewares } from "./createMiddleware-B_I3Ll4M.mjs";
3
+ import { t as getServerFnById } from "../__23tanstack-start-server-fn-resolver-CUQLz7hs.mjs";
4
+ import { mt as require_react, pt as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
5
+ import { l as RouterProvider, n as defineHandlerCallback, r as renderRouterToString, t as renderRouterToStream } from "../_libs/@tanstack/react-router+[...].mjs";
6
6
  import { PassThrough, Readable } from "node:stream";
7
7
  import { AsyncLocalStorage } from "node:async_hooks";
8
8
  import { ReadableStream as ReadableStream$1 } from "node:stream/web";
@@ -4901,7 +4901,7 @@ var defaultSerovalPlugins = [
4901
4901
  * the dev styles URL for route-scoped CSS collection.
4902
4902
  */
4903
4903
  async function getStartManifest(matchedRoutes) {
4904
- const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-2MjTyxil.mjs");
4904
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-Bb0gKDbb.mjs");
4905
4905
  const startManifest = tsrStartManifest();
4906
4906
  let routes = startManifest.routes;
4907
4907
  routes[rootRouteId];
@@ -4923,32 +4923,6 @@ async function getStartManifest(matchedRoutes) {
4923
4923
  function dehydrateSsrMatchId(id) {
4924
4924
  return id.replaceAll("/", "\0");
4925
4925
  }
4926
- var createMiddleware = (options, __opts) => {
4927
- const resolvedOptions = {
4928
- type: "request",
4929
- ...__opts || options
4930
- };
4931
- const setValidator = (validator) => {
4932
- return createMiddleware({}, Object.assign(resolvedOptions, {
4933
- validator,
4934
- inputValidator: validator
4935
- }));
4936
- };
4937
- return {
4938
- options: resolvedOptions,
4939
- middleware: (middleware) => {
4940
- return createMiddleware({}, Object.assign(resolvedOptions, { middleware }));
4941
- },
4942
- validator: setValidator,
4943
- inputValidator: setValidator,
4944
- client: (client) => {
4945
- return createMiddleware({}, Object.assign(resolvedOptions, { client }));
4946
- },
4947
- server: (server) => {
4948
- return createMiddleware({}, Object.assign(resolvedOptions, { server }));
4949
- }
4950
- };
4951
- };
4952
4926
  var innerCreateCsrfMiddleware = (opts = {}) => {
4953
4927
  return createMiddleware().server(async (ctx) => {
4954
4928
  const csrfCtx = ctx;
@@ -7041,7 +7015,7 @@ var getBaseManifest = getProdBaseManifest;
7041
7015
  var createEarlyHintsForRequest = createEarlyHintsCollector;
7042
7016
  async function loadEntries() {
7043
7017
  const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
7044
- import("./router-B9wG_9f8.mjs"),
7018
+ import("./router-CRkm-wHD.mjs"),
7045
7019
  import("./start-DpViQGnt.mjs"),
7046
7020
  import("./empty-plugin-adapters-B5QvGpEl.mjs")
7047
7021
  ]);
@@ -1,16 +1,35 @@
1
- import { r as __toESM } from "../_runtime.mjs";
2
- import { i as TSS_SERVER_FUNCTION } from "./createServerFn-B2hcXoPM.mjs";
3
- import { t as getServerFnById } from "../__23tanstack-start-server-fn-resolver-B7ioJhtE.mjs";
4
- import { B as TooltipRoot, F as TooltipArrow, G as useRender, I as TooltipPopup, J as require_react, K as mergeProps, L as TooltipPositioner, P as TooltipProvider$1, R as TooltipPortal, U as Separator, W as Button, q as require_jsx_runtime, z as TooltipTrigger$1 } from "../_libs/@base-ui/react+[...].mjs";
5
- import { p as PanelLeft } from "../_libs/lucide-react.mjs";
1
+ import { i as __toESM } from "../_runtime.mjs";
2
+ import { i as TSS_SERVER_FUNCTION } from "./createMiddleware-B_I3Ll4M.mjs";
3
+ import { t as getServerFnById } from "../__23tanstack-start-server-fn-resolver-CUQLz7hs.mjs";
4
+ import { $ as DialogBackdrop, J as DialogRoot, Q as DialogClose, X as DialogPopup, Y as DialogPortal, Z as DialogDescription, at as TooltipPositioner, ct as TooltipRoot, dt as Button, et as Separator, ft as mergeProps, it as TooltipPopup, mt as require_react, nt as TooltipProvider$1, ot as TooltipPortal, pt as require_jsx_runtime, q as DialogTitle, rt as TooltipArrow, st as TooltipTrigger$1, tt as useRender } from "../_libs/@base-ui/react+[...].mjs";
5
+ import { p as PanelLeft, t as X } from "../_libs/lucide-react.mjs";
6
6
  import { n as clsx, t as cva } from "../_libs/class-variance-authority+clsx.mjs";
7
7
  import { t as twMerge } from "../_libs/tailwind-merge.mjs";
8
- //#region node_modules/.nitro/vite/services/ssr/assets/createSsrRpc-DjWNJ0uc.js
8
+ //#region node_modules/.nitro/vite/services/ssr/assets/sidebar-Cw1VuC7d.js
9
9
  var import_react = /* @__PURE__ */ __toESM(require_react());
10
10
  var import_jsx_runtime = require_jsx_runtime();
11
+ var createSsrRpc = (functionId) => {
12
+ const url = "/_serverFn/" + functionId;
13
+ const serverFnMeta = { id: functionId };
14
+ const fn = async (...args) => {
15
+ return (await getServerFnById(functionId, { origin: "server" }))(...args);
16
+ };
17
+ return Object.assign(fn, {
18
+ url,
19
+ serverFnMeta,
20
+ [TSS_SERVER_FUNCTION]: true
21
+ });
22
+ };
11
23
  function cn(...inputs) {
12
24
  return twMerge(clsx(inputs));
13
25
  }
26
+ function Skeleton({ className, ...props }) {
27
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
28
+ "data-slot": "skeleton",
29
+ className: cn("bg-muted rounded-md animate-pulse motion-reduce:animate-none", className),
30
+ ...props
31
+ });
32
+ }
14
33
  var buttonVariants = cva("focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-xs/relaxed font-medium focus-visible:ring-[2px] aria-invalid:ring-[2px] [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap cursor-pointer transition-all disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none", {
15
34
  variants: {
16
35
  variant: {
@@ -50,29 +69,6 @@ function Button$1({ className, variant = "default", size = "default", ...props }
50
69
  ...props
51
70
  });
52
71
  }
53
- function Input({ className, type, ...props }) {
54
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", {
55
- type,
56
- "data-slot": "input",
57
- className: cn("bg-input/20 dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-7 rounded-md border px-2 py-0.5 text-sm transition-colors file:h-6 file:text-xs/relaxed file:font-medium focus-visible:ring-[2px] aria-invalid:ring-[2px] md:text-xs/relaxed file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", className),
58
- ...props
59
- });
60
- }
61
- function Separator$1({ className, orientation = "horizontal", ...props }) {
62
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Separator, {
63
- "data-slot": "separator",
64
- orientation,
65
- className: cn("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch", className),
66
- ...props
67
- });
68
- }
69
- function Skeleton({ className, ...props }) {
70
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
71
- "data-slot": "skeleton",
72
- className: cn("bg-muted rounded-md animate-pulse motion-reduce:animate-none", className),
73
- ...props
74
- });
75
- }
76
72
  function TooltipProvider({ delay = 0, ...props }) {
77
73
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProvider$1, {
78
74
  "data-slot": "tooltip-provider",
@@ -107,6 +103,82 @@ function TooltipContent({ className, side = "top", sideOffset = 4, align = "cent
107
103
  })
108
104
  }) });
109
105
  }
106
+ function Input({ className, type, ...props }) {
107
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", {
108
+ type,
109
+ "data-slot": "input",
110
+ className: cn("bg-input/20 dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-7 rounded-md border px-2 py-0.5 text-sm transition-colors file:h-6 file:text-xs/relaxed file:font-medium focus-visible:ring-[2px] aria-invalid:ring-[2px] md:text-xs/relaxed file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", className),
111
+ ...props
112
+ });
113
+ }
114
+ function Separator$1({ className, orientation = "horizontal", ...props }) {
115
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Separator, {
116
+ "data-slot": "separator",
117
+ orientation,
118
+ className: cn("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch", className),
119
+ ...props
120
+ });
121
+ }
122
+ function Sheet({ ...props }) {
123
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogRoot, {
124
+ "data-slot": "sheet",
125
+ ...props
126
+ });
127
+ }
128
+ function SheetPortal({ ...props }) {
129
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortal, {
130
+ "data-slot": "sheet-portal",
131
+ ...props
132
+ });
133
+ }
134
+ function SheetOverlay({ className, ...props }) {
135
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogBackdrop, {
136
+ "data-slot": "sheet-overlay",
137
+ className: cn("fixed inset-0 z-50 bg-black/80 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs", className),
138
+ ...props
139
+ });
140
+ }
141
+ function SheetContent({ className, children, side = "right", showCloseButton = true, ...props }) {
142
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SheetPortal, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SheetOverlay, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DialogPopup, {
143
+ "data-slot": "sheet-content",
144
+ "data-side": side,
145
+ className: cn("fixed z-50 flex flex-col bg-background bg-clip-padding text-xs/relaxed shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", className),
146
+ ...props,
147
+ children: [children, showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DialogClose, {
148
+ "data-slot": "sheet-close",
149
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button$1, {
150
+ variant: "ghost",
151
+ className: "absolute top-4 right-4",
152
+ size: "icon-sm"
153
+ }),
154
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(X, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
155
+ className: "sr-only",
156
+ children: "Close"
157
+ })]
158
+ })]
159
+ })] });
160
+ }
161
+ function SheetHeader({ className, ...props }) {
162
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
163
+ "data-slot": "sheet-header",
164
+ className: cn("flex flex-col gap-1.5 p-6", className),
165
+ ...props
166
+ });
167
+ }
168
+ function SheetTitle({ className, ...props }) {
169
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogTitle, {
170
+ "data-slot": "sheet-title",
171
+ className: cn("text-sm font-medium text-foreground", className),
172
+ ...props
173
+ });
174
+ }
175
+ function SheetDescription({ className, ...props }) {
176
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogDescription, {
177
+ "data-slot": "sheet-description",
178
+ className: cn("text-xs/relaxed text-muted-foreground", className),
179
+ ...props
180
+ });
181
+ }
110
182
  var MOBILE_BREAKPOINT = 768;
111
183
  function useIsMobile() {
112
184
  const [isMobile, setIsMobile] = import_react.useState(void 0);
@@ -237,32 +309,26 @@ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offExample
237
309
  ...props,
238
310
  children
239
311
  });
240
- if (isMobile) {
241
- if (!openMobile) return null;
242
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
312
+ if (isMobile) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Sheet, {
313
+ open: openMobile,
314
+ onOpenChange: setOpenMobile,
315
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SheetContent, {
243
316
  "data-sidebar": "sidebar",
244
317
  "data-slot": "sidebar",
245
318
  "data-mobile": "true",
246
- className: "fixed inset-0 z-50 md:hidden",
319
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) max-w-[calc(100vw-2rem)] p-0",
320
+ style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
321
+ side,
247
322
  ...props,
248
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
249
- type: "button",
250
- "aria-label": "Close sidebar",
251
- className: "absolute inset-0 bg-sidebar/55 supports-backdrop-filter:backdrop-blur-sm",
252
- onClick: () => setOpenMobile(false)
253
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("dialog", {
254
- open: true,
255
- "aria-modal": "true",
256
- "aria-label": "Sidebar",
257
- className: cn("bg-sidebar text-sidebar-foreground absolute inset-y-0 z-10 flex w-(--sidebar-width) flex-col shadow-lg", side === "left" ? "left-0" : "right-0"),
258
- style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
259
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "pointer-events-none absolute inset-x-0 top-full h-32 bg-sidebar" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
260
- className: "flex h-full w-full flex-col overflow-y-auto bg-sidebar",
261
- children
262
- })]
323
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SheetHeader, {
324
+ className: "sr-only",
325
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SheetTitle, { children: "Sidebar" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SheetDescription, { children: "Console navigation." })]
326
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
327
+ className: "flex size-full min-h-0 flex-col pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]",
328
+ children
263
329
  })]
264
- });
265
- }
330
+ })
331
+ });
266
332
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
267
333
  className: "group peer text-sidebar-foreground hidden md:block",
268
334
  "data-state": state,
@@ -421,17 +487,5 @@ function SidebarMenuButton({ render, isActive = false, variant = "default", size
421
487
  ...tooltip
422
488
  })] });
423
489
  }
424
- var createSsrRpc = (functionId) => {
425
- const url = "/_serverFn/" + functionId;
426
- const serverFnMeta = { id: functionId };
427
- const fn = async (...args) => {
428
- return (await getServerFnById(functionId, { origin: "server" }))(...args);
429
- };
430
- return Object.assign(fn, {
431
- url,
432
- serverFnMeta,
433
- [TSS_SERVER_FUNCTION]: true
434
- });
435
- };
436
490
  //#endregion
437
- export { cn as C, buttonVariants as S, useIsMobile as T, Skeleton as _, SidebarContent as a, TooltipProvider as b, SidebarGroupContent as c, SidebarInset as d, SidebarMenu as f, SidebarTrigger as g, SidebarProvider as h, Sidebar as i, SidebarGroupLabel as l, SidebarMenuItem as m, Input as n, SidebarFooter as o, SidebarMenuButton as p, Separator$1 as r, SidebarGroup as s, Button$1 as t, SidebarHeader as u, Tooltip$1 as v, createSsrRpc as w, TooltipTrigger as x, TooltipContent as y };
491
+ export { useIsMobile as A, Tooltip$1 as C, buttonVariants as D, TooltipTrigger as E, cn as O, Skeleton as S, TooltipProvider as T, SidebarMenu as _, SheetContent as a, SidebarProvider as b, SheetTitle as c, SidebarFooter as d, SidebarGroup as f, SidebarInset as g, SidebarHeader as h, Sheet as i, useSidebar as j, createSsrRpc as k, Sidebar as l, SidebarGroupLabel as m, Input as n, SheetDescription as o, SidebarGroupContent as p, Separator$1 as r, SheetHeader as s, Button$1 as t, SidebarContent as u, SidebarMenuButton as v, TooltipContent as w, SidebarTrigger as x, SidebarMenuItem as y };
@@ -1,4 +1,4 @@
1
- import { i as defaultStreamHandler, n as createStartHandler } from "./server-D_C2rMzf.mjs";
1
+ import { i as defaultStreamHandler, n as createStartHandler } from "./server-DKJYsaCP.mjs";
2
2
  //#region node_modules/.nitro/vite/services/ssr/index.js
3
3
  var fetch = createStartHandler(defaultStreamHandler);
4
4
  function createServerEntry(entry) {
@@ -0,0 +1,53 @@
1
+ import "../_runtime.mjs";
2
+ import { mt as require_react, pt as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
3
+ import { O as cn } from "./sidebar-Cw1VuC7d.mjs";
4
+ require_react();
5
+ var import_jsx_runtime = require_jsx_runtime();
6
+ function Table({ className, ...props }) {
7
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
8
+ "data-slot": "table-container",
9
+ className: "relative w-full overflow-x-auto",
10
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("table", {
11
+ "data-slot": "table",
12
+ className: cn("w-full caption-bottom text-xs", className),
13
+ ...props
14
+ })
15
+ });
16
+ }
17
+ function TableHeader({ className, ...props }) {
18
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("thead", {
19
+ "data-slot": "table-header",
20
+ className: cn("[&_tr]:border-b", className),
21
+ ...props
22
+ });
23
+ }
24
+ function TableBody({ className, ...props }) {
25
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("tbody", {
26
+ "data-slot": "table-body",
27
+ className: cn("[&_tr:last-child]:border-0", className),
28
+ ...props
29
+ });
30
+ }
31
+ function TableRow({ className, ...props }) {
32
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("tr", {
33
+ "data-slot": "table-row",
34
+ className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
35
+ ...props
36
+ });
37
+ }
38
+ function TableHead({ className, ...props }) {
39
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("th", {
40
+ "data-slot": "table-head",
41
+ className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
42
+ ...props
43
+ });
44
+ }
45
+ function TableCell({ className, ...props }) {
46
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("td", {
47
+ "data-slot": "table-cell",
48
+ className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
49
+ ...props
50
+ });
51
+ }
52
+ //#endregion
53
+ export { TableHeader as a, TableHead as i, TableBody as n, TableRow as o, TableCell as r, Table as t };
@@ -0,0 +1,24 @@
1
+ import { r as recoveryWindows, t as insightsPeriodEnd } from "./insights-recovery-DkL6bxMW.mjs";
2
+ import { l as readUpdateFailuresInput } from "./insights-failures-WQ-ttjOx.mjs";
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/updateFailures-DMU9f0pK.js
4
+ /** A release's or a channel's update failures over a period that ends with the current hour. */
5
+ async function getUpdateFailuresReport(reads, input, now = Date.now()) {
6
+ readUpdateFailuresInput(input);
7
+ const end = insightsPeriodEnd(now);
8
+ const timeRange = input.window === void 0 ? void 0 : {
9
+ start: Math.max(0, end - recoveryWindows[input.window].durationMs),
10
+ end
11
+ };
12
+ return {
13
+ ...await reads.getUpdateFailures({
14
+ platform: input.platform,
15
+ channel: input.channel,
16
+ ...input.releaseId === void 0 ? {} : { releaseId: input.releaseId },
17
+ ...timeRange === void 0 ? {} : { timeRange }
18
+ }),
19
+ startMs: timeRange?.start ?? null,
20
+ endMs: end
21
+ };
22
+ }
23
+ //#endregion
24
+ export { getUpdateFailuresReport };
@@ -1,5 +1,5 @@
1
- import { x as isUUIDv7 } from "./dist-CyzPaI5v.mjs";
2
- //#region node_modules/.nitro/vite/services/ssr/assets/uuidv7-D0QFkPL_.js
1
+ import { C as isUUIDv7 } from "./dist-B-r4u3Lg.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/uuidv7-BzSO-fr-.js
3
3
  var extractTimestampFromUUIDv7 = (uuid) => {
4
4
  if (!isUUIDv7(uuid)) throw new TypeError("Expected a canonical lowercase UUIDv7");
5
5
  const timestampHex = uuid.split("-").join("").slice(0, 12);
@@ -0,0 +1,124 @@
1
+ //#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-Bb0gKDbb.js
2
+ var tsrStartManifest = () => ({ routes: {
3
+ __root__: {
4
+ filePath: "/home/runner/work/hot-updater/hot-updater/packages/console/src/routes/__root.tsx",
5
+ children: [
6
+ "/",
7
+ "/api-keys",
8
+ "/insights",
9
+ "/installations",
10
+ "/insights_/distribution",
11
+ "/api/auth/$",
12
+ "/api/bundles/$bundleId/download"
13
+ ],
14
+ preloads: [
15
+ "/assets/index-0eg3l8aC.js",
16
+ "/assets/sidebar-B45aMqRm.js",
17
+ "/assets/preload-helper-BN-UkjOE.js",
18
+ "/assets/installations-CH2H7JQt.js",
19
+ "/assets/mutation-x9L28_CD.js",
20
+ "/assets/console-features-api-yv7rm3DX.js",
21
+ "/assets/loader-circle-Ca7C9YY1.js",
22
+ "/assets/routes-veKtDW39.js",
23
+ "/assets/card-DzCPSRsh.js",
24
+ "/assets/dist-Clb6cQ9l.js",
25
+ "/assets/NotFoundPage-Dys8C0cW.js",
26
+ "/assets/insights-C6tmCZHk.js",
27
+ "/assets/insights_.distribution-CJUH_wAS.js"
28
+ ],
29
+ scripts: [{ attrs: {
30
+ type: "module",
31
+ async: !0,
32
+ src: "/assets/index-0eg3l8aC.js"
33
+ } }]
34
+ },
35
+ "/": {
36
+ filePath: "/home/runner/work/hot-updater/hot-updater/packages/console/src/routes/index.tsx",
37
+ children: void 0,
38
+ preloads: [
39
+ "/assets/routes-BhK8DuZA.js",
40
+ "/assets/dialog-BDvCy_QO.js",
41
+ "/assets/valueToPercent-C-t8FT0y.js",
42
+ "/assets/useOpenInteractionType-AnAMWYIY.js",
43
+ "/assets/useCompositeListItem-CF7vsfcA.js",
44
+ "/assets/api-CtarlV0l.js",
45
+ "/assets/field-Bou7shoO.js",
46
+ "/assets/HashValueDisplay-D880zntR.js",
47
+ "/assets/input-group-DVtWFUUF.js",
48
+ "/assets/table-CwLnN6KX.js"
49
+ ]
50
+ },
51
+ "/api-keys": {
52
+ filePath: "/home/runner/work/hot-updater/hot-updater/packages/console/src/routes/api-keys.tsx",
53
+ children: void 0,
54
+ preloads: [
55
+ "/assets/api-keys-DFF_QqtN.js",
56
+ "/assets/dialog-BDvCy_QO.js",
57
+ "/assets/useMutation-CN1ygYEr.js",
58
+ "/assets/field-Bou7shoO.js",
59
+ "/assets/refresh-cw-CVGqvy8Z.js",
60
+ "/assets/table-CwLnN6KX.js",
61
+ "/assets/api-keys-evfsQ4sN.js",
62
+ "/assets/ConsoleFeatureUnavailable-B9VYGA3N.js"
63
+ ]
64
+ },
65
+ "/insights": {
66
+ filePath: "/home/runner/work/hot-updater/hot-updater/packages/console/src/routes/insights.tsx",
67
+ children: void 0,
68
+ preloads: [
69
+ "/assets/insights-2MbdiSNv.js",
70
+ "/assets/ConsoleFeatureUnavailable-B9VYGA3N.js",
71
+ "/assets/insights-CadS_aIA.js",
72
+ "/assets/valueToPercent-C-t8FT0y.js",
73
+ "/assets/useOpenInteractionType-AnAMWYIY.js",
74
+ "/assets/InsightsPageHeader-9_kx_LL7.js",
75
+ "/assets/useCompositeListItem-CF7vsfcA.js",
76
+ "/assets/insights-usage-rpc-qUkNtrWr.js",
77
+ "/assets/api-CtarlV0l.js",
78
+ "/assets/field-Bou7shoO.js",
79
+ "/assets/InsightsInfo-By_sPjTE.js",
80
+ "/assets/empty-C5x9mn_s.js",
81
+ "/assets/input-group-DVtWFUUF.js",
82
+ "/assets/table-CwLnN6KX.js",
83
+ "/assets/insights-recovery-rpc-wvdyM4LD.js"
84
+ ]
85
+ },
86
+ "/installations": {
87
+ filePath: "/home/runner/work/hot-updater/hot-updater/packages/console/src/routes/installations.tsx",
88
+ children: void 0,
89
+ preloads: [
90
+ "/assets/installations-DMeMuwsW.js",
91
+ "/assets/InsightsPageHeader-9_kx_LL7.js",
92
+ "/assets/useCompositeListItem-CF7vsfcA.js",
93
+ "/assets/arrow-left-BP9D-ta_.js",
94
+ "/assets/arrow-up-right-CDP9Tevw.js",
95
+ "/assets/field-Bou7shoO.js",
96
+ "/assets/HashValueDisplay-D880zntR.js",
97
+ "/assets/refresh-cw-CVGqvy8Z.js",
98
+ "/assets/input-group-DVtWFUUF.js",
99
+ "/assets/table-CwLnN6KX.js",
100
+ "/assets/installations-DnvxI9Dt.js",
101
+ "/assets/ConsoleFeatureUnavailable-B9VYGA3N.js"
102
+ ]
103
+ },
104
+ "/insights_/distribution": {
105
+ filePath: "/home/runner/work/hot-updater/hot-updater/packages/console/src/routes/insights_.distribution.tsx",
106
+ children: void 0,
107
+ preloads: [
108
+ "/assets/insights_.distribution-BhBs6PNA.js",
109
+ "/assets/ConsoleFeatureUnavailable-B9VYGA3N.js",
110
+ "/assets/insights_.distribution-CItZw3-8.js",
111
+ "/assets/valueToPercent-C-t8FT0y.js",
112
+ "/assets/InsightsPageHeader-9_kx_LL7.js",
113
+ "/assets/insights-usage-rpc-qUkNtrWr.js",
114
+ "/assets/arrow-left-BP9D-ta_.js",
115
+ "/assets/arrow-up-right-CDP9Tevw.js",
116
+ "/assets/field-Bou7shoO.js",
117
+ "/assets/InsightsInfo-By_sPjTE.js",
118
+ "/assets/empty-C5x9mn_s.js",
119
+ "/assets/insights-search-KIF7mRtB.js"
120
+ ]
121
+ }
122
+ } });
123
+ //#endregion
124
+ export { tsrStartManifest };