@almadar/ui 5.123.0 → 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 +265 -227
- package/dist/avl/index.js +267 -229
- package/dist/components/index.cjs +208 -200
- package/dist/components/index.d.cts +4 -3
- package/dist/components/index.d.ts +4 -3
- package/dist/components/index.js +208 -200
- package/dist/context/index.cjs +25 -66
- package/dist/context/index.d.cts +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.js +25 -66
- package/dist/providers/index.cjs +286 -219
- package/dist/providers/index.d.cts +4 -4
- package/dist/providers/index.d.ts +4 -4
- package/dist/providers/index.js +286 -219
- package/dist/runtime/index.cjs +258 -220
- package/dist/runtime/index.d.cts +4 -2
- package/dist/runtime/index.d.ts +4 -2
- package/dist/runtime/index.js +260 -222
- 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
|
@@ -3926,15 +3926,15 @@ var init_TextHighlight = __esm({
|
|
|
3926
3926
|
const typeStyles = {
|
|
3927
3927
|
question: cn(
|
|
3928
3928
|
// Blue border for questions
|
|
3929
|
-
"bg-card border-b-2 border-primary
|
|
3929
|
+
"bg-card border-b-2 border-primary",
|
|
3930
3930
|
"hover:bg-muted",
|
|
3931
|
-
isActive && "bg-primary
|
|
3931
|
+
isActive && "bg-primary/10 ring-2 ring-primary"
|
|
3932
3932
|
),
|
|
3933
3933
|
note: cn(
|
|
3934
3934
|
// Yellow border for notes
|
|
3935
|
-
"bg-card border-b-2 border-
|
|
3935
|
+
"bg-card border-b-2 border-warning",
|
|
3936
3936
|
"hover:bg-muted",
|
|
3937
|
-
isActive && "bg-
|
|
3937
|
+
isActive && "bg-warning/10 ring-2 ring-warning"
|
|
3938
3938
|
)
|
|
3939
3939
|
};
|
|
3940
3940
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4542,7 +4542,7 @@ function DayCell({
|
|
|
4542
4542
|
{
|
|
4543
4543
|
className: cn(
|
|
4544
4544
|
"p-2 text-center cursor-pointer hover:bg-muted transition-colors",
|
|
4545
|
-
isToday && "bg-
|
|
4545
|
+
isToday && "bg-primary/10",
|
|
4546
4546
|
className
|
|
4547
4547
|
),
|
|
4548
4548
|
onClick: handleClick,
|
|
@@ -4553,7 +4553,7 @@ function DayCell({
|
|
|
4553
4553
|
variant: "small",
|
|
4554
4554
|
className: cn(
|
|
4555
4555
|
"font-medium",
|
|
4556
|
-
isToday ? "text-
|
|
4556
|
+
isToday ? "text-primary" : "text-muted-foreground"
|
|
4557
4557
|
),
|
|
4558
4558
|
children: dayAbbr
|
|
4559
4559
|
}
|
|
@@ -4565,7 +4565,7 @@ function DayCell({
|
|
|
4565
4565
|
rounded: "full",
|
|
4566
4566
|
className: cn(
|
|
4567
4567
|
"h-8 w-8 mx-auto items-center justify-center",
|
|
4568
|
-
isToday && "bg-
|
|
4568
|
+
isToday && "bg-primary text-primary-foreground"
|
|
4569
4569
|
),
|
|
4570
4570
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "font-semibold", children: safeDate.getDate() })
|
|
4571
4571
|
}
|
|
@@ -7880,19 +7880,19 @@ var init_ActivationBlock = __esm({
|
|
|
7880
7880
|
"div",
|
|
7881
7881
|
{
|
|
7882
7882
|
className: cn(
|
|
7883
|
-
"bg-
|
|
7883
|
+
"bg-primary/10 border-2 border-primary rounded-lg p-5 mb-6",
|
|
7884
7884
|
className
|
|
7885
7885
|
),
|
|
7886
7886
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
7887
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Lightbulb, { className: "text-
|
|
7887
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Lightbulb, { className: "text-primary flex-shrink-0 mt-1", size: 24 }),
|
|
7888
7888
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
7889
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-
|
|
7890
|
-
/* @__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 }),
|
|
7891
7891
|
isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7892
7892
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7893
7893
|
"textarea",
|
|
7894
7894
|
{
|
|
7895
|
-
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",
|
|
7896
7896
|
placeholder: "Jot down your thoughts...",
|
|
7897
7897
|
value: response,
|
|
7898
7898
|
onChange: (e) => setResponse(e.target.value),
|
|
@@ -7904,7 +7904,7 @@ var init_ActivationBlock = __esm({
|
|
|
7904
7904
|
"button",
|
|
7905
7905
|
{
|
|
7906
7906
|
onClick: handleSubmit,
|
|
7907
|
-
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",
|
|
7908
7908
|
children: "Continue to Lesson \u2192"
|
|
7909
7909
|
}
|
|
7910
7910
|
),
|
|
@@ -7915,7 +7915,7 @@ var init_ActivationBlock = __esm({
|
|
|
7915
7915
|
emit(`UI:${saveEvent}`, { response: "" });
|
|
7916
7916
|
setIsExpanded(false);
|
|
7917
7917
|
},
|
|
7918
|
-
className: "px-4 py-2 text-
|
|
7918
|
+
className: "px-4 py-2 text-primary hover:underline text-sm",
|
|
7919
7919
|
children: "Skip for now"
|
|
7920
7920
|
}
|
|
7921
7921
|
)
|
|
@@ -7924,7 +7924,7 @@ var init_ActivationBlock = __esm({
|
|
|
7924
7924
|
"button",
|
|
7925
7925
|
{
|
|
7926
7926
|
onClick: () => setIsExpanded(true),
|
|
7927
|
-
className: "text-sm text-
|
|
7927
|
+
className: "text-sm text-primary hover:underline font-medium",
|
|
7928
7928
|
children: "\u2713 Answered \xB7 Edit response"
|
|
7929
7929
|
}
|
|
7930
7930
|
)
|
|
@@ -8737,7 +8737,7 @@ var init_AuthLayout = __esm({
|
|
|
8737
8737
|
exports.VStack,
|
|
8738
8738
|
{
|
|
8739
8739
|
className: cn(
|
|
8740
|
-
"hidden lg:flex lg:w-1/2 bg-primary
|
|
8740
|
+
"hidden lg:flex lg:w-1/2 bg-primary relative overflow-hidden",
|
|
8741
8741
|
"justify-between p-12"
|
|
8742
8742
|
),
|
|
8743
8743
|
style: backgroundImage ? {
|
|
@@ -8746,7 +8746,7 @@ var init_AuthLayout = __esm({
|
|
|
8746
8746
|
} : void 0,
|
|
8747
8747
|
gap: "none",
|
|
8748
8748
|
children: [
|
|
8749
|
-
/* @__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" }),
|
|
8750
8750
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "relative z-10", children: /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-3", children: [
|
|
8751
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(
|
|
8752
8752
|
exports.Typography,
|
|
@@ -8831,7 +8831,7 @@ var init_AuthLayout = __esm({
|
|
|
8831
8831
|
),
|
|
8832
8832
|
children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "w-full max-w-md", children: [
|
|
8833
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: [
|
|
8834
|
-
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(
|
|
8835
8835
|
exports.Typography,
|
|
8836
8836
|
{
|
|
8837
8837
|
variant: "body1",
|
|
@@ -10825,7 +10825,7 @@ var init_CodeBlock = __esm({
|
|
|
10825
10825
|
{
|
|
10826
10826
|
justify: "between",
|
|
10827
10827
|
align: "center",
|
|
10828
|
-
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",
|
|
10829
10829
|
children: [
|
|
10830
10830
|
showLanguageBadge && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "default", size: "sm", children: language }),
|
|
10831
10831
|
effectiveCopy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -10834,9 +10834,9 @@ var init_CodeBlock = __esm({
|
|
|
10834
10834
|
variant: "ghost",
|
|
10835
10835
|
size: "sm",
|
|
10836
10836
|
onClick: handleCopy,
|
|
10837
|
-
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",
|
|
10838
10838
|
"aria-label": t("common.copy"),
|
|
10839
|
-
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" })
|
|
10840
10840
|
}
|
|
10841
10841
|
)
|
|
10842
10842
|
]
|
|
@@ -11204,12 +11204,12 @@ var init_BloomQuizBlock = __esm({
|
|
|
11204
11204
|
init_useEventBus();
|
|
11205
11205
|
init_cn();
|
|
11206
11206
|
BLOOM_CONFIG = {
|
|
11207
|
-
remember: { color: "bg-
|
|
11208
|
-
understand: { color: "bg-
|
|
11209
|
-
apply: { color: "bg-
|
|
11210
|
-
analyze: { color: "bg-
|
|
11211
|
-
evaluate: { color: "bg-
|
|
11212
|
-
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" }
|
|
11213
11213
|
};
|
|
11214
11214
|
exports.BloomQuizBlock = ({
|
|
11215
11215
|
level,
|
|
@@ -11235,22 +11235,22 @@ var init_BloomQuizBlock = __esm({
|
|
|
11235
11235
|
"div",
|
|
11236
11236
|
{
|
|
11237
11237
|
className: cn(
|
|
11238
|
-
"rounded-lg border border-
|
|
11238
|
+
"rounded-lg border border-primary p-4 my-4 transition-all",
|
|
11239
11239
|
config.bgColor,
|
|
11240
11240
|
className
|
|
11241
11241
|
),
|
|
11242
11242
|
children: [
|
|
11243
11243
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-3", children: [
|
|
11244
11244
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
11245
|
-
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: [
|
|
11246
11246
|
"Question ",
|
|
11247
11247
|
index + 1
|
|
11248
11248
|
] }),
|
|
11249
|
-
/* @__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 })
|
|
11250
11250
|
] }),
|
|
11251
|
-
isAnswered && /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { className: "text-
|
|
11251
|
+
isAnswered && /* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.CheckCircle, { className: "text-success flex-shrink-0", size: 20 })
|
|
11252
11252
|
] }),
|
|
11253
|
-
/* @__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(
|
|
11254
11254
|
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content: segment.content }, `q-md-${idx}`) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
11255
11255
|
exports.CodeBlock,
|
|
11256
11256
|
{
|
|
@@ -11264,13 +11264,13 @@ var init_BloomQuizBlock = __esm({
|
|
|
11264
11264
|
"button",
|
|
11265
11265
|
{
|
|
11266
11266
|
type: "button",
|
|
11267
|
-
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",
|
|
11268
11268
|
onClick: handleReveal,
|
|
11269
11269
|
children: revealed ? "Hide Answer" : "Reveal Answer"
|
|
11270
11270
|
}
|
|
11271
11271
|
),
|
|
11272
|
-
revealed && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-
|
|
11273
|
-
/* @__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:" }),
|
|
11274
11274
|
answerSegments.map(
|
|
11275
11275
|
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsxRuntime.jsx(exports.MarkdownContent, { content: segment.content }, `a-md-${idx}`) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
11276
11276
|
exports.CodeBlock,
|
|
@@ -11544,12 +11544,12 @@ var init_QuizBlock = __esm({
|
|
|
11544
11544
|
}) => {
|
|
11545
11545
|
const { t } = hooks.useTranslate();
|
|
11546
11546
|
const [revealed, setRevealed] = React74.useState(false);
|
|
11547
|
-
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: [
|
|
11548
11548
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", align: "start", children: [
|
|
11549
|
-
/* @__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" }),
|
|
11550
11550
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "font-medium", children: question })
|
|
11551
11551
|
] }),
|
|
11552
|
-
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,
|
|
11553
11553
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11554
11554
|
exports.Button,
|
|
11555
11555
|
{
|
|
@@ -13461,7 +13461,7 @@ var init_BookTableOfContents = __esm({
|
|
|
13461
13461
|
className: cn(
|
|
13462
13462
|
"justify-start text-left w-full",
|
|
13463
13463
|
direction === "rtl" && "text-right",
|
|
13464
|
-
isCurrent && "bg-
|
|
13464
|
+
isCurrent && "bg-primary/10 text-primary"
|
|
13465
13465
|
),
|
|
13466
13466
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "truncate", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", children: String(chapter.title ?? "") }) })
|
|
13467
13467
|
},
|
|
@@ -14709,7 +14709,7 @@ function CalendarGrid({
|
|
|
14709
14709
|
border: true,
|
|
14710
14710
|
className: cn(
|
|
14711
14711
|
"cursor-pointer hover:shadow-sm transition-shadow text-xs truncate",
|
|
14712
|
-
color ? color : "bg-
|
|
14712
|
+
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
14713
14713
|
),
|
|
14714
14714
|
onClick: (e) => handleEventClick(event, e),
|
|
14715
14715
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "truncate font-medium", children: event.title })
|
|
@@ -14807,7 +14807,7 @@ function CalendarGrid({
|
|
|
14807
14807
|
onClick: () => handleSlotClick(day, time),
|
|
14808
14808
|
className: cn(
|
|
14809
14809
|
"border-l border-border",
|
|
14810
|
-
isToday && "bg-
|
|
14810
|
+
isToday && "bg-primary/10"
|
|
14811
14811
|
),
|
|
14812
14812
|
...longPressEvent ? {
|
|
14813
14813
|
onPointerDown: () => startLongPress(day, time),
|
|
@@ -18483,31 +18483,31 @@ var init_CodeRunnerPanel = __esm({
|
|
|
18483
18483
|
}
|
|
18484
18484
|
)
|
|
18485
18485
|
] }),
|
|
18486
|
-
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: [
|
|
18487
18487
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
18488
18488
|
exports.HStack,
|
|
18489
18489
|
{
|
|
18490
18490
|
gap: "sm",
|
|
18491
18491
|
align: "center",
|
|
18492
|
-
className: "px-3 py-2 bg-
|
|
18492
|
+
className: "px-3 py-2 bg-card border-b border-border",
|
|
18493
18493
|
children: [
|
|
18494
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Terminal, { size: 16, className: "text-
|
|
18495
|
-
/* @__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" })
|
|
18496
18496
|
]
|
|
18497
18497
|
}
|
|
18498
18498
|
),
|
|
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-
|
|
18500
|
-
output?.stdout ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18501
|
-
output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18502
|
-
!output?.stdout && !output?.stderr ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
18503
|
-
output && output.testResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "mt-3 pt-3 border-t border-
|
|
18504
|
-
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" }),
|
|
18505
18505
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "xs", className: "flex-1", children: [
|
|
18506
18506
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
18507
18507
|
exports.Typography,
|
|
18508
18508
|
{
|
|
18509
18509
|
variant: "small",
|
|
18510
|
-
className: test.passed ? "text-
|
|
18510
|
+
className: test.passed ? "text-success" : "text-error",
|
|
18511
18511
|
children: [
|
|
18512
18512
|
"Test ",
|
|
18513
18513
|
index + 1,
|
|
@@ -18516,15 +18516,15 @@ var init_CodeRunnerPanel = __esm({
|
|
|
18516
18516
|
]
|
|
18517
18517
|
}
|
|
18518
18518
|
),
|
|
18519
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
18519
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
|
|
18520
18520
|
"Input: ",
|
|
18521
18521
|
test.input
|
|
18522
18522
|
] }),
|
|
18523
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
18523
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
|
|
18524
18524
|
"Expected: ",
|
|
18525
18525
|
test.expectedOutput
|
|
18526
18526
|
] }),
|
|
18527
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
18527
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-background", children: [
|
|
18528
18528
|
"Actual: ",
|
|
18529
18529
|
test.actualOutput
|
|
18530
18530
|
] })
|
|
@@ -18709,14 +18709,14 @@ var init_ConnectionBlock = __esm({
|
|
|
18709
18709
|
"div",
|
|
18710
18710
|
{
|
|
18711
18711
|
className: cn(
|
|
18712
|
-
"bg-
|
|
18712
|
+
"bg-success/10 border-l-4 border-success rounded-r-lg p-5 mb-6",
|
|
18713
18713
|
className
|
|
18714
18714
|
),
|
|
18715
18715
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18716
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Link2, { className: "text-
|
|
18716
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.Link2, { className: "text-success flex-shrink-0 mt-1", size: 20 }),
|
|
18717
18717
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
18718
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold text-
|
|
18719
|
-
/* @__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 }) })
|
|
18720
18720
|
] })
|
|
18721
18721
|
] })
|
|
18722
18722
|
}
|
|
@@ -19107,7 +19107,7 @@ function CounterStandard({
|
|
|
19107
19107
|
variant: "h1",
|
|
19108
19108
|
className: cn(
|
|
19109
19109
|
sizeStyles8[size].display,
|
|
19110
|
-
"font-bold tabular-nums text-primary
|
|
19110
|
+
"font-bold tabular-nums text-primary"
|
|
19111
19111
|
),
|
|
19112
19112
|
children: resolved.count
|
|
19113
19113
|
}
|
|
@@ -19180,7 +19180,7 @@ function CounterFull({
|
|
|
19180
19180
|
variant: "h1",
|
|
19181
19181
|
className: cn(
|
|
19182
19182
|
sizeStyles8[size].display,
|
|
19183
|
-
"font-bold tabular-nums text-primary
|
|
19183
|
+
"font-bold tabular-nums text-primary"
|
|
19184
19184
|
),
|
|
19185
19185
|
children: resolved.count
|
|
19186
19186
|
}
|
|
@@ -19445,11 +19445,11 @@ var init_DashboardLayout = __esm({
|
|
|
19445
19445
|
className: "h-16 px-4 border-b border-border dark:border-border",
|
|
19446
19446
|
children: [
|
|
19447
19447
|
/* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2", children: [
|
|
19448
|
-
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(
|
|
19449
19449
|
exports.Typography,
|
|
19450
19450
|
{
|
|
19451
19451
|
variant: "small",
|
|
19452
|
-
className: "text-
|
|
19452
|
+
className: "text-primary-foreground font-bold text-sm",
|
|
19453
19453
|
as: "span",
|
|
19454
19454
|
children: appName.charAt(0).toUpperCase()
|
|
19455
19455
|
}
|
|
@@ -19528,11 +19528,11 @@ var init_DashboardLayout = __esm({
|
|
|
19528
19528
|
className: "hidden @md/dashboard:flex items-center gap-1 overflow-x-auto",
|
|
19529
19529
|
children: [
|
|
19530
19530
|
/* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Link, { to: "/", className: "flex items-center gap-2 mr-3 shrink-0", children: [
|
|
19531
|
-
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(
|
|
19532
19532
|
exports.Typography,
|
|
19533
19533
|
{
|
|
19534
19534
|
variant: "small",
|
|
19535
|
-
className: "text-
|
|
19535
|
+
className: "text-primary-foreground font-bold text-xs",
|
|
19536
19536
|
as: "span",
|
|
19537
19537
|
children: appName.charAt(0).toUpperCase()
|
|
19538
19538
|
}
|
|
@@ -19592,8 +19592,8 @@ var init_DashboardLayout = __esm({
|
|
|
19592
19592
|
{
|
|
19593
19593
|
as: "span",
|
|
19594
19594
|
className: cn(
|
|
19595
|
-
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-xs font-semibold
|
|
19596
|
-
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"
|
|
19597
19597
|
),
|
|
19598
19598
|
children: action.badge
|
|
19599
19599
|
}
|
|
@@ -19615,7 +19615,7 @@ var init_DashboardLayout = __esm({
|
|
|
19615
19615
|
exports.Box,
|
|
19616
19616
|
{
|
|
19617
19617
|
as: "span",
|
|
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-
|
|
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",
|
|
19619
19619
|
children: unreadCount > 99 ? "99+" : unreadCount
|
|
19620
19620
|
}
|
|
19621
19621
|
)
|
|
@@ -19898,7 +19898,7 @@ function SubMenu({
|
|
|
19898
19898
|
),
|
|
19899
19899
|
children: [
|
|
19900
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" })),
|
|
19901
|
-
/* @__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 }),
|
|
19902
19902
|
item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-xs font-medium", children: item.badge })
|
|
19903
19903
|
]
|
|
19904
19904
|
},
|
|
@@ -19955,7 +19955,7 @@ function MenuItemRow({
|
|
|
19955
19955
|
exports.Typography,
|
|
19956
19956
|
{
|
|
19957
19957
|
variant: "small",
|
|
19958
|
-
className: cn("flex-1", isDanger && "text-
|
|
19958
|
+
className: cn("flex-1", isDanger && "text-error"),
|
|
19959
19959
|
children: item.label
|
|
19960
19960
|
}
|
|
19961
19961
|
),
|
|
@@ -20723,20 +20723,24 @@ function DataGrid({
|
|
|
20723
20723
|
const bodyFields = fieldDefs.filter((f3) => f3 !== titleField && !badgeFields.includes(f3));
|
|
20724
20724
|
const primaryActions = actionDefs.filter((a) => a.variant !== "danger");
|
|
20725
20725
|
const dangerActions = actionDefs.filter((a) => a.variant === "danger");
|
|
20726
|
-
const
|
|
20727
|
-
e.stopPropagation();
|
|
20728
|
-
const payload = {
|
|
20729
|
-
id: itemData.id,
|
|
20730
|
-
row: itemData
|
|
20731
|
-
};
|
|
20732
|
-
eventBus.emit(`UI:${action.event}`, payload);
|
|
20726
|
+
const fireAction = (action, itemData) => {
|
|
20733
20727
|
if (action.navigatesTo) {
|
|
20734
20728
|
const url = action.navigatesTo.replace(
|
|
20735
20729
|
/\{\{row\.(\w+(?:\.\w+)*)\}\}/g,
|
|
20736
20730
|
(_, field) => String(itemData[field] ?? "")
|
|
20737
20731
|
);
|
|
20738
|
-
eventBus.emit("UI:NAVIGATE", { url });
|
|
20732
|
+
eventBus.emit("UI:NAVIGATE", { url, row: itemData });
|
|
20733
|
+
return;
|
|
20739
20734
|
}
|
|
20735
|
+
const payload = {
|
|
20736
|
+
id: itemData.id,
|
|
20737
|
+
row: itemData
|
|
20738
|
+
};
|
|
20739
|
+
eventBus.emit(`UI:${action.event}`, payload);
|
|
20740
|
+
};
|
|
20741
|
+
const handleActionClick = (action, itemData) => (e) => {
|
|
20742
|
+
e.stopPropagation();
|
|
20743
|
+
fireAction(action, itemData);
|
|
20740
20744
|
};
|
|
20741
20745
|
const hasRenderProp = typeof children === "function";
|
|
20742
20746
|
React74.useEffect(() => {
|
|
@@ -20838,10 +20842,7 @@ function DataGrid({
|
|
|
20838
20842
|
label: action.label,
|
|
20839
20843
|
icon: action.icon,
|
|
20840
20844
|
event: action.event,
|
|
20841
|
-
onClick: () =>
|
|
20842
|
-
id: itemData.id,
|
|
20843
|
-
row: itemData
|
|
20844
|
-
})
|
|
20845
|
+
onClick: () => fireAction(action, itemData)
|
|
20845
20846
|
}))
|
|
20846
20847
|
}
|
|
20847
20848
|
)
|
|
@@ -20983,10 +20984,7 @@ function DataGrid({
|
|
|
20983
20984
|
label: action.label,
|
|
20984
20985
|
icon: action.icon,
|
|
20985
20986
|
event: action.event,
|
|
20986
|
-
onClick: () =>
|
|
20987
|
-
id: itemData.id,
|
|
20988
|
-
row: itemData
|
|
20989
|
-
})
|
|
20987
|
+
onClick: () => fireAction(action, itemData)
|
|
20990
20988
|
}))
|
|
20991
20989
|
}
|
|
20992
20990
|
)
|
|
@@ -24005,8 +24003,8 @@ var init_RelationSelect = __esm({
|
|
|
24005
24003
|
disabled,
|
|
24006
24004
|
className: cn(
|
|
24007
24005
|
"w-full justify-between font-normal",
|
|
24008
|
-
error && "border-
|
|
24009
|
-
isOpen && "ring-2 ring-primary
|
|
24006
|
+
error && "border-error/50 focus:border-error focus:ring-error",
|
|
24007
|
+
isOpen && "ring-2 ring-primary border-primary"
|
|
24010
24008
|
),
|
|
24011
24009
|
children: [
|
|
24012
24010
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -24086,7 +24084,7 @@ var init_RelationSelect = __esm({
|
|
|
24086
24084
|
paddingY: "sm",
|
|
24087
24085
|
className: cn(
|
|
24088
24086
|
"text-left text-sm hover:bg-muted focus:outline-none focus:bg-muted",
|
|
24089
|
-
option.value === value && "bg-primary
|
|
24087
|
+
option.value === value && "bg-primary/10 text-primary",
|
|
24090
24088
|
option.disabled && "opacity-50 cursor-not-allowed"
|
|
24091
24089
|
),
|
|
24092
24090
|
onClick: () => handleSelect(option),
|
|
@@ -24243,7 +24241,7 @@ var init_SidePanel = __esm({
|
|
|
24243
24241
|
showOverlay && /* @__PURE__ */ jsxRuntime.jsx(exports.Presence, { show: isOpen, animation: "overlay", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
24244
24242
|
exports.Box,
|
|
24245
24243
|
{
|
|
24246
|
-
className: "fixed inset-0 bg-
|
|
24244
|
+
className: "fixed inset-0 bg-background/80 backdrop-blur-sm z-40 lg:hidden",
|
|
24247
24245
|
onClick: handleClose
|
|
24248
24246
|
}
|
|
24249
24247
|
) }),
|
|
@@ -24610,7 +24608,7 @@ var init_WizardNavigation = __esm({
|
|
|
24610
24608
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-left", size: "sm" }),
|
|
24611
24609
|
resolvedBackLabel
|
|
24612
24610
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(exports.Box, {}),
|
|
24613
|
-
/* @__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) }) }) }),
|
|
24614
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: [
|
|
24615
24613
|
resolvedNextLabel,
|
|
24616
24614
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-right", size: "sm" })
|
|
@@ -29329,6 +29327,7 @@ var init_Lightbox = __esm({
|
|
|
29329
29327
|
{
|
|
29330
29328
|
className: cn(
|
|
29331
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
|
|
29332
29331
|
"bg-black bg-opacity-90",
|
|
29333
29332
|
className
|
|
29334
29333
|
),
|
|
@@ -29351,7 +29350,7 @@ var init_Lightbox = __esm({
|
|
|
29351
29350
|
"p-2 rounded-full",
|
|
29352
29351
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29353
29352
|
"hover:bg-opacity-70 transition-opacity",
|
|
29354
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29353
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29355
29354
|
),
|
|
29356
29355
|
"aria-label": t("aria.closeModal"),
|
|
29357
29356
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "x", className: "w-6 h-6" })
|
|
@@ -29370,7 +29369,7 @@ var init_Lightbox = __esm({
|
|
|
29370
29369
|
"p-2 rounded-full",
|
|
29371
29370
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29372
29371
|
"hover:bg-opacity-70 transition-opacity",
|
|
29373
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29372
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29374
29373
|
),
|
|
29375
29374
|
"aria-label": t("aria.previousImage"),
|
|
29376
29375
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-left", className: "w-8 h-8" })
|
|
@@ -29407,7 +29406,7 @@ var init_Lightbox = __esm({
|
|
|
29407
29406
|
"p-2 rounded-full",
|
|
29408
29407
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29409
29408
|
"hover:bg-opacity-70 transition-opacity",
|
|
29410
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29409
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29411
29410
|
),
|
|
29412
29411
|
"aria-label": t("aria.nextImage"),
|
|
29413
29412
|
children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "chevron-right", className: "w-8 h-8" })
|
|
@@ -32480,6 +32479,7 @@ var init_QrScanner = __esm({
|
|
|
32480
32479
|
overflow: "hidden",
|
|
32481
32480
|
rounded: "sm",
|
|
32482
32481
|
className: cn(
|
|
32482
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32483
32483
|
"bg-black",
|
|
32484
32484
|
"aspect-square w-full max-w-md",
|
|
32485
32485
|
className
|
|
@@ -32544,7 +32544,9 @@ var init_QrScanner = __esm({
|
|
|
32544
32544
|
type: "button",
|
|
32545
32545
|
onClick: togglePause,
|
|
32546
32546
|
className: cn(
|
|
32547
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32547
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
|
|
32548
32550
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32549
32551
|
),
|
|
32550
32552
|
"aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
|
|
@@ -32557,7 +32559,9 @@ var init_QrScanner = __esm({
|
|
|
32557
32559
|
type: "button",
|
|
32558
32560
|
onClick: toggleFacing,
|
|
32559
32561
|
className: cn(
|
|
32562
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32560
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
|
|
32561
32565
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32562
32566
|
),
|
|
32563
32567
|
"aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
|
|
@@ -32570,7 +32574,9 @@ var init_QrScanner = __esm({
|
|
|
32570
32574
|
type: "button",
|
|
32571
32575
|
onClick: handleMockScan,
|
|
32572
32576
|
className: cn(
|
|
32577
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32573
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
|
|
32574
32580
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32575
32581
|
),
|
|
32576
32582
|
"aria-label": t("aria.mockScanDev"),
|
|
@@ -35306,10 +35312,10 @@ var init_ModuleCard = __esm({
|
|
|
35306
35312
|
init_avl_atom_types();
|
|
35307
35313
|
init_MiniStateMachine();
|
|
35308
35314
|
PERSISTENCE_BORDER = {
|
|
35309
|
-
persistent: "border-l-[3px] border-l-
|
|
35310
|
-
runtime: "border-l-[3px] border-l-
|
|
35311
|
-
singleton: "border-l-[3px] border-l-
|
|
35312
|
-
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"
|
|
35313
35319
|
};
|
|
35314
35320
|
PERSISTENCE_ICON = {
|
|
35315
35321
|
persistent: "\u26C1",
|
|
@@ -35339,8 +35345,8 @@ var init_ModuleCard = __esm({
|
|
|
35339
35345
|
className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
35340
35346
|
style: { minWidth: 280, maxWidth: 400 },
|
|
35341
35347
|
children: [
|
|
35342
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "target", position: react.Position.Left, className: "!w-2.5 !h-2.5 !bg-
|
|
35343
|
-
/* @__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" }),
|
|
35344
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 }) }),
|
|
35345
35351
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `px-3 py-2 border-b border-[var(--color-border)] ${PERSISTENCE_BORDER[persistence] ?? ""}`, children: [
|
|
35346
35352
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
|
|
@@ -37796,19 +37802,19 @@ var init_ReflectionBlock = __esm({
|
|
|
37796
37802
|
"div",
|
|
37797
37803
|
{
|
|
37798
37804
|
className: cn(
|
|
37799
|
-
"my-6 border-l-4 border-
|
|
37805
|
+
"my-6 border-l-4 border-warning bg-warning/10 rounded-r-lg p-4",
|
|
37800
37806
|
className
|
|
37801
37807
|
),
|
|
37802
37808
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
37803
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-
|
|
37809
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-warning flex-shrink-0 mt-1", size: 20 }),
|
|
37804
37810
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
37805
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-
|
|
37806
|
-
/* @__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 }),
|
|
37807
37813
|
isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
37808
37814
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
37809
37815
|
"textarea",
|
|
37810
37816
|
{
|
|
37811
|
-
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",
|
|
37812
37818
|
placeholder: "Your thoughts...",
|
|
37813
37819
|
value: note,
|
|
37814
37820
|
onChange: (e) => setNote(e.target.value),
|
|
@@ -37819,7 +37825,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37819
37825
|
"button",
|
|
37820
37826
|
{
|
|
37821
37827
|
onClick: handleSave,
|
|
37822
|
-
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",
|
|
37823
37829
|
children: "Save & Continue"
|
|
37824
37830
|
}
|
|
37825
37831
|
)
|
|
@@ -37827,7 +37833,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37827
37833
|
"button",
|
|
37828
37834
|
{
|
|
37829
37835
|
onClick: () => setIsExpanded(true),
|
|
37830
|
-
className: "text-sm text-
|
|
37836
|
+
className: "text-sm text-warning hover:underline",
|
|
37831
37837
|
children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
|
|
37832
37838
|
}
|
|
37833
37839
|
)
|
|
@@ -38331,7 +38337,7 @@ function DataTable({
|
|
|
38331
38337
|
)),
|
|
38332
38338
|
rowActions && /* @__PURE__ */ jsxRuntime.jsx("th", { className: "w-12 px-4 py-3" })
|
|
38333
38339
|
] }) }),
|
|
38334
|
-
/* @__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(
|
|
38335
38341
|
"td",
|
|
38336
38342
|
{
|
|
38337
38343
|
colSpan: normalizedColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0),
|
|
@@ -38702,7 +38708,7 @@ var init_DetailPanel = __esm({
|
|
|
38702
38708
|
};
|
|
38703
38709
|
const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
|
|
38704
38710
|
const fieldTypeMap = isFieldDefArray(propFields) ? buildFieldTypeMap(propFields) : {};
|
|
38705
|
-
React74.useCallback(
|
|
38711
|
+
const handleActionClick = React74.useCallback(
|
|
38706
38712
|
(action, data2) => {
|
|
38707
38713
|
if (action.navigatesTo) {
|
|
38708
38714
|
const url = action.navigatesTo.replace(
|
|
@@ -38894,8 +38900,9 @@ var init_DetailPanel = __esm({
|
|
|
38894
38900
|
{
|
|
38895
38901
|
variant: action.variant || "secondary",
|
|
38896
38902
|
size: "sm",
|
|
38897
|
-
action: action.event,
|
|
38903
|
+
action: action.navigatesTo ? void 0 : action.event,
|
|
38898
38904
|
actionPayload: { row: normalizedData },
|
|
38905
|
+
onClick: action.navigatesTo ? () => handleActionClick(action, normalizedData) : void 0,
|
|
38899
38906
|
icon: action.icon,
|
|
38900
38907
|
"data-testid": action.event ? `action-${action.event}` : void 0,
|
|
38901
38908
|
"data-row-id": normalizedData?.id !== void 0 ? String(normalizedData.id) : void 0,
|
|
@@ -40938,8 +40945,9 @@ var init_MediaGallery = __esm({
|
|
|
40938
40945
|
)
|
|
40939
40946
|
}
|
|
40940
40947
|
),
|
|
40941
|
-
item.caption &&
|
|
40942
|
-
|
|
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" }) })
|
|
40943
40951
|
]
|
|
40944
40952
|
},
|
|
40945
40953
|
item.id
|
|
@@ -40968,7 +40976,7 @@ var init_MediaGallery = __esm({
|
|
|
40968
40976
|
size: "sm",
|
|
40969
40977
|
icon: LucideIcons2.X,
|
|
40970
40978
|
action: "LIGHTBOX_CLOSE",
|
|
40971
|
-
className: "text-
|
|
40979
|
+
className: "text-foreground hover:bg-muted/50"
|
|
40972
40980
|
}
|
|
40973
40981
|
) }),
|
|
40974
40982
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -40979,7 +40987,7 @@ var init_MediaGallery = __esm({
|
|
|
40979
40987
|
className: "max-w-full max-h-[80vh] object-contain rounded-md"
|
|
40980
40988
|
}
|
|
40981
40989
|
),
|
|
40982
|
-
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 })
|
|
40983
40991
|
]
|
|
40984
40992
|
}
|
|
40985
40993
|
)
|
|
@@ -41421,7 +41429,7 @@ function WalkMinimap() {
|
|
|
41421
41429
|
{
|
|
41422
41430
|
variant,
|
|
41423
41431
|
size: "sm",
|
|
41424
|
-
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-
|
|
41432
|
+
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-info" : ""}`,
|
|
41425
41433
|
children: [
|
|
41426
41434
|
isDone ? "\u2713" : isActive ? "\u25CF" : "\u25CB",
|
|
41427
41435
|
" ",
|
|
@@ -41562,13 +41570,13 @@ function WalkMinimap() {
|
|
|
41562
41570
|
})
|
|
41563
41571
|
] }) }),
|
|
41564
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: [
|
|
41565
|
-
/* @__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: [
|
|
41566
41574
|
"Engine: ",
|
|
41567
41575
|
engineCount,
|
|
41568
41576
|
"/",
|
|
41569
41577
|
totalTransitions
|
|
41570
41578
|
] }),
|
|
41571
|
-
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: [
|
|
41572
41580
|
"DOM: ",
|
|
41573
41581
|
domCount
|
|
41574
41582
|
] }),
|
|
@@ -41601,13 +41609,13 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41601
41609
|
const accordionItems = traits2.map((trait) => ({
|
|
41602
41610
|
id: trait.id,
|
|
41603
41611
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41604
|
-
/* @__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 }),
|
|
41605
41613
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "success", size: "sm", children: trait.currentState }),
|
|
41606
|
-
/* @__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 }) })
|
|
41607
41615
|
] }),
|
|
41608
41616
|
content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
41609
41617
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41610
|
-
/* @__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") }),
|
|
41611
41619
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
41612
41620
|
exports.Badge,
|
|
41613
41621
|
{
|
|
@@ -41619,18 +41627,18 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41619
41627
|
)) })
|
|
41620
41628
|
] }),
|
|
41621
41629
|
trait.transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41622
|
-
/* @__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") }),
|
|
41623
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: [
|
|
41624
41632
|
t2.from,
|
|
41625
41633
|
" \u2192 ",
|
|
41626
41634
|
t2.to,
|
|
41627
41635
|
" ",
|
|
41628
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
41636
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
|
|
41629
41637
|
"(",
|
|
41630
41638
|
t2.event,
|
|
41631
41639
|
")"
|
|
41632
41640
|
] }),
|
|
41633
|
-
t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
41641
|
+
t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-warning", children: [
|
|
41634
41642
|
" [",
|
|
41635
41643
|
t2.guard,
|
|
41636
41644
|
"]"
|
|
@@ -41638,7 +41646,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41638
41646
|
] }, i)) })
|
|
41639
41647
|
] }),
|
|
41640
41648
|
trait.guards.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41641
|
-
/* @__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") }),
|
|
41642
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: [
|
|
41643
41651
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: g.name }),
|
|
41644
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" })
|
|
@@ -41681,11 +41689,11 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41681
41689
|
};
|
|
41682
41690
|
const TickCard = ({ tick, active }) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: `p-3 ${!active ? "opacity-50" : ""}`, children: [
|
|
41683
41691
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
41684
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-
|
|
41685
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41686
|
-
/* @__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 })
|
|
41687
41695
|
] }),
|
|
41688
|
-
/* @__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: [
|
|
41689
41697
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
41690
41698
|
tick.interval,
|
|
41691
41699
|
"ms"
|
|
@@ -41708,7 +41716,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41708
41716
|
] });
|
|
41709
41717
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--ticks", children: [
|
|
41710
41718
|
activeTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41711
|
-
/* @__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: [
|
|
41712
41720
|
"Active (",
|
|
41713
41721
|
activeTicks.length,
|
|
41714
41722
|
")"
|
|
@@ -41716,7 +41724,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41716
41724
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "sm", children: activeTicks.map((tick) => /* @__PURE__ */ jsxRuntime.jsx(TickCard, { tick, active: true }, tick.id)) })
|
|
41717
41725
|
] }),
|
|
41718
41726
|
inactiveTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41719
|
-
/* @__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: [
|
|
41720
41728
|
"Inactive (",
|
|
41721
41729
|
inactiveTicks.length,
|
|
41722
41730
|
")"
|
|
@@ -41764,33 +41772,33 @@ function EntitiesTab({ snapshot }) {
|
|
|
41764
41772
|
id: `singleton-${name}`,
|
|
41765
41773
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41766
41774
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "primary", size: "sm", children: t("debug.singleton") }),
|
|
41767
|
-
/* @__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 })
|
|
41768
41776
|
] }),
|
|
41769
|
-
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) })
|
|
41770
41778
|
}));
|
|
41771
41779
|
const runtimeItems = runtimeEntities.slice(0, 20).map((entity) => ({
|
|
41772
41780
|
id: entity.id,
|
|
41773
41781
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41774
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41775
|
-
/* @__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: [
|
|
41776
41784
|
"#",
|
|
41777
41785
|
entity.id.slice(0, 8)
|
|
41778
41786
|
] })
|
|
41779
41787
|
] }),
|
|
41780
|
-
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) })
|
|
41781
41789
|
}));
|
|
41782
41790
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--entities", children: [
|
|
41783
41791
|
singletonItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41784
|
-
/* @__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 }) }),
|
|
41785
41793
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: singletonItems, multiple: true })
|
|
41786
41794
|
] }),
|
|
41787
41795
|
runtimeItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41788
|
-
/* @__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 }) }),
|
|
41789
41797
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: runtimeItems, multiple: true }),
|
|
41790
|
-
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 }) })
|
|
41791
41799
|
] }),
|
|
41792
41800
|
persistentEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41793
|
-
/* @__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") }),
|
|
41794
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: [
|
|
41795
41803
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: type }),
|
|
41796
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") })
|
|
@@ -41875,7 +41883,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41875
41883
|
);
|
|
41876
41884
|
})
|
|
41877
41885
|
] }),
|
|
41878
|
-
/* @__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: [
|
|
41879
41887
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41880
41888
|
exports.Checkbox,
|
|
41881
41889
|
{
|
|
@@ -41890,18 +41898,18 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41890
41898
|
"div",
|
|
41891
41899
|
{
|
|
41892
41900
|
ref: containerRef,
|
|
41893
|
-
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",
|
|
41894
41902
|
children: filteredEvents.slice(-100).map((event) => {
|
|
41895
41903
|
const { variant, icon } = TYPE_BADGES[event.type] || { variant: "default", icon: "\u2022" };
|
|
41896
41904
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41897
41905
|
"div",
|
|
41898
41906
|
{
|
|
41899
|
-
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",
|
|
41900
41908
|
children: [
|
|
41901
|
-
/* @__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) }),
|
|
41902
41910
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: icon }),
|
|
41903
41911
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", className: "min-w-[60px] justify-center", children: event.source }),
|
|
41904
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41912
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: event.message })
|
|
41905
41913
|
]
|
|
41906
41914
|
},
|
|
41907
41915
|
event.id
|
|
@@ -41965,21 +41973,21 @@ function GuardsPanel({ guards }) {
|
|
|
41965
41973
|
id: guard.id,
|
|
41966
41974
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41967
41975
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: guard.result ? "success" : "danger", size: "sm", children: guard.result ? "\u2713" : "\u2717" }),
|
|
41968
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41969
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41970
|
-
/* @__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) })
|
|
41971
41979
|
] }),
|
|
41972
41980
|
content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
41973
41981
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41974
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41975
|
-
/* @__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 })
|
|
41976
41984
|
] }),
|
|
41977
41985
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41978
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41979
|
-
/* @__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) })
|
|
41980
41988
|
] }),
|
|
41981
41989
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41982
|
-
/* @__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") }),
|
|
41983
41991
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: guard.context.traitName })
|
|
41984
41992
|
] })
|
|
41985
41993
|
] })
|
|
@@ -42035,7 +42043,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
42035
42043
|
(a, b) => (sortOrder[a.status] ?? 4) - (sortOrder[b.status] ?? 4)
|
|
42036
42044
|
);
|
|
42037
42045
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--verification", children: [
|
|
42038
|
-
/* @__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: [
|
|
42039
42047
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Badge, { variant: "success", size: "sm", children: [
|
|
42040
42048
|
summary.passed,
|
|
42041
42049
|
" passed"
|
|
@@ -42052,7 +42060,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
42052
42060
|
summary.pending,
|
|
42053
42061
|
" pending"
|
|
42054
42062
|
] }),
|
|
42055
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
42063
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: [
|
|
42056
42064
|
summary.totalChecks,
|
|
42057
42065
|
" total checks"
|
|
42058
42066
|
] })
|
|
@@ -42062,12 +42070,12 @@ function VerificationTab({ checks, summary }) {
|
|
|
42062
42070
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42063
42071
|
"div",
|
|
42064
42072
|
{
|
|
42065
|
-
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",
|
|
42066
42074
|
children: [
|
|
42067
42075
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: config.variant, size: "sm", className: "min-w-[20px] justify-center mt-0.5", children: config.icon }),
|
|
42068
42076
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
42069
42077
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "break-words", children: check.label }),
|
|
42070
|
-
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 })
|
|
42071
42079
|
] }),
|
|
42072
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", {
|
|
42073
42081
|
hour12: false,
|
|
@@ -42102,10 +42110,10 @@ var init_VerificationTab = __esm({
|
|
|
42102
42110
|
function EffectBadge({ effect }) {
|
|
42103
42111
|
const variant = EFFECT_STATUS_VARIANT[effect.status] || "default";
|
|
42104
42112
|
const icon = effect.status === "executed" ? "\u2713" : effect.status === "failed" ? "\u2717" : "-";
|
|
42105
|
-
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: [
|
|
42106
42114
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant, size: "sm", className: "!text-[9px] !px-1 !py-0", children: icon }),
|
|
42107
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42108
|
-
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 })
|
|
42109
42117
|
] });
|
|
42110
42118
|
}
|
|
42111
42119
|
function TransitionTimeline({ transitions }) {
|
|
@@ -42140,8 +42148,8 @@ function TransitionTimeline({ transitions }) {
|
|
|
42140
42148
|
const sorted = [...transitions].reverse();
|
|
42141
42149
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
|
|
42142
42150
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-2", children: [
|
|
42143
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42144
|
-
/* @__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: [
|
|
42145
42153
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42146
42154
|
exports.Checkbox,
|
|
42147
42155
|
{
|
|
@@ -42166,22 +42174,22 @@ function TransitionTimeline({ transitions }) {
|
|
|
42166
42174
|
{
|
|
42167
42175
|
className: `
|
|
42168
42176
|
relative pl-6 pb-3 border-l-2 cursor-pointer
|
|
42169
|
-
hover:bg-
|
|
42170
|
-
${hasFailedEffects ? "border-
|
|
42177
|
+
hover:bg-muted/50 rounded-r
|
|
42178
|
+
${hasFailedEffects ? "border-error" : "border-border"}
|
|
42171
42179
|
`,
|
|
42172
42180
|
onClick: () => setExpandedId(isExpanded ? null : trace.id),
|
|
42173
42181
|
children: [
|
|
42174
42182
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `
|
|
42175
42183
|
absolute left-[-5px] top-1 w-2 h-2 rounded-full
|
|
42176
|
-
${hasFailedEffects ? "bg-
|
|
42184
|
+
${hasFailedEffects ? "bg-error" : allPassed ? "bg-success" : "bg-muted-foreground"}
|
|
42177
42185
|
` }),
|
|
42178
42186
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs py-1 px-2", children: [
|
|
42179
|
-
/* @__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) }),
|
|
42180
42188
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "primary", size: "sm", className: "min-w-[60px] justify-center", children: trace.traitName }),
|
|
42181
|
-
/* @__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: [
|
|
42182
42190
|
trace.from,
|
|
42183
42191
|
" ",
|
|
42184
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42192
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/50", children: "\u2192" }),
|
|
42185
42193
|
" ",
|
|
42186
42194
|
trace.to
|
|
42187
42195
|
] }),
|
|
@@ -42198,9 +42206,9 @@ function TransitionTimeline({ transitions }) {
|
|
|
42198
42206
|
]
|
|
42199
42207
|
}
|
|
42200
42208
|
),
|
|
42201
|
-
/* @__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 }) })
|
|
42202
42210
|
] }),
|
|
42203
|
-
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: [
|
|
42204
42212
|
/* @__PURE__ */ jsxRuntime.jsx(EffectBadge, { effect }),
|
|
42205
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) }),
|
|
42206
42214
|
effect.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
|
|
@@ -42234,8 +42242,8 @@ var init_TransitionTimeline = __esm({
|
|
|
42234
42242
|
}
|
|
42235
42243
|
});
|
|
42236
42244
|
function StatRow({ label, value, variant }) {
|
|
42237
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-
|
|
42238
|
-
/* @__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 }),
|
|
42239
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) })
|
|
42240
42248
|
] });
|
|
42241
42249
|
}
|
|
@@ -42264,7 +42272,7 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42264
42272
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "debug-tab debug-tab--bridge", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
42265
42273
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3", children: [
|
|
42266
42274
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
42267
|
-
/* @__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"}` }),
|
|
42268
42276
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
|
|
42269
42277
|
] }),
|
|
42270
42278
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "xs", children: [
|
|
@@ -42299,11 +42307,11 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42299
42307
|
)
|
|
42300
42308
|
] })
|
|
42301
42309
|
] }),
|
|
42302
|
-
bridge.lastError && /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3 border-
|
|
42303
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "text-
|
|
42304
|
-
/* @__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 })
|
|
42305
42313
|
] }),
|
|
42306
|
-
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 }) }) })
|
|
42307
42315
|
] }) });
|
|
42308
42316
|
}
|
|
42309
42317
|
var init_ServerBridgeTab = __esm({
|
|
@@ -42429,7 +42437,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42429
42437
|
};
|
|
42430
42438
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
|
|
42431
42439
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42432
|
-
/* @__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") }),
|
|
42433
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: [
|
|
42434
42442
|
trait.name,
|
|
42435
42443
|
": ",
|
|
@@ -42437,8 +42445,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42437
42445
|
] }, trait.id)) })
|
|
42438
42446
|
] }),
|
|
42439
42447
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42440
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42441
|
-
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: [
|
|
42442
42450
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42443
42451
|
exports.Button,
|
|
42444
42452
|
{
|
|
@@ -42449,22 +42457,22 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42449
42457
|
children: event
|
|
42450
42458
|
}
|
|
42451
42459
|
),
|
|
42452
|
-
/* @__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(", ") }),
|
|
42453
42461
|
transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
|
|
42454
42462
|
] }, event)) })
|
|
42455
42463
|
] }),
|
|
42456
42464
|
unavailableEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42457
|
-
/* @__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") }),
|
|
42458
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)) })
|
|
42459
42467
|
] }),
|
|
42460
42468
|
log19.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
42461
|
-
/* @__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") }),
|
|
42462
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: [
|
|
42463
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42471
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: entry.traitName }),
|
|
42464
42472
|
" ",
|
|
42465
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42473
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: entry.from }),
|
|
42466
42474
|
" -> ",
|
|
42467
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42475
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-success", children: entry.to })
|
|
42468
42476
|
] }, i)) })
|
|
42469
42477
|
] })
|
|
42470
42478
|
] });
|
|
@@ -42490,21 +42498,21 @@ var init_RuntimeDebugger = __esm({
|
|
|
42490
42498
|
function ServerResponseRow({ sr }) {
|
|
42491
42499
|
const { t } = hooks.useTranslate();
|
|
42492
42500
|
const entityEntries = Object.entries(sr.dataEntities);
|
|
42493
|
-
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: [
|
|
42494
42502
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
42495
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-
|
|
42503
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-success" : "text-error", children: [
|
|
42496
42504
|
sr.success ? "\u2713" : "\u2717",
|
|
42497
42505
|
" ",
|
|
42498
42506
|
t("debug.server")
|
|
42499
42507
|
] }),
|
|
42500
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42501
|
-
sr.clientEffects > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-
|
|
42502
|
-
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: [
|
|
42503
42511
|
t("debug.emitLabel"),
|
|
42504
42512
|
" ",
|
|
42505
42513
|
sr.emittedEvents.join(", ")
|
|
42506
42514
|
] }),
|
|
42507
|
-
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 })
|
|
42508
42516
|
] }),
|
|
42509
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: [
|
|
42510
42518
|
name,
|
|
@@ -42520,9 +42528,9 @@ function TransitionRow({ trace }) {
|
|
|
42520
42528
|
if (isServerEntry && trace.serverResponse) {
|
|
42521
42529
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-0.5 border-b border-border last:border-0", children: [
|
|
42522
42530
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42523
|
-
/* @__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" }),
|
|
42524
42532
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42525
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42533
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary flex-shrink-0", children: t("debug.serverResponse") })
|
|
42526
42534
|
] }),
|
|
42527
42535
|
/* @__PURE__ */ jsxRuntime.jsx(ServerResponseRow, { sr: trace.serverResponse })
|
|
42528
42536
|
] });
|
|
@@ -42531,7 +42539,7 @@ function TransitionRow({ trace }) {
|
|
|
42531
42539
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42532
42540
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
|
|
42533
42541
|
"mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",
|
|
42534
|
-
hasFailedEffects ? "bg-
|
|
42542
|
+
hasFailedEffects ? "bg-error" : "bg-success"
|
|
42535
42543
|
) }),
|
|
42536
42544
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "info", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42537
42545
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground flex-shrink-0", children: trace.traitName }),
|
|
@@ -42545,7 +42553,7 @@ function TransitionRow({ trace }) {
|
|
|
42545
42553
|
] }),
|
|
42546
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(
|
|
42547
42555
|
"px-1 rounded text-xs",
|
|
42548
|
-
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"
|
|
42549
42557
|
), children: [
|
|
42550
42558
|
eff.status === "executed" ? "\u2713" : eff.status === "failed" ? "\u2717" : "-",
|
|
42551
42559
|
" ",
|
|
@@ -42579,7 +42587,7 @@ function VerifyModePanel({
|
|
|
42579
42587
|
{
|
|
42580
42588
|
className: cn(
|
|
42581
42589
|
"runtime-debugger runtime-debugger--verify",
|
|
42582
|
-
"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",
|
|
42583
42591
|
hudBottom ? "" : "fixed bottom-0 left-0 right-0",
|
|
42584
42592
|
className
|
|
42585
42593
|
),
|
|
@@ -42600,8 +42608,8 @@ function VerifyModePanel({
|
|
|
42600
42608
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
|
|
42601
42609
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
|
|
42602
42610
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/70", children: t("debug.localCount", { count: localCount }) }),
|
|
42603
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42604
|
-
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 }),
|
|
42605
42613
|
!expanded && transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
|
|
42606
42614
|
]
|
|
42607
42615
|
}
|
|
@@ -42796,7 +42804,7 @@ function RuntimeDebugger({
|
|
|
42796
42804
|
title: t("debug.openDebugger"),
|
|
42797
42805
|
children: failedChecks > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
|
|
42798
42806
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" }),
|
|
42799
|
-
/* @__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" })
|
|
42800
42808
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" })
|
|
42801
42809
|
}
|
|
42802
42810
|
) : /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "runtime-debugger__panel", children: [
|
|
@@ -42884,7 +42892,7 @@ var init_SegmentRenderer = __esm({
|
|
|
42884
42892
|
"div",
|
|
42885
42893
|
{
|
|
42886
42894
|
className: cn(
|
|
42887
|
-
"border border-
|
|
42895
|
+
"border border-border rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
|
|
42888
42896
|
containerClassName,
|
|
42889
42897
|
className
|
|
42890
42898
|
),
|