@almadar/ui 2.55.1 → 2.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/avl/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { OrbitControls, Grid as Grid$1, Stars, Sparkles, Html, RoundedBox } from '@react-three/drei';
3
- import * as React125 from 'react';
4
- import React125__default, { createContext, useState, useRef, useCallback, useEffect, lazy, useMemo, useLayoutEffect, useContext, Suspense, useSyncExternalStore, useId, forwardRef, useImperativeHandle, useReducer, Component } from 'react';
3
+ import * as React126 from 'react';
4
+ import React126__default, { createContext, useState, useRef, useCallback, useEffect, lazy, useMemo, useLayoutEffect, useContext, Suspense, useSyncExternalStore, useId, forwardRef, useImperativeHandle, useReducer, Component } from 'react';
5
5
  import { useThree, useFrame, Canvas } from '@react-three/fiber';
6
6
  import * as THREE6 from 'three';
7
7
  import { MathUtils, Vector3, Quaternion, QuadraticBezierCurve3 } from 'three';
@@ -3239,7 +3239,7 @@ var init_Box = __esm({
3239
3239
  fixed: "fixed",
3240
3240
  sticky: "sticky"
3241
3241
  };
3242
- Box = React125__default.forwardRef(
3242
+ Box = React126__default.forwardRef(
3243
3243
  ({
3244
3244
  padding,
3245
3245
  paddingX,
@@ -3595,6 +3595,9 @@ function exprToTree(expr) {
3595
3595
  function parseApplicationLevel(schema) {
3596
3596
  const orbitals = [];
3597
3597
  const crossLinks = [];
3598
+ if (!schema.orbitals || schema.orbitals.length === 0) {
3599
+ return { orbitals: [], crossLinks: [] };
3600
+ }
3598
3601
  const count = schema.orbitals.length;
3599
3602
  const cols = Math.ceil(Math.sqrt(count));
3600
3603
  const rows = Math.ceil(count / cols);
@@ -3649,6 +3652,7 @@ function parseApplicationLevel(schema) {
3649
3652
  return { orbitals, crossLinks };
3650
3653
  }
3651
3654
  function parseOrbitalLevel(schema, orbitalName) {
3655
+ if (!schema.orbitals) return null;
3652
3656
  const orbital = schema.orbitals.find((o) => o.name === orbitalName);
3653
3657
  if (!orbital) return null;
3654
3658
  const entity = getEntity(orbital);
@@ -3717,6 +3721,7 @@ function parseOrbitalLevel(schema, orbitalName) {
3717
3721
  };
3718
3722
  }
3719
3723
  function parseTraitLevel(schema, orbitalName, traitName) {
3724
+ if (!schema.orbitals) return null;
3720
3725
  const orbital = schema.orbitals.find((o) => o.name === orbitalName);
3721
3726
  if (!orbital) return null;
3722
3727
  const traits2 = getTraits(orbital);
@@ -5581,7 +5586,7 @@ function UnitRenderer({
5581
5586
  onAnimationStateChange,
5582
5587
  animationSpeed = 1
5583
5588
  }) {
5584
- const handleUnitClick = React125__default.useCallback(
5589
+ const handleUnitClick = React126__default.useCallback(
5585
5590
  (unit) => {
5586
5591
  onUnitClick?.(unit);
5587
5592
  },
@@ -8775,7 +8780,7 @@ var init_Avl3DViewer = __esm({
8775
8780
  const handleTraitClick = useCallback((name) => {
8776
8781
  dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
8777
8782
  }, []);
8778
- const [highlightedTrait, setHighlightedTrait] = React125__default.useState(null);
8783
+ const [highlightedTrait, setHighlightedTrait] = React126__default.useState(null);
8779
8784
  const handleTransitionClick = useCallback((index) => {
8780
8785
  dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
8781
8786
  }, []);
@@ -8862,7 +8867,7 @@ var init_Avl3DViewer = __esm({
8862
8867
  gap: "xs",
8863
8868
  align: "center",
8864
8869
  className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
8865
- children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
8870
+ children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
8866
8871
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
8867
8872
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
8868
8873
  Box,
@@ -9613,7 +9618,7 @@ var AvlTransition = ({
9613
9618
  opacity = 1,
9614
9619
  className
9615
9620
  }) => {
9616
- const ids = React125__default.useMemo(() => {
9621
+ const ids = React126__default.useMemo(() => {
9617
9622
  avlTransitionId += 1;
9618
9623
  return { arrow: `avl-tr-${avlTransitionId}-arrow` };
9619
9624
  }, []);
@@ -10378,7 +10383,7 @@ var AvlStateMachine = ({
10378
10383
  color = "var(--color-primary)",
10379
10384
  animated = false
10380
10385
  }) => {
10381
- const ids = React125__default.useMemo(() => {
10386
+ const ids = React126__default.useMemo(() => {
10382
10387
  avlSmId += 1;
10383
10388
  const base = `avl-sm-${avlSmId}`;
10384
10389
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -10573,7 +10578,7 @@ var AvlOrbitalUnit = ({
10573
10578
  color = "var(--color-primary)",
10574
10579
  animated = false
10575
10580
  }) => {
10576
- const ids = React125__default.useMemo(() => {
10581
+ const ids = React126__default.useMemo(() => {
10577
10582
  avlOuId += 1;
10578
10583
  const base = `avl-ou-${avlOuId}`;
10579
10584
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -10665,7 +10670,7 @@ var AvlClosedCircuit = ({
10665
10670
  color = "var(--color-primary)",
10666
10671
  animated = false
10667
10672
  }) => {
10668
- const ids = React125__default.useMemo(() => {
10673
+ const ids = React126__default.useMemo(() => {
10669
10674
  avlCcId += 1;
10670
10675
  const base = `avl-cc-${avlCcId}`;
10671
10676
  return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
@@ -10818,7 +10823,7 @@ var AvlEmitListen = ({
10818
10823
  color = "var(--color-primary)",
10819
10824
  animated = false
10820
10825
  }) => {
10821
- const ids = React125__default.useMemo(() => {
10826
+ const ids = React126__default.useMemo(() => {
10822
10827
  avlElId += 1;
10823
10828
  const base = `avl-el-${avlElId}`;
10824
10829
  return { arrow: `${base}-arrow`, grad: `${base}-grad` };
@@ -11091,7 +11096,7 @@ function renderNode(node, color, glowId) {
11091
11096
  const baseR = node.type === "operator" ? 20 : 16;
11092
11097
  const r2 = Math.max(baseR, labelLen * 3.5 + 6);
11093
11098
  const nc = nodeColor(node.type, color);
11094
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
11099
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
11095
11100
  node.children.map((child, i) => {
11096
11101
  const childR = Math.max(
11097
11102
  child.type === "operator" ? 20 : 16,
@@ -11148,7 +11153,7 @@ var AvlExprTree = ({
11148
11153
  className,
11149
11154
  color = "var(--color-primary)"
11150
11155
  }) => {
11151
- const ids = React125__default.useMemo(() => {
11156
+ const ids = React126__default.useMemo(() => {
11152
11157
  avlEtId += 1;
11153
11158
  return { glow: `avl-et-${avlEtId}-glow` };
11154
11159
  }, []);
@@ -12122,7 +12127,7 @@ var SystemNode = ({ data }) => {
12122
12127
  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) => {
12123
12128
  const tc = transitionCounts[s.name] ?? 0;
12124
12129
  const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
12125
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
12130
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
12126
12131
  /* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
12127
12132
  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 })
12128
12133
  ] }, s.name);
@@ -12162,7 +12167,7 @@ var MiniStateMachine = ({ data, className }) => {
12162
12167
  const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
12163
12168
  const tc = transitionCounts[s.name] ?? 0;
12164
12169
  const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
12165
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
12170
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
12166
12171
  /* @__PURE__ */ jsx(
12167
12172
  AvlState,
12168
12173
  {
@@ -13486,7 +13491,7 @@ function subscribeToStore(listener) {
13486
13491
  function useEntityRef(entityType) {
13487
13492
  const versionRef = useRef(0);
13488
13493
  const dataRef = useRef([]);
13489
- const getSnapshotStable = React125__default.useCallback(() => {
13494
+ const getSnapshotStable = React126__default.useCallback(() => {
13490
13495
  const currentVersion = getVersion(entityType);
13491
13496
  if (currentVersion !== versionRef.current) {
13492
13497
  versionRef.current = currentVersion;
@@ -14353,7 +14358,7 @@ function resolveIconProp(value, sizeClass) {
14353
14358
  const IconComp = value;
14354
14359
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
14355
14360
  }
14356
- if (React125__default.isValidElement(value)) {
14361
+ if (React126__default.isValidElement(value)) {
14357
14362
  return value;
14358
14363
  }
14359
14364
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -14362,7 +14367,7 @@ function resolveIconProp(value, sizeClass) {
14362
14367
  }
14363
14368
  return value;
14364
14369
  }
14365
- var Button = React125__default.forwardRef(
14370
+ var Button = React126__default.forwardRef(
14366
14371
  ({
14367
14372
  className,
14368
14373
  variant = "primary",
@@ -14461,7 +14466,7 @@ var sizeStyles3 = {
14461
14466
  md: "px-2.5 py-1 text-sm",
14462
14467
  lg: "px-3 py-1.5 text-base"
14463
14468
  };
14464
- var Badge = React125__default.forwardRef(
14469
+ var Badge = React126__default.forwardRef(
14465
14470
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
14466
14471
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
14467
14472
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -14602,7 +14607,7 @@ init_cn();
14602
14607
 
14603
14608
  // components/atoms/Input.tsx
14604
14609
  init_cn();
14605
- var Input = React125__default.forwardRef(
14610
+ var Input = React126__default.forwardRef(
14606
14611
  ({
14607
14612
  className,
14608
14613
  inputType,
@@ -14717,7 +14722,7 @@ Input.displayName = "Input";
14717
14722
 
14718
14723
  // components/atoms/Label.tsx
14719
14724
  init_cn();
14720
- var Label = React125__default.forwardRef(
14725
+ var Label = React126__default.forwardRef(
14721
14726
  ({ className, required, children, ...props }, ref) => {
14722
14727
  return /* @__PURE__ */ jsxs(
14723
14728
  "label",
@@ -14740,7 +14745,7 @@ Label.displayName = "Label";
14740
14745
 
14741
14746
  // components/atoms/Textarea.tsx
14742
14747
  init_cn();
14743
- var Textarea = React125__default.forwardRef(
14748
+ var Textarea = React126__default.forwardRef(
14744
14749
  ({ className, error, ...props }, ref) => {
14745
14750
  return /* @__PURE__ */ jsx(
14746
14751
  "textarea",
@@ -14766,7 +14771,7 @@ Textarea.displayName = "Textarea";
14766
14771
 
14767
14772
  // components/atoms/Select.tsx
14768
14773
  init_cn();
14769
- var Select = React125__default.forwardRef(
14774
+ var Select = React126__default.forwardRef(
14770
14775
  ({ className, options, placeholder, error, ...props }, ref) => {
14771
14776
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
14772
14777
  /* @__PURE__ */ jsxs(
@@ -14805,7 +14810,7 @@ Select.displayName = "Select";
14805
14810
 
14806
14811
  // components/atoms/Checkbox.tsx
14807
14812
  init_cn();
14808
- var Checkbox = React125__default.forwardRef(
14813
+ var Checkbox = React126__default.forwardRef(
14809
14814
  ({ className, label, id, ...props }, ref) => {
14810
14815
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
14811
14816
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -14884,7 +14889,7 @@ var shadowStyles2 = {
14884
14889
  md: "shadow",
14885
14890
  lg: "shadow-lg"
14886
14891
  };
14887
- var Card = React125__default.forwardRef(
14892
+ var Card = React126__default.forwardRef(
14888
14893
  ({
14889
14894
  className,
14890
14895
  variant = "bordered",
@@ -14920,9 +14925,9 @@ var Card = React125__default.forwardRef(
14920
14925
  }
14921
14926
  );
14922
14927
  Card.displayName = "Card";
14923
- var CardHeader = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
14928
+ var CardHeader = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
14924
14929
  CardHeader.displayName = "CardHeader";
14925
- var CardTitle = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14930
+ var CardTitle = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14926
14931
  "h3",
14927
14932
  {
14928
14933
  ref,
@@ -14935,11 +14940,11 @@ var CardTitle = React125__default.forwardRef(({ className, ...props }, ref) => /
14935
14940
  }
14936
14941
  ));
14937
14942
  CardTitle.displayName = "CardTitle";
14938
- var CardContent = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
14943
+ var CardContent = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
14939
14944
  CardContent.displayName = "CardContent";
14940
14945
  var CardBody = CardContent;
14941
14946
  CardBody.displayName = "CardBody";
14942
- var CardFooter = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14947
+ var CardFooter = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14943
14948
  "div",
14944
14949
  {
14945
14950
  ref,
@@ -14957,7 +14962,7 @@ var sizeStyles4 = {
14957
14962
  md: "h-6 w-6",
14958
14963
  lg: "h-8 w-8"
14959
14964
  };
14960
- var Spinner = React125__default.forwardRef(
14965
+ var Spinner = React126__default.forwardRef(
14961
14966
  ({ className, size = "md", ...props }, ref) => {
14962
14967
  return /* @__PURE__ */ jsx(
14963
14968
  "div",
@@ -15392,7 +15397,7 @@ ProgressBar.displayName = "ProgressBar";
15392
15397
 
15393
15398
  // components/atoms/Radio.tsx
15394
15399
  init_cn();
15395
- var Radio = React125__default.forwardRef(
15400
+ var Radio = React126__default.forwardRef(
15396
15401
  ({
15397
15402
  label,
15398
15403
  helperText,
@@ -15499,7 +15504,7 @@ Radio.displayName = "Radio";
15499
15504
 
15500
15505
  // components/atoms/Switch.tsx
15501
15506
  init_cn();
15502
- var Switch = React125.forwardRef(
15507
+ var Switch = React126.forwardRef(
15503
15508
  ({
15504
15509
  checked,
15505
15510
  defaultChecked = false,
@@ -15510,10 +15515,10 @@ var Switch = React125.forwardRef(
15510
15515
  name,
15511
15516
  className
15512
15517
  }, ref) => {
15513
- const [isChecked, setIsChecked] = React125.useState(
15518
+ const [isChecked, setIsChecked] = React126.useState(
15514
15519
  checked !== void 0 ? checked : defaultChecked
15515
15520
  );
15516
- React125.useEffect(() => {
15521
+ React126.useEffect(() => {
15517
15522
  if (checked !== void 0) {
15518
15523
  setIsChecked(checked);
15519
15524
  }
@@ -15829,8 +15834,8 @@ var LawReferenceTooltip = ({
15829
15834
  position = "top",
15830
15835
  className
15831
15836
  }) => {
15832
- const [isVisible, setIsVisible] = React125__default.useState(false);
15833
- const timeoutRef = React125__default.useRef(null);
15837
+ const [isVisible, setIsVisible] = React126__default.useState(false);
15838
+ const timeoutRef = React126__default.useRef(null);
15834
15839
  const handleMouseEnter = () => {
15835
15840
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
15836
15841
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -15839,7 +15844,7 @@ var LawReferenceTooltip = ({
15839
15844
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
15840
15845
  setIsVisible(false);
15841
15846
  };
15842
- React125__default.useEffect(() => {
15847
+ React126__default.useEffect(() => {
15843
15848
  return () => {
15844
15849
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
15845
15850
  };
@@ -16039,7 +16044,7 @@ var sizeStyles5 = {
16039
16044
  md: "w-2.5 h-2.5",
16040
16045
  lg: "w-3 h-3"
16041
16046
  };
16042
- var StatusDot = React125__default.forwardRef(
16047
+ var StatusDot = React126__default.forwardRef(
16043
16048
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
16044
16049
  return /* @__PURE__ */ jsx(
16045
16050
  "span",
@@ -16089,7 +16094,7 @@ var iconMap2 = {
16089
16094
  down: TrendingDown,
16090
16095
  flat: ArrowRight
16091
16096
  };
16092
- var TrendIndicator = React125__default.forwardRef(
16097
+ var TrendIndicator = React126__default.forwardRef(
16093
16098
  ({
16094
16099
  className,
16095
16100
  value,
@@ -16152,7 +16157,7 @@ var thumbSizes = {
16152
16157
  md: "w-4 h-4",
16153
16158
  lg: "w-5 h-5"
16154
16159
  };
16155
- var RangeSlider = React125__default.forwardRef(
16160
+ var RangeSlider = React126__default.forwardRef(
16156
16161
  ({
16157
16162
  className,
16158
16163
  min = 0,
@@ -16666,7 +16671,7 @@ var paddingClasses = {
16666
16671
  md: "py-16",
16667
16672
  lg: "py-24"
16668
16673
  };
16669
- var ContentSection = React125__default.forwardRef(
16674
+ var ContentSection = React126__default.forwardRef(
16670
16675
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
16671
16676
  return /* @__PURE__ */ jsx(
16672
16677
  Box,
@@ -16708,7 +16713,7 @@ var animatedStyles = {
16708
16713
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
16709
16714
  "none": {}
16710
16715
  };
16711
- var AnimatedReveal = React125__default.forwardRef(
16716
+ var AnimatedReveal = React126__default.forwardRef(
16712
16717
  ({
16713
16718
  trigger = "scroll",
16714
16719
  animation = "fade-up",
@@ -16864,7 +16869,7 @@ function applyMorphAnimation(container, animate, duration, delay, easing) {
16864
16869
  el.style.opacity = animate ? "1" : "0";
16865
16870
  });
16866
16871
  }
16867
- var AnimatedGraphic = React125__default.forwardRef(
16872
+ var AnimatedGraphic = React126__default.forwardRef(
16868
16873
  ({
16869
16874
  src,
16870
16875
  svgContent,
@@ -16887,7 +16892,7 @@ var AnimatedGraphic = React125__default.forwardRef(
16887
16892
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
16888
16893
  const resolvedSvg = svgContent ?? fetchedSvg;
16889
16894
  const prevAnimateRef = useRef(animate);
16890
- const setRef = React125__default.useCallback(
16895
+ const setRef = React126__default.useCallback(
16891
16896
  (node) => {
16892
16897
  containerRef.current = node;
16893
16898
  if (typeof ref === "function") ref(node);
@@ -17064,9 +17069,9 @@ function ScoreDisplay({
17064
17069
  ...rest
17065
17070
  }) {
17066
17071
  const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
17067
- const [displayValue, setDisplayValue] = React125.useState(resolvedValue);
17068
- const [isAnimating, setIsAnimating] = React125.useState(false);
17069
- React125.useEffect(() => {
17072
+ const [displayValue, setDisplayValue] = React126.useState(resolvedValue);
17073
+ const [isAnimating, setIsAnimating] = React126.useState(false);
17074
+ React126.useEffect(() => {
17070
17075
  if (!animated || displayValue === resolvedValue) {
17071
17076
  setDisplayValue(resolvedValue);
17072
17077
  return;
@@ -17143,9 +17148,9 @@ function ControlButton({
17143
17148
  className
17144
17149
  }) {
17145
17150
  const eventBus = useEventBus();
17146
- const [isPressed, setIsPressed] = React125.useState(false);
17151
+ const [isPressed, setIsPressed] = React126.useState(false);
17147
17152
  const actualPressed = pressed ?? isPressed;
17148
- const handlePointerDown = React125.useCallback(
17153
+ const handlePointerDown = React126.useCallback(
17149
17154
  (e) => {
17150
17155
  e.preventDefault();
17151
17156
  if (disabled) return;
@@ -17155,7 +17160,7 @@ function ControlButton({
17155
17160
  },
17156
17161
  [disabled, pressEvent, eventBus, onPress]
17157
17162
  );
17158
- const handlePointerUp = React125.useCallback(
17163
+ const handlePointerUp = React126.useCallback(
17159
17164
  (e) => {
17160
17165
  e.preventDefault();
17161
17166
  if (disabled) return;
@@ -17165,7 +17170,7 @@ function ControlButton({
17165
17170
  },
17166
17171
  [disabled, releaseEvent, eventBus, onRelease]
17167
17172
  );
17168
- const handlePointerLeave = React125.useCallback(
17173
+ const handlePointerLeave = React126.useCallback(
17169
17174
  (e) => {
17170
17175
  if (isPressed) {
17171
17176
  setIsPressed(false);
@@ -18001,9 +18006,9 @@ function MiniMap({
18001
18006
  viewportRect,
18002
18007
  className
18003
18008
  }) {
18004
- const canvasRef = React125.useRef(null);
18005
- const frameRef = React125.useRef(0);
18006
- React125.useEffect(() => {
18009
+ const canvasRef = React126.useRef(null);
18010
+ const frameRef = React126.useRef(0);
18011
+ React126.useEffect(() => {
18007
18012
  const canvas = canvasRef.current;
18008
18013
  if (!canvas) return;
18009
18014
  const ctx = canvas.getContext("2d");
@@ -18239,7 +18244,7 @@ var ErrorState = ({
18239
18244
  );
18240
18245
  };
18241
18246
  ErrorState.displayName = "ErrorState";
18242
- var ErrorBoundary = class extends React125__default.Component {
18247
+ var ErrorBoundary = class extends React126__default.Component {
18243
18248
  constructor(props) {
18244
18249
  super(props);
18245
18250
  __publicField(this, "reset", () => {
@@ -18642,8 +18647,8 @@ var Tooltip = ({
18642
18647
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
18643
18648
  };
18644
18649
  }, []);
18645
- const triggerElement = React125__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18646
- const trigger = React125__default.cloneElement(triggerElement, {
18650
+ const triggerElement = React126__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18651
+ const trigger = React126__default.cloneElement(triggerElement, {
18647
18652
  ref: triggerRef,
18648
18653
  onMouseEnter: handleMouseEnter,
18649
18654
  onMouseLeave: handleMouseLeave,
@@ -18760,8 +18765,8 @@ var Popover = ({
18760
18765
  onMouseEnter: handleOpen,
18761
18766
  onMouseLeave: handleClose
18762
18767
  };
18763
- const childElement = React125__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18764
- const triggerElement = React125__default.cloneElement(
18768
+ const childElement = React126__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18769
+ const triggerElement = React126__default.cloneElement(
18765
18770
  childElement,
18766
18771
  {
18767
18772
  ref: triggerRef,
@@ -18868,8 +18873,8 @@ var Menu = ({
18868
18873
  "bottom-start": "top-full left-0 mt-2",
18869
18874
  "bottom-end": "top-full right-0 mt-2"
18870
18875
  };
18871
- const triggerChild = React125__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
18872
- const triggerElement = React125__default.cloneElement(
18876
+ const triggerChild = React126__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
18877
+ const triggerElement = React126__default.cloneElement(
18873
18878
  triggerChild,
18874
18879
  {
18875
18880
  ref: triggerRef,
@@ -19342,7 +19347,7 @@ var MapViewImpl = lazy(async () => {
19342
19347
  shadowSize: [41, 41]
19343
19348
  });
19344
19349
  L.Marker.prototype.options.icon = defaultIcon;
19345
- const { useEffect: useEffect88, useRef: useRef88, useCallback: useCallback124, useState: useState124 } = React125__default;
19350
+ const { useEffect: useEffect88, useRef: useRef88, useCallback: useCallback125, useState: useState125 } = React126__default;
19346
19351
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
19347
19352
  const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
19348
19353
  function MapUpdater({ centerLat, centerLng, zoom }) {
@@ -19386,8 +19391,8 @@ var MapViewImpl = lazy(async () => {
19386
19391
  showAttribution = true
19387
19392
  }) {
19388
19393
  const eventBus = useEventBus3();
19389
- const [clickedPosition, setClickedPosition] = useState124(null);
19390
- const handleMapClick = useCallback124((lat, lng) => {
19394
+ const [clickedPosition, setClickedPosition] = useState125(null);
19395
+ const handleMapClick = useCallback125((lat, lng) => {
19391
19396
  if (showClickedPin) {
19392
19397
  setClickedPosition({ lat, lng });
19393
19398
  }
@@ -19396,7 +19401,7 @@ var MapViewImpl = lazy(async () => {
19396
19401
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
19397
19402
  }
19398
19403
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
19399
- const handleMarkerClick = useCallback124((marker) => {
19404
+ const handleMarkerClick = useCallback125((marker) => {
19400
19405
  onMarkerClick?.(marker);
19401
19406
  if (markerClickEvent) {
19402
19407
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -19616,7 +19621,7 @@ function InputPattern({
19616
19621
  className
19617
19622
  }) {
19618
19623
  const { emit } = useEventBus();
19619
- const [localValue, setLocalValue] = React125__default.useState(value);
19624
+ const [localValue, setLocalValue] = React126__default.useState(value);
19620
19625
  const handleChange = (e) => {
19621
19626
  setLocalValue(e.target.value);
19622
19627
  if (onChange) {
@@ -19653,7 +19658,7 @@ function TextareaPattern({
19653
19658
  className
19654
19659
  }) {
19655
19660
  const { emit } = useEventBus();
19656
- const [localValue, setLocalValue] = React125__default.useState(value);
19661
+ const [localValue, setLocalValue] = React126__default.useState(value);
19657
19662
  const handleChange = (e) => {
19658
19663
  setLocalValue(e.target.value);
19659
19664
  if (onChange) {
@@ -19684,7 +19689,7 @@ function SelectPattern({
19684
19689
  className
19685
19690
  }) {
19686
19691
  const { emit } = useEventBus();
19687
- const [localValue, setLocalValue] = React125__default.useState(value);
19692
+ const [localValue, setLocalValue] = React126__default.useState(value);
19688
19693
  const handleChange = (e) => {
19689
19694
  setLocalValue(e.target.value);
19690
19695
  if (onChange) {
@@ -19713,7 +19718,7 @@ function CheckboxPattern({
19713
19718
  className
19714
19719
  }) {
19715
19720
  const { emit } = useEventBus();
19716
- const [localChecked, setLocalChecked] = React125__default.useState(checked);
19721
+ const [localChecked, setLocalChecked] = React126__default.useState(checked);
19717
19722
  const handleChange = (e) => {
19718
19723
  setLocalChecked(e.target.checked);
19719
19724
  if (onChange) {
@@ -19918,8 +19923,8 @@ function ActionButtons({
19918
19923
  disabled
19919
19924
  }) {
19920
19925
  const eventBus = useEventBus();
19921
- const [activeButtons, setActiveButtons] = React125.useState(/* @__PURE__ */ new Set());
19922
- const handlePress = React125.useCallback(
19926
+ const [activeButtons, setActiveButtons] = React126.useState(/* @__PURE__ */ new Set());
19927
+ const handlePress = React126.useCallback(
19923
19928
  (id) => {
19924
19929
  setActiveButtons((prev) => new Set(prev).add(id));
19925
19930
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -19927,7 +19932,7 @@ function ActionButtons({
19927
19932
  },
19928
19933
  [actionEvent, eventBus, onAction]
19929
19934
  );
19930
- const handleRelease = React125.useCallback(
19935
+ const handleRelease = React126.useCallback(
19931
19936
  (id) => {
19932
19937
  setActiveButtons((prev) => {
19933
19938
  const next = new Set(prev);
@@ -21854,7 +21859,7 @@ ScaledDiagram.displayName = "ScaledDiagram";
21854
21859
  init_Stack();
21855
21860
  init_Box();
21856
21861
  init_cn();
21857
- var MarkdownContent = React125__default.memo(
21862
+ var MarkdownContent = React126__default.memo(
21858
21863
  ({ content, direction, className }) => {
21859
21864
  const { t: _t } = useTranslate();
21860
21865
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -22064,7 +22069,7 @@ function computeFoldRegions(code) {
22064
22069
  }
22065
22070
  var LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
22066
22071
  var HIDDEN_LINE_NUMBERS = { display: "none" };
22067
- var CodeBlock = React125__default.memo(
22072
+ var CodeBlock = React126__default.memo(
22068
22073
  ({
22069
22074
  code: rawCode,
22070
22075
  language = "text",
@@ -23351,7 +23356,7 @@ var StateMachineView = ({
23351
23356
  style: { top: title ? 30 : 0 },
23352
23357
  children: [
23353
23358
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
23354
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React125__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
23359
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React126__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
23355
23360
  StateNode,
23356
23361
  {
23357
23362
  state,
@@ -28877,7 +28882,7 @@ function CraftingRecipe({
28877
28882
  className
28878
28883
  }) {
28879
28884
  const eventBus = useEventBus();
28880
- const handleCraft = React125.useCallback(() => {
28885
+ const handleCraft = React126.useCallback(() => {
28881
28886
  onCraft?.();
28882
28887
  if (craftEvent) {
28883
28888
  eventBus.emit(craftEvent, { output: output.label });
@@ -28894,7 +28899,7 @@ function CraftingRecipe({
28894
28899
  children: [
28895
28900
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
28896
28901
  const hasSufficient = ingredient.available >= ingredient.required;
28897
- return /* @__PURE__ */ jsxs(React125.Fragment, { children: [
28902
+ return /* @__PURE__ */ jsxs(React126.Fragment, { children: [
28898
28903
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
28899
28904
  ItemSlot,
28900
28905
  {
@@ -29183,8 +29188,8 @@ function DPad({
29183
29188
  }) {
29184
29189
  const eventBus = useEventBus();
29185
29190
  const sizes = sizeMap15[size];
29186
- const [activeDirections, setActiveDirections] = React125.useState(/* @__PURE__ */ new Set());
29187
- const handlePress = React125.useCallback(
29191
+ const [activeDirections, setActiveDirections] = React126.useState(/* @__PURE__ */ new Set());
29192
+ const handlePress = React126.useCallback(
29188
29193
  (direction) => {
29189
29194
  setActiveDirections((prev) => new Set(prev).add(direction));
29190
29195
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -29192,7 +29197,7 @@ function DPad({
29192
29197
  },
29193
29198
  [directionEvent, eventBus, onDirection]
29194
29199
  );
29195
- const handleRelease = React125.useCallback(
29200
+ const handleRelease = React126.useCallback(
29196
29201
  (direction) => {
29197
29202
  setActiveDirections((prev) => {
29198
29203
  const next = new Set(prev);
@@ -30003,7 +30008,7 @@ var DataList = ({
30003
30008
  }) => {
30004
30009
  const eventBus = useEventBus();
30005
30010
  const { t } = useTranslate();
30006
- const [visibleCount, setVisibleCount] = React125__default.useState(pageSize || Infinity);
30011
+ const [visibleCount, setVisibleCount] = React126__default.useState(pageSize || Infinity);
30007
30012
  const fields = fieldsProp ?? columnsProp ?? [];
30008
30013
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
30009
30014
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
@@ -30040,7 +30045,7 @@ var DataList = ({
30040
30045
  const items2 = data.map((item) => item);
30041
30046
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
30042
30047
  const contentField = titleField?.name ?? fields[0]?.name ?? "";
30043
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
30048
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
30044
30049
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
30045
30050
  group.items.map((itemData, index) => {
30046
30051
  const id = itemData.id || `${gi}-${index}`;
@@ -30243,7 +30248,7 @@ var DataList = ({
30243
30248
  className
30244
30249
  ),
30245
30250
  children: [
30246
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
30251
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
30247
30252
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
30248
30253
  group.items.map(
30249
30254
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -30284,6 +30289,10 @@ init_Box();
30284
30289
  init_Stack();
30285
30290
  init_Typography();
30286
30291
 
30292
+ // components/molecules/FileTree.tsx
30293
+ init_Box();
30294
+ init_Typography();
30295
+
30287
30296
  // components/molecules/FormField.tsx
30288
30297
  init_cn();
30289
30298
  init_Typography();
@@ -31310,7 +31319,7 @@ var WizardProgress = ({
31310
31319
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((step, index) => {
31311
31320
  const isActive = index === currentStep;
31312
31321
  const isCompleted = index < currentStep;
31313
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
31322
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
31314
31323
  /* @__PURE__ */ jsx(
31315
31324
  "button",
31316
31325
  {
@@ -32180,7 +32189,7 @@ function InventoryGrid({
32180
32189
  const eventBus = useEventBus();
32181
32190
  const slotCount = totalSlots ?? items.length;
32182
32191
  const emptySlotCount = Math.max(0, slotCount - items.length);
32183
- const handleSelect = React125.useCallback(
32192
+ const handleSelect = React126.useCallback(
32184
32193
  (id) => {
32185
32194
  onSelect?.(id);
32186
32195
  if (selectEvent) {
@@ -32369,15 +32378,15 @@ function GameCanvas2D({
32369
32378
  fps = 60,
32370
32379
  className
32371
32380
  }) {
32372
- const canvasRef = React125.useRef(null);
32373
- const rafRef = React125.useRef(0);
32374
- const frameRef = React125.useRef(0);
32375
- const lastTimeRef = React125.useRef(0);
32376
- const onDrawRef = React125.useRef(onDraw);
32381
+ const canvasRef = React126.useRef(null);
32382
+ const rafRef = React126.useRef(0);
32383
+ const frameRef = React126.useRef(0);
32384
+ const lastTimeRef = React126.useRef(0);
32385
+ const onDrawRef = React126.useRef(onDraw);
32377
32386
  onDrawRef.current = onDraw;
32378
- const onTickRef = React125.useRef(onTick);
32387
+ const onTickRef = React126.useRef(onTick);
32379
32388
  onTickRef.current = onTick;
32380
- React125.useEffect(() => {
32389
+ React126.useEffect(() => {
32381
32390
  const canvas = canvasRef.current;
32382
32391
  if (!canvas) return;
32383
32392
  const ctx = canvas.getContext("2d");
@@ -32648,7 +32657,7 @@ function TurnPanel({
32648
32657
  className
32649
32658
  }) {
32650
32659
  const eventBus = useEventBus();
32651
- const handleAction = React125.useCallback(
32660
+ const handleAction = React126.useCallback(
32652
32661
  (event) => {
32653
32662
  if (event) {
32654
32663
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -32784,7 +32793,7 @@ function UnitCommandBar({
32784
32793
  className
32785
32794
  }) {
32786
32795
  const eventBus = useEventBus();
32787
- const handleCommand = React125.useCallback(
32796
+ const handleCommand = React126.useCallback(
32788
32797
  (event) => {
32789
32798
  if (event) {
32790
32799
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -33258,7 +33267,7 @@ function GameMenu({
33258
33267
  } catch {
33259
33268
  }
33260
33269
  const eventBus = eventBusProp || eventBusFromHook;
33261
- const handleOptionClick = React125.useCallback(
33270
+ const handleOptionClick = React126.useCallback(
33262
33271
  (option) => {
33263
33272
  if (option.event && eventBus) {
33264
33273
  eventBus.emit(`UI:${option.event}`, { option });
@@ -33385,7 +33394,7 @@ function GameOverScreen({
33385
33394
  } catch {
33386
33395
  }
33387
33396
  const eventBus = eventBusProp || eventBusFromHook;
33388
- const handleActionClick = React125.useCallback(
33397
+ const handleActionClick = React126.useCallback(
33389
33398
  (action) => {
33390
33399
  if (action.event && eventBus) {
33391
33400
  eventBus.emit(`UI:${action.event}`, { action });
@@ -36790,7 +36799,7 @@ var DocumentViewer = ({
36790
36799
  DocumentViewer.displayName = "DocumentViewer";
36791
36800
  init_useEventBus();
36792
36801
  function extractTitle(children) {
36793
- if (!React125__default.isValidElement(children)) return void 0;
36802
+ if (!React126__default.isValidElement(children)) return void 0;
36794
36803
  const props = children.props;
36795
36804
  if (typeof props.title === "string") {
36796
36805
  return props.title;
@@ -36850,7 +36859,7 @@ function LinearView({
36850
36859
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
36851
36860
  const isDone = i < currentIdx;
36852
36861
  const isCurrent = i === currentIdx;
36853
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
36862
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
36854
36863
  i > 0 && /* @__PURE__ */ jsx(
36855
36864
  Typography,
36856
36865
  {
@@ -37526,7 +37535,7 @@ var Form = ({
37526
37535
  const normalizedInitialData = initialData ?? {};
37527
37536
  const resolvedEntity = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
37528
37537
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
37529
- const entityDerivedFields = React125__default.useMemo(() => {
37538
+ const entityDerivedFields = React126__default.useMemo(() => {
37530
37539
  if (fields && fields.length > 0) return void 0;
37531
37540
  if (!resolvedEntity) return void 0;
37532
37541
  return resolvedEntity.fields.map(
@@ -37545,14 +37554,14 @@ var Form = ({
37545
37554
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
37546
37555
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
37547
37556
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
37548
- const [formData, setFormData] = React125__default.useState(
37557
+ const [formData, setFormData] = React126__default.useState(
37549
37558
  normalizedInitialData
37550
37559
  );
37551
- const [collapsedSections, setCollapsedSections] = React125__default.useState(
37560
+ const [collapsedSections, setCollapsedSections] = React126__default.useState(
37552
37561
  /* @__PURE__ */ new Set()
37553
37562
  );
37554
37563
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
37555
- const evalContext = React125__default.useMemo(
37564
+ const evalContext = React126__default.useMemo(
37556
37565
  () => ({
37557
37566
  formValues: formData,
37558
37567
  globalVariables: externalContext?.globalVariables ?? {},
@@ -37561,13 +37570,13 @@ var Form = ({
37561
37570
  }),
37562
37571
  [formData, externalContext]
37563
37572
  );
37564
- React125__default.useEffect(() => {
37573
+ React126__default.useEffect(() => {
37565
37574
  const data = initialData;
37566
37575
  if (data && Object.keys(data).length > 0) {
37567
37576
  setFormData(data);
37568
37577
  }
37569
37578
  }, [initialData]);
37570
- const processCalculations = React125__default.useCallback(
37579
+ const processCalculations = React126__default.useCallback(
37571
37580
  (changedFieldId, newFormData) => {
37572
37581
  if (!hiddenCalculations.length) return;
37573
37582
  const context = {
@@ -37592,7 +37601,7 @@ var Form = ({
37592
37601
  },
37593
37602
  [hiddenCalculations, externalContext, eventBus]
37594
37603
  );
37595
- const checkViolations = React125__default.useCallback(
37604
+ const checkViolations = React126__default.useCallback(
37596
37605
  (changedFieldId, newFormData) => {
37597
37606
  if (!violationTriggers.length) return;
37598
37607
  const context = {
@@ -37629,7 +37638,7 @@ var Form = ({
37629
37638
  processCalculations(name, newFormData);
37630
37639
  checkViolations(name, newFormData);
37631
37640
  };
37632
- const isFieldVisible = React125__default.useCallback(
37641
+ const isFieldVisible = React126__default.useCallback(
37633
37642
  (fieldName) => {
37634
37643
  const condition = conditionalFields[fieldName];
37635
37644
  if (!condition) return true;
@@ -37637,7 +37646,7 @@ var Form = ({
37637
37646
  },
37638
37647
  [conditionalFields, evalContext]
37639
37648
  );
37640
- const isSectionVisible = React125__default.useCallback(
37649
+ const isSectionVisible = React126__default.useCallback(
37641
37650
  (section) => {
37642
37651
  if (!section.condition) return true;
37643
37652
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -37669,7 +37678,7 @@ var Form = ({
37669
37678
  eventBus.emit(`UI:${onCancel}`);
37670
37679
  }
37671
37680
  };
37672
- const renderField = React125__default.useCallback(
37681
+ const renderField = React126__default.useCallback(
37673
37682
  (field) => {
37674
37683
  const fieldName = field.name || field.field;
37675
37684
  if (!fieldName) return null;
@@ -37690,7 +37699,7 @@ var Form = ({
37690
37699
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
37691
37700
  );
37692
37701
  const effectiveFields = entityDerivedFields ?? fields;
37693
- const normalizedFields = React125__default.useMemo(() => {
37702
+ const normalizedFields = React126__default.useMemo(() => {
37694
37703
  if (!effectiveFields || effectiveFields.length === 0) return [];
37695
37704
  return effectiveFields.map((field) => {
37696
37705
  if (typeof field === "string") {
@@ -37712,7 +37721,7 @@ var Form = ({
37712
37721
  return field;
37713
37722
  });
37714
37723
  }, [effectiveFields, resolvedEntity]);
37715
- const schemaFields = React125__default.useMemo(() => {
37724
+ const schemaFields = React126__default.useMemo(() => {
37716
37725
  if (normalizedFields.length === 0) return null;
37717
37726
  if (isDebugEnabled()) {
37718
37727
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -37722,7 +37731,7 @@ var Form = ({
37722
37731
  }
37723
37732
  return normalizedFields.map(renderField).filter(Boolean);
37724
37733
  }, [normalizedFields, renderField, entityName, conditionalFields]);
37725
- const sectionElements = React125__default.useMemo(() => {
37734
+ const sectionElements = React126__default.useMemo(() => {
37726
37735
  if (!sections || sections.length === 0) return null;
37727
37736
  return sections.map((section) => {
37728
37737
  if (!isSectionVisible(section)) {
@@ -39160,7 +39169,7 @@ var List2 = ({
39160
39169
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
39161
39170
  return [];
39162
39171
  }, [entity]);
39163
- const getItemActions = React125__default.useCallback(
39172
+ const getItemActions = React126__default.useCallback(
39164
39173
  (item) => {
39165
39174
  if (!itemActions) return [];
39166
39175
  if (typeof itemActions === "function") {
@@ -39595,7 +39604,7 @@ var MediaGallery = ({
39595
39604
  [selectable, selectedItems, selectionEvent, eventBus]
39596
39605
  );
39597
39606
  const entityData = Array.isArray(entity) ? entity : [];
39598
- const items = React125__default.useMemo(() => {
39607
+ const items = React126__default.useMemo(() => {
39599
39608
  if (propItems) return propItems;
39600
39609
  if (entityData.length === 0) return [];
39601
39610
  return entityData.map((record, idx) => ({
@@ -39758,7 +39767,7 @@ var MediaGallery = ({
39758
39767
  MediaGallery.displayName = "MediaGallery";
39759
39768
  init_useEventBus();
39760
39769
  function extractTitle2(children) {
39761
- if (!React125__default.isValidElement(children)) return void 0;
39770
+ if (!React126__default.isValidElement(children)) return void 0;
39762
39771
  const props = children.props;
39763
39772
  if (typeof props.title === "string") {
39764
39773
  return props.title;
@@ -40444,7 +40453,7 @@ var PageHeader = ({
40444
40453
  info: "bg-info/10 text-info"
40445
40454
  };
40446
40455
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
40447
- 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(React125__default.Fragment, { children: [
40456
+ 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: [
40448
40457
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
40449
40458
  crumb.href ? /* @__PURE__ */ jsx(
40450
40459
  "a",
@@ -40603,7 +40612,7 @@ function subscribeToDebugEvents(listener) {
40603
40612
 
40604
40613
  // components/organisms/debug/hooks/useDebugData.ts
40605
40614
  function useDebugData() {
40606
- const [data, setData] = React125.useState(() => ({
40615
+ const [data, setData] = React126.useState(() => ({
40607
40616
  traits: [],
40608
40617
  ticks: [],
40609
40618
  guards: [],
@@ -40617,7 +40626,7 @@ function useDebugData() {
40617
40626
  },
40618
40627
  lastUpdate: Date.now()
40619
40628
  }));
40620
- React125.useEffect(() => {
40629
+ React126.useEffect(() => {
40621
40630
  const updateData = () => {
40622
40631
  setData({
40623
40632
  traits: getAllTraits(),
@@ -40718,12 +40727,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
40718
40727
  return positions;
40719
40728
  }
40720
40729
  function WalkMinimap() {
40721
- const [walkStep, setWalkStep] = React125.useState(null);
40722
- const [traits2, setTraits] = React125.useState([]);
40723
- const [coveredEdges, setCoveredEdges] = React125.useState([]);
40724
- const [completedTraits, setCompletedTraits] = React125.useState(/* @__PURE__ */ new Set());
40725
- const prevTraitRef = React125.useRef(null);
40726
- React125.useEffect(() => {
40730
+ const [walkStep, setWalkStep] = React126.useState(null);
40731
+ const [traits2, setTraits] = React126.useState([]);
40732
+ const [coveredEdges, setCoveredEdges] = React126.useState([]);
40733
+ const [completedTraits, setCompletedTraits] = React126.useState(/* @__PURE__ */ new Set());
40734
+ const prevTraitRef = React126.useRef(null);
40735
+ React126.useEffect(() => {
40727
40736
  const interval = setInterval(() => {
40728
40737
  const w = window;
40729
40738
  const step = w.__orbitalWalkStep;
@@ -41155,15 +41164,15 @@ var TYPE_BADGES = {
41155
41164
  state: { variant: "danger", icon: "\u{1F4CA}" }
41156
41165
  };
41157
41166
  function EventFlowTab({ events: events2 }) {
41158
- const [filter, setFilter] = React125.useState("all");
41159
- const containerRef = React125.useRef(null);
41160
- const [autoScroll, setAutoScroll] = React125.useState(true);
41161
- React125.useEffect(() => {
41167
+ const [filter, setFilter] = React126.useState("all");
41168
+ const containerRef = React126.useRef(null);
41169
+ const [autoScroll, setAutoScroll] = React126.useState(true);
41170
+ React126.useEffect(() => {
41162
41171
  if (autoScroll && containerRef.current) {
41163
41172
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
41164
41173
  }
41165
41174
  }, [events2.length, autoScroll]);
41166
- const filteredEvents = React125.useMemo(() => {
41175
+ const filteredEvents = React126.useMemo(() => {
41167
41176
  if (filter === "all") return events2;
41168
41177
  return events2.filter((e) => e.type === filter);
41169
41178
  }, [events2, filter]);
@@ -41264,7 +41273,7 @@ EventFlowTab.displayName = "EventFlowTab";
41264
41273
  init_Typography();
41265
41274
  init_Stack();
41266
41275
  function GuardsPanel({ guards }) {
41267
- const [filter, setFilter] = React125.useState("all");
41276
+ const [filter, setFilter] = React126.useState("all");
41268
41277
  if (guards.length === 0) {
41269
41278
  return /* @__PURE__ */ jsx(
41270
41279
  EmptyState,
@@ -41277,7 +41286,7 @@ function GuardsPanel({ guards }) {
41277
41286
  }
41278
41287
  const passedCount = guards.filter((g) => g.result).length;
41279
41288
  const failedCount = guards.length - passedCount;
41280
- const filteredGuards = React125.useMemo(() => {
41289
+ const filteredGuards = React126.useMemo(() => {
41281
41290
  if (filter === "all") return guards;
41282
41291
  if (filter === "passed") return guards.filter((g) => g.result);
41283
41292
  return guards.filter((g) => !g.result);
@@ -41426,10 +41435,10 @@ function EffectBadge({ effect }) {
41426
41435
  ] });
41427
41436
  }
41428
41437
  function TransitionTimeline({ transitions }) {
41429
- const containerRef = React125.useRef(null);
41430
- const [autoScroll, setAutoScroll] = React125.useState(true);
41431
- const [expandedId, setExpandedId] = React125.useState(null);
41432
- React125.useEffect(() => {
41438
+ const containerRef = React126.useRef(null);
41439
+ const [autoScroll, setAutoScroll] = React126.useState(true);
41440
+ const [expandedId, setExpandedId] = React126.useState(null);
41441
+ React126.useEffect(() => {
41433
41442
  if (autoScroll && containerRef.current) {
41434
41443
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
41435
41444
  }
@@ -41697,9 +41706,9 @@ function getAllEvents(traits2) {
41697
41706
  }
41698
41707
  function EventDispatcherTab({ traits: traits2, schema }) {
41699
41708
  const eventBus = useEventBus();
41700
- const [log4, setLog] = React125.useState([]);
41701
- const prevStatesRef = React125.useRef(/* @__PURE__ */ new Map());
41702
- React125.useEffect(() => {
41709
+ const [log4, setLog] = React126.useState([]);
41710
+ const prevStatesRef = React126.useRef(/* @__PURE__ */ new Map());
41711
+ React126.useEffect(() => {
41703
41712
  for (const trait of traits2) {
41704
41713
  const prev = prevStatesRef.current.get(trait.id);
41705
41714
  if (prev && prev !== trait.currentState) {
@@ -41852,9 +41861,9 @@ function VerifyModePanel({
41852
41861
  serverCount,
41853
41862
  localCount
41854
41863
  }) {
41855
- const scrollRef = React125.useRef(null);
41856
- const prevCountRef = React125.useRef(0);
41857
- React125.useEffect(() => {
41864
+ const scrollRef = React126.useRef(null);
41865
+ const prevCountRef = React126.useRef(0);
41866
+ React126.useEffect(() => {
41858
41867
  if (transitions.length > prevCountRef.current && scrollRef.current) {
41859
41868
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
41860
41869
  }
@@ -41902,10 +41911,10 @@ function RuntimeDebugger({
41902
41911
  defaultTab,
41903
41912
  schema
41904
41913
  }) {
41905
- const [isCollapsed, setIsCollapsed] = React125.useState(mode === "verify" ? true : defaultCollapsed);
41906
- const [isVisible, setIsVisible] = React125.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
41914
+ const [isCollapsed, setIsCollapsed] = React126.useState(mode === "verify" ? true : defaultCollapsed);
41915
+ const [isVisible, setIsVisible] = React126.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
41907
41916
  const debugData = useDebugData();
41908
- React125.useEffect(() => {
41917
+ React126.useEffect(() => {
41909
41918
  if (mode === "inline") return;
41910
41919
  return onDebugToggle((enabled) => {
41911
41920
  setIsVisible(enabled);
@@ -41914,7 +41923,7 @@ function RuntimeDebugger({
41914
41923
  }
41915
41924
  });
41916
41925
  }, [mode]);
41917
- React125.useEffect(() => {
41926
+ React126.useEffect(() => {
41918
41927
  if (mode === "inline") return;
41919
41928
  const handleKeyDown = (e) => {
41920
41929
  if (e.key === "`" && isVisible) {
@@ -42432,7 +42441,7 @@ function SequenceBar({
42432
42441
  onSlotRemove(index);
42433
42442
  }, [onSlotRemove, playing]);
42434
42443
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
42435
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
42444
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
42436
42445
  i > 0 && /* @__PURE__ */ jsx(
42437
42446
  Typography,
42438
42447
  {
@@ -43701,7 +43710,7 @@ var StatCard = ({
43701
43710
  const labelToUse = propLabel ?? propTitle;
43702
43711
  const eventBus = useEventBus();
43703
43712
  const { t } = useTranslate();
43704
- const handleActionClick = React125__default.useCallback(() => {
43713
+ const handleActionClick = React126__default.useCallback(() => {
43705
43714
  if (action?.event) {
43706
43715
  eventBus.emit(`UI:${action.event}`, {});
43707
43716
  }
@@ -43712,7 +43721,7 @@ var StatCard = ({
43712
43721
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
43713
43722
  const isLoading = externalLoading ?? false;
43714
43723
  const error = externalError;
43715
- const computeMetricValue = React125__default.useCallback(
43724
+ const computeMetricValue = React126__default.useCallback(
43716
43725
  (metric, items) => {
43717
43726
  if (metric.value !== void 0) {
43718
43727
  return metric.value;
@@ -43751,7 +43760,7 @@ var StatCard = ({
43751
43760
  },
43752
43761
  []
43753
43762
  );
43754
- const schemaStats = React125__default.useMemo(() => {
43763
+ const schemaStats = React126__default.useMemo(() => {
43755
43764
  if (!metrics || metrics.length === 0) return null;
43756
43765
  return metrics.map((metric) => ({
43757
43766
  label: metric.label,
@@ -43759,7 +43768,7 @@ var StatCard = ({
43759
43768
  format: metric.format
43760
43769
  }));
43761
43770
  }, [metrics, data, computeMetricValue]);
43762
- const calculatedTrend = React125__default.useMemo(() => {
43771
+ const calculatedTrend = React126__default.useMemo(() => {
43763
43772
  if (manualTrend !== void 0) return manualTrend;
43764
43773
  if (previousValue === void 0 || currentValue === void 0)
43765
43774
  return void 0;
@@ -44694,7 +44703,7 @@ var Timeline = ({
44694
44703
  }) => {
44695
44704
  const { t } = useTranslate();
44696
44705
  const entityData = Array.isArray(entity) ? entity : [];
44697
- const items = React125__default.useMemo(() => {
44706
+ const items = React126__default.useMemo(() => {
44698
44707
  if (propItems) return propItems;
44699
44708
  if (entityData.length === 0) return [];
44700
44709
  return entityData.map((record, idx) => {
@@ -44798,7 +44807,7 @@ Timeline.displayName = "Timeline";
44798
44807
  init_Box();
44799
44808
  init_useEventBus();
44800
44809
  function extractToastProps(children) {
44801
- if (!React125__default.isValidElement(children)) {
44810
+ if (!React126__default.isValidElement(children)) {
44802
44811
  if (typeof children === "string") {
44803
44812
  return { message: children };
44804
44813
  }
@@ -44829,7 +44838,7 @@ var ToastSlot = ({
44829
44838
  eventBus.emit("UI:CLOSE");
44830
44839
  };
44831
44840
  if (!isVisible) return null;
44832
- const isCustomContent = React125__default.isValidElement(children) && !message;
44841
+ const isCustomContent = React126__default.isValidElement(children) && !message;
44833
44842
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
44834
44843
  Toast,
44835
44844
  {
@@ -45083,7 +45092,7 @@ var WizardContainer = ({
45083
45092
  const isCompleted = index < currentStep;
45084
45093
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
45085
45094
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
45086
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
45095
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
45087
45096
  /* @__PURE__ */ jsx(
45088
45097
  Button,
45089
45098
  {
@@ -45454,12 +45463,12 @@ WorldMapTemplate.displayName = "WorldMapTemplate";
45454
45463
 
45455
45464
  // components/organisms/component-registry.generated.ts
45456
45465
  function lazyThree(name, loader) {
45457
- const Lazy = React125__default.lazy(() => loader().then((m) => ({ default: m[name] })));
45466
+ const Lazy = React126__default.lazy(() => loader().then((m) => ({ default: m[name] })));
45458
45467
  function ThreeWrapper(props) {
45459
- return React125__default.createElement(
45460
- React125__default.Suspense,
45468
+ return React126__default.createElement(
45469
+ React126__default.Suspense,
45461
45470
  { fallback: null },
45462
- React125__default.createElement(Lazy, props)
45471
+ React126__default.createElement(Lazy, props)
45463
45472
  );
45464
45473
  }
45465
45474
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -45747,7 +45756,7 @@ function SuspenseConfigProvider({
45747
45756
  config,
45748
45757
  children
45749
45758
  }) {
45750
- return React125__default.createElement(
45759
+ return React126__default.createElement(
45751
45760
  SuspenseConfigContext.Provider,
45752
45761
  { value: config },
45753
45762
  children
@@ -47494,7 +47503,7 @@ function SchemaRunner({ schema, serverUrl, mockData, pageName, onNavigate, onLoc
47494
47503
  const entityStore = useEntityStore();
47495
47504
  const seededRef = useRef("");
47496
47505
  const mockKey = mockData ? Object.keys(mockData).sort().join(",") : "";
47497
- React125__default.useLayoutEffect(() => {
47506
+ React126__default.useLayoutEffect(() => {
47498
47507
  if (!serverUrl && mockData && seededRef.current !== mockKey) {
47499
47508
  seededRef.current = mockKey;
47500
47509
  for (const [entityType, records] of Object.entries(mockData)) {
@@ -48001,7 +48010,7 @@ var OrbPreviewNodeInner = (props) => {
48001
48010
  }
48002
48011
  );
48003
48012
  };
48004
- var OrbPreviewNode = React125__default.memo(OrbPreviewNodeInner);
48013
+ var OrbPreviewNode = React126__default.memo(OrbPreviewNodeInner);
48005
48014
  OrbPreviewNode.displayName = "OrbPreviewNode";
48006
48015
  var EventFlowEdgeInner = (props) => {
48007
48016
  const {
@@ -48078,7 +48087,7 @@ var EventFlowEdgeInner = (props) => {
48078
48087
  ) })
48079
48088
  ] });
48080
48089
  };
48081
- var EventFlowEdge = React125__default.memo(EventFlowEdgeInner);
48090
+ var EventFlowEdge = React126__default.memo(EventFlowEdgeInner);
48082
48091
  EventFlowEdge.displayName = "EventFlowEdge";
48083
48092
 
48084
48093
  // components/molecules/avl/BehaviorComposeNode.tsx
@@ -48216,7 +48225,7 @@ var BehaviorComposeNodeInner = (props) => {
48216
48225
  }
48217
48226
  );
48218
48227
  };
48219
- var BehaviorComposeNode = React125__default.memo(BehaviorComposeNodeInner);
48228
+ var BehaviorComposeNode = React126__default.memo(BehaviorComposeNodeInner);
48220
48229
  BehaviorComposeNode.displayName = "BehaviorComposeNode";
48221
48230
 
48222
48231
  // components/molecules/avl/avl-behavior-compose-converter.ts
@@ -49150,7 +49159,7 @@ var ZoomBreadcrumb = ({
49150
49159
  if (eventName && band === "detail") {
49151
49160
  segments.push({ icon: "\u26A1", label: eventName });
49152
49161
  }
49153
- 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(React125__default.Fragment, { children: [
49162
+ 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: [
49154
49163
  i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
49155
49164
  /* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
49156
49165
  /* @__PURE__ */ jsx("span", { children: seg.label })
@@ -49607,7 +49616,7 @@ var EventWireOverlay = ({
49607
49616
  containerW,
49608
49617
  containerH
49609
49618
  }) => {
49610
- const ids = React125__default.useMemo(() => {
49619
+ const ids = React126__default.useMemo(() => {
49611
49620
  avlOczWireId += 1;
49612
49621
  return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
49613
49622
  }, []);
@@ -49925,7 +49934,7 @@ var AvlOrbitalsCosmicZoom = ({
49925
49934
  borderRadius: 6,
49926
49935
  border: `1px solid ${color}`
49927
49936
  },
49928
- children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
49937
+ children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
49929
49938
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
49930
49939
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
49931
49940
  Box,