@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,12 +1,11 @@
1
- import { r as __toESM } from "../_runtime.mjs";
2
- import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
3
- import { A as Slot, P as require_jsx_runtime } from "../_libs/@radix-ui/react-alert-dialog+[...].mjs";
4
- import { s as PanelLeft } from "../_libs/lucide-react.mjs";
1
+ import { i as __toESM } from "../_runtime.mjs";
2
+ import { G as TooltipProvider$1, J as TooltipPositioner, K as TooltipArrow, X as TooltipTrigger$1, Y as TooltipPortal, Z as TooltipRoot, at as require_react, et as Separator, it as require_jsx_runtime, nt as useRender, q as TooltipPopup, rt as mergeProps, tt as Button } from "../_libs/@base-ui/react+[...].mjs";
3
+ import { i as TSS_SERVER_FUNCTION } from "./createServerFn-B2hcXoPM.mjs";
4
+ import { t as getServerFnById } from "../__23tanstack-start-server-fn-resolver-DBP9TQ7K.mjs";
5
+ import { p as PanelLeft } from "../_libs/lucide-react.mjs";
5
6
  import { n as clsx, t as cva } from "../_libs/class-variance-authority+clsx.mjs";
6
- import { t as Root } from "../_libs/radix-ui__react-separator.mjs";
7
- import { a as Root3, i as Provider, n as Content2, o as Trigger, r as Portal, t as Arrow2 } from "../_libs/radix-ui__react-tooltip.mjs";
8
7
  import { t as twMerge } from "../_libs/tailwind-merge.mjs";
9
- //#region node_modules/.nitro/vite/services/ssr/assets/sidebar-Cv_H0_Jv.js
8
+ //#region node_modules/.nitro/vite/services/ssr/assets/createSsrRpc-9P0S0lJ3.js
10
9
  var import_react = /* @__PURE__ */ __toESM(require_react());
11
10
  var import_jsx_runtime = require_jsx_runtime();
12
11
  function cn(...inputs) {
@@ -18,8 +17,8 @@ var buttonVariants = cva("focus-visible:border-ring focus-visible:ring-ring/30 a
18
17
  default: "bg-primary text-primary-foreground hover:bg-primary/80",
19
18
  outline: "border-border dark:bg-input/30 hover:bg-input/50 hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground",
20
19
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
21
- ghost: "hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
22
- destructive: "bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30",
20
+ ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
21
+ destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
23
22
  link: "text-primary underline-offset-4 hover:underline"
24
23
  },
25
24
  size: {
@@ -38,11 +37,11 @@ var buttonVariants = cva("focus-visible:border-ring focus-visible:ring-ring/30 a
38
37
  size: "default"
39
38
  }
40
39
  });
41
- function Button({ className, variant = "default", size = "default", asChild = false, ...props }) {
42
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(asChild ? Slot : "button", {
40
+ function Button$1({ className, variant = "default", size = "default", ...props }) {
41
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
43
42
  "data-slot": "button",
44
- "data-variant": variant,
45
43
  "data-size": size,
44
+ "data-variant": variant,
46
45
  className: cn(buttonVariants({
47
46
  variant,
48
47
  size,
@@ -59,12 +58,11 @@ function Input({ className, type, ...props }) {
59
58
  ...props
60
59
  });
61
60
  }
62
- function Separator$1({ className, orientation = "horizontal", decorative = true, ...props }) {
63
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root, {
61
+ function Separator$1({ className, orientation = "horizontal", ...props }) {
62
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Separator, {
64
63
  "data-slot": "separator",
65
- decorative,
66
64
  orientation,
67
- className: cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch", className),
65
+ className: cn("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch", className),
68
66
  ...props
69
67
  });
70
68
  }
@@ -75,32 +73,38 @@ function Skeleton({ className, ...props }) {
75
73
  ...props
76
74
  });
77
75
  }
78
- function TooltipProvider({ delayDuration = 0, ...props }) {
79
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Provider, {
76
+ function TooltipProvider({ delay = 0, ...props }) {
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProvider$1, {
80
78
  "data-slot": "tooltip-provider",
81
- delayDuration,
79
+ delay,
82
80
  ...props
83
81
  });
84
82
  }
85
83
  function Tooltip$1({ ...props }) {
86
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root3, {
84
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipRoot, {
87
85
  "data-slot": "tooltip",
88
86
  ...props
89
- }) });
87
+ });
90
88
  }
91
89
  function TooltipTrigger({ ...props }) {
92
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Trigger, {
90
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipTrigger$1, {
93
91
  "data-slot": "tooltip-trigger",
94
92
  ...props
95
93
  });
96
94
  }
97
- function TooltipContent({ className, sideOffset = 0, children, ...props }) {
98
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Content2, {
99
- "data-slot": "tooltip-content",
95
+ function TooltipContent({ className, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
96
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipPositioner, {
97
+ align,
98
+ alignOffset,
99
+ side,
100
100
  sideOffset,
101
- className: cn("data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-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 rounded-md px-3 py-1.5 text-xs **:data-[slot=kbd]:rounded-md bg-foreground text-background z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin)", className),
102
- ...props,
103
- children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Arrow2, { className: "size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground z-50 translate-y-[calc(-50%_-_2px)]" })]
101
+ className: "isolate z-50",
102
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TooltipPopup, {
103
+ "data-slot": "tooltip-content",
104
+ className: cn("z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 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-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 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),
105
+ ...props,
106
+ children: [children, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipArrow, { className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })]
107
+ })
104
108
  }) });
105
109
  }
106
110
  var MOBILE_BREAKPOINT = 768;
@@ -284,7 +288,7 @@ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offExample
284
288
  }
285
289
  function SidebarTrigger({ className, onClick, ...props }) {
286
290
  const { toggleSidebar } = useSidebar();
287
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button, {
291
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Button$1, {
288
292
  "data-sidebar": "trigger",
289
293
  "data-slot": "sidebar-trigger",
290
294
  variant: "ghost",
@@ -340,12 +344,15 @@ function SidebarGroup({ className, ...props }) {
340
344
  ...props
341
345
  });
342
346
  }
343
- function SidebarGroupLabel({ className, asChild = false, ...props }) {
344
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(asChild ? Slot : "div", {
345
- "data-slot": "sidebar-group-label",
346
- "data-sidebar": "group-label",
347
- className: cn("text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0", className),
348
- ...props
347
+ function SidebarGroupLabel({ className, render, ...props }) {
348
+ return useRender({
349
+ defaultTagName: "div",
350
+ props: mergeProps({ className: cn("text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0", className) }, props),
351
+ render,
352
+ state: {
353
+ sidebar: "group-label",
354
+ slot: "sidebar-group-label"
355
+ }
349
356
  });
350
357
  }
351
358
  function SidebarGroupContent({ className, ...props }) {
@@ -389,31 +396,42 @@ var sidebarMenuButtonVariants = cva("ring-sidebar-ring hover:bg-sidebar-accent h
389
396
  size: "default"
390
397
  }
391
398
  });
392
- function SidebarMenuButton({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
393
- const Comp = asChild ? Slot : "button";
399
+ function SidebarMenuButton({ render, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
394
400
  const { isMobile, state } = useSidebar();
395
- const button = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, {
396
- "data-slot": "sidebar-menu-button",
397
- "data-sidebar": "menu-button",
398
- "data-size": size,
399
- "data-active": isActive,
400
- className: cn(sidebarMenuButtonVariants({
401
+ const button = useRender({
402
+ defaultTagName: "button",
403
+ props: mergeProps({ className: cn(sidebarMenuButtonVariants({
401
404
  variant,
402
405
  size
403
- }), className),
404
- ...props
406
+ }), className) }, props),
407
+ render: !tooltip ? render : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipTrigger, { render }),
408
+ state: {
409
+ active: isActive,
410
+ sidebar: "menu-button",
411
+ size,
412
+ slot: "sidebar-menu-button"
413
+ }
405
414
  });
406
415
  if (!tooltip) return button;
407
416
  if (typeof tooltip === "string") tooltip = { children: tooltip };
408
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Tooltip$1, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipTrigger, {
409
- asChild: true,
410
- children: button
411
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContent, {
417
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Tooltip$1, { children: [button, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContent, {
412
418
  side: "right",
413
419
  align: "center",
414
420
  hidden: state !== "collapsed" || isMobile,
415
421
  ...tooltip
416
422
  })] });
417
423
  }
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
+ };
418
436
  //#endregion
419
- export { useIsMobile as C, cn as S, 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 as t, SidebarHeader as u, Tooltip$1 as v, TooltipTrigger as x, TooltipContent as y };
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 };
@@ -0,0 +1,166 @@
1
+ import { T as stripBundleArtifactMetadata, c as getAssetBaseStorageUri, d as getManifestStorageUri, l as getBundlePatches, u as getManifestFileHash } from "./dist-BVSLTpoP.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/databaseRows-CwbNwYSl.js
3
+ var DatabasePluginInputError = class extends Error {
4
+ name = "DatabasePluginInputError";
5
+ constructor(code) {
6
+ super(`Invalid database plugin input: ${code}`);
7
+ this.code = code;
8
+ }
9
+ };
10
+ var isDatabaseJsonValue = (value) => {
11
+ const ancestors = /* @__PURE__ */ new WeakSet();
12
+ const validate = (input) => {
13
+ if (input === null || typeof input === "string" || typeof input === "boolean") return true;
14
+ if (typeof input === "number") return Number.isFinite(input);
15
+ if (typeof input !== "object") return false;
16
+ if (ancestors.has(input)) return false;
17
+ ancestors.add(input);
18
+ try {
19
+ if (Array.isArray(input)) {
20
+ if (Object.getPrototypeOf(input) !== Array.prototype) return false;
21
+ if (Reflect.ownKeys(input).length !== input.length + 1) return false;
22
+ for (let index = 0; index < input.length; index += 1) {
23
+ const descriptor = Object.getOwnPropertyDescriptor(input, String(index));
24
+ if (descriptor === void 0 || !descriptor.enumerable || !("value" in descriptor) || !validate(descriptor.value)) return false;
25
+ }
26
+ return true;
27
+ }
28
+ const prototype = Object.getPrototypeOf(input);
29
+ if (prototype !== Object.prototype && prototype !== null) return false;
30
+ for (const key of Reflect.ownKeys(input)) {
31
+ if (typeof key !== "string" || key === "__proto__") return false;
32
+ const descriptor = Object.getOwnPropertyDescriptor(input, key);
33
+ if (descriptor === void 0 || !descriptor.enumerable || !("value" in descriptor) || !validate(descriptor.value)) return false;
34
+ }
35
+ return true;
36
+ } finally {
37
+ ancestors.delete(input);
38
+ }
39
+ };
40
+ return validate(value);
41
+ };
42
+ var isDatabaseJsonObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && isDatabaseJsonValue(value);
43
+ var isDatabaseMetadataObject = (value) => isDatabaseJsonObject(value) && (!Object.hasOwn(value, "app_version") || typeof value["app_version"] === "string");
44
+ var bundleMetadataToRow = (metadata) => {
45
+ const value = stripBundleArtifactMetadata(metadata);
46
+ if (value === void 0) return {};
47
+ if (!isDatabaseMetadataObject(value)) throw new DatabasePluginInputError("invalid-data");
48
+ return value;
49
+ };
50
+ var releaseRowToRelease = (row) => ({
51
+ id: row.id,
52
+ revision: row.revision,
53
+ channelId: row.channel_id,
54
+ platform: row.platform,
55
+ kind: row.kind,
56
+ bundleId: row.bundle_id,
57
+ strategy: row.strategy,
58
+ targetAppVersion: row.target_app_version,
59
+ fingerprintHash: row.fingerprint_hash,
60
+ enabled: row.enabled,
61
+ shouldForceUpdate: row.should_force_update,
62
+ message: row.message,
63
+ rolloutCohortCount: row.rollout_cohort_count,
64
+ targetCohorts: row.target_cohorts,
65
+ operation: row.operation,
66
+ sourceReleaseId: row.source_release_id,
67
+ createdAtMs: row.created_at_ms,
68
+ updatedAtMs: row.updated_at_ms
69
+ });
70
+ var BundleRowHydrationErrorReason = {
71
+ duplicatePatchId: "duplicate_patch_id",
72
+ orphanPatchOwner: "orphan_patch_owner",
73
+ orphanPatchBase: "orphan_patch_base"
74
+ };
75
+ var BundleRowHydrationError = class extends Error {
76
+ name = "BundleRowHydrationError";
77
+ reason;
78
+ patchId;
79
+ bundleId;
80
+ constructor({ reason, patchId, bundleId }) {
81
+ super(`Cannot hydrate bundle rows: ${reason} for patch "${patchId}" and bundle "${bundleId}".`);
82
+ this.reason = reason;
83
+ this.patchId = patchId;
84
+ this.bundleId = bundleId;
85
+ }
86
+ };
87
+ var bundleToRow = (bundle) => {
88
+ const metadata = bundleMetadataToRow(bundle.metadata);
89
+ return {
90
+ id: bundle.id,
91
+ platform: bundle.platform,
92
+ file_hash: bundle.fileHash,
93
+ git_commit_hash: bundle.gitCommitHash,
94
+ storage_uri: bundle.storageUri,
95
+ archive_byte_size: bundle.archiveByteSize,
96
+ metadata,
97
+ manifest_storage_uri: getManifestStorageUri(bundle),
98
+ manifest_file_hash: getManifestFileHash(bundle),
99
+ asset_base_storage_uri: getAssetBaseStorageUri(bundle)
100
+ };
101
+ };
102
+ var bundleToPatchRows = (bundle) => getBundlePatches(bundle).map((patch, orderIndex) => ({
103
+ id: `${bundle.id}:${patch.baseBundleId}`,
104
+ bundle_id: bundle.id,
105
+ base_bundle_id: patch.baseBundleId,
106
+ base_file_hash: patch.baseFileHash,
107
+ patch_file_hash: patch.patchFileHash,
108
+ patch_storage_uri: patch.patchStorageUri,
109
+ byte_size: patch.byteSize,
110
+ order_index: orderIndex
111
+ }));
112
+ var comparePatchRows = (left, right) => left.order_index - right.order_index || left.id.localeCompare(right.id);
113
+ var patchRowToArtifact = (row) => ({
114
+ baseBundleId: row.base_bundle_id,
115
+ baseFileHash: row.base_file_hash,
116
+ byteSize: row.byte_size,
117
+ patchFileHash: row.patch_file_hash,
118
+ patchStorageUri: row.patch_storage_uri
119
+ });
120
+ var rowToBundle = (row, patchRows = []) => {
121
+ const patches = patchRows.slice().sort(comparePatchRows).map(patchRowToArtifact);
122
+ return {
123
+ id: row.id,
124
+ platform: row.platform,
125
+ fileHash: row.file_hash,
126
+ gitCommitHash: row.git_commit_hash,
127
+ storageUri: row.storage_uri,
128
+ archiveByteSize: row.archive_byte_size,
129
+ metadata: stripBundleArtifactMetadata(row.metadata),
130
+ manifestStorageUri: row.manifest_storage_uri,
131
+ manifestFileHash: row.manifest_file_hash,
132
+ assetBaseStorageUri: row.asset_base_storage_uri,
133
+ patches
134
+ };
135
+ };
136
+ var rowsToBundles = (bundleRows, patchRows, referencedBundleRows) => {
137
+ const ownerIds = new Set(bundleRows.map(({ id }) => id));
138
+ const baseIds = new Set(ownerIds);
139
+ for (const row of referencedBundleRows) baseIds.add(row.id);
140
+ const patchIds = /* @__PURE__ */ new Set();
141
+ const patchesByOwner = /* @__PURE__ */ new Map();
142
+ for (const patch of patchRows) {
143
+ if (patchIds.has(patch.id)) throw new BundleRowHydrationError({
144
+ reason: BundleRowHydrationErrorReason.duplicatePatchId,
145
+ patchId: patch.id,
146
+ bundleId: patch.bundle_id
147
+ });
148
+ patchIds.add(patch.id);
149
+ if (!ownerIds.has(patch.bundle_id)) throw new BundleRowHydrationError({
150
+ reason: BundleRowHydrationErrorReason.orphanPatchOwner,
151
+ patchId: patch.id,
152
+ bundleId: patch.bundle_id
153
+ });
154
+ if (!baseIds.has(patch.base_bundle_id)) throw new BundleRowHydrationError({
155
+ reason: BundleRowHydrationErrorReason.orphanPatchBase,
156
+ patchId: patch.id,
157
+ bundleId: patch.base_bundle_id
158
+ });
159
+ const ownerPatches = patchesByOwner.get(patch.bundle_id) ?? [];
160
+ ownerPatches.push(patch);
161
+ patchesByOwner.set(patch.bundle_id, ownerPatches);
162
+ }
163
+ return bundleRows.map((row) => rowToBundle(row, patchesByOwner.get(row.id) ?? []));
164
+ };
165
+ //#endregion
166
+ export { releaseRowToRelease as a, bundleToRow as i, bundleMetadataToRow as n, rowsToBundles as o, bundleToPatchRows as r, DatabasePluginInputError as t };
@@ -0,0 +1,66 @@
1
+ import { _ as getPatchStorageUri, d as getManifestStorageUri, l as getBundlePatches } from "./dist-BVSLTpoP.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/deleteBundle-Cu_XOMt0.js
3
+ function resolveStorageUriForDeletion(storageUri, storagePlugin) {
4
+ const protocol = new URL(storageUri).protocol.replace(":", "");
5
+ if (storagePlugin.protocol === protocol) return storageUri;
6
+ if (protocol === "http" || protocol === "https") return null;
7
+ throw new Error(`No storage plugin for protocol: ${protocol}`);
8
+ }
9
+ async function cleanupBundleStorage(bundle, storagePlugin) {
10
+ const cleanupUris = /* @__PURE__ */ new Set();
11
+ const addCleanupUri = (storageUri) => {
12
+ if (!storageUri) return;
13
+ const resolvedStorageUri = resolveStorageUriForDeletion(storageUri, storagePlugin);
14
+ if (resolvedStorageUri) cleanupUris.add(resolvedStorageUri);
15
+ };
16
+ addCleanupUri(bundle.storageUri);
17
+ addCleanupUri(getManifestStorageUri(bundle) ?? void 0);
18
+ addCleanupUri(getPatchStorageUri(bundle) ?? void 0);
19
+ for (const patch of getBundlePatches(bundle)) addCleanupUri(patch.patchStorageUri);
20
+ for (const storageUri of cleanupUris) try {
21
+ await storagePlugin.delete({ storageUri });
22
+ } catch (error) {
23
+ console.error("Failed to delete bundle from storage:", error);
24
+ }
25
+ }
26
+ async function deleteBundles({ bundleIds }, { databaseClient, storagePlugin, waitForStorageCleanup = true }) {
27
+ const uniqueBundleIds = [...new Set(bundleIds)];
28
+ const { data: matchedBundles } = await databaseClient.getBundles({
29
+ where: { id: { in: uniqueBundleIds } },
30
+ limit: uniqueBundleIds.length
31
+ });
32
+ const matchedById = new Map(matchedBundles.map((bundle) => [bundle.id, bundle]));
33
+ const bundles = uniqueBundleIds.flatMap((bundleId) => {
34
+ const bundle = matchedById.get(bundleId);
35
+ return bundle ? [bundle] : [];
36
+ });
37
+ const missingBundleIds = uniqueBundleIds.filter((bundleId) => !matchedById.has(bundleId));
38
+ for (const bundle of bundles) {
39
+ const cleanupCandidates = [
40
+ bundle.storageUri,
41
+ getManifestStorageUri(bundle),
42
+ getPatchStorageUri(bundle),
43
+ ...getBundlePatches(bundle).map((patch) => patch.patchStorageUri)
44
+ ].filter((value) => Boolean(value));
45
+ for (const candidate of cleanupCandidates) resolveStorageUriForDeletion(candidate, storagePlugin);
46
+ }
47
+ if (bundles.length > 0) await databaseClient.mutate(async (mutation) => {
48
+ for (const bundle of bundles) await mutation.deleteBundleById(bundle.id);
49
+ });
50
+ const cleanupStorage = async () => {
51
+ for (const bundle of bundles) await cleanupBundleStorage(bundle, storagePlugin);
52
+ };
53
+ if (waitForStorageCleanup) await cleanupStorage();
54
+ else cleanupStorage().catch((error) => {
55
+ console.error("Failed to clean up bundle storage:", error);
56
+ });
57
+ return {
58
+ deletedBundleIds: bundles.map((bundle) => bundle.id),
59
+ missingBundleIds
60
+ };
61
+ }
62
+ async function deleteBundle({ bundleId }, dependencies) {
63
+ if ((await deleteBundles({ bundleIds: [bundleId] }, dependencies)).missingBundleIds.length > 0) throw new Error(`Bundle not found: ${bundleId}`);
64
+ }
65
+ //#endregion
66
+ export { deleteBundle, deleteBundles };
@@ -0,0 +1,170 @@
1
+ import "../_runtime.mjs";
2
+ import { B as DialogClose, F as DialogTrigger$1, H as AlertDialogRoot, I as DialogTitle$1, L as DialogPortal$1, P as AlertDialogTrigger$1, R as DialogPopup, S as DialogRoot, V as DialogBackdrop, at as require_react, it as require_jsx_runtime, z as DialogDescription$1 } from "../_libs/@base-ui/react+[...].mjs";
3
+ import { t as X } from "../_libs/lucide-react.mjs";
4
+ import { C as cn, t as Button$1 } from "./createSsrRpc-9P0S0lJ3.mjs";
5
+ require_react();
6
+ var import_jsx_runtime = require_jsx_runtime();
7
+ function AlertDialog$1({ ...props }) {
8
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogRoot, {
9
+ "data-slot": "alert-dialog",
10
+ ...props
11
+ });
12
+ }
13
+ function AlertDialogTrigger({ ...props }) {
14
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogTrigger$1, {
15
+ "data-slot": "alert-dialog-trigger",
16
+ ...props
17
+ });
18
+ }
19
+ function AlertDialogPortal({ ...props }) {
20
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortal$1, {
21
+ "data-slot": "alert-dialog-portal",
22
+ ...props
23
+ });
24
+ }
25
+ function AlertDialogOverlay({ className, ...props }) {
26
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogBackdrop, {
27
+ "data-slot": "alert-dialog-overlay",
28
+ className: cn("fixed inset-0 isolate z-50 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
29
+ ...props
30
+ });
31
+ }
32
+ function AlertDialogContent({ className, size = "default", ...props }) {
33
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogPortal, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogOverlay, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPopup, {
34
+ "data-slot": "alert-dialog-content",
35
+ "data-size": size,
36
+ className: cn("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-3 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-64 data-[size=default]:sm:max-w-sm 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),
37
+ ...props
38
+ })] });
39
+ }
40
+ function AlertDialogHeader({ className, ...props }) {
41
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
42
+ "data-slot": "alert-dialog-header",
43
+ className: cn("grid grid-rows-[auto_1fr] place-items-center gap-1 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className),
44
+ ...props
45
+ });
46
+ }
47
+ function AlertDialogFooter({ className, ...props }) {
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
49
+ "data-slot": "alert-dialog-footer",
50
+ className: cn("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className),
51
+ ...props
52
+ });
53
+ }
54
+ function AlertDialogMedia({ className, ...props }) {
55
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
56
+ "data-slot": "alert-dialog-media",
57
+ className: cn("mb-2 inline-flex size-8 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-4", className),
58
+ ...props
59
+ });
60
+ }
61
+ function AlertDialogTitle({ className, ...props }) {
62
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogTitle$1, {
63
+ "data-slot": "alert-dialog-title",
64
+ className: cn("text-sm font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className),
65
+ ...props
66
+ });
67
+ }
68
+ function AlertDialogDescription({ className, ...props }) {
69
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogDescription$1, {
70
+ "data-slot": "alert-dialog-description",
71
+ className: cn("text-xs/relaxed text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
72
+ ...props
73
+ });
74
+ }
75
+ function AlertDialogAction({ className, ...props }) {
76
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button$1, {
77
+ "data-slot": "alert-dialog-action",
78
+ className: cn(className),
79
+ ...props
80
+ });
81
+ }
82
+ function AlertDialogCancel({ className, variant = "outline", size = "default", ...props }) {
83
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogClose, {
84
+ "data-slot": "alert-dialog-cancel",
85
+ className: cn(className),
86
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button$1, {
87
+ variant,
88
+ size
89
+ }),
90
+ ...props
91
+ });
92
+ }
93
+ function Dialog$1({ ...props }) {
94
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogRoot, {
95
+ "data-slot": "dialog",
96
+ ...props
97
+ });
98
+ }
99
+ function DialogTrigger({ ...props }) {
100
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogTrigger$1, {
101
+ "data-slot": "dialog-trigger",
102
+ ...props
103
+ });
104
+ }
105
+ function DialogPortal({ ...props }) {
106
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPortal$1, {
107
+ "data-slot": "dialog-portal",
108
+ ...props
109
+ });
110
+ }
111
+ function DialogOverlay({ className, ...props }) {
112
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogBackdrop, {
113
+ "data-slot": "dialog-overlay",
114
+ className: cn("fixed inset-0 isolate z-50 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
115
+ ...props
116
+ });
117
+ }
118
+ function DialogContent({ className, children, showCloseButton = true, ...props }) {
119
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DialogPortal, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogOverlay, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DialogPopup, {
120
+ "data-slot": "dialog-content",
121
+ className: cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-background p-4 text-xs/relaxed ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm 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),
122
+ ...props,
123
+ children: [children, showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(DialogClose, {
124
+ "data-slot": "dialog-close",
125
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button$1, {
126
+ variant: "ghost",
127
+ className: "absolute top-2 right-2",
128
+ size: "icon-sm"
129
+ }),
130
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(X, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
131
+ className: "sr-only",
132
+ children: "Close"
133
+ })]
134
+ })]
135
+ })] });
136
+ }
137
+ function DialogHeader({ className, ...props }) {
138
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
139
+ "data-slot": "dialog-header",
140
+ className: cn("flex flex-col gap-1", className),
141
+ ...props
142
+ });
143
+ }
144
+ function DialogFooter({ className, showCloseButton = false, children, ...props }) {
145
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
146
+ "data-slot": "dialog-footer",
147
+ className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
148
+ ...props,
149
+ children: [children, showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogClose, {
150
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button$1, { variant: "outline" }),
151
+ children: "Close"
152
+ })]
153
+ });
154
+ }
155
+ function DialogTitle({ className, ...props }) {
156
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogTitle$1, {
157
+ "data-slot": "dialog-title",
158
+ className: cn("text-sm font-medium", className),
159
+ ...props
160
+ });
161
+ }
162
+ function DialogDescription({ className, ...props }) {
163
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogDescription$1, {
164
+ "data-slot": "dialog-description",
165
+ className: cn("text-xs/relaxed text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
166
+ ...props
167
+ });
168
+ }
169
+ //#endregion
170
+ export { DialogTrigger as _, AlertDialogDescription as a, AlertDialogMedia as c, Dialog$1 as d, DialogContent as f, DialogTitle as g, DialogHeader as h, AlertDialogContent as i, AlertDialogTitle as l, DialogFooter as m, AlertDialogAction as n, AlertDialogFooter as o, DialogDescription as p, AlertDialogCancel as r, AlertDialogHeader as s, AlertDialog$1 as t, AlertDialogTrigger as u };