@almadar/ui 5.122.14 → 5.124.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{TraitProvider-YkK6tXDw.d.cts → TraitProvider-Ch79cUcb.d.cts} +6 -1
- package/dist/{TraitProvider-YkK6tXDw.d.ts → TraitProvider-Ch79cUcb.d.ts} +6 -1
- package/dist/{UserContext-bziZwgFL.d.cts → UserContext-BKckAUv7.d.cts} +5 -5
- package/dist/{UserContext-bziZwgFL.d.ts → UserContext-BKckAUv7.d.ts} +5 -5
- package/dist/avl/index.cjs +354 -234
- package/dist/avl/index.js +356 -236
- package/dist/components/index.cjs +273 -198
- package/dist/components/index.d.cts +18 -12
- package/dist/components/index.d.ts +18 -12
- package/dist/components/index.js +273 -198
- package/dist/context/index.cjs +34 -66
- package/dist/context/index.d.cts +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.js +34 -66
- package/dist/hooks/index.cjs +8 -0
- package/dist/hooks/index.js +8 -0
- package/dist/lib/drawable/three/index.cjs +6 -0
- package/dist/lib/drawable/three/index.js +6 -0
- package/dist/marketing/index.cjs +7 -0
- package/dist/marketing/index.js +7 -0
- package/dist/providers/index.cjs +343 -217
- package/dist/providers/index.d.cts +6 -6
- package/dist/providers/index.d.ts +6 -6
- package/dist/providers/index.js +343 -217
- package/dist/runtime/index.cjs +347 -227
- package/dist/runtime/index.d.cts +4 -2
- package/dist/runtime/index.d.ts +4 -2
- package/dist/runtime/index.js +349 -229
- package/package.json +8 -7
- package/themes/_contract.md +2 -0
- package/themes/almadar-website.css +3 -3
- package/themes/almadar.css +4 -4
- package/themes/bloomberg-dense.css +2 -2
- package/themes/clay.css +417 -0
- package/themes/corporate.css +411 -0
- package/themes/game-adventure.css +3 -3
- package/themes/game-rpg.css +2 -2
- package/themes/game-sci-fi.css +1 -1
- package/themes/game-ui-pack.css +2 -2
- package/themes/gazette.css +2 -2
- package/themes/glass.css +428 -0
- package/themes/index.css +9 -13
- package/themes/kiosk.css +5 -5
- package/themes/linear-clean.css +1 -1
- package/themes/minimalist.css +2 -2
- package/themes/neon.css +3 -3
- package/themes/notion-editorial.css +1 -1
- package/themes/prism.css +3 -3
- package/themes/retro.css +410 -0
- package/themes/terminal.css +1 -1
- package/themes/trait-wars.css +8 -8
- package/themes/wireframe.css +2 -2
- package/themes/arctic.css +0 -235
- package/themes/copper.css +0 -235
- package/themes/ember.css +0 -238
- package/themes/forest.css +0 -238
- package/themes/lavender.css +0 -233
- package/themes/midnight.css +0 -234
- package/themes/ocean.css +0 -238
- package/themes/rose.css +0 -233
- package/themes/sand.css +0 -234
- package/themes/slate.css +0 -233
- package/themes/sunset.css +0 -238
|
@@ -1848,6 +1848,7 @@ var init_Button = __esm({
|
|
|
1848
1848
|
"button",
|
|
1849
1849
|
{
|
|
1850
1850
|
ref,
|
|
1851
|
+
type: "button",
|
|
1851
1852
|
disabled: disabled || isLoading,
|
|
1852
1853
|
className: cn(
|
|
1853
1854
|
"relative inline-flex items-center justify-center gap-2",
|
|
@@ -3925,15 +3926,15 @@ var init_TextHighlight = __esm({
|
|
|
3925
3926
|
const typeStyles = {
|
|
3926
3927
|
question: cn(
|
|
3927
3928
|
// Blue border for questions
|
|
3928
|
-
"bg-card border-b-2 border-primary
|
|
3929
|
+
"bg-card border-b-2 border-primary",
|
|
3929
3930
|
"hover:bg-muted",
|
|
3930
|
-
isActive && "bg-primary
|
|
3931
|
+
isActive && "bg-primary/10 ring-2 ring-primary"
|
|
3931
3932
|
),
|
|
3932
3933
|
note: cn(
|
|
3933
3934
|
// Yellow border for notes
|
|
3934
|
-
"bg-card border-b-2 border-
|
|
3935
|
+
"bg-card border-b-2 border-warning",
|
|
3935
3936
|
"hover:bg-muted",
|
|
3936
|
-
isActive && "bg-
|
|
3937
|
+
isActive && "bg-warning/10 ring-2 ring-warning"
|
|
3937
3938
|
)
|
|
3938
3939
|
};
|
|
3939
3940
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4014,6 +4015,11 @@ var init_Typography = __esm({
|
|
|
4014
4015
|
inherit: "text-inherit"
|
|
4015
4016
|
};
|
|
4016
4017
|
weightStyles = {
|
|
4018
|
+
// Neutral: an atom default of "none" must not override the variant's baked
|
|
4019
|
+
// weight (C-PATTERN-ENUM-BLOCKS-NEUTRAL-OVERRIDE — `variant={h2}` rendered
|
|
4020
|
+
// tiny because the ui-typography atom's `weight: light`/`size: xs` defaults
|
|
4021
|
+
// clobbered every variant).
|
|
4022
|
+
none: "",
|
|
4017
4023
|
light: "font-light",
|
|
4018
4024
|
normal: "font-normal",
|
|
4019
4025
|
medium: "font-medium",
|
|
@@ -4039,6 +4045,7 @@ var init_Typography = __esm({
|
|
|
4039
4045
|
label: "span"
|
|
4040
4046
|
};
|
|
4041
4047
|
typographySizeStyles = {
|
|
4048
|
+
none: "",
|
|
4042
4049
|
xs: "text-xs",
|
|
4043
4050
|
sm: "text-sm",
|
|
4044
4051
|
md: "text-base",
|
|
@@ -4535,7 +4542,7 @@ function DayCell({
|
|
|
4535
4542
|
{
|
|
4536
4543
|
className: cn(
|
|
4537
4544
|
"p-2 text-center cursor-pointer hover:bg-muted transition-colors",
|
|
4538
|
-
isToday && "bg-
|
|
4545
|
+
isToday && "bg-primary/10",
|
|
4539
4546
|
className
|
|
4540
4547
|
),
|
|
4541
4548
|
onClick: handleClick,
|
|
@@ -4546,7 +4553,7 @@ function DayCell({
|
|
|
4546
4553
|
variant: "small",
|
|
4547
4554
|
className: cn(
|
|
4548
4555
|
"font-medium",
|
|
4549
|
-
isToday ? "text-
|
|
4556
|
+
isToday ? "text-primary" : "text-muted-foreground"
|
|
4550
4557
|
),
|
|
4551
4558
|
children: dayAbbr
|
|
4552
4559
|
}
|
|
@@ -4558,7 +4565,7 @@ function DayCell({
|
|
|
4558
4565
|
rounded: "full",
|
|
4559
4566
|
className: cn(
|
|
4560
4567
|
"h-8 w-8 mx-auto items-center justify-center",
|
|
4561
|
-
isToday && "bg-
|
|
4568
|
+
isToday && "bg-primary text-primary-foreground"
|
|
4562
4569
|
),
|
|
4563
4570
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "font-semibold", children: safeDate.getDate() })
|
|
4564
4571
|
}
|
|
@@ -7873,19 +7880,19 @@ var init_ActivationBlock = __esm({
|
|
|
7873
7880
|
"div",
|
|
7874
7881
|
{
|
|
7875
7882
|
className: cn(
|
|
7876
|
-
"bg-
|
|
7883
|
+
"bg-primary/10 border-2 border-primary rounded-lg p-5 mb-6",
|
|
7877
7884
|
className
|
|
7878
7885
|
),
|
|
7879
7886
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
7880
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Lightbulb, { className: "text-
|
|
7887
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Lightbulb, { className: "text-primary flex-shrink-0 mt-1", size: 24 }),
|
|
7881
7888
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
7882
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-
|
|
7883
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
7889
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-primary mb-2", children: "Before You Begin..." }),
|
|
7890
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground mb-3 text-sm md:text-base", children: question }),
|
|
7884
7891
|
isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7885
7892
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7886
7893
|
"textarea",
|
|
7887
7894
|
{
|
|
7888
|
-
className: "w-full p-3 border border-
|
|
7895
|
+
className: "w-full p-3 border border-input rounded-md bg-card text-foreground focus:ring-2 focus:ring-ring focus:border-transparent text-sm",
|
|
7889
7896
|
placeholder: "Jot down your thoughts...",
|
|
7890
7897
|
value: response,
|
|
7891
7898
|
onChange: (e) => setResponse(e.target.value),
|
|
@@ -7897,7 +7904,7 @@ var init_ActivationBlock = __esm({
|
|
|
7897
7904
|
"button",
|
|
7898
7905
|
{
|
|
7899
7906
|
onClick: handleSubmit,
|
|
7900
|
-
className: "px-4 py-2 bg-
|
|
7907
|
+
className: "px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary-hover text-sm font-medium transition-colors",
|
|
7901
7908
|
children: "Continue to Lesson \u2192"
|
|
7902
7909
|
}
|
|
7903
7910
|
),
|
|
@@ -7908,7 +7915,7 @@ var init_ActivationBlock = __esm({
|
|
|
7908
7915
|
emit(`UI:${saveEvent}`, { response: "" });
|
|
7909
7916
|
setIsExpanded(false);
|
|
7910
7917
|
},
|
|
7911
|
-
className: "px-4 py-2 text-
|
|
7918
|
+
className: "px-4 py-2 text-primary hover:underline text-sm",
|
|
7912
7919
|
children: "Skip for now"
|
|
7913
7920
|
}
|
|
7914
7921
|
)
|
|
@@ -7917,7 +7924,7 @@ var init_ActivationBlock = __esm({
|
|
|
7917
7924
|
"button",
|
|
7918
7925
|
{
|
|
7919
7926
|
onClick: () => setIsExpanded(true),
|
|
7920
|
-
className: "text-sm text-
|
|
7927
|
+
className: "text-sm text-primary hover:underline font-medium",
|
|
7921
7928
|
children: "\u2713 Answered \xB7 Edit response"
|
|
7922
7929
|
}
|
|
7923
7930
|
)
|
|
@@ -8730,7 +8737,7 @@ var init_AuthLayout = __esm({
|
|
|
8730
8737
|
exports.VStack,
|
|
8731
8738
|
{
|
|
8732
8739
|
className: cn(
|
|
8733
|
-
"hidden lg:flex lg:w-1/2 bg-primary
|
|
8740
|
+
"hidden lg:flex lg:w-1/2 bg-primary relative overflow-hidden",
|
|
8734
8741
|
"justify-between p-12"
|
|
8735
8742
|
),
|
|
8736
8743
|
style: backgroundImage ? {
|
|
@@ -8739,7 +8746,7 @@ var init_AuthLayout = __esm({
|
|
|
8739
8746
|
} : void 0,
|
|
8740
8747
|
gap: "none",
|
|
8741
8748
|
children: [
|
|
8742
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute inset-0 bg-gradient-to-br from-primary
|
|
8749
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute inset-0 bg-gradient-to-br from-primary/90 to-primary-hover/90" }),
|
|
8743
8750
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "relative z-10", children: /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-3", children: [
|
|
8744
8751
|
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-10 h-10 bg-[var(--color-card)]/20 rounded-xl flex items-center justify-center backdrop-blur", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8745
8752
|
exports.Typography,
|
|
@@ -8824,7 +8831,7 @@ var init_AuthLayout = __esm({
|
|
|
8824
8831
|
),
|
|
8825
8832
|
children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "w-full max-w-md", children: [
|
|
8826
8833
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "lg:hidden mb-8 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "inline-flex items-center gap-3", children: [
|
|
8827
|
-
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-12 h-12 bg-primary
|
|
8834
|
+
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-12 h-12 bg-primary rounded-xl flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8828
8835
|
exports.Typography,
|
|
8829
8836
|
{
|
|
8830
8837
|
variant: "body1",
|
|
@@ -10818,7 +10825,7 @@ var init_CodeBlock = __esm({
|
|
|
10818
10825
|
{
|
|
10819
10826
|
justify: "between",
|
|
10820
10827
|
align: "center",
|
|
10821
|
-
className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-
|
|
10828
|
+
className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-border",
|
|
10822
10829
|
children: [
|
|
10823
10830
|
showLanguageBadge && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", children: language }),
|
|
10824
10831
|
effectiveCopy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -10827,9 +10834,9 @@ var init_CodeBlock = __esm({
|
|
|
10827
10834
|
variant: "ghost",
|
|
10828
10835
|
size: "sm",
|
|
10829
10836
|
onClick: handleCopy,
|
|
10830
|
-
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-
|
|
10837
|
+
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-foreground",
|
|
10831
10838
|
"aria-label": t("common.copy"),
|
|
10832
|
-
children: copied ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "check", className: "w-4 h-4 text-
|
|
10839
|
+
children: copied ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "check", className: "w-4 h-4 text-success" }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "copy", className: "w-4 h-4" })
|
|
10833
10840
|
}
|
|
10834
10841
|
)
|
|
10835
10842
|
]
|
|
@@ -11197,12 +11204,12 @@ var init_BloomQuizBlock = __esm({
|
|
|
11197
11204
|
init_useEventBus();
|
|
11198
11205
|
init_cn();
|
|
11199
11206
|
BLOOM_CONFIG = {
|
|
11200
|
-
remember: { color: "bg-
|
|
11201
|
-
understand: { color: "bg-
|
|
11202
|
-
apply: { color: "bg-
|
|
11203
|
-
analyze: { color: "bg-
|
|
11204
|
-
evaluate: { color: "bg-
|
|
11205
|
-
create: { color: "bg-
|
|
11207
|
+
remember: { color: "bg-secondary text-secondary-foreground", bgColor: "bg-muted", label: "Remember" },
|
|
11208
|
+
understand: { color: "bg-info text-info-foreground", bgColor: "bg-info/10", label: "Understand" },
|
|
11209
|
+
apply: { color: "bg-success text-success-foreground", bgColor: "bg-success/10", label: "Apply" },
|
|
11210
|
+
analyze: { color: "bg-warning text-warning-foreground", bgColor: "bg-warning/10", label: "Analyze" },
|
|
11211
|
+
evaluate: { color: "bg-accent text-accent-foreground", bgColor: "bg-accent/10", label: "Evaluate" },
|
|
11212
|
+
create: { color: "bg-primary text-primary-foreground", bgColor: "bg-primary/10", label: "Create" }
|
|
11206
11213
|
};
|
|
11207
11214
|
exports.BloomQuizBlock = ({
|
|
11208
11215
|
level,
|
|
@@ -11228,22 +11235,22 @@ var init_BloomQuizBlock = __esm({
|
|
|
11228
11235
|
"div",
|
|
11229
11236
|
{
|
|
11230
11237
|
className: cn(
|
|
11231
|
-
"rounded-lg border border-
|
|
11238
|
+
"rounded-lg border border-primary p-4 my-4 transition-all",
|
|
11232
11239
|
config.bgColor,
|
|
11233
11240
|
className
|
|
11234
11241
|
),
|
|
11235
11242
|
children: [
|
|
11236
11243
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-3", children: [
|
|
11237
11244
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
11238
|
-
index !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
11245
|
+
index !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground font-medium text-sm", children: [
|
|
11239
11246
|
"Question ",
|
|
11240
11247
|
index + 1
|
|
11241
11248
|
] }),
|
|
11242
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(config.color, "text-
|
|
11249
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(config.color, "text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
|
|
11243
11250
|
] }),
|
|
11244
|
-
isAnswered && /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { className: "text-
|
|
11251
|
+
isAnswered && /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { className: "text-success flex-shrink-0", size: 20 })
|
|
11245
11252
|
] }),
|
|
11246
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold text-
|
|
11253
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold text-primary mb-3 space-y-2", children: questionSegments.map(
|
|
11247
11254
|
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content: segment.content }, `q-md-${idx}`) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
11248
11255
|
exports.CodeBlock,
|
|
11249
11256
|
{
|
|
@@ -11257,13 +11264,13 @@ var init_BloomQuizBlock = __esm({
|
|
|
11257
11264
|
"button",
|
|
11258
11265
|
{
|
|
11259
11266
|
type: "button",
|
|
11260
|
-
className: "inline-flex items-center rounded-md bg-
|
|
11267
|
+
className: "inline-flex items-center rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary-hover transition-colors",
|
|
11261
11268
|
onClick: handleReveal,
|
|
11262
11269
|
children: revealed ? "Hide Answer" : "Reveal Answer"
|
|
11263
11270
|
}
|
|
11264
11271
|
),
|
|
11265
|
-
revealed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-
|
|
11266
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-
|
|
11272
|
+
revealed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-card/80 p-3 text-sm text-foreground shadow-sm border border-primary mt-3 space-y-2", children: [
|
|
11273
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
|
|
11267
11274
|
answerSegments.map(
|
|
11268
11275
|
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content: segment.content }, `a-md-${idx}`) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
11269
11276
|
exports.CodeBlock,
|
|
@@ -11537,12 +11544,12 @@ var init_QuizBlock = __esm({
|
|
|
11537
11544
|
}) => {
|
|
11538
11545
|
const { t } = hooks.useTranslate();
|
|
11539
11546
|
const [revealed, setRevealed] = React74.useState(false);
|
|
11540
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Card2, { className: cn("my-4 border-
|
|
11547
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Card2, { className: cn("my-4 border-primary", className), children: /* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "sm", className: "p-4", children: [
|
|
11541
11548
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", children: [
|
|
11542
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon: LucideIcons2.HelpCircle, size: "sm", className: "text-
|
|
11549
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon: LucideIcons2.HelpCircle, size: "sm", className: "text-primary mt-0.5 shrink-0" }),
|
|
11543
11550
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "font-medium", children: question })
|
|
11544
11551
|
] }),
|
|
11545
|
-
revealed ? /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "pl-7 pt-2 border-t border-
|
|
11552
|
+
revealed ? /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "pl-7 pt-2 border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-foreground", children: answer }) }) : null,
|
|
11546
11553
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11547
11554
|
exports.Button,
|
|
11548
11555
|
{
|
|
@@ -13454,7 +13461,7 @@ var init_BookTableOfContents = __esm({
|
|
|
13454
13461
|
className: cn(
|
|
13455
13462
|
"justify-start text-left w-full",
|
|
13456
13463
|
direction === "rtl" && "text-right",
|
|
13457
|
-
isCurrent && "bg-
|
|
13464
|
+
isCurrent && "bg-primary/10 text-primary"
|
|
13458
13465
|
),
|
|
13459
13466
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "truncate", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", children: String(chapter.title ?? "") }) })
|
|
13460
13467
|
},
|
|
@@ -14702,7 +14709,7 @@ function CalendarGrid({
|
|
|
14702
14709
|
border: true,
|
|
14703
14710
|
className: cn(
|
|
14704
14711
|
"cursor-pointer hover:shadow-sm transition-shadow text-xs truncate",
|
|
14705
|
-
color ? color : "bg-
|
|
14712
|
+
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
14706
14713
|
),
|
|
14707
14714
|
onClick: (e) => handleEventClick(event, e),
|
|
14708
14715
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "truncate font-medium", children: event.title })
|
|
@@ -14800,7 +14807,7 @@ function CalendarGrid({
|
|
|
14800
14807
|
onClick: () => handleSlotClick(day, time),
|
|
14801
14808
|
className: cn(
|
|
14802
14809
|
"border-l border-border",
|
|
14803
|
-
isToday && "bg-
|
|
14810
|
+
isToday && "bg-primary/10"
|
|
14804
14811
|
),
|
|
14805
14812
|
...longPressEvent ? {
|
|
14806
14813
|
onPointerDown: () => startLongPress(day, time),
|
|
@@ -18476,31 +18483,31 @@ var init_CodeRunnerPanel = __esm({
|
|
|
18476
18483
|
}
|
|
18477
18484
|
)
|
|
18478
18485
|
] }),
|
|
18479
|
-
hasOutput && /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "rounded-lg border border-
|
|
18486
|
+
hasOutput && /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "rounded-lg border border-border bg-foreground overflow-hidden", children: [
|
|
18480
18487
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
18481
18488
|
exports.HStack,
|
|
18482
18489
|
{
|
|
18483
18490
|
gap: "sm",
|
|
18484
18491
|
align: "center",
|
|
18485
|
-
className: "px-3 py-2 bg-
|
|
18492
|
+
className: "px-3 py-2 bg-card border-b border-border",
|
|
18486
18493
|
children: [
|
|
18487
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Terminal, { size: 16, className: "text-
|
|
18488
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18494
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Terminal, { size: 16, className: "text-muted-foreground" }),
|
|
18495
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-foreground font-medium", children: "Output" })
|
|
18489
18496
|
]
|
|
18490
18497
|
}
|
|
18491
18498
|
),
|
|
18492
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18493
|
-
output?.stdout ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18494
|
-
output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18495
|
-
!output?.stdout && !output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18496
|
-
output && output.testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "mt-3 pt-3 border-t border-
|
|
18497
|
-
test.passed ? /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { size: 14, className: "text-
|
|
18499
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
18500
|
+
output?.stdout ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-background whitespace-pre-wrap", children: output.stdout }) : null,
|
|
18501
|
+
output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: output.stderr }) : null,
|
|
18502
|
+
!output?.stdout && !output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-background italic", children: "No output" }) : null,
|
|
18503
|
+
output && output.testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "mt-3 pt-3 border-t border-border space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", className: "text-xs", children: [
|
|
18504
|
+
test.passed ? /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { size: 14, className: "text-success mt-0.5" }) : /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.XCircle, { size: 14, className: "text-error mt-0.5" }),
|
|
18498
18505
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "xs", className: "flex-1", children: [
|
|
18499
18506
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
18500
18507
|
exports.Typography,
|
|
18501
18508
|
{
|
|
18502
18509
|
variant: "small",
|
|
18503
|
-
className: test.passed ? "text-
|
|
18510
|
+
className: test.passed ? "text-success" : "text-error",
|
|
18504
18511
|
children: [
|
|
18505
18512
|
"Test ",
|
|
18506
18513
|
index + 1,
|
|
@@ -18509,15 +18516,15 @@ var init_CodeRunnerPanel = __esm({
|
|
|
18509
18516
|
]
|
|
18510
18517
|
}
|
|
18511
18518
|
),
|
|
18512
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
18519
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
|
|
18513
18520
|
"Input: ",
|
|
18514
18521
|
test.input
|
|
18515
18522
|
] }),
|
|
18516
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
18523
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
|
|
18517
18524
|
"Expected: ",
|
|
18518
18525
|
test.expectedOutput
|
|
18519
18526
|
] }),
|
|
18520
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
18527
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
|
|
18521
18528
|
"Actual: ",
|
|
18522
18529
|
test.actualOutput
|
|
18523
18530
|
] })
|
|
@@ -18702,14 +18709,14 @@ var init_ConnectionBlock = __esm({
|
|
|
18702
18709
|
"div",
|
|
18703
18710
|
{
|
|
18704
18711
|
className: cn(
|
|
18705
|
-
"bg-
|
|
18712
|
+
"bg-success/10 border-l-4 border-success rounded-r-lg p-5 mb-6",
|
|
18706
18713
|
className
|
|
18707
18714
|
),
|
|
18708
18715
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18709
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Link2, { className: "text-
|
|
18716
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Link2, { className: "text-success flex-shrink-0 mt-1", size: 20 }),
|
|
18710
18717
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
18711
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-
|
|
18712
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-
|
|
18718
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-success mb-2", children: "Building On What You Know" }),
|
|
18719
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content }) })
|
|
18713
18720
|
] })
|
|
18714
18721
|
] })
|
|
18715
18722
|
}
|
|
@@ -19100,7 +19107,7 @@ function CounterStandard({
|
|
|
19100
19107
|
variant: "h1",
|
|
19101
19108
|
className: cn(
|
|
19102
19109
|
sizeStyles8[size].display,
|
|
19103
|
-
"font-bold tabular-nums text-primary
|
|
19110
|
+
"font-bold tabular-nums text-primary"
|
|
19104
19111
|
),
|
|
19105
19112
|
children: resolved.count
|
|
19106
19113
|
}
|
|
@@ -19173,7 +19180,7 @@ function CounterFull({
|
|
|
19173
19180
|
variant: "h1",
|
|
19174
19181
|
className: cn(
|
|
19175
19182
|
sizeStyles8[size].display,
|
|
19176
|
-
"font-bold tabular-nums text-primary
|
|
19183
|
+
"font-bold tabular-nums text-primary"
|
|
19177
19184
|
),
|
|
19178
19185
|
children: resolved.count
|
|
19179
19186
|
}
|
|
@@ -19438,11 +19445,11 @@ var init_DashboardLayout = __esm({
|
|
|
19438
19445
|
className: "h-16 px-4 border-b border-border dark:border-border",
|
|
19439
19446
|
children: [
|
|
19440
19447
|
/* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2", children: [
|
|
19441
|
-
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-8 h-8 bg-primary
|
|
19448
|
+
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-8 h-8 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
19442
19449
|
exports.Typography,
|
|
19443
19450
|
{
|
|
19444
19451
|
variant: "small",
|
|
19445
|
-
className: "text-
|
|
19452
|
+
className: "text-primary-foreground font-bold text-sm",
|
|
19446
19453
|
as: "span",
|
|
19447
19454
|
children: appName.charAt(0).toUpperCase()
|
|
19448
19455
|
}
|
|
@@ -19521,11 +19528,11 @@ var init_DashboardLayout = __esm({
|
|
|
19521
19528
|
className: "hidden @md/dashboard:flex items-center gap-1 overflow-x-auto",
|
|
19522
19529
|
children: [
|
|
19523
19530
|
/* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2 mr-3 shrink-0", children: [
|
|
19524
|
-
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-7 h-7 bg-primary
|
|
19531
|
+
logo || /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "w-7 h-7 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
19525
19532
|
exports.Typography,
|
|
19526
19533
|
{
|
|
19527
19534
|
variant: "small",
|
|
19528
|
-
className: "text-
|
|
19535
|
+
className: "text-primary-foreground font-bold text-xs",
|
|
19529
19536
|
as: "span",
|
|
19530
19537
|
children: appName.charAt(0).toUpperCase()
|
|
19531
19538
|
}
|
|
@@ -19585,8 +19592,8 @@ var init_DashboardLayout = __esm({
|
|
|
19585
19592
|
{
|
|
19586
19593
|
as: "span",
|
|
19587
19594
|
className: cn(
|
|
19588
|
-
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-xs font-semibold
|
|
19589
|
-
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
19595
|
+
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-xs font-semibold flex items-center justify-center",
|
|
19596
|
+
action.variant === "danger" ? "bg-error text-error-foreground" : action.variant === "primary" ? "bg-primary text-primary-foreground" : "bg-foreground text-background"
|
|
19590
19597
|
),
|
|
19591
19598
|
children: action.badge
|
|
19592
19599
|
}
|
|
@@ -19608,7 +19615,7 @@ var init_DashboardLayout = __esm({
|
|
|
19608
19615
|
exports.Box,
|
|
19609
19616
|
{
|
|
19610
19617
|
as: "span",
|
|
19611
|
-
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-xs font-semibold text-
|
|
19618
|
+
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-xs font-semibold text-error-foreground flex items-center justify-center",
|
|
19612
19619
|
children: unreadCount > 99 ? "99+" : unreadCount
|
|
19613
19620
|
}
|
|
19614
19621
|
)
|
|
@@ -19891,7 +19898,7 @@ function SubMenu({
|
|
|
19891
19898
|
),
|
|
19892
19899
|
children: [
|
|
19893
19900
|
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: item.icon, size: "sm", className: "flex-shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { icon: item.icon, size: "sm", className: "flex-shrink-0" })),
|
|
19894
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: cn("flex-1", isDanger && "text-
|
|
19901
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: cn("flex-1", isDanger && "text-error"), children: item.label }),
|
|
19895
19902
|
item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-xs font-medium", children: item.badge })
|
|
19896
19903
|
]
|
|
19897
19904
|
},
|
|
@@ -19948,7 +19955,7 @@ function MenuItemRow({
|
|
|
19948
19955
|
exports.Typography,
|
|
19949
19956
|
{
|
|
19950
19957
|
variant: "small",
|
|
19951
|
-
className: cn("flex-1", isDanger && "text-
|
|
19958
|
+
className: cn("flex-1", isDanger && "text-error"),
|
|
19952
19959
|
children: item.label
|
|
19953
19960
|
}
|
|
19954
19961
|
),
|
|
@@ -20716,14 +20723,25 @@ function DataGrid({
|
|
|
20716
20723
|
const bodyFields = fieldDefs.filter((f3) => f3 !== titleField && !badgeFields.includes(f3));
|
|
20717
20724
|
const primaryActions = actionDefs.filter((a) => a.variant !== "danger");
|
|
20718
20725
|
const dangerActions = actionDefs.filter((a) => a.variant === "danger");
|
|
20719
|
-
const
|
|
20720
|
-
|
|
20726
|
+
const fireAction = (action, itemData) => {
|
|
20727
|
+
if (action.navigatesTo) {
|
|
20728
|
+
const url = action.navigatesTo.replace(
|
|
20729
|
+
/\{\{row\.(\w+(?:\.\w+)*)\}\}/g,
|
|
20730
|
+
(_, field) => String(itemData[field] ?? "")
|
|
20731
|
+
);
|
|
20732
|
+
eventBus.emit("UI:NAVIGATE", { url, row: itemData });
|
|
20733
|
+
return;
|
|
20734
|
+
}
|
|
20721
20735
|
const payload = {
|
|
20722
20736
|
id: itemData.id,
|
|
20723
20737
|
row: itemData
|
|
20724
20738
|
};
|
|
20725
20739
|
eventBus.emit(`UI:${action.event}`, payload);
|
|
20726
20740
|
};
|
|
20741
|
+
const handleActionClick = (action, itemData) => (e) => {
|
|
20742
|
+
e.stopPropagation();
|
|
20743
|
+
fireAction(action, itemData);
|
|
20744
|
+
};
|
|
20727
20745
|
const hasRenderProp = typeof children === "function";
|
|
20728
20746
|
React74.useEffect(() => {
|
|
20729
20747
|
if (data.length > 0 && !hasRenderProp && fieldDefs.length === 0) {
|
|
@@ -20790,13 +20808,46 @@ function DataGrid({
|
|
|
20790
20808
|
const wrapDnd = (node) => dnd.isZone ? /* @__PURE__ */ jsxRuntime.jsx(dnd.SortableItem, { id: dndId, children: node }, dndId) : node;
|
|
20791
20809
|
if (hasRenderProp) {
|
|
20792
20810
|
return wrapDnd(
|
|
20793
|
-
/* @__PURE__ */ jsxRuntime.
|
|
20811
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20794
20812
|
exports.Box,
|
|
20795
20813
|
{
|
|
20796
20814
|
"data-entity-row": true,
|
|
20797
20815
|
"data-entity-id": id,
|
|
20798
20816
|
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
20799
|
-
children:
|
|
20817
|
+
children: [
|
|
20818
|
+
children(itemData, index),
|
|
20819
|
+
actionDefs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "px-4 py-3 border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", className: "justify-end", children: [
|
|
20820
|
+
(maxInlineActions != null ? actionDefs.slice(0, maxInlineActions) : actionDefs).map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20821
|
+
exports.Button,
|
|
20822
|
+
{
|
|
20823
|
+
variant: action.variant === "primary" ? "primary" : "ghost",
|
|
20824
|
+
size: "sm",
|
|
20825
|
+
onClick: handleActionClick(action, itemData),
|
|
20826
|
+
"data-testid": `action-${action.event}`,
|
|
20827
|
+
"data-row-id": String(itemData.id),
|
|
20828
|
+
className: action.variant === "danger" ? "text-error hover:text-error hover:bg-error/10" : void 0,
|
|
20829
|
+
children: [
|
|
20830
|
+
action.icon && renderIconInput(action.icon, { size: "xs", className: "mr-1" }),
|
|
20831
|
+
action.label
|
|
20832
|
+
]
|
|
20833
|
+
},
|
|
20834
|
+
idx
|
|
20835
|
+
)),
|
|
20836
|
+
maxInlineActions != null && actionDefs.length > maxInlineActions && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20837
|
+
exports.Menu,
|
|
20838
|
+
{
|
|
20839
|
+
position: "bottom-end",
|
|
20840
|
+
trigger: /* @__PURE__ */ jsxRuntime.jsx(exports.Button, { variant: "ghost", size: "sm", "aria-label": t("common.actions"), "data-testid": "action-overflow", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "more-horizontal", size: "xs" }) }),
|
|
20841
|
+
items: actionDefs.slice(maxInlineActions).map((action) => ({
|
|
20842
|
+
label: action.label,
|
|
20843
|
+
icon: action.icon,
|
|
20844
|
+
event: action.event,
|
|
20845
|
+
onClick: () => fireAction(action, itemData)
|
|
20846
|
+
}))
|
|
20847
|
+
}
|
|
20848
|
+
)
|
|
20849
|
+
] }) })
|
|
20850
|
+
]
|
|
20800
20851
|
},
|
|
20801
20852
|
id
|
|
20802
20853
|
)
|
|
@@ -20933,10 +20984,7 @@ function DataGrid({
|
|
|
20933
20984
|
label: action.label,
|
|
20934
20985
|
icon: action.icon,
|
|
20935
20986
|
event: action.event,
|
|
20936
|
-
onClick: () =>
|
|
20937
|
-
id: itemData.id,
|
|
20938
|
-
row: itemData
|
|
20939
|
-
})
|
|
20987
|
+
onClick: () => fireAction(action, itemData)
|
|
20940
20988
|
}))
|
|
20941
20989
|
}
|
|
20942
20990
|
)
|
|
@@ -22662,7 +22710,9 @@ var init_FilterGroup = __esm({
|
|
|
22662
22710
|
showIcon = true,
|
|
22663
22711
|
query,
|
|
22664
22712
|
isLoading,
|
|
22665
|
-
look = "toolbar"
|
|
22713
|
+
look = "toolbar",
|
|
22714
|
+
event,
|
|
22715
|
+
clearEvent
|
|
22666
22716
|
}) => {
|
|
22667
22717
|
const { t } = hooks.useTranslate();
|
|
22668
22718
|
const eventBus = useEventBus();
|
|
@@ -22699,14 +22749,18 @@ var init_FilterGroup = __esm({
|
|
|
22699
22749
|
queryState.setFilter(field, value === "all" ? null : value);
|
|
22700
22750
|
}
|
|
22701
22751
|
onFilterChange?.(field, value === "all" ? null : value);
|
|
22702
|
-
|
|
22752
|
+
const payload = {
|
|
22703
22753
|
entity,
|
|
22704
22754
|
field,
|
|
22705
22755
|
value: value === "all" || value === null ? "" : value,
|
|
22706
22756
|
query
|
|
22707
|
-
}
|
|
22757
|
+
};
|
|
22758
|
+
if (event && event !== "FILTER") {
|
|
22759
|
+
eventBus.emit(`UI:${event}`, payload);
|
|
22760
|
+
}
|
|
22761
|
+
eventBus.emit("UI:FILTER", payload);
|
|
22708
22762
|
},
|
|
22709
|
-
[onFilterChange, queryState, eventBus, entity, query]
|
|
22763
|
+
[onFilterChange, queryState, eventBus, entity, query, event]
|
|
22710
22764
|
);
|
|
22711
22765
|
const handleClearAll = React74.useCallback(() => {
|
|
22712
22766
|
setSelectedValues({});
|
|
@@ -22714,8 +22768,11 @@ var init_FilterGroup = __esm({
|
|
|
22714
22768
|
queryState.clearFilters();
|
|
22715
22769
|
}
|
|
22716
22770
|
onClearAll?.();
|
|
22771
|
+
if (clearEvent && clearEvent !== "CLEAR_FILTERS") {
|
|
22772
|
+
eventBus.emit(`UI:${clearEvent}`, { entity, query });
|
|
22773
|
+
}
|
|
22717
22774
|
eventBus.emit("UI:CLEAR_FILTERS", { entity, query });
|
|
22718
|
-
}, [onClearAll, queryState, eventBus, entity, query]);
|
|
22775
|
+
}, [onClearAll, queryState, eventBus, entity, query, clearEvent]);
|
|
22719
22776
|
const activeFilterCount = Object.keys(selectedValues).length;
|
|
22720
22777
|
if (variant === "pills") {
|
|
22721
22778
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -23946,8 +24003,8 @@ var init_RelationSelect = __esm({
|
|
|
23946
24003
|
disabled,
|
|
23947
24004
|
className: cn(
|
|
23948
24005
|
"w-full justify-between font-normal",
|
|
23949
|
-
error && "border-
|
|
23950
|
-
isOpen && "ring-2 ring-primary
|
|
24006
|
+
error && "border-error/50 focus:border-error focus:ring-error",
|
|
24007
|
+
isOpen && "ring-2 ring-primary border-primary"
|
|
23951
24008
|
),
|
|
23952
24009
|
children: [
|
|
23953
24010
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -24027,7 +24084,7 @@ var init_RelationSelect = __esm({
|
|
|
24027
24084
|
paddingY: "sm",
|
|
24028
24085
|
className: cn(
|
|
24029
24086
|
"text-left text-sm hover:bg-muted focus:outline-none focus:bg-muted",
|
|
24030
|
-
option.value === value && "bg-primary
|
|
24087
|
+
option.value === value && "bg-primary/10 text-primary",
|
|
24031
24088
|
option.disabled && "opacity-50 cursor-not-allowed"
|
|
24032
24089
|
),
|
|
24033
24090
|
onClick: () => handleSelect(option),
|
|
@@ -24093,7 +24150,7 @@ var init_SearchInput = __esm({
|
|
|
24093
24150
|
queryState.setSearch(newValue);
|
|
24094
24151
|
}
|
|
24095
24152
|
onSearch?.(newValue);
|
|
24096
|
-
if (event) {
|
|
24153
|
+
if (event && event !== "SEARCH") {
|
|
24097
24154
|
eventBus.emit(`UI:${event}`, { searchTerm: newValue, entity });
|
|
24098
24155
|
}
|
|
24099
24156
|
if (event || entity || query) {
|
|
@@ -24184,7 +24241,7 @@ var init_SidePanel = __esm({
|
|
|
24184
24241
|
showOverlay && /* @__PURE__ */ jsxRuntime.jsx(exports.Presence, { show: isOpen, animation: "overlay", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
24185
24242
|
exports.Box,
|
|
24186
24243
|
{
|
|
24187
|
-
className: "fixed inset-0 bg-
|
|
24244
|
+
className: "fixed inset-0 bg-background/80 backdrop-blur-sm z-40 lg:hidden",
|
|
24188
24245
|
onClick: handleClose
|
|
24189
24246
|
}
|
|
24190
24247
|
) }),
|
|
@@ -24551,7 +24608,7 @@ var init_WizardNavigation = __esm({
|
|
|
24551
24608
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-left", size: "sm" }),
|
|
24552
24609
|
resolvedBackLabel
|
|
24553
24610
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}),
|
|
24554
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-
|
|
24611
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-muted-foreground", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
|
|
24555
24612
|
isLastStep && showComplete ? /* @__PURE__ */ jsxRuntime.jsx(exports.Button, { variant: "primary", onClick: handleComplete, disabled: !isValid, children: resolvedCompleteLabel }) : showNext ? /* @__PURE__ */ jsxRuntime.jsxs(exports.Button, { variant: "primary", onClick: handleNext, disabled: !isValid, children: [
|
|
24556
24613
|
resolvedNextLabel,
|
|
24557
24614
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-right", size: "sm" })
|
|
@@ -29270,6 +29327,7 @@ var init_Lightbox = __esm({
|
|
|
29270
29327
|
{
|
|
29271
29328
|
className: cn(
|
|
29272
29329
|
"fixed inset-0 z-50 flex items-center justify-center",
|
|
29330
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: lightbox scrim behind images
|
|
29273
29331
|
"bg-black bg-opacity-90",
|
|
29274
29332
|
className
|
|
29275
29333
|
),
|
|
@@ -29292,7 +29350,7 @@ var init_Lightbox = __esm({
|
|
|
29292
29350
|
"p-2 rounded-full",
|
|
29293
29351
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29294
29352
|
"hover:bg-opacity-70 transition-opacity",
|
|
29295
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29353
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29296
29354
|
),
|
|
29297
29355
|
"aria-label": t("aria.closeModal"),
|
|
29298
29356
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "x", className: "w-6 h-6" })
|
|
@@ -29311,7 +29369,7 @@ var init_Lightbox = __esm({
|
|
|
29311
29369
|
"p-2 rounded-full",
|
|
29312
29370
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29313
29371
|
"hover:bg-opacity-70 transition-opacity",
|
|
29314
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29372
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29315
29373
|
),
|
|
29316
29374
|
"aria-label": t("aria.previousImage"),
|
|
29317
29375
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-left", className: "w-8 h-8" })
|
|
@@ -29348,7 +29406,7 @@ var init_Lightbox = __esm({
|
|
|
29348
29406
|
"p-2 rounded-full",
|
|
29349
29407
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29350
29408
|
"hover:bg-opacity-70 transition-opacity",
|
|
29351
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29409
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29352
29410
|
),
|
|
29353
29411
|
"aria-label": t("aria.nextImage"),
|
|
29354
29412
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-right", className: "w-8 h-8" })
|
|
@@ -32421,6 +32479,7 @@ var init_QrScanner = __esm({
|
|
|
32421
32479
|
overflow: "hidden",
|
|
32422
32480
|
rounded: "sm",
|
|
32423
32481
|
className: cn(
|
|
32482
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32424
32483
|
"bg-black",
|
|
32425
32484
|
"aspect-square w-full max-w-md",
|
|
32426
32485
|
className
|
|
@@ -32485,7 +32544,9 @@ var init_QrScanner = __esm({
|
|
|
32485
32544
|
type: "button",
|
|
32486
32545
|
onClick: togglePause,
|
|
32487
32546
|
className: cn(
|
|
32547
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32488
32548
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
32549
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32489
32550
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32490
32551
|
),
|
|
32491
32552
|
"aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
|
|
@@ -32498,7 +32559,9 @@ var init_QrScanner = __esm({
|
|
|
32498
32559
|
type: "button",
|
|
32499
32560
|
onClick: toggleFacing,
|
|
32500
32561
|
className: cn(
|
|
32562
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32501
32563
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
32564
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32502
32565
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32503
32566
|
),
|
|
32504
32567
|
"aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
|
|
@@ -32511,7 +32574,9 @@ var init_QrScanner = __esm({
|
|
|
32511
32574
|
type: "button",
|
|
32512
32575
|
onClick: handleMockScan,
|
|
32513
32576
|
className: cn(
|
|
32577
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32514
32578
|
"rounded-full bg-black bg-opacity-60 px-3 py-2 text-xs text-white",
|
|
32579
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32515
32580
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32516
32581
|
),
|
|
32517
32582
|
"aria-label": t("aria.mockScanDev"),
|
|
@@ -35247,10 +35312,10 @@ var init_ModuleCard = __esm({
|
|
|
35247
35312
|
init_avl_atom_types();
|
|
35248
35313
|
init_MiniStateMachine();
|
|
35249
35314
|
PERSISTENCE_BORDER = {
|
|
35250
|
-
persistent: "border-l-[3px] border-l-
|
|
35251
|
-
runtime: "border-l-[3px] border-l-
|
|
35252
|
-
singleton: "border-l-[3px] border-l-
|
|
35253
|
-
instance: "border-l-[3px] border-l-
|
|
35315
|
+
persistent: "border-l-[3px] border-l-primary border-solid",
|
|
35316
|
+
runtime: "border-l-[3px] border-l-primary border-dashed",
|
|
35317
|
+
singleton: "border-l-[3px] border-l-primary border-double",
|
|
35318
|
+
instance: "border-l-[3px] border-l-primary border-dotted"
|
|
35254
35319
|
};
|
|
35255
35320
|
PERSISTENCE_ICON = {
|
|
35256
35321
|
persistent: "\u26C1",
|
|
@@ -35280,8 +35345,8 @@ var init_ModuleCard = __esm({
|
|
|
35280
35345
|
className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
35281
35346
|
style: { minWidth: 280, maxWidth: 400 },
|
|
35282
35347
|
children: [
|
|
35283
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "target", position: react.Position.Left, className: "!w-2.5 !h-2.5 !bg-
|
|
35284
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "source", position: react.Position.Right, className: "!w-2.5 !h-2.5 !bg-
|
|
35348
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "target", position: react.Position.Left, className: "!w-2.5 !h-2.5 !bg-warning" }),
|
|
35349
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "source", position: react.Position.Right, className: "!w-2.5 !h-2.5 !bg-warning" }),
|
|
35285
35350
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-2 border-b border-[var(--color-border)]", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base font-bold text-[var(--color-foreground)]", children: orbitalName }) }),
|
|
35286
35351
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `px-3 py-2 border-b border-[var(--color-border)] ${PERSISTENCE_BORDER[persistence] ?? ""}`, children: [
|
|
35287
35352
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
|
|
@@ -37737,19 +37802,19 @@ var init_ReflectionBlock = __esm({
|
|
|
37737
37802
|
"div",
|
|
37738
37803
|
{
|
|
37739
37804
|
className: cn(
|
|
37740
|
-
"my-6 border-l-4 border-
|
|
37805
|
+
"my-6 border-l-4 border-warning bg-warning/10 rounded-r-lg p-4",
|
|
37741
37806
|
className
|
|
37742
37807
|
),
|
|
37743
37808
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
37744
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-
|
|
37809
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-warning flex-shrink-0 mt-1", size: 20 }),
|
|
37745
37810
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
37746
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-
|
|
37747
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
37811
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-warning mb-2", children: "Pause & Reflect" }),
|
|
37812
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground text-sm mb-3", children: prompt }),
|
|
37748
37813
|
isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
37749
37814
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
37750
37815
|
"textarea",
|
|
37751
37816
|
{
|
|
37752
|
-
className: "w-full p-2 border border-
|
|
37817
|
+
className: "w-full p-2 border border-input rounded text-sm bg-card text-foreground focus:ring-2 focus:ring-ring focus:border-transparent",
|
|
37753
37818
|
placeholder: "Your thoughts...",
|
|
37754
37819
|
value: note,
|
|
37755
37820
|
onChange: (e) => setNote(e.target.value),
|
|
@@ -37760,7 +37825,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37760
37825
|
"button",
|
|
37761
37826
|
{
|
|
37762
37827
|
onClick: handleSave,
|
|
37763
|
-
className: "mt-2 text-sm px-3 py-1 bg-
|
|
37828
|
+
className: "mt-2 text-sm px-3 py-1 bg-warning text-warning-foreground rounded hover:opacity-90 transition-colors",
|
|
37764
37829
|
children: "Save & Continue"
|
|
37765
37830
|
}
|
|
37766
37831
|
)
|
|
@@ -37768,7 +37833,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37768
37833
|
"button",
|
|
37769
37834
|
{
|
|
37770
37835
|
onClick: () => setIsExpanded(true),
|
|
37771
|
-
className: "text-sm text-
|
|
37836
|
+
className: "text-sm text-warning hover:underline",
|
|
37772
37837
|
children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
|
|
37773
37838
|
}
|
|
37774
37839
|
)
|
|
@@ -38272,7 +38337,7 @@ function DataTable({
|
|
|
38272
38337
|
)),
|
|
38273
38338
|
rowActions && /* @__PURE__ */ jsxRuntime.jsx("th", { className: "w-12 px-4 py-3" })
|
|
38274
38339
|
] }) }),
|
|
38275
|
-
/* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-
|
|
38340
|
+
/* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-border", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38276
38341
|
"td",
|
|
38277
38342
|
{
|
|
38278
38343
|
colSpan: normalizedColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0),
|
|
@@ -38643,7 +38708,7 @@ var init_DetailPanel = __esm({
|
|
|
38643
38708
|
};
|
|
38644
38709
|
const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
|
|
38645
38710
|
const fieldTypeMap = isFieldDefArray(propFields) ? buildFieldTypeMap(propFields) : {};
|
|
38646
|
-
React74.useCallback(
|
|
38711
|
+
const handleActionClick = React74.useCallback(
|
|
38647
38712
|
(action, data2) => {
|
|
38648
38713
|
if (action.navigatesTo) {
|
|
38649
38714
|
const url = action.navigatesTo.replace(
|
|
@@ -38835,8 +38900,9 @@ var init_DetailPanel = __esm({
|
|
|
38835
38900
|
{
|
|
38836
38901
|
variant: action.variant || "secondary",
|
|
38837
38902
|
size: "sm",
|
|
38838
|
-
action: action.event,
|
|
38903
|
+
action: action.navigatesTo ? void 0 : action.event,
|
|
38839
38904
|
actionPayload: { row: normalizedData },
|
|
38905
|
+
onClick: action.navigatesTo ? () => handleActionClick(action, normalizedData) : void 0,
|
|
38840
38906
|
icon: action.icon,
|
|
38841
38907
|
"data-testid": action.event ? `action-${action.event}` : void 0,
|
|
38842
38908
|
"data-row-id": normalizedData?.id !== void 0 ? String(normalizedData.id) : void 0,
|
|
@@ -40879,8 +40945,9 @@ var init_MediaGallery = __esm({
|
|
|
40879
40945
|
)
|
|
40880
40946
|
}
|
|
40881
40947
|
),
|
|
40882
|
-
item.caption &&
|
|
40883
|
-
|
|
40948
|
+
item.caption && // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: caption scrim over image
|
|
40949
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/60 to-transparent", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-white truncate", children: item.caption }) }),
|
|
40950
|
+
selectable && isSelected && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "absolute top-2 right-2 w-5 h-5 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "caption", className: "text-primary-foreground text-xs", children: "\u2713" }) })
|
|
40884
40951
|
]
|
|
40885
40952
|
},
|
|
40886
40953
|
item.id
|
|
@@ -40909,7 +40976,7 @@ var init_MediaGallery = __esm({
|
|
|
40909
40976
|
size: "sm",
|
|
40910
40977
|
icon: LucideIcons2.X,
|
|
40911
40978
|
action: "LIGHTBOX_CLOSE",
|
|
40912
|
-
className: "text-
|
|
40979
|
+
className: "text-foreground hover:bg-muted/50"
|
|
40913
40980
|
}
|
|
40914
40981
|
) }),
|
|
40915
40982
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -40920,7 +40987,7 @@ var init_MediaGallery = __esm({
|
|
|
40920
40987
|
className: "max-w-full max-h-[80vh] object-contain rounded-md"
|
|
40921
40988
|
}
|
|
40922
40989
|
),
|
|
40923
|
-
lightboxItem.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-
|
|
40990
|
+
lightboxItem.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-foreground mt-3 text-center", children: lightboxItem.caption })
|
|
40924
40991
|
]
|
|
40925
40992
|
}
|
|
40926
40993
|
)
|
|
@@ -41362,7 +41429,7 @@ function WalkMinimap() {
|
|
|
41362
41429
|
{
|
|
41363
41430
|
variant,
|
|
41364
41431
|
size: "sm",
|
|
41365
|
-
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-
|
|
41432
|
+
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-info" : ""}`,
|
|
41366
41433
|
children: [
|
|
41367
41434
|
isDone ? "\u2713" : isActive ? "\u25CF" : "\u25CB",
|
|
41368
41435
|
" ",
|
|
@@ -41503,13 +41570,13 @@ function WalkMinimap() {
|
|
|
41503
41570
|
})
|
|
41504
41571
|
] }) }),
|
|
41505
41572
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "px-2 py-1 border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", className: "items-center justify-between", children: [
|
|
41506
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-
|
|
41573
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-success", children: [
|
|
41507
41574
|
"Engine: ",
|
|
41508
41575
|
engineCount,
|
|
41509
41576
|
"/",
|
|
41510
41577
|
totalTransitions
|
|
41511
41578
|
] }),
|
|
41512
|
-
domCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-
|
|
41579
|
+
domCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-info", children: [
|
|
41513
41580
|
"DOM: ",
|
|
41514
41581
|
domCount
|
|
41515
41582
|
] }),
|
|
@@ -41542,13 +41609,13 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41542
41609
|
const accordionItems = traits2.map((trait) => ({
|
|
41543
41610
|
id: trait.id,
|
|
41544
41611
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41545
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41612
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-primary", children: trait.name }),
|
|
41546
41613
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "success", size: "sm", children: trait.currentState }),
|
|
41547
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41614
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
|
|
41548
41615
|
] }),
|
|
41549
41616
|
content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
41550
41617
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41551
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41618
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.states") }),
|
|
41552
41619
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
41553
41620
|
exports.Badge,
|
|
41554
41621
|
{
|
|
@@ -41560,18 +41627,18 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41560
41627
|
)) })
|
|
41561
41628
|
] }),
|
|
41562
41629
|
trait.transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41563
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41630
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.transitions") }),
|
|
41564
41631
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: trait.transitions.map((t2, i) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono", children: [
|
|
41565
41632
|
t2.from,
|
|
41566
41633
|
" \u2192 ",
|
|
41567
41634
|
t2.to,
|
|
41568
41635
|
" ",
|
|
41569
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
41636
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
|
|
41570
41637
|
"(",
|
|
41571
41638
|
t2.event,
|
|
41572
41639
|
")"
|
|
41573
41640
|
] }),
|
|
41574
|
-
t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
41641
|
+
t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-warning", children: [
|
|
41575
41642
|
" [",
|
|
41576
41643
|
t2.guard,
|
|
41577
41644
|
"]"
|
|
@@ -41579,7 +41646,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41579
41646
|
] }, i)) })
|
|
41580
41647
|
] }),
|
|
41581
41648
|
trait.guards.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41582
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41649
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.guards") }),
|
|
41583
41650
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: trait.guards.map((g, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
41584
41651
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: g.name }),
|
|
41585
41652
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: g.lastResult === true ? "success" : g.lastResult === false ? "danger" : "default", size: "sm", children: g.lastResult === void 0 ? "?" : g.lastResult ? "\u2713" : "\u2717" })
|
|
@@ -41622,11 +41689,11 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41622
41689
|
};
|
|
41623
41690
|
const TickCard = ({ tick, active }) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: `p-3 ${!active ? "opacity-50" : ""}`, children: [
|
|
41624
41691
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
41625
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-
|
|
41626
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41627
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41692
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-success" : "bg-muted-foreground"}` }),
|
|
41693
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-warning", children: tick.name }),
|
|
41694
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: tick.traitName })
|
|
41628
41695
|
] }),
|
|
41629
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 text-xs text-
|
|
41696
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 text-xs text-muted-foreground", children: [
|
|
41630
41697
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
41631
41698
|
tick.interval,
|
|
41632
41699
|
"ms"
|
|
@@ -41649,7 +41716,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41649
41716
|
] });
|
|
41650
41717
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--ticks", children: [
|
|
41651
41718
|
activeTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41652
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41719
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
|
|
41653
41720
|
"Active (",
|
|
41654
41721
|
activeTicks.length,
|
|
41655
41722
|
")"
|
|
@@ -41657,7 +41724,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41657
41724
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "sm", children: activeTicks.map((tick) => /* @__PURE__ */ jsxRuntime.jsx(TickCard, { tick, active: true }, tick.id)) })
|
|
41658
41725
|
] }),
|
|
41659
41726
|
inactiveTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41660
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41727
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
|
|
41661
41728
|
"Inactive (",
|
|
41662
41729
|
inactiveTicks.length,
|
|
41663
41730
|
")"
|
|
@@ -41705,33 +41772,33 @@ function EntitiesTab({ snapshot }) {
|
|
|
41705
41772
|
id: `singleton-${name}`,
|
|
41706
41773
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41707
41774
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "primary", size: "sm", children: t("debug.singleton") }),
|
|
41708
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41775
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-info", children: name })
|
|
41709
41776
|
] }),
|
|
41710
|
-
content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-
|
|
41777
|
+
content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-40", children: JSON.stringify(data, null, 2) })
|
|
41711
41778
|
}));
|
|
41712
41779
|
const runtimeItems = runtimeEntities.slice(0, 20).map((entity) => ({
|
|
41713
41780
|
id: entity.id,
|
|
41714
41781
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41715
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41716
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
41782
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-info", children: entity.type }),
|
|
41783
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground", children: [
|
|
41717
41784
|
"#",
|
|
41718
41785
|
entity.id.slice(0, 8)
|
|
41719
41786
|
] })
|
|
41720
41787
|
] }),
|
|
41721
|
-
content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-
|
|
41788
|
+
content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-40", children: JSON.stringify(entity.data, null, 2) })
|
|
41722
41789
|
}));
|
|
41723
41790
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--entities", children: [
|
|
41724
41791
|
singletonItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41725
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41792
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
|
|
41726
41793
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: singletonItems, multiple: true })
|
|
41727
41794
|
] }),
|
|
41728
41795
|
runtimeItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41729
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41796
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
|
|
41730
41797
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: runtimeItems, multiple: true }),
|
|
41731
|
-
runtimeEntities.length > 20 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41798
|
+
runtimeEntities.length > 20 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
|
|
41732
41799
|
] }),
|
|
41733
41800
|
persistentEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41734
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41801
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.persistent") }),
|
|
41735
41802
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: persistentEntries.map(([type, info]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1", children: [
|
|
41736
41803
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: type }),
|
|
41737
41804
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: info.loaded ? "success" : "default", size: "sm", children: info.loaded ? t("debug.loadedCount", { count: info.count }) : t("debug.notLoaded") })
|
|
@@ -41816,7 +41883,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41816
41883
|
);
|
|
41817
41884
|
})
|
|
41818
41885
|
] }),
|
|
41819
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-
|
|
41886
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground ml-auto cursor-pointer", children: [
|
|
41820
41887
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41821
41888
|
exports.Checkbox,
|
|
41822
41889
|
{
|
|
@@ -41831,18 +41898,18 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41831
41898
|
"div",
|
|
41832
41899
|
{
|
|
41833
41900
|
ref: containerRef,
|
|
41834
|
-
className: "max-h-64 overflow-y-auto space-y-1 bg-
|
|
41901
|
+
className: "max-h-64 overflow-y-auto space-y-1 bg-muted rounded p-2",
|
|
41835
41902
|
children: filteredEvents.slice(-100).map((event) => {
|
|
41836
41903
|
const { variant, icon } = TYPE_BADGES[event.type] || { variant: "default", icon: "\u2022" };
|
|
41837
41904
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41838
41905
|
"div",
|
|
41839
41906
|
{
|
|
41840
|
-
className: "flex items-start gap-2 text-xs py-1 hover:bg-
|
|
41907
|
+
className: "flex items-start gap-2 text-xs py-1 hover:bg-muted/50 rounded px-1",
|
|
41841
41908
|
children: [
|
|
41842
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41909
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
|
|
41843
41910
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: icon }),
|
|
41844
41911
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", className: "min-w-[60px] justify-center", children: event.source }),
|
|
41845
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41912
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: event.message })
|
|
41846
41913
|
]
|
|
41847
41914
|
},
|
|
41848
41915
|
event.id
|
|
@@ -41906,21 +41973,21 @@ function GuardsPanel({ guards }) {
|
|
|
41906
41973
|
id: guard.id,
|
|
41907
41974
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41908
41975
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: guard.result ? "success" : "danger", size: "sm", children: guard.result ? "\u2713" : "\u2717" }),
|
|
41909
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41910
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41911
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41976
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-warning", children: guard.guardName }),
|
|
41977
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: guard.context.type === "transition" ? `${guard.context.transitionFrom} \u2192 ${guard.context.transitionTo}` : guard.context.tickName }),
|
|
41978
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: formatTime2(guard.timestamp) })
|
|
41912
41979
|
] }),
|
|
41913
41980
|
content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
41914
41981
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41915
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41916
|
-
/* @__PURE__ */ jsxRuntime.jsx("code", { className: "block mt-1 text-xs text-
|
|
41982
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.expression") }),
|
|
41983
|
+
/* @__PURE__ */ jsxRuntime.jsx("code", { className: "block mt-1 text-xs text-warning bg-warning/10 px-2 py-1 rounded", children: guard.expression })
|
|
41917
41984
|
] }),
|
|
41918
41985
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41919
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41920
|
-
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 text-xs text-
|
|
41986
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.inputs") }),
|
|
41987
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-24", children: JSON.stringify(guard.inputs, null, 2) })
|
|
41921
41988
|
] }),
|
|
41922
41989
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41923
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41990
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.trait") }),
|
|
41924
41991
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: guard.context.traitName })
|
|
41925
41992
|
] })
|
|
41926
41993
|
] })
|
|
@@ -41976,7 +42043,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
41976
42043
|
(a, b) => (sortOrder[a.status] ?? 4) - (sortOrder[b.status] ?? 4)
|
|
41977
42044
|
);
|
|
41978
42045
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--verification", children: [
|
|
41979
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-
|
|
42046
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-muted rounded", children: [
|
|
41980
42047
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Badge, { variant: "success", size: "sm", children: [
|
|
41981
42048
|
summary.passed,
|
|
41982
42049
|
" passed"
|
|
@@ -41993,7 +42060,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
41993
42060
|
summary.pending,
|
|
41994
42061
|
" pending"
|
|
41995
42062
|
] }),
|
|
41996
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
42063
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: [
|
|
41997
42064
|
summary.totalChecks,
|
|
41998
42065
|
" total checks"
|
|
41999
42066
|
] })
|
|
@@ -42003,12 +42070,12 @@ function VerificationTab({ checks, summary }) {
|
|
|
42003
42070
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42004
42071
|
"div",
|
|
42005
42072
|
{
|
|
42006
|
-
className: "flex items-start gap-2 p-2 rounded hover:bg-
|
|
42073
|
+
className: "flex items-start gap-2 p-2 rounded hover:bg-muted/50",
|
|
42007
42074
|
children: [
|
|
42008
42075
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: config.variant, size: "sm", className: "min-w-[20px] justify-center mt-0.5", children: config.icon }),
|
|
42009
42076
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
42010
42077
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "break-words", children: check.label }),
|
|
42011
|
-
check.details && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42078
|
+
check.details && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground break-words", children: check.details })
|
|
42012
42079
|
] }),
|
|
42013
42080
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs shrink-0", children: new Date(check.updatedAt).toLocaleTimeString("en-US", {
|
|
42014
42081
|
hour12: false,
|
|
@@ -42043,10 +42110,10 @@ var init_VerificationTab = __esm({
|
|
|
42043
42110
|
function EffectBadge({ effect }) {
|
|
42044
42111
|
const variant = EFFECT_STATUS_VARIANT[effect.status] || "default";
|
|
42045
42112
|
const icon = effect.status === "executed" ? "\u2713" : effect.status === "failed" ? "\u2717" : "-";
|
|
42046
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-
|
|
42113
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-muted rounded px-1.5 py-0.5", children: [
|
|
42047
42114
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", className: "!text-[9px] !px-1 !py-0", children: icon }),
|
|
42048
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42049
|
-
effect.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42115
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: effect.type }),
|
|
42116
|
+
effect.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-error truncate max-w-[120px]", title: effect.error, children: effect.error })
|
|
42050
42117
|
] });
|
|
42051
42118
|
}
|
|
42052
42119
|
function TransitionTimeline({ transitions }) {
|
|
@@ -42081,8 +42148,8 @@ function TransitionTimeline({ transitions }) {
|
|
|
42081
42148
|
const sorted = [...transitions].reverse();
|
|
42082
42149
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
|
|
42083
42150
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-2", children: [
|
|
42084
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42085
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-
|
|
42151
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
|
|
42152
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground cursor-pointer", children: [
|
|
42086
42153
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42087
42154
|
exports.Checkbox,
|
|
42088
42155
|
{
|
|
@@ -42107,22 +42174,22 @@ function TransitionTimeline({ transitions }) {
|
|
|
42107
42174
|
{
|
|
42108
42175
|
className: `
|
|
42109
42176
|
relative pl-6 pb-3 border-l-2 cursor-pointer
|
|
42110
|
-
hover:bg-
|
|
42111
|
-
${hasFailedEffects ? "border-
|
|
42177
|
+
hover:bg-muted/50 rounded-r
|
|
42178
|
+
${hasFailedEffects ? "border-error" : "border-border"}
|
|
42112
42179
|
`,
|
|
42113
42180
|
onClick: () => setExpandedId(isExpanded ? null : trace.id),
|
|
42114
42181
|
children: [
|
|
42115
42182
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `
|
|
42116
42183
|
absolute left-[-5px] top-1 w-2 h-2 rounded-full
|
|
42117
|
-
${hasFailedEffects ? "bg-
|
|
42184
|
+
${hasFailedEffects ? "bg-error" : allPassed ? "bg-success" : "bg-muted-foreground"}
|
|
42118
42185
|
` }),
|
|
42119
42186
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs py-1 px-2", children: [
|
|
42120
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42187
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
|
|
42121
42188
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "primary", size: "sm", className: "min-w-[60px] justify-center", children: trace.traitName }),
|
|
42122
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-
|
|
42189
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-muted-foreground", children: [
|
|
42123
42190
|
trace.from,
|
|
42124
42191
|
" ",
|
|
42125
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42192
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/50", children: "\u2192" }),
|
|
42126
42193
|
" ",
|
|
42127
42194
|
trace.to
|
|
42128
42195
|
] }),
|
|
@@ -42139,9 +42206,9 @@ function TransitionTimeline({ transitions }) {
|
|
|
42139
42206
|
]
|
|
42140
42207
|
}
|
|
42141
42208
|
),
|
|
42142
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42209
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
|
|
42143
42210
|
] }),
|
|
42144
|
-
isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-
|
|
42211
|
+
isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-border space-y-1", children: trace.effects.map((effect, eIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
42145
42212
|
/* @__PURE__ */ jsxRuntime.jsx(EffectBadge, { effect }),
|
|
42146
42213
|
effect.args.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs truncate max-w-[200px]", children: JSON.stringify(effect.args) }),
|
|
42147
42214
|
effect.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
|
|
@@ -42175,8 +42242,8 @@ var init_TransitionTimeline = __esm({
|
|
|
42175
42242
|
}
|
|
42176
42243
|
});
|
|
42177
42244
|
function StatRow({ label, value, variant }) {
|
|
42178
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-
|
|
42179
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42245
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-border last:border-b-0", children: [
|
|
42246
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: label }),
|
|
42180
42247
|
variant ? /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", children: String(value) }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "font-mono", children: String(value) })
|
|
42181
42248
|
] });
|
|
42182
42249
|
}
|
|
@@ -42205,7 +42272,7 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42205
42272
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "debug-tab debug-tab--bridge", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
42206
42273
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3", children: [
|
|
42207
42274
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
42208
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-
|
|
42275
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-success animate-pulse" : "bg-error"}` }),
|
|
42209
42276
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
|
|
42210
42277
|
] }),
|
|
42211
42278
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "xs", children: [
|
|
@@ -42240,11 +42307,11 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42240
42307
|
)
|
|
42241
42308
|
] })
|
|
42242
42309
|
] }),
|
|
42243
|
-
bridge.lastError && /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3 border-
|
|
42244
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "text-
|
|
42245
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42310
|
+
bridge.lastError && /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3 border-error/30 bg-error/10", children: [
|
|
42311
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "text-error mb-1", children: t("debug.lastError") }),
|
|
42312
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error font-mono break-all", children: bridge.lastError })
|
|
42246
42313
|
] }),
|
|
42247
|
-
bridge.connected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42314
|
+
bridge.connected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
|
|
42248
42315
|
] }) });
|
|
42249
42316
|
}
|
|
42250
42317
|
var init_ServerBridgeTab = __esm({
|
|
@@ -42370,7 +42437,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42370
42437
|
};
|
|
42371
42438
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
|
|
42372
42439
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42373
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42440
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.activeStates") }),
|
|
42374
42441
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: traits2.map((trait) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Badge, { variant: "success", size: "sm", children: [
|
|
42375
42442
|
trait.name,
|
|
42376
42443
|
": ",
|
|
@@ -42378,8 +42445,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42378
42445
|
] }, trait.id)) })
|
|
42379
42446
|
] }),
|
|
42380
42447
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42381
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42382
|
-
availableEvents.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42448
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.availableEvents") }),
|
|
42449
|
+
availableEvents.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
42383
42450
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42384
42451
|
exports.Button,
|
|
42385
42452
|
{
|
|
@@ -42390,22 +42457,22 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42390
42457
|
children: event
|
|
42391
42458
|
}
|
|
42392
42459
|
),
|
|
42393
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42460
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
|
|
42394
42461
|
transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
|
|
42395
42462
|
] }, event)) })
|
|
42396
42463
|
] }),
|
|
42397
42464
|
unavailableEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42398
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42465
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.otherEvents") }),
|
|
42399
42466
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
|
|
42400
42467
|
] }),
|
|
42401
42468
|
log19.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
42402
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42469
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.recentTransitions") }),
|
|
42403
42470
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "xs", children: log19.map((entry, i) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-xs", children: [
|
|
42404
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42471
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: entry.traitName }),
|
|
42405
42472
|
" ",
|
|
42406
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42473
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: entry.from }),
|
|
42407
42474
|
" -> ",
|
|
42408
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42475
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-success", children: entry.to })
|
|
42409
42476
|
] }, i)) })
|
|
42410
42477
|
] })
|
|
42411
42478
|
] });
|
|
@@ -42431,21 +42498,21 @@ var init_RuntimeDebugger = __esm({
|
|
|
42431
42498
|
function ServerResponseRow({ sr }) {
|
|
42432
42499
|
const { t } = hooks.useTranslate();
|
|
42433
42500
|
const entityEntries = Object.entries(sr.dataEntities);
|
|
42434
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-
|
|
42501
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-primary py-0.5 text-xs font-mono", children: [
|
|
42435
42502
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
42436
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-
|
|
42503
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-success" : "text-error", children: [
|
|
42437
42504
|
sr.success ? "\u2713" : "\u2717",
|
|
42438
42505
|
" ",
|
|
42439
42506
|
t("debug.server")
|
|
42440
42507
|
] }),
|
|
42441
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42442
|
-
sr.clientEffects > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-
|
|
42443
|
-
sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-
|
|
42508
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: sr.orbitalName }),
|
|
42509
|
+
sr.clientEffects > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-primary/10 text-primary", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
|
|
42510
|
+
sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-primary/10 text-primary", children: [
|
|
42444
42511
|
t("debug.emitLabel"),
|
|
42445
42512
|
" ",
|
|
42446
42513
|
sr.emittedEvents.join(", ")
|
|
42447
42514
|
] }),
|
|
42448
|
-
sr.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-
|
|
42515
|
+
sr.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-error/10 text-error truncate max-w-[300px]", children: sr.error })
|
|
42449
42516
|
] }),
|
|
42450
42517
|
entityEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1 mt-0.5", children: entityEntries.map(([name, count]) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-[var(--color-card)] text-foreground", children: [
|
|
42451
42518
|
name,
|
|
@@ -42461,9 +42528,9 @@ function TransitionRow({ trace }) {
|
|
|
42461
42528
|
if (isServerEntry && trace.serverResponse) {
|
|
42462
42529
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-0.5 border-b border-border last:border-0", children: [
|
|
42463
42530
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42464
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-
|
|
42531
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-primary" }),
|
|
42465
42532
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42466
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42533
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary flex-shrink-0", children: t("debug.serverResponse") })
|
|
42467
42534
|
] }),
|
|
42468
42535
|
/* @__PURE__ */ jsxRuntime.jsx(ServerResponseRow, { sr: trace.serverResponse })
|
|
42469
42536
|
] });
|
|
@@ -42472,7 +42539,7 @@ function TransitionRow({ trace }) {
|
|
|
42472
42539
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42473
42540
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
|
|
42474
42541
|
"mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",
|
|
42475
|
-
hasFailedEffects ? "bg-
|
|
42542
|
+
hasFailedEffects ? "bg-error" : "bg-success"
|
|
42476
42543
|
) }),
|
|
42477
42544
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "info", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42478
42545
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground flex-shrink-0", children: trace.traitName }),
|
|
@@ -42486,7 +42553,7 @@ function TransitionRow({ trace }) {
|
|
|
42486
42553
|
] }),
|
|
42487
42554
|
trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1 ml-6 mt-0.5", children: trace.effects.map((eff, i) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn(
|
|
42488
42555
|
"px-1 rounded text-xs",
|
|
42489
|
-
eff.status === "executed" ? "bg-
|
|
42556
|
+
eff.status === "executed" ? "bg-success/10 text-success" : eff.status === "failed" ? "bg-error/10 text-error" : "bg-warning/10 text-warning"
|
|
42490
42557
|
), children: [
|
|
42491
42558
|
eff.status === "executed" ? "\u2713" : eff.status === "failed" ? "\u2717" : "-",
|
|
42492
42559
|
" ",
|
|
@@ -42520,7 +42587,7 @@ function VerifyModePanel({
|
|
|
42520
42587
|
{
|
|
42521
42588
|
className: cn(
|
|
42522
42589
|
"runtime-debugger runtime-debugger--verify",
|
|
42523
|
-
"flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-
|
|
42590
|
+
"flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-accent",
|
|
42524
42591
|
hudBottom ? "" : "fixed bottom-0 left-0 right-0",
|
|
42525
42592
|
className
|
|
42526
42593
|
),
|
|
@@ -42541,8 +42608,8 @@ function VerifyModePanel({
|
|
|
42541
42608
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
|
|
42542
42609
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
|
|
42543
42610
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/70", children: t("debug.localCount", { count: localCount }) }),
|
|
42544
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42545
|
-
traitStates && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42611
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: t("debug.serverCount", { count: serverCount }) }),
|
|
42612
|
+
traitStates && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-accent truncate max-w-[400px]", children: traitStates }),
|
|
42546
42613
|
!expanded && transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
|
|
42547
42614
|
]
|
|
42548
42615
|
}
|
|
@@ -42737,7 +42804,7 @@ function RuntimeDebugger({
|
|
|
42737
42804
|
title: t("debug.openDebugger"),
|
|
42738
42805
|
children: failedChecks > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
|
|
42739
42806
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" }),
|
|
42740
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-
|
|
42807
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-error rounded-full" })
|
|
42741
42808
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" })
|
|
42742
42809
|
}
|
|
42743
42810
|
) : /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "runtime-debugger__panel", children: [
|
|
@@ -42825,7 +42892,7 @@ var init_SegmentRenderer = __esm({
|
|
|
42825
42892
|
"div",
|
|
42826
42893
|
{
|
|
42827
42894
|
className: cn(
|
|
42828
|
-
"border border-
|
|
42895
|
+
"border border-border rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
|
|
42829
42896
|
containerClassName,
|
|
42830
42897
|
className
|
|
42831
42898
|
),
|
|
@@ -47311,6 +47378,14 @@ function useUISlotManager() {
|
|
|
47311
47378
|
[sourceKey]: content
|
|
47312
47379
|
};
|
|
47313
47380
|
const nextAll = { ...prev, [config.target]: nextSources };
|
|
47381
|
+
const priorWriters = Object.keys(slotSources);
|
|
47382
|
+
if (priorWriters.length === 1 && priorWriters[0] !== sourceKey) {
|
|
47383
|
+
log17.warn("slot:contention", {
|
|
47384
|
+
slot: config.target,
|
|
47385
|
+
writers: [priorWriters[0], sourceKey],
|
|
47386
|
+
patternTypes: [slotSources[priorWriters[0]].pattern, content.pattern]
|
|
47387
|
+
});
|
|
47388
|
+
}
|
|
47314
47389
|
if (content.sourceTrait) {
|
|
47315
47390
|
indexTraitRender(content.sourceTrait, content);
|
|
47316
47391
|
notifyTraitSubscribers(content.sourceTrait, content);
|