@almadar/ui 5.123.0 → 5.125.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 +332 -275
- package/dist/avl/index.js +334 -277
- package/dist/components/index.cjs +284 -248
- package/dist/components/index.d.cts +4 -3
- package/dist/components/index.d.ts +4 -3
- package/dist/components/index.js +284 -248
- 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/{offline-executor-aRuNznZx.d.cts → offline-executor-Qz4b6GpF.d.cts} +19 -1
- package/dist/{offline-executor-aRuNznZx.d.ts → offline-executor-Qz4b6GpF.d.ts} +19 -1
- package/dist/providers/index.cjs +395 -275
- package/dist/providers/index.d.cts +6 -6
- package/dist/providers/index.d.ts +6 -6
- package/dist/providers/index.js +394 -276
- package/dist/renderer/index.cjs +8 -0
- package/dist/renderer/index.d.cts +2 -2
- package/dist/renderer/index.d.ts +2 -2
- package/dist/renderer/index.js +1 -1
- package/dist/runtime/index.cjs +325 -268
- package/dist/runtime/index.d.cts +4 -2
- package/dist/runtime/index.d.ts +4 -2
- package/dist/runtime/index.js +327 -270
- package/package.json +13 -11
- 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
|
)
|
|
@@ -20894,13 +20895,13 @@ function DataGrid({
|
|
|
20894
20895
|
}
|
|
20895
20896
|
),
|
|
20896
20897
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.VStack, { gap: "xs", className: "flex-1 min-w-0", children: [
|
|
20897
|
-
titleValue !== void 0 && titleValue !== null && /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "xs", className: "items-center", children: [
|
|
20898
|
+
titleValue !== void 0 && titleValue !== null && /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "xs", className: "items-center min-w-0", children: [
|
|
20898
20899
|
titleField?.icon && renderIconInput(titleField.icon, { size: "sm", className: "text-primary flex-shrink-0" }),
|
|
20899
20900
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20900
20901
|
exports.Typography,
|
|
20901
20902
|
{
|
|
20902
20903
|
variant: titleField?.variant === "h3" ? "h3" : "h4",
|
|
20903
|
-
className: "font-semibold truncate",
|
|
20904
|
+
className: "font-semibold truncate min-w-0",
|
|
20904
20905
|
children: String(titleValue)
|
|
20905
20906
|
}
|
|
20906
20907
|
)
|
|
@@ -20958,7 +20959,7 @@ function DataGrid({
|
|
|
20958
20959
|
)
|
|
20959
20960
|
] }, field.name);
|
|
20960
20961
|
}) }) }),
|
|
20961
|
-
primaryActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "px-4 py-3 mt-auto border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", className: "justify-end", children: [
|
|
20962
|
+
primaryActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "px-4 py-3 mt-auto border-t border-border", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { gap: "sm", className: "justify-end flex-wrap", children: [
|
|
20962
20963
|
(maxInlineActions != null ? primaryActions.slice(0, maxInlineActions) : primaryActions).map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20963
20964
|
exports.Button,
|
|
20964
20965
|
{
|
|
@@ -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" })
|
|
@@ -29627,7 +29626,7 @@ function TableView({
|
|
|
29627
29626
|
col.key
|
|
29628
29627
|
);
|
|
29629
29628
|
}),
|
|
29630
|
-
hasActions && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { "aria-hidden": true })
|
|
29629
|
+
hasActions && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { "aria-hidden": true, className: "sticky right-0 bg-[var(--color-surface-subtle)]" })
|
|
29631
29630
|
]
|
|
29632
29631
|
}
|
|
29633
29632
|
);
|
|
@@ -29671,41 +29670,54 @@ function TableView({
|
|
|
29671
29670
|
}
|
|
29672
29671
|
return /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { role: "cell", className: cellBase, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: formatCell(raw, col.format) }) }, col.key);
|
|
29673
29672
|
}),
|
|
29674
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
29675
|
-
|
|
29676
|
-
|
|
29677
|
-
|
|
29678
|
-
|
|
29679
|
-
|
|
29680
|
-
|
|
29681
|
-
|
|
29682
|
-
"
|
|
29683
|
-
|
|
29684
|
-
|
|
29685
|
-
|
|
29686
|
-
|
|
29687
|
-
|
|
29688
|
-
|
|
29689
|
-
|
|
29690
|
-
|
|
29691
|
-
|
|
29692
|
-
|
|
29693
|
-
|
|
29694
|
-
|
|
29695
|
-
|
|
29696
|
-
|
|
29697
|
-
|
|
29698
|
-
|
|
29699
|
-
|
|
29700
|
-
|
|
29701
|
-
|
|
29702
|
-
|
|
29703
|
-
|
|
29704
|
-
|
|
29705
|
-
|
|
29706
|
-
|
|
29707
|
-
|
|
29708
|
-
|
|
29673
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
29674
|
+
exports.HStack,
|
|
29675
|
+
{
|
|
29676
|
+
gap: "xs",
|
|
29677
|
+
className: cn(
|
|
29678
|
+
// Pinned: the fixed column tracks routinely overflow the caller's
|
|
29679
|
+
// scroll container, which used to leave the actions off-screen.
|
|
29680
|
+
// Opaque so scrolled cells pass underneath it.
|
|
29681
|
+
"justify-end flex-shrink-0 sticky right-0 z-[1] transition-colors",
|
|
29682
|
+
lk.striped && index % 2 === 1 ? "bg-[var(--color-surface-subtle)]" : "bg-[var(--color-card)] group-hover:bg-[var(--color-surface-subtle)]"
|
|
29683
|
+
),
|
|
29684
|
+
children: [
|
|
29685
|
+
(maxInlineActions != null ? itemActions.slice(0, maxInlineActions) : itemActions).map((action, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
29686
|
+
exports.Button,
|
|
29687
|
+
{
|
|
29688
|
+
variant: action.variant ?? "ghost",
|
|
29689
|
+
size: "sm",
|
|
29690
|
+
onClick: handleActionClick(action, row),
|
|
29691
|
+
"data-testid": `action-${action.event}`,
|
|
29692
|
+
"data-row-id": String(row.id),
|
|
29693
|
+
className: cn(action.variant === "danger" && "text-error hover:bg-error/10"),
|
|
29694
|
+
children: [
|
|
29695
|
+
action.icon && renderIconInput3(action.icon, { size: "xs", className: "mr-1" }),
|
|
29696
|
+
action.label
|
|
29697
|
+
]
|
|
29698
|
+
},
|
|
29699
|
+
i
|
|
29700
|
+
)),
|
|
29701
|
+
maxInlineActions != null && itemActions.length > maxInlineActions && /* @__PURE__ */ jsxRuntime.jsx(
|
|
29702
|
+
exports.Menu,
|
|
29703
|
+
{
|
|
29704
|
+
position: "bottom-end",
|
|
29705
|
+
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" }) }),
|
|
29706
|
+
items: itemActions.slice(maxInlineActions).map((action) => ({
|
|
29707
|
+
label: action.label,
|
|
29708
|
+
icon: action.icon,
|
|
29709
|
+
event: action.event,
|
|
29710
|
+
variant: action.variant === "danger" ? "danger" : "default",
|
|
29711
|
+
onClick: () => eventBus.emit(`UI:${action.event}`, {
|
|
29712
|
+
id: row.id,
|
|
29713
|
+
row
|
|
29714
|
+
})
|
|
29715
|
+
}))
|
|
29716
|
+
}
|
|
29717
|
+
)
|
|
29718
|
+
]
|
|
29719
|
+
}
|
|
29720
|
+
)
|
|
29709
29721
|
]
|
|
29710
29722
|
}
|
|
29711
29723
|
);
|
|
@@ -32480,6 +32492,7 @@ var init_QrScanner = __esm({
|
|
|
32480
32492
|
overflow: "hidden",
|
|
32481
32493
|
rounded: "sm",
|
|
32482
32494
|
className: cn(
|
|
32495
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32483
32496
|
"bg-black",
|
|
32484
32497
|
"aspect-square w-full max-w-md",
|
|
32485
32498
|
className
|
|
@@ -32544,7 +32557,9 @@ var init_QrScanner = __esm({
|
|
|
32544
32557
|
type: "button",
|
|
32545
32558
|
onClick: togglePause,
|
|
32546
32559
|
className: cn(
|
|
32560
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32547
32561
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
32562
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32548
32563
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32549
32564
|
),
|
|
32550
32565
|
"aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
|
|
@@ -32557,7 +32572,9 @@ var init_QrScanner = __esm({
|
|
|
32557
32572
|
type: "button",
|
|
32558
32573
|
onClick: toggleFacing,
|
|
32559
32574
|
className: cn(
|
|
32575
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32560
32576
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
32577
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32561
32578
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32562
32579
|
),
|
|
32563
32580
|
"aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
|
|
@@ -32570,7 +32587,9 @@ var init_QrScanner = __esm({
|
|
|
32570
32587
|
type: "button",
|
|
32571
32588
|
onClick: handleMockScan,
|
|
32572
32589
|
className: cn(
|
|
32590
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32573
32591
|
"rounded-full bg-black bg-opacity-60 px-3 py-2 text-xs text-white",
|
|
32592
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32574
32593
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32575
32594
|
),
|
|
32576
32595
|
"aria-label": t("aria.mockScanDev"),
|
|
@@ -35306,10 +35325,10 @@ var init_ModuleCard = __esm({
|
|
|
35306
35325
|
init_avl_atom_types();
|
|
35307
35326
|
init_MiniStateMachine();
|
|
35308
35327
|
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-
|
|
35328
|
+
persistent: "border-l-[3px] border-l-primary border-solid",
|
|
35329
|
+
runtime: "border-l-[3px] border-l-primary border-dashed",
|
|
35330
|
+
singleton: "border-l-[3px] border-l-primary border-double",
|
|
35331
|
+
instance: "border-l-[3px] border-l-primary border-dotted"
|
|
35313
35332
|
};
|
|
35314
35333
|
PERSISTENCE_ICON = {
|
|
35315
35334
|
persistent: "\u26C1",
|
|
@@ -35339,8 +35358,8 @@ var init_ModuleCard = __esm({
|
|
|
35339
35358
|
className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
35340
35359
|
style: { minWidth: 280, maxWidth: 400 },
|
|
35341
35360
|
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-
|
|
35361
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "target", position: react.Position.Left, className: "!w-2.5 !h-2.5 !bg-warning" }),
|
|
35362
|
+
/* @__PURE__ */ jsxRuntime.jsx(react.Handle, { type: "source", position: react.Position.Right, className: "!w-2.5 !h-2.5 !bg-warning" }),
|
|
35344
35363
|
/* @__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
35364
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `px-3 py-2 border-b border-[var(--color-border)] ${PERSISTENCE_BORDER[persistence] ?? ""}`, children: [
|
|
35346
35365
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
|
|
@@ -37796,19 +37815,19 @@ var init_ReflectionBlock = __esm({
|
|
|
37796
37815
|
"div",
|
|
37797
37816
|
{
|
|
37798
37817
|
className: cn(
|
|
37799
|
-
"my-6 border-l-4 border-
|
|
37818
|
+
"my-6 border-l-4 border-warning bg-warning/10 rounded-r-lg p-4",
|
|
37800
37819
|
className
|
|
37801
37820
|
),
|
|
37802
37821
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
37803
|
-
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-
|
|
37822
|
+
/* @__PURE__ */ jsxRuntime.jsx(LucideIcons2.PauseCircle, { className: "text-warning flex-shrink-0 mt-1", size: 20 }),
|
|
37804
37823
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
37805
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-
|
|
37806
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
37824
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-warning mb-2", children: "Pause & Reflect" }),
|
|
37825
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-foreground text-sm mb-3", children: prompt }),
|
|
37807
37826
|
isExpanded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
37808
37827
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
37809
37828
|
"textarea",
|
|
37810
37829
|
{
|
|
37811
|
-
className: "w-full p-2 border border-
|
|
37830
|
+
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
37831
|
placeholder: "Your thoughts...",
|
|
37813
37832
|
value: note,
|
|
37814
37833
|
onChange: (e) => setNote(e.target.value),
|
|
@@ -37819,7 +37838,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37819
37838
|
"button",
|
|
37820
37839
|
{
|
|
37821
37840
|
onClick: handleSave,
|
|
37822
|
-
className: "mt-2 text-sm px-3 py-1 bg-
|
|
37841
|
+
className: "mt-2 text-sm px-3 py-1 bg-warning text-warning-foreground rounded hover:opacity-90 transition-colors",
|
|
37823
37842
|
children: "Save & Continue"
|
|
37824
37843
|
}
|
|
37825
37844
|
)
|
|
@@ -37827,7 +37846,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37827
37846
|
"button",
|
|
37828
37847
|
{
|
|
37829
37848
|
onClick: () => setIsExpanded(true),
|
|
37830
|
-
className: "text-sm text-
|
|
37849
|
+
className: "text-sm text-warning hover:underline",
|
|
37831
37850
|
children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
|
|
37832
37851
|
}
|
|
37833
37852
|
)
|
|
@@ -38331,7 +38350,7 @@ function DataTable({
|
|
|
38331
38350
|
)),
|
|
38332
38351
|
rowActions && /* @__PURE__ */ jsxRuntime.jsx("th", { className: "w-12 px-4 py-3" })
|
|
38333
38352
|
] }) }),
|
|
38334
|
-
/* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-
|
|
38353
|
+
/* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-border", children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38335
38354
|
"td",
|
|
38336
38355
|
{
|
|
38337
38356
|
colSpan: normalizedColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0),
|
|
@@ -38651,6 +38670,16 @@ function normalizeFieldDefs(fields) {
|
|
|
38651
38670
|
return String(f3);
|
|
38652
38671
|
});
|
|
38653
38672
|
}
|
|
38673
|
+
function buildFieldLabelMap(fields) {
|
|
38674
|
+
const map = {};
|
|
38675
|
+
if (!fields) return map;
|
|
38676
|
+
for (const f3 of fields) {
|
|
38677
|
+
if (typeof f3 === "object" && "key" in f3 && f3.header !== void 0 && f3.header !== "") {
|
|
38678
|
+
map[f3.key] = f3.header;
|
|
38679
|
+
}
|
|
38680
|
+
}
|
|
38681
|
+
return map;
|
|
38682
|
+
}
|
|
38654
38683
|
function buildFieldTypeMap(fields) {
|
|
38655
38684
|
const map = {};
|
|
38656
38685
|
if (!fields) return map;
|
|
@@ -38702,7 +38731,9 @@ var init_DetailPanel = __esm({
|
|
|
38702
38731
|
};
|
|
38703
38732
|
const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
|
|
38704
38733
|
const fieldTypeMap = isFieldDefArray(propFields) ? buildFieldTypeMap(propFields) : {};
|
|
38705
|
-
|
|
38734
|
+
const fieldLabelMap = isFieldDefArray(propFields) ? buildFieldLabelMap(propFields) : {};
|
|
38735
|
+
const labelFor = (field) => fieldLabelMap[field] ?? formatFieldLabel(field);
|
|
38736
|
+
const handleActionClick = React74.useCallback(
|
|
38706
38737
|
(action, data2) => {
|
|
38707
38738
|
if (action.navigatesTo) {
|
|
38708
38739
|
const url = action.navigatesTo.replace(
|
|
@@ -38737,7 +38768,7 @@ var init_DetailPanel = __esm({
|
|
|
38737
38768
|
if (typeof field === "string") {
|
|
38738
38769
|
const value = getNestedValue(normalizedData, field);
|
|
38739
38770
|
return {
|
|
38740
|
-
label:
|
|
38771
|
+
label: labelFor(field),
|
|
38741
38772
|
value: formatFieldValue(value, field),
|
|
38742
38773
|
icon: getFieldIcon(field)
|
|
38743
38774
|
};
|
|
@@ -38748,7 +38779,10 @@ var init_DetailPanel = __esm({
|
|
|
38748
38779
|
}
|
|
38749
38780
|
if (normalizedData && effectiveFieldNames) {
|
|
38750
38781
|
const primaryField = effectiveFieldNames[0];
|
|
38751
|
-
|
|
38782
|
+
const titleDerivedFromPrimary = Boolean(
|
|
38783
|
+
!title && primaryField && normalizedData[primaryField]
|
|
38784
|
+
);
|
|
38785
|
+
if (titleDerivedFromPrimary) {
|
|
38752
38786
|
title = String(normalizedData[primaryField]);
|
|
38753
38787
|
}
|
|
38754
38788
|
const statusFields = effectiveFieldNames.filter(
|
|
@@ -38767,16 +38801,16 @@ var init_DetailPanel = __esm({
|
|
|
38767
38801
|
(f3) => f3.toLowerCase().includes("description") || f3.toLowerCase().includes("note")
|
|
38768
38802
|
);
|
|
38769
38803
|
const otherFields = effectiveFieldNames.filter(
|
|
38770
|
-
(f3) => f3 !== primaryField && !statusFields.includes(f3) && !progressFields.includes(f3) && !metricFields.includes(f3) && !dateFields.includes(f3) && !descriptionFields.includes(f3)
|
|
38804
|
+
(f3) => (!titleDerivedFromPrimary || f3 !== primaryField) && !statusFields.includes(f3) && !progressFields.includes(f3) && !metricFields.includes(f3) && !dateFields.includes(f3) && !descriptionFields.includes(f3)
|
|
38771
38805
|
);
|
|
38772
38806
|
sections = [];
|
|
38773
38807
|
if (statusFields.length > 0 || otherFields.length > 0) {
|
|
38774
38808
|
const overviewFields = [];
|
|
38775
|
-
[...statusFields, ...otherFields
|
|
38809
|
+
[...statusFields, ...otherFields].forEach((field) => {
|
|
38776
38810
|
const value = getNestedValue(normalizedData, field);
|
|
38777
38811
|
if (value !== void 0 && value !== null) {
|
|
38778
38812
|
overviewFields.push({
|
|
38779
|
-
label:
|
|
38813
|
+
label: labelFor(field),
|
|
38780
38814
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38781
38815
|
icon: getFieldIcon(field)
|
|
38782
38816
|
});
|
|
@@ -38792,7 +38826,7 @@ var init_DetailPanel = __esm({
|
|
|
38792
38826
|
const value = getNestedValue(normalizedData, field);
|
|
38793
38827
|
if (value !== void 0 && value !== null) {
|
|
38794
38828
|
metricsFields.push({
|
|
38795
|
-
label:
|
|
38829
|
+
label: labelFor(field),
|
|
38796
38830
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38797
38831
|
icon: getFieldIcon(field)
|
|
38798
38832
|
});
|
|
@@ -38808,7 +38842,7 @@ var init_DetailPanel = __esm({
|
|
|
38808
38842
|
const value = getNestedValue(normalizedData, field);
|
|
38809
38843
|
if (value !== void 0 && value !== null) {
|
|
38810
38844
|
timelineFields.push({
|
|
38811
|
-
label:
|
|
38845
|
+
label: labelFor(field),
|
|
38812
38846
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38813
38847
|
icon: getFieldIcon(field)
|
|
38814
38848
|
});
|
|
@@ -38824,7 +38858,7 @@ var init_DetailPanel = __esm({
|
|
|
38824
38858
|
const value = getNestedValue(normalizedData, field);
|
|
38825
38859
|
if (value !== void 0 && value !== null) {
|
|
38826
38860
|
descFields.push({
|
|
38827
|
-
label:
|
|
38861
|
+
label: labelFor(field),
|
|
38828
38862
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38829
38863
|
icon: getFieldIcon(field)
|
|
38830
38864
|
});
|
|
@@ -38872,7 +38906,7 @@ var init_DetailPanel = __esm({
|
|
|
38872
38906
|
if (typeof field === "string") {
|
|
38873
38907
|
const value = normalizedData ? getNestedValue(normalizedData, field) : void 0;
|
|
38874
38908
|
allFields.push({
|
|
38875
|
-
label:
|
|
38909
|
+
label: labelFor(field),
|
|
38876
38910
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38877
38911
|
icon: getFieldIcon(field)
|
|
38878
38912
|
});
|
|
@@ -38894,8 +38928,9 @@ var init_DetailPanel = __esm({
|
|
|
38894
38928
|
{
|
|
38895
38929
|
variant: action.variant || "secondary",
|
|
38896
38930
|
size: "sm",
|
|
38897
|
-
action: action.event,
|
|
38931
|
+
action: action.navigatesTo ? void 0 : action.event,
|
|
38898
38932
|
actionPayload: { row: normalizedData },
|
|
38933
|
+
onClick: action.navigatesTo ? () => handleActionClick(action, normalizedData) : void 0,
|
|
38899
38934
|
icon: action.icon,
|
|
38900
38935
|
"data-testid": action.event ? `action-${action.event}` : void 0,
|
|
38901
38936
|
"data-row-id": normalizedData?.id !== void 0 ? String(normalizedData.id) : void 0,
|
|
@@ -40938,8 +40973,9 @@ var init_MediaGallery = __esm({
|
|
|
40938
40973
|
)
|
|
40939
40974
|
}
|
|
40940
40975
|
),
|
|
40941
|
-
item.caption &&
|
|
40942
|
-
|
|
40976
|
+
item.caption && // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: caption scrim over image
|
|
40977
|
+
/* @__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 }) }),
|
|
40978
|
+
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
40979
|
]
|
|
40944
40980
|
},
|
|
40945
40981
|
item.id
|
|
@@ -40968,7 +41004,7 @@ var init_MediaGallery = __esm({
|
|
|
40968
41004
|
size: "sm",
|
|
40969
41005
|
icon: LucideIcons2.X,
|
|
40970
41006
|
action: "LIGHTBOX_CLOSE",
|
|
40971
|
-
className: "text-
|
|
41007
|
+
className: "text-foreground hover:bg-muted/50"
|
|
40972
41008
|
}
|
|
40973
41009
|
) }),
|
|
40974
41010
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -40979,7 +41015,7 @@ var init_MediaGallery = __esm({
|
|
|
40979
41015
|
className: "max-w-full max-h-[80vh] object-contain rounded-md"
|
|
40980
41016
|
}
|
|
40981
41017
|
),
|
|
40982
|
-
lightboxItem.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-
|
|
41018
|
+
lightboxItem.caption && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", className: "text-foreground mt-3 text-center", children: lightboxItem.caption })
|
|
40983
41019
|
]
|
|
40984
41020
|
}
|
|
40985
41021
|
)
|
|
@@ -41421,7 +41457,7 @@ function WalkMinimap() {
|
|
|
41421
41457
|
{
|
|
41422
41458
|
variant,
|
|
41423
41459
|
size: "sm",
|
|
41424
|
-
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-
|
|
41460
|
+
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-info" : ""}`,
|
|
41425
41461
|
children: [
|
|
41426
41462
|
isDone ? "\u2713" : isActive ? "\u25CF" : "\u25CB",
|
|
41427
41463
|
" ",
|
|
@@ -41562,13 +41598,13 @@ function WalkMinimap() {
|
|
|
41562
41598
|
})
|
|
41563
41599
|
] }) }),
|
|
41564
41600
|
/* @__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-
|
|
41601
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-success", children: [
|
|
41566
41602
|
"Engine: ",
|
|
41567
41603
|
engineCount,
|
|
41568
41604
|
"/",
|
|
41569
41605
|
totalTransitions
|
|
41570
41606
|
] }),
|
|
41571
|
-
domCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-
|
|
41607
|
+
domCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "caption", className: "text-xs font-mono text-info", children: [
|
|
41572
41608
|
"DOM: ",
|
|
41573
41609
|
domCount
|
|
41574
41610
|
] }),
|
|
@@ -41601,13 +41637,13 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41601
41637
|
const accordionItems = traits2.map((trait) => ({
|
|
41602
41638
|
id: trait.id,
|
|
41603
41639
|
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-
|
|
41640
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-primary", children: trait.name }),
|
|
41605
41641
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "success", size: "sm", children: trait.currentState }),
|
|
41606
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41642
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
|
|
41607
41643
|
] }),
|
|
41608
41644
|
content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
41609
41645
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41610
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41646
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.states") }),
|
|
41611
41647
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
41612
41648
|
exports.Badge,
|
|
41613
41649
|
{
|
|
@@ -41619,18 +41655,18 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41619
41655
|
)) })
|
|
41620
41656
|
] }),
|
|
41621
41657
|
trait.transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41622
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41658
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.transitions") }),
|
|
41623
41659
|
/* @__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
41660
|
t2.from,
|
|
41625
41661
|
" \u2192 ",
|
|
41626
41662
|
t2.to,
|
|
41627
41663
|
" ",
|
|
41628
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
41664
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
|
|
41629
41665
|
"(",
|
|
41630
41666
|
t2.event,
|
|
41631
41667
|
")"
|
|
41632
41668
|
] }),
|
|
41633
|
-
t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-
|
|
41669
|
+
t2.guard && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-warning", children: [
|
|
41634
41670
|
" [",
|
|
41635
41671
|
t2.guard,
|
|
41636
41672
|
"]"
|
|
@@ -41638,7 +41674,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41638
41674
|
] }, i)) })
|
|
41639
41675
|
] }),
|
|
41640
41676
|
trait.guards.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41641
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41677
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.guards") }),
|
|
41642
41678
|
/* @__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
41679
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: g.name }),
|
|
41644
41680
|
/* @__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 +41717,11 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41681
41717
|
};
|
|
41682
41718
|
const TickCard = ({ tick, active }) => /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: `p-3 ${!active ? "opacity-50" : ""}`, children: [
|
|
41683
41719
|
/* @__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-
|
|
41720
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-success" : "bg-muted-foreground"}` }),
|
|
41721
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-warning", children: tick.name }),
|
|
41722
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: tick.traitName })
|
|
41687
41723
|
] }),
|
|
41688
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 text-xs text-
|
|
41724
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3 text-xs text-muted-foreground", children: [
|
|
41689
41725
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
41690
41726
|
tick.interval,
|
|
41691
41727
|
"ms"
|
|
@@ -41708,7 +41744,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41708
41744
|
] });
|
|
41709
41745
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--ticks", children: [
|
|
41710
41746
|
activeTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41711
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41747
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
|
|
41712
41748
|
"Active (",
|
|
41713
41749
|
activeTicks.length,
|
|
41714
41750
|
")"
|
|
@@ -41716,7 +41752,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41716
41752
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Stack, { gap: "sm", children: activeTicks.map((tick) => /* @__PURE__ */ jsxRuntime.jsx(TickCard, { tick, active: true }, tick.id)) })
|
|
41717
41753
|
] }),
|
|
41718
41754
|
inactiveTicks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41719
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41755
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
|
|
41720
41756
|
"Inactive (",
|
|
41721
41757
|
inactiveTicks.length,
|
|
41722
41758
|
")"
|
|
@@ -41764,33 +41800,33 @@ function EntitiesTab({ snapshot }) {
|
|
|
41764
41800
|
id: `singleton-${name}`,
|
|
41765
41801
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41766
41802
|
/* @__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-
|
|
41803
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-info", children: name })
|
|
41768
41804
|
] }),
|
|
41769
|
-
content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-
|
|
41805
|
+
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
41806
|
}));
|
|
41771
41807
|
const runtimeItems = runtimeEntities.slice(0, 20).map((entity) => ({
|
|
41772
41808
|
id: entity.id,
|
|
41773
41809
|
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-
|
|
41810
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-info", children: entity.type }),
|
|
41811
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground", children: [
|
|
41776
41812
|
"#",
|
|
41777
41813
|
entity.id.slice(0, 8)
|
|
41778
41814
|
] })
|
|
41779
41815
|
] }),
|
|
41780
|
-
content: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-xs text-
|
|
41816
|
+
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
41817
|
}));
|
|
41782
41818
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--entities", children: [
|
|
41783
41819
|
singletonItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41784
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41820
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
|
|
41785
41821
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: singletonItems, multiple: true })
|
|
41786
41822
|
] }),
|
|
41787
41823
|
runtimeItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
|
|
41788
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41824
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
|
|
41789
41825
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Accordion, { items: runtimeItems, multiple: true }),
|
|
41790
|
-
runtimeEntities.length > 20 && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41826
|
+
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
41827
|
] }),
|
|
41792
41828
|
persistentEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41793
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
41829
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.persistent") }),
|
|
41794
41830
|
/* @__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
41831
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: type }),
|
|
41796
41832
|
/* @__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 +41911,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41875
41911
|
);
|
|
41876
41912
|
})
|
|
41877
41913
|
] }),
|
|
41878
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-
|
|
41914
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground ml-auto cursor-pointer", children: [
|
|
41879
41915
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41880
41916
|
exports.Checkbox,
|
|
41881
41917
|
{
|
|
@@ -41890,18 +41926,18 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41890
41926
|
"div",
|
|
41891
41927
|
{
|
|
41892
41928
|
ref: containerRef,
|
|
41893
|
-
className: "max-h-64 overflow-y-auto space-y-1 bg-
|
|
41929
|
+
className: "max-h-64 overflow-y-auto space-y-1 bg-muted rounded p-2",
|
|
41894
41930
|
children: filteredEvents.slice(-100).map((event) => {
|
|
41895
41931
|
const { variant, icon } = TYPE_BADGES[event.type] || { variant: "default", icon: "\u2022" };
|
|
41896
41932
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41897
41933
|
"div",
|
|
41898
41934
|
{
|
|
41899
|
-
className: "flex items-start gap-2 text-xs py-1 hover:bg-
|
|
41935
|
+
className: "flex items-start gap-2 text-xs py-1 hover:bg-muted/50 rounded px-1",
|
|
41900
41936
|
children: [
|
|
41901
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
41937
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
|
|
41902
41938
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: icon }),
|
|
41903
41939
|
/* @__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-
|
|
41940
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: event.message })
|
|
41905
41941
|
]
|
|
41906
41942
|
},
|
|
41907
41943
|
event.id
|
|
@@ -41965,21 +42001,21 @@ function GuardsPanel({ guards }) {
|
|
|
41965
42001
|
id: guard.id,
|
|
41966
42002
|
header: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41967
42003
|
/* @__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-
|
|
42004
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "body", weight: "semibold", className: "text-warning", children: guard.guardName }),
|
|
42005
|
+
/* @__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 }),
|
|
42006
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: formatTime2(guard.timestamp) })
|
|
41971
42007
|
] }),
|
|
41972
42008
|
content: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
41973
42009
|
/* @__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-
|
|
42010
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.expression") }),
|
|
42011
|
+
/* @__PURE__ */ jsxRuntime.jsx("code", { className: "block mt-1 text-xs text-warning bg-warning/10 px-2 py-1 rounded", children: guard.expression })
|
|
41976
42012
|
] }),
|
|
41977
42013
|
/* @__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-
|
|
42014
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.inputs") }),
|
|
42015
|
+
/* @__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
42016
|
] }),
|
|
41981
42017
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
41982
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42018
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.trait") }),
|
|
41983
42019
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", children: guard.context.traitName })
|
|
41984
42020
|
] })
|
|
41985
42021
|
] })
|
|
@@ -42035,7 +42071,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
42035
42071
|
(a, b) => (sortOrder[a.status] ?? 4) - (sortOrder[b.status] ?? 4)
|
|
42036
42072
|
);
|
|
42037
42073
|
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-
|
|
42074
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-muted rounded", children: [
|
|
42039
42075
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Badge, { variant: "success", size: "sm", children: [
|
|
42040
42076
|
summary.passed,
|
|
42041
42077
|
" passed"
|
|
@@ -42052,7 +42088,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
42052
42088
|
summary.pending,
|
|
42053
42089
|
" pending"
|
|
42054
42090
|
] }),
|
|
42055
|
-
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-
|
|
42091
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: [
|
|
42056
42092
|
summary.totalChecks,
|
|
42057
42093
|
" total checks"
|
|
42058
42094
|
] })
|
|
@@ -42062,12 +42098,12 @@ function VerificationTab({ checks, summary }) {
|
|
|
42062
42098
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42063
42099
|
"div",
|
|
42064
42100
|
{
|
|
42065
|
-
className: "flex items-start gap-2 p-2 rounded hover:bg-
|
|
42101
|
+
className: "flex items-start gap-2 p-2 rounded hover:bg-muted/50",
|
|
42066
42102
|
children: [
|
|
42067
42103
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: config.variant, size: "sm", className: "min-w-[20px] justify-center mt-0.5", children: config.icon }),
|
|
42068
42104
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
42069
42105
|
/* @__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-
|
|
42106
|
+
check.details && /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground break-words", children: check.details })
|
|
42071
42107
|
] }),
|
|
42072
42108
|
/* @__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
42109
|
hour12: false,
|
|
@@ -42102,10 +42138,10 @@ var init_VerificationTab = __esm({
|
|
|
42102
42138
|
function EffectBadge({ effect }) {
|
|
42103
42139
|
const variant = EFFECT_STATUS_VARIANT[effect.status] || "default";
|
|
42104
42140
|
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-
|
|
42141
|
+
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
42142
|
/* @__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-
|
|
42143
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: effect.type }),
|
|
42144
|
+
effect.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-error truncate max-w-[120px]", title: effect.error, children: effect.error })
|
|
42109
42145
|
] });
|
|
42110
42146
|
}
|
|
42111
42147
|
function TransitionTimeline({ transitions }) {
|
|
@@ -42140,8 +42176,8 @@ function TransitionTimeline({ transitions }) {
|
|
|
42140
42176
|
const sorted = [...transitions].reverse();
|
|
42141
42177
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
|
|
42142
42178
|
/* @__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-
|
|
42179
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
|
|
42180
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground cursor-pointer", children: [
|
|
42145
42181
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42146
42182
|
exports.Checkbox,
|
|
42147
42183
|
{
|
|
@@ -42166,22 +42202,22 @@ function TransitionTimeline({ transitions }) {
|
|
|
42166
42202
|
{
|
|
42167
42203
|
className: `
|
|
42168
42204
|
relative pl-6 pb-3 border-l-2 cursor-pointer
|
|
42169
|
-
hover:bg-
|
|
42170
|
-
${hasFailedEffects ? "border-
|
|
42205
|
+
hover:bg-muted/50 rounded-r
|
|
42206
|
+
${hasFailedEffects ? "border-error" : "border-border"}
|
|
42171
42207
|
`,
|
|
42172
42208
|
onClick: () => setExpandedId(isExpanded ? null : trace.id),
|
|
42173
42209
|
children: [
|
|
42174
42210
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `
|
|
42175
42211
|
absolute left-[-5px] top-1 w-2 h-2 rounded-full
|
|
42176
|
-
${hasFailedEffects ? "bg-
|
|
42212
|
+
${hasFailedEffects ? "bg-error" : allPassed ? "bg-success" : "bg-muted-foreground"}
|
|
42177
42213
|
` }),
|
|
42178
42214
|
/* @__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-
|
|
42215
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
|
|
42180
42216
|
/* @__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-
|
|
42217
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "font-mono text-muted-foreground", children: [
|
|
42182
42218
|
trace.from,
|
|
42183
42219
|
" ",
|
|
42184
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42220
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/50", children: "\u2192" }),
|
|
42185
42221
|
" ",
|
|
42186
42222
|
trace.to
|
|
42187
42223
|
] }),
|
|
@@ -42198,9 +42234,9 @@ function TransitionTimeline({ transitions }) {
|
|
|
42198
42234
|
]
|
|
42199
42235
|
}
|
|
42200
42236
|
),
|
|
42201
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42237
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
|
|
42202
42238
|
] }),
|
|
42203
|
-
isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-
|
|
42239
|
+
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
42240
|
/* @__PURE__ */ jsxRuntime.jsx(EffectBadge, { effect }),
|
|
42205
42241
|
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
42242
|
effect.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(exports.Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
|
|
@@ -42234,8 +42270,8 @@ var init_TransitionTimeline = __esm({
|
|
|
42234
42270
|
}
|
|
42235
42271
|
});
|
|
42236
42272
|
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-
|
|
42273
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-border last:border-b-0", children: [
|
|
42274
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: label }),
|
|
42239
42275
|
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
42276
|
] });
|
|
42241
42277
|
}
|
|
@@ -42264,7 +42300,7 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42264
42300
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "debug-tab debug-tab--bridge", children: /* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "sm", children: [
|
|
42265
42301
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3", children: [
|
|
42266
42302
|
/* @__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-
|
|
42303
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-success animate-pulse" : "bg-error"}` }),
|
|
42268
42304
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
|
|
42269
42305
|
] }),
|
|
42270
42306
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.Stack, { gap: "xs", children: [
|
|
@@ -42299,11 +42335,11 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42299
42335
|
)
|
|
42300
42336
|
] })
|
|
42301
42337
|
] }),
|
|
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-
|
|
42338
|
+
bridge.lastError && /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "p-3 border-error/30 bg-error/10", children: [
|
|
42339
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "semibold", className: "text-error mb-1", children: t("debug.lastError") }),
|
|
42340
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-error font-mono break-all", children: bridge.lastError })
|
|
42305
42341
|
] }),
|
|
42306
|
-
bridge.connected && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42342
|
+
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
42343
|
] }) });
|
|
42308
42344
|
}
|
|
42309
42345
|
var init_ServerBridgeTab = __esm({
|
|
@@ -42429,7 +42465,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42429
42465
|
};
|
|
42430
42466
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
|
|
42431
42467
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42432
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42468
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.activeStates") }),
|
|
42433
42469
|
/* @__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
42470
|
trait.name,
|
|
42435
42471
|
": ",
|
|
@@ -42437,8 +42473,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42437
42473
|
] }, trait.id)) })
|
|
42438
42474
|
] }),
|
|
42439
42475
|
/* @__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-
|
|
42476
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.availableEvents") }),
|
|
42477
|
+
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
42478
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42443
42479
|
exports.Button,
|
|
42444
42480
|
{
|
|
@@ -42449,22 +42485,22 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42449
42485
|
children: event
|
|
42450
42486
|
}
|
|
42451
42487
|
),
|
|
42452
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-
|
|
42488
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", className: "text-muted-foreground", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
|
|
42453
42489
|
transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
|
|
42454
42490
|
] }, event)) })
|
|
42455
42491
|
] }),
|
|
42456
42492
|
unavailableEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
42457
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42493
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.otherEvents") }),
|
|
42458
42494
|
/* @__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
42495
|
] }),
|
|
42460
42496
|
log19.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
42461
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-
|
|
42497
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.recentTransitions") }),
|
|
42462
42498
|
/* @__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-
|
|
42499
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: entry.traitName }),
|
|
42464
42500
|
" ",
|
|
42465
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42501
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: entry.from }),
|
|
42466
42502
|
" -> ",
|
|
42467
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42503
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-success", children: entry.to })
|
|
42468
42504
|
] }, i)) })
|
|
42469
42505
|
] })
|
|
42470
42506
|
] });
|
|
@@ -42490,21 +42526,21 @@ var init_RuntimeDebugger = __esm({
|
|
|
42490
42526
|
function ServerResponseRow({ sr }) {
|
|
42491
42527
|
const { t } = hooks.useTranslate();
|
|
42492
42528
|
const entityEntries = Object.entries(sr.dataEntities);
|
|
42493
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-
|
|
42529
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-primary py-0.5 text-xs font-mono", children: [
|
|
42494
42530
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
42495
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-
|
|
42531
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: sr.success ? "text-success" : "text-error", children: [
|
|
42496
42532
|
sr.success ? "\u2713" : "\u2717",
|
|
42497
42533
|
" ",
|
|
42498
42534
|
t("debug.server")
|
|
42499
42535
|
] }),
|
|
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-
|
|
42536
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: sr.orbitalName }),
|
|
42537
|
+
sr.clientEffects > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-primary/10 text-primary", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
|
|
42538
|
+
sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "px-1 rounded bg-primary/10 text-primary", children: [
|
|
42503
42539
|
t("debug.emitLabel"),
|
|
42504
42540
|
" ",
|
|
42505
42541
|
sr.emittedEvents.join(", ")
|
|
42506
42542
|
] }),
|
|
42507
|
-
sr.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-
|
|
42543
|
+
sr.error && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-1 rounded bg-error/10 text-error truncate max-w-[300px]", children: sr.error })
|
|
42508
42544
|
] }),
|
|
42509
42545
|
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
42546
|
name,
|
|
@@ -42520,9 +42556,9 @@ function TransitionRow({ trace }) {
|
|
|
42520
42556
|
if (isServerEntry && trace.serverResponse) {
|
|
42521
42557
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-0.5 border-b border-border last:border-0", children: [
|
|
42522
42558
|
/* @__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-
|
|
42559
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-primary" }),
|
|
42524
42560
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42525
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
42561
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary flex-shrink-0", children: t("debug.serverResponse") })
|
|
42526
42562
|
] }),
|
|
42527
42563
|
/* @__PURE__ */ jsxRuntime.jsx(ServerResponseRow, { sr: trace.serverResponse })
|
|
42528
42564
|
] });
|
|
@@ -42531,7 +42567,7 @@ function TransitionRow({ trace }) {
|
|
|
42531
42567
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42532
42568
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
|
|
42533
42569
|
"mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",
|
|
42534
|
-
hasFailedEffects ? "bg-
|
|
42570
|
+
hasFailedEffects ? "bg-error" : "bg-success"
|
|
42535
42571
|
) }),
|
|
42536
42572
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: "info", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42537
42573
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground flex-shrink-0", children: trace.traitName }),
|
|
@@ -42545,7 +42581,7 @@ function TransitionRow({ trace }) {
|
|
|
42545
42581
|
] }),
|
|
42546
42582
|
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
42583
|
"px-1 rounded text-xs",
|
|
42548
|
-
eff.status === "executed" ? "bg-
|
|
42584
|
+
eff.status === "executed" ? "bg-success/10 text-success" : eff.status === "failed" ? "bg-error/10 text-error" : "bg-warning/10 text-warning"
|
|
42549
42585
|
), children: [
|
|
42550
42586
|
eff.status === "executed" ? "\u2713" : eff.status === "failed" ? "\u2717" : "-",
|
|
42551
42587
|
" ",
|
|
@@ -42579,7 +42615,7 @@ function VerifyModePanel({
|
|
|
42579
42615
|
{
|
|
42580
42616
|
className: cn(
|
|
42581
42617
|
"runtime-debugger runtime-debugger--verify",
|
|
42582
|
-
"flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-
|
|
42618
|
+
"flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-accent",
|
|
42583
42619
|
hudBottom ? "" : "fixed bottom-0 left-0 right-0",
|
|
42584
42620
|
className
|
|
42585
42621
|
),
|
|
@@ -42600,8 +42636,8 @@ function VerifyModePanel({
|
|
|
42600
42636
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
|
|
42601
42637
|
/* @__PURE__ */ jsxRuntime.jsx(exports.Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
|
|
42602
42638
|
/* @__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-
|
|
42639
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary", children: t("debug.serverCount", { count: serverCount }) }),
|
|
42640
|
+
traitStates && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-accent truncate max-w-[400px]", children: traitStates }),
|
|
42605
42641
|
!expanded && transitions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
|
|
42606
42642
|
]
|
|
42607
42643
|
}
|
|
@@ -42796,7 +42832,7 @@ function RuntimeDebugger({
|
|
|
42796
42832
|
title: t("debug.openDebugger"),
|
|
42797
42833
|
children: failedChecks > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
|
|
42798
42834
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" }),
|
|
42799
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-
|
|
42835
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-error rounded-full" })
|
|
42800
42836
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: "V" })
|
|
42801
42837
|
}
|
|
42802
42838
|
) : /* @__PURE__ */ jsxRuntime.jsxs(exports.Card, { className: "runtime-debugger__panel", children: [
|
|
@@ -42884,7 +42920,7 @@ var init_SegmentRenderer = __esm({
|
|
|
42884
42920
|
"div",
|
|
42885
42921
|
{
|
|
42886
42922
|
className: cn(
|
|
42887
|
-
"border border-
|
|
42923
|
+
"border border-border rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
|
|
42888
42924
|
containerClassName,
|
|
42889
42925
|
className
|
|
42890
42926
|
),
|