@almadar/shell-web 1.0.0 → 1.2.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 (109) hide show
  1. package/LICENSE +72 -0
  2. package/dist/AvlGlyph-KZMJDBEB.js +5 -0
  3. package/dist/AvlStateMachine-KVZMFHFU.js +8 -0
  4. package/dist/AvlTransitionDetail-7DVGV27I.js +10 -0
  5. package/dist/AvlTransitionExplainer-RMJ5LQLK.js +11 -0
  6. package/dist/BehaviorView-EYRPME67.js +10 -0
  7. package/dist/{FileTree-BCFnBEuQ.d.ts → FileTree-B3GDAjaQ.d.ts} +131 -4
  8. package/dist/FlowCanvas-J54627TC.js +23 -0
  9. package/dist/{FlowCanvas-3JRMNJLV.css → FlowCanvas-R4LL3KRI.css} +190 -192
  10. package/dist/{GameAudioProvider-ceM_n0ey.d.ts → GameAudioProvider-BgWOOYT3.d.ts} +15 -20
  11. package/dist/{KernelEngineContext-CcxGYtlr.d.ts → KernelEngineContext-BPx-q0iw.d.ts} +15 -2
  12. package/dist/{LayersPanel-M2LHWUFF.js → LayersPanel-PSXI4EHG.js} +4 -4
  13. package/dist/ModuleCard-TNRLL45H.js +6 -0
  14. package/dist/{OrbInspector-MHLJ6OEE.css → OrbInspector-2EGVZLOJ.css} +190 -192
  15. package/dist/OrbInspector-UBEQWWZ2.js +23 -0
  16. package/dist/{parseLessonSegments-GpCeMrb2.d.ts → SegmentRenderer-BAQ6Jwf6.d.ts} +4 -20
  17. package/dist/{Select-B-iDdnvE.d.ts → Select-BJ8Fgc8A.d.ts} +1 -1
  18. package/dist/{UISlotContext-Dl_ewwCI.d.ts → UISlotContext-7r0SQdTL.d.ts} +1 -1
  19. package/dist/UISlotRenderer-5OURMAP2.js +23 -0
  20. package/dist/{UISlotRenderer-KVFO6J7R.css → UISlotRenderer-SJBSQGBQ.css} +190 -192
  21. package/dist/auth/react/index.js +7 -6
  22. package/dist/avl/index.css +190 -192
  23. package/dist/avl/index.d.ts +19 -7
  24. package/dist/avl/index.js +170 -39
  25. package/dist/{chunk-AE7VCQB6.js → chunk-2LNXLMK3.js} +2 -2
  26. package/dist/{chunk-REXYVBUO.js → chunk-3DA36FOA.js} +1 -1
  27. package/dist/{chunk-UXLE3IPR.js → chunk-3UQNFRYV.js} +207 -9
  28. package/dist/{chunk-AGXD77SL.js → chunk-3YUMGEEW.js} +1 -1
  29. package/dist/{chunk-K4MOPSEL.js → chunk-6RXP5ZXE.js} +7 -8
  30. package/dist/{chunk-E6KA4J6N.js → chunk-7UCL26QB.js} +4 -5
  31. package/dist/{chunk-57DC34LY.js → chunk-AL2XXMYR.js} +2 -2
  32. package/dist/{chunk-YHMRX6YA.js → chunk-ANTJUQRD.js} +53 -13
  33. package/dist/{chunk-P4ZFUQFF.js → chunk-AZ74UPG6.js} +4 -1
  34. package/dist/{chunk-ROICKAU7.js → chunk-B23EZH2P.js} +3 -3
  35. package/dist/{chunk-CPLN6NBQ.js → chunk-CCO2ZH7F.js} +3 -4
  36. package/dist/{chunk-4YXBKHHM.js → chunk-D5FJU4XC.js} +87 -16
  37. package/dist/{chunk-HH5KSMH5.js → chunk-DPDKBY6Z.js} +1 -1
  38. package/dist/{chunk-A2LR6VQQ.js → chunk-ECC3WQIB.js} +9 -93
  39. package/dist/{chunk-VO2TTLS5.js → chunk-GHAF7QUD.js} +1 -1
  40. package/dist/{chunk-TXAUOLWZ.js → chunk-HA2BYO5E.js} +1 -1
  41. package/dist/{chunk-ILQXJ2AR.js → chunk-JEN4EIUF.js} +1 -1
  42. package/dist/{chunk-UTDC2NEA.js → chunk-KTYOYEVA.js} +1 -1
  43. package/dist/{chunk-X3DMMX27.js → chunk-LINJRTNB.js} +2 -2
  44. package/dist/{chunk-TUPZWTRE.js → chunk-LKL5RULQ.js} +467 -141
  45. package/dist/{chunk-UU57VNS2.js → chunk-PWXZN5G5.js} +2 -2
  46. package/dist/{chunk-SP5CDJ6K.js → chunk-RDPELAFQ.js} +4 -4
  47. package/dist/{chunk-PRXQGGCO.js → chunk-S3LS3B7N.js} +1 -1
  48. package/dist/{chunk-LHP2TK7O.js → chunk-TAEOMNDK.js} +3611 -4737
  49. package/dist/{chunk-3S54FWRC.js → chunk-UFQLHCFJ.js} +1 -1
  50. package/dist/{chunk-AB3X7QTE.js → chunk-V5SVGUYN.js} +2 -3
  51. package/dist/{chunk-3VZ36ZKO.js → chunk-ZDRDJKYB.js} +5 -2
  52. package/dist/components/index.css +190 -192
  53. package/dist/components/index.d.ts +568 -190
  54. package/dist/components/index.js +27 -30
  55. package/dist/context/index.d.ts +2 -2
  56. package/dist/context/index.js +5 -5
  57. package/dist/core.d.ts +21 -4
  58. package/dist/core.js +1 -1
  59. package/dist/{fx-CmQjnHmT.d.ts → fx-Bx5RqplG.d.ts} +10 -7
  60. package/dist/hooks/index.d.ts +8 -8
  61. package/dist/hooks/index.js +6 -6
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.js +2 -2
  64. package/dist/{katexPlugin-FA7NX4PE.css → katexPlugin-BUHVNRBJ.css} +1 -1
  65. package/dist/{kernel-client-TZKGHJRY.js → kernel-client-NMZ56JVU.js} +60 -6
  66. package/dist/{kernel-wire-wNdAPfhJ.d.ts → kernel-wire-CRsHtLsf.d.ts} +8 -1
  67. package/dist/lib/index.d.ts +3 -4
  68. package/dist/lib/index.js +435 -4
  69. package/dist/providers/index.css +190 -192
  70. package/dist/providers/index.d.ts +6 -8
  71. package/dist/providers/index.js +21 -25
  72. package/dist/renderer/index.d.ts +3 -79
  73. package/dist/renderer/index.js +2 -2
  74. package/dist/runtime/index.css +190 -192
  75. package/dist/runtime/index.d.ts +9 -2
  76. package/dist/runtime/index.js +20 -23
  77. package/dist/ssr/index.cjs +105 -28
  78. package/dist/ssr/index.js +106 -29
  79. package/dist/test-support.js +2 -2
  80. package/dist/{useUISlots-CiobNFGb.d.ts → useUISlots-BLcGd__D.d.ts} +2 -0
  81. package/dist/{paintDispatch-CuJLsr9Y.d.ts → verificationRegistry-BLuQU1JV.d.ts} +127 -15
  82. package/package.json +10 -38
  83. package/src/core/locales/ar.json +10 -1
  84. package/src/core/locales/en.json +10 -1
  85. package/src/core/locales/sl.json +10 -1
  86. package/tailwind-preset.cjs +8 -4
  87. package/dist/AvlGlyph-EPJKFEO3.js +0 -6
  88. package/dist/AvlStateMachine-RKZIKNGC.js +0 -9
  89. package/dist/AvlTransitionDetail-63SD6GZF.js +0 -11
  90. package/dist/AvlTransitionExplainer-ZBTLOM3T.js +0 -12
  91. package/dist/BehaviorView-YS5G4GNB.js +0 -11
  92. package/dist/Canvas3DHost-BkZQB5l2.d.ts +0 -552
  93. package/dist/FlowCanvas-AUMTWMNG.js +0 -26
  94. package/dist/ModuleCard-QHDGK5XK.js +0 -7
  95. package/dist/OrbInspector-QCPEPUPH.js +0 -26
  96. package/dist/UISlotRenderer-C7WWOK43.js +0 -26
  97. package/dist/avl-3d-context-BycmO6tG.d.ts +0 -201
  98. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +0 -132
  99. package/dist/avl-zoom-state-CKMVuBFg.d.ts +0 -17
  100. package/dist/chunk-4T3P43NS.js +0 -1133
  101. package/dist/chunk-DZBQA2OW.js +0 -176
  102. package/dist/chunk-EOWMARUB.js +0 -16
  103. package/dist/chunk-GFXCPUMX.js +0 -1334
  104. package/dist/chunk-ILZ7ORX7.js +0 -432
  105. package/dist/three/index.css +0 -503
  106. package/dist/three/index.d.ts +0 -1185
  107. package/dist/three/index.js +0 -3908
  108. package/dist/verificationRegistry-CVrcxG1s.d.ts +0 -122
  109. /package/dist/{katexPlugin-NCDKOOQY.js → katexPlugin-WGJ4JFZU.js} +0 -0
@@ -1,4 +1,4 @@
1
- /* node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css */
1
+ /* ../../../../../node_modules/.pnpm/katex@0.16.47/node_modules/katex/dist/katex.min.css */
2
2
  @font-face {
3
3
  font-display: block;
4
4
  font-family: KaTeX_AMS;
@@ -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:
@@ -3,15 +3,12 @@ import * as React$1 from 'react';
3
3
  import React__default from 'react';
4
4
  import { FieldType, FieldTag, EntityPersistence, SExpr, EvalTrace, A11yProps, EventEmit, Expression, OrbitalSchema, EntityData, EditFocus, EventPayload, AriaRole, DomainQuestion, DomainQuestionAnswer, ThemeDefinition, DependencyGraph, DependencyLayer, EventKey, CircuitStepResult, GuardEvaluation, EffectTrace, EventPayloadValue } from '@almadar/core';
5
5
  export { DependencyLayer } from '@almadar/core';
6
- import { A as AvlAnnotations, a as AvlNodeData, b as AvlNote } from '../FileTree-BCFnBEuQ.js';
6
+ import { T as TraitLevelData, A as AvlAnnotations, a as AvlNodeData, b as TraitTransitionInfo, c as TransitionLevelData, S as SerializedEffect, d as AvlNote } from '../FileTree-B3GDAjaQ.js';
7
7
  import { FileTreeItem } from '../components/index.js';
8
- export { c as AvlEdgeData, d as AvlStateMachine, e as AvlStateMachineProps, B as BehaviorView, M as ModuleCard, s as schemaToFlowGraph } from '../FileTree-BCFnBEuQ.js';
9
- import { T as TraitLevelData, d as TraitTransitionInfo, c as TransitionLevelData, S as SerializedEffect } from '../avl-schema-parser-CtJxJ9KU.js';
10
- export { A as ApplicationLevelData, C as CrossLink, b as OrbitalLevelData, p as parseApplicationLevel, e as parseOrbitalLevel, f as parseTraitLevel, g as parseTransitionLevel, t as traitLevelFromTrait } from '../avl-schema-parser-CtJxJ9KU.js';
8
+ export { e as ApplicationLevelData, f as AvlEdgeData, g as AvlStateMachine, h as AvlStateMachineProps, B as BehaviorView, C as CrossLink, M as ModuleCard, O as OrbitalLevelData, p as parseApplicationLevel, i as parseOrbitalLevel, j as parseTraitLevel, k as parseTransitionLevel, s as schemaToFlowGraph, t as traitLevelFromTrait } from '../FileTree-B3GDAjaQ.js';
11
9
  import { NodeProps, EdgeProps, Edge, Node, NodeTypes, ReactFlowProps } from '@xyflow/react';
12
10
  import { AnyPatternConfig } from '@almadar/core/patterns';
13
11
  import { useDraggable } from '@dnd-kit/core';
14
- import { Z as ZoomLevel } from '../avl-zoom-state-CKMVuBFg.js';
15
12
 
16
13
  /**
17
14
  * AVL theme roles — every AVL color is a theme token or a `color-mix` of one,
@@ -1866,6 +1863,21 @@ interface ZoomLegendProps {
1866
1863
  }
1867
1864
  declare const ZoomLegend: React__default.FC<ZoomLegendProps>;
1868
1865
 
1866
+ /**
1867
+ * AVL Cosmic Zoom State Machine
1868
+ *
1869
+ * useReducer-based state machine managing which zoom level is displayed,
1870
+ * what is selected, and animation state.
1871
+ *
1872
+ * Used by AvlOrbitalsCosmicZoom. The reducer supports every level
1873
+ * (`application → orbital → trait → transition`); the 2D cosmic view skips the `'orbital'` level after
1874
+ * COSMIC-1 (no Orbital-View screen) by dispatching `JUMP_TO_TRAIT_CIRCUIT`
1875
+ * to land directly at `'trait'`.
1876
+ *
1877
+ * @packageDocumentation
1878
+ */
1879
+ type ZoomLevel = 'application' | 'orbital' | 'trait' | 'transition';
1880
+
1869
1881
  /**
1870
1882
  * AvlCosmicZoom — Interactive Orbital Visualization
1871
1883
  *
@@ -2244,5 +2256,5 @@ declare function decodeSelectedPattern(value: EventPayloadValue): SelectedPatter
2244
2256
  /** Validates persisted canvas node positions (`FlowCanvas nodePositions`). */
2245
2257
  declare function decodeNodePlacements(value: EventPayloadValue): Record<string, CanvasNodePlacement>;
2246
2258
 
2247
- export { AVL_GLYPH_KINDS, AVL_GRAPH_NODE_TYPES, AvlAnnotations, AvlApplication, AvlBackwardEdge, AvlBehaviorGlyph, AvlBinding, AvlBindingEdge, AvlBindingRef, AvlCircuit, AvlClickTarget, AvlClosedCircuit, AvlCosmicZoom, AvlEffect, AvlEffectChip, AvlEmitListen, AvlEntity, AvlEvent, AvlEventWireEdge, AvlExprTree, AvlField, AvlFieldType, AvlGlyph, AvlGraphCanvas, AvlGuard, AvlLiteral, AvlNodeData, AvlNote, AvlOperator, AvlOrbital, AvlOrbitalUnit, AvlOrbitalsCosmicZoom, AvlPage, AvlPageEdge, AvlPersistence, AvlSExpr, AvlSlotMap, AvlState, AvlSwimLane, AvlTrait, AvlTraitScene, AvlTransition, AvlTransitionDetail, AvlTransitionEdge, AvlTransitionExplainer, AvlTransitionLane, AvlTransitionScene, CANVAS_TOOLS, CONNECTION_COLORS, CanvasDndProvider, CanvasVerifyContext, DEPLOYMENT_ROW, DOMAIN_COLORS, DependencyColumnNode, DependencyNode, DetailView, EDITABLE, EFFECT_CATEGORY_COLORS, ElementEditAccessContext, EventFlowEdge, FIELD_TYPE_SHAPES, FlowCanvas, KnobField, KnobSettingRow, LIVE_STATE, LayersPanel, MiniStateMachine, OPERATOR_CATEGORY_COLORS, OrbInspector, OrbPreviewNode, STATE_COLORS, SystemBandNode, SystemMapContext, SystemNode, TraitLevelData, TraitTransitionInfo, TransitionLevelData, ZOOM_BAND_THRESHOLDS, ZoomBandContext, ZoomBreadcrumb, ZoomLegend, ZoomLevel, arcPath, armPosition, armsOf, canvasViewGraph, computeTraitLayout, computeZoomBand, curveControlPoint, decodeNodePlacements, decodePreviewNodeData, decodeSelectedPattern, dependencyReach, deploymentGraph, deriveEditFocusFromElement, dropBusEvent, edgePath, effectCategoryOf, firedTransition, flowNeighbors, getStateRole, gridPositions, hasCanvasTool, initialStateOf, layeredGraph, optionForPlayedStep, parseLayerId, propAccessAt, radialPositions, ringPositions, schemaToDependencyGraph, schemaToLayerItems, schemaToOverviewGraph, stateMachinePlayback, stateOptionsOf, traitFlowGraph, transitionPlayback, useCanvasDraggable, useCanvasDroppable, useInlineTextEdit, useZoomBand, zoomProgress };
2248
- export type { AvlApplicationProps, AvlBaseProps, AvlBehaviorGlyphProps, AvlBindingProps, AvlBindingRefProps, AvlCircuitProps, AvlClickTargetProps, AvlClosedCircuitProps, AvlClosedCircuitState, AvlClosedCircuitTransition, AvlCosmicZoomProps, AvlEffectChipProps, AvlEffectProps, AvlEmitListenProps, AvlEntityProps, AvlEventProps, AvlEventWireEdgeData, AvlExprTreeNode, AvlExprTreeProps, AvlFieldProps, AvlFieldTypeProps, AvlGlyphKind, AvlGlyphProps, AvlGraphCanvasProps, AvlGuardProps, AvlLiteralProps, AvlOperatorProps, AvlOrbitalProps, AvlOrbitalUnitPage, AvlOrbitalUnitProps, AvlOrbitalUnitTrait, AvlOrbitalsCosmicZoomProps, AvlPageProps, AvlPersistenceProps, AvlPlayStep, AvlSExprProps, AvlSlotMapProps, AvlSlotMapSlot, AvlStateMachinePlayback, AvlStateProps, AvlStepRequest, AvlSwimLaneProps, AvlTraitProps, AvlTraitSceneProps, AvlTransitionDetailProps, AvlTransitionEdgeData, AvlTransitionExplainerProps, AvlTransitionLaneProps, AvlTransitionPlayback, AvlTransitionProps, AvlTransitionSceneProps, BehaviorGlyphChild, BehaviorGlyphConnection, BehaviorLevel, CanvasContainerNode, CanvasDndProviderProps, CanvasDragKind, CanvasDragPayload, CanvasDropEvent, CanvasDropTarget, CanvasFocusChange, CanvasResolvedDrop, CanvasScope, CanvasStateGroup, CanvasStateOption, CanvasStateOptions, CanvasStateView, CanvasStepReached, CanvasTool, CanvasVerify, CanvasViewOptions, CardVerdict, EffectCategory, ElementEditAccess, ElementEditAccessResolver, ElementKnob, ElementPropAccess, ElementSettings, ElkLayout, EventEdgeData, FieldTypeShape, FlowCanvasProps, GlyphSize, InlineTextEditOptions, KnobFieldProps, KnobSettingRowProps, LayerIdParts, LayeredColumn, LayeredColumnId, LayeredEdge, LayeredGraphInput, LayeredRow, LayeredUnit, LayersPanelProps, LayoutEdge, LayoutNode, OrbInspectorProps, PatternEventSource, PlayedStep, PreviewNodeData, RenderUIEntry, SelectedPattern, StateRole, SystemDependencies, SystemMapContextValue, TraitFlowEdge, TraitFlowUnit, TraitView, UseCanvasDraggableArgs, UseCanvasDraggableResult, UseCanvasDroppableArgs, UseCanvasDroppableResult, ViewLevel, ZoomBand, ZoomBreadcrumbProps, ZoomLegendProps };
2259
+ export { AVL_GLYPH_KINDS, AVL_GRAPH_NODE_TYPES, AvlAnnotations, AvlApplication, AvlBackwardEdge, AvlBehaviorGlyph, AvlBinding, AvlBindingEdge, AvlBindingRef, AvlCircuit, AvlClickTarget, AvlClosedCircuit, AvlCosmicZoom, AvlEffect, AvlEffectChip, AvlEmitListen, AvlEntity, AvlEvent, AvlEventWireEdge, AvlExprTree, AvlField, AvlFieldType, AvlGlyph, AvlGraphCanvas, AvlGuard, AvlLiteral, AvlNodeData, AvlNote, AvlOperator, AvlOrbital, AvlOrbitalUnit, AvlOrbitalsCosmicZoom, AvlPage, AvlPageEdge, AvlPersistence, AvlSExpr, AvlSlotMap, AvlState, AvlSwimLane, AvlTrait, AvlTraitScene, AvlTransition, AvlTransitionDetail, AvlTransitionEdge, AvlTransitionExplainer, AvlTransitionLane, AvlTransitionScene, CANVAS_TOOLS, CONNECTION_COLORS, CanvasDndProvider, CanvasVerifyContext, DEPLOYMENT_ROW, DOMAIN_COLORS, DependencyColumnNode, DependencyNode, DetailView, EDITABLE, EFFECT_CATEGORY_COLORS, ElementEditAccessContext, EventFlowEdge, FIELD_TYPE_SHAPES, FlowCanvas, KnobField, KnobSettingRow, LIVE_STATE, LayersPanel, MiniStateMachine, OPERATOR_CATEGORY_COLORS, OrbInspector, OrbPreviewNode, STATE_COLORS, SystemBandNode, SystemMapContext, SystemNode, TraitLevelData, TraitTransitionInfo, TransitionLevelData, ZOOM_BAND_THRESHOLDS, ZoomBandContext, ZoomBreadcrumb, ZoomLegend, arcPath, armPosition, armsOf, canvasViewGraph, computeTraitLayout, computeZoomBand, curveControlPoint, decodeNodePlacements, decodePreviewNodeData, decodeSelectedPattern, dependencyReach, deploymentGraph, deriveEditFocusFromElement, dropBusEvent, edgePath, effectCategoryOf, firedTransition, flowNeighbors, getStateRole, gridPositions, hasCanvasTool, initialStateOf, layeredGraph, optionForPlayedStep, parseLayerId, propAccessAt, radialPositions, ringPositions, schemaToDependencyGraph, schemaToLayerItems, schemaToOverviewGraph, stateMachinePlayback, stateOptionsOf, traitFlowGraph, transitionPlayback, useCanvasDraggable, useCanvasDroppable, useInlineTextEdit, useZoomBand, zoomProgress };
2260
+ export type { AvlApplicationProps, AvlBaseProps, AvlBehaviorGlyphProps, AvlBindingProps, AvlBindingRefProps, AvlCircuitProps, AvlClickTargetProps, AvlClosedCircuitProps, AvlClosedCircuitState, AvlClosedCircuitTransition, AvlCosmicZoomProps, AvlEffectChipProps, AvlEffectProps, AvlEmitListenProps, AvlEntityProps, AvlEventProps, AvlEventWireEdgeData, AvlExprTreeNode, AvlExprTreeProps, AvlFieldProps, AvlFieldTypeProps, AvlGlyphKind, AvlGlyphProps, AvlGraphCanvasProps, AvlGuardProps, AvlLiteralProps, AvlOperatorProps, AvlOrbitalProps, AvlOrbitalUnitPage, AvlOrbitalUnitProps, AvlOrbitalUnitTrait, AvlOrbitalsCosmicZoomProps, AvlPageProps, AvlPersistenceProps, AvlPlayStep, AvlSExprProps, AvlSlotMapProps, AvlSlotMapSlot, AvlStateMachinePlayback, AvlStateProps, AvlStepRequest, AvlSwimLaneProps, AvlTraitProps, AvlTraitSceneProps, AvlTransitionDetailProps, AvlTransitionEdgeData, AvlTransitionExplainerProps, AvlTransitionLaneProps, AvlTransitionPlayback, AvlTransitionProps, AvlTransitionSceneProps, BehaviorGlyphChild, BehaviorGlyphConnection, BehaviorLevel, CanvasContainerNode, CanvasDndProviderProps, CanvasDragKind, CanvasDragPayload, CanvasDropEvent, CanvasDropTarget, CanvasFocusChange, CanvasResolvedDrop, CanvasScope, CanvasStateGroup, CanvasStateOption, CanvasStateOptions, CanvasStateView, CanvasStepReached, CanvasTool, CanvasVerify, CanvasViewOptions, CardVerdict, EffectCategory, ElementEditAccess, ElementEditAccessResolver, ElementKnob, ElementPropAccess, ElementSettings, ElkLayout, EventEdgeData, FieldTypeShape, FlowCanvasProps, GlyphSize, InlineTextEditOptions, KnobFieldProps, KnobSettingRowProps, LayerIdParts, LayeredColumn, LayeredColumnId, LayeredEdge, LayeredGraphInput, LayeredRow, LayeredUnit, LayersPanelProps, LayoutEdge, LayoutNode, OrbInspectorProps, PatternEventSource, PlayedStep, PreviewNodeData, RenderUIEntry, SelectedPattern, StateRole, SystemDependencies, SystemMapContextValue, TraitFlowEdge, TraitFlowUnit, TraitView, UseCanvasDraggableArgs, UseCanvasDraggableResult, UseCanvasDroppableArgs, UseCanvasDroppableResult, ViewLevel, ZoomBand, ZoomBreadcrumbProps, ZoomLegendProps, ZoomLevel };
package/dist/avl/index.js CHANGED
@@ -1,46 +1,40 @@
1
1
  "use client";
2
- export { AvlTransitionExplainer } from '../chunk-X3DMMX27.js';
3
- export { LayersPanel, parseLayerId, schemaToLayerItems } from '../chunk-3S54FWRC.js';
4
- import { AvlTransitionDetail } from '../chunk-K4MOPSEL.js';
5
- export { AvlCircuit, AvlTransitionDetail } from '../chunk-K4MOPSEL.js';
6
- import { zoomReducer, initialZoomState, getBreadcrumbs } from '../chunk-GFXCPUMX.js';
7
- export { BehaviorView } from '../chunk-ROICKAU7.js';
8
- export { MiniStateMachine, ModuleCard } from '../chunk-E6KA4J6N.js';
9
- import '../chunk-ILQXJ2AR.js';
10
- import '../chunk-EOWMARUB.js';
11
- import { FlowCanvas, layeredGraph } from '../chunk-LHP2TK7O.js';
12
- export { AVL_GRAPH_NODE_TYPES, AvlGraphCanvas, CANVAS_TOOLS, CanvasDndProvider, CanvasVerifyContext, DependencyColumnNode, DependencyNode, EDITABLE, ElementEditAccessContext, EventFlowEdge, FlowCanvas, KnobField, KnobSettingRow, LIVE_STATE, OrbInspector, OrbPreviewNode, SystemBandNode, SystemMapContext, SystemNode, canvasViewGraph, dependencyReach, deriveEditFocusFromElement, dropBusEvent, flowNeighbors, hasCanvasTool, initialStateOf, layeredGraph, optionForPlayedStep, propAccessAt, schemaToDependencyGraph, schemaToOverviewGraph, stateOptionsOf, traitFlowGraph, useCanvasDraggable, useCanvasDroppable, useInlineTextEdit } from '../chunk-LHP2TK7O.js';
13
- import '../chunk-57DC34LY.js';
14
- export { AvlStateMachine } from '../chunk-SP5CDJ6K.js';
15
- import { AvlOrbital, AvlTrait, AvlEvent, AvlGuard } from '../chunk-CPLN6NBQ.js';
16
- export { AVL_GLYPH_KINDS, AvlApplication, AvlBinding, AvlBindingRef, AvlEvent, AvlField, AvlGlyph, AvlGuard, AvlLiteral, AvlOperator, AvlOrbital, AvlPersistence, AvlSExpr, AvlTrait, AvlTransition } from '../chunk-CPLN6NBQ.js';
17
- import { AvlEntity, AvlPage, AvlState } from '../chunk-HH5KSMH5.js';
18
- export { AvlEntity, AvlFieldType, AvlPage, AvlState, FIELD_TYPE_SHAPES } from '../chunk-HH5KSMH5.js';
19
- import { transitionPlayback } from '../chunk-REXYVBUO.js';
20
- export { armPosition, armsOf, firedTransition, stateMachinePlayback, transitionPlayback } from '../chunk-REXYVBUO.js';
21
- import '../chunk-AGXD77SL.js';
22
- import { computeTraitLayout, edgePath } from '../chunk-TXAUOLWZ.js';
23
- export { computeTraitLayout, edgePath } from '../chunk-TXAUOLWZ.js';
24
- export { AvlEffectChip } from '../chunk-AB3X7QTE.js';
25
- import { AvlEffect } from '../chunk-DZBQA2OW.js';
26
- export { AvlEffect } from '../chunk-DZBQA2OW.js';
27
- import '../chunk-TUPZWTRE.js';
28
- import '../chunk-TZZBINQY.js';
29
- import '../chunk-4T3P43NS.js';
2
+ export { LayersPanel, parseLayerId, schemaToLayerItems } from '../chunk-UFQLHCFJ.js';
3
+ export { AvlTransitionExplainer } from '../chunk-LINJRTNB.js';
4
+ import { AvlTransitionDetail } from '../chunk-6RXP5ZXE.js';
5
+ export { AvlCircuit, AvlTransitionDetail } from '../chunk-6RXP5ZXE.js';
6
+ export { BehaviorView } from '../chunk-B23EZH2P.js';
7
+ export { MiniStateMachine, ModuleCard } from '../chunk-7UCL26QB.js';
8
+ import '../chunk-JEN4EIUF.js';
9
+ import { FlowCanvas, layeredGraph } from '../chunk-TAEOMNDK.js';
10
+ export { AVL_GRAPH_NODE_TYPES, AvlGraphCanvas, CANVAS_TOOLS, CanvasDndProvider, CanvasVerifyContext, DependencyColumnNode, DependencyNode, EDITABLE, ElementEditAccessContext, EventFlowEdge, FlowCanvas, KnobField, KnobSettingRow, LIVE_STATE, OrbInspector, OrbPreviewNode, SystemBandNode, SystemMapContext, SystemNode, canvasViewGraph, dependencyReach, deriveEditFocusFromElement, dropBusEvent, flowNeighbors, hasCanvasTool, initialStateOf, layeredGraph, optionForPlayedStep, propAccessAt, schemaToDependencyGraph, schemaToOverviewGraph, stateOptionsOf, traitFlowGraph, useCanvasDraggable, useCanvasDroppable, useInlineTextEdit } from '../chunk-TAEOMNDK.js';
11
+ import '../chunk-AL2XXMYR.js';
12
+ export { AvlStateMachine } from '../chunk-RDPELAFQ.js';
13
+ import { AvlOrbital, AvlTrait, AvlEvent, AvlGuard } from '../chunk-CCO2ZH7F.js';
14
+ export { AVL_GLYPH_KINDS, AvlApplication, AvlBinding, AvlBindingRef, AvlEvent, AvlField, AvlGlyph, AvlGuard, AvlLiteral, AvlOperator, AvlOrbital, AvlPersistence, AvlSExpr, AvlTrait, AvlTransition } from '../chunk-CCO2ZH7F.js';
15
+ import { AvlEntity, AvlPage, AvlState } from '../chunk-DPDKBY6Z.js';
16
+ export { AvlEntity, AvlFieldType, AvlPage, AvlState, FIELD_TYPE_SHAPES } from '../chunk-DPDKBY6Z.js';
17
+ import { transitionPlayback } from '../chunk-3DA36FOA.js';
18
+ export { armPosition, armsOf, firedTransition, stateMachinePlayback, transitionPlayback } from '../chunk-3DA36FOA.js';
19
+ import '../chunk-3YUMGEEW.js';
20
+ import { computeTraitLayout, edgePath } from '../chunk-HA2BYO5E.js';
21
+ export { computeTraitLayout, edgePath } from '../chunk-HA2BYO5E.js';
30
22
  import { parseApplicationLevel, parseOrbitalLevel, parseTraitLevel } from '../chunk-PCR37T3U.js';
31
23
  export { parseApplicationLevel, parseOrbitalLevel, parseTraitLevel, parseTransitionLevel, traitLevelFromTrait } from '../chunk-PCR37T3U.js';
32
- import { avlSeries, CONNECTION_COLORS, getStateRole, avlTint, STATE_COLORS, effectCategoryOf, EFFECT_CATEGORY_COLORS } from '../chunk-UXLE3IPR.js';
33
- export { CONNECTION_COLORS, EFFECT_CATEGORY_COLORS, OPERATOR_CATEGORY_COLORS, STATE_COLORS, effectCategoryOf, getStateRole } from '../chunk-UXLE3IPR.js';
34
- import '../chunk-ILZ7ORX7.js';
35
- import '../chunk-3VZ36ZKO.js';
36
- import '../chunk-PRXQGGCO.js';
37
- import '../chunk-VO2TTLS5.js';
38
- import '../chunk-AE7VCQB6.js';
24
+ export { AvlEffectChip } from '../chunk-V5SVGUYN.js';
25
+ import { avlSeries, AvlEffect, CONNECTION_COLORS, getStateRole, avlTint, STATE_COLORS, effectCategoryOf, EFFECT_CATEGORY_COLORS } from '../chunk-3UQNFRYV.js';
26
+ export { AvlEffect, CONNECTION_COLORS, EFFECT_CATEGORY_COLORS, OPERATOR_CATEGORY_COLORS, STATE_COLORS, effectCategoryOf, getStateRole } from '../chunk-3UQNFRYV.js';
27
+ import '../chunk-LKL5RULQ.js';
28
+ import '../chunk-TZZBINQY.js';
29
+ import '../chunk-ZDRDJKYB.js';
30
+ import '../chunk-S3LS3B7N.js';
31
+ import '../chunk-GHAF7QUD.js';
32
+ import '../chunk-2LNXLMK3.js';
39
33
  import '../chunk-3BBUBJFF.js';
40
- import '../chunk-YHMRX6YA.js';
41
- import { useTranslate, cn, Box, HStack, Typography, pressableProps, Button, RangeSlider } from '../chunk-4YXBKHHM.js';
42
- import '../chunk-A2LR6VQQ.js';
43
- import '../chunk-P4ZFUQFF.js';
34
+ import '../chunk-ANTJUQRD.js';
35
+ import { useTranslate, cn, Box, HStack, Typography, pressableProps, Button, RangeSlider } from '../chunk-D5FJU4XC.js';
36
+ import '../chunk-ECC3WQIB.js';
37
+ import '../chunk-AZ74UPG6.js';
44
38
  import '../chunk-G7DCAZ22.js';
45
39
  import React4, { createContext, useMemo, useContext, useState, useReducer, useEffect, useCallback } from 'react';
46
40
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1875,6 +1869,143 @@ var AvlCosmicZoom = (props) => {
1875
1869
  );
1876
1870
  };
1877
1871
  AvlCosmicZoom.displayName = "AvlCosmicZoom";
1872
+
1873
+ // src/lib/avl-zoom-state.ts
1874
+ var initialZoomState = {
1875
+ level: "application",
1876
+ selectedOrbital: null,
1877
+ selectedTrait: null,
1878
+ selectedTransition: null,
1879
+ animating: false,
1880
+ animationDirection: "in",
1881
+ animationTarget: null
1882
+ };
1883
+ function zoomReducer(state, action) {
1884
+ switch (action.type) {
1885
+ case "ZOOM_INTO_ORBITAL": {
1886
+ if (state.level !== "application" || state.animating) return state;
1887
+ return {
1888
+ ...state,
1889
+ animating: true,
1890
+ animationDirection: "in",
1891
+ animationTarget: { x: action.targetPosition.x, y: action.targetPosition.y, scale: 3 },
1892
+ selectedOrbital: action.orbital
1893
+ };
1894
+ }
1895
+ case "ZOOM_INTO_TRAIT": {
1896
+ if (state.level !== "orbital" || state.animating) return state;
1897
+ return {
1898
+ ...state,
1899
+ animating: true,
1900
+ animationDirection: "in",
1901
+ animationTarget: { x: action.targetPosition.x, y: action.targetPosition.y, scale: 3 },
1902
+ selectedTrait: action.trait
1903
+ };
1904
+ }
1905
+ case "ZOOM_INTO_TRANSITION": {
1906
+ if (state.level !== "trait" || state.animating) return state;
1907
+ return {
1908
+ ...state,
1909
+ animating: true,
1910
+ animationDirection: "in",
1911
+ animationTarget: { x: action.targetPosition.x, y: action.targetPosition.y, scale: 3 },
1912
+ selectedTransition: action.transitionIndex
1913
+ };
1914
+ }
1915
+ case "JUMP_TO_TRAIT_CIRCUIT": {
1916
+ if (state.level !== "application" || state.animating) return state;
1917
+ return {
1918
+ ...state,
1919
+ level: "trait",
1920
+ selectedOrbital: action.orbital,
1921
+ selectedTrait: null,
1922
+ selectedTransition: null,
1923
+ animating: false,
1924
+ animationDirection: "in",
1925
+ animationTarget: null
1926
+ };
1927
+ }
1928
+ case "SELECT_TRAIT": {
1929
+ return { ...state, selectedTrait: action.trait };
1930
+ }
1931
+ case "ZOOM_OUT": {
1932
+ if (state.level === "application" || state.animating) return state;
1933
+ return {
1934
+ ...state,
1935
+ animating: true,
1936
+ animationDirection: "out",
1937
+ animationTarget: { x: 300, y: 200, scale: 0.3 }
1938
+ };
1939
+ }
1940
+ case "ANIMATION_COMPLETE": {
1941
+ if (!state.animating) return state;
1942
+ if (state.animationDirection === "in") {
1943
+ const nextLevel = state.level === "application" ? "orbital" : state.level === "orbital" ? "trait" : "transition";
1944
+ return {
1945
+ ...state,
1946
+ level: nextLevel,
1947
+ animating: false,
1948
+ animationTarget: null
1949
+ };
1950
+ }
1951
+ if (state.level === "transition") {
1952
+ return {
1953
+ ...state,
1954
+ level: "trait",
1955
+ selectedTransition: null,
1956
+ animating: false,
1957
+ animationTarget: null
1958
+ };
1959
+ }
1960
+ if (state.level === "trait") {
1961
+ return {
1962
+ ...state,
1963
+ level: "application",
1964
+ selectedOrbital: null,
1965
+ selectedTrait: null,
1966
+ animating: false,
1967
+ animationTarget: null
1968
+ };
1969
+ }
1970
+ if (state.level === "orbital") {
1971
+ return {
1972
+ ...state,
1973
+ level: "application",
1974
+ selectedOrbital: null,
1975
+ animating: false,
1976
+ animationTarget: null
1977
+ };
1978
+ }
1979
+ return state;
1980
+ }
1981
+ case "SWITCH_TRAIT": {
1982
+ if (state.level !== "trait" || state.animating) return state;
1983
+ return {
1984
+ ...state,
1985
+ selectedTrait: action.trait,
1986
+ selectedTransition: null
1987
+ };
1988
+ }
1989
+ case "RESET": {
1990
+ return initialZoomState;
1991
+ }
1992
+ default:
1993
+ return state;
1994
+ }
1995
+ }
1996
+ function getBreadcrumbs(state) {
1997
+ const crumbs = [{ labelKey: "avl.glyph.application", level: "application" }];
1998
+ if (state.selectedOrbital) {
1999
+ crumbs.push({ label: state.selectedOrbital, level: "orbital" });
2000
+ }
2001
+ if (state.selectedTrait) {
2002
+ crumbs.push({ label: state.selectedTrait, level: "trait" });
2003
+ }
2004
+ if (state.selectedTransition !== null) {
2005
+ crumbs.push({ labelKey: "avl.breadcrumb.transitionNumber", labelParams: { n: state.selectedTransition }, level: "transition" });
2006
+ }
2007
+ return crumbs;
2008
+ }
1878
2009
  var LEVEL_BOX = { inset: 0, paddingTop: 56, paddingBottom: 24, paddingLeft: 24, paddingRight: 24 };
1879
2010
  var AvlOrbitalsCosmicZoom = ({
1880
2011
  schema: schemaProp,