@lunora/studio 1.0.0-alpha.30 → 1.0.0-alpha.32

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 (185) hide show
  1. package/dist/index.d.ts +3 -3
  2. package/dist/index.js +10 -10
  3. package/dist/mount.d.ts +1 -1
  4. package/dist/mount.js +3 -2
  5. package/dist/packem_chunks/ApiTab.js +3 -3
  6. package/dist/packem_chunks/AuditPanel.js +7 -7
  7. package/dist/packem_chunks/ExportImportPanel.js +5 -4
  8. package/dist/packem_chunks/FileBrowser.js +2 -2
  9. package/dist/packem_chunks/FunctionRunner.js +1 -1
  10. package/dist/packem_chunks/FunctionStatsPanel.js +72 -70
  11. package/dist/packem_chunks/HealthPanel.js +3 -3
  12. package/dist/packem_chunks/InsightsPanel.js +4 -3
  13. package/dist/packem_chunks/LogsPanel.js +6 -6
  14. package/dist/packem_chunks/MailPanel.js +8 -7
  15. package/dist/packem_chunks/MetricsPanel.js +3 -3
  16. package/dist/packem_chunks/MigrationsPanel.js +7 -7
  17. package/dist/packem_chunks/PitrPanel.js +1 -1
  18. package/dist/packem_chunks/SchemaViewer.js +3 -2
  19. package/dist/packem_chunks/SecurityAdvisorPanel.js +11 -8
  20. package/dist/packem_chunks/SettingsPanel.js +50 -49
  21. package/dist/packem_chunks/SqlEditorPanel.js +5 -4
  22. package/dist/packem_chunks/TableEditor.js +3 -3
  23. package/dist/packem_chunks/analytics-panel.js +1 -1
  24. package/dist/packem_chunks/auth-config-panel.js +1 -1
  25. package/dist/packem_chunks/auth-sessions-panel.js +2 -2
  26. package/dist/packem_chunks/containers-panel.js +247 -0
  27. package/dist/packem_chunks/dashboards-panel.js +3 -2
  28. package/dist/packem_chunks/fanout-panel.js +31 -30
  29. package/dist/packem_chunks/flags-panel.js +6 -6
  30. package/dist/packem_chunks/kv-browser.js +2 -2
  31. package/dist/packem_chunks/log-drains-panel.js +1 -1
  32. package/dist/packem_chunks/organizations-panel.js +3 -3
  33. package/dist/packem_chunks/payments-panel.js +6 -5
  34. package/dist/packem_chunks/permissions-panel.js +12 -11
  35. package/dist/packem_chunks/queues-panel.js +32 -31
  36. package/dist/packem_chunks/rls-panel.js +86 -84
  37. package/dist/packem_chunks/schedule-panel.js +3 -3
  38. package/dist/packem_chunks/sparkline.js +1 -1
  39. package/dist/packem_chunks/storage-rules-panel.js +27 -25
  40. package/dist/packem_chunks/subscriptions-panel.js +33 -31
  41. package/dist/packem_chunks/users-panel.js +3 -3
  42. package/dist/packem_chunks/vector-browser.js +1 -1
  43. package/dist/packem_chunks/workflows-panel.js +2 -2
  44. package/dist/packem_shared/{ApiDocsPanel-B6u_wnz-.js → ApiDocsPanel-Cu6mD4u7.js} +1 -1
  45. package/dist/packem_shared/{ApiReferencePanel-Drz4UO0a.js → ApiReferencePanel-Co_wpRF2.js} +1 -1
  46. package/dist/packem_shared/{CommandPalette-B5BertvU.js → CommandPalette-BUPpbpMc.js} +1 -1
  47. package/dist/packem_shared/{DataBrowser-ANTHLWWh.js → DataBrowser-DSNK1tPg.js} +5 -5
  48. package/dist/packem_shared/{GlobalDataBrowser-CjgTG_wa.js → GlobalDataBrowser-ErfvIs1S.js} +3 -3
  49. package/dist/packem_shared/{HomePanel-c2FodE9t.js → HomePanel-DQk3P8xX.js} +3 -3
  50. package/dist/packem_shared/{OpenRpcReferencePanel-CspFdbUT.js → OpenRpcReferencePanel-DLWzrIx9.js} +1 -1
  51. package/dist/packem_shared/{ScheduledJobs-BEJXtsBn.js → ScheduledJobs-ClaNpZsg.js} +2 -2
  52. package/dist/packem_shared/{Studio-CVTtA_sB.js → Studio-CFTYGEUt.js} +4 -4
  53. package/dist/packem_shared/{StudioApp-BSYV2fz6.js → StudioApp-Cy9vUwVl.js} +1 -1
  54. package/dist/packem_shared/{advisor-view-DzqyvUU3.js → advisor-view-D3-U4kRR.js} +5 -5
  55. package/dist/packem_shared/alert-CdAET2K_.js +68 -0
  56. package/dist/packem_shared/{app.d-B6MyY_al.d.ts → app.d-CNLRTrWw.d.ts} +1 -1
  57. package/dist/packem_shared/{bar-chart-Bb__F5-u.js → bar-chart-DSwcWIRy.js} +4 -3
  58. package/dist/packem_shared/{browser-storage-d03UsV7v.js → browser-storage-tLOxkIHd.js} +3 -67
  59. package/dist/packem_shared/{data-grid-Dsg6nRjo.js → data-grid-Jz8FqQ2C.js} +1 -1
  60. package/dist/packem_shared/error-alert-BBT6D22d.js +114 -0
  61. package/dist/packem_shared/{grid-features-D7nNzBYm.js → grid-features-CUr8Z1_O.js} +1 -1
  62. package/dist/packem_shared/{home-panel-aOR_drVv.js → home-panel-Bo-Mgrkn.js} +4 -2
  63. package/dist/packem_shared/{internal-FcNZ3beb.js → internal-DTsYVn-g.js} +30 -1
  64. package/dist/packem_shared/{reference-view-Doy1XlQq.js → reference-view-CSKyUyPl.js} +3 -2
  65. package/dist/packem_shared/{sparkline-KgMPHS4u.js → sparkline-BnA1kC9X.js} +1 -1
  66. package/dist/packem_shared/{studio-dMTJ-kRR.js → studio-Dg2e-dsR.js} +587 -560
  67. package/dist/packem_shared/{table-list-sidebar-VMo0ftxD.js → table-list-sidebar-B5psdSV1.js} +1 -1
  68. package/dist/packem_shared/{use-admin-query-BViPA3US.js → use-admin-query-BHPKmPuj.js} +2 -1
  69. package/dist/packem_shared/{use-auth-capabilities-BHkoBnbZ.js → use-auth-capabilities-C-VH0oJJ.js} +1 -1
  70. package/dist/standalone/{chunk-N4JI6VQD.js → chunk-25VHPD2I.js} +1 -1
  71. package/dist/standalone/chunk-2GGMGPEP.js +1 -0
  72. package/dist/standalone/{chunk-BHTPZS7L.js → chunk-3CJW6NWG.js} +1 -1
  73. package/dist/standalone/chunk-4H2OJBXO.js +1 -0
  74. package/dist/standalone/chunk-4MLAVZP4.js +1 -0
  75. package/dist/standalone/chunk-55YA7ZZI.js +76 -0
  76. package/dist/standalone/chunk-5OH3VPZF.js +1 -0
  77. package/dist/standalone/chunk-6GFEVKJP.js +1 -0
  78. package/dist/standalone/{chunk-ITLLHEVG.js → chunk-764T6X6X.js} +1 -1
  79. package/dist/standalone/chunk-7M3F6U4L.js +1 -0
  80. package/dist/standalone/{chunk-KGS7KM4A.js → chunk-7VF3IAAW.js} +1 -1
  81. package/dist/standalone/chunk-AJIUI7DD.js +1 -0
  82. package/dist/standalone/{chunk-5NSZVXCS.js → chunk-BACPICH6.js} +1 -1
  83. package/dist/standalone/chunk-BET2625I.js +1 -0
  84. package/dist/standalone/chunk-BQUQS7QN.js +1 -0
  85. package/dist/standalone/chunk-CKSHCYGC.js +2 -0
  86. package/dist/standalone/chunk-DCECRP45.js +1 -0
  87. package/dist/standalone/chunk-DFP2DADO.js +1 -0
  88. package/dist/standalone/chunk-DORBUITF.js +1 -0
  89. package/dist/standalone/chunk-DVKPRFIJ.js +1 -0
  90. package/dist/standalone/chunk-E6WUCLSI.js +1 -0
  91. package/dist/standalone/chunk-E7WLF6IU.js +1 -0
  92. package/dist/standalone/chunk-EVPLBWUT.js +8 -0
  93. package/dist/standalone/chunk-FCSPAJW4.js +1 -0
  94. package/dist/standalone/chunk-G2ICR3DL.js +1 -0
  95. package/dist/standalone/{chunk-2DS7JLWL.js → chunk-GJ6PGSES.js} +5 -5
  96. package/dist/standalone/chunk-GMSGZDDH.js +13 -0
  97. package/dist/standalone/chunk-GVRM4U6W.js +2 -0
  98. package/dist/standalone/chunk-GZDWDDXN.js +1 -0
  99. package/dist/standalone/chunk-ISJAJWYI.js +1 -0
  100. package/dist/standalone/{chunk-G2TFEWEQ.js → chunk-JIDZFLTB.js} +1 -1
  101. package/dist/standalone/{chunk-RMYA7NAH.js → chunk-K3GNLVYK.js} +1 -1
  102. package/dist/standalone/chunk-K4ZDRTQM.js +1 -0
  103. package/dist/standalone/{chunk-ASLGNHAX.js → chunk-LI43EKM6.js} +1 -1
  104. package/dist/standalone/chunk-MFPTVCJ6.js +1 -0
  105. package/dist/standalone/chunk-MPYFGAOW.js +1 -0
  106. package/dist/standalone/{chunk-TICVNLPM.js → chunk-O3NAGRTR.js} +1 -1
  107. package/dist/standalone/chunk-OV2WFAJX.js +1 -0
  108. package/dist/standalone/chunk-PA3LN4XJ.js +1 -0
  109. package/dist/standalone/chunk-PD6WPVYU.js +1 -0
  110. package/dist/standalone/{chunk-7PBZKXYA.js → chunk-PN5NCZDX.js} +1 -1
  111. package/dist/standalone/{chunk-YJGANMU7.js → chunk-PVZI3CXP.js} +10 -9
  112. package/dist/standalone/chunk-PZ7HD5T2.js +1 -0
  113. package/dist/standalone/{chunk-UGMRUEBU.js → chunk-QAFAJBAW.js} +1 -1
  114. package/dist/standalone/{chunk-6VTGE3WJ.js → chunk-QBAT52GB.js} +1 -1
  115. package/dist/standalone/chunk-QHIIRFG7.js +1 -0
  116. package/dist/standalone/chunk-RSEEHNFI.js +1 -0
  117. package/dist/standalone/chunk-SFJ5F4DX.js +1 -0
  118. package/dist/standalone/{chunk-3BP4BTLR.js → chunk-SGDQIWAR.js} +3 -3
  119. package/dist/standalone/chunk-SYEIXTEU.js +1 -0
  120. package/dist/standalone/chunk-T5HRXUSY.js +1 -0
  121. package/dist/standalone/{chunk-OD2POGPJ.js → chunk-TDL7NEWA.js} +1 -1
  122. package/dist/standalone/chunk-TM7CMA7X.js +1 -0
  123. package/dist/standalone/chunk-U4OAQPBT.js +1 -0
  124. package/dist/standalone/chunk-UDSVXA42.js +1 -0
  125. package/dist/standalone/chunk-UK64ZSUW.js +1 -0
  126. package/dist/standalone/chunk-VEZO7G5Q.js +3 -0
  127. package/dist/standalone/chunk-VSHUSN6T.js +1 -0
  128. package/dist/standalone/chunk-VYMCCC6O.js +1 -0
  129. package/dist/standalone/{chunk-7RYIQKZA.js → chunk-WXPWVBIY.js} +1 -1
  130. package/dist/standalone/chunk-X72PYOEW.js +1 -0
  131. package/dist/standalone/chunk-X7MMBSNW.js +1 -0
  132. package/dist/standalone/{chunk-6RC6L33K.js → chunk-XIGIWZLO.js} +3 -3
  133. package/dist/standalone/chunk-XNJNSCLM.js +1 -0
  134. package/dist/standalone/{chunk-NNISYDNI.js → chunk-XUGSA2NG.js} +1 -1
  135. package/dist/standalone/{chunk-VXBZQIGY.js → chunk-Y2ZPNDL7.js} +1 -1
  136. package/dist/standalone/chunk-YM6BBZDN.js +1 -0
  137. package/dist/standalone/chunk-ZHVTQ37P.js +1 -0
  138. package/dist/standalone/chunk-ZPP2KOR4.js +1 -0
  139. package/dist/standalone/studio.js +30 -30
  140. package/dist/styles.css +1 -1
  141. package/package.json +6 -5
  142. package/dist/standalone/chunk-2PDQ4KZ6.js +0 -1
  143. package/dist/standalone/chunk-57LYXHXH.js +0 -1
  144. package/dist/standalone/chunk-63XKJQTQ.js +0 -1
  145. package/dist/standalone/chunk-7POIIWC5.js +0 -3
  146. package/dist/standalone/chunk-AB6QGMBF.js +0 -1
  147. package/dist/standalone/chunk-D7HKX4DI.js +0 -1
  148. package/dist/standalone/chunk-DGWTR4G7.js +0 -1
  149. package/dist/standalone/chunk-DSX53PBM.js +0 -1
  150. package/dist/standalone/chunk-DV2MNASX.js +0 -1
  151. package/dist/standalone/chunk-E7AVZZKO.js +0 -1
  152. package/dist/standalone/chunk-EGJX34WM.js +0 -1
  153. package/dist/standalone/chunk-FCR3HKFV.js +0 -1
  154. package/dist/standalone/chunk-FQKNJSRA.js +0 -76
  155. package/dist/standalone/chunk-GABMIICA.js +0 -1
  156. package/dist/standalone/chunk-GZXPPJVK.js +0 -1
  157. package/dist/standalone/chunk-HFBRE65A.js +0 -1
  158. package/dist/standalone/chunk-HFMQNUBC.js +0 -1
  159. package/dist/standalone/chunk-HG7Q5B3H.js +0 -1
  160. package/dist/standalone/chunk-HTQL7AXU.js +0 -1
  161. package/dist/standalone/chunk-KG3QTFWE.js +0 -1
  162. package/dist/standalone/chunk-KODWGUAB.js +0 -1
  163. package/dist/standalone/chunk-MGFEVTRI.js +0 -1
  164. package/dist/standalone/chunk-N2QDG3MW.js +0 -1
  165. package/dist/standalone/chunk-O4PXDNR3.js +0 -1
  166. package/dist/standalone/chunk-OXCK3ZUG.js +0 -1
  167. package/dist/standalone/chunk-P7DSVO4U.js +0 -1
  168. package/dist/standalone/chunk-PKAM3N5C.js +0 -1
  169. package/dist/standalone/chunk-QGXGBHQO.js +0 -1
  170. package/dist/standalone/chunk-QHA3TAEJ.js +0 -1
  171. package/dist/standalone/chunk-QQWC62X7.js +0 -1
  172. package/dist/standalone/chunk-S53RUBW5.js +0 -1
  173. package/dist/standalone/chunk-SB4GT6PK.js +0 -1
  174. package/dist/standalone/chunk-SHIOUDOT.js +0 -1
  175. package/dist/standalone/chunk-SIDRSX7Y.js +0 -1
  176. package/dist/standalone/chunk-VJPQUBN6.js +0 -8
  177. package/dist/standalone/chunk-VMJKJWG6.js +0 -1
  178. package/dist/standalone/chunk-VPDPN5RR.js +0 -2
  179. package/dist/standalone/chunk-VSEGZA3J.js +0 -1
  180. package/dist/standalone/chunk-W7PCVQTE.js +0 -1
  181. package/dist/standalone/chunk-XLILSHPE.js +0 -1
  182. package/dist/standalone/chunk-XURNGQSS.js +0 -1
  183. package/dist/standalone/chunk-YQQJ4N6U.js +0 -1
  184. package/dist/standalone/chunk-ZH7UES4T.js +0 -2
  185. package/dist/standalone/chunk-ZQCVDXDL.js +0 -1
@@ -8,6 +8,7 @@ import { jsxDEV, Fragment } from 'react/jsx-dev-runtime';
8
8
  import { ErrorBoundary } from './ErrorBoundary-BzAApI7J.js';
9
9
  import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
10
10
  import { motion } from 'motion/react';
11
+ import { LunoraError } from '@lunora/errors';
11
12
  import { B as Badge } from './badge-B2PKA1-5.js';
12
13
  import { I as Input } from './input-XH4r1Pt1.js';
13
14
  import { Popover as Popover$1 } from '@base-ui/react/popover';
@@ -20,11 +21,11 @@ import { B as Button } from './button-BhsN2uZH.js';
20
21
  import { Dialog } from '@base-ui/react/dialog';
21
22
  import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
22
23
  import { S as Skeleton } from './skeleton-CGhL0p20.js';
23
- import { u as useStudioFeatures, H as HomePanel } from './home-panel-aOR_drVv.js';
24
+ import { u as useStudioFeatures, H as HomePanel } from './home-panel-Bo-Mgrkn.js';
24
25
  import { StudioI18nProvider } from './StudioI18nProvider-B-tDCZIi.js';
25
26
  import { v as validateDataViewSearch } from './data-view-params-Cd6yRVbv.js';
26
- import { f as fireAndForget } from './internal-FcNZ3beb.js';
27
- import { CommandPalette, openCommandPalette } from './CommandPalette-B5BertvU.js';
27
+ import { f as fireAndForget } from './internal-DTsYVn-g.js';
28
+ import { CommandPalette, openCommandPalette } from './CommandPalette-BUPpbpMc.js';
28
29
 
29
30
  const DARK_MEDIA_QUERY = "(prefers-color-scheme: dark)";
30
31
  const store = () => {
@@ -118,7 +119,7 @@ const ThemeProvider = ({
118
119
  const useTheme = () => {
119
120
  const context = use(ThemeContext);
120
121
  if (context === null) {
121
- throw new Error("useTheme must be used within a <ThemeProvider>");
122
+ throw new LunoraError("INTERNAL", "useTheme must be used within a <ThemeProvider>");
122
123
  }
123
124
  return context;
124
125
  };
@@ -946,7 +947,7 @@ const SidebarContext = /* @__PURE__ */ React.createContext(null);
946
947
  function useSidebar() {
947
948
  const context = React.useContext(SidebarContext);
948
949
  if (!context) {
949
- throw new Error("useSidebar must be used within a SidebarProvider.");
950
+ throw new LunoraError("INTERNAL", "useSidebar must be used within a SidebarProvider.");
950
951
  }
951
952
  return context;
952
953
  }
@@ -1628,6 +1629,7 @@ const AuthConfigPanel = lazyNamed(() => import('../packem_chunks/auth-config-pan
1628
1629
  const AuthSessionsPanel = lazyNamed(() => import('../packem_chunks/auth-sessions-panel.js'), "AuthSessionsPanel");
1629
1630
  const OrganizationsPanel = lazyNamed(() => import('../packem_chunks/organizations-panel.js'), "OrganizationsPanel");
1630
1631
  const UsersPanel = lazyNamed(() => import('../packem_chunks/users-panel.js'), "UsersPanel");
1632
+ const ContainersPanel = lazyNamed(() => import('../packem_chunks/containers-panel.js'), "ContainersPanel");
1631
1633
  const TableEditor = lazyNamed(() => import('../packem_chunks/TableEditor.js'), "TableEditor");
1632
1634
  const ExportImportPanel = lazyNamed(() => import('../packem_chunks/ExportImportPanel.js'), "ExportImportPanel");
1633
1635
  const MigrationsPanel = lazyNamed(() => import('../packem_chunks/MigrationsPanel.js'), "MigrationsPanel");
@@ -1677,6 +1679,9 @@ const TAB_ICONS = {
1677
1679
  authSessions: /* @__PURE__ */ jsxDEV("path", {
1678
1680
  d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm0-13.5V12l4 2"
1679
1681
  }, void 0, false),
1682
+ containers: /* @__PURE__ */ jsxDEV("path", {
1683
+ d: "M3 7.5 12 3l9 4.5v9L12 21l-9-4.5v-9Zm0 0 9 4.5m0 0 9-4.5m-9 4.5V21"
1684
+ }, void 0, false),
1680
1685
  dashboards: /* @__PURE__ */ jsxDEV("path", {
1681
1686
  d: "M4 5h7v6H4V5Zm9 0h7v4h-7V5ZM4 14h7v5H4v-5Zm9-1h7v6h-7v-6Z"
1682
1687
  }, void 0, false),
@@ -1782,7 +1787,7 @@ const NAV_GROUPS = [{
1782
1787
  tabs: ["data", "sql", "schema", "migrations", "vectors", "pitr", "export"]
1783
1788
  }, {
1784
1789
  key: "functions",
1785
- tabs: ["functions", "api", "workflows", "queues"]
1790
+ tabs: ["functions", "api", "workflows", "queues", "containers"]
1786
1791
  }, {
1787
1792
  key: "auth",
1788
1793
  tabs: ["users", "organizations", "authSessions", "authConfig"]
@@ -1806,6 +1811,7 @@ const TAB_FEATURE = {
1806
1811
  analytics: "analytics",
1807
1812
  authConfig: "auth",
1808
1813
  authSessions: "auth",
1814
+ containers: "containers",
1809
1815
  files: "storage",
1810
1816
  flags: "flags",
1811
1817
  kv: "kv",
@@ -1849,7 +1855,7 @@ const TabIcon = (t0) => {
1849
1855
  }
1850
1856
  return t2;
1851
1857
  };
1852
- const TABS = ["home", "data", "sql", "functions", "api", "workflows", "queues", "schema", "migrations", "vectors", "export", "pitr", "users", "organizations", "authSessions", "authConfig", "files", "storageRules", "kv", "dashboards", "metrics", "analytics", "health", "security", "rls", "permissions", "insights", "logs", "realtime", "mail", "payments", "audit", "schedule", "drains", "flags", "settings"];
1858
+ const TABS = ["home", "data", "sql", "functions", "api", "workflows", "queues", "containers", "schema", "migrations", "vectors", "export", "pitr", "users", "organizations", "authSessions", "authConfig", "files", "storageRules", "kv", "dashboards", "metrics", "analytics", "health", "security", "rls", "permissions", "insights", "logs", "realtime", "mail", "payments", "audit", "schedule", "drains", "flags", "settings"];
1853
1859
  const FULL_HEIGHT_TABS = /* @__PURE__ */ new Set(["api", "data", "sql"]);
1854
1860
  const tabFromPathname = (pathname) => {
1855
1861
  const slug = pathname.split("/").findLast(Boolean) ?? "";
@@ -2480,7 +2486,7 @@ const RoutePending = () => {
2480
2486
  return t0;
2481
2487
  };
2482
2488
  const StudioLayout = () => {
2483
- const $ = c(288);
2489
+ const $ = c(294);
2484
2490
  const t = useT();
2485
2491
  const navigate = useNavigate();
2486
2492
  let t0;
@@ -2583,7 +2589,7 @@ const StudioLayout = () => {
2583
2589
  }
2584
2590
  let t10;
2585
2591
  if ($[21] !== t) {
2586
- t10 = t("Dashboards");
2592
+ t10 = t("Containers");
2587
2593
  $[21] = t;
2588
2594
  $[22] = t10;
2589
2595
  } else {
@@ -2591,7 +2597,7 @@ const StudioLayout = () => {
2591
2597
  }
2592
2598
  let t11;
2593
2599
  if ($[23] !== t) {
2594
- t11 = t("Data");
2600
+ t11 = t("Dashboards");
2595
2601
  $[23] = t;
2596
2602
  $[24] = t11;
2597
2603
  } else {
@@ -2599,7 +2605,7 @@ const StudioLayout = () => {
2599
2605
  }
2600
2606
  let t12;
2601
2607
  if ($[25] !== t) {
2602
- t12 = t("Log drains");
2608
+ t12 = t("Data");
2603
2609
  $[25] = t;
2604
2610
  $[26] = t12;
2605
2611
  } else {
@@ -2607,7 +2613,7 @@ const StudioLayout = () => {
2607
2613
  }
2608
2614
  let t13;
2609
2615
  if ($[27] !== t) {
2610
- t13 = t("Export / Import");
2616
+ t13 = t("Log drains");
2611
2617
  $[27] = t;
2612
2618
  $[28] = t13;
2613
2619
  } else {
@@ -2615,7 +2621,7 @@ const StudioLayout = () => {
2615
2621
  }
2616
2622
  let t14;
2617
2623
  if ($[29] !== t) {
2618
- t14 = t("Fan-out");
2624
+ t14 = t("Export / Import");
2619
2625
  $[29] = t;
2620
2626
  $[30] = t14;
2621
2627
  } else {
@@ -2623,7 +2629,7 @@ const StudioLayout = () => {
2623
2629
  }
2624
2630
  let t15;
2625
2631
  if ($[31] !== t) {
2626
- t15 = t("Files");
2632
+ t15 = t("Fan-out");
2627
2633
  $[31] = t;
2628
2634
  $[32] = t15;
2629
2635
  } else {
@@ -2631,7 +2637,7 @@ const StudioLayout = () => {
2631
2637
  }
2632
2638
  let t16;
2633
2639
  if ($[33] !== t) {
2634
- t16 = t("Flags");
2640
+ t16 = t("Files");
2635
2641
  $[33] = t;
2636
2642
  $[34] = t16;
2637
2643
  } else {
@@ -2639,7 +2645,7 @@ const StudioLayout = () => {
2639
2645
  }
2640
2646
  let t17;
2641
2647
  if ($[35] !== t) {
2642
- t17 = t("Functions");
2648
+ t17 = t("Flags");
2643
2649
  $[35] = t;
2644
2650
  $[36] = t17;
2645
2651
  } else {
@@ -2647,7 +2653,7 @@ const StudioLayout = () => {
2647
2653
  }
2648
2654
  let t18;
2649
2655
  if ($[37] !== t) {
2650
- t18 = t("Health");
2656
+ t18 = t("Functions");
2651
2657
  $[37] = t;
2652
2658
  $[38] = t18;
2653
2659
  } else {
@@ -2655,7 +2661,7 @@ const StudioLayout = () => {
2655
2661
  }
2656
2662
  let t19;
2657
2663
  if ($[39] !== t) {
2658
- t19 = t("Home");
2664
+ t19 = t("Health");
2659
2665
  $[39] = t;
2660
2666
  $[40] = t19;
2661
2667
  } else {
@@ -2663,7 +2669,7 @@ const StudioLayout = () => {
2663
2669
  }
2664
2670
  let t20;
2665
2671
  if ($[41] !== t) {
2666
- t20 = t("Performance");
2672
+ t20 = t("Home");
2667
2673
  $[41] = t;
2668
2674
  $[42] = t20;
2669
2675
  } else {
@@ -2671,7 +2677,7 @@ const StudioLayout = () => {
2671
2677
  }
2672
2678
  let t21;
2673
2679
  if ($[43] !== t) {
2674
- t21 = t("KV");
2680
+ t21 = t("Performance");
2675
2681
  $[43] = t;
2676
2682
  $[44] = t21;
2677
2683
  } else {
@@ -2679,7 +2685,7 @@ const StudioLayout = () => {
2679
2685
  }
2680
2686
  let t22;
2681
2687
  if ($[45] !== t) {
2682
- t22 = t("Logs");
2688
+ t22 = t("KV");
2683
2689
  $[45] = t;
2684
2690
  $[46] = t22;
2685
2691
  } else {
@@ -2687,7 +2693,7 @@ const StudioLayout = () => {
2687
2693
  }
2688
2694
  let t23;
2689
2695
  if ($[47] !== t) {
2690
- t23 = t("Metrics");
2696
+ t23 = t("Logs");
2691
2697
  $[47] = t;
2692
2698
  $[48] = t23;
2693
2699
  } else {
@@ -2695,7 +2701,7 @@ const StudioLayout = () => {
2695
2701
  }
2696
2702
  let t24;
2697
2703
  if ($[49] !== t) {
2698
- t24 = t("Migrations");
2704
+ t24 = t("Metrics");
2699
2705
  $[49] = t;
2700
2706
  $[50] = t24;
2701
2707
  } else {
@@ -2703,7 +2709,7 @@ const StudioLayout = () => {
2703
2709
  }
2704
2710
  let t25;
2705
2711
  if ($[51] !== t) {
2706
- t25 = t("Organizations");
2712
+ t25 = t("Migrations");
2707
2713
  $[51] = t;
2708
2714
  $[52] = t25;
2709
2715
  } else {
@@ -2711,7 +2717,7 @@ const StudioLayout = () => {
2711
2717
  }
2712
2718
  let t26;
2713
2719
  if ($[53] !== t) {
2714
- t26 = t("Time Travel");
2720
+ t26 = t("Organizations");
2715
2721
  $[53] = t;
2716
2722
  $[54] = t26;
2717
2723
  } else {
@@ -2719,7 +2725,7 @@ const StudioLayout = () => {
2719
2725
  }
2720
2726
  let t27;
2721
2727
  if ($[55] !== t) {
2722
- t27 = t("Mail");
2728
+ t27 = t("Time Travel");
2723
2729
  $[55] = t;
2724
2730
  $[56] = t27;
2725
2731
  } else {
@@ -2727,7 +2733,7 @@ const StudioLayout = () => {
2727
2733
  }
2728
2734
  let t28;
2729
2735
  if ($[57] !== t) {
2730
- t28 = t("Payments");
2736
+ t28 = t("Mail");
2731
2737
  $[57] = t;
2732
2738
  $[58] = t28;
2733
2739
  } else {
@@ -2735,7 +2741,7 @@ const StudioLayout = () => {
2735
2741
  }
2736
2742
  let t29;
2737
2743
  if ($[59] !== t) {
2738
- t29 = t("Permissions");
2744
+ t29 = t("Payments");
2739
2745
  $[59] = t;
2740
2746
  $[60] = t29;
2741
2747
  } else {
@@ -2743,7 +2749,7 @@ const StudioLayout = () => {
2743
2749
  }
2744
2750
  let t30;
2745
2751
  if ($[61] !== t) {
2746
- t30 = t("Queues");
2752
+ t30 = t("Permissions");
2747
2753
  $[61] = t;
2748
2754
  $[62] = t30;
2749
2755
  } else {
@@ -2751,7 +2757,7 @@ const StudioLayout = () => {
2751
2757
  }
2752
2758
  let t31;
2753
2759
  if ($[63] !== t) {
2754
- t31 = t("Realtime");
2760
+ t31 = t("Queues");
2755
2761
  $[63] = t;
2756
2762
  $[64] = t31;
2757
2763
  } else {
@@ -2759,7 +2765,7 @@ const StudioLayout = () => {
2759
2765
  }
2760
2766
  let t32;
2761
2767
  if ($[65] !== t) {
2762
- t32 = t("RLS Policies");
2768
+ t32 = t("Realtime");
2763
2769
  $[65] = t;
2764
2770
  $[66] = t32;
2765
2771
  } else {
@@ -2767,7 +2773,7 @@ const StudioLayout = () => {
2767
2773
  }
2768
2774
  let t33;
2769
2775
  if ($[67] !== t) {
2770
- t33 = t("Scheduled");
2776
+ t33 = t("RLS Policies");
2771
2777
  $[67] = t;
2772
2778
  $[68] = t33;
2773
2779
  } else {
@@ -2775,7 +2781,7 @@ const StudioLayout = () => {
2775
2781
  }
2776
2782
  let t34;
2777
2783
  if ($[69] !== t) {
2778
- t34 = t("Schema");
2784
+ t34 = t("Scheduled");
2779
2785
  $[69] = t;
2780
2786
  $[70] = t34;
2781
2787
  } else {
@@ -2783,7 +2789,7 @@ const StudioLayout = () => {
2783
2789
  }
2784
2790
  let t35;
2785
2791
  if ($[71] !== t) {
2786
- t35 = t("Security");
2792
+ t35 = t("Schema");
2787
2793
  $[71] = t;
2788
2794
  $[72] = t35;
2789
2795
  } else {
@@ -2791,7 +2797,7 @@ const StudioLayout = () => {
2791
2797
  }
2792
2798
  let t36;
2793
2799
  if ($[73] !== t) {
2794
- t36 = t("Settings");
2800
+ t36 = t("Security");
2795
2801
  $[73] = t;
2796
2802
  $[74] = t36;
2797
2803
  } else {
@@ -2799,7 +2805,7 @@ const StudioLayout = () => {
2799
2805
  }
2800
2806
  let t37;
2801
2807
  if ($[75] !== t) {
2802
- t37 = t("SQL editor");
2808
+ t37 = t("Settings");
2803
2809
  $[75] = t;
2804
2810
  $[76] = t37;
2805
2811
  } else {
@@ -2807,7 +2813,7 @@ const StudioLayout = () => {
2807
2813
  }
2808
2814
  let t38;
2809
2815
  if ($[77] !== t) {
2810
- t38 = t("Access Rules");
2816
+ t38 = t("SQL editor");
2811
2817
  $[77] = t;
2812
2818
  $[78] = t38;
2813
2819
  } else {
@@ -2815,7 +2821,7 @@ const StudioLayout = () => {
2815
2821
  }
2816
2822
  let t39;
2817
2823
  if ($[79] !== t) {
2818
- t39 = t("Users");
2824
+ t39 = t("Access Rules");
2819
2825
  $[79] = t;
2820
2826
  $[80] = t39;
2821
2827
  } else {
@@ -2823,7 +2829,7 @@ const StudioLayout = () => {
2823
2829
  }
2824
2830
  let t40;
2825
2831
  if ($[81] !== t) {
2826
- t40 = t("Vectors");
2832
+ t40 = t("Users");
2827
2833
  $[81] = t;
2828
2834
  $[82] = t40;
2829
2835
  } else {
@@ -2831,95 +2837,105 @@ const StudioLayout = () => {
2831
2837
  }
2832
2838
  let t41;
2833
2839
  if ($[83] !== t) {
2834
- t41 = t("Workflows");
2840
+ t41 = t("Vectors");
2835
2841
  $[83] = t;
2836
2842
  $[84] = t41;
2837
2843
  } else {
2838
2844
  t41 = $[84];
2839
2845
  }
2840
2846
  let t42;
2841
- if ($[85] !== t10 || $[86] !== t11 || $[87] !== t12 || $[88] !== t13 || $[89] !== t14 || $[90] !== t15 || $[91] !== t16 || $[92] !== t17 || $[93] !== t18 || $[94] !== t19 || $[95] !== t20 || $[96] !== t21 || $[97] !== t22 || $[98] !== t23 || $[99] !== t24 || $[100] !== t25 || $[101] !== t26 || $[102] !== t27 || $[103] !== t28 || $[104] !== t29 || $[105] !== t30 || $[106] !== t31 || $[107] !== t32 || $[108] !== t33 || $[109] !== t34 || $[110] !== t35 || $[111] !== t36 || $[112] !== t37 || $[113] !== t38 || $[114] !== t39 || $[115] !== t40 || $[116] !== t41 || $[117] !== t5 || $[118] !== t6 || $[119] !== t7 || $[120] !== t8 || $[121] !== t9) {
2842
- t42 = {
2847
+ if ($[85] !== t) {
2848
+ t42 = t("Workflows");
2849
+ $[85] = t;
2850
+ $[86] = t42;
2851
+ } else {
2852
+ t42 = $[86];
2853
+ }
2854
+ let t43;
2855
+ if ($[87] !== t10 || $[88] !== t11 || $[89] !== t12 || $[90] !== t13 || $[91] !== t14 || $[92] !== t15 || $[93] !== t16 || $[94] !== t17 || $[95] !== t18 || $[96] !== t19 || $[97] !== t20 || $[98] !== t21 || $[99] !== t22 || $[100] !== t23 || $[101] !== t24 || $[102] !== t25 || $[103] !== t26 || $[104] !== t27 || $[105] !== t28 || $[106] !== t29 || $[107] !== t30 || $[108] !== t31 || $[109] !== t32 || $[110] !== t33 || $[111] !== t34 || $[112] !== t35 || $[113] !== t36 || $[114] !== t37 || $[115] !== t38 || $[116] !== t39 || $[117] !== t40 || $[118] !== t41 || $[119] !== t42 || $[120] !== t5 || $[121] !== t6 || $[122] !== t7 || $[123] !== t8 || $[124] !== t9) {
2856
+ t43 = {
2843
2857
  analytics: t5,
2844
2858
  api: t6,
2845
2859
  audit: t7,
2846
2860
  authConfig: t8,
2847
2861
  authSessions: t9,
2848
- dashboards: t10,
2849
- data: t11,
2850
- drains: t12,
2851
- export: t13,
2852
- fanout: t14,
2853
- files: t15,
2854
- flags: t16,
2855
- functions: t17,
2856
- health: t18,
2857
- home: t19,
2858
- insights: t20,
2859
- kv: t21,
2860
- logs: t22,
2861
- metrics: t23,
2862
- migrations: t24,
2863
- organizations: t25,
2864
- pitr: t26,
2865
- mail: t27,
2866
- payments: t28,
2867
- permissions: t29,
2868
- queues: t30,
2869
- realtime: t31,
2870
- rls: t32,
2871
- schedule: t33,
2872
- schema: t34,
2873
- security: t35,
2874
- settings: t36,
2875
- sql: t37,
2876
- storageRules: t38,
2877
- users: t39,
2878
- vectors: t40,
2879
- workflows: t41
2862
+ containers: t10,
2863
+ dashboards: t11,
2864
+ data: t12,
2865
+ drains: t13,
2866
+ export: t14,
2867
+ fanout: t15,
2868
+ files: t16,
2869
+ flags: t17,
2870
+ functions: t18,
2871
+ health: t19,
2872
+ home: t20,
2873
+ insights: t21,
2874
+ kv: t22,
2875
+ logs: t23,
2876
+ metrics: t24,
2877
+ migrations: t25,
2878
+ organizations: t26,
2879
+ pitr: t27,
2880
+ mail: t28,
2881
+ payments: t29,
2882
+ permissions: t30,
2883
+ queues: t31,
2884
+ realtime: t32,
2885
+ rls: t33,
2886
+ schedule: t34,
2887
+ schema: t35,
2888
+ security: t36,
2889
+ settings: t37,
2890
+ sql: t38,
2891
+ storageRules: t39,
2892
+ users: t40,
2893
+ vectors: t41,
2894
+ workflows: t42
2880
2895
  };
2881
- $[85] = t10;
2882
- $[86] = t11;
2883
- $[87] = t12;
2884
- $[88] = t13;
2885
- $[89] = t14;
2886
- $[90] = t15;
2887
- $[91] = t16;
2888
- $[92] = t17;
2889
- $[93] = t18;
2890
- $[94] = t19;
2891
- $[95] = t20;
2892
- $[96] = t21;
2893
- $[97] = t22;
2894
- $[98] = t23;
2895
- $[99] = t24;
2896
- $[100] = t25;
2897
- $[101] = t26;
2898
- $[102] = t27;
2899
- $[103] = t28;
2900
- $[104] = t29;
2901
- $[105] = t30;
2902
- $[106] = t31;
2903
- $[107] = t32;
2904
- $[108] = t33;
2905
- $[109] = t34;
2906
- $[110] = t35;
2907
- $[111] = t36;
2908
- $[112] = t37;
2909
- $[113] = t38;
2910
- $[114] = t39;
2911
- $[115] = t40;
2912
- $[116] = t41;
2913
- $[117] = t5;
2914
- $[118] = t6;
2915
- $[119] = t7;
2916
- $[120] = t8;
2917
- $[121] = t9;
2918
- $[122] = t42;
2919
- } else {
2920
- t42 = $[122];
2921
- }
2922
- const tabLabel = t42;
2896
+ $[87] = t10;
2897
+ $[88] = t11;
2898
+ $[89] = t12;
2899
+ $[90] = t13;
2900
+ $[91] = t14;
2901
+ $[92] = t15;
2902
+ $[93] = t16;
2903
+ $[94] = t17;
2904
+ $[95] = t18;
2905
+ $[96] = t19;
2906
+ $[97] = t20;
2907
+ $[98] = t21;
2908
+ $[99] = t22;
2909
+ $[100] = t23;
2910
+ $[101] = t24;
2911
+ $[102] = t25;
2912
+ $[103] = t26;
2913
+ $[104] = t27;
2914
+ $[105] = t28;
2915
+ $[106] = t29;
2916
+ $[107] = t30;
2917
+ $[108] = t31;
2918
+ $[109] = t32;
2919
+ $[110] = t33;
2920
+ $[111] = t34;
2921
+ $[112] = t35;
2922
+ $[113] = t36;
2923
+ $[114] = t37;
2924
+ $[115] = t38;
2925
+ $[116] = t39;
2926
+ $[117] = t40;
2927
+ $[118] = t41;
2928
+ $[119] = t42;
2929
+ $[120] = t5;
2930
+ $[121] = t6;
2931
+ $[122] = t7;
2932
+ $[123] = t8;
2933
+ $[124] = t9;
2934
+ $[125] = t43;
2935
+ } else {
2936
+ t43 = $[125];
2937
+ }
2938
+ const tabLabel = t43;
2923
2939
  const groupLabel = {
2924
2940
  advisors: t("Advisors"),
2925
2941
  auth: t("Auth"),
@@ -2931,416 +2947,426 @@ const StudioLayout = () => {
2931
2947
  settings: t("Settings"),
2932
2948
  storage: t("Storage")
2933
2949
  };
2934
- let t43;
2935
- if ($[123] !== t) {
2936
- t43 = t("Usage and latency from Analytics Engine — request volume, p50/p95, and hot shards.");
2937
- $[123] = t;
2938
- $[124] = t43;
2939
- } else {
2940
- t43 = $[124];
2941
- }
2942
2950
  let t44;
2943
- if ($[125] !== t) {
2944
- t44 = t("Interactive OpenAPI reference and copy-paste snippets for your functions.");
2945
- $[125] = t;
2946
- $[126] = t44;
2951
+ if ($[126] !== t) {
2952
+ t44 = t("Usage and latency from Analytics Engine request volume, p50/p95, and hot shards.");
2953
+ $[126] = t;
2954
+ $[127] = t44;
2947
2955
  } else {
2948
- t44 = $[126];
2956
+ t44 = $[127];
2949
2957
  }
2950
2958
  let t45;
2951
- if ($[127] !== t) {
2952
- t45 = t("A durable log of admin state-changing operations.");
2953
- $[127] = t;
2954
- $[128] = t45;
2959
+ if ($[128] !== t) {
2960
+ t45 = t("Interactive OpenAPI reference and copy-paste snippets for your functions.");
2961
+ $[128] = t;
2962
+ $[129] = t45;
2955
2963
  } else {
2956
- t45 = $[128];
2964
+ t45 = $[129];
2957
2965
  }
2958
2966
  let t46;
2959
- if ($[129] !== t) {
2960
- t46 = t("Enabled plugins and session config (read-only).");
2961
- $[129] = t;
2962
- $[130] = t46;
2967
+ if ($[130] !== t) {
2968
+ t46 = t("A durable log of admin state-changing operations.");
2969
+ $[130] = t;
2970
+ $[131] = t46;
2963
2971
  } else {
2964
- t46 = $[130];
2972
+ t46 = $[131];
2965
2973
  }
2966
2974
  let t47;
2967
- if ($[131] !== t) {
2968
- t47 = t("Browse and revoke active sessions across all users.");
2969
- $[131] = t;
2970
- $[132] = t47;
2975
+ if ($[132] !== t) {
2976
+ t47 = t("Enabled plugins and session config (read-only).");
2977
+ $[132] = t;
2978
+ $[133] = t47;
2971
2979
  } else {
2972
- t47 = $[132];
2980
+ t47 = $[133];
2973
2981
  }
2974
2982
  let t48;
2975
- if ($[133] !== t) {
2976
- t48 = t("Chart widgets backed by saved read-only SQL queries.");
2977
- $[133] = t;
2978
- $[134] = t48;
2983
+ if ($[134] !== t) {
2984
+ t48 = t("Browse and revoke active sessions across all users.");
2985
+ $[134] = t;
2986
+ $[135] = t48;
2979
2987
  } else {
2980
- t48 = $[134];
2988
+ t48 = $[135];
2981
2989
  }
2982
2990
  let t49;
2983
- if ($[135] !== t) {
2984
- t49 = t("Browse and edit rows across your shard and global tables.");
2985
- $[135] = t;
2986
- $[136] = t49;
2991
+ if ($[136] !== t) {
2992
+ t49 = t("Live Cloudflare Containers current lifecycle state per container from the log stream.");
2993
+ $[136] = t;
2994
+ $[137] = t49;
2987
2995
  } else {
2988
- t49 = $[136];
2996
+ t49 = $[137];
2989
2997
  }
2990
2998
  let t50;
2991
- if ($[137] !== t) {
2992
- t50 = t("Forward logs to Logpush, Tail Workers, or a webhook collector.");
2993
- $[137] = t;
2994
- $[138] = t50;
2999
+ if ($[138] !== t) {
3000
+ t50 = t("Chart widgets backed by saved read-only SQL queries.");
3001
+ $[138] = t;
3002
+ $[139] = t50;
2995
3003
  } else {
2996
- t50 = $[138];
3004
+ t50 = $[139];
2997
3005
  }
2998
3006
  let t51;
2999
- if ($[139] !== t) {
3000
- t51 = t("Export a shard to NDJSON, or import rows from it.");
3001
- $[139] = t;
3002
- $[140] = t51;
3007
+ if ($[140] !== t) {
3008
+ t51 = t("Browse and edit rows across your shard and global tables.");
3009
+ $[140] = t;
3010
+ $[141] = t51;
3003
3011
  } else {
3004
- t51 = $[140];
3012
+ t51 = $[141];
3005
3013
  }
3006
3014
  let t52;
3007
- if ($[141] !== t) {
3008
- t52 = t("Realtime fan-out cost and per-topic subscriber counts for this shard.");
3009
- $[141] = t;
3010
- $[142] = t52;
3015
+ if ($[142] !== t) {
3016
+ t52 = t("Forward logs to Logpush, Tail Workers, or a webhook collector.");
3017
+ $[142] = t;
3018
+ $[143] = t52;
3011
3019
  } else {
3012
- t52 = $[142];
3020
+ t52 = $[143];
3013
3021
  }
3014
3022
  let t53;
3015
- if ($[143] !== t) {
3016
- t53 = t("Browse objects in your R2 storage buckets.");
3017
- $[143] = t;
3018
- $[144] = t53;
3023
+ if ($[144] !== t) {
3024
+ t53 = t("Export a shard to NDJSON, or import rows from it.");
3025
+ $[144] = t;
3026
+ $[145] = t53;
3019
3027
  } else {
3020
- t53 = $[144];
3028
+ t53 = $[145];
3021
3029
  }
3022
3030
  let t54;
3023
- if ($[145] !== t) {
3024
- t54 = t("Inspect feature flags and their live evaluation under a targeting context.");
3025
- $[145] = t;
3026
- $[146] = t54;
3031
+ if ($[146] !== t) {
3032
+ t54 = t("Realtime fan-out cost and per-topic subscriber counts for this shard.");
3033
+ $[146] = t;
3034
+ $[147] = t54;
3027
3035
  } else {
3028
- t54 = $[146];
3036
+ t54 = $[147];
3029
3037
  }
3030
3038
  let t55;
3031
- if ($[147] !== t) {
3032
- t55 = t("Run registered queries, mutations, and actions.");
3033
- $[147] = t;
3034
- $[148] = t55;
3039
+ if ($[148] !== t) {
3040
+ t55 = t("Browse objects in your R2 storage buckets.");
3041
+ $[148] = t;
3042
+ $[149] = t55;
3035
3043
  } else {
3036
- t55 = $[148];
3044
+ t55 = $[149];
3037
3045
  }
3038
3046
  let t56;
3039
- if ($[149] !== t) {
3040
- t56 = t("At-a-glance connection, error, and shard signals.");
3041
- $[149] = t;
3042
- $[150] = t56;
3047
+ if ($[150] !== t) {
3048
+ t56 = t("Inspect feature flags and their live evaluation under a targeting context.");
3049
+ $[150] = t;
3050
+ $[151] = t56;
3043
3051
  } else {
3044
- t56 = $[150];
3052
+ t56 = $[151];
3045
3053
  }
3046
3054
  let t57;
3047
- if ($[151] !== t) {
3048
- t57 = t("Connection, health, and advisor summary for your deployment.");
3049
- $[151] = t;
3050
- $[152] = t57;
3055
+ if ($[152] !== t) {
3056
+ t57 = t("Run registered queries, mutations, and actions.");
3057
+ $[152] = t;
3058
+ $[153] = t57;
3051
3059
  } else {
3052
- t57 = $[152];
3060
+ t57 = $[153];
3053
3061
  }
3054
3062
  let t58;
3055
- if ($[153] !== t) {
3056
- t58 = t("Surface slow functions, error spikes, and cache problems.");
3057
- $[153] = t;
3058
- $[154] = t58;
3063
+ if ($[154] !== t) {
3064
+ t58 = t("At-a-glance connection, error, and shard signals.");
3065
+ $[154] = t;
3066
+ $[155] = t58;
3059
3067
  } else {
3060
- t58 = $[154];
3068
+ t58 = $[155];
3061
3069
  }
3062
3070
  let t59;
3063
- if ($[155] !== t) {
3064
- t59 = t("A live stream of recent function logs.");
3065
- $[155] = t;
3066
- $[156] = t59;
3071
+ if ($[156] !== t) {
3072
+ t59 = t("Connection, health, and advisor summary for your deployment.");
3073
+ $[156] = t;
3074
+ $[157] = t59;
3067
3075
  } else {
3068
- t59 = $[156];
3076
+ t59 = $[157];
3069
3077
  }
3070
3078
  let t60;
3071
- if ($[157] !== t) {
3072
- t60 = t("Per-shard health and aggregate metrics.");
3073
- $[157] = t;
3074
- $[158] = t60;
3079
+ if ($[158] !== t) {
3080
+ t60 = t("Surface slow functions, error spikes, and cache problems.");
3081
+ $[158] = t;
3082
+ $[159] = t60;
3075
3083
  } else {
3076
- t60 = $[158];
3084
+ t60 = $[159];
3077
3085
  }
3078
3086
  let t61;
3079
- if ($[159] !== t) {
3080
- t61 = t("Review migration status and run them.");
3081
- $[159] = t;
3082
- $[160] = t61;
3087
+ if ($[160] !== t) {
3088
+ t61 = t("A live stream of recent function logs.");
3089
+ $[160] = t;
3090
+ $[161] = t61;
3083
3091
  } else {
3084
- t61 = $[160];
3092
+ t61 = $[161];
3085
3093
  }
3086
3094
  let t62;
3087
- if ($[161] !== t) {
3088
- t62 = t("Browse and manage organizations, members, and invitations.");
3089
- $[161] = t;
3090
- $[162] = t62;
3095
+ if ($[162] !== t) {
3096
+ t62 = t("Per-shard health and aggregate metrics.");
3097
+ $[162] = t;
3098
+ $[163] = t62;
3091
3099
  } else {
3092
- t62 = $[162];
3100
+ t62 = $[163];
3093
3101
  }
3094
3102
  let t63;
3095
- if ($[163] !== t) {
3096
- t63 = t("Restore a shard to a point in the last 30 days.");
3097
- $[163] = t;
3098
- $[164] = t63;
3103
+ if ($[164] !== t) {
3104
+ t63 = t("Review migration status and run them.");
3105
+ $[164] = t;
3106
+ $[165] = t63;
3099
3107
  } else {
3100
- t63 = $[164];
3108
+ t63 = $[165];
3101
3109
  }
3102
3110
  let t64;
3103
- if ($[165] !== t) {
3104
- t64 = t("Email your app sent, captured in dev.");
3105
- $[165] = t;
3106
- $[166] = t64;
3111
+ if ($[166] !== t) {
3112
+ t64 = t("Browse and manage organizations, members, and invitations.");
3113
+ $[166] = t;
3114
+ $[167] = t64;
3107
3115
  } else {
3108
- t64 = $[166];
3116
+ t64 = $[167];
3109
3117
  }
3110
3118
  let t65;
3111
- if ($[167] !== t) {
3112
- t65 = t("Synced customers, subscriptions, and webhook events.");
3113
- $[167] = t;
3114
- $[168] = t65;
3119
+ if ($[168] !== t) {
3120
+ t65 = t("Restore a shard to a point in the last 30 days.");
3121
+ $[168] = t;
3122
+ $[169] = t65;
3115
3123
  } else {
3116
- t65 = $[168];
3124
+ t65 = $[169];
3117
3125
  }
3118
3126
  let t66;
3119
- if ($[169] !== t) {
3120
- t66 = t("Inspect access policies per table, and probe a function as any identity.");
3121
- $[169] = t;
3122
- $[170] = t66;
3127
+ if ($[170] !== t) {
3128
+ t66 = t("Email your app sent, captured in dev.");
3129
+ $[170] = t;
3130
+ $[171] = t66;
3123
3131
  } else {
3124
- t66 = $[170];
3132
+ t66 = $[171];
3125
3133
  }
3126
3134
  let t67;
3127
- if ($[171] !== t) {
3128
- t67 = t("Inspect declared Cloudflare Queues — their producer bindings, consumer mode, and dead-letter queue.");
3129
- $[171] = t;
3130
- $[172] = t67;
3135
+ if ($[172] !== t) {
3136
+ t67 = t("Synced customers, subscriptions, and webhook events.");
3137
+ $[172] = t;
3138
+ $[173] = t67;
3131
3139
  } else {
3132
- t67 = $[172];
3140
+ t67 = $[173];
3133
3141
  }
3134
3142
  let t68;
3135
- if ($[173] !== t) {
3136
- t68 = t("Active WebSocket subscriptions on this shard.");
3137
- $[173] = t;
3138
- $[174] = t68;
3143
+ if ($[174] !== t) {
3144
+ t68 = t("Inspect access policies per table, and probe a function as any identity.");
3145
+ $[174] = t;
3146
+ $[175] = t68;
3139
3147
  } else {
3140
- t68 = $[174];
3148
+ t68 = $[175];
3141
3149
  }
3142
3150
  let t69;
3143
- if ($[175] !== t) {
3144
- t69 = t("Inspect row-level-security policies and roles, per table.");
3145
- $[175] = t;
3146
- $[176] = t69;
3151
+ if ($[176] !== t) {
3152
+ t69 = t("Inspect declared Cloudflare Queues — their producer bindings, consumer mode, and dead-letter queue.");
3153
+ $[176] = t;
3154
+ $[177] = t69;
3147
3155
  } else {
3148
- t69 = $[176];
3156
+ t69 = $[177];
3149
3157
  }
3150
3158
  let t70;
3151
- if ($[177] !== t) {
3152
- t70 = t("Inspect and cancel scheduled jobs.");
3153
- $[177] = t;
3154
- $[178] = t70;
3159
+ if ($[178] !== t) {
3160
+ t70 = t("Active WebSocket subscriptions on this shard.");
3161
+ $[178] = t;
3162
+ $[179] = t70;
3155
3163
  } else {
3156
- t70 = $[178];
3164
+ t70 = $[179];
3157
3165
  }
3158
3166
  let t71;
3159
- if ($[179] !== t) {
3160
- t71 = t("Inspect each table and its columns.");
3161
- $[179] = t;
3162
- $[180] = t71;
3167
+ if ($[180] !== t) {
3168
+ t71 = t("Inspect row-level-security policies and roles, per table.");
3169
+ $[180] = t;
3170
+ $[181] = t71;
3163
3171
  } else {
3164
- t71 = $[180];
3172
+ t71 = $[181];
3165
3173
  }
3166
3174
  let t72;
3167
- if ($[181] !== t) {
3168
- t72 = t("Review admin gates, credentials, and log redaction.");
3169
- $[181] = t;
3170
- $[182] = t72;
3175
+ if ($[182] !== t) {
3176
+ t72 = t("Inspect and cancel scheduled jobs.");
3177
+ $[182] = t;
3178
+ $[183] = t72;
3171
3179
  } else {
3172
- t72 = $[182];
3180
+ t72 = $[183];
3173
3181
  }
3174
3182
  let t73;
3175
- if ($[183] !== t) {
3176
- t73 = t("Read-only deployment config vars, secrets, and bindings.");
3177
- $[183] = t;
3178
- $[184] = t73;
3183
+ if ($[184] !== t) {
3184
+ t73 = t("Inspect each table and its columns.");
3185
+ $[184] = t;
3186
+ $[185] = t73;
3179
3187
  } else {
3180
- t73 = $[184];
3188
+ t73 = $[185];
3181
3189
  }
3182
3190
  let t74;
3183
- if ($[185] !== t) {
3184
- t74 = t("Run read-only SQL against a shard.");
3185
- $[185] = t;
3186
- $[186] = t74;
3191
+ if ($[186] !== t) {
3192
+ t74 = t("Review admin gates, credentials, and log redaction.");
3193
+ $[186] = t;
3194
+ $[187] = t74;
3187
3195
  } else {
3188
- t74 = $[186];
3196
+ t74 = $[187];
3189
3197
  }
3190
3198
  let t75;
3191
- if ($[187] !== t) {
3192
- t75 = t("Browse and edit key-value pairs in your Workers KV namespaces.");
3193
- $[187] = t;
3194
- $[188] = t75;
3199
+ if ($[188] !== t) {
3200
+ t75 = t("Read-only deployment config vars, secrets, and bindings.");
3201
+ $[188] = t;
3202
+ $[189] = t75;
3195
3203
  } else {
3196
- t75 = $[188];
3204
+ t75 = $[189];
3197
3205
  }
3198
3206
  let t76;
3199
- if ($[189] !== t) {
3200
- t76 = t("Inspect storage access rules per bucket, operation, and key prefix.");
3201
- $[189] = t;
3202
- $[190] = t76;
3207
+ if ($[190] !== t) {
3208
+ t76 = t("Run read-only SQL against a shard.");
3209
+ $[190] = t;
3210
+ $[191] = t76;
3203
3211
  } else {
3204
- t76 = $[190];
3212
+ t76 = $[191];
3205
3213
  }
3206
3214
  let t77;
3207
- if ($[191] !== t) {
3208
- t77 = t("Manage auth users roles, bans, sessions, and identity.");
3209
- $[191] = t;
3210
- $[192] = t77;
3215
+ if ($[192] !== t) {
3216
+ t77 = t("Browse and edit key-value pairs in your Workers KV namespaces.");
3217
+ $[192] = t;
3218
+ $[193] = t77;
3211
3219
  } else {
3212
- t77 = $[192];
3220
+ t77 = $[193];
3213
3221
  }
3214
3222
  let t78;
3215
- if ($[193] !== t) {
3216
- t78 = t("Browse Vectorize indexes and run similarity searches.");
3217
- $[193] = t;
3218
- $[194] = t78;
3223
+ if ($[194] !== t) {
3224
+ t78 = t("Inspect storage access rules — per bucket, operation, and key prefix.");
3225
+ $[194] = t;
3226
+ $[195] = t78;
3219
3227
  } else {
3220
- t78 = $[194];
3228
+ t78 = $[195];
3221
3229
  }
3222
3230
  let t79;
3223
- if ($[195] !== t) {
3224
- t79 = t("Inspect declared Cloudflare Workflows and their bindings.");
3225
- $[195] = t;
3226
- $[196] = t79;
3231
+ if ($[196] !== t) {
3232
+ t79 = t("Manage auth users roles, bans, sessions, and identity.");
3233
+ $[196] = t;
3234
+ $[197] = t79;
3227
3235
  } else {
3228
- t79 = $[196];
3236
+ t79 = $[197];
3229
3237
  }
3230
3238
  let t80;
3231
- if ($[197] !== t43 || $[198] !== t44 || $[199] !== t45 || $[200] !== t46 || $[201] !== t47 || $[202] !== t48 || $[203] !== t49 || $[204] !== t50 || $[205] !== t51 || $[206] !== t52 || $[207] !== t53 || $[208] !== t54 || $[209] !== t55 || $[210] !== t56 || $[211] !== t57 || $[212] !== t58 || $[213] !== t59 || $[214] !== t60 || $[215] !== t61 || $[216] !== t62 || $[217] !== t63 || $[218] !== t64 || $[219] !== t65 || $[220] !== t66 || $[221] !== t67 || $[222] !== t68 || $[223] !== t69 || $[224] !== t70 || $[225] !== t71 || $[226] !== t72 || $[227] !== t73 || $[228] !== t74 || $[229] !== t75 || $[230] !== t76 || $[231] !== t77 || $[232] !== t78 || $[233] !== t79) {
3232
- t80 = {
3233
- analytics: t43,
3234
- api: t44,
3235
- audit: t45,
3236
- authConfig: t46,
3237
- authSessions: t47,
3238
- dashboards: t48,
3239
- data: t49,
3240
- drains: t50,
3241
- export: t51,
3242
- fanout: t52,
3243
- files: t53,
3244
- flags: t54,
3245
- functions: t55,
3246
- health: t56,
3247
- home: t57,
3248
- insights: t58,
3249
- logs: t59,
3250
- metrics: t60,
3251
- migrations: t61,
3252
- organizations: t62,
3253
- pitr: t63,
3254
- mail: t64,
3255
- payments: t65,
3256
- permissions: t66,
3257
- queues: t67,
3258
- realtime: t68,
3259
- rls: t69,
3260
- schedule: t70,
3261
- schema: t71,
3262
- security: t72,
3263
- settings: t73,
3264
- sql: t74,
3265
- kv: t75,
3266
- storageRules: t76,
3267
- users: t77,
3268
- vectors: t78,
3269
- workflows: t79
3270
- };
3271
- $[197] = t43;
3272
- $[198] = t44;
3273
- $[199] = t45;
3274
- $[200] = t46;
3275
- $[201] = t47;
3276
- $[202] = t48;
3277
- $[203] = t49;
3278
- $[204] = t50;
3279
- $[205] = t51;
3280
- $[206] = t52;
3281
- $[207] = t53;
3282
- $[208] = t54;
3283
- $[209] = t55;
3284
- $[210] = t56;
3285
- $[211] = t57;
3286
- $[212] = t58;
3287
- $[213] = t59;
3288
- $[214] = t60;
3289
- $[215] = t61;
3290
- $[216] = t62;
3291
- $[217] = t63;
3292
- $[218] = t64;
3293
- $[219] = t65;
3294
- $[220] = t66;
3295
- $[221] = t67;
3296
- $[222] = t68;
3297
- $[223] = t69;
3298
- $[224] = t70;
3299
- $[225] = t71;
3300
- $[226] = t72;
3301
- $[227] = t73;
3302
- $[228] = t74;
3303
- $[229] = t75;
3304
- $[230] = t76;
3305
- $[231] = t77;
3306
- $[232] = t78;
3307
- $[233] = t79;
3308
- $[234] = t80;
3309
- } else {
3310
- t80 = $[234];
3311
- }
3312
- const tabDescription = t80;
3239
+ if ($[198] !== t) {
3240
+ t80 = t("Browse Vectorize indexes and run similarity searches.");
3241
+ $[198] = t;
3242
+ $[199] = t80;
3243
+ } else {
3244
+ t80 = $[199];
3245
+ }
3313
3246
  let t81;
3314
- if ($[235] !== navigate) {
3315
- t81 = (event) => {
3247
+ if ($[200] !== t) {
3248
+ t81 = t("Inspect declared Cloudflare Workflows and their bindings.");
3249
+ $[200] = t;
3250
+ $[201] = t81;
3251
+ } else {
3252
+ t81 = $[201];
3253
+ }
3254
+ let t82;
3255
+ if ($[202] !== t44 || $[203] !== t45 || $[204] !== t46 || $[205] !== t47 || $[206] !== t48 || $[207] !== t49 || $[208] !== t50 || $[209] !== t51 || $[210] !== t52 || $[211] !== t53 || $[212] !== t54 || $[213] !== t55 || $[214] !== t56 || $[215] !== t57 || $[216] !== t58 || $[217] !== t59 || $[218] !== t60 || $[219] !== t61 || $[220] !== t62 || $[221] !== t63 || $[222] !== t64 || $[223] !== t65 || $[224] !== t66 || $[225] !== t67 || $[226] !== t68 || $[227] !== t69 || $[228] !== t70 || $[229] !== t71 || $[230] !== t72 || $[231] !== t73 || $[232] !== t74 || $[233] !== t75 || $[234] !== t76 || $[235] !== t77 || $[236] !== t78 || $[237] !== t79 || $[238] !== t80 || $[239] !== t81) {
3256
+ t82 = {
3257
+ analytics: t44,
3258
+ api: t45,
3259
+ audit: t46,
3260
+ authConfig: t47,
3261
+ authSessions: t48,
3262
+ containers: t49,
3263
+ dashboards: t50,
3264
+ data: t51,
3265
+ drains: t52,
3266
+ export: t53,
3267
+ fanout: t54,
3268
+ files: t55,
3269
+ flags: t56,
3270
+ functions: t57,
3271
+ health: t58,
3272
+ home: t59,
3273
+ insights: t60,
3274
+ logs: t61,
3275
+ metrics: t62,
3276
+ migrations: t63,
3277
+ organizations: t64,
3278
+ pitr: t65,
3279
+ mail: t66,
3280
+ payments: t67,
3281
+ permissions: t68,
3282
+ queues: t69,
3283
+ realtime: t70,
3284
+ rls: t71,
3285
+ schedule: t72,
3286
+ schema: t73,
3287
+ security: t74,
3288
+ settings: t75,
3289
+ sql: t76,
3290
+ kv: t77,
3291
+ storageRules: t78,
3292
+ users: t79,
3293
+ vectors: t80,
3294
+ workflows: t81
3295
+ };
3296
+ $[202] = t44;
3297
+ $[203] = t45;
3298
+ $[204] = t46;
3299
+ $[205] = t47;
3300
+ $[206] = t48;
3301
+ $[207] = t49;
3302
+ $[208] = t50;
3303
+ $[209] = t51;
3304
+ $[210] = t52;
3305
+ $[211] = t53;
3306
+ $[212] = t54;
3307
+ $[213] = t55;
3308
+ $[214] = t56;
3309
+ $[215] = t57;
3310
+ $[216] = t58;
3311
+ $[217] = t59;
3312
+ $[218] = t60;
3313
+ $[219] = t61;
3314
+ $[220] = t62;
3315
+ $[221] = t63;
3316
+ $[222] = t64;
3317
+ $[223] = t65;
3318
+ $[224] = t66;
3319
+ $[225] = t67;
3320
+ $[226] = t68;
3321
+ $[227] = t69;
3322
+ $[228] = t70;
3323
+ $[229] = t71;
3324
+ $[230] = t72;
3325
+ $[231] = t73;
3326
+ $[232] = t74;
3327
+ $[233] = t75;
3328
+ $[234] = t76;
3329
+ $[235] = t77;
3330
+ $[236] = t78;
3331
+ $[237] = t79;
3332
+ $[238] = t80;
3333
+ $[239] = t81;
3334
+ $[240] = t82;
3335
+ } else {
3336
+ t82 = $[240];
3337
+ }
3338
+ const tabDescription = t82;
3339
+ let t83;
3340
+ if ($[241] !== navigate) {
3341
+ t83 = (event) => {
3316
3342
  fireAndForget(navigate({
3317
3343
  to: `/${event.currentTarget.dataset.tab ?? ""}`
3318
3344
  }));
3319
3345
  };
3320
- $[235] = navigate;
3321
- $[236] = t81;
3346
+ $[241] = navigate;
3347
+ $[242] = t83;
3322
3348
  } else {
3323
- t81 = $[236];
3349
+ t83 = $[242];
3324
3350
  }
3325
- const selectTab = t81;
3326
- let t82;
3327
- let t83;
3328
- if ($[237] !== current || $[238] !== tabLabel) {
3329
- t82 = () => {
3351
+ const selectTab = t83;
3352
+ let t84;
3353
+ let t85;
3354
+ if ($[243] !== current || $[244] !== tabLabel) {
3355
+ t84 = () => {
3330
3356
  if (typeof document !== "undefined") {
3331
3357
  document.title = `${tabLabel[current]} · lunora`;
3332
3358
  }
3333
3359
  };
3334
- t83 = [current, tabLabel];
3335
- $[237] = current;
3336
- $[238] = tabLabel;
3337
- $[239] = t82;
3338
- $[240] = t83;
3360
+ t85 = [current, tabLabel];
3361
+ $[243] = current;
3362
+ $[244] = tabLabel;
3363
+ $[245] = t84;
3364
+ $[246] = t85;
3339
3365
  } else {
3340
- t82 = $[239];
3341
- t83 = $[240];
3366
+ t84 = $[245];
3367
+ t85 = $[246];
3342
3368
  }
3343
- useEffect(t82, t83);
3369
+ useEffect(t84, t85);
3344
3370
  const activeGroup = visibleGroups.find((group_1) => group_1.tabs.includes(current)) ?? NAV_GROUPS[0];
3345
3371
  const commandItems = visibleGroups.flatMap((group_2) => group_2.tabs.map((tab_0) => ({
3346
3372
  group: groupLabel[group_2.key],
@@ -3349,48 +3375,48 @@ const StudioLayout = () => {
3349
3375
  })));
3350
3376
  const chrome = use(StudioChromeContext);
3351
3377
  const connected = chrome !== null && chrome.token !== "";
3352
- let t84;
3353
- if ($[241] !== commandItems) {
3354
- t84 = /* @__PURE__ */ jsxDEV(CommandPalette, {
3378
+ let t86;
3379
+ if ($[247] !== commandItems) {
3380
+ t86 = /* @__PURE__ */ jsxDEV(CommandPalette, {
3355
3381
  items: commandItems
3356
3382
  }, void 0, false);
3357
- $[241] = commandItems;
3358
- $[242] = t84;
3383
+ $[247] = commandItems;
3384
+ $[248] = t86;
3359
3385
  } else {
3360
- t84 = $[242];
3386
+ t86 = $[248];
3361
3387
  }
3362
- let t85;
3363
- if ($[243] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3364
- t85 = /* @__PURE__ */ jsxDEV(SidebarTrigger, {
3388
+ let t87;
3389
+ if ($[249] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3390
+ t87 = /* @__PURE__ */ jsxDEV(SidebarTrigger, {
3365
3391
  className: "-ms-1"
3366
3392
  }, void 0, false);
3367
- $[243] = t85;
3393
+ $[249] = t87;
3368
3394
  } else {
3369
- t85 = $[243];
3395
+ t87 = $[249];
3370
3396
  }
3371
- let t86;
3372
- if ($[244] !== t) {
3373
- t86 = t("Breadcrumb");
3374
- $[244] = t;
3375
- $[245] = t86;
3397
+ let t88;
3398
+ if ($[250] !== t) {
3399
+ t88 = t("Breadcrumb");
3400
+ $[250] = t;
3401
+ $[251] = t88;
3376
3402
  } else {
3377
- t86 = $[245];
3403
+ t88 = $[251];
3378
3404
  }
3379
- const t87 = groupLabel[activeGroup.key];
3380
- let t88;
3381
- if ($[246] !== t87) {
3382
- t88 = /* @__PURE__ */ jsxDEV("span", {
3405
+ const t89 = groupLabel[activeGroup.key];
3406
+ let t90;
3407
+ if ($[252] !== t89) {
3408
+ t90 = /* @__PURE__ */ jsxDEV("span", {
3383
3409
  className: "text-muted-foreground",
3384
- children: t87
3410
+ children: t89
3385
3411
  }, void 0, false);
3386
- $[246] = t87;
3387
- $[247] = t88;
3412
+ $[252] = t89;
3413
+ $[253] = t90;
3388
3414
  } else {
3389
- t88 = $[247];
3415
+ t90 = $[253];
3390
3416
  }
3391
- let t89;
3392
- if ($[248] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3393
- t89 = /* @__PURE__ */ jsxDEV("svg", {
3417
+ let t91;
3418
+ if ($[254] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3419
+ t91 = /* @__PURE__ */ jsxDEV("svg", {
3394
3420
  "aria-hidden": "true",
3395
3421
  className: "size-3.5 text-muted-foreground/60",
3396
3422
  fill: "none",
@@ -3403,39 +3429,39 @@ const StudioLayout = () => {
3403
3429
  strokeLinejoin: "round"
3404
3430
  }, void 0, false)
3405
3431
  }, void 0, false);
3406
- $[248] = t89;
3432
+ $[254] = t91;
3407
3433
  } else {
3408
- t89 = $[248];
3434
+ t91 = $[254];
3409
3435
  }
3410
- const t90 = tabLabel[current];
3411
- let t91;
3412
- if ($[249] !== t90) {
3413
- t91 = /* @__PURE__ */ jsxDEV("span", {
3436
+ const t92 = tabLabel[current];
3437
+ let t93;
3438
+ if ($[255] !== t92) {
3439
+ t93 = /* @__PURE__ */ jsxDEV("span", {
3414
3440
  className: "font-medium text-foreground",
3415
- children: t90
3441
+ children: t92
3416
3442
  }, void 0, false);
3417
- $[249] = t90;
3418
- $[250] = t91;
3443
+ $[255] = t92;
3444
+ $[256] = t93;
3419
3445
  } else {
3420
- t91 = $[250];
3446
+ t93 = $[256];
3421
3447
  }
3422
- let t92;
3423
- if ($[251] !== t86 || $[252] !== t88 || $[253] !== t91) {
3424
- t92 = /* @__PURE__ */ jsxDEV("nav", {
3425
- "aria-label": t86,
3448
+ let t94;
3449
+ if ($[257] !== t88 || $[258] !== t90 || $[259] !== t93) {
3450
+ t94 = /* @__PURE__ */ jsxDEV("nav", {
3451
+ "aria-label": t88,
3426
3452
  className: "flex items-center gap-1.5 text-[13px]",
3427
- children: [t88, t89, t91]
3453
+ children: [t90, t91, t93]
3428
3454
  }, void 0, true);
3429
- $[251] = t86;
3430
- $[252] = t88;
3431
- $[253] = t91;
3432
- $[254] = t92;
3455
+ $[257] = t88;
3456
+ $[258] = t90;
3457
+ $[259] = t93;
3458
+ $[260] = t94;
3433
3459
  } else {
3434
- t92 = $[254];
3460
+ t94 = $[260];
3435
3461
  }
3436
- let t93;
3437
- if ($[255] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3438
- t93 = /* @__PURE__ */ jsxDEV("svg", {
3462
+ let t95;
3463
+ if ($[261] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3464
+ t95 = /* @__PURE__ */ jsxDEV("svg", {
3439
3465
  "aria-hidden": "true",
3440
3466
  className: "size-3.5",
3441
3467
  fill: "none",
@@ -3451,167 +3477,167 @@ const StudioLayout = () => {
3451
3477
  strokeLinecap: "round"
3452
3478
  }, void 0, false)]
3453
3479
  }, void 0, true);
3454
- $[255] = t93;
3480
+ $[261] = t95;
3455
3481
  } else {
3456
- t93 = $[255];
3482
+ t95 = $[261];
3457
3483
  }
3458
- let t94;
3459
- if ($[256] !== t) {
3460
- t94 = t("Search…");
3461
- $[256] = t;
3462
- $[257] = t94;
3484
+ let t96;
3485
+ if ($[262] !== t) {
3486
+ t96 = t("Search…");
3487
+ $[262] = t;
3488
+ $[263] = t96;
3463
3489
  } else {
3464
- t94 = $[257];
3490
+ t96 = $[263];
3465
3491
  }
3466
- let t95;
3467
- if ($[258] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3468
- t95 = /* @__PURE__ */ jsxDEV("kbd", {
3492
+ let t97;
3493
+ if ($[264] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3494
+ t97 = /* @__PURE__ */ jsxDEV("kbd", {
3469
3495
  className: "ms-auto rounded border border-border bg-background px-1 font-sans text-[10px] text-muted-foreground",
3470
3496
  children: "⌘K"
3471
3497
  }, void 0, false);
3472
- $[258] = t95;
3498
+ $[264] = t97;
3473
3499
  } else {
3474
- t95 = $[258];
3500
+ t97 = $[264];
3475
3501
  }
3476
- let t96;
3477
- if ($[259] !== t94) {
3478
- t96 = /* @__PURE__ */ jsxDEV("button", {
3502
+ let t98;
3503
+ if ($[265] !== t96) {
3504
+ t98 = /* @__PURE__ */ jsxDEV("button", {
3479
3505
  className: "mx-auto hidden h-8 w-72 items-center gap-2 rounded-lg border border-border bg-muted/40 px-3 text-xs text-muted-foreground transition-colors hover:bg-muted md:flex",
3480
3506
  "data-testid": "dash-app-search",
3481
3507
  onClick: openCommandPalette,
3482
3508
  type: "button",
3483
- children: [t93, t94, t95]
3509
+ children: [t95, t96, t97]
3484
3510
  }, void 0, true);
3485
- $[259] = t94;
3486
- $[260] = t96;
3511
+ $[265] = t96;
3512
+ $[266] = t98;
3487
3513
  } else {
3488
- t96 = $[260];
3514
+ t98 = $[266];
3489
3515
  }
3490
- let t97;
3491
- if ($[261] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3492
- t97 = /* @__PURE__ */ jsxDEV("div", {
3516
+ let t99;
3517
+ if ($[267] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3518
+ t99 = /* @__PURE__ */ jsxDEV("div", {
3493
3519
  className: "ms-auto flex items-center gap-1.5 md:ms-0",
3494
3520
  children: /* @__PURE__ */ jsxDEV(ThemeToggle, {}, void 0, false)
3495
3521
  }, void 0, false);
3496
- $[261] = t97;
3522
+ $[267] = t99;
3497
3523
  } else {
3498
- t97 = $[261];
3524
+ t99 = $[267];
3499
3525
  }
3500
- let t98;
3501
- if ($[262] !== t92 || $[263] !== t96) {
3502
- t98 = /* @__PURE__ */ jsxDEV("header", {
3526
+ let t100;
3527
+ if ($[268] !== t94 || $[269] !== t98) {
3528
+ t100 = /* @__PURE__ */ jsxDEV("header", {
3503
3529
  className: "flex h-11 shrink-0 items-center gap-2 border-b border-border px-4",
3504
3530
  "data-testid": "dash-app-header",
3505
- children: [t85, t92, t96, t97]
3531
+ children: [t87, t94, t98, t99]
3506
3532
  }, void 0, true);
3507
- $[262] = t92;
3508
- $[263] = t96;
3509
- $[264] = t98;
3533
+ $[268] = t94;
3534
+ $[269] = t98;
3535
+ $[270] = t100;
3510
3536
  } else {
3511
- t98 = $[264];
3537
+ t100 = $[270];
3512
3538
  }
3513
- let t99;
3514
- if ($[265] !== chrome?.rulesInstalled) {
3515
- t99 = chrome?.rulesInstalled === false && /* @__PURE__ */ jsxDEV(RulesBanner, {}, void 0, false);
3516
- $[265] = chrome?.rulesInstalled;
3517
- $[266] = t99;
3518
- } else {
3519
- t99 = $[266];
3520
- }
3521
- const t100 = `dash-tab-${current}`;
3522
- const t101 = fullHeight ? "flex min-w-0 flex-1 flex-col overflow-hidden" : "min-w-0 flex-1 overflow-auto p-6";
3523
- const t102 = tabLabel[current];
3524
- let t103;
3525
- if ($[267] !== t || $[268] !== t102) {
3526
- t103 = t("{title} failed", {
3527
- title: t102
3528
- });
3529
- $[267] = t;
3530
- $[268] = t102;
3531
- $[269] = t103;
3539
+ let t101;
3540
+ if ($[271] !== chrome?.rulesInstalled) {
3541
+ t101 = chrome?.rulesInstalled === false && /* @__PURE__ */ jsxDEV(RulesBanner, {}, void 0, false);
3542
+ $[271] = chrome?.rulesInstalled;
3543
+ $[272] = t101;
3532
3544
  } else {
3533
- t103 = $[269];
3545
+ t101 = $[272];
3534
3546
  }
3547
+ const t102 = `dash-tab-${current}`;
3548
+ const t103 = fullHeight ? "flex min-w-0 flex-1 flex-col overflow-hidden" : "min-w-0 flex-1 overflow-auto p-6";
3535
3549
  const t104 = tabLabel[current];
3536
3550
  let t105;
3537
- if ($[270] !== t) {
3538
- t105 = t("Try again");
3539
- $[270] = t;
3540
- $[271] = t105;
3551
+ if ($[273] !== t || $[274] !== t104) {
3552
+ t105 = t("{title} failed", {
3553
+ title: t104
3554
+ });
3555
+ $[273] = t;
3556
+ $[274] = t104;
3557
+ $[275] = t105;
3541
3558
  } else {
3542
- t105 = $[271];
3559
+ t105 = $[275];
3543
3560
  }
3544
- let t106;
3545
- if ($[272] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3546
- t106 = /* @__PURE__ */ jsxDEV(Suspense, {
3561
+ const t106 = tabLabel[current];
3562
+ let t107;
3563
+ if ($[276] !== t) {
3564
+ t107 = t("Try again");
3565
+ $[276] = t;
3566
+ $[277] = t107;
3567
+ } else {
3568
+ t107 = $[277];
3569
+ }
3570
+ let t108;
3571
+ if ($[278] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3572
+ t108 = /* @__PURE__ */ jsxDEV(Suspense, {
3547
3573
  fallback: /* @__PURE__ */ jsxDEV(RoutePending, {}, void 0, false),
3548
3574
  children: /* @__PURE__ */ jsxDEV(Outlet, {}, void 0, false)
3549
3575
  }, void 0, false);
3550
- $[272] = t106;
3576
+ $[278] = t108;
3551
3577
  } else {
3552
- t106 = $[272];
3578
+ t108 = $[278];
3553
3579
  }
3554
- let t107;
3555
- if ($[273] !== current || $[274] !== t103 || $[275] !== t104 || $[276] !== t105) {
3556
- t107 = /* @__PURE__ */ jsxDEV(ErrorBoundary, {
3557
- fallbackTitle: t103,
3558
- label: t104,
3559
- retryLabel: t105,
3560
- children: t106
3580
+ let t109;
3581
+ if ($[279] !== current || $[280] !== t105 || $[281] !== t106 || $[282] !== t107) {
3582
+ t109 = /* @__PURE__ */ jsxDEV(ErrorBoundary, {
3583
+ fallbackTitle: t105,
3584
+ label: t106,
3585
+ retryLabel: t107,
3586
+ children: t108
3561
3587
  }, current, false);
3562
- $[273] = current;
3563
- $[274] = t103;
3564
- $[275] = t104;
3565
- $[276] = t105;
3566
- $[277] = t107;
3588
+ $[279] = current;
3589
+ $[280] = t105;
3590
+ $[281] = t106;
3591
+ $[282] = t107;
3592
+ $[283] = t109;
3567
3593
  } else {
3568
- t107 = $[277];
3594
+ t109 = $[283];
3569
3595
  }
3570
- let t108;
3571
- if ($[278] !== t101 || $[279] !== t107) {
3572
- t108 = /* @__PURE__ */ jsxDEV("div", {
3573
- className: t101,
3574
- children: t107
3596
+ let t110;
3597
+ if ($[284] !== t103 || $[285] !== t109) {
3598
+ t110 = /* @__PURE__ */ jsxDEV("div", {
3599
+ className: t103,
3600
+ children: t109
3575
3601
  }, void 0, false);
3576
- $[278] = t101;
3577
- $[279] = t107;
3578
- $[280] = t108;
3602
+ $[284] = t103;
3603
+ $[285] = t109;
3604
+ $[286] = t110;
3579
3605
  } else {
3580
- t108 = $[280];
3606
+ t110 = $[286];
3581
3607
  }
3582
- let t109;
3583
- if ($[281] !== t100 || $[282] !== t108) {
3584
- t109 = /* @__PURE__ */ jsxDEV("div", {
3585
- "aria-labelledby": t100,
3608
+ let t111;
3609
+ if ($[287] !== t102 || $[288] !== t110) {
3610
+ t111 = /* @__PURE__ */ jsxDEV("div", {
3611
+ "aria-labelledby": t102,
3586
3612
  className: "flex min-w-0 flex-1 flex-col overflow-hidden",
3587
3613
  "data-testid": "dash-panel",
3588
3614
  id: "dash-panel",
3589
3615
  role: "tabpanel",
3590
- children: t108
3616
+ children: t110
3591
3617
  }, void 0, false);
3592
- $[281] = t100;
3593
- $[282] = t108;
3594
- $[283] = t109;
3618
+ $[287] = t102;
3619
+ $[288] = t110;
3620
+ $[289] = t111;
3595
3621
  } else {
3596
- t109 = $[283];
3622
+ t111 = $[289];
3597
3623
  }
3598
- let t110;
3599
- if ($[284] !== t109 || $[285] !== t98 || $[286] !== t99) {
3600
- t110 = /* @__PURE__ */ jsxDEV(SidebarInset, {
3624
+ let t112;
3625
+ if ($[290] !== t100 || $[291] !== t101 || $[292] !== t111) {
3626
+ t112 = /* @__PURE__ */ jsxDEV(SidebarInset, {
3601
3627
  className: "overflow-hidden md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",
3602
- children: [t98, t99, t109]
3628
+ children: [t100, t101, t111]
3603
3629
  }, void 0, true);
3604
- $[284] = t109;
3605
- $[285] = t98;
3606
- $[286] = t99;
3607
- $[287] = t110;
3630
+ $[290] = t100;
3631
+ $[291] = t101;
3632
+ $[292] = t111;
3633
+ $[293] = t112;
3608
3634
  } else {
3609
- t110 = $[287];
3635
+ t112 = $[293];
3610
3636
  }
3611
3637
  return /* @__PURE__ */ jsxDEV(SidebarProvider, {
3612
3638
  className: "min-h-0 flex-1",
3613
3639
  "data-testid": "lunora-studio",
3614
- children: [t84, /* @__PURE__ */ jsxDEV(StudioSidebar, {
3640
+ children: [t86, /* @__PURE__ */ jsxDEV(StudioSidebar, {
3615
3641
  chrome,
3616
3642
  connected,
3617
3643
  current,
@@ -3620,7 +3646,7 @@ const StudioLayout = () => {
3620
3646
  selectTab,
3621
3647
  tabDescription,
3622
3648
  tabLabel
3623
- }, void 0, false), t110]
3649
+ }, void 0, false), t112]
3624
3650
  }, void 0, true);
3625
3651
  };
3626
3652
  const SchemaRoutePanel = (t0) => {
@@ -3711,6 +3737,7 @@ const buildRouter = ({
3711
3737
  }, void 0, false),
3712
3738
  authConfig: /* @__PURE__ */ jsxDEV(AuthConfigPanel, {}, void 0, false),
3713
3739
  authSessions: /* @__PURE__ */ jsxDEV(AuthSessionsPanel, {}, void 0, false),
3740
+ containers: /* @__PURE__ */ jsxDEV(ContainersPanel, {}, void 0, false),
3714
3741
  dashboards: /* @__PURE__ */ jsxDEV(DashboardsPanel, {
3715
3742
  initialShardKey
3716
3743
  }, void 0, false),