@almadar/ui 5.43.0 → 5.45.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.
@@ -31854,13 +31854,13 @@ var init_MapView = __esm({
31854
31854
  shadowSize: [41, 41]
31855
31855
  });
31856
31856
  L.Marker.prototype.options.icon = defaultIcon;
31857
- const { useEffect: useEffect79, useRef: useRef71, useCallback: useCallback118, useState: useState115 } = React91__namespace.default;
31857
+ const { useEffect: useEffect78, useRef: useRef70, useCallback: useCallback118, useState: useState115 } = React91__namespace.default;
31858
31858
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
31859
31859
  const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
31860
31860
  function MapUpdater({ centerLat, centerLng, zoom }) {
31861
31861
  const map = useMap();
31862
- const prevRef = useRef71({ centerLat, centerLng, zoom });
31863
- useEffect79(() => {
31862
+ const prevRef = useRef70({ centerLat, centerLng, zoom });
31863
+ useEffect78(() => {
31864
31864
  const prev = prevRef.current;
31865
31865
  if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
31866
31866
  map.setView([centerLat, centerLng], zoom);
@@ -31871,7 +31871,7 @@ var init_MapView = __esm({
31871
31871
  }
31872
31872
  function MapClickHandler({ onMapClick }) {
31873
31873
  const map = useMap();
31874
- useEffect79(() => {
31874
+ useEffect78(() => {
31875
31875
  if (!onMapClick) return;
31876
31876
  const handler = (e) => {
31877
31877
  onMapClick(e.latlng.lat, e.latlng.lng);
@@ -36908,7 +36908,7 @@ var init_RichBlockEditor = __esm({
36908
36908
  "border-b border-border bg-muted/30 px-2 py-2"
36909
36909
  ),
36910
36910
  children: TOOLBAR_ENTRIES.map((entry) => {
36911
- const Icon3 = entry.icon;
36911
+ const Icon2 = entry.icon;
36912
36912
  const entryLabel = t(entry.labelKey);
36913
36913
  return /* @__PURE__ */ jsxRuntime.jsxs(
36914
36914
  Button,
@@ -36920,7 +36920,7 @@ var init_RichBlockEditor = __esm({
36920
36920
  title: entryLabel,
36921
36921
  onClick: () => handleAppend(entry.type),
36922
36922
  children: [
36923
- /* @__PURE__ */ jsxRuntime.jsx(Icon3, { size: 14 }),
36923
+ /* @__PURE__ */ jsxRuntime.jsx(Icon2, { size: 14 }),
36924
36924
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { as: "span", variant: "caption", className: "ml-1 hidden text-xs sm:inline", children: entryLabel })
36925
36925
  ]
36926
36926
  },
@@ -47580,133 +47580,6 @@ var init_SimulationCanvas = __esm({
47580
47580
  SimulationCanvas.displayName = "SimulationCanvas";
47581
47581
  }
47582
47582
  });
47583
- function SimulationControls({
47584
- running,
47585
- speed,
47586
- parameters,
47587
- onPlay,
47588
- onPause,
47589
- onStep,
47590
- onReset,
47591
- onSpeedChange,
47592
- onParameterChange,
47593
- className
47594
- }) {
47595
- return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "md", className, children: [
47596
- /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "center", children: [
47597
- running ? /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", variant: "secondary", onClick: onPause, icon: LucideIcons2.Pause, children: "Pause" }) : /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", variant: "primary", onClick: onPlay, icon: LucideIcons2.Play, children: "Play" }),
47598
- /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", variant: "ghost", onClick: onStep, icon: LucideIcons2.SkipForward, disabled: running, children: "Step" }),
47599
- /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", variant: "ghost", onClick: onReset, icon: LucideIcons2.RotateCcw, children: "Reset" })
47600
- ] }),
47601
- /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
47602
- /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", color: "muted", children: [
47603
- "Speed: ",
47604
- speed.toFixed(1),
47605
- "x"
47606
- ] }),
47607
- /* @__PURE__ */ jsxRuntime.jsx(
47608
- "input",
47609
- {
47610
- type: "range",
47611
- min: 0.1,
47612
- max: 5,
47613
- step: 0.1,
47614
- value: speed,
47615
- onChange: (e) => onSpeedChange(parseFloat(e.target.value)),
47616
- className: "w-full"
47617
- }
47618
- )
47619
- ] }),
47620
- Object.entries(parameters).map(([name, param]) => /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
47621
- /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "caption", color: "muted", children: [
47622
- param.label,
47623
- ": ",
47624
- param.value.toFixed(2)
47625
- ] }),
47626
- /* @__PURE__ */ jsxRuntime.jsx(
47627
- "input",
47628
- {
47629
- type: "range",
47630
- min: param.min,
47631
- max: param.max,
47632
- step: param.step,
47633
- value: param.value,
47634
- onChange: (e) => onParameterChange(name, parseFloat(e.target.value)),
47635
- className: "w-full"
47636
- }
47637
- )
47638
- ] }, name))
47639
- ] });
47640
- }
47641
- var init_SimulationControls = __esm({
47642
- "components/game/organisms/physics-sim/SimulationControls.tsx"() {
47643
- init_atoms2();
47644
- SimulationControls.displayName = "SimulationControls";
47645
- }
47646
- });
47647
- function SimulationGraph({
47648
- label,
47649
- unit,
47650
- data,
47651
- maxPoints = 200,
47652
- width = 300,
47653
- height = 120,
47654
- color = "#e94560",
47655
- className
47656
- }) {
47657
- const canvasRef = React91.useRef(null);
47658
- const visibleData = data.slice(-maxPoints);
47659
- React91.useEffect(() => {
47660
- const canvas = canvasRef.current;
47661
- if (!canvas || visibleData.length < 2) return;
47662
- const ctx = canvas.getContext("2d");
47663
- if (!ctx) return;
47664
- ctx.clearRect(0, 0, width, height);
47665
- ctx.fillStyle = "#0f0f23";
47666
- ctx.fillRect(0, 0, width, height);
47667
- ctx.strokeStyle = "#1a1a3e";
47668
- ctx.lineWidth = 0.5;
47669
- for (let i = 0; i < 5; i++) {
47670
- const y = height / 5 * i;
47671
- ctx.beginPath();
47672
- ctx.moveTo(0, y);
47673
- ctx.lineTo(width, y);
47674
- ctx.stroke();
47675
- }
47676
- let minVal = Infinity;
47677
- let maxVal = -Infinity;
47678
- for (const pt of visibleData) {
47679
- if (pt.value < minVal) minVal = pt.value;
47680
- if (pt.value > maxVal) maxVal = pt.value;
47681
- }
47682
- const range = maxVal - minVal || 1;
47683
- const pad = height * 0.1;
47684
- ctx.beginPath();
47685
- ctx.strokeStyle = color;
47686
- ctx.lineWidth = 2;
47687
- for (let i = 0; i < visibleData.length; i++) {
47688
- const x = i / (maxPoints - 1) * width;
47689
- const y = pad + (maxVal - visibleData[i].value) / range * (height - 2 * pad);
47690
- if (i === 0) ctx.moveTo(x, y);
47691
- else ctx.lineTo(x, y);
47692
- }
47693
- ctx.stroke();
47694
- const last = visibleData[visibleData.length - 1];
47695
- ctx.fillStyle = color;
47696
- ctx.font = "12px monospace";
47697
- ctx.fillText(`${last.value.toFixed(2)} ${unit}`, width - 80, 16);
47698
- }, [visibleData, width, height, color, unit, maxPoints]);
47699
- return /* @__PURE__ */ jsxRuntime.jsx(Card, { padding: "sm", className, children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", children: [
47700
- /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", weight: "bold", children: label }),
47701
- /* @__PURE__ */ jsxRuntime.jsx("canvas", { ref: canvasRef, width, height, className: "rounded" })
47702
- ] }) });
47703
- }
47704
- var init_SimulationGraph = __esm({
47705
- "components/game/organisms/physics-sim/SimulationGraph.tsx"() {
47706
- init_atoms2();
47707
- SimulationGraph.displayName = "SimulationGraph";
47708
- }
47709
- });
47710
47583
  function SimulatorBoard({
47711
47584
  entity,
47712
47585
  completeEvent = "PUZZLE_COMPLETE",
@@ -47977,7 +47850,7 @@ var init_StatCard = __esm({
47977
47850
  isLoading: externalLoading,
47978
47851
  error: externalError
47979
47852
  }) => {
47980
- const Icon3 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
47853
+ const Icon2 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
47981
47854
  const labelToUse = propLabel ?? propTitle;
47982
47855
  const eventBus = useEventBus();
47983
47856
  const { t } = hooks.useTranslate();
@@ -48120,7 +47993,7 @@ var init_StatCard = __esm({
48120
47993
  subtitle && !calculatedTrend && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", color: "secondary", children: subtitle })
48121
47994
  ] }),
48122
47995
  /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "xs", align: "end", children: [
48123
- Icon3 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn("p-3", iconBg), children: /* @__PURE__ */ jsxRuntime.jsx(Icon3, { className: cn("h-6 w-6", iconColor) }) }),
47996
+ Icon2 && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn("p-3", iconBg), children: /* @__PURE__ */ jsxRuntime.jsx(Icon2, { className: cn("h-6 w-6", iconColor) }) }),
48124
47997
  sparklineData && sparklineData.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(Sparkline, { data: sparklineData, color: "auto" })
48125
47998
  ] })
48126
47999
  ] }),
@@ -49923,7 +49796,6 @@ var init_component_registry_generated = __esm({
49923
49796
  init_Navigation();
49924
49797
  init_NegotiatorBoard();
49925
49798
  init_NumberStepper();
49926
- init_ObjectRulePanel();
49927
49799
  init_OptionConstraintGroup();
49928
49800
  init_OrbitalVisualization();
49929
49801
  init_Overlay();
@@ -49954,7 +49826,6 @@ var init_component_registry_generated = __esm({
49954
49826
  init_ResourceBar();
49955
49827
  init_ResourceCounter();
49956
49828
  init_RichBlockEditor();
49957
- init_RuleEditor();
49958
49829
  init_RuntimeDebugger2();
49959
49830
  init_ScaledDiagram();
49960
49831
  init_ScoreBoard();
@@ -49974,8 +49845,6 @@ var init_component_registry_generated = __esm({
49974
49845
  init_SignaturePad();
49975
49846
  init_SimpleGrid();
49976
49847
  init_SimulationCanvas();
49977
- init_SimulationControls();
49978
- init_SimulationGraph();
49979
49848
  init_SimulatorBoard();
49980
49849
  init_Skeleton();
49981
49850
  init_SocialProof();
@@ -49993,7 +49862,6 @@ var init_component_registry_generated = __esm({
49993
49862
  init_StateArchitectBoard();
49994
49863
  init_StateIndicator();
49995
49864
  init_StateMachineView();
49996
- init_StateNode();
49997
49865
  init_StatsGrid();
49998
49866
  init_StatsOrganism();
49999
49867
  init_StatusDot();
@@ -50032,8 +49900,6 @@ var init_component_registry_generated = __esm({
50032
49900
  init_Tooltip();
50033
49901
  init_TraitFrame();
50034
49902
  init_TraitSlot();
50035
- init_TraitStateViewer();
50036
- init_TransitionArrow();
50037
49903
  init_TrendIndicator();
50038
49904
  init_TurnIndicator();
50039
49905
  init_TurnPanel();
@@ -50043,7 +49909,6 @@ var init_component_registry_generated = __esm({
50043
49909
  init_UncontrolledBattleBoard();
50044
49910
  init_UnitCommandBar();
50045
49911
  init_UploadDropZone();
50046
- init_VariablePanel();
50047
49912
  init_VersionDiff();
50048
49913
  init_ViolationAlert();
50049
49914
  init_VoteStack();
@@ -50253,7 +50118,6 @@ var init_component_registry_generated = __esm({
50253
50118
  "Navigation": Navigation,
50254
50119
  "NegotiatorBoard": NegotiatorBoard,
50255
50120
  "NumberStepper": NumberStepper,
50256
- "ObjectRulePanel": ObjectRulePanel,
50257
50121
  "OptionConstraintGroup": OptionConstraintGroup,
50258
50122
  "OrbitalVisualization": OrbitalVisualization,
50259
50123
  "Overlay": Overlay,
@@ -50284,7 +50148,6 @@ var init_component_registry_generated = __esm({
50284
50148
  "ResourceBar": ResourceBar,
50285
50149
  "ResourceCounter": ResourceCounter,
50286
50150
  "RichBlockEditor": RichBlockEditor,
50287
- "RuleEditor": RuleEditor,
50288
50151
  "RuntimeDebugger": RuntimeDebugger,
50289
50152
  "ScaledDiagram": ScaledDiagram,
50290
50153
  "ScoreBoard": ScoreBoard,
@@ -50304,8 +50167,6 @@ var init_component_registry_generated = __esm({
50304
50167
  "SignaturePad": SignaturePad,
50305
50168
  "SimpleGrid": SimpleGrid,
50306
50169
  "SimulationCanvas": SimulationCanvas,
50307
- "SimulationControls": SimulationControls,
50308
- "SimulationGraph": SimulationGraph,
50309
50170
  "SimulatorBoard": SimulatorBoard,
50310
50171
  "Skeleton": Skeleton,
50311
50172
  "SocialProof": SocialProof,
@@ -50326,7 +50187,6 @@ var init_component_registry_generated = __esm({
50326
50187
  "StateArchitectBoard": StateArchitectBoard,
50327
50188
  "StateIndicator": StateIndicator,
50328
50189
  "StateMachineView": StateMachineView,
50329
- "StateNode": StateNode2,
50330
50190
  "StatsGrid": StatsGrid,
50331
50191
  "StatsOrganism": StatsOrganism,
50332
50192
  "StatusDot": StatusDot,
@@ -50365,8 +50225,6 @@ var init_component_registry_generated = __esm({
50365
50225
  "Tooltip": Tooltip,
50366
50226
  "TraitFrame": TraitFrame,
50367
50227
  "TraitSlot": TraitSlot,
50368
- "TraitStateViewer": TraitStateViewer,
50369
- "TransitionArrow": TransitionArrow,
50370
50228
  "TrendIndicator": TrendIndicator,
50371
50229
  "TurnIndicator": TurnIndicator,
50372
50230
  "TurnPanel": TurnPanel,
@@ -50377,7 +50235,6 @@ var init_component_registry_generated = __esm({
50377
50235
  "UnitCommandBar": UnitCommandBar,
50378
50236
  "UploadDropZone": UploadDropZone,
50379
50237
  "VStack": VStack,
50380
- "VariablePanel": VariablePanel,
50381
50238
  "VersionDiff": VersionDiff,
50382
50239
  "ViolationAlert": ViolationAlert,
50383
50240
  "VoteStack": VoteStack,
package/dist/avl/index.js CHANGED
@@ -7,7 +7,7 @@ import ELK from 'elkjs/lib/elk.bundled.js';
7
7
  import { MarkerType, useReactFlow, Handle, Position, getBezierPath, EdgeLabelRenderer, useNodeId, ReactFlowProvider, BaseEdge, useNodesState, useEdgesState, ReactFlow, Controls, Background, BackgroundVariant } from '@xyflow/react';
8
8
  import { useTranslate, useEventBus as useEventBus$1 } from '@almadar/ui/hooks';
9
9
  import * as LucideIcons2 from 'lucide-react';
10
- import { Loader2, X, Code, FileText, WrapText, Check, Copy, Lightbulb, CheckCircle, List, Printer, ChevronRight, ChevronLeft, GitBranch, Pencil, Eye, Plus, ArrowRight, Trash, RotateCcw, Play, Terminal, XCircle, AlertTriangle, Trash2, Link2, ZoomOut, ZoomIn, Download, Menu as Menu$1, Package, Calendar, MoreHorizontal, Image as Image$1, Upload, ArrowLeft, HelpCircle, PauseCircle, Search, Type, Heading1, Heading2, Heading3, ListOrdered, Quote, Minus, Eraser, TrendingUp, TrendingDown, AlertCircle, Circle, Clock, CheckCircle2, Pause, SkipForward, Bug, Send, ChevronUp, ChevronDown, Wrench, Tag, User, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
10
+ import { Loader2, X, Code, FileText, WrapText, Check, Copy, Lightbulb, CheckCircle, List, Printer, ChevronRight, ChevronLeft, GitBranch, Pencil, Eye, Plus, ArrowRight, Trash, RotateCcw, Play, Terminal, XCircle, AlertTriangle, Trash2, Link2, ZoomOut, ZoomIn, Download, Menu as Menu$1, Package, Calendar, MoreHorizontal, Image as Image$1, Upload, ArrowLeft, HelpCircle, PauseCircle, Search, Type, Heading1, Heading2, Heading3, ListOrdered, Quote, Minus, Eraser, TrendingUp, TrendingDown, AlertCircle, Circle, Clock, CheckCircle2, Bug, Send, ChevronUp, ChevronDown, Wrench, Tag, User, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
11
11
  import { createPortal } from 'react-dom';
12
12
  import { evaluate, createMinimalContext } from '@almadar/evaluator';
13
13
  import { UISlotProvider, useUISlots } from '@almadar/ui/context';
@@ -31808,13 +31808,13 @@ var init_MapView = __esm({
31808
31808
  shadowSize: [41, 41]
31809
31809
  });
31810
31810
  L.Marker.prototype.options.icon = defaultIcon;
31811
- const { useEffect: useEffect79, useRef: useRef71, useCallback: useCallback118, useState: useState115 } = React91__default;
31811
+ const { useEffect: useEffect78, useRef: useRef70, useCallback: useCallback118, useState: useState115 } = React91__default;
31812
31812
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
31813
31813
  const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
31814
31814
  function MapUpdater({ centerLat, centerLng, zoom }) {
31815
31815
  const map = useMap();
31816
- const prevRef = useRef71({ centerLat, centerLng, zoom });
31817
- useEffect79(() => {
31816
+ const prevRef = useRef70({ centerLat, centerLng, zoom });
31817
+ useEffect78(() => {
31818
31818
  const prev = prevRef.current;
31819
31819
  if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
31820
31820
  map.setView([centerLat, centerLng], zoom);
@@ -31825,7 +31825,7 @@ var init_MapView = __esm({
31825
31825
  }
31826
31826
  function MapClickHandler({ onMapClick }) {
31827
31827
  const map = useMap();
31828
- useEffect79(() => {
31828
+ useEffect78(() => {
31829
31829
  if (!onMapClick) return;
31830
31830
  const handler = (e) => {
31831
31831
  onMapClick(e.latlng.lat, e.latlng.lng);
@@ -36862,7 +36862,7 @@ var init_RichBlockEditor = __esm({
36862
36862
  "border-b border-border bg-muted/30 px-2 py-2"
36863
36863
  ),
36864
36864
  children: TOOLBAR_ENTRIES.map((entry) => {
36865
- const Icon3 = entry.icon;
36865
+ const Icon2 = entry.icon;
36866
36866
  const entryLabel = t(entry.labelKey);
36867
36867
  return /* @__PURE__ */ jsxs(
36868
36868
  Button,
@@ -36874,7 +36874,7 @@ var init_RichBlockEditor = __esm({
36874
36874
  title: entryLabel,
36875
36875
  onClick: () => handleAppend(entry.type),
36876
36876
  children: [
36877
- /* @__PURE__ */ jsx(Icon3, { size: 14 }),
36877
+ /* @__PURE__ */ jsx(Icon2, { size: 14 }),
36878
36878
  /* @__PURE__ */ jsx(Typography, { as: "span", variant: "caption", className: "ml-1 hidden text-xs sm:inline", children: entryLabel })
36879
36879
  ]
36880
36880
  },
@@ -47534,133 +47534,6 @@ var init_SimulationCanvas = __esm({
47534
47534
  SimulationCanvas.displayName = "SimulationCanvas";
47535
47535
  }
47536
47536
  });
47537
- function SimulationControls({
47538
- running,
47539
- speed,
47540
- parameters,
47541
- onPlay,
47542
- onPause,
47543
- onStep,
47544
- onReset,
47545
- onSpeedChange,
47546
- onParameterChange,
47547
- className
47548
- }) {
47549
- return /* @__PURE__ */ jsxs(VStack, { gap: "md", className, children: [
47550
- /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", children: [
47551
- running ? /* @__PURE__ */ jsx(Button, { size: "sm", variant: "secondary", onClick: onPause, icon: Pause, children: "Pause" }) : /* @__PURE__ */ jsx(Button, { size: "sm", variant: "primary", onClick: onPlay, icon: Play, children: "Play" }),
47552
- /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: onStep, icon: SkipForward, disabled: running, children: "Step" }),
47553
- /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: onReset, icon: RotateCcw, children: "Reset" })
47554
- ] }),
47555
- /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
47556
- /* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "muted", children: [
47557
- "Speed: ",
47558
- speed.toFixed(1),
47559
- "x"
47560
- ] }),
47561
- /* @__PURE__ */ jsx(
47562
- "input",
47563
- {
47564
- type: "range",
47565
- min: 0.1,
47566
- max: 5,
47567
- step: 0.1,
47568
- value: speed,
47569
- onChange: (e) => onSpeedChange(parseFloat(e.target.value)),
47570
- className: "w-full"
47571
- }
47572
- )
47573
- ] }),
47574
- Object.entries(parameters).map(([name, param]) => /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
47575
- /* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "muted", children: [
47576
- param.label,
47577
- ": ",
47578
- param.value.toFixed(2)
47579
- ] }),
47580
- /* @__PURE__ */ jsx(
47581
- "input",
47582
- {
47583
- type: "range",
47584
- min: param.min,
47585
- max: param.max,
47586
- step: param.step,
47587
- value: param.value,
47588
- onChange: (e) => onParameterChange(name, parseFloat(e.target.value)),
47589
- className: "w-full"
47590
- }
47591
- )
47592
- ] }, name))
47593
- ] });
47594
- }
47595
- var init_SimulationControls = __esm({
47596
- "components/game/organisms/physics-sim/SimulationControls.tsx"() {
47597
- init_atoms2();
47598
- SimulationControls.displayName = "SimulationControls";
47599
- }
47600
- });
47601
- function SimulationGraph({
47602
- label,
47603
- unit,
47604
- data,
47605
- maxPoints = 200,
47606
- width = 300,
47607
- height = 120,
47608
- color = "#e94560",
47609
- className
47610
- }) {
47611
- const canvasRef = useRef(null);
47612
- const visibleData = data.slice(-maxPoints);
47613
- useEffect(() => {
47614
- const canvas = canvasRef.current;
47615
- if (!canvas || visibleData.length < 2) return;
47616
- const ctx = canvas.getContext("2d");
47617
- if (!ctx) return;
47618
- ctx.clearRect(0, 0, width, height);
47619
- ctx.fillStyle = "#0f0f23";
47620
- ctx.fillRect(0, 0, width, height);
47621
- ctx.strokeStyle = "#1a1a3e";
47622
- ctx.lineWidth = 0.5;
47623
- for (let i = 0; i < 5; i++) {
47624
- const y = height / 5 * i;
47625
- ctx.beginPath();
47626
- ctx.moveTo(0, y);
47627
- ctx.lineTo(width, y);
47628
- ctx.stroke();
47629
- }
47630
- let minVal = Infinity;
47631
- let maxVal = -Infinity;
47632
- for (const pt of visibleData) {
47633
- if (pt.value < minVal) minVal = pt.value;
47634
- if (pt.value > maxVal) maxVal = pt.value;
47635
- }
47636
- const range = maxVal - minVal || 1;
47637
- const pad = height * 0.1;
47638
- ctx.beginPath();
47639
- ctx.strokeStyle = color;
47640
- ctx.lineWidth = 2;
47641
- for (let i = 0; i < visibleData.length; i++) {
47642
- const x = i / (maxPoints - 1) * width;
47643
- const y = pad + (maxVal - visibleData[i].value) / range * (height - 2 * pad);
47644
- if (i === 0) ctx.moveTo(x, y);
47645
- else ctx.lineTo(x, y);
47646
- }
47647
- ctx.stroke();
47648
- const last = visibleData[visibleData.length - 1];
47649
- ctx.fillStyle = color;
47650
- ctx.font = "12px monospace";
47651
- ctx.fillText(`${last.value.toFixed(2)} ${unit}`, width - 80, 16);
47652
- }, [visibleData, width, height, color, unit, maxPoints]);
47653
- return /* @__PURE__ */ jsx(Card, { padding: "sm", className, children: /* @__PURE__ */ jsxs(VStack, { gap: "xs", children: [
47654
- /* @__PURE__ */ jsx(Typography, { variant: "caption", weight: "bold", children: label }),
47655
- /* @__PURE__ */ jsx("canvas", { ref: canvasRef, width, height, className: "rounded" })
47656
- ] }) });
47657
- }
47658
- var init_SimulationGraph = __esm({
47659
- "components/game/organisms/physics-sim/SimulationGraph.tsx"() {
47660
- init_atoms2();
47661
- SimulationGraph.displayName = "SimulationGraph";
47662
- }
47663
- });
47664
47537
  function SimulatorBoard({
47665
47538
  entity,
47666
47539
  completeEvent = "PUZZLE_COMPLETE",
@@ -47931,7 +47804,7 @@ var init_StatCard = __esm({
47931
47804
  isLoading: externalLoading,
47932
47805
  error: externalError
47933
47806
  }) => {
47934
- const Icon3 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
47807
+ const Icon2 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
47935
47808
  const labelToUse = propLabel ?? propTitle;
47936
47809
  const eventBus = useEventBus();
47937
47810
  const { t } = useTranslate();
@@ -48074,7 +47947,7 @@ var init_StatCard = __esm({
48074
47947
  subtitle && !calculatedTrend && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "secondary", children: subtitle })
48075
47948
  ] }),
48076
47949
  /* @__PURE__ */ jsxs(VStack, { gap: "xs", align: "end", children: [
48077
- Icon3 && /* @__PURE__ */ jsx(Box, { className: cn("p-3", iconBg), children: /* @__PURE__ */ jsx(Icon3, { className: cn("h-6 w-6", iconColor) }) }),
47950
+ Icon2 && /* @__PURE__ */ jsx(Box, { className: cn("p-3", iconBg), children: /* @__PURE__ */ jsx(Icon2, { className: cn("h-6 w-6", iconColor) }) }),
48078
47951
  sparklineData && sparklineData.length > 1 && /* @__PURE__ */ jsx(Sparkline, { data: sparklineData, color: "auto" })
48079
47952
  ] })
48080
47953
  ] }),
@@ -49877,7 +49750,6 @@ var init_component_registry_generated = __esm({
49877
49750
  init_Navigation();
49878
49751
  init_NegotiatorBoard();
49879
49752
  init_NumberStepper();
49880
- init_ObjectRulePanel();
49881
49753
  init_OptionConstraintGroup();
49882
49754
  init_OrbitalVisualization();
49883
49755
  init_Overlay();
@@ -49908,7 +49780,6 @@ var init_component_registry_generated = __esm({
49908
49780
  init_ResourceBar();
49909
49781
  init_ResourceCounter();
49910
49782
  init_RichBlockEditor();
49911
- init_RuleEditor();
49912
49783
  init_RuntimeDebugger2();
49913
49784
  init_ScaledDiagram();
49914
49785
  init_ScoreBoard();
@@ -49928,8 +49799,6 @@ var init_component_registry_generated = __esm({
49928
49799
  init_SignaturePad();
49929
49800
  init_SimpleGrid();
49930
49801
  init_SimulationCanvas();
49931
- init_SimulationControls();
49932
- init_SimulationGraph();
49933
49802
  init_SimulatorBoard();
49934
49803
  init_Skeleton();
49935
49804
  init_SocialProof();
@@ -49947,7 +49816,6 @@ var init_component_registry_generated = __esm({
49947
49816
  init_StateArchitectBoard();
49948
49817
  init_StateIndicator();
49949
49818
  init_StateMachineView();
49950
- init_StateNode();
49951
49819
  init_StatsGrid();
49952
49820
  init_StatsOrganism();
49953
49821
  init_StatusDot();
@@ -49986,8 +49854,6 @@ var init_component_registry_generated = __esm({
49986
49854
  init_Tooltip();
49987
49855
  init_TraitFrame();
49988
49856
  init_TraitSlot();
49989
- init_TraitStateViewer();
49990
- init_TransitionArrow();
49991
49857
  init_TrendIndicator();
49992
49858
  init_TurnIndicator();
49993
49859
  init_TurnPanel();
@@ -49997,7 +49863,6 @@ var init_component_registry_generated = __esm({
49997
49863
  init_UncontrolledBattleBoard();
49998
49864
  init_UnitCommandBar();
49999
49865
  init_UploadDropZone();
50000
- init_VariablePanel();
50001
49866
  init_VersionDiff();
50002
49867
  init_ViolationAlert();
50003
49868
  init_VoteStack();
@@ -50207,7 +50072,6 @@ var init_component_registry_generated = __esm({
50207
50072
  "Navigation": Navigation,
50208
50073
  "NegotiatorBoard": NegotiatorBoard,
50209
50074
  "NumberStepper": NumberStepper,
50210
- "ObjectRulePanel": ObjectRulePanel,
50211
50075
  "OptionConstraintGroup": OptionConstraintGroup,
50212
50076
  "OrbitalVisualization": OrbitalVisualization,
50213
50077
  "Overlay": Overlay,
@@ -50238,7 +50102,6 @@ var init_component_registry_generated = __esm({
50238
50102
  "ResourceBar": ResourceBar,
50239
50103
  "ResourceCounter": ResourceCounter,
50240
50104
  "RichBlockEditor": RichBlockEditor,
50241
- "RuleEditor": RuleEditor,
50242
50105
  "RuntimeDebugger": RuntimeDebugger,
50243
50106
  "ScaledDiagram": ScaledDiagram,
50244
50107
  "ScoreBoard": ScoreBoard,
@@ -50258,8 +50121,6 @@ var init_component_registry_generated = __esm({
50258
50121
  "SignaturePad": SignaturePad,
50259
50122
  "SimpleGrid": SimpleGrid,
50260
50123
  "SimulationCanvas": SimulationCanvas,
50261
- "SimulationControls": SimulationControls,
50262
- "SimulationGraph": SimulationGraph,
50263
50124
  "SimulatorBoard": SimulatorBoard,
50264
50125
  "Skeleton": Skeleton,
50265
50126
  "SocialProof": SocialProof,
@@ -50280,7 +50141,6 @@ var init_component_registry_generated = __esm({
50280
50141
  "StateArchitectBoard": StateArchitectBoard,
50281
50142
  "StateIndicator": StateIndicator,
50282
50143
  "StateMachineView": StateMachineView,
50283
- "StateNode": StateNode2,
50284
50144
  "StatsGrid": StatsGrid,
50285
50145
  "StatsOrganism": StatsOrganism,
50286
50146
  "StatusDot": StatusDot,
@@ -50319,8 +50179,6 @@ var init_component_registry_generated = __esm({
50319
50179
  "Tooltip": Tooltip,
50320
50180
  "TraitFrame": TraitFrame,
50321
50181
  "TraitSlot": TraitSlot,
50322
- "TraitStateViewer": TraitStateViewer,
50323
- "TransitionArrow": TransitionArrow,
50324
50182
  "TrendIndicator": TrendIndicator,
50325
50183
  "TurnIndicator": TurnIndicator,
50326
50184
  "TurnPanel": TurnPanel,
@@ -50331,7 +50189,6 @@ var init_component_registry_generated = __esm({
50331
50189
  "UnitCommandBar": UnitCommandBar,
50332
50190
  "UploadDropZone": UploadDropZone,
50333
50191
  "VStack": VStack,
50334
- "VariablePanel": VariablePanel,
50335
50192
  "VersionDiff": VersionDiff,
50336
50193
  "ViolationAlert": ViolationAlert,
50337
50194
  "VoteStack": VoteStack,