Index: src/webapp/api/extensions/time/scripts/timeline-view.js
===================================================================
--- src/webapp/api/extensions/time/scripts/timeline-view.js	(revision 2068)
+++ src/webapp/api/extensions/time/scripts/timeline-view.js	(working copy)
@@ -35,9 +35,11 @@
     "topBandHeight":           { type: "int",        defaultValue: 75 },
     "topBandUnit":             { type: "enum",       choices: Exhibit.TimelineView._intervalChoices },
     "topBandPixelsPerUnit":    { type: "int",        defaultValue: 200 },
+    "topBandMultiple":         { type: "int",        defaultValue: 1 }, //NPM ENHANCEMENT: ex:topBandMultiple
     "bottomBandHeight":        { type: "int",        defaultValue: 25 },
     "bottomBandUnit":          { type: "enum",       choices: Exhibit.TimelineView._intervalChoices },
     "bottomBandPixelsPerUnit": { type: "int",        defaultValue: 200 },
+    "bottomBandMultiple":      { type: "int",        defaultValue: 1 }, //NPM ENHANCEMENT: ex:bottomBandMultiple
     "timelineHeight":          { type: "int",        defaultValue: 400 },
     "timelineConstructor":     { type: "function",   defaultValue: null },
     "colorCoder":              { type: "text",       defaultValue: null },
@@ -229,6 +231,7 @@
         var theme = Timeline.ClassicTheme.create();
         theme.event.bubble.width = this._uiContext.getSetting("bubbleWidth");
         theme.event.bubble.height = this._uiContext.getSetting("bubbleHeight");
+        theme.event.bubble.orientation = this._uiContext.getSetting("bubbleOrientation"); //NPM ENHANCEMENT: ex:bubbleOrientation
         
         var topIntervalUnit, bottomIntervalUnit;
         if (settings.topBandUnit != null || settings.bottomBandUnit != null) {
@@ -287,6 +290,7 @@
                 width:          settings.topBandHeight + "%", 
                 intervalUnit:   topIntervalUnit, 
                 intervalPixels: settings.topBandPixelsPerUnit,
+                multiple:       settings.topBandMultiple,     //NPM ENHANCEMENT: ex:topBandMultiple
                 eventSource:    this._eventSource,
                 //date:           earliest,
                 theme:          theme
@@ -295,6 +299,7 @@
                 width:          settings.bottomBandHeight + "%", 
                 intervalUnit:   bottomIntervalUnit, 
                 intervalPixels: settings.bottomBandPixelsPerUnit,
+                multiple:       settings.bottomBandMultiple, //NPM ENHANCEMENT: ex:bottomBandMultiple
                 eventSource:    this._eventSource,
                 //date:           earliest,
                 overview:       true,
Index: src/webapp/api/scripts/ui/ui.js
===================================================================
--- src/webapp/api/scripts/ui/ui.js	(revision 2068)
+++ src/webapp/api/scripts/ui/ui.js	(working copy)
@@ -422,12 +422,13 @@
     }
 
     uiContext.getLensRegistry().createLens(itemID, itemLensDiv, uiContext, lensOpts);
-    
     SimileAjax.Graphics.createBubbleForContentAndPoint(
         itemLensDiv, 
         opts.coords.x,
         opts.coords.y, 
-        uiContext.getSetting("bubbleWidth")
+        uiContext.getSetting("bubbleWidth"),       //param contentWidth
+        uiContext.getSetting("bubbleOrientation"), //NPM ENHANCEMENT: param orientation: a string ("top", "bottom", "left", or "right")
+        uiContext.getSetting("bubbleHeight")       //NPM BUGFIX: param maxHeight: an int
     );
 };
 
@@ -620,4 +621,4 @@
         }
     }
     return parent.find('*').add(parent).filter(f);
-}
\ No newline at end of file
+}
Index: src/webapp/api/scripts/ui/ui-context.js
===================================================================
--- src/webapp/api/scripts/ui/ui-context.js	(revision 2068)
+++ src/webapp/api/scripts/ui/ui-context.js	(working copy)
@@ -168,8 +168,9 @@
 };
 
 Exhibit.UIContext._settingSpecs = {
-    "bubbleWidth":      { type: "int" },
-    "bubbleHeight":     { type: "int" }
+    "bubbleWidth":        { type: "int" },
+    "bubbleHeight":       { type: "int" },
+    "bubbleOrientation":  { type: "text"} //NPM ENHANCEMENT: ex:bubbleOrientation "top","left","right" or "bottom"
 };
 
 Exhibit.UIContext._configure = function(context, configuration, ignoreLenses) {
