@almadar/ui 2.61.1 → 3.1.2
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 +1344 -1507
- package/dist/avl/index.css +7 -2
- package/dist/avl/index.js +268 -431
- package/dist/components/index.cjs +40 -38
- package/dist/components/index.css +7 -2
- package/dist/components/index.js +41 -39
- package/dist/components/organisms/DataTable.d.ts +3 -2
- package/dist/components/organisms/JazariStateMachine.d.ts +10 -37
- package/dist/components/organisms/MasterDetail.d.ts +4 -3
- package/dist/components/organisms/MediaGallery.d.ts +3 -2
- package/dist/components/organisms/Sidebar.d.ts +7 -2
- package/dist/components/organisms/StateMachineView.d.ts +7 -2
- package/dist/components/organisms/Table.d.ts +2 -1
- package/dist/components/organisms/Timeline.d.ts +15 -2
- package/dist/components/organisms/book/BookChapterView.d.ts +3 -2
- package/dist/components/organisms/book/BookCoverPage.d.ts +3 -3
- package/dist/components/organisms/book/BookNavBar.d.ts +3 -3
- package/dist/components/organisms/book/BookTableOfContents.d.ts +3 -2
- package/dist/components/organisms/book/BookViewer.d.ts +2 -2
- package/dist/components/organisms/book/types.d.ts +9 -4
- package/dist/components/organisms/game/WorldMapBoard.d.ts +9 -3
- package/dist/components/organisms/game/three/index.cjs +8 -4
- package/dist/components/organisms/game/three/index.js +8 -4
- package/dist/components/organisms/marketing-types.d.ts +22 -12
- package/dist/components/organisms/types.d.ts +24 -12
- package/dist/components/templates/types.d.ts +7 -2
- package/dist/docs/index.cjs +6 -2
- package/dist/docs/index.d.cts +1 -1
- package/dist/docs/index.js +6 -2
- package/dist/hooks/event-bus-types.d.ts +19 -27
- package/dist/hooks/index.cjs +13 -6
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +13 -6
- package/dist/hooks/useEventBus.d.ts +3 -3
- package/dist/lib/index.cjs +5 -2
- package/dist/lib/index.js +5 -2
- package/dist/lib/verificationRegistry.d.ts +3 -5
- package/dist/marketing/index.cjs +6 -2
- package/dist/marketing/index.js +6 -2
- package/dist/providers/index.cjs +997 -1168
- package/dist/providers/index.css +7 -2
- package/dist/providers/index.d.ts +0 -2
- package/dist/providers/index.js +241 -406
- package/dist/runtime/index.cjs +47 -70
- package/dist/runtime/index.css +7 -2
- package/dist/runtime/index.js +48 -71
- package/package.json +4 -4
- package/dist/providers/EntityStoreProvider.d.ts +0 -63
package/dist/avl/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { Html, RoundedBox, OrbitControls as OrbitControls$1, Grid as Grid$1, Stars, Sparkles } from '@react-three/drei';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React126 from 'react';
|
|
4
|
+
import React126__default, { createContext, useContext, useRef, useState, useCallback, useMemo, useEffect, Suspense, useLayoutEffect, useReducer, lazy, useId, forwardRef, useImperativeHandle, Component } from 'react';
|
|
5
5
|
import * as LucideIcons from 'lucide-react';
|
|
6
6
|
import { Loader2, ChevronDown, X, Check, Copy, AlertTriangle, Info, AlertCircle, CheckCircle, List, Printer, ChevronRight, ChevronLeft, Code, FileText, WrapText, Trash2, Settings, Menu as Menu$1, Search, Bell, LogOut, ZoomOut, ZoomIn, Download, FileQuestion, Inbox, XCircle, Filter, Plus, Pause, Play, RotateCcw, Package, Calendar, Pencil, Eye, MoreHorizontal, Image as Image$1, Upload, Minus, ArrowLeft, HelpCircle, ChevronUp, Eraser, Star, TrendingUp, TrendingDown, ArrowUp, ArrowDown, MoreVertical, Sun, Moon, Circle, Clock, CheckCircle2, ArrowRight, FileWarning, SkipForward, Bug, Send, Wrench, User, Tag, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
|
|
7
7
|
import { evaluate, createMinimalContext } from '@almadar/evaluator';
|
|
@@ -31,6 +31,7 @@ import langDiff from 'react-syntax-highlighter/dist/esm/languages/prism/diff.js'
|
|
|
31
31
|
import langToml from 'react-syntax-highlighter/dist/esm/languages/prism/toml.js';
|
|
32
32
|
import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go.js';
|
|
33
33
|
import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql.js';
|
|
34
|
+
import { FieldTypeSchema, isEntityCall, schemaToIR, getPage, isCircuitEvent, isInlineTrait } from '@almadar/core';
|
|
34
35
|
import { useFrame, useThree, Canvas } from '@react-three/fiber';
|
|
35
36
|
import * as THREE6 from 'three';
|
|
36
37
|
import { MathUtils, Vector3, Quaternion, QuadraticBezierCurve3 } from 'three';
|
|
@@ -41,7 +42,6 @@ import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
|
41
42
|
import { EffectComposer, Bloom, DepthOfField, Vignette } from '@react-three/postprocessing';
|
|
42
43
|
import ELK from 'elkjs/lib/elk.bundled.js';
|
|
43
44
|
import { MarkerType, Handle, Position, getBezierPath, EdgeLabelRenderer, BaseEdge, ReactFlowProvider, useNodesState, useEdgesState, useReactFlow, ReactFlow, Controls, Background, BackgroundVariant } from '@xyflow/react';
|
|
44
|
-
import { FieldTypeSchema, isEntityCall, schemaToIR, getPage, isCircuitEvent } from '@almadar/core';
|
|
45
45
|
import '@tanstack/react-query';
|
|
46
46
|
import { StateMachineManager, createContextFromBindings, interpolateValue, EffectExecutor } from '@almadar/runtime';
|
|
47
47
|
|
|
@@ -2907,11 +2907,15 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
2907
2907
|
deprecationWarningShown.current = true;
|
|
2908
2908
|
}
|
|
2909
2909
|
}, []);
|
|
2910
|
-
const emit = useCallback((type, payload) => {
|
|
2910
|
+
const emit = useCallback((type, payload, source) => {
|
|
2911
2911
|
const event = {
|
|
2912
2912
|
type,
|
|
2913
|
+
// Narrow at the bus boundary: public emit takes Record for ergonomics
|
|
2914
|
+
// (generic UI components pass consumer-defined rows) while the envelope
|
|
2915
|
+
// stores the payload as EventPayload for listeners.
|
|
2913
2916
|
payload,
|
|
2914
|
-
timestamp: Date.now()
|
|
2917
|
+
timestamp: Date.now(),
|
|
2918
|
+
source
|
|
2915
2919
|
};
|
|
2916
2920
|
const listeners6 = listenersRef.current.get(type);
|
|
2917
2921
|
const listenerCount = (listeners6?.size ?? 0) + anyListenersRef.current.size;
|
|
@@ -2986,7 +2990,7 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
2986
2990
|
}
|
|
2987
2991
|
};
|
|
2988
2992
|
}, [debug2]);
|
|
2989
|
-
const
|
|
2993
|
+
const contextValue = useMemo(
|
|
2990
2994
|
() => ({
|
|
2991
2995
|
emit,
|
|
2992
2996
|
on,
|
|
@@ -2999,12 +3003,12 @@ function EventBusProvider({ children, debug: debug2 = false }) {
|
|
|
2999
3003
|
[emit, on, once, hasListeners, onAny, getSelectedEntity, clearSelectedEntity]
|
|
3000
3004
|
);
|
|
3001
3005
|
useEffect(() => {
|
|
3002
|
-
setGlobalEventBus(
|
|
3006
|
+
setGlobalEventBus(contextValue);
|
|
3003
3007
|
return () => {
|
|
3004
3008
|
setGlobalEventBus(null);
|
|
3005
3009
|
};
|
|
3006
|
-
}, [
|
|
3007
|
-
return /* @__PURE__ */ jsx(EventBusContext.Provider, { value:
|
|
3010
|
+
}, [contextValue]);
|
|
3011
|
+
return /* @__PURE__ */ jsx(EventBusContext.Provider, { value: contextValue, children });
|
|
3008
3012
|
}
|
|
3009
3013
|
var busLog, subLog, EventBusContext;
|
|
3010
3014
|
var init_EventBusProvider = __esm({
|
|
@@ -3061,8 +3065,8 @@ function useEventListener(event, handler) {
|
|
|
3061
3065
|
function useEmitEvent() {
|
|
3062
3066
|
const eventBus = useEventBus();
|
|
3063
3067
|
return useCallback(
|
|
3064
|
-
(type, payload) => {
|
|
3065
|
-
eventBus.emit(type, payload);
|
|
3068
|
+
(type, payload, source) => {
|
|
3069
|
+
eventBus.emit(type, payload, source);
|
|
3066
3070
|
},
|
|
3067
3071
|
[eventBus]
|
|
3068
3072
|
);
|
|
@@ -3078,11 +3082,15 @@ var init_useEventBus = __esm({
|
|
|
3078
3082
|
fallbackListeners = /* @__PURE__ */ new Map();
|
|
3079
3083
|
fallbackAnyListeners = /* @__PURE__ */ new Set();
|
|
3080
3084
|
fallbackEventBus = {
|
|
3081
|
-
emit: (type, payload) => {
|
|
3085
|
+
emit: (type, payload, source) => {
|
|
3082
3086
|
const event = {
|
|
3083
3087
|
type,
|
|
3088
|
+
// Narrow at the bus boundary: public emit accepts an opaque object so
|
|
3089
|
+
// generic UI emit sites don't require casts; the envelope stores the
|
|
3090
|
+
// payload as EventPayload which listeners consume directly.
|
|
3084
3091
|
payload,
|
|
3085
|
-
timestamp: Date.now()
|
|
3092
|
+
timestamp: Date.now(),
|
|
3093
|
+
source
|
|
3086
3094
|
};
|
|
3087
3095
|
const handlers = fallbackListeners.get(type);
|
|
3088
3096
|
log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
|
|
@@ -3250,7 +3258,7 @@ var init_Box = __esm({
|
|
|
3250
3258
|
fixed: "fixed",
|
|
3251
3259
|
sticky: "sticky"
|
|
3252
3260
|
};
|
|
3253
|
-
Box =
|
|
3261
|
+
Box = React126__default.forwardRef(
|
|
3254
3262
|
({
|
|
3255
3263
|
padding,
|
|
3256
3264
|
paddingX,
|
|
@@ -4018,7 +4026,7 @@ var init_ThemeContext = __esm({
|
|
|
4018
4026
|
const newMode = resolvedMode === "dark" ? "light" : "dark";
|
|
4019
4027
|
setMode(newMode);
|
|
4020
4028
|
}, [resolvedMode, setMode]);
|
|
4021
|
-
const
|
|
4029
|
+
const contextValue = useMemo(
|
|
4022
4030
|
() => ({
|
|
4023
4031
|
theme,
|
|
4024
4032
|
mode,
|
|
@@ -4040,151 +4048,10 @@ var init_ThemeContext = __esm({
|
|
|
4040
4048
|
appliedTheme
|
|
4041
4049
|
]
|
|
4042
4050
|
);
|
|
4043
|
-
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value:
|
|
4051
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: contextValue, children });
|
|
4044
4052
|
};
|
|
4045
4053
|
}
|
|
4046
4054
|
});
|
|
4047
|
-
function extractId(record) {
|
|
4048
|
-
const r2 = record;
|
|
4049
|
-
return String(r2.id ?? r2._id ?? r2.key ?? "");
|
|
4050
|
-
}
|
|
4051
|
-
function materialize(snap) {
|
|
4052
|
-
return snap.ids.map((id) => snap.entities.get(id));
|
|
4053
|
-
}
|
|
4054
|
-
function notifyListeners(entityType, prev) {
|
|
4055
|
-
for (const listener of storeListeners) {
|
|
4056
|
-
listener();
|
|
4057
|
-
}
|
|
4058
|
-
const cbs = watchCallbacks.get(entityType);
|
|
4059
|
-
if (cbs) {
|
|
4060
|
-
const oldData = prev ? materialize(prev) : [];
|
|
4061
|
-
const cur = store.get(entityType);
|
|
4062
|
-
const newData = cur ? materialize(cur) : [];
|
|
4063
|
-
for (const cb of cbs) {
|
|
4064
|
-
try {
|
|
4065
|
-
cb(oldData, newData);
|
|
4066
|
-
} catch {
|
|
4067
|
-
}
|
|
4068
|
-
}
|
|
4069
|
-
}
|
|
4070
|
-
}
|
|
4071
|
-
function setAll(entityType, records) {
|
|
4072
|
-
const entities = /* @__PURE__ */ new Map();
|
|
4073
|
-
const ids = [];
|
|
4074
|
-
for (const r2 of records) {
|
|
4075
|
-
const rec = r2;
|
|
4076
|
-
const id = extractId(rec);
|
|
4077
|
-
if (id) {
|
|
4078
|
-
entities.set(id, rec);
|
|
4079
|
-
ids.push(id);
|
|
4080
|
-
}
|
|
4081
|
-
}
|
|
4082
|
-
const prev = store.get(entityType);
|
|
4083
|
-
const newVersion = (prev?.version ?? 0) + 1;
|
|
4084
|
-
store.set(entityType, { entities, ids, version: newVersion });
|
|
4085
|
-
storeLog.debug("setAll", { entityType, recordCount: records.length, version: newVersion });
|
|
4086
|
-
notifyListeners(entityType, prev);
|
|
4087
|
-
}
|
|
4088
|
-
function upsertOne(entityType, record) {
|
|
4089
|
-
const id = extractId(record);
|
|
4090
|
-
if (!id) return;
|
|
4091
|
-
const prev = store.get(entityType);
|
|
4092
|
-
const snapshot = prev ? { entities: new Map(prev.entities), ids: [...prev.ids], version: prev.version } : { entities: /* @__PURE__ */ new Map(), ids: [], version: 0 };
|
|
4093
|
-
snapshot.entities.set(id, record);
|
|
4094
|
-
if (!snapshot.ids.includes(id)) snapshot.ids.push(id);
|
|
4095
|
-
snapshot.version++;
|
|
4096
|
-
store.set(entityType, snapshot);
|
|
4097
|
-
storeLog.debug("upsertOne", { entityType, id, version: snapshot.version });
|
|
4098
|
-
notifyListeners(entityType, prev);
|
|
4099
|
-
}
|
|
4100
|
-
function addOne(entityType, record) {
|
|
4101
|
-
upsertOne(entityType, record);
|
|
4102
|
-
}
|
|
4103
|
-
function updateOne(entityType, id, changes) {
|
|
4104
|
-
const prev = store.get(entityType);
|
|
4105
|
-
if (!prev?.entities.has(id)) return;
|
|
4106
|
-
const snapshot = {
|
|
4107
|
-
entities: new Map(prev.entities),
|
|
4108
|
-
ids: [...prev.ids],
|
|
4109
|
-
version: prev.version
|
|
4110
|
-
};
|
|
4111
|
-
snapshot.entities.set(id, { ...snapshot.entities.get(id), ...changes });
|
|
4112
|
-
snapshot.version++;
|
|
4113
|
-
store.set(entityType, snapshot);
|
|
4114
|
-
storeLog.debug("updateOne", { entityType, id, changedFields: Object.keys(changes), version: snapshot.version });
|
|
4115
|
-
notifyListeners(entityType, prev);
|
|
4116
|
-
}
|
|
4117
|
-
function removeOne(entityType, id) {
|
|
4118
|
-
const prev = store.get(entityType);
|
|
4119
|
-
if (!prev) return;
|
|
4120
|
-
const snapshot = {
|
|
4121
|
-
entities: new Map(prev.entities),
|
|
4122
|
-
ids: prev.ids.filter((i) => i !== id),
|
|
4123
|
-
version: prev.version
|
|
4124
|
-
};
|
|
4125
|
-
snapshot.entities.delete(id);
|
|
4126
|
-
snapshot.version++;
|
|
4127
|
-
store.set(entityType, snapshot);
|
|
4128
|
-
storeLog.debug("removeOne", { entityType, id, remainingCount: snapshot.ids.length, version: snapshot.version });
|
|
4129
|
-
notifyListeners(entityType, prev);
|
|
4130
|
-
}
|
|
4131
|
-
function getSnapshot(entityType) {
|
|
4132
|
-
const snap = store.get(entityType);
|
|
4133
|
-
if (!snap) return [];
|
|
4134
|
-
return materialize(snap);
|
|
4135
|
-
}
|
|
4136
|
-
function getById(entityType, id) {
|
|
4137
|
-
return store.get(entityType)?.entities.get(id) ?? null;
|
|
4138
|
-
}
|
|
4139
|
-
function getVersion(entityType) {
|
|
4140
|
-
return store.get(entityType)?.version ?? 0;
|
|
4141
|
-
}
|
|
4142
|
-
function subscribeToStore(listener) {
|
|
4143
|
-
storeListeners.add(listener);
|
|
4144
|
-
return () => {
|
|
4145
|
-
storeListeners.delete(listener);
|
|
4146
|
-
};
|
|
4147
|
-
}
|
|
4148
|
-
function useEntityRef(entityType) {
|
|
4149
|
-
const versionRef = useRef(0);
|
|
4150
|
-
const dataRef = useRef([]);
|
|
4151
|
-
const getSnapshotStable = React127__default.useCallback(() => {
|
|
4152
|
-
const currentVersion = getVersion(entityType);
|
|
4153
|
-
if (currentVersion !== versionRef.current) {
|
|
4154
|
-
versionRef.current = currentVersion;
|
|
4155
|
-
dataRef.current = getSnapshot(entityType);
|
|
4156
|
-
}
|
|
4157
|
-
return dataRef.current;
|
|
4158
|
-
}, [entityType]);
|
|
4159
|
-
return useSyncExternalStore(subscribeToStore, getSnapshotStable, () => []);
|
|
4160
|
-
}
|
|
4161
|
-
function useEntityStore() {
|
|
4162
|
-
return useContext(EntityStoreContext);
|
|
4163
|
-
}
|
|
4164
|
-
function EntityStoreProvider({ children }) {
|
|
4165
|
-
return /* @__PURE__ */ jsx(EntityStoreContext.Provider, { value: contextValue, children });
|
|
4166
|
-
}
|
|
4167
|
-
var storeLog, store, storeListeners, watchCallbacks, contextValue, EntityStoreContext;
|
|
4168
|
-
var init_EntityStoreProvider = __esm({
|
|
4169
|
-
"providers/EntityStoreProvider.tsx"() {
|
|
4170
|
-
"use client";
|
|
4171
|
-
init_logger();
|
|
4172
|
-
storeLog = createLogger("almadar:entity:store");
|
|
4173
|
-
store = /* @__PURE__ */ new Map();
|
|
4174
|
-
storeListeners = /* @__PURE__ */ new Set();
|
|
4175
|
-
watchCallbacks = /* @__PURE__ */ new Map();
|
|
4176
|
-
contextValue = {
|
|
4177
|
-
setAll,
|
|
4178
|
-
upsertOne,
|
|
4179
|
-
addOne,
|
|
4180
|
-
updateOne,
|
|
4181
|
-
removeOne,
|
|
4182
|
-
getSnapshot,
|
|
4183
|
-
getById
|
|
4184
|
-
};
|
|
4185
|
-
EntityStoreContext = createContext(contextValue);
|
|
4186
|
-
}
|
|
4187
|
-
});
|
|
4188
4055
|
function EntitySchemaProvider({
|
|
4189
4056
|
entities,
|
|
4190
4057
|
children
|
|
@@ -4196,13 +4063,13 @@ function EntitySchemaProvider({
|
|
|
4196
4063
|
}
|
|
4197
4064
|
return map;
|
|
4198
4065
|
}, [entities]);
|
|
4199
|
-
const
|
|
4066
|
+
const contextValue = useMemo(
|
|
4200
4067
|
() => ({
|
|
4201
4068
|
entities: entitiesMap
|
|
4202
4069
|
}),
|
|
4203
4070
|
[entitiesMap]
|
|
4204
4071
|
);
|
|
4205
|
-
return /* @__PURE__ */ jsx(EntitySchemaContext.Provider, { value:
|
|
4072
|
+
return /* @__PURE__ */ jsx(EntitySchemaContext.Provider, { value: contextValue, children });
|
|
4206
4073
|
}
|
|
4207
4074
|
function useEntitySchema() {
|
|
4208
4075
|
const context = useContext(EntitySchemaContext);
|
|
@@ -4440,8 +4307,8 @@ var init_useUISlots = __esm({
|
|
|
4440
4307
|
});
|
|
4441
4308
|
function UISlotProvider({ children }) {
|
|
4442
4309
|
const slotManager = useUISlotManager();
|
|
4443
|
-
const
|
|
4444
|
-
return /* @__PURE__ */ jsx(UISlotContext.Provider, { value:
|
|
4310
|
+
const contextValue = useMemo(() => slotManager, [slotManager]);
|
|
4311
|
+
return /* @__PURE__ */ jsx(UISlotContext.Provider, { value: contextValue, children });
|
|
4445
4312
|
}
|
|
4446
4313
|
function useUISlots() {
|
|
4447
4314
|
const context = useContext(UISlotContext);
|
|
@@ -4984,7 +4851,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
4984
4851
|
const IconComp = value;
|
|
4985
4852
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
4986
4853
|
}
|
|
4987
|
-
if (
|
|
4854
|
+
if (React126__default.isValidElement(value)) {
|
|
4988
4855
|
return value;
|
|
4989
4856
|
}
|
|
4990
4857
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -5060,7 +4927,7 @@ var init_Button = __esm({
|
|
|
5060
4927
|
md: "h-4 w-4",
|
|
5061
4928
|
lg: "h-5 w-5"
|
|
5062
4929
|
};
|
|
5063
|
-
Button =
|
|
4930
|
+
Button = React126__default.forwardRef(
|
|
5064
4931
|
({
|
|
5065
4932
|
className,
|
|
5066
4933
|
variant = "primary",
|
|
@@ -5163,7 +5030,7 @@ var init_Badge = __esm({
|
|
|
5163
5030
|
md: "px-2.5 py-1 text-sm",
|
|
5164
5031
|
lg: "px-3 py-1.5 text-base"
|
|
5165
5032
|
};
|
|
5166
|
-
Badge =
|
|
5033
|
+
Badge = React126__default.forwardRef(
|
|
5167
5034
|
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
5168
5035
|
const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
5169
5036
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
@@ -5304,7 +5171,7 @@ var Input;
|
|
|
5304
5171
|
var init_Input = __esm({
|
|
5305
5172
|
"components/atoms/Input.tsx"() {
|
|
5306
5173
|
init_cn();
|
|
5307
|
-
Input =
|
|
5174
|
+
Input = React126__default.forwardRef(
|
|
5308
5175
|
({
|
|
5309
5176
|
className,
|
|
5310
5177
|
inputType,
|
|
@@ -5422,7 +5289,7 @@ var Label;
|
|
|
5422
5289
|
var init_Label = __esm({
|
|
5423
5290
|
"components/atoms/Label.tsx"() {
|
|
5424
5291
|
init_cn();
|
|
5425
|
-
Label =
|
|
5292
|
+
Label = React126__default.forwardRef(
|
|
5426
5293
|
({ className, required, children, ...props }, ref) => {
|
|
5427
5294
|
return /* @__PURE__ */ jsxs(
|
|
5428
5295
|
"label",
|
|
@@ -5448,7 +5315,7 @@ var Textarea;
|
|
|
5448
5315
|
var init_Textarea = __esm({
|
|
5449
5316
|
"components/atoms/Textarea.tsx"() {
|
|
5450
5317
|
init_cn();
|
|
5451
|
-
Textarea =
|
|
5318
|
+
Textarea = React126__default.forwardRef(
|
|
5452
5319
|
({ className, error, ...props }, ref) => {
|
|
5453
5320
|
return /* @__PURE__ */ jsx(
|
|
5454
5321
|
"textarea",
|
|
@@ -5477,7 +5344,7 @@ var Select;
|
|
|
5477
5344
|
var init_Select = __esm({
|
|
5478
5345
|
"components/atoms/Select.tsx"() {
|
|
5479
5346
|
init_cn();
|
|
5480
|
-
Select =
|
|
5347
|
+
Select = React126__default.forwardRef(
|
|
5481
5348
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
5482
5349
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
5483
5350
|
/* @__PURE__ */ jsxs(
|
|
@@ -5519,7 +5386,7 @@ var Checkbox;
|
|
|
5519
5386
|
var init_Checkbox = __esm({
|
|
5520
5387
|
"components/atoms/Checkbox.tsx"() {
|
|
5521
5388
|
init_cn();
|
|
5522
|
-
Checkbox =
|
|
5389
|
+
Checkbox = React126__default.forwardRef(
|
|
5523
5390
|
({ className, label, id, ...props }, ref) => {
|
|
5524
5391
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
5525
5392
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -5601,7 +5468,7 @@ var init_Card = __esm({
|
|
|
5601
5468
|
md: "shadow",
|
|
5602
5469
|
lg: "shadow-lg"
|
|
5603
5470
|
};
|
|
5604
|
-
Card =
|
|
5471
|
+
Card = React126__default.forwardRef(
|
|
5605
5472
|
({
|
|
5606
5473
|
className,
|
|
5607
5474
|
variant = "bordered",
|
|
@@ -5637,9 +5504,9 @@ var init_Card = __esm({
|
|
|
5637
5504
|
}
|
|
5638
5505
|
);
|
|
5639
5506
|
Card.displayName = "Card";
|
|
5640
|
-
CardHeader =
|
|
5507
|
+
CardHeader = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
5641
5508
|
CardHeader.displayName = "CardHeader";
|
|
5642
|
-
CardTitle =
|
|
5509
|
+
CardTitle = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5643
5510
|
"h3",
|
|
5644
5511
|
{
|
|
5645
5512
|
ref,
|
|
@@ -5652,11 +5519,11 @@ var init_Card = __esm({
|
|
|
5652
5519
|
}
|
|
5653
5520
|
));
|
|
5654
5521
|
CardTitle.displayName = "CardTitle";
|
|
5655
|
-
CardContent =
|
|
5522
|
+
CardContent = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
5656
5523
|
CardContent.displayName = "CardContent";
|
|
5657
5524
|
CardBody = CardContent;
|
|
5658
5525
|
CardBody.displayName = "CardBody";
|
|
5659
|
-
CardFooter =
|
|
5526
|
+
CardFooter = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5660
5527
|
"div",
|
|
5661
5528
|
{
|
|
5662
5529
|
ref,
|
|
@@ -5677,7 +5544,7 @@ var init_Spinner = __esm({
|
|
|
5677
5544
|
md: "h-6 w-6",
|
|
5678
5545
|
lg: "h-8 w-8"
|
|
5679
5546
|
};
|
|
5680
|
-
Spinner =
|
|
5547
|
+
Spinner = React126__default.forwardRef(
|
|
5681
5548
|
({ className, size = "md", ...props }, ref) => {
|
|
5682
5549
|
return /* @__PURE__ */ jsx(
|
|
5683
5550
|
"div",
|
|
@@ -6125,7 +5992,7 @@ var Radio;
|
|
|
6125
5992
|
var init_Radio = __esm({
|
|
6126
5993
|
"components/atoms/Radio.tsx"() {
|
|
6127
5994
|
init_cn();
|
|
6128
|
-
Radio =
|
|
5995
|
+
Radio = React126__default.forwardRef(
|
|
6129
5996
|
({
|
|
6130
5997
|
label,
|
|
6131
5998
|
helperText,
|
|
@@ -6236,7 +6103,7 @@ var init_Switch = __esm({
|
|
|
6236
6103
|
"components/atoms/Switch.tsx"() {
|
|
6237
6104
|
"use client";
|
|
6238
6105
|
init_cn();
|
|
6239
|
-
Switch =
|
|
6106
|
+
Switch = React126.forwardRef(
|
|
6240
6107
|
({
|
|
6241
6108
|
checked,
|
|
6242
6109
|
defaultChecked = false,
|
|
@@ -6247,10 +6114,10 @@ var init_Switch = __esm({
|
|
|
6247
6114
|
name,
|
|
6248
6115
|
className
|
|
6249
6116
|
}, ref) => {
|
|
6250
|
-
const [isChecked, setIsChecked] =
|
|
6117
|
+
const [isChecked, setIsChecked] = React126.useState(
|
|
6251
6118
|
checked !== void 0 ? checked : defaultChecked
|
|
6252
6119
|
);
|
|
6253
|
-
|
|
6120
|
+
React126.useEffect(() => {
|
|
6254
6121
|
if (checked !== void 0) {
|
|
6255
6122
|
setIsChecked(checked);
|
|
6256
6123
|
}
|
|
@@ -6590,8 +6457,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
6590
6457
|
position = "top",
|
|
6591
6458
|
className
|
|
6592
6459
|
}) => {
|
|
6593
|
-
const [isVisible, setIsVisible] =
|
|
6594
|
-
const timeoutRef =
|
|
6460
|
+
const [isVisible, setIsVisible] = React126__default.useState(false);
|
|
6461
|
+
const timeoutRef = React126__default.useRef(null);
|
|
6595
6462
|
const handleMouseEnter = () => {
|
|
6596
6463
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
6597
6464
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -6600,7 +6467,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
6600
6467
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
6601
6468
|
setIsVisible(false);
|
|
6602
6469
|
};
|
|
6603
|
-
|
|
6470
|
+
React126__default.useEffect(() => {
|
|
6604
6471
|
return () => {
|
|
6605
6472
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
6606
6473
|
};
|
|
@@ -6810,7 +6677,7 @@ var init_StatusDot = __esm({
|
|
|
6810
6677
|
md: "w-2.5 h-2.5",
|
|
6811
6678
|
lg: "w-3 h-3"
|
|
6812
6679
|
};
|
|
6813
|
-
StatusDot =
|
|
6680
|
+
StatusDot = React126__default.forwardRef(
|
|
6814
6681
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
6815
6682
|
return /* @__PURE__ */ jsx(
|
|
6816
6683
|
"span",
|
|
@@ -6863,7 +6730,7 @@ var init_TrendIndicator = __esm({
|
|
|
6863
6730
|
down: TrendingDown,
|
|
6864
6731
|
flat: ArrowRight
|
|
6865
6732
|
};
|
|
6866
|
-
TrendIndicator =
|
|
6733
|
+
TrendIndicator = React126__default.forwardRef(
|
|
6867
6734
|
({
|
|
6868
6735
|
className,
|
|
6869
6736
|
value,
|
|
@@ -6930,7 +6797,7 @@ var init_RangeSlider = __esm({
|
|
|
6930
6797
|
md: "w-4 h-4",
|
|
6931
6798
|
lg: "w-5 h-5"
|
|
6932
6799
|
};
|
|
6933
|
-
RangeSlider =
|
|
6800
|
+
RangeSlider = React126__default.forwardRef(
|
|
6934
6801
|
({
|
|
6935
6802
|
className,
|
|
6936
6803
|
min = 0,
|
|
@@ -7525,7 +7392,7 @@ var init_ContentSection = __esm({
|
|
|
7525
7392
|
md: "py-16",
|
|
7526
7393
|
lg: "py-24"
|
|
7527
7394
|
};
|
|
7528
|
-
ContentSection =
|
|
7395
|
+
ContentSection = React126__default.forwardRef(
|
|
7529
7396
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
7530
7397
|
return /* @__PURE__ */ jsx(
|
|
7531
7398
|
Box,
|
|
@@ -8059,7 +7926,7 @@ var init_AnimatedReveal = __esm({
|
|
|
8059
7926
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
8060
7927
|
"none": {}
|
|
8061
7928
|
};
|
|
8062
|
-
AnimatedReveal =
|
|
7929
|
+
AnimatedReveal = React126__default.forwardRef(
|
|
8063
7930
|
({
|
|
8064
7931
|
trigger = "scroll",
|
|
8065
7932
|
animation = "fade-up",
|
|
@@ -8219,7 +8086,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
8219
8086
|
"components/atoms/AnimatedGraphic.tsx"() {
|
|
8220
8087
|
"use client";
|
|
8221
8088
|
init_cn();
|
|
8222
|
-
AnimatedGraphic =
|
|
8089
|
+
AnimatedGraphic = React126__default.forwardRef(
|
|
8223
8090
|
({
|
|
8224
8091
|
src,
|
|
8225
8092
|
svgContent,
|
|
@@ -8242,7 +8109,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
8242
8109
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
8243
8110
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
8244
8111
|
const prevAnimateRef = useRef(animate);
|
|
8245
|
-
const setRef =
|
|
8112
|
+
const setRef = React126__default.useCallback(
|
|
8246
8113
|
(node) => {
|
|
8247
8114
|
containerRef.current = node;
|
|
8248
8115
|
if (typeof ref === "function") ref(node);
|
|
@@ -8461,9 +8328,9 @@ function ScoreDisplay({
|
|
|
8461
8328
|
...rest
|
|
8462
8329
|
}) {
|
|
8463
8330
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
8464
|
-
const [displayValue, setDisplayValue] =
|
|
8465
|
-
const [isAnimating, setIsAnimating] =
|
|
8466
|
-
|
|
8331
|
+
const [displayValue, setDisplayValue] = React126.useState(resolvedValue);
|
|
8332
|
+
const [isAnimating, setIsAnimating] = React126.useState(false);
|
|
8333
|
+
React126.useEffect(() => {
|
|
8467
8334
|
if (!animated || displayValue === resolvedValue) {
|
|
8468
8335
|
setDisplayValue(resolvedValue);
|
|
8469
8336
|
return;
|
|
@@ -8533,9 +8400,9 @@ function ControlButton({
|
|
|
8533
8400
|
className
|
|
8534
8401
|
}) {
|
|
8535
8402
|
const eventBus = useEventBus();
|
|
8536
|
-
const [isPressed, setIsPressed] =
|
|
8403
|
+
const [isPressed, setIsPressed] = React126.useState(false);
|
|
8537
8404
|
const actualPressed = pressed ?? isPressed;
|
|
8538
|
-
const handlePointerDown =
|
|
8405
|
+
const handlePointerDown = React126.useCallback(
|
|
8539
8406
|
(e) => {
|
|
8540
8407
|
e.preventDefault();
|
|
8541
8408
|
if (disabled) return;
|
|
@@ -8545,7 +8412,7 @@ function ControlButton({
|
|
|
8545
8412
|
},
|
|
8546
8413
|
[disabled, pressEvent, eventBus, onPress]
|
|
8547
8414
|
);
|
|
8548
|
-
const handlePointerUp =
|
|
8415
|
+
const handlePointerUp = React126.useCallback(
|
|
8549
8416
|
(e) => {
|
|
8550
8417
|
e.preventDefault();
|
|
8551
8418
|
if (disabled) return;
|
|
@@ -8555,7 +8422,7 @@ function ControlButton({
|
|
|
8555
8422
|
},
|
|
8556
8423
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
8557
8424
|
);
|
|
8558
|
-
const handlePointerLeave =
|
|
8425
|
+
const handlePointerLeave = React126.useCallback(
|
|
8559
8426
|
(e) => {
|
|
8560
8427
|
if (isPressed) {
|
|
8561
8428
|
setIsPressed(false);
|
|
@@ -9453,9 +9320,9 @@ function MiniMap({
|
|
|
9453
9320
|
viewportRect,
|
|
9454
9321
|
className
|
|
9455
9322
|
}) {
|
|
9456
|
-
const canvasRef =
|
|
9457
|
-
const frameRef =
|
|
9458
|
-
|
|
9323
|
+
const canvasRef = React126.useRef(null);
|
|
9324
|
+
const frameRef = React126.useRef(0);
|
|
9325
|
+
React126.useEffect(() => {
|
|
9459
9326
|
const canvas = canvasRef.current;
|
|
9460
9327
|
if (!canvas) return;
|
|
9461
9328
|
const ctx = canvas.getContext("2d");
|
|
@@ -9794,7 +9661,7 @@ var init_ErrorBoundary = __esm({
|
|
|
9794
9661
|
"use client";
|
|
9795
9662
|
init_cn();
|
|
9796
9663
|
init_ErrorState();
|
|
9797
|
-
ErrorBoundary = class extends
|
|
9664
|
+
ErrorBoundary = class extends React126__default.Component {
|
|
9798
9665
|
constructor(props) {
|
|
9799
9666
|
super(props);
|
|
9800
9667
|
__publicField(this, "reset", () => {
|
|
@@ -10267,8 +10134,8 @@ var init_Tooltip = __esm({
|
|
|
10267
10134
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
10268
10135
|
};
|
|
10269
10136
|
}, []);
|
|
10270
|
-
const triggerElement =
|
|
10271
|
-
const trigger =
|
|
10137
|
+
const triggerElement = React126__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
10138
|
+
const trigger = React126__default.cloneElement(triggerElement, {
|
|
10272
10139
|
ref: triggerRef,
|
|
10273
10140
|
onMouseEnter: handleMouseEnter,
|
|
10274
10141
|
onMouseLeave: handleMouseLeave,
|
|
@@ -10389,8 +10256,8 @@ var init_Popover = __esm({
|
|
|
10389
10256
|
onMouseEnter: handleOpen,
|
|
10390
10257
|
onMouseLeave: handleClose
|
|
10391
10258
|
};
|
|
10392
|
-
const childElement =
|
|
10393
|
-
const triggerElement =
|
|
10259
|
+
const childElement = React126__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
10260
|
+
const triggerElement = React126__default.cloneElement(
|
|
10394
10261
|
childElement,
|
|
10395
10262
|
{
|
|
10396
10263
|
ref: triggerRef,
|
|
@@ -10507,8 +10374,8 @@ var init_Menu = __esm({
|
|
|
10507
10374
|
"bottom-start": "top-full left-0 mt-2",
|
|
10508
10375
|
"bottom-end": "top-full right-0 mt-2"
|
|
10509
10376
|
};
|
|
10510
|
-
const triggerChild =
|
|
10511
|
-
const triggerElement =
|
|
10377
|
+
const triggerChild = React126__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
|
|
10378
|
+
const triggerElement = React126__default.cloneElement(
|
|
10512
10379
|
triggerChild,
|
|
10513
10380
|
{
|
|
10514
10381
|
ref: triggerRef,
|
|
@@ -11022,13 +10889,13 @@ var init_MapView = __esm({
|
|
|
11022
10889
|
shadowSize: [41, 41]
|
|
11023
10890
|
});
|
|
11024
10891
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
11025
|
-
const { useEffect:
|
|
10892
|
+
const { useEffect: useEffect88, useRef: useRef87, useCallback: useCallback125, useState: useState126 } = React126__default;
|
|
11026
10893
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
11027
10894
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
11028
10895
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
11029
10896
|
const map = useMap();
|
|
11030
|
-
const prevRef =
|
|
11031
|
-
|
|
10897
|
+
const prevRef = useRef87({ centerLat, centerLng, zoom });
|
|
10898
|
+
useEffect88(() => {
|
|
11032
10899
|
const prev = prevRef.current;
|
|
11033
10900
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
11034
10901
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -11039,7 +10906,7 @@ var init_MapView = __esm({
|
|
|
11039
10906
|
}
|
|
11040
10907
|
function MapClickHandler({ onMapClick }) {
|
|
11041
10908
|
const map = useMap();
|
|
11042
|
-
|
|
10909
|
+
useEffect88(() => {
|
|
11043
10910
|
if (!onMapClick) return;
|
|
11044
10911
|
const handler = (e) => {
|
|
11045
10912
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -11274,7 +11141,7 @@ function InputPattern({
|
|
|
11274
11141
|
className
|
|
11275
11142
|
}) {
|
|
11276
11143
|
const { emit } = useEventBus();
|
|
11277
|
-
const [localValue, setLocalValue] =
|
|
11144
|
+
const [localValue, setLocalValue] = React126__default.useState(value);
|
|
11278
11145
|
const handleChange = (e) => {
|
|
11279
11146
|
setLocalValue(e.target.value);
|
|
11280
11147
|
if (onChange) {
|
|
@@ -11310,7 +11177,7 @@ function TextareaPattern({
|
|
|
11310
11177
|
className
|
|
11311
11178
|
}) {
|
|
11312
11179
|
const { emit } = useEventBus();
|
|
11313
|
-
const [localValue, setLocalValue] =
|
|
11180
|
+
const [localValue, setLocalValue] = React126__default.useState(value);
|
|
11314
11181
|
const handleChange = (e) => {
|
|
11315
11182
|
setLocalValue(e.target.value);
|
|
11316
11183
|
if (onChange) {
|
|
@@ -11340,7 +11207,7 @@ function SelectPattern({
|
|
|
11340
11207
|
className
|
|
11341
11208
|
}) {
|
|
11342
11209
|
const { emit } = useEventBus();
|
|
11343
|
-
const [localValue, setLocalValue] =
|
|
11210
|
+
const [localValue, setLocalValue] = React126__default.useState(value);
|
|
11344
11211
|
const handleChange = (e) => {
|
|
11345
11212
|
setLocalValue(e.target.value);
|
|
11346
11213
|
if (onChange) {
|
|
@@ -11368,7 +11235,7 @@ function CheckboxPattern({
|
|
|
11368
11235
|
className
|
|
11369
11236
|
}) {
|
|
11370
11237
|
const { emit } = useEventBus();
|
|
11371
|
-
const [localChecked, setLocalChecked] =
|
|
11238
|
+
const [localChecked, setLocalChecked] = React126__default.useState(checked);
|
|
11372
11239
|
const handleChange = (e) => {
|
|
11373
11240
|
setLocalChecked(e.target.checked);
|
|
11374
11241
|
if (onChange) {
|
|
@@ -11599,8 +11466,8 @@ function ActionButtons({
|
|
|
11599
11466
|
disabled
|
|
11600
11467
|
}) {
|
|
11601
11468
|
const eventBus = useEventBus();
|
|
11602
|
-
const [activeButtons, setActiveButtons] =
|
|
11603
|
-
const handlePress =
|
|
11469
|
+
const [activeButtons, setActiveButtons] = React126.useState(/* @__PURE__ */ new Set());
|
|
11470
|
+
const handlePress = React126.useCallback(
|
|
11604
11471
|
(id) => {
|
|
11605
11472
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
11606
11473
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -11608,7 +11475,7 @@ function ActionButtons({
|
|
|
11608
11475
|
},
|
|
11609
11476
|
[actionEvent, eventBus, onAction]
|
|
11610
11477
|
);
|
|
11611
|
-
const handleRelease =
|
|
11478
|
+
const handleRelease = React126.useCallback(
|
|
11612
11479
|
(id) => {
|
|
11613
11480
|
setActiveButtons((prev) => {
|
|
11614
11481
|
const next = new Set(prev);
|
|
@@ -12010,13 +11877,13 @@ function getState() {
|
|
|
12010
11877
|
}
|
|
12011
11878
|
return { checks: /* @__PURE__ */ new Map(), transitions: [], bridgeHealth: null, listeners: /* @__PURE__ */ new Set() };
|
|
12012
11879
|
}
|
|
12013
|
-
function
|
|
11880
|
+
function notifyListeners() {
|
|
12014
11881
|
getState().listeners.forEach((l) => l());
|
|
12015
11882
|
exposeOnWindow();
|
|
12016
11883
|
}
|
|
12017
11884
|
function registerCheck(id, label, status = "pending", details) {
|
|
12018
11885
|
getState().checks.set(id, { id, label, status, details, updatedAt: Date.now() });
|
|
12019
|
-
|
|
11886
|
+
notifyListeners();
|
|
12020
11887
|
}
|
|
12021
11888
|
function getAllChecks() {
|
|
12022
11889
|
return Array.from(getState().checks.values());
|
|
@@ -12061,7 +11928,7 @@ function recordTransition(trace) {
|
|
|
12061
11928
|
failedEffects.map((e) => `${e.type}: ${e.error}`).join("; ")
|
|
12062
11929
|
);
|
|
12063
11930
|
}
|
|
12064
|
-
|
|
11931
|
+
notifyListeners();
|
|
12065
11932
|
}
|
|
12066
11933
|
function getTransitions2() {
|
|
12067
11934
|
return [...getState().transitions];
|
|
@@ -12094,7 +11961,7 @@ function recordServerResponse(orbitalName, event, response) {
|
|
|
12094
11961
|
response.error
|
|
12095
11962
|
);
|
|
12096
11963
|
}
|
|
12097
|
-
|
|
11964
|
+
notifyListeners();
|
|
12098
11965
|
}
|
|
12099
11966
|
function getBridgeHealth() {
|
|
12100
11967
|
const bh = getState().bridgeHealth;
|
|
@@ -12110,7 +11977,7 @@ function getSummary() {
|
|
|
12110
11977
|
pending: allChecks.filter((c) => c.status === "pending").length
|
|
12111
11978
|
};
|
|
12112
11979
|
}
|
|
12113
|
-
function
|
|
11980
|
+
function getSnapshot() {
|
|
12114
11981
|
return {
|
|
12115
11982
|
checks: getAllChecks(),
|
|
12116
11983
|
transitions: getTransitions2(),
|
|
@@ -12126,7 +11993,7 @@ function exposeOnWindow() {
|
|
|
12126
11993
|
if (typeof window === "undefined") return;
|
|
12127
11994
|
if (!window.__orbitalVerification) {
|
|
12128
11995
|
window.__orbitalVerification = {
|
|
12129
|
-
getSnapshot
|
|
11996
|
+
getSnapshot,
|
|
12130
11997
|
getChecks: getAllChecks,
|
|
12131
11998
|
getTransitions: getTransitions2,
|
|
12132
11999
|
getBridge: getBridgeHealth,
|
|
@@ -13624,9 +13491,9 @@ var init_ScaledDiagram = __esm({
|
|
|
13624
13491
|
}
|
|
13625
13492
|
});
|
|
13626
13493
|
|
|
13627
|
-
// node_modules/.pnpm/katex@0.16.
|
|
13494
|
+
// node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css
|
|
13628
13495
|
var init_katex_min = __esm({
|
|
13629
|
-
"node_modules/.pnpm/katex@0.16.
|
|
13496
|
+
"node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css"() {
|
|
13630
13497
|
}
|
|
13631
13498
|
});
|
|
13632
13499
|
var MarkdownContent;
|
|
@@ -13636,7 +13503,7 @@ var init_MarkdownContent = __esm({
|
|
|
13636
13503
|
init_Box();
|
|
13637
13504
|
init_useTranslate();
|
|
13638
13505
|
init_cn();
|
|
13639
|
-
MarkdownContent =
|
|
13506
|
+
MarkdownContent = React126__default.memo(
|
|
13640
13507
|
({ content, direction, className }) => {
|
|
13641
13508
|
const { t: _t } = useTranslate();
|
|
13642
13509
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -13853,7 +13720,7 @@ var init_CodeBlock = __esm({
|
|
|
13853
13720
|
loloStyle = { ...dark, ...loloStyleOverrides };
|
|
13854
13721
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
13855
13722
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
13856
|
-
CodeBlock =
|
|
13723
|
+
CodeBlock = React126__default.memo(
|
|
13857
13724
|
({
|
|
13858
13725
|
code: rawCode,
|
|
13859
13726
|
language = "text",
|
|
@@ -15162,7 +15029,7 @@ var init_StateMachineView = __esm({
|
|
|
15162
15029
|
style: { top: title ? 30 : 0 },
|
|
15163
15030
|
children: [
|
|
15164
15031
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
15165
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
15032
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React126__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
15166
15033
|
StateNode,
|
|
15167
15034
|
{
|
|
15168
15035
|
state,
|
|
@@ -15675,7 +15542,9 @@ function extractTrait(schema, trait, traitIndex) {
|
|
|
15675
15542
|
for (const orbital of schema.orbitals) {
|
|
15676
15543
|
const traits2 = orbital.traits ?? [];
|
|
15677
15544
|
if (traitIndex < traits2.length) {
|
|
15678
|
-
|
|
15545
|
+
const traitRef = traits2[traitIndex];
|
|
15546
|
+
if (isInlineTrait(traitRef)) return traitRef;
|
|
15547
|
+
return null;
|
|
15679
15548
|
}
|
|
15680
15549
|
}
|
|
15681
15550
|
return null;
|
|
@@ -15683,8 +15552,10 @@ function extractTrait(schema, trait, traitIndex) {
|
|
|
15683
15552
|
function extractEntityFields(schema) {
|
|
15684
15553
|
if (!schema?.orbitals?.length) return [];
|
|
15685
15554
|
const entity = schema.orbitals[0].entity;
|
|
15686
|
-
if (!entity
|
|
15687
|
-
|
|
15555
|
+
if (!entity || typeof entity !== "object" || !("fields" in entity)) return [];
|
|
15556
|
+
const inlineEntity = entity;
|
|
15557
|
+
if (!inlineEntity.fields) return [];
|
|
15558
|
+
return inlineEntity.fields.map((f3) => f3.name);
|
|
15688
15559
|
}
|
|
15689
15560
|
function toStateMachineDefinition(sm) {
|
|
15690
15561
|
return {
|
|
@@ -15979,12 +15850,18 @@ var init_ContentRenderer = __esm({
|
|
|
15979
15850
|
);
|
|
15980
15851
|
case "orbital": {
|
|
15981
15852
|
const parsed = segment.schema;
|
|
15853
|
+
const inlineTrait = {
|
|
15854
|
+
name: "inline",
|
|
15855
|
+
scope: "instance",
|
|
15856
|
+
stateMachine: parsed
|
|
15857
|
+
};
|
|
15982
15858
|
const schema = Array.isArray(parsed.orbitals) ? parsed : {
|
|
15859
|
+
name: "inline",
|
|
15983
15860
|
orbitals: [{
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
15987
|
-
|
|
15861
|
+
name: "inline",
|
|
15862
|
+
entity: { name: "inline", fields: [] },
|
|
15863
|
+
traits: [inlineTrait],
|
|
15864
|
+
pages: []
|
|
15988
15865
|
}]
|
|
15989
15866
|
};
|
|
15990
15867
|
return /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
@@ -20929,7 +20806,7 @@ function CraftingRecipe({
|
|
|
20929
20806
|
className
|
|
20930
20807
|
}) {
|
|
20931
20808
|
const eventBus = useEventBus();
|
|
20932
|
-
const handleCraft =
|
|
20809
|
+
const handleCraft = React126.useCallback(() => {
|
|
20933
20810
|
onCraft?.();
|
|
20934
20811
|
if (craftEvent) {
|
|
20935
20812
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -20946,7 +20823,7 @@ function CraftingRecipe({
|
|
|
20946
20823
|
children: [
|
|
20947
20824
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
20948
20825
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
20949
|
-
return /* @__PURE__ */ jsxs(
|
|
20826
|
+
return /* @__PURE__ */ jsxs(React126.Fragment, { children: [
|
|
20950
20827
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
20951
20828
|
ItemSlot,
|
|
20952
20829
|
{
|
|
@@ -21240,8 +21117,8 @@ function DPad({
|
|
|
21240
21117
|
}) {
|
|
21241
21118
|
const eventBus = useEventBus();
|
|
21242
21119
|
const sizes = sizeMap15[size];
|
|
21243
|
-
const [activeDirections, setActiveDirections] =
|
|
21244
|
-
const handlePress =
|
|
21120
|
+
const [activeDirections, setActiveDirections] = React126.useState(/* @__PURE__ */ new Set());
|
|
21121
|
+
const handlePress = React126.useCallback(
|
|
21245
21122
|
(direction) => {
|
|
21246
21123
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
21247
21124
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -21249,7 +21126,7 @@ function DPad({
|
|
|
21249
21126
|
},
|
|
21250
21127
|
[directionEvent, eventBus, onDirection]
|
|
21251
21128
|
);
|
|
21252
|
-
const handleRelease =
|
|
21129
|
+
const handleRelease = React126.useCallback(
|
|
21253
21130
|
(direction) => {
|
|
21254
21131
|
setActiveDirections((prev) => {
|
|
21255
21132
|
const next = new Set(prev);
|
|
@@ -22116,7 +21993,7 @@ var init_DataList = __esm({
|
|
|
22116
21993
|
}) => {
|
|
22117
21994
|
const eventBus = useEventBus();
|
|
22118
21995
|
const { t } = useTranslate();
|
|
22119
|
-
const [visibleCount, setVisibleCount] =
|
|
21996
|
+
const [visibleCount, setVisibleCount] = React126__default.useState(pageSize || Infinity);
|
|
22120
21997
|
const fields = fieldsProp ?? columnsProp ?? [];
|
|
22121
21998
|
const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
22122
21999
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
@@ -22153,7 +22030,7 @@ var init_DataList = __esm({
|
|
|
22153
22030
|
const items2 = data.map((item) => item);
|
|
22154
22031
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
22155
22032
|
const contentField = titleField?.name ?? fields[0]?.name ?? "";
|
|
22156
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
22033
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
22157
22034
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
22158
22035
|
group.items.map((itemData, index) => {
|
|
22159
22036
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -22356,7 +22233,7 @@ var init_DataList = __esm({
|
|
|
22356
22233
|
className
|
|
22357
22234
|
),
|
|
22358
22235
|
children: [
|
|
22359
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
22236
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
22360
22237
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
22361
22238
|
group.items.map(
|
|
22362
22239
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -22562,43 +22439,43 @@ function useQuerySingleton(query) {
|
|
|
22562
22439
|
if (!query) {
|
|
22563
22440
|
return null;
|
|
22564
22441
|
}
|
|
22565
|
-
const
|
|
22442
|
+
const store = useMemo(() => getOrCreateStore(query), [query]);
|
|
22566
22443
|
useMemo(() => {
|
|
22567
22444
|
const listener = () => forceUpdate({});
|
|
22568
|
-
|
|
22445
|
+
store.listeners.add(listener);
|
|
22569
22446
|
return () => {
|
|
22570
|
-
|
|
22447
|
+
store.listeners.delete(listener);
|
|
22571
22448
|
};
|
|
22572
|
-
}, [
|
|
22573
|
-
const
|
|
22574
|
-
|
|
22575
|
-
}, [
|
|
22449
|
+
}, [store]);
|
|
22450
|
+
const notifyListeners3 = useCallback(() => {
|
|
22451
|
+
store.listeners.forEach((listener) => listener());
|
|
22452
|
+
}, [store]);
|
|
22576
22453
|
const setSearch = useCallback((value) => {
|
|
22577
|
-
|
|
22578
|
-
|
|
22579
|
-
}, [
|
|
22454
|
+
store.search = value;
|
|
22455
|
+
notifyListeners3();
|
|
22456
|
+
}, [store, notifyListeners3]);
|
|
22580
22457
|
const setFilter = useCallback((key, value) => {
|
|
22581
|
-
|
|
22582
|
-
|
|
22583
|
-
}, [
|
|
22458
|
+
store.filters = { ...store.filters, [key]: value };
|
|
22459
|
+
notifyListeners3();
|
|
22460
|
+
}, [store, notifyListeners3]);
|
|
22584
22461
|
const clearFilters = useCallback(() => {
|
|
22585
|
-
|
|
22586
|
-
|
|
22587
|
-
|
|
22588
|
-
}, [
|
|
22462
|
+
store.filters = {};
|
|
22463
|
+
store.search = "";
|
|
22464
|
+
notifyListeners3();
|
|
22465
|
+
}, [store, notifyListeners3]);
|
|
22589
22466
|
const setSort = useCallback((field, direction) => {
|
|
22590
|
-
|
|
22591
|
-
|
|
22592
|
-
|
|
22593
|
-
}, [
|
|
22467
|
+
store.sortField = field;
|
|
22468
|
+
store.sortDirection = direction;
|
|
22469
|
+
notifyListeners3();
|
|
22470
|
+
}, [store, notifyListeners3]);
|
|
22594
22471
|
return {
|
|
22595
|
-
search:
|
|
22472
|
+
search: store.search,
|
|
22596
22473
|
setSearch,
|
|
22597
|
-
filters:
|
|
22474
|
+
filters: store.filters,
|
|
22598
22475
|
setFilter,
|
|
22599
22476
|
clearFilters,
|
|
22600
|
-
sortField:
|
|
22601
|
-
sortDirection:
|
|
22477
|
+
sortField: store.sortField,
|
|
22478
|
+
sortDirection: store.sortDirection,
|
|
22602
22479
|
setSort
|
|
22603
22480
|
};
|
|
22604
22481
|
}
|
|
@@ -23609,7 +23486,7 @@ var init_WizardProgress = __esm({
|
|
|
23609
23486
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((step, index) => {
|
|
23610
23487
|
const isActive = index === currentStep;
|
|
23611
23488
|
const isCompleted = index < currentStep;
|
|
23612
|
-
return /* @__PURE__ */ jsxs(
|
|
23489
|
+
return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
23613
23490
|
/* @__PURE__ */ jsx(
|
|
23614
23491
|
"button",
|
|
23615
23492
|
{
|
|
@@ -24520,7 +24397,7 @@ function InventoryGrid({
|
|
|
24520
24397
|
const eventBus = useEventBus();
|
|
24521
24398
|
const slotCount = totalSlots ?? items.length;
|
|
24522
24399
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
24523
|
-
const handleSelect =
|
|
24400
|
+
const handleSelect = React126.useCallback(
|
|
24524
24401
|
(id) => {
|
|
24525
24402
|
onSelect?.(id);
|
|
24526
24403
|
if (selectEvent) {
|
|
@@ -24733,15 +24610,15 @@ function GameCanvas2D({
|
|
|
24733
24610
|
fps = 60,
|
|
24734
24611
|
className
|
|
24735
24612
|
}) {
|
|
24736
|
-
const canvasRef =
|
|
24737
|
-
const rafRef =
|
|
24738
|
-
const frameRef =
|
|
24739
|
-
const lastTimeRef =
|
|
24740
|
-
const onDrawRef =
|
|
24613
|
+
const canvasRef = React126.useRef(null);
|
|
24614
|
+
const rafRef = React126.useRef(0);
|
|
24615
|
+
const frameRef = React126.useRef(0);
|
|
24616
|
+
const lastTimeRef = React126.useRef(0);
|
|
24617
|
+
const onDrawRef = React126.useRef(onDraw);
|
|
24741
24618
|
onDrawRef.current = onDraw;
|
|
24742
|
-
const onTickRef =
|
|
24619
|
+
const onTickRef = React126.useRef(onTick);
|
|
24743
24620
|
onTickRef.current = onTick;
|
|
24744
|
-
|
|
24621
|
+
React126.useEffect(() => {
|
|
24745
24622
|
const canvas = canvasRef.current;
|
|
24746
24623
|
if (!canvas) return;
|
|
24747
24624
|
const ctx = canvas.getContext("2d");
|
|
@@ -25030,7 +24907,7 @@ function TurnPanel({
|
|
|
25030
24907
|
className
|
|
25031
24908
|
}) {
|
|
25032
24909
|
const eventBus = useEventBus();
|
|
25033
|
-
const handleAction =
|
|
24910
|
+
const handleAction = React126.useCallback(
|
|
25034
24911
|
(event) => {
|
|
25035
24912
|
if (event) {
|
|
25036
24913
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -25176,7 +25053,7 @@ function UnitCommandBar({
|
|
|
25176
25053
|
className
|
|
25177
25054
|
}) {
|
|
25178
25055
|
const eventBus = useEventBus();
|
|
25179
|
-
const handleCommand =
|
|
25056
|
+
const handleCommand = React126.useCallback(
|
|
25180
25057
|
(event) => {
|
|
25181
25058
|
if (event) {
|
|
25182
25059
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -25661,7 +25538,7 @@ function GameMenu({
|
|
|
25661
25538
|
} catch {
|
|
25662
25539
|
}
|
|
25663
25540
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
25664
|
-
const handleOptionClick =
|
|
25541
|
+
const handleOptionClick = React126.useCallback(
|
|
25665
25542
|
(option) => {
|
|
25666
25543
|
if (option.event && eventBus) {
|
|
25667
25544
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -25775,7 +25652,7 @@ function GameOverScreen({
|
|
|
25775
25652
|
} catch {
|
|
25776
25653
|
}
|
|
25777
25654
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
25778
|
-
const handleActionClick =
|
|
25655
|
+
const handleActionClick = React126.useCallback(
|
|
25779
25656
|
(action) => {
|
|
25780
25657
|
if (action.event && eventBus) {
|
|
25781
25658
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -28879,7 +28756,7 @@ var init_StepFlow = __esm({
|
|
|
28879
28756
|
className
|
|
28880
28757
|
}) => {
|
|
28881
28758
|
if (orientation === "vertical") {
|
|
28882
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
28759
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React126__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
28883
28760
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
28884
28761
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
28885
28762
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -28890,7 +28767,7 @@ var init_StepFlow = __esm({
|
|
|
28890
28767
|
] })
|
|
28891
28768
|
] }) }, index)) });
|
|
28892
28769
|
}
|
|
28893
|
-
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(
|
|
28770
|
+
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(React126__default.Fragment, { children: [
|
|
28894
28771
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
28895
28772
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
28896
28773
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -31002,7 +30879,7 @@ var init_DocumentViewer = __esm({
|
|
|
31002
30879
|
}
|
|
31003
30880
|
});
|
|
31004
30881
|
function extractTitle(children) {
|
|
31005
|
-
if (!
|
|
30882
|
+
if (!React126__default.isValidElement(children)) return void 0;
|
|
31006
30883
|
const props = children.props;
|
|
31007
30884
|
if (typeof props.title === "string") {
|
|
31008
30885
|
return props.title;
|
|
@@ -31057,7 +30934,7 @@ function LinearView({
|
|
|
31057
30934
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
31058
30935
|
const isDone = i < currentIdx;
|
|
31059
30936
|
const isCurrent = i === currentIdx;
|
|
31060
|
-
return /* @__PURE__ */ jsxs(
|
|
30937
|
+
return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
31061
30938
|
i > 0 && /* @__PURE__ */ jsx(
|
|
31062
30939
|
Typography,
|
|
31063
30940
|
{
|
|
@@ -31824,7 +31701,7 @@ var init_Form = __esm({
|
|
|
31824
31701
|
const normalizedInitialData = initialData ?? {};
|
|
31825
31702
|
const resolvedEntity = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
31826
31703
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
31827
|
-
const entityDerivedFields =
|
|
31704
|
+
const entityDerivedFields = React126__default.useMemo(() => {
|
|
31828
31705
|
if (fields && fields.length > 0) return void 0;
|
|
31829
31706
|
if (!resolvedEntity) return void 0;
|
|
31830
31707
|
return resolvedEntity.fields.map(
|
|
@@ -31843,14 +31720,14 @@ var init_Form = __esm({
|
|
|
31843
31720
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
31844
31721
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
31845
31722
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
31846
|
-
const [formData, setFormData] =
|
|
31723
|
+
const [formData, setFormData] = React126__default.useState(
|
|
31847
31724
|
normalizedInitialData
|
|
31848
31725
|
);
|
|
31849
|
-
const [collapsedSections, setCollapsedSections] =
|
|
31726
|
+
const [collapsedSections, setCollapsedSections] = React126__default.useState(
|
|
31850
31727
|
/* @__PURE__ */ new Set()
|
|
31851
31728
|
);
|
|
31852
31729
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
31853
|
-
const evalContext =
|
|
31730
|
+
const evalContext = React126__default.useMemo(
|
|
31854
31731
|
() => ({
|
|
31855
31732
|
formValues: formData,
|
|
31856
31733
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -31859,13 +31736,13 @@ var init_Form = __esm({
|
|
|
31859
31736
|
}),
|
|
31860
31737
|
[formData, externalContext]
|
|
31861
31738
|
);
|
|
31862
|
-
|
|
31739
|
+
React126__default.useEffect(() => {
|
|
31863
31740
|
const data = initialData;
|
|
31864
31741
|
if (data && Object.keys(data).length > 0) {
|
|
31865
31742
|
setFormData(data);
|
|
31866
31743
|
}
|
|
31867
31744
|
}, [initialData]);
|
|
31868
|
-
const processCalculations =
|
|
31745
|
+
const processCalculations = React126__default.useCallback(
|
|
31869
31746
|
(changedFieldId, newFormData) => {
|
|
31870
31747
|
if (!hiddenCalculations.length) return;
|
|
31871
31748
|
const context = {
|
|
@@ -31890,7 +31767,7 @@ var init_Form = __esm({
|
|
|
31890
31767
|
},
|
|
31891
31768
|
[hiddenCalculations, externalContext, eventBus]
|
|
31892
31769
|
);
|
|
31893
|
-
const checkViolations =
|
|
31770
|
+
const checkViolations = React126__default.useCallback(
|
|
31894
31771
|
(changedFieldId, newFormData) => {
|
|
31895
31772
|
if (!violationTriggers.length) return;
|
|
31896
31773
|
const context = {
|
|
@@ -31927,7 +31804,7 @@ var init_Form = __esm({
|
|
|
31927
31804
|
processCalculations(name, newFormData);
|
|
31928
31805
|
checkViolations(name, newFormData);
|
|
31929
31806
|
};
|
|
31930
|
-
const isFieldVisible =
|
|
31807
|
+
const isFieldVisible = React126__default.useCallback(
|
|
31931
31808
|
(fieldName) => {
|
|
31932
31809
|
const condition = conditionalFields[fieldName];
|
|
31933
31810
|
if (!condition) return true;
|
|
@@ -31935,7 +31812,7 @@ var init_Form = __esm({
|
|
|
31935
31812
|
},
|
|
31936
31813
|
[conditionalFields, evalContext]
|
|
31937
31814
|
);
|
|
31938
|
-
const isSectionVisible =
|
|
31815
|
+
const isSectionVisible = React126__default.useCallback(
|
|
31939
31816
|
(section) => {
|
|
31940
31817
|
if (!section.condition) return true;
|
|
31941
31818
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -31967,7 +31844,7 @@ var init_Form = __esm({
|
|
|
31967
31844
|
eventBus.emit(`UI:${onCancel}`);
|
|
31968
31845
|
}
|
|
31969
31846
|
};
|
|
31970
|
-
const renderField =
|
|
31847
|
+
const renderField = React126__default.useCallback(
|
|
31971
31848
|
(field) => {
|
|
31972
31849
|
const fieldName = field.name || field.field;
|
|
31973
31850
|
if (!fieldName) return null;
|
|
@@ -31988,7 +31865,7 @@ var init_Form = __esm({
|
|
|
31988
31865
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
31989
31866
|
);
|
|
31990
31867
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
31991
|
-
const normalizedFields =
|
|
31868
|
+
const normalizedFields = React126__default.useMemo(() => {
|
|
31992
31869
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
31993
31870
|
return effectiveFields.map((field) => {
|
|
31994
31871
|
if (typeof field === "string") {
|
|
@@ -32010,7 +31887,7 @@ var init_Form = __esm({
|
|
|
32010
31887
|
return field;
|
|
32011
31888
|
});
|
|
32012
31889
|
}, [effectiveFields, resolvedEntity]);
|
|
32013
|
-
const schemaFields =
|
|
31890
|
+
const schemaFields = React126__default.useMemo(() => {
|
|
32014
31891
|
if (normalizedFields.length === 0) return null;
|
|
32015
31892
|
if (isDebugEnabled()) {
|
|
32016
31893
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -32020,7 +31897,7 @@ var init_Form = __esm({
|
|
|
32020
31897
|
}
|
|
32021
31898
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
32022
31899
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
32023
|
-
const sectionElements =
|
|
31900
|
+
const sectionElements = React126__default.useMemo(() => {
|
|
32024
31901
|
if (!sections || sections.length === 0) return null;
|
|
32025
31902
|
return sections.map((section) => {
|
|
32026
31903
|
if (!isSectionVisible(section)) {
|
|
@@ -33517,7 +33394,7 @@ var init_List = __esm({
|
|
|
33517
33394
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
33518
33395
|
return [];
|
|
33519
33396
|
}, [entity]);
|
|
33520
|
-
const getItemActions =
|
|
33397
|
+
const getItemActions = React126__default.useCallback(
|
|
33521
33398
|
(item) => {
|
|
33522
33399
|
if (!itemActions) return [];
|
|
33523
33400
|
if (typeof itemActions === "function") {
|
|
@@ -33964,7 +33841,7 @@ var init_MediaGallery = __esm({
|
|
|
33964
33841
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
33965
33842
|
);
|
|
33966
33843
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
33967
|
-
const items =
|
|
33844
|
+
const items = React126__default.useMemo(() => {
|
|
33968
33845
|
if (propItems) return propItems;
|
|
33969
33846
|
if (entityData.length === 0) return [];
|
|
33970
33847
|
return entityData.map((record, idx) => ({
|
|
@@ -34128,7 +34005,7 @@ var init_MediaGallery = __esm({
|
|
|
34128
34005
|
}
|
|
34129
34006
|
});
|
|
34130
34007
|
function extractTitle2(children) {
|
|
34131
|
-
if (!
|
|
34008
|
+
if (!React126__default.isValidElement(children)) return void 0;
|
|
34132
34009
|
const props = children.props;
|
|
34133
34010
|
if (typeof props.title === "string") {
|
|
34134
34011
|
return props.title;
|
|
@@ -34841,7 +34718,7 @@ var init_PageHeader = __esm({
|
|
|
34841
34718
|
info: "bg-info/10 text-info"
|
|
34842
34719
|
};
|
|
34843
34720
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
34844
|
-
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(
|
|
34721
|
+
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(React126__default.Fragment, { children: [
|
|
34845
34722
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
34846
34723
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
34847
34724
|
"a",
|
|
@@ -34930,24 +34807,24 @@ var init_PageHeader = __esm({
|
|
|
34930
34807
|
});
|
|
34931
34808
|
|
|
34932
34809
|
// lib/traitRegistry.ts
|
|
34933
|
-
function
|
|
34810
|
+
function notifyListeners2() {
|
|
34934
34811
|
listeners.forEach((listener) => listener());
|
|
34935
34812
|
}
|
|
34936
34813
|
function registerTrait(info) {
|
|
34937
34814
|
traits.set(info.id, info);
|
|
34938
|
-
|
|
34815
|
+
notifyListeners2();
|
|
34939
34816
|
}
|
|
34940
34817
|
function updateTraitState(id, newState) {
|
|
34941
34818
|
const trait = traits.get(id);
|
|
34942
34819
|
if (trait) {
|
|
34943
34820
|
trait.currentState = newState;
|
|
34944
34821
|
trait.transitionCount++;
|
|
34945
|
-
|
|
34822
|
+
notifyListeners2();
|
|
34946
34823
|
}
|
|
34947
34824
|
}
|
|
34948
34825
|
function unregisterTrait(id) {
|
|
34949
34826
|
traits.delete(id);
|
|
34950
|
-
|
|
34827
|
+
notifyListeners2();
|
|
34951
34828
|
}
|
|
34952
34829
|
function getAllTraits() {
|
|
34953
34830
|
return Array.from(traits.values());
|
|
@@ -35034,7 +34911,7 @@ var init_debugRegistry = __esm({
|
|
|
35034
34911
|
}
|
|
35035
34912
|
});
|
|
35036
34913
|
function useDebugData() {
|
|
35037
|
-
const [data, setData] =
|
|
34914
|
+
const [data, setData] = React126.useState(() => ({
|
|
35038
34915
|
traits: [],
|
|
35039
34916
|
ticks: [],
|
|
35040
34917
|
guards: [],
|
|
@@ -35048,7 +34925,7 @@ function useDebugData() {
|
|
|
35048
34925
|
},
|
|
35049
34926
|
lastUpdate: Date.now()
|
|
35050
34927
|
}));
|
|
35051
|
-
|
|
34928
|
+
React126.useEffect(() => {
|
|
35052
34929
|
const updateData = () => {
|
|
35053
34930
|
setData({
|
|
35054
34931
|
traits: getAllTraits(),
|
|
@@ -35157,12 +35034,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
35157
35034
|
return positions;
|
|
35158
35035
|
}
|
|
35159
35036
|
function WalkMinimap() {
|
|
35160
|
-
const [walkStep, setWalkStep] =
|
|
35161
|
-
const [traits2, setTraits] =
|
|
35162
|
-
const [coveredEdges, setCoveredEdges] =
|
|
35163
|
-
const [completedTraits, setCompletedTraits] =
|
|
35164
|
-
const prevTraitRef =
|
|
35165
|
-
|
|
35037
|
+
const [walkStep, setWalkStep] = React126.useState(null);
|
|
35038
|
+
const [traits2, setTraits] = React126.useState([]);
|
|
35039
|
+
const [coveredEdges, setCoveredEdges] = React126.useState([]);
|
|
35040
|
+
const [completedTraits, setCompletedTraits] = React126.useState(/* @__PURE__ */ new Set());
|
|
35041
|
+
const prevTraitRef = React126.useRef(null);
|
|
35042
|
+
React126.useEffect(() => {
|
|
35166
35043
|
const interval = setInterval(() => {
|
|
35167
35044
|
const w = window;
|
|
35168
35045
|
const step = w.__orbitalWalkStep;
|
|
@@ -35609,15 +35486,15 @@ var init_EntitiesTab = __esm({
|
|
|
35609
35486
|
}
|
|
35610
35487
|
});
|
|
35611
35488
|
function EventFlowTab({ events: events2 }) {
|
|
35612
|
-
const [filter, setFilter] =
|
|
35613
|
-
const containerRef =
|
|
35614
|
-
const [autoScroll, setAutoScroll] =
|
|
35615
|
-
|
|
35489
|
+
const [filter, setFilter] = React126.useState("all");
|
|
35490
|
+
const containerRef = React126.useRef(null);
|
|
35491
|
+
const [autoScroll, setAutoScroll] = React126.useState(true);
|
|
35492
|
+
React126.useEffect(() => {
|
|
35616
35493
|
if (autoScroll && containerRef.current) {
|
|
35617
35494
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
35618
35495
|
}
|
|
35619
35496
|
}, [events2.length, autoScroll]);
|
|
35620
|
-
const filteredEvents =
|
|
35497
|
+
const filteredEvents = React126.useMemo(() => {
|
|
35621
35498
|
if (filter === "all") return events2;
|
|
35622
35499
|
return events2.filter((e) => e.type === filter);
|
|
35623
35500
|
}, [events2, filter]);
|
|
@@ -35736,7 +35613,7 @@ var init_EventFlowTab = __esm({
|
|
|
35736
35613
|
}
|
|
35737
35614
|
});
|
|
35738
35615
|
function GuardsPanel({ guards }) {
|
|
35739
|
-
const [filter, setFilter] =
|
|
35616
|
+
const [filter, setFilter] = React126.useState("all");
|
|
35740
35617
|
if (guards.length === 0) {
|
|
35741
35618
|
return /* @__PURE__ */ jsx(
|
|
35742
35619
|
EmptyState,
|
|
@@ -35749,7 +35626,7 @@ function GuardsPanel({ guards }) {
|
|
|
35749
35626
|
}
|
|
35750
35627
|
const passedCount = guards.filter((g) => g.result).length;
|
|
35751
35628
|
const failedCount = guards.length - passedCount;
|
|
35752
|
-
const filteredGuards =
|
|
35629
|
+
const filteredGuards = React126.useMemo(() => {
|
|
35753
35630
|
if (filter === "all") return guards;
|
|
35754
35631
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
35755
35632
|
return guards.filter((g) => !g.result);
|
|
@@ -35910,10 +35787,10 @@ function EffectBadge({ effect }) {
|
|
|
35910
35787
|
] });
|
|
35911
35788
|
}
|
|
35912
35789
|
function TransitionTimeline({ transitions }) {
|
|
35913
|
-
const containerRef =
|
|
35914
|
-
const [autoScroll, setAutoScroll] =
|
|
35915
|
-
const [expandedId, setExpandedId] =
|
|
35916
|
-
|
|
35790
|
+
const containerRef = React126.useRef(null);
|
|
35791
|
+
const [autoScroll, setAutoScroll] = React126.useState(true);
|
|
35792
|
+
const [expandedId, setExpandedId] = React126.useState(null);
|
|
35793
|
+
React126.useEffect(() => {
|
|
35917
35794
|
if (autoScroll && containerRef.current) {
|
|
35918
35795
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
35919
35796
|
}
|
|
@@ -36199,9 +36076,9 @@ function getAllEvents(traits2) {
|
|
|
36199
36076
|
}
|
|
36200
36077
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
36201
36078
|
const eventBus = useEventBus();
|
|
36202
|
-
const [log4, setLog] =
|
|
36203
|
-
const prevStatesRef =
|
|
36204
|
-
|
|
36079
|
+
const [log4, setLog] = React126.useState([]);
|
|
36080
|
+
const prevStatesRef = React126.useRef(/* @__PURE__ */ new Map());
|
|
36081
|
+
React126.useEffect(() => {
|
|
36205
36082
|
for (const trait of traits2) {
|
|
36206
36083
|
const prev = prevStatesRef.current.get(trait.id);
|
|
36207
36084
|
if (prev && prev !== trait.currentState) {
|
|
@@ -36371,10 +36248,10 @@ function VerifyModePanel({
|
|
|
36371
36248
|
serverCount,
|
|
36372
36249
|
localCount
|
|
36373
36250
|
}) {
|
|
36374
|
-
const [expanded, setExpanded] =
|
|
36375
|
-
const scrollRef =
|
|
36376
|
-
const prevCountRef =
|
|
36377
|
-
|
|
36251
|
+
const [expanded, setExpanded] = React126.useState(true);
|
|
36252
|
+
const scrollRef = React126.useRef(null);
|
|
36253
|
+
const prevCountRef = React126.useRef(0);
|
|
36254
|
+
React126.useEffect(() => {
|
|
36378
36255
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
36379
36256
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
36380
36257
|
}
|
|
@@ -36440,10 +36317,10 @@ function RuntimeDebugger({
|
|
|
36440
36317
|
defaultTab,
|
|
36441
36318
|
schema
|
|
36442
36319
|
}) {
|
|
36443
|
-
const [isCollapsed, setIsCollapsed] =
|
|
36444
|
-
const [isVisible, setIsVisible] =
|
|
36320
|
+
const [isCollapsed, setIsCollapsed] = React126.useState(mode === "verify" ? true : defaultCollapsed);
|
|
36321
|
+
const [isVisible, setIsVisible] = React126.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
36445
36322
|
const debugData = useDebugData();
|
|
36446
|
-
|
|
36323
|
+
React126.useEffect(() => {
|
|
36447
36324
|
if (mode === "inline") return;
|
|
36448
36325
|
return onDebugToggle((enabled) => {
|
|
36449
36326
|
setIsVisible(enabled);
|
|
@@ -36452,7 +36329,7 @@ function RuntimeDebugger({
|
|
|
36452
36329
|
}
|
|
36453
36330
|
});
|
|
36454
36331
|
}, [mode]);
|
|
36455
|
-
|
|
36332
|
+
React126.useEffect(() => {
|
|
36456
36333
|
if (mode === "inline") return;
|
|
36457
36334
|
const handleKeyDown = (e) => {
|
|
36458
36335
|
if (e.key === "`" && isVisible) {
|
|
@@ -37001,7 +36878,7 @@ function SequenceBar({
|
|
|
37001
36878
|
onSlotRemove(index);
|
|
37002
36879
|
}, [onSlotRemove, playing]);
|
|
37003
36880
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
37004
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
36881
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
37005
36882
|
i > 0 && /* @__PURE__ */ jsx(
|
|
37006
36883
|
Typography,
|
|
37007
36884
|
{
|
|
@@ -38346,7 +38223,7 @@ var init_StatCard2 = __esm({
|
|
|
38346
38223
|
const labelToUse = propLabel ?? propTitle;
|
|
38347
38224
|
const eventBus = useEventBus();
|
|
38348
38225
|
const { t } = useTranslate();
|
|
38349
|
-
const handleActionClick =
|
|
38226
|
+
const handleActionClick = React126__default.useCallback(() => {
|
|
38350
38227
|
if (action?.event) {
|
|
38351
38228
|
eventBus.emit(`UI:${action.event}`, {});
|
|
38352
38229
|
}
|
|
@@ -38357,7 +38234,7 @@ var init_StatCard2 = __esm({
|
|
|
38357
38234
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
38358
38235
|
const isLoading = externalLoading ?? false;
|
|
38359
38236
|
const error = externalError;
|
|
38360
|
-
const computeMetricValue =
|
|
38237
|
+
const computeMetricValue = React126__default.useCallback(
|
|
38361
38238
|
(metric, items) => {
|
|
38362
38239
|
if (metric.value !== void 0) {
|
|
38363
38240
|
return metric.value;
|
|
@@ -38396,7 +38273,7 @@ var init_StatCard2 = __esm({
|
|
|
38396
38273
|
},
|
|
38397
38274
|
[]
|
|
38398
38275
|
);
|
|
38399
|
-
const schemaStats =
|
|
38276
|
+
const schemaStats = React126__default.useMemo(() => {
|
|
38400
38277
|
if (!metrics || metrics.length === 0) return null;
|
|
38401
38278
|
return metrics.map((metric) => ({
|
|
38402
38279
|
label: metric.label,
|
|
@@ -38404,7 +38281,7 @@ var init_StatCard2 = __esm({
|
|
|
38404
38281
|
format: metric.format
|
|
38405
38282
|
}));
|
|
38406
38283
|
}, [metrics, data, computeMetricValue]);
|
|
38407
|
-
const calculatedTrend =
|
|
38284
|
+
const calculatedTrend = React126__default.useMemo(() => {
|
|
38408
38285
|
if (manualTrend !== void 0) return manualTrend;
|
|
38409
38286
|
if (previousValue === void 0 || currentValue === void 0)
|
|
38410
38287
|
return void 0;
|
|
@@ -39388,7 +39265,7 @@ var init_Timeline = __esm({
|
|
|
39388
39265
|
}) => {
|
|
39389
39266
|
const { t } = useTranslate();
|
|
39390
39267
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
39391
|
-
const items =
|
|
39268
|
+
const items = React126__default.useMemo(() => {
|
|
39392
39269
|
if (propItems) return propItems;
|
|
39393
39270
|
if (entityData.length === 0) return [];
|
|
39394
39271
|
return entityData.map((record, idx) => {
|
|
@@ -39492,7 +39369,7 @@ var init_Timeline = __esm({
|
|
|
39492
39369
|
}
|
|
39493
39370
|
});
|
|
39494
39371
|
function extractToastProps(children) {
|
|
39495
|
-
if (!
|
|
39372
|
+
if (!React126__default.isValidElement(children)) {
|
|
39496
39373
|
if (typeof children === "string") {
|
|
39497
39374
|
return { message: children };
|
|
39498
39375
|
}
|
|
@@ -39530,7 +39407,7 @@ var init_ToastSlot = __esm({
|
|
|
39530
39407
|
eventBus.emit("UI:CLOSE");
|
|
39531
39408
|
};
|
|
39532
39409
|
if (!isVisible) return null;
|
|
39533
|
-
const isCustomContent =
|
|
39410
|
+
const isCustomContent = React126__default.isValidElement(children) && !message;
|
|
39534
39411
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
39535
39412
|
Toast,
|
|
39536
39413
|
{
|
|
@@ -39799,7 +39676,7 @@ var init_WizardContainer = __esm({
|
|
|
39799
39676
|
const isCompleted = index < currentStep;
|
|
39800
39677
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
39801
39678
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
39802
|
-
return /* @__PURE__ */ jsxs(
|
|
39679
|
+
return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
39803
39680
|
/* @__PURE__ */ jsx(
|
|
39804
39681
|
Button,
|
|
39805
39682
|
{
|
|
@@ -41988,7 +41865,7 @@ function UnitRenderer({
|
|
|
41988
41865
|
onAnimationStateChange,
|
|
41989
41866
|
animationSpeed = 1
|
|
41990
41867
|
}) {
|
|
41991
|
-
const handleUnitClick =
|
|
41868
|
+
const handleUnitClick = React126__default.useCallback(
|
|
41992
41869
|
(unit) => {
|
|
41993
41870
|
onUnitClick?.(unit);
|
|
41994
41871
|
},
|
|
@@ -45182,7 +45059,7 @@ var init_Avl3DViewer = __esm({
|
|
|
45182
45059
|
const handleTraitClick = useCallback((name) => {
|
|
45183
45060
|
dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
|
|
45184
45061
|
}, []);
|
|
45185
|
-
const [highlightedTrait, setHighlightedTrait] =
|
|
45062
|
+
const [highlightedTrait, setHighlightedTrait] = React126__default.useState(null);
|
|
45186
45063
|
const handleTransitionClick = useCallback((index) => {
|
|
45187
45064
|
dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
|
|
45188
45065
|
}, []);
|
|
@@ -45269,7 +45146,7 @@ var init_Avl3DViewer = __esm({
|
|
|
45269
45146
|
gap: "xs",
|
|
45270
45147
|
align: "center",
|
|
45271
45148
|
className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
|
|
45272
|
-
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
45149
|
+
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
45273
45150
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
|
|
45274
45151
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
45275
45152
|
Box,
|
|
@@ -45647,12 +45524,12 @@ var init_three = __esm({
|
|
|
45647
45524
|
}
|
|
45648
45525
|
});
|
|
45649
45526
|
function lazyThree(name, loader) {
|
|
45650
|
-
const Lazy =
|
|
45527
|
+
const Lazy = React126__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
45651
45528
|
function ThreeWrapper(props) {
|
|
45652
|
-
return
|
|
45653
|
-
|
|
45529
|
+
return React126__default.createElement(
|
|
45530
|
+
React126__default.Suspense,
|
|
45654
45531
|
{ fallback: null },
|
|
45655
|
-
|
|
45532
|
+
React126__default.createElement(Lazy, props)
|
|
45656
45533
|
);
|
|
45657
45534
|
}
|
|
45658
45535
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -46140,7 +46017,7 @@ function SuspenseConfigProvider({
|
|
|
46140
46017
|
config,
|
|
46141
46018
|
children
|
|
46142
46019
|
}) {
|
|
46143
|
-
return
|
|
46020
|
+
return React126__default.createElement(
|
|
46144
46021
|
SuspenseConfigContext.Provider,
|
|
46145
46022
|
{ value: config },
|
|
46146
46023
|
children
|
|
@@ -46570,7 +46447,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
46570
46447
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
46571
46448
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
46572
46449
|
}
|
|
46573
|
-
return /* @__PURE__ */ jsx(
|
|
46450
|
+
return /* @__PURE__ */ jsx(React126__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
46574
46451
|
}
|
|
46575
46452
|
if (!child || typeof child !== "object") return null;
|
|
46576
46453
|
const childId = `${parentId}-${index}`;
|
|
@@ -46623,19 +46500,15 @@ function SlotContentRenderer({
|
|
|
46623
46500
|
patternPath
|
|
46624
46501
|
}) {
|
|
46625
46502
|
const entityProp = content.props.entity;
|
|
46626
|
-
|
|
46627
|
-
|
|
46628
|
-
|
|
46629
|
-
|
|
46630
|
-
|
|
46631
|
-
|
|
46632
|
-
|
|
46633
|
-
console.warn(
|
|
46634
|
-
`[UISlotRenderer] String-entity binding '${entityType}' is deprecated. Pass 'items' or 'entity' as a value prop resolved from @payload.data. See docs/Almadar_Entity_V2_Plan.md \xA75.`
|
|
46635
|
-
);
|
|
46636
|
-
}, [entityType]);
|
|
46503
|
+
if (typeof entityProp === "string" && entityProp.length > 0) {
|
|
46504
|
+
if (typeof process !== "undefined" && process.env && process.env.NODE_ENV !== "production") {
|
|
46505
|
+
throw new Error(
|
|
46506
|
+
`[UISlotRenderer] Received string 'entity: "${entityProp}"' at render time. The V2 flow requires pre-resolved data; declare a fetch success listener and pass 'entity: @payload.data'. See docs/Almadar_Entity_V2_Plan.md \xA76.`
|
|
46507
|
+
);
|
|
46508
|
+
}
|
|
46509
|
+
}
|
|
46637
46510
|
const schemaCtx = useEntitySchemaOptional();
|
|
46638
|
-
const entityDef =
|
|
46511
|
+
const entityDef = typeof entityProp === "string" && entityProp.length > 0 && schemaCtx ? schemaCtx.entities.get(entityProp) : void 0;
|
|
46639
46512
|
const PatternComponent = getComponentForPattern(content.pattern);
|
|
46640
46513
|
if (PatternComponent) {
|
|
46641
46514
|
const childrenConfig = content.props.children;
|
|
@@ -46644,12 +46517,7 @@ function SlotContentRenderer({
|
|
|
46644
46517
|
const renderedChildren = hasChildren ? renderPatternChildren(childrenConfig, onDismiss, content.id, myPath) : void 0;
|
|
46645
46518
|
const { children: _childrenConfig, ...restProps } = content.props;
|
|
46646
46519
|
const renderedProps = renderPatternProps(restProps, onDismiss);
|
|
46647
|
-
|
|
46648
|
-
if (entityType) {
|
|
46649
|
-
finalProps = { ...renderedProps, entity: storeData };
|
|
46650
|
-
} else {
|
|
46651
|
-
finalProps = renderedProps;
|
|
46652
|
-
}
|
|
46520
|
+
const finalProps = renderedProps;
|
|
46653
46521
|
const resolvedItems = Array.isArray(
|
|
46654
46522
|
finalProps.entity
|
|
46655
46523
|
) ? finalProps.entity : null;
|
|
@@ -46663,9 +46531,6 @@ function SlotContentRenderer({
|
|
|
46663
46531
|
const isFormPattern = FORM_PATTERNS.has(content.pattern) || content.pattern.includes("form");
|
|
46664
46532
|
if (isFormPattern && entityDef && Array.isArray(finalProps.fields)) {
|
|
46665
46533
|
finalProps.fields = enrichFormFields(finalProps.fields, entityDef);
|
|
46666
|
-
if (finalProps.mode === "edit" && !finalProps.initialData && storeData.length > 0) {
|
|
46667
|
-
finalProps.initialData = storeData[0];
|
|
46668
|
-
}
|
|
46669
46534
|
}
|
|
46670
46535
|
const acceptsChildren = PATTERNS_WITH_CHILDREN.has(content.pattern);
|
|
46671
46536
|
return /* @__PURE__ */ jsx(
|
|
@@ -46759,11 +46624,10 @@ function UISlotRenderer({
|
|
|
46759
46624
|
}
|
|
46760
46625
|
return wrapped;
|
|
46761
46626
|
}
|
|
46762
|
-
var TRAIT_BINDING_RE,
|
|
46627
|
+
var TRAIT_BINDING_RE, SuspenseConfigContext, SlotContainedContext, SLOT_SKELETON_MAP, FORM_PATTERNS, PATTERNS_WITH_CHILDREN;
|
|
46763
46628
|
var init_UISlotRenderer = __esm({
|
|
46764
46629
|
"components/organisms/UISlotRenderer.tsx"() {
|
|
46765
46630
|
"use client";
|
|
46766
|
-
init_EntityStoreProvider();
|
|
46767
46631
|
init_EntitySchemaContext();
|
|
46768
46632
|
init_UISlotContext();
|
|
46769
46633
|
init_Modal();
|
|
@@ -46778,7 +46642,6 @@ var init_UISlotRenderer = __esm({
|
|
|
46778
46642
|
init_TraitFrame();
|
|
46779
46643
|
init_component_registry_generated();
|
|
46780
46644
|
TRAIT_BINDING_RE = /^@trait\.([A-Z][A-Za-z0-9]*)$/;
|
|
46781
|
-
STRING_ENTITY_WARNED = /* @__PURE__ */ new Set();
|
|
46782
46645
|
SuspenseConfigContext = createContext({ enabled: false });
|
|
46783
46646
|
SlotContainedContext = createContext(false);
|
|
46784
46647
|
SuspenseConfigProvider.displayName = "SuspenseConfigProvider";
|
|
@@ -47198,7 +47061,7 @@ var AvlTransition = ({
|
|
|
47198
47061
|
opacity = 1,
|
|
47199
47062
|
className
|
|
47200
47063
|
}) => {
|
|
47201
|
-
const ids =
|
|
47064
|
+
const ids = React126__default.useMemo(() => {
|
|
47202
47065
|
avlTransitionId += 1;
|
|
47203
47066
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
47204
47067
|
}, []);
|
|
@@ -47963,7 +47826,7 @@ var AvlStateMachine = ({
|
|
|
47963
47826
|
color = "var(--color-primary)",
|
|
47964
47827
|
animated = false
|
|
47965
47828
|
}) => {
|
|
47966
|
-
const ids =
|
|
47829
|
+
const ids = React126__default.useMemo(() => {
|
|
47967
47830
|
avlSmId += 1;
|
|
47968
47831
|
const base = `avl-sm-${avlSmId}`;
|
|
47969
47832
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -48158,7 +48021,7 @@ var AvlOrbitalUnit = ({
|
|
|
48158
48021
|
color = "var(--color-primary)",
|
|
48159
48022
|
animated = false
|
|
48160
48023
|
}) => {
|
|
48161
|
-
const ids =
|
|
48024
|
+
const ids = React126__default.useMemo(() => {
|
|
48162
48025
|
avlOuId += 1;
|
|
48163
48026
|
const base = `avl-ou-${avlOuId}`;
|
|
48164
48027
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -48250,7 +48113,7 @@ var AvlClosedCircuit = ({
|
|
|
48250
48113
|
color = "var(--color-primary)",
|
|
48251
48114
|
animated = false
|
|
48252
48115
|
}) => {
|
|
48253
|
-
const ids =
|
|
48116
|
+
const ids = React126__default.useMemo(() => {
|
|
48254
48117
|
avlCcId += 1;
|
|
48255
48118
|
const base = `avl-cc-${avlCcId}`;
|
|
48256
48119
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -48403,7 +48266,7 @@ var AvlEmitListen = ({
|
|
|
48403
48266
|
color = "var(--color-primary)",
|
|
48404
48267
|
animated = false
|
|
48405
48268
|
}) => {
|
|
48406
|
-
const ids =
|
|
48269
|
+
const ids = React126__default.useMemo(() => {
|
|
48407
48270
|
avlElId += 1;
|
|
48408
48271
|
const base = `avl-el-${avlElId}`;
|
|
48409
48272
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -48676,7 +48539,7 @@ function renderNode(node, color, glowId) {
|
|
|
48676
48539
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
48677
48540
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
48678
48541
|
const nc = nodeColor(node.type, color);
|
|
48679
|
-
return /* @__PURE__ */ jsxs(
|
|
48542
|
+
return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
48680
48543
|
node.children.map((child, i) => {
|
|
48681
48544
|
const childR = Math.max(
|
|
48682
48545
|
child.type === "operator" ? 20 : 16,
|
|
@@ -48733,7 +48596,7 @@ var AvlExprTree = ({
|
|
|
48733
48596
|
className,
|
|
48734
48597
|
color = "var(--color-primary)"
|
|
48735
48598
|
}) => {
|
|
48736
|
-
const ids =
|
|
48599
|
+
const ids = React126__default.useMemo(() => {
|
|
48737
48600
|
avlEtId += 1;
|
|
48738
48601
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
48739
48602
|
}, []);
|
|
@@ -49707,7 +49570,7 @@ var SystemNode = ({ data }) => {
|
|
|
49707
49570
|
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) => {
|
|
49708
49571
|
const tc = transitionCounts[s.name] ?? 0;
|
|
49709
49572
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
49710
|
-
return /* @__PURE__ */ jsxs(
|
|
49573
|
+
return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
49711
49574
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
|
|
49712
49575
|
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 })
|
|
49713
49576
|
] }, s.name);
|
|
@@ -49747,7 +49610,7 @@ var MiniStateMachine = ({ data, className }) => {
|
|
|
49747
49610
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
49748
49611
|
const tc = transitionCounts[s.name] ?? 0;
|
|
49749
49612
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
49750
|
-
return /* @__PURE__ */ jsxs(
|
|
49613
|
+
return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
49751
49614
|
/* @__PURE__ */ jsx(
|
|
49752
49615
|
AvlState,
|
|
49753
49616
|
{
|
|
@@ -50714,7 +50577,6 @@ init_Typography();
|
|
|
50714
50577
|
|
|
50715
50578
|
// providers/OrbitalProvider.tsx
|
|
50716
50579
|
init_ThemeContext();
|
|
50717
|
-
init_EntityStoreProvider();
|
|
50718
50580
|
init_EventBusProvider();
|
|
50719
50581
|
|
|
50720
50582
|
// providers/SelectionProvider.tsx
|
|
@@ -50787,13 +50649,13 @@ function SelectionProvider({
|
|
|
50787
50649
|
unsubCancel();
|
|
50788
50650
|
};
|
|
50789
50651
|
}, [eventBus, setSelected, clearSelection, debug2]);
|
|
50790
|
-
const
|
|
50652
|
+
const contextValue = {
|
|
50791
50653
|
selected,
|
|
50792
50654
|
setSelected,
|
|
50793
50655
|
clearSelection,
|
|
50794
50656
|
isSelected
|
|
50795
50657
|
};
|
|
50796
|
-
return /* @__PURE__ */ jsx(SelectionContext.Provider, { value:
|
|
50658
|
+
return /* @__PURE__ */ jsx(SelectionContext.Provider, { value: contextValue, children });
|
|
50797
50659
|
}
|
|
50798
50660
|
|
|
50799
50661
|
// providers/OrbitalProvider.tsx
|
|
@@ -51000,7 +50862,7 @@ function OrbitalProvider({
|
|
|
51000
50862
|
() => ({ enabled: suspense }),
|
|
51001
50863
|
[suspense]
|
|
51002
50864
|
);
|
|
51003
|
-
const inner = /* @__PURE__ */ jsx(
|
|
50865
|
+
const inner = /* @__PURE__ */ jsx(EventBusProvider, { debug: debug2, children: /* @__PURE__ */ jsx(VerificationProvider, { enabled: verification, children: /* @__PURE__ */ jsx(SelectionProvider, { debug: debug2, children: /* @__PURE__ */ jsx(SuspenseConfigProvider, { config: suspenseConfig, children }) }) }) });
|
|
51004
50866
|
if (skipTheme) {
|
|
51005
50867
|
return inner;
|
|
51006
50868
|
}
|
|
@@ -51243,6 +51105,9 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
|
|
|
51243
51105
|
const currentState = traitStatesRef.current.get(binding.trait.name)?.currentState ?? "";
|
|
51244
51106
|
if (tick.appliesTo.length > 0 && !tick.appliesTo.includes(currentState)) return;
|
|
51245
51107
|
const bindingCtx = { entity: {}, payload: {}, state: currentState };
|
|
51108
|
+
if (binding.config) {
|
|
51109
|
+
bindingCtx.config = binding.config;
|
|
51110
|
+
}
|
|
51246
51111
|
const evalCtx = createContextFromBindings(bindingCtx);
|
|
51247
51112
|
if (tick.guard !== void 0) {
|
|
51248
51113
|
const passed = interpolateValue(tick.guard, evalCtx);
|
|
@@ -51375,6 +51240,9 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
|
|
|
51375
51240
|
payload: payload || {},
|
|
51376
51241
|
state: result.previousState
|
|
51377
51242
|
};
|
|
51243
|
+
if (binding.config) {
|
|
51244
|
+
bindingCtx.config = binding.config;
|
|
51245
|
+
}
|
|
51378
51246
|
const effectContext = {
|
|
51379
51247
|
traitName: binding.trait.name,
|
|
51380
51248
|
state: result.previousState,
|
|
@@ -51689,7 +51557,6 @@ function ServerBridgeProvider({
|
|
|
51689
51557
|
|
|
51690
51558
|
// runtime/OrbPreview.tsx
|
|
51691
51559
|
init_navigation();
|
|
51692
|
-
init_EntityStoreProvider();
|
|
51693
51560
|
init_verificationRegistry();
|
|
51694
51561
|
function generateEntityRow(entity, idx) {
|
|
51695
51562
|
const row = { id: String(idx) };
|
|
@@ -51734,7 +51601,7 @@ function buildMockData(schema) {
|
|
|
51734
51601
|
}
|
|
51735
51602
|
return result;
|
|
51736
51603
|
}
|
|
51737
|
-
function
|
|
51604
|
+
function isInlineTrait2(traitRef) {
|
|
51738
51605
|
return typeof traitRef === "object" && traitRef !== null && "stateMachine" in traitRef;
|
|
51739
51606
|
}
|
|
51740
51607
|
function findDataState(sm, initialStateName) {
|
|
@@ -51766,7 +51633,7 @@ function adjustSchemaForMockData(schema, mockData) {
|
|
|
51766
51633
|
const updatedOrbitals = schema.orbitals.map((orbital) => {
|
|
51767
51634
|
const traits2 = orbital.traits ?? [];
|
|
51768
51635
|
const updatedTraits = traits2.map((traitRef) => {
|
|
51769
|
-
if (!
|
|
51636
|
+
if (!isInlineTrait2(traitRef)) return traitRef;
|
|
51770
51637
|
const updated = rewriteTraitInitialState(traitRef, mockData);
|
|
51771
51638
|
if (updated !== traitRef) changed = true;
|
|
51772
51639
|
return updated;
|
|
@@ -51844,23 +51711,14 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
|
|
|
51844
51711
|
const slotsActions = useSlotsActions();
|
|
51845
51712
|
const bridge = useServerBridge();
|
|
51846
51713
|
const uiSlots = useUISlots();
|
|
51847
|
-
const entityStore = useEntityStore();
|
|
51848
51714
|
const onEventProcessed = useCallback(async (event, payload) => {
|
|
51849
51715
|
if (!bridge.connected || !orbitalNames?.length) return;
|
|
51850
51716
|
for (const name of orbitalNames) {
|
|
51851
51717
|
const { effects, meta } = await bridge.sendEvent(name, event, payload);
|
|
51852
51718
|
recordServerResponse(name, event, meta);
|
|
51853
|
-
const responseData = meta?.data;
|
|
51854
|
-
if (responseData) {
|
|
51855
|
-
for (const [entityType, records] of Object.entries(responseData)) {
|
|
51856
|
-
if (Array.isArray(records)) {
|
|
51857
|
-
entityStore.setAll(entityType, records);
|
|
51858
|
-
}
|
|
51859
|
-
}
|
|
51860
|
-
}
|
|
51861
51719
|
applyServerEffects(effects, uiSlots, onNavigate);
|
|
51862
51720
|
}
|
|
51863
|
-
}, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate
|
|
51721
|
+
}, [bridge.connected, bridge.sendEvent, orbitalNames, uiSlots, onNavigate]);
|
|
51864
51722
|
const opts = orbitalNames ? { onEventProcessed, navigate: onNavigate } : { navigate: onNavigate };
|
|
51865
51723
|
const { sendEvent } = useTraitStateMachine(traits2, slotsActions, opts);
|
|
51866
51724
|
const initSentRef = useRef(false);
|
|
@@ -51900,14 +51758,6 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
|
|
|
51900
51758
|
effects: effectTraces,
|
|
51901
51759
|
timestamp: Date.now()
|
|
51902
51760
|
});
|
|
51903
|
-
const initResponseData = meta?.data;
|
|
51904
|
-
if (initResponseData) {
|
|
51905
|
-
for (const [entityType, records] of Object.entries(initResponseData)) {
|
|
51906
|
-
if (Array.isArray(records)) {
|
|
51907
|
-
entityStore.setAll(entityType, records);
|
|
51908
|
-
}
|
|
51909
|
-
}
|
|
51910
|
-
}
|
|
51911
51761
|
applyServerEffects(effects, uiSlots, onNavigate);
|
|
51912
51762
|
}
|
|
51913
51763
|
})();
|
|
@@ -51940,19 +51790,6 @@ function SchemaRunner({ schema, serverUrl, mockData, pageName, onNavigate, onLoc
|
|
|
51940
51790
|
if (!orbitals) return [];
|
|
51941
51791
|
return orbitals.filter((o) => typeof o.name === "string").map((o) => o.name);
|
|
51942
51792
|
}, [schema]);
|
|
51943
|
-
const entityStore = useEntityStore();
|
|
51944
|
-
const seededRef = useRef("");
|
|
51945
|
-
const mockKey = mockData ? Object.keys(mockData).sort().join(",") : "";
|
|
51946
|
-
React127__default.useLayoutEffect(() => {
|
|
51947
|
-
if (!serverUrl && mockData && seededRef.current !== mockKey) {
|
|
51948
|
-
seededRef.current = mockKey;
|
|
51949
|
-
for (const [entityType, records] of Object.entries(mockData)) {
|
|
51950
|
-
if (Array.isArray(records)) {
|
|
51951
|
-
entityStore.setAll(entityType, records);
|
|
51952
|
-
}
|
|
51953
|
-
}
|
|
51954
|
-
}
|
|
51955
|
-
}, [mockKey, serverUrl, mockData, entityStore]);
|
|
51956
51793
|
const inner = /* @__PURE__ */ jsx(VerificationProvider, { enabled: true, children: /* @__PURE__ */ jsx(SlotsProvider, { children: /* @__PURE__ */ jsxs(EntitySchemaProvider, { entities: Array.from(allEntities.values()), children: [
|
|
51957
51794
|
/* @__PURE__ */ jsx(
|
|
51958
51795
|
TraitInitializer,
|
|
@@ -52450,7 +52287,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
52450
52287
|
}
|
|
52451
52288
|
);
|
|
52452
52289
|
};
|
|
52453
|
-
var OrbPreviewNode =
|
|
52290
|
+
var OrbPreviewNode = React126__default.memo(OrbPreviewNodeInner);
|
|
52454
52291
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
52455
52292
|
var EventFlowEdgeInner = (props) => {
|
|
52456
52293
|
const {
|
|
@@ -52527,7 +52364,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
52527
52364
|
) })
|
|
52528
52365
|
] });
|
|
52529
52366
|
};
|
|
52530
|
-
var EventFlowEdge =
|
|
52367
|
+
var EventFlowEdge = React126__default.memo(EventFlowEdgeInner);
|
|
52531
52368
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
52532
52369
|
|
|
52533
52370
|
// components/molecules/avl/BehaviorComposeNode.tsx
|
|
@@ -52666,7 +52503,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
52666
52503
|
}
|
|
52667
52504
|
);
|
|
52668
52505
|
};
|
|
52669
|
-
var BehaviorComposeNode =
|
|
52506
|
+
var BehaviorComposeNode = React126__default.memo(BehaviorComposeNodeInner);
|
|
52670
52507
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
52671
52508
|
|
|
52672
52509
|
// components/molecules/avl/avl-behavior-compose-converter.ts
|
|
@@ -53606,7 +53443,7 @@ var ZoomBreadcrumb = ({
|
|
|
53606
53443
|
if (eventName && band === "detail") {
|
|
53607
53444
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
53608
53445
|
}
|
|
53609
|
-
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-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(
|
|
53446
|
+
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-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
53610
53447
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
53611
53448
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
53612
53449
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -54065,7 +53902,7 @@ var EventWireOverlay = ({
|
|
|
54065
53902
|
containerW,
|
|
54066
53903
|
containerH
|
|
54067
53904
|
}) => {
|
|
54068
|
-
const ids =
|
|
53905
|
+
const ids = React126__default.useMemo(() => {
|
|
54069
53906
|
avlOczWireId += 1;
|
|
54070
53907
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
54071
53908
|
}, []);
|
|
@@ -54383,7 +54220,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
54383
54220
|
borderRadius: 6,
|
|
54384
54221
|
border: `1px solid ${color}`
|
|
54385
54222
|
},
|
|
54386
|
-
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
54223
|
+
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
|
|
54387
54224
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
54388
54225
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
54389
54226
|
Box,
|