@workflow/web 5.0.0-beta.15 → 5.0.0-beta.17
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/build/client/assets/{highlighted-body-B3W2YXNL-BQ1pmB9V.js → highlighted-body-B3W2YXNL-QKf7Yrcl.js} +1 -1
- package/build/client/assets/{home-DmsdVk2U.js → home-C2tAadK2.js} +2 -2
- package/build/client/assets/{manifest-67209c1f.js → manifest-96e6bcc7.js} +1 -1
- package/build/client/assets/{mermaid-3ZIDBTTL-BMWEihLr.js → mermaid-3ZIDBTTL-DQJ4rkIZ.js} +933 -276
- package/build/client/assets/root-D1iC2mNY.css +1 -0
- package/build/client/assets/{root-BABNjrUh.js → root-QCHdCGTF.js} +1 -1
- package/build/client/assets/{run-detail-9xQOGhVk.js → run-detail-D4mcR51B.js} +201 -222
- package/build/client/assets/server-build-6KQbeuD8.css +1 -0
- package/build/client/assets/{workflow-graph-viewer-fgQ2XQ5R.js → workflow-graph-viewer-BEhdopGj.js} +4918 -4917
- package/build/server/assets/{app-DM9e_6xn.js → app-BEmI6bFe.js} +1 -1
- package/build/server/assets/{highlighted-body-B3W2YXNL-tYGHwGrY.js → highlighted-body-B3W2YXNL-B_a6Jc52.js} +2 -2
- package/build/server/assets/{index-8Fb8OEQ2.js → index-Bg5S_1qh.js} +3 -3
- package/build/server/assets/{mermaid-3ZIDBTTL-EN1JYLRP.js → mermaid-3ZIDBTTL-C7y9g953.js} +2 -2
- package/build/server/assets/{server-build-CZXlov2m.js → server-build-B3KD951q.js} +76683 -75841
- package/build/server/assets/{token-CDoC3gHn.js → token-B95VJmzW.js} +2 -2
- package/build/server/assets/{token-util-C02bLOPS.js → token-util-q0eyRDZK.js} +2 -2
- package/build/server/index.js +1 -1
- package/package.json +7 -7
- package/build/client/assets/root-Bqr5evzw.css +0 -1
- package/build/client/assets/server-build-Ik-p0gUh.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-g14N5vQl.js","assets/index-B6-SzLmT.js","assets/index-BXZSIDEp.js","assets/highlighted-body-B3W2YXNL-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/encryption-g14N5vQl.js","assets/index-B6-SzLmT.js","assets/index-BXZSIDEp.js","assets/highlighted-body-B3W2YXNL-QKf7Yrcl.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
@@ -2376,7 +2376,7 @@ var Arrow$2 = reactExports.forwardRef((props, forwardedRef) => {
|
|
|
2376
2376
|
);
|
|
2377
2377
|
});
|
|
2378
2378
|
Arrow$2.displayName = NAME$1;
|
|
2379
|
-
var Root$
|
|
2379
|
+
var Root$2 = Arrow$2;
|
|
2380
2380
|
function useSize(element2) {
|
|
2381
2381
|
const [size2, setSize] = reactExports.useState(void 0);
|
|
2382
2382
|
useLayoutEffect2(() => {
|
|
@@ -2623,7 +2623,7 @@ var PopperArrow = reactExports.forwardRef(function PopperArrow2(props, forwarded
|
|
|
2623
2623
|
visibility: contentContext.shouldHideArrow ? "hidden" : void 0
|
|
2624
2624
|
},
|
|
2625
2625
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2626
|
-
Root$
|
|
2626
|
+
Root$2,
|
|
2627
2627
|
{
|
|
2628
2628
|
...arrowProps,
|
|
2629
2629
|
ref: forwardedRef,
|
|
@@ -2908,7 +2908,7 @@ var VisuallyHidden = reactExports.forwardRef(
|
|
|
2908
2908
|
}
|
|
2909
2909
|
);
|
|
2910
2910
|
VisuallyHidden.displayName = NAME;
|
|
2911
|
-
var Root = VisuallyHidden;
|
|
2911
|
+
var Root$1 = VisuallyHidden;
|
|
2912
2912
|
var [createTooltipContext] = createContextScope("Tooltip", [
|
|
2913
2913
|
createPopperScope
|
|
2914
2914
|
]);
|
|
@@ -3240,7 +3240,7 @@ var TooltipContentImpl = reactExports.forwardRef(
|
|
|
3240
3240
|
},
|
|
3241
3241
|
children: [
|
|
3242
3242
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Slottable$1, { children: children2 }),
|
|
3243
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Root, { id: context.contentId, role: "tooltip", children: ariaLabel || children2 }) })
|
|
3243
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Root$1, { id: context.contentId, role: "tooltip", children: ariaLabel || children2 }) })
|
|
3244
3244
|
]
|
|
3245
3245
|
}
|
|
3246
3246
|
)
|
|
@@ -15311,6 +15311,7 @@ function _instanceof(cls, params = {}) {
|
|
|
15311
15311
|
function date(params) {
|
|
15312
15312
|
return /* @__PURE__ */ _coercedDate(ZodDate, params);
|
|
15313
15313
|
}
|
|
15314
|
+
const RESERVED_ATTRIBUTE_KEY_PREFIX = "$";
|
|
15314
15315
|
const AttributeChangeSchema = object({
|
|
15315
15316
|
key: string$2(),
|
|
15316
15317
|
value: union([string$2(), _null()])
|
|
@@ -15598,7 +15599,13 @@ const RunInputSchema = object({
|
|
|
15598
15599
|
specVersion: number$2(),
|
|
15599
15600
|
executionContext: record(string$2(), any()).optional(),
|
|
15600
15601
|
/** Initial plaintext run attributes, for resilient run creation. */
|
|
15601
|
-
attributes: record(string$2(), string$2()).optional()
|
|
15602
|
+
attributes: record(string$2(), string$2()).optional(),
|
|
15603
|
+
/**
|
|
15604
|
+
* Permits reserved `$`-prefixed keys in `attributes`, mirrored from the
|
|
15605
|
+
* `start()` option so resilient run creation validates the same way as
|
|
15606
|
+
* the original `run_created` attempt.
|
|
15607
|
+
*/
|
|
15608
|
+
allowReservedAttributes: literal(true).optional()
|
|
15602
15609
|
});
|
|
15603
15610
|
const WorkflowInvokePayloadSchema = object({
|
|
15604
15611
|
runId: string$2(),
|
|
@@ -17248,6 +17255,87 @@ const ToastContext = reactExports.createContext(defaultAdapter);
|
|
|
17248
17255
|
function useToast() {
|
|
17249
17256
|
return reactExports.useContext(ToastContext);
|
|
17250
17257
|
}
|
|
17258
|
+
const falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
17259
|
+
const cx = clsx;
|
|
17260
|
+
const cva = (base, config2) => (props) => {
|
|
17261
|
+
var _config_compoundVariants;
|
|
17262
|
+
if ((config2 === null || config2 === void 0 ? void 0 : config2.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
17263
|
+
const { variants, defaultVariants } = config2;
|
|
17264
|
+
const getVariantClassNames = Object.keys(variants).map((variant) => {
|
|
17265
|
+
const variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
17266
|
+
const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
17267
|
+
if (variantProp === null) return null;
|
|
17268
|
+
const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
17269
|
+
return variants[variant][variantKey];
|
|
17270
|
+
});
|
|
17271
|
+
const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
|
|
17272
|
+
let [key, value] = param;
|
|
17273
|
+
if (value === void 0) {
|
|
17274
|
+
return acc;
|
|
17275
|
+
}
|
|
17276
|
+
acc[key] = value;
|
|
17277
|
+
return acc;
|
|
17278
|
+
}, {});
|
|
17279
|
+
const getCompoundVariantClassNames = config2 === null || config2 === void 0 ? void 0 : (_config_compoundVariants = config2.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
|
|
17280
|
+
let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
|
|
17281
|
+
return Object.entries(compoundVariantOptions).every((param2) => {
|
|
17282
|
+
let [key, value] = param2;
|
|
17283
|
+
return Array.isArray(value) ? value.includes({
|
|
17284
|
+
...defaultVariants,
|
|
17285
|
+
...propsWithoutUndefined
|
|
17286
|
+
}[key]) : {
|
|
17287
|
+
...defaultVariants,
|
|
17288
|
+
...propsWithoutUndefined
|
|
17289
|
+
}[key] === value;
|
|
17290
|
+
}) ? [
|
|
17291
|
+
...acc,
|
|
17292
|
+
cvClass,
|
|
17293
|
+
cvClassName
|
|
17294
|
+
] : acc;
|
|
17295
|
+
}, []);
|
|
17296
|
+
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
17297
|
+
};
|
|
17298
|
+
const buttonVariants$1 = cva([
|
|
17299
|
+
"outline-none m-0 border-0 align-baseline no-underline group/trigger",
|
|
17300
|
+
"relative cursor-pointer select-none transform translate-z-0",
|
|
17301
|
+
"inline-flex max-w-full items-center justify-center gap-x-1 whitespace-nowrap rounded-md font-medium",
|
|
17302
|
+
"!text-gray-100",
|
|
17303
|
+
"bg-gray-1000",
|
|
17304
|
+
"transition-[border-color,background,color,transform,box-shadow] duration-150 ease-in-out",
|
|
17305
|
+
// Geist invert hover: literal fallbacks (no token dep, so it resolves in any
|
|
17306
|
+
// consuming app), darkened via ancestor theme class without a registered variant.
|
|
17307
|
+
"hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_22%))]",
|
|
17308
|
+
"[.dark-theme_&]:hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_80%))]",
|
|
17309
|
+
"[[data-theme=dark]_&]:hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_80%))]",
|
|
17310
|
+
// Geist focus ring as arbitrary properties (no bare `outline`/ambiguous
|
|
17311
|
+
// arbitrary-color utilities, which differ between Tailwind v3 and v4).
|
|
17312
|
+
"focus-visible:[outline:2px_solid_var(--ds-focus-color)] focus-visible:[outline-offset:2px]",
|
|
17313
|
+
// disabled styles
|
|
17314
|
+
"disabled:cursor-not-allowed aria-disabled:cursor-not-allowed",
|
|
17315
|
+
"disabled:bg-gray-100 disabled:!text-gray-700 disabled:hover:bg-gray-100",
|
|
17316
|
+
"aria-disabled:bg-gray-100 aria-disabled:text-gray-700 aria-disabled:hover:bg-gray-100"
|
|
17317
|
+
], {
|
|
17318
|
+
variants: {
|
|
17319
|
+
variant: {
|
|
17320
|
+
default: "",
|
|
17321
|
+
secondary: "border border-gray-alpha-400 [--themed-bg:_var(--ds-background-100)] [--themed-fg:_var(--ds-gray-1000)] [--themed-hover-bg:_var(--ds-gray-alpha-200)]",
|
|
17322
|
+
ghost: "[--themed-bg:_transparent] [--themed-fg:_var(--ds-gray-1000)] [--themed-hover-bg:_var(--ds-gray-alpha-100)]"
|
|
17323
|
+
},
|
|
17324
|
+
size: {
|
|
17325
|
+
default: "h-10 px-4 text-[14px]",
|
|
17326
|
+
sm: "h-8 px-3 text-[14px]",
|
|
17327
|
+
xs: "h-6 px-1.5 py-0.5 text-button-12 rounded-[4px]",
|
|
17328
|
+
icon: "h-8 w-8"
|
|
17329
|
+
}
|
|
17330
|
+
},
|
|
17331
|
+
defaultVariants: {
|
|
17332
|
+
variant: "default",
|
|
17333
|
+
size: "default"
|
|
17334
|
+
}
|
|
17335
|
+
});
|
|
17336
|
+
function Button$1({ className, variant, size: size2, type = "button", ...props }) {
|
|
17337
|
+
return jsxRuntimeExports.jsx("button", { type, className: cn$4(buttonVariants$1({ variant, size: size2, className })), ...props });
|
|
17338
|
+
}
|
|
17251
17339
|
var __create = Object.create;
|
|
17252
17340
|
var __defProp2 = Object.defineProperty;
|
|
17253
17341
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -18114,87 +18202,6 @@ const geistTheme = {
|
|
|
18114
18202
|
};
|
|
18115
18203
|
const inspectorThemeLight = geistTheme;
|
|
18116
18204
|
const inspectorThemeDark = geistTheme;
|
|
18117
|
-
const falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
18118
|
-
const cx = clsx;
|
|
18119
|
-
const cva = (base, config2) => (props) => {
|
|
18120
|
-
var _config_compoundVariants;
|
|
18121
|
-
if ((config2 === null || config2 === void 0 ? void 0 : config2.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
18122
|
-
const { variants, defaultVariants } = config2;
|
|
18123
|
-
const getVariantClassNames = Object.keys(variants).map((variant) => {
|
|
18124
|
-
const variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
18125
|
-
const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
18126
|
-
if (variantProp === null) return null;
|
|
18127
|
-
const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
18128
|
-
return variants[variant][variantKey];
|
|
18129
|
-
});
|
|
18130
|
-
const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
|
|
18131
|
-
let [key, value] = param;
|
|
18132
|
-
if (value === void 0) {
|
|
18133
|
-
return acc;
|
|
18134
|
-
}
|
|
18135
|
-
acc[key] = value;
|
|
18136
|
-
return acc;
|
|
18137
|
-
}, {});
|
|
18138
|
-
const getCompoundVariantClassNames = config2 === null || config2 === void 0 ? void 0 : (_config_compoundVariants = config2.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
|
|
18139
|
-
let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
|
|
18140
|
-
return Object.entries(compoundVariantOptions).every((param2) => {
|
|
18141
|
-
let [key, value] = param2;
|
|
18142
|
-
return Array.isArray(value) ? value.includes({
|
|
18143
|
-
...defaultVariants,
|
|
18144
|
-
...propsWithoutUndefined
|
|
18145
|
-
}[key]) : {
|
|
18146
|
-
...defaultVariants,
|
|
18147
|
-
...propsWithoutUndefined
|
|
18148
|
-
}[key] === value;
|
|
18149
|
-
}) ? [
|
|
18150
|
-
...acc,
|
|
18151
|
-
cvClass,
|
|
18152
|
-
cvClassName
|
|
18153
|
-
] : acc;
|
|
18154
|
-
}, []);
|
|
18155
|
-
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
18156
|
-
};
|
|
18157
|
-
const buttonVariants$1 = cva([
|
|
18158
|
-
"outline-none m-0 border-0 align-baseline no-underline group/trigger",
|
|
18159
|
-
"relative cursor-pointer select-none transform translate-z-0",
|
|
18160
|
-
"inline-flex max-w-full items-center justify-center gap-x-1 whitespace-nowrap rounded-md font-medium",
|
|
18161
|
-
"!text-gray-100",
|
|
18162
|
-
"bg-gray-1000",
|
|
18163
|
-
"transition-[border-color,background,color,transform,box-shadow] duration-150 ease-in-out",
|
|
18164
|
-
// Geist invert hover: literal fallbacks (no token dep, so it resolves in any
|
|
18165
|
-
// consuming app), darkened via ancestor theme class without a registered variant.
|
|
18166
|
-
"hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_22%))]",
|
|
18167
|
-
"[.dark-theme_&]:hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_80%))]",
|
|
18168
|
-
"[[data-theme=dark]_&]:hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_80%))]",
|
|
18169
|
-
// Geist focus ring as arbitrary properties (no bare `outline`/ambiguous
|
|
18170
|
-
// arbitrary-color utilities, which differ between Tailwind v3 and v4).
|
|
18171
|
-
"focus-visible:[outline:2px_solid_var(--ds-focus-color)] focus-visible:[outline-offset:2px]",
|
|
18172
|
-
// disabled styles
|
|
18173
|
-
"disabled:cursor-not-allowed aria-disabled:cursor-not-allowed",
|
|
18174
|
-
"disabled:bg-gray-100 disabled:!text-gray-700 disabled:hover:bg-gray-100",
|
|
18175
|
-
"aria-disabled:bg-gray-100 aria-disabled:text-gray-700 aria-disabled:hover:bg-gray-100"
|
|
18176
|
-
], {
|
|
18177
|
-
variants: {
|
|
18178
|
-
variant: {
|
|
18179
|
-
default: "",
|
|
18180
|
-
secondary: "border border-gray-alpha-400 [--themed-bg:_var(--ds-background-100)] [--themed-fg:_var(--ds-gray-1000)] [--themed-hover-bg:_var(--ds-gray-alpha-200)]",
|
|
18181
|
-
ghost: "[--themed-bg:_transparent] [--themed-fg:_var(--ds-gray-1000)] [--themed-hover-bg:_var(--ds-gray-alpha-100)]"
|
|
18182
|
-
},
|
|
18183
|
-
size: {
|
|
18184
|
-
default: "h-10 px-4 text-[14px]",
|
|
18185
|
-
sm: "h-8 px-3 text-[14px]",
|
|
18186
|
-
xs: "h-6 px-1.5 py-0.5 text-button-12 rounded-[4px]",
|
|
18187
|
-
icon: "h-8 w-8"
|
|
18188
|
-
}
|
|
18189
|
-
},
|
|
18190
|
-
defaultVariants: {
|
|
18191
|
-
variant: "default",
|
|
18192
|
-
size: "default"
|
|
18193
|
-
}
|
|
18194
|
-
});
|
|
18195
|
-
function Button$1({ className, variant, size: size2, type = "button", ...props }) {
|
|
18196
|
-
return jsxRuntimeExports.jsx("button", { type, className: cn$4(buttonVariants$1({ variant, size: size2, className })), ...props });
|
|
18197
|
-
}
|
|
18198
18205
|
const KEYFRAMES = `@keyframes wf-spinner-fade{0%{opacity:1}100%{opacity:.15}}`;
|
|
18199
18206
|
function Spinner({ size: size2 = 14, color: color5 }) {
|
|
18200
18207
|
const config2 = size2 <= 12 ? {
|
|
@@ -18547,6 +18554,735 @@ function isDeepEqual(a2, b2, seen2 = /* @__PURE__ */ new WeakMap()) {
|
|
|
18547
18554
|
}
|
|
18548
18555
|
return true;
|
|
18549
18556
|
}
|
|
18557
|
+
function setRef(ref, value) {
|
|
18558
|
+
if (typeof ref === "function") {
|
|
18559
|
+
return ref(value);
|
|
18560
|
+
} else if (ref !== null && ref !== void 0) {
|
|
18561
|
+
ref.current = value;
|
|
18562
|
+
}
|
|
18563
|
+
}
|
|
18564
|
+
function composeRefs(...refs) {
|
|
18565
|
+
return (node2) => {
|
|
18566
|
+
let hasCleanup = false;
|
|
18567
|
+
const cleanups = refs.map((ref) => {
|
|
18568
|
+
const cleanup = setRef(ref, node2);
|
|
18569
|
+
if (!hasCleanup && typeof cleanup == "function") {
|
|
18570
|
+
hasCleanup = true;
|
|
18571
|
+
}
|
|
18572
|
+
return cleanup;
|
|
18573
|
+
});
|
|
18574
|
+
if (hasCleanup) {
|
|
18575
|
+
return () => {
|
|
18576
|
+
for (let i = 0; i < cleanups.length; i++) {
|
|
18577
|
+
const cleanup = cleanups[i];
|
|
18578
|
+
if (typeof cleanup == "function") {
|
|
18579
|
+
cleanup();
|
|
18580
|
+
} else {
|
|
18581
|
+
setRef(refs[i], null);
|
|
18582
|
+
}
|
|
18583
|
+
}
|
|
18584
|
+
};
|
|
18585
|
+
}
|
|
18586
|
+
};
|
|
18587
|
+
}
|
|
18588
|
+
function useComposedRefs(...refs) {
|
|
18589
|
+
return reactExports.useCallback(composeRefs(...refs), refs);
|
|
18590
|
+
}
|
|
18591
|
+
var Slot = reactExports.forwardRef((props, forwardedRef) => {
|
|
18592
|
+
const { children: children2, ...slotProps } = props;
|
|
18593
|
+
const childrenArray = reactExports.Children.toArray(children2);
|
|
18594
|
+
const slottable = childrenArray.find(isSlottable);
|
|
18595
|
+
if (slottable) {
|
|
18596
|
+
const newElement = slottable.props.children;
|
|
18597
|
+
const newChildren = childrenArray.map((child) => {
|
|
18598
|
+
if (child === slottable) {
|
|
18599
|
+
if (reactExports.Children.count(newElement) > 1) return reactExports.Children.only(null);
|
|
18600
|
+
return reactExports.isValidElement(newElement) ? newElement.props.children : null;
|
|
18601
|
+
} else {
|
|
18602
|
+
return child;
|
|
18603
|
+
}
|
|
18604
|
+
});
|
|
18605
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: reactExports.isValidElement(newElement) ? reactExports.cloneElement(newElement, void 0, newChildren) : null });
|
|
18606
|
+
}
|
|
18607
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: children2 });
|
|
18608
|
+
});
|
|
18609
|
+
Slot.displayName = "Slot";
|
|
18610
|
+
var SlotClone = reactExports.forwardRef((props, forwardedRef) => {
|
|
18611
|
+
const { children: children2, ...slotProps } = props;
|
|
18612
|
+
if (reactExports.isValidElement(children2)) {
|
|
18613
|
+
const childrenRef = getElementRef(children2);
|
|
18614
|
+
return reactExports.cloneElement(children2, {
|
|
18615
|
+
...mergeProps(slotProps, children2.props),
|
|
18616
|
+
// @ts-ignore
|
|
18617
|
+
ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef
|
|
18618
|
+
});
|
|
18619
|
+
}
|
|
18620
|
+
return reactExports.Children.count(children2) > 1 ? reactExports.Children.only(null) : null;
|
|
18621
|
+
});
|
|
18622
|
+
SlotClone.displayName = "SlotClone";
|
|
18623
|
+
var Slottable = ({ children: children2 }) => {
|
|
18624
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: children2 });
|
|
18625
|
+
};
|
|
18626
|
+
function isSlottable(child) {
|
|
18627
|
+
return reactExports.isValidElement(child) && child.type === Slottable;
|
|
18628
|
+
}
|
|
18629
|
+
function mergeProps(slotProps, childProps) {
|
|
18630
|
+
const overrideProps = { ...childProps };
|
|
18631
|
+
for (const propName in childProps) {
|
|
18632
|
+
const slotPropValue = slotProps[propName];
|
|
18633
|
+
const childPropValue = childProps[propName];
|
|
18634
|
+
const isHandler = /^on[A-Z]/.test(propName);
|
|
18635
|
+
if (isHandler) {
|
|
18636
|
+
if (slotPropValue && childPropValue) {
|
|
18637
|
+
overrideProps[propName] = (...args) => {
|
|
18638
|
+
childPropValue(...args);
|
|
18639
|
+
slotPropValue(...args);
|
|
18640
|
+
};
|
|
18641
|
+
} else if (slotPropValue) {
|
|
18642
|
+
overrideProps[propName] = slotPropValue;
|
|
18643
|
+
}
|
|
18644
|
+
} else if (propName === "style") {
|
|
18645
|
+
overrideProps[propName] = { ...slotPropValue, ...childPropValue };
|
|
18646
|
+
} else if (propName === "className") {
|
|
18647
|
+
overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
|
|
18648
|
+
}
|
|
18649
|
+
}
|
|
18650
|
+
return { ...slotProps, ...overrideProps };
|
|
18651
|
+
}
|
|
18652
|
+
function getElementRef(element2) {
|
|
18653
|
+
var _a3, _b2;
|
|
18654
|
+
let getter = (_a3 = Object.getOwnPropertyDescriptor(element2.props, "ref")) == null ? void 0 : _a3.get;
|
|
18655
|
+
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
18656
|
+
if (mayWarn) {
|
|
18657
|
+
return element2.ref;
|
|
18658
|
+
}
|
|
18659
|
+
getter = (_b2 = Object.getOwnPropertyDescriptor(element2, "ref")) == null ? void 0 : _b2.get;
|
|
18660
|
+
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
18661
|
+
if (mayWarn) {
|
|
18662
|
+
return element2.props.ref;
|
|
18663
|
+
}
|
|
18664
|
+
return element2.props.ref || element2.ref;
|
|
18665
|
+
}
|
|
18666
|
+
var Root = Slot;
|
|
18667
|
+
var debounce_1;
|
|
18668
|
+
var hasRequiredDebounce;
|
|
18669
|
+
function requireDebounce() {
|
|
18670
|
+
if (hasRequiredDebounce) return debounce_1;
|
|
18671
|
+
hasRequiredDebounce = 1;
|
|
18672
|
+
function debounce(func, wait, immediate) {
|
|
18673
|
+
var timeout, args, context, timestamp, result;
|
|
18674
|
+
if (null == wait) wait = 100;
|
|
18675
|
+
function later() {
|
|
18676
|
+
var last = Date.now() - timestamp;
|
|
18677
|
+
if (last < wait && last >= 0) {
|
|
18678
|
+
timeout = setTimeout(later, wait - last);
|
|
18679
|
+
} else {
|
|
18680
|
+
timeout = null;
|
|
18681
|
+
if (!immediate) {
|
|
18682
|
+
result = func.apply(context, args);
|
|
18683
|
+
context = args = null;
|
|
18684
|
+
}
|
|
18685
|
+
}
|
|
18686
|
+
}
|
|
18687
|
+
var debounced = function() {
|
|
18688
|
+
context = this;
|
|
18689
|
+
args = arguments;
|
|
18690
|
+
timestamp = Date.now();
|
|
18691
|
+
var callNow = immediate && !timeout;
|
|
18692
|
+
if (!timeout) timeout = setTimeout(later, wait);
|
|
18693
|
+
if (callNow) {
|
|
18694
|
+
result = func.apply(context, args);
|
|
18695
|
+
context = args = null;
|
|
18696
|
+
}
|
|
18697
|
+
return result;
|
|
18698
|
+
};
|
|
18699
|
+
debounced.clear = function() {
|
|
18700
|
+
if (timeout) {
|
|
18701
|
+
clearTimeout(timeout);
|
|
18702
|
+
timeout = null;
|
|
18703
|
+
}
|
|
18704
|
+
};
|
|
18705
|
+
debounced.flush = function() {
|
|
18706
|
+
if (timeout) {
|
|
18707
|
+
result = func.apply(context, args);
|
|
18708
|
+
context = args = null;
|
|
18709
|
+
clearTimeout(timeout);
|
|
18710
|
+
timeout = null;
|
|
18711
|
+
}
|
|
18712
|
+
};
|
|
18713
|
+
return debounced;
|
|
18714
|
+
}
|
|
18715
|
+
debounce.debounce = debounce;
|
|
18716
|
+
debounce_1 = debounce;
|
|
18717
|
+
return debounce_1;
|
|
18718
|
+
}
|
|
18719
|
+
var debounceExports = requireDebounce();
|
|
18720
|
+
const createDebounce = /* @__PURE__ */ getDefaultExportFromCjs(debounceExports);
|
|
18721
|
+
function useMeasure(_temp) {
|
|
18722
|
+
let {
|
|
18723
|
+
debounce,
|
|
18724
|
+
scroll,
|
|
18725
|
+
polyfill,
|
|
18726
|
+
offsetSize
|
|
18727
|
+
} = {
|
|
18728
|
+
debounce: 0,
|
|
18729
|
+
scroll: false,
|
|
18730
|
+
offsetSize: false
|
|
18731
|
+
};
|
|
18732
|
+
const ResizeObserver2 = polyfill || (typeof window === "undefined" ? class ResizeObserver {
|
|
18733
|
+
} : window.ResizeObserver);
|
|
18734
|
+
if (!ResizeObserver2) {
|
|
18735
|
+
throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");
|
|
18736
|
+
}
|
|
18737
|
+
const [bounds, set] = reactExports.useState({
|
|
18738
|
+
left: 0,
|
|
18739
|
+
top: 0,
|
|
18740
|
+
width: 0,
|
|
18741
|
+
height: 0,
|
|
18742
|
+
bottom: 0,
|
|
18743
|
+
right: 0,
|
|
18744
|
+
x: 0,
|
|
18745
|
+
y: 0
|
|
18746
|
+
});
|
|
18747
|
+
const state = reactExports.useRef({
|
|
18748
|
+
element: null,
|
|
18749
|
+
scrollContainers: null,
|
|
18750
|
+
resizeObserver: null,
|
|
18751
|
+
lastBounds: bounds
|
|
18752
|
+
});
|
|
18753
|
+
const scrollDebounce = debounce ? typeof debounce === "number" ? debounce : debounce.scroll : null;
|
|
18754
|
+
const resizeDebounce = debounce ? typeof debounce === "number" ? debounce : debounce.resize : null;
|
|
18755
|
+
const mounted = reactExports.useRef(false);
|
|
18756
|
+
reactExports.useEffect(() => {
|
|
18757
|
+
mounted.current = true;
|
|
18758
|
+
return () => void (mounted.current = false);
|
|
18759
|
+
});
|
|
18760
|
+
const [forceRefresh, resizeChange, scrollChange] = reactExports.useMemo(() => {
|
|
18761
|
+
const callback = () => {
|
|
18762
|
+
if (!state.current.element) return;
|
|
18763
|
+
const {
|
|
18764
|
+
left,
|
|
18765
|
+
top,
|
|
18766
|
+
width,
|
|
18767
|
+
height,
|
|
18768
|
+
bottom,
|
|
18769
|
+
right,
|
|
18770
|
+
x: x2,
|
|
18771
|
+
y: y2
|
|
18772
|
+
} = state.current.element.getBoundingClientRect();
|
|
18773
|
+
const size2 = {
|
|
18774
|
+
left,
|
|
18775
|
+
top,
|
|
18776
|
+
width,
|
|
18777
|
+
height,
|
|
18778
|
+
bottom,
|
|
18779
|
+
right,
|
|
18780
|
+
x: x2,
|
|
18781
|
+
y: y2
|
|
18782
|
+
};
|
|
18783
|
+
if (state.current.element instanceof HTMLElement && offsetSize) {
|
|
18784
|
+
size2.height = state.current.element.offsetHeight;
|
|
18785
|
+
size2.width = state.current.element.offsetWidth;
|
|
18786
|
+
}
|
|
18787
|
+
Object.freeze(size2);
|
|
18788
|
+
if (mounted.current && !areBoundsEqual(state.current.lastBounds, size2)) set(state.current.lastBounds = size2);
|
|
18789
|
+
};
|
|
18790
|
+
return [callback, resizeDebounce ? createDebounce(callback, resizeDebounce) : callback, scrollDebounce ? createDebounce(callback, scrollDebounce) : callback];
|
|
18791
|
+
}, [set, offsetSize, scrollDebounce, resizeDebounce]);
|
|
18792
|
+
function removeListeners() {
|
|
18793
|
+
if (state.current.scrollContainers) {
|
|
18794
|
+
state.current.scrollContainers.forEach((element2) => element2.removeEventListener("scroll", scrollChange, true));
|
|
18795
|
+
state.current.scrollContainers = null;
|
|
18796
|
+
}
|
|
18797
|
+
if (state.current.resizeObserver) {
|
|
18798
|
+
state.current.resizeObserver.disconnect();
|
|
18799
|
+
state.current.resizeObserver = null;
|
|
18800
|
+
}
|
|
18801
|
+
}
|
|
18802
|
+
function addListeners() {
|
|
18803
|
+
if (!state.current.element) return;
|
|
18804
|
+
state.current.resizeObserver = new ResizeObserver2(scrollChange);
|
|
18805
|
+
state.current.resizeObserver.observe(state.current.element);
|
|
18806
|
+
if (scroll && state.current.scrollContainers) {
|
|
18807
|
+
state.current.scrollContainers.forEach((scrollContainer) => scrollContainer.addEventListener("scroll", scrollChange, {
|
|
18808
|
+
capture: true,
|
|
18809
|
+
passive: true
|
|
18810
|
+
}));
|
|
18811
|
+
}
|
|
18812
|
+
}
|
|
18813
|
+
const ref = (node2) => {
|
|
18814
|
+
if (!node2 || node2 === state.current.element) return;
|
|
18815
|
+
removeListeners();
|
|
18816
|
+
state.current.element = node2;
|
|
18817
|
+
state.current.scrollContainers = findScrollContainers(node2);
|
|
18818
|
+
addListeners();
|
|
18819
|
+
};
|
|
18820
|
+
useOnWindowScroll(scrollChange, Boolean(scroll));
|
|
18821
|
+
useOnWindowResize(resizeChange);
|
|
18822
|
+
reactExports.useEffect(() => {
|
|
18823
|
+
removeListeners();
|
|
18824
|
+
addListeners();
|
|
18825
|
+
}, [scroll, scrollChange, resizeChange]);
|
|
18826
|
+
reactExports.useEffect(() => removeListeners, []);
|
|
18827
|
+
return [ref, bounds, forceRefresh];
|
|
18828
|
+
}
|
|
18829
|
+
function useOnWindowResize(onWindowResize) {
|
|
18830
|
+
reactExports.useEffect(() => {
|
|
18831
|
+
const cb = onWindowResize;
|
|
18832
|
+
window.addEventListener("resize", cb);
|
|
18833
|
+
return () => void window.removeEventListener("resize", cb);
|
|
18834
|
+
}, [onWindowResize]);
|
|
18835
|
+
}
|
|
18836
|
+
function useOnWindowScroll(onScroll, enabled) {
|
|
18837
|
+
reactExports.useEffect(() => {
|
|
18838
|
+
if (enabled) {
|
|
18839
|
+
const cb = onScroll;
|
|
18840
|
+
window.addEventListener("scroll", cb, {
|
|
18841
|
+
capture: true,
|
|
18842
|
+
passive: true
|
|
18843
|
+
});
|
|
18844
|
+
return () => void window.removeEventListener("scroll", cb, true);
|
|
18845
|
+
}
|
|
18846
|
+
}, [onScroll, enabled]);
|
|
18847
|
+
}
|
|
18848
|
+
function findScrollContainers(element2) {
|
|
18849
|
+
const result = [];
|
|
18850
|
+
if (!element2 || element2 === document.body) return result;
|
|
18851
|
+
const {
|
|
18852
|
+
overflow,
|
|
18853
|
+
overflowX,
|
|
18854
|
+
overflowY
|
|
18855
|
+
} = window.getComputedStyle(element2);
|
|
18856
|
+
if ([overflow, overflowX, overflowY].some((prop) => prop === "auto" || prop === "scroll")) result.push(element2);
|
|
18857
|
+
return [...result, ...findScrollContainers(element2.parentElement)];
|
|
18858
|
+
}
|
|
18859
|
+
const keys$1 = ["x", "y", "top", "bottom", "left", "right", "width", "height"];
|
|
18860
|
+
const areBoundsEqual = (a2, b2) => keys$1.every((key) => a2[key] === b2[key]);
|
|
18861
|
+
const QUERY = "(prefers-reduced-motion: reduce)";
|
|
18862
|
+
const useReducedMotion = () => {
|
|
18863
|
+
const [reduced, setReduced] = reactExports.useState(() => {
|
|
18864
|
+
if (typeof window === "undefined" || !window.matchMedia)
|
|
18865
|
+
return false;
|
|
18866
|
+
return window.matchMedia(QUERY).matches;
|
|
18867
|
+
});
|
|
18868
|
+
reactExports.useEffect(() => {
|
|
18869
|
+
if (typeof window === "undefined" || !window.matchMedia)
|
|
18870
|
+
return;
|
|
18871
|
+
const media = window.matchMedia(QUERY);
|
|
18872
|
+
const onChange = () => setReduced(media.matches);
|
|
18873
|
+
media.addEventListener("change", onChange);
|
|
18874
|
+
onChange();
|
|
18875
|
+
return () => media.removeEventListener("change", onChange);
|
|
18876
|
+
}, []);
|
|
18877
|
+
return reduced;
|
|
18878
|
+
};
|
|
18879
|
+
const INACTIVE_TIMEOUT_MS = 250;
|
|
18880
|
+
const ENTER_DELAY_MS = 0;
|
|
18881
|
+
const OPEN_DELAY_MS = 150;
|
|
18882
|
+
const MAX_TRANSITION_DISTANCE_PX = 150;
|
|
18883
|
+
const MAX_OVERLAP_FOR_TRANSITION_PERCENT = 100;
|
|
18884
|
+
const PERSIST_TIMEOUT_MS = 1e3;
|
|
18885
|
+
const ContextCardContext = reactExports.createContext({
|
|
18886
|
+
rootOrigin: { x: 0, y: 0 },
|
|
18887
|
+
rootBounds: { width: 0, height: 0 },
|
|
18888
|
+
portalRef: null,
|
|
18889
|
+
activeId: null,
|
|
18890
|
+
setActiveId: () => void 0,
|
|
18891
|
+
hoveredId: null,
|
|
18892
|
+
setHoveredId: () => void 0,
|
|
18893
|
+
updateActiveContextCard: () => void 0,
|
|
18894
|
+
skipTransition: false,
|
|
18895
|
+
rootVisible: false,
|
|
18896
|
+
distanceFromLast: 0,
|
|
18897
|
+
lastOrigin: null,
|
|
18898
|
+
isProvided: false
|
|
18899
|
+
});
|
|
18900
|
+
ContextCardContext.displayName = "ContextCardContext";
|
|
18901
|
+
function useHasContextCardProvider() {
|
|
18902
|
+
return reactExports.useContext(ContextCardContext).isProvided;
|
|
18903
|
+
}
|
|
18904
|
+
function usePrevious(value) {
|
|
18905
|
+
const ref = reactExports.useRef(null);
|
|
18906
|
+
reactExports.useEffect(() => {
|
|
18907
|
+
ref.current = value;
|
|
18908
|
+
});
|
|
18909
|
+
return ref.current;
|
|
18910
|
+
}
|
|
18911
|
+
function isRefObject(value) {
|
|
18912
|
+
return value !== null && value !== void 0 && "current" in value;
|
|
18913
|
+
}
|
|
18914
|
+
function ContextCardProvider({ children: children2, portalTarget }) {
|
|
18915
|
+
const [isMounted, setIsMounted] = reactExports.useState(false);
|
|
18916
|
+
reactExports.useEffect(() => setIsMounted(true), []);
|
|
18917
|
+
const resolvedPortalTarget = isRefObject(portalTarget) ? portalTarget.current : portalTarget;
|
|
18918
|
+
const [ref, bounds] = useMeasure();
|
|
18919
|
+
const portalRef = reactExports.useRef(null);
|
|
18920
|
+
const [activeContextCard, setActiveContextCard] = reactExports.useState(null);
|
|
18921
|
+
const [visible, setVisible] = reactExports.useState(false);
|
|
18922
|
+
const [hoveredId, setHoveredId] = reactExports.useState(null);
|
|
18923
|
+
const activeId = reactExports.useRef(null);
|
|
18924
|
+
function setActiveId(id) {
|
|
18925
|
+
activeId.current = id;
|
|
18926
|
+
setVisible(id !== null);
|
|
18927
|
+
}
|
|
18928
|
+
const updateActiveContextCard = (update) => {
|
|
18929
|
+
if ((update == null ? void 0 : update.id) !== activeId.current && update !== null)
|
|
18930
|
+
return;
|
|
18931
|
+
setActiveContextCard(update);
|
|
18932
|
+
};
|
|
18933
|
+
const BORDER_WIDTH = 1;
|
|
18934
|
+
const activeBounds = reactExports.useMemo(() => {
|
|
18935
|
+
if (!activeContextCard)
|
|
18936
|
+
return {
|
|
18937
|
+
width: 0,
|
|
18938
|
+
height: 0,
|
|
18939
|
+
x: 0,
|
|
18940
|
+
y: 0,
|
|
18941
|
+
side: "top",
|
|
18942
|
+
arrowOffset: { x: 0, y: 0 }
|
|
18943
|
+
};
|
|
18944
|
+
return {
|
|
18945
|
+
width: activeContextCard.contentSize.width + BORDER_WIDTH * 2,
|
|
18946
|
+
height: activeContextCard.contentSize.height + BORDER_WIDTH * 2,
|
|
18947
|
+
x: activeContextCard.origin.x,
|
|
18948
|
+
y: activeContextCard.origin.y,
|
|
18949
|
+
side: activeContextCard.side,
|
|
18950
|
+
arrowOffset: activeContextCard.arrowOffset
|
|
18951
|
+
};
|
|
18952
|
+
}, [activeContextCard]);
|
|
18953
|
+
const lastBounds = usePrevious(activeBounds);
|
|
18954
|
+
const lastId = usePrevious(activeId.current);
|
|
18955
|
+
const percentOverlapFromLast = reactExports.useMemo(() => {
|
|
18956
|
+
if (!lastBounds)
|
|
18957
|
+
return 0;
|
|
18958
|
+
const overlapLeft = Math.max(activeBounds.x, lastBounds.x);
|
|
18959
|
+
const overlapRight = Math.min(activeBounds.x + activeBounds.width, lastBounds.x + lastBounds.width);
|
|
18960
|
+
const overlapTop = Math.max(activeBounds.y, lastBounds.y);
|
|
18961
|
+
const overlapBottom = Math.min(activeBounds.y + activeBounds.height, lastBounds.y + lastBounds.height);
|
|
18962
|
+
if (overlapLeft < overlapRight && overlapTop < overlapBottom) {
|
|
18963
|
+
const overlapArea = (overlapRight - overlapLeft) * (overlapBottom - overlapTop);
|
|
18964
|
+
const activeBoundsArea = activeBounds.width * activeBounds.height;
|
|
18965
|
+
if (activeBoundsArea === 0)
|
|
18966
|
+
return 0;
|
|
18967
|
+
return overlapArea / activeBoundsArea * 100;
|
|
18968
|
+
}
|
|
18969
|
+
return 0;
|
|
18970
|
+
}, [activeBounds, lastBounds]);
|
|
18971
|
+
const distanceFromLast = reactExports.useMemo(() => Math.sqrt((((lastBounds == null ? void 0 : lastBounds.x) ?? 0) - activeBounds.x) ** 2 + (((lastBounds == null ? void 0 : lastBounds.y) ?? 0) - activeBounds.y) ** 2), [activeBounds.x, activeBounds.y, lastBounds == null ? void 0 : lastBounds.x, lastBounds == null ? void 0 : lastBounds.y]);
|
|
18972
|
+
const lastOrigin = reactExports.useMemo(() => {
|
|
18973
|
+
if (!lastBounds)
|
|
18974
|
+
return null;
|
|
18975
|
+
return {
|
|
18976
|
+
x: lastBounds.x - activeBounds.x,
|
|
18977
|
+
y: lastBounds.y - activeBounds.y
|
|
18978
|
+
};
|
|
18979
|
+
}, [activeBounds, lastBounds]);
|
|
18980
|
+
const [isScrolling, setIsScrolling] = reactExports.useState(false);
|
|
18981
|
+
const skipTransition = reactExports.useMemo(() => distanceFromLast > MAX_TRANSITION_DISTANCE_PX || percentOverlapFromLast > MAX_OVERLAP_FOR_TRANSITION_PERCENT || lastId === null || isScrolling, [distanceFromLast, isScrolling, lastId, percentOverlapFromLast]);
|
|
18982
|
+
reactExports.useEffect(() => {
|
|
18983
|
+
let isScrollingTimeout = null;
|
|
18984
|
+
const onScroll = () => {
|
|
18985
|
+
if (isScrollingTimeout)
|
|
18986
|
+
window.clearTimeout(isScrollingTimeout);
|
|
18987
|
+
isScrollingTimeout = setTimeout(() => {
|
|
18988
|
+
setIsScrolling(false);
|
|
18989
|
+
}, 66);
|
|
18990
|
+
if (!isScrolling) {
|
|
18991
|
+
setIsScrolling(true);
|
|
18992
|
+
}
|
|
18993
|
+
};
|
|
18994
|
+
document.addEventListener("scroll", onScroll, true);
|
|
18995
|
+
return () => {
|
|
18996
|
+
document.removeEventListener("scroll", onScroll, true);
|
|
18997
|
+
};
|
|
18998
|
+
}, [isScrolling]);
|
|
18999
|
+
const contextValue = reactExports.useMemo(() => ({
|
|
19000
|
+
updateActiveContextCard,
|
|
19001
|
+
rootOrigin: { ...activeBounds },
|
|
19002
|
+
rootBounds: bounds,
|
|
19003
|
+
portalRef,
|
|
19004
|
+
setActiveId,
|
|
19005
|
+
activeId,
|
|
19006
|
+
setHoveredId,
|
|
19007
|
+
hoveredId,
|
|
19008
|
+
skipTransition,
|
|
19009
|
+
rootVisible: visible,
|
|
19010
|
+
distanceFromLast,
|
|
19011
|
+
lastOrigin,
|
|
19012
|
+
isProvided: true
|
|
19013
|
+
}), [
|
|
19014
|
+
activeBounds,
|
|
19015
|
+
bounds,
|
|
19016
|
+
hoveredId,
|
|
19017
|
+
skipTransition,
|
|
19018
|
+
visible,
|
|
19019
|
+
distanceFromLast,
|
|
19020
|
+
lastOrigin
|
|
19021
|
+
]);
|
|
19022
|
+
return jsxRuntimeExports.jsxs(ContextCardContext.Provider, { value: contextValue, children: [children2, isMounted ? reactDomExports.createPortal(jsxRuntimeExports.jsx("div", { className: "w-full h-full inset-0 fixed pointer-events-none z-[100000]", ref, children: jsxRuntimeExports.jsx("div", { className: "min-w-max transition-all duration-150 ease-[easing-function:cubic-bezier(0.3,_0.57,_0.07,_0.95)] will-change-[transform,width,height] motion-reduce:!transition-none", style: {
|
|
19023
|
+
opacity: visible ? 1 : 0
|
|
19024
|
+
}, children: jsxRuntimeExports.jsxs("div", { className: cn$4("absolute bg-background-100 bg-clip-padding rounded-[6px] overflow-visible pointer-events-none z-[1000000] shadow-[var(--ds-shadow-tooltip),0_0_0_1px_var(--ds-background-100)] w-fit [--context-card-tip-stroke:#DBDBDB] dark-theme:[--context-card-tip-stroke:#252525]", skipTransition ? "!transition-none" : "transition-[transform,width,height] duration-250 ease-[easing-function:cubic-bezier(0.29,0.31,0.05,0.96)] will-change-[transform,width,height] motion-reduce:!transition-none"), "data-skip-transition": skipTransition, style: {
|
|
19025
|
+
transform: `translate(${activeBounds.x}px,${activeBounds.y}px)`,
|
|
19026
|
+
width: activeBounds.width,
|
|
19027
|
+
height: activeBounds.height
|
|
19028
|
+
}, children: [jsxRuntimeExports.jsx("div", { className: cn$4("w-[14px] h-[7px] absolute grid place-content-center z-[999999999] origin-center", {
|
|
19029
|
+
"top-full -translate-x-1/2 rotate-0": activeBounds.side === "top",
|
|
19030
|
+
"right-full -translate-y-1/2 rotate-90 -mr-[3.5px]": activeBounds.side === "right",
|
|
19031
|
+
"bottom-full -translate-x-1/2 rotate-180": activeBounds.side === "bottom",
|
|
19032
|
+
"left-full -translate-y-1/2 rotate-[270deg] -ml-[3.5px]": activeBounds.side === "left"
|
|
19033
|
+
}, skipTransition ? "!transition-none" : "transition-[transform,width,height] duration-250 ease-[easing-function:cubic-bezier(0.29,0.31,0.05,0.96)] will-change-[transform,width,height] motion-reduce:!transition-none"), style: {
|
|
19034
|
+
...activeBounds.side === "top" || activeBounds.side === "bottom" ? {
|
|
19035
|
+
left: `calc(50% + ${activeBounds.arrowOffset.x}px)`
|
|
19036
|
+
} : {
|
|
19037
|
+
top: `calc(50% + ${activeBounds.arrowOffset.y}px)`
|
|
19038
|
+
}
|
|
19039
|
+
}, "data-skip-transition": skipTransition, "data-side": activeBounds.side, children: jsxRuntimeExports.jsxs("svg", { width: "14", height: "7", viewBox: "0 0 14 7", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [jsxRuntimeExports.jsx("g", { clipPath: "url(#context-card-tip-clip)", children: jsxRuntimeExports.jsx("path", { d: "M15 -0.5V0.5H12.9834L12.8184 0.508789C12.4377 0.550822 12.0853 0.738056 11.8359 1.03418L8.53027 4.95996C7.73114 5.90893 6.26886 5.90892 5.46973 4.95996L2.16406 1.03418C1.87905 0.695733 1.45907 0.5 1.0166 0.5H-1V-0.5H15Z", fill: "var(--ds-background-100)", style: {
|
|
19040
|
+
fill: "var(--ds-background-100)",
|
|
19041
|
+
fillOpacity: 1,
|
|
19042
|
+
stroke: "var(--context-card-tip-stroke)",
|
|
19043
|
+
strokeOpacity: 1
|
|
19044
|
+
} }) }), jsxRuntimeExports.jsx("defs", { children: jsxRuntimeExports.jsx("clipPath", { id: "context-card-tip-clip", children: jsxRuntimeExports.jsx("rect", { width: "14", height: "7", fill: "white", style: { fill: "white", fillOpacity: 1 } }) }) })] }) }), jsxRuntimeExports.jsx("div", { ref: portalRef })] }) }) }), resolvedPortalTarget ?? document.body) : null] });
|
|
19045
|
+
}
|
|
19046
|
+
function ContextCardTrigger({ content: content2, children: children2, side = "right", align = "center", sideOffset = 16, alignOffset = 0, ignoreCardPointerEvents = false, noPadding, asChild, className, hide: hide2, inactiveTimeoutMs = INACTIVE_TIMEOUT_MS }) {
|
|
19047
|
+
const triggerRef = reactExports.useRef(null);
|
|
19048
|
+
const contentRef = reactExports.useRef(null);
|
|
19049
|
+
const [contentMeasureRef, contentMeasureBounds] = useMeasure();
|
|
19050
|
+
const { portalRef, updateActiveContextCard, activeId, setActiveId, hoveredId, setHoveredId, skipTransition, rootVisible } = reactExports.useContext(ContextCardContext);
|
|
19051
|
+
const id = reactExports.useId();
|
|
19052
|
+
reactExports.useEffect(() => {
|
|
19053
|
+
return () => {
|
|
19054
|
+
if (activeId.current === id) {
|
|
19055
|
+
setActiveId(null);
|
|
19056
|
+
}
|
|
19057
|
+
};
|
|
19058
|
+
}, []);
|
|
19059
|
+
const reduceMotion = useReducedMotion();
|
|
19060
|
+
const [localHover, setLocalHover] = reactExports.useState(false);
|
|
19061
|
+
const [persisting, setPersisting] = reactExports.useState(false);
|
|
19062
|
+
const [visible, setVisible] = reactExports.useState(false);
|
|
19063
|
+
const activeTimeout = reactExports.useRef(null);
|
|
19064
|
+
const persistingTimeout = reactExports.useRef(null);
|
|
19065
|
+
const openTimeout = reactExports.useRef(null);
|
|
19066
|
+
reactExports.useEffect(() => {
|
|
19067
|
+
if (localHover && contentMeasureBounds.width > 0 && contentMeasureBounds.height > 0) {
|
|
19068
|
+
if (openTimeout.current)
|
|
19069
|
+
clearTimeout(openTimeout.current);
|
|
19070
|
+
openTimeout.current = setTimeout(() => {
|
|
19071
|
+
setActiveId(id);
|
|
19072
|
+
updateBounds();
|
|
19073
|
+
}, rootVisible ? 0 : OPEN_DELAY_MS);
|
|
19074
|
+
}
|
|
19075
|
+
return () => {
|
|
19076
|
+
if (openTimeout.current)
|
|
19077
|
+
clearTimeout(openTimeout.current);
|
|
19078
|
+
};
|
|
19079
|
+
}, [localHover, contentMeasureBounds]);
|
|
19080
|
+
const enterTimeout = reactExports.useRef(null);
|
|
19081
|
+
reactExports.useEffect(() => {
|
|
19082
|
+
if (enterTimeout.current)
|
|
19083
|
+
clearTimeout(enterTimeout.current);
|
|
19084
|
+
if (hoveredId !== id) {
|
|
19085
|
+
setVisible(false);
|
|
19086
|
+
} else {
|
|
19087
|
+
enterTimeout.current = setTimeout(() => {
|
|
19088
|
+
setVisible(true);
|
|
19089
|
+
}, reduceMotion || skipTransition ? 0 : ENTER_DELAY_MS);
|
|
19090
|
+
}
|
|
19091
|
+
}, [hoveredId, id, reduceMotion, skipTransition]);
|
|
19092
|
+
function updateBounds() {
|
|
19093
|
+
if (!contentRef.current)
|
|
19094
|
+
return;
|
|
19095
|
+
const bounds = computeBounds();
|
|
19096
|
+
updateActiveContextCard({ id, ...bounds });
|
|
19097
|
+
}
|
|
19098
|
+
function computeBounds(sideOverride) {
|
|
19099
|
+
if (!triggerRef.current)
|
|
19100
|
+
throw new Error("Trigger not found");
|
|
19101
|
+
if (!contentRef.current)
|
|
19102
|
+
throw new Error("Content not found");
|
|
19103
|
+
const appliedSide = sideOverride ?? side;
|
|
19104
|
+
const triggerRect = triggerRef.current.getBoundingClientRect();
|
|
19105
|
+
const contentRect = contentRef.current.getBoundingClientRect();
|
|
19106
|
+
contentRef.current.style.width = "max-content";
|
|
19107
|
+
contentRef.current.style.position = "absolute";
|
|
19108
|
+
const contentSize = {
|
|
19109
|
+
width: Math.max(contentRect.width, contentRef.current.offsetWidth),
|
|
19110
|
+
height: contentRect.height
|
|
19111
|
+
};
|
|
19112
|
+
let origin;
|
|
19113
|
+
const arrowWidth = 14;
|
|
19114
|
+
const halfArrowWidth = arrowWidth / 2;
|
|
19115
|
+
const halfTriggerWidth = triggerRect.width / 2;
|
|
19116
|
+
const halfTriggerHeight = triggerRect.height / 2;
|
|
19117
|
+
const halfContentWidth = contentSize.width / 2;
|
|
19118
|
+
const halfContentHeight = contentSize.height / 2;
|
|
19119
|
+
const top = triggerRect.top;
|
|
19120
|
+
const left = triggerRect.left;
|
|
19121
|
+
let alignX = left + halfTriggerWidth - halfContentWidth + alignOffset;
|
|
19122
|
+
if (align === "start")
|
|
19123
|
+
alignX = left + alignOffset;
|
|
19124
|
+
if (align === "end")
|
|
19125
|
+
alignX = left + triggerRect.width - contentRect.width + alignOffset;
|
|
19126
|
+
let alignY = top + halfTriggerHeight - halfContentHeight + alignOffset;
|
|
19127
|
+
if (align === "start")
|
|
19128
|
+
alignY = top + alignOffset;
|
|
19129
|
+
if (align === "end")
|
|
19130
|
+
alignY = top + triggerRect.height - contentRect.height + alignOffset;
|
|
19131
|
+
switch (appliedSide) {
|
|
19132
|
+
case "top":
|
|
19133
|
+
origin = {
|
|
19134
|
+
x: alignX,
|
|
19135
|
+
y: top - contentRect.height - sideOffset
|
|
19136
|
+
};
|
|
19137
|
+
break;
|
|
19138
|
+
case "right":
|
|
19139
|
+
origin = {
|
|
19140
|
+
x: left + triggerRect.width + sideOffset,
|
|
19141
|
+
y: alignY
|
|
19142
|
+
};
|
|
19143
|
+
break;
|
|
19144
|
+
case "bottom":
|
|
19145
|
+
origin = {
|
|
19146
|
+
x: alignX,
|
|
19147
|
+
y: top + triggerRect.height + sideOffset
|
|
19148
|
+
};
|
|
19149
|
+
break;
|
|
19150
|
+
case "left":
|
|
19151
|
+
origin = {
|
|
19152
|
+
x: left - contentRect.width - sideOffset,
|
|
19153
|
+
y: alignY
|
|
19154
|
+
};
|
|
19155
|
+
break;
|
|
19156
|
+
default: {
|
|
19157
|
+
const _exhaustive = appliedSide;
|
|
19158
|
+
throw new Error(`Unknown side: ${String(_exhaustive)}`);
|
|
19159
|
+
}
|
|
19160
|
+
}
|
|
19161
|
+
const viewportWidth = document.documentElement.clientWidth;
|
|
19162
|
+
const viewportHeight = document.documentElement.clientHeight;
|
|
19163
|
+
const isOffscreenLeft = origin.x < 0;
|
|
19164
|
+
const isOffscreenRight = origin.x + contentRect.width > viewportWidth;
|
|
19165
|
+
const isOffscreenTop = origin.y < 0;
|
|
19166
|
+
const isOffscreenBottom = origin.y + contentRect.height > viewportHeight;
|
|
19167
|
+
if (!sideOverride) {
|
|
19168
|
+
const spaceAbove = top;
|
|
19169
|
+
const spaceBelow = viewportHeight - (top + triggerRect.height);
|
|
19170
|
+
const spaceLeft = left;
|
|
19171
|
+
const spaceRight = viewportWidth - (left + triggerRect.width);
|
|
19172
|
+
if (side === "top" && isOffscreenTop && spaceBelow > spaceAbove) {
|
|
19173
|
+
return computeBounds("bottom");
|
|
19174
|
+
}
|
|
19175
|
+
if (side === "bottom" && isOffscreenBottom && spaceAbove > spaceBelow) {
|
|
19176
|
+
return computeBounds("top");
|
|
19177
|
+
}
|
|
19178
|
+
if (side === "right" && isOffscreenRight && spaceLeft > spaceRight) {
|
|
19179
|
+
return computeBounds("left");
|
|
19180
|
+
}
|
|
19181
|
+
if (side === "left" && isOffscreenLeft && spaceRight > spaceLeft) {
|
|
19182
|
+
return computeBounds("right");
|
|
19183
|
+
}
|
|
19184
|
+
if ((side === "top" || side === "bottom") && isOffscreenLeft && spaceRight > contentRect.width) {
|
|
19185
|
+
return computeBounds("right");
|
|
19186
|
+
}
|
|
19187
|
+
if ((side === "top" || side === "bottom") && isOffscreenRight && spaceLeft > contentRect.width) {
|
|
19188
|
+
return computeBounds("left");
|
|
19189
|
+
}
|
|
19190
|
+
if ((side === "left" || side === "right") && isOffscreenTop && spaceBelow > contentRect.height) {
|
|
19191
|
+
return computeBounds("bottom");
|
|
19192
|
+
}
|
|
19193
|
+
if ((side === "left" || side === "right") && isOffscreenBottom && spaceAbove > contentRect.height) {
|
|
19194
|
+
return computeBounds("top");
|
|
19195
|
+
}
|
|
19196
|
+
}
|
|
19197
|
+
const viewportPadding = 8;
|
|
19198
|
+
if (appliedSide === "left" || appliedSide === "right") {
|
|
19199
|
+
origin.y = Math.max(viewportPadding, Math.min(origin.y, viewportHeight - contentSize.height - viewportPadding));
|
|
19200
|
+
} else {
|
|
19201
|
+
origin.x = Math.max(viewportPadding, Math.min(origin.x, viewportWidth - contentSize.width - viewportPadding));
|
|
19202
|
+
}
|
|
19203
|
+
origin.y = Math.max(viewportPadding, Math.min(origin.y, viewportHeight - contentSize.height - viewportPadding));
|
|
19204
|
+
const triggerCenterX = left + halfTriggerWidth;
|
|
19205
|
+
const triggerCenterY = top + halfTriggerHeight;
|
|
19206
|
+
const cardCenterX = origin.x + contentSize.width / 2;
|
|
19207
|
+
const cardCenterY = origin.y + contentSize.height / 2;
|
|
19208
|
+
let arrowOffsetX = triggerCenterX - cardCenterX;
|
|
19209
|
+
let arrowOffsetY = triggerCenterY - cardCenterY;
|
|
19210
|
+
const maxArrowOffsetX = halfContentWidth - halfArrowWidth;
|
|
19211
|
+
const maxArrowOffsetY = halfContentHeight - halfArrowWidth;
|
|
19212
|
+
if (appliedSide === "top" || appliedSide === "bottom") {
|
|
19213
|
+
arrowOffsetX = Math.max(-maxArrowOffsetX, Math.min(arrowOffsetX, maxArrowOffsetX));
|
|
19214
|
+
}
|
|
19215
|
+
if (appliedSide === "left" || appliedSide === "right") {
|
|
19216
|
+
arrowOffsetY = Math.max(-maxArrowOffsetY, Math.min(arrowOffsetY, maxArrowOffsetY));
|
|
19217
|
+
}
|
|
19218
|
+
const arrowOffset = {
|
|
19219
|
+
x: arrowOffsetX,
|
|
19220
|
+
y: arrowOffsetY
|
|
19221
|
+
};
|
|
19222
|
+
return { origin, contentSize, side: appliedSide, arrowOffset };
|
|
19223
|
+
}
|
|
19224
|
+
reactExports.useEffect(() => {
|
|
19225
|
+
document.addEventListener("scroll", updateBounds, true);
|
|
19226
|
+
window.addEventListener("resize", updateBounds);
|
|
19227
|
+
return () => {
|
|
19228
|
+
document.removeEventListener("scroll", updateBounds, true);
|
|
19229
|
+
window.removeEventListener("resize", updateBounds);
|
|
19230
|
+
};
|
|
19231
|
+
}, []);
|
|
19232
|
+
function resetDestructiveTimeouts() {
|
|
19233
|
+
if (activeTimeout.current)
|
|
19234
|
+
clearTimeout(activeTimeout.current);
|
|
19235
|
+
if (persistingTimeout.current)
|
|
19236
|
+
clearTimeout(persistingTimeout.current);
|
|
19237
|
+
if (openTimeout.current)
|
|
19238
|
+
clearTimeout(openTimeout.current);
|
|
19239
|
+
}
|
|
19240
|
+
function attemptDeactivate() {
|
|
19241
|
+
if (activeTimeout.current)
|
|
19242
|
+
clearTimeout(activeTimeout.current);
|
|
19243
|
+
activeTimeout.current = setTimeout(() => {
|
|
19244
|
+
if (activeId.current !== id)
|
|
19245
|
+
return;
|
|
19246
|
+
setActiveId(null);
|
|
19247
|
+
}, inactiveTimeoutMs);
|
|
19248
|
+
}
|
|
19249
|
+
function attemptPersist() {
|
|
19250
|
+
setPersisting(true);
|
|
19251
|
+
if (persistingTimeout.current)
|
|
19252
|
+
clearTimeout(persistingTimeout.current);
|
|
19253
|
+
persistingTimeout.current = setTimeout(() => {
|
|
19254
|
+
setPersisting(false);
|
|
19255
|
+
}, PERSIST_TIMEOUT_MS);
|
|
19256
|
+
}
|
|
19257
|
+
function onMouseEnter() {
|
|
19258
|
+
resetDestructiveTimeouts();
|
|
19259
|
+
setHoveredId(id);
|
|
19260
|
+
setLocalHover(true);
|
|
19261
|
+
}
|
|
19262
|
+
function onMouseLeave() {
|
|
19263
|
+
setLocalHover(false);
|
|
19264
|
+
attemptDeactivate();
|
|
19265
|
+
attemptPersist();
|
|
19266
|
+
}
|
|
19267
|
+
reactExports.useEffect(() => {
|
|
19268
|
+
if (hide2) {
|
|
19269
|
+
setLocalHover(false);
|
|
19270
|
+
setActiveId(null);
|
|
19271
|
+
}
|
|
19272
|
+
}, [hide2, setActiveId]);
|
|
19273
|
+
function handleClick(e) {
|
|
19274
|
+
if (e.target instanceof HTMLElement && e.target.closest("a[href]")) {
|
|
19275
|
+
onMouseLeave();
|
|
19276
|
+
}
|
|
19277
|
+
}
|
|
19278
|
+
const Comp = asChild ? Root : "div";
|
|
19279
|
+
return jsxRuntimeExports.jsxs(Comp, { className: cn$4("inline-flex cursor-pointer flex-[0_1_auto] overflow-hidden", className), onMouseEnter, onMouseLeave, onClick: handleClick, ref: triggerRef, children: [jsxRuntimeExports.jsx(Slottable, { children: children2 }), (portalRef == null ? void 0 : portalRef.current) && (localHover || persisting) ? reactDomExports.createPortal(jsxRuntimeExports.jsx("div", { className: cn$4("absolute top-0 p-3 left-0 max-w-max transition-[transform,width,height] duration-250 ease-[easing-function:cubic-bezier(0.29,0.31,0.05,0.96)] will-change-[transform,width,height] motion-reduce:!transition-none", skipTransition && "!transition-none"), ref: contentRef, style: {
|
|
19280
|
+
...noPadding ? { padding: 0 } : {},
|
|
19281
|
+
pointerEvents: rootVisible && visible && !ignoreCardPointerEvents ? "all" : "none"
|
|
19282
|
+
}, children: jsxRuntimeExports.jsx("div", { className: cn$4("min-w-max transition-all duration-150 ease-[easing-function:cubic-bezier(0.3,_0.57,_0.07,_0.95)] will-change-[transform,width,height] motion-reduce:!transition-none", skipTransition ? "!transition-none" : "transition-[transform,width,height] duration-250 ease-[easing-function:cubic-bezier(0.29,0.31,0.05,0.96)] will-change-[transform,width,height] motion-reduce:!transition-none"), ref: contentMeasureRef, style: {
|
|
19283
|
+
opacity: Number(visible)
|
|
19284
|
+
}, children: content2 }) }, id), portalRef.current) : null] });
|
|
19285
|
+
}
|
|
18550
19286
|
function Skeleton$1({ className, style: style2, ...props }) {
|
|
18551
19287
|
return jsxRuntimeExports.jsx("div", { ...props, className: cn$4("rounded-md", className), style: { backgroundColor: "var(--ds-gray-200)", ...style2 } });
|
|
18552
19288
|
}
|
|
@@ -43312,7 +44048,7 @@ var tn = f("block", "before:content-[counter(line)]", "before:inline-block", "be
|
|
|
43312
44048
|
var et = ({ className: e, language: t, style: o, isIncomplete: n, ...s2 }) => jsxRuntimeExports.jsx("div", { className: f("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2", e), "data-incomplete": n || void 0, "data-language": t, "data-streamdown": "code-block", style: { contentVisibility: "auto", containIntrinsicSize: "auto 200px", ...o }, ...s2 });
|
|
43313
44049
|
var Se = reactExports.createContext({ code: "" }), de = () => reactExports.useContext(Se);
|
|
43314
44050
|
var ot = ({ language: e }) => jsxRuntimeExports.jsx("div", { className: "flex h-8 items-center text-muted-foreground text-xs", "data-language": e, "data-streamdown": "code-block-header", children: jsxRuntimeExports.jsx("span", { className: "ml-1 font-mono lowercase", children: e }) });
|
|
43315
|
-
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-
|
|
44051
|
+
var cn$1 = /\n+$/, dn = reactExports.lazy(() => __vitePreload(() => import("./highlighted-body-B3W2YXNL-QKf7Yrcl.js"), true ? __vite__mapDeps([3,2]) : void 0).then((e) => ({ default: e.HighlightedCodeBlockBody }))), rt = ({ code: e, language: t, className: o, children: n, isIncomplete: s2 = false, ...r2 }) => {
|
|
43316
44052
|
let i = reactExports.useMemo(() => e.replace(cn$1, ""), [e]), c = reactExports.useMemo(() => ({ bg: "transparent", fg: "inherit", tokens: i.split(`
|
|
43317
44053
|
`).map((a2) => [{ content: a2, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [i]);
|
|
43318
44054
|
return jsxRuntimeExports.jsx(Se.Provider, { value: { code: e }, children: jsxRuntimeExports.jsxs(et, { isIncomplete: s2, language: t, children: [jsxRuntimeExports.jsx(ot, { language: t }), n ? jsxRuntimeExports.jsx("div", { className: "pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end", children: jsxRuntimeExports.jsx("div", { className: "pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur", "data-streamdown": "code-block-actions", children: n }) }) : null, jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: jsxRuntimeExports.jsx(Qe, { className: o, language: t, result: c, ...r2 }), children: jsxRuntimeExports.jsx(dn, { className: o, code: i, language: t, raw: c, ...r2 }) })] }) });
|
|
@@ -45042,7 +45778,8 @@ const BOUNDARY_LABELS = {
|
|
|
45042
45778
|
run_started: "Started",
|
|
45043
45779
|
run_completed: "Completed",
|
|
45044
45780
|
run_failed: "Run failed",
|
|
45045
|
-
step_completed: "Completed"
|
|
45781
|
+
step_completed: "Completed",
|
|
45782
|
+
attr_set: "Attributes set"
|
|
45046
45783
|
};
|
|
45047
45784
|
const SpanEventComponent = reactExports.memo(function SpanEventComponent2({ event, node: node2, root: root2, scale, customSpanEventClassNameFunc, asBoundary = false }) {
|
|
45048
45785
|
const ref = reactExports.useRef(null);
|
|
@@ -45378,6 +46115,11 @@ const iconButtonVariants = cva([
|
|
|
45378
46115
|
});
|
|
45379
46116
|
const IconButton = reactExports.forwardRef(({ className, variant, size: size2, type = "button", ...props }, ref) => jsxRuntimeExports.jsx("button", { ref, type, className: cn$4(iconButtonVariants({ variant, size: size2, className })), ...props }));
|
|
45380
46117
|
IconButton.displayName = "IconButton";
|
|
46118
|
+
const TooltipProvider = Provider;
|
|
46119
|
+
const Tooltip$1 = Root3;
|
|
46120
|
+
const TooltipTrigger$1 = Trigger;
|
|
46121
|
+
const TooltipContent$1 = reactExports.forwardRef(({ className, sideOffset = 8, showArrow = true, children: children2, ...props }, ref) => jsxRuntimeExports.jsx(Portal, { children: jsxRuntimeExports.jsxs(Content2, { ref, sideOffset, className: cn$4("z-[99999] flex items-center gap-1 rounded-[10px] bg-gray-1000 px-2 py-1.5 !text-label-13 text-background-100 shadow-md select-none", className), ...props, children: [children2, showArrow ? jsxRuntimeExports.jsx(Arrow2, { width: 11, height: 5, className: "fill-gray-1000" }) : null] }) }));
|
|
46122
|
+
TooltipContent$1.displayName = Content2.displayName;
|
|
45381
46123
|
const ATTR_FILTER_REGEX = /(?:^|\s)(?<pair>(?<key>[\w.]+):(?<value>\S*))/g;
|
|
45382
46124
|
function parseSpanSearchQuery(rawQuery) {
|
|
45383
46125
|
var _a3, _b2, _c;
|
|
@@ -46002,6 +46744,30 @@ function SegmentBar({ segments }) {
|
|
|
46002
46744
|
}, children: [ACTIVE_SEGMENT_STATUSES.has(seg.status) ? jsxRuntimeExports.jsx(RunningStripes, {}) : null, showLabel ? jsxRuntimeExports.jsx(DurationLabel, { label }) : null] }, i);
|
|
46003
46745
|
}) });
|
|
46004
46746
|
}
|
|
46747
|
+
function formatMarkerTime(ms) {
|
|
46748
|
+
const date2 = new Date(ms);
|
|
46749
|
+
return date2.toLocaleTimeString("en-US", {
|
|
46750
|
+
hour: "2-digit",
|
|
46751
|
+
minute: "2-digit",
|
|
46752
|
+
second: "2-digit",
|
|
46753
|
+
hour12: false
|
|
46754
|
+
}) + "." + date2.getMilliseconds().toString().padStart(3, "0");
|
|
46755
|
+
}
|
|
46756
|
+
function AttrSetMarkers({ span, viewStart, viewDuration }) {
|
|
46757
|
+
const markers2 = reactExports.useMemo(() => span.events.filter((e) => e.name === "attr_set"), [span.events]);
|
|
46758
|
+
if (markers2.length === 0 || viewDuration <= 0)
|
|
46759
|
+
return null;
|
|
46760
|
+
return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: markers2.map((event, index2) => {
|
|
46761
|
+
const timeMs = getHighResInMs(event.timestamp);
|
|
46762
|
+
const frac = (timeMs - viewStart) / viewDuration;
|
|
46763
|
+
if (frac < 0 || frac > 1)
|
|
46764
|
+
return null;
|
|
46765
|
+
return jsxRuntimeExports.jsxs(Tooltip$1, { children: [jsxRuntimeExports.jsx(TooltipTrigger$1, { asChild: true, children: jsxRuntimeExports.jsx("div", { "aria-label": "Attributes set", className: "absolute top-1/2 z-10 flex h-4 w-4 -translate-x-1/2 -translate-y-1/2 cursor-pointer items-center justify-center", style: { left: `${frac * 100}%` }, children: jsxRuntimeExports.jsx("div", { className: "h-2 w-2 rotate-45 rounded-[1px] border", style: {
|
|
46766
|
+
backgroundColor: "var(--ds-teal-400)",
|
|
46767
|
+
borderColor: "var(--ds-teal-900)"
|
|
46768
|
+
} }) }) }), jsxRuntimeExports.jsxs(TooltipContent$1, { children: ["Attributes set · ", formatMarkerTime(timeMs)] })] }, `attr-set-${index2}`);
|
|
46769
|
+
}) });
|
|
46770
|
+
}
|
|
46005
46771
|
const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, viewDuration, containerWidth, isSelected, isDimmed, onSelect }) {
|
|
46006
46772
|
var _a3;
|
|
46007
46773
|
const startMs = getHighResInMs(span.startTime);
|
|
@@ -46020,7 +46786,7 @@ const TimelineBar = reactExports.memo(function TimelineBar2({ span, viewStart, v
|
|
|
46020
46786
|
const handleClick = reactExports.useCallback(() => {
|
|
46021
46787
|
onSelect(span.spanId);
|
|
46022
46788
|
}, [onSelect, span.spanId]);
|
|
46023
|
-
return jsxRuntimeExports.jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn$4("group/timeline-row h-10 relative flex items-center hover:bg-gray-100 aria-selected:bg-gray-100 aria-selected:hover:bg-gray-200 transition-opacity", isDimmed && "opacity-35"), onClick: handleClick, children: jsxRuntimeExports.
|
|
46789
|
+
return jsxRuntimeExports.jsx("div", { role: "treeitem", "aria-selected": isSelected, "aria-expanded": isSelected, "aria-level": 1, className: cn$4("group/timeline-row h-10 relative flex items-center hover:bg-gray-100 aria-selected:bg-gray-100 aria-selected:hover:bg-gray-200 transition-opacity", isDimmed && "opacity-35"), onClick: handleClick, children: jsxRuntimeExports.jsxs("div", { className: "absolute inset-y-0", style: TIMELINE_INSET_STYLE, children: [jsxRuntimeExports.jsx("div", { className: "absolute top-1/2 h-6 -translate-y-1/2 rounded-[0.25rem]", style: getBarPositionStyle(geometry), children: geometry.mode.kind === "arrow" ? jsxRuntimeExports.jsx(BoundaryArrow, { direction: geometry.mode.direction }) : geometry.mode.kind === "tiny" ? jsxRuntimeExports.jsx("div", { className: "h-6 rounded-[0.25rem] border", style: { background: fallbackBg, borderColor: fallbackBorder } }) : segments.length > 0 ? jsxRuntimeExports.jsx(SegmentBar, { segments }) : jsxRuntimeExports.jsx(PlainBar, { bg: fallbackBg, border: fallbackBorder, label: showTotalLabel ? totalLabel : null }) }), jsxRuntimeExports.jsx(AttrSetMarkers, { span, viewStart, viewDuration })] }) });
|
|
46024
46790
|
});
|
|
46025
46791
|
const DELTA_CAP_HEIGHT_PX = 8;
|
|
46026
46792
|
const DELTA_ROW_OFFSET_PX = 8;
|
|
@@ -46058,11 +46824,6 @@ function Timeline({ spans, viewStart, viewEnd, markers: markers2, selectedId, se
|
|
|
46058
46824
|
Math.abs(marker2.value) > 1e-6 ? jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-300", style: { left: `${marker2.position * 100}%` } }, String(marker2.value)) : null
|
|
46059
46825
|
)) }), hoverFraction != null && jsxRuntimeExports.jsx("div", { className: "absolute inset-y-0 pointer-events-none z-10", style: TIMELINE_INSET_STYLE, children: jsxRuntimeExports.jsx("div", { className: "absolute top-0 bottom-0 w-px bg-gray-alpha-500", style: { left: `${hoverFraction * 100}%` } }) }), jsxRuntimeExports.jsx("div", { style: { transform: `translateY(${start * ROW_HEIGHT_PX}px)` }, children: spans.slice(start, end).map((span) => jsxRuntimeExports.jsx(TimelineBar, { span, viewStart, viewDuration, containerWidth: timelineWidth, isSelected: selectedId === span.spanId, isDimmed: isSpanDimmedBySearch(span.spanId, searchResult), onSelect }, span.spanId)) }), altHeld && jsxRuntimeExports.jsx("div", { "aria-hidden": true, className: "absolute inset-y-0 pointer-events-none", style: TIMELINE_INSET_STYLE, children: gaps.map((gap) => jsxRuntimeExports.jsx(DeltaIndicator, { leftFrac: gap.leftFrac, rightFrac: gap.rightFrac, label: formatDuration(gap.gapMs, true), rowIndex: gap.rowIndex }, gap.rowIndex)) })] });
|
|
46060
46826
|
}
|
|
46061
|
-
const TooltipProvider = Provider;
|
|
46062
|
-
const Tooltip$1 = Root3;
|
|
46063
|
-
const TooltipTrigger$1 = Trigger;
|
|
46064
|
-
const TooltipContent$1 = reactExports.forwardRef(({ className, sideOffset = 8, showArrow = true, children: children2, ...props }, ref) => jsxRuntimeExports.jsx(Portal, { children: jsxRuntimeExports.jsxs(Content2, { ref, sideOffset, className: cn$4("z-[99999] flex items-center gap-1 rounded-[10px] bg-gray-1000 px-2 py-1.5 !text-label-13 text-background-100 shadow-md select-none", className), ...props, children: [children2, showArrow ? jsxRuntimeExports.jsx(Arrow2, { width: 11, height: 5, className: "fill-gray-1000" }) : null] }) }));
|
|
46065
|
-
TooltipContent$1.displayName = Content2.displayName;
|
|
46066
46827
|
const ActiveSpanContext = reactExports.createContext(null);
|
|
46067
46828
|
ActiveSpanContext.displayName = "ActiveSpanContext";
|
|
46068
46829
|
function ActiveSpanProvider({ spans, children: children2 }) {
|
|
@@ -46153,115 +46914,6 @@ function useServerConfig() {
|
|
|
46153
46914
|
}
|
|
46154
46915
|
return context;
|
|
46155
46916
|
}
|
|
46156
|
-
function setRef(ref, value) {
|
|
46157
|
-
if (typeof ref === "function") {
|
|
46158
|
-
return ref(value);
|
|
46159
|
-
} else if (ref !== null && ref !== void 0) {
|
|
46160
|
-
ref.current = value;
|
|
46161
|
-
}
|
|
46162
|
-
}
|
|
46163
|
-
function composeRefs(...refs) {
|
|
46164
|
-
return (node2) => {
|
|
46165
|
-
let hasCleanup = false;
|
|
46166
|
-
const cleanups = refs.map((ref) => {
|
|
46167
|
-
const cleanup = setRef(ref, node2);
|
|
46168
|
-
if (!hasCleanup && typeof cleanup == "function") {
|
|
46169
|
-
hasCleanup = true;
|
|
46170
|
-
}
|
|
46171
|
-
return cleanup;
|
|
46172
|
-
});
|
|
46173
|
-
if (hasCleanup) {
|
|
46174
|
-
return () => {
|
|
46175
|
-
for (let i = 0; i < cleanups.length; i++) {
|
|
46176
|
-
const cleanup = cleanups[i];
|
|
46177
|
-
if (typeof cleanup == "function") {
|
|
46178
|
-
cleanup();
|
|
46179
|
-
} else {
|
|
46180
|
-
setRef(refs[i], null);
|
|
46181
|
-
}
|
|
46182
|
-
}
|
|
46183
|
-
};
|
|
46184
|
-
}
|
|
46185
|
-
};
|
|
46186
|
-
}
|
|
46187
|
-
function useComposedRefs(...refs) {
|
|
46188
|
-
return reactExports.useCallback(composeRefs(...refs), refs);
|
|
46189
|
-
}
|
|
46190
|
-
var Slot = reactExports.forwardRef((props, forwardedRef) => {
|
|
46191
|
-
const { children: children2, ...slotProps } = props;
|
|
46192
|
-
const childrenArray = reactExports.Children.toArray(children2);
|
|
46193
|
-
const slottable = childrenArray.find(isSlottable);
|
|
46194
|
-
if (slottable) {
|
|
46195
|
-
const newElement = slottable.props.children;
|
|
46196
|
-
const newChildren = childrenArray.map((child) => {
|
|
46197
|
-
if (child === slottable) {
|
|
46198
|
-
if (reactExports.Children.count(newElement) > 1) return reactExports.Children.only(null);
|
|
46199
|
-
return reactExports.isValidElement(newElement) ? newElement.props.children : null;
|
|
46200
|
-
} else {
|
|
46201
|
-
return child;
|
|
46202
|
-
}
|
|
46203
|
-
});
|
|
46204
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: reactExports.isValidElement(newElement) ? reactExports.cloneElement(newElement, void 0, newChildren) : null });
|
|
46205
|
-
}
|
|
46206
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: children2 });
|
|
46207
|
-
});
|
|
46208
|
-
Slot.displayName = "Slot";
|
|
46209
|
-
var SlotClone = reactExports.forwardRef((props, forwardedRef) => {
|
|
46210
|
-
const { children: children2, ...slotProps } = props;
|
|
46211
|
-
if (reactExports.isValidElement(children2)) {
|
|
46212
|
-
const childrenRef = getElementRef(children2);
|
|
46213
|
-
return reactExports.cloneElement(children2, {
|
|
46214
|
-
...mergeProps(slotProps, children2.props),
|
|
46215
|
-
// @ts-ignore
|
|
46216
|
-
ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef
|
|
46217
|
-
});
|
|
46218
|
-
}
|
|
46219
|
-
return reactExports.Children.count(children2) > 1 ? reactExports.Children.only(null) : null;
|
|
46220
|
-
});
|
|
46221
|
-
SlotClone.displayName = "SlotClone";
|
|
46222
|
-
var Slottable = ({ children: children2 }) => {
|
|
46223
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: children2 });
|
|
46224
|
-
};
|
|
46225
|
-
function isSlottable(child) {
|
|
46226
|
-
return reactExports.isValidElement(child) && child.type === Slottable;
|
|
46227
|
-
}
|
|
46228
|
-
function mergeProps(slotProps, childProps) {
|
|
46229
|
-
const overrideProps = { ...childProps };
|
|
46230
|
-
for (const propName in childProps) {
|
|
46231
|
-
const slotPropValue = slotProps[propName];
|
|
46232
|
-
const childPropValue = childProps[propName];
|
|
46233
|
-
const isHandler = /^on[A-Z]/.test(propName);
|
|
46234
|
-
if (isHandler) {
|
|
46235
|
-
if (slotPropValue && childPropValue) {
|
|
46236
|
-
overrideProps[propName] = (...args) => {
|
|
46237
|
-
childPropValue(...args);
|
|
46238
|
-
slotPropValue(...args);
|
|
46239
|
-
};
|
|
46240
|
-
} else if (slotPropValue) {
|
|
46241
|
-
overrideProps[propName] = slotPropValue;
|
|
46242
|
-
}
|
|
46243
|
-
} else if (propName === "style") {
|
|
46244
|
-
overrideProps[propName] = { ...slotPropValue, ...childPropValue };
|
|
46245
|
-
} else if (propName === "className") {
|
|
46246
|
-
overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
|
|
46247
|
-
}
|
|
46248
|
-
}
|
|
46249
|
-
return { ...slotProps, ...overrideProps };
|
|
46250
|
-
}
|
|
46251
|
-
function getElementRef(element2) {
|
|
46252
|
-
var _a3, _b2;
|
|
46253
|
-
let getter = (_a3 = Object.getOwnPropertyDescriptor(element2.props, "ref")) == null ? void 0 : _a3.get;
|
|
46254
|
-
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
46255
|
-
if (mayWarn) {
|
|
46256
|
-
return element2.ref;
|
|
46257
|
-
}
|
|
46258
|
-
getter = (_b2 = Object.getOwnPropertyDescriptor(element2, "ref")) == null ? void 0 : _b2.get;
|
|
46259
|
-
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
46260
|
-
if (mayWarn) {
|
|
46261
|
-
return element2.props.ref;
|
|
46262
|
-
}
|
|
46263
|
-
return element2.props.ref || element2.ref;
|
|
46264
|
-
}
|
|
46265
46917
|
const buttonVariants = cva(
|
|
46266
46918
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
46267
46919
|
{
|
|
@@ -48614,7 +49266,7 @@ const mermaid3ZIDBTTL = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.def
|
|
|
48614
49266
|
Mermaid: Nt
|
|
48615
49267
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
48616
49268
|
export {
|
|
48617
|
-
|
|
49269
|
+
ContextCardProvider as $,
|
|
48618
49270
|
Anchor as A,
|
|
48619
49271
|
Button as B,
|
|
48620
49272
|
Content as C,
|
|
@@ -48628,85 +49280,90 @@ export {
|
|
|
48628
49280
|
Ks as K,
|
|
48629
49281
|
LoaderCircle as L,
|
|
48630
49282
|
fetchWorkflowsManifest as M,
|
|
48631
|
-
|
|
48632
|
-
|
|
49283
|
+
cn$4 as N,
|
|
49284
|
+
DataInspector as O,
|
|
48633
49285
|
Primitive as P,
|
|
48634
49286
|
Qe as Q,
|
|
48635
49287
|
R,
|
|
48636
49288
|
ServerConfigProvider as S,
|
|
48637
49289
|
Tooltip as T,
|
|
48638
|
-
|
|
49290
|
+
DecryptClickContext as U,
|
|
48639
49291
|
VISUALLY_HIDDEN_STYLES as V,
|
|
48640
|
-
|
|
48641
|
-
|
|
48642
|
-
|
|
48643
|
-
|
|
48644
|
-
|
|
49292
|
+
Button$1 as W,
|
|
49293
|
+
Spinner as X,
|
|
49294
|
+
Lock as Y,
|
|
49295
|
+
RESERVED_ATTRIBUTE_KEY_PREFIX as Z,
|
|
49296
|
+
useHasContextCardProvider as _,
|
|
48645
49297
|
TooltipTrigger as a,
|
|
48646
|
-
|
|
48647
|
-
|
|
48648
|
-
|
|
48649
|
-
|
|
48650
|
-
|
|
48651
|
-
|
|
48652
|
-
|
|
48653
|
-
|
|
48654
|
-
|
|
48655
|
-
|
|
48656
|
-
|
|
48657
|
-
|
|
48658
|
-
|
|
48659
|
-
|
|
48660
|
-
|
|
48661
|
-
|
|
48662
|
-
|
|
48663
|
-
|
|
48664
|
-
|
|
48665
|
-
|
|
48666
|
-
|
|
48667
|
-
|
|
48668
|
-
|
|
48669
|
-
|
|
48670
|
-
|
|
48671
|
-
|
|
48672
|
-
|
|
48673
|
-
|
|
48674
|
-
|
|
48675
|
-
|
|
48676
|
-
|
|
48677
|
-
|
|
48678
|
-
|
|
48679
|
-
|
|
48680
|
-
|
|
48681
|
-
|
|
48682
|
-
|
|
48683
|
-
|
|
48684
|
-
|
|
48685
|
-
|
|
48686
|
-
|
|
48687
|
-
|
|
48688
|
-
|
|
48689
|
-
|
|
48690
|
-
|
|
48691
|
-
|
|
48692
|
-
|
|
48693
|
-
|
|
48694
|
-
|
|
48695
|
-
|
|
48696
|
-
|
|
48697
|
-
|
|
48698
|
-
|
|
48699
|
-
|
|
48700
|
-
|
|
48701
|
-
|
|
48702
|
-
|
|
48703
|
-
|
|
48704
|
-
|
|
48705
|
-
|
|
48706
|
-
|
|
48707
|
-
|
|
48708
|
-
|
|
49298
|
+
cancelRun as a$,
|
|
49299
|
+
ContextCardTrigger as a0,
|
|
49300
|
+
Skeleton$1 as a1,
|
|
49301
|
+
Yr as a2,
|
|
49302
|
+
isEncryptedMarker as a3,
|
|
49303
|
+
formatDuration as a4,
|
|
49304
|
+
_r as a5,
|
|
49305
|
+
RunClickContext as a6,
|
|
49306
|
+
StreamClickContext as a7,
|
|
49307
|
+
isExpiredMarker as a8,
|
|
49308
|
+
isDoStreamStep as a9,
|
|
49309
|
+
SidebarDataProvider as aA,
|
|
49310
|
+
hydrateResourceIOWithKey as aB,
|
|
49311
|
+
hydrateResourceIO as aC,
|
|
49312
|
+
fetchHook as aD,
|
|
49313
|
+
fetchStep as aE,
|
|
49314
|
+
fetchStreams as aF,
|
|
49315
|
+
Slot as aG,
|
|
49316
|
+
Slottable as aH,
|
|
49317
|
+
buttonVariants as aI,
|
|
49318
|
+
fetchEvent as aJ,
|
|
49319
|
+
fetchEventsByCorrelationId as aK,
|
|
49320
|
+
isEncryptedData as aL,
|
|
49321
|
+
hydrateData as aM,
|
|
49322
|
+
getWebRevivers as aN,
|
|
49323
|
+
LIVE_UPDATE_INTERVAL_MS as aO,
|
|
49324
|
+
getEncryptionKeyForRun as aP,
|
|
49325
|
+
StreamViewer as aQ,
|
|
49326
|
+
composeRefs as aR,
|
|
49327
|
+
useFloating as aS,
|
|
49328
|
+
offset as aT,
|
|
49329
|
+
shift as aU,
|
|
49330
|
+
limitShift as aV,
|
|
49331
|
+
flip as aW,
|
|
49332
|
+
size as aX,
|
|
49333
|
+
arrow as aY,
|
|
49334
|
+
hide as aZ,
|
|
49335
|
+
autoUpdate as a_,
|
|
49336
|
+
extractConversation as aa,
|
|
49337
|
+
hasEncryptedFields as ab,
|
|
49338
|
+
EVENT_DATA_REF_FIELDS as ac,
|
|
49339
|
+
useSidebarDataOptional as ad,
|
|
49340
|
+
clsx as ae,
|
|
49341
|
+
useRowWindow as af,
|
|
49342
|
+
isSpanDimmedBySearch as ag,
|
|
49343
|
+
ROW_HEIGHT_PX as ah,
|
|
49344
|
+
getSpanDurationMs as ai,
|
|
49345
|
+
formatDurationPrecise as aj,
|
|
49346
|
+
TooltipProvider as ak,
|
|
49347
|
+
ActiveSpanProvider as al,
|
|
49348
|
+
useActiveSpan as am,
|
|
49349
|
+
useSidebarData as an,
|
|
49350
|
+
searchSpans as ao,
|
|
49351
|
+
computeRootBounds as ap,
|
|
49352
|
+
computeTimeMarkers as aq,
|
|
49353
|
+
getHighResInMs as ar,
|
|
49354
|
+
TIMELINE_PADDING_PX as as,
|
|
49355
|
+
Timeline as at,
|
|
49356
|
+
TimelineHeader as au,
|
|
49357
|
+
IconButton as av,
|
|
49358
|
+
Tooltip$1 as aw,
|
|
49359
|
+
TooltipTrigger$1 as ax,
|
|
49360
|
+
TooltipContent$1 as ay,
|
|
49361
|
+
useReducedMotion as az,
|
|
48709
49362
|
TooltipContent as b,
|
|
49363
|
+
reenqueueRun as b0,
|
|
49364
|
+
wakeUpRun as b1,
|
|
49365
|
+
resumeHook as b2,
|
|
49366
|
+
recreateRun as b3,
|
|
48710
49367
|
createLucideIcon as c,
|
|
48711
49368
|
cn as d,
|
|
48712
49369
|
Toaster as e,
|