@almadar/shell-web 1.0.0 → 1.1.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.
Files changed (70) hide show
  1. package/dist/AvlGlyph-PIXU6QH5.js +5 -0
  2. package/dist/AvlStateMachine-CKGMECMG.js +8 -0
  3. package/dist/{AvlTransitionDetail-63SD6GZF.js → AvlTransitionDetail-QZX6G5KJ.js} +4 -5
  4. package/dist/AvlTransitionExplainer-26WLEIC6.js +11 -0
  5. package/dist/BehaviorView-JLZ4PKWY.js +10 -0
  6. package/dist/{FileTree-BCFnBEuQ.d.ts → FileTree-B3GDAjaQ.d.ts} +131 -4
  7. package/dist/{FlowCanvas-AUMTWMNG.js → FlowCanvas-RPII4V24.js} +10 -13
  8. package/dist/{FlowCanvas-3JRMNJLV.css → FlowCanvas-VWUPMBKB.css} +189 -191
  9. package/dist/{GameAudioProvider-ceM_n0ey.d.ts → GameAudioProvider-D7wo5ryN.d.ts} +1 -1
  10. package/dist/{KernelEngineContext-CcxGYtlr.d.ts → KernelEngineContext-CPeWQMAz.d.ts} +15 -2
  11. package/dist/ModuleCard-NJD6JQGD.js +6 -0
  12. package/dist/{OrbInspector-QCPEPUPH.js → OrbInspector-OWWKPOBF.js} +10 -13
  13. package/dist/{OrbInspector-MHLJ6OEE.css → OrbInspector-VMTMZHNQ.css} +189 -191
  14. package/dist/{Select-B-iDdnvE.d.ts → Select-C2Uq6t86.d.ts} +1 -1
  15. package/dist/{UISlotRenderer-KVFO6J7R.css → UISlotRenderer-BIS6KT7T.css} +189 -191
  16. package/dist/{UISlotRenderer-C7WWOK43.js → UISlotRenderer-PY7FIJXN.js} +10 -13
  17. package/dist/avl/index.css +189 -191
  18. package/dist/avl/index.d.ts +19 -7
  19. package/dist/avl/index.js +157 -26
  20. package/dist/{chunk-TUPZWTRE.js → chunk-2WGR4TDJ.js} +464 -35
  21. package/dist/{chunk-SP5CDJ6K.js → chunk-4YJ53G7S.js} +3 -3
  22. package/dist/{chunk-HH5KSMH5.js → chunk-7N6ZPHQ5.js} +1 -1
  23. package/dist/{chunk-CPLN6NBQ.js → chunk-AGVSO4WY.js} +2 -3
  24. package/dist/{chunk-UXLE3IPR.js → chunk-FAKU5F62.js} +205 -4
  25. package/dist/{chunk-TXAUOLWZ.js → chunk-M74BCDBQ.js} +1 -1
  26. package/dist/{chunk-LHP2TK7O.js → chunk-MS4K3K2R.js} +2908 -4574
  27. package/dist/{chunk-K4MOPSEL.js → chunk-OWNG4JZI.js} +3 -4
  28. package/dist/{chunk-AB3X7QTE.js → chunk-PRLHKBXG.js} +1 -2
  29. package/dist/{chunk-X3DMMX27.js → chunk-VHC2M26B.js} +1 -1
  30. package/dist/{chunk-E6KA4J6N.js → chunk-VUIACGDU.js} +3 -4
  31. package/dist/{chunk-ROICKAU7.js → chunk-YYIHRIDH.js} +1 -1
  32. package/dist/{chunk-3VZ36ZKO.js → chunk-ZDRDJKYB.js} +5 -2
  33. package/dist/components/index.css +189 -191
  34. package/dist/components/index.d.ts +417 -173
  35. package/dist/components/index.js +14 -17
  36. package/dist/core.d.ts +3 -3
  37. package/dist/{fx-CmQjnHmT.d.ts → fx-Br8zjvu9.d.ts} +6 -6
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.js +2 -2
  40. package/dist/{kernel-client-TZKGHJRY.js → kernel-client-JW6OH5FX.js} +24 -3
  41. package/dist/{kernel-wire-wNdAPfhJ.d.ts → kernel-wire-DGAySGhX.d.ts} +7 -0
  42. package/dist/lib/index.d.ts +2 -3
  43. package/dist/lib/index.js +2 -3
  44. package/dist/providers/index.css +189 -191
  45. package/dist/providers/index.d.ts +6 -8
  46. package/dist/providers/index.js +10 -14
  47. package/dist/runtime/index.css +189 -191
  48. package/dist/runtime/index.d.ts +6 -1
  49. package/dist/runtime/index.js +10 -13
  50. package/dist/test-support.js +2 -2
  51. package/dist/{paintDispatch-CuJLsr9Y.d.ts → verificationRegistry-oopV1J1n.d.ts} +127 -15
  52. package/package.json +8 -36
  53. package/dist/AvlGlyph-EPJKFEO3.js +0 -6
  54. package/dist/AvlStateMachine-RKZIKNGC.js +0 -9
  55. package/dist/AvlTransitionExplainer-ZBTLOM3T.js +0 -12
  56. package/dist/BehaviorView-YS5G4GNB.js +0 -11
  57. package/dist/Canvas3DHost-BkZQB5l2.d.ts +0 -552
  58. package/dist/ModuleCard-QHDGK5XK.js +0 -7
  59. package/dist/avl-3d-context-BycmO6tG.d.ts +0 -201
  60. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +0 -132
  61. package/dist/avl-zoom-state-CKMVuBFg.d.ts +0 -17
  62. package/dist/chunk-4T3P43NS.js +0 -1133
  63. package/dist/chunk-DZBQA2OW.js +0 -176
  64. package/dist/chunk-EOWMARUB.js +0 -16
  65. package/dist/chunk-GFXCPUMX.js +0 -1334
  66. package/dist/chunk-ILZ7ORX7.js +0 -432
  67. package/dist/three/index.css +0 -503
  68. package/dist/three/index.d.ts +0 -1185
  69. package/dist/three/index.js +0 -3908
  70. package/dist/verificationRegistry-CVrcxG1s.d.ts +0 -122
@@ -5,19 +5,17 @@ import '../EventBusProvider-BFFHfN4O.js';
5
5
  import { UIThemeDefinition } from '../core.js';
6
6
  export { A as ARBITRARY_CLASS_STYLE_ID, a as ArbitraryClassCompiler, b as ArbitraryClassCompilerProvider, c as ArbitraryClassCompilerProviderProps, C as CurrentPagePathContext, d as CurrentPagePathProvider, e as CurrentPagePathProviderProps, D as DesignThemeProvider, O as OrbitalThemeProvider, f as OrbitalThemeProviderProps, U as UserContext, g as UserContextValue, h as UserData, i as UserProvider, j as UserProviderProps, r as resetArbitraryClassStyles, u as useArbitraryClassStyles, k as useCurrentPagePath, l as useDesignTheme, m as useHasPermission, n as useHasRole, o as useUser, p as useUserForEvaluation } from '../ArbitraryClassCompiler-CO_iASBn.js';
7
7
  export { h as AwaitingSkeletonContext, A as AwaitingSkeletonSource, i as EntityBindingContext, E as EntityBindingSource, a as EntitySchemaContextValue, b as EntitySchemaProvider, c as EntitySchemaProviderProps, d as ServerBridgeContextValue, e as ServerBridgeProvider, j as ServerBridgeProviderProps, S as ServerBridgeTransport, k as useAwaitingSkeleton, l as useEntityBindingSnapshot, u as useEntitySchema, f as useEntitySchemaOptional, g as useServerBridge } from '../ServerBridge-Bqsj-lOU.js';
8
- export { a as KernelEngineContext, b as KernelEngineProvider, c as KernelEngineProviderProps, K as KernelEngineValue, d as KernelLoaderMissingError, u as useKernelEngine } from '../KernelEngineContext-CcxGYtlr.js';
9
- export { b as KernelInstance, a as KernelLoader, K as KernelModule } from '../kernel-wire-wNdAPfhJ.js';
10
- import '../verificationRegistry-CVrcxG1s.js';
11
- export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-ceM_n0ey.js';
12
- export { A as Avl3DConfig, a as Avl3DContext, b as Avl3DModelOverrides, u as useAvl3DConfig, c as useAvl3DPalette } from '../avl-3d-context-BycmO6tG.js';
8
+ export { a as KernelEngineContext, b as KernelEngineProvider, c as KernelEngineProviderProps, K as KernelEngineValue, d as KernelLoaderMissingError, u as useKernelEngine } from '../KernelEngineContext-CPeWQMAz.js';
9
+ export { b as KernelInstance, a as KernelLoader, K as KernelModule } from '../kernel-wire-DGAySGhX.js';
10
+ import '../verificationRegistry-oopV1J1n.js';
11
+ export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-D7wo5ryN.js';
13
12
  export { AccessTokenProvider } from '@almadar/shell-runtime/client/EventTransport';
14
13
  import '../verification-C5pTeMJv.js';
15
14
  import '@almadar/shell-runtime/kernel/os-port';
15
+ import '@almadar/shell-runtime/kernel/wire';
16
16
  import '@almadar/shell-browser/kv';
17
- import '../paintDispatch-CuJLsr9Y.js';
18
- import '../fx-CmQjnHmT.js';
17
+ import '../fx-Br8zjvu9.js';
19
18
  import 'lucide-react';
20
- import 'three';
21
19
 
22
20
  /**
23
21
  * SelectionProvider - Manages selected entity state
@@ -1,22 +1,18 @@
1
1
  "use client";
2
- export { Avl3DContext, useAvl3DConfig, useAvl3DPalette } from '../chunk-EOWMARUB.js';
3
- export { AwaitingSkeletonContext, EntityBindingContext, EntitySchemaProvider, GameAudioContext, GameAudioProvider, KernelEngineContext, KernelEngineProvider, KernelLoaderMissingError, OrbitalProvider, PageAccessHost, RenderSlotProvider, RowSetResolverProvider, SelectionContext, SelectionProvider, ServerBridgeProvider, VerificationProvider, mapServerEffectResults, useAwaitingSkeleton, useEntityBindingSnapshot, useEntitySchema, useEntitySchemaOptional, useGameAudioContext, useGameAudioContextOptional, useKernelEngine, useRenderSlot, useRowSetResolver, useRowSetResolverHandle, useSelection, useSelectionOptional, useServerBridge } from '../chunk-LHP2TK7O.js';
2
+ export { AwaitingSkeletonContext, EntityBindingContext, EntitySchemaProvider, GameAudioContext, GameAudioProvider, KernelEngineContext, KernelEngineProvider, KernelLoaderMissingError, OrbitalProvider, PageAccessHost, RenderSlotProvider, RowSetResolverProvider, SelectionContext, SelectionProvider, ServerBridgeProvider, VerificationProvider, mapServerEffectResults, useAwaitingSkeleton, useEntityBindingSnapshot, useEntitySchema, useEntitySchemaOptional, useGameAudioContext, useGameAudioContextOptional, useKernelEngine, useRenderSlot, useRowSetResolver, useRowSetResolverHandle, useSelection, useSelectionOptional, useServerBridge } from '../chunk-MS4K3K2R.js';
4
3
  import '../chunk-57DC34LY.js';
5
- import '../chunk-SP5CDJ6K.js';
6
- import '../chunk-CPLN6NBQ.js';
7
- import '../chunk-HH5KSMH5.js';
4
+ import '../chunk-4YJ53G7S.js';
5
+ import '../chunk-AGVSO4WY.js';
6
+ import '../chunk-7N6ZPHQ5.js';
8
7
  import '../chunk-REXYVBUO.js';
9
8
  import '../chunk-AGXD77SL.js';
10
- import '../chunk-TXAUOLWZ.js';
11
- import '../chunk-AB3X7QTE.js';
12
- import '../chunk-DZBQA2OW.js';
13
- import '../chunk-TUPZWTRE.js';
14
- import '../chunk-TZZBINQY.js';
15
- import '../chunk-4T3P43NS.js';
9
+ import '../chunk-M74BCDBQ.js';
16
10
  import '../chunk-PCR37T3U.js';
17
- import '../chunk-UXLE3IPR.js';
18
- import '../chunk-ILZ7ORX7.js';
19
- import '../chunk-3VZ36ZKO.js';
11
+ import '../chunk-PRLHKBXG.js';
12
+ import '../chunk-FAKU5F62.js';
13
+ import '../chunk-2WGR4TDJ.js';
14
+ import '../chunk-TZZBINQY.js';
15
+ import '../chunk-ZDRDJKYB.js';
20
16
  export { EditorFocusProvider, useEditorFocus } from '../chunk-PRXQGGCO.js';
21
17
  import '../chunk-VO2TTLS5.js';
22
18
  export { DesignThemeProvider, useDesignTheme } from '../chunk-UTDC2NEA.js';
@@ -1160,7 +1160,195 @@ body {
1160
1160
  counter-reset: katexEqnNo mmlEqnNo;
1161
1161
  }
1162
1162
 
1163
- /* src/lib/drawable/three/Canvas3DLoadingState.css */
1163
+ /* src/lib/drawable/orbital/OrbitalCanvas3D.css */
1164
+ .game-canvas-3d {
1165
+ background: #1a1a2e;
1166
+ border-radius: 8px;
1167
+ }
1168
+ .game-canvas-3d canvas {
1169
+ display: block;
1170
+ width: 100%;
1171
+ height: 100%;
1172
+ }
1173
+ .game-canvas-3d--loading {
1174
+ display: flex;
1175
+ align-items: center;
1176
+ justify-content: center;
1177
+ background:
1178
+ linear-gradient(
1179
+ 135deg,
1180
+ #1a1a2e 0%,
1181
+ #16213e 100%);
1182
+ }
1183
+ .game-canvas-3d__loading {
1184
+ padding: 20px 40px;
1185
+ background: rgba(255, 255, 255, 0.1);
1186
+ border-radius: 8px;
1187
+ color: #ffffff;
1188
+ font-size: 16px;
1189
+ animation: pulse 1.5s ease-in-out infinite;
1190
+ }
1191
+ .game-canvas-3d--error {
1192
+ display: flex;
1193
+ align-items: center;
1194
+ justify-content: center;
1195
+ background:
1196
+ linear-gradient(
1197
+ 135deg,
1198
+ #2e1a1a 0%,
1199
+ #3e1616 100%);
1200
+ }
1201
+ .game-canvas-3d__error {
1202
+ position: relative;
1203
+ z-index: 1;
1204
+ padding: 20px 40px;
1205
+ background: rgba(255, 0, 0, 0.2);
1206
+ border: 1px solid rgba(255, 0, 0, 0.3);
1207
+ border-radius: 8px;
1208
+ color: #ff6b6b;
1209
+ font-size: 14px;
1210
+ }
1211
+ .game-canvas-3d__coordinates {
1212
+ position: absolute;
1213
+ bottom: 20px;
1214
+ left: 20px;
1215
+ padding: 8px 16px;
1216
+ background: rgba(0, 0, 0, 0.7);
1217
+ border-radius: 4px;
1218
+ color: #ffffff;
1219
+ font-family: monospace;
1220
+ font-size: 12px;
1221
+ pointer-events: none;
1222
+ z-index: 10;
1223
+ }
1224
+ .game-canvas-3d__tile-info {
1225
+ position: absolute;
1226
+ top: 20px;
1227
+ left: 20px;
1228
+ padding: 12px 16px;
1229
+ background: rgba(0, 0, 0, 0.8);
1230
+ border-radius: 6px;
1231
+ color: #ffffff;
1232
+ pointer-events: none;
1233
+ z-index: 10;
1234
+ min-width: 120px;
1235
+ }
1236
+ .tile-info__type {
1237
+ font-weight: 600;
1238
+ font-size: 14px;
1239
+ text-transform: capitalize;
1240
+ margin-bottom: 4px;
1241
+ }
1242
+ .tile-info__terrain {
1243
+ font-size: 12px;
1244
+ color: #aaaaaa;
1245
+ }
1246
+ @keyframes pulse {
1247
+ 0%, 100% {
1248
+ opacity: 1;
1249
+ }
1250
+ 50% {
1251
+ opacity: 0.5;
1252
+ }
1253
+ }
1254
+ .game-canvas-3d[data-camera-mode=isometric]::before {
1255
+ content: "Isometric";
1256
+ position: absolute;
1257
+ top: 20px;
1258
+ right: 20px;
1259
+ padding: 6px 12px;
1260
+ background: rgba(0, 0, 0, 0.6);
1261
+ border-radius: 4px;
1262
+ color: #ffffff;
1263
+ font-size: 11px;
1264
+ text-transform: uppercase;
1265
+ letter-spacing: 1px;
1266
+ pointer-events: none;
1267
+ }
1268
+ .game-canvas-3d[data-camera-mode=perspective]::before {
1269
+ content: "Perspective";
1270
+ position: absolute;
1271
+ top: 20px;
1272
+ right: 20px;
1273
+ padding: 6px 12px;
1274
+ background: rgba(0, 0, 0, 0.6);
1275
+ border-radius: 4px;
1276
+ color: #ffffff;
1277
+ font-size: 11px;
1278
+ text-transform: uppercase;
1279
+ letter-spacing: 1px;
1280
+ pointer-events: none;
1281
+ }
1282
+ .game-canvas-3d[data-camera-mode=top-down]::before {
1283
+ content: "Top Down";
1284
+ position: absolute;
1285
+ top: 20px;
1286
+ right: 20px;
1287
+ padding: 6px 12px;
1288
+ background: rgba(0, 0, 0, 0.6);
1289
+ border-radius: 4px;
1290
+ color: #ffffff;
1291
+ font-size: 11px;
1292
+ text-transform: uppercase;
1293
+ letter-spacing: 1px;
1294
+ pointer-events: none;
1295
+ }
1296
+ .game-canvas-3d[data-overlay=hidden] .game-canvas-3d__coordinates,
1297
+ .game-canvas-3d[data-overlay=hidden] .game-canvas-3d__tile-info,
1298
+ .game-canvas-3d[data-overlay=hidden]::before {
1299
+ display: none;
1300
+ }
1301
+ .game-canvas-3d[data-orientation=rotated] {
1302
+ }
1303
+ .game-canvas-3d canvas {
1304
+ cursor: crosshair;
1305
+ }
1306
+ .game-canvas-3d canvas:active {
1307
+ cursor: grabbing;
1308
+ }
1309
+ @media (max-width: 768px) {
1310
+ .game-canvas-3d__coordinates,
1311
+ .game-canvas-3d__tile-info {
1312
+ font-size: 10px;
1313
+ padding: 6px 10px;
1314
+ }
1315
+ .game-canvas-3d::before {
1316
+ font-size: 9px;
1317
+ padding: 4px 8px;
1318
+ }
1319
+ }
1320
+ .game-canvas-3d:focus {
1321
+ outline: 2px solid #4488ff;
1322
+ outline-offset: 2px;
1323
+ }
1324
+ .game-canvas-3d canvas {
1325
+ transition: opacity 0.3s ease;
1326
+ }
1327
+ .game-canvas-3d__context-menu {
1328
+ position: absolute;
1329
+ background: rgba(0, 0, 0, 0.9);
1330
+ border: 1px solid rgba(255, 255, 255, 0.1);
1331
+ border-radius: 6px;
1332
+ padding: 8px 0;
1333
+ min-width: 150px;
1334
+ z-index: 100;
1335
+ }
1336
+ .game-canvas-3d__context-menu-item {
1337
+ padding: 8px 16px;
1338
+ color: #ffffff;
1339
+ cursor: pointer;
1340
+ font-size: 13px;
1341
+ transition: background 0.15s ease;
1342
+ }
1343
+ .game-canvas-3d__context-menu-item:hover {
1344
+ background: rgba(255, 255, 255, 0.1);
1345
+ }
1346
+ .game-canvas-3d__context-menu-item--danger {
1347
+ color: #ff6b6b;
1348
+ }
1349
+ .game-canvas-3d__context-menu-item--danger:hover {
1350
+ background: rgba(255, 0, 0, 0.2);
1351
+ }
1164
1352
  .canvas-3d-loading {
1165
1353
  position: absolute;
1166
1354
  inset: 0;
@@ -1312,8 +1500,6 @@ body {
1312
1500
  font-size: 12px;
1313
1501
  }
1314
1502
  }
1315
-
1316
- /* src/lib/drawable/three/Canvas3DErrorBoundary.css */
1317
1503
  .canvas-3d-error {
1318
1504
  position: absolute;
1319
1505
  inset: 0;
@@ -1476,194 +1662,6 @@ body {
1476
1662
  }
1477
1663
  }
1478
1664
 
1479
- /* src/lib/drawable/three/Canvas3DHost.css */
1480
- .game-canvas-3d {
1481
- background: #1a1a2e;
1482
- border-radius: 8px;
1483
- }
1484
- .game-canvas-3d canvas {
1485
- display: block;
1486
- width: 100%;
1487
- height: 100%;
1488
- }
1489
- .game-canvas-3d--loading {
1490
- display: flex;
1491
- align-items: center;
1492
- justify-content: center;
1493
- background:
1494
- linear-gradient(
1495
- 135deg,
1496
- #1a1a2e 0%,
1497
- #16213e 100%);
1498
- }
1499
- .game-canvas-3d__loading {
1500
- padding: 20px 40px;
1501
- background: rgba(255, 255, 255, 0.1);
1502
- border-radius: 8px;
1503
- color: #ffffff;
1504
- font-size: 16px;
1505
- animation: pulse 1.5s ease-in-out infinite;
1506
- }
1507
- .game-canvas-3d--error {
1508
- display: flex;
1509
- align-items: center;
1510
- justify-content: center;
1511
- background:
1512
- linear-gradient(
1513
- 135deg,
1514
- #2e1a1a 0%,
1515
- #3e1616 100%);
1516
- }
1517
- .game-canvas-3d__error {
1518
- padding: 20px 40px;
1519
- background: rgba(255, 0, 0, 0.2);
1520
- border: 1px solid rgba(255, 0, 0, 0.3);
1521
- border-radius: 8px;
1522
- color: #ff6b6b;
1523
- font-size: 14px;
1524
- }
1525
- .game-canvas-3d__coordinates {
1526
- position: absolute;
1527
- bottom: 20px;
1528
- left: 20px;
1529
- padding: 8px 16px;
1530
- background: rgba(0, 0, 0, 0.7);
1531
- border-radius: 4px;
1532
- color: #ffffff;
1533
- font-family: monospace;
1534
- font-size: 12px;
1535
- pointer-events: none;
1536
- z-index: 10;
1537
- }
1538
- .game-canvas-3d__tile-info {
1539
- position: absolute;
1540
- top: 20px;
1541
- left: 20px;
1542
- padding: 12px 16px;
1543
- background: rgba(0, 0, 0, 0.8);
1544
- border-radius: 6px;
1545
- color: #ffffff;
1546
- pointer-events: none;
1547
- z-index: 10;
1548
- min-width: 120px;
1549
- }
1550
- .tile-info__type {
1551
- font-weight: 600;
1552
- font-size: 14px;
1553
- text-transform: capitalize;
1554
- margin-bottom: 4px;
1555
- }
1556
- .tile-info__terrain {
1557
- font-size: 12px;
1558
- color: #aaaaaa;
1559
- }
1560
- @keyframes pulse {
1561
- 0%, 100% {
1562
- opacity: 1;
1563
- }
1564
- 50% {
1565
- opacity: 0.5;
1566
- }
1567
- }
1568
- .game-canvas-3d[data-camera-mode=isometric]::before {
1569
- content: "Isometric";
1570
- position: absolute;
1571
- top: 20px;
1572
- right: 20px;
1573
- padding: 6px 12px;
1574
- background: rgba(0, 0, 0, 0.6);
1575
- border-radius: 4px;
1576
- color: #ffffff;
1577
- font-size: 11px;
1578
- text-transform: uppercase;
1579
- letter-spacing: 1px;
1580
- pointer-events: none;
1581
- }
1582
- .game-canvas-3d[data-camera-mode=perspective]::before {
1583
- content: "Perspective";
1584
- position: absolute;
1585
- top: 20px;
1586
- right: 20px;
1587
- padding: 6px 12px;
1588
- background: rgba(0, 0, 0, 0.6);
1589
- border-radius: 4px;
1590
- color: #ffffff;
1591
- font-size: 11px;
1592
- text-transform: uppercase;
1593
- letter-spacing: 1px;
1594
- pointer-events: none;
1595
- }
1596
- .game-canvas-3d[data-camera-mode=top-down]::before {
1597
- content: "Top Down";
1598
- position: absolute;
1599
- top: 20px;
1600
- right: 20px;
1601
- padding: 6px 12px;
1602
- background: rgba(0, 0, 0, 0.6);
1603
- border-radius: 4px;
1604
- color: #ffffff;
1605
- font-size: 11px;
1606
- text-transform: uppercase;
1607
- letter-spacing: 1px;
1608
- pointer-events: none;
1609
- }
1610
- .game-canvas-3d[data-overlay=hidden] .game-canvas-3d__coordinates,
1611
- .game-canvas-3d[data-overlay=hidden] .game-canvas-3d__tile-info,
1612
- .game-canvas-3d[data-overlay=hidden]::before {
1613
- display: none;
1614
- }
1615
- .game-canvas-3d[data-orientation=rotated] {
1616
- }
1617
- .game-canvas-3d canvas {
1618
- cursor: crosshair;
1619
- }
1620
- .game-canvas-3d canvas:active {
1621
- cursor: grabbing;
1622
- }
1623
- @media (max-width: 768px) {
1624
- .game-canvas-3d__coordinates,
1625
- .game-canvas-3d__tile-info {
1626
- font-size: 10px;
1627
- padding: 6px 10px;
1628
- }
1629
- .game-canvas-3d::before {
1630
- font-size: 9px;
1631
- padding: 4px 8px;
1632
- }
1633
- }
1634
- .game-canvas-3d:focus {
1635
- outline: 2px solid #4488ff;
1636
- outline-offset: 2px;
1637
- }
1638
- .game-canvas-3d canvas {
1639
- transition: opacity 0.3s ease;
1640
- }
1641
- .game-canvas-3d__context-menu {
1642
- position: absolute;
1643
- background: rgba(0, 0, 0, 0.9);
1644
- border: 1px solid rgba(255, 255, 255, 0.1);
1645
- border-radius: 6px;
1646
- padding: 8px 0;
1647
- min-width: 150px;
1648
- z-index: 100;
1649
- }
1650
- .game-canvas-3d__context-menu-item {
1651
- padding: 8px 16px;
1652
- color: #ffffff;
1653
- cursor: pointer;
1654
- font-size: 13px;
1655
- transition: background 0.15s ease;
1656
- }
1657
- .game-canvas-3d__context-menu-item:hover {
1658
- background: rgba(255, 255, 255, 0.1);
1659
- }
1660
- .game-canvas-3d__context-menu-item--danger {
1661
- color: #ff6b6b;
1662
- }
1663
- .game-canvas-3d__context-menu-item--danger:hover {
1664
- background: rgba(255, 0, 0, 0.2);
1665
- }
1666
-
1667
1665
  /* src/components/core/organisms/debug/RuntimeDebugger.css */
1668
1666
  .runtime-debugger {
1669
1667
  font-family:
@@ -14,6 +14,7 @@ import { HostSignInRequest, HostSignInAnswer, HostConsentRequest, HostConsentAns
14
14
  import React__default from 'react';
15
15
  import { SchemaLoader } from '@almadar/shell-runtime';
16
16
  import { KernelLoader } from '../providers/index.js';
17
+ import { KernelCanvas3DFactory, KernelSceneCanvasFactory } from '@almadar/shell-runtime/kernel/wire';
17
18
  export { S as SlotHostManifest, a as SlotHostRegion, b as assertUniqueSlotsPerHost } from '../slot-host-CPzrxLo9.js';
18
19
  export { p as profilerOnRender, u as usePerfBuffer } from '../perf-CKiBKbkw.js';
19
20
  import '../useUISlots-CiobNFGb.js';
@@ -144,6 +145,10 @@ interface OrbPreviewProps {
144
145
  * preview runs under whatever engine the host's own `KernelEngineProvider` selects.
145
146
  */
146
147
  kernelLoader?: KernelLoader;
148
+ /** With `kernelLoader`: makes the 3D view a `canvas` mode:"3d" draws on (`(canvas) => Canvas3D.create(canvas)`). */
149
+ canvas3d?: KernelCanvas3DFactory;
150
+ /** With `kernelLoader`: makes the scene canvas the learning and 2D canvases draw on (`(canvas) => SceneCanvas.create(canvas)`). */
151
+ sceneCanvas?: KernelSceneCanvasFactory;
147
152
  /**
148
153
  * How long (ms) to wait for the server bridge to connect before assuming
149
154
  * it's unreachable and falling back to local-only execution. Default
@@ -230,7 +235,7 @@ interface OrbPreviewProps {
230
235
  /** Answers `auth/consent` in place of the popup the web host opens: the shell's own authorize window. */
231
236
  onConsentAsk?: (request: HostConsentRequest) => Promise<HostConsentAnswer>;
232
237
  }
233
- declare function OrbPreview({ schema, mockData, height, frame, className, serverUrl, transport, getAccessToken, kernelLoader, initialPagePath, isolated, fit, onPageChange, authority, localFallbackTimeoutMs, themeOverride, paused, lazyLoader, schemaPath, onUnmatchedNavigate, onSignIn, onSignOut, onSignInAsk, onConsentAsk, }: OrbPreviewProps): React__default.ReactElement;
238
+ declare function OrbPreview({ schema, mockData, height, frame, className, serverUrl, transport, getAccessToken, kernelLoader, canvas3d, sceneCanvas, initialPagePath, isolated, fit, onPageChange, authority, localFallbackTimeoutMs, themeOverride, paused, lazyLoader, schemaPath, onUnmatchedNavigate, onSignIn, onSignOut, onSignInAsk, onConsentAsk, }: OrbPreviewProps): React__default.ReactElement;
234
239
  declare namespace OrbPreview {
235
240
  var displayName: string;
236
241
  }
@@ -1,22 +1,19 @@
1
1
  "use client";
2
2
  export { assertUniqueSlotsPerHost } from '../chunk-5QTYQTPS.js';
3
- export { EntitySchemaProvider, OrbPreview, ServerBridgeProvider, useEntitySchema, useEntitySchemaOptional, useServerBridge, useTraitStateMachine } from '../chunk-LHP2TK7O.js';
3
+ export { EntitySchemaProvider, OrbPreview, ServerBridgeProvider, useEntitySchema, useEntitySchemaOptional, useServerBridge, useTraitStateMachine } from '../chunk-MS4K3K2R.js';
4
4
  import '../chunk-57DC34LY.js';
5
- import '../chunk-SP5CDJ6K.js';
6
- import '../chunk-CPLN6NBQ.js';
7
- import '../chunk-HH5KSMH5.js';
5
+ import '../chunk-4YJ53G7S.js';
6
+ import '../chunk-AGVSO4WY.js';
7
+ import '../chunk-7N6ZPHQ5.js';
8
8
  import '../chunk-REXYVBUO.js';
9
9
  import '../chunk-AGXD77SL.js';
10
- import '../chunk-TXAUOLWZ.js';
11
- import '../chunk-AB3X7QTE.js';
12
- import '../chunk-DZBQA2OW.js';
13
- export { profilerOnRender, usePerfBuffer } from '../chunk-TUPZWTRE.js';
14
- import '../chunk-TZZBINQY.js';
15
- import '../chunk-4T3P43NS.js';
10
+ import '../chunk-M74BCDBQ.js';
16
11
  import '../chunk-PCR37T3U.js';
17
- import '../chunk-UXLE3IPR.js';
18
- import '../chunk-ILZ7ORX7.js';
19
- export { PERF_NAMESPACE, clearPerf, perfEnd, perfStart, perfTime, wrapCallbackForEvent } from '../chunk-3VZ36ZKO.js';
12
+ import '../chunk-PRLHKBXG.js';
13
+ import '../chunk-FAKU5F62.js';
14
+ export { profilerOnRender, usePerfBuffer } from '../chunk-2WGR4TDJ.js';
15
+ import '../chunk-TZZBINQY.js';
16
+ export { PERF_NAMESPACE, clearPerf, perfEnd, perfStart, perfTime, wrapCallbackForEvent } from '../chunk-ZDRDJKYB.js';
20
17
  import '../chunk-PRXQGGCO.js';
21
18
  import '../chunk-VO2TTLS5.js';
22
19
  import '../chunk-AE7VCQB6.js';
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { openLocalKernel, nativeMemoryPersistence } from './chunk-3VZ36ZKO.js';
2
+ import { openLocalKernel, nativeMemoryPersistence } from './chunk-ZDRDJKYB.js';
3
3
  import './chunk-G7DCAZ22.js';
4
4
  import { existsSync, readFileSync, mkdtempSync, writeFileSync, mkdirSync, rmSync } from 'fs';
5
5
  import { createRequire } from 'module';
@@ -107,7 +107,7 @@ async function loadFreshClientKernel() {
107
107
  async function warmKernel() {
108
108
  if (!KERNEL_AVAILABLE) return;
109
109
  await KERNEL_ENGINE.loadModule();
110
- await import('./kernel-client-TZKGHJRY.js');
110
+ await import('./kernel-client-JW6OH5FX.js');
111
111
  }
112
112
  function statelessKernelTransport(schema) {
113
113
  let template;