@almadar/shell-web 0.1.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 (131) hide show
  1. package/dist/{ArbitraryClassCompiler-Mzabq-UB.d.ts → ArbitraryClassCompiler-CO_iASBn.d.ts} +99 -4
  2. package/dist/AvlGlyph-PIXU6QH5.js +5 -0
  3. package/dist/AvlStateMachine-CKGMECMG.js +8 -0
  4. package/dist/AvlTransitionDetail-QZX6G5KJ.js +10 -0
  5. package/dist/AvlTransitionExplainer-26WLEIC6.js +11 -0
  6. package/dist/BehaviorView-JLZ4PKWY.js +10 -0
  7. package/dist/{EventBusProvider-CVwjkV_2.d.ts → EventBusProvider-BFFHfN4O.d.ts} +12 -0
  8. package/dist/{FileTree-BCFnBEuQ.d.ts → FileTree-B3GDAjaQ.d.ts} +131 -4
  9. package/dist/FlowCanvas-RPII4V24.js +23 -0
  10. package/dist/{BehaviorValueFrame-SSEMEBTG.css → FlowCanvas-VWUPMBKB.css} +189 -191
  11. package/dist/{GameAudioProvider-Cm9BnvmP.d.ts → GameAudioProvider-D7wo5ryN.d.ts} +5 -8
  12. package/dist/KernelEngineContext-CPeWQMAz.d.ts +46 -0
  13. package/dist/LayersPanel-M2LHWUFF.js +6 -0
  14. package/dist/ModuleCard-NJD6JQGD.js +6 -0
  15. package/dist/OrbInspector-OWWKPOBF.js +23 -0
  16. package/dist/{TraitValueFrame-4G3KOUBR.css → OrbInspector-VMTMZHNQ.css} +189 -191
  17. package/dist/{Select-mDZIwNqN.d.ts → Select-C2Uq6t86.d.ts} +17 -31
  18. package/dist/ServerBridge-Bqsj-lOU.d.ts +124 -0
  19. package/dist/{FlowCanvas-3JRMNJLV.css → UISlotRenderer-BIS6KT7T.css} +189 -191
  20. package/dist/UISlotRenderer-PY7FIJXN.js +23 -0
  21. package/dist/auth/browser/index.js +1 -0
  22. package/dist/auth/react/index.d.ts +8 -1
  23. package/dist/auth/react/index.js +40 -2
  24. package/dist/avl/index.css +189 -191
  25. package/dist/avl/index.d.ts +107 -85
  26. package/dist/avl/index.js +170 -39
  27. package/dist/{chunk-P4LNHAFI.js → chunk-2WGR4TDJ.js} +465 -36
  28. package/dist/{chunk-GKIFONTE.js → chunk-3S54FWRC.js} +2 -2
  29. package/dist/{chunk-KVQS4GXU.js → chunk-4YJ53G7S.js} +18 -8
  30. package/dist/{chunk-MBQAMMSE.js → chunk-4YXBKHHM.js} +269 -658
  31. package/dist/{chunk-YDNJLLG6.js → chunk-57DC34LY.js} +19 -10
  32. package/dist/{chunk-FP3WIKTC.js → chunk-7N6ZPHQ5.js} +9 -1
  33. package/dist/{chunk-AILY3XPS.js → chunk-AE7VCQB6.js} +5 -6
  34. package/dist/{chunk-L677XGY3.js → chunk-AGVSO4WY.js} +4 -5
  35. package/dist/{chunk-FAJDTHWC.js → chunk-AGXD77SL.js} +2 -2
  36. package/dist/chunk-AU7O65OX.js +66 -0
  37. package/dist/{chunk-DFNZUYX4.js → chunk-FAKU5F62.js} +273 -29
  38. package/dist/{chunk-U6QRZASX.js → chunk-ILQXJ2AR.js} +1 -1
  39. package/dist/chunk-M74BCDBQ.js +490 -0
  40. package/dist/{chunk-GYTPOFVC.js → chunk-MS4K3K2R.js} +12095 -13329
  41. package/dist/{chunk-SGM3FASH.js → chunk-OWNG4JZI.js} +13 -12
  42. package/dist/{chunk-VFF5OO47.js → chunk-PCR37T3U.js} +15 -38
  43. package/dist/{chunk-SJGJJKBY.js → chunk-PRLHKBXG.js} +5 -3
  44. package/dist/{chunk-R5O5AUPI.js → chunk-PRXQGGCO.js} +93 -86
  45. package/dist/{chunk-42FY4RYA.js → chunk-REXYVBUO.js} +2 -2
  46. package/dist/{chunk-EQAMU2ZC.js → chunk-UTDC2NEA.js} +1 -1
  47. package/dist/{chunk-73SRAB4P.js → chunk-UU57VNS2.js} +2 -2
  48. package/dist/{chunk-TESBIVUA.js → chunk-VHC2M26B.js} +2 -2
  49. package/dist/{chunk-L2DEKY4J.js → chunk-VO2TTLS5.js} +3 -6
  50. package/dist/{chunk-2PY54Z44.js → chunk-VUIACGDU.js} +4 -5
  51. package/dist/{chunk-DLZF4PVE.js → chunk-YYIHRIDH.js} +3 -3
  52. package/dist/{chunk-DYEKAA4L.js → chunk-ZDRDJKYB.js} +243 -252
  53. package/dist/components/index.css +189 -191
  54. package/dist/components/index.d.ts +739 -289
  55. package/dist/components/index.js +25 -28
  56. package/dist/context/index.d.ts +2 -3
  57. package/dist/context/index.js +4 -3
  58. package/dist/core.d.ts +95 -19
  59. package/dist/core.js +2 -1
  60. package/dist/design-classes/index.cjs +3 -1
  61. package/dist/design-classes/index.js +3 -1
  62. package/dist/{fx-CmQjnHmT.d.ts → fx-Br8zjvu9.d.ts} +6 -6
  63. package/dist/hooks/index.d.ts +40 -5
  64. package/dist/hooks/index.js +5 -4
  65. package/dist/index.d.ts +40 -114
  66. package/dist/index.js +174 -34
  67. package/dist/kernel-client-JW6OH5FX.js +537 -0
  68. package/dist/kernel-wire-DGAySGhX.d.ts +95 -0
  69. package/dist/lib/index.d.ts +3 -4
  70. package/dist/lib/index.js +4 -4
  71. package/dist/{prism-AIWGN2X5.js → prism-X5YWKXO5.js} +5 -3
  72. package/dist/providers/index.css +189 -191
  73. package/dist/providers/index.d.ts +41 -28
  74. package/dist/providers/index.js +19 -24
  75. package/dist/renderer/index.d.ts +0 -2
  76. package/dist/renderer/index.js +1 -0
  77. package/dist/runtime/index.css +189 -191
  78. package/dist/runtime/index.d.ts +57 -253
  79. package/dist/runtime/index.js +18 -24
  80. package/dist/ssr/index.cjs +2643 -535
  81. package/dist/ssr/index.d.cts +0 -23
  82. package/dist/ssr/index.d.ts +0 -23
  83. package/dist/ssr/index.js +2639 -535
  84. package/dist/storage/browser/index.js +1 -0
  85. package/dist/test-support.d.ts +15 -8
  86. package/dist/test-support.js +91 -24
  87. package/dist/{paintDispatch-ChW5mVuK.d.ts → verificationRegistry-oopV1J1n.d.ts} +132 -30
  88. package/package.json +14 -38
  89. package/src/core/lib/band-shapes.json +7 -0
  90. package/src/core/locales/ar.json +18 -5
  91. package/src/core/locales/en.json +18 -5
  92. package/src/core/locales/sl.json +18 -5
  93. package/tailwind-preset.cjs +30 -1
  94. package/dist/AvlGlyph-JKJOAH23.js +0 -6
  95. package/dist/AvlStateMachine-PI4YGREK.js +0 -8
  96. package/dist/AvlTransitionDetail-ZH7V24UG.js +0 -12
  97. package/dist/AvlTransitionExplainer-ZSRT7L6Y.js +0 -13
  98. package/dist/BehaviorValueFrame-6RUJXT4A.js +0 -29
  99. package/dist/BehaviorView-RFEE5J6E.js +0 -10
  100. package/dist/Canvas3DHost-_Y-5uLM_.d.ts +0 -552
  101. package/dist/FlowCanvas-STDC4OWK.js +0 -27
  102. package/dist/KernelEngineContext-BOCQoFwk.d.ts +0 -43
  103. package/dist/LayersPanel-BBQ54IVG.js +0 -7
  104. package/dist/ModuleCard-3TT2X7IW.js +0 -7
  105. package/dist/OrbInspector-K6T6O7GI.js +0 -27
  106. package/dist/OrbInspector-MHLJ6OEE.css +0 -1756
  107. package/dist/ServerBridge-Cm1On51b.d.ts +0 -233
  108. package/dist/TraitValueFrame-2PJGLLVI.js +0 -28
  109. package/dist/UISlotRenderer-JKFSX24W.js +0 -27
  110. package/dist/UISlotRenderer-KVFO6J7R.css +0 -1756
  111. package/dist/UserContext-DqWeZkUZ.d.ts +0 -100
  112. package/dist/avl-3d-context-BIRKWpaL.d.ts +0 -204
  113. package/dist/avl-schema-parser-CtJxJ9KU.d.ts +0 -132
  114. package/dist/avl-zoom-state-CKMVuBFg.d.ts +0 -17
  115. package/dist/chunk-2QOH2HWM.js +0 -95
  116. package/dist/chunk-6P3MWXYE.js +0 -440
  117. package/dist/chunk-B4BU77LT.js +0 -432
  118. package/dist/chunk-DJ433ET5.js +0 -1327
  119. package/dist/chunk-DZ42OJQC.js +0 -176
  120. package/dist/chunk-EOWMARUB.js +0 -16
  121. package/dist/chunk-FIW6WN23.js +0 -508
  122. package/dist/chunk-GAR5TQ5B.js +0 -199
  123. package/dist/chunk-PC7K4SK7.js +0 -1384
  124. package/dist/chunk-ZO6MXAS3.js +0 -69
  125. package/dist/kernel-client-ZH4PSMCN.js +0 -367
  126. package/dist/kernel-wire-B4S8pnP3.d.ts +0 -65
  127. package/dist/three/index.css +0 -503
  128. package/dist/three/index.d.ts +0 -1185
  129. package/dist/three/index.js +0 -3896
  130. package/dist/useKeyboardRouter-Dsq553Ur.d.ts +0 -42
  131. package/dist/verificationRegistry-CabxhfTv.d.ts +0 -122
@@ -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:
@@ -1,10 +1,16 @@
1
1
  import React__default from 'react';
2
2
  import { A11yProps, Asset, EventKey, EventPayload, EventEmit } from '@almadar/core';
3
- import { I as IconInput } from './fx-CmQjnHmT.js';
3
+ import { I as IconInput } from './fx-Br8zjvu9.js';
4
4
 
5
5
  type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default" | "link";
6
6
  type ButtonSize = "sm" | "md" | "lg";
7
- /** @accessibleName label */
7
+ /**
8
+ * @accessibleName label
9
+ * @role button
10
+ * @tokens --color-primary --color-primary-foreground --color-foreground
11
+ * @contrast primary-foreground primary
12
+ * @motion css
13
+ */
8
14
  interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, keyof A11yProps | 'onClick'>, A11yProps {
9
15
  /** Additional CSS classes applied to the root element. */
10
16
  className?: string;
@@ -34,6 +40,8 @@ interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButto
34
40
  label?: string;
35
41
  /** Disable the button (greys out, blocks click events) */
36
42
  disabled?: boolean;
43
+ /** Native button type. `type` is reserved for the pattern discriminator in schema render specs. */
44
+ htmlType?: "button" | "submit" | "reset";
37
45
  /** Makes the button a link: `#anchor` scrolls, an absolute URL loads, a path navigates in-app */
38
46
  href?: string;
39
47
  /**
@@ -50,7 +58,13 @@ interface SelectOption$1 {
50
58
  value: string;
51
59
  label: string;
52
60
  }
53
- /** @accessibleName label */
61
+ /**
62
+ * @accessibleName label
63
+ * @role textbox
64
+ * @tokens --color-card --color-border --color-foreground --color-muted-foreground
65
+ * @contrast foreground card
66
+ * @motion css
67
+ */
54
68
  interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "onChange" | Exclude<keyof A11yProps, "role" | "dir">>, Omit<A11yProps, "role" | "dir"> {
55
69
  /** Additional CSS classes applied to the root element. */
56
70
  className?: string;
@@ -98,43 +112,15 @@ interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputEl
98
112
  }
99
113
  declare const Input: React__default.ForwardRefExoticComponent<InputProps & React__default.RefAttributes<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>;
100
114
 
101
- /**
102
- * PatternTile Atom
103
- *
104
- * Mathematically correct Islamic geometric pattern tiles using the
105
- * Polygons-in-Contact (PIC) method (Hankin 1925, formalized by Kaplan 2005).
106
- *
107
- * Construction: A regular polygon tiling is overlaid with star motifs.
108
- * Each motif touches the enclosing polygon at EDGE MIDPOINTS only.
109
- * Two rays emanate from each midpoint into the polygon at a specific
110
- * CONTACT ANGLE (theta). Where rays from adjacent midpoints intersect,
111
- * they form the star points. Gap tiles (squares, triangles) between
112
- * polygons receive inferred geometry by extending boundary rays inward.
113
- *
114
- * Variants:
115
- * star8 — 8-fold star-and-cross on 4.8.8 tiling (theta = 67.5 deg)
116
- * star6 — 6-fold star on hexagonal tiling (theta = 60 deg)
117
- * khatam — 8-fold rosette with interlocking kites (theta = 72 deg)
118
- * star10 — 10-fold girih on decagonal tiling (theta = 72 deg)
119
- * star12 — 12-fold on dodecagonal tiling (theta = 75 deg)
120
- *
121
- * All tiles use stroke only (no fill), rendering as transparent overlays.
122
- */
123
-
124
115
  type PatternVariant = 'star8' | 'star6' | 'khatam' | 'star10' | 'star12' | 'rosette-double' | 'rosette-filled' | 'seigaiha' | 'greek-key' | 'celtic-knot' | 'kolam' | 'arch' | 'arabesque-vine' | 'arabesque-net';
125
116
  interface PatternTileProps extends A11yProps {
126
- /** Which geometric pattern to render */
127
117
  variant?: PatternVariant;
128
- /** Tile unit size in SVG units */
129
118
  size?: number;
130
- /** Stroke color (CSS variable or hex) */
131
119
  color?: string;
132
- /** Line thickness */
133
120
  strokeWidth?: number;
134
121
  className?: string;
135
122
  }
136
123
  declare const PatternTile: React__default.FC<PatternTileProps>;
137
- /** Returns the tile dimensions for a given variant and size */
138
124
  declare function getTileDimensions(variant: PatternVariant, size: number): {
139
125
  width: number;
140
126
  height: number;
@@ -0,0 +1,124 @@
1
+ import * as React from 'react';
2
+ import React__default, { ReactNode } from 'react';
3
+ import { EntityRow, TraitConfig, SkeletonNode, OrbitalSchema } from '@almadar/core';
4
+ import { EventTransport, AccessTokenProvider } from '@almadar/shell-runtime/client/EventTransport';
5
+ import './verification-C5pTeMJv.js';
6
+
7
+ /**
8
+ * Read + subscribe surface over the live trait binding stores. Snapshots
9
+ * are cached objects — a new reference only when the trait's entity
10
+ * actually changed (the `useSyncExternalStore` contract).
11
+ */
12
+ interface EntityBindingSource {
13
+ /** Current entity snapshot for a trait (shared-entity traits read the shared store). */
14
+ getEntitySnapshot: (traitName: string) => EntityRow;
15
+ /** Merged render-time config (declared defaults < resolved < call-site). */
16
+ getConfig: (traitName: string) => TraitConfig | undefined;
17
+ /** Current state-machine state — evaluation context for `@state` in marked expressions. */
18
+ getState: (traitName: string) => string;
19
+ /** Subscribe to entity commits for a trait. Returns unsubscribe. */
20
+ subscribe: (traitName: string, callback: () => void) => () => void;
21
+ }
22
+ declare const EntityBindingContext: React.Context<EntityBindingSource | null>;
23
+ /**
24
+ * Bridge one trait's live bindings into React. With no provider (compiled
25
+ * shell, static renders) or no owning trait, returns empty bindings and
26
+ * never re-renders — markers resolve to the same `undefined` they would
27
+ * have resolved to at flush time against an empty entity.
28
+ */
29
+ declare function useEntityBindingSnapshot(traitName: string | undefined): {
30
+ entity: EntityRow;
31
+ config: TraitConfig | undefined;
32
+ state: string;
33
+ };
34
+
35
+ interface AwaitingSkeletonSource {
36
+ /** The predicted skeleton for a top-level slot, from a non-embedded awaiting render. */
37
+ forSlot: (slot: string) => SkeletonNode | undefined;
38
+ /** The predicted skeleton for an embedded trait's frame. */
39
+ forTrait: (traitName: string) => SkeletonNode | undefined;
40
+ subscribe: (callback: () => void) => () => void;
41
+ getVersion: () => number;
42
+ }
43
+ declare const AwaitingSkeletonContext: React.Context<AwaitingSkeletonSource | null>;
44
+ declare function useAwaitingSkeleton(target: {
45
+ slot: string;
46
+ } | {
47
+ trait: string;
48
+ }): SkeletonNode | undefined;
49
+
50
+ /**
51
+ * EntitySchemaContext
52
+ *
53
+ * Provides the kernel's answer for which orbital owns each trait on the page.
54
+ * Not a data store: entity rows flow through the state machine's `@payload.data`
55
+ * binding and land on the rendering component's `entity` prop.
56
+ *
57
+ * @packageDocumentation
58
+ */
59
+
60
+ interface EntitySchemaContextValue {
61
+ /** Per-trait owning-orbital name, as the kernel's page circuit answers it; scopes each slot's events. */
62
+ orbitalsByTrait: ReadonlyMap<string, string>;
63
+ }
64
+ interface EntitySchemaProviderProps {
65
+ orbitalsByTrait: ReadonlyMap<string, string>;
66
+ children: React__default.ReactNode;
67
+ }
68
+ declare function EntitySchemaProvider({ orbitalsByTrait, children, }: EntitySchemaProviderProps): React__default.ReactElement;
69
+ declare function useEntitySchema(): EntitySchemaContextValue;
70
+ /** Null when no provider is present (UISlotRenderer may render outside one in compiled mode). */
71
+ declare function useEntitySchemaOptional(): EntitySchemaContextValue | null;
72
+
73
+ interface ServerBridgeContextValue {
74
+ connected: boolean;
75
+ /**
76
+ * From the transport's `register()` result
77
+ * (`EventTransportRegisterResult.carriesCircuitState`, `@almadar/runtime`):
78
+ * `true` = the stateless topology (a posted leg must carry
79
+ * `traits`/`entityByTrait`), `false` = the server (or an in-process
80
+ * evaluator) holds circuit state itself.
81
+ */
82
+ carriesCircuitState: boolean;
83
+ /** `register()` has resolved, so `carriesCircuitState` is the transport's
84
+ * real topology rather than the pre-register guess. */
85
+ topologyKnown: boolean;
86
+ /** The ONE transport this bridge manages the register/unregister
87
+ * lifecycle for — `useCircuitKernel` dispatches through it directly. */
88
+ transport: EventTransport;
89
+ }
90
+ /**
91
+ * @deprecated Alias for `@almadar/runtime`'s `EventTransport` (plan P5) —
92
+ * kept only because in-package consumers (`OrbPreview.tsx`) still import the name.
93
+ * Import `EventTransport` directly in new code.
94
+ */
95
+ type ServerBridgeTransport = EventTransport;
96
+
97
+ /**
98
+ * Access the server bridge. Returns a no-op stub when outside the provider —
99
+ * `useCircuitKernel` treats an absent/no-op transport as offline (plan G7).
100
+ */
101
+ declare function useServerBridge(): ServerBridgeContextValue;
102
+ interface ServerBridgeProviderProps {
103
+ schema: OrbitalSchema;
104
+ /** HTTP server URL (canonical playground-runtime / apps/builder-server). */
105
+ serverUrl?: string;
106
+ /**
107
+ * Custom `EventTransport` (plan P5, `@almadar/runtime`). Use this for
108
+ * in-process execution (e.g. an in-process test harness invokes
109
+ * `OrbitalServerRuntime.processOrbitalEvent` directly via
110
+ * `createInProcessTransport`). Mutually exclusive with `serverUrl`.
111
+ */
112
+ transport?: EventTransport;
113
+ /**
114
+ * Bearer token for the HTTP transport (`Authorization` on every fetch, and on the
115
+ * request that mints the SSE stream's single-use ticket, since EventSource cannot set headers).
116
+ * Ignored with a custom `transport`.
117
+ */
118
+ getAccessToken?: AccessTokenProvider;
119
+ children: ReactNode;
120
+ }
121
+ declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, getAccessToken, children, }: ServerBridgeProviderProps): React.JSX.Element;
122
+
123
+ export { EntitySchemaProvider as b, ServerBridgeProvider as e, useEntitySchemaOptional as f, useServerBridge as g, AwaitingSkeletonContext as h, EntityBindingContext as i, useAwaitingSkeleton as k, useEntityBindingSnapshot as l, useEntitySchema as u };
124
+ export type { AwaitingSkeletonSource as A, EntityBindingSource as E, ServerBridgeTransport as S, EntitySchemaContextValue as a, EntitySchemaProviderProps as c, ServerBridgeContextValue as d, ServerBridgeProviderProps as j };