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