@playcanvas/web-components 0.10.1 → 0.11.1

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 (78) hide show
  1. package/README.md +1 -1
  2. package/dist/app.d.ts +102 -51
  3. package/dist/asset.d.ts +8 -7
  4. package/dist/async-element.d.ts +21 -5
  5. package/dist/components/button-component.d.ts +3 -7
  6. package/dist/components/camera-component.d.ts +16 -20
  7. package/dist/components/collision-component.d.ts +3 -7
  8. package/dist/components/component.d.ts +22 -4
  9. package/dist/components/element-component.d.ts +4 -8
  10. package/dist/components/gsplat-component.d.ts +2 -7
  11. package/dist/components/layoutchild-component.d.ts +2 -7
  12. package/dist/components/layoutgroup-component.d.ts +3 -7
  13. package/dist/components/light-component.d.ts +3 -7
  14. package/dist/components/listener-component.d.ts +1 -6
  15. package/dist/components/particlesystem-component.d.ts +2 -7
  16. package/dist/components/render-component.d.ts +2 -7
  17. package/dist/components/rigidbody-component.d.ts +3 -7
  18. package/dist/components/screen-component.d.ts +28 -11
  19. package/dist/components/script-component.d.ts +8 -20
  20. package/dist/components/script.d.ts +2 -22
  21. package/dist/components/scrollbar-component.d.ts +2 -7
  22. package/dist/components/scrollview-component.d.ts +9 -11
  23. package/dist/components/sound-component.d.ts +2 -7
  24. package/dist/components/sound-slot.d.ts +8 -6
  25. package/dist/custom-elements.json +5191 -10695
  26. package/dist/entity.d.ts +16 -9
  27. package/dist/index.d.ts +37 -0
  28. package/dist/material.d.ts +12 -12
  29. package/dist/model.d.ts +21 -5
  30. package/dist/module.d.ts +0 -6
  31. package/dist/parse.d.ts +6 -3
  32. package/dist/pwc.cjs +799 -287
  33. package/dist/pwc.cjs.map +1 -1
  34. package/dist/pwc.js +799 -287
  35. package/dist/pwc.js.map +1 -1
  36. package/dist/pwc.min.js +1 -1
  37. package/dist/pwc.min.js.map +1 -1
  38. package/dist/pwc.min.mjs +1 -1
  39. package/dist/pwc.min.mjs.map +1 -1
  40. package/dist/pwc.mjs +800 -288
  41. package/dist/pwc.mjs.map +1 -1
  42. package/dist/scene.d.ts +4 -7
  43. package/dist/sky.d.ts +25 -16
  44. package/dist/vscode.html-custom-data.json +65 -45
  45. package/dist/web-types.json +585 -557
  46. package/package.json +8 -7
  47. package/src/app.ts +326 -144
  48. package/src/asset.ts +34 -28
  49. package/src/async-element.ts +34 -8
  50. package/src/components/button-component.ts +5 -9
  51. package/src/components/camera-component.ts +55 -36
  52. package/src/components/collision-component.ts +26 -15
  53. package/src/components/component.ts +58 -8
  54. package/src/components/element-component.ts +26 -30
  55. package/src/components/gsplat-component.ts +4 -9
  56. package/src/components/layoutchild-component.ts +4 -9
  57. package/src/components/layoutgroup-component.ts +14 -9
  58. package/src/components/light-component.ts +42 -12
  59. package/src/components/listener-component.ts +1 -7
  60. package/src/components/particlesystem-component.ts +7 -15
  61. package/src/components/render-component.ts +5 -10
  62. package/src/components/rigidbody-component.ts +23 -16
  63. package/src/components/screen-component.ts +46 -20
  64. package/src/components/script-component.ts +108 -46
  65. package/src/components/script.ts +38 -33
  66. package/src/components/scrollbar-component.ts +6 -16
  67. package/src/components/scrollview-component.ts +22 -15
  68. package/src/components/sound-component.ts +10 -15
  69. package/src/components/sound-slot.ts +30 -20
  70. package/src/entity.ts +75 -34
  71. package/src/index.ts +45 -1
  72. package/src/loading-bar.ts +8 -8
  73. package/src/material.ts +63 -37
  74. package/src/model.ts +69 -14
  75. package/src/module.ts +8 -7
  76. package/src/parse.ts +67 -20
  77. package/src/scene.ts +12 -9
  78. package/src/sky.ts +76 -34
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@playcanvas/web-components",
4
- "version": "0.10.1",
4
+ "version": "0.11.1",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "elements": [
9
9
  {
10
10
  "name": "pc-app",
11
- "description": "The AppElement interface provides properties and methods for manipulating\n[`<pc-app>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-app/) elements.\nThe AppElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
11
+ "description": "The AppElement interface provides properties and methods for manipulating\n[`<pc-app>`](https://developer.playcanvas.com/user-manual/web-components/tags/pc-app/) elements.\nThe AppElement interface also inherits the properties and methods of the\nHTMLElement interface.\n\n---\n\n\n### **Events:**\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>` element whose backing entity is `entity`, or `null` if the\nentity was not created by an element of this application - for example, a node inside a\nmodel's instantiated hierarchy, or an entity created through the engine API.\n- **ready(): __** - Returns a promise that resolves with this element when it's ready. This is the low-level\nprimitive underlying whenReady, which is the recommended way to wait for elements.\n\nReadiness tracks the element's current lifecycle: once a ready element is torn down (for\nexample by removing it from the document), this returns a fresh promise that resolves when\nthe element is next ready. A promise obtained earlier stays resolved — call this again\nafter re-inserting an element rather than reusing a promise from before its removal.",
12
12
  "doc-url": "",
13
13
  "attributes": [
14
14
  {
15
15
  "name": "alpha",
16
- "description": "The alpha flag.",
16
+ "description": "Whether the frame buffer has an alpha channel.",
17
17
  "value": { "type": "boolean", "default": "true" }
18
18
  },
19
19
  {
20
20
  "name": "antialias",
21
- "description": "The antialias flag.",
21
+ "description": "Whether the frame buffer is anti-aliased.",
22
22
  "value": { "type": "boolean", "default": "true" }
23
23
  },
24
24
  {
@@ -30,13 +30,8 @@
30
30
  }
31
31
  },
32
32
  {
33
- "name": "depth",
34
- "description": "The depth flag.",
35
- "value": { "type": "boolean", "default": "true" }
36
- },
37
- {
38
- "name": "high-resolution",
39
- "description": "The high resolution flag.",
33
+ "name": "depth-buffer",
34
+ "description": "Whether the frame buffer has a depth buffer.",
40
35
  "value": { "type": "boolean", "default": "true" }
41
36
  },
42
37
  {
@@ -45,8 +40,13 @@
45
40
  "value": { "type": "boolean", "default": "true" }
46
41
  },
47
42
  {
48
- "name": "stencil",
49
- "description": "The stencil flag.",
43
+ "name": "max-pixel-ratio",
44
+ "description": "The cap on the pixel ratio the application renders at.",
45
+ "value": { "type": "number", "default": "Infinity" }
46
+ },
47
+ {
48
+ "name": "stencil-buffer",
49
+ "description": "Whether the frame buffer has a stencil buffer.",
50
50
  "value": { "type": "boolean", "default": "true" }
51
51
  }
52
52
  ],
@@ -59,49 +59,58 @@
59
59
  {
60
60
  "name": "ready",
61
61
  "type": "CustomEvent",
62
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
62
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
63
63
  }
64
64
  ],
65
65
  "js": {
66
66
  "properties": [
67
+ {
68
+ "name": "alpha",
69
+ "description": "Gets whether the frame buffer has an alpha channel."
70
+ },
71
+ {
72
+ "name": "antialias",
73
+ "description": "Gets whether the frame buffer is anti-aliased."
74
+ },
67
75
  {
68
76
  "name": "app",
69
77
  "description": "The PlayCanvas application instance. `null` until the element is ready, and again once it\nhas been removed from the document — await whenReady or the element's `ready()`\npromise before accessing it.",
70
78
  "type": "AppBase | null"
71
79
  },
72
80
  {
73
- "name": "loadProgress",
74
- "description": "The asset preload progress of the application, as a fraction from 0 to 1. It is 0 until\npreloading begins (and again once the element has been removed from the document), and 1\nonce preloading has finished — including when there was nothing to preload. Read this to\ninitialize a loading UI; subsequent updates arrive via the `progress` event.",
75
- "type": "number"
81
+ "name": "backend",
82
+ "description": "Gets the graphics backend."
76
83
  },
77
- { "name": "alpha", "description": "Gets the alpha flag." },
78
84
  {
79
- "name": "antialias",
80
- "description": "Gets the antialias flag."
85
+ "name": "closestApp",
86
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
87
+ "type": "AppElement | null"
81
88
  },
82
89
  {
83
- "name": "backend",
84
- "description": "Gets the graphics backend."
90
+ "name": "closestEntity",
91
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
92
+ "type": "EntityElement | null"
85
93
  },
86
- { "name": "depth", "description": "Gets the depth flag." },
87
94
  {
88
- "name": "highResolution",
89
- "description": "Gets the high resolution flag."
95
+ "name": "depthBuffer",
96
+ "description": "Gets whether the frame buffer has a depth buffer."
90
97
  },
91
98
  {
92
99
  "name": "loadingBar",
93
100
  "description": "Gets whether the application shows its built-in loading bar while it boots and preloads\nits assets."
94
101
  },
95
- { "name": "stencil", "description": "Gets the stencil flag." },
96
102
  {
97
- "name": "closestApp",
98
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
99
- "type": "AppElement | null"
103
+ "name": "loadProgress",
104
+ "description": "The asset preload progress of the application, as a fraction from 0 to 1. It is 0 until\npreloading begins (and again once the element has been removed from the document), and 1\nonce preloading has finished — including when there was nothing to preload. Read this to\ninitialize a loading UI; subsequent updates arrive via the `progress` event.",
105
+ "type": "number"
100
106
  },
101
107
  {
102
- "name": "closestEntity",
103
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
104
- "type": "EntityElement | null"
108
+ "name": "maxPixelRatio",
109
+ "description": "Gets the cap on the pixel ratio the application renders at."
110
+ },
111
+ {
112
+ "name": "stencilBuffer",
113
+ "description": "Gets whether the frame buffer has a stencil buffer."
105
114
  }
106
115
  ],
107
116
  "events": [
@@ -113,14 +122,14 @@
113
122
  {
114
123
  "name": "ready",
115
124
  "type": "CustomEvent",
116
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
125
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
117
126
  }
118
127
  ]
119
128
  }
120
129
  },
121
130
  {
122
131
  "name": "pc-asset",
123
- "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\nApart from `lazy`, these attributes are read once when the asset is created, so changing them\nlater 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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
132
+ "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\nApart from `lazy`, these attributes are read once when the asset is created, so changing them\nlater 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.",
124
133
  "doc-url": "",
125
134
  "attributes": [
126
135
  {
@@ -183,7 +192,7 @@
183
192
  {
184
193
  "name": "ready",
185
194
  "type": "CustomEvent",
186
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
195
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
187
196
  }
188
197
  ],
189
198
  "js": {
@@ -193,10 +202,6 @@
193
202
  "description": "The asset that is loaded. Available once the element is ready — await\nwhenReady or the element's `ready()` promise before accessing it.",
194
203
  "type": "Asset | null"
195
204
  },
196
- {
197
- "name": "lazy",
198
- "description": "Gets whether the asset should be loaded lazily."
199
- },
200
205
  {
201
206
  "name": "closestApp",
202
207
  "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
@@ -206,6 +211,10 @@
206
211
  "name": "closestEntity",
207
212
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
208
213
  "type": "EntityElement | null"
214
+ },
215
+ {
216
+ "name": "lazy",
217
+ "description": "Gets whether the asset should be loaded lazily."
209
218
  }
210
219
  ],
211
220
  "events": [
@@ -222,14 +231,14 @@
222
231
  {
223
232
  "name": "ready",
224
233
  "type": "CustomEvent",
225
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
234
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
226
235
  }
227
236
  ]
228
237
  }
229
238
  },
230
239
  {
231
240
  "name": "pc-entity",
232
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
241
+ "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.",
233
242
  "doc-url": "",
234
243
  "attributes": [
235
244
  {
@@ -317,20 +326,30 @@
317
326
  {
318
327
  "name": "ready",
319
328
  "type": "CustomEvent",
320
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
329
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
321
330
  }
322
331
  ],
323
332
  "js": {
324
333
  "properties": [
325
334
  {
326
- "name": "entity",
327
- "description": "The PlayCanvas entity instance. `null` until the element is ready, and again once it has\nbeen removed from the document await whenReady or the element's `ready()`\npromise before accessing it.",
328
- "type": "Entity | null"
335
+ "name": "closestApp",
336
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
337
+ "type": "AppElement | null"
338
+ },
339
+ {
340
+ "name": "closestEntity",
341
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
342
+ "type": "EntityElement | null"
329
343
  },
330
344
  {
331
345
  "name": "enabled",
332
346
  "description": "Gets the enabled state of the entity."
333
347
  },
348
+ {
349
+ "name": "entity",
350
+ "description": "The PlayCanvas entity instance. `null` until the element is ready, and again once it has\nbeen removed from the document — await whenReady or the element's `ready()`\npromise before accessing it.",
351
+ "type": "Entity | null"
352
+ },
334
353
  { "name": "name", "description": "Gets the name of the entity." },
335
354
  {
336
355
  "name": "position",
@@ -344,17 +363,7 @@
344
363
  "name": "scale",
345
364
  "description": "Gets the scale of the entity."
346
365
  },
347
- { "name": "tags", "description": "Gets the tags of the entity." },
348
- {
349
- "name": "closestApp",
350
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
351
- "type": "AppElement | null"
352
- },
353
- {
354
- "name": "closestEntity",
355
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
356
- "type": "EntityElement | null"
357
- }
366
+ { "name": "tags", "description": "Gets the tags of the entity." }
358
367
  ],
359
368
  "events": [
360
369
  {
@@ -385,14 +394,14 @@
385
394
  {
386
395
  "name": "ready",
387
396
  "type": "CustomEvent",
388
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
397
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
389
398
  }
390
399
  ]
391
400
  }
392
401
  },
393
402
  {
394
403
  "name": "pc-material",
395
- "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 - **setMap(id: _string_, slot: _TextureSlot_)** - Points a texture slot at the resource of a `pc-asset`, waiting for the asset to load when it\nhas not already. An empty id clears the slot.",
404
+ "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.",
396
405
  "doc-url": "",
397
406
  "attributes": [
398
407
  {
@@ -822,7 +831,6 @@
822
831
  "events": [],
823
832
  "js": {
824
833
  "properties": [
825
- { "name": "material", "type": "StandardMaterial | null" },
826
834
  {
827
835
  "name": "alphaTest",
828
836
  "description": "Gets the alpha test reference value."
@@ -1021,6 +1029,11 @@
1021
1029
  "name": "heightMapUv",
1022
1030
  "description": "Gets the UV channel the height map samples."
1023
1031
  },
1032
+ {
1033
+ "name": "material",
1034
+ "description": "The material. `null` until the containing application has created it — an element present\nat startup has its material once the application is ready.",
1035
+ "type": "StandardMaterial | null"
1036
+ },
1024
1037
  {
1025
1038
  "name": "metalness",
1026
1039
  "description": "Gets how metallic the surface is."
@@ -1172,7 +1185,7 @@
1172
1185
  },
1173
1186
  {
1174
1187
  "name": "pc-model",
1175
- "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\n---\n\n\n### **Events:**\n - **ready** - Fired once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
1188
+ "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\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.",
1176
1189
  "doc-url": "",
1177
1190
  "attributes": [
1178
1191
  {
@@ -1185,7 +1198,7 @@
1185
1198
  {
1186
1199
  "name": "ready",
1187
1200
  "type": "CustomEvent",
1188
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1201
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1189
1202
  }
1190
1203
  ],
1191
1204
  "js": {
@@ -1204,13 +1217,18 @@
1204
1217
  "name": "closestEntity",
1205
1218
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1206
1219
  "type": "EntityElement | null"
1220
+ },
1221
+ {
1222
+ "name": "entity",
1223
+ "description": "The root entity of the instantiated model. `null` until the container asset has loaded\nand been instantiated, and again once the element has been removed from the document.",
1224
+ "type": "Entity | null"
1207
1225
  }
1208
1226
  ],
1209
1227
  "events": [
1210
1228
  {
1211
1229
  "name": "ready",
1212
1230
  "type": "CustomEvent",
1213
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1231
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1214
1232
  }
1215
1233
  ]
1216
1234
  }
@@ -1246,7 +1264,7 @@
1246
1264
  },
1247
1265
  {
1248
1266
  "name": "pc-scene",
1249
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
1267
+ "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.",
1250
1268
  "doc-url": "",
1251
1269
  "attributes": [
1252
1270
  {
@@ -1287,15 +1305,20 @@
1287
1305
  {
1288
1306
  "name": "ready",
1289
1307
  "type": "CustomEvent",
1290
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1308
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1291
1309
  }
1292
1310
  ],
1293
1311
  "js": {
1294
1312
  "properties": [
1295
1313
  {
1296
- "name": "scene",
1297
- "description": "The PlayCanvas scene instance. `null` until the element is ready await\nwhenReady or the element's `ready()` promise before accessing it.",
1298
- "type": "Scene | null"
1314
+ "name": "closestApp",
1315
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1316
+ "type": "AppElement | null"
1317
+ },
1318
+ {
1319
+ "name": "closestEntity",
1320
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1321
+ "type": "EntityElement | null"
1299
1322
  },
1300
1323
  {
1301
1324
  "name": "fog",
@@ -1309,41 +1332,36 @@
1309
1332
  "name": "fogDensity",
1310
1333
  "description": "Gets the fog density of the scene."
1311
1334
  },
1312
- {
1313
- "name": "fogStart",
1314
- "description": "Gets the fog start distance of the scene."
1315
- },
1316
1335
  {
1317
1336
  "name": "fogEnd",
1318
1337
  "description": "Gets the fog end distance of the scene."
1319
1338
  },
1320
1339
  {
1321
- "name": "gravity",
1322
- "description": "Gets the gravity of the scene."
1340
+ "name": "fogStart",
1341
+ "description": "Gets the fog start distance of the scene."
1323
1342
  },
1324
1343
  {
1325
- "name": "closestApp",
1326
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1327
- "type": "AppElement | null"
1344
+ "name": "gravity",
1345
+ "description": "Gets the gravity of the scene."
1328
1346
  },
1329
1347
  {
1330
- "name": "closestEntity",
1331
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1332
- "type": "EntityElement | null"
1348
+ "name": "scene",
1349
+ "description": "The PlayCanvas scene instance. `null` until the element is ready await\nwhenReady or the element's `ready()` promise before accessing it.",
1350
+ "type": "Scene | null"
1333
1351
  }
1334
1352
  ],
1335
1353
  "events": [
1336
1354
  {
1337
1355
  "name": "ready",
1338
1356
  "type": "CustomEvent",
1339
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1357
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1340
1358
  }
1341
1359
  ]
1342
1360
  }
1343
1361
  },
1344
1362
  {
1345
1363
  "name": "pc-sky",
1346
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
1364
+ "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.",
1347
1365
  "doc-url": "",
1348
1366
  "attributes": [
1349
1367
  {
@@ -1361,16 +1379,16 @@
1361
1379
  "description": "The intensity of the skybox.",
1362
1380
  "value": { "type": "number", "default": "1" }
1363
1381
  },
1364
- {
1365
- "name": "level",
1366
- "description": "The mip level of the skybox.",
1367
- "value": { "type": "number", "default": "0" }
1368
- },
1369
1382
  {
1370
1383
  "name": "lighting",
1371
1384
  "description": "Whether the skybox is used as a light source.",
1372
1385
  "value": { "type": "boolean", "default": "false" }
1373
1386
  },
1387
+ {
1388
+ "name": "mip-level",
1389
+ "description": "The mip level of the skybox.",
1390
+ "value": { "type": "number", "default": "0" }
1391
+ },
1374
1392
  {
1375
1393
  "name": "rotation",
1376
1394
  "description": "The Euler rotation of the skybox. Accepts 3 space-separated numbers.",
@@ -1394,7 +1412,7 @@
1394
1412
  {
1395
1413
  "name": "ready",
1396
1414
  "type": "CustomEvent",
1397
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1415
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1398
1416
  }
1399
1417
  ],
1400
1418
  "js": {
@@ -1408,17 +1426,27 @@
1408
1426
  "description": "Gets the center of the skybox."
1409
1427
  },
1410
1428
  {
1411
- "name": "intensity",
1412
- "description": "Gets the intensity of the skybox."
1429
+ "name": "closestApp",
1430
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1431
+ "type": "AppElement | null"
1413
1432
  },
1414
1433
  {
1415
- "name": "level",
1416
- "description": "Gets the mip level of the skybox."
1434
+ "name": "closestEntity",
1435
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1436
+ "type": "EntityElement | null"
1437
+ },
1438
+ {
1439
+ "name": "intensity",
1440
+ "description": "Gets the intensity of the skybox."
1417
1441
  },
1418
1442
  {
1419
1443
  "name": "lighting",
1420
1444
  "description": "Gets whether the skybox is used as a light source."
1421
1445
  },
1446
+ {
1447
+ "name": "mipLevel",
1448
+ "description": "Gets the mip level of the skybox."
1449
+ },
1422
1450
  {
1423
1451
  "name": "rotation",
1424
1452
  "description": "Gets the Euler rotation of the skybox."
@@ -1427,30 +1455,20 @@
1427
1455
  "name": "scale",
1428
1456
  "description": "Gets the scale of the skybox."
1429
1457
  },
1430
- { "name": "type", "description": "Gets the type of the skybox." },
1431
- {
1432
- "name": "closestApp",
1433
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1434
- "type": "AppElement | null"
1435
- },
1436
- {
1437
- "name": "closestEntity",
1438
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1439
- "type": "EntityElement | null"
1440
- }
1458
+ { "name": "type", "description": "Gets the type of the skybox." }
1441
1459
  ],
1442
1460
  "events": [
1443
1461
  {
1444
1462
  "name": "ready",
1445
1463
  "type": "CustomEvent",
1446
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1464
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1447
1465
  }
1448
1466
  ]
1449
1467
  }
1450
1468
  },
1451
1469
  {
1452
1470
  "name": "pc-button",
1453
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
1471
+ "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.",
1454
1472
  "doc-url": "",
1455
1473
  "attributes": [
1456
1474
  {
@@ -1533,48 +1551,42 @@
1533
1551
  {
1534
1552
  "name": "ready",
1535
1553
  "type": "CustomEvent",
1536
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1554
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1537
1555
  }
1538
1556
  ],
1539
1557
  "js": {
1540
1558
  "properties": [
1541
- {
1542
- "name": "component",
1543
- "description": "Gets the underlying PlayCanvas button component.",
1544
- "type": "Component | null"
1545
- },
1546
1559
  {
1547
1560
  "name": "active",
1548
1561
  "description": "Gets whether the button is active."
1549
1562
  },
1550
1563
  {
1551
- "name": "image",
1552
- "description": "Gets the reference to the `<pc-entity>` whose image element is used for visual transitions."
1553
- },
1554
- {
1555
- "name": "hitPadding",
1556
- "description": "Gets the padding used to expand the button's hit area."
1557
- },
1558
- {
1559
- "name": "transitionMode",
1560
- "description": "Gets how the button reacts to being hovered/pressed."
1564
+ "name": "closestApp",
1565
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1566
+ "type": "AppElement | null"
1561
1567
  },
1562
1568
  {
1563
- "name": "hoverTint",
1564
- "description": "Gets the hover tint color."
1569
+ "name": "closestEntity",
1570
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1571
+ "type": "EntityElement | null"
1565
1572
  },
1566
1573
  {
1567
- "name": "pressedTint",
1568
- "description": "Gets the pressed tint color."
1574
+ "name": "component",
1575
+ "description": "Gets the underlying PlayCanvas button component.",
1576
+ "type": "Component | null"
1569
1577
  },
1570
1578
  {
1571
- "name": "inactiveTint",
1572
- "description": "Gets the inactive tint color."
1579
+ "name": "enabled",
1580
+ "description": "Gets the enabled state of the component."
1573
1581
  },
1574
1582
  {
1575
1583
  "name": "fadeDuration",
1576
1584
  "description": "Gets the duration over which tint transitions are applied."
1577
1585
  },
1586
+ {
1587
+ "name": "hitPadding",
1588
+ "description": "Gets the padding used to expand the button's hit area."
1589
+ },
1578
1590
  {
1579
1591
  "name": "hoverSpriteAsset",
1580
1592
  "description": "Gets the id of the `pc-asset` sprite shown when the button is hovered."
@@ -1584,12 +1596,12 @@
1584
1596
  "description": "Gets the frame of the hover sprite to show."
1585
1597
  },
1586
1598
  {
1587
- "name": "pressedSpriteAsset",
1588
- "description": "Gets the id of the `pc-asset` sprite shown when the button is pressed."
1599
+ "name": "hoverTint",
1600
+ "description": "Gets the hover tint color."
1589
1601
  },
1590
1602
  {
1591
- "name": "pressedSpriteFrame",
1592
- "description": "Gets the frame of the pressed sprite to show."
1603
+ "name": "image",
1604
+ "description": "Gets the reference to the `<pc-entity>` whose image element is used for visual transitions."
1593
1605
  },
1594
1606
  {
1595
1607
  "name": "inactiveSpriteAsset",
@@ -1600,32 +1612,38 @@
1600
1612
  "description": "Gets the frame of the inactive sprite to show."
1601
1613
  },
1602
1614
  {
1603
- "name": "enabled",
1604
- "description": "Gets the enabled state of the component."
1615
+ "name": "inactiveTint",
1616
+ "description": "Gets the inactive tint color."
1605
1617
  },
1606
1618
  {
1607
- "name": "closestApp",
1608
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1609
- "type": "AppElement | null"
1619
+ "name": "pressedSpriteAsset",
1620
+ "description": "Gets the id of the `pc-asset` sprite shown when the button is pressed."
1610
1621
  },
1611
1622
  {
1612
- "name": "closestEntity",
1613
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1614
- "type": "EntityElement | null"
1623
+ "name": "pressedSpriteFrame",
1624
+ "description": "Gets the frame of the pressed sprite to show."
1625
+ },
1626
+ {
1627
+ "name": "pressedTint",
1628
+ "description": "Gets the pressed tint color."
1629
+ },
1630
+ {
1631
+ "name": "transitionMode",
1632
+ "description": "Gets how the button reacts to being hovered/pressed."
1615
1633
  }
1616
1634
  ],
1617
1635
  "events": [
1618
1636
  {
1619
1637
  "name": "ready",
1620
1638
  "type": "CustomEvent",
1621
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1639
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1622
1640
  }
1623
1641
  ]
1624
1642
  }
1625
1643
  },
1626
1644
  {
1627
1645
  "name": "pc-camera",
1628
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n - **startXr(type: _'immersive-ar' | 'immersive-vr'_, space: _'bounded-floor' | 'local' | 'local-floor' | 'unbounded' | 'viewer'_)** - Starts the camera in XR mode.\n- **endXr()** - Ends the camera's XR mode.\n\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.",
1646
+ "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.",
1629
1647
  "doc-url": "",
1630
1648
  "attributes": [
1631
1649
  {
@@ -1698,16 +1716,19 @@
1698
1716
  "description": "The orthographic height of the camera.",
1699
1717
  "value": { "type": "number", "default": "10" }
1700
1718
  },
1701
- {
1702
- "name": "orthographic",
1703
- "description": "The orthographic projection of the camera.",
1704
- "value": { "type": "boolean", "default": "false" }
1705
- },
1706
1719
  {
1707
1720
  "name": "priority",
1708
1721
  "description": "The priority of the camera.",
1709
1722
  "value": { "type": "number", "default": "0" }
1710
1723
  },
1724
+ {
1725
+ "name": "projection",
1726
+ "description": "The projection of the camera.",
1727
+ "value": {
1728
+ "type": "'perspective' | 'orthographic'",
1729
+ "default": "perspective"
1730
+ }
1731
+ },
1711
1732
  {
1712
1733
  "name": "rect",
1713
1734
  "description": "The rect of the camera. Accepts 4 space-separated numbers.",
@@ -1731,17 +1752,11 @@
1731
1752
  {
1732
1753
  "name": "ready",
1733
1754
  "type": "CustomEvent",
1734
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1755
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1735
1756
  }
1736
1757
  ],
1737
1758
  "js": {
1738
1759
  "properties": [
1739
- { "name": "xrAvailable" },
1740
- {
1741
- "name": "component",
1742
- "description": "Gets the underlying PlayCanvas camera component.",
1743
- "type": "Component | null"
1744
- },
1745
1760
  {
1746
1761
  "name": "clearColor",
1747
1762
  "description": "Gets the clear color of the camera.",
@@ -1762,11 +1777,30 @@
1762
1777
  "description": "Gets the clear stencil buffer of the camera.",
1763
1778
  "type": "boolean"
1764
1779
  },
1780
+ {
1781
+ "name": "closestApp",
1782
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1783
+ "type": "AppElement | null"
1784
+ },
1785
+ {
1786
+ "name": "closestEntity",
1787
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1788
+ "type": "EntityElement | null"
1789
+ },
1790
+ {
1791
+ "name": "component",
1792
+ "description": "Gets the underlying PlayCanvas camera component.",
1793
+ "type": "Component | null"
1794
+ },
1765
1795
  {
1766
1796
  "name": "cullFaces",
1767
1797
  "description": "Gets the cull faces of the camera.",
1768
1798
  "type": "boolean"
1769
1799
  },
1800
+ {
1801
+ "name": "enabled",
1802
+ "description": "Gets the enabled state of the component."
1803
+ },
1770
1804
  {
1771
1805
  "name": "farClip",
1772
1806
  "description": "Gets the far clip distance of the camera.",
@@ -1802,11 +1836,6 @@
1802
1836
  "description": "Gets the near clip distance of the camera.",
1803
1837
  "type": "number"
1804
1838
  },
1805
- {
1806
- "name": "orthographic",
1807
- "description": "Gets the orthographic projection of the camera.",
1808
- "type": "boolean"
1809
- },
1810
1839
  {
1811
1840
  "name": "orthoHeight",
1812
1841
  "description": "Gets the orthographic height of the camera."
@@ -1816,6 +1845,10 @@
1816
1845
  "description": "Gets the priority of the camera.",
1817
1846
  "type": "number"
1818
1847
  },
1848
+ {
1849
+ "name": "projection",
1850
+ "description": "Gets the projection of the camera."
1851
+ },
1819
1852
  {
1820
1853
  "name": "rect",
1821
1854
  "description": "Gets the rect of the camera.",
@@ -1831,33 +1864,20 @@
1831
1864
  "description": "Gets the tone mapping of the camera.",
1832
1865
  "type": "'none' | 'linear' | 'filmic' | 'hejl' | 'aces' | 'aces2' | 'neutral'"
1833
1866
  },
1834
- {
1835
- "name": "enabled",
1836
- "description": "Gets the enabled state of the component."
1837
- },
1838
- {
1839
- "name": "closestApp",
1840
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1841
- "type": "AppElement | null"
1842
- },
1843
- {
1844
- "name": "closestEntity",
1845
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1846
- "type": "EntityElement | null"
1847
- }
1867
+ { "name": "xrAvailable" }
1848
1868
  ],
1849
1869
  "events": [
1850
1870
  {
1851
1871
  "name": "ready",
1852
1872
  "type": "CustomEvent",
1853
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1873
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1854
1874
  }
1855
1875
  ]
1856
1876
  }
1857
1877
  },
1858
1878
  {
1859
1879
  "name": "pc-collision",
1860
- "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\n---\n\n\n### **Events:**\n - **ready** - Fired once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
1880
+ "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\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.",
1861
1881
  "doc-url": "",
1862
1882
  "attributes": [
1863
1883
  {
@@ -1902,28 +1922,13 @@
1902
1922
  {
1903
1923
  "name": "ready",
1904
1924
  "type": "CustomEvent",
1905
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1925
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1906
1926
  }
1907
1927
  ],
1908
1928
  "js": {
1909
1929
  "properties": [
1910
- {
1911
- "name": "component",
1912
- "description": "Gets the underlying PlayCanvas collision component.",
1913
- "type": "Component | null"
1914
- },
1915
1930
  { "name": "angularOffset" },
1916
1931
  { "name": "axis" },
1917
- { "name": "convexHull" },
1918
- { "name": "halfExtents" },
1919
- { "name": "height" },
1920
- { "name": "linearOffset" },
1921
- { "name": "radius" },
1922
- { "name": "type" },
1923
- {
1924
- "name": "enabled",
1925
- "description": "Gets the enabled state of the component."
1926
- },
1927
1932
  {
1928
1933
  "name": "closestApp",
1929
1934
  "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
@@ -1933,20 +1938,35 @@
1933
1938
  "name": "closestEntity",
1934
1939
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
1935
1940
  "type": "EntityElement | null"
1936
- }
1941
+ },
1942
+ {
1943
+ "name": "component",
1944
+ "description": "Gets the underlying PlayCanvas collision component.",
1945
+ "type": "Component | null"
1946
+ },
1947
+ { "name": "convexHull" },
1948
+ {
1949
+ "name": "enabled",
1950
+ "description": "Gets the enabled state of the component."
1951
+ },
1952
+ { "name": "halfExtents" },
1953
+ { "name": "height" },
1954
+ { "name": "linearOffset" },
1955
+ { "name": "radius" },
1956
+ { "name": "type" }
1937
1957
  ],
1938
1958
  "events": [
1939
1959
  {
1940
1960
  "name": "ready",
1941
1961
  "type": "CustomEvent",
1942
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
1962
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
1943
1963
  }
1944
1964
  ]
1945
1965
  }
1946
1966
  },
1947
1967
  {
1948
1968
  "name": "pc-element",
1949
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
1969
+ "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.",
1950
1970
  "doc-url": "",
1951
1971
  "attributes": [
1952
1972
  {
@@ -2092,32 +2112,54 @@
2092
2112
  {
2093
2113
  "name": "ready",
2094
2114
  "type": "CustomEvent",
2095
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2115
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2096
2116
  }
2097
2117
  ],
2098
2118
  "js": {
2099
2119
  "properties": [
2100
- {
2101
- "name": "component",
2102
- "description": "Gets the underlying PlayCanvas element component.",
2103
- "type": "Component | null"
2104
- },
2105
2120
  {
2106
2121
  "name": "anchor",
2107
2122
  "description": "Gets the anchor of the element component."
2108
2123
  },
2109
2124
  {
2110
- "name": "autoWidth",
2111
- "description": "Gets whether the element component should automatically adjust its width."
2125
+ "name": "autoFitHeight",
2126
+ "description": "Gets whether a text element automatically reduces its font size to fit its height."
2127
+ },
2128
+ {
2129
+ "name": "autoFitWidth",
2130
+ "description": "Gets whether a text element automatically reduces its font size to fit its width."
2112
2131
  },
2113
2132
  {
2114
2133
  "name": "autoHeight",
2115
2134
  "description": "Gets whether the element component should automatically adjust its height."
2116
2135
  },
2136
+ {
2137
+ "name": "autoWidth",
2138
+ "description": "Gets whether the element component should automatically adjust its width."
2139
+ },
2140
+ {
2141
+ "name": "closestApp",
2142
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2143
+ "type": "AppElement | null"
2144
+ },
2145
+ {
2146
+ "name": "closestEntity",
2147
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2148
+ "type": "EntityElement | null"
2149
+ },
2117
2150
  {
2118
2151
  "name": "color",
2119
2152
  "description": "Gets the color of the element component."
2120
2153
  },
2154
+ {
2155
+ "name": "component",
2156
+ "description": "Gets the underlying PlayCanvas element component.",
2157
+ "type": "Component | null"
2158
+ },
2159
+ {
2160
+ "name": "enabled",
2161
+ "description": "Gets the enabled state of the component."
2162
+ },
2121
2163
  {
2122
2164
  "name": "enableMarkup",
2123
2165
  "description": "Gets whether the element component should use markup."
@@ -2146,6 +2188,14 @@
2146
2188
  "name": "mask",
2147
2189
  "description": "Gets whether the element component is a mask."
2148
2190
  },
2191
+ {
2192
+ "name": "maxFontSize",
2193
+ "description": "Gets the largest font size a text element may use when auto-fitting."
2194
+ },
2195
+ {
2196
+ "name": "minFontSize",
2197
+ "description": "Gets the smallest font size a text element may use when auto-fitting."
2198
+ },
2149
2199
  {
2150
2200
  "name": "opacity",
2151
2201
  "description": "Gets the opacity of the element component."
@@ -2190,50 +2240,20 @@
2190
2240
  {
2191
2241
  "name": "wrapLines",
2192
2242
  "description": "Gets whether the element component should wrap lines."
2193
- },
2194
- {
2195
- "name": "autoFitWidth",
2196
- "description": "Gets whether a text element automatically reduces its font size to fit its width."
2197
- },
2198
- {
2199
- "name": "autoFitHeight",
2200
- "description": "Gets whether a text element automatically reduces its font size to fit its height."
2201
- },
2202
- {
2203
- "name": "minFontSize",
2204
- "description": "Gets the smallest font size a text element may use when auto-fitting."
2205
- },
2206
- {
2207
- "name": "maxFontSize",
2208
- "description": "Gets the largest font size a text element may use when auto-fitting."
2209
- },
2210
- {
2211
- "name": "enabled",
2212
- "description": "Gets the enabled state of the component."
2213
- },
2214
- {
2215
- "name": "closestApp",
2216
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2217
- "type": "AppElement | null"
2218
- },
2219
- {
2220
- "name": "closestEntity",
2221
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2222
- "type": "EntityElement | null"
2223
2243
  }
2224
2244
  ],
2225
2245
  "events": [
2226
2246
  {
2227
2247
  "name": "ready",
2228
2248
  "type": "CustomEvent",
2229
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2249
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2230
2250
  }
2231
2251
  ]
2232
2252
  }
2233
2253
  },
2234
2254
  {
2235
2255
  "name": "pc-gsplat",
2236
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
2256
+ "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.",
2237
2257
  "doc-url": "",
2238
2258
  "attributes": [
2239
2259
  {
@@ -2276,16 +2296,11 @@
2276
2296
  {
2277
2297
  "name": "ready",
2278
2298
  "type": "CustomEvent",
2279
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2299
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2280
2300
  }
2281
2301
  ],
2282
2302
  "js": {
2283
2303
  "properties": [
2284
- {
2285
- "name": "component",
2286
- "description": "Gets the underlying PlayCanvas gsplat component.",
2287
- "type": "Component | null"
2288
- },
2289
2304
  {
2290
2305
  "name": "asset",
2291
2306
  "description": "Gets the id of the `pc-asset` to use for the splat."
@@ -2295,48 +2310,53 @@
2295
2310
  "description": "Gets whether the splat casts shadows."
2296
2311
  },
2297
2312
  {
2298
- "name": "lodBaseDistance",
2299
- "description": "Gets the base distance for the first LOD transition."
2300
- },
2301
- {
2302
- "name": "lodMultiplier",
2303
- "description": "Gets the multiplier between successive LOD distance thresholds."
2313
+ "name": "closestApp",
2314
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2315
+ "type": "AppElement | null"
2304
2316
  },
2305
2317
  {
2306
- "name": "lodRangeMin",
2307
- "description": "Gets the minimum allowed LOD index."
2318
+ "name": "closestEntity",
2319
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2320
+ "type": "EntityElement | null"
2308
2321
  },
2309
2322
  {
2310
- "name": "lodRangeMax",
2311
- "description": "Gets the maximum allowed LOD index."
2323
+ "name": "component",
2324
+ "description": "Gets the underlying PlayCanvas gsplat component.",
2325
+ "type": "Component | null"
2312
2326
  },
2313
2327
  {
2314
2328
  "name": "enabled",
2315
2329
  "description": "Gets the enabled state of the component."
2316
2330
  },
2317
2331
  {
2318
- "name": "closestApp",
2319
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2320
- "type": "AppElement | null"
2332
+ "name": "lodBaseDistance",
2333
+ "description": "Gets the base distance for the first LOD transition."
2321
2334
  },
2322
2335
  {
2323
- "name": "closestEntity",
2324
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2325
- "type": "EntityElement | null"
2336
+ "name": "lodMultiplier",
2337
+ "description": "Gets the multiplier between successive LOD distance thresholds."
2338
+ },
2339
+ {
2340
+ "name": "lodRangeMax",
2341
+ "description": "Gets the maximum allowed LOD index."
2342
+ },
2343
+ {
2344
+ "name": "lodRangeMin",
2345
+ "description": "Gets the minimum allowed LOD index."
2326
2346
  }
2327
2347
  ],
2328
2348
  "events": [
2329
2349
  {
2330
2350
  "name": "ready",
2331
2351
  "type": "CustomEvent",
2332
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2352
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2333
2353
  }
2334
2354
  ]
2335
2355
  }
2336
2356
  },
2337
2357
  {
2338
2358
  "name": "pc-layoutchild",
2339
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
2359
+ "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.",
2340
2360
  "doc-url": "",
2341
2361
  "attributes": [
2342
2362
  {
@@ -2384,71 +2404,71 @@
2384
2404
  {
2385
2405
  "name": "ready",
2386
2406
  "type": "CustomEvent",
2387
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2407
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2388
2408
  }
2389
2409
  ],
2390
2410
  "js": {
2391
2411
  "properties": [
2412
+ {
2413
+ "name": "closestApp",
2414
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2415
+ "type": "AppElement | null"
2416
+ },
2417
+ {
2418
+ "name": "closestEntity",
2419
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2420
+ "type": "EntityElement | null"
2421
+ },
2392
2422
  {
2393
2423
  "name": "component",
2394
2424
  "description": "Gets the underlying PlayCanvas layout child component.",
2395
2425
  "type": "Component | null"
2396
2426
  },
2397
2427
  {
2398
- "name": "minWidth",
2399
- "description": "Gets the minimum width the element should be laid out with."
2400
- },
2401
- {
2402
- "name": "minHeight",
2403
- "description": "Gets the minimum height the element should be laid out with."
2428
+ "name": "enabled",
2429
+ "description": "Gets the enabled state of the component."
2404
2430
  },
2405
2431
  {
2406
- "name": "maxWidth",
2407
- "description": "Gets the maximum width the element should be laid out with."
2432
+ "name": "excludeFromLayout",
2433
+ "description": "Gets whether the element is excluded from the layout."
2408
2434
  },
2409
2435
  {
2410
- "name": "maxHeight",
2411
- "description": "Gets the maximum height the element should be laid out with."
2436
+ "name": "fitHeightProportion",
2437
+ "description": "Gets the proportion of the container's spare height this element should take."
2412
2438
  },
2413
2439
  {
2414
2440
  "name": "fitWidthProportion",
2415
2441
  "description": "Gets the proportion of the container's spare width this element should take."
2416
2442
  },
2417
2443
  {
2418
- "name": "fitHeightProportion",
2419
- "description": "Gets the proportion of the container's spare height this element should take."
2420
- },
2421
- {
2422
- "name": "excludeFromLayout",
2423
- "description": "Gets whether the element is excluded from the layout."
2444
+ "name": "maxHeight",
2445
+ "description": "Gets the maximum height the element should be laid out with."
2424
2446
  },
2425
2447
  {
2426
- "name": "enabled",
2427
- "description": "Gets the enabled state of the component."
2448
+ "name": "maxWidth",
2449
+ "description": "Gets the maximum width the element should be laid out with."
2428
2450
  },
2429
2451
  {
2430
- "name": "closestApp",
2431
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2432
- "type": "AppElement | null"
2452
+ "name": "minHeight",
2453
+ "description": "Gets the minimum height the element should be laid out with."
2433
2454
  },
2434
2455
  {
2435
- "name": "closestEntity",
2436
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2437
- "type": "EntityElement | null"
2456
+ "name": "minWidth",
2457
+ "description": "Gets the minimum width the element should be laid out with."
2438
2458
  }
2439
2459
  ],
2440
2460
  "events": [
2441
2461
  {
2442
2462
  "name": "ready",
2443
2463
  "type": "CustomEvent",
2444
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2464
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2445
2465
  }
2446
2466
  ]
2447
2467
  }
2448
2468
  },
2449
2469
  {
2450
2470
  "name": "pc-layoutgroup",
2451
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
2471
+ "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.",
2452
2472
  "doc-url": "",
2453
2473
  "attributes": [
2454
2474
  {
@@ -2515,20 +2535,46 @@
2515
2535
  {
2516
2536
  "name": "ready",
2517
2537
  "type": "CustomEvent",
2518
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2538
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2519
2539
  }
2520
2540
  ],
2521
2541
  "js": {
2522
2542
  "properties": [
2543
+ {
2544
+ "name": "alignment",
2545
+ "description": "Gets the alignment of the child elements."
2546
+ },
2547
+ {
2548
+ "name": "closestApp",
2549
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2550
+ "type": "AppElement | null"
2551
+ },
2552
+ {
2553
+ "name": "closestEntity",
2554
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2555
+ "type": "EntityElement | null"
2556
+ },
2523
2557
  {
2524
2558
  "name": "component",
2525
2559
  "description": "Gets the underlying PlayCanvas layout group component.",
2526
2560
  "type": "Component | null"
2527
2561
  },
2562
+ {
2563
+ "name": "enabled",
2564
+ "description": "Gets the enabled state of the component."
2565
+ },
2566
+ {
2567
+ "name": "heightFitting",
2568
+ "description": "Gets the fitting mode along the vertical axis."
2569
+ },
2528
2570
  {
2529
2571
  "name": "orientation",
2530
2572
  "description": "Gets the orientation of the layout group."
2531
2573
  },
2574
+ {
2575
+ "name": "padding",
2576
+ "description": "Gets the padding around the layout group."
2577
+ },
2532
2578
  {
2533
2579
  "name": "reverseX",
2534
2580
  "description": "Gets whether the order of children is reversed along the horizontal axis."
@@ -2537,14 +2583,6 @@
2537
2583
  "name": "reverseY",
2538
2584
  "description": "Gets whether the order of children is reversed along the vertical axis."
2539
2585
  },
2540
- {
2541
- "name": "alignment",
2542
- "description": "Gets the alignment of the child elements."
2543
- },
2544
- {
2545
- "name": "padding",
2546
- "description": "Gets the padding around the layout group."
2547
- },
2548
2586
  {
2549
2587
  "name": "spacing",
2550
2588
  "description": "Gets the spacing between child elements."
@@ -2553,41 +2591,23 @@
2553
2591
  "name": "widthFitting",
2554
2592
  "description": "Gets the fitting mode along the horizontal axis."
2555
2593
  },
2556
- {
2557
- "name": "heightFitting",
2558
- "description": "Gets the fitting mode along the vertical axis."
2559
- },
2560
2594
  {
2561
2595
  "name": "wrap",
2562
2596
  "description": "Gets whether children wrap onto a new line/column when they overflow the group."
2563
- },
2564
- {
2565
- "name": "enabled",
2566
- "description": "Gets the enabled state of the component."
2567
- },
2568
- {
2569
- "name": "closestApp",
2570
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2571
- "type": "AppElement | null"
2572
- },
2573
- {
2574
- "name": "closestEntity",
2575
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2576
- "type": "EntityElement | null"
2577
2597
  }
2578
2598
  ],
2579
2599
  "events": [
2580
2600
  {
2581
2601
  "name": "ready",
2582
2602
  "type": "CustomEvent",
2583
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2603
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2584
2604
  }
2585
2605
  ]
2586
2606
  }
2587
2607
  },
2588
2608
  {
2589
2609
  "name": "pc-light",
2590
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
2610
+ "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.",
2591
2611
  "doc-url": "",
2592
2612
  "attributes": [
2593
2613
  {
@@ -2701,23 +2721,37 @@
2701
2721
  {
2702
2722
  "name": "ready",
2703
2723
  "type": "CustomEvent",
2704
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2724
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2705
2725
  }
2706
2726
  ],
2707
2727
  "js": {
2708
2728
  "properties": [
2709
- {
2710
- "name": "component",
2711
- "description": "Gets the underlying PlayCanvas light component.",
2712
- "type": "Component | null"
2713
- },
2714
2729
  {
2715
2730
  "name": "castShadows",
2716
2731
  "description": "Gets the cast shadows flag of the light."
2717
2732
  },
2718
2733
  {
2719
- "name": "color",
2720
- "description": "Gets the color of the light."
2734
+ "name": "closestApp",
2735
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2736
+ "type": "AppElement | null"
2737
+ },
2738
+ {
2739
+ "name": "closestEntity",
2740
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2741
+ "type": "EntityElement | null"
2742
+ },
2743
+ {
2744
+ "name": "color",
2745
+ "description": "Gets the color of the light."
2746
+ },
2747
+ {
2748
+ "name": "component",
2749
+ "description": "Gets the underlying PlayCanvas light component.",
2750
+ "type": "Component | null"
2751
+ },
2752
+ {
2753
+ "name": "enabled",
2754
+ "description": "Gets the enabled state of the component."
2721
2755
  },
2722
2756
  {
2723
2757
  "name": "innerConeAngle",
@@ -2735,6 +2769,14 @@
2735
2769
  "name": "outerConeAngle",
2736
2770
  "description": "Gets the outer cone angle of the light."
2737
2771
  },
2772
+ {
2773
+ "name": "penumbraFalloff",
2774
+ "description": "Gets the penumbra falloff of the light."
2775
+ },
2776
+ {
2777
+ "name": "penumbraSize",
2778
+ "description": "Gets the penumbra size of the light."
2779
+ },
2738
2780
  {
2739
2781
  "name": "range",
2740
2782
  "description": "Gets the range of the light."
@@ -2743,6 +2785,10 @@
2743
2785
  "name": "shadowBias",
2744
2786
  "description": "Gets the shadow bias of the light."
2745
2787
  },
2788
+ {
2789
+ "name": "shadowBlockerSamples",
2790
+ "description": "Gets the number of shadow blocker samples."
2791
+ },
2746
2792
  {
2747
2793
  "name": "shadowDistance",
2748
2794
  "description": "Gets the shadow distance of the light."
@@ -2755,6 +2801,10 @@
2755
2801
  "name": "shadowResolution",
2756
2802
  "description": "Gets the shadow resolution of the light."
2757
2803
  },
2804
+ {
2805
+ "name": "shadowSamples",
2806
+ "description": "Gets the number of shadow samples."
2807
+ },
2758
2808
  {
2759
2809
  "name": "shadowType",
2760
2810
  "description": "Gets the shadow type of the light."
@@ -2767,50 +2817,20 @@
2767
2817
  {
2768
2818
  "name": "vsmBlurSize",
2769
2819
  "description": "Gets the VSM blur size of the light."
2770
- },
2771
- {
2772
- "name": "penumbraSize",
2773
- "description": "Gets the penumbra size of the light."
2774
- },
2775
- {
2776
- "name": "penumbraFalloff",
2777
- "description": "Gets the penumbra falloff of the light."
2778
- },
2779
- {
2780
- "name": "shadowSamples",
2781
- "description": "Gets the number of shadow samples."
2782
- },
2783
- {
2784
- "name": "shadowBlockerSamples",
2785
- "description": "Gets the number of shadow blocker samples."
2786
- },
2787
- {
2788
- "name": "enabled",
2789
- "description": "Gets the enabled state of the component."
2790
- },
2791
- {
2792
- "name": "closestApp",
2793
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2794
- "type": "AppElement | null"
2795
- },
2796
- {
2797
- "name": "closestEntity",
2798
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2799
- "type": "EntityElement | null"
2800
2820
  }
2801
2821
  ],
2802
2822
  "events": [
2803
2823
  {
2804
2824
  "name": "ready",
2805
2825
  "type": "CustomEvent",
2806
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2826
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2807
2827
  }
2808
2828
  ]
2809
2829
  }
2810
2830
  },
2811
2831
  {
2812
2832
  "name": "pc-listener",
2813
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
2833
+ "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.",
2814
2834
  "doc-url": "",
2815
2835
  "attributes": [
2816
2836
  {
@@ -2823,20 +2843,11 @@
2823
2843
  {
2824
2844
  "name": "ready",
2825
2845
  "type": "CustomEvent",
2826
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2846
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2827
2847
  }
2828
2848
  ],
2829
2849
  "js": {
2830
2850
  "properties": [
2831
- {
2832
- "name": "component",
2833
- "description": "Gets the underlying PlayCanvas audio listener component.",
2834
- "type": "Component | null"
2835
- },
2836
- {
2837
- "name": "enabled",
2838
- "description": "Gets the enabled state of the component."
2839
- },
2840
2851
  {
2841
2852
  "name": "closestApp",
2842
2853
  "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
@@ -2846,20 +2857,29 @@
2846
2857
  "name": "closestEntity",
2847
2858
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2848
2859
  "type": "EntityElement | null"
2860
+ },
2861
+ {
2862
+ "name": "component",
2863
+ "description": "Gets the underlying PlayCanvas audio listener component.",
2864
+ "type": "Component | null"
2865
+ },
2866
+ {
2867
+ "name": "enabled",
2868
+ "description": "Gets the enabled state of the component."
2849
2869
  }
2850
2870
  ],
2851
2871
  "events": [
2852
2872
  {
2853
2873
  "name": "ready",
2854
2874
  "type": "CustomEvent",
2855
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2875
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2856
2876
  }
2857
2877
  ]
2858
2878
  }
2859
2879
  },
2860
2880
  {
2861
2881
  "name": "pc-particles",
2862
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n - **play()** - Starts playing the particle system\n- **pause()** - Pauses the particle system\n- **reset()** - Resets the particle system\n- **stop()** - Stops the particle system\n\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.",
2882
+ "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",
2863
2883
  "doc-url": "",
2864
2884
  "attributes": [
2865
2885
  {
@@ -2877,25 +2897,16 @@
2877
2897
  {
2878
2898
  "name": "ready",
2879
2899
  "type": "CustomEvent",
2880
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2900
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2881
2901
  }
2882
2902
  ],
2883
2903
  "js": {
2884
2904
  "properties": [
2885
- {
2886
- "name": "component",
2887
- "description": "Gets the underlying PlayCanvas particle system component.",
2888
- "type": "Component | null"
2889
- },
2890
2905
  {
2891
2906
  "name": "asset",
2892
2907
  "description": "Gets the id of the `pc-asset` to use for the model.",
2893
2908
  "type": "string"
2894
2909
  },
2895
- {
2896
- "name": "enabled",
2897
- "description": "Gets the enabled state of the component."
2898
- },
2899
2910
  {
2900
2911
  "name": "closestApp",
2901
2912
  "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
@@ -2905,20 +2916,29 @@
2905
2916
  "name": "closestEntity",
2906
2917
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2907
2918
  "type": "EntityElement | null"
2919
+ },
2920
+ {
2921
+ "name": "component",
2922
+ "description": "Gets the underlying PlayCanvas particle system component.",
2923
+ "type": "Component | null"
2924
+ },
2925
+ {
2926
+ "name": "enabled",
2927
+ "description": "Gets the enabled state of the component."
2908
2928
  }
2909
2929
  ],
2910
2930
  "events": [
2911
2931
  {
2912
2932
  "name": "ready",
2913
2933
  "type": "CustomEvent",
2914
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2934
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2915
2935
  }
2916
2936
  ]
2917
2937
  }
2918
2938
  },
2919
2939
  {
2920
2940
  "name": "pc-render",
2921
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
2941
+ "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.",
2922
2942
  "doc-url": "",
2923
2943
  "attributes": [
2924
2944
  {
@@ -2954,25 +2974,34 @@
2954
2974
  {
2955
2975
  "name": "ready",
2956
2976
  "type": "CustomEvent",
2957
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
2977
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
2958
2978
  }
2959
2979
  ],
2960
2980
  "js": {
2961
2981
  "properties": [
2982
+ {
2983
+ "name": "castShadows",
2984
+ "description": "Gets the cast shadows flag of the render component.",
2985
+ "type": "boolean"
2986
+ },
2987
+ {
2988
+ "name": "closestApp",
2989
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2990
+ "type": "AppElement | null"
2991
+ },
2992
+ {
2993
+ "name": "closestEntity",
2994
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2995
+ "type": "EntityElement | null"
2996
+ },
2962
2997
  {
2963
2998
  "name": "component",
2964
2999
  "description": "Gets the underlying PlayCanvas render component.",
2965
3000
  "type": "Component | null"
2966
3001
  },
2967
3002
  {
2968
- "name": "type",
2969
- "description": "Gets the type of the render component.",
2970
- "type": "'box' | 'capsule' | 'cone' | 'cylinder' | 'plane' | 'sphere'"
2971
- },
2972
- {
2973
- "name": "castShadows",
2974
- "description": "Gets the cast shadows flag of the render component.",
2975
- "type": "boolean"
3003
+ "name": "enabled",
3004
+ "description": "Gets the enabled state of the component."
2976
3005
  },
2977
3006
  {
2978
3007
  "name": "material",
@@ -2984,32 +3013,23 @@
2984
3013
  "type": "boolean"
2985
3014
  },
2986
3015
  {
2987
- "name": "enabled",
2988
- "description": "Gets the enabled state of the component."
2989
- },
2990
- {
2991
- "name": "closestApp",
2992
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2993
- "type": "AppElement | null"
2994
- },
2995
- {
2996
- "name": "closestEntity",
2997
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
2998
- "type": "EntityElement | null"
3016
+ "name": "type",
3017
+ "description": "Gets the type of the render component.",
3018
+ "type": "'box' | 'capsule' | 'cone' | 'cylinder' | 'plane' | 'sphere'"
2999
3019
  }
3000
3020
  ],
3001
3021
  "events": [
3002
3022
  {
3003
3023
  "name": "ready",
3004
3024
  "type": "CustomEvent",
3005
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3025
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3006
3026
  }
3007
3027
  ]
3008
3028
  }
3009
3029
  },
3010
3030
  {
3011
3031
  "name": "pc-rigidbody",
3012
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3032
+ "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.",
3013
3033
  "doc-url": "",
3014
3034
  "attributes": [
3015
3035
  {
@@ -3060,29 +3080,13 @@
3060
3080
  {
3061
3081
  "name": "ready",
3062
3082
  "type": "CustomEvent",
3063
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3083
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3064
3084
  }
3065
3085
  ],
3066
3086
  "js": {
3067
3087
  "properties": [
3068
- {
3069
- "name": "component",
3070
- "description": "Gets the underlying PlayCanvas rigidbody component.",
3071
- "type": "Component | null"
3072
- },
3073
3088
  { "name": "angularDamping" },
3074
3089
  { "name": "angularFactor" },
3075
- { "name": "friction" },
3076
- { "name": "linearDamping" },
3077
- { "name": "linearFactor" },
3078
- { "name": "mass" },
3079
- { "name": "restitution" },
3080
- { "name": "rollingFriction" },
3081
- { "name": "type" },
3082
- {
3083
- "name": "enabled",
3084
- "description": "Gets the enabled state of the component."
3085
- },
3086
3090
  {
3087
3091
  "name": "closestApp",
3088
3092
  "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
@@ -3092,26 +3096,38 @@
3092
3096
  "name": "closestEntity",
3093
3097
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3094
3098
  "type": "EntityElement | null"
3095
- }
3099
+ },
3100
+ {
3101
+ "name": "component",
3102
+ "description": "Gets the underlying PlayCanvas rigidbody component.",
3103
+ "type": "Component | null"
3104
+ },
3105
+ {
3106
+ "name": "enabled",
3107
+ "description": "Gets the enabled state of the component."
3108
+ },
3109
+ { "name": "friction" },
3110
+ { "name": "linearDamping" },
3111
+ { "name": "linearFactor" },
3112
+ { "name": "mass" },
3113
+ { "name": "restitution" },
3114
+ { "name": "rollingFriction" },
3115
+ { "name": "type" }
3096
3116
  ],
3097
3117
  "events": [
3098
3118
  {
3099
3119
  "name": "ready",
3100
3120
  "type": "CustomEvent",
3101
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3121
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3102
3122
  }
3103
3123
  ]
3104
3124
  }
3105
3125
  },
3106
3126
  {
3107
3127
  "name": "pc-screen",
3108
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3128
+ "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.",
3109
3129
  "doc-url": "",
3110
3130
  "attributes": [
3111
- {
3112
- "name": "blend",
3113
- "value": { "type": "boolean", "default": "false" }
3114
- },
3115
3131
  {
3116
3132
  "name": "enabled",
3117
3133
  "description": "The enabled state of the component.",
@@ -3133,8 +3149,14 @@
3133
3149
  },
3134
3150
  {
3135
3151
  "name": "scale-blend",
3152
+ "description": "How the screen's resolutions are weighted against each other.",
3136
3153
  "value": { "type": "number", "default": "0.5" }
3137
3154
  },
3155
+ {
3156
+ "name": "scale-mode",
3157
+ "description": "How the screen scales its contents.",
3158
+ "value": { "type": "'none' | 'blend'", "default": "none" }
3159
+ },
3138
3160
  {
3139
3161
  "name": "screen-space",
3140
3162
  "value": { "type": "boolean", "default": "false" }
@@ -3144,49 +3166,55 @@
3144
3166
  {
3145
3167
  "name": "ready",
3146
3168
  "type": "CustomEvent",
3147
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3169
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3148
3170
  }
3149
3171
  ],
3150
3172
  "js": {
3151
3173
  "properties": [
3174
+ {
3175
+ "name": "closestApp",
3176
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3177
+ "type": "AppElement | null"
3178
+ },
3179
+ {
3180
+ "name": "closestEntity",
3181
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3182
+ "type": "EntityElement | null"
3183
+ },
3152
3184
  {
3153
3185
  "name": "component",
3154
3186
  "description": "Gets the underlying PlayCanvas screen component.",
3155
3187
  "type": "Component | null"
3156
3188
  },
3157
- { "name": "priority" },
3158
- { "name": "referenceResolution" },
3159
- { "name": "resolution" },
3160
- { "name": "scaleBlend" },
3161
- { "name": "blend" },
3162
- { "name": "screenSpace" },
3163
3189
  {
3164
3190
  "name": "enabled",
3165
3191
  "description": "Gets the enabled state of the component."
3166
3192
  },
3193
+ { "name": "priority" },
3194
+ { "name": "referenceResolution" },
3195
+ { "name": "resolution" },
3167
3196
  {
3168
- "name": "closestApp",
3169
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3170
- "type": "AppElement | null"
3197
+ "name": "scaleBlend",
3198
+ "description": "Gets how the screen's resolutions are weighted against each other."
3171
3199
  },
3172
3200
  {
3173
- "name": "closestEntity",
3174
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3175
- "type": "EntityElement | null"
3176
- }
3201
+ "name": "scaleMode",
3202
+ "description": "Gets how the screen scales its contents."
3203
+ },
3204
+ { "name": "screenSpace" }
3177
3205
  ],
3178
3206
  "events": [
3179
3207
  {
3180
3208
  "name": "ready",
3181
3209
  "type": "CustomEvent",
3182
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3210
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3183
3211
  }
3184
3212
  ]
3185
3213
  }
3186
3214
  },
3187
3215
  {
3188
3216
  "name": "pc-scripts",
3189
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3217
+ "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.",
3190
3218
  "doc-url": "",
3191
3219
  "attributes": [
3192
3220
  {
@@ -3199,20 +3227,11 @@
3199
3227
  {
3200
3228
  "name": "ready",
3201
3229
  "type": "CustomEvent",
3202
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3230
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3203
3231
  }
3204
3232
  ],
3205
3233
  "js": {
3206
3234
  "properties": [
3207
- {
3208
- "name": "component",
3209
- "description": "Gets the underlying PlayCanvas script component.",
3210
- "type": "Component | null"
3211
- },
3212
- {
3213
- "name": "enabled",
3214
- "description": "Gets the enabled state of the component."
3215
- },
3216
3235
  {
3217
3236
  "name": "closestApp",
3218
3237
  "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
@@ -3222,20 +3241,29 @@
3222
3241
  "name": "closestEntity",
3223
3242
  "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3224
3243
  "type": "EntityElement | null"
3244
+ },
3245
+ {
3246
+ "name": "component",
3247
+ "description": "Gets the underlying PlayCanvas script component.",
3248
+ "type": "Component | null"
3249
+ },
3250
+ {
3251
+ "name": "enabled",
3252
+ "description": "Gets the enabled state of the component."
3225
3253
  }
3226
3254
  ],
3227
3255
  "events": [
3228
3256
  {
3229
3257
  "name": "ready",
3230
3258
  "type": "CustomEvent",
3231
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3259
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3232
3260
  }
3233
3261
  ]
3234
3262
  }
3235
3263
  },
3236
3264
  {
3237
3265
  "name": "pc-script",
3238
- "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 once the element is fully initialized. 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 \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.",
3266
+ "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.",
3239
3267
  "doc-url": "",
3240
3268
  "attributes": [
3241
3269
  {
@@ -3258,7 +3286,7 @@
3258
3286
  {
3259
3287
  "name": "ready",
3260
3288
  "type": "CustomEvent",
3261
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3289
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3262
3290
  },
3263
3291
  {
3264
3292
  "name": "scriptattributeschange",
@@ -3279,9 +3307,14 @@
3279
3307
  "js": {
3280
3308
  "properties": [
3281
3309
  {
3282
- "name": "scriptAttributes",
3283
- "description": "Gets the attributes of the script.",
3284
- "type": "Record<string, any>"
3310
+ "name": "closestApp",
3311
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3312
+ "type": "AppElement | null"
3313
+ },
3314
+ {
3315
+ "name": "closestEntity",
3316
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3317
+ "type": "EntityElement | null"
3285
3318
  },
3286
3319
  {
3287
3320
  "name": "enabled",
@@ -3294,21 +3327,16 @@
3294
3327
  "type": "Script | null"
3295
3328
  },
3296
3329
  {
3297
- "name": "closestApp",
3298
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3299
- "type": "AppElement | null"
3300
- },
3301
- {
3302
- "name": "closestEntity",
3303
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3304
- "type": "EntityElement | null"
3330
+ "name": "scriptAttributes",
3331
+ "description": "Gets the attributes of the script.",
3332
+ "type": "Record<string, any>"
3305
3333
  }
3306
3334
  ],
3307
3335
  "events": [
3308
3336
  {
3309
3337
  "name": "ready",
3310
3338
  "type": "CustomEvent",
3311
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3339
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3312
3340
  },
3313
3341
  {
3314
3342
  "name": "scriptattributeschange",
@@ -3330,7 +3358,7 @@
3330
3358
  },
3331
3359
  {
3332
3360
  "name": "pc-scrollbar",
3333
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3361
+ "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.",
3334
3362
  "doc-url": "",
3335
3363
  "attributes": [
3336
3364
  {
@@ -3366,59 +3394,59 @@
3366
3394
  {
3367
3395
  "name": "ready",
3368
3396
  "type": "CustomEvent",
3369
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3397
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3370
3398
  }
3371
3399
  ],
3372
3400
  "js": {
3373
3401
  "properties": [
3374
3402
  {
3375
- "name": "component",
3376
- "description": "Gets the underlying PlayCanvas scrollbar component.",
3377
- "type": "Component | null"
3403
+ "name": "closestApp",
3404
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3405
+ "type": "AppElement | null"
3378
3406
  },
3379
3407
  {
3380
- "name": "orientation",
3381
- "description": "Gets the orientation of the scrollbar."
3408
+ "name": "closestEntity",
3409
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3410
+ "type": "EntityElement | null"
3382
3411
  },
3383
3412
  {
3384
- "name": "value",
3385
- "description": "Gets the current position value of the scrollbar."
3413
+ "name": "component",
3414
+ "description": "Gets the underlying PlayCanvas scrollbar component.",
3415
+ "type": "Component | null"
3386
3416
  },
3387
3417
  {
3388
- "name": "handleSize",
3389
- "description": "Gets the size of the handle relative to the size of the track."
3418
+ "name": "enabled",
3419
+ "description": "Gets the enabled state of the component."
3390
3420
  },
3391
3421
  {
3392
3422
  "name": "handle",
3393
3423
  "description": "Gets the reference to the `<pc-entity>` used as the scrollbar handle."
3394
3424
  },
3395
3425
  {
3396
- "name": "enabled",
3397
- "description": "Gets the enabled state of the component."
3426
+ "name": "handleSize",
3427
+ "description": "Gets the size of the handle relative to the size of the track."
3398
3428
  },
3399
3429
  {
3400
- "name": "closestApp",
3401
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3402
- "type": "AppElement | null"
3430
+ "name": "orientation",
3431
+ "description": "Gets the orientation of the scrollbar."
3403
3432
  },
3404
3433
  {
3405
- "name": "closestEntity",
3406
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3407
- "type": "EntityElement | null"
3434
+ "name": "value",
3435
+ "description": "Gets the current position value of the scrollbar."
3408
3436
  }
3409
3437
  ],
3410
3438
  "events": [
3411
3439
  {
3412
3440
  "name": "ready",
3413
3441
  "type": "CustomEvent",
3414
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3442
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3415
3443
  }
3416
3444
  ]
3417
3445
  }
3418
3446
  },
3419
3447
  {
3420
3448
  "name": "pc-scrollview",
3421
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3449
+ "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.",
3422
3450
  "doc-url": "",
3423
3451
  "attributes": [
3424
3452
  {
@@ -3443,7 +3471,7 @@
3443
3471
  },
3444
3472
  {
3445
3473
  "name": "horizontal",
3446
- "description": "Whether horizontal scrolling is enabled.",
3474
+ "description": "Whether scrolling along the horizontal axis is enabled.",
3447
3475
  "value": { "type": "boolean", "default": "true" }
3448
3476
  },
3449
3477
  {
@@ -3479,7 +3507,7 @@
3479
3507
  },
3480
3508
  {
3481
3509
  "name": "vertical",
3482
- "description": "Whether vertical scrolling is enabled.",
3510
+ "description": "Whether scrolling along the vertical axis is enabled.",
3483
3511
  "value": { "type": "boolean", "default": "true" }
3484
3512
  },
3485
3513
  {
@@ -3505,92 +3533,92 @@
3505
3533
  {
3506
3534
  "name": "ready",
3507
3535
  "type": "CustomEvent",
3508
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3536
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3509
3537
  }
3510
3538
  ],
3511
3539
  "js": {
3512
3540
  "properties": [
3513
3541
  {
3514
- "name": "component",
3515
- "description": "Gets the underlying PlayCanvas scroll view component.",
3516
- "type": "Component | null"
3542
+ "name": "bounceAmount",
3543
+ "description": "Gets the bounce amount."
3517
3544
  },
3518
3545
  {
3519
- "name": "horizontal",
3520
- "description": "Gets whether horizontal scrolling is enabled."
3546
+ "name": "closestApp",
3547
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3548
+ "type": "AppElement | null"
3521
3549
  },
3522
3550
  {
3523
- "name": "vertical",
3524
- "description": "Gets whether vertical scrolling is enabled."
3551
+ "name": "closestEntity",
3552
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3553
+ "type": "EntityElement | null"
3525
3554
  },
3526
3555
  {
3527
- "name": "scrollMode",
3528
- "description": "Gets how the scroll view behaves when the content is scrolled beyond its bounds."
3556
+ "name": "component",
3557
+ "description": "Gets the underlying PlayCanvas scroll view component.",
3558
+ "type": "Component | null"
3529
3559
  },
3530
3560
  {
3531
- "name": "bounceAmount",
3532
- "description": "Gets the bounce amount."
3561
+ "name": "content",
3562
+ "description": "Gets the reference to the `<pc-entity>` used as the content."
3563
+ },
3564
+ {
3565
+ "name": "enabled",
3566
+ "description": "Gets the enabled state of the component."
3533
3567
  },
3534
3568
  { "name": "friction", "description": "Gets the friction." },
3535
3569
  {
3536
- "name": "useMouseWheel",
3537
- "description": "Gets whether the scroll view responds to mouse wheel events."
3570
+ "name": "horizontal",
3571
+ "description": "Gets whether scrolling along the horizontal axis is enabled."
3538
3572
  },
3539
3573
  {
3540
- "name": "mouseWheelSensitivity",
3541
- "description": "Gets the mouse wheel sensitivity."
3574
+ "name": "horizontalScrollbar",
3575
+ "description": "Gets the reference to the `<pc-entity>` containing the horizontal scrollbar."
3542
3576
  },
3543
3577
  {
3544
3578
  "name": "horizontalScrollbarVisibility",
3545
3579
  "description": "Gets the visibility of the horizontal scrollbar."
3546
3580
  },
3547
3581
  {
3548
- "name": "verticalScrollbarVisibility",
3549
- "description": "Gets the visibility of the vertical scrollbar."
3582
+ "name": "mouseWheelSensitivity",
3583
+ "description": "Gets the mouse wheel sensitivity."
3550
3584
  },
3551
3585
  {
3552
- "name": "viewport",
3553
- "description": "Gets the reference to the `<pc-entity>` used as the viewport."
3586
+ "name": "scrollMode",
3587
+ "description": "Gets how the scroll view behaves when the content is scrolled beyond its bounds."
3554
3588
  },
3555
3589
  {
3556
- "name": "content",
3557
- "description": "Gets the reference to the `<pc-entity>` used as the content."
3590
+ "name": "useMouseWheel",
3591
+ "description": "Gets whether the scroll view responds to mouse wheel events."
3558
3592
  },
3559
3593
  {
3560
- "name": "horizontalScrollbar",
3561
- "description": "Gets the reference to the `<pc-entity>` containing the horizontal scrollbar."
3594
+ "name": "vertical",
3595
+ "description": "Gets whether scrolling along the vertical axis is enabled."
3562
3596
  },
3563
3597
  {
3564
3598
  "name": "verticalScrollbar",
3565
3599
  "description": "Gets the reference to the `<pc-entity>` containing the vertical scrollbar."
3566
3600
  },
3567
3601
  {
3568
- "name": "enabled",
3569
- "description": "Gets the enabled state of the component."
3570
- },
3571
- {
3572
- "name": "closestApp",
3573
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3574
- "type": "AppElement | null"
3602
+ "name": "verticalScrollbarVisibility",
3603
+ "description": "Gets the visibility of the vertical scrollbar."
3575
3604
  },
3576
3605
  {
3577
- "name": "closestEntity",
3578
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3579
- "type": "EntityElement | null"
3606
+ "name": "viewport",
3607
+ "description": "Gets the reference to the `<pc-entity>` used as the viewport."
3580
3608
  }
3581
3609
  ],
3582
3610
  "events": [
3583
3611
  {
3584
3612
  "name": "ready",
3585
3613
  "type": "CustomEvent",
3586
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3614
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3587
3615
  }
3588
3616
  ]
3589
3617
  }
3590
3618
  },
3591
3619
  {
3592
3620
  "name": "pc-sounds",
3593
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3621
+ "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.",
3594
3622
  "doc-url": "",
3595
3623
  "attributes": [
3596
3624
  {
@@ -3641,11 +3669,21 @@
3641
3669
  {
3642
3670
  "name": "ready",
3643
3671
  "type": "CustomEvent",
3644
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3672
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3645
3673
  }
3646
3674
  ],
3647
3675
  "js": {
3648
3676
  "properties": [
3677
+ {
3678
+ "name": "closestApp",
3679
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3680
+ "type": "AppElement | null"
3681
+ },
3682
+ {
3683
+ "name": "closestEntity",
3684
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3685
+ "type": "EntityElement | null"
3686
+ },
3649
3687
  {
3650
3688
  "name": "component",
3651
3689
  "description": "Gets the underlying PlayCanvas sound component.",
@@ -3656,6 +3694,10 @@
3656
3694
  "description": "Gets which algorithm to use to reduce the volume of the sound as it moves away from the listener.",
3657
3695
  "type": "'exponential' | 'inverse' | 'linear'"
3658
3696
  },
3697
+ {
3698
+ "name": "enabled",
3699
+ "description": "Gets the enabled state of the component."
3700
+ },
3659
3701
  {
3660
3702
  "name": "maxDistance",
3661
3703
  "description": "Gets the maximum distance from the listener at which audio falloff stops."
@@ -3679,34 +3721,20 @@
3679
3721
  {
3680
3722
  "name": "volume",
3681
3723
  "description": "Gets the volume of the sound."
3682
- },
3683
- {
3684
- "name": "enabled",
3685
- "description": "Gets the enabled state of the component."
3686
- },
3687
- {
3688
- "name": "closestApp",
3689
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3690
- "type": "AppElement | null"
3691
- },
3692
- {
3693
- "name": "closestEntity",
3694
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3695
- "type": "EntityElement | null"
3696
3724
  }
3697
3725
  ],
3698
3726
  "events": [
3699
3727
  {
3700
3728
  "name": "ready",
3701
3729
  "type": "CustomEvent",
3702
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3730
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3703
3731
  }
3704
3732
  ]
3705
3733
  }
3706
3734
  },
3707
3735
  {
3708
3736
  "name": "pc-sound",
3709
- "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 once the element is fully initialized. Bubbles and is composed.\n\n### **Methods:**\n \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.",
3737
+ "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.",
3710
3738
  "doc-url": "",
3711
3739
  "attributes": [
3712
3740
  {
@@ -3759,16 +3787,11 @@
3759
3787
  {
3760
3788
  "name": "ready",
3761
3789
  "type": "CustomEvent",
3762
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3790
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3763
3791
  }
3764
3792
  ],
3765
3793
  "js": {
3766
3794
  "properties": [
3767
- {
3768
- "name": "soundSlot",
3769
- "description": "The sound slot.",
3770
- "type": "SoundSlot | null"
3771
- },
3772
3795
  {
3773
3796
  "name": "asset",
3774
3797
  "description": "Gets the id of the `pc-asset` to use for the sound slot."
@@ -3777,6 +3800,16 @@
3777
3800
  "name": "autoPlay",
3778
3801
  "description": "Gets the auto play flag of the sound slot."
3779
3802
  },
3803
+ {
3804
+ "name": "closestApp",
3805
+ "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3806
+ "type": "AppElement | null"
3807
+ },
3808
+ {
3809
+ "name": "closestEntity",
3810
+ "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3811
+ "type": "EntityElement | null"
3812
+ },
3780
3813
  {
3781
3814
  "name": "duration",
3782
3815
  "description": "Gets the duration of the sound slot.",
@@ -3798,6 +3831,11 @@
3798
3831
  "name": "pitch",
3799
3832
  "description": "Gets the pitch of the sound slot."
3800
3833
  },
3834
+ {
3835
+ "name": "soundSlot",
3836
+ "description": "The sound slot.",
3837
+ "type": "SoundSlot | null"
3838
+ },
3801
3839
  {
3802
3840
  "name": "startTime",
3803
3841
  "description": "Gets the start time of the sound slot."
@@ -3805,23 +3843,13 @@
3805
3843
  {
3806
3844
  "name": "volume",
3807
3845
  "description": "Gets the volume of the sound slot."
3808
- },
3809
- {
3810
- "name": "closestApp",
3811
- "description": "The nearest ancestor `<pc-app>` element, or `null` if this element has no `<pc-app>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3812
- "type": "AppElement | null"
3813
- },
3814
- {
3815
- "name": "closestEntity",
3816
- "description": "The nearest ancestor `<pc-entity>` element, or `null` if this element has no `<pc-entity>`\nancestor. The search starts at the parent, so an element never resolves to itself.",
3817
- "type": "EntityElement | null"
3818
3846
  }
3819
3847
  ],
3820
3848
  "events": [
3821
3849
  {
3822
3850
  "name": "ready",
3823
3851
  "type": "CustomEvent",
3824
- "description": "Fired once the element is fully initialized. Bubbles and is composed."
3852
+ "description": "Fired when the element is fully initialized — once per readiness cycle, so an element that is torn down and re-initialized (for example by removing and re-inserting it) fires it again. Bubbles and is composed."
3825
3853
  }
3826
3854
  ]
3827
3855
  }