@playcanvas/web-components 0.16.0 → 0.18.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 (126) hide show
  1. package/README.md +5 -3
  2. package/dist/app.d.cts +18 -13
  3. package/dist/app.d.ts +18 -13
  4. package/dist/asset.d.cts +13 -3
  5. package/dist/asset.d.ts +13 -3
  6. package/dist/async-element.d.cts +13 -13
  7. package/dist/async-element.d.ts +13 -13
  8. package/dist/components/anim-clip.d.cts +4 -0
  9. package/dist/components/anim-clip.d.ts +4 -0
  10. package/dist/components/anim-component.d.cts +38 -5
  11. package/dist/components/anim-component.d.ts +38 -5
  12. package/dist/components/audio-listener-component.d.cts +26 -0
  13. package/dist/components/audio-listener-component.d.ts +26 -0
  14. package/dist/components/button-component.d.cts +10 -1
  15. package/dist/components/button-component.d.ts +10 -1
  16. package/dist/components/camera-component.d.cts +37 -1
  17. package/dist/components/camera-component.d.ts +37 -1
  18. package/dist/components/collision-component.d.cts +9 -1
  19. package/dist/components/collision-component.d.ts +9 -1
  20. package/dist/components/component.d.cts +3 -2
  21. package/dist/components/component.d.ts +3 -2
  22. package/dist/components/element-component.d.cts +11 -0
  23. package/dist/components/element-component.d.ts +11 -0
  24. package/dist/components/gsplat-component.d.cts +6 -0
  25. package/dist/components/gsplat-component.d.ts +6 -0
  26. package/dist/components/joint-component.d.cts +14 -2
  27. package/dist/components/joint-component.d.ts +14 -2
  28. package/dist/components/{layoutchild-component.d.cts → layout-child-component.d.cts} +7 -1
  29. package/dist/components/{layoutchild-component.d.ts → layout-child-component.d.ts} +7 -1
  30. package/dist/components/{layoutgroup-component.d.cts → layout-group-component.d.cts} +7 -1
  31. package/dist/components/{layoutgroup-component.d.ts → layout-group-component.d.ts} +7 -1
  32. package/dist/components/light-component.d.cts +52 -1
  33. package/dist/components/light-component.d.ts +52 -1
  34. package/dist/components/{particlesystem-component.d.cts → particle-system-component.d.cts} +7 -1
  35. package/dist/components/{particlesystem-component.d.ts → particle-system-component.d.ts} +7 -1
  36. package/dist/components/render-component.d.cts +7 -0
  37. package/dist/components/render-component.d.ts +7 -0
  38. package/dist/components/{rigidbody-component.d.cts → rigid-body-component.d.cts} +8 -1
  39. package/dist/components/{rigidbody-component.d.ts → rigid-body-component.d.ts} +8 -1
  40. package/dist/components/screen-component.d.cts +6 -0
  41. package/dist/components/screen-component.d.ts +6 -0
  42. package/dist/components/script-component.d.cts +26 -12
  43. package/dist/components/script-component.d.ts +26 -12
  44. package/dist/components/{script.d.cts → script-instance.d.cts} +11 -7
  45. package/dist/components/{script.d.ts → script-instance.d.ts} +11 -7
  46. package/dist/components/{scrollview-component.d.cts → scroll-view-component.d.cts} +7 -1
  47. package/dist/components/{scrollview-component.d.ts → scroll-view-component.d.ts} +7 -1
  48. package/dist/components/scrollbar-component.d.cts +6 -0
  49. package/dist/components/scrollbar-component.d.ts +6 -0
  50. package/dist/components/sound-component.d.cts +7 -1
  51. package/dist/components/sound-component.d.ts +7 -1
  52. package/dist/components/sound-slot.d.cts +5 -2
  53. package/dist/components/sound-slot.d.ts +5 -2
  54. package/dist/custom-elements.json +1852 -974
  55. package/dist/entity-base.d.cts +7 -6
  56. package/dist/entity-base.d.ts +7 -6
  57. package/dist/entity-owner.d.cts +118 -0
  58. package/dist/entity-owner.d.ts +118 -0
  59. package/dist/entity.d.cts +14 -102
  60. package/dist/entity.d.ts +14 -102
  61. package/dist/index.d.cts +26 -22
  62. package/dist/index.d.ts +26 -22
  63. package/dist/material.d.cts +18 -7
  64. package/dist/material.d.ts +18 -7
  65. package/dist/model.d.cts +72 -24
  66. package/dist/model.d.ts +72 -24
  67. package/dist/node.d.cts +6 -1
  68. package/dist/node.d.ts +6 -1
  69. package/dist/pwc.cjs +807 -293
  70. package/dist/pwc.cjs.map +1 -1
  71. package/dist/pwc.js +807 -293
  72. package/dist/pwc.js.map +1 -1
  73. package/dist/pwc.min.js +1 -1
  74. package/dist/pwc.min.js.map +1 -1
  75. package/dist/pwc.min.mjs +1 -1
  76. package/dist/pwc.min.mjs.map +1 -1
  77. package/dist/pwc.mjs +805 -292
  78. package/dist/pwc.mjs.map +1 -1
  79. package/dist/scene.d.cts +3 -0
  80. package/dist/scene.d.ts +3 -0
  81. package/dist/sky.d.cts +4 -0
  82. package/dist/sky.d.ts +4 -0
  83. package/dist/vscode.html-custom-data.json +351 -121
  84. package/dist/{module.d.cts → wasm.d.cts} +10 -6
  85. package/dist/{module.d.ts → wasm.d.ts} +10 -6
  86. package/dist/web-types.json +465 -291
  87. package/package.json +7 -7
  88. package/src/app.ts +49 -35
  89. package/src/asset.ts +13 -4
  90. package/src/async-element.ts +14 -14
  91. package/src/components/anim-clip.ts +4 -0
  92. package/src/components/anim-component.ts +89 -14
  93. package/src/components/audio-listener-component.ts +36 -0
  94. package/src/components/button-component.ts +10 -1
  95. package/src/components/camera-component.ts +65 -6
  96. package/src/components/collision-component.ts +9 -1
  97. package/src/components/component.ts +4 -3
  98. package/src/components/element-component.ts +11 -0
  99. package/src/components/gsplat-component.ts +6 -0
  100. package/src/components/joint-component.ts +14 -2
  101. package/src/components/{layoutchild-component.ts → layout-child-component.ts} +8 -2
  102. package/src/components/{layoutgroup-component.ts → layout-group-component.ts} +8 -2
  103. package/src/components/light-component.ts +110 -17
  104. package/src/components/{particlesystem-component.ts → particle-system-component.ts} +8 -2
  105. package/src/components/render-component.ts +7 -0
  106. package/src/components/{rigidbody-component.ts → rigid-body-component.ts} +9 -2
  107. package/src/components/screen-component.ts +6 -0
  108. package/src/components/script-component.ts +66 -42
  109. package/src/components/{script.ts → script-instance.ts} +18 -14
  110. package/src/components/{scrollview-component.ts → scroll-view-component.ts} +8 -2
  111. package/src/components/scrollbar-component.ts +6 -0
  112. package/src/components/sound-component.ts +8 -2
  113. package/src/components/sound-slot.ts +7 -4
  114. package/src/entity-base.ts +8 -7
  115. package/src/entity-owner.ts +298 -0
  116. package/src/entity.ts +21 -271
  117. package/src/index.ts +38 -25
  118. package/src/material.ts +19 -8
  119. package/src/model.ts +164 -72
  120. package/src/node.ts +15 -6
  121. package/src/scene.ts +3 -0
  122. package/src/sky.ts +4 -0
  123. package/src/{module.ts → wasm.ts} +12 -8
  124. package/dist/components/listener-component.d.cts +0 -20
  125. package/dist/components/listener-component.d.ts +0 -20
  126. package/src/components/listener-component.ts +0 -30
@@ -4,7 +4,7 @@
4
4
  "tags": [
5
5
  {
6
6
  "name": "pc-app",
7
- "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.",
7
+ "description": "The `<pc-app>` element creates a PlayCanvas application and the canvas it renders\ninto, and is the root of every scene. It holds the `<pc-asset>`, `<pc-material>`, `<pc-wasm>` and\n`<pc-scene>` elements, and the page's CSS sizes it, as it would a `<video>`.\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.",
8
8
  "attributes": [
9
9
  {
10
10
  "name": "alpha",
@@ -46,11 +46,16 @@
46
46
  "values": []
47
47
  }
48
48
  ],
49
- "references": []
49
+ "references": [
50
+ {
51
+ "name": "User Manual",
52
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-app/"
53
+ }
54
+ ]
50
55
  },
51
56
  {
52
57
  "name": "pc-asset",
53
- "description": "The AssetElement interface provides properties and methods for manipulating\n[`<pc-asset>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-asset/) elements.\nThe AssetElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe element becomes ready once the containing application has started and the asset is in the\nstate declared by the markup: loaded for preloaded assets (even if loading failed — check the\nasset's `resource`), or registered and awaiting a load for `lazy` assets. Elements inserted\nwhile the application is running are created and registered on insertion, and begin loading\nimmediately unless `lazy`. A `pc-asset` must be a direct child of `pc-app` elements placed\nelsewhere, or with an unsupported asset type, never become ready.\n\nA `lazy` asset loads on first use: the first time any element resolves it by `id` — a model,\na material map, a sky, a script `asset:` reference — or when the `lazy` attribute is removed,\nwhichever comes first. Until then it stays registered and unloaded.\n\nFor `texture` and `textureatlas` assets, the texture options (`address-u`, `address-v`,\n`min-filter`, `mag-filter`, `anisotropy`, `mipmaps`, `srgb`, `flip-y`) apply when the texture is\ncreated and — like `lazy` — are observed: changing one updates a texture that has already\nloaded, and removing one restores the engine default. Changing `srgb` or `mipmaps` on a loaded\ntexture recreates the underlying GPU resource, so prefer declaring those up front. Each option\noverrides the matching key in the `data` JSON; options left unset write nothing, leaving the\nengine's per-format defaults in force.\n\nApart from `lazy` and the texture options, these attributes are read once when the asset is\ncreated, so changing them later has no effect.\n\n---\n\n\n### **Events:**\n - **error** - Fired when the 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 the asset finishes loading, including a `lazy` asset loaded later and any subsequent reloads. Does not bubble — listen on this element, or use a capture-phase listener on an ancestor to observe every asset.\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 - **get(id: _string_): __** - Returns the Asset created by the `<pc-asset>` element with the given `id`, or\n`undefined` if there is no such element or its asset has not been created yet.\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.",
58
+ "description": "The `<pc-asset>` element declares an asset for the application to load — a model,\ntexture, font, sound, script or JSON file under an `id` that other elements reference. Must be\na direct child of `<pc-app>`.\n\n---\n\n\n### **Events:**\n - **error** - Fired when the 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 the asset finishes loading, including a `lazy` asset loaded later and any subsequent reloads. Does not bubble — listen on this element, or use a capture-phase listener on an ancestor to observe every asset.\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.",
54
59
  "attributes": [
55
60
  {
56
61
  "name": "address-u",
@@ -157,11 +162,16 @@
157
162
  "values": []
158
163
  }
159
164
  ],
160
- "references": []
165
+ "references": [
166
+ {
167
+ "name": "User Manual",
168
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-asset/"
169
+ }
170
+ ]
161
171
  },
162
172
  {
163
173
  "name": "pc-entity",
164
- "description": "The EntityElement interface provides properties and methods for manipulating\n[`<pc-entity>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-entity/) elements.\nThe EntityElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nThe pointer events below are dispatched by the containing `<pc-app>` element when the pointer\nintersects this entity's geometry. They are only generated while the entity has a listener for\nthem, registered either with addEventListener or with the matching inline `onpointer*`\nattribute.\n\n---\n\n\n### **Events:**\n - **pointerdown** - Fired when a pointer button is pressed over the entity.\n- **pointerenter** - Fired when the pointer moves onto the entity.\n- **pointerleave** - Fired when the pointer moves off the entity.\n- **pointermove** - Fired when the pointer moves over the entity.\n- **pointerup** - Fired when a pointer button is released over the entity.\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.",
174
+ "description": "The `<pc-entity>` element creates an entity: a named, transformable node of the\nscene hierarchy, and the host for component elements such as `<pc-camera>`, `<pc-light>` and\n`<pc-render>`. Place it in the `<pc-scene>`, or nest it under another `<pc-entity>`, a\n`<pc-model>` or a `<pc-node>` to parent it there.\n\n---\n\n\n### **Events:**\n - **pointerdown** - Fired when a pointer button is pressed over the entity.\n- **pointerenter** - Fired when the pointer moves onto the entity.\n- **pointerleave** - Fired when the pointer moves off the entity.\n- **pointermove** - Fired when the pointer moves over the entity.\n- **pointerup** - Fired when a pointer button is released over the entity.\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.",
165
175
  "attributes": [
166
176
  {
167
177
  "name": "enabled",
@@ -219,11 +229,16 @@
219
229
  "values": []
220
230
  }
221
231
  ],
222
- "references": []
232
+ "references": [
233
+ {
234
+ "name": "User Manual",
235
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-entity/"
236
+ }
237
+ ]
223
238
  },
224
239
  {
225
240
  "name": "pc-material",
226
- "description": "The MaterialElement interface provides properties and methods for manipulating\n[`<pc-material>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-material/) elements.\nThe MaterialElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nA `pc-material` must be a direct child of `pc-app` elements placed elsewhere log a warning\nand never create a material. Elements inserted while the application is already running are\ncreated on insertion.\n\nThe element is metal/rough by default: unlike a bare `StandardMaterial` it enables the metalness\nworkflow, which is what the `metalness-*` attributes assume and what glTF means by PBR. It also\ndefaults `metalness` to 0 rather than the engine's 1, because those two defaults have to be\nchosen together - the engine's 1 is unreachable under its own `useMetalness` of false, and with\nthe workflow on it would make every material fully metallic, so `<pc-material diffuse=\"crimson\">`\nwould render as dark tinted reflections of an environment that may not exist rather than as a\ncrimson surface. `metalness=\"1\"` remains one attribute away.\n\nThe `roughness` and `roughness-map` attributes are aliases for `gloss` and `gloss-map` that\nadditionally invert the gloss channel; do not mix the two families on one element.\n\nThe two aliases are documented here rather than on an accessor, because they resolve to the\n`gloss` properties and would otherwise inherit gloss's description - which reads inverted.\n\n---\n\n\n### **Methods:**\n - **get(id: _string_): __** - Returns the StandardMaterial created by the `<pc-material>` element with the given\n`id`, or `undefined` if there is no such element or its material has not been created yet.",
241
+ "description": "The `<pc-material>` element defines a physically based material, which\n`<pc-render>` elements apply by naming its `id`. It is metal/rough by default, with `metalness`\nstarting at 0. Must be a direct child of `<pc-app>`.\n\n---\n",
227
242
  "attributes": [
228
243
  {
229
244
  "name": "alpha-test",
@@ -699,50 +714,88 @@
699
714
  "values": []
700
715
  }
701
716
  ],
702
- "references": []
717
+ "references": [
718
+ {
719
+ "name": "User Manual",
720
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-material/"
721
+ }
722
+ ]
703
723
  },
704
724
  {
705
725
  "name": "pc-model",
706
- "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.",
726
+ "description": "The `<pc-model>` element instantiates a 3D model from a container asset\n(typically a GLB) beneath an entity of its own, so the element's transform and tags place the\ninstance in the scene. Its `<pc-node>` children override what the asset authored. Place it in the\n`<pc-scene>`, or nest it under a `<pc-entity>`, another `<pc-model>` or a `<pc-node>`.\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.",
707
727
  "attributes": [
708
728
  {
709
729
  "name": "asset",
710
730
  "description": "The id of the `pc-asset` to use for the model.",
711
731
  "values": []
712
- }
713
- ],
714
- "references": []
715
- },
716
- {
717
- "name": "pc-module",
718
- "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.",
719
- "attributes": [
732
+ },
720
733
  {
721
- "name": "fallback",
722
- "description": "The URL of the module's asm.js fallback script, used when WebAssembly is unavailable.",
734
+ "name": "enabled",
735
+ "description": "The enabled state of the model.",
723
736
  "values": []
724
737
  },
725
738
  {
726
- "name": "glue",
727
- "description": "The URL of the module's glue script.",
739
+ "name": "name",
740
+ "description": "The name of the model.",
728
741
  "values": []
729
742
  },
730
743
  {
731
- "name": "name",
732
- "description": "The name of the WebAssembly module to configure, e.g. `Basis` or `Ammo`.",
744
+ "name": "onpointerdown",
745
+ "description": "Script to run when a pointer button is pressed over the model.",
733
746
  "values": []
734
747
  },
735
748
  {
736
- "name": "wasm",
737
- "description": "The URL of the module's WebAssembly binary.",
749
+ "name": "onpointerenter",
750
+ "description": "Script to run when the pointer moves onto the model.",
751
+ "values": []
752
+ },
753
+ {
754
+ "name": "onpointerleave",
755
+ "description": "Script to run when the pointer moves off the model.",
756
+ "values": []
757
+ },
758
+ {
759
+ "name": "onpointermove",
760
+ "description": "Script to run when the pointer moves over the model.",
761
+ "values": []
762
+ },
763
+ {
764
+ "name": "onpointerup",
765
+ "description": "Script to run when a pointer button is released over the model.",
766
+ "values": []
767
+ },
768
+ {
769
+ "name": "position",
770
+ "description": "The position of the model. Accepts 3 space-separated numbers.",
771
+ "values": []
772
+ },
773
+ {
774
+ "name": "rotation",
775
+ "description": "The rotation of the model. Accepts 3 space-separated numbers.",
776
+ "values": []
777
+ },
778
+ {
779
+ "name": "scale",
780
+ "description": "The scale of the model. Accepts 3 space-separated numbers.",
781
+ "values": []
782
+ },
783
+ {
784
+ "name": "tags",
785
+ "description": "The tags of the model.",
738
786
  "values": []
739
787
  }
740
788
  ],
741
- "references": []
789
+ "references": [
790
+ {
791
+ "name": "User Manual",
792
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-model/"
793
+ }
794
+ ]
742
795
  },
743
796
  {
744
797
  "name": "pc-node",
745
- "description": "The NodeElement interface provides properties and methods for manipulating\n[`<pc-node>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-node/)\nelements. The NodeElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\nA `pc-node` is an override element: where `pc-entity` creates an entity, `pc-node` binds to a\nnode a `pc-model` loaded and declares overrides against the authored asset components to\nadd, properties to change, content to attach. Attributes present apply as overrides; attributes\nabsent leave authored values untouched, and removing an attribute (or assigning `null` to the\nmatching property) restores the authored value.\n\n`name` selects among the host model's nodes (first match in depth-first order), nesting a\n`pc-node` inside another scopes the search to that subtree, and `index` picks among identically\nnamed matches. When `name` matches more than one node and no `index` is given, the element\nwarns and binds nothing.\n\nThe element becomes ready once bound, and never while unresolved — a missing or ambiguous\nname warns and records the failure in `state`, readiness stays unresolved, and descendants\nwait with it.\n\nThe pointer events below are dispatched by the containing `<pc-app>` element when the pointer\nintersects the bound node's geometry, exactly as for `<pc-entity>`.\n\n---\n\n\n### **Events:**\n - **pointerdown** - Fired when a pointer button is pressed over the node.\n- **pointerenter** - Fired when the pointer moves onto the node.\n- **pointerleave** - Fired when the pointer moves off the node.\n- **pointermove** - Fired when the pointer moves over the node.\n- **pointerup** - Fired when a pointer button is released over the node.\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.",
798
+ "description": "The `<pc-node>` element binds to a node inside the hierarchy a `<pc-model>`\ninstantiated and declares overrides against it: a transform, an enabled state, tags, components\nto add, or content to attach. Its `name` is a lookup, never a rename. Must be a descendant of\n`<pc-model>`.\n\n---\n\n\n### **Events:**\n - **pointerdown** - Fired when a pointer button is pressed over the node.\n- **pointerenter** - Fired when the pointer moves onto the node.\n- **pointerleave** - Fired when the pointer moves off the node.\n- **pointermove** - Fired when the pointer moves over the node.\n- **pointerup** - Fired when a pointer button is released over the node.\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.",
746
799
  "attributes": [
747
800
  {
748
801
  "name": "enabled",
@@ -810,11 +863,16 @@
810
863
  "values": []
811
864
  }
812
865
  ],
813
- "references": []
866
+ "references": [
867
+ {
868
+ "name": "User Manual",
869
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-node/"
870
+ }
871
+ ]
814
872
  },
815
873
  {
816
874
  "name": "pc-scene",
817
- "description": "The SceneElement interface provides properties and methods for manipulating\n[`<pc-scene>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-scene/) elements.\nThe SceneElement 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.",
875
+ "description": "The `<pc-scene>` element holds the entity hierarchy the application renders,\nalong with the scene-wide fog and gravity settings. Must be a direct child of `<pc-app>`.\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.",
818
876
  "attributes": [
819
877
  {
820
878
  "name": "fog",
@@ -852,11 +910,16 @@
852
910
  "values": []
853
911
  }
854
912
  ],
855
- "references": []
913
+ "references": [
914
+ {
915
+ "name": "User Manual",
916
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-scene/"
917
+ }
918
+ ]
856
919
  },
857
920
  {
858
921
  "name": "pc-sky",
859
- "description": "The SkyElement interface provides properties and methods for manipulating\n`<pc-sky>` elements. The SkyElement interface also inherits the properties and\nmethods of the HTMLElement 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.",
922
+ "description": "The `<pc-sky>` element renders a skybox from a texture asset, projected as an\ninfinite background, a box or a dome, and optionally lights the scene from it. Must be a direct\nchild of `<pc-scene>`.\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.",
860
923
  "attributes": [
861
924
  {
862
925
  "name": "asset",
@@ -904,11 +967,48 @@
904
967
  ]
905
968
  }
906
969
  ],
907
- "references": []
970
+ "references": [
971
+ {
972
+ "name": "User Manual",
973
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-sky/"
974
+ }
975
+ ]
976
+ },
977
+ {
978
+ "name": "pc-wasm",
979
+ "description": "The `<pc-wasm>` element loads a WebAssembly module the engine needs before the\napplication starts — `Ammo` for physics, `Basis` or `DracoDecoderModule` for compressed assets.\nMust be a direct child of `<pc-app>`.\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.",
980
+ "attributes": [
981
+ {
982
+ "name": "fallback",
983
+ "description": "The URL of the module's asm.js fallback script, used when WebAssembly is unavailable.",
984
+ "values": []
985
+ },
986
+ {
987
+ "name": "glue",
988
+ "description": "The URL of the module's glue script.",
989
+ "values": []
990
+ },
991
+ {
992
+ "name": "name",
993
+ "description": "The name of the WebAssembly module to configure, e.g. `Basis` or `Ammo`.",
994
+ "values": []
995
+ },
996
+ {
997
+ "name": "wasm",
998
+ "description": "The URL of the module's WebAssembly binary.",
999
+ "values": []
1000
+ }
1001
+ ],
1002
+ "references": [
1003
+ {
1004
+ "name": "User Manual",
1005
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-wasm/"
1006
+ }
1007
+ ]
908
1008
  },
909
1009
  {
910
1010
  "name": "pc-anim-clip",
911
- "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.",
1011
+ "description": "The `<pc-anim-clip>` element declares one named animation clip on its parent\n`<pc-anim>`, taken from the `asset` it names or, without one, from the enclosing `<pc-model>`'s\nown animations. Must be a direct child of `<pc-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.",
912
1012
  "attributes": [
913
1013
  {
914
1014
  "name": "asset",
@@ -931,11 +1031,16 @@
931
1031
  "values": []
932
1032
  }
933
1033
  ],
934
- "references": []
1034
+ "references": [
1035
+ {
1036
+ "name": "User Manual",
1037
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-anim-clip/"
1038
+ }
1039
+ ]
935
1040
  },
936
1041
  {
937
1042
  "name": "pc-anim",
938
- "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.",
1043
+ "description": "The `<pc-anim>` element plays animation clips over its entity's hierarchy, taken\nfrom `<pc-anim-clip>` children or from the enclosing `<pc-model>`'s own animations. The first\nclip plays automatically, and the `clip` attribute switches between them. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
939
1044
  "attributes": [
940
1045
  {
941
1046
  "name": "activate",
@@ -963,11 +1068,33 @@
963
1068
  "values": []
964
1069
  }
965
1070
  ],
966
- "references": []
1071
+ "references": [
1072
+ {
1073
+ "name": "User Manual",
1074
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-anim/"
1075
+ }
1076
+ ]
1077
+ },
1078
+ {
1079
+ "name": "pc-audio-listener",
1080
+ "description": "The `<pc-audio-listener>` element makes its entity the point from which\npositional sounds are heard, typically the entity holding the `<pc-camera>`. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1081
+ "attributes": [
1082
+ {
1083
+ "name": "enabled",
1084
+ "description": "The enabled state of the component.",
1085
+ "values": []
1086
+ }
1087
+ ],
1088
+ "references": [
1089
+ {
1090
+ "name": "User Manual",
1091
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-audio-listener/"
1092
+ }
1093
+ ]
967
1094
  },
968
1095
  {
969
1096
  "name": "pc-button",
970
- "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.",
1097
+ "description": "The `<pc-button>` element makes its entity respond to pointer input, tinting or\nswapping its image as the pointer hovers, presses and releases it. The entity also needs a\n`<pc-element>` with `use-input` set. Must be a child of a `<pc-entity>`, `<pc-model>` or\n`<pc-node>`.\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.",
971
1098
  "attributes": [
972
1099
  {
973
1100
  "name": "active",
@@ -1045,11 +1172,16 @@
1045
1172
  "values": [{ "name": "tint" }, { "name": "sprite" }]
1046
1173
  }
1047
1174
  ],
1048
- "references": []
1175
+ "references": [
1176
+ {
1177
+ "name": "User Manual",
1178
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-button/"
1179
+ }
1180
+ ]
1049
1181
  },
1050
1182
  {
1051
1183
  "name": "pc-camera",
1052
- "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.",
1184
+ "description": "The `<pc-camera>` element renders the scene from its entity's transform, with\nattributes for the projection, field of view, clip planes, clear color and tonemapping. Must be a\nchild of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1053
1185
  "attributes": [
1054
1186
  {
1055
1187
  "name": "clear-color",
@@ -1061,6 +1193,11 @@
1061
1193
  "description": "The clear color buffer of the camera.",
1062
1194
  "values": []
1063
1195
  },
1196
+ {
1197
+ "name": "clear-depth",
1198
+ "description": "The depth value the depth buffer is cleared to.",
1199
+ "values": []
1200
+ },
1064
1201
  {
1065
1202
  "name": "clear-depth-buffer",
1066
1203
  "description": "The clear depth buffer of the camera.",
@@ -1155,11 +1292,16 @@
1155
1292
  ]
1156
1293
  }
1157
1294
  ],
1158
- "references": []
1295
+ "references": [
1296
+ {
1297
+ "name": "User Manual",
1298
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-camera/"
1299
+ }
1300
+ ]
1159
1301
  },
1160
1302
  {
1161
1303
  "name": "pc-collision",
1162
- "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.",
1304
+ "description": "The `<pc-collision>` element gives its entity a collision shape a box, sphere,\ncapsule, cone, cylinder or meshfor the physics simulation to collide against. Pair it with a\n`<pc-rigid-body>`. Must be a child of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1163
1305
  "attributes": [
1164
1306
  {
1165
1307
  "name": "angular-offset",
@@ -1198,11 +1340,16 @@
1198
1340
  ]
1199
1341
  }
1200
1342
  ],
1201
- "references": []
1343
+ "references": [
1344
+ {
1345
+ "name": "User Manual",
1346
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-collision/"
1347
+ }
1348
+ ]
1202
1349
  },
1203
1350
  {
1204
1351
  "name": "pc-element",
1205
- "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.",
1352
+ "description": "The `<pc-element>` element gives its entity a 2D UI rectangle inside a\n`<pc-screen>` hierarchy, drawing an image, a line of text or nothing (`type=\"image\"`, `\"text\"` or\n`\"group\"`). Must be a child of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1206
1353
  "attributes": [
1207
1354
  {
1208
1355
  "name": "anchor",
@@ -1344,11 +1491,16 @@
1344
1491
  "values": []
1345
1492
  }
1346
1493
  ],
1347
- "references": []
1494
+ "references": [
1495
+ {
1496
+ "name": "User Manual",
1497
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-element/"
1498
+ }
1499
+ ]
1348
1500
  },
1349
1501
  {
1350
1502
  "name": "pc-gsplat",
1351
- "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.",
1503
+ "description": "The `<pc-gsplat>` element renders the 3D Gaussian splats of a `gsplat` asset at\nits entity, with attributes for shadow casting and level of detail. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1352
1504
  "attributes": [
1353
1505
  {
1354
1506
  "name": "asset",
@@ -1386,11 +1538,16 @@
1386
1538
  "values": []
1387
1539
  }
1388
1540
  ],
1389
- "references": []
1541
+ "references": [
1542
+ {
1543
+ "name": "User Manual",
1544
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-gsplat/"
1545
+ }
1546
+ ]
1390
1547
  },
1391
1548
  {
1392
1549
  "name": "pc-joint",
1393
- "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.",
1550
+ "description": "The `<pc-joint>` element constrains two rigid bodies to each other a hinged\ndoor, a swinging chain, a sliding drawer. Its entity's transform is the joint frame, and\n`entity-a` and `entity-b` name the bodies. Must be a child of a `<pc-entity>`, `<pc-model>` or\n`<pc-node>`.\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.",
1394
1551
  "attributes": [
1395
1552
  {
1396
1553
  "name": "angular-damping",
@@ -1578,11 +1735,16 @@
1578
1735
  ]
1579
1736
  }
1580
1737
  ],
1581
- "references": []
1738
+ "references": [
1739
+ {
1740
+ "name": "User Manual",
1741
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-joint/"
1742
+ }
1743
+ ]
1582
1744
  },
1583
1745
  {
1584
- "name": "pc-layoutchild",
1585
- "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.",
1746
+ "name": "pc-layout-child",
1747
+ "description": "The `<pc-layout-child>` element controls how its entity is sized by the\n`<pc-layout-group>` above it, through minimum and maximum sizes and fit proportions. Must be a\nchild of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1586
1748
  "attributes": [
1587
1749
  {
1588
1750
  "name": "enabled",
@@ -1625,11 +1787,16 @@
1625
1787
  "values": []
1626
1788
  }
1627
1789
  ],
1628
- "references": []
1790
+ "references": [
1791
+ {
1792
+ "name": "User Manual",
1793
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-layout-child/"
1794
+ }
1795
+ ]
1629
1796
  },
1630
1797
  {
1631
- "name": "pc-layoutgroup",
1632
- "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.",
1798
+ "name": "pc-layout-group",
1799
+ "description": "The `<pc-layout-group>` element arranges its entity's children in a row or\ncolumn, with spacing, padding, alignment and fitting. Must be a child of a `<pc-entity>`,\n`<pc-model>` or `<pc-node>`.\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.",
1633
1800
  "attributes": [
1634
1801
  {
1635
1802
  "name": "alignment",
@@ -1692,12 +1859,27 @@
1692
1859
  "values": []
1693
1860
  }
1694
1861
  ],
1695
- "references": []
1862
+ "references": [
1863
+ {
1864
+ "name": "User Manual",
1865
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-layout-group/"
1866
+ }
1867
+ ]
1696
1868
  },
1697
1869
  {
1698
1870
  "name": "pc-light",
1699
- "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.",
1871
+ "description": "The `<pc-light>` element lights the scene from its entity — as a directional,\nomni or spot light with attributes for color, intensity, range and shadows. Must be a child of\na `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1700
1872
  "attributes": [
1873
+ {
1874
+ "name": "cascade-blend",
1875
+ "description": "The cascade blend factor of the light, from 0 (no blending) to 1, which applies only to `directional` lights with `num-cascades` greater than 1.",
1876
+ "values": []
1877
+ },
1878
+ {
1879
+ "name": "cascade-distribution",
1880
+ "description": "The cascade distribution of the light, from 0 (linear split) to 1 (logarithmic split, concentrating shadow resolution near the camera), which applies only to `directional` lights with `num-cascades` greater than 1.",
1881
+ "values": []
1882
+ },
1701
1883
  {
1702
1884
  "name": "cast-shadows",
1703
1885
  "description": "The cast shadows flag of the light.",
@@ -1728,6 +1910,11 @@
1728
1910
  "description": "The normal offset bias of the light.",
1729
1911
  "values": []
1730
1912
  },
1913
+ {
1914
+ "name": "num-cascades",
1915
+ "description": "The number of shadow cascades of the light, an integer from 1 (no cascades) to 4, which applies only to `directional` lights.",
1916
+ "values": []
1917
+ },
1731
1918
  {
1732
1919
  "name": "outer-cone-angle",
1733
1920
  "description": "The outer cone angle of the light.",
@@ -1813,23 +2000,16 @@
1813
2000
  "values": []
1814
2001
  }
1815
2002
  ],
1816
- "references": []
1817
- },
1818
- {
1819
- "name": "pc-listener",
1820
- "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.",
1821
- "attributes": [
2003
+ "references": [
1822
2004
  {
1823
- "name": "enabled",
1824
- "description": "The enabled state of the component.",
1825
- "values": []
2005
+ "name": "User Manual",
2006
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-light/"
1826
2007
  }
1827
- ],
1828
- "references": []
2008
+ ]
1829
2009
  },
1830
2010
  {
1831
- "name": "pc-particles",
1832
- "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",
2011
+ "name": "pc-particle-system",
2012
+ "description": "The `<pc-particle-system>` element emits particles from its entity, with\nattributes for the emitter's shape, rate, lifetime, textures and blending. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1833
2013
  "attributes": [
1834
2014
  {
1835
2015
  "name": "asset",
@@ -1842,11 +2022,16 @@
1842
2022
  "values": []
1843
2023
  }
1844
2024
  ],
1845
- "references": []
2025
+ "references": [
2026
+ {
2027
+ "name": "User Manual",
2028
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-particle-system/"
2029
+ }
2030
+ ]
1846
2031
  },
1847
2032
  {
1848
2033
  "name": "pc-render",
1849
- "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.",
2034
+ "description": "The `<pc-render>` element renders one of the engine's built-in primitives at its\nentity — box, sphere, capsule, cone, cylinder or plane shaded by the `<pc-material>` its\n`material` attribute names. For glTF content, use `<pc-model>` instead. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1850
2035
  "attributes": [
1851
2036
  {
1852
2037
  "name": "cast-shadows",
@@ -1881,11 +2066,16 @@
1881
2066
  ]
1882
2067
  }
1883
2068
  ],
1884
- "references": []
2069
+ "references": [
2070
+ {
2071
+ "name": "User Manual",
2072
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-render/"
2073
+ }
2074
+ ]
1885
2075
  },
1886
2076
  {
1887
- "name": "pc-rigidbody",
1888
- "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.",
2077
+ "name": "pc-rigid-body",
2078
+ "description": "The `<pc-rigid-body>` element hands its entity to the physics simulation, with\nattributes for its type, mass, friction and restitution. It needs a sibling `<pc-collision>` for\nits shape, and `Ammo` loaded through `<pc-wasm>`. Must be a child of a `<pc-entity>`,\n`<pc-model>` or `<pc-node>`.\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.",
1889
2079
  "attributes": [
1890
2080
  { "name": "angular-damping", "values": [] },
1891
2081
  {
@@ -1917,11 +2107,16 @@
1917
2107
  ]
1918
2108
  }
1919
2109
  ],
1920
- "references": []
2110
+ "references": [
2111
+ {
2112
+ "name": "User Manual",
2113
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-rigid-body/"
2114
+ }
2115
+ ]
1921
2116
  },
1922
2117
  {
1923
2118
  "name": "pc-screen",
1924
- "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.",
2119
+ "description": "The `<pc-screen>` element gives its entity a 2D space — in screen space or in the\nworld — that a hierarchy of `<pc-element>` descendants lays out inside. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1925
2120
  "attributes": [
1926
2121
  {
1927
2122
  "name": "enabled",
@@ -1951,11 +2146,16 @@
1951
2146
  },
1952
2147
  { "name": "screen-space", "values": [] }
1953
2148
  ],
1954
- "references": []
2149
+ "references": [
2150
+ {
2151
+ "name": "User Manual",
2152
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-screen/"
2153
+ }
2154
+ ]
1955
2155
  },
1956
2156
  {
1957
- "name": "pc-scripts",
1958
- "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.",
2157
+ "name": "pc-script",
2158
+ "description": "The `<pc-script>` element holds the `<pc-script-instance>` children that attach\nscripts to its entity. Must be a child of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
1959
2159
  "attributes": [
1960
2160
  {
1961
2161
  "name": "enabled",
@@ -1963,11 +2163,16 @@
1963
2163
  "values": []
1964
2164
  }
1965
2165
  ],
1966
- "references": []
2166
+ "references": [
2167
+ {
2168
+ "name": "User Manual",
2169
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-script/"
2170
+ }
2171
+ ]
1967
2172
  },
1968
2173
  {
1969
- "name": "pc-script",
1970
- "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.",
2174
+ "name": "pc-script-instance",
2175
+ "description": "The `<pc-script-instance>` element attaches one script class, named by `name`, to\nthe entity of its parent `<pc-script>`. Its other attributes set script attributes of the same\nname, and `attributes` takes a JSON object instead. Must be a direct child of `<pc-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- **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.",
1971
2176
  "attributes": [
1972
2177
  {
1973
2178
  "name": "attributes",
@@ -1985,43 +2190,16 @@
1985
2190
  "values": []
1986
2191
  }
1987
2192
  ],
1988
- "references": []
1989
- },
1990
- {
1991
- "name": "pc-scrollbar",
1992
- "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.",
1993
- "attributes": [
1994
- {
1995
- "name": "enabled",
1996
- "description": "The enabled state of the component.",
1997
- "values": []
1998
- },
1999
- {
2000
- "name": "handle",
2001
- "description": "The reference to the `<pc-entity>` used as the scrollbar handle.",
2002
- "values": []
2003
- },
2193
+ "references": [
2004
2194
  {
2005
- "name": "handle-size",
2006
- "description": "The size of the handle relative to the size of the track.",
2007
- "values": []
2008
- },
2009
- {
2010
- "name": "orientation",
2011
- "description": "The orientation of the scrollbar.",
2012
- "values": [{ "name": "horizontal" }, { "name": "vertical" }]
2013
- },
2014
- {
2015
- "name": "value",
2016
- "description": "The current position value of the scrollbar.",
2017
- "values": []
2195
+ "name": "User Manual",
2196
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-script-instance/"
2018
2197
  }
2019
- ],
2020
- "references": []
2198
+ ]
2021
2199
  },
2022
2200
  {
2023
- "name": "pc-scrollview",
2024
- "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.",
2201
+ "name": "pc-scroll-view",
2202
+ "description": "The `<pc-scroll-view>` element scrolls a larger content entity within a clipped\nviewport at its entity, optionally driven by the `<pc-scrollbar>` elements it references. Must be\na child of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
2025
2203
  "attributes": [
2026
2204
  {
2027
2205
  "name": "bounce-amount",
@@ -2094,11 +2272,53 @@
2094
2272
  "values": []
2095
2273
  }
2096
2274
  ],
2097
- "references": []
2275
+ "references": [
2276
+ {
2277
+ "name": "User Manual",
2278
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-scroll-view/"
2279
+ }
2280
+ ]
2281
+ },
2282
+ {
2283
+ "name": "pc-scrollbar",
2284
+ "description": "The `<pc-scrollbar>` element gives its entity a draggable handle reporting a\nposition from 0 to 1, which a `<pc-scroll-view>` references to scroll its content. Must be a\nchild of a `<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
2285
+ "attributes": [
2286
+ {
2287
+ "name": "enabled",
2288
+ "description": "The enabled state of the component.",
2289
+ "values": []
2290
+ },
2291
+ {
2292
+ "name": "handle",
2293
+ "description": "The reference to the `<pc-entity>` used as the scrollbar handle.",
2294
+ "values": []
2295
+ },
2296
+ {
2297
+ "name": "handle-size",
2298
+ "description": "The size of the handle relative to the size of the track.",
2299
+ "values": []
2300
+ },
2301
+ {
2302
+ "name": "orientation",
2303
+ "description": "The orientation of the scrollbar.",
2304
+ "values": [{ "name": "horizontal" }, { "name": "vertical" }]
2305
+ },
2306
+ {
2307
+ "name": "value",
2308
+ "description": "The current position value of the scrollbar.",
2309
+ "values": []
2310
+ }
2311
+ ],
2312
+ "references": [
2313
+ {
2314
+ "name": "User Manual",
2315
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-scrollbar/"
2316
+ }
2317
+ ]
2098
2318
  },
2099
2319
  {
2100
- "name": "pc-sounds",
2101
- "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.",
2320
+ "name": "pc-sound",
2321
+ "description": "The `<pc-sound>` element holds the `<pc-sound-slot>` children that play sounds at\nits entity, along with the positional audio settings they share. Must be a child of a\n`<pc-entity>`, `<pc-model>` or `<pc-node>`.\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.",
2102
2322
  "attributes": [
2103
2323
  {
2104
2324
  "name": "distance-model",
@@ -2145,11 +2365,16 @@
2145
2365
  "values": []
2146
2366
  }
2147
2367
  ],
2148
- "references": []
2368
+ "references": [
2369
+ {
2370
+ "name": "User Manual",
2371
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-sound/"
2372
+ }
2373
+ ]
2149
2374
  },
2150
2375
  {
2151
- "name": "pc-sound",
2152
- "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.",
2376
+ "name": "pc-sound-slot",
2377
+ "description": "The `<pc-sound-slot>` element declares one named sound on its parent `<pc-sound>`\n— its asset, volume, pitch, looping and autoplay. Must be a direct child of `<pc-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.",
2153
2378
  "attributes": [
2154
2379
  {
2155
2380
  "name": "asset",
@@ -2197,7 +2422,12 @@
2197
2422
  "values": []
2198
2423
  }
2199
2424
  ],
2200
- "references": []
2425
+ "references": [
2426
+ {
2427
+ "name": "User Manual",
2428
+ "url": "https://developer.playcanvas.com/user-manual/web-components/tags/pc-sound-slot/"
2429
+ }
2430
+ ]
2201
2431
  }
2202
2432
  ]
2203
2433
  }