@almadar/ui 5.76.0 → 5.76.2
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/avl/index.cjs +1449 -1428
- package/dist/avl/index.js +250 -229
- package/dist/components/index.cjs +103 -46
- package/dist/components/index.js +103 -37
- package/dist/context/index.cjs +690 -47
- package/dist/context/index.js +682 -2
- package/dist/providers/index.cjs +2175 -1255
- package/dist/providers/index.d.ts +8 -0
- package/dist/providers/index.js +1087 -208
- package/dist/runtime/index.cjs +1310 -1289
- package/dist/runtime/index.js +230 -209
- package/package.json +1 -1
|
@@ -30125,37 +30125,6 @@ var init_useCanvasEffects = __esm({
|
|
|
30125
30125
|
init_combatPresets();
|
|
30126
30126
|
}
|
|
30127
30127
|
});
|
|
30128
|
-
function GameAudioToggle({
|
|
30129
|
-
size = "sm",
|
|
30130
|
-
className
|
|
30131
|
-
}) {
|
|
30132
|
-
const ctx = providers.useGameAudioContextOptional();
|
|
30133
|
-
const [localMuted, setLocalMuted] = React80.useState(false);
|
|
30134
|
-
const muted = ctx ? ctx.muted : localMuted;
|
|
30135
|
-
const setMuted = ctx ? ctx.setMuted : setLocalMuted;
|
|
30136
|
-
const handleToggle = React80.useCallback(() => {
|
|
30137
|
-
setMuted(!muted);
|
|
30138
|
-
}, [muted, setMuted]);
|
|
30139
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30140
|
-
exports.Button,
|
|
30141
|
-
{
|
|
30142
|
-
variant: "ghost",
|
|
30143
|
-
size,
|
|
30144
|
-
onClick: handleToggle,
|
|
30145
|
-
className: cn("text-lg leading-none px-2", className),
|
|
30146
|
-
"aria-pressed": muted,
|
|
30147
|
-
children: muted ? "\u{1F507}" : "\u{1F50A}"
|
|
30148
|
-
}
|
|
30149
|
-
);
|
|
30150
|
-
}
|
|
30151
|
-
var init_GameAudioToggle = __esm({
|
|
30152
|
-
"components/game/2d/atoms/GameAudioToggle.tsx"() {
|
|
30153
|
-
"use client";
|
|
30154
|
-
init_atoms();
|
|
30155
|
-
init_cn();
|
|
30156
|
-
GameAudioToggle.displayName = "GameAudioToggle";
|
|
30157
|
-
}
|
|
30158
|
-
});
|
|
30159
30128
|
function pickPath(entry) {
|
|
30160
30129
|
if (Array.isArray(entry.path)) {
|
|
30161
30130
|
return entry.path[Math.floor(Math.random() * entry.path.length)];
|
|
@@ -30423,6 +30392,101 @@ var init_useGameAudio = __esm({
|
|
|
30423
30392
|
useGameAudio.displayName = "useGameAudio";
|
|
30424
30393
|
}
|
|
30425
30394
|
});
|
|
30395
|
+
function useGameAudioContext() {
|
|
30396
|
+
const ctx = React80.useContext(exports.GameAudioContext);
|
|
30397
|
+
if (!ctx) {
|
|
30398
|
+
throw new Error("useGameAudioContext must be used inside <GameAudioProvider>");
|
|
30399
|
+
}
|
|
30400
|
+
return ctx;
|
|
30401
|
+
}
|
|
30402
|
+
function useGameAudioContextOptional() {
|
|
30403
|
+
return React80.useContext(exports.GameAudioContext);
|
|
30404
|
+
}
|
|
30405
|
+
function GameAudioProvider({
|
|
30406
|
+
manifest,
|
|
30407
|
+
baseUrl = "",
|
|
30408
|
+
children,
|
|
30409
|
+
initialMuted = false
|
|
30410
|
+
}) {
|
|
30411
|
+
const eventBus = useEventBus();
|
|
30412
|
+
const { play, stop, stopAll, playMusic, stopMusic, muted, setMuted, masterVolume, setMasterVolume } = useGameAudio({ manifest, baseUrl, initialMuted });
|
|
30413
|
+
React80.useEffect(() => {
|
|
30414
|
+
const unsubPlay = eventBus.on("UI:PLAY_SOUND", (event) => {
|
|
30415
|
+
const key = event.payload?.key;
|
|
30416
|
+
if (key) play(key);
|
|
30417
|
+
});
|
|
30418
|
+
const unsubStop = eventBus.on("UI:STOP_SOUND", (event) => {
|
|
30419
|
+
const key = event.payload?.key;
|
|
30420
|
+
if (key) {
|
|
30421
|
+
stop(key);
|
|
30422
|
+
} else {
|
|
30423
|
+
stopAll();
|
|
30424
|
+
}
|
|
30425
|
+
});
|
|
30426
|
+
const unsubChangeMusic = eventBus.on("UI:CHANGE_MUSIC", (event) => {
|
|
30427
|
+
const key = event.payload?.key;
|
|
30428
|
+
if (key) {
|
|
30429
|
+
playMusic(key);
|
|
30430
|
+
} else {
|
|
30431
|
+
stopMusic();
|
|
30432
|
+
}
|
|
30433
|
+
});
|
|
30434
|
+
const unsubStopMusic = eventBus.on("UI:STOP_MUSIC", () => {
|
|
30435
|
+
stopMusic();
|
|
30436
|
+
});
|
|
30437
|
+
return () => {
|
|
30438
|
+
unsubPlay();
|
|
30439
|
+
unsubStop();
|
|
30440
|
+
unsubChangeMusic();
|
|
30441
|
+
unsubStopMusic();
|
|
30442
|
+
};
|
|
30443
|
+
}, [eventBus, play, stop, stopAll, playMusic, stopMusic]);
|
|
30444
|
+
const value = { muted, setMuted, masterVolume, setMasterVolume, play, playMusic, stopMusic };
|
|
30445
|
+
return /* @__PURE__ */ jsxRuntime.jsx(exports.GameAudioContext.Provider, { value, children });
|
|
30446
|
+
}
|
|
30447
|
+
exports.GameAudioContext = void 0;
|
|
30448
|
+
var init_GameAudioProvider = __esm({
|
|
30449
|
+
"components/game/shared/providers/GameAudioProvider.tsx"() {
|
|
30450
|
+
"use client";
|
|
30451
|
+
init_useEventBus();
|
|
30452
|
+
init_useGameAudio();
|
|
30453
|
+
exports.GameAudioContext = React80.createContext(null);
|
|
30454
|
+
exports.GameAudioContext.displayName = "GameAudioContext";
|
|
30455
|
+
GameAudioProvider.displayName = "GameAudioProvider";
|
|
30456
|
+
}
|
|
30457
|
+
});
|
|
30458
|
+
function GameAudioToggle({
|
|
30459
|
+
size = "sm",
|
|
30460
|
+
className
|
|
30461
|
+
}) {
|
|
30462
|
+
const ctx = useGameAudioContextOptional();
|
|
30463
|
+
const [localMuted, setLocalMuted] = React80.useState(false);
|
|
30464
|
+
const muted = ctx ? ctx.muted : localMuted;
|
|
30465
|
+
const setMuted = ctx ? ctx.setMuted : setLocalMuted;
|
|
30466
|
+
const handleToggle = React80.useCallback(() => {
|
|
30467
|
+
setMuted(!muted);
|
|
30468
|
+
}, [muted, setMuted]);
|
|
30469
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30470
|
+
exports.Button,
|
|
30471
|
+
{
|
|
30472
|
+
variant: "ghost",
|
|
30473
|
+
size,
|
|
30474
|
+
onClick: handleToggle,
|
|
30475
|
+
className: cn("text-lg leading-none px-2", className),
|
|
30476
|
+
"aria-pressed": muted,
|
|
30477
|
+
children: muted ? "\u{1F507}" : "\u{1F50A}"
|
|
30478
|
+
}
|
|
30479
|
+
);
|
|
30480
|
+
}
|
|
30481
|
+
var init_GameAudioToggle = __esm({
|
|
30482
|
+
"components/game/2d/atoms/GameAudioToggle.tsx"() {
|
|
30483
|
+
"use client";
|
|
30484
|
+
init_atoms();
|
|
30485
|
+
init_cn();
|
|
30486
|
+
init_GameAudioProvider();
|
|
30487
|
+
GameAudioToggle.displayName = "GameAudioToggle";
|
|
30488
|
+
}
|
|
30489
|
+
});
|
|
30426
30490
|
function useBattleState(initialUnits, eventConfig = {}, callbacks = {}) {
|
|
30427
30491
|
const eventBus = useEventBus();
|
|
30428
30492
|
const {
|
|
@@ -36482,6 +36546,8 @@ var init_VisualNovelTemplate = __esm({
|
|
|
36482
36546
|
VisualNovelTemplate.displayName = "VisualNovelTemplate";
|
|
36483
36547
|
}
|
|
36484
36548
|
});
|
|
36549
|
+
|
|
36550
|
+
// components/game/2d/molecules/index.ts
|
|
36485
36551
|
var init_molecules = __esm({
|
|
36486
36552
|
"components/game/2d/molecules/index.ts"() {
|
|
36487
36553
|
init_shared();
|
|
@@ -36514,6 +36580,7 @@ var init_molecules = __esm({
|
|
|
36514
36580
|
init_useUnitSpriteAtlas();
|
|
36515
36581
|
init_CanvasEffect();
|
|
36516
36582
|
init_useCanvasEffects();
|
|
36583
|
+
init_GameAudioProvider();
|
|
36517
36584
|
init_GameAudioToggle();
|
|
36518
36585
|
init_useGameAudio();
|
|
36519
36586
|
init_useCamera();
|
|
@@ -36954,13 +37021,13 @@ var init_MapView = __esm({
|
|
|
36954
37021
|
shadowSize: [41, 41]
|
|
36955
37022
|
});
|
|
36956
37023
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
36957
|
-
const { useEffect:
|
|
37024
|
+
const { useEffect: useEffect79, useRef: useRef78, useCallback: useCallback127, useState: useState119 } = React80__namespace.default;
|
|
36958
37025
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
36959
37026
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
36960
37027
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
36961
37028
|
const map = useMap();
|
|
36962
37029
|
const prevRef = useRef78({ centerLat, centerLng, zoom });
|
|
36963
|
-
|
|
37030
|
+
useEffect79(() => {
|
|
36964
37031
|
const prev = prevRef.current;
|
|
36965
37032
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
36966
37033
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -36971,7 +37038,7 @@ var init_MapView = __esm({
|
|
|
36971
37038
|
}
|
|
36972
37039
|
function MapClickHandler({ onMapClick }) {
|
|
36973
37040
|
const map = useMap();
|
|
36974
|
-
|
|
37041
|
+
useEffect79(() => {
|
|
36975
37042
|
if (!onMapClick) return;
|
|
36976
37043
|
const handler = (e) => {
|
|
36977
37044
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -56591,18 +56658,6 @@ function useGitHubBranches(owner, repo, enabled = true) {
|
|
|
56591
56658
|
});
|
|
56592
56659
|
}
|
|
56593
56660
|
|
|
56594
|
-
Object.defineProperty(exports, "GameAudioContext", {
|
|
56595
|
-
enumerable: true,
|
|
56596
|
-
get: function () { return providers.GameAudioContext; }
|
|
56597
|
-
});
|
|
56598
|
-
Object.defineProperty(exports, "GameAudioProvider", {
|
|
56599
|
-
enumerable: true,
|
|
56600
|
-
get: function () { return providers.GameAudioProvider; }
|
|
56601
|
-
});
|
|
56602
|
-
Object.defineProperty(exports, "useGameAudioContext", {
|
|
56603
|
-
enumerable: true,
|
|
56604
|
-
get: function () { return providers.useGameAudioContext; }
|
|
56605
|
-
});
|
|
56606
56661
|
exports.ALMADAR_DND_MIME = ALMADAR_DND_MIME;
|
|
56607
56662
|
exports.ActionButton = ActionButton;
|
|
56608
56663
|
exports.ActionCard = Card2;
|
|
@@ -56647,6 +56702,7 @@ exports.EditorToolbar = EditorToolbar;
|
|
|
56647
56702
|
exports.EventHandlerBoard = EventHandlerBoard;
|
|
56648
56703
|
exports.EventLog = EventLog;
|
|
56649
56704
|
exports.FishingBoard = FishingBoard;
|
|
56705
|
+
exports.GameAudioProvider = GameAudioProvider;
|
|
56650
56706
|
exports.GameAudioToggle = GameAudioToggle;
|
|
56651
56707
|
exports.GameCard = GameCard;
|
|
56652
56708
|
exports.GameHud = GameHud;
|
|
@@ -56794,6 +56850,7 @@ exports.useExtensions = useExtensions;
|
|
|
56794
56850
|
exports.useFileEditor = useFileEditor;
|
|
56795
56851
|
exports.useFileSystem = useFileSystem;
|
|
56796
56852
|
exports.useGameAudio = useGameAudio;
|
|
56853
|
+
exports.useGameAudioContext = useGameAudioContext;
|
|
56797
56854
|
exports.useGitHubBranches = useGitHubBranches;
|
|
56798
56855
|
exports.useGitHubRepo = useGitHubRepo;
|
|
56799
56856
|
exports.useGitHubRepos = useGitHubRepos;
|
package/dist/components/index.js
CHANGED
|
@@ -3,8 +3,7 @@ import * as React80 from 'react';
|
|
|
3
3
|
import React80__default, { createContext, useContext, useMemo, useRef, useEffect, useCallback, useState, useId, Suspense, lazy, useLayoutEffect, useSyncExternalStore } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
|
-
import { EventBusContext, useTraitScope, useCurrentPagePath,
|
|
7
|
-
export { GameAudioContext, GameAudioProvider, useGameAudioContext } from '@almadar/ui/providers';
|
|
6
|
+
import { EventBusContext, useTraitScope, useCurrentPagePath, useEntitySchemaOptional, TraitScopeProvider } from '@almadar/ui/providers';
|
|
8
7
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
9
8
|
import * as LucideIcons2 from 'lucide-react';
|
|
10
9
|
import { X, List, Printer, ChevronRight, ChevronLeft, CheckCircle, XCircle, Wrench, RotateCcw, Send, Play, Terminal, ChevronDown, Bug, ArrowRight, Pause, SkipForward, Search, ChevronUp, MoreHorizontal, Package, Calendar, Pencil, Eye, Image as Image$1, Upload, ZoomIn, TrendingUp, TrendingDown, Minus, AlertCircle, Circle, Clock, CheckCircle2, Loader2, Code, FileText, WrapText, Check, Copy, HelpCircle, Type, Heading1, Heading2, Heading3, ListOrdered, Quote, GitBranch, Plus, Trash, ArrowLeft, Menu as Menu$1, AlertTriangle, Trash2, Eraser, ZoomOut, Download, Lightbulb, PauseCircle, Link2, Tag, User, DollarSign } from 'lucide-react';
|
|
@@ -30080,37 +30079,6 @@ var init_useCanvasEffects = __esm({
|
|
|
30080
30079
|
init_combatPresets();
|
|
30081
30080
|
}
|
|
30082
30081
|
});
|
|
30083
|
-
function GameAudioToggle({
|
|
30084
|
-
size = "sm",
|
|
30085
|
-
className
|
|
30086
|
-
}) {
|
|
30087
|
-
const ctx = useGameAudioContextOptional();
|
|
30088
|
-
const [localMuted, setLocalMuted] = useState(false);
|
|
30089
|
-
const muted = ctx ? ctx.muted : localMuted;
|
|
30090
|
-
const setMuted = ctx ? ctx.setMuted : setLocalMuted;
|
|
30091
|
-
const handleToggle = useCallback(() => {
|
|
30092
|
-
setMuted(!muted);
|
|
30093
|
-
}, [muted, setMuted]);
|
|
30094
|
-
return /* @__PURE__ */ jsx(
|
|
30095
|
-
Button,
|
|
30096
|
-
{
|
|
30097
|
-
variant: "ghost",
|
|
30098
|
-
size,
|
|
30099
|
-
onClick: handleToggle,
|
|
30100
|
-
className: cn("text-lg leading-none px-2", className),
|
|
30101
|
-
"aria-pressed": muted,
|
|
30102
|
-
children: muted ? "\u{1F507}" : "\u{1F50A}"
|
|
30103
|
-
}
|
|
30104
|
-
);
|
|
30105
|
-
}
|
|
30106
|
-
var init_GameAudioToggle = __esm({
|
|
30107
|
-
"components/game/2d/atoms/GameAudioToggle.tsx"() {
|
|
30108
|
-
"use client";
|
|
30109
|
-
init_atoms();
|
|
30110
|
-
init_cn();
|
|
30111
|
-
GameAudioToggle.displayName = "GameAudioToggle";
|
|
30112
|
-
}
|
|
30113
|
-
});
|
|
30114
30082
|
function pickPath(entry) {
|
|
30115
30083
|
if (Array.isArray(entry.path)) {
|
|
30116
30084
|
return entry.path[Math.floor(Math.random() * entry.path.length)];
|
|
@@ -30378,6 +30346,101 @@ var init_useGameAudio = __esm({
|
|
|
30378
30346
|
useGameAudio.displayName = "useGameAudio";
|
|
30379
30347
|
}
|
|
30380
30348
|
});
|
|
30349
|
+
function useGameAudioContext() {
|
|
30350
|
+
const ctx = useContext(GameAudioContext);
|
|
30351
|
+
if (!ctx) {
|
|
30352
|
+
throw new Error("useGameAudioContext must be used inside <GameAudioProvider>");
|
|
30353
|
+
}
|
|
30354
|
+
return ctx;
|
|
30355
|
+
}
|
|
30356
|
+
function useGameAudioContextOptional() {
|
|
30357
|
+
return useContext(GameAudioContext);
|
|
30358
|
+
}
|
|
30359
|
+
function GameAudioProvider({
|
|
30360
|
+
manifest,
|
|
30361
|
+
baseUrl = "",
|
|
30362
|
+
children,
|
|
30363
|
+
initialMuted = false
|
|
30364
|
+
}) {
|
|
30365
|
+
const eventBus = useEventBus();
|
|
30366
|
+
const { play, stop, stopAll, playMusic, stopMusic, muted, setMuted, masterVolume, setMasterVolume } = useGameAudio({ manifest, baseUrl, initialMuted });
|
|
30367
|
+
useEffect(() => {
|
|
30368
|
+
const unsubPlay = eventBus.on("UI:PLAY_SOUND", (event) => {
|
|
30369
|
+
const key = event.payload?.key;
|
|
30370
|
+
if (key) play(key);
|
|
30371
|
+
});
|
|
30372
|
+
const unsubStop = eventBus.on("UI:STOP_SOUND", (event) => {
|
|
30373
|
+
const key = event.payload?.key;
|
|
30374
|
+
if (key) {
|
|
30375
|
+
stop(key);
|
|
30376
|
+
} else {
|
|
30377
|
+
stopAll();
|
|
30378
|
+
}
|
|
30379
|
+
});
|
|
30380
|
+
const unsubChangeMusic = eventBus.on("UI:CHANGE_MUSIC", (event) => {
|
|
30381
|
+
const key = event.payload?.key;
|
|
30382
|
+
if (key) {
|
|
30383
|
+
playMusic(key);
|
|
30384
|
+
} else {
|
|
30385
|
+
stopMusic();
|
|
30386
|
+
}
|
|
30387
|
+
});
|
|
30388
|
+
const unsubStopMusic = eventBus.on("UI:STOP_MUSIC", () => {
|
|
30389
|
+
stopMusic();
|
|
30390
|
+
});
|
|
30391
|
+
return () => {
|
|
30392
|
+
unsubPlay();
|
|
30393
|
+
unsubStop();
|
|
30394
|
+
unsubChangeMusic();
|
|
30395
|
+
unsubStopMusic();
|
|
30396
|
+
};
|
|
30397
|
+
}, [eventBus, play, stop, stopAll, playMusic, stopMusic]);
|
|
30398
|
+
const value = { muted, setMuted, masterVolume, setMasterVolume, play, playMusic, stopMusic };
|
|
30399
|
+
return /* @__PURE__ */ jsx(GameAudioContext.Provider, { value, children });
|
|
30400
|
+
}
|
|
30401
|
+
var GameAudioContext;
|
|
30402
|
+
var init_GameAudioProvider = __esm({
|
|
30403
|
+
"components/game/shared/providers/GameAudioProvider.tsx"() {
|
|
30404
|
+
"use client";
|
|
30405
|
+
init_useEventBus();
|
|
30406
|
+
init_useGameAudio();
|
|
30407
|
+
GameAudioContext = createContext(null);
|
|
30408
|
+
GameAudioContext.displayName = "GameAudioContext";
|
|
30409
|
+
GameAudioProvider.displayName = "GameAudioProvider";
|
|
30410
|
+
}
|
|
30411
|
+
});
|
|
30412
|
+
function GameAudioToggle({
|
|
30413
|
+
size = "sm",
|
|
30414
|
+
className
|
|
30415
|
+
}) {
|
|
30416
|
+
const ctx = useGameAudioContextOptional();
|
|
30417
|
+
const [localMuted, setLocalMuted] = useState(false);
|
|
30418
|
+
const muted = ctx ? ctx.muted : localMuted;
|
|
30419
|
+
const setMuted = ctx ? ctx.setMuted : setLocalMuted;
|
|
30420
|
+
const handleToggle = useCallback(() => {
|
|
30421
|
+
setMuted(!muted);
|
|
30422
|
+
}, [muted, setMuted]);
|
|
30423
|
+
return /* @__PURE__ */ jsx(
|
|
30424
|
+
Button,
|
|
30425
|
+
{
|
|
30426
|
+
variant: "ghost",
|
|
30427
|
+
size,
|
|
30428
|
+
onClick: handleToggle,
|
|
30429
|
+
className: cn("text-lg leading-none px-2", className),
|
|
30430
|
+
"aria-pressed": muted,
|
|
30431
|
+
children: muted ? "\u{1F507}" : "\u{1F50A}"
|
|
30432
|
+
}
|
|
30433
|
+
);
|
|
30434
|
+
}
|
|
30435
|
+
var init_GameAudioToggle = __esm({
|
|
30436
|
+
"components/game/2d/atoms/GameAudioToggle.tsx"() {
|
|
30437
|
+
"use client";
|
|
30438
|
+
init_atoms();
|
|
30439
|
+
init_cn();
|
|
30440
|
+
init_GameAudioProvider();
|
|
30441
|
+
GameAudioToggle.displayName = "GameAudioToggle";
|
|
30442
|
+
}
|
|
30443
|
+
});
|
|
30381
30444
|
function useBattleState(initialUnits, eventConfig = {}, callbacks = {}) {
|
|
30382
30445
|
const eventBus = useEventBus();
|
|
30383
30446
|
const {
|
|
@@ -36437,6 +36500,8 @@ var init_VisualNovelTemplate = __esm({
|
|
|
36437
36500
|
VisualNovelTemplate.displayName = "VisualNovelTemplate";
|
|
36438
36501
|
}
|
|
36439
36502
|
});
|
|
36503
|
+
|
|
36504
|
+
// components/game/2d/molecules/index.ts
|
|
36440
36505
|
var init_molecules = __esm({
|
|
36441
36506
|
"components/game/2d/molecules/index.ts"() {
|
|
36442
36507
|
init_shared();
|
|
@@ -36469,6 +36534,7 @@ var init_molecules = __esm({
|
|
|
36469
36534
|
init_useUnitSpriteAtlas();
|
|
36470
36535
|
init_CanvasEffect();
|
|
36471
36536
|
init_useCanvasEffects();
|
|
36537
|
+
init_GameAudioProvider();
|
|
36472
36538
|
init_GameAudioToggle();
|
|
36473
36539
|
init_useGameAudio();
|
|
36474
36540
|
init_useCamera();
|
|
@@ -36909,13 +36975,13 @@ var init_MapView = __esm({
|
|
|
36909
36975
|
shadowSize: [41, 41]
|
|
36910
36976
|
});
|
|
36911
36977
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
36912
|
-
const { useEffect:
|
|
36978
|
+
const { useEffect: useEffect79, useRef: useRef78, useCallback: useCallback127, useState: useState119 } = React80__default;
|
|
36913
36979
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
36914
36980
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
36915
36981
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
36916
36982
|
const map = useMap();
|
|
36917
36983
|
const prevRef = useRef78({ centerLat, centerLng, zoom });
|
|
36918
|
-
|
|
36984
|
+
useEffect79(() => {
|
|
36919
36985
|
const prev = prevRef.current;
|
|
36920
36986
|
if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
|
|
36921
36987
|
map.setView([centerLat, centerLng], zoom);
|
|
@@ -36926,7 +36992,7 @@ var init_MapView = __esm({
|
|
|
36926
36992
|
}
|
|
36927
36993
|
function MapClickHandler({ onMapClick }) {
|
|
36928
36994
|
const map = useMap();
|
|
36929
|
-
|
|
36995
|
+
useEffect79(() => {
|
|
36930
36996
|
if (!onMapClick) return;
|
|
36931
36997
|
const handler = (e) => {
|
|
36932
36998
|
onMapClick(e.latlng.lat, e.latlng.lng);
|
|
@@ -56546,4 +56612,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
|
|
|
56546
56612
|
});
|
|
56547
56613
|
}
|
|
56548
56614
|
|
|
56549
|
-
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, Aside, AssetPicker, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BehaviorView, BloomQuizBlock, BoardgameBoard, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, BranchingLogicBuilder, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, Canvas2D, CanvasEffect, Card, CardBattlerBoard, CardBattlerTemplate, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, ChatBar, Checkbox, ChoiceButton, CityBuilderBoard, CityBuilderTemplate, ClassifierBoard, Coachmark, CodeBlock, CodeRunnerPanel, CollapsibleSection, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ContentSection, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTIONS, DEFAULT_MATRIX_COLUMNS, DEFAULT_SLOTS, DIAMOND_TOP_Y, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangePicker, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, Dialog, DialogueBubble, Divider, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EMPTY_EFFECT_STATE, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FileTree, FilterGroup, FilterPill, FishingBoard, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioToggle, GameCard, GameHud, GameIcon, GameMenu, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, HStack, Header, HealthBar, HeroOrganism, HeroSection, HexStrategyBoard, HolidayRunnerBoard, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, IconPicker, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, ItemSlot, JazariStateMachine, JsonTreeEditor, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LikertScale, LineChart2 as LineChart, List3 as List, LoadingState, MapView, MarkdownContent, MarketingFooter, MarketingStatCard, MasterDetail, MasterDetailLayout, MatchPuzzleBoard, MatrixQuestion, MediaGallery, Menu, Meter, MiniMap, MinigolfBoard, Modal, ModalSlot, ModuleCard, Navigation, NegotiatorBoard, NodeSlotEditor, NotifyListener, NumberStepper, ObjectRulePanel, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PinballBoard, PirateBoard, PlatformerBoard, PlatformerTemplate, Popover, PositionedCanvas, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PropertyInspector, PullQuote, PullToRefresh, QrScanner, QuizBlock, RacingBoard, Radio, RangeSlider, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, ResourceBar, ResourceCounter, RichBlockEditor, RoguelikeBoard, RoguelikeTemplate, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SectionHeader, SegmentRenderer, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SokobanBoard, SortableList, SpaceShmupBoard, SpaceStationBoard, Spacer, Sparkline, Spinner, Split, SplitPane, SplitSection, SportsBoard, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateJsonView, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SubagentTracePanel, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagCloud, TagInput, TanksBoard, TeamCard, TeamOrganism, TerrainPalette, TextHighlight, Textarea, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TopDownShooterBoard, TopDownShooterTemplate, TowerDefenseBoard, TowerDefenseTemplate, TraitFrame, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UploadDropZone, VStack, VariablePanel, VersionDiff, ViolationAlert, VisualNovelBoard, VisualNovelTemplate, VoteStack, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, boardEntity, bool, calculateAttackTargets, calculateValidMoves, cn, createCombatPresets, createInitialGameState, createTranslate, createUnitAnimationState, drawEffectState, drawSprite, drawTintedImage, getAllEffectSpriteUrls, getCurrentFrame, getTileDimensions, hasActiveEffects, inferDirection, isoToScreen, makeAsset, makeAssetMap, mapBookData, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, parseLessonSegments, parseMarkdownWithCodeBlocks, parseQueryBinding, pendulum, projectileMotion, resolveFieldMap, resolveFrame, resolveSheetDirection, rows, screenToIso, spawnOverlay, spawnParticles, spawnSequence, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, updateEffectState, useAgentChat, useAnchorRect, useAuthContext, useBattleState, useCamera, useCanvasEffects, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSwipeGesture, useTapReveal, useTraitListens, useTranslate135 as useTranslate, useUIEvents, useUISlotManager, useUnitSpriteAtlas, useValidation, vec2 };
|
|
56615
|
+
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, Aside, AssetPicker, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BehaviorView, BloomQuizBlock, BoardgameBoard, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, BranchingLogicBuilder, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, Canvas2D, CanvasEffect, Card, CardBattlerBoard, CardBattlerTemplate, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, ChatBar, Checkbox, ChoiceButton, CityBuilderBoard, CityBuilderTemplate, ClassifierBoard, Coachmark, CodeBlock, CodeRunnerPanel, CollapsibleSection, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ContentSection, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTIONS, DEFAULT_MATRIX_COLUMNS, DEFAULT_SLOTS, DIAMOND_TOP_Y, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangePicker, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, Dialog, DialogueBubble, Divider, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EMPTY_EFFECT_STATE, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FileTree, FilterGroup, FilterPill, FishingBoard, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCard, GameHud, GameIcon, GameMenu, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, HStack, Header, HealthBar, HeroOrganism, HeroSection, HexStrategyBoard, HolidayRunnerBoard, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, IconPicker, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, ItemSlot, JazariStateMachine, JsonTreeEditor, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LikertScale, LineChart2 as LineChart, List3 as List, LoadingState, MapView, MarkdownContent, MarketingFooter, MarketingStatCard, MasterDetail, MasterDetailLayout, MatchPuzzleBoard, MatrixQuestion, MediaGallery, Menu, Meter, MiniMap, MinigolfBoard, Modal, ModalSlot, ModuleCard, Navigation, NegotiatorBoard, NodeSlotEditor, NotifyListener, NumberStepper, ObjectRulePanel, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PinballBoard, PirateBoard, PlatformerBoard, PlatformerTemplate, Popover, PositionedCanvas, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PropertyInspector, PullQuote, PullToRefresh, QrScanner, QuizBlock, RacingBoard, Radio, RangeSlider, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, ResourceBar, ResourceCounter, RichBlockEditor, RoguelikeBoard, RoguelikeTemplate, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SectionHeader, SegmentRenderer, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SokobanBoard, SortableList, SpaceShmupBoard, SpaceStationBoard, Spacer, Sparkline, Spinner, Split, SplitPane, SplitSection, SportsBoard, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateJsonView, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SubagentTracePanel, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagCloud, TagInput, TanksBoard, TeamCard, TeamOrganism, TerrainPalette, TextHighlight, Textarea, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TopDownShooterBoard, TopDownShooterTemplate, TowerDefenseBoard, TowerDefenseTemplate, TraitFrame, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UploadDropZone, VStack, VariablePanel, VersionDiff, ViolationAlert, VisualNovelBoard, VisualNovelTemplate, VoteStack, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, boardEntity, bool, calculateAttackTargets, calculateValidMoves, cn, createCombatPresets, createInitialGameState, createTranslate, createUnitAnimationState, drawEffectState, drawSprite, drawTintedImage, getAllEffectSpriteUrls, getCurrentFrame, getTileDimensions, hasActiveEffects, inferDirection, isoToScreen, makeAsset, makeAssetMap, mapBookData, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, parseLessonSegments, parseMarkdownWithCodeBlocks, parseQueryBinding, pendulum, projectileMotion, resolveFieldMap, resolveFrame, resolveSheetDirection, rows, screenToIso, spawnOverlay, spawnParticles, spawnSequence, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, updateEffectState, useAgentChat, useAnchorRect, useAuthContext, useBattleState, useCamera, useCanvasEffects, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useLongPress, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSwipeGesture, useTapReveal, useTraitListens, useTranslate135 as useTranslate, useUIEvents, useUISlotManager, useUnitSpriteAtlas, useValidation, vec2 };
|