diff --git a/examples/aframe/model-repos.html b/examples/aframe/model-repos.html
index efcd011f..ce217cea 100644
--- a/examples/aframe/model-repos.html
+++ b/examples/aframe/model-repos.html
@@ -16,7 +16,7 @@
data-attribution='https://www.remix3d.com/details/G009SXJCMDL3'>
-
+
diff --git a/src/components/AltspaceComponent.js b/src/components/AltspaceComponent.js
index 6a658156..8e7a3363 100644
--- a/src/components/AltspaceComponent.js
+++ b/src/components/AltspaceComponent.js
@@ -4,10 +4,14 @@ import {AFrameComponent} from './AFrameComponent';
import {safeDeepSet} from './utilities';
/**
-* The altspace component makes A-Frame apps compatible with AltspaceVR. @aframe
+* @name module:altspace/components.altspace
+* @class
+* @extends module:altspace/components.AFrameComponent
+
+* @classdesc The altspace component makes A-Frame apps compatible with AltspaceVR.
*
* **Note**: This component can have side-effects on some default components. To be
-* safe, this component should be specified last.
+* safe, this component should be specified last. @aframe
*
* @example
*
@@ -20,10 +24,6 @@ import {safeDeepSet} from './utilities';
*
*
*
-*
-* @alias altspace
-* @memberof module:altspace/components
-* @extends module:altspace/components.AFrameComponent
*/
class AltspaceComponent extends AFrameComponent
{
diff --git a/src/components/AltspaceCursorCollider.js b/src/components/AltspaceCursorCollider.js
index 22ce043f..cf6bfa2d 100644
--- a/src/components/AltspaceCursorCollider.js
+++ b/src/components/AltspaceCursorCollider.js
@@ -5,10 +5,11 @@ import {safeDeepSet} from './utilities';
/**
-* Enable or disable cursor collision on the object. @aframe
-* @alias altspace-cursor-collider
-* @memberof module:altspace/components
+* @name module:altspace/components.altspace-cursor-collider
+* @class
* @extends module:altspace/components.AFrameComponent
+* @classdesc Enable or disable cursor collision on the object. @aframe
+* @example
*/
class AltspaceCursorCollider extends AFrameComponent
{
diff --git a/src/components/AltspaceTrackedControls.js b/src/components/AltspaceTrackedControls.js
index 4aa52dab..9515b978 100644
--- a/src/components/AltspaceTrackedControls.js
+++ b/src/components/AltspaceTrackedControls.js
@@ -3,11 +3,11 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Enables tracked control support for A-Frame applications that use the built-in
-* `tracked-controls`, `vive-controls` or `hand-controls` components. @aframe
-* @alias altspace-tracked-controls
+* @name module:altspace/components.altspace-tracked-controls
+* @class
* @extends module:altspace/components.AFrameComponent
-* @memberof module:altspace/components
+* @classdesc Enables tracked control support for A-Frame applications that use the built-in
+* `tracked-controls`, `vive-controls` or `hand-controls` components. @aframe
*/
class AltspaceTrackedControls extends AFrameComponent
{
diff --git a/src/components/CollapseModel.js b/src/components/CollapseModel.js
index 56a7bd33..5c74597a 100644
--- a/src/components/CollapseModel.js
+++ b/src/components/CollapseModel.js
@@ -1,13 +1,12 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Reaches into a model's hierarchy and directly assigns the first mesh found
+* @name module:altspace/components.collapse-model
+* @class
+* @extends module:altspace/components.AFrameComponent
+* @classdesc Reaches into a model's hierarchy and directly assigns the first mesh found
* to the containing entity. This is mostly necessary for use alongside native
* components like [n-skeleton-parent]{@link module:altspace/components.n-skeleton-parent}. @aframe
-*
-* @alias collapse-model
-* @memberof module:altspace/components
-* @extends module:altspace/components.AFrameComponent
*/
class CollapseModel extends AFrameComponent
{
diff --git a/src/components/NColliders.js b/src/components/NColliders.js
index 8651e05e..80572a49 100644
--- a/src/components/NColliders.js
+++ b/src/components/NColliders.js
@@ -3,14 +3,15 @@
import NativeComponent from './NativeComponent';
/**
-* Abstract base class for [n-sphere-collider]{@link module:altspace/components.n-sphere-collider},
+* @name module:altspace/components.n-collider
+* @class
+* @extends module:altspace/components.NativeComponent
+* @classdesc Abstract base class for [n-sphere-collider]{@link module:altspace/components.n-sphere-collider},
* [n-box-collider]{@link module:altspace/components.n-box-collider},
* [n-capsule-collider]{@link module:altspace/components.n-capsule-collider},
* and [n-mesh-collider]{@link module:altspace/components.n-mesh-collider}. You cannot use
* this class directly, but instead you should add one of those components
-* to your objects.
-* @memberof module:altspace/components
-* @extends module:altspace/components.NativeComponent
+* to your objects. @aframe
*/
class NCollider extends NativeComponent {
get schema(){
@@ -20,7 +21,7 @@ class NCollider extends NativeComponent {
* @instance
* @member {vec3} center
* @default [0, 0, 0]
- * @memberof module:altspace/components.NCollider
+ * @memberof module:altspace/components.n-collider
*/
center: { type: 'vec3' },
@@ -33,7 +34,7 @@ class NCollider extends NativeComponent {
* @instance
* @member {string} type
* @default "hologram"
- * @memberof module:altspace/components.NCollider
+ * @memberof module:altspace/components.n-collider
*/
type: { type: 'string', default: 'object' },
@@ -44,7 +45,7 @@ class NCollider extends NativeComponent {
* @instance
* @member {boolean} isTrigger
* @default false
- * @memberof module:altspace/components.NCollider
+ * @memberof module:altspace/components.n-collider
*/
isTrigger: { default: false, type: 'boolean' }
};
@@ -53,19 +54,20 @@ class NCollider extends NativeComponent {
/**
* Fired when an object enters a trigger volume, e.g. `isTrigger: true`
-* @event module:altspace/components.NCollider.triggerenter
+* @event module:altspace/components.n-collider.triggerenter
*/
/**
* Fired when an object leaves a trigger volume, e.g. `isTrigger: true`
-* @event module:altspace/components.NCollider.triggerexit
+* @event module:altspace/components.n-collider.triggerexit
*/
/**
-* A sphere-shaped collider. @aframe
-* @alias n-sphere-collider
-* @memberof module:altspace/components
-* @extends module:altspace/components.NCollider
+* @name module:altspace/components.n-sphere-collider
+* @class
+* @extends module:altspace/components.n-collider
+* @classdesc Creates a sphere-shaped collider of the given radius. Collides with
+* the cursor or avatars depending on the [type]{@link module:altspace/components.n-sphere-collider#type} property. @aframe
* @example
*/
class NSphereCollider extends NCollider {
@@ -85,10 +87,12 @@ class NSphereCollider extends NCollider {
}
/**
-* Create a box-shaped collider on this entity. @aframe
-* @alias n-box-collider
-* @memberof module:altspace/components
-* @extends module:altspace/components.NCollider
+* @name module:altspace/components.n-box-collider
+* @class
+* @extends module:altspace/components.n-collider
+* @classdesc Creates a sphere-shaped collider of the given radius. Collides with
+* the cursor or avatars depending on the [type]{@link module:altspace/components.n-box-collider#type} property. @aframe
+* @example
*/
class NBoxCollider extends NCollider {
constructor(){ super('n-box-collider'); }
@@ -107,11 +111,13 @@ class NBoxCollider extends NCollider {
}
/**
-* Create a capsule-shaped collider on this entity. Capsules
-* are a union of a cylinder and two spheres on top and bottom. @aframe
-* @alias n-capsule-collider
-* @memberof module:altspace/components
-* @extends module:altspace/components.NCollider
+* @name module:altspace/components.n-capsule-collider
+* @class
+* @extends module:altspace/components.n-collider
+* @classdesc Create a capsule-shaped collider on this entity. Capsules
+* are a union of a cylinder and two spheres on top and bottom. Collides with
+* the cursor or avatars depending on the [type]{@link module:altspace/components.n-capsule-collider#type} property. @aframe
+* @example
*/
class NCapsuleCollider extends NCollider {
constructor(){ super('n-capsule-collider'); }
@@ -149,13 +155,13 @@ class NCapsuleCollider extends NCollider {
}
/**
-* Enable collision for the entire attached mesh. This is expensive to evaluate, so should only be used on
+* @name module:altspace/components.n-mesh-collider
+* @class
+* @extends module:altspace/components.n-collider
+* @classdesc Enable collision for the entire attached mesh. This is expensive to evaluate, so should only be used on
* low-poly meshes. If using this alongside the `geometry` component, make sure that
* `geometry` comes before this component. @aframe
-* @example
-* @alias n-mesh-collider
-* @memberof module:altspace/components
-* @extends module:altspace/components.NCollider
+* @example
*/
class NMeshCollider extends NCollider {
get schema(){
@@ -164,7 +170,7 @@ class NMeshCollider extends NCollider {
/**
* Whether the collider should be convex or concave. Set this to false if you have holes
* in your mesh. Convex colliders are limited to 255 triangles. Note: concave colliders can be significantly more
- * expensive compared to convex colliders.
+ * expensive to evaluate compared to convex colliders, so should be used sparingly.
* @instance
* @member {boolean} convex
* @default true
diff --git a/src/components/NContainer.js b/src/components/NContainer.js
index 8d7ed06a..3835baf1 100644
--- a/src/components/NContainer.js
+++ b/src/components/NContainer.js
@@ -3,15 +3,14 @@
import NativeComponent from './NativeComponent';
/**
-* A container keeps a running tally of how many objects are within
+* @name module:altspace/components.n-container
+* @class
+* @extends module:altspace/components.NativeComponent
+* @classdesc A container keeps a running tally of how many objects are within
* its bounds, and adds and removes the states `container-full` and
* `container-empty` based on the current count of objects. Requires a native
* collider component set to trigger mode. @aframe
-* @alias n-container
-* @memberof module:altspace/components
-* @extends module:altspace/components.NativeComponent
-* @example
-*
+* @example
*/
class NContainer extends NativeComponent
{
diff --git a/src/components/NLayoutBrowser.js b/src/components/NLayoutBrowser.js
index 2e658395..f983cd58 100644
--- a/src/components/NLayoutBrowser.js
+++ b/src/components/NLayoutBrowser.js
@@ -3,12 +3,12 @@
import NativeComponent from './NativeComponent';
/**
-* Spawn a browser or enclosure during the "layout" phase when a space is first created or reset.
+* @name module:altspace/components.n-layout-browser
+* @class
+* @extends module:altspace/components.NativeComponent
+* @classdesc Spawn a browser or enclosure during the "layout" phase when a space is first created or reset.
* Layout browsers can only be used by apps that are set as the default app in a space.
* @aframe
-* @alias n-layout-browser
-* @memberof module:altspace/components
-* @extends module:altspace/components.NativeComponent
*/
class NLayoutBrowser extends NativeComponent
{
diff --git a/src/components/NPortal.js b/src/components/NPortal.js
index cf72eabc..d1e55898 100644
--- a/src/components/NPortal.js
+++ b/src/components/NPortal.js
@@ -3,11 +3,11 @@
import NativeComponent from './NativeComponent';
/**
-* Spawn a portal that allows you to travel to a different space or a different location in the current space.
-* @aframe
-* @alias n-portal
-* @memberof module:altspace/components
+* @name module:altspace/components.n-portal
+* @class
* @extends module:altspace/components.NativeComponent
+* @classdesc Spawn a portal that allows you to travel to a different space or a different location in the current space. @aframe
+* @example
*/
class NPortal extends NativeComponent {
constructor(){ super('n-portal'); }
diff --git a/src/components/NSmallComponents.js b/src/components/NSmallComponents.js
index cc5df7b1..efc95dee 100644
--- a/src/components/NSmallComponents.js
+++ b/src/components/NSmallComponents.js
@@ -3,10 +3,10 @@
import NativeComponent from './NativeComponent';
/**
-* Attach a given native object to this entity. @aframe
-* @alias n-object
-* @memberof module:altspace/components
+* @name module:altspace/components.n-object
+* @class
* @extends module:altspace/components.NativeComponent
+* @classdesc Attach a given native object to this entity. @aframe
* @example
*/
class NObject extends NativeComponent {
@@ -26,12 +26,12 @@ class NObject extends NativeComponent {
}
/**
-* Create an object that spawns additional copies of itself when grabbed by a user (the copies are not spawners themselves).
+* @name module:altspace/components.n-spawner
+* @class
+* @extends module:altspace/components.NativeComponent
+* @classdesc Create an object that spawns additional copies of itself when grabbed by a user (the copies are not spawners themselves).
* These copies will be physically interactive and automatically synchronized
* between users. @aframe
-* @alias n-spawner
-* @memberof module:altspace/components
-* @extends module:altspace/components.NativeComponent
* @example
*/
class NSpawner extends NativeComponent {
@@ -50,91 +50,25 @@ class NSpawner extends NativeComponent {
}
}
-/**
-* Creates dynamic 2D text on the entity. The text will wrap automatically based on the width and height provided.
-* This text will be clearer than texture-based text and more performant than geometry-based test. @aframe
-* @alias n-text
-* @memberof module:altspace/components
-* @extends module:altspace/components.NativeComponent
-*/
-class NText extends NativeComponent {
- constructor(){ super('n-text'); }
- get schema(){
- return {
- /**
- * The text to be drawn.
- * @instance
- * @member {string} text
- * @memberof module:altspace/components.n-text
- */
- text: { default: '', type: 'string' },
-
- /**
- * The height of the letters. 10pt ~= 1m
- * @instance
- * @member {int} fontSize
- * @default 10
- * @memberof module:altspace/components.n-text
- */
- fontSize: { default: 10, type: 'int' },//roughly a meter tall
-
- /**
- * The width of the text area in meters. If the
- * text is wider than this value, the overflow will be wrapped to the next line.
- * @instance
- * @member {number} width
- * @default 10
- * @memberof module:altspace/components.n-text
- */
- width: { default: 10, type: 'number' },//in meters
-
- /**
- * The height of the text area in meters. If the
- * text is taller than this value, the overflow will be cut off.
- * @instance
- * @member {number} height
- * @default 1
- * @memberof module:altspace/components.n-text
- */
- height: { default: 1, type: 'number' },//in meters
-
- /**
- * The horizontal anchor point for the text. Can be `left`, `middle`, or `right`.
- * @instance
- * @member {string} horizontalAlign
- * @default "middle"
- * @memberof module:altspace/components.n-text
- */
- horizontalAlign: { default: 'middle'},
-
- /**
- * The vertical anchor point for the text. Can be `top`, `middle`, or `bottom`.
- * @instance
- * @member {string} verticalAlign
- * @default "middle"
- * @memberof module:altspace/components.n-text
- */
- verticalAlign: { default: 'middle'}
- };
- }
-}
/**
-* Make the object's +Z always face the viewer. Currently will only directly apply
-* to main mesh or native component on the attached entity, not any children or submeshes. @aframe
-* @alias n-billboard
-* @memberof module:altspace/components
+* @name module:altspace/components.n-billboard
+* @class
* @extends module:altspace/components.NativeComponent
+* @classdesc Make the object's +Z always face the viewer. Currently will only directly apply
+* to main mesh or native component on the attached entity, not any children or submeshes. @aframe
+* @example
*/
class NBillboard extends NativeComponent {
constructor(){ super('n-billboard', false); }
}
/**
-* Parents an entity to a joint on the avatar skeleton. @aframe
-* @alias n-skeleton-parent
-* @memberof module:altspace/components
+* @name module:altspace/components.n-skeleton-parent
+* @class
* @extends module:altspace/components.NativeComponent
+* @classdesc Parents an entity to a joint on the avatar skeleton. @aframe
+* @example
*/
class NSkeletonParent extends NativeComponent {
constructor(){ super('n-skeleton-parent'); }
@@ -171,13 +105,14 @@ class NSkeletonParent extends NativeComponent {
}
/**
-* Parents an entity to the cockpit. @aframe
-* @alias n-cockpit-parent
-* @memberof module:altspace/components
+*
+* @name module:altspace/components.n-cockpit-parent
+* @class
* @extends module:altspace/components.NativeComponent
+* @classdesc Parents an entity to the cockpit. @aframe
*/
class NCockpitParent extends NativeComponent {
constructor(){ super('n-cockpit-parent', false); }
}
-export {NObject, NSpawner, NText, NBillboard, NSkeletonParent, NCockpitParent};
+export {NObject, NSpawner, NBillboard, NSkeletonParent, NCockpitParent};
diff --git a/src/components/NSound.js b/src/components/NSound.js
index 4a4ffd6c..0c8b335a 100644
--- a/src/components/NSound.js
+++ b/src/components/NSound.js
@@ -4,11 +4,12 @@ import 'es6-string-polyfills';
import NativeComponent from './NativeComponent';
/**
-* Play a sound from a particular location. Limiting sound duration to 5 seconds
-* or less is recommended to prevent hitching when the sound loads. @aframe
-* @alias n-sound
-* @memberof module:altspace/components
+* @name module:altspace/components.n-sound
+* @class
* @extends module:altspace/components.NativeComponent
+* @classdesc Play a sound from a particular location. Limiting sound duration to 5 seconds
+* or less is recommended to prevent hitching when the sound loads. @aframe
+* @example
*/
class NSound extends NativeComponent
{
@@ -173,29 +174,21 @@ class NSound extends NativeComponent
/**
* Stop the playing sound, and preserve position in clip.
+ * @fires module:altspace/components.n-sound#sound-paused
*/
pauseSound() {
this.callComponent('pause');
- /**
- * Emitted when the sound stops playing
- * @event sound-paused
- * @memberof module:altspace/components.NSound
- */
this.el.emit('sound-paused');
}
/**
* Start the sound playing.
+ * @fires module:altspace/components.n-sound#sound-played
*/
playSound() {
this.callComponent('play');
- /**
- * Emitted when the sound starts playing
- * @event sound-played
- * @memberof module:altspace/components.NSound
- */
this.el.emit('sound-played');
}
@@ -208,10 +201,19 @@ class NSound extends NativeComponent
}
}
+/**
+* Emitted when the sound stops playing
+* @event module:altspace/components.n-sound#sound-paused
+*/
+
+/**
+* Emitted when the sound starts playing
+* @event module:altspace/components.n-sound#sound-played
+*/
+
/**
* Fired when a sound has loaded and is ready to be played
-* @event n-sound-loaded
-* @memberof module:altspace/components.NSound
+* @event module:altspace/components.n-sound#n-sound-loaded
*/
export default NSound;
diff --git a/src/components/NText.js b/src/components/NText.js
new file mode 100644
index 00000000..a79e9d0c
--- /dev/null
+++ b/src/components/NText.js
@@ -0,0 +1,73 @@
+import NativeComponent from './NativeComponent';
+
+/**
+* @name module:altspace/components.n-text
+* @class
+* @extends module:altspace/components.NativeComponent
+* @classdesc Creates dynamic 2D text on the entity. The text will wrap automatically based on the width and height provided.
+* This text will be clearer than texture-based text and more performant than geometry-based test. @aframe
+* @example
+*/
+class NText extends NativeComponent {
+ constructor(){ super('n-text'); }
+ get schema(){
+ return {
+ /**
+ * The text to be drawn.
+ * @instance
+ * @member {string} text
+ * @memberof module:altspace/components.n-text
+ */
+ text: { default: '', type: 'string' },
+
+ /**
+ * The height of the letters. 10pt ~= 1m
+ * @instance
+ * @member {int} fontSize
+ * @default 10
+ * @memberof module:altspace/components.n-text
+ */
+ fontSize: { default: 10, type: 'int' },//roughly a meter tall
+
+ /**
+ * The width of the text area in meters. If the
+ * text is wider than this value, the overflow will be wrapped to the next line.
+ * @instance
+ * @member {number} width
+ * @default 10
+ * @memberof module:altspace/components.n-text
+ */
+ width: { default: 10, type: 'number' },//in meters
+
+ /**
+ * The height of the text area in meters. If the
+ * text is taller than this value, the overflow will be cut off.
+ * @instance
+ * @member {number} height
+ * @default 1
+ * @memberof module:altspace/components.n-text
+ */
+ height: { default: 1, type: 'number' },//in meters
+
+ /**
+ * The horizontal anchor point for the text. Can be `left`, `middle`, or `right`.
+ * @instance
+ * @member {string} horizontalAlign
+ * @default "middle"
+ * @memberof module:altspace/components.n-text
+ */
+ horizontalAlign: { default: 'middle'},
+
+ /**
+ * The vertical anchor point for the text. Can be `top`, `middle`, or `bottom`.
+ * @instance
+ * @member {string} verticalAlign
+ * @default "middle"
+ * @memberof module:altspace/components.n-text
+ */
+ verticalAlign: { default: 'middle'}
+ };
+ }
+}
+
+export default NText;
\ No newline at end of file
diff --git a/src/components/README.md b/src/components/README.md
index 602a8018..9d5147db 100644
--- a/src/components/README.md
+++ b/src/components/README.md
@@ -4,14 +4,14 @@
When it comes to building something quick in AltspaceVR, it’s hard to beat [A-Frame](https://aframe.io/). It has a simple HTML-based syntax, so anyone acquainted with web development will pick it up in no time. On the other hand, if you don’t know what an HTML tag is, or how to add an image to a page, you should go through MDN’s terrific [Introduction to HTML](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Introduction) before you continue.
-The world is full of web developers, so if you consider yourself one of them, and feel comfortable experimenting on your own, you should jump right in with the [A-Frame Documentation](https://aframe.io/docs/0.3.0/introduction/). You just need to add the `altspace` component to your `` tag. Keep in mind though that development in AltspaceVR has a few [caveats](../).
+The world is full of web developers, so if you consider yourself one of them, and feel comfortable experimenting on your own, you should jump right in with the [A-Frame Documentation](https://aframe.io/docs/0.7.0/introduction/). You just need to add the `altspace` component to your `` tag. Keep in mind though that development in AltspaceVR has a few [caveats](../).
In either case, you should join the [AltspaceVR SDK Slack channel](https://altspacevrsdk.slack.com/) ([register here](https://altspacevr-slackin.herokuapp.com/))! We love to see what you’re working on, and are always happy to answer questions. In addition, there are special activities available only for developers that may be better for apps. Just request developer status on Slack, and we’ll hook you up!
## Resources
* [Three.js API Documentation](../js/)
-* [A-Frame Overview](https://aframe.io/docs/0.3.0/introduction/)
+* [A-Frame Overview](https://aframe.io/docs/0.7.0/introduction/)
* [Building Your First A-Frame App](https://developer.altvr.com/building-altspacevr-apps-with-a-frame/)
* [Examples](../../examples/)
@@ -34,9 +34,9 @@ AFRAME.registerComponent('color-cycle', {
var self = this;
self.el.object3D.addEventListener('cursorup', function(){
var rgb = [
- Math.floor(Math.random()*256),
- Math.floor(Math.random()*256),
- Math.floor(Math.random()*256)
+ Math.floor(Math.random()*255),
+ Math.floor(Math.random()*255),
+ Math.floor(Math.random()*255)
];
self.el.setAttribute('color', 'rgb('+rgb.join(',')+')');
});
diff --git a/src/components/SyncColor.js b/src/components/SyncColor.js
index 3d0d650c..312a6028 100644
--- a/src/components/SyncColor.js
+++ b/src/components/SyncColor.js
@@ -3,12 +3,13 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Sync the color property of the object between clients.
+* @name module:altspace/components.sync-color
+* @class
+* @extends module:altspace/components.AFrameComponent
+* @classdesc Sync the color property of the object between clients.
* Requires both a [sync-system]{@link module:altspace/components.sync-system} component on the `a-scene`, and a
* [sync]{@link module:altspace/components.sync} component on the target entity. @aframe
-* @alias sync-color
-* @memberof module:altspace/components
-* @extends module:altspace/components.AFrameComponent
+* @example
*/
class SyncColor extends AFrameComponent
diff --git a/src/components/index.js b/src/components/index.js
index 9eb260a2..d4de7617 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -4,7 +4,7 @@
* this SDK provides a set of components to add AltspaceVR compatibility and additional
* functionality to the toolset. At a minimum, A-Frame apps will need the [altspace]{@link module:altspace/components.altspace}
* component on the `` tag to function as an AltspaceVR app.
-* @module altspace/components
+* @module module:altspace/components
* @example
*
*
@@ -37,13 +37,14 @@ import OnePerUser from './one-per-user';
import Instantiator from './instantiator';
import {
- NObject, NSpawner, NText, NBillboard, NSkeletonParent, NCockpitParent
+ NObject, NSpawner, NBillboard, NSkeletonParent, NCockpitParent
} from './NSmallComponents';
import {NSphereCollider, NBoxCollider, NCapsuleCollider, NMeshCollider} from './NColliders';
import NContainer from './NContainer';
import NPortal from './NPortal';
import NSound from './NSound';
import NLayoutBrowser from './NLayoutBrowser';
+import NText from './NText';
import CollapseModel from './CollapseModel';
import Visible from './visible';
diff --git a/src/components/instantiator.js b/src/components/instantiator.js
index a57b407a..af51b00b 100755
--- a/src/components/instantiator.js
+++ b/src/components/instantiator.js
@@ -3,11 +3,14 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Instantiates objects on an event trigger, adds them to the scene and syncs their creation across clients.
-* The instantiated objects are built using the specified mixins. @aframe
-* @alias instantiator
-* @memberof module:altspace/components
+* @name module:altspace/components.instantiator
+* @class
* @extends module:altspace/components.AFrameComponent
+* @classdesc Instantiates objects on an event trigger, adds them to the scene and syncs their creation across clients.
+* The instantiated objects are built using the specified mixins. @aframe
+* @example
+*
+*
*/
class Instantiator extends AFrameComponent
{
diff --git a/src/components/one-per-user.js b/src/components/one-per-user.js
index 94466dfc..e13ef12e 100755
--- a/src/components/one-per-user.js
+++ b/src/components/one-per-user.js
@@ -3,10 +3,12 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Instantiates an entity for each user using [sync-system]{@link sync.sync-system}. @aframe
-* @alias one-per-user
-* @memberof module:altspace/components
+* @name module:altspace/components.one-per-user
+* @class
* @extends module:altspace/components.AFrameComponent
+* @classdesc Instantiates an entity for each user using [sync-system]{@link module:altspace/components.sync-system}. @aframe
+* @example
+*
*/
class OnePerUser extends AFrameComponent
{
diff --git a/src/components/sync-n-skeleton-parent.js b/src/components/sync-n-skeleton-parent.js
index dc5dfefe..8cb2bf1b 100755
--- a/src/components/sync-n-skeleton-parent.js
+++ b/src/components/sync-n-skeleton-parent.js
@@ -3,10 +3,13 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Syncs the attributes of an n-skeleton-parent component across clients @aframe
-* @alias sync-n-skeleton-parent
-* @memberof module:altspace/components
+* @name module:altspace/components.sync-n-skeleton-parent
+* @class
* @extends module:altspace/components.AFrameComponent
+* @classdesc Syncs the attributes of an [n-skeleton-parent]{@link module:altspace/components.n-skeleton-parent} component across clients.
+* Requires the [sync]{@link module:altspace/components.sync} component be present
+* on the entity. @aframe
+* @example
*/
class SyncNSkeletonParent extends AFrameComponent
diff --git a/src/components/sync-n-sound.js b/src/components/sync-n-sound.js
index 47566816..1e52a416 100644
--- a/src/components/sync-n-sound.js
+++ b/src/components/sync-n-sound.js
@@ -3,12 +3,12 @@
import {AFrameComponent} from './AFrameComponent';
/**
-* Synchronize the playback state of an [n-sound]{@link module:altspace/components.n-sound} component between clients.
+* @name module:altspace/components.sync-n-sound
+* @class
+* @extends module:altspace/components.AFrameComponent
+* @classdesc Synchronize the playback state of an [n-sound]{@link module:altspace/components.n-sound} component between clients.
* Requires both a [sync-system]{@link module:altspace/components.sync-system} component on the `a-scene`, and a
* [sync]{@link module:altspace/components.sync} component on the target entity. @aframe
-* @alias sync-n-sound
-* @extends module:altspace/components.AFrameComponent
-* @memberof module:altspace/components
*/
class SyncNSound extends AFrameComponent
{
diff --git a/src/components/sync-transform.js b/src/components/sync-transform.js
index 3516b9e8..76e6dc78 100644
--- a/src/components/sync-transform.js
+++ b/src/components/sync-transform.js
@@ -46,12 +46,12 @@ function throttle(func, wait, options) {
/**
-* Synchronize the position, rotation, and scale of this object with all clients.
+* @name module:altspace/components.sync-transform
+* @class
+* @extends module:altspace/components.AFrameComponent
+* @classdesc Synchronize the position, rotation, and scale of this object with all clients.
* Requires both a [sync-system]{@link module:altspace/components.sync-system} component on the `a-scene`, and a
* [sync]{@link module:altspace/components.sync} component on the target entity. @aframe
-* @alias sync-transform
-* @memberof module:altspace/components
-* @extends module:altspace/components.AFrameComponent
* @example
*
*