@almadar/ui 4.25.0 → 4.27.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,13 +1,12 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
- import * as React110 from 'react';
4
- import React110__default, { useContext, useMemo, useRef, useEffect, useCallback, createContext, useState, Suspense, lazy, useSyncExternalStore, useLayoutEffect, useId } from 'react';
3
+ import * as React109 from 'react';
4
+ import React109__default, { useContext, useMemo, useRef, useEffect, useCallback, createContext, useState, Suspense, lazy, useSyncExternalStore, useLayoutEffect, useId } from 'react';
5
5
  import { EventBusContext, useTraitScope, TraitScopeProvider } from '@almadar/ui/providers';
6
6
  import * as LucideIcons from 'lucide-react';
7
- import { Loader2, X, AlertTriangle, Info, AlertCircle, CheckCircle, ChevronDown, List, Printer, ChevronRight, ChevronLeft, XCircle, Wrench, RotateCcw, Send, Code, FileText, WrapText, Check, Copy, Zap, Sword, Move, Heart, Shield, Trash2, Menu as Menu$1, Search, Bell, LogOut, ChevronUp, MoreHorizontal, Bug, ZoomOut, ZoomIn, Download, Pause, Play, Package, Calendar, Pencil, Eye, Image as Image$1, Upload, ArrowRight, ArrowLeft, Eraser, SkipForward, TrendingUp, TrendingDown, Minus, ArrowUp, ArrowDown, MoreVertical, Circle, Clock, CheckCircle2, HelpCircle, FileQuestion, Inbox, Plus, User, Filter, Star, FileWarning, Tag, DollarSign, Sun, Moon } from 'lucide-react';
7
+ import { Loader2, X, AlertTriangle, Info, AlertCircle, CheckCircle, ChevronDown, List, Printer, ChevronRight, ChevronLeft, XCircle, Wrench, RotateCcw, Send, Code, FileText, WrapText, Check, Copy, Trash2, Menu as Menu$1, Search, Bell, LogOut, ChevronUp, MoreHorizontal, Bug, ZoomOut, ZoomIn, Download, Pause, Play, Package, Calendar, Pencil, Eye, Image as Image$1, Upload, ArrowRight, ArrowLeft, Eraser, SkipForward, TrendingUp, TrendingDown, Minus, ArrowUp, ArrowDown, MoreVertical, Circle, Clock, CheckCircle2, HelpCircle, FileQuestion, Inbox, Plus, User, Filter, Star, FileWarning, Tag, DollarSign, Sun, Moon, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
8
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
9
  import { evaluate, createMinimalContext } from '@almadar/evaluator';
10
- import { getPatternDefinition, getComponentForPattern as getComponentForPattern$1 } from '@almadar/patterns';
11
10
  import { createPortal } from 'react-dom';
12
11
  import { Link, Outlet, useLocation } from 'react-router-dom';
13
12
  import ReactMarkdown from 'react-markdown';
@@ -35,6 +34,7 @@ import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go.js';
35
34
  import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql.js';
36
35
  import { isInlineTrait } from '@almadar/core';
37
36
  import { useUISlots } from '@almadar/ui/context';
37
+ import { getPatternDefinition, getComponentForPattern as getComponentForPattern$1 } from '@almadar/patterns';
38
38
  import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
39
39
 
40
40
  var __defProp = Object.defineProperty;
@@ -368,7 +368,7 @@ function resolveIconProp(value, sizeClass) {
368
368
  const IconComp = value;
369
369
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
370
370
  }
371
- if (React110__default.isValidElement(value)) {
371
+ if (React109__default.isValidElement(value)) {
372
372
  return value;
373
373
  }
374
374
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -444,7 +444,7 @@ var init_Button = __esm({
444
444
  md: "h-4 w-4",
445
445
  lg: "h-5 w-5"
446
446
  };
447
- Button = React110__default.forwardRef(
447
+ Button = React109__default.forwardRef(
448
448
  ({
449
449
  className,
450
450
  variant = "primary",
@@ -509,7 +509,7 @@ var Input;
509
509
  var init_Input = __esm({
510
510
  "components/atoms/Input.tsx"() {
511
511
  init_cn();
512
- Input = React110__default.forwardRef(
512
+ Input = React109__default.forwardRef(
513
513
  ({
514
514
  className,
515
515
  inputType,
@@ -627,7 +627,7 @@ var Label;
627
627
  var init_Label = __esm({
628
628
  "components/atoms/Label.tsx"() {
629
629
  init_cn();
630
- Label = React110__default.forwardRef(
630
+ Label = React109__default.forwardRef(
631
631
  ({ className, required, children, ...props }, ref) => {
632
632
  return /* @__PURE__ */ jsxs(
633
633
  "label",
@@ -653,7 +653,7 @@ var Textarea;
653
653
  var init_Textarea = __esm({
654
654
  "components/atoms/Textarea.tsx"() {
655
655
  init_cn();
656
- Textarea = React110__default.forwardRef(
656
+ Textarea = React109__default.forwardRef(
657
657
  ({ className, error, ...props }, ref) => {
658
658
  return /* @__PURE__ */ jsx(
659
659
  "textarea",
@@ -682,7 +682,7 @@ var Select;
682
682
  var init_Select = __esm({
683
683
  "components/atoms/Select.tsx"() {
684
684
  init_cn();
685
- Select = React110__default.forwardRef(
685
+ Select = React109__default.forwardRef(
686
686
  ({ className, options, placeholder, error, ...props }, ref) => {
687
687
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
688
688
  /* @__PURE__ */ jsxs(
@@ -724,7 +724,7 @@ var Checkbox;
724
724
  var init_Checkbox = __esm({
725
725
  "components/atoms/Checkbox.tsx"() {
726
726
  init_cn();
727
- Checkbox = React110__default.forwardRef(
727
+ Checkbox = React109__default.forwardRef(
728
728
  ({ className, label, id, ...props }, ref) => {
729
729
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
730
730
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -806,7 +806,7 @@ var init_Card = __esm({
806
806
  md: "shadow",
807
807
  lg: "shadow-lg"
808
808
  };
809
- Card = React110__default.forwardRef(
809
+ Card = React109__default.forwardRef(
810
810
  ({
811
811
  className,
812
812
  variant = "bordered",
@@ -842,9 +842,9 @@ var init_Card = __esm({
842
842
  }
843
843
  );
844
844
  Card.displayName = "Card";
845
- CardHeader = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
845
+ CardHeader = React109__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
846
846
  CardHeader.displayName = "CardHeader";
847
- CardTitle = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
847
+ CardTitle = React109__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
848
848
  "h3",
849
849
  {
850
850
  ref,
@@ -857,11 +857,11 @@ var init_Card = __esm({
857
857
  }
858
858
  ));
859
859
  CardTitle.displayName = "CardTitle";
860
- CardContent = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
860
+ CardContent = React109__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
861
861
  CardContent.displayName = "CardContent";
862
862
  CardBody = CardContent;
863
863
  CardBody.displayName = "CardBody";
864
- CardFooter = React110__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
864
+ CardFooter = React109__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
865
865
  "div",
866
866
  {
867
867
  ref,
@@ -914,7 +914,7 @@ var init_Badge = __esm({
914
914
  md: "px-2.5 py-1 text-sm",
915
915
  lg: "px-3 py-1.5 text-base"
916
916
  };
917
- Badge = React110__default.forwardRef(
917
+ Badge = React109__default.forwardRef(
918
918
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
919
919
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
920
920
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -953,7 +953,7 @@ var init_Spinner = __esm({
953
953
  md: "h-6 w-6",
954
954
  lg: "h-8 w-8"
955
955
  };
956
- Spinner = React110__default.forwardRef(
956
+ Spinner = React109__default.forwardRef(
957
957
  ({ className, size = "md", ...props }, ref) => {
958
958
  return /* @__PURE__ */ jsx(
959
959
  "div",
@@ -1234,7 +1234,7 @@ var init_Box = __esm({
1234
1234
  fixed: "fixed",
1235
1235
  sticky: "sticky"
1236
1236
  };
1237
- Box = React110__default.forwardRef(
1237
+ Box = React109__default.forwardRef(
1238
1238
  ({
1239
1239
  padding,
1240
1240
  paddingX,
@@ -1607,7 +1607,7 @@ var Radio;
1607
1607
  var init_Radio = __esm({
1608
1608
  "components/atoms/Radio.tsx"() {
1609
1609
  init_cn();
1610
- Radio = React110__default.forwardRef(
1610
+ Radio = React109__default.forwardRef(
1611
1611
  ({
1612
1612
  label,
1613
1613
  helperText,
@@ -1718,7 +1718,7 @@ var init_Switch = __esm({
1718
1718
  "components/atoms/Switch.tsx"() {
1719
1719
  "use client";
1720
1720
  init_cn();
1721
- Switch = React110.forwardRef(
1721
+ Switch = React109.forwardRef(
1722
1722
  ({
1723
1723
  checked,
1724
1724
  defaultChecked = false,
@@ -1729,10 +1729,10 @@ var init_Switch = __esm({
1729
1729
  name,
1730
1730
  className
1731
1731
  }, ref) => {
1732
- const [isChecked, setIsChecked] = React110.useState(
1732
+ const [isChecked, setIsChecked] = React109.useState(
1733
1733
  checked !== void 0 ? checked : defaultChecked
1734
1734
  );
1735
- React110.useEffect(() => {
1735
+ React109.useEffect(() => {
1736
1736
  if (checked !== void 0) {
1737
1737
  setIsChecked(checked);
1738
1738
  }
@@ -2617,8 +2617,8 @@ var init_LawReferenceTooltip = __esm({
2617
2617
  position = "top",
2618
2618
  className
2619
2619
  }) => {
2620
- const [isVisible, setIsVisible] = React110__default.useState(false);
2621
- const timeoutRef = React110__default.useRef(null);
2620
+ const [isVisible, setIsVisible] = React109__default.useState(false);
2621
+ const timeoutRef = React109__default.useRef(null);
2622
2622
  const handleMouseEnter = () => {
2623
2623
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
2624
2624
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -2627,7 +2627,7 @@ var init_LawReferenceTooltip = __esm({
2627
2627
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
2628
2628
  setIsVisible(false);
2629
2629
  };
2630
- React110__default.useEffect(() => {
2630
+ React109__default.useEffect(() => {
2631
2631
  return () => {
2632
2632
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
2633
2633
  };
@@ -2837,7 +2837,7 @@ var init_StatusDot = __esm({
2837
2837
  md: "w-2.5 h-2.5",
2838
2838
  lg: "w-3 h-3"
2839
2839
  };
2840
- StatusDot = React110__default.forwardRef(
2840
+ StatusDot = React109__default.forwardRef(
2841
2841
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
2842
2842
  return /* @__PURE__ */ jsx(
2843
2843
  "span",
@@ -2890,7 +2890,7 @@ var init_TrendIndicator = __esm({
2890
2890
  down: TrendingDown,
2891
2891
  flat: ArrowRight
2892
2892
  };
2893
- TrendIndicator = React110__default.forwardRef(
2893
+ TrendIndicator = React109__default.forwardRef(
2894
2894
  ({
2895
2895
  className,
2896
2896
  value,
@@ -2957,7 +2957,7 @@ var init_RangeSlider = __esm({
2957
2957
  md: "w-4 h-4",
2958
2958
  lg: "w-5 h-5"
2959
2959
  };
2960
- RangeSlider = React110__default.forwardRef(
2960
+ RangeSlider = React109__default.forwardRef(
2961
2961
  ({
2962
2962
  className,
2963
2963
  min = 0,
@@ -3553,7 +3553,7 @@ var init_ContentSection = __esm({
3553
3553
  md: "py-16",
3554
3554
  lg: "py-24"
3555
3555
  };
3556
- ContentSection = React110__default.forwardRef(
3556
+ ContentSection = React109__default.forwardRef(
3557
3557
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
3558
3558
  return /* @__PURE__ */ jsx(
3559
3559
  Box,
@@ -4087,7 +4087,7 @@ var init_AnimatedReveal = __esm({
4087
4087
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
4088
4088
  "none": {}
4089
4089
  };
4090
- AnimatedReveal = React110__default.forwardRef(
4090
+ AnimatedReveal = React109__default.forwardRef(
4091
4091
  ({
4092
4092
  trigger = "scroll",
4093
4093
  animation = "fade-up",
@@ -4247,7 +4247,7 @@ var init_AnimatedGraphic = __esm({
4247
4247
  "components/atoms/AnimatedGraphic.tsx"() {
4248
4248
  "use client";
4249
4249
  init_cn();
4250
- AnimatedGraphic = React110__default.forwardRef(
4250
+ AnimatedGraphic = React109__default.forwardRef(
4251
4251
  ({
4252
4252
  src,
4253
4253
  svgContent,
@@ -4270,7 +4270,7 @@ var init_AnimatedGraphic = __esm({
4270
4270
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
4271
4271
  const resolvedSvg = svgContent ?? fetchedSvg;
4272
4272
  const prevAnimateRef = useRef(animate);
4273
- const setRef = React110__default.useCallback(
4273
+ const setRef = React109__default.useCallback(
4274
4274
  (node) => {
4275
4275
  containerRef.current = node;
4276
4276
  if (typeof ref === "function") ref(node);
@@ -5083,7 +5083,7 @@ var init_ErrorBoundary = __esm({
5083
5083
  "use client";
5084
5084
  init_cn();
5085
5085
  init_ErrorState();
5086
- ErrorBoundary = class extends React110__default.Component {
5086
+ ErrorBoundary = class extends React109__default.Component {
5087
5087
  constructor(props) {
5088
5088
  super(props);
5089
5089
  __publicField(this, "reset", () => {
@@ -5246,33 +5246,6 @@ var init_Skeleton = __esm({
5246
5246
  }
5247
5247
  });
5248
5248
 
5249
- // renderer/pattern-resolver.ts
5250
- var init_pattern_resolver = __esm({
5251
- "renderer/pattern-resolver.ts"() {
5252
- }
5253
- });
5254
-
5255
- // renderer/client-effect-executor.ts
5256
- var init_client_effect_executor = __esm({
5257
- "renderer/client-effect-executor.ts"() {
5258
- }
5259
- });
5260
- var ClientEffectConfigContext;
5261
- var init_useClientEffects = __esm({
5262
- "renderer/useClientEffects.ts"() {
5263
- "use client";
5264
- init_client_effect_executor();
5265
- ClientEffectConfigContext = createContext(null);
5266
- ClientEffectConfigContext.Provider;
5267
- }
5268
- });
5269
-
5270
- // renderer/data-resolver.ts
5271
- var init_data_resolver = __esm({
5272
- "renderer/data-resolver.ts"() {
5273
- }
5274
- });
5275
-
5276
5249
  // renderer/slot-definitions.ts
5277
5250
  function isPortalSlot(slot) {
5278
5251
  return SLOT_DEFINITIONS[slot]?.type === "portal";
@@ -5349,35 +5322,11 @@ var init_slot_definitions = __esm({
5349
5322
  };
5350
5323
  }
5351
5324
  });
5352
- var init_offline_executor = __esm({
5353
- "renderer/offline-executor.ts"() {
5354
- "use client";
5355
- init_client_effect_executor();
5356
- }
5357
- });
5358
- var init_navigation = __esm({
5359
- "renderer/navigation.tsx"() {
5360
- "use client";
5361
- createContext(null);
5362
- }
5363
- });
5364
- var init_init = __esm({
5365
- "renderer/init.ts"() {
5366
- init_pattern_resolver();
5367
- }
5368
- });
5369
5325
 
5370
5326
  // renderer/index.ts
5371
5327
  var init_renderer = __esm({
5372
5328
  "renderer/index.ts"() {
5373
- init_pattern_resolver();
5374
- init_client_effect_executor();
5375
- init_useClientEffects();
5376
- init_data_resolver();
5377
5329
  init_slot_definitions();
5378
- init_offline_executor();
5379
- init_navigation();
5380
- init_init();
5381
5330
  }
5382
5331
  });
5383
5332
 
@@ -5555,8 +5504,8 @@ var init_Tooltip = __esm({
5555
5504
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
5556
5505
  };
5557
5506
  }, []);
5558
- const triggerElement = React110__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
5559
- const trigger = React110__default.cloneElement(triggerElement, {
5507
+ const triggerElement = React109__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
5508
+ const trigger = React109__default.cloneElement(triggerElement, {
5560
5509
  ref: triggerRef,
5561
5510
  onMouseEnter: handleMouseEnter,
5562
5511
  onMouseLeave: handleMouseLeave,
@@ -5677,8 +5626,8 @@ var init_Popover = __esm({
5677
5626
  onMouseEnter: handleOpen,
5678
5627
  onMouseLeave: handleClose
5679
5628
  };
5680
- const childElement = React110__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
5681
- const triggerElement = React110__default.cloneElement(
5629
+ const childElement = React109__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
5630
+ const triggerElement = React109__default.cloneElement(
5682
5631
  childElement,
5683
5632
  {
5684
5633
  ref: triggerRef,
@@ -5795,8 +5744,8 @@ var init_Menu = __esm({
5795
5744
  "bottom-start": "top-full left-0 mt-2",
5796
5745
  "bottom-end": "top-full right-0 mt-2"
5797
5746
  };
5798
- const triggerChild = React110__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
5799
- const triggerElement = React110__default.cloneElement(
5747
+ const triggerChild = React109__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
5748
+ const triggerElement = React109__default.cloneElement(
5800
5749
  triggerChild,
5801
5750
  {
5802
5751
  ref: triggerRef,
@@ -6315,13 +6264,13 @@ var init_MapView = __esm({
6315
6264
  shadowSize: [41, 41]
6316
6265
  });
6317
6266
  L.Marker.prototype.options.icon = defaultIcon;
6318
- const { useEffect: useEffect67, useRef: useRef64, useCallback: useCallback114, useState: useState98 } = React110__default;
6267
+ const { useEffect: useEffect65, useRef: useRef62, useCallback: useCallback111, useState: useState96 } = React109__default;
6319
6268
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
6320
6269
  const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
6321
6270
  function MapUpdater({ centerLat, centerLng, zoom }) {
6322
6271
  const map = useMap();
6323
- const prevRef = useRef64({ centerLat, centerLng, zoom });
6324
- useEffect67(() => {
6272
+ const prevRef = useRef62({ centerLat, centerLng, zoom });
6273
+ useEffect65(() => {
6325
6274
  const prev = prevRef.current;
6326
6275
  if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
6327
6276
  map.setView([centerLat, centerLng], zoom);
@@ -6332,7 +6281,7 @@ var init_MapView = __esm({
6332
6281
  }
6333
6282
  function MapClickHandler({ onMapClick }) {
6334
6283
  const map = useMap();
6335
- useEffect67(() => {
6284
+ useEffect65(() => {
6336
6285
  if (!onMapClick) return;
6337
6286
  const handler = (e) => {
6338
6287
  onMapClick(e.latlng.lat, e.latlng.lng);
@@ -6359,8 +6308,8 @@ var init_MapView = __esm({
6359
6308
  showAttribution = true
6360
6309
  }) {
6361
6310
  const eventBus = useEventBus2();
6362
- const [clickedPosition, setClickedPosition] = useState98(null);
6363
- const handleMapClick = useCallback114((lat, lng) => {
6311
+ const [clickedPosition, setClickedPosition] = useState96(null);
6312
+ const handleMapClick = useCallback111((lat, lng) => {
6364
6313
  if (showClickedPin) {
6365
6314
  setClickedPosition({ lat, lng });
6366
6315
  }
@@ -6369,7 +6318,7 @@ var init_MapView = __esm({
6369
6318
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
6370
6319
  }
6371
6320
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
6372
- const handleMarkerClick = useCallback114((marker) => {
6321
+ const handleMarkerClick = useCallback111((marker) => {
6373
6322
  onMarkerClick?.(marker);
6374
6323
  if (markerClickEvent) {
6375
6324
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -6546,7 +6495,7 @@ function InputPattern({
6546
6495
  fieldName
6547
6496
  }) {
6548
6497
  const { emit } = useEventBus();
6549
- const [localValue, setLocalValue] = React110__default.useState(value);
6498
+ const [localValue, setLocalValue] = React109__default.useState(value);
6550
6499
  const handleChange = (e) => {
6551
6500
  setLocalValue(e.target.value);
6552
6501
  if (onChange) {
@@ -6584,7 +6533,7 @@ function TextareaPattern({
6584
6533
  fieldName
6585
6534
  }) {
6586
6535
  const { emit } = useEventBus();
6587
- const [localValue, setLocalValue] = React110__default.useState(value);
6536
+ const [localValue, setLocalValue] = React109__default.useState(value);
6588
6537
  const handleChange = (e) => {
6589
6538
  setLocalValue(e.target.value);
6590
6539
  if (onChange) {
@@ -6616,7 +6565,7 @@ function SelectPattern({
6616
6565
  fieldName
6617
6566
  }) {
6618
6567
  const { emit } = useEventBus();
6619
- const [localValue, setLocalValue] = React110__default.useState(value);
6568
+ const [localValue, setLocalValue] = React109__default.useState(value);
6620
6569
  const handleChange = (e) => {
6621
6570
  setLocalValue(e.target.value);
6622
6571
  if (onChange) {
@@ -6645,7 +6594,7 @@ function CheckboxPattern({
6645
6594
  className
6646
6595
  }) {
6647
6596
  const { emit } = useEventBus();
6648
- const [localChecked, setLocalChecked] = React110__default.useState(checked);
6597
+ const [localChecked, setLocalChecked] = React109__default.useState(checked);
6649
6598
  const handleChange = (e) => {
6650
6599
  setLocalChecked(e.target.checked);
6651
6600
  if (onChange) {
@@ -6954,9 +6903,9 @@ function ControlButton({
6954
6903
  className
6955
6904
  }) {
6956
6905
  const eventBus = useEventBus();
6957
- const [isPressed, setIsPressed] = React110.useState(false);
6906
+ const [isPressed, setIsPressed] = React109.useState(false);
6958
6907
  const actualPressed = pressed ?? isPressed;
6959
- const handlePointerDown = React110.useCallback(
6908
+ const handlePointerDown = React109.useCallback(
6960
6909
  (e) => {
6961
6910
  e.preventDefault();
6962
6911
  if (disabled) return;
@@ -6966,7 +6915,7 @@ function ControlButton({
6966
6915
  },
6967
6916
  [disabled, pressEvent, eventBus, onPress]
6968
6917
  );
6969
- const handlePointerUp = React110.useCallback(
6918
+ const handlePointerUp = React109.useCallback(
6970
6919
  (e) => {
6971
6920
  e.preventDefault();
6972
6921
  if (disabled) return;
@@ -6976,7 +6925,7 @@ function ControlButton({
6976
6925
  },
6977
6926
  [disabled, releaseEvent, eventBus, onRelease]
6978
6927
  );
6979
- const handlePointerLeave = React110.useCallback(
6928
+ const handlePointerLeave = React109.useCallback(
6980
6929
  (e) => {
6981
6930
  if (isPressed) {
6982
6931
  setIsPressed(false);
@@ -7049,8 +6998,8 @@ function ActionButtons({
7049
6998
  disabled
7050
6999
  }) {
7051
7000
  const eventBus = useEventBus();
7052
- const [activeButtons, setActiveButtons] = React110.useState(/* @__PURE__ */ new Set());
7053
- const handlePress = React110.useCallback(
7001
+ const [activeButtons, setActiveButtons] = React109.useState(/* @__PURE__ */ new Set());
7002
+ const handlePress = React109.useCallback(
7054
7003
  (id) => {
7055
7004
  setActiveButtons((prev) => new Set(prev).add(id));
7056
7005
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -7058,7 +7007,7 @@ function ActionButtons({
7058
7007
  },
7059
7008
  [actionEvent, eventBus, onAction]
7060
7009
  );
7061
- const handleRelease = React110.useCallback(
7010
+ const handleRelease = React109.useCallback(
7062
7011
  (id) => {
7063
7012
  setActiveButtons((prev) => {
7064
7013
  const next = new Set(prev);
@@ -8497,7 +8446,6 @@ var init_IsometricCanvas = __esm({
8497
8446
  var init_IsometricCanvas2 = __esm({
8498
8447
  "components/organisms/game/IsometricCanvas.tsx"() {
8499
8448
  init_IsometricCanvas();
8500
- init_IsometricCanvas();
8501
8449
  }
8502
8450
  });
8503
8451
  function BattleBoard({
@@ -8981,9 +8929,9 @@ var init_ScaledDiagram = __esm({
8981
8929
  }
8982
8930
  });
8983
8931
 
8984
- // node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css
8932
+ // node_modules/katex/dist/katex.min.css
8985
8933
  var init_katex_min = __esm({
8986
- "node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css"() {
8934
+ "node_modules/katex/dist/katex.min.css"() {
8987
8935
  }
8988
8936
  });
8989
8937
  var MarkdownContent;
@@ -8993,7 +8941,7 @@ var init_MarkdownContent = __esm({
8993
8941
  init_Box();
8994
8942
  init_useTranslate();
8995
8943
  init_cn();
8996
- MarkdownContent = React110__default.memo(
8944
+ MarkdownContent = React109__default.memo(
8997
8945
  ({ content, direction, className }) => {
8998
8946
  const { t: _t } = useTranslate();
8999
8947
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -9210,7 +9158,7 @@ var init_CodeBlock = __esm({
9210
9158
  loloStyle = { ...dark, ...loloStyleOverrides };
9211
9159
  LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
9212
9160
  HIDDEN_LINE_NUMBERS = { display: "none" };
9213
- CodeBlock = React110__default.memo(
9161
+ CodeBlock = React109__default.memo(
9214
9162
  ({
9215
9163
  code: rawCode,
9216
9164
  language = "text",
@@ -10519,7 +10467,7 @@ var init_StateMachineView = __esm({
10519
10467
  style: { top: title ? 30 : 0 },
10520
10468
  children: [
10521
10469
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
10522
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React110__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
10470
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React109__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
10523
10471
  StateNode,
10524
10472
  {
10525
10473
  state,
@@ -16484,7 +16432,7 @@ function CraftingRecipe({
16484
16432
  className
16485
16433
  }) {
16486
16434
  const eventBus = useEventBus();
16487
- const handleCraft = React110.useCallback(() => {
16435
+ const handleCraft = React109.useCallback(() => {
16488
16436
  onCraft?.();
16489
16437
  if (craftEvent) {
16490
16438
  eventBus.emit(craftEvent, { output: output.label });
@@ -16501,7 +16449,7 @@ function CraftingRecipe({
16501
16449
  children: [
16502
16450
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
16503
16451
  const hasSufficient = ingredient.available >= ingredient.required;
16504
- return /* @__PURE__ */ jsxs(React110.Fragment, { children: [
16452
+ return /* @__PURE__ */ jsxs(React109.Fragment, { children: [
16505
16453
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
16506
16454
  ItemSlot,
16507
16455
  {
@@ -16795,8 +16743,8 @@ function DPad({
16795
16743
  }) {
16796
16744
  const eventBus = useEventBus();
16797
16745
  const sizes = sizeMap6[size];
16798
- const [activeDirections, setActiveDirections] = React110.useState(/* @__PURE__ */ new Set());
16799
- const handlePress = React110.useCallback(
16746
+ const [activeDirections, setActiveDirections] = React109.useState(/* @__PURE__ */ new Set());
16747
+ const handlePress = React109.useCallback(
16800
16748
  (direction) => {
16801
16749
  setActiveDirections((prev) => new Set(prev).add(direction));
16802
16750
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -16804,7 +16752,7 @@ function DPad({
16804
16752
  },
16805
16753
  [directionEvent, eventBus, onDirection]
16806
16754
  );
16807
- const handleRelease = React110.useCallback(
16755
+ const handleRelease = React109.useCallback(
16808
16756
  (direction) => {
16809
16757
  setActiveDirections((prev) => {
16810
16758
  const next = new Set(prev);
@@ -17007,6 +16955,7 @@ var init_DashboardLayout = __esm({
17007
16955
  showSearch = false,
17008
16956
  searchEvent,
17009
16957
  onSearchSubmit,
16958
+ topBarActions = [],
17010
16959
  notifications,
17011
16960
  notificationClickEvent,
17012
16961
  onNotificationClick,
@@ -17027,6 +16976,9 @@ var init_DashboardLayout = __esm({
17027
16976
  if (notificationClickEvent) eventBus.emit(`UI:${notificationClickEvent}`, {});
17028
16977
  if (onNotificationClick) onNotificationClick();
17029
16978
  };
16979
+ const handleTopBarActionClick = (event) => {
16980
+ eventBus.emit(`UI:${event}`, {});
16981
+ };
17030
16982
  const [sidebarOpen, setSidebarOpen] = useState(false);
17031
16983
  const [userMenuOpen, setUserMenuOpen] = useState(false);
17032
16984
  const location = useLocation();
@@ -17157,6 +17109,30 @@ var init_DashboardLayout = __esm({
17157
17109
  /* @__PURE__ */ jsxs(HStack, { align: "center", gap: "xs", children: [
17158
17110
  headerActions,
17159
17111
  showThemeToggle && /* @__PURE__ */ jsx(ThemeToggle, {}),
17112
+ topBarActions.map((action, idx) => /* @__PURE__ */ jsxs(
17113
+ Button,
17114
+ {
17115
+ variant: "ghost",
17116
+ className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
17117
+ onClick: () => handleTopBarActionClick(action.event),
17118
+ "aria-label": action.label ?? action.icon,
17119
+ children: [
17120
+ /* @__PURE__ */ jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
17121
+ action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsx(
17122
+ Box,
17123
+ {
17124
+ as: "span",
17125
+ className: cn(
17126
+ "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
17127
+ action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
17128
+ ),
17129
+ children: action.badge
17130
+ }
17131
+ )
17132
+ ]
17133
+ },
17134
+ `${action.event}-${idx}`
17135
+ )),
17160
17136
  notificationsEnabled && /* @__PURE__ */ jsxs(
17161
17137
  Button,
17162
17138
  {
@@ -17756,13 +17732,13 @@ function DataList({
17756
17732
  }) {
17757
17733
  const eventBus = useEventBus();
17758
17734
  const { t } = useTranslate();
17759
- const [visibleCount, setVisibleCount] = React110__default.useState(pageSize || Infinity);
17735
+ const [visibleCount, setVisibleCount] = React109__default.useState(pageSize || Infinity);
17760
17736
  const fieldDefs = fields ?? columns ?? [];
17761
17737
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
17762
17738
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
17763
17739
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
17764
17740
  const hasRenderProp = typeof children === "function";
17765
- React110__default.useEffect(() => {
17741
+ React109__default.useEffect(() => {
17766
17742
  const renderItemTypeOf = typeof schemaRenderItem;
17767
17743
  const childrenTypeOf = typeof children;
17768
17744
  if (data.length > 0 && !hasRenderProp) {
@@ -17818,7 +17794,7 @@ function DataList({
17818
17794
  const items2 = data.map((item) => item);
17819
17795
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
17820
17796
  const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
17821
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
17797
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React109__default.Fragment, { children: [
17822
17798
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
17823
17799
  group.items.map((itemData, index) => {
17824
17800
  const id = itemData.id || `${gi}-${index}`;
@@ -18009,7 +17985,7 @@ function DataList({
18009
17985
  className
18010
17986
  ),
18011
17987
  children: [
18012
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
17988
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React109__default.Fragment, { children: [
18013
17989
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
18014
17990
  group.items.map(
18015
17991
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -19293,7 +19269,7 @@ var init_WizardProgress = __esm({
19293
19269
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
19294
19270
  const isActive = index === currentStep;
19295
19271
  const isCompleted = index < currentStep;
19296
- return /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
19272
+ return /* @__PURE__ */ jsxs(React109__default.Fragment, { children: [
19297
19273
  /* @__PURE__ */ jsx(
19298
19274
  "button",
19299
19275
  {
@@ -20193,9 +20169,9 @@ function ScoreDisplay({
20193
20169
  ...rest
20194
20170
  }) {
20195
20171
  const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
20196
- const [displayValue, setDisplayValue] = React110.useState(resolvedValue);
20197
- const [isAnimating, setIsAnimating] = React110.useState(false);
20198
- React110.useEffect(() => {
20172
+ const [displayValue, setDisplayValue] = React109.useState(resolvedValue);
20173
+ const [isAnimating, setIsAnimating] = React109.useState(false);
20174
+ React109.useEffect(() => {
20199
20175
  if (!animated || displayValue === resolvedValue) {
20200
20176
  setDisplayValue(resolvedValue);
20201
20177
  return;
@@ -20345,7 +20321,7 @@ function InventoryGrid({
20345
20321
  const eventBus = useEventBus();
20346
20322
  const slotCount = totalSlots ?? items.length;
20347
20323
  const emptySlotCount = Math.max(0, slotCount - items.length);
20348
- const handleSelect = React110.useCallback(
20324
+ const handleSelect = React109.useCallback(
20349
20325
  (id) => {
20350
20326
  onSelect?.(id);
20351
20327
  if (selectEvent) {
@@ -20627,15 +20603,15 @@ function GameCanvas2D({
20627
20603
  fps = 60,
20628
20604
  className
20629
20605
  }) {
20630
- const canvasRef = React110.useRef(null);
20631
- const rafRef = React110.useRef(0);
20632
- const frameRef = React110.useRef(0);
20633
- const lastTimeRef = React110.useRef(0);
20634
- const onDrawRef = React110.useRef(onDraw);
20606
+ const canvasRef = React109.useRef(null);
20607
+ const rafRef = React109.useRef(0);
20608
+ const frameRef = React109.useRef(0);
20609
+ const lastTimeRef = React109.useRef(0);
20610
+ const onDrawRef = React109.useRef(onDraw);
20635
20611
  onDrawRef.current = onDraw;
20636
- const onTickRef = React110.useRef(onTick);
20612
+ const onTickRef = React109.useRef(onTick);
20637
20613
  onTickRef.current = onTick;
20638
- React110.useEffect(() => {
20614
+ React109.useEffect(() => {
20639
20615
  const canvas = canvasRef.current;
20640
20616
  if (!canvas) return;
20641
20617
  const ctx = canvas.getContext("2d");
@@ -20976,7 +20952,7 @@ function TurnPanel({
20976
20952
  className
20977
20953
  }) {
20978
20954
  const eventBus = useEventBus();
20979
- const handleAction = React110.useCallback(
20955
+ const handleAction = React109.useCallback(
20980
20956
  (event) => {
20981
20957
  if (event) {
20982
20958
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -21122,7 +21098,7 @@ function UnitCommandBar({
21122
21098
  className
21123
21099
  }) {
21124
21100
  const eventBus = useEventBus();
21125
- const handleCommand = React110.useCallback(
21101
+ const handleCommand = React109.useCallback(
21126
21102
  (event) => {
21127
21103
  if (event) {
21128
21104
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -21607,7 +21583,7 @@ function GameMenu({
21607
21583
  } catch {
21608
21584
  }
21609
21585
  const eventBus = eventBusProp || eventBusFromHook;
21610
- const handleOptionClick = React110.useCallback(
21586
+ const handleOptionClick = React109.useCallback(
21611
21587
  (option) => {
21612
21588
  if (option.event && eventBus) {
21613
21589
  eventBus.emit(`UI:${option.event}`, { option });
@@ -21721,7 +21697,7 @@ function GameOverScreen({
21721
21697
  } catch {
21722
21698
  }
21723
21699
  const eventBus = eventBusProp || eventBusFromHook;
21724
- const handleActionClick = React110.useCallback(
21700
+ const handleActionClick = React109.useCallback(
21725
21701
  (action) => {
21726
21702
  if (action.event && eventBus) {
21727
21703
  eventBus.emit(`UI:${action.event}`, { action });
@@ -24852,7 +24828,7 @@ var init_StepFlow = __esm({
24852
24828
  className
24853
24829
  }) => {
24854
24830
  if (orientation === "vertical") {
24855
- return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React110__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
24831
+ return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React109__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
24856
24832
  /* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
24857
24833
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
24858
24834
  showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
@@ -24863,7 +24839,7 @@ var init_StepFlow = __esm({
24863
24839
  ] })
24864
24840
  ] }) }, index)) });
24865
24841
  }
24866
- 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(React110__default.Fragment, { children: [
24842
+ 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(React109__default.Fragment, { children: [
24867
24843
  /* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
24868
24844
  /* @__PURE__ */ jsx(StepCircle, { step, index }),
24869
24845
  /* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
@@ -27015,7 +26991,7 @@ var init_DocumentViewer = __esm({
27015
26991
  }
27016
26992
  });
27017
26993
  function extractTitle(children) {
27018
- if (!React110__default.isValidElement(children)) return void 0;
26994
+ if (!React109__default.isValidElement(children)) return void 0;
27019
26995
  const props = children.props;
27020
26996
  if (typeof props.title === "string") {
27021
26997
  return props.title;
@@ -27127,7 +27103,7 @@ function LinearView({
27127
27103
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
27128
27104
  const isDone = i < currentIdx;
27129
27105
  const isCurrent = i === currentIdx;
27130
- return /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
27106
+ return /* @__PURE__ */ jsxs(React109__default.Fragment, { children: [
27131
27107
  i > 0 && /* @__PURE__ */ jsx(
27132
27108
  Typography,
27133
27109
  {
@@ -27911,12 +27887,12 @@ var init_Form = __esm({
27911
27887
  const isSchemaEntity = isOrbitalEntitySchema(entity);
27912
27888
  const resolvedEntity = isSchemaEntity ? entity : void 0;
27913
27889
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
27914
- const normalizedInitialData = React110__default.useMemo(() => {
27890
+ const normalizedInitialData = React109__default.useMemo(() => {
27915
27891
  const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
27916
27892
  const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
27917
27893
  return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
27918
27894
  }, [entity, initialData]);
27919
- const entityDerivedFields = React110__default.useMemo(() => {
27895
+ const entityDerivedFields = React109__default.useMemo(() => {
27920
27896
  if (fields && fields.length > 0) return void 0;
27921
27897
  if (!resolvedEntity) return void 0;
27922
27898
  return resolvedEntity.fields.map(
@@ -27935,14 +27911,14 @@ var init_Form = __esm({
27935
27911
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
27936
27912
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
27937
27913
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
27938
- const [formData, setFormData] = React110__default.useState(
27914
+ const [formData, setFormData] = React109__default.useState(
27939
27915
  normalizedInitialData
27940
27916
  );
27941
- const [collapsedSections, setCollapsedSections] = React110__default.useState(
27917
+ const [collapsedSections, setCollapsedSections] = React109__default.useState(
27942
27918
  /* @__PURE__ */ new Set()
27943
27919
  );
27944
27920
  const formMode = props.mode;
27945
- const mountedRef = React110__default.useRef(false);
27921
+ const mountedRef = React109__default.useRef(false);
27946
27922
  if (!mountedRef.current) {
27947
27923
  mountedRef.current = true;
27948
27924
  debug("forms", "mount", {
@@ -27955,7 +27931,7 @@ var init_Form = __esm({
27955
27931
  });
27956
27932
  }
27957
27933
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
27958
- const evalContext = React110__default.useMemo(
27934
+ const evalContext = React109__default.useMemo(
27959
27935
  () => ({
27960
27936
  formValues: formData,
27961
27937
  globalVariables: externalContext?.globalVariables ?? {},
@@ -27964,7 +27940,7 @@ var init_Form = __esm({
27964
27940
  }),
27965
27941
  [formData, externalContext]
27966
27942
  );
27967
- React110__default.useEffect(() => {
27943
+ React109__default.useEffect(() => {
27968
27944
  debug("forms", "initialData-sync", {
27969
27945
  mode: formMode,
27970
27946
  normalizedInitialData,
@@ -27975,7 +27951,7 @@ var init_Form = __esm({
27975
27951
  setFormData(normalizedInitialData);
27976
27952
  }
27977
27953
  }, [normalizedInitialData]);
27978
- const processCalculations = React110__default.useCallback(
27954
+ const processCalculations = React109__default.useCallback(
27979
27955
  (changedFieldId, newFormData) => {
27980
27956
  if (!hiddenCalculations.length) return;
27981
27957
  const context = {
@@ -28000,7 +27976,7 @@ var init_Form = __esm({
28000
27976
  },
28001
27977
  [hiddenCalculations, externalContext, eventBus]
28002
27978
  );
28003
- const checkViolations = React110__default.useCallback(
27979
+ const checkViolations = React109__default.useCallback(
28004
27980
  (changedFieldId, newFormData) => {
28005
27981
  if (!violationTriggers.length) return;
28006
27982
  const context = {
@@ -28038,7 +28014,7 @@ var init_Form = __esm({
28038
28014
  processCalculations(name, newFormData);
28039
28015
  checkViolations(name, newFormData);
28040
28016
  };
28041
- const isFieldVisible = React110__default.useCallback(
28017
+ const isFieldVisible = React109__default.useCallback(
28042
28018
  (fieldName) => {
28043
28019
  const condition = conditionalFields[fieldName];
28044
28020
  if (!condition) return true;
@@ -28046,7 +28022,7 @@ var init_Form = __esm({
28046
28022
  },
28047
28023
  [conditionalFields, evalContext]
28048
28024
  );
28049
- const isSectionVisible = React110__default.useCallback(
28025
+ const isSectionVisible = React109__default.useCallback(
28050
28026
  (section) => {
28051
28027
  if (!section.condition) return true;
28052
28028
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -28090,7 +28066,7 @@ var init_Form = __esm({
28090
28066
  eventBus.emit(`UI:${onCancel}`);
28091
28067
  }
28092
28068
  };
28093
- const renderField = React110__default.useCallback(
28069
+ const renderField = React109__default.useCallback(
28094
28070
  (field) => {
28095
28071
  const fieldName = field.name || field.field;
28096
28072
  if (!fieldName) return null;
@@ -28111,7 +28087,7 @@ var init_Form = __esm({
28111
28087
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
28112
28088
  );
28113
28089
  const effectiveFields = entityDerivedFields ?? fields;
28114
- const normalizedFields = React110__default.useMemo(() => {
28090
+ const normalizedFields = React109__default.useMemo(() => {
28115
28091
  if (!effectiveFields || effectiveFields.length === 0) return [];
28116
28092
  return effectiveFields.map((field) => {
28117
28093
  if (typeof field === "string") {
@@ -28133,7 +28109,7 @@ var init_Form = __esm({
28133
28109
  return field;
28134
28110
  });
28135
28111
  }, [effectiveFields, resolvedEntity]);
28136
- const schemaFields = React110__default.useMemo(() => {
28112
+ const schemaFields = React109__default.useMemo(() => {
28137
28113
  if (normalizedFields.length === 0) return null;
28138
28114
  if (isDebugEnabled()) {
28139
28115
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -28143,7 +28119,7 @@ var init_Form = __esm({
28143
28119
  }
28144
28120
  return normalizedFields.map(renderField).filter(Boolean);
28145
28121
  }, [normalizedFields, renderField, entityName, conditionalFields]);
28146
- const sectionElements = React110__default.useMemo(() => {
28122
+ const sectionElements = React109__default.useMemo(() => {
28147
28123
  if (!sections || sections.length === 0) return null;
28148
28124
  return sections.map((section) => {
28149
28125
  if (!isSectionVisible(section)) {
@@ -29667,7 +29643,7 @@ var init_List = __esm({
29667
29643
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
29668
29644
  return [];
29669
29645
  }, [entity]);
29670
- const getItemActions = React110__default.useCallback(
29646
+ const getItemActions = React109__default.useCallback(
29671
29647
  (item) => {
29672
29648
  if (!itemActions) return [];
29673
29649
  if (typeof itemActions === "function") {
@@ -30104,7 +30080,7 @@ var init_MediaGallery = __esm({
30104
30080
  [selectable, selectedItems, selectionEvent, eventBus]
30105
30081
  );
30106
30082
  const entityData = Array.isArray(entity) ? entity : [];
30107
- const items = React110__default.useMemo(() => {
30083
+ const items = React109__default.useMemo(() => {
30108
30084
  if (propItems) return propItems;
30109
30085
  if (entityData.length === 0) return [];
30110
30086
  return entityData.map((record, idx) => ({
@@ -30277,9 +30253,9 @@ function MiniMap({
30277
30253
  viewportRect,
30278
30254
  className
30279
30255
  }) {
30280
- const canvasRef = React110.useRef(null);
30281
- const frameRef = React110.useRef(0);
30282
- React110.useEffect(() => {
30256
+ const canvasRef = React109.useRef(null);
30257
+ const frameRef = React109.useRef(0);
30258
+ React109.useEffect(() => {
30283
30259
  const canvas = canvasRef.current;
30284
30260
  if (!canvas) return;
30285
30261
  const ctx = canvas.getContext("2d");
@@ -30361,7 +30337,7 @@ var init_MiniMap = __esm({
30361
30337
  }
30362
30338
  });
30363
30339
  function extractTitle2(children) {
30364
- if (!React110__default.isValidElement(children)) return void 0;
30340
+ if (!React109__default.isValidElement(children)) return void 0;
30365
30341
  const props = children.props;
30366
30342
  if (typeof props.title === "string") {
30367
30343
  return props.title;
@@ -31074,7 +31050,7 @@ var init_PageHeader = __esm({
31074
31050
  info: "bg-info/10 text-info"
31075
31051
  };
31076
31052
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
31077
- 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(React110__default.Fragment, { children: [
31053
+ 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(React109__default.Fragment, { children: [
31078
31054
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
31079
31055
  crumb.href ? /* @__PURE__ */ jsx(
31080
31056
  "a",
@@ -31293,7 +31269,7 @@ var init_debugRegistry = __esm({
31293
31269
  }
31294
31270
  });
31295
31271
  function useDebugData() {
31296
- const [data, setData] = React110.useState(() => ({
31272
+ const [data, setData] = React109.useState(() => ({
31297
31273
  traits: [],
31298
31274
  ticks: [],
31299
31275
  guards: [],
@@ -31307,7 +31283,7 @@ function useDebugData() {
31307
31283
  },
31308
31284
  lastUpdate: Date.now()
31309
31285
  }));
31310
- React110.useEffect(() => {
31286
+ React109.useEffect(() => {
31311
31287
  const updateData = () => {
31312
31288
  setData({
31313
31289
  traits: getAllTraits(),
@@ -31416,12 +31392,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
31416
31392
  return positions;
31417
31393
  }
31418
31394
  function WalkMinimap() {
31419
- const [walkStep, setWalkStep] = React110.useState(null);
31420
- const [traits2, setTraits] = React110.useState([]);
31421
- const [coveredEdges, setCoveredEdges] = React110.useState([]);
31422
- const [completedTraits, setCompletedTraits] = React110.useState(/* @__PURE__ */ new Set());
31423
- const prevTraitRef = React110.useRef(null);
31424
- React110.useEffect(() => {
31395
+ const [walkStep, setWalkStep] = React109.useState(null);
31396
+ const [traits2, setTraits] = React109.useState([]);
31397
+ const [coveredEdges, setCoveredEdges] = React109.useState([]);
31398
+ const [completedTraits, setCompletedTraits] = React109.useState(/* @__PURE__ */ new Set());
31399
+ const prevTraitRef = React109.useRef(null);
31400
+ React109.useEffect(() => {
31425
31401
  const interval = setInterval(() => {
31426
31402
  const w = window;
31427
31403
  const step = w.__orbitalWalkStep;
@@ -31868,15 +31844,15 @@ var init_EntitiesTab = __esm({
31868
31844
  }
31869
31845
  });
31870
31846
  function EventFlowTab({ events: events2 }) {
31871
- const [filter, setFilter] = React110.useState("all");
31872
- const containerRef = React110.useRef(null);
31873
- const [autoScroll, setAutoScroll] = React110.useState(true);
31874
- React110.useEffect(() => {
31847
+ const [filter, setFilter] = React109.useState("all");
31848
+ const containerRef = React109.useRef(null);
31849
+ const [autoScroll, setAutoScroll] = React109.useState(true);
31850
+ React109.useEffect(() => {
31875
31851
  if (autoScroll && containerRef.current) {
31876
31852
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
31877
31853
  }
31878
31854
  }, [events2.length, autoScroll]);
31879
- const filteredEvents = React110.useMemo(() => {
31855
+ const filteredEvents = React109.useMemo(() => {
31880
31856
  if (filter === "all") return events2;
31881
31857
  return events2.filter((e) => e.type === filter);
31882
31858
  }, [events2, filter]);
@@ -31995,7 +31971,7 @@ var init_EventFlowTab = __esm({
31995
31971
  }
31996
31972
  });
31997
31973
  function GuardsPanel({ guards }) {
31998
- const [filter, setFilter] = React110.useState("all");
31974
+ const [filter, setFilter] = React109.useState("all");
31999
31975
  if (guards.length === 0) {
32000
31976
  return /* @__PURE__ */ jsx(
32001
31977
  EmptyState,
@@ -32008,7 +31984,7 @@ function GuardsPanel({ guards }) {
32008
31984
  }
32009
31985
  const passedCount = guards.filter((g) => g.result).length;
32010
31986
  const failedCount = guards.length - passedCount;
32011
- const filteredGuards = React110.useMemo(() => {
31987
+ const filteredGuards = React109.useMemo(() => {
32012
31988
  if (filter === "all") return guards;
32013
31989
  if (filter === "passed") return guards.filter((g) => g.result);
32014
31990
  return guards.filter((g) => !g.result);
@@ -32169,10 +32145,10 @@ function EffectBadge({ effect }) {
32169
32145
  ] });
32170
32146
  }
32171
32147
  function TransitionTimeline({ transitions }) {
32172
- const containerRef = React110.useRef(null);
32173
- const [autoScroll, setAutoScroll] = React110.useState(true);
32174
- const [expandedId, setExpandedId] = React110.useState(null);
32175
- React110.useEffect(() => {
32148
+ const containerRef = React109.useRef(null);
32149
+ const [autoScroll, setAutoScroll] = React109.useState(true);
32150
+ const [expandedId, setExpandedId] = React109.useState(null);
32151
+ React109.useEffect(() => {
32176
32152
  if (autoScroll && containerRef.current) {
32177
32153
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
32178
32154
  }
@@ -32458,9 +32434,9 @@ function getAllEvents(traits2) {
32458
32434
  }
32459
32435
  function EventDispatcherTab({ traits: traits2, schema }) {
32460
32436
  const eventBus = useEventBus();
32461
- const [log3, setLog] = React110.useState([]);
32462
- const prevStatesRef = React110.useRef(/* @__PURE__ */ new Map());
32463
- React110.useEffect(() => {
32437
+ const [log3, setLog] = React109.useState([]);
32438
+ const prevStatesRef = React109.useRef(/* @__PURE__ */ new Map());
32439
+ React109.useEffect(() => {
32464
32440
  for (const trait of traits2) {
32465
32441
  const prev = prevStatesRef.current.get(trait.id);
32466
32442
  if (prev && prev !== trait.currentState) {
@@ -32630,10 +32606,10 @@ function VerifyModePanel({
32630
32606
  serverCount,
32631
32607
  localCount
32632
32608
  }) {
32633
- const [expanded, setExpanded] = React110.useState(true);
32634
- const scrollRef = React110.useRef(null);
32635
- const prevCountRef = React110.useRef(0);
32636
- React110.useEffect(() => {
32609
+ const [expanded, setExpanded] = React109.useState(true);
32610
+ const scrollRef = React109.useRef(null);
32611
+ const prevCountRef = React109.useRef(0);
32612
+ React109.useEffect(() => {
32637
32613
  if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
32638
32614
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
32639
32615
  }
@@ -32699,10 +32675,10 @@ function RuntimeDebugger({
32699
32675
  defaultTab,
32700
32676
  schema
32701
32677
  }) {
32702
- const [isCollapsed, setIsCollapsed] = React110.useState(mode === "verify" ? true : defaultCollapsed);
32703
- const [isVisible, setIsVisible] = React110.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
32678
+ const [isCollapsed, setIsCollapsed] = React109.useState(mode === "verify" ? true : defaultCollapsed);
32679
+ const [isVisible, setIsVisible] = React109.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
32704
32680
  const debugData = useDebugData();
32705
- React110.useEffect(() => {
32681
+ React109.useEffect(() => {
32706
32682
  if (mode === "inline") return;
32707
32683
  return onDebugToggle((enabled) => {
32708
32684
  setIsVisible(enabled);
@@ -32711,7 +32687,7 @@ function RuntimeDebugger({
32711
32687
  }
32712
32688
  });
32713
32689
  }, [mode]);
32714
- React110.useEffect(() => {
32690
+ React109.useEffect(() => {
32715
32691
  if (mode === "inline") return;
32716
32692
  const handleKeyDown = (e) => {
32717
32693
  if (e.key === "`" && isVisible) {
@@ -33260,7 +33236,7 @@ function SequenceBar({
33260
33236
  onSlotRemove(index);
33261
33237
  }, [onSlotRemove, playing]);
33262
33238
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
33263
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
33239
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React109__default.Fragment, { children: [
33264
33240
  i > 0 && /* @__PURE__ */ jsx(
33265
33241
  Typography,
33266
33242
  {
@@ -34716,7 +34692,7 @@ var init_StatCard2 = __esm({
34716
34692
  const labelToUse = propLabel ?? propTitle;
34717
34693
  const eventBus = useEventBus();
34718
34694
  const { t } = useTranslate();
34719
- const handleActionClick = React110__default.useCallback(() => {
34695
+ const handleActionClick = React109__default.useCallback(() => {
34720
34696
  if (action?.event) {
34721
34697
  eventBus.emit(`UI:${action.event}`, {});
34722
34698
  }
@@ -34727,7 +34703,7 @@ var init_StatCard2 = __esm({
34727
34703
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
34728
34704
  const isLoading = externalLoading ?? false;
34729
34705
  const error = externalError;
34730
- const computeMetricValue = React110__default.useCallback(
34706
+ const computeMetricValue = React109__default.useCallback(
34731
34707
  (metric, items) => {
34732
34708
  if (metric.value !== void 0) {
34733
34709
  return metric.value;
@@ -34766,7 +34742,7 @@ var init_StatCard2 = __esm({
34766
34742
  },
34767
34743
  []
34768
34744
  );
34769
- const schemaStats = React110__default.useMemo(() => {
34745
+ const schemaStats = React109__default.useMemo(() => {
34770
34746
  if (!metrics || metrics.length === 0) return null;
34771
34747
  return metrics.map((metric) => ({
34772
34748
  label: metric.label,
@@ -34774,7 +34750,7 @@ var init_StatCard2 = __esm({
34774
34750
  format: metric.format
34775
34751
  }));
34776
34752
  }, [metrics, data, computeMetricValue]);
34777
- const calculatedTrend = React110__default.useMemo(() => {
34753
+ const calculatedTrend = React109__default.useMemo(() => {
34778
34754
  if (manualTrend !== void 0) return manualTrend;
34779
34755
  if (previousValue === void 0 || currentValue === void 0)
34780
34756
  return void 0;
@@ -35829,7 +35805,7 @@ var init_Timeline = __esm({
35829
35805
  }) => {
35830
35806
  const { t } = useTranslate();
35831
35807
  const entityData = Array.isArray(entity) ? entity : [];
35832
- const items = React110__default.useMemo(() => {
35808
+ const items = React109__default.useMemo(() => {
35833
35809
  if (propItems) return propItems;
35834
35810
  if (entityData.length === 0) return [];
35835
35811
  return entityData.map((record, idx) => {
@@ -35986,7 +35962,7 @@ var init_TimerDisplay = __esm({
35986
35962
  }
35987
35963
  });
35988
35964
  function extractToastProps(children) {
35989
- if (!React110__default.isValidElement(children)) {
35965
+ if (!React109__default.isValidElement(children)) {
35990
35966
  if (typeof children === "string") {
35991
35967
  return { message: children };
35992
35968
  }
@@ -36024,7 +36000,7 @@ var init_ToastSlot = __esm({
36024
36000
  eventBus.emit("UI:CLOSE");
36025
36001
  };
36026
36002
  if (!isVisible) return null;
36027
- const isCustomContent = React110__default.isValidElement(children) && !message;
36003
+ const isCustomContent = React109__default.isValidElement(children) && !message;
36028
36004
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
36029
36005
  Toast,
36030
36006
  {
@@ -36293,7 +36269,7 @@ var init_WizardContainer = __esm({
36293
36269
  const isCompleted = index < currentStep;
36294
36270
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
36295
36271
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
36296
- return /* @__PURE__ */ jsxs(React110__default.Fragment, { children: [
36272
+ return /* @__PURE__ */ jsxs(React109__default.Fragment, { children: [
36297
36273
  /* @__PURE__ */ jsx(
36298
36274
  Button,
36299
36275
  {
@@ -36743,12 +36719,12 @@ var init_XPBar = __esm({
36743
36719
  }
36744
36720
  });
36745
36721
  function lazyThree(name, loader) {
36746
- const Lazy = React110__default.lazy(() => loader().then((m) => ({ default: m[name] })));
36722
+ const Lazy = React109__default.lazy(() => loader().then((m) => ({ default: m[name] })));
36747
36723
  function ThreeWrapper(props) {
36748
- return React110__default.createElement(
36749
- React110__default.Suspense,
36724
+ return React109__default.createElement(
36725
+ React109__default.Suspense,
36750
36726
  { fallback: null },
36751
- React110__default.createElement(Lazy, props)
36727
+ React109__default.createElement(Lazy, props)
36752
36728
  );
36753
36729
  }
36754
36730
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -37236,7 +37212,7 @@ function SuspenseConfigProvider({
37236
37212
  config,
37237
37213
  children
37238
37214
  }) {
37239
- return React110__default.createElement(
37215
+ return React109__default.createElement(
37240
37216
  SuspenseConfigContext.Provider,
37241
37217
  { value: config },
37242
37218
  children
@@ -37719,7 +37695,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
37719
37695
  const key = `${parentId}-${index}-trait:${traitName}`;
37720
37696
  return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
37721
37697
  }
37722
- return /* @__PURE__ */ jsx(React110__default.Fragment, { children: child }, `${parentId}-${index}`);
37698
+ return /* @__PURE__ */ jsx(React109__default.Fragment, { children: child }, `${parentId}-${index}`);
37723
37699
  }
37724
37700
  if (!child || typeof child !== "object") return null;
37725
37701
  const childId = `${parentId}-${index}`;
@@ -37756,14 +37732,14 @@ function isPatternConfig(value) {
37756
37732
  if (value === null || value === void 0) return false;
37757
37733
  if (typeof value !== "object") return false;
37758
37734
  if (Array.isArray(value)) return false;
37759
- if (React110__default.isValidElement(value)) return false;
37735
+ if (React109__default.isValidElement(value)) return false;
37760
37736
  if (value instanceof Date) return false;
37761
37737
  if (typeof value === "function") return false;
37762
37738
  const record = value;
37763
37739
  return "type" in record && typeof record.type === "string";
37764
37740
  }
37765
37741
  function isPlainConfigObject(value) {
37766
- if (React110__default.isValidElement(value)) return false;
37742
+ if (React109__default.isValidElement(value)) return false;
37767
37743
  if (value instanceof Date) return false;
37768
37744
  const proto = Object.getPrototypeOf(value);
37769
37745
  return proto === Object.prototype || proto === null;
@@ -38206,7 +38182,7 @@ var FormSection = ({
38206
38182
  columns = 1,
38207
38183
  className
38208
38184
  }) => {
38209
- const [collapsed, setCollapsed] = React110__default.useState(defaultCollapsed);
38185
+ const [collapsed, setCollapsed] = React109__default.useState(defaultCollapsed);
38210
38186
  const { t } = useTranslate();
38211
38187
  const eventBus = useEventBus();
38212
38188
  const gridClass = {
@@ -38214,7 +38190,7 @@ var FormSection = ({
38214
38190
  2: "grid-cols-1 md:grid-cols-2",
38215
38191
  3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
38216
38192
  }[columns];
38217
- React110__default.useCallback(() => {
38193
+ React109__default.useCallback(() => {
38218
38194
  if (collapsible) {
38219
38195
  setCollapsed((prev) => !prev);
38220
38196
  eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
@@ -38372,16 +38348,9 @@ init_types();
38372
38348
 
38373
38349
  // components/organisms/layout/index.ts
38374
38350
  init_SplitPane();
38375
- init_MasterDetail();
38376
38351
  init_DashboardGrid();
38377
38352
  init_TabbedContainer();
38378
38353
 
38379
- // components/organisms/game/index.ts
38380
- init_IsometricCanvas2();
38381
-
38382
- // components/organisms/game/PlatformerCanvas.tsx
38383
- init_PlatformerCanvas();
38384
-
38385
38354
  // components/organisms/game/index.ts
38386
38355
  init_CanvasEffect();
38387
38356
  init_GameAudioProvider();
@@ -38863,11 +38832,6 @@ function usePhysics2D(options = {}) {
38863
38832
 
38864
38833
  // components/organisms/game/index.ts
38865
38834
  init_isometric();
38866
- init_GameHud2();
38867
- init_GameMenu2();
38868
- init_GameOverScreen2();
38869
- init_InventoryPanel2();
38870
- init_DialogueBox2();
38871
38835
  init_BattleBoard();
38872
38836
  init_UncontrolledBattleBoard();
38873
38837
  init_useBattleState();
@@ -39090,9 +39054,6 @@ init_SimulationControls();
39090
39054
  init_SimulationGraph();
39091
39055
  init_presets();
39092
39056
 
39093
- // components/organisms/game/CombatLog.tsx
39094
- init_CombatLog();
39095
-
39096
39057
  // components/organisms/game/types/game.ts
39097
39058
  function createInitialGameState(width, height, units, defaultTerrain = "floorStone") {
39098
39059
  const board = Array.from(
@@ -39307,11 +39268,6 @@ init_CodeViewer();
39307
39268
 
39308
39269
  // components/organisms/debug/index.ts
39309
39270
  init_RuntimeDebugger2();
39310
- init_useDebugData();
39311
- init_VerificationTab();
39312
- init_TransitionTimeline();
39313
- init_ServerBridgeTab();
39314
- init_EventDispatcherTab();
39315
39271
 
39316
39272
  // components/organisms/HeroOrganism.tsx
39317
39273
  init_cn();