@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.
- package/dist/{ArbitraryClassCompiler-Mzabq-UB.d.ts → ArbitraryClassCompiler-CO_iASBn.d.ts} +99 -4
- package/dist/AvlGlyph-PIXU6QH5.js +5 -0
- package/dist/AvlStateMachine-CKGMECMG.js +8 -0
- package/dist/AvlTransitionDetail-QZX6G5KJ.js +10 -0
- package/dist/AvlTransitionExplainer-26WLEIC6.js +11 -0
- package/dist/BehaviorView-JLZ4PKWY.js +10 -0
- package/dist/{EventBusProvider-CVwjkV_2.d.ts → EventBusProvider-BFFHfN4O.d.ts} +12 -0
- package/dist/{FileTree-BCFnBEuQ.d.ts → FileTree-B3GDAjaQ.d.ts} +131 -4
- package/dist/FlowCanvas-RPII4V24.js +23 -0
- package/dist/{BehaviorValueFrame-SSEMEBTG.css → FlowCanvas-VWUPMBKB.css} +189 -191
- package/dist/{GameAudioProvider-Cm9BnvmP.d.ts → GameAudioProvider-D7wo5ryN.d.ts} +5 -8
- package/dist/KernelEngineContext-CPeWQMAz.d.ts +46 -0
- package/dist/LayersPanel-M2LHWUFF.js +6 -0
- package/dist/ModuleCard-NJD6JQGD.js +6 -0
- package/dist/OrbInspector-OWWKPOBF.js +23 -0
- package/dist/{TraitValueFrame-4G3KOUBR.css → OrbInspector-VMTMZHNQ.css} +189 -191
- package/dist/{Select-mDZIwNqN.d.ts → Select-C2Uq6t86.d.ts} +17 -31
- package/dist/ServerBridge-Bqsj-lOU.d.ts +124 -0
- package/dist/{FlowCanvas-3JRMNJLV.css → UISlotRenderer-BIS6KT7T.css} +189 -191
- package/dist/UISlotRenderer-PY7FIJXN.js +23 -0
- package/dist/auth/browser/index.js +1 -0
- package/dist/auth/react/index.d.ts +8 -1
- package/dist/auth/react/index.js +40 -2
- package/dist/avl/index.css +189 -191
- package/dist/avl/index.d.ts +107 -85
- package/dist/avl/index.js +170 -39
- package/dist/{chunk-P4LNHAFI.js → chunk-2WGR4TDJ.js} +465 -36
- package/dist/{chunk-GKIFONTE.js → chunk-3S54FWRC.js} +2 -2
- package/dist/{chunk-KVQS4GXU.js → chunk-4YJ53G7S.js} +18 -8
- package/dist/{chunk-MBQAMMSE.js → chunk-4YXBKHHM.js} +269 -658
- package/dist/{chunk-YDNJLLG6.js → chunk-57DC34LY.js} +19 -10
- package/dist/{chunk-FP3WIKTC.js → chunk-7N6ZPHQ5.js} +9 -1
- package/dist/{chunk-AILY3XPS.js → chunk-AE7VCQB6.js} +5 -6
- package/dist/{chunk-L677XGY3.js → chunk-AGVSO4WY.js} +4 -5
- package/dist/{chunk-FAJDTHWC.js → chunk-AGXD77SL.js} +2 -2
- package/dist/chunk-AU7O65OX.js +66 -0
- package/dist/{chunk-DFNZUYX4.js → chunk-FAKU5F62.js} +273 -29
- package/dist/{chunk-U6QRZASX.js → chunk-ILQXJ2AR.js} +1 -1
- package/dist/chunk-M74BCDBQ.js +490 -0
- package/dist/{chunk-GYTPOFVC.js → chunk-MS4K3K2R.js} +12095 -13329
- package/dist/{chunk-SGM3FASH.js → chunk-OWNG4JZI.js} +13 -12
- package/dist/{chunk-VFF5OO47.js → chunk-PCR37T3U.js} +15 -38
- package/dist/{chunk-SJGJJKBY.js → chunk-PRLHKBXG.js} +5 -3
- package/dist/{chunk-R5O5AUPI.js → chunk-PRXQGGCO.js} +93 -86
- package/dist/{chunk-42FY4RYA.js → chunk-REXYVBUO.js} +2 -2
- package/dist/{chunk-EQAMU2ZC.js → chunk-UTDC2NEA.js} +1 -1
- package/dist/{chunk-73SRAB4P.js → chunk-UU57VNS2.js} +2 -2
- package/dist/{chunk-TESBIVUA.js → chunk-VHC2M26B.js} +2 -2
- package/dist/{chunk-L2DEKY4J.js → chunk-VO2TTLS5.js} +3 -6
- package/dist/{chunk-2PY54Z44.js → chunk-VUIACGDU.js} +4 -5
- package/dist/{chunk-DLZF4PVE.js → chunk-YYIHRIDH.js} +3 -3
- package/dist/{chunk-DYEKAA4L.js → chunk-ZDRDJKYB.js} +243 -252
- package/dist/components/index.css +189 -191
- package/dist/components/index.d.ts +739 -289
- package/dist/components/index.js +25 -28
- package/dist/context/index.d.ts +2 -3
- package/dist/context/index.js +4 -3
- package/dist/core.d.ts +95 -19
- package/dist/core.js +2 -1
- package/dist/design-classes/index.cjs +3 -1
- package/dist/design-classes/index.js +3 -1
- package/dist/{fx-CmQjnHmT.d.ts → fx-Br8zjvu9.d.ts} +6 -6
- package/dist/hooks/index.d.ts +40 -5
- package/dist/hooks/index.js +5 -4
- package/dist/index.d.ts +40 -114
- package/dist/index.js +174 -34
- package/dist/kernel-client-JW6OH5FX.js +537 -0
- package/dist/kernel-wire-DGAySGhX.d.ts +95 -0
- package/dist/lib/index.d.ts +3 -4
- package/dist/lib/index.js +4 -4
- package/dist/{prism-AIWGN2X5.js → prism-X5YWKXO5.js} +5 -3
- package/dist/providers/index.css +189 -191
- package/dist/providers/index.d.ts +41 -28
- package/dist/providers/index.js +19 -24
- package/dist/renderer/index.d.ts +0 -2
- package/dist/renderer/index.js +1 -0
- package/dist/runtime/index.css +189 -191
- package/dist/runtime/index.d.ts +57 -253
- package/dist/runtime/index.js +18 -24
- package/dist/ssr/index.cjs +2643 -535
- package/dist/ssr/index.d.cts +0 -23
- package/dist/ssr/index.d.ts +0 -23
- package/dist/ssr/index.js +2639 -535
- package/dist/storage/browser/index.js +1 -0
- package/dist/test-support.d.ts +15 -8
- package/dist/test-support.js +91 -24
- package/dist/{paintDispatch-ChW5mVuK.d.ts → verificationRegistry-oopV1J1n.d.ts} +132 -30
- package/package.json +14 -38
- package/src/core/lib/band-shapes.json +7 -0
- package/src/core/locales/ar.json +18 -5
- package/src/core/locales/en.json +18 -5
- package/src/core/locales/sl.json +18 -5
- package/tailwind-preset.cjs +30 -1
- package/dist/AvlGlyph-JKJOAH23.js +0 -6
- package/dist/AvlStateMachine-PI4YGREK.js +0 -8
- package/dist/AvlTransitionDetail-ZH7V24UG.js +0 -12
- package/dist/AvlTransitionExplainer-ZSRT7L6Y.js +0 -13
- package/dist/BehaviorValueFrame-6RUJXT4A.js +0 -29
- package/dist/BehaviorView-RFEE5J6E.js +0 -10
- package/dist/Canvas3DHost-_Y-5uLM_.d.ts +0 -552
- package/dist/FlowCanvas-STDC4OWK.js +0 -27
- package/dist/KernelEngineContext-BOCQoFwk.d.ts +0 -43
- package/dist/LayersPanel-BBQ54IVG.js +0 -7
- package/dist/ModuleCard-3TT2X7IW.js +0 -7
- package/dist/OrbInspector-K6T6O7GI.js +0 -27
- package/dist/OrbInspector-MHLJ6OEE.css +0 -1756
- package/dist/ServerBridge-Cm1On51b.d.ts +0 -233
- package/dist/TraitValueFrame-2PJGLLVI.js +0 -28
- package/dist/UISlotRenderer-JKFSX24W.js +0 -27
- package/dist/UISlotRenderer-KVFO6J7R.css +0 -1756
- package/dist/UserContext-DqWeZkUZ.d.ts +0 -100
- package/dist/avl-3d-context-BIRKWpaL.d.ts +0 -204
- package/dist/avl-schema-parser-CtJxJ9KU.d.ts +0 -132
- package/dist/avl-zoom-state-CKMVuBFg.d.ts +0 -17
- package/dist/chunk-2QOH2HWM.js +0 -95
- package/dist/chunk-6P3MWXYE.js +0 -440
- package/dist/chunk-B4BU77LT.js +0 -432
- package/dist/chunk-DJ433ET5.js +0 -1327
- package/dist/chunk-DZ42OJQC.js +0 -176
- package/dist/chunk-EOWMARUB.js +0 -16
- package/dist/chunk-FIW6WN23.js +0 -508
- package/dist/chunk-GAR5TQ5B.js +0 -199
- package/dist/chunk-PC7K4SK7.js +0 -1384
- package/dist/chunk-ZO6MXAS3.js +0 -69
- package/dist/kernel-client-ZH4PSMCN.js +0 -367
- package/dist/kernel-wire-B4S8pnP3.d.ts +0 -65
- package/dist/three/index.css +0 -503
- package/dist/three/index.d.ts +0 -1185
- package/dist/three/index.js +0 -3896
- package/dist/useKeyboardRouter-Dsq553Ur.d.ts +0 -42
- 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/
|
|
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-
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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 };
|