← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~jcsackett/launchpad/kill-lazr-3 into lp:launchpad

 

j.c.sackett has proposed merging lp:~jcsackett/launchpad/kill-lazr-3 into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1035298 in Launchpad itself: "lazr namespace in js modules should be removed"
  https://bugs.launchpad.net/launchpad/+bug/1035298

For more details, see:
https://code.launchpad.net/~jcsackett/launchpad/kill-lazr-3/+merge/123648

Summary
=======
This is the last branch in removing lazr namespaces from our javascript tree.
A bunch of modules have been renamed, following the pattern s/lazr/lp.ui/

There are still lazr references in the javascript--these refer to CSS classes
I didn't want to tackle yet (the diff is big enough).

Note on reviewing: this is all almost find/replace, so though the diff looks
enormous, it's not actually terrible.

Preimp
======
Spoke with Rick Harding.

Implementation
==============
Wherever possible, lazr has been transferred to lp.ui. This occurs in
namespaces and module names.

Tests
=====
bin/test -vvc --layer=YUI

QA
==
Pickers, overlays, and effects are the big things changed in this; make sure
they all work.

Information type transitions need to be looked at as well.

LoC
===
The diff claims lines were added. This is just from lp.ui being a charcter
longer than lazr, and therefore in a few places require statements had to be
wrapped as the line was now 79 instead of 78 characters long.

Lint
====

Checking for conflicts and issues in changed files.

Linting changed files:
  lib/lp/app/javascript/formoverlay/formoverlay.js
  lib/lp/app/javascript/inlineedit/tests/test_inline_edit.js
  lib/lp/code/javascript/branchmergeproposal.status.js
  lib/lp/code/javascript/branch.information_type_choice.js
  lib/lp/bugs/javascript/filebug.js
  lib/lp/app/javascript/confirmationoverlay/confirmationoverlay.js
  lib/lp/app/javascript/choice.js
  lib/lp/app/javascript/inlinehelp/inlinehelp.js
  lib/lp/bugs/javascript/filebug_dupefinder.js
  lib/lp/registry/javascript/sharing/granteetable.js
  lib/lp/registry/javascript/tests/test_milestone_creation_failures.js
  lib/lp/app/javascript/expander.js
  lib/lp/bugs/javascript/bug_notification_level.js
  lib/lp/app/javascript/overlay/tests/test_overlay.js
  lib/lp/app/javascript/information_type.js
  lib/lp/app/widgets/templates/license.pt
  lib/lp/bugs/javascript/subscription.js
  lib/lp/translations/javascript/importqueue.js
  lib/lp/app/javascript/inlineedit/editor.js
  lib/lp/registry/templates/product-new.pt
  lib/lp/app/javascript/autocomplete/tests/test_autocomplete.js
  lib/lp/app/javascript/activator/tests/test_activator.js
  lib/lp/app/javascript/autocomplete/autocomplete.js
  lib/lp/app/javascript/client.js
  lib/lp/bugs/javascript/bugtracker_overlay.js
  lib/lp/bugs/javascript/tests/test_subscription.js
  lib/lp/code/javascript/branchmergeproposal.diff.js
  lib/lp/app/javascript/multicheckbox.js
  lib/lp/app/javascript/picker/picker_patcher.js
  lib/lp/registry/javascript/milestoneoverlay.js
  lib/lp/app/javascript/activator/activator.js
  lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js
  lib/lp/app/templates/text-line-editor.pt
  lib/lp/registry/javascript/distroseries/differences.js
  lib/lp/bugs/javascript/bug_subscription_portlet.js
  lib/lp/bugs/javascript/bugtask_index.js
  lib/lp/app/javascript/formoverlay/tests/test_formoverlay.js
  lib/lp/code/javascript/branchmergeproposal.reviewcomment.js
  lib/lp/app/javascript/choiceedit/choiceedit.js
  lib/lp/app/javascript/errors.js
  lib/lp/code/javascript/requestbuild_overlay.js
  lib/lp/registry/javascript/distroseriesdifferences_details.js
  lib/lp/code/javascript/branch.subscription.js
  lib/lp/registry/javascript/tests/test_structural_subscription.js
  lib/lp/app/templates/text-area-editor.pt
  lib/lp/app/javascript/picker/picker.js
  lib/lp/translations/javascript/sourcepackage_sharing_details.js
  lib/lp/app/javascript/tests/test_multicheckboxwidget.js
  lib/lp/bugs/javascript/bug_tags_entry.js
  lib/lp/app/javascript/overlay/overlay.js
  lib/lp/registry/javascript/structural-subscription.js
  lib/lp/bugs/javascript/bug_picker.js
  lib/lp/app/javascript/choiceedit/tests/test_choiceedit.js
  lib/lp/bugs/javascript/tests/test_bug_notification_level.js
  lib/lp/bugs/javascript/buglisting_utils.js
  lib/lp/code/templates/branch-index.pt
  lib/lp/bugs/javascript/official_bug_tags.js
  lib/lp/app/javascript/effects/effects.js
-- 
https://code.launchpad.net/~jcsackett/launchpad/kill-lazr-3/+merge/123648
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~jcsackett/launchpad/kill-lazr-3 into lp:launchpad.
=== modified file 'lib/lp/app/javascript/activator/activator.js'
--- lib/lp/app/javascript/activator/activator.js	2012-08-23 19:56:15 +0000
+++ lib/lp/app/javascript/activator/activator.js	2012-09-10 21:46:20 +0000
@@ -1,6 +1,6 @@
 /* Copyright (c) 2009, Canonical Ltd. All rights reserved. */
 
-YUI.add('lazr.activator', function(Y) {
+YUI.add('lp.ui.activator', function(Y) {
 
 var ACTIVATOR     = 'activator',
 
@@ -276,8 +276,8 @@
 
 Y.lp.ui.disableTabIndex(Activator);
 
-Y.namespace('lazr.activator');
-Y.lazr.activator.Activator = Activator;
+Y.namespace('lp.ui.activator');
+Y.lp.ui.activator.Activator = Activator;
 
 
 }, "0.1", {"skinnable": true,

=== modified file 'lib/lp/app/javascript/activator/tests/test_activator.js'
--- lib/lp/app/javascript/activator/tests/test_activator.js	2012-04-06 17:28:25 +0000
+++ lib/lp/app/javascript/activator/tests/test_activator.js	2012-09-10 21:46:20 +0000
@@ -56,7 +56,7 @@
             '<div class="yui3-activator-message-box yui3-activator-hidden">' +
             '</div>' +
             '</div>'));
-        this.activator = new Y.lazr.activator.Activator(
+        this.activator = new Y.lp.ui.activator.Activator(
             {contentBox: Y.one('#example-1')});
         this.action_button = this.activator.get('contentBox').one(
             '.yui3-activator-act');
@@ -68,8 +68,8 @@
     },
 
     test_library_exists: function () {
-        Y.Assert.isObject(Y.lazr.activator,
-            "Could not locate the lazr.activator module");
+        Y.Assert.isObject(Y.lp.ui.activator,
+            "Could not locate the lp.ui.activator module");
     },
 
     test_correct_animation_node: function() {
@@ -79,7 +79,7 @@
                     this.activator.animation_node);
         // Now check a custom one.
         var custom_node = Y.one('#custom-animation-node');
-        this.activator = new Y.lazr.activator.Activator(
+        this.activator = new Y.lp.ui.activator.Activator(
             {contentBox: Y.one('#example-1'), animationNode: custom_node});
         Assert.areEqual(custom_node, this.activator.animation_node);
     },
@@ -274,6 +274,6 @@
 
 
 }, '0.1', {
-    'requires': ['test', 'console', 'node', 'lazr.activator', 'event',
+    'requires': ['test', 'console', 'node', 'lp.ui.activator', 'event',
         'event-simulate']
 });

=== modified file 'lib/lp/app/javascript/autocomplete/autocomplete.js'
--- lib/lp/app/javascript/autocomplete/autocomplete.js	2012-07-20 19:39:48 +0000
+++ lib/lp/app/javascript/autocomplete/autocomplete.js	2012-09-10 21:46:20 +0000
@@ -1,15 +1,15 @@
 /* Copyright (c) 2009, Canonical Ltd. All rights reserved. */
 
-YUI.add('lazr.autocomplete', function(Y) {
+YUI.add('lp.ui.autocomplete', function(Y) {
 
 /**
  * A simple autocomplete widget.
  *
- * @module lazr.autocomplete
- * @namespace lazr
+ * @module lp.ui.autocomplete
+ * @namespace lp.ui.autocomplete
  */
 
-Y.namespace('lazr');
+Y.namespace('lp.ui.autocomplete');
 
 
 var AUTOCOMP     = 'autocomplete',
@@ -656,7 +656,7 @@
         }
 
         // We need to calculate the input area's caret position.
-        Y.augment(node, Y.lazr.NodeCaretPos);
+        Y.augment(node, Y.lp.ui.NodeCaretPos);
         return node;
     },
 
@@ -748,7 +748,7 @@
 });
 
 
-Y.lazr.AutoComplete = AutoComplete;
+Y.lp.ui.AutoComplete = AutoComplete;
 
 
 /**
@@ -758,7 +758,7 @@
  * @class NodeCaretPos
  */
 
-Y.lazr.NodeCaretPos = function() {};
+Y.lp.ui.NodeCaretPos = function() {};
 
 /**
  * Return the offset of the caret in a text field.
@@ -768,7 +768,7 @@
  * @return {NUM} The distance from the start of the field to the caret, or
  *     null if the position couldn't be calculated.
  */
-Y.lazr.NodeCaretPos.prototype.getCaretPos = function() {
+Y.lp.ui.NodeCaretPos.prototype.getCaretPos = function() {
     var elem = Y.Node.getDOMNode(this);
     if (elem.selectionEnd) {
         return elem.selectionEnd;

=== modified file 'lib/lp/app/javascript/autocomplete/tests/test_autocomplete.js'
--- lib/lp/app/javascript/autocomplete/tests/test_autocomplete.js	2012-07-20 19:39:48 +0000
+++ lib/lp/app/javascript/autocomplete/tests/test_autocomplete.js	2012-09-10 21:46:20 +0000
@@ -48,12 +48,12 @@
         },
 
         test_library_exists: function () {
-            Y.Assert.isObject(Y.lazr.AutoComplete,
-                "Could not locate the lazr.autocomplete module");
+            Y.Assert.isObject(Y.lp.ui.AutoComplete,
+                "Could not locate the lp.ui.autocomplete module");
         },
 
         test_widget_starts_hidden: function() {
-            var autocomp = new Y.lazr.AutoComplete({ input: this.input });
+            var autocomp = new Y.lp.ui.AutoComplete({ input: this.input });
             autocomp.render();
             Assert.isFalse(
                 autocomp.get('visible'),
@@ -67,7 +67,7 @@
 
         setUp: function() {
             this.input = make_input();
-            this.autocomp = new Y.lazr.AutoComplete({
+            this.autocomp = new Y.lp.ui.AutoComplete({
                 input: this.input
             });
         },
@@ -228,7 +228,7 @@
         name:'test result text marking method',
 
         test_match_at_beginning_should_be_marked: function() {
-            var autocomp    = new Y.lazr.AutoComplete();
+            var autocomp    = new Y.lp.ui.AutoComplete();
             var marked_text = autocomp.markMatchingText('aabb', 'aa', 0);
 
             Assert.areEqual(
@@ -239,7 +239,7 @@
         },
 
         test_match_in_middle_should_be_marked: function() {
-            var autocomp    = new Y.lazr.AutoComplete();
+            var autocomp    = new Y.lp.ui.AutoComplete();
             var marked_text = autocomp.markMatchingText('baab', 'aa', 1);
 
             Assert.areEqual(
@@ -250,7 +250,7 @@
         },
 
         test_match_at_end_should_be_marked: function() {
-            var autocomp    = new Y.lazr.AutoComplete();
+            var autocomp    = new Y.lp.ui.AutoComplete();
             var marked_text = autocomp.markMatchingText('bbaa', 'aa', 2);
 
             Assert.areEqual(
@@ -267,7 +267,7 @@
         name:'test query parsing',
 
         setUp: function() {
-            this.autocomplete = new Y.lazr.AutoComplete({
+            this.autocomplete = new Y.lp.ui.AutoComplete({
                 delimiter: ' '
             });
         },
@@ -339,7 +339,7 @@
         },
 
         test_no_matches_returns_an_empty_array: function() {
-            var autocomplete = new Y.lazr.AutoComplete({
+            var autocomplete = new Y.lp.ui.AutoComplete({
                 data: ['ccc']
             });
 
@@ -349,7 +349,7 @@
         },
 
         test_match_last_item: function() {
-            var autocomplete = new Y.lazr.AutoComplete({
+            var autocomplete = new Y.lp.ui.AutoComplete({
                 data: [
                     'ccc',
                     'bbb',
@@ -368,7 +368,7 @@
 
         test_match_ordering: function() {
             // Matches, in reverse order.
-            var autocomplete = new Y.lazr.AutoComplete({
+            var autocomplete = new Y.lp.ui.AutoComplete({
                 data: [
                     'bbaa',
                     'baab',
@@ -388,7 +388,7 @@
         },
 
         test_mixed_case_text_matches: function() {
-            var autocomplete = new Y.lazr.AutoComplete({
+            var autocomplete = new Y.lp.ui.AutoComplete({
                 data: ['aBc']
             });
 
@@ -403,7 +403,7 @@
 
         test_mixed_case_matches_come_in_stable_order: function() {
             // Data with the mixed-case coming first in order.
-            var autocomplete = new Y.lazr.AutoComplete({
+            var autocomplete = new Y.lp.ui.AutoComplete({
                 data: ['aBc', 'aaa', 'abc']
             });
 
@@ -425,7 +425,7 @@
 
         setUp: function() {
             this.input = make_input();
-            this.autocomp = new Y.lazr.AutoComplete({
+            this.autocomp = new Y.lp.ui.AutoComplete({
                 input: this.input
             });
             this.autocomp.render();
@@ -570,5 +570,5 @@
 
 }, '0.1', {
     'requires': ['test', 'console', 'lp.autocomplete', 'node', 'event',
-        'event-simulate', 'lazr.autocomplete']
+        'event-simulate', 'lp.ui.autocomplete']
 });

=== modified file 'lib/lp/app/javascript/choice.js'
--- lib/lp/app/javascript/choice.js	2012-07-07 14:00:30 +0000
+++ lib/lp/app/javascript/choice.js	2012-09-10 21:46:20 +0000
@@ -192,5 +192,5 @@
         legacy_node, field_name, choices, cfg, get_fn, set_fn);
 };
 
-}, "0.1", {"requires": ["lazr.choiceedit", "lp.client.plugins",
+}, "0.1", {"requires": ["lp.ui.choiceedit", "lp.client.plugins",
     "node-event-simulate"]});

=== modified file 'lib/lp/app/javascript/choiceedit/choiceedit.js'
--- lib/lp/app/javascript/choiceedit/choiceedit.js	2012-09-06 01:38:50 +0000
+++ lib/lp/app/javascript/choiceedit/choiceedit.js	2012-09-10 21:46:20 +0000
@@ -1,6 +1,6 @@
 /* Copyright (c) 2008, Canonical Ltd. All rights reserved. */
 
-YUI.add('lazr.choiceedit', function(Y) {
+YUI.add('lp.ui.choiceedit', function(Y) {
 
 /**
  * This class provides the ability to allow a specific field to be
@@ -8,7 +8,7 @@
  *
  * This can be thought of as a rather pretty Ajax-enhanced dropdown menu.
  *
- * @module lazr.choiceedit
+ * @module lp.ui.choiceedit
  */
 
 var CHOICESOURCE       = 'ichoicesource',
@@ -439,7 +439,7 @@
 
 
 
-Y.extend(ChoiceList, Y.lazr.PrettyOverlay, {
+Y.extend(ChoiceList, Y.lp.ui.overlay.PrettyOverlay, {
     initializer: function(cfg) {
         /**
          * Fires when the user selects an item
@@ -735,6 +735,6 @@
     "skinnable": true,
     "requires": [
         "oop", "event", "event-delegate", "node", "widget", "widget-position",
-        "widget-stdmod", "overlay", "lazr.overlay", "lp.anim"]
+        "widget-stdmod", "overlay", "lp.ui.overlay", "lp.anim"]
 });
 

=== modified file 'lib/lp/app/javascript/choiceedit/tests/test_choiceedit.js'
--- lib/lp/app/javascript/choiceedit/tests/test_choiceedit.js	2012-08-14 18:19:28 +0000
+++ lib/lp/app/javascript/choiceedit/tests/test_choiceedit.js	2012-09-10 21:46:20 +0000
@@ -64,7 +64,7 @@
 
         test_library_exists: function () {
             Y.Assert.isObject(Y.ChoiceSource,
-                "Could not locate the lazr.choiceedit " +
+                "Could not locate the lp.ui.choiceedit " +
                 "module");
         },
 

=== modified file 'lib/lp/app/javascript/client.js'
--- lib/lp/app/javascript/client.js	2012-07-24 16:17:28 +0000
+++ lib/lp/app/javascript/client.js	2012-09-10 21:46:20 +0000
@@ -1255,5 +1255,5 @@
         }
     });
 }, "0.1", {
-    requires: ["base", "plugin", "dump", "lazr.editor", "lp.client"]
+    requires: ["base", "plugin", "dump", "lp.client"]
 });

=== modified file 'lib/lp/app/javascript/confirmationoverlay/confirmationoverlay.js'
--- lib/lp/app/javascript/confirmationoverlay/confirmationoverlay.js	2012-08-30 02:40:04 +0000
+++ lib/lp/app/javascript/confirmationoverlay/confirmationoverlay.js	2012-09-10 21:46:20 +0000
@@ -16,7 +16,7 @@
 var NAME = 'lp-app-confirmationoverlay';
 
 /**
- * The ConfirmationOverlay class builds on the lazr.FormOverlay
+ * The ConfirmationOverlay class builds on the lp.ui.FormOverlay
  * class.  It 'wraps' itself around a button so that a confirmation
  * pop-up is displayed when the button is clicked to let the user
  * a chance to cancel the form submission.  Note that the button
@@ -142,7 +142,7 @@
     }
 };
 
-Y.extend(ConfirmationOverlay, Y.lazr.FormOverlay, {
+Y.extend(ConfirmationOverlay, Y.lp.ui.FormOverlay, {
 
     initializer: function(cfg) {
         var submit_button = Y.Node.create(
@@ -288,4 +288,4 @@
 var namespace = Y.namespace('lp.app.confirmationoverlay');
 namespace.ConfirmationOverlay = ConfirmationOverlay;
 
-}, "0.1", {"skinnable": true, "requires": ["lazr.formoverlay"]});
+}, "0.1", {"skinnable": true, "requires": ["lp.ui.formoverlay"]});

=== modified file 'lib/lp/app/javascript/effects/effects.js'
--- lib/lp/app/javascript/effects/effects.js	2011-07-07 16:29:08 +0000
+++ lib/lp/app/javascript/effects/effects.js	2012-09-10 21:46:20 +0000
@@ -15,16 +15,16 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-YUI.add('lazr.effects', function(Y) {
+YUI.add('lp.ui.effects', function(Y) {
 
 /**
  * Visual effects built on top of the YUI Animation library.
  *
- * @module lazr.effects
- * @namespace lazr.effects
+ * @module lp.ui.effects
+ * @namespace lp.ui.effects
  */
 
-var namespace = Y.namespace('lazr.effects');
+var namespace = Y.namespace('lp.ui.effects');
 
 var OPENED = 'lazr-opened';
 var CLOSED = 'lazr-closed';

=== modified file 'lib/lp/app/javascript/errors.js'
--- lib/lp/app/javascript/errors.js	2011-08-09 14:18:02 +0000
+++ lib/lp/app/javascript/errors.js	2012-09-10 21:46:20 +0000
@@ -31,7 +31,7 @@
     if (error_overlay === undefined ||
         !Y.Lang.isValue(error_overlay.get('boundingBox').get('parentNode'))) {
         // ...make one and set it up.
-        error_overlay = new Y.lazr.FormOverlay({
+        error_overlay = new Y.lp.ui.FormOverlay({
             headerContent: '<h2>Error</h2>',
             form_header:  '',
             form_content:  '',
@@ -91,7 +91,7 @@
 */
 namespace.display_info = function(msg) {
     if (info_overlay === undefined) {
-        info_overlay = new Y.lazr.PrettyOverlay({
+        info_overlay = new Y.lp.ui.overlay.PrettyOverlay({
             centered: true,
             visible: false
         });
@@ -112,4 +112,4 @@
     info_overlay.show();
 };
 
-}, "0.1", {"requires":["lazr.formoverlay", "lazr.overlay", "lp.anim"]});
+}, "0.1", {"requires":["lp.ui.formoverlay", "lp.ui.overlay", "lp.anim"]});

=== modified file 'lib/lp/app/javascript/expander.js'
--- lib/lp/app/javascript/expander.js	2012-07-07 14:00:30 +0000
+++ lib/lp/app/javascript/expander.js	2012-09-10 21:46:20 +0000
@@ -162,7 +162,7 @@
     }
 
     if (this.config.no_animation !== true) {
-        this._animation = Y.lazr.effects.reversible_slide_out(
+        this._animation = Y.lp.ui.effects.reversible_slide_out(
             this._animate_node);
     } else {
         this._animation = undefined;
@@ -420,5 +420,5 @@
 namespace.createByCSS = createByCSS;
 
 }, "0.1", {
-    "requires": ["array-extras", "base", "event", "node", "lazr.effects"]
+    "requires": ["array-extras", "base", "event", "node", "lp.ui.effects"]
 });

=== modified file 'lib/lp/app/javascript/formoverlay/formoverlay.js'
--- lib/lp/app/javascript/formoverlay/formoverlay.js	2012-07-31 06:14:21 +0000
+++ lib/lp/app/javascript/formoverlay/formoverlay.js	2012-09-10 21:46:20 +0000
@@ -5,15 +5,16 @@
  * (lib/lp/app/javascript/overlay)
  */
 
-YUI.add('lazr.formoverlay', function(Y) {
+YUI.add('lp.ui.formoverlay', function(Y) {
 
 /**
- * Display a functioning form in a lazr.overlay.
+ * Display a functioning form in a lp.ui.overlay.
  *
- * @module lazr.formoverlay
+ * @module lp.ui.formoverlay
  */
 
 
+var ns = Y.namespace("lp.ui");
 var getCN = Y.ClassNameManager.getClassName,
     NAME = 'lazr-formoverlay',
     CONTENT_BOX  = 'contentBox',
@@ -21,11 +22,11 @@
     BINDUI = "bindUI";
 
    /**
-    * The FormOverlay class builds on the lazr.PrettyOverlay class
+    * The FormOverlay class builds on the lp.ui.overlay.PrettyOverlay class
     * to display form content and extract form data for the callsite.
     *
     * @class FormOverlay
-    * @namespace lazr
+    * @namespace lp.ui
     */
 function FormOverlay(config) {
     FormOverlay.superclass.constructor.apply(this, arguments);
@@ -231,7 +232,7 @@
 };
 
 
-Y.extend(FormOverlay, Y.lazr.PrettyOverlay, {
+Y.extend(FormOverlay, Y.lp.ui.overlay.PrettyOverlay, {
 
     initializer: function() {
         // This function is intentionally blank as it's not defined by
@@ -569,6 +570,6 @@
     }
 });
 
-Y.lazr.FormOverlay = FormOverlay;
+ns.FormOverlay = FormOverlay;
 
-}, "0.1", {"skinnable": true, "requires": ["lazr.overlay"]});
+}, "0.1", {"skinnable": true, "requires": ["lp.ui.overlay"]});

=== modified file 'lib/lp/app/javascript/formoverlay/tests/test_formoverlay.js'
--- lib/lp/app/javascript/formoverlay/tests/test_formoverlay.js	2012-04-06 17:28:25 +0000
+++ lib/lp/app/javascript/formoverlay/tests/test_formoverlay.js	2012-09-10 21:46:20 +0000
@@ -30,7 +30,7 @@
 
     /* Helper function that creates a new form overlay instance. */
     function make_form_overlay(cfg) {
-        var form_overlay = new Y.lazr.FormOverlay(cfg);
+        var form_overlay = new Y.lp.ui.FormOverlay(cfg);
         form_overlay.render();
         return form_overlay;
     }
@@ -61,14 +61,14 @@
         },
 
         test_library_exists: function () {
-            Y.Assert.isObject(Y.lazr.FormOverlay,
-                "Could not locate the lp.lazr.FormOverlay module");
+            Y.Assert.isObject(Y.lp.ui.FormOverlay,
+                "Could not locate the lp.ui.FormOverlay module");
         },
 
         test_form_overlay_can_be_instantiated: function() {
-            var overlay = new Y.lazr.FormOverlay();
+            var overlay = new Y.lp.ui.FormOverlay();
             Assert.isInstanceOf(
-                Y.lazr.FormOverlay,
+                Y.lp.ui.FormOverlay,
                 overlay,
                 "Form overlay could not be instantiated.");
             cleanup_form_overlay(overlay);
@@ -137,7 +137,7 @@
             // in the form instead of the default one.
             var submit_button = Y.Node.create(
                 '<input type="submit" value="Hit me!" />');
-            var form_overlay = new Y.lazr.FormOverlay({
+            var form_overlay = new Y.lp.ui.FormOverlay({
                 form_content: 'Here is an input: ' +
                               '<input type="text" name="field1" id="field1" />',
                 form_submit_button: submit_button
@@ -166,7 +166,7 @@
             // in the form instead of the default one.
             var cancel_button = Y.Node.create(
                 '<button type="" value="cancel" />');
-            var form_overlay = new Y.lazr.FormOverlay({
+            var form_overlay = new Y.lp.ui.FormOverlay({
                 form_content: 'Here is an input: ' +
                               '<input type="text" name="field1" id="field1" />',
                 form_cancel_button: cancel_button
@@ -545,5 +545,5 @@
 
 
 }, '0.1', {'requires': ['test', 'console', 'lp.formoverlay',  'dump',
-    'node', 'lazr.formoverlay', 'event', 'event-simulate',
+    'node', 'lp.ui.formoverlay', 'event', 'event-simulate',
     'lp.testing.mockio']});

=== modified file 'lib/lp/app/javascript/information_type.js'
--- lib/lp/app/javascript/information_type.js	2012-08-31 14:35:33 +0000
+++ lib/lp/app/javascript/information_type.js	2012-09-10 21:46:20 +0000
@@ -269,5 +269,5 @@
 };
 
 }, "0.1", {"requires": ["base", "oop", "node", "event", "io-base",
-                        "lazr.choiceedit", "lp.bugs.bugtask_index",
+                        "lp.ui.choiceedit", "lp.bugs.bugtask_index",
                         "lp.app.banner.privacy", "lp.app.choice"]});

=== modified file 'lib/lp/app/javascript/inlineedit/editor.js'
--- lib/lp/app/javascript/inlineedit/editor.js	2012-08-23 18:58:50 +0000
+++ lib/lp/app/javascript/inlineedit/editor.js	2012-09-10 21:46:20 +0000
@@ -1,11 +1,11 @@
 /* Copyright (c) 2009, Canonical Ltd. All rights reserved. */
 
-YUI.add('lazr.editor', function(Y) {
+YUI.add('lp.ui.editor', function(Y) {
 
 /**
  * Edit any on-screen text in-place.
  *
- * @module lazr.editor
+ * @module lp.ui.editor
  */
 
 /**

=== modified file 'lib/lp/app/javascript/inlineedit/tests/test_inline_edit.js'
--- lib/lp/app/javascript/inlineedit/tests/test_inline_edit.js	2012-08-13 06:18:27 +0000
+++ lib/lp/app/javascript/inlineedit/tests/test_inline_edit.js	2012-09-10 21:46:20 +0000
@@ -1119,7 +1119,7 @@
         }
     }));
 
-}, '0.1', {'requires': ['test', 'console', 'lazr.editor', 'node',
+}, '0.1', {'requires': ['test', 'console', 'lp.ui.editor', 'node',
     'lp.app.formwidgets.resizing_textarea', 'lp.app.ellipsis',
     'event', 'event-simulate', 'plugin']
 });

=== modified file 'lib/lp/app/javascript/inlinehelp/inlinehelp.js'
--- lib/lp/app/javascript/inlinehelp/inlinehelp.js	2012-01-19 04:50:47 +0000
+++ lib/lp/app/javascript/inlinehelp/inlinehelp.js	2012-09-10 21:46:20 +0000
@@ -66,7 +66,7 @@
 
     module.InlineHelpOverlay = Y.Base.create(
         'inlinehelp-overlay',
-        Y.lazr.PrettyOverlay,
+        Y.lp.ui.overlay.PrettyOverlay,
         [],
         {
             /**
@@ -129,4 +129,4 @@
         }
     );
 
-}, "0.1", { "requires": ['lazr.overlay', 'io'] });
+}, "0.1", { "requires": ['lp.ui.overlay', 'io'] });

=== modified file 'lib/lp/app/javascript/multicheckbox.js'
--- lib/lp/app/javascript/multicheckbox.js	2012-08-30 02:40:04 +0000
+++ lib/lp/app/javascript/multicheckbox.js	2012-09-10 21:46:20 +0000
@@ -32,7 +32,7 @@
     var content_box = Y.one('#'+content_box_id);
     var result_node = Y.one('#'+content_box_id+'-items');
     var widget_node = Y.one('#'+attribute_name);
-    var activator = new Y.lazr.activator.Activator(
+    var activator = new Y.lp.ui.activator.Activator(
         {contentBox: content_box, animationNode: widget_node});
 
     var failure_handler = function (id, response, args) {
@@ -77,7 +77,7 @@
 /**
   * Creates a multicheckbox widget that has already been rendered and hidden.
   *
-  * @requires dom, lazr.activator, lazr.overlay
+  * @requires dom, lp.ui.activator, lp.ui.overlay
   * @method create
   * @param {String} attribute_name The attribute on the resource being
   *                                modified.
@@ -166,7 +166,7 @@
             '<button type="button">Cancel</button>'),
         form_submit_callback: save_callback
         });
-    var editform = new Y.lazr.FormOverlay(new_config);
+    var editform = new Y.lp.ui.FormOverlay(new_config);
     editform.render();
     return editform;
 };
@@ -202,5 +202,5 @@
 }
 
 }, "0.1", {"requires": [
-    "dom", "escape", "lazr.formoverlay", "lazr.activator", "lp.client"
+    "dom", "escape", "lp.ui.formoverlay", "lp.ui.activator", "lp.client"
     ]});

=== modified file 'lib/lp/app/javascript/overlay/overlay.js'
--- lib/lp/app/javascript/overlay/overlay.js	2012-07-30 23:36:26 +0000
+++ lib/lp/app/javascript/overlay/overlay.js	2012-09-10 21:46:20 +0000
@@ -1,13 +1,15 @@
 /* Copyright (c) 2009, Canonical Ltd. All rights reserved. */
 
-YUI.add('lazr.overlay', function(Y) {
+YUI.add('lp.ui.overlay', function(Y) {
 
 /**
- * LAZR-specific overlay implementation.
+ * LP overlay implementation.
  *
- * @module lazr.overlay
+ * @module lp.ui.overlay
  */
 
+var ns = Y.namespace('lp.ui.overlay');
+
 var ESCAPE = 27,
     TAB = 9,
     CANCEL = 'cancel',
@@ -31,7 +33,6 @@
     * bindUI method in order to get the event handlers attached.
     *
     * @class PrettyOverlay
-    * @namespace lazr
     */
     var PrettyOverlay;
     PrettyOverlay = function(cfg) {
@@ -396,9 +397,7 @@
         '</div>',
         '</div>'].join('');
 
-    Y.namespace('lazr');
-
-    Y.lazr.PrettyOverlay = PrettyOverlay;
+    ns.PrettyOverlay = PrettyOverlay;
 
 }, "0.1", {"skinnable": true, "requires": [
     "oop", "overlay", "event", "widget", "widget-stack", "widget-position"]});

=== modified file 'lib/lp/app/javascript/overlay/tests/test_overlay.js'
--- lib/lp/app/javascript/overlay/tests/test_overlay.js	2012-06-30 17:54:21 +0000
+++ lib/lp/app/javascript/overlay/tests/test_overlay.js	2012-09-10 21:46:20 +0000
@@ -47,8 +47,8 @@
         },
 
         test_library_exists: function () {
-            Y.Assert.isObject(Y.lazr.PrettyOverlay,
-                "Could not locate the lazr.PrettyOverlay module");
+            Y.Assert.isObject(Y.lp.ui.overlay.PrettyOverlay,
+                "Could not locate the lp.ui.overlay module");
         },
 
         hitEscape: function() {
@@ -58,15 +58,15 @@
         },
 
         test_picker_can_be_instantiated: function() {
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             Assert.isInstanceOf(
-                Y.lazr.PrettyOverlay,
+                Y.lp.ui.overlay.PrettyOverlay,
                 this.overlay,
                 "Overlay not instantiated.");
         },
 
         test_overlay_has_elements: function() {
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             this.overlay.render();
             var bb = this.overlay.get('boundingBox');
             Assert.isNotNull(
@@ -78,7 +78,7 @@
         },
 
         test_overlay_can_show_progressbar: function() {
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 'headerContent': 'bu bu bu'
             });
             var bb = this.overlay.get('boundingBox');
@@ -89,7 +89,7 @@
         },
 
         test_overlay_can_hide_progressbar: function() {
-            this.overlay = new Y.lazr.PrettyOverlay({progressbar: false});
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({progressbar: false});
             this.overlay.render();
             var bb = this.overlay.get('boundingBox');
             bb.set('headerContent', 'ALL HAIL DISCORDIA!');
@@ -99,7 +99,7 @@
         },
 
         test_overlay_can_show_steptitle: function() {
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 'headerContent': 'Fnord',
                 'steptitle': 'No wife, no horse and no moustache'});
             var bb = this.overlay.get('boundingBox');
@@ -110,7 +110,7 @@
         },
 
         test_overlay_can_hide_steptitle: function() {
-            this.overlay = new Y.lazr.PrettyOverlay({progressbar: false});
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({progressbar: false});
             this.overlay.render();
             var bb = this.overlay.get('boundingBox');
             bb.set('headerContent', 'ALL HAIL DISCORDIA!');
@@ -121,7 +121,7 @@
 
         test_click_cancel_hides_the_widget: function() {
             /* Test that clicking the cancel button hides the widget. */
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             this.overlay.render();
 
             simulate(this.overlay.get('boundingBox'),
@@ -131,7 +131,7 @@
         },
 
         test_click_cancel_fires_cancel_event: function() {
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             this.overlay.render();
 
             var event_was_fired = false;
@@ -145,7 +145,7 @@
 
         test_stroke_escape_hides_the_widget: function() {
             /* Test that stroking the escape button hides the widget. */
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             this.overlay.render();
 
             Assert.isTrue(this.overlay.get('visible'),
@@ -156,7 +156,7 @@
         },
 
         test_stroke_escape_fires_cancel_event: function() {
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             this.overlay.render();
 
             var event_was_fired = false;
@@ -171,7 +171,7 @@
             /* Test that hiding the overlay and showing it again
              * preserves the event handlers.
              */
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             this.overlay.render();
 
             this.hitEscape();
@@ -186,15 +186,15 @@
         },
 
         test_pretty_overlay_without_header: function() {
-            this.overlay = new Y.lazr.PrettyOverlay();
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay();
             function PrettyOverlaySubclass(config) {
                 PrettyOverlaySubclass.superclass.constructor.apply(
                     this,
                     arguments
                 );
             }
-            PrettyOverlaySubclass.NAME = 'lazr-overlaysubclass';
-            Y.extend(PrettyOverlaySubclass, Y.lazr.PrettyOverlay);
+            PrettyOverlaySubclass.NAME = 'lp-ui-overlaysubclass';
+            Y.extend(PrettyOverlaySubclass, Y.lp.ui.overlay.PrettyOverlay);
 
             var overlay = new PrettyOverlaySubclass({bodyContent: "Hi"});
             // This shouldn't raise an error if the header content is not
@@ -217,7 +217,7 @@
 
         test_set_progress: function() {
             // test that the progress bar is settable
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 'headerContent': 'Fnord',
                 'steptitle': 'No wife, no horse and no moustache'});
             this.overlay.render();
@@ -233,7 +233,7 @@
         test_getTabNodes_types: function() {
             // Tabbable nodes include <a>, <button>, <input>, <select>.
             // Remember that the 0 button is the close button in the header.
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 headerContent: 'Fnord',
                 bodyContent: [
                     '<div>',
@@ -253,7 +253,7 @@
         test_getTabNodes_visibility: function() {
             // Hidden nodes are exluded because tab ignores them.
             // Remember that the 0 button is the close button in the header.
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 headerContent: 'Fnord',
                 bodyContent: [
                     '<div>',
@@ -271,7 +271,7 @@
         test_handleTab_last_to_first: function() {
             // Tabbing from the last navigatable node moves focus to the first.
             // Remember that the 0 button is the close button in the header.
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 headerContent: 'Fnord',
                 bodyContent: '<div><a href="#">1</a> <a href="#">2</a></div>'
             });
@@ -293,7 +293,7 @@
             // Shift+Tab from the first navigatable node moves focus
             // to the last.
             // Remember that the 0 button is the close button in the header.
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 headerContent: 'Fnord',
                 bodyContent: '<div><a href="#">1</a> <a href="#">2</a></div>'
             });
@@ -316,7 +316,7 @@
             // Tab from one element to another that is not beyond the
             // first or last element does nothing special.
             // Remember that the 0 button is the close button in the header.
-            this.overlay = new Y.lazr.PrettyOverlay({
+            this.overlay = new Y.lp.ui.overlay.PrettyOverlay({
                 headerContent: 'Fnord',
                 bodyContent: '<div><a href="#">1</a> <a href="#">2</a></div>'
             });
@@ -336,6 +336,6 @@
     }));
 
 }, '0.1', {
-    'requires': ['test', 'console', 'lazr.overlay', 'node', 'event',
+    'requires': ['test', 'console', 'lp.ui.overlay', 'node', 'event',
         'event-simulate', 'widget-stack']
 });

=== modified file 'lib/lp/app/javascript/picker/picker.js'
--- lib/lp/app/javascript/picker/picker.js	2012-08-27 20:13:49 +0000
+++ lib/lp/app/javascript/picker/picker.js	2012-09-10 21:46:20 +0000
@@ -18,7 +18,7 @@
  * A picker is a pop-up widget containing a search field and displaying a list
  * of found results.
  */
-ns.Picker = Y.Base.create('picker', Y.lazr.PrettyOverlay, [], {
+ns.Picker = Y.Base.create('picker', Y.lp.ui.overlay.PrettyOverlay, [], {
 
     /**
      * The search input node.
@@ -981,7 +981,8 @@
      * @protected
      */
     _defaultCancel : function(e) {
-        Y.lazr.PrettyOverlay.prototype._defaultCancel.apply(this, arguments);
+        Y.lp.ui.overlay.PrettyOverlay.prototype._defaultCancel.apply(
+            this, arguments);
         this.set('search_mode', false);
         if ( this.get('clear_on_cancel') ) {
             this._clear();
@@ -1318,6 +1319,6 @@
            "requires":
                ["oop", "escape", "event", "event-focus", "base", "node",
                 "plugin", "substitute", "widget", "widget-stdmod",
-                "lazr.overlay", "lp.anim", "lp.ui-base",
+                "lp.ui.overlay", "lp.anim", "lp.ui-base",
                 "lp.app.widgets.expander"]
 });

=== modified file 'lib/lp/app/javascript/picker/picker_patcher.js'
--- lib/lp/app/javascript/picker/picker_patcher.js	2012-08-28 15:47:10 +0000
+++ lib/lp/app/javascript/picker/picker_patcher.js	2012-09-10 21:46:20 +0000
@@ -121,7 +121,7 @@
 
     var content_box = Y.one('#' + content_box_id);
 
-    var activator = new Y.lazr.activator.Activator(
+    var activator = new Y.lp.ui.activator.Activator(
         {contentBox: content_box});
 
     var failure_handler = function (xid, response, args) {
@@ -357,7 +357,7 @@
 /**
   * Creates a picker widget that has already been rendered and hidden.
   *
-  * @requires dom, dump, lazr.overlay
+  * @requires dom, dump, lp.ui.overlay
   * @method create
   * @param {String} vocabulary Name of the vocabulary to query.
   * @param {Object} config Optional Object literal of config name/value pairs.
@@ -650,5 +650,5 @@
 
 }, "0.1", {"requires": [
     "io", "dom", "dump", "event", "json-parse",
-    "lp.client", "lazr.activator", "lp.ui.picker-base", "lp.ui.picker-person"
+    "lp.client", "lp.ui.activator", "lp.ui.picker-base", "lp.ui.picker-person"
     ]});

=== modified file 'lib/lp/app/javascript/tests/test_multicheckboxwidget.js'
--- lib/lp/app/javascript/tests/test_multicheckboxwidget.js	2012-08-30 02:40:04 +0000
+++ lib/lp/app/javascript/tests/test_multicheckboxwidget.js	2012-09-10 21:46:20 +0000
@@ -1,7 +1,7 @@
 /* Copyright (c) 2011, Canonical Ltd. All rights reserved. */
 
 YUI().use('lp.testing.runner', 'test', 'console', 'dom', 'event',
-        'event-simulate', 'lazr.formoverlay', 'lazr.activator',
+        'event-simulate', 'lp.ui.formoverlay', 'lp.ui.activator',
         'lp.client', 'lp.app.multicheckbox',
         function(Y) {
 
@@ -75,7 +75,7 @@
     test_widget_can_be_instantiated: function() {
         this.createWidget();
         Y.Assert.isInstanceOf(
-            Y.lazr.PrettyOverlay, this.widget,
+            Y.lp.ui.overlay.PrettyOverlay, this.widget,
             "Widget failed to be instantiated");
     },
 

=== modified file 'lib/lp/app/templates/text-area-editor.pt'
--- lib/lp/app/templates/text-area-editor.pt	2012-06-16 12:42:45 +0000
+++ lib/lp/app/templates/text-area-editor.pt	2012-09-10 21:46:20 +0000
@@ -20,7 +20,7 @@
 
   <script tal:condition="view/can_write"
         tal:content="structure string:
-        LPJS.use('lazr.editor', 'lp.client.plugins', function (Y) {
+        LPJS.use('lp.ui.editor', 'lp.client.plugins', function (Y) {
             var widget = new Y.EditableText({
                 contentBox: ${view/widget_css_selector},
                 accept_empty: ${view/accept_empty},

=== modified file 'lib/lp/app/templates/text-line-editor.pt'
--- lib/lp/app/templates/text-line-editor.pt	2012-08-10 04:48:36 +0000
+++ lib/lp/app/templates/text-line-editor.pt	2012-09-10 21:46:20 +0000
@@ -14,7 +14,7 @@
 
 <script tal:condition="view/can_write"
         tal:content="structure string:
-        LPJS.use('lazr.editor', 'lp.client.plugins', function (Y) {
+        LPJS.use('lp.ui.editor', 'lp.client.plugins', function (Y) {
             var widget = new Y.EditableText({
                 contentBox: ${view/widget_css_selector},
                 accept_empty: ${view/accept_empty},

=== modified file 'lib/lp/app/widgets/templates/license.pt'
--- lib/lp/app/widgets/templates/license.pt	2012-07-07 14:00:30 +0000
+++ lib/lp/app/widgets/templates/license.pt	2012-09-10 21:46:20 +0000
@@ -26,7 +26,7 @@
 // and breaks with every YUI/lazr-js upgrade.
 // Tread carefully, or else please make this better
 // and add tests, too (preferably in reverse order there.)
-LPJS.use('node', 'lazr.effects', function(Y) {
+LPJS.use('node', 'lp.ui.effects', function(Y) {
     Y.on('domready', function() {
         function make_slider(cfg) {
             var table_name = '#' + cfg.which;
@@ -48,7 +48,7 @@
                 // licences in that category.  A '0' means 'no'.
                 var arrow = Y.one(arrow_name);
                 if (arrow.getAttribute('start_expanded') == '0') {
-                    target.slide = Y.lazr.effects.slide_in(table_name);
+                    target.slide = Y.lp.ui.effects.slide_in(table_name);
                 }
                 else {
                     // This is wrong on so many levels.  The view should
@@ -64,7 +64,7 @@
                     } else {
                         expanded_height = 65;
                     }
-                    target.slide = Y.lazr.effects.slide_out(
+                    target.slide = Y.lp.ui.effects.slide_out(
                         table_name, {to: {height: expanded_height}});
                 }
                 target.slide.stop();
@@ -139,20 +139,20 @@
         function reveal_details(e) {
             if (other_com.get('checked') || other_os.get('checked')) {
                 if (!details.hasClass('lazr-opened')) {
-                    Y.lazr.effects.slide_out(details).run();
+                    Y.lp.ui.effects.slide_out(details).run();
                 }
             } else {
                 if (!details.hasClass('lazr-closed')) {
-                    Y.lazr.effects.slide_in(details).run();
+                    Y.lp.ui.effects.slide_in(details).run();
                 }
             }
             if (other_com.get('checked')) {
                 if (!proprietary.hasClass('lazr-opened')) {
-                    Y.lazr.effects.slide_out(proprietary).run();
+                    Y.lp.ui.effects.slide_out(proprietary).run();
                 }
             } else {
                 if (!proprietary.hasClass('lazr-closed')) {
-                    Y.lazr.effects.slide_in(proprietary).run();
+                    Y.lp.ui.effects.slide_in(proprietary).run();
                 }
             }
         }

=== modified file 'lib/lp/bugs/javascript/bug_notification_level.js'
--- lib/lp/bugs/javascript/bug_notification_level.js	2012-06-27 20:00:17 +0000
+++ lib/lp/bugs/javascript/bug_notification_level.js	2012-09-10 21:46:20 +0000
@@ -5,7 +5,7 @@
  * Also used in "Edit subscription" advanced overlay.
  *
  * @namespace Y.lp.bugs.bug_notification_level
- * @requires  dom, "node, lp.anim, lazr.effects
+ * @requires  dom, "node, lp.anim, lp.ui.effects
  */
 YUI.add('lp.bugs.bug_notification_level', function(Y) {
 var namespace = Y.namespace('lp.bugs.bug_notification_level');
@@ -99,7 +99,7 @@
         return;
     }
     if (!namespace._bug_notification_level_visible) {
-        namespace._slideout_animation = Y.lazr.effects.slide_out(level_div);
+        namespace._slideout_animation = Y.lp.ui.effects.slide_out(level_div);
         namespace._slideout_animation.after('end', function () {
             slideout_running = false;
         });
@@ -112,7 +112,7 @@
             // and slide in.
             namespace._slideout_animation.stop();
         }
-        Y.lazr.effects.slide_in(level_div).run();
+        Y.lp.ui.effects.slide_in(level_div).run();
     }
     namespace._bug_notification_level_visible = (
         !namespace._bug_notification_level_visible);
@@ -213,4 +213,4 @@
 };
 
 }, "0.1", {"requires": ["dom", "event-custom", "node",
-                        "lp.anim", "lazr.effects"]});
+                        "lp.anim", "lp.ui.effects"]});

=== modified file 'lib/lp/bugs/javascript/bug_picker.js'
--- lib/lp/bugs/javascript/bug_picker.js	2012-09-07 00:15:12 +0000
+++ lib/lp/bugs/javascript/bug_picker.js	2012-09-10 21:46:20 +0000
@@ -380,4 +380,4 @@
 
 }, "0.1", {"requires": [
     "base", "io", "oop", "node", "event", "json",
-    "lazr.effects", "lp.mustache", "lp.ui.picker-base"]});
+    "lp.ui.effects", "lp.mustache", "lp.ui.picker-base"]});

=== modified file 'lib/lp/bugs/javascript/bug_subscription_portlet.js'
--- lib/lp/bugs/javascript/bug_subscription_portlet.js	2012-08-30 02:40:04 +0000
+++ lib/lp/bugs/javascript/bug_subscription_portlet.js	2012-09-10 21:46:20 +0000
@@ -399,7 +399,7 @@
             body.append(actions_node);
         }
         // Now we just make an overlay and show it, and we are done.
-        overlay = new Y.lazr.PrettyOverlay({
+        overlay = new Y.lp.ui.overlay.PrettyOverlay({
             headerContent: header,
             bodyContent: body,
             visible: false,
@@ -421,6 +421,6 @@
 };
 
 }, '0.1', {requires: [
-    'dom', 'event', 'node', 'substitute', 'lazr.effects', 'lazr.overlay',
+    'dom', 'event', 'node', 'substitute', 'lp.ui.effects', 'lp.ui.overlay',
     'lp.app.errors', 'lp.client'
 ]});

=== modified file 'lib/lp/bugs/javascript/bug_tags_entry.js'
--- lib/lp/bugs/javascript/bug_tags_entry.js	2012-08-23 18:58:50 +0000
+++ lib/lp/bugs/javascript/bug_tags_entry.js	2012-09-10 21:46:20 +0000
@@ -265,7 +265,7 @@
     var bounding_box = Y.Node.create(
         '<div class="bug-tag-complete"><div></div></div>');
     Y.one('body').appendChild(bounding_box);
-    var autocomplete = new Y.lazr.AutoComplete({
+    var autocomplete = new Y.lp.ui.AutoComplete({
         input: input,
         data: official_tags,
         boundingBox: bounding_box,
@@ -279,5 +279,5 @@
 }, "0.1", {
     "requires": [
         "array-extras", "base", "io-base", "node", "substitute",
-        "node-menunav", "lp.anim", "lazr.autocomplete", "lp.client"]
+        "node-menunav", "lp.anim", "lp.ui.autocomplete", "lp.client"]
 });

=== modified file 'lib/lp/bugs/javascript/buglisting_utils.js'
--- lib/lp/bugs/javascript/buglisting_utils.js	2012-07-16 01:24:26 +0000
+++ lib/lp/bugs/javascript/buglisting_utils.js	2012-09-10 21:46:20 +0000
@@ -89,7 +89,7 @@
          * A reference to the form overlay used in the overlay.
          *
          * @attribute form
-         * @type Y.lazr.FormOverlay
+         * @type Y.lp.ui.FormOverlay
          * @default null
          */
         form: {
@@ -276,7 +276,7 @@
         _extraRenderUI: function() {
             var form_content = this.buildFormContent();
             var on_submit_callback = Y.bind(this.handleOverlaySubmit, this);
-            util_overlay = new Y.lazr.FormOverlay({
+            util_overlay = new Y.lp.ui.FormOverlay({
                 align: 'left',
                 headerContent: '<h2>Visible information</h2>',
                 centered: true,
@@ -352,6 +352,6 @@
         update_sort_button_visibility;
 
 }, '0.1', {'requires': [
-    'cookie', 'history', 'lp.configutils', 'lazr.formoverlay',
+    'cookie', 'history', 'lp.configutils', 'lp.ui.formoverlay',
     'lp.bugs.buglisting'
     ]});

=== modified file 'lib/lp/bugs/javascript/bugtask_index.js'
--- lib/lp/bugs/javascript/bugtask_index.js	2012-08-31 14:35:33 +0000
+++ lib/lp/bugs/javascript/bugtask_index.js	2012-09-10 21:46:20 +0000
@@ -1126,8 +1126,8 @@
 
 }, "0.1", {"requires": ["base", "oop", "node", "event", "io-base",
                         "json-parse", "substitute",
-                        "lazr.formoverlay", "lp.anim", "lazr.overlay",
-                        "lazr.choiceedit", "lp.app.picker",
+                        "lp.ui.formoverlay", "lp.anim", "lp.ui.overlay",
+                        "lp.ui.choiceedit", "lp.app.picker",
                         "lp.bugs.bugtask_index.portlets.subscription",
                         "lp.app.information_type",
                         "lp.app.widgets.expander", "lp.client", "escape",

=== modified file 'lib/lp/bugs/javascript/bugtracker_overlay.js'
--- lib/lp/bugs/javascript/bugtracker_overlay.js	2012-05-11 21:49:04 +0000
+++ lib/lp/bugs/javascript/bugtracker_overlay.js	2012-09-10 21:46:20 +0000
@@ -4,7 +4,7 @@
  * A bugtracker form overlay that can create a bugtracker within any page.
  *
  * @namespace Y.lp.bugs.bugtracker_overlay
- * @requires  dom, node, io-base, lp.anim, lazr.formoverlay
+ * @requires  dom, node, io-base, lp.anim, lp.ui.formoverlay
  */
 YUI.add('lp.bugs.bugtracker_overlay', function(Y) {
     Y.log('loading lp.bugs.bugtracker_overlay');
@@ -55,7 +55,7 @@
         var form_submit_button = Y.Node.create(
             '<input type="submit" name="field.actions.register" ' +
             'id="formoverlay-add-bugtracker" value="Create bug tracker"/>');
-        bugtracker_form = new Y.lazr.FormOverlay({
+        bugtracker_form = new Y.lp.ui.FormOverlay({
             headerContent: '<h2>Create Bug Tracker</h2>',
             form_submit_button: form_submit_button,
             centered: true,
@@ -124,5 +124,5 @@
     };
 
 }, "0.1", {"requires": ["dom", "node", "io-base", "lp.anim",
-                        "lazr.formoverlay", "lp.app.calendar", "lp.client"
+                        "lp.ui.formoverlay", "lp.app.calendar", "lp.client"
     ]});

=== modified file 'lib/lp/bugs/javascript/filebug.js'
--- lib/lp/bugs/javascript/filebug.js	2012-08-27 00:38:02 +0000
+++ lib/lp/bugs/javascript/filebug.js	2012-09-10 21:46:20 +0000
@@ -124,6 +124,6 @@
 namespace.setup_filebug = setup_filebug;
 
 }, "0.1", {"requires": [
-    "base", "node", "event", "node-event-delegate", "lazr.choiceedit",
+    "base", "node", "event", "node-event-delegate", "lp.ui.choiceedit",
     "lp.app.banner.privacy", "lp.app.choice",
     "lp.bugs.filebug_dupefinder"]});

=== modified file 'lib/lp/bugs/javascript/filebug_dupefinder.js'
--- lib/lp/bugs/javascript/filebug_dupefinder.js	2012-08-30 02:40:04 +0000
+++ lib/lp/bugs/javascript/filebug_dupefinder.js	2012-09-10 21:46:20 +0000
@@ -285,7 +285,7 @@
         '</div>';
 
     // Create the do-you-want-to-subscribe FormOverlay.
-    var subscribe_form_overlay = new Y.lazr.FormOverlay({
+    var subscribe_form_overlay = new Y.lp.ui.FormOverlay({
         headerContent: '<h2>Affected by this bug?</h2>',
         form_content: subscribe_form_body,
         form_submit_button: Y.Node.create(submit_button_html),
@@ -459,6 +459,6 @@
 };
 
 }, "0.1", {"requires": [
-    "base", "io", "oop", "node", "event", "json", "lazr.formoverlay",
-    "lazr.effects", "lp.app.widgets.expander",
+    "base", "io", "oop", "node", "event", "json", "lp.ui.formoverlay",
+    "lp.ui.effects", "lp.app.widgets.expander",
     "lp.app.formwidgets.resizing_textarea", "plugin"]});

=== modified file 'lib/lp/bugs/javascript/official_bug_tags.js'
--- lib/lp/bugs/javascript/official_bug_tags.js	2012-08-23 18:58:50 +0000
+++ lib/lp/bugs/javascript/official_bug_tags.js	2012-09-10 21:46:20 +0000
@@ -350,7 +350,7 @@
 var display_error = function() {
     var new_tag = Y.one('#new-tag-text').get(
         'value').replace(new RegExp('<', 'g'), '&lt;');
-    var overlay = new Y.lazr.PrettyOverlay({
+    var overlay = new Y.lp.ui.overlay.PrettyOverlay({
       headerContent: '<span class="official-tag-error-message-header">' +
                      '<img src="/@@/error" />&nbsp;Invalid Tag</span>',
       bodyContent: Y.Lang.sub(ERROR_MSG, {new_tag: new_tag}),
@@ -433,5 +433,5 @@
 };
 }, "0.1", {
     "requires": ["array-extras", "node", "substitute", "base", "collection",
-                 "lazr.overlay"]
+                 "lp.ui.overlay"]
 });

=== modified file 'lib/lp/bugs/javascript/subscription.js'
--- lib/lp/bugs/javascript/subscription.js	2012-09-07 20:16:28 +0000
+++ lib/lp/bugs/javascript/subscription.js	2012-09-10 21:46:20 +0000
@@ -248,7 +248,7 @@
                 node.replaceClass('spinner', 'remove');
                 var container = node.ancestor(
                     '.subscription-description');
-                var anim = Y.lazr.effects.slide_in(container);
+                var anim = Y.lp.ui.effects.slide_in(container);
                 anim.on('end', function () {
                     container.remove();
                 });
@@ -1313,7 +1313,7 @@
     function toggle_body_visibility(e) {
         e.halt();
         if (!slide) {
-            slide = Y.lazr.effects.slide_out(body);
+            slide = Y.lp.ui.effects.slide_out(body);
             header.replaceClass('treeCollapsed', 'treeExpanded');
         } else {
             slide.set('reverse', !slide.get('reverse'));
@@ -1360,6 +1360,6 @@
 namespace.show_subscription_description = show_subscription_description;
 
 }, '0.1', {requires: [
-    'dom', 'event', 'node', 'substitute', 'lazr.effects', 'lp.app.errors',
+    'dom', 'event', 'node', 'substitute', 'lp.ui.effects', 'lp.app.errors',
     'lp.app.confirmationoverlay', 'lp.client'
 ]});

=== modified file 'lib/lp/bugs/javascript/tests/test_bug_notification_level.js'
--- lib/lp/bugs/javascript/tests/test_bug_notification_level.js	2012-06-28 13:18:14 +0000
+++ lib/lp/bugs/javascript/tests/test_bug_notification_level.js	2012-09-10 21:46:20 +0000
@@ -130,14 +130,14 @@
         setUp: function() {
             // Monkey patch effects duration to make effects instant.
             // This keeps wait times to a minimum.
-            this.original_defaults = Y.lazr.effects.slide_effect_defaults;
-            Y.lazr.effects.slide_effect_defaults.duration = 0;
+            this.original_defaults = Y.lp.ui.effects.slide_effect_defaults;
+            Y.lp.ui.effects.slide_effect_defaults.duration = 0;
         },
 
         tearDown: function() {
             // Restore the default value.
             module._bug_notification_level_visible = true;
-            Y.lazr.effects.slide_effect_defaults = this.original_defaults;
+            Y.lp.ui.effects.slide_effect_defaults = this.original_defaults;
         },
 
         test_quick_close: function() {
@@ -315,14 +315,14 @@
                 Y.Node.create('<div></div>'));
             // Monkey patch effects duration to make effects instant.
             // This keeps wait times to a minimum.
-            this.original_defaults = Y.lazr.effects.slide_effect_defaults;
-            Y.lazr.effects.slide_effect_defaults.duration = 0;
+            this.original_defaults = Y.lp.ui.effects.slide_effect_defaults;
+            Y.lp.ui.effects.slide_effect_defaults.duration = 0;
         },
 
         tearDown: function() {
             delete window.LP;
             this.root.empty();
-            Y.lazr.effects.slide_effect_defaults = this.original_defaults;
+            Y.lp.ui.effects.slide_effect_defaults = this.original_defaults;
         },
 
         test_multiple_nodes_with_level_options: function() {
@@ -435,5 +435,5 @@
 }, '0.1', {
     'requires': ['test', 'lp.testing.helpers', 'console',
         'lp.bugs.bug_notification_level', 'node-event-simulate',
-        'lazr.effects']
+        'lp.ui.effects']
 });

=== modified file 'lib/lp/bugs/javascript/tests/test_subscription.js'
--- lib/lp/bugs/javascript/tests/test_subscription.js	2012-08-21 04:04:47 +0000
+++ lib/lp/bugs/javascript/tests/test_subscription.js	2012-09-10 21:46:20 +0000
@@ -1857,12 +1857,12 @@
         setUp: function() {
             // Monkey patch effects duration to make effects instant.
             // This keeps wait times to a minimum.
-            this.original_defaults = Y.lazr.effects.slide_effect_defaults;
-            Y.lazr.effects.slide_effect_defaults.duration = 0;
+            this.original_defaults = Y.lp.ui.effects.slide_effect_defaults;
+            Y.lp.ui.effects.slide_effect_defaults.duration = 0;
          },
 
          tearDown: function() {
-            Y.lazr.effects.slide_effect_defaults = this.original_defaults;
+            Y.lp.ui.effects.slide_effect_defaults = this.original_defaults;
          },
 
         test_no_subscriptions: function() {
@@ -2762,5 +2762,5 @@
 
 }, '0.1', {
     requires: ['test', 'lp.testing.helpers', 'console',
-        'lp.bugs.subscription', 'node-event-simulate', 'lazr.effects']
+        'lp.bugs.subscription', 'node-event-simulate', 'lp.ui.effects']
 });

=== modified file 'lib/lp/code/javascript/branch.information_type_choice.js'
--- lib/lp/code/javascript/branch.information_type_choice.js	2012-08-28 23:53:32 +0000
+++ lib/lp/code/javascript/branch.information_type_choice.js	2012-09-10 21:46:20 +0000
@@ -118,5 +118,6 @@
 });
 
 }, "0.1", {"requires": ["base", "oop", "node", "event", "io-base",
-                        "lazr.choiceedit", "lp.app.banner.privacy",
-                        "lp.app.choice", "lp.app.information_type"]});
+                        "lp.ui.choiceedit", "lp.app.banner.privacy",
+                        "lp.app.errors", "lp.app.choice",
+                        "lp.app.information_type"]});

=== modified file 'lib/lp/code/javascript/branch.subscription.js'
--- lib/lp/code/javascript/branch.subscription.js	2012-08-30 02:40:04 +0000
+++ lib/lp/code/javascript/branch.subscription.js	2012-09-10 21:46:20 +0000
@@ -86,7 +86,7 @@
         var form_url = this.get("self_subscribe").get("href") + '/++form++';
         var lp_client = this._lp_client;
         var form_overlay;
-        form_overlay = new Y.lazr.FormOverlay({
+        form_overlay = new Y.lp.ui.FormOverlay({
             headerContent: "<h2>Subscribe to branch</h2>",
             form_submit_button: Y.Node.create(
                 '<button type="submit" name="field.actions.subscribe" ' +
@@ -212,7 +212,7 @@
 }, '0.1', {'requires': [
     'event',
     'io',
-    'lazr.formoverlay',
+    'lp.ui.formoverlay',
     'lp.client',
     'node'
     ]});

=== modified file 'lib/lp/code/javascript/branchmergeproposal.diff.js'
--- lib/lp/code/javascript/branchmergeproposal.diff.js	2012-05-12 01:57:01 +0000
+++ lib/lp/code/javascript/branchmergeproposal.diff.js	2012-09-10 21:46:20 +0000
@@ -25,7 +25,7 @@
     Y.after(this._setupDismissDiff, this, 'syncUI');
 };
 
-Y.extend(DiffOverlay, Y.lazr.PrettyOverlay, {
+Y.extend(DiffOverlay, Y.lp.ui.overlay.PrettyOverlay, {
         bindUI: function() {
             // call PrettyOverlay's bindUI
             this.constructor.superclass.bindUI.call(this);
@@ -150,4 +150,4 @@
     }
 };
 
-  }, '0.1', {requires: ['event', 'io', 'node', 'lazr.overlay', 'lp.client']});
+  }, '0.1', {requires: ['event', 'io', 'node', 'lp.ui.overlay', 'lp.client']});

=== modified file 'lib/lp/code/javascript/branchmergeproposal.reviewcomment.js'
--- lib/lp/code/javascript/branchmergeproposal.reviewcomment.js	2012-09-10 07:03:20 +0000
+++ lib/lp/code/javascript/branchmergeproposal.reviewcomment.js	2012-09-10 21:46:20 +0000
@@ -4,7 +4,7 @@
  * Library for code review javascript.
  *
  * @module lp.code.branchmergeproposal.reviewcomment
- * @requires base, lp.anim, lazr.formoverlay
+ * @requires base, lp.anim, lp.ui.formoverlay
  */
 
 YUI.add('lp.code.branchmergeproposal.reviewcomment', function(Y) {
@@ -286,4 +286,4 @@
 namespace.NumberToggle = NumberToggle;
 
 }, "0.1", {"requires": ["base", "widget", "lp.anim",
-                        "lazr.formoverlay", "lp.app.picker", "lp.client"]});
+                        "lp.ui.formoverlay", "lp.app.picker", "lp.client"]});

=== modified file 'lib/lp/code/javascript/branchmergeproposal.status.js'
--- lib/lp/code/javascript/branchmergeproposal.status.js	2011-02-24 00:23:04 +0000
+++ lib/lp/code/javascript/branchmergeproposal.status.js	2012-09-10 21:46:20 +0000
@@ -3,7 +3,7 @@
  * Code for handling the update of the branch merge proposals.
  *
  * @module lp.code.branchmergeproposal
- * @requires node, lazr.choiceedit, lp.client.plugins
+ * @requires node, lp.ui.choiceedit, lp.client.plugins
  */
 
 YUI.add('lp.code.branchmergeproposal.status', function(Y) {
@@ -127,5 +127,5 @@
             }});
 }
 
-  }, "0.1", {"requires": ["io", "node", "lazr.choiceedit", "lp.client",
+  }, "0.1", {"requires": ["io", "node", "lp.ui.choiceedit", "lp.client",
                           "lp.client.plugins"]});

=== modified file 'lib/lp/code/javascript/requestbuild_overlay.js'
--- lib/lp/code/javascript/requestbuild_overlay.js	2012-07-07 14:00:30 +0000
+++ lib/lp/code/javascript/requestbuild_overlay.js	2012-09-10 21:46:20 +0000
@@ -4,7 +4,7 @@
  * A form overlay that can request builds for a recipe..
  *
  * @namespace Y.lp.code.recipebuild_overlay
- * @requires  dom, node, io-base, lp.anim, lazr.formoverlay
+ * @requires  dom, node, io-base, lp.anim, lp.ui.formoverlay
  */
 YUI.add('lp.code.requestbuild_overlay', function(Y) {
 
@@ -75,7 +75,7 @@
         if (request_build_overlay === null) {
             // Render the form and load the widgets to display
             var recipe_name = LP.cache.context.name;
-            request_build_overlay = new Y.lazr.FormOverlay({
+            request_build_overlay = new Y.lp.ui.FormOverlay({
                 headerContent: '<h2>Request builds for '
                                     + recipe_name + ' </h2>',
                 form_submit_button: Y.Node.create(
@@ -546,5 +546,5 @@
             LP.cache.context.self_link, 'getPendingBuildInfo', y_config);
 };
 }, "0.1", {"requires": [
-    "dom", "node", "escape", "io-base", "lp.anim", "lazr.formoverlay",
+    "dom", "node", "escape", "io-base", "lp.anim", "lp.ui.formoverlay",
     "lp.client"]});

=== modified file 'lib/lp/code/templates/branch-index.pt'
--- lib/lp/code/templates/branch-index.pt	2012-03-10 15:08:09 +0000
+++ lib/lp/code/templates/branch-index.pt	2012-09-10 21:46:20 +0000
@@ -23,7 +23,7 @@
   <script type="text/javascript"
           tal:content="string:
     LPJS.use('node', 'event', 'widget', 'plugin', 'overlay',
-              'lazr.choiceedit',
+              'lp.ui.choiceedit',
               'lp.code.branch.status',
               'lp.code.branchmergeproposal.diff',
               'lp.code.branch.subscription',

=== modified file 'lib/lp/registry/javascript/distroseries/differences.js'
--- lib/lp/registry/javascript/distroseries/differences.js	2012-08-30 02:40:04 +0000
+++ lib/lp/registry/javascript/distroseries/differences.js	2012-09-10 21:46:20 +0000
@@ -147,7 +147,7 @@
     };
 
     /* Form overlay. */
-    var overlay = new Y.lazr.FormOverlay({
+    var overlay = new Y.lp.ui.FormOverlay({
         align: {
             /* Align the centre of the overlay with the centre of the
                origin node. */
@@ -287,6 +287,6 @@
 
 
 }, "0.1", {"requires": [
-               "lazr.formoverlay", "lp.app.formwidgets",
+               "lp.ui.formoverlay", "lp.app.formwidgets",
                "lp.app.picker", "lp.registry.distroseries.widgets",
                "node", "querystring-parse"]});

=== modified file 'lib/lp/registry/javascript/distroseriesdifferences_details.js'
--- lib/lp/registry/javascript/distroseriesdifferences_details.js	2012-08-30 02:40:04 +0000
+++ lib/lp/registry/javascript/distroseriesdifferences_details.js	2012-09-10 21:46:20 +0000
@@ -258,7 +258,7 @@
      *
      * @param target {Node}
      *     The target input node that was clicked.
-     * @returns {Y.lazr.FormOverlay}
+     * @returns {Y.lp.ui.FormOverlay}
      *     The overlay that was just created.
      */
     show_comment_overlay: function(target) {
@@ -293,7 +293,7 @@
                 'blacklist_changed', method_name, blacklist_all, comment,
                 target);
         };
-        var overlay = new Y.lazr.FormOverlay({
+        var overlay = new Y.lp.ui.FormOverlay({
             align: {
                 /* Align the centre of the overlay with the centre of the
                 node containing the blacklist options. */
@@ -483,13 +483,13 @@
     },
 
     slide_in: function() {
-        var anim = Y.lazr.effects.slide_in(this.addForm);
+        var anim = Y.lp.ui.effects.slide_in(this.addForm);
         this._fire_anim_end(anim, 'slid_in');
         anim.run();
     },
 
     slide_out: function() {
-        var anim = Y.lazr.effects.slide_out(this.addForm);
+        var anim = Y.lp.ui.effects.slide_out(this.addForm);
         this._fire_anim_end(anim, 'slid_out');
         anim.run();
     },
@@ -548,7 +548,7 @@
                 success: function(comment_html) {
                     var comment_node = Y.Node.create(comment_html);
                     self.addCommentPlaceholder.insert(comment_node, 'before');
-                    var reveal = Y.lazr.effects.slide_out(comment_node);
+                    var reveal = Y.lp.ui.effects.slide_out(comment_node);
                     reveal.on("end", function() {
                         Y.lp.anim.green_flash(
                             {node: comment_node}).run();
@@ -926,5 +926,5 @@
 
 }, "0.1", {"requires": ["io-base", "widget", "event", "overlay",
                         "lp.soyuz.base", "lp.client",
-                        "lp.anim", "lazr.formoverlay",
+                        "lp.anim", "lp.ui.formoverlay", "lp.ui.effects",
                         "lp.soyuz.dynamic_dom_updater"]});

=== modified file 'lib/lp/registry/javascript/milestoneoverlay.js'
--- lib/lp/registry/javascript/milestoneoverlay.js	2012-06-28 16:00:11 +0000
+++ lib/lp/registry/javascript/milestoneoverlay.js	2012-09-10 21:46:20 +0000
@@ -4,7 +4,7 @@
  * A milestone form overlay that can create a milestone within any page.
  *
  * @module Y.lp.registry.milestoneoverlay
- * @requires  dom, node, io-base, lp.anim, lazr.formoverlay
+ * @requires  dom, node, io-base, lp.anim, lp.ui.formoverlay
  */
 YUI.add('lp.registry.milestoneoverlay', function(Y) {
     Y.log('loading lp.registry.milestoneoverlay');
@@ -123,7 +123,7 @@
         var form_submit_button = Y.Node.create(
             '<input type="submit" name="field.actions.register" ' +
             'id="formoverlay-add-milestone" value="Create Milestone"/>');
-        milestone_form = new Y.lazr.FormOverlay({
+        milestone_form = new Y.lp.ui.FormOverlay({
             headerContent: '<h2>Create Milestone</h2>',
             form_submit_button: form_submit_button,
             centered: true,
@@ -198,7 +198,7 @@
                         "node",
                         "io-base",
                         "lp.anim",
-                        "lazr.formoverlay",
+                        "lp.ui.formoverlay",
                         "lp.app.calendar",
                         "lp.client",
                         "lp.bugs.tags_entry"

=== modified file 'lib/lp/registry/javascript/sharing/granteetable.js'
--- lib/lp/registry/javascript/sharing/granteetable.js	2012-09-06 02:24:48 +0000
+++ lib/lp/registry/javascript/sharing/granteetable.js	2012-09-10 21:46:20 +0000
@@ -563,7 +563,7 @@
 namespace.GranteeTableWidget = GranteeTableWidget;
 
 }, "0.1", { "requires": [
-    'node', 'event', 'collection', 'json', 'lazr.choiceedit',
+    'node', 'event', 'collection', 'json', 'lp.ui.choiceedit',
     'lp.app.errors', 'lp.mustache', 'lp.registry.sharing.granteepicker',
     'lp.registry.sharing.granteelisting_navigator'
 ] });

=== modified file 'lib/lp/registry/javascript/structural-subscription.js'
--- lib/lp/registry/javascript/structural-subscription.js	2012-08-30 02:40:04 +0000
+++ lib/lp/registry/javascript/structural-subscription.js	2012-09-10 21:46:20 +0000
@@ -369,7 +369,7 @@
             .setStyle('whiteSpace', 'nowrap')
             .setStyle('width', '21em');
     // Create the overlay.
-    namespace._add_subscription_overlay = new Y.lazr.FormOverlay({
+    namespace._add_subscription_overlay = new Y.lp.ui.FormOverlay({
         headerContent: header,
         form_content: Y.one(overlay_id),
         visible: false,
@@ -692,9 +692,9 @@
         node.addClass('lazr-closed').removeClass('lazr-opened');
         return;
     }
-    var anim = Y.lazr.effects.slide_in(node, user_cfg);
+    var anim = Y.lp.ui.effects.slide_in(node, user_cfg);
     // XXX: BradCrittenden 2011-03-03 bug=728457 : This fix for
-    // resizing needs to be incorporated into lazr.effects.  When that
+    // resizing needs to be incorporated into lp.ui.effects.  When that
     // is done it should be removed from here.
     anim.on("start", function() {
         node.setStyles({
@@ -736,9 +736,9 @@
     node.setStyles({
         visibility: 'hidden'
     });
-    var anim = Y.lazr.effects.slide_out(node, user_cfg);
+    var anim = Y.lp.ui.effects.slide_out(node, user_cfg);
     // XXX: BradCrittenden 2011-03-03 bug=728457 : This fix for
-    // resizing needs to be incorporated into lazr.effects.  When that
+    // resizing needs to be incorporated into lp.ui.effects.  When that
     // is done it should be removed from here.
     anim.on("start", function() {
         // Set the node to 'visible' for the beginning of the animation.
@@ -1918,7 +1918,7 @@
 }; // setup
 
 }, '0.1', {requires: [
-    'dom', 'node', 'lp.anim', 'lazr.formoverlay', 'lazr.overlay',
-    'lazr.effects', 'lp.app.errors', 'lp.client', 'gallery-accordion',
+    'dom', 'node', 'lp.anim', 'lp.ui.formoverlay', 'lp.ui.overlay',
+    'lp.ui.effects', 'lp.app.errors', 'lp.client', 'gallery-accordion',
     'lp.app.inlinehelp', 'lp.bugs.tags_entry'
 ]});

=== modified file 'lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js'
--- lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js	2012-07-07 14:00:30 +0000
+++ lib/lp/registry/javascript/tests/test_distroseriesdifferences_details.js	2012-09-10 21:46:20 +0000
@@ -288,7 +288,7 @@
             var input = Y.one('div.blacklist-options input');
             var overlay = this.widget.show_comment_overlay(input);
             // Check overlay's structure.
-            Y.Assert.isInstanceOf(Y.lazr.FormOverlay, overlay);
+            Y.Assert.isInstanceOf(Y.lp.ui.FormOverlay, overlay);
             Y.Assert.isNotNull(overlay.form_node.one('textarea'));
             Y.Assert.areEqual(
                 'OK',
@@ -1022,6 +1022,6 @@
 }, '0.1', {
     requires: ['test', 'lp.testing.helpers', 'lp.testing.mockio', 'console',
         'lp.registry.distroseriesdifferences_details', 'node-event-simulate',
-        'lp.soyuz.base', 'lp.anim', 'lazr.formoverlay', 'lazr.effects',
+        'lp.soyuz.base', 'lp.anim', 'lp.ui.formoverlay', 'lp.ui.effects',
         'lp.soyuz.dynamic_dom_updater', 'event-simulate', 'io-base']
 });

=== modified file 'lib/lp/registry/javascript/tests/test_milestone_creation_failures.js'
--- lib/lp/registry/javascript/tests/test_milestone_creation_failures.js	2012-07-31 06:14:21 +0000
+++ lib/lp/registry/javascript/tests/test_milestone_creation_failures.js	2012-09-10 21:46:20 +0000
@@ -1,7 +1,7 @@
 /* Copyright (c) 2012, Canonical Ltd. All rights reserved. */
 
 YUI().use('lp.testing.runner', 'test', 'console', 'node',
-          'node-event-simulate', 'lazr.effects', 'lp.app.calendar',
+          'node-event-simulate', 'lp.ui.effects', 'lp.app.calendar',
           'lp.app.errors', 'lp.client', 'lp.testing.mockio',
           'lp.registry.milestoneoverlay',
     function(Y) {

=== modified file 'lib/lp/registry/javascript/tests/test_structural_subscription.js'
--- lib/lp/registry/javascript/tests/test_structural_subscription.js	2012-08-31 04:34:32 +0000
+++ lib/lp/registry/javascript/tests/test_structural_subscription.js	2012-09-10 21:46:20 +0000
@@ -1,7 +1,7 @@
 /* Copyright (c) 2011, Canonical Ltd. All rights reserved. */
 
 YUI().use('lp.testing.runner', 'lp.testing.helpers', 'test', 'console',
-          'node', 'node-event-simulate', 'lazr.effects', 'lp.client',
+          'node', 'node-event-simulate', 'lp.ui.effects', 'lp.client',
           'lp.registry.structural_subscription', function(Y) {
 
     var suite = new Y.Test.Suite("Structural subscription overlay tests");
@@ -437,12 +437,12 @@
 
             // Monkey patch effects duration to make effects instant.
             // This keeps wait times to a minimum.
-            this.original_defaults = Y.lazr.effects.slide_effect_defaults;
-            Y.lazr.effects.slide_effect_defaults.duration = 0;
+            this.original_defaults = Y.lp.ui.effects.slide_effect_defaults;
+            Y.lp.ui.effects.slide_effect_defaults.duration = 0;
         },
 
         tearDown: function() {
-            Y.lazr.effects.slide_effect_defaults = this.original_defaults;
+            Y.lp.ui.effects.slide_effect_defaults = this.original_defaults;
             remove_test_node();
             delete this.content_node;
         },

=== modified file 'lib/lp/registry/templates/product-new.pt'
--- lib/lp/registry/templates/product-new.pt	2012-07-07 14:00:30 +0000
+++ lib/lp/registry/templates/product-new.pt	2012-09-10 21:46:20 +0000
@@ -14,7 +14,7 @@
  * details widgets until the user states that the project they are
  * registering is not a duplicate.
  */
-LPJS.use('node', 'lazr.effects', function(Y) {
+LPJS.use('node', 'lp.ui.effects', function(Y) {
     Y.on('domready', function() {
         /* These two regexps serve slightly different purposes.  The first
          * finds the leftmost run of valid url characters for the autofill
@@ -156,7 +156,7 @@
                     arrow.setAttribute('src', '/@@/treeExpanded');
                     arrow.setAttribute('title', 'Hide search results');
                     arrow.setAttribute('alt', 'Hide search results');
-                    Y.lazr.effects.slide_out(search_results).run();
+                    Y.lp.ui.effects.slide_out(search_results).run();
                     show_separator(true);
                 }
                 else {
@@ -166,7 +166,7 @@
                     arrow.setAttribute('src', '/@@/treeCollapsed');
                     arrow.setAttribute('title', 'Show search results');
                     arrow.setAttribute('alt', 'Show search results');
-                    Y.lazr.effects.slide_in(search_results).run();
+                    Y.lp.ui.effects.slide_in(search_results).run();
                     show_separator(false);
                 }
             });
@@ -177,13 +177,13 @@
             details_buttons.addClass('hidden');
 
             /* Slide out the registration details widgets, but add an 'end'
-             * event handler so that the height style left by lazr.effects is
+             * event handler so that the height style left by lp.ui.effects is
              * removed when the animation is done.  We're never going to slide
              * the form widgets back in, and the height style causes the
              * licence widget to dive under the Complete Registration button.
              * See bug 391138 for details.
              */
-            var anim = Y.lazr.effects.slide_out(form_widgets);
+            var anim = Y.lp.ui.effects.slide_out(form_widgets);
             anim.on('end', function() {
                 form_widgets.setStyle('height', null);
             });
@@ -200,7 +200,7 @@
 
             var reset_height = search_results.getComputedStyle('height');
             search_results.setStyle('height', reset_height);
-            Y.lazr.effects.slide_in(search_results).run();
+            Y.lp.ui.effects.slide_in(search_results).run();
 
             /* Append a special marker to the hidden state widget.  See
              * ProjectAddStepTwo.search_results_count() for details.

=== modified file 'lib/lp/translations/javascript/importqueue.js'
--- lib/lp/translations/javascript/importqueue.js	2012-05-17 12:51:31 +0000
+++ lib/lp/translations/javascript/importqueue.js	2012-09-10 21:46:20 +0000
@@ -2,7 +2,7 @@
  * GNU Affero General Public License version 3 (see the file LICENSE).
  *
  * @module lp.translations.importqueue
- * @requires oop, event, node, widget, plugin, overlay,lazr.choiceedit
+ * @requires oop, event, node, widget, plugin, overlay, lp.ui.choiceedit
  */
 
 YUI.add('lp.translations.importqueue', function(Y) {
@@ -184,5 +184,5 @@
     }
 };
 }, "0.1", { "requires": ["oop", "event", "node", "widget", "plugin",
-    "overlay", "lazr.choiceedit", "lp.client", "lp.client.plugins",
+    "overlay", "lp.ui.choiceedit", "lp.client", "lp.client.plugins",
     "lp.app.errors"]});

=== modified file 'lib/lp/translations/javascript/sourcepackage_sharing_details.js'
--- lib/lp/translations/javascript/sourcepackage_sharing_details.js	2012-08-30 02:40:04 +0000
+++ lib/lp/translations/javascript/sourcepackage_sharing_details.js	2012-09-10 21:46:20 +0000
@@ -146,7 +146,7 @@
         form_overlay.hide();
         submit_callback.apply(this, arguments);
     }
-    var form_overlay = new Y.lazr.FormOverlay({
+    var form_overlay = new Y.lp.ui.FormOverlay({
         centered: true,
         headerContent: title_html,
         form_cancel_button: cancel_button,


Follow ups