@almadar/ui 5.33.1 → 5.35.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/avl/index.cjs +1984 -1402
- package/dist/avl/index.js +925 -343
- package/dist/components/index.cjs +1756 -1735
- package/dist/components/index.js +848 -825
- package/dist/providers/index.cjs +1809 -1227
- package/dist/providers/index.js +901 -319
- package/dist/runtime/index.cjs +1849 -1267
- package/dist/runtime/index.js +905 -323
- package/package.json +1 -1
package/dist/avl/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React91 from 'react';
|
|
3
|
+
import React91__default, { createContext, useState, useMemo, useRef, useEffect, useContext, useCallback, Suspense, useLayoutEffect, Profiler, useReducer, useSyncExternalStore, lazy, useId } from 'react';
|
|
4
4
|
import { OrbitalProvider, EventBusContext, useTraitScope, VerificationProvider, TraitScopeProvider } from '@almadar/ui/providers';
|
|
5
5
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
6
6
|
import ELK from 'elkjs/lib/elk.bundled.js';
|
|
7
7
|
import { MarkerType, useReactFlow, Handle, Position, getBezierPath, EdgeLabelRenderer, useNodeId, ReactFlowProvider, BaseEdge, useNodesState, useEdgesState, ReactFlow, Controls, Background, BackgroundVariant } from '@xyflow/react';
|
|
8
8
|
import { useTranslate, useEventBus as useEventBus$1 } from '@almadar/ui/hooks';
|
|
9
9
|
import * as LucideIcons2 from 'lucide-react';
|
|
10
|
-
import { Loader2, X, Code, FileText, WrapText, Check, Copy, List, Printer, ChevronRight, ChevronLeft, GitBranch, Pencil, Eye, Plus, ArrowRight, Trash, AlertTriangle, Trash2, ZoomOut, ZoomIn, Download,
|
|
10
|
+
import { Loader2, X, Code, FileText, WrapText, Check, Copy, Lightbulb, CheckCircle, List, Printer, ChevronRight, ChevronLeft, GitBranch, Pencil, Eye, Plus, ArrowRight, Trash, RotateCcw, Play, Terminal, XCircle, AlertTriangle, Trash2, Link2, ZoomOut, ZoomIn, Download, Menu as Menu$1, Package, Calendar, MoreHorizontal, Image as Image$1, Upload, ArrowLeft, HelpCircle, PauseCircle, Search, Type, Heading1, Heading2, Heading3, ListOrdered, Quote, Minus, Eraser, TrendingUp, TrendingDown, AlertCircle, Circle, Clock, CheckCircle2, Pause, SkipForward, Bug, Send, ChevronUp, ChevronDown, Wrench, Tag, User, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
|
|
11
11
|
import * as PhosphorIcons from '@phosphor-icons/react';
|
|
12
12
|
import * as TablerIcons from '@tabler/icons-react';
|
|
13
13
|
import * as FaIcons from 'react-icons/fa';
|
|
@@ -3467,7 +3467,7 @@ var init_Box = __esm({
|
|
|
3467
3467
|
fixed: "fixed",
|
|
3468
3468
|
sticky: "sticky"
|
|
3469
3469
|
};
|
|
3470
|
-
Box =
|
|
3470
|
+
Box = React91__default.forwardRef(
|
|
3471
3471
|
({
|
|
3472
3472
|
padding,
|
|
3473
3473
|
paddingX,
|
|
@@ -3517,7 +3517,7 @@ var init_Box = __esm({
|
|
|
3517
3517
|
onMouseLeave?.(e);
|
|
3518
3518
|
}, [hoverEvent, eventBus, onMouseLeave]);
|
|
3519
3519
|
const isClickable = action || onClick;
|
|
3520
|
-
return
|
|
3520
|
+
return React91__default.createElement(
|
|
3521
3521
|
Component,
|
|
3522
3522
|
{
|
|
3523
3523
|
ref,
|
|
@@ -4107,7 +4107,7 @@ var init_MiniStateMachine = __esm({
|
|
|
4107
4107
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
4108
4108
|
const tc = transitionCounts[s.name] ?? 0;
|
|
4109
4109
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
4110
|
-
return /* @__PURE__ */ jsxs(
|
|
4110
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
4111
4111
|
/* @__PURE__ */ jsx(
|
|
4112
4112
|
AvlState,
|
|
4113
4113
|
{
|
|
@@ -5178,7 +5178,7 @@ var init_Icon = __esm({
|
|
|
5178
5178
|
const directIcon = typeof icon === "string" ? void 0 : icon;
|
|
5179
5179
|
const effectiveName = typeof icon === "string" ? icon : name;
|
|
5180
5180
|
const family = useIconFamily();
|
|
5181
|
-
const RenderedComponent =
|
|
5181
|
+
const RenderedComponent = React91__default.useMemo(() => {
|
|
5182
5182
|
if (directIcon) return null;
|
|
5183
5183
|
return effectiveName ? resolveIconForFamily(effectiveName, family) : null;
|
|
5184
5184
|
}, [directIcon, effectiveName, family]);
|
|
@@ -5237,7 +5237,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
5237
5237
|
const IconComp = value;
|
|
5238
5238
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
5239
5239
|
}
|
|
5240
|
-
if (
|
|
5240
|
+
if (React91__default.isValidElement(value)) {
|
|
5241
5241
|
return value;
|
|
5242
5242
|
}
|
|
5243
5243
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -5313,7 +5313,7 @@ var init_Button = __esm({
|
|
|
5313
5313
|
md: "h-icon-default w-icon-default",
|
|
5314
5314
|
lg: "h-icon-default w-icon-default"
|
|
5315
5315
|
};
|
|
5316
|
-
Button =
|
|
5316
|
+
Button = React91__default.forwardRef(
|
|
5317
5317
|
({
|
|
5318
5318
|
className,
|
|
5319
5319
|
variant = "primary",
|
|
@@ -5378,7 +5378,7 @@ var Dialog;
|
|
|
5378
5378
|
var init_Dialog = __esm({
|
|
5379
5379
|
"components/core/atoms/Dialog.tsx"() {
|
|
5380
5380
|
init_cn();
|
|
5381
|
-
Dialog =
|
|
5381
|
+
Dialog = React91__default.forwardRef(
|
|
5382
5382
|
({
|
|
5383
5383
|
role = "dialog",
|
|
5384
5384
|
"aria-modal": ariaModal = true,
|
|
@@ -5873,7 +5873,7 @@ var init_Badge = __esm({
|
|
|
5873
5873
|
md: "px-2.5 py-1 text-sm",
|
|
5874
5874
|
lg: "px-3 py-1.5 text-base"
|
|
5875
5875
|
};
|
|
5876
|
-
Badge =
|
|
5876
|
+
Badge = React91__default.forwardRef(
|
|
5877
5877
|
({ className, variant = "default", size = "sm", amount, label, icon, children, onRemove, removeLabel, ...props }, ref) => {
|
|
5878
5878
|
const iconSizes3 = {
|
|
5879
5879
|
sm: "h-icon-default w-icon-default",
|
|
@@ -6209,7 +6209,7 @@ var init_SvgFlow = __esm({
|
|
|
6209
6209
|
width = 100,
|
|
6210
6210
|
height = 100
|
|
6211
6211
|
}) => {
|
|
6212
|
-
const markerId =
|
|
6212
|
+
const markerId = React91__default.useMemo(() => {
|
|
6213
6213
|
flowIdCounter += 1;
|
|
6214
6214
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
6215
6215
|
}, []);
|
|
@@ -6802,7 +6802,7 @@ var init_SvgRing = __esm({
|
|
|
6802
6802
|
width = 100,
|
|
6803
6803
|
height = 100
|
|
6804
6804
|
}) => {
|
|
6805
|
-
const gradientId =
|
|
6805
|
+
const gradientId = React91__default.useMemo(() => {
|
|
6806
6806
|
ringIdCounter += 1;
|
|
6807
6807
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
6808
6808
|
}, []);
|
|
@@ -6983,7 +6983,7 @@ var init_Input = __esm({
|
|
|
6983
6983
|
init_cn();
|
|
6984
6984
|
init_Icon();
|
|
6985
6985
|
init_useEventBus();
|
|
6986
|
-
Input =
|
|
6986
|
+
Input = React91__default.forwardRef(
|
|
6987
6987
|
({
|
|
6988
6988
|
className,
|
|
6989
6989
|
inputType,
|
|
@@ -7143,7 +7143,7 @@ var Label;
|
|
|
7143
7143
|
var init_Label = __esm({
|
|
7144
7144
|
"components/core/atoms/Label.tsx"() {
|
|
7145
7145
|
init_cn();
|
|
7146
|
-
Label =
|
|
7146
|
+
Label = React91__default.forwardRef(
|
|
7147
7147
|
({ className, required, children, ...props }, ref) => {
|
|
7148
7148
|
return /* @__PURE__ */ jsxs(
|
|
7149
7149
|
"label",
|
|
@@ -7170,7 +7170,7 @@ var init_Textarea = __esm({
|
|
|
7170
7170
|
"components/core/atoms/Textarea.tsx"() {
|
|
7171
7171
|
init_cn();
|
|
7172
7172
|
init_useEventBus();
|
|
7173
|
-
Textarea =
|
|
7173
|
+
Textarea = React91__default.forwardRef(
|
|
7174
7174
|
({ className, error, onChange, ...props }, ref) => {
|
|
7175
7175
|
const eventBus = useEventBus();
|
|
7176
7176
|
const handleChange = (e) => {
|
|
@@ -7409,7 +7409,7 @@ var init_Select = __esm({
|
|
|
7409
7409
|
init_cn();
|
|
7410
7410
|
init_Icon();
|
|
7411
7411
|
init_useEventBus();
|
|
7412
|
-
Select =
|
|
7412
|
+
Select = React91__default.forwardRef(
|
|
7413
7413
|
(props, _ref) => {
|
|
7414
7414
|
const { multiple, searchable, clearable } = props;
|
|
7415
7415
|
if (multiple || searchable || clearable) {
|
|
@@ -7426,7 +7426,7 @@ var init_Checkbox = __esm({
|
|
|
7426
7426
|
"components/core/atoms/Checkbox.tsx"() {
|
|
7427
7427
|
init_cn();
|
|
7428
7428
|
init_useEventBus();
|
|
7429
|
-
Checkbox =
|
|
7429
|
+
Checkbox = React91__default.forwardRef(
|
|
7430
7430
|
({ className, label, id, onChange, ...props }, ref) => {
|
|
7431
7431
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
7432
7432
|
const eventBus = useEventBus();
|
|
@@ -7480,7 +7480,7 @@ var init_Spinner = __esm({
|
|
|
7480
7480
|
md: "h-6 w-6",
|
|
7481
7481
|
lg: "h-8 w-8"
|
|
7482
7482
|
};
|
|
7483
|
-
Spinner =
|
|
7483
|
+
Spinner = React91__default.forwardRef(
|
|
7484
7484
|
({ className, size = "md", overlay, ...props }, ref) => {
|
|
7485
7485
|
if (overlay) {
|
|
7486
7486
|
return /* @__PURE__ */ jsx(
|
|
@@ -7570,7 +7570,7 @@ var init_Card = __esm({
|
|
|
7570
7570
|
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
7571
7571
|
"tile-image-first": "p-0 overflow-hidden"
|
|
7572
7572
|
};
|
|
7573
|
-
Card =
|
|
7573
|
+
Card = React91__default.forwardRef(
|
|
7574
7574
|
({
|
|
7575
7575
|
className,
|
|
7576
7576
|
variant = "bordered",
|
|
@@ -7618,9 +7618,9 @@ var init_Card = __esm({
|
|
|
7618
7618
|
}
|
|
7619
7619
|
);
|
|
7620
7620
|
Card.displayName = "Card";
|
|
7621
|
-
CardHeader =
|
|
7621
|
+
CardHeader = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
7622
7622
|
CardHeader.displayName = "CardHeader";
|
|
7623
|
-
CardTitle =
|
|
7623
|
+
CardTitle = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7624
7624
|
"h3",
|
|
7625
7625
|
{
|
|
7626
7626
|
ref,
|
|
@@ -7633,11 +7633,11 @@ var init_Card = __esm({
|
|
|
7633
7633
|
}
|
|
7634
7634
|
));
|
|
7635
7635
|
CardTitle.displayName = "CardTitle";
|
|
7636
|
-
CardContent =
|
|
7636
|
+
CardContent = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
7637
7637
|
CardContent.displayName = "CardContent";
|
|
7638
7638
|
CardBody = CardContent;
|
|
7639
7639
|
CardBody.displayName = "CardBody";
|
|
7640
|
-
CardFooter =
|
|
7640
|
+
CardFooter = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7641
7641
|
"div",
|
|
7642
7642
|
{
|
|
7643
7643
|
ref,
|
|
@@ -7692,7 +7692,7 @@ var init_FilterPill = __esm({
|
|
|
7692
7692
|
md: "w-3.5 h-3.5",
|
|
7693
7693
|
lg: "w-4 h-4"
|
|
7694
7694
|
};
|
|
7695
|
-
FilterPill =
|
|
7695
|
+
FilterPill = React91__default.forwardRef(
|
|
7696
7696
|
({
|
|
7697
7697
|
className,
|
|
7698
7698
|
variant = "default",
|
|
@@ -7821,8 +7821,8 @@ var init_Avatar = __esm({
|
|
|
7821
7821
|
actionPayload
|
|
7822
7822
|
}) => {
|
|
7823
7823
|
const eventBus = useEventBus();
|
|
7824
|
-
const [imgFailed, setImgFailed] =
|
|
7825
|
-
|
|
7824
|
+
const [imgFailed, setImgFailed] = React91__default.useState(false);
|
|
7825
|
+
React91__default.useEffect(() => {
|
|
7826
7826
|
setImgFailed(false);
|
|
7827
7827
|
}, [src]);
|
|
7828
7828
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
@@ -8207,7 +8207,7 @@ var init_Radio = __esm({
|
|
|
8207
8207
|
md: "w-2.5 h-2.5",
|
|
8208
8208
|
lg: "w-3 h-3"
|
|
8209
8209
|
};
|
|
8210
|
-
Radio =
|
|
8210
|
+
Radio = React91__default.forwardRef(
|
|
8211
8211
|
({
|
|
8212
8212
|
label,
|
|
8213
8213
|
helperText,
|
|
@@ -8224,12 +8224,12 @@ var init_Radio = __esm({
|
|
|
8224
8224
|
onChange,
|
|
8225
8225
|
...props
|
|
8226
8226
|
}, ref) => {
|
|
8227
|
-
const reactId =
|
|
8227
|
+
const reactId = React91__default.useId();
|
|
8228
8228
|
const baseId = id || `radio-${reactId}`;
|
|
8229
8229
|
const hasError = !!error;
|
|
8230
8230
|
const eventBus = useEventBus();
|
|
8231
|
-
const [selected, setSelected] =
|
|
8232
|
-
|
|
8231
|
+
const [selected, setSelected] = React91__default.useState(value);
|
|
8232
|
+
React91__default.useEffect(() => {
|
|
8233
8233
|
if (value !== void 0) setSelected(value);
|
|
8234
8234
|
}, [value]);
|
|
8235
8235
|
const pick = (next, e) => {
|
|
@@ -8411,7 +8411,7 @@ var init_Switch = __esm({
|
|
|
8411
8411
|
"components/core/atoms/Switch.tsx"() {
|
|
8412
8412
|
"use client";
|
|
8413
8413
|
init_cn();
|
|
8414
|
-
Switch =
|
|
8414
|
+
Switch = React91.forwardRef(
|
|
8415
8415
|
({
|
|
8416
8416
|
checked,
|
|
8417
8417
|
defaultChecked = false,
|
|
@@ -8422,10 +8422,10 @@ var init_Switch = __esm({
|
|
|
8422
8422
|
name,
|
|
8423
8423
|
className
|
|
8424
8424
|
}, ref) => {
|
|
8425
|
-
const [isChecked, setIsChecked] =
|
|
8425
|
+
const [isChecked, setIsChecked] = React91.useState(
|
|
8426
8426
|
checked !== void 0 ? checked : defaultChecked
|
|
8427
8427
|
);
|
|
8428
|
-
|
|
8428
|
+
React91.useEffect(() => {
|
|
8429
8429
|
if (checked !== void 0) {
|
|
8430
8430
|
setIsChecked(checked);
|
|
8431
8431
|
}
|
|
@@ -8870,7 +8870,7 @@ var Aside;
|
|
|
8870
8870
|
var init_Aside = __esm({
|
|
8871
8871
|
"components/core/atoms/Aside.tsx"() {
|
|
8872
8872
|
init_cn();
|
|
8873
|
-
Aside =
|
|
8873
|
+
Aside = React91__default.forwardRef(
|
|
8874
8874
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
8875
8875
|
);
|
|
8876
8876
|
Aside.displayName = "Aside";
|
|
@@ -8948,8 +8948,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8948
8948
|
className
|
|
8949
8949
|
}) => {
|
|
8950
8950
|
const { t } = useTranslate();
|
|
8951
|
-
const [isVisible, setIsVisible] =
|
|
8952
|
-
const timeoutRef =
|
|
8951
|
+
const [isVisible, setIsVisible] = React91__default.useState(false);
|
|
8952
|
+
const timeoutRef = React91__default.useRef(null);
|
|
8953
8953
|
const handleMouseEnter = () => {
|
|
8954
8954
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8955
8955
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -8958,7 +8958,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8958
8958
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8959
8959
|
setIsVisible(false);
|
|
8960
8960
|
};
|
|
8961
|
-
|
|
8961
|
+
React91__default.useEffect(() => {
|
|
8962
8962
|
return () => {
|
|
8963
8963
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8964
8964
|
};
|
|
@@ -9168,7 +9168,7 @@ var init_StatusDot = __esm({
|
|
|
9168
9168
|
md: "w-2.5 h-2.5",
|
|
9169
9169
|
lg: "w-3 h-3"
|
|
9170
9170
|
};
|
|
9171
|
-
StatusDot =
|
|
9171
|
+
StatusDot = React91__default.forwardRef(
|
|
9172
9172
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
9173
9173
|
return /* @__PURE__ */ jsx(
|
|
9174
9174
|
"span",
|
|
@@ -9222,7 +9222,7 @@ var init_TrendIndicator = __esm({
|
|
|
9222
9222
|
down: "trending-down",
|
|
9223
9223
|
flat: "arrow-right"
|
|
9224
9224
|
};
|
|
9225
|
-
TrendIndicator =
|
|
9225
|
+
TrendIndicator = React91__default.forwardRef(
|
|
9226
9226
|
({
|
|
9227
9227
|
className,
|
|
9228
9228
|
value,
|
|
@@ -9289,7 +9289,7 @@ var init_RangeSlider = __esm({
|
|
|
9289
9289
|
md: "w-4 h-4",
|
|
9290
9290
|
lg: "w-5 h-5"
|
|
9291
9291
|
};
|
|
9292
|
-
RangeSlider =
|
|
9292
|
+
RangeSlider = React91__default.forwardRef(
|
|
9293
9293
|
({
|
|
9294
9294
|
className,
|
|
9295
9295
|
min = 0,
|
|
@@ -9797,7 +9797,7 @@ var init_ContentSection = __esm({
|
|
|
9797
9797
|
md: "py-16",
|
|
9798
9798
|
lg: "py-24"
|
|
9799
9799
|
};
|
|
9800
|
-
ContentSection =
|
|
9800
|
+
ContentSection = React91__default.forwardRef(
|
|
9801
9801
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
9802
9802
|
return /* @__PURE__ */ jsx(
|
|
9803
9803
|
Box,
|
|
@@ -10331,7 +10331,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10331
10331
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
10332
10332
|
"none": {}
|
|
10333
10333
|
};
|
|
10334
|
-
AnimatedReveal =
|
|
10334
|
+
AnimatedReveal = React91__default.forwardRef(
|
|
10335
10335
|
({
|
|
10336
10336
|
trigger = "scroll",
|
|
10337
10337
|
animation = "fade-up",
|
|
@@ -10491,7 +10491,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10491
10491
|
"components/marketing/atoms/AnimatedGraphic.tsx"() {
|
|
10492
10492
|
"use client";
|
|
10493
10493
|
init_cn();
|
|
10494
|
-
AnimatedGraphic =
|
|
10494
|
+
AnimatedGraphic = React91__default.forwardRef(
|
|
10495
10495
|
({
|
|
10496
10496
|
src,
|
|
10497
10497
|
svgContent,
|
|
@@ -10514,7 +10514,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10514
10514
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
10515
10515
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
10516
10516
|
const prevAnimateRef = useRef(animate);
|
|
10517
|
-
const setRef =
|
|
10517
|
+
const setRef = React91__default.useCallback(
|
|
10518
10518
|
(node) => {
|
|
10519
10519
|
containerRef.current = node;
|
|
10520
10520
|
if (typeof ref === "function") ref(node);
|
|
@@ -10739,9 +10739,9 @@ function ScoreDisplay({
|
|
|
10739
10739
|
...rest
|
|
10740
10740
|
}) {
|
|
10741
10741
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
10742
|
-
const [displayValue, setDisplayValue] =
|
|
10743
|
-
const [isAnimating, setIsAnimating] =
|
|
10744
|
-
|
|
10742
|
+
const [displayValue, setDisplayValue] = React91.useState(resolvedValue);
|
|
10743
|
+
const [isAnimating, setIsAnimating] = React91.useState(false);
|
|
10744
|
+
React91.useEffect(() => {
|
|
10745
10745
|
if (!animated || displayValue === resolvedValue) {
|
|
10746
10746
|
setDisplayValue(resolvedValue);
|
|
10747
10747
|
return;
|
|
@@ -10812,9 +10812,9 @@ function ControlButton({
|
|
|
10812
10812
|
className
|
|
10813
10813
|
}) {
|
|
10814
10814
|
const eventBus = useEventBus();
|
|
10815
|
-
const [isPressed, setIsPressed] =
|
|
10815
|
+
const [isPressed, setIsPressed] = React91.useState(false);
|
|
10816
10816
|
const actualPressed = pressed ?? isPressed;
|
|
10817
|
-
const handlePointerDown =
|
|
10817
|
+
const handlePointerDown = React91.useCallback(
|
|
10818
10818
|
(e) => {
|
|
10819
10819
|
e.preventDefault();
|
|
10820
10820
|
if (disabled) return;
|
|
@@ -10824,7 +10824,7 @@ function ControlButton({
|
|
|
10824
10824
|
},
|
|
10825
10825
|
[disabled, pressEvent, eventBus, onPress]
|
|
10826
10826
|
);
|
|
10827
|
-
const handlePointerUp =
|
|
10827
|
+
const handlePointerUp = React91.useCallback(
|
|
10828
10828
|
(e) => {
|
|
10829
10829
|
e.preventDefault();
|
|
10830
10830
|
if (disabled) return;
|
|
@@ -10834,7 +10834,7 @@ function ControlButton({
|
|
|
10834
10834
|
},
|
|
10835
10835
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
10836
10836
|
);
|
|
10837
|
-
const handlePointerLeave =
|
|
10837
|
+
const handlePointerLeave = React91.useCallback(
|
|
10838
10838
|
(e) => {
|
|
10839
10839
|
if (isPressed) {
|
|
10840
10840
|
setIsPressed(false);
|
|
@@ -11337,8 +11337,8 @@ function XPBar({
|
|
|
11337
11337
|
}) {
|
|
11338
11338
|
const sizes = sizeMap9[size];
|
|
11339
11339
|
const percentage = max > 0 ? Math.max(0, Math.min(100, current / max * 100)) : 0;
|
|
11340
|
-
const [fillWidth, setFillWidth] =
|
|
11341
|
-
|
|
11340
|
+
const [fillWidth, setFillWidth] = React91.useState(animated ? 0 : percentage);
|
|
11341
|
+
React91.useEffect(() => {
|
|
11342
11342
|
if (!animated) {
|
|
11343
11343
|
setFillWidth(percentage);
|
|
11344
11344
|
return;
|
|
@@ -11775,9 +11775,9 @@ function MiniMap({
|
|
|
11775
11775
|
viewportRect,
|
|
11776
11776
|
className
|
|
11777
11777
|
}) {
|
|
11778
|
-
const canvasRef =
|
|
11779
|
-
const frameRef =
|
|
11780
|
-
|
|
11778
|
+
const canvasRef = React91.useRef(null);
|
|
11779
|
+
const frameRef = React91.useRef(0);
|
|
11780
|
+
React91.useEffect(() => {
|
|
11781
11781
|
const canvas = canvasRef.current;
|
|
11782
11782
|
if (!canvas) return;
|
|
11783
11783
|
const ctx = canvas.getContext("2d");
|
|
@@ -11951,7 +11951,7 @@ var init_ErrorBoundary = __esm({
|
|
|
11951
11951
|
}
|
|
11952
11952
|
);
|
|
11953
11953
|
};
|
|
11954
|
-
ErrorBoundary = class extends
|
|
11954
|
+
ErrorBoundary = class extends React91__default.Component {
|
|
11955
11955
|
constructor(props) {
|
|
11956
11956
|
super(props);
|
|
11957
11957
|
__publicField(this, "reset", () => {
|
|
@@ -12784,7 +12784,7 @@ var init_AboutPageTemplate = __esm({
|
|
|
12784
12784
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
12785
12785
|
if (!resolved) return null;
|
|
12786
12786
|
return /* @__PURE__ */ jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
|
|
12787
|
-
/* @__PURE__ */ jsx(
|
|
12787
|
+
resolved.hero && /* @__PURE__ */ jsx(
|
|
12788
12788
|
HeroSection,
|
|
12789
12789
|
{
|
|
12790
12790
|
tag: resolved.hero.tag,
|
|
@@ -12986,8 +12986,8 @@ function ActionButtons({
|
|
|
12986
12986
|
disabled
|
|
12987
12987
|
}) {
|
|
12988
12988
|
const eventBus = useEventBus();
|
|
12989
|
-
const [activeButtons, setActiveButtons] =
|
|
12990
|
-
const handlePress =
|
|
12989
|
+
const [activeButtons, setActiveButtons] = React91.useState(/* @__PURE__ */ new Set());
|
|
12990
|
+
const handlePress = React91.useCallback(
|
|
12991
12991
|
(id) => {
|
|
12992
12992
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
12993
12993
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -12995,7 +12995,7 @@ function ActionButtons({
|
|
|
12995
12995
|
},
|
|
12996
12996
|
[actionEvent, eventBus, onAction]
|
|
12997
12997
|
);
|
|
12998
|
-
const handleRelease =
|
|
12998
|
+
const handleRelease = React91.useCallback(
|
|
12999
12999
|
(id) => {
|
|
13000
13000
|
setActiveButtons((prev) => {
|
|
13001
13001
|
const next = new Set(prev);
|
|
@@ -13191,6 +13191,85 @@ var init_ActionPalette = __esm({
|
|
|
13191
13191
|
ActionPalette.displayName = "ActionPalette";
|
|
13192
13192
|
}
|
|
13193
13193
|
});
|
|
13194
|
+
var ActivationBlock;
|
|
13195
|
+
var init_ActivationBlock = __esm({
|
|
13196
|
+
"components/core/molecules/ActivationBlock.tsx"() {
|
|
13197
|
+
"use client";
|
|
13198
|
+
init_useEventBus();
|
|
13199
|
+
init_cn();
|
|
13200
|
+
ActivationBlock = ({
|
|
13201
|
+
question,
|
|
13202
|
+
savedResponse,
|
|
13203
|
+
saveEvent = "SAVE_ACTIVATION",
|
|
13204
|
+
className
|
|
13205
|
+
}) => {
|
|
13206
|
+
const [response, setResponse] = useState(savedResponse ?? "");
|
|
13207
|
+
const [isExpanded, setIsExpanded] = useState(!savedResponse);
|
|
13208
|
+
const { emit } = useEventBus();
|
|
13209
|
+
const handleSubmit = () => {
|
|
13210
|
+
emit(`UI:${saveEvent}`, { response });
|
|
13211
|
+
setIsExpanded(false);
|
|
13212
|
+
};
|
|
13213
|
+
return /* @__PURE__ */ jsx(
|
|
13214
|
+
"div",
|
|
13215
|
+
{
|
|
13216
|
+
className: cn(
|
|
13217
|
+
"bg-indigo-50 dark:bg-indigo-900/20 border-2 border-indigo-200 dark:border-indigo-800 rounded-lg p-5 mb-6",
|
|
13218
|
+
className
|
|
13219
|
+
),
|
|
13220
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
13221
|
+
/* @__PURE__ */ jsx(Lightbulb, { className: "text-indigo-600 dark:text-indigo-400 flex-shrink-0 mt-1", size: 24 }),
|
|
13222
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
13223
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-indigo-900 dark:text-indigo-100 mb-2", children: "Before You Begin..." }),
|
|
13224
|
+
/* @__PURE__ */ jsx("p", { className: "text-gray-700 dark:text-gray-300 mb-3 text-sm md:text-base", children: question }),
|
|
13225
|
+
isExpanded ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13226
|
+
/* @__PURE__ */ jsx(
|
|
13227
|
+
"textarea",
|
|
13228
|
+
{
|
|
13229
|
+
className: "w-full p-3 border border-indigo-300 dark:border-indigo-700 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-indigo-500 focus:border-transparent text-sm",
|
|
13230
|
+
placeholder: "Jot down your thoughts...",
|
|
13231
|
+
value: response,
|
|
13232
|
+
onChange: (e) => setResponse(e.target.value),
|
|
13233
|
+
rows: 3
|
|
13234
|
+
}
|
|
13235
|
+
),
|
|
13236
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 mt-3", children: [
|
|
13237
|
+
/* @__PURE__ */ jsx(
|
|
13238
|
+
"button",
|
|
13239
|
+
{
|
|
13240
|
+
onClick: handleSubmit,
|
|
13241
|
+
className: "px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 text-sm font-medium transition-colors",
|
|
13242
|
+
children: "Continue to Lesson \u2192"
|
|
13243
|
+
}
|
|
13244
|
+
),
|
|
13245
|
+
/* @__PURE__ */ jsx(
|
|
13246
|
+
"button",
|
|
13247
|
+
{
|
|
13248
|
+
onClick: () => {
|
|
13249
|
+
emit(`UI:${saveEvent}`, { response: "" });
|
|
13250
|
+
setIsExpanded(false);
|
|
13251
|
+
},
|
|
13252
|
+
className: "px-4 py-2 text-indigo-600 dark:text-indigo-400 hover:underline text-sm",
|
|
13253
|
+
children: "Skip for now"
|
|
13254
|
+
}
|
|
13255
|
+
)
|
|
13256
|
+
] })
|
|
13257
|
+
] }) : /* @__PURE__ */ jsx(
|
|
13258
|
+
"button",
|
|
13259
|
+
{
|
|
13260
|
+
onClick: () => setIsExpanded(true),
|
|
13261
|
+
className: "text-sm text-indigo-600 dark:text-indigo-400 hover:underline font-medium",
|
|
13262
|
+
children: "\u2713 Answered \xB7 Edit response"
|
|
13263
|
+
}
|
|
13264
|
+
)
|
|
13265
|
+
] })
|
|
13266
|
+
] })
|
|
13267
|
+
}
|
|
13268
|
+
);
|
|
13269
|
+
};
|
|
13270
|
+
ActivationBlock.displayName = "ActivationBlock";
|
|
13271
|
+
}
|
|
13272
|
+
});
|
|
13194
13273
|
var variantBorderClasses, variantIconColors, iconMap2, Alert;
|
|
13195
13274
|
var init_Alert = __esm({
|
|
13196
13275
|
"components/core/molecules/Alert.tsx"() {
|
|
@@ -15387,102 +15466,6 @@ var init_BattleTemplate = __esm({
|
|
|
15387
15466
|
BattleTemplate.displayName = "BattleTemplate";
|
|
15388
15467
|
}
|
|
15389
15468
|
});
|
|
15390
|
-
var MIN_DIAGRAM_WIDTH, ScaledDiagram;
|
|
15391
|
-
var init_ScaledDiagram = __esm({
|
|
15392
|
-
"components/core/molecules/ScaledDiagram.tsx"() {
|
|
15393
|
-
init_Box();
|
|
15394
|
-
init_cn();
|
|
15395
|
-
MIN_DIAGRAM_WIDTH = 200;
|
|
15396
|
-
ScaledDiagram = ({
|
|
15397
|
-
children,
|
|
15398
|
-
className
|
|
15399
|
-
}) => {
|
|
15400
|
-
const { t: _t } = useTranslate();
|
|
15401
|
-
const wrapperRef = useRef(null);
|
|
15402
|
-
const contentRef = useRef(null);
|
|
15403
|
-
const [layout, setLayout] = useState(null);
|
|
15404
|
-
const measure = useCallback(() => {
|
|
15405
|
-
const wrapper = wrapperRef.current;
|
|
15406
|
-
const content = contentRef.current;
|
|
15407
|
-
if (!wrapper || !content) return;
|
|
15408
|
-
const containerW = wrapper.clientWidth;
|
|
15409
|
-
if (containerW <= 0) return;
|
|
15410
|
-
let diagramW = 0;
|
|
15411
|
-
let diagramH = 0;
|
|
15412
|
-
const children2 = content.children;
|
|
15413
|
-
for (let i = 0; i < children2.length; i++) {
|
|
15414
|
-
const child = children2[i];
|
|
15415
|
-
const w = child.style?.width;
|
|
15416
|
-
const h = child.style?.height;
|
|
15417
|
-
if (w && /^\d+/.test(w) && h && /^\d+/.test(h)) {
|
|
15418
|
-
diagramW = parseFloat(w);
|
|
15419
|
-
diagramH = parseFloat(h);
|
|
15420
|
-
break;
|
|
15421
|
-
}
|
|
15422
|
-
if (child.offsetWidth > MIN_DIAGRAM_WIDTH) {
|
|
15423
|
-
diagramW = child.offsetWidth;
|
|
15424
|
-
diagramH = child.offsetHeight;
|
|
15425
|
-
break;
|
|
15426
|
-
}
|
|
15427
|
-
}
|
|
15428
|
-
if (diagramW < MIN_DIAGRAM_WIDTH || diagramH <= 0) {
|
|
15429
|
-
setLayout(null);
|
|
15430
|
-
return;
|
|
15431
|
-
}
|
|
15432
|
-
const s = Math.min(1, containerW / diagramW);
|
|
15433
|
-
setLayout({ scale: s, height: diagramH * s });
|
|
15434
|
-
}, []);
|
|
15435
|
-
useEffect(() => {
|
|
15436
|
-
const content = contentRef.current;
|
|
15437
|
-
if (!content) return;
|
|
15438
|
-
let raf1 = requestAnimationFrame(() => {
|
|
15439
|
-
requestAnimationFrame(() => measure());
|
|
15440
|
-
});
|
|
15441
|
-
const mo = new MutationObserver(() => {
|
|
15442
|
-
requestAnimationFrame(() => measure());
|
|
15443
|
-
});
|
|
15444
|
-
mo.observe(content, { childList: true, subtree: true, attributes: true });
|
|
15445
|
-
return () => {
|
|
15446
|
-
cancelAnimationFrame(raf1);
|
|
15447
|
-
mo.disconnect();
|
|
15448
|
-
};
|
|
15449
|
-
}, [measure, children]);
|
|
15450
|
-
useEffect(() => {
|
|
15451
|
-
const wrapper = wrapperRef.current;
|
|
15452
|
-
if (!wrapper) return;
|
|
15453
|
-
const ro = new ResizeObserver(() => measure());
|
|
15454
|
-
ro.observe(wrapper);
|
|
15455
|
-
return () => ro.disconnect();
|
|
15456
|
-
}, [measure]);
|
|
15457
|
-
const hasLayout = layout !== null;
|
|
15458
|
-
return /* @__PURE__ */ jsx(
|
|
15459
|
-
Box,
|
|
15460
|
-
{
|
|
15461
|
-
ref: wrapperRef,
|
|
15462
|
-
className: cn("w-full", className),
|
|
15463
|
-
style: {
|
|
15464
|
-
// Only clip overflow once we have a valid measurement
|
|
15465
|
-
overflow: hasLayout ? "hidden" : void 0,
|
|
15466
|
-
height: hasLayout ? layout.height : void 0
|
|
15467
|
-
},
|
|
15468
|
-
children: /* @__PURE__ */ jsx(
|
|
15469
|
-
Box,
|
|
15470
|
-
{
|
|
15471
|
-
ref: contentRef,
|
|
15472
|
-
style: {
|
|
15473
|
-
width: "max-content",
|
|
15474
|
-
transformOrigin: "top left",
|
|
15475
|
-
transform: hasLayout && layout.scale < 1 ? `scale(${layout.scale})` : void 0
|
|
15476
|
-
},
|
|
15477
|
-
children
|
|
15478
|
-
}
|
|
15479
|
-
)
|
|
15480
|
-
}
|
|
15481
|
-
);
|
|
15482
|
-
};
|
|
15483
|
-
ScaledDiagram.displayName = "ScaledDiagram";
|
|
15484
|
-
}
|
|
15485
|
-
});
|
|
15486
15469
|
|
|
15487
15470
|
// node_modules/katex/dist/katex.min.css
|
|
15488
15471
|
var init_katex_min = __esm({
|
|
@@ -15922,7 +15905,7 @@ var init_CodeBlock = __esm({
|
|
|
15922
15905
|
};
|
|
15923
15906
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
15924
15907
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
15925
|
-
CodeBlock =
|
|
15908
|
+
CodeBlock = React91__default.memo(
|
|
15926
15909
|
({
|
|
15927
15910
|
code: rawCode,
|
|
15928
15911
|
language = "text",
|
|
@@ -16509,7 +16492,7 @@ var init_MarkdownContent = __esm({
|
|
|
16509
16492
|
init_Box();
|
|
16510
16493
|
init_CodeBlock();
|
|
16511
16494
|
init_cn();
|
|
16512
|
-
MarkdownContent =
|
|
16495
|
+
MarkdownContent = React91__default.memo(
|
|
16513
16496
|
({ content, direction = "ltr", className }) => {
|
|
16514
16497
|
const { t: _t } = useTranslate();
|
|
16515
16498
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -16674,6 +16657,227 @@ var init_MarkdownContent = __esm({
|
|
|
16674
16657
|
MarkdownContent.displayName = "MarkdownContent";
|
|
16675
16658
|
}
|
|
16676
16659
|
});
|
|
16660
|
+
|
|
16661
|
+
// components/core/molecules/lessonSegmentUtils.ts
|
|
16662
|
+
function parseMarkdownWithCodeBlocks(content) {
|
|
16663
|
+
const segments = [];
|
|
16664
|
+
const codeBlockRegex = /```([\w-]+)?(?:\s+(run))?\n([\s\S]*?)```/g;
|
|
16665
|
+
let lastIndex = 0;
|
|
16666
|
+
let match;
|
|
16667
|
+
while ((match = codeBlockRegex.exec(content)) !== null) {
|
|
16668
|
+
const before = content.slice(lastIndex, match.index);
|
|
16669
|
+
if (before.trim()) {
|
|
16670
|
+
segments.push({ type: "markdown", content: before });
|
|
16671
|
+
}
|
|
16672
|
+
const rawLanguage = match[1] ?? "text";
|
|
16673
|
+
const runModifier = !!match[2];
|
|
16674
|
+
const suffixRunnable = rawLanguage.endsWith("-runnable");
|
|
16675
|
+
const runnable = runModifier || suffixRunnable;
|
|
16676
|
+
const baseLanguage = suffixRunnable ? rawLanguage.slice(0, -"-runnable".length) || "text" : rawLanguage;
|
|
16677
|
+
segments.push({ type: "code", language: baseLanguage, content: match[3].trim(), runnable });
|
|
16678
|
+
lastIndex = codeBlockRegex.lastIndex;
|
|
16679
|
+
}
|
|
16680
|
+
const remaining = content.slice(lastIndex);
|
|
16681
|
+
if (remaining.trim()) {
|
|
16682
|
+
segments.push({ type: "markdown", content: remaining });
|
|
16683
|
+
}
|
|
16684
|
+
return segments;
|
|
16685
|
+
}
|
|
16686
|
+
var init_lessonSegmentUtils = __esm({
|
|
16687
|
+
"components/core/molecules/lessonSegmentUtils.ts"() {
|
|
16688
|
+
}
|
|
16689
|
+
});
|
|
16690
|
+
var BLOOM_CONFIG, BloomQuizBlock;
|
|
16691
|
+
var init_BloomQuizBlock = __esm({
|
|
16692
|
+
"components/core/molecules/BloomQuizBlock.tsx"() {
|
|
16693
|
+
"use client";
|
|
16694
|
+
init_MarkdownContent();
|
|
16695
|
+
init_CodeBlock();
|
|
16696
|
+
init_lessonSegmentUtils();
|
|
16697
|
+
init_useEventBus();
|
|
16698
|
+
init_cn();
|
|
16699
|
+
BLOOM_CONFIG = {
|
|
16700
|
+
remember: { color: "bg-gray-500", bgColor: "bg-gray-50 dark:bg-gray-900/30", label: "Remember" },
|
|
16701
|
+
understand: { color: "bg-blue-500", bgColor: "bg-blue-50 dark:bg-blue-900/30", label: "Understand" },
|
|
16702
|
+
apply: { color: "bg-green-500", bgColor: "bg-green-50 dark:bg-green-900/30", label: "Apply" },
|
|
16703
|
+
analyze: { color: "bg-yellow-500", bgColor: "bg-yellow-50 dark:bg-yellow-900/30", label: "Analyze" },
|
|
16704
|
+
evaluate: { color: "bg-orange-500", bgColor: "bg-orange-50 dark:bg-orange-900/30", label: "Evaluate" },
|
|
16705
|
+
create: { color: "bg-purple-500", bgColor: "bg-purple-50 dark:bg-purple-900/30", label: "Create" }
|
|
16706
|
+
};
|
|
16707
|
+
BloomQuizBlock = ({
|
|
16708
|
+
level,
|
|
16709
|
+
question,
|
|
16710
|
+
answer,
|
|
16711
|
+
index,
|
|
16712
|
+
isAnswered,
|
|
16713
|
+
answerEvent = "ANSWER_BLOOM",
|
|
16714
|
+
className
|
|
16715
|
+
}) => {
|
|
16716
|
+
const [revealed, setRevealed] = useState(false);
|
|
16717
|
+
const config = BLOOM_CONFIG[level];
|
|
16718
|
+
const { emit } = useEventBus();
|
|
16719
|
+
const questionSegments = useMemo(() => parseMarkdownWithCodeBlocks(question), [question]);
|
|
16720
|
+
const answerSegments = useMemo(() => parseMarkdownWithCodeBlocks(answer), [answer]);
|
|
16721
|
+
const handleReveal = () => {
|
|
16722
|
+
if (!revealed) {
|
|
16723
|
+
emit(`UI:${answerEvent}`, { index: index ?? 0, level });
|
|
16724
|
+
}
|
|
16725
|
+
setRevealed(!revealed);
|
|
16726
|
+
};
|
|
16727
|
+
return /* @__PURE__ */ jsxs(
|
|
16728
|
+
"div",
|
|
16729
|
+
{
|
|
16730
|
+
className: cn(
|
|
16731
|
+
"rounded-lg border border-indigo-100 dark:border-indigo-800 p-4 my-4 transition-all",
|
|
16732
|
+
config.bgColor,
|
|
16733
|
+
className
|
|
16734
|
+
),
|
|
16735
|
+
children: [
|
|
16736
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
|
|
16737
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
16738
|
+
index !== void 0 && /* @__PURE__ */ jsxs("span", { className: "text-gray-500 dark:text-gray-400 font-medium text-sm", children: [
|
|
16739
|
+
"Question ",
|
|
16740
|
+
index + 1
|
|
16741
|
+
] }),
|
|
16742
|
+
/* @__PURE__ */ jsx("span", { className: cn(config.color, "text-white text-xs px-2 py-1 rounded-full font-medium"), children: config.label })
|
|
16743
|
+
] }),
|
|
16744
|
+
isAnswered && /* @__PURE__ */ jsx(CheckCircle, { className: "text-green-600 dark:text-green-400 flex-shrink-0", size: 20 })
|
|
16745
|
+
] }),
|
|
16746
|
+
/* @__PURE__ */ jsx("div", { className: "font-semibold text-indigo-900 dark:text-indigo-200 mb-3 space-y-2", children: questionSegments.map(
|
|
16747
|
+
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `q-md-${idx}`) : /* @__PURE__ */ jsx(
|
|
16748
|
+
CodeBlock,
|
|
16749
|
+
{
|
|
16750
|
+
language: segment.language ?? "text",
|
|
16751
|
+
code: segment.content
|
|
16752
|
+
},
|
|
16753
|
+
`q-code-${idx}`
|
|
16754
|
+
)
|
|
16755
|
+
) }),
|
|
16756
|
+
/* @__PURE__ */ jsx(
|
|
16757
|
+
"button",
|
|
16758
|
+
{
|
|
16759
|
+
type: "button",
|
|
16760
|
+
className: "inline-flex items-center rounded-md bg-indigo-600 dark:bg-indigo-500 px-3 py-1.5 text-sm font-medium text-white hover:bg-indigo-700 dark:hover:bg-indigo-600 transition-colors",
|
|
16761
|
+
onClick: handleReveal,
|
|
16762
|
+
children: revealed ? "Hide Answer" : "Reveal Answer"
|
|
16763
|
+
}
|
|
16764
|
+
),
|
|
16765
|
+
revealed && /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-white/80 dark:bg-gray-800/80 p-3 text-sm text-slate-800 dark:text-gray-200 shadow-sm border border-indigo-100 dark:border-indigo-800 mt-3 space-y-2", children: [
|
|
16766
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs text-gray-600 dark:text-gray-400 mb-1 font-medium uppercase tracking-wide", children: "Answer:" }),
|
|
16767
|
+
answerSegments.map(
|
|
16768
|
+
(segment, idx) => segment.type === "markdown" ? /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `a-md-${idx}`) : /* @__PURE__ */ jsx(
|
|
16769
|
+
CodeBlock,
|
|
16770
|
+
{
|
|
16771
|
+
language: segment.language ?? "text",
|
|
16772
|
+
code: segment.content
|
|
16773
|
+
},
|
|
16774
|
+
`a-code-${idx}`
|
|
16775
|
+
)
|
|
16776
|
+
)
|
|
16777
|
+
] })
|
|
16778
|
+
]
|
|
16779
|
+
}
|
|
16780
|
+
);
|
|
16781
|
+
};
|
|
16782
|
+
BloomQuizBlock.displayName = "BloomQuizBlock";
|
|
16783
|
+
}
|
|
16784
|
+
});
|
|
16785
|
+
var MIN_DIAGRAM_WIDTH, ScaledDiagram;
|
|
16786
|
+
var init_ScaledDiagram = __esm({
|
|
16787
|
+
"components/core/molecules/ScaledDiagram.tsx"() {
|
|
16788
|
+
init_Box();
|
|
16789
|
+
init_cn();
|
|
16790
|
+
MIN_DIAGRAM_WIDTH = 200;
|
|
16791
|
+
ScaledDiagram = ({
|
|
16792
|
+
children,
|
|
16793
|
+
className
|
|
16794
|
+
}) => {
|
|
16795
|
+
const { t: _t } = useTranslate();
|
|
16796
|
+
const wrapperRef = useRef(null);
|
|
16797
|
+
const contentRef = useRef(null);
|
|
16798
|
+
const [layout, setLayout] = useState(null);
|
|
16799
|
+
const measure = useCallback(() => {
|
|
16800
|
+
const wrapper = wrapperRef.current;
|
|
16801
|
+
const content = contentRef.current;
|
|
16802
|
+
if (!wrapper || !content) return;
|
|
16803
|
+
const containerW = wrapper.clientWidth;
|
|
16804
|
+
if (containerW <= 0) return;
|
|
16805
|
+
let diagramW = 0;
|
|
16806
|
+
let diagramH = 0;
|
|
16807
|
+
const children2 = content.children;
|
|
16808
|
+
for (let i = 0; i < children2.length; i++) {
|
|
16809
|
+
const child = children2[i];
|
|
16810
|
+
const w = child.style?.width;
|
|
16811
|
+
const h = child.style?.height;
|
|
16812
|
+
if (w && /^\d+/.test(w) && h && /^\d+/.test(h)) {
|
|
16813
|
+
diagramW = parseFloat(w);
|
|
16814
|
+
diagramH = parseFloat(h);
|
|
16815
|
+
break;
|
|
16816
|
+
}
|
|
16817
|
+
if (child.offsetWidth > MIN_DIAGRAM_WIDTH) {
|
|
16818
|
+
diagramW = child.offsetWidth;
|
|
16819
|
+
diagramH = child.offsetHeight;
|
|
16820
|
+
break;
|
|
16821
|
+
}
|
|
16822
|
+
}
|
|
16823
|
+
if (diagramW < MIN_DIAGRAM_WIDTH || diagramH <= 0) {
|
|
16824
|
+
setLayout(null);
|
|
16825
|
+
return;
|
|
16826
|
+
}
|
|
16827
|
+
const s = Math.min(1, containerW / diagramW);
|
|
16828
|
+
setLayout({ scale: s, height: diagramH * s });
|
|
16829
|
+
}, []);
|
|
16830
|
+
useEffect(() => {
|
|
16831
|
+
const content = contentRef.current;
|
|
16832
|
+
if (!content) return;
|
|
16833
|
+
let raf1 = requestAnimationFrame(() => {
|
|
16834
|
+
requestAnimationFrame(() => measure());
|
|
16835
|
+
});
|
|
16836
|
+
const mo = new MutationObserver(() => {
|
|
16837
|
+
requestAnimationFrame(() => measure());
|
|
16838
|
+
});
|
|
16839
|
+
mo.observe(content, { childList: true, subtree: true, attributes: true });
|
|
16840
|
+
return () => {
|
|
16841
|
+
cancelAnimationFrame(raf1);
|
|
16842
|
+
mo.disconnect();
|
|
16843
|
+
};
|
|
16844
|
+
}, [measure, children]);
|
|
16845
|
+
useEffect(() => {
|
|
16846
|
+
const wrapper = wrapperRef.current;
|
|
16847
|
+
if (!wrapper) return;
|
|
16848
|
+
const ro = new ResizeObserver(() => measure());
|
|
16849
|
+
ro.observe(wrapper);
|
|
16850
|
+
return () => ro.disconnect();
|
|
16851
|
+
}, [measure]);
|
|
16852
|
+
const hasLayout = layout !== null;
|
|
16853
|
+
return /* @__PURE__ */ jsx(
|
|
16854
|
+
Box,
|
|
16855
|
+
{
|
|
16856
|
+
ref: wrapperRef,
|
|
16857
|
+
className: cn("w-full", className),
|
|
16858
|
+
style: {
|
|
16859
|
+
// Only clip overflow once we have a valid measurement
|
|
16860
|
+
overflow: hasLayout ? "hidden" : void 0,
|
|
16861
|
+
height: hasLayout ? layout.height : void 0
|
|
16862
|
+
},
|
|
16863
|
+
children: /* @__PURE__ */ jsx(
|
|
16864
|
+
Box,
|
|
16865
|
+
{
|
|
16866
|
+
ref: contentRef,
|
|
16867
|
+
style: {
|
|
16868
|
+
width: "max-content",
|
|
16869
|
+
transformOrigin: "top left",
|
|
16870
|
+
transform: hasLayout && layout.scale < 1 ? `scale(${layout.scale})` : void 0
|
|
16871
|
+
},
|
|
16872
|
+
children
|
|
16873
|
+
}
|
|
16874
|
+
)
|
|
16875
|
+
}
|
|
16876
|
+
);
|
|
16877
|
+
};
|
|
16878
|
+
ScaledDiagram.displayName = "ScaledDiagram";
|
|
16879
|
+
}
|
|
16880
|
+
});
|
|
16677
16881
|
function useLongPress(onLongPress, options = {}) {
|
|
16678
16882
|
const { duration = 500, moveThreshold = 10 } = options;
|
|
16679
16883
|
const timerRef = useRef(null);
|
|
@@ -17605,7 +17809,7 @@ var init_StateMachineView = __esm({
|
|
|
17605
17809
|
style: { top: title ? 30 : 0 },
|
|
17606
17810
|
children: [
|
|
17607
17811
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
17608
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
17812
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React91__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
17609
17813
|
StateNode,
|
|
17610
17814
|
{
|
|
17611
17815
|
state,
|
|
@@ -18320,7 +18524,7 @@ function tryParseOrbitalSchema(code) {
|
|
|
18320
18524
|
}
|
|
18321
18525
|
return null;
|
|
18322
18526
|
}
|
|
18323
|
-
function
|
|
18527
|
+
function parseMarkdownWithCodeBlocks2(content) {
|
|
18324
18528
|
if (!content) return [];
|
|
18325
18529
|
const segments = [];
|
|
18326
18530
|
const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g;
|
|
@@ -18359,7 +18563,7 @@ function parseContentSegments(content) {
|
|
|
18359
18563
|
while ((match = tagRegex.exec(content)) !== null) {
|
|
18360
18564
|
const before = content.slice(lastIndex, match.index);
|
|
18361
18565
|
if (before.trim()) {
|
|
18362
|
-
segments.push(...
|
|
18566
|
+
segments.push(...parseMarkdownWithCodeBlocks2(before));
|
|
18363
18567
|
}
|
|
18364
18568
|
segments.push({
|
|
18365
18569
|
type: "quiz",
|
|
@@ -18370,7 +18574,7 @@ function parseContentSegments(content) {
|
|
|
18370
18574
|
}
|
|
18371
18575
|
const remaining = content.slice(lastIndex);
|
|
18372
18576
|
if (remaining.trim()) {
|
|
18373
|
-
segments.push(...
|
|
18577
|
+
segments.push(...parseMarkdownWithCodeBlocks2(remaining));
|
|
18374
18578
|
}
|
|
18375
18579
|
return segments;
|
|
18376
18580
|
}
|
|
@@ -23394,6 +23598,169 @@ var init_ClassifierBoard = __esm({
|
|
|
23394
23598
|
ClassifierBoard.displayName = "ClassifierBoard";
|
|
23395
23599
|
}
|
|
23396
23600
|
});
|
|
23601
|
+
var CodeRunnerPanel;
|
|
23602
|
+
var init_CodeRunnerPanel = __esm({
|
|
23603
|
+
"components/core/organisms/CodeRunnerPanel.tsx"() {
|
|
23604
|
+
"use client";
|
|
23605
|
+
init_Box();
|
|
23606
|
+
init_Button();
|
|
23607
|
+
init_Badge();
|
|
23608
|
+
init_Typography();
|
|
23609
|
+
init_Stack();
|
|
23610
|
+
init_CodeBlock();
|
|
23611
|
+
init_useEventBus();
|
|
23612
|
+
init_cn();
|
|
23613
|
+
CodeRunnerPanel = ({
|
|
23614
|
+
code: initialCode,
|
|
23615
|
+
language,
|
|
23616
|
+
runnable = true,
|
|
23617
|
+
onRun,
|
|
23618
|
+
runEvent = "RUN_CODE",
|
|
23619
|
+
className
|
|
23620
|
+
}) => {
|
|
23621
|
+
const eventBus = useEventBus();
|
|
23622
|
+
const { t } = useTranslate();
|
|
23623
|
+
const [code, setCode] = useState(initialCode);
|
|
23624
|
+
const [output, setOutput] = useState(null);
|
|
23625
|
+
const [error, setError] = useState(null);
|
|
23626
|
+
const [isRunning, setIsRunning] = useState(false);
|
|
23627
|
+
const handleRun = useCallback(async () => {
|
|
23628
|
+
if (!onRun) return;
|
|
23629
|
+
setIsRunning(true);
|
|
23630
|
+
setError(null);
|
|
23631
|
+
setOutput(null);
|
|
23632
|
+
try {
|
|
23633
|
+
const result = await onRun(code);
|
|
23634
|
+
setOutput(result);
|
|
23635
|
+
eventBus.emit(`UI:${runEvent}`, { language, exitCode: result.exitCode });
|
|
23636
|
+
} catch (err) {
|
|
23637
|
+
const message = err instanceof Error ? err.message : t("common.error");
|
|
23638
|
+
setError(message);
|
|
23639
|
+
eventBus.emit(`UI:${runEvent}`, { language, exitCode: 1, error: message });
|
|
23640
|
+
} finally {
|
|
23641
|
+
setIsRunning(false);
|
|
23642
|
+
}
|
|
23643
|
+
}, [code, language, onRun, runEvent, eventBus, t]);
|
|
23644
|
+
const handleReset = useCallback(() => {
|
|
23645
|
+
setCode(initialCode);
|
|
23646
|
+
setOutput(null);
|
|
23647
|
+
setError(null);
|
|
23648
|
+
}, [initialCode]);
|
|
23649
|
+
if (!runnable || !onRun) {
|
|
23650
|
+
return /* @__PURE__ */ jsx(Box, { className, children: /* @__PURE__ */ jsx(CodeBlock, { language, code }) });
|
|
23651
|
+
}
|
|
23652
|
+
const hasOutput = output !== null || error !== null;
|
|
23653
|
+
return /* @__PURE__ */ jsxs(Box, { className: cn("space-y-3", className), children: [
|
|
23654
|
+
/* @__PURE__ */ jsx(
|
|
23655
|
+
CodeBlock,
|
|
23656
|
+
{
|
|
23657
|
+
language,
|
|
23658
|
+
code,
|
|
23659
|
+
editable: true,
|
|
23660
|
+
onChange: setCode,
|
|
23661
|
+
showLanguageBadge: true,
|
|
23662
|
+
showCopyButton: true
|
|
23663
|
+
}
|
|
23664
|
+
),
|
|
23665
|
+
/* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "between", children: [
|
|
23666
|
+
/* @__PURE__ */ jsxs(HStack, { gap: "sm", children: [
|
|
23667
|
+
/* @__PURE__ */ jsx(
|
|
23668
|
+
Button,
|
|
23669
|
+
{
|
|
23670
|
+
variant: "primary",
|
|
23671
|
+
size: "sm",
|
|
23672
|
+
onClick: handleRun,
|
|
23673
|
+
disabled: isRunning,
|
|
23674
|
+
className: "min-w-[5rem]",
|
|
23675
|
+
children: isRunning ? /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
23676
|
+
/* @__PURE__ */ jsx(RotateCcw, { size: 16, className: "animate-spin" }),
|
|
23677
|
+
t("common.loading")
|
|
23678
|
+
] }) : /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
23679
|
+
/* @__PURE__ */ jsx(Play, { size: 16 }),
|
|
23680
|
+
"Run"
|
|
23681
|
+
] })
|
|
23682
|
+
}
|
|
23683
|
+
),
|
|
23684
|
+
/* @__PURE__ */ jsx(
|
|
23685
|
+
Button,
|
|
23686
|
+
{
|
|
23687
|
+
variant: "secondary",
|
|
23688
|
+
size: "sm",
|
|
23689
|
+
onClick: handleReset,
|
|
23690
|
+
disabled: isRunning,
|
|
23691
|
+
children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
|
|
23692
|
+
/* @__PURE__ */ jsx(RotateCcw, { size: 16 }),
|
|
23693
|
+
"Reset"
|
|
23694
|
+
] })
|
|
23695
|
+
}
|
|
23696
|
+
)
|
|
23697
|
+
] }),
|
|
23698
|
+
output && /* @__PURE__ */ jsxs(
|
|
23699
|
+
Badge,
|
|
23700
|
+
{
|
|
23701
|
+
variant: output.exitCode === 0 ? "success" : "danger",
|
|
23702
|
+
size: "sm",
|
|
23703
|
+
children: [
|
|
23704
|
+
"Exit ",
|
|
23705
|
+
output.exitCode
|
|
23706
|
+
]
|
|
23707
|
+
}
|
|
23708
|
+
)
|
|
23709
|
+
] }),
|
|
23710
|
+
hasOutput && /* @__PURE__ */ jsxs(Box, { className: "rounded-lg border border-gray-700 bg-[#0d0d0d] overflow-hidden", children: [
|
|
23711
|
+
/* @__PURE__ */ jsxs(
|
|
23712
|
+
HStack,
|
|
23713
|
+
{
|
|
23714
|
+
gap: "sm",
|
|
23715
|
+
align: "center",
|
|
23716
|
+
className: "px-3 py-2 bg-gray-800 border-b border-gray-700",
|
|
23717
|
+
children: [
|
|
23718
|
+
/* @__PURE__ */ jsx(Terminal, { size: 16, className: "text-gray-400" }),
|
|
23719
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-300 font-medium", children: "Output" })
|
|
23720
|
+
]
|
|
23721
|
+
}
|
|
23722
|
+
),
|
|
23723
|
+
/* @__PURE__ */ jsx(VStack, { gap: "none", className: "p-3 font-mono text-sm", children: error ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-red-400 whitespace-pre-wrap", children: error }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
23724
|
+
output?.stdout ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-200 whitespace-pre-wrap", children: output.stdout }) : null,
|
|
23725
|
+
output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-red-400 whitespace-pre-wrap", children: output.stderr }) : null,
|
|
23726
|
+
!output?.stdout && !output?.stderr ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500 italic", children: "No output" }) : null,
|
|
23727
|
+
output && output.testResults.length > 0 && /* @__PURE__ */ jsx(Box, { className: "mt-3 pt-3 border-t border-gray-700 space-y-2", children: output.testResults.map((test, index) => /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "start", className: "text-xs", children: [
|
|
23728
|
+
test.passed ? /* @__PURE__ */ jsx(CheckCircle, { size: 14, className: "text-green-400 mt-0.5" }) : /* @__PURE__ */ jsx(XCircle, { size: 14, className: "text-red-400 mt-0.5" }),
|
|
23729
|
+
/* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "flex-1", children: [
|
|
23730
|
+
/* @__PURE__ */ jsxs(
|
|
23731
|
+
Typography,
|
|
23732
|
+
{
|
|
23733
|
+
variant: "small",
|
|
23734
|
+
className: test.passed ? "text-green-400" : "text-red-400",
|
|
23735
|
+
children: [
|
|
23736
|
+
"Test ",
|
|
23737
|
+
index + 1,
|
|
23738
|
+
": ",
|
|
23739
|
+
test.passed ? "passed" : "failed"
|
|
23740
|
+
]
|
|
23741
|
+
}
|
|
23742
|
+
),
|
|
23743
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-400", children: [
|
|
23744
|
+
"Input: ",
|
|
23745
|
+
test.input
|
|
23746
|
+
] }),
|
|
23747
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-400", children: [
|
|
23748
|
+
"Expected: ",
|
|
23749
|
+
test.expectedOutput
|
|
23750
|
+
] }),
|
|
23751
|
+
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-gray-400", children: [
|
|
23752
|
+
"Actual: ",
|
|
23753
|
+
test.actualOutput
|
|
23754
|
+
] })
|
|
23755
|
+
] })
|
|
23756
|
+
] }, index)) })
|
|
23757
|
+
] }) })
|
|
23758
|
+
] })
|
|
23759
|
+
] });
|
|
23760
|
+
};
|
|
23761
|
+
CodeRunnerPanel.displayName = "CodeRunnerPanel";
|
|
23762
|
+
}
|
|
23763
|
+
});
|
|
23397
23764
|
function CombatLog({
|
|
23398
23765
|
events: events2,
|
|
23399
23766
|
maxVisible = 50,
|
|
@@ -23644,6 +24011,31 @@ var init_ConfirmDialog = __esm({
|
|
|
23644
24011
|
ConfirmDialog.displayName = "ConfirmDialog";
|
|
23645
24012
|
}
|
|
23646
24013
|
});
|
|
24014
|
+
var ConnectionBlock;
|
|
24015
|
+
var init_ConnectionBlock = __esm({
|
|
24016
|
+
"components/core/molecules/ConnectionBlock.tsx"() {
|
|
24017
|
+
"use client";
|
|
24018
|
+
init_MarkdownContent();
|
|
24019
|
+
init_cn();
|
|
24020
|
+
ConnectionBlock = ({ content, className }) => /* @__PURE__ */ jsx(
|
|
24021
|
+
"div",
|
|
24022
|
+
{
|
|
24023
|
+
className: cn(
|
|
24024
|
+
"bg-emerald-50 dark:bg-emerald-900/20 border-l-4 border-emerald-500 rounded-r-lg p-5 mb-6",
|
|
24025
|
+
className
|
|
24026
|
+
),
|
|
24027
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
24028
|
+
/* @__PURE__ */ jsx(Link2, { className: "text-emerald-600 dark:text-emerald-400 flex-shrink-0 mt-1", size: 20 }),
|
|
24029
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
24030
|
+
/* @__PURE__ */ jsx("h4", { className: "font-semibold text-emerald-900 dark:text-emerald-100 mb-2", children: "Building On What You Know" }),
|
|
24031
|
+
/* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert prose-sm max-w-none text-gray-700 dark:text-gray-300", children: /* @__PURE__ */ jsx(MarkdownContent, { content }) })
|
|
24032
|
+
] })
|
|
24033
|
+
] })
|
|
24034
|
+
}
|
|
24035
|
+
);
|
|
24036
|
+
ConnectionBlock.displayName = "ConnectionBlock";
|
|
24037
|
+
}
|
|
24038
|
+
});
|
|
23647
24039
|
function CounterMinimal({
|
|
23648
24040
|
entity,
|
|
23649
24041
|
size = "md",
|
|
@@ -23868,7 +24260,7 @@ function CraftingRecipe({
|
|
|
23868
24260
|
className
|
|
23869
24261
|
}) {
|
|
23870
24262
|
const eventBus = useEventBus();
|
|
23871
|
-
const handleCraft =
|
|
24263
|
+
const handleCraft = React91.useCallback(() => {
|
|
23872
24264
|
onCraft?.();
|
|
23873
24265
|
if (craftEvent) {
|
|
23874
24266
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -23885,7 +24277,7 @@ function CraftingRecipe({
|
|
|
23885
24277
|
children: [
|
|
23886
24278
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
23887
24279
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
23888
|
-
return /* @__PURE__ */ jsxs(
|
|
24280
|
+
return /* @__PURE__ */ jsxs(React91.Fragment, { children: [
|
|
23889
24281
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
23890
24282
|
ItemSlot,
|
|
23891
24283
|
{
|
|
@@ -23948,8 +24340,8 @@ function DPad({
|
|
|
23948
24340
|
}) {
|
|
23949
24341
|
const eventBus = useEventBus();
|
|
23950
24342
|
const sizes = sizeMap15[size];
|
|
23951
|
-
const [activeDirections, setActiveDirections] =
|
|
23952
|
-
const handlePress =
|
|
24343
|
+
const [activeDirections, setActiveDirections] = React91.useState(/* @__PURE__ */ new Set());
|
|
24344
|
+
const handlePress = React91.useCallback(
|
|
23953
24345
|
(direction) => {
|
|
23954
24346
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
23955
24347
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -23957,7 +24349,7 @@ function DPad({
|
|
|
23957
24349
|
},
|
|
23958
24350
|
[directionEvent, eventBus, onDirection]
|
|
23959
24351
|
);
|
|
23960
|
-
const handleRelease =
|
|
24352
|
+
const handleRelease = React91.useCallback(
|
|
23961
24353
|
(direction) => {
|
|
23962
24354
|
setActiveDirections((prev) => {
|
|
23963
24355
|
const next = new Set(prev);
|
|
@@ -24764,8 +25156,8 @@ var init_Menu = __esm({
|
|
|
24764
25156
|
"bottom-end": "bottom-start"
|
|
24765
25157
|
};
|
|
24766
25158
|
const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
|
|
24767
|
-
const triggerChild =
|
|
24768
|
-
const triggerElement =
|
|
25159
|
+
const triggerChild = React91__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
25160
|
+
const triggerElement = React91__default.cloneElement(
|
|
24769
25161
|
triggerChild,
|
|
24770
25162
|
{
|
|
24771
25163
|
ref: triggerRef,
|
|
@@ -24899,14 +25291,14 @@ function useDataDnd(args) {
|
|
|
24899
25291
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
24900
25292
|
const enabled = isZone || Boolean(dndRoot);
|
|
24901
25293
|
const eventBus = useEventBus();
|
|
24902
|
-
const parentRoot =
|
|
25294
|
+
const parentRoot = React91__default.useContext(RootCtx);
|
|
24903
25295
|
const isRoot = enabled && parentRoot === null;
|
|
24904
|
-
const zoneId =
|
|
25296
|
+
const zoneId = React91__default.useId();
|
|
24905
25297
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
24906
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
24907
|
-
const optimisticOrdersRef =
|
|
25298
|
+
const [optimisticOrders, setOptimisticOrders] = React91__default.useState(() => /* @__PURE__ */ new Map());
|
|
25299
|
+
const optimisticOrdersRef = React91__default.useRef(optimisticOrders);
|
|
24908
25300
|
optimisticOrdersRef.current = optimisticOrders;
|
|
24909
|
-
const clearOptimisticOrder =
|
|
25301
|
+
const clearOptimisticOrder = React91__default.useCallback((group) => {
|
|
24910
25302
|
setOptimisticOrders((prev) => {
|
|
24911
25303
|
if (!prev.has(group)) return prev;
|
|
24912
25304
|
const next = new Map(prev);
|
|
@@ -24931,7 +25323,7 @@ function useDataDnd(args) {
|
|
|
24931
25323
|
const raw = it[dndItemIdField];
|
|
24932
25324
|
return String(raw ?? `__idx_${idx}`);
|
|
24933
25325
|
}).join("|");
|
|
24934
|
-
const itemIds =
|
|
25326
|
+
const itemIds = React91__default.useMemo(
|
|
24935
25327
|
() => orderedItems.map((it, idx) => {
|
|
24936
25328
|
const raw = it[dndItemIdField];
|
|
24937
25329
|
return raw ?? `__idx_${idx}`;
|
|
@@ -24939,7 +25331,7 @@ function useDataDnd(args) {
|
|
|
24939
25331
|
[itemIdsSignature]
|
|
24940
25332
|
);
|
|
24941
25333
|
const itemsContentSig = items.map((it, idx) => String(it[dndItemIdField] ?? `__${idx}`)).join("|");
|
|
24942
|
-
|
|
25334
|
+
React91__default.useEffect(() => {
|
|
24943
25335
|
const root = isRoot ? null : parentRoot;
|
|
24944
25336
|
if (root) {
|
|
24945
25337
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -24947,20 +25339,20 @@ function useDataDnd(args) {
|
|
|
24947
25339
|
clearOptimisticOrder(ownGroup);
|
|
24948
25340
|
}
|
|
24949
25341
|
}, [itemsContentSig, ownGroup]);
|
|
24950
|
-
const zonesRef =
|
|
24951
|
-
const registerZone =
|
|
25342
|
+
const zonesRef = React91__default.useRef(/* @__PURE__ */ new Map());
|
|
25343
|
+
const registerZone = React91__default.useCallback((zoneId2, meta2) => {
|
|
24952
25344
|
zonesRef.current.set(zoneId2, meta2);
|
|
24953
25345
|
}, []);
|
|
24954
|
-
const unregisterZone =
|
|
25346
|
+
const unregisterZone = React91__default.useCallback((zoneId2) => {
|
|
24955
25347
|
zonesRef.current.delete(zoneId2);
|
|
24956
25348
|
}, []);
|
|
24957
|
-
const [activeDrag, setActiveDrag] =
|
|
24958
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
24959
|
-
const meta =
|
|
25349
|
+
const [activeDrag, setActiveDrag] = React91__default.useState(null);
|
|
25350
|
+
const [overZoneGroup, setOverZoneGroup] = React91__default.useState(null);
|
|
25351
|
+
const meta = React91__default.useMemo(
|
|
24960
25352
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
24961
25353
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
24962
25354
|
);
|
|
24963
|
-
|
|
25355
|
+
React91__default.useEffect(() => {
|
|
24964
25356
|
const target = isRoot ? null : parentRoot;
|
|
24965
25357
|
if (!target) {
|
|
24966
25358
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -24979,7 +25371,7 @@ function useDataDnd(args) {
|
|
|
24979
25371
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
24980
25372
|
const sensors = useAlmadarDndSensors(true);
|
|
24981
25373
|
const collisionDetection = almadarDndCollisionDetection;
|
|
24982
|
-
const findZoneByItem =
|
|
25374
|
+
const findZoneByItem = React91__default.useCallback(
|
|
24983
25375
|
(id) => {
|
|
24984
25376
|
for (const z of zonesRef.current.values()) {
|
|
24985
25377
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -24988,7 +25380,7 @@ function useDataDnd(args) {
|
|
|
24988
25380
|
},
|
|
24989
25381
|
[]
|
|
24990
25382
|
);
|
|
24991
|
-
|
|
25383
|
+
React91__default.useCallback(
|
|
24992
25384
|
(group) => {
|
|
24993
25385
|
for (const z of zonesRef.current.values()) {
|
|
24994
25386
|
if (z.group === group) return z;
|
|
@@ -24997,7 +25389,7 @@ function useDataDnd(args) {
|
|
|
24997
25389
|
},
|
|
24998
25390
|
[]
|
|
24999
25391
|
);
|
|
25000
|
-
const handleDragEnd =
|
|
25392
|
+
const handleDragEnd = React91__default.useCallback(
|
|
25001
25393
|
(event) => {
|
|
25002
25394
|
const { active, over } = event;
|
|
25003
25395
|
const activeIdStr = String(active.id);
|
|
@@ -25088,8 +25480,8 @@ function useDataDnd(args) {
|
|
|
25088
25480
|
},
|
|
25089
25481
|
[eventBus]
|
|
25090
25482
|
);
|
|
25091
|
-
const sortableData =
|
|
25092
|
-
const SortableItem =
|
|
25483
|
+
const sortableData = React91__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
25484
|
+
const SortableItem = React91__default.useCallback(
|
|
25093
25485
|
({ id, children }) => {
|
|
25094
25486
|
const {
|
|
25095
25487
|
attributes,
|
|
@@ -25129,7 +25521,7 @@ function useDataDnd(args) {
|
|
|
25129
25521
|
id: droppableId,
|
|
25130
25522
|
data: sortableData
|
|
25131
25523
|
});
|
|
25132
|
-
const ctx =
|
|
25524
|
+
const ctx = React91__default.useContext(RootCtx);
|
|
25133
25525
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
25134
25526
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
25135
25527
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -25144,7 +25536,7 @@ function useDataDnd(args) {
|
|
|
25144
25536
|
showForeignPlaceholder,
|
|
25145
25537
|
ctxAvailable: ctx != null
|
|
25146
25538
|
});
|
|
25147
|
-
|
|
25539
|
+
React91__default.useEffect(() => {
|
|
25148
25540
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
25149
25541
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
25150
25542
|
return /* @__PURE__ */ jsx(
|
|
@@ -25158,11 +25550,11 @@ function useDataDnd(args) {
|
|
|
25158
25550
|
}
|
|
25159
25551
|
);
|
|
25160
25552
|
};
|
|
25161
|
-
const rootContextValue =
|
|
25553
|
+
const rootContextValue = React91__default.useMemo(
|
|
25162
25554
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
25163
25555
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
25164
25556
|
);
|
|
25165
|
-
const handleDragStart =
|
|
25557
|
+
const handleDragStart = React91__default.useCallback((event) => {
|
|
25166
25558
|
const sourceZone = findZoneByItem(event.active.id);
|
|
25167
25559
|
const rect = event.active.rect.current.initial;
|
|
25168
25560
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -25181,7 +25573,7 @@ function useDataDnd(args) {
|
|
|
25181
25573
|
isRoot
|
|
25182
25574
|
});
|
|
25183
25575
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
25184
|
-
const handleDragOver =
|
|
25576
|
+
const handleDragOver = React91__default.useCallback((event) => {
|
|
25185
25577
|
const { active, over } = event;
|
|
25186
25578
|
const overData = over?.data?.current;
|
|
25187
25579
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -25251,7 +25643,7 @@ function useDataDnd(args) {
|
|
|
25251
25643
|
return next;
|
|
25252
25644
|
});
|
|
25253
25645
|
}, []);
|
|
25254
|
-
const handleDragCancel =
|
|
25646
|
+
const handleDragCancel = React91__default.useCallback((event) => {
|
|
25255
25647
|
setActiveDrag(null);
|
|
25256
25648
|
setOverZoneGroup(null);
|
|
25257
25649
|
dndLog.warn("dragCancel", {
|
|
@@ -25259,12 +25651,12 @@ function useDataDnd(args) {
|
|
|
25259
25651
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
25260
25652
|
});
|
|
25261
25653
|
}, []);
|
|
25262
|
-
const handleDragEndWithCleanup =
|
|
25654
|
+
const handleDragEndWithCleanup = React91__default.useCallback((event) => {
|
|
25263
25655
|
handleDragEnd(event);
|
|
25264
25656
|
setActiveDrag(null);
|
|
25265
25657
|
setOverZoneGroup(null);
|
|
25266
25658
|
}, [handleDragEnd]);
|
|
25267
|
-
const wrapContainer =
|
|
25659
|
+
const wrapContainer = React91__default.useCallback(
|
|
25268
25660
|
(children) => {
|
|
25269
25661
|
if (!enabled) return children;
|
|
25270
25662
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -25318,7 +25710,7 @@ var init_useDataDnd = __esm({
|
|
|
25318
25710
|
init_useAlmadarDndCollision();
|
|
25319
25711
|
init_Box();
|
|
25320
25712
|
dndLog = createLogger("almadar:ui:dnd");
|
|
25321
|
-
RootCtx =
|
|
25713
|
+
RootCtx = React91__default.createContext(null);
|
|
25322
25714
|
}
|
|
25323
25715
|
});
|
|
25324
25716
|
function renderIconInput(icon, props) {
|
|
@@ -25844,7 +26236,7 @@ function DataList({
|
|
|
25844
26236
|
}) {
|
|
25845
26237
|
const eventBus = useEventBus();
|
|
25846
26238
|
const { t } = useTranslate();
|
|
25847
|
-
const [visibleCount, setVisibleCount] =
|
|
26239
|
+
const [visibleCount, setVisibleCount] = React91__default.useState(pageSize || Infinity);
|
|
25848
26240
|
const fieldDefs = fields ?? columns ?? [];
|
|
25849
26241
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
25850
26242
|
const dnd = useDataDnd({
|
|
@@ -25863,7 +26255,7 @@ function DataList({
|
|
|
25863
26255
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
25864
26256
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
25865
26257
|
const hasRenderProp = typeof children === "function";
|
|
25866
|
-
|
|
26258
|
+
React91__default.useEffect(() => {
|
|
25867
26259
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
25868
26260
|
const childrenTypeOf = typeof children;
|
|
25869
26261
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -25968,7 +26360,7 @@ function DataList({
|
|
|
25968
26360
|
const items2 = data.map((item) => item);
|
|
25969
26361
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
25970
26362
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
25971
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
26363
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
25972
26364
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
25973
26365
|
group.items.map((itemData, index) => {
|
|
25974
26366
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -26109,7 +26501,7 @@ function DataList({
|
|
|
26109
26501
|
className
|
|
26110
26502
|
),
|
|
26111
26503
|
children: [
|
|
26112
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
26504
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
26113
26505
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
26114
26506
|
group.items.map(
|
|
26115
26507
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -27025,7 +27417,7 @@ var init_Grid = __esm({
|
|
|
27025
27417
|
as: Component = "div"
|
|
27026
27418
|
}) => {
|
|
27027
27419
|
const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
|
|
27028
|
-
return
|
|
27420
|
+
return React91__default.createElement(
|
|
27029
27421
|
Component,
|
|
27030
27422
|
{
|
|
27031
27423
|
className: cn(
|
|
@@ -27213,8 +27605,8 @@ var init_Popover = __esm({
|
|
|
27213
27605
|
onMouseEnter: handleOpen,
|
|
27214
27606
|
onMouseLeave: handleClose
|
|
27215
27607
|
};
|
|
27216
|
-
const childElement =
|
|
27217
|
-
const triggerElement =
|
|
27608
|
+
const childElement = React91__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
27609
|
+
const triggerElement = React91__default.cloneElement(
|
|
27218
27610
|
childElement,
|
|
27219
27611
|
{
|
|
27220
27612
|
ref: triggerRef,
|
|
@@ -27804,8 +28196,8 @@ var init_Tooltip = __esm({
|
|
|
27804
28196
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
27805
28197
|
};
|
|
27806
28198
|
}, []);
|
|
27807
|
-
const triggerElement =
|
|
27808
|
-
const trigger =
|
|
28199
|
+
const triggerElement = React91__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
28200
|
+
const trigger = React91__default.cloneElement(triggerElement, {
|
|
27809
28201
|
ref: triggerRef,
|
|
27810
28202
|
onMouseEnter: handleMouseEnter,
|
|
27811
28203
|
onMouseLeave: handleMouseLeave,
|
|
@@ -27891,7 +28283,7 @@ var init_WizardProgress = __esm({
|
|
|
27891
28283
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
27892
28284
|
const isActive = index === currentStep;
|
|
27893
28285
|
const isCompleted = index < currentStep;
|
|
27894
|
-
return /* @__PURE__ */ jsxs(
|
|
28286
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
27895
28287
|
/* @__PURE__ */ jsx(
|
|
27896
28288
|
"button",
|
|
27897
28289
|
{
|
|
@@ -28943,7 +29335,7 @@ function InventoryGrid({
|
|
|
28943
29335
|
const eventBus = useEventBus();
|
|
28944
29336
|
const slotCount = totalSlots ?? items.length;
|
|
28945
29337
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
28946
|
-
const handleSelect =
|
|
29338
|
+
const handleSelect = React91.useCallback(
|
|
28947
29339
|
(id) => {
|
|
28948
29340
|
onSelect?.(id);
|
|
28949
29341
|
if (selectEvent) {
|
|
@@ -29160,31 +29552,31 @@ function GameCanvas2D({
|
|
|
29160
29552
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
29161
29553
|
className
|
|
29162
29554
|
}) {
|
|
29163
|
-
const canvasRef =
|
|
29164
|
-
const rafRef =
|
|
29165
|
-
const frameRef =
|
|
29166
|
-
const lastTimeRef =
|
|
29167
|
-
const imageCache =
|
|
29555
|
+
const canvasRef = React91.useRef(null);
|
|
29556
|
+
const rafRef = React91.useRef(0);
|
|
29557
|
+
const frameRef = React91.useRef(0);
|
|
29558
|
+
const lastTimeRef = React91.useRef(0);
|
|
29559
|
+
const imageCache = React91.useRef(/* @__PURE__ */ new Map());
|
|
29168
29560
|
const emit = useEmitEvent();
|
|
29169
|
-
const onDrawRef =
|
|
29561
|
+
const onDrawRef = React91.useRef(onDraw);
|
|
29170
29562
|
onDrawRef.current = onDraw;
|
|
29171
|
-
const onTickRef =
|
|
29563
|
+
const onTickRef = React91.useRef(onTick);
|
|
29172
29564
|
onTickRef.current = onTick;
|
|
29173
|
-
const tickEventRef =
|
|
29565
|
+
const tickEventRef = React91.useRef(tickEvent);
|
|
29174
29566
|
tickEventRef.current = tickEvent;
|
|
29175
|
-
const drawEventRef =
|
|
29567
|
+
const drawEventRef = React91.useRef(drawEvent);
|
|
29176
29568
|
drawEventRef.current = drawEvent;
|
|
29177
|
-
const emitRef =
|
|
29569
|
+
const emitRef = React91.useRef(emit);
|
|
29178
29570
|
emitRef.current = emit;
|
|
29179
|
-
const assetBaseUrlRef =
|
|
29571
|
+
const assetBaseUrlRef = React91.useRef(assetBaseUrl);
|
|
29180
29572
|
assetBaseUrlRef.current = assetBaseUrl;
|
|
29181
|
-
const backgroundImageRef =
|
|
29573
|
+
const backgroundImageRef = React91.useRef(backgroundImage);
|
|
29182
29574
|
backgroundImageRef.current = backgroundImage;
|
|
29183
|
-
const widthRef =
|
|
29575
|
+
const widthRef = React91.useRef(width);
|
|
29184
29576
|
widthRef.current = width;
|
|
29185
|
-
const heightRef =
|
|
29577
|
+
const heightRef = React91.useRef(height);
|
|
29186
29578
|
heightRef.current = height;
|
|
29187
|
-
const loadImage =
|
|
29579
|
+
const loadImage = React91.useCallback((url) => {
|
|
29188
29580
|
const fullUrl = url.startsWith("http") ? url : `${assetBaseUrlRef.current}${url}`;
|
|
29189
29581
|
const cached = imageCache.current.get(fullUrl);
|
|
29190
29582
|
if (cached?.complete && cached.naturalWidth > 0) return cached;
|
|
@@ -29196,7 +29588,7 @@ function GameCanvas2D({
|
|
|
29196
29588
|
}
|
|
29197
29589
|
return null;
|
|
29198
29590
|
}, []);
|
|
29199
|
-
|
|
29591
|
+
React91.useEffect(() => {
|
|
29200
29592
|
const canvas = canvasRef.current;
|
|
29201
29593
|
if (!canvas) return;
|
|
29202
29594
|
const ctx = canvas.getContext("2d");
|
|
@@ -29502,7 +29894,7 @@ function TurnPanel({
|
|
|
29502
29894
|
className
|
|
29503
29895
|
}) {
|
|
29504
29896
|
const eventBus = useEventBus();
|
|
29505
|
-
const handleAction =
|
|
29897
|
+
const handleAction = React91.useCallback(
|
|
29506
29898
|
(event) => {
|
|
29507
29899
|
if (event) {
|
|
29508
29900
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -29648,7 +30040,7 @@ function UnitCommandBar({
|
|
|
29648
30040
|
className
|
|
29649
30041
|
}) {
|
|
29650
30042
|
const eventBus = useEventBus();
|
|
29651
|
-
const handleCommand =
|
|
30043
|
+
const handleCommand = React91.useCallback(
|
|
29652
30044
|
(event) => {
|
|
29653
30045
|
if (event) {
|
|
29654
30046
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -30133,7 +30525,7 @@ function GameMenu({
|
|
|
30133
30525
|
} catch {
|
|
30134
30526
|
}
|
|
30135
30527
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30136
|
-
const handleOptionClick =
|
|
30528
|
+
const handleOptionClick = React91.useCallback(
|
|
30137
30529
|
(option) => {
|
|
30138
30530
|
if (option.event && eventBus) {
|
|
30139
30531
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -30247,7 +30639,7 @@ function GameOverScreen({
|
|
|
30247
30639
|
} catch {
|
|
30248
30640
|
}
|
|
30249
30641
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
30250
|
-
const handleActionClick =
|
|
30642
|
+
const handleActionClick = React91.useCallback(
|
|
30251
30643
|
(action) => {
|
|
30252
30644
|
if (action.event && eventBus) {
|
|
30253
30645
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -30989,7 +31381,7 @@ var init_MapView = __esm({
|
|
|
30989
31381
|
shadowSize: [41, 41]
|
|
30990
31382
|
});
|
|
30991
31383
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
30992
|
-
const { useEffect: useEffect77, useRef: useRef69, useCallback:
|
|
31384
|
+
const { useEffect: useEffect77, useRef: useRef69, useCallback: useCallback119, useState: useState115 } = React91__default;
|
|
30993
31385
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
30994
31386
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
30995
31387
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -31034,8 +31426,8 @@ var init_MapView = __esm({
|
|
|
31034
31426
|
showAttribution = true
|
|
31035
31427
|
}) {
|
|
31036
31428
|
const eventBus = useEventBus3();
|
|
31037
|
-
const [clickedPosition, setClickedPosition] =
|
|
31038
|
-
const handleMapClick =
|
|
31429
|
+
const [clickedPosition, setClickedPosition] = useState115(null);
|
|
31430
|
+
const handleMapClick = useCallback119((lat, lng) => {
|
|
31039
31431
|
if (showClickedPin) {
|
|
31040
31432
|
setClickedPosition({ lat, lng });
|
|
31041
31433
|
}
|
|
@@ -31044,7 +31436,7 @@ var init_MapView = __esm({
|
|
|
31044
31436
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
31045
31437
|
}
|
|
31046
31438
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
31047
|
-
const handleMarkerClick =
|
|
31439
|
+
const handleMarkerClick = useCallback119((marker) => {
|
|
31048
31440
|
onMarkerClick?.(marker);
|
|
31049
31441
|
if (markerClickEvent) {
|
|
31050
31442
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -31895,8 +32287,8 @@ function TableView({
|
|
|
31895
32287
|
}) {
|
|
31896
32288
|
const eventBus = useEventBus();
|
|
31897
32289
|
const { t } = useTranslate();
|
|
31898
|
-
const [visibleCount, setVisibleCount] =
|
|
31899
|
-
const [localSelected, setLocalSelected] =
|
|
32290
|
+
const [visibleCount, setVisibleCount] = React91__default.useState(pageSize > 0 ? pageSize : Infinity);
|
|
32291
|
+
const [localSelected, setLocalSelected] = React91__default.useState(/* @__PURE__ */ new Set());
|
|
31900
32292
|
const colDefs = columns ?? fields ?? [];
|
|
31901
32293
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
31902
32294
|
const dnd = useDataDnd({
|
|
@@ -32091,12 +32483,12 @@ function TableView({
|
|
|
32091
32483
|
]
|
|
32092
32484
|
}
|
|
32093
32485
|
);
|
|
32094
|
-
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(
|
|
32486
|
+
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React91__default.Fragment, { children: rowInner }, id);
|
|
32095
32487
|
};
|
|
32096
32488
|
const items = data.map((row) => row);
|
|
32097
32489
|
const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
|
|
32098
32490
|
let runningIndex = 0;
|
|
32099
|
-
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
32491
|
+
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
32100
32492
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
|
|
32101
32493
|
group.items.map((row) => renderRow(row, runningIndex++))
|
|
32102
32494
|
] }, gi)) });
|
|
@@ -33453,7 +33845,7 @@ var init_StepFlow = __esm({
|
|
|
33453
33845
|
className
|
|
33454
33846
|
}) => {
|
|
33455
33847
|
if (orientation === "vertical") {
|
|
33456
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
33848
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React91__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
33457
33849
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
33458
33850
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33459
33851
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -33464,7 +33856,7 @@ var init_StepFlow = __esm({
|
|
|
33464
33856
|
] })
|
|
33465
33857
|
] }) }, index)) });
|
|
33466
33858
|
}
|
|
33467
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
33859
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
33468
33860
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
33469
33861
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
33470
33862
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -34449,7 +34841,7 @@ var init_LikertScale = __esm({
|
|
|
34449
34841
|
md: "text-base",
|
|
34450
34842
|
lg: "text-lg"
|
|
34451
34843
|
};
|
|
34452
|
-
LikertScale =
|
|
34844
|
+
LikertScale = React91__default.forwardRef(
|
|
34453
34845
|
({
|
|
34454
34846
|
question,
|
|
34455
34847
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -34461,7 +34853,7 @@ var init_LikertScale = __esm({
|
|
|
34461
34853
|
variant = "radios",
|
|
34462
34854
|
className
|
|
34463
34855
|
}, ref) => {
|
|
34464
|
-
const groupId =
|
|
34856
|
+
const groupId = React91__default.useId();
|
|
34465
34857
|
const eventBus = useEventBus();
|
|
34466
34858
|
const handleSelect = useCallback(
|
|
34467
34859
|
(next) => {
|
|
@@ -36743,7 +37135,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
36743
37135
|
"aria-label": t("aria.breadcrumb"),
|
|
36744
37136
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
36745
37137
|
const isLast = idx === items.length - 1;
|
|
36746
|
-
return /* @__PURE__ */ jsxs(
|
|
37138
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
36747
37139
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
36748
37140
|
Icon,
|
|
36749
37141
|
{
|
|
@@ -37407,7 +37799,7 @@ var init_PageHeader = __esm({
|
|
|
37407
37799
|
info: "bg-info/10 text-info"
|
|
37408
37800
|
};
|
|
37409
37801
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
37410
|
-
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Box, { as: "nav", className: "mb-4", children: /* @__PURE__ */ jsx(Box, { as: "ol", className: "flex items-center gap-2 text-sm", children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs(
|
|
37802
|
+
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Box, { as: "nav", className: "mb-4", children: /* @__PURE__ */ jsx(Box, { as: "ol", className: "flex items-center gap-2 text-sm", children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
37411
37803
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
37412
37804
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
37413
37805
|
"a",
|
|
@@ -38136,7 +38528,7 @@ var init_WizardContainer = __esm({
|
|
|
38136
38528
|
const isCompleted = index < currentStep;
|
|
38137
38529
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
38138
38530
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
38139
|
-
return /* @__PURE__ */ jsxs(
|
|
38531
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
38140
38532
|
/* @__PURE__ */ jsx(
|
|
38141
38533
|
Button,
|
|
38142
38534
|
{
|
|
@@ -39338,6 +39730,73 @@ var init_GraphCanvas = __esm({
|
|
|
39338
39730
|
GraphCanvas.displayName = "GraphCanvas";
|
|
39339
39731
|
}
|
|
39340
39732
|
});
|
|
39733
|
+
var ReflectionBlock;
|
|
39734
|
+
var init_ReflectionBlock = __esm({
|
|
39735
|
+
"components/core/molecules/ReflectionBlock.tsx"() {
|
|
39736
|
+
"use client";
|
|
39737
|
+
init_useEventBus();
|
|
39738
|
+
init_cn();
|
|
39739
|
+
ReflectionBlock = ({
|
|
39740
|
+
prompt,
|
|
39741
|
+
index,
|
|
39742
|
+
savedNote,
|
|
39743
|
+
saveEvent = "SAVE_REFLECTION",
|
|
39744
|
+
className
|
|
39745
|
+
}) => {
|
|
39746
|
+
const [note, setNote] = useState(savedNote ?? "");
|
|
39747
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
39748
|
+
const { emit } = useEventBus();
|
|
39749
|
+
const handleSave = () => {
|
|
39750
|
+
emit(`UI:${saveEvent}`, { index, note });
|
|
39751
|
+
setIsExpanded(false);
|
|
39752
|
+
};
|
|
39753
|
+
return /* @__PURE__ */ jsx(
|
|
39754
|
+
"div",
|
|
39755
|
+
{
|
|
39756
|
+
className: cn(
|
|
39757
|
+
"my-6 border-l-4 border-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded-r-lg p-4",
|
|
39758
|
+
className
|
|
39759
|
+
),
|
|
39760
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
|
|
39761
|
+
/* @__PURE__ */ jsx(PauseCircle, { className: "text-amber-600 dark:text-amber-400 flex-shrink-0 mt-1", size: 20 }),
|
|
39762
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
39763
|
+
/* @__PURE__ */ jsx("div", { className: "font-medium text-amber-900 dark:text-amber-100 mb-2", children: "Pause & Reflect" }),
|
|
39764
|
+
/* @__PURE__ */ jsx("p", { className: "text-gray-700 dark:text-gray-300 text-sm mb-3", children: prompt }),
|
|
39765
|
+
isExpanded ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
39766
|
+
/* @__PURE__ */ jsx(
|
|
39767
|
+
"textarea",
|
|
39768
|
+
{
|
|
39769
|
+
className: "w-full p-2 border border-amber-300 dark:border-amber-700 rounded text-sm bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:ring-2 focus:ring-amber-500 focus:border-transparent",
|
|
39770
|
+
placeholder: "Your thoughts...",
|
|
39771
|
+
value: note,
|
|
39772
|
+
onChange: (e) => setNote(e.target.value),
|
|
39773
|
+
rows: 2
|
|
39774
|
+
}
|
|
39775
|
+
),
|
|
39776
|
+
/* @__PURE__ */ jsx(
|
|
39777
|
+
"button",
|
|
39778
|
+
{
|
|
39779
|
+
onClick: handleSave,
|
|
39780
|
+
className: "mt-2 text-sm px-3 py-1 bg-amber-600 text-white rounded hover:bg-amber-700 transition-colors",
|
|
39781
|
+
children: "Save & Continue"
|
|
39782
|
+
}
|
|
39783
|
+
)
|
|
39784
|
+
] }) : /* @__PURE__ */ jsx(
|
|
39785
|
+
"button",
|
|
39786
|
+
{
|
|
39787
|
+
onClick: () => setIsExpanded(true),
|
|
39788
|
+
className: "text-sm text-amber-600 dark:text-amber-400 hover:underline",
|
|
39789
|
+
children: savedNote ? "\u2713 Answered \xB7 Edit" : "Answer this question"
|
|
39790
|
+
}
|
|
39791
|
+
)
|
|
39792
|
+
] })
|
|
39793
|
+
] })
|
|
39794
|
+
}
|
|
39795
|
+
);
|
|
39796
|
+
};
|
|
39797
|
+
ReflectionBlock.displayName = "ReflectionBlock";
|
|
39798
|
+
}
|
|
39799
|
+
});
|
|
39341
39800
|
|
|
39342
39801
|
// components/core/molecules/index.ts
|
|
39343
39802
|
var init_molecules2 = __esm({
|
|
@@ -40420,7 +40879,7 @@ var init_DetailPanel = __esm({
|
|
|
40420
40879
|
}
|
|
40421
40880
|
});
|
|
40422
40881
|
function extractTitle(children) {
|
|
40423
|
-
if (!
|
|
40882
|
+
if (!React91__default.isValidElement(children)) return void 0;
|
|
40424
40883
|
const props = children.props;
|
|
40425
40884
|
if (typeof props.title === "string") {
|
|
40426
40885
|
return props.title;
|
|
@@ -40475,7 +40934,7 @@ function LinearView({
|
|
|
40475
40934
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
40476
40935
|
const isDone = i < currentIdx;
|
|
40477
40936
|
const isCurrent = i === currentIdx;
|
|
40478
|
-
return /* @__PURE__ */ jsxs(
|
|
40937
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
40479
40938
|
i > 0 && /* @__PURE__ */ jsx(
|
|
40480
40939
|
Typography,
|
|
40481
40940
|
{
|
|
@@ -41146,7 +41605,7 @@ var init_FeatureDetailPageTemplate = __esm({
|
|
|
41146
41605
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
41147
41606
|
if (!resolved) return null;
|
|
41148
41607
|
return /* @__PURE__ */ jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
|
|
41149
|
-
/* @__PURE__ */ jsx(
|
|
41608
|
+
resolved.hero && /* @__PURE__ */ jsx(
|
|
41150
41609
|
HeroSection,
|
|
41151
41610
|
{
|
|
41152
41611
|
tag: resolved.hero.tag,
|
|
@@ -41433,12 +41892,12 @@ var init_Form = __esm({
|
|
|
41433
41892
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
41434
41893
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
41435
41894
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
41436
|
-
const normalizedInitialData =
|
|
41895
|
+
const normalizedInitialData = React91__default.useMemo(() => {
|
|
41437
41896
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
41438
41897
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
41439
41898
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
41440
41899
|
}, [entity, initialData]);
|
|
41441
|
-
const entityDerivedFields =
|
|
41900
|
+
const entityDerivedFields = React91__default.useMemo(() => {
|
|
41442
41901
|
if (fields && fields.length > 0) return void 0;
|
|
41443
41902
|
if (!resolvedEntity) return void 0;
|
|
41444
41903
|
return resolvedEntity.fields.map(
|
|
@@ -41458,16 +41917,16 @@ var init_Form = __esm({
|
|
|
41458
41917
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
41459
41918
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
41460
41919
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
41461
|
-
const [formData, setFormData] =
|
|
41920
|
+
const [formData, setFormData] = React91__default.useState(
|
|
41462
41921
|
normalizedInitialData
|
|
41463
41922
|
);
|
|
41464
|
-
const [collapsedSections, setCollapsedSections] =
|
|
41923
|
+
const [collapsedSections, setCollapsedSections] = React91__default.useState(
|
|
41465
41924
|
/* @__PURE__ */ new Set()
|
|
41466
41925
|
);
|
|
41467
|
-
const [submitError, setSubmitError] =
|
|
41468
|
-
const formRef =
|
|
41926
|
+
const [submitError, setSubmitError] = React91__default.useState(null);
|
|
41927
|
+
const formRef = React91__default.useRef(null);
|
|
41469
41928
|
const formMode = props.mode;
|
|
41470
|
-
const mountedRef =
|
|
41929
|
+
const mountedRef = React91__default.useRef(false);
|
|
41471
41930
|
if (!mountedRef.current) {
|
|
41472
41931
|
mountedRef.current = true;
|
|
41473
41932
|
debug("forms", "mount", {
|
|
@@ -41480,7 +41939,7 @@ var init_Form = __esm({
|
|
|
41480
41939
|
});
|
|
41481
41940
|
}
|
|
41482
41941
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
41483
|
-
const evalContext =
|
|
41942
|
+
const evalContext = React91__default.useMemo(
|
|
41484
41943
|
() => ({
|
|
41485
41944
|
formValues: formData,
|
|
41486
41945
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -41489,7 +41948,7 @@ var init_Form = __esm({
|
|
|
41489
41948
|
}),
|
|
41490
41949
|
[formData, externalContext]
|
|
41491
41950
|
);
|
|
41492
|
-
|
|
41951
|
+
React91__default.useEffect(() => {
|
|
41493
41952
|
debug("forms", "initialData-sync", {
|
|
41494
41953
|
mode: formMode,
|
|
41495
41954
|
normalizedInitialData,
|
|
@@ -41500,7 +41959,7 @@ var init_Form = __esm({
|
|
|
41500
41959
|
setFormData(normalizedInitialData);
|
|
41501
41960
|
}
|
|
41502
41961
|
}, [normalizedInitialData]);
|
|
41503
|
-
const processCalculations =
|
|
41962
|
+
const processCalculations = React91__default.useCallback(
|
|
41504
41963
|
(changedFieldId, newFormData) => {
|
|
41505
41964
|
if (!hiddenCalculations.length) return;
|
|
41506
41965
|
const context = {
|
|
@@ -41525,7 +41984,7 @@ var init_Form = __esm({
|
|
|
41525
41984
|
},
|
|
41526
41985
|
[hiddenCalculations, externalContext, eventBus]
|
|
41527
41986
|
);
|
|
41528
|
-
const checkViolations =
|
|
41987
|
+
const checkViolations = React91__default.useCallback(
|
|
41529
41988
|
(changedFieldId, newFormData) => {
|
|
41530
41989
|
if (!violationTriggers.length) return;
|
|
41531
41990
|
const context = {
|
|
@@ -41563,7 +42022,7 @@ var init_Form = __esm({
|
|
|
41563
42022
|
processCalculations(name, newFormData);
|
|
41564
42023
|
checkViolations(name, newFormData);
|
|
41565
42024
|
};
|
|
41566
|
-
const isFieldVisible =
|
|
42025
|
+
const isFieldVisible = React91__default.useCallback(
|
|
41567
42026
|
(fieldName) => {
|
|
41568
42027
|
const condition = conditionalFields[fieldName];
|
|
41569
42028
|
if (!condition) return true;
|
|
@@ -41571,7 +42030,7 @@ var init_Form = __esm({
|
|
|
41571
42030
|
},
|
|
41572
42031
|
[conditionalFields, evalContext]
|
|
41573
42032
|
);
|
|
41574
|
-
const isSectionVisible =
|
|
42033
|
+
const isSectionVisible = React91__default.useCallback(
|
|
41575
42034
|
(section) => {
|
|
41576
42035
|
if (!section.condition) return true;
|
|
41577
42036
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -41647,7 +42106,7 @@ var init_Form = __esm({
|
|
|
41647
42106
|
eventBus.emit(`UI:${onCancel}`);
|
|
41648
42107
|
}
|
|
41649
42108
|
};
|
|
41650
|
-
const renderField =
|
|
42109
|
+
const renderField = React91__default.useCallback(
|
|
41651
42110
|
(field) => {
|
|
41652
42111
|
const fieldName = field.name || field.field;
|
|
41653
42112
|
if (!fieldName) return null;
|
|
@@ -41668,7 +42127,7 @@ var init_Form = __esm({
|
|
|
41668
42127
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
41669
42128
|
);
|
|
41670
42129
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
41671
|
-
const normalizedFields =
|
|
42130
|
+
const normalizedFields = React91__default.useMemo(() => {
|
|
41672
42131
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
41673
42132
|
return effectiveFields.map((field) => {
|
|
41674
42133
|
if (typeof field === "string") {
|
|
@@ -41691,7 +42150,7 @@ var init_Form = __esm({
|
|
|
41691
42150
|
return field;
|
|
41692
42151
|
});
|
|
41693
42152
|
}, [effectiveFields, resolvedEntity]);
|
|
41694
|
-
const schemaFields =
|
|
42153
|
+
const schemaFields = React91__default.useMemo(() => {
|
|
41695
42154
|
if (normalizedFields.length === 0) return null;
|
|
41696
42155
|
if (isDebugEnabled()) {
|
|
41697
42156
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -41701,7 +42160,7 @@ var init_Form = __esm({
|
|
|
41701
42160
|
}
|
|
41702
42161
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
41703
42162
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
41704
|
-
const sectionElements =
|
|
42163
|
+
const sectionElements = React91__default.useMemo(() => {
|
|
41705
42164
|
if (!sections || sections.length === 0) return null;
|
|
41706
42165
|
return sections.map((section) => {
|
|
41707
42166
|
if (!isSectionVisible(section)) {
|
|
@@ -42666,7 +43125,7 @@ var init_LandingPageTemplate = __esm({
|
|
|
42666
43125
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
42667
43126
|
if (!resolved) return null;
|
|
42668
43127
|
return /* @__PURE__ */ jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
|
|
42669
|
-
/* @__PURE__ */ jsx(
|
|
43128
|
+
resolved.hero && /* @__PURE__ */ jsx(
|
|
42670
43129
|
HeroSection,
|
|
42671
43130
|
{
|
|
42672
43131
|
tag: resolved.hero.tag,
|
|
@@ -42976,7 +43435,7 @@ var init_List = __esm({
|
|
|
42976
43435
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
42977
43436
|
return [];
|
|
42978
43437
|
}, [entity]);
|
|
42979
|
-
const getItemActions =
|
|
43438
|
+
const getItemActions = React91__default.useCallback(
|
|
42980
43439
|
(item) => {
|
|
42981
43440
|
if (!itemActions) return [];
|
|
42982
43441
|
if (typeof itemActions === "function") {
|
|
@@ -43452,7 +43911,7 @@ var init_MediaGallery = __esm({
|
|
|
43452
43911
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
43453
43912
|
);
|
|
43454
43913
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
43455
|
-
const items =
|
|
43914
|
+
const items = React91__default.useMemo(() => {
|
|
43456
43915
|
if (propItems) return propItems;
|
|
43457
43916
|
if (entityData.length === 0) return [];
|
|
43458
43917
|
return entityData.map((record, idx) => ({
|
|
@@ -43613,7 +44072,7 @@ var init_MediaGallery = __esm({
|
|
|
43613
44072
|
}
|
|
43614
44073
|
});
|
|
43615
44074
|
function extractTitle2(children) {
|
|
43616
|
-
if (!
|
|
44075
|
+
if (!React91__default.isValidElement(children)) return void 0;
|
|
43617
44076
|
const props = children.props;
|
|
43618
44077
|
if (typeof props.title === "string") {
|
|
43619
44078
|
return props.title;
|
|
@@ -43887,7 +44346,7 @@ var init_PricingPageTemplate = __esm({
|
|
|
43887
44346
|
const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
43888
44347
|
if (!resolved) return null;
|
|
43889
44348
|
return /* @__PURE__ */ jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
|
|
43890
|
-
/* @__PURE__ */ jsx(
|
|
44349
|
+
resolved.hero && /* @__PURE__ */ jsx(
|
|
43891
44350
|
HeroSection,
|
|
43892
44351
|
{
|
|
43893
44352
|
tag: resolved.hero.tag,
|
|
@@ -44044,7 +44503,7 @@ var init_debugRegistry = __esm({
|
|
|
44044
44503
|
}
|
|
44045
44504
|
});
|
|
44046
44505
|
function useDebugData() {
|
|
44047
|
-
const [data, setData] =
|
|
44506
|
+
const [data, setData] = React91.useState(() => ({
|
|
44048
44507
|
traits: [],
|
|
44049
44508
|
ticks: [],
|
|
44050
44509
|
guards: [],
|
|
@@ -44058,7 +44517,7 @@ function useDebugData() {
|
|
|
44058
44517
|
},
|
|
44059
44518
|
lastUpdate: Date.now()
|
|
44060
44519
|
}));
|
|
44061
|
-
|
|
44520
|
+
React91.useEffect(() => {
|
|
44062
44521
|
const updateData = () => {
|
|
44063
44522
|
setData({
|
|
44064
44523
|
traits: getAllTraits(),
|
|
@@ -44167,12 +44626,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
44167
44626
|
return positions;
|
|
44168
44627
|
}
|
|
44169
44628
|
function WalkMinimap() {
|
|
44170
|
-
const [walkStep, setWalkStep] =
|
|
44171
|
-
const [traits2, setTraits] =
|
|
44172
|
-
const [coveredEdges, setCoveredEdges] =
|
|
44173
|
-
const [completedTraits, setCompletedTraits] =
|
|
44174
|
-
const prevTraitRef =
|
|
44175
|
-
|
|
44629
|
+
const [walkStep, setWalkStep] = React91.useState(null);
|
|
44630
|
+
const [traits2, setTraits] = React91.useState([]);
|
|
44631
|
+
const [coveredEdges, setCoveredEdges] = React91.useState([]);
|
|
44632
|
+
const [completedTraits, setCompletedTraits] = React91.useState(/* @__PURE__ */ new Set());
|
|
44633
|
+
const prevTraitRef = React91.useRef(null);
|
|
44634
|
+
React91.useEffect(() => {
|
|
44176
44635
|
const interval = setInterval(() => {
|
|
44177
44636
|
const w = window;
|
|
44178
44637
|
const step = w.__orbitalWalkStep;
|
|
@@ -44608,15 +45067,15 @@ var init_EntitiesTab = __esm({
|
|
|
44608
45067
|
});
|
|
44609
45068
|
function EventFlowTab({ events: events2 }) {
|
|
44610
45069
|
const { t } = useTranslate();
|
|
44611
|
-
const [filter, setFilter] =
|
|
44612
|
-
const containerRef =
|
|
44613
|
-
const [autoScroll, setAutoScroll] =
|
|
44614
|
-
|
|
45070
|
+
const [filter, setFilter] = React91.useState("all");
|
|
45071
|
+
const containerRef = React91.useRef(null);
|
|
45072
|
+
const [autoScroll, setAutoScroll] = React91.useState(true);
|
|
45073
|
+
React91.useEffect(() => {
|
|
44615
45074
|
if (autoScroll && containerRef.current) {
|
|
44616
45075
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
44617
45076
|
}
|
|
44618
45077
|
}, [events2.length, autoScroll]);
|
|
44619
|
-
const filteredEvents =
|
|
45078
|
+
const filteredEvents = React91.useMemo(() => {
|
|
44620
45079
|
if (filter === "all") return events2;
|
|
44621
45080
|
return events2.filter((e) => e.type === filter);
|
|
44622
45081
|
}, [events2, filter]);
|
|
@@ -44732,7 +45191,7 @@ var init_EventFlowTab = __esm({
|
|
|
44732
45191
|
});
|
|
44733
45192
|
function GuardsPanel({ guards }) {
|
|
44734
45193
|
const { t } = useTranslate();
|
|
44735
|
-
const [filter, setFilter] =
|
|
45194
|
+
const [filter, setFilter] = React91.useState("all");
|
|
44736
45195
|
if (guards.length === 0) {
|
|
44737
45196
|
return /* @__PURE__ */ jsx(
|
|
44738
45197
|
EmptyState,
|
|
@@ -44745,7 +45204,7 @@ function GuardsPanel({ guards }) {
|
|
|
44745
45204
|
}
|
|
44746
45205
|
const passedCount = guards.filter((g) => g.result).length;
|
|
44747
45206
|
const failedCount = guards.length - passedCount;
|
|
44748
|
-
const filteredGuards =
|
|
45207
|
+
const filteredGuards = React91.useMemo(() => {
|
|
44749
45208
|
if (filter === "all") return guards;
|
|
44750
45209
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
44751
45210
|
return guards.filter((g) => !g.result);
|
|
@@ -44908,10 +45367,10 @@ function EffectBadge({ effect }) {
|
|
|
44908
45367
|
}
|
|
44909
45368
|
function TransitionTimeline({ transitions }) {
|
|
44910
45369
|
const { t } = useTranslate();
|
|
44911
|
-
const containerRef =
|
|
44912
|
-
const [autoScroll, setAutoScroll] =
|
|
44913
|
-
const [expandedId, setExpandedId] =
|
|
44914
|
-
|
|
45370
|
+
const containerRef = React91.useRef(null);
|
|
45371
|
+
const [autoScroll, setAutoScroll] = React91.useState(true);
|
|
45372
|
+
const [expandedId, setExpandedId] = React91.useState(null);
|
|
45373
|
+
React91.useEffect(() => {
|
|
44915
45374
|
if (autoScroll && containerRef.current) {
|
|
44916
45375
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
44917
45376
|
}
|
|
@@ -45191,9 +45650,9 @@ function getAllEvents(traits2) {
|
|
|
45191
45650
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
45192
45651
|
const eventBus = useEventBus();
|
|
45193
45652
|
const { t } = useTranslate();
|
|
45194
|
-
const [log13, setLog] =
|
|
45195
|
-
const prevStatesRef =
|
|
45196
|
-
|
|
45653
|
+
const [log13, setLog] = React91.useState([]);
|
|
45654
|
+
const prevStatesRef = React91.useRef(/* @__PURE__ */ new Map());
|
|
45655
|
+
React91.useEffect(() => {
|
|
45197
45656
|
for (const trait of traits2) {
|
|
45198
45657
|
const prev = prevStatesRef.current.get(trait.id);
|
|
45199
45658
|
if (prev && prev !== trait.currentState) {
|
|
@@ -45362,10 +45821,10 @@ function VerifyModePanel({
|
|
|
45362
45821
|
localCount
|
|
45363
45822
|
}) {
|
|
45364
45823
|
const { t } = useTranslate();
|
|
45365
|
-
const [expanded, setExpanded] =
|
|
45366
|
-
const scrollRef =
|
|
45367
|
-
const prevCountRef =
|
|
45368
|
-
|
|
45824
|
+
const [expanded, setExpanded] = React91.useState(true);
|
|
45825
|
+
const scrollRef = React91.useRef(null);
|
|
45826
|
+
const prevCountRef = React91.useRef(0);
|
|
45827
|
+
React91.useEffect(() => {
|
|
45369
45828
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
45370
45829
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
45371
45830
|
}
|
|
@@ -45422,10 +45881,10 @@ function RuntimeDebugger({
|
|
|
45422
45881
|
schema
|
|
45423
45882
|
}) {
|
|
45424
45883
|
const { t } = useTranslate();
|
|
45425
|
-
const [isCollapsed, setIsCollapsed] =
|
|
45426
|
-
const [isVisible, setIsVisible] =
|
|
45884
|
+
const [isCollapsed, setIsCollapsed] = React91.useState(mode === "verify" ? true : defaultCollapsed);
|
|
45885
|
+
const [isVisible, setIsVisible] = React91.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
45427
45886
|
const debugData = useDebugData();
|
|
45428
|
-
|
|
45887
|
+
React91.useEffect(() => {
|
|
45429
45888
|
if (mode === "inline") return;
|
|
45430
45889
|
return onDebugToggle((enabled) => {
|
|
45431
45890
|
setIsVisible(enabled);
|
|
@@ -45434,7 +45893,7 @@ function RuntimeDebugger({
|
|
|
45434
45893
|
}
|
|
45435
45894
|
});
|
|
45436
45895
|
}, [mode]);
|
|
45437
|
-
|
|
45896
|
+
React91.useEffect(() => {
|
|
45438
45897
|
if (mode === "inline") return;
|
|
45439
45898
|
const handleKeyDown = (e) => {
|
|
45440
45899
|
if (e.key === "`" && isVisible) {
|
|
@@ -45654,6 +46113,117 @@ var init_RuntimeDebugger2 = __esm({
|
|
|
45654
46113
|
RuntimeDebugger.displayName = "RuntimeDebugger";
|
|
45655
46114
|
}
|
|
45656
46115
|
});
|
|
46116
|
+
var SegmentRenderer;
|
|
46117
|
+
var init_SegmentRenderer = __esm({
|
|
46118
|
+
"components/core/organisms/SegmentRenderer.tsx"() {
|
|
46119
|
+
"use client";
|
|
46120
|
+
init_MarkdownContent();
|
|
46121
|
+
init_CodeBlock();
|
|
46122
|
+
init_QuizBlock();
|
|
46123
|
+
init_ActivationBlock();
|
|
46124
|
+
init_ConnectionBlock();
|
|
46125
|
+
init_ReflectionBlock();
|
|
46126
|
+
init_BloomQuizBlock();
|
|
46127
|
+
init_CodeRunnerPanel();
|
|
46128
|
+
init_cn();
|
|
46129
|
+
SegmentRenderer = ({
|
|
46130
|
+
segments,
|
|
46131
|
+
className,
|
|
46132
|
+
containerClassName,
|
|
46133
|
+
userProgress,
|
|
46134
|
+
onRunCodeSimulation,
|
|
46135
|
+
onRenderVisualization
|
|
46136
|
+
}) => {
|
|
46137
|
+
if (segments.length === 0) return null;
|
|
46138
|
+
let reflectIndex = 0;
|
|
46139
|
+
let bloomIndex = 0;
|
|
46140
|
+
return /* @__PURE__ */ jsx(
|
|
46141
|
+
"div",
|
|
46142
|
+
{
|
|
46143
|
+
className: cn(
|
|
46144
|
+
"border border-gray-200 dark:border-gray-700 rounded-lg p-2 md:p-4 overflow-x-auto space-y-6",
|
|
46145
|
+
containerClassName,
|
|
46146
|
+
className
|
|
46147
|
+
),
|
|
46148
|
+
children: segments.map((segment, index) => {
|
|
46149
|
+
if (segment.type === "markdown") {
|
|
46150
|
+
return /* @__PURE__ */ jsx(MarkdownContent, { content: segment.content }, `md-${index}`);
|
|
46151
|
+
}
|
|
46152
|
+
if (segment.type === "code") {
|
|
46153
|
+
if (segment.runnable && onRunCodeSimulation) {
|
|
46154
|
+
return /* @__PURE__ */ jsx(
|
|
46155
|
+
CodeRunnerPanel,
|
|
46156
|
+
{
|
|
46157
|
+
language: segment.language,
|
|
46158
|
+
code: segment.content,
|
|
46159
|
+
runnable: true,
|
|
46160
|
+
onRun: (code) => onRunCodeSimulation(code, segment.language)
|
|
46161
|
+
},
|
|
46162
|
+
`code-${index}`
|
|
46163
|
+
);
|
|
46164
|
+
}
|
|
46165
|
+
return /* @__PURE__ */ jsx(
|
|
46166
|
+
CodeBlock,
|
|
46167
|
+
{
|
|
46168
|
+
language: segment.language ?? "text",
|
|
46169
|
+
code: segment.content
|
|
46170
|
+
},
|
|
46171
|
+
`code-${index}`
|
|
46172
|
+
);
|
|
46173
|
+
}
|
|
46174
|
+
if (segment.type === "quiz") {
|
|
46175
|
+
return /* @__PURE__ */ jsx(QuizBlock, { question: segment.question, answer: segment.answer }, `quiz-${index}`);
|
|
46176
|
+
}
|
|
46177
|
+
if (segment.type === "activate") {
|
|
46178
|
+
return /* @__PURE__ */ jsx(
|
|
46179
|
+
ActivationBlock,
|
|
46180
|
+
{
|
|
46181
|
+
question: segment.question,
|
|
46182
|
+
savedResponse: userProgress?.activationResponse
|
|
46183
|
+
},
|
|
46184
|
+
`activate-${index}`
|
|
46185
|
+
);
|
|
46186
|
+
}
|
|
46187
|
+
if (segment.type === "connect") {
|
|
46188
|
+
return /* @__PURE__ */ jsx(ConnectionBlock, { content: segment.content }, `connect-${index}`);
|
|
46189
|
+
}
|
|
46190
|
+
if (segment.type === "reflect") {
|
|
46191
|
+
const ri = reflectIndex++;
|
|
46192
|
+
return /* @__PURE__ */ jsx(
|
|
46193
|
+
ReflectionBlock,
|
|
46194
|
+
{
|
|
46195
|
+
prompt: segment.prompt,
|
|
46196
|
+
index: ri,
|
|
46197
|
+
savedNote: userProgress?.reflectionNotes?.[ri]
|
|
46198
|
+
},
|
|
46199
|
+
`reflect-${index}`
|
|
46200
|
+
);
|
|
46201
|
+
}
|
|
46202
|
+
if (segment.type === "bloom") {
|
|
46203
|
+
const bi = bloomIndex++;
|
|
46204
|
+
return /* @__PURE__ */ jsx(
|
|
46205
|
+
BloomQuizBlock,
|
|
46206
|
+
{
|
|
46207
|
+
level: segment.level,
|
|
46208
|
+
question: segment.question,
|
|
46209
|
+
answer: segment.answer,
|
|
46210
|
+
index: bi,
|
|
46211
|
+
isAnswered: userProgress?.bloomAnswered?.[bi]
|
|
46212
|
+
},
|
|
46213
|
+
`bloom-${index}`
|
|
46214
|
+
);
|
|
46215
|
+
}
|
|
46216
|
+
if (segment.type === "visualization") {
|
|
46217
|
+
return onRenderVisualization ? onRenderVisualization(segment.visualizationType, segment.description, index) ?? null : null;
|
|
46218
|
+
}
|
|
46219
|
+
return null;
|
|
46220
|
+
})
|
|
46221
|
+
}
|
|
46222
|
+
);
|
|
46223
|
+
};
|
|
46224
|
+
SegmentRenderer.displayName = "SegmentRenderer";
|
|
46225
|
+
}
|
|
46226
|
+
});
|
|
45657
46227
|
function TraitSlot({
|
|
45658
46228
|
slotNumber,
|
|
45659
46229
|
equippedItem,
|
|
@@ -45883,7 +46453,7 @@ function SequenceBar({
|
|
|
45883
46453
|
onSlotRemove(index);
|
|
45884
46454
|
}, [onSlotRemove, playing]);
|
|
45885
46455
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
45886
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
46456
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
45887
46457
|
i > 0 && /* @__PURE__ */ jsx(
|
|
45888
46458
|
Typography,
|
|
45889
46459
|
{
|
|
@@ -46862,7 +47432,7 @@ var init_StatCard = __esm({
|
|
|
46862
47432
|
const labelToUse = propLabel ?? propTitle;
|
|
46863
47433
|
const eventBus = useEventBus();
|
|
46864
47434
|
const { t } = useTranslate();
|
|
46865
|
-
const handleActionClick =
|
|
47435
|
+
const handleActionClick = React91__default.useCallback(() => {
|
|
46866
47436
|
if (action?.event) {
|
|
46867
47437
|
eventBus.emit(`UI:${action.event}`, {});
|
|
46868
47438
|
}
|
|
@@ -46873,7 +47443,7 @@ var init_StatCard = __esm({
|
|
|
46873
47443
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
46874
47444
|
const isLoading = externalLoading ?? false;
|
|
46875
47445
|
const error = externalError;
|
|
46876
|
-
const computeMetricValue =
|
|
47446
|
+
const computeMetricValue = React91__default.useCallback(
|
|
46877
47447
|
(metric, items) => {
|
|
46878
47448
|
if (metric.value !== void 0) {
|
|
46879
47449
|
return metric.value;
|
|
@@ -46912,7 +47482,7 @@ var init_StatCard = __esm({
|
|
|
46912
47482
|
},
|
|
46913
47483
|
[]
|
|
46914
47484
|
);
|
|
46915
|
-
const schemaStats =
|
|
47485
|
+
const schemaStats = React91__default.useMemo(() => {
|
|
46916
47486
|
if (!metrics || metrics.length === 0) return null;
|
|
46917
47487
|
return metrics.map((metric) => ({
|
|
46918
47488
|
label: metric.label,
|
|
@@ -46920,7 +47490,7 @@ var init_StatCard = __esm({
|
|
|
46920
47490
|
format: metric.format
|
|
46921
47491
|
}));
|
|
46922
47492
|
}, [metrics, data, computeMetricValue]);
|
|
46923
|
-
const calculatedTrend =
|
|
47493
|
+
const calculatedTrend = React91__default.useMemo(() => {
|
|
46924
47494
|
if (manualTrend !== void 0) return manualTrend;
|
|
46925
47495
|
if (previousValue === void 0 || currentValue === void 0)
|
|
46926
47496
|
return void 0;
|
|
@@ -47885,7 +48455,7 @@ var init_Timeline = __esm({
|
|
|
47885
48455
|
}) => {
|
|
47886
48456
|
const { t } = useTranslate();
|
|
47887
48457
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
47888
|
-
const items =
|
|
48458
|
+
const items = React91__default.useMemo(() => {
|
|
47889
48459
|
if (propItems) return propItems;
|
|
47890
48460
|
if (entityData.length === 0) return [];
|
|
47891
48461
|
return entityData.map((record, idx) => {
|
|
@@ -47992,7 +48562,7 @@ var init_Timeline = __esm({
|
|
|
47992
48562
|
}
|
|
47993
48563
|
});
|
|
47994
48564
|
function extractToastProps(children) {
|
|
47995
|
-
if (!
|
|
48565
|
+
if (!React91__default.isValidElement(children)) {
|
|
47996
48566
|
if (typeof children === "string") {
|
|
47997
48567
|
return { message: children };
|
|
47998
48568
|
}
|
|
@@ -48030,7 +48600,7 @@ var init_ToastSlot = __esm({
|
|
|
48030
48600
|
eventBus.emit("UI:CLOSE");
|
|
48031
48601
|
};
|
|
48032
48602
|
if (!isVisible) return null;
|
|
48033
|
-
const isCustomContent =
|
|
48603
|
+
const isCustomContent = React91__default.isValidElement(children) && !message;
|
|
48034
48604
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
48035
48605
|
Toast,
|
|
48036
48606
|
{
|
|
@@ -48564,7 +49134,7 @@ var init_WorldMapTemplate = __esm({
|
|
|
48564
49134
|
}
|
|
48565
49135
|
});
|
|
48566
49136
|
function lazyThree(name, loader) {
|
|
48567
|
-
const Lazy =
|
|
49137
|
+
const Lazy = React91__default.lazy(
|
|
48568
49138
|
() => loader().then((m) => {
|
|
48569
49139
|
const Resolved = m[name];
|
|
48570
49140
|
if (!Resolved) {
|
|
@@ -48576,13 +49146,13 @@ function lazyThree(name, loader) {
|
|
|
48576
49146
|
})
|
|
48577
49147
|
);
|
|
48578
49148
|
function ThreeWrapper(props) {
|
|
48579
|
-
return
|
|
49149
|
+
return React91__default.createElement(
|
|
48580
49150
|
ThreeBoundary,
|
|
48581
49151
|
{ name },
|
|
48582
|
-
|
|
48583
|
-
|
|
49152
|
+
React91__default.createElement(
|
|
49153
|
+
React91__default.Suspense,
|
|
48584
49154
|
{ fallback: null },
|
|
48585
|
-
|
|
49155
|
+
React91__default.createElement(Lazy, props)
|
|
48586
49156
|
)
|
|
48587
49157
|
);
|
|
48588
49158
|
}
|
|
@@ -48598,6 +49168,7 @@ var init_component_registry_generated = __esm({
|
|
|
48598
49168
|
init_ActionButtons();
|
|
48599
49169
|
init_ActionPalette();
|
|
48600
49170
|
init_ActionTile();
|
|
49171
|
+
init_ActivationBlock();
|
|
48601
49172
|
init_ComponentPatterns();
|
|
48602
49173
|
init_AnimatedCounter();
|
|
48603
49174
|
init_AnimatedGraphic();
|
|
@@ -48610,6 +49181,7 @@ var init_component_registry_generated = __esm({
|
|
|
48610
49181
|
init_BattleBoard();
|
|
48611
49182
|
init_BattleTemplate();
|
|
48612
49183
|
init_BehaviorView();
|
|
49184
|
+
init_BloomQuizBlock();
|
|
48613
49185
|
init_BookChapterView();
|
|
48614
49186
|
init_BookCoverPage();
|
|
48615
49187
|
init_BookNavBar();
|
|
@@ -48637,12 +49209,14 @@ var init_component_registry_generated = __esm({
|
|
|
48637
49209
|
init_ChoiceButton();
|
|
48638
49210
|
init_ClassifierBoard();
|
|
48639
49211
|
init_CodeBlock();
|
|
49212
|
+
init_CodeRunnerPanel();
|
|
48640
49213
|
init_CombatLog();
|
|
48641
49214
|
init_ComboCounter();
|
|
48642
49215
|
init_CommunityLinks();
|
|
48643
49216
|
init_ConditionalWrapper();
|
|
48644
49217
|
init_ConfettiEffect();
|
|
48645
49218
|
init_ConfirmDialog();
|
|
49219
|
+
init_ConnectionBlock();
|
|
48646
49220
|
init_Container();
|
|
48647
49221
|
init_ContentRenderer();
|
|
48648
49222
|
init_ContentSection();
|
|
@@ -48770,6 +49344,7 @@ var init_component_registry_generated = __esm({
|
|
|
48770
49344
|
init_QuizBlock();
|
|
48771
49345
|
init_Radio();
|
|
48772
49346
|
init_RangeSlider();
|
|
49347
|
+
init_ReflectionBlock();
|
|
48773
49348
|
init_RelationSelect();
|
|
48774
49349
|
init_RepeatableFormSection();
|
|
48775
49350
|
init_ReplyTree();
|
|
@@ -48784,6 +49359,7 @@ var init_component_registry_generated = __esm({
|
|
|
48784
49359
|
init_SearchInput();
|
|
48785
49360
|
init_Section();
|
|
48786
49361
|
init_SectionHeader();
|
|
49362
|
+
init_SegmentRenderer();
|
|
48787
49363
|
init_Select();
|
|
48788
49364
|
init_SequenceBar();
|
|
48789
49365
|
init_SequencerBoard();
|
|
@@ -48875,7 +49451,7 @@ var init_component_registry_generated = __esm({
|
|
|
48875
49451
|
init_WorldMapBoard();
|
|
48876
49452
|
init_WorldMapTemplate();
|
|
48877
49453
|
init_XPBar();
|
|
48878
|
-
ThreeBoundary = class extends
|
|
49454
|
+
ThreeBoundary = class extends React91__default.Component {
|
|
48879
49455
|
constructor() {
|
|
48880
49456
|
super(...arguments);
|
|
48881
49457
|
__publicField(this, "state", { failed: false });
|
|
@@ -48885,7 +49461,7 @@ var init_component_registry_generated = __esm({
|
|
|
48885
49461
|
}
|
|
48886
49462
|
render() {
|
|
48887
49463
|
if (this.state.failed) {
|
|
48888
|
-
return
|
|
49464
|
+
return React91__default.createElement(
|
|
48889
49465
|
"div",
|
|
48890
49466
|
{
|
|
48891
49467
|
"data-testid": "three-unavailable",
|
|
@@ -48909,6 +49485,7 @@ var init_component_registry_generated = __esm({
|
|
|
48909
49485
|
"ActionButtons": ActionButtons,
|
|
48910
49486
|
"ActionPalette": ActionPalette,
|
|
48911
49487
|
"ActionTile": ActionTile,
|
|
49488
|
+
"ActivationBlock": ActivationBlock,
|
|
48912
49489
|
"Alert": AlertPattern,
|
|
48913
49490
|
"AlertPattern": AlertPattern,
|
|
48914
49491
|
"AnimatedCounter": AnimatedCounter,
|
|
@@ -48922,6 +49499,7 @@ var init_component_registry_generated = __esm({
|
|
|
48922
49499
|
"BattleBoard": BattleBoard,
|
|
48923
49500
|
"BattleTemplate": BattleTemplate,
|
|
48924
49501
|
"BehaviorView": BehaviorView,
|
|
49502
|
+
"BloomQuizBlock": BloomQuizBlock,
|
|
48925
49503
|
"BookChapterView": BookChapterView,
|
|
48926
49504
|
"BookCoverPage": BookCoverPage,
|
|
48927
49505
|
"BookNavBar": BookNavBar,
|
|
@@ -48952,12 +49530,14 @@ var init_component_registry_generated = __esm({
|
|
|
48952
49530
|
"ChoiceButton": ChoiceButton,
|
|
48953
49531
|
"ClassifierBoard": ClassifierBoard,
|
|
48954
49532
|
"CodeBlock": CodeBlock,
|
|
49533
|
+
"CodeRunnerPanel": CodeRunnerPanel,
|
|
48955
49534
|
"CombatLog": CombatLog,
|
|
48956
49535
|
"ComboCounter": ComboCounter,
|
|
48957
49536
|
"CommunityLinks": CommunityLinks,
|
|
48958
49537
|
"ConditionalWrapper": ConditionalWrapper,
|
|
48959
49538
|
"ConfettiEffect": ConfettiEffect,
|
|
48960
49539
|
"ConfirmDialog": ConfirmDialog,
|
|
49540
|
+
"ConnectionBlock": ConnectionBlock,
|
|
48961
49541
|
"Container": Container,
|
|
48962
49542
|
"ContentRenderer": ContentRenderer,
|
|
48963
49543
|
"ContentSection": ContentSection,
|
|
@@ -49094,6 +49674,7 @@ var init_component_registry_generated = __esm({
|
|
|
49094
49674
|
"QuizBlock": QuizBlock,
|
|
49095
49675
|
"Radio": Radio,
|
|
49096
49676
|
"RangeSlider": RangeSlider,
|
|
49677
|
+
"ReflectionBlock": ReflectionBlock,
|
|
49097
49678
|
"RelationSelect": RelationSelect,
|
|
49098
49679
|
"RepeatableFormSection": RepeatableFormSection,
|
|
49099
49680
|
"ReplyTree": ReplyTree,
|
|
@@ -49108,6 +49689,7 @@ var init_component_registry_generated = __esm({
|
|
|
49108
49689
|
"SearchInput": SearchInput,
|
|
49109
49690
|
"Section": Section,
|
|
49110
49691
|
"SectionHeader": SectionHeader,
|
|
49692
|
+
"SegmentRenderer": SegmentRenderer,
|
|
49111
49693
|
"Select": Select,
|
|
49112
49694
|
"SequenceBar": SequenceBar,
|
|
49113
49695
|
"SequencerBoard": SequencerBoard,
|
|
@@ -49221,7 +49803,7 @@ function SuspenseConfigProvider({
|
|
|
49221
49803
|
config,
|
|
49222
49804
|
children
|
|
49223
49805
|
}) {
|
|
49224
|
-
return
|
|
49806
|
+
return React91__default.createElement(
|
|
49225
49807
|
SuspenseConfigContext.Provider,
|
|
49226
49808
|
{ value: config },
|
|
49227
49809
|
children
|
|
@@ -49711,7 +50293,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
49711
50293
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
49712
50294
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
49713
50295
|
}
|
|
49714
|
-
return /* @__PURE__ */ jsx(
|
|
50296
|
+
return /* @__PURE__ */ jsx(React91__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
49715
50297
|
}
|
|
49716
50298
|
if (!child || typeof child !== "object") return null;
|
|
49717
50299
|
const childId = `${parentId}-${index}`;
|
|
@@ -49751,14 +50333,14 @@ function isPatternConfig(value) {
|
|
|
49751
50333
|
if (value === null || value === void 0) return false;
|
|
49752
50334
|
if (typeof value !== "object") return false;
|
|
49753
50335
|
if (Array.isArray(value)) return false;
|
|
49754
|
-
if (
|
|
50336
|
+
if (React91__default.isValidElement(value)) return false;
|
|
49755
50337
|
if (value instanceof Date) return false;
|
|
49756
50338
|
if (typeof value === "function") return false;
|
|
49757
50339
|
const record = value;
|
|
49758
50340
|
return "type" in record && typeof record.type === "string";
|
|
49759
50341
|
}
|
|
49760
50342
|
function isPlainConfigObject(value) {
|
|
49761
|
-
if (
|
|
50343
|
+
if (React91__default.isValidElement(value)) return false;
|
|
49762
50344
|
if (value instanceof Date) return false;
|
|
49763
50345
|
const proto = Object.getPrototypeOf(value);
|
|
49764
50346
|
return proto === Object.prototype || proto === null;
|
|
@@ -50265,7 +50847,7 @@ var AvlTransition = ({
|
|
|
50265
50847
|
opacity = 1,
|
|
50266
50848
|
className
|
|
50267
50849
|
}) => {
|
|
50268
|
-
const ids =
|
|
50850
|
+
const ids = React91__default.useMemo(() => {
|
|
50269
50851
|
avlTransitionId += 1;
|
|
50270
50852
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
50271
50853
|
}, []);
|
|
@@ -50826,7 +51408,7 @@ var AvlStateMachine = ({
|
|
|
50826
51408
|
color = "var(--color-primary)",
|
|
50827
51409
|
animated = false
|
|
50828
51410
|
}) => {
|
|
50829
|
-
const ids =
|
|
51411
|
+
const ids = React91__default.useMemo(() => {
|
|
50830
51412
|
avlSmId += 1;
|
|
50831
51413
|
const base = `avl-sm-${avlSmId}`;
|
|
50832
51414
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -51025,7 +51607,7 @@ var AvlOrbitalUnit = ({
|
|
|
51025
51607
|
color = "var(--color-primary)",
|
|
51026
51608
|
animated = false
|
|
51027
51609
|
}) => {
|
|
51028
|
-
const ids =
|
|
51610
|
+
const ids = React91__default.useMemo(() => {
|
|
51029
51611
|
avlOuId += 1;
|
|
51030
51612
|
const base = `avl-ou-${avlOuId}`;
|
|
51031
51613
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -51121,7 +51703,7 @@ var AvlClosedCircuit = ({
|
|
|
51121
51703
|
color = "var(--color-primary)",
|
|
51122
51704
|
animated = false
|
|
51123
51705
|
}) => {
|
|
51124
|
-
const ids =
|
|
51706
|
+
const ids = React91__default.useMemo(() => {
|
|
51125
51707
|
avlCcId += 1;
|
|
51126
51708
|
const base = `avl-cc-${avlCcId}`;
|
|
51127
51709
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -51276,7 +51858,7 @@ var AvlEmitListen = ({
|
|
|
51276
51858
|
color = "var(--color-primary)",
|
|
51277
51859
|
animated = false
|
|
51278
51860
|
}) => {
|
|
51279
|
-
const ids =
|
|
51861
|
+
const ids = React91__default.useMemo(() => {
|
|
51280
51862
|
avlElId += 1;
|
|
51281
51863
|
const base = `avl-el-${avlElId}`;
|
|
51282
51864
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -51550,7 +52132,7 @@ function renderNode(node, color, glowId) {
|
|
|
51550
52132
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
51551
52133
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
51552
52134
|
const nc = nodeColor(node.type, color);
|
|
51553
|
-
return /* @__PURE__ */ jsxs(
|
|
52135
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
51554
52136
|
node.children.map((child, i) => {
|
|
51555
52137
|
const childR = Math.max(
|
|
51556
52138
|
child.type === "operator" ? 20 : 16,
|
|
@@ -51607,7 +52189,7 @@ var AvlExprTree = ({
|
|
|
51607
52189
|
className,
|
|
51608
52190
|
color = "var(--color-primary)"
|
|
51609
52191
|
}) => {
|
|
51610
|
-
const ids =
|
|
52192
|
+
const ids = React91__default.useMemo(() => {
|
|
51611
52193
|
avlEtId += 1;
|
|
51612
52194
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
51613
52195
|
}, []);
|
|
@@ -52431,7 +53013,7 @@ var SystemNode = ({ data }) => {
|
|
|
52431
53013
|
stateChain.length > 0 && /* @__PURE__ */ jsx("svg", { width: stateChain.length * 14 + 2, height: 10, viewBox: `0 0 ${stateChain.length * 14 + 2} 10`, children: stateChain.map((s, i) => {
|
|
52432
53014
|
const tc = transitionCounts[s.name] ?? 0;
|
|
52433
53015
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
52434
|
-
return /* @__PURE__ */ jsxs(
|
|
53016
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
52435
53017
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
|
|
52436
53018
|
i < stateChain.length - 1 && /* @__PURE__ */ jsx("line", { x1: i * 14 + 12, y1: 5, x2: i * 14 + 15, y2: 5, stroke: "var(--color-border)", strokeWidth: 0.5 })
|
|
52437
53019
|
] }, s.name);
|
|
@@ -53583,7 +54165,7 @@ function resolveLambdaBindings(body, params, item, index) {
|
|
|
53583
54165
|
if (Array.isArray(body)) {
|
|
53584
54166
|
return body.map((b) => recur(b));
|
|
53585
54167
|
}
|
|
53586
|
-
if (body !== null && typeof body === "object" && !
|
|
54168
|
+
if (body !== null && typeof body === "object" && !React91__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
53587
54169
|
const out = {};
|
|
53588
54170
|
for (const [k, v] of Object.entries(body)) {
|
|
53589
54171
|
out[k] = recur(v);
|
|
@@ -53602,7 +54184,7 @@ function getSlotContentRenderer2() {
|
|
|
53602
54184
|
function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
53603
54185
|
return (item, index) => {
|
|
53604
54186
|
const resolvedBody = resolveLambdaBindings(lambdaBody, params, item, index);
|
|
53605
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
54187
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React91__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
53606
54188
|
return null;
|
|
53607
54189
|
}
|
|
53608
54190
|
const record = resolvedBody;
|
|
@@ -53621,7 +54203,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
|
53621
54203
|
props: childProps,
|
|
53622
54204
|
priority: 0
|
|
53623
54205
|
};
|
|
53624
|
-
return
|
|
54206
|
+
return React91__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
53625
54207
|
};
|
|
53626
54208
|
}
|
|
53627
54209
|
function convertNode(node, callerKey) {
|
|
@@ -53640,7 +54222,7 @@ function convertNode(node, callerKey) {
|
|
|
53640
54222
|
});
|
|
53641
54223
|
return anyChanged ? mapped : node;
|
|
53642
54224
|
}
|
|
53643
|
-
if (typeof node === "object" && !
|
|
54225
|
+
if (typeof node === "object" && !React91__default.isValidElement(node) && !(node instanceof Date)) {
|
|
53644
54226
|
return convertObjectProps(node);
|
|
53645
54227
|
}
|
|
53646
54228
|
return node;
|
|
@@ -55653,8 +56235,8 @@ function CanvasDndProvider({
|
|
|
55653
56235
|
}) {
|
|
55654
56236
|
const eventBus = useEventBus();
|
|
55655
56237
|
const sensors = useAlmadarDndSensors(false);
|
|
55656
|
-
const [activePayload, setActivePayload] =
|
|
55657
|
-
const handleDragStart =
|
|
56238
|
+
const [activePayload, setActivePayload] = React91__default.useState(null);
|
|
56239
|
+
const handleDragStart = React91__default.useCallback((e) => {
|
|
55658
56240
|
const data = e.active.data.current;
|
|
55659
56241
|
const payload = data?.payload;
|
|
55660
56242
|
if (payload) {
|
|
@@ -55665,7 +56247,7 @@ function CanvasDndProvider({
|
|
|
55665
56247
|
log11.warn("dragStart:missing-payload", { id: e.active.id });
|
|
55666
56248
|
}
|
|
55667
56249
|
}, [eventBus]);
|
|
55668
|
-
const handleDragEnd =
|
|
56250
|
+
const handleDragEnd = React91__default.useCallback((e) => {
|
|
55669
56251
|
setActivePayload(null);
|
|
55670
56252
|
const activeData = e.active.data.current;
|
|
55671
56253
|
const payload = activeData?.payload;
|
|
@@ -55694,7 +56276,7 @@ function CanvasDndProvider({
|
|
|
55694
56276
|
const suppressed = onDrop ? onDrop(drop) === true : false;
|
|
55695
56277
|
if (!suppressed) defaultEmit(eventBus, drop);
|
|
55696
56278
|
}, [eventBus, onDrop]);
|
|
55697
|
-
const handleDragCancel =
|
|
56279
|
+
const handleDragCancel = React91__default.useCallback(() => {
|
|
55698
56280
|
setActivePayload(null);
|
|
55699
56281
|
log11.info("dragCancel");
|
|
55700
56282
|
}, []);
|
|
@@ -56448,7 +57030,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
56448
57030
|
}
|
|
56449
57031
|
);
|
|
56450
57032
|
};
|
|
56451
|
-
var OrbPreviewNode =
|
|
57033
|
+
var OrbPreviewNode = React91__default.memo(OrbPreviewNodeInner);
|
|
56452
57034
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
56453
57035
|
orbPreviewLog.debug("export-resolved", () => ({
|
|
56454
57036
|
type: typeof OrbPreviewNode,
|
|
@@ -56553,7 +57135,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
56553
57135
|
) })
|
|
56554
57136
|
] });
|
|
56555
57137
|
};
|
|
56556
|
-
var EventFlowEdge =
|
|
57138
|
+
var EventFlowEdge = React91__default.memo(EventFlowEdgeInner);
|
|
56557
57139
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
56558
57140
|
|
|
56559
57141
|
// components/avl/molecules/BehaviorComposeNode.tsx
|
|
@@ -56700,7 +57282,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
56700
57282
|
}
|
|
56701
57283
|
);
|
|
56702
57284
|
};
|
|
56703
|
-
var BehaviorComposeNode =
|
|
57285
|
+
var BehaviorComposeNode = React91__default.memo(BehaviorComposeNodeInner);
|
|
56704
57286
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
56705
57287
|
|
|
56706
57288
|
// components/avl/molecules/avl-behavior-compose-converter.ts
|
|
@@ -57712,7 +58294,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
57712
58294
|
}
|
|
57713
58295
|
);
|
|
57714
58296
|
};
|
|
57715
|
-
var TraitCardNode =
|
|
58297
|
+
var TraitCardNode = React91__default.memo(TraitCardNodeInner);
|
|
57716
58298
|
TraitCardNode.displayName = "TraitCardNode";
|
|
57717
58299
|
|
|
57718
58300
|
// components/avl/organisms/FlowCanvas.tsx
|
|
@@ -57785,7 +58367,7 @@ function FlowCanvasInner({
|
|
|
57785
58367
|
initialOrbital
|
|
57786
58368
|
);
|
|
57787
58369
|
const [expandedBehaviorAlias, setExpandedBehaviorAlias] = useState(void 0);
|
|
57788
|
-
const screenSizeUserOverrideRef =
|
|
58370
|
+
const screenSizeUserOverrideRef = React91__default.useRef(false);
|
|
57789
58371
|
const [screenSize, setScreenSize] = useState(
|
|
57790
58372
|
() => typeof window === "undefined" ? "laptop" : detectScreenSize(window.innerWidth)
|
|
57791
58373
|
);
|
|
@@ -58169,7 +58751,7 @@ var ZoomBreadcrumb = ({
|
|
|
58169
58751
|
if (eventName && band === "detail") {
|
|
58170
58752
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
58171
58753
|
}
|
|
58172
|
-
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-xs text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(
|
|
58754
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-xs text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
58173
58755
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
58174
58756
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
58175
58757
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -58510,7 +59092,7 @@ var EventWireOverlay = ({
|
|
|
58510
59092
|
containerW,
|
|
58511
59093
|
containerH
|
|
58512
59094
|
}) => {
|
|
58513
|
-
const ids =
|
|
59095
|
+
const ids = React91__default.useMemo(() => {
|
|
58514
59096
|
avlOczWireId += 1;
|
|
58515
59097
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
58516
59098
|
}, []);
|
|
@@ -58877,7 +59459,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
58877
59459
|
borderRadius: 6,
|
|
58878
59460
|
border: `1px solid ${color}`
|
|
58879
59461
|
},
|
|
58880
|
-
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
59462
|
+
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
58881
59463
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
58882
59464
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
58883
59465
|
Box,
|