@upstash/react-redis-browser 0.2.6 → 0.2.7-canary-2

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.
package/dist/index.mjs CHANGED
@@ -1,8 +1,26 @@
1
1
  // src/components/databrowser/index.tsx
2
2
  import { useEffect as useEffect14, useMemo as useMemo9, useRef as useRef6 } from "react";
3
3
 
4
+ // src/dark-mode-context.tsx
5
+ import { createContext, useContext } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ var DarkModeContext = createContext(void 0);
8
+ var DarkModeProvider = ({
9
+ children,
10
+ darkMode
11
+ }) => {
12
+ return /* @__PURE__ */ jsx(DarkModeContext.Provider, { value: { darkMode }, children });
13
+ };
14
+ var useDarkMode = () => {
15
+ const context = useContext(DarkModeContext);
16
+ if (!context) {
17
+ throw new Error("useDarkMode must be used within a DarkModeProvider");
18
+ }
19
+ return context.darkMode;
20
+ };
21
+
4
22
  // src/redis-context.tsx
5
- import { createContext, useContext, useMemo } from "react";
23
+ import { createContext as createContext2, useContext as useContext2, useMemo } from "react";
6
24
 
7
25
  // src/lib/clients.ts
8
26
  import { MutationCache, QueryCache, QueryClient } from "@tanstack/react-query";
@@ -181,8 +199,8 @@ var queryClient = new QueryClient({
181
199
  });
182
200
 
183
201
  // src/redis-context.tsx
184
- import { jsx } from "react/jsx-runtime";
185
- var RedisContext = createContext(void 0);
202
+ import { jsx as jsx2 } from "react/jsx-runtime";
203
+ var RedisContext = createContext2(void 0);
186
204
  var RedisProvider = ({
187
205
  children,
188
206
  redisCredentials
@@ -195,7 +213,7 @@ var RedisProvider = ({
195
213
  () => redisClient({ credentials: redisCredentials, pipelining: false }),
196
214
  [redisCredentials]
197
215
  );
198
- return /* @__PURE__ */ jsx(
216
+ return /* @__PURE__ */ jsx2(
199
217
  RedisContext.Provider,
200
218
  {
201
219
  value: { redis: redisInstance, redisNoPipeline: redisInstanceNoPipeline },
@@ -204,7 +222,7 @@ var RedisProvider = ({
204
222
  );
205
223
  };
206
224
  var useRedis = () => {
207
- const context = useContext(RedisContext);
225
+ const context = useContext2(RedisContext);
208
226
  if (!context) {
209
227
  throw new Error("useRedis must be used within a RedisProvider");
210
228
  }
@@ -212,11 +230,11 @@ var useRedis = () => {
212
230
  };
213
231
 
214
232
  // src/store.tsx
215
- import { createContext as createContext2, useContext as useContext2, useMemo as useMemo2 } from "react";
233
+ import { createContext as createContext3, useContext as useContext3, useMemo as useMemo2 } from "react";
216
234
  import { create, useStore } from "zustand";
217
235
  import { persist } from "zustand/middleware";
218
- import { jsx as jsx2 } from "react/jsx-runtime";
219
- var DatabrowserContext = createContext2(void 0);
236
+ import { jsx as jsx3 } from "react/jsx-runtime";
237
+ var DatabrowserContext = createContext3(void 0);
220
238
  var DatabrowserProvider = ({
221
239
  children,
222
240
  storage,
@@ -260,14 +278,14 @@ var DatabrowserProvider = ({
260
278
  })
261
279
  );
262
280
  }, []);
263
- return /* @__PURE__ */ jsx2(DatabrowserContext.Provider, { value: { store, rootRef }, children });
281
+ return /* @__PURE__ */ jsx3(DatabrowserContext.Provider, { value: { store, rootRef }, children });
264
282
  };
265
283
  var useDatabrowserRootRef = () => {
266
284
  const { rootRef } = useDatabrowser();
267
285
  return rootRef;
268
286
  };
269
287
  var useDatabrowser = () => {
270
- const context = useContext2(DatabrowserContext);
288
+ const context = useContext3(DatabrowserContext);
271
289
  if (!context) {
272
290
  throw new Error("useDatabrowser must be used within a DatabrowserProvider");
273
291
  }
@@ -449,14 +467,14 @@ var storeCreator = (set, get) => ({
449
467
  });
450
468
 
451
469
  // src/tab-provider.tsx
452
- import { createContext as createContext3, useContext as useContext3, useMemo as useMemo3 } from "react";
453
- import { jsx as jsx3 } from "react/jsx-runtime";
454
- var TabIdContext = createContext3(void 0);
470
+ import { createContext as createContext4, useContext as useContext4, useMemo as useMemo3 } from "react";
471
+ import { jsx as jsx4 } from "react/jsx-runtime";
472
+ var TabIdContext = createContext4(void 0);
455
473
  var TabIdProvider = ({ children, value }) => {
456
- return /* @__PURE__ */ jsx3(TabIdContext.Provider, { value, children });
474
+ return /* @__PURE__ */ jsx4(TabIdContext.Provider, { value, children });
457
475
  };
458
476
  var useTabId = () => {
459
- const tabId = useContext3(TabIdContext);
477
+ const tabId = useContext4(TabIdContext);
460
478
  if (!tabId) {
461
479
  throw new Error("useTabId must be used within a TabProvider");
462
480
  }
@@ -497,6 +515,22 @@ var useTab = () => {
497
515
  import { TooltipProvider } from "@radix-ui/react-tooltip";
498
516
  import { QueryClientProvider } from "@tanstack/react-query";
499
517
 
518
+ // src/lib/portal-root.ts
519
+ var root;
520
+ var wrapper;
521
+ if (typeof document !== "undefined") {
522
+ const id = "react-redis-browser-portal-root";
523
+ wrapper = document.querySelector(`#${id}`) ?? document.createElement("div");
524
+ wrapper.classList.add("ups-db");
525
+ wrapper.id = "react-redis-browser-portal-root";
526
+ root = document.createElement("div");
527
+ root.classList.add("text-zinc-700");
528
+ wrapper.append(root);
529
+ document.body.append(wrapper);
530
+ }
531
+ var portalRoot = root;
532
+ var portalWrapper = wrapper;
533
+
500
534
  // src/components/databrowser/components/databrowser-instance.tsx
501
535
  import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
502
536
 
@@ -3013,17 +3047,6 @@ var isTest = typeof window !== "undefined" && window.__PLAYWRIGHT__ === true;
3013
3047
  // src/components/ui/toaster.tsx
3014
3048
  import { Portal } from "@radix-ui/react-portal";
3015
3049
 
3016
- // src/lib/portal-root.ts
3017
- var root;
3018
- if (typeof document !== "undefined") {
3019
- const id = "react-redis-browser-portal-root";
3020
- root = document.querySelector(`#${id}`) ?? document.createElement("div");
3021
- root.classList.add("ups-db");
3022
- root.id = "react-redis-browser-portal-root";
3023
- document.body.append(root);
3024
- }
3025
- var portalRoot = root;
3026
-
3027
3050
  // src/components/ui/toast.tsx
3028
3051
  import * as React2 from "react";
3029
3052
  import { Cross2Icon } from "@radix-ui/react-icons";
@@ -3087,9 +3110,9 @@ var cva = (base, config) => {
3087
3110
  };
3088
3111
 
3089
3112
  // src/components/ui/toast.tsx
3090
- import { jsx as jsx4 } from "react/jsx-runtime";
3113
+ import { jsx as jsx5 } from "react/jsx-runtime";
3091
3114
  var ToastProvider = ToastPrimitives.Provider;
3092
- var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3115
+ var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3093
3116
  ToastPrimitives.Viewport,
3094
3117
  {
3095
3118
  ref,
@@ -3102,12 +3125,12 @@ var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PU
3102
3125
  ));
3103
3126
  ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
3104
3127
  var toastVariants = cva(
3105
- "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-zinc-200 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full dark:border-zinc-800",
3128
+ "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border border-zinc-200 p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
3106
3129
  {
3107
3130
  variants: {
3108
3131
  variant: {
3109
- default: "border bg-white text-zinc-950 dark:bg-zinc-950 dark:text-zinc-50",
3110
- destructive: "destructive group border-red-500 bg-red-500 text-zinc-50 dark:border-red-900 dark:bg-red-900 dark:text-zinc-50"
3132
+ default: "border bg-white text-zinc-950",
3133
+ destructive: "destructive group border-red-500 bg-red-500 text-zinc-50"
3111
3134
  }
3112
3135
  },
3113
3136
  defaultVariants: {
@@ -3116,7 +3139,7 @@ var toastVariants = cva(
3116
3139
  }
3117
3140
  );
3118
3141
  var Toast = React2.forwardRef(({ className, variant, ...props }, ref) => {
3119
- return /* @__PURE__ */ jsx4(
3142
+ return /* @__PURE__ */ jsx5(
3120
3143
  ToastPrimitives.Root,
3121
3144
  {
3122
3145
  ref,
@@ -3126,33 +3149,33 @@ var Toast = React2.forwardRef(({ className, variant, ...props }, ref) => {
3126
3149
  );
3127
3150
  });
3128
3151
  Toast.displayName = ToastPrimitives.Root.displayName;
3129
- var ToastAction = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3152
+ var ToastAction = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3130
3153
  ToastPrimitives.Action,
3131
3154
  {
3132
3155
  ref,
3133
3156
  className: cn(
3134
- "inline-flex h-8 shrink-0 items-center justify-center rounded-md border border-zinc-200 bg-transparent px-3 text-sm font-medium transition-colors hover:bg-zinc-100 focus:outline-none focus:ring-1 focus:ring-zinc-950 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-zinc-100/40 group-[.destructive]:hover:border-red-500/30 group-[.destructive]:hover:bg-red-500 group-[.destructive]:hover:text-zinc-50 group-[.destructive]:focus:ring-red-500 dark:border-neutral-800 dark:hover:bg-neutral-800 dark:focus:ring-neutral-300 dark:group-[.destructive]:border-neutral-800/40 dark:group-[.destructive]:hover:border-red-900/30 dark:group-[.destructive]:hover:bg-red-900 dark:group-[.destructive]:hover:text-neutral-50 dark:group-[.destructive]:focus:ring-red-900",
3157
+ "inline-flex h-8 shrink-0 items-center justify-center rounded-md border border-zinc-200 bg-transparent px-3 text-sm font-medium transition-colors hover:bg-zinc-100 focus:outline-none focus:ring-1 focus:ring-zinc-950 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-zinc-100/40 group-[.destructive]:hover:border-red-500/30 group-[.destructive]:hover:bg-red-500 group-[.destructive]:hover:text-zinc-50 group-[.destructive]:focus:ring-red-500",
3135
3158
  className
3136
3159
  ),
3137
3160
  ...props
3138
3161
  }
3139
3162
  ));
3140
3163
  ToastAction.displayName = ToastPrimitives.Action.displayName;
3141
- var ToastClose = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3164
+ var ToastClose = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3142
3165
  ToastPrimitives.Close,
3143
3166
  {
3144
3167
  ref,
3145
3168
  className: cn(
3146
- "absolute right-1 top-1 rounded-md p-1 text-neutral-950/50 opacity-0 transition-opacity hover:text-neutral-950 focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600 dark:text-neutral-50/50 dark:hover:text-neutral-50",
3169
+ "absolute right-1 top-1 rounded-md p-1 text-zinc-950/50 opacity-0 transition-opacity hover:text-zinc-950 focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
3147
3170
  className
3148
3171
  ),
3149
3172
  "toast-close": "",
3150
3173
  ...props,
3151
- children: /* @__PURE__ */ jsx4(Cross2Icon, { className: "size-4" })
3174
+ children: /* @__PURE__ */ jsx5(Cross2Icon, { className: "size-4" })
3152
3175
  }
3153
3176
  ));
3154
3177
  ToastClose.displayName = ToastPrimitives.Close.displayName;
3155
- var ToastTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3178
+ var ToastTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3156
3179
  ToastPrimitives.Title,
3157
3180
  {
3158
3181
  ref,
@@ -3161,7 +3184,7 @@ var ToastTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3161
3184
  }
3162
3185
  ));
3163
3186
  ToastTitle.displayName = ToastPrimitives.Title.displayName;
3164
- var ToastDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3187
+ var ToastDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3165
3188
  ToastPrimitives.Description,
3166
3189
  {
3167
3190
  ref,
@@ -3172,24 +3195,24 @@ var ToastDescription = React2.forwardRef(({ className, ...props }, ref) => /* @_
3172
3195
  ToastDescription.displayName = ToastPrimitives.Description.displayName;
3173
3196
 
3174
3197
  // src/components/ui/toaster.tsx
3175
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
3198
+ import { jsx as jsx6, jsxs } from "react/jsx-runtime";
3176
3199
  function Toaster() {
3177
3200
  const { toasts } = useToast();
3178
- return /* @__PURE__ */ jsx5(Portal, { container: portalRoot, children: /* @__PURE__ */ jsxs(ToastProvider, { children: [
3201
+ return /* @__PURE__ */ jsx6(Portal, { container: portalRoot, children: /* @__PURE__ */ jsxs(ToastProvider, { children: [
3179
3202
  toasts.map(({ id, title, description, action, ...props }) => /* @__PURE__ */ jsxs(Toast, { ...props, children: [
3180
3203
  /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
3181
- title && /* @__PURE__ */ jsx5(ToastTitle, { children: title }),
3182
- description && /* @__PURE__ */ jsx5(ToastDescription, { children: description })
3204
+ title && /* @__PURE__ */ jsx6(ToastTitle, { children: title }),
3205
+ description && /* @__PURE__ */ jsx6(ToastDescription, { children: description })
3183
3206
  ] }),
3184
3207
  action,
3185
- /* @__PURE__ */ jsx5(ToastClose, {})
3208
+ /* @__PURE__ */ jsx6(ToastClose, {})
3186
3209
  ] }, id)),
3187
- /* @__PURE__ */ jsx5(ToastViewport, {})
3210
+ /* @__PURE__ */ jsx6(ToastViewport, {})
3188
3211
  ] }) });
3189
3212
  }
3190
3213
 
3191
3214
  // src/components/databrowser/hooks/use-keys.tsx
3192
- import { createContext as createContext4, useContext as useContext4, useMemo as useMemo4 } from "react";
3215
+ import { createContext as createContext5, useContext as useContext5, useMemo as useMemo4 } from "react";
3193
3216
  import { useInfiniteQuery } from "@tanstack/react-query";
3194
3217
 
3195
3218
  // src/components/databrowser/hooks/use-fetch-key-type.ts
@@ -3207,8 +3230,8 @@ var useFetchKeyType = (key) => {
3207
3230
  };
3208
3231
 
3209
3232
  // src/components/databrowser/hooks/use-keys.tsx
3210
- import { jsx as jsx6 } from "react/jsx-runtime";
3211
- var KeysContext = createContext4(void 0);
3233
+ import { jsx as jsx7 } from "react/jsx-runtime";
3234
+ var KeysContext = createContext5(void 0);
3212
3235
  var FETCH_KEYS_QUERY_KEY = "use-fetch-keys";
3213
3236
  var SCAN_COUNTS = [100, 300, 500];
3214
3237
  var KeysProvider = ({ children }) => {
@@ -3281,7 +3304,7 @@ var KeysProvider = ({ children }) => {
3281
3304
  }
3282
3305
  return dedupedKeys;
3283
3306
  }, [query.data]);
3284
- return /* @__PURE__ */ jsx6(
3307
+ return /* @__PURE__ */ jsx7(
3285
3308
  KeysContext.Provider,
3286
3309
  {
3287
3310
  value: {
@@ -3293,7 +3316,7 @@ var KeysProvider = ({ children }) => {
3293
3316
  );
3294
3317
  };
3295
3318
  var useKeys = () => {
3296
- const context = useContext4(KeysContext);
3319
+ const context = useContext5(KeysContext);
3297
3320
  if (!context) {
3298
3321
  throw new Error("useKeys must be used within a KeysProvider");
3299
3322
  }
@@ -3312,19 +3335,19 @@ import { IconTrash as IconTrash2 } from "@tabler/icons-react";
3312
3335
  // src/components/ui/button.tsx
3313
3336
  import * as React3 from "react";
3314
3337
  import { Slot } from "@radix-ui/react-slot";
3315
- import { jsx as jsx7 } from "react/jsx-runtime";
3338
+ import { jsx as jsx8 } from "react/jsx-runtime";
3316
3339
  var buttonVariants = cva(
3317
- "inline-flex items-center justify-center rounded-md text-sm ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-zinc-950 dark:focus-visible:ring-zinc-300",
3340
+ "inline-flex items-center justify-center rounded-md text-sm ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-zinc-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
3318
3341
  {
3319
3342
  variants: {
3320
3343
  variant: {
3321
- default: "bg-white text-black border shadow-sm border-zinc-300 hover:bg-[#FFFFFF]/70 dark:bg-black dark:text-[#FFFFFF] dark:hover:bg-black/10",
3322
- destructive: "bg-red-500 text-zinc-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-zinc-50 dark:hover:bg-red-900/90",
3323
- outline: "border border-zinc-200 bg-white hover:bg-zinc-100 hover:text-zinc-900 dark:border-zinc-800 dark:bg-zinc-950 dark:hover:bg-zinc-800 dark:hover:text-neutral-50",
3324
- primary: "bg-emerald-500 text-white shadow-sm hover:bg-emerald-600 dark:bg-emerald-500 dark:text-white dark:hover:bg-emerald-600",
3325
- secondary: "bg-neutral-100 text-neutral-900 hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
3326
- ghost: "hover:bg-[#0000000A] dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
3327
- link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50"
3344
+ default: "bg-white text-black border shadow-sm border-zinc-300 hover:bg-white/70",
3345
+ destructive: "bg-red-500 text-zinc-50 hover:bg-red-500/90",
3346
+ outline: "border border-zinc-200 bg-white hover:bg-zinc-100 hover:text-zinc-900",
3347
+ primary: "bg-emerald-500 text-white shadow-sm hover:bg-emerald-600",
3348
+ secondary: "bg-zinc-100 text-zinc-900 hover:bg-zinc-100/80",
3349
+ ghost: "hover:bg-black/10",
3350
+ link: "text-zinc-900 underline-offset-4 hover:underline"
3328
3351
  },
3329
3352
  size: {
3330
3353
  default: "h-8 px-4 py-2",
@@ -3344,7 +3367,7 @@ var buttonVariants = cva(
3344
3367
  var Button = React3.forwardRef(
3345
3368
  ({ className, variant, size, asChild = false, ...props }, ref) => {
3346
3369
  const Comp = asChild ? Slot : "button";
3347
- return /* @__PURE__ */ jsx7(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
3370
+ return /* @__PURE__ */ jsx8(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
3348
3371
  }
3349
3372
  );
3350
3373
  Button.displayName = "Button";
@@ -3356,19 +3379,13 @@ import { useMutation } from "@tanstack/react-query";
3356
3379
  import { useQuery as useQuery2 } from "@tanstack/react-query";
3357
3380
 
3358
3381
  // src/components/ui/skeleton.tsx
3359
- import { jsx as jsx8 } from "react/jsx-runtime";
3382
+ import { jsx as jsx9 } from "react/jsx-runtime";
3360
3383
  function Skeleton({ className, ...props }) {
3361
- return /* @__PURE__ */ jsx8(
3362
- "div",
3363
- {
3364
- className: cn("animate-pulse rounded-md bg-zinc-900/10 dark:bg-zinc-50/10", className),
3365
- ...props
3366
- }
3367
- );
3384
+ return /* @__PURE__ */ jsx9("div", { className: cn("animate-pulse rounded-md bg-zinc-900/10", className), ...props });
3368
3385
  }
3369
3386
 
3370
3387
  // src/components/databrowser/components/sidebar/db-size.tsx
3371
- import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
3388
+ import { jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
3372
3389
  var FETCH_DB_SIZE_QUERY_KEY = "fetch-db-size";
3373
3390
  var DisplayDbSize = () => {
3374
3391
  const { redis } = useRedis();
@@ -3379,7 +3396,7 @@ var DisplayDbSize = () => {
3379
3396
  }
3380
3397
  });
3381
3398
  if (keyCount === void 0) {
3382
- return /* @__PURE__ */ jsx9("div", { className: "flex items-center justify-center gap-1", children: /* @__PURE__ */ jsx9(Skeleton, { className: "h-5 w-10 rounded" }) });
3399
+ return /* @__PURE__ */ jsx10("div", { className: "flex items-center justify-center gap-1", children: /* @__PURE__ */ jsx10(Skeleton, { className: "h-5 w-10 rounded" }) });
3383
3400
  }
3384
3401
  return /* @__PURE__ */ jsxs2("div", { className: "", children: [
3385
3402
  formatNumber(keyCount),
@@ -3791,7 +3808,7 @@ var useFetchKeySize = (dataKey) => {
3791
3808
  };
3792
3809
 
3793
3810
  // src/components/databrowser/components/display/header-badges.tsx
3794
- import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
3811
+ import { jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
3795
3812
  var LengthBadge = ({
3796
3813
  dataKey,
3797
3814
  type,
@@ -3799,18 +3816,18 @@ var LengthBadge = ({
3799
3816
  }) => {
3800
3817
  const { data, isLoading } = useFetchKeyLength({ dataKey, type });
3801
3818
  const length = content?.length ?? data;
3802
- return /* @__PURE__ */ jsx10(Badge, { label: "Length:", children: isLoading ? /* @__PURE__ */ jsx10(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : length });
3819
+ return /* @__PURE__ */ jsx11(Badge, { label: "Length:", children: isLoading ? /* @__PURE__ */ jsx11(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : length });
3803
3820
  };
3804
3821
  var SizeBadge = ({ dataKey }) => {
3805
3822
  const { data: size } = useFetchKeySize(dataKey);
3806
- return /* @__PURE__ */ jsx10(Badge, { label: "Size:", children: size === void 0 || size === null ? /* @__PURE__ */ jsx10(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : bytes(size, {
3823
+ return /* @__PURE__ */ jsx11(Badge, { label: "Size:", children: size === void 0 || size === null ? /* @__PURE__ */ jsx11(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : bytes(size, {
3807
3824
  unitSeparator: " "
3808
3825
  }) });
3809
3826
  };
3810
3827
  var HeaderTTLBadge = ({ dataKey }) => {
3811
3828
  const { data: expireAt } = useFetchTTL(dataKey);
3812
3829
  const { mutate: setTTL, isPending } = useSetTTL();
3813
- return /* @__PURE__ */ jsx10(
3830
+ return /* @__PURE__ */ jsx11(
3814
3831
  TTLBadge,
3815
3832
  {
3816
3833
  expireAt,
@@ -3820,8 +3837,8 @@ var HeaderTTLBadge = ({ dataKey }) => {
3820
3837
  );
3821
3838
  };
3822
3839
  var Badge = ({ children, label }) => /* @__PURE__ */ jsxs3("div", { className: "flex h-6 items-center gap-0.5 rounded-md bg-white px-2 text-xs text-zinc-700", children: [
3823
- /* @__PURE__ */ jsx10("span", { className: "text-zinc-500", children: label }),
3824
- /* @__PURE__ */ jsx10("span", { className: "font-medium", children })
3840
+ /* @__PURE__ */ jsx11("span", { className: "text-zinc-500", children: label }),
3841
+ /* @__PURE__ */ jsx11("span", { className: "font-medium", children })
3825
3842
  ] });
3826
3843
 
3827
3844
  // src/components/databrowser/components/display/ttl-popover.tsx
@@ -3830,15 +3847,15 @@ import { Controller, useForm } from "react-hook-form";
3830
3847
 
3831
3848
  // src/components/ui/input.tsx
3832
3849
  import * as React4 from "react";
3833
- import { jsx as jsx11 } from "react/jsx-runtime";
3850
+ import { jsx as jsx12 } from "react/jsx-runtime";
3834
3851
  var Input = React4.forwardRef(
3835
3852
  ({ className, type, ...props }, ref) => {
3836
- return /* @__PURE__ */ jsx11(
3853
+ return /* @__PURE__ */ jsx12(
3837
3854
  "input",
3838
3855
  {
3839
3856
  type,
3840
3857
  className: cn(
3841
- "flex h-8 w-full rounded-md border border-zinc-200 bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50",
3858
+ "flex h-8 w-full rounded-md border border-zinc-200 bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50",
3842
3859
  className
3843
3860
  ),
3844
3861
  ref,
@@ -3852,17 +3869,17 @@ Input.displayName = "Input";
3852
3869
  // src/components/ui/popover.tsx
3853
3870
  import * as React5 from "react";
3854
3871
  import * as PopoverPrimitive from "@radix-ui/react-popover";
3855
- import { jsx as jsx12 } from "react/jsx-runtime";
3872
+ import { jsx as jsx13 } from "react/jsx-runtime";
3856
3873
  var Popover = PopoverPrimitive.Root;
3857
3874
  var PopoverTrigger = PopoverPrimitive.Trigger;
3858
- var PopoverContent = React5.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx12(PopoverPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx12(
3875
+ var PopoverContent = React5.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx13(PopoverPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx13(
3859
3876
  PopoverPrimitive.Content,
3860
3877
  {
3861
3878
  ref,
3862
3879
  align,
3863
3880
  sideOffset,
3864
3881
  className: cn(
3865
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border border-zinc-200 bg-white p-4 text-zinc-950 shadow-md outline-none dark:border-zinc-800 mt-0.5 dark:bg-zinc-950 dark:text-zinc-50",
3882
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border border-zinc-200 bg-white p-4 text-zinc-950 shadow-md outline-none mt-0.5",
3866
3883
  className
3867
3884
  ),
3868
3885
  ...props
@@ -3873,7 +3890,7 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3873
3890
  // src/components/ui/select.tsx
3874
3891
  import * as React6 from "react";
3875
3892
  import * as SelectPrimitive from "@radix-ui/react-select";
3876
- import { jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
3893
+ import { jsx as jsx14, jsxs as jsxs4 } from "react/jsx-runtime";
3877
3894
  var Select = SelectPrimitive.Root;
3878
3895
  var SelectGroup = SelectPrimitive.Group;
3879
3896
  var SelectValue = SelectPrimitive.Value;
@@ -3882,13 +3899,13 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
3882
3899
  {
3883
3900
  ref,
3884
3901
  className: cn(
3885
- "relative flex h-8 w-full items-center justify-between rounded-md border border-zinc-200 bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-zinc-500 focus:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:ring-offset-zinc-950 dark:placeholder:text-zinc-400 dark:focus:ring-zinc-300",
3902
+ "relative flex h-8 w-full items-center justify-between rounded-md border border-zinc-200 bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-zinc-500 focus:ring-zinc-950 disabled:cursor-not-allowed disabled:opacity-50",
3886
3903
  className
3887
3904
  ),
3888
3905
  ...props,
3889
3906
  children: [
3890
3907
  children,
3891
- /* @__PURE__ */ jsx13(SelectPrimitive.Icon, { asChild: true, className: "absolute right-2", children: /* @__PURE__ */ jsx13(
3908
+ /* @__PURE__ */ jsx14(SelectPrimitive.Icon, { asChild: true, className: "absolute right-2", children: /* @__PURE__ */ jsx14(
3892
3909
  "svg",
3893
3910
  {
3894
3911
  width: "16",
@@ -3896,13 +3913,13 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
3896
3913
  viewBox: "0 0 16 16",
3897
3914
  fill: "none",
3898
3915
  xmlns: "http://www.w3.org/2000/svg",
3899
- children: /* @__PURE__ */ jsx13(
3916
+ children: /* @__PURE__ */ jsx14(
3900
3917
  "path",
3901
3918
  {
3902
3919
  d: "M4 6L8 10L12 6",
3903
- stroke: "black",
3920
+ stroke: "currentColor",
3904
3921
  strokeOpacity: "0.4",
3905
- strokeWidth: "1.4",
3922
+ strokeWidth: "1.2",
3906
3923
  strokeLinecap: "round",
3907
3924
  strokeLinejoin: "round"
3908
3925
  }
@@ -3913,18 +3930,18 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
3913
3930
  }
3914
3931
  ));
3915
3932
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3916
- var SelectContent = React6.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx13(SelectPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx13(
3933
+ var SelectContent = React6.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx14(SelectPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx14(
3917
3934
  SelectPrimitive.Content,
3918
3935
  {
3919
3936
  ref,
3920
3937
  className: cn(
3921
- "relative z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white text-zinc-950 shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-neutral-50",
3938
+ "relative z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white text-zinc-950 shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3922
3939
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
3923
3940
  className
3924
3941
  ),
3925
3942
  position,
3926
3943
  ...props,
3927
- children: /* @__PURE__ */ jsx13(
3944
+ children: /* @__PURE__ */ jsx14(
3928
3945
  SelectPrimitive.Viewport,
3929
3946
  {
3930
3947
  className: cn(
@@ -3937,7 +3954,7 @@ var SelectContent = React6.forwardRef(({ className, children, position = "popper
3937
3954
  }
3938
3955
  ) }));
3939
3956
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3940
- var SelectLabel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
3957
+ var SelectLabel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
3941
3958
  SelectPrimitive.Label,
3942
3959
  {
3943
3960
  ref,
@@ -3951,12 +3968,12 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
3951
3968
  {
3952
3969
  ref,
3953
3970
  className: cn(
3954
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
3971
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3955
3972
  className
3956
3973
  ),
3957
3974
  ...props,
3958
3975
  children: [
3959
- /* @__PURE__ */ jsx13("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx13(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(
3976
+ /* @__PURE__ */ jsx14("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(
3960
3977
  "svg",
3961
3978
  {
3962
3979
  width: "15",
@@ -3965,7 +3982,7 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
3965
3982
  fill: "none",
3966
3983
  xmlns: "http://www.w3.org/2000/svg",
3967
3984
  className: "h-4 w-4",
3968
- children: /* @__PURE__ */ jsx13(
3985
+ children: /* @__PURE__ */ jsx14(
3969
3986
  "path",
3970
3987
  {
3971
3988
  d: "M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",
@@ -3976,32 +3993,32 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
3976
3993
  )
3977
3994
  }
3978
3995
  ) }) }) }),
3979
- /* @__PURE__ */ jsx13(SelectPrimitive.ItemText, { children })
3996
+ /* @__PURE__ */ jsx14(SelectPrimitive.ItemText, { children })
3980
3997
  ]
3981
3998
  }
3982
3999
  ));
3983
4000
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3984
- var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
4001
+ var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
3985
4002
  SelectPrimitive.Separator,
3986
4003
  {
3987
4004
  ref,
3988
- className: cn("-mx-1 my-1 h-px bg-neutral-100 dark:bg-neutral-800", className),
4005
+ className: cn("-mx-1 my-1 h-px bg-zinc-100", className),
3989
4006
  ...props
3990
4007
  }
3991
4008
  ));
3992
4009
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3993
4010
 
3994
4011
  // src/components/ui/spinner.tsx
3995
- import { Fragment, jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
4012
+ import { Fragment, jsx as jsx15, jsxs as jsxs5 } from "react/jsx-runtime";
3996
4013
  var Spinner = ({
3997
4014
  isLoading,
3998
4015
  className,
3999
4016
  isLoadingText,
4000
4017
  children
4001
4018
  }) => {
4002
- return /* @__PURE__ */ jsx14("div", { className: className ?? "flex items-center", children: isLoading ? /* @__PURE__ */ jsxs5(Fragment, { children: [
4019
+ return /* @__PURE__ */ jsx15("div", { className: className ?? "flex items-center", children: isLoading ? /* @__PURE__ */ jsxs5(Fragment, { children: [
4003
4020
  isLoadingText,
4004
- /* @__PURE__ */ jsx14(
4021
+ /* @__PURE__ */ jsx15(
4005
4022
  "svg",
4006
4023
  {
4007
4024
  xmlns: "http://www.w3.org/2000/svg",
@@ -4010,18 +4027,18 @@ var Spinner = ({
4010
4027
  viewBox: "0 0 24 24",
4011
4028
  fill: "none",
4012
4029
  stroke: "currentColor",
4013
- strokeWidth: "2",
4030
+ strokeWidth: "1.2",
4014
4031
  strokeLinecap: "round",
4015
4032
  strokeLinejoin: "round",
4016
4033
  className: cn("h-4 w-4 animate-spin", isLoadingText ? "ml-2" : ""),
4017
- children: /* @__PURE__ */ jsx14("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
4034
+ children: /* @__PURE__ */ jsx15("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
4018
4035
  }
4019
4036
  )
4020
4037
  ] }) : children });
4021
4038
  };
4022
4039
 
4023
4040
  // src/components/databrowser/components/display/ttl-popover.tsx
4024
- import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
4041
+ import { jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
4025
4042
  var timeUnits = [
4026
4043
  { label: "Seconds", value: 1 },
4027
4044
  { label: "Minutes", value: 60 },
@@ -4063,8 +4080,8 @@ function TTLPopover({
4063
4080
  setOpen(isOpen);
4064
4081
  },
4065
4082
  children: [
4066
- /* @__PURE__ */ jsx15(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx15("button", { children }) }),
4067
- /* @__PURE__ */ jsx15(PopoverContent, { className: "w-[300px]", align: "end", children: /* @__PURE__ */ jsxs6(
4083
+ /* @__PURE__ */ jsx16(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx16("button", { children }) }),
4084
+ /* @__PURE__ */ jsx16(PopoverContent, { className: "w-[300px]", align: "end", children: /* @__PURE__ */ jsxs6(
4068
4085
  "form",
4069
4086
  {
4070
4087
  className: "space-y-4",
@@ -4073,10 +4090,10 @@ function TTLPopover({
4073
4090
  e.stopPropagation();
4074
4091
  },
4075
4092
  children: [
4076
- /* @__PURE__ */ jsx15("h4", { className: "font-medium leading-none", children: "Expiration" }),
4093
+ /* @__PURE__ */ jsx16("h4", { className: "font-medium leading-none", children: "Expiration" }),
4077
4094
  /* @__PURE__ */ jsxs6("div", { children: [
4078
4095
  /* @__PURE__ */ jsxs6("div", { className: "flex items-center", children: [
4079
- /* @__PURE__ */ jsx15(
4096
+ /* @__PURE__ */ jsx16(
4080
4097
  Controller,
4081
4098
  {
4082
4099
  rules: {
@@ -4085,26 +4102,26 @@ function TTLPopover({
4085
4102
  },
4086
4103
  control,
4087
4104
  name: "value",
4088
- render: ({ field }) => /* @__PURE__ */ jsx15(Input, { min: "-1", ...field, className: "grow rounded-r-none" })
4105
+ render: ({ field }) => /* @__PURE__ */ jsx16(Input, { min: "-1", ...field, className: "grow rounded-r-none" })
4089
4106
  }
4090
4107
  ),
4091
- /* @__PURE__ */ jsx15(
4108
+ /* @__PURE__ */ jsx16(
4092
4109
  Controller,
4093
4110
  {
4094
4111
  control,
4095
4112
  name: "type",
4096
4113
  render: ({ field }) => /* @__PURE__ */ jsxs6(Select, { value: field.value, onValueChange: field.onChange, children: [
4097
- /* @__PURE__ */ jsx15(SelectTrigger, { className: "w-auto rounded-l-none border-l-0 pr-8", children: /* @__PURE__ */ jsx15(SelectValue, {}) }),
4098
- /* @__PURE__ */ jsx15(SelectContent, { children: timeUnits.map((unit) => /* @__PURE__ */ jsx15(SelectItem, { value: unit.label, children: unit.label }, unit.label)) })
4114
+ /* @__PURE__ */ jsx16(SelectTrigger, { className: "w-auto rounded-l-none border-l-0 pr-8", children: /* @__PURE__ */ jsx16(SelectValue, {}) }),
4115
+ /* @__PURE__ */ jsx16(SelectContent, { children: timeUnits.map((unit) => /* @__PURE__ */ jsx16(SelectItem, { value: unit.label, children: unit.label }, unit.label)) })
4099
4116
  ] })
4100
4117
  }
4101
4118
  )
4102
4119
  ] }),
4103
- formState.errors.value && /* @__PURE__ */ jsx15("p", { className: "mt-2 text-xs text-red-500", children: formState.errors.value.message }),
4104
- /* @__PURE__ */ jsx15("p", { className: "mt-2 text-xs text-zinc-500", children: "TTL sets a timer to automatically delete keys after a defined period." })
4120
+ formState.errors.value && /* @__PURE__ */ jsx16("p", { className: "mt-2 text-xs text-red-500", children: formState.errors.value.message }),
4121
+ /* @__PURE__ */ jsx16("p", { className: "mt-2 text-xs text-zinc-500", children: "TTL sets a timer to automatically delete keys after a defined period." })
4105
4122
  ] }),
4106
4123
  /* @__PURE__ */ jsxs6("div", { className: "flex justify-between", children: [
4107
- /* @__PURE__ */ jsx15(
4124
+ /* @__PURE__ */ jsx16(
4108
4125
  Button,
4109
4126
  {
4110
4127
  type: "button",
@@ -4115,8 +4132,8 @@ function TTLPopover({
4115
4132
  }
4116
4133
  ),
4117
4134
  /* @__PURE__ */ jsxs6("div", { className: "flex gap-2", children: [
4118
- /* @__PURE__ */ jsx15(Button, { variant: "outline", onClick: () => setOpen(false), type: "button", children: "Cancel" }),
4119
- /* @__PURE__ */ jsx15(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx15(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" }) })
4135
+ /* @__PURE__ */ jsx16(Button, { variant: "outline", onClick: () => setOpen(false), type: "button", children: "Cancel" }),
4136
+ /* @__PURE__ */ jsx16(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx16(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" }) })
4120
4137
  ] })
4121
4138
  ] })
4122
4139
  ]
@@ -4128,7 +4145,7 @@ function TTLPopover({
4128
4145
  }
4129
4146
 
4130
4147
  // src/components/databrowser/components/display/ttl-badge.tsx
4131
- import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
4148
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
4132
4149
  var TTL_INFINITE = -1;
4133
4150
  var TTL_NOT_FOUND = -2;
4134
4151
  var calculateTTL = (expireAt) => {
@@ -4150,9 +4167,9 @@ var TTLBadge = ({
4150
4167
  }, 1e3);
4151
4168
  return () => clearInterval(interval);
4152
4169
  }, [expireAt]);
4153
- return /* @__PURE__ */ jsx16(Badge, { label, children: ttl === void 0 ? /* @__PURE__ */ jsx16(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : /* @__PURE__ */ jsx16(TTLPopover, { ttl, setTTL, isPending, children: /* @__PURE__ */ jsxs7("div", { className: "flex gap-[2px]", children: [
4170
+ return /* @__PURE__ */ jsx17(Badge, { label, children: ttl === void 0 ? /* @__PURE__ */ jsx17(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : /* @__PURE__ */ jsx17(TTLPopover, { ttl, setTTL, isPending, children: /* @__PURE__ */ jsxs7("div", { className: "flex gap-[2px]", children: [
4154
4171
  ttl === TTL_INFINITE ? "Forever" : formatTime(ttl),
4155
- /* @__PURE__ */ jsx16(IconChevronDown, { className: "mt-[1px] text-zinc-400", size: 12 })
4172
+ /* @__PURE__ */ jsx17(IconChevronDown, { className: "mt-[1px] text-zinc-400", size: 12 })
4156
4173
  ] }) }) });
4157
4174
  };
4158
4175
 
@@ -4229,7 +4246,7 @@ import { ContextMenuSeparator as ContextMenuSeparator2 } from "@radix-ui/react-c
4229
4246
  import * as React7 from "react";
4230
4247
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
4231
4248
  import { CheckIcon, ChevronRightIcon, DotFilledIcon } from "@radix-ui/react-icons";
4232
- import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
4249
+ import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
4233
4250
  var ContextMenu = ContextMenuPrimitive.Root;
4234
4251
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
4235
4252
  var ContextMenuSubTrigger = React7.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
@@ -4237,48 +4254,48 @@ var ContextMenuSubTrigger = React7.forwardRef(({ className, inset, children, ...
4237
4254
  {
4238
4255
  ref,
4239
4256
  className: cn(
4240
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
4257
+ "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-900",
4241
4258
  inset && "pl-8",
4242
4259
  className
4243
4260
  ),
4244
4261
  ...props,
4245
4262
  children: [
4246
4263
  children,
4247
- /* @__PURE__ */ jsx17(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
4264
+ /* @__PURE__ */ jsx18(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
4248
4265
  ]
4249
4266
  }
4250
4267
  ));
4251
4268
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
4252
- var ContextMenuSubContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
4269
+ var ContextMenuSubContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4253
4270
  ContextMenuPrimitive.SubContent,
4254
4271
  {
4255
4272
  ref,
4256
4273
  className: cn(
4257
- "z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
4274
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4258
4275
  className
4259
4276
  ),
4260
4277
  ...props
4261
4278
  }
4262
4279
  ));
4263
4280
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
4264
- var ContextMenuContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(ContextMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx17(
4281
+ var ContextMenuContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(ContextMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx18(
4265
4282
  ContextMenuPrimitive.Content,
4266
4283
  {
4267
4284
  ref,
4268
4285
  className: cn(
4269
- "z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
4286
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4270
4287
  className
4271
4288
  ),
4272
4289
  ...props
4273
4290
  }
4274
4291
  ) }));
4275
4292
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
4276
- var ContextMenuItem = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx17(
4293
+ var ContextMenuItem = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
4277
4294
  ContextMenuPrimitive.Item,
4278
4295
  {
4279
4296
  ref,
4280
4297
  className: cn(
4281
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
4298
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4282
4299
  inset && "pl-8",
4283
4300
  className
4284
4301
  ),
@@ -4291,13 +4308,13 @@ var ContextMenuCheckboxItem = React7.forwardRef(({ className, children, checked,
4291
4308
  {
4292
4309
  ref,
4293
4310
  className: cn(
4294
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
4311
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4295
4312
  className
4296
4313
  ),
4297
4314
  checked,
4298
4315
  ...props,
4299
4316
  children: [
4300
- /* @__PURE__ */ jsx17("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(CheckIcon, { className: "h-4 w-4" }) }) }),
4317
+ /* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(CheckIcon, { className: "h-4 w-4" }) }) }),
4301
4318
  children
4302
4319
  ]
4303
4320
  }
@@ -4308,66 +4325,53 @@ var ContextMenuRadioItem = React7.forwardRef(({ className, children, ...props },
4308
4325
  {
4309
4326
  ref,
4310
4327
  className: cn(
4311
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
4328
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4312
4329
  className
4313
4330
  ),
4314
4331
  ...props,
4315
4332
  children: [
4316
- /* @__PURE__ */ jsx17("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
4333
+ /* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
4317
4334
  children
4318
4335
  ]
4319
4336
  }
4320
4337
  ));
4321
4338
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
4322
- var ContextMenuLabel = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx17(
4339
+ var ContextMenuLabel = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
4323
4340
  ContextMenuPrimitive.Label,
4324
4341
  {
4325
4342
  ref,
4326
- className: cn(
4327
- "px-2 py-1.5 text-sm font-semibold text-neutral-950 dark:text-neutral-50",
4328
- inset && "pl-8",
4329
- className
4330
- ),
4343
+ className: cn("px-2 py-1.5 text-sm font-semibold text-zinc-950", inset && "pl-8", className),
4331
4344
  ...props
4332
4345
  }
4333
4346
  ));
4334
4347
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
4335
- var ContextMenuSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
4348
+ var ContextMenuSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4336
4349
  ContextMenuPrimitive.Separator,
4337
4350
  {
4338
4351
  ref,
4339
- className: cn("-mx-1 my-1 h-px bg-neutral-200 dark:bg-neutral-800", className),
4352
+ className: cn("-mx-1 my-1 h-px bg-zinc-200", className),
4340
4353
  ...props
4341
4354
  }
4342
4355
  ));
4343
4356
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
4344
4357
  var ContextMenuShortcut = ({ className, ...props }) => {
4345
- return /* @__PURE__ */ jsx17(
4346
- "span",
4347
- {
4348
- className: cn(
4349
- "ml-auto text-xs tracking-widest text-neutral-500 dark:text-neutral-400",
4350
- className
4351
- ),
4352
- ...props
4353
- }
4354
- );
4358
+ return /* @__PURE__ */ jsx18("span", { className: cn("ml-auto text-xs tracking-widest text-zinc-500", className), ...props });
4355
4359
  };
4356
4360
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
4357
4361
 
4358
4362
  // src/components/ui/alert-dialog.tsx
4359
4363
  import * as React8 from "react";
4360
4364
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
4361
- import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
4365
+ import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
4362
4366
  var AlertDialog = AlertDialogPrimitive.Root;
4363
4367
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
4364
- var AlertDialogPortal = ({ ...props }) => /* @__PURE__ */ jsx18(AlertDialogPrimitive.Portal, { container: portalRoot, ...props });
4368
+ var AlertDialogPortal = ({ ...props }) => /* @__PURE__ */ jsx19(AlertDialogPrimitive.Portal, { container: portalRoot, ...props });
4365
4369
  AlertDialogPortal.displayName = AlertDialogPrimitive.Portal.displayName;
4366
- var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4370
+ var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4367
4371
  AlertDialogPrimitive.Overlay,
4368
4372
  {
4369
4373
  className: cn(
4370
- "fixed inset-0 z-50 bg-white/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 dark:bg-zinc-950/80",
4374
+ "fixed inset-0 z-50 bg-white/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
4371
4375
  className
4372
4376
  ),
4373
4377
  ...props,
@@ -4376,13 +4380,13 @@ var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /*
4376
4380
  ));
4377
4381
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
4378
4382
  var AlertDialogContent = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(AlertDialogPortal, { children: [
4379
- /* @__PURE__ */ jsx18(AlertDialogOverlay, {}),
4380
- /* @__PURE__ */ jsx18(
4383
+ /* @__PURE__ */ jsx19(AlertDialogOverlay, {}),
4384
+ /* @__PURE__ */ jsx19(
4381
4385
  AlertDialogPrimitive.Content,
4382
4386
  {
4383
4387
  ref,
4384
4388
  className: cn(
4385
- "antialiased data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-zinc-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] dark:border-zinc-800 dark:bg-zinc-950 sm:rounded-lg md:w-full",
4389
+ "antialiased data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:slide-in-from-top-[48%]sm:rounded-lg fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-zinc-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 md:w-full",
4386
4390
  className
4387
4391
  ),
4388
4392
  ...props
@@ -4390,9 +4394,9 @@ var AlertDialogContent = React8.forwardRef(({ className, ...props }, ref) => /*
4390
4394
  )
4391
4395
  ] }));
4392
4396
  AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
4393
- var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx18("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
4397
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx19("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
4394
4398
  AlertDialogHeader.displayName = "AlertDialogHeader";
4395
- var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx18(
4399
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx19(
4396
4400
  "div",
4397
4401
  {
4398
4402
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -4400,7 +4404,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx18(
4400
4404
  }
4401
4405
  );
4402
4406
  AlertDialogFooter.displayName = "AlertDialogFooter";
4403
- var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4407
+ var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4404
4408
  AlertDialogPrimitive.Title,
4405
4409
  {
4406
4410
  ref,
@@ -4409,18 +4413,18 @@ var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @_
4409
4413
  }
4410
4414
  ));
4411
4415
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
4412
- var AlertDialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4416
+ var AlertDialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4413
4417
  AlertDialogPrimitive.Description,
4414
4418
  {
4415
4419
  ref,
4416
- className: cn("text-sm text-zinc-500 dark:text-zinc-400", className),
4420
+ className: cn("text-sm text-zinc-500", className),
4417
4421
  ...props
4418
4422
  }
4419
4423
  ));
4420
4424
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
4421
- var AlertDialogAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
4425
+ var AlertDialogAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
4422
4426
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
4423
- var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4427
+ var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4424
4428
  AlertDialogPrimitive.Cancel,
4425
4429
  {
4426
4430
  ref,
@@ -4431,7 +4435,7 @@ var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @
4431
4435
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
4432
4436
 
4433
4437
  // src/components/databrowser/components/display/delete-alert-dialog.tsx
4434
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
4438
+ import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
4435
4439
  function DeleteAlertDialog({
4436
4440
  children,
4437
4441
  onDeleteConfirm,
@@ -4440,24 +4444,24 @@ function DeleteAlertDialog({
4440
4444
  deletionType
4441
4445
  }) {
4442
4446
  return /* @__PURE__ */ jsxs10(AlertDialog, { open, onOpenChange, children: [
4443
- children && /* @__PURE__ */ jsx19(AlertDialogTrigger, { asChild: true, children }),
4447
+ children && /* @__PURE__ */ jsx20(AlertDialogTrigger, { asChild: true, children }),
4444
4448
  /* @__PURE__ */ jsxs10(AlertDialogContent, { children: [
4445
4449
  /* @__PURE__ */ jsxs10(AlertDialogHeader, { children: [
4446
- /* @__PURE__ */ jsx19(AlertDialogTitle, { children: deletionType === "item" ? "Delete Item" : "Delete Key" }),
4450
+ /* @__PURE__ */ jsx20(AlertDialogTitle, { children: deletionType === "item" ? "Delete Item" : "Delete Key" }),
4447
4451
  /* @__PURE__ */ jsxs10(AlertDialogDescription, { className: "mt-5", children: [
4448
4452
  "Are you sure you want to delete this ",
4449
4453
  deletionType,
4450
4454
  "?",
4451
- /* @__PURE__ */ jsx19("br", {}),
4455
+ /* @__PURE__ */ jsx20("br", {}),
4452
4456
  "This action cannot be undone."
4453
4457
  ] })
4454
4458
  ] }),
4455
4459
  /* @__PURE__ */ jsxs10(AlertDialogFooter, { children: [
4456
- /* @__PURE__ */ jsx19(AlertDialogCancel, { type: "button", children: "Cancel" }),
4457
- /* @__PURE__ */ jsx19(
4460
+ /* @__PURE__ */ jsx20(AlertDialogCancel, { type: "button", children: "Cancel" }),
4461
+ /* @__PURE__ */ jsx20(
4458
4462
  AlertDialogAction,
4459
4463
  {
4460
- className: "bg-red-500 text-gray-50 hover:bg-red-600",
4464
+ className: "bg-red-500 text-zinc-50 hover:bg-red-600",
4461
4465
  onClick: onDeleteConfirm,
4462
4466
  children: "Yes, Delete"
4463
4467
  }
@@ -4468,7 +4472,7 @@ function DeleteAlertDialog({
4468
4472
  }
4469
4473
 
4470
4474
  // src/components/databrowser/components/item-context-menu.tsx
4471
- import { Fragment as Fragment2, jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
4475
+ import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
4472
4476
  var ItemContextMenu = ({
4473
4477
  children,
4474
4478
  dataKey,
@@ -4479,7 +4483,7 @@ var ItemContextMenu = ({
4479
4483
  const [data, setData] = useState5();
4480
4484
  const { addTab, setSelectedKey, selectTab, setSelectedListItem } = useDatabrowserStore();
4481
4485
  return /* @__PURE__ */ jsxs11(Fragment2, { children: [
4482
- /* @__PURE__ */ jsx20(
4486
+ /* @__PURE__ */ jsx21(
4483
4487
  DeleteAlertDialog,
4484
4488
  {
4485
4489
  deletionType: "item",
@@ -4501,7 +4505,7 @@ var ItemContextMenu = ({
4501
4505
  }
4502
4506
  ),
4503
4507
  /* @__PURE__ */ jsxs11(ContextMenu, { modal: false, children: [
4504
- /* @__PURE__ */ jsx20(
4508
+ /* @__PURE__ */ jsx21(
4505
4509
  ContextMenuTrigger,
4506
4510
  {
4507
4511
  asChild: true,
@@ -4533,7 +4537,7 @@ var ItemContextMenu = ({
4533
4537
  },
4534
4538
  className: "gap-2",
4535
4539
  children: [
4536
- /* @__PURE__ */ jsx20(IconCopy, { size: 16 }),
4540
+ /* @__PURE__ */ jsx21(IconCopy, { size: 16 }),
4537
4541
  "Copy key"
4538
4542
  ]
4539
4543
  }
@@ -4549,7 +4553,7 @@ var ItemContextMenu = ({
4549
4553
  },
4550
4554
  className: "gap-2",
4551
4555
  children: [
4552
- /* @__PURE__ */ jsx20(IconCopy, { size: 16 }),
4556
+ /* @__PURE__ */ jsx21(IconCopy, { size: 16 }),
4553
4557
  "Copy value"
4554
4558
  ]
4555
4559
  }
@@ -4568,12 +4572,12 @@ var ItemContextMenu = ({
4568
4572
  },
4569
4573
  className: "gap-2",
4570
4574
  children: [
4571
- /* @__PURE__ */ jsx20(IconExternalLink, { size: 16 }),
4575
+ /* @__PURE__ */ jsx21(IconExternalLink, { size: 16 }),
4572
4576
  "Open in new tab"
4573
4577
  ]
4574
4578
  }
4575
4579
  ),
4576
- /* @__PURE__ */ jsx20(ContextMenuSeparator2, {}),
4580
+ /* @__PURE__ */ jsx21(ContextMenuSeparator2, {}),
4577
4581
  /* @__PURE__ */ jsxs11(
4578
4582
  ContextMenuItem,
4579
4583
  {
@@ -4581,7 +4585,7 @@ var ItemContextMenu = ({
4581
4585
  onClick: () => setAlertOpen(true),
4582
4586
  className: "gap-2",
4583
4587
  children: [
4584
- /* @__PURE__ */ jsx20(IconTrash, { size: 16 }),
4588
+ /* @__PURE__ */ jsx21(IconTrash, { size: 16 }),
4585
4589
  "Delete item"
4586
4590
  ]
4587
4591
  }
@@ -4598,7 +4602,7 @@ import { useEffect as useEffect6, useRef } from "react";
4598
4602
  // src/components/ui/scroll-area.tsx
4599
4603
  import * as React9 from "react";
4600
4604
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4601
- import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
4605
+ import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
4602
4606
  var ScrollArea = React9.forwardRef(({ className, children, onScroll, disableRoundedInherit = false, ...props }, ref) => /* @__PURE__ */ jsxs12(
4603
4607
  ScrollAreaPrimitive.Root,
4604
4608
  {
@@ -4606,7 +4610,7 @@ var ScrollArea = React9.forwardRef(({ className, children, onScroll, disableRoun
4606
4610
  className: cn("relative overflow-hidden", className),
4607
4611
  ...props,
4608
4612
  children: [
4609
- /* @__PURE__ */ jsx21(
4613
+ /* @__PURE__ */ jsx22(
4610
4614
  ScrollAreaPrimitive.Viewport,
4611
4615
  {
4612
4616
  onScroll,
@@ -4614,23 +4618,23 @@ var ScrollArea = React9.forwardRef(({ className, children, onScroll, disableRoun
4614
4618
  children
4615
4619
  }
4616
4620
  ),
4617
- /* @__PURE__ */ jsx21(ScrollBar, {}),
4618
- /* @__PURE__ */ jsx21(ScrollAreaPrimitive.Corner, {})
4621
+ /* @__PURE__ */ jsx22(ScrollBar, {}),
4622
+ /* @__PURE__ */ jsx22(ScrollAreaPrimitive.Corner, {})
4619
4623
  ]
4620
4624
  }
4621
4625
  ));
4622
4626
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
4623
- var ScrollBar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
4627
+ var ScrollBar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
4624
4628
  ScrollAreaPrimitive.ScrollAreaScrollbar,
4625
4629
  {
4626
4630
  ref,
4627
4631
  orientation: "vertical",
4628
4632
  className: cn("flex h-full w-2 touch-none select-none transition-colors", className),
4629
4633
  ...props,
4630
- children: /* @__PURE__ */ jsx21(
4634
+ children: /* @__PURE__ */ jsx22(
4631
4635
  ScrollAreaPrimitive.ScrollAreaThumb,
4632
4636
  {
4633
- className: cn("relative flex-1 rounded-full bg-neutral-200/70 dark:bg-neutral-800")
4637
+ className: cn("relative flex-1 rounded-full bg-zinc-200/70")
4634
4638
  }
4635
4639
  )
4636
4640
  }
@@ -4638,7 +4642,7 @@ var ScrollBar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__
4638
4642
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
4639
4643
 
4640
4644
  // src/components/databrowser/components/sidebar/infinite-scroll.tsx
4641
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
4645
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
4642
4646
  var InfiniteScroll = ({
4643
4647
  query,
4644
4648
  children,
@@ -4670,7 +4674,7 @@ var InfiniteScroll = ({
4670
4674
  const timer = setTimeout(checkAndFetchMore, 100);
4671
4675
  return () => clearTimeout(timer);
4672
4676
  }, [active, query.data]);
4673
- return /* @__PURE__ */ jsx22(
4677
+ return /* @__PURE__ */ jsx23(
4674
4678
  ScrollArea,
4675
4679
  {
4676
4680
  type: "always",
@@ -4683,7 +4687,7 @@ var InfiniteScroll = ({
4683
4687
  ref: scrollRef,
4684
4688
  children: /* @__PURE__ */ jsxs13("div", { ref: contentRef, children: [
4685
4689
  children,
4686
- /* @__PURE__ */ jsx22("div", { className: "flex h-[100px] justify-center py-2 text-zinc-300", children: query.isFetching && /* @__PURE__ */ jsx22(IconLoader2, { className: "animate-spin", size: 16 }) })
4690
+ /* @__PURE__ */ jsx23("div", { className: "flex h-[100px] justify-center py-2 text-zinc-300", children: query.isFetching && /* @__PURE__ */ jsx23(IconLoader2, { className: "animate-spin", size: 16 }) })
4687
4691
  ] })
4688
4692
  }
4689
4693
  );
@@ -4713,15 +4717,15 @@ import {
4713
4717
  IconList,
4714
4718
  IconQuote
4715
4719
  } from "@tabler/icons-react";
4716
- import { jsx as jsx23 } from "react/jsx-runtime";
4720
+ import { jsx as jsx24 } from "react/jsx-runtime";
4717
4721
  var iconsMap = {
4718
- string: /* @__PURE__ */ jsx23(IconQuote, { size: 15, stroke: 1.3 }),
4719
- set: /* @__PURE__ */ jsx23(IconLayersIntersect, { size: 15, stroke: 1.3 }),
4720
- hash: /* @__PURE__ */ jsx23(IconHash, { size: 15, stroke: 1.3 }),
4721
- json: /* @__PURE__ */ jsx23(IconCodeDots, { size: 15, stroke: 1.3 }),
4722
- zset: /* @__PURE__ */ jsx23(IconArrowsSort, { size: 15, stroke: 1.3 }),
4723
- list: /* @__PURE__ */ jsx23(IconList, { size: 15, stroke: 1.3 }),
4724
- stream: /* @__PURE__ */ jsx23(IconList, { size: 15, stroke: 1.3 })
4722
+ string: /* @__PURE__ */ jsx24(IconQuote, { size: 15, stroke: 1.2 }),
4723
+ set: /* @__PURE__ */ jsx24(IconLayersIntersect, { size: 15, stroke: 1.2 }),
4724
+ hash: /* @__PURE__ */ jsx24(IconHash, { size: 15, stroke: 1.2 }),
4725
+ json: /* @__PURE__ */ jsx24(IconCodeDots, { size: 15, stroke: 1.2 }),
4726
+ zset: /* @__PURE__ */ jsx24(IconArrowsSort, { size: 15, stroke: 1.2 }),
4727
+ list: /* @__PURE__ */ jsx24(IconList, { size: 15, stroke: 1.2 }),
4728
+ stream: /* @__PURE__ */ jsx24(IconList, { size: 15, stroke: 1.2 })
4725
4729
  };
4726
4730
  var tagVariants = cva("inline-flex shrink-0 items-center rounded-md justify-center", {
4727
4731
  variants: {
@@ -4745,7 +4749,7 @@ var tagVariants = cva("inline-flex shrink-0 items-center rounded-md justify-cent
4745
4749
  }
4746
4750
  });
4747
4751
  function TypeTag({ className, variant, type }) {
4748
- return /* @__PURE__ */ jsx23("span", { className: cn(tagVariants({ variant, type, className })), children: type === "icon" ? iconsMap[variant] : DATA_TYPE_NAMES[variant] });
4752
+ return /* @__PURE__ */ jsx24("span", { className: cn(tagVariants({ variant, type, className })), children: type === "icon" ? iconsMap[variant] : DATA_TYPE_NAMES[variant] });
4749
4753
  }
4750
4754
 
4751
4755
  // src/components/databrowser/components/display/key-actions.tsx
@@ -4755,7 +4759,7 @@ import { IconDotsVertical } from "@tabler/icons-react";
4755
4759
  import * as React10 from "react";
4756
4760
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
4757
4761
  import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2, DotFilledIcon as DotFilledIcon2 } from "@radix-ui/react-icons";
4758
- import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
4762
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
4759
4763
  var DropdownMenu = DropdownMenuPrimitive.Root;
4760
4764
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
4761
4765
  var DropdownMenuSubTrigger = React10.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
@@ -4763,37 +4767,37 @@ var DropdownMenuSubTrigger = React10.forwardRef(({ className, inset, children, .
4763
4767
  {
4764
4768
  ref,
4765
4769
  className: cn(
4766
- "flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-neutral-100 data-[state=open]:bg-neutral-100 dark:focus:bg-neutral-800 dark:data-[state=open]:bg-neutral-800 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
4770
+ "data-[state=open]:bg-zinc-100[&_svg]:pointer-events-none flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 [&_svg]:size-4 [&_svg]:shrink-0",
4767
4771
  inset && "pl-8",
4768
4772
  className
4769
4773
  ),
4770
4774
  ...props,
4771
4775
  children: [
4772
4776
  children,
4773
- /* @__PURE__ */ jsx24(ChevronRightIcon2, { className: "ml-auto" })
4777
+ /* @__PURE__ */ jsx25(ChevronRightIcon2, { className: "ml-auto" })
4774
4778
  ]
4775
4779
  }
4776
4780
  ));
4777
4781
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
4778
- var DropdownMenuSubContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
4782
+ var DropdownMenuSubContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
4779
4783
  DropdownMenuPrimitive.SubContent,
4780
4784
  {
4781
4785
  ref,
4782
4786
  className: cn(
4783
- "z-50 min-w-[8rem] origin-[--radix-dropdown-menu-content-transform-origin] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
4787
+ "z-50 min-w-[8rem] origin-[--radix-dropdown-menu-content-transform-origin] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4784
4788
  className
4785
4789
  ),
4786
4790
  ...props
4787
4791
  }
4788
4792
  ));
4789
4793
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
4790
- var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx24(
4794
+ var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx25(
4791
4795
  DropdownMenuPrimitive.Content,
4792
4796
  {
4793
4797
  ref,
4794
4798
  sideOffset,
4795
4799
  className: cn(
4796
- "z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-md dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
4800
+ "z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-md",
4797
4801
  "origin-[--radix-dropdown-menu-content-transform-origin] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4798
4802
  className
4799
4803
  ),
@@ -4801,12 +4805,12 @@ var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...pr
4801
4805
  }
4802
4806
  ) }));
4803
4807
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
4804
- var DropdownMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
4808
+ var DropdownMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
4805
4809
  DropdownMenuPrimitive.Item,
4806
4810
  {
4807
4811
  ref,
4808
4812
  className: cn(
4809
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 [&>svg]:size-4 [&>svg]:shrink-0",
4813
+ "data-[disabled]:opacity-50[&>svg]:size-4 relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none [&>svg]:shrink-0",
4810
4814
  inset && "pl-8",
4811
4815
  className
4812
4816
  ),
@@ -4819,13 +4823,13 @@ var DropdownMenuCheckboxItem = React10.forwardRef(({ className, children, checke
4819
4823
  {
4820
4824
  ref,
4821
4825
  className: cn(
4822
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
4826
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4823
4827
  className
4824
4828
  ),
4825
4829
  checked,
4826
4830
  ...props,
4827
4831
  children: [
4828
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon2, { className: "h-4 w-4" }) }) }),
4832
+ /* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CheckIcon2, { className: "h-4 w-4" }) }) }),
4829
4833
  children
4830
4834
  ]
4831
4835
  }
@@ -4836,18 +4840,18 @@ var DropdownMenuRadioItem = React10.forwardRef(({ className, children, ...props
4836
4840
  {
4837
4841
  ref,
4838
4842
  className: cn(
4839
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
4843
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4840
4844
  className
4841
4845
  ),
4842
4846
  ...props,
4843
4847
  children: [
4844
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(DotFilledIcon2, { className: "h-2 w-2 fill-current" }) }) }),
4848
+ /* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(DotFilledIcon2, { className: "h-2 w-2 fill-current" }) }) }),
4845
4849
  children
4846
4850
  ]
4847
4851
  }
4848
4852
  ));
4849
4853
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
4850
- var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
4854
+ var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
4851
4855
  DropdownMenuPrimitive.Label,
4852
4856
  {
4853
4857
  ref,
@@ -4856,28 +4860,28 @@ var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref)
4856
4860
  }
4857
4861
  ));
4858
4862
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
4859
- var DropdownMenuSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
4863
+ var DropdownMenuSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
4860
4864
  DropdownMenuPrimitive.Separator,
4861
4865
  {
4862
4866
  ref,
4863
- className: cn("-mx-1 my-1 h-px bg-neutral-100 dark:bg-neutral-800", className),
4867
+ className: cn("-mx-1 my-1 h-px bg-zinc-100", className),
4864
4868
  ...props
4865
4869
  }
4866
4870
  ));
4867
4871
  DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
4868
4872
  var DropdownMenuShortcut = ({ className, ...props }) => {
4869
- return /* @__PURE__ */ jsx24("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
4873
+ return /* @__PURE__ */ jsx25("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
4870
4874
  };
4871
4875
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
4872
4876
 
4873
4877
  // src/components/databrowser/components/display/key-actions.tsx
4874
- import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
4878
+ import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
4875
4879
  function KeyActions({ dataKey, content }) {
4876
4880
  const { mutateAsync: deleteKey } = useDeleteKey();
4877
4881
  return /* @__PURE__ */ jsxs15(DropdownMenu, { modal: false, children: [
4878
- /* @__PURE__ */ jsx25(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx25(Button, { size: "icon-sm", "aria-label": "Key actions", children: /* @__PURE__ */ jsx25(IconDotsVertical, { className: "size-4 text-zinc-500" }) }) }),
4882
+ /* @__PURE__ */ jsx26(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx26(Button, { size: "icon-sm", "aria-label": "Key actions", children: /* @__PURE__ */ jsx26(IconDotsVertical, { className: "size-4 text-zinc-500" }) }) }),
4879
4883
  /* @__PURE__ */ jsxs15(DropdownMenuContent, { className: "", align: "end", children: [
4880
- content && /* @__PURE__ */ jsx25(
4884
+ content && /* @__PURE__ */ jsx26(
4881
4885
  DropdownMenuItem,
4882
4886
  {
4883
4887
  onClick: () => {
@@ -4889,7 +4893,7 @@ function KeyActions({ dataKey, content }) {
4889
4893
  children: "Copy content"
4890
4894
  }
4891
4895
  ),
4892
- /* @__PURE__ */ jsx25(
4896
+ /* @__PURE__ */ jsx26(
4893
4897
  DropdownMenuItem,
4894
4898
  {
4895
4899
  onClick: () => {
@@ -4898,12 +4902,12 @@ function KeyActions({ dataKey, content }) {
4898
4902
  children: "Copy key"
4899
4903
  }
4900
4904
  ),
4901
- /* @__PURE__ */ jsx25(
4905
+ /* @__PURE__ */ jsx26(
4902
4906
  DeleteAlertDialog,
4903
4907
  {
4904
4908
  deletionType: "key",
4905
4909
  onDeleteConfirm: async () => await deleteKey(dataKey),
4906
- children: /* @__PURE__ */ jsx25(
4910
+ children: /* @__PURE__ */ jsx26(
4907
4911
  DropdownMenuItem,
4908
4912
  {
4909
4913
  className: "text-red-500 focus:bg-red-500 focus:text-white",
@@ -4918,7 +4922,7 @@ function KeyActions({ dataKey, content }) {
4918
4922
  }
4919
4923
 
4920
4924
  // src/components/databrowser/components/display/display-header.tsx
4921
- import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
4925
+ import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
4922
4926
  var DisplayHeader = ({
4923
4927
  dataKey,
4924
4928
  type,
@@ -4930,17 +4934,17 @@ var DisplayHeader = ({
4930
4934
  };
4931
4935
  return /* @__PURE__ */ jsxs16("div", { className: "rounded-lg bg-zinc-100", children: [
4932
4936
  /* @__PURE__ */ jsxs16("div", { className: "flex min-h-10 items-center justify-between gap-4", children: [
4933
- /* @__PURE__ */ jsx26("h2", { className: "grow truncate text-base", children: dataKey.trim() === "" ? /* @__PURE__ */ jsx26("span", { className: "ml-1 text-zinc-500", children: "(Empty Key)" }) : /* @__PURE__ */ jsx26("span", { className: "font-semibold", children: dataKey }) }),
4937
+ /* @__PURE__ */ jsx27("h2", { className: "grow truncate text-base", children: dataKey.trim() === "" ? /* @__PURE__ */ jsx27("span", { className: "ml-1 text-zinc-500", children: "(Empty Key)" }) : /* @__PURE__ */ jsx27("span", { className: "font-semibold", children: dataKey }) }),
4934
4938
  /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-1", children: [
4935
- type !== "string" && type !== "json" && /* @__PURE__ */ jsx26(Button, { onClick: handleAddItem, size: "icon-sm", "aria-label": "Add item", children: /* @__PURE__ */ jsx26(IconPlus, { className: "size-4 text-zinc-500" }) }),
4936
- /* @__PURE__ */ jsx26(KeyActions, { dataKey, content })
4939
+ type !== "string" && type !== "json" && /* @__PURE__ */ jsx27(Button, { onClick: handleAddItem, size: "icon-sm", "aria-label": "Add item", children: /* @__PURE__ */ jsx27(IconPlus, { className: "size-4 text-zinc-500" }) }),
4940
+ /* @__PURE__ */ jsx27(KeyActions, { dataKey, content })
4937
4941
  ] })
4938
4942
  ] }),
4939
4943
  /* @__PURE__ */ jsxs16("div", { className: "flex h-10 flex-wrap items-center gap-1.5", children: [
4940
- /* @__PURE__ */ jsx26(TypeTag, { variant: type, type: "badge" }),
4941
- /* @__PURE__ */ jsx26(SizeBadge, { dataKey }),
4942
- /* @__PURE__ */ jsx26(LengthBadge, { dataKey, type, content }),
4943
- /* @__PURE__ */ jsx26(HeaderTTLBadge, { dataKey })
4944
+ /* @__PURE__ */ jsx27(TypeTag, { variant: type, type: "badge" }),
4945
+ /* @__PURE__ */ jsx27(SizeBadge, { dataKey }),
4946
+ /* @__PURE__ */ jsx27(LengthBadge, { dataKey, type, content }),
4947
+ /* @__PURE__ */ jsx27(HeaderTTLBadge, { dataKey })
4944
4948
  ] })
4945
4949
  ] });
4946
4950
  };
@@ -4951,16 +4955,16 @@ import { Controller as Controller2, FormProvider, useForm as useForm2, useFormCo
4951
4955
  // src/components/ui/tooltip.tsx
4952
4956
  import * as React11 from "react";
4953
4957
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4954
- import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
4958
+ import { Fragment as Fragment3, jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
4955
4959
  var Tooltip = TooltipPrimitive.Root;
4956
4960
  var TooltipTrigger = TooltipPrimitive.Trigger;
4957
- var TooltipContent = React11.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx27(TooltipPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx27(
4961
+ var TooltipContent = React11.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx28(TooltipPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx28(
4958
4962
  TooltipPrimitive.Content,
4959
4963
  {
4960
4964
  ref,
4961
4965
  sideOffset,
4962
4966
  className: cn(
4963
- "z-50 overflow-hidden rounded-md bg-zinc-900 px-3 py-1.5 text-xs text-zinc-50 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:bg-zinc-50 dark:text-zinc-900",
4967
+ "z-50 overflow-hidden rounded-md bg-zinc-900 px-3 py-1.5 text-xs text-zinc-50 animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4964
4968
  className
4965
4969
  ),
4966
4970
  ...props
@@ -4971,10 +4975,10 @@ var SimpleTooltip = ({
4971
4975
  content,
4972
4976
  children
4973
4977
  }) => {
4974
- if (!content) return /* @__PURE__ */ jsx27(Fragment3, { children });
4978
+ if (!content) return /* @__PURE__ */ jsx28(Fragment3, { children });
4975
4979
  return /* @__PURE__ */ jsxs17(Tooltip, { delayDuration: 400, children: [
4976
- /* @__PURE__ */ jsx27(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx27("div", { children }) }),
4977
- /* @__PURE__ */ jsx27(TooltipContent, { side: "top", children: content })
4980
+ /* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx28("div", { children }) }),
4981
+ /* @__PURE__ */ jsx28(TooltipContent, { side: "top", children: content })
4978
4982
  ] });
4979
4983
  };
4980
4984
 
@@ -5034,12 +5038,12 @@ var useSetHashTTL = () => {
5034
5038
  };
5035
5039
 
5036
5040
  // src/components/databrowser/components/display/hash/hash-field-ttl-badge.tsx
5037
- import { jsx as jsx28 } from "react/jsx-runtime";
5041
+ import { jsx as jsx29 } from "react/jsx-runtime";
5038
5042
  var HashFieldTTLBadge = ({ dataKey, field }) => {
5039
5043
  const { data } = useFetchHashFieldExpires({ dataKey, fields: [field] });
5040
5044
  const { mutate: setTTL, isPending } = useSetHashTTL();
5041
5045
  const expireAt = data?.[field];
5042
- return /* @__PURE__ */ jsx28(
5046
+ return /* @__PURE__ */ jsx29(
5043
5047
  TTLBadge,
5044
5048
  {
5045
5049
  label: "Field TTL:",
@@ -5056,7 +5060,7 @@ import { useController } from "react-hook-form";
5056
5060
 
5057
5061
  // src/components/databrowser/components/display/input/content-type-select.tsx
5058
5062
  import { useMemo as useMemo6 } from "react";
5059
- import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
5063
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
5060
5064
  var ContentTypeSelect = ({
5061
5065
  value,
5062
5066
  onChange,
@@ -5064,10 +5068,10 @@ var ContentTypeSelect = ({
5064
5068
  }) => {
5065
5069
  const isValidJSON = useMemo6(() => checkIsValidJSON(data), [data]);
5066
5070
  return /* @__PURE__ */ jsxs18(Select, { value, onValueChange: onChange, children: [
5067
- /* @__PURE__ */ jsx29(SelectTrigger, { className: "h-6 w-auto border-none bg-transparent pl-0 pr-6 text-xs text-zinc-500", children: /* @__PURE__ */ jsx29(SelectValue, { placeholder: "Text" }) }),
5068
- /* @__PURE__ */ jsx29(SelectContent, { children: /* @__PURE__ */ jsxs18(SelectGroup, { children: [
5069
- /* @__PURE__ */ jsx29(SelectItem, { value: "Text", children: "Text" }),
5070
- /* @__PURE__ */ jsx29(SelectItem, { disabled: !isValidJSON, value: "JSON", children: "JSON" })
5071
+ /* @__PURE__ */ jsx30(SelectTrigger, { className: "h-6 w-auto border-none bg-transparent pl-0 pr-6 text-xs text-zinc-500", children: /* @__PURE__ */ jsx30(SelectValue, { placeholder: "Text" }) }),
5072
+ /* @__PURE__ */ jsx30(SelectContent, { children: /* @__PURE__ */ jsxs18(SelectGroup, { children: [
5073
+ /* @__PURE__ */ jsx30(SelectItem, { value: "Text", children: "Text" }),
5074
+ /* @__PURE__ */ jsx30(SelectItem, { disabled: !isValidJSON, value: "JSON", children: "JSON" })
5071
5075
  ] }) })
5072
5076
  ] });
5073
5077
  };
@@ -5079,10 +5083,10 @@ import { Editor, useMonaco } from "@monaco-editor/react";
5079
5083
  // src/components/databrowser/copy-button.tsx
5080
5084
  import { useState as useState6 } from "react";
5081
5085
  import { IconCheck, IconCopy as IconCopy2 } from "@tabler/icons-react";
5082
- import { jsx as jsx30 } from "react/jsx-runtime";
5086
+ import { jsx as jsx31 } from "react/jsx-runtime";
5083
5087
  function CopyButton({ value, ...props }) {
5084
5088
  const [copied, setCopied] = useState6(false);
5085
- return /* @__PURE__ */ jsx30(
5089
+ return /* @__PURE__ */ jsx31(
5086
5090
  Button,
5087
5091
  {
5088
5092
  onClick: (e) => {
@@ -5099,7 +5103,7 @@ function CopyButton({ value, ...props }) {
5099
5103
  variant: "secondary",
5100
5104
  size: "icon-sm",
5101
5105
  ...props,
5102
- children: copied ? /* @__PURE__ */ jsx30(IconCheck, { className: "size-4 text-green-500" }) : /* @__PURE__ */ jsx30(IconCopy2, { className: "size-4 text-zinc-500" })
5106
+ children: copied ? /* @__PURE__ */ jsx31(IconCheck, { className: "size-4 text-green-500" }) : /* @__PURE__ */ jsx31(IconCopy2, { className: "size-4 text-zinc-500" })
5103
5107
  }
5104
5108
  );
5105
5109
  }
@@ -5112,7 +5116,7 @@ var handleCopyClick = async (textToCopy) => {
5112
5116
  };
5113
5117
 
5114
5118
  // src/components/databrowser/components/display/input/custom-editor.tsx
5115
- import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
5119
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
5116
5120
  var CustomEditor = ({
5117
5121
  language,
5118
5122
  value,
@@ -5124,15 +5128,17 @@ var CustomEditor = ({
5124
5128
  const { active } = useTab();
5125
5129
  const monaco = useMonaco();
5126
5130
  const editorRef = useRef2();
5131
+ const theme = useDarkMode();
5127
5132
  useEffect7(() => {
5128
5133
  if (!active || !monaco || !editorRef.current) {
5129
5134
  return;
5130
5135
  }
5131
5136
  monaco?.editor.setModelLanguage(editorRef.current.getModel(), language);
5132
5137
  }, [monaco, language, active]);
5133
- const editor = /* @__PURE__ */ jsx31(
5138
+ const editor = /* @__PURE__ */ jsx32(
5134
5139
  Editor,
5135
5140
  {
5141
+ theme: theme === "dark" ? "vs-dark" : "light",
5136
5142
  loading: void 0,
5137
5143
  onMount: (editor2) => {
5138
5144
  editorRef.current = editor2;
@@ -5164,8 +5170,10 @@ var CustomEditor = ({
5164
5170
  automaticLayout: true,
5165
5171
  scrollBeyondLastLine: false,
5166
5172
  renderLineHighlight: "none",
5167
- unusualLineTerminators: "auto"
5168
- }
5173
+ unusualLineTerminators: "auto",
5174
+ padding: { top: 0, bottom: 0 }
5175
+ },
5176
+ className: "[&_.monaco-editor-background]:!bg-transparent [&_.monaco-editor]:!bg-transparent"
5169
5177
  }
5170
5178
  );
5171
5179
  return /* @__PURE__ */ jsxs19(
@@ -5174,8 +5182,8 @@ var CustomEditor = ({
5174
5182
  className: cn("group/editor relative", height === void 0 && "h-full p-2"),
5175
5183
  style: { height },
5176
5184
  children: [
5177
- isTest ? /* @__PURE__ */ jsx31("input", { "aria-label": "editor", value, onChange: (e) => onChange(e.target.value) }) : editor,
5178
- showCopyButton && /* @__PURE__ */ jsx31(
5185
+ isTest ? /* @__PURE__ */ jsx32("input", { "aria-label": "editor", value, onChange: (e) => onChange(e.target.value) }) : editor,
5186
+ showCopyButton && /* @__PURE__ */ jsx32(
5179
5187
  CopyButton,
5180
5188
  {
5181
5189
  value,
@@ -5188,7 +5196,7 @@ var CustomEditor = ({
5188
5196
  };
5189
5197
 
5190
5198
  // src/components/databrowser/components/display/input/use-field.tsx
5191
- import { Fragment as Fragment4, jsx as jsx32 } from "react/jsx-runtime";
5199
+ import { Fragment as Fragment4, jsx as jsx33 } from "react/jsx-runtime";
5192
5200
  var useField = ({
5193
5201
  name,
5194
5202
  form,
@@ -5228,8 +5236,8 @@ var useField = ({
5228
5236
  }
5229
5237
  };
5230
5238
  return {
5231
- selector: /* @__PURE__ */ jsx32(ContentTypeSelect, { value: contentType, onChange: handleTypeChange, data: field.value }),
5232
- editor: /* @__PURE__ */ jsx32(Fragment4, { children: /* @__PURE__ */ jsx32(
5239
+ selector: /* @__PURE__ */ jsx33(ContentTypeSelect, { value: contentType, onChange: handleTypeChange, data: field.value }),
5240
+ editor: /* @__PURE__ */ jsx33(Fragment4, { children: /* @__PURE__ */ jsx33(
5233
5241
  CustomEditor,
5234
5242
  {
5235
5243
  language: contentType === "JSON" ? "json" : "plaintext",
@@ -5253,13 +5261,13 @@ var checkIsValidJSON = (value) => {
5253
5261
  };
5254
5262
 
5255
5263
  // src/components/databrowser/components/display/display-list-edit.tsx
5256
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
5264
+ import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
5257
5265
  var ListEditDisplay = ({
5258
5266
  dataKey,
5259
5267
  type,
5260
5268
  item
5261
5269
  }) => {
5262
- return /* @__PURE__ */ jsx33("div", { className: "grow rounded-md bg-zinc-100", children: /* @__PURE__ */ jsx33(ListEditForm, { item, type, dataKey }, item.key) });
5270
+ return /* @__PURE__ */ jsx34("div", { className: "grow rounded-md bg-zinc-100", children: /* @__PURE__ */ jsx34(ListEditForm, { item, type, dataKey }, item.key) });
5263
5271
  };
5264
5272
  var ListEditForm = ({
5265
5273
  type,
@@ -5298,9 +5306,9 @@ var ListEditForm = ({
5298
5306
  });
5299
5307
  setSelectedListItem(void 0);
5300
5308
  });
5301
- return /* @__PURE__ */ jsx33(FormProvider, { ...form, children: /* @__PURE__ */ jsxs20("form", { onSubmit, className: "flex flex-col gap-2", children: [
5309
+ return /* @__PURE__ */ jsx34(FormProvider, { ...form, children: /* @__PURE__ */ jsxs20("form", { onSubmit, className: "flex flex-col gap-2", children: [
5302
5310
  /* @__PURE__ */ jsxs20("div", { className: "flex grow flex-col gap-2", children: [
5303
- type !== "list" && /* @__PURE__ */ jsx33(
5311
+ type !== "list" && /* @__PURE__ */ jsx34(
5304
5312
  FormItem,
5305
5313
  {
5306
5314
  readOnly: type === "stream",
@@ -5310,7 +5318,7 @@ var ListEditForm = ({
5310
5318
  data: itemKey
5311
5319
  }
5312
5320
  ),
5313
- type === "zset" ? /* @__PURE__ */ jsx33(NumberFormItem, { name: "value", label: valueLabel }) : type !== "set" && /* @__PURE__ */ jsx33(
5321
+ type === "zset" ? /* @__PURE__ */ jsx34(NumberFormItem, { name: "value", label: valueLabel }) : type !== "set" && /* @__PURE__ */ jsx34(
5314
5322
  FormItem,
5315
5323
  {
5316
5324
  readOnly: type === "stream",
@@ -5329,9 +5337,9 @@ var ListEditForm = ({
5329
5337
  type === "hash" && itemKey !== "" ? "justify-between" : "justify-end"
5330
5338
  ),
5331
5339
  children: [
5332
- type === "hash" && itemKey !== "" && /* @__PURE__ */ jsx33(HashFieldTTLBadge, { dataKey, field: itemKey }),
5340
+ type === "hash" && itemKey !== "" && /* @__PURE__ */ jsx34(HashFieldTTLBadge, { dataKey, field: itemKey }),
5333
5341
  /* @__PURE__ */ jsxs20("div", { className: "flex gap-2", children: [
5334
- /* @__PURE__ */ jsx33(
5342
+ /* @__PURE__ */ jsx34(
5335
5343
  Button,
5336
5344
  {
5337
5345
  type: "button",
@@ -5341,17 +5349,17 @@ var ListEditForm = ({
5341
5349
  children: "Cancel"
5342
5350
  }
5343
5351
  ),
5344
- /* @__PURE__ */ jsx33(
5352
+ /* @__PURE__ */ jsx34(
5345
5353
  SimpleTooltip,
5346
5354
  {
5347
5355
  content: type === "stream" && !isNew ? "Streams are not mutable" : void 0,
5348
- children: /* @__PURE__ */ jsx33(
5356
+ children: /* @__PURE__ */ jsx34(
5349
5357
  Button,
5350
5358
  {
5351
5359
  variant: "primary",
5352
5360
  type: "submit",
5353
5361
  disabled: !form.formState.isValid || !form.formState.isDirty || type === "stream" && !isNew,
5354
- children: /* @__PURE__ */ jsx33(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" })
5362
+ children: /* @__PURE__ */ jsx34(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" })
5355
5363
  }
5356
5364
  )
5357
5365
  }
@@ -5364,12 +5372,12 @@ var ListEditForm = ({
5364
5372
  };
5365
5373
  var NumberFormItem = ({ name, label }) => {
5366
5374
  return /* @__PURE__ */ jsxs20("div", { className: "flex flex-col gap-1", children: [
5367
- /* @__PURE__ */ jsx33("div", { className: "flex", children: /* @__PURE__ */ jsx33("span", { className: "text-xs font-medium text-zinc-700", children: label }) }),
5368
- /* @__PURE__ */ jsx33(
5375
+ /* @__PURE__ */ jsx34("div", { className: "flex", children: /* @__PURE__ */ jsx34("span", { className: "text-xs font-medium text-zinc-700", children: label }) }),
5376
+ /* @__PURE__ */ jsx34(
5369
5377
  Controller2,
5370
5378
  {
5371
5379
  name,
5372
- render: ({ field }) => /* @__PURE__ */ jsx33(
5380
+ render: ({ field }) => /* @__PURE__ */ jsx34(
5373
5381
  "input",
5374
5382
  {
5375
5383
  className: "plain-input rounded-md border border-zinc-300 px-3 py-1 shadow-sm",
@@ -5399,18 +5407,18 @@ var FormItem = ({
5399
5407
  });
5400
5408
  return /* @__PURE__ */ jsxs20("div", { className: "flex flex-col gap-1", children: [
5401
5409
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1 text-xs", children: [
5402
- /* @__PURE__ */ jsx33("span", { className: "font-medium text-zinc-700", children: label }),
5410
+ /* @__PURE__ */ jsx34("span", { className: "font-medium text-zinc-700", children: label }),
5403
5411
  " ",
5404
- /* @__PURE__ */ jsx33("span", { className: "text-zinc-300", children: "/" }),
5412
+ /* @__PURE__ */ jsx34("span", { className: "text-zinc-300", children: "/" }),
5405
5413
  selector
5406
5414
  ] }),
5407
- /* @__PURE__ */ jsx33("div", { className: "overflow-hidden rounded-md border border-zinc-300 bg-white p-2 shadow-sm", children: editor })
5415
+ /* @__PURE__ */ jsx34("div", { className: "overflow-hidden rounded-md border border-zinc-300 bg-white p-2 shadow-sm", children: editor })
5408
5416
  ] });
5409
5417
  };
5410
5418
 
5411
5419
  // src/components/databrowser/components/display/hash/hash-field-ttl-info.tsx
5412
5420
  import { useEffect as useEffect9, useState as useState8 } from "react";
5413
- import { jsx as jsx34 } from "react/jsx-runtime";
5421
+ import { jsx as jsx35 } from "react/jsx-runtime";
5414
5422
  var HashFieldTTLInfo = ({
5415
5423
  dataKey,
5416
5424
  field,
@@ -5427,11 +5435,11 @@ var HashFieldTTLInfo = ({
5427
5435
  return () => clearInterval(interval);
5428
5436
  }, [expireAt]);
5429
5437
  if (!expireAt || expireAt === TTL_NOT_FOUND || expireAt === TTL_INFINITE) return;
5430
- return /* @__PURE__ */ jsx34("span", { className: "block min-w-[30px] whitespace-nowrap text-right text-red-600", children: formatTime(ttl ?? 0) });
5438
+ return /* @__PURE__ */ jsx35("span", { className: "block min-w-[30px] whitespace-nowrap text-right text-red-600", children: formatTime(ttl ?? 0) });
5431
5439
  };
5432
5440
 
5433
5441
  // src/components/databrowser/components/display/display-list.tsx
5434
- import { Fragment as Fragment5, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
5442
+ import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
5435
5443
  var headerLabels = {
5436
5444
  list: ["Index", "Content"],
5437
5445
  hash: ["Field", "Value"],
@@ -5443,9 +5451,9 @@ var ListDisplay = ({ dataKey, type }) => {
5443
5451
  const { selectedListItem } = useTab();
5444
5452
  const query = useFetchListItems({ dataKey, type });
5445
5453
  return /* @__PURE__ */ jsxs21("div", { className: "flex h-full flex-col gap-2", children: [
5446
- /* @__PURE__ */ jsx35(DisplayHeader, { dataKey, type }),
5447
- selectedListItem && /* @__PURE__ */ jsx35(ListEditDisplay, { dataKey, type, item: selectedListItem }),
5448
- /* @__PURE__ */ jsx35("div", { className: cn("min-h-0 grow", selectedListItem && "hidden"), children: /* @__PURE__ */ jsx35(InfiniteScroll, { query, children: /* @__PURE__ */ jsx35("table", { className: "w-full", children: /* @__PURE__ */ jsx35(ItemContextMenu, { dataKey, type, children: /* @__PURE__ */ jsx35("tbody", { children: /* @__PURE__ */ jsx35(ListItems, { dataKey, type, query }) }) }) }) }) })
5454
+ /* @__PURE__ */ jsx36(DisplayHeader, { dataKey, type }),
5455
+ selectedListItem && /* @__PURE__ */ jsx36(ListEditDisplay, { dataKey, type, item: selectedListItem }),
5456
+ /* @__PURE__ */ jsx36("div", { className: cn("min-h-0 grow", selectedListItem && "hidden"), children: /* @__PURE__ */ jsx36(InfiniteScroll, { query, children: /* @__PURE__ */ jsx36("table", { className: "w-full", children: /* @__PURE__ */ jsx36(ItemContextMenu, { dataKey, type, children: /* @__PURE__ */ jsx36("tbody", { children: /* @__PURE__ */ jsx36(ListItems, { dataKey, type, query }) }) }) }) }) })
5449
5457
  ] });
5450
5458
  };
5451
5459
  var ListItems = ({
@@ -5457,7 +5465,7 @@ var ListItems = ({
5457
5465
  const keys = useMemo7(() => query.data?.pages.flatMap((page) => page.keys) ?? [], [query.data]);
5458
5466
  const fields = useMemo7(() => keys.map((key) => key.key), [keys]);
5459
5467
  const { mutate: editItem } = useEditListItem();
5460
- return /* @__PURE__ */ jsx35(Fragment5, { children: keys.map(({ key, value }, i) => /* @__PURE__ */ jsxs21(
5468
+ return /* @__PURE__ */ jsx36(Fragment5, { children: keys.map(({ key, value }, i) => /* @__PURE__ */ jsxs21(
5461
5469
  "tr",
5462
5470
  {
5463
5471
  "data-item-key": key,
@@ -5467,7 +5475,7 @@ var ListItems = ({
5467
5475
  },
5468
5476
  className: cn("h-10 border-b border-b-zinc-100 transition-colors hover:bg-zinc-100"),
5469
5477
  children: [
5470
- /* @__PURE__ */ jsx35(
5478
+ /* @__PURE__ */ jsx36(
5471
5479
  "td",
5472
5480
  {
5473
5481
  className: cn(
@@ -5477,14 +5485,14 @@ var ListItems = ({
5477
5485
  children: key
5478
5486
  }
5479
5487
  ),
5480
- value !== void 0 && /* @__PURE__ */ jsx35(
5488
+ value !== void 0 && /* @__PURE__ */ jsx36(
5481
5489
  "td",
5482
5490
  {
5483
5491
  className: cn("cursor-pointer truncate px-3", type === "zset" ? "w-24" : "max-w-0"),
5484
5492
  children: value
5485
5493
  }
5486
5494
  ),
5487
- type !== "stream" && /* @__PURE__ */ jsx35(
5495
+ type !== "stream" && /* @__PURE__ */ jsx36(
5488
5496
  "td",
5489
5497
  {
5490
5498
  className: "w-0 min-w-0 p-0",
@@ -5492,8 +5500,8 @@ var ListItems = ({
5492
5500
  e.stopPropagation();
5493
5501
  },
5494
5502
  children: /* @__PURE__ */ jsxs21("div", { className: "flex items-center justify-end gap-2", children: [
5495
- type === "hash" && /* @__PURE__ */ jsx35(HashFieldTTLInfo, { dataKey, field: key, fields }),
5496
- /* @__PURE__ */ jsx35(
5503
+ type === "hash" && /* @__PURE__ */ jsx36(HashFieldTTLInfo, { dataKey, field: key, fields }),
5504
+ /* @__PURE__ */ jsx36(
5497
5505
  DeleteAlertDialog,
5498
5506
  {
5499
5507
  deletionType: "item",
@@ -5507,14 +5515,14 @@ var ListItems = ({
5507
5515
  newKey: void 0
5508
5516
  });
5509
5517
  },
5510
- children: /* @__PURE__ */ jsx35(
5518
+ children: /* @__PURE__ */ jsx36(
5511
5519
  Button,
5512
5520
  {
5513
5521
  className: "",
5514
5522
  size: "icon-sm",
5515
5523
  variant: "secondary",
5516
5524
  onClick: (e) => e.stopPropagation(),
5517
- children: /* @__PURE__ */ jsx35(IconTrash2, { className: "size-4 text-zinc-500" })
5525
+ children: /* @__PURE__ */ jsx36(IconTrash2, { className: "size-4 text-zinc-500" })
5518
5526
  }
5519
5527
  )
5520
5528
  }
@@ -5531,12 +5539,12 @@ var ListItems = ({
5531
5539
  // src/components/databrowser/components/display/display-simple.tsx
5532
5540
  import { useEffect as useEffect10 } from "react";
5533
5541
  import { useForm as useForm3 } from "react-hook-form";
5534
- import { Fragment as Fragment6, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
5542
+ import { Fragment as Fragment6, jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
5535
5543
  var EditorDisplay = ({ dataKey, type }) => {
5536
5544
  const { data } = useFetchSimpleKey(dataKey, type);
5537
5545
  return /* @__PURE__ */ jsxs22("div", { className: "flex h-full w-full flex-col gap-2", children: [
5538
- /* @__PURE__ */ jsx36(DisplayHeader, { dataKey, type, content: data ?? void 0 }),
5539
- /* @__PURE__ */ jsx36("div", { className: "flex h-full grow flex-col gap-2 rounded-md bg-zinc-100", children: data === void 0 ? /* @__PURE__ */ jsx36(Spinner, { isLoadingText: "", isLoading: true }) : data === null ? /* @__PURE__ */ jsx36(Fragment6, {}) : /* @__PURE__ */ jsx36(EditorDisplayForm, { dataKey, type, data }, dataKey) })
5546
+ /* @__PURE__ */ jsx37(DisplayHeader, { dataKey, type, content: data ?? void 0 }),
5547
+ /* @__PURE__ */ jsx37("div", { className: "flex h-full grow flex-col gap-2 rounded-md bg-zinc-100", children: data === void 0 ? /* @__PURE__ */ jsx37(Spinner, { isLoadingText: "", isLoading: true }) : data === null ? /* @__PURE__ */ jsx37(Fragment6, {}) : /* @__PURE__ */ jsx37(EditorDisplayForm, { dataKey, type, data }, dataKey) })
5540
5548
  ] });
5541
5549
  };
5542
5550
  var EditorDisplayForm = ({
@@ -5557,12 +5565,12 @@ var EditorDisplayForm = ({
5557
5565
  };
5558
5566
  return /* @__PURE__ */ jsxs22(Fragment6, { children: [
5559
5567
  /* @__PURE__ */ jsxs22("div", { className: "flex grow flex-col gap-1", children: [
5560
- /* @__PURE__ */ jsx36("div", { className: "flex shrink-0 items-center gap-2", children: type === "json" ? /* @__PURE__ */ jsx36("div", {}) : selector }),
5561
- /* @__PURE__ */ jsx36("div", { className: "grow rounded-md border border-zinc-300 bg-white p-1", children: editor })
5568
+ /* @__PURE__ */ jsx37("div", { className: "flex shrink-0 items-center gap-2", children: type === "json" ? /* @__PURE__ */ jsx37("div", {}) : selector }),
5569
+ /* @__PURE__ */ jsx37("div", { className: "grow rounded-md border border-zinc-300 bg-white p-1 dark:!bg-[#192321]", children: editor })
5562
5570
  ] }),
5563
- /* @__PURE__ */ jsx36("div", { className: "flex shrink-0 items-center gap-2", children: /* @__PURE__ */ jsxs22("div", { className: "ml-auto flex gap-2", children: [
5564
- form.formState.isDirty && /* @__PURE__ */ jsx36(Button, { onClick: handleCancel, children: "Cancel" }),
5565
- /* @__PURE__ */ jsx36(
5571
+ /* @__PURE__ */ jsx37("div", { className: "flex shrink-0 items-center gap-2", children: /* @__PURE__ */ jsxs22("div", { className: "ml-auto flex gap-2", children: [
5572
+ form.formState.isDirty && /* @__PURE__ */ jsx37(Button, { onClick: handleCancel, children: "Cancel" }),
5573
+ /* @__PURE__ */ jsx37(
5566
5574
  Button,
5567
5575
  {
5568
5576
  variant: "primary",
@@ -5570,7 +5578,7 @@ var EditorDisplayForm = ({
5570
5578
  await setKey(value);
5571
5579
  }),
5572
5580
  disabled: !form.formState.isValid || !form.formState.isDirty,
5573
- children: /* @__PURE__ */ jsx36(Spinner, { isLoading: isSettingKey, isLoadingText: "Saving", children: "Save" })
5581
+ children: /* @__PURE__ */ jsx37(Spinner, { isLoading: isSettingKey, isLoadingText: "Saving", children: "Save" })
5574
5582
  }
5575
5583
  )
5576
5584
  ] }) })
@@ -5578,12 +5586,12 @@ var EditorDisplayForm = ({
5578
5586
  };
5579
5587
 
5580
5588
  // src/components/databrowser/components/display/index.tsx
5581
- import { Fragment as Fragment7, jsx as jsx37 } from "react/jsx-runtime";
5589
+ import { Fragment as Fragment7, jsx as jsx38 } from "react/jsx-runtime";
5582
5590
  var DataDisplay = () => {
5583
5591
  const { selectedKey } = useTab();
5584
5592
  const { query } = useKeys();
5585
5593
  const type = useKeyType(selectedKey);
5586
- return /* @__PURE__ */ jsx37("div", { className: "h-full p-4", children: !selectedKey ? /* @__PURE__ */ jsx37("div", {}) : !type ? query.isLoading ? /* @__PURE__ */ jsx37("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx37("span", { className: "text-gray-500", children: "Loading..." }) }) : /* @__PURE__ */ jsx37("div", {}) : /* @__PURE__ */ jsx37(Fragment7, { children: type === "string" || type === "json" ? /* @__PURE__ */ jsx37(EditorDisplay, { dataKey: selectedKey, type }) : /* @__PURE__ */ jsx37(ListDisplay, { dataKey: selectedKey, type }) }) });
5594
+ return /* @__PURE__ */ jsx38("div", { className: "h-full p-4", children: !selectedKey ? /* @__PURE__ */ jsx38("div", {}) : !type ? query.isLoading ? /* @__PURE__ */ jsx38("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx38("span", { className: "text-zinc-500", children: "Loading..." }) }) : /* @__PURE__ */ jsx38("div", {}) : /* @__PURE__ */ jsx38(Fragment7, { children: type === "string" || type === "json" ? /* @__PURE__ */ jsx38(EditorDisplay, { dataKey: selectedKey, type }) : /* @__PURE__ */ jsx38(ListDisplay, { dataKey: selectedKey, type }) }) });
5587
5595
  };
5588
5596
 
5589
5597
  // src/components/databrowser/components/sidebar/index.tsx
@@ -5598,12 +5606,12 @@ import { Controller as Controller3, useForm as useForm4 } from "react-hook-form"
5598
5606
  // src/components/ui/dialog.tsx
5599
5607
  import * as React12 from "react";
5600
5608
  import * as DialogPrimitive from "@radix-ui/react-dialog";
5601
- import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
5609
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
5602
5610
  var Dialog = DialogPrimitive.Root;
5603
5611
  var DialogTrigger = DialogPrimitive.Trigger;
5604
- var DialogPortal = (props) => /* @__PURE__ */ jsx38(DialogPrimitive.Portal, { container: portalRoot, ...props });
5612
+ var DialogPortal = (props) => /* @__PURE__ */ jsx39(DialogPrimitive.Portal, { container: portalRoot, ...props });
5605
5613
  DialogPortal.displayName = DialogPrimitive.Portal.displayName;
5606
- var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
5614
+ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
5607
5615
  DialogPrimitive.Overlay,
5608
5616
  {
5609
5617
  ref,
@@ -5618,7 +5626,7 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
5618
5626
  ));
5619
5627
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
5620
5628
  var DialogContent = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs23(DialogPortal, { children: [
5621
- /* @__PURE__ */ jsx38(DialogOverlay, {}),
5629
+ /* @__PURE__ */ jsx39(DialogOverlay, {}),
5622
5630
  /* @__PURE__ */ jsxs23(
5623
5631
  DialogPrimitive.Content,
5624
5632
  {
@@ -5639,8 +5647,8 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
5639
5647
  ...props,
5640
5648
  children: [
5641
5649
  children,
5642
- /* @__PURE__ */ jsxs23(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-500 dark:ring-offset-zinc-950 dark:focus:ring-zinc-300 dark:data-[state=open]:bg-zinc-800 dark:data-[state=open]:text-zinc-400", children: [
5643
- /* @__PURE__ */ jsx38(
5650
+ /* @__PURE__ */ jsxs23(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-500", children: [
5651
+ /* @__PURE__ */ jsx39(
5644
5652
  "svg",
5645
5653
  {
5646
5654
  width: "15",
@@ -5649,7 +5657,7 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
5649
5657
  fill: "none",
5650
5658
  xmlns: "http://www.w3.org/2000/svg",
5651
5659
  className: "h-4 w-4",
5652
- children: /* @__PURE__ */ jsx38(
5660
+ children: /* @__PURE__ */ jsx39(
5653
5661
  "path",
5654
5662
  {
5655
5663
  d: "M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",
@@ -5660,16 +5668,16 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
5660
5668
  )
5661
5669
  }
5662
5670
  ),
5663
- /* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Close" })
5671
+ /* @__PURE__ */ jsx39("span", { className: "sr-only", children: "Close" })
5664
5672
  ] })
5665
5673
  ]
5666
5674
  }
5667
5675
  )
5668
5676
  ] }));
5669
5677
  DialogContent.displayName = DialogPrimitive.Content.displayName;
5670
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx38("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
5678
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx39("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
5671
5679
  DialogHeader.displayName = "DialogHeader";
5672
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx38(
5680
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx39(
5673
5681
  "div",
5674
5682
  {
5675
5683
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -5677,7 +5685,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx38(
5677
5685
  }
5678
5686
  );
5679
5687
  DialogFooter.displayName = "DialogFooter";
5680
- var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
5688
+ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
5681
5689
  DialogPrimitive.Title,
5682
5690
  {
5683
5691
  ref,
@@ -5686,18 +5694,18 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
5686
5694
  }
5687
5695
  ));
5688
5696
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
5689
- var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
5697
+ var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
5690
5698
  DialogPrimitive.Description,
5691
5699
  {
5692
5700
  ref,
5693
- className: cn("text-sm text-zinc-500 dark:text-zinc-400", className),
5701
+ className: cn("text-sm text-zinc-500", className),
5694
5702
  ...props
5695
5703
  }
5696
5704
  ));
5697
5705
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
5698
5706
 
5699
5707
  // src/components/databrowser/components/add-key-modal.tsx
5700
- import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
5708
+ import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
5701
5709
  function AddKeyModal() {
5702
5710
  const { setSelectedKey } = useTab();
5703
5711
  const [open, setOpen] = useState9(false);
@@ -5729,24 +5737,24 @@ function AddKeyModal() {
5729
5737
  setOpen(open2);
5730
5738
  },
5731
5739
  children: [
5732
- /* @__PURE__ */ jsx39(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx39(Button, { variant: "primary", size: "icon-sm", "aria-label": "Add key", children: /* @__PURE__ */ jsx39(PlusIcon, { className: "size-4" }) }) }),
5740
+ /* @__PURE__ */ jsx40(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx40(Button, { variant: "primary", size: "icon-sm", "aria-label": "Add key", children: /* @__PURE__ */ jsx40(PlusIcon, { className: "size-4" }) }) }),
5733
5741
  /* @__PURE__ */ jsxs24(DialogContent, { className: "max-w-[400px]", children: [
5734
- /* @__PURE__ */ jsx39(DialogHeader, { children: /* @__PURE__ */ jsx39(DialogTitle, { children: "Create new key" }) }),
5735
- /* @__PURE__ */ jsx39("div", { className: "sr-only", children: /* @__PURE__ */ jsx39(DialogDescription2, { children: "Create new key" }) }),
5742
+ /* @__PURE__ */ jsx40(DialogHeader, { children: /* @__PURE__ */ jsx40(DialogTitle, { children: "Create new key" }) }),
5743
+ /* @__PURE__ */ jsx40("div", { className: "sr-only", children: /* @__PURE__ */ jsx40(DialogDescription2, { children: "Create new key" }) }),
5736
5744
  /* @__PURE__ */ jsxs24("form", { className: "mt-4", onSubmit, children: [
5737
5745
  /* @__PURE__ */ jsxs24("div", { className: "flex gap-1", children: [
5738
- /* @__PURE__ */ jsx39(
5746
+ /* @__PURE__ */ jsx40(
5739
5747
  Controller3,
5740
5748
  {
5741
5749
  control,
5742
5750
  name: "type",
5743
5751
  render: ({ field }) => /* @__PURE__ */ jsxs24(Select, { value: field.value, onValueChange: field.onChange, children: [
5744
- /* @__PURE__ */ jsx39(SelectTrigger, { className: "h-8 w-auto pl-[3px] pr-8", children: /* @__PURE__ */ jsx39(SelectValue, {}) }),
5745
- /* @__PURE__ */ jsx39(SelectContent, { children: /* @__PURE__ */ jsx39(SelectGroup, { children: DATA_TYPES.map((type) => /* @__PURE__ */ jsx39(SelectItem, { value: type, children: /* @__PURE__ */ jsx39(TypeTag, { variant: type, type: "badge" }) }, type)) }) })
5752
+ /* @__PURE__ */ jsx40(SelectTrigger, { className: "h-8 w-auto pl-[3px] pr-8", children: /* @__PURE__ */ jsx40(SelectValue, {}) }),
5753
+ /* @__PURE__ */ jsx40(SelectContent, { children: /* @__PURE__ */ jsx40(SelectGroup, { children: DATA_TYPES.map((type) => /* @__PURE__ */ jsx40(SelectItem, { value: type, children: /* @__PURE__ */ jsx40(TypeTag, { variant: type, type: "badge" }) }, type)) }) })
5746
5754
  ] })
5747
5755
  }
5748
5756
  ),
5749
- /* @__PURE__ */ jsx39(
5757
+ /* @__PURE__ */ jsx40(
5750
5758
  Controller3,
5751
5759
  {
5752
5760
  rules: {
@@ -5754,14 +5762,14 @@ function AddKeyModal() {
5754
5762
  },
5755
5763
  control,
5756
5764
  name: "key",
5757
- render: ({ field }) => /* @__PURE__ */ jsx39(Input, { placeholder: "mykey", ...field, className: "h-8 grow" })
5765
+ render: ({ field }) => /* @__PURE__ */ jsx40(Input, { placeholder: "mykey", ...field, className: "h-8 grow" })
5758
5766
  }
5759
5767
  )
5760
5768
  ] }),
5761
- formState.errors.key && /* @__PURE__ */ jsx39("p", { className: "mb-3 mt-2 text-xs text-red-500", children: formState.errors.key?.message }),
5762
- /* @__PURE__ */ jsx39("p", { className: "mt-2 text-xs text-zinc-500", children: "After creating the key, you can edit the value" }),
5769
+ formState.errors.key && /* @__PURE__ */ jsx40("p", { className: "mb-3 mt-2 text-xs text-red-500", children: formState.errors.key?.message }),
5770
+ /* @__PURE__ */ jsx40("p", { className: "mt-2 text-xs text-zinc-500", children: "After creating the key, you can edit the value" }),
5763
5771
  /* @__PURE__ */ jsxs24("div", { className: "mt-6 flex justify-end gap-2", children: [
5764
- /* @__PURE__ */ jsx39(
5772
+ /* @__PURE__ */ jsx40(
5765
5773
  Button,
5766
5774
  {
5767
5775
  type: "button",
@@ -5772,7 +5780,7 @@ function AddKeyModal() {
5772
5780
  children: "Cancel"
5773
5781
  }
5774
5782
  ),
5775
- /* @__PURE__ */ jsx39(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx39(Spinner, { isLoading: isPending, isLoadingText: "Creating", children: "Create" }) })
5783
+ /* @__PURE__ */ jsx40(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx40(Spinner, { isLoading: isPending, isLoadingText: "Creating", children: "Create" }) })
5776
5784
  ] })
5777
5785
  ] })
5778
5786
  ] })
@@ -5782,11 +5790,11 @@ function AddKeyModal() {
5782
5790
  }
5783
5791
 
5784
5792
  // src/components/databrowser/components/sidebar/empty.tsx
5785
- import { jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
5793
+ import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
5786
5794
  var Empty = () => {
5787
- return /* @__PURE__ */ jsx40("div", { className: "flex h-full w-full items-center justify-center rounded-md border bg-white px-4 py-6 text-center", children: /* @__PURE__ */ jsxs25("div", { className: "space-y-5", children: [
5788
- /* @__PURE__ */ jsx40("p", { className: "text-md font-medium", children: "Data on a break" }),
5789
- /* @__PURE__ */ jsx40("p", { className: "text-balance text-center", children: '"Quick, lure it back with some CLI magic!"' })
5795
+ return /* @__PURE__ */ jsx41("div", { className: "flex h-full w-full items-center justify-center rounded-md border bg-white px-4 py-6 text-center", children: /* @__PURE__ */ jsxs25("div", { className: "space-y-5", children: [
5796
+ /* @__PURE__ */ jsx41("p", { className: "text-md font-medium", children: "Data on a break" }),
5797
+ /* @__PURE__ */ jsx41("p", { className: "text-balance text-center", children: '"Quick, lure it back with some CLI magic!"' })
5790
5798
  ] }) });
5791
5799
  };
5792
5800
 
@@ -5794,7 +5802,7 @@ var Empty = () => {
5794
5802
  import { useState as useState10 } from "react";
5795
5803
  import { IconCopy as IconCopy3, IconExternalLink as IconExternalLink2, IconTrash as IconTrash3 } from "@tabler/icons-react";
5796
5804
  import { ContextMenuSeparator as ContextMenuSeparator3 } from "@radix-ui/react-context-menu";
5797
- import { Fragment as Fragment8, jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
5805
+ import { Fragment as Fragment8, jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
5798
5806
  var SidebarContextMenu = ({ children }) => {
5799
5807
  const { mutate: deleteKey } = useDeleteKey();
5800
5808
  const [isAlertOpen, setAlertOpen] = useState10(false);
@@ -5802,7 +5810,7 @@ var SidebarContextMenu = ({ children }) => {
5802
5810
  const { addTab, setSelectedKey, selectTab, setSearch } = useDatabrowserStore();
5803
5811
  const { search: currentSearch } = useTab();
5804
5812
  return /* @__PURE__ */ jsxs26(Fragment8, { children: [
5805
- /* @__PURE__ */ jsx41(
5813
+ /* @__PURE__ */ jsx42(
5806
5814
  DeleteAlertDialog,
5807
5815
  {
5808
5816
  deletionType: "key",
@@ -5816,7 +5824,7 @@ var SidebarContextMenu = ({ children }) => {
5816
5824
  }
5817
5825
  ),
5818
5826
  /* @__PURE__ */ jsxs26(ContextMenu, { modal: false, children: [
5819
- /* @__PURE__ */ jsx41(
5827
+ /* @__PURE__ */ jsx42(
5820
5828
  ContextMenuTrigger,
5821
5829
  {
5822
5830
  onContextMenu: (e) => {
@@ -5843,7 +5851,7 @@ var SidebarContextMenu = ({ children }) => {
5843
5851
  },
5844
5852
  className: "gap-2",
5845
5853
  children: [
5846
- /* @__PURE__ */ jsx41(IconCopy3, { size: 16 }),
5854
+ /* @__PURE__ */ jsx42(IconCopy3, { size: 16 }),
5847
5855
  "Copy key"
5848
5856
  ]
5849
5857
  }
@@ -5859,14 +5867,14 @@ var SidebarContextMenu = ({ children }) => {
5859
5867
  },
5860
5868
  className: "gap-2",
5861
5869
  children: [
5862
- /* @__PURE__ */ jsx41(IconExternalLink2, { size: 16 }),
5870
+ /* @__PURE__ */ jsx42(IconExternalLink2, { size: 16 }),
5863
5871
  "Open in new tab"
5864
5872
  ]
5865
5873
  }
5866
5874
  ),
5867
- /* @__PURE__ */ jsx41(ContextMenuSeparator3, {}),
5875
+ /* @__PURE__ */ jsx42(ContextMenuSeparator3, {}),
5868
5876
  /* @__PURE__ */ jsxs26(ContextMenuItem, { onClick: () => setAlertOpen(true), className: "gap-2", children: [
5869
- /* @__PURE__ */ jsx41(IconTrash3, { size: 16 }),
5877
+ /* @__PURE__ */ jsx42(IconTrash3, { size: 16 }),
5870
5878
  "Delete key"
5871
5879
  ] })
5872
5880
  ] })
@@ -5875,10 +5883,10 @@ var SidebarContextMenu = ({ children }) => {
5875
5883
  };
5876
5884
 
5877
5885
  // src/components/databrowser/components/sidebar/keys-list.tsx
5878
- import { Fragment as Fragment9, jsx as jsx42, jsxs as jsxs27 } from "react/jsx-runtime";
5886
+ import { Fragment as Fragment9, jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
5879
5887
  var KeysList = () => {
5880
5888
  const { keys } = useKeys();
5881
- return /* @__PURE__ */ jsx42(SidebarContextMenu, { children: /* @__PURE__ */ jsx42(Fragment9, { children: keys.map((data, i) => /* @__PURE__ */ jsx42(KeyItem, { nextKey: keys.at(i + 1)?.[0] ?? "", data }, data[0])) }) });
5889
+ return /* @__PURE__ */ jsx43(SidebarContextMenu, { children: /* @__PURE__ */ jsx43(Fragment9, { children: keys.map((data, i) => /* @__PURE__ */ jsx43(KeyItem, { nextKey: keys.at(i + 1)?.[0] ?? "", data }, data[0])) }) });
5882
5890
  };
5883
5891
  var keyStyles = {
5884
5892
  string: "border-sky-400 !bg-sky-50 text-sky-900",
@@ -5907,9 +5915,9 @@ var KeyItem = ({ data, nextKey }) => {
5907
5915
  ),
5908
5916
  onClick: () => setSelectedKey(dataKey),
5909
5917
  children: [
5910
- /* @__PURE__ */ jsx42(TypeTag, { variant: dataType, type: "icon" }),
5911
- /* @__PURE__ */ jsx42("p", { className: "truncate whitespace-nowrap", children: dataKey }),
5912
- !isKeySelected && !isNextKeySelected && /* @__PURE__ */ jsx42("span", { className: "absolute -bottom-px left-3 right-3 h-px bg-zinc-100" })
5918
+ /* @__PURE__ */ jsx43(TypeTag, { variant: dataType, type: "icon" }),
5919
+ /* @__PURE__ */ jsx43("p", { className: "truncate whitespace-nowrap", children: dataKey }),
5920
+ !isKeySelected && !isNextKeySelected && /* @__PURE__ */ jsx43("span", { className: "absolute -bottom-px left-3 right-3 h-px bg-zinc-100" })
5913
5921
  ]
5914
5922
  }
5915
5923
  );
@@ -5918,7 +5926,7 @@ var KeyItem = ({ data, nextKey }) => {
5918
5926
  // src/components/databrowser/components/sidebar/search-input.tsx
5919
5927
  import { useEffect as useEffect11, useRef as useRef3, useState as useState11 } from "react";
5920
5928
  import { IconX } from "@tabler/icons-react";
5921
- import { jsx as jsx43, jsxs as jsxs28 } from "react/jsx-runtime";
5929
+ import { jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
5922
5930
  var dedupeSearchHistory = (history) => {
5923
5931
  const seen = /* @__PURE__ */ new Set();
5924
5932
  return history.filter((item) => {
@@ -5976,7 +5984,7 @@ var SearchInput = () => {
5976
5984
  };
5977
5985
  return /* @__PURE__ */ jsxs28("div", { className: "relative grow", children: [
5978
5986
  /* @__PURE__ */ jsxs28(Popover, { open: isFocus && filteredHistory.length > 0, children: [
5979
- /* @__PURE__ */ jsx43(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx43("div", { children: /* @__PURE__ */ jsx43(
5987
+ /* @__PURE__ */ jsx44(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx44("div", { children: /* @__PURE__ */ jsx44(
5980
5988
  Input,
5981
5989
  {
5982
5990
  ref: inputRef,
@@ -5995,7 +6003,7 @@ var SearchInput = () => {
5995
6003
  onBlur: () => setIsFocus(false)
5996
6004
  }
5997
6005
  ) }) }),
5998
- /* @__PURE__ */ jsx43(
6006
+ /* @__PURE__ */ jsx44(
5999
6007
  PopoverContent,
6000
6008
  {
6001
6009
  className: "w-[--radix-popover-trigger-width] divide-y px-3 py-2 text-[13px] text-zinc-900",
@@ -6004,7 +6012,7 @@ var SearchInput = () => {
6004
6012
  e.preventDefault();
6005
6013
  e.stopPropagation();
6006
6014
  },
6007
- children: filteredHistory.map((item, index) => /* @__PURE__ */ jsx43("div", { className: "w-full py-[3px]", children: /* @__PURE__ */ jsx43(
6015
+ children: filteredHistory.map((item, index) => /* @__PURE__ */ jsx44("div", { className: "w-full py-[3px]", children: /* @__PURE__ */ jsx44(
6008
6016
  "button",
6009
6017
  {
6010
6018
  ref: (el) => {
@@ -6025,14 +6033,14 @@ var SearchInput = () => {
6025
6033
  type: "button",
6026
6034
  variant: "link",
6027
6035
  size: "icon",
6028
- className: "absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100",
6036
+ className: "absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-zinc-500 hover:text-zinc-900",
6029
6037
  onClick: () => {
6030
6038
  setSearchKey("");
6031
6039
  setState("");
6032
6040
  },
6033
6041
  children: [
6034
- /* @__PURE__ */ jsx43(IconX, { size: 16 }),
6035
- /* @__PURE__ */ jsx43("span", { className: "sr-only", children: "Clear" })
6042
+ /* @__PURE__ */ jsx44(IconX, { size: 16 }),
6043
+ /* @__PURE__ */ jsx44("span", { className: "sr-only", children: "Clear" })
6036
6044
  ]
6037
6045
  }
6038
6046
  ),
@@ -6041,15 +6049,15 @@ var SearchInput = () => {
6041
6049
  };
6042
6050
 
6043
6051
  // src/components/databrowser/components/sidebar/skeleton-buttons.tsx
6044
- import { jsx as jsx44, jsxs as jsxs29 } from "react/jsx-runtime";
6052
+ import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
6045
6053
  var DEFAULT_SKELETON_COUNT = 6;
6046
- var LoadingSkeleton = () => /* @__PURE__ */ jsx44("div", { className: "block h-full w-full rounded-lg border border-zinc-200 bg-white p-1 pr-3 transition-all", children: Array.from({ length: DEFAULT_SKELETON_COUNT }).fill(0).map((_, idx) => /* @__PURE__ */ jsxs29("div", { className: "flex h-10 items-center gap-2 px-3", children: [
6047
- /* @__PURE__ */ jsx44(Skeleton, { className: "size-5 shrink-0 rounded" }),
6048
- /* @__PURE__ */ jsx44(Skeleton, { className: "h-4 grow rounded" })
6054
+ var LoadingSkeleton = () => /* @__PURE__ */ jsx45("div", { className: "block h-full w-full rounded-lg border border-zinc-200 bg-white p-1 pr-3 transition-all", children: Array.from({ length: DEFAULT_SKELETON_COUNT }).fill(0).map((_, idx) => /* @__PURE__ */ jsxs29("div", { className: "flex h-10 items-center gap-2 px-3", children: [
6055
+ /* @__PURE__ */ jsx45(Skeleton, { className: "size-5 shrink-0 rounded" }),
6056
+ /* @__PURE__ */ jsx45(Skeleton, { className: "h-4 grow rounded" })
6049
6057
  ] }, idx)) });
6050
6058
 
6051
6059
  // src/components/databrowser/components/sidebar/type-selector.tsx
6052
- import { jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
6060
+ import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
6053
6061
  var ALL_TYPES_KEY = "all";
6054
6062
  function DataTypeSelector() {
6055
6063
  const { search, setSearchType } = useTab();
@@ -6065,9 +6073,9 @@ function DataTypeSelector() {
6065
6073
  },
6066
6074
  value: search.type === void 0 ? ALL_TYPES_KEY : search.type,
6067
6075
  children: [
6068
- /* @__PURE__ */ jsx45(SelectTrigger, { className: "!w-auto select-none whitespace-nowrap rounded-r-none border-r-0 border-zinc-300 pr-8", children: /* @__PURE__ */ jsx45(SelectValue, {}) }),
6069
- /* @__PURE__ */ jsx45(SelectContent, { children: /* @__PURE__ */ jsx45(SelectGroup, { children: [[ALL_TYPES_KEY, "All Types"], ...Object.entries(DATA_TYPE_NAMES)].map(
6070
- ([key, value]) => /* @__PURE__ */ jsx45(SelectItem, { value: key, children: value }, key)
6076
+ /* @__PURE__ */ jsx46(SelectTrigger, { className: "!w-auto select-none whitespace-nowrap rounded-r-none border-r-0 border-zinc-300 pr-8", children: /* @__PURE__ */ jsx46(SelectValue, {}) }),
6077
+ /* @__PURE__ */ jsx46(SelectContent, { children: /* @__PURE__ */ jsx46(SelectGroup, { children: [[ALL_TYPES_KEY, "All Types"], ...Object.entries(DATA_TYPE_NAMES)].map(
6078
+ ([key, value]) => /* @__PURE__ */ jsx46(SelectItem, { value: key, children: value }, key)
6071
6079
  ) }) })
6072
6080
  ]
6073
6081
  }
@@ -6075,19 +6083,19 @@ function DataTypeSelector() {
6075
6083
  }
6076
6084
 
6077
6085
  // src/components/databrowser/components/sidebar/index.tsx
6078
- import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
6086
+ import { jsx as jsx47, jsxs as jsxs31 } from "react/jsx-runtime";
6079
6087
  function Sidebar() {
6080
6088
  const { keys, query } = useKeys();
6081
6089
  return /* @__PURE__ */ jsxs31("div", { className: "flex h-full flex-col gap-2 p-4", children: [
6082
6090
  /* @__PURE__ */ jsxs31("div", { className: "rounded-lg bg-zinc-100", children: [
6083
6091
  /* @__PURE__ */ jsxs31("div", { className: "flex h-10 items-center justify-between pl-1", children: [
6084
- /* @__PURE__ */ jsx46(DisplayDbSize, {}),
6092
+ /* @__PURE__ */ jsx47(DisplayDbSize, {}),
6085
6093
  /* @__PURE__ */ jsxs31("div", { className: "flex gap-1", children: [
6086
- /* @__PURE__ */ jsx46(
6094
+ /* @__PURE__ */ jsx47(
6087
6095
  Button,
6088
6096
  {
6089
6097
  "aria-label": "Refresh",
6090
- className: "h-7 w-7 px-0",
6098
+ className: "h-7 w-7 px-0 text-zinc-500",
6091
6099
  onClick: () => {
6092
6100
  queryClient.invalidateQueries({
6093
6101
  queryKey: [FETCH_KEYS_QUERY_KEY]
@@ -6105,28 +6113,28 @@ function Sidebar() {
6105
6113
  queryKey: [FETCH_KEY_TYPE_QUERY_KEY]
6106
6114
  });
6107
6115
  },
6108
- children: /* @__PURE__ */ jsx46(Spinner, { isLoading: query.isFetching, children: /* @__PURE__ */ jsx46(IconRefresh, { size: 16 }) })
6116
+ children: /* @__PURE__ */ jsx47(Spinner, { isLoading: query.isFetching, children: /* @__PURE__ */ jsx47(IconRefresh, { size: 16 }) })
6109
6117
  }
6110
6118
  ),
6111
- /* @__PURE__ */ jsx46(AddKeyModal, {})
6119
+ /* @__PURE__ */ jsx47(AddKeyModal, {})
6112
6120
  ] })
6113
6121
  ] }),
6114
6122
  /* @__PURE__ */ jsxs31("div", { className: "flex h-10 items-center", children: [
6115
- /* @__PURE__ */ jsx46(DataTypeSelector, {}),
6116
- /* @__PURE__ */ jsx46(SearchInput, {})
6123
+ /* @__PURE__ */ jsx47(DataTypeSelector, {}),
6124
+ /* @__PURE__ */ jsx47(SearchInput, {})
6117
6125
  ] })
6118
6126
  ] }),
6119
- query.isLoading && keys.length === 0 ? /* @__PURE__ */ jsx46(LoadingSkeleton, {}) : keys.length > 0 ? (
6127
+ query.isLoading && keys.length === 0 ? /* @__PURE__ */ jsx47(LoadingSkeleton, {}) : keys.length > 0 ? (
6120
6128
  // Infinite scroll already has a loader at the bottom
6121
- /* @__PURE__ */ jsx46(InfiniteScroll, { query, disableRoundedInherit: true, className: "min-h-0", children: /* @__PURE__ */ jsx46(KeysList, {}) })
6122
- ) : /* @__PURE__ */ jsx46(Empty, {})
6129
+ /* @__PURE__ */ jsx47(InfiniteScroll, { query, disableRoundedInherit: true, className: "min-h-0", children: /* @__PURE__ */ jsx47(KeysList, {}) })
6130
+ ) : /* @__PURE__ */ jsx47(Empty, {})
6123
6131
  ] });
6124
6132
  }
6125
6133
 
6126
6134
  // src/components/databrowser/components/databrowser-instance.tsx
6127
- import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
6135
+ import { jsx as jsx48, jsxs as jsxs32 } from "react/jsx-runtime";
6128
6136
  var DatabrowserInstance = ({ hidden }) => {
6129
- return /* @__PURE__ */ jsx47(KeysProvider, { children: /* @__PURE__ */ jsxs32("div", { className: cn("min-h-0 grow rounded-md bg-zinc-100", hidden && "hidden"), children: [
6137
+ return /* @__PURE__ */ jsx48(KeysProvider, { children: /* @__PURE__ */ jsxs32("div", { className: cn("min-h-0 grow rounded-md bg-zinc-100", hidden && "hidden"), children: [
6130
6138
  /* @__PURE__ */ jsxs32(
6131
6139
  PanelGroup,
6132
6140
  {
@@ -6134,13 +6142,13 @@ var DatabrowserInstance = ({ hidden }) => {
6134
6142
  direction: "horizontal",
6135
6143
  className: "h-full w-full gap-0.5 text-sm antialiased",
6136
6144
  children: [
6137
- /* @__PURE__ */ jsx47(Panel, { defaultSize: 30, minSize: 30, children: /* @__PURE__ */ jsx47(Sidebar, {}) }),
6138
- /* @__PURE__ */ jsx47(PanelResizeHandle, { className: "group flex h-full w-3 justify-center", children: /* @__PURE__ */ jsx47("div", { className: "h-full border-r border-dashed border-zinc-200 transition-colors group-hover:border-zinc-500" }) }),
6139
- /* @__PURE__ */ jsx47(Panel, { minSize: 40, children: /* @__PURE__ */ jsx47(DataDisplay, {}) })
6145
+ /* @__PURE__ */ jsx48(Panel, { defaultSize: 30, minSize: 30, children: /* @__PURE__ */ jsx48(Sidebar, {}) }),
6146
+ /* @__PURE__ */ jsx48(PanelResizeHandle, { className: "group flex h-full w-3 justify-center", children: /* @__PURE__ */ jsx48("div", { className: "h-full border-r border-dashed border-zinc-200 transition-colors group-hover:border-zinc-500" }) }),
6147
+ /* @__PURE__ */ jsx48(Panel, { minSize: 40, children: /* @__PURE__ */ jsx48(DataDisplay, {}) })
6140
6148
  ]
6141
6149
  }
6142
6150
  ),
6143
- /* @__PURE__ */ jsx47(Toaster, {})
6151
+ /* @__PURE__ */ jsx48(Toaster, {})
6144
6152
  ] }) });
6145
6153
  };
6146
6154
 
@@ -6163,13 +6171,13 @@ import { IconChevronDown as IconChevronDown2, IconPlus as IconPlus2 } from "@tab
6163
6171
  import * as React13 from "react";
6164
6172
  import { Command as CommandPrimitive } from "cmdk";
6165
6173
  import { MagnifyingGlassIcon } from "@radix-ui/react-icons";
6166
- import { jsx as jsx48, jsxs as jsxs33 } from "react/jsx-runtime";
6167
- var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6174
+ import { jsx as jsx49, jsxs as jsxs33 } from "react/jsx-runtime";
6175
+ var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6168
6176
  CommandPrimitive,
6169
6177
  {
6170
6178
  ref,
6171
6179
  className: cn(
6172
- "flex h-full w-full flex-col overflow-hidden rounded-md bg-white text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",
6180
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-white text-zinc-950",
6173
6181
  className
6174
6182
  ),
6175
6183
  ...props
@@ -6177,13 +6185,13 @@ var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
6177
6185
  ));
6178
6186
  Command.displayName = CommandPrimitive.displayName;
6179
6187
  var CommandInput = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs33("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
6180
- /* @__PURE__ */ jsx48(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
6181
- /* @__PURE__ */ jsx48(
6188
+ /* @__PURE__ */ jsx49(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
6189
+ /* @__PURE__ */ jsx49(
6182
6190
  CommandPrimitive.Input,
6183
6191
  {
6184
6192
  ref,
6185
6193
  className: cn(
6186
- "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50 dark:placeholder:text-neutral-400",
6194
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-zinc-500 disabled:cursor-not-allowed disabled:opacity-50",
6187
6195
  className
6188
6196
  ),
6189
6197
  ...props
@@ -6191,7 +6199,7 @@ var CommandInput = React13.forwardRef(({ className, ...props }, ref) => /* @__PU
6191
6199
  )
6192
6200
  ] }));
6193
6201
  CommandInput.displayName = CommandPrimitive.Input.displayName;
6194
- var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6202
+ var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6195
6203
  CommandPrimitive.List,
6196
6204
  {
6197
6205
  ref,
@@ -6200,62 +6208,43 @@ var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
6200
6208
  }
6201
6209
  ));
6202
6210
  CommandList.displayName = CommandPrimitive.List.displayName;
6203
- var CommandEmpty = React13.forwardRef((props, ref) => /* @__PURE__ */ jsx48(
6204
- CommandPrimitive.Empty,
6205
- {
6206
- ref,
6207
- className: "py-6 text-center text-sm",
6208
- ...props
6209
- }
6210
- ));
6211
+ var CommandEmpty = React13.forwardRef((props, ref) => /* @__PURE__ */ jsx49(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
6211
6212
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
6212
- var CommandGroup = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6213
+ var CommandGroup = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6213
6214
  CommandPrimitive.Group,
6214
6215
  {
6215
6216
  ref,
6216
6217
  className: cn(
6217
- "overflow-hidden p-1 text-neutral-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500 dark:text-neutral-50 dark:[&_[cmdk-group-heading]]:text-neutral-400",
6218
+ "text-zinc-950[&_[cmdk-group-heading]]:px-2 overflow-hidden p-1 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-zinc-500",
6218
6219
  className
6219
6220
  ),
6220
6221
  ...props
6221
6222
  }
6222
6223
  ));
6223
6224
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
6224
- var CommandSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6225
+ var CommandSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6225
6226
  CommandPrimitive.Separator,
6226
6227
  {
6227
6228
  ref,
6228
- className: cn("-mx-1 h-px bg-neutral-200 dark:bg-neutral-800", className),
6229
+ className: cn("-mx-1 h-px bg-zinc-200", className),
6229
6230
  ...props
6230
6231
  }
6231
6232
  ));
6232
6233
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
6233
- var CommandItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6234
+ var CommandItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6234
6235
  CommandPrimitive.Item,
6235
6236
  {
6236
6237
  ref,
6237
6238
  className: cn(
6238
- "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:data-[selected=true]:bg-neutral-800 dark:data-[selected=true]:text-neutral-50",
6239
+ "data-[disabled=true]:opacity-50[&_svg]:pointer-events-none relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-zinc-100 data-[selected=true]:text-zinc-900 [&_svg]:size-4 [&_svg]:shrink-0",
6239
6240
  className
6240
6241
  ),
6241
6242
  ...props
6242
6243
  }
6243
6244
  ));
6244
6245
  CommandItem.displayName = CommandPrimitive.Item.displayName;
6245
- var CommandShortcut = ({
6246
- className,
6247
- ...props
6248
- }) => {
6249
- return /* @__PURE__ */ jsx48(
6250
- "span",
6251
- {
6252
- className: cn(
6253
- "ml-auto text-xs tracking-widest text-neutral-500 dark:text-neutral-400",
6254
- className
6255
- ),
6256
- ...props
6257
- }
6258
- );
6246
+ var CommandShortcut = ({ className, ...props }) => {
6247
+ return /* @__PURE__ */ jsx49("span", { className: cn("ml-auto text-xs tracking-widest text-zinc-500", className), ...props });
6259
6248
  };
6260
6249
  CommandShortcut.displayName = "CommandShortcut";
6261
6250
 
@@ -6270,12 +6259,12 @@ import {
6270
6259
  } from "@tabler/icons-react";
6271
6260
 
6272
6261
  // src/components/databrowser/components/tab-type-icon.tsx
6273
- import { jsx as jsx49 } from "react/jsx-runtime";
6262
+ import { jsx as jsx50 } from "react/jsx-runtime";
6274
6263
  function TabTypeIcon({ selectedKey }) {
6275
6264
  const { data: keyType, isLoading } = useFetchKeyType(selectedKey);
6276
- if (isLoading) return /* @__PURE__ */ jsx49(Skeleton, { className: "h-5 w-5 rounded" });
6265
+ if (isLoading) return /* @__PURE__ */ jsx50(Skeleton, { className: "h-5 w-5 rounded" });
6277
6266
  if (!keyType || keyType === "none") return;
6278
- return /* @__PURE__ */ jsx49(TypeTag, { variant: keyType, type: "icon" });
6267
+ return /* @__PURE__ */ jsx50(TypeTag, { variant: keyType, type: "icon" });
6279
6268
  }
6280
6269
 
6281
6270
  // src/hooks/use-overflow.ts
@@ -6305,7 +6294,7 @@ var useOverflow = () => {
6305
6294
  };
6306
6295
 
6307
6296
  // src/components/databrowser/components/tab.tsx
6308
- import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
6297
+ import { jsx as jsx51, jsxs as jsxs34 } from "react/jsx-runtime";
6309
6298
  var Tab = ({ id, isList }) => {
6310
6299
  const { active, search, selectedKey, pinned } = useTab();
6311
6300
  const {
@@ -6321,7 +6310,7 @@ var Tab = ({ id, isList }) => {
6321
6310
  const hasPinnedTabs = tabs.some(([, data]) => data.pinned);
6322
6311
  const { ref, isOverflow } = useOverflow();
6323
6312
  const label = search.key || selectedKey;
6324
- const iconNode = search.key ? /* @__PURE__ */ jsx50(IconSearch, { size: 15 }) : selectedKey ? /* @__PURE__ */ jsx50(TabTypeIcon, { selectedKey }) : void 0;
6313
+ const iconNode = search.key ? /* @__PURE__ */ jsx51(IconSearch, { size: 15 }) : selectedKey ? /* @__PURE__ */ jsx51(TabTypeIcon, { selectedKey }) : void 0;
6325
6314
  const tabNode = /* @__PURE__ */ jsxs34(
6326
6315
  "div",
6327
6316
  {
@@ -6335,7 +6324,7 @@ var Tab = ({ id, isList }) => {
6335
6324
  ),
6336
6325
  children: [
6337
6326
  iconNode,
6338
- /* @__PURE__ */ jsx50(
6327
+ /* @__PURE__ */ jsx51(
6339
6328
  "span",
6340
6329
  {
6341
6330
  ref,
@@ -6343,8 +6332,8 @@ var Tab = ({ id, isList }) => {
6343
6332
  children: label || "New Tab"
6344
6333
  }
6345
6334
  ),
6346
- pinned && /* @__PURE__ */ jsx50(IconPin, { size: 14, className: "text-zinc-500" }),
6347
- tabs.length > 1 && !pinned && /* @__PURE__ */ jsx50(
6335
+ pinned && /* @__PURE__ */ jsx51(IconPin, { size: 14, className: "text-zinc-500" }),
6336
+ tabs.length > 1 && !pinned && /* @__PURE__ */ jsx51(
6348
6337
  "button",
6349
6338
  {
6350
6339
  onClick: (e) => {
@@ -6352,14 +6341,14 @@ var Tab = ({ id, isList }) => {
6352
6341
  removeTab(id);
6353
6342
  },
6354
6343
  className: "p-1 text-zinc-300 transition-colors hover:text-zinc-500",
6355
- children: /* @__PURE__ */ jsx50(IconX2, { size: 16 })
6344
+ children: /* @__PURE__ */ jsx51(IconX2, { size: 16 })
6356
6345
  }
6357
6346
  )
6358
6347
  ]
6359
6348
  }
6360
6349
  );
6361
6350
  return /* @__PURE__ */ jsxs34(ContextMenu, { children: [
6362
- /* @__PURE__ */ jsx50(SimpleTooltip, { content: isOverflow ? label : void 0, children: /* @__PURE__ */ jsx50(ContextMenuTrigger, { asChild: true, children: tabNode }) }),
6351
+ /* @__PURE__ */ jsx51(SimpleTooltip, { content: isOverflow ? label : void 0, children: /* @__PURE__ */ jsx51(ContextMenuTrigger, { asChild: true, children: tabNode }) }),
6363
6352
  /* @__PURE__ */ jsxs34(
6364
6353
  ContextMenuContent,
6365
6354
  {
@@ -6368,20 +6357,20 @@ var Tab = ({ id, isList }) => {
6368
6357
  },
6369
6358
  children: [
6370
6359
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => togglePinTab(id), className: "gap-2", children: [
6371
- /* @__PURE__ */ jsx50(IconPin, { size: 16 }),
6360
+ /* @__PURE__ */ jsx51(IconPin, { size: 16 }),
6372
6361
  pinned ? "Unpin Tab" : "Pin Tab"
6373
6362
  ] }),
6374
6363
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => duplicateTab(id), className: "gap-2", children: [
6375
- /* @__PURE__ */ jsx50(IconCopyPlus, { size: 16 }),
6364
+ /* @__PURE__ */ jsx51(IconCopyPlus, { size: 16 }),
6376
6365
  "Duplicate Tab"
6377
6366
  ] }),
6378
- /* @__PURE__ */ jsx50(ContextMenuSeparator, {}),
6367
+ /* @__PURE__ */ jsx51(ContextMenuSeparator, {}),
6379
6368
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => forceRemoveTab(id), className: "gap-2", children: [
6380
- /* @__PURE__ */ jsx50(IconX2, { size: 16 }),
6369
+ /* @__PURE__ */ jsx51(IconX2, { size: 16 }),
6381
6370
  "Close Tab"
6382
6371
  ] }),
6383
6372
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => closeOtherTabs(id), className: "gap-2", children: [
6384
- /* @__PURE__ */ jsx50(IconSquareX, { size: 16 }),
6373
+ /* @__PURE__ */ jsx51(IconSquareX, { size: 16 }),
6385
6374
  "Close Other Tabs"
6386
6375
  ] }),
6387
6376
  /* @__PURE__ */ jsxs34(
@@ -6391,7 +6380,7 @@ var Tab = ({ id, isList }) => {
6391
6380
  className: "gap-2",
6392
6381
  disabled: !hasPinnedTabs,
6393
6382
  children: [
6394
- /* @__PURE__ */ jsx50(IconArrowsMinimize, { size: 16 }),
6383
+ /* @__PURE__ */ jsx51(IconArrowsMinimize, { size: 16 }),
6395
6384
  "Close All But Pinned"
6396
6385
  ]
6397
6386
  }
@@ -6403,7 +6392,7 @@ var Tab = ({ id, isList }) => {
6403
6392
  };
6404
6393
 
6405
6394
  // src/components/databrowser/components/databrowser-tabs.tsx
6406
- import { jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
6395
+ import { jsx as jsx52, jsxs as jsxs35 } from "react/jsx-runtime";
6407
6396
  var SortableTab = ({ id }) => {
6408
6397
  const [originalWidth, setOriginalWidth] = useState13(null);
6409
6398
  const textRef = useRef5(null);
@@ -6471,7 +6460,7 @@ var SortableTab = ({ id }) => {
6471
6460
  minWidth: originalWidth ? `${originalWidth}px` : void 0
6472
6461
  } : {}
6473
6462
  };
6474
- return /* @__PURE__ */ jsx51(
6463
+ return /* @__PURE__ */ jsx52(
6475
6464
  "div",
6476
6465
  {
6477
6466
  ref: measureRef,
@@ -6479,7 +6468,7 @@ var SortableTab = ({ id }) => {
6479
6468
  className: isDragging ? "cursor-grabbing" : isPinned ? "cursor-default" : "cursor-grab",
6480
6469
  ...attributes,
6481
6470
  ...isPinned ? {} : listeners2,
6482
- children: /* @__PURE__ */ jsx51(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx51(Tab, { id }) })
6471
+ children: /* @__PURE__ */ jsx52(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx52(Tab, { id }) })
6483
6472
  }
6484
6473
  );
6485
6474
  };
@@ -6555,16 +6544,16 @@ var DatabrowserTabs = () => {
6555
6544
  }
6556
6545
  };
6557
6546
  return /* @__PURE__ */ jsxs35("div", { className: "relative mb-2 shrink-0", children: [
6558
- /* @__PURE__ */ jsx51("div", { className: "absolute bottom-0 left-0 right-0 -z-10 h-[1px] w-full bg-zinc-200" }),
6547
+ /* @__PURE__ */ jsx52("div", { className: "absolute bottom-0 left-0 right-0 -z-10 h-[1px] w-full bg-zinc-200" }),
6559
6548
  /* @__PURE__ */ jsxs35("div", { className: "flex translate-y-[1px] items-center gap-1", children: [
6560
6549
  /* @__PURE__ */ jsxs35("div", { className: "relative min-w-0 flex-1", children: [
6561
- /* @__PURE__ */ jsx51(
6550
+ /* @__PURE__ */ jsx52(
6562
6551
  "div",
6563
6552
  {
6564
6553
  className: `tabs-shadow-left pointer-events-none absolute left-0 top-0 z-10 h-full w-6 transition-opacity duration-200 ${hasLeftShadow ? "opacity-100" : "opacity-0"}`
6565
6554
  }
6566
6555
  ),
6567
- /* @__PURE__ */ jsx51(
6556
+ /* @__PURE__ */ jsx52(
6568
6557
  "div",
6569
6558
  {
6570
6559
  className: `tabs-shadow-right pointer-events-none absolute right-0 top-0 z-10 h-full w-6 transition-opacity duration-200 ${hasRightShadow ? "opacity-100" : "opacity-0"}`
@@ -6577,7 +6566,7 @@ var DatabrowserTabs = () => {
6577
6566
  onScroll: recomputeShadows,
6578
6567
  className: "scrollbar-hide flex min-w-0 flex-1 items-center gap-1 overflow-x-auto pb-[1px] [&::-webkit-scrollbar]:hidden",
6579
6568
  children: [
6580
- /* @__PURE__ */ jsx51(
6569
+ /* @__PURE__ */ jsx52(
6581
6570
  DndContext,
6582
6571
  {
6583
6572
  sensors,
@@ -6589,24 +6578,24 @@ var DatabrowserTabs = () => {
6589
6578
  strategy: MeasuringStrategy.Always
6590
6579
  }
6591
6580
  },
6592
- children: /* @__PURE__ */ jsx51(
6581
+ children: /* @__PURE__ */ jsx52(
6593
6582
  SortableContext,
6594
6583
  {
6595
6584
  items: sortedTabs.map(([id]) => id),
6596
6585
  strategy: horizontalListSortingStrategy,
6597
- children: selectedTab && sortedTabs.map(([id]) => /* @__PURE__ */ jsx51(SortableTab, { id }, id))
6586
+ children: selectedTab && sortedTabs.map(([id]) => /* @__PURE__ */ jsx52(SortableTab, { id }, id))
6598
6587
  }
6599
6588
  )
6600
6589
  }
6601
6590
  ),
6602
- !isOverflow && /* @__PURE__ */ jsx51("div", { className: "flex items-center gap-1 pl-1 pr-1", children: /* @__PURE__ */ jsx51(AddTabButton, {}) })
6591
+ !isOverflow && /* @__PURE__ */ jsx52("div", { className: "flex items-center gap-1 pl-1 pr-1", children: /* @__PURE__ */ jsx52(AddTabButton, {}) })
6603
6592
  ]
6604
6593
  }
6605
6594
  )
6606
6595
  ] }),
6607
6596
  /* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-1 pl-1", children: [
6608
- isOverflow && /* @__PURE__ */ jsx51(AddTabButton, {}),
6609
- tabs.length > 1 && /* @__PURE__ */ jsx51(TabsListButton, { tabs, onSelectTab: selectTab })
6597
+ isOverflow && /* @__PURE__ */ jsx52(AddTabButton, {}),
6598
+ tabs.length > 1 && /* @__PURE__ */ jsx52(TabsListButton, { tabs, onSelectTab: selectTab })
6610
6599
  ] })
6611
6600
  ] })
6612
6601
  ] });
@@ -6623,7 +6612,7 @@ function AddTabButton() {
6623
6612
  tab.scrollIntoView({ behavior: "smooth" });
6624
6613
  }, 20);
6625
6614
  };
6626
- return /* @__PURE__ */ jsx51(
6615
+ return /* @__PURE__ */ jsx52(
6627
6616
  Button,
6628
6617
  {
6629
6618
  "aria-label": "Add new tab",
@@ -6631,7 +6620,7 @@ function AddTabButton() {
6631
6620
  size: "icon-sm",
6632
6621
  onClick: handleAddTab,
6633
6622
  className: "flex-shrink-0",
6634
- children: /* @__PURE__ */ jsx51(IconPlus2, { className: "text-zinc-500", size: 16 })
6623
+ children: /* @__PURE__ */ jsx52(IconPlus2, { className: "text-zinc-500", size: 16 })
6635
6624
  }
6636
6625
  );
6637
6626
  }
@@ -6658,7 +6647,7 @@ function TabsListButton({
6658
6647
  }, 20);
6659
6648
  };
6660
6649
  return /* @__PURE__ */ jsxs35(Popover, { open, onOpenChange: setOpen, children: [
6661
- /* @__PURE__ */ jsx51(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
6650
+ /* @__PURE__ */ jsx52(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
6662
6651
  Button,
6663
6652
  {
6664
6653
  variant: "secondary",
@@ -6666,14 +6655,14 @@ function TabsListButton({
6666
6655
  className: "h-7 gap-1 px-2",
6667
6656
  "aria-label": "Search in tabs",
6668
6657
  children: [
6669
- /* @__PURE__ */ jsx51("span", { className: "text-xs text-zinc-600", children: tabs.length }),
6670
- /* @__PURE__ */ jsx51(IconChevronDown2, { className: "text-zinc-500", size: 16 })
6658
+ /* @__PURE__ */ jsx52("span", { className: "text-xs text-zinc-600", children: tabs.length }),
6659
+ /* @__PURE__ */ jsx52(IconChevronDown2, { className: "text-zinc-500", size: 16 })
6671
6660
  ]
6672
6661
  }
6673
6662
  ) }),
6674
- /* @__PURE__ */ jsx51(PopoverContent, { className: "w-96 p-0", align: "end", children: /* @__PURE__ */ jsx51(Command, { children: /* @__PURE__ */ jsxs35(CommandList, { children: [
6675
- /* @__PURE__ */ jsx51(CommandEmpty, { children: "No tabs" }),
6676
- /* @__PURE__ */ jsx51(CommandGroup, { children: sorted.map(([_id, item]) => /* @__PURE__ */ jsx51(
6663
+ /* @__PURE__ */ jsx52(PopoverContent, { className: "w-96 p-0", align: "end", children: /* @__PURE__ */ jsx52(Command, { children: /* @__PURE__ */ jsxs35(CommandList, { children: [
6664
+ /* @__PURE__ */ jsx52(CommandEmpty, { children: "No tabs" }),
6665
+ /* @__PURE__ */ jsx52(CommandGroup, { children: sorted.map(([_id, item]) => /* @__PURE__ */ jsx52(
6677
6666
  CommandItem,
6678
6667
  {
6679
6668
  style: {
@@ -6683,7 +6672,7 @@ function TabsListButton({
6683
6672
  onSelect: () => {
6684
6673
  handleSelectTab(item.id);
6685
6674
  },
6686
- children: /* @__PURE__ */ jsx51(TabIdProvider, { value: _id, children: /* @__PURE__ */ jsx51(Tab, { id: _id, isList: true }) })
6675
+ children: /* @__PURE__ */ jsx52(TabIdProvider, { value: _id, children: /* @__PURE__ */ jsx52(Tab, { id: _id, isList: true }) })
6687
6676
  },
6688
6677
  item.id
6689
6678
  )) })
@@ -6692,30 +6681,45 @@ function TabsListButton({
6692
6681
  }
6693
6682
 
6694
6683
  // src/components/databrowser/index.tsx
6695
- import { jsx as jsx52, jsxs as jsxs36 } from "react/jsx-runtime";
6684
+ import { jsx as jsx53, jsxs as jsxs36 } from "react/jsx-runtime";
6696
6685
  var RedisBrowser = ({
6697
6686
  token,
6698
6687
  url,
6699
6688
  hideTabs,
6700
- storage
6689
+ storage,
6690
+ darkMode = "light"
6701
6691
  }) => {
6702
6692
  const credentials = useMemo9(() => ({ token, url }), [token, url]);
6703
6693
  const rootRef = useRef6(null);
6704
6694
  useEffect14(() => {
6705
6695
  queryClient.resetQueries();
6706
6696
  }, [credentials.url]);
6707
- return /* @__PURE__ */ jsx52(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx52(RedisProvider, { redisCredentials: credentials, children: /* @__PURE__ */ jsx52(DatabrowserProvider, { storage, rootRef, children: /* @__PURE__ */ jsx52(TooltipProvider, { children: /* @__PURE__ */ jsxs36(
6708
- "div",
6709
- {
6710
- className: "ups-db",
6711
- style: { height: "100%", display: "flex", flexDirection: "column" },
6712
- ref: rootRef,
6713
- children: [
6714
- !hideTabs && /* @__PURE__ */ jsx52(DatabrowserTabs, {}),
6715
- /* @__PURE__ */ jsx52(DatabrowserInstances, {})
6716
- ]
6717
- }
6718
- ) }) }) }) });
6697
+ return /* @__PURE__ */ jsx53(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx53(RedisProvider, { redisCredentials: credentials, children: /* @__PURE__ */ jsx53(DarkModeProvider, { darkMode, children: /* @__PURE__ */ jsx53(DatabrowserProvider, { storage, rootRef, children: /* @__PURE__ */ jsx53(TooltipProvider, { children: /* @__PURE__ */ jsx53(RedisBrowserRoot, { hideTabs, rootRef }) }) }) }) }) });
6698
+ };
6699
+ var RedisBrowserRoot = ({
6700
+ hideTabs,
6701
+ rootRef
6702
+ }) => {
6703
+ const theme = useDarkMode();
6704
+ useEffect14(() => {
6705
+ portalWrapper.classList.add("text-zinc-700");
6706
+ portalWrapper.classList.toggle("dark", theme === "dark");
6707
+ }, [theme]);
6708
+ return (
6709
+ /* ups-db is the custom class used to prefix every style in the css bundle */
6710
+ /* @__PURE__ */ jsx53(
6711
+ "div",
6712
+ {
6713
+ className: `ups-db ${theme === "dark" ? "dark" : ""}`,
6714
+ style: { height: "100%", display: "flex", flexDirection: "column" },
6715
+ ref: rootRef,
6716
+ children: /* @__PURE__ */ jsxs36("div", { className: "text-zinc-700", children: [
6717
+ !hideTabs && /* @__PURE__ */ jsx53(DatabrowserTabs, {}),
6718
+ /* @__PURE__ */ jsx53(DatabrowserInstances, {})
6719
+ ] })
6720
+ }
6721
+ )
6722
+ );
6719
6723
  };
6720
6724
  var DatabrowserInstances = () => {
6721
6725
  const { tabs, selectedTab, selectTab, addTab } = useDatabrowserStore();
@@ -6724,7 +6728,7 @@ var DatabrowserInstances = () => {
6724
6728
  else if (!selectedTab) selectTab(tabs[0][0]);
6725
6729
  }, [tabs, selectedTab, addTab, selectTab]);
6726
6730
  if (!selectedTab) return;
6727
- return tabs.map(([id]) => /* @__PURE__ */ jsx52(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx52(DatabrowserInstance, { hidden: id !== selectedTab }) }, id));
6731
+ return tabs.map(([id]) => /* @__PURE__ */ jsx53(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx53(DatabrowserInstance, { hidden: id !== selectedTab }) }, id));
6728
6732
  };
6729
6733
  export {
6730
6734
  RedisBrowser