@almadar/ui 5.141.0 → 5.142.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,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import * as React93 from 'react';
3
- import React93__default, { createContext, useState, useMemo, useRef, useEffect, useContext, useCallback, Suspense, useLayoutEffect, Profiler, useReducer, useSyncExternalStore, lazy, useId } from 'react';
2
+ import * as React94 from 'react';
3
+ import React94__default, { createContext, useState, useMemo, useRef, useEffect, useContext, useCallback, Suspense, useLayoutEffect, Profiler, useReducer, useSyncExternalStore, lazy, useId } from 'react';
4
4
  import { getAllPages, matchPathAmong, OrbitalProvider, EventBusContext, useTraitScopeChain, ServerBridgeProvider, VerificationProvider, EntitySchemaProvider, OrbitalThemeProvider, useServerBridge, EntityBindingContext, useEntitySchema, useEntitySchemaOptional, useEntityBindingSnapshot, TraitScopeProvider, useTraitScope, useCurrentPagePath, useGameAudioContextOptional } from '@almadar/ui/providers';
5
5
  import { createLogger, setNamespaceLevel, isLogLevelEnabled } from '@almadar/logger';
6
6
  import ELK from 'elkjs/lib/elk.bundled.js';
@@ -3301,7 +3301,7 @@ var init_Typography = __esm({
3301
3301
  if (format !== void 0 && format !== "none" && (typeof body === "string" || typeof body === "number" || body instanceof Date)) {
3302
3302
  body = formatValue(body, format);
3303
3303
  }
3304
- return React93__default.createElement(
3304
+ return React94__default.createElement(
3305
3305
  Component,
3306
3306
  {
3307
3307
  id,
@@ -3647,7 +3647,7 @@ var init_Box = __esm({
3647
3647
  fixed: "fixed",
3648
3648
  sticky: "sticky"
3649
3649
  };
3650
- Box = React93__default.forwardRef(
3650
+ Box = React94__default.forwardRef(
3651
3651
  ({
3652
3652
  padding,
3653
3653
  paddingX,
@@ -3712,7 +3712,7 @@ var init_Box = __esm({
3712
3712
  onPointerDown?.(e);
3713
3713
  }, [hoverEvent, tapReveal, triggerProps, onPointerDown]);
3714
3714
  const isClickable = action || onClick;
3715
- return React93__default.createElement(
3715
+ return React94__default.createElement(
3716
3716
  Component,
3717
3717
  {
3718
3718
  ref,
@@ -3808,7 +3808,7 @@ var init_Stack = __esm({
3808
3808
  };
3809
3809
  const isHorizontal = direction === "horizontal";
3810
3810
  const directionClass = responsive && isHorizontal ? reverse ? "flex-col-reverse md:flex-row-reverse" : "flex-col md:flex-row" : isHorizontal ? reverse ? "flex-row-reverse" : "flex-row" : reverse ? "flex-col-reverse" : "flex-col";
3811
- return React93__default.createElement(
3811
+ return React94__default.createElement(
3812
3812
  Component,
3813
3813
  {
3814
3814
  className: cn(
@@ -4300,7 +4300,7 @@ var init_MiniStateMachine = __esm({
4300
4300
  const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
4301
4301
  const tc = transitionCounts[s.name] ?? 0;
4302
4302
  const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
4303
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
4303
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
4304
4304
  /* @__PURE__ */ jsx(
4305
4305
  AvlState,
4306
4306
  {
@@ -4583,7 +4583,7 @@ function resolveMarkerExpression(expression, entity, config, state) {
4583
4583
  function isPlainObject(value) {
4584
4584
  if (value === null || value === void 0 || typeof value !== "object") return false;
4585
4585
  if (Array.isArray(value)) return false;
4586
- if (React93__default.isValidElement(value)) return false;
4586
+ if (React94__default.isValidElement(value)) return false;
4587
4587
  if (value instanceof Date) return false;
4588
4588
  if (typeof value === "function") return false;
4589
4589
  return true;
@@ -4820,7 +4820,7 @@ var init_Icon = __esm({
4820
4820
  const effectiveName = typeof icon === "string" && icon !== "" ? icon : name;
4821
4821
  const effectiveStrokeWidth = strokeWidth != null && strokeWidth > 0 ? strokeWidth : void 0;
4822
4822
  const family = useIconFamily();
4823
- const RenderedComponent = React93__default.useMemo(() => {
4823
+ const RenderedComponent = React94__default.useMemo(() => {
4824
4824
  if (directIcon) return null;
4825
4825
  return effectiveName ? resolveIconForFamily(effectiveName) : null;
4826
4826
  }, [directIcon, effectiveName, family]);
@@ -4944,7 +4944,7 @@ var init_atlasSlice = __esm({
4944
4944
  }
4945
4945
  });
4946
4946
  function useAtlasSliceDataUrl(asset) {
4947
- const [, bump] = React93.useReducer((x) => x + 1, 0);
4947
+ const [, bump] = React94.useReducer((x) => x + 1, 0);
4948
4948
  if (!isAtlasAsset(asset)) return void 0;
4949
4949
  const key = `${asset.atlas}#${asset.sprite}`;
4950
4950
  const cached = sliceDataUrlCache.get(key);
@@ -5007,13 +5007,13 @@ function AtlasImage({
5007
5007
  style,
5008
5008
  "aria-hidden": ariaHidden
5009
5009
  }) {
5010
- const [, bump] = React93.useReducer((x) => x + 1, 0);
5011
- const canvasRef = React93.useRef(null);
5010
+ const [, bump] = React94.useReducer((x) => x + 1, 0);
5011
+ const canvasRef = React94.useRef(null);
5012
5012
  const sliced = isAtlasAsset(asset);
5013
5013
  const atlas = sliced ? getAtlas(asset.atlas, bump) : void 0;
5014
5014
  const img = sliced && asset?.url ? getSheetImage(asset.url, bump) : null;
5015
5015
  const rect = sliced && atlas ? subRectFor(atlas, asset.sprite) : null;
5016
- React93.useEffect(() => {
5016
+ React94.useEffect(() => {
5017
5017
  const canvas = canvasRef.current;
5018
5018
  if (!canvas || !img || !rect) return;
5019
5019
  canvas.width = rect.sw;
@@ -5089,7 +5089,7 @@ function resolveIconProp(value, sizeClass) {
5089
5089
  const IconComp = value;
5090
5090
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
5091
5091
  }
5092
- if (React93__default.isValidElement(value)) {
5092
+ if (React94__default.isValidElement(value)) {
5093
5093
  return value;
5094
5094
  }
5095
5095
  if (typeof value === "object" && value !== null && isIconLike(value)) {
@@ -5166,7 +5166,7 @@ var init_Button = __esm({
5166
5166
  md: "h-icon-default w-icon-default",
5167
5167
  lg: "h-icon-default w-icon-default"
5168
5168
  };
5169
- Button = React93__default.forwardRef(
5169
+ Button = React94__default.forwardRef(
5170
5170
  ({
5171
5171
  className,
5172
5172
  variant = "primary",
@@ -5236,7 +5236,7 @@ var Dialog;
5236
5236
  var init_Dialog = __esm({
5237
5237
  "components/core/atoms/Dialog.tsx"() {
5238
5238
  init_cn();
5239
- Dialog = React93__default.forwardRef(
5239
+ Dialog = React94__default.forwardRef(
5240
5240
  ({
5241
5241
  role = "dialog",
5242
5242
  "aria-modal": ariaModal = true,
@@ -5799,7 +5799,7 @@ var init_Badge = __esm({
5799
5799
  md: "px-2.5 py-1 text-sm",
5800
5800
  lg: "px-3 py-1.5 text-base"
5801
5801
  };
5802
- Badge = React93__default.forwardRef(
5802
+ Badge = React94__default.forwardRef(
5803
5803
  ({ className, variant = "default", size = "sm", amount, label, icon, iconAsset, children, onRemove, removeLabel, ...props }, ref) => {
5804
5804
  const iconSizes3 = {
5805
5805
  sm: "h-icon-default w-icon-default",
@@ -6149,7 +6149,7 @@ var init_SvgFlow = __esm({
6149
6149
  width = 100,
6150
6150
  height = 100
6151
6151
  }) => {
6152
- const markerId = React93__default.useMemo(() => {
6152
+ const markerId = React94__default.useMemo(() => {
6153
6153
  flowIdCounter += 1;
6154
6154
  return `almadar-flow-arrow-${flowIdCounter}`;
6155
6155
  }, []);
@@ -6742,7 +6742,7 @@ var init_SvgRing = __esm({
6742
6742
  width = 100,
6743
6743
  height = 100
6744
6744
  }) => {
6745
- const gradientId = React93__default.useMemo(() => {
6745
+ const gradientId = React94__default.useMemo(() => {
6746
6746
  ringIdCounter += 1;
6747
6747
  return `almadar-ring-glow-${ringIdCounter}`;
6748
6748
  }, []);
@@ -6923,7 +6923,7 @@ var init_Input = __esm({
6923
6923
  init_cn();
6924
6924
  init_Icon();
6925
6925
  init_useEventBus();
6926
- Input = React93__default.forwardRef(
6926
+ Input = React94__default.forwardRef(
6927
6927
  ({
6928
6928
  className,
6929
6929
  inputType,
@@ -6947,9 +6947,9 @@ var init_Input = __esm({
6947
6947
  const eventBus = useEventBus();
6948
6948
  const type = inputType || htmlType || "text";
6949
6949
  const isDeclarative = typeof onChange === "string";
6950
- const [localValue, setLocalValue] = React93__default.useState(value);
6951
- const pendingEchoRef = React93__default.useRef(/* @__PURE__ */ new Set());
6952
- React93__default.useEffect(() => {
6950
+ const [localValue, setLocalValue] = React94__default.useState(value);
6951
+ const pendingEchoRef = React94__default.useRef(/* @__PURE__ */ new Set());
6952
+ React94__default.useEffect(() => {
6953
6953
  if (!isDeclarative) return;
6954
6954
  const incoming = value == null ? "" : String(value);
6955
6955
  if (pendingEchoRef.current.has(incoming)) {
@@ -7109,7 +7109,7 @@ var Label;
7109
7109
  var init_Label = __esm({
7110
7110
  "components/core/atoms/Label.tsx"() {
7111
7111
  init_cn();
7112
- Label = React93__default.forwardRef(
7112
+ Label = React94__default.forwardRef(
7113
7113
  ({ className, required, children, ...props }, ref) => {
7114
7114
  return /* @__PURE__ */ jsxs(
7115
7115
  "label",
@@ -7136,7 +7136,7 @@ var init_Textarea = __esm({
7136
7136
  "components/core/atoms/Textarea.tsx"() {
7137
7137
  init_cn();
7138
7138
  init_useEventBus();
7139
- Textarea = React93__default.forwardRef(
7139
+ Textarea = React94__default.forwardRef(
7140
7140
  ({ className, error, onChange, ...props }, ref) => {
7141
7141
  const eventBus = useEventBus();
7142
7142
  const handleChange = (e) => {
@@ -7375,7 +7375,7 @@ var init_Select = __esm({
7375
7375
  init_cn();
7376
7376
  init_Icon();
7377
7377
  init_useEventBus();
7378
- Select = React93__default.forwardRef(
7378
+ Select = React94__default.forwardRef(
7379
7379
  (props, _ref) => {
7380
7380
  const { multiple, searchable, clearable } = props;
7381
7381
  if (multiple || searchable || clearable) {
@@ -7392,7 +7392,7 @@ var init_Checkbox = __esm({
7392
7392
  "components/core/atoms/Checkbox.tsx"() {
7393
7393
  init_cn();
7394
7394
  init_useEventBus();
7395
- Checkbox = React93__default.forwardRef(
7395
+ Checkbox = React94__default.forwardRef(
7396
7396
  ({ className, label, id, onChange, ...props }, ref) => {
7397
7397
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
7398
7398
  const eventBus = useEventBus();
@@ -7446,7 +7446,7 @@ var init_Spinner = __esm({
7446
7446
  md: "h-6 w-6",
7447
7447
  lg: "h-8 w-8"
7448
7448
  };
7449
- Spinner = React93__default.forwardRef(
7449
+ Spinner = React94__default.forwardRef(
7450
7450
  ({ className, size = "md", overlay, ...props }, ref) => {
7451
7451
  if (overlay) {
7452
7452
  return /* @__PURE__ */ jsx(
@@ -7536,7 +7536,7 @@ var init_Card = __esm({
7536
7536
  chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
7537
7537
  "tile-image-first": "p-0 overflow-hidden"
7538
7538
  };
7539
- Card = React93__default.forwardRef(
7539
+ Card = React94__default.forwardRef(
7540
7540
  ({
7541
7541
  className,
7542
7542
  variant = "bordered",
@@ -7585,9 +7585,9 @@ var init_Card = __esm({
7585
7585
  }
7586
7586
  );
7587
7587
  Card.displayName = "Card";
7588
- CardHeader = React93__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
7588
+ CardHeader = React94__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
7589
7589
  CardHeader.displayName = "CardHeader";
7590
- CardTitle = React93__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7590
+ CardTitle = React94__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7591
7591
  "h3",
7592
7592
  {
7593
7593
  ref,
@@ -7600,11 +7600,11 @@ var init_Card = __esm({
7600
7600
  }
7601
7601
  ));
7602
7602
  CardTitle.displayName = "CardTitle";
7603
- CardContent = React93__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
7603
+ CardContent = React94__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
7604
7604
  CardContent.displayName = "CardContent";
7605
7605
  CardBody = CardContent;
7606
7606
  CardBody.displayName = "CardBody";
7607
- CardFooter = React93__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7607
+ CardFooter = React94__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7608
7608
  "div",
7609
7609
  {
7610
7610
  ref,
@@ -7691,7 +7691,7 @@ var init_FilterPill = __esm({
7691
7691
  md: "w-3.5 h-3.5",
7692
7692
  lg: "w-4 h-4"
7693
7693
  };
7694
- FilterPill = React93__default.forwardRef(
7694
+ FilterPill = React94__default.forwardRef(
7695
7695
  ({
7696
7696
  className,
7697
7697
  variant = "default",
@@ -7820,8 +7820,8 @@ var init_Avatar = __esm({
7820
7820
  actionPayload
7821
7821
  }) => {
7822
7822
  const eventBus = useEventBus();
7823
- const [imgFailed, setImgFailed] = React93__default.useState(false);
7824
- React93__default.useEffect(() => {
7823
+ const [imgFailed, setImgFailed] = React94__default.useState(false);
7824
+ React94__default.useEffect(() => {
7825
7825
  setImgFailed(false);
7826
7826
  }, [src]);
7827
7827
  const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
@@ -7934,7 +7934,7 @@ var init_Center = __esm({
7934
7934
  as: Component = "div"
7935
7935
  }) => {
7936
7936
  const mergedStyle = minHeight ? { minHeight, ...style } : style;
7937
- return React93__default.createElement(Component, {
7937
+ return React94__default.createElement(Component, {
7938
7938
  className: cn(
7939
7939
  inline ? "inline-flex" : "flex",
7940
7940
  horizontal && "justify-center",
@@ -8202,7 +8202,7 @@ var init_Radio = __esm({
8202
8202
  md: "w-2.5 h-2.5",
8203
8203
  lg: "w-3 h-3"
8204
8204
  };
8205
- Radio = React93__default.forwardRef(
8205
+ Radio = React94__default.forwardRef(
8206
8206
  ({
8207
8207
  label,
8208
8208
  helperText,
@@ -8219,12 +8219,12 @@ var init_Radio = __esm({
8219
8219
  onChange,
8220
8220
  ...props
8221
8221
  }, ref) => {
8222
- const reactId = React93__default.useId();
8222
+ const reactId = React94__default.useId();
8223
8223
  const baseId = id || `radio-${reactId}`;
8224
8224
  const hasError = !!error;
8225
8225
  const eventBus = useEventBus();
8226
- const [selected, setSelected] = React93__default.useState(value);
8227
- React93__default.useEffect(() => {
8226
+ const [selected, setSelected] = React94__default.useState(value);
8227
+ React94__default.useEffect(() => {
8228
8228
  if (value !== void 0) setSelected(value);
8229
8229
  }, [value]);
8230
8230
  const pick = (next, e) => {
@@ -8406,7 +8406,7 @@ var init_Switch = __esm({
8406
8406
  "components/core/atoms/Switch.tsx"() {
8407
8407
  "use client";
8408
8408
  init_cn();
8409
- Switch = React93.forwardRef(
8409
+ Switch = React94.forwardRef(
8410
8410
  ({
8411
8411
  checked,
8412
8412
  defaultChecked = false,
@@ -8417,10 +8417,10 @@ var init_Switch = __esm({
8417
8417
  name,
8418
8418
  className
8419
8419
  }, ref) => {
8420
- const [isChecked, setIsChecked] = React93.useState(
8420
+ const [isChecked, setIsChecked] = React94.useState(
8421
8421
  checked !== void 0 ? checked : defaultChecked
8422
8422
  );
8423
- React93.useEffect(() => {
8423
+ React94.useEffect(() => {
8424
8424
  if (checked !== void 0) {
8425
8425
  setIsChecked(checked);
8426
8426
  }
@@ -8698,7 +8698,7 @@ var Aside;
8698
8698
  var init_Aside = __esm({
8699
8699
  "components/core/atoms/Aside.tsx"() {
8700
8700
  init_cn();
8701
- Aside = React93__default.forwardRef(
8701
+ Aside = React94__default.forwardRef(
8702
8702
  ({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
8703
8703
  );
8704
8704
  Aside.displayName = "Aside";
@@ -8777,9 +8777,9 @@ var init_LawReferenceTooltip = __esm({
8777
8777
  className
8778
8778
  }) => {
8779
8779
  const { t } = useTranslate();
8780
- const [isVisible, setIsVisible] = React93__default.useState(false);
8781
- const timeoutRef = React93__default.useRef(null);
8782
- const triggerRef = React93__default.useRef(null);
8780
+ const [isVisible, setIsVisible] = React94__default.useState(false);
8781
+ const timeoutRef = React94__default.useRef(null);
8782
+ const triggerRef = React94__default.useRef(null);
8783
8783
  const handleMouseEnter = () => {
8784
8784
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
8785
8785
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -8790,7 +8790,7 @@ var init_LawReferenceTooltip = __esm({
8790
8790
  };
8791
8791
  const { revealed, triggerProps } = useTapReveal({ refs: [triggerRef] });
8792
8792
  const open = isVisible || revealed;
8793
- React93__default.useEffect(() => {
8793
+ React94__default.useEffect(() => {
8794
8794
  return () => {
8795
8795
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
8796
8796
  };
@@ -9000,7 +9000,7 @@ var init_StatusDot = __esm({
9000
9000
  md: "w-2.5 h-2.5",
9001
9001
  lg: "w-3 h-3"
9002
9002
  };
9003
- StatusDot = React93__default.forwardRef(
9003
+ StatusDot = React94__default.forwardRef(
9004
9004
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
9005
9005
  return /* @__PURE__ */ jsx(
9006
9006
  "span",
@@ -9054,7 +9054,7 @@ var init_TrendIndicator = __esm({
9054
9054
  down: "trending-down",
9055
9055
  flat: "arrow-right"
9056
9056
  };
9057
- TrendIndicator = React93__default.forwardRef(
9057
+ TrendIndicator = React94__default.forwardRef(
9058
9058
  ({
9059
9059
  className,
9060
9060
  value,
@@ -9123,7 +9123,7 @@ var init_RangeSlider = __esm({
9123
9123
  md: "w-4 h-4",
9124
9124
  lg: "w-5 h-5"
9125
9125
  };
9126
- RangeSlider = React93__default.forwardRef(
9126
+ RangeSlider = React94__default.forwardRef(
9127
9127
  ({
9128
9128
  className,
9129
9129
  min = 0,
@@ -9734,7 +9734,7 @@ var init_ContentSection = __esm({
9734
9734
  md: "py-16",
9735
9735
  lg: "py-24"
9736
9736
  };
9737
- ContentSection = React93__default.forwardRef(
9737
+ ContentSection = React94__default.forwardRef(
9738
9738
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
9739
9739
  return /* @__PURE__ */ jsx(
9740
9740
  Box,
@@ -10268,7 +10268,7 @@ var init_AnimatedReveal = __esm({
10268
10268
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
10269
10269
  "none": {}
10270
10270
  };
10271
- AnimatedReveal = React93__default.forwardRef(
10271
+ AnimatedReveal = React94__default.forwardRef(
10272
10272
  ({
10273
10273
  trigger = "scroll",
10274
10274
  animation = "fade-up",
@@ -10428,7 +10428,7 @@ var init_AnimatedGraphic = __esm({
10428
10428
  "components/marketing/atoms/AnimatedGraphic.tsx"() {
10429
10429
  "use client";
10430
10430
  init_cn();
10431
- AnimatedGraphic = React93__default.forwardRef(
10431
+ AnimatedGraphic = React94__default.forwardRef(
10432
10432
  ({
10433
10433
  src,
10434
10434
  svgContent,
@@ -10451,7 +10451,7 @@ var init_AnimatedGraphic = __esm({
10451
10451
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
10452
10452
  const resolvedSvg = svgContent ?? fetchedSvg;
10453
10453
  const prevAnimateRef = useRef(animate);
10454
- const setRef = React93__default.useCallback(
10454
+ const setRef = React94__default.useCallback(
10455
10455
  (node) => {
10456
10456
  containerRef.current = node;
10457
10457
  if (typeof ref === "function") ref(node);
@@ -11178,9 +11178,9 @@ function ControlButton({
11178
11178
  className
11179
11179
  }) {
11180
11180
  const eventBus = useEventBus();
11181
- const [isPressed, setIsPressed] = React93.useState(false);
11181
+ const [isPressed, setIsPressed] = React94.useState(false);
11182
11182
  const actualPressed = pressed ?? isPressed;
11183
- const handlePointerDown = React93.useCallback(
11183
+ const handlePointerDown = React94.useCallback(
11184
11184
  (e) => {
11185
11185
  e.preventDefault();
11186
11186
  if (disabled) return;
@@ -11190,7 +11190,7 @@ function ControlButton({
11190
11190
  },
11191
11191
  [disabled, pressEvent, eventBus, onPress]
11192
11192
  );
11193
- const handlePointerUp = React93.useCallback(
11193
+ const handlePointerUp = React94.useCallback(
11194
11194
  (e) => {
11195
11195
  e.preventDefault();
11196
11196
  if (disabled) return;
@@ -11200,7 +11200,7 @@ function ControlButton({
11200
11200
  },
11201
11201
  [disabled, releaseEvent, eventBus, onRelease]
11202
11202
  );
11203
- const handlePointerLeave = React93.useCallback(
11203
+ const handlePointerLeave = React94.useCallback(
11204
11204
  (e) => {
11205
11205
  if (isPressed) {
11206
11206
  setIsPressed(false);
@@ -11458,8 +11458,8 @@ function ControlGrid({
11458
11458
  className
11459
11459
  }) {
11460
11460
  const eventBus = useEventBus();
11461
- const [active, setActive] = React93.useState(/* @__PURE__ */ new Set());
11462
- const handlePress = React93.useCallback(
11461
+ const [active, setActive] = React94.useState(/* @__PURE__ */ new Set());
11462
+ const handlePress = React94.useCallback(
11463
11463
  (id) => {
11464
11464
  setActive((prev) => new Set(prev).add(id));
11465
11465
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -11473,7 +11473,7 @@ function ControlGrid({
11473
11473
  },
11474
11474
  [kind, actionEvent, directionEvent, directionEvents, eventBus, onAction, onDirection]
11475
11475
  );
11476
- const handleRelease = React93.useCallback(
11476
+ const handleRelease = React94.useCallback(
11477
11477
  (id) => {
11478
11478
  setActive((prev) => {
11479
11479
  const next = new Set(prev);
@@ -11831,7 +11831,7 @@ function GameMenu({
11831
11831
  }) {
11832
11832
  const resolvedOptions = (options?.length ? options : void 0) ?? (menuItems?.length ? menuItems : void 0) ?? DEFAULT_MENU_OPTIONS;
11833
11833
  const eventBus = useEventBus();
11834
- const handleOptionClick = React93.useCallback(
11834
+ const handleOptionClick = React94.useCallback(
11835
11835
  (option) => {
11836
11836
  if (option.event) {
11837
11837
  eventBus.emit(`UI:${option.event}`, { option });
@@ -12067,7 +12067,7 @@ function StateGraph({
12067
12067
  }) {
12068
12068
  const eventBus = useEventBus();
12069
12069
  const nodes = states ?? [];
12070
- const positions = React93.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
12070
+ const positions = React94.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
12071
12071
  return /* @__PURE__ */ jsxs(
12072
12072
  Box,
12073
12073
  {
@@ -12138,8 +12138,8 @@ function MiniMap({
12138
12138
  tileAssets,
12139
12139
  unitAssets
12140
12140
  }) {
12141
- const canvasRef = React93.useRef(null);
12142
- const imgCacheRef = React93.useRef(/* @__PURE__ */ new Map());
12141
+ const canvasRef = React94.useRef(null);
12142
+ const imgCacheRef = React94.useRef(/* @__PURE__ */ new Map());
12143
12143
  function loadImg(url) {
12144
12144
  const cached = imgCacheRef.current.get(url);
12145
12145
  if (cached) return cached.complete ? cached : null;
@@ -12155,7 +12155,7 @@ function MiniMap({
12155
12155
  imgCacheRef.current.set(url, img);
12156
12156
  return null;
12157
12157
  }
12158
- React93.useEffect(() => {
12158
+ React94.useEffect(() => {
12159
12159
  const canvas = canvasRef.current;
12160
12160
  if (!canvas) return;
12161
12161
  const ctx = canvas.getContext("2d");
@@ -13336,7 +13336,7 @@ function Canvas2D({
13336
13336
  const registerChildDrawable = useCallback((node) => {
13337
13337
  childDrawablesRef.current.push(node);
13338
13338
  }, []);
13339
- const hasJsxChildren = React93.Children.count(children) > 0;
13339
+ const hasJsxChildren = React94.Children.count(children) > 0;
13340
13340
  function isDrawableLayer(node) {
13341
13341
  return node.type === "draw-sprite-layer" || node.type === "draw-shape-layer" || node.type === "draw-text-layer";
13342
13342
  }
@@ -13865,6 +13865,8 @@ function Canvas({
13865
13865
  showCoordinates,
13866
13866
  showTileInfo,
13867
13867
  fogOfWar,
13868
+ lighting,
13869
+ post,
13868
13870
  tileClickEvent,
13869
13871
  unitClickEvent,
13870
13872
  tileHoverEvent,
@@ -13876,10 +13878,25 @@ function Canvas({
13876
13878
  }) {
13877
13879
  canvasLog.debug("Canvas render", { mode, drawablesCount: drawables?.length, projection, camera: camera ? JSON.stringify(camera) : void 0 });
13878
13880
  const zoom = camera?.zoom;
13881
+ const childDrawablesRef = useRef([]);
13882
+ if (mode === "3d") childDrawablesRef.current = [];
13883
+ const registerChildDrawable = useCallback((node) => {
13884
+ childDrawablesRef.current.push(node);
13885
+ }, []);
13886
+ const [childDrawables, setChildDrawables] = useState([]);
13887
+ useEffect(() => {
13888
+ if (mode !== "3d") return;
13889
+ const next = childDrawablesRef.current;
13890
+ canvasLog.debug("children:adopt", { registered: next.length, adopted: childDrawables.length });
13891
+ if (next.length === 0 && React94.Children.count(children) > 0) return;
13892
+ setChildDrawables(
13893
+ (prev) => prev.length === next.length && JSON.stringify(prev) === JSON.stringify(next) ? prev : [...next]
13894
+ );
13895
+ });
13879
13896
  if (mode === "3d") {
13880
13897
  const props3d = {
13881
13898
  className,
13882
- drawables,
13899
+ drawables: [...drawables ?? [], ...childDrawables],
13883
13900
  isLoading,
13884
13901
  cameraMode: to3DCameraMode(camera?.mode),
13885
13902
  ...zoom !== void 0 ? { scale: zoom } : {},
@@ -13895,6 +13912,8 @@ function Canvas({
13895
13912
  showCoordinates,
13896
13913
  showTileInfo,
13897
13914
  fogOfWar,
13915
+ lighting,
13916
+ post,
13898
13917
  tileClickEvent,
13899
13918
  unitClickEvent,
13900
13919
  tileHoverEvent,
@@ -13903,7 +13922,10 @@ function Canvas({
13903
13922
  keyMap,
13904
13923
  keyUpMap
13905
13924
  };
13906
- return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Canvas3DHost, { ...props3d }) });
13925
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
13926
+ /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Canvas3DHost, { ...props3d }) }),
13927
+ React94.Children.count(children) > 0 && /* @__PURE__ */ jsx(DrawableRegistryContext.Provider, { value: registerChildDrawable, children: /* @__PURE__ */ jsx("div", { "aria-hidden": "true", style: { position: "absolute", width: 0, height: 0, overflow: "hidden" }, children }) })
13928
+ ] });
13907
13929
  }
13908
13930
  return /* @__PURE__ */ jsx(
13909
13931
  Canvas2D,
@@ -13935,6 +13957,7 @@ var Canvas3DHost, canvasLog;
13935
13957
  var init_Canvas = __esm({
13936
13958
  "components/game/molecules/Canvas.tsx"() {
13937
13959
  "use client";
13960
+ init_registry();
13938
13961
  init_Canvas2D();
13939
13962
  Canvas3DHost = lazy(
13940
13963
  () => import('@almadar/ui/components/molecules/game/three').then((m) => ({ default: m.Canvas3DHost }))
@@ -14059,7 +14082,7 @@ function LinearView({
14059
14082
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
14060
14083
  const isDone = i < currentIdx;
14061
14084
  const isCurrent = i === currentIdx;
14062
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
14085
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
14063
14086
  i > 0 && /* @__PURE__ */ jsx(
14064
14087
  Typography,
14065
14088
  {
@@ -14594,7 +14617,7 @@ function SequenceBar({
14594
14617
  else onSlotRemove?.(index);
14595
14618
  }, [emit, slotRemoveEvent, onSlotRemove, playing]);
14596
14619
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
14597
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
14620
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
14598
14621
  i > 0 && /* @__PURE__ */ jsx(
14599
14622
  Typography,
14600
14623
  {
@@ -15243,7 +15266,7 @@ var init_ErrorBoundary = __esm({
15243
15266
  }
15244
15267
  );
15245
15268
  };
15246
- ErrorBoundary = class extends React93__default.Component {
15269
+ ErrorBoundary = class extends React94__default.Component {
15247
15270
  constructor(props) {
15248
15271
  super(props);
15249
15272
  __publicField(this, "reset", () => {
@@ -15512,7 +15535,7 @@ var init_Container = __esm({
15512
15535
  as: Component = "div"
15513
15536
  }) => {
15514
15537
  const resolvedSize = maxWidth ?? size ?? "lg";
15515
- return React93__default.createElement(
15538
+ return React94__default.createElement(
15516
15539
  Component,
15517
15540
  {
15518
15541
  className: cn(
@@ -17650,7 +17673,7 @@ var init_CodeBlock = __esm({
17650
17673
  DIFF_STYLE_FALLBACK = { bg: "", prefix: " ", text: "text-foreground" };
17651
17674
  LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
17652
17675
  HIDDEN_LINE_NUMBERS = { display: "none" };
17653
- CodeBlock = React93__default.memo(
17676
+ CodeBlock = React94__default.memo(
17654
17677
  ({
17655
17678
  code: rawCode,
17656
17679
  language = "text",
@@ -18238,7 +18261,7 @@ var init_MarkdownContent = __esm({
18238
18261
  init_Box();
18239
18262
  init_CodeBlock();
18240
18263
  init_cn();
18241
- MarkdownContent = React93__default.memo(
18264
+ MarkdownContent = React94__default.memo(
18242
18265
  ({ content, direction = "ltr", className }) => {
18243
18266
  const { t: _t } = useTranslate();
18244
18267
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -19565,7 +19588,7 @@ var init_StateMachineView = __esm({
19565
19588
  style: { top: title ? 30 : 0 },
19566
19589
  children: [
19567
19590
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
19568
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React93__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
19591
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React94__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
19569
19592
  StateNode2,
19570
19593
  {
19571
19594
  state,
@@ -25387,8 +25410,8 @@ var init_Menu = __esm({
25387
25410
  "bottom-end": "bottom-start"
25388
25411
  };
25389
25412
  const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
25390
- const triggerChild = React93__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
25391
- const triggerElement = React93__default.cloneElement(
25413
+ const triggerChild = React94__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
25414
+ const triggerElement = React94__default.cloneElement(
25392
25415
  triggerChild,
25393
25416
  {
25394
25417
  ref: triggerRef,
@@ -25483,14 +25506,14 @@ function useDataDnd(args) {
25483
25506
  const isZone = Boolean(dragGroup || accepts || sortable);
25484
25507
  const enabled = isZone || Boolean(dndRoot);
25485
25508
  const eventBus = useEventBus();
25486
- const parentRoot = React93__default.useContext(RootCtx);
25509
+ const parentRoot = React94__default.useContext(RootCtx);
25487
25510
  const isRoot = enabled && parentRoot === null;
25488
- const zoneId = React93__default.useId();
25511
+ const zoneId = React94__default.useId();
25489
25512
  const ownGroup = dragGroup ?? accepts ?? zoneId;
25490
- const [optimisticOrders, setOptimisticOrders] = React93__default.useState(() => /* @__PURE__ */ new Map());
25491
- const optimisticOrdersRef = React93__default.useRef(optimisticOrders);
25513
+ const [optimisticOrders, setOptimisticOrders] = React94__default.useState(() => /* @__PURE__ */ new Map());
25514
+ const optimisticOrdersRef = React94__default.useRef(optimisticOrders);
25492
25515
  optimisticOrdersRef.current = optimisticOrders;
25493
- const clearOptimisticOrder = React93__default.useCallback((group) => {
25516
+ const clearOptimisticOrder = React94__default.useCallback((group) => {
25494
25517
  setOptimisticOrders((prev) => {
25495
25518
  if (!prev.has(group)) return prev;
25496
25519
  const next = new Map(prev);
@@ -25515,7 +25538,7 @@ function useDataDnd(args) {
25515
25538
  const raw = it[dndItemIdField];
25516
25539
  return raw != null ? String(raw) : `__idx_${idx}`;
25517
25540
  }).join("|");
25518
- const itemIds = React93__default.useMemo(
25541
+ const itemIds = React94__default.useMemo(
25519
25542
  () => orderedItems.map((it, idx) => {
25520
25543
  const raw = it[dndItemIdField];
25521
25544
  return raw != null ? String(raw) : `__idx_${idx}`;
@@ -25526,7 +25549,7 @@ function useDataDnd(args) {
25526
25549
  const raw = it[dndItemIdField];
25527
25550
  return raw != null ? String(raw) : `__${idx}`;
25528
25551
  }).join("|");
25529
- React93__default.useEffect(() => {
25552
+ React94__default.useEffect(() => {
25530
25553
  const root = isRoot ? null : parentRoot;
25531
25554
  if (root) {
25532
25555
  root.clearOptimisticOrder(ownGroup);
@@ -25534,20 +25557,20 @@ function useDataDnd(args) {
25534
25557
  clearOptimisticOrder(ownGroup);
25535
25558
  }
25536
25559
  }, [itemsContentSig, ownGroup]);
25537
- const zonesRef = React93__default.useRef(/* @__PURE__ */ new Map());
25538
- const registerZone = React93__default.useCallback((zoneId2, meta2) => {
25560
+ const zonesRef = React94__default.useRef(/* @__PURE__ */ new Map());
25561
+ const registerZone = React94__default.useCallback((zoneId2, meta2) => {
25539
25562
  zonesRef.current.set(zoneId2, meta2);
25540
25563
  }, []);
25541
- const unregisterZone = React93__default.useCallback((zoneId2) => {
25564
+ const unregisterZone = React94__default.useCallback((zoneId2) => {
25542
25565
  zonesRef.current.delete(zoneId2);
25543
25566
  }, []);
25544
- const [activeDrag, setActiveDrag] = React93__default.useState(null);
25545
- const [overZoneGroup, setOverZoneGroup] = React93__default.useState(null);
25546
- const meta = React93__default.useMemo(
25567
+ const [activeDrag, setActiveDrag] = React94__default.useState(null);
25568
+ const [overZoneGroup, setOverZoneGroup] = React94__default.useState(null);
25569
+ const meta = React94__default.useMemo(
25547
25570
  () => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
25548
25571
  [ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
25549
25572
  );
25550
- React93__default.useEffect(() => {
25573
+ React94__default.useEffect(() => {
25551
25574
  const target = isRoot ? null : parentRoot;
25552
25575
  if (!target) {
25553
25576
  zonesRef.current.set(zoneId, meta);
@@ -25566,7 +25589,7 @@ function useDataDnd(args) {
25566
25589
  }, [parentRoot, isRoot, zoneId, meta]);
25567
25590
  const sensors = useAlmadarDndSensors(true);
25568
25591
  const collisionDetection = almadarDndCollisionDetection;
25569
- const findZoneByItem = React93__default.useCallback(
25592
+ const findZoneByItem = React94__default.useCallback(
25570
25593
  (id) => {
25571
25594
  for (const z of zonesRef.current.values()) {
25572
25595
  if (z.itemIds.includes(id)) return z;
@@ -25575,7 +25598,7 @@ function useDataDnd(args) {
25575
25598
  },
25576
25599
  []
25577
25600
  );
25578
- React93__default.useCallback(
25601
+ React94__default.useCallback(
25579
25602
  (group) => {
25580
25603
  for (const z of zonesRef.current.values()) {
25581
25604
  if (z.group === group) return z;
@@ -25584,7 +25607,7 @@ function useDataDnd(args) {
25584
25607
  },
25585
25608
  []
25586
25609
  );
25587
- const handleDragEnd = React93__default.useCallback(
25610
+ const handleDragEnd = React94__default.useCallback(
25588
25611
  (event) => {
25589
25612
  const { active, over } = event;
25590
25613
  const activeIdStr = String(active.id);
@@ -25675,8 +25698,8 @@ function useDataDnd(args) {
25675
25698
  },
25676
25699
  [eventBus]
25677
25700
  );
25678
- const sortableData = React93__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
25679
- const SortableItem = React93__default.useCallback(
25701
+ const sortableData = React94__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
25702
+ const SortableItem = React94__default.useCallback(
25680
25703
  ({ id, children }) => {
25681
25704
  const {
25682
25705
  attributes,
@@ -25716,7 +25739,7 @@ function useDataDnd(args) {
25716
25739
  id: droppableId,
25717
25740
  data: sortableData
25718
25741
  });
25719
- const ctx = React93__default.useContext(RootCtx);
25742
+ const ctx = React94__default.useContext(RootCtx);
25720
25743
  const activeDrag2 = ctx?.activeDrag ?? null;
25721
25744
  const overZoneGroup2 = ctx?.overZoneGroup ?? null;
25722
25745
  const isThisZoneOver = overZoneGroup2 === ownGroup;
@@ -25731,7 +25754,7 @@ function useDataDnd(args) {
25731
25754
  showForeignPlaceholder,
25732
25755
  ctxAvailable: ctx != null
25733
25756
  });
25734
- React93__default.useEffect(() => {
25757
+ React94__default.useEffect(() => {
25735
25758
  dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
25736
25759
  }, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
25737
25760
  return /* @__PURE__ */ jsx(
@@ -25745,11 +25768,11 @@ function useDataDnd(args) {
25745
25768
  }
25746
25769
  );
25747
25770
  };
25748
- const rootContextValue = React93__default.useMemo(
25771
+ const rootContextValue = React94__default.useMemo(
25749
25772
  () => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
25750
25773
  [registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
25751
25774
  );
25752
- const handleDragStart = React93__default.useCallback((event) => {
25775
+ const handleDragStart = React94__default.useCallback((event) => {
25753
25776
  const sourceZone = findZoneByItem(event.active.id);
25754
25777
  const rect = event.active.rect.current.initial;
25755
25778
  const height = rect?.height && rect.height > 0 ? rect.height : 64;
@@ -25768,7 +25791,7 @@ function useDataDnd(args) {
25768
25791
  isRoot
25769
25792
  });
25770
25793
  }, [findZoneByItem, isRoot, zoneId]);
25771
- const handleDragOver = React93__default.useCallback((event) => {
25794
+ const handleDragOver = React94__default.useCallback((event) => {
25772
25795
  const { active, over } = event;
25773
25796
  const overData = over?.data?.current;
25774
25797
  const overGroup = overData?.dndGroup ?? null;
@@ -25838,7 +25861,7 @@ function useDataDnd(args) {
25838
25861
  return next;
25839
25862
  });
25840
25863
  }, []);
25841
- const handleDragCancel = React93__default.useCallback((event) => {
25864
+ const handleDragCancel = React94__default.useCallback((event) => {
25842
25865
  setActiveDrag(null);
25843
25866
  setOverZoneGroup(null);
25844
25867
  dndLog.warn("dragCancel", {
@@ -25846,12 +25869,12 @@ function useDataDnd(args) {
25846
25869
  reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
25847
25870
  });
25848
25871
  }, []);
25849
- const handleDragEndWithCleanup = React93__default.useCallback((event) => {
25872
+ const handleDragEndWithCleanup = React94__default.useCallback((event) => {
25850
25873
  handleDragEnd(event);
25851
25874
  setActiveDrag(null);
25852
25875
  setOverZoneGroup(null);
25853
25876
  }, [handleDragEnd]);
25854
- const wrapContainer = React93__default.useCallback(
25877
+ const wrapContainer = React94__default.useCallback(
25855
25878
  (children) => {
25856
25879
  if (!enabled) return children;
25857
25880
  const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
@@ -25905,7 +25928,7 @@ var init_useDataDnd = __esm({
25905
25928
  init_useAlmadarDndCollision();
25906
25929
  init_Box();
25907
25930
  dndLog = createLogger("almadar:ui:dnd");
25908
- RootCtx = React93__default.createContext(null);
25931
+ RootCtx = React94__default.createContext(null);
25909
25932
  }
25910
25933
  });
25911
25934
  function renderIconInput(icon, props) {
@@ -26447,7 +26470,7 @@ function DataList({
26447
26470
  }) {
26448
26471
  const eventBus = useEventBus();
26449
26472
  const { t } = useTranslate();
26450
- const [visibleCount, setVisibleCount] = React93__default.useState(pageSize || Infinity);
26473
+ const [visibleCount, setVisibleCount] = React94__default.useState(pageSize || Infinity);
26451
26474
  const fieldDefs = fields ?? columns ?? [];
26452
26475
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
26453
26476
  const dnd = useDataDnd({
@@ -26463,14 +26486,14 @@ function DataList({
26463
26486
  dndRoot
26464
26487
  });
26465
26488
  const orderedData = dnd.orderedItems;
26466
- const allData = React93__default.useMemo(
26489
+ const allData = React94__default.useMemo(
26467
26490
  () => sortRows(orderedData, sortBy, sortDirection),
26468
26491
  [orderedData, sortBy, sortDirection]
26469
26492
  );
26470
26493
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
26471
26494
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
26472
26495
  const hasRenderProp = typeof children === "function";
26473
- React93__default.useEffect(() => {
26496
+ React94__default.useEffect(() => {
26474
26497
  const renderItemTypeOf = typeof schemaRenderItem;
26475
26498
  const childrenTypeOf = typeof children;
26476
26499
  if (data.length > 0 && !hasRenderProp) {
@@ -26585,7 +26608,7 @@ function DataList({
26585
26608
  return v === void 0 || v === null || v === "" ? raw : String(v);
26586
26609
  };
26587
26610
  return /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: cn("py-2", className), children: [
26588
- groups2.map((group, gi) => /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
26611
+ groups2.map((group, gi) => /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
26589
26612
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
26590
26613
  group.items.map((itemData, index) => {
26591
26614
  const id = itemData.id || `${gi}-${index}`;
@@ -26784,7 +26807,7 @@ function DataList({
26784
26807
  className
26785
26808
  ),
26786
26809
  children: [
26787
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
26810
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
26788
26811
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
26789
26812
  group.items.map(
26790
26813
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -26871,7 +26894,7 @@ var init_FormSection = __esm({
26871
26894
  columns = 1,
26872
26895
  className
26873
26896
  }) => {
26874
- const [collapsed, setCollapsed] = React93__default.useState(defaultCollapsed);
26897
+ const [collapsed, setCollapsed] = React94__default.useState(defaultCollapsed);
26875
26898
  const { t } = useTranslate();
26876
26899
  const eventBus = useEventBus();
26877
26900
  const gridClass = {
@@ -26879,7 +26902,7 @@ var init_FormSection = __esm({
26879
26902
  2: "grid-cols-1 md:grid-cols-2",
26880
26903
  3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
26881
26904
  }[columns];
26882
- React93__default.useCallback(() => {
26905
+ React94__default.useCallback(() => {
26883
26906
  if (collapsible) {
26884
26907
  setCollapsed((prev) => !prev);
26885
26908
  eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
@@ -27924,7 +27947,7 @@ var init_Flex = __esm({
27924
27947
  flexStyle.flexBasis = typeof basis === "number" ? `${basis}px` : basis;
27925
27948
  }
27926
27949
  }
27927
- return React93__default.createElement(Component, {
27950
+ return React94__default.createElement(Component, {
27928
27951
  className: cn(
27929
27952
  inline ? "inline-flex" : "flex",
27930
27953
  directionStyles[direction],
@@ -28043,7 +28066,7 @@ var init_Grid = __esm({
28043
28066
  as: Component = "div"
28044
28067
  }) => {
28045
28068
  const mergedStyle = rows ? { gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`, ...style } : style;
28046
- return React93__default.createElement(
28069
+ return React94__default.createElement(
28047
28070
  Component,
28048
28071
  {
28049
28072
  className: cn(
@@ -28275,9 +28298,9 @@ var init_Popover = __esm({
28275
28298
  onMouseLeave: handleClose,
28276
28299
  onPointerDown: tapTriggerProps.onPointerDown
28277
28300
  };
28278
- const childElement = React93__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
28301
+ const childElement = React94__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
28279
28302
  const childPointerDown = childElement.props.onPointerDown;
28280
- const triggerElement = React93__default.cloneElement(
28303
+ const triggerElement = React94__default.cloneElement(
28281
28304
  childElement,
28282
28305
  {
28283
28306
  ref: triggerRef,
@@ -28886,9 +28909,9 @@ var init_Tooltip = __esm({
28886
28909
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
28887
28910
  };
28888
28911
  }, []);
28889
- const triggerElement = React93__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
28912
+ const triggerElement = React94__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
28890
28913
  const childPointerDown = triggerElement.props.onPointerDown;
28891
- const trigger = React93__default.cloneElement(triggerElement, {
28914
+ const trigger = React94__default.cloneElement(triggerElement, {
28892
28915
  ref: triggerRef,
28893
28916
  onMouseEnter: handleMouseEnter,
28894
28917
  onMouseLeave: handleMouseLeave,
@@ -28978,7 +29001,7 @@ var init_WizardProgress = __esm({
28978
29001
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
28979
29002
  const isActive = index === currentStep;
28980
29003
  const isCompleted = index < currentStep;
28981
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
29004
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
28982
29005
  /* @__PURE__ */ jsx(
28983
29006
  "button",
28984
29007
  {
@@ -30613,13 +30636,13 @@ var init_MapView = __esm({
30613
30636
  shadowSize: [41, 41]
30614
30637
  });
30615
30638
  L.Marker.prototype.options.icon = defaultIcon;
30616
- const { useEffect: useEffect63, useRef: useRef63, useCallback: useCallback95, useState: useState99 } = React93__default;
30639
+ const { useEffect: useEffect64, useRef: useRef64, useCallback: useCallback96, useState: useState100 } = React94__default;
30617
30640
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
30618
30641
  const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
30619
30642
  function MapUpdater({ centerLat, centerLng, zoom }) {
30620
30643
  const map = useMap();
30621
- const prevRef = useRef63({ centerLat, centerLng, zoom });
30622
- useEffect63(() => {
30644
+ const prevRef = useRef64({ centerLat, centerLng, zoom });
30645
+ useEffect64(() => {
30623
30646
  const prev = prevRef.current;
30624
30647
  if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
30625
30648
  map.setView([centerLat, centerLng], zoom);
@@ -30630,7 +30653,7 @@ var init_MapView = __esm({
30630
30653
  }
30631
30654
  function MapClickHandler({ onMapClick }) {
30632
30655
  const map = useMap();
30633
- useEffect63(() => {
30656
+ useEffect64(() => {
30634
30657
  if (!onMapClick) return;
30635
30658
  const handler = (e) => {
30636
30659
  onMapClick(e.latlng.lat, e.latlng.lng);
@@ -30658,8 +30681,8 @@ var init_MapView = __esm({
30658
30681
  showAttribution = true
30659
30682
  }) {
30660
30683
  const eventBus = useEventBus2();
30661
- const [clickedPosition, setClickedPosition] = useState99(null);
30662
- const handleMapClick = useCallback95((lat, lng) => {
30684
+ const [clickedPosition, setClickedPosition] = useState100(null);
30685
+ const handleMapClick = useCallback96((lat, lng) => {
30663
30686
  if (showClickedPin) {
30664
30687
  setClickedPosition({ lat, lng });
30665
30688
  }
@@ -30668,7 +30691,7 @@ var init_MapView = __esm({
30668
30691
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
30669
30692
  }
30670
30693
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
30671
- const handleMarkerClick = useCallback95((marker) => {
30694
+ const handleMarkerClick = useCallback96((marker) => {
30672
30695
  onMarkerClick?.(marker);
30673
30696
  if (markerClickEvent) {
30674
30697
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -31531,8 +31554,8 @@ function TableView({
31531
31554
  }) {
31532
31555
  const eventBus = useEventBus();
31533
31556
  const { t } = useTranslate();
31534
- const [visibleCount, setVisibleCount] = React93__default.useState(pageSize > 0 ? pageSize : Infinity);
31535
- const [localSelected, setLocalSelected] = React93__default.useState(/* @__PURE__ */ new Set());
31557
+ const [visibleCount, setVisibleCount] = React94__default.useState(pageSize > 0 ? pageSize : Infinity);
31558
+ const [localSelected, setLocalSelected] = React94__default.useState(/* @__PURE__ */ new Set());
31536
31559
  const colDefs = (Array.isArray(columns) ? columns : void 0) ?? (Array.isArray(fields) ? fields : void 0) ?? [];
31537
31560
  const actionDefs = Array.isArray(itemActions) ? itemActions : [];
31538
31561
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -31554,7 +31577,7 @@ function TableView({
31554
31577
  const hasRenderProp = typeof children === "function";
31555
31578
  const idField = dndItemIdField ?? "id";
31556
31579
  const isCoarsePointer = useMediaQuery("(pointer: coarse)");
31557
- React93__default.useEffect(() => {
31580
+ React94__default.useEffect(() => {
31558
31581
  tableViewLog.debug("render", {
31559
31582
  rowCount: data.length,
31560
31583
  colCount: colDefs.length,
@@ -31611,7 +31634,7 @@ function TableView({
31611
31634
  };
31612
31635
  eventBus.emit(`UI:${itemClickEvent}`, payload);
31613
31636
  };
31614
- const colFloors = React93__default.useMemo(
31637
+ const colFloors = React94__default.useMemo(
31615
31638
  () => colDefs.map((col) => {
31616
31639
  const longest = data.reduce((widest, row) => {
31617
31640
  const cell = formatCell(asFieldValue(getNestedValue(row, col.field ?? col.key)), col.format);
@@ -31773,12 +31796,12 @@ function TableView({
31773
31796
  ]
31774
31797
  }
31775
31798
  );
31776
- return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React93__default.Fragment, { children: rowInner }, id);
31799
+ return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React94__default.Fragment, { children: rowInner }, id);
31777
31800
  };
31778
31801
  const items = Array.from(data);
31779
31802
  const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
31780
31803
  let runningIndex = 0;
31781
- const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
31804
+ const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
31782
31805
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
31783
31806
  group.items.map((row) => renderRow(row, runningIndex++))
31784
31807
  ] }, gi)) });
@@ -33141,7 +33164,7 @@ var init_StepFlow = __esm({
33141
33164
  className
33142
33165
  }) => {
33143
33166
  if (orientation === "vertical") {
33144
- return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React93__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
33167
+ return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React94__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
33145
33168
  /* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
33146
33169
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
33147
33170
  showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
@@ -33152,7 +33175,7 @@ var init_StepFlow = __esm({
33152
33175
  ] })
33153
33176
  ] }) }, index)) });
33154
33177
  }
33155
- 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(React93__default.Fragment, { children: [
33178
+ 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(React94__default.Fragment, { children: [
33156
33179
  /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
33157
33180
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
33158
33181
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
@@ -34142,7 +34165,7 @@ var init_LikertScale = __esm({
34142
34165
  md: "text-base",
34143
34166
  lg: "text-lg"
34144
34167
  };
34145
- LikertScale = React93__default.forwardRef(
34168
+ LikertScale = React94__default.forwardRef(
34146
34169
  ({
34147
34170
  question,
34148
34171
  options = DEFAULT_LIKERT_OPTIONS,
@@ -34154,7 +34177,7 @@ var init_LikertScale = __esm({
34154
34177
  variant = "radios",
34155
34178
  className
34156
34179
  }, ref) => {
34157
- const groupId = React93__default.useId();
34180
+ const groupId = React94__default.useId();
34158
34181
  const eventBus = useEventBus();
34159
34182
  const handleSelect = useCallback(
34160
34183
  (next) => {
@@ -36443,7 +36466,7 @@ var init_DocBreadcrumb = __esm({
36443
36466
  "aria-label": t("aria.breadcrumb"),
36444
36467
  children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
36445
36468
  const isLast = idx === items.length - 1;
36446
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
36469
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
36447
36470
  idx > 0 && /* @__PURE__ */ jsx(
36448
36471
  Icon,
36449
36472
  {
@@ -37107,7 +37130,7 @@ var init_PageHeader = __esm({
37107
37130
  info: "bg-info/10 text-info"
37108
37131
  };
37109
37132
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
37110
- 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(React93__default.Fragment, { children: [
37133
+ 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(React94__default.Fragment, { children: [
37111
37134
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
37112
37135
  crumb.href ? /* @__PURE__ */ jsx(
37113
37136
  "a",
@@ -37465,7 +37488,7 @@ var init_Section = __esm({
37465
37488
  as: Component = "section"
37466
37489
  }) => {
37467
37490
  const hasHeader = title || description || action;
37468
- return React93__default.createElement(
37491
+ return React94__default.createElement(
37469
37492
  Component,
37470
37493
  {
37471
37494
  className: cn(
@@ -37839,7 +37862,7 @@ var init_WizardContainer = __esm({
37839
37862
  const isCompleted = index < currentStep;
37840
37863
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
37841
37864
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
37842
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
37865
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
37843
37866
  /* @__PURE__ */ jsx(
37844
37867
  Button,
37845
37868
  {
@@ -39626,7 +39649,7 @@ var init_ImportPreviewTree = __esm({
39626
39649
  const renderUnit = (unit, childrenByParent, depth) => {
39627
39650
  const summary = fieldSummary(unit);
39628
39651
  const children = childrenByParent.get(unit.ref) ?? [];
39629
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
39652
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
39630
39653
  /* @__PURE__ */ jsxs(
39631
39654
  Box,
39632
39655
  {
@@ -39723,7 +39746,7 @@ var init_ImportProgress = __esm({
39723
39746
  PIPELINE.map((key, index) => {
39724
39747
  const isComplete = index < currentIndex;
39725
39748
  const isActive = index === currentIndex;
39726
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
39749
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
39727
39750
  index > 0 ? /* @__PURE__ */ jsx(Box, { className: "h-px w-4 bg-border" }) : null,
39728
39751
  /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-1", "data-testid": `import-progress-step-${key}`, children: [
39729
39752
  /* @__PURE__ */ jsx(
@@ -40848,7 +40871,7 @@ var init_DrawMesh = __esm({
40848
40871
  }
40849
40872
  });
40850
40873
  function extractTitle(children) {
40851
- if (!React93__default.isValidElement(children)) return void 0;
40874
+ if (!React94__default.isValidElement(children)) return void 0;
40852
40875
  const props = children.props;
40853
40876
  if (typeof props.title === "string") {
40854
40877
  return props.title;
@@ -41198,12 +41221,12 @@ var init_Form = __esm({
41198
41221
  const isSchemaEntity = isOrbitalEntitySchema(entity);
41199
41222
  const resolvedEntity = isSchemaEntity ? entity : void 0;
41200
41223
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
41201
- const normalizedInitialData = React93__default.useMemo(() => {
41224
+ const normalizedInitialData = React94__default.useMemo(() => {
41202
41225
  const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
41203
41226
  const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
41204
41227
  return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
41205
41228
  }, [entity, initialData]);
41206
- const entityDerivedFields = React93__default.useMemo(() => {
41229
+ const entityDerivedFields = React94__default.useMemo(() => {
41207
41230
  if (fields && fields.length > 0) return void 0;
41208
41231
  if (!resolvedEntity) return void 0;
41209
41232
  return resolvedEntity.fields.map(
@@ -41224,16 +41247,16 @@ var init_Form = __esm({
41224
41247
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
41225
41248
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
41226
41249
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
41227
- const [formData, setFormData] = React93__default.useState(
41250
+ const [formData, setFormData] = React94__default.useState(
41228
41251
  normalizedInitialData
41229
41252
  );
41230
- const [collapsedSections, setCollapsedSections] = React93__default.useState(
41253
+ const [collapsedSections, setCollapsedSections] = React94__default.useState(
41231
41254
  /* @__PURE__ */ new Set()
41232
41255
  );
41233
- const [submitError, setSubmitError] = React93__default.useState(null);
41234
- const formRef = React93__default.useRef(null);
41256
+ const [submitError, setSubmitError] = React94__default.useState(null);
41257
+ const formRef = React94__default.useRef(null);
41235
41258
  const formMode = props.mode;
41236
- const mountedRef = React93__default.useRef(false);
41259
+ const mountedRef = React94__default.useRef(false);
41237
41260
  if (!mountedRef.current) {
41238
41261
  mountedRef.current = true;
41239
41262
  debug("forms", "mount", {
@@ -41246,7 +41269,7 @@ var init_Form = __esm({
41246
41269
  });
41247
41270
  }
41248
41271
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
41249
- const evalContext = React93__default.useMemo(
41272
+ const evalContext = React94__default.useMemo(
41250
41273
  () => ({
41251
41274
  formValues: formData,
41252
41275
  globalVariables: externalContext?.globalVariables ?? {},
@@ -41255,7 +41278,7 @@ var init_Form = __esm({
41255
41278
  }),
41256
41279
  [formData, externalContext]
41257
41280
  );
41258
- React93__default.useEffect(() => {
41281
+ React94__default.useEffect(() => {
41259
41282
  debug("forms", "initialData-sync", {
41260
41283
  mode: formMode,
41261
41284
  normalizedInitialData,
@@ -41266,7 +41289,7 @@ var init_Form = __esm({
41266
41289
  setFormData(normalizedInitialData);
41267
41290
  }
41268
41291
  }, [normalizedInitialData]);
41269
- const processCalculations = React93__default.useCallback(
41292
+ const processCalculations = React94__default.useCallback(
41270
41293
  (changedFieldId, newFormData) => {
41271
41294
  if (!hiddenCalculations.length) return;
41272
41295
  const context = {
@@ -41291,7 +41314,7 @@ var init_Form = __esm({
41291
41314
  },
41292
41315
  [hiddenCalculations, externalContext, eventBus]
41293
41316
  );
41294
- const checkViolations = React93__default.useCallback(
41317
+ const checkViolations = React94__default.useCallback(
41295
41318
  (changedFieldId, newFormData) => {
41296
41319
  if (!violationTriggers.length) return;
41297
41320
  const context = {
@@ -41329,7 +41352,7 @@ var init_Form = __esm({
41329
41352
  processCalculations(name, newFormData);
41330
41353
  checkViolations(name, newFormData);
41331
41354
  };
41332
- const isFieldVisible = React93__default.useCallback(
41355
+ const isFieldVisible = React94__default.useCallback(
41333
41356
  (fieldName) => {
41334
41357
  const condition = conditionalFields[fieldName];
41335
41358
  if (!condition) return true;
@@ -41337,7 +41360,7 @@ var init_Form = __esm({
41337
41360
  },
41338
41361
  [conditionalFields, evalContext]
41339
41362
  );
41340
- const isSectionVisible = React93__default.useCallback(
41363
+ const isSectionVisible = React94__default.useCallback(
41341
41364
  (section) => {
41342
41365
  if (!section.condition) return true;
41343
41366
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -41413,7 +41436,7 @@ var init_Form = __esm({
41413
41436
  eventBus.emit(`UI:${onCancel}`);
41414
41437
  }
41415
41438
  };
41416
- const renderField = React93__default.useCallback(
41439
+ const renderField = React94__default.useCallback(
41417
41440
  (field) => {
41418
41441
  const fieldName = field.name || field.field;
41419
41442
  if (!fieldName) return null;
@@ -41434,7 +41457,7 @@ var init_Form = __esm({
41434
41457
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
41435
41458
  );
41436
41459
  const effectiveFields = entityDerivedFields ?? fields;
41437
- const normalizedFields = React93__default.useMemo(() => {
41460
+ const normalizedFields = React94__default.useMemo(() => {
41438
41461
  if (!effectiveFields || effectiveFields.length === 0) return [];
41439
41462
  return effectiveFields.map((field) => {
41440
41463
  if (typeof field === "string") {
@@ -41458,7 +41481,7 @@ var init_Form = __esm({
41458
41481
  return field;
41459
41482
  });
41460
41483
  }, [effectiveFields, resolvedEntity]);
41461
- const schemaFields = React93__default.useMemo(() => {
41484
+ const schemaFields = React94__default.useMemo(() => {
41462
41485
  if (normalizedFields.length === 0) return null;
41463
41486
  if (isDebugEnabled()) {
41464
41487
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -41468,7 +41491,7 @@ var init_Form = __esm({
41468
41491
  }
41469
41492
  return normalizedFields.map(renderField).filter(Boolean);
41470
41493
  }, [normalizedFields, renderField, entityName, conditionalFields]);
41471
- const sectionElements = React93__default.useMemo(() => {
41494
+ const sectionElements = React94__default.useMemo(() => {
41472
41495
  if (!sections || sections.length === 0) return null;
41473
41496
  return sections.map((section) => {
41474
41497
  if (!isSectionVisible(section)) {
@@ -42194,7 +42217,7 @@ var init_List = __esm({
42194
42217
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
42195
42218
  return [];
42196
42219
  }, [entity]);
42197
- const getItemActions = React93__default.useCallback(
42220
+ const getItemActions = React94__default.useCallback(
42198
42221
  (item) => {
42199
42222
  if (!itemActions) return [];
42200
42223
  if (typeof itemActions === "function") {
@@ -42675,7 +42698,7 @@ var init_MediaGallery = __esm({
42675
42698
  [selectable, selectedItems, selectionEvent, eventBus]
42676
42699
  );
42677
42700
  const entityData = Array.isArray(entity) ? entity : [];
42678
- const items = React93__default.useMemo(() => {
42701
+ const items = React94__default.useMemo(() => {
42679
42702
  if (propItems && propItems.length > 0) return propItems;
42680
42703
  if (entityData.length === 0) return [];
42681
42704
  return entityData.map((record, idx) => {
@@ -42840,7 +42863,7 @@ var init_MediaGallery = __esm({
42840
42863
  }
42841
42864
  });
42842
42865
  function extractTitle2(children) {
42843
- if (!React93__default.isValidElement(children)) return void 0;
42866
+ if (!React94__default.isValidElement(children)) return void 0;
42844
42867
  const props = children.props;
42845
42868
  if (typeof props.title === "string") {
42846
42869
  return props.title;
@@ -43114,7 +43137,7 @@ var init_debugRegistry = __esm({
43114
43137
  }
43115
43138
  });
43116
43139
  function useDebugData() {
43117
- const [data, setData] = React93.useState(() => ({
43140
+ const [data, setData] = React94.useState(() => ({
43118
43141
  traits: [],
43119
43142
  ticks: [],
43120
43143
  guards: [],
@@ -43128,7 +43151,7 @@ function useDebugData() {
43128
43151
  },
43129
43152
  lastUpdate: Date.now()
43130
43153
  }));
43131
- React93.useEffect(() => {
43154
+ React94.useEffect(() => {
43132
43155
  const updateData = () => {
43133
43156
  setData({
43134
43157
  traits: getAllTraits(),
@@ -43237,12 +43260,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
43237
43260
  return positions;
43238
43261
  }
43239
43262
  function WalkMinimap() {
43240
- const [walkStep, setWalkStep] = React93.useState(null);
43241
- const [traits2, setTraits] = React93.useState([]);
43242
- const [coveredEdges, setCoveredEdges] = React93.useState([]);
43243
- const [completedTraits, setCompletedTraits] = React93.useState(/* @__PURE__ */ new Set());
43244
- const prevTraitRef = React93.useRef(null);
43245
- React93.useEffect(() => {
43263
+ const [walkStep, setWalkStep] = React94.useState(null);
43264
+ const [traits2, setTraits] = React94.useState([]);
43265
+ const [coveredEdges, setCoveredEdges] = React94.useState([]);
43266
+ const [completedTraits, setCompletedTraits] = React94.useState(/* @__PURE__ */ new Set());
43267
+ const prevTraitRef = React94.useRef(null);
43268
+ React94.useEffect(() => {
43246
43269
  const interval = setInterval(() => {
43247
43270
  const w = window;
43248
43271
  const step = w.__orbitalWalkStep;
@@ -43678,15 +43701,15 @@ var init_EntitiesTab = __esm({
43678
43701
  });
43679
43702
  function EventFlowTab({ events: events2 }) {
43680
43703
  const { t } = useTranslate();
43681
- const [filter, setFilter] = React93.useState("all");
43682
- const containerRef = React93.useRef(null);
43683
- const [autoScroll, setAutoScroll] = React93.useState(true);
43684
- React93.useEffect(() => {
43704
+ const [filter, setFilter] = React94.useState("all");
43705
+ const containerRef = React94.useRef(null);
43706
+ const [autoScroll, setAutoScroll] = React94.useState(true);
43707
+ React94.useEffect(() => {
43685
43708
  if (autoScroll && containerRef.current) {
43686
43709
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
43687
43710
  }
43688
43711
  }, [events2.length, autoScroll]);
43689
- const filteredEvents = React93.useMemo(() => {
43712
+ const filteredEvents = React94.useMemo(() => {
43690
43713
  if (filter === "all") return events2;
43691
43714
  return events2.filter((e) => e.type === filter);
43692
43715
  }, [events2, filter]);
@@ -43802,7 +43825,7 @@ var init_EventFlowTab = __esm({
43802
43825
  });
43803
43826
  function GuardsPanel({ guards }) {
43804
43827
  const { t } = useTranslate();
43805
- const [filter, setFilter] = React93.useState("all");
43828
+ const [filter, setFilter] = React94.useState("all");
43806
43829
  if (guards.length === 0) {
43807
43830
  return /* @__PURE__ */ jsx(
43808
43831
  EmptyState,
@@ -43815,7 +43838,7 @@ function GuardsPanel({ guards }) {
43815
43838
  }
43816
43839
  const passedCount = guards.filter((g) => g.result).length;
43817
43840
  const failedCount = guards.length - passedCount;
43818
- const filteredGuards = React93.useMemo(() => {
43841
+ const filteredGuards = React94.useMemo(() => {
43819
43842
  if (filter === "all") return guards;
43820
43843
  if (filter === "passed") return guards.filter((g) => g.result);
43821
43844
  return guards.filter((g) => !g.result);
@@ -43978,10 +44001,10 @@ function EffectBadge({ effect }) {
43978
44001
  }
43979
44002
  function TransitionTimeline({ transitions }) {
43980
44003
  const { t } = useTranslate();
43981
- const containerRef = React93.useRef(null);
43982
- const [autoScroll, setAutoScroll] = React93.useState(true);
43983
- const [expandedId, setExpandedId] = React93.useState(null);
43984
- React93.useEffect(() => {
44004
+ const containerRef = React94.useRef(null);
44005
+ const [autoScroll, setAutoScroll] = React94.useState(true);
44006
+ const [expandedId, setExpandedId] = React94.useState(null);
44007
+ React94.useEffect(() => {
43985
44008
  if (autoScroll && containerRef.current) {
43986
44009
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
43987
44010
  }
@@ -44261,9 +44284,9 @@ function getAllEvents(traits2) {
44261
44284
  function EventDispatcherTab({ traits: traits2, schema }) {
44262
44285
  const eventBus = useEventBus();
44263
44286
  const { t } = useTranslate();
44264
- const [log11, setLog] = React93.useState([]);
44265
- const prevStatesRef = React93.useRef(/* @__PURE__ */ new Map());
44266
- React93.useEffect(() => {
44287
+ const [log11, setLog] = React94.useState([]);
44288
+ const prevStatesRef = React94.useRef(/* @__PURE__ */ new Map());
44289
+ React94.useEffect(() => {
44267
44290
  for (const trait of traits2) {
44268
44291
  const prev = prevStatesRef.current.get(trait.id);
44269
44292
  if (prev && prev !== trait.currentState) {
@@ -44432,10 +44455,10 @@ function VerifyModePanel({
44432
44455
  localCount
44433
44456
  }) {
44434
44457
  const { t } = useTranslate();
44435
- const [expanded, setExpanded] = React93.useState(true);
44436
- const scrollRef = React93.useRef(null);
44437
- const prevCountRef = React93.useRef(0);
44438
- React93.useEffect(() => {
44458
+ const [expanded, setExpanded] = React94.useState(true);
44459
+ const scrollRef = React94.useRef(null);
44460
+ const prevCountRef = React94.useRef(0);
44461
+ React94.useEffect(() => {
44439
44462
  if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
44440
44463
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
44441
44464
  }
@@ -44492,10 +44515,10 @@ function RuntimeDebugger({
44492
44515
  schema
44493
44516
  }) {
44494
44517
  const { t } = useTranslate();
44495
- const [isCollapsed, setIsCollapsed] = React93.useState(mode === "verify" ? true : defaultCollapsed);
44496
- const [isVisible, setIsVisible] = React93.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
44518
+ const [isCollapsed, setIsCollapsed] = React94.useState(mode === "verify" ? true : defaultCollapsed);
44519
+ const [isVisible, setIsVisible] = React94.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
44497
44520
  const debugData = useDebugData();
44498
- React93.useEffect(() => {
44521
+ React94.useEffect(() => {
44499
44522
  if (mode === "inline") return;
44500
44523
  return onDebugToggle((enabled) => {
44501
44524
  setIsVisible(enabled);
@@ -44504,7 +44527,7 @@ function RuntimeDebugger({
44504
44527
  }
44505
44528
  });
44506
44529
  }, [mode]);
44507
- React93.useEffect(() => {
44530
+ React94.useEffect(() => {
44508
44531
  if (mode === "inline") return;
44509
44532
  const handleKeyDown = (e) => {
44510
44533
  if (e.key === "`" && isVisible) {
@@ -45024,7 +45047,7 @@ var init_StatCard = __esm({
45024
45047
  const labelToUse = propLabel ?? propTitle;
45025
45048
  const eventBus = useEventBus();
45026
45049
  const { t } = useTranslate();
45027
- const handleActionClick = React93__default.useCallback(() => {
45050
+ const handleActionClick = React94__default.useCallback(() => {
45028
45051
  if (action?.event) {
45029
45052
  eventBus.emit(`UI:${action.event}`, {});
45030
45053
  }
@@ -45035,7 +45058,7 @@ var init_StatCard = __esm({
45035
45058
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
45036
45059
  const isLoading = externalLoading ?? false;
45037
45060
  const error = externalError;
45038
- const computeMetricValue = React93__default.useCallback(
45061
+ const computeMetricValue = React94__default.useCallback(
45039
45062
  (metric, items) => {
45040
45063
  if (metric.value !== void 0) {
45041
45064
  return metric.value;
@@ -45074,7 +45097,7 @@ var init_StatCard = __esm({
45074
45097
  },
45075
45098
  []
45076
45099
  );
45077
- const schemaStats = React93__default.useMemo(() => {
45100
+ const schemaStats = React94__default.useMemo(() => {
45078
45101
  if (!metrics || metrics.length === 0) return null;
45079
45102
  return metrics.map((metric) => ({
45080
45103
  label: metric.label,
@@ -45082,7 +45105,7 @@ var init_StatCard = __esm({
45082
45105
  format: metric.format
45083
45106
  }));
45084
45107
  }, [metrics, data, computeMetricValue]);
45085
- const calculatedTrend = React93__default.useMemo(() => {
45108
+ const calculatedTrend = React94__default.useMemo(() => {
45086
45109
  if (manualTrend !== void 0) return manualTrend;
45087
45110
  if (previousValue === void 0 || currentValue === void 0)
45088
45111
  return void 0;
@@ -45722,8 +45745,8 @@ var init_SubagentTracePanel = __esm({
45722
45745
  ] });
45723
45746
  };
45724
45747
  InlineActivityStream = ({ activities, autoScroll = true, className }) => {
45725
- const endRef = React93__default.useRef(null);
45726
- React93__default.useEffect(() => {
45748
+ const endRef = React94__default.useRef(null);
45749
+ React94__default.useEffect(() => {
45727
45750
  if (!autoScroll) return;
45728
45751
  endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
45729
45752
  }, [activities.length, autoScroll]);
@@ -45817,7 +45840,7 @@ var init_SubagentTracePanel = __esm({
45817
45840
  };
45818
45841
  SubagentRichCard = ({ subagent }) => {
45819
45842
  const { t } = useTranslate();
45820
- const activities = React93__default.useMemo(
45843
+ const activities = React94__default.useMemo(
45821
45844
  () => subagentMessagesToActivities(subagent.messages),
45822
45845
  [subagent.messages]
45823
45846
  );
@@ -45894,8 +45917,8 @@ var init_SubagentTracePanel = __esm({
45894
45917
  ] });
45895
45918
  };
45896
45919
  CoordinatorConversation = ({ messages, autoScroll = true, className }) => {
45897
- const endRef = React93__default.useRef(null);
45898
- React93__default.useEffect(() => {
45920
+ const endRef = React94__default.useRef(null);
45921
+ React94__default.useEffect(() => {
45899
45922
  if (!autoScroll) return;
45900
45923
  endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
45901
45924
  }, [messages.length, autoScroll]);
@@ -46330,7 +46353,7 @@ var init_Timeline = __esm({
46330
46353
  }) => {
46331
46354
  const { t } = useTranslate();
46332
46355
  const entityData = entity ?? [];
46333
- const items = React93__default.useMemo(() => {
46356
+ const items = React94__default.useMemo(() => {
46334
46357
  if (propItems) return propItems;
46335
46358
  if (entityData.length === 0) return [];
46336
46359
  return entityData.map((record, idx) => {
@@ -46432,7 +46455,7 @@ var init_Timeline = __esm({
46432
46455
  }
46433
46456
  });
46434
46457
  function extractToastProps(children) {
46435
- if (!React93__default.isValidElement(children)) {
46458
+ if (!React94__default.isValidElement(children)) {
46436
46459
  if (typeof children === "string") {
46437
46460
  return { message: children };
46438
46461
  }
@@ -46474,7 +46497,7 @@ var init_ToastSlot = __esm({
46474
46497
  eventBus.emit(`${prefix}CLOSE`);
46475
46498
  };
46476
46499
  if (!isVisible) return null;
46477
- const isCustomContent = React93__default.isValidElement(children) && !message;
46500
+ const isCustomContent = React94__default.isValidElement(children) && !message;
46478
46501
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
46479
46502
  Toast,
46480
46503
  {
@@ -47049,7 +47072,7 @@ function SuspenseConfigProvider({
47049
47072
  config,
47050
47073
  children
47051
47074
  }) {
47052
- return React93__default.createElement(
47075
+ return React94__default.createElement(
47053
47076
  SuspenseConfigContext.Provider,
47054
47077
  { value: config },
47055
47078
  children
@@ -47091,7 +47114,7 @@ function enrichFormFields(fields, entityDef) {
47091
47114
  }
47092
47115
  return { name: field, label: humanizeFieldName(field) };
47093
47116
  }
47094
- if (field && typeof field === "object" && !Array.isArray(field) && !React93__default.isValidElement(field) && !(field instanceof Date)) {
47117
+ if (field && typeof field === "object" && !Array.isArray(field) && !React94__default.isValidElement(field) && !(field instanceof Date)) {
47095
47118
  const obj = field;
47096
47119
  const fieldName = typeof obj.name === "string" ? obj.name : typeof obj.field === "string" ? obj.field : void 0;
47097
47120
  if (!fieldName) return field;
@@ -47563,7 +47586,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
47563
47586
  const key = `${parentId}-${index}-trait:${traitName}`;
47564
47587
  return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
47565
47588
  }
47566
- return /* @__PURE__ */ jsx(React93__default.Fragment, { children: child }, `${parentId}-${index}`);
47589
+ return /* @__PURE__ */ jsx(React94__default.Fragment, { children: child }, `${parentId}-${index}`);
47567
47590
  }
47568
47591
  if (!child || typeof child !== "object") return null;
47569
47592
  const childId = `${parentId}-${index}`;
@@ -47620,14 +47643,14 @@ function isPatternConfig(value) {
47620
47643
  if (value === null || value === void 0) return false;
47621
47644
  if (typeof value !== "object") return false;
47622
47645
  if (Array.isArray(value)) return false;
47623
- if (React93__default.isValidElement(value)) return false;
47646
+ if (React94__default.isValidElement(value)) return false;
47624
47647
  if (value instanceof Date) return false;
47625
47648
  if (typeof value === "function") return false;
47626
47649
  const record = value;
47627
47650
  return "type" in record && typeof record.type === "string" && getComponentForPattern$1(record.type) !== null;
47628
47651
  }
47629
47652
  function isPlainConfigObject(value) {
47630
- if (React93__default.isValidElement(value)) return false;
47653
+ if (React94__default.isValidElement(value)) return false;
47631
47654
  if (value instanceof Date) return false;
47632
47655
  const proto = Object.getPrototypeOf(value);
47633
47656
  return proto === Object.prototype || proto === null;
@@ -47768,7 +47791,7 @@ function SlotContentRenderer({
47768
47791
  for (const slotKey of CONTENT_NODE_SLOTS) {
47769
47792
  const slotVal = restProps[slotKey];
47770
47793
  if (slotVal === void 0 || slotVal === null) continue;
47771
- if (React93__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
47794
+ if (React94__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
47772
47795
  const typelessChildren = !Array.isArray(slotVal) && typeof slotVal === "object" && !("type" in slotVal) && Array.isArray(slotVal.children) ? slotVal.children : void 0;
47773
47796
  if (typelessChildren !== void 0 || Array.isArray(slotVal) || typeof slotVal === "object" && "type" in slotVal) {
47774
47797
  nodeSlotOverrides[slotKey] = renderPatternChildren(
@@ -47822,7 +47845,7 @@ function SlotContentRenderer({
47822
47845
  const resolvedItems = Array.isArray(entityVal) && entityVal[0] !== "fn" ? entityVal : null;
47823
47846
  if (resolvedItems && resolvedItems.length > 0 && !finalProps.fields && !finalProps.columns) {
47824
47847
  const sample = resolvedItems[0];
47825
- if (sample && typeof sample === "object" && !Array.isArray(sample) && !React93__default.isValidElement(sample) && !(sample instanceof Date)) {
47848
+ if (sample && typeof sample === "object" && !Array.isArray(sample) && !React94__default.isValidElement(sample) && !(sample instanceof Date)) {
47826
47849
  const keys = Object.keys(sample).filter((k) => k !== "id" && k !== "_id");
47827
47850
  finalProps.fields = keys.map((k, i) => ({ name: k, variant: i === 0 ? "h4" : "body" }));
47828
47851
  }
@@ -48191,7 +48214,7 @@ var AvlTransition = ({
48191
48214
  opacity = 1,
48192
48215
  className
48193
48216
  }) => {
48194
- const ids = React93__default.useMemo(() => {
48217
+ const ids = React94__default.useMemo(() => {
48195
48218
  avlTransitionId += 1;
48196
48219
  return { arrow: `avl-tr-${avlTransitionId}-arrow` };
48197
48220
  }, []);
@@ -48752,7 +48775,7 @@ var AvlStateMachine = ({
48752
48775
  color = "var(--color-primary)",
48753
48776
  animated = false
48754
48777
  }) => {
48755
- const ids = React93__default.useMemo(() => {
48778
+ const ids = React94__default.useMemo(() => {
48756
48779
  avlSmId += 1;
48757
48780
  const base = `avl-sm-${avlSmId}`;
48758
48781
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -48951,7 +48974,7 @@ var AvlOrbitalUnit = ({
48951
48974
  color = "var(--color-primary)",
48952
48975
  animated = false
48953
48976
  }) => {
48954
- const ids = React93__default.useMemo(() => {
48977
+ const ids = React94__default.useMemo(() => {
48955
48978
  avlOuId += 1;
48956
48979
  const base = `avl-ou-${avlOuId}`;
48957
48980
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -49047,7 +49070,7 @@ var AvlClosedCircuit = ({
49047
49070
  color = "var(--color-primary)",
49048
49071
  animated = false
49049
49072
  }) => {
49050
- const ids = React93__default.useMemo(() => {
49073
+ const ids = React94__default.useMemo(() => {
49051
49074
  avlCcId += 1;
49052
49075
  const base = `avl-cc-${avlCcId}`;
49053
49076
  return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
@@ -49202,7 +49225,7 @@ var AvlEmitListen = ({
49202
49225
  color = "var(--color-primary)",
49203
49226
  animated = false
49204
49227
  }) => {
49205
- const ids = React93__default.useMemo(() => {
49228
+ const ids = React94__default.useMemo(() => {
49206
49229
  avlElId += 1;
49207
49230
  const base = `avl-el-${avlElId}`;
49208
49231
  return { arrow: `${base}-arrow`, grad: `${base}-grad` };
@@ -49476,7 +49499,7 @@ function renderNode(node, color, glowId) {
49476
49499
  const baseR = node.type === "operator" ? 20 : 16;
49477
49500
  const r2 = Math.max(baseR, labelLen * 3.5 + 6);
49478
49501
  const nc = nodeColor(node.type, color);
49479
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
49502
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
49480
49503
  node.children.map((child, i) => {
49481
49504
  const childR = Math.max(
49482
49505
  child.type === "operator" ? 20 : 16,
@@ -49533,7 +49556,7 @@ var AvlExprTree = ({
49533
49556
  className,
49534
49557
  color = "var(--color-primary)"
49535
49558
  }) => {
49536
- const ids = React93__default.useMemo(() => {
49559
+ const ids = React94__default.useMemo(() => {
49537
49560
  avlEtId += 1;
49538
49561
  return { glow: `avl-et-${avlEtId}-glow` };
49539
49562
  }, []);
@@ -50368,7 +50391,7 @@ var SystemNode = ({ data }) => {
50368
50391
  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) => {
50369
50392
  const tc = transitionCounts[s.name] ?? 0;
50370
50393
  const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
50371
- return /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
50394
+ return /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
50372
50395
  /* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial ?? void 0, isTerminal: s.isTerminal ?? void 0 }),
50373
50396
  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 })
50374
50397
  ] }, s.name);
@@ -51455,7 +51478,7 @@ function resolveLambdaBindings(body, params, item, index) {
51455
51478
  }
51456
51479
  return substituted;
51457
51480
  }
51458
- if (body !== null && typeof body === "object" && !React93__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
51481
+ if (body !== null && typeof body === "object" && !React94__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
51459
51482
  const out = {};
51460
51483
  for (const [k, v] of Object.entries(body)) {
51461
51484
  out[k] = recur(v);
@@ -51488,7 +51511,7 @@ function deferLambdaEntityExprs(value) {
51488
51511
  }
51489
51512
  return arr.map((v) => deferLambdaEntityExprs(v));
51490
51513
  }
51491
- if (value !== null && typeof value === "object" && !React93__default.isValidElement(value) && !(value instanceof Date) && typeof value !== "function" && !isRenderBindingMarker(value)) {
51514
+ if (value !== null && typeof value === "object" && !React94__default.isValidElement(value) && !(value instanceof Date) && typeof value !== "function" && !isRenderBindingMarker(value)) {
51492
51515
  const out = {};
51493
51516
  for (const [k, v] of Object.entries(value)) {
51494
51517
  out[k] = deferLambdaEntityExprs(v);
@@ -51502,7 +51525,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
51502
51525
  const resolvedBody = deferLambdaEntityExprs(
51503
51526
  resolveLambdaBindings(lambdaBody, params, item, index)
51504
51527
  );
51505
- if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React93__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
51528
+ if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React94__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
51506
51529
  return null;
51507
51530
  }
51508
51531
  const record = resolvedBody;
@@ -51521,7 +51544,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
51521
51544
  props: childProps,
51522
51545
  priority: 0
51523
51546
  };
51524
- return React93__default.createElement(SlotContentRenderer2, { content: childContent });
51547
+ return React94__default.createElement(SlotContentRenderer2, { content: childContent });
51525
51548
  };
51526
51549
  }
51527
51550
  function convertNode(node, callerKey) {
@@ -51541,7 +51564,7 @@ function convertNode(node, callerKey) {
51541
51564
  });
51542
51565
  return anyChanged ? mapped : node;
51543
51566
  }
51544
- if (typeof node === "object" && !React93__default.isValidElement(node) && !(node instanceof Date)) {
51567
+ if (typeof node === "object" && !React94__default.isValidElement(node) && !(node instanceof Date)) {
51545
51568
  return convertObjectProps(node);
51546
51569
  }
51547
51570
  return node;
@@ -53464,8 +53487,8 @@ function CanvasDndProvider({
53464
53487
  }) {
53465
53488
  const eventBus = useEventBus();
53466
53489
  const sensors = useAlmadarDndSensors(false);
53467
- const [activePayload, setActivePayload] = React93__default.useState(null);
53468
- const handleDragStart = React93__default.useCallback((e) => {
53490
+ const [activePayload, setActivePayload] = React94__default.useState(null);
53491
+ const handleDragStart = React94__default.useCallback((e) => {
53469
53492
  const data = e.active.data.current;
53470
53493
  const payload = data?.payload;
53471
53494
  if (payload) {
@@ -53476,7 +53499,7 @@ function CanvasDndProvider({
53476
53499
  log9.warn("dragStart:missing-payload", { id: e.active.id });
53477
53500
  }
53478
53501
  }, [eventBus]);
53479
- const handleDragEnd = React93__default.useCallback((e) => {
53502
+ const handleDragEnd = React94__default.useCallback((e) => {
53480
53503
  setActivePayload(null);
53481
53504
  const activeData = e.active.data.current;
53482
53505
  const payload = activeData?.payload;
@@ -53505,7 +53528,7 @@ function CanvasDndProvider({
53505
53528
  const suppressed = onDrop ? onDrop(drop) === true : false;
53506
53529
  if (!suppressed) defaultEmit(eventBus, drop);
53507
53530
  }, [eventBus, onDrop]);
53508
- const handleDragCancel = React93__default.useCallback(() => {
53531
+ const handleDragCancel = React94__default.useCallback(() => {
53509
53532
  setActivePayload(null);
53510
53533
  log9.info("dragCancel");
53511
53534
  }, []);
@@ -54263,7 +54286,7 @@ var OrbPreviewNodeInner = (props) => {
54263
54286
  }
54264
54287
  );
54265
54288
  };
54266
- var OrbPreviewNode = React93__default.memo(OrbPreviewNodeInner);
54289
+ var OrbPreviewNode = React94__default.memo(OrbPreviewNodeInner);
54267
54290
  OrbPreviewNode.displayName = "OrbPreviewNode";
54268
54291
  orbPreviewLog.debug("export-resolved", () => ({
54269
54292
  type: typeof OrbPreviewNode,
@@ -54368,7 +54391,7 @@ var EventFlowEdgeInner = (props) => {
54368
54391
  ) })
54369
54392
  ] });
54370
54393
  };
54371
- var EventFlowEdge = React93__default.memo(EventFlowEdgeInner);
54394
+ var EventFlowEdge = React94__default.memo(EventFlowEdgeInner);
54372
54395
  EventFlowEdge.displayName = "EventFlowEdge";
54373
54396
 
54374
54397
  // components/avl/molecules/BehaviorComposeNode.tsx
@@ -54515,7 +54538,7 @@ var BehaviorComposeNodeInner = (props) => {
54515
54538
  }
54516
54539
  );
54517
54540
  };
54518
- var BehaviorComposeNode = React93__default.memo(BehaviorComposeNodeInner);
54541
+ var BehaviorComposeNode = React94__default.memo(BehaviorComposeNodeInner);
54519
54542
  BehaviorComposeNode.displayName = "BehaviorComposeNode";
54520
54543
 
54521
54544
  // components/avl/lib/avl-behavior-compose-converter.ts
@@ -55541,7 +55564,7 @@ var TraitCardNodeInner = (props) => {
55541
55564
  }
55542
55565
  );
55543
55566
  };
55544
- var TraitCardNode = React93__default.memo(TraitCardNodeInner);
55567
+ var TraitCardNode = React94__default.memo(TraitCardNodeInner);
55545
55568
  TraitCardNode.displayName = "TraitCardNode";
55546
55569
 
55547
55570
  // components/avl/organisms/FlowCanvas.tsx
@@ -55622,7 +55645,7 @@ function FlowCanvasInner({
55622
55645
  initialOrbital
55623
55646
  );
55624
55647
  const [expandedBehaviorAlias, setExpandedBehaviorAlias] = useState(void 0);
55625
- const screenSizeUserOverrideRef = React93__default.useRef(false);
55648
+ const screenSizeUserOverrideRef = React94__default.useRef(false);
55626
55649
  const [screenSize, setScreenSize] = useState(
55627
55650
  () => typeof window === "undefined" ? "laptop" : detectScreenSize(window.innerWidth)
55628
55651
  );
@@ -56006,7 +56029,7 @@ var ZoomBreadcrumb = ({
56006
56029
  if (eventName && band === "detail") {
56007
56030
  segments.push({ icon: "\u26A1", label: eventName });
56008
56031
  }
56009
- return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-xs text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
56032
+ return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-xs text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
56010
56033
  i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
56011
56034
  /* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
56012
56035
  /* @__PURE__ */ jsx("span", { children: seg.label })
@@ -56347,7 +56370,7 @@ var EventWireOverlay = ({
56347
56370
  containerW,
56348
56371
  containerH
56349
56372
  }) => {
56350
- const ids = React93__default.useMemo(() => {
56373
+ const ids = React94__default.useMemo(() => {
56351
56374
  avlOczWireId += 1;
56352
56375
  return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
56353
56376
  }, []);
@@ -56714,7 +56737,7 @@ var AvlOrbitalsCosmicZoom = ({
56714
56737
  borderRadius: 6,
56715
56738
  border: `1px solid ${color}`
56716
56739
  },
56717
- children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React93__default.Fragment, { children: [
56740
+ children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React94__default.Fragment, { children: [
56718
56741
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
56719
56742
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
56720
56743
  Box,