@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.css +579 -392
- package/dist/index.d.mts +18 -2
- package/dist/index.d.ts +18 -2
- package/dist/index.js +115 -120
- package/dist/index.mjs +441 -446
- package/package.json +1 -1
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 =
|
|
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__ */
|
|
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 =
|
|
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
|
|
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
|
|
219
|
-
var DatabrowserContext =
|
|
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__ */
|
|
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 =
|
|
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
|
|
453
|
-
import { jsx as
|
|
454
|
-
var TabIdContext =
|
|
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__ */
|
|
474
|
+
return /* @__PURE__ */ jsx4(TabIdContext.Provider, { value, children });
|
|
457
475
|
};
|
|
458
476
|
var useTabId = () => {
|
|
459
|
-
const tabId =
|
|
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
|
|
3108
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
3091
3109
|
var ToastProvider = ToastPrimitives.Provider;
|
|
3092
|
-
var ToastViewport = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
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
|
|
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
|
|
3110
|
-
destructive: "destructive group border-red-500 bg-red-500 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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3193
|
+
import { jsx as jsx6, jsxs } from "react/jsx-runtime";
|
|
3176
3194
|
function Toaster() {
|
|
3177
3195
|
const { toasts } = useToast();
|
|
3178
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
3182
|
-
description && /* @__PURE__ */
|
|
3199
|
+
title && /* @__PURE__ */ jsx6(ToastTitle, { children: title }),
|
|
3200
|
+
description && /* @__PURE__ */ jsx6(ToastDescription, { children: description })
|
|
3183
3201
|
] }),
|
|
3184
3202
|
action,
|
|
3185
|
-
/* @__PURE__ */
|
|
3203
|
+
/* @__PURE__ */ jsx6(ToastClose, {})
|
|
3186
3204
|
] }, id)),
|
|
3187
|
-
/* @__PURE__ */
|
|
3205
|
+
/* @__PURE__ */ jsx6(ToastViewport, {})
|
|
3188
3206
|
] }) });
|
|
3189
3207
|
}
|
|
3190
3208
|
|
|
3191
3209
|
// src/components/databrowser/hooks/use-keys.tsx
|
|
3192
|
-
import { createContext as
|
|
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
|
|
3211
|
-
var KeysContext =
|
|
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__ */
|
|
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 =
|
|
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
|
|
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
|
|
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-
|
|
3322
|
-
destructive: "bg-red-500 text-zinc-50 hover:bg-red-500/90
|
|
3323
|
-
outline: "border border-zinc-200 bg-white hover:bg-zinc-100 hover:text-zinc-900
|
|
3324
|
-
primary: "bg-emerald-500 text-white shadow-sm hover:bg-emerald-600
|
|
3325
|
-
secondary: "bg-
|
|
3326
|
-
ghost: "hover:bg-
|
|
3327
|
-
link: "text-
|
|
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__ */
|
|
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
|
|
3377
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
3360
3378
|
function Skeleton({ className, ...props }) {
|
|
3361
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3824
|
-
/* @__PURE__ */
|
|
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
|
|
3845
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
3834
3846
|
var Input = React4.forwardRef(
|
|
3835
3847
|
({ className, type, ...props }, ref) => {
|
|
3836
|
-
return /* @__PURE__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
3911
|
+
children: /* @__PURE__ */ jsx14(
|
|
3900
3912
|
"path",
|
|
3901
3913
|
{
|
|
3902
3914
|
d: "M4 6L8 10L12 6",
|
|
3903
|
-
stroke: "
|
|
3915
|
+
stroke: "currentColor",
|
|
3904
3916
|
strokeOpacity: "0.4",
|
|
3905
|
-
strokeWidth: "1.
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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
|
|
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__ */
|
|
4014
|
+
return /* @__PURE__ */ jsx15("div", { className: className ?? "flex items-center", children: isLoading ? /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
4003
4015
|
isLoadingText,
|
|
4004
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
4067
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4100
|
+
render: ({ field }) => /* @__PURE__ */ jsx16(Input, { min: "-1", ...field, className: "grow rounded-r-none" })
|
|
4089
4101
|
}
|
|
4090
4102
|
),
|
|
4091
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4098
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4104
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4119
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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-
|
|
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-
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
4380
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
4442
|
+
children && /* @__PURE__ */ jsx20(AlertDialogTrigger, { asChild: true, children }),
|
|
4444
4443
|
/* @__PURE__ */ jsxs10(AlertDialogContent, { children: [
|
|
4445
4444
|
/* @__PURE__ */ jsxs10(AlertDialogHeader, { children: [
|
|
4446
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4450
|
+
/* @__PURE__ */ jsx20("br", {}),
|
|
4452
4451
|
"This action cannot be undone."
|
|
4453
4452
|
] })
|
|
4454
4453
|
] }),
|
|
4455
4454
|
/* @__PURE__ */ jsxs10(AlertDialogFooter, { children: [
|
|
4456
|
-
/* @__PURE__ */
|
|
4457
|
-
/* @__PURE__ */
|
|
4455
|
+
/* @__PURE__ */ jsx20(AlertDialogCancel, { type: "button", children: "Cancel" }),
|
|
4456
|
+
/* @__PURE__ */ jsx20(
|
|
4458
4457
|
AlertDialogAction,
|
|
4459
4458
|
{
|
|
4460
|
-
className: "bg-red-500 text-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4570
|
+
/* @__PURE__ */ jsx21(IconExternalLink, { size: 16 }),
|
|
4572
4571
|
"Open in new tab"
|
|
4573
4572
|
]
|
|
4574
4573
|
}
|
|
4575
4574
|
),
|
|
4576
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
4618
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
4629
|
+
children: /* @__PURE__ */ jsx22(
|
|
4631
4630
|
ScrollAreaPrimitive.ScrollAreaThumb,
|
|
4632
4631
|
{
|
|
4633
|
-
className: cn("relative flex-1 rounded-full bg-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
4715
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
4717
4716
|
var iconsMap = {
|
|
4718
|
-
string: /* @__PURE__ */
|
|
4719
|
-
set: /* @__PURE__ */
|
|
4720
|
-
hash: /* @__PURE__ */
|
|
4721
|
-
json: /* @__PURE__ */
|
|
4722
|
-
zset: /* @__PURE__ */
|
|
4723
|
-
list: /* @__PURE__ */
|
|
4724
|
-
stream: /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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-
|
|
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-
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4900
|
+
/* @__PURE__ */ jsx26(
|
|
4902
4901
|
DeleteAlertDialog,
|
|
4903
4902
|
{
|
|
4904
4903
|
deletionType: "key",
|
|
4905
4904
|
onDeleteConfirm: async () => await deleteKey(dataKey),
|
|
4906
|
-
children: /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
4936
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4941
|
-
/* @__PURE__ */
|
|
4942
|
-
/* @__PURE__ */
|
|
4943
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
4973
|
+
if (!content) return /* @__PURE__ */ jsx28(Fragment3, { children });
|
|
4975
4974
|
return /* @__PURE__ */ jsxs17(Tooltip, { delayDuration: 400, children: [
|
|
4976
|
-
/* @__PURE__ */
|
|
4977
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
5068
|
-
/* @__PURE__ */
|
|
5069
|
-
/* @__PURE__ */
|
|
5070
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
5178
|
-
showCopyButton && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
5232
|
-
editor: /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5335
|
+
type === "hash" && itemKey !== "" && /* @__PURE__ */ jsx34(HashFieldTTLBadge, { dataKey, field: itemKey }),
|
|
5333
5336
|
/* @__PURE__ */ jsxs20("div", { className: "flex gap-2", children: [
|
|
5334
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5347
|
+
/* @__PURE__ */ jsx34(
|
|
5345
5348
|
SimpleTooltip,
|
|
5346
5349
|
{
|
|
5347
5350
|
content: type === "stream" && !isNew ? "Streams are not mutable" : void 0,
|
|
5348
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5368
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5405
|
+
/* @__PURE__ */ jsx34("span", { className: "font-medium text-zinc-700", children: label }),
|
|
5403
5406
|
" ",
|
|
5404
|
-
/* @__PURE__ */
|
|
5407
|
+
/* @__PURE__ */ jsx34("span", { className: "text-zinc-300", children: "/" }),
|
|
5405
5408
|
selector
|
|
5406
5409
|
] }),
|
|
5407
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
5447
|
-
selectedListItem && /* @__PURE__ */
|
|
5448
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5496
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
5539
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5561
|
-
/* @__PURE__ */
|
|
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__ */
|
|
5564
|
-
form.formState.isDirty && /* @__PURE__ */
|
|
5565
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
5643
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
5735
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5745
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
5760
|
+
render: ({ field }) => /* @__PURE__ */ jsx40(Input, { placeholder: "mykey", ...field, className: "h-8 grow" })
|
|
5758
5761
|
}
|
|
5759
5762
|
)
|
|
5760
5763
|
] }),
|
|
5761
|
-
formState.errors.key && /* @__PURE__ */
|
|
5762
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
5788
|
+
import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5786
5789
|
var Empty = () => {
|
|
5787
|
-
return /* @__PURE__ */
|
|
5788
|
-
/* @__PURE__ */
|
|
5789
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
5865
|
+
/* @__PURE__ */ jsx42(IconExternalLink2, { size: 16 }),
|
|
5863
5866
|
"Open in new tab"
|
|
5864
5867
|
]
|
|
5865
5868
|
}
|
|
5866
5869
|
),
|
|
5867
|
-
/* @__PURE__ */
|
|
5870
|
+
/* @__PURE__ */ jsx42(ContextMenuSeparator3, {}),
|
|
5868
5871
|
/* @__PURE__ */ jsxs26(ContextMenuItem, { onClick: () => setAlertOpen(true), className: "gap-2", children: [
|
|
5869
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
5911
|
-
/* @__PURE__ */
|
|
5912
|
-
!isKeySelected && !isNextKeySelected && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
6035
|
-
/* @__PURE__ */
|
|
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
|
|
6047
|
+
import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6045
6048
|
var DEFAULT_SKELETON_COUNT = 6;
|
|
6046
|
-
var LoadingSkeleton = () => /* @__PURE__ */
|
|
6047
|
-
/* @__PURE__ */
|
|
6048
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
6069
|
-
/* @__PURE__ */
|
|
6070
|
-
([key, value]) => /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
6087
|
+
/* @__PURE__ */ jsx47(DisplayDbSize, {}),
|
|
6085
6088
|
/* @__PURE__ */ jsxs31("div", { className: "flex gap-1", children: [
|
|
6086
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6111
|
+
children: /* @__PURE__ */ jsx47(Spinner, { isLoading: query.isFetching, children: /* @__PURE__ */ jsx47(IconRefresh, { size: 16 }) })
|
|
6109
6112
|
}
|
|
6110
6113
|
),
|
|
6111
|
-
/* @__PURE__ */
|
|
6114
|
+
/* @__PURE__ */ jsx47(AddKeyModal, {})
|
|
6112
6115
|
] })
|
|
6113
6116
|
] }),
|
|
6114
6117
|
/* @__PURE__ */ jsxs31("div", { className: "flex h-10 items-center", children: [
|
|
6115
|
-
/* @__PURE__ */
|
|
6116
|
-
/* @__PURE__ */
|
|
6118
|
+
/* @__PURE__ */ jsx47(DataTypeSelector, {}),
|
|
6119
|
+
/* @__PURE__ */ jsx47(SearchInput, {})
|
|
6117
6120
|
] })
|
|
6118
6121
|
] }),
|
|
6119
|
-
query.isLoading && keys.length === 0 ? /* @__PURE__ */
|
|
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__ */
|
|
6122
|
-
) : /* @__PURE__ */
|
|
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
|
|
6130
|
+
import { jsx as jsx48, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
6128
6131
|
var DatabrowserInstance = ({ hidden }) => {
|
|
6129
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
6138
|
-
/* @__PURE__ */
|
|
6139
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
6167
|
-
var Command = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
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-
|
|
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__ */
|
|
6181
|
-
/* @__PURE__ */
|
|
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-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6208
|
+
var CommandGroup = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
|
|
6213
6209
|
CommandPrimitive.Group,
|
|
6214
6210
|
{
|
|
6215
6211
|
ref,
|
|
6216
6212
|
className: cn(
|
|
6217
|
-
"
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
6260
|
+
if (isLoading) return /* @__PURE__ */ jsx50(Skeleton, { className: "h-5 w-5 rounded" });
|
|
6277
6261
|
if (!keyType || keyType === "none") return;
|
|
6278
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6347
|
-
tabs.length > 1 && !pinned && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6359
|
+
/* @__PURE__ */ jsx51(IconCopyPlus, { size: 16 }),
|
|
6376
6360
|
"Duplicate Tab"
|
|
6377
6361
|
] }),
|
|
6378
|
-
/* @__PURE__ */
|
|
6362
|
+
/* @__PURE__ */ jsx51(ContextMenuSeparator, {}),
|
|
6379
6363
|
/* @__PURE__ */ jsxs34(ContextMenuItem, { onSelect: () => forceRemoveTab(id), className: "gap-2", children: [
|
|
6380
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6581
|
+
children: selectedTab && sortedTabs.map(([id]) => /* @__PURE__ */ jsx52(SortableTab, { id }, id))
|
|
6598
6582
|
}
|
|
6599
6583
|
)
|
|
6600
6584
|
}
|
|
6601
6585
|
),
|
|
6602
|
-
!isOverflow && /* @__PURE__ */
|
|
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__ */
|
|
6609
|
-
tabs.length > 1 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
6670
|
-
/* @__PURE__ */
|
|
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__ */
|
|
6675
|
-
/* @__PURE__ */
|
|
6676
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
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__ */
|
|
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
|