@almadar/ui 4.33.0 → 4.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/avl/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { OrbitControls as OrbitControls$1, Grid as Grid$1, Stars, Sparkles, Html, RoundedBox } from '@react-three/drei';
3
- import * as React119 from 'react';
4
- import React119__default, { createContext, useContext, useRef, useState, useCallback, useMemo, useEffect, Suspense, useLayoutEffect, useReducer, lazy, useId, forwardRef, useImperativeHandle, Component } from 'react';
3
+ import * as React118 from 'react';
4
+ import React118__default, { createContext, useContext, useRef, useState, useCallback, useMemo, useEffect, Suspense, useLayoutEffect, useReducer, lazy, useId, forwardRef, useImperativeHandle, Component } from 'react';
5
5
  import * as LucideIcons from 'lucide-react';
6
6
  import { Loader2, ChevronDown, X, Check, Copy, AlertTriangle, Info, AlertCircle, CheckCircle, List, Printer, ChevronRight, ChevronLeft, Code, FileText, WrapText, Trash2, Menu as Menu$1, Search, Bell, LogOut, ZoomOut, ZoomIn, Download, FileQuestion, Inbox, XCircle, Filter, Plus, Pause, Play, RotateCcw, Package, Calendar, Pencil, Eye, MoreHorizontal, Image as Image$1, Upload, Minus, ArrowLeft, HelpCircle, ChevronUp, Eraser, Star, TrendingUp, TrendingDown, ArrowUp, ArrowDown, MoreVertical, Sun, Moon, Circle, Clock, CheckCircle2, ArrowRight, FileWarning, SkipForward, Bug, Send, Wrench, User, Tag, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
7
7
  import { evaluate, createMinimalContext } from '@almadar/evaluator';
@@ -136,7 +136,7 @@ var init_types = __esm({
136
136
  }
137
137
  });
138
138
 
139
- // node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
139
+ // node_modules/clsx/dist/clsx.mjs
140
140
  function r(e) {
141
141
  var t, f, n = "";
142
142
  if ("string" == typeof e || "number" == typeof e) n += e;
@@ -151,11 +151,11 @@ function clsx() {
151
151
  return n;
152
152
  }
153
153
  var init_clsx = __esm({
154
- "node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs"() {
154
+ "node_modules/clsx/dist/clsx.mjs"() {
155
155
  }
156
156
  });
157
157
 
158
- // node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs
158
+ // node_modules/tailwind-merge/dist/bundle-mjs.mjs
159
159
  function twJoin() {
160
160
  let index = 0;
161
161
  let argument;
@@ -199,7 +199,7 @@ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
199
199
  }
200
200
  var CLASS_PART_SEPARATOR, createClassGroupUtils, getGroupRecursive, arbitraryPropertyRegex, getGroupIdForArbitraryProperty, createClassMap, processClassesRecursively, getPart, isThemeGetter, getPrefixedClassGroupEntries, createLruCache, IMPORTANT_MODIFIER, createParseClassName, sortModifiers, createConfigUtils, SPLIT_CLASSES_REGEX, mergeClassList, toValue, fromTheme, arbitraryValueRegex, fractionRegex, stringLengths, tshirtUnitRegex, lengthUnitRegex, colorFunctionRegex, shadowRegex, imageRegex, isLength, isArbitraryLength, isNumber, isArbitraryNumber, isInteger, isPercent, isArbitraryValue, isTshirtSize, sizeLabels, isArbitrarySize, isArbitraryPosition, imageLabels, isArbitraryImage, isArbitraryShadow, isAny, getIsArbitraryValue, isLengthOnly, isNever, isShadow, isImage, getDefaultConfig, twMerge;
201
201
  var init_bundle_mjs = __esm({
202
- "node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs"() {
202
+ "node_modules/tailwind-merge/dist/bundle-mjs.mjs"() {
203
203
  CLASS_PART_SEPARATOR = "-";
204
204
  createClassGroupUtils = (config) => {
205
205
  const classMap = createClassMap(config);
@@ -3336,7 +3336,7 @@ var init_Box = __esm({
3336
3336
  fixed: "fixed",
3337
3337
  sticky: "sticky"
3338
3338
  };
3339
- Box = React119__default.forwardRef(
3339
+ Box = React118__default.forwardRef(
3340
3340
  ({
3341
3341
  padding,
3342
3342
  paddingX,
@@ -5067,7 +5067,7 @@ function resolveIconProp(value, sizeClass) {
5067
5067
  const IconComp = value;
5068
5068
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
5069
5069
  }
5070
- if (React119__default.isValidElement(value)) {
5070
+ if (React118__default.isValidElement(value)) {
5071
5071
  return value;
5072
5072
  }
5073
5073
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -5143,7 +5143,7 @@ var init_Button = __esm({
5143
5143
  md: "h-4 w-4",
5144
5144
  lg: "h-5 w-5"
5145
5145
  };
5146
- Button = React119__default.forwardRef(
5146
+ Button = React118__default.forwardRef(
5147
5147
  ({
5148
5148
  className,
5149
5149
  variant = "primary",
@@ -5246,7 +5246,7 @@ var init_Badge = __esm({
5246
5246
  md: "px-2.5 py-1 text-sm",
5247
5247
  lg: "px-3 py-1.5 text-base"
5248
5248
  };
5249
- Badge = React119__default.forwardRef(
5249
+ Badge = React118__default.forwardRef(
5250
5250
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
5251
5251
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
5252
5252
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -5406,7 +5406,7 @@ var Input;
5406
5406
  var init_Input = __esm({
5407
5407
  "components/atoms/Input.tsx"() {
5408
5408
  init_cn();
5409
- Input = React119__default.forwardRef(
5409
+ Input = React118__default.forwardRef(
5410
5410
  ({
5411
5411
  className,
5412
5412
  inputType,
@@ -5524,7 +5524,7 @@ var Label;
5524
5524
  var init_Label = __esm({
5525
5525
  "components/atoms/Label.tsx"() {
5526
5526
  init_cn();
5527
- Label = React119__default.forwardRef(
5527
+ Label = React118__default.forwardRef(
5528
5528
  ({ className, required, children, ...props }, ref) => {
5529
5529
  return /* @__PURE__ */ jsxs(
5530
5530
  "label",
@@ -5550,7 +5550,7 @@ var Textarea;
5550
5550
  var init_Textarea = __esm({
5551
5551
  "components/atoms/Textarea.tsx"() {
5552
5552
  init_cn();
5553
- Textarea = React119__default.forwardRef(
5553
+ Textarea = React118__default.forwardRef(
5554
5554
  ({ className, error, ...props }, ref) => {
5555
5555
  return /* @__PURE__ */ jsx(
5556
5556
  "textarea",
@@ -5579,7 +5579,7 @@ var Select;
5579
5579
  var init_Select = __esm({
5580
5580
  "components/atoms/Select.tsx"() {
5581
5581
  init_cn();
5582
- Select = React119__default.forwardRef(
5582
+ Select = React118__default.forwardRef(
5583
5583
  ({ className, options, placeholder, error, ...props }, ref) => {
5584
5584
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
5585
5585
  /* @__PURE__ */ jsxs(
@@ -5621,7 +5621,7 @@ var Checkbox;
5621
5621
  var init_Checkbox = __esm({
5622
5622
  "components/atoms/Checkbox.tsx"() {
5623
5623
  init_cn();
5624
- Checkbox = React119__default.forwardRef(
5624
+ Checkbox = React118__default.forwardRef(
5625
5625
  ({ className, label, id, ...props }, ref) => {
5626
5626
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
5627
5627
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -5703,7 +5703,7 @@ var init_Card = __esm({
5703
5703
  md: "shadow",
5704
5704
  lg: "shadow-lg"
5705
5705
  };
5706
- Card = React119__default.forwardRef(
5706
+ Card = React118__default.forwardRef(
5707
5707
  ({
5708
5708
  className,
5709
5709
  variant = "bordered",
@@ -5739,9 +5739,9 @@ var init_Card = __esm({
5739
5739
  }
5740
5740
  );
5741
5741
  Card.displayName = "Card";
5742
- CardHeader = React119__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
5742
+ CardHeader = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
5743
5743
  CardHeader.displayName = "CardHeader";
5744
- CardTitle = React119__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5744
+ CardTitle = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5745
5745
  "h3",
5746
5746
  {
5747
5747
  ref,
@@ -5754,11 +5754,11 @@ var init_Card = __esm({
5754
5754
  }
5755
5755
  ));
5756
5756
  CardTitle.displayName = "CardTitle";
5757
- CardContent = React119__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
5757
+ CardContent = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
5758
5758
  CardContent.displayName = "CardContent";
5759
5759
  CardBody = CardContent;
5760
5760
  CardBody.displayName = "CardBody";
5761
- CardFooter = React119__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5761
+ CardFooter = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5762
5762
  "div",
5763
5763
  {
5764
5764
  ref,
@@ -5779,7 +5779,7 @@ var init_Spinner = __esm({
5779
5779
  md: "h-6 w-6",
5780
5780
  lg: "h-8 w-8"
5781
5781
  };
5782
- Spinner = React119__default.forwardRef(
5782
+ Spinner = React118__default.forwardRef(
5783
5783
  ({ className, size = "md", ...props }, ref) => {
5784
5784
  return /* @__PURE__ */ jsx(
5785
5785
  "div",
@@ -6227,7 +6227,7 @@ var Radio;
6227
6227
  var init_Radio = __esm({
6228
6228
  "components/atoms/Radio.tsx"() {
6229
6229
  init_cn();
6230
- Radio = React119__default.forwardRef(
6230
+ Radio = React118__default.forwardRef(
6231
6231
  ({
6232
6232
  label,
6233
6233
  helperText,
@@ -6338,7 +6338,7 @@ var init_Switch = __esm({
6338
6338
  "components/atoms/Switch.tsx"() {
6339
6339
  "use client";
6340
6340
  init_cn();
6341
- Switch = React119.forwardRef(
6341
+ Switch = React118.forwardRef(
6342
6342
  ({
6343
6343
  checked,
6344
6344
  defaultChecked = false,
@@ -6349,10 +6349,10 @@ var init_Switch = __esm({
6349
6349
  name,
6350
6350
  className
6351
6351
  }, ref) => {
6352
- const [isChecked, setIsChecked] = React119.useState(
6352
+ const [isChecked, setIsChecked] = React118.useState(
6353
6353
  checked !== void 0 ? checked : defaultChecked
6354
6354
  );
6355
- React119.useEffect(() => {
6355
+ React118.useEffect(() => {
6356
6356
  if (checked !== void 0) {
6357
6357
  setIsChecked(checked);
6358
6358
  }
@@ -6686,8 +6686,8 @@ var init_LawReferenceTooltip = __esm({
6686
6686
  position = "top",
6687
6687
  className
6688
6688
  }) => {
6689
- const [isVisible, setIsVisible] = React119__default.useState(false);
6690
- const timeoutRef = React119__default.useRef(null);
6689
+ const [isVisible, setIsVisible] = React118__default.useState(false);
6690
+ const timeoutRef = React118__default.useRef(null);
6691
6691
  const handleMouseEnter = () => {
6692
6692
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
6693
6693
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -6696,7 +6696,7 @@ var init_LawReferenceTooltip = __esm({
6696
6696
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
6697
6697
  setIsVisible(false);
6698
6698
  };
6699
- React119__default.useEffect(() => {
6699
+ React118__default.useEffect(() => {
6700
6700
  return () => {
6701
6701
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
6702
6702
  };
@@ -6906,7 +6906,7 @@ var init_StatusDot = __esm({
6906
6906
  md: "w-2.5 h-2.5",
6907
6907
  lg: "w-3 h-3"
6908
6908
  };
6909
- StatusDot = React119__default.forwardRef(
6909
+ StatusDot = React118__default.forwardRef(
6910
6910
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
6911
6911
  return /* @__PURE__ */ jsx(
6912
6912
  "span",
@@ -6959,7 +6959,7 @@ var init_TrendIndicator = __esm({
6959
6959
  down: TrendingDown,
6960
6960
  flat: ArrowRight
6961
6961
  };
6962
- TrendIndicator = React119__default.forwardRef(
6962
+ TrendIndicator = React118__default.forwardRef(
6963
6963
  ({
6964
6964
  className,
6965
6965
  value,
@@ -7026,7 +7026,7 @@ var init_RangeSlider = __esm({
7026
7026
  md: "w-4 h-4",
7027
7027
  lg: "w-5 h-5"
7028
7028
  };
7029
- RangeSlider = React119__default.forwardRef(
7029
+ RangeSlider = React118__default.forwardRef(
7030
7030
  ({
7031
7031
  className,
7032
7032
  min = 0,
@@ -7673,9 +7673,9 @@ function ScoreDisplay({
7673
7673
  ...rest
7674
7674
  }) {
7675
7675
  const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
7676
- const [displayValue, setDisplayValue] = React119.useState(resolvedValue);
7677
- const [isAnimating, setIsAnimating] = React119.useState(false);
7678
- React119.useEffect(() => {
7676
+ const [displayValue, setDisplayValue] = React118.useState(resolvedValue);
7677
+ const [isAnimating, setIsAnimating] = React118.useState(false);
7678
+ React118.useEffect(() => {
7679
7679
  if (!animated || displayValue === resolvedValue) {
7680
7680
  setDisplayValue(resolvedValue);
7681
7681
  return;
@@ -7745,9 +7745,9 @@ function ControlButton({
7745
7745
  className
7746
7746
  }) {
7747
7747
  const eventBus = useEventBus();
7748
- const [isPressed, setIsPressed] = React119.useState(false);
7748
+ const [isPressed, setIsPressed] = React118.useState(false);
7749
7749
  const actualPressed = pressed ?? isPressed;
7750
- const handlePointerDown = React119.useCallback(
7750
+ const handlePointerDown = React118.useCallback(
7751
7751
  (e) => {
7752
7752
  e.preventDefault();
7753
7753
  if (disabled) return;
@@ -7757,7 +7757,7 @@ function ControlButton({
7757
7757
  },
7758
7758
  [disabled, pressEvent, eventBus, onPress]
7759
7759
  );
7760
- const handlePointerUp = React119.useCallback(
7760
+ const handlePointerUp = React118.useCallback(
7761
7761
  (e) => {
7762
7762
  e.preventDefault();
7763
7763
  if (disabled) return;
@@ -7767,7 +7767,7 @@ function ControlButton({
7767
7767
  },
7768
7768
  [disabled, releaseEvent, eventBus, onRelease]
7769
7769
  );
7770
- const handlePointerLeave = React119.useCallback(
7770
+ const handlePointerLeave = React118.useCallback(
7771
7771
  (e) => {
7772
7772
  if (isPressed) {
7773
7773
  setIsPressed(false);
@@ -8665,9 +8665,9 @@ function MiniMap({
8665
8665
  viewportRect,
8666
8666
  className
8667
8667
  }) {
8668
- const canvasRef = React119.useRef(null);
8669
- const frameRef = React119.useRef(0);
8670
- React119.useEffect(() => {
8668
+ const canvasRef = React118.useRef(null);
8669
+ const frameRef = React118.useRef(0);
8670
+ React118.useEffect(() => {
8671
8671
  const canvas = canvasRef.current;
8672
8672
  if (!canvas) return;
8673
8673
  const ctx = canvas.getContext("2d");
@@ -8960,7 +8960,7 @@ var init_ErrorBoundary = __esm({
8960
8960
  "use client";
8961
8961
  init_cn();
8962
8962
  init_ErrorState();
8963
- ErrorBoundary = class extends React119__default.Component {
8963
+ ErrorBoundary = class extends React118__default.Component {
8964
8964
  constructor(props) {
8965
8965
  super(props);
8966
8966
  __publicField(this, "reset", () => {
@@ -9407,8 +9407,8 @@ var init_Tooltip = __esm({
9407
9407
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
9408
9408
  };
9409
9409
  }, []);
9410
- const triggerElement = React119__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
9411
- const trigger = React119__default.cloneElement(triggerElement, {
9410
+ const triggerElement = React118__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
9411
+ const trigger = React118__default.cloneElement(triggerElement, {
9412
9412
  ref: triggerRef,
9413
9413
  onMouseEnter: handleMouseEnter,
9414
9414
  onMouseLeave: handleMouseLeave,
@@ -9529,8 +9529,8 @@ var init_Popover = __esm({
9529
9529
  onMouseEnter: handleOpen,
9530
9530
  onMouseLeave: handleClose
9531
9531
  };
9532
- const childElement = React119__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
9533
- const triggerElement = React119__default.cloneElement(
9532
+ const childElement = React118__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
9533
+ const triggerElement = React118__default.cloneElement(
9534
9534
  childElement,
9535
9535
  {
9536
9536
  ref: triggerRef,
@@ -9647,8 +9647,8 @@ var init_Menu = __esm({
9647
9647
  "bottom-start": "top-full left-0 mt-2",
9648
9648
  "bottom-end": "top-full right-0 mt-2"
9649
9649
  };
9650
- const triggerChild = React119__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
9651
- const triggerElement = React119__default.cloneElement(
9650
+ const triggerChild = React118__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
9651
+ const triggerElement = React118__default.cloneElement(
9652
9652
  triggerChild,
9653
9653
  {
9654
9654
  ref: triggerRef,
@@ -10167,7 +10167,7 @@ var init_MapView = __esm({
10167
10167
  shadowSize: [41, 41]
10168
10168
  });
10169
10169
  L.Marker.prototype.options.icon = defaultIcon;
10170
- const { useEffect: useEffect81, useRef: useRef81, useCallback: useCallback105, useState: useState107 } = React119__default;
10170
+ const { useEffect: useEffect81, useRef: useRef81, useCallback: useCallback105, useState: useState107 } = React118__default;
10171
10171
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
10172
10172
  const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
10173
10173
  function MapUpdater({ centerLat, centerLng, zoom }) {
@@ -10398,7 +10398,7 @@ function InputPattern({
10398
10398
  fieldName
10399
10399
  }) {
10400
10400
  const { emit } = useEventBus();
10401
- const [localValue, setLocalValue] = React119__default.useState(value);
10401
+ const [localValue, setLocalValue] = React118__default.useState(value);
10402
10402
  const handleChange = (e) => {
10403
10403
  setLocalValue(e.target.value);
10404
10404
  if (onChange) {
@@ -10436,7 +10436,7 @@ function TextareaPattern({
10436
10436
  fieldName
10437
10437
  }) {
10438
10438
  const { emit } = useEventBus();
10439
- const [localValue, setLocalValue] = React119__default.useState(value);
10439
+ const [localValue, setLocalValue] = React118__default.useState(value);
10440
10440
  const handleChange = (e) => {
10441
10441
  setLocalValue(e.target.value);
10442
10442
  if (onChange) {
@@ -10468,7 +10468,7 @@ function SelectPattern({
10468
10468
  fieldName
10469
10469
  }) {
10470
10470
  const { emit } = useEventBus();
10471
- const [localValue, setLocalValue] = React119__default.useState(value);
10471
+ const [localValue, setLocalValue] = React118__default.useState(value);
10472
10472
  const handleChange = (e) => {
10473
10473
  setLocalValue(e.target.value);
10474
10474
  if (onChange) {
@@ -10497,7 +10497,7 @@ function CheckboxPattern({
10497
10497
  className
10498
10498
  }) {
10499
10499
  const { emit } = useEventBus();
10500
- const [localChecked, setLocalChecked] = React119__default.useState(checked);
10500
+ const [localChecked, setLocalChecked] = React118__default.useState(checked);
10501
10501
  const handleChange = (e) => {
10502
10502
  setLocalChecked(e.target.checked);
10503
10503
  if (onChange) {
@@ -10728,8 +10728,8 @@ function ActionButtons({
10728
10728
  disabled
10729
10729
  }) {
10730
10730
  const eventBus = useEventBus();
10731
- const [activeButtons, setActiveButtons] = React119.useState(/* @__PURE__ */ new Set());
10732
- const handlePress = React119.useCallback(
10731
+ const [activeButtons, setActiveButtons] = React118.useState(/* @__PURE__ */ new Set());
10732
+ const handlePress = React118.useCallback(
10733
10733
  (id) => {
10734
10734
  setActiveButtons((prev) => new Set(prev).add(id));
10735
10735
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -10737,7 +10737,7 @@ function ActionButtons({
10737
10737
  },
10738
10738
  [actionEvent, eventBus, onAction]
10739
10739
  );
10740
- const handleRelease = React119.useCallback(
10740
+ const handleRelease = React118.useCallback(
10741
10741
  (id) => {
10742
10742
  setActiveButtons((prev) => {
10743
10743
  const next = new Set(prev);
@@ -12792,9 +12792,9 @@ var init_ScaledDiagram = __esm({
12792
12792
  }
12793
12793
  });
12794
12794
 
12795
- // node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css
12795
+ // node_modules/katex/dist/katex.min.css
12796
12796
  var init_katex_min = __esm({
12797
- "node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css"() {
12797
+ "node_modules/katex/dist/katex.min.css"() {
12798
12798
  }
12799
12799
  });
12800
12800
  var MarkdownContent;
@@ -12804,7 +12804,7 @@ var init_MarkdownContent = __esm({
12804
12804
  init_Box();
12805
12805
  init_useTranslate();
12806
12806
  init_cn();
12807
- MarkdownContent = React119__default.memo(
12807
+ MarkdownContent = React118__default.memo(
12808
12808
  ({ content, direction, className }) => {
12809
12809
  const { t: _t } = useTranslate();
12810
12810
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -13021,7 +13021,7 @@ var init_CodeBlock = __esm({
13021
13021
  loloStyle = { ...dark, ...loloStyleOverrides };
13022
13022
  LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
13023
13023
  HIDDEN_LINE_NUMBERS = { display: "none" };
13024
- CodeBlock = React119__default.memo(
13024
+ CodeBlock = React118__default.memo(
13025
13025
  ({
13026
13026
  code: rawCode,
13027
13027
  language = "text",
@@ -14330,7 +14330,7 @@ var init_StateMachineView = __esm({
14330
14330
  style: { top: title ? 30 : 0 },
14331
14331
  children: [
14332
14332
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
14333
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React119__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
14333
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React118__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
14334
14334
  StateNode,
14335
14335
  {
14336
14336
  state,
@@ -20117,7 +20117,7 @@ function CraftingRecipe({
20117
20117
  className
20118
20118
  }) {
20119
20119
  const eventBus = useEventBus();
20120
- const handleCraft = React119.useCallback(() => {
20120
+ const handleCraft = React118.useCallback(() => {
20121
20121
  onCraft?.();
20122
20122
  if (craftEvent) {
20123
20123
  eventBus.emit(craftEvent, { output: output.label });
@@ -20134,7 +20134,7 @@ function CraftingRecipe({
20134
20134
  children: [
20135
20135
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
20136
20136
  const hasSufficient = ingredient.available >= ingredient.required;
20137
- return /* @__PURE__ */ jsxs(React119.Fragment, { children: [
20137
+ return /* @__PURE__ */ jsxs(React118.Fragment, { children: [
20138
20138
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
20139
20139
  ItemSlot,
20140
20140
  {
@@ -20428,8 +20428,8 @@ function DPad({
20428
20428
  }) {
20429
20429
  const eventBus = useEventBus();
20430
20430
  const sizes = sizeMap15[size];
20431
- const [activeDirections, setActiveDirections] = React119.useState(/* @__PURE__ */ new Set());
20432
- const handlePress = React119.useCallback(
20431
+ const [activeDirections, setActiveDirections] = React118.useState(/* @__PURE__ */ new Set());
20432
+ const handlePress = React118.useCallback(
20433
20433
  (direction) => {
20434
20434
  setActiveDirections((prev) => new Set(prev).add(direction));
20435
20435
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -20437,7 +20437,7 @@ function DPad({
20437
20437
  },
20438
20438
  [directionEvent, eventBus, onDirection]
20439
20439
  );
20440
- const handleRelease = React119.useCallback(
20440
+ const handleRelease = React118.useCallback(
20441
20441
  (direction) => {
20442
20442
  setActiveDirections((prev) => {
20443
20443
  const next = new Set(prev);
@@ -20569,19 +20569,6 @@ var init_useAuthContext = __esm({
20569
20569
  "hooks/useAuthContext.ts"() {
20570
20570
  }
20571
20571
  });
20572
- var CurrentPagePathContext, CurrentPagePathProvider, useCurrentPagePath;
20573
- var init_CurrentPagePathContext = __esm({
20574
- "context/CurrentPagePathContext.tsx"() {
20575
- "use client";
20576
- CurrentPagePathContext = createContext(void 0);
20577
- CurrentPagePathProvider = ({
20578
- value,
20579
- children
20580
- }) => /* @__PURE__ */ jsx(CurrentPagePathContext.Provider, { value, children });
20581
- CurrentPagePathProvider.displayName = "CurrentPagePathProvider";
20582
- useCurrentPagePath = () => useContext(CurrentPagePathContext);
20583
- }
20584
- });
20585
20572
  var DashboardLayout, NavLink;
20586
20573
  var init_DashboardLayout = __esm({
20587
20574
  "components/templates/DashboardLayout.tsx"() {
@@ -20595,7 +20582,6 @@ var init_DashboardLayout = __esm({
20595
20582
  init_useAuthContext();
20596
20583
  init_useEventBus();
20597
20584
  init_useTranslate();
20598
- init_CurrentPagePathContext();
20599
20585
  DashboardLayout = ({
20600
20586
  appName = "{{APP_TITLE}}",
20601
20587
  logo,
@@ -20612,7 +20598,6 @@ var init_DashboardLayout = __esm({
20612
20598
  showThemeToggle = true,
20613
20599
  sidebarFooter,
20614
20600
  onSignOut: onSignOutProp,
20615
- currentPath,
20616
20601
  children
20617
20602
  }) => {
20618
20603
  const eventBus = useEventBus();
@@ -20633,271 +20618,259 @@ var init_DashboardLayout = __esm({
20633
20618
  const [sidebarOpen, setSidebarOpen] = useState(false);
20634
20619
  const [userMenuOpen, setUserMenuOpen] = useState(false);
20635
20620
  const location = useLocation();
20636
- const ctxPagePath = useCurrentPagePath();
20637
- const activePath = currentPath ?? ctxPagePath ?? location.pathname;
20638
20621
  const { signOut: authSignOut } = useAuthContext();
20639
20622
  const user = userProp || (null);
20640
20623
  const { t } = useTranslate();
20641
20624
  const handleSignOut = onSignOutProp || authSignOut;
20642
- return /* @__PURE__ */ jsxs(
20643
- HStack,
20644
- {
20645
- gap: "none",
20646
- className: "min-h-screen w-full bg-background dark:bg-background items-stretch",
20647
- children: [
20648
- sidebarOpen && /* @__PURE__ */ jsx(
20649
- Box,
20650
- {
20651
- className: "fixed inset-0 bg-foreground/50 dark:bg-foreground/70 z-20 lg:hidden",
20652
- onClick: () => setSidebarOpen(false)
20653
- }
20625
+ return /* @__PURE__ */ jsxs(Box, { className: "min-h-screen bg-background dark:bg-background", children: [
20626
+ sidebarOpen && /* @__PURE__ */ jsx(
20627
+ Box,
20628
+ {
20629
+ className: "fixed inset-0 bg-foreground/50 dark:bg-foreground/70 z-20 lg:hidden",
20630
+ onClick: () => setSidebarOpen(false)
20631
+ }
20632
+ ),
20633
+ /* @__PURE__ */ jsxs(
20634
+ Box,
20635
+ {
20636
+ as: "aside",
20637
+ className: cn(
20638
+ "fixed inset-y-0 left-0 z-30 w-64 bg-card dark:bg-card border-r border-border dark:border-border",
20639
+ "transform transition-transform duration-200 ease-in-out lg:translate-x-0",
20640
+ sidebarOpen ? "translate-x-0" : "-translate-x-full"
20654
20641
  ),
20655
- /* @__PURE__ */ jsxs(
20656
- Box,
20657
- {
20658
- as: "aside",
20659
- className: cn(
20660
- "z-30 w-64 flex-shrink-0 bg-card dark:bg-card border-r border-border dark:border-border",
20661
- "fixed inset-y-0 left-0 lg:static lg:translate-x-0 lg:h-auto",
20662
- "transform transition-transform duration-200 ease-in-out",
20663
- "flex flex-col",
20664
- sidebarOpen ? "translate-x-0" : "-translate-x-full"
20665
- ),
20666
- children: [
20667
- /* @__PURE__ */ jsxs(
20668
- HStack,
20642
+ children: [
20643
+ /* @__PURE__ */ jsxs(
20644
+ HStack,
20645
+ {
20646
+ align: "center",
20647
+ justify: "between",
20648
+ className: "h-16 px-4 border-b border-border dark:border-border",
20649
+ children: [
20650
+ /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2", children: [
20651
+ logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
20652
+ Typography,
20653
+ {
20654
+ variant: "small",
20655
+ className: "text-white font-bold text-sm",
20656
+ as: "span",
20657
+ children: appName.charAt(0).toUpperCase()
20658
+ }
20659
+ ) }),
20660
+ /* @__PURE__ */ jsx(
20661
+ Typography,
20662
+ {
20663
+ variant: "label",
20664
+ className: "font-semibold text-foreground dark:text-foreground",
20665
+ as: "span",
20666
+ children: appName
20667
+ }
20668
+ )
20669
+ ] }),
20670
+ /* @__PURE__ */ jsx(
20671
+ Button,
20672
+ {
20673
+ variant: "ghost",
20674
+ className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
20675
+ onClick: () => setSidebarOpen(false),
20676
+ children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5" })
20677
+ }
20678
+ )
20679
+ ]
20680
+ }
20681
+ ),
20682
+ /* @__PURE__ */ jsx(
20683
+ VStack,
20684
+ {
20685
+ as: "nav",
20686
+ gap: "none",
20687
+ className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
20688
+ children: navItems.map((item) => /* @__PURE__ */ jsx(
20689
+ NavLink,
20669
20690
  {
20670
- align: "center",
20671
- justify: "between",
20672
- className: "h-16 px-4 border-b border-border dark:border-border",
20673
- children: [
20674
- /* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2", children: [
20675
- logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
20676
- Typography,
20677
- {
20678
- variant: "small",
20679
- className: "text-white font-bold text-sm",
20680
- as: "span",
20681
- children: appName.charAt(0).toUpperCase()
20682
- }
20683
- ) }),
20684
- /* @__PURE__ */ jsx(
20685
- Typography,
20686
- {
20687
- variant: "label",
20688
- className: "font-semibold text-foreground dark:text-foreground",
20689
- as: "span",
20690
- children: appName
20691
+ item,
20692
+ currentPath: location.pathname
20693
+ },
20694
+ item.href
20695
+ ))
20696
+ }
20697
+ ),
20698
+ sidebarFooter && /* @__PURE__ */ jsx(Box, { className: "p-4 border-t border-border dark:border-border", children: sidebarFooter })
20699
+ ]
20700
+ }
20701
+ ),
20702
+ /* @__PURE__ */ jsxs(Box, { className: "lg:pl-64", children: [
20703
+ /* @__PURE__ */ jsx(
20704
+ Box,
20705
+ {
20706
+ as: "header",
20707
+ className: "sticky top-0 z-20 h-16 bg-card dark:bg-card border-b border-border dark:border-border",
20708
+ children: /* @__PURE__ */ jsxs(
20709
+ HStack,
20710
+ {
20711
+ align: "center",
20712
+ justify: "between",
20713
+ className: "h-full px-4 gap-4",
20714
+ children: [
20715
+ /* @__PURE__ */ jsx(
20716
+ Button,
20717
+ {
20718
+ variant: "ghost",
20719
+ className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground touch-manipulation min-h-[44px] min-w-[44px] flex items-center justify-center",
20720
+ onClick: () => setSidebarOpen(true),
20721
+ "aria-label": "Open sidebar",
20722
+ children: /* @__PURE__ */ jsx(Menu$1, { className: "h-5 w-5" })
20723
+ }
20724
+ ),
20725
+ searchEnabled && /* @__PURE__ */ jsx(Box, { className: "hidden sm:block flex-1 max-w-md", children: /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
20726
+ /* @__PURE__ */ jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
20727
+ /* @__PURE__ */ jsx(
20728
+ Input,
20729
+ {
20730
+ type: "search",
20731
+ placeholder: t("common.search"),
20732
+ className: "pl-10 w-full",
20733
+ onKeyDown: (e) => {
20734
+ if (e.key === "Enter") {
20735
+ handleSearchSubmit(e.target.value);
20691
20736
  }
20692
- )
20693
- ] }),
20694
- /* @__PURE__ */ jsx(
20695
- Button,
20696
- {
20697
- variant: "ghost",
20698
- className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
20699
- onClick: () => setSidebarOpen(false),
20700
- children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5" })
20701
20737
  }
20702
- )
20703
- ]
20704
- }
20705
- ),
20706
- /* @__PURE__ */ jsx(
20707
- VStack,
20708
- {
20709
- as: "nav",
20710
- gap: "none",
20711
- className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
20712
- children: navItems.map((item) => /* @__PURE__ */ jsx(
20713
- NavLink,
20738
+ }
20739
+ )
20740
+ ] }) }),
20741
+ /* @__PURE__ */ jsxs(HStack, { align: "center", gap: "xs", children: [
20742
+ headerActions,
20743
+ showThemeToggle && /* @__PURE__ */ jsx(ThemeToggle, {}),
20744
+ topBarActions.map((action, idx) => /* @__PURE__ */ jsxs(
20745
+ Button,
20714
20746
  {
20715
- item,
20716
- currentPath: activePath
20747
+ variant: "ghost",
20748
+ className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
20749
+ onClick: () => handleTopBarActionClick(action.event),
20750
+ "aria-label": action.label ?? action.icon,
20751
+ children: [
20752
+ /* @__PURE__ */ jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
20753
+ action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsx(
20754
+ Box,
20755
+ {
20756
+ as: "span",
20757
+ className: cn(
20758
+ "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
20759
+ action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
20760
+ ),
20761
+ children: action.badge
20762
+ }
20763
+ )
20764
+ ]
20717
20765
  },
20718
- item.href
20719
- ))
20720
- }
20721
- ),
20722
- sidebarFooter && /* @__PURE__ */ jsx(Box, { className: "p-4 border-t border-border dark:border-border", children: sidebarFooter })
20723
- ]
20724
- }
20725
- ),
20726
- /* @__PURE__ */ jsxs(VStack, { gap: "none", className: "flex-1 min-w-0 min-h-screen", children: [
20727
- /* @__PURE__ */ jsx(
20728
- Box,
20729
- {
20730
- as: "header",
20731
- className: "sticky top-0 z-20 h-16 bg-card dark:bg-card border-b border-border dark:border-border",
20732
- children: /* @__PURE__ */ jsxs(
20733
- HStack,
20734
- {
20735
- align: "center",
20736
- justify: "between",
20737
- className: "h-full px-3 sm:px-4 gap-2 sm:gap-4",
20738
- children: [
20739
- /* @__PURE__ */ jsx(
20766
+ `${action.event}-${idx}`
20767
+ )),
20768
+ notificationsEnabled && /* @__PURE__ */ jsxs(
20769
+ Button,
20770
+ {
20771
+ variant: "ghost",
20772
+ className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
20773
+ onClick: handleNotificationClick,
20774
+ "aria-label": t("common.notifications"),
20775
+ children: [
20776
+ /* @__PURE__ */ jsx(Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
20777
+ unreadCount > 0 && /* @__PURE__ */ jsx(
20778
+ Box,
20779
+ {
20780
+ as: "span",
20781
+ className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
20782
+ children: unreadCount > 99 ? "99+" : unreadCount
20783
+ }
20784
+ )
20785
+ ]
20786
+ }
20787
+ ),
20788
+ user && /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
20789
+ /* @__PURE__ */ jsxs(
20740
20790
  Button,
20741
20791
  {
20742
20792
  variant: "ghost",
20743
- className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground touch-manipulation min-h-[44px] min-w-[44px] flex items-center justify-center",
20744
- onClick: () => setSidebarOpen(true),
20745
- "aria-label": "Open sidebar",
20746
- children: /* @__PURE__ */ jsx(Menu$1, { className: "h-5 w-5" })
20793
+ className: "flex items-center gap-2 p-2 rounded-lg hover:bg-muted dark:hover:bg-muted",
20794
+ onClick: () => setUserMenuOpen(!userMenuOpen),
20795
+ children: [
20796
+ /* @__PURE__ */ jsx(
20797
+ Avatar,
20798
+ {
20799
+ src: user.avatar,
20800
+ alt: user.name,
20801
+ initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
20802
+ size: "sm"
20803
+ }
20804
+ ),
20805
+ /* @__PURE__ */ jsx(
20806
+ Typography,
20807
+ {
20808
+ variant: "small",
20809
+ className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
20810
+ as: "span",
20811
+ children: user.name
20812
+ }
20813
+ ),
20814
+ /* @__PURE__ */ jsx(ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
20815
+ ]
20747
20816
  }
20748
20817
  ),
20749
- searchEnabled && /* @__PURE__ */ jsx(Box, { className: "hidden sm:block flex-1 min-w-0 xl:max-w-md", children: /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
20750
- /* @__PURE__ */ jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
20818
+ userMenuOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
20751
20819
  /* @__PURE__ */ jsx(
20752
- Input,
20753
- {
20754
- type: "search",
20755
- placeholder: t("common.search"),
20756
- className: "pl-10 w-full",
20757
- onKeyDown: (e) => {
20758
- if (e.key === "Enter") {
20759
- handleSearchSubmit(e.target.value);
20760
- }
20761
- }
20762
- }
20763
- )
20764
- ] }) }),
20765
- !searchEnabled && /* @__PURE__ */ jsx(Box, { className: "flex-1" }),
20766
- /* @__PURE__ */ jsxs(HStack, { align: "center", gap: "xs", children: [
20767
- headerActions,
20768
- showThemeToggle && /* @__PURE__ */ jsx(ThemeToggle, {}),
20769
- topBarActions.map((action, idx) => /* @__PURE__ */ jsxs(
20770
- Button,
20771
- {
20772
- variant: "ghost",
20773
- className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
20774
- onClick: () => handleTopBarActionClick(action.event),
20775
- "aria-label": action.label ?? action.icon,
20776
- children: [
20777
- /* @__PURE__ */ jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
20778
- action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsx(
20779
- Box,
20780
- {
20781
- as: "span",
20782
- className: cn(
20783
- "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
20784
- action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
20785
- ),
20786
- children: action.badge
20787
- }
20788
- )
20789
- ]
20790
- },
20791
- `${action.event}-${idx}`
20792
- )),
20793
- notificationsEnabled && /* @__PURE__ */ jsxs(
20794
- Button,
20820
+ Box,
20795
20821
  {
20796
- variant: "ghost",
20797
- className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
20798
- onClick: handleNotificationClick,
20799
- "aria-label": t("common.notifications"),
20800
- children: [
20801
- /* @__PURE__ */ jsx(Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
20802
- unreadCount > 0 && /* @__PURE__ */ jsx(
20803
- Box,
20804
- {
20805
- as: "span",
20806
- className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
20807
- children: unreadCount > 99 ? "99+" : unreadCount
20808
- }
20809
- )
20810
- ]
20822
+ className: "fixed inset-0 z-20",
20823
+ onClick: () => setUserMenuOpen(false)
20811
20824
  }
20812
20825
  ),
20813
- user && /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
20826
+ /* @__PURE__ */ jsxs(Box, { className: "absolute right-0 mt-2 w-48 bg-card dark:bg-card rounded-lg shadow-lg border border-border dark:border-border py-1 z-30", children: [
20827
+ /* @__PURE__ */ jsxs(Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
20828
+ /* @__PURE__ */ jsx(
20829
+ Typography,
20830
+ {
20831
+ variant: "small",
20832
+ className: "text-sm font-medium text-foreground dark:text-foreground",
20833
+ as: "p",
20834
+ children: user.name
20835
+ }
20836
+ ),
20837
+ /* @__PURE__ */ jsx(
20838
+ Typography,
20839
+ {
20840
+ variant: "caption",
20841
+ className: "text-xs text-muted-foreground dark:text-muted-foreground",
20842
+ as: "p",
20843
+ children: user.email
20844
+ }
20845
+ )
20846
+ ] }),
20814
20847
  /* @__PURE__ */ jsxs(
20815
20848
  Button,
20816
20849
  {
20817
20850
  variant: "ghost",
20818
- className: "flex items-center gap-2 p-2 rounded-lg hover:bg-muted dark:hover:bg-muted",
20819
- onClick: () => setUserMenuOpen(!userMenuOpen),
20851
+ onClick: () => {
20852
+ setUserMenuOpen(false);
20853
+ handleSignOut?.();
20854
+ },
20855
+ className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
20820
20856
  children: [
20821
- /* @__PURE__ */ jsx(
20822
- Avatar,
20823
- {
20824
- src: user.avatar,
20825
- alt: user.name,
20826
- initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
20827
- size: "sm"
20828
- }
20829
- ),
20830
- /* @__PURE__ */ jsx(
20831
- Typography,
20832
- {
20833
- variant: "small",
20834
- className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
20835
- as: "span",
20836
- children: user.name
20837
- }
20838
- ),
20839
- /* @__PURE__ */ jsx(ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
20857
+ /* @__PURE__ */ jsx(LogOut, { className: "h-4 w-4" }),
20858
+ t("auth.signOut")
20840
20859
  ]
20841
20860
  }
20842
- ),
20843
- userMenuOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
20844
- /* @__PURE__ */ jsx(
20845
- Box,
20846
- {
20847
- className: "fixed inset-0 z-20",
20848
- onClick: () => setUserMenuOpen(false)
20849
- }
20850
- ),
20851
- /* @__PURE__ */ jsxs(Box, { className: "absolute right-0 mt-2 w-48 bg-card dark:bg-card rounded-lg shadow-lg border border-border dark:border-border py-1 z-30", children: [
20852
- /* @__PURE__ */ jsxs(Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
20853
- /* @__PURE__ */ jsx(
20854
- Typography,
20855
- {
20856
- variant: "small",
20857
- className: "text-sm font-medium text-foreground dark:text-foreground",
20858
- as: "p",
20859
- children: user.name
20860
- }
20861
- ),
20862
- /* @__PURE__ */ jsx(
20863
- Typography,
20864
- {
20865
- variant: "caption",
20866
- className: "text-xs text-muted-foreground dark:text-muted-foreground",
20867
- as: "p",
20868
- children: user.email
20869
- }
20870
- )
20871
- ] }),
20872
- /* @__PURE__ */ jsxs(
20873
- Button,
20874
- {
20875
- variant: "ghost",
20876
- onClick: () => {
20877
- setUserMenuOpen(false);
20878
- handleSignOut?.();
20879
- },
20880
- className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
20881
- children: [
20882
- /* @__PURE__ */ jsx(LogOut, { className: "h-4 w-4" }),
20883
- t("auth.signOut")
20884
- ]
20885
- }
20886
- )
20887
- ] })
20888
- ] })
20861
+ )
20889
20862
  ] })
20890
20863
  ] })
20891
- ]
20892
- }
20893
- )
20864
+ ] })
20865
+ ] })
20866
+ ]
20894
20867
  }
20895
- ),
20896
- /* @__PURE__ */ jsx(Box, { as: "main", className: "flex-1 p-3 sm:p-4 md:p-6", children })
20897
- ] })
20898
- ]
20899
- }
20900
- );
20868
+ )
20869
+ }
20870
+ ),
20871
+ /* @__PURE__ */ jsx(Box, { as: "main", className: "p-4 sm:p-6", children })
20872
+ ] })
20873
+ ] });
20901
20874
  };
20902
20875
  DashboardLayout.displayName = "DashboardLayout";
20903
20876
  NavLink = ({
@@ -21391,13 +21364,13 @@ function DataList({
21391
21364
  }) {
21392
21365
  const eventBus = useEventBus();
21393
21366
  const { t } = useTranslate();
21394
- const [visibleCount, setVisibleCount] = React119__default.useState(pageSize || Infinity);
21367
+ const [visibleCount, setVisibleCount] = React118__default.useState(pageSize || Infinity);
21395
21368
  const fieldDefs = fields ?? columns ?? [];
21396
21369
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
21397
21370
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
21398
21371
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
21399
21372
  const hasRenderProp = typeof children === "function";
21400
- React119__default.useEffect(() => {
21373
+ React118__default.useEffect(() => {
21401
21374
  const renderItemTypeOf = typeof schemaRenderItem;
21402
21375
  const childrenTypeOf = typeof children;
21403
21376
  if (data.length > 0 && !hasRenderProp) {
@@ -21453,7 +21426,7 @@ function DataList({
21453
21426
  const items2 = data.map((item) => item);
21454
21427
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
21455
21428
  const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
21456
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
21429
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
21457
21430
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
21458
21431
  group.items.map((itemData, index) => {
21459
21432
  const id = itemData.id || `${gi}-${index}`;
@@ -21644,7 +21617,7 @@ function DataList({
21644
21617
  className
21645
21618
  ),
21646
21619
  children: [
21647
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
21620
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
21648
21621
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
21649
21622
  group.items.map(
21650
21623
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -22791,7 +22764,7 @@ var init_WizardProgress = __esm({
22791
22764
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
22792
22765
  const isActive = index === currentStep;
22793
22766
  const isCompleted = index < currentStep;
22794
- return /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
22767
+ return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
22795
22768
  /* @__PURE__ */ jsx(
22796
22769
  "button",
22797
22770
  {
@@ -23702,7 +23675,7 @@ function InventoryGrid({
23702
23675
  const eventBus = useEventBus();
23703
23676
  const slotCount = totalSlots ?? items.length;
23704
23677
  const emptySlotCount = Math.max(0, slotCount - items.length);
23705
- const handleSelect = React119.useCallback(
23678
+ const handleSelect = React118.useCallback(
23706
23679
  (id) => {
23707
23680
  onSelect?.(id);
23708
23681
  if (selectEvent) {
@@ -23915,15 +23888,15 @@ function GameCanvas2D({
23915
23888
  fps = 60,
23916
23889
  className
23917
23890
  }) {
23918
- const canvasRef = React119.useRef(null);
23919
- const rafRef = React119.useRef(0);
23920
- const frameRef = React119.useRef(0);
23921
- const lastTimeRef = React119.useRef(0);
23922
- const onDrawRef = React119.useRef(onDraw);
23891
+ const canvasRef = React118.useRef(null);
23892
+ const rafRef = React118.useRef(0);
23893
+ const frameRef = React118.useRef(0);
23894
+ const lastTimeRef = React118.useRef(0);
23895
+ const onDrawRef = React118.useRef(onDraw);
23923
23896
  onDrawRef.current = onDraw;
23924
- const onTickRef = React119.useRef(onTick);
23897
+ const onTickRef = React118.useRef(onTick);
23925
23898
  onTickRef.current = onTick;
23926
- React119.useEffect(() => {
23899
+ React118.useEffect(() => {
23927
23900
  const canvas = canvasRef.current;
23928
23901
  if (!canvas) return;
23929
23902
  const ctx = canvas.getContext("2d");
@@ -24212,7 +24185,7 @@ function TurnPanel({
24212
24185
  className
24213
24186
  }) {
24214
24187
  const eventBus = useEventBus();
24215
- const handleAction = React119.useCallback(
24188
+ const handleAction = React118.useCallback(
24216
24189
  (event) => {
24217
24190
  if (event) {
24218
24191
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -24358,7 +24331,7 @@ function UnitCommandBar({
24358
24331
  className
24359
24332
  }) {
24360
24333
  const eventBus = useEventBus();
24361
- const handleCommand = React119.useCallback(
24334
+ const handleCommand = React118.useCallback(
24362
24335
  (event) => {
24363
24336
  if (event) {
24364
24337
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -24843,7 +24816,7 @@ function GameMenu({
24843
24816
  } catch {
24844
24817
  }
24845
24818
  const eventBus = eventBusProp || eventBusFromHook;
24846
- const handleOptionClick = React119.useCallback(
24819
+ const handleOptionClick = React118.useCallback(
24847
24820
  (option) => {
24848
24821
  if (option.event && eventBus) {
24849
24822
  eventBus.emit(`UI:${option.event}`, { option });
@@ -24957,7 +24930,7 @@ function GameOverScreen({
24957
24930
  } catch {
24958
24931
  }
24959
24932
  const eventBus = eventBusProp || eventBusFromHook;
24960
- const handleActionClick = React119.useCallback(
24933
+ const handleActionClick = React118.useCallback(
24961
24934
  (action) => {
24962
24935
  if (action.event && eventBus) {
24963
24936
  eventBus.emit(`UI:${action.event}`, { action });
@@ -28446,7 +28419,7 @@ var init_DocumentViewer = __esm({
28446
28419
  }
28447
28420
  });
28448
28421
  function extractTitle(children) {
28449
- if (!React119__default.isValidElement(children)) return void 0;
28422
+ if (!React118__default.isValidElement(children)) return void 0;
28450
28423
  const props = children.props;
28451
28424
  if (typeof props.title === "string") {
28452
28425
  return props.title;
@@ -28501,7 +28474,7 @@ function LinearView({
28501
28474
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
28502
28475
  const isDone = i < currentIdx;
28503
28476
  const isCurrent = i === currentIdx;
28504
- return /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
28477
+ return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
28505
28478
  i > 0 && /* @__PURE__ */ jsx(
28506
28479
  Typography,
28507
28480
  {
@@ -29285,12 +29258,12 @@ var init_Form = __esm({
29285
29258
  const isSchemaEntity = isOrbitalEntitySchema(entity);
29286
29259
  const resolvedEntity = isSchemaEntity ? entity : void 0;
29287
29260
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
29288
- const normalizedInitialData = React119__default.useMemo(() => {
29261
+ const normalizedInitialData = React118__default.useMemo(() => {
29289
29262
  const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
29290
29263
  const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
29291
29264
  return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
29292
29265
  }, [entity, initialData]);
29293
- const entityDerivedFields = React119__default.useMemo(() => {
29266
+ const entityDerivedFields = React118__default.useMemo(() => {
29294
29267
  if (fields && fields.length > 0) return void 0;
29295
29268
  if (!resolvedEntity) return void 0;
29296
29269
  return resolvedEntity.fields.map(
@@ -29309,16 +29282,16 @@ var init_Form = __esm({
29309
29282
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
29310
29283
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
29311
29284
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
29312
- const [formData, setFormData] = React119__default.useState(
29285
+ const [formData, setFormData] = React118__default.useState(
29313
29286
  normalizedInitialData
29314
29287
  );
29315
- const [collapsedSections, setCollapsedSections] = React119__default.useState(
29288
+ const [collapsedSections, setCollapsedSections] = React118__default.useState(
29316
29289
  /* @__PURE__ */ new Set()
29317
29290
  );
29318
- const [submitError, setSubmitError] = React119__default.useState(null);
29319
- const formRef = React119__default.useRef(null);
29291
+ const [submitError, setSubmitError] = React118__default.useState(null);
29292
+ const formRef = React118__default.useRef(null);
29320
29293
  const formMode = props.mode;
29321
- const mountedRef = React119__default.useRef(false);
29294
+ const mountedRef = React118__default.useRef(false);
29322
29295
  if (!mountedRef.current) {
29323
29296
  mountedRef.current = true;
29324
29297
  debug("forms", "mount", {
@@ -29331,7 +29304,7 @@ var init_Form = __esm({
29331
29304
  });
29332
29305
  }
29333
29306
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
29334
- const evalContext = React119__default.useMemo(
29307
+ const evalContext = React118__default.useMemo(
29335
29308
  () => ({
29336
29309
  formValues: formData,
29337
29310
  globalVariables: externalContext?.globalVariables ?? {},
@@ -29340,7 +29313,7 @@ var init_Form = __esm({
29340
29313
  }),
29341
29314
  [formData, externalContext]
29342
29315
  );
29343
- React119__default.useEffect(() => {
29316
+ React118__default.useEffect(() => {
29344
29317
  debug("forms", "initialData-sync", {
29345
29318
  mode: formMode,
29346
29319
  normalizedInitialData,
@@ -29351,7 +29324,7 @@ var init_Form = __esm({
29351
29324
  setFormData(normalizedInitialData);
29352
29325
  }
29353
29326
  }, [normalizedInitialData]);
29354
- const processCalculations = React119__default.useCallback(
29327
+ const processCalculations = React118__default.useCallback(
29355
29328
  (changedFieldId, newFormData) => {
29356
29329
  if (!hiddenCalculations.length) return;
29357
29330
  const context = {
@@ -29376,7 +29349,7 @@ var init_Form = __esm({
29376
29349
  },
29377
29350
  [hiddenCalculations, externalContext, eventBus]
29378
29351
  );
29379
- const checkViolations = React119__default.useCallback(
29352
+ const checkViolations = React118__default.useCallback(
29380
29353
  (changedFieldId, newFormData) => {
29381
29354
  if (!violationTriggers.length) return;
29382
29355
  const context = {
@@ -29414,7 +29387,7 @@ var init_Form = __esm({
29414
29387
  processCalculations(name, newFormData);
29415
29388
  checkViolations(name, newFormData);
29416
29389
  };
29417
- const isFieldVisible = React119__default.useCallback(
29390
+ const isFieldVisible = React118__default.useCallback(
29418
29391
  (fieldName) => {
29419
29392
  const condition = conditionalFields[fieldName];
29420
29393
  if (!condition) return true;
@@ -29422,7 +29395,7 @@ var init_Form = __esm({
29422
29395
  },
29423
29396
  [conditionalFields, evalContext]
29424
29397
  );
29425
- const isSectionVisible = React119__default.useCallback(
29398
+ const isSectionVisible = React118__default.useCallback(
29426
29399
  (section) => {
29427
29400
  if (!section.condition) return true;
29428
29401
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -29498,7 +29471,7 @@ var init_Form = __esm({
29498
29471
  eventBus.emit(`UI:${onCancel}`);
29499
29472
  }
29500
29473
  };
29501
- const renderField = React119__default.useCallback(
29474
+ const renderField = React118__default.useCallback(
29502
29475
  (field) => {
29503
29476
  const fieldName = field.name || field.field;
29504
29477
  if (!fieldName) return null;
@@ -29519,7 +29492,7 @@ var init_Form = __esm({
29519
29492
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
29520
29493
  );
29521
29494
  const effectiveFields = entityDerivedFields ?? fields;
29522
- const normalizedFields = React119__default.useMemo(() => {
29495
+ const normalizedFields = React118__default.useMemo(() => {
29523
29496
  if (!effectiveFields || effectiveFields.length === 0) return [];
29524
29497
  return effectiveFields.map((field) => {
29525
29498
  if (typeof field === "string") {
@@ -29541,7 +29514,7 @@ var init_Form = __esm({
29541
29514
  return field;
29542
29515
  });
29543
29516
  }, [effectiveFields, resolvedEntity]);
29544
- const schemaFields = React119__default.useMemo(() => {
29517
+ const schemaFields = React118__default.useMemo(() => {
29545
29518
  if (normalizedFields.length === 0) return null;
29546
29519
  if (isDebugEnabled()) {
29547
29520
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -29551,7 +29524,7 @@ var init_Form = __esm({
29551
29524
  }
29552
29525
  return normalizedFields.map(renderField).filter(Boolean);
29553
29526
  }, [normalizedFields, renderField, entityName, conditionalFields]);
29554
- const sectionElements = React119__default.useMemo(() => {
29527
+ const sectionElements = React118__default.useMemo(() => {
29555
29528
  if (!sections || sections.length === 0) return null;
29556
29529
  return sections.map((section) => {
29557
29530
  if (!isSectionVisible(section)) {
@@ -31083,7 +31056,7 @@ var init_List = __esm({
31083
31056
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
31084
31057
  return [];
31085
31058
  }, [entity]);
31086
- const getItemActions = React119__default.useCallback(
31059
+ const getItemActions = React118__default.useCallback(
31087
31060
  (item) => {
31088
31061
  if (!itemActions) return [];
31089
31062
  if (typeof itemActions === "function") {
@@ -31520,7 +31493,7 @@ var init_MediaGallery = __esm({
31520
31493
  [selectable, selectedItems, selectionEvent, eventBus]
31521
31494
  );
31522
31495
  const entityData = Array.isArray(entity) ? entity : [];
31523
- const items = React119__default.useMemo(() => {
31496
+ const items = React118__default.useMemo(() => {
31524
31497
  if (propItems) return propItems;
31525
31498
  if (entityData.length === 0) return [];
31526
31499
  return entityData.map((record, idx) => ({
@@ -31684,7 +31657,7 @@ var init_MediaGallery = __esm({
31684
31657
  }
31685
31658
  });
31686
31659
  function extractTitle2(children) {
31687
- if (!React119__default.isValidElement(children)) return void 0;
31660
+ if (!React118__default.isValidElement(children)) return void 0;
31688
31661
  const props = children.props;
31689
31662
  if (typeof props.title === "string") {
31690
31663
  return props.title;
@@ -32397,7 +32370,7 @@ var init_PageHeader = __esm({
32397
32370
  info: "bg-info/10 text-info"
32398
32371
  };
32399
32372
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
32400
- 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(React119__default.Fragment, { children: [
32373
+ 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(React118__default.Fragment, { children: [
32401
32374
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
32402
32375
  crumb.href ? /* @__PURE__ */ jsx(
32403
32376
  "a",
@@ -32590,7 +32563,7 @@ var init_debugRegistry = __esm({
32590
32563
  }
32591
32564
  });
32592
32565
  function useDebugData() {
32593
- const [data, setData] = React119.useState(() => ({
32566
+ const [data, setData] = React118.useState(() => ({
32594
32567
  traits: [],
32595
32568
  ticks: [],
32596
32569
  guards: [],
@@ -32604,7 +32577,7 @@ function useDebugData() {
32604
32577
  },
32605
32578
  lastUpdate: Date.now()
32606
32579
  }));
32607
- React119.useEffect(() => {
32580
+ React118.useEffect(() => {
32608
32581
  const updateData = () => {
32609
32582
  setData({
32610
32583
  traits: getAllTraits(),
@@ -32713,12 +32686,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
32713
32686
  return positions;
32714
32687
  }
32715
32688
  function WalkMinimap() {
32716
- const [walkStep, setWalkStep] = React119.useState(null);
32717
- const [traits2, setTraits] = React119.useState([]);
32718
- const [coveredEdges, setCoveredEdges] = React119.useState([]);
32719
- const [completedTraits, setCompletedTraits] = React119.useState(/* @__PURE__ */ new Set());
32720
- const prevTraitRef = React119.useRef(null);
32721
- React119.useEffect(() => {
32689
+ const [walkStep, setWalkStep] = React118.useState(null);
32690
+ const [traits2, setTraits] = React118.useState([]);
32691
+ const [coveredEdges, setCoveredEdges] = React118.useState([]);
32692
+ const [completedTraits, setCompletedTraits] = React118.useState(/* @__PURE__ */ new Set());
32693
+ const prevTraitRef = React118.useRef(null);
32694
+ React118.useEffect(() => {
32722
32695
  const interval = setInterval(() => {
32723
32696
  const w = window;
32724
32697
  const step = w.__orbitalWalkStep;
@@ -33165,15 +33138,15 @@ var init_EntitiesTab = __esm({
33165
33138
  }
33166
33139
  });
33167
33140
  function EventFlowTab({ events: events2 }) {
33168
- const [filter, setFilter] = React119.useState("all");
33169
- const containerRef = React119.useRef(null);
33170
- const [autoScroll, setAutoScroll] = React119.useState(true);
33171
- React119.useEffect(() => {
33141
+ const [filter, setFilter] = React118.useState("all");
33142
+ const containerRef = React118.useRef(null);
33143
+ const [autoScroll, setAutoScroll] = React118.useState(true);
33144
+ React118.useEffect(() => {
33172
33145
  if (autoScroll && containerRef.current) {
33173
33146
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
33174
33147
  }
33175
33148
  }, [events2.length, autoScroll]);
33176
- const filteredEvents = React119.useMemo(() => {
33149
+ const filteredEvents = React118.useMemo(() => {
33177
33150
  if (filter === "all") return events2;
33178
33151
  return events2.filter((e) => e.type === filter);
33179
33152
  }, [events2, filter]);
@@ -33292,7 +33265,7 @@ var init_EventFlowTab = __esm({
33292
33265
  }
33293
33266
  });
33294
33267
  function GuardsPanel({ guards }) {
33295
- const [filter, setFilter] = React119.useState("all");
33268
+ const [filter, setFilter] = React118.useState("all");
33296
33269
  if (guards.length === 0) {
33297
33270
  return /* @__PURE__ */ jsx(
33298
33271
  EmptyState,
@@ -33305,7 +33278,7 @@ function GuardsPanel({ guards }) {
33305
33278
  }
33306
33279
  const passedCount = guards.filter((g) => g.result).length;
33307
33280
  const failedCount = guards.length - passedCount;
33308
- const filteredGuards = React119.useMemo(() => {
33281
+ const filteredGuards = React118.useMemo(() => {
33309
33282
  if (filter === "all") return guards;
33310
33283
  if (filter === "passed") return guards.filter((g) => g.result);
33311
33284
  return guards.filter((g) => !g.result);
@@ -33466,10 +33439,10 @@ function EffectBadge({ effect }) {
33466
33439
  ] });
33467
33440
  }
33468
33441
  function TransitionTimeline({ transitions }) {
33469
- const containerRef = React119.useRef(null);
33470
- const [autoScroll, setAutoScroll] = React119.useState(true);
33471
- const [expandedId, setExpandedId] = React119.useState(null);
33472
- React119.useEffect(() => {
33442
+ const containerRef = React118.useRef(null);
33443
+ const [autoScroll, setAutoScroll] = React118.useState(true);
33444
+ const [expandedId, setExpandedId] = React118.useState(null);
33445
+ React118.useEffect(() => {
33473
33446
  if (autoScroll && containerRef.current) {
33474
33447
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
33475
33448
  }
@@ -33755,9 +33728,9 @@ function getAllEvents(traits2) {
33755
33728
  }
33756
33729
  function EventDispatcherTab({ traits: traits2, schema }) {
33757
33730
  const eventBus = useEventBus();
33758
- const [log4, setLog] = React119.useState([]);
33759
- const prevStatesRef = React119.useRef(/* @__PURE__ */ new Map());
33760
- React119.useEffect(() => {
33731
+ const [log4, setLog] = React118.useState([]);
33732
+ const prevStatesRef = React118.useRef(/* @__PURE__ */ new Map());
33733
+ React118.useEffect(() => {
33761
33734
  for (const trait of traits2) {
33762
33735
  const prev = prevStatesRef.current.get(trait.id);
33763
33736
  if (prev && prev !== trait.currentState) {
@@ -33927,10 +33900,10 @@ function VerifyModePanel({
33927
33900
  serverCount,
33928
33901
  localCount
33929
33902
  }) {
33930
- const [expanded, setExpanded] = React119.useState(true);
33931
- const scrollRef = React119.useRef(null);
33932
- const prevCountRef = React119.useRef(0);
33933
- React119.useEffect(() => {
33903
+ const [expanded, setExpanded] = React118.useState(true);
33904
+ const scrollRef = React118.useRef(null);
33905
+ const prevCountRef = React118.useRef(0);
33906
+ React118.useEffect(() => {
33934
33907
  if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
33935
33908
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
33936
33909
  }
@@ -33996,10 +33969,10 @@ function RuntimeDebugger({
33996
33969
  defaultTab,
33997
33970
  schema
33998
33971
  }) {
33999
- const [isCollapsed, setIsCollapsed] = React119.useState(mode === "verify" ? true : defaultCollapsed);
34000
- const [isVisible, setIsVisible] = React119.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
33972
+ const [isCollapsed, setIsCollapsed] = React118.useState(mode === "verify" ? true : defaultCollapsed);
33973
+ const [isVisible, setIsVisible] = React118.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
34001
33974
  const debugData = useDebugData();
34002
- React119.useEffect(() => {
33975
+ React118.useEffect(() => {
34003
33976
  if (mode === "inline") return;
34004
33977
  return onDebugToggle((enabled) => {
34005
33978
  setIsVisible(enabled);
@@ -34008,7 +33981,7 @@ function RuntimeDebugger({
34008
33981
  }
34009
33982
  });
34010
33983
  }, [mode]);
34011
- React119.useEffect(() => {
33984
+ React118.useEffect(() => {
34012
33985
  if (mode === "inline") return;
34013
33986
  const handleKeyDown = (e) => {
34014
33987
  if (e.key === "`" && isVisible) {
@@ -34557,7 +34530,7 @@ function SequenceBar({
34557
34530
  onSlotRemove(index);
34558
34531
  }, [onSlotRemove, playing]);
34559
34532
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
34560
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
34533
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
34561
34534
  i > 0 && /* @__PURE__ */ jsx(
34562
34535
  Typography,
34563
34536
  {
@@ -35902,7 +35875,7 @@ var init_StatCard = __esm({
35902
35875
  const labelToUse = propLabel ?? propTitle;
35903
35876
  const eventBus = useEventBus();
35904
35877
  const { t } = useTranslate();
35905
- const handleActionClick = React119__default.useCallback(() => {
35878
+ const handleActionClick = React118__default.useCallback(() => {
35906
35879
  if (action?.event) {
35907
35880
  eventBus.emit(`UI:${action.event}`, {});
35908
35881
  }
@@ -35913,7 +35886,7 @@ var init_StatCard = __esm({
35913
35886
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
35914
35887
  const isLoading = externalLoading ?? false;
35915
35888
  const error = externalError;
35916
- const computeMetricValue = React119__default.useCallback(
35889
+ const computeMetricValue = React118__default.useCallback(
35917
35890
  (metric, items) => {
35918
35891
  if (metric.value !== void 0) {
35919
35892
  return metric.value;
@@ -35952,7 +35925,7 @@ var init_StatCard = __esm({
35952
35925
  },
35953
35926
  []
35954
35927
  );
35955
- const schemaStats = React119__default.useMemo(() => {
35928
+ const schemaStats = React118__default.useMemo(() => {
35956
35929
  if (!metrics || metrics.length === 0) return null;
35957
35930
  return metrics.map((metric) => ({
35958
35931
  label: metric.label,
@@ -35960,7 +35933,7 @@ var init_StatCard = __esm({
35960
35933
  format: metric.format
35961
35934
  }));
35962
35935
  }, [metrics, data, computeMetricValue]);
35963
- const calculatedTrend = React119__default.useMemo(() => {
35936
+ const calculatedTrend = React118__default.useMemo(() => {
35964
35937
  if (manualTrend !== void 0) return manualTrend;
35965
35938
  if (previousValue === void 0 || currentValue === void 0)
35966
35939
  return void 0;
@@ -36944,7 +36917,7 @@ var init_Timeline = __esm({
36944
36917
  }) => {
36945
36918
  const { t } = useTranslate();
36946
36919
  const entityData = Array.isArray(entity) ? entity : [];
36947
- const items = React119__default.useMemo(() => {
36920
+ const items = React118__default.useMemo(() => {
36948
36921
  if (propItems) return propItems;
36949
36922
  if (entityData.length === 0) return [];
36950
36923
  return entityData.map((record, idx) => {
@@ -37051,7 +37024,7 @@ var init_Timeline = __esm({
37051
37024
  }
37052
37025
  });
37053
37026
  function extractToastProps(children) {
37054
- if (!React119__default.isValidElement(children)) {
37027
+ if (!React118__default.isValidElement(children)) {
37055
37028
  if (typeof children === "string") {
37056
37029
  return { message: children };
37057
37030
  }
@@ -37089,7 +37062,7 @@ var init_ToastSlot = __esm({
37089
37062
  eventBus.emit("UI:CLOSE");
37090
37063
  };
37091
37064
  if (!isVisible) return null;
37092
- const isCustomContent = React119__default.isValidElement(children) && !message;
37065
+ const isCustomContent = React118__default.isValidElement(children) && !message;
37093
37066
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
37094
37067
  Toast,
37095
37068
  {
@@ -37358,7 +37331,7 @@ var init_WizardContainer = __esm({
37358
37331
  const isCompleted = index < currentStep;
37359
37332
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
37360
37333
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
37361
- return /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
37334
+ return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
37362
37335
  /* @__PURE__ */ jsx(
37363
37336
  Button,
37364
37337
  {
@@ -39547,7 +39520,7 @@ function UnitRenderer({
39547
39520
  onAnimationStateChange,
39548
39521
  animationSpeed = 1
39549
39522
  }) {
39550
- const handleUnitClick = React119__default.useCallback(
39523
+ const handleUnitClick = React118__default.useCallback(
39551
39524
  (unit) => {
39552
39525
  onUnitClick?.(unit);
39553
39526
  },
@@ -42741,7 +42714,7 @@ var init_Avl3DViewer = __esm({
42741
42714
  const handleTraitClick = useCallback((name) => {
42742
42715
  dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
42743
42716
  }, []);
42744
- const [highlightedTrait, setHighlightedTrait] = React119__default.useState(null);
42717
+ const [highlightedTrait, setHighlightedTrait] = React118__default.useState(null);
42745
42718
  const handleTransitionClick = useCallback((index) => {
42746
42719
  dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
42747
42720
  }, []);
@@ -42828,7 +42801,7 @@ var init_Avl3DViewer = __esm({
42828
42801
  gap: "xs",
42829
42802
  align: "center",
42830
42803
  className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
42831
- children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
42804
+ children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
42832
42805
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
42833
42806
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
42834
42807
  Box,
@@ -43206,12 +43179,12 @@ var init_three = __esm({
43206
43179
  }
43207
43180
  });
43208
43181
  function lazyThree(name, loader) {
43209
- const Lazy = React119__default.lazy(() => loader().then((m) => ({ default: m[name] })));
43182
+ const Lazy = React118__default.lazy(() => loader().then((m) => ({ default: m[name] })));
43210
43183
  function ThreeWrapper(props) {
43211
- return React119__default.createElement(
43212
- React119__default.Suspense,
43184
+ return React118__default.createElement(
43185
+ React118__default.Suspense,
43213
43186
  { fallback: null },
43214
- React119__default.createElement(Lazy, props)
43187
+ React118__default.createElement(Lazy, props)
43215
43188
  );
43216
43189
  }
43217
43190
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -43699,7 +43672,7 @@ function SuspenseConfigProvider({
43699
43672
  config,
43700
43673
  children
43701
43674
  }) {
43702
- return React119__default.createElement(
43675
+ return React118__default.createElement(
43703
43676
  SuspenseConfigContext.Provider,
43704
43677
  { value: config },
43705
43678
  children
@@ -44182,7 +44155,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
44182
44155
  const key = `${parentId}-${index}-trait:${traitName}`;
44183
44156
  return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
44184
44157
  }
44185
- return /* @__PURE__ */ jsx(React119__default.Fragment, { children: child }, `${parentId}-${index}`);
44158
+ return /* @__PURE__ */ jsx(React118__default.Fragment, { children: child }, `${parentId}-${index}`);
44186
44159
  }
44187
44160
  if (!child || typeof child !== "object") return null;
44188
44161
  const childId = `${parentId}-${index}`;
@@ -44219,14 +44192,14 @@ function isPatternConfig(value) {
44219
44192
  if (value === null || value === void 0) return false;
44220
44193
  if (typeof value !== "object") return false;
44221
44194
  if (Array.isArray(value)) return false;
44222
- if (React119__default.isValidElement(value)) return false;
44195
+ if (React118__default.isValidElement(value)) return false;
44223
44196
  if (value instanceof Date) return false;
44224
44197
  if (typeof value === "function") return false;
44225
44198
  const record = value;
44226
44199
  return "type" in record && typeof record.type === "string";
44227
44200
  }
44228
44201
  function isPlainConfigObject(value) {
44229
- if (React119__default.isValidElement(value)) return false;
44202
+ if (React118__default.isValidElement(value)) return false;
44230
44203
  if (value instanceof Date) return false;
44231
44204
  const proto = Object.getPrototypeOf(value);
44232
44205
  return proto === Object.prototype || proto === null;
@@ -44887,7 +44860,7 @@ var AvlTransition = ({
44887
44860
  opacity = 1,
44888
44861
  className
44889
44862
  }) => {
44890
- const ids = React119__default.useMemo(() => {
44863
+ const ids = React118__default.useMemo(() => {
44891
44864
  avlTransitionId += 1;
44892
44865
  return { arrow: `avl-tr-${avlTransitionId}-arrow` };
44893
44866
  }, []);
@@ -45648,7 +45621,7 @@ var AvlStateMachine = ({
45648
45621
  color = "var(--color-primary)",
45649
45622
  animated = false
45650
45623
  }) => {
45651
- const ids = React119__default.useMemo(() => {
45624
+ const ids = React118__default.useMemo(() => {
45652
45625
  avlSmId += 1;
45653
45626
  const base = `avl-sm-${avlSmId}`;
45654
45627
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -45843,7 +45816,7 @@ var AvlOrbitalUnit = ({
45843
45816
  color = "var(--color-primary)",
45844
45817
  animated = false
45845
45818
  }) => {
45846
- const ids = React119__default.useMemo(() => {
45819
+ const ids = React118__default.useMemo(() => {
45847
45820
  avlOuId += 1;
45848
45821
  const base = `avl-ou-${avlOuId}`;
45849
45822
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -45935,7 +45908,7 @@ var AvlClosedCircuit = ({
45935
45908
  color = "var(--color-primary)",
45936
45909
  animated = false
45937
45910
  }) => {
45938
- const ids = React119__default.useMemo(() => {
45911
+ const ids = React118__default.useMemo(() => {
45939
45912
  avlCcId += 1;
45940
45913
  const base = `avl-cc-${avlCcId}`;
45941
45914
  return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
@@ -46088,7 +46061,7 @@ var AvlEmitListen = ({
46088
46061
  color = "var(--color-primary)",
46089
46062
  animated = false
46090
46063
  }) => {
46091
- const ids = React119__default.useMemo(() => {
46064
+ const ids = React118__default.useMemo(() => {
46092
46065
  avlElId += 1;
46093
46066
  const base = `avl-el-${avlElId}`;
46094
46067
  return { arrow: `${base}-arrow`, grad: `${base}-grad` };
@@ -46361,7 +46334,7 @@ function renderNode(node, color, glowId) {
46361
46334
  const baseR = node.type === "operator" ? 20 : 16;
46362
46335
  const r2 = Math.max(baseR, labelLen * 3.5 + 6);
46363
46336
  const nc = nodeColor(node.type, color);
46364
- return /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
46337
+ return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
46365
46338
  node.children.map((child, i) => {
46366
46339
  const childR = Math.max(
46367
46340
  child.type === "operator" ? 20 : 16,
@@ -46418,7 +46391,7 @@ var AvlExprTree = ({
46418
46391
  className,
46419
46392
  color = "var(--color-primary)"
46420
46393
  }) => {
46421
- const ids = React119__default.useMemo(() => {
46394
+ const ids = React118__default.useMemo(() => {
46422
46395
  avlEtId += 1;
46423
46396
  return { glow: `avl-et-${avlEtId}-glow` };
46424
46397
  }, []);
@@ -47392,7 +47365,7 @@ var SystemNode = ({ data }) => {
47392
47365
  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) => {
47393
47366
  const tc = transitionCounts[s.name] ?? 0;
47394
47367
  const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
47395
- return /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
47368
+ return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
47396
47369
  /* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
47397
47370
  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 })
47398
47371
  ] }, s.name);
@@ -47432,7 +47405,7 @@ var MiniStateMachine = ({ data, className }) => {
47432
47405
  const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
47433
47406
  const tc = transitionCounts[s.name] ?? 0;
47434
47407
  const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
47435
- return /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
47408
+ return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
47436
47409
  /* @__PURE__ */ jsx(
47437
47410
  AvlState,
47438
47411
  {
@@ -48894,7 +48867,7 @@ function resolveLambdaBindings(body, argName, arg) {
48894
48867
  if (Array.isArray(body)) {
48895
48868
  return body.map((b) => resolveLambdaBindings(b, argName, arg));
48896
48869
  }
48897
- if (body !== null && typeof body === "object" && !React119__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
48870
+ if (body !== null && typeof body === "object" && !React118__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
48898
48871
  const out = {};
48899
48872
  for (const [k, v] of Object.entries(body)) {
48900
48873
  out[k] = resolveLambdaBindings(v, argName, arg);
@@ -48913,7 +48886,7 @@ function getSlotContentRenderer2() {
48913
48886
  function makeLambdaFn(argName, lambdaBody, callerKey) {
48914
48887
  return (item, index) => {
48915
48888
  const resolvedBody = resolveLambdaBindings(lambdaBody, argName, item);
48916
- if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React119__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
48889
+ if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React118__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
48917
48890
  return null;
48918
48891
  }
48919
48892
  const record = resolvedBody;
@@ -48931,7 +48904,7 @@ function makeLambdaFn(argName, lambdaBody, callerKey) {
48931
48904
  props: childProps,
48932
48905
  priority: 0
48933
48906
  };
48934
- return React119__default.createElement(SlotContentRenderer2, { content: childContent });
48907
+ return React118__default.createElement(SlotContentRenderer2, { content: childContent });
48935
48908
  };
48936
48909
  }
48937
48910
  function convertNode(node, callerKey) {
@@ -48950,7 +48923,7 @@ function convertNode(node, callerKey) {
48950
48923
  });
48951
48924
  return anyChanged ? mapped : node;
48952
48925
  }
48953
- if (typeof node === "object" && !React119__default.isValidElement(node) && !(node instanceof Date)) {
48926
+ if (typeof node === "object" && !React118__default.isValidElement(node) && !(node instanceof Date)) {
48954
48927
  return convertObjectProps(node);
48955
48928
  }
48956
48929
  return node;
@@ -48986,7 +48959,7 @@ init_logger();
48986
48959
 
48987
48960
  // runtime/createClientEffectHandlers.ts
48988
48961
  function createClientEffectHandlers(options) {
48989
- const { eventBus, slotSetter, navigate, notify, callService } = options;
48962
+ const { eventBus, slotSetter, navigate, notify } = options;
48990
48963
  return {
48991
48964
  emit: (event, payload) => {
48992
48965
  const prefixedEvent = event.startsWith("UI:") ? event : `UI:${event}`;
@@ -48998,24 +48971,9 @@ function createClientEffectHandlers(options) {
48998
48971
  set: () => {
48999
48972
  console.warn("[ClientEffectHandlers] set is server-side only, ignored on client");
49000
48973
  },
49001
- callService: async (service, action, params) => {
49002
- if (callService) return callService(service, action, params);
49003
- const mockId = `mock_${service}_${action}_${Math.random().toString(36).slice(2, 10)}`;
49004
- const paramsEcho = {};
49005
- if (params) {
49006
- for (const [k, v] of Object.entries(params)) {
49007
- if (v !== void 0 && (typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v === null || v instanceof Date)) {
49008
- paramsEcho[k] = v;
49009
- }
49010
- }
49011
- }
49012
- return {
49013
- id: mockId,
49014
- clientSecret: `secret_${mockId}`,
49015
- success: true,
49016
- status: "succeeded",
49017
- ...paramsEcho
49018
- };
48974
+ callService: async () => {
48975
+ console.warn("[ClientEffectHandlers] callService is server-side only, ignored on client");
48976
+ return {};
49019
48977
  },
49020
48978
  renderUI: (slot, pattern, props) => {
49021
48979
  if (pattern === null) {
@@ -49398,8 +49356,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
49398
49356
  }
49399
49357
  },
49400
49358
  navigate: optionsRef.current?.navigate,
49401
- notify: optionsRef.current?.notify,
49402
- callService: optionsRef.current?.callService
49359
+ notify: optionsRef.current?.notify
49403
49360
  });
49404
49361
  const persistence = optionsRef.current?.persistence;
49405
49362
  let handlers = clientHandlers;
@@ -50936,7 +50893,7 @@ var OrbPreviewNodeInner = (props) => {
50936
50893
  }
50937
50894
  );
50938
50895
  };
50939
- var OrbPreviewNode = React119__default.memo(OrbPreviewNodeInner);
50896
+ var OrbPreviewNode = React118__default.memo(OrbPreviewNodeInner);
50940
50897
  OrbPreviewNode.displayName = "OrbPreviewNode";
50941
50898
  var EventFlowEdgeInner = (props) => {
50942
50899
  const {
@@ -51013,7 +50970,7 @@ var EventFlowEdgeInner = (props) => {
51013
50970
  ) })
51014
50971
  ] });
51015
50972
  };
51016
- var EventFlowEdge = React119__default.memo(EventFlowEdgeInner);
50973
+ var EventFlowEdge = React118__default.memo(EventFlowEdgeInner);
51017
50974
  EventFlowEdge.displayName = "EventFlowEdge";
51018
50975
 
51019
50976
  // components/molecules/avl/BehaviorComposeNode.tsx
@@ -51152,7 +51109,7 @@ var BehaviorComposeNodeInner = (props) => {
51152
51109
  }
51153
51110
  );
51154
51111
  };
51155
- var BehaviorComposeNode = React119__default.memo(BehaviorComposeNodeInner);
51112
+ var BehaviorComposeNode = React118__default.memo(BehaviorComposeNodeInner);
51156
51113
  BehaviorComposeNode.displayName = "BehaviorComposeNode";
51157
51114
 
51158
51115
  // components/molecules/avl/avl-behavior-compose-converter.ts
@@ -52084,7 +52041,7 @@ var ZoomBreadcrumb = ({
52084
52041
  if (eventName && band === "detail") {
52085
52042
  segments.push({ icon: "\u26A1", label: eventName });
52086
52043
  }
52087
- return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
52044
+ return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
52088
52045
  i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
52089
52046
  /* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
52090
52047
  /* @__PURE__ */ jsx("span", { children: seg.label })
@@ -52543,7 +52500,7 @@ var EventWireOverlay = ({
52543
52500
  containerW,
52544
52501
  containerH
52545
52502
  }) => {
52546
- const ids = React119__default.useMemo(() => {
52503
+ const ids = React118__default.useMemo(() => {
52547
52504
  avlOczWireId += 1;
52548
52505
  return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
52549
52506
  }, []);
@@ -52861,7 +52818,7 @@ var AvlOrbitalsCosmicZoom = ({
52861
52818
  borderRadius: 6,
52862
52819
  border: `1px solid ${color}`
52863
52820
  },
52864
- children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React119__default.Fragment, { children: [
52821
+ children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
52865
52822
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
52866
52823
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
52867
52824
  Box,