@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
package/dist/components/index.js
CHANGED
|
@@ -3851,15 +3851,15 @@ var init_TextHighlight = __esm({
|
|
|
3851
3851
|
const typeStyles = {
|
|
3852
3852
|
question: cn(
|
|
3853
3853
|
// Blue border for questions
|
|
3854
|
-
"bg-card border-b-2 border-primary
|
|
3854
|
+
"bg-card border-b-2 border-primary",
|
|
3855
3855
|
"hover:bg-muted",
|
|
3856
|
-
isActive && "bg-primary
|
|
3856
|
+
isActive && "bg-primary/10 ring-2 ring-primary"
|
|
3857
3857
|
),
|
|
3858
3858
|
note: cn(
|
|
3859
3859
|
// Yellow border for notes
|
|
3860
|
-
"bg-card border-b-2 border-
|
|
3860
|
+
"bg-card border-b-2 border-warning",
|
|
3861
3861
|
"hover:bg-muted",
|
|
3862
|
-
isActive && "bg-
|
|
3862
|
+
isActive && "bg-warning/10 ring-2 ring-warning"
|
|
3863
3863
|
)
|
|
3864
3864
|
};
|
|
3865
3865
|
return /* @__PURE__ */ jsx(
|
|
@@ -4467,7 +4467,7 @@ function DayCell({
|
|
|
4467
4467
|
{
|
|
4468
4468
|
className: cn(
|
|
4469
4469
|
"p-2 text-center cursor-pointer hover:bg-muted transition-colors",
|
|
4470
|
-
isToday && "bg-
|
|
4470
|
+
isToday && "bg-primary/10",
|
|
4471
4471
|
className
|
|
4472
4472
|
),
|
|
4473
4473
|
onClick: handleClick,
|
|
@@ -4478,7 +4478,7 @@ function DayCell({
|
|
|
4478
4478
|
variant: "small",
|
|
4479
4479
|
className: cn(
|
|
4480
4480
|
"font-medium",
|
|
4481
|
-
isToday ? "text-
|
|
4481
|
+
isToday ? "text-primary" : "text-muted-foreground"
|
|
4482
4482
|
),
|
|
4483
4483
|
children: dayAbbr
|
|
4484
4484
|
}
|
|
@@ -4490,7 +4490,7 @@ function DayCell({
|
|
|
4490
4490
|
rounded: "full",
|
|
4491
4491
|
className: cn(
|
|
4492
4492
|
"h-8 w-8 mx-auto items-center justify-center",
|
|
4493
|
-
isToday && "bg-
|
|
4493
|
+
isToday && "bg-primary text-primary-foreground"
|
|
4494
4494
|
),
|
|
4495
4495
|
children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "font-semibold", children: safeDate.getDate() })
|
|
4496
4496
|
}
|
|
@@ -7805,19 +7805,19 @@ var init_ActivationBlock = __esm({
|
|
|
7805
7805
|
"div",
|
|
7806
7806
|
{
|
|
7807
7807
|
className: cn(
|
|
7808
|
-
"bg-
|
|
7808
|
+
"bg-primary/10 border-2 border-primary rounded-lg p-5 mb-6",
|
|
7809
7809
|
className
|
|
7810
7810
|
),
|
|
7811
7811
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
7812
|
-
/* @__PURE__ */ jsx(Lightbulb, { className: "text-
|
|
7812
|
+
/* @__PURE__ */ jsx(Lightbulb, { className: "text-primary flex-shrink-0 mt-1", size: 24 }),
|
|
7813
7813
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
7814
|
-
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-
|
|
7815
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
7814
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-primary mb-2", children: "Before You Begin..." }),
|
|
7815
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground mb-3 text-sm md:text-base", children: question }),
|
|
7816
7816
|
isExpanded ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7817
7817
|
/* @__PURE__ */ jsx(
|
|
7818
7818
|
"textarea",
|
|
7819
7819
|
{
|
|
7820
|
-
className: "w-full p-3 border border-
|
|
7820
|
+
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",
|
|
7821
7821
|
placeholder: "Jot down your thoughts...",
|
|
7822
7822
|
value: response,
|
|
7823
7823
|
onChange: (e) => setResponse(e.target.value),
|
|
@@ -7829,7 +7829,7 @@ var init_ActivationBlock = __esm({
|
|
|
7829
7829
|
"button",
|
|
7830
7830
|
{
|
|
7831
7831
|
onClick: handleSubmit,
|
|
7832
|
-
className: "px-4 py-2 bg-
|
|
7832
|
+
className: "px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary-hover text-sm font-medium transition-colors",
|
|
7833
7833
|
children: "Continue to Lesson \u2192"
|
|
7834
7834
|
}
|
|
7835
7835
|
),
|
|
@@ -7840,7 +7840,7 @@ var init_ActivationBlock = __esm({
|
|
|
7840
7840
|
emit(`UI:${saveEvent}`, { response: "" });
|
|
7841
7841
|
setIsExpanded(false);
|
|
7842
7842
|
},
|
|
7843
|
-
className: "px-4 py-2 text-
|
|
7843
|
+
className: "px-4 py-2 text-primary hover:underline text-sm",
|
|
7844
7844
|
children: "Skip for now"
|
|
7845
7845
|
}
|
|
7846
7846
|
)
|
|
@@ -7849,7 +7849,7 @@ var init_ActivationBlock = __esm({
|
|
|
7849
7849
|
"button",
|
|
7850
7850
|
{
|
|
7851
7851
|
onClick: () => setIsExpanded(true),
|
|
7852
|
-
className: "text-sm text-
|
|
7852
|
+
className: "text-sm text-primary hover:underline font-medium",
|
|
7853
7853
|
children: "\u2713 Answered \xB7 Edit response"
|
|
7854
7854
|
}
|
|
7855
7855
|
)
|
|
@@ -8662,7 +8662,7 @@ var init_AuthLayout = __esm({
|
|
|
8662
8662
|
VStack,
|
|
8663
8663
|
{
|
|
8664
8664
|
className: cn(
|
|
8665
|
-
"hidden lg:flex lg:w-1/2 bg-primary
|
|
8665
|
+
"hidden lg:flex lg:w-1/2 bg-primary relative overflow-hidden",
|
|
8666
8666
|
"justify-between p-12"
|
|
8667
8667
|
),
|
|
8668
8668
|
style: backgroundImage ? {
|
|
@@ -8671,7 +8671,7 @@ var init_AuthLayout = __esm({
|
|
|
8671
8671
|
} : void 0,
|
|
8672
8672
|
gap: "none",
|
|
8673
8673
|
children: [
|
|
8674
|
-
/* @__PURE__ */ jsx(Box, { className: "absolute inset-0 bg-gradient-to-br from-primary
|
|
8674
|
+
/* @__PURE__ */ jsx(Box, { className: "absolute inset-0 bg-gradient-to-br from-primary/90 to-primary-hover/90" }),
|
|
8675
8675
|
/* @__PURE__ */ jsx(Box, { className: "relative z-10", children: /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-3", children: [
|
|
8676
8676
|
logo || /* @__PURE__ */ jsx(Box, { className: "w-10 h-10 bg-[var(--color-card)]/20 rounded-xl flex items-center justify-center backdrop-blur", children: /* @__PURE__ */ jsx(
|
|
8677
8677
|
Typography,
|
|
@@ -8756,7 +8756,7 @@ var init_AuthLayout = __esm({
|
|
|
8756
8756
|
),
|
|
8757
8757
|
children: /* @__PURE__ */ jsxs(Box, { className: "w-full max-w-md", children: [
|
|
8758
8758
|
/* @__PURE__ */ jsx(Box, { className: "lg:hidden mb-8 text-center", children: /* @__PURE__ */ jsxs(Link, { to: "/", className: "inline-flex items-center gap-3", children: [
|
|
8759
|
-
logo || /* @__PURE__ */ jsx(Box, { className: "w-12 h-12 bg-primary
|
|
8759
|
+
logo || /* @__PURE__ */ jsx(Box, { className: "w-12 h-12 bg-primary rounded-xl flex items-center justify-center", children: /* @__PURE__ */ jsx(
|
|
8760
8760
|
Typography,
|
|
8761
8761
|
{
|
|
8762
8762
|
variant: "body1",
|
|
@@ -10750,7 +10750,7 @@ var init_CodeBlock = __esm({
|
|
|
10750
10750
|
{
|
|
10751
10751
|
justify: "between",
|
|
10752
10752
|
align: "center",
|
|
10753
|
-
className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-
|
|
10753
|
+
className: "px-3 py-2 bg-[var(--color-card)] rounded-t-lg border-b border-border",
|
|
10754
10754
|
children: [
|
|
10755
10755
|
showLanguageBadge && /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", children: language }),
|
|
10756
10756
|
effectiveCopy && /* @__PURE__ */ jsx(
|
|
@@ -10759,9 +10759,9 @@ var init_CodeBlock = __esm({
|
|
|
10759
10759
|
variant: "ghost",
|
|
10760
10760
|
size: "sm",
|
|
10761
10761
|
onClick: handleCopy,
|
|
10762
|
-
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-
|
|
10762
|
+
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-foreground",
|
|
10763
10763
|
"aria-label": t("common.copy"),
|
|
10764
|
-
children: copied ? /* @__PURE__ */ jsx(Icon, { name: "check", className: "w-4 h-4 text-
|
|
10764
|
+
children: copied ? /* @__PURE__ */ jsx(Icon, { name: "check", className: "w-4 h-4 text-success" }) : /* @__PURE__ */ jsx(Icon, { name: "copy", className: "w-4 h-4" })
|
|
10765
10765
|
}
|
|
10766
10766
|
)
|
|
10767
10767
|
]
|
|
@@ -11129,12 +11129,12 @@ var init_BloomQuizBlock = __esm({
|
|
|
11129
11129
|
init_useEventBus();
|
|
11130
11130
|
init_cn();
|
|
11131
11131
|
BLOOM_CONFIG = {
|
|
11132
|
-
remember: { color: "bg-
|
|
11133
|
-
understand: { color: "bg-
|
|
11134
|
-
apply: { color: "bg-
|
|
11135
|
-
analyze: { color: "bg-
|
|
11136
|
-
evaluate: { color: "bg-
|
|
11137
|
-
create: { color: "bg-
|
|
11132
|
+
remember: { color: "bg-secondary text-secondary-foreground", bgColor: "bg-muted", label: "Remember" },
|
|
11133
|
+
understand: { color: "bg-info text-info-foreground", bgColor: "bg-info/10", label: "Understand" },
|
|
11134
|
+
apply: { color: "bg-success text-success-foreground", bgColor: "bg-success/10", label: "Apply" },
|
|
11135
|
+
analyze: { color: "bg-warning text-warning-foreground", bgColor: "bg-warning/10", label: "Analyze" },
|
|
11136
|
+
evaluate: { color: "bg-accent text-accent-foreground", bgColor: "bg-accent/10", label: "Evaluate" },
|
|
11137
|
+
create: { color: "bg-primary text-primary-foreground", bgColor: "bg-primary/10", label: "Create" }
|
|
11138
11138
|
};
|
|
11139
11139
|
BloomQuizBlock = ({
|
|
11140
11140
|
level,
|
|
@@ -11160,22 +11160,22 @@ var init_BloomQuizBlock = __esm({
|
|
|
11160
11160
|
"div",
|
|
11161
11161
|
{
|
|
11162
11162
|
className: cn(
|
|
11163
|
-
"rounded-lg border border-
|
|
11163
|
+
"rounded-lg border border-primary p-4 my-4 transition-all",
|
|
11164
11164
|
config.bgColor,
|
|
11165
11165
|
className
|
|
11166
11166
|
),
|
|
11167
11167
|
children: [
|
|
11168
11168
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
|
|
11169
11169
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
11170
|
-
index !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
11170
|
+
index !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground font-medium text-sm", children: [
|
|
11171
11171
|
"Question ",
|
|
11172
11172
|
index + 1
|
|
11173
11173
|
] }),
|
|
11174
|
-
/* @__PURE__ */ jsx("span", { className: cn(config.color, "text-
|
|
11174
|
+
/* @__PURE__ */ jsx("span", { className: cn(config.color, "text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
|
|
11175
11175
|
] }),
|
|
11176
|
-
isAnswered && /* @__PURE__ */ jsx(CheckCircle, { className: "text-
|
|
11176
|
+
isAnswered && /* @__PURE__ */ jsx(CheckCircle, { className: "text-success flex-shrink-0", size: 20 })
|
|
11177
11177
|
] }),
|
|
11178
|
-
/* @__PURE__ */ jsx("div", { className: "font-semibold text-
|
|
11178
|
+
/* @__PURE__ */ jsx("div", { className: "font-semibold text-primary mb-3 space-y-2", children: questionSegments.map(
|
|
11179
11179
|
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `q-md-${idx}`) : /* @__PURE__ */ jsx(
|
|
11180
11180
|
CodeBlock,
|
|
11181
11181
|
{
|
|
@@ -11189,13 +11189,13 @@ var init_BloomQuizBlock = __esm({
|
|
|
11189
11189
|
"button",
|
|
11190
11190
|
{
|
|
11191
11191
|
type: "button",
|
|
11192
|
-
className: "inline-flex items-center rounded-md bg-
|
|
11192
|
+
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",
|
|
11193
11193
|
onClick: handleReveal,
|
|
11194
11194
|
children: revealed ? "Hide Answer" : "Reveal Answer"
|
|
11195
11195
|
}
|
|
11196
11196
|
),
|
|
11197
|
-
revealed && /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-
|
|
11198
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs text-
|
|
11197
|
+
revealed && /* @__PURE__ */ 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: [
|
|
11198
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
|
|
11199
11199
|
answerSegments.map(
|
|
11200
11200
|
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `a-md-${idx}`) : /* @__PURE__ */ jsx(
|
|
11201
11201
|
CodeBlock,
|
|
@@ -11469,12 +11469,12 @@ var init_QuizBlock = __esm({
|
|
|
11469
11469
|
}) => {
|
|
11470
11470
|
const { t } = useTranslate();
|
|
11471
11471
|
const [revealed, setRevealed] = useState(false);
|
|
11472
|
-
return /* @__PURE__ */ jsx(Card2, { className: cn("my-4 border-
|
|
11472
|
+
return /* @__PURE__ */ jsx(Card2, { className: cn("my-4 border-primary", className), children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: "p-4", children: [
|
|
11473
11473
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", children: [
|
|
11474
|
-
/* @__PURE__ */ jsx(Icon, { icon: HelpCircle, size: "sm", className: "text-
|
|
11474
|
+
/* @__PURE__ */ jsx(Icon, { icon: HelpCircle, size: "sm", className: "text-primary mt-0.5 shrink-0" }),
|
|
11475
11475
|
/* @__PURE__ */ jsx(Typography, { variant: "body", className: "font-medium", children: question })
|
|
11476
11476
|
] }),
|
|
11477
|
-
revealed ? /* @__PURE__ */ jsx(Box, { className: "pl-7 pt-2 border-t border-
|
|
11477
|
+
revealed ? /* @__PURE__ */ jsx(Box, { className: "pl-7 pt-2 border-t border-border", children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-foreground", children: answer }) }) : null,
|
|
11478
11478
|
/* @__PURE__ */ jsx(
|
|
11479
11479
|
Button,
|
|
11480
11480
|
{
|
|
@@ -13386,7 +13386,7 @@ var init_BookTableOfContents = __esm({
|
|
|
13386
13386
|
className: cn(
|
|
13387
13387
|
"justify-start text-left w-full",
|
|
13388
13388
|
direction === "rtl" && "text-right",
|
|
13389
|
-
isCurrent && "bg-
|
|
13389
|
+
isCurrent && "bg-primary/10 text-primary"
|
|
13390
13390
|
),
|
|
13391
13391
|
children: /* @__PURE__ */ jsx(Box, { className: "truncate", children: /* @__PURE__ */ jsx(Typography, { variant: "body", children: String(chapter.title ?? "") }) })
|
|
13392
13392
|
},
|
|
@@ -14634,7 +14634,7 @@ function CalendarGrid({
|
|
|
14634
14634
|
border: true,
|
|
14635
14635
|
className: cn(
|
|
14636
14636
|
"cursor-pointer hover:shadow-sm transition-shadow text-xs truncate",
|
|
14637
|
-
color ? color : "bg-
|
|
14637
|
+
color ? color : "bg-primary/10 border-primary/30 text-primary"
|
|
14638
14638
|
),
|
|
14639
14639
|
onClick: (e) => handleEventClick(event, e),
|
|
14640
14640
|
children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "truncate font-medium", children: event.title })
|
|
@@ -14732,7 +14732,7 @@ function CalendarGrid({
|
|
|
14732
14732
|
onClick: () => handleSlotClick(day, time),
|
|
14733
14733
|
className: cn(
|
|
14734
14734
|
"border-l border-border",
|
|
14735
|
-
isToday && "bg-
|
|
14735
|
+
isToday && "bg-primary/10"
|
|
14736
14736
|
),
|
|
14737
14737
|
...longPressEvent ? {
|
|
14738
14738
|
onPointerDown: () => startLongPress(day, time),
|
|
@@ -18408,31 +18408,31 @@ var init_CodeRunnerPanel = __esm({
|
|
|
18408
18408
|
}
|
|
18409
18409
|
)
|
|
18410
18410
|
] }),
|
|
18411
|
-
hasOutput && /* @__PURE__ */ jsxs(Box, { className: "rounded-lg border border-
|
|
18411
|
+
hasOutput && /* @__PURE__ */ jsxs(Box, { className: "rounded-lg border border-border bg-foreground overflow-hidden", children: [
|
|
18412
18412
|
/* @__PURE__ */ jsxs(
|
|
18413
18413
|
HStack,
|
|
18414
18414
|
{
|
|
18415
18415
|
gap: "sm",
|
|
18416
18416
|
align: "center",
|
|
18417
|
-
className: "px-3 py-2 bg-
|
|
18417
|
+
className: "px-3 py-2 bg-card border-b border-border",
|
|
18418
18418
|
children: [
|
|
18419
|
-
/* @__PURE__ */ jsx(Terminal, { size: 16, className: "text-
|
|
18420
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
18419
|
+
/* @__PURE__ */ jsx(Terminal, { size: 16, className: "text-muted-foreground" }),
|
|
18420
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-foreground font-medium", children: "Output" })
|
|
18421
18421
|
]
|
|
18422
18422
|
}
|
|
18423
18423
|
),
|
|
18424
|
-
/* @__PURE__ */ jsx(VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
18425
|
-
output?.stdout ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
18426
|
-
output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
18427
|
-
!output?.stdout && !output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
18428
|
-
output && output.testResults.length > 0 && /* @__PURE__ */ jsx(Box, { className: "mt-3 pt-3 border-t border-
|
|
18429
|
-
test.passed ? /* @__PURE__ */ jsx(CheckCircle, { size: 14, className: "text-
|
|
18424
|
+
/* @__PURE__ */ jsx(VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
18425
|
+
output?.stdout ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-background whitespace-pre-wrap", children: output.stdout }) : null,
|
|
18426
|
+
output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-error whitespace-pre-wrap", children: output.stderr }) : null,
|
|
18427
|
+
!output?.stdout && !output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-background italic", children: "No output" }) : null,
|
|
18428
|
+
output && output.testResults.length > 0 && /* @__PURE__ */ jsx(Box, { className: "mt-3 pt-3 border-t border-border space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "text-xs", children: [
|
|
18429
|
+
test.passed ? /* @__PURE__ */ jsx(CheckCircle, { size: 14, className: "text-success mt-0.5" }) : /* @__PURE__ */ jsx(XCircle, { size: 14, className: "text-error mt-0.5" }),
|
|
18430
18430
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "flex-1", children: [
|
|
18431
18431
|
/* @__PURE__ */ jsxs(
|
|
18432
18432
|
Typography,
|
|
18433
18433
|
{
|
|
18434
18434
|
variant: "small",
|
|
18435
|
-
className: test.passed ? "text-
|
|
18435
|
+
className: test.passed ? "text-success" : "text-error",
|
|
18436
18436
|
children: [
|
|
18437
18437
|
"Test ",
|
|
18438
18438
|
index + 1,
|
|
@@ -18441,15 +18441,15 @@ var init_CodeRunnerPanel = __esm({
|
|
|
18441
18441
|
]
|
|
18442
18442
|
}
|
|
18443
18443
|
),
|
|
18444
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-
|
|
18444
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-background", children: [
|
|
18445
18445
|
"Input: ",
|
|
18446
18446
|
test.input
|
|
18447
18447
|
] }),
|
|
18448
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-
|
|
18448
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-background", children: [
|
|
18449
18449
|
"Expected: ",
|
|
18450
18450
|
test.expectedOutput
|
|
18451
18451
|
] }),
|
|
18452
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-
|
|
18452
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-background", children: [
|
|
18453
18453
|
"Actual: ",
|
|
18454
18454
|
test.actualOutput
|
|
18455
18455
|
] })
|
|
@@ -18634,14 +18634,14 @@ var init_ConnectionBlock = __esm({
|
|
|
18634
18634
|
"div",
|
|
18635
18635
|
{
|
|
18636
18636
|
className: cn(
|
|
18637
|
-
"bg-
|
|
18637
|
+
"bg-success/10 border-l-4 border-success rounded-r-lg p-5 mb-6",
|
|
18638
18638
|
className
|
|
18639
18639
|
),
|
|
18640
18640
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
18641
|
-
/* @__PURE__ */ jsx(Link2, { className: "text-
|
|
18641
|
+
/* @__PURE__ */ jsx(Link2, { className: "text-success flex-shrink-0 mt-1", size: 20 }),
|
|
18642
18642
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
18643
|
-
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-
|
|
18644
|
-
/* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-
|
|
18643
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-success mb-2", children: "Building On What You Know" }),
|
|
18644
|
+
/* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-foreground", children: /* @__PURE__ */ jsx(MarkdownContent, { content }) })
|
|
18645
18645
|
] })
|
|
18646
18646
|
] })
|
|
18647
18647
|
}
|
|
@@ -19032,7 +19032,7 @@ function CounterStandard({
|
|
|
19032
19032
|
variant: "h1",
|
|
19033
19033
|
className: cn(
|
|
19034
19034
|
sizeStyles8[size].display,
|
|
19035
|
-
"font-bold tabular-nums text-primary
|
|
19035
|
+
"font-bold tabular-nums text-primary"
|
|
19036
19036
|
),
|
|
19037
19037
|
children: resolved.count
|
|
19038
19038
|
}
|
|
@@ -19105,7 +19105,7 @@ function CounterFull({
|
|
|
19105
19105
|
variant: "h1",
|
|
19106
19106
|
className: cn(
|
|
19107
19107
|
sizeStyles8[size].display,
|
|
19108
|
-
"font-bold tabular-nums text-primary
|
|
19108
|
+
"font-bold tabular-nums text-primary"
|
|
19109
19109
|
),
|
|
19110
19110
|
children: resolved.count
|
|
19111
19111
|
}
|
|
@@ -19370,11 +19370,11 @@ var init_DashboardLayout = __esm({
|
|
|
19370
19370
|
className: "h-16 px-4 border-b border-border dark:border-border",
|
|
19371
19371
|
children: [
|
|
19372
19372
|
/* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2", children: [
|
|
19373
|
-
logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary
|
|
19373
|
+
logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
|
|
19374
19374
|
Typography,
|
|
19375
19375
|
{
|
|
19376
19376
|
variant: "small",
|
|
19377
|
-
className: "text-
|
|
19377
|
+
className: "text-primary-foreground font-bold text-sm",
|
|
19378
19378
|
as: "span",
|
|
19379
19379
|
children: appName.charAt(0).toUpperCase()
|
|
19380
19380
|
}
|
|
@@ -19453,11 +19453,11 @@ var init_DashboardLayout = __esm({
|
|
|
19453
19453
|
className: "hidden @md/dashboard:flex items-center gap-1 overflow-x-auto",
|
|
19454
19454
|
children: [
|
|
19455
19455
|
/* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2 mr-3 shrink-0", children: [
|
|
19456
|
-
logo || /* @__PURE__ */ jsx(Box, { className: "w-7 h-7 bg-primary
|
|
19456
|
+
logo || /* @__PURE__ */ jsx(Box, { className: "w-7 h-7 bg-primary rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
|
|
19457
19457
|
Typography,
|
|
19458
19458
|
{
|
|
19459
19459
|
variant: "small",
|
|
19460
|
-
className: "text-
|
|
19460
|
+
className: "text-primary-foreground font-bold text-xs",
|
|
19461
19461
|
as: "span",
|
|
19462
19462
|
children: appName.charAt(0).toUpperCase()
|
|
19463
19463
|
}
|
|
@@ -19517,8 +19517,8 @@ var init_DashboardLayout = __esm({
|
|
|
19517
19517
|
{
|
|
19518
19518
|
as: "span",
|
|
19519
19519
|
className: cn(
|
|
19520
|
-
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-xs font-semibold
|
|
19521
|
-
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
19520
|
+
"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",
|
|
19521
|
+
action.variant === "danger" ? "bg-error text-error-foreground" : action.variant === "primary" ? "bg-primary text-primary-foreground" : "bg-foreground text-background"
|
|
19522
19522
|
),
|
|
19523
19523
|
children: action.badge
|
|
19524
19524
|
}
|
|
@@ -19540,7 +19540,7 @@ var init_DashboardLayout = __esm({
|
|
|
19540
19540
|
Box,
|
|
19541
19541
|
{
|
|
19542
19542
|
as: "span",
|
|
19543
|
-
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-xs font-semibold text-
|
|
19543
|
+
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",
|
|
19544
19544
|
children: unreadCount > 99 ? "99+" : unreadCount
|
|
19545
19545
|
}
|
|
19546
19546
|
)
|
|
@@ -19823,7 +19823,7 @@ function SubMenu({
|
|
|
19823
19823
|
),
|
|
19824
19824
|
children: [
|
|
19825
19825
|
item.icon && (typeof item.icon === "string" ? /* @__PURE__ */ jsx(Icon, { name: item.icon, size: "sm", className: "flex-shrink-0" }) : /* @__PURE__ */ jsx(Icon, { icon: item.icon, size: "sm", className: "flex-shrink-0" })),
|
|
19826
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: cn("flex-1", isDanger && "text-
|
|
19826
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: cn("flex-1", isDanger && "text-error"), children: item.label }),
|
|
19827
19827
|
item.badge !== void 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs font-medium", children: item.badge })
|
|
19828
19828
|
]
|
|
19829
19829
|
},
|
|
@@ -19880,7 +19880,7 @@ function MenuItemRow({
|
|
|
19880
19880
|
Typography,
|
|
19881
19881
|
{
|
|
19882
19882
|
variant: "small",
|
|
19883
|
-
className: cn("flex-1", isDanger && "text-
|
|
19883
|
+
className: cn("flex-1", isDanger && "text-error"),
|
|
19884
19884
|
children: item.label
|
|
19885
19885
|
}
|
|
19886
19886
|
),
|
|
@@ -20648,20 +20648,24 @@ function DataGrid({
|
|
|
20648
20648
|
const bodyFields = fieldDefs.filter((f3) => f3 !== titleField && !badgeFields.includes(f3));
|
|
20649
20649
|
const primaryActions = actionDefs.filter((a) => a.variant !== "danger");
|
|
20650
20650
|
const dangerActions = actionDefs.filter((a) => a.variant === "danger");
|
|
20651
|
-
const
|
|
20652
|
-
e.stopPropagation();
|
|
20653
|
-
const payload = {
|
|
20654
|
-
id: itemData.id,
|
|
20655
|
-
row: itemData
|
|
20656
|
-
};
|
|
20657
|
-
eventBus.emit(`UI:${action.event}`, payload);
|
|
20651
|
+
const fireAction = (action, itemData) => {
|
|
20658
20652
|
if (action.navigatesTo) {
|
|
20659
20653
|
const url = action.navigatesTo.replace(
|
|
20660
20654
|
/\{\{row\.(\w+(?:\.\w+)*)\}\}/g,
|
|
20661
20655
|
(_, field) => String(itemData[field] ?? "")
|
|
20662
20656
|
);
|
|
20663
|
-
eventBus.emit("UI:NAVIGATE", { url });
|
|
20657
|
+
eventBus.emit("UI:NAVIGATE", { url, row: itemData });
|
|
20658
|
+
return;
|
|
20664
20659
|
}
|
|
20660
|
+
const payload = {
|
|
20661
|
+
id: itemData.id,
|
|
20662
|
+
row: itemData
|
|
20663
|
+
};
|
|
20664
|
+
eventBus.emit(`UI:${action.event}`, payload);
|
|
20665
|
+
};
|
|
20666
|
+
const handleActionClick = (action, itemData) => (e) => {
|
|
20667
|
+
e.stopPropagation();
|
|
20668
|
+
fireAction(action, itemData);
|
|
20665
20669
|
};
|
|
20666
20670
|
const hasRenderProp = typeof children === "function";
|
|
20667
20671
|
useEffect(() => {
|
|
@@ -20763,10 +20767,7 @@ function DataGrid({
|
|
|
20763
20767
|
label: action.label,
|
|
20764
20768
|
icon: action.icon,
|
|
20765
20769
|
event: action.event,
|
|
20766
|
-
onClick: () =>
|
|
20767
|
-
id: itemData.id,
|
|
20768
|
-
row: itemData
|
|
20769
|
-
})
|
|
20770
|
+
onClick: () => fireAction(action, itemData)
|
|
20770
20771
|
}))
|
|
20771
20772
|
}
|
|
20772
20773
|
)
|
|
@@ -20819,13 +20820,13 @@ function DataGrid({
|
|
|
20819
20820
|
}
|
|
20820
20821
|
),
|
|
20821
20822
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "flex-1 min-w-0", children: [
|
|
20822
|
-
titleValue !== void 0 && titleValue !== null && /* @__PURE__ */ jsxs(HStack, { gap: "xs", className: "items-center", children: [
|
|
20823
|
+
titleValue !== void 0 && titleValue !== null && /* @__PURE__ */ jsxs(HStack, { gap: "xs", className: "items-center min-w-0", children: [
|
|
20823
20824
|
titleField?.icon && renderIconInput(titleField.icon, { size: "sm", className: "text-primary flex-shrink-0" }),
|
|
20824
20825
|
/* @__PURE__ */ jsx(
|
|
20825
20826
|
Typography,
|
|
20826
20827
|
{
|
|
20827
20828
|
variant: titleField?.variant === "h3" ? "h3" : "h4",
|
|
20828
|
-
className: "font-semibold truncate",
|
|
20829
|
+
className: "font-semibold truncate min-w-0",
|
|
20829
20830
|
children: String(titleValue)
|
|
20830
20831
|
}
|
|
20831
20832
|
)
|
|
@@ -20883,7 +20884,7 @@ function DataGrid({
|
|
|
20883
20884
|
)
|
|
20884
20885
|
] }, field.name);
|
|
20885
20886
|
}) }) }),
|
|
20886
|
-
primaryActions.length > 0 && /* @__PURE__ */ jsx(Box, { className: "px-4 py-3 mt-auto border-t border-border", children: /* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "justify-end", children: [
|
|
20887
|
+
primaryActions.length > 0 && /* @__PURE__ */ jsx(Box, { className: "px-4 py-3 mt-auto border-t border-border", children: /* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "justify-end flex-wrap", children: [
|
|
20887
20888
|
(maxInlineActions != null ? primaryActions.slice(0, maxInlineActions) : primaryActions).map((action, idx) => /* @__PURE__ */ jsxs(
|
|
20888
20889
|
Button,
|
|
20889
20890
|
{
|
|
@@ -20908,10 +20909,7 @@ function DataGrid({
|
|
|
20908
20909
|
label: action.label,
|
|
20909
20910
|
icon: action.icon,
|
|
20910
20911
|
event: action.event,
|
|
20911
|
-
onClick: () =>
|
|
20912
|
-
id: itemData.id,
|
|
20913
|
-
row: itemData
|
|
20914
|
-
})
|
|
20912
|
+
onClick: () => fireAction(action, itemData)
|
|
20915
20913
|
}))
|
|
20916
20914
|
}
|
|
20917
20915
|
)
|
|
@@ -23930,8 +23928,8 @@ var init_RelationSelect = __esm({
|
|
|
23930
23928
|
disabled,
|
|
23931
23929
|
className: cn(
|
|
23932
23930
|
"w-full justify-between font-normal",
|
|
23933
|
-
error && "border-
|
|
23934
|
-
isOpen && "ring-2 ring-primary
|
|
23931
|
+
error && "border-error/50 focus:border-error focus:ring-error",
|
|
23932
|
+
isOpen && "ring-2 ring-primary border-primary"
|
|
23935
23933
|
),
|
|
23936
23934
|
children: [
|
|
23937
23935
|
/* @__PURE__ */ jsx(
|
|
@@ -24011,7 +24009,7 @@ var init_RelationSelect = __esm({
|
|
|
24011
24009
|
paddingY: "sm",
|
|
24012
24010
|
className: cn(
|
|
24013
24011
|
"text-left text-sm hover:bg-muted focus:outline-none focus:bg-muted",
|
|
24014
|
-
option.value === value && "bg-primary
|
|
24012
|
+
option.value === value && "bg-primary/10 text-primary",
|
|
24015
24013
|
option.disabled && "opacity-50 cursor-not-allowed"
|
|
24016
24014
|
),
|
|
24017
24015
|
onClick: () => handleSelect(option),
|
|
@@ -24168,7 +24166,7 @@ var init_SidePanel = __esm({
|
|
|
24168
24166
|
showOverlay && /* @__PURE__ */ jsx(Presence, { show: isOpen, animation: "overlay", children: /* @__PURE__ */ jsx(
|
|
24169
24167
|
Box,
|
|
24170
24168
|
{
|
|
24171
|
-
className: "fixed inset-0 bg-
|
|
24169
|
+
className: "fixed inset-0 bg-background/80 backdrop-blur-sm z-40 lg:hidden",
|
|
24172
24170
|
onClick: handleClose
|
|
24173
24171
|
}
|
|
24174
24172
|
) }),
|
|
@@ -24535,7 +24533,7 @@ var init_WizardNavigation = __esm({
|
|
|
24535
24533
|
/* @__PURE__ */ jsx(Icon, { name: "chevron-left", size: "sm" }),
|
|
24536
24534
|
resolvedBackLabel
|
|
24537
24535
|
] }) : /* @__PURE__ */ jsx(Box, {}),
|
|
24538
|
-
/* @__PURE__ */ jsx(HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-
|
|
24536
|
+
/* @__PURE__ */ jsx(HStack, { align: "center", gap: "sm", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: t("wizard.stepOf", { current: String(currentStep + 1), total: String(totalSteps) }) }) }),
|
|
24539
24537
|
isLastStep && showComplete ? /* @__PURE__ */ jsx(Button, { variant: "primary", onClick: handleComplete, disabled: !isValid, children: resolvedCompleteLabel }) : showNext ? /* @__PURE__ */ jsxs(Button, { variant: "primary", onClick: handleNext, disabled: !isValid, children: [
|
|
24540
24538
|
resolvedNextLabel,
|
|
24541
24539
|
/* @__PURE__ */ jsx(Icon, { name: "chevron-right", size: "sm" })
|
|
@@ -29254,6 +29252,7 @@ var init_Lightbox = __esm({
|
|
|
29254
29252
|
{
|
|
29255
29253
|
className: cn(
|
|
29256
29254
|
"fixed inset-0 z-50 flex items-center justify-center",
|
|
29255
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: lightbox scrim behind images
|
|
29257
29256
|
"bg-black bg-opacity-90",
|
|
29258
29257
|
className
|
|
29259
29258
|
),
|
|
@@ -29276,7 +29275,7 @@ var init_Lightbox = __esm({
|
|
|
29276
29275
|
"p-2 rounded-full",
|
|
29277
29276
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29278
29277
|
"hover:bg-opacity-70 transition-opacity",
|
|
29279
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29278
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29280
29279
|
),
|
|
29281
29280
|
"aria-label": t("aria.closeModal"),
|
|
29282
29281
|
children: /* @__PURE__ */ jsx(Icon, { name: "x", className: "w-6 h-6" })
|
|
@@ -29295,7 +29294,7 @@ var init_Lightbox = __esm({
|
|
|
29295
29294
|
"p-2 rounded-full",
|
|
29296
29295
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29297
29296
|
"hover:bg-opacity-70 transition-opacity",
|
|
29298
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29297
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29299
29298
|
),
|
|
29300
29299
|
"aria-label": t("aria.previousImage"),
|
|
29301
29300
|
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-left", className: "w-8 h-8" })
|
|
@@ -29332,7 +29331,7 @@ var init_Lightbox = __esm({
|
|
|
29332
29331
|
"p-2 rounded-full",
|
|
29333
29332
|
"text-[var(--color-foreground)] bg-[var(--color-card)]",
|
|
29334
29333
|
"hover:bg-opacity-70 transition-opacity",
|
|
29335
|
-
"focus:outline-none focus:ring-2 focus:ring-
|
|
29334
|
+
"focus:outline-none focus:ring-2 focus:ring-ring"
|
|
29336
29335
|
),
|
|
29337
29336
|
"aria-label": t("aria.nextImage"),
|
|
29338
29337
|
children: /* @__PURE__ */ jsx(Icon, { name: "chevron-right", className: "w-8 h-8" })
|
|
@@ -29552,7 +29551,7 @@ function TableView({
|
|
|
29552
29551
|
col.key
|
|
29553
29552
|
);
|
|
29554
29553
|
}),
|
|
29555
|
-
hasActions && /* @__PURE__ */ jsx(Box, { "aria-hidden": true })
|
|
29554
|
+
hasActions && /* @__PURE__ */ jsx(Box, { "aria-hidden": true, className: "sticky right-0 bg-[var(--color-surface-subtle)]" })
|
|
29556
29555
|
]
|
|
29557
29556
|
}
|
|
29558
29557
|
);
|
|
@@ -29596,41 +29595,54 @@ function TableView({
|
|
|
29596
29595
|
}
|
|
29597
29596
|
return /* @__PURE__ */ jsx(Box, { role: "cell", className: cellBase, children: /* @__PURE__ */ jsx("span", { className: "truncate", children: formatCell(raw, col.format) }) }, col.key);
|
|
29598
29597
|
}),
|
|
29599
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxs(
|
|
29600
|
-
|
|
29601
|
-
|
|
29602
|
-
|
|
29603
|
-
|
|
29604
|
-
|
|
29605
|
-
|
|
29606
|
-
|
|
29607
|
-
"
|
|
29608
|
-
|
|
29609
|
-
|
|
29610
|
-
|
|
29611
|
-
|
|
29612
|
-
|
|
29613
|
-
|
|
29614
|
-
|
|
29615
|
-
|
|
29616
|
-
|
|
29617
|
-
|
|
29618
|
-
|
|
29619
|
-
|
|
29620
|
-
|
|
29621
|
-
|
|
29622
|
-
|
|
29623
|
-
|
|
29624
|
-
|
|
29625
|
-
|
|
29626
|
-
|
|
29627
|
-
|
|
29628
|
-
|
|
29629
|
-
|
|
29630
|
-
|
|
29631
|
-
|
|
29632
|
-
|
|
29633
|
-
|
|
29598
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxs(
|
|
29599
|
+
HStack,
|
|
29600
|
+
{
|
|
29601
|
+
gap: "xs",
|
|
29602
|
+
className: cn(
|
|
29603
|
+
// Pinned: the fixed column tracks routinely overflow the caller's
|
|
29604
|
+
// scroll container, which used to leave the actions off-screen.
|
|
29605
|
+
// Opaque so scrolled cells pass underneath it.
|
|
29606
|
+
"justify-end flex-shrink-0 sticky right-0 z-[1] transition-colors",
|
|
29607
|
+
lk.striped && index % 2 === 1 ? "bg-[var(--color-surface-subtle)]" : "bg-[var(--color-card)] group-hover:bg-[var(--color-surface-subtle)]"
|
|
29608
|
+
),
|
|
29609
|
+
children: [
|
|
29610
|
+
(maxInlineActions != null ? itemActions.slice(0, maxInlineActions) : itemActions).map((action, i) => /* @__PURE__ */ jsxs(
|
|
29611
|
+
Button,
|
|
29612
|
+
{
|
|
29613
|
+
variant: action.variant ?? "ghost",
|
|
29614
|
+
size: "sm",
|
|
29615
|
+
onClick: handleActionClick(action, row),
|
|
29616
|
+
"data-testid": `action-${action.event}`,
|
|
29617
|
+
"data-row-id": String(row.id),
|
|
29618
|
+
className: cn(action.variant === "danger" && "text-error hover:bg-error/10"),
|
|
29619
|
+
children: [
|
|
29620
|
+
action.icon && renderIconInput3(action.icon, { size: "xs", className: "mr-1" }),
|
|
29621
|
+
action.label
|
|
29622
|
+
]
|
|
29623
|
+
},
|
|
29624
|
+
i
|
|
29625
|
+
)),
|
|
29626
|
+
maxInlineActions != null && itemActions.length > maxInlineActions && /* @__PURE__ */ jsx(
|
|
29627
|
+
Menu,
|
|
29628
|
+
{
|
|
29629
|
+
position: "bottom-end",
|
|
29630
|
+
trigger: /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", "aria-label": t("common.actions"), "data-testid": "action-overflow", children: /* @__PURE__ */ jsx(Icon, { name: "more-horizontal", size: "xs" }) }),
|
|
29631
|
+
items: itemActions.slice(maxInlineActions).map((action) => ({
|
|
29632
|
+
label: action.label,
|
|
29633
|
+
icon: action.icon,
|
|
29634
|
+
event: action.event,
|
|
29635
|
+
variant: action.variant === "danger" ? "danger" : "default",
|
|
29636
|
+
onClick: () => eventBus.emit(`UI:${action.event}`, {
|
|
29637
|
+
id: row.id,
|
|
29638
|
+
row
|
|
29639
|
+
})
|
|
29640
|
+
}))
|
|
29641
|
+
}
|
|
29642
|
+
)
|
|
29643
|
+
]
|
|
29644
|
+
}
|
|
29645
|
+
)
|
|
29634
29646
|
]
|
|
29635
29647
|
}
|
|
29636
29648
|
);
|
|
@@ -32405,6 +32417,7 @@ var init_QrScanner = __esm({
|
|
|
32405
32417
|
overflow: "hidden",
|
|
32406
32418
|
rounded: "sm",
|
|
32407
32419
|
className: cn(
|
|
32420
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32408
32421
|
"bg-black",
|
|
32409
32422
|
"aspect-square w-full max-w-md",
|
|
32410
32423
|
className
|
|
@@ -32469,7 +32482,9 @@ var init_QrScanner = __esm({
|
|
|
32469
32482
|
type: "button",
|
|
32470
32483
|
onClick: togglePause,
|
|
32471
32484
|
className: cn(
|
|
32485
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32472
32486
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
32487
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32473
32488
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32474
32489
|
),
|
|
32475
32490
|
"aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
|
|
@@ -32482,7 +32497,9 @@ var init_QrScanner = __esm({
|
|
|
32482
32497
|
type: "button",
|
|
32483
32498
|
onClick: toggleFacing,
|
|
32484
32499
|
className: cn(
|
|
32500
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32485
32501
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
32502
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32486
32503
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32487
32504
|
),
|
|
32488
32505
|
"aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
|
|
@@ -32495,7 +32512,9 @@ var init_QrScanner = __esm({
|
|
|
32495
32512
|
type: "button",
|
|
32496
32513
|
onClick: handleMockScan,
|
|
32497
32514
|
className: cn(
|
|
32515
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32498
32516
|
"rounded-full bg-black bg-opacity-60 px-3 py-2 text-xs text-white",
|
|
32517
|
+
// eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: always over a dark scrim
|
|
32499
32518
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
32500
32519
|
),
|
|
32501
32520
|
"aria-label": t("aria.mockScanDev"),
|
|
@@ -35231,10 +35250,10 @@ var init_ModuleCard = __esm({
|
|
|
35231
35250
|
init_avl_atom_types();
|
|
35232
35251
|
init_MiniStateMachine();
|
|
35233
35252
|
PERSISTENCE_BORDER = {
|
|
35234
|
-
persistent: "border-l-[3px] border-l-
|
|
35235
|
-
runtime: "border-l-[3px] border-l-
|
|
35236
|
-
singleton: "border-l-[3px] border-l-
|
|
35237
|
-
instance: "border-l-[3px] border-l-
|
|
35253
|
+
persistent: "border-l-[3px] border-l-primary border-solid",
|
|
35254
|
+
runtime: "border-l-[3px] border-l-primary border-dashed",
|
|
35255
|
+
singleton: "border-l-[3px] border-l-primary border-double",
|
|
35256
|
+
instance: "border-l-[3px] border-l-primary border-dotted"
|
|
35238
35257
|
};
|
|
35239
35258
|
PERSISTENCE_ICON = {
|
|
35240
35259
|
persistent: "\u26C1",
|
|
@@ -35264,8 +35283,8 @@ var init_ModuleCard = __esm({
|
|
|
35264
35283
|
className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] shadow-sm overflow-hidden",
|
|
35265
35284
|
style: { minWidth: 280, maxWidth: 400 },
|
|
35266
35285
|
children: [
|
|
35267
|
-
/* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Left, className: "!w-2.5 !h-2.5 !bg-
|
|
35268
|
-
/* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, className: "!w-2.5 !h-2.5 !bg-
|
|
35286
|
+
/* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Left, className: "!w-2.5 !h-2.5 !bg-warning" }),
|
|
35287
|
+
/* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Right, className: "!w-2.5 !h-2.5 !bg-warning" }),
|
|
35269
35288
|
/* @__PURE__ */ jsx("div", { className: "px-3 py-2 border-b border-[var(--color-border)]", children: /* @__PURE__ */ jsx("span", { className: "text-base font-bold text-[var(--color-foreground)]", children: orbitalName }) }),
|
|
35270
35289
|
/* @__PURE__ */ jsxs("div", { className: `px-3 py-2 border-b border-[var(--color-border)] ${PERSISTENCE_BORDER[persistence] ?? ""}`, children: [
|
|
35271
35290
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [
|
|
@@ -37721,19 +37740,19 @@ var init_ReflectionBlock = __esm({
|
|
|
37721
37740
|
"div",
|
|
37722
37741
|
{
|
|
37723
37742
|
className: cn(
|
|
37724
|
-
"my-6 border-l-4 border-
|
|
37743
|
+
"my-6 border-l-4 border-warning bg-warning/10 rounded-r-lg p-4",
|
|
37725
37744
|
className
|
|
37726
37745
|
),
|
|
37727
37746
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
37728
|
-
/* @__PURE__ */ jsx(PauseCircle, { className: "text-
|
|
37747
|
+
/* @__PURE__ */ jsx(PauseCircle, { className: "text-warning flex-shrink-0 mt-1", size: 20 }),
|
|
37729
37748
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
37730
|
-
/* @__PURE__ */ jsx("div", { className: "font-medium text-
|
|
37731
|
-
/* @__PURE__ */ jsx("p", { className: "text-
|
|
37749
|
+
/* @__PURE__ */ jsx("div", { className: "font-medium text-warning mb-2", children: "Pause & Reflect" }),
|
|
37750
|
+
/* @__PURE__ */ jsx("p", { className: "text-foreground text-sm mb-3", children: prompt }),
|
|
37732
37751
|
isExpanded ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37733
37752
|
/* @__PURE__ */ jsx(
|
|
37734
37753
|
"textarea",
|
|
37735
37754
|
{
|
|
37736
|
-
className: "w-full p-2 border border-
|
|
37755
|
+
className: "w-full p-2 border border-input rounded text-sm bg-card text-foreground focus:ring-2 focus:ring-ring focus:border-transparent",
|
|
37737
37756
|
placeholder: "Your thoughts...",
|
|
37738
37757
|
value: note,
|
|
37739
37758
|
onChange: (e) => setNote(e.target.value),
|
|
@@ -37744,7 +37763,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37744
37763
|
"button",
|
|
37745
37764
|
{
|
|
37746
37765
|
onClick: handleSave,
|
|
37747
|
-
className: "mt-2 text-sm px-3 py-1 bg-
|
|
37766
|
+
className: "mt-2 text-sm px-3 py-1 bg-warning text-warning-foreground rounded hover:opacity-90 transition-colors",
|
|
37748
37767
|
children: "Save & Continue"
|
|
37749
37768
|
}
|
|
37750
37769
|
)
|
|
@@ -37752,7 +37771,7 @@ var init_ReflectionBlock = __esm({
|
|
|
37752
37771
|
"button",
|
|
37753
37772
|
{
|
|
37754
37773
|
onClick: () => setIsExpanded(true),
|
|
37755
|
-
className: "text-sm text-
|
|
37774
|
+
className: "text-sm text-warning hover:underline",
|
|
37756
37775
|
children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
|
|
37757
37776
|
}
|
|
37758
37777
|
)
|
|
@@ -38256,7 +38275,7 @@ function DataTable({
|
|
|
38256
38275
|
)),
|
|
38257
38276
|
rowActions && /* @__PURE__ */ jsx("th", { className: "w-12 px-4 py-3" })
|
|
38258
38277
|
] }) }),
|
|
38259
|
-
/* @__PURE__ */ jsx("tbody", { className: "divide-y divide-
|
|
38278
|
+
/* @__PURE__ */ jsx("tbody", { className: "divide-y divide-border", children: isLoading ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
|
|
38260
38279
|
"td",
|
|
38261
38280
|
{
|
|
38262
38281
|
colSpan: normalizedColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0),
|
|
@@ -38576,6 +38595,16 @@ function normalizeFieldDefs(fields) {
|
|
|
38576
38595
|
return String(f3);
|
|
38577
38596
|
});
|
|
38578
38597
|
}
|
|
38598
|
+
function buildFieldLabelMap(fields) {
|
|
38599
|
+
const map = {};
|
|
38600
|
+
if (!fields) return map;
|
|
38601
|
+
for (const f3 of fields) {
|
|
38602
|
+
if (typeof f3 === "object" && "key" in f3 && f3.header !== void 0 && f3.header !== "") {
|
|
38603
|
+
map[f3.key] = f3.header;
|
|
38604
|
+
}
|
|
38605
|
+
}
|
|
38606
|
+
return map;
|
|
38607
|
+
}
|
|
38579
38608
|
function buildFieldTypeMap(fields) {
|
|
38580
38609
|
const map = {};
|
|
38581
38610
|
if (!fields) return map;
|
|
@@ -38627,7 +38656,9 @@ var init_DetailPanel = __esm({
|
|
|
38627
38656
|
};
|
|
38628
38657
|
const effectiveFieldNames = isFieldDefArray(propFields) ? normalizeFieldDefs(propFields) : fieldNames;
|
|
38629
38658
|
const fieldTypeMap = isFieldDefArray(propFields) ? buildFieldTypeMap(propFields) : {};
|
|
38630
|
-
|
|
38659
|
+
const fieldLabelMap = isFieldDefArray(propFields) ? buildFieldLabelMap(propFields) : {};
|
|
38660
|
+
const labelFor = (field) => fieldLabelMap[field] ?? formatFieldLabel(field);
|
|
38661
|
+
const handleActionClick = useCallback(
|
|
38631
38662
|
(action, data2) => {
|
|
38632
38663
|
if (action.navigatesTo) {
|
|
38633
38664
|
const url = action.navigatesTo.replace(
|
|
@@ -38662,7 +38693,7 @@ var init_DetailPanel = __esm({
|
|
|
38662
38693
|
if (typeof field === "string") {
|
|
38663
38694
|
const value = getNestedValue(normalizedData, field);
|
|
38664
38695
|
return {
|
|
38665
|
-
label:
|
|
38696
|
+
label: labelFor(field),
|
|
38666
38697
|
value: formatFieldValue(value, field),
|
|
38667
38698
|
icon: getFieldIcon(field)
|
|
38668
38699
|
};
|
|
@@ -38673,7 +38704,10 @@ var init_DetailPanel = __esm({
|
|
|
38673
38704
|
}
|
|
38674
38705
|
if (normalizedData && effectiveFieldNames) {
|
|
38675
38706
|
const primaryField = effectiveFieldNames[0];
|
|
38676
|
-
|
|
38707
|
+
const titleDerivedFromPrimary = Boolean(
|
|
38708
|
+
!title && primaryField && normalizedData[primaryField]
|
|
38709
|
+
);
|
|
38710
|
+
if (titleDerivedFromPrimary) {
|
|
38677
38711
|
title = String(normalizedData[primaryField]);
|
|
38678
38712
|
}
|
|
38679
38713
|
const statusFields = effectiveFieldNames.filter(
|
|
@@ -38692,16 +38726,16 @@ var init_DetailPanel = __esm({
|
|
|
38692
38726
|
(f3) => f3.toLowerCase().includes("description") || f3.toLowerCase().includes("note")
|
|
38693
38727
|
);
|
|
38694
38728
|
const otherFields = effectiveFieldNames.filter(
|
|
38695
|
-
(f3) => f3 !== primaryField && !statusFields.includes(f3) && !progressFields.includes(f3) && !metricFields.includes(f3) && !dateFields.includes(f3) && !descriptionFields.includes(f3)
|
|
38729
|
+
(f3) => (!titleDerivedFromPrimary || f3 !== primaryField) && !statusFields.includes(f3) && !progressFields.includes(f3) && !metricFields.includes(f3) && !dateFields.includes(f3) && !descriptionFields.includes(f3)
|
|
38696
38730
|
);
|
|
38697
38731
|
sections = [];
|
|
38698
38732
|
if (statusFields.length > 0 || otherFields.length > 0) {
|
|
38699
38733
|
const overviewFields = [];
|
|
38700
|
-
[...statusFields, ...otherFields
|
|
38734
|
+
[...statusFields, ...otherFields].forEach((field) => {
|
|
38701
38735
|
const value = getNestedValue(normalizedData, field);
|
|
38702
38736
|
if (value !== void 0 && value !== null) {
|
|
38703
38737
|
overviewFields.push({
|
|
38704
|
-
label:
|
|
38738
|
+
label: labelFor(field),
|
|
38705
38739
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38706
38740
|
icon: getFieldIcon(field)
|
|
38707
38741
|
});
|
|
@@ -38717,7 +38751,7 @@ var init_DetailPanel = __esm({
|
|
|
38717
38751
|
const value = getNestedValue(normalizedData, field);
|
|
38718
38752
|
if (value !== void 0 && value !== null) {
|
|
38719
38753
|
metricsFields.push({
|
|
38720
|
-
label:
|
|
38754
|
+
label: labelFor(field),
|
|
38721
38755
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38722
38756
|
icon: getFieldIcon(field)
|
|
38723
38757
|
});
|
|
@@ -38733,7 +38767,7 @@ var init_DetailPanel = __esm({
|
|
|
38733
38767
|
const value = getNestedValue(normalizedData, field);
|
|
38734
38768
|
if (value !== void 0 && value !== null) {
|
|
38735
38769
|
timelineFields.push({
|
|
38736
|
-
label:
|
|
38770
|
+
label: labelFor(field),
|
|
38737
38771
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38738
38772
|
icon: getFieldIcon(field)
|
|
38739
38773
|
});
|
|
@@ -38749,7 +38783,7 @@ var init_DetailPanel = __esm({
|
|
|
38749
38783
|
const value = getNestedValue(normalizedData, field);
|
|
38750
38784
|
if (value !== void 0 && value !== null) {
|
|
38751
38785
|
descFields.push({
|
|
38752
|
-
label:
|
|
38786
|
+
label: labelFor(field),
|
|
38753
38787
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38754
38788
|
icon: getFieldIcon(field)
|
|
38755
38789
|
});
|
|
@@ -38797,7 +38831,7 @@ var init_DetailPanel = __esm({
|
|
|
38797
38831
|
if (typeof field === "string") {
|
|
38798
38832
|
const value = normalizedData ? getNestedValue(normalizedData, field) : void 0;
|
|
38799
38833
|
allFields.push({
|
|
38800
|
-
label:
|
|
38834
|
+
label: labelFor(field),
|
|
38801
38835
|
value: renderRichFieldValue(value, field, fieldTypeMap[field]),
|
|
38802
38836
|
icon: getFieldIcon(field)
|
|
38803
38837
|
});
|
|
@@ -38819,8 +38853,9 @@ var init_DetailPanel = __esm({
|
|
|
38819
38853
|
{
|
|
38820
38854
|
variant: action.variant || "secondary",
|
|
38821
38855
|
size: "sm",
|
|
38822
|
-
action: action.event,
|
|
38856
|
+
action: action.navigatesTo ? void 0 : action.event,
|
|
38823
38857
|
actionPayload: { row: normalizedData },
|
|
38858
|
+
onClick: action.navigatesTo ? () => handleActionClick(action, normalizedData) : void 0,
|
|
38824
38859
|
icon: action.icon,
|
|
38825
38860
|
"data-testid": action.event ? `action-${action.event}` : void 0,
|
|
38826
38861
|
"data-row-id": normalizedData?.id !== void 0 ? String(normalizedData.id) : void 0,
|
|
@@ -40863,8 +40898,9 @@ var init_MediaGallery = __esm({
|
|
|
40863
40898
|
)
|
|
40864
40899
|
}
|
|
40865
40900
|
),
|
|
40866
|
-
item.caption &&
|
|
40867
|
-
|
|
40901
|
+
item.caption && // eslint-disable-next-line almadar/no-hardcoded-colors -- media overlay: caption scrim over image
|
|
40902
|
+
/* @__PURE__ */ jsx(Box, { className: "absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/60 to-transparent", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white truncate", children: item.caption }) }),
|
|
40903
|
+
selectable && isSelected && /* @__PURE__ */ jsx(Box, { className: "absolute top-2 right-2 w-5 h-5 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-primary-foreground text-xs", children: "\u2713" }) })
|
|
40868
40904
|
]
|
|
40869
40905
|
},
|
|
40870
40906
|
item.id
|
|
@@ -40893,7 +40929,7 @@ var init_MediaGallery = __esm({
|
|
|
40893
40929
|
size: "sm",
|
|
40894
40930
|
icon: X,
|
|
40895
40931
|
action: "LIGHTBOX_CLOSE",
|
|
40896
|
-
className: "text-
|
|
40932
|
+
className: "text-foreground hover:bg-muted/50"
|
|
40897
40933
|
}
|
|
40898
40934
|
) }),
|
|
40899
40935
|
/* @__PURE__ */ jsx(
|
|
@@ -40904,7 +40940,7 @@ var init_MediaGallery = __esm({
|
|
|
40904
40940
|
className: "max-w-full max-h-[80vh] object-contain rounded-md"
|
|
40905
40941
|
}
|
|
40906
40942
|
),
|
|
40907
|
-
lightboxItem.caption && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-
|
|
40943
|
+
lightboxItem.caption && /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-foreground mt-3 text-center", children: lightboxItem.caption })
|
|
40908
40944
|
]
|
|
40909
40945
|
}
|
|
40910
40946
|
)
|
|
@@ -41346,7 +41382,7 @@ function WalkMinimap() {
|
|
|
41346
41382
|
{
|
|
41347
41383
|
variant,
|
|
41348
41384
|
size: "sm",
|
|
41349
|
-
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-
|
|
41385
|
+
className: `flex-shrink-0 text-[9px] ${isActive ? "ring-1 ring-info" : ""}`,
|
|
41350
41386
|
children: [
|
|
41351
41387
|
isDone ? "\u2713" : isActive ? "\u25CF" : "\u25CB",
|
|
41352
41388
|
" ",
|
|
@@ -41487,13 +41523,13 @@ function WalkMinimap() {
|
|
|
41487
41523
|
})
|
|
41488
41524
|
] }) }),
|
|
41489
41525
|
/* @__PURE__ */ jsx(Box, { className: "px-2 py-1 border-t border-border", children: /* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "items-center justify-between", children: [
|
|
41490
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-
|
|
41526
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-success", children: [
|
|
41491
41527
|
"Engine: ",
|
|
41492
41528
|
engineCount,
|
|
41493
41529
|
"/",
|
|
41494
41530
|
totalTransitions
|
|
41495
41531
|
] }),
|
|
41496
|
-
domCount > 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-
|
|
41532
|
+
domCount > 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", className: "text-xs font-mono text-info", children: [
|
|
41497
41533
|
"DOM: ",
|
|
41498
41534
|
domCount
|
|
41499
41535
|
] }),
|
|
@@ -41526,13 +41562,13 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41526
41562
|
const accordionItems = traits2.map((trait) => ({
|
|
41527
41563
|
id: trait.id,
|
|
41528
41564
|
header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41529
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41565
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-primary", children: trait.name }),
|
|
41530
41566
|
/* @__PURE__ */ jsx(Badge, { variant: "success", size: "sm", children: trait.currentState }),
|
|
41531
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41567
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
|
|
41532
41568
|
] }),
|
|
41533
41569
|
content: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
41534
41570
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
41535
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41571
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.states") }),
|
|
41536
41572
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsx(
|
|
41537
41573
|
Badge,
|
|
41538
41574
|
{
|
|
@@ -41544,18 +41580,18 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41544
41580
|
)) })
|
|
41545
41581
|
] }),
|
|
41546
41582
|
trait.transitions.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
41547
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41583
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.transitions") }),
|
|
41548
41584
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: trait.transitions.map((t2, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono", children: [
|
|
41549
41585
|
t2.from,
|
|
41550
41586
|
" \u2192 ",
|
|
41551
41587
|
t2.to,
|
|
41552
41588
|
" ",
|
|
41553
|
-
/* @__PURE__ */ jsxs("span", { className: "text-
|
|
41589
|
+
/* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
41554
41590
|
"(",
|
|
41555
41591
|
t2.event,
|
|
41556
41592
|
")"
|
|
41557
41593
|
] }),
|
|
41558
|
-
t2.guard && /* @__PURE__ */ jsxs("span", { className: "text-
|
|
41594
|
+
t2.guard && /* @__PURE__ */ jsxs("span", { className: "text-warning", children: [
|
|
41559
41595
|
" [",
|
|
41560
41596
|
t2.guard,
|
|
41561
41597
|
"]"
|
|
@@ -41563,7 +41599,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
41563
41599
|
] }, i)) })
|
|
41564
41600
|
] }),
|
|
41565
41601
|
trait.guards.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
41566
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41602
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.guards") }),
|
|
41567
41603
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: trait.guards.map((g, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
41568
41604
|
/* @__PURE__ */ jsx(Typography, { variant: "small", children: g.name }),
|
|
41569
41605
|
/* @__PURE__ */ jsx(Badge, { variant: g.lastResult === true ? "success" : g.lastResult === false ? "danger" : "default", size: "sm", children: g.lastResult === void 0 ? "?" : g.lastResult ? "\u2713" : "\u2717" })
|
|
@@ -41606,11 +41642,11 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41606
41642
|
};
|
|
41607
41643
|
const TickCard = ({ tick, active }) => /* @__PURE__ */ jsxs(Card, { className: `p-3 ${!active ? "opacity-50" : ""}`, children: [
|
|
41608
41644
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
41609
|
-
/* @__PURE__ */ jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-
|
|
41610
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41611
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41645
|
+
/* @__PURE__ */ jsx("span", { className: `w-2 h-2 rounded-full ${active ? "bg-success" : "bg-muted-foreground"}` }),
|
|
41646
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-warning", children: tick.name }),
|
|
41647
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: tick.traitName })
|
|
41612
41648
|
] }),
|
|
41613
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-3 text-xs text-
|
|
41649
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-3 text-xs text-muted-foreground", children: [
|
|
41614
41650
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
41615
41651
|
tick.interval,
|
|
41616
41652
|
"ms"
|
|
@@ -41633,7 +41669,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41633
41669
|
] });
|
|
41634
41670
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--ticks", children: [
|
|
41635
41671
|
activeTicks.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
41636
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41672
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
|
|
41637
41673
|
"Active (",
|
|
41638
41674
|
activeTicks.length,
|
|
41639
41675
|
")"
|
|
@@ -41641,7 +41677,7 @@ function TicksTab({ ticks: ticks2 }) {
|
|
|
41641
41677
|
/* @__PURE__ */ jsx(Stack, { gap: "sm", children: activeTicks.map((tick) => /* @__PURE__ */ jsx(TickCard, { tick, active: true }, tick.id)) })
|
|
41642
41678
|
] }),
|
|
41643
41679
|
inactiveTicks.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
41644
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41680
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: [
|
|
41645
41681
|
"Inactive (",
|
|
41646
41682
|
inactiveTicks.length,
|
|
41647
41683
|
")"
|
|
@@ -41689,33 +41725,33 @@ function EntitiesTab({ snapshot }) {
|
|
|
41689
41725
|
id: `singleton-${name}`,
|
|
41690
41726
|
header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41691
41727
|
/* @__PURE__ */ jsx(Badge, { variant: "primary", size: "sm", children: t("debug.singleton") }),
|
|
41692
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41728
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-info", children: name })
|
|
41693
41729
|
] }),
|
|
41694
|
-
content: /* @__PURE__ */ jsx("pre", { className: "text-xs text-
|
|
41730
|
+
content: /* @__PURE__ */ jsx("pre", { className: "text-xs text-muted-foreground bg-muted p-2 rounded overflow-auto max-h-40", children: JSON.stringify(data, null, 2) })
|
|
41695
41731
|
}));
|
|
41696
41732
|
const runtimeItems = runtimeEntities.slice(0, 20).map((entity) => ({
|
|
41697
41733
|
id: entity.id,
|
|
41698
41734
|
header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
41699
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41700
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-
|
|
41735
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-info", children: entity.type }),
|
|
41736
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground", children: [
|
|
41701
41737
|
"#",
|
|
41702
41738
|
entity.id.slice(0, 8)
|
|
41703
41739
|
] })
|
|
41704
41740
|
] }),
|
|
41705
|
-
content: /* @__PURE__ */ jsx("pre", { className: "text-xs text-
|
|
41741
|
+
content: /* @__PURE__ */ 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) })
|
|
41706
41742
|
}));
|
|
41707
41743
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--entities", children: [
|
|
41708
41744
|
singletonItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
41709
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41745
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
|
|
41710
41746
|
/* @__PURE__ */ jsx(Accordion, { items: singletonItems, multiple: true })
|
|
41711
41747
|
] }),
|
|
41712
41748
|
runtimeItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
41713
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41749
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
|
|
41714
41750
|
/* @__PURE__ */ jsx(Accordion, { items: runtimeItems, multiple: true }),
|
|
41715
|
-
runtimeEntities.length > 20 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41751
|
+
runtimeEntities.length > 20 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
|
|
41716
41752
|
] }),
|
|
41717
41753
|
persistentEntries.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
41718
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41754
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-2", children: t("debug.persistent") }),
|
|
41719
41755
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: persistentEntries.map(([type, info]) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1", children: [
|
|
41720
41756
|
/* @__PURE__ */ jsx(Typography, { variant: "small", children: type }),
|
|
41721
41757
|
/* @__PURE__ */ jsx(Badge, { variant: info.loaded ? "success" : "default", size: "sm", children: info.loaded ? t("debug.loadedCount", { count: info.count }) : t("debug.notLoaded") })
|
|
@@ -41800,7 +41836,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41800
41836
|
);
|
|
41801
41837
|
})
|
|
41802
41838
|
] }),
|
|
41803
|
-
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-
|
|
41839
|
+
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground ml-auto cursor-pointer", children: [
|
|
41804
41840
|
/* @__PURE__ */ jsx(
|
|
41805
41841
|
Checkbox,
|
|
41806
41842
|
{
|
|
@@ -41815,18 +41851,18 @@ function EventFlowTab({ events: events2 }) {
|
|
|
41815
41851
|
"div",
|
|
41816
41852
|
{
|
|
41817
41853
|
ref: containerRef,
|
|
41818
|
-
className: "max-h-64 overflow-y-auto space-y-1 bg-
|
|
41854
|
+
className: "max-h-64 overflow-y-auto space-y-1 bg-muted rounded p-2",
|
|
41819
41855
|
children: filteredEvents.slice(-100).map((event) => {
|
|
41820
41856
|
const { variant, icon } = TYPE_BADGES[event.type] || { variant: "default", icon: "\u2022" };
|
|
41821
41857
|
return /* @__PURE__ */ jsxs(
|
|
41822
41858
|
"div",
|
|
41823
41859
|
{
|
|
41824
|
-
className: "flex items-start gap-2 text-xs py-1 hover:bg-
|
|
41860
|
+
className: "flex items-start gap-2 text-xs py-1 hover:bg-muted/50 rounded px-1",
|
|
41825
41861
|
children: [
|
|
41826
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41862
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(event.timestamp) }),
|
|
41827
41863
|
/* @__PURE__ */ jsx("span", { children: icon }),
|
|
41828
41864
|
/* @__PURE__ */ jsx(Badge, { variant, size: "sm", className: "min-w-[60px] justify-center", children: event.source }),
|
|
41829
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41865
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: event.message })
|
|
41830
41866
|
]
|
|
41831
41867
|
},
|
|
41832
41868
|
event.id
|
|
@@ -41890,21 +41926,21 @@ function GuardsPanel({ guards }) {
|
|
|
41890
41926
|
id: guard.id,
|
|
41891
41927
|
header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
41892
41928
|
/* @__PURE__ */ jsx(Badge, { variant: guard.result ? "success" : "danger", size: "sm", children: guard.result ? "\u2713" : "\u2717" }),
|
|
41893
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-
|
|
41894
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41895
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
41929
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-warning", children: guard.guardName }),
|
|
41930
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: guard.context.type === "transition" ? `${guard.context.transitionFrom} \u2192 ${guard.context.transitionTo}` : guard.context.tickName }),
|
|
41931
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: formatTime2(guard.timestamp) })
|
|
41896
41932
|
] }),
|
|
41897
41933
|
content: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
41898
41934
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
41899
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41900
|
-
/* @__PURE__ */ jsx("code", { className: "block mt-1 text-xs text-
|
|
41935
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.expression") }),
|
|
41936
|
+
/* @__PURE__ */ jsx("code", { className: "block mt-1 text-xs text-warning bg-warning/10 px-2 py-1 rounded", children: guard.expression })
|
|
41901
41937
|
] }),
|
|
41902
41938
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
41903
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41904
|
-
/* @__PURE__ */ jsx("pre", { className: "mt-1 text-xs text-
|
|
41939
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.inputs") }),
|
|
41940
|
+
/* @__PURE__ */ 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) })
|
|
41905
41941
|
] }),
|
|
41906
41942
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
41907
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
41943
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground", children: t("debug.trait") }),
|
|
41908
41944
|
/* @__PURE__ */ jsx(Typography, { variant: "small", children: guard.context.traitName })
|
|
41909
41945
|
] })
|
|
41910
41946
|
] })
|
|
@@ -41960,7 +41996,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
41960
41996
|
(a, b) => (sortOrder[a.status] ?? 4) - (sortOrder[b.status] ?? 4)
|
|
41961
41997
|
);
|
|
41962
41998
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--verification", children: [
|
|
41963
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-
|
|
41999
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3 p-2 bg-muted rounded", children: [
|
|
41964
42000
|
/* @__PURE__ */ jsxs(Badge, { variant: "success", size: "sm", children: [
|
|
41965
42001
|
summary.passed,
|
|
41966
42002
|
" passed"
|
|
@@ -41977,7 +42013,7 @@ function VerificationTab({ checks, summary }) {
|
|
|
41977
42013
|
summary.pending,
|
|
41978
42014
|
" pending"
|
|
41979
42015
|
] }),
|
|
41980
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-
|
|
42016
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: [
|
|
41981
42017
|
summary.totalChecks,
|
|
41982
42018
|
" total checks"
|
|
41983
42019
|
] })
|
|
@@ -41987,12 +42023,12 @@ function VerificationTab({ checks, summary }) {
|
|
|
41987
42023
|
return /* @__PURE__ */ jsxs(
|
|
41988
42024
|
"div",
|
|
41989
42025
|
{
|
|
41990
|
-
className: "flex items-start gap-2 p-2 rounded hover:bg-
|
|
42026
|
+
className: "flex items-start gap-2 p-2 rounded hover:bg-muted/50",
|
|
41991
42027
|
children: [
|
|
41992
42028
|
/* @__PURE__ */ jsx(Badge, { variant: config.variant, size: "sm", className: "min-w-[20px] justify-center mt-0.5", children: config.icon }),
|
|
41993
42029
|
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
41994
42030
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "break-words", children: check.label }),
|
|
41995
|
-
check.details && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42031
|
+
check.details && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground break-words", children: check.details })
|
|
41996
42032
|
] }),
|
|
41997
42033
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs shrink-0", children: new Date(check.updatedAt).toLocaleTimeString("en-US", {
|
|
41998
42034
|
hour12: false,
|
|
@@ -42027,10 +42063,10 @@ var init_VerificationTab = __esm({
|
|
|
42027
42063
|
function EffectBadge({ effect }) {
|
|
42028
42064
|
const variant = EFFECT_STATUS_VARIANT[effect.status] || "default";
|
|
42029
42065
|
const icon = effect.status === "executed" ? "\u2713" : effect.status === "failed" ? "\u2717" : "-";
|
|
42030
|
-
return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-
|
|
42066
|
+
return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-xs font-mono bg-muted rounded px-1.5 py-0.5", children: [
|
|
42031
42067
|
/* @__PURE__ */ jsx(Badge, { variant, size: "sm", className: "!text-[9px] !px-1 !py-0", children: icon }),
|
|
42032
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42033
|
-
effect.error && /* @__PURE__ */ jsx("span", { className: "text-
|
|
42068
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: effect.type }),
|
|
42069
|
+
effect.error && /* @__PURE__ */ jsx("span", { className: "text-error truncate max-w-[120px]", title: effect.error, children: effect.error })
|
|
42034
42070
|
] });
|
|
42035
42071
|
}
|
|
42036
42072
|
function TransitionTimeline({ transitions }) {
|
|
@@ -42065,8 +42101,8 @@ function TransitionTimeline({ transitions }) {
|
|
|
42065
42101
|
const sorted = [...transitions].reverse();
|
|
42066
42102
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
|
|
42067
42103
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
|
|
42068
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42069
|
-
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-
|
|
42104
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
|
|
42105
|
+
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground cursor-pointer", children: [
|
|
42070
42106
|
/* @__PURE__ */ jsx(
|
|
42071
42107
|
Checkbox,
|
|
42072
42108
|
{
|
|
@@ -42091,22 +42127,22 @@ function TransitionTimeline({ transitions }) {
|
|
|
42091
42127
|
{
|
|
42092
42128
|
className: `
|
|
42093
42129
|
relative pl-6 pb-3 border-l-2 cursor-pointer
|
|
42094
|
-
hover:bg-
|
|
42095
|
-
${hasFailedEffects ? "border-
|
|
42130
|
+
hover:bg-muted/50 rounded-r
|
|
42131
|
+
${hasFailedEffects ? "border-error" : "border-border"}
|
|
42096
42132
|
`,
|
|
42097
42133
|
onClick: () => setExpandedId(isExpanded ? null : trace.id),
|
|
42098
42134
|
children: [
|
|
42099
42135
|
/* @__PURE__ */ jsx("div", { className: `
|
|
42100
42136
|
absolute left-[-5px] top-1 w-2 h-2 rounded-full
|
|
42101
|
-
${hasFailedEffects ? "bg-
|
|
42137
|
+
${hasFailedEffects ? "bg-error" : allPassed ? "bg-success" : "bg-muted-foreground"}
|
|
42102
42138
|
` }),
|
|
42103
42139
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs py-1 px-2", children: [
|
|
42104
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42140
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono min-w-[65px]", children: formatTime2(trace.timestamp) }),
|
|
42105
42141
|
/* @__PURE__ */ jsx(Badge, { variant: "primary", size: "sm", className: "min-w-[60px] justify-center", children: trace.traitName }),
|
|
42106
|
-
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-
|
|
42142
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-muted-foreground", children: [
|
|
42107
42143
|
trace.from,
|
|
42108
42144
|
" ",
|
|
42109
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42145
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground/50", children: "\u2192" }),
|
|
42110
42146
|
" ",
|
|
42111
42147
|
trace.to
|
|
42112
42148
|
] }),
|
|
@@ -42123,9 +42159,9 @@ function TransitionTimeline({ transitions }) {
|
|
|
42123
42159
|
]
|
|
42124
42160
|
}
|
|
42125
42161
|
),
|
|
42126
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42162
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
|
|
42127
42163
|
] }),
|
|
42128
|
-
isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-
|
|
42164
|
+
isExpanded && trace.effects.length > 0 && /* @__PURE__ */ 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__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
42129
42165
|
/* @__PURE__ */ jsx(EffectBadge, { effect }),
|
|
42130
42166
|
effect.args.length > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground font-mono text-xs truncate max-w-[200px]", children: JSON.stringify(effect.args) }),
|
|
42131
42167
|
effect.durationMs !== void 0 && /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
|
|
@@ -42159,8 +42195,8 @@ var init_TransitionTimeline = __esm({
|
|
|
42159
42195
|
}
|
|
42160
42196
|
});
|
|
42161
42197
|
function StatRow({ label, value, variant }) {
|
|
42162
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-
|
|
42163
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42198
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-border last:border-b-0", children: [
|
|
42199
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: label }),
|
|
42164
42200
|
variant ? /* @__PURE__ */ jsx(Badge, { variant, size: "sm", children: String(value) }) : /* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "font-mono", children: String(value) })
|
|
42165
42201
|
] });
|
|
42166
42202
|
}
|
|
@@ -42189,7 +42225,7 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42189
42225
|
return /* @__PURE__ */ jsx("div", { className: "debug-tab debug-tab--bridge", children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
42190
42226
|
/* @__PURE__ */ jsxs(Card, { className: "p-3", children: [
|
|
42191
42227
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
42192
|
-
/* @__PURE__ */ jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-
|
|
42228
|
+
/* @__PURE__ */ jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-success animate-pulse" : "bg-error"}` }),
|
|
42193
42229
|
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
|
|
42194
42230
|
] }),
|
|
42195
42231
|
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
@@ -42224,11 +42260,11 @@ function ServerBridgeTab({ bridge }) {
|
|
|
42224
42260
|
)
|
|
42225
42261
|
] })
|
|
42226
42262
|
] }),
|
|
42227
|
-
bridge.lastError && /* @__PURE__ */ jsxs(Card, { className: "p-3 border-
|
|
42228
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "text-
|
|
42229
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42263
|
+
bridge.lastError && /* @__PURE__ */ jsxs(Card, { className: "p-3 border-error/30 bg-error/10", children: [
|
|
42264
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "text-error mb-1", children: t("debug.lastError") }),
|
|
42265
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-error font-mono break-all", children: bridge.lastError })
|
|
42230
42266
|
] }),
|
|
42231
|
-
bridge.connected && /* @__PURE__ */ jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42267
|
+
bridge.connected && /* @__PURE__ */ jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
|
|
42232
42268
|
] }) });
|
|
42233
42269
|
}
|
|
42234
42270
|
var init_ServerBridgeTab = __esm({
|
|
@@ -42354,7 +42390,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42354
42390
|
};
|
|
42355
42391
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
|
|
42356
42392
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
42357
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
42393
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.activeStates") }),
|
|
42358
42394
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: traits2.map((trait) => /* @__PURE__ */ jsxs(Badge, { variant: "success", size: "sm", children: [
|
|
42359
42395
|
trait.name,
|
|
42360
42396
|
": ",
|
|
@@ -42362,8 +42398,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42362
42398
|
] }, trait.id)) })
|
|
42363
42399
|
] }),
|
|
42364
42400
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
42365
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
42366
|
-
availableEvents.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42401
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.availableEvents") }),
|
|
42402
|
+
availableEvents.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsx(Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
42367
42403
|
/* @__PURE__ */ jsx(
|
|
42368
42404
|
Button,
|
|
42369
42405
|
{
|
|
@@ -42374,22 +42410,22 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
42374
42410
|
children: event
|
|
42375
42411
|
}
|
|
42376
42412
|
),
|
|
42377
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-
|
|
42413
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
|
|
42378
42414
|
transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
|
|
42379
42415
|
] }, event)) })
|
|
42380
42416
|
] }),
|
|
42381
42417
|
unavailableEvents.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
42382
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
42418
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.otherEvents") }),
|
|
42383
42419
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
|
|
42384
42420
|
] }),
|
|
42385
42421
|
log19.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
42386
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-
|
|
42422
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-muted-foreground mb-1", children: t("debug.recentTransitions") }),
|
|
42387
42423
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: log19.map((entry, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-xs", children: [
|
|
42388
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42424
|
+
/* @__PURE__ */ jsx("span", { className: "text-primary", children: entry.traitName }),
|
|
42389
42425
|
" ",
|
|
42390
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42426
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: entry.from }),
|
|
42391
42427
|
" -> ",
|
|
42392
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42428
|
+
/* @__PURE__ */ jsx("span", { className: "text-success", children: entry.to })
|
|
42393
42429
|
] }, i)) })
|
|
42394
42430
|
] })
|
|
42395
42431
|
] });
|
|
@@ -42415,21 +42451,21 @@ var init_RuntimeDebugger = __esm({
|
|
|
42415
42451
|
function ServerResponseRow({ sr }) {
|
|
42416
42452
|
const { t } = useTranslate();
|
|
42417
42453
|
const entityEntries = Object.entries(sr.dataEntities);
|
|
42418
|
-
return /* @__PURE__ */ jsxs("div", { className: "ml-4 pl-2 border-l border-
|
|
42454
|
+
return /* @__PURE__ */ jsxs("div", { className: "ml-4 pl-2 border-l border-primary py-0.5 text-xs font-mono", children: [
|
|
42419
42455
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
42420
|
-
/* @__PURE__ */ jsxs("span", { className: sr.success ? "text-
|
|
42456
|
+
/* @__PURE__ */ jsxs("span", { className: sr.success ? "text-success" : "text-error", children: [
|
|
42421
42457
|
sr.success ? "\u2713" : "\u2717",
|
|
42422
42458
|
" ",
|
|
42423
42459
|
t("debug.server")
|
|
42424
42460
|
] }),
|
|
42425
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42426
|
-
sr.clientEffects > 0 && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-
|
|
42427
|
-
sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-
|
|
42461
|
+
/* @__PURE__ */ jsx("span", { className: "text-primary", children: sr.orbitalName }),
|
|
42462
|
+
sr.clientEffects > 0 && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-primary/10 text-primary", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
|
|
42463
|
+
sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-primary/10 text-primary", children: [
|
|
42428
42464
|
t("debug.emitLabel"),
|
|
42429
42465
|
" ",
|
|
42430
42466
|
sr.emittedEvents.join(", ")
|
|
42431
42467
|
] }),
|
|
42432
|
-
sr.error && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-
|
|
42468
|
+
sr.error && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-error/10 text-error truncate max-w-[300px]", children: sr.error })
|
|
42433
42469
|
] }),
|
|
42434
42470
|
entityEntries.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 mt-0.5", children: entityEntries.map(([name, count]) => /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-[var(--color-card)] text-foreground", children: [
|
|
42435
42471
|
name,
|
|
@@ -42445,9 +42481,9 @@ function TransitionRow({ trace }) {
|
|
|
42445
42481
|
if (isServerEntry && trace.serverResponse) {
|
|
42446
42482
|
return /* @__PURE__ */ jsxs("div", { className: "py-0.5 border-b border-border last:border-0", children: [
|
|
42447
42483
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42448
|
-
/* @__PURE__ */ jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-
|
|
42484
|
+
/* @__PURE__ */ jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-primary" }),
|
|
42449
42485
|
/* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42450
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42486
|
+
/* @__PURE__ */ jsx("span", { className: "text-primary flex-shrink-0", children: t("debug.serverResponse") })
|
|
42451
42487
|
] }),
|
|
42452
42488
|
/* @__PURE__ */ jsx(ServerResponseRow, { sr: trace.serverResponse })
|
|
42453
42489
|
] });
|
|
@@ -42456,7 +42492,7 @@ function TransitionRow({ trace }) {
|
|
|
42456
42492
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
42457
42493
|
/* @__PURE__ */ jsx("span", { className: cn(
|
|
42458
42494
|
"mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",
|
|
42459
|
-
hasFailedEffects ? "bg-
|
|
42495
|
+
hasFailedEffects ? "bg-error" : "bg-success"
|
|
42460
42496
|
) }),
|
|
42461
42497
|
/* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
42462
42498
|
/* @__PURE__ */ jsx("span", { className: "text-foreground flex-shrink-0", children: trace.traitName }),
|
|
@@ -42470,7 +42506,7 @@ function TransitionRow({ trace }) {
|
|
|
42470
42506
|
] }),
|
|
42471
42507
|
trace.effects.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 ml-6 mt-0.5", children: trace.effects.map((eff, i) => /* @__PURE__ */ jsxs("span", { className: cn(
|
|
42472
42508
|
"px-1 rounded text-xs",
|
|
42473
|
-
eff.status === "executed" ? "bg-
|
|
42509
|
+
eff.status === "executed" ? "bg-success/10 text-success" : eff.status === "failed" ? "bg-error/10 text-error" : "bg-warning/10 text-warning"
|
|
42474
42510
|
), children: [
|
|
42475
42511
|
eff.status === "executed" ? "\u2713" : eff.status === "failed" ? "\u2717" : "-",
|
|
42476
42512
|
" ",
|
|
@@ -42504,7 +42540,7 @@ function VerifyModePanel({
|
|
|
42504
42540
|
{
|
|
42505
42541
|
className: cn(
|
|
42506
42542
|
"runtime-debugger runtime-debugger--verify",
|
|
42507
|
-
"flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-
|
|
42543
|
+
"flex flex-col bg-[var(--color-card)] text-[var(--color-foreground)] border-t-2 border-accent",
|
|
42508
42544
|
hudBottom ? "" : "fixed bottom-0 left-0 right-0",
|
|
42509
42545
|
className
|
|
42510
42546
|
),
|
|
@@ -42525,8 +42561,8 @@ function VerifyModePanel({
|
|
|
42525
42561
|
/* @__PURE__ */ jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
|
|
42526
42562
|
/* @__PURE__ */ jsx(Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
|
|
42527
42563
|
/* @__PURE__ */ jsx("span", { className: "text-foreground/70", children: t("debug.localCount", { count: localCount }) }),
|
|
42528
|
-
/* @__PURE__ */ jsx("span", { className: "text-
|
|
42529
|
-
traitStates && /* @__PURE__ */ jsx("span", { className: "text-
|
|
42564
|
+
/* @__PURE__ */ jsx("span", { className: "text-primary", children: t("debug.serverCount", { count: serverCount }) }),
|
|
42565
|
+
traitStates && /* @__PURE__ */ jsx("span", { className: "text-accent truncate max-w-[400px]", children: traitStates }),
|
|
42530
42566
|
!expanded && transitions.length > 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
|
|
42531
42567
|
]
|
|
42532
42568
|
}
|
|
@@ -42721,7 +42757,7 @@ function RuntimeDebugger({
|
|
|
42721
42757
|
title: t("debug.openDebugger"),
|
|
42722
42758
|
children: failedChecks > 0 ? /* @__PURE__ */ jsxs("span", { className: "relative", children: [
|
|
42723
42759
|
/* @__PURE__ */ jsx("span", { children: "V" }),
|
|
42724
|
-
/* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-
|
|
42760
|
+
/* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-error rounded-full" })
|
|
42725
42761
|
] }) : /* @__PURE__ */ jsx("span", { children: "V" })
|
|
42726
42762
|
}
|
|
42727
42763
|
) : /* @__PURE__ */ jsxs(Card, { className: "runtime-debugger__panel", children: [
|
|
@@ -42809,7 +42845,7 @@ var init_SegmentRenderer = __esm({
|
|
|
42809
42845
|
"div",
|
|
42810
42846
|
{
|
|
42811
42847
|
className: cn(
|
|
42812
|
-
"border border-
|
|
42848
|
+
"border border-border rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
|
|
42813
42849
|
containerClassName,
|
|
42814
42850
|
className
|
|
42815
42851
|
),
|