@almadar/ui 2.56.0 → 2.58.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,7 +1,7 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
- import * as React90 from 'react';
4
- import React90__default, { useCallback, createContext, useState, useRef, useEffect, useMemo, useLayoutEffect, lazy, useContext, useId, Suspense, useSyncExternalStore } from 'react';
3
+ import * as React91 from 'react';
4
+ import React91__default, { useCallback, createContext, useState, useRef, useEffect, useMemo, useLayoutEffect, lazy, useContext, useId, Suspense, useSyncExternalStore } from 'react';
5
5
  import { EventBusContext, useEntityRef, SelectionContext } from '@almadar/ui/providers';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import * as LucideIcons from 'lucide-react';
@@ -547,7 +547,7 @@ function resolveIconProp(value, sizeClass) {
547
547
  const IconComp = value;
548
548
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
549
549
  }
550
- if (React90__default.isValidElement(value)) {
550
+ if (React91__default.isValidElement(value)) {
551
551
  return value;
552
552
  }
553
553
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -556,7 +556,7 @@ function resolveIconProp(value, sizeClass) {
556
556
  }
557
557
  return value;
558
558
  }
559
- var Button = React90__default.forwardRef(
559
+ var Button = React91__default.forwardRef(
560
560
  ({
561
561
  className,
562
562
  variant = "primary",
@@ -618,7 +618,7 @@ Button.displayName = "Button";
618
618
 
619
619
  // components/atoms/Input.tsx
620
620
  init_cn();
621
- var Input = React90__default.forwardRef(
621
+ var Input = React91__default.forwardRef(
622
622
  ({
623
623
  className,
624
624
  inputType,
@@ -733,7 +733,7 @@ Input.displayName = "Input";
733
733
 
734
734
  // components/atoms/Label.tsx
735
735
  init_cn();
736
- var Label = React90__default.forwardRef(
736
+ var Label = React91__default.forwardRef(
737
737
  ({ className, required, children, ...props }, ref) => {
738
738
  return /* @__PURE__ */ jsxs(
739
739
  "label",
@@ -756,7 +756,7 @@ Label.displayName = "Label";
756
756
 
757
757
  // components/atoms/Textarea.tsx
758
758
  init_cn();
759
- var Textarea = React90__default.forwardRef(
759
+ var Textarea = React91__default.forwardRef(
760
760
  ({ className, error, ...props }, ref) => {
761
761
  return /* @__PURE__ */ jsx(
762
762
  "textarea",
@@ -782,7 +782,7 @@ Textarea.displayName = "Textarea";
782
782
 
783
783
  // components/atoms/Select.tsx
784
784
  init_cn();
785
- var Select = React90__default.forwardRef(
785
+ var Select = React91__default.forwardRef(
786
786
  ({ className, options, placeholder, error, ...props }, ref) => {
787
787
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
788
788
  /* @__PURE__ */ jsxs(
@@ -821,7 +821,7 @@ Select.displayName = "Select";
821
821
 
822
822
  // components/atoms/Checkbox.tsx
823
823
  init_cn();
824
- var Checkbox = React90__default.forwardRef(
824
+ var Checkbox = React91__default.forwardRef(
825
825
  ({ className, label, id, ...props }, ref) => {
826
826
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
827
827
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -900,7 +900,7 @@ var shadowStyles = {
900
900
  md: "shadow",
901
901
  lg: "shadow-lg"
902
902
  };
903
- var Card = React90__default.forwardRef(
903
+ var Card = React91__default.forwardRef(
904
904
  ({
905
905
  className,
906
906
  variant = "bordered",
@@ -936,9 +936,9 @@ var Card = React90__default.forwardRef(
936
936
  }
937
937
  );
938
938
  Card.displayName = "Card";
939
- var CardHeader = React90__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
939
+ var CardHeader = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
940
940
  CardHeader.displayName = "CardHeader";
941
- var CardTitle = React90__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
941
+ var CardTitle = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
942
942
  "h3",
943
943
  {
944
944
  ref,
@@ -951,11 +951,11 @@ var CardTitle = React90__default.forwardRef(({ className, ...props }, ref) => /*
951
951
  }
952
952
  ));
953
953
  CardTitle.displayName = "CardTitle";
954
- var CardContent = React90__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
954
+ var CardContent = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
955
955
  CardContent.displayName = "CardContent";
956
956
  var CardBody = CardContent;
957
957
  CardBody.displayName = "CardBody";
958
- var CardFooter = React90__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
958
+ var CardFooter = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
959
959
  "div",
960
960
  {
961
961
  ref,
@@ -1004,7 +1004,7 @@ var sizeStyles2 = {
1004
1004
  md: "px-2.5 py-1 text-sm",
1005
1005
  lg: "px-3 py-1.5 text-base"
1006
1006
  };
1007
- var Badge = React90__default.forwardRef(
1007
+ var Badge = React91__default.forwardRef(
1008
1008
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
1009
1009
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
1010
1010
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -1040,7 +1040,7 @@ var sizeStyles3 = {
1040
1040
  md: "h-6 w-6",
1041
1041
  lg: "h-8 w-8"
1042
1042
  };
1043
- var Spinner = React90__default.forwardRef(
1043
+ var Spinner = React91__default.forwardRef(
1044
1044
  ({ className, size = "md", ...props }, ref) => {
1045
1045
  return /* @__PURE__ */ jsx(
1046
1046
  "div",
@@ -1313,7 +1313,7 @@ var positionStyles = {
1313
1313
  fixed: "fixed",
1314
1314
  sticky: "sticky"
1315
1315
  };
1316
- var Box = React90__default.forwardRef(
1316
+ var Box = React91__default.forwardRef(
1317
1317
  ({
1318
1318
  padding,
1319
1319
  paddingX,
@@ -1674,7 +1674,7 @@ ProgressBar.displayName = "ProgressBar";
1674
1674
 
1675
1675
  // components/atoms/Radio.tsx
1676
1676
  init_cn();
1677
- var Radio = React90__default.forwardRef(
1677
+ var Radio = React91__default.forwardRef(
1678
1678
  ({
1679
1679
  label,
1680
1680
  helperText,
@@ -1781,7 +1781,7 @@ Radio.displayName = "Radio";
1781
1781
 
1782
1782
  // components/atoms/Switch.tsx
1783
1783
  init_cn();
1784
- var Switch = React90.forwardRef(
1784
+ var Switch = React91.forwardRef(
1785
1785
  ({
1786
1786
  checked,
1787
1787
  defaultChecked = false,
@@ -1792,10 +1792,10 @@ var Switch = React90.forwardRef(
1792
1792
  name,
1793
1793
  className
1794
1794
  }, ref) => {
1795
- const [isChecked, setIsChecked] = React90.useState(
1795
+ const [isChecked, setIsChecked] = React91.useState(
1796
1796
  checked !== void 0 ? checked : defaultChecked
1797
1797
  );
1798
- React90.useEffect(() => {
1798
+ React91.useEffect(() => {
1799
1799
  if (checked !== void 0) {
1800
1800
  setIsChecked(checked);
1801
1801
  }
@@ -2469,8 +2469,8 @@ var LawReferenceTooltip = ({
2469
2469
  position = "top",
2470
2470
  className
2471
2471
  }) => {
2472
- const [isVisible, setIsVisible] = React90__default.useState(false);
2473
- const timeoutRef = React90__default.useRef(null);
2472
+ const [isVisible, setIsVisible] = React91__default.useState(false);
2473
+ const timeoutRef = React91__default.useRef(null);
2474
2474
  const handleMouseEnter = () => {
2475
2475
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
2476
2476
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -2479,7 +2479,7 @@ var LawReferenceTooltip = ({
2479
2479
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
2480
2480
  setIsVisible(false);
2481
2481
  };
2482
- React90__default.useEffect(() => {
2482
+ React91__default.useEffect(() => {
2483
2483
  return () => {
2484
2484
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
2485
2485
  };
@@ -2677,7 +2677,7 @@ var sizeStyles5 = {
2677
2677
  md: "w-2.5 h-2.5",
2678
2678
  lg: "w-3 h-3"
2679
2679
  };
2680
- var StatusDot = React90__default.forwardRef(
2680
+ var StatusDot = React91__default.forwardRef(
2681
2681
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
2682
2682
  return /* @__PURE__ */ jsx(
2683
2683
  "span",
@@ -2727,7 +2727,7 @@ var iconMap = {
2727
2727
  down: TrendingDown,
2728
2728
  flat: ArrowRight
2729
2729
  };
2730
- var TrendIndicator = React90__default.forwardRef(
2730
+ var TrendIndicator = React91__default.forwardRef(
2731
2731
  ({
2732
2732
  className,
2733
2733
  value,
@@ -2790,7 +2790,7 @@ var thumbSizes = {
2790
2790
  md: "w-4 h-4",
2791
2791
  lg: "w-5 h-5"
2792
2792
  };
2793
- var RangeSlider = React90__default.forwardRef(
2793
+ var RangeSlider = React91__default.forwardRef(
2794
2794
  ({
2795
2795
  className,
2796
2796
  min = 0,
@@ -3350,7 +3350,7 @@ var paddingClasses = {
3350
3350
  md: "py-16",
3351
3351
  lg: "py-24"
3352
3352
  };
3353
- var ContentSection = React90__default.forwardRef(
3353
+ var ContentSection = React91__default.forwardRef(
3354
3354
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
3355
3355
  return /* @__PURE__ */ jsx(
3356
3356
  Box,
@@ -3874,7 +3874,7 @@ var animatedStyles = {
3874
3874
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
3875
3875
  "none": {}
3876
3876
  };
3877
- var AnimatedReveal = React90__default.forwardRef(
3877
+ var AnimatedReveal = React91__default.forwardRef(
3878
3878
  ({
3879
3879
  trigger = "scroll",
3880
3880
  animation = "fade-up",
@@ -4030,7 +4030,7 @@ function applyMorphAnimation(container, animate, duration, delay, easing) {
4030
4030
  el.style.opacity = animate ? "1" : "0";
4031
4031
  });
4032
4032
  }
4033
- var AnimatedGraphic = React90__default.forwardRef(
4033
+ var AnimatedGraphic = React91__default.forwardRef(
4034
4034
  ({
4035
4035
  src,
4036
4036
  svgContent,
@@ -4053,7 +4053,7 @@ var AnimatedGraphic = React90__default.forwardRef(
4053
4053
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
4054
4054
  const resolvedSvg = svgContent ?? fetchedSvg;
4055
4055
  const prevAnimateRef = useRef(animate);
4056
- const setRef = React90__default.useCallback(
4056
+ const setRef = React91__default.useCallback(
4057
4057
  (node) => {
4058
4058
  containerRef.current = node;
4059
4059
  if (typeof ref === "function") ref(node);
@@ -4230,9 +4230,9 @@ function ScoreDisplay({
4230
4230
  ...rest
4231
4231
  }) {
4232
4232
  const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
4233
- const [displayValue, setDisplayValue] = React90.useState(resolvedValue);
4234
- const [isAnimating, setIsAnimating] = React90.useState(false);
4235
- React90.useEffect(() => {
4233
+ const [displayValue, setDisplayValue] = React91.useState(resolvedValue);
4234
+ const [isAnimating, setIsAnimating] = React91.useState(false);
4235
+ React91.useEffect(() => {
4236
4236
  if (!animated || displayValue === resolvedValue) {
4237
4237
  setDisplayValue(resolvedValue);
4238
4238
  return;
@@ -4309,9 +4309,9 @@ function ControlButton({
4309
4309
  className
4310
4310
  }) {
4311
4311
  const eventBus = useEventBus();
4312
- const [isPressed, setIsPressed] = React90.useState(false);
4312
+ const [isPressed, setIsPressed] = React91.useState(false);
4313
4313
  const actualPressed = pressed ?? isPressed;
4314
- const handlePointerDown = React90.useCallback(
4314
+ const handlePointerDown = React91.useCallback(
4315
4315
  (e) => {
4316
4316
  e.preventDefault();
4317
4317
  if (disabled) return;
@@ -4321,7 +4321,7 @@ function ControlButton({
4321
4321
  },
4322
4322
  [disabled, pressEvent, eventBus, onPress]
4323
4323
  );
4324
- const handlePointerUp = React90.useCallback(
4324
+ const handlePointerUp = React91.useCallback(
4325
4325
  (e) => {
4326
4326
  e.preventDefault();
4327
4327
  if (disabled) return;
@@ -4331,7 +4331,7 @@ function ControlButton({
4331
4331
  },
4332
4332
  [disabled, releaseEvent, eventBus, onRelease]
4333
4333
  );
4334
- const handlePointerLeave = React90.useCallback(
4334
+ const handlePointerLeave = React91.useCallback(
4335
4335
  (e) => {
4336
4336
  if (isPressed) {
4337
4337
  setIsPressed(false);
@@ -5202,9 +5202,9 @@ function MiniMap({
5202
5202
  viewportRect,
5203
5203
  className
5204
5204
  }) {
5205
- const canvasRef = React90.useRef(null);
5206
- const frameRef = React90.useRef(0);
5207
- React90.useEffect(() => {
5205
+ const canvasRef = React91.useRef(null);
5206
+ const frameRef = React91.useRef(0);
5207
+ React91.useEffect(() => {
5208
5208
  const canvas = canvasRef.current;
5209
5209
  if (!canvas) return;
5210
5210
  const ctx = canvas.getContext("2d");
@@ -5453,7 +5453,7 @@ var ErrorState = ({
5453
5453
  );
5454
5454
  };
5455
5455
  ErrorState.displayName = "ErrorState";
5456
- var ErrorBoundary = class extends React90__default.Component {
5456
+ var ErrorBoundary = class extends React91__default.Component {
5457
5457
  constructor(props) {
5458
5458
  super(props);
5459
5459
  __publicField(this, "reset", () => {
@@ -5494,6 +5494,127 @@ var ErrorBoundary = class extends React90__default.Component {
5494
5494
  }
5495
5495
  };
5496
5496
  __publicField(ErrorBoundary, "displayName", "ErrorBoundary");
5497
+ init_Typography();
5498
+ function fileIcon(name) {
5499
+ const ext = name.split(".").pop()?.toLowerCase() ?? "";
5500
+ switch (ext) {
5501
+ case "ts":
5502
+ case "tsx":
5503
+ return "file-code";
5504
+ case "js":
5505
+ case "jsx":
5506
+ return "file-code";
5507
+ case "json":
5508
+ case "orb":
5509
+ return "file-json";
5510
+ case "css":
5511
+ case "scss":
5512
+ return "file-text";
5513
+ case "md":
5514
+ return "file-text";
5515
+ case "py":
5516
+ return "file-code";
5517
+ case "html":
5518
+ return "file-code";
5519
+ default:
5520
+ return "file";
5521
+ }
5522
+ }
5523
+ var TreeNodeItem = ({
5524
+ node,
5525
+ depth,
5526
+ indent,
5527
+ selectedPath,
5528
+ onFileSelect,
5529
+ defaultExpanded = false
5530
+ }) => {
5531
+ const [expanded, setExpanded] = useState(defaultExpanded || depth < 1);
5532
+ const isDir = node.type === "dir";
5533
+ const isSelected = node.path === selectedPath;
5534
+ const handleClick = useCallback(() => {
5535
+ if (isDir) {
5536
+ setExpanded((prev) => !prev);
5537
+ } else {
5538
+ onFileSelect?.(node.path);
5539
+ }
5540
+ }, [isDir, node.path, onFileSelect]);
5541
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
5542
+ /* @__PURE__ */ jsxs(
5543
+ Box,
5544
+ {
5545
+ className: `flex items-center gap-1.5 py-0.5 px-2 cursor-pointer rounded-sm transition-colors ${isSelected ? "bg-[var(--color-primary)] bg-opacity-15 text-[var(--color-primary)]" : "hover:bg-[var(--color-muted)] hover:bg-opacity-30"}`,
5546
+ style: { paddingLeft: depth * indent + 8 },
5547
+ onClick: handleClick,
5548
+ role: "treeitem",
5549
+ "aria-selected": isSelected,
5550
+ "aria-expanded": isDir ? expanded : void 0,
5551
+ children: [
5552
+ isDir ? /* @__PURE__ */ jsx(
5553
+ Icon,
5554
+ {
5555
+ name: expanded ? "chevron-down" : "chevron-right",
5556
+ size: "xs",
5557
+ className: "text-[var(--color-muted-foreground)] flex-shrink-0"
5558
+ }
5559
+ ) : /* @__PURE__ */ jsx(Box, { style: { width: 12, flexShrink: 0 } }),
5560
+ /* @__PURE__ */ jsx(
5561
+ Icon,
5562
+ {
5563
+ name: isDir ? expanded ? "folder-open" : "folder" : fileIcon(node.name),
5564
+ size: "xs",
5565
+ className: isDir ? "text-[var(--color-warning)]" : "text-[var(--color-muted-foreground)]"
5566
+ }
5567
+ ),
5568
+ /* @__PURE__ */ jsx(
5569
+ Typography,
5570
+ {
5571
+ variant: "caption",
5572
+ className: `truncate font-mono text-[11px] ${isSelected ? "font-semibold" : ""}`,
5573
+ children: node.name
5574
+ }
5575
+ ),
5576
+ !isDir && node.size !== void 0 && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-[var(--color-muted-foreground)] text-[9px] ml-auto flex-shrink-0", children: node.size < 1024 ? `${node.size}B` : `${Math.round(node.size / 1024)}KB` })
5577
+ ]
5578
+ }
5579
+ ),
5580
+ isDir && expanded && node.children && /* @__PURE__ */ jsx(Box, { role: "group", children: node.children.map((child) => /* @__PURE__ */ jsx(
5581
+ TreeNodeItem,
5582
+ {
5583
+ node: child,
5584
+ depth: depth + 1,
5585
+ indent,
5586
+ selectedPath,
5587
+ onFileSelect,
5588
+ defaultExpanded: depth < 0
5589
+ },
5590
+ child.path
5591
+ )) })
5592
+ ] });
5593
+ };
5594
+ var FileTree = ({
5595
+ tree,
5596
+ selectedPath,
5597
+ onFileSelect,
5598
+ className,
5599
+ indent = 16
5600
+ }) => {
5601
+ if (tree.length === 0) {
5602
+ return /* @__PURE__ */ jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: "No files" }) });
5603
+ }
5604
+ return /* @__PURE__ */ jsx(Box, { className: `py-1 overflow-y-auto ${className ?? ""}`, role: "tree", children: tree.map((node) => /* @__PURE__ */ jsx(
5605
+ TreeNodeItem,
5606
+ {
5607
+ node,
5608
+ depth: 0,
5609
+ indent,
5610
+ selectedPath,
5611
+ onFileSelect,
5612
+ defaultExpanded: true
5613
+ },
5614
+ node.path
5615
+ )) });
5616
+ };
5617
+ FileTree.displayName = "FileTree";
5497
5618
 
5498
5619
  // components/molecules/FormField.tsx
5499
5620
  init_cn();
@@ -7246,8 +7367,8 @@ var Menu = ({
7246
7367
  "bottom-start": "top-full left-0 mt-2",
7247
7368
  "bottom-end": "top-full right-0 mt-2"
7248
7369
  };
7249
- const triggerChild = React90__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
7250
- const triggerElement = React90__default.cloneElement(
7370
+ const triggerChild = React91__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
7371
+ const triggerElement = React91__default.cloneElement(
7251
7372
  triggerChild,
7252
7373
  {
7253
7374
  ref: triggerRef,
@@ -7780,8 +7901,8 @@ var Popover = ({
7780
7901
  onMouseEnter: handleOpen,
7781
7902
  onMouseLeave: handleClose
7782
7903
  };
7783
- const childElement = React90__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
7784
- const triggerElement = React90__default.cloneElement(
7904
+ const childElement = React91__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
7905
+ const triggerElement = React91__default.cloneElement(
7785
7906
  childElement,
7786
7907
  {
7787
7908
  ref: triggerRef,
@@ -8558,8 +8679,8 @@ var Tooltip = ({
8558
8679
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
8559
8680
  };
8560
8681
  }, []);
8561
- const triggerElement = React90__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
8562
- const trigger = React90__default.cloneElement(triggerElement, {
8682
+ const triggerElement = React91__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
8683
+ const trigger = React91__default.cloneElement(triggerElement, {
8563
8684
  ref: triggerRef,
8564
8685
  onMouseEnter: handleMouseEnter,
8565
8686
  onMouseLeave: handleMouseLeave,
@@ -8816,7 +8937,7 @@ var WizardProgress = ({
8816
8937
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((step, index) => {
8817
8938
  const isActive = index === currentStep;
8818
8939
  const isCompleted = index < currentStep;
8819
- return /* @__PURE__ */ jsxs(React90__default.Fragment, { children: [
8940
+ return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
8820
8941
  /* @__PURE__ */ jsx(
8821
8942
  "button",
8822
8943
  {
@@ -8950,7 +9071,7 @@ var WizardNavigation = ({
8950
9071
  };
8951
9072
  WizardNavigation.displayName = "WizardNavigation";
8952
9073
  init_cn();
8953
- var MarkdownContent = React90__default.memo(
9074
+ var MarkdownContent = React91__default.memo(
8954
9075
  ({ content, direction, className }) => {
8955
9076
  const { t: _t } = useTranslate();
8956
9077
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -9156,7 +9277,7 @@ function computeFoldRegions(code) {
9156
9277
  }
9157
9278
  var LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
9158
9279
  var HIDDEN_LINE_NUMBERS = { display: "none" };
9159
- var CodeBlock = React90__default.memo(
9280
+ var CodeBlock = React91__default.memo(
9160
9281
  ({
9161
9282
  code: rawCode,
9162
9283
  language = "text",
@@ -9357,7 +9478,7 @@ var CodeBlock = React90__default.memo(
9357
9478
  }
9358
9479
  };
9359
9480
  const hasHeader = showLanguageBadge || showCopyButton;
9360
- return /* @__PURE__ */ jsxs(Box, { className: `relative group ${className || ""}`, children: [
9481
+ return /* @__PURE__ */ jsxs(Box, { className: `relative group ${className || ""}`, style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
9361
9482
  hasHeader && /* @__PURE__ */ jsxs(
9362
9483
  HStack,
9363
9484
  {
@@ -9410,8 +9531,8 @@ var CodeBlock = React90__default.memo(
9410
9531
  {
9411
9532
  style: {
9412
9533
  position: "relative",
9413
- height: "100%",
9414
- minHeight: "160px",
9534
+ flex: 1,
9535
+ minHeight: 0,
9415
9536
  maxHeight,
9416
9537
  backgroundColor: "#1e1e1e",
9417
9538
  borderRadius: hasHeader ? "0 0 0.5rem 0.5rem" : "0.5rem",
@@ -9507,6 +9628,8 @@ var CodeBlock = React90__default.memo(
9507
9628
  {
9508
9629
  ref: scrollRef,
9509
9630
  style: {
9631
+ flex: 1,
9632
+ minHeight: 0,
9510
9633
  overflowX: "auto",
9511
9634
  overflowY: "auto",
9512
9635
  WebkitOverflowScrolling: "touch",
@@ -10578,8 +10701,8 @@ function DPad({
10578
10701
  }) {
10579
10702
  const eventBus = useEventBus();
10580
10703
  const sizes = sizeMap15[size];
10581
- const [activeDirections, setActiveDirections] = React90.useState(/* @__PURE__ */ new Set());
10582
- const handlePress = React90.useCallback(
10704
+ const [activeDirections, setActiveDirections] = React91.useState(/* @__PURE__ */ new Set());
10705
+ const handlePress = React91.useCallback(
10583
10706
  (direction) => {
10584
10707
  setActiveDirections((prev) => new Set(prev).add(direction));
10585
10708
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -10587,7 +10710,7 @@ function DPad({
10587
10710
  },
10588
10711
  [directionEvent, eventBus, onDirection]
10589
10712
  );
10590
- const handleRelease = React90.useCallback(
10713
+ const handleRelease = React91.useCallback(
10591
10714
  (direction) => {
10592
10715
  setActiveDirections((prev) => {
10593
10716
  const next = new Set(prev);
@@ -10649,8 +10772,8 @@ function ActionButtons({
10649
10772
  disabled
10650
10773
  }) {
10651
10774
  const eventBus = useEventBus();
10652
- const [activeButtons, setActiveButtons] = React90.useState(/* @__PURE__ */ new Set());
10653
- const handlePress = React90.useCallback(
10775
+ const [activeButtons, setActiveButtons] = React91.useState(/* @__PURE__ */ new Set());
10776
+ const handlePress = React91.useCallback(
10654
10777
  (id) => {
10655
10778
  setActiveButtons((prev) => new Set(prev).add(id));
10656
10779
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -10658,7 +10781,7 @@ function ActionButtons({
10658
10781
  },
10659
10782
  [actionEvent, eventBus, onAction]
10660
10783
  );
10661
- const handleRelease = React90.useCallback(
10784
+ const handleRelease = React91.useCallback(
10662
10785
  (id) => {
10663
10786
  setActiveButtons((prev) => {
10664
10787
  const next = new Set(prev);
@@ -10850,7 +10973,7 @@ function InventoryGrid({
10850
10973
  const eventBus = useEventBus();
10851
10974
  const slotCount = totalSlots ?? items.length;
10852
10975
  const emptySlotCount = Math.max(0, slotCount - items.length);
10853
- const handleSelect = React90.useCallback(
10976
+ const handleSelect = React91.useCallback(
10854
10977
  (id) => {
10855
10978
  onSelect?.(id);
10856
10979
  if (selectEvent) {
@@ -10982,7 +11105,7 @@ function CraftingRecipe({
10982
11105
  className
10983
11106
  }) {
10984
11107
  const eventBus = useEventBus();
10985
- const handleCraft = React90.useCallback(() => {
11108
+ const handleCraft = React91.useCallback(() => {
10986
11109
  onCraft?.();
10987
11110
  if (craftEvent) {
10988
11111
  eventBus.emit(craftEvent, { output: output.label });
@@ -10999,7 +11122,7 @@ function CraftingRecipe({
10999
11122
  children: [
11000
11123
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
11001
11124
  const hasSufficient = ingredient.available >= ingredient.required;
11002
- return /* @__PURE__ */ jsxs(React90.Fragment, { children: [
11125
+ return /* @__PURE__ */ jsxs(React91.Fragment, { children: [
11003
11126
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
11004
11127
  ItemSlot,
11005
11128
  {
@@ -11108,15 +11231,15 @@ function GameCanvas2D({
11108
11231
  fps = 60,
11109
11232
  className
11110
11233
  }) {
11111
- const canvasRef = React90.useRef(null);
11112
- const rafRef = React90.useRef(0);
11113
- const frameRef = React90.useRef(0);
11114
- const lastTimeRef = React90.useRef(0);
11115
- const onDrawRef = React90.useRef(onDraw);
11234
+ const canvasRef = React91.useRef(null);
11235
+ const rafRef = React91.useRef(0);
11236
+ const frameRef = React91.useRef(0);
11237
+ const lastTimeRef = React91.useRef(0);
11238
+ const onDrawRef = React91.useRef(onDraw);
11116
11239
  onDrawRef.current = onDraw;
11117
- const onTickRef = React90.useRef(onTick);
11240
+ const onTickRef = React91.useRef(onTick);
11118
11241
  onTickRef.current = onTick;
11119
- React90.useEffect(() => {
11242
+ React91.useEffect(() => {
11120
11243
  const canvas = canvasRef.current;
11121
11244
  if (!canvas) return;
11122
11245
  const ctx = canvas.getContext("2d");
@@ -11383,7 +11506,7 @@ function TurnPanel({
11383
11506
  className
11384
11507
  }) {
11385
11508
  const eventBus = useEventBus();
11386
- const handleAction = React90.useCallback(
11509
+ const handleAction = React91.useCallback(
11387
11510
  (event) => {
11388
11511
  if (event) {
11389
11512
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -11517,7 +11640,7 @@ function UnitCommandBar({
11517
11640
  className
11518
11641
  }) {
11519
11642
  const eventBus = useEventBus();
11520
- const handleCommand = React90.useCallback(
11643
+ const handleCommand = React91.useCallback(
11521
11644
  (event) => {
11522
11645
  if (event) {
11523
11646
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -12072,7 +12195,7 @@ function GameMenu({
12072
12195
  } catch {
12073
12196
  }
12074
12197
  const eventBus = eventBusProp || eventBusFromHook;
12075
- const handleOptionClick = React90.useCallback(
12198
+ const handleOptionClick = React91.useCallback(
12076
12199
  (option) => {
12077
12200
  if (option.event && eventBus) {
12078
12201
  eventBus.emit(`UI:${option.event}`, { option });
@@ -12199,7 +12322,7 @@ function GameOverScreen({
12199
12322
  } catch {
12200
12323
  }
12201
12324
  const eventBus = eventBusProp || eventBusFromHook;
12202
- const handleActionClick = React90.useCallback(
12325
+ const handleActionClick = React91.useCallback(
12203
12326
  (action) => {
12204
12327
  if (action.event && eventBus) {
12205
12328
  eventBus.emit(`UI:${action.event}`, { action });
@@ -13858,7 +13981,7 @@ var MapViewImpl = lazy(async () => {
13858
13981
  shadowSize: [41, 41]
13859
13982
  });
13860
13983
  L.Marker.prototype.options.icon = defaultIcon;
13861
- const { useEffect: useEffect66, useRef: useRef64, useCallback: useCallback113, useState: useState98 } = React90__default;
13984
+ const { useEffect: useEffect66, useRef: useRef64, useCallback: useCallback114, useState: useState99 } = React91__default;
13862
13985
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
13863
13986
  const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
13864
13987
  function MapUpdater({ centerLat, centerLng, zoom }) {
@@ -13902,8 +14025,8 @@ var MapViewImpl = lazy(async () => {
13902
14025
  showAttribution = true
13903
14026
  }) {
13904
14027
  const eventBus = useEventBus2();
13905
- const [clickedPosition, setClickedPosition] = useState98(null);
13906
- const handleMapClick = useCallback113((lat, lng) => {
14028
+ const [clickedPosition, setClickedPosition] = useState99(null);
14029
+ const handleMapClick = useCallback114((lat, lng) => {
13907
14030
  if (showClickedPin) {
13908
14031
  setClickedPosition({ lat, lng });
13909
14032
  }
@@ -13912,7 +14035,7 @@ var MapViewImpl = lazy(async () => {
13912
14035
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
13913
14036
  }
13914
14037
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
13915
- const handleMarkerClick = useCallback113((marker) => {
14038
+ const handleMarkerClick = useCallback114((marker) => {
13916
14039
  onMarkerClick?.(marker);
13917
14040
  if (markerClickEvent) {
13918
14041
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -15088,7 +15211,7 @@ var DataList = ({
15088
15211
  }) => {
15089
15212
  const eventBus = useEventBus();
15090
15213
  const { t } = useTranslate();
15091
- const [visibleCount, setVisibleCount] = React90__default.useState(pageSize || Infinity);
15214
+ const [visibleCount, setVisibleCount] = React91__default.useState(pageSize || Infinity);
15092
15215
  const fields = fieldsProp ?? columnsProp ?? [];
15093
15216
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
15094
15217
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
@@ -15125,7 +15248,7 @@ var DataList = ({
15125
15248
  const items2 = data.map((item) => item);
15126
15249
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
15127
15250
  const contentField = titleField?.name ?? fields[0]?.name ?? "";
15128
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React90__default.Fragment, { children: [
15251
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
15129
15252
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
15130
15253
  group.items.map((itemData, index) => {
15131
15254
  const id = itemData.id || `${gi}-${index}`;
@@ -15328,7 +15451,7 @@ var DataList = ({
15328
15451
  className
15329
15452
  ),
15330
15453
  children: [
15331
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React90__default.Fragment, { children: [
15454
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
15332
15455
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
15333
15456
  group.items.map(
15334
15457
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -17138,7 +17261,7 @@ var StepFlow = ({
17138
17261
  className
17139
17262
  }) => {
17140
17263
  if (orientation === "vertical") {
17141
- return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React90__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
17264
+ return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React91__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
17142
17265
  /* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
17143
17266
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
17144
17267
  showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
@@ -17149,7 +17272,7 @@ var StepFlow = ({
17149
17272
  ] })
17150
17273
  ] }) }, index)) });
17151
17274
  }
17152
- 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(React90__default.Fragment, { children: [
17275
+ 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(React91__default.Fragment, { children: [
17153
17276
  /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
17154
17277
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
17155
17278
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
@@ -18349,7 +18472,7 @@ var StatCard = ({
18349
18472
  const labelToUse = propLabel ?? propTitle;
18350
18473
  const eventBus = useEventBus();
18351
18474
  const { t } = useTranslate();
18352
- const handleActionClick = React90__default.useCallback(() => {
18475
+ const handleActionClick = React91__default.useCallback(() => {
18353
18476
  if (action?.event) {
18354
18477
  eventBus.emit(`UI:${action.event}`, {});
18355
18478
  }
@@ -18360,7 +18483,7 @@ var StatCard = ({
18360
18483
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
18361
18484
  const isLoading = externalLoading ?? false;
18362
18485
  const error = externalError;
18363
- const computeMetricValue = React90__default.useCallback(
18486
+ const computeMetricValue = React91__default.useCallback(
18364
18487
  (metric, items) => {
18365
18488
  if (metric.value !== void 0) {
18366
18489
  return metric.value;
@@ -18399,7 +18522,7 @@ var StatCard = ({
18399
18522
  },
18400
18523
  []
18401
18524
  );
18402
- const schemaStats = React90__default.useMemo(() => {
18525
+ const schemaStats = React91__default.useMemo(() => {
18403
18526
  if (!metrics || metrics.length === 0) return null;
18404
18527
  return metrics.map((metric) => ({
18405
18528
  label: metric.label,
@@ -18407,7 +18530,7 @@ var StatCard = ({
18407
18530
  format: metric.format
18408
18531
  }));
18409
18532
  }, [metrics, data, computeMetricValue]);
18410
- const calculatedTrend = React90__default.useMemo(() => {
18533
+ const calculatedTrend = React91__default.useMemo(() => {
18411
18534
  if (manualTrend !== void 0) return manualTrend;
18412
18535
  if (previousValue === void 0 || currentValue === void 0)
18413
18536
  return void 0;
@@ -18576,7 +18699,7 @@ var PageHeader = ({
18576
18699
  info: "bg-info/10 text-info"
18577
18700
  };
18578
18701
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
18579
- 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(React90__default.Fragment, { children: [
18702
+ 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(React91__default.Fragment, { children: [
18580
18703
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
18581
18704
  crumb.href ? /* @__PURE__ */ jsx(
18582
18705
  "a",
@@ -19109,7 +19232,7 @@ var FormSection = ({
19109
19232
  columns = 1,
19110
19233
  className
19111
19234
  }) => {
19112
- const [collapsed, setCollapsed] = React90__default.useState(defaultCollapsed);
19235
+ const [collapsed, setCollapsed] = React91__default.useState(defaultCollapsed);
19113
19236
  const { t } = useTranslate();
19114
19237
  const eventBus = useEventBus();
19115
19238
  const gridClass = {
@@ -19117,7 +19240,7 @@ var FormSection = ({
19117
19240
  2: "grid-cols-1 md:grid-cols-2",
19118
19241
  3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
19119
19242
  }[columns];
19120
- React90__default.useCallback(() => {
19243
+ React91__default.useCallback(() => {
19121
19244
  if (collapsible) {
19122
19245
  setCollapsed((prev) => !prev);
19123
19246
  eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
@@ -19334,7 +19457,7 @@ var Form = ({
19334
19457
  const normalizedInitialData = initialData ?? {};
19335
19458
  const resolvedEntity = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
19336
19459
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
19337
- const entityDerivedFields = React90__default.useMemo(() => {
19460
+ const entityDerivedFields = React91__default.useMemo(() => {
19338
19461
  if (fields && fields.length > 0) return void 0;
19339
19462
  if (!resolvedEntity) return void 0;
19340
19463
  return resolvedEntity.fields.map(
@@ -19353,14 +19476,14 @@ var Form = ({
19353
19476
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
19354
19477
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
19355
19478
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
19356
- const [formData, setFormData] = React90__default.useState(
19479
+ const [formData, setFormData] = React91__default.useState(
19357
19480
  normalizedInitialData
19358
19481
  );
19359
- const [collapsedSections, setCollapsedSections] = React90__default.useState(
19482
+ const [collapsedSections, setCollapsedSections] = React91__default.useState(
19360
19483
  /* @__PURE__ */ new Set()
19361
19484
  );
19362
19485
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
19363
- const evalContext = React90__default.useMemo(
19486
+ const evalContext = React91__default.useMemo(
19364
19487
  () => ({
19365
19488
  formValues: formData,
19366
19489
  globalVariables: externalContext?.globalVariables ?? {},
@@ -19369,13 +19492,13 @@ var Form = ({
19369
19492
  }),
19370
19493
  [formData, externalContext]
19371
19494
  );
19372
- React90__default.useEffect(() => {
19495
+ React91__default.useEffect(() => {
19373
19496
  const data = initialData;
19374
19497
  if (data && Object.keys(data).length > 0) {
19375
19498
  setFormData(data);
19376
19499
  }
19377
19500
  }, [initialData]);
19378
- const processCalculations = React90__default.useCallback(
19501
+ const processCalculations = React91__default.useCallback(
19379
19502
  (changedFieldId, newFormData) => {
19380
19503
  if (!hiddenCalculations.length) return;
19381
19504
  const context = {
@@ -19400,7 +19523,7 @@ var Form = ({
19400
19523
  },
19401
19524
  [hiddenCalculations, externalContext, eventBus]
19402
19525
  );
19403
- const checkViolations = React90__default.useCallback(
19526
+ const checkViolations = React91__default.useCallback(
19404
19527
  (changedFieldId, newFormData) => {
19405
19528
  if (!violationTriggers.length) return;
19406
19529
  const context = {
@@ -19437,7 +19560,7 @@ var Form = ({
19437
19560
  processCalculations(name, newFormData);
19438
19561
  checkViolations(name, newFormData);
19439
19562
  };
19440
- const isFieldVisible = React90__default.useCallback(
19563
+ const isFieldVisible = React91__default.useCallback(
19441
19564
  (fieldName) => {
19442
19565
  const condition = conditionalFields[fieldName];
19443
19566
  if (!condition) return true;
@@ -19445,7 +19568,7 @@ var Form = ({
19445
19568
  },
19446
19569
  [conditionalFields, evalContext]
19447
19570
  );
19448
- const isSectionVisible = React90__default.useCallback(
19571
+ const isSectionVisible = React91__default.useCallback(
19449
19572
  (section) => {
19450
19573
  if (!section.condition) return true;
19451
19574
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -19477,7 +19600,7 @@ var Form = ({
19477
19600
  eventBus.emit(`UI:${onCancel}`);
19478
19601
  }
19479
19602
  };
19480
- const renderField = React90__default.useCallback(
19603
+ const renderField = React91__default.useCallback(
19481
19604
  (field) => {
19482
19605
  const fieldName = field.name || field.field;
19483
19606
  if (!fieldName) return null;
@@ -19498,7 +19621,7 @@ var Form = ({
19498
19621
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
19499
19622
  );
19500
19623
  const effectiveFields = entityDerivedFields ?? fields;
19501
- const normalizedFields = React90__default.useMemo(() => {
19624
+ const normalizedFields = React91__default.useMemo(() => {
19502
19625
  if (!effectiveFields || effectiveFields.length === 0) return [];
19503
19626
  return effectiveFields.map((field) => {
19504
19627
  if (typeof field === "string") {
@@ -19520,7 +19643,7 @@ var Form = ({
19520
19643
  return field;
19521
19644
  });
19522
19645
  }, [effectiveFields, resolvedEntity]);
19523
- const schemaFields = React90__default.useMemo(() => {
19646
+ const schemaFields = React91__default.useMemo(() => {
19524
19647
  if (normalizedFields.length === 0) return null;
19525
19648
  if (isDebugEnabled()) {
19526
19649
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -19530,7 +19653,7 @@ var Form = ({
19530
19653
  }
19531
19654
  return normalizedFields.map(renderField).filter(Boolean);
19532
19655
  }, [normalizedFields, renderField, entityName, conditionalFields]);
19533
- const sectionElements = React90__default.useMemo(() => {
19656
+ const sectionElements = React91__default.useMemo(() => {
19534
19657
  if (!sections || sections.length === 0) return null;
19535
19658
  return sections.map((section) => {
19536
19659
  if (!isSectionVisible(section)) {
@@ -20675,7 +20798,7 @@ var List = ({
20675
20798
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
20676
20799
  return [];
20677
20800
  }, [entity]);
20678
- const getItemActions = React90__default.useCallback(
20801
+ const getItemActions = React91__default.useCallback(
20679
20802
  (item) => {
20680
20803
  if (!itemActions) return [];
20681
20804
  if (typeof itemActions === "function") {
@@ -21450,7 +21573,7 @@ var WizardContainer = ({
21450
21573
  const isCompleted = index < currentStep;
21451
21574
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
21452
21575
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
21453
- return /* @__PURE__ */ jsxs(React90__default.Fragment, { children: [
21576
+ return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
21454
21577
  /* @__PURE__ */ jsx(
21455
21578
  Button,
21456
21579
  {
@@ -22679,7 +22802,7 @@ var StateMachineView = ({
22679
22802
  style: { top: title ? 30 : 0 },
22680
22803
  children: [
22681
22804
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
22682
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React90__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
22805
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React91__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
22683
22806
  StateNode,
22684
22807
  {
22685
22808
  state,
@@ -27190,7 +27313,7 @@ function LinearView({
27190
27313
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
27191
27314
  const isDone = i < currentIdx;
27192
27315
  const isCurrent = i === currentIdx;
27193
- return /* @__PURE__ */ jsxs(React90__default.Fragment, { children: [
27316
+ return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
27194
27317
  i > 0 && /* @__PURE__ */ jsx(
27195
27318
  Typography,
27196
27319
  {
@@ -27857,7 +27980,7 @@ function SequenceBar({
27857
27980
  onSlotRemove(index);
27858
27981
  }, [onSlotRemove, playing]);
27859
27982
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
27860
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React90__default.Fragment, { children: [
27983
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
27861
27984
  i > 0 && /* @__PURE__ */ jsx(
27862
27985
  Typography,
27863
27986
  {
@@ -30382,7 +30505,7 @@ function InputPattern({
30382
30505
  className
30383
30506
  }) {
30384
30507
  const { emit } = useEventBus();
30385
- const [localValue, setLocalValue] = React90__default.useState(value);
30508
+ const [localValue, setLocalValue] = React91__default.useState(value);
30386
30509
  const handleChange = (e) => {
30387
30510
  setLocalValue(e.target.value);
30388
30511
  if (onChange) {
@@ -30419,7 +30542,7 @@ function TextareaPattern({
30419
30542
  className
30420
30543
  }) {
30421
30544
  const { emit } = useEventBus();
30422
- const [localValue, setLocalValue] = React90__default.useState(value);
30545
+ const [localValue, setLocalValue] = React91__default.useState(value);
30423
30546
  const handleChange = (e) => {
30424
30547
  setLocalValue(e.target.value);
30425
30548
  if (onChange) {
@@ -30450,7 +30573,7 @@ function SelectPattern({
30450
30573
  className
30451
30574
  }) {
30452
30575
  const { emit } = useEventBus();
30453
- const [localValue, setLocalValue] = React90__default.useState(value);
30576
+ const [localValue, setLocalValue] = React91__default.useState(value);
30454
30577
  const handleChange = (e) => {
30455
30578
  setLocalValue(e.target.value);
30456
30579
  if (onChange) {
@@ -30479,7 +30602,7 @@ function CheckboxPattern({
30479
30602
  className
30480
30603
  }) {
30481
30604
  const { emit } = useEventBus();
30482
- const [localChecked, setLocalChecked] = React90__default.useState(checked);
30605
+ const [localChecked, setLocalChecked] = React91__default.useState(checked);
30483
30606
  const handleChange = (e) => {
30484
30607
  setLocalChecked(e.target.checked);
30485
30608
  if (onChange) {
@@ -32391,7 +32514,7 @@ var DocumentViewer = ({
32391
32514
  DocumentViewer.displayName = "DocumentViewer";
32392
32515
  init_useEventBus();
32393
32516
  function extractTitle(children) {
32394
- if (!React90__default.isValidElement(children)) return void 0;
32517
+ if (!React91__default.isValidElement(children)) return void 0;
32395
32518
  const props = children.props;
32396
32519
  if (typeof props.title === "string") {
32397
32520
  return props.title;
@@ -33009,7 +33132,7 @@ var MediaGallery = ({
33009
33132
  [selectable, selectedItems, selectionEvent, eventBus]
33010
33133
  );
33011
33134
  const entityData = Array.isArray(entity) ? entity : [];
33012
- const items = React90__default.useMemo(() => {
33135
+ const items = React91__default.useMemo(() => {
33013
33136
  if (propItems) return propItems;
33014
33137
  if (entityData.length === 0) return [];
33015
33138
  return entityData.map((record, idx) => ({
@@ -33172,7 +33295,7 @@ var MediaGallery = ({
33172
33295
  MediaGallery.displayName = "MediaGallery";
33173
33296
  init_useEventBus();
33174
33297
  function extractTitle2(children) {
33175
- if (!React90__default.isValidElement(children)) return void 0;
33298
+ if (!React91__default.isValidElement(children)) return void 0;
33176
33299
  const props = children.props;
33177
33300
  if (typeof props.title === "string") {
33178
33301
  return props.title;
@@ -33261,7 +33384,7 @@ function subscribeToDebugEvents(listener) {
33261
33384
 
33262
33385
  // components/organisms/debug/hooks/useDebugData.ts
33263
33386
  function useDebugData() {
33264
- const [data, setData] = React90.useState(() => ({
33387
+ const [data, setData] = React91.useState(() => ({
33265
33388
  traits: [],
33266
33389
  ticks: [],
33267
33390
  guards: [],
@@ -33275,7 +33398,7 @@ function useDebugData() {
33275
33398
  },
33276
33399
  lastUpdate: Date.now()
33277
33400
  }));
33278
- React90.useEffect(() => {
33401
+ React91.useEffect(() => {
33279
33402
  const updateData = () => {
33280
33403
  setData({
33281
33404
  traits: getAllTraits(),
@@ -33372,12 +33495,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
33372
33495
  return positions;
33373
33496
  }
33374
33497
  function WalkMinimap() {
33375
- const [walkStep, setWalkStep] = React90.useState(null);
33376
- const [traits2, setTraits] = React90.useState([]);
33377
- const [coveredEdges, setCoveredEdges] = React90.useState([]);
33378
- const [completedTraits, setCompletedTraits] = React90.useState(/* @__PURE__ */ new Set());
33379
- const prevTraitRef = React90.useRef(null);
33380
- React90.useEffect(() => {
33498
+ const [walkStep, setWalkStep] = React91.useState(null);
33499
+ const [traits2, setTraits] = React91.useState([]);
33500
+ const [coveredEdges, setCoveredEdges] = React91.useState([]);
33501
+ const [completedTraits, setCompletedTraits] = React91.useState(/* @__PURE__ */ new Set());
33502
+ const prevTraitRef = React91.useRef(null);
33503
+ React91.useEffect(() => {
33381
33504
  const interval = setInterval(() => {
33382
33505
  const w = window;
33383
33506
  const step = w.__orbitalWalkStep;
@@ -33806,15 +33929,15 @@ var TYPE_BADGES = {
33806
33929
  state: { variant: "danger", icon: "\u{1F4CA}" }
33807
33930
  };
33808
33931
  function EventFlowTab({ events: events2 }) {
33809
- const [filter, setFilter] = React90.useState("all");
33810
- const containerRef = React90.useRef(null);
33811
- const [autoScroll, setAutoScroll] = React90.useState(true);
33812
- React90.useEffect(() => {
33932
+ const [filter, setFilter] = React91.useState("all");
33933
+ const containerRef = React91.useRef(null);
33934
+ const [autoScroll, setAutoScroll] = React91.useState(true);
33935
+ React91.useEffect(() => {
33813
33936
  if (autoScroll && containerRef.current) {
33814
33937
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
33815
33938
  }
33816
33939
  }, [events2.length, autoScroll]);
33817
- const filteredEvents = React90.useMemo(() => {
33940
+ const filteredEvents = React91.useMemo(() => {
33818
33941
  if (filter === "all") return events2;
33819
33942
  return events2.filter((e) => e.type === filter);
33820
33943
  }, [events2, filter]);
@@ -33914,7 +34037,7 @@ function EventFlowTab({ events: events2 }) {
33914
34037
  EventFlowTab.displayName = "EventFlowTab";
33915
34038
  init_Typography();
33916
34039
  function GuardsPanel({ guards }) {
33917
- const [filter, setFilter] = React90.useState("all");
34040
+ const [filter, setFilter] = React91.useState("all");
33918
34041
  if (guards.length === 0) {
33919
34042
  return /* @__PURE__ */ jsx(
33920
34043
  EmptyState,
@@ -33927,7 +34050,7 @@ function GuardsPanel({ guards }) {
33927
34050
  }
33928
34051
  const passedCount = guards.filter((g) => g.result).length;
33929
34052
  const failedCount = guards.length - passedCount;
33930
- const filteredGuards = React90.useMemo(() => {
34053
+ const filteredGuards = React91.useMemo(() => {
33931
34054
  if (filter === "all") return guards;
33932
34055
  if (filter === "passed") return guards.filter((g) => g.result);
33933
34056
  return guards.filter((g) => !g.result);
@@ -34075,10 +34198,10 @@ function EffectBadge({ effect }) {
34075
34198
  ] });
34076
34199
  }
34077
34200
  function TransitionTimeline({ transitions }) {
34078
- const containerRef = React90.useRef(null);
34079
- const [autoScroll, setAutoScroll] = React90.useState(true);
34080
- const [expandedId, setExpandedId] = React90.useState(null);
34081
- React90.useEffect(() => {
34201
+ const containerRef = React91.useRef(null);
34202
+ const [autoScroll, setAutoScroll] = React91.useState(true);
34203
+ const [expandedId, setExpandedId] = React91.useState(null);
34204
+ React91.useEffect(() => {
34082
34205
  if (autoScroll && containerRef.current) {
34083
34206
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
34084
34207
  }
@@ -34344,9 +34467,9 @@ function getAllEvents(traits2) {
34344
34467
  }
34345
34468
  function EventDispatcherTab({ traits: traits2, schema }) {
34346
34469
  const eventBus = useEventBus();
34347
- const [log3, setLog] = React90.useState([]);
34348
- const prevStatesRef = React90.useRef(/* @__PURE__ */ new Map());
34349
- React90.useEffect(() => {
34470
+ const [log3, setLog] = React91.useState([]);
34471
+ const prevStatesRef = React91.useRef(/* @__PURE__ */ new Map());
34472
+ React91.useEffect(() => {
34350
34473
  for (const trait of traits2) {
34351
34474
  const prev = prevStatesRef.current.get(trait.id);
34352
34475
  if (prev && prev !== trait.currentState) {
@@ -34499,9 +34622,9 @@ function VerifyModePanel({
34499
34622
  serverCount,
34500
34623
  localCount
34501
34624
  }) {
34502
- const scrollRef = React90.useRef(null);
34503
- const prevCountRef = React90.useRef(0);
34504
- React90.useEffect(() => {
34625
+ const scrollRef = React91.useRef(null);
34626
+ const prevCountRef = React91.useRef(0);
34627
+ React91.useEffect(() => {
34505
34628
  if (transitions.length > prevCountRef.current && scrollRef.current) {
34506
34629
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
34507
34630
  }
@@ -34549,10 +34672,10 @@ function RuntimeDebugger({
34549
34672
  defaultTab,
34550
34673
  schema
34551
34674
  }) {
34552
- const [isCollapsed, setIsCollapsed] = React90.useState(mode === "verify" ? true : defaultCollapsed);
34553
- const [isVisible, setIsVisible] = React90.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
34675
+ const [isCollapsed, setIsCollapsed] = React91.useState(mode === "verify" ? true : defaultCollapsed);
34676
+ const [isVisible, setIsVisible] = React91.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
34554
34677
  const debugData = useDebugData();
34555
- React90.useEffect(() => {
34678
+ React91.useEffect(() => {
34556
34679
  if (mode === "inline") return;
34557
34680
  return onDebugToggle((enabled) => {
34558
34681
  setIsVisible(enabled);
@@ -34561,7 +34684,7 @@ function RuntimeDebugger({
34561
34684
  }
34562
34685
  });
34563
34686
  }, [mode]);
34564
- React90.useEffect(() => {
34687
+ React91.useEffect(() => {
34565
34688
  if (mode === "inline") return;
34566
34689
  const handleKeyDown = (e) => {
34567
34690
  if (e.key === "`" && isVisible) {
@@ -34982,7 +35105,7 @@ var Timeline = ({
34982
35105
  }) => {
34983
35106
  const { t } = useTranslate();
34984
35107
  const entityData = Array.isArray(entity) ? entity : [];
34985
- const items = React90__default.useMemo(() => {
35108
+ const items = React91__default.useMemo(() => {
34986
35109
  if (propItems) return propItems;
34987
35110
  if (entityData.length === 0) return [];
34988
35111
  return entityData.map((record, idx) => {
@@ -35085,7 +35208,7 @@ var Timeline = ({
35085
35208
  Timeline.displayName = "Timeline";
35086
35209
  init_useEventBus();
35087
35210
  function extractToastProps(children) {
35088
- if (!React90__default.isValidElement(children)) {
35211
+ if (!React91__default.isValidElement(children)) {
35089
35212
  if (typeof children === "string") {
35090
35213
  return { message: children };
35091
35214
  }
@@ -35116,7 +35239,7 @@ var ToastSlot = ({
35116
35239
  eventBus.emit("UI:CLOSE");
35117
35240
  };
35118
35241
  if (!isVisible) return null;
35119
- const isCustomContent = React90__default.isValidElement(children) && !message;
35242
+ const isCustomContent = React91__default.isValidElement(children) && !message;
35120
35243
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
35121
35244
  Toast,
35122
35245
  {
@@ -35161,12 +35284,12 @@ WorldMapTemplate.displayName = "WorldMapTemplate";
35161
35284
 
35162
35285
  // components/organisms/component-registry.generated.ts
35163
35286
  function lazyThree(name, loader) {
35164
- const Lazy = React90__default.lazy(() => loader().then((m) => ({ default: m[name] })));
35287
+ const Lazy = React91__default.lazy(() => loader().then((m) => ({ default: m[name] })));
35165
35288
  function ThreeWrapper(props) {
35166
- return React90__default.createElement(
35167
- React90__default.Suspense,
35289
+ return React91__default.createElement(
35290
+ React91__default.Suspense,
35168
35291
  { fallback: null },
35169
- React90__default.createElement(Lazy, props)
35292
+ React91__default.createElement(Lazy, props)
35170
35293
  );
35171
35294
  }
35172
35295
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -35454,7 +35577,7 @@ function SuspenseConfigProvider({
35454
35577
  config,
35455
35578
  children
35456
35579
  }) {
35457
- return React90__default.createElement(
35580
+ return React91__default.createElement(
35458
35581
  SuspenseConfigContext.Provider,
35459
35582
  { value: config },
35460
35583
  children
@@ -37953,7 +38076,7 @@ function EntityDataProvider({
37953
38076
  adapter,
37954
38077
  children
37955
38078
  }) {
37956
- return React90__default.createElement(
38079
+ return React91__default.createElement(
37957
38080
  EntityDataContext.Provider,
37958
38081
  { value: adapter },
37959
38082
  children
@@ -38877,4 +39000,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
38877
39000
  });
38878
39001
  }
38879
39002
 
38880
- export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, ActionButtons, Card2 as ActionCard, ActionPalette, ActionTile, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, CanvasEffect, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, Checkbox, ChoiceButton, ClassifierBoard, CodeBlock, CodeExample, CodeView, CodeViewer, CollapsibleSection, CombatLog, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, Container, ContentRenderer, ContentSection, ControlButton, CounterTemplate, CraftingRecipe, DEFAULT_SLOTS, DIAMOND_TOP_Y, DPad, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, DialogueBox, DialogueBubble, Divider, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ENTITY_EVENTS, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EnemyPlate, EntityDataProvider, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FilterGroup, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCanvas2D, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GraphCanvas, GraphView, Grid, HStack, Header, Heading, HealthBar, HealthPanel, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, InventoryPanel, IsometricCanvas, ItemSlot, JazariStateMachine, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LineChart, List, LoadingState, MapView, MarkdownContent, MarketingStatCard, MasterDetail, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, Navigation, NegotiatorBoard, NotifyListener, NumberStepper, ObjectRulePanel, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsManager, PlatformerCanvas, Popover, PowerupSlots, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PullToRefresh, QuestTracker, QuizBlock, Radio, RangeSlider, RelationSelect, RepeatableFormSection, ResourceBar, ResourceCounter, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreBoard, ScoreDisplay, SearchInput, Section, SectionHeader, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, Tabs, TagCloud, TeamCard, TeamOrganism, TerrainPalette, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TurnPanel, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UnitCommandBar, UploadDropZone, VStack, VariablePanel, ViolationAlert, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, XPBar, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, clearEntities, cn, combatAnimations, combatClasses, combatEffects, createInitialGameState, createTranslate, createUnitAnimationState, drawSprite, entityDataKeys, generateCombatMessage, getAllEntities, getByType, getCurrentFrame, getEntity, getSingleton, getTileDimensions, inferDirection, isoToScreen, mapBookData, parseQueryBinding, pendulum, projectileMotion, removeEntity, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, spawnEntity, springOscillator, tickAnimationState, transitionAnimation, updateEntity, updateSingleton, useAgentChat, useAuthContext, useBattleState, useCamera, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEntities, useEntitiesByType, useEntity, useEntity2 as useEntityById, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntityMutations, useEntitySuspense, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useInput, useLongPress, useOrbitalHistory, useOrbitalMutations, usePhysics, usePhysics2D, usePinchZoom, usePlayer, usePreview, usePullToRefresh, useQuerySingleton, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useSpriteAnimations, useSwipeGesture, useTranslate, useUIEvents, useUISlotManager, useUpdateEntity, useValidation };
39003
+ export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, ActionButtons, Card2 as ActionCard, ActionPalette, ActionTile, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, CanvasEffect, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, Checkbox, ChoiceButton, ClassifierBoard, CodeBlock, CodeExample, CodeView, CodeViewer, CollapsibleSection, CombatLog, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, Container, ContentRenderer, ContentSection, ControlButton, CounterTemplate, CraftingRecipe, DEFAULT_SLOTS, DIAMOND_TOP_Y, DPad, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, DialogueBox, DialogueBubble, Divider, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ENTITY_EVENTS, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EnemyPlate, EntityDataProvider, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FileTree, FilterGroup, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCanvas2D, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GraphCanvas, GraphView, Grid, HStack, Header, Heading, HealthBar, HealthPanel, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, InventoryPanel, IsometricCanvas, ItemSlot, JazariStateMachine, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LineChart, List, LoadingState, MapView, MarkdownContent, MarketingStatCard, MasterDetail, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, Navigation, NegotiatorBoard, NotifyListener, NumberStepper, ObjectRulePanel, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsManager, PlatformerCanvas, Popover, PowerupSlots, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PullToRefresh, QuestTracker, QuizBlock, Radio, RangeSlider, RelationSelect, RepeatableFormSection, ResourceBar, ResourceCounter, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreBoard, ScoreDisplay, SearchInput, Section, SectionHeader, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, Tabs, TagCloud, TeamCard, TeamOrganism, TerrainPalette, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TurnPanel, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UnitCommandBar, UploadDropZone, VStack, VariablePanel, ViolationAlert, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, XPBar, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, clearEntities, cn, combatAnimations, combatClasses, combatEffects, createInitialGameState, createTranslate, createUnitAnimationState, drawSprite, entityDataKeys, generateCombatMessage, getAllEntities, getByType, getCurrentFrame, getEntity, getSingleton, getTileDimensions, inferDirection, isoToScreen, mapBookData, parseQueryBinding, pendulum, projectileMotion, removeEntity, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, spawnEntity, springOscillator, tickAnimationState, transitionAnimation, updateEntity, updateSingleton, useAgentChat, useAuthContext, useBattleState, useCamera, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEntities, useEntitiesByType, useEntity, useEntity2 as useEntityById, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntityMutations, useEntitySuspense, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useInput, useLongPress, useOrbitalHistory, useOrbitalMutations, usePhysics, usePhysics2D, usePinchZoom, usePlayer, usePreview, usePullToRefresh, useQuerySingleton, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useSpriteAnimations, useSwipeGesture, useTranslate, useUIEvents, useUISlotManager, useUpdateEntity, useValidation };