@almadar/ui 2.4.0 → 2.5.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.
- package/dist/{chunk-HWZL7IZG.js → chunk-FYYU3CHN.js} +491 -73
- package/dist/{chunk-DKQN5FVU.js → chunk-YLKXEXBP.js} +24 -24
- package/dist/components/index.d.ts +185 -27
- package/dist/components/index.js +200 -78
- package/dist/context/index.js +2 -2
- package/dist/providers/index.js +2 -2
- package/package.json +36 -33
package/dist/components/index.js
CHANGED
|
@@ -2,9 +2,9 @@ import { useAuthContext } from '../chunk-42WRQA7T.js';
|
|
|
2
2
|
export { ENTITY_EVENTS, useAgentChat, useAuthContext, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useEntities, useEntitiesByType, useEntity as useEntityById, useEntityMutations, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInput, useOrbitalHistory, useOrbitalMutations, usePhysics, usePlayer, usePreview, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useUIEvents, useUpdateEntity, useValidation } from '../chunk-42WRQA7T.js';
|
|
3
3
|
import { DEFAULT_CONFIG, renderStateMachineToDomData, parseContentSegments } from '../chunk-N6DJVKZ6.js';
|
|
4
4
|
import '../chunk-3HJHHULT.js';
|
|
5
|
-
import { VStack, HStack, Typography, Button, Icon, Box, Card, Avatar, Badge, SearchInput, Checkbox, Menu as Menu$1, Pagination, LoadingState, EmptyState, Modal, ErrorState, QuizBlock, CodeBlock, ScaledDiagram, MarkdownContent, Divider, ProgressBar, Stack, Select, Drawer, Toast, Tabs, Input, ThemeToggle, EntityDisplayEvents,
|
|
6
|
-
export { Accordion, Card2 as ActionCard, Alert, Avatar, Badge, Box, Breadcrumb, Button, ButtonGroup, CalendarGrid, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Center, ChartLegend, Checkbox, CodeBlock, ConditionalWrapper, Container, ControlButton, DataGrid, DataList, DataTable, DateRangeSelector, DayCell, DetailPanel, Divider, Drawer, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, FilterGroup, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormField, FormSectionHeader, GraphView, Grid, HStack, Heading, HealthBar, Icon, Input, InputGroup, Label, LawReferenceTooltip, LineChart, LoadingState, MarkdownContent, MasterDetail, Menu, Modal, Overlay, PageHeader, Pagination, Popover, ProgressBar, ProgressDots, QuizBlock, Radio, RelationSelect, RepeatableFormSection, ScaledDiagram, ScoreDisplay, SearchInput, Select, SidePanel, SimpleGrid, Skeleton, SlotContentRenderer, Spacer, Spinner, Sprite, Stack, StatCard, StateIndicator, Switch, Tabs, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Toast, Tooltip, Typography, UISlotComponent, UISlotRenderer, VStack, ViolationAlert, WizardNavigation, WizardProgress, drawSprite } from '../chunk-
|
|
7
|
-
import '../chunk-
|
|
5
|
+
import { VStack, HStack, Typography, Button, Icon, Box, Card, Avatar, Badge, SearchInput, Checkbox, Menu as Menu$1, Pagination, LoadingState, EmptyState, Modal, ErrorState, QuizBlock, CodeBlock, ScaledDiagram, MarkdownContent, Divider, ProgressBar, StatBadge, Stack, Select, Drawer, Toast, Tabs, Input, ThemeToggle, EntityDisplayEvents, StateIndicator, Container } from '../chunk-FYYU3CHN.js';
|
|
6
|
+
export { Accordion, ActionButtons, Card2 as ActionCard, Alert, Avatar, Badge, Box, Breadcrumb, Button, ButtonGroup, CalendarGrid, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Center, ChartLegend, Checkbox, CodeBlock, ConditionalWrapper, Container, ControlButton, DPad, DataGrid, DataList, DataTable, DateRangeSelector, DayCell, DetailPanel, Divider, Drawer, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, FilterGroup, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormField, FormSectionHeader, GraphView, Grid, HStack, Heading, HealthBar, Icon, Input, InputGroup, Label, LawReferenceTooltip, LineChart, LoadingState, MapView, MarkdownContent, MasterDetail, Menu, Modal, Overlay, PageHeader, Pagination, Popover, ProgressBar, ProgressDots, QuizBlock, Radio, RelationSelect, RepeatableFormSection, ScaledDiagram, ScoreDisplay, SearchInput, Select, SidePanel, SimpleGrid, Skeleton, SlotContentRenderer, Spacer, Spinner, Sprite, Stack, StatBadge, StatCard, StateIndicator, Switch, Tabs, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Toast, Tooltip, Typography, UISlotComponent, UISlotRenderer, VStack, ViolationAlert, WizardNavigation, WizardProgress, drawSprite } from '../chunk-FYYU3CHN.js';
|
|
7
|
+
import '../chunk-YLKXEXBP.js';
|
|
8
8
|
import { useTranslate } from '../chunk-GOZKH7QW.js';
|
|
9
9
|
export { EntityDataProvider, I18nProvider, createTranslate, entityDataKeys, parseQueryBinding, useEntity, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntitySuspense, useQuerySingleton, useTranslate } from '../chunk-GOZKH7QW.js';
|
|
10
10
|
import { useEventBus, useEventListener } from '../chunk-YXZM3WCF.js';
|
|
@@ -4598,6 +4598,193 @@ function IsometricCanvas({
|
|
|
4598
4598
|
}
|
|
4599
4599
|
IsometricCanvas.displayName = "IsometricCanvas";
|
|
4600
4600
|
var IsometricCanvas_default = IsometricCanvas;
|
|
4601
|
+
var PLATFORM_COLORS = {
|
|
4602
|
+
ground: "#4a7c59",
|
|
4603
|
+
platform: "#7c6b4a",
|
|
4604
|
+
hazard: "#c0392b",
|
|
4605
|
+
goal: "#f1c40f"
|
|
4606
|
+
};
|
|
4607
|
+
var PLAYER_COLOR = "#3498db";
|
|
4608
|
+
var PLAYER_EYE_COLOR = "#ffffff";
|
|
4609
|
+
var SKY_GRADIENT_TOP = "#1a1a2e";
|
|
4610
|
+
var SKY_GRADIENT_BOTTOM = "#16213e";
|
|
4611
|
+
var GRID_COLOR = "rgba(255, 255, 255, 0.03)";
|
|
4612
|
+
function PlatformerCanvas({
|
|
4613
|
+
player,
|
|
4614
|
+
platforms = [],
|
|
4615
|
+
worldWidth = 800,
|
|
4616
|
+
worldHeight = 400,
|
|
4617
|
+
canvasWidth = 800,
|
|
4618
|
+
canvasHeight = 400,
|
|
4619
|
+
followCamera = true,
|
|
4620
|
+
bgColor,
|
|
4621
|
+
leftEvent = "MOVE_LEFT",
|
|
4622
|
+
rightEvent = "MOVE_RIGHT",
|
|
4623
|
+
jumpEvent = "JUMP",
|
|
4624
|
+
stopEvent = "STOP",
|
|
4625
|
+
className,
|
|
4626
|
+
entity
|
|
4627
|
+
}) {
|
|
4628
|
+
const canvasRef = useRef(null);
|
|
4629
|
+
const eventBus = useEventBus();
|
|
4630
|
+
const keysRef = useRef(/* @__PURE__ */ new Set());
|
|
4631
|
+
const resolvedPlayer = player ?? {
|
|
4632
|
+
x: entity?.x ?? 50,
|
|
4633
|
+
y: entity?.y ?? 300,
|
|
4634
|
+
width: entity?.width ?? 24,
|
|
4635
|
+
height: entity?.height ?? 32,
|
|
4636
|
+
vx: entity?.vx ?? 0,
|
|
4637
|
+
vy: entity?.vy ?? 0,
|
|
4638
|
+
grounded: entity?.grounded ?? false,
|
|
4639
|
+
facingRight: entity?.facingRight ?? true
|
|
4640
|
+
};
|
|
4641
|
+
const handleKeyDown = useCallback((e) => {
|
|
4642
|
+
if (keysRef.current.has(e.code)) return;
|
|
4643
|
+
keysRef.current.add(e.code);
|
|
4644
|
+
switch (e.code) {
|
|
4645
|
+
case "ArrowLeft":
|
|
4646
|
+
case "KeyA":
|
|
4647
|
+
eventBus.emit(`UI:${leftEvent}`, { direction: -1 });
|
|
4648
|
+
break;
|
|
4649
|
+
case "ArrowRight":
|
|
4650
|
+
case "KeyD":
|
|
4651
|
+
eventBus.emit(`UI:${rightEvent}`, { direction: 1 });
|
|
4652
|
+
break;
|
|
4653
|
+
case "ArrowUp":
|
|
4654
|
+
case "KeyW":
|
|
4655
|
+
case "Space":
|
|
4656
|
+
eventBus.emit(`UI:${jumpEvent}`, {});
|
|
4657
|
+
e.preventDefault();
|
|
4658
|
+
break;
|
|
4659
|
+
}
|
|
4660
|
+
}, [eventBus, leftEvent, rightEvent, jumpEvent]);
|
|
4661
|
+
const handleKeyUp = useCallback((e) => {
|
|
4662
|
+
keysRef.current.delete(e.code);
|
|
4663
|
+
switch (e.code) {
|
|
4664
|
+
case "ArrowLeft":
|
|
4665
|
+
case "KeyA":
|
|
4666
|
+
case "ArrowRight":
|
|
4667
|
+
case "KeyD":
|
|
4668
|
+
eventBus.emit(`UI:${stopEvent}`, {});
|
|
4669
|
+
break;
|
|
4670
|
+
}
|
|
4671
|
+
}, [eventBus, stopEvent]);
|
|
4672
|
+
useEffect(() => {
|
|
4673
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
4674
|
+
window.addEventListener("keyup", handleKeyUp);
|
|
4675
|
+
return () => {
|
|
4676
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
4677
|
+
window.removeEventListener("keyup", handleKeyUp);
|
|
4678
|
+
};
|
|
4679
|
+
}, [handleKeyDown, handleKeyUp]);
|
|
4680
|
+
useEffect(() => {
|
|
4681
|
+
const canvas = canvasRef.current;
|
|
4682
|
+
if (!canvas) return;
|
|
4683
|
+
const ctx = canvas.getContext("2d");
|
|
4684
|
+
if (!ctx) return;
|
|
4685
|
+
const dpr = window.devicePixelRatio || 1;
|
|
4686
|
+
canvas.width = canvasWidth * dpr;
|
|
4687
|
+
canvas.height = canvasHeight * dpr;
|
|
4688
|
+
ctx.scale(dpr, dpr);
|
|
4689
|
+
let camX = 0;
|
|
4690
|
+
let camY = 0;
|
|
4691
|
+
if (followCamera) {
|
|
4692
|
+
camX = Math.max(0, Math.min(resolvedPlayer.x - canvasWidth / 2, worldWidth - canvasWidth));
|
|
4693
|
+
camY = Math.max(0, Math.min(resolvedPlayer.y - canvasHeight / 2 - 50, worldHeight - canvasHeight));
|
|
4694
|
+
}
|
|
4695
|
+
if (bgColor) {
|
|
4696
|
+
ctx.fillStyle = bgColor;
|
|
4697
|
+
ctx.fillRect(0, 0, canvasWidth, canvasHeight);
|
|
4698
|
+
} else {
|
|
4699
|
+
const grad = ctx.createLinearGradient(0, 0, 0, canvasHeight);
|
|
4700
|
+
grad.addColorStop(0, SKY_GRADIENT_TOP);
|
|
4701
|
+
grad.addColorStop(1, SKY_GRADIENT_BOTTOM);
|
|
4702
|
+
ctx.fillStyle = grad;
|
|
4703
|
+
ctx.fillRect(0, 0, canvasWidth, canvasHeight);
|
|
4704
|
+
}
|
|
4705
|
+
ctx.strokeStyle = GRID_COLOR;
|
|
4706
|
+
ctx.lineWidth = 1;
|
|
4707
|
+
const gridSize = 32;
|
|
4708
|
+
for (let gx = -camX % gridSize; gx < canvasWidth; gx += gridSize) {
|
|
4709
|
+
ctx.beginPath();
|
|
4710
|
+
ctx.moveTo(gx, 0);
|
|
4711
|
+
ctx.lineTo(gx, canvasHeight);
|
|
4712
|
+
ctx.stroke();
|
|
4713
|
+
}
|
|
4714
|
+
for (let gy = -camY % gridSize; gy < canvasHeight; gy += gridSize) {
|
|
4715
|
+
ctx.beginPath();
|
|
4716
|
+
ctx.moveTo(0, gy);
|
|
4717
|
+
ctx.lineTo(canvasWidth, gy);
|
|
4718
|
+
ctx.stroke();
|
|
4719
|
+
}
|
|
4720
|
+
for (const plat of platforms) {
|
|
4721
|
+
const px = plat.x - camX;
|
|
4722
|
+
const py = plat.y - camY;
|
|
4723
|
+
const color = PLATFORM_COLORS[plat.type ?? "ground"] ?? PLATFORM_COLORS.ground;
|
|
4724
|
+
ctx.fillStyle = color;
|
|
4725
|
+
ctx.fillRect(px, py, plat.width, plat.height);
|
|
4726
|
+
ctx.fillStyle = "rgba(255, 255, 255, 0.15)";
|
|
4727
|
+
ctx.fillRect(px, py, plat.width, 3);
|
|
4728
|
+
ctx.fillStyle = "rgba(0, 0, 0, 0.3)";
|
|
4729
|
+
ctx.fillRect(px, py + plat.height - 2, plat.width, 2);
|
|
4730
|
+
if (plat.type === "hazard") {
|
|
4731
|
+
ctx.strokeStyle = "#e74c3c";
|
|
4732
|
+
ctx.lineWidth = 2;
|
|
4733
|
+
for (let sx = px; sx < px + plat.width; sx += 12) {
|
|
4734
|
+
ctx.beginPath();
|
|
4735
|
+
ctx.moveTo(sx, py);
|
|
4736
|
+
ctx.lineTo(sx + 6, py + plat.height);
|
|
4737
|
+
ctx.stroke();
|
|
4738
|
+
}
|
|
4739
|
+
}
|
|
4740
|
+
if (plat.type === "goal") {
|
|
4741
|
+
ctx.fillStyle = "rgba(241, 196, 15, 0.5)";
|
|
4742
|
+
ctx.beginPath();
|
|
4743
|
+
ctx.arc(px + plat.width / 2, py - 10, 8, 0, Math.PI * 2);
|
|
4744
|
+
ctx.fill();
|
|
4745
|
+
}
|
|
4746
|
+
}
|
|
4747
|
+
const pw = resolvedPlayer.width ?? 24;
|
|
4748
|
+
const ph = resolvedPlayer.height ?? 32;
|
|
4749
|
+
const ppx = resolvedPlayer.x - camX;
|
|
4750
|
+
const ppy = resolvedPlayer.y - camY;
|
|
4751
|
+
ctx.fillStyle = PLAYER_COLOR;
|
|
4752
|
+
const radius = Math.min(pw, ph) * 0.25;
|
|
4753
|
+
ctx.beginPath();
|
|
4754
|
+
ctx.moveTo(ppx + radius, ppy);
|
|
4755
|
+
ctx.lineTo(ppx + pw - radius, ppy);
|
|
4756
|
+
ctx.quadraticCurveTo(ppx + pw, ppy, ppx + pw, ppy + radius);
|
|
4757
|
+
ctx.lineTo(ppx + pw, ppy + ph - radius);
|
|
4758
|
+
ctx.quadraticCurveTo(ppx + pw, ppy + ph, ppx + pw - radius, ppy + ph);
|
|
4759
|
+
ctx.lineTo(ppx + radius, ppy + ph);
|
|
4760
|
+
ctx.quadraticCurveTo(ppx, ppy + ph, ppx, ppy + ph - radius);
|
|
4761
|
+
ctx.lineTo(ppx, ppy + radius);
|
|
4762
|
+
ctx.quadraticCurveTo(ppx, ppy, ppx + radius, ppy);
|
|
4763
|
+
ctx.fill();
|
|
4764
|
+
const eyeY = ppy + ph * 0.3;
|
|
4765
|
+
const eyeSize = 3;
|
|
4766
|
+
const facingRight = resolvedPlayer.facingRight ?? true;
|
|
4767
|
+
const eyeOffsetX = facingRight ? pw * 0.55 : pw * 0.2;
|
|
4768
|
+
ctx.fillStyle = PLAYER_EYE_COLOR;
|
|
4769
|
+
ctx.beginPath();
|
|
4770
|
+
ctx.arc(ppx + eyeOffsetX, eyeY, eyeSize, 0, Math.PI * 2);
|
|
4771
|
+
ctx.fill();
|
|
4772
|
+
ctx.beginPath();
|
|
4773
|
+
ctx.arc(ppx + eyeOffsetX + 7, eyeY, eyeSize, 0, Math.PI * 2);
|
|
4774
|
+
ctx.fill();
|
|
4775
|
+
});
|
|
4776
|
+
return /* @__PURE__ */ jsx(
|
|
4777
|
+
"canvas",
|
|
4778
|
+
{
|
|
4779
|
+
ref: canvasRef,
|
|
4780
|
+
style: { width: canvasWidth, height: canvasHeight },
|
|
4781
|
+
className: cn("block rounded-lg border border-white/10", className),
|
|
4782
|
+
"data-testid": "platformer-canvas",
|
|
4783
|
+
tabIndex: 0
|
|
4784
|
+
}
|
|
4785
|
+
);
|
|
4786
|
+
}
|
|
4787
|
+
PlatformerCanvas.displayName = "PlatformerCanvas";
|
|
4601
4788
|
|
|
4602
4789
|
// components/organisms/game/types/effects.ts
|
|
4603
4790
|
var EMPTY_EFFECT_STATE = {
|
|
@@ -6644,76 +6831,6 @@ function usePhysics2D(options = {}) {
|
|
|
6644
6831
|
reset
|
|
6645
6832
|
};
|
|
6646
6833
|
}
|
|
6647
|
-
var sizeMap = {
|
|
6648
|
-
sm: "text-xs px-2 py-1",
|
|
6649
|
-
md: "text-sm px-3 py-1.5",
|
|
6650
|
-
lg: "text-base px-4 py-2"
|
|
6651
|
-
};
|
|
6652
|
-
var variantMap = {
|
|
6653
|
-
default: "bg-gray-800/80 border-gray-700",
|
|
6654
|
-
primary: "bg-blue-900/80 border-blue-700",
|
|
6655
|
-
success: "bg-green-900/80 border-green-700",
|
|
6656
|
-
warning: "bg-yellow-900/80 border-yellow-700",
|
|
6657
|
-
danger: "bg-red-900/80 border-red-700"
|
|
6658
|
-
};
|
|
6659
|
-
function StatBadge({
|
|
6660
|
-
label,
|
|
6661
|
-
value = 0,
|
|
6662
|
-
max,
|
|
6663
|
-
format = "number",
|
|
6664
|
-
icon,
|
|
6665
|
-
size = "md",
|
|
6666
|
-
variant = "default",
|
|
6667
|
-
className,
|
|
6668
|
-
// Ignored config props (used for schema binding)
|
|
6669
|
-
source: _source,
|
|
6670
|
-
field: _field
|
|
6671
|
-
}) {
|
|
6672
|
-
const numValue = typeof value === "number" ? value : parseInt(String(value), 10) || 0;
|
|
6673
|
-
return /* @__PURE__ */ jsxs(
|
|
6674
|
-
"div",
|
|
6675
|
-
{
|
|
6676
|
-
className: cn(
|
|
6677
|
-
"inline-flex items-center gap-2 rounded-lg border backdrop-blur-sm",
|
|
6678
|
-
sizeMap[size] ?? sizeMap.md,
|
|
6679
|
-
variantMap[variant] ?? variantMap.default,
|
|
6680
|
-
className
|
|
6681
|
-
),
|
|
6682
|
-
children: [
|
|
6683
|
-
icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0 text-lg", children: icon }),
|
|
6684
|
-
/* @__PURE__ */ jsx("span", { className: "text-gray-400 font-medium", children: label }),
|
|
6685
|
-
format === "hearts" && max && /* @__PURE__ */ jsx(
|
|
6686
|
-
HealthBar,
|
|
6687
|
-
{
|
|
6688
|
-
current: numValue,
|
|
6689
|
-
max,
|
|
6690
|
-
format: "hearts",
|
|
6691
|
-
size: size === "lg" ? "md" : "sm"
|
|
6692
|
-
}
|
|
6693
|
-
),
|
|
6694
|
-
format === "bar" && max && /* @__PURE__ */ jsx(
|
|
6695
|
-
HealthBar,
|
|
6696
|
-
{
|
|
6697
|
-
current: numValue,
|
|
6698
|
-
max,
|
|
6699
|
-
format: "bar",
|
|
6700
|
-
size: size === "lg" ? "md" : "sm"
|
|
6701
|
-
}
|
|
6702
|
-
),
|
|
6703
|
-
format === "number" && /* @__PURE__ */ jsx(
|
|
6704
|
-
ScoreDisplay,
|
|
6705
|
-
{
|
|
6706
|
-
value: numValue,
|
|
6707
|
-
size: size === "lg" ? "md" : "sm",
|
|
6708
|
-
animated: true
|
|
6709
|
-
}
|
|
6710
|
-
),
|
|
6711
|
-
format === "text" && /* @__PURE__ */ jsx("span", { className: "font-bold text-white", children: value })
|
|
6712
|
-
]
|
|
6713
|
-
}
|
|
6714
|
-
);
|
|
6715
|
-
}
|
|
6716
|
-
StatBadge.displayName = "StatBadge";
|
|
6717
6834
|
var positionMap = {
|
|
6718
6835
|
top: "top-0 left-0 right-0 flex justify-between items-start p-4",
|
|
6719
6836
|
bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
|
|
@@ -6729,9 +6846,14 @@ function convertElementsToStats(elements) {
|
|
|
6729
6846
|
timer: "Time"
|
|
6730
6847
|
};
|
|
6731
6848
|
return {
|
|
6732
|
-
label: el.label || labelMap[el.type] || el.type,
|
|
6849
|
+
label: el.label || labelMap[el.type ?? ""] || el.type || "",
|
|
6733
6850
|
source,
|
|
6734
|
-
field
|
|
6851
|
+
field,
|
|
6852
|
+
// Pass through direct values from compiled render-ui effects
|
|
6853
|
+
...el.value !== void 0 && { value: el.value },
|
|
6854
|
+
...el.icon !== void 0 && { icon: el.icon },
|
|
6855
|
+
...el.format !== void 0 && { format: el.format },
|
|
6856
|
+
...el.max !== void 0 && { max: el.max }
|
|
6735
6857
|
};
|
|
6736
6858
|
});
|
|
6737
6859
|
}
|
|
@@ -6770,7 +6892,7 @@ function GameHud({
|
|
|
6770
6892
|
);
|
|
6771
6893
|
}
|
|
6772
6894
|
GameHud.displayName = "GameHud";
|
|
6773
|
-
var
|
|
6895
|
+
var variantMap = {
|
|
6774
6896
|
primary: "bg-blue-600 hover:bg-blue-500 text-white border-blue-400 shadow-lg shadow-blue-500/25",
|
|
6775
6897
|
secondary: "bg-gray-700 hover:bg-gray-600 text-white border-gray-500",
|
|
6776
6898
|
ghost: "bg-transparent hover:bg-white/10 text-white border-white/20"
|
|
@@ -6849,7 +6971,7 @@ function GameMenu({
|
|
|
6849
6971
|
"transition-all duration-200 transform",
|
|
6850
6972
|
"hover:scale-105 active:scale-95",
|
|
6851
6973
|
"focus:outline-none focus:ring-4 focus:ring-white/25",
|
|
6852
|
-
|
|
6974
|
+
variantMap[option.variant ?? "secondary"] ?? variantMap.secondary,
|
|
6853
6975
|
option.disabled && "opacity-50 cursor-not-allowed hover:scale-100"
|
|
6854
6976
|
),
|
|
6855
6977
|
style: {
|
|
@@ -13931,4 +14053,4 @@ function WorldMapTemplate({
|
|
|
13931
14053
|
}
|
|
13932
14054
|
WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
13933
14055
|
|
|
13934
|
-
export { ALL_PRESETS, AR_BOOK_FIELDS, ActionPalette, ActionTile, AuthLayout, BattleBoard, BattleTemplate, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, BuilderBoard, CanvasEffect, CastleBoard, CastleTemplate, Chart, ClassifierBoard, CodeView, CodeViewer, CollapsibleSection, CombatLog, ConfirmDialog, ContentRenderer, CounterTemplate, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DebuggerBoard, DialogueBox, DocumentViewer, StateMachineView as DomStateMachineVisualizer, DrawerSlot, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FormActions, FormLayout, FormSection, GameAudioContext, GameAudioProvider, GameAudioToggle, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GraphCanvas, Header, IDENTITY_BOOK_FIELDS, InventoryPanel, IsometricCanvas, JazariStateMachine, List, MediaGallery, Meter, ModalSlot, Navigation, NegotiatorBoard, NotifyListener, ObjectRulePanel, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PhysicsManager, RuleEditor, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, Section, SequenceBar, SequencerBoard, Sidebar, SignaturePad, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Split, SplitPane, StateArchitectBoard, StateMachineView, StateNode2 as StateNode, StatusBar, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, TerrainPalette, Timeline, ToastSlot, TraitSlot, TraitStateViewer, TransitionArrow, UncontrolledBattleBoard, VariablePanel, WizardContainer, WorldMapBoard, WorldMapTemplate, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, combatAnimations, combatClasses, combatEffects, createInitialGameState, createUnitAnimationState, generateCombatMessage, getCurrentFrame, inferDirection, isoToScreen, mapBookData, pendulum, projectileMotion, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, springOscillator, tickAnimationState, transitionAnimation, useBattleState, useCamera, useGameAudio, useGameAudioContext, useImageCache, usePhysics2D, useSpriteAnimations };
|
|
14056
|
+
export { ALL_PRESETS, AR_BOOK_FIELDS, ActionPalette, ActionTile, AuthLayout, BattleBoard, BattleTemplate, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, BuilderBoard, CanvasEffect, CastleBoard, CastleTemplate, Chart, ClassifierBoard, CodeView, CodeViewer, CollapsibleSection, CombatLog, ConfirmDialog, ContentRenderer, CounterTemplate, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DebuggerBoard, DialogueBox, DocumentViewer, StateMachineView as DomStateMachineVisualizer, DrawerSlot, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FormActions, FormLayout, FormSection, GameAudioContext, GameAudioProvider, GameAudioToggle, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GraphCanvas, Header, IDENTITY_BOOK_FIELDS, InventoryPanel, IsometricCanvas, JazariStateMachine, List, MediaGallery, Meter, ModalSlot, Navigation, NegotiatorBoard, NotifyListener, ObjectRulePanel, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PhysicsManager, PlatformerCanvas, RuleEditor, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, Section, SequenceBar, SequencerBoard, Sidebar, SignaturePad, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Split, SplitPane, StateArchitectBoard, StateMachineView, StateNode2 as StateNode, StatusBar, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, TerrainPalette, Timeline, ToastSlot, TraitSlot, TraitStateViewer, TransitionArrow, UncontrolledBattleBoard, VariablePanel, WizardContainer, WorldMapBoard, WorldMapTemplate, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, combatAnimations, combatClasses, combatEffects, createInitialGameState, createUnitAnimationState, generateCombatMessage, getCurrentFrame, inferDirection, isoToScreen, mapBookData, pendulum, projectileMotion, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, springOscillator, tickAnimationState, transitionAnimation, useBattleState, useCamera, useGameAudio, useGameAudioContext, useImageCache, usePhysics2D, useSpriteAnimations };
|
package/dist/context/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ThemeProvider, useTheme } from '../chunk-
|
|
2
|
-
export { BUILT_IN_THEMES, ThemeContext_default as ThemeContext, ThemeProvider, UISlotContext, UISlotProvider, useSlotContent, useSlotHasContent, useTheme, useUISlots } from '../chunk-
|
|
1
|
+
import { ThemeProvider, useTheme } from '../chunk-YLKXEXBP.js';
|
|
2
|
+
export { BUILT_IN_THEMES, ThemeContext_default as ThemeContext, ThemeProvider, UISlotContext, UISlotProvider, useSlotContent, useSlotHasContent, useTheme, useUISlots } from '../chunk-YLKXEXBP.js';
|
|
3
3
|
import '../chunk-3JGAROCW.js';
|
|
4
4
|
import '../chunk-PKBMQBKP.js';
|
|
5
5
|
import { createContext, useCallback, useMemo, useContext } from 'react';
|
package/dist/providers/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SuspenseConfigProvider } from '../chunk-
|
|
2
|
-
import { ThemeProvider } from '../chunk-
|
|
1
|
+
import { SuspenseConfigProvider } from '../chunk-FYYU3CHN.js';
|
|
2
|
+
import { ThemeProvider } from '../chunk-YLKXEXBP.js';
|
|
3
3
|
import { SelectionProvider, EntityDataProvider } from '../chunk-GOZKH7QW.js';
|
|
4
4
|
export { SelectionContext, SelectionProvider, useSelection, useSelectionOptional } from '../chunk-GOZKH7QW.js';
|
|
5
5
|
import { useEventBus, EventBusProvider } from '../chunk-YXZM3WCF.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "React UI components, hooks, and providers for Almadar",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/components/index.js",
|
|
@@ -74,60 +74,63 @@
|
|
|
74
74
|
"@almadar/evaluator": ">=2.0.0",
|
|
75
75
|
"@almadar/patterns": ">=2.0.0",
|
|
76
76
|
"clsx": "^2.1.0",
|
|
77
|
-
"
|
|
77
|
+
"leaflet": "1.9.4",
|
|
78
78
|
"lucide-react": "^0.344.0",
|
|
79
|
+
"react-leaflet": "^4.2.1",
|
|
79
80
|
"react-markdown": "^9.0.0",
|
|
81
|
+
"react-syntax-highlighter": "^16.1.0",
|
|
82
|
+
"rehype-katex": "^7.0.0",
|
|
80
83
|
"remark-gfm": "^4.0.0",
|
|
81
84
|
"remark-math": "^6.0.0",
|
|
82
|
-
"
|
|
83
|
-
"react-syntax-highlighter": "^16.1.0"
|
|
85
|
+
"tailwind-merge": "^2.2.0"
|
|
84
86
|
},
|
|
85
87
|
"peerDependencies": {
|
|
88
|
+
"@react-three/drei": "^9.92.0 || ^10.0.0",
|
|
89
|
+
"@react-three/fiber": "^8.15.0",
|
|
90
|
+
"@tanstack/react-query": "^5.0.0",
|
|
86
91
|
"react": ">=18.0.0",
|
|
87
92
|
"react-dom": ">=18.0.0",
|
|
88
93
|
"react-router-dom": "^7.0.0",
|
|
89
|
-
"
|
|
90
|
-
"three": "^0.160.0",
|
|
91
|
-
"@react-three/fiber": "^8.15.0",
|
|
92
|
-
"@react-three/drei": "^9.92.0 || ^10.0.0"
|
|
94
|
+
"three": "^0.160.0"
|
|
93
95
|
},
|
|
94
96
|
"devDependencies": {
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"react-router-dom": "^7.13.0",
|
|
98
|
-
"@tanstack/react-query": "^5.0.0",
|
|
99
|
-
"@types/react": "^19.0.0",
|
|
100
|
-
"@types/react-dom": "^19.0.0",
|
|
101
|
-
"@types/three": "^0.160.0",
|
|
97
|
+
"@almadar/eslint-plugin": ">=2.3.0",
|
|
98
|
+
"@storybook/addon-docs": "^10.2.6",
|
|
102
99
|
"@storybook/addon-links": "^10.2.6",
|
|
103
100
|
"@storybook/addon-themes": "^10.2.6",
|
|
104
101
|
"@storybook/react": "^10.2.6",
|
|
105
102
|
"@storybook/react-vite": "^10.2.6",
|
|
106
|
-
"
|
|
103
|
+
"@tanstack/react-query": "^5.0.0",
|
|
104
|
+
"@testing-library/jest-dom": "^6.4.0",
|
|
105
|
+
"@testing-library/react": "^14.2.0",
|
|
106
|
+
"@testing-library/user-event": "^14.5.0",
|
|
107
|
+
"@types/leaflet": "1.9.21",
|
|
108
|
+
"@types/node": "^22.0.0",
|
|
109
|
+
"@types/react": "^19.0.0",
|
|
110
|
+
"@types/react-dom": "^19.0.0",
|
|
111
|
+
"@types/react-syntax-highlighter": "^15.5.0",
|
|
112
|
+
"@types/three": "^0.160.0",
|
|
113
|
+
"@typescript-eslint/parser": "8.56.0",
|
|
107
114
|
"@vitejs/plugin-react": "^4.2.0",
|
|
108
|
-
"
|
|
109
|
-
"react-compiler-runtime": "19.0.0-beta-af1b7da-20250417",
|
|
115
|
+
"@vitest/ui": "^1.4.0",
|
|
110
116
|
"autoprefixer": "^10.4.0",
|
|
117
|
+
"babel-plugin-react-compiler": "19.0.0-beta-af1b7da-20250417",
|
|
118
|
+
"eslint": "10.0.0",
|
|
119
|
+
"eslint-plugin-react-compiler": "19.1.0-rc.2",
|
|
120
|
+
"jsdom": "^24.0.0",
|
|
121
|
+
"katex": "^0.16.0",
|
|
111
122
|
"postcss": "^8.4.35",
|
|
123
|
+
"react": "^19.0.0",
|
|
124
|
+
"react-compiler-runtime": "19.0.0-beta-af1b7da-20250417",
|
|
125
|
+
"react-dom": "^19.0.0",
|
|
126
|
+
"react-router-dom": "^7.13.0",
|
|
127
|
+
"storybook": "^10.2.6",
|
|
112
128
|
"tailwindcss": "^3.4.0",
|
|
113
129
|
"tsup": "^8.0.0",
|
|
130
|
+
"tsx": "^4.7.0",
|
|
114
131
|
"typescript": "^5.4.0",
|
|
115
132
|
"vite": "^5.2.0",
|
|
116
|
-
"
|
|
117
|
-
"vitest": "^1.4.0",
|
|
118
|
-
"@testing-library/react": "^14.2.0",
|
|
119
|
-
"@testing-library/jest-dom": "^6.4.0",
|
|
120
|
-
"@testing-library/user-event": "^14.5.0",
|
|
121
|
-
"@vitest/ui": "^1.4.0",
|
|
122
|
-
"jsdom": "^24.0.0",
|
|
123
|
-
"@storybook/addon-docs": "^10.2.6",
|
|
124
|
-
"@types/react-syntax-highlighter": "^15.5.0",
|
|
125
|
-
"katex": "^0.16.0",
|
|
126
|
-
"@types/node": "^22.0.0",
|
|
127
|
-
"eslint": "10.0.0",
|
|
128
|
-
"@typescript-eslint/parser": "8.56.0",
|
|
129
|
-
"@almadar/eslint-plugin": ">=2.3.0",
|
|
130
|
-
"eslint-plugin-react-compiler": "19.1.0-rc.2"
|
|
133
|
+
"vitest": "^1.4.0"
|
|
131
134
|
},
|
|
132
135
|
"repository": {
|
|
133
136
|
"type": "git",
|