@almadar/ui 5.91.0 → 5.94.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 +1289 -1499
- package/dist/avl/index.js +290 -500
- package/dist/components/game/2d/atoms/DialogueBubble.d.ts +9 -1
- package/dist/components/game/2d/atoms/GameCard.d.ts +7 -1
- package/dist/components/game/2d/molecules/Canvas2D.d.ts +9 -1
- package/dist/components/game/2d/{organisms → molecules}/SequenceBar.d.ts +16 -6
- package/dist/components/game/2d/molecules/index.d.ts +1 -5
- package/dist/components/game/shared/spriteAnimationTypes.d.ts +10 -35
- package/dist/components/index.cjs +58 -355
- package/dist/components/index.js +60 -354
- package/dist/lib/index.cjs +293 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +286 -1
- package/dist/lib/verificationRegistry.d.ts +1 -1
- package/dist/providers/index.cjs +1153 -1335
- package/dist/providers/index.js +261 -443
- package/dist/runtime/index.cjs +1150 -1360
- package/dist/runtime/index.js +270 -480
- package/package.json +3 -3
- package/dist/components/game/2d/organisms/SimulationCanvas.d.ts +0 -27
- package/dist/components/game/2d/organisms/SimulationControls.d.ts +0 -51
- package/dist/components/game/2d/organisms/SimulationGraph.d.ts +0 -25
package/dist/avl/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React104 from 'react';
|
|
3
|
+
import React104__default, { createContext, useState, useMemo, useRef, useEffect, useContext, useCallback, Suspense, useLayoutEffect, Profiler, useReducer, useSyncExternalStore, lazy, useId } from 'react';
|
|
4
4
|
import { getAllPages, OrbitalProvider, EventBusContext, useTraitScope, ServerBridgeProvider, VerificationProvider, EntitySchemaProvider, OrbitalThemeProvider, useServerBridge, useEntitySchema, useEntitySchemaOptional, TraitScopeProvider, useCurrentPagePath } from '@almadar/ui/providers';
|
|
5
5
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
6
6
|
import ELK from 'elkjs/lib/elk.bundled.js';
|
|
@@ -41,7 +41,7 @@ import { sortableKeyboardCoordinates, useSortable, arrayMove, SortableContext, r
|
|
|
41
41
|
import { CSS } from '@dnd-kit/utilities';
|
|
42
42
|
import { getPatternDefinition, getComponentForPattern as getComponentForPattern$1, isEntityAwarePattern } from '@almadar/patterns';
|
|
43
43
|
import { OrbitalServerRuntime } from '@almadar/runtime/OrbitalServerRuntime';
|
|
44
|
-
import { InMemoryPersistence, StateMachineManager, collectDeclaredConfigDefaults, createServerEffectHandlers, EffectExecutor, createContextFromBindings } from '@almadar/runtime';
|
|
44
|
+
import { InMemoryPersistence, StateMachineManager, collectDeclaredConfigDefaults, createServerEffectHandlers, EffectExecutor, createContextFromBindings, createTickScheduler } from '@almadar/runtime';
|
|
45
45
|
|
|
46
46
|
var __defProp = Object.defineProperty;
|
|
47
47
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -3174,7 +3174,7 @@ var init_Typography = __esm({
|
|
|
3174
3174
|
}) => {
|
|
3175
3175
|
const variant = variantProp ?? (level ? `h${level}` : "body1");
|
|
3176
3176
|
const Component = as || defaultElements[variant];
|
|
3177
|
-
return
|
|
3177
|
+
return React104__default.createElement(
|
|
3178
3178
|
Component,
|
|
3179
3179
|
{
|
|
3180
3180
|
id,
|
|
@@ -3511,7 +3511,7 @@ var init_Box = __esm({
|
|
|
3511
3511
|
fixed: "fixed",
|
|
3512
3512
|
sticky: "sticky"
|
|
3513
3513
|
};
|
|
3514
|
-
Box =
|
|
3514
|
+
Box = React104__default.forwardRef(
|
|
3515
3515
|
({
|
|
3516
3516
|
padding,
|
|
3517
3517
|
paddingX,
|
|
@@ -3576,7 +3576,7 @@ var init_Box = __esm({
|
|
|
3576
3576
|
onPointerDown?.(e);
|
|
3577
3577
|
}, [hoverEvent, tapReveal, triggerProps, onPointerDown]);
|
|
3578
3578
|
const isClickable = action || onClick;
|
|
3579
|
-
return
|
|
3579
|
+
return React104__default.createElement(
|
|
3580
3580
|
Component,
|
|
3581
3581
|
{
|
|
3582
3582
|
ref,
|
|
@@ -3672,7 +3672,7 @@ var init_Stack = __esm({
|
|
|
3672
3672
|
};
|
|
3673
3673
|
const isHorizontal = direction === "horizontal";
|
|
3674
3674
|
const directionClass = responsive && isHorizontal ? reverse ? "flex-col-reverse md:flex-row-reverse" : "flex-col md:flex-row" : isHorizontal ? reverse ? "flex-row-reverse" : "flex-row" : reverse ? "flex-col-reverse" : "flex-col";
|
|
3675
|
-
return
|
|
3675
|
+
return React104__default.createElement(
|
|
3676
3676
|
Component,
|
|
3677
3677
|
{
|
|
3678
3678
|
className: cn(
|
|
@@ -4164,7 +4164,7 @@ var init_MiniStateMachine = __esm({
|
|
|
4164
4164
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
4165
4165
|
const tc = transitionCounts[s.name] ?? 0;
|
|
4166
4166
|
const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
|
|
4167
|
-
return /* @__PURE__ */ jsxs(
|
|
4167
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
4168
4168
|
/* @__PURE__ */ jsx(
|
|
4169
4169
|
AvlState,
|
|
4170
4170
|
{
|
|
@@ -4494,7 +4494,7 @@ function loadLib(key, importer) {
|
|
|
4494
4494
|
return p;
|
|
4495
4495
|
}
|
|
4496
4496
|
function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
|
|
4497
|
-
const Lazy =
|
|
4497
|
+
const Lazy = React104__default.lazy(async () => {
|
|
4498
4498
|
const lib = await loadLib(libKey, importer);
|
|
4499
4499
|
const Comp = pick(lib);
|
|
4500
4500
|
if (!Comp) {
|
|
@@ -4504,7 +4504,7 @@ function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
|
|
|
4504
4504
|
return { default: Comp };
|
|
4505
4505
|
});
|
|
4506
4506
|
const Wrapped = (props) => /* @__PURE__ */ jsx(
|
|
4507
|
-
|
|
4507
|
+
React104__default.Suspense,
|
|
4508
4508
|
{
|
|
4509
4509
|
fallback: /* @__PURE__ */ jsx(
|
|
4510
4510
|
"span",
|
|
@@ -5235,7 +5235,7 @@ var init_Icon = __esm({
|
|
|
5235
5235
|
const directIcon = typeof icon === "string" ? void 0 : icon;
|
|
5236
5236
|
const effectiveName = typeof icon === "string" ? icon : name;
|
|
5237
5237
|
const family = useIconFamily();
|
|
5238
|
-
const RenderedComponent =
|
|
5238
|
+
const RenderedComponent = React104__default.useMemo(() => {
|
|
5239
5239
|
if (directIcon) return null;
|
|
5240
5240
|
return effectiveName ? resolveIconForFamily(effectiveName, family) : null;
|
|
5241
5241
|
}, [directIcon, effectiveName, family]);
|
|
@@ -5297,7 +5297,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
5297
5297
|
const IconComp = value;
|
|
5298
5298
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
5299
5299
|
}
|
|
5300
|
-
if (
|
|
5300
|
+
if (React104__default.isValidElement(value)) {
|
|
5301
5301
|
return value;
|
|
5302
5302
|
}
|
|
5303
5303
|
if (typeof value === "object" && value !== null && isIconLike(value)) {
|
|
@@ -5373,7 +5373,7 @@ var init_Button = __esm({
|
|
|
5373
5373
|
md: "h-icon-default w-icon-default",
|
|
5374
5374
|
lg: "h-icon-default w-icon-default"
|
|
5375
5375
|
};
|
|
5376
|
-
Button =
|
|
5376
|
+
Button = React104__default.forwardRef(
|
|
5377
5377
|
({
|
|
5378
5378
|
className,
|
|
5379
5379
|
variant = "primary",
|
|
@@ -5441,7 +5441,7 @@ var Dialog;
|
|
|
5441
5441
|
var init_Dialog = __esm({
|
|
5442
5442
|
"components/core/atoms/Dialog.tsx"() {
|
|
5443
5443
|
init_cn();
|
|
5444
|
-
Dialog =
|
|
5444
|
+
Dialog = React104__default.forwardRef(
|
|
5445
5445
|
({
|
|
5446
5446
|
role = "dialog",
|
|
5447
5447
|
"aria-modal": ariaModal = true,
|
|
@@ -5936,7 +5936,7 @@ var init_Badge = __esm({
|
|
|
5936
5936
|
md: "px-2.5 py-1 text-sm",
|
|
5937
5937
|
lg: "px-3 py-1.5 text-base"
|
|
5938
5938
|
};
|
|
5939
|
-
Badge =
|
|
5939
|
+
Badge = React104__default.forwardRef(
|
|
5940
5940
|
({ className, variant = "default", size = "sm", amount, label, icon, iconAsset, children, onRemove, removeLabel, ...props }, ref) => {
|
|
5941
5941
|
const iconSizes3 = {
|
|
5942
5942
|
sm: "h-icon-default w-icon-default",
|
|
@@ -6273,7 +6273,7 @@ var init_SvgFlow = __esm({
|
|
|
6273
6273
|
width = 100,
|
|
6274
6274
|
height = 100
|
|
6275
6275
|
}) => {
|
|
6276
|
-
const markerId =
|
|
6276
|
+
const markerId = React104__default.useMemo(() => {
|
|
6277
6277
|
flowIdCounter += 1;
|
|
6278
6278
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
6279
6279
|
}, []);
|
|
@@ -6866,7 +6866,7 @@ var init_SvgRing = __esm({
|
|
|
6866
6866
|
width = 100,
|
|
6867
6867
|
height = 100
|
|
6868
6868
|
}) => {
|
|
6869
|
-
const gradientId =
|
|
6869
|
+
const gradientId = React104__default.useMemo(() => {
|
|
6870
6870
|
ringIdCounter += 1;
|
|
6871
6871
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
6872
6872
|
}, []);
|
|
@@ -7047,7 +7047,7 @@ var init_Input = __esm({
|
|
|
7047
7047
|
init_cn();
|
|
7048
7048
|
init_Icon();
|
|
7049
7049
|
init_useEventBus();
|
|
7050
|
-
Input =
|
|
7050
|
+
Input = React104__default.forwardRef(
|
|
7051
7051
|
({
|
|
7052
7052
|
className,
|
|
7053
7053
|
inputType,
|
|
@@ -7207,7 +7207,7 @@ var Label;
|
|
|
7207
7207
|
var init_Label = __esm({
|
|
7208
7208
|
"components/core/atoms/Label.tsx"() {
|
|
7209
7209
|
init_cn();
|
|
7210
|
-
Label =
|
|
7210
|
+
Label = React104__default.forwardRef(
|
|
7211
7211
|
({ className, required, children, ...props }, ref) => {
|
|
7212
7212
|
return /* @__PURE__ */ jsxs(
|
|
7213
7213
|
"label",
|
|
@@ -7234,7 +7234,7 @@ var init_Textarea = __esm({
|
|
|
7234
7234
|
"components/core/atoms/Textarea.tsx"() {
|
|
7235
7235
|
init_cn();
|
|
7236
7236
|
init_useEventBus();
|
|
7237
|
-
Textarea =
|
|
7237
|
+
Textarea = React104__default.forwardRef(
|
|
7238
7238
|
({ className, error, onChange, ...props }, ref) => {
|
|
7239
7239
|
const eventBus = useEventBus();
|
|
7240
7240
|
const handleChange = (e) => {
|
|
@@ -7473,7 +7473,7 @@ var init_Select = __esm({
|
|
|
7473
7473
|
init_cn();
|
|
7474
7474
|
init_Icon();
|
|
7475
7475
|
init_useEventBus();
|
|
7476
|
-
Select =
|
|
7476
|
+
Select = React104__default.forwardRef(
|
|
7477
7477
|
(props, _ref) => {
|
|
7478
7478
|
const { multiple, searchable, clearable } = props;
|
|
7479
7479
|
if (multiple || searchable || clearable) {
|
|
@@ -7490,7 +7490,7 @@ var init_Checkbox = __esm({
|
|
|
7490
7490
|
"components/core/atoms/Checkbox.tsx"() {
|
|
7491
7491
|
init_cn();
|
|
7492
7492
|
init_useEventBus();
|
|
7493
|
-
Checkbox =
|
|
7493
|
+
Checkbox = React104__default.forwardRef(
|
|
7494
7494
|
({ className, label, id, onChange, ...props }, ref) => {
|
|
7495
7495
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
7496
7496
|
const eventBus = useEventBus();
|
|
@@ -7544,7 +7544,7 @@ var init_Spinner = __esm({
|
|
|
7544
7544
|
md: "h-6 w-6",
|
|
7545
7545
|
lg: "h-8 w-8"
|
|
7546
7546
|
};
|
|
7547
|
-
Spinner =
|
|
7547
|
+
Spinner = React104__default.forwardRef(
|
|
7548
7548
|
({ className, size = "md", overlay, ...props }, ref) => {
|
|
7549
7549
|
if (overlay) {
|
|
7550
7550
|
return /* @__PURE__ */ jsx(
|
|
@@ -7634,7 +7634,7 @@ var init_Card = __esm({
|
|
|
7634
7634
|
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
7635
7635
|
"tile-image-first": "p-0 overflow-hidden"
|
|
7636
7636
|
};
|
|
7637
|
-
Card =
|
|
7637
|
+
Card = React104__default.forwardRef(
|
|
7638
7638
|
({
|
|
7639
7639
|
className,
|
|
7640
7640
|
variant = "bordered",
|
|
@@ -7682,9 +7682,9 @@ var init_Card = __esm({
|
|
|
7682
7682
|
}
|
|
7683
7683
|
);
|
|
7684
7684
|
Card.displayName = "Card";
|
|
7685
|
-
CardHeader =
|
|
7685
|
+
CardHeader = React104__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
7686
7686
|
CardHeader.displayName = "CardHeader";
|
|
7687
|
-
CardTitle =
|
|
7687
|
+
CardTitle = React104__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7688
7688
|
"h3",
|
|
7689
7689
|
{
|
|
7690
7690
|
ref,
|
|
@@ -7697,11 +7697,11 @@ var init_Card = __esm({
|
|
|
7697
7697
|
}
|
|
7698
7698
|
));
|
|
7699
7699
|
CardTitle.displayName = "CardTitle";
|
|
7700
|
-
CardContent =
|
|
7700
|
+
CardContent = React104__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
7701
7701
|
CardContent.displayName = "CardContent";
|
|
7702
7702
|
CardBody = CardContent;
|
|
7703
7703
|
CardBody.displayName = "CardBody";
|
|
7704
|
-
CardFooter =
|
|
7704
|
+
CardFooter = React104__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
7705
7705
|
"div",
|
|
7706
7706
|
{
|
|
7707
7707
|
ref,
|
|
@@ -7756,7 +7756,7 @@ var init_FilterPill = __esm({
|
|
|
7756
7756
|
md: "w-3.5 h-3.5",
|
|
7757
7757
|
lg: "w-4 h-4"
|
|
7758
7758
|
};
|
|
7759
|
-
FilterPill =
|
|
7759
|
+
FilterPill = React104__default.forwardRef(
|
|
7760
7760
|
({
|
|
7761
7761
|
className,
|
|
7762
7762
|
variant = "default",
|
|
@@ -7885,8 +7885,8 @@ var init_Avatar = __esm({
|
|
|
7885
7885
|
actionPayload
|
|
7886
7886
|
}) => {
|
|
7887
7887
|
const eventBus = useEventBus();
|
|
7888
|
-
const [imgFailed, setImgFailed] =
|
|
7889
|
-
|
|
7888
|
+
const [imgFailed, setImgFailed] = React104__default.useState(false);
|
|
7889
|
+
React104__default.useEffect(() => {
|
|
7890
7890
|
setImgFailed(false);
|
|
7891
7891
|
}, [src]);
|
|
7892
7892
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
@@ -7999,7 +7999,7 @@ var init_Center = __esm({
|
|
|
7999
7999
|
as: Component = "div"
|
|
8000
8000
|
}) => {
|
|
8001
8001
|
const mergedStyle = minHeight ? { minHeight, ...style } : style;
|
|
8002
|
-
return
|
|
8002
|
+
return React104__default.createElement(Component, {
|
|
8003
8003
|
className: cn(
|
|
8004
8004
|
inline ? "inline-flex" : "flex",
|
|
8005
8005
|
horizontal && "justify-center",
|
|
@@ -8267,7 +8267,7 @@ var init_Radio = __esm({
|
|
|
8267
8267
|
md: "w-2.5 h-2.5",
|
|
8268
8268
|
lg: "w-3 h-3"
|
|
8269
8269
|
};
|
|
8270
|
-
Radio =
|
|
8270
|
+
Radio = React104__default.forwardRef(
|
|
8271
8271
|
({
|
|
8272
8272
|
label,
|
|
8273
8273
|
helperText,
|
|
@@ -8284,12 +8284,12 @@ var init_Radio = __esm({
|
|
|
8284
8284
|
onChange,
|
|
8285
8285
|
...props
|
|
8286
8286
|
}, ref) => {
|
|
8287
|
-
const reactId =
|
|
8287
|
+
const reactId = React104__default.useId();
|
|
8288
8288
|
const baseId = id || `radio-${reactId}`;
|
|
8289
8289
|
const hasError = !!error;
|
|
8290
8290
|
const eventBus = useEventBus();
|
|
8291
|
-
const [selected, setSelected] =
|
|
8292
|
-
|
|
8291
|
+
const [selected, setSelected] = React104__default.useState(value);
|
|
8292
|
+
React104__default.useEffect(() => {
|
|
8293
8293
|
if (value !== void 0) setSelected(value);
|
|
8294
8294
|
}, [value]);
|
|
8295
8295
|
const pick = (next, e) => {
|
|
@@ -8471,7 +8471,7 @@ var init_Switch = __esm({
|
|
|
8471
8471
|
"components/core/atoms/Switch.tsx"() {
|
|
8472
8472
|
"use client";
|
|
8473
8473
|
init_cn();
|
|
8474
|
-
Switch =
|
|
8474
|
+
Switch = React104.forwardRef(
|
|
8475
8475
|
({
|
|
8476
8476
|
checked,
|
|
8477
8477
|
defaultChecked = false,
|
|
@@ -8482,10 +8482,10 @@ var init_Switch = __esm({
|
|
|
8482
8482
|
name,
|
|
8483
8483
|
className
|
|
8484
8484
|
}, ref) => {
|
|
8485
|
-
const [isChecked, setIsChecked] =
|
|
8485
|
+
const [isChecked, setIsChecked] = React104.useState(
|
|
8486
8486
|
checked !== void 0 ? checked : defaultChecked
|
|
8487
8487
|
);
|
|
8488
|
-
|
|
8488
|
+
React104.useEffect(() => {
|
|
8489
8489
|
if (checked !== void 0) {
|
|
8490
8490
|
setIsChecked(checked);
|
|
8491
8491
|
}
|
|
@@ -8763,7 +8763,7 @@ var Aside;
|
|
|
8763
8763
|
var init_Aside = __esm({
|
|
8764
8764
|
"components/core/atoms/Aside.tsx"() {
|
|
8765
8765
|
init_cn();
|
|
8766
|
-
Aside =
|
|
8766
|
+
Aside = React104__default.forwardRef(
|
|
8767
8767
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
8768
8768
|
);
|
|
8769
8769
|
Aside.displayName = "Aside";
|
|
@@ -8842,9 +8842,9 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8842
8842
|
className
|
|
8843
8843
|
}) => {
|
|
8844
8844
|
const { t } = useTranslate();
|
|
8845
|
-
const [isVisible, setIsVisible] =
|
|
8846
|
-
const timeoutRef =
|
|
8847
|
-
const triggerRef =
|
|
8845
|
+
const [isVisible, setIsVisible] = React104__default.useState(false);
|
|
8846
|
+
const timeoutRef = React104__default.useRef(null);
|
|
8847
|
+
const triggerRef = React104__default.useRef(null);
|
|
8848
8848
|
const handleMouseEnter = () => {
|
|
8849
8849
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8850
8850
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -8855,7 +8855,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
8855
8855
|
};
|
|
8856
8856
|
const { revealed, triggerProps } = useTapReveal({ refs: [triggerRef] });
|
|
8857
8857
|
const open = isVisible || revealed;
|
|
8858
|
-
|
|
8858
|
+
React104__default.useEffect(() => {
|
|
8859
8859
|
return () => {
|
|
8860
8860
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
8861
8861
|
};
|
|
@@ -9065,7 +9065,7 @@ var init_StatusDot = __esm({
|
|
|
9065
9065
|
md: "w-2.5 h-2.5",
|
|
9066
9066
|
lg: "w-3 h-3"
|
|
9067
9067
|
};
|
|
9068
|
-
StatusDot =
|
|
9068
|
+
StatusDot = React104__default.forwardRef(
|
|
9069
9069
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
9070
9070
|
return /* @__PURE__ */ jsx(
|
|
9071
9071
|
"span",
|
|
@@ -9119,7 +9119,7 @@ var init_TrendIndicator = __esm({
|
|
|
9119
9119
|
down: "trending-down",
|
|
9120
9120
|
flat: "arrow-right"
|
|
9121
9121
|
};
|
|
9122
|
-
TrendIndicator =
|
|
9122
|
+
TrendIndicator = React104__default.forwardRef(
|
|
9123
9123
|
({
|
|
9124
9124
|
className,
|
|
9125
9125
|
value,
|
|
@@ -9186,7 +9186,7 @@ var init_RangeSlider = __esm({
|
|
|
9186
9186
|
md: "w-4 h-4",
|
|
9187
9187
|
lg: "w-5 h-5"
|
|
9188
9188
|
};
|
|
9189
|
-
RangeSlider =
|
|
9189
|
+
RangeSlider = React104__default.forwardRef(
|
|
9190
9190
|
({
|
|
9191
9191
|
className,
|
|
9192
9192
|
min = 0,
|
|
@@ -9780,7 +9780,7 @@ var init_ContentSection = __esm({
|
|
|
9780
9780
|
md: "py-16",
|
|
9781
9781
|
lg: "py-24"
|
|
9782
9782
|
};
|
|
9783
|
-
ContentSection =
|
|
9783
|
+
ContentSection = React104__default.forwardRef(
|
|
9784
9784
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
9785
9785
|
return /* @__PURE__ */ jsx(
|
|
9786
9786
|
Box,
|
|
@@ -10314,7 +10314,7 @@ var init_AnimatedReveal = __esm({
|
|
|
10314
10314
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
10315
10315
|
"none": {}
|
|
10316
10316
|
};
|
|
10317
|
-
AnimatedReveal =
|
|
10317
|
+
AnimatedReveal = React104__default.forwardRef(
|
|
10318
10318
|
({
|
|
10319
10319
|
trigger = "scroll",
|
|
10320
10320
|
animation = "fade-up",
|
|
@@ -10474,7 +10474,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10474
10474
|
"components/marketing/atoms/AnimatedGraphic.tsx"() {
|
|
10475
10475
|
"use client";
|
|
10476
10476
|
init_cn();
|
|
10477
|
-
AnimatedGraphic =
|
|
10477
|
+
AnimatedGraphic = React104__default.forwardRef(
|
|
10478
10478
|
({
|
|
10479
10479
|
src,
|
|
10480
10480
|
svgContent,
|
|
@@ -10497,7 +10497,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
10497
10497
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
10498
10498
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
10499
10499
|
const prevAnimateRef = useRef(animate);
|
|
10500
|
-
const setRef =
|
|
10500
|
+
const setRef = React104__default.useCallback(
|
|
10501
10501
|
(node) => {
|
|
10502
10502
|
containerRef.current = node;
|
|
10503
10503
|
if (typeof ref === "function") ref(node);
|
|
@@ -11099,12 +11099,13 @@ function GameCard({
|
|
|
11099
11099
|
selected = false,
|
|
11100
11100
|
disabled = false,
|
|
11101
11101
|
size = "md",
|
|
11102
|
+
animState = "idle",
|
|
11102
11103
|
onClick,
|
|
11103
11104
|
clickEvent,
|
|
11104
11105
|
className
|
|
11105
11106
|
}) {
|
|
11106
11107
|
const eventBus = useEventBus();
|
|
11107
|
-
const handleClick =
|
|
11108
|
+
const handleClick = React104.useCallback(() => {
|
|
11108
11109
|
if (disabled) return;
|
|
11109
11110
|
onClick?.(id);
|
|
11110
11111
|
if (clickEvent) eventBus.emit(`UI:${clickEvent}`, { cardId: id });
|
|
@@ -11126,6 +11127,7 @@ function GameCard({
|
|
|
11126
11127
|
cardSizeMap[size],
|
|
11127
11128
|
disabled ? "border-border opacity-50 cursor-not-allowed" : "border-accent hover:brightness-125 hover:-translate-y-1 cursor-pointer",
|
|
11128
11129
|
selected && "ring-2 ring-foreground ring-offset-1 ring-offset-background -translate-y-1",
|
|
11130
|
+
ANIM_STATE_CLASS[animState],
|
|
11129
11131
|
className
|
|
11130
11132
|
),
|
|
11131
11133
|
children: [
|
|
@@ -11158,7 +11160,7 @@ function GameCard({
|
|
|
11158
11160
|
}
|
|
11159
11161
|
);
|
|
11160
11162
|
}
|
|
11161
|
-
var cardSizeMap, artPxMap;
|
|
11163
|
+
var cardSizeMap, artPxMap, ANIM_STATE_CLASS;
|
|
11162
11164
|
var init_GameCard = __esm({
|
|
11163
11165
|
"components/game/2d/atoms/GameCard.tsx"() {
|
|
11164
11166
|
"use client";
|
|
@@ -11174,6 +11176,12 @@ var init_GameCard = __esm({
|
|
|
11174
11176
|
lg: "w-24 h-36"
|
|
11175
11177
|
};
|
|
11176
11178
|
artPxMap = { sm: 40, md: 52, lg: 64 };
|
|
11179
|
+
ANIM_STATE_CLASS = {
|
|
11180
|
+
idle: "",
|
|
11181
|
+
drawn: "scale-105",
|
|
11182
|
+
played: "-translate-y-2 opacity-80",
|
|
11183
|
+
flipped: "scale-x-0"
|
|
11184
|
+
};
|
|
11177
11185
|
GameCard.displayName = "GameCard";
|
|
11178
11186
|
}
|
|
11179
11187
|
});
|
|
@@ -11386,9 +11394,9 @@ function ControlButton({
|
|
|
11386
11394
|
className
|
|
11387
11395
|
}) {
|
|
11388
11396
|
const eventBus = useEventBus();
|
|
11389
|
-
const [isPressed, setIsPressed] =
|
|
11397
|
+
const [isPressed, setIsPressed] = React104.useState(false);
|
|
11390
11398
|
const actualPressed = pressed ?? isPressed;
|
|
11391
|
-
const handlePointerDown =
|
|
11399
|
+
const handlePointerDown = React104.useCallback(
|
|
11392
11400
|
(e) => {
|
|
11393
11401
|
e.preventDefault();
|
|
11394
11402
|
if (disabled) return;
|
|
@@ -11398,7 +11406,7 @@ function ControlButton({
|
|
|
11398
11406
|
},
|
|
11399
11407
|
[disabled, pressEvent, eventBus, onPress]
|
|
11400
11408
|
);
|
|
11401
|
-
const handlePointerUp =
|
|
11409
|
+
const handlePointerUp = React104.useCallback(
|
|
11402
11410
|
(e) => {
|
|
11403
11411
|
e.preventDefault();
|
|
11404
11412
|
if (disabled) return;
|
|
@@ -11408,7 +11416,7 @@ function ControlButton({
|
|
|
11408
11416
|
},
|
|
11409
11417
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
11410
11418
|
);
|
|
11411
|
-
const handlePointerLeave =
|
|
11419
|
+
const handlePointerLeave = React104.useCallback(
|
|
11412
11420
|
(e) => {
|
|
11413
11421
|
if (isPressed) {
|
|
11414
11422
|
setIsPressed(false);
|
|
@@ -12214,8 +12222,11 @@ function DialogueBubble({
|
|
|
12214
12222
|
text = "The dungeon awaits. Choose your path wisely.",
|
|
12215
12223
|
portrait = DEFAULT_PORTRAIT,
|
|
12216
12224
|
position = "bottom",
|
|
12225
|
+
mood = "neutral",
|
|
12226
|
+
revealedChars,
|
|
12217
12227
|
className
|
|
12218
12228
|
}) {
|
|
12229
|
+
const visibleText = revealedChars === void 0 ? text : text.slice(0, revealedChars);
|
|
12219
12230
|
return /* @__PURE__ */ jsxs(
|
|
12220
12231
|
Box,
|
|
12221
12232
|
{
|
|
@@ -12225,16 +12236,16 @@ function DialogueBubble({
|
|
|
12225
12236
|
className
|
|
12226
12237
|
),
|
|
12227
12238
|
children: [
|
|
12228
|
-
portrait && /* @__PURE__ */ jsx(Box, { className: "flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2
|
|
12239
|
+
portrait && /* @__PURE__ */ jsx(Box, { className: cn("flex-shrink-0 w-12 h-12 rounded-full overflow-hidden border-2 transition-colors duration-300", MOOD_RING_CLASS[mood]), children: /* @__PURE__ */ jsx(GameIcon, { assetUrl: portrait, icon: "image", size: 48, alt: speaker ?? "speaker", className: "w-full h-full object-cover" }) }),
|
|
12229
12240
|
/* @__PURE__ */ jsxs(Box, { className: "flex flex-col gap-1 min-w-0", children: [
|
|
12230
12241
|
speaker && /* @__PURE__ */ jsx(Typography, { as: "span", className: "text-sm font-bold text-warning", children: speaker }),
|
|
12231
|
-
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-sm text-foreground leading-relaxed", children:
|
|
12242
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", className: "text-sm text-foreground leading-relaxed", children: visibleText })
|
|
12232
12243
|
] })
|
|
12233
12244
|
]
|
|
12234
12245
|
}
|
|
12235
12246
|
);
|
|
12236
12247
|
}
|
|
12237
|
-
var DEFAULT_PORTRAIT;
|
|
12248
|
+
var DEFAULT_PORTRAIT, MOOD_RING_CLASS;
|
|
12238
12249
|
var init_DialogueBubble = __esm({
|
|
12239
12250
|
"components/game/2d/atoms/DialogueBubble.tsx"() {
|
|
12240
12251
|
init_cn();
|
|
@@ -12246,6 +12257,12 @@ var init_DialogueBubble = __esm({
|
|
|
12246
12257
|
role: "effect",
|
|
12247
12258
|
category: "character"
|
|
12248
12259
|
};
|
|
12260
|
+
MOOD_RING_CLASS = {
|
|
12261
|
+
neutral: "border-warning/60",
|
|
12262
|
+
happy: "border-success/70",
|
|
12263
|
+
concerned: "border-info/70",
|
|
12264
|
+
angry: "border-error/70"
|
|
12265
|
+
};
|
|
12249
12266
|
DialogueBubble.displayName = "DialogueBubble";
|
|
12250
12267
|
}
|
|
12251
12268
|
});
|
|
@@ -12427,8 +12444,8 @@ function MiniMap({
|
|
|
12427
12444
|
tileAssets,
|
|
12428
12445
|
unitAssets
|
|
12429
12446
|
}) {
|
|
12430
|
-
const canvasRef =
|
|
12431
|
-
const imgCacheRef =
|
|
12447
|
+
const canvasRef = React104.useRef(null);
|
|
12448
|
+
const imgCacheRef = React104.useRef(/* @__PURE__ */ new Map());
|
|
12432
12449
|
function loadImg(url) {
|
|
12433
12450
|
const cached = imgCacheRef.current.get(url);
|
|
12434
12451
|
if (cached) return cached.complete ? cached : null;
|
|
@@ -12443,7 +12460,7 @@ function MiniMap({
|
|
|
12443
12460
|
imgCacheRef.current.set(url, img);
|
|
12444
12461
|
return null;
|
|
12445
12462
|
}
|
|
12446
|
-
|
|
12463
|
+
React104.useEffect(() => {
|
|
12447
12464
|
const canvas = canvasRef.current;
|
|
12448
12465
|
if (!canvas) return;
|
|
12449
12466
|
const ctx = canvas.getContext("2d");
|
|
@@ -12578,8 +12595,8 @@ function ControlGrid({
|
|
|
12578
12595
|
className
|
|
12579
12596
|
}) {
|
|
12580
12597
|
const eventBus = useEventBus();
|
|
12581
|
-
const [active, setActive] =
|
|
12582
|
-
const handlePress =
|
|
12598
|
+
const [active, setActive] = React104.useState(/* @__PURE__ */ new Set());
|
|
12599
|
+
const handlePress = React104.useCallback(
|
|
12583
12600
|
(id) => {
|
|
12584
12601
|
setActive((prev) => new Set(prev).add(id));
|
|
12585
12602
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -12593,7 +12610,7 @@ function ControlGrid({
|
|
|
12593
12610
|
},
|
|
12594
12611
|
[kind, actionEvent, directionEvent, directionEvents, eventBus, onAction, onDirection]
|
|
12595
12612
|
);
|
|
12596
|
-
const handleRelease =
|
|
12613
|
+
const handleRelease = React104.useCallback(
|
|
12597
12614
|
(id) => {
|
|
12598
12615
|
setActive((prev) => {
|
|
12599
12616
|
const next = new Set(prev);
|
|
@@ -12851,7 +12868,7 @@ function InventoryGrid({
|
|
|
12851
12868
|
const eventBus = useEventBus();
|
|
12852
12869
|
const slotCount = totalSlots ?? items.length;
|
|
12853
12870
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
12854
|
-
const handleSelect =
|
|
12871
|
+
const handleSelect = React104.useCallback(
|
|
12855
12872
|
(id) => {
|
|
12856
12873
|
onSelect?.(id);
|
|
12857
12874
|
if (selectEvent) {
|
|
@@ -13068,7 +13085,7 @@ function GameMenu({
|
|
|
13068
13085
|
}) {
|
|
13069
13086
|
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
13070
13087
|
const eventBus = useEventBus();
|
|
13071
|
-
const handleOptionClick =
|
|
13088
|
+
const handleOptionClick = React104.useCallback(
|
|
13072
13089
|
(option) => {
|
|
13073
13090
|
if (option.event) {
|
|
13074
13091
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -13294,7 +13311,7 @@ function StateGraph({
|
|
|
13294
13311
|
}) {
|
|
13295
13312
|
const eventBus = useEventBus();
|
|
13296
13313
|
const nodes = states ?? [];
|
|
13297
|
-
const positions =
|
|
13314
|
+
const positions = React104.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
|
|
13298
13315
|
return /* @__PURE__ */ jsxs(
|
|
13299
13316
|
Box,
|
|
13300
13317
|
{
|
|
@@ -14060,6 +14077,7 @@ function Canvas2D({
|
|
|
14060
14077
|
unitScale = 1,
|
|
14061
14078
|
showMinimap = true,
|
|
14062
14079
|
animate,
|
|
14080
|
+
interpolateUnits = false,
|
|
14063
14081
|
// Tuning
|
|
14064
14082
|
debug: debug2 = false,
|
|
14065
14083
|
spriteHeightRatio = 1.5,
|
|
@@ -14094,6 +14112,8 @@ function Canvas2D({
|
|
|
14094
14112
|
const containerRef = useRef(null);
|
|
14095
14113
|
const lerpRafRef = useRef(0);
|
|
14096
14114
|
const animRafRef = useRef(0);
|
|
14115
|
+
const unitInterp = useRenderInterpolation();
|
|
14116
|
+
const interpolatedUnitPositionsRef = useRef(/* @__PURE__ */ new Map());
|
|
14097
14117
|
const [viewportSize, setViewportSize] = useState({ width: 800, height: 600 });
|
|
14098
14118
|
useEffect(() => {
|
|
14099
14119
|
const el = containerRef.current;
|
|
@@ -14408,7 +14428,8 @@ function Canvas2D({
|
|
|
14408
14428
|
return depthA !== depthB ? depthA - depthB : a.position.y - b.position.y;
|
|
14409
14429
|
});
|
|
14410
14430
|
for (const unit of sortedUnits) {
|
|
14411
|
-
const
|
|
14431
|
+
const interpolated = interpolateUnits ? interpolatedUnitPositionsRef.current.get(unit.id) : void 0;
|
|
14432
|
+
const pos = project(interpolated?.x ?? unit.position.x, interpolated?.y ?? unit.position.y, baseOffsetX);
|
|
14412
14433
|
if (pos.x + scaledTileWidth < visLeft || pos.x > visRight || pos.y + scaledTileHeight < visTop || pos.y > visBottom) {
|
|
14413
14434
|
continue;
|
|
14414
14435
|
}
|
|
@@ -14560,7 +14581,8 @@ function Canvas2D({
|
|
|
14560
14581
|
unitScale,
|
|
14561
14582
|
assetManifest,
|
|
14562
14583
|
spriteHeightRatio,
|
|
14563
|
-
spriteMaxWidthRatio
|
|
14584
|
+
spriteMaxWidthRatio,
|
|
14585
|
+
interpolateUnits
|
|
14564
14586
|
]);
|
|
14565
14587
|
useEffect(() => {
|
|
14566
14588
|
if (camera === "fixed") return;
|
|
@@ -14575,6 +14597,19 @@ function Canvas2D({
|
|
|
14575
14597
|
y: centerY - viewportSize.height / 2
|
|
14576
14598
|
};
|
|
14577
14599
|
}, [camera, selectedUnitId, units, project, baseOffsetX, scaledTileWidth, scaledDiamondTopY, scaledFloorHeight, viewportSize, targetCameraRef]);
|
|
14600
|
+
useEffect(() => {
|
|
14601
|
+
if (isSide || !interpolateUnits) return;
|
|
14602
|
+
unitInterp.onSnapshot(
|
|
14603
|
+
units.filter((u) => !!u.position).map((u) => ({ id: u.id, x: u.position.x, y: u.position.y }))
|
|
14604
|
+
);
|
|
14605
|
+
}, [isSide, interpolateUnits, units, unitInterp]);
|
|
14606
|
+
useEffect(() => {
|
|
14607
|
+
if (isSide || !interpolateUnits) return;
|
|
14608
|
+
return unitInterp.startLoop((positions) => {
|
|
14609
|
+
interpolatedUnitPositionsRef.current = positions;
|
|
14610
|
+
draw();
|
|
14611
|
+
});
|
|
14612
|
+
}, [isSide, interpolateUnits, unitInterp, draw]);
|
|
14578
14613
|
useEffect(() => {
|
|
14579
14614
|
if (isSide) return;
|
|
14580
14615
|
draw();
|
|
@@ -14950,7 +14985,7 @@ function LinearView({
|
|
|
14950
14985
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
14951
14986
|
const isDone = i < currentIdx;
|
|
14952
14987
|
const isCurrent = i === currentIdx;
|
|
14953
|
-
return /* @__PURE__ */ jsxs(
|
|
14988
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
14954
14989
|
i > 0 && /* @__PURE__ */ jsx(
|
|
14955
14990
|
Typography,
|
|
14956
14991
|
{
|
|
@@ -15464,6 +15499,8 @@ function SequenceBar({
|
|
|
15464
15499
|
maxSlots,
|
|
15465
15500
|
onSlotDrop,
|
|
15466
15501
|
onSlotRemove,
|
|
15502
|
+
slotDropEvent,
|
|
15503
|
+
slotRemoveEvent,
|
|
15467
15504
|
playing = false,
|
|
15468
15505
|
currentStep = -1,
|
|
15469
15506
|
categoryColors,
|
|
@@ -15471,16 +15508,19 @@ function SequenceBar({
|
|
|
15471
15508
|
size = "lg",
|
|
15472
15509
|
className
|
|
15473
15510
|
}) {
|
|
15511
|
+
const { emit } = useEventBus();
|
|
15474
15512
|
const handleDrop = useCallback((index) => (item) => {
|
|
15475
15513
|
if (playing) return;
|
|
15476
|
-
|
|
15477
|
-
|
|
15514
|
+
if (slotDropEvent) emit(`UI:${slotDropEvent}`, { slotNumber: index, itemId: item.id });
|
|
15515
|
+
else onSlotDrop?.(index, item);
|
|
15516
|
+
}, [emit, slotDropEvent, onSlotDrop, playing]);
|
|
15478
15517
|
const handleRemove = useCallback((index) => () => {
|
|
15479
15518
|
if (playing) return;
|
|
15480
|
-
|
|
15481
|
-
|
|
15519
|
+
if (slotRemoveEvent) emit(`UI:${slotRemoveEvent}`, { slotNumber: index });
|
|
15520
|
+
else onSlotRemove?.(index);
|
|
15521
|
+
}, [emit, slotRemoveEvent, onSlotRemove, playing]);
|
|
15482
15522
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
15483
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
15523
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
15484
15524
|
i > 0 && /* @__PURE__ */ jsx(
|
|
15485
15525
|
Typography,
|
|
15486
15526
|
{
|
|
@@ -15510,9 +15550,10 @@ function SequenceBar({
|
|
|
15510
15550
|
] }, i)) });
|
|
15511
15551
|
}
|
|
15512
15552
|
var init_SequenceBar = __esm({
|
|
15513
|
-
"components/game/2d/
|
|
15553
|
+
"components/game/2d/molecules/SequenceBar.tsx"() {
|
|
15514
15554
|
init_atoms();
|
|
15515
15555
|
init_cn();
|
|
15556
|
+
init_useEventBus();
|
|
15516
15557
|
init_TraitSlot();
|
|
15517
15558
|
SequenceBar.displayName = "SequenceBar";
|
|
15518
15559
|
}
|
|
@@ -17517,227 +17558,6 @@ var init_NegotiatorBoard = __esm({
|
|
|
17517
17558
|
NegotiatorBoard.displayName = "NegotiatorBoard";
|
|
17518
17559
|
}
|
|
17519
17560
|
});
|
|
17520
|
-
|
|
17521
|
-
// components/game/shared/lib/mechanics.ts
|
|
17522
|
-
var projectileMotion, pendulum, springOscillator;
|
|
17523
|
-
var init_mechanics = __esm({
|
|
17524
|
-
"components/game/shared/lib/mechanics.ts"() {
|
|
17525
|
-
projectileMotion = {
|
|
17526
|
-
id: "mechanics-projectile",
|
|
17527
|
-
name: "Projectile Motion",
|
|
17528
|
-
description: "Launch a ball and observe parabolic trajectory under gravity.",
|
|
17529
|
-
domain: "natural",
|
|
17530
|
-
gravity: { x: 0, y: 9.81 },
|
|
17531
|
-
bodies: [
|
|
17532
|
-
{ id: "ball", x: 50, y: 350, vx: 80, vy: -120, mass: 1, radius: 10, color: "#e94560", fixed: false },
|
|
17533
|
-
{ id: "ground", x: 300, y: 390, vx: 0, vy: 0, mass: 1e3, radius: 400, color: "#333", fixed: true }
|
|
17534
|
-
],
|
|
17535
|
-
showVelocity: true,
|
|
17536
|
-
parameters: {
|
|
17537
|
-
angle: { value: 45, min: 0, max: 90, step: 1, label: "Launch angle (deg)" },
|
|
17538
|
-
velocity: { value: 100, min: 10, max: 200, step: 5, label: "Initial velocity (m/s)" },
|
|
17539
|
-
gravity: { value: 9.81, min: 0, max: 20, step: 0.1, label: "Gravity (m/s\xB2)" }
|
|
17540
|
-
}
|
|
17541
|
-
};
|
|
17542
|
-
pendulum = {
|
|
17543
|
-
id: "mechanics-pendulum",
|
|
17544
|
-
name: "Simple Pendulum",
|
|
17545
|
-
description: "A mass on a string swinging under gravity.",
|
|
17546
|
-
domain: "natural",
|
|
17547
|
-
gravity: { x: 0, y: 9.81 },
|
|
17548
|
-
bodies: [
|
|
17549
|
-
{ id: "pivot", x: 300, y: 50, vx: 0, vy: 0, mass: 1e3, radius: 5, color: "#888", fixed: true },
|
|
17550
|
-
{ id: "bob", x: 400, y: 200, vx: 0, vy: 0, mass: 5, radius: 15, color: "#e94560", fixed: false }
|
|
17551
|
-
],
|
|
17552
|
-
constraints: [{ bodyA: 0, bodyB: 1, length: 180, stiffness: 1 }],
|
|
17553
|
-
parameters: {
|
|
17554
|
-
length: { value: 180, min: 50, max: 300, step: 10, label: "String length (px)" },
|
|
17555
|
-
mass: { value: 5, min: 1, max: 20, step: 0.5, label: "Mass (kg)" },
|
|
17556
|
-
gravity: { value: 9.81, min: 0, max: 20, step: 0.1, label: "Gravity (m/s\xB2)" }
|
|
17557
|
-
}
|
|
17558
|
-
};
|
|
17559
|
-
springOscillator = {
|
|
17560
|
-
id: "mechanics-spring",
|
|
17561
|
-
name: "Spring Oscillator",
|
|
17562
|
-
description: "A mass bouncing on a spring \u2014 simple harmonic motion.",
|
|
17563
|
-
domain: "natural",
|
|
17564
|
-
gravity: { x: 0, y: 0 },
|
|
17565
|
-
bodies: [
|
|
17566
|
-
{ id: "anchor", x: 300, y: 50, vx: 0, vy: 0, mass: 1e3, radius: 8, color: "#888", fixed: true },
|
|
17567
|
-
{ id: "mass", x: 300, y: 250, vx: 0, vy: 0, mass: 2, radius: 20, color: "#0f3460", fixed: false }
|
|
17568
|
-
],
|
|
17569
|
-
constraints: [{ bodyA: 0, bodyB: 1, length: 150, stiffness: 0.5 }],
|
|
17570
|
-
parameters: {
|
|
17571
|
-
stiffness: { value: 0.5, min: 0.1, max: 2, step: 0.05, label: "Spring stiffness (k)" },
|
|
17572
|
-
mass: { value: 2, min: 0.5, max: 10, step: 0.5, label: "Mass (kg)" },
|
|
17573
|
-
damping: { value: 0, min: 0, max: 0.5, step: 0.01, label: "Damping" }
|
|
17574
|
-
}
|
|
17575
|
-
};
|
|
17576
|
-
}
|
|
17577
|
-
});
|
|
17578
|
-
|
|
17579
|
-
// components/game/shared/lib/physicsPresets.ts
|
|
17580
|
-
var init_physicsPresets = __esm({
|
|
17581
|
-
"components/game/shared/lib/physicsPresets.ts"() {
|
|
17582
|
-
init_mechanics();
|
|
17583
|
-
}
|
|
17584
|
-
});
|
|
17585
|
-
function resolvePreset(preset) {
|
|
17586
|
-
if (typeof preset !== "string") return preset;
|
|
17587
|
-
return PRESET_BY_ID[preset] ?? projectileMotion;
|
|
17588
|
-
}
|
|
17589
|
-
function SimulationCanvas({
|
|
17590
|
-
preset: presetProp,
|
|
17591
|
-
width = 600,
|
|
17592
|
-
height = 400,
|
|
17593
|
-
bodies: externalBodies,
|
|
17594
|
-
className
|
|
17595
|
-
}) {
|
|
17596
|
-
const preset = useMemo(() => resolvePreset(presetProp), [presetProp]);
|
|
17597
|
-
const canvasRef = useRef(null);
|
|
17598
|
-
const bodiesRef = useRef(structuredClone(preset.bodies));
|
|
17599
|
-
const interp = useRenderInterpolation();
|
|
17600
|
-
useEffect(() => {
|
|
17601
|
-
bodiesRef.current = structuredClone(preset.bodies);
|
|
17602
|
-
}, [preset]);
|
|
17603
|
-
const draw = useCallback(() => {
|
|
17604
|
-
const canvas = canvasRef.current;
|
|
17605
|
-
if (!canvas) return;
|
|
17606
|
-
const ctx = canvas.getContext("2d");
|
|
17607
|
-
if (!ctx) return;
|
|
17608
|
-
const bodies = bodiesRef.current;
|
|
17609
|
-
ctx.clearRect(0, 0, width, height);
|
|
17610
|
-
ctx.fillStyle = preset.backgroundColor ?? "#1a1a2e";
|
|
17611
|
-
ctx.fillRect(0, 0, width, height);
|
|
17612
|
-
if (preset.constraints) {
|
|
17613
|
-
for (const c of preset.constraints) {
|
|
17614
|
-
const a = bodies[c.bodyA];
|
|
17615
|
-
const b = bodies[c.bodyB];
|
|
17616
|
-
if (a && b) {
|
|
17617
|
-
ctx.beginPath();
|
|
17618
|
-
ctx.moveTo(a.x, a.y);
|
|
17619
|
-
ctx.lineTo(b.x, b.y);
|
|
17620
|
-
ctx.strokeStyle = "#533483";
|
|
17621
|
-
ctx.lineWidth = 1;
|
|
17622
|
-
ctx.setLineDash([4, 4]);
|
|
17623
|
-
ctx.stroke();
|
|
17624
|
-
ctx.setLineDash([]);
|
|
17625
|
-
}
|
|
17626
|
-
}
|
|
17627
|
-
}
|
|
17628
|
-
for (const body of bodies) {
|
|
17629
|
-
ctx.beginPath();
|
|
17630
|
-
ctx.arc(body.x, body.y, body.radius, 0, Math.PI * 2);
|
|
17631
|
-
ctx.fillStyle = body.color ?? "#e94560";
|
|
17632
|
-
ctx.fill();
|
|
17633
|
-
if (preset.showVelocity) {
|
|
17634
|
-
ctx.beginPath();
|
|
17635
|
-
ctx.moveTo(body.x, body.y);
|
|
17636
|
-
ctx.lineTo(body.x + body.vx * 0.1, body.y + body.vy * 0.1);
|
|
17637
|
-
ctx.strokeStyle = "#16213e";
|
|
17638
|
-
ctx.lineWidth = 2;
|
|
17639
|
-
ctx.stroke();
|
|
17640
|
-
}
|
|
17641
|
-
}
|
|
17642
|
-
}, [width, height, preset]);
|
|
17643
|
-
useEffect(() => {
|
|
17644
|
-
if (!externalBodies) return;
|
|
17645
|
-
interp.onSnapshot(externalBodies.map((b) => ({ id: b.id, x: b.x, y: b.y })));
|
|
17646
|
-
}, [externalBodies]);
|
|
17647
|
-
const presetRef = useRef(preset);
|
|
17648
|
-
presetRef.current = preset;
|
|
17649
|
-
const widthRef = useRef(width);
|
|
17650
|
-
widthRef.current = width;
|
|
17651
|
-
const heightRef = useRef(height);
|
|
17652
|
-
heightRef.current = height;
|
|
17653
|
-
useEffect(() => {
|
|
17654
|
-
if (!externalBodies) return;
|
|
17655
|
-
const drawInterpolated = (positions) => {
|
|
17656
|
-
const canvas = canvasRef.current;
|
|
17657
|
-
if (!canvas) return;
|
|
17658
|
-
const ctx = canvas.getContext("2d");
|
|
17659
|
-
if (!ctx) return;
|
|
17660
|
-
const bodies = bodiesRef.current;
|
|
17661
|
-
const p = presetRef.current;
|
|
17662
|
-
const w = widthRef.current;
|
|
17663
|
-
const h = heightRef.current;
|
|
17664
|
-
ctx.clearRect(0, 0, w, h);
|
|
17665
|
-
ctx.fillStyle = p.backgroundColor ?? "#1a1a2e";
|
|
17666
|
-
ctx.fillRect(0, 0, w, h);
|
|
17667
|
-
if (p.constraints) {
|
|
17668
|
-
for (const c of p.constraints) {
|
|
17669
|
-
const a = bodies[c.bodyA];
|
|
17670
|
-
const b = bodies[c.bodyB];
|
|
17671
|
-
if (a && b) {
|
|
17672
|
-
const aPos = positions.get(a.id) ?? a;
|
|
17673
|
-
const bPos = positions.get(b.id) ?? b;
|
|
17674
|
-
ctx.beginPath();
|
|
17675
|
-
ctx.moveTo(aPos.x, aPos.y);
|
|
17676
|
-
ctx.lineTo(bPos.x, bPos.y);
|
|
17677
|
-
ctx.strokeStyle = "#533483";
|
|
17678
|
-
ctx.lineWidth = 1;
|
|
17679
|
-
ctx.setLineDash([4, 4]);
|
|
17680
|
-
ctx.stroke();
|
|
17681
|
-
ctx.setLineDash([]);
|
|
17682
|
-
}
|
|
17683
|
-
}
|
|
17684
|
-
}
|
|
17685
|
-
for (const body of bodies) {
|
|
17686
|
-
const pos = positions.get(body.id) ?? body;
|
|
17687
|
-
ctx.beginPath();
|
|
17688
|
-
ctx.arc(pos.x, pos.y, body.radius, 0, Math.PI * 2);
|
|
17689
|
-
ctx.fillStyle = body.color ?? "#e94560";
|
|
17690
|
-
ctx.fill();
|
|
17691
|
-
if (p.showVelocity) {
|
|
17692
|
-
ctx.beginPath();
|
|
17693
|
-
ctx.moveTo(pos.x, pos.y);
|
|
17694
|
-
ctx.lineTo(pos.x + body.vx * 0.1, pos.y + body.vy * 0.1);
|
|
17695
|
-
ctx.strokeStyle = "#16213e";
|
|
17696
|
-
ctx.lineWidth = 2;
|
|
17697
|
-
ctx.stroke();
|
|
17698
|
-
}
|
|
17699
|
-
}
|
|
17700
|
-
};
|
|
17701
|
-
return interp.startLoop(drawInterpolated);
|
|
17702
|
-
}, [externalBodies !== void 0, interp.startLoop]);
|
|
17703
|
-
useEffect(() => {
|
|
17704
|
-
draw();
|
|
17705
|
-
}, [draw]);
|
|
17706
|
-
useEffect(() => {
|
|
17707
|
-
if (typeof window === "undefined") return;
|
|
17708
|
-
const canvas = canvasRef.current;
|
|
17709
|
-
if (!canvas) return;
|
|
17710
|
-
bindCanvasCapture(() => canvas.toDataURL("image/png"));
|
|
17711
|
-
return () => {
|
|
17712
|
-
bindCanvasCapture(() => null);
|
|
17713
|
-
};
|
|
17714
|
-
}, []);
|
|
17715
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("flex justify-center", className), children: /* @__PURE__ */ jsx(
|
|
17716
|
-
"canvas",
|
|
17717
|
-
{
|
|
17718
|
-
ref: canvasRef,
|
|
17719
|
-
width,
|
|
17720
|
-
height,
|
|
17721
|
-
className: "rounded-container block max-w-full h-auto"
|
|
17722
|
-
}
|
|
17723
|
-
) });
|
|
17724
|
-
}
|
|
17725
|
-
var PRESET_BY_ID;
|
|
17726
|
-
var init_SimulationCanvas = __esm({
|
|
17727
|
-
"components/game/2d/organisms/SimulationCanvas.tsx"() {
|
|
17728
|
-
init_cn();
|
|
17729
|
-
init_atoms();
|
|
17730
|
-
init_verificationRegistry();
|
|
17731
|
-
init_physicsPresets();
|
|
17732
|
-
init_useRenderInterpolation();
|
|
17733
|
-
PRESET_BY_ID = {
|
|
17734
|
-
"mechanics-projectile": projectileMotion,
|
|
17735
|
-
"mechanics-pendulum": pendulum,
|
|
17736
|
-
"mechanics-spring": springOscillator
|
|
17737
|
-
};
|
|
17738
|
-
SimulationCanvas.displayName = "SimulationCanvas";
|
|
17739
|
-
}
|
|
17740
|
-
});
|
|
17741
17561
|
var GameTemplate;
|
|
17742
17562
|
var init_GameTemplate = __esm({
|
|
17743
17563
|
"components/game/2d/templates/GameTemplate.tsx"() {
|
|
@@ -18346,7 +18166,7 @@ var init_ErrorBoundary = __esm({
|
|
|
18346
18166
|
}
|
|
18347
18167
|
);
|
|
18348
18168
|
};
|
|
18349
|
-
ErrorBoundary = class extends
|
|
18169
|
+
ErrorBoundary = class extends React104__default.Component {
|
|
18350
18170
|
constructor(props) {
|
|
18351
18171
|
super(props);
|
|
18352
18172
|
__publicField(this, "reset", () => {
|
|
@@ -18628,7 +18448,7 @@ var init_Container = __esm({
|
|
|
18628
18448
|
as: Component = "div"
|
|
18629
18449
|
}) => {
|
|
18630
18450
|
const resolvedSize = maxWidth ?? size ?? "lg";
|
|
18631
|
-
return
|
|
18451
|
+
return React104__default.createElement(
|
|
18632
18452
|
Component,
|
|
18633
18453
|
{
|
|
18634
18454
|
className: cn(
|
|
@@ -20469,7 +20289,7 @@ var init_CodeBlock = __esm({
|
|
|
20469
20289
|
DIFF_STYLE_FALLBACK = { bg: "", prefix: " ", text: "text-foreground" };
|
|
20470
20290
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
20471
20291
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
20472
|
-
CodeBlock =
|
|
20292
|
+
CodeBlock = React104__default.memo(
|
|
20473
20293
|
({
|
|
20474
20294
|
code: rawCode,
|
|
20475
20295
|
language = "text",
|
|
@@ -21056,7 +20876,7 @@ var init_MarkdownContent = __esm({
|
|
|
21056
20876
|
init_Box();
|
|
21057
20877
|
init_CodeBlock();
|
|
21058
20878
|
init_cn();
|
|
21059
|
-
MarkdownContent =
|
|
20879
|
+
MarkdownContent = React104__default.memo(
|
|
21060
20880
|
({ content, direction = "ltr", className }) => {
|
|
21061
20881
|
const { t: _t } = useTranslate();
|
|
21062
20882
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -22383,7 +22203,7 @@ var init_StateMachineView = __esm({
|
|
|
22383
22203
|
style: { top: title ? 30 : 0 },
|
|
22384
22204
|
children: [
|
|
22385
22205
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
22386
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
22206
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React104__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
22387
22207
|
StateNode2,
|
|
22388
22208
|
{
|
|
22389
22209
|
state,
|
|
@@ -28021,8 +27841,8 @@ var init_Menu = __esm({
|
|
|
28021
27841
|
"bottom-end": "bottom-start"
|
|
28022
27842
|
};
|
|
28023
27843
|
const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
|
|
28024
|
-
const triggerChild =
|
|
28025
|
-
const triggerElement =
|
|
27844
|
+
const triggerChild = React104__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
27845
|
+
const triggerElement = React104__default.cloneElement(
|
|
28026
27846
|
triggerChild,
|
|
28027
27847
|
{
|
|
28028
27848
|
ref: triggerRef,
|
|
@@ -28117,14 +27937,14 @@ function useDataDnd(args) {
|
|
|
28117
27937
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
28118
27938
|
const enabled = isZone || Boolean(dndRoot);
|
|
28119
27939
|
const eventBus = useEventBus();
|
|
28120
|
-
const parentRoot =
|
|
27940
|
+
const parentRoot = React104__default.useContext(RootCtx);
|
|
28121
27941
|
const isRoot = enabled && parentRoot === null;
|
|
28122
|
-
const zoneId =
|
|
27942
|
+
const zoneId = React104__default.useId();
|
|
28123
27943
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
28124
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
28125
|
-
const optimisticOrdersRef =
|
|
27944
|
+
const [optimisticOrders, setOptimisticOrders] = React104__default.useState(() => /* @__PURE__ */ new Map());
|
|
27945
|
+
const optimisticOrdersRef = React104__default.useRef(optimisticOrders);
|
|
28126
27946
|
optimisticOrdersRef.current = optimisticOrders;
|
|
28127
|
-
const clearOptimisticOrder =
|
|
27947
|
+
const clearOptimisticOrder = React104__default.useCallback((group) => {
|
|
28128
27948
|
setOptimisticOrders((prev) => {
|
|
28129
27949
|
if (!prev.has(group)) return prev;
|
|
28130
27950
|
const next = new Map(prev);
|
|
@@ -28149,7 +27969,7 @@ function useDataDnd(args) {
|
|
|
28149
27969
|
const raw = it[dndItemIdField];
|
|
28150
27970
|
return raw != null ? String(raw) : `__idx_${idx}`;
|
|
28151
27971
|
}).join("|");
|
|
28152
|
-
const itemIds =
|
|
27972
|
+
const itemIds = React104__default.useMemo(
|
|
28153
27973
|
() => orderedItems.map((it, idx) => {
|
|
28154
27974
|
const raw = it[dndItemIdField];
|
|
28155
27975
|
return raw != null ? String(raw) : `__idx_${idx}`;
|
|
@@ -28160,7 +27980,7 @@ function useDataDnd(args) {
|
|
|
28160
27980
|
const raw = it[dndItemIdField];
|
|
28161
27981
|
return raw != null ? String(raw) : `__${idx}`;
|
|
28162
27982
|
}).join("|");
|
|
28163
|
-
|
|
27983
|
+
React104__default.useEffect(() => {
|
|
28164
27984
|
const root = isRoot ? null : parentRoot;
|
|
28165
27985
|
if (root) {
|
|
28166
27986
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -28168,20 +27988,20 @@ function useDataDnd(args) {
|
|
|
28168
27988
|
clearOptimisticOrder(ownGroup);
|
|
28169
27989
|
}
|
|
28170
27990
|
}, [itemsContentSig, ownGroup]);
|
|
28171
|
-
const zonesRef =
|
|
28172
|
-
const registerZone =
|
|
27991
|
+
const zonesRef = React104__default.useRef(/* @__PURE__ */ new Map());
|
|
27992
|
+
const registerZone = React104__default.useCallback((zoneId2, meta2) => {
|
|
28173
27993
|
zonesRef.current.set(zoneId2, meta2);
|
|
28174
27994
|
}, []);
|
|
28175
|
-
const unregisterZone =
|
|
27995
|
+
const unregisterZone = React104__default.useCallback((zoneId2) => {
|
|
28176
27996
|
zonesRef.current.delete(zoneId2);
|
|
28177
27997
|
}, []);
|
|
28178
|
-
const [activeDrag, setActiveDrag] =
|
|
28179
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
28180
|
-
const meta =
|
|
27998
|
+
const [activeDrag, setActiveDrag] = React104__default.useState(null);
|
|
27999
|
+
const [overZoneGroup, setOverZoneGroup] = React104__default.useState(null);
|
|
28000
|
+
const meta = React104__default.useMemo(
|
|
28181
28001
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
28182
28002
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
28183
28003
|
);
|
|
28184
|
-
|
|
28004
|
+
React104__default.useEffect(() => {
|
|
28185
28005
|
const target = isRoot ? null : parentRoot;
|
|
28186
28006
|
if (!target) {
|
|
28187
28007
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -28200,7 +28020,7 @@ function useDataDnd(args) {
|
|
|
28200
28020
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
28201
28021
|
const sensors = useAlmadarDndSensors(true);
|
|
28202
28022
|
const collisionDetection = almadarDndCollisionDetection;
|
|
28203
|
-
const findZoneByItem =
|
|
28023
|
+
const findZoneByItem = React104__default.useCallback(
|
|
28204
28024
|
(id) => {
|
|
28205
28025
|
for (const z of zonesRef.current.values()) {
|
|
28206
28026
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -28209,7 +28029,7 @@ function useDataDnd(args) {
|
|
|
28209
28029
|
},
|
|
28210
28030
|
[]
|
|
28211
28031
|
);
|
|
28212
|
-
|
|
28032
|
+
React104__default.useCallback(
|
|
28213
28033
|
(group) => {
|
|
28214
28034
|
for (const z of zonesRef.current.values()) {
|
|
28215
28035
|
if (z.group === group) return z;
|
|
@@ -28218,7 +28038,7 @@ function useDataDnd(args) {
|
|
|
28218
28038
|
},
|
|
28219
28039
|
[]
|
|
28220
28040
|
);
|
|
28221
|
-
const handleDragEnd =
|
|
28041
|
+
const handleDragEnd = React104__default.useCallback(
|
|
28222
28042
|
(event) => {
|
|
28223
28043
|
const { active, over } = event;
|
|
28224
28044
|
const activeIdStr = String(active.id);
|
|
@@ -28309,8 +28129,8 @@ function useDataDnd(args) {
|
|
|
28309
28129
|
},
|
|
28310
28130
|
[eventBus]
|
|
28311
28131
|
);
|
|
28312
|
-
const sortableData =
|
|
28313
|
-
const SortableItem =
|
|
28132
|
+
const sortableData = React104__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
28133
|
+
const SortableItem = React104__default.useCallback(
|
|
28314
28134
|
({ id, children }) => {
|
|
28315
28135
|
const {
|
|
28316
28136
|
attributes,
|
|
@@ -28350,7 +28170,7 @@ function useDataDnd(args) {
|
|
|
28350
28170
|
id: droppableId,
|
|
28351
28171
|
data: sortableData
|
|
28352
28172
|
});
|
|
28353
|
-
const ctx =
|
|
28173
|
+
const ctx = React104__default.useContext(RootCtx);
|
|
28354
28174
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
28355
28175
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
28356
28176
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -28365,7 +28185,7 @@ function useDataDnd(args) {
|
|
|
28365
28185
|
showForeignPlaceholder,
|
|
28366
28186
|
ctxAvailable: ctx != null
|
|
28367
28187
|
});
|
|
28368
|
-
|
|
28188
|
+
React104__default.useEffect(() => {
|
|
28369
28189
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
28370
28190
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
28371
28191
|
return /* @__PURE__ */ jsx(
|
|
@@ -28379,11 +28199,11 @@ function useDataDnd(args) {
|
|
|
28379
28199
|
}
|
|
28380
28200
|
);
|
|
28381
28201
|
};
|
|
28382
|
-
const rootContextValue =
|
|
28202
|
+
const rootContextValue = React104__default.useMemo(
|
|
28383
28203
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
28384
28204
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
28385
28205
|
);
|
|
28386
|
-
const handleDragStart =
|
|
28206
|
+
const handleDragStart = React104__default.useCallback((event) => {
|
|
28387
28207
|
const sourceZone = findZoneByItem(event.active.id);
|
|
28388
28208
|
const rect = event.active.rect.current.initial;
|
|
28389
28209
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -28402,7 +28222,7 @@ function useDataDnd(args) {
|
|
|
28402
28222
|
isRoot
|
|
28403
28223
|
});
|
|
28404
28224
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
28405
|
-
const handleDragOver =
|
|
28225
|
+
const handleDragOver = React104__default.useCallback((event) => {
|
|
28406
28226
|
const { active, over } = event;
|
|
28407
28227
|
const overData = over?.data?.current;
|
|
28408
28228
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -28472,7 +28292,7 @@ function useDataDnd(args) {
|
|
|
28472
28292
|
return next;
|
|
28473
28293
|
});
|
|
28474
28294
|
}, []);
|
|
28475
|
-
const handleDragCancel =
|
|
28295
|
+
const handleDragCancel = React104__default.useCallback((event) => {
|
|
28476
28296
|
setActiveDrag(null);
|
|
28477
28297
|
setOverZoneGroup(null);
|
|
28478
28298
|
dndLog.warn("dragCancel", {
|
|
@@ -28480,12 +28300,12 @@ function useDataDnd(args) {
|
|
|
28480
28300
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
28481
28301
|
});
|
|
28482
28302
|
}, []);
|
|
28483
|
-
const handleDragEndWithCleanup =
|
|
28303
|
+
const handleDragEndWithCleanup = React104__default.useCallback((event) => {
|
|
28484
28304
|
handleDragEnd(event);
|
|
28485
28305
|
setActiveDrag(null);
|
|
28486
28306
|
setOverZoneGroup(null);
|
|
28487
28307
|
}, [handleDragEnd]);
|
|
28488
|
-
const wrapContainer =
|
|
28308
|
+
const wrapContainer = React104__default.useCallback(
|
|
28489
28309
|
(children) => {
|
|
28490
28310
|
if (!enabled) return children;
|
|
28491
28311
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -28539,7 +28359,7 @@ var init_useDataDnd = __esm({
|
|
|
28539
28359
|
init_useAlmadarDndCollision();
|
|
28540
28360
|
init_Box();
|
|
28541
28361
|
dndLog = createLogger("almadar:ui:dnd");
|
|
28542
|
-
RootCtx =
|
|
28362
|
+
RootCtx = React104__default.createContext(null);
|
|
28543
28363
|
}
|
|
28544
28364
|
});
|
|
28545
28365
|
function renderIconInput(icon, props) {
|
|
@@ -29065,7 +28885,7 @@ function DataList({
|
|
|
29065
28885
|
}) {
|
|
29066
28886
|
const eventBus = useEventBus();
|
|
29067
28887
|
const { t } = useTranslate();
|
|
29068
|
-
const [visibleCount, setVisibleCount] =
|
|
28888
|
+
const [visibleCount, setVisibleCount] = React104__default.useState(pageSize || Infinity);
|
|
29069
28889
|
const fieldDefs = fields ?? columns ?? [];
|
|
29070
28890
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
29071
28891
|
const dnd = useDataDnd({
|
|
@@ -29084,7 +28904,7 @@ function DataList({
|
|
|
29084
28904
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
29085
28905
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
29086
28906
|
const hasRenderProp = typeof children === "function";
|
|
29087
|
-
|
|
28907
|
+
React104__default.useEffect(() => {
|
|
29088
28908
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
29089
28909
|
const childrenTypeOf = typeof children;
|
|
29090
28910
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -29188,7 +29008,7 @@ function DataList({
|
|
|
29188
29008
|
const items2 = [...data];
|
|
29189
29009
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
29190
29010
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
29191
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
29011
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
29192
29012
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
29193
29013
|
group.items.map((itemData, index) => {
|
|
29194
29014
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -29329,7 +29149,7 @@ function DataList({
|
|
|
29329
29149
|
className
|
|
29330
29150
|
),
|
|
29331
29151
|
children: [
|
|
29332
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
29152
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
29333
29153
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
29334
29154
|
group.items.map(
|
|
29335
29155
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -29414,7 +29234,7 @@ var init_FormSection = __esm({
|
|
|
29414
29234
|
columns = 1,
|
|
29415
29235
|
className
|
|
29416
29236
|
}) => {
|
|
29417
|
-
const [collapsed, setCollapsed] =
|
|
29237
|
+
const [collapsed, setCollapsed] = React104__default.useState(defaultCollapsed);
|
|
29418
29238
|
const { t } = useTranslate();
|
|
29419
29239
|
const eventBus = useEventBus();
|
|
29420
29240
|
const gridClass = {
|
|
@@ -29422,7 +29242,7 @@ var init_FormSection = __esm({
|
|
|
29422
29242
|
2: "grid-cols-1 md:grid-cols-2",
|
|
29423
29243
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
29424
29244
|
}[columns];
|
|
29425
|
-
|
|
29245
|
+
React104__default.useCallback(() => {
|
|
29426
29246
|
if (collapsible) {
|
|
29427
29247
|
setCollapsed((prev) => !prev);
|
|
29428
29248
|
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
@@ -30372,7 +30192,7 @@ var init_Flex = __esm({
|
|
|
30372
30192
|
flexStyle.flexBasis = typeof basis === "number" ? `${basis}px` : basis;
|
|
30373
30193
|
}
|
|
30374
30194
|
}
|
|
30375
|
-
return
|
|
30195
|
+
return React104__default.createElement(Component, {
|
|
30376
30196
|
className: cn(
|
|
30377
30197
|
inline ? "inline-flex" : "flex",
|
|
30378
30198
|
directionStyles[direction],
|
|
@@ -30491,7 +30311,7 @@ var init_Grid = __esm({
|
|
|
30491
30311
|
as: Component = "div"
|
|
30492
30312
|
}) => {
|
|
30493
30313
|
const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
|
|
30494
|
-
return
|
|
30314
|
+
return React104__default.createElement(
|
|
30495
30315
|
Component,
|
|
30496
30316
|
{
|
|
30497
30317
|
className: cn(
|
|
@@ -30687,9 +30507,9 @@ var init_Popover = __esm({
|
|
|
30687
30507
|
onMouseLeave: handleClose,
|
|
30688
30508
|
onPointerDown: tapTriggerProps.onPointerDown
|
|
30689
30509
|
};
|
|
30690
|
-
const childElement =
|
|
30510
|
+
const childElement = React104__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
30691
30511
|
const childPointerDown = childElement.props.onPointerDown;
|
|
30692
|
-
const triggerElement =
|
|
30512
|
+
const triggerElement = React104__default.cloneElement(
|
|
30693
30513
|
childElement,
|
|
30694
30514
|
{
|
|
30695
30515
|
ref: triggerRef,
|
|
@@ -31291,9 +31111,9 @@ var init_Tooltip = __esm({
|
|
|
31291
31111
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
31292
31112
|
};
|
|
31293
31113
|
}, []);
|
|
31294
|
-
const triggerElement =
|
|
31114
|
+
const triggerElement = React104__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
31295
31115
|
const childPointerDown = triggerElement.props.onPointerDown;
|
|
31296
|
-
const trigger =
|
|
31116
|
+
const trigger = React104__default.cloneElement(triggerElement, {
|
|
31297
31117
|
ref: triggerRef,
|
|
31298
31118
|
onMouseEnter: handleMouseEnter,
|
|
31299
31119
|
onMouseLeave: handleMouseLeave,
|
|
@@ -31383,7 +31203,7 @@ var init_WizardProgress = __esm({
|
|
|
31383
31203
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
31384
31204
|
const isActive = index === currentStep;
|
|
31385
31205
|
const isCompleted = index < currentStep;
|
|
31386
|
-
return /* @__PURE__ */ jsxs(
|
|
31206
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
31387
31207
|
/* @__PURE__ */ jsx(
|
|
31388
31208
|
"button",
|
|
31389
31209
|
{
|
|
@@ -32943,13 +32763,13 @@ var init_MapView = __esm({
|
|
|
32943
32763
|
shadowSize: [41, 41]
|
|
32944
32764
|
});
|
|
32945
32765
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
32946
|
-
const { useEffect:
|
|
32766
|
+
const { useEffect: useEffect70, useRef: useRef66, useCallback: useCallback104, useState: useState105 } = React104__default;
|
|
32947
32767
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
32948
32768
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
32949
32769
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
32950
32770
|
const map = useMap();
|
|
32951
|
-
const prevRef =
|
|
32952
|
-
|
|
32771
|
+
const prevRef = useRef66({ centerLat, centerLng, zoom });
|
|
32772
|
+
useEffect70(() => {
|
|
32953
32773
|
const prev = prevRef.current;
|
|
32954
32774
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
32955
32775
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -32960,7 +32780,7 @@ var init_MapView = __esm({
|
|
|
32960
32780
|
}
|
|
32961
32781
|
function MapClickHandler({ onMapClick }) {
|
|
32962
32782
|
const map = useMap();
|
|
32963
|
-
|
|
32783
|
+
useEffect70(() => {
|
|
32964
32784
|
if (!onMapClick) return;
|
|
32965
32785
|
const handler = (e) => {
|
|
32966
32786
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -32989,7 +32809,7 @@ var init_MapView = __esm({
|
|
|
32989
32809
|
}) {
|
|
32990
32810
|
const eventBus = useEventBus2();
|
|
32991
32811
|
const [clickedPosition, setClickedPosition] = useState105(null);
|
|
32992
|
-
const handleMapClick =
|
|
32812
|
+
const handleMapClick = useCallback104((lat, lng) => {
|
|
32993
32813
|
if (showClickedPin) {
|
|
32994
32814
|
setClickedPosition({ lat, lng });
|
|
32995
32815
|
}
|
|
@@ -32998,7 +32818,7 @@ var init_MapView = __esm({
|
|
|
32998
32818
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
32999
32819
|
}
|
|
33000
32820
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
33001
|
-
const handleMarkerClick =
|
|
32821
|
+
const handleMarkerClick = useCallback104((marker) => {
|
|
33002
32822
|
onMarkerClick?.(marker);
|
|
33003
32823
|
if (markerClickEvent) {
|
|
33004
32824
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -33858,8 +33678,8 @@ function TableView({
|
|
|
33858
33678
|
}) {
|
|
33859
33679
|
const eventBus = useEventBus();
|
|
33860
33680
|
const { t } = useTranslate();
|
|
33861
|
-
const [visibleCount, setVisibleCount] =
|
|
33862
|
-
const [localSelected, setLocalSelected] =
|
|
33681
|
+
const [visibleCount, setVisibleCount] = React104__default.useState(pageSize > 0 ? pageSize : Infinity);
|
|
33682
|
+
const [localSelected, setLocalSelected] = React104__default.useState(/* @__PURE__ */ new Set());
|
|
33863
33683
|
const colDefs = columns ?? fields ?? [];
|
|
33864
33684
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
33865
33685
|
const dnd = useDataDnd({
|
|
@@ -34054,12 +33874,12 @@ function TableView({
|
|
|
34054
33874
|
]
|
|
34055
33875
|
}
|
|
34056
33876
|
);
|
|
34057
|
-
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(
|
|
33877
|
+
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React104__default.Fragment, { children: rowInner }, id);
|
|
34058
33878
|
};
|
|
34059
33879
|
const items = Array.from(data);
|
|
34060
33880
|
const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
|
|
34061
33881
|
let runningIndex = 0;
|
|
34062
|
-
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
33882
|
+
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
34063
33883
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
|
|
34064
33884
|
group.items.map((row) => renderRow(row, runningIndex++))
|
|
34065
33885
|
] }, gi)) });
|
|
@@ -35416,7 +35236,7 @@ var init_StepFlow = __esm({
|
|
|
35416
35236
|
className
|
|
35417
35237
|
}) => {
|
|
35418
35238
|
if (orientation === "vertical") {
|
|
35419
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
35239
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React104__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
35420
35240
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
35421
35241
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
35422
35242
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -35427,7 +35247,7 @@ var init_StepFlow = __esm({
|
|
|
35427
35247
|
] })
|
|
35428
35248
|
] }) }, index)) });
|
|
35429
35249
|
}
|
|
35430
|
-
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(
|
|
35250
|
+
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(React104__default.Fragment, { children: [
|
|
35431
35251
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
35432
35252
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
35433
35253
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -36412,7 +36232,7 @@ var init_LikertScale = __esm({
|
|
|
36412
36232
|
md: "text-base",
|
|
36413
36233
|
lg: "text-lg"
|
|
36414
36234
|
};
|
|
36415
|
-
LikertScale =
|
|
36235
|
+
LikertScale = React104__default.forwardRef(
|
|
36416
36236
|
({
|
|
36417
36237
|
question,
|
|
36418
36238
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -36424,7 +36244,7 @@ var init_LikertScale = __esm({
|
|
|
36424
36244
|
variant = "radios",
|
|
36425
36245
|
className
|
|
36426
36246
|
}, ref) => {
|
|
36427
|
-
const groupId =
|
|
36247
|
+
const groupId = React104__default.useId();
|
|
36428
36248
|
const eventBus = useEventBus();
|
|
36429
36249
|
const handleSelect = useCallback(
|
|
36430
36250
|
(next) => {
|
|
@@ -38706,7 +38526,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
38706
38526
|
"aria-label": t("aria.breadcrumb"),
|
|
38707
38527
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
38708
38528
|
const isLast = idx === items.length - 1;
|
|
38709
|
-
return /* @__PURE__ */ jsxs(
|
|
38529
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
38710
38530
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
38711
38531
|
Icon,
|
|
38712
38532
|
{
|
|
@@ -39370,7 +39190,7 @@ var init_PageHeader = __esm({
|
|
|
39370
39190
|
info: "bg-info/10 text-info"
|
|
39371
39191
|
};
|
|
39372
39192
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
39373
|
-
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(
|
|
39193
|
+
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(React104__default.Fragment, { children: [
|
|
39374
39194
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
39375
39195
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
39376
39196
|
"a",
|
|
@@ -39728,7 +39548,7 @@ var init_Section = __esm({
|
|
|
39728
39548
|
as: Component = "section"
|
|
39729
39549
|
}) => {
|
|
39730
39550
|
const hasHeader = title || description || action;
|
|
39731
|
-
return
|
|
39551
|
+
return React104__default.createElement(
|
|
39732
39552
|
Component,
|
|
39733
39553
|
{
|
|
39734
39554
|
className: cn(
|
|
@@ -40102,7 +39922,7 @@ var init_WizardContainer = __esm({
|
|
|
40102
39922
|
const isCompleted = index < currentStep;
|
|
40103
39923
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
40104
39924
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
40105
|
-
return /* @__PURE__ */ jsxs(
|
|
39925
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
40106
39926
|
/* @__PURE__ */ jsx(
|
|
40107
39927
|
Button,
|
|
40108
39928
|
{
|
|
@@ -42535,7 +42355,7 @@ var init_DetailPanel = __esm({
|
|
|
42535
42355
|
}
|
|
42536
42356
|
});
|
|
42537
42357
|
function extractTitle(children) {
|
|
42538
|
-
if (!
|
|
42358
|
+
if (!React104__default.isValidElement(children)) return void 0;
|
|
42539
42359
|
const props = children.props;
|
|
42540
42360
|
if (typeof props.title === "string") {
|
|
42541
42361
|
return props.title;
|
|
@@ -42885,12 +42705,12 @@ var init_Form = __esm({
|
|
|
42885
42705
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
42886
42706
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
42887
42707
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
42888
|
-
const normalizedInitialData =
|
|
42708
|
+
const normalizedInitialData = React104__default.useMemo(() => {
|
|
42889
42709
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
42890
42710
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
42891
42711
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
42892
42712
|
}, [entity, initialData]);
|
|
42893
|
-
const entityDerivedFields =
|
|
42713
|
+
const entityDerivedFields = React104__default.useMemo(() => {
|
|
42894
42714
|
if (fields && fields.length > 0) return void 0;
|
|
42895
42715
|
if (!resolvedEntity) return void 0;
|
|
42896
42716
|
return resolvedEntity.fields.map(
|
|
@@ -42911,16 +42731,16 @@ var init_Form = __esm({
|
|
|
42911
42731
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
42912
42732
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
42913
42733
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
42914
|
-
const [formData, setFormData] =
|
|
42734
|
+
const [formData, setFormData] = React104__default.useState(
|
|
42915
42735
|
normalizedInitialData
|
|
42916
42736
|
);
|
|
42917
|
-
const [collapsedSections, setCollapsedSections] =
|
|
42737
|
+
const [collapsedSections, setCollapsedSections] = React104__default.useState(
|
|
42918
42738
|
/* @__PURE__ */ new Set()
|
|
42919
42739
|
);
|
|
42920
|
-
const [submitError, setSubmitError] =
|
|
42921
|
-
const formRef =
|
|
42740
|
+
const [submitError, setSubmitError] = React104__default.useState(null);
|
|
42741
|
+
const formRef = React104__default.useRef(null);
|
|
42922
42742
|
const formMode = props.mode;
|
|
42923
|
-
const mountedRef =
|
|
42743
|
+
const mountedRef = React104__default.useRef(false);
|
|
42924
42744
|
if (!mountedRef.current) {
|
|
42925
42745
|
mountedRef.current = true;
|
|
42926
42746
|
debug("forms", "mount", {
|
|
@@ -42933,7 +42753,7 @@ var init_Form = __esm({
|
|
|
42933
42753
|
});
|
|
42934
42754
|
}
|
|
42935
42755
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
42936
|
-
const evalContext =
|
|
42756
|
+
const evalContext = React104__default.useMemo(
|
|
42937
42757
|
() => ({
|
|
42938
42758
|
formValues: formData,
|
|
42939
42759
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -42942,7 +42762,7 @@ var init_Form = __esm({
|
|
|
42942
42762
|
}),
|
|
42943
42763
|
[formData, externalContext]
|
|
42944
42764
|
);
|
|
42945
|
-
|
|
42765
|
+
React104__default.useEffect(() => {
|
|
42946
42766
|
debug("forms", "initialData-sync", {
|
|
42947
42767
|
mode: formMode,
|
|
42948
42768
|
normalizedInitialData,
|
|
@@ -42953,7 +42773,7 @@ var init_Form = __esm({
|
|
|
42953
42773
|
setFormData(normalizedInitialData);
|
|
42954
42774
|
}
|
|
42955
42775
|
}, [normalizedInitialData]);
|
|
42956
|
-
const processCalculations =
|
|
42776
|
+
const processCalculations = React104__default.useCallback(
|
|
42957
42777
|
(changedFieldId, newFormData) => {
|
|
42958
42778
|
if (!hiddenCalculations.length) return;
|
|
42959
42779
|
const context = {
|
|
@@ -42978,7 +42798,7 @@ var init_Form = __esm({
|
|
|
42978
42798
|
},
|
|
42979
42799
|
[hiddenCalculations, externalContext, eventBus]
|
|
42980
42800
|
);
|
|
42981
|
-
const checkViolations =
|
|
42801
|
+
const checkViolations = React104__default.useCallback(
|
|
42982
42802
|
(changedFieldId, newFormData) => {
|
|
42983
42803
|
if (!violationTriggers.length) return;
|
|
42984
42804
|
const context = {
|
|
@@ -43016,7 +42836,7 @@ var init_Form = __esm({
|
|
|
43016
42836
|
processCalculations(name, newFormData);
|
|
43017
42837
|
checkViolations(name, newFormData);
|
|
43018
42838
|
};
|
|
43019
|
-
const isFieldVisible =
|
|
42839
|
+
const isFieldVisible = React104__default.useCallback(
|
|
43020
42840
|
(fieldName) => {
|
|
43021
42841
|
const condition = conditionalFields[fieldName];
|
|
43022
42842
|
if (!condition) return true;
|
|
@@ -43024,7 +42844,7 @@ var init_Form = __esm({
|
|
|
43024
42844
|
},
|
|
43025
42845
|
[conditionalFields, evalContext]
|
|
43026
42846
|
);
|
|
43027
|
-
const isSectionVisible =
|
|
42847
|
+
const isSectionVisible = React104__default.useCallback(
|
|
43028
42848
|
(section) => {
|
|
43029
42849
|
if (!section.condition) return true;
|
|
43030
42850
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -43100,7 +42920,7 @@ var init_Form = __esm({
|
|
|
43100
42920
|
eventBus.emit(`UI:${onCancel}`);
|
|
43101
42921
|
}
|
|
43102
42922
|
};
|
|
43103
|
-
const renderField =
|
|
42923
|
+
const renderField = React104__default.useCallback(
|
|
43104
42924
|
(field) => {
|
|
43105
42925
|
const fieldName = field.name || field.field;
|
|
43106
42926
|
if (!fieldName) return null;
|
|
@@ -43121,7 +42941,7 @@ var init_Form = __esm({
|
|
|
43121
42941
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
43122
42942
|
);
|
|
43123
42943
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
43124
|
-
const normalizedFields =
|
|
42944
|
+
const normalizedFields = React104__default.useMemo(() => {
|
|
43125
42945
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
43126
42946
|
return effectiveFields.map((field) => {
|
|
43127
42947
|
if (typeof field === "string") {
|
|
@@ -43145,7 +42965,7 @@ var init_Form = __esm({
|
|
|
43145
42965
|
return field;
|
|
43146
42966
|
});
|
|
43147
42967
|
}, [effectiveFields, resolvedEntity]);
|
|
43148
|
-
const schemaFields =
|
|
42968
|
+
const schemaFields = React104__default.useMemo(() => {
|
|
43149
42969
|
if (normalizedFields.length === 0) return null;
|
|
43150
42970
|
if (isDebugEnabled()) {
|
|
43151
42971
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -43155,7 +42975,7 @@ var init_Form = __esm({
|
|
|
43155
42975
|
}
|
|
43156
42976
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
43157
42977
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
43158
|
-
const sectionElements =
|
|
42978
|
+
const sectionElements = React104__default.useMemo(() => {
|
|
43159
42979
|
if (!sections || sections.length === 0) return null;
|
|
43160
42980
|
return sections.map((section) => {
|
|
43161
42981
|
if (!isSectionVisible(section)) {
|
|
@@ -43880,7 +43700,7 @@ var init_List = __esm({
|
|
|
43880
43700
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
43881
43701
|
return [];
|
|
43882
43702
|
}, [entity]);
|
|
43883
|
-
const getItemActions =
|
|
43703
|
+
const getItemActions = React104__default.useCallback(
|
|
43884
43704
|
(item) => {
|
|
43885
43705
|
if (!itemActions) return [];
|
|
43886
43706
|
if (typeof itemActions === "function") {
|
|
@@ -44355,7 +44175,7 @@ var init_MediaGallery = __esm({
|
|
|
44355
44175
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
44356
44176
|
);
|
|
44357
44177
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
44358
|
-
const items =
|
|
44178
|
+
const items = React104__default.useMemo(() => {
|
|
44359
44179
|
if (propItems) return propItems;
|
|
44360
44180
|
if (entityData.length === 0) return [];
|
|
44361
44181
|
return entityData.map((record, idx) => {
|
|
@@ -44518,7 +44338,7 @@ var init_MediaGallery = __esm({
|
|
|
44518
44338
|
}
|
|
44519
44339
|
});
|
|
44520
44340
|
function extractTitle2(children) {
|
|
44521
|
-
if (!
|
|
44341
|
+
if (!React104__default.isValidElement(children)) return void 0;
|
|
44522
44342
|
const props = children.props;
|
|
44523
44343
|
if (typeof props.title === "string") {
|
|
44524
44344
|
return props.title;
|
|
@@ -44792,7 +44612,7 @@ var init_debugRegistry = __esm({
|
|
|
44792
44612
|
}
|
|
44793
44613
|
});
|
|
44794
44614
|
function useDebugData() {
|
|
44795
|
-
const [data, setData] =
|
|
44615
|
+
const [data, setData] = React104.useState(() => ({
|
|
44796
44616
|
traits: [],
|
|
44797
44617
|
ticks: [],
|
|
44798
44618
|
guards: [],
|
|
@@ -44806,7 +44626,7 @@ function useDebugData() {
|
|
|
44806
44626
|
},
|
|
44807
44627
|
lastUpdate: Date.now()
|
|
44808
44628
|
}));
|
|
44809
|
-
|
|
44629
|
+
React104.useEffect(() => {
|
|
44810
44630
|
const updateData = () => {
|
|
44811
44631
|
setData({
|
|
44812
44632
|
traits: getAllTraits(),
|
|
@@ -44915,12 +44735,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
44915
44735
|
return positions;
|
|
44916
44736
|
}
|
|
44917
44737
|
function WalkMinimap() {
|
|
44918
|
-
const [walkStep, setWalkStep] =
|
|
44919
|
-
const [traits2, setTraits] =
|
|
44920
|
-
const [coveredEdges, setCoveredEdges] =
|
|
44921
|
-
const [completedTraits, setCompletedTraits] =
|
|
44922
|
-
const prevTraitRef =
|
|
44923
|
-
|
|
44738
|
+
const [walkStep, setWalkStep] = React104.useState(null);
|
|
44739
|
+
const [traits2, setTraits] = React104.useState([]);
|
|
44740
|
+
const [coveredEdges, setCoveredEdges] = React104.useState([]);
|
|
44741
|
+
const [completedTraits, setCompletedTraits] = React104.useState(/* @__PURE__ */ new Set());
|
|
44742
|
+
const prevTraitRef = React104.useRef(null);
|
|
44743
|
+
React104.useEffect(() => {
|
|
44924
44744
|
const interval = setInterval(() => {
|
|
44925
44745
|
const w = window;
|
|
44926
44746
|
const step = w.__orbitalWalkStep;
|
|
@@ -45356,15 +45176,15 @@ var init_EntitiesTab = __esm({
|
|
|
45356
45176
|
});
|
|
45357
45177
|
function EventFlowTab({ events: events2 }) {
|
|
45358
45178
|
const { t } = useTranslate();
|
|
45359
|
-
const [filter, setFilter] =
|
|
45360
|
-
const containerRef =
|
|
45361
|
-
const [autoScroll, setAutoScroll] =
|
|
45362
|
-
|
|
45179
|
+
const [filter, setFilter] = React104.useState("all");
|
|
45180
|
+
const containerRef = React104.useRef(null);
|
|
45181
|
+
const [autoScroll, setAutoScroll] = React104.useState(true);
|
|
45182
|
+
React104.useEffect(() => {
|
|
45363
45183
|
if (autoScroll && containerRef.current) {
|
|
45364
45184
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
45365
45185
|
}
|
|
45366
45186
|
}, [events2.length, autoScroll]);
|
|
45367
|
-
const filteredEvents =
|
|
45187
|
+
const filteredEvents = React104.useMemo(() => {
|
|
45368
45188
|
if (filter === "all") return events2;
|
|
45369
45189
|
return events2.filter((e) => e.type === filter);
|
|
45370
45190
|
}, [events2, filter]);
|
|
@@ -45480,7 +45300,7 @@ var init_EventFlowTab = __esm({
|
|
|
45480
45300
|
});
|
|
45481
45301
|
function GuardsPanel({ guards }) {
|
|
45482
45302
|
const { t } = useTranslate();
|
|
45483
|
-
const [filter, setFilter] =
|
|
45303
|
+
const [filter, setFilter] = React104.useState("all");
|
|
45484
45304
|
if (guards.length === 0) {
|
|
45485
45305
|
return /* @__PURE__ */ jsx(
|
|
45486
45306
|
EmptyState,
|
|
@@ -45493,7 +45313,7 @@ function GuardsPanel({ guards }) {
|
|
|
45493
45313
|
}
|
|
45494
45314
|
const passedCount = guards.filter((g) => g.result).length;
|
|
45495
45315
|
const failedCount = guards.length - passedCount;
|
|
45496
|
-
const filteredGuards =
|
|
45316
|
+
const filteredGuards = React104.useMemo(() => {
|
|
45497
45317
|
if (filter === "all") return guards;
|
|
45498
45318
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
45499
45319
|
return guards.filter((g) => !g.result);
|
|
@@ -45656,10 +45476,10 @@ function EffectBadge({ effect }) {
|
|
|
45656
45476
|
}
|
|
45657
45477
|
function TransitionTimeline({ transitions }) {
|
|
45658
45478
|
const { t } = useTranslate();
|
|
45659
|
-
const containerRef =
|
|
45660
|
-
const [autoScroll, setAutoScroll] =
|
|
45661
|
-
const [expandedId, setExpandedId] =
|
|
45662
|
-
|
|
45479
|
+
const containerRef = React104.useRef(null);
|
|
45480
|
+
const [autoScroll, setAutoScroll] = React104.useState(true);
|
|
45481
|
+
const [expandedId, setExpandedId] = React104.useState(null);
|
|
45482
|
+
React104.useEffect(() => {
|
|
45663
45483
|
if (autoScroll && containerRef.current) {
|
|
45664
45484
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
45665
45485
|
}
|
|
@@ -45939,9 +45759,9 @@ function getAllEvents(traits2) {
|
|
|
45939
45759
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
45940
45760
|
const eventBus = useEventBus();
|
|
45941
45761
|
const { t } = useTranslate();
|
|
45942
|
-
const [log11, setLog] =
|
|
45943
|
-
const prevStatesRef =
|
|
45944
|
-
|
|
45762
|
+
const [log11, setLog] = React104.useState([]);
|
|
45763
|
+
const prevStatesRef = React104.useRef(/* @__PURE__ */ new Map());
|
|
45764
|
+
React104.useEffect(() => {
|
|
45945
45765
|
for (const trait of traits2) {
|
|
45946
45766
|
const prev = prevStatesRef.current.get(trait.id);
|
|
45947
45767
|
if (prev && prev !== trait.currentState) {
|
|
@@ -46110,10 +45930,10 @@ function VerifyModePanel({
|
|
|
46110
45930
|
localCount
|
|
46111
45931
|
}) {
|
|
46112
45932
|
const { t } = useTranslate();
|
|
46113
|
-
const [expanded, setExpanded] =
|
|
46114
|
-
const scrollRef =
|
|
46115
|
-
const prevCountRef =
|
|
46116
|
-
|
|
45933
|
+
const [expanded, setExpanded] = React104.useState(true);
|
|
45934
|
+
const scrollRef = React104.useRef(null);
|
|
45935
|
+
const prevCountRef = React104.useRef(0);
|
|
45936
|
+
React104.useEffect(() => {
|
|
46117
45937
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
46118
45938
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
46119
45939
|
}
|
|
@@ -46170,10 +45990,10 @@ function RuntimeDebugger({
|
|
|
46170
45990
|
schema
|
|
46171
45991
|
}) {
|
|
46172
45992
|
const { t } = useTranslate();
|
|
46173
|
-
const [isCollapsed, setIsCollapsed] =
|
|
46174
|
-
const [isVisible, setIsVisible] =
|
|
45993
|
+
const [isCollapsed, setIsCollapsed] = React104.useState(mode === "verify" ? true : defaultCollapsed);
|
|
45994
|
+
const [isVisible, setIsVisible] = React104.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
46175
45995
|
const debugData = useDebugData();
|
|
46176
|
-
|
|
45996
|
+
React104.useEffect(() => {
|
|
46177
45997
|
if (mode === "inline") return;
|
|
46178
45998
|
return onDebugToggle((enabled) => {
|
|
46179
45999
|
setIsVisible(enabled);
|
|
@@ -46182,7 +46002,7 @@ function RuntimeDebugger({
|
|
|
46182
46002
|
}
|
|
46183
46003
|
});
|
|
46184
46004
|
}, [mode]);
|
|
46185
|
-
|
|
46005
|
+
React104.useEffect(() => {
|
|
46186
46006
|
if (mode === "inline") return;
|
|
46187
46007
|
const handleKeyDown = (e) => {
|
|
46188
46008
|
if (e.key === "`" && isVisible) {
|
|
@@ -46702,7 +46522,7 @@ var init_StatCard = __esm({
|
|
|
46702
46522
|
const labelToUse = propLabel ?? propTitle;
|
|
46703
46523
|
const eventBus = useEventBus();
|
|
46704
46524
|
const { t } = useTranslate();
|
|
46705
|
-
const handleActionClick =
|
|
46525
|
+
const handleActionClick = React104__default.useCallback(() => {
|
|
46706
46526
|
if (action?.event) {
|
|
46707
46527
|
eventBus.emit(`UI:${action.event}`, {});
|
|
46708
46528
|
}
|
|
@@ -46713,7 +46533,7 @@ var init_StatCard = __esm({
|
|
|
46713
46533
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
46714
46534
|
const isLoading = externalLoading ?? false;
|
|
46715
46535
|
const error = externalError;
|
|
46716
|
-
const computeMetricValue =
|
|
46536
|
+
const computeMetricValue = React104__default.useCallback(
|
|
46717
46537
|
(metric, items) => {
|
|
46718
46538
|
if (metric.value !== void 0) {
|
|
46719
46539
|
return metric.value;
|
|
@@ -46752,7 +46572,7 @@ var init_StatCard = __esm({
|
|
|
46752
46572
|
},
|
|
46753
46573
|
[]
|
|
46754
46574
|
);
|
|
46755
|
-
const schemaStats =
|
|
46575
|
+
const schemaStats = React104__default.useMemo(() => {
|
|
46756
46576
|
if (!metrics || metrics.length === 0) return null;
|
|
46757
46577
|
return metrics.map((metric) => ({
|
|
46758
46578
|
label: metric.label,
|
|
@@ -46760,7 +46580,7 @@ var init_StatCard = __esm({
|
|
|
46760
46580
|
format: metric.format
|
|
46761
46581
|
}));
|
|
46762
46582
|
}, [metrics, data, computeMetricValue]);
|
|
46763
|
-
const calculatedTrend =
|
|
46583
|
+
const calculatedTrend = React104__default.useMemo(() => {
|
|
46764
46584
|
if (manualTrend !== void 0) return manualTrend;
|
|
46765
46585
|
if (previousValue === void 0 || currentValue === void 0)
|
|
46766
46586
|
return void 0;
|
|
@@ -47400,8 +47220,8 @@ var init_SubagentTracePanel = __esm({
|
|
|
47400
47220
|
] });
|
|
47401
47221
|
};
|
|
47402
47222
|
InlineActivityStream = ({ activities, autoScroll = true, className }) => {
|
|
47403
|
-
const endRef =
|
|
47404
|
-
|
|
47223
|
+
const endRef = React104__default.useRef(null);
|
|
47224
|
+
React104__default.useEffect(() => {
|
|
47405
47225
|
if (!autoScroll) return;
|
|
47406
47226
|
endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
|
|
47407
47227
|
}, [activities.length, autoScroll]);
|
|
@@ -47495,7 +47315,7 @@ var init_SubagentTracePanel = __esm({
|
|
|
47495
47315
|
};
|
|
47496
47316
|
SubagentRichCard = ({ subagent }) => {
|
|
47497
47317
|
const { t } = useTranslate();
|
|
47498
|
-
const activities =
|
|
47318
|
+
const activities = React104__default.useMemo(
|
|
47499
47319
|
() => subagentMessagesToActivities(subagent.messages),
|
|
47500
47320
|
[subagent.messages]
|
|
47501
47321
|
);
|
|
@@ -47572,8 +47392,8 @@ var init_SubagentTracePanel = __esm({
|
|
|
47572
47392
|
] });
|
|
47573
47393
|
};
|
|
47574
47394
|
CoordinatorConversation = ({ messages, autoScroll = true, className }) => {
|
|
47575
|
-
const endRef =
|
|
47576
|
-
|
|
47395
|
+
const endRef = React104__default.useRef(null);
|
|
47396
|
+
React104__default.useEffect(() => {
|
|
47577
47397
|
if (!autoScroll) return;
|
|
47578
47398
|
endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
|
|
47579
47399
|
}, [messages.length, autoScroll]);
|
|
@@ -48003,7 +47823,7 @@ var init_Timeline = __esm({
|
|
|
48003
47823
|
}) => {
|
|
48004
47824
|
const { t } = useTranslate();
|
|
48005
47825
|
const entityData = entity ?? [];
|
|
48006
|
-
const items =
|
|
47826
|
+
const items = React104__default.useMemo(() => {
|
|
48007
47827
|
if (propItems) return propItems;
|
|
48008
47828
|
if (entityData.length === 0) return [];
|
|
48009
47829
|
return entityData.map((record, idx) => {
|
|
@@ -48105,7 +47925,7 @@ var init_Timeline = __esm({
|
|
|
48105
47925
|
}
|
|
48106
47926
|
});
|
|
48107
47927
|
function extractToastProps(children) {
|
|
48108
|
-
if (!
|
|
47928
|
+
if (!React104__default.isValidElement(children)) {
|
|
48109
47929
|
if (typeof children === "string") {
|
|
48110
47930
|
return { message: children };
|
|
48111
47931
|
}
|
|
@@ -48147,7 +47967,7 @@ var init_ToastSlot = __esm({
|
|
|
48147
47967
|
eventBus.emit(`${prefix}CLOSE`);
|
|
48148
47968
|
};
|
|
48149
47969
|
if (!isVisible) return null;
|
|
48150
|
-
const isCustomContent =
|
|
47970
|
+
const isCustomContent = React104__default.isValidElement(children) && !message;
|
|
48151
47971
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
48152
47972
|
Toast,
|
|
48153
47973
|
{
|
|
@@ -48164,7 +47984,7 @@ var init_ToastSlot = __esm({
|
|
|
48164
47984
|
}
|
|
48165
47985
|
});
|
|
48166
47986
|
function lazyThree(name, loader) {
|
|
48167
|
-
const Lazy =
|
|
47987
|
+
const Lazy = React104__default.lazy(
|
|
48168
47988
|
() => loader().then((m) => {
|
|
48169
47989
|
const Resolved = m[name];
|
|
48170
47990
|
if (!Resolved) {
|
|
@@ -48176,13 +47996,13 @@ function lazyThree(name, loader) {
|
|
|
48176
47996
|
})
|
|
48177
47997
|
);
|
|
48178
47998
|
function ThreeWrapper(props) {
|
|
48179
|
-
return
|
|
47999
|
+
return React104__default.createElement(
|
|
48180
48000
|
ThreeBoundary,
|
|
48181
48001
|
{ name },
|
|
48182
|
-
|
|
48183
|
-
|
|
48002
|
+
React104__default.createElement(
|
|
48003
|
+
React104__default.Suspense,
|
|
48184
48004
|
{ fallback: null },
|
|
48185
|
-
|
|
48005
|
+
React104__default.createElement(Lazy, props)
|
|
48186
48006
|
)
|
|
48187
48007
|
);
|
|
48188
48008
|
}
|
|
@@ -48389,7 +48209,6 @@ var init_component_registry_generated = __esm({
|
|
|
48389
48209
|
init_Sidebar();
|
|
48390
48210
|
init_SignaturePad();
|
|
48391
48211
|
init_SimpleGrid();
|
|
48392
|
-
init_SimulationCanvas();
|
|
48393
48212
|
init_SimulatorBoard();
|
|
48394
48213
|
init_Skeleton();
|
|
48395
48214
|
init_SocialProof();
|
|
@@ -48462,7 +48281,7 @@ var init_component_registry_generated = __esm({
|
|
|
48462
48281
|
init_WizardContainer();
|
|
48463
48282
|
init_WizardNavigation();
|
|
48464
48283
|
init_WizardProgress();
|
|
48465
|
-
ThreeBoundary = class extends
|
|
48284
|
+
ThreeBoundary = class extends React104__default.Component {
|
|
48466
48285
|
constructor() {
|
|
48467
48286
|
super(...arguments);
|
|
48468
48287
|
__publicField(this, "state", { failed: false });
|
|
@@ -48472,7 +48291,7 @@ var init_component_registry_generated = __esm({
|
|
|
48472
48291
|
}
|
|
48473
48292
|
render() {
|
|
48474
48293
|
if (this.state.failed) {
|
|
48475
|
-
return
|
|
48294
|
+
return React104__default.createElement(
|
|
48476
48295
|
"div",
|
|
48477
48296
|
{
|
|
48478
48297
|
"data-testid": "three-unavailable",
|
|
@@ -48701,7 +48520,6 @@ var init_component_registry_generated = __esm({
|
|
|
48701
48520
|
"Sidebar": Sidebar,
|
|
48702
48521
|
"SignaturePad": SignaturePad,
|
|
48703
48522
|
"SimpleGrid": SimpleGrid,
|
|
48704
|
-
"SimulationCanvas": SimulationCanvas,
|
|
48705
48523
|
"SimulatorBoard": SimulatorBoard,
|
|
48706
48524
|
"Skeleton": Skeleton,
|
|
48707
48525
|
"SocialProof": SocialProof,
|
|
@@ -48796,7 +48614,7 @@ function SuspenseConfigProvider({
|
|
|
48796
48614
|
config,
|
|
48797
48615
|
children
|
|
48798
48616
|
}) {
|
|
48799
|
-
return
|
|
48617
|
+
return React104__default.createElement(
|
|
48800
48618
|
SuspenseConfigContext.Provider,
|
|
48801
48619
|
{ value: config },
|
|
48802
48620
|
children
|
|
@@ -48838,7 +48656,7 @@ function enrichFormFields(fields, entityDef) {
|
|
|
48838
48656
|
}
|
|
48839
48657
|
return { name: field, label: field.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/\b\w/g, (c) => c.toUpperCase()) };
|
|
48840
48658
|
}
|
|
48841
|
-
if (field && typeof field === "object" && !Array.isArray(field) && !
|
|
48659
|
+
if (field && typeof field === "object" && !Array.isArray(field) && !React104__default.isValidElement(field) && !(field instanceof Date)) {
|
|
48842
48660
|
const obj = field;
|
|
48843
48661
|
const fieldName = typeof obj.name === "string" ? obj.name : typeof obj.field === "string" ? obj.field : void 0;
|
|
48844
48662
|
if (!fieldName) return field;
|
|
@@ -49291,7 +49109,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
49291
49109
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
49292
49110
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
49293
49111
|
}
|
|
49294
|
-
return /* @__PURE__ */ jsx(
|
|
49112
|
+
return /* @__PURE__ */ jsx(React104__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
49295
49113
|
}
|
|
49296
49114
|
if (!child || typeof child !== "object") return null;
|
|
49297
49115
|
const childId = `${parentId}-${index}`;
|
|
@@ -49331,14 +49149,14 @@ function isPatternConfig(value) {
|
|
|
49331
49149
|
if (value === null || value === void 0) return false;
|
|
49332
49150
|
if (typeof value !== "object") return false;
|
|
49333
49151
|
if (Array.isArray(value)) return false;
|
|
49334
|
-
if (
|
|
49152
|
+
if (React104__default.isValidElement(value)) return false;
|
|
49335
49153
|
if (value instanceof Date) return false;
|
|
49336
49154
|
if (typeof value === "function") return false;
|
|
49337
49155
|
const record = value;
|
|
49338
49156
|
return "type" in record && typeof record.type === "string" && getComponentForPattern$1(record.type) !== null;
|
|
49339
49157
|
}
|
|
49340
49158
|
function isPlainConfigObject(value) {
|
|
49341
|
-
if (
|
|
49159
|
+
if (React104__default.isValidElement(value)) return false;
|
|
49342
49160
|
if (value instanceof Date) return false;
|
|
49343
49161
|
const proto = Object.getPrototypeOf(value);
|
|
49344
49162
|
return proto === Object.prototype || proto === null;
|
|
@@ -49464,7 +49282,7 @@ function SlotContentRenderer({
|
|
|
49464
49282
|
for (const slotKey of CONTENT_NODE_SLOTS) {
|
|
49465
49283
|
const slotVal = restProps[slotKey];
|
|
49466
49284
|
if (slotVal === void 0 || slotVal === null) continue;
|
|
49467
|
-
if (
|
|
49285
|
+
if (React104__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
|
|
49468
49286
|
if (Array.isArray(slotVal) || typeof slotVal === "object" && "type" in slotVal) {
|
|
49469
49287
|
nodeSlotOverrides[slotKey] = renderPatternChildren(
|
|
49470
49288
|
slotVal,
|
|
@@ -49513,7 +49331,7 @@ function SlotContentRenderer({
|
|
|
49513
49331
|
const resolvedItems = Array.isArray(entityVal) && entityVal[0] !== "fn" ? entityVal : null;
|
|
49514
49332
|
if (resolvedItems && resolvedItems.length > 0 && !finalProps.fields && !finalProps.columns) {
|
|
49515
49333
|
const sample = resolvedItems[0];
|
|
49516
|
-
if (sample && typeof sample === "object" && !Array.isArray(sample) && !
|
|
49334
|
+
if (sample && typeof sample === "object" && !Array.isArray(sample) && !React104__default.isValidElement(sample) && !(sample instanceof Date)) {
|
|
49517
49335
|
const keys = Object.keys(sample).filter((k) => k !== "id" && k !== "_id");
|
|
49518
49336
|
finalProps.fields = keys.map((k, i) => ({ name: k, variant: i === 0 ? "h4" : "body" }));
|
|
49519
49337
|
}
|
|
@@ -49876,7 +49694,7 @@ var AvlTransition = ({
|
|
|
49876
49694
|
opacity = 1,
|
|
49877
49695
|
className
|
|
49878
49696
|
}) => {
|
|
49879
|
-
const ids =
|
|
49697
|
+
const ids = React104__default.useMemo(() => {
|
|
49880
49698
|
avlTransitionId += 1;
|
|
49881
49699
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
49882
49700
|
}, []);
|
|
@@ -50437,7 +50255,7 @@ var AvlStateMachine = ({
|
|
|
50437
50255
|
color = "var(--color-primary)",
|
|
50438
50256
|
animated = false
|
|
50439
50257
|
}) => {
|
|
50440
|
-
const ids =
|
|
50258
|
+
const ids = React104__default.useMemo(() => {
|
|
50441
50259
|
avlSmId += 1;
|
|
50442
50260
|
const base = `avl-sm-${avlSmId}`;
|
|
50443
50261
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -50636,7 +50454,7 @@ var AvlOrbitalUnit = ({
|
|
|
50636
50454
|
color = "var(--color-primary)",
|
|
50637
50455
|
animated = false
|
|
50638
50456
|
}) => {
|
|
50639
|
-
const ids =
|
|
50457
|
+
const ids = React104__default.useMemo(() => {
|
|
50640
50458
|
avlOuId += 1;
|
|
50641
50459
|
const base = `avl-ou-${avlOuId}`;
|
|
50642
50460
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -50732,7 +50550,7 @@ var AvlClosedCircuit = ({
|
|
|
50732
50550
|
color = "var(--color-primary)",
|
|
50733
50551
|
animated = false
|
|
50734
50552
|
}) => {
|
|
50735
|
-
const ids =
|
|
50553
|
+
const ids = React104__default.useMemo(() => {
|
|
50736
50554
|
avlCcId += 1;
|
|
50737
50555
|
const base = `avl-cc-${avlCcId}`;
|
|
50738
50556
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -50887,7 +50705,7 @@ var AvlEmitListen = ({
|
|
|
50887
50705
|
color = "var(--color-primary)",
|
|
50888
50706
|
animated = false
|
|
50889
50707
|
}) => {
|
|
50890
|
-
const ids =
|
|
50708
|
+
const ids = React104__default.useMemo(() => {
|
|
50891
50709
|
avlElId += 1;
|
|
50892
50710
|
const base = `avl-el-${avlElId}`;
|
|
50893
50711
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -51161,7 +50979,7 @@ function renderNode(node, color, glowId) {
|
|
|
51161
50979
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
51162
50980
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
51163
50981
|
const nc = nodeColor(node.type, color);
|
|
51164
|
-
return /* @__PURE__ */ jsxs(
|
|
50982
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
51165
50983
|
node.children.map((child, i) => {
|
|
51166
50984
|
const childR = Math.max(
|
|
51167
50985
|
child.type === "operator" ? 20 : 16,
|
|
@@ -51218,7 +51036,7 @@ var AvlExprTree = ({
|
|
|
51218
51036
|
className,
|
|
51219
51037
|
color = "var(--color-primary)"
|
|
51220
51038
|
}) => {
|
|
51221
|
-
const ids =
|
|
51039
|
+
const ids = React104__default.useMemo(() => {
|
|
51222
51040
|
avlEtId += 1;
|
|
51223
51041
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
51224
51042
|
}, []);
|
|
@@ -52053,7 +51871,7 @@ var SystemNode = ({ data }) => {
|
|
|
52053
51871
|
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) => {
|
|
52054
51872
|
const tc = transitionCounts[s.name] ?? 0;
|
|
52055
51873
|
const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
|
|
52056
|
-
return /* @__PURE__ */ jsxs(
|
|
51874
|
+
return /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
52057
51875
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial ?? void 0, isTerminal: s.isTerminal ?? void 0 }),
|
|
52058
51876
|
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 })
|
|
52059
51877
|
] }, s.name);
|
|
@@ -53198,7 +53016,7 @@ function resolveLambdaBindings(body, params, item, index) {
|
|
|
53198
53016
|
if (Array.isArray(body)) {
|
|
53199
53017
|
return body.map((b) => recur(b));
|
|
53200
53018
|
}
|
|
53201
|
-
if (body !== null && typeof body === "object" && !
|
|
53019
|
+
if (body !== null && typeof body === "object" && !React104__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
53202
53020
|
const out = {};
|
|
53203
53021
|
for (const [k, v] of Object.entries(body)) {
|
|
53204
53022
|
out[k] = recur(v);
|
|
@@ -53217,7 +53035,7 @@ function getSlotContentRenderer2() {
|
|
|
53217
53035
|
function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
53218
53036
|
return (item, index) => {
|
|
53219
53037
|
const resolvedBody = resolveLambdaBindings(lambdaBody, params, item, index);
|
|
53220
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
53038
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React104__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
53221
53039
|
return null;
|
|
53222
53040
|
}
|
|
53223
53041
|
const record = resolvedBody;
|
|
@@ -53236,7 +53054,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
|
53236
53054
|
props: childProps,
|
|
53237
53055
|
priority: 0
|
|
53238
53056
|
};
|
|
53239
|
-
return
|
|
53057
|
+
return React104__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
53240
53058
|
};
|
|
53241
53059
|
}
|
|
53242
53060
|
function convertNode(node, callerKey) {
|
|
@@ -53255,7 +53073,7 @@ function convertNode(node, callerKey) {
|
|
|
53255
53073
|
});
|
|
53256
53074
|
return anyChanged ? mapped : node;
|
|
53257
53075
|
}
|
|
53258
|
-
if (typeof node === "object" && !
|
|
53076
|
+
if (typeof node === "object" && !React104__default.isValidElement(node) && !(node instanceof Date)) {
|
|
53259
53077
|
return convertObjectProps(node);
|
|
53260
53078
|
}
|
|
53261
53079
|
return node;
|
|
@@ -53762,42 +53580,14 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
|
|
|
53762
53580
|
});
|
|
53763
53581
|
}, [executeTransitionEffects]);
|
|
53764
53582
|
useEffect(() => {
|
|
53765
|
-
const
|
|
53766
|
-
(b) => b.trait.ticks?.some((t) => t.interval === "frame")
|
|
53767
|
-
);
|
|
53768
|
-
if (!hasFrameTicks) return;
|
|
53769
|
-
let running = true;
|
|
53770
|
-
let rafId = 0;
|
|
53771
|
-
const frame = () => {
|
|
53772
|
-
if (!running) return;
|
|
53773
|
-
for (const binding of traitBindingsRef.current) {
|
|
53774
|
-
for (const tick of binding.trait.ticks ?? []) {
|
|
53775
|
-
if (tick.interval !== "frame") continue;
|
|
53776
|
-
runTickEffects(tick, binding);
|
|
53777
|
-
}
|
|
53778
|
-
}
|
|
53779
|
-
rafId = requestAnimationFrame(frame);
|
|
53780
|
-
};
|
|
53781
|
-
rafId = requestAnimationFrame(frame);
|
|
53782
|
-
return () => {
|
|
53783
|
-
running = false;
|
|
53784
|
-
cancelAnimationFrame(rafId);
|
|
53785
|
-
};
|
|
53786
|
-
}, [traitBindings, runTickEffects]);
|
|
53787
|
-
useEffect(() => {
|
|
53788
|
-
const intervals = [];
|
|
53583
|
+
const scheduler = createTickScheduler();
|
|
53789
53584
|
for (const binding of traitBindings) {
|
|
53790
53585
|
for (const tick of binding.trait.ticks ?? []) {
|
|
53791
|
-
|
|
53792
|
-
|
|
53793
|
-
intervals.push(setInterval(() => {
|
|
53794
|
-
runTickEffects(tick, binding);
|
|
53795
|
-
}, ms));
|
|
53586
|
+
const intervalMs = tick.interval === "frame" ? 0 : tick.interval;
|
|
53587
|
+
scheduler.add(intervalMs, () => runTickEffects(tick, binding));
|
|
53796
53588
|
}
|
|
53797
53589
|
}
|
|
53798
|
-
return () =>
|
|
53799
|
-
for (const id of intervals) clearInterval(id);
|
|
53800
|
-
};
|
|
53590
|
+
return () => scheduler.stopAll();
|
|
53801
53591
|
}, [traitBindings, runTickEffects]);
|
|
53802
53592
|
const processEventQueued = useCallback(async (eventKey, payload) => {
|
|
53803
53593
|
const normalizedEvent = normalizeEventKey(eventKey);
|
|
@@ -54918,8 +54708,8 @@ function CanvasDndProvider({
|
|
|
54918
54708
|
}) {
|
|
54919
54709
|
const eventBus = useEventBus();
|
|
54920
54710
|
const sensors = useAlmadarDndSensors(false);
|
|
54921
|
-
const [activePayload, setActivePayload] =
|
|
54922
|
-
const handleDragStart =
|
|
54711
|
+
const [activePayload, setActivePayload] = React104__default.useState(null);
|
|
54712
|
+
const handleDragStart = React104__default.useCallback((e) => {
|
|
54923
54713
|
const data = e.active.data.current;
|
|
54924
54714
|
const payload = data?.payload;
|
|
54925
54715
|
if (payload) {
|
|
@@ -54930,7 +54720,7 @@ function CanvasDndProvider({
|
|
|
54930
54720
|
log9.warn("dragStart:missing-payload", { id: e.active.id });
|
|
54931
54721
|
}
|
|
54932
54722
|
}, [eventBus]);
|
|
54933
|
-
const handleDragEnd =
|
|
54723
|
+
const handleDragEnd = React104__default.useCallback((e) => {
|
|
54934
54724
|
setActivePayload(null);
|
|
54935
54725
|
const activeData = e.active.data.current;
|
|
54936
54726
|
const payload = activeData?.payload;
|
|
@@ -54959,7 +54749,7 @@ function CanvasDndProvider({
|
|
|
54959
54749
|
const suppressed = onDrop ? onDrop(drop) === true : false;
|
|
54960
54750
|
if (!suppressed) defaultEmit(eventBus, drop);
|
|
54961
54751
|
}, [eventBus, onDrop]);
|
|
54962
|
-
const handleDragCancel =
|
|
54752
|
+
const handleDragCancel = React104__default.useCallback(() => {
|
|
54963
54753
|
setActivePayload(null);
|
|
54964
54754
|
log9.info("dragCancel");
|
|
54965
54755
|
}, []);
|
|
@@ -55717,7 +55507,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
55717
55507
|
}
|
|
55718
55508
|
);
|
|
55719
55509
|
};
|
|
55720
|
-
var OrbPreviewNode =
|
|
55510
|
+
var OrbPreviewNode = React104__default.memo(OrbPreviewNodeInner);
|
|
55721
55511
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
55722
55512
|
orbPreviewLog.debug("export-resolved", () => ({
|
|
55723
55513
|
type: typeof OrbPreviewNode,
|
|
@@ -55822,7 +55612,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
55822
55612
|
) })
|
|
55823
55613
|
] });
|
|
55824
55614
|
};
|
|
55825
|
-
var EventFlowEdge =
|
|
55615
|
+
var EventFlowEdge = React104__default.memo(EventFlowEdgeInner);
|
|
55826
55616
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
55827
55617
|
|
|
55828
55618
|
// components/avl/molecules/BehaviorComposeNode.tsx
|
|
@@ -55969,7 +55759,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
55969
55759
|
}
|
|
55970
55760
|
);
|
|
55971
55761
|
};
|
|
55972
|
-
var BehaviorComposeNode =
|
|
55762
|
+
var BehaviorComposeNode = React104__default.memo(BehaviorComposeNodeInner);
|
|
55973
55763
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
55974
55764
|
|
|
55975
55765
|
// components/avl/lib/avl-behavior-compose-converter.ts
|
|
@@ -56995,7 +56785,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
56995
56785
|
}
|
|
56996
56786
|
);
|
|
56997
56787
|
};
|
|
56998
|
-
var TraitCardNode =
|
|
56788
|
+
var TraitCardNode = React104__default.memo(TraitCardNodeInner);
|
|
56999
56789
|
TraitCardNode.displayName = "TraitCardNode";
|
|
57000
56790
|
|
|
57001
56791
|
// components/avl/organisms/FlowCanvas.tsx
|
|
@@ -57068,7 +56858,7 @@ function FlowCanvasInner({
|
|
|
57068
56858
|
initialOrbital
|
|
57069
56859
|
);
|
|
57070
56860
|
const [expandedBehaviorAlias, setExpandedBehaviorAlias] = useState(void 0);
|
|
57071
|
-
const screenSizeUserOverrideRef =
|
|
56861
|
+
const screenSizeUserOverrideRef = React104__default.useRef(false);
|
|
57072
56862
|
const [screenSize, setScreenSize] = useState(
|
|
57073
56863
|
() => typeof window === "undefined" ? "laptop" : detectScreenSize(window.innerWidth)
|
|
57074
56864
|
);
|
|
@@ -57452,7 +57242,7 @@ var ZoomBreadcrumb = ({
|
|
|
57452
57242
|
if (eventName && band === "detail") {
|
|
57453
57243
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
57454
57244
|
}
|
|
57455
|
-
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(
|
|
57245
|
+
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(React104__default.Fragment, { children: [
|
|
57456
57246
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
57457
57247
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
57458
57248
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -57793,7 +57583,7 @@ var EventWireOverlay = ({
|
|
|
57793
57583
|
containerW,
|
|
57794
57584
|
containerH
|
|
57795
57585
|
}) => {
|
|
57796
|
-
const ids =
|
|
57586
|
+
const ids = React104__default.useMemo(() => {
|
|
57797
57587
|
avlOczWireId += 1;
|
|
57798
57588
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
57799
57589
|
}, []);
|
|
@@ -58160,7 +57950,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
58160
57950
|
borderRadius: 6,
|
|
58161
57951
|
border: `1px solid ${color}`
|
|
58162
57952
|
},
|
|
58163
|
-
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
57953
|
+
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React104__default.Fragment, { children: [
|
|
58164
57954
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
58165
57955
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
58166
57956
|
Box,
|