@almadar/ui 5.141.0 → 5.142.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import * as React76 from 'react';
3
- import React76__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, useState, useLayoutEffect, Suspense, useSyncExternalStore, lazy, useId } from 'react';
2
+ import * as React77 from 'react';
3
+ import React77__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, useState, useLayoutEffect, Suspense, useSyncExternalStore, lazy, useId } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { EventBusContext, useTraitScopeChain, useCurrentPagePath, useGameAudioContextOptional, useEntitySchemaOptional, useEntityBindingSnapshot, useTraitScope, TraitScopeProvider } from '@almadar/ui/providers';
@@ -262,7 +262,7 @@ var init_SvgFlow = __esm({
262
262
  width = 100,
263
263
  height = 100
264
264
  }) => {
265
- const markerId = React76__default.useMemo(() => {
265
+ const markerId = React77__default.useMemo(() => {
266
266
  flowIdCounter += 1;
267
267
  return `almadar-flow-arrow-${flowIdCounter}`;
268
268
  }, []);
@@ -855,7 +855,7 @@ var init_SvgRing = __esm({
855
855
  width = 100,
856
856
  height = 100
857
857
  }) => {
858
- const gradientId = React76__default.useMemo(() => {
858
+ const gradientId = React77__default.useMemo(() => {
859
859
  ringIdCounter += 1;
860
860
  return `almadar-ring-glow-${ringIdCounter}`;
861
861
  }, []);
@@ -1397,7 +1397,7 @@ var init_Icon = __esm({
1397
1397
  const effectiveName = typeof icon === "string" && icon !== "" ? icon : name;
1398
1398
  const effectiveStrokeWidth = strokeWidth != null && strokeWidth > 0 ? strokeWidth : void 0;
1399
1399
  const family = useIconFamily();
1400
- const RenderedComponent = React76__default.useMemo(() => {
1400
+ const RenderedComponent = React77__default.useMemo(() => {
1401
1401
  if (directIcon) return null;
1402
1402
  return effectiveName ? resolveIconForFamily(effectiveName) : null;
1403
1403
  }, [directIcon, effectiveName, family]);
@@ -1521,7 +1521,7 @@ var init_atlasSlice = __esm({
1521
1521
  }
1522
1522
  });
1523
1523
  function useAtlasSliceDataUrl(asset) {
1524
- const [, bump] = React76.useReducer((x) => x + 1, 0);
1524
+ const [, bump] = React77.useReducer((x) => x + 1, 0);
1525
1525
  if (!isAtlasAsset(asset)) return void 0;
1526
1526
  const key = `${asset.atlas}#${asset.sprite}`;
1527
1527
  const cached = sliceDataUrlCache.get(key);
@@ -1584,13 +1584,13 @@ function AtlasImage({
1584
1584
  style,
1585
1585
  "aria-hidden": ariaHidden
1586
1586
  }) {
1587
- const [, bump] = React76.useReducer((x) => x + 1, 0);
1588
- const canvasRef = React76.useRef(null);
1587
+ const [, bump] = React77.useReducer((x) => x + 1, 0);
1588
+ const canvasRef = React77.useRef(null);
1589
1589
  const sliced = isAtlasAsset(asset);
1590
1590
  const atlas = sliced ? getAtlas(asset.atlas, bump) : void 0;
1591
1591
  const img = sliced && asset?.url ? getSheetImage(asset.url, bump) : null;
1592
1592
  const rect = sliced && atlas ? subRectFor(atlas, asset.sprite) : null;
1593
- React76.useEffect(() => {
1593
+ React77.useEffect(() => {
1594
1594
  const canvas = canvasRef.current;
1595
1595
  if (!canvas || !img || !rect) return;
1596
1596
  canvas.width = rect.sw;
@@ -1666,7 +1666,7 @@ function resolveIconProp(value, sizeClass) {
1666
1666
  const IconComp = value;
1667
1667
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
1668
1668
  }
1669
- if (React76__default.isValidElement(value)) {
1669
+ if (React77__default.isValidElement(value)) {
1670
1670
  return value;
1671
1671
  }
1672
1672
  if (typeof value === "object" && value !== null && isIconLike(value)) {
@@ -1743,7 +1743,7 @@ var init_Button = __esm({
1743
1743
  md: "h-icon-default w-icon-default",
1744
1744
  lg: "h-icon-default w-icon-default"
1745
1745
  };
1746
- Button = React76__default.forwardRef(
1746
+ Button = React77__default.forwardRef(
1747
1747
  ({
1748
1748
  className,
1749
1749
  variant = "primary",
@@ -1815,7 +1815,7 @@ var init_Input = __esm({
1815
1815
  init_cn();
1816
1816
  init_Icon();
1817
1817
  init_useEventBus();
1818
- Input = React76__default.forwardRef(
1818
+ Input = React77__default.forwardRef(
1819
1819
  ({
1820
1820
  className,
1821
1821
  inputType,
@@ -1839,9 +1839,9 @@ var init_Input = __esm({
1839
1839
  const eventBus = useEventBus();
1840
1840
  const type = inputType || htmlType || "text";
1841
1841
  const isDeclarative = typeof onChange === "string";
1842
- const [localValue, setLocalValue] = React76__default.useState(value);
1843
- const pendingEchoRef = React76__default.useRef(/* @__PURE__ */ new Set());
1844
- React76__default.useEffect(() => {
1842
+ const [localValue, setLocalValue] = React77__default.useState(value);
1843
+ const pendingEchoRef = React77__default.useRef(/* @__PURE__ */ new Set());
1844
+ React77__default.useEffect(() => {
1845
1845
  if (!isDeclarative) return;
1846
1846
  const incoming = value == null ? "" : String(value);
1847
1847
  if (pendingEchoRef.current.has(incoming)) {
@@ -2001,7 +2001,7 @@ var Label;
2001
2001
  var init_Label = __esm({
2002
2002
  "components/core/atoms/Label.tsx"() {
2003
2003
  init_cn();
2004
- Label = React76__default.forwardRef(
2004
+ Label = React77__default.forwardRef(
2005
2005
  ({ className, required, children, ...props }, ref) => {
2006
2006
  return /* @__PURE__ */ jsxs(
2007
2007
  "label",
@@ -2028,7 +2028,7 @@ var init_Textarea = __esm({
2028
2028
  "components/core/atoms/Textarea.tsx"() {
2029
2029
  init_cn();
2030
2030
  init_useEventBus();
2031
- Textarea = React76__default.forwardRef(
2031
+ Textarea = React77__default.forwardRef(
2032
2032
  ({ className, error, onChange, ...props }, ref) => {
2033
2033
  const eventBus = useEventBus();
2034
2034
  const handleChange = (e) => {
@@ -2267,7 +2267,7 @@ var init_Select = __esm({
2267
2267
  init_cn();
2268
2268
  init_Icon();
2269
2269
  init_useEventBus();
2270
- Select = React76__default.forwardRef(
2270
+ Select = React77__default.forwardRef(
2271
2271
  (props, _ref) => {
2272
2272
  const { multiple, searchable, clearable } = props;
2273
2273
  if (multiple || searchable || clearable) {
@@ -2284,7 +2284,7 @@ var init_Checkbox = __esm({
2284
2284
  "components/core/atoms/Checkbox.tsx"() {
2285
2285
  init_cn();
2286
2286
  init_useEventBus();
2287
- Checkbox = React76__default.forwardRef(
2287
+ Checkbox = React77__default.forwardRef(
2288
2288
  ({ className, label, id, onChange, ...props }, ref) => {
2289
2289
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
2290
2290
  const eventBus = useEventBus();
@@ -2338,7 +2338,7 @@ var init_Spinner = __esm({
2338
2338
  md: "h-6 w-6",
2339
2339
  lg: "h-8 w-8"
2340
2340
  };
2341
- Spinner = React76__default.forwardRef(
2341
+ Spinner = React77__default.forwardRef(
2342
2342
  ({ className, size = "md", overlay, ...props }, ref) => {
2343
2343
  if (overlay) {
2344
2344
  return /* @__PURE__ */ jsx(
@@ -2428,7 +2428,7 @@ var init_Card = __esm({
2428
2428
  chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
2429
2429
  "tile-image-first": "p-0 overflow-hidden"
2430
2430
  };
2431
- Card = React76__default.forwardRef(
2431
+ Card = React77__default.forwardRef(
2432
2432
  ({
2433
2433
  className,
2434
2434
  variant = "bordered",
@@ -2477,9 +2477,9 @@ var init_Card = __esm({
2477
2477
  }
2478
2478
  );
2479
2479
  Card.displayName = "Card";
2480
- CardHeader = React76__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
2480
+ CardHeader = React77__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
2481
2481
  CardHeader.displayName = "CardHeader";
2482
- CardTitle = React76__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2482
+ CardTitle = React77__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2483
2483
  "h3",
2484
2484
  {
2485
2485
  ref,
@@ -2492,11 +2492,11 @@ var init_Card = __esm({
2492
2492
  }
2493
2493
  ));
2494
2494
  CardTitle.displayName = "CardTitle";
2495
- CardContent = React76__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
2495
+ CardContent = React77__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
2496
2496
  CardContent.displayName = "CardContent";
2497
2497
  CardBody = CardContent;
2498
2498
  CardBody.displayName = "CardBody";
2499
- CardFooter = React76__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2499
+ CardFooter = React77__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2500
2500
  "div",
2501
2501
  {
2502
2502
  ref,
@@ -2550,7 +2550,7 @@ var init_Badge = __esm({
2550
2550
  md: "px-2.5 py-1 text-sm",
2551
2551
  lg: "px-3 py-1.5 text-base"
2552
2552
  };
2553
- Badge = React76__default.forwardRef(
2553
+ Badge = React77__default.forwardRef(
2554
2554
  ({ className, variant = "default", size = "sm", amount, label, icon, iconAsset, children, onRemove, removeLabel, ...props }, ref) => {
2555
2555
  const iconSizes3 = {
2556
2556
  sm: "h-icon-default w-icon-default",
@@ -2678,7 +2678,7 @@ var init_FilterPill = __esm({
2678
2678
  md: "w-3.5 h-3.5",
2679
2679
  lg: "w-4 h-4"
2680
2680
  };
2681
- FilterPill = React76__default.forwardRef(
2681
+ FilterPill = React77__default.forwardRef(
2682
2682
  ({
2683
2683
  className,
2684
2684
  variant = "default",
@@ -2807,8 +2807,8 @@ var init_Avatar = __esm({
2807
2807
  actionPayload
2808
2808
  }) => {
2809
2809
  const eventBus = useEventBus();
2810
- const [imgFailed, setImgFailed] = React76__default.useState(false);
2811
- React76__default.useEffect(() => {
2810
+ const [imgFailed, setImgFailed] = React77__default.useState(false);
2811
+ React77__default.useEffect(() => {
2812
2812
  setImgFailed(false);
2813
2813
  }, [src]);
2814
2814
  const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
@@ -3060,7 +3060,7 @@ var init_Box = __esm({
3060
3060
  fixed: "fixed",
3061
3061
  sticky: "sticky"
3062
3062
  };
3063
- Box = React76__default.forwardRef(
3063
+ Box = React77__default.forwardRef(
3064
3064
  ({
3065
3065
  padding,
3066
3066
  paddingX,
@@ -3125,7 +3125,7 @@ var init_Box = __esm({
3125
3125
  onPointerDown?.(e);
3126
3126
  }, [hoverEvent, tapReveal, triggerProps, onPointerDown]);
3127
3127
  const isClickable = action || onClick;
3128
- return React76__default.createElement(
3128
+ return React77__default.createElement(
3129
3129
  Component,
3130
3130
  {
3131
3131
  ref,
@@ -3179,7 +3179,7 @@ var init_Center = __esm({
3179
3179
  as: Component = "div"
3180
3180
  }) => {
3181
3181
  const mergedStyle = minHeight ? { minHeight, ...style } : style;
3182
- return React76__default.createElement(Component, {
3182
+ return React77__default.createElement(Component, {
3183
3183
  className: cn(
3184
3184
  inline ? "inline-flex" : "flex",
3185
3185
  horizontal && "justify-center",
@@ -3447,7 +3447,7 @@ var init_Radio = __esm({
3447
3447
  md: "w-2.5 h-2.5",
3448
3448
  lg: "w-3 h-3"
3449
3449
  };
3450
- Radio = React76__default.forwardRef(
3450
+ Radio = React77__default.forwardRef(
3451
3451
  ({
3452
3452
  label,
3453
3453
  helperText,
@@ -3464,12 +3464,12 @@ var init_Radio = __esm({
3464
3464
  onChange,
3465
3465
  ...props
3466
3466
  }, ref) => {
3467
- const reactId = React76__default.useId();
3467
+ const reactId = React77__default.useId();
3468
3468
  const baseId = id || `radio-${reactId}`;
3469
3469
  const hasError = !!error;
3470
3470
  const eventBus = useEventBus();
3471
- const [selected, setSelected] = React76__default.useState(value);
3472
- React76__default.useEffect(() => {
3471
+ const [selected, setSelected] = React77__default.useState(value);
3472
+ React77__default.useEffect(() => {
3473
3473
  if (value !== void 0) setSelected(value);
3474
3474
  }, [value]);
3475
3475
  const pick = (next, e) => {
@@ -3651,7 +3651,7 @@ var init_Switch = __esm({
3651
3651
  "components/core/atoms/Switch.tsx"() {
3652
3652
  "use client";
3653
3653
  init_cn();
3654
- Switch = React76.forwardRef(
3654
+ Switch = React77.forwardRef(
3655
3655
  ({
3656
3656
  checked,
3657
3657
  defaultChecked = false,
@@ -3662,10 +3662,10 @@ var init_Switch = __esm({
3662
3662
  name,
3663
3663
  className
3664
3664
  }, ref) => {
3665
- const [isChecked, setIsChecked] = React76.useState(
3665
+ const [isChecked, setIsChecked] = React77.useState(
3666
3666
  checked !== void 0 ? checked : defaultChecked
3667
3667
  );
3668
- React76.useEffect(() => {
3668
+ React77.useEffect(() => {
3669
3669
  if (checked !== void 0) {
3670
3670
  setIsChecked(checked);
3671
3671
  }
@@ -3828,7 +3828,7 @@ var init_Stack = __esm({
3828
3828
  };
3829
3829
  const isHorizontal = direction === "horizontal";
3830
3830
  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";
3831
- return React76__default.createElement(
3831
+ return React77__default.createElement(
3832
3832
  Component,
3833
3833
  {
3834
3834
  className: cn(
@@ -4117,7 +4117,7 @@ var init_Typography = __esm({
4117
4117
  if (format !== void 0 && format !== "none" && (typeof body === "string" || typeof body === "number" || body instanceof Date)) {
4118
4118
  body = formatValue(body, format);
4119
4119
  }
4120
- return React76__default.createElement(
4120
+ return React77__default.createElement(
4121
4121
  Component,
4122
4122
  {
4123
4123
  id,
@@ -4351,7 +4351,7 @@ var Dialog;
4351
4351
  var init_Dialog = __esm({
4352
4352
  "components/core/atoms/Dialog.tsx"() {
4353
4353
  init_cn();
4354
- Dialog = React76__default.forwardRef(
4354
+ Dialog = React77__default.forwardRef(
4355
4355
  ({
4356
4356
  role = "dialog",
4357
4357
  "aria-modal": ariaModal = true,
@@ -4377,7 +4377,7 @@ var Aside;
4377
4377
  var init_Aside = __esm({
4378
4378
  "components/core/atoms/Aside.tsx"() {
4379
4379
  init_cn();
4380
- Aside = React76__default.forwardRef(
4380
+ Aside = React77__default.forwardRef(
4381
4381
  ({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
4382
4382
  );
4383
4383
  Aside.displayName = "Aside";
@@ -4456,9 +4456,9 @@ var init_LawReferenceTooltip = __esm({
4456
4456
  className
4457
4457
  }) => {
4458
4458
  const { t } = useTranslate();
4459
- const [isVisible, setIsVisible] = React76__default.useState(false);
4460
- const timeoutRef = React76__default.useRef(null);
4461
- const triggerRef = React76__default.useRef(null);
4459
+ const [isVisible, setIsVisible] = React77__default.useState(false);
4460
+ const timeoutRef = React77__default.useRef(null);
4461
+ const triggerRef = React77__default.useRef(null);
4462
4462
  const handleMouseEnter = () => {
4463
4463
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
4464
4464
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -4469,7 +4469,7 @@ var init_LawReferenceTooltip = __esm({
4469
4469
  };
4470
4470
  const { revealed, triggerProps } = useTapReveal({ refs: [triggerRef] });
4471
4471
  const open = isVisible || revealed;
4472
- React76__default.useEffect(() => {
4472
+ React77__default.useEffect(() => {
4473
4473
  return () => {
4474
4474
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
4475
4475
  };
@@ -4679,7 +4679,7 @@ var init_StatusDot = __esm({
4679
4679
  md: "w-2.5 h-2.5",
4680
4680
  lg: "w-3 h-3"
4681
4681
  };
4682
- StatusDot = React76__default.forwardRef(
4682
+ StatusDot = React77__default.forwardRef(
4683
4683
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
4684
4684
  return /* @__PURE__ */ jsx(
4685
4685
  "span",
@@ -4733,7 +4733,7 @@ var init_TrendIndicator = __esm({
4733
4733
  down: "trending-down",
4734
4734
  flat: "arrow-right"
4735
4735
  };
4736
- TrendIndicator = React76__default.forwardRef(
4736
+ TrendIndicator = React77__default.forwardRef(
4737
4737
  ({
4738
4738
  className,
4739
4739
  value,
@@ -4802,7 +4802,7 @@ var init_RangeSlider = __esm({
4802
4802
  md: "w-4 h-4",
4803
4803
  lg: "w-5 h-5"
4804
4804
  };
4805
- RangeSlider = React76__default.forwardRef(
4805
+ RangeSlider = React77__default.forwardRef(
4806
4806
  ({
4807
4807
  className,
4808
4808
  min = 0,
@@ -5413,7 +5413,7 @@ var init_ContentSection = __esm({
5413
5413
  md: "py-16",
5414
5414
  lg: "py-24"
5415
5415
  };
5416
- ContentSection = React76__default.forwardRef(
5416
+ ContentSection = React77__default.forwardRef(
5417
5417
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
5418
5418
  return /* @__PURE__ */ jsx(
5419
5419
  Box,
@@ -5947,7 +5947,7 @@ var init_AnimatedReveal = __esm({
5947
5947
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
5948
5948
  "none": {}
5949
5949
  };
5950
- AnimatedReveal = React76__default.forwardRef(
5950
+ AnimatedReveal = React77__default.forwardRef(
5951
5951
  ({
5952
5952
  trigger = "scroll",
5953
5953
  animation = "fade-up",
@@ -6107,7 +6107,7 @@ var init_AnimatedGraphic = __esm({
6107
6107
  "components/marketing/atoms/AnimatedGraphic.tsx"() {
6108
6108
  "use client";
6109
6109
  init_cn();
6110
- AnimatedGraphic = React76__default.forwardRef(
6110
+ AnimatedGraphic = React77__default.forwardRef(
6111
6111
  ({
6112
6112
  src,
6113
6113
  svgContent,
@@ -6130,7 +6130,7 @@ var init_AnimatedGraphic = __esm({
6130
6130
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
6131
6131
  const resolvedSvg = svgContent ?? fetchedSvg;
6132
6132
  const prevAnimateRef = useRef(animate);
6133
- const setRef = React76__default.useCallback(
6133
+ const setRef = React77__default.useCallback(
6134
6134
  (node) => {
6135
6135
  containerRef.current = node;
6136
6136
  if (typeof ref === "function") ref(node);
@@ -6231,7 +6231,7 @@ function resolveMarkerExpression(expression, entity, config, state) {
6231
6231
  function isPlainObject(value) {
6232
6232
  if (value === null || value === void 0 || typeof value !== "object") return false;
6233
6233
  if (Array.isArray(value)) return false;
6234
- if (React76__default.isValidElement(value)) return false;
6234
+ if (React77__default.isValidElement(value)) return false;
6235
6235
  if (value instanceof Date) return false;
6236
6236
  if (typeof value === "function") return false;
6237
6237
  return true;
@@ -6875,7 +6875,7 @@ var init_ErrorBoundary = __esm({
6875
6875
  }
6876
6876
  );
6877
6877
  };
6878
- ErrorBoundary = class extends React76__default.Component {
6878
+ ErrorBoundary = class extends React77__default.Component {
6879
6879
  constructor(props) {
6880
6880
  super(props);
6881
6881
  __publicField(this, "reset", () => {
@@ -7158,7 +7158,7 @@ var init_Container = __esm({
7158
7158
  as: Component = "div"
7159
7159
  }) => {
7160
7160
  const resolvedSize = maxWidth ?? size ?? "lg";
7161
- return React76__default.createElement(
7161
+ return React77__default.createElement(
7162
7162
  Component,
7163
7163
  {
7164
7164
  className: cn(
@@ -10522,7 +10522,7 @@ var init_CodeBlock = __esm({
10522
10522
  DIFF_STYLE_FALLBACK = { bg: "", prefix: " ", text: "text-foreground" };
10523
10523
  LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
10524
10524
  HIDDEN_LINE_NUMBERS = { display: "none" };
10525
- CodeBlock = React76__default.memo(
10525
+ CodeBlock = React77__default.memo(
10526
10526
  ({
10527
10527
  code: rawCode,
10528
10528
  language = "text",
@@ -11110,7 +11110,7 @@ var init_MarkdownContent = __esm({
11110
11110
  init_Box();
11111
11111
  init_CodeBlock();
11112
11112
  init_cn();
11113
- MarkdownContent = React76__default.memo(
11113
+ MarkdownContent = React77__default.memo(
11114
11114
  ({ content, direction = "ltr", className }) => {
11115
11115
  const { t: _t } = useTranslate();
11116
11116
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -12437,7 +12437,7 @@ var init_StateMachineView = __esm({
12437
12437
  style: { top: title ? 30 : 0 },
12438
12438
  children: [
12439
12439
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
12440
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React76__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
12440
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React77__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
12441
12441
  StateNode,
12442
12442
  {
12443
12443
  state,
@@ -15002,6 +15002,12 @@ var init_CalendarGrid = __esm({
15002
15002
  CalendarGrid.displayName = "CalendarGrid";
15003
15003
  }
15004
15004
  });
15005
+ var DrawableRegistryContext;
15006
+ var init_registry = __esm({
15007
+ "lib/drawable/registry.ts"() {
15008
+ DrawableRegistryContext = createContext(null);
15009
+ }
15010
+ });
15005
15011
  function MiniMap({
15006
15012
  tiles = DEFAULT_TILES,
15007
15013
  units = DEFAULT_UNITS,
@@ -15014,8 +15020,8 @@ function MiniMap({
15014
15020
  tileAssets,
15015
15021
  unitAssets
15016
15022
  }) {
15017
- const canvasRef = React76.useRef(null);
15018
- const imgCacheRef = React76.useRef(/* @__PURE__ */ new Map());
15023
+ const canvasRef = React77.useRef(null);
15024
+ const imgCacheRef = React77.useRef(/* @__PURE__ */ new Map());
15019
15025
  function loadImg(url) {
15020
15026
  const cached = imgCacheRef.current.get(url);
15021
15027
  if (cached) return cached.complete ? cached : null;
@@ -15031,7 +15037,7 @@ function MiniMap({
15031
15037
  imgCacheRef.current.set(url, img);
15032
15038
  return null;
15033
15039
  }
15034
- React76.useEffect(() => {
15040
+ React77.useEffect(() => {
15035
15041
  const canvas = canvasRef.current;
15036
15042
  if (!canvas) return;
15037
15043
  const ctx = canvas.getContext("2d");
@@ -16016,12 +16022,6 @@ var init_DrawSprite = __esm({
16016
16022
  };
16017
16023
  }
16018
16024
  });
16019
- var DrawableRegistryContext;
16020
- var init_registry = __esm({
16021
- "lib/drawable/registry.ts"() {
16022
- DrawableRegistryContext = createContext(null);
16023
- }
16024
- });
16025
16025
  function isAnimatedShape(node) {
16026
16026
  return Boolean(node.animation && node.animation.durationMs > 0 && node.animation.keyframes.length > 0);
16027
16027
  }
@@ -16467,7 +16467,7 @@ function Canvas2D({
16467
16467
  const registerChildDrawable = useCallback((node) => {
16468
16468
  childDrawablesRef.current.push(node);
16469
16469
  }, []);
16470
- const hasJsxChildren = React76.Children.count(children) > 0;
16470
+ const hasJsxChildren = React77.Children.count(children) > 0;
16471
16471
  function isDrawableLayer(node) {
16472
16472
  return node.type === "draw-sprite-layer" || node.type === "draw-shape-layer" || node.type === "draw-text-layer";
16473
16473
  }
@@ -16996,6 +16996,8 @@ function Canvas({
16996
16996
  showCoordinates,
16997
16997
  showTileInfo,
16998
16998
  fogOfWar,
16999
+ lighting,
17000
+ post,
16999
17001
  tileClickEvent,
17000
17002
  unitClickEvent,
17001
17003
  tileHoverEvent,
@@ -17007,10 +17009,25 @@ function Canvas({
17007
17009
  }) {
17008
17010
  canvasLog.debug("Canvas render", { mode, drawablesCount: drawables?.length, projection, camera: camera ? JSON.stringify(camera) : void 0 });
17009
17011
  const zoom = camera?.zoom;
17012
+ const childDrawablesRef = useRef([]);
17013
+ if (mode === "3d") childDrawablesRef.current = [];
17014
+ const registerChildDrawable = useCallback((node) => {
17015
+ childDrawablesRef.current.push(node);
17016
+ }, []);
17017
+ const [childDrawables, setChildDrawables] = useState([]);
17018
+ useEffect(() => {
17019
+ if (mode !== "3d") return;
17020
+ const next = childDrawablesRef.current;
17021
+ canvasLog.debug("children:adopt", { registered: next.length, adopted: childDrawables.length });
17022
+ if (next.length === 0 && React77.Children.count(children) > 0) return;
17023
+ setChildDrawables(
17024
+ (prev) => prev.length === next.length && JSON.stringify(prev) === JSON.stringify(next) ? prev : [...next]
17025
+ );
17026
+ });
17010
17027
  if (mode === "3d") {
17011
17028
  const props3d = {
17012
17029
  className,
17013
- drawables,
17030
+ drawables: [...drawables ?? [], ...childDrawables],
17014
17031
  isLoading,
17015
17032
  cameraMode: to3DCameraMode(camera?.mode),
17016
17033
  ...zoom !== void 0 ? { scale: zoom } : {},
@@ -17026,6 +17043,8 @@ function Canvas({
17026
17043
  showCoordinates,
17027
17044
  showTileInfo,
17028
17045
  fogOfWar,
17046
+ lighting,
17047
+ post,
17029
17048
  tileClickEvent,
17030
17049
  unitClickEvent,
17031
17050
  tileHoverEvent,
@@ -17034,7 +17053,10 @@ function Canvas({
17034
17053
  keyMap,
17035
17054
  keyUpMap
17036
17055
  };
17037
- return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Canvas3DHost, { ...props3d }) });
17056
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
17057
+ /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Canvas3DHost, { ...props3d }) }),
17058
+ React77.Children.count(children) > 0 && /* @__PURE__ */ jsx(DrawableRegistryContext.Provider, { value: registerChildDrawable, children: /* @__PURE__ */ jsx("div", { "aria-hidden": "true", style: { position: "absolute", width: 0, height: 0, overflow: "hidden" }, children }) })
17059
+ ] });
17038
17060
  }
17039
17061
  return /* @__PURE__ */ jsx(
17040
17062
  Canvas2D,
@@ -17066,6 +17088,7 @@ var Canvas3DHost, canvasLog;
17066
17088
  var init_Canvas = __esm({
17067
17089
  "components/game/molecules/Canvas.tsx"() {
17068
17090
  "use client";
17091
+ init_registry();
17069
17092
  init_Canvas2D();
17070
17093
  Canvas3DHost = lazy(
17071
17094
  () => import('@almadar/ui/components/molecules/game/three').then((m) => ({ default: m.Canvas3DHost }))
@@ -19341,9 +19364,9 @@ function ControlButton({
19341
19364
  className
19342
19365
  }) {
19343
19366
  const eventBus = useEventBus();
19344
- const [isPressed, setIsPressed] = React76.useState(false);
19367
+ const [isPressed, setIsPressed] = React77.useState(false);
19345
19368
  const actualPressed = pressed ?? isPressed;
19346
- const handlePointerDown = React76.useCallback(
19369
+ const handlePointerDown = React77.useCallback(
19347
19370
  (e) => {
19348
19371
  e.preventDefault();
19349
19372
  if (disabled) return;
@@ -19353,7 +19376,7 @@ function ControlButton({
19353
19376
  },
19354
19377
  [disabled, pressEvent, eventBus, onPress]
19355
19378
  );
19356
- const handlePointerUp = React76.useCallback(
19379
+ const handlePointerUp = React77.useCallback(
19357
19380
  (e) => {
19358
19381
  e.preventDefault();
19359
19382
  if (disabled) return;
@@ -19363,7 +19386,7 @@ function ControlButton({
19363
19386
  },
19364
19387
  [disabled, releaseEvent, eventBus, onRelease]
19365
19388
  );
19366
- const handlePointerLeave = React76.useCallback(
19389
+ const handlePointerLeave = React77.useCallback(
19367
19390
  (e) => {
19368
19391
  if (isPressed) {
19369
19392
  setIsPressed(false);
@@ -19451,8 +19474,8 @@ function ControlGrid({
19451
19474
  className
19452
19475
  }) {
19453
19476
  const eventBus = useEventBus();
19454
- const [active, setActive] = React76.useState(/* @__PURE__ */ new Set());
19455
- const handlePress = React76.useCallback(
19477
+ const [active, setActive] = React77.useState(/* @__PURE__ */ new Set());
19478
+ const handlePress = React77.useCallback(
19456
19479
  (id) => {
19457
19480
  setActive((prev) => new Set(prev).add(id));
19458
19481
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -19466,7 +19489,7 @@ function ControlGrid({
19466
19489
  },
19467
19490
  [kind, actionEvent, directionEvent, directionEvents, eventBus, onAction, onDirection]
19468
19491
  );
19469
- const handleRelease = React76.useCallback(
19492
+ const handleRelease = React77.useCallback(
19470
19493
  (id) => {
19471
19494
  setActive((prev) => {
19472
19495
  const next = new Set(prev);
@@ -20704,8 +20727,8 @@ var init_Menu = __esm({
20704
20727
  "bottom-end": "bottom-start"
20705
20728
  };
20706
20729
  const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
20707
- const triggerChild = React76__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
20708
- const triggerElement = React76__default.cloneElement(
20730
+ const triggerChild = React77__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
20731
+ const triggerElement = React77__default.cloneElement(
20709
20732
  triggerChild,
20710
20733
  {
20711
20734
  ref: triggerRef,
@@ -20800,14 +20823,14 @@ function useDataDnd(args) {
20800
20823
  const isZone = Boolean(dragGroup || accepts || sortable);
20801
20824
  const enabled = isZone || Boolean(dndRoot);
20802
20825
  const eventBus = useEventBus();
20803
- const parentRoot = React76__default.useContext(RootCtx);
20826
+ const parentRoot = React77__default.useContext(RootCtx);
20804
20827
  const isRoot = enabled && parentRoot === null;
20805
- const zoneId = React76__default.useId();
20828
+ const zoneId = React77__default.useId();
20806
20829
  const ownGroup = dragGroup ?? accepts ?? zoneId;
20807
- const [optimisticOrders, setOptimisticOrders] = React76__default.useState(() => /* @__PURE__ */ new Map());
20808
- const optimisticOrdersRef = React76__default.useRef(optimisticOrders);
20830
+ const [optimisticOrders, setOptimisticOrders] = React77__default.useState(() => /* @__PURE__ */ new Map());
20831
+ const optimisticOrdersRef = React77__default.useRef(optimisticOrders);
20809
20832
  optimisticOrdersRef.current = optimisticOrders;
20810
- const clearOptimisticOrder = React76__default.useCallback((group) => {
20833
+ const clearOptimisticOrder = React77__default.useCallback((group) => {
20811
20834
  setOptimisticOrders((prev) => {
20812
20835
  if (!prev.has(group)) return prev;
20813
20836
  const next = new Map(prev);
@@ -20832,7 +20855,7 @@ function useDataDnd(args) {
20832
20855
  const raw = it[dndItemIdField];
20833
20856
  return raw != null ? String(raw) : `__idx_${idx}`;
20834
20857
  }).join("|");
20835
- const itemIds = React76__default.useMemo(
20858
+ const itemIds = React77__default.useMemo(
20836
20859
  () => orderedItems.map((it, idx) => {
20837
20860
  const raw = it[dndItemIdField];
20838
20861
  return raw != null ? String(raw) : `__idx_${idx}`;
@@ -20843,7 +20866,7 @@ function useDataDnd(args) {
20843
20866
  const raw = it[dndItemIdField];
20844
20867
  return raw != null ? String(raw) : `__${idx}`;
20845
20868
  }).join("|");
20846
- React76__default.useEffect(() => {
20869
+ React77__default.useEffect(() => {
20847
20870
  const root = isRoot ? null : parentRoot;
20848
20871
  if (root) {
20849
20872
  root.clearOptimisticOrder(ownGroup);
@@ -20851,20 +20874,20 @@ function useDataDnd(args) {
20851
20874
  clearOptimisticOrder(ownGroup);
20852
20875
  }
20853
20876
  }, [itemsContentSig, ownGroup]);
20854
- const zonesRef = React76__default.useRef(/* @__PURE__ */ new Map());
20855
- const registerZone = React76__default.useCallback((zoneId2, meta2) => {
20877
+ const zonesRef = React77__default.useRef(/* @__PURE__ */ new Map());
20878
+ const registerZone = React77__default.useCallback((zoneId2, meta2) => {
20856
20879
  zonesRef.current.set(zoneId2, meta2);
20857
20880
  }, []);
20858
- const unregisterZone = React76__default.useCallback((zoneId2) => {
20881
+ const unregisterZone = React77__default.useCallback((zoneId2) => {
20859
20882
  zonesRef.current.delete(zoneId2);
20860
20883
  }, []);
20861
- const [activeDrag, setActiveDrag] = React76__default.useState(null);
20862
- const [overZoneGroup, setOverZoneGroup] = React76__default.useState(null);
20863
- const meta = React76__default.useMemo(
20884
+ const [activeDrag, setActiveDrag] = React77__default.useState(null);
20885
+ const [overZoneGroup, setOverZoneGroup] = React77__default.useState(null);
20886
+ const meta = React77__default.useMemo(
20864
20887
  () => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
20865
20888
  [ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
20866
20889
  );
20867
- React76__default.useEffect(() => {
20890
+ React77__default.useEffect(() => {
20868
20891
  const target = isRoot ? null : parentRoot;
20869
20892
  if (!target) {
20870
20893
  zonesRef.current.set(zoneId, meta);
@@ -20883,7 +20906,7 @@ function useDataDnd(args) {
20883
20906
  }, [parentRoot, isRoot, zoneId, meta]);
20884
20907
  const sensors = useAlmadarDndSensors(true);
20885
20908
  const collisionDetection = almadarDndCollisionDetection;
20886
- const findZoneByItem = React76__default.useCallback(
20909
+ const findZoneByItem = React77__default.useCallback(
20887
20910
  (id) => {
20888
20911
  for (const z of zonesRef.current.values()) {
20889
20912
  if (z.itemIds.includes(id)) return z;
@@ -20892,7 +20915,7 @@ function useDataDnd(args) {
20892
20915
  },
20893
20916
  []
20894
20917
  );
20895
- React76__default.useCallback(
20918
+ React77__default.useCallback(
20896
20919
  (group) => {
20897
20920
  for (const z of zonesRef.current.values()) {
20898
20921
  if (z.group === group) return z;
@@ -20901,7 +20924,7 @@ function useDataDnd(args) {
20901
20924
  },
20902
20925
  []
20903
20926
  );
20904
- const handleDragEnd = React76__default.useCallback(
20927
+ const handleDragEnd = React77__default.useCallback(
20905
20928
  (event) => {
20906
20929
  const { active, over } = event;
20907
20930
  const activeIdStr = String(active.id);
@@ -20992,8 +21015,8 @@ function useDataDnd(args) {
20992
21015
  },
20993
21016
  [eventBus]
20994
21017
  );
20995
- const sortableData = React76__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
20996
- const SortableItem = React76__default.useCallback(
21018
+ const sortableData = React77__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
21019
+ const SortableItem = React77__default.useCallback(
20997
21020
  ({ id, children }) => {
20998
21021
  const {
20999
21022
  attributes,
@@ -21033,7 +21056,7 @@ function useDataDnd(args) {
21033
21056
  id: droppableId,
21034
21057
  data: sortableData
21035
21058
  });
21036
- const ctx = React76__default.useContext(RootCtx);
21059
+ const ctx = React77__default.useContext(RootCtx);
21037
21060
  const activeDrag2 = ctx?.activeDrag ?? null;
21038
21061
  const overZoneGroup2 = ctx?.overZoneGroup ?? null;
21039
21062
  const isThisZoneOver = overZoneGroup2 === ownGroup;
@@ -21048,7 +21071,7 @@ function useDataDnd(args) {
21048
21071
  showForeignPlaceholder,
21049
21072
  ctxAvailable: ctx != null
21050
21073
  });
21051
- React76__default.useEffect(() => {
21074
+ React77__default.useEffect(() => {
21052
21075
  dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
21053
21076
  }, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
21054
21077
  return /* @__PURE__ */ jsx(
@@ -21062,11 +21085,11 @@ function useDataDnd(args) {
21062
21085
  }
21063
21086
  );
21064
21087
  };
21065
- const rootContextValue = React76__default.useMemo(
21088
+ const rootContextValue = React77__default.useMemo(
21066
21089
  () => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
21067
21090
  [registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
21068
21091
  );
21069
- const handleDragStart = React76__default.useCallback((event) => {
21092
+ const handleDragStart = React77__default.useCallback((event) => {
21070
21093
  const sourceZone = findZoneByItem(event.active.id);
21071
21094
  const rect = event.active.rect.current.initial;
21072
21095
  const height = rect?.height && rect.height > 0 ? rect.height : 64;
@@ -21085,7 +21108,7 @@ function useDataDnd(args) {
21085
21108
  isRoot
21086
21109
  });
21087
21110
  }, [findZoneByItem, isRoot, zoneId]);
21088
- const handleDragOver = React76__default.useCallback((event) => {
21111
+ const handleDragOver = React77__default.useCallback((event) => {
21089
21112
  const { active, over } = event;
21090
21113
  const overData = over?.data?.current;
21091
21114
  const overGroup = overData?.dndGroup ?? null;
@@ -21155,7 +21178,7 @@ function useDataDnd(args) {
21155
21178
  return next;
21156
21179
  });
21157
21180
  }, []);
21158
- const handleDragCancel = React76__default.useCallback((event) => {
21181
+ const handleDragCancel = React77__default.useCallback((event) => {
21159
21182
  setActiveDrag(null);
21160
21183
  setOverZoneGroup(null);
21161
21184
  dndLog.warn("dragCancel", {
@@ -21163,12 +21186,12 @@ function useDataDnd(args) {
21163
21186
  reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
21164
21187
  });
21165
21188
  }, []);
21166
- const handleDragEndWithCleanup = React76__default.useCallback((event) => {
21189
+ const handleDragEndWithCleanup = React77__default.useCallback((event) => {
21167
21190
  handleDragEnd(event);
21168
21191
  setActiveDrag(null);
21169
21192
  setOverZoneGroup(null);
21170
21193
  }, [handleDragEnd]);
21171
- const wrapContainer = React76__default.useCallback(
21194
+ const wrapContainer = React77__default.useCallback(
21172
21195
  (children) => {
21173
21196
  if (!enabled) return children;
21174
21197
  const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
@@ -21222,7 +21245,7 @@ var init_useDataDnd = __esm({
21222
21245
  init_useAlmadarDndCollision();
21223
21246
  init_Box();
21224
21247
  dndLog = createLogger("almadar:ui:dnd");
21225
- RootCtx = React76__default.createContext(null);
21248
+ RootCtx = React77__default.createContext(null);
21226
21249
  }
21227
21250
  });
21228
21251
  function renderIconInput(icon, props) {
@@ -21764,7 +21787,7 @@ function DataList({
21764
21787
  }) {
21765
21788
  const eventBus = useEventBus();
21766
21789
  const { t } = useTranslate();
21767
- const [visibleCount, setVisibleCount] = React76__default.useState(pageSize || Infinity);
21790
+ const [visibleCount, setVisibleCount] = React77__default.useState(pageSize || Infinity);
21768
21791
  const fieldDefs = fields ?? columns ?? [];
21769
21792
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
21770
21793
  const dnd = useDataDnd({
@@ -21780,14 +21803,14 @@ function DataList({
21780
21803
  dndRoot
21781
21804
  });
21782
21805
  const orderedData = dnd.orderedItems;
21783
- const allData = React76__default.useMemo(
21806
+ const allData = React77__default.useMemo(
21784
21807
  () => sortRows(orderedData, sortBy, sortDirection),
21785
21808
  [orderedData, sortBy, sortDirection]
21786
21809
  );
21787
21810
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
21788
21811
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
21789
21812
  const hasRenderProp = typeof children === "function";
21790
- React76__default.useEffect(() => {
21813
+ React77__default.useEffect(() => {
21791
21814
  const renderItemTypeOf = typeof schemaRenderItem;
21792
21815
  const childrenTypeOf = typeof children;
21793
21816
  if (data.length > 0 && !hasRenderProp) {
@@ -21902,7 +21925,7 @@ function DataList({
21902
21925
  return v === void 0 || v === null || v === "" ? raw : String(v);
21903
21926
  };
21904
21927
  return /* @__PURE__ */ jsxs(VStack, { gap: "sm", className: cn("py-2", className), children: [
21905
- groups2.map((group, gi) => /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
21928
+ groups2.map((group, gi) => /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
21906
21929
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
21907
21930
  group.items.map((itemData, index) => {
21908
21931
  const id = itemData.id || `${gi}-${index}`;
@@ -22101,7 +22124,7 @@ function DataList({
22101
22124
  className
22102
22125
  ),
22103
22126
  children: [
22104
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
22127
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
22105
22128
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
22106
22129
  group.items.map(
22107
22130
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -22210,8 +22233,8 @@ function ScalarControl({
22210
22233
  }
22211
22234
  const numeric = typeof value === "number";
22212
22235
  const initial = value === null ? "" : String(value);
22213
- const [draft, setDraft] = React76__default.useState(initial);
22214
- React76__default.useEffect(() => setDraft(initial), [initial]);
22236
+ const [draft, setDraft] = React77__default.useState(initial);
22237
+ React77__default.useEffect(() => setDraft(initial), [initial]);
22215
22238
  const commit = () => {
22216
22239
  if (numeric) {
22217
22240
  const n = draft.trim() === "" ? 0 : Number(draft);
@@ -22279,8 +22302,8 @@ function Row({
22279
22302
  onRemove,
22280
22303
  readonly
22281
22304
  }) {
22282
- const [keyDraft, setKeyDraft] = React76__default.useState(rowKey);
22283
- React76__default.useEffect(() => setKeyDraft(rowKey), [rowKey]);
22305
+ const [keyDraft, setKeyDraft] = React77__default.useState(rowKey);
22306
+ React77__default.useEffect(() => setKeyDraft(rowKey), [rowKey]);
22284
22307
  const container = isObj(value) || isArr(value);
22285
22308
  return /* @__PURE__ */ jsxs(VStack, { gap: "none", className: "group w-max min-w-full", children: [
22286
22309
  /* @__PURE__ */ jsxs(HStack, { gap: "xs", align: "center", className: "py-0.5 w-max", children: [
@@ -22323,7 +22346,7 @@ function ContainerNode({
22323
22346
  depth,
22324
22347
  readonly
22325
22348
  }) {
22326
- const [open, setOpen] = React76__default.useState(depth < 2);
22349
+ const [open, setOpen] = React77__default.useState(depth < 2);
22327
22350
  const array = isArr(value);
22328
22351
  const entries = array ? value.map((v, i) => [String(i), v]) : Object.entries(value);
22329
22352
  const setObjValue = (key, next) => {
@@ -22465,7 +22488,7 @@ var init_FormSection = __esm({
22465
22488
  columns = 1,
22466
22489
  className
22467
22490
  }) => {
22468
- const [collapsed, setCollapsed] = React76__default.useState(defaultCollapsed);
22491
+ const [collapsed, setCollapsed] = React77__default.useState(defaultCollapsed);
22469
22492
  const { t } = useTranslate();
22470
22493
  const eventBus = useEventBus();
22471
22494
  const gridClass = {
@@ -22473,7 +22496,7 @@ var init_FormSection = __esm({
22473
22496
  2: "grid-cols-1 md:grid-cols-2",
22474
22497
  3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
22475
22498
  }[columns];
22476
- React76__default.useCallback(() => {
22499
+ React77__default.useCallback(() => {
22477
22500
  if (collapsible) {
22478
22501
  setCollapsed((prev) => !prev);
22479
22502
  eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
@@ -22881,8 +22904,8 @@ function TextLikeControl({
22881
22904
  onCommit
22882
22905
  }) {
22883
22906
  const initial = value === void 0 || value === null ? "" : String(value);
22884
- const [draft, setDraft] = React76__default.useState(initial);
22885
- React76__default.useEffect(() => setDraft(initial), [initial]);
22907
+ const [draft, setDraft] = React77__default.useState(initial);
22908
+ React77__default.useEffect(() => setDraft(initial), [initial]);
22886
22909
  const commit = () => {
22887
22910
  if (numeric) {
22888
22911
  const n = draft.trim() === "" ? 0 : Number(draft);
@@ -23067,14 +23090,14 @@ var init_NodeSlotEditor = __esm({
23067
23090
  isObj2 = (v) => v !== null && v !== void 0 && typeof v === "object" && !Array.isArray(v);
23068
23091
  NodeSlotEditor = ({ value, onChange, className }) => {
23069
23092
  const { type, props, wasArray } = normalize(value);
23070
- const patterns = React76__default.useMemo(() => {
23093
+ const patterns = React77__default.useMemo(() => {
23071
23094
  try {
23072
23095
  return [...getKnownPatterns()].sort();
23073
23096
  } catch {
23074
23097
  return [];
23075
23098
  }
23076
23099
  }, []);
23077
- const options = React76__default.useMemo(
23100
+ const options = React77__default.useMemo(
23078
23101
  () => [{ value: "", label: "\u2014 none \u2014" }, ...patterns.map((p) => ({ value: p, label: p }))],
23079
23102
  [patterns]
23080
23103
  );
@@ -23086,7 +23109,7 @@ var init_NodeSlotEditor = __esm({
23086
23109
  const pattern = { type: nextType, ...nextProps };
23087
23110
  onChange(wasArray || value === void 0 ? [pattern] : pattern);
23088
23111
  };
23089
- const schemaEntries = React76__default.useMemo(() => {
23112
+ const schemaEntries = React77__default.useMemo(() => {
23090
23113
  if (!type) return [];
23091
23114
  const def = getPatternDefinition(type);
23092
23115
  if (!def?.propsSchema) return [];
@@ -23907,7 +23930,7 @@ var init_Flex = __esm({
23907
23930
  flexStyle.flexBasis = typeof basis === "number" ? `${basis}px` : basis;
23908
23931
  }
23909
23932
  }
23910
- return React76__default.createElement(Component, {
23933
+ return React77__default.createElement(Component, {
23911
23934
  className: cn(
23912
23935
  inline ? "inline-flex" : "flex",
23913
23936
  directionStyles[direction],
@@ -24026,7 +24049,7 @@ var init_Grid = __esm({
24026
24049
  as: Component = "div"
24027
24050
  }) => {
24028
24051
  const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
24029
- return React76__default.createElement(
24052
+ return React77__default.createElement(
24030
24053
  Component,
24031
24054
  {
24032
24055
  className: cn(
@@ -24258,9 +24281,9 @@ var init_Popover = __esm({
24258
24281
  onMouseLeave: handleClose,
24259
24282
  onPointerDown: tapTriggerProps.onPointerDown
24260
24283
  };
24261
- const childElement = React76__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
24284
+ const childElement = React77__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
24262
24285
  const childPointerDown = childElement.props.onPointerDown;
24263
- const triggerElement = React76__default.cloneElement(
24286
+ const triggerElement = React77__default.cloneElement(
24264
24287
  childElement,
24265
24288
  {
24266
24289
  ref: triggerRef,
@@ -25119,9 +25142,9 @@ var init_Tooltip = __esm({
25119
25142
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
25120
25143
  };
25121
25144
  }, []);
25122
- const triggerElement = React76__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
25145
+ const triggerElement = React77__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
25123
25146
  const childPointerDown = triggerElement.props.onPointerDown;
25124
- const trigger = React76__default.cloneElement(triggerElement, {
25147
+ const trigger = React77__default.cloneElement(triggerElement, {
25125
25148
  ref: triggerRef,
25126
25149
  onMouseEnter: handleMouseEnter,
25127
25150
  onMouseLeave: handleMouseLeave,
@@ -25211,7 +25234,7 @@ var init_WizardProgress = __esm({
25211
25234
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
25212
25235
  const isActive = index === currentStep;
25213
25236
  const isCompleted = index < currentStep;
25214
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
25237
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
25215
25238
  /* @__PURE__ */ jsx(
25216
25239
  "button",
25217
25240
  {
@@ -27022,7 +27045,7 @@ function GameMenu({
27022
27045
  }) {
27023
27046
  const resolvedOptions = (options?.length ? options : void 0) ?? (menuItems?.length ? menuItems : void 0) ?? DEFAULT_MENU_OPTIONS;
27024
27047
  const eventBus = useEventBus();
27025
- const handleOptionClick = React76.useCallback(
27048
+ const handleOptionClick = React77.useCallback(
27026
27049
  (option) => {
27027
27050
  if (option.event) {
27028
27051
  eventBus.emit(`UI:${option.event}`, { option });
@@ -27258,7 +27281,7 @@ function StateGraph({
27258
27281
  }) {
27259
27282
  const eventBus = useEventBus();
27260
27283
  const nodes = states ?? [];
27261
- const positions = React76.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
27284
+ const positions = React77.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
27262
27285
  return /* @__PURE__ */ jsxs(
27263
27286
  Box,
27264
27287
  {
@@ -27795,7 +27818,7 @@ function LinearView({
27795
27818
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
27796
27819
  const isDone = i < currentIdx;
27797
27820
  const isCurrent = i === currentIdx;
27798
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
27821
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
27799
27822
  i > 0 && /* @__PURE__ */ jsx(
27800
27823
  Typography,
27801
27824
  {
@@ -28428,7 +28451,7 @@ function SequenceBar({
28428
28451
  else onSlotRemove?.(index);
28429
28452
  }, [emit, slotRemoveEvent, onSlotRemove, playing]);
28430
28453
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
28431
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
28454
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
28432
28455
  i > 0 && /* @__PURE__ */ jsx(
28433
28456
  Typography,
28434
28457
  {
@@ -29408,13 +29431,13 @@ var init_MapView = __esm({
29408
29431
  shadowSize: [41, 41]
29409
29432
  });
29410
29433
  L.Marker.prototype.options.icon = defaultIcon;
29411
- const { useEffect: useEffect65, useRef: useRef63, useCallback: useCallback106, useState: useState103 } = React76__default;
29434
+ const { useEffect: useEffect66, useRef: useRef64, useCallback: useCallback107, useState: useState104 } = React77__default;
29412
29435
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
29413
29436
  const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
29414
29437
  function MapUpdater({ centerLat, centerLng, zoom }) {
29415
29438
  const map = useMap();
29416
- const prevRef = useRef63({ centerLat, centerLng, zoom });
29417
- useEffect65(() => {
29439
+ const prevRef = useRef64({ centerLat, centerLng, zoom });
29440
+ useEffect66(() => {
29418
29441
  const prev = prevRef.current;
29419
29442
  if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
29420
29443
  map.setView([centerLat, centerLng], zoom);
@@ -29425,7 +29448,7 @@ var init_MapView = __esm({
29425
29448
  }
29426
29449
  function MapClickHandler({ onMapClick }) {
29427
29450
  const map = useMap();
29428
- useEffect65(() => {
29451
+ useEffect66(() => {
29429
29452
  if (!onMapClick) return;
29430
29453
  const handler = (e) => {
29431
29454
  onMapClick(e.latlng.lat, e.latlng.lng);
@@ -29453,8 +29476,8 @@ var init_MapView = __esm({
29453
29476
  showAttribution = true
29454
29477
  }) {
29455
29478
  const eventBus = useEventBus2();
29456
- const [clickedPosition, setClickedPosition] = useState103(null);
29457
- const handleMapClick = useCallback106((lat, lng) => {
29479
+ const [clickedPosition, setClickedPosition] = useState104(null);
29480
+ const handleMapClick = useCallback107((lat, lng) => {
29458
29481
  if (showClickedPin) {
29459
29482
  setClickedPosition({ lat, lng });
29460
29483
  }
@@ -29463,7 +29486,7 @@ var init_MapView = __esm({
29463
29486
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
29464
29487
  }
29465
29488
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
29466
- const handleMarkerClick = useCallback106((marker) => {
29489
+ const handleMarkerClick = useCallback107((marker) => {
29467
29490
  onMarkerClick?.(marker);
29468
29491
  if (markerClickEvent) {
29469
29492
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -30326,8 +30349,8 @@ function TableView({
30326
30349
  }) {
30327
30350
  const eventBus = useEventBus();
30328
30351
  const { t } = useTranslate();
30329
- const [visibleCount, setVisibleCount] = React76__default.useState(pageSize > 0 ? pageSize : Infinity);
30330
- const [localSelected, setLocalSelected] = React76__default.useState(/* @__PURE__ */ new Set());
30352
+ const [visibleCount, setVisibleCount] = React77__default.useState(pageSize > 0 ? pageSize : Infinity);
30353
+ const [localSelected, setLocalSelected] = React77__default.useState(/* @__PURE__ */ new Set());
30331
30354
  const colDefs = (Array.isArray(columns) ? columns : void 0) ?? (Array.isArray(fields) ? fields : void 0) ?? [];
30332
30355
  const actionDefs = Array.isArray(itemActions) ? itemActions : [];
30333
30356
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -30349,7 +30372,7 @@ function TableView({
30349
30372
  const hasRenderProp = typeof children === "function";
30350
30373
  const idField = dndItemIdField ?? "id";
30351
30374
  const isCoarsePointer = useMediaQuery("(pointer: coarse)");
30352
- React76__default.useEffect(() => {
30375
+ React77__default.useEffect(() => {
30353
30376
  tableViewLog.debug("render", {
30354
30377
  rowCount: data.length,
30355
30378
  colCount: colDefs.length,
@@ -30406,7 +30429,7 @@ function TableView({
30406
30429
  };
30407
30430
  eventBus.emit(`UI:${itemClickEvent}`, payload);
30408
30431
  };
30409
- const colFloors = React76__default.useMemo(
30432
+ const colFloors = React77__default.useMemo(
30410
30433
  () => colDefs.map((col) => {
30411
30434
  const longest = data.reduce((widest, row) => {
30412
30435
  const cell = formatCell(asFieldValue(getNestedValue(row, col.field ?? col.key)), col.format);
@@ -30568,12 +30591,12 @@ function TableView({
30568
30591
  ]
30569
30592
  }
30570
30593
  );
30571
- return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React76__default.Fragment, { children: rowInner }, id);
30594
+ return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React77__default.Fragment, { children: rowInner }, id);
30572
30595
  };
30573
30596
  const items = Array.from(data);
30574
30597
  const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
30575
30598
  let runningIndex = 0;
30576
- const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
30599
+ const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
30577
30600
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
30578
30601
  group.items.map((row) => renderRow(row, runningIndex++))
30579
30602
  ] }, gi)) });
@@ -31936,7 +31959,7 @@ var init_StepFlow = __esm({
31936
31959
  className
31937
31960
  }) => {
31938
31961
  if (orientation === "vertical") {
31939
- return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React76__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
31962
+ return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React77__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
31940
31963
  /* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
31941
31964
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
31942
31965
  showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
@@ -31947,7 +31970,7 @@ var init_StepFlow = __esm({
31947
31970
  ] })
31948
31971
  ] }) }, index)) });
31949
31972
  }
31950
- 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(React76__default.Fragment, { children: [
31973
+ 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(React77__default.Fragment, { children: [
31951
31974
  /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
31952
31975
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
31953
31976
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
@@ -32937,7 +32960,7 @@ var init_LikertScale = __esm({
32937
32960
  md: "text-base",
32938
32961
  lg: "text-lg"
32939
32962
  };
32940
- LikertScale = React76__default.forwardRef(
32963
+ LikertScale = React77__default.forwardRef(
32941
32964
  ({
32942
32965
  question,
32943
32966
  options = DEFAULT_LIKERT_OPTIONS,
@@ -32949,7 +32972,7 @@ var init_LikertScale = __esm({
32949
32972
  variant = "radios",
32950
32973
  className
32951
32974
  }, ref) => {
32952
- const groupId = React76__default.useId();
32975
+ const groupId = React77__default.useId();
32953
32976
  const eventBus = useEventBus();
32954
32977
  const handleSelect = useCallback(
32955
32978
  (next) => {
@@ -35238,7 +35261,7 @@ var init_DocBreadcrumb = __esm({
35238
35261
  "aria-label": t("aria.breadcrumb"),
35239
35262
  children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
35240
35263
  const isLast = idx === items.length - 1;
35241
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
35264
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
35242
35265
  idx > 0 && /* @__PURE__ */ jsx(
35243
35266
  Icon,
35244
35267
  {
@@ -36107,7 +36130,7 @@ var init_MiniStateMachine = __esm({
36107
36130
  const x = 2 + i * (NODE_W + GAP2 + ARROW_W + GAP2);
36108
36131
  const tc = transitionCounts[s.name] ?? 0;
36109
36132
  const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
36110
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
36133
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
36111
36134
  /* @__PURE__ */ jsx(
36112
36135
  AvlState,
36113
36136
  {
@@ -36311,7 +36334,7 @@ var init_PageHeader = __esm({
36311
36334
  info: "bg-info/10 text-info"
36312
36335
  };
36313
36336
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
36314
- 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(React76__default.Fragment, { children: [
36337
+ 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(React77__default.Fragment, { children: [
36315
36338
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
36316
36339
  crumb.href ? /* @__PURE__ */ jsx(
36317
36340
  "a",
@@ -36669,7 +36692,7 @@ var init_Section = __esm({
36669
36692
  as: Component = "section"
36670
36693
  }) => {
36671
36694
  const hasHeader = title || description || action;
36672
- return React76__default.createElement(
36695
+ return React77__default.createElement(
36673
36696
  Component,
36674
36697
  {
36675
36698
  className: cn(
@@ -37043,7 +37066,7 @@ var init_WizardContainer = __esm({
37043
37066
  const isCompleted = index < currentStep;
37044
37067
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
37045
37068
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
37046
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
37069
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
37047
37070
  /* @__PURE__ */ jsx(
37048
37071
  Button,
37049
37072
  {
@@ -38830,7 +38853,7 @@ var init_ImportPreviewTree = __esm({
38830
38853
  const renderUnit = (unit, childrenByParent, depth) => {
38831
38854
  const summary = fieldSummary(unit);
38832
38855
  const children = childrenByParent.get(unit.ref) ?? [];
38833
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
38856
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
38834
38857
  /* @__PURE__ */ jsxs(
38835
38858
  Box,
38836
38859
  {
@@ -38927,7 +38950,7 @@ var init_ImportProgress = __esm({
38927
38950
  PIPELINE.map((key, index) => {
38928
38951
  const isComplete = index < currentIndex;
38929
38952
  const isActive = index === currentIndex;
38930
- return /* @__PURE__ */ jsxs(React76__default.Fragment, { children: [
38953
+ return /* @__PURE__ */ jsxs(React77__default.Fragment, { children: [
38931
38954
  index > 0 ? /* @__PURE__ */ jsx(Box, { className: "h-px w-4 bg-border" }) : null,
38932
38955
  /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-1", "data-testid": `import-progress-step-${key}`, children: [
38933
38956
  /* @__PURE__ */ jsx(
@@ -40274,7 +40297,7 @@ var init_DrawMesh = __esm({
40274
40297
  }
40275
40298
  });
40276
40299
  function extractTitle(children) {
40277
- if (!React76__default.isValidElement(children)) return void 0;
40300
+ if (!React77__default.isValidElement(children)) return void 0;
40278
40301
  const props = children.props;
40279
40302
  if (typeof props.title === "string") {
40280
40303
  return props.title;
@@ -40624,12 +40647,12 @@ var init_Form = __esm({
40624
40647
  const isSchemaEntity = isOrbitalEntitySchema(entity);
40625
40648
  const resolvedEntity = isSchemaEntity ? entity : void 0;
40626
40649
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
40627
- const normalizedInitialData = React76__default.useMemo(() => {
40650
+ const normalizedInitialData = React77__default.useMemo(() => {
40628
40651
  const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
40629
40652
  const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
40630
40653
  return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
40631
40654
  }, [entity, initialData]);
40632
- const entityDerivedFields = React76__default.useMemo(() => {
40655
+ const entityDerivedFields = React77__default.useMemo(() => {
40633
40656
  if (fields && fields.length > 0) return void 0;
40634
40657
  if (!resolvedEntity) return void 0;
40635
40658
  return resolvedEntity.fields.map(
@@ -40650,16 +40673,16 @@ var init_Form = __esm({
40650
40673
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
40651
40674
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
40652
40675
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
40653
- const [formData, setFormData] = React76__default.useState(
40676
+ const [formData, setFormData] = React77__default.useState(
40654
40677
  normalizedInitialData
40655
40678
  );
40656
- const [collapsedSections, setCollapsedSections] = React76__default.useState(
40679
+ const [collapsedSections, setCollapsedSections] = React77__default.useState(
40657
40680
  /* @__PURE__ */ new Set()
40658
40681
  );
40659
- const [submitError, setSubmitError] = React76__default.useState(null);
40660
- const formRef = React76__default.useRef(null);
40682
+ const [submitError, setSubmitError] = React77__default.useState(null);
40683
+ const formRef = React77__default.useRef(null);
40661
40684
  const formMode = props.mode;
40662
- const mountedRef = React76__default.useRef(false);
40685
+ const mountedRef = React77__default.useRef(false);
40663
40686
  if (!mountedRef.current) {
40664
40687
  mountedRef.current = true;
40665
40688
  debug("forms", "mount", {
@@ -40672,7 +40695,7 @@ var init_Form = __esm({
40672
40695
  });
40673
40696
  }
40674
40697
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
40675
- const evalContext = React76__default.useMemo(
40698
+ const evalContext = React77__default.useMemo(
40676
40699
  () => ({
40677
40700
  formValues: formData,
40678
40701
  globalVariables: externalContext?.globalVariables ?? {},
@@ -40681,7 +40704,7 @@ var init_Form = __esm({
40681
40704
  }),
40682
40705
  [formData, externalContext]
40683
40706
  );
40684
- React76__default.useEffect(() => {
40707
+ React77__default.useEffect(() => {
40685
40708
  debug("forms", "initialData-sync", {
40686
40709
  mode: formMode,
40687
40710
  normalizedInitialData,
@@ -40692,7 +40715,7 @@ var init_Form = __esm({
40692
40715
  setFormData(normalizedInitialData);
40693
40716
  }
40694
40717
  }, [normalizedInitialData]);
40695
- const processCalculations = React76__default.useCallback(
40718
+ const processCalculations = React77__default.useCallback(
40696
40719
  (changedFieldId, newFormData) => {
40697
40720
  if (!hiddenCalculations.length) return;
40698
40721
  const context = {
@@ -40717,7 +40740,7 @@ var init_Form = __esm({
40717
40740
  },
40718
40741
  [hiddenCalculations, externalContext, eventBus]
40719
40742
  );
40720
- const checkViolations = React76__default.useCallback(
40743
+ const checkViolations = React77__default.useCallback(
40721
40744
  (changedFieldId, newFormData) => {
40722
40745
  if (!violationTriggers.length) return;
40723
40746
  const context = {
@@ -40755,7 +40778,7 @@ var init_Form = __esm({
40755
40778
  processCalculations(name, newFormData);
40756
40779
  checkViolations(name, newFormData);
40757
40780
  };
40758
- const isFieldVisible = React76__default.useCallback(
40781
+ const isFieldVisible = React77__default.useCallback(
40759
40782
  (fieldName) => {
40760
40783
  const condition = conditionalFields[fieldName];
40761
40784
  if (!condition) return true;
@@ -40763,7 +40786,7 @@ var init_Form = __esm({
40763
40786
  },
40764
40787
  [conditionalFields, evalContext]
40765
40788
  );
40766
- const isSectionVisible = React76__default.useCallback(
40789
+ const isSectionVisible = React77__default.useCallback(
40767
40790
  (section) => {
40768
40791
  if (!section.condition) return true;
40769
40792
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -40839,7 +40862,7 @@ var init_Form = __esm({
40839
40862
  eventBus.emit(`UI:${onCancel}`);
40840
40863
  }
40841
40864
  };
40842
- const renderField = React76__default.useCallback(
40865
+ const renderField = React77__default.useCallback(
40843
40866
  (field) => {
40844
40867
  const fieldName = field.name || field.field;
40845
40868
  if (!fieldName) return null;
@@ -40860,7 +40883,7 @@ var init_Form = __esm({
40860
40883
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
40861
40884
  );
40862
40885
  const effectiveFields = entityDerivedFields ?? fields;
40863
- const normalizedFields = React76__default.useMemo(() => {
40886
+ const normalizedFields = React77__default.useMemo(() => {
40864
40887
  if (!effectiveFields || effectiveFields.length === 0) return [];
40865
40888
  return effectiveFields.map((field) => {
40866
40889
  if (typeof field === "string") {
@@ -40884,7 +40907,7 @@ var init_Form = __esm({
40884
40907
  return field;
40885
40908
  });
40886
40909
  }, [effectiveFields, resolvedEntity]);
40887
- const schemaFields = React76__default.useMemo(() => {
40910
+ const schemaFields = React77__default.useMemo(() => {
40888
40911
  if (normalizedFields.length === 0) return null;
40889
40912
  if (isDebugEnabled()) {
40890
40913
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -40894,7 +40917,7 @@ var init_Form = __esm({
40894
40917
  }
40895
40918
  return normalizedFields.map(renderField).filter(Boolean);
40896
40919
  }, [normalizedFields, renderField, entityName, conditionalFields]);
40897
- const sectionElements = React76__default.useMemo(() => {
40920
+ const sectionElements = React77__default.useMemo(() => {
40898
40921
  if (!sections || sections.length === 0) return null;
40899
40922
  return sections.map((section) => {
40900
40923
  if (!isSectionVisible(section)) {
@@ -41620,7 +41643,7 @@ var init_List = __esm({
41620
41643
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
41621
41644
  return [];
41622
41645
  }, [entity]);
41623
- const getItemActions = React76__default.useCallback(
41646
+ const getItemActions = React77__default.useCallback(
41624
41647
  (item) => {
41625
41648
  if (!itemActions) return [];
41626
41649
  if (typeof itemActions === "function") {
@@ -42101,7 +42124,7 @@ var init_MediaGallery = __esm({
42101
42124
  [selectable, selectedItems, selectionEvent, eventBus]
42102
42125
  );
42103
42126
  const entityData = Array.isArray(entity) ? entity : [];
42104
- const items = React76__default.useMemo(() => {
42127
+ const items = React77__default.useMemo(() => {
42105
42128
  if (propItems && propItems.length > 0) return propItems;
42106
42129
  if (entityData.length === 0) return [];
42107
42130
  return entityData.map((record, idx) => {
@@ -42266,7 +42289,7 @@ var init_MediaGallery = __esm({
42266
42289
  }
42267
42290
  });
42268
42291
  function extractTitle2(children) {
42269
- if (!React76__default.isValidElement(children)) return void 0;
42292
+ if (!React77__default.isValidElement(children)) return void 0;
42270
42293
  const props = children.props;
42271
42294
  if (typeof props.title === "string") {
42272
42295
  return props.title;
@@ -42521,7 +42544,7 @@ var init_debugRegistry = __esm({
42521
42544
  }
42522
42545
  });
42523
42546
  function useDebugData() {
42524
- const [data, setData] = React76.useState(() => ({
42547
+ const [data, setData] = React77.useState(() => ({
42525
42548
  traits: [],
42526
42549
  ticks: [],
42527
42550
  guards: [],
@@ -42535,7 +42558,7 @@ function useDebugData() {
42535
42558
  },
42536
42559
  lastUpdate: Date.now()
42537
42560
  }));
42538
- React76.useEffect(() => {
42561
+ React77.useEffect(() => {
42539
42562
  const updateData = () => {
42540
42563
  setData({
42541
42564
  traits: getAllTraits(),
@@ -42644,12 +42667,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
42644
42667
  return positions;
42645
42668
  }
42646
42669
  function WalkMinimap() {
42647
- const [walkStep, setWalkStep] = React76.useState(null);
42648
- const [traits2, setTraits] = React76.useState([]);
42649
- const [coveredEdges, setCoveredEdges] = React76.useState([]);
42650
- const [completedTraits, setCompletedTraits] = React76.useState(/* @__PURE__ */ new Set());
42651
- const prevTraitRef = React76.useRef(null);
42652
- React76.useEffect(() => {
42670
+ const [walkStep, setWalkStep] = React77.useState(null);
42671
+ const [traits2, setTraits] = React77.useState([]);
42672
+ const [coveredEdges, setCoveredEdges] = React77.useState([]);
42673
+ const [completedTraits, setCompletedTraits] = React77.useState(/* @__PURE__ */ new Set());
42674
+ const prevTraitRef = React77.useRef(null);
42675
+ React77.useEffect(() => {
42653
42676
  const interval = setInterval(() => {
42654
42677
  const w = window;
42655
42678
  const step = w.__orbitalWalkStep;
@@ -43085,15 +43108,15 @@ var init_EntitiesTab = __esm({
43085
43108
  });
43086
43109
  function EventFlowTab({ events: events2 }) {
43087
43110
  const { t } = useTranslate();
43088
- const [filter, setFilter] = React76.useState("all");
43089
- const containerRef = React76.useRef(null);
43090
- const [autoScroll, setAutoScroll] = React76.useState(true);
43091
- React76.useEffect(() => {
43111
+ const [filter, setFilter] = React77.useState("all");
43112
+ const containerRef = React77.useRef(null);
43113
+ const [autoScroll, setAutoScroll] = React77.useState(true);
43114
+ React77.useEffect(() => {
43092
43115
  if (autoScroll && containerRef.current) {
43093
43116
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
43094
43117
  }
43095
43118
  }, [events2.length, autoScroll]);
43096
- const filteredEvents = React76.useMemo(() => {
43119
+ const filteredEvents = React77.useMemo(() => {
43097
43120
  if (filter === "all") return events2;
43098
43121
  return events2.filter((e) => e.type === filter);
43099
43122
  }, [events2, filter]);
@@ -43209,7 +43232,7 @@ var init_EventFlowTab = __esm({
43209
43232
  });
43210
43233
  function GuardsPanel({ guards }) {
43211
43234
  const { t } = useTranslate();
43212
- const [filter, setFilter] = React76.useState("all");
43235
+ const [filter, setFilter] = React77.useState("all");
43213
43236
  if (guards.length === 0) {
43214
43237
  return /* @__PURE__ */ jsx(
43215
43238
  EmptyState,
@@ -43222,7 +43245,7 @@ function GuardsPanel({ guards }) {
43222
43245
  }
43223
43246
  const passedCount = guards.filter((g) => g.result).length;
43224
43247
  const failedCount = guards.length - passedCount;
43225
- const filteredGuards = React76.useMemo(() => {
43248
+ const filteredGuards = React77.useMemo(() => {
43226
43249
  if (filter === "all") return guards;
43227
43250
  if (filter === "passed") return guards.filter((g) => g.result);
43228
43251
  return guards.filter((g) => !g.result);
@@ -43385,10 +43408,10 @@ function EffectBadge({ effect }) {
43385
43408
  }
43386
43409
  function TransitionTimeline({ transitions }) {
43387
43410
  const { t } = useTranslate();
43388
- const containerRef = React76.useRef(null);
43389
- const [autoScroll, setAutoScroll] = React76.useState(true);
43390
- const [expandedId, setExpandedId] = React76.useState(null);
43391
- React76.useEffect(() => {
43411
+ const containerRef = React77.useRef(null);
43412
+ const [autoScroll, setAutoScroll] = React77.useState(true);
43413
+ const [expandedId, setExpandedId] = React77.useState(null);
43414
+ React77.useEffect(() => {
43392
43415
  if (autoScroll && containerRef.current) {
43393
43416
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
43394
43417
  }
@@ -43668,9 +43691,9 @@ function getAllEvents(traits2) {
43668
43691
  function EventDispatcherTab({ traits: traits2, schema }) {
43669
43692
  const eventBus = useEventBus();
43670
43693
  const { t } = useTranslate();
43671
- const [log19, setLog] = React76.useState([]);
43672
- const prevStatesRef = React76.useRef(/* @__PURE__ */ new Map());
43673
- React76.useEffect(() => {
43694
+ const [log19, setLog] = React77.useState([]);
43695
+ const prevStatesRef = React77.useRef(/* @__PURE__ */ new Map());
43696
+ React77.useEffect(() => {
43674
43697
  for (const trait of traits2) {
43675
43698
  const prev = prevStatesRef.current.get(trait.id);
43676
43699
  if (prev && prev !== trait.currentState) {
@@ -43839,10 +43862,10 @@ function VerifyModePanel({
43839
43862
  localCount
43840
43863
  }) {
43841
43864
  const { t } = useTranslate();
43842
- const [expanded, setExpanded] = React76.useState(true);
43843
- const scrollRef = React76.useRef(null);
43844
- const prevCountRef = React76.useRef(0);
43845
- React76.useEffect(() => {
43865
+ const [expanded, setExpanded] = React77.useState(true);
43866
+ const scrollRef = React77.useRef(null);
43867
+ const prevCountRef = React77.useRef(0);
43868
+ React77.useEffect(() => {
43846
43869
  if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
43847
43870
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
43848
43871
  }
@@ -43899,10 +43922,10 @@ function RuntimeDebugger({
43899
43922
  schema
43900
43923
  }) {
43901
43924
  const { t } = useTranslate();
43902
- const [isCollapsed, setIsCollapsed] = React76.useState(mode === "verify" ? true : defaultCollapsed);
43903
- const [isVisible, setIsVisible] = React76.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
43925
+ const [isCollapsed, setIsCollapsed] = React77.useState(mode === "verify" ? true : defaultCollapsed);
43926
+ const [isVisible, setIsVisible] = React77.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
43904
43927
  const debugData = useDebugData();
43905
- React76.useEffect(() => {
43928
+ React77.useEffect(() => {
43906
43929
  if (mode === "inline") return;
43907
43930
  return onDebugToggle((enabled) => {
43908
43931
  setIsVisible(enabled);
@@ -43911,7 +43934,7 @@ function RuntimeDebugger({
43911
43934
  }
43912
43935
  });
43913
43936
  }, [mode]);
43914
- React76.useEffect(() => {
43937
+ React77.useEffect(() => {
43915
43938
  if (mode === "inline") return;
43916
43939
  const handleKeyDown = (e) => {
43917
43940
  if (e.key === "`" && isVisible) {
@@ -44431,7 +44454,7 @@ var init_StatCard = __esm({
44431
44454
  const labelToUse = propLabel ?? propTitle;
44432
44455
  const eventBus = useEventBus();
44433
44456
  const { t } = useTranslate();
44434
- const handleActionClick = React76__default.useCallback(() => {
44457
+ const handleActionClick = React77__default.useCallback(() => {
44435
44458
  if (action?.event) {
44436
44459
  eventBus.emit(`UI:${action.event}`, {});
44437
44460
  }
@@ -44442,7 +44465,7 @@ var init_StatCard = __esm({
44442
44465
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
44443
44466
  const isLoading = externalLoading ?? false;
44444
44467
  const error = externalError;
44445
- const computeMetricValue = React76__default.useCallback(
44468
+ const computeMetricValue = React77__default.useCallback(
44446
44469
  (metric, items) => {
44447
44470
  if (metric.value !== void 0) {
44448
44471
  return metric.value;
@@ -44481,7 +44504,7 @@ var init_StatCard = __esm({
44481
44504
  },
44482
44505
  []
44483
44506
  );
44484
- const schemaStats = React76__default.useMemo(() => {
44507
+ const schemaStats = React77__default.useMemo(() => {
44485
44508
  if (!metrics || metrics.length === 0) return null;
44486
44509
  return metrics.map((metric) => ({
44487
44510
  label: metric.label,
@@ -44489,7 +44512,7 @@ var init_StatCard = __esm({
44489
44512
  format: metric.format
44490
44513
  }));
44491
44514
  }, [metrics, data, computeMetricValue]);
44492
- const calculatedTrend = React76__default.useMemo(() => {
44515
+ const calculatedTrend = React77__default.useMemo(() => {
44493
44516
  if (manualTrend !== void 0) return manualTrend;
44494
44517
  if (previousValue === void 0 || currentValue2 === void 0)
44495
44518
  return void 0;
@@ -45129,8 +45152,8 @@ var init_SubagentTracePanel = __esm({
45129
45152
  ] });
45130
45153
  };
45131
45154
  InlineActivityStream = ({ activities, autoScroll = true, className }) => {
45132
- const endRef = React76__default.useRef(null);
45133
- React76__default.useEffect(() => {
45155
+ const endRef = React77__default.useRef(null);
45156
+ React77__default.useEffect(() => {
45134
45157
  if (!autoScroll) return;
45135
45158
  endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
45136
45159
  }, [activities.length, autoScroll]);
@@ -45224,7 +45247,7 @@ var init_SubagentTracePanel = __esm({
45224
45247
  };
45225
45248
  SubagentRichCard = ({ subagent }) => {
45226
45249
  const { t } = useTranslate();
45227
- const activities = React76__default.useMemo(
45250
+ const activities = React77__default.useMemo(
45228
45251
  () => subagentMessagesToActivities(subagent.messages),
45229
45252
  [subagent.messages]
45230
45253
  );
@@ -45301,8 +45324,8 @@ var init_SubagentTracePanel = __esm({
45301
45324
  ] });
45302
45325
  };
45303
45326
  CoordinatorConversation = ({ messages, autoScroll = true, className }) => {
45304
- const endRef = React76__default.useRef(null);
45305
- React76__default.useEffect(() => {
45327
+ const endRef = React77__default.useRef(null);
45328
+ React77__default.useEffect(() => {
45306
45329
  if (!autoScroll) return;
45307
45330
  endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
45308
45331
  }, [messages.length, autoScroll]);
@@ -45737,7 +45760,7 @@ var init_Timeline = __esm({
45737
45760
  }) => {
45738
45761
  const { t } = useTranslate();
45739
45762
  const entityData = entity ?? [];
45740
- const items = React76__default.useMemo(() => {
45763
+ const items = React77__default.useMemo(() => {
45741
45764
  if (propItems) return propItems;
45742
45765
  if (entityData.length === 0) return [];
45743
45766
  return entityData.map((record, idx) => {
@@ -45839,7 +45862,7 @@ var init_Timeline = __esm({
45839
45862
  }
45840
45863
  });
45841
45864
  function extractToastProps(children) {
45842
- if (!React76__default.isValidElement(children)) {
45865
+ if (!React77__default.isValidElement(children)) {
45843
45866
  if (typeof children === "string") {
45844
45867
  return { message: children };
45845
45868
  }
@@ -45881,7 +45904,7 @@ var init_ToastSlot = __esm({
45881
45904
  eventBus.emit(`${prefix}CLOSE`);
45882
45905
  };
45883
45906
  if (!isVisible) return null;
45884
- const isCustomContent = React76__default.isValidElement(children) && !message;
45907
+ const isCustomContent = React77__default.isValidElement(children) && !message;
45885
45908
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
45886
45909
  Toast,
45887
45910
  {
@@ -46456,7 +46479,7 @@ function SuspenseConfigProvider({
46456
46479
  config,
46457
46480
  children
46458
46481
  }) {
46459
- return React76__default.createElement(
46482
+ return React77__default.createElement(
46460
46483
  SuspenseConfigContext.Provider,
46461
46484
  { value: config },
46462
46485
  children
@@ -46498,7 +46521,7 @@ function enrichFormFields(fields, entityDef) {
46498
46521
  }
46499
46522
  return { name: field, label: humanizeFieldName(field) };
46500
46523
  }
46501
- if (field && typeof field === "object" && !Array.isArray(field) && !React76__default.isValidElement(field) && !(field instanceof Date)) {
46524
+ if (field && typeof field === "object" && !Array.isArray(field) && !React77__default.isValidElement(field) && !(field instanceof Date)) {
46502
46525
  const obj = field;
46503
46526
  const fieldName = typeof obj.name === "string" ? obj.name : typeof obj.field === "string" ? obj.field : void 0;
46504
46527
  if (!fieldName) return field;
@@ -46970,7 +46993,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
46970
46993
  const key = `${parentId}-${index}-trait:${traitName}`;
46971
46994
  return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
46972
46995
  }
46973
- return /* @__PURE__ */ jsx(React76__default.Fragment, { children: child }, `${parentId}-${index}`);
46996
+ return /* @__PURE__ */ jsx(React77__default.Fragment, { children: child }, `${parentId}-${index}`);
46974
46997
  }
46975
46998
  if (!child || typeof child !== "object") return null;
46976
46999
  const childId = `${parentId}-${index}`;
@@ -47027,14 +47050,14 @@ function isPatternConfig(value) {
47027
47050
  if (value === null || value === void 0) return false;
47028
47051
  if (typeof value !== "object") return false;
47029
47052
  if (Array.isArray(value)) return false;
47030
- if (React76__default.isValidElement(value)) return false;
47053
+ if (React77__default.isValidElement(value)) return false;
47031
47054
  if (value instanceof Date) return false;
47032
47055
  if (typeof value === "function") return false;
47033
47056
  const record = value;
47034
47057
  return "type" in record && typeof record.type === "string" && getComponentForPattern$1(record.type) !== null;
47035
47058
  }
47036
47059
  function isPlainConfigObject(value) {
47037
- if (React76__default.isValidElement(value)) return false;
47060
+ if (React77__default.isValidElement(value)) return false;
47038
47061
  if (value instanceof Date) return false;
47039
47062
  const proto = Object.getPrototypeOf(value);
47040
47063
  return proto === Object.prototype || proto === null;
@@ -47175,7 +47198,7 @@ function SlotContentRenderer({
47175
47198
  for (const slotKey of CONTENT_NODE_SLOTS) {
47176
47199
  const slotVal = restProps[slotKey];
47177
47200
  if (slotVal === void 0 || slotVal === null) continue;
47178
- if (React76__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
47201
+ if (React77__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
47179
47202
  const typelessChildren = !Array.isArray(slotVal) && typeof slotVal === "object" && !("type" in slotVal) && Array.isArray(slotVal.children) ? slotVal.children : void 0;
47180
47203
  if (typelessChildren !== void 0 || Array.isArray(slotVal) || typeof slotVal === "object" && "type" in slotVal) {
47181
47204
  nodeSlotOverrides[slotKey] = renderPatternChildren(
@@ -47229,7 +47252,7 @@ function SlotContentRenderer({
47229
47252
  const resolvedItems = Array.isArray(entityVal) && entityVal[0] !== "fn" ? entityVal : null;
47230
47253
  if (resolvedItems && resolvedItems.length > 0 && !finalProps.fields && !finalProps.columns) {
47231
47254
  const sample = resolvedItems[0];
47232
- if (sample && typeof sample === "object" && !Array.isArray(sample) && !React76__default.isValidElement(sample) && !(sample instanceof Date)) {
47255
+ if (sample && typeof sample === "object" && !Array.isArray(sample) && !React77__default.isValidElement(sample) && !(sample instanceof Date)) {
47233
47256
  const keys = Object.keys(sample).filter((k) => k !== "id" && k !== "_id");
47234
47257
  finalProps.fields = keys.map((k, i) => ({ name: k, variant: i === 0 ? "h4" : "body" }));
47235
47258
  }