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

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
  }
@@ -3087,9 +3105,9 @@ var cva = (base, config) => {
3087
3105
  };
3088
3106
 
3089
3107
  // src/components/ui/toast.tsx
3090
- import { jsx as jsx4 } from "react/jsx-runtime";
3108
+ import { jsx as jsx5 } from "react/jsx-runtime";
3091
3109
  var ToastProvider = ToastPrimitives.Provider;
3092
- var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3110
+ var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3093
3111
  ToastPrimitives.Viewport,
3094
3112
  {
3095
3113
  ref,
@@ -3102,12 +3120,12 @@ var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PU
3102
3120
  ));
3103
3121
  ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
3104
3122
  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",
3123
+ "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
3124
  {
3107
3125
  variants: {
3108
3126
  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"
3127
+ default: "border bg-white text-zinc-950",
3128
+ destructive: "destructive group border-red-500 bg-red-500 text-zinc-50"
3111
3129
  }
3112
3130
  },
3113
3131
  defaultVariants: {
@@ -3116,7 +3134,7 @@ var toastVariants = cva(
3116
3134
  }
3117
3135
  );
3118
3136
  var Toast = React2.forwardRef(({ className, variant, ...props }, ref) => {
3119
- return /* @__PURE__ */ jsx4(
3137
+ return /* @__PURE__ */ jsx5(
3120
3138
  ToastPrimitives.Root,
3121
3139
  {
3122
3140
  ref,
@@ -3126,33 +3144,33 @@ var Toast = React2.forwardRef(({ className, variant, ...props }, ref) => {
3126
3144
  );
3127
3145
  });
3128
3146
  Toast.displayName = ToastPrimitives.Root.displayName;
3129
- var ToastAction = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3147
+ var ToastAction = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3130
3148
  ToastPrimitives.Action,
3131
3149
  {
3132
3150
  ref,
3133
3151
  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",
3152
+ "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
3153
  className
3136
3154
  ),
3137
3155
  ...props
3138
3156
  }
3139
3157
  ));
3140
3158
  ToastAction.displayName = ToastPrimitives.Action.displayName;
3141
- var ToastClose = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3159
+ var ToastClose = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3142
3160
  ToastPrimitives.Close,
3143
3161
  {
3144
3162
  ref,
3145
3163
  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",
3164
+ "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
3165
  className
3148
3166
  ),
3149
3167
  "toast-close": "",
3150
3168
  ...props,
3151
- children: /* @__PURE__ */ jsx4(Cross2Icon, { className: "size-4" })
3169
+ children: /* @__PURE__ */ jsx5(Cross2Icon, { className: "size-4" })
3152
3170
  }
3153
3171
  ));
3154
3172
  ToastClose.displayName = ToastPrimitives.Close.displayName;
3155
- var ToastTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3173
+ var ToastTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3156
3174
  ToastPrimitives.Title,
3157
3175
  {
3158
3176
  ref,
@@ -3161,7 +3179,7 @@ var ToastTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3161
3179
  }
3162
3180
  ));
3163
3181
  ToastTitle.displayName = ToastPrimitives.Title.displayName;
3164
- var ToastDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
3182
+ var ToastDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
3165
3183
  ToastPrimitives.Description,
3166
3184
  {
3167
3185
  ref,
@@ -3172,24 +3190,24 @@ var ToastDescription = React2.forwardRef(({ className, ...props }, ref) => /* @_
3172
3190
  ToastDescription.displayName = ToastPrimitives.Description.displayName;
3173
3191
 
3174
3192
  // src/components/ui/toaster.tsx
3175
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
3193
+ import { jsx as jsx6, jsxs } from "react/jsx-runtime";
3176
3194
  function Toaster() {
3177
3195
  const { toasts } = useToast();
3178
- return /* @__PURE__ */ jsx5(Portal, { container: portalRoot, children: /* @__PURE__ */ jsxs(ToastProvider, { children: [
3196
+ return /* @__PURE__ */ jsx6(Portal, { container: portalRoot, children: /* @__PURE__ */ jsxs(ToastProvider, { children: [
3179
3197
  toasts.map(({ id, title, description, action, ...props }) => /* @__PURE__ */ jsxs(Toast, { ...props, children: [
3180
3198
  /* @__PURE__ */ jsxs("div", { className: "grid gap-1", children: [
3181
- title && /* @__PURE__ */ jsx5(ToastTitle, { children: title }),
3182
- description && /* @__PURE__ */ jsx5(ToastDescription, { children: description })
3199
+ title && /* @__PURE__ */ jsx6(ToastTitle, { children: title }),
3200
+ description && /* @__PURE__ */ jsx6(ToastDescription, { children: description })
3183
3201
  ] }),
3184
3202
  action,
3185
- /* @__PURE__ */ jsx5(ToastClose, {})
3203
+ /* @__PURE__ */ jsx6(ToastClose, {})
3186
3204
  ] }, id)),
3187
- /* @__PURE__ */ jsx5(ToastViewport, {})
3205
+ /* @__PURE__ */ jsx6(ToastViewport, {})
3188
3206
  ] }) });
3189
3207
  }
3190
3208
 
3191
3209
  // src/components/databrowser/hooks/use-keys.tsx
3192
- import { createContext as createContext4, useContext as useContext4, useMemo as useMemo4 } from "react";
3210
+ import { createContext as createContext5, useContext as useContext5, useMemo as useMemo4 } from "react";
3193
3211
  import { useInfiniteQuery } from "@tanstack/react-query";
3194
3212
 
3195
3213
  // src/components/databrowser/hooks/use-fetch-key-type.ts
@@ -3207,8 +3225,8 @@ var useFetchKeyType = (key) => {
3207
3225
  };
3208
3226
 
3209
3227
  // src/components/databrowser/hooks/use-keys.tsx
3210
- import { jsx as jsx6 } from "react/jsx-runtime";
3211
- var KeysContext = createContext4(void 0);
3228
+ import { jsx as jsx7 } from "react/jsx-runtime";
3229
+ var KeysContext = createContext5(void 0);
3212
3230
  var FETCH_KEYS_QUERY_KEY = "use-fetch-keys";
3213
3231
  var SCAN_COUNTS = [100, 300, 500];
3214
3232
  var KeysProvider = ({ children }) => {
@@ -3281,7 +3299,7 @@ var KeysProvider = ({ children }) => {
3281
3299
  }
3282
3300
  return dedupedKeys;
3283
3301
  }, [query.data]);
3284
- return /* @__PURE__ */ jsx6(
3302
+ return /* @__PURE__ */ jsx7(
3285
3303
  KeysContext.Provider,
3286
3304
  {
3287
3305
  value: {
@@ -3293,7 +3311,7 @@ var KeysProvider = ({ children }) => {
3293
3311
  );
3294
3312
  };
3295
3313
  var useKeys = () => {
3296
- const context = useContext4(KeysContext);
3314
+ const context = useContext5(KeysContext);
3297
3315
  if (!context) {
3298
3316
  throw new Error("useKeys must be used within a KeysProvider");
3299
3317
  }
@@ -3312,19 +3330,19 @@ import { IconTrash as IconTrash2 } from "@tabler/icons-react";
3312
3330
  // src/components/ui/button.tsx
3313
3331
  import * as React3 from "react";
3314
3332
  import { Slot } from "@radix-ui/react-slot";
3315
- import { jsx as jsx7 } from "react/jsx-runtime";
3333
+ import { jsx as jsx8 } from "react/jsx-runtime";
3316
3334
  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",
3335
+ "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
3336
  {
3319
3337
  variants: {
3320
3338
  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"
3339
+ default: "bg-white text-black border shadow-sm border-zinc-300 hover:bg-white/70",
3340
+ destructive: "bg-red-500 text-zinc-50 hover:bg-red-500/90",
3341
+ outline: "border border-zinc-200 bg-white hover:bg-zinc-100 hover:text-zinc-900",
3342
+ primary: "bg-emerald-500 text-white shadow-sm hover:bg-emerald-600",
3343
+ secondary: "bg-zinc-100 text-zinc-900 hover:bg-zinc-100/80",
3344
+ ghost: "hover:bg-black/10",
3345
+ link: "text-zinc-900 underline-offset-4 hover:underline"
3328
3346
  },
3329
3347
  size: {
3330
3348
  default: "h-8 px-4 py-2",
@@ -3344,7 +3362,7 @@ var buttonVariants = cva(
3344
3362
  var Button = React3.forwardRef(
3345
3363
  ({ className, variant, size, asChild = false, ...props }, ref) => {
3346
3364
  const Comp = asChild ? Slot : "button";
3347
- return /* @__PURE__ */ jsx7(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
3365
+ return /* @__PURE__ */ jsx8(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
3348
3366
  }
3349
3367
  );
3350
3368
  Button.displayName = "Button";
@@ -3356,19 +3374,13 @@ import { useMutation } from "@tanstack/react-query";
3356
3374
  import { useQuery as useQuery2 } from "@tanstack/react-query";
3357
3375
 
3358
3376
  // src/components/ui/skeleton.tsx
3359
- import { jsx as jsx8 } from "react/jsx-runtime";
3377
+ import { jsx as jsx9 } from "react/jsx-runtime";
3360
3378
  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
- );
3379
+ return /* @__PURE__ */ jsx9("div", { className: cn("animate-pulse rounded-md bg-zinc-900/10", className), ...props });
3368
3380
  }
3369
3381
 
3370
3382
  // src/components/databrowser/components/sidebar/db-size.tsx
3371
- import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
3383
+ import { jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
3372
3384
  var FETCH_DB_SIZE_QUERY_KEY = "fetch-db-size";
3373
3385
  var DisplayDbSize = () => {
3374
3386
  const { redis } = useRedis();
@@ -3379,7 +3391,7 @@ var DisplayDbSize = () => {
3379
3391
  }
3380
3392
  });
3381
3393
  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" }) });
3394
+ return /* @__PURE__ */ jsx10("div", { className: "flex items-center justify-center gap-1", children: /* @__PURE__ */ jsx10(Skeleton, { className: "h-5 w-10 rounded" }) });
3383
3395
  }
3384
3396
  return /* @__PURE__ */ jsxs2("div", { className: "", children: [
3385
3397
  formatNumber(keyCount),
@@ -3791,7 +3803,7 @@ var useFetchKeySize = (dataKey) => {
3791
3803
  };
3792
3804
 
3793
3805
  // src/components/databrowser/components/display/header-badges.tsx
3794
- import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
3806
+ import { jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
3795
3807
  var LengthBadge = ({
3796
3808
  dataKey,
3797
3809
  type,
@@ -3799,18 +3811,18 @@ var LengthBadge = ({
3799
3811
  }) => {
3800
3812
  const { data, isLoading } = useFetchKeyLength({ dataKey, type });
3801
3813
  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 });
3814
+ return /* @__PURE__ */ jsx11(Badge, { label: "Length:", children: isLoading ? /* @__PURE__ */ jsx11(Skeleton, { className: "ml-1 h-3 w-10 rounded-md opacity-50" }) : length });
3803
3815
  };
3804
3816
  var SizeBadge = ({ dataKey }) => {
3805
3817
  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, {
3818
+ 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
3819
  unitSeparator: " "
3808
3820
  }) });
3809
3821
  };
3810
3822
  var HeaderTTLBadge = ({ dataKey }) => {
3811
3823
  const { data: expireAt } = useFetchTTL(dataKey);
3812
3824
  const { mutate: setTTL, isPending } = useSetTTL();
3813
- return /* @__PURE__ */ jsx10(
3825
+ return /* @__PURE__ */ jsx11(
3814
3826
  TTLBadge,
3815
3827
  {
3816
3828
  expireAt,
@@ -3820,8 +3832,8 @@ var HeaderTTLBadge = ({ dataKey }) => {
3820
3832
  );
3821
3833
  };
3822
3834
  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 })
3835
+ /* @__PURE__ */ jsx11("span", { className: "text-zinc-500", children: label }),
3836
+ /* @__PURE__ */ jsx11("span", { className: "font-medium", children })
3825
3837
  ] });
3826
3838
 
3827
3839
  // src/components/databrowser/components/display/ttl-popover.tsx
@@ -3830,15 +3842,15 @@ import { Controller, useForm } from "react-hook-form";
3830
3842
 
3831
3843
  // src/components/ui/input.tsx
3832
3844
  import * as React4 from "react";
3833
- import { jsx as jsx11 } from "react/jsx-runtime";
3845
+ import { jsx as jsx12 } from "react/jsx-runtime";
3834
3846
  var Input = React4.forwardRef(
3835
3847
  ({ className, type, ...props }, ref) => {
3836
- return /* @__PURE__ */ jsx11(
3848
+ return /* @__PURE__ */ jsx12(
3837
3849
  "input",
3838
3850
  {
3839
3851
  type,
3840
3852
  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",
3853
+ "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
3854
  className
3843
3855
  ),
3844
3856
  ref,
@@ -3852,17 +3864,17 @@ Input.displayName = "Input";
3852
3864
  // src/components/ui/popover.tsx
3853
3865
  import * as React5 from "react";
3854
3866
  import * as PopoverPrimitive from "@radix-ui/react-popover";
3855
- import { jsx as jsx12 } from "react/jsx-runtime";
3867
+ import { jsx as jsx13 } from "react/jsx-runtime";
3856
3868
  var Popover = PopoverPrimitive.Root;
3857
3869
  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(
3870
+ var PopoverContent = React5.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx13(PopoverPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx13(
3859
3871
  PopoverPrimitive.Content,
3860
3872
  {
3861
3873
  ref,
3862
3874
  align,
3863
3875
  sideOffset,
3864
3876
  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",
3877
+ "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
3878
  className
3867
3879
  ),
3868
3880
  ...props
@@ -3873,7 +3885,7 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3873
3885
  // src/components/ui/select.tsx
3874
3886
  import * as React6 from "react";
3875
3887
  import * as SelectPrimitive from "@radix-ui/react-select";
3876
- import { jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
3888
+ import { jsx as jsx14, jsxs as jsxs4 } from "react/jsx-runtime";
3877
3889
  var Select = SelectPrimitive.Root;
3878
3890
  var SelectGroup = SelectPrimitive.Group;
3879
3891
  var SelectValue = SelectPrimitive.Value;
@@ -3882,13 +3894,13 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
3882
3894
  {
3883
3895
  ref,
3884
3896
  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",
3897
+ "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
3898
  className
3887
3899
  ),
3888
3900
  ...props,
3889
3901
  children: [
3890
3902
  children,
3891
- /* @__PURE__ */ jsx13(SelectPrimitive.Icon, { asChild: true, className: "absolute right-2", children: /* @__PURE__ */ jsx13(
3903
+ /* @__PURE__ */ jsx14(SelectPrimitive.Icon, { asChild: true, className: "absolute right-2", children: /* @__PURE__ */ jsx14(
3892
3904
  "svg",
3893
3905
  {
3894
3906
  width: "16",
@@ -3896,13 +3908,13 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
3896
3908
  viewBox: "0 0 16 16",
3897
3909
  fill: "none",
3898
3910
  xmlns: "http://www.w3.org/2000/svg",
3899
- children: /* @__PURE__ */ jsx13(
3911
+ children: /* @__PURE__ */ jsx14(
3900
3912
  "path",
3901
3913
  {
3902
3914
  d: "M4 6L8 10L12 6",
3903
- stroke: "black",
3915
+ stroke: "currentColor",
3904
3916
  strokeOpacity: "0.4",
3905
- strokeWidth: "1.4",
3917
+ strokeWidth: "1.2",
3906
3918
  strokeLinecap: "round",
3907
3919
  strokeLinejoin: "round"
3908
3920
  }
@@ -3913,18 +3925,18 @@ var SelectTrigger = React6.forwardRef(({ className, children, ...props }, ref) =
3913
3925
  }
3914
3926
  ));
3915
3927
  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(
3928
+ var SelectContent = React6.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx14(SelectPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx14(
3917
3929
  SelectPrimitive.Content,
3918
3930
  {
3919
3931
  ref,
3920
3932
  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",
3933
+ "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
3934
  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
3935
  className
3924
3936
  ),
3925
3937
  position,
3926
3938
  ...props,
3927
- children: /* @__PURE__ */ jsx13(
3939
+ children: /* @__PURE__ */ jsx14(
3928
3940
  SelectPrimitive.Viewport,
3929
3941
  {
3930
3942
  className: cn(
@@ -3937,7 +3949,7 @@ var SelectContent = React6.forwardRef(({ className, children, position = "popper
3937
3949
  }
3938
3950
  ) }));
3939
3951
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3940
- var SelectLabel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
3952
+ var SelectLabel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
3941
3953
  SelectPrimitive.Label,
3942
3954
  {
3943
3955
  ref,
@@ -3951,12 +3963,12 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
3951
3963
  {
3952
3964
  ref,
3953
3965
  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",
3966
+ "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
3967
  className
3956
3968
  ),
3957
3969
  ...props,
3958
3970
  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(
3971
+ /* @__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
3972
  "svg",
3961
3973
  {
3962
3974
  width: "15",
@@ -3965,7 +3977,7 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
3965
3977
  fill: "none",
3966
3978
  xmlns: "http://www.w3.org/2000/svg",
3967
3979
  className: "h-4 w-4",
3968
- children: /* @__PURE__ */ jsx13(
3980
+ children: /* @__PURE__ */ jsx14(
3969
3981
  "path",
3970
3982
  {
3971
3983
  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 +3988,32 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
3976
3988
  )
3977
3989
  }
3978
3990
  ) }) }) }),
3979
- /* @__PURE__ */ jsx13(SelectPrimitive.ItemText, { children })
3991
+ /* @__PURE__ */ jsx14(SelectPrimitive.ItemText, { children })
3980
3992
  ]
3981
3993
  }
3982
3994
  ));
3983
3995
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3984
- var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
3996
+ var SelectSeparator = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
3985
3997
  SelectPrimitive.Separator,
3986
3998
  {
3987
3999
  ref,
3988
- className: cn("-mx-1 my-1 h-px bg-neutral-100 dark:bg-neutral-800", className),
4000
+ className: cn("-mx-1 my-1 h-px bg-zinc-100", className),
3989
4001
  ...props
3990
4002
  }
3991
4003
  ));
3992
4004
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3993
4005
 
3994
4006
  // src/components/ui/spinner.tsx
3995
- import { Fragment, jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
4007
+ import { Fragment, jsx as jsx15, jsxs as jsxs5 } from "react/jsx-runtime";
3996
4008
  var Spinner = ({
3997
4009
  isLoading,
3998
4010
  className,
3999
4011
  isLoadingText,
4000
4012
  children
4001
4013
  }) => {
4002
- return /* @__PURE__ */ jsx14("div", { className: className ?? "flex items-center", children: isLoading ? /* @__PURE__ */ jsxs5(Fragment, { children: [
4014
+ return /* @__PURE__ */ jsx15("div", { className: className ?? "flex items-center", children: isLoading ? /* @__PURE__ */ jsxs5(Fragment, { children: [
4003
4015
  isLoadingText,
4004
- /* @__PURE__ */ jsx14(
4016
+ /* @__PURE__ */ jsx15(
4005
4017
  "svg",
4006
4018
  {
4007
4019
  xmlns: "http://www.w3.org/2000/svg",
@@ -4010,18 +4022,18 @@ var Spinner = ({
4010
4022
  viewBox: "0 0 24 24",
4011
4023
  fill: "none",
4012
4024
  stroke: "currentColor",
4013
- strokeWidth: "2",
4025
+ strokeWidth: "1.2",
4014
4026
  strokeLinecap: "round",
4015
4027
  strokeLinejoin: "round",
4016
4028
  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" })
4029
+ children: /* @__PURE__ */ jsx15("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
4018
4030
  }
4019
4031
  )
4020
4032
  ] }) : children });
4021
4033
  };
4022
4034
 
4023
4035
  // src/components/databrowser/components/display/ttl-popover.tsx
4024
- import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
4036
+ import { jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
4025
4037
  var timeUnits = [
4026
4038
  { label: "Seconds", value: 1 },
4027
4039
  { label: "Minutes", value: 60 },
@@ -4063,8 +4075,8 @@ function TTLPopover({
4063
4075
  setOpen(isOpen);
4064
4076
  },
4065
4077
  children: [
4066
- /* @__PURE__ */ jsx15(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx15("button", { children }) }),
4067
- /* @__PURE__ */ jsx15(PopoverContent, { className: "w-[300px]", align: "end", children: /* @__PURE__ */ jsxs6(
4078
+ /* @__PURE__ */ jsx16(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx16("button", { children }) }),
4079
+ /* @__PURE__ */ jsx16(PopoverContent, { className: "w-[300px]", align: "end", children: /* @__PURE__ */ jsxs6(
4068
4080
  "form",
4069
4081
  {
4070
4082
  className: "space-y-4",
@@ -4073,10 +4085,10 @@ function TTLPopover({
4073
4085
  e.stopPropagation();
4074
4086
  },
4075
4087
  children: [
4076
- /* @__PURE__ */ jsx15("h4", { className: "font-medium leading-none", children: "Expiration" }),
4088
+ /* @__PURE__ */ jsx16("h4", { className: "font-medium leading-none", children: "Expiration" }),
4077
4089
  /* @__PURE__ */ jsxs6("div", { children: [
4078
4090
  /* @__PURE__ */ jsxs6("div", { className: "flex items-center", children: [
4079
- /* @__PURE__ */ jsx15(
4091
+ /* @__PURE__ */ jsx16(
4080
4092
  Controller,
4081
4093
  {
4082
4094
  rules: {
@@ -4085,26 +4097,26 @@ function TTLPopover({
4085
4097
  },
4086
4098
  control,
4087
4099
  name: "value",
4088
- render: ({ field }) => /* @__PURE__ */ jsx15(Input, { min: "-1", ...field, className: "grow rounded-r-none" })
4100
+ render: ({ field }) => /* @__PURE__ */ jsx16(Input, { min: "-1", ...field, className: "grow rounded-r-none" })
4089
4101
  }
4090
4102
  ),
4091
- /* @__PURE__ */ jsx15(
4103
+ /* @__PURE__ */ jsx16(
4092
4104
  Controller,
4093
4105
  {
4094
4106
  control,
4095
4107
  name: "type",
4096
4108
  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)) })
4109
+ /* @__PURE__ */ jsx16(SelectTrigger, { className: "w-auto rounded-l-none border-l-0 pr-8", children: /* @__PURE__ */ jsx16(SelectValue, {}) }),
4110
+ /* @__PURE__ */ jsx16(SelectContent, { children: timeUnits.map((unit) => /* @__PURE__ */ jsx16(SelectItem, { value: unit.label, children: unit.label }, unit.label)) })
4099
4111
  ] })
4100
4112
  }
4101
4113
  )
4102
4114
  ] }),
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." })
4115
+ formState.errors.value && /* @__PURE__ */ jsx16("p", { className: "mt-2 text-xs text-red-500", children: formState.errors.value.message }),
4116
+ /* @__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
4117
  ] }),
4106
4118
  /* @__PURE__ */ jsxs6("div", { className: "flex justify-between", children: [
4107
- /* @__PURE__ */ jsx15(
4119
+ /* @__PURE__ */ jsx16(
4108
4120
  Button,
4109
4121
  {
4110
4122
  type: "button",
@@ -4115,8 +4127,8 @@ function TTLPopover({
4115
4127
  }
4116
4128
  ),
4117
4129
  /* @__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" }) })
4130
+ /* @__PURE__ */ jsx16(Button, { variant: "outline", onClick: () => setOpen(false), type: "button", children: "Cancel" }),
4131
+ /* @__PURE__ */ jsx16(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx16(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" }) })
4120
4132
  ] })
4121
4133
  ] })
4122
4134
  ]
@@ -4128,7 +4140,7 @@ function TTLPopover({
4128
4140
  }
4129
4141
 
4130
4142
  // src/components/databrowser/components/display/ttl-badge.tsx
4131
- import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
4143
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
4132
4144
  var TTL_INFINITE = -1;
4133
4145
  var TTL_NOT_FOUND = -2;
4134
4146
  var calculateTTL = (expireAt) => {
@@ -4150,9 +4162,9 @@ var TTLBadge = ({
4150
4162
  }, 1e3);
4151
4163
  return () => clearInterval(interval);
4152
4164
  }, [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: [
4165
+ 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
4166
  ttl === TTL_INFINITE ? "Forever" : formatTime(ttl),
4155
- /* @__PURE__ */ jsx16(IconChevronDown, { className: "mt-[1px] text-zinc-400", size: 12 })
4167
+ /* @__PURE__ */ jsx17(IconChevronDown, { className: "mt-[1px] text-zinc-400", size: 12 })
4156
4168
  ] }) }) });
4157
4169
  };
4158
4170
 
@@ -4229,7 +4241,7 @@ import { ContextMenuSeparator as ContextMenuSeparator2 } from "@radix-ui/react-c
4229
4241
  import * as React7 from "react";
4230
4242
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
4231
4243
  import { CheckIcon, ChevronRightIcon, DotFilledIcon } from "@radix-ui/react-icons";
4232
- import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
4244
+ import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
4233
4245
  var ContextMenu = ContextMenuPrimitive.Root;
4234
4246
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
4235
4247
  var ContextMenuSubTrigger = React7.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
@@ -4237,48 +4249,48 @@ var ContextMenuSubTrigger = React7.forwardRef(({ className, inset, children, ...
4237
4249
  {
4238
4250
  ref,
4239
4251
  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",
4252
+ "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
4253
  inset && "pl-8",
4242
4254
  className
4243
4255
  ),
4244
4256
  ...props,
4245
4257
  children: [
4246
4258
  children,
4247
- /* @__PURE__ */ jsx17(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
4259
+ /* @__PURE__ */ jsx18(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
4248
4260
  ]
4249
4261
  }
4250
4262
  ));
4251
4263
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
4252
- var ContextMenuSubContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
4264
+ var ContextMenuSubContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4253
4265
  ContextMenuPrimitive.SubContent,
4254
4266
  {
4255
4267
  ref,
4256
4268
  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",
4269
+ "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
4270
  className
4259
4271
  ),
4260
4272
  ...props
4261
4273
  }
4262
4274
  ));
4263
4275
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
4264
- var ContextMenuContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(ContextMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx17(
4276
+ var ContextMenuContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(ContextMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx18(
4265
4277
  ContextMenuPrimitive.Content,
4266
4278
  {
4267
4279
  ref,
4268
4280
  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",
4281
+ "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
4282
  className
4271
4283
  ),
4272
4284
  ...props
4273
4285
  }
4274
4286
  ) }));
4275
4287
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
4276
- var ContextMenuItem = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx17(
4288
+ var ContextMenuItem = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
4277
4289
  ContextMenuPrimitive.Item,
4278
4290
  {
4279
4291
  ref,
4280
4292
  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",
4293
+ "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
4294
  inset && "pl-8",
4283
4295
  className
4284
4296
  ),
@@ -4291,13 +4303,13 @@ var ContextMenuCheckboxItem = React7.forwardRef(({ className, children, checked,
4291
4303
  {
4292
4304
  ref,
4293
4305
  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",
4306
+ "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
4307
  className
4296
4308
  ),
4297
4309
  checked,
4298
4310
  ...props,
4299
4311
  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" }) }) }),
4312
+ /* @__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
4313
  children
4302
4314
  ]
4303
4315
  }
@@ -4308,66 +4320,53 @@ var ContextMenuRadioItem = React7.forwardRef(({ className, children, ...props },
4308
4320
  {
4309
4321
  ref,
4310
4322
  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",
4323
+ "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
4324
  className
4313
4325
  ),
4314
4326
  ...props,
4315
4327
  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" }) }) }),
4328
+ /* @__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
4329
  children
4318
4330
  ]
4319
4331
  }
4320
4332
  ));
4321
4333
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
4322
- var ContextMenuLabel = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx17(
4334
+ var ContextMenuLabel = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
4323
4335
  ContextMenuPrimitive.Label,
4324
4336
  {
4325
4337
  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
- ),
4338
+ className: cn("px-2 py-1.5 text-sm font-semibold text-zinc-950", inset && "pl-8", className),
4331
4339
  ...props
4332
4340
  }
4333
4341
  ));
4334
4342
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
4335
- var ContextMenuSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
4343
+ var ContextMenuSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4336
4344
  ContextMenuPrimitive.Separator,
4337
4345
  {
4338
4346
  ref,
4339
- className: cn("-mx-1 my-1 h-px bg-neutral-200 dark:bg-neutral-800", className),
4347
+ className: cn("-mx-1 my-1 h-px bg-zinc-200", className),
4340
4348
  ...props
4341
4349
  }
4342
4350
  ));
4343
4351
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
4344
4352
  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
- );
4353
+ return /* @__PURE__ */ jsx18("span", { className: cn("ml-auto text-xs tracking-widest text-zinc-500", className), ...props });
4355
4354
  };
4356
4355
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
4357
4356
 
4358
4357
  // src/components/ui/alert-dialog.tsx
4359
4358
  import * as React8 from "react";
4360
4359
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
4361
- import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
4360
+ import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
4362
4361
  var AlertDialog = AlertDialogPrimitive.Root;
4363
4362
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
4364
- var AlertDialogPortal = ({ ...props }) => /* @__PURE__ */ jsx18(AlertDialogPrimitive.Portal, { container: portalRoot, ...props });
4363
+ var AlertDialogPortal = ({ ...props }) => /* @__PURE__ */ jsx19(AlertDialogPrimitive.Portal, { container: portalRoot, ...props });
4365
4364
  AlertDialogPortal.displayName = AlertDialogPrimitive.Portal.displayName;
4366
- var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4365
+ var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4367
4366
  AlertDialogPrimitive.Overlay,
4368
4367
  {
4369
4368
  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",
4369
+ "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
4370
  className
4372
4371
  ),
4373
4372
  ...props,
@@ -4376,13 +4375,13 @@ var AlertDialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /*
4376
4375
  ));
4377
4376
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
4378
4377
  var AlertDialogContent = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(AlertDialogPortal, { children: [
4379
- /* @__PURE__ */ jsx18(AlertDialogOverlay, {}),
4380
- /* @__PURE__ */ jsx18(
4378
+ /* @__PURE__ */ jsx19(AlertDialogOverlay, {}),
4379
+ /* @__PURE__ */ jsx19(
4381
4380
  AlertDialogPrimitive.Content,
4382
4381
  {
4383
4382
  ref,
4384
4383
  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",
4384
+ "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
4385
  className
4387
4386
  ),
4388
4387
  ...props
@@ -4390,9 +4389,9 @@ var AlertDialogContent = React8.forwardRef(({ className, ...props }, ref) => /*
4390
4389
  )
4391
4390
  ] }));
4392
4391
  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 });
4392
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx19("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
4394
4393
  AlertDialogHeader.displayName = "AlertDialogHeader";
4395
- var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx18(
4394
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx19(
4396
4395
  "div",
4397
4396
  {
4398
4397
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -4400,7 +4399,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx18(
4400
4399
  }
4401
4400
  );
4402
4401
  AlertDialogFooter.displayName = "AlertDialogFooter";
4403
- var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4402
+ var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4404
4403
  AlertDialogPrimitive.Title,
4405
4404
  {
4406
4405
  ref,
@@ -4409,18 +4408,18 @@ var AlertDialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @_
4409
4408
  }
4410
4409
  ));
4411
4410
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
4412
- var AlertDialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4411
+ var AlertDialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4413
4412
  AlertDialogPrimitive.Description,
4414
4413
  {
4415
4414
  ref,
4416
- className: cn("text-sm text-zinc-500 dark:text-zinc-400", className),
4415
+ className: cn("text-sm text-zinc-500", className),
4417
4416
  ...props
4418
4417
  }
4419
4418
  ));
4420
4419
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
4421
- var AlertDialogAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
4420
+ var AlertDialogAction = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
4422
4421
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
4423
- var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
4422
+ var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
4424
4423
  AlertDialogPrimitive.Cancel,
4425
4424
  {
4426
4425
  ref,
@@ -4431,7 +4430,7 @@ var AlertDialogCancel = React8.forwardRef(({ className, ...props }, ref) => /* @
4431
4430
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
4432
4431
 
4433
4432
  // src/components/databrowser/components/display/delete-alert-dialog.tsx
4434
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
4433
+ import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
4435
4434
  function DeleteAlertDialog({
4436
4435
  children,
4437
4436
  onDeleteConfirm,
@@ -4440,24 +4439,24 @@ function DeleteAlertDialog({
4440
4439
  deletionType
4441
4440
  }) {
4442
4441
  return /* @__PURE__ */ jsxs10(AlertDialog, { open, onOpenChange, children: [
4443
- children && /* @__PURE__ */ jsx19(AlertDialogTrigger, { asChild: true, children }),
4442
+ children && /* @__PURE__ */ jsx20(AlertDialogTrigger, { asChild: true, children }),
4444
4443
  /* @__PURE__ */ jsxs10(AlertDialogContent, { children: [
4445
4444
  /* @__PURE__ */ jsxs10(AlertDialogHeader, { children: [
4446
- /* @__PURE__ */ jsx19(AlertDialogTitle, { children: deletionType === "item" ? "Delete Item" : "Delete Key" }),
4445
+ /* @__PURE__ */ jsx20(AlertDialogTitle, { children: deletionType === "item" ? "Delete Item" : "Delete Key" }),
4447
4446
  /* @__PURE__ */ jsxs10(AlertDialogDescription, { className: "mt-5", children: [
4448
4447
  "Are you sure you want to delete this ",
4449
4448
  deletionType,
4450
4449
  "?",
4451
- /* @__PURE__ */ jsx19("br", {}),
4450
+ /* @__PURE__ */ jsx20("br", {}),
4452
4451
  "This action cannot be undone."
4453
4452
  ] })
4454
4453
  ] }),
4455
4454
  /* @__PURE__ */ jsxs10(AlertDialogFooter, { children: [
4456
- /* @__PURE__ */ jsx19(AlertDialogCancel, { type: "button", children: "Cancel" }),
4457
- /* @__PURE__ */ jsx19(
4455
+ /* @__PURE__ */ jsx20(AlertDialogCancel, { type: "button", children: "Cancel" }),
4456
+ /* @__PURE__ */ jsx20(
4458
4457
  AlertDialogAction,
4459
4458
  {
4460
- className: "bg-red-500 text-gray-50 hover:bg-red-600",
4459
+ className: "bg-red-500 text-zinc-50 hover:bg-red-600",
4461
4460
  onClick: onDeleteConfirm,
4462
4461
  children: "Yes, Delete"
4463
4462
  }
@@ -4468,7 +4467,7 @@ function DeleteAlertDialog({
4468
4467
  }
4469
4468
 
4470
4469
  // src/components/databrowser/components/item-context-menu.tsx
4471
- import { Fragment as Fragment2, jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
4470
+ import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
4472
4471
  var ItemContextMenu = ({
4473
4472
  children,
4474
4473
  dataKey,
@@ -4479,7 +4478,7 @@ var ItemContextMenu = ({
4479
4478
  const [data, setData] = useState5();
4480
4479
  const { addTab, setSelectedKey, selectTab, setSelectedListItem } = useDatabrowserStore();
4481
4480
  return /* @__PURE__ */ jsxs11(Fragment2, { children: [
4482
- /* @__PURE__ */ jsx20(
4481
+ /* @__PURE__ */ jsx21(
4483
4482
  DeleteAlertDialog,
4484
4483
  {
4485
4484
  deletionType: "item",
@@ -4501,7 +4500,7 @@ var ItemContextMenu = ({
4501
4500
  }
4502
4501
  ),
4503
4502
  /* @__PURE__ */ jsxs11(ContextMenu, { modal: false, children: [
4504
- /* @__PURE__ */ jsx20(
4503
+ /* @__PURE__ */ jsx21(
4505
4504
  ContextMenuTrigger,
4506
4505
  {
4507
4506
  asChild: true,
@@ -4533,7 +4532,7 @@ var ItemContextMenu = ({
4533
4532
  },
4534
4533
  className: "gap-2",
4535
4534
  children: [
4536
- /* @__PURE__ */ jsx20(IconCopy, { size: 16 }),
4535
+ /* @__PURE__ */ jsx21(IconCopy, { size: 16 }),
4537
4536
  "Copy key"
4538
4537
  ]
4539
4538
  }
@@ -4549,7 +4548,7 @@ var ItemContextMenu = ({
4549
4548
  },
4550
4549
  className: "gap-2",
4551
4550
  children: [
4552
- /* @__PURE__ */ jsx20(IconCopy, { size: 16 }),
4551
+ /* @__PURE__ */ jsx21(IconCopy, { size: 16 }),
4553
4552
  "Copy value"
4554
4553
  ]
4555
4554
  }
@@ -4568,12 +4567,12 @@ var ItemContextMenu = ({
4568
4567
  },
4569
4568
  className: "gap-2",
4570
4569
  children: [
4571
- /* @__PURE__ */ jsx20(IconExternalLink, { size: 16 }),
4570
+ /* @__PURE__ */ jsx21(IconExternalLink, { size: 16 }),
4572
4571
  "Open in new tab"
4573
4572
  ]
4574
4573
  }
4575
4574
  ),
4576
- /* @__PURE__ */ jsx20(ContextMenuSeparator2, {}),
4575
+ /* @__PURE__ */ jsx21(ContextMenuSeparator2, {}),
4577
4576
  /* @__PURE__ */ jsxs11(
4578
4577
  ContextMenuItem,
4579
4578
  {
@@ -4581,7 +4580,7 @@ var ItemContextMenu = ({
4581
4580
  onClick: () => setAlertOpen(true),
4582
4581
  className: "gap-2",
4583
4582
  children: [
4584
- /* @__PURE__ */ jsx20(IconTrash, { size: 16 }),
4583
+ /* @__PURE__ */ jsx21(IconTrash, { size: 16 }),
4585
4584
  "Delete item"
4586
4585
  ]
4587
4586
  }
@@ -4598,7 +4597,7 @@ import { useEffect as useEffect6, useRef } from "react";
4598
4597
  // src/components/ui/scroll-area.tsx
4599
4598
  import * as React9 from "react";
4600
4599
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4601
- import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
4600
+ import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
4602
4601
  var ScrollArea = React9.forwardRef(({ className, children, onScroll, disableRoundedInherit = false, ...props }, ref) => /* @__PURE__ */ jsxs12(
4603
4602
  ScrollAreaPrimitive.Root,
4604
4603
  {
@@ -4606,7 +4605,7 @@ var ScrollArea = React9.forwardRef(({ className, children, onScroll, disableRoun
4606
4605
  className: cn("relative overflow-hidden", className),
4607
4606
  ...props,
4608
4607
  children: [
4609
- /* @__PURE__ */ jsx21(
4608
+ /* @__PURE__ */ jsx22(
4610
4609
  ScrollAreaPrimitive.Viewport,
4611
4610
  {
4612
4611
  onScroll,
@@ -4614,23 +4613,23 @@ var ScrollArea = React9.forwardRef(({ className, children, onScroll, disableRoun
4614
4613
  children
4615
4614
  }
4616
4615
  ),
4617
- /* @__PURE__ */ jsx21(ScrollBar, {}),
4618
- /* @__PURE__ */ jsx21(ScrollAreaPrimitive.Corner, {})
4616
+ /* @__PURE__ */ jsx22(ScrollBar, {}),
4617
+ /* @__PURE__ */ jsx22(ScrollAreaPrimitive.Corner, {})
4619
4618
  ]
4620
4619
  }
4621
4620
  ));
4622
4621
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
4623
- var ScrollBar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
4622
+ var ScrollBar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
4624
4623
  ScrollAreaPrimitive.ScrollAreaScrollbar,
4625
4624
  {
4626
4625
  ref,
4627
4626
  orientation: "vertical",
4628
4627
  className: cn("flex h-full w-2 touch-none select-none transition-colors", className),
4629
4628
  ...props,
4630
- children: /* @__PURE__ */ jsx21(
4629
+ children: /* @__PURE__ */ jsx22(
4631
4630
  ScrollAreaPrimitive.ScrollAreaThumb,
4632
4631
  {
4633
- className: cn("relative flex-1 rounded-full bg-neutral-200/70 dark:bg-neutral-800")
4632
+ className: cn("relative flex-1 rounded-full bg-zinc-200/70")
4634
4633
  }
4635
4634
  )
4636
4635
  }
@@ -4638,7 +4637,7 @@ var ScrollBar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__
4638
4637
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
4639
4638
 
4640
4639
  // src/components/databrowser/components/sidebar/infinite-scroll.tsx
4641
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
4640
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
4642
4641
  var InfiniteScroll = ({
4643
4642
  query,
4644
4643
  children,
@@ -4670,7 +4669,7 @@ var InfiniteScroll = ({
4670
4669
  const timer = setTimeout(checkAndFetchMore, 100);
4671
4670
  return () => clearTimeout(timer);
4672
4671
  }, [active, query.data]);
4673
- return /* @__PURE__ */ jsx22(
4672
+ return /* @__PURE__ */ jsx23(
4674
4673
  ScrollArea,
4675
4674
  {
4676
4675
  type: "always",
@@ -4683,7 +4682,7 @@ var InfiniteScroll = ({
4683
4682
  ref: scrollRef,
4684
4683
  children: /* @__PURE__ */ jsxs13("div", { ref: contentRef, children: [
4685
4684
  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 }) })
4685
+ /* @__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
4686
  ] })
4688
4687
  }
4689
4688
  );
@@ -4713,15 +4712,15 @@ import {
4713
4712
  IconList,
4714
4713
  IconQuote
4715
4714
  } from "@tabler/icons-react";
4716
- import { jsx as jsx23 } from "react/jsx-runtime";
4715
+ import { jsx as jsx24 } from "react/jsx-runtime";
4717
4716
  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 })
4717
+ string: /* @__PURE__ */ jsx24(IconQuote, { size: 15, stroke: 1.2 }),
4718
+ set: /* @__PURE__ */ jsx24(IconLayersIntersect, { size: 15, stroke: 1.2 }),
4719
+ hash: /* @__PURE__ */ jsx24(IconHash, { size: 15, stroke: 1.2 }),
4720
+ json: /* @__PURE__ */ jsx24(IconCodeDots, { size: 15, stroke: 1.2 }),
4721
+ zset: /* @__PURE__ */ jsx24(IconArrowsSort, { size: 15, stroke: 1.2 }),
4722
+ list: /* @__PURE__ */ jsx24(IconList, { size: 15, stroke: 1.2 }),
4723
+ stream: /* @__PURE__ */ jsx24(IconList, { size: 15, stroke: 1.2 })
4725
4724
  };
4726
4725
  var tagVariants = cva("inline-flex shrink-0 items-center rounded-md justify-center", {
4727
4726
  variants: {
@@ -4745,7 +4744,7 @@ var tagVariants = cva("inline-flex shrink-0 items-center rounded-md justify-cent
4745
4744
  }
4746
4745
  });
4747
4746
  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] });
4747
+ return /* @__PURE__ */ jsx24("span", { className: cn(tagVariants({ variant, type, className })), children: type === "icon" ? iconsMap[variant] : DATA_TYPE_NAMES[variant] });
4749
4748
  }
4750
4749
 
4751
4750
  // src/components/databrowser/components/display/key-actions.tsx
@@ -4755,7 +4754,7 @@ import { IconDotsVertical } from "@tabler/icons-react";
4755
4754
  import * as React10 from "react";
4756
4755
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
4757
4756
  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";
4757
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
4759
4758
  var DropdownMenu = DropdownMenuPrimitive.Root;
4760
4759
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
4761
4760
  var DropdownMenuSubTrigger = React10.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
@@ -4763,37 +4762,37 @@ var DropdownMenuSubTrigger = React10.forwardRef(({ className, inset, children, .
4763
4762
  {
4764
4763
  ref,
4765
4764
  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",
4765
+ "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
4766
  inset && "pl-8",
4768
4767
  className
4769
4768
  ),
4770
4769
  ...props,
4771
4770
  children: [
4772
4771
  children,
4773
- /* @__PURE__ */ jsx24(ChevronRightIcon2, { className: "ml-auto" })
4772
+ /* @__PURE__ */ jsx25(ChevronRightIcon2, { className: "ml-auto" })
4774
4773
  ]
4775
4774
  }
4776
4775
  ));
4777
4776
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
4778
- var DropdownMenuSubContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
4777
+ var DropdownMenuSubContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
4779
4778
  DropdownMenuPrimitive.SubContent,
4780
4779
  {
4781
4780
  ref,
4782
4781
  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",
4782
+ "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
4783
  className
4785
4784
  ),
4786
4785
  ...props
4787
4786
  }
4788
4787
  ));
4789
4788
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
4790
- var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx24(
4789
+ var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx25(
4791
4790
  DropdownMenuPrimitive.Content,
4792
4791
  {
4793
4792
  ref,
4794
4793
  sideOffset,
4795
4794
  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",
4795
+ "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
4796
  "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
4797
  className
4799
4798
  ),
@@ -4801,12 +4800,12 @@ var DropdownMenuContent = React10.forwardRef(({ className, sideOffset = 4, ...pr
4801
4800
  }
4802
4801
  ) }));
4803
4802
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
4804
- var DropdownMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
4803
+ var DropdownMenuItem = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
4805
4804
  DropdownMenuPrimitive.Item,
4806
4805
  {
4807
4806
  ref,
4808
4807
  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",
4808
+ "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
4809
  inset && "pl-8",
4811
4810
  className
4812
4811
  ),
@@ -4819,13 +4818,13 @@ var DropdownMenuCheckboxItem = React10.forwardRef(({ className, children, checke
4819
4818
  {
4820
4819
  ref,
4821
4820
  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",
4821
+ "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
4822
  className
4824
4823
  ),
4825
4824
  checked,
4826
4825
  ...props,
4827
4826
  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" }) }) }),
4827
+ /* @__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
4828
  children
4830
4829
  ]
4831
4830
  }
@@ -4836,18 +4835,18 @@ var DropdownMenuRadioItem = React10.forwardRef(({ className, children, ...props
4836
4835
  {
4837
4836
  ref,
4838
4837
  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",
4838
+ "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
4839
  className
4841
4840
  ),
4842
4841
  ...props,
4843
4842
  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" }) }) }),
4843
+ /* @__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
4844
  children
4846
4845
  ]
4847
4846
  }
4848
4847
  ));
4849
4848
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
4850
- var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
4849
+ var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
4851
4850
  DropdownMenuPrimitive.Label,
4852
4851
  {
4853
4852
  ref,
@@ -4856,28 +4855,28 @@ var DropdownMenuLabel = React10.forwardRef(({ className, inset, ...props }, ref)
4856
4855
  }
4857
4856
  ));
4858
4857
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
4859
- var DropdownMenuSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
4858
+ var DropdownMenuSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
4860
4859
  DropdownMenuPrimitive.Separator,
4861
4860
  {
4862
4861
  ref,
4863
- className: cn("-mx-1 my-1 h-px bg-neutral-100 dark:bg-neutral-800", className),
4862
+ className: cn("-mx-1 my-1 h-px bg-zinc-100", className),
4864
4863
  ...props
4865
4864
  }
4866
4865
  ));
4867
4866
  DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
4868
4867
  var DropdownMenuShortcut = ({ className, ...props }) => {
4869
- return /* @__PURE__ */ jsx24("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
4868
+ return /* @__PURE__ */ jsx25("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
4870
4869
  };
4871
4870
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
4872
4871
 
4873
4872
  // src/components/databrowser/components/display/key-actions.tsx
4874
- import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
4873
+ import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
4875
4874
  function KeyActions({ dataKey, content }) {
4876
4875
  const { mutateAsync: deleteKey } = useDeleteKey();
4877
4876
  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" }) }) }),
4877
+ /* @__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
4878
  /* @__PURE__ */ jsxs15(DropdownMenuContent, { className: "", align: "end", children: [
4880
- content && /* @__PURE__ */ jsx25(
4879
+ content && /* @__PURE__ */ jsx26(
4881
4880
  DropdownMenuItem,
4882
4881
  {
4883
4882
  onClick: () => {
@@ -4889,7 +4888,7 @@ function KeyActions({ dataKey, content }) {
4889
4888
  children: "Copy content"
4890
4889
  }
4891
4890
  ),
4892
- /* @__PURE__ */ jsx25(
4891
+ /* @__PURE__ */ jsx26(
4893
4892
  DropdownMenuItem,
4894
4893
  {
4895
4894
  onClick: () => {
@@ -4898,12 +4897,12 @@ function KeyActions({ dataKey, content }) {
4898
4897
  children: "Copy key"
4899
4898
  }
4900
4899
  ),
4901
- /* @__PURE__ */ jsx25(
4900
+ /* @__PURE__ */ jsx26(
4902
4901
  DeleteAlertDialog,
4903
4902
  {
4904
4903
  deletionType: "key",
4905
4904
  onDeleteConfirm: async () => await deleteKey(dataKey),
4906
- children: /* @__PURE__ */ jsx25(
4905
+ children: /* @__PURE__ */ jsx26(
4907
4906
  DropdownMenuItem,
4908
4907
  {
4909
4908
  className: "text-red-500 focus:bg-red-500 focus:text-white",
@@ -4918,7 +4917,7 @@ function KeyActions({ dataKey, content }) {
4918
4917
  }
4919
4918
 
4920
4919
  // src/components/databrowser/components/display/display-header.tsx
4921
- import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
4920
+ import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
4922
4921
  var DisplayHeader = ({
4923
4922
  dataKey,
4924
4923
  type,
@@ -4930,17 +4929,17 @@ var DisplayHeader = ({
4930
4929
  };
4931
4930
  return /* @__PURE__ */ jsxs16("div", { className: "rounded-lg bg-zinc-100", children: [
4932
4931
  /* @__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 }) }),
4932
+ /* @__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
4933
  /* @__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 })
4934
+ 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" }) }),
4935
+ /* @__PURE__ */ jsx27(KeyActions, { dataKey, content })
4937
4936
  ] })
4938
4937
  ] }),
4939
4938
  /* @__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 })
4939
+ /* @__PURE__ */ jsx27(TypeTag, { variant: type, type: "badge" }),
4940
+ /* @__PURE__ */ jsx27(SizeBadge, { dataKey }),
4941
+ /* @__PURE__ */ jsx27(LengthBadge, { dataKey, type, content }),
4942
+ /* @__PURE__ */ jsx27(HeaderTTLBadge, { dataKey })
4944
4943
  ] })
4945
4944
  ] });
4946
4945
  };
@@ -4951,16 +4950,16 @@ import { Controller as Controller2, FormProvider, useForm as useForm2, useFormCo
4951
4950
  // src/components/ui/tooltip.tsx
4952
4951
  import * as React11 from "react";
4953
4952
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4954
- import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
4953
+ import { Fragment as Fragment3, jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
4955
4954
  var Tooltip = TooltipPrimitive.Root;
4956
4955
  var TooltipTrigger = TooltipPrimitive.Trigger;
4957
- var TooltipContent = React11.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx27(TooltipPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx27(
4956
+ var TooltipContent = React11.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx28(TooltipPrimitive.Portal, { container: portalRoot, children: /* @__PURE__ */ jsx28(
4958
4957
  TooltipPrimitive.Content,
4959
4958
  {
4960
4959
  ref,
4961
4960
  sideOffset,
4962
4961
  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",
4962
+ "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
4963
  className
4965
4964
  ),
4966
4965
  ...props
@@ -4971,10 +4970,10 @@ var SimpleTooltip = ({
4971
4970
  content,
4972
4971
  children
4973
4972
  }) => {
4974
- if (!content) return /* @__PURE__ */ jsx27(Fragment3, { children });
4973
+ if (!content) return /* @__PURE__ */ jsx28(Fragment3, { children });
4975
4974
  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 })
4975
+ /* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx28("div", { children }) }),
4976
+ /* @__PURE__ */ jsx28(TooltipContent, { side: "top", children: content })
4978
4977
  ] });
4979
4978
  };
4980
4979
 
@@ -5034,12 +5033,12 @@ var useSetHashTTL = () => {
5034
5033
  };
5035
5034
 
5036
5035
  // src/components/databrowser/components/display/hash/hash-field-ttl-badge.tsx
5037
- import { jsx as jsx28 } from "react/jsx-runtime";
5036
+ import { jsx as jsx29 } from "react/jsx-runtime";
5038
5037
  var HashFieldTTLBadge = ({ dataKey, field }) => {
5039
5038
  const { data } = useFetchHashFieldExpires({ dataKey, fields: [field] });
5040
5039
  const { mutate: setTTL, isPending } = useSetHashTTL();
5041
5040
  const expireAt = data?.[field];
5042
- return /* @__PURE__ */ jsx28(
5041
+ return /* @__PURE__ */ jsx29(
5043
5042
  TTLBadge,
5044
5043
  {
5045
5044
  label: "Field TTL:",
@@ -5056,7 +5055,7 @@ import { useController } from "react-hook-form";
5056
5055
 
5057
5056
  // src/components/databrowser/components/display/input/content-type-select.tsx
5058
5057
  import { useMemo as useMemo6 } from "react";
5059
- import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
5058
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
5060
5059
  var ContentTypeSelect = ({
5061
5060
  value,
5062
5061
  onChange,
@@ -5064,10 +5063,10 @@ var ContentTypeSelect = ({
5064
5063
  }) => {
5065
5064
  const isValidJSON = useMemo6(() => checkIsValidJSON(data), [data]);
5066
5065
  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" })
5066
+ /* @__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" }) }),
5067
+ /* @__PURE__ */ jsx30(SelectContent, { children: /* @__PURE__ */ jsxs18(SelectGroup, { children: [
5068
+ /* @__PURE__ */ jsx30(SelectItem, { value: "Text", children: "Text" }),
5069
+ /* @__PURE__ */ jsx30(SelectItem, { disabled: !isValidJSON, value: "JSON", children: "JSON" })
5071
5070
  ] }) })
5072
5071
  ] });
5073
5072
  };
@@ -5079,10 +5078,10 @@ import { Editor, useMonaco } from "@monaco-editor/react";
5079
5078
  // src/components/databrowser/copy-button.tsx
5080
5079
  import { useState as useState6 } from "react";
5081
5080
  import { IconCheck, IconCopy as IconCopy2 } from "@tabler/icons-react";
5082
- import { jsx as jsx30 } from "react/jsx-runtime";
5081
+ import { jsx as jsx31 } from "react/jsx-runtime";
5083
5082
  function CopyButton({ value, ...props }) {
5084
5083
  const [copied, setCopied] = useState6(false);
5085
- return /* @__PURE__ */ jsx30(
5084
+ return /* @__PURE__ */ jsx31(
5086
5085
  Button,
5087
5086
  {
5088
5087
  onClick: (e) => {
@@ -5099,7 +5098,7 @@ function CopyButton({ value, ...props }) {
5099
5098
  variant: "secondary",
5100
5099
  size: "icon-sm",
5101
5100
  ...props,
5102
- children: copied ? /* @__PURE__ */ jsx30(IconCheck, { className: "size-4 text-green-500" }) : /* @__PURE__ */ jsx30(IconCopy2, { className: "size-4 text-zinc-500" })
5101
+ children: copied ? /* @__PURE__ */ jsx31(IconCheck, { className: "size-4 text-green-500" }) : /* @__PURE__ */ jsx31(IconCopy2, { className: "size-4 text-zinc-500" })
5103
5102
  }
5104
5103
  );
5105
5104
  }
@@ -5112,7 +5111,7 @@ var handleCopyClick = async (textToCopy) => {
5112
5111
  };
5113
5112
 
5114
5113
  // src/components/databrowser/components/display/input/custom-editor.tsx
5115
- import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
5114
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
5116
5115
  var CustomEditor = ({
5117
5116
  language,
5118
5117
  value,
@@ -5124,15 +5123,17 @@ var CustomEditor = ({
5124
5123
  const { active } = useTab();
5125
5124
  const monaco = useMonaco();
5126
5125
  const editorRef = useRef2();
5126
+ const theme = useDarkMode();
5127
5127
  useEffect7(() => {
5128
5128
  if (!active || !monaco || !editorRef.current) {
5129
5129
  return;
5130
5130
  }
5131
5131
  monaco?.editor.setModelLanguage(editorRef.current.getModel(), language);
5132
5132
  }, [monaco, language, active]);
5133
- const editor = /* @__PURE__ */ jsx31(
5133
+ const editor = /* @__PURE__ */ jsx32(
5134
5134
  Editor,
5135
5135
  {
5136
+ theme: theme === "dark" ? "vs-dark" : "light",
5136
5137
  loading: void 0,
5137
5138
  onMount: (editor2) => {
5138
5139
  editorRef.current = editor2;
@@ -5164,8 +5165,10 @@ var CustomEditor = ({
5164
5165
  automaticLayout: true,
5165
5166
  scrollBeyondLastLine: false,
5166
5167
  renderLineHighlight: "none",
5167
- unusualLineTerminators: "auto"
5168
- }
5168
+ unusualLineTerminators: "auto",
5169
+ padding: { top: 0, bottom: 0 }
5170
+ },
5171
+ className: "[&_.monaco-editor-background]:!bg-transparent [&_.monaco-editor]:!bg-transparent"
5169
5172
  }
5170
5173
  );
5171
5174
  return /* @__PURE__ */ jsxs19(
@@ -5174,8 +5177,8 @@ var CustomEditor = ({
5174
5177
  className: cn("group/editor relative", height === void 0 && "h-full p-2"),
5175
5178
  style: { height },
5176
5179
  children: [
5177
- isTest ? /* @__PURE__ */ jsx31("input", { "aria-label": "editor", value, onChange: (e) => onChange(e.target.value) }) : editor,
5178
- showCopyButton && /* @__PURE__ */ jsx31(
5180
+ isTest ? /* @__PURE__ */ jsx32("input", { "aria-label": "editor", value, onChange: (e) => onChange(e.target.value) }) : editor,
5181
+ showCopyButton && /* @__PURE__ */ jsx32(
5179
5182
  CopyButton,
5180
5183
  {
5181
5184
  value,
@@ -5188,7 +5191,7 @@ var CustomEditor = ({
5188
5191
  };
5189
5192
 
5190
5193
  // src/components/databrowser/components/display/input/use-field.tsx
5191
- import { Fragment as Fragment4, jsx as jsx32 } from "react/jsx-runtime";
5194
+ import { Fragment as Fragment4, jsx as jsx33 } from "react/jsx-runtime";
5192
5195
  var useField = ({
5193
5196
  name,
5194
5197
  form,
@@ -5228,8 +5231,8 @@ var useField = ({
5228
5231
  }
5229
5232
  };
5230
5233
  return {
5231
- selector: /* @__PURE__ */ jsx32(ContentTypeSelect, { value: contentType, onChange: handleTypeChange, data: field.value }),
5232
- editor: /* @__PURE__ */ jsx32(Fragment4, { children: /* @__PURE__ */ jsx32(
5234
+ selector: /* @__PURE__ */ jsx33(ContentTypeSelect, { value: contentType, onChange: handleTypeChange, data: field.value }),
5235
+ editor: /* @__PURE__ */ jsx33(Fragment4, { children: /* @__PURE__ */ jsx33(
5233
5236
  CustomEditor,
5234
5237
  {
5235
5238
  language: contentType === "JSON" ? "json" : "plaintext",
@@ -5253,13 +5256,13 @@ var checkIsValidJSON = (value) => {
5253
5256
  };
5254
5257
 
5255
5258
  // src/components/databrowser/components/display/display-list-edit.tsx
5256
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
5259
+ import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
5257
5260
  var ListEditDisplay = ({
5258
5261
  dataKey,
5259
5262
  type,
5260
5263
  item
5261
5264
  }) => {
5262
- return /* @__PURE__ */ jsx33("div", { className: "grow rounded-md bg-zinc-100", children: /* @__PURE__ */ jsx33(ListEditForm, { item, type, dataKey }, item.key) });
5265
+ return /* @__PURE__ */ jsx34("div", { className: "grow rounded-md bg-zinc-100", children: /* @__PURE__ */ jsx34(ListEditForm, { item, type, dataKey }, item.key) });
5263
5266
  };
5264
5267
  var ListEditForm = ({
5265
5268
  type,
@@ -5298,9 +5301,9 @@ var ListEditForm = ({
5298
5301
  });
5299
5302
  setSelectedListItem(void 0);
5300
5303
  });
5301
- return /* @__PURE__ */ jsx33(FormProvider, { ...form, children: /* @__PURE__ */ jsxs20("form", { onSubmit, className: "flex flex-col gap-2", children: [
5304
+ return /* @__PURE__ */ jsx34(FormProvider, { ...form, children: /* @__PURE__ */ jsxs20("form", { onSubmit, className: "flex flex-col gap-2", children: [
5302
5305
  /* @__PURE__ */ jsxs20("div", { className: "flex grow flex-col gap-2", children: [
5303
- type !== "list" && /* @__PURE__ */ jsx33(
5306
+ type !== "list" && /* @__PURE__ */ jsx34(
5304
5307
  FormItem,
5305
5308
  {
5306
5309
  readOnly: type === "stream",
@@ -5310,7 +5313,7 @@ var ListEditForm = ({
5310
5313
  data: itemKey
5311
5314
  }
5312
5315
  ),
5313
- type === "zset" ? /* @__PURE__ */ jsx33(NumberFormItem, { name: "value", label: valueLabel }) : type !== "set" && /* @__PURE__ */ jsx33(
5316
+ type === "zset" ? /* @__PURE__ */ jsx34(NumberFormItem, { name: "value", label: valueLabel }) : type !== "set" && /* @__PURE__ */ jsx34(
5314
5317
  FormItem,
5315
5318
  {
5316
5319
  readOnly: type === "stream",
@@ -5329,9 +5332,9 @@ var ListEditForm = ({
5329
5332
  type === "hash" && itemKey !== "" ? "justify-between" : "justify-end"
5330
5333
  ),
5331
5334
  children: [
5332
- type === "hash" && itemKey !== "" && /* @__PURE__ */ jsx33(HashFieldTTLBadge, { dataKey, field: itemKey }),
5335
+ type === "hash" && itemKey !== "" && /* @__PURE__ */ jsx34(HashFieldTTLBadge, { dataKey, field: itemKey }),
5333
5336
  /* @__PURE__ */ jsxs20("div", { className: "flex gap-2", children: [
5334
- /* @__PURE__ */ jsx33(
5337
+ /* @__PURE__ */ jsx34(
5335
5338
  Button,
5336
5339
  {
5337
5340
  type: "button",
@@ -5341,17 +5344,17 @@ var ListEditForm = ({
5341
5344
  children: "Cancel"
5342
5345
  }
5343
5346
  ),
5344
- /* @__PURE__ */ jsx33(
5347
+ /* @__PURE__ */ jsx34(
5345
5348
  SimpleTooltip,
5346
5349
  {
5347
5350
  content: type === "stream" && !isNew ? "Streams are not mutable" : void 0,
5348
- children: /* @__PURE__ */ jsx33(
5351
+ children: /* @__PURE__ */ jsx34(
5349
5352
  Button,
5350
5353
  {
5351
5354
  variant: "primary",
5352
5355
  type: "submit",
5353
5356
  disabled: !form.formState.isValid || !form.formState.isDirty || type === "stream" && !isNew,
5354
- children: /* @__PURE__ */ jsx33(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" })
5357
+ children: /* @__PURE__ */ jsx34(Spinner, { isLoading: isPending, isLoadingText: "Saving", children: "Save" })
5355
5358
  }
5356
5359
  )
5357
5360
  }
@@ -5364,12 +5367,12 @@ var ListEditForm = ({
5364
5367
  };
5365
5368
  var NumberFormItem = ({ name, label }) => {
5366
5369
  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(
5370
+ /* @__PURE__ */ jsx34("div", { className: "flex", children: /* @__PURE__ */ jsx34("span", { className: "text-xs font-medium text-zinc-700", children: label }) }),
5371
+ /* @__PURE__ */ jsx34(
5369
5372
  Controller2,
5370
5373
  {
5371
5374
  name,
5372
- render: ({ field }) => /* @__PURE__ */ jsx33(
5375
+ render: ({ field }) => /* @__PURE__ */ jsx34(
5373
5376
  "input",
5374
5377
  {
5375
5378
  className: "plain-input rounded-md border border-zinc-300 px-3 py-1 shadow-sm",
@@ -5399,18 +5402,18 @@ var FormItem = ({
5399
5402
  });
5400
5403
  return /* @__PURE__ */ jsxs20("div", { className: "flex flex-col gap-1", children: [
5401
5404
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1 text-xs", children: [
5402
- /* @__PURE__ */ jsx33("span", { className: "font-medium text-zinc-700", children: label }),
5405
+ /* @__PURE__ */ jsx34("span", { className: "font-medium text-zinc-700", children: label }),
5403
5406
  " ",
5404
- /* @__PURE__ */ jsx33("span", { className: "text-zinc-300", children: "/" }),
5407
+ /* @__PURE__ */ jsx34("span", { className: "text-zinc-300", children: "/" }),
5405
5408
  selector
5406
5409
  ] }),
5407
- /* @__PURE__ */ jsx33("div", { className: "overflow-hidden rounded-md border border-zinc-300 bg-white p-2 shadow-sm", children: editor })
5410
+ /* @__PURE__ */ jsx34("div", { className: "overflow-hidden rounded-md border border-zinc-300 bg-white p-2 shadow-sm", children: editor })
5408
5411
  ] });
5409
5412
  };
5410
5413
 
5411
5414
  // src/components/databrowser/components/display/hash/hash-field-ttl-info.tsx
5412
5415
  import { useEffect as useEffect9, useState as useState8 } from "react";
5413
- import { jsx as jsx34 } from "react/jsx-runtime";
5416
+ import { jsx as jsx35 } from "react/jsx-runtime";
5414
5417
  var HashFieldTTLInfo = ({
5415
5418
  dataKey,
5416
5419
  field,
@@ -5427,11 +5430,11 @@ var HashFieldTTLInfo = ({
5427
5430
  return () => clearInterval(interval);
5428
5431
  }, [expireAt]);
5429
5432
  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) });
5433
+ return /* @__PURE__ */ jsx35("span", { className: "block min-w-[30px] whitespace-nowrap text-right text-red-600", children: formatTime(ttl ?? 0) });
5431
5434
  };
5432
5435
 
5433
5436
  // src/components/databrowser/components/display/display-list.tsx
5434
- import { Fragment as Fragment5, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
5437
+ import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs21 } from "react/jsx-runtime";
5435
5438
  var headerLabels = {
5436
5439
  list: ["Index", "Content"],
5437
5440
  hash: ["Field", "Value"],
@@ -5443,9 +5446,9 @@ var ListDisplay = ({ dataKey, type }) => {
5443
5446
  const { selectedListItem } = useTab();
5444
5447
  const query = useFetchListItems({ dataKey, type });
5445
5448
  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 }) }) }) }) }) })
5449
+ /* @__PURE__ */ jsx36(DisplayHeader, { dataKey, type }),
5450
+ selectedListItem && /* @__PURE__ */ jsx36(ListEditDisplay, { dataKey, type, item: selectedListItem }),
5451
+ /* @__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
5452
  ] });
5450
5453
  };
5451
5454
  var ListItems = ({
@@ -5457,7 +5460,7 @@ var ListItems = ({
5457
5460
  const keys = useMemo7(() => query.data?.pages.flatMap((page) => page.keys) ?? [], [query.data]);
5458
5461
  const fields = useMemo7(() => keys.map((key) => key.key), [keys]);
5459
5462
  const { mutate: editItem } = useEditListItem();
5460
- return /* @__PURE__ */ jsx35(Fragment5, { children: keys.map(({ key, value }, i) => /* @__PURE__ */ jsxs21(
5463
+ return /* @__PURE__ */ jsx36(Fragment5, { children: keys.map(({ key, value }, i) => /* @__PURE__ */ jsxs21(
5461
5464
  "tr",
5462
5465
  {
5463
5466
  "data-item-key": key,
@@ -5467,7 +5470,7 @@ var ListItems = ({
5467
5470
  },
5468
5471
  className: cn("h-10 border-b border-b-zinc-100 transition-colors hover:bg-zinc-100"),
5469
5472
  children: [
5470
- /* @__PURE__ */ jsx35(
5473
+ /* @__PURE__ */ jsx36(
5471
5474
  "td",
5472
5475
  {
5473
5476
  className: cn(
@@ -5477,14 +5480,14 @@ var ListItems = ({
5477
5480
  children: key
5478
5481
  }
5479
5482
  ),
5480
- value !== void 0 && /* @__PURE__ */ jsx35(
5483
+ value !== void 0 && /* @__PURE__ */ jsx36(
5481
5484
  "td",
5482
5485
  {
5483
5486
  className: cn("cursor-pointer truncate px-3", type === "zset" ? "w-24" : "max-w-0"),
5484
5487
  children: value
5485
5488
  }
5486
5489
  ),
5487
- type !== "stream" && /* @__PURE__ */ jsx35(
5490
+ type !== "stream" && /* @__PURE__ */ jsx36(
5488
5491
  "td",
5489
5492
  {
5490
5493
  className: "w-0 min-w-0 p-0",
@@ -5492,8 +5495,8 @@ var ListItems = ({
5492
5495
  e.stopPropagation();
5493
5496
  },
5494
5497
  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(
5498
+ type === "hash" && /* @__PURE__ */ jsx36(HashFieldTTLInfo, { dataKey, field: key, fields }),
5499
+ /* @__PURE__ */ jsx36(
5497
5500
  DeleteAlertDialog,
5498
5501
  {
5499
5502
  deletionType: "item",
@@ -5507,14 +5510,14 @@ var ListItems = ({
5507
5510
  newKey: void 0
5508
5511
  });
5509
5512
  },
5510
- children: /* @__PURE__ */ jsx35(
5513
+ children: /* @__PURE__ */ jsx36(
5511
5514
  Button,
5512
5515
  {
5513
5516
  className: "",
5514
5517
  size: "icon-sm",
5515
5518
  variant: "secondary",
5516
5519
  onClick: (e) => e.stopPropagation(),
5517
- children: /* @__PURE__ */ jsx35(IconTrash2, { className: "size-4 text-zinc-500" })
5520
+ children: /* @__PURE__ */ jsx36(IconTrash2, { className: "size-4 text-zinc-500" })
5518
5521
  }
5519
5522
  )
5520
5523
  }
@@ -5531,12 +5534,12 @@ var ListItems = ({
5531
5534
  // src/components/databrowser/components/display/display-simple.tsx
5532
5535
  import { useEffect as useEffect10 } from "react";
5533
5536
  import { useForm as useForm3 } from "react-hook-form";
5534
- import { Fragment as Fragment6, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
5537
+ import { Fragment as Fragment6, jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
5535
5538
  var EditorDisplay = ({ dataKey, type }) => {
5536
5539
  const { data } = useFetchSimpleKey(dataKey, type);
5537
5540
  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) })
5541
+ /* @__PURE__ */ jsx37(DisplayHeader, { dataKey, type, content: data ?? void 0 }),
5542
+ /* @__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
5543
  ] });
5541
5544
  };
5542
5545
  var EditorDisplayForm = ({
@@ -5557,12 +5560,12 @@ var EditorDisplayForm = ({
5557
5560
  };
5558
5561
  return /* @__PURE__ */ jsxs22(Fragment6, { children: [
5559
5562
  /* @__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 })
5563
+ /* @__PURE__ */ jsx37("div", { className: "flex shrink-0 items-center gap-2", children: type === "json" ? /* @__PURE__ */ jsx37("div", {}) : selector }),
5564
+ /* @__PURE__ */ jsx37("div", { className: "grow rounded-md border border-zinc-300 bg-white p-1 dark:!bg-[#192321]", children: editor })
5562
5565
  ] }),
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(
5566
+ /* @__PURE__ */ jsx37("div", { className: "flex shrink-0 items-center gap-2", children: /* @__PURE__ */ jsxs22("div", { className: "ml-auto flex gap-2", children: [
5567
+ form.formState.isDirty && /* @__PURE__ */ jsx37(Button, { onClick: handleCancel, children: "Cancel" }),
5568
+ /* @__PURE__ */ jsx37(
5566
5569
  Button,
5567
5570
  {
5568
5571
  variant: "primary",
@@ -5570,7 +5573,7 @@ var EditorDisplayForm = ({
5570
5573
  await setKey(value);
5571
5574
  }),
5572
5575
  disabled: !form.formState.isValid || !form.formState.isDirty,
5573
- children: /* @__PURE__ */ jsx36(Spinner, { isLoading: isSettingKey, isLoadingText: "Saving", children: "Save" })
5576
+ children: /* @__PURE__ */ jsx37(Spinner, { isLoading: isSettingKey, isLoadingText: "Saving", children: "Save" })
5574
5577
  }
5575
5578
  )
5576
5579
  ] }) })
@@ -5578,12 +5581,12 @@ var EditorDisplayForm = ({
5578
5581
  };
5579
5582
 
5580
5583
  // src/components/databrowser/components/display/index.tsx
5581
- import { Fragment as Fragment7, jsx as jsx37 } from "react/jsx-runtime";
5584
+ import { Fragment as Fragment7, jsx as jsx38 } from "react/jsx-runtime";
5582
5585
  var DataDisplay = () => {
5583
5586
  const { selectedKey } = useTab();
5584
5587
  const { query } = useKeys();
5585
5588
  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 }) }) });
5589
+ 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
5590
  };
5588
5591
 
5589
5592
  // src/components/databrowser/components/sidebar/index.tsx
@@ -5598,12 +5601,12 @@ import { Controller as Controller3, useForm as useForm4 } from "react-hook-form"
5598
5601
  // src/components/ui/dialog.tsx
5599
5602
  import * as React12 from "react";
5600
5603
  import * as DialogPrimitive from "@radix-ui/react-dialog";
5601
- import { jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
5604
+ import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
5602
5605
  var Dialog = DialogPrimitive.Root;
5603
5606
  var DialogTrigger = DialogPrimitive.Trigger;
5604
- var DialogPortal = (props) => /* @__PURE__ */ jsx38(DialogPrimitive.Portal, { container: portalRoot, ...props });
5607
+ var DialogPortal = (props) => /* @__PURE__ */ jsx39(DialogPrimitive.Portal, { container: portalRoot, ...props });
5605
5608
  DialogPortal.displayName = DialogPrimitive.Portal.displayName;
5606
- var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
5609
+ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
5607
5610
  DialogPrimitive.Overlay,
5608
5611
  {
5609
5612
  ref,
@@ -5618,7 +5621,7 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
5618
5621
  ));
5619
5622
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
5620
5623
  var DialogContent = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs23(DialogPortal, { children: [
5621
- /* @__PURE__ */ jsx38(DialogOverlay, {}),
5624
+ /* @__PURE__ */ jsx39(DialogOverlay, {}),
5622
5625
  /* @__PURE__ */ jsxs23(
5623
5626
  DialogPrimitive.Content,
5624
5627
  {
@@ -5639,8 +5642,8 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
5639
5642
  ...props,
5640
5643
  children: [
5641
5644
  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(
5645
+ /* @__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: [
5646
+ /* @__PURE__ */ jsx39(
5644
5647
  "svg",
5645
5648
  {
5646
5649
  width: "15",
@@ -5649,7 +5652,7 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
5649
5652
  fill: "none",
5650
5653
  xmlns: "http://www.w3.org/2000/svg",
5651
5654
  className: "h-4 w-4",
5652
- children: /* @__PURE__ */ jsx38(
5655
+ children: /* @__PURE__ */ jsx39(
5653
5656
  "path",
5654
5657
  {
5655
5658
  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 +5663,16 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
5660
5663
  )
5661
5664
  }
5662
5665
  ),
5663
- /* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Close" })
5666
+ /* @__PURE__ */ jsx39("span", { className: "sr-only", children: "Close" })
5664
5667
  ] })
5665
5668
  ]
5666
5669
  }
5667
5670
  )
5668
5671
  ] }));
5669
5672
  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 });
5673
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx39("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
5671
5674
  DialogHeader.displayName = "DialogHeader";
5672
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx38(
5675
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx39(
5673
5676
  "div",
5674
5677
  {
5675
5678
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -5677,7 +5680,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx38(
5677
5680
  }
5678
5681
  );
5679
5682
  DialogFooter.displayName = "DialogFooter";
5680
- var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
5683
+ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
5681
5684
  DialogPrimitive.Title,
5682
5685
  {
5683
5686
  ref,
@@ -5686,18 +5689,18 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
5686
5689
  }
5687
5690
  ));
5688
5691
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
5689
- var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
5692
+ var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
5690
5693
  DialogPrimitive.Description,
5691
5694
  {
5692
5695
  ref,
5693
- className: cn("text-sm text-zinc-500 dark:text-zinc-400", className),
5696
+ className: cn("text-sm text-zinc-500", className),
5694
5697
  ...props
5695
5698
  }
5696
5699
  ));
5697
5700
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
5698
5701
 
5699
5702
  // src/components/databrowser/components/add-key-modal.tsx
5700
- import { jsx as jsx39, jsxs as jsxs24 } from "react/jsx-runtime";
5703
+ import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
5701
5704
  function AddKeyModal() {
5702
5705
  const { setSelectedKey } = useTab();
5703
5706
  const [open, setOpen] = useState9(false);
@@ -5729,24 +5732,24 @@ function AddKeyModal() {
5729
5732
  setOpen(open2);
5730
5733
  },
5731
5734
  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" }) }) }),
5735
+ /* @__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
5736
  /* @__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" }) }),
5737
+ /* @__PURE__ */ jsx40(DialogHeader, { children: /* @__PURE__ */ jsx40(DialogTitle, { children: "Create new key" }) }),
5738
+ /* @__PURE__ */ jsx40("div", { className: "sr-only", children: /* @__PURE__ */ jsx40(DialogDescription2, { children: "Create new key" }) }),
5736
5739
  /* @__PURE__ */ jsxs24("form", { className: "mt-4", onSubmit, children: [
5737
5740
  /* @__PURE__ */ jsxs24("div", { className: "flex gap-1", children: [
5738
- /* @__PURE__ */ jsx39(
5741
+ /* @__PURE__ */ jsx40(
5739
5742
  Controller3,
5740
5743
  {
5741
5744
  control,
5742
5745
  name: "type",
5743
5746
  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)) }) })
5747
+ /* @__PURE__ */ jsx40(SelectTrigger, { className: "h-8 w-auto pl-[3px] pr-8", children: /* @__PURE__ */ jsx40(SelectValue, {}) }),
5748
+ /* @__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
5749
  ] })
5747
5750
  }
5748
5751
  ),
5749
- /* @__PURE__ */ jsx39(
5752
+ /* @__PURE__ */ jsx40(
5750
5753
  Controller3,
5751
5754
  {
5752
5755
  rules: {
@@ -5754,14 +5757,14 @@ function AddKeyModal() {
5754
5757
  },
5755
5758
  control,
5756
5759
  name: "key",
5757
- render: ({ field }) => /* @__PURE__ */ jsx39(Input, { placeholder: "mykey", ...field, className: "h-8 grow" })
5760
+ render: ({ field }) => /* @__PURE__ */ jsx40(Input, { placeholder: "mykey", ...field, className: "h-8 grow" })
5758
5761
  }
5759
5762
  )
5760
5763
  ] }),
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" }),
5764
+ formState.errors.key && /* @__PURE__ */ jsx40("p", { className: "mb-3 mt-2 text-xs text-red-500", children: formState.errors.key?.message }),
5765
+ /* @__PURE__ */ jsx40("p", { className: "mt-2 text-xs text-zinc-500", children: "After creating the key, you can edit the value" }),
5763
5766
  /* @__PURE__ */ jsxs24("div", { className: "mt-6 flex justify-end gap-2", children: [
5764
- /* @__PURE__ */ jsx39(
5767
+ /* @__PURE__ */ jsx40(
5765
5768
  Button,
5766
5769
  {
5767
5770
  type: "button",
@@ -5772,7 +5775,7 @@ function AddKeyModal() {
5772
5775
  children: "Cancel"
5773
5776
  }
5774
5777
  ),
5775
- /* @__PURE__ */ jsx39(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx39(Spinner, { isLoading: isPending, isLoadingText: "Creating", children: "Create" }) })
5778
+ /* @__PURE__ */ jsx40(Button, { variant: "primary", type: "submit", children: /* @__PURE__ */ jsx40(Spinner, { isLoading: isPending, isLoadingText: "Creating", children: "Create" }) })
5776
5779
  ] })
5777
5780
  ] })
5778
5781
  ] })
@@ -5782,11 +5785,11 @@ function AddKeyModal() {
5782
5785
  }
5783
5786
 
5784
5787
  // src/components/databrowser/components/sidebar/empty.tsx
5785
- import { jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
5788
+ import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
5786
5789
  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!"' })
5790
+ 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: [
5791
+ /* @__PURE__ */ jsx41("p", { className: "text-md font-medium", children: "Data on a break" }),
5792
+ /* @__PURE__ */ jsx41("p", { className: "text-balance text-center", children: '"Quick, lure it back with some CLI magic!"' })
5790
5793
  ] }) });
5791
5794
  };
5792
5795
 
@@ -5794,7 +5797,7 @@ var Empty = () => {
5794
5797
  import { useState as useState10 } from "react";
5795
5798
  import { IconCopy as IconCopy3, IconExternalLink as IconExternalLink2, IconTrash as IconTrash3 } from "@tabler/icons-react";
5796
5799
  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";
5800
+ import { Fragment as Fragment8, jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
5798
5801
  var SidebarContextMenu = ({ children }) => {
5799
5802
  const { mutate: deleteKey } = useDeleteKey();
5800
5803
  const [isAlertOpen, setAlertOpen] = useState10(false);
@@ -5802,7 +5805,7 @@ var SidebarContextMenu = ({ children }) => {
5802
5805
  const { addTab, setSelectedKey, selectTab, setSearch } = useDatabrowserStore();
5803
5806
  const { search: currentSearch } = useTab();
5804
5807
  return /* @__PURE__ */ jsxs26(Fragment8, { children: [
5805
- /* @__PURE__ */ jsx41(
5808
+ /* @__PURE__ */ jsx42(
5806
5809
  DeleteAlertDialog,
5807
5810
  {
5808
5811
  deletionType: "key",
@@ -5816,7 +5819,7 @@ var SidebarContextMenu = ({ children }) => {
5816
5819
  }
5817
5820
  ),
5818
5821
  /* @__PURE__ */ jsxs26(ContextMenu, { modal: false, children: [
5819
- /* @__PURE__ */ jsx41(
5822
+ /* @__PURE__ */ jsx42(
5820
5823
  ContextMenuTrigger,
5821
5824
  {
5822
5825
  onContextMenu: (e) => {
@@ -5843,7 +5846,7 @@ var SidebarContextMenu = ({ children }) => {
5843
5846
  },
5844
5847
  className: "gap-2",
5845
5848
  children: [
5846
- /* @__PURE__ */ jsx41(IconCopy3, { size: 16 }),
5849
+ /* @__PURE__ */ jsx42(IconCopy3, { size: 16 }),
5847
5850
  "Copy key"
5848
5851
  ]
5849
5852
  }
@@ -5859,14 +5862,14 @@ var SidebarContextMenu = ({ children }) => {
5859
5862
  },
5860
5863
  className: "gap-2",
5861
5864
  children: [
5862
- /* @__PURE__ */ jsx41(IconExternalLink2, { size: 16 }),
5865
+ /* @__PURE__ */ jsx42(IconExternalLink2, { size: 16 }),
5863
5866
  "Open in new tab"
5864
5867
  ]
5865
5868
  }
5866
5869
  ),
5867
- /* @__PURE__ */ jsx41(ContextMenuSeparator3, {}),
5870
+ /* @__PURE__ */ jsx42(ContextMenuSeparator3, {}),
5868
5871
  /* @__PURE__ */ jsxs26(ContextMenuItem, { onClick: () => setAlertOpen(true), className: "gap-2", children: [
5869
- /* @__PURE__ */ jsx41(IconTrash3, { size: 16 }),
5872
+ /* @__PURE__ */ jsx42(IconTrash3, { size: 16 }),
5870
5873
  "Delete key"
5871
5874
  ] })
5872
5875
  ] })
@@ -5875,10 +5878,10 @@ var SidebarContextMenu = ({ children }) => {
5875
5878
  };
5876
5879
 
5877
5880
  // src/components/databrowser/components/sidebar/keys-list.tsx
5878
- import { Fragment as Fragment9, jsx as jsx42, jsxs as jsxs27 } from "react/jsx-runtime";
5881
+ import { Fragment as Fragment9, jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
5879
5882
  var KeysList = () => {
5880
5883
  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])) }) });
5884
+ 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
5885
  };
5883
5886
  var keyStyles = {
5884
5887
  string: "border-sky-400 !bg-sky-50 text-sky-900",
@@ -5907,9 +5910,9 @@ var KeyItem = ({ data, nextKey }) => {
5907
5910
  ),
5908
5911
  onClick: () => setSelectedKey(dataKey),
5909
5912
  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" })
5913
+ /* @__PURE__ */ jsx43(TypeTag, { variant: dataType, type: "icon" }),
5914
+ /* @__PURE__ */ jsx43("p", { className: "truncate whitespace-nowrap", children: dataKey }),
5915
+ !isKeySelected && !isNextKeySelected && /* @__PURE__ */ jsx43("span", { className: "absolute -bottom-px left-3 right-3 h-px bg-zinc-100" })
5913
5916
  ]
5914
5917
  }
5915
5918
  );
@@ -5918,7 +5921,7 @@ var KeyItem = ({ data, nextKey }) => {
5918
5921
  // src/components/databrowser/components/sidebar/search-input.tsx
5919
5922
  import { useEffect as useEffect11, useRef as useRef3, useState as useState11 } from "react";
5920
5923
  import { IconX } from "@tabler/icons-react";
5921
- import { jsx as jsx43, jsxs as jsxs28 } from "react/jsx-runtime";
5924
+ import { jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
5922
5925
  var dedupeSearchHistory = (history) => {
5923
5926
  const seen = /* @__PURE__ */ new Set();
5924
5927
  return history.filter((item) => {
@@ -5976,7 +5979,7 @@ var SearchInput = () => {
5976
5979
  };
5977
5980
  return /* @__PURE__ */ jsxs28("div", { className: "relative grow", children: [
5978
5981
  /* @__PURE__ */ jsxs28(Popover, { open: isFocus && filteredHistory.length > 0, children: [
5979
- /* @__PURE__ */ jsx43(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx43("div", { children: /* @__PURE__ */ jsx43(
5982
+ /* @__PURE__ */ jsx44(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx44("div", { children: /* @__PURE__ */ jsx44(
5980
5983
  Input,
5981
5984
  {
5982
5985
  ref: inputRef,
@@ -5995,7 +5998,7 @@ var SearchInput = () => {
5995
5998
  onBlur: () => setIsFocus(false)
5996
5999
  }
5997
6000
  ) }) }),
5998
- /* @__PURE__ */ jsx43(
6001
+ /* @__PURE__ */ jsx44(
5999
6002
  PopoverContent,
6000
6003
  {
6001
6004
  className: "w-[--radix-popover-trigger-width] divide-y px-3 py-2 text-[13px] text-zinc-900",
@@ -6004,7 +6007,7 @@ var SearchInput = () => {
6004
6007
  e.preventDefault();
6005
6008
  e.stopPropagation();
6006
6009
  },
6007
- children: filteredHistory.map((item, index) => /* @__PURE__ */ jsx43("div", { className: "w-full py-[3px]", children: /* @__PURE__ */ jsx43(
6010
+ children: filteredHistory.map((item, index) => /* @__PURE__ */ jsx44("div", { className: "w-full py-[3px]", children: /* @__PURE__ */ jsx44(
6008
6011
  "button",
6009
6012
  {
6010
6013
  ref: (el) => {
@@ -6025,14 +6028,14 @@ var SearchInput = () => {
6025
6028
  type: "button",
6026
6029
  variant: "link",
6027
6030
  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",
6031
+ className: "absolute right-1 top-1/2 h-5 w-5 -translate-y-1/2 text-zinc-500 hover:text-zinc-900",
6029
6032
  onClick: () => {
6030
6033
  setSearchKey("");
6031
6034
  setState("");
6032
6035
  },
6033
6036
  children: [
6034
- /* @__PURE__ */ jsx43(IconX, { size: 16 }),
6035
- /* @__PURE__ */ jsx43("span", { className: "sr-only", children: "Clear" })
6037
+ /* @__PURE__ */ jsx44(IconX, { size: 16 }),
6038
+ /* @__PURE__ */ jsx44("span", { className: "sr-only", children: "Clear" })
6036
6039
  ]
6037
6040
  }
6038
6041
  ),
@@ -6041,15 +6044,15 @@ var SearchInput = () => {
6041
6044
  };
6042
6045
 
6043
6046
  // src/components/databrowser/components/sidebar/skeleton-buttons.tsx
6044
- import { jsx as jsx44, jsxs as jsxs29 } from "react/jsx-runtime";
6047
+ import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
6045
6048
  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" })
6049
+ 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: [
6050
+ /* @__PURE__ */ jsx45(Skeleton, { className: "size-5 shrink-0 rounded" }),
6051
+ /* @__PURE__ */ jsx45(Skeleton, { className: "h-4 grow rounded" })
6049
6052
  ] }, idx)) });
6050
6053
 
6051
6054
  // src/components/databrowser/components/sidebar/type-selector.tsx
6052
- import { jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
6055
+ import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
6053
6056
  var ALL_TYPES_KEY = "all";
6054
6057
  function DataTypeSelector() {
6055
6058
  const { search, setSearchType } = useTab();
@@ -6065,9 +6068,9 @@ function DataTypeSelector() {
6065
6068
  },
6066
6069
  value: search.type === void 0 ? ALL_TYPES_KEY : search.type,
6067
6070
  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)
6071
+ /* @__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, {}) }),
6072
+ /* @__PURE__ */ jsx46(SelectContent, { children: /* @__PURE__ */ jsx46(SelectGroup, { children: [[ALL_TYPES_KEY, "All Types"], ...Object.entries(DATA_TYPE_NAMES)].map(
6073
+ ([key, value]) => /* @__PURE__ */ jsx46(SelectItem, { value: key, children: value }, key)
6071
6074
  ) }) })
6072
6075
  ]
6073
6076
  }
@@ -6075,19 +6078,19 @@ function DataTypeSelector() {
6075
6078
  }
6076
6079
 
6077
6080
  // src/components/databrowser/components/sidebar/index.tsx
6078
- import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
6081
+ import { jsx as jsx47, jsxs as jsxs31 } from "react/jsx-runtime";
6079
6082
  function Sidebar() {
6080
6083
  const { keys, query } = useKeys();
6081
6084
  return /* @__PURE__ */ jsxs31("div", { className: "flex h-full flex-col gap-2 p-4", children: [
6082
6085
  /* @__PURE__ */ jsxs31("div", { className: "rounded-lg bg-zinc-100", children: [
6083
6086
  /* @__PURE__ */ jsxs31("div", { className: "flex h-10 items-center justify-between pl-1", children: [
6084
- /* @__PURE__ */ jsx46(DisplayDbSize, {}),
6087
+ /* @__PURE__ */ jsx47(DisplayDbSize, {}),
6085
6088
  /* @__PURE__ */ jsxs31("div", { className: "flex gap-1", children: [
6086
- /* @__PURE__ */ jsx46(
6089
+ /* @__PURE__ */ jsx47(
6087
6090
  Button,
6088
6091
  {
6089
6092
  "aria-label": "Refresh",
6090
- className: "h-7 w-7 px-0",
6093
+ className: "h-7 w-7 px-0 text-zinc-500",
6091
6094
  onClick: () => {
6092
6095
  queryClient.invalidateQueries({
6093
6096
  queryKey: [FETCH_KEYS_QUERY_KEY]
@@ -6105,28 +6108,28 @@ function Sidebar() {
6105
6108
  queryKey: [FETCH_KEY_TYPE_QUERY_KEY]
6106
6109
  });
6107
6110
  },
6108
- children: /* @__PURE__ */ jsx46(Spinner, { isLoading: query.isFetching, children: /* @__PURE__ */ jsx46(IconRefresh, { size: 16 }) })
6111
+ children: /* @__PURE__ */ jsx47(Spinner, { isLoading: query.isFetching, children: /* @__PURE__ */ jsx47(IconRefresh, { size: 16 }) })
6109
6112
  }
6110
6113
  ),
6111
- /* @__PURE__ */ jsx46(AddKeyModal, {})
6114
+ /* @__PURE__ */ jsx47(AddKeyModal, {})
6112
6115
  ] })
6113
6116
  ] }),
6114
6117
  /* @__PURE__ */ jsxs31("div", { className: "flex h-10 items-center", children: [
6115
- /* @__PURE__ */ jsx46(DataTypeSelector, {}),
6116
- /* @__PURE__ */ jsx46(SearchInput, {})
6118
+ /* @__PURE__ */ jsx47(DataTypeSelector, {}),
6119
+ /* @__PURE__ */ jsx47(SearchInput, {})
6117
6120
  ] })
6118
6121
  ] }),
6119
- query.isLoading && keys.length === 0 ? /* @__PURE__ */ jsx46(LoadingSkeleton, {}) : keys.length > 0 ? (
6122
+ query.isLoading && keys.length === 0 ? /* @__PURE__ */ jsx47(LoadingSkeleton, {}) : keys.length > 0 ? (
6120
6123
  // 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, {})
6124
+ /* @__PURE__ */ jsx47(InfiniteScroll, { query, disableRoundedInherit: true, className: "min-h-0", children: /* @__PURE__ */ jsx47(KeysList, {}) })
6125
+ ) : /* @__PURE__ */ jsx47(Empty, {})
6123
6126
  ] });
6124
6127
  }
6125
6128
 
6126
6129
  // src/components/databrowser/components/databrowser-instance.tsx
6127
- import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
6130
+ import { jsx as jsx48, jsxs as jsxs32 } from "react/jsx-runtime";
6128
6131
  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: [
6132
+ return /* @__PURE__ */ jsx48(KeysProvider, { children: /* @__PURE__ */ jsxs32("div", { className: cn("min-h-0 grow rounded-md bg-zinc-100", hidden && "hidden"), children: [
6130
6133
  /* @__PURE__ */ jsxs32(
6131
6134
  PanelGroup,
6132
6135
  {
@@ -6134,13 +6137,13 @@ var DatabrowserInstance = ({ hidden }) => {
6134
6137
  direction: "horizontal",
6135
6138
  className: "h-full w-full gap-0.5 text-sm antialiased",
6136
6139
  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, {}) })
6140
+ /* @__PURE__ */ jsx48(Panel, { defaultSize: 30, minSize: 30, children: /* @__PURE__ */ jsx48(Sidebar, {}) }),
6141
+ /* @__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" }) }),
6142
+ /* @__PURE__ */ jsx48(Panel, { minSize: 40, children: /* @__PURE__ */ jsx48(DataDisplay, {}) })
6140
6143
  ]
6141
6144
  }
6142
6145
  ),
6143
- /* @__PURE__ */ jsx47(Toaster, {})
6146
+ /* @__PURE__ */ jsx48(Toaster, {})
6144
6147
  ] }) });
6145
6148
  };
6146
6149
 
@@ -6163,13 +6166,13 @@ import { IconChevronDown as IconChevronDown2, IconPlus as IconPlus2 } from "@tab
6163
6166
  import * as React13 from "react";
6164
6167
  import { Command as CommandPrimitive } from "cmdk";
6165
6168
  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(
6169
+ import { jsx as jsx49, jsxs as jsxs33 } from "react/jsx-runtime";
6170
+ var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6168
6171
  CommandPrimitive,
6169
6172
  {
6170
6173
  ref,
6171
6174
  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",
6175
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-white text-zinc-950",
6173
6176
  className
6174
6177
  ),
6175
6178
  ...props
@@ -6177,13 +6180,13 @@ var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
6177
6180
  ));
6178
6181
  Command.displayName = CommandPrimitive.displayName;
6179
6182
  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(
6183
+ /* @__PURE__ */ jsx49(MagnifyingGlassIcon, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
6184
+ /* @__PURE__ */ jsx49(
6182
6185
  CommandPrimitive.Input,
6183
6186
  {
6184
6187
  ref,
6185
6188
  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",
6189
+ "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
6190
  className
6188
6191
  ),
6189
6192
  ...props
@@ -6191,7 +6194,7 @@ var CommandInput = React13.forwardRef(({ className, ...props }, ref) => /* @__PU
6191
6194
  )
6192
6195
  ] }));
6193
6196
  CommandInput.displayName = CommandPrimitive.Input.displayName;
6194
- var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6197
+ var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6195
6198
  CommandPrimitive.List,
6196
6199
  {
6197
6200
  ref,
@@ -6200,62 +6203,43 @@ var CommandList = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
6200
6203
  }
6201
6204
  ));
6202
6205
  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
- ));
6206
+ var CommandEmpty = React13.forwardRef((props, ref) => /* @__PURE__ */ jsx49(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
6211
6207
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
6212
- var CommandGroup = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6208
+ var CommandGroup = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6213
6209
  CommandPrimitive.Group,
6214
6210
  {
6215
6211
  ref,
6216
6212
  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",
6213
+ "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
6214
  className
6219
6215
  ),
6220
6216
  ...props
6221
6217
  }
6222
6218
  ));
6223
6219
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
6224
- var CommandSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6220
+ var CommandSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6225
6221
  CommandPrimitive.Separator,
6226
6222
  {
6227
6223
  ref,
6228
- className: cn("-mx-1 h-px bg-neutral-200 dark:bg-neutral-800", className),
6224
+ className: cn("-mx-1 h-px bg-zinc-200", className),
6229
6225
  ...props
6230
6226
  }
6231
6227
  ));
6232
6228
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
6233
- var CommandItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
6229
+ var CommandItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
6234
6230
  CommandPrimitive.Item,
6235
6231
  {
6236
6232
  ref,
6237
6233
  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",
6234
+ "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
6235
  className
6240
6236
  ),
6241
6237
  ...props
6242
6238
  }
6243
6239
  ));
6244
6240
  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
- );
6241
+ var CommandShortcut = ({ className, ...props }) => {
6242
+ return /* @__PURE__ */ jsx49("span", { className: cn("ml-auto text-xs tracking-widest text-zinc-500", className), ...props });
6259
6243
  };
6260
6244
  CommandShortcut.displayName = "CommandShortcut";
6261
6245
 
@@ -6270,12 +6254,12 @@ import {
6270
6254
  } from "@tabler/icons-react";
6271
6255
 
6272
6256
  // src/components/databrowser/components/tab-type-icon.tsx
6273
- import { jsx as jsx49 } from "react/jsx-runtime";
6257
+ import { jsx as jsx50 } from "react/jsx-runtime";
6274
6258
  function TabTypeIcon({ selectedKey }) {
6275
6259
  const { data: keyType, isLoading } = useFetchKeyType(selectedKey);
6276
- if (isLoading) return /* @__PURE__ */ jsx49(Skeleton, { className: "h-5 w-5 rounded" });
6260
+ if (isLoading) return /* @__PURE__ */ jsx50(Skeleton, { className: "h-5 w-5 rounded" });
6277
6261
  if (!keyType || keyType === "none") return;
6278
- return /* @__PURE__ */ jsx49(TypeTag, { variant: keyType, type: "icon" });
6262
+ return /* @__PURE__ */ jsx50(TypeTag, { variant: keyType, type: "icon" });
6279
6263
  }
6280
6264
 
6281
6265
  // src/hooks/use-overflow.ts
@@ -6305,7 +6289,7 @@ var useOverflow = () => {
6305
6289
  };
6306
6290
 
6307
6291
  // src/components/databrowser/components/tab.tsx
6308
- import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
6292
+ import { jsx as jsx51, jsxs as jsxs34 } from "react/jsx-runtime";
6309
6293
  var Tab = ({ id, isList }) => {
6310
6294
  const { active, search, selectedKey, pinned } = useTab();
6311
6295
  const {
@@ -6321,7 +6305,7 @@ var Tab = ({ id, isList }) => {
6321
6305
  const hasPinnedTabs = tabs.some(([, data]) => data.pinned);
6322
6306
  const { ref, isOverflow } = useOverflow();
6323
6307
  const label = search.key || selectedKey;
6324
- const iconNode = search.key ? /* @__PURE__ */ jsx50(IconSearch, { size: 15 }) : selectedKey ? /* @__PURE__ */ jsx50(TabTypeIcon, { selectedKey }) : void 0;
6308
+ const iconNode = search.key ? /* @__PURE__ */ jsx51(IconSearch, { size: 15 }) : selectedKey ? /* @__PURE__ */ jsx51(TabTypeIcon, { selectedKey }) : void 0;
6325
6309
  const tabNode = /* @__PURE__ */ jsxs34(
6326
6310
  "div",
6327
6311
  {
@@ -6335,7 +6319,7 @@ var Tab = ({ id, isList }) => {
6335
6319
  ),
6336
6320
  children: [
6337
6321
  iconNode,
6338
- /* @__PURE__ */ jsx50(
6322
+ /* @__PURE__ */ jsx51(
6339
6323
  "span",
6340
6324
  {
6341
6325
  ref,
@@ -6343,8 +6327,8 @@ var Tab = ({ id, isList }) => {
6343
6327
  children: label || "New Tab"
6344
6328
  }
6345
6329
  ),
6346
- pinned && /* @__PURE__ */ jsx50(IconPin, { size: 14, className: "text-zinc-500" }),
6347
- tabs.length > 1 && !pinned && /* @__PURE__ */ jsx50(
6330
+ pinned && /* @__PURE__ */ jsx51(IconPin, { size: 14, className: "text-zinc-500" }),
6331
+ tabs.length > 1 && !pinned && /* @__PURE__ */ jsx51(
6348
6332
  "button",
6349
6333
  {
6350
6334
  onClick: (e) => {
@@ -6352,14 +6336,14 @@ var Tab = ({ id, isList }) => {
6352
6336
  removeTab(id);
6353
6337
  },
6354
6338
  className: "p-1 text-zinc-300 transition-colors hover:text-zinc-500",
6355
- children: /* @__PURE__ */ jsx50(IconX2, { size: 16 })
6339
+ children: /* @__PURE__ */ jsx51(IconX2, { size: 16 })
6356
6340
  }
6357
6341
  )
6358
6342
  ]
6359
6343
  }
6360
6344
  );
6361
6345
  return /* @__PURE__ */ jsxs34(ContextMenu, { children: [
6362
- /* @__PURE__ */ jsx50(SimpleTooltip, { content: isOverflow ? label : void 0, children: /* @__PURE__ */ jsx50(ContextMenuTrigger, { asChild: true, children: tabNode }) }),
6346
+ /* @__PURE__ */ jsx51(SimpleTooltip, { content: isOverflow ? label : void 0, children: /* @__PURE__ */ jsx51(ContextMenuTrigger, { asChild: true, children: tabNode }) }),
6363
6347
  /* @__PURE__ */ jsxs34(
6364
6348
  ContextMenuContent,
6365
6349
  {
@@ -6368,20 +6352,20 @@ var Tab = ({ id, isList }) => {
6368
6352
  },
6369
6353
  children: [
6370
6354
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => togglePinTab(id), className: "gap-2", children: [
6371
- /* @__PURE__ */ jsx50(IconPin, { size: 16 }),
6355
+ /* @__PURE__ */ jsx51(IconPin, { size: 16 }),
6372
6356
  pinned ? "Unpin Tab" : "Pin Tab"
6373
6357
  ] }),
6374
6358
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => duplicateTab(id), className: "gap-2", children: [
6375
- /* @__PURE__ */ jsx50(IconCopyPlus, { size: 16 }),
6359
+ /* @__PURE__ */ jsx51(IconCopyPlus, { size: 16 }),
6376
6360
  "Duplicate Tab"
6377
6361
  ] }),
6378
- /* @__PURE__ */ jsx50(ContextMenuSeparator, {}),
6362
+ /* @__PURE__ */ jsx51(ContextMenuSeparator, {}),
6379
6363
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => forceRemoveTab(id), className: "gap-2", children: [
6380
- /* @__PURE__ */ jsx50(IconX2, { size: 16 }),
6364
+ /* @__PURE__ */ jsx51(IconX2, { size: 16 }),
6381
6365
  "Close Tab"
6382
6366
  ] }),
6383
6367
  /* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => closeOtherTabs(id), className: "gap-2", children: [
6384
- /* @__PURE__ */ jsx50(IconSquareX, { size: 16 }),
6368
+ /* @__PURE__ */ jsx51(IconSquareX, { size: 16 }),
6385
6369
  "Close Other Tabs"
6386
6370
  ] }),
6387
6371
  /* @__PURE__ */ jsxs34(
@@ -6391,7 +6375,7 @@ var Tab = ({ id, isList }) => {
6391
6375
  className: "gap-2",
6392
6376
  disabled: !hasPinnedTabs,
6393
6377
  children: [
6394
- /* @__PURE__ */ jsx50(IconArrowsMinimize, { size: 16 }),
6378
+ /* @__PURE__ */ jsx51(IconArrowsMinimize, { size: 16 }),
6395
6379
  "Close All But Pinned"
6396
6380
  ]
6397
6381
  }
@@ -6403,7 +6387,7 @@ var Tab = ({ id, isList }) => {
6403
6387
  };
6404
6388
 
6405
6389
  // src/components/databrowser/components/databrowser-tabs.tsx
6406
- import { jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
6390
+ import { jsx as jsx52, jsxs as jsxs35 } from "react/jsx-runtime";
6407
6391
  var SortableTab = ({ id }) => {
6408
6392
  const [originalWidth, setOriginalWidth] = useState13(null);
6409
6393
  const textRef = useRef5(null);
@@ -6471,7 +6455,7 @@ var SortableTab = ({ id }) => {
6471
6455
  minWidth: originalWidth ? `${originalWidth}px` : void 0
6472
6456
  } : {}
6473
6457
  };
6474
- return /* @__PURE__ */ jsx51(
6458
+ return /* @__PURE__ */ jsx52(
6475
6459
  "div",
6476
6460
  {
6477
6461
  ref: measureRef,
@@ -6479,7 +6463,7 @@ var SortableTab = ({ id }) => {
6479
6463
  className: isDragging ? "cursor-grabbing" : isPinned ? "cursor-default" : "cursor-grab",
6480
6464
  ...attributes,
6481
6465
  ...isPinned ? {} : listeners2,
6482
- children: /* @__PURE__ */ jsx51(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx51(Tab, { id }) })
6466
+ children: /* @__PURE__ */ jsx52(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx52(Tab, { id }) })
6483
6467
  }
6484
6468
  );
6485
6469
  };
@@ -6555,16 +6539,16 @@ var DatabrowserTabs = () => {
6555
6539
  }
6556
6540
  };
6557
6541
  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" }),
6542
+ /* @__PURE__ */ jsx52("div", { className: "absolute bottom-0 left-0 right-0 -z-10 h-[1px] w-full bg-zinc-200" }),
6559
6543
  /* @__PURE__ */ jsxs35("div", { className: "flex translate-y-[1px] items-center gap-1", children: [
6560
6544
  /* @__PURE__ */ jsxs35("div", { className: "relative min-w-0 flex-1", children: [
6561
- /* @__PURE__ */ jsx51(
6545
+ /* @__PURE__ */ jsx52(
6562
6546
  "div",
6563
6547
  {
6564
6548
  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
6549
  }
6566
6550
  ),
6567
- /* @__PURE__ */ jsx51(
6551
+ /* @__PURE__ */ jsx52(
6568
6552
  "div",
6569
6553
  {
6570
6554
  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 +6561,7 @@ var DatabrowserTabs = () => {
6577
6561
  onScroll: recomputeShadows,
6578
6562
  className: "scrollbar-hide flex min-w-0 flex-1 items-center gap-1 overflow-x-auto pb-[1px] [&::-webkit-scrollbar]:hidden",
6579
6563
  children: [
6580
- /* @__PURE__ */ jsx51(
6564
+ /* @__PURE__ */ jsx52(
6581
6565
  DndContext,
6582
6566
  {
6583
6567
  sensors,
@@ -6589,24 +6573,24 @@ var DatabrowserTabs = () => {
6589
6573
  strategy: MeasuringStrategy.Always
6590
6574
  }
6591
6575
  },
6592
- children: /* @__PURE__ */ jsx51(
6576
+ children: /* @__PURE__ */ jsx52(
6593
6577
  SortableContext,
6594
6578
  {
6595
6579
  items: sortedTabs.map(([id]) => id),
6596
6580
  strategy: horizontalListSortingStrategy,
6597
- children: selectedTab && sortedTabs.map(([id]) => /* @__PURE__ */ jsx51(SortableTab, { id }, id))
6581
+ children: selectedTab && sortedTabs.map(([id]) => /* @__PURE__ */ jsx52(SortableTab, { id }, id))
6598
6582
  }
6599
6583
  )
6600
6584
  }
6601
6585
  ),
6602
- !isOverflow && /* @__PURE__ */ jsx51("div", { className: "flex items-center gap-1 pl-1 pr-1", children: /* @__PURE__ */ jsx51(AddTabButton, {}) })
6586
+ !isOverflow && /* @__PURE__ */ jsx52("div", { className: "flex items-center gap-1 pl-1 pr-1", children: /* @__PURE__ */ jsx52(AddTabButton, {}) })
6603
6587
  ]
6604
6588
  }
6605
6589
  )
6606
6590
  ] }),
6607
6591
  /* @__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 })
6592
+ isOverflow && /* @__PURE__ */ jsx52(AddTabButton, {}),
6593
+ tabs.length > 1 && /* @__PURE__ */ jsx52(TabsListButton, { tabs, onSelectTab: selectTab })
6610
6594
  ] })
6611
6595
  ] })
6612
6596
  ] });
@@ -6623,7 +6607,7 @@ function AddTabButton() {
6623
6607
  tab.scrollIntoView({ behavior: "smooth" });
6624
6608
  }, 20);
6625
6609
  };
6626
- return /* @__PURE__ */ jsx51(
6610
+ return /* @__PURE__ */ jsx52(
6627
6611
  Button,
6628
6612
  {
6629
6613
  "aria-label": "Add new tab",
@@ -6631,7 +6615,7 @@ function AddTabButton() {
6631
6615
  size: "icon-sm",
6632
6616
  onClick: handleAddTab,
6633
6617
  className: "flex-shrink-0",
6634
- children: /* @__PURE__ */ jsx51(IconPlus2, { className: "text-zinc-500", size: 16 })
6618
+ children: /* @__PURE__ */ jsx52(IconPlus2, { className: "text-zinc-500", size: 16 })
6635
6619
  }
6636
6620
  );
6637
6621
  }
@@ -6658,7 +6642,7 @@ function TabsListButton({
6658
6642
  }, 20);
6659
6643
  };
6660
6644
  return /* @__PURE__ */ jsxs35(Popover, { open, onOpenChange: setOpen, children: [
6661
- /* @__PURE__ */ jsx51(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
6645
+ /* @__PURE__ */ jsx52(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
6662
6646
  Button,
6663
6647
  {
6664
6648
  variant: "secondary",
@@ -6666,14 +6650,14 @@ function TabsListButton({
6666
6650
  className: "h-7 gap-1 px-2",
6667
6651
  "aria-label": "Search in tabs",
6668
6652
  children: [
6669
- /* @__PURE__ */ jsx51("span", { className: "text-xs text-zinc-600", children: tabs.length }),
6670
- /* @__PURE__ */ jsx51(IconChevronDown2, { className: "text-zinc-500", size: 16 })
6653
+ /* @__PURE__ */ jsx52("span", { className: "text-xs text-zinc-600", children: tabs.length }),
6654
+ /* @__PURE__ */ jsx52(IconChevronDown2, { className: "text-zinc-500", size: 16 })
6671
6655
  ]
6672
6656
  }
6673
6657
  ) }),
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(
6658
+ /* @__PURE__ */ jsx52(PopoverContent, { className: "w-96 p-0", align: "end", children: /* @__PURE__ */ jsx52(Command, { children: /* @__PURE__ */ jsxs35(CommandList, { children: [
6659
+ /* @__PURE__ */ jsx52(CommandEmpty, { children: "No tabs" }),
6660
+ /* @__PURE__ */ jsx52(CommandGroup, { children: sorted.map(([_id, item]) => /* @__PURE__ */ jsx52(
6677
6661
  CommandItem,
6678
6662
  {
6679
6663
  style: {
@@ -6683,7 +6667,7 @@ function TabsListButton({
6683
6667
  onSelect: () => {
6684
6668
  handleSelectTab(item.id);
6685
6669
  },
6686
- children: /* @__PURE__ */ jsx51(TabIdProvider, { value: _id, children: /* @__PURE__ */ jsx51(Tab, { id: _id, isList: true }) })
6670
+ children: /* @__PURE__ */ jsx52(TabIdProvider, { value: _id, children: /* @__PURE__ */ jsx52(Tab, { id: _id, isList: true }) })
6687
6671
  },
6688
6672
  item.id
6689
6673
  )) })
@@ -6692,30 +6676,41 @@ function TabsListButton({
6692
6676
  }
6693
6677
 
6694
6678
  // src/components/databrowser/index.tsx
6695
- import { jsx as jsx52, jsxs as jsxs36 } from "react/jsx-runtime";
6679
+ import { jsx as jsx53, jsxs as jsxs36 } from "react/jsx-runtime";
6696
6680
  var RedisBrowser = ({
6697
6681
  token,
6698
6682
  url,
6699
6683
  hideTabs,
6700
- storage
6684
+ storage,
6685
+ darkMode = "light"
6701
6686
  }) => {
6702
6687
  const credentials = useMemo9(() => ({ token, url }), [token, url]);
6703
6688
  const rootRef = useRef6(null);
6704
6689
  useEffect14(() => {
6705
6690
  queryClient.resetQueries();
6706
6691
  }, [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
- ) }) }) }) });
6692
+ 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 }) }) }) }) }) });
6693
+ };
6694
+ var RedisBrowserRoot = ({
6695
+ hideTabs,
6696
+ rootRef
6697
+ }) => {
6698
+ const theme = useDarkMode();
6699
+ return (
6700
+ /* ups-db is the custom class used to prefix every style in the css bundle */
6701
+ /* @__PURE__ */ jsxs36(
6702
+ "div",
6703
+ {
6704
+ className: `ups-db ${theme === "dark" ? "dark" : ""}`,
6705
+ style: { height: "100%", display: "flex", flexDirection: "column" },
6706
+ ref: rootRef,
6707
+ children: [
6708
+ !hideTabs && /* @__PURE__ */ jsx53(DatabrowserTabs, {}),
6709
+ /* @__PURE__ */ jsx53(DatabrowserInstances, {})
6710
+ ]
6711
+ }
6712
+ )
6713
+ );
6719
6714
  };
6720
6715
  var DatabrowserInstances = () => {
6721
6716
  const { tabs, selectedTab, selectTab, addTab } = useDatabrowserStore();
@@ -6724,7 +6719,7 @@ var DatabrowserInstances = () => {
6724
6719
  else if (!selectedTab) selectTab(tabs[0][0]);
6725
6720
  }, [tabs, selectedTab, addTab, selectTab]);
6726
6721
  if (!selectedTab) return;
6727
- return tabs.map(([id]) => /* @__PURE__ */ jsx52(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx52(DatabrowserInstance, { hidden: id !== selectedTab }) }, id));
6722
+ return tabs.map(([id]) => /* @__PURE__ */ jsx53(TabIdProvider, { value: id, children: /* @__PURE__ */ jsx53(DatabrowserInstance, { hidden: id !== selectedTab }) }, id));
6728
6723
  };
6729
6724
  export {
6730
6725
  RedisBrowser