@hot-updater/console 0.36.7 → 1.0.0-rc.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 (266) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/AnalyticsCapabilityContext-BCke57-7.js +1 -0
  3. package/.output/public/assets/BundleActivityChart-CnsBe_1J.js +42 -0
  4. package/.output/public/assets/BundleIdDisplay-Dky75zLU.js +1 -0
  5. package/.output/public/assets/alert-C-1KvDW8.js +1 -0
  6. package/.output/public/assets/analytics-Bqz0c-BT.js +1 -0
  7. package/.output/public/assets/analytics-api-CJdrTLLO.js +1 -0
  8. package/.output/public/assets/api-B_Rh-uzC.js +1 -0
  9. package/.output/public/assets/api-keys-BurCFhzH.js +1 -0
  10. package/.output/public/assets/api-keys-api-BEDJdQg3.js +1 -0
  11. package/.output/public/assets/badge-Bf0fZ-Gx.js +1 -0
  12. package/.output/public/assets/chart-no-axes-combined-FaYMGmQS.js +1 -0
  13. package/.output/public/assets/createServerFn-gM2-LFBy.js +3 -0
  14. package/.output/public/assets/dialog-BS60BRr2.js +1 -0
  15. package/.output/public/assets/dist-DspNKfMj.js +1 -0
  16. package/.output/public/assets/download-O-yNBc9H.js +1 -0
  17. package/.output/public/assets/field-Buq148-A.js +1 -0
  18. package/.output/public/assets/index-kFhd2S78.js +10 -0
  19. package/.output/public/assets/installations-BrQ-od41.js +2 -0
  20. package/.output/public/assets/installations-CGlZ3ROz.js +1 -0
  21. package/.output/public/assets/lazyRouteComponent-rPzgA7S-.js +1 -0
  22. package/.output/public/assets/loader-circle-DCYF-wJl.js +1 -0
  23. package/.output/public/assets/preload-helper-TKOBYGYD.js +1 -0
  24. package/.output/public/assets/refresh-cw-n8XYbPPj.js +1 -0
  25. package/.output/public/assets/routes-CrdokJ80.js +1 -0
  26. package/.output/public/assets/routes-DcQnVajO.js +2 -0
  27. package/.output/public/assets/search-DLhbWw3W.js +1 -0
  28. package/.output/public/assets/shield-check-DE_hVuHu.js +1 -0
  29. package/.output/public/assets/signing-HRexfjsH.js +1 -0
  30. package/.output/public/assets/styles-eB4EtvFS.css +2 -0
  31. package/.output/public/assets/table-D8CLieHX.js +1 -0
  32. package/.output/public/assets/textarea-YJLTVAoq.js +1 -0
  33. package/.output/public/assets/useMutation-JsGVjQMY.js +1 -0
  34. package/.output/public/assets/useOpenInteractionType-4cRD5xO0.js +1 -0
  35. package/.output/server/__23tanstack-start-server-fn-resolver-DBP9TQ7K.mjs +146 -0
  36. package/.output/server/_libs/@base-ui/react+[...].mjs +16124 -0
  37. package/.output/server/_libs/@reduxjs/toolkit+[...].mjs +1554 -0
  38. package/.output/server/_libs/@tanstack/react-router+[...].mjs +41 -10
  39. package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +132 -0
  40. package/.output/server/_libs/d3-array.mjs +231 -0
  41. package/.output/server/_libs/d3-color.mjs +330 -0
  42. package/.output/server/_libs/d3-format.mjs +252 -0
  43. package/.output/server/_libs/d3-interpolate.mjs +207 -0
  44. package/.output/server/_libs/d3-path.mjs +77 -0
  45. package/.output/server/_libs/d3-scale+[...].mjs +1907 -0
  46. package/.output/server/_libs/d3-shape.mjs +818 -0
  47. package/.output/server/_libs/decimal.js-light.mjs +884 -0
  48. package/.output/server/_libs/es-toolkit.mjs +1134 -0
  49. package/.output/server/_libs/eventemitter3.mjs +236 -0
  50. package/.output/server/_libs/immer.mjs +532 -0
  51. package/.output/server/_libs/lucide-react.mjs +141 -13
  52. package/.output/server/_libs/next-themes.mjs +2 -2
  53. package/.output/server/_libs/react-redux+[...].mjs +205 -0
  54. package/.output/server/_libs/recharts+[...].mjs +14117 -0
  55. package/.output/server/_libs/sonner.mjs +2 -2
  56. package/.output/server/_libs/tanstack__query-core.mjs +114 -1
  57. package/.output/server/_libs/tanstack__react-query.mjs +3 -4
  58. package/.output/server/_runtime.mjs +10 -1
  59. package/.output/server/_ssr/AnalyticsCapabilityContext-ui4DX8GO.mjs +15 -0
  60. package/.output/server/_ssr/BundleActivityChart-BiB9ZORH.mjs +288 -0
  61. package/.output/server/_ssr/BundleIdDisplay-Czk6iR6p.mjs +13 -0
  62. package/.output/server/_ssr/alert-Dim3MGY5.mjs +86 -0
  63. package/.output/server/_ssr/analytics-DtMTn8fn.mjs +858 -0
  64. package/.output/server/_ssr/analytics-api-Cg1M5v_H.mjs +71 -0
  65. package/.output/server/_ssr/analytics-input-fRRRn0uA.mjs +96 -0
  66. package/.output/server/_ssr/analytics-rpc-DY5uXvHT.mjs +155 -0
  67. package/.output/server/_ssr/api-BTSv1tZb.mjs +282 -0
  68. package/.output/server/_ssr/api-keys-BnM_o2nS.mjs +300 -0
  69. package/.output/server/_ssr/api-keys-api-CIywsSF5.mjs +60 -0
  70. package/.output/server/_ssr/api-keys-rpc-BSp1wkIV.mjs +136 -0
  71. package/.output/server/_ssr/api-rpc-cG5wd_tO.mjs +1468 -0
  72. package/.output/server/_ssr/auth-BF8mbAgF.mjs +21 -0
  73. package/.output/server/_ssr/auth-rpc-BrJ6obHJ.mjs +24 -0
  74. package/.output/server/_ssr/auth.server-DwKoZoQM.mjs +50 -0
  75. package/.output/server/_ssr/badge-DCxbEeof.mjs +26 -0
  76. package/.output/server/_ssr/bundle-signing-rpc-COoQhW8E.mjs +16 -0
  77. package/.output/server/_ssr/bundle-signing.server-D5u8KkMp.mjs +51 -0
  78. package/.output/server/_ssr/config-Dv8qLDZ0.mjs +13 -0
  79. package/.output/server/_ssr/config.server-DEiLhKmy.mjs +361 -0
  80. package/.output/server/_ssr/{createServerFn-DzU0k62V.mjs → createServerFn-B2hcXoPM.mjs} +1 -1
  81. package/.output/server/_ssr/createServerRpc-DB29C_5p.mjs +12 -0
  82. package/.output/server/_ssr/{sidebar-Cv_H0_Jv.mjs → createSsrRpc-9P0S0lJ3.mjs} +68 -50
  83. package/.output/server/_ssr/databaseRows-CwbNwYSl.mjs +166 -0
  84. package/.output/server/_ssr/deleteBundle-Cu_XOMt0.mjs +66 -0
  85. package/.output/server/_ssr/dialog-CQuRMNZ4.mjs +170 -0
  86. package/.output/server/_ssr/dist-BVSLTpoP.mjs +250 -0
  87. package/.output/server/_ssr/downloadBundle-CNnYxYO2.mjs +24 -0
  88. package/.output/server/_ssr/{empty-plugin-adapters-B4HCzgmM.mjs → empty-plugin-adapters-B5QvGpEl.mjs} +1 -1
  89. package/.output/server/_ssr/field-DRIXKjZG.mjs +74 -0
  90. package/.output/server/_ssr/{getBundleChildren-CVtSiH5t.mjs → getBundleChildren-BcRMFoDF.mjs} +10 -18
  91. package/.output/server/_ssr/installations-B-azgAvX.mjs +19 -0
  92. package/.output/server/_ssr/installations-Ctvzp2JH.mjs +535 -0
  93. package/.output/server/_ssr/router-C-KUBfOi.mjs +513 -0
  94. package/.output/server/_ssr/routes-BM4ht9jb.mjs +2286 -0
  95. package/.output/server/_ssr/routes-Z7TwC6nC.mjs +37 -0
  96. package/.output/server/_ssr/runtime.server-awTLiiXW.mjs +527 -0
  97. package/.output/server/_ssr/server-BjzmvXnO.mjs +7468 -0
  98. package/.output/server/_ssr/signing-k8GxyBDF.mjs +202 -0
  99. package/.output/server/_ssr/ssr.mjs +4 -5740
  100. package/.output/server/_ssr/start-DpViQGnt.mjs +4 -0
  101. package/.output/server/_ssr/table-v1yCvYo7.mjs +53 -0
  102. package/.output/server/_ssr/textarea-DYHnskhb.mjs +14 -0
  103. package/.output/server/_ssr/uuidv7-BbJ-9D_I.mjs +31 -0
  104. package/.output/server/_tanstack-start-manifest_v-CH4StzJu.mjs +108 -0
  105. package/.output/server/index.mjs +256 -53
  106. package/README.md +29 -8
  107. package/lib/index.d.mts +36 -0
  108. package/lib/index.mjs +4 -0
  109. package/lib/vite-internal.mjs +127 -0
  110. package/lib/vite.d.mts +10 -0
  111. package/lib/vite.mjs +5 -0
  112. package/package.json +51 -29
  113. package/public/apple-touch-icon.png +0 -0
  114. package/public/favicon-16x16.png +0 -0
  115. package/public/favicon-32x32.png +0 -0
  116. package/public/favicon.ico +0 -0
  117. package/public/logo.svg +1 -0
  118. package/public/manifest.json +30 -0
  119. package/public/robots.txt +3 -0
  120. package/src/components/AppSidebar.tsx +159 -0
  121. package/src/components/BundleIdDisplay.tsx +18 -0
  122. package/src/components/ChannelBadge.tsx +31 -0
  123. package/src/components/ConsoleAccessPage.tsx +122 -0
  124. package/src/components/EnabledStatusIcon.tsx +54 -0
  125. package/src/components/HashValueDisplay.tsx +85 -0
  126. package/src/components/HotUpdaterLogo.tsx +30 -0
  127. package/src/components/NotFoundPage.tsx +33 -0
  128. package/src/components/PlatformIcon.tsx +39 -0
  129. package/src/components/RolloutPercentageBadge.tsx +28 -0
  130. package/src/components/ThemeProvider.tsx +116 -0
  131. package/src/components/TimestampDisplay.tsx +41 -0
  132. package/src/components/features/analytics/ActivityChart.tsx +150 -0
  133. package/src/components/features/analytics/AnalyticsCapabilityContext.tsx +24 -0
  134. package/src/components/features/analytics/AnalyticsControls.tsx +115 -0
  135. package/src/components/features/analytics/AnalyticsErrorAlert.tsx +21 -0
  136. package/src/components/features/analytics/AnalyticsOverview.tsx +208 -0
  137. package/src/components/features/analytics/BundleDistribution.tsx +133 -0
  138. package/src/components/features/analytics/BundleSelector.tsx +114 -0
  139. package/src/components/features/analytics/InstallationHistoryCard.tsx +248 -0
  140. package/src/components/features/analytics/InstallationMatchesCard.tsx +132 -0
  141. package/src/components/features/analytics/InstallationPageHeader.tsx +138 -0
  142. package/src/components/features/analytics/InstallationPagination.tsx +48 -0
  143. package/src/components/features/analytics/InstallationSearch.tsx +230 -0
  144. package/src/components/features/analytics/UpdateOutcomes.tsx +147 -0
  145. package/src/components/features/api-keys/ApiKeysPage.tsx +377 -0
  146. package/src/components/features/bundles/BundleActivityChart.tsx +193 -0
  147. package/src/components/features/bundles/BundleAnalyticsSummary.tsx +123 -0
  148. package/src/components/features/bundles/BundleChildrenPanel.tsx +201 -0
  149. package/src/components/features/bundles/BundleMetadata.tsx +136 -0
  150. package/src/components/features/bundles/RolloutCohortsDialog.tsx +201 -0
  151. package/src/components/features/channels/ChannelManagementDialog.tsx +228 -0
  152. package/src/components/features/releases/ReleaseEditorSheet.tsx +879 -0
  153. package/src/components/features/releases/ReleaseStateBadge.tsx +20 -0
  154. package/src/components/features/signing/BundleSigningPage.tsx +247 -0
  155. package/src/components/ui/alert-dialog.tsx +185 -0
  156. package/src/components/ui/alert.tsx +76 -0
  157. package/src/components/ui/badge.tsx +49 -0
  158. package/src/components/ui/button.tsx +58 -0
  159. package/src/components/ui/card.tsx +89 -0
  160. package/src/components/ui/chart.tsx +371 -0
  161. package/src/components/ui/combobox.tsx +303 -0
  162. package/src/components/ui/dialog.tsx +156 -0
  163. package/src/components/ui/dropdown-menu.tsx +270 -0
  164. package/src/components/ui/field.tsx +235 -0
  165. package/src/components/ui/input-group.tsx +147 -0
  166. package/src/components/ui/input.tsx +19 -0
  167. package/src/components/ui/label.tsx +25 -0
  168. package/src/components/ui/progress.tsx +84 -0
  169. package/src/components/ui/select.tsx +205 -0
  170. package/src/components/ui/separator.tsx +23 -0
  171. package/src/components/ui/sheet.tsx +132 -0
  172. package/src/components/ui/sidebar.tsx +779 -0
  173. package/src/components/ui/skeleton.tsx +13 -0
  174. package/src/components/ui/slider.tsx +56 -0
  175. package/src/components/ui/sonner.tsx +45 -0
  176. package/src/components/ui/switch.tsx +25 -0
  177. package/src/components/ui/table.tsx +114 -0
  178. package/src/components/ui/textarea.tsx +18 -0
  179. package/src/components/ui/toggle-group.tsx +89 -0
  180. package/src/components/ui/toggle.tsx +43 -0
  181. package/src/components/ui/tooltip.tsx +66 -0
  182. package/src/hooks/use-mobile.ts +30 -0
  183. package/src/index.ts +48 -0
  184. package/src/lib/analytics-api.ts +145 -0
  185. package/src/lib/analytics-error.ts +19 -0
  186. package/src/lib/analytics-input.ts +187 -0
  187. package/src/lib/analytics-overview.ts +170 -0
  188. package/src/lib/analytics-rpc.ts +218 -0
  189. package/src/lib/api-keys-api.ts +69 -0
  190. package/src/lib/api-keys-rpc.ts +87 -0
  191. package/src/lib/api-rpc.ts +478 -0
  192. package/src/lib/api.ts +444 -0
  193. package/src/lib/auth-rpc.ts +16 -0
  194. package/src/lib/bundle-signing-api.ts +14 -0
  195. package/src/lib/bundle-signing-rpc.ts +16 -0
  196. package/src/lib/constants.ts +1 -0
  197. package/src/lib/git.ts +51 -0
  198. package/src/lib/server/auth.server.ts +43 -0
  199. package/src/lib/server/bundle-signing.server.ts +100 -0
  200. package/src/lib/server/config.server.ts +109 -0
  201. package/src/lib/server/console-runtime.server.ts +70 -0
  202. package/src/lib/server/deleteBundle.ts +145 -0
  203. package/src/lib/server/downloadBundle.ts +46 -0
  204. package/src/lib/server/getBundleChildren.ts +130 -0
  205. package/src/lib/server/listReleases.ts +61 -0
  206. package/src/lib/server/releaseActivity.ts +27 -0
  207. package/src/lib/server/releaseReachability.ts +95 -0
  208. package/src/lib/server/runtime.server.ts +172 -0
  209. package/src/lib/utils.ts +9 -0
  210. package/src/logo.svg +1 -0
  211. package/src/routeTree.gen.ts +199 -0
  212. package/src/router.tsx +21 -0
  213. package/src/routes/-installations-search.ts +19 -0
  214. package/src/routes/-releases-search.ts +74 -0
  215. package/src/routes/__root.tsx +174 -0
  216. package/src/routes/analytics.tsx +139 -0
  217. package/src/routes/api/auth/$.ts +19 -0
  218. package/src/routes/api/bundles/$bundleId/download.ts +17 -0
  219. package/src/routes/api-keys.tsx +37 -0
  220. package/src/routes/index.tsx +982 -0
  221. package/src/routes/installations.tsx +194 -0
  222. package/src/routes/signing.tsx +37 -0
  223. package/src/styles.css +152 -0
  224. package/src/virtual-modules.d.ts +21 -0
  225. package/src/vite-env.d.ts +1 -0
  226. package/src/vite-internal.ts +195 -0
  227. package/src/vite.ts +12 -0
  228. package/.output/public/assets/dist-DJX53faP.js +0 -3
  229. package/.output/public/assets/index-Iylis5kY.js +0 -10
  230. package/.output/public/assets/routes-HT21hs0C.js +0 -54
  231. package/.output/public/assets/styles-C0Re4quB.css +0 -2
  232. package/.output/server/__23tanstack-start-server-fn-resolver-CgwgZ0-i.mjs +0 -66
  233. package/.output/server/_libs/@floating-ui/core+[...].mjs +0 -698
  234. package/.output/server/_libs/@floating-ui/dom+[...].mjs +0 -644
  235. package/.output/server/_libs/@floating-ui/react-dom+[...].mjs +0 -839
  236. package/.output/server/_libs/@radix-ui/react-alert-dialog+[...].mjs +0 -2138
  237. package/.output/server/_libs/@radix-ui/react-popper+[...].mjs +0 -308
  238. package/.output/server/_libs/@radix-ui/react-select+[...].mjs +0 -1038
  239. package/.output/server/_libs/@tanstack/devtools-event-client+[...].mjs +0 -196
  240. package/.output/server/_libs/@tanstack/form-core+[...].mjs +0 -3228
  241. package/.output/server/_libs/@tanstack/react-form+[...].mjs +0 -430
  242. package/.output/server/_libs/@tanstack/react-table+[...].mjs +0 -2382
  243. package/.output/server/_libs/radix-ui__number.mjs +0 -6
  244. package/.output/server/_libs/radix-ui__primitive.mjs +0 -9
  245. package/.output/server/_libs/radix-ui__react-arrow.mjs +0 -23
  246. package/.output/server/_libs/radix-ui__react-collection.mjs +0 -78
  247. package/.output/server/_libs/radix-ui__react-direction.mjs +0 -13
  248. package/.output/server/_libs/radix-ui__react-label.mjs +0 -22
  249. package/.output/server/_libs/radix-ui__react-separator.mjs +0 -30
  250. package/.output/server/_libs/radix-ui__react-slider.mjs +0 -510
  251. package/.output/server/_libs/radix-ui__react-switch.mjs +0 -157
  252. package/.output/server/_libs/radix-ui__react-tooltip.mjs +0 -493
  253. package/.output/server/_ssr/api-rpc-BIbDUKSz.mjs +0 -292
  254. package/.output/server/_ssr/config.server-BSS366KT.mjs +0 -41
  255. package/.output/server/_ssr/deleteBundle-BgbZTtpW.mjs +0 -141
  256. package/.output/server/_ssr/dist-KboydRVk.mjs +0 -120
  257. package/.output/server/_ssr/router-C3hqEy3k.mjs +0 -307
  258. package/.output/server/_ssr/routes-B0lQvvlC.mjs +0 -3048
  259. package/.output/server/_ssr/start-02sLteYG.mjs +0 -4
  260. package/.output/server/_ssr/storageProfile-FVkjPoGb.mjs +0 -9
  261. package/.output/server/_tanstack-start-manifest_v-Bpx52WOU.mjs +0 -20
  262. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  263. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  264. package/.output/server/node_modules/tslib/package.json +0 -47
  265. package/.output/server/node_modules/tslib/tslib.js +0 -484
  266. package/.output/server/package.json +0 -9
@@ -1,307 +0,0 @@
1
- import { r as __toESM } from "../_runtime.mjs";
2
- import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
3
- import { P as require_jsx_runtime } from "../_libs/@radix-ui/react-alert-dialog+[...].mjs";
4
- import { b as CircleCheck, c as Package, f as LoaderCircle, i as Sun, l as OctagonX, m as Info, n as TriangleAlert, u as Moon } from "../_libs/lucide-react.mjs";
5
- import { a as SidebarContent, b as TooltipProvider, c as SidebarGroupContent, d as SidebarInset, f as SidebarMenu, h as SidebarProvider, i as Sidebar, l as SidebarGroupLabel, m as SidebarMenuItem, o as SidebarFooter, p as SidebarMenuButton, s as SidebarGroup, t as Button, u as SidebarHeader } from "./sidebar-Cv_H0_Jv.mjs";
6
- import { a as useRouterState, c as Outlet, d as createRootRoute, f as Link, i as HeadContent, l as lazyRouteComponent, r as Scripts, s as createRouter, u as createFileRoute } from "../_libs/@tanstack/react-router+[...].mjs";
7
- import { t as QueryClient } from "../_libs/tanstack__query-core.mjs";
8
- import { r as QueryClientProvider } from "../_libs/tanstack__react-query.mjs";
9
- import { t as z } from "../_libs/next-themes.mjs";
10
- import { t as Toaster } from "../_libs/sonner.mjs";
11
- //#region node_modules/.nitro/vite/services/ssr/assets/router-C3hqEy3k.js
12
- var import_react = /* @__PURE__ */ __toESM(require_react());
13
- var import_jsx_runtime = require_jsx_runtime();
14
- function HotUpdaterLogo({ className }) {
15
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", {
16
- "aria-label": "Hot Updater",
17
- className,
18
- viewBox: "0 0 447 652",
19
- xmlns: "http://www.w3.org/2000/svg",
20
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("linearGradient", {
21
- id: "hot-updater-gradient",
22
- x1: "223.54",
23
- y1: "0.36",
24
- x2: "223.54",
25
- y2: "711.23",
26
- gradientUnits: "userSpaceOnUse",
27
- children: [
28
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", {
29
- offset: "0",
30
- stopColor: "#ff7f33"
31
- }),
32
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", {
33
- offset: "0.4",
34
- stopColor: "#f9602b"
35
- }),
36
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", {
37
- offset: "0.76",
38
- stopColor: "#f54c25"
39
- }),
40
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", {
41
- offset: "1",
42
- stopColor: "#f44523"
43
- })
44
- ]
45
- }) }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
46
- d: "M150.25,8.58c16.28,31.85,42.09,116-68.18,212.22C75.46,226.57,70,233,63.72,239.62c-28.48,30-84.71,114.89-55.82,207,.69,2.18,1.31,4.37,1.91,6.57,5.25,19.33,38.08,121,155.56,157.25a5.14,5.14,0,0,0,6-7.39c-14.72-26.53-46.07-96.89-8.89-162.55,0,0,11.5,44.5,50.5,83.5,6,6,14.72,15.64,19.53,21.23,14.47,16.77,32.24,53.55,1.82,98.18a5.63,5.63,0,0,0,6.85,8.34c75.64-32.1,333.29-164.6,128.68-410.85a7,7,0,0,0-12.46,4.15c-1.77,39.31-14.84,129-96.18,148.06a31.08,31.08,0,0,1-24.3-4.16c-13.34-8.9-25.41-32.06.53-92.3a250.9,250.9,0,0,1,20.12-37.29C282.78,220.56,356.18,79.83,157.33.77A5.64,5.64,0,0,0,150.25,8.58Z",
47
- fill: "url(#hot-updater-gradient)"
48
- })]
49
- });
50
- }
51
- var ThemeContext = (0, import_react.createContext)(void 0);
52
- var LIGHT_THEME_COLOR = "#fbfbfa";
53
- var DARK_THEME_COLOR = "#1f1d1c";
54
- var REFRESH_THEME_CHROME_EVENT = "hot-updater:refresh-theme-chrome";
55
- function ThemeProvider({ children, defaultTheme = "dark", storageKey = "hot-updater-theme" }) {
56
- const [theme, setTheme] = (0, import_react.useState)(defaultTheme);
57
- (0, import_react.useEffect)(() => {
58
- const stored = localStorage.getItem(storageKey);
59
- if (stored) setTheme(stored);
60
- }, [storageKey]);
61
- (0, import_react.useEffect)(() => {
62
- const root = window.document.documentElement;
63
- const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
64
- const themeColorMeta = window.document.querySelector("meta[name=\"theme-color\"]");
65
- const colorSchemeMeta = window.document.querySelector("meta[name=\"color-scheme\"]");
66
- const applyResolvedTheme = (resolvedTheme) => {
67
- root.classList.remove("light", "dark");
68
- root.classList.add(resolvedTheme);
69
- root.style.colorScheme = resolvedTheme;
70
- if (themeColorMeta) themeColorMeta.setAttribute("content", resolvedTheme === "dark" ? DARK_THEME_COLOR : LIGHT_THEME_COLOR);
71
- if (colorSchemeMeta) colorSchemeMeta.setAttribute("content", resolvedTheme === "dark" ? "dark light" : "light dark");
72
- };
73
- const syncTheme = () => {
74
- applyResolvedTheme(theme === "system" ? mediaQuery.matches ? "dark" : "light" : theme);
75
- };
76
- syncTheme();
77
- const refreshThemeChrome = () => {
78
- window.requestAnimationFrame(syncTheme);
79
- };
80
- window.addEventListener(REFRESH_THEME_CHROME_EVENT, refreshThemeChrome);
81
- window.addEventListener("pageshow", refreshThemeChrome);
82
- document.addEventListener("visibilitychange", refreshThemeChrome);
83
- if (theme === "system") mediaQuery.addEventListener("change", syncTheme);
84
- return () => {
85
- if (theme === "system") mediaQuery.removeEventListener("change", syncTheme);
86
- window.removeEventListener(REFRESH_THEME_CHROME_EVENT, refreshThemeChrome);
87
- window.removeEventListener("pageshow", refreshThemeChrome);
88
- document.removeEventListener("visibilitychange", refreshThemeChrome);
89
- };
90
- }, [theme]);
91
- const value = {
92
- theme,
93
- setTheme: (newTheme) => {
94
- localStorage.setItem(storageKey, newTheme);
95
- setTheme(newTheme);
96
- }
97
- };
98
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeContext.Provider, {
99
- value,
100
- children
101
- });
102
- }
103
- function useTheme$1() {
104
- const context = (0, import_react.useContext)(ThemeContext);
105
- if (context === void 0) throw new Error("useTheme must be used within a ThemeProvider");
106
- return context;
107
- }
108
- function AppSidebar() {
109
- const { theme, setTheme } = useTheme$1();
110
- const isBundlesActive = useRouterState().location.pathname === "/";
111
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Sidebar, {
112
- collapsible: "icon",
113
- children: [
114
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarHeader, {
115
- className: "h-12 justify-center",
116
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Link, {
117
- to: "/",
118
- search: {
119
- channel: void 0,
120
- platform: void 0,
121
- targetAppVersion: void 0,
122
- page: void 0,
123
- after: void 0,
124
- before: void 0,
125
- bundleId: void 0,
126
- expandedBundleId: void 0
127
- },
128
- className: "flex items-center gap-3 p-1 group-data-[collapsible=icon]:justify-center group-data-[collapsible=icon]:p-2",
129
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(HotUpdaterLogo, { className: "h-7 w-7 shrink-0" }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
130
- className: "flex flex-col gap-0 group-data-[collapsible=icon]:hidden",
131
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
132
- className: "text-sm font-semibold tracking-tight text-sidebar-foreground leading-tight",
133
- children: "Hot Updater"
134
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
135
- className: "text-[10px] text-sidebar-foreground/60 leading-tight",
136
- children: "Console"
137
- })]
138
- })]
139
- })
140
- }),
141
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SidebarGroup, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarGroupLabel, { children: "Navigation" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarGroupContent, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarMenuButton, {
142
- asChild: true,
143
- isActive: isBundlesActive,
144
- tooltip: "Bundles",
145
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Link, {
146
- to: "/",
147
- search: {
148
- channel: void 0,
149
- platform: void 0,
150
- targetAppVersion: void 0,
151
- page: void 0,
152
- after: void 0,
153
- before: void 0,
154
- bundleId: void 0,
155
- expandedBundleId: void 0
156
- },
157
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Package, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Bundles" })]
158
- })
159
- }) }) }) })] }) }),
160
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SidebarMenuButton, {
161
- onClick: () => setTheme(theme === "dark" ? "light" : "dark"),
162
- tooltip: theme === "dark" ? "Light mode" : "Dark mode",
163
- children: [theme === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Sun, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Moon, { className: "h-4 w-4" }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: theme === "dark" ? "Light mode" : "Dark mode" })]
164
- }) }) }) })
165
- ]
166
- });
167
- }
168
- var homeSearch = {
169
- channel: void 0,
170
- platform: void 0,
171
- targetAppVersion: void 0,
172
- page: void 0,
173
- after: void 0,
174
- before: void 0,
175
- bundleId: void 0,
176
- expandedBundleId: void 0
177
- };
178
- function NotFoundPage() {
179
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
180
- className: "flex min-h-svh flex-1 items-center justify-center px-6 py-10",
181
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
182
- className: "flex max-w-md flex-col items-center text-center",
183
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
184
- className: "text-2xl font-semibold tracking-tight text-foreground",
185
- children: "Page not found"
186
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
187
- asChild: true,
188
- size: "lg",
189
- className: "mt-6",
190
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Link, {
191
- to: "/",
192
- search: homeSearch,
193
- children: "Go to home"
194
- })
195
- })]
196
- })
197
- });
198
- }
199
- var Toaster$1 = ({ ...props }) => {
200
- const { theme = "system" } = z();
201
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Toaster, {
202
- theme,
203
- className: "toaster group",
204
- icons: {
205
- success: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CircleCheck, { className: "size-4" }),
206
- info: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Info, { className: "size-4" }),
207
- warning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TriangleAlert, { className: "size-4" }),
208
- error: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(OctagonX, { className: "size-4" }),
209
- loading: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoaderCircle, { className: "size-4 animate-spin" })
210
- },
211
- style: {
212
- "--normal-bg": "var(--popover)",
213
- "--normal-text": "var(--popover-foreground)",
214
- "--normal-border": "var(--border)",
215
- "--border-radius": "var(--radius)"
216
- },
217
- toastOptions: { classNames: { toast: "cn-toast" } },
218
- ...props
219
- });
220
- };
221
- var styles_default = "/assets/styles-C0Re4quB.css";
222
- var Route$1 = createRootRoute({
223
- head: () => ({
224
- meta: [
225
- { charSet: "utf-8" },
226
- {
227
- name: "viewport",
228
- content: "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"
229
- },
230
- {
231
- name: "theme-color",
232
- content: "#1f1d1c"
233
- },
234
- {
235
- name: "color-scheme",
236
- content: "dark light"
237
- },
238
- { title: "Hot Updater Console" }
239
- ],
240
- links: [{
241
- rel: "stylesheet",
242
- href: styles_default
243
- }]
244
- }),
245
- component: RootLayout,
246
- notFoundComponent: NotFoundPage,
247
- shellComponent: RootDocument
248
- });
249
- function RootDocument({ children }) {
250
- const [queryClient] = (0, import_react.useState)(() => new QueryClient());
251
- const [isLocalDebugHost, setIsLocalDebugHost] = (0, import_react.useState)(false);
252
- (0, import_react.useEffect)(() => {}, []);
253
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("html", {
254
- lang: "en",
255
- suppressHydrationWarning: true,
256
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("head", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HeadContent, {}) }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("body", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeProvider, {
257
- defaultTheme: "dark",
258
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QueryClientProvider, {
259
- client: queryClient,
260
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TooltipProvider, { children: [
261
- children,
262
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Toaster$1, {}),
263
- null
264
- ] })
265
- })
266
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Scripts, {})] })]
267
- });
268
- }
269
- function RootLayout() {
270
- (0, import_react.useEffect)(() => {}, []);
271
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SidebarProvider, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AppSidebar, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarInset, {
272
- className: "min-h-0 min-w-0",
273
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Outlet, {})
274
- })] });
275
- }
276
- var $$splitComponentImporter = () => import("./routes-B0lQvvlC.mjs");
277
- var rootRouteChildren = { IndexRoute: createFileRoute("/")({
278
- component: lazyRouteComponent($$splitComponentImporter, "component"),
279
- validateSearch: (search) => {
280
- const parsedPage = typeof search.page === "number" ? search.page : typeof search.page === "string" ? Number(search.page) : void 0;
281
- return {
282
- channel: search.channel,
283
- platform: search.platform,
284
- targetAppVersion: search.targetAppVersion,
285
- page: parsedPage !== void 0 && Number.isInteger(parsedPage) && parsedPage > 1 ? parsedPage : void 0,
286
- after: search.after,
287
- before: search.before,
288
- bundleId: search.bundleId,
289
- expandedBundleId: search.expandedBundleId
290
- };
291
- }
292
- }).update({
293
- id: "/",
294
- path: "/",
295
- getParentRoute: () => Route$1
296
- }) };
297
- var routeTree = Route$1._addFileChildren(rootRouteChildren)._addFileTypes();
298
- var getRouter = () => {
299
- return createRouter({
300
- routeTree,
301
- context: {},
302
- scrollRestoration: true,
303
- defaultPreloadStaleTime: 0
304
- });
305
- };
306
- //#endregion
307
- export { getRouter };