lecodes-sdk 2.0.8 → 2.0.9

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 (43) hide show
  1. package/dist/global.d.ts +2 -0
  2. package/dist/types/g2/Scene2D.d.ts +4 -0
  3. package/dist/types/gl/Light.d.ts +36 -1
  4. package/dist/types/gl/Scene.d.ts +4 -0
  5. package/dist/types/inject.d.ts +1 -1
  6. package/dist/types/ui/NativeView.d.ts +3 -0
  7. package/dist/types/ui/UI.d.ts +1 -0
  8. package/dist/types/ui/UILayer.d.ts +25 -0
  9. package/dist/types/ui/UIModal.d.ts +20 -16
  10. package/dist/types/ui/UIPopover.d.ts +5 -3
  11. package/dist/types/ui/UIVideo.d.ts +3 -0
  12. package/dist/types/ui/UIWidget.d.ts +25 -24
  13. package/dist/types/ui/presentable.d.ts +10 -0
  14. package/dist/types/ui/transitions.d.ts +2 -1
  15. package/dist/types/ui/tree.d.ts +1 -0
  16. package/dist/types/version.d.ts +1 -1
  17. package/dist/types.json +1 -1
  18. package/package.json +1 -1
  19. package/prompts/3d-scene-files.md +3 -3
  20. package/prompts/3d-scene.md +1 -1
  21. package/prompts/dist/3d-app.md +4 -4
  22. package/src/bridges/gl.d.ts +5 -0
  23. package/src/bridges/tree.d.ts +24 -12
  24. package/src/chisel.ts +1 -1
  25. package/src/g2/Scene2D.ts +10 -0
  26. package/src/gl/Light.ts +78 -2
  27. package/src/gl/Material.ts +3 -0
  28. package/src/gl/Scene.ts +11 -1
  29. package/src/inject.ts +1 -0
  30. package/src/ui/NativeView.ts +11 -0
  31. package/src/ui/UI.ts +1 -0
  32. package/src/ui/UIBottomSheet.ts +8 -7
  33. package/src/ui/UILayer.ts +88 -0
  34. package/src/ui/UIModal.ts +59 -43
  35. package/src/ui/UINode.ts +9 -1
  36. package/src/ui/UIPopover.ts +23 -9
  37. package/src/ui/UIVideo.ts +11 -0
  38. package/src/ui/UIWidget.ts +70 -44
  39. package/src/ui/presentable.ts +11 -1
  40. package/src/ui/transitions.ts +36 -7
  41. package/src/ui/tree.ts +4 -0
  42. package/src/version.ts +1 -1
  43. package/tests/helpers/fakeTree.ts +7 -3
@@ -9,6 +9,7 @@ import {
9
9
  TREE_EVENT_CLOSE, TREE_EVENT_DETACHED, TREE_EVENT_FREED, TREE_EVENT_OPEN, TREE_EVENT_ROUTER_CHANGE, TREE_EVENT_VLIST_SYNC,
10
10
  } from "../../src/ui/tree"
11
11
  import { _resetTransitions } from "../../src/ui/transitions"
12
+ import { _resetOverlay } from "../../src/ui/UILayer"
12
13
 
13
14
  export type FakeNode = {
14
15
  id: number, type: string, parent: number, children: number[],
@@ -28,7 +29,9 @@ export class FakeTree {
28
29
  displaySize: [number, number] = [0, 0]
29
30
  current: Dest | null = null
30
31
  stack: Dest[] = []
31
- widgets: number[] = []
32
+ /** The layers by destination key (`kind:id`; `255:0` = the app layer) and the widgets' poses. */
33
+ layers = new Map<string, number>()
34
+ poses = new Map<number, number>()
32
35
  freed: number[] = []
33
36
  tweens: { id: number, data: Float32Array, strings: string[], targets: number[] }[] = []
34
37
  tweenEvent: ((id: number, kind: number, index: number, ...lanes: number[]) => void) | null = null
@@ -207,8 +210,8 @@ export class FakeTree {
207
210
  else onReject(`no view ${viewId}`)
208
211
  }
209
212
  viewCallHandler: ((viewId: number, method: string, args: any[], res: (r?: unknown) => void, rej: (m: string) => void) => void) | null = null
210
- showWidget = (id: number, ownerKind: number, ownerId: number): void => { this.rec("showWidget", id, ownerKind, ownerId); if (!this.widgets.includes(id)) this.widgets.push(id) }
211
- hideWidget = (id: number): void => { this.rec("hideWidget", id); this.widgets = this.widgets.filter((w) => w !== id) }
213
+ setLayer = (kind: number, id: number, layer: number): void => { this.rec("setLayer", kind, id, layer); if (layer) this.layers.set(`${kind}:${id}`, layer); else this.layers.delete(`${kind}:${id}`) }
214
+ setWidgetPose = (id: number, transition: number): void => { this.rec("setWidgetPose", id, transition); this.poses.set(id, transition) }
212
215
 
213
216
  // ---- pager -----------------------------------------------------------------------------------------
214
217
  private pagerTop(p: FakeNode): number | null {
@@ -341,6 +344,7 @@ export const installFakeTree = (): FakeTree => {
341
344
  fake.emitter = FakeTree.primary ?? prev?.emitter ?? null
342
345
  if (prev?.tweenEvent) fake.tweenEvent = prev.tweenEvent // registered once per world too
343
346
  _resetTransitions() // …while a transition is registered per RUNTIME: the new fake has none
347
+ _resetOverlay() // …and the app layer is a node of the previous fake
344
348
  ;(globalThis as any)._creatorTree = fake
345
349
  return fake
346
350
  }