@almadar/ui 5.36.0 → 5.38.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/avl/index.cjs +120 -86
- package/dist/avl/index.js +120 -83
- package/dist/components/index.cjs +127 -89
- package/dist/components/index.js +127 -86
- package/dist/docs/index.cjs +115 -81
- package/dist/docs/index.js +115 -78
- package/dist/marketing/index.cjs +114 -80
- package/dist/marketing/index.js +114 -77
- package/dist/providers/index.cjs +120 -86
- package/dist/providers/index.js +120 -83
- package/dist/runtime/index.cjs +120 -86
- package/dist/runtime/index.js +120 -83
- package/package.json +1 -1
|
@@ -7,9 +7,6 @@ var tailwindMerge = require('tailwind-merge');
|
|
|
7
7
|
var providers = require('@almadar/ui/providers');
|
|
8
8
|
var logger = require('@almadar/logger');
|
|
9
9
|
var LucideIcons2 = require('lucide-react');
|
|
10
|
-
var PhosphorIcons = require('@phosphor-icons/react');
|
|
11
|
-
var TablerIcons = require('@tabler/icons-react');
|
|
12
|
-
var FaIcons = require('react-icons/fa');
|
|
13
10
|
var hooks = require('@almadar/ui/hooks');
|
|
14
11
|
var evaluator = require('@almadar/evaluator');
|
|
15
12
|
var reactDom = require('react-dom');
|
|
@@ -68,9 +65,6 @@ function _interopNamespace(e) {
|
|
|
68
65
|
|
|
69
66
|
var React77__namespace = /*#__PURE__*/_interopNamespace(React77);
|
|
70
67
|
var LucideIcons2__namespace = /*#__PURE__*/_interopNamespace(LucideIcons2);
|
|
71
|
-
var PhosphorIcons__namespace = /*#__PURE__*/_interopNamespace(PhosphorIcons);
|
|
72
|
-
var TablerIcons__namespace = /*#__PURE__*/_interopNamespace(TablerIcons);
|
|
73
|
-
var FaIcons__namespace = /*#__PURE__*/_interopNamespace(FaIcons);
|
|
74
68
|
var ELK__default = /*#__PURE__*/_interopDefault(ELK);
|
|
75
69
|
var SyntaxHighlighter__default = /*#__PURE__*/_interopDefault(SyntaxHighlighter);
|
|
76
70
|
var dark__default = /*#__PURE__*/_interopDefault(dark);
|
|
@@ -1274,6 +1268,41 @@ function kebabToPascal(name) {
|
|
|
1274
1268
|
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
1275
1269
|
}).join("");
|
|
1276
1270
|
}
|
|
1271
|
+
function loadLib(key, importer) {
|
|
1272
|
+
let p2 = libPromises.get(key);
|
|
1273
|
+
if (!p2) {
|
|
1274
|
+
p2 = importer().then((m) => m);
|
|
1275
|
+
libPromises.set(key, p2);
|
|
1276
|
+
}
|
|
1277
|
+
return p2;
|
|
1278
|
+
}
|
|
1279
|
+
function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
|
|
1280
|
+
const Lazy = React77__namespace.default.lazy(async () => {
|
|
1281
|
+
const lib = await loadLib(libKey, importer);
|
|
1282
|
+
const Comp = pick(lib);
|
|
1283
|
+
if (!Comp) {
|
|
1284
|
+
warnFallback(fallbackName, family);
|
|
1285
|
+
return { default: makeLucideAdapter(fallbackName, true) };
|
|
1286
|
+
}
|
|
1287
|
+
return { default: Comp };
|
|
1288
|
+
});
|
|
1289
|
+
const Wrapped = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1290
|
+
React77__namespace.default.Suspense,
|
|
1291
|
+
{
|
|
1292
|
+
fallback: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1293
|
+
"span",
|
|
1294
|
+
{
|
|
1295
|
+
"aria-hidden": true,
|
|
1296
|
+
className: props.className,
|
|
1297
|
+
style: { display: "inline-block", ...props.style }
|
|
1298
|
+
}
|
|
1299
|
+
),
|
|
1300
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Lazy, { ...props })
|
|
1301
|
+
}
|
|
1302
|
+
);
|
|
1303
|
+
Wrapped.displayName = `Lazy.${libKey}.${fallbackName}`;
|
|
1304
|
+
return Wrapped;
|
|
1305
|
+
}
|
|
1277
1306
|
function resolveLucide(name) {
|
|
1278
1307
|
if (lucideAliases[name]) return lucideAliases[name];
|
|
1279
1308
|
const pascal = kebabToPascal(name);
|
|
@@ -1284,60 +1313,81 @@ function resolveLucide(name) {
|
|
|
1284
1313
|
if (asIs && typeof asIs === "object") return asIs;
|
|
1285
1314
|
return LucideIcons2__namespace.HelpCircle;
|
|
1286
1315
|
}
|
|
1287
|
-
function resolvePhosphor(name, weight) {
|
|
1316
|
+
function resolvePhosphor(name, weight, family) {
|
|
1288
1317
|
const target = phosphorAliases[name] ?? kebabToPascal(name);
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1318
|
+
return lazyFamilyIcon(
|
|
1319
|
+
"phosphor",
|
|
1320
|
+
() => import('@phosphor-icons/react'),
|
|
1321
|
+
(lib) => {
|
|
1322
|
+
const PhosphorComp = lib[target];
|
|
1323
|
+
if (!PhosphorComp || typeof PhosphorComp !== "object") return null;
|
|
1324
|
+
const Component = PhosphorComp;
|
|
1325
|
+
const Adapter = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1326
|
+
Component,
|
|
1327
|
+
{
|
|
1328
|
+
weight,
|
|
1329
|
+
className: props.className,
|
|
1330
|
+
style: props.style,
|
|
1331
|
+
size: props.size ?? "1em"
|
|
1332
|
+
}
|
|
1333
|
+
);
|
|
1334
|
+
Adapter.displayName = `Phosphor.${target}.${weight}`;
|
|
1335
|
+
return Adapter;
|
|
1336
|
+
},
|
|
1337
|
+
name,
|
|
1338
|
+
family
|
|
1301
1339
|
);
|
|
1302
|
-
Adapter.displayName = `Phosphor.${target}.${weight}`;
|
|
1303
|
-
return Adapter;
|
|
1304
1340
|
}
|
|
1305
|
-
function resolveTabler(name) {
|
|
1341
|
+
function resolveTabler(name, family) {
|
|
1306
1342
|
const suffix = tablerAliases[name] ?? kebabToPascal(name);
|
|
1307
1343
|
const target = `Icon${suffix}`;
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1344
|
+
return lazyFamilyIcon(
|
|
1345
|
+
"tabler",
|
|
1346
|
+
() => import('@tabler/icons-react'),
|
|
1347
|
+
(lib) => {
|
|
1348
|
+
const TablerComp = lib[target];
|
|
1349
|
+
if (!TablerComp || typeof TablerComp !== "object") return null;
|
|
1350
|
+
const Component = TablerComp;
|
|
1351
|
+
const Adapter = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1352
|
+
Component,
|
|
1353
|
+
{
|
|
1354
|
+
stroke: props.strokeWidth ?? 1.5,
|
|
1355
|
+
className: props.className,
|
|
1356
|
+
style: props.style,
|
|
1357
|
+
size: props.size ?? 24
|
|
1358
|
+
}
|
|
1359
|
+
);
|
|
1360
|
+
Adapter.displayName = `Tabler.${target}`;
|
|
1361
|
+
return Adapter;
|
|
1362
|
+
},
|
|
1363
|
+
name,
|
|
1364
|
+
family
|
|
1320
1365
|
);
|
|
1321
|
-
Adapter.displayName = `Tabler.${target}`;
|
|
1322
|
-
return Adapter;
|
|
1323
1366
|
}
|
|
1324
|
-
function resolveFa(name) {
|
|
1367
|
+
function resolveFa(name, family) {
|
|
1325
1368
|
const suffix = faAliases[name] ?? kebabToPascal(name);
|
|
1326
1369
|
const target = `Fa${suffix}`;
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1370
|
+
return lazyFamilyIcon(
|
|
1371
|
+
"fa",
|
|
1372
|
+
() => import('react-icons/fa'),
|
|
1373
|
+
(lib) => {
|
|
1374
|
+
const FaComp = lib[target];
|
|
1375
|
+
if (!FaComp || typeof FaComp !== "function") return null;
|
|
1376
|
+
const Component = FaComp;
|
|
1377
|
+
const Adapter = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1378
|
+
Component,
|
|
1379
|
+
{
|
|
1380
|
+
className: props.className,
|
|
1381
|
+
style: props.style,
|
|
1382
|
+
size: props.size ?? "1em"
|
|
1383
|
+
}
|
|
1384
|
+
);
|
|
1385
|
+
Adapter.displayName = `Fa.${target}`;
|
|
1386
|
+
return Adapter;
|
|
1387
|
+
},
|
|
1388
|
+
name,
|
|
1389
|
+
family
|
|
1338
1390
|
);
|
|
1339
|
-
Adapter.displayName = `Fa.${target}`;
|
|
1340
|
-
return Adapter;
|
|
1341
1391
|
}
|
|
1342
1392
|
function warnFallback(name, family) {
|
|
1343
1393
|
const key = `${family}::${name}`;
|
|
@@ -1371,39 +1421,22 @@ function resolveIconForFamily(name, family) {
|
|
|
1371
1421
|
switch (family) {
|
|
1372
1422
|
case "lucide":
|
|
1373
1423
|
return makeLucideAdapter(name, false);
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
return
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
return
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
return makeLucideAdapter(name, true);
|
|
1391
|
-
}
|
|
1392
|
-
case "tabler": {
|
|
1393
|
-
const t = resolveTabler(name);
|
|
1394
|
-
if (t) return t;
|
|
1395
|
-
warnFallback(name, family);
|
|
1396
|
-
return makeLucideAdapter(name, true);
|
|
1397
|
-
}
|
|
1398
|
-
case "fa-solid": {
|
|
1399
|
-
const f3 = resolveFa(name);
|
|
1400
|
-
if (f3) return f3;
|
|
1401
|
-
warnFallback(name, family);
|
|
1402
|
-
return makeLucideAdapter(name, true);
|
|
1403
|
-
}
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
var DEFAULT_FAMILY, VALID_FAMILIES, cachedFamily, listeners, observer, lucideAliases, phosphorAliases, tablerAliases, faAliases, warned;
|
|
1424
|
+
// Non-lucide families resolve to a lazy, Suspense-wrapped component that
|
|
1425
|
+
// dynamic-imports the library on first render and falls back to lucide
|
|
1426
|
+
// internally when the family lacks the icon (see lazyFamilyIcon).
|
|
1427
|
+
case "phosphor-outline":
|
|
1428
|
+
return resolvePhosphor(name, "regular", family);
|
|
1429
|
+
case "phosphor-fill":
|
|
1430
|
+
return resolvePhosphor(name, "fill", family);
|
|
1431
|
+
case "phosphor-duotone":
|
|
1432
|
+
return resolvePhosphor(name, "duotone", family);
|
|
1433
|
+
case "tabler":
|
|
1434
|
+
return resolveTabler(name, family);
|
|
1435
|
+
case "fa-solid":
|
|
1436
|
+
return resolveFa(name, family);
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
var DEFAULT_FAMILY, VALID_FAMILIES, cachedFamily, listeners, observer, libPromises, lucideAliases, phosphorAliases, tablerAliases, faAliases, warned;
|
|
1407
1440
|
var init_iconFamily = __esm({
|
|
1408
1441
|
"lib/iconFamily.tsx"() {
|
|
1409
1442
|
"use client";
|
|
@@ -1419,6 +1452,7 @@ var init_iconFamily = __esm({
|
|
|
1419
1452
|
cachedFamily = null;
|
|
1420
1453
|
listeners = /* @__PURE__ */ new Set();
|
|
1421
1454
|
observer = null;
|
|
1455
|
+
libPromises = /* @__PURE__ */ new Map();
|
|
1422
1456
|
lucideAliases = {
|
|
1423
1457
|
close: LucideIcons2__namespace.X,
|
|
1424
1458
|
trash: LucideIcons2__namespace.Trash2,
|
|
@@ -9591,7 +9625,7 @@ function IsometricCanvas({
|
|
|
9591
9625
|
// Rendering options
|
|
9592
9626
|
scale = 0.4,
|
|
9593
9627
|
debug: debug2 = false,
|
|
9594
|
-
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/
|
|
9628
|
+
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
|
|
9595
9629
|
showMinimap = true,
|
|
9596
9630
|
enableCamera = true,
|
|
9597
9631
|
unitScale = 1,
|
|
@@ -23343,7 +23377,7 @@ var init_FormSection = __esm({
|
|
|
23343
23377
|
exports.FormActions.displayName = "FormActions";
|
|
23344
23378
|
}
|
|
23345
23379
|
});
|
|
23346
|
-
var ALL_CATEGORY; exports.GridPicker = void 0;
|
|
23380
|
+
var ALL_CATEGORY, MAX_RENDERED; exports.GridPicker = void 0;
|
|
23347
23381
|
var init_GridPicker = __esm({
|
|
23348
23382
|
"components/core/molecules/GridPicker.tsx"() {
|
|
23349
23383
|
"use client";
|
|
@@ -23352,6 +23386,7 @@ var init_GridPicker = __esm({
|
|
|
23352
23386
|
init_Badge();
|
|
23353
23387
|
init_Stack();
|
|
23354
23388
|
ALL_CATEGORY = "__all__";
|
|
23389
|
+
MAX_RENDERED = 300;
|
|
23355
23390
|
exports.GridPicker = ({
|
|
23356
23391
|
items,
|
|
23357
23392
|
value,
|
|
@@ -23381,6 +23416,8 @@ var init_GridPicker = __esm({
|
|
|
23381
23416
|
return matchesCategory && matchesSearch;
|
|
23382
23417
|
});
|
|
23383
23418
|
}, [items, search, activeCategory]);
|
|
23419
|
+
const visible = React77.useMemo(() => filtered.slice(0, MAX_RENDERED), [filtered]);
|
|
23420
|
+
const truncated = filtered.length - visible.length;
|
|
23384
23421
|
const select = React77.useCallback(
|
|
23385
23422
|
(item) => {
|
|
23386
23423
|
onChange(item.id);
|
|
@@ -23482,7 +23519,7 @@ var init_GridPicker = __esm({
|
|
|
23482
23519
|
style: {
|
|
23483
23520
|
gridTemplateColumns: `repeat(auto-fill, minmax(${cellSize}px, 1fr))`
|
|
23484
23521
|
},
|
|
23485
|
-
children:
|
|
23522
|
+
children: visible.map((item, index) => {
|
|
23486
23523
|
const selected = item.id === value;
|
|
23487
23524
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23488
23525
|
"button",
|
|
@@ -23509,7 +23546,8 @@ var init_GridPicker = __esm({
|
|
|
23509
23546
|
);
|
|
23510
23547
|
})
|
|
23511
23548
|
}
|
|
23512
|
-
)
|
|
23549
|
+
),
|
|
23550
|
+
truncated > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-1 text-xs text-muted-foreground", children: `+${truncated} more \u2014 refine your search` })
|
|
23513
23551
|
] });
|
|
23514
23552
|
};
|
|
23515
23553
|
exports.GridPicker.displayName = "GridPicker";
|
|
@@ -27323,7 +27361,7 @@ function GameCanvas2D({
|
|
|
27323
27361
|
tickEvent,
|
|
27324
27362
|
drawEvent,
|
|
27325
27363
|
fps = 60,
|
|
27326
|
-
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/
|
|
27364
|
+
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
|
|
27327
27365
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
27328
27366
|
className
|
|
27329
27367
|
}) {
|
|
@@ -28589,7 +28627,7 @@ function PlatformerCanvas({
|
|
|
28589
28627
|
bgColor,
|
|
28590
28628
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
28591
28629
|
tileSprites,
|
|
28592
|
-
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/
|
|
28630
|
+
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
|
|
28593
28631
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
28594
28632
|
leftEvent = "MOVE_LEFT",
|
|
28595
28633
|
rightEvent = "MOVE_RIGHT",
|
package/dist/components/index.js
CHANGED
|
@@ -7,9 +7,6 @@ import { EventBusContext, useTraitScope, TraitScopeProvider } from '@almadar/ui/
|
|
|
7
7
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
8
8
|
import * as LucideIcons2 from 'lucide-react';
|
|
9
9
|
import { Loader2, X, List, Printer, ChevronRight, ChevronLeft, CheckCircle, XCircle, Wrench, RotateCcw, Send, Play, Terminal, Search, ChevronUp, ChevronDown, MoreHorizontal, Bug, Package, Calendar, Pencil, Eye, Image as Image$1, Upload, ZoomIn, ArrowRight, Pause, SkipForward, TrendingUp, TrendingDown, Minus, AlertCircle, Circle, Clock, CheckCircle2, 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, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
|
|
10
|
-
import * as PhosphorIcons from '@phosphor-icons/react';
|
|
11
|
-
import * as TablerIcons from '@tabler/icons-react';
|
|
12
|
-
import * as FaIcons from 'react-icons/fa';
|
|
13
10
|
import { useTranslate } from '@almadar/ui/hooks';
|
|
14
11
|
export * from '@almadar/ui/hooks';
|
|
15
12
|
import { evaluate, createMinimalContext } from '@almadar/evaluator';
|
|
@@ -1226,6 +1223,41 @@ function kebabToPascal(name) {
|
|
|
1226
1223
|
return part.charAt(0).toUpperCase() + part.slice(1);
|
|
1227
1224
|
}).join("");
|
|
1228
1225
|
}
|
|
1226
|
+
function loadLib(key, importer) {
|
|
1227
|
+
let p2 = libPromises.get(key);
|
|
1228
|
+
if (!p2) {
|
|
1229
|
+
p2 = importer().then((m) => m);
|
|
1230
|
+
libPromises.set(key, p2);
|
|
1231
|
+
}
|
|
1232
|
+
return p2;
|
|
1233
|
+
}
|
|
1234
|
+
function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
|
|
1235
|
+
const Lazy = React77__default.lazy(async () => {
|
|
1236
|
+
const lib = await loadLib(libKey, importer);
|
|
1237
|
+
const Comp = pick(lib);
|
|
1238
|
+
if (!Comp) {
|
|
1239
|
+
warnFallback(fallbackName, family);
|
|
1240
|
+
return { default: makeLucideAdapter(fallbackName, true) };
|
|
1241
|
+
}
|
|
1242
|
+
return { default: Comp };
|
|
1243
|
+
});
|
|
1244
|
+
const Wrapped = (props) => /* @__PURE__ */ jsx(
|
|
1245
|
+
React77__default.Suspense,
|
|
1246
|
+
{
|
|
1247
|
+
fallback: /* @__PURE__ */ jsx(
|
|
1248
|
+
"span",
|
|
1249
|
+
{
|
|
1250
|
+
"aria-hidden": true,
|
|
1251
|
+
className: props.className,
|
|
1252
|
+
style: { display: "inline-block", ...props.style }
|
|
1253
|
+
}
|
|
1254
|
+
),
|
|
1255
|
+
children: /* @__PURE__ */ jsx(Lazy, { ...props })
|
|
1256
|
+
}
|
|
1257
|
+
);
|
|
1258
|
+
Wrapped.displayName = `Lazy.${libKey}.${fallbackName}`;
|
|
1259
|
+
return Wrapped;
|
|
1260
|
+
}
|
|
1229
1261
|
function resolveLucide(name) {
|
|
1230
1262
|
if (lucideAliases[name]) return lucideAliases[name];
|
|
1231
1263
|
const pascal = kebabToPascal(name);
|
|
@@ -1236,60 +1268,81 @@ function resolveLucide(name) {
|
|
|
1236
1268
|
if (asIs && typeof asIs === "object") return asIs;
|
|
1237
1269
|
return LucideIcons2.HelpCircle;
|
|
1238
1270
|
}
|
|
1239
|
-
function resolvePhosphor(name, weight) {
|
|
1271
|
+
function resolvePhosphor(name, weight, family) {
|
|
1240
1272
|
const target = phosphorAliases[name] ?? kebabToPascal(name);
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1273
|
+
return lazyFamilyIcon(
|
|
1274
|
+
"phosphor",
|
|
1275
|
+
() => import('@phosphor-icons/react'),
|
|
1276
|
+
(lib) => {
|
|
1277
|
+
const PhosphorComp = lib[target];
|
|
1278
|
+
if (!PhosphorComp || typeof PhosphorComp !== "object") return null;
|
|
1279
|
+
const Component = PhosphorComp;
|
|
1280
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1281
|
+
Component,
|
|
1282
|
+
{
|
|
1283
|
+
weight,
|
|
1284
|
+
className: props.className,
|
|
1285
|
+
style: props.style,
|
|
1286
|
+
size: props.size ?? "1em"
|
|
1287
|
+
}
|
|
1288
|
+
);
|
|
1289
|
+
Adapter.displayName = `Phosphor.${target}.${weight}`;
|
|
1290
|
+
return Adapter;
|
|
1291
|
+
},
|
|
1292
|
+
name,
|
|
1293
|
+
family
|
|
1253
1294
|
);
|
|
1254
|
-
Adapter.displayName = `Phosphor.${target}.${weight}`;
|
|
1255
|
-
return Adapter;
|
|
1256
1295
|
}
|
|
1257
|
-
function resolveTabler(name) {
|
|
1296
|
+
function resolveTabler(name, family) {
|
|
1258
1297
|
const suffix = tablerAliases[name] ?? kebabToPascal(name);
|
|
1259
1298
|
const target = `Icon${suffix}`;
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1299
|
+
return lazyFamilyIcon(
|
|
1300
|
+
"tabler",
|
|
1301
|
+
() => import('@tabler/icons-react'),
|
|
1302
|
+
(lib) => {
|
|
1303
|
+
const TablerComp = lib[target];
|
|
1304
|
+
if (!TablerComp || typeof TablerComp !== "object") return null;
|
|
1305
|
+
const Component = TablerComp;
|
|
1306
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1307
|
+
Component,
|
|
1308
|
+
{
|
|
1309
|
+
stroke: props.strokeWidth ?? 1.5,
|
|
1310
|
+
className: props.className,
|
|
1311
|
+
style: props.style,
|
|
1312
|
+
size: props.size ?? 24
|
|
1313
|
+
}
|
|
1314
|
+
);
|
|
1315
|
+
Adapter.displayName = `Tabler.${target}`;
|
|
1316
|
+
return Adapter;
|
|
1317
|
+
},
|
|
1318
|
+
name,
|
|
1319
|
+
family
|
|
1272
1320
|
);
|
|
1273
|
-
Adapter.displayName = `Tabler.${target}`;
|
|
1274
|
-
return Adapter;
|
|
1275
1321
|
}
|
|
1276
|
-
function resolveFa(name) {
|
|
1322
|
+
function resolveFa(name, family) {
|
|
1277
1323
|
const suffix = faAliases[name] ?? kebabToPascal(name);
|
|
1278
1324
|
const target = `Fa${suffix}`;
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1325
|
+
return lazyFamilyIcon(
|
|
1326
|
+
"fa",
|
|
1327
|
+
() => import('react-icons/fa'),
|
|
1328
|
+
(lib) => {
|
|
1329
|
+
const FaComp = lib[target];
|
|
1330
|
+
if (!FaComp || typeof FaComp !== "function") return null;
|
|
1331
|
+
const Component = FaComp;
|
|
1332
|
+
const Adapter = (props) => /* @__PURE__ */ jsx(
|
|
1333
|
+
Component,
|
|
1334
|
+
{
|
|
1335
|
+
className: props.className,
|
|
1336
|
+
style: props.style,
|
|
1337
|
+
size: props.size ?? "1em"
|
|
1338
|
+
}
|
|
1339
|
+
);
|
|
1340
|
+
Adapter.displayName = `Fa.${target}`;
|
|
1341
|
+
return Adapter;
|
|
1342
|
+
},
|
|
1343
|
+
name,
|
|
1344
|
+
family
|
|
1290
1345
|
);
|
|
1291
|
-
Adapter.displayName = `Fa.${target}`;
|
|
1292
|
-
return Adapter;
|
|
1293
1346
|
}
|
|
1294
1347
|
function warnFallback(name, family) {
|
|
1295
1348
|
const key = `${family}::${name}`;
|
|
@@ -1323,39 +1376,22 @@ function resolveIconForFamily(name, family) {
|
|
|
1323
1376
|
switch (family) {
|
|
1324
1377
|
case "lucide":
|
|
1325
1378
|
return makeLucideAdapter(name, false);
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
return
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
return
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
return makeLucideAdapter(name, true);
|
|
1343
|
-
}
|
|
1344
|
-
case "tabler": {
|
|
1345
|
-
const t = resolveTabler(name);
|
|
1346
|
-
if (t) return t;
|
|
1347
|
-
warnFallback(name, family);
|
|
1348
|
-
return makeLucideAdapter(name, true);
|
|
1349
|
-
}
|
|
1350
|
-
case "fa-solid": {
|
|
1351
|
-
const f3 = resolveFa(name);
|
|
1352
|
-
if (f3) return f3;
|
|
1353
|
-
warnFallback(name, family);
|
|
1354
|
-
return makeLucideAdapter(name, true);
|
|
1355
|
-
}
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
var DEFAULT_FAMILY, VALID_FAMILIES, cachedFamily, listeners, observer, lucideAliases, phosphorAliases, tablerAliases, faAliases, warned;
|
|
1379
|
+
// Non-lucide families resolve to a lazy, Suspense-wrapped component that
|
|
1380
|
+
// dynamic-imports the library on first render and falls back to lucide
|
|
1381
|
+
// internally when the family lacks the icon (see lazyFamilyIcon).
|
|
1382
|
+
case "phosphor-outline":
|
|
1383
|
+
return resolvePhosphor(name, "regular", family);
|
|
1384
|
+
case "phosphor-fill":
|
|
1385
|
+
return resolvePhosphor(name, "fill", family);
|
|
1386
|
+
case "phosphor-duotone":
|
|
1387
|
+
return resolvePhosphor(name, "duotone", family);
|
|
1388
|
+
case "tabler":
|
|
1389
|
+
return resolveTabler(name, family);
|
|
1390
|
+
case "fa-solid":
|
|
1391
|
+
return resolveFa(name, family);
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
var DEFAULT_FAMILY, VALID_FAMILIES, cachedFamily, listeners, observer, libPromises, lucideAliases, phosphorAliases, tablerAliases, faAliases, warned;
|
|
1359
1395
|
var init_iconFamily = __esm({
|
|
1360
1396
|
"lib/iconFamily.tsx"() {
|
|
1361
1397
|
"use client";
|
|
@@ -1371,6 +1407,7 @@ var init_iconFamily = __esm({
|
|
|
1371
1407
|
cachedFamily = null;
|
|
1372
1408
|
listeners = /* @__PURE__ */ new Set();
|
|
1373
1409
|
observer = null;
|
|
1410
|
+
libPromises = /* @__PURE__ */ new Map();
|
|
1374
1411
|
lucideAliases = {
|
|
1375
1412
|
close: LucideIcons2.X,
|
|
1376
1413
|
trash: LucideIcons2.Trash2,
|
|
@@ -9543,7 +9580,7 @@ function IsometricCanvas({
|
|
|
9543
9580
|
// Rendering options
|
|
9544
9581
|
scale = 0.4,
|
|
9545
9582
|
debug: debug2 = false,
|
|
9546
|
-
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/
|
|
9583
|
+
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
|
|
9547
9584
|
showMinimap = true,
|
|
9548
9585
|
enableCamera = true,
|
|
9549
9586
|
unitScale = 1,
|
|
@@ -23295,7 +23332,7 @@ var init_FormSection = __esm({
|
|
|
23295
23332
|
FormActions.displayName = "FormActions";
|
|
23296
23333
|
}
|
|
23297
23334
|
});
|
|
23298
|
-
var ALL_CATEGORY, GridPicker;
|
|
23335
|
+
var ALL_CATEGORY, MAX_RENDERED, GridPicker;
|
|
23299
23336
|
var init_GridPicker = __esm({
|
|
23300
23337
|
"components/core/molecules/GridPicker.tsx"() {
|
|
23301
23338
|
"use client";
|
|
@@ -23304,6 +23341,7 @@ var init_GridPicker = __esm({
|
|
|
23304
23341
|
init_Badge();
|
|
23305
23342
|
init_Stack();
|
|
23306
23343
|
ALL_CATEGORY = "__all__";
|
|
23344
|
+
MAX_RENDERED = 300;
|
|
23307
23345
|
GridPicker = ({
|
|
23308
23346
|
items,
|
|
23309
23347
|
value,
|
|
@@ -23333,6 +23371,8 @@ var init_GridPicker = __esm({
|
|
|
23333
23371
|
return matchesCategory && matchesSearch;
|
|
23334
23372
|
});
|
|
23335
23373
|
}, [items, search, activeCategory]);
|
|
23374
|
+
const visible = useMemo(() => filtered.slice(0, MAX_RENDERED), [filtered]);
|
|
23375
|
+
const truncated = filtered.length - visible.length;
|
|
23336
23376
|
const select = useCallback(
|
|
23337
23377
|
(item) => {
|
|
23338
23378
|
onChange(item.id);
|
|
@@ -23434,7 +23474,7 @@ var init_GridPicker = __esm({
|
|
|
23434
23474
|
style: {
|
|
23435
23475
|
gridTemplateColumns: `repeat(auto-fill, minmax(${cellSize}px, 1fr))`
|
|
23436
23476
|
},
|
|
23437
|
-
children:
|
|
23477
|
+
children: visible.map((item, index) => {
|
|
23438
23478
|
const selected = item.id === value;
|
|
23439
23479
|
return /* @__PURE__ */ jsx(
|
|
23440
23480
|
"button",
|
|
@@ -23461,7 +23501,8 @@ var init_GridPicker = __esm({
|
|
|
23461
23501
|
);
|
|
23462
23502
|
})
|
|
23463
23503
|
}
|
|
23464
|
-
)
|
|
23504
|
+
),
|
|
23505
|
+
truncated > 0 && /* @__PURE__ */ jsx("div", { className: "px-1 text-xs text-muted-foreground", children: `+${truncated} more \u2014 refine your search` })
|
|
23465
23506
|
] });
|
|
23466
23507
|
};
|
|
23467
23508
|
GridPicker.displayName = "GridPicker";
|
|
@@ -27275,7 +27316,7 @@ function GameCanvas2D({
|
|
|
27275
27316
|
tickEvent,
|
|
27276
27317
|
drawEvent,
|
|
27277
27318
|
fps = 60,
|
|
27278
|
-
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/
|
|
27319
|
+
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
|
|
27279
27320
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/",
|
|
27280
27321
|
className
|
|
27281
27322
|
}) {
|
|
@@ -28541,7 +28582,7 @@ function PlatformerCanvas({
|
|
|
28541
28582
|
bgColor,
|
|
28542
28583
|
playerSprite = "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png",
|
|
28543
28584
|
tileSprites,
|
|
28544
|
-
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/
|
|
28585
|
+
backgroundImage = "https://almadar-kflow-assets.web.app/shared/scenes/dark_clouds_from_above.png",
|
|
28545
28586
|
assetBaseUrl = "https://almadar-kflow-assets.web.app/shared/platformer/",
|
|
28546
28587
|
leftEvent = "MOVE_LEFT",
|
|
28547
28588
|
rightEvent = "MOVE_RIGHT",
|