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

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