@mastra/playground-ui 7.0.0-beta.22 → 7.0.0-beta.24
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/CHANGELOG.md +32 -0
- package/dist/index.cjs.js +591 -238
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +10 -10
- package/dist/index.es.js +584 -231
- package/dist/index.es.js.map +1 -1
- package/dist/spacings-Ddc7umGk.js +196 -0
- package/dist/spacings-Ddc7umGk.js.map +1 -0
- package/dist/spacings-bCnRJAUT.cjs +206 -0
- package/dist/spacings-bCnRJAUT.cjs.map +1 -0
- package/dist/src/ds/components/Alert/Alert.d.ts +2 -1
- package/dist/src/ds/components/Avatar/Avatar.d.ts +2 -1
- package/dist/src/ds/components/Badge/Badge.d.ts +1 -1
- package/dist/src/ds/components/Button/Button.d.ts +1 -1
- package/dist/src/ds/components/Card/Card.d.ts +26 -0
- package/dist/src/ds/components/Card/index.d.ts +2 -0
- package/dist/src/ds/components/Collapsible/collapsible.d.ts +4 -3
- package/dist/src/ds/components/EmptyState/EmptyState.d.ts +10 -9
- package/dist/src/ds/components/EmptyState/index.d.ts +2 -1
- package/dist/src/ds/components/Input/input.d.ts +2 -0
- package/dist/src/ds/components/Kbd/kbd.d.ts +2 -1
- package/dist/src/ds/components/Notification/notification.d.ts +1 -1
- package/dist/src/ds/components/Spinner/spinner.d.ts +2 -1
- package/dist/src/ds/components/StatusBadge/StatusBadge.d.ts +13 -0
- package/dist/src/ds/components/StatusBadge/index.d.ts +2 -0
- package/dist/src/ds/primitives/form-element.d.ts +3 -2
- package/dist/src/ds/primitives/transitions.d.ts +22 -0
- package/dist/src/ds/tokens/animations.d.ts +5 -0
- package/dist/src/ds/tokens/colors.d.ts +2 -1
- package/dist/src/ds/tokens/index.d.ts +2 -0
- package/dist/src/ds/tokens/shadows.d.ts +14 -0
- package/dist/tailwind.preset.cjs.js +38 -10
- package/dist/tailwind.preset.cjs.js.map +1 -1
- package/dist/tailwind.preset.es.js +29 -1
- package/dist/tailwind.preset.es.js.map +1 -1
- package/dist/tokens.cjs.js +17 -175
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +8 -169
- package/dist/tokens.es.js.map +1 -1
- package/package.json +8 -8
package/dist/index.cjs.js
CHANGED
|
@@ -6,7 +6,7 @@ require('./index.css');const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const react = require('@assistant-ui/react');
|
|
7
7
|
const lucideReact = require('lucide-react');
|
|
8
8
|
const React = require('react');
|
|
9
|
-
const
|
|
9
|
+
const spacings = require('./spacings-bCnRJAUT.cjs');
|
|
10
10
|
const TooltipPrimitive = require('@radix-ui/react-tooltip');
|
|
11
11
|
const reactMarkdown = require('@assistant-ui/react-markdown');
|
|
12
12
|
require('@assistant-ui/react-markdown/styles/dot.css');
|
|
@@ -3116,19 +3116,21 @@ const mergeArrayProperties = (baseObject, mergeObject, key) => {
|
|
|
3116
3116
|
};
|
|
3117
3117
|
const extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);
|
|
3118
3118
|
|
|
3119
|
-
const colorKeys = Object.keys({ ...
|
|
3120
|
-
const spacingKeys = Object.keys(
|
|
3121
|
-
const fontSizeKeys = Object.keys(
|
|
3122
|
-
const lineHeightKeys = Object.keys(
|
|
3123
|
-
const borderRadiusKeys = Object.keys(
|
|
3124
|
-
const sizeKeys = Object.keys(
|
|
3119
|
+
const colorKeys = Object.keys({ ...spacings.Colors, ...spacings.BorderColors });
|
|
3120
|
+
const spacingKeys = Object.keys(spacings.Spacings);
|
|
3121
|
+
const fontSizeKeys = Object.keys(spacings.FontSizes);
|
|
3122
|
+
const lineHeightKeys = Object.keys(spacings.LineHeights);
|
|
3123
|
+
const borderRadiusKeys = Object.keys(spacings.BorderRadius);
|
|
3124
|
+
const sizeKeys = Object.keys(spacings.Sizes);
|
|
3125
|
+
const shadowKeys = Object.keys(spacings.Shadows).concat(Object.keys(spacings.Glows));
|
|
3125
3126
|
const twMerge = extendTailwindMerge({
|
|
3126
3127
|
extend: {
|
|
3127
3128
|
theme: {
|
|
3128
3129
|
color: colorKeys,
|
|
3129
3130
|
spacing: spacingKeys,
|
|
3130
3131
|
radius: borderRadiusKeys,
|
|
3131
|
-
leading: lineHeightKeys
|
|
3132
|
+
leading: lineHeightKeys,
|
|
3133
|
+
shadow: shadowKeys
|
|
3132
3134
|
},
|
|
3133
3135
|
classGroups: {
|
|
3134
3136
|
"font-size": [{ text: fontSizeKeys }],
|
|
@@ -3152,47 +3154,44 @@ const formElementSizes = {
|
|
|
3152
3154
|
md: "h-form-md",
|
|
3153
3155
|
lg: "h-form-lg"
|
|
3154
3156
|
};
|
|
3155
|
-
const formElementFocus = "focus:outline focus:
|
|
3156
|
-
const formElementFocusWithin = "focus-within:outline focus-within:
|
|
3157
|
+
const formElementFocus = "focus:outline-none focus:ring-1 focus:ring-accent1 focus:shadow-focus-ring transition-shadow duration-normal";
|
|
3158
|
+
const formElementFocusWithin = "focus-within:outline-none focus-within:ring-1 focus-within:ring-accent1 focus-within:shadow-focus-ring transition-shadow duration-normal";
|
|
3157
3159
|
const formElementRadius = "rounded-md";
|
|
3158
3160
|
|
|
3159
|
-
const sizeClasses$
|
|
3161
|
+
const sizeClasses$2 = {
|
|
3160
3162
|
sm: `${formElementSizes.sm} gap-0.5`,
|
|
3161
3163
|
md: `${formElementSizes.md} gap-1`,
|
|
3162
3164
|
lg: `${formElementSizes.lg} gap-2`
|
|
3163
3165
|
};
|
|
3164
3166
|
const variantClasses$2 = {
|
|
3165
|
-
default: "bg-surface2 hover:bg-surface4 text-neutral3 hover:text-neutral6 disabled:opacity-50",
|
|
3166
|
-
light: "bg-surface3 hover:bg-surface5 text-neutral6 disabled:opacity-50",
|
|
3167
|
-
outline: "bg-transparent hover:bg-surface2 text-neutral3 hover:text-neutral6 disabled:opacity-50",
|
|
3168
|
-
ghost: "bg-transparent border-transparent hover:bg-surface2 text-neutral3 hover:text-neutral6 disabled:opacity-50"
|
|
3167
|
+
default: "bg-surface2 hover:bg-surface4 text-neutral3 hover:text-neutral6 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
3168
|
+
light: "bg-surface3 hover:bg-surface5 text-neutral6 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
3169
|
+
outline: "bg-transparent hover:bg-surface2 text-neutral3 hover:text-neutral6 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
3170
|
+
ghost: "bg-transparent border-transparent hover:bg-surface2 text-neutral3 hover:text-neutral6 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
3171
|
+
primary: "bg-accent1 hover:bg-accent1/90 text-surface1 font-medium hover:shadow-glow-accent1 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:shadow-none"
|
|
3169
3172
|
};
|
|
3173
|
+
const baseButtonStyles = "border border-border1 px-2 text-ui-md inline-flex items-center justify-center rounded-md transition-all duration-normal ease-out-custom active:scale-[0.98]";
|
|
3170
3174
|
function buttonVariants(options) {
|
|
3171
3175
|
const variant = options?.variant || "default";
|
|
3172
3176
|
const size = options?.size || "md";
|
|
3173
|
-
return cn(
|
|
3174
|
-
"bg-surface2 border border-border1 px-2 text-ui-md inline-flex items-center justify-center rounded-md border",
|
|
3175
|
-
formElementFocus,
|
|
3176
|
-
variantClasses$2[variant],
|
|
3177
|
-
sizeClasses$1[size]
|
|
3178
|
-
);
|
|
3177
|
+
return cn(baseButtonStyles, formElementFocus, variantClasses$2[variant], sizeClasses$2[size]);
|
|
3179
3178
|
}
|
|
3180
3179
|
const Button = React.forwardRef(
|
|
3181
|
-
({ className, as, size = "md", variant = "default", ...props }, ref) => {
|
|
3180
|
+
({ className, as, size = "md", variant = "default", disabled, ...props }, ref) => {
|
|
3182
3181
|
const Component = as || "button";
|
|
3183
3182
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3184
3183
|
Component,
|
|
3185
3184
|
{
|
|
3186
3185
|
ref,
|
|
3186
|
+
disabled,
|
|
3187
3187
|
className: cn(
|
|
3188
|
-
|
|
3188
|
+
baseButtonStyles,
|
|
3189
3189
|
formElementFocus,
|
|
3190
3190
|
variantClasses$2[variant],
|
|
3191
|
-
sizeClasses$
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
}
|
|
3191
|
+
sizeClasses$2[size],
|
|
3192
|
+
// Remove active scale when disabled
|
|
3193
|
+
disabled && "active:scale-100",
|
|
3194
|
+
className
|
|
3196
3195
|
),
|
|
3197
3196
|
...props
|
|
3198
3197
|
}
|
|
@@ -3247,17 +3246,36 @@ const Txt = ({ as: Root = "p", className, variant = "ui-md", font, ...props }) =
|
|
|
3247
3246
|
return /* @__PURE__ */ jsxRuntime.jsx(Root, { className: cn(variants[variant], font && fonts[font], className), ...props });
|
|
3248
3247
|
};
|
|
3249
3248
|
|
|
3250
|
-
const
|
|
3249
|
+
const transitions = {
|
|
3250
|
+
// For color changes (background, text, border)
|
|
3251
|
+
colors: "transition-colors duration-normal ease-out-custom",
|
|
3252
|
+
// For transform changes (scale, translate, rotate)
|
|
3253
|
+
transform: "transition-transform duration-normal ease-out-custom",
|
|
3254
|
+
// For all property changes
|
|
3255
|
+
all: "transition-all duration-normal ease-out-custom",
|
|
3256
|
+
// For opacity changes
|
|
3257
|
+
opacity: "transition-opacity duration-normal ease-out-custom"};
|
|
3258
|
+
const focusRing = {
|
|
3259
|
+
// Focus visible only (keyboard navigation)
|
|
3260
|
+
visible: "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:shadow-focus-ring"
|
|
3261
|
+
};
|
|
3262
|
+
|
|
3263
|
+
const sizeClasses$1 = {
|
|
3251
3264
|
sm: "h-avatar-sm w-avatar-sm",
|
|
3252
3265
|
md: "h-avatar-md w-avatar-md",
|
|
3253
3266
|
lg: "h-avatar-lg w-avatar-lg"
|
|
3254
3267
|
};
|
|
3255
|
-
const Avatar = ({ src, name, size = "sm" }) => {
|
|
3268
|
+
const Avatar = ({ src, name, size = "sm", interactive = false }) => {
|
|
3256
3269
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3257
3270
|
"div",
|
|
3258
3271
|
{
|
|
3259
|
-
className:
|
|
3260
|
-
|
|
3272
|
+
className: cn(
|
|
3273
|
+
sizeClasses$1[size],
|
|
3274
|
+
"border border-border1 bg-surface3 shrink-0 overflow-hidden rounded-full flex items-center justify-center",
|
|
3275
|
+
transitions.all,
|
|
3276
|
+
interactive && "cursor-pointer hover:scale-105 hover:border-neutral2 hover:shadow-sm"
|
|
3277
|
+
),
|
|
3278
|
+
children: src ? /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt: name, className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsxRuntime.jsx(Txt, { variant: "ui-md", className: "text-center text-neutral4", children: name[0].toUpperCase() })
|
|
3261
3279
|
}
|
|
3262
3280
|
);
|
|
3263
3281
|
};
|
|
@@ -4322,21 +4340,33 @@ const AgentNetworkCoinIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", {
|
|
|
4322
4340
|
] });
|
|
4323
4341
|
|
|
4324
4342
|
const variantClasses$1 = {
|
|
4325
|
-
warning: "bg-
|
|
4326
|
-
destructive: "bg-
|
|
4327
|
-
info: "bg-
|
|
4343
|
+
warning: "bg-accent6Darker border-accent6/30 text-accent6",
|
|
4344
|
+
destructive: "bg-accent2Darker border-accent2/30 text-accent2",
|
|
4345
|
+
info: "bg-accent5Darker border-accent5/30 text-accent5"
|
|
4328
4346
|
};
|
|
4329
4347
|
const variantIcons = {
|
|
4330
4348
|
warning: lucideReact.TriangleAlert,
|
|
4331
4349
|
destructive: lucideReact.AlertCircle,
|
|
4332
4350
|
info: lucideReact.InfoIcon
|
|
4333
4351
|
};
|
|
4334
|
-
const Alert = ({ children, variant = "destructive" }) => {
|
|
4352
|
+
const Alert = ({ children, variant = "destructive", className }) => {
|
|
4335
4353
|
const Ico = variantIcons[variant];
|
|
4336
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4354
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4355
|
+
"div",
|
|
4356
|
+
{
|
|
4357
|
+
className: cn(
|
|
4358
|
+
variantClasses$1[variant],
|
|
4359
|
+
"p-3 rounded-md border shadow-sm",
|
|
4360
|
+
transitions.all,
|
|
4361
|
+
"animate-in fade-in-0 slide-in-from-top-2 duration-200",
|
|
4362
|
+
className
|
|
4363
|
+
),
|
|
4364
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2", children: [
|
|
4365
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(Ico, {}) }),
|
|
4366
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral4", children })
|
|
4367
|
+
] })
|
|
4368
|
+
}
|
|
4369
|
+
);
|
|
4340
4370
|
};
|
|
4341
4371
|
const AlertTitle = ({ children, as: As = "h5" }) => {
|
|
4342
4372
|
return /* @__PURE__ */ jsxRuntime.jsx(Txt, { as: As, variant: "ui-md", className: "font-semibold", children });
|
|
@@ -4346,24 +4376,33 @@ const AlertDescription = ({ children, as: As = "p" }) => {
|
|
|
4346
4376
|
};
|
|
4347
4377
|
|
|
4348
4378
|
const variantClasses = {
|
|
4379
|
+
default: "text-neutral3 bg-surface4",
|
|
4380
|
+
success: "text-accent1 bg-accent1Dark",
|
|
4381
|
+
error: "text-accent2 bg-accent2Dark",
|
|
4382
|
+
info: "text-accent5 bg-accent5Dark",
|
|
4383
|
+
warning: "text-accent6 bg-accent6Dark"
|
|
4384
|
+
};
|
|
4385
|
+
const iconClasses = {
|
|
4349
4386
|
default: "text-neutral3",
|
|
4350
4387
|
success: "text-accent1",
|
|
4351
4388
|
error: "text-accent2",
|
|
4352
|
-
info: "text-
|
|
4389
|
+
info: "text-accent5",
|
|
4390
|
+
warning: "text-accent6"
|
|
4353
4391
|
};
|
|
4354
4392
|
const Badge = ({ icon, variant = "default", className, children, ...props }) => {
|
|
4355
4393
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4356
4394
|
"div",
|
|
4357
4395
|
{
|
|
4358
4396
|
className: cn(
|
|
4359
|
-
"font-mono
|
|
4397
|
+
"font-mono text-ui-sm gap-1 h-badge-default inline-flex items-center rounded-md shrink-0",
|
|
4398
|
+
transitions.colors,
|
|
4360
4399
|
icon ? "pl-1 pr-1.5" : "px-1.5",
|
|
4361
|
-
|
|
4400
|
+
variant === "default" && icon ? "bg-surface4 text-neutral5" : variantClasses[variant],
|
|
4362
4401
|
className
|
|
4363
4402
|
),
|
|
4364
4403
|
...props,
|
|
4365
4404
|
children: [
|
|
4366
|
-
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
4405
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: iconClasses[variant], children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { children: icon }) }),
|
|
4367
4406
|
children
|
|
4368
4407
|
]
|
|
4369
4408
|
}
|
|
@@ -4466,20 +4505,34 @@ function CopyButton({
|
|
|
4466
4505
|
iconSize = "default",
|
|
4467
4506
|
className
|
|
4468
4507
|
}) {
|
|
4469
|
-
const
|
|
4508
|
+
const [copied, setCopied] = React.useState(false);
|
|
4509
|
+
const { handleCopy: originalHandleCopy } = useCopyToClipboard({
|
|
4470
4510
|
text: content,
|
|
4471
4511
|
copyMessage
|
|
4472
4512
|
});
|
|
4513
|
+
const handleCopy = () => {
|
|
4514
|
+
originalHandleCopy();
|
|
4515
|
+
setCopied(true);
|
|
4516
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
4517
|
+
};
|
|
4473
4518
|
return /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, { children: [
|
|
4474
|
-
/* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4475
|
-
|
|
4519
|
+
/* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4520
|
+
"button",
|
|
4476
4521
|
{
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4522
|
+
onClick: handleCopy,
|
|
4523
|
+
type: "button",
|
|
4524
|
+
className: cn("rounded-lg p-1", transitions.all, focusRing.visible, "hover:bg-surface4", className),
|
|
4525
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4526
|
+
Icon,
|
|
4527
|
+
{
|
|
4528
|
+
className: cn("text-neutral3", transitions.all, "hover:text-neutral6", copied && "text-accent1"),
|
|
4529
|
+
size: iconSize,
|
|
4530
|
+
children: copied ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CopyIcon, {})
|
|
4531
|
+
}
|
|
4532
|
+
)
|
|
4480
4533
|
}
|
|
4481
|
-
) })
|
|
4482
|
-
/* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { children: tooltip })
|
|
4534
|
+
) }),
|
|
4535
|
+
/* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { children: copied ? "Copied!" : tooltip })
|
|
4483
4536
|
] });
|
|
4484
4537
|
}
|
|
4485
4538
|
|
|
@@ -4582,7 +4635,9 @@ const DialogOverlay = React__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
4582
4635
|
{
|
|
4583
4636
|
ref,
|
|
4584
4637
|
className: cn(
|
|
4585
|
-
"fixed inset-0 z-50 bg-
|
|
4638
|
+
"fixed inset-0 z-50 bg-overlay backdrop-blur-sm",
|
|
4639
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
4640
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
4586
4641
|
className
|
|
4587
4642
|
),
|
|
4588
4643
|
...props
|
|
@@ -4596,16 +4651,35 @@ const DialogContent = React__namespace.forwardRef(({ className, children, ...pro
|
|
|
4596
4651
|
{
|
|
4597
4652
|
ref,
|
|
4598
4653
|
className: cn(
|
|
4599
|
-
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%]
|
|
4654
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%]",
|
|
4655
|
+
"gap-4 border border-border1 bg-surface3 py-6 shadow-dialog rounded-lg",
|
|
4656
|
+
"duration-slow",
|
|
4657
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
4658
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
4659
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
4660
|
+
"data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]",
|
|
4661
|
+
"data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]",
|
|
4600
4662
|
className
|
|
4601
4663
|
),
|
|
4602
4664
|
...props,
|
|
4603
4665
|
children: [
|
|
4604
4666
|
children,
|
|
4605
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4667
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4668
|
+
DialogPrimitive__namespace.Close,
|
|
4669
|
+
{
|
|
4670
|
+
className: cn(
|
|
4671
|
+
"absolute right-4 top-4 rounded-md p-1",
|
|
4672
|
+
"text-neutral3 hover:text-neutral6 hover:bg-surface4",
|
|
4673
|
+
"transition-all duration-normal ease-out-custom",
|
|
4674
|
+
"focus:outline-none focus:ring-1 focus:ring-accent1 focus:shadow-focus-ring",
|
|
4675
|
+
"disabled:pointer-events-none"
|
|
4676
|
+
),
|
|
4677
|
+
children: [
|
|
4678
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" }),
|
|
4679
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
4680
|
+
]
|
|
4681
|
+
}
|
|
4682
|
+
)
|
|
4609
4683
|
]
|
|
4610
4684
|
}
|
|
4611
4685
|
)
|
|
@@ -5817,7 +5891,21 @@ function WorkflowRunProvider({
|
|
|
5817
5891
|
}
|
|
5818
5892
|
|
|
5819
5893
|
function Skeleton({ className, ...props }) {
|
|
5820
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5894
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5895
|
+
"div",
|
|
5896
|
+
{
|
|
5897
|
+
className: cn(
|
|
5898
|
+
"rounded-md bg-surface4 relative overflow-hidden",
|
|
5899
|
+
// Shimmer effect using pseudo-element
|
|
5900
|
+
"before:absolute before:inset-0",
|
|
5901
|
+
"before:translate-x-[-100%]",
|
|
5902
|
+
"before:animate-[shimmer_2s_infinite]",
|
|
5903
|
+
"before:bg-gradient-to-r before:from-transparent before:via-surface5/20 before:to-transparent",
|
|
5904
|
+
className
|
|
5905
|
+
),
|
|
5906
|
+
...props
|
|
5907
|
+
}
|
|
5908
|
+
);
|
|
5821
5909
|
}
|
|
5822
5910
|
|
|
5823
5911
|
const lodashTitleCase = (str) => {
|
|
@@ -6215,11 +6303,40 @@ const constructNodesAndEdges = ({
|
|
|
6215
6303
|
};
|
|
6216
6304
|
|
|
6217
6305
|
const Collapsible = CollapsiblePrimitive__namespace.Root;
|
|
6218
|
-
const CollapsibleTrigger = (props) =>
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6306
|
+
const CollapsibleTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6307
|
+
CollapsiblePrimitive__namespace.CollapsibleTrigger,
|
|
6308
|
+
{
|
|
6309
|
+
ref,
|
|
6310
|
+
className: cn(
|
|
6311
|
+
"-outline-offset-2",
|
|
6312
|
+
transitions.colors,
|
|
6313
|
+
focusRing.visible,
|
|
6314
|
+
"hover:text-neutral5",
|
|
6315
|
+
"[&>svg]:transition-transform [&>svg]:duration-normal [&>svg]:ease-out-custom",
|
|
6316
|
+
"[&[data-state=open]>svg]:rotate-90",
|
|
6317
|
+
className
|
|
6318
|
+
),
|
|
6319
|
+
...props,
|
|
6320
|
+
children
|
|
6321
|
+
}
|
|
6322
|
+
));
|
|
6323
|
+
CollapsibleTrigger.displayName = CollapsiblePrimitive__namespace.CollapsibleTrigger.displayName;
|
|
6324
|
+
const CollapsibleContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6325
|
+
CollapsiblePrimitive__namespace.CollapsibleContent,
|
|
6326
|
+
{
|
|
6327
|
+
ref,
|
|
6328
|
+
className: cn(
|
|
6329
|
+
"overflow-hidden",
|
|
6330
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-1",
|
|
6331
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-1",
|
|
6332
|
+
"duration-normal ease-out-custom",
|
|
6333
|
+
className
|
|
6334
|
+
),
|
|
6335
|
+
...props,
|
|
6336
|
+
children
|
|
6337
|
+
}
|
|
6338
|
+
));
|
|
6339
|
+
CollapsibleContent.displayName = CollapsiblePrimitive__namespace.CollapsibleContent.displayName;
|
|
6223
6340
|
|
|
6224
6341
|
const BADGE_COLORS = {
|
|
6225
6342
|
sleep: "#A855F7",
|
|
@@ -6369,13 +6486,14 @@ const ScrollBar = React__namespace.forwardRef(({ className, orientation = "verti
|
|
|
6369
6486
|
ref,
|
|
6370
6487
|
orientation,
|
|
6371
6488
|
className: cn(
|
|
6372
|
-
"flex touch-none select-none transition-
|
|
6489
|
+
"flex touch-none select-none transition-all duration-normal ease-out-custom",
|
|
6490
|
+
"opacity-0 hover:opacity-100 data-[state=visible]:opacity-100",
|
|
6373
6491
|
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-px",
|
|
6374
6492
|
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-px",
|
|
6375
6493
|
className
|
|
6376
6494
|
),
|
|
6377
6495
|
...props,
|
|
6378
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-
|
|
6496
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-neutral2 hover:bg-neutral3 transition-colors duration-normal" })
|
|
6379
6497
|
}
|
|
6380
6498
|
));
|
|
6381
6499
|
ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displayName;
|
|
@@ -6512,16 +6630,22 @@ const cva = (base, config)=>(props)=>{
|
|
|
6512
6630
|
|
|
6513
6631
|
const inputVariants = cva(
|
|
6514
6632
|
cn(
|
|
6515
|
-
|
|
6633
|
+
// Base styles with enhanced transitions
|
|
6634
|
+
"flex w-full text-neutral6 border bg-transparent",
|
|
6635
|
+
"transition-all duration-normal ease-out-custom",
|
|
6636
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
6637
|
+
// Better placeholder styling
|
|
6638
|
+
"placeholder:text-neutral2 placeholder:transition-opacity placeholder:duration-normal",
|
|
6639
|
+
"focus:placeholder:opacity-70",
|
|
6516
6640
|
formElementRadius,
|
|
6517
6641
|
formElementFocus
|
|
6518
6642
|
),
|
|
6519
6643
|
{
|
|
6520
6644
|
variants: {
|
|
6521
6645
|
variant: {
|
|
6522
|
-
default: "border border-border1
|
|
6523
|
-
filled: "border bg-
|
|
6524
|
-
unstyled: "border-0 bg-transparent
|
|
6646
|
+
default: "border border-border1 hover:border-border2",
|
|
6647
|
+
filled: "border bg-surface2 border-border1 hover:border-border2",
|
|
6648
|
+
unstyled: "border-0 bg-transparent shadow-none focus:shadow-none focus:ring-0"
|
|
6525
6649
|
},
|
|
6526
6650
|
size: {
|
|
6527
6651
|
sm: `${formElementSizes.sm} px-2 text-ui-sm`,
|
|
@@ -6536,14 +6660,20 @@ const inputVariants = cva(
|
|
|
6536
6660
|
}
|
|
6537
6661
|
);
|
|
6538
6662
|
const Input = React__namespace.forwardRef(
|
|
6539
|
-
({ className, size, testId, variant, type, ...props }, ref) => {
|
|
6663
|
+
({ className, size, testId, variant, type, error, ...props }, ref) => {
|
|
6540
6664
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6541
6665
|
"input",
|
|
6542
6666
|
{
|
|
6543
6667
|
type,
|
|
6544
|
-
className: cn(
|
|
6668
|
+
className: cn(
|
|
6669
|
+
inputVariants({ variant, size }),
|
|
6670
|
+
// Error state styling
|
|
6671
|
+
error && "border-error focus:ring-error focus:shadow-glow-accent2",
|
|
6672
|
+
className
|
|
6673
|
+
),
|
|
6545
6674
|
"data-testid": testId,
|
|
6546
6675
|
ref,
|
|
6676
|
+
"aria-invalid": error,
|
|
6547
6677
|
...props
|
|
6548
6678
|
}
|
|
6549
6679
|
);
|
|
@@ -6591,11 +6721,27 @@ const Checkbox = React__namespace.forwardRef(({ className, ...props }, ref) => /
|
|
|
6591
6721
|
{
|
|
6592
6722
|
ref,
|
|
6593
6723
|
className: cn(
|
|
6594
|
-
"peer h-4 w-4 shrink-0 rounded-sm border border-
|
|
6724
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-neutral3",
|
|
6725
|
+
"shadow-sm",
|
|
6726
|
+
transitions.all,
|
|
6727
|
+
"hover:border-neutral5 hover:shadow-md",
|
|
6728
|
+
formElementFocus,
|
|
6729
|
+
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-neutral3 disabled:hover:shadow-sm",
|
|
6730
|
+
"data-[state=checked]:bg-accent1 data-[state=checked]:border-accent1 data-[state=checked]:text-surface1",
|
|
6731
|
+
"data-[state=checked]:shadow-glow-accent1",
|
|
6595
6732
|
className
|
|
6596
6733
|
),
|
|
6597
6734
|
...props,
|
|
6598
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6735
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6736
|
+
CheckboxPrimitive__namespace.Indicator,
|
|
6737
|
+
{
|
|
6738
|
+
className: cn(
|
|
6739
|
+
"flex items-center justify-center text-current",
|
|
6740
|
+
"data-[state=checked]:animate-in data-[state=checked]:zoom-in-50 data-[state=checked]:duration-150"
|
|
6741
|
+
),
|
|
6742
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-3.5 w-3.5 stroke-[3]" })
|
|
6743
|
+
}
|
|
6744
|
+
)
|
|
6599
6745
|
}
|
|
6600
6746
|
));
|
|
6601
6747
|
Checkbox.displayName = CheckboxPrimitive__namespace.Root.displayName;
|
|
@@ -6698,13 +6844,15 @@ const SelectTrigger = React__namespace.forwardRef(
|
|
|
6698
6844
|
"flex w-full items-center justify-between border border-border1 bg-transparent py-2 shadow-sm placeholder:text-neutral3 disabled:cursor-not-allowed disabled:opacity-50",
|
|
6699
6845
|
formElementRadius,
|
|
6700
6846
|
formElementFocus,
|
|
6847
|
+
transitions.all,
|
|
6848
|
+
"hover:border-neutral2",
|
|
6701
6849
|
selectTriggerSizeClasses[size],
|
|
6702
6850
|
className
|
|
6703
6851
|
),
|
|
6704
6852
|
...props,
|
|
6705
6853
|
children: [
|
|
6706
6854
|
children,
|
|
6707
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "h-4 w-4
|
|
6855
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: cn("h-4 w-4 text-neutral3", transitions.colors) }) })
|
|
6708
6856
|
]
|
|
6709
6857
|
}
|
|
6710
6858
|
)
|
|
@@ -6739,12 +6887,17 @@ const SelectItem = React__namespace.forwardRef(({ className, children, ...props
|
|
|
6739
6887
|
{
|
|
6740
6888
|
ref,
|
|
6741
6889
|
className: cn(
|
|
6742
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-neutral5 text-sm
|
|
6890
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-neutral5 text-sm",
|
|
6891
|
+
transitions.colors,
|
|
6892
|
+
"hover:bg-surface5 hover:text-neutral5",
|
|
6893
|
+
"focus:bg-surface5 focus:text-neutral5",
|
|
6894
|
+
"data-[state=checked]:bg-accent1Dark data-[state=checked]:text-accent1",
|
|
6895
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
6743
6896
|
className
|
|
6744
6897
|
),
|
|
6745
6898
|
...props,
|
|
6746
6899
|
children: [
|
|
6747
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4" }) }) }),
|
|
6900
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "h-4 w-4 text-accent1" }) }) }),
|
|
6748
6901
|
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
6749
6902
|
]
|
|
6750
6903
|
}
|
|
@@ -6925,7 +7078,13 @@ function SearchField({ onReset, ...props }) {
|
|
|
6925
7078
|
{
|
|
6926
7079
|
type: "button",
|
|
6927
7080
|
onClick: onReset,
|
|
6928
|
-
className: cn(
|
|
7081
|
+
className: cn(
|
|
7082
|
+
"absolute top-1/2 right-2 -translate-y-1/2 p-1 rounded",
|
|
7083
|
+
transitions.all,
|
|
7084
|
+
"hover:bg-surface4",
|
|
7085
|
+
"[&>svg]:transition-colors [&>svg]:duration-normal",
|
|
7086
|
+
"[&:hover>svg]:text-neutral5"
|
|
7087
|
+
),
|
|
6929
7088
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "text-neutral3 w-[1rem] h-[1rem]" })
|
|
6930
7089
|
}
|
|
6931
7090
|
)
|
|
@@ -7979,11 +8138,26 @@ const RadioGroupItem = React__namespace.forwardRef(({ className, ...props }, ref
|
|
|
7979
8138
|
{
|
|
7980
8139
|
ref,
|
|
7981
8140
|
className: cn(
|
|
7982
|
-
"aspect-square h-4 w-4 rounded-full border border-
|
|
8141
|
+
"aspect-square h-4 w-4 rounded-full border border-neutral3 text-neutral6",
|
|
8142
|
+
"shadow-sm",
|
|
8143
|
+
transitions.all,
|
|
8144
|
+
"hover:border-neutral5 hover:shadow-md",
|
|
8145
|
+
formElementFocus,
|
|
8146
|
+
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:border-neutral3 disabled:hover:shadow-sm",
|
|
8147
|
+
"data-[state=checked]:border-accent1 data-[state=checked]:shadow-glow-accent1",
|
|
7983
8148
|
className
|
|
7984
8149
|
),
|
|
7985
8150
|
...props,
|
|
7986
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8151
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8152
|
+
RadioGroupPrimitive__namespace.Indicator,
|
|
8153
|
+
{
|
|
8154
|
+
className: cn(
|
|
8155
|
+
"flex items-center justify-center",
|
|
8156
|
+
"data-[state=checked]:animate-in data-[state=checked]:zoom-in-50 data-[state=checked]:duration-150"
|
|
8157
|
+
),
|
|
8158
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-2 w-2 fill-accent1 text-accent1" })
|
|
8159
|
+
}
|
|
8160
|
+
)
|
|
7987
8161
|
}
|
|
7988
8162
|
);
|
|
7989
8163
|
});
|
|
@@ -9132,11 +9306,29 @@ const Slider = React__namespace.forwardRef(({ className, ...props }, ref) => /*
|
|
|
9132
9306
|
SliderPrimitive__namespace.Root,
|
|
9133
9307
|
{
|
|
9134
9308
|
ref,
|
|
9135
|
-
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
9309
|
+
className: cn("relative flex w-full touch-none select-none items-center group", className),
|
|
9136
9310
|
...props,
|
|
9137
9311
|
children: [
|
|
9138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9139
|
-
|
|
9312
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9313
|
+
SliderPrimitive__namespace.Track,
|
|
9314
|
+
{
|
|
9315
|
+
className: cn("relative h-1.5 w-full grow overflow-hidden rounded-full bg-neutral2", transitions.colors),
|
|
9316
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SliderPrimitive__namespace.Range, { className: cn("absolute h-full bg-accent1", transitions.all) })
|
|
9317
|
+
}
|
|
9318
|
+
),
|
|
9319
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9320
|
+
SliderPrimitive__namespace.Thumb,
|
|
9321
|
+
{
|
|
9322
|
+
className: cn(
|
|
9323
|
+
"block h-4 w-4 rounded-full border-2 border-accent1 bg-white shadow-md",
|
|
9324
|
+
"transition-all duration-normal ease-out-custom",
|
|
9325
|
+
formElementFocus,
|
|
9326
|
+
"hover:scale-110 hover:shadow-lg",
|
|
9327
|
+
"active:scale-95",
|
|
9328
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
9329
|
+
)
|
|
9330
|
+
}
|
|
9331
|
+
)
|
|
9140
9332
|
]
|
|
9141
9333
|
}
|
|
9142
9334
|
));
|
|
@@ -9601,20 +9793,31 @@ const WorkflowRunDetail = ({
|
|
|
9601
9793
|
}
|
|
9602
9794
|
};
|
|
9603
9795
|
|
|
9604
|
-
|
|
9796
|
+
function EmptyState({
|
|
9605
9797
|
iconSlot,
|
|
9606
9798
|
titleSlot,
|
|
9607
9799
|
descriptionSlot,
|
|
9608
9800
|
actionSlot,
|
|
9609
|
-
|
|
9610
|
-
|
|
9611
|
-
|
|
9612
|
-
|
|
9613
|
-
|
|
9614
|
-
|
|
9615
|
-
|
|
9616
|
-
|
|
9617
|
-
|
|
9801
|
+
className,
|
|
9802
|
+
as: HeadingTag = "h3"
|
|
9803
|
+
}) {
|
|
9804
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9805
|
+
"div",
|
|
9806
|
+
{
|
|
9807
|
+
className: cn(
|
|
9808
|
+
"flex flex-col items-center justify-center text-center py-10 px-6",
|
|
9809
|
+
"transition-opacity duration-normal ease-out-custom",
|
|
9810
|
+
className
|
|
9811
|
+
),
|
|
9812
|
+
children: [
|
|
9813
|
+
iconSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: iconSlot }),
|
|
9814
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeadingTag, { className: "font-medium text-neutral5 text-ui-md", children: titleSlot }),
|
|
9815
|
+
descriptionSlot && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1.5 text-neutral3 text-ui-sm max-w-md", children: descriptionSlot }),
|
|
9816
|
+
actionSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-5", children: actionSlot })
|
|
9817
|
+
]
|
|
9818
|
+
}
|
|
9819
|
+
);
|
|
9820
|
+
}
|
|
9618
9821
|
|
|
9619
9822
|
const rowSize = {
|
|
9620
9823
|
default: "[&>tbody>tr]:h-table-row",
|
|
@@ -9624,14 +9827,14 @@ const Table = ({ className, children, size = "default", style }) => {
|
|
|
9624
9827
|
return /* @__PURE__ */ jsxRuntime.jsx("table", { className: cn("w-full", rowSize[size], className), style, children });
|
|
9625
9828
|
};
|
|
9626
9829
|
const Thead = ({ className, children }) => {
|
|
9627
|
-
return /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { className: cn("h-table-header border-b border-border1 bg-surface2", className), children }) });
|
|
9830
|
+
return /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsx("tr", { className: cn("h-table-header border-b border-border1 bg-surface2/80", className), children }) });
|
|
9628
9831
|
};
|
|
9629
9832
|
const Th = ({ className, children, ...props }) => {
|
|
9630
9833
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9631
9834
|
"th",
|
|
9632
9835
|
{
|
|
9633
9836
|
className: cn(
|
|
9634
|
-
"text-
|
|
9837
|
+
"text-neutral2 text-ui-xs h-full whitespace-nowrap text-left font-medium uppercase tracking-wide first:pl-3 last:pr-3",
|
|
9635
9838
|
className
|
|
9636
9839
|
),
|
|
9637
9840
|
...props,
|
|
@@ -9653,7 +9856,12 @@ const Row = React.forwardRef(
|
|
|
9653
9856
|
"tr",
|
|
9654
9857
|
{
|
|
9655
9858
|
className: cn(
|
|
9656
|
-
"border-b border-border1
|
|
9859
|
+
"border-b border-border1",
|
|
9860
|
+
// Smooth hover transition
|
|
9861
|
+
"transition-colors duration-normal ease-out-custom",
|
|
9862
|
+
"hover:bg-surface3",
|
|
9863
|
+
// Focus state
|
|
9864
|
+
"focus:bg-surface3 focus:outline-none focus:ring-1 focus:ring-inset focus:ring-accent1/50",
|
|
9657
9865
|
selected && "bg-surface4",
|
|
9658
9866
|
onClick && "cursor-pointer",
|
|
9659
9867
|
className
|
|
@@ -9966,10 +10174,12 @@ const Searchbar = ({ onSearch, label, placeholder, debounceMs = 300, size = "md"
|
|
|
9966
10174
|
"border border-border1 flex w-full items-center gap-2 overflow-hidden pl-2 pr-1",
|
|
9967
10175
|
formElementRadius,
|
|
9968
10176
|
formElementFocusWithin,
|
|
10177
|
+
transitions.all,
|
|
10178
|
+
"hover:border-neutral2",
|
|
9969
10179
|
searchbarSizeClasses[size]
|
|
9970
10180
|
),
|
|
9971
10181
|
children: [
|
|
9972
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "text-neutral3 h-4 w-4" }),
|
|
10182
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: cn("text-neutral3 h-4 w-4", transitions.colors) }),
|
|
9973
10183
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
9974
10184
|
/* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: id, className: "sr-only", children: label }),
|
|
9975
10185
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9979,7 +10189,7 @@ const Searchbar = ({ onSearch, label, placeholder, debounceMs = 300, size = "md"
|
|
|
9979
10189
|
type: "text",
|
|
9980
10190
|
placeholder,
|
|
9981
10191
|
className: cn(
|
|
9982
|
-
"bg-
|
|
10192
|
+
"bg-transparent text-ui-md placeholder:text-neutral3 block w-full px-2 outline-none",
|
|
9983
10193
|
searchbarSizeClasses[size]
|
|
9984
10194
|
),
|
|
9985
10195
|
name: id,
|
|
@@ -10092,16 +10302,18 @@ const TabList = ({ children, variant = "default", className }) => {
|
|
|
10092
10302
|
RadixTabs__namespace.List,
|
|
10093
10303
|
{
|
|
10094
10304
|
className: cn(
|
|
10095
|
-
"flex items-center",
|
|
10305
|
+
"flex items-center relative",
|
|
10096
10306
|
{
|
|
10097
10307
|
// variant: default
|
|
10098
10308
|
"text-ui-lg": variant === "default",
|
|
10099
10309
|
"[&>button]:py-2 [&>button]:px-6 [&>button]:font-normal [&>button]:text-neutral3 [&>button]:flex-1 [&>button]:border-b [&>button]:border-border1": variant === "default",
|
|
10100
|
-
|
|
10310
|
+
[`[&>button]:${transitions.colors} [&>button]:hover:text-neutral4`]: variant === "default",
|
|
10311
|
+
"[&>button[data-state=active]]:text-neutral5 [&>button[data-state=active]]:border-accent1": variant === "default",
|
|
10101
10312
|
// variant: buttons
|
|
10102
10313
|
"border border-border1 flex justify-stretch rounded-md overflow-hidden text-ui-md min-h-[2.5rem]": variant === "buttons",
|
|
10103
|
-
|
|
10104
|
-
"[&>button
|
|
10314
|
+
[`[&>button]:flex-1 [&>button]:py-2 [&>button]:px-4 [&>button]:text-neutral3 [&>button]:${transitions.all}`]: variant === "buttons",
|
|
10315
|
+
"[&>button]:hover:text-neutral4 [&>button]:hover:bg-surface3": variant === "buttons",
|
|
10316
|
+
"[&>button[data-state=active]]:text-neutral5 [&>button[data-state=active]]:bg-surface4 [&>button[data-state=active]]:shadow-inner": variant === "buttons"
|
|
10105
10317
|
},
|
|
10106
10318
|
className
|
|
10107
10319
|
),
|
|
@@ -10116,7 +10328,11 @@ const Tab = ({ children, value, onClick, onClose, className }) => {
|
|
|
10116
10328
|
{
|
|
10117
10329
|
value,
|
|
10118
10330
|
className: cn(
|
|
10119
|
-
"text-xs p-3 text-neutral3
|
|
10331
|
+
"text-xs p-3 text-neutral3 whitespace-nowrap flex-shrink-0 flex items-center justify-center gap-1.5",
|
|
10332
|
+
transitions.all,
|
|
10333
|
+
focusRing.visible,
|
|
10334
|
+
"hover:text-neutral4",
|
|
10335
|
+
"data-[state=active]:text-neutral5 data-[state=active]:border-b-2 data-[state=active]:border-accent1",
|
|
10120
10336
|
className
|
|
10121
10337
|
),
|
|
10122
10338
|
onClick,
|
|
@@ -10129,7 +10345,7 @@ const Tab = ({ children, value, onClick, onClose, className }) => {
|
|
|
10129
10345
|
e.stopPropagation();
|
|
10130
10346
|
onClose();
|
|
10131
10347
|
},
|
|
10132
|
-
className: "p-0.5 hover:bg-
|
|
10348
|
+
className: cn("p-0.5 hover:bg-surface4 rounded", transitions.colors, "hover:text-neutral5"),
|
|
10133
10349
|
"aria-label": "Close tab",
|
|
10134
10350
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-3 h-3" })
|
|
10135
10351
|
}
|
|
@@ -10145,7 +10361,10 @@ const TabContent = ({ children, value, className }) => {
|
|
|
10145
10361
|
{
|
|
10146
10362
|
value,
|
|
10147
10363
|
className: cn(
|
|
10148
|
-
"grid py-3 overflow-y-auto ring-offset-background
|
|
10364
|
+
"grid py-3 overflow-y-auto ring-offset-background",
|
|
10365
|
+
focusRing.visible,
|
|
10366
|
+
"data-[state=active]:animate-in data-[state=active]:fade-in-0 data-[state=active]:duration-200",
|
|
10367
|
+
"data-[state=inactive]:animate-out data-[state=inactive]:fade-out-0 data-[state=inactive]:duration-150",
|
|
10149
10368
|
className
|
|
10150
10369
|
),
|
|
10151
10370
|
children
|
|
@@ -10197,21 +10416,27 @@ const TracingRunOptions = () => {
|
|
|
10197
10416
|
] });
|
|
10198
10417
|
};
|
|
10199
10418
|
|
|
10200
|
-
|
|
10419
|
+
const sizeClasses = {
|
|
10420
|
+
sm: "w-4 h-4",
|
|
10421
|
+
md: "w-6 h-6",
|
|
10422
|
+
lg: "w-8 h-8"
|
|
10423
|
+
};
|
|
10424
|
+
function Spinner({ color, className, size = "md" }) {
|
|
10201
10425
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10202
10426
|
"svg",
|
|
10203
10427
|
{
|
|
10204
|
-
className: cn("animate-spin
|
|
10428
|
+
className: cn("animate-spin", sizeClasses[size], className),
|
|
10429
|
+
style: { animationDuration: "800ms", animationTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)" },
|
|
10205
10430
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10206
10431
|
width: "24",
|
|
10207
10432
|
height: "24",
|
|
10208
10433
|
viewBox: "0 0 24 24",
|
|
10209
10434
|
fill: "none",
|
|
10210
10435
|
stroke: "currentColor",
|
|
10211
|
-
strokeWidth: "2",
|
|
10436
|
+
strokeWidth: "2.5",
|
|
10212
10437
|
strokeLinecap: "round",
|
|
10213
10438
|
strokeLinejoin: "round",
|
|
10214
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56", stroke: color })
|
|
10439
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56", stroke: color || "currentColor", className: "text-accent1" })
|
|
10215
10440
|
}
|
|
10216
10441
|
);
|
|
10217
10442
|
}
|
|
@@ -10546,59 +10771,84 @@ function Combobox({
|
|
|
10546
10771
|
]
|
|
10547
10772
|
}
|
|
10548
10773
|
) }),
|
|
10549
|
-
/* @__PURE__ */ jsxRuntime.jsx(PopoverContent, { className: "p-0 w-fit", align: "start", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10550
|
-
|
|
10551
|
-
|
|
10552
|
-
|
|
10553
|
-
"
|
|
10554
|
-
|
|
10555
|
-
|
|
10556
|
-
|
|
10557
|
-
|
|
10558
|
-
|
|
10559
|
-
|
|
10560
|
-
|
|
10561
|
-
|
|
10562
|
-
"aria-autocomplete": "list",
|
|
10563
|
-
"aria-controls": "combobox-options",
|
|
10564
|
-
"aria-expanded": open
|
|
10565
|
-
}
|
|
10566
|
-
)
|
|
10567
|
-
] }),
|
|
10568
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10569
|
-
"div",
|
|
10570
|
-
{
|
|
10571
|
-
ref: listRef,
|
|
10572
|
-
id: "combobox-options",
|
|
10573
|
-
role: "listbox",
|
|
10574
|
-
className: "max-h-dropdown-max-height overflow-y-auto overflow-x-hidden p-1",
|
|
10575
|
-
children: filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-6 text-center text-sm", children: emptyText }) : filteredOptions.map((option, index) => {
|
|
10576
|
-
const isSelected = value === option.value;
|
|
10577
|
-
const isHighlighted = index === highlightedIndex;
|
|
10578
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10579
|
-
"div",
|
|
10774
|
+
/* @__PURE__ */ jsxRuntime.jsx(PopoverContent, { className: "p-0 w-fit", align: "start", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10775
|
+
"div",
|
|
10776
|
+
{
|
|
10777
|
+
className: cn(
|
|
10778
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-surface3 text-neutral5",
|
|
10779
|
+
"shadow-elevated",
|
|
10780
|
+
"animate-in fade-in-0 zoom-in-95 duration-150"
|
|
10781
|
+
),
|
|
10782
|
+
children: [
|
|
10783
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center border-b border-border1 px-3 py-2", transitions.colors), children: [
|
|
10784
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: cn("mr-2 h-4 w-4 shrink-0 text-neutral3", transitions.colors) }),
|
|
10785
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10786
|
+
"input",
|
|
10580
10787
|
{
|
|
10581
|
-
|
|
10582
|
-
"aria-selected": isSelected,
|
|
10788
|
+
ref: inputRef,
|
|
10583
10789
|
className: cn(
|
|
10584
|
-
"
|
|
10585
|
-
"
|
|
10586
|
-
|
|
10587
|
-
|
|
10790
|
+
"flex h-8 w-full rounded-md bg-transparent py-1 text-sm",
|
|
10791
|
+
"placeholder:text-neutral3 disabled:cursor-not-allowed disabled:opacity-50",
|
|
10792
|
+
"outline-none",
|
|
10793
|
+
transitions.colors
|
|
10588
10794
|
),
|
|
10589
|
-
|
|
10590
|
-
|
|
10591
|
-
|
|
10592
|
-
|
|
10593
|
-
|
|
10594
|
-
|
|
10595
|
-
|
|
10596
|
-
|
|
10597
|
-
|
|
10598
|
-
|
|
10599
|
-
|
|
10600
|
-
|
|
10601
|
-
|
|
10795
|
+
placeholder: searchPlaceholder,
|
|
10796
|
+
value: search,
|
|
10797
|
+
onChange: (e) => setSearch(e.target.value),
|
|
10798
|
+
onKeyDown: handleKeyDown,
|
|
10799
|
+
role: "combobox",
|
|
10800
|
+
"aria-autocomplete": "list",
|
|
10801
|
+
"aria-controls": "combobox-options",
|
|
10802
|
+
"aria-expanded": open
|
|
10803
|
+
}
|
|
10804
|
+
)
|
|
10805
|
+
] }),
|
|
10806
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10807
|
+
"div",
|
|
10808
|
+
{
|
|
10809
|
+
ref: listRef,
|
|
10810
|
+
id: "combobox-options",
|
|
10811
|
+
role: "listbox",
|
|
10812
|
+
className: "max-h-dropdown-max-height overflow-y-auto overflow-x-hidden p-1",
|
|
10813
|
+
children: filteredOptions.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-6 text-center text-sm text-neutral3", children: emptyText }) : filteredOptions.map((option, index) => {
|
|
10814
|
+
const isSelected = value === option.value;
|
|
10815
|
+
const isHighlighted = index === highlightedIndex;
|
|
10816
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10817
|
+
"div",
|
|
10818
|
+
{
|
|
10819
|
+
role: "option",
|
|
10820
|
+
"aria-selected": isSelected,
|
|
10821
|
+
className: cn(
|
|
10822
|
+
"relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm",
|
|
10823
|
+
transitions.colors,
|
|
10824
|
+
"hover:bg-surface5 hover:text-neutral5",
|
|
10825
|
+
isHighlighted && "bg-surface5 text-neutral5",
|
|
10826
|
+
isSelected && !isHighlighted && "bg-accent1Dark text-accent1"
|
|
10827
|
+
),
|
|
10828
|
+
onClick: () => handleSelect(option.value),
|
|
10829
|
+
onMouseEnter: () => setHighlightedIndex(index),
|
|
10830
|
+
children: [
|
|
10831
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10832
|
+
lucideReact.Check,
|
|
10833
|
+
{
|
|
10834
|
+
className: cn(
|
|
10835
|
+
"mr-2 h-4 w-4",
|
|
10836
|
+
transitions.opacity,
|
|
10837
|
+
isSelected ? "opacity-100 text-accent1" : "opacity-0"
|
|
10838
|
+
)
|
|
10839
|
+
}
|
|
10840
|
+
),
|
|
10841
|
+
option.label
|
|
10842
|
+
]
|
|
10843
|
+
},
|
|
10844
|
+
option.value
|
|
10845
|
+
);
|
|
10846
|
+
})
|
|
10847
|
+
}
|
|
10848
|
+
)
|
|
10849
|
+
]
|
|
10850
|
+
}
|
|
10851
|
+
) })
|
|
10602
10852
|
] });
|
|
10603
10853
|
}
|
|
10604
10854
|
|
|
@@ -10805,7 +11055,7 @@ const LoadingBadge = () => {
|
|
|
10805
11055
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10806
11056
|
BadgeWrapper,
|
|
10807
11057
|
{
|
|
10808
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(Spinner, { color:
|
|
11058
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(Spinner, { color: spacings.Colors.neutral3 }),
|
|
10809
11059
|
title: /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { className: "ml-2 w-12 h-2" }),
|
|
10810
11060
|
collapsible: false
|
|
10811
11061
|
}
|
|
@@ -14120,22 +14370,19 @@ function EntryListEntry({ entry, isSelected, onClick, children, columns }) {
|
|
|
14120
14370
|
className: cn(
|
|
14121
14371
|
"border-t text-neutral5 border-border1 last:border-b-0 text-ui-md",
|
|
14122
14372
|
"[&:last-child>button]:rounded-b-lg",
|
|
14373
|
+
transitions.colors,
|
|
14123
14374
|
{
|
|
14124
|
-
"bg-
|
|
14375
|
+
"bg-accent1Dark": isSelected
|
|
14125
14376
|
}
|
|
14126
14377
|
),
|
|
14127
14378
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14128
14379
|
"button",
|
|
14129
14380
|
{
|
|
14130
14381
|
onClick: handleClick,
|
|
14131
|
-
className: cn(
|
|
14132
|
-
|
|
14133
|
-
"
|
|
14134
|
-
|
|
14135
|
-
// hover effect only not for skeleton and selected
|
|
14136
|
-
"hover:bg-surface4": entry && !isSelected
|
|
14137
|
-
}
|
|
14138
|
-
),
|
|
14382
|
+
className: cn("grid w-full px-6 gap-6 text-left items-center min-h-12", transitions.colors, focusRing.visible, {
|
|
14383
|
+
// hover effect only not for skeleton and selected
|
|
14384
|
+
"hover:bg-surface4": entry && !isSelected
|
|
14385
|
+
}),
|
|
14139
14386
|
style: { gridTemplateColumns: getColumnTemplate(columns) },
|
|
14140
14387
|
disabled: !entry,
|
|
14141
14388
|
children
|
|
@@ -14379,18 +14626,28 @@ function SideDialogRoot({
|
|
|
14379
14626
|
}) {
|
|
14380
14627
|
const isConfirmation = variant === "confirmation";
|
|
14381
14628
|
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { open: isOpen, onOpenChange: onClose, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Portal, { children: [
|
|
14382
|
-
!isConfirmation && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14629
|
+
!isConfirmation && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14630
|
+
DialogPrimitive__namespace.Overlay,
|
|
14631
|
+
{
|
|
14632
|
+
className: cn(
|
|
14633
|
+
"bg-overlay backdrop-blur-sm top-0 bottom-0 right-0 left-0 fixed z-50",
|
|
14634
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200",
|
|
14635
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-150"
|
|
14636
|
+
)
|
|
14637
|
+
}
|
|
14638
|
+
),
|
|
14383
14639
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14384
14640
|
DialogPrimitive__namespace.Content,
|
|
14385
14641
|
{
|
|
14386
14642
|
className: cn(
|
|
14387
|
-
"fixed top-0 bottom-0 right-0 border-l border-border2 z-50 bg-surface2
|
|
14643
|
+
"fixed top-0 bottom-0 right-0 border-l border-border2 z-50 bg-surface2",
|
|
14644
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-right-1/4 data-[state=closed]:duration-200",
|
|
14388
14645
|
{
|
|
14389
14646
|
"w-[75vw] 2xl:w-[65vw] 4xl:w-[55vw]": level === 1,
|
|
14390
14647
|
"w-[70vw] 2xl:w-[59vw] 4xl:w-[48vw]": level === 2,
|
|
14391
14648
|
"w-[65vw] 2xl:w-[53vw] 4xl:w-[41vw]": level === 3,
|
|
14392
|
-
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-right-1/4
|
|
14393
|
-
"bg-surface2/70": isConfirmation
|
|
14649
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-right-1/4 data-[state=open]:duration-300 shadow-dialog": !isConfirmation,
|
|
14650
|
+
"bg-surface2/70 backdrop-blur-sm": isConfirmation
|
|
14394
14651
|
},
|
|
14395
14652
|
className
|
|
14396
14653
|
),
|
|
@@ -14403,8 +14660,9 @@ function SideDialogRoot({
|
|
|
14403
14660
|
"button",
|
|
14404
14661
|
{
|
|
14405
14662
|
className: cn(
|
|
14406
|
-
"flex appearance-none items-center justify-center rounded-bl-lg h-[3.5rem] w-[3.5rem] absolute top-0 left-[-3.5rem] bg-surface2 text-
|
|
14407
|
-
|
|
14663
|
+
"flex appearance-none items-center justify-center rounded-bl-lg h-[3.5rem] w-[3.5rem] absolute top-0 left-[-3.5rem] bg-surface2 text-neutral3 border-l border-b border-border2",
|
|
14664
|
+
transitions.all,
|
|
14665
|
+
"hover:bg-surface4 hover:text-neutral5"
|
|
14408
14666
|
),
|
|
14409
14667
|
"aria-label": "Close",
|
|
14410
14668
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsRightIcon, {})
|
|
@@ -15629,7 +15887,13 @@ const Switch = React__namespace.forwardRef(({ className, ...props }, ref) => /*
|
|
|
15629
15887
|
SwitchPrimitives__namespace.Root,
|
|
15630
15888
|
{
|
|
15631
15889
|
className: cn(
|
|
15632
|
-
"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent
|
|
15890
|
+
"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent",
|
|
15891
|
+
transitions.all,
|
|
15892
|
+
formElementFocus,
|
|
15893
|
+
"hover:brightness-110",
|
|
15894
|
+
"disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:brightness-100",
|
|
15895
|
+
"data-[state=checked]:bg-accent1 data-[state=checked]:shadow-glow-accent1",
|
|
15896
|
+
"data-[state=unchecked]:bg-neutral2",
|
|
15633
15897
|
className
|
|
15634
15898
|
),
|
|
15635
15899
|
...props,
|
|
@@ -15638,7 +15902,10 @@ const Switch = React__namespace.forwardRef(({ className, ...props }, ref) => /*
|
|
|
15638
15902
|
SwitchPrimitives__namespace.Thumb,
|
|
15639
15903
|
{
|
|
15640
15904
|
className: cn(
|
|
15641
|
-
"pointer-events-none block h-4 w-4 rounded-full bg-white shadow-
|
|
15905
|
+
"pointer-events-none block h-4 w-4 rounded-full bg-white shadow-md",
|
|
15906
|
+
"transition-all duration-normal ease-out-custom",
|
|
15907
|
+
"data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0",
|
|
15908
|
+
"data-[state=checked]:shadow-lg"
|
|
15642
15909
|
)
|
|
15643
15910
|
}
|
|
15644
15911
|
)
|
|
@@ -16073,7 +16340,11 @@ const ThreadLink = ({ children, as: Component = "a", href, className, prefetch,
|
|
|
16073
16340
|
href,
|
|
16074
16341
|
prefetch,
|
|
16075
16342
|
to,
|
|
16076
|
-
className: cn(
|
|
16343
|
+
className: cn(
|
|
16344
|
+
"text-ui-sm flex h-full w-full flex-col justify-center font-medium cursor-pointer",
|
|
16345
|
+
transitions.colors,
|
|
16346
|
+
className
|
|
16347
|
+
),
|
|
16077
16348
|
children
|
|
16078
16349
|
}
|
|
16079
16350
|
);
|
|
@@ -16086,8 +16357,10 @@ const ThreadItem = ({ children, isActive, className }) => {
|
|
|
16086
16357
|
"li",
|
|
16087
16358
|
{
|
|
16088
16359
|
className: cn(
|
|
16089
|
-
"border-b border-border1
|
|
16090
|
-
|
|
16360
|
+
"border-b border-border1 group flex h-[54px] items-center justify-between gap-2 px-3 py-2",
|
|
16361
|
+
transitions.colors,
|
|
16362
|
+
"hover:bg-surface3",
|
|
16363
|
+
isActive && "bg-accent1Dark",
|
|
16091
16364
|
className
|
|
16092
16365
|
),
|
|
16093
16366
|
children
|
|
@@ -16098,9 +16371,15 @@ const ThreadDeleteButton = ({ onClick }) => {
|
|
|
16098
16371
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16099
16372
|
Button,
|
|
16100
16373
|
{
|
|
16101
|
-
|
|
16374
|
+
variant: "ghost",
|
|
16375
|
+
className: cn(
|
|
16376
|
+
"shrink-0 opacity-0",
|
|
16377
|
+
transitions.all,
|
|
16378
|
+
"group-focus-within:opacity-100 group-hover:opacity-100",
|
|
16379
|
+
"hover:bg-surface4 hover:text-accent2"
|
|
16380
|
+
),
|
|
16102
16381
|
onClick,
|
|
16103
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-label": "delete thread", className: "text-neutral3" }) })
|
|
16382
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-label": "delete thread", className: "text-neutral3 hover:text-accent2 transition-colors" }) })
|
|
16104
16383
|
}
|
|
16105
16384
|
);
|
|
16106
16385
|
};
|
|
@@ -16119,7 +16398,9 @@ const AlertDialogOverlay = React__namespace.forwardRef(({ className, ...props },
|
|
|
16119
16398
|
AlertDialogPrimitive__namespace.Overlay,
|
|
16120
16399
|
{
|
|
16121
16400
|
className: cn(
|
|
16122
|
-
"fixed inset-0 z-50 bg-
|
|
16401
|
+
"fixed inset-0 z-50 bg-overlay backdrop-blur-sm",
|
|
16402
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200",
|
|
16403
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-150",
|
|
16123
16404
|
className
|
|
16124
16405
|
),
|
|
16125
16406
|
...props,
|
|
@@ -16134,7 +16415,9 @@ const AlertDialogContent = React__namespace.forwardRef(({ className, ...props },
|
|
|
16134
16415
|
{
|
|
16135
16416
|
ref,
|
|
16136
16417
|
className: cn(
|
|
16137
|
-
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border1 bg-surface3 p-6 shadow-
|
|
16418
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border1 bg-surface3 p-6 shadow-dialog rounded-md",
|
|
16419
|
+
"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] data-[state=open]:duration-200",
|
|
16420
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=closed]:duration-150",
|
|
16138
16421
|
className
|
|
16139
16422
|
),
|
|
16140
16423
|
...props
|
|
@@ -17926,30 +18209,53 @@ function ProcessStepListItem({ stepId, step, isActive, position }) {
|
|
|
17926
18209
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17927
18210
|
"div",
|
|
17928
18211
|
{
|
|
17929
|
-
className: cn("grid gap-6 grid-cols-[1fr_auto] py-3 px-4 rounded-lg", {
|
|
17930
|
-
"border border-dashed border-
|
|
18212
|
+
className: cn("grid gap-6 grid-cols-[1fr_auto] py-3 px-4 rounded-lg", transitions.all, {
|
|
18213
|
+
"border border-dashed border-neutral2 bg-surface3": isActive
|
|
17931
18214
|
}),
|
|
17932
18215
|
children: [
|
|
17933
18216
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[auto_1fr] gap-2", children: [
|
|
17934
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
17935
|
-
|
|
17936
|
-
|
|
17937
|
-
|
|
18217
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
18218
|
+
"span",
|
|
18219
|
+
{
|
|
18220
|
+
className: cn("text-ui-md min-w-6 flex justify-end", transitions.colors, {
|
|
18221
|
+
"text-neutral5": isActive || step.status === "success",
|
|
18222
|
+
"text-neutral3": !isActive && step.status !== "success"
|
|
18223
|
+
}),
|
|
18224
|
+
children: [
|
|
18225
|
+
position,
|
|
18226
|
+
"."
|
|
18227
|
+
]
|
|
18228
|
+
}
|
|
18229
|
+
),
|
|
17938
18230
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17939
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17940
|
-
|
|
18231
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18232
|
+
"h4",
|
|
18233
|
+
{
|
|
18234
|
+
className: cn("text-ui-md", transitions.colors, {
|
|
18235
|
+
"text-neutral5": isActive || step.status === "success",
|
|
18236
|
+
"text-neutral3": !isActive && step.status !== "success"
|
|
18237
|
+
}),
|
|
18238
|
+
children: formatStepTitle(stepId)
|
|
18239
|
+
}
|
|
18240
|
+
),
|
|
18241
|
+
step.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-md text-neutral2 -mt-0.5", children: step.description })
|
|
17941
18242
|
] })
|
|
17942
18243
|
] }),
|
|
17943
18244
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17944
18245
|
"div",
|
|
17945
18246
|
{
|
|
17946
|
-
className: cn(
|
|
17947
|
-
"
|
|
17948
|
-
|
|
17949
|
-
|
|
17950
|
-
|
|
17951
|
-
|
|
17952
|
-
|
|
18247
|
+
className: cn(
|
|
18248
|
+
"w-[1.75rem] h-[1.75rem] rounded-full flex items-center justify-center self-center",
|
|
18249
|
+
transitions.all,
|
|
18250
|
+
{
|
|
18251
|
+
"border border-neutral2 border-dashed": step.status === "pending",
|
|
18252
|
+
"[&>svg]:text-white [&>svg]:w-[1rem] [&>svg]:h-[1rem]": step.status !== "running",
|
|
18253
|
+
"w-[1.75rem] h-[1.75rem]": step.status === "running",
|
|
18254
|
+
"bg-accent1Dark shadow-glow-accent1": step.status === "success",
|
|
18255
|
+
"bg-accent2Dark shadow-glow-accent2": step.status === "failed",
|
|
18256
|
+
"scale-110": step.status === "success" || step.status === "failed"
|
|
18257
|
+
}
|
|
18258
|
+
),
|
|
17953
18259
|
children: getStatusIcon(step.status)
|
|
17954
18260
|
}
|
|
17955
18261
|
)
|
|
@@ -17979,19 +18285,20 @@ function ProcessStepProgressBar({ steps }) {
|
|
|
17979
18285
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17980
18286
|
"div",
|
|
17981
18287
|
{
|
|
17982
|
-
className: cn("flex justify-end items-center relative h-[2rem]
|
|
17983
|
-
"bg-
|
|
18288
|
+
className: cn("flex justify-end items-center relative h-[2rem]", transitions.colors, {
|
|
18289
|
+
"bg-accent1Dark": step.status === "success" && steps?.[idx - 1]?.status === "success"
|
|
17984
18290
|
}),
|
|
17985
18291
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17986
18292
|
"div",
|
|
17987
18293
|
{
|
|
17988
18294
|
className: cn(
|
|
17989
18295
|
"w-[2rem] h-[2rem] rounded-full flex items-center justify-center self-center absolute right-0 translate-x-[50%] bg-surface3 z-10 text-neutral3 font-bold text-ui-sm",
|
|
18296
|
+
transitions.all,
|
|
17990
18297
|
{
|
|
17991
|
-
"border border-
|
|
17992
|
-
"[&>svg]:text-
|
|
17993
|
-
"bg-
|
|
17994
|
-
"bg-
|
|
18298
|
+
"border border-neutral2 border-dashed": step.status === "pending",
|
|
18299
|
+
"[&>svg]:text-surface1 [&>svg]:w-[1.1rem] [&>svg]:h-[1.1rem]": step.status !== "running",
|
|
18300
|
+
"bg-accent1Dark text-white shadow-glow-accent1 scale-110": step.status === "success",
|
|
18301
|
+
"bg-accent2Dark text-white shadow-glow-accent2 scale-110": step.status === "failed"
|
|
17995
18302
|
}
|
|
17996
18303
|
),
|
|
17997
18304
|
children: step.status === "running" ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, {}) : idx + 1
|
|
@@ -18001,7 +18308,7 @@ function ProcessStepProgressBar({ steps }) {
|
|
|
18001
18308
|
step.id
|
|
18002
18309
|
);
|
|
18003
18310
|
}) }),
|
|
18004
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-neutral3 text-center", children: [
|
|
18311
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-xs text-neutral3 text-center", transitions.colors), children: [
|
|
18005
18312
|
completedSteps,
|
|
18006
18313
|
" of ",
|
|
18007
18314
|
totalSteps,
|
|
@@ -19874,46 +20181,67 @@ function Notification({
|
|
|
19874
20181
|
type = "info"
|
|
19875
20182
|
}) {
|
|
19876
20183
|
const [localIsVisible, setLocalIsVisible] = React.useState(isVisible);
|
|
20184
|
+
const [isAnimatingOut, setIsAnimatingOut] = React.useState(false);
|
|
19877
20185
|
React.useEffect(() => {
|
|
19878
20186
|
if (dismissible && autoDismiss && isVisible) {
|
|
19879
20187
|
const timer = setTimeout(() => {
|
|
19880
|
-
|
|
20188
|
+
handleDismiss();
|
|
19881
20189
|
}, dismissTime);
|
|
19882
20190
|
return () => clearTimeout(timer);
|
|
19883
20191
|
}
|
|
19884
|
-
}, [autoDismiss, isVisible, dismissTime]);
|
|
20192
|
+
}, [autoDismiss, isVisible, dismissTime, dismissible]);
|
|
19885
20193
|
React.useEffect(() => {
|
|
19886
|
-
|
|
20194
|
+
if (isVisible) {
|
|
20195
|
+
setIsAnimatingOut(false);
|
|
20196
|
+
setLocalIsVisible(true);
|
|
20197
|
+
}
|
|
19887
20198
|
}, [isVisible]);
|
|
20199
|
+
const handleDismiss = () => {
|
|
20200
|
+
setIsAnimatingOut(true);
|
|
20201
|
+
setTimeout(() => {
|
|
20202
|
+
setLocalIsVisible(false);
|
|
20203
|
+
setIsAnimatingOut(false);
|
|
20204
|
+
}, 200);
|
|
20205
|
+
};
|
|
19888
20206
|
if (!localIsVisible) return null;
|
|
20207
|
+
const typeStyles = {
|
|
20208
|
+
info: "bg-surface4 border-border1",
|
|
20209
|
+
error: "bg-accent2Darker border-accent2/30",
|
|
20210
|
+
success: "bg-accent1Darker border-accent1/30",
|
|
20211
|
+
warning: "bg-accent6Darker border-accent6/30"
|
|
20212
|
+
};
|
|
20213
|
+
const iconStyles = {
|
|
20214
|
+
info: "text-accent5",
|
|
20215
|
+
error: "text-accent2",
|
|
20216
|
+
success: "text-accent1",
|
|
20217
|
+
warning: "text-accent6"
|
|
20218
|
+
};
|
|
19889
20219
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19890
20220
|
"div",
|
|
19891
20221
|
{
|
|
19892
20222
|
className: cn(
|
|
19893
|
-
"grid grid-cols-[
|
|
19894
|
-
|
|
19895
|
-
|
|
19896
|
-
|
|
20223
|
+
"grid grid-cols-[auto_1fr_auto] gap-3 rounded-lg border p-4 text-ui-md text-neutral4 items-start",
|
|
20224
|
+
"shadow-card",
|
|
20225
|
+
transitions.all,
|
|
20226
|
+
isAnimatingOut ? "animate-out fade-out-0 slide-out-to-right-2 duration-200" : "animate-in fade-in-0 slide-in-from-right-2 duration-300",
|
|
20227
|
+
typeStyles[type],
|
|
19897
20228
|
className
|
|
19898
20229
|
),
|
|
19899
20230
|
children: [
|
|
19900
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19901
|
-
|
|
20231
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex-shrink-0 mt-0.5", iconStyles[type]), children: type === "error" || type === "warning" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangleIcon, { className: "h-4 w-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.InfoIcon, { className: "h-4 w-4" }) }),
|
|
20232
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-2 items-start min-w-0", children }),
|
|
20233
|
+
dismissible && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20234
|
+
Button,
|
|
19902
20235
|
{
|
|
19903
|
-
|
|
19904
|
-
|
|
19905
|
-
|
|
19906
|
-
|
|
19907
|
-
|
|
19908
|
-
}
|
|
19909
|
-
|
|
19910
|
-
children
|
|
20236
|
+
variant: "ghost",
|
|
20237
|
+
className: cn("h-6 w-6 p-0 flex-shrink-0", transitions.colors, "hover:bg-surface5"),
|
|
20238
|
+
onClick: handleDismiss,
|
|
20239
|
+
children: [
|
|
20240
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "h-4 w-4" }),
|
|
20241
|
+
/* @__PURE__ */ jsxRuntime.jsx(VisuallyHidden.VisuallyHidden, { children: "Dismiss" })
|
|
20242
|
+
]
|
|
19911
20243
|
}
|
|
19912
|
-
)
|
|
19913
|
-
dismissible && /* @__PURE__ */ jsxRuntime.jsxs(Button, { onClick: () => setLocalIsVisible(false), children: [
|
|
19914
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
|
|
19915
|
-
/* @__PURE__ */ jsxRuntime.jsx(VisuallyHidden.VisuallyHidden, { children: "Dismiss" })
|
|
19916
|
-
] })
|
|
20244
|
+
)
|
|
19917
20245
|
]
|
|
19918
20246
|
}
|
|
19919
20247
|
);
|
|
@@ -20019,7 +20347,8 @@ const Crumb = ({ className, as, isCurrent, action, ...props }) => {
|
|
|
20019
20347
|
"aria-current": isCurrent ? "page" : void 0,
|
|
20020
20348
|
className: cn(
|
|
20021
20349
|
"text-ui-md leading-ui-md flex items-center gap-2",
|
|
20022
|
-
|
|
20350
|
+
transitions.colors,
|
|
20351
|
+
isCurrent ? "text-white" : "text-neutral3 hover:text-neutral5",
|
|
20023
20352
|
className
|
|
20024
20353
|
),
|
|
20025
20354
|
...props
|
|
@@ -20027,7 +20356,7 @@ const Crumb = ({ className, as, isCurrent, action, ...props }) => {
|
|
|
20027
20356
|
),
|
|
20028
20357
|
action
|
|
20029
20358
|
] }),
|
|
20030
|
-
!isCurrent && /* @__PURE__ */ jsxRuntime.jsx("li", { role: "separator", className: "flex h-full items-center", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "text-
|
|
20359
|
+
!isCurrent && /* @__PURE__ */ jsxRuntime.jsx("li", { role: "separator", className: "flex h-full items-center", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: cn("text-neutral2", transitions.colors), children: /* @__PURE__ */ jsxRuntime.jsx(SlashIcon, {}) }) })
|
|
20031
20360
|
] });
|
|
20032
20361
|
};
|
|
20033
20362
|
|
|
@@ -20096,12 +20425,24 @@ const LogoWithoutText = (props) => /* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns
|
|
|
20096
20425
|
) });
|
|
20097
20426
|
|
|
20098
20427
|
const themeClasses = {
|
|
20099
|
-
light: "bg-gray-100 border-gray-300 text-gray-700",
|
|
20100
|
-
dark: "bg-surface4 border-border1 text-
|
|
20428
|
+
light: "bg-gray-100 border-gray-300 text-gray-700 shadow-[0_1px_0_rgba(0,0,0,0.1)]",
|
|
20429
|
+
dark: "bg-surface4 border-border1 text-neutral5 shadow-[0_1px_0_rgba(0,0,0,0.3)]"
|
|
20101
20430
|
};
|
|
20102
|
-
const Kbd = ({ children, theme = "dark" }) => {
|
|
20431
|
+
const Kbd = ({ children, theme = "dark", className }) => {
|
|
20103
20432
|
const themeClass = themeClasses[theme];
|
|
20104
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20433
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20434
|
+
"kbd",
|
|
20435
|
+
{
|
|
20436
|
+
className: cn(
|
|
20437
|
+
"border rounded-md px-1.5 py-0.5 font-mono text-ui-sm inline-flex items-center justify-center min-w-[1.5rem]",
|
|
20438
|
+
transitions.transform,
|
|
20439
|
+
"active:scale-95 active:shadow-none",
|
|
20440
|
+
themeClass,
|
|
20441
|
+
className
|
|
20442
|
+
),
|
|
20443
|
+
children
|
|
20444
|
+
}
|
|
20445
|
+
);
|
|
20105
20446
|
};
|
|
20106
20447
|
|
|
20107
20448
|
const SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
@@ -20171,6 +20512,8 @@ function MainSidebarRoot({ children, className }) {
|
|
|
20171
20512
|
{
|
|
20172
20513
|
className: cn(
|
|
20173
20514
|
"flex flex-col h-full px-4 relative overflow-y-auto",
|
|
20515
|
+
// Smooth width transition for collapse/expand
|
|
20516
|
+
"transition-all duration-slow ease-out-custom",
|
|
20174
20517
|
{
|
|
20175
20518
|
"lg:min-w-52 xl:min-w-56 2xl:min-w-60 3xl:min-w-64 4xl:min-w-72": !isCollapsed
|
|
20176
20519
|
},
|
|
@@ -20187,8 +20530,10 @@ function MainSidebarRoot({ children, className }) {
|
|
|
20187
20530
|
onClick: toggleSidebar,
|
|
20188
20531
|
className: cn(
|
|
20189
20532
|
"inline-flex w-auto items-center text-neutral3 h-8 px-3 rounded-md ml-auto",
|
|
20190
|
-
"hover:bg-surface4",
|
|
20191
|
-
"
|
|
20533
|
+
"hover:bg-surface4 hover:text-neutral5",
|
|
20534
|
+
"transition-all duration-normal ease-out-custom",
|
|
20535
|
+
"focus:outline-none focus:ring-1 focus:ring-accent1 focus:shadow-focus-ring",
|
|
20536
|
+
"[&_svg]:w-[1rem] [&_svg]:h-[1rem] [&_svg]:text-neutral3 [&_svg]:transition-transform [&_svg]:duration-normal",
|
|
20192
20537
|
{
|
|
20193
20538
|
"ml-auto": !isCollapsed
|
|
20194
20539
|
}
|
|
@@ -20256,15 +20601,23 @@ function MainSidebarNavLink({
|
|
|
20256
20601
|
"li",
|
|
20257
20602
|
{
|
|
20258
20603
|
className: cn(
|
|
20259
|
-
"flex",
|
|
20604
|
+
"flex relative",
|
|
20605
|
+
// Base link styles with smooth transitions
|
|
20260
20606
|
"[&>a]:flex [&>a]:items-center [&>a]:min-h-8 [&>a]:gap-2.5 [&>a]:text-ui-md [&>a]:text-neutral3 [&>a]:py-1.5 [&>a]:px-3 [&>a]:w-full [&>a]:rounded-lg [&>a]:justify-center",
|
|
20261
|
-
"[
|
|
20607
|
+
"[&>a]:transition-all [&>a]:duration-normal [&>a]:ease-out-custom",
|
|
20608
|
+
// Icon styles with transitions
|
|
20609
|
+
"[&_svg]:w-4 [&_svg]:h-4 [&_svg]:text-neutral3/60 [&_svg]:transition-colors [&_svg]:duration-normal",
|
|
20610
|
+
// Hover states
|
|
20262
20611
|
"[&>a:hover]:bg-surface4 [&>a:hover]:text-neutral5 [&>a:hover_svg]:text-neutral3",
|
|
20263
20612
|
{
|
|
20613
|
+
// Active state with left indicator bar
|
|
20264
20614
|
"[&>a]:text-neutral5 [&>a]:bg-surface3": isActive,
|
|
20265
20615
|
"[&_svg]:text-neutral5": isActive,
|
|
20616
|
+
// Active indicator bar
|
|
20617
|
+
"before:absolute before:left-0 before:top-1/2 before:-translate-y-1/2 before:w-0.5 before:h-5 before:bg-accent1 before:rounded-r-full before:transition-all before:duration-normal": isActive && !isCollapsed,
|
|
20266
20618
|
"[&>a]:justify-start": !isCollapsed,
|
|
20267
20619
|
"[&_svg]:text-neutral3": isCollapsed,
|
|
20620
|
+
// Featured variant
|
|
20268
20621
|
"[&>a]:rounded-md [&>a]:my-2 [&>a]:bg-accent1/75 [&>a:hover]:bg-accent1/85 [&>a]:text-black [&>a:hover]:text-black": isFeatured,
|
|
20269
20622
|
"[&_svg]:text-black/75 [&>a:hover_svg]:text-black": isFeatured
|
|
20270
20623
|
},
|