@almadar/ui 4.13.1 → 4.14.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.
@@ -1,5 +1,5 @@
1
- import * as React116 from 'react';
2
- import React116__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, Suspense, useState, useLayoutEffect, lazy, useId } from 'react';
1
+ import * as React115 from 'react';
2
+ import React115__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, Suspense, useState, useLayoutEffect, lazy, useId } from 'react';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { EventBusContext, useTraitScope, TraitScopeProvider } from '@almadar/ui/providers';
5
5
  import { clsx } from 'clsx';
@@ -729,7 +729,7 @@ var init_Box = __esm({
729
729
  fixed: "fixed",
730
730
  sticky: "sticky"
731
731
  };
732
- Box = React116__default.forwardRef(
732
+ Box = React115__default.forwardRef(
733
733
  ({
734
734
  padding,
735
735
  paddingX,
@@ -1428,7 +1428,7 @@ function resolveIconProp(value, sizeClass) {
1428
1428
  const IconComp = value;
1429
1429
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
1430
1430
  }
1431
- if (React116__default.isValidElement(value)) {
1431
+ if (React115__default.isValidElement(value)) {
1432
1432
  return value;
1433
1433
  }
1434
1434
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -1504,7 +1504,7 @@ var init_Button = __esm({
1504
1504
  md: "h-4 w-4",
1505
1505
  lg: "h-5 w-5"
1506
1506
  };
1507
- Button = React116__default.forwardRef(
1507
+ Button = React115__default.forwardRef(
1508
1508
  ({
1509
1509
  className,
1510
1510
  variant = "primary",
@@ -1607,7 +1607,7 @@ var init_Badge = __esm({
1607
1607
  md: "px-2.5 py-1 text-sm",
1608
1608
  lg: "px-3 py-1.5 text-base"
1609
1609
  };
1610
- Badge = React116__default.forwardRef(
1610
+ Badge = React115__default.forwardRef(
1611
1611
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
1612
1612
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
1613
1613
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -1744,6 +1744,8 @@ var init_Toast = __esm({
1744
1744
  Toast.displayName = "Toast";
1745
1745
  }
1746
1746
  });
1747
+
1748
+ // runtime/ui/slot-types.ts
1747
1749
  function refId(obj) {
1748
1750
  if (obj === null || obj === void 0 || typeof obj !== "object") return null;
1749
1751
  const existing = refIds.get(obj);
@@ -1753,22 +1755,19 @@ function refId(obj) {
1753
1755
  return id;
1754
1756
  }
1755
1757
  var slotLog, refIds, nextRefId;
1756
- var init_SlotsContext = __esm({
1757
- "runtime/ui/SlotsContext.tsx"() {
1758
+ var init_slot_types = __esm({
1759
+ "runtime/ui/slot-types.ts"() {
1758
1760
  init_logger();
1759
1761
  slotLog = createLogger("almadar:ui:slot-render");
1760
- createLogger("almadar:runtime:cross-orbital");
1761
1762
  refIds = /* @__PURE__ */ new WeakMap();
1762
1763
  nextRefId = 1;
1763
- createContext({});
1764
- createContext(null);
1765
1764
  }
1766
1765
  });
1767
1766
  var Input;
1768
1767
  var init_Input = __esm({
1769
1768
  "components/atoms/Input.tsx"() {
1770
1769
  init_cn();
1771
- Input = React116__default.forwardRef(
1770
+ Input = React115__default.forwardRef(
1772
1771
  ({
1773
1772
  className,
1774
1773
  inputType,
@@ -1886,7 +1885,7 @@ var Label;
1886
1885
  var init_Label = __esm({
1887
1886
  "components/atoms/Label.tsx"() {
1888
1887
  init_cn();
1889
- Label = React116__default.forwardRef(
1888
+ Label = React115__default.forwardRef(
1890
1889
  ({ className, required, children, ...props }, ref) => {
1891
1890
  return /* @__PURE__ */ jsxs(
1892
1891
  "label",
@@ -1912,7 +1911,7 @@ var Textarea;
1912
1911
  var init_Textarea = __esm({
1913
1912
  "components/atoms/Textarea.tsx"() {
1914
1913
  init_cn();
1915
- Textarea = React116__default.forwardRef(
1914
+ Textarea = React115__default.forwardRef(
1916
1915
  ({ className, error, ...props }, ref) => {
1917
1916
  return /* @__PURE__ */ jsx(
1918
1917
  "textarea",
@@ -1941,7 +1940,7 @@ var Select;
1941
1940
  var init_Select = __esm({
1942
1941
  "components/atoms/Select.tsx"() {
1943
1942
  init_cn();
1944
- Select = React116__default.forwardRef(
1943
+ Select = React115__default.forwardRef(
1945
1944
  ({ className, options, placeholder, error, ...props }, ref) => {
1946
1945
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1947
1946
  /* @__PURE__ */ jsxs(
@@ -1983,7 +1982,7 @@ var Checkbox;
1983
1982
  var init_Checkbox = __esm({
1984
1983
  "components/atoms/Checkbox.tsx"() {
1985
1984
  init_cn();
1986
- Checkbox = React116__default.forwardRef(
1985
+ Checkbox = React115__default.forwardRef(
1987
1986
  ({ className, label, id, ...props }, ref) => {
1988
1987
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
1989
1988
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -2065,7 +2064,7 @@ var init_Card = __esm({
2065
2064
  md: "shadow",
2066
2065
  lg: "shadow-lg"
2067
2066
  };
2068
- Card = React116__default.forwardRef(
2067
+ Card = React115__default.forwardRef(
2069
2068
  ({
2070
2069
  className,
2071
2070
  variant = "bordered",
@@ -2101,9 +2100,9 @@ var init_Card = __esm({
2101
2100
  }
2102
2101
  );
2103
2102
  Card.displayName = "Card";
2104
- CardHeader = React116__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
2103
+ CardHeader = React115__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
2105
2104
  CardHeader.displayName = "CardHeader";
2106
- CardTitle = React116__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2105
+ CardTitle = React115__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2107
2106
  "h3",
2108
2107
  {
2109
2108
  ref,
@@ -2116,11 +2115,11 @@ var init_Card = __esm({
2116
2115
  }
2117
2116
  ));
2118
2117
  CardTitle.displayName = "CardTitle";
2119
- CardContent = React116__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
2118
+ CardContent = React115__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
2120
2119
  CardContent.displayName = "CardContent";
2121
2120
  CardBody = CardContent;
2122
2121
  CardBody.displayName = "CardBody";
2123
- CardFooter = React116__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2122
+ CardFooter = React115__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2124
2123
  "div",
2125
2124
  {
2126
2125
  ref,
@@ -2141,7 +2140,7 @@ var init_Spinner = __esm({
2141
2140
  md: "h-6 w-6",
2142
2141
  lg: "h-8 w-8"
2143
2142
  };
2144
- Spinner = React116__default.forwardRef(
2143
+ Spinner = React115__default.forwardRef(
2145
2144
  ({ className, size = "md", ...props }, ref) => {
2146
2145
  return /* @__PURE__ */ jsx(
2147
2146
  "div",
@@ -2589,7 +2588,7 @@ var Radio;
2589
2588
  var init_Radio = __esm({
2590
2589
  "components/atoms/Radio.tsx"() {
2591
2590
  init_cn();
2592
- Radio = React116__default.forwardRef(
2591
+ Radio = React115__default.forwardRef(
2593
2592
  ({
2594
2593
  label,
2595
2594
  helperText,
@@ -2700,7 +2699,7 @@ var init_Switch = __esm({
2700
2699
  "components/atoms/Switch.tsx"() {
2701
2700
  "use client";
2702
2701
  init_cn();
2703
- Switch = React116.forwardRef(
2702
+ Switch = React115.forwardRef(
2704
2703
  ({
2705
2704
  checked,
2706
2705
  defaultChecked = false,
@@ -2711,10 +2710,10 @@ var init_Switch = __esm({
2711
2710
  name,
2712
2711
  className
2713
2712
  }, ref) => {
2714
- const [isChecked, setIsChecked] = React116.useState(
2713
+ const [isChecked, setIsChecked] = React115.useState(
2715
2714
  checked !== void 0 ? checked : defaultChecked
2716
2715
  );
2717
- React116.useEffect(() => {
2716
+ React115.useEffect(() => {
2718
2717
  if (checked !== void 0) {
2719
2718
  setIsChecked(checked);
2720
2719
  }
@@ -3140,8 +3139,8 @@ var init_LawReferenceTooltip = __esm({
3140
3139
  position = "top",
3141
3140
  className
3142
3141
  }) => {
3143
- const [isVisible, setIsVisible] = React116__default.useState(false);
3144
- const timeoutRef = React116__default.useRef(null);
3142
+ const [isVisible, setIsVisible] = React115__default.useState(false);
3143
+ const timeoutRef = React115__default.useRef(null);
3145
3144
  const handleMouseEnter = () => {
3146
3145
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
3147
3146
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -3150,7 +3149,7 @@ var init_LawReferenceTooltip = __esm({
3150
3149
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
3151
3150
  setIsVisible(false);
3152
3151
  };
3153
- React116__default.useEffect(() => {
3152
+ React115__default.useEffect(() => {
3154
3153
  return () => {
3155
3154
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
3156
3155
  };
@@ -3360,7 +3359,7 @@ var init_StatusDot = __esm({
3360
3359
  md: "w-2.5 h-2.5",
3361
3360
  lg: "w-3 h-3"
3362
3361
  };
3363
- StatusDot = React116__default.forwardRef(
3362
+ StatusDot = React115__default.forwardRef(
3364
3363
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
3365
3364
  return /* @__PURE__ */ jsx(
3366
3365
  "span",
@@ -3413,7 +3412,7 @@ var init_TrendIndicator = __esm({
3413
3412
  down: TrendingDown,
3414
3413
  flat: ArrowRight
3415
3414
  };
3416
- TrendIndicator = React116__default.forwardRef(
3415
+ TrendIndicator = React115__default.forwardRef(
3417
3416
  ({
3418
3417
  className,
3419
3418
  value,
@@ -3480,7 +3479,7 @@ var init_RangeSlider = __esm({
3480
3479
  md: "w-4 h-4",
3481
3480
  lg: "w-5 h-5"
3482
3481
  };
3483
- RangeSlider = React116__default.forwardRef(
3482
+ RangeSlider = React115__default.forwardRef(
3484
3483
  ({
3485
3484
  className,
3486
3485
  min = 0,
@@ -4076,7 +4075,7 @@ var init_ContentSection = __esm({
4076
4075
  md: "py-16",
4077
4076
  lg: "py-24"
4078
4077
  };
4079
- ContentSection = React116__default.forwardRef(
4078
+ ContentSection = React115__default.forwardRef(
4080
4079
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
4081
4080
  return /* @__PURE__ */ jsx(
4082
4081
  Box,
@@ -4610,7 +4609,7 @@ var init_AnimatedReveal = __esm({
4610
4609
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
4611
4610
  "none": {}
4612
4611
  };
4613
- AnimatedReveal = React116__default.forwardRef(
4612
+ AnimatedReveal = React115__default.forwardRef(
4614
4613
  ({
4615
4614
  trigger = "scroll",
4616
4615
  animation = "fade-up",
@@ -4770,7 +4769,7 @@ var init_AnimatedGraphic = __esm({
4770
4769
  "components/atoms/AnimatedGraphic.tsx"() {
4771
4770
  "use client";
4772
4771
  init_cn();
4773
- AnimatedGraphic = React116__default.forwardRef(
4772
+ AnimatedGraphic = React115__default.forwardRef(
4774
4773
  ({
4775
4774
  src,
4776
4775
  svgContent,
@@ -4793,7 +4792,7 @@ var init_AnimatedGraphic = __esm({
4793
4792
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
4794
4793
  const resolvedSvg = svgContent ?? fetchedSvg;
4795
4794
  const prevAnimateRef = useRef(animate);
4796
- const setRef = React116__default.useCallback(
4795
+ const setRef = React115__default.useCallback(
4797
4796
  (node) => {
4798
4797
  containerRef.current = node;
4799
4798
  if (typeof ref === "function") ref(node);
@@ -5011,9 +5010,9 @@ function ScoreDisplay({
5011
5010
  ...rest
5012
5011
  }) {
5013
5012
  const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
5014
- const [displayValue, setDisplayValue] = React116.useState(resolvedValue);
5015
- const [isAnimating, setIsAnimating] = React116.useState(false);
5016
- React116.useEffect(() => {
5013
+ const [displayValue, setDisplayValue] = React115.useState(resolvedValue);
5014
+ const [isAnimating, setIsAnimating] = React115.useState(false);
5015
+ React115.useEffect(() => {
5017
5016
  if (!animated || displayValue === resolvedValue) {
5018
5017
  setDisplayValue(resolvedValue);
5019
5018
  return;
@@ -5083,9 +5082,9 @@ function ControlButton({
5083
5082
  className
5084
5083
  }) {
5085
5084
  const eventBus = useEventBus();
5086
- const [isPressed, setIsPressed] = React116.useState(false);
5085
+ const [isPressed, setIsPressed] = React115.useState(false);
5087
5086
  const actualPressed = pressed ?? isPressed;
5088
- const handlePointerDown = React116.useCallback(
5087
+ const handlePointerDown = React115.useCallback(
5089
5088
  (e) => {
5090
5089
  e.preventDefault();
5091
5090
  if (disabled) return;
@@ -5095,7 +5094,7 @@ function ControlButton({
5095
5094
  },
5096
5095
  [disabled, pressEvent, eventBus, onPress]
5097
5096
  );
5098
- const handlePointerUp = React116.useCallback(
5097
+ const handlePointerUp = React115.useCallback(
5099
5098
  (e) => {
5100
5099
  e.preventDefault();
5101
5100
  if (disabled) return;
@@ -5105,7 +5104,7 @@ function ControlButton({
5105
5104
  },
5106
5105
  [disabled, releaseEvent, eventBus, onRelease]
5107
5106
  );
5108
- const handlePointerLeave = React116.useCallback(
5107
+ const handlePointerLeave = React115.useCallback(
5109
5108
  (e) => {
5110
5109
  if (isPressed) {
5111
5110
  setIsPressed(false);
@@ -6003,9 +6002,9 @@ function MiniMap({
6003
6002
  viewportRect,
6004
6003
  className
6005
6004
  }) {
6006
- const canvasRef = React116.useRef(null);
6007
- const frameRef = React116.useRef(0);
6008
- React116.useEffect(() => {
6005
+ const canvasRef = React115.useRef(null);
6006
+ const frameRef = React115.useRef(0);
6007
+ React115.useEffect(() => {
6009
6008
  const canvas = canvasRef.current;
6010
6009
  if (!canvas) return;
6011
6010
  const ctx = canvas.getContext("2d");
@@ -6344,7 +6343,7 @@ var init_ErrorBoundary = __esm({
6344
6343
  "use client";
6345
6344
  init_cn();
6346
6345
  init_ErrorState();
6347
- ErrorBoundary = class extends React116__default.Component {
6346
+ ErrorBoundary = class extends React115__default.Component {
6348
6347
  constructor(props) {
6349
6348
  super(props);
6350
6349
  __publicField(this, "reset", () => {
@@ -7168,8 +7167,8 @@ var init_Tooltip = __esm({
7168
7167
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
7169
7168
  };
7170
7169
  }, []);
7171
- const triggerElement = React116__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
7172
- const trigger = React116__default.cloneElement(triggerElement, {
7170
+ const triggerElement = React115__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
7171
+ const trigger = React115__default.cloneElement(triggerElement, {
7173
7172
  ref: triggerRef,
7174
7173
  onMouseEnter: handleMouseEnter,
7175
7174
  onMouseLeave: handleMouseLeave,
@@ -7290,8 +7289,8 @@ var init_Popover = __esm({
7290
7289
  onMouseEnter: handleOpen,
7291
7290
  onMouseLeave: handleClose
7292
7291
  };
7293
- const childElement = React116__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
7294
- const triggerElement = React116__default.cloneElement(
7292
+ const childElement = React115__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
7293
+ const triggerElement = React115__default.cloneElement(
7295
7294
  childElement,
7296
7295
  {
7297
7296
  ref: triggerRef,
@@ -7408,8 +7407,8 @@ var init_Menu = __esm({
7408
7407
  "bottom-start": "top-full left-0 mt-2",
7409
7408
  "bottom-end": "top-full right-0 mt-2"
7410
7409
  };
7411
- const triggerChild = React116__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
7412
- const triggerElement = React116__default.cloneElement(
7410
+ const triggerChild = React115__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
7411
+ const triggerElement = React115__default.cloneElement(
7413
7412
  triggerChild,
7414
7413
  {
7415
7414
  ref: triggerRef,
@@ -7928,12 +7927,12 @@ var init_MapView = __esm({
7928
7927
  shadowSize: [41, 41]
7929
7928
  });
7930
7929
  L.Marker.prototype.options.icon = defaultIcon;
7931
- const { useEffect: useEffect63, useRef: useRef63, useCallback: useCallback95, useState: useState87 } = React116__default;
7930
+ const { useEffect: useEffect63, useRef: useRef62, useCallback: useCallback94, useState: useState86 } = React115__default;
7932
7931
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
7933
7932
  const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
7934
7933
  function MapUpdater({ centerLat, centerLng, zoom }) {
7935
7934
  const map = useMap();
7936
- const prevRef = useRef63({ centerLat, centerLng, zoom });
7935
+ const prevRef = useRef62({ centerLat, centerLng, zoom });
7937
7936
  useEffect63(() => {
7938
7937
  const prev = prevRef.current;
7939
7938
  if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
@@ -7972,8 +7971,8 @@ var init_MapView = __esm({
7972
7971
  showAttribution = true
7973
7972
  }) {
7974
7973
  const eventBus = useEventBus2();
7975
- const [clickedPosition, setClickedPosition] = useState87(null);
7976
- const handleMapClick = useCallback95((lat, lng) => {
7974
+ const [clickedPosition, setClickedPosition] = useState86(null);
7975
+ const handleMapClick = useCallback94((lat, lng) => {
7977
7976
  if (showClickedPin) {
7978
7977
  setClickedPosition({ lat, lng });
7979
7978
  }
@@ -7982,7 +7981,7 @@ var init_MapView = __esm({
7982
7981
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
7983
7982
  }
7984
7983
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
7985
- const handleMarkerClick = useCallback95((marker) => {
7984
+ const handleMarkerClick = useCallback94((marker) => {
7986
7985
  onMarkerClick?.(marker);
7987
7986
  if (markerClickEvent) {
7988
7987
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -8159,7 +8158,7 @@ function InputPattern({
8159
8158
  fieldName
8160
8159
  }) {
8161
8160
  const { emit } = useEventBus();
8162
- const [localValue, setLocalValue] = React116__default.useState(value);
8161
+ const [localValue, setLocalValue] = React115__default.useState(value);
8163
8162
  const handleChange = (e) => {
8164
8163
  setLocalValue(e.target.value);
8165
8164
  if (onChange) {
@@ -8197,7 +8196,7 @@ function TextareaPattern({
8197
8196
  fieldName
8198
8197
  }) {
8199
8198
  const { emit } = useEventBus();
8200
- const [localValue, setLocalValue] = React116__default.useState(value);
8199
+ const [localValue, setLocalValue] = React115__default.useState(value);
8201
8200
  const handleChange = (e) => {
8202
8201
  setLocalValue(e.target.value);
8203
8202
  if (onChange) {
@@ -8229,7 +8228,7 @@ function SelectPattern({
8229
8228
  fieldName
8230
8229
  }) {
8231
8230
  const { emit } = useEventBus();
8232
- const [localValue, setLocalValue] = React116__default.useState(value);
8231
+ const [localValue, setLocalValue] = React115__default.useState(value);
8233
8232
  const handleChange = (e) => {
8234
8233
  setLocalValue(e.target.value);
8235
8234
  if (onChange) {
@@ -8258,7 +8257,7 @@ function CheckboxPattern({
8258
8257
  className
8259
8258
  }) {
8260
8259
  const { emit } = useEventBus();
8261
- const [localChecked, setLocalChecked] = React116__default.useState(checked);
8260
+ const [localChecked, setLocalChecked] = React115__default.useState(checked);
8262
8261
  const handleChange = (e) => {
8263
8262
  setLocalChecked(e.target.checked);
8264
8263
  if (onChange) {
@@ -8489,8 +8488,8 @@ function ActionButtons({
8489
8488
  disabled
8490
8489
  }) {
8491
8490
  const eventBus = useEventBus();
8492
- const [activeButtons, setActiveButtons] = React116.useState(/* @__PURE__ */ new Set());
8493
- const handlePress = React116.useCallback(
8491
+ const [activeButtons, setActiveButtons] = React115.useState(/* @__PURE__ */ new Set());
8492
+ const handlePress = React115.useCallback(
8494
8493
  (id) => {
8495
8494
  setActiveButtons((prev) => new Set(prev).add(id));
8496
8495
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -8498,7 +8497,7 @@ function ActionButtons({
8498
8497
  },
8499
8498
  [actionEvent, eventBus, onAction]
8500
8499
  );
8501
- const handleRelease = React116.useCallback(
8500
+ const handleRelease = React115.useCallback(
8502
8501
  (id) => {
8503
8502
  setActiveButtons((prev) => {
8504
8503
  const next = new Set(prev);
@@ -10522,7 +10521,7 @@ var init_MarkdownContent = __esm({
10522
10521
  init_Box();
10523
10522
  init_useTranslate();
10524
10523
  init_cn();
10525
- MarkdownContent = React116__default.memo(
10524
+ MarkdownContent = React115__default.memo(
10526
10525
  ({ content, direction, className }) => {
10527
10526
  const { t: _t } = useTranslate();
10528
10527
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -10739,7 +10738,7 @@ var init_CodeBlock = __esm({
10739
10738
  loloStyle = { ...dark, ...loloStyleOverrides };
10740
10739
  LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
10741
10740
  HIDDEN_LINE_NUMBERS = { display: "none" };
10742
- CodeBlock = React116__default.memo(
10741
+ CodeBlock = React115__default.memo(
10743
10742
  ({
10744
10743
  code: rawCode,
10745
10744
  language = "text",
@@ -12048,7 +12047,7 @@ var init_StateMachineView = __esm({
12048
12047
  style: { top: title ? 30 : 0 },
12049
12048
  children: [
12050
12049
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
12051
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React116__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
12050
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React115__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
12052
12051
  StateNode,
12053
12052
  {
12054
12053
  state,
@@ -17831,7 +17830,7 @@ function CraftingRecipe({
17831
17830
  className
17832
17831
  }) {
17833
17832
  const eventBus = useEventBus();
17834
- const handleCraft = React116.useCallback(() => {
17833
+ const handleCraft = React115.useCallback(() => {
17835
17834
  onCraft?.();
17836
17835
  if (craftEvent) {
17837
17836
  eventBus.emit(craftEvent, { output: output.label });
@@ -17848,7 +17847,7 @@ function CraftingRecipe({
17848
17847
  children: [
17849
17848
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
17850
17849
  const hasSufficient = ingredient.available >= ingredient.required;
17851
- return /* @__PURE__ */ jsxs(React116.Fragment, { children: [
17850
+ return /* @__PURE__ */ jsxs(React115.Fragment, { children: [
17852
17851
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
17853
17852
  ItemSlot,
17854
17853
  {
@@ -18142,8 +18141,8 @@ function DPad({
18142
18141
  }) {
18143
18142
  const eventBus = useEventBus();
18144
18143
  const sizes = sizeMap15[size];
18145
- const [activeDirections, setActiveDirections] = React116.useState(/* @__PURE__ */ new Set());
18146
- const handlePress = React116.useCallback(
18144
+ const [activeDirections, setActiveDirections] = React115.useState(/* @__PURE__ */ new Set());
18145
+ const handlePress = React115.useCallback(
18147
18146
  (direction) => {
18148
18147
  setActiveDirections((prev) => new Set(prev).add(direction));
18149
18148
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -18151,7 +18150,7 @@ function DPad({
18151
18150
  },
18152
18151
  [directionEvent, eventBus, onDirection]
18153
18152
  );
18154
- const handleRelease = React116.useCallback(
18153
+ const handleRelease = React115.useCallback(
18155
18154
  (direction) => {
18156
18155
  setActiveDirections((prev) => {
18157
18156
  const next = new Set(prev);
@@ -19051,7 +19050,7 @@ function DataList({
19051
19050
  }) {
19052
19051
  const eventBus = useEventBus();
19053
19052
  const { t } = useTranslate();
19054
- const [visibleCount, setVisibleCount] = React116__default.useState(pageSize || Infinity);
19053
+ const [visibleCount, setVisibleCount] = React115__default.useState(pageSize || Infinity);
19055
19054
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
19056
19055
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
19057
19056
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
@@ -19091,7 +19090,7 @@ function DataList({
19091
19090
  const items2 = data.map((item) => item);
19092
19091
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
19093
19092
  const contentField = titleField?.name ?? fields[0]?.name ?? "";
19094
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React116__default.Fragment, { children: [
19093
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React115__default.Fragment, { children: [
19095
19094
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
19096
19095
  group.items.map((itemData, index) => {
19097
19096
  const id = itemData.id || `${gi}-${index}`;
@@ -19138,7 +19137,7 @@ function DataList({
19138
19137
  ] }, gi)) });
19139
19138
  }
19140
19139
  const hasRenderProp = typeof children === "function";
19141
- React116__default.useEffect(() => {
19140
+ React115__default.useEffect(() => {
19142
19141
  const renderItemTypeOf = typeof schemaRenderItem;
19143
19142
  const childrenTypeOf = typeof children;
19144
19143
  if (data.length > 0 && !hasRenderProp) {
@@ -19303,7 +19302,7 @@ function DataList({
19303
19302
  className
19304
19303
  ),
19305
19304
  children: [
19306
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React116__default.Fragment, { children: [
19305
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React115__default.Fragment, { children: [
19307
19306
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
19308
19307
  group.items.map(
19309
19308
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -20579,7 +20578,7 @@ var init_WizardProgress = __esm({
20579
20578
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
20580
20579
  const isActive = index === currentStep;
20581
20580
  const isCompleted = index < currentStep;
20582
- return /* @__PURE__ */ jsxs(React116__default.Fragment, { children: [
20581
+ return /* @__PURE__ */ jsxs(React115__default.Fragment, { children: [
20583
20582
  /* @__PURE__ */ jsx(
20584
20583
  "button",
20585
20584
  {
@@ -21490,7 +21489,7 @@ function InventoryGrid({
21490
21489
  const eventBus = useEventBus();
21491
21490
  const slotCount = totalSlots ?? items.length;
21492
21491
  const emptySlotCount = Math.max(0, slotCount - items.length);
21493
- const handleSelect = React116.useCallback(
21492
+ const handleSelect = React115.useCallback(
21494
21493
  (id) => {
21495
21494
  onSelect?.(id);
21496
21495
  if (selectEvent) {
@@ -21703,15 +21702,15 @@ function GameCanvas2D({
21703
21702
  fps = 60,
21704
21703
  className
21705
21704
  }) {
21706
- const canvasRef = React116.useRef(null);
21707
- const rafRef = React116.useRef(0);
21708
- const frameRef = React116.useRef(0);
21709
- const lastTimeRef = React116.useRef(0);
21710
- const onDrawRef = React116.useRef(onDraw);
21705
+ const canvasRef = React115.useRef(null);
21706
+ const rafRef = React115.useRef(0);
21707
+ const frameRef = React115.useRef(0);
21708
+ const lastTimeRef = React115.useRef(0);
21709
+ const onDrawRef = React115.useRef(onDraw);
21711
21710
  onDrawRef.current = onDraw;
21712
- const onTickRef = React116.useRef(onTick);
21711
+ const onTickRef = React115.useRef(onTick);
21713
21712
  onTickRef.current = onTick;
21714
- React116.useEffect(() => {
21713
+ React115.useEffect(() => {
21715
21714
  const canvas = canvasRef.current;
21716
21715
  if (!canvas) return;
21717
21716
  const ctx = canvas.getContext("2d");
@@ -22000,7 +21999,7 @@ function TurnPanel({
22000
21999
  className
22001
22000
  }) {
22002
22001
  const eventBus = useEventBus();
22003
- const handleAction = React116.useCallback(
22002
+ const handleAction = React115.useCallback(
22004
22003
  (event) => {
22005
22004
  if (event) {
22006
22005
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -22146,7 +22145,7 @@ function UnitCommandBar({
22146
22145
  className
22147
22146
  }) {
22148
22147
  const eventBus = useEventBus();
22149
- const handleCommand = React116.useCallback(
22148
+ const handleCommand = React115.useCallback(
22150
22149
  (event) => {
22151
22150
  if (event) {
22152
22151
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -22631,7 +22630,7 @@ function GameMenu({
22631
22630
  } catch {
22632
22631
  }
22633
22632
  const eventBus = eventBusProp || eventBusFromHook;
22634
- const handleOptionClick = React116.useCallback(
22633
+ const handleOptionClick = React115.useCallback(
22635
22634
  (option) => {
22636
22635
  if (option.event && eventBus) {
22637
22636
  eventBus.emit(`UI:${option.event}`, { option });
@@ -22745,7 +22744,7 @@ function GameOverScreen({
22745
22744
  } catch {
22746
22745
  }
22747
22746
  const eventBus = eventBusProp || eventBusFromHook;
22748
- const handleActionClick = React116.useCallback(
22747
+ const handleActionClick = React115.useCallback(
22749
22748
  (action) => {
22750
22749
  if (action.event && eventBus) {
22751
22750
  eventBus.emit(`UI:${action.event}`, { action });
@@ -25849,7 +25848,7 @@ var init_StepFlow = __esm({
25849
25848
  className
25850
25849
  }) => {
25851
25850
  if (orientation === "vertical") {
25852
- return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React116__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
25851
+ return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React115__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
25853
25852
  /* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
25854
25853
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
25855
25854
  showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
@@ -25860,7 +25859,7 @@ var init_StepFlow = __esm({
25860
25859
  ] })
25861
25860
  ] }) }, index)) });
25862
25861
  }
25863
- 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(React116__default.Fragment, { children: [
25862
+ 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(React115__default.Fragment, { children: [
25864
25863
  /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
25865
25864
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
25866
25865
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
@@ -27974,7 +27973,7 @@ var init_DocumentViewer = __esm({
27974
27973
  }
27975
27974
  });
27976
27975
  function extractTitle(children) {
27977
- if (!React116__default.isValidElement(children)) return void 0;
27976
+ if (!React115__default.isValidElement(children)) return void 0;
27978
27977
  const props = children.props;
27979
27978
  if (typeof props.title === "string") {
27980
27979
  return props.title;
@@ -28029,7 +28028,7 @@ function LinearView({
28029
28028
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
28030
28029
  const isDone = i < currentIdx;
28031
28030
  const isCurrent = i === currentIdx;
28032
- return /* @__PURE__ */ jsxs(React116__default.Fragment, { children: [
28031
+ return /* @__PURE__ */ jsxs(React115__default.Fragment, { children: [
28033
28032
  i > 0 && /* @__PURE__ */ jsx(
28034
28033
  Typography,
28035
28034
  {
@@ -28813,12 +28812,12 @@ var init_Form = __esm({
28813
28812
  const isSchemaEntity = isOrbitalEntitySchema(entity);
28814
28813
  const resolvedEntity = isSchemaEntity ? entity : void 0;
28815
28814
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
28816
- const normalizedInitialData = React116__default.useMemo(() => {
28815
+ const normalizedInitialData = React115__default.useMemo(() => {
28817
28816
  const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
28818
28817
  const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
28819
28818
  return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
28820
28819
  }, [entity, initialData]);
28821
- const entityDerivedFields = React116__default.useMemo(() => {
28820
+ const entityDerivedFields = React115__default.useMemo(() => {
28822
28821
  if (fields && fields.length > 0) return void 0;
28823
28822
  if (!resolvedEntity) return void 0;
28824
28823
  return resolvedEntity.fields.map(
@@ -28837,14 +28836,14 @@ var init_Form = __esm({
28837
28836
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
28838
28837
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
28839
28838
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
28840
- const [formData, setFormData] = React116__default.useState(
28839
+ const [formData, setFormData] = React115__default.useState(
28841
28840
  normalizedInitialData
28842
28841
  );
28843
- const [collapsedSections, setCollapsedSections] = React116__default.useState(
28842
+ const [collapsedSections, setCollapsedSections] = React115__default.useState(
28844
28843
  /* @__PURE__ */ new Set()
28845
28844
  );
28846
28845
  const formMode = props.mode;
28847
- const mountedRef = React116__default.useRef(false);
28846
+ const mountedRef = React115__default.useRef(false);
28848
28847
  if (!mountedRef.current) {
28849
28848
  mountedRef.current = true;
28850
28849
  debug("forms", "mount", {
@@ -28857,7 +28856,7 @@ var init_Form = __esm({
28857
28856
  });
28858
28857
  }
28859
28858
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
28860
- const evalContext = React116__default.useMemo(
28859
+ const evalContext = React115__default.useMemo(
28861
28860
  () => ({
28862
28861
  formValues: formData,
28863
28862
  globalVariables: externalContext?.globalVariables ?? {},
@@ -28866,7 +28865,7 @@ var init_Form = __esm({
28866
28865
  }),
28867
28866
  [formData, externalContext]
28868
28867
  );
28869
- React116__default.useEffect(() => {
28868
+ React115__default.useEffect(() => {
28870
28869
  debug("forms", "initialData-sync", {
28871
28870
  mode: formMode,
28872
28871
  normalizedInitialData,
@@ -28877,7 +28876,7 @@ var init_Form = __esm({
28877
28876
  setFormData(normalizedInitialData);
28878
28877
  }
28879
28878
  }, [normalizedInitialData]);
28880
- const processCalculations = React116__default.useCallback(
28879
+ const processCalculations = React115__default.useCallback(
28881
28880
  (changedFieldId, newFormData) => {
28882
28881
  if (!hiddenCalculations.length) return;
28883
28882
  const context = {
@@ -28902,7 +28901,7 @@ var init_Form = __esm({
28902
28901
  },
28903
28902
  [hiddenCalculations, externalContext, eventBus]
28904
28903
  );
28905
- const checkViolations = React116__default.useCallback(
28904
+ const checkViolations = React115__default.useCallback(
28906
28905
  (changedFieldId, newFormData) => {
28907
28906
  if (!violationTriggers.length) return;
28908
28907
  const context = {
@@ -28940,7 +28939,7 @@ var init_Form = __esm({
28940
28939
  processCalculations(name, newFormData);
28941
28940
  checkViolations(name, newFormData);
28942
28941
  };
28943
- const isFieldVisible = React116__default.useCallback(
28942
+ const isFieldVisible = React115__default.useCallback(
28944
28943
  (fieldName) => {
28945
28944
  const condition = conditionalFields[fieldName];
28946
28945
  if (!condition) return true;
@@ -28948,7 +28947,7 @@ var init_Form = __esm({
28948
28947
  },
28949
28948
  [conditionalFields, evalContext]
28950
28949
  );
28951
- const isSectionVisible = React116__default.useCallback(
28950
+ const isSectionVisible = React115__default.useCallback(
28952
28951
  (section) => {
28953
28952
  if (!section.condition) return true;
28954
28953
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -28992,7 +28991,7 @@ var init_Form = __esm({
28992
28991
  eventBus.emit(`UI:${onCancel}`);
28993
28992
  }
28994
28993
  };
28995
- const renderField = React116__default.useCallback(
28994
+ const renderField = React115__default.useCallback(
28996
28995
  (field) => {
28997
28996
  const fieldName = field.name || field.field;
28998
28997
  if (!fieldName) return null;
@@ -29013,7 +29012,7 @@ var init_Form = __esm({
29013
29012
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
29014
29013
  );
29015
29014
  const effectiveFields = entityDerivedFields ?? fields;
29016
- const normalizedFields = React116__default.useMemo(() => {
29015
+ const normalizedFields = React115__default.useMemo(() => {
29017
29016
  if (!effectiveFields || effectiveFields.length === 0) return [];
29018
29017
  return effectiveFields.map((field) => {
29019
29018
  if (typeof field === "string") {
@@ -29035,7 +29034,7 @@ var init_Form = __esm({
29035
29034
  return field;
29036
29035
  });
29037
29036
  }, [effectiveFields, resolvedEntity]);
29038
- const schemaFields = React116__default.useMemo(() => {
29037
+ const schemaFields = React115__default.useMemo(() => {
29039
29038
  if (normalizedFields.length === 0) return null;
29040
29039
  if (isDebugEnabled()) {
29041
29040
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -29045,7 +29044,7 @@ var init_Form = __esm({
29045
29044
  }
29046
29045
  return normalizedFields.map(renderField).filter(Boolean);
29047
29046
  }, [normalizedFields, renderField, entityName, conditionalFields]);
29048
- const sectionElements = React116__default.useMemo(() => {
29047
+ const sectionElements = React115__default.useMemo(() => {
29049
29048
  if (!sections || sections.length === 0) return null;
29050
29049
  return sections.map((section) => {
29051
29050
  if (!isSectionVisible(section)) {
@@ -30569,7 +30568,7 @@ var init_List = __esm({
30569
30568
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
30570
30569
  return [];
30571
30570
  }, [entity]);
30572
- const getItemActions = React116__default.useCallback(
30571
+ const getItemActions = React115__default.useCallback(
30573
30572
  (item) => {
30574
30573
  if (!itemActions) return [];
30575
30574
  if (typeof itemActions === "function") {
@@ -31006,7 +31005,7 @@ var init_MediaGallery = __esm({
31006
31005
  [selectable, selectedItems, selectionEvent, eventBus]
31007
31006
  );
31008
31007
  const entityData = Array.isArray(entity) ? entity : [];
31009
- const items = React116__default.useMemo(() => {
31008
+ const items = React115__default.useMemo(() => {
31010
31009
  if (propItems) return propItems;
31011
31010
  if (entityData.length === 0) return [];
31012
31011
  return entityData.map((record, idx) => ({
@@ -31170,7 +31169,7 @@ var init_MediaGallery = __esm({
31170
31169
  }
31171
31170
  });
31172
31171
  function extractTitle2(children) {
31173
- if (!React116__default.isValidElement(children)) return void 0;
31172
+ if (!React115__default.isValidElement(children)) return void 0;
31174
31173
  const props = children.props;
31175
31174
  if (typeof props.title === "string") {
31176
31175
  return props.title;
@@ -31883,7 +31882,7 @@ var init_PageHeader = __esm({
31883
31882
  info: "bg-info/10 text-info"
31884
31883
  };
31885
31884
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
31886
- 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(React116__default.Fragment, { children: [
31885
+ 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(React115__default.Fragment, { children: [
31887
31886
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
31888
31887
  crumb.href ? /* @__PURE__ */ jsx(
31889
31888
  "a",
@@ -32057,7 +32056,7 @@ var init_debugRegistry = __esm({
32057
32056
  }
32058
32057
  });
32059
32058
  function useDebugData() {
32060
- const [data, setData] = React116.useState(() => ({
32059
+ const [data, setData] = React115.useState(() => ({
32061
32060
  traits: [],
32062
32061
  ticks: [],
32063
32062
  guards: [],
@@ -32071,7 +32070,7 @@ function useDebugData() {
32071
32070
  },
32072
32071
  lastUpdate: Date.now()
32073
32072
  }));
32074
- React116.useEffect(() => {
32073
+ React115.useEffect(() => {
32075
32074
  const updateData = () => {
32076
32075
  setData({
32077
32076
  traits: getAllTraits(),
@@ -32180,12 +32179,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
32180
32179
  return positions;
32181
32180
  }
32182
32181
  function WalkMinimap() {
32183
- const [walkStep, setWalkStep] = React116.useState(null);
32184
- const [traits2, setTraits] = React116.useState([]);
32185
- const [coveredEdges, setCoveredEdges] = React116.useState([]);
32186
- const [completedTraits, setCompletedTraits] = React116.useState(/* @__PURE__ */ new Set());
32187
- const prevTraitRef = React116.useRef(null);
32188
- React116.useEffect(() => {
32182
+ const [walkStep, setWalkStep] = React115.useState(null);
32183
+ const [traits2, setTraits] = React115.useState([]);
32184
+ const [coveredEdges, setCoveredEdges] = React115.useState([]);
32185
+ const [completedTraits, setCompletedTraits] = React115.useState(/* @__PURE__ */ new Set());
32186
+ const prevTraitRef = React115.useRef(null);
32187
+ React115.useEffect(() => {
32189
32188
  const interval = setInterval(() => {
32190
32189
  const w = window;
32191
32190
  const step = w.__orbitalWalkStep;
@@ -32632,15 +32631,15 @@ var init_EntitiesTab = __esm({
32632
32631
  }
32633
32632
  });
32634
32633
  function EventFlowTab({ events: events2 }) {
32635
- const [filter, setFilter] = React116.useState("all");
32636
- const containerRef = React116.useRef(null);
32637
- const [autoScroll, setAutoScroll] = React116.useState(true);
32638
- React116.useEffect(() => {
32634
+ const [filter, setFilter] = React115.useState("all");
32635
+ const containerRef = React115.useRef(null);
32636
+ const [autoScroll, setAutoScroll] = React115.useState(true);
32637
+ React115.useEffect(() => {
32639
32638
  if (autoScroll && containerRef.current) {
32640
32639
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
32641
32640
  }
32642
32641
  }, [events2.length, autoScroll]);
32643
- const filteredEvents = React116.useMemo(() => {
32642
+ const filteredEvents = React115.useMemo(() => {
32644
32643
  if (filter === "all") return events2;
32645
32644
  return events2.filter((e) => e.type === filter);
32646
32645
  }, [events2, filter]);
@@ -32759,7 +32758,7 @@ var init_EventFlowTab = __esm({
32759
32758
  }
32760
32759
  });
32761
32760
  function GuardsPanel({ guards }) {
32762
- const [filter, setFilter] = React116.useState("all");
32761
+ const [filter, setFilter] = React115.useState("all");
32763
32762
  if (guards.length === 0) {
32764
32763
  return /* @__PURE__ */ jsx(
32765
32764
  EmptyState,
@@ -32772,7 +32771,7 @@ function GuardsPanel({ guards }) {
32772
32771
  }
32773
32772
  const passedCount = guards.filter((g) => g.result).length;
32774
32773
  const failedCount = guards.length - passedCount;
32775
- const filteredGuards = React116.useMemo(() => {
32774
+ const filteredGuards = React115.useMemo(() => {
32776
32775
  if (filter === "all") return guards;
32777
32776
  if (filter === "passed") return guards.filter((g) => g.result);
32778
32777
  return guards.filter((g) => !g.result);
@@ -32933,10 +32932,10 @@ function EffectBadge({ effect }) {
32933
32932
  ] });
32934
32933
  }
32935
32934
  function TransitionTimeline({ transitions }) {
32936
- const containerRef = React116.useRef(null);
32937
- const [autoScroll, setAutoScroll] = React116.useState(true);
32938
- const [expandedId, setExpandedId] = React116.useState(null);
32939
- React116.useEffect(() => {
32935
+ const containerRef = React115.useRef(null);
32936
+ const [autoScroll, setAutoScroll] = React115.useState(true);
32937
+ const [expandedId, setExpandedId] = React115.useState(null);
32938
+ React115.useEffect(() => {
32940
32939
  if (autoScroll && containerRef.current) {
32941
32940
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
32942
32941
  }
@@ -33222,9 +33221,9 @@ function getAllEvents(traits2) {
33222
33221
  }
33223
33222
  function EventDispatcherTab({ traits: traits2, schema }) {
33224
33223
  const eventBus = useEventBus();
33225
- const [log4, setLog] = React116.useState([]);
33226
- const prevStatesRef = React116.useRef(/* @__PURE__ */ new Map());
33227
- React116.useEffect(() => {
33224
+ const [log4, setLog] = React115.useState([]);
33225
+ const prevStatesRef = React115.useRef(/* @__PURE__ */ new Map());
33226
+ React115.useEffect(() => {
33228
33227
  for (const trait of traits2) {
33229
33228
  const prev = prevStatesRef.current.get(trait.id);
33230
33229
  if (prev && prev !== trait.currentState) {
@@ -33394,10 +33393,10 @@ function VerifyModePanel({
33394
33393
  serverCount,
33395
33394
  localCount
33396
33395
  }) {
33397
- const [expanded, setExpanded] = React116.useState(true);
33398
- const scrollRef = React116.useRef(null);
33399
- const prevCountRef = React116.useRef(0);
33400
- React116.useEffect(() => {
33396
+ const [expanded, setExpanded] = React115.useState(true);
33397
+ const scrollRef = React115.useRef(null);
33398
+ const prevCountRef = React115.useRef(0);
33399
+ React115.useEffect(() => {
33401
33400
  if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
33402
33401
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
33403
33402
  }
@@ -33463,10 +33462,10 @@ function RuntimeDebugger({
33463
33462
  defaultTab,
33464
33463
  schema
33465
33464
  }) {
33466
- const [isCollapsed, setIsCollapsed] = React116.useState(mode === "verify" ? true : defaultCollapsed);
33467
- const [isVisible, setIsVisible] = React116.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
33465
+ const [isCollapsed, setIsCollapsed] = React115.useState(mode === "verify" ? true : defaultCollapsed);
33466
+ const [isVisible, setIsVisible] = React115.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
33468
33467
  const debugData = useDebugData();
33469
- React116.useEffect(() => {
33468
+ React115.useEffect(() => {
33470
33469
  if (mode === "inline") return;
33471
33470
  return onDebugToggle((enabled) => {
33472
33471
  setIsVisible(enabled);
@@ -33475,7 +33474,7 @@ function RuntimeDebugger({
33475
33474
  }
33476
33475
  });
33477
33476
  }, [mode]);
33478
- React116.useEffect(() => {
33477
+ React115.useEffect(() => {
33479
33478
  if (mode === "inline") return;
33480
33479
  const handleKeyDown = (e) => {
33481
33480
  if (e.key === "`" && isVisible) {
@@ -34024,7 +34023,7 @@ function SequenceBar({
34024
34023
  onSlotRemove(index);
34025
34024
  }, [onSlotRemove, playing]);
34026
34025
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
34027
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React116__default.Fragment, { children: [
34026
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React115__default.Fragment, { children: [
34028
34027
  i > 0 && /* @__PURE__ */ jsx(
34029
34028
  Typography,
34030
34029
  {
@@ -35369,7 +35368,7 @@ var init_StatCard2 = __esm({
35369
35368
  const labelToUse = propLabel ?? propTitle;
35370
35369
  const eventBus = useEventBus();
35371
35370
  const { t } = useTranslate();
35372
- const handleActionClick = React116__default.useCallback(() => {
35371
+ const handleActionClick = React115__default.useCallback(() => {
35373
35372
  if (action?.event) {
35374
35373
  eventBus.emit(`UI:${action.event}`, {});
35375
35374
  }
@@ -35380,7 +35379,7 @@ var init_StatCard2 = __esm({
35380
35379
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
35381
35380
  const isLoading = externalLoading ?? false;
35382
35381
  const error = externalError;
35383
- const computeMetricValue = React116__default.useCallback(
35382
+ const computeMetricValue = React115__default.useCallback(
35384
35383
  (metric, items) => {
35385
35384
  if (metric.value !== void 0) {
35386
35385
  return metric.value;
@@ -35419,7 +35418,7 @@ var init_StatCard2 = __esm({
35419
35418
  },
35420
35419
  []
35421
35420
  );
35422
- const schemaStats = React116__default.useMemo(() => {
35421
+ const schemaStats = React115__default.useMemo(() => {
35423
35422
  if (!metrics || metrics.length === 0) return null;
35424
35423
  return metrics.map((metric) => ({
35425
35424
  label: metric.label,
@@ -35427,7 +35426,7 @@ var init_StatCard2 = __esm({
35427
35426
  format: metric.format
35428
35427
  }));
35429
35428
  }, [metrics, data, computeMetricValue]);
35430
- const calculatedTrend = React116__default.useMemo(() => {
35429
+ const calculatedTrend = React115__default.useMemo(() => {
35431
35430
  if (manualTrend !== void 0) return manualTrend;
35432
35431
  if (previousValue === void 0 || currentValue === void 0)
35433
35432
  return void 0;
@@ -36411,7 +36410,7 @@ var init_Timeline = __esm({
36411
36410
  }) => {
36412
36411
  const { t } = useTranslate();
36413
36412
  const entityData = Array.isArray(entity) ? entity : [];
36414
- const items = React116__default.useMemo(() => {
36413
+ const items = React115__default.useMemo(() => {
36415
36414
  if (propItems) return propItems;
36416
36415
  if (entityData.length === 0) return [];
36417
36416
  return entityData.map((record, idx) => {
@@ -36518,7 +36517,7 @@ var init_Timeline = __esm({
36518
36517
  }
36519
36518
  });
36520
36519
  function extractToastProps(children) {
36521
- if (!React116__default.isValidElement(children)) {
36520
+ if (!React115__default.isValidElement(children)) {
36522
36521
  if (typeof children === "string") {
36523
36522
  return { message: children };
36524
36523
  }
@@ -36556,7 +36555,7 @@ var init_ToastSlot = __esm({
36556
36555
  eventBus.emit("UI:CLOSE");
36557
36556
  };
36558
36557
  if (!isVisible) return null;
36559
- const isCustomContent = React116__default.isValidElement(children) && !message;
36558
+ const isCustomContent = React115__default.isValidElement(children) && !message;
36560
36559
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
36561
36560
  Toast,
36562
36561
  {
@@ -36825,7 +36824,7 @@ var init_WizardContainer = __esm({
36825
36824
  const isCompleted = index < currentStep;
36826
36825
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
36827
36826
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
36828
- return /* @__PURE__ */ jsxs(React116__default.Fragment, { children: [
36827
+ return /* @__PURE__ */ jsxs(React115__default.Fragment, { children: [
36829
36828
  /* @__PURE__ */ jsx(
36830
36829
  Button,
36831
36830
  {
@@ -37207,12 +37206,12 @@ var init_WorldMapTemplate = __esm({
37207
37206
  }
37208
37207
  });
37209
37208
  function lazyThree(name, loader) {
37210
- const Lazy = React116__default.lazy(() => loader().then((m) => ({ default: m[name] })));
37209
+ const Lazy = React115__default.lazy(() => loader().then((m) => ({ default: m[name] })));
37211
37210
  function ThreeWrapper(props) {
37212
- return React116__default.createElement(
37213
- React116__default.Suspense,
37211
+ return React115__default.createElement(
37212
+ React115__default.Suspense,
37214
37213
  { fallback: null },
37215
- React116__default.createElement(Lazy, props)
37214
+ React115__default.createElement(Lazy, props)
37216
37215
  );
37217
37216
  }
37218
37217
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -37700,7 +37699,7 @@ function SuspenseConfigProvider({
37700
37699
  config,
37701
37700
  children
37702
37701
  }) {
37703
- return React116__default.createElement(
37702
+ return React115__default.createElement(
37704
37703
  SuspenseConfigContext.Provider,
37705
37704
  { value: config },
37706
37705
  children
@@ -38183,7 +38182,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
38183
38182
  const key = `${parentId}-${index}-trait:${traitName}`;
38184
38183
  return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
38185
38184
  }
38186
- return /* @__PURE__ */ jsx(React116__default.Fragment, { children: child }, `${parentId}-${index}`);
38185
+ return /* @__PURE__ */ jsx(React115__default.Fragment, { children: child }, `${parentId}-${index}`);
38187
38186
  }
38188
38187
  if (!child || typeof child !== "object") return null;
38189
38188
  const childId = `${parentId}-${index}`;
@@ -38396,7 +38395,7 @@ var init_UISlotRenderer = __esm({
38396
38395
  init_Box();
38397
38396
  init_Typography();
38398
38397
  init_useEventBus();
38399
- init_SlotsContext();
38398
+ init_slot_types();
38400
38399
  init_cn();
38401
38400
  init_ErrorBoundary();
38402
38401
  init_logger();