@playcanvas/web-components 0.16.0 → 0.17.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 (105) hide show
  1. package/dist/app.d.cts +14 -13
  2. package/dist/app.d.ts +14 -13
  3. package/dist/async-element.d.cts +13 -13
  4. package/dist/async-element.d.ts +13 -13
  5. package/dist/components/anim-component.d.cts +33 -5
  6. package/dist/components/anim-component.d.ts +33 -5
  7. package/dist/components/{listener-component.d.cts → audio-listener-component.d.cts} +7 -5
  8. package/dist/components/{listener-component.d.ts → audio-listener-component.d.ts} +7 -5
  9. package/dist/components/button-component.d.cts +5 -1
  10. package/dist/components/button-component.d.ts +5 -1
  11. package/dist/components/camera-component.d.cts +2 -0
  12. package/dist/components/camera-component.d.ts +2 -0
  13. package/dist/components/collision-component.d.cts +5 -1
  14. package/dist/components/collision-component.d.ts +5 -1
  15. package/dist/components/component.d.cts +3 -2
  16. package/dist/components/component.d.ts +3 -2
  17. package/dist/components/element-component.d.cts +7 -0
  18. package/dist/components/element-component.d.ts +7 -0
  19. package/dist/components/gsplat-component.d.cts +2 -0
  20. package/dist/components/gsplat-component.d.ts +2 -0
  21. package/dist/components/joint-component.d.cts +2 -0
  22. package/dist/components/joint-component.d.ts +2 -0
  23. package/dist/components/{layoutchild-component.d.cts → layout-child-component.d.cts} +3 -1
  24. package/dist/components/{layoutchild-component.d.ts → layout-child-component.d.ts} +3 -1
  25. package/dist/components/{layoutgroup-component.d.cts → layout-group-component.d.cts} +3 -1
  26. package/dist/components/{layoutgroup-component.d.ts → layout-group-component.d.ts} +3 -1
  27. package/dist/components/light-component.d.cts +2 -0
  28. package/dist/components/light-component.d.ts +2 -0
  29. package/dist/components/{particlesystem-component.d.cts → particle-system-component.d.cts} +3 -1
  30. package/dist/components/{particlesystem-component.d.ts → particle-system-component.d.ts} +3 -1
  31. package/dist/components/render-component.d.cts +2 -0
  32. package/dist/components/render-component.d.ts +2 -0
  33. package/dist/components/{rigidbody-component.d.cts → rigid-body-component.d.cts} +3 -1
  34. package/dist/components/{rigidbody-component.d.ts → rigid-body-component.d.ts} +3 -1
  35. package/dist/components/screen-component.d.cts +2 -0
  36. package/dist/components/screen-component.d.ts +2 -0
  37. package/dist/components/script-component.d.cts +23 -12
  38. package/dist/components/script-component.d.ts +23 -12
  39. package/dist/components/{script.d.cts → script-instance.d.cts} +7 -7
  40. package/dist/components/{script.d.ts → script-instance.d.ts} +7 -7
  41. package/dist/components/{scrollview-component.d.cts → scroll-view-component.d.cts} +3 -1
  42. package/dist/components/{scrollview-component.d.ts → scroll-view-component.d.ts} +3 -1
  43. package/dist/components/scrollbar-component.d.cts +2 -0
  44. package/dist/components/scrollbar-component.d.ts +2 -0
  45. package/dist/components/sound-component.d.cts +3 -1
  46. package/dist/components/sound-component.d.ts +3 -1
  47. package/dist/components/sound-slot.d.cts +2 -2
  48. package/dist/components/sound-slot.d.ts +2 -2
  49. package/dist/custom-elements.json +1603 -986
  50. package/dist/entity-base.d.cts +6 -5
  51. package/dist/entity-base.d.ts +6 -5
  52. package/dist/entity-owner.d.cts +118 -0
  53. package/dist/entity-owner.d.ts +118 -0
  54. package/dist/entity.d.cts +8 -101
  55. package/dist/entity.d.ts +8 -101
  56. package/dist/index.d.cts +22 -21
  57. package/dist/index.d.ts +22 -21
  58. package/dist/model.d.cts +67 -24
  59. package/dist/model.d.ts +67 -24
  60. package/dist/pwc.cjs +526 -268
  61. package/dist/pwc.cjs.map +1 -1
  62. package/dist/pwc.js +526 -268
  63. package/dist/pwc.js.map +1 -1
  64. package/dist/pwc.min.js +1 -1
  65. package/dist/pwc.min.js.map +1 -1
  66. package/dist/pwc.min.mjs +1 -1
  67. package/dist/pwc.min.mjs.map +1 -1
  68. package/dist/pwc.mjs +523 -266
  69. package/dist/pwc.mjs.map +1 -1
  70. package/dist/vscode.html-custom-data.json +145 -90
  71. package/dist/{module.d.cts → wasm.d.cts} +6 -6
  72. package/dist/{module.d.ts → wasm.d.ts} +6 -6
  73. package/dist/web-types.json +378 -250
  74. package/package.json +7 -7
  75. package/src/app.ts +45 -35
  76. package/src/async-element.ts +14 -14
  77. package/src/components/anim-component.ts +84 -14
  78. package/src/components/{listener-component.ts → audio-listener-component.ts} +8 -6
  79. package/src/components/button-component.ts +5 -1
  80. package/src/components/camera-component.ts +2 -0
  81. package/src/components/collision-component.ts +5 -1
  82. package/src/components/component.ts +4 -3
  83. package/src/components/element-component.ts +7 -0
  84. package/src/components/gsplat-component.ts +2 -0
  85. package/src/components/joint-component.ts +2 -0
  86. package/src/components/{layoutchild-component.ts → layout-child-component.ts} +4 -2
  87. package/src/components/{layoutgroup-component.ts → layout-group-component.ts} +4 -2
  88. package/src/components/light-component.ts +2 -0
  89. package/src/components/{particlesystem-component.ts → particle-system-component.ts} +4 -2
  90. package/src/components/render-component.ts +2 -0
  91. package/src/components/{rigidbody-component.ts → rigid-body-component.ts} +4 -2
  92. package/src/components/screen-component.ts +2 -0
  93. package/src/components/script-component.ts +63 -42
  94. package/src/components/{script.ts → script-instance.ts} +14 -14
  95. package/src/components/{scrollview-component.ts → scroll-view-component.ts} +4 -2
  96. package/src/components/scrollbar-component.ts +2 -0
  97. package/src/components/sound-component.ts +4 -2
  98. package/src/components/sound-slot.ts +4 -4
  99. package/src/entity-base.ts +6 -5
  100. package/src/entity-owner.ts +298 -0
  101. package/src/entity.ts +15 -270
  102. package/src/index.ts +26 -24
  103. package/src/model.ts +159 -72
  104. package/src/node.ts +9 -5
  105. package/src/{module.ts → wasm.ts} +8 -8
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@playcanvas/web-components",
4
- "version": "0.16.0",
4
+ "version": "0.17.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "elements": [
9
9
  {
10
10
  "name": "pc-app",
11
- "description": "The AppElement interface provides properties and methods for manipulating\n[`<pc-app>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-app/) elements.\nThe AppElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element is sized like a replaced element such as `<video>`: a block-level box that the\npage's CSS controls, 300x150 by default. The application's canvas always fills the element,\nand the drawing buffer resolution follows the element's size (capped by `max-pixel-ratio`),\ntracked live via a ResizeObserver — so the element can be embedded at any size, resized by\nits container, or made fullscreen with ordinary CSS such as `width: 100vw; height: 100dvh`.\n\n---\n\n\n### **Events:**\n - **error** - Fired when the application cannot boot because no graphics device could be created (for example, a browser with WebGL disabled). `message` names the requested backends and `error` holds the underlying failure. The element never becomes ready and `app` stays `null` — listen for this event to show a fallback UI. Removing the element and re-inserting it retries the boot with its current attributes. Does not bubble.\n- **progress** - Fired while the application preloads its assets. `loaded` and `total` are asset counts, not bytes, and an asset that fails to load still counts as loaded. Fired at least once per boot, and the final event always has `loaded` equal to `total`. Does not bubble.\n- **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **elementFromEntity(entity: _Entity_): __** - Returns the `<pc-entity>` or `<pc-node>` element whose backing entity is `entity`, or\n`null` if the entity is not fronted by an element of this application - for example, an\nunbound node inside a model's instantiated hierarchy, or an entity created through the\nengine API.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
11
+ "description": "The AppElement interface provides properties and methods for manipulating\n[`<pc-app>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-app/) elements.\nThe AppElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element is sized like a replaced element such as `<video>`: a block-level box that the\npage's CSS controls, 300x150 by default. The application's canvas always fills the element,\nand the drawing buffer resolution follows the element's size (capped by `max-pixel-ratio`),\ntracked live via a ResizeObserver — so the element can be embedded at any size, resized by\nits container, or made fullscreen with ordinary CSS such as `width: 100vw; height: 100dvh`.\n\n---\n\n\n### **Events:**\n - **error** - Fired when the application cannot boot because no graphics device could be created (for example, a browser with WebGL disabled). `message` names the requested backends and `error` holds the underlying failure. The element never becomes ready and `app` stays `null` — listen for this event to show a fallback UI. Removing the element and re-inserting it retries the boot with its current attributes. Does not bubble.\n- **progress** - Fired while the application preloads its assets. `loaded` and `total` are asset counts, not bytes, and an asset that fails to load still counts as loaded. Fired at least once per boot, and the final event always has `loaded` equal to `total`. Does not bubble.\n- **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **elementFromEntity(entity: _Entity_): __** - Returns the `<pc-entity>`, `<pc-model>` or `<pc-node>` element whose backing entity is\n`entity`, or `null` if the entity is not fronted by an element of this application - for\nexample, an unbound node inside a model's instantiated hierarchy, or an entity created\nthrough the engine API.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
12
12
  "doc-url": "",
13
13
  "attributes": [
14
14
  {
@@ -93,7 +93,7 @@
93
93
  },
94
94
  {
95
95
  "name": "closestEntity",
96
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
96
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
97
97
  "type": "EntityBaseElement | null"
98
98
  },
99
99
  {
@@ -283,7 +283,7 @@
283
283
  },
284
284
  {
285
285
  "name": "closestEntity",
286
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
286
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
287
287
  "type": "EntityBaseElement | null"
288
288
  },
289
289
  {
@@ -437,7 +437,7 @@
437
437
  },
438
438
  {
439
439
  "name": "closestEntity",
440
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
440
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
441
441
  "type": "EntityBaseElement | null"
442
442
  },
443
443
  {
@@ -1293,13 +1293,68 @@
1293
1293
  },
1294
1294
  {
1295
1295
  "name": "pc-model",
1296
- "description": "The ModelElement interface provides properties and methods for manipulating\n[`<pc-model>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-model/) elements.\nThe ModelElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element becomes ready once its container asset has loaded and the instantiated hierarchy has\nbeen added to the scene `entity` is non-null by then. A failed load also settles readiness,\nwith `entity` remaining `null`: readiness means the load settled, not that it succeeded — listen\nfor `error`, or check `entity`, to tell the outcomes apart. Changing `asset` re-arms readiness\nand instantiates anew, so a `ready()` obtained after the change resolves against the new\nhierarchy. A `pc-model` outside a `pc-app`, or referencing an unknown asset id, warns and never\nbecomes ready.\n\n---\n\n\n### **Events:**\n - **error** - Fired when the container asset fails to load, with the engine's error in `message`. Does not bubble. The element still becomes ready — readiness means the load settled, not that it succeeded.\n- **load** - Fired each time a container asset finishes instantiating, including re-instantiation after `asset` changes. Does not bubble — listen on this element, or use a capture-phase listener on an ancestor.\n- **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **hierarchy(): __** - Returns a snapshot of the instantiated node tree, or `null` while there is none (the\ncontainer asset has not loaded, or the element has left the document). One call grounds a\nsession — a browser console, a test, an agent — in the vocabulary `pc-node` binding\nresolves against: the instantiated names (HierarchyNode.name), paths, match\nindices, attached component types and the material assignments of render components\n(HierarchyNode.materials). `String(...)` of the result, or of any node in it,\nis the printable form.\n\nThe snapshot is plain data, computed afresh each call: it does not follow later changes\nto the hierarchy, and mutating it changes nothing.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
1296
+ "description": "The ModelElement interface provides properties and methods for manipulating\n[`<pc-model>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-model/) elements.\nThe ModelElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element creates and fronts a stable host entity: `entity` is that host, created when the\napplication builds its hierarchy and kept across `asset` changes, so the element's transform\nand tags are instance placement that composes with whatever transform the asset authored on\nits root. The instantiated content is parented beneath the host and exposed as\ncontentEntity.\n\nThe element becomes ready once its current asset selection has settled: the container asset\nhas loaded and its content root has been parented beneath the host, the load has failed\n(`contentEntity` stays `null` — listen for `error`, or check `contentEntity`, to tell the\noutcomes apart), or no asset is assigned at all. Changing `asset` re-arms readiness and\ninstantiates anew, so a `ready()` obtained after the change resolves against the new content.\nA `pc-model` outside a `pc-app`, or referencing an unknown asset id, warns and never becomes\nready.\n\nThe pointer events below are dispatched by the containing `<pc-app>` element when the pointer\nintersects the model's geometry, exactly as for `<pc-entity>` — a hit on a content node that no\n`pc-node` fronts resolves to this element.\n\n---\n\n\n### **Events:**\n - **error** - Fired when the container asset fails to load, with the engine's error in `message`. Does not bubble. The element still becomes ready — readiness means the load settled, not that it succeeded.\n- **load** - Fired each time a container asset finishes instantiating, including re-instantiation after `asset` changes. Does not bubble — listen on this element, or use a capture-phase listener on an ancestor.\n- **pointerdown** - Fired when a pointer button is pressed over the model.\n- **pointerenter** - Fired when the pointer moves onto the model.\n- **pointerleave** - Fired when the pointer moves off the model.\n- **pointermove** - Fired when the pointer moves over the model.\n- **pointerup** - Fired when a pointer button is released over the model.\n- **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **hierarchy(): __** - Returns a snapshot of the instantiated node tree, or `null` while there is none (the\ncontainer asset has not loaded, or the element has left the document). One call grounds a\nsession — a browser console, a test, an agent — in the vocabulary `pc-node` binding\nresolves against: the instantiated names (HierarchyNode.name), paths, match\nindices, attached component types and the material assignments of render components\n(HierarchyNode.materials). `String(...)` of the result, or of any node in it,\nis the printable form.\n\nThe snapshot is plain data, computed afresh each call: it does not follow later changes\nto the hierarchy, and mutating it changes nothing. It covers the instantiated content\nonly — the host entity the element fronts is not part of the asset's node tree.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
1297
1297
  "doc-url": "",
1298
1298
  "attributes": [
1299
1299
  {
1300
1300
  "name": "asset",
1301
1301
  "description": "The id of the `pc-asset` to use for the model.",
1302
1302
  "value": { "type": "string" }
1303
+ },
1304
+ {
1305
+ "name": "enabled",
1306
+ "description": "The enabled state of the model.",
1307
+ "value": { "type": "boolean", "default": "true" }
1308
+ },
1309
+ {
1310
+ "name": "name",
1311
+ "description": "The name of the model.",
1312
+ "value": { "type": "string" }
1313
+ },
1314
+ {
1315
+ "name": "onpointerdown",
1316
+ "description": "Script to run when a pointer button is pressed over the model.",
1317
+ "value": { "type": "string" }
1318
+ },
1319
+ {
1320
+ "name": "onpointerenter",
1321
+ "description": "Script to run when the pointer moves onto the model.",
1322
+ "value": { "type": "string" }
1323
+ },
1324
+ {
1325
+ "name": "onpointerleave",
1326
+ "description": "Script to run when the pointer moves off the model.",
1327
+ "value": { "type": "string" }
1328
+ },
1329
+ {
1330
+ "name": "onpointermove",
1331
+ "description": "Script to run when the pointer moves over the model.",
1332
+ "value": { "type": "string" }
1333
+ },
1334
+ {
1335
+ "name": "onpointerup",
1336
+ "description": "Script to run when a pointer button is released over the model.",
1337
+ "value": { "type": "string" }
1338
+ },
1339
+ {
1340
+ "name": "position",
1341
+ "description": "The position of the model. Accepts 3 space-separated numbers.",
1342
+ "value": { "type": "string", "default": "0 0 0" }
1343
+ },
1344
+ {
1345
+ "name": "rotation",
1346
+ "description": "The rotation of the model. Accepts 3 space-separated numbers.",
1347
+ "value": { "type": "string", "default": "0 0 0" }
1348
+ },
1349
+ {
1350
+ "name": "scale",
1351
+ "description": "The scale of the model. Accepts 3 space-separated numbers.",
1352
+ "value": { "type": "string", "default": "1 1 1" }
1353
+ },
1354
+ {
1355
+ "name": "tags",
1356
+ "description": "The tags of the model.",
1357
+ "value": { "type": "string" }
1303
1358
  }
1304
1359
  ],
1305
1360
  "events": [
@@ -1313,6 +1368,31 @@
1313
1368
  "type": "Event",
1314
1369
  "description": "Fired each time a container asset finishes instantiating, including re-instantiation after `asset` changes. Does not bubble — listen on this element, or use a capture-phase listener on an ancestor."
1315
1370
  },
1371
+ {
1372
+ "name": "pointerdown",
1373
+ "type": "PointerEvent",
1374
+ "description": "Fired when a pointer button is pressed over the model."
1375
+ },
1376
+ {
1377
+ "name": "pointerenter",
1378
+ "type": "PointerEvent",
1379
+ "description": "Fired when the pointer moves onto the model."
1380
+ },
1381
+ {
1382
+ "name": "pointerleave",
1383
+ "type": "PointerEvent",
1384
+ "description": "Fired when the pointer moves off the model."
1385
+ },
1386
+ {
1387
+ "name": "pointermove",
1388
+ "type": "PointerEvent",
1389
+ "description": "Fired when the pointer moves over the model."
1390
+ },
1391
+ {
1392
+ "name": "pointerup",
1393
+ "type": "PointerEvent",
1394
+ "description": "Fired when a pointer button is released over the model."
1395
+ },
1316
1396
  {
1317
1397
  "name": "ready",
1318
1398
  "type": "CustomEvent",
@@ -1333,14 +1413,37 @@
1333
1413
  },
1334
1414
  {
1335
1415
  "name": "closestEntity",
1336
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
1416
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1337
1417
  "type": "EntityBaseElement | null"
1338
1418
  },
1419
+ {
1420
+ "name": "contentEntity",
1421
+ "description": "The root entity of the instantiated model content, parented beneath the host entity.\n`null` until the container asset has loaded and been instantiated, after a failed load,\nand again once the element has been removed from the document.",
1422
+ "type": "Entity | null"
1423
+ },
1424
+ {
1425
+ "name": "enabled",
1426
+ "description": "Gets the enabled state of the entity."
1427
+ },
1339
1428
  {
1340
1429
  "name": "entity",
1341
- "description": "The root entity of the instantiated model. `null` until the container asset has loaded\nand been instantiated, and again once the element has been removed from the document.",
1430
+ "description": "The PlayCanvas entity instance. `null` until the element is ready, and again once the\nentity is gone await whenReady or the element's `ready()` promise before\naccessing it.",
1342
1431
  "type": "Entity | null"
1343
- }
1432
+ },
1433
+ { "name": "name", "description": "Gets the name of the entity." },
1434
+ {
1435
+ "name": "position",
1436
+ "description": "Gets the position of the entity."
1437
+ },
1438
+ {
1439
+ "name": "rotation",
1440
+ "description": "Gets the rotation of the entity."
1441
+ },
1442
+ {
1443
+ "name": "scale",
1444
+ "description": "Gets the scale of the entity."
1445
+ },
1446
+ { "name": "tags", "description": "Gets the tags of the entity." }
1344
1447
  ],
1345
1448
  "events": [
1346
1449
  {
@@ -1354,60 +1457,30 @@
1354
1457
  "description": "Fired each time a container asset finishes instantiating, including re-instantiation after `asset` changes. Does not bubble — listen on this element, or use a capture-phase listener on an ancestor."
1355
1458
  },
1356
1459
  {
1357
- "name": "ready",
1358
- "type": "CustomEvent",
1359
- "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1360
- }
1361
- ]
1362
- }
1363
- },
1364
- {
1365
- "name": "pc-module",
1366
- "description": "The ModuleElement interface provides properties and methods for manipulating\n[`<pc-module>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-module/)\nelements. The ModuleElement interface also inherits the properties and methods of the\nAsyncElement interface.\n\nThe attributes are read once, when the module starts loading - on the element's first\nconnection, or earlier if a containing `<pc-app>` boots first and collects it - so changing\nthem later has no effect. The element becomes ready once the module has loaded. WebAssembly\nmodules configure engine-global state that never unloads, so readiness is not re-armed by\nremoving the element, and a re-inserted element does not load again.\n\nA `<pc-module>` without a `name` warns and never becomes ready; a containing `<pc-app>` still\nboots.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
1367
- "doc-url": "",
1368
- "attributes": [
1369
- {
1370
- "name": "fallback",
1371
- "description": "The URL of the module's asm.js fallback script, used when WebAssembly is unavailable.",
1372
- "value": { "type": "string" }
1373
- },
1374
- {
1375
- "name": "glue",
1376
- "description": "The URL of the module's glue script.",
1377
- "value": { "type": "string" }
1378
- },
1379
- {
1380
- "name": "name",
1381
- "description": "The name of the WebAssembly module to configure, e.g. `Basis` or `Ammo`.",
1382
- "value": { "type": "string" }
1383
- },
1384
- {
1385
- "name": "wasm",
1386
- "description": "The URL of the module's WebAssembly binary.",
1387
- "value": { "type": "string" }
1388
- }
1389
- ],
1390
- "events": [
1391
- {
1392
- "name": "ready",
1393
- "type": "CustomEvent",
1394
- "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1395
- }
1396
- ],
1397
- "js": {
1398
- "properties": [
1460
+ "name": "pointerdown",
1461
+ "type": "PointerEvent",
1462
+ "description": "Fired when a pointer button is pressed over the model."
1463
+ },
1399
1464
  {
1400
- "name": "closestApp",
1401
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1402
- "type": "AppElement | null"
1465
+ "name": "pointerenter",
1466
+ "type": "PointerEvent",
1467
+ "description": "Fired when the pointer moves onto the model."
1403
1468
  },
1404
1469
  {
1405
- "name": "closestEntity",
1406
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
1407
- "type": "EntityBaseElement | null"
1408
- }
1409
- ],
1410
- "events": [
1470
+ "name": "pointerleave",
1471
+ "type": "PointerEvent",
1472
+ "description": "Fired when the pointer moves off the model."
1473
+ },
1474
+ {
1475
+ "name": "pointermove",
1476
+ "type": "PointerEvent",
1477
+ "description": "Fired when the pointer moves over the model."
1478
+ },
1479
+ {
1480
+ "name": "pointerup",
1481
+ "type": "PointerEvent",
1482
+ "description": "Fired when a pointer button is released over the model."
1483
+ },
1411
1484
  {
1412
1485
  "name": "ready",
1413
1486
  "type": "CustomEvent",
@@ -1528,7 +1601,7 @@
1528
1601
  },
1529
1602
  {
1530
1603
  "name": "closestEntity",
1531
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
1604
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1532
1605
  "type": "EntityBaseElement | null"
1533
1606
  },
1534
1607
  {
@@ -1676,7 +1749,7 @@
1676
1749
  },
1677
1750
  {
1678
1751
  "name": "closestEntity",
1679
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
1752
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1680
1753
  "type": "EntityBaseElement | null"
1681
1754
  },
1682
1755
  {
@@ -1791,7 +1864,7 @@
1791
1864
  },
1792
1865
  {
1793
1866
  "name": "closestEntity",
1794
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
1867
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1795
1868
  "type": "EntityBaseElement | null"
1796
1869
  },
1797
1870
  {
@@ -1825,6 +1898,61 @@
1825
1898
  ]
1826
1899
  }
1827
1900
  },
1901
+ {
1902
+ "name": "pc-wasm",
1903
+ "description": "The WasmElement interface provides properties and methods for manipulating\n[`<pc-wasm>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-wasm/)\nelements. The WasmElement interface also inherits the properties and methods of the\nAsyncElement interface.\n\nThe attributes are read once, when the module starts loading - on the element's first\nconnection, or earlier if a containing `<pc-app>` boots first and collects it - so changing\nthem later has no effect. The element becomes ready once the module has loaded. WebAssembly\nmodules configure engine-global state that never unloads, so readiness is not re-armed by\nremoving the element, and a re-inserted element does not load again.\n\nA `<pc-wasm>` without a `name` warns and never becomes ready; a containing `<pc-app>` still\nboots.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
1904
+ "doc-url": "",
1905
+ "attributes": [
1906
+ {
1907
+ "name": "fallback",
1908
+ "description": "The URL of the module's asm.js fallback script, used when WebAssembly is unavailable.",
1909
+ "value": { "type": "string" }
1910
+ },
1911
+ {
1912
+ "name": "glue",
1913
+ "description": "The URL of the module's glue script.",
1914
+ "value": { "type": "string" }
1915
+ },
1916
+ {
1917
+ "name": "name",
1918
+ "description": "The name of the WebAssembly module to configure, e.g. `Basis` or `Ammo`.",
1919
+ "value": { "type": "string" }
1920
+ },
1921
+ {
1922
+ "name": "wasm",
1923
+ "description": "The URL of the module's WebAssembly binary.",
1924
+ "value": { "type": "string" }
1925
+ }
1926
+ ],
1927
+ "events": [
1928
+ {
1929
+ "name": "ready",
1930
+ "type": "CustomEvent",
1931
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1932
+ }
1933
+ ],
1934
+ "js": {
1935
+ "properties": [
1936
+ {
1937
+ "name": "closestApp",
1938
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1939
+ "type": "AppElement | null"
1940
+ },
1941
+ {
1942
+ "name": "closestEntity",
1943
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1944
+ "type": "EntityBaseElement | null"
1945
+ }
1946
+ ],
1947
+ "events": [
1948
+ {
1949
+ "name": "ready",
1950
+ "type": "CustomEvent",
1951
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1952
+ }
1953
+ ]
1954
+ }
1955
+ },
1828
1956
  {
1829
1957
  "name": "pc-anim-clip",
1830
1958
  "description": "The AnimClipElement interface provides properties and methods for manipulating\n[`<pc-anim-clip>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-anim-clip/)\nelements. The AnimClipElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nA clip declares one named animation on its parent `<pc-anim>`. `name` is both the clip's name\nand the track looked up in the clip's source: an explicit `asset` (a `container`, an\n`animation` `.glb`, or an `animclip` JSON), or, without one, the container of the `<pc-model>`\nenclosing the parent `<pc-anim>`. A source holding a single track supplies it whatever it is\nnamed; in a multi-track source the track named `name` is chosen, falling back to the first\nwith a warning. The element becomes ready once its resolved track is assigned.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
@@ -1871,7 +1999,7 @@
1871
1999
  },
1872
2000
  {
1873
2001
  "name": "closestEntity",
1874
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
2002
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1875
2003
  "type": "EntityBaseElement | null"
1876
2004
  },
1877
2005
  { "name": "loop", "description": "Gets whether the clip loops." },
@@ -1892,7 +2020,7 @@
1892
2020
  },
1893
2021
  {
1894
2022
  "name": "pc-anim",
1895
- "description": "The AnimComponentElement interface provides properties and methods for manipulating\n[`<pc-anim>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-anim/) elements.\nThe AnimComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element drives animation clips over the host entity's hierarchy. Clips come from\n`<pc-anim-clip>` children — or, when the element is a direct child of a `<pc-model>` and\ndeclares no clips, every animation of that model's container asset is assigned, named by track\nname, in container order. The first clip plays automatically (opt out with `activate=\"false\"`);\nswitch clips declaratively through the `clip` attribute, or imperatively through play\nand transition. Tracks bind to scene nodes by name, so any hierarchy whose node names\nmatch a clip's curves can be animated — a model's skeleton is simply the common case.\n\nThe engine reports no clip completion: a non-looping clip holds its last pose silently. Poll\nthe underlying AnimComponent (via component) for playback state beyond what\nthis element exposes.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **pause()** - Pauses playback, preserving the playhead — play resumes from where it stopped.\n- **play(name: _string_)** - Resumes playback, optionally switching to a named clip first (a hard cut). A name that\nmatches no clip leaves the selection unchanged.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.\n- **transition(name: _string_, time: _number_)** - Cross-fades to a named clip and ensures playback is running. A name that matches no clip\nleaves the selection unchanged.",
2023
+ "description": "The AnimComponentElement interface provides properties and methods for manipulating\n[`<pc-anim>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-anim/) elements.\nThe AnimComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element drives animation clips over the host entity's hierarchy. Clips come from\n`<pc-anim-clip>` children — or, when the element is a direct child of a `<pc-model>` and\ndeclares no clips, every animation of that model's container asset is assigned, named by track\nname, in container order. The first clip plays automatically (opt out with `activate=\"false\"`);\nswitch clips declaratively through the `clip` attribute, or imperatively through play\nand transition. Tracks bind to scene nodes by name, so any hierarchy whose node names\nmatch a clip's curves can be animated — a model's skeleton is simply the common case.\n\nThe engine reports no clip completion: a non-looping clip holds its last pose silently. Poll\nthe underlying AnimComponent (via component) for playback state beyond what\nthis element exposes.\n\nEngine component: AnimComponent (`anim`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **pause()** - Pauses playback, preserving the playhead — play resumes from where it stopped.\n- **play(name: _string_)** - Resumes playback, optionally switching to a named clip first (a hard cut). A name that\nmatches no clip leaves the selection unchanged.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.\n- **transition(name: _string_, time: _number_)** - Cross-fades to a named clip and ensures playback is running. A name that matches no clip\nleaves the selection unchanged.",
1896
2024
  "doc-url": "",
1897
2025
  "attributes": [
1898
2026
  {
@@ -1950,7 +2078,7 @@
1950
2078
  },
1951
2079
  {
1952
2080
  "name": "closestEntity",
1953
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
2081
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
1954
2082
  "type": "EntityBaseElement | null"
1955
2083
  },
1956
2084
  {
@@ -1980,9 +2108,58 @@
1980
2108
  ]
1981
2109
  }
1982
2110
  },
2111
+ {
2112
+ "name": "pc-audio-listener",
2113
+ "description": "The AudioListenerComponentElement interface provides properties and methods for manipulating\n[`<pc-audio-listener>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-audio-listener/) elements.\nThe AudioListenerComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: AudioListenerComponent (`audiolistener`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2114
+ "doc-url": "",
2115
+ "attributes": [
2116
+ {
2117
+ "name": "enabled",
2118
+ "description": "The enabled state of the component.",
2119
+ "value": { "type": "boolean", "default": "true" }
2120
+ }
2121
+ ],
2122
+ "events": [
2123
+ {
2124
+ "name": "ready",
2125
+ "type": "CustomEvent",
2126
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2127
+ }
2128
+ ],
2129
+ "js": {
2130
+ "properties": [
2131
+ {
2132
+ "name": "closestApp",
2133
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2134
+ "type": "AppElement | null"
2135
+ },
2136
+ {
2137
+ "name": "closestEntity",
2138
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
2139
+ "type": "EntityBaseElement | null"
2140
+ },
2141
+ {
2142
+ "name": "component",
2143
+ "description": "Gets the underlying PlayCanvas audio listener component.",
2144
+ "type": "Component | null"
2145
+ },
2146
+ {
2147
+ "name": "enabled",
2148
+ "description": "Gets the enabled state of the component."
2149
+ }
2150
+ ],
2151
+ "events": [
2152
+ {
2153
+ "name": "ready",
2154
+ "type": "CustomEvent",
2155
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2156
+ }
2157
+ ]
2158
+ }
2159
+ },
1983
2160
  {
1984
2161
  "name": "pc-button",
1985
- "description": "The ButtonComponentElement interface provides properties and methods for manipulating\n[`<pc-button>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-button/) elements.\nThe ButtonComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2162
+ "description": "The ButtonComponentElement interface provides properties and methods for manipulating\n[`<pc-button>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-button/) elements.\nThe ButtonComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: ButtonComponent (`button`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
1986
2163
  "doc-url": "",
1987
2164
  "attributes": [
1988
2165
  {
@@ -2081,7 +2258,7 @@
2081
2258
  },
2082
2259
  {
2083
2260
  "name": "closestEntity",
2084
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
2261
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
2085
2262
  "type": "EntityBaseElement | null"
2086
2263
  },
2087
2264
  {
@@ -2157,7 +2334,7 @@
2157
2334
  },
2158
2335
  {
2159
2336
  "name": "pc-camera",
2160
- "description": "The CameraComponentElement interface provides properties and methods for manipulating\n[`<pc-camera>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-camera/) elements.\nThe CameraComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **endXr()** - Ends the camera's XR mode.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.\n- **startXr(type: _'immersive-ar' | 'immersive-vr'_, space: _'bounded-floor' | 'local' | 'local-floor' | 'unbounded' | 'viewer'_)** - Starts the camera in XR mode.",
2337
+ "description": "The CameraComponentElement interface provides properties and methods for manipulating\n[`<pc-camera>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-camera/) elements.\nThe CameraComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: CameraComponent (`camera`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **endXr()** - Ends the camera's XR mode.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.\n- **startXr(type: _'immersive-ar' | 'immersive-vr'_, space: _'bounded-floor' | 'local' | 'local-floor' | 'unbounded' | 'viewer'_)** - Starts the camera in XR mode.",
2161
2338
  "doc-url": "",
2162
2339
  "attributes": [
2163
2340
  {
@@ -2298,7 +2475,7 @@
2298
2475
  },
2299
2476
  {
2300
2477
  "name": "closestEntity",
2301
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
2478
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
2302
2479
  "type": "EntityBaseElement | null"
2303
2480
  },
2304
2481
  {
@@ -2391,7 +2568,7 @@
2391
2568
  },
2392
2569
  {
2393
2570
  "name": "pc-collision",
2394
- "description": "The CollisionComponentElement interface provides properties and methods for manipulating\n[`<pc-collision>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-collision/) elements.\nThe CollisionComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nFor `type=\"mesh\"`, the collision geometry defaults to the host entity's own render component\n(its render asset) — a collider matching the visible mesh, which is what a mesh collider on a\nglTF node means. The default resolves each time the component applies, so a `pc-node` that\nretargets or rebinds picks up the new node's geometry. An entity with no asset-backed render\ncomponent warns, and the collider has no shape.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2571
+ "description": "The CollisionComponentElement interface provides properties and methods for manipulating\n[`<pc-collision>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-collision/) elements.\nThe CollisionComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nFor `type=\"mesh\"`, the collision geometry defaults to the host entity's own render component\n(its render asset) — a collider matching the visible mesh, which is what a mesh collider on a\nglTF node means. The default resolves each time the component applies, so a `pc-node` that\nretargets or rebinds picks up the new node's geometry. An entity with no asset-backed render\ncomponent warns, and the collider has no shape.\n\nEngine component: CollisionComponent (`collision`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2395
2572
  "doc-url": "",
2396
2573
  "attributes": [
2397
2574
  {
@@ -2450,7 +2627,7 @@
2450
2627
  },
2451
2628
  {
2452
2629
  "name": "closestEntity",
2453
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
2630
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
2454
2631
  "type": "EntityBaseElement | null"
2455
2632
  },
2456
2633
  {
@@ -2480,7 +2657,7 @@
2480
2657
  },
2481
2658
  {
2482
2659
  "name": "pc-element",
2483
- "description": "The ElementComponentElement interface provides properties and methods for manipulating\n[`<pc-element>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-element/) elements.\nThe ElementComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2660
+ "description": "The ElementComponentElement interface provides properties and methods for manipulating\n[`<pc-element>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-element/) elements.\nThe ElementComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nDespite the name, this is not a base class or a generic wrapper: it is the engine's 2D UI\ncomponent, which gives its host entity a rectangle in a `<pc-screen>` hierarchy that draws\neither an image, a line of text or nothing (`type=\"image\"`, `\"text\"` or `\"group\"`). The tag\nspells the engine component it adds, as every component element does.\n\nEngine component: ElementComponent (`element`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2484
2661
  "doc-url": "",
2485
2662
  "attributes": [
2486
2663
  {
@@ -2658,7 +2835,7 @@
2658
2835
  },
2659
2836
  {
2660
2837
  "name": "closestEntity",
2661
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
2838
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
2662
2839
  "type": "EntityBaseElement | null"
2663
2840
  },
2664
2841
  {
@@ -2767,7 +2944,7 @@
2767
2944
  },
2768
2945
  {
2769
2946
  "name": "pc-gsplat",
2770
- "description": "The GSplatComponentElement interface provides properties and methods for manipulating\n[`<pc-gsplat>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-gsplat/) elements.\nThe GSplatComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2947
+ "description": "The GSplatComponentElement interface provides properties and methods for manipulating\n[`<pc-gsplat>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-gsplat/) elements.\nThe GSplatComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: GSplatComponent (`gsplat`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2771
2948
  "doc-url": "",
2772
2949
  "attributes": [
2773
2950
  {
@@ -2830,7 +3007,7 @@
2830
3007
  },
2831
3008
  {
2832
3009
  "name": "closestEntity",
2833
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3010
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
2834
3011
  "type": "EntityBaseElement | null"
2835
3012
  },
2836
3013
  {
@@ -2870,7 +3047,7 @@
2870
3047
  },
2871
3048
  {
2872
3049
  "name": "pc-joint",
2873
- "description": "The JointComponentElement interface provides properties and methods for manipulating\n[`<pc-joint>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-joint/) elements.\nThe JointComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe entity holding the joint is not itself constrained. Its world transform defines the joint\nframe — the anchor point and axes the constraint operates about — with the local X axis as the\nprimary axis: a hinge rotates about it, a slider translates along it and a ball joint twists\nabout it. The constrained bodies are referenced by `entity-a` and `entity-b`, both of which need\na rigid body component; leaving `entity-b` empty constrains `entity-a` to a fixed point in world\nspace. The underlying engine component is in alpha, so its API may change.\n\n---\n\n\n### **Events:**\n - **break** - Fired when the impulse on the joint exceeds `break-impulse` and the constraint breaks. A broken joint no longer constrains its bodies; calling `refreshFrames()` on the underlying component re-attaches it. Bubbles and is composed.\n- **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3050
+ "description": "The JointComponentElement interface provides properties and methods for manipulating\n[`<pc-joint>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-joint/) elements.\nThe JointComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe entity holding the joint is not itself constrained. Its world transform defines the joint\nframe — the anchor point and axes the constraint operates about — with the local X axis as the\nprimary axis: a hinge rotates about it, a slider translates along it and a ball joint twists\nabout it. The constrained bodies are referenced by `entity-a` and `entity-b`, both of which need\na rigid body component; leaving `entity-b` empty constrains `entity-a` to a fixed point in world\nspace. The underlying engine component is in alpha, so its API may change.\n\n---\n\n\n### **Events:**\n - **break** - Fired when the impulse on the joint exceeds `break-impulse` and the constraint breaks. A broken joint no longer constrains its bodies; calling `refreshFrames()` on the underlying component re-attaches it. Bubbles and is composed. Engine component: `JointComponent` (`joint`).\n- **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
2874
3051
  "doc-url": "",
2875
3052
  "attributes": [
2876
3053
  {
@@ -3054,7 +3231,7 @@
3054
3231
  {
3055
3232
  "name": "break",
3056
3233
  "type": "CustomEvent",
3057
- "description": "Fired when the impulse on the joint exceeds `break-impulse` and the constraint breaks. A broken joint no longer constrains its bodies; calling `refreshFrames()` on the underlying component re-attaches it. Bubbles and is composed."
3234
+ "description": "Fired when the impulse on the joint exceeds `break-impulse` and the constraint breaks. A broken joint no longer constrains its bodies; calling `refreshFrames()` on the underlying component re-attaches it. Bubbles and is composed. Engine component: `JointComponent` (`joint`)."
3058
3235
  },
3059
3236
  {
3060
3237
  "name": "ready",
@@ -3111,7 +3288,7 @@
3111
3288
  },
3112
3289
  {
3113
3290
  "name": "closestEntity",
3114
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3291
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3115
3292
  "type": "EntityBaseElement | null"
3116
3293
  },
3117
3294
  {
@@ -3205,7 +3382,7 @@
3205
3382
  {
3206
3383
  "name": "break",
3207
3384
  "type": "CustomEvent",
3208
- "description": "Fired when the impulse on the joint exceeds `break-impulse` and the constraint breaks. A broken joint no longer constrains its bodies; calling `refreshFrames()` on the underlying component re-attaches it. Bubbles and is composed."
3385
+ "description": "Fired when the impulse on the joint exceeds `break-impulse` and the constraint breaks. A broken joint no longer constrains its bodies; calling `refreshFrames()` on the underlying component re-attaches it. Bubbles and is composed. Engine component: `JointComponent` (`joint`)."
3209
3386
  },
3210
3387
  {
3211
3388
  "name": "ready",
@@ -3216,8 +3393,8 @@
3216
3393
  }
3217
3394
  },
3218
3395
  {
3219
- "name": "pc-layoutchild",
3220
- "description": "The LayoutChildComponentElement interface provides properties and methods for manipulating\n[`<pc-layoutchild>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-layoutchild/) elements.\nThe LayoutChildComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3396
+ "name": "pc-layout-child",
3397
+ "description": "The LayoutChildComponentElement interface provides properties and methods for manipulating\n[`<pc-layout-child>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-layout-child/) elements.\nThe LayoutChildComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: LayoutChildComponent (`layoutchild`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3221
3398
  "doc-url": "",
3222
3399
  "attributes": [
3223
3400
  {
@@ -3277,7 +3454,7 @@
3277
3454
  },
3278
3455
  {
3279
3456
  "name": "closestEntity",
3280
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3457
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3281
3458
  "type": "EntityBaseElement | null"
3282
3459
  },
3283
3460
  {
@@ -3328,8 +3505,8 @@
3328
3505
  }
3329
3506
  },
3330
3507
  {
3331
- "name": "pc-layoutgroup",
3332
- "description": "The LayoutGroupComponentElement interface provides properties and methods for manipulating\n[`<pc-layoutgroup>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-layoutgroup/) elements.\nThe LayoutGroupComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3508
+ "name": "pc-layout-group",
3509
+ "description": "The LayoutGroupComponentElement interface provides properties and methods for manipulating\n[`<pc-layout-group>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-layout-group/) elements.\nThe LayoutGroupComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: LayoutGroupComponent (`layoutgroup`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3333
3510
  "doc-url": "",
3334
3511
  "attributes": [
3335
3512
  {
@@ -3412,7 +3589,7 @@
3412
3589
  },
3413
3590
  {
3414
3591
  "name": "closestEntity",
3415
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3592
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3416
3593
  "type": "EntityBaseElement | null"
3417
3594
  },
3418
3595
  {
@@ -3468,7 +3645,7 @@
3468
3645
  },
3469
3646
  {
3470
3647
  "name": "pc-light",
3471
- "description": "The LightComponentElement interface provides properties and methods for manipulating\n[`<pc-light>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-light/) elements.\nThe LightComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3648
+ "description": "The LightComponentElement interface provides properties and methods for manipulating\n[`<pc-light>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-light/) elements.\nThe LightComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: LightComponent (`light`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3472
3649
  "doc-url": "",
3473
3650
  "attributes": [
3474
3651
  {
@@ -3598,7 +3775,7 @@
3598
3775
  },
3599
3776
  {
3600
3777
  "name": "closestEntity",
3601
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3778
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3602
3779
  "type": "EntityBaseElement | null"
3603
3780
  },
3604
3781
  {
@@ -3690,57 +3867,8 @@
3690
3867
  }
3691
3868
  },
3692
3869
  {
3693
- "name": "pc-listener",
3694
- "description": "The ListenerComponentElement interface provides properties and methods for manipulating\n[`<pc-listener>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-listener/) elements.\nThe ListenerComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3695
- "doc-url": "",
3696
- "attributes": [
3697
- {
3698
- "name": "enabled",
3699
- "description": "The enabled state of the component.",
3700
- "value": { "type": "boolean", "default": "true" }
3701
- }
3702
- ],
3703
- "events": [
3704
- {
3705
- "name": "ready",
3706
- "type": "CustomEvent",
3707
- "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3708
- }
3709
- ],
3710
- "js": {
3711
- "properties": [
3712
- {
3713
- "name": "closestApp",
3714
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3715
- "type": "AppElement | null"
3716
- },
3717
- {
3718
- "name": "closestEntity",
3719
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3720
- "type": "EntityBaseElement | null"
3721
- },
3722
- {
3723
- "name": "component",
3724
- "description": "Gets the underlying PlayCanvas audio listener component.",
3725
- "type": "Component | null"
3726
- },
3727
- {
3728
- "name": "enabled",
3729
- "description": "Gets the enabled state of the component."
3730
- }
3731
- ],
3732
- "events": [
3733
- {
3734
- "name": "ready",
3735
- "type": "CustomEvent",
3736
- "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3737
- }
3738
- ]
3739
- }
3740
- },
3741
- {
3742
- "name": "pc-particles",
3743
- "description": "The ParticleSystemComponentElement interface provides properties and methods for manipulating\n[`<pc-particles>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-particles/) elements.\nThe ParticleSystemComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **pause()** - Pauses the particle system\n- **play()** - Starts playing the particle system\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.\n- **reset()** - Resets the particle system\n- **stop()** - Stops the particle system",
3870
+ "name": "pc-particle-system",
3871
+ "description": "The ParticleSystemComponentElement interface provides properties and methods for manipulating\n[`<pc-particle-system>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-particle-system/) elements.\nThe ParticleSystemComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: ParticleSystemComponent (`particlesystem`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **pause()** - Pauses the particle system\n- **play()** - Starts playing the particle system\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.\n- **reset()** - Resets the particle system\n- **stop()** - Stops the particle system",
3744
3872
  "doc-url": "",
3745
3873
  "attributes": [
3746
3874
  {
@@ -3775,7 +3903,7 @@
3775
3903
  },
3776
3904
  {
3777
3905
  "name": "closestEntity",
3778
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3906
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3779
3907
  "type": "EntityBaseElement | null"
3780
3908
  },
3781
3909
  {
@@ -3799,7 +3927,7 @@
3799
3927
  },
3800
3928
  {
3801
3929
  "name": "pc-render",
3802
- "description": "The RenderComponentElement interface provides properties and methods for manipulating\n[`<pc-render>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-render/) elements.\nThe RenderComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThis element renders one of the engine's built-in primitives, selected with `type` (defaulting\nto `box`). It does not cover the engine's `asset` render type, since there is no way to supply\na render asset here — use `pc-model` for glTF content instead.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3930
+ "description": "The RenderComponentElement interface provides properties and methods for manipulating\n[`<pc-render>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-render/) elements.\nThe RenderComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThis element renders one of the engine's built-in primitives, selected with `type` (defaulting\nto `box`). It does not cover the engine's `asset` render type, since there is no way to supply\na render asset here — use `pc-model` for glTF content instead.\n\nEngine component: RenderComponent (`render`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3803
3931
  "doc-url": "",
3804
3932
  "attributes": [
3805
3933
  {
@@ -3852,7 +3980,7 @@
3852
3980
  },
3853
3981
  {
3854
3982
  "name": "closestEntity",
3855
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
3983
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3856
3984
  "type": "EntityBaseElement | null"
3857
3985
  },
3858
3986
  {
@@ -3889,8 +4017,8 @@
3889
4017
  }
3890
4018
  },
3891
4019
  {
3892
- "name": "pc-rigidbody",
3893
- "description": "The RigidBodyComponentElement interface provides properties and methods for manipulating\n[`<pc-rigidbody>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-rigidbody/) elements.\nThe RigidBodyComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4020
+ "name": "pc-rigid-body",
4021
+ "description": "The RigidBodyComponentElement interface provides properties and methods for manipulating\n[`<pc-rigid-body>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-rigid-body/) elements.\nThe RigidBodyComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: RigidBodyComponent (`rigidbody`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3894
4022
  "doc-url": "",
3895
4023
  "attributes": [
3896
4024
  {
@@ -3955,7 +4083,7 @@
3955
4083
  },
3956
4084
  {
3957
4085
  "name": "closestEntity",
3958
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4086
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
3959
4087
  "type": "EntityBaseElement | null"
3960
4088
  },
3961
4089
  {
@@ -3986,7 +4114,7 @@
3986
4114
  },
3987
4115
  {
3988
4116
  "name": "pc-screen",
3989
- "description": "The ScreenComponentElement interface provides properties and methods for manipulating\n[`<pc-screen>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-screen/) elements.\nThe ScreenComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4117
+ "description": "The ScreenComponentElement interface provides properties and methods for manipulating\n[`<pc-screen>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-screen/) elements.\nThe ScreenComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: ScreenComponent (`screen`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
3990
4118
  "doc-url": "",
3991
4119
  "attributes": [
3992
4120
  {
@@ -4039,7 +4167,7 @@
4039
4167
  },
4040
4168
  {
4041
4169
  "name": "closestEntity",
4042
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4170
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4043
4171
  "type": "EntityBaseElement | null"
4044
4172
  },
4045
4173
  {
@@ -4074,8 +4202,8 @@
4074
4202
  }
4075
4203
  },
4076
4204
  {
4077
- "name": "pc-scripts",
4078
- "description": "The ScriptComponentElement interface provides properties and methods for manipulating\n[`<pc-scripts>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-scripts/) elements.\nThe ScriptComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4205
+ "name": "pc-script",
4206
+ "description": "The ScriptComponentElement interface provides properties and methods for manipulating\n[`<pc-script>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-script/) elements.\nThe ScriptComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: ScriptComponent (`script`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4079
4207
  "doc-url": "",
4080
4208
  "attributes": [
4081
4209
  {
@@ -4100,7 +4228,7 @@
4100
4228
  },
4101
4229
  {
4102
4230
  "name": "closestEntity",
4103
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4231
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4104
4232
  "type": "EntityBaseElement | null"
4105
4233
  },
4106
4234
  {
@@ -4123,8 +4251,8 @@
4123
4251
  }
4124
4252
  },
4125
4253
  {
4126
- "name": "pc-script",
4127
- "description": "The ScriptElement interface provides properties and methods for manipulating\n`<pc-script>` elements. The ScriptElement interface also inherits the properties and\nmethods of the AsyncElement interface.\n\nScript attributes can be supplied through two channels:\n\n- **Per-property attributes**: any non-reserved attribute on the element maps to the script\n attribute of the same name (kebab-case to camelCase, e.g. `focus-point` → `focusPoint`).\n Values are parsed according to the type of the attribute's current value — initially the\n script's declared default (numbers, booleans, strings, Vec2/3/4, Color, Quat as Euler\n angles) — and the `asset:`/`entity:`/`vec2:`/`vec3:`/`vec4:`/`color:` prefixes may be used\n to be explicit.\n- **The `attributes` JSON attribute**: an object supporting nested structures and attribute\n names that collide with reserved HTML attribute names (e.g. `title`).\n\nWhen both specify the same attribute, the per-property attribute wins — at creation and\nwhenever either channel changes at runtime. The element's own `name` and `enabled`\nattributes configure the element itself and are not script attributes.\n\nChanging `name` on a live element destroys the old-name script instance and creates the\nnew-name one, re-applying both attribute channels to it.\n\nThe element becomes ready once its script instance has been created by the parent\n`<pc-scripts>` element.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n- **scriptattributeschange** - Fired when the script's attributes change. The `detail` carries the new `attributes` object. Bubbles.\n- **scriptenablechange** - Fired when the script's enabled state changes. The `detail` carries the new `enabled` state. Bubbles.\n- **scriptnamechange** - Fired when the script is renamed on a live element. The `detail` carries `oldName` and `newName`. Bubbles.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4254
+ "name": "pc-script-instance",
4255
+ "description": "The ScriptInstanceElement interface provides properties and methods for manipulating\n`<pc-script-instance>` elements. The ScriptInstanceElement interface also inherits the properties and\nmethods of the AsyncElement interface.\n\nScript attributes can be supplied through two channels:\n\n- **Per-property attributes**: any non-reserved attribute on the element maps to the script\n attribute of the same name (kebab-case to camelCase, e.g. `focus-point` → `focusPoint`).\n Values are parsed according to the type of the attribute's current value — initially the\n script's declared default (numbers, booleans, strings, Vec2/3/4, Color, Quat as Euler\n angles) — and the `asset:`/`entity:`/`vec2:`/`vec3:`/`vec4:`/`color:` prefixes may be used\n to be explicit.\n- **The `attributes` JSON attribute**: an object supporting nested structures and attribute\n names that collide with reserved HTML attribute names (e.g. `title`).\n\nWhen both specify the same attribute, the per-property attribute wins — at creation and\nwhenever either channel changes at runtime. The element's own `name` and `enabled`\nattributes configure the element itself and are not script attributes.\n\nChanging `name` on a live element destroys the old-name script instance and creates the\nnew-name one, re-applying both attribute channels to it.\n\nThe element becomes ready once its script instance has been created by the parent\n`<pc-script>` element.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n- **scriptattributeschange** - Fired when the script's attributes change. The `detail` carries the new `attributes` object. Bubbles.\n- **scriptenablechange** - Fired when the script's enabled state changes. The `detail` carries the new `enabled` state. Bubbles.\n- **scriptnamechange** - Fired when the script is renamed on a live element. The `detail` carries `oldName` and `newName`. Bubbles.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4128
4256
  "doc-url": "",
4129
4257
  "attributes": [
4130
4258
  {
@@ -4174,7 +4302,7 @@
4174
4302
  },
4175
4303
  {
4176
4304
  "name": "closestEntity",
4177
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4305
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4178
4306
  "type": "EntityBaseElement | null"
4179
4307
  },
4180
4308
  {
@@ -4218,96 +4346,8 @@
4218
4346
  }
4219
4347
  },
4220
4348
  {
4221
- "name": "pc-scrollbar",
4222
- "description": "The ScrollbarComponentElement interface provides properties and methods for manipulating\n[`<pc-scrollbar>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-scrollbar/) elements.\nThe ScrollbarComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4223
- "doc-url": "",
4224
- "attributes": [
4225
- {
4226
- "name": "enabled",
4227
- "description": "The enabled state of the component.",
4228
- "value": { "type": "boolean", "default": "true" }
4229
- },
4230
- {
4231
- "name": "handle",
4232
- "description": "The reference to the `<pc-entity>` used as the scrollbar handle.",
4233
- "value": { "type": "string" }
4234
- },
4235
- {
4236
- "name": "handle-size",
4237
- "description": "The size of the handle relative to the size of the track.",
4238
- "value": { "type": "number", "default": "0.5" }
4239
- },
4240
- {
4241
- "name": "orientation",
4242
- "description": "The orientation of the scrollbar.",
4243
- "value": {
4244
- "type": "'horizontal' | 'vertical'",
4245
- "default": "horizontal"
4246
- }
4247
- },
4248
- {
4249
- "name": "value",
4250
- "description": "The current position value of the scrollbar.",
4251
- "value": { "type": "number", "default": "0" }
4252
- }
4253
- ],
4254
- "events": [
4255
- {
4256
- "name": "ready",
4257
- "type": "CustomEvent",
4258
- "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
4259
- }
4260
- ],
4261
- "js": {
4262
- "properties": [
4263
- {
4264
- "name": "closestApp",
4265
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
4266
- "type": "AppElement | null"
4267
- },
4268
- {
4269
- "name": "closestEntity",
4270
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4271
- "type": "EntityBaseElement | null"
4272
- },
4273
- {
4274
- "name": "component",
4275
- "description": "Gets the underlying PlayCanvas scrollbar component.",
4276
- "type": "Component | null"
4277
- },
4278
- {
4279
- "name": "enabled",
4280
- "description": "Gets the enabled state of the component."
4281
- },
4282
- {
4283
- "name": "handle",
4284
- "description": "Gets the reference to the `<pc-entity>` used as the scrollbar handle."
4285
- },
4286
- {
4287
- "name": "handleSize",
4288
- "description": "Gets the size of the handle relative to the size of the track."
4289
- },
4290
- {
4291
- "name": "orientation",
4292
- "description": "Gets the orientation of the scrollbar."
4293
- },
4294
- {
4295
- "name": "value",
4296
- "description": "Gets the current position value of the scrollbar."
4297
- }
4298
- ],
4299
- "events": [
4300
- {
4301
- "name": "ready",
4302
- "type": "CustomEvent",
4303
- "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
4304
- }
4305
- ]
4306
- }
4307
- },
4308
- {
4309
- "name": "pc-scrollview",
4310
- "description": "The ScrollViewComponentElement interface provides properties and methods for manipulating\n[`<pc-scrollview>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-scrollview/) elements.\nThe ScrollViewComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4349
+ "name": "pc-scroll-view",
4350
+ "description": "The ScrollViewComponentElement interface provides properties and methods for manipulating\n[`<pc-scroll-view>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-scroll-view/) elements.\nThe ScrollViewComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: ScrollViewComponent (`scrollview`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4311
4351
  "doc-url": "",
4312
4352
  "attributes": [
4313
4353
  {
@@ -4410,7 +4450,7 @@
4410
4450
  },
4411
4451
  {
4412
4452
  "name": "closestEntity",
4413
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4453
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4414
4454
  "type": "EntityBaseElement | null"
4415
4455
  },
4416
4456
  {
@@ -4478,8 +4518,96 @@
4478
4518
  }
4479
4519
  },
4480
4520
  {
4481
- "name": "pc-sounds",
4482
- "description": "The SoundComponentElement interface provides properties and methods for manipulating\n[`<pc-sounds>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-sounds/) elements.\nThe SoundComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4521
+ "name": "pc-scrollbar",
4522
+ "description": "The ScrollbarComponentElement interface provides properties and methods for manipulating\n[`<pc-scrollbar>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-scrollbar/) elements.\nThe ScrollbarComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: ScrollbarComponent (`scrollbar`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4523
+ "doc-url": "",
4524
+ "attributes": [
4525
+ {
4526
+ "name": "enabled",
4527
+ "description": "The enabled state of the component.",
4528
+ "value": { "type": "boolean", "default": "true" }
4529
+ },
4530
+ {
4531
+ "name": "handle",
4532
+ "description": "The reference to the `<pc-entity>` used as the scrollbar handle.",
4533
+ "value": { "type": "string" }
4534
+ },
4535
+ {
4536
+ "name": "handle-size",
4537
+ "description": "The size of the handle relative to the size of the track.",
4538
+ "value": { "type": "number", "default": "0.5" }
4539
+ },
4540
+ {
4541
+ "name": "orientation",
4542
+ "description": "The orientation of the scrollbar.",
4543
+ "value": {
4544
+ "type": "'horizontal' | 'vertical'",
4545
+ "default": "horizontal"
4546
+ }
4547
+ },
4548
+ {
4549
+ "name": "value",
4550
+ "description": "The current position value of the scrollbar.",
4551
+ "value": { "type": "number", "default": "0" }
4552
+ }
4553
+ ],
4554
+ "events": [
4555
+ {
4556
+ "name": "ready",
4557
+ "type": "CustomEvent",
4558
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
4559
+ }
4560
+ ],
4561
+ "js": {
4562
+ "properties": [
4563
+ {
4564
+ "name": "closestApp",
4565
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
4566
+ "type": "AppElement | null"
4567
+ },
4568
+ {
4569
+ "name": "closestEntity",
4570
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4571
+ "type": "EntityBaseElement | null"
4572
+ },
4573
+ {
4574
+ "name": "component",
4575
+ "description": "Gets the underlying PlayCanvas scrollbar component.",
4576
+ "type": "Component | null"
4577
+ },
4578
+ {
4579
+ "name": "enabled",
4580
+ "description": "Gets the enabled state of the component."
4581
+ },
4582
+ {
4583
+ "name": "handle",
4584
+ "description": "Gets the reference to the `<pc-entity>` used as the scrollbar handle."
4585
+ },
4586
+ {
4587
+ "name": "handleSize",
4588
+ "description": "Gets the size of the handle relative to the size of the track."
4589
+ },
4590
+ {
4591
+ "name": "orientation",
4592
+ "description": "Gets the orientation of the scrollbar."
4593
+ },
4594
+ {
4595
+ "name": "value",
4596
+ "description": "Gets the current position value of the scrollbar."
4597
+ }
4598
+ ],
4599
+ "events": [
4600
+ {
4601
+ "name": "ready",
4602
+ "type": "CustomEvent",
4603
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
4604
+ }
4605
+ ]
4606
+ }
4607
+ },
4608
+ {
4609
+ "name": "pc-sound",
4610
+ "description": "The SoundComponentElement interface provides properties and methods for manipulating\n[`<pc-sound>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-sound/) elements.\nThe SoundComponentElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nEngine component: SoundComponent (`sound`).\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4483
4611
  "doc-url": "",
4484
4612
  "attributes": [
4485
4613
  {
@@ -4542,7 +4670,7 @@
4542
4670
  },
4543
4671
  {
4544
4672
  "name": "closestEntity",
4545
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4673
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4546
4674
  "type": "EntityBaseElement | null"
4547
4675
  },
4548
4676
  {
@@ -4594,8 +4722,8 @@
4594
4722
  }
4595
4723
  },
4596
4724
  {
4597
- "name": "pc-sound",
4598
- "description": "The SoundSlotElement interface provides properties and methods for manipulating\n`<pc-sound>` elements. The SoundSlotElement interface also inherits the properties and\nmethods of the AsyncElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4725
+ "name": "pc-sound-slot",
4726
+ "description": "The SoundSlotElement interface provides properties and methods for manipulating\n`<pc-sound-slot>` elements. The SoundSlotElement interface also inherits the properties and\nmethods of the AsyncElement interface.\n\n---\n\n\n### **Events:**\n - **ready** - Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed.\n\n### **Methods:**\n - **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
4599
4727
  "doc-url": "",
4600
4728
  "attributes": [
4601
4729
  {
@@ -4668,7 +4796,7 @@
4668
4796
  },
4669
4797
  {
4670
4798
  "name": "closestEntity",
4671
- "description": "The nearest ancestor element that fronts an entity — `<pc-entity>` or `<pc-node>` — or\n`null` if this element has no such ancestor. The search starts at the parent, so an element\nnever resolves to itself.",
4799
+ "description": "The nearest ancestor element that fronts an entity — `<pc-entity>`, `<pc-model>` or\n`<pc-node>` — or `null` if this element has no such ancestor. The search starts at the\nparent, so an element never resolves to itself.",
4672
4800
  "type": "EntityBaseElement | null"
4673
4801
  },
4674
4802
  {