@almadar/ui 5.152.0 → 5.154.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/{EntityBindingContext-CD9ZoXb4.d.cts → EntityBindingContext-BfZGeDfX.d.cts} +4 -2
- package/dist/{EntityBindingContext-CD9ZoXb4.d.ts → EntityBindingContext-BfZGeDfX.d.ts} +4 -2
- package/dist/NavStackContext-BoVV9nWb.d.cts +83 -0
- package/dist/NavStackContext-BoVV9nWb.d.ts +83 -0
- package/dist/avl/index.cjs +571 -76
- package/dist/avl/index.js +572 -77
- package/dist/{avl-schema-parser-Cx_4SVg9.d.ts → avl-schema-parser-CLIm28Wa.d.ts} +1 -1
- package/dist/{avl-schema-parser-CVzkNzg7.d.cts → avl-schema-parser-Do_LPV1o.d.cts} +1 -1
- package/dist/{cn-DJTUjk1M.d.ts → cn-CFurBb2q.d.ts} +1 -1
- package/dist/{cn-BnAJZcNb.d.cts → cn-TH-RHihd.d.cts} +1 -1
- package/dist/components/index.cjs +502 -52
- package/dist/components/index.d.cts +58 -9
- package/dist/components/index.d.ts +58 -9
- package/dist/components/index.js +501 -55
- package/dist/hooks/index.cjs +4 -0
- package/dist/hooks/index.d.cts +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/lib/drawable/three/index.cjs +212 -0
- package/dist/lib/drawable/three/index.d.cts +3 -3
- package/dist/lib/drawable/three/index.d.ts +3 -3
- package/dist/lib/drawable/three/index.js +212 -0
- package/dist/lib/index.d.cts +2 -2
- package/dist/lib/index.d.ts +2 -2
- package/dist/{paintDispatch-CxdLjHQq.d.ts → paintDispatch-B5n2DTB-.d.ts} +178 -2
- package/dist/{paintDispatch-BjZjUbcb.d.cts → paintDispatch-DgBctxIq.d.cts} +178 -2
- package/dist/providers/index.cjs +677 -59
- package/dist/providers/index.d.cts +2 -1
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/index.js +677 -62
- package/dist/runtime/index.cjs +570 -75
- package/dist/runtime/index.d.cts +12 -5
- package/dist/runtime/index.d.ts +12 -5
- package/dist/runtime/index.js +571 -76
- package/package.json +4 -4
|
@@ -5224,27 +5224,61 @@ var init_InfiniteScrollSentinel = __esm({
|
|
|
5224
5224
|
exports.InfiniteScrollSentinel.displayName = "InfiniteScrollSentinel";
|
|
5225
5225
|
}
|
|
5226
5226
|
});
|
|
5227
|
-
|
|
5228
|
-
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5227
|
+
|
|
5228
|
+
// components/core/atoms/fx.ts
|
|
5229
|
+
function resolveFxView(item, presets) {
|
|
5230
|
+
const row = presets?.find((p) => p.type === item.type);
|
|
5231
|
+
if (!row) return item;
|
|
5232
|
+
return {
|
|
5233
|
+
...item,
|
|
5234
|
+
space: item.space ?? row.space,
|
|
5235
|
+
effect: item.effect ?? row.effect,
|
|
5236
|
+
color: item.color ?? row.color,
|
|
5237
|
+
size: item.size ?? row.size,
|
|
5238
|
+
vx: item.vx ?? row.vx,
|
|
5239
|
+
vy: item.vy ?? row.vy,
|
|
5240
|
+
vz: item.vz ?? row.vz,
|
|
5241
|
+
particleCount: item.particleCount ?? row.particleCount,
|
|
5242
|
+
shape: row.shape,
|
|
5243
|
+
count: row.count,
|
|
5244
|
+
glow: row.glow,
|
|
5245
|
+
gravity: row.gravity,
|
|
5246
|
+
color2: row.color2
|
|
5247
|
+
};
|
|
5241
5248
|
}
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
|
|
5249
|
+
function fxLifecycle(item, epochNowMs, tickMs) {
|
|
5250
|
+
const maxTtl = Math.max(item.maxTtl ?? item.ttl, item.ttl, 1);
|
|
5251
|
+
const lifeMs = maxTtl * tickMs;
|
|
5252
|
+
const ageMs = item.bornAt !== void 0 && epochNowMs > 0 ? Math.max(0, epochNowMs - item.bornAt) : (1 - item.ttl / maxTtl) * lifeMs;
|
|
5253
|
+
const progress = Math.min(1, Math.max(0, ageMs / lifeMs));
|
|
5254
|
+
return { lifeMs, ageMs, progress, fade: 1 - progress };
|
|
5255
|
+
}
|
|
5256
|
+
function fxHash01(seed, salt) {
|
|
5257
|
+
let h = 2166136261 ^ salt;
|
|
5258
|
+
for (let i = 0; i < seed.length; i++) {
|
|
5259
|
+
h ^= seed.charCodeAt(i);
|
|
5260
|
+
h = Math.imul(h, 16777619);
|
|
5261
|
+
}
|
|
5262
|
+
h ^= h >>> 13;
|
|
5263
|
+
h = Math.imul(h, 1274126177);
|
|
5264
|
+
h ^= h >>> 16;
|
|
5265
|
+
return (h >>> 0) / 4294967296;
|
|
5266
|
+
}
|
|
5267
|
+
function createConfettiParticles(count, seed) {
|
|
5268
|
+
return Array.from({ length: count }, (_, i) => ({
|
|
5269
|
+
id: i,
|
|
5270
|
+
color: CONFETTI_COLORS[Math.floor(fxHash01(seed, i * 7 + 1) * CONFETTI_COLORS.length)],
|
|
5271
|
+
left: 30 + fxHash01(seed, i * 7 + 2) * 40,
|
|
5272
|
+
delay: fxHash01(seed, i * 7 + 3) * 300,
|
|
5273
|
+
angle: fxHash01(seed, i * 7 + 4) * 360,
|
|
5274
|
+
distance: 40 + fxHash01(seed, i * 7 + 5) * 80,
|
|
5275
|
+
rotation: fxHash01(seed, i * 7 + 6) * 720 - 360,
|
|
5276
|
+
size: 4 + fxHash01(seed, i * 7 + 7) * 6
|
|
5277
|
+
}));
|
|
5278
|
+
}
|
|
5279
|
+
var CONFETTI_COLORS, CONFETTI_BURST_KEYFRAMES;
|
|
5280
|
+
var init_fx = __esm({
|
|
5281
|
+
"components/core/atoms/fx.ts"() {
|
|
5248
5282
|
CONFETTI_COLORS = [
|
|
5249
5283
|
"var(--color-primary)",
|
|
5250
5284
|
"var(--color-success)",
|
|
@@ -5253,7 +5287,30 @@ var init_ConfettiEffect = __esm({
|
|
|
5253
5287
|
"gold",
|
|
5254
5288
|
"dodgerblue"
|
|
5255
5289
|
];
|
|
5256
|
-
|
|
5290
|
+
CONFETTI_BURST_KEYFRAMES = `
|
|
5291
|
+
@keyframes confetti-burst {
|
|
5292
|
+
0% {
|
|
5293
|
+
opacity: 1;
|
|
5294
|
+
transform: translate(0, 0) rotate(0deg) scale(1);
|
|
5295
|
+
}
|
|
5296
|
+
70% {
|
|
5297
|
+
opacity: 1;
|
|
5298
|
+
}
|
|
5299
|
+
100% {
|
|
5300
|
+
opacity: 0;
|
|
5301
|
+
transform: translate(var(--confetti-tx), var(--confetti-ty)) rotate(var(--confetti-rotate)) scale(0.5);
|
|
5302
|
+
}
|
|
5303
|
+
}
|
|
5304
|
+
`;
|
|
5305
|
+
}
|
|
5306
|
+
});
|
|
5307
|
+
exports.ConfettiEffect = void 0;
|
|
5308
|
+
var init_ConfettiEffect = __esm({
|
|
5309
|
+
"components/core/atoms/ConfettiEffect.tsx"() {
|
|
5310
|
+
"use client";
|
|
5311
|
+
init_cn();
|
|
5312
|
+
init_Box();
|
|
5313
|
+
init_fx();
|
|
5257
5314
|
exports.ConfettiEffect = ({
|
|
5258
5315
|
trigger,
|
|
5259
5316
|
duration = 2e3,
|
|
@@ -5262,11 +5319,13 @@ var init_ConfettiEffect = __esm({
|
|
|
5262
5319
|
}) => {
|
|
5263
5320
|
const [particles, setParticles] = React77.useState([]);
|
|
5264
5321
|
const previousTriggerRef = React77.useRef(false);
|
|
5322
|
+
const burstRef = React77.useRef(0);
|
|
5265
5323
|
React77.useEffect(() => {
|
|
5266
5324
|
const wasFalse = !previousTriggerRef.current;
|
|
5267
5325
|
previousTriggerRef.current = trigger;
|
|
5268
5326
|
if (trigger && wasFalse) {
|
|
5269
|
-
|
|
5327
|
+
burstRef.current += 1;
|
|
5328
|
+
const newParticles = createConfettiParticles(particleCount, `confetti-${burstRef.current}`);
|
|
5270
5329
|
setParticles(newParticles);
|
|
5271
5330
|
const timer = window.setTimeout(() => {
|
|
5272
5331
|
setParticles([]);
|
|
@@ -5314,21 +5373,7 @@ var init_ConfettiEffect = __esm({
|
|
|
5314
5373
|
p.id
|
|
5315
5374
|
);
|
|
5316
5375
|
}),
|
|
5317
|
-
/* @__PURE__ */ jsxRuntime.jsx("style", { children:
|
|
5318
|
-
@keyframes confetti-burst {
|
|
5319
|
-
0% {
|
|
5320
|
-
opacity: 1;
|
|
5321
|
-
transform: translate(0, 0) rotate(0deg) scale(1);
|
|
5322
|
-
}
|
|
5323
|
-
70% {
|
|
5324
|
-
opacity: 1;
|
|
5325
|
-
}
|
|
5326
|
-
100% {
|
|
5327
|
-
opacity: 0;
|
|
5328
|
-
transform: translate(var(--confetti-tx), var(--confetti-ty)) rotate(var(--confetti-rotate)) scale(0.5);
|
|
5329
|
-
}
|
|
5330
|
-
}
|
|
5331
|
-
` })
|
|
5376
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: CONFETTI_BURST_KEYFRAMES })
|
|
5332
5377
|
]
|
|
5333
5378
|
}
|
|
5334
5379
|
);
|
|
@@ -16156,17 +16201,27 @@ var init_Breadcrumb = __esm({
|
|
|
16156
16201
|
init_useEventBus();
|
|
16157
16202
|
exports.Breadcrumb = ({
|
|
16158
16203
|
items,
|
|
16204
|
+
fromNavStack = false,
|
|
16205
|
+
itemEvent,
|
|
16159
16206
|
separator = "chevron-right",
|
|
16160
16207
|
maxItems,
|
|
16161
16208
|
className
|
|
16162
16209
|
}) => {
|
|
16163
16210
|
const eventBus = useEventBus();
|
|
16164
16211
|
const { t } = hooks.useTranslate();
|
|
16165
|
-
const
|
|
16166
|
-
|
|
16212
|
+
const navStack = providers.useNavStack();
|
|
16213
|
+
const sourceItems = fromNavStack ? navStack.entries.map((entry, i) => ({
|
|
16214
|
+
label: entry.label,
|
|
16215
|
+
path: entry.href,
|
|
16216
|
+
isCurrent: i === navStack.entries.length - 1,
|
|
16217
|
+
event: itemEvent
|
|
16218
|
+
})) : items ?? [];
|
|
16219
|
+
if (fromNavStack && sourceItems.length === 0) return null;
|
|
16220
|
+
const displayItems = maxItems && sourceItems.length > maxItems ? [
|
|
16221
|
+
...sourceItems.slice(0, 1),
|
|
16167
16222
|
{ label: "...", isCurrent: false },
|
|
16168
|
-
...
|
|
16169
|
-
] :
|
|
16223
|
+
...sourceItems.slice(-maxItems + 1)
|
|
16224
|
+
] : sourceItems;
|
|
16170
16225
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16171
16226
|
"nav",
|
|
16172
16227
|
{
|
|
@@ -16176,7 +16231,7 @@ var init_Breadcrumb = __esm({
|
|
|
16176
16231
|
const isLast = index === displayItems.length - 1;
|
|
16177
16232
|
const isEllipsis = item.label === "...";
|
|
16178
16233
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-2", children: [
|
|
16179
|
-
isEllipsis ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", color: "muted", children: item.label }) : item.href || item.path ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16234
|
+
isEllipsis ? /* @__PURE__ */ jsxRuntime.jsx(exports.Typography, { variant: "small", color: "muted", children: item.label }) : (item.href || item.path) && !item.event && !fromNavStack ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16180
16235
|
"a",
|
|
16181
16236
|
{
|
|
16182
16237
|
href: item.href || item.path,
|
|
@@ -16202,7 +16257,12 @@ var init_Breadcrumb = __esm({
|
|
|
16202
16257
|
{
|
|
16203
16258
|
type: "button",
|
|
16204
16259
|
onClick: () => {
|
|
16205
|
-
|
|
16260
|
+
const href = item.path ?? item.href;
|
|
16261
|
+
if (item.event) {
|
|
16262
|
+
eventBus.emit(`UI:${item.event}`, { label: item.label, href, index });
|
|
16263
|
+
} else if (fromNavStack && href) {
|
|
16264
|
+
navStack.goTo(href);
|
|
16265
|
+
}
|
|
16206
16266
|
item.onClick?.();
|
|
16207
16267
|
},
|
|
16208
16268
|
className: cn(
|
|
@@ -18132,7 +18192,7 @@ var init_DrawShape = __esm({
|
|
|
18132
18192
|
const cx = p.x + (node.offsetX ?? 0) * tw;
|
|
18133
18193
|
const cy = p.y + (node.offsetY ?? 0) * tw;
|
|
18134
18194
|
const rx = (node.radiusX ?? 0) * tw;
|
|
18135
|
-
const ry = (node.radiusY ??
|
|
18195
|
+
const ry = (node.radiusY ?? node.radiusX ?? 0) * tw;
|
|
18136
18196
|
if (pxFill) painter.fillEllipse(cx, cy, rx, ry, pxFill);
|
|
18137
18197
|
if (patFill) painter.fillEllipse(cx, cy, rx, ry, patFill);
|
|
18138
18198
|
if (pxStroke) painter.strokeEllipse(cx, cy, rx, ry, pxStroke, strokePx);
|
|
@@ -18322,6 +18382,172 @@ var init_DrawTextLayer = __esm({
|
|
|
18322
18382
|
};
|
|
18323
18383
|
}
|
|
18324
18384
|
});
|
|
18385
|
+
|
|
18386
|
+
// components/game/molecules/DrawFxLayer.tsx
|
|
18387
|
+
function fxPosition(view, dim, ageSec) {
|
|
18388
|
+
const g = view.gravity ?? 0;
|
|
18389
|
+
const fall = 0.5 * g * ageSec * ageSec;
|
|
18390
|
+
{
|
|
18391
|
+
const base2 = view.position ?? { x: view.x, y: view.z ?? view.y ?? 0 };
|
|
18392
|
+
if (!Number.isFinite(base2.x) || !Number.isFinite(base2.y)) return void 0;
|
|
18393
|
+
return {
|
|
18394
|
+
x: base2.x + (view.vx ?? 0) * ageSec,
|
|
18395
|
+
y: base2.y + (view.vz ?? 0) * ageSec + fall
|
|
18396
|
+
};
|
|
18397
|
+
}
|
|
18398
|
+
}
|
|
18399
|
+
function sparkShape(view, pos, i, fade, progress) {
|
|
18400
|
+
const size = view.size ?? 0.5;
|
|
18401
|
+
const angle = fxHash01(view.id, i * 3) * Math.PI * 2;
|
|
18402
|
+
const dist = size * (0.4 + 0.6 * fxHash01(view.id, i * 3 + 1)) * easeOut2(progress);
|
|
18403
|
+
const r = size * (0.06 + 0.06 * fxHash01(view.id, i * 3 + 2));
|
|
18404
|
+
const color = view.color ?? DEFAULT_SPARK_COLOR;
|
|
18405
|
+
return {
|
|
18406
|
+
type: "draw-shape",
|
|
18407
|
+
shape: "ellipse",
|
|
18408
|
+
position: { ...pos, x: pos.x + Math.cos(angle) * dist, y: pos.y + Math.sin(angle) * dist },
|
|
18409
|
+
anchor: "center",
|
|
18410
|
+
radiusX: r,
|
|
18411
|
+
fill: color,
|
|
18412
|
+
blendMode: "lighter",
|
|
18413
|
+
opacity: fade,
|
|
18414
|
+
...view.glow ? { shadow: { color, blur: view.glow } } : {}
|
|
18415
|
+
};
|
|
18416
|
+
}
|
|
18417
|
+
function proceduralShapes(view, pos, fade, progress) {
|
|
18418
|
+
const size = view.size ?? 0.5;
|
|
18419
|
+
const color = view.color ?? DEFAULT_SPARK_COLOR;
|
|
18420
|
+
switch (view.shape ?? "spark") {
|
|
18421
|
+
case "ring": {
|
|
18422
|
+
return [
|
|
18423
|
+
{
|
|
18424
|
+
type: "draw-shape",
|
|
18425
|
+
shape: "ellipse",
|
|
18426
|
+
position: pos,
|
|
18427
|
+
anchor: "center",
|
|
18428
|
+
radiusX: size * easeOut2(progress),
|
|
18429
|
+
stroke: view.color2 ?? color,
|
|
18430
|
+
strokeWidth: 2,
|
|
18431
|
+
blendMode: "lighter",
|
|
18432
|
+
opacity: fade,
|
|
18433
|
+
...view.glow ? { shadow: { color, blur: view.glow } } : {}
|
|
18434
|
+
}
|
|
18435
|
+
];
|
|
18436
|
+
}
|
|
18437
|
+
case "puff": {
|
|
18438
|
+
const count = view.count ?? 3;
|
|
18439
|
+
return Array.from({ length: count }, (_, i) => {
|
|
18440
|
+
const angle = fxHash01(view.id, i * 5) * Math.PI * 2;
|
|
18441
|
+
const drift = size * 0.3 * fxHash01(view.id, i * 5 + 1) * easeOut2(progress);
|
|
18442
|
+
return {
|
|
18443
|
+
type: "draw-shape",
|
|
18444
|
+
shape: "ellipse",
|
|
18445
|
+
position: { ...pos, x: pos.x + Math.cos(angle) * drift, y: pos.y + Math.sin(angle) * drift },
|
|
18446
|
+
anchor: "center",
|
|
18447
|
+
radiusX: size * (0.15 + 0.35 * progress) * (0.7 + 0.6 * fxHash01(view.id, i * 5 + 2)),
|
|
18448
|
+
fill: i === 0 && view.color2 ? view.color2 : color,
|
|
18449
|
+
opacity: fade * 0.6,
|
|
18450
|
+
...view.glow ? { shadow: { color, blur: view.glow } } : {}
|
|
18451
|
+
};
|
|
18452
|
+
});
|
|
18453
|
+
}
|
|
18454
|
+
case "streak": {
|
|
18455
|
+
const count = view.count ?? 5;
|
|
18456
|
+
return Array.from({ length: count }, (_, i) => {
|
|
18457
|
+
const angle = fxHash01(view.id, i * 3) * Math.PI * 2;
|
|
18458
|
+
const inner = size * (0.2 + 0.8 * easeOut2(progress)) * (0.6 + 0.4 * fxHash01(view.id, i * 3 + 1));
|
|
18459
|
+
const len = size * 0.35;
|
|
18460
|
+
return {
|
|
18461
|
+
type: "draw-shape",
|
|
18462
|
+
shape: "ellipse",
|
|
18463
|
+
position: pos,
|
|
18464
|
+
anchor: "center",
|
|
18465
|
+
offsetX: inner + len / 2,
|
|
18466
|
+
offsetY: 0,
|
|
18467
|
+
radiusX: len / 2,
|
|
18468
|
+
radiusY: size * 0.04,
|
|
18469
|
+
rotate: angle,
|
|
18470
|
+
fill: color,
|
|
18471
|
+
blendMode: "lighter",
|
|
18472
|
+
opacity: fade,
|
|
18473
|
+
...view.glow ? { shadow: { color, blur: view.glow } } : {}
|
|
18474
|
+
};
|
|
18475
|
+
});
|
|
18476
|
+
}
|
|
18477
|
+
default: {
|
|
18478
|
+
const count = view.count ?? 6;
|
|
18479
|
+
return Array.from({ length: count }, (_, i) => sparkShape(view, pos, i, fade, progress));
|
|
18480
|
+
}
|
|
18481
|
+
}
|
|
18482
|
+
}
|
|
18483
|
+
function expandFxItem(view, node, epochNowMs, dim) {
|
|
18484
|
+
if (view.space === "screen") return [];
|
|
18485
|
+
const tickMs = node.tickMs ?? DEFAULT_TICK_MS;
|
|
18486
|
+
const { ageMs, progress, fade } = fxLifecycle(view, epochNowMs, tickMs);
|
|
18487
|
+
if (progress >= 1) return [];
|
|
18488
|
+
const pos = fxPosition(view, dim, ageMs / 1e3);
|
|
18489
|
+
if (!pos) return [];
|
|
18490
|
+
const out = [];
|
|
18491
|
+
const artItems = node.art?.[view.type]?.["idle"];
|
|
18492
|
+
const sprite = node.sprites?.[view.type];
|
|
18493
|
+
if (Array.isArray(artItems)) {
|
|
18494
|
+
out.push({
|
|
18495
|
+
type: "draw-group",
|
|
18496
|
+
position: pos,
|
|
18497
|
+
opacity: fade,
|
|
18498
|
+
...view.size !== void 0 ? { scale: view.size } : {},
|
|
18499
|
+
items: artItems
|
|
18500
|
+
});
|
|
18501
|
+
} else if (sprite?.url) {
|
|
18502
|
+
const spriteSize = view.size ?? 0.6;
|
|
18503
|
+
out.push({
|
|
18504
|
+
type: "draw-sprite",
|
|
18505
|
+
position: pos,
|
|
18506
|
+
asset: sprite,
|
|
18507
|
+
anchor: "center",
|
|
18508
|
+
width: spriteSize,
|
|
18509
|
+
height: spriteSize,
|
|
18510
|
+
opacity: fade
|
|
18511
|
+
});
|
|
18512
|
+
} else {
|
|
18513
|
+
out.push(...proceduralShapes(view, pos, fade, progress));
|
|
18514
|
+
}
|
|
18515
|
+
if (view.message) {
|
|
18516
|
+
const text = {
|
|
18517
|
+
type: "draw-text",
|
|
18518
|
+
text: view.message,
|
|
18519
|
+
position: pos,
|
|
18520
|
+
offsetY: -(0.15 + 0.55 * progress),
|
|
18521
|
+
color: view.color ?? node.textColor ?? DEFAULT_TEXT_COLOR,
|
|
18522
|
+
opacity: fade
|
|
18523
|
+
};
|
|
18524
|
+
out.push(text);
|
|
18525
|
+
}
|
|
18526
|
+
return out;
|
|
18527
|
+
}
|
|
18528
|
+
function expandFxLayer(node, epochNowMs, dim) {
|
|
18529
|
+
if (!Array.isArray(node.items)) return [];
|
|
18530
|
+
const out = [];
|
|
18531
|
+
for (const item of node.items) {
|
|
18532
|
+
if (!item || typeof item.id !== "string") continue;
|
|
18533
|
+
out.push(...expandFxItem(resolveFxView(item, node.presets), node, epochNowMs, dim));
|
|
18534
|
+
}
|
|
18535
|
+
return out;
|
|
18536
|
+
}
|
|
18537
|
+
function DrawFxLayer(_props) {
|
|
18538
|
+
return null;
|
|
18539
|
+
}
|
|
18540
|
+
var DEFAULT_TICK_MS, DEFAULT_TEXT_COLOR, DEFAULT_SPARK_COLOR, easeOut2;
|
|
18541
|
+
var init_DrawFxLayer = __esm({
|
|
18542
|
+
"components/game/molecules/DrawFxLayer.tsx"() {
|
|
18543
|
+
"use client";
|
|
18544
|
+
init_fx();
|
|
18545
|
+
DEFAULT_TICK_MS = 500;
|
|
18546
|
+
DEFAULT_TEXT_COLOR = "#ffe066";
|
|
18547
|
+
DEFAULT_SPARK_COLOR = "#ffffff";
|
|
18548
|
+
easeOut2 = (t) => 1 - (1 - t) * (1 - t);
|
|
18549
|
+
}
|
|
18550
|
+
});
|
|
18325
18551
|
function paintDrawable(painter, node, dctx) {
|
|
18326
18552
|
switch (node.type) {
|
|
18327
18553
|
case "draw-sprite":
|
|
@@ -18369,6 +18595,11 @@ function paintDrawable(painter, node, dctx) {
|
|
|
18369
18595
|
case "draw-text-layer":
|
|
18370
18596
|
paintTextLayer(painter, node, dctx);
|
|
18371
18597
|
break;
|
|
18598
|
+
case "draw-fx-layer": {
|
|
18599
|
+
const epochNow = dctx.time > 0 && typeof performance !== "undefined" ? performance.timeOrigin + dctx.time : 0;
|
|
18600
|
+
for (const child of expandFxLayer(node, epochNow, "2d")) paintDrawable(painter, child, dctx);
|
|
18601
|
+
break;
|
|
18602
|
+
}
|
|
18372
18603
|
}
|
|
18373
18604
|
}
|
|
18374
18605
|
var paint2dLog, warnedUnsupported2d, warnUnsupported2d;
|
|
@@ -18383,6 +18614,7 @@ var init_paintDispatch = __esm({
|
|
|
18383
18614
|
init_DrawSpriteLayer();
|
|
18384
18615
|
init_DrawShapeLayer();
|
|
18385
18616
|
init_DrawTextLayer();
|
|
18617
|
+
init_DrawFxLayer();
|
|
18386
18618
|
paint2dLog = logger.createLogger("almadar:ui:drawable-2d");
|
|
18387
18619
|
warnedUnsupported2d = /* @__PURE__ */ new Set();
|
|
18388
18620
|
warnUnsupported2d = (kind) => {
|
|
@@ -18631,6 +18863,7 @@ function Canvas2D({
|
|
|
18631
18863
|
return isAnimatedGroup(node) || Array.isArray(node.items) && node.items.some(drawableIsAnimated);
|
|
18632
18864
|
if (node.type === "draw-shape-layer") return Array.isArray(node.items) && node.items.some(isAnimatedShape);
|
|
18633
18865
|
if (node.type === "draw-sprite-layer") return Array.isArray(node.items) && node.items.some(isAnimatedSprite);
|
|
18866
|
+
if (node.type === "draw-fx-layer") return Array.isArray(node.items) && node.items.length > 0;
|
|
18634
18867
|
return false;
|
|
18635
18868
|
};
|
|
18636
18869
|
const animRafRef = React77.useRef(0);
|
|
@@ -26553,6 +26786,196 @@ var init_PageTransition = __esm({
|
|
|
26553
26786
|
exports.PageTransition.displayName = "PageTransition";
|
|
26554
26787
|
}
|
|
26555
26788
|
});
|
|
26789
|
+
function ConfettiBurst({ item, lifeMs }) {
|
|
26790
|
+
const particles = createConfettiParticles(item.particleCount ?? 30, item.id);
|
|
26791
|
+
const left = (item.x ?? 0.5) * 100;
|
|
26792
|
+
const top = (item.z ?? item.y ?? 0.4) * 100;
|
|
26793
|
+
return /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { position: "absolute", style: { left: `${left}%`, top: `${top}%` }, children: particles.map((p) => {
|
|
26794
|
+
const rad = p.angle * Math.PI / 180;
|
|
26795
|
+
const tx = Math.cos(rad) * p.distance * (item.size ?? 1);
|
|
26796
|
+
const ty = Math.sin(rad) * p.distance * (item.size ?? 1) - 20;
|
|
26797
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26798
|
+
exports.Box,
|
|
26799
|
+
{
|
|
26800
|
+
className: "absolute rounded-sm",
|
|
26801
|
+
style: {
|
|
26802
|
+
left: (p.left - 50) * 2,
|
|
26803
|
+
top: -10,
|
|
26804
|
+
width: p.size,
|
|
26805
|
+
height: p.size,
|
|
26806
|
+
backgroundColor: item.color ?? p.color,
|
|
26807
|
+
animation: `confetti-burst ${Math.max(lifeMs - p.delay, 200)}ms ease-out ${p.delay}ms forwards`,
|
|
26808
|
+
opacity: 0,
|
|
26809
|
+
"--confetti-tx": `${tx}px`,
|
|
26810
|
+
"--confetti-ty": `${ty}px`,
|
|
26811
|
+
"--confetti-rotate": `${p.rotation}deg`
|
|
26812
|
+
}
|
|
26813
|
+
},
|
|
26814
|
+
p.id
|
|
26815
|
+
);
|
|
26816
|
+
}) });
|
|
26817
|
+
}
|
|
26818
|
+
function SparkleBurst({ item, lifeMs }) {
|
|
26819
|
+
const count = item.particleCount ?? 8;
|
|
26820
|
+
const scale = item.size ?? 1;
|
|
26821
|
+
const left = (item.x ?? 0.5) * 100;
|
|
26822
|
+
const top = (item.z ?? item.y ?? 0.4) * 100;
|
|
26823
|
+
return /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { position: "absolute", style: { left: `${left}%`, top: `${top}%` }, children: Array.from({ length: count }, (_, i) => {
|
|
26824
|
+
const dx = (fxHash01(item.id, i * 4) - 0.5) * 160 * scale;
|
|
26825
|
+
const dy = (fxHash01(item.id, i * 4 + 1) - 0.5) * 120 * scale;
|
|
26826
|
+
const dot = (4 + fxHash01(item.id, i * 4 + 2) * 5) * scale;
|
|
26827
|
+
const delay = fxHash01(item.id, i * 4 + 3) * lifeMs * 0.4;
|
|
26828
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26829
|
+
exports.Box,
|
|
26830
|
+
{
|
|
26831
|
+
className: "absolute rounded-full",
|
|
26832
|
+
style: {
|
|
26833
|
+
left: dx,
|
|
26834
|
+
top: dy,
|
|
26835
|
+
width: dot,
|
|
26836
|
+
height: dot,
|
|
26837
|
+
backgroundColor: item.color ?? "gold",
|
|
26838
|
+
opacity: 0,
|
|
26839
|
+
animation: `fx-overlay-sparkle ${Math.max(lifeMs - delay, 200)}ms ease-in-out ${delay}ms forwards`
|
|
26840
|
+
}
|
|
26841
|
+
},
|
|
26842
|
+
i
|
|
26843
|
+
);
|
|
26844
|
+
}) });
|
|
26845
|
+
}
|
|
26846
|
+
function OverlayFxNode({ item, tickMs }) {
|
|
26847
|
+
const lifeMs = lifeMsOf(item, tickMs);
|
|
26848
|
+
switch (item.effect ?? "sparkle") {
|
|
26849
|
+
case "confetti":
|
|
26850
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ConfettiBurst, { item, lifeMs });
|
|
26851
|
+
case "flash":
|
|
26852
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26853
|
+
exports.Box,
|
|
26854
|
+
{
|
|
26855
|
+
position: "absolute",
|
|
26856
|
+
className: "inset-0",
|
|
26857
|
+
style: {
|
|
26858
|
+
backgroundColor: item.color ?? "#ffffff",
|
|
26859
|
+
opacity: 0,
|
|
26860
|
+
animation: `fx-overlay-flash ${lifeMs}ms ease-out forwards`
|
|
26861
|
+
}
|
|
26862
|
+
}
|
|
26863
|
+
);
|
|
26864
|
+
case "streak-glow":
|
|
26865
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26866
|
+
exports.Box,
|
|
26867
|
+
{
|
|
26868
|
+
position: "absolute",
|
|
26869
|
+
className: "inset-0",
|
|
26870
|
+
style: {
|
|
26871
|
+
boxShadow: `inset 0 0 ${60 * (item.size ?? 1)}px ${item.color ?? "var(--color-warning)"}`,
|
|
26872
|
+
opacity: 0,
|
|
26873
|
+
animation: `fx-overlay-glow ${lifeMs}ms ease-in-out forwards`
|
|
26874
|
+
}
|
|
26875
|
+
}
|
|
26876
|
+
);
|
|
26877
|
+
case "float-text": {
|
|
26878
|
+
if (!item.message) return null;
|
|
26879
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26880
|
+
exports.Box,
|
|
26881
|
+
{
|
|
26882
|
+
position: "absolute",
|
|
26883
|
+
style: {
|
|
26884
|
+
left: `${(item.x ?? 0.5) * 100}%`,
|
|
26885
|
+
top: `${(item.z ?? item.y ?? 0.4) * 100}%`,
|
|
26886
|
+
color: item.color ?? "var(--color-success)",
|
|
26887
|
+
fontWeight: 700,
|
|
26888
|
+
fontSize: 16 * (item.size ?? 1),
|
|
26889
|
+
textShadow: "0 1px 2px rgba(0,0,0,0.4)",
|
|
26890
|
+
opacity: 0,
|
|
26891
|
+
animation: `fx-overlay-float ${lifeMs}ms ease-out forwards`,
|
|
26892
|
+
whiteSpace: "nowrap"
|
|
26893
|
+
},
|
|
26894
|
+
children: item.message
|
|
26895
|
+
}
|
|
26896
|
+
);
|
|
26897
|
+
}
|
|
26898
|
+
case "shake":
|
|
26899
|
+
return null;
|
|
26900
|
+
default:
|
|
26901
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SparkleBurst, { item, lifeMs });
|
|
26902
|
+
}
|
|
26903
|
+
}
|
|
26904
|
+
var DEFAULT_TICK_MS2, FX_OVERLAY_KEYFRAMES, lifeMsOf; exports.FxOverlay = void 0;
|
|
26905
|
+
var init_FxOverlay = __esm({
|
|
26906
|
+
"components/core/molecules/FxOverlay.tsx"() {
|
|
26907
|
+
"use client";
|
|
26908
|
+
init_cn();
|
|
26909
|
+
init_Box();
|
|
26910
|
+
init_fx();
|
|
26911
|
+
DEFAULT_TICK_MS2 = 500;
|
|
26912
|
+
FX_OVERLAY_KEYFRAMES = `
|
|
26913
|
+
${CONFETTI_BURST_KEYFRAMES}
|
|
26914
|
+
@keyframes fx-overlay-flash {
|
|
26915
|
+
0% { opacity: 0.75; }
|
|
26916
|
+
100% { opacity: 0; }
|
|
26917
|
+
}
|
|
26918
|
+
@keyframes fx-overlay-glow {
|
|
26919
|
+
0% { opacity: 0.9; }
|
|
26920
|
+
60% { opacity: 0.6; }
|
|
26921
|
+
100% { opacity: 0; }
|
|
26922
|
+
}
|
|
26923
|
+
@keyframes fx-overlay-sparkle {
|
|
26924
|
+
0% { opacity: 0; transform: scale(0); }
|
|
26925
|
+
30% { opacity: 1; transform: scale(1); }
|
|
26926
|
+
100% { opacity: 0; transform: scale(0.3); }
|
|
26927
|
+
}
|
|
26928
|
+
@keyframes fx-overlay-float {
|
|
26929
|
+
0% { opacity: 0; transform: translate(-50%, 8px); }
|
|
26930
|
+
15% { opacity: 1; }
|
|
26931
|
+
100% { opacity: 0; transform: translate(-50%, -40px); }
|
|
26932
|
+
}
|
|
26933
|
+
@keyframes fx-overlay-shake {
|
|
26934
|
+
0% { transform: translateX(0); }
|
|
26935
|
+
15% { transform: translateX(-6px); }
|
|
26936
|
+
30% { transform: translateX(5px); }
|
|
26937
|
+
45% { transform: translateX(-4px); }
|
|
26938
|
+
60% { transform: translateX(3px); }
|
|
26939
|
+
75% { transform: translateX(-2px); }
|
|
26940
|
+
100% { transform: translateX(0); }
|
|
26941
|
+
}
|
|
26942
|
+
`;
|
|
26943
|
+
lifeMsOf = (it, tickMs) => Math.max(it.maxTtl ?? it.ttl, it.ttl, 1) * tickMs;
|
|
26944
|
+
exports.FxOverlay = ({ items, tickMs = DEFAULT_TICK_MS2, children, className }) => {
|
|
26945
|
+
const screenItems = (Array.isArray(items) ? items : []).filter(
|
|
26946
|
+
(it) => Boolean(it) && typeof it.id === "string" && it.space !== "world"
|
|
26947
|
+
);
|
|
26948
|
+
const shakeItem = [...screenItems].reverse().find((it) => it.effect === "shake");
|
|
26949
|
+
const overlay = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26950
|
+
exports.Box,
|
|
26951
|
+
{
|
|
26952
|
+
position: "absolute",
|
|
26953
|
+
className: cn("inset-0 pointer-events-none overflow-hidden z-50", !children && className),
|
|
26954
|
+
"aria-hidden": "true",
|
|
26955
|
+
children: [
|
|
26956
|
+
screenItems.map((it) => /* @__PURE__ */ jsxRuntime.jsx(OverlayFxNode, { item: it, tickMs }, it.id)),
|
|
26957
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: FX_OVERLAY_KEYFRAMES })
|
|
26958
|
+
]
|
|
26959
|
+
}
|
|
26960
|
+
);
|
|
26961
|
+
if (children !== void 0 && children !== null) {
|
|
26962
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { position: "relative", className, children: [
|
|
26963
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26964
|
+
exports.Box,
|
|
26965
|
+
{
|
|
26966
|
+
style: shakeItem ? { animation: `fx-overlay-shake ${Math.min(lifeMsOf(shakeItem, tickMs), 600)}ms ease-in-out` } : void 0,
|
|
26967
|
+
children
|
|
26968
|
+
},
|
|
26969
|
+
shakeItem?.id ?? "steady"
|
|
26970
|
+
),
|
|
26971
|
+
overlay
|
|
26972
|
+
] });
|
|
26973
|
+
}
|
|
26974
|
+
return overlay;
|
|
26975
|
+
};
|
|
26976
|
+
exports.FxOverlay.displayName = "FxOverlay";
|
|
26977
|
+
}
|
|
26978
|
+
});
|
|
26556
26979
|
function computePopoverStyle(position, triggerRect, popoverWidth) {
|
|
26557
26980
|
if (position === "left" || position === "right") {
|
|
26558
26981
|
return {
|
|
@@ -31242,7 +31665,7 @@ var init_MathCanvas = __esm({
|
|
|
31242
31665
|
x: mapX((first.x + last.x) / 2),
|
|
31243
31666
|
y: (mapY(region.samples[mid].y) + mapY(baseline)) / 2,
|
|
31244
31667
|
text: region.label,
|
|
31245
|
-
color
|
|
31668
|
+
color,
|
|
31246
31669
|
fontSize: 11
|
|
31247
31670
|
});
|
|
31248
31671
|
}
|
|
@@ -31275,14 +31698,14 @@ var init_MathCanvas = __esm({
|
|
|
31275
31698
|
const px = mapX(guide.at);
|
|
31276
31699
|
out.push({ type: "line", x1: px, y1: margin, x2: px, y2: height - margin, color, dash });
|
|
31277
31700
|
if (guide.label) {
|
|
31278
|
-
out.push({ type: "text", x: px + 4, y: margin + 10, text: guide.label, color
|
|
31701
|
+
out.push({ type: "text", x: px + 4, y: margin + 10, text: guide.label, color, fontSize: 11 });
|
|
31279
31702
|
}
|
|
31280
31703
|
} else {
|
|
31281
31704
|
if (guide.at < yMin || guide.at > yMax) continue;
|
|
31282
31705
|
const py = mapY(guide.at);
|
|
31283
31706
|
out.push({ type: "line", x1: margin, y1: py, x2: width - margin, y2: py, color, dash });
|
|
31284
31707
|
if (guide.label) {
|
|
31285
|
-
out.push({ type: "text", x: width - margin - 4, y: py - 8, text: guide.label, color
|
|
31708
|
+
out.push({ type: "text", x: width - margin - 4, y: py - 8, text: guide.label, color, fontSize: 11, align: "right" });
|
|
31286
31709
|
}
|
|
31287
31710
|
}
|
|
31288
31711
|
}
|
|
@@ -31348,7 +31771,7 @@ var init_MathCanvas = __esm({
|
|
|
31348
31771
|
x: (x1 + x2) / 2,
|
|
31349
31772
|
y: xAxisY - peak - 8,
|
|
31350
31773
|
text: hop.label,
|
|
31351
|
-
color
|
|
31774
|
+
color,
|
|
31352
31775
|
fontSize: 10,
|
|
31353
31776
|
align: "center"
|
|
31354
31777
|
});
|
|
@@ -31375,7 +31798,7 @@ var init_MathCanvas = __esm({
|
|
|
31375
31798
|
x: mapX(angle.x + 1.35 * radius * Math.cos(rad)),
|
|
31376
31799
|
y: mapY(angle.y + 1.35 * radius * Math.sin(rad)),
|
|
31377
31800
|
text: angle.label,
|
|
31378
|
-
color
|
|
31801
|
+
color,
|
|
31379
31802
|
fontSize: 11,
|
|
31380
31803
|
align: "center"
|
|
31381
31804
|
});
|
|
@@ -31393,7 +31816,7 @@ var init_MathCanvas = __esm({
|
|
|
31393
31816
|
fill: isOpen ? "#ffffff" : p.color ?? "#dc2626"
|
|
31394
31817
|
});
|
|
31395
31818
|
if (p.label) {
|
|
31396
|
-
out.push({ type: "text", x: mapX(p.x) + 8, y: mapY(p.y) - 8, text: p.label, color: "#111827", fontSize: 12 });
|
|
31819
|
+
out.push({ type: "text", x: mapX(p.x) + 8, y: mapY(p.y) - 8, text: p.label, color: p.color ?? "#111827", fontSize: 12 });
|
|
31397
31820
|
}
|
|
31398
31821
|
}
|
|
31399
31822
|
for (const v of vectors) {
|
|
@@ -31404,7 +31827,7 @@ var init_MathCanvas = __esm({
|
|
|
31404
31827
|
const y2 = mapY(v.y + v.vy);
|
|
31405
31828
|
out.push({ type: "arrow", x1, y1, x2, y2, color: v.color ?? "#7c3aed", lineWidth: 2 });
|
|
31406
31829
|
if (v.label) {
|
|
31407
|
-
out.push({ type: "text", x: x2 + 6, y: y2 - 6, text: v.label, color: "#
|
|
31830
|
+
out.push({ type: "text", x: x2 + 6, y: y2 - 6, text: v.label, color: v.color ?? "#7c3aed", fontSize: 12 });
|
|
31408
31831
|
}
|
|
31409
31832
|
}
|
|
31410
31833
|
out.push(...shapes);
|
|
@@ -42380,6 +42803,7 @@ var init_molecules2 = __esm({
|
|
|
42380
42803
|
init_Menu();
|
|
42381
42804
|
init_Modal();
|
|
42382
42805
|
init_PageTransition();
|
|
42806
|
+
init_FxOverlay();
|
|
42383
42807
|
init_Pagination();
|
|
42384
42808
|
init_Popover();
|
|
42385
42809
|
init_Coachmark();
|
|
@@ -43179,6 +43603,7 @@ var init_DetailPanel = __esm({
|
|
|
43179
43603
|
init_Box();
|
|
43180
43604
|
init_Stack();
|
|
43181
43605
|
init_SimpleGrid();
|
|
43606
|
+
init_Menu();
|
|
43182
43607
|
init_LoadingState();
|
|
43183
43608
|
init_ErrorState();
|
|
43184
43609
|
init_EmptyState();
|
|
@@ -43196,6 +43621,7 @@ var init_DetailPanel = __esm({
|
|
|
43196
43621
|
avatar,
|
|
43197
43622
|
sections: propSections,
|
|
43198
43623
|
actions,
|
|
43624
|
+
maxInlineActions,
|
|
43199
43625
|
backAction,
|
|
43200
43626
|
footer,
|
|
43201
43627
|
slideOver = false,
|
|
@@ -43430,7 +43856,7 @@ var init_DetailPanel = __esm({
|
|
|
43430
43856
|
}
|
|
43431
43857
|
) }),
|
|
43432
43858
|
/* @__PURE__ */ jsxRuntime.jsxs(exports.HStack, { justify: "end", align: "center", gap: "xs", children: [
|
|
43433
|
-
otherActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
43859
|
+
(maxInlineActions != null ? otherActions.slice(0, maxInlineActions) : otherActions).map((action, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
43434
43860
|
exports.Button,
|
|
43435
43861
|
{
|
|
43436
43862
|
variant: action.variant || "secondary",
|
|
@@ -43445,6 +43871,22 @@ var init_DetailPanel = __esm({
|
|
|
43445
43871
|
},
|
|
43446
43872
|
idx
|
|
43447
43873
|
)),
|
|
43874
|
+
maxInlineActions != null && otherActions.length > maxInlineActions && /* @__PURE__ */ jsxRuntime.jsx(
|
|
43875
|
+
exports.Menu,
|
|
43876
|
+
{
|
|
43877
|
+
position: "bottom-end",
|
|
43878
|
+
trigger: /* @__PURE__ */ jsxRuntime.jsx(exports.Button, { variant: "ghost", size: "sm", "aria-label": t("common.actions"), "data-testid": "action-overflow", children: /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: "more-horizontal", size: "xs" }) }),
|
|
43879
|
+
items: otherActions.slice(maxInlineActions).map((action) => ({
|
|
43880
|
+
// ONE firing path: onClick → handleActionClick (emits with
|
|
43881
|
+
// the {id, row} payload). Passing `event` too would make
|
|
43882
|
+
// Menu emit a second, payload-less copy of the same event.
|
|
43883
|
+
label: action.label,
|
|
43884
|
+
icon: action.icon,
|
|
43885
|
+
variant: action.variant === "danger" ? "danger" : "default",
|
|
43886
|
+
onClick: () => handleActionClick(action, normalizedData)
|
|
43887
|
+
}))
|
|
43888
|
+
}
|
|
43889
|
+
),
|
|
43448
43890
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
43449
43891
|
exports.Button,
|
|
43450
43892
|
{
|
|
@@ -49301,6 +49743,7 @@ var init_component_registry_generated = __esm({
|
|
|
49301
49743
|
init_DocSidebar();
|
|
49302
49744
|
init_DocTOC();
|
|
49303
49745
|
init_DocumentViewer();
|
|
49746
|
+
init_DrawFxLayer();
|
|
49304
49747
|
init_DrawGroup();
|
|
49305
49748
|
init_DrawMesh();
|
|
49306
49749
|
init_DrawShape();
|
|
@@ -49331,6 +49774,7 @@ var init_component_registry_generated = __esm({
|
|
|
49331
49774
|
init_FormField();
|
|
49332
49775
|
init_FormSection();
|
|
49333
49776
|
init_FormSectionHeader();
|
|
49777
|
+
init_FxOverlay();
|
|
49334
49778
|
init_GameAudioToggle();
|
|
49335
49779
|
init_GameHud();
|
|
49336
49780
|
init_GameIcon();
|
|
@@ -49571,6 +50015,7 @@ var init_component_registry_generated = __esm({
|
|
|
49571
50015
|
"DocSidebar": exports.DocSidebar,
|
|
49572
50016
|
"DocTOC": exports.DocTOC,
|
|
49573
50017
|
"DocumentViewer": exports.DocumentViewer,
|
|
50018
|
+
"DrawFxLayer": DrawFxLayer,
|
|
49574
50019
|
"DrawGroup": DrawGroup,
|
|
49575
50020
|
"DrawMesh": DrawMesh,
|
|
49576
50021
|
"DrawShape": DrawShape,
|
|
@@ -49601,6 +50046,7 @@ var init_component_registry_generated = __esm({
|
|
|
49601
50046
|
"FormField": exports.FormField,
|
|
49602
50047
|
"FormLayout": exports.FormLayout,
|
|
49603
50048
|
"FormSectionHeader": exports.FormSectionHeader,
|
|
50049
|
+
"FxOverlay": exports.FxOverlay,
|
|
49604
50050
|
"GameAudioToggle": GameAudioToggle,
|
|
49605
50051
|
"GameHud": GameHud,
|
|
49606
50052
|
"GameIcon": GameIcon,
|
|
@@ -53288,6 +53734,10 @@ Object.defineProperty(exports, "useGameAudioContext", {
|
|
|
53288
53734
|
enumerable: true,
|
|
53289
53735
|
get: function () { return providers.useGameAudioContext; }
|
|
53290
53736
|
});
|
|
53737
|
+
Object.defineProperty(exports, "useNavStack", {
|
|
53738
|
+
enumerable: true,
|
|
53739
|
+
get: function () { return providers.useNavStack; }
|
|
53740
|
+
});
|
|
53291
53741
|
exports.ALMADAR_DND_MIME = ALMADAR_DND_MIME;
|
|
53292
53742
|
exports.ActionCard = Card2;
|
|
53293
53743
|
exports.ActionPalette = ActionPalette;
|