@almadar/ui 5.87.0 → 5.89.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 React95 from 'react';
2
- import React95__default, { useContext, useMemo, useRef, useEffect, useCallback, Suspense, useState, createContext, useSyncExternalStore, useLayoutEffect, lazy, useId } from 'react';
1
+ import * as React96 from 'react';
2
+ import React96__default, { useContext, useMemo, useRef, useEffect, useCallback, Suspense, useState, createContext, useSyncExternalStore, useLayoutEffect, lazy, useId } from 'react';
3
3
  import { EventBusContext, useTraitScope, useEntitySchemaOptional, useEntitySchema, getAllPages, OrbitalProvider, TraitScopeProvider, ServerBridgeProvider, useCurrentPagePath, VerificationProvider, EntitySchemaProvider, OrbitalThemeProvider, useServerBridge } from '@almadar/ui/providers';
4
4
  export { EntitySchemaProvider, ServerBridgeProvider, TraitContext, TraitProvider, useEntitySchema, useEntitySchemaOptional, useServerBridge, useTrait, useTraitContext } from '@almadar/ui/providers';
5
5
  import { createLogger, isLogLevelEnabled } from '@almadar/logger';
@@ -937,7 +937,7 @@ var init_Box = __esm({
937
937
  fixed: "fixed",
938
938
  sticky: "sticky"
939
939
  };
940
- Box = React95__default.forwardRef(
940
+ Box = React96__default.forwardRef(
941
941
  ({
942
942
  padding,
943
943
  paddingX,
@@ -1002,7 +1002,7 @@ var init_Box = __esm({
1002
1002
  onPointerDown?.(e);
1003
1003
  }, [hoverEvent, tapReveal, triggerProps, onPointerDown]);
1004
1004
  const isClickable = action || onClick;
1005
- return React95__default.createElement(
1005
+ return React96__default.createElement(
1006
1006
  Component,
1007
1007
  {
1008
1008
  ref,
@@ -1098,7 +1098,7 @@ function loadLib(key, importer) {
1098
1098
  return p;
1099
1099
  }
1100
1100
  function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
1101
- const Lazy = React95__default.lazy(async () => {
1101
+ const Lazy = React96__default.lazy(async () => {
1102
1102
  const lib = await loadLib(libKey, importer);
1103
1103
  const Comp = pick(lib);
1104
1104
  if (!Comp) {
@@ -1108,7 +1108,7 @@ function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
1108
1108
  return { default: Comp };
1109
1109
  });
1110
1110
  const Wrapped = (props) => /* @__PURE__ */ jsx(
1111
- React95__default.Suspense,
1111
+ React96__default.Suspense,
1112
1112
  {
1113
1113
  fallback: /* @__PURE__ */ jsx(
1114
1114
  "span",
@@ -1839,7 +1839,7 @@ var init_Icon = __esm({
1839
1839
  const directIcon = typeof icon === "string" ? void 0 : icon;
1840
1840
  const effectiveName = typeof icon === "string" ? icon : name;
1841
1841
  const family = useIconFamily();
1842
- const RenderedComponent = React95__default.useMemo(() => {
1842
+ const RenderedComponent = React96__default.useMemo(() => {
1843
1843
  if (directIcon) return null;
1844
1844
  return effectiveName ? resolveIconForFamily(effectiveName, family) : null;
1845
1845
  }, [directIcon, effectiveName, family]);
@@ -1901,7 +1901,7 @@ function resolveIconProp(value, sizeClass) {
1901
1901
  const IconComp = value;
1902
1902
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
1903
1903
  }
1904
- if (React95__default.isValidElement(value)) {
1904
+ if (React96__default.isValidElement(value)) {
1905
1905
  return value;
1906
1906
  }
1907
1907
  if (typeof value === "object" && value !== null && isIconLike(value)) {
@@ -1977,7 +1977,7 @@ var init_Button = __esm({
1977
1977
  md: "h-icon-default w-icon-default",
1978
1978
  lg: "h-icon-default w-icon-default"
1979
1979
  };
1980
- Button = React95__default.forwardRef(
1980
+ Button = React96__default.forwardRef(
1981
1981
  ({
1982
1982
  className,
1983
1983
  variant = "primary",
@@ -2045,7 +2045,7 @@ var Dialog;
2045
2045
  var init_Dialog = __esm({
2046
2046
  "components/core/atoms/Dialog.tsx"() {
2047
2047
  init_cn();
2048
- Dialog = React95__default.forwardRef(
2048
+ Dialog = React96__default.forwardRef(
2049
2049
  ({
2050
2050
  role = "dialog",
2051
2051
  "aria-modal": ariaModal = true,
@@ -2163,7 +2163,7 @@ var init_Typography = __esm({
2163
2163
  }) => {
2164
2164
  const variant = variantProp ?? (level ? `h${level}` : "body1");
2165
2165
  const Component = as || defaultElements[variant];
2166
- return React95__default.createElement(
2166
+ return React96__default.createElement(
2167
2167
  Component,
2168
2168
  {
2169
2169
  id,
@@ -2658,7 +2658,7 @@ var init_Badge = __esm({
2658
2658
  md: "px-2.5 py-1 text-sm",
2659
2659
  lg: "px-3 py-1.5 text-base"
2660
2660
  };
2661
- Badge = React95__default.forwardRef(
2661
+ Badge = React96__default.forwardRef(
2662
2662
  ({ className, variant = "default", size = "sm", amount, label, icon, iconAsset, children, onRemove, removeLabel, ...props }, ref) => {
2663
2663
  const iconSizes3 = {
2664
2664
  sm: "h-icon-default w-icon-default",
@@ -2995,7 +2995,7 @@ var init_SvgFlow = __esm({
2995
2995
  width = 100,
2996
2996
  height = 100
2997
2997
  }) => {
2998
- const markerId = React95__default.useMemo(() => {
2998
+ const markerId = React96__default.useMemo(() => {
2999
2999
  flowIdCounter += 1;
3000
3000
  return `almadar-flow-arrow-${flowIdCounter}`;
3001
3001
  }, []);
@@ -3588,7 +3588,7 @@ var init_SvgRing = __esm({
3588
3588
  width = 100,
3589
3589
  height = 100
3590
3590
  }) => {
3591
- const gradientId = React95__default.useMemo(() => {
3591
+ const gradientId = React96__default.useMemo(() => {
3592
3592
  ringIdCounter += 1;
3593
3593
  return `almadar-ring-glow-${ringIdCounter}`;
3594
3594
  }, []);
@@ -3769,7 +3769,7 @@ var init_Input = __esm({
3769
3769
  init_cn();
3770
3770
  init_Icon();
3771
3771
  init_useEventBus();
3772
- Input = React95__default.forwardRef(
3772
+ Input = React96__default.forwardRef(
3773
3773
  ({
3774
3774
  className,
3775
3775
  inputType,
@@ -3929,7 +3929,7 @@ var Label;
3929
3929
  var init_Label = __esm({
3930
3930
  "components/core/atoms/Label.tsx"() {
3931
3931
  init_cn();
3932
- Label = React95__default.forwardRef(
3932
+ Label = React96__default.forwardRef(
3933
3933
  ({ className, required, children, ...props }, ref) => {
3934
3934
  return /* @__PURE__ */ jsxs(
3935
3935
  "label",
@@ -3956,7 +3956,7 @@ var init_Textarea = __esm({
3956
3956
  "components/core/atoms/Textarea.tsx"() {
3957
3957
  init_cn();
3958
3958
  init_useEventBus();
3959
- Textarea = React95__default.forwardRef(
3959
+ Textarea = React96__default.forwardRef(
3960
3960
  ({ className, error, onChange, ...props }, ref) => {
3961
3961
  const eventBus = useEventBus();
3962
3962
  const handleChange = (e) => {
@@ -4195,7 +4195,7 @@ var init_Select = __esm({
4195
4195
  init_cn();
4196
4196
  init_Icon();
4197
4197
  init_useEventBus();
4198
- Select = React95__default.forwardRef(
4198
+ Select = React96__default.forwardRef(
4199
4199
  (props, _ref) => {
4200
4200
  const { multiple, searchable, clearable } = props;
4201
4201
  if (multiple || searchable || clearable) {
@@ -4212,7 +4212,7 @@ var init_Checkbox = __esm({
4212
4212
  "components/core/atoms/Checkbox.tsx"() {
4213
4213
  init_cn();
4214
4214
  init_useEventBus();
4215
- Checkbox = React95__default.forwardRef(
4215
+ Checkbox = React96__default.forwardRef(
4216
4216
  ({ className, label, id, onChange, ...props }, ref) => {
4217
4217
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
4218
4218
  const eventBus = useEventBus();
@@ -4266,7 +4266,7 @@ var init_Spinner = __esm({
4266
4266
  md: "h-6 w-6",
4267
4267
  lg: "h-8 w-8"
4268
4268
  };
4269
- Spinner = React95__default.forwardRef(
4269
+ Spinner = React96__default.forwardRef(
4270
4270
  ({ className, size = "md", overlay, ...props }, ref) => {
4271
4271
  if (overlay) {
4272
4272
  return /* @__PURE__ */ jsx(
@@ -4356,7 +4356,7 @@ var init_Card = __esm({
4356
4356
  chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
4357
4357
  "tile-image-first": "p-0 overflow-hidden"
4358
4358
  };
4359
- Card = React95__default.forwardRef(
4359
+ Card = React96__default.forwardRef(
4360
4360
  ({
4361
4361
  className,
4362
4362
  variant = "bordered",
@@ -4404,9 +4404,9 @@ var init_Card = __esm({
4404
4404
  }
4405
4405
  );
4406
4406
  Card.displayName = "Card";
4407
- CardHeader = React95__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
4407
+ CardHeader = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
4408
4408
  CardHeader.displayName = "CardHeader";
4409
- CardTitle = React95__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4409
+ CardTitle = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4410
4410
  "h3",
4411
4411
  {
4412
4412
  ref,
@@ -4419,11 +4419,11 @@ var init_Card = __esm({
4419
4419
  }
4420
4420
  ));
4421
4421
  CardTitle.displayName = "CardTitle";
4422
- CardContent = React95__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
4422
+ CardContent = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
4423
4423
  CardContent.displayName = "CardContent";
4424
4424
  CardBody = CardContent;
4425
4425
  CardBody.displayName = "CardBody";
4426
- CardFooter = React95__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4426
+ CardFooter = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4427
4427
  "div",
4428
4428
  {
4429
4429
  ref,
@@ -4478,7 +4478,7 @@ var init_FilterPill = __esm({
4478
4478
  md: "w-3.5 h-3.5",
4479
4479
  lg: "w-4 h-4"
4480
4480
  };
4481
- FilterPill = React95__default.forwardRef(
4481
+ FilterPill = React96__default.forwardRef(
4482
4482
  ({
4483
4483
  className,
4484
4484
  variant = "default",
@@ -4607,8 +4607,8 @@ var init_Avatar = __esm({
4607
4607
  actionPayload
4608
4608
  }) => {
4609
4609
  const eventBus = useEventBus();
4610
- const [imgFailed, setImgFailed] = React95__default.useState(false);
4611
- React95__default.useEffect(() => {
4610
+ const [imgFailed, setImgFailed] = React96__default.useState(false);
4611
+ React96__default.useEffect(() => {
4612
4612
  setImgFailed(false);
4613
4613
  }, [src]);
4614
4614
  const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
@@ -4721,7 +4721,7 @@ var init_Center = __esm({
4721
4721
  as: Component = "div"
4722
4722
  }) => {
4723
4723
  const mergedStyle = minHeight ? { minHeight, ...style } : style;
4724
- return React95__default.createElement(Component, {
4724
+ return React96__default.createElement(Component, {
4725
4725
  className: cn(
4726
4726
  inline ? "inline-flex" : "flex",
4727
4727
  horizontal && "justify-center",
@@ -4989,7 +4989,7 @@ var init_Radio = __esm({
4989
4989
  md: "w-2.5 h-2.5",
4990
4990
  lg: "w-3 h-3"
4991
4991
  };
4992
- Radio = React95__default.forwardRef(
4992
+ Radio = React96__default.forwardRef(
4993
4993
  ({
4994
4994
  label,
4995
4995
  helperText,
@@ -5006,12 +5006,12 @@ var init_Radio = __esm({
5006
5006
  onChange,
5007
5007
  ...props
5008
5008
  }, ref) => {
5009
- const reactId = React95__default.useId();
5009
+ const reactId = React96__default.useId();
5010
5010
  const baseId = id || `radio-${reactId}`;
5011
5011
  const hasError = !!error;
5012
5012
  const eventBus = useEventBus();
5013
- const [selected, setSelected] = React95__default.useState(value);
5014
- React95__default.useEffect(() => {
5013
+ const [selected, setSelected] = React96__default.useState(value);
5014
+ React96__default.useEffect(() => {
5015
5015
  if (value !== void 0) setSelected(value);
5016
5016
  }, [value]);
5017
5017
  const pick = (next, e) => {
@@ -5193,7 +5193,7 @@ var init_Switch = __esm({
5193
5193
  "components/core/atoms/Switch.tsx"() {
5194
5194
  "use client";
5195
5195
  init_cn();
5196
- Switch = React95.forwardRef(
5196
+ Switch = React96.forwardRef(
5197
5197
  ({
5198
5198
  checked,
5199
5199
  defaultChecked = false,
@@ -5204,10 +5204,10 @@ var init_Switch = __esm({
5204
5204
  name,
5205
5205
  className
5206
5206
  }, ref) => {
5207
- const [isChecked, setIsChecked] = React95.useState(
5207
+ const [isChecked, setIsChecked] = React96.useState(
5208
5208
  checked !== void 0 ? checked : defaultChecked
5209
5209
  );
5210
- React95.useEffect(() => {
5210
+ React96.useEffect(() => {
5211
5211
  if (checked !== void 0) {
5212
5212
  setIsChecked(checked);
5213
5213
  }
@@ -5370,7 +5370,7 @@ var init_Stack = __esm({
5370
5370
  };
5371
5371
  const isHorizontal = direction === "horizontal";
5372
5372
  const directionClass = responsive && isHorizontal ? reverse ? "flex-col-reverse md:flex-row-reverse" : "flex-col md:flex-row" : isHorizontal ? reverse ? "flex-row-reverse" : "flex-row" : reverse ? "flex-col-reverse" : "flex-col";
5373
- return React95__default.createElement(
5373
+ return React96__default.createElement(
5374
5374
  Component,
5375
5375
  {
5376
5376
  className: cn(
@@ -5570,7 +5570,7 @@ var Aside;
5570
5570
  var init_Aside = __esm({
5571
5571
  "components/core/atoms/Aside.tsx"() {
5572
5572
  init_cn();
5573
- Aside = React95__default.forwardRef(
5573
+ Aside = React96__default.forwardRef(
5574
5574
  ({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
5575
5575
  );
5576
5576
  Aside.displayName = "Aside";
@@ -5649,9 +5649,9 @@ var init_LawReferenceTooltip = __esm({
5649
5649
  className
5650
5650
  }) => {
5651
5651
  const { t } = useTranslate();
5652
- const [isVisible, setIsVisible] = React95__default.useState(false);
5653
- const timeoutRef = React95__default.useRef(null);
5654
- const triggerRef = React95__default.useRef(null);
5652
+ const [isVisible, setIsVisible] = React96__default.useState(false);
5653
+ const timeoutRef = React96__default.useRef(null);
5654
+ const triggerRef = React96__default.useRef(null);
5655
5655
  const handleMouseEnter = () => {
5656
5656
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
5657
5657
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -5662,7 +5662,7 @@ var init_LawReferenceTooltip = __esm({
5662
5662
  };
5663
5663
  const { revealed, triggerProps } = useTapReveal({ refs: [triggerRef] });
5664
5664
  const open = isVisible || revealed;
5665
- React95__default.useEffect(() => {
5665
+ React96__default.useEffect(() => {
5666
5666
  return () => {
5667
5667
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
5668
5668
  };
@@ -5872,7 +5872,7 @@ var init_StatusDot = __esm({
5872
5872
  md: "w-2.5 h-2.5",
5873
5873
  lg: "w-3 h-3"
5874
5874
  };
5875
- StatusDot = React95__default.forwardRef(
5875
+ StatusDot = React96__default.forwardRef(
5876
5876
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
5877
5877
  return /* @__PURE__ */ jsx(
5878
5878
  "span",
@@ -5926,7 +5926,7 @@ var init_TrendIndicator = __esm({
5926
5926
  down: "trending-down",
5927
5927
  flat: "arrow-right"
5928
5928
  };
5929
- TrendIndicator = React95__default.forwardRef(
5929
+ TrendIndicator = React96__default.forwardRef(
5930
5930
  ({
5931
5931
  className,
5932
5932
  value,
@@ -5993,7 +5993,7 @@ var init_RangeSlider = __esm({
5993
5993
  md: "w-4 h-4",
5994
5994
  lg: "w-5 h-5"
5995
5995
  };
5996
- RangeSlider = React95__default.forwardRef(
5996
+ RangeSlider = React96__default.forwardRef(
5997
5997
  ({
5998
5998
  className,
5999
5999
  min = 0,
@@ -6552,7 +6552,7 @@ var init_ContentSection = __esm({
6552
6552
  md: "py-16",
6553
6553
  lg: "py-24"
6554
6554
  };
6555
- ContentSection = React95__default.forwardRef(
6555
+ ContentSection = React96__default.forwardRef(
6556
6556
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
6557
6557
  return /* @__PURE__ */ jsx(
6558
6558
  Box,
@@ -7086,7 +7086,7 @@ var init_AnimatedReveal = __esm({
7086
7086
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
7087
7087
  "none": {}
7088
7088
  };
7089
- AnimatedReveal = React95__default.forwardRef(
7089
+ AnimatedReveal = React96__default.forwardRef(
7090
7090
  ({
7091
7091
  trigger = "scroll",
7092
7092
  animation = "fade-up",
@@ -7246,7 +7246,7 @@ var init_AnimatedGraphic = __esm({
7246
7246
  "components/marketing/atoms/AnimatedGraphic.tsx"() {
7247
7247
  "use client";
7248
7248
  init_cn();
7249
- AnimatedGraphic = React95__default.forwardRef(
7249
+ AnimatedGraphic = React96__default.forwardRef(
7250
7250
  ({
7251
7251
  src,
7252
7252
  svgContent,
@@ -7269,7 +7269,7 @@ var init_AnimatedGraphic = __esm({
7269
7269
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
7270
7270
  const resolvedSvg = svgContent ?? fetchedSvg;
7271
7271
  const prevAnimateRef = useRef(animate);
7272
- const setRef = React95__default.useCallback(
7272
+ const setRef = React96__default.useCallback(
7273
7273
  (node) => {
7274
7274
  containerRef.current = node;
7275
7275
  if (typeof ref === "function") ref(node);
@@ -7876,7 +7876,7 @@ function GameCard({
7876
7876
  className
7877
7877
  }) {
7878
7878
  const eventBus = useEventBus();
7879
- const handleClick = React95.useCallback(() => {
7879
+ const handleClick = React96.useCallback(() => {
7880
7880
  if (disabled) return;
7881
7881
  onClick?.(id);
7882
7882
  if (clickEvent) eventBus.emit(`UI:${clickEvent}`, { cardId: id });
@@ -8158,9 +8158,9 @@ function ControlButton({
8158
8158
  className
8159
8159
  }) {
8160
8160
  const eventBus = useEventBus();
8161
- const [isPressed, setIsPressed] = React95.useState(false);
8161
+ const [isPressed, setIsPressed] = React96.useState(false);
8162
8162
  const actualPressed = pressed ?? isPressed;
8163
- const handlePointerDown = React95.useCallback(
8163
+ const handlePointerDown = React96.useCallback(
8164
8164
  (e) => {
8165
8165
  e.preventDefault();
8166
8166
  if (disabled) return;
@@ -8170,7 +8170,7 @@ function ControlButton({
8170
8170
  },
8171
8171
  [disabled, pressEvent, eventBus, onPress]
8172
8172
  );
8173
- const handlePointerUp = React95.useCallback(
8173
+ const handlePointerUp = React96.useCallback(
8174
8174
  (e) => {
8175
8175
  e.preventDefault();
8176
8176
  if (disabled) return;
@@ -8180,7 +8180,7 @@ function ControlButton({
8180
8180
  },
8181
8181
  [disabled, releaseEvent, eventBus, onRelease]
8182
8182
  );
8183
- const handlePointerLeave = React95.useCallback(
8183
+ const handlePointerLeave = React96.useCallback(
8184
8184
  (e) => {
8185
8185
  if (isPressed) {
8186
8186
  setIsPressed(false);
@@ -9199,8 +9199,8 @@ function MiniMap({
9199
9199
  tileAssets,
9200
9200
  unitAssets
9201
9201
  }) {
9202
- const canvasRef = React95.useRef(null);
9203
- const imgCacheRef = React95.useRef(/* @__PURE__ */ new Map());
9202
+ const canvasRef = React96.useRef(null);
9203
+ const imgCacheRef = React96.useRef(/* @__PURE__ */ new Map());
9204
9204
  function loadImg(url) {
9205
9205
  const cached = imgCacheRef.current.get(url);
9206
9206
  if (cached) return cached.complete ? cached : null;
@@ -9215,7 +9215,7 @@ function MiniMap({
9215
9215
  imgCacheRef.current.set(url, img);
9216
9216
  return null;
9217
9217
  }
9218
- React95.useEffect(() => {
9218
+ React96.useEffect(() => {
9219
9219
  const canvas = canvasRef.current;
9220
9220
  if (!canvas) return;
9221
9221
  const ctx = canvas.getContext("2d");
@@ -9350,8 +9350,8 @@ function ControlGrid({
9350
9350
  className
9351
9351
  }) {
9352
9352
  const eventBus = useEventBus();
9353
- const [active, setActive] = React95.useState(/* @__PURE__ */ new Set());
9354
- const handlePress = React95.useCallback(
9353
+ const [active, setActive] = React96.useState(/* @__PURE__ */ new Set());
9354
+ const handlePress = React96.useCallback(
9355
9355
  (id) => {
9356
9356
  setActive((prev) => new Set(prev).add(id));
9357
9357
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -9365,7 +9365,7 @@ function ControlGrid({
9365
9365
  },
9366
9366
  [kind, actionEvent, directionEvent, directionEvents, eventBus, onAction, onDirection]
9367
9367
  );
9368
- const handleRelease = React95.useCallback(
9368
+ const handleRelease = React96.useCallback(
9369
9369
  (id) => {
9370
9370
  setActive((prev) => {
9371
9371
  const next = new Set(prev);
@@ -9623,7 +9623,7 @@ function InventoryGrid({
9623
9623
  const eventBus = useEventBus();
9624
9624
  const slotCount = totalSlots ?? items.length;
9625
9625
  const emptySlotCount = Math.max(0, slotCount - items.length);
9626
- const handleSelect = React95.useCallback(
9626
+ const handleSelect = React96.useCallback(
9627
9627
  (id) => {
9628
9628
  onSelect?.(id);
9629
9629
  if (selectEvent) {
@@ -9840,7 +9840,7 @@ function GameMenu({
9840
9840
  }) {
9841
9841
  const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
9842
9842
  const eventBus = useEventBus();
9843
- const handleOptionClick = React95.useCallback(
9843
+ const handleOptionClick = React96.useCallback(
9844
9844
  (option) => {
9845
9845
  if (option.event) {
9846
9846
  eventBus.emit(`UI:${option.event}`, { option });
@@ -9917,6 +9917,214 @@ var init_GameMenu = __esm({
9917
9917
  GameMenu.displayName = "GameMenu";
9918
9918
  }
9919
9919
  });
9920
+ function StateNode({
9921
+ name,
9922
+ isCurrent = false,
9923
+ isSelected = false,
9924
+ isInitial = false,
9925
+ position,
9926
+ onClick,
9927
+ className
9928
+ }) {
9929
+ return /* @__PURE__ */ jsx(
9930
+ Box,
9931
+ {
9932
+ position: "absolute",
9933
+ display: "flex",
9934
+ className: cn(
9935
+ "items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
9936
+ "min-w-[80px] h-[80px] px-3",
9937
+ isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
9938
+ isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
9939
+ !isCurrent && !isSelected && "bg-card border-border hover:border-muted-foreground hover:scale-105",
9940
+ className
9941
+ ),
9942
+ style: {
9943
+ left: position.x,
9944
+ top: position.y,
9945
+ transform: "translate(-50%, -50%)"
9946
+ },
9947
+ onClick,
9948
+ children: /* @__PURE__ */ jsxs(Box, { className: "text-center", children: [
9949
+ isInitial && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs block", children: "\u25B6 start" }),
9950
+ /* @__PURE__ */ jsx(
9951
+ Typography,
9952
+ {
9953
+ variant: "body2",
9954
+ className: cn(
9955
+ "font-bold whitespace-nowrap",
9956
+ isCurrent ? "text-primary" : "text-foreground"
9957
+ ),
9958
+ children: name
9959
+ }
9960
+ )
9961
+ ] })
9962
+ }
9963
+ );
9964
+ }
9965
+ var init_StateNode = __esm({
9966
+ "components/game/2d/organisms/StateNode.tsx"() {
9967
+ init_atoms();
9968
+ init_cn();
9969
+ StateNode.displayName = "StateNode";
9970
+ }
9971
+ });
9972
+ function TransitionArrow({
9973
+ from,
9974
+ to,
9975
+ eventLabel,
9976
+ guardHint,
9977
+ isActive = false,
9978
+ onClick,
9979
+ className
9980
+ }) {
9981
+ const dx = to.x - from.x;
9982
+ const dy = to.y - from.y;
9983
+ const dist = Math.sqrt(dx * dx + dy * dy);
9984
+ if (dist === 0) return /* @__PURE__ */ jsx(Fragment, {});
9985
+ const nx = dx / dist;
9986
+ const ny = dy / dist;
9987
+ const startX = from.x + nx * NODE_RADIUS;
9988
+ const startY = from.y + ny * NODE_RADIUS;
9989
+ const endX = to.x - nx * NODE_RADIUS;
9990
+ const endY = to.y - ny * NODE_RADIUS;
9991
+ const midX = (startX + endX) / 2;
9992
+ const midY = (startY + endY) / 2;
9993
+ const perpX = -ny * 20;
9994
+ const perpY = nx * 20;
9995
+ const ctrlX = midX + perpX;
9996
+ const ctrlY = midY + perpY;
9997
+ const path = `M ${startX} ${startY} Q ${ctrlX} ${ctrlY} ${endX} ${endY}`;
9998
+ return /* @__PURE__ */ jsxs("g", { className: cn("cursor-pointer", className), onClick, children: [
9999
+ /* @__PURE__ */ jsx(
10000
+ "path",
10001
+ {
10002
+ d: path,
10003
+ fill: "none",
10004
+ stroke: isActive ? "var(--color-primary)" : "var(--color-border)",
10005
+ strokeWidth: isActive ? 3 : 2,
10006
+ markerEnd: isActive ? "url(#arrowhead-active)" : "url(#arrowhead)"
10007
+ }
10008
+ ),
10009
+ /* @__PURE__ */ jsx(
10010
+ "text",
10011
+ {
10012
+ x: ctrlX,
10013
+ y: ctrlY - 8,
10014
+ textAnchor: "middle",
10015
+ fill: isActive ? "var(--color-primary)" : "var(--color-foreground)",
10016
+ fontSize: 12,
10017
+ fontWeight: isActive ? "bold" : "normal",
10018
+ className: "select-none",
10019
+ children: eventLabel
10020
+ }
10021
+ ),
10022
+ guardHint && /* @__PURE__ */ jsx(
10023
+ "text",
10024
+ {
10025
+ x: ctrlX,
10026
+ y: ctrlY + 6,
10027
+ textAnchor: "middle",
10028
+ fill: "var(--color-warning)",
10029
+ fontSize: 10,
10030
+ className: "select-none",
10031
+ children: "\u26A0 " + guardHint
10032
+ }
10033
+ )
10034
+ ] });
10035
+ }
10036
+ var NODE_RADIUS;
10037
+ var init_TransitionArrow = __esm({
10038
+ "components/game/2d/organisms/TransitionArrow.tsx"() {
10039
+ init_cn();
10040
+ NODE_RADIUS = 40;
10041
+ TransitionArrow.displayName = "TransitionArrow";
10042
+ }
10043
+ });
10044
+ function layoutStates(states, width, height) {
10045
+ const cx = width / 2;
10046
+ const cy = height / 2;
10047
+ const radius = Math.min(cx, cy) - 60;
10048
+ const positions = {};
10049
+ states.forEach((state, i) => {
10050
+ const angle = 2 * Math.PI * i / Math.max(states.length, 1) - Math.PI / 2;
10051
+ positions[state] = { x: cx + radius * Math.cos(angle), y: cy + radius * Math.sin(angle) };
10052
+ });
10053
+ return positions;
10054
+ }
10055
+ function StateGraph({
10056
+ states,
10057
+ transitions = [],
10058
+ currentState,
10059
+ selectedState,
10060
+ addingFrom,
10061
+ initialState,
10062
+ width = 500,
10063
+ height = 400,
10064
+ nodeClickEvent,
10065
+ className
10066
+ }) {
10067
+ const eventBus = useEventBus();
10068
+ const nodes = states ?? [];
10069
+ const positions = React96.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
10070
+ return /* @__PURE__ */ jsxs(
10071
+ Box,
10072
+ {
10073
+ position: "relative",
10074
+ className: cn("rounded-container border border-border bg-background overflow-hidden", className),
10075
+ style: { width, height },
10076
+ children: [
10077
+ /* @__PURE__ */ jsxs("svg", { width, height, className: "absolute inset-0", style: { pointerEvents: "none" }, children: [
10078
+ /* @__PURE__ */ jsxs("defs", { children: [
10079
+ /* @__PURE__ */ jsx("marker", { id: "arrowhead", markerWidth: "10", markerHeight: "7", refX: "10", refY: "3.5", orient: "auto", children: /* @__PURE__ */ jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "var(--color-border)" }) }),
10080
+ /* @__PURE__ */ jsx("marker", { id: "arrowhead-active", markerWidth: "10", markerHeight: "7", refX: "10", refY: "3.5", orient: "auto", children: /* @__PURE__ */ jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "var(--color-primary)" }) })
10081
+ ] }),
10082
+ transitions.map((tr, i) => {
10083
+ const fromPos = positions[tr.from];
10084
+ const toPos = positions[tr.to];
10085
+ if (!fromPos || !toPos) return null;
10086
+ return /* @__PURE__ */ jsx(
10087
+ TransitionArrow,
10088
+ {
10089
+ from: fromPos,
10090
+ to: toPos,
10091
+ eventLabel: tr.event,
10092
+ guardHint: tr.guardHint,
10093
+ isActive: tr.from === currentState
10094
+ },
10095
+ `${tr.from}-${tr.event}-${tr.to}-${i}`
10096
+ );
10097
+ })
10098
+ ] }),
10099
+ nodes.map((state) => {
10100
+ const pos = positions[state];
10101
+ if (!pos) return null;
10102
+ return /* @__PURE__ */ jsx(
10103
+ StateNode,
10104
+ {
10105
+ name: state,
10106
+ position: pos,
10107
+ isCurrent: state === currentState,
10108
+ isSelected: state === selectedState || state === addingFrom,
10109
+ isInitial: state === initialState,
10110
+ onClick: nodeClickEvent ? () => eventBus.emit(`UI:${nodeClickEvent}`, { stateId: state }) : void 0
10111
+ },
10112
+ state
10113
+ );
10114
+ })
10115
+ ]
10116
+ }
10117
+ );
10118
+ }
10119
+ var init_StateGraph = __esm({
10120
+ "components/game/2d/molecules/StateGraph.tsx"() {
10121
+ init_atoms();
10122
+ init_cn();
10123
+ init_useEventBus();
10124
+ init_StateNode();
10125
+ init_TransitionArrow();
10126
+ }
10127
+ });
9920
10128
  function useCamera() {
9921
10129
  const cameraRef = useRef({ x: 0, y: 0, zoom: 1 });
9922
10130
  const targetCameraRef = useRef(null);
@@ -11335,7 +11543,7 @@ function LinearView({
11335
11543
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
11336
11544
  const isDone = i < currentIdx;
11337
11545
  const isCurrent = i === currentIdx;
11338
- return /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
11546
+ return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
11339
11547
  i > 0 && /* @__PURE__ */ jsx(
11340
11548
  Typography,
11341
11549
  {
@@ -11863,7 +12071,7 @@ function SequenceBar({
11863
12071
  onSlotRemove(index);
11864
12072
  }, [onSlotRemove, playing]);
11865
12073
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
11866
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
12074
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
11867
12075
  i > 0 && /* @__PURE__ */ jsx(
11868
12076
  Typography,
11869
12077
  {
@@ -12604,130 +12812,6 @@ var init_EventHandlerBoard = __esm({
12604
12812
  EventHandlerBoard.displayName = "EventHandlerBoard";
12605
12813
  }
12606
12814
  });
12607
- function StateNode({
12608
- name,
12609
- isCurrent = false,
12610
- isSelected = false,
12611
- isInitial = false,
12612
- position,
12613
- onClick,
12614
- className
12615
- }) {
12616
- return /* @__PURE__ */ jsx(
12617
- Box,
12618
- {
12619
- position: "absolute",
12620
- display: "flex",
12621
- className: cn(
12622
- "items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
12623
- "min-w-[80px] h-[80px] px-3",
12624
- isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
12625
- isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
12626
- !isCurrent && !isSelected && "bg-card border-border hover:border-muted-foreground hover:scale-105",
12627
- className
12628
- ),
12629
- style: {
12630
- left: position.x,
12631
- top: position.y,
12632
- transform: "translate(-50%, -50%)"
12633
- },
12634
- onClick,
12635
- children: /* @__PURE__ */ jsxs(Box, { className: "text-center", children: [
12636
- isInitial && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs block", children: "\u25B6 start" }),
12637
- /* @__PURE__ */ jsx(
12638
- Typography,
12639
- {
12640
- variant: "body2",
12641
- className: cn(
12642
- "font-bold whitespace-nowrap",
12643
- isCurrent ? "text-primary" : "text-foreground"
12644
- ),
12645
- children: name
12646
- }
12647
- )
12648
- ] })
12649
- }
12650
- );
12651
- }
12652
- var init_StateNode = __esm({
12653
- "components/game/2d/organisms/StateNode.tsx"() {
12654
- init_atoms();
12655
- init_cn();
12656
- StateNode.displayName = "StateNode";
12657
- }
12658
- });
12659
- function TransitionArrow({
12660
- from,
12661
- to,
12662
- eventLabel,
12663
- guardHint,
12664
- isActive = false,
12665
- onClick,
12666
- className
12667
- }) {
12668
- const dx = to.x - from.x;
12669
- const dy = to.y - from.y;
12670
- const dist = Math.sqrt(dx * dx + dy * dy);
12671
- if (dist === 0) return /* @__PURE__ */ jsx(Fragment, {});
12672
- const nx = dx / dist;
12673
- const ny = dy / dist;
12674
- const startX = from.x + nx * NODE_RADIUS;
12675
- const startY = from.y + ny * NODE_RADIUS;
12676
- const endX = to.x - nx * NODE_RADIUS;
12677
- const endY = to.y - ny * NODE_RADIUS;
12678
- const midX = (startX + endX) / 2;
12679
- const midY = (startY + endY) / 2;
12680
- const perpX = -ny * 20;
12681
- const perpY = nx * 20;
12682
- const ctrlX = midX + perpX;
12683
- const ctrlY = midY + perpY;
12684
- const path = `M ${startX} ${startY} Q ${ctrlX} ${ctrlY} ${endX} ${endY}`;
12685
- return /* @__PURE__ */ jsxs("g", { className: cn("cursor-pointer", className), onClick, children: [
12686
- /* @__PURE__ */ jsx(
12687
- "path",
12688
- {
12689
- d: path,
12690
- fill: "none",
12691
- stroke: isActive ? "var(--color-primary)" : "var(--color-border)",
12692
- strokeWidth: isActive ? 3 : 2,
12693
- markerEnd: isActive ? "url(#arrowhead-active)" : "url(#arrowhead)"
12694
- }
12695
- ),
12696
- /* @__PURE__ */ jsx(
12697
- "text",
12698
- {
12699
- x: ctrlX,
12700
- y: ctrlY - 8,
12701
- textAnchor: "middle",
12702
- fill: isActive ? "var(--color-primary)" : "var(--color-foreground)",
12703
- fontSize: 12,
12704
- fontWeight: isActive ? "bold" : "normal",
12705
- className: "select-none",
12706
- children: eventLabel
12707
- }
12708
- ),
12709
- guardHint && /* @__PURE__ */ jsx(
12710
- "text",
12711
- {
12712
- x: ctrlX,
12713
- y: ctrlY + 6,
12714
- textAnchor: "middle",
12715
- fill: "var(--color-warning)",
12716
- fontSize: 10,
12717
- className: "select-none",
12718
- children: "\u26A0 " + guardHint
12719
- }
12720
- )
12721
- ] });
12722
- }
12723
- var NODE_RADIUS;
12724
- var init_TransitionArrow = __esm({
12725
- "components/game/2d/organisms/TransitionArrow.tsx"() {
12726
- init_cn();
12727
- NODE_RADIUS = 40;
12728
- TransitionArrow.displayName = "TransitionArrow";
12729
- }
12730
- });
12731
12815
  function VariablePanel({
12732
12816
  entityName,
12733
12817
  variables,
@@ -12813,7 +12897,7 @@ var init_StateJsonView = __esm({
12813
12897
  StateJsonView.displayName = "StateJsonView";
12814
12898
  }
12815
12899
  });
12816
- function layoutStates(states, width, height) {
12900
+ function layoutStates2(states, width, height) {
12817
12901
  const cx = width / 2;
12818
12902
  const cy = height / 2;
12819
12903
  const radius = Math.min(cx, cy) - 60;
@@ -12881,7 +12965,7 @@ function StateArchitectBoard({
12881
12965
  }, []);
12882
12966
  const GRAPH_W = 500;
12883
12967
  const GRAPH_H = 400;
12884
- const positions = useMemo(() => layoutStates(entityStates, GRAPH_W, GRAPH_H), [entityStates]);
12968
+ const positions = useMemo(() => layoutStates2(entityStates, GRAPH_W, GRAPH_H), [entityStates]);
12885
12969
  const handleStateClick = useCallback((state) => {
12886
12970
  if (isTesting) return;
12887
12971
  if (addingFrom) {
@@ -14863,7 +14947,7 @@ var init_ErrorBoundary = __esm({
14863
14947
  }
14864
14948
  );
14865
14949
  };
14866
- ErrorBoundary = class extends React95__default.Component {
14950
+ ErrorBoundary = class extends React96__default.Component {
14867
14951
  constructor(props) {
14868
14952
  super(props);
14869
14953
  __publicField(this, "reset", () => {
@@ -15145,7 +15229,7 @@ var init_Container = __esm({
15145
15229
  as: Component = "div"
15146
15230
  }) => {
15147
15231
  const resolvedSize = maxWidth ?? size ?? "lg";
15148
- return React95__default.createElement(
15232
+ return React96__default.createElement(
15149
15233
  Component,
15150
15234
  {
15151
15235
  className: cn(
@@ -17813,7 +17897,7 @@ var init_CodeBlock = __esm({
17813
17897
  DIFF_STYLE_FALLBACK = { bg: "", prefix: " ", text: "text-foreground" };
17814
17898
  LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
17815
17899
  HIDDEN_LINE_NUMBERS = { display: "none" };
17816
- CodeBlock = React95__default.memo(
17900
+ CodeBlock = React96__default.memo(
17817
17901
  ({
17818
17902
  code: rawCode,
17819
17903
  language = "text",
@@ -18400,7 +18484,7 @@ var init_MarkdownContent = __esm({
18400
18484
  init_Box();
18401
18485
  init_CodeBlock();
18402
18486
  init_cn();
18403
- MarkdownContent = React95__default.memo(
18487
+ MarkdownContent = React96__default.memo(
18404
18488
  ({ content, direction = "ltr", className }) => {
18405
18489
  const { t: _t } = useTranslate();
18406
18490
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -19677,7 +19761,7 @@ var init_StateMachineView = __esm({
19677
19761
  style: { top: title ? 30 : 0 },
19678
19762
  children: [
19679
19763
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
19680
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React95__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
19764
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React96__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
19681
19765
  StateNode2,
19682
19766
  {
19683
19767
  state,
@@ -25234,8 +25318,8 @@ var init_Menu = __esm({
25234
25318
  "bottom-end": "bottom-start"
25235
25319
  };
25236
25320
  const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
25237
- const triggerChild = React95__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
25238
- const triggerElement = React95__default.cloneElement(
25321
+ const triggerChild = React96__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
25322
+ const triggerElement = React96__default.cloneElement(
25239
25323
  triggerChild,
25240
25324
  {
25241
25325
  ref: triggerRef,
@@ -25330,14 +25414,14 @@ function useDataDnd(args) {
25330
25414
  const isZone = Boolean(dragGroup || accepts || sortable);
25331
25415
  const enabled = isZone || Boolean(dndRoot);
25332
25416
  const eventBus = useEventBus();
25333
- const parentRoot = React95__default.useContext(RootCtx);
25417
+ const parentRoot = React96__default.useContext(RootCtx);
25334
25418
  const isRoot = enabled && parentRoot === null;
25335
- const zoneId = React95__default.useId();
25419
+ const zoneId = React96__default.useId();
25336
25420
  const ownGroup = dragGroup ?? accepts ?? zoneId;
25337
- const [optimisticOrders, setOptimisticOrders] = React95__default.useState(() => /* @__PURE__ */ new Map());
25338
- const optimisticOrdersRef = React95__default.useRef(optimisticOrders);
25421
+ const [optimisticOrders, setOptimisticOrders] = React96__default.useState(() => /* @__PURE__ */ new Map());
25422
+ const optimisticOrdersRef = React96__default.useRef(optimisticOrders);
25339
25423
  optimisticOrdersRef.current = optimisticOrders;
25340
- const clearOptimisticOrder = React95__default.useCallback((group) => {
25424
+ const clearOptimisticOrder = React96__default.useCallback((group) => {
25341
25425
  setOptimisticOrders((prev) => {
25342
25426
  if (!prev.has(group)) return prev;
25343
25427
  const next = new Map(prev);
@@ -25362,7 +25446,7 @@ function useDataDnd(args) {
25362
25446
  const raw = it[dndItemIdField];
25363
25447
  return raw != null ? String(raw) : `__idx_${idx}`;
25364
25448
  }).join("|");
25365
- const itemIds = React95__default.useMemo(
25449
+ const itemIds = React96__default.useMemo(
25366
25450
  () => orderedItems.map((it, idx) => {
25367
25451
  const raw = it[dndItemIdField];
25368
25452
  return raw != null ? String(raw) : `__idx_${idx}`;
@@ -25373,7 +25457,7 @@ function useDataDnd(args) {
25373
25457
  const raw = it[dndItemIdField];
25374
25458
  return raw != null ? String(raw) : `__${idx}`;
25375
25459
  }).join("|");
25376
- React95__default.useEffect(() => {
25460
+ React96__default.useEffect(() => {
25377
25461
  const root = isRoot ? null : parentRoot;
25378
25462
  if (root) {
25379
25463
  root.clearOptimisticOrder(ownGroup);
@@ -25381,20 +25465,20 @@ function useDataDnd(args) {
25381
25465
  clearOptimisticOrder(ownGroup);
25382
25466
  }
25383
25467
  }, [itemsContentSig, ownGroup]);
25384
- const zonesRef = React95__default.useRef(/* @__PURE__ */ new Map());
25385
- const registerZone = React95__default.useCallback((zoneId2, meta2) => {
25468
+ const zonesRef = React96__default.useRef(/* @__PURE__ */ new Map());
25469
+ const registerZone = React96__default.useCallback((zoneId2, meta2) => {
25386
25470
  zonesRef.current.set(zoneId2, meta2);
25387
25471
  }, []);
25388
- const unregisterZone = React95__default.useCallback((zoneId2) => {
25472
+ const unregisterZone = React96__default.useCallback((zoneId2) => {
25389
25473
  zonesRef.current.delete(zoneId2);
25390
25474
  }, []);
25391
- const [activeDrag, setActiveDrag] = React95__default.useState(null);
25392
- const [overZoneGroup, setOverZoneGroup] = React95__default.useState(null);
25393
- const meta = React95__default.useMemo(
25475
+ const [activeDrag, setActiveDrag] = React96__default.useState(null);
25476
+ const [overZoneGroup, setOverZoneGroup] = React96__default.useState(null);
25477
+ const meta = React96__default.useMemo(
25394
25478
  () => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
25395
25479
  [ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
25396
25480
  );
25397
- React95__default.useEffect(() => {
25481
+ React96__default.useEffect(() => {
25398
25482
  const target = isRoot ? null : parentRoot;
25399
25483
  if (!target) {
25400
25484
  zonesRef.current.set(zoneId, meta);
@@ -25413,7 +25497,7 @@ function useDataDnd(args) {
25413
25497
  }, [parentRoot, isRoot, zoneId, meta]);
25414
25498
  const sensors = useAlmadarDndSensors(true);
25415
25499
  const collisionDetection = almadarDndCollisionDetection;
25416
- const findZoneByItem = React95__default.useCallback(
25500
+ const findZoneByItem = React96__default.useCallback(
25417
25501
  (id) => {
25418
25502
  for (const z of zonesRef.current.values()) {
25419
25503
  if (z.itemIds.includes(id)) return z;
@@ -25422,7 +25506,7 @@ function useDataDnd(args) {
25422
25506
  },
25423
25507
  []
25424
25508
  );
25425
- React95__default.useCallback(
25509
+ React96__default.useCallback(
25426
25510
  (group) => {
25427
25511
  for (const z of zonesRef.current.values()) {
25428
25512
  if (z.group === group) return z;
@@ -25431,7 +25515,7 @@ function useDataDnd(args) {
25431
25515
  },
25432
25516
  []
25433
25517
  );
25434
- const handleDragEnd = React95__default.useCallback(
25518
+ const handleDragEnd = React96__default.useCallback(
25435
25519
  (event) => {
25436
25520
  const { active, over } = event;
25437
25521
  const activeIdStr = String(active.id);
@@ -25522,8 +25606,8 @@ function useDataDnd(args) {
25522
25606
  },
25523
25607
  [eventBus]
25524
25608
  );
25525
- const sortableData = React95__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
25526
- const SortableItem = React95__default.useCallback(
25609
+ const sortableData = React96__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
25610
+ const SortableItem = React96__default.useCallback(
25527
25611
  ({ id, children }) => {
25528
25612
  const {
25529
25613
  attributes,
@@ -25563,7 +25647,7 @@ function useDataDnd(args) {
25563
25647
  id: droppableId,
25564
25648
  data: sortableData
25565
25649
  });
25566
- const ctx = React95__default.useContext(RootCtx);
25650
+ const ctx = React96__default.useContext(RootCtx);
25567
25651
  const activeDrag2 = ctx?.activeDrag ?? null;
25568
25652
  const overZoneGroup2 = ctx?.overZoneGroup ?? null;
25569
25653
  const isThisZoneOver = overZoneGroup2 === ownGroup;
@@ -25578,7 +25662,7 @@ function useDataDnd(args) {
25578
25662
  showForeignPlaceholder,
25579
25663
  ctxAvailable: ctx != null
25580
25664
  });
25581
- React95__default.useEffect(() => {
25665
+ React96__default.useEffect(() => {
25582
25666
  dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
25583
25667
  }, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
25584
25668
  return /* @__PURE__ */ jsx(
@@ -25592,11 +25676,11 @@ function useDataDnd(args) {
25592
25676
  }
25593
25677
  );
25594
25678
  };
25595
- const rootContextValue = React95__default.useMemo(
25679
+ const rootContextValue = React96__default.useMemo(
25596
25680
  () => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
25597
25681
  [registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
25598
25682
  );
25599
- const handleDragStart = React95__default.useCallback((event) => {
25683
+ const handleDragStart = React96__default.useCallback((event) => {
25600
25684
  const sourceZone = findZoneByItem(event.active.id);
25601
25685
  const rect = event.active.rect.current.initial;
25602
25686
  const height = rect?.height && rect.height > 0 ? rect.height : 64;
@@ -25615,7 +25699,7 @@ function useDataDnd(args) {
25615
25699
  isRoot
25616
25700
  });
25617
25701
  }, [findZoneByItem, isRoot, zoneId]);
25618
- const handleDragOver = React95__default.useCallback((event) => {
25702
+ const handleDragOver = React96__default.useCallback((event) => {
25619
25703
  const { active, over } = event;
25620
25704
  const overData = over?.data?.current;
25621
25705
  const overGroup = overData?.dndGroup ?? null;
@@ -25685,7 +25769,7 @@ function useDataDnd(args) {
25685
25769
  return next;
25686
25770
  });
25687
25771
  }, []);
25688
- const handleDragCancel = React95__default.useCallback((event) => {
25772
+ const handleDragCancel = React96__default.useCallback((event) => {
25689
25773
  setActiveDrag(null);
25690
25774
  setOverZoneGroup(null);
25691
25775
  dndLog.warn("dragCancel", {
@@ -25693,12 +25777,12 @@ function useDataDnd(args) {
25693
25777
  reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
25694
25778
  });
25695
25779
  }, []);
25696
- const handleDragEndWithCleanup = React95__default.useCallback((event) => {
25780
+ const handleDragEndWithCleanup = React96__default.useCallback((event) => {
25697
25781
  handleDragEnd(event);
25698
25782
  setActiveDrag(null);
25699
25783
  setOverZoneGroup(null);
25700
25784
  }, [handleDragEnd]);
25701
- const wrapContainer = React95__default.useCallback(
25785
+ const wrapContainer = React96__default.useCallback(
25702
25786
  (children) => {
25703
25787
  if (!enabled) return children;
25704
25788
  const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
@@ -25752,7 +25836,7 @@ var init_useDataDnd = __esm({
25752
25836
  init_useAlmadarDndCollision();
25753
25837
  init_Box();
25754
25838
  dndLog = createLogger("almadar:ui:dnd");
25755
- RootCtx = React95__default.createContext(null);
25839
+ RootCtx = React96__default.createContext(null);
25756
25840
  }
25757
25841
  });
25758
25842
  function renderIconInput(icon, props) {
@@ -26278,7 +26362,7 @@ function DataList({
26278
26362
  }) {
26279
26363
  const eventBus = useEventBus();
26280
26364
  const { t } = useTranslate();
26281
- const [visibleCount, setVisibleCount] = React95__default.useState(pageSize || Infinity);
26365
+ const [visibleCount, setVisibleCount] = React96__default.useState(pageSize || Infinity);
26282
26366
  const fieldDefs = fields ?? columns ?? [];
26283
26367
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
26284
26368
  const dnd = useDataDnd({
@@ -26297,7 +26381,7 @@ function DataList({
26297
26381
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
26298
26382
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
26299
26383
  const hasRenderProp = typeof children === "function";
26300
- React95__default.useEffect(() => {
26384
+ React96__default.useEffect(() => {
26301
26385
  const renderItemTypeOf = typeof schemaRenderItem;
26302
26386
  const childrenTypeOf = typeof children;
26303
26387
  if (data.length > 0 && !hasRenderProp) {
@@ -26401,7 +26485,7 @@ function DataList({
26401
26485
  const items2 = [...data];
26402
26486
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
26403
26487
  const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
26404
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
26488
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
26405
26489
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
26406
26490
  group.items.map((itemData, index) => {
26407
26491
  const id = itemData.id || `${gi}-${index}`;
@@ -26542,7 +26626,7 @@ function DataList({
26542
26626
  className
26543
26627
  ),
26544
26628
  children: [
26545
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
26629
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
26546
26630
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
26547
26631
  group.items.map(
26548
26632
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -26627,7 +26711,7 @@ var init_FormSection = __esm({
26627
26711
  columns = 1,
26628
26712
  className
26629
26713
  }) => {
26630
- const [collapsed, setCollapsed] = React95__default.useState(defaultCollapsed);
26714
+ const [collapsed, setCollapsed] = React96__default.useState(defaultCollapsed);
26631
26715
  const { t } = useTranslate();
26632
26716
  const eventBus = useEventBus();
26633
26717
  const gridClass = {
@@ -26635,7 +26719,7 @@ var init_FormSection = __esm({
26635
26719
  2: "grid-cols-1 md:grid-cols-2",
26636
26720
  3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
26637
26721
  }[columns];
26638
- React95__default.useCallback(() => {
26722
+ React96__default.useCallback(() => {
26639
26723
  if (collapsible) {
26640
26724
  setCollapsed((prev) => !prev);
26641
26725
  eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
@@ -27521,7 +27605,7 @@ var init_Flex = __esm({
27521
27605
  flexStyle.flexBasis = typeof basis === "number" ? `${basis}px` : basis;
27522
27606
  }
27523
27607
  }
27524
- return React95__default.createElement(Component, {
27608
+ return React96__default.createElement(Component, {
27525
27609
  className: cn(
27526
27610
  inline ? "inline-flex" : "flex",
27527
27611
  directionStyles[direction],
@@ -27640,7 +27724,7 @@ var init_Grid = __esm({
27640
27724
  as: Component = "div"
27641
27725
  }) => {
27642
27726
  const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
27643
- return React95__default.createElement(
27727
+ return React96__default.createElement(
27644
27728
  Component,
27645
27729
  {
27646
27730
  className: cn(
@@ -27836,9 +27920,9 @@ var init_Popover = __esm({
27836
27920
  onMouseLeave: handleClose,
27837
27921
  onPointerDown: tapTriggerProps.onPointerDown
27838
27922
  };
27839
- const childElement = React95__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
27923
+ const childElement = React96__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
27840
27924
  const childPointerDown = childElement.props.onPointerDown;
27841
- const triggerElement = React95__default.cloneElement(
27925
+ const triggerElement = React96__default.cloneElement(
27842
27926
  childElement,
27843
27927
  {
27844
27928
  ref: triggerRef,
@@ -28440,9 +28524,9 @@ var init_Tooltip = __esm({
28440
28524
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
28441
28525
  };
28442
28526
  }, []);
28443
- const triggerElement = React95__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
28527
+ const triggerElement = React96__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
28444
28528
  const childPointerDown = triggerElement.props.onPointerDown;
28445
- const trigger = React95__default.cloneElement(triggerElement, {
28529
+ const trigger = React96__default.cloneElement(triggerElement, {
28446
28530
  ref: triggerRef,
28447
28531
  onMouseEnter: handleMouseEnter,
28448
28532
  onMouseLeave: handleMouseLeave,
@@ -28532,7 +28616,7 @@ var init_WizardProgress = __esm({
28532
28616
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
28533
28617
  const isActive = index === currentStep;
28534
28618
  const isCompleted = index < currentStep;
28535
- return /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
28619
+ return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
28536
28620
  /* @__PURE__ */ jsx(
28537
28621
  "button",
28538
28622
  {
@@ -30092,7 +30176,7 @@ var init_MapView = __esm({
30092
30176
  shadowSize: [41, 41]
30093
30177
  });
30094
30178
  L.Marker.prototype.options.icon = defaultIcon;
30095
- const { useEffect: useEffect67, useRef: useRef65, useCallback: useCallback99, useState: useState97 } = React95__default;
30179
+ const { useEffect: useEffect67, useRef: useRef65, useCallback: useCallback99, useState: useState97 } = React96__default;
30096
30180
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
30097
30181
  const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
30098
30182
  function MapUpdater({ centerLat, centerLng, zoom }) {
@@ -31007,8 +31091,8 @@ function TableView({
31007
31091
  }) {
31008
31092
  const eventBus = useEventBus();
31009
31093
  const { t } = useTranslate();
31010
- const [visibleCount, setVisibleCount] = React95__default.useState(pageSize > 0 ? pageSize : Infinity);
31011
- const [localSelected, setLocalSelected] = React95__default.useState(/* @__PURE__ */ new Set());
31094
+ const [visibleCount, setVisibleCount] = React96__default.useState(pageSize > 0 ? pageSize : Infinity);
31095
+ const [localSelected, setLocalSelected] = React96__default.useState(/* @__PURE__ */ new Set());
31012
31096
  const colDefs = columns ?? fields ?? [];
31013
31097
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
31014
31098
  const dnd = useDataDnd({
@@ -31203,12 +31287,12 @@ function TableView({
31203
31287
  ]
31204
31288
  }
31205
31289
  );
31206
- return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React95__default.Fragment, { children: rowInner }, id);
31290
+ return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React96__default.Fragment, { children: rowInner }, id);
31207
31291
  };
31208
31292
  const items = Array.from(data);
31209
31293
  const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
31210
31294
  let runningIndex = 0;
31211
- const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
31295
+ const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
31212
31296
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
31213
31297
  group.items.map((row) => renderRow(row, runningIndex++))
31214
31298
  ] }, gi)) });
@@ -32427,7 +32511,7 @@ var init_StepFlow = __esm({
32427
32511
  className
32428
32512
  }) => {
32429
32513
  if (orientation === "vertical") {
32430
- return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React95__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
32514
+ return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React96__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
32431
32515
  /* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
32432
32516
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
32433
32517
  showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
@@ -32438,7 +32522,7 @@ var init_StepFlow = __esm({
32438
32522
  ] })
32439
32523
  ] }) }, index)) });
32440
32524
  }
32441
- 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(React95__default.Fragment, { children: [
32525
+ 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(React96__default.Fragment, { children: [
32442
32526
  /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
32443
32527
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
32444
32528
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
@@ -33423,7 +33507,7 @@ var init_LikertScale = __esm({
33423
33507
  md: "text-base",
33424
33508
  lg: "text-lg"
33425
33509
  };
33426
- LikertScale = React95__default.forwardRef(
33510
+ LikertScale = React96__default.forwardRef(
33427
33511
  ({
33428
33512
  question,
33429
33513
  options = DEFAULT_LIKERT_OPTIONS,
@@ -33435,7 +33519,7 @@ var init_LikertScale = __esm({
33435
33519
  variant = "radios",
33436
33520
  className
33437
33521
  }, ref) => {
33438
- const groupId = React95__default.useId();
33522
+ const groupId = React96__default.useId();
33439
33523
  const eventBus = useEventBus();
33440
33524
  const handleSelect = useCallback(
33441
33525
  (next) => {
@@ -35717,7 +35801,7 @@ var init_DocBreadcrumb = __esm({
35717
35801
  "aria-label": t("aria.breadcrumb"),
35718
35802
  children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
35719
35803
  const isLast = idx === items.length - 1;
35720
- return /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
35804
+ return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
35721
35805
  idx > 0 && /* @__PURE__ */ jsx(
35722
35806
  Icon,
35723
35807
  {
@@ -36586,7 +36670,7 @@ var init_MiniStateMachine = __esm({
36586
36670
  const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
36587
36671
  const tc = transitionCounts[s.name] ?? 0;
36588
36672
  const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
36589
- return /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
36673
+ return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
36590
36674
  /* @__PURE__ */ jsx(
36591
36675
  AvlState,
36592
36676
  {
@@ -36790,7 +36874,7 @@ var init_PageHeader = __esm({
36790
36874
  info: "bg-info/10 text-info"
36791
36875
  };
36792
36876
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
36793
- 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(React95__default.Fragment, { children: [
36877
+ 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(React96__default.Fragment, { children: [
36794
36878
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
36795
36879
  crumb.href ? /* @__PURE__ */ jsx(
36796
36880
  "a",
@@ -37148,7 +37232,7 @@ var init_Section = __esm({
37148
37232
  as: Component = "section"
37149
37233
  }) => {
37150
37234
  const hasHeader = title || description || action;
37151
- return React95__default.createElement(
37235
+ return React96__default.createElement(
37152
37236
  Component,
37153
37237
  {
37154
37238
  className: cn(
@@ -37522,7 +37606,7 @@ var init_WizardContainer = __esm({
37522
37606
  const isCompleted = index < currentStep;
37523
37607
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
37524
37608
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
37525
- return /* @__PURE__ */ jsxs(React95__default.Fragment, { children: [
37609
+ return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
37526
37610
  /* @__PURE__ */ jsx(
37527
37611
  Button,
37528
37612
  {
@@ -39955,7 +40039,7 @@ var init_DetailPanel = __esm({
39955
40039
  }
39956
40040
  });
39957
40041
  function extractTitle(children) {
39958
- if (!React95__default.isValidElement(children)) return void 0;
40042
+ if (!React96__default.isValidElement(children)) return void 0;
39959
40043
  const props = children.props;
39960
40044
  if (typeof props.title === "string") {
39961
40045
  return props.title;
@@ -40305,12 +40389,12 @@ var init_Form = __esm({
40305
40389
  const isSchemaEntity = isOrbitalEntitySchema(entity);
40306
40390
  const resolvedEntity = isSchemaEntity ? entity : void 0;
40307
40391
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
40308
- const normalizedInitialData = React95__default.useMemo(() => {
40392
+ const normalizedInitialData = React96__default.useMemo(() => {
40309
40393
  const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
40310
40394
  const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
40311
40395
  return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
40312
40396
  }, [entity, initialData]);
40313
- const entityDerivedFields = React95__default.useMemo(() => {
40397
+ const entityDerivedFields = React96__default.useMemo(() => {
40314
40398
  if (fields && fields.length > 0) return void 0;
40315
40399
  if (!resolvedEntity) return void 0;
40316
40400
  return resolvedEntity.fields.map(
@@ -40331,16 +40415,16 @@ var init_Form = __esm({
40331
40415
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
40332
40416
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
40333
40417
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
40334
- const [formData, setFormData] = React95__default.useState(
40418
+ const [formData, setFormData] = React96__default.useState(
40335
40419
  normalizedInitialData
40336
40420
  );
40337
- const [collapsedSections, setCollapsedSections] = React95__default.useState(
40421
+ const [collapsedSections, setCollapsedSections] = React96__default.useState(
40338
40422
  /* @__PURE__ */ new Set()
40339
40423
  );
40340
- const [submitError, setSubmitError] = React95__default.useState(null);
40341
- const formRef = React95__default.useRef(null);
40424
+ const [submitError, setSubmitError] = React96__default.useState(null);
40425
+ const formRef = React96__default.useRef(null);
40342
40426
  const formMode = props.mode;
40343
- const mountedRef = React95__default.useRef(false);
40427
+ const mountedRef = React96__default.useRef(false);
40344
40428
  if (!mountedRef.current) {
40345
40429
  mountedRef.current = true;
40346
40430
  debug("forms", "mount", {
@@ -40353,7 +40437,7 @@ var init_Form = __esm({
40353
40437
  });
40354
40438
  }
40355
40439
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
40356
- const evalContext = React95__default.useMemo(
40440
+ const evalContext = React96__default.useMemo(
40357
40441
  () => ({
40358
40442
  formValues: formData,
40359
40443
  globalVariables: externalContext?.globalVariables ?? {},
@@ -40362,7 +40446,7 @@ var init_Form = __esm({
40362
40446
  }),
40363
40447
  [formData, externalContext]
40364
40448
  );
40365
- React95__default.useEffect(() => {
40449
+ React96__default.useEffect(() => {
40366
40450
  debug("forms", "initialData-sync", {
40367
40451
  mode: formMode,
40368
40452
  normalizedInitialData,
@@ -40373,7 +40457,7 @@ var init_Form = __esm({
40373
40457
  setFormData(normalizedInitialData);
40374
40458
  }
40375
40459
  }, [normalizedInitialData]);
40376
- const processCalculations = React95__default.useCallback(
40460
+ const processCalculations = React96__default.useCallback(
40377
40461
  (changedFieldId, newFormData) => {
40378
40462
  if (!hiddenCalculations.length) return;
40379
40463
  const context = {
@@ -40398,7 +40482,7 @@ var init_Form = __esm({
40398
40482
  },
40399
40483
  [hiddenCalculations, externalContext, eventBus]
40400
40484
  );
40401
- const checkViolations = React95__default.useCallback(
40485
+ const checkViolations = React96__default.useCallback(
40402
40486
  (changedFieldId, newFormData) => {
40403
40487
  if (!violationTriggers.length) return;
40404
40488
  const context = {
@@ -40436,7 +40520,7 @@ var init_Form = __esm({
40436
40520
  processCalculations(name, newFormData);
40437
40521
  checkViolations(name, newFormData);
40438
40522
  };
40439
- const isFieldVisible = React95__default.useCallback(
40523
+ const isFieldVisible = React96__default.useCallback(
40440
40524
  (fieldName) => {
40441
40525
  const condition = conditionalFields[fieldName];
40442
40526
  if (!condition) return true;
@@ -40444,7 +40528,7 @@ var init_Form = __esm({
40444
40528
  },
40445
40529
  [conditionalFields, evalContext]
40446
40530
  );
40447
- const isSectionVisible = React95__default.useCallback(
40531
+ const isSectionVisible = React96__default.useCallback(
40448
40532
  (section) => {
40449
40533
  if (!section.condition) return true;
40450
40534
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -40520,7 +40604,7 @@ var init_Form = __esm({
40520
40604
  eventBus.emit(`UI:${onCancel}`);
40521
40605
  }
40522
40606
  };
40523
- const renderField = React95__default.useCallback(
40607
+ const renderField = React96__default.useCallback(
40524
40608
  (field) => {
40525
40609
  const fieldName = field.name || field.field;
40526
40610
  if (!fieldName) return null;
@@ -40541,7 +40625,7 @@ var init_Form = __esm({
40541
40625
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
40542
40626
  );
40543
40627
  const effectiveFields = entityDerivedFields ?? fields;
40544
- const normalizedFields = React95__default.useMemo(() => {
40628
+ const normalizedFields = React96__default.useMemo(() => {
40545
40629
  if (!effectiveFields || effectiveFields.length === 0) return [];
40546
40630
  return effectiveFields.map((field) => {
40547
40631
  if (typeof field === "string") {
@@ -40565,7 +40649,7 @@ var init_Form = __esm({
40565
40649
  return field;
40566
40650
  });
40567
40651
  }, [effectiveFields, resolvedEntity]);
40568
- const schemaFields = React95__default.useMemo(() => {
40652
+ const schemaFields = React96__default.useMemo(() => {
40569
40653
  if (normalizedFields.length === 0) return null;
40570
40654
  if (isDebugEnabled()) {
40571
40655
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -40575,7 +40659,7 @@ var init_Form = __esm({
40575
40659
  }
40576
40660
  return normalizedFields.map(renderField).filter(Boolean);
40577
40661
  }, [normalizedFields, renderField, entityName, conditionalFields]);
40578
- const sectionElements = React95__default.useMemo(() => {
40662
+ const sectionElements = React96__default.useMemo(() => {
40579
40663
  if (!sections || sections.length === 0) return null;
40580
40664
  return sections.map((section) => {
40581
40665
  if (!isSectionVisible(section)) {
@@ -41300,7 +41384,7 @@ var init_List = __esm({
41300
41384
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
41301
41385
  return [];
41302
41386
  }, [entity]);
41303
- const getItemActions = React95__default.useCallback(
41387
+ const getItemActions = React96__default.useCallback(
41304
41388
  (item) => {
41305
41389
  if (!itemActions) return [];
41306
41390
  if (typeof itemActions === "function") {
@@ -41775,7 +41859,7 @@ var init_MediaGallery = __esm({
41775
41859
  [selectable, selectedItems, selectionEvent, eventBus]
41776
41860
  );
41777
41861
  const entityData = Array.isArray(entity) ? entity : [];
41778
- const items = React95__default.useMemo(() => {
41862
+ const items = React96__default.useMemo(() => {
41779
41863
  if (propItems) return propItems;
41780
41864
  if (entityData.length === 0) return [];
41781
41865
  return entityData.map((record, idx) => {
@@ -41938,7 +42022,7 @@ var init_MediaGallery = __esm({
41938
42022
  }
41939
42023
  });
41940
42024
  function extractTitle2(children) {
41941
- if (!React95__default.isValidElement(children)) return void 0;
42025
+ if (!React96__default.isValidElement(children)) return void 0;
41942
42026
  const props = children.props;
41943
42027
  if (typeof props.title === "string") {
41944
42028
  return props.title;
@@ -42212,7 +42296,7 @@ var init_debugRegistry = __esm({
42212
42296
  }
42213
42297
  });
42214
42298
  function useDebugData() {
42215
- const [data, setData] = React95.useState(() => ({
42299
+ const [data, setData] = React96.useState(() => ({
42216
42300
  traits: [],
42217
42301
  ticks: [],
42218
42302
  guards: [],
@@ -42226,7 +42310,7 @@ function useDebugData() {
42226
42310
  },
42227
42311
  lastUpdate: Date.now()
42228
42312
  }));
42229
- React95.useEffect(() => {
42313
+ React96.useEffect(() => {
42230
42314
  const updateData = () => {
42231
42315
  setData({
42232
42316
  traits: getAllTraits(),
@@ -42335,12 +42419,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
42335
42419
  return positions;
42336
42420
  }
42337
42421
  function WalkMinimap() {
42338
- const [walkStep, setWalkStep] = React95.useState(null);
42339
- const [traits2, setTraits] = React95.useState([]);
42340
- const [coveredEdges, setCoveredEdges] = React95.useState([]);
42341
- const [completedTraits, setCompletedTraits] = React95.useState(/* @__PURE__ */ new Set());
42342
- const prevTraitRef = React95.useRef(null);
42343
- React95.useEffect(() => {
42422
+ const [walkStep, setWalkStep] = React96.useState(null);
42423
+ const [traits2, setTraits] = React96.useState([]);
42424
+ const [coveredEdges, setCoveredEdges] = React96.useState([]);
42425
+ const [completedTraits, setCompletedTraits] = React96.useState(/* @__PURE__ */ new Set());
42426
+ const prevTraitRef = React96.useRef(null);
42427
+ React96.useEffect(() => {
42344
42428
  const interval = setInterval(() => {
42345
42429
  const w = window;
42346
42430
  const step = w.__orbitalWalkStep;
@@ -42776,15 +42860,15 @@ var init_EntitiesTab = __esm({
42776
42860
  });
42777
42861
  function EventFlowTab({ events: events2 }) {
42778
42862
  const { t } = useTranslate();
42779
- const [filter, setFilter] = React95.useState("all");
42780
- const containerRef = React95.useRef(null);
42781
- const [autoScroll, setAutoScroll] = React95.useState(true);
42782
- React95.useEffect(() => {
42863
+ const [filter, setFilter] = React96.useState("all");
42864
+ const containerRef = React96.useRef(null);
42865
+ const [autoScroll, setAutoScroll] = React96.useState(true);
42866
+ React96.useEffect(() => {
42783
42867
  if (autoScroll && containerRef.current) {
42784
42868
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
42785
42869
  }
42786
42870
  }, [events2.length, autoScroll]);
42787
- const filteredEvents = React95.useMemo(() => {
42871
+ const filteredEvents = React96.useMemo(() => {
42788
42872
  if (filter === "all") return events2;
42789
42873
  return events2.filter((e) => e.type === filter);
42790
42874
  }, [events2, filter]);
@@ -42900,7 +42984,7 @@ var init_EventFlowTab = __esm({
42900
42984
  });
42901
42985
  function GuardsPanel({ guards }) {
42902
42986
  const { t } = useTranslate();
42903
- const [filter, setFilter] = React95.useState("all");
42987
+ const [filter, setFilter] = React96.useState("all");
42904
42988
  if (guards.length === 0) {
42905
42989
  return /* @__PURE__ */ jsx(
42906
42990
  EmptyState,
@@ -42913,7 +42997,7 @@ function GuardsPanel({ guards }) {
42913
42997
  }
42914
42998
  const passedCount = guards.filter((g) => g.result).length;
42915
42999
  const failedCount = guards.length - passedCount;
42916
- const filteredGuards = React95.useMemo(() => {
43000
+ const filteredGuards = React96.useMemo(() => {
42917
43001
  if (filter === "all") return guards;
42918
43002
  if (filter === "passed") return guards.filter((g) => g.result);
42919
43003
  return guards.filter((g) => !g.result);
@@ -43076,10 +43160,10 @@ function EffectBadge({ effect }) {
43076
43160
  }
43077
43161
  function TransitionTimeline({ transitions }) {
43078
43162
  const { t } = useTranslate();
43079
- const containerRef = React95.useRef(null);
43080
- const [autoScroll, setAutoScroll] = React95.useState(true);
43081
- const [expandedId, setExpandedId] = React95.useState(null);
43082
- React95.useEffect(() => {
43163
+ const containerRef = React96.useRef(null);
43164
+ const [autoScroll, setAutoScroll] = React96.useState(true);
43165
+ const [expandedId, setExpandedId] = React96.useState(null);
43166
+ React96.useEffect(() => {
43083
43167
  if (autoScroll && containerRef.current) {
43084
43168
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
43085
43169
  }
@@ -43359,9 +43443,9 @@ function getAllEvents(traits2) {
43359
43443
  function EventDispatcherTab({ traits: traits2, schema }) {
43360
43444
  const eventBus = useEventBus();
43361
43445
  const { t } = useTranslate();
43362
- const [log9, setLog] = React95.useState([]);
43363
- const prevStatesRef = React95.useRef(/* @__PURE__ */ new Map());
43364
- React95.useEffect(() => {
43446
+ const [log9, setLog] = React96.useState([]);
43447
+ const prevStatesRef = React96.useRef(/* @__PURE__ */ new Map());
43448
+ React96.useEffect(() => {
43365
43449
  for (const trait of traits2) {
43366
43450
  const prev = prevStatesRef.current.get(trait.id);
43367
43451
  if (prev && prev !== trait.currentState) {
@@ -43530,10 +43614,10 @@ function VerifyModePanel({
43530
43614
  localCount
43531
43615
  }) {
43532
43616
  const { t } = useTranslate();
43533
- const [expanded, setExpanded] = React95.useState(true);
43534
- const scrollRef = React95.useRef(null);
43535
- const prevCountRef = React95.useRef(0);
43536
- React95.useEffect(() => {
43617
+ const [expanded, setExpanded] = React96.useState(true);
43618
+ const scrollRef = React96.useRef(null);
43619
+ const prevCountRef = React96.useRef(0);
43620
+ React96.useEffect(() => {
43537
43621
  if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
43538
43622
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
43539
43623
  }
@@ -43590,10 +43674,10 @@ function RuntimeDebugger({
43590
43674
  schema
43591
43675
  }) {
43592
43676
  const { t } = useTranslate();
43593
- const [isCollapsed, setIsCollapsed] = React95.useState(mode === "verify" ? true : defaultCollapsed);
43594
- const [isVisible, setIsVisible] = React95.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
43677
+ const [isCollapsed, setIsCollapsed] = React96.useState(mode === "verify" ? true : defaultCollapsed);
43678
+ const [isVisible, setIsVisible] = React96.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
43595
43679
  const debugData = useDebugData();
43596
- React95.useEffect(() => {
43680
+ React96.useEffect(() => {
43597
43681
  if (mode === "inline") return;
43598
43682
  return onDebugToggle((enabled) => {
43599
43683
  setIsVisible(enabled);
@@ -43602,7 +43686,7 @@ function RuntimeDebugger({
43602
43686
  }
43603
43687
  });
43604
43688
  }, [mode]);
43605
- React95.useEffect(() => {
43689
+ React96.useEffect(() => {
43606
43690
  if (mode === "inline") return;
43607
43691
  const handleKeyDown = (e) => {
43608
43692
  if (e.key === "`" && isVisible) {
@@ -44122,7 +44206,7 @@ var init_StatCard = __esm({
44122
44206
  const labelToUse = propLabel ?? propTitle;
44123
44207
  const eventBus = useEventBus();
44124
44208
  const { t } = useTranslate();
44125
- const handleActionClick = React95__default.useCallback(() => {
44209
+ const handleActionClick = React96__default.useCallback(() => {
44126
44210
  if (action?.event) {
44127
44211
  eventBus.emit(`UI:${action.event}`, {});
44128
44212
  }
@@ -44133,7 +44217,7 @@ var init_StatCard = __esm({
44133
44217
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
44134
44218
  const isLoading = externalLoading ?? false;
44135
44219
  const error = externalError;
44136
- const computeMetricValue = React95__default.useCallback(
44220
+ const computeMetricValue = React96__default.useCallback(
44137
44221
  (metric, items) => {
44138
44222
  if (metric.value !== void 0) {
44139
44223
  return metric.value;
@@ -44172,7 +44256,7 @@ var init_StatCard = __esm({
44172
44256
  },
44173
44257
  []
44174
44258
  );
44175
- const schemaStats = React95__default.useMemo(() => {
44259
+ const schemaStats = React96__default.useMemo(() => {
44176
44260
  if (!metrics || metrics.length === 0) return null;
44177
44261
  return metrics.map((metric) => ({
44178
44262
  label: metric.label,
@@ -44180,7 +44264,7 @@ var init_StatCard = __esm({
44180
44264
  format: metric.format
44181
44265
  }));
44182
44266
  }, [metrics, data, computeMetricValue]);
44183
- const calculatedTrend = React95__default.useMemo(() => {
44267
+ const calculatedTrend = React96__default.useMemo(() => {
44184
44268
  if (manualTrend !== void 0) return manualTrend;
44185
44269
  if (previousValue === void 0 || currentValue === void 0)
44186
44270
  return void 0;
@@ -44820,8 +44904,8 @@ var init_SubagentTracePanel = __esm({
44820
44904
  ] });
44821
44905
  };
44822
44906
  InlineActivityStream = ({ activities, autoScroll = true, className }) => {
44823
- const endRef = React95__default.useRef(null);
44824
- React95__default.useEffect(() => {
44907
+ const endRef = React96__default.useRef(null);
44908
+ React96__default.useEffect(() => {
44825
44909
  if (!autoScroll) return;
44826
44910
  endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
44827
44911
  }, [activities.length, autoScroll]);
@@ -44915,7 +44999,7 @@ var init_SubagentTracePanel = __esm({
44915
44999
  };
44916
45000
  SubagentRichCard = ({ subagent }) => {
44917
45001
  const { t } = useTranslate();
44918
- const activities = React95__default.useMemo(
45002
+ const activities = React96__default.useMemo(
44919
45003
  () => subagentMessagesToActivities(subagent.messages),
44920
45004
  [subagent.messages]
44921
45005
  );
@@ -44992,8 +45076,8 @@ var init_SubagentTracePanel = __esm({
44992
45076
  ] });
44993
45077
  };
44994
45078
  CoordinatorConversation = ({ messages, autoScroll = true, className }) => {
44995
- const endRef = React95__default.useRef(null);
44996
- React95__default.useEffect(() => {
45079
+ const endRef = React96__default.useRef(null);
45080
+ React96__default.useEffect(() => {
44997
45081
  if (!autoScroll) return;
44998
45082
  endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
44999
45083
  }, [messages.length, autoScroll]);
@@ -45423,7 +45507,7 @@ var init_Timeline = __esm({
45423
45507
  }) => {
45424
45508
  const { t } = useTranslate();
45425
45509
  const entityData = entity ?? [];
45426
- const items = React95__default.useMemo(() => {
45510
+ const items = React96__default.useMemo(() => {
45427
45511
  if (propItems) return propItems;
45428
45512
  if (entityData.length === 0) return [];
45429
45513
  return entityData.map((record, idx) => {
@@ -45525,7 +45609,7 @@ var init_Timeline = __esm({
45525
45609
  }
45526
45610
  });
45527
45611
  function extractToastProps(children) {
45528
- if (!React95__default.isValidElement(children)) {
45612
+ if (!React96__default.isValidElement(children)) {
45529
45613
  if (typeof children === "string") {
45530
45614
  return { message: children };
45531
45615
  }
@@ -45567,7 +45651,7 @@ var init_ToastSlot = __esm({
45567
45651
  eventBus.emit(`${prefix}CLOSE`);
45568
45652
  };
45569
45653
  if (!isVisible) return null;
45570
- const isCustomContent = React95__default.isValidElement(children) && !message;
45654
+ const isCustomContent = React96__default.isValidElement(children) && !message;
45571
45655
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
45572
45656
  Toast,
45573
45657
  {
@@ -45584,7 +45668,7 @@ var init_ToastSlot = __esm({
45584
45668
  }
45585
45669
  });
45586
45670
  function lazyThree(name, loader) {
45587
- const Lazy = React95__default.lazy(
45671
+ const Lazy = React96__default.lazy(
45588
45672
  () => loader().then((m) => {
45589
45673
  const Resolved = m[name];
45590
45674
  if (!Resolved) {
@@ -45596,13 +45680,13 @@ function lazyThree(name, loader) {
45596
45680
  })
45597
45681
  );
45598
45682
  function ThreeWrapper(props) {
45599
- return React95__default.createElement(
45683
+ return React96__default.createElement(
45600
45684
  ThreeBoundary,
45601
45685
  { name },
45602
- React95__default.createElement(
45603
- React95__default.Suspense,
45686
+ React96__default.createElement(
45687
+ React96__default.Suspense,
45604
45688
  { fallback: null },
45605
- React95__default.createElement(Lazy, props)
45689
+ React96__default.createElement(Lazy, props)
45606
45690
  )
45607
45691
  );
45608
45692
  }
@@ -45824,6 +45908,7 @@ var init_component_registry_generated = __esm({
45824
45908
  init_StatCard();
45825
45909
  init_StatDisplay();
45826
45910
  init_StateArchitectBoard();
45911
+ init_StateGraph();
45827
45912
  init_StateIndicator();
45828
45913
  init_StateMachineView();
45829
45914
  init_StatsGrid();
@@ -45878,7 +45963,7 @@ var init_component_registry_generated = __esm({
45878
45963
  init_WizardContainer();
45879
45964
  init_WizardNavigation();
45880
45965
  init_WizardProgress();
45881
- ThreeBoundary = class extends React95__default.Component {
45966
+ ThreeBoundary = class extends React96__default.Component {
45882
45967
  constructor() {
45883
45968
  super(...arguments);
45884
45969
  __publicField(this, "state", { failed: false });
@@ -45888,7 +45973,7 @@ var init_component_registry_generated = __esm({
45888
45973
  }
45889
45974
  render() {
45890
45975
  if (this.state.failed) {
45891
- return React95__default.createElement(
45976
+ return React96__default.createElement(
45892
45977
  "div",
45893
45978
  {
45894
45979
  "data-testid": "three-unavailable",
@@ -46135,6 +46220,7 @@ var init_component_registry_generated = __esm({
46135
46220
  "StatCard": StatCard,
46136
46221
  "StatDisplay": StatDisplay,
46137
46222
  "StateArchitectBoard": StateArchitectBoard,
46223
+ "StateGraph": StateGraph,
46138
46224
  "StateIndicator": StateIndicator,
46139
46225
  "StateMachineView": StateMachineView,
46140
46226
  "StatsGrid": StatsGrid,
@@ -46208,7 +46294,7 @@ function SuspenseConfigProvider({
46208
46294
  config,
46209
46295
  children
46210
46296
  }) {
46211
- return React95__default.createElement(
46297
+ return React96__default.createElement(
46212
46298
  SuspenseConfigContext.Provider,
46213
46299
  { value: config },
46214
46300
  children
@@ -46250,7 +46336,7 @@ function enrichFormFields(fields, entityDef) {
46250
46336
  }
46251
46337
  return { name: field, label: field.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/\b\w/g, (c) => c.toUpperCase()) };
46252
46338
  }
46253
- if (field && typeof field === "object" && !Array.isArray(field) && !React95__default.isValidElement(field) && !(field instanceof Date)) {
46339
+ if (field && typeof field === "object" && !Array.isArray(field) && !React96__default.isValidElement(field) && !(field instanceof Date)) {
46254
46340
  const obj = field;
46255
46341
  const fieldName = typeof obj.name === "string" ? obj.name : typeof obj.field === "string" ? obj.field : void 0;
46256
46342
  if (!fieldName) return field;
@@ -46703,7 +46789,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
46703
46789
  const key = `${parentId}-${index}-trait:${traitName}`;
46704
46790
  return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
46705
46791
  }
46706
- return /* @__PURE__ */ jsx(React95__default.Fragment, { children: child }, `${parentId}-${index}`);
46792
+ return /* @__PURE__ */ jsx(React96__default.Fragment, { children: child }, `${parentId}-${index}`);
46707
46793
  }
46708
46794
  if (!child || typeof child !== "object") return null;
46709
46795
  const childId = `${parentId}-${index}`;
@@ -46743,14 +46829,14 @@ function isPatternConfig(value) {
46743
46829
  if (value === null || value === void 0) return false;
46744
46830
  if (typeof value !== "object") return false;
46745
46831
  if (Array.isArray(value)) return false;
46746
- if (React95__default.isValidElement(value)) return false;
46832
+ if (React96__default.isValidElement(value)) return false;
46747
46833
  if (value instanceof Date) return false;
46748
46834
  if (typeof value === "function") return false;
46749
46835
  const record = value;
46750
46836
  return "type" in record && typeof record.type === "string" && getComponentForPattern$1(record.type) !== null;
46751
46837
  }
46752
46838
  function isPlainConfigObject(value) {
46753
- if (React95__default.isValidElement(value)) return false;
46839
+ if (React96__default.isValidElement(value)) return false;
46754
46840
  if (value instanceof Date) return false;
46755
46841
  const proto = Object.getPrototypeOf(value);
46756
46842
  return proto === Object.prototype || proto === null;
@@ -46876,7 +46962,7 @@ function SlotContentRenderer({
46876
46962
  for (const slotKey of CONTENT_NODE_SLOTS) {
46877
46963
  const slotVal = restProps[slotKey];
46878
46964
  if (slotVal === void 0 || slotVal === null) continue;
46879
- if (React95__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
46965
+ if (React96__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
46880
46966
  if (Array.isArray(slotVal) || typeof slotVal === "object" && "type" in slotVal) {
46881
46967
  nodeSlotOverrides[slotKey] = renderPatternChildren(
46882
46968
  slotVal,
@@ -46925,7 +47011,7 @@ function SlotContentRenderer({
46925
47011
  const resolvedItems = Array.isArray(entityVal) && entityVal[0] !== "fn" ? entityVal : null;
46926
47012
  if (resolvedItems && resolvedItems.length > 0 && !finalProps.fields && !finalProps.columns) {
46927
47013
  const sample = resolvedItems[0];
46928
- if (sample && typeof sample === "object" && !Array.isArray(sample) && !React95__default.isValidElement(sample) && !(sample instanceof Date)) {
47014
+ if (sample && typeof sample === "object" && !Array.isArray(sample) && !React96__default.isValidElement(sample) && !(sample instanceof Date)) {
46929
47015
  const keys = Object.keys(sample).filter((k) => k !== "id" && k !== "_id");
46930
47016
  finalProps.fields = keys.map((k, i) => ({ name: k, variant: i === 0 ? "h4" : "body" }));
46931
47017
  }
@@ -47217,7 +47303,7 @@ function resolveLambdaBindings(body, params, item, index) {
47217
47303
  if (Array.isArray(body)) {
47218
47304
  return body.map((b) => recur(b));
47219
47305
  }
47220
- if (body !== null && typeof body === "object" && !React95__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
47306
+ if (body !== null && typeof body === "object" && !React96__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
47221
47307
  const out = {};
47222
47308
  for (const [k, v] of Object.entries(body)) {
47223
47309
  out[k] = recur(v);
@@ -47236,7 +47322,7 @@ function getSlotContentRenderer2() {
47236
47322
  function makeLambdaFn(params, lambdaBody, callerKey) {
47237
47323
  return (item, index) => {
47238
47324
  const resolvedBody = resolveLambdaBindings(lambdaBody, params, item, index);
47239
- if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React95__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
47325
+ if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React96__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
47240
47326
  return null;
47241
47327
  }
47242
47328
  const record = resolvedBody;
@@ -47255,7 +47341,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
47255
47341
  props: childProps,
47256
47342
  priority: 0
47257
47343
  };
47258
- return React95__default.createElement(SlotContentRenderer2, { content: childContent });
47344
+ return React96__default.createElement(SlotContentRenderer2, { content: childContent });
47259
47345
  };
47260
47346
  }
47261
47347
  function convertNode(node, callerKey) {
@@ -47274,7 +47360,7 @@ function convertNode(node, callerKey) {
47274
47360
  });
47275
47361
  return anyChanged ? mapped : node;
47276
47362
  }
47277
- if (typeof node === "object" && !React95__default.isValidElement(node) && !(node instanceof Date)) {
47363
+ if (typeof node === "object" && !React96__default.isValidElement(node) && !(node instanceof Date)) {
47278
47364
  return convertObjectProps(node);
47279
47365
  }
47280
47366
  return node;