Merge lp:~knitzsche/ubuntu-html5-theme/ubuntu-html5-theme-yuidoc into lp:~ubuntu-html5-theme-devs/ubuntu-html5-theme/ambiance

Proposed by Kyle Nitzsche
Status: Merged
Approved by: Kyle Nitzsche
Approved revision: 94
Merged at revision: 91
Proposed branch: lp:~knitzsche/ubuntu-html5-theme/ubuntu-html5-theme-yuidoc
Merge into: lp:~ubuntu-html5-theme-devs/ubuntu-html5-theme/ambiance
Diff against target: 2601 lines (+2164/-50)
31 files modified
0.1/ambiance/js/buttons.js (+23/-1)
0.1/ambiance/js/core.js (+113/-2)
0.1/ambiance/js/dialogs.js (+35/-1)
0.1/ambiance/js/header.js (+65/-0)
0.1/ambiance/js/list.js (+64/-40)
0.1/ambiance/js/page.js (+62/-0)
0.1/ambiance/js/pagestacks.js (+72/-2)
0.1/ambiance/js/popovers.js (+46/-1)
0.1/ambiance/js/shape.js (+59/-0)
0.1/ambiance/js/tabs.js (+33/-2)
0.1/ambiance/js/toolbars.js (+47/-1)
0.1/ambiance/js/yuidoc-theme/assets/css/main.css (+429/-0)
0.1/ambiance/js/yuidoc-theme/assets/js/tabs.js (+67/-0)
0.1/ambiance/js/yuidoc-theme/assets/js/yui-prettify.js (+44/-0)
0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/CHANGES.html (+130/-0)
0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/COPYING (+202/-0)
0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/README.html (+203/-0)
0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.css (+1/-0)
0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.js (+28/-0)
0.1/ambiance/js/yuidoc-theme/layouts/main.handlebars (+38/-0)
0.1/ambiance/js/yuidoc-theme/partials/attrs.handlebars (+23/-0)
0.1/ambiance/js/yuidoc-theme/partials/classes.handlebars (+73/-0)
0.1/ambiance/js/yuidoc-theme/partials/events.handlebars (+35/-0)
0.1/ambiance/js/yuidoc-theme/partials/files.handlebars (+6/-0)
0.1/ambiance/js/yuidoc-theme/partials/index.handlebars (+54/-0)
0.1/ambiance/js/yuidoc-theme/partials/method.handlebars (+56/-0)
0.1/ambiance/js/yuidoc-theme/partials/module.handlebars (+28/-0)
0.1/ambiance/js/yuidoc-theme/partials/props.handlebars (+10/-0)
0.1/ambiance/js/yuidoc-theme/partials/sidebar.handlebars (+105/-0)
0.1/ambiance/js/yuidoc-theme/theme.json (+4/-0)
0.1/ambiance/js/yuidoc.json (+9/-0)
To merge this branch: bzr merge lp:~knitzsche/ubuntu-html5-theme/ubuntu-html5-theme-yuidoc
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
David Barth Approve
Adnane Belmadiaf Needs Fixing
Review via email: mp+192213@code.launchpad.net

Description of the change

This MR does three main things:
1) Implements yuidoc comments in all js files to support API doc generation, and provides yuidoc assets (theme dir and json file) needed to build the API docs. Bug LP: #1241029
3) Provides JS classes for shape and page with corresponding UbuntuUI prototype constructor functions. Bug LP: #1243248
4) Adds a getEl(UbuntuUIObject) to return the element for any Ubuntu class. Also LP: #1243248

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kyle Nitzsche (knitzsche) wrote :

I am uncertain whether I need to do something to address the ps-jenkins failure reported above...

Revision history for this message
Adnane Belmadiaf (daker) wrote :

The header part is a dup of tabs.js, tabs so we can match SDK name http://developer.ubuntu.com/api/qml/sdk-1.0/Ubuntu.Components.Tabs/

The tabs example :

<li class="active" data-role="tab">
    <a href="#item1" id="firstTab">First</a>
</li>

so here item1 is the ID of the page you want to display

review: Needs Fixing
Revision history for this message
Kyle Nitzsche (knitzsche) wrote :

Hi Adnane. It seems to me there are a few goals here:
1) Provide a place in the JS source for documenting how *every* Ubuntu HTML element is declared in HTML. (bug 1243248).
2) Provide an API landing page for each of the design.ubuntu.com Building Block pages. Design has pages for Header and Tabs: http://design.ubuntu.com/apps/building-blocks/header http://design.ubuntu.com/apps/building-blocks/tabs

So the MR adds the UbuntUI header proptotype, even though it doesn't currently give coders much. It DOES give the documentation a single view of all HTML declarations though (implementation is still incomplete).

Revision history for this message
Kyle Nitzsche (knitzsche) wrote :

This discussion gives me a chance to clarify my intent with this: I think we need a class for every Ubuntu HTML "widget" usually, (but unfortunately not always) defined by existence of a data-role attribute. These classes then can form the framework for documenting the system (including HTML declarations) AND they provide a comprehensive framework for accessing every Ubuntu widget through JS. So these classes are useful even when there are no class specific functions, as is the case right now with both tabs and header classes.

Revision history for this message
Adnane Belmadiaf (daker) wrote :

I see your point, so +1 from me but please fix the tabs example :

<li class="active" data-role="tab">
    <a href="#item1" id="firstTab">First</a>
</li>

here item1 is the ID of the page you want to display

review: Needs Fixing
Revision history for this message
Kyle Nitzsche (knitzsche) wrote :

The reason I have not explained that the href is supposed to be the id attribute of the page you want to display when the user clicks the Tab is that I cannot make it work myself. So let's clarify the expectations and file a bug as needed.

Suppose there is html like this and no additional app javascript to handle tab/anchor click events:
    <header data-role="header">
        <nav data-role="navbar" class="tabs" >
          <div class="tabs-inner">
            <ul>
            <li class="active" role="tab">
              <a href="#" class="tab-item">My Header</a>
            </li>
            <li class="active" role="tab">
              <a href="page2" class="tab-item">Page 2</a>
            </li>
            </ul>
          </div>
        </nav>
      </header>

      <div data-role="content">

        <div data-role="pagestack">

          <div data-role="page" id="main">
[...]
          </div>

          <div data-role="page" id="page2">
          <h1>Hello from page2</h1>
          <section data-role="list" id="item-view-content">
          </section>

        </div>

When you click the second Header Tab ("Page 2"), it does *not* cause page2 to display. I assume the expectation is that page2 DOES display.

Perhaps my expectation is incorrect? If so, am I doing wrong, or is this a bug (I don't see it).

If my understanding is correct, I certainly can document it here ASAP, but there should be a bug filed I suppose...

Revision history for this message
Adnane Belmadiaf (daker) wrote :
Revision history for this message
Kyle Nitzsche (knitzsche) wrote :
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kyle Nitzsche (knitzsche) wrote :

OK, pushed the built docs from this branch. Now using "latest" dir name:
http://people.canonical.com/~knitzsche/yuidoc-ubuntu-html5-theme/latest/

Revision history for this message
David Barth (dbarth) wrote :

The documentation is comprehensive and a very nice addition to the project. +1 for me.

I'll let you guys handle typos and updates in this MR, or as a set of bugs.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kyle Nitzsche (knitzsche) wrote :

I am having trouble figuring out what the continuous integration failure just above means and what, if anything, I need to do to fix it.

Can someone please advise?

94. By Kyle Nitzsche

Continuous Integration failures were apparently caused by missing copyright
information in three files that I copied from the yudiuoc 'simple' theme
(which I have now customized a little form Ubuntu). The Yuidoc install root
dir has a LICENSE file that states copyright and redistribution terms.
I have copied that text into the three files in this version of the simple
theme directory.

Revision history for this message
PS Jenkins bot (ps-jenkins) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '0.1/ambiance/js/buttons.js'
--- 0.1/ambiance/js/buttons.js 2013-10-19 12:21:19 +0000
+++ 0.1/ambiance/js/buttons.js 2013-11-01 20:18:13 +0000
@@ -20,12 +20,34 @@
20 * <http://www.gnu.org/licenses/>.20 * <http://www.gnu.org/licenses/>.
21 */21 */
2222
23/* Buttons */23/**
24 * A Button.
25
26 Note the Ubuntu CSS style classes: <em>success</em>, <em>warning</em>, and <em>danger</em>
27
28 * @class Button
29 * @constructor
30 * @namespace UbuntuUI
31 * @example
32 <button data-role="button" id="buttonID">text</button>
33
34 Javascript access:
35 var button = UI.button("buttonID");
36 */
24var Button = function (id) {37var Button = function (id) {
25 this.id = id;38 this.id = id;
26};39};
2740
28Button.prototype = {41Button.prototype = {
42 /**
43 * Associate a function with the button's Click event
44 * @method click
45 * @param {Function} callback - The function to execute on click
46 * @example
47 UI.button("buttonid").click(function(){
48 console.log("clicked");
49 });
50 */
29 click: function (callback) {51 click: function (callback) {
30 if ( ! document.getElementById(this.id)) {52 if ( ! document.getElementById(this.id)) {
31 throw "Invalid button ID: " + String(this.id);53 throw "Invalid button ID: " + String(this.id);
3254
=== modified file '0.1/ambiance/js/core.js'
--- 0.1/ambiance/js/core.js 2013-09-12 21:32:09 +0000
+++ 0.1/ambiance/js/core.js 2013-11-01 20:18:13 +0000
@@ -20,6 +20,24 @@
20 * <http://www.gnu.org/licenses/>20 * <http://www.gnu.org/licenses/>
21 */21 */
2222
23/**
24 * @module UbuntuUI
25 */
26
27/**
28 * UbuntuUI is the critical Ubuntu HTML5 framework class. You need to construct an UbuntuUI object and initialize it to have an Ubuntu HTML5 app. You then use this object to access Ubuntu HTML5 objects (and object methods) that correspond to the Ubuntu HTML5 DOM elements.
29
30Note: The UbuntuUI object is "UI" in all API doc examples.
31 * @class UbuntuUI
32 * @constructor
33 * @example
34 var UI = new UbuntuUI();
35 window.onload = function () {
36 UI.init();
37 UI.pagestack.push('pageid');
38 [...]
39 };
40 */
23var UbuntuUI = (function () {41var UbuntuUI = (function () {
2442
25 PAGESTACK_BACK_ID = 'ubuntu-pagestack-back';43 PAGESTACK_BACK_ID = 'ubuntu-pagestack-back';
@@ -142,28 +160,93 @@
142 }160 }
143 },161 },
144162
163 /**
164 * Required call that initializes the UbuntuUI object
165 * @method {} init
166 */
145 init: function () {167 init: function () {
146 this.__setupPage(document);168 this.__setupPage(document);
147 },169 },
148170
171 /**
172 * Gets an Ubuntu Page object
173 * @method page
174 * @param {ID} id - The element's id attrubute
175 * @return {Page} - The Page with the specified id
176 */
177 page: function (id) {
178 if (typeof Page != 'undefined' && Page ) {
179 return new Page(id);
180 }
181 },
182
183 /**
184 * Gets an Ubuntu Shape object
185 * @method shape
186 * @param {ID} id - The element's id attrubute
187 * @return {Shape} - The Shape with the specified id
188 */
189 shape: function (id) {
190 if (typeof Shape != 'undefined' && Shape ) {
191 return new Shape(id);
192 }
193 },
194
195 /**
196 * Gets an Ubuntu Button object
197 * @method button
198 * @param {ID} id - The element's id attrubute
199 * @return {Button} - The Button with the specified id
200 */
149 button: function (id) {201 button: function (id) {
150 if (typeof Button != 'undefined' && Button) {202 if (typeof Button != 'undefined' && Button) {
151 return new Button(id);203 return new Button(id);
152 }204 }
153 },205 },
154206
207 /**
208 * Gets an Ubuntu Dialog object
209 * @method dialog
210 * @param {ID} id - The element's id attrubute
211 * @return {Dialog} - The Dialog with the specified id
212 */
155 dialog: function (id) {213 dialog: function (id) {
156 if (typeof Dialog != 'undefined' && Dialog) {214 if (typeof Dialog != 'undefined' && Dialog) {
157 return new Dialog(id);215 return new Dialog(id);
158 }216 }
159 },217 },
160218
219 /**
220 * Gets an Ubuntu Popover object
221 * @method popover
222 * @param {Element} el - The element to which the Popover's position is relative
223 * @param {ID} id - The element's id attrubute
224 * @return {Popover} - The Popover with the specified id
225 */
161 popover: function (elem, id) {226 popover: function (elem, id) {
162 if (typeof Popover != 'undefined' && Popover) {227 if (typeof Popover != 'undefined' && Popover) {
163 return new Popover(elem, id);228 return new Popover(elem, id);
164 }229 }
165 },230 },
166231
232 /**
233 * Gets an Ubuntu Header object
234 * @method header
235 * @param {ID} id - The element's id attrubute
236 * @return {Header} - The Header with the specified id
237 */
238 header: function (id) {
239 if (typeof Header != 'undefined' && Header) {
240 return new Header(id);
241 }
242 },
243
244 /**
245 * Gets an Ubuntu Tabs object
246 * @method tabs
247 * @param {ID} id - The element's id attrubute
248 * @return {Tabs} - The Tabs with the specified id
249 */
167 tabs: function (selector) {250 tabs: function (selector) {
168 if (typeof Tabs != 'undefined' && Tabs) {251 if (typeof Tabs != 'undefined' && Tabs) {
169 if (selector === undefined)252 if (selector === undefined)
@@ -174,23 +257,51 @@
174 }257 }
175 },258 },
176259
260 /**
261 * Gets an Ubuntu Toolbar object
262 * @method toolbar
263 * @param {ID} id - The element's id attrubute
264 * @return {Toolbar} - The Toolbar with the specified id
265 */
177 toolbar: function (id) {266 toolbar: function (id) {
178 if (typeof Toolbar != 'undefined' && Toolbar) {267 if (typeof Toolbar != 'undefined' && Toolbar) {
179 return new Toolbar(this, id);268 return new Toolbar(this, id);
180 }269 }
181 },270 },
182271
272 /**
273 * Gets an Ubuntu List
274 * @method list
275 * @param {Selector} selector - A selector that JavaScript querySelector method understands
276 * @return {List}
277 */
183 list: function (selector) {278 list: function (selector) {
184 if (typeof List != 'undefined' && List) {279 if (typeof List != 'undefined' && List) {
185 return new List(selector);280 return new List(selector);
186 }281 }
187 },282 },
188283
284 /**
285 * Gets this UbuntuUI's single Pagestack object
286 * @method pagestack
287 * @return {Pagestack} - The Pagestack
288 */
189 get pagestack() {289 get pagestack() {
190 return this._pageStack;290 return this._pageStack;
191 }291 },
292
293 /**
294 * Gets the HTML element associated with an Ubuntu HTML5 JavaScript object
295 * @method getEl
296 * @param {UbuntuObject} object - An UbuntuUI widget object
297 * @return {Element} - The HTML element
298 */
299 getEl: function(widget) {
300 return document.getElementById(widget.id);
301 },
302
192 };303 };
193304
194 return UbuntuUI;305 return UbuntuUI;
195306
196})();
197\ No newline at end of file307\ No newline at end of file
308})();
198309
=== modified file '0.1/ambiance/js/dialogs.js'
--- 0.1/ambiance/js/dialogs.js 2013-07-17 15:27:43 +0000
+++ 0.1/ambiance/js/dialogs.js 2013-11-01 20:18:13 +0000
@@ -20,18 +20,52 @@
20 * <http://www.gnu.org/licenses/>.20 * <http://www.gnu.org/licenses/>.
21 */21 */
2222
23/* Dialogs */23/**
24 * Dialogs are modal full-screen popups that prevent other GUI interactions with the application until dismissed.
25
26Dialogs wrap arbitrary markup.
27
28Dialogs are declared inside the <em>content</em> div as a sibling to the <em>pagestack</em> div.
29 * @class Dialog
30 * @constructor
31 * @namespace UbuntuUI
32 * @example
33 <div data-role="content">
34 <div data-role="pagestack">
35 [...]
36 </div>
37 <div data-role="dialog" id="dialogID">
38 [...]
39 </div>
40 </div>
41
42 JavaScript access:
43 var dialog = UI.dialog("dialogID");
44
45 */
24var Dialog = function (id) {46var Dialog = function (id) {
25 this.dialog = document.getElementById(id);47 this.dialog = document.getElementById(id);
26};48};
2749
28Dialog.prototype = {50Dialog.prototype = {
51 /**
52 * Display a dialog by adding 'active' CSS class
53 * @method show
54 */
29 show: function () {55 show: function () {
30 this.dialog.classList.add('active');56 this.dialog.classList.add('active');
31 },57 },
58 /**
59 * Hide a dialog by removing 'active' class
60 * @method hide
61 */
32 hide: function () {62 hide: function () {
33 this.dialog.classList.remove('active');63 this.dialog.classList.remove('active');
34 },64 },
65 /**
66 * Toggle a dialog, which means removing its 'active' class if it has one, or adding the 'active' class if it does not have one
67 * @method toggle
68 */
35 toggle: function () {69 toggle: function () {
36 this.dialog.classList.toggle('active');70 this.dialog.classList.toggle('active');
37 }71 }
3872
=== added file '0.1/ambiance/js/header.js'
--- 0.1/ambiance/js/header.js 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/header.js 2013-11-01 20:18:13 +0000
@@ -0,0 +1,65 @@
1/*
2 * Copyright (C) 2013 Adnane Belmadiaf <daker@ubuntu.com>
3 * License granted by Canonical Limited
4 *
5 * This file is part of ubuntu-html5-theme.
6 *
7 * This package is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 3 of the
10 * License, or
11 * (at your option) any later version.
12
13 * This package is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>.
21 */
22
23/**
24 * An Ubuntu Header wraps Tabs. Together they provide the main navigation widget at the top of an Ubuntu HTML5 app.
25
26Declare the Header and its Tabs in HTML as a direct child of the top level Page as a sibling to the <em>content</em> div.
27######Contained list provides Page navigation
28A contained unordered list has list items, each of which has an anchor (&lt;a&gt;) whose <em>href</em> attribute is a hash char ("#") followed by a Page ID. Clicking the Header/Tabs allows the user to navigate to the Pages identified by these IDs.
29
30 * @class Header
31 * @constructor
32 * @namespace UbuntuUI
33 * @example
34 <body>
35 <div data-role="page">
36 <header data-role="header" id="headerID">
37 <div class="tabs-inner">
38 <ul data-role="tabs">
39 <li class="active" data-role="tab">
40 <a href="#main">Main</a>
41 </li>
42 <li data-role="tab">
43 <a href="#page2">Two</a>
44 </li>
45 </ul>
46 </div>
47 </header>
48 <div data-role="content">
49 [...]
50 </div>
51 </div>
52 </body>
53
54 JavaScript access:
55 var header = UI.header("headerID");
56 */
57var Header= function (id) {
58 this.id = id;
59};
60
61Header.prototype = {
62 /**
63 * Placeholder for future methods
64 */
65};
066
=== modified file '0.1/ambiance/js/list.js'
--- 0.1/ambiance/js/list.js 2013-10-30 20:51:51 +0000
+++ 0.1/ambiance/js/list.js 2013-11-01 20:18:13 +0000
@@ -20,7 +20,35 @@
20 * <http://www.gnu.org/licenses/>.20 * <http://www.gnu.org/licenses/>.
21 */21 */
2222
23/* Lists */23/**
24 * A List comes with various options, including: a <em>header</em>, main text (pushed left), an icon (pushed left), and a secondary label (pushed right).
25 * @class List
26 * @constructor
27 * @namespace UbuntuUI
28 * @example
29 <section data-role="list" id="testlist">
30 <header>My header text</header>
31 <ul>
32 <li>
33 <a href="#">Main text, to the left</a>
34 </li>
35 <li>
36 <a href="#">Main text</a>
37 <label>Right text</label>
38 </li>
39 <li>
40 <aside>
41 <img src="someicon.png">
42 </aside>
43 <a href="#">Main text</a>
44 <label>Right</label>
45 </li>
46 </ul>
47 </section>
48
49 JavaScript access:
50 var list = UI.list('[id="testlist"]');
51 */
24var List = (function () {52var List = (function () {
25 var LIST_DATA_ROLE = 'list';53 var LIST_DATA_ROLE = 'list';
2654
@@ -45,6 +73,11 @@
45 };73 };
4674
47 List.prototype = {75 List.prototype = {
76 /**
77 * Add or Set the List Header
78 * @method setHeader
79 * @param {String} text - The header text
80 */
48 setHeader: function (text) {81 setHeader: function (text) {
49 if (typeof (text) == 'string') {82 if (typeof (text) == 'string') {
50 var header = this._list.querySelectorAll('header');83 var header = this._list.querySelectorAll('header');
@@ -65,21 +98,16 @@
65 header.innerText = text;98 header.innerText = text;
66 }99 }
67 },100 },
68 /*101 /**
69 \brief Appends a item to the list102 * Append an item to a list
70103 * @method append
71 Appends a given item to the current list.104 * @param {String} text - The main text, flushed left (no markup)
72105 * @param {[String]} label - Additional text, flushed right (no markup)
73 \param text A string of text (images & custom html not supported at the moment)106 * @param {[ID]} id - An id attribute value set for the new list item (must be unique in DOM)
74 \param onclick (optional) A function callback that is to be called when the item is clicked.107 * @param {[Function]} onclick - The click callback function
75 It will be called with the clicked node as a parameter along with the value of108 * @param {[Object*]} user_data - Additional data that is passed to the click callback
76 user_data (if any).109 * @return {Element} - The created list item, or null on failure ot create
77 \param id (optional) An optional Id for the added node, the id will only be added if it does not already110 */
78 conflict with another one.
79 \param user_data (optional) An javascript entity that will be passed to the onclick callback (if any)
80 when the event has been trigger.
81 \return added item node or null
82 */
83 append: function (text, label, id, onclick, user_data) {111 append: function (text, label, id, onclick, user_data) {
84 var li = document.createElement('li');112 var li = document.createElement('li');
85 var a = document.createElement('a');113 var a = document.createElement('a');
@@ -110,45 +138,41 @@
110138
111 return li;139 return li;
112 },140 },
113 /*141 /**
114 \brief returns the nth child item from a list142 * Gets a list item &lt;li&gt; by its index, where index counting starts from 1
115143 * @method at
116 \param index Index of the child to return (0 based number)144 * @param {Number} index
117 \return selected item node or null145 * @return The list item, or null on failure
118 */146 */
119 at: function (index) {147 at: function (index) {
120 if (typeof (index) != 'number')148 if (typeof (index) != 'number')
121 return null;149 return null;
122 return this._list.querySelector('ul').querySelector('li:nth-child(' + index + ')');150 return this._list.querySelector('ul').querySelector('li:nth-child(' + index + ')');
123 },151 },
124 /*152 /**
125 \brief removes the nth child item from a list153 * Removes a list item &lt;li&gt; by its index, where index counting starts from 1
126154 * @method remove
127 \param index Index of the child to remove (0 based number)155 * @param {Number} index
128 \return nothing156 */
129 */
130 remove: function (index) {157 remove: function (index) {
131 var item = this.at(index);158 var item = this.at(index);
132 if (item) {159 if (item) {
133 item.parentNode.removeChild(item);160 item.parentNode.removeChild(item);
134 }161 }
135 },162 },
136 /*163 /**
137 \brief removes all the child items from a list164 * Removes all items from a list
138 \return nothing165 * @method removeAllItems
139 */166 */
140 removeAllItems: function () {167 removeAllItems: function () {
141 if (this._list.querySelector('ul'))168 if (this._list.querySelector('ul'))
142 this._list.querySelector('ul').innerHTML = '';169 this._list.querySelector('ul').innerHTML = '';
143 },170 },
144 /*171 /**
145 \brief iterator over the list of list items and calls a function on each one172 * Iterates over all list items and runs a provided function on each
146173 * @method forEach
147 \param func function to be called for each list item. The function174 * @param {Function} func - The function to run on each list item
148 receives the DOM node associated with the current item along with its175 */
149 index.
150 \return nothing
151 */
152 forEach: function (func) {176 forEach: function (func) {
153 if (typeof (func) !== 'function')177 if (typeof (func) !== 'function')
154 return;178 return;
155179
=== added file '0.1/ambiance/js/page.js'
--- 0.1/ambiance/js/page.js 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/page.js 2013-11-01 20:18:13 +0000
@@ -0,0 +1,62 @@
1/*
2 * Copyright (C) 2013 Adnane Belmadiaf <daker@ubuntu.com>
3 * License granted by Canonical Limited
4 *
5 * This file is part of ubuntu-html5-theme.
6 *
7 * This package is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 3 of the
10 * License, or
11 * (at your option) any later version.
12
13 * This package is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>.
21 */
22
23/**
24 * An Ubuntu app consists of a Pagestack containing one or more Pages. Each page displays full-screen. See the Pagestack class.
25
26Each Page must have an <em>id</em> attriubute. This is used to push the Page to the top of the Pagestack (see the Pagestack class).
27
28Navigation between Pages is typically provided by the Header and its Tabs. See the Header class.
29 * @class Page
30 * @constructor
31 * @namespace UbuntuUI
32 * @example
33 </body>
34 <div data-role="page">
35 <header data-role="header">
36 [...]
37 </header>
38 <div data-role="content">
39 <div data-role="pagestack">
40 <div data-role="page" id="main">
41 [...]
42 </div>
43 <div data-role="page" id="ID">
44 [...]
45 </div>
46 </div>
47 </div>
48 </div>
49 </body>
50
51 JavaScript access:
52 var page = UI.page("pageID");
53 */
54var Page = function (id) {
55 this.id = id;
56};
57
58Page.prototype = {
59 /*
60 * placeholder for future methods
61 */
62};
063
=== modified file '0.1/ambiance/js/pagestacks.js'
--- 0.1/ambiance/js/pagestacks.js 2013-10-19 12:21:19 +0000
+++ 0.1/ambiance/js/pagestacks.js 2013-11-01 20:18:13 +0000
@@ -20,8 +20,52 @@
20 * <http://www.gnu.org/licenses/>.20 * <http://www.gnu.org/licenses/>.
21 */21 */
2222
23/* Pagestack */23/**
2424 * The Pagestack manages all Pages in a stack data structure. Initially, the Pagestack contains no Pages. The <em>push()</em> method is normally executed on load to display the app starting page.
25
26 UI.pagestack.push("pageID")
27
28The topmost Page on the Pagestack is always displayed.
29
30The Pagestack is declared as a direct child of the <em>content</em> div.
31
32#####Default application wide footer
33The Pagestack contains a default <em>footer</em> (represented in JavaScript as a Toolbar), even if you do not declare one in HTML. The <em>footer</em> has a single Back button.
34#####Customized application wide footer
35This application-wide <em>footer</em> can be customized (for example, you can add Buttons) by declaring a <em>footer</em> as a direct child of the <em>pagestack</em> div (see example).
36######Page specific footers
37A <em>page</em> may declare a page-specific <em>footer</em> as a child element.
38
39 * @class Pagestack
40 * @namespace UbuntuUI
41 * @constructor
42 * @example
43
44 <div data-role="page">
45 <header data-role="header">
46 [...]
47 </header>
48 <div data-role="content">
49 <div data-role="pagestack">
50 <div data-role="page" id="main">
51 </div>
52 <div data-role="page" id="page2">
53 [...]
54 <footer data-role="footer" class="revealed" id="footerPage2">
55 [...]
56 </footer>
57 </div>
58 <footer data-role="footer" class="revealed" id="footerAppWide">
59 [...]
60 </footer>
61 </div> <!-- end of Pagestack div -->
62 </div>
63 </div>
64
65 JavaScript:
66 UI.pagestack.METHOD();
67
68 */
25var Pagestack = (function () {69var Pagestack = (function () {
2670
27 function __safeCall(f, args, errorfunc) {71 function __safeCall(f, args, errorfunc) {
@@ -81,6 +125,12 @@
81 footer.classList.add('revealed');125 footer.classList.add('revealed');
82 }126 }
83 },127 },
128 /**
129 * Push a page to the top of this pagestack
130 * @method push
131 * @param {String} id - The id attribute of the page element to be pushed
132 * @param {Object} properties - This param is not currently used
133 */
84 push: function (id, properties) {134 push: function (id, properties) {
85 try {135 try {
86 __safeCall(this.__setAllPagesVisibility.bind(this), [false]);136 __safeCall(this.__setAllPagesVisibility.bind(this), [false]);
@@ -89,21 +139,41 @@
89 this._pages.push(id);139 this._pages.push(id);
90 } catch (e) {}140 } catch (e) {}
91 },141 },
142 /**
143 * Checks for zero pages in this pagestack
144 * @method isEmpty
145 * @return {Boolean} - True when this pagestack has no pages, else false
146 */
92 isEmpty: function () {147 isEmpty: function () {
93 return this._pages.length === 0;148 return this._pages.length === 0;
94 },149 },
150 /**
151 * Gets the id attribute of the page element on top of this pagestack
152 * @method currentPage
153 * @return {PageID|Null} - The topmost page's id attribute, else null when there are no pages on this pagestack
154 */
95 currentPage: function () {155 currentPage: function () {
96 return this.isEmpty() ? null : this._pages[this._pages.length - 1];156 return this.isEmpty() ? null : this._pages[this._pages.length - 1];
97 },157 },
158 /**
159 * Gets the number of pages in this pagestack
160 * @method depth
161 * @return {Number} - The number of pages in this pagestack
162 */
98 depth: function () {163 depth: function () {
99 return this._pages.length;164 return this._pages.length;
100 },165 },
166
101 clear: function () {167 clear: function () {
102 if (this.isEmpty())168 if (this.isEmpty())
103 return;169 return;
104 __safeCall(this.__deactivate.bind(this), [this.currentPage()]);170 __safeCall(this.__deactivate.bind(this), [this.currentPage()]);
105 this._pages = [];171 this._pages = [];
106 },172 },
173 /**
174 * Pops the current page off this pagestack, which causes the next page to become the top page and to display
175 * @method pop
176 */
107 pop: function () {177 pop: function () {
108 if (this.isEmpty())178 if (this.isEmpty())
109 return;179 return;
110180
=== modified file '0.1/ambiance/js/popovers.js'
--- 0.1/ambiance/js/popovers.js 2013-08-31 14:25:59 +0000
+++ 0.1/ambiance/js/popovers.js 2013-11-01 20:18:13 +0000
@@ -20,7 +20,40 @@
20 * <http://www.gnu.org/licenses/>.20 * <http://www.gnu.org/licenses/>.
21 */21 */
2222
23/* Popover */23/**
24 * A Popover is a div containng markup that can pop up and disappear. (Unlike a Dialog, Popovers are not full screen.)
25
26A Popoves often contain a List whose items are connected to useful JavaScript functions.
27
28
29######Popover Position
30The Popover's position is set relative to a specified base element with the <em>data-gravity="LETTER"</em> attribute. LETTER values:
31
32 - 'n': the base element is above the Popover
33 - 's': the base element is below the Popover
34 - 'e': the base element is to the east of (to the right of) the Popover (in right-to-left locales)
35 - 'w': the base element is to the west of (to the left of) the Popover (in right-to-left locale)
36
37 * @class Popover
38 * @constructor
39 * @namespace UbuntuUI
40 * @param {String} elem - The element to which the Popover's position is relative
41 * @param {ID} id - The id attribute of the Popover in HTML
42 * @example
43
44 <p id="popoverBase">Text</p>
45 <div class="popover active" data-gravity="n" id="popover">
46 <ul class="list">
47 <li class="active"><a href="#">Item1</a></li>
48 <li><a href="#">Item2</a></li>
49 </ul>
50 </div>
51
52 Javascript:
53 var popBase = document.getElementByID("popoverBase");
54 var popover = UI.popover(popBase, "popover");
55 */
56
24var Popover = function (elem, id) {57var Popover = function (elem, id) {
25 this.id = id;58 this.id = id;
26 this.popover = document.getElementById(id);59 this.popover = document.getElementById(id);
@@ -30,6 +63,10 @@
30};63};
3164
32Popover.prototype = {65Popover.prototype = {
66 /**
67 * Display a Popover
68 * @method show
69 */
33 show: function () {70 show: function () {
34 if (this.popover === null) {71 if (this.popover === null) {
35 console.error('The popover with the ID #' + this.id + ' doesn\'t exist');72 console.error('The popover with the ID #' + this.id + ' doesn\'t exist');
@@ -103,12 +140,20 @@
103140
104 return this.popover;141 return this.popover;
105 },142 },
143 /**
144 * Hide a Popover
145 * @method hide
146 */
106 hide: function () {147 hide: function () {
107 this.popover.classList.remove('active');148 this.popover.classList.remove('active');
108 this.popover.style.top = '0px';149 this.popover.style.top = '0px';
109 this.popover.style.left = '0px';150 this.popover.style.left = '0px';
110 return this.popover;151 return this.popover;
111 },152 },
153 /**
154 * Toggle show/hide status of a Popover
155 * @method toggle
156 */
112 toggle: function () {157 toggle: function () {
113 if (this.popover === null) {158 if (this.popover === null) {
114 console.error('The popover with the ID #' + this.id + ' doesn\'t exist');159 console.error('The popover with the ID #' + this.id + ' doesn\'t exist');
115160
=== added file '0.1/ambiance/js/shape.js'
--- 0.1/ambiance/js/shape.js 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/shape.js 2013-11-01 20:18:13 +0000
@@ -0,0 +1,59 @@
1/*
2 * Copyright (C) 2013 Adnane Belmadiaf <daker@ubuntu.com>
3 * License granted by Canonical Limited
4 *
5 * This file is part of ubuntu-html5-theme.
6 *
7 * This package is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 3 of the
10 * License, or
11 * (at your option) any later version.
12
13 * This package is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>.
21 */
22
23/**
24 * An Ubuntu Shape contains and decorates (with CSS styles) some markup, often an <em>img</em>.
25 * @class Shape
26 * @constructor
27 * @namespace UbuntuUI
28 * @example
29 <div data-role="shape" id="shapeID">
30 <img src="URI"/>
31 </div>
32
33 JavaScript access:
34 var shape = UI.shape("shapeID");
35
36 */
37var Shape = function (id) {
38 this.id = id;
39};
40
41Shape.prototype = {
42 /**
43 * Associate a function with the Click event
44 * @method click
45 * @param {Function} - The function to execute on click
46 * @example
47 UI.shape("id").click(function(){
48 console.log("Clicked");
49 });
50 */
51 click: function (callback) {
52 if ( ! document.getElementById(this.id)) {
53 throw "Error. id attribute: " + String(this.id) + " is not present in DOM";
54 } else {
55 var el = document.getElementById(this.id);
56 el.addEventListener('click', callback);
57 }
58 },
59};
060
=== modified file '0.1/ambiance/js/tabs.js'
--- 0.1/ambiance/js/tabs.js 2013-09-12 21:32:09 +0000
+++ 0.1/ambiance/js/tabs.js 2013-11-01 20:18:13 +0000
@@ -20,7 +20,38 @@
20 * <http://www.gnu.org/licenses/>20 * <http://www.gnu.org/licenses/>
21 */21 */
2222
23/* Tabs */23/**
24 * Tabs are the standard way to provide app navigation from your application Header. See the Header class for more information.
25
26Declare the Header and Tabs in HTML as a direct child of the top level Page as a sibling to the content div.
27
28 * @class Tabs
29 * @constructor
30 * @namespace UbuntuUI
31 * @example
32 <body>
33 <div data-role="page">
34 <header data-role="header" id="headerID">
35 <div class="tabs-inner">
36 <ul data-role="tabs">
37 <li class="active" data-role="tab">
38 <a href="#main">Main</a>
39 </li>
40 <li data-role="tab">
41 <a href="#page2">Two</a>
42 </li>
43 </ul>
44 </div>
45 </header>
46 <div data-role="content">
47 [...]
48 </div>
49 </div>
50 </body>
51
52 JavaScript:
53 var tabs = UI.tabs();
54*/
24var Tabs = function (UbuntuUI, tabs) {55var Tabs = function (UbuntuUI, tabs) {
25 var pageX,56 var pageX,
26 pageY,57 pageY,
@@ -170,4 +201,4 @@
170 [].forEach.call(document.querySelectorAll('[data-role="tab"]'), function (el) {201 [].forEach.call(document.querySelectorAll('[data-role="tab"]'), function (el) {
171 el.addEventListener('click', onClicked, false);202 el.addEventListener('click', onClicked, false);
172 });203 });
173};
174\ No newline at end of file204\ No newline at end of file
205};
175206
=== modified file '0.1/ambiance/js/toolbars.js'
--- 0.1/ambiance/js/toolbars.js 2013-09-12 21:32:09 +0000
+++ 0.1/ambiance/js/toolbars.js 2013-11-01 20:18:13 +0000
@@ -20,21 +20,67 @@
20 * <http://www.gnu.org/licenses/>.20 * <http://www.gnu.org/licenses/>.
21 */21 */
2222
23/* Toolbars */23/**
24 * A Toolbar is the JavaScript representation of an Ubuntu HTML5 app <em>footer</em>.
25
26######Contained List provides buttons
27The Toolbar contains a List, where each list item is treated as a Button (see below). List items (Buttons) are pushed to the right. The default Back button always exists to the left and does not need to be declared.
28
29#####Default and custom footers
30See the Pagestack class documentation for information about the default application-wide Footer, customizing it, and adding Page-specific Footers.
31 * @class Toolbar
32 * @constructor
33 * @namespace UbuntuUI
34 * @example
35 <footer data-role="footer" class="revealed" id="footerID">
36 <div data-role="list">
37 <ul>
38 <li>
39 <a href="#" id="home">Home</a>
40 </li>
41 </ul>
42 </div>
43 </footer>
44
45 JavaScript access:
46 var toolbar = UI.footer("footerID");
47 UI.button('home').click(function () {
48 UI.pagestack.push("main");
49 });
50
51 */
52
24var Toolbar = function (UbuntuUI, id) {53var Toolbar = function (UbuntuUI, id) {
25 this.toolbar = document.getElementById(id);54 this.toolbar = document.getElementById(id);
26};55};
2756
28Toolbar.prototype = {57Toolbar.prototype = {
58 /**-
59 * Display a Toolbar
60 * @method show
61 */
29 show: function () {62 show: function () {
30 this.toolbar.classList.add('revealed');63 this.toolbar.classList.add('revealed');
31 },64 },
65 /**-
66 * Hide a Toolbar
67 * @method hide
68 */
32 hide: function () {69 hide: function () {
33 this.toolbar.classList.remove('revealed');70 this.toolbar.classList.remove('revealed');
34 },71 },
72 /**
73 * Toggle show/hide status of a Toolbar
74 * @method toggle
75 */
35 toggle: function () {76 toggle: function () {
36 this.toolbar.classList.toggle('revealed');77 this.toolbar.classList.toggle('revealed');
37 },78 },
79 /**
80 * Provide a callback function that's called with the Toolbar is touched
81 * @method touch
82 * @param {Function} function - The function that is called when the Toolbar is touched
83 */
38 touch: function (callback) {84 touch: function (callback) {
39 this.toolbar.addEventListener(UbuntuUI.touchEvents.touchEnd, callback);85 this.toolbar.addEventListener(UbuntuUI.touchEvents.touchEnd, callback);
40 }86 }
4187
=== added directory '0.1/ambiance/js/yuidoc-theme'
=== added directory '0.1/ambiance/js/yuidoc-theme/assets'
=== added directory '0.1/ambiance/js/yuidoc-theme/assets/css'
=== added file '0.1/ambiance/js/yuidoc-theme/assets/css/external-small.png'
42Binary files 0.1/ambiance/js/yuidoc-theme/assets/css/external-small.png 1970-01-01 00:00:00 +0000 and 0.1/ambiance/js/yuidoc-theme/assets/css/external-small.png 2013-11-01 20:18:13 +0000 differ88Binary files 0.1/ambiance/js/yuidoc-theme/assets/css/external-small.png 1970-01-01 00:00:00 +0000 and 0.1/ambiance/js/yuidoc-theme/assets/css/external-small.png 2013-11-01 20:18:13 +0000 differ
=== added file '0.1/ambiance/js/yuidoc-theme/assets/css/logo.png'
43Binary files 0.1/ambiance/js/yuidoc-theme/assets/css/logo.png 1970-01-01 00:00:00 +0000 and 0.1/ambiance/js/yuidoc-theme/assets/css/logo.png 2013-11-01 20:18:13 +0000 differ89Binary files 0.1/ambiance/js/yuidoc-theme/assets/css/logo.png 1970-01-01 00:00:00 +0000 and 0.1/ambiance/js/yuidoc-theme/assets/css/logo.png 2013-11-01 20:18:13 +0000 differ
=== added file '0.1/ambiance/js/yuidoc-theme/assets/css/main.css'
--- 0.1/ambiance/js/yuidoc-theme/assets/css/main.css 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/css/main.css 2013-11-01 20:18:13 +0000
@@ -0,0 +1,429 @@
1/*
2Font sizes for all selectors other than the body are given in percentages,
3with 100% equal to 13px. To calculate a font size percentage, multiply the
4desired size in pixels by 7.6923076923.
5
6Here's a quick lookup table:
7
810px - 76.923%
911px - 84.615%
1012px - 92.308%
1113px - 100%
1214px - 107.692%
1315px - 115.385%
1416px - 123.077%
1517px - 130.769%
1618px - 138.462%
1719px - 146.154%
1820px - 153.846%
19*/
20
21html {
22 background: #fff;
23 color: #333;
24 overflow-y: scroll;
25}
26
27body {
28 font: 13px/1.4 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', 'Bitstream Vera Sans', 'Helvetica', 'Arial', sans-serif;
29 margin: 0;
30 padding: 0;
31}
32
33/* -- Links ----------------------------------------------------------------- */
34a {
35 color: #DD4814;
36 text-decoration: none;
37}
38
39a:hover { text-decoration: underline; }
40
41/* "Jump to Table of Contents" link is shown to assistive tools, but hidden from
42 sight until it's focused. */
43.jump {
44 position: absolute;
45 padding: 3px 6px;
46 left: -99999px;
47 top: 0;
48}
49
50.jump:focus { left: 40%; }
51
52/* -- Paragraphs ------------------------------------------------------------ */
53p { margin: 1.3em 0; }
54dd p, td p { margin-bottom: 0; }
55dd p:first-child, td p:first-child { margin-top: 0; }
56
57/* -- Headings -------------------------------------------------------------- */
58h1, h2, h3, h4, h5, h6 {
59 color: #DD4814
60 font-family: 'Ubuntu', sans-serif;
61 font-weight: bold;
62 line-height: 1.1;
63 margin: 1.1em 0 0.5em;
64}
65
66h1 {
67 font-size: 184.6%;
68 color: #30418C;
69 margin: 0.75em 0 0.5em;
70}
71
72h2 {
73 font-size: 153.846%;
74 color: #E48A2B;
75}
76
77h3 { font-size: 138.462%; }
78
79h4 {
80 border-bottom: 1px solid #DBDFEA;
81 color: #E48A2B;
82 font-size: 115.385%;
83 font-weight: normal;
84 padding-bottom: 2px;
85}
86
87h5, h6 { font-size: 107.692%; }
88
89/* -- Code and examples ----------------------------------------------------- */
90code, kbd, pre, samp {
91 font-family: Menlo, Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
92 font-size: 92.308%;
93 line-height: 1.35;
94}
95
96p code, p kbd, p samp {
97 background: #FCFBFA;
98 border: 1px solid #EFEEED;
99 padding: 0 3px;
100}
101
102a code, a kbd, a samp,
103pre code, pre kbd, pre samp,
104table code, table kbd, table samp,
105.intro code, .intro kbd, .intro samp,
106.toc code, .toc kbd, .toc samp {
107 background: none;
108 border: none;
109 padding: 0;
110}
111
112pre.code, pre.terminal, pre.cmd {
113 overflow-x: auto;
114 *overflow-x: scroll;
115 padding: 0.3em 0.6em;
116}
117
118pre.code {
119 background: #FCFBFA;
120 border: 1px solid #EFEEED;
121 border-left-width: 5px;
122}
123
124pre.terminal, pre.cmd {
125 background: #F0EFFC;
126 border: 1px solid #D0CBFB;
127 border-left: 5px solid #D0CBFB;
128}
129
130/* Don't reduce the font size of <code>/<kbd>/<samp> elements inside <pre>
131 blocks. */
132pre code, pre kbd, pre samp { font-size: 100%; }
133
134/* Used to denote text that shouldn't be selectable, such as line numbers or
135 shell prompts. Guess which browser this doesn't work in. */
136.noselect {
137 -moz-user-select: -moz-none;
138 -khtml-user-select: none;
139 -webkit-user-select: none;
140 -o-user-select: none;
141 user-select: none;
142}
143
144/* -- Lists ----------------------------------------------------------------- */
145dd { margin: 0.2em 0 0.7em 1em; }
146dl { margin: 1em 0; }
147dt { font-weight: bold; }
148
149/* -- Tables ---------------------------------------------------------------- */
150caption, th { text-align: left; }
151
152table {
153 border-collapse: collapse;
154 width: 100%;
155}
156
157td, th {
158 border: 1px solid #fff;
159 padding: 5px 12px;
160 vertical-align: top;
161}
162
163td { background: #E6E9F5; }
164td dl { margin: 0; }
165td dl dl { margin: 1em 0; }
166td pre:first-child { margin-top: 0; }
167
168th {
169 background: #D2D7E6;/*#97A0BF*/
170 border-bottom: none;
171 border-top: none;
172 color: #000;/*#FFF1D5*/
173 font-family: 'Trebuchet MS', sans-serif;
174 font-weight: bold;
175 line-height: 1.3;
176 white-space: nowrap;
177}
178
179
180/* -- Layout and Content ---------------------------------------------------- */
181#doc {
182 margin: auto;
183 min-width: 1024px;
184}
185
186#main { width: 754px; }
187#sidebar { width: 270px; margin: 0 15px; }
188
189.content { padding: 0 20px 0 25px; }
190
191/* -- Sidebar --------------------------------------------------------------- */
192.sidebox {
193 background: #F9F9FC;/*E6E9F5*/
194 border: 1px solid #D4D8EB;
195
196 -moz-border-radius: 4px;
197 -webkit-border-radius: 4px;
198 border-radius: 4px;
199 -moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
200 -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
201 box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
202 font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'Helvetica', 'Arial', sans-serif;
203 margin: 0 0 15px 0;
204 padding-bottom: 1px;
205}
206
207.sidebox h2 {
208 background: #E5E6F1;
209 -moz-border-radius: 4px 4px 0 0;
210 -webkit-border-radius: 4px 4px 0 0;
211 border-radius: 4px 4px 0 0;
212 color: #5E6BA4;
213 font-weight: bold;
214 font-size: 107.692%;
215 margin: 0;
216 padding: 4px 7px 5px;
217}
218
219.sidebox .bd {
220 font-size: 84.615%;
221 padding: 0 5px 0 8px;
222}
223
224.sidebox li { list-style-type: disc; color:#D4D5E3; }
225
226.sidebox ol, .sidebox ul {
227 margin-left: 0;
228 padding-left: 16px;
229}
230
231.sidebox ol ol, .sidebox ol ul,
232.sidebox ul ol, .sidebox ul ul {
233 margin: 0;
234 padding-left: 16px;
235}
236
237/* -- Table of Contents ----------------------------------------------------- */
238
239/* The #toc id refers to the single global table of contents, while the .toc
240 class refers to generic TOC lists that could be used throughout the page. */
241
242.toc code, .toc kbd, .toc samp { font-size: 100%; }
243.toc li { font-weight: bold; }
244.toc li li { font-weight: normal; }
245
246/* -- Intro and Example Boxes ----------------------------------------------- */
247.intro, .example { margin-bottom: 2em; }
248
249.example {
250 -moz-border-radius: 4px;
251 -webkit-border-radius: 4px;
252 border-radius: 4px;
253 -moz-box-shadow: 0 0 5px #bfbfbf;
254 -webkit-box-shadow: 0 0 5px #bfbfbf;
255 box-shadow: 0 0 5px #bfbfbf;
256 padding: 1em;
257}
258
259.intro {
260 background: none repeat scroll 0 0 #F0F1F8; border: 1px solid #D4D8EB; padding: 0 1em;
261}
262
263/* -- Other Styles ---------------------------------------------------------- */
264
265/* These are probably YUI-specific, and should be moved out of Selleck's default
266 theme. */
267
268.button {
269 border: 1px solid #dadada;
270 -moz-border-radius: 3px;
271 -webkit-border-radius: 3px;
272 border-radius: 3px;
273 color: #444;
274 display: inline-block;
275 font-family: Helvetica, Arial, sans-serif;
276 font-size: 92.308%;
277 font-weight: bold;
278 padding: 4px 13px 3px;
279 -moz-text-shadow: 1px 1px 0 #fff;
280 -webkit-text-shadow: 1px 1px 0 #fff;
281 text-shadow: 1px 1px 0 #fff;
282 white-space: nowrap;
283
284 background: #EFEFEF; /* old browsers */
285 background: -moz-linear-gradient(top, #f5f5f5 0%, #efefef 50%, #e5e5e5 51%, #dfdfdf 100%); /* firefox */
286 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(50%,#efefef), color-stop(51%,#e5e5e5), color-stop(100%,#dfdfdf)); /* webkit */
287 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dfdfdf',GradientType=0 ); /* ie */
288}
289
290.button:hover {
291 border-color: #466899;
292 color: #fff;
293 text-decoration: none;
294 -moz-text-shadow: 1px 1px 0 #222;
295 -webkit-text-shadow: 1px 1px 0 #222;
296 text-shadow: 1px 1px 0 #222;
297
298 background: #6396D8; /* old browsers */
299 background: -moz-linear-gradient(top, #6396D8 0%, #5A83BC 50%, #547AB7 51%, #466899 100%); /* firefox */
300 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6396D8), color-stop(50%,#5A83BC), color-stop(51%,#547AB7), color-stop(100%,#466899)); /* webkit */
301 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6396D8', endColorstr='#466899',GradientType=0 ); /* ie */
302}
303
304.newwindow { text-align: center; }
305
306.header .version em {
307 display: block;
308 text-align: right;
309}
310
311.yui3-skin-sam #classdocs .yui3-tabview-panel {
312 background-color: transparent;
313}
314
315.yui3-skin-sam #classdocs .yui3-tabview-panel {
316 border: none;
317}
318
319.yui3-skin-sam .yui3-tabview .yui3-tab,
320.yui3-skin-sam .yui3-tabview .yui3-tab-selected,
321.yui3-skin-sam .yui3-tabview .yui3-tab-hover {
322 background: -moz-linear-gradient(center top , #F4F0EC 0%, #D6D2CE 100%) repeat scroll 0 0 transparent;
323 border-bottom: 1px solid #DEDCD9;
324 border-right: 1px solid #CDCBC8;
325 border-left: 1px solid #CDCBC8;
326 border-top: 1px solid #DADADA;
327 color: #333333;
328 text-decoration: none;
329}
330.yui3-skin-sam .yui3-tabview .yui3-tab-label,
331.yui3-skin-sam .yui3-tabview .yui3-tab-selected .yui3-tab-label {
332 border: none;
333 background: none;
334 font-size: 100%;
335 color: #000;
336}
337
338.yui3-skin-sam .yui3-tabview .yui3-tab-selected,
339.yui3-skin-sam .yui3-tabview .yui3-tab-hover {
340 background: none;
341 background-color: #fff;
342 border-bottom-color: #FFFFFF;
343 border-top: 2px solid #8193C9;
344 font-weight: bold;
345 color: #000;
346
347}
348
349.yui3-skin-sam .yui3-tabview-list {
350 border-color: #DFDFDF;
351 border-width: 0 0 1px;
352}
353
354
355a.external {
356 background-image: url(external-small.png);
357 background-repeat: no-repeat;
358 background-position: 0 0;
359 padding-left: 16px;
360}
361
362#classdocs .item {
363 border-bottom: 1px solid #466899;
364 margin: 1em 0;
365 padding: 1.5em;
366}
367
368#classdocs .item .params p,
369 #classdocs .item .returns p,{
370 display: inline;
371}
372
373#classdocs .item em code, #classdocs .item em.comment {
374 color: green;
375}
376
377#classdocs .item em.comment a {
378 color: green;
379 text-decoration: underline;
380}
381
382#classdocs .foundat {
383 font-size: 11px;
384 font-style: normal;
385}
386
387.attrs .emits {
388 margin-left: 2em;
389 padding: .5em;
390 border-left: 1px dashed #ccc;
391}
392
393abbr {
394 border-bottom: 1px dashed #ccc;
395 font-size: 80%;
396 cursor: help;
397}
398
399.prettyprint li.L0,
400.prettyprint li.L1,
401.prettyprint li.L2,
402.prettyprint li.L3,
403.prettyprint li.L5,
404.prettyprint li.L6,
405.prettyprint li.L7,
406.prettyprint li.L8 {
407 list-style: decimal;
408}
409
410ul li p {
411 margin-top: 0;
412}
413
414.method .name {
415 font-size: 110%;
416}
417
418#hd {
419 background: -moz-linear-gradient(center top , #DCDBD9 0%, #F6F5F3 100%) repeat scroll 0 0 transparent;
420 border-bottom: 1px solid #DFDFDF;
421 padding: 0 15px 1px 20px;
422 margin-bottom: 15px;
423}
424
425#hd img {
426 margin-right: 10px;
427 vertical-align: middle;
428}
429
0430
=== added directory '0.1/ambiance/js/yuidoc-theme/assets/js'
=== added file '0.1/ambiance/js/yuidoc-theme/assets/js/tabs.js'
--- 0.1/ambiance/js/yuidoc-theme/assets/js/tabs.js 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/js/tabs.js 2013-11-01 20:18:13 +0000
@@ -0,0 +1,67 @@
1/*
2 * Copyright 2011 Yahoo! Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the Yahoo! Inc. nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28
29
30YUI({
31 insertBefore: 'site_styles'
32}).use('tabview', function(Y) {
33 var classdocs = Y.one('#classdocs'),
34 tabviewIndexTable = {};
35 if (classdocs) {
36 if (classdocs.all('li').size()) {
37 var tabview = new Y.TabView({ srcNode: classdocs });
38 tabview.render();
39 classdocs.all('li a').each(function (item, index) {
40 var hash = item.get(['hash']);
41 type = hash.substring(1);
42 if (!tabviewIndexTable[type]) {
43 tabviewIndexTable[type] = index;
44 }
45 })
46 Y.all('.sidebox.on-page').each(function (item, index) {
47 var children = item.all('li a');
48 children.each(function (cItem, cIndex) {
49 return function () {
50 var handleClick = function (e) {
51 var node = Y.one(this),
52 hash = node.get(['hash']),
53 hashValue = hash.substring(1).split('_'),
54 type = hashValue.shift(),
55 ogKey = hashValue.join('_'); // in case the hash had other underscores
56 if (tabviewIndexTable[type] > -1 && tabviewIndexTable[type] !== currentTab) {
57 currentTab = tabviewIndexTable[type];
58 tabview.selectChild(tabviewIndexTable[type]);
59 }
60 }
61 Y.on('click', handleClick, cItem)
62 }()
63 })
64 });
65 }
66 }
67});
068
=== added file '0.1/ambiance/js/yuidoc-theme/assets/js/yui-prettify.js'
--- 0.1/ambiance/js/yuidoc-theme/assets/js/yui-prettify.js 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/js/yui-prettify.js 2013-11-01 20:18:13 +0000
@@ -0,0 +1,44 @@
1/*
2 * Copyright 2011 Yahoo! Inc.
3 * All rights reserved.
4 *-
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the Yahoo! Inc. nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *-
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28YUI().use('node', function(Y) {
29 var code = Y.all('.prettyprint.linenums');
30 if (code.size()) {
31 code.each(function(c) {
32 var lis = c.all('ol li'),
33 l = 1;
34 lis.each(function(n) {
35 n.prepend('<a name="LINENUM_' + l + '"></a>');
36 l++;
37 });
38 });
39 var h = location.hash;
40 location.hash = '';
41 h = h.replace('LINE_', 'LINENUM_');
42 location.hash = h;
43 }
44});
045
=== added directory '0.1/ambiance/js/yuidoc-theme/assets/vendor'
=== added directory '0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify'
=== added file '0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/CHANGES.html'
--- 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/CHANGES.html 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/CHANGES.html 2013-11-01 20:18:13 +0000
@@ -0,0 +1,130 @@
1<html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>Change Log</title>
5 </head>
6 <body bgcolor="white">
7 <a style="float:right" href="README.html">README</a>
8
9 <h1>Known Issues</h1>
10 <ul>
11 <li>Perl formatting is really crappy. Partly because the author is lazy and
12 partly because Perl is
13 <a href="http://www.perlmonks.org/?node_id=663393">hard</a> to parse.
14 <li>On some browsers, <code>&lt;code&gt;</code> elements with newlines in the text
15 which use CSS to specify <code>white-space:pre</code> will have the newlines
16 improperly stripped if the element is not attached to the document at the time
17 the stripping is done. Also, on IE 6, all newlines will be stripped from
18 <code>&lt;code&gt;</code> elements because of the way IE6 produces
19 <code>innerHTML</code>. Workaround: use <code>&lt;pre&gt;</code> for code with
20 newlines.
21 </ul>
22
23 <h1>Change Log</h1>
24 <h2>29 March 2007</h2>
25 <ul>
26 <li>Added <a href="tests/prettify_test.html#PHP">tests</a> for PHP support
27 to address
28 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=3"
29 >issue 3</a>.
30 <li>Fixed
31 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=6"
32 >bug</a>: <code>prettyPrintOne</code> was not halting. This was not
33 reachable through the normal entry point.
34 <li>Fixed
35 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
36 >bug</a>: recursing into a script block or PHP tag that was not properly
37 closed would not silently drop the content.
38 (<a href="tests/prettify_test.html#issue4">test</a>)
39 <li>Fixed
40 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=8"
41 >bug</a>: was eating tabs
42 (<a href="tests/prettify_test.html#issue8">test</a>)
43 <li>Fixed entity handling so that the caveat
44 <blockquote>
45 <p>Caveats: please properly escape less-thans. <tt>x&amp;lt;y</tt>
46 instead of <tt>x&lt;y</tt>, and use <tt>&quot;</tt> instead of
47 <tt>&amp;quot;</tt> for string delimiters.</p>
48 </blockquote>
49 is no longer applicable.
50 <li>Added noisefree's C#
51 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
52 >patch</a>
53 <li>Added a <a href="http://google-code-prettify.googlecode.com/files/prettify-small.zip">distribution</a> that has comments and
54 whitespace removed to reduce download size from 45.5kB to 12.8kB.
55 </ul>
56 <h2>4 Jul 2008</h2>
57 <ul>
58 <li>Added <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=17">language specific formatters</a> that are triggered by the presence
59 of a <code>lang-&lt;language-file-extension&gt;</code></li>
60 <li>Fixed <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=29">bug</a>: python handling of <code>'''string'''</code>
61 <li>Fixed bug: <code>/</code> in regex <code>[charsets] should not end regex</code>
62 </ul>
63 <h2>5 Jul 2008</h2>
64 <ul>
65 <li>Defined language extensions for Lisp and Lua</code>
66 </ul>
67 <h2>14 Jul 2008</h2>
68 <ul>
69 <li>Language handlers for F#, OCAML, SQL</code>
70 <li>Support for <code>nocode</code> spans to allow embedding of line
71 numbers and code annotations which should not be styled or otherwise
72 affect the tokenization of prettified code.
73 See the issue 22
74 <a href="tests/prettify_test.html#issue22">testcase</a>.</code>
75 </ul>
76 <h2>6 Jan 2009</h2>
77 <ul>
78 <li>Language handlers for Visual Basic, Haskell, CSS, and WikiText</li>
79 <li>Added <tt>.mxml</tt> extension to the markup style handler for
80 Flex <a href="http://en.wikipedia.org/wiki/MXML">MXML files</a>. See
81 <a
82 href="http://code.google.com/p/google-code-prettify/issues/detail?id=37"
83 >issue 37</a>.
84 <li>Added <tt>.m</tt> extension to the C style handler so that Objective
85 C source files properly highlight. See
86 <a
87 href="http://code.google.com/p/google-code-prettify/issues/detail?id=58"
88 >issue 58</a>.
89 <li>Changed HTML lexer to use the same embedded source mechanism as the
90 wiki language handler, and changed to use the registered
91 CSS handler for STYLE element content.
92 </ul>
93 <h2>21 May 2009</h2>
94 <ul>
95 <li>Rewrote to improve performance on large files.
96 See <a href="http://mikesamuel.blogspot.com/2009/05/efficient-parsing-in-javascript.html">benchmarks</a>.</li>
97 <li>Fixed bugs with highlighting of Haskell line comments, Lisp
98 number literals, Lua strings, C preprocessor directives,
99 newlines in Wiki code on Windows, and newlines in IE6.</li>
100 </ul>
101 <h2>14 August 2009</h2>
102 <ul>
103 <li>Fixed prettifying of <code>&lt;code&gt;</code> blocks with embedded newlines.
104 </ul>
105 <h2>3 October 2009</h2>
106 <ul>
107 <li>Fixed prettifying of XML/HTML tags that contain uppercase letters.
108 </ul>
109 <h2>19 July 2010</h2>
110 <ul>
111 <li>Added support for line numbers. Bug
112 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=22"
113 >22</a></li>
114 <li>Added YAML support. Bug
115 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=123"
116 >123</a></li>
117 <li>Added VHDL support courtesy Le Poussin.</li>
118 <li>IE performance improvements. Bug
119 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=102"
120 >102</a> courtesy jacobly.</li>
121 <li>A variety of markup formatting fixes courtesy smain and thezbyg.</li>
122 <li>Fixed copy and paste in IE[678].
123 <li>Changed output to use <code>&amp;#160;</code> instead of
124 <code>&amp;nbsp;</code> so that the output works when embedded in XML.
125 Bug
126 <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=108"
127 >108</a>.</li>
128 </ul>
129 </body>
130</html>
0131
=== added file '0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/COPYING'
--- 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/COPYING 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/COPYING 2013-11-01 20:18:13 +0000
@@ -0,0 +1,202 @@
1
2 Apache License
3 Version 2.0, January 2004
4 http://www.apache.org/licenses/
5
6 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
8 1. Definitions.
9
10 "License" shall mean the terms and conditions for use, reproduction,
11 and distribution as defined by Sections 1 through 9 of this document.
12
13 "Licensor" shall mean the copyright owner or entity authorized by
14 the copyright owner that is granting the License.
15
16 "Legal Entity" shall mean the union of the acting entity and all
17 other entities that control, are controlled by, or are under common
18 control with that entity. For the purposes of this definition,
19 "control" means (i) the power, direct or indirect, to cause the
20 direction or management of such entity, whether by contract or
21 otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 outstanding shares, or (iii) beneficial ownership of such entity.
23
24 "You" (or "Your") shall mean an individual or Legal Entity
25 exercising permissions granted by this License.
26
27 "Source" form shall mean the preferred form for making modifications,
28 including but not limited to software source code, documentation
29 source, and configuration files.
30
31 "Object" form shall mean any form resulting from mechanical
32 transformation or translation of a Source form, including but
33 not limited to compiled object code, generated documentation,
34 and conversions to other media types.
35
36 "Work" shall mean the work of authorship, whether in Source or
37 Object form, made available under the License, as indicated by a
38 copyright notice that is included in or attached to the work
39 (an example is provided in the Appendix below).
40
41 "Derivative Works" shall mean any work, whether in Source or Object
42 form, that is based on (or derived from) the Work and for which the
43 editorial revisions, annotations, elaborations, or other modifications
44 represent, as a whole, an original work of authorship. For the purposes
45 of this License, Derivative Works shall not include works that remain
46 separable from, or merely link (or bind by name) to the interfaces of,
47 the Work and Derivative Works thereof.
48
49 "Contribution" shall mean any work of authorship, including
50 the original version of the Work and any modifications or additions
51 to that Work or Derivative Works thereof, that is intentionally
52 submitted to Licensor for inclusion in the Work by the copyright owner
53 or by an individual or Legal Entity authorized to submit on behalf of
54 the copyright owner. For the purposes of this definition, "submitted"
55 means any form of electronic, verbal, or written communication sent
56 to the Licensor or its representatives, including but not limited to
57 communication on electronic mailing lists, source code control systems,
58 and issue tracking systems that are managed by, or on behalf of, the
59 Licensor for the purpose of discussing and improving the Work, but
60 excluding communication that is conspicuously marked or otherwise
61 designated in writing by the copyright owner as "Not a Contribution."
62
63 "Contributor" shall mean Licensor and any individual or Legal Entity
64 on behalf of whom a Contribution has been received by Licensor and
65 subsequently incorporated within the Work.
66
67 2. Grant of Copyright License. Subject to the terms and conditions of
68 this License, each Contributor hereby grants to You a perpetual,
69 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 copyright license to reproduce, prepare Derivative Works of,
71 publicly display, publicly perform, sublicense, and distribute the
72 Work and such Derivative Works in Source or Object form.
73
74 3. Grant of Patent License. Subject to the terms and conditions of
75 this License, each Contributor hereby grants to You a perpetual,
76 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 (except as stated in this section) patent license to make, have made,
78 use, offer to sell, sell, import, and otherwise transfer the Work,
79 where such license applies only to those patent claims licensable
80 by such Contributor that are necessarily infringed by their
81 Contribution(s) alone or by combination of their Contribution(s)
82 with the Work to which such Contribution(s) was submitted. If You
83 institute patent litigation against any entity (including a
84 cross-claim or counterclaim in a lawsuit) alleging that the Work
85 or a Contribution incorporated within the Work constitutes direct
86 or contributory patent infringement, then any patent licenses
87 granted to You under this License for that Work shall terminate
88 as of the date such litigation is filed.
89
90 4. Redistribution. You may reproduce and distribute copies of the
91 Work or Derivative Works thereof in any medium, with or without
92 modifications, and in Source or Object form, provided that You
93 meet the following conditions:
94
95 (a) You must give any other recipients of the Work or
96 Derivative Works a copy of this License; and
97
98 (b) You must cause any modified files to carry prominent notices
99 stating that You changed the files; and
100
101 (c) You must retain, in the Source form of any Derivative Works
102 that You distribute, all copyright, patent, trademark, and
103 attribution notices from the Source form of the Work,
104 excluding those notices that do not pertain to any part of
105 the Derivative Works; and
106
107 (d) If the Work includes a "NOTICE" text file as part of its
108 distribution, then any Derivative Works that You distribute must
109 include a readable copy of the attribution notices contained
110 within such NOTICE file, excluding those notices that do not
111 pertain to any part of the Derivative Works, in at least one
112 of the following places: within a NOTICE text file distributed
113 as part of the Derivative Works; within the Source form or
114 documentation, if provided along with the Derivative Works; or,
115 within a display generated by the Derivative Works, if and
116 wherever such third-party notices normally appear. The contents
117 of the NOTICE file are for informational purposes only and
118 do not modify the License. You may add Your own attribution
119 notices within Derivative Works that You distribute, alongside
120 or as an addendum to the NOTICE text from the Work, provided
121 that such additional attribution notices cannot be construed
122 as modifying the License.
123
124 You may add Your own copyright statement to Your modifications and
125 may provide additional or different license terms and conditions
126 for use, reproduction, or distribution of Your modifications, or
127 for any such Derivative Works as a whole, provided Your use,
128 reproduction, and distribution of the Work otherwise complies with
129 the conditions stated in this License.
130
131 5. Submission of Contributions. Unless You explicitly state otherwise,
132 any Contribution intentionally submitted for inclusion in the Work
133 by You to the Licensor shall be under the terms and conditions of
134 this License, without any additional terms or conditions.
135 Notwithstanding the above, nothing herein shall supersede or modify
136 the terms of any separate license agreement you may have executed
137 with Licensor regarding such Contributions.
138
139 6. Trademarks. This License does not grant permission to use the trade
140 names, trademarks, service marks, or product names of the Licensor,
141 except as required for reasonable and customary use in describing the
142 origin of the Work and reproducing the content of the NOTICE file.
143
144 7. Disclaimer of Warranty. Unless required by applicable law or
145 agreed to in writing, Licensor provides the Work (and each
146 Contributor provides its Contributions) on an "AS IS" BASIS,
147 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 implied, including, without limitation, any warranties or conditions
149 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 PARTICULAR PURPOSE. You are solely responsible for determining the
151 appropriateness of using or redistributing the Work and assume any
152 risks associated with Your exercise of permissions under this License.
153
154 8. Limitation of Liability. In no event and under no legal theory,
155 whether in tort (including negligence), contract, or otherwise,
156 unless required by applicable law (such as deliberate and grossly
157 negligent acts) or agreed to in writing, shall any Contributor be
158 liable to You for damages, including any direct, indirect, special,
159 incidental, or consequential damages of any character arising as a
160 result of this License or out of the use or inability to use the
161 Work (including but not limited to damages for loss of goodwill,
162 work stoppage, computer failure or malfunction, or any and all
163 other commercial damages or losses), even if such Contributor
164 has been advised of the possibility of such damages.
165
166 9. Accepting Warranty or Additional Liability. While redistributing
167 the Work or Derivative Works thereof, You may choose to offer,
168 and charge a fee for, acceptance of support, warranty, indemnity,
169 or other liability obligations and/or rights consistent with this
170 License. However, in accepting such obligations, You may act only
171 on Your own behalf and on Your sole responsibility, not on behalf
172 of any other Contributor, and only if You agree to indemnify,
173 defend, and hold each Contributor harmless for any liability
174 incurred by, or claims asserted against, such Contributor by reason
175 of your accepting any such warranty or additional liability.
176
177 END OF TERMS AND CONDITIONS
178
179 APPENDIX: How to apply the Apache License to your work.
180
181 To apply the Apache License to your work, attach the following
182 boilerplate notice, with the fields enclosed by brackets "[]"
183 replaced with your own identifying information. (Don't include
184 the brackets!) The text should be enclosed in the appropriate
185 comment syntax for the file format. We also recommend that a
186 file or class name and description of purpose be included on the
187 same "printed page" as the copyright notice for easier
188 identification within third-party archives.
189
190 Copyright [yyyy] [name of copyright owner]
191
192 Licensed under the Apache License, Version 2.0 (the "License");
193 you may not use this file except in compliance with the License.
194 You may obtain a copy of the License at
195
196 http://www.apache.org/licenses/LICENSE-2.0
197
198 Unless required by applicable law or agreed to in writing, software
199 distributed under the License is distributed on an "AS IS" BASIS,
200 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 See the License for the specific language governing permissions and
202 limitations under the License.
0203
=== added file '0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/README.html'
--- 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/README.html 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/README.html 2013-11-01 20:18:13 +0000
@@ -0,0 +1,203 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4<html>
5 <head>
6 <title>Javascript code prettifier</title>
7
8 <link href="src/prettify.css" type="text/css" rel="stylesheet" />
9
10 <script src="src/prettify.js" type="text/javascript"></script>
11
12 <style type="text/css">
13 body { margin-left: .5in }
14 h1, h2, h3, h4, .footer { margin-left: -.4in; }
15 </style>
16 </head>
17
18 <body onload="prettyPrint()" bgcolor="white">
19 <small style="float: right">Languages : <a href="README-zh-Hans.html">CH</a></small>
20 <h1>Javascript code prettifier</h1>
21
22 <h2>Setup</h2>
23 <ol>
24 <li><a href="http://code.google.com/p/google-code-prettify/downloads/list">Download</a> a distribution
25 <li>Include the script and stylesheets in your document
26 (you will need to make sure the css and js file are on your server, and
27 adjust the paths in the <tt>script</tt> and <tt>link</tt> tag)
28 <pre class="prettyprint">
29&lt;link href="prettify.css" type="text/css" rel="stylesheet" />
30&lt;script type="text/javascript" src="prettify.js">&lt;/script></pre>
31 <li>Add <code class="prettyprint lang-html">onload="prettyPrint()"</code> to your
32 document's body tag.
33 <li>Modify the stylesheet to get the coloring you prefer</li>
34 </ol>
35
36 <h2>Usage</h2>
37 <p>Put code snippets in
38 <tt>&lt;pre class="prettyprint"&gt;...&lt;/pre&gt;</tt>
39 or <tt>&lt;code class="prettyprint"&gt;...&lt;/code&gt;</tt>
40 and it will automatically be pretty printed.
41
42 <table summary="code examples">
43 <tr>
44 <th>The original
45 <th>Prettier
46 <tr>
47 <td><pre style="border: 1px solid #888;padding: 2px"
48 ><a name="voila1"></a>class Voila {
49public:
50 // Voila
51 static const string VOILA = "Voila";
52
53 // will not interfere with embedded <a href="#voila1">tags</a>.
54}</pre>
55
56 <td><pre class="prettyprint"><a name="voila2"></a>class Voila {
57public:
58 // Voila
59 static const string VOILA = "Voila";
60
61 // will not interfere with embedded <a href="#voila2">tags</a>.
62}</pre>
63 </table>
64
65 <h2>FAQ</h2>
66 <h3 id="langs">Which languages does it work for?</h3>
67 <p>The comments in <tt>prettify.js</tt> are authoritative but the lexer
68 should work on a number of languages including C and friends,
69 Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, and Makefiles.
70 It works passably on Ruby, PHP, VB, and Awk and a decent subset of Perl
71 and Ruby, but, because of commenting conventions, doesn't work on
72 Smalltalk, or CAML-like languages.</p>
73
74 <p>LISPy languages are supported via an extension:
75 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lisp.js"
76 ><code>lang-lisp.js</code></a>.</p>
77 <p>And similarly for
78 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-css.js"
79 ><code>CSS</code></a>,
80 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-hs.js"
81 ><code>Haskell</code></a>,
82 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-lua.js"
83 ><code>Lua</code></a>,
84 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-ml.js"
85 ><code>OCAML, SML, F#</code></a>,
86 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-vb.js"
87 ><code>Visual Basic</code></a>,
88 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-sql.js"
89 ><code>SQL</code></a>,
90 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-proto.js"
91 ><code>Protocol Buffers</code></a>, and
92 <a href="http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-wiki.js"
93 ><code>WikiText</code></a>..
94
95 <p>If you'd like to add an extension for your favorite language, please
96 look at <tt>src/lang-lisp.js</tt> and file an
97 <a href="http://code.google.com/p/google-code-prettify/issues/list"
98 >issue</a> including your language extension, and a testcase.</p>
99
100 <h3>How do I specify which language my code is in?</h3>
101 <p>You don't need to specify the language since <code>prettyprint()</code>
102 will guess. You can specify a language by specifying the language extension
103 along with the <code>prettyprint</code> class like so:</p>
104 <pre class="prettyprint lang-html"
105>&lt;pre class=&quot;prettyprint <b>lang-html</b>&quot;&gt;
106 The lang-* class specifies the language file extensions.
107 File extensions supported by default include
108 "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html",
109 "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh",
110 "xhtml", "xml", "xsl".
111&lt;/pre&gt;</pre>
112
113 <h3>It doesn't work on <tt>&lt;obfuscated code sample&gt;</tt>?</h3>
114 <p>Yes. Prettifying obfuscated code is like putting lipstick on a pig
115 &mdash; i.e. outside the scope of this tool.</p>
116
117 <h3>Which browsers does it work with?</h3>
118 <p>It's been tested with IE 6, Firefox 1.5 &amp; 2, and Safari 2.0.4.
119 Look at <a href="tests/prettify_test.html">the test page</a> to see if it
120 works in your browser.</p>
121
122 <h3>What's changed?</h3>
123 <p>See the <a href="CHANGES.html">change log</a></p>
124
125 <h3>Why doesn't Prettyprinting of strings work on WordPress?</h3>
126 <p>Apparently wordpress does "smart quoting" which changes close quotes.
127 This causes end quotes to not match up with open quotes.
128 <p>This breaks prettifying as well as copying and pasting of code samples.
129 See
130 <a href="http://wordpress.org/support/topic/125038"
131 >WordPress's help center</a> for info on how to stop smart quoting of code
132 snippets.</p>
133
134 <h3 id="linenums">How do I put line numbers in my code?</h3>
135 <p>You can use the <code>linenums</code> class to turn on line
136 numbering. If your code doesn't start at line number 1, you can
137 add a colon and a line number to the end of that class as in
138 <code>linenums:52</code>.
139
140 <p>For example
141<pre class="prettyprint">&lt;pre class="prettyprint linenums:<b>4</b>"
142&gt;// This is line 4.
143foo();
144bar();
145baz();
146boo();
147far();
148faz();
149&lt;pre&gt;</pre>
150 produces
151<pre class="prettyprint linenums:4"
152>// This is line 4.
153foo();
154bar();
155baz();
156boo();
157far();
158faz();
159</pre>
160
161 <h3>How do I prevent a portion of markup from being marked as code?</h3>
162 <p>You can use the <code>nocode</code> class to identify a span of markup
163 that is not code.
164<pre class="prettyprint">&lt;pre class=prettyprint&gt;
165int x = foo(); /* This is a comment &lt;span class="nocode"&gt;This is not code&lt;/span&gt;
166 Continuation of comment */
167int y = bar();
168&lt;/pre&gt;</pre>
169produces
170<pre class="prettyprint">
171int x = foo(); /* This is a comment <span class="nocode">This is not code</span>
172 Continuation of comment */
173int y = bar();
174</pre>
175
176 <p>For a more complete example see the issue22
177 <a href="tests/prettify_test.html#issue22">testcase</a>.</p>
178
179 <h3>I get an error message "a is not a function" or "opt_whenDone is not a function"</h3>
180 <p>If you are calling <code>prettyPrint</code> via an event handler, wrap it in a function.
181 Instead of doing
182 <blockquote>
183 <code class="prettyprint lang-js"
184 >addEventListener('load', prettyPrint, false);</code>
185 </blockquote>
186 wrap it in a closure like
187 <blockquote>
188 <code class="prettyprint lang-js"
189 >addEventListener('load', function (event) { prettyPrint() }, false);</code>
190 </blockquote>
191 so that the browser does not pass an event object to <code>prettyPrint</code> which
192 will confuse it.
193
194 <br><br><br>
195
196 <div class="footer">
197<!-- Created: Tue Oct 3 17:51:56 PDT 2006 -->
198<!-- hhmts start -->
199Last modified: Wed Jul 19 13:56:00 PST 2010
200<!-- hhmts end -->
201 </div>
202 </body>
203</html>
0204
=== added file '0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.css'
--- 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.css 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.css 2013-11-01 20:18:13 +0000
@@ -0,0 +1,1 @@
1.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
0\ No newline at end of file2\ No newline at end of file
13
=== added file '0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.js'
--- 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.js 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/assets/vendor/prettify/prettify-min.js 2013-11-01 20:18:13 +0000
@@ -0,0 +1,28 @@
1/*
2 * Copyright 2011 Yahoo! Inc.
3 * All rights reserved.
4 *-
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the Yahoo! Inc. nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *-
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28window.PR_SHOULD_USE_CONTINUATION=true;var prettyPrintOne;var prettyPrint;(function(){var O=window;var j=["break,continue,do,else,for,if,return,while"];var v=[j,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var q=[v,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var m=[q,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var y=[q,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var T=[y,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"];var s="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes";var x=[q,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var t="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var J=[j,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var g=[j,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var I=[j,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var B=[m,T,x,t+J,g,I];var f=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;var D="str";var A="kwd";var k="com";var Q="typ";var H="lit";var M="pun";var G="pln";var n="tag";var F="dec";var K="src";var R="atn";var o="atv";var P="nocode";var N="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function l(ab){var af=0;var U=false;var ae=false;for(var X=0,W=ab.length;X<W;++X){var ag=ab[X];if(ag.ignoreCase){ae=true}else{if(/[a-z]/i.test(ag.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){U=true;ae=false;break}}}var aa={b:8,t:9,n:10,v:11,f:12,r:13};function ad(aj){var ai=aj.charCodeAt(0);if(ai!==92){return ai}var ah=aj.charAt(1);ai=aa[ah];if(ai){return ai}else{if("0"<=ah&&ah<="7"){return parseInt(aj.substring(1),8)}else{if(ah==="u"||ah==="x"){return parseInt(aj.substring(2),16)}else{return aj.charCodeAt(1)}}}}function V(ah){if(ah<32){return(ah<16?"\\x0":"\\x")+ah.toString(16)}var ai=String.fromCharCode(ah);return(ai==="\\"||ai==="-"||ai==="]"||ai==="^")?"\\"+ai:ai}function Z(an){var ar=an.substring(1,an.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ah=[];var ap=ar[0]==="^";var ao=["["];if(ap){ao.push("^")}for(var at=ap?1:0,al=ar.length;at<al;++at){var aj=ar[at];if(/\\[bdsw]/i.test(aj)){ao.push(aj)}else{var ai=ad(aj);var am;if(at+2<al&&"-"===ar[at+1]){am=ad(ar[at+2]);at+=2}else{am=ai}ah.push([ai,am]);if(!(am<65||ai>122)){if(!(am<65||ai>90)){ah.push([Math.max(65,ai)|32,Math.min(am,90)|32])}if(!(am<97||ai>122)){ah.push([Math.max(97,ai)&~32,Math.min(am,122)&~32])}}}}ah.sort(function(aw,av){return(aw[0]-av[0])||(av[1]-aw[1])});var ak=[];var aq=[];for(var at=0;at<ah.length;++at){var au=ah[at];if(au[0]<=aq[1]+1){aq[1]=Math.max(aq[1],au[1])}else{ak.push(aq=au)}}for(var at=0;at<ak.length;++at){var au=ak[at];ao.push(V(au[0]));if(au[1]>au[0]){if(au[1]+1>au[0]){ao.push("-")}ao.push(V(au[1]))}}ao.push("]");return ao.join("")}function Y(an){var al=an.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var aj=al.length;var ap=[];for(var am=0,ao=0;am<aj;++am){var ai=al[am];if(ai==="("){++ao}else{if("\\"===ai.charAt(0)){var ah=+ai.substring(1);if(ah){if(ah<=ao){ap[ah]=-1}else{al[am]=V(ah)}}}}}for(var am=1;am<ap.length;++am){if(-1===ap[am]){ap[am]=++af}}for(var am=0,ao=0;am<aj;++am){var ai=al[am];if(ai==="("){++ao;if(!ap[ao]){al[am]="(?:"}}else{if("\\"===ai.charAt(0)){var ah=+ai.substring(1);if(ah&&ah<=ao){al[am]="\\"+ap[ah]}}}}for(var am=0;am<aj;++am){if("^"===al[am]&&"^"!==al[am+1]){al[am]=""}}if(an.ignoreCase&&U){for(var am=0;am<aj;++am){var ai=al[am];var ak=ai.charAt(0);if(ai.length>=2&&ak==="["){al[am]=Z(ai)}else{if(ak!=="\\"){al[am]=ai.replace(/[a-zA-Z]/g,function(aq){var ar=aq.charCodeAt(0);return"["+String.fromCharCode(ar&~32,ar|32)+"]"})}}}}return al.join("")}var ac=[];for(var X=0,W=ab.length;X<W;++X){var ag=ab[X];if(ag.global||ag.multiline){throw new Error(""+ag)}ac.push("(?:"+Y(ag)+")")}return new RegExp(ac.join("|"),ae?"gi":"g")}function b(aa,Y){var W=/(?:^|\s)nocode(?:\s|$)/;var ab=[];var Z=0;var X=[];var V=0;function U(ac){switch(ac.nodeType){case 1:if(W.test(ac.className)){return}for(var af=ac.firstChild;af;af=af.nextSibling){U(af)}var ae=ac.nodeName.toLowerCase();if("br"===ae||"li"===ae){ab[V]="\n";X[V<<1]=Z++;X[(V++<<1)|1]=ac}break;case 3:case 4:var ad=ac.nodeValue;if(ad.length){if(!Y){ad=ad.replace(/[ \t\r\n]+/g," ")}else{ad=ad.replace(/\r\n?/g,"\n")}ab[V]=ad;X[V<<1]=Z;Z+=ad.length;X[(V++<<1)|1]=ac}break}}U(aa);return{sourceCode:ab.join("").replace(/\n$/,""),spans:X}}function C(U,W,Y,V){if(!W){return}var X={sourceCode:W,basePos:U};Y(X);V.push.apply(V,X.decorations)}var w=/\S/;function p(U){var X=undefined;for(var W=U.firstChild;W;W=W.nextSibling){var V=W.nodeType;X=(V===1)?(X?U:W):(V===3)?(w.test(W.nodeValue)?U:X):X}return X===U?undefined:X}function h(W,V){var U={};var X;(function(){var af=W.concat(V);var aj=[];var ai={};for(var ad=0,ab=af.length;ad<ab;++ad){var aa=af[ad];var ae=aa[3];if(ae){for(var ag=ae.length;--ag>=0;){U[ae.charAt(ag)]=aa}}var ah=aa[1];var ac=""+ah;if(!ai.hasOwnProperty(ac)){aj.push(ah);ai[ac]=null}}aj.push(/[\0-\uffff]/);X=l(aj)})();var Z=V.length;var Y=function(aj){var ab=aj.sourceCode,aa=aj.basePos;var af=[aa,G];var ah=0;var ap=ab.match(X)||[];var al={};for(var ag=0,at=ap.length;ag<at;++ag){var ai=ap[ag];var ar=al[ai];var ak=void 0;var ao;if(typeof ar==="string"){ao=false}else{var ac=U[ai.charAt(0)];if(ac){ak=ai.match(ac[1]);ar=ac[0]}else{for(var aq=0;aq<Z;++aq){ac=V[aq];ak=ai.match(ac[1]);if(ak){ar=ac[0];break}}if(!ak){ar=G}}ao=ar.length>=5&&"lang-"===ar.substring(0,5);if(ao&&!(ak&&typeof ak[1]==="string")){ao=false;ar=K}if(!ao){al[ai]=ar}}var ad=ah;ah+=ai.length;if(!ao){af.push(aa+ad,ar)}else{var an=ak[1];var am=ai.indexOf(an);var ae=am+an.length;if(ak[2]){ae=ai.length-ak[2].length;am=ae-an.length}var au=ar.substring(5);C(aa+ad,ai.substring(0,am),Y,af);C(aa+ad+am,an,r(au,an),af);C(aa+ad+ae,ai.substring(ae),Y,af)}}aj.decorations=af};return Y}function i(V){var Y=[],U=[];if(V.tripleQuotedStrings){Y.push([D,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(V.multiLineStrings){Y.push([D,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{Y.push([D,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(V.verbatimStrings){U.push([D,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var ab=V.hashComments;if(ab){if(V.cStyleComments){if(ab>1){Y.push([k,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{Y.push([k,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}U.push([D,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])}else{Y.push([k,/^#[^\r\n]*/,null,"#"])}}if(V.cStyleComments){U.push([k,/^\/\/[^\r\n]*/,null]);U.push([k,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(V.regexLiterals){var aa=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");U.push(["lang-regex",new RegExp("^"+N+"("+aa+")")])}var X=V.types;if(X){U.push([Q,X])}var W=(""+V.keywords).replace(/^ | $/g,"");if(W.length){U.push([A,new RegExp("^(?:"+W.replace(/[\s,]+/g,"|")+")\\b"),null])}Y.push([G,/^\s+/,null," \r\n\t\xA0"]);var Z=/^.[^\s\w\.$@\'\"\`\/\\]*/;U.push([H,/^@[a-z_$][a-z_$@0-9]*/i,null],[Q,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[G,/^[a-z_$][a-z_$@0-9]*/i,null],[H,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[G,/^\\[\s\S]?/,null],[M,Z,null]);return h(Y,U)}var L=i({keywords:B,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function S(W,ah,aa){var V=/(?:^|\s)nocode(?:\s|$)/;var ac=/\r\n?|\n/;var ad=W.ownerDocument;var ag=ad.createElement("li");while(W.firstChild){ag.appendChild(W.firstChild)}var X=[ag];function af(am){switch(am.nodeType){case 1:if(V.test(am.className)){break}if("br"===am.nodeName){ae(am);if(am.parentNode){am.parentNode.removeChild(am)}}else{for(var ao=am.firstChild;ao;ao=ao.nextSibling){af(ao)}}break;case 3:case 4:if(aa){var an=am.nodeValue;var ak=an.match(ac);if(ak){var aj=an.substring(0,ak.index);am.nodeValue=aj;var ai=an.substring(ak.index+ak[0].length);if(ai){var al=am.parentNode;al.insertBefore(ad.createTextNode(ai),am.nextSibling)}ae(am);if(!aj){am.parentNode.removeChild(am)}}}break}}function ae(al){while(!al.nextSibling){al=al.parentNode;if(!al){return}}function aj(am,at){var ar=at?am.cloneNode(false):am;var ap=am.parentNode;if(ap){var aq=aj(ap,1);var ao=am.nextSibling;aq.appendChild(ar);for(var an=ao;an;an=ao){ao=an.nextSibling;aq.appendChild(an)}}return ar}var ai=aj(al.nextSibling,0);for(var ak;(ak=ai.parentNode)&&ak.nodeType===1;){ai=ak}X.push(ai)}for(var Z=0;Z<X.length;++Z){af(X[Z])}if(ah===(ah|0)){X[0].setAttribute("value",ah)}var ab=ad.createElement("ol");ab.className="linenums";var Y=Math.max(0,((ah-1))|0)||0;for(var Z=0,U=X.length;Z<U;++Z){ag=X[Z];ag.className="L"+((Z+Y)%10);if(!ag.firstChild){ag.appendChild(ad.createTextNode("\xA0"))}ab.appendChild(ag)}W.appendChild(ab)}function E(af){var X=/\bMSIE\s(\d+)/.exec(navigator.userAgent);X=X&&+X[1]<=8;var ao=/\n/g;var an=af.sourceCode;var ap=an.length;var Y=0;var ad=af.spans;var V=ad.length;var aj=0;var aa=af.decorations;var ab=aa.length;var ac=0;aa[ab]=ap;var av,at;for(at=av=0;at<ab;){if(aa[at]!==aa[at+2]){aa[av++]=aa[at++];aa[av++]=aa[at++]}else{at+=2}}ab=av;for(at=av=0;at<ab;){var aw=aa[at];var ae=aa[at+1];var Z=at+2;while(Z+2<=ab&&aa[Z+1]===ae){Z+=2}aa[av++]=aw;aa[av++]=ae;at=Z}ab=aa.length=av;var au=af.sourceNode;var ak;if(au){ak=au.style.display;au.style.display="none"}try{var ah=null;while(aj<V){var ai=ad[aj];var U=ad[aj+2]||ap;var ar=aa[ac+2]||ap;var Z=Math.min(U,ar);var am=ad[aj+1];var W;if(am.nodeType!==1&&(W=an.substring(Y,Z))){if(X){W=W.replace(ao,"\r")}am.nodeValue=W;var al=am.ownerDocument;var aq=al.createElement("span");aq.className=aa[ac+1];var ag=am.parentNode;ag.replaceChild(aq,am);aq.appendChild(am);if(Y<U){ad[aj+1]=am=al.createTextNode(an.substring(Z,U));ag.insertBefore(am,aq.nextSibling)}}Y=Z;if(Y>=U){aj+=2}if(Y>=ar){ac+=2}}}finally{if(au){au.style.display=ak}}}var u={};function d(W,X){for(var U=X.length;--U>=0;){var V=X[U];if(!u.hasOwnProperty(V)){u[V]=W}else{if(O.console){console.warn("cannot override language handler %s",V)}}}}function r(V,U){if(!(V&&u.hasOwnProperty(V))){V=/^\s*</.test(U)?"default-markup":"default-code"}return u[V]}d(L,["default-code"]);d(h([],[[G,/^[^<?]+/],[F,/^<!\w[^>]*(?:>|$)/],[k,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[M,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);d(h([[G,/^[\s]+/,null," \t\r\n"],[o,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[n,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[R,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[M,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);d(h([],[[o,/^[\s\S]+/]]),["uq.val"]);d(i({keywords:m,hashComments:true,cStyleComments:true,types:f}),["c","cc","cpp","cxx","cyc","m"]);d(i({keywords:"null,true,false"}),["json"]);d(i({keywords:T,hashComments:true,cStyleComments:true,verbatimStrings:true,types:f}),["cs"]);d(i({keywords:y,cStyleComments:true}),["java"]);d(i({keywords:I,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);d(i({keywords:J,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);d(i({keywords:t,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);d(i({keywords:g,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);d(i({keywords:x,cStyleComments:true,regexLiterals:true}),["js"]);d(i({keywords:s,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);d(h([],[[D,/^[\s\S]+/]]),["regex"]);function e(X){var W=X.langExtension;try{var U=b(X.sourceNode,X.pre);var V=U.sourceCode;X.sourceCode=V;X.spans=U.spans;X.basePos=0;r(W,V)(X);E(X)}catch(Y){if(O.console){console.log(Y&&Y.stack?Y.stack:Y)}}}function z(Y,X,W){var U=document.createElement("pre");U.innerHTML=Y;if(W){S(U,W,true)}var V={langExtension:X,numberLines:W,sourceNode:U,pre:1};e(V);return U.innerHTML}function c(aj){function ab(al){return document.getElementsByTagName(al)}var ah=[ab("pre"),ab("code"),ab("xmp")];var V=[];for(var ae=0;ae<ah.length;++ae){for(var ac=0,Y=ah[ae].length;ac<Y;++ac){V.push(ah[ae][ac])}}ah=null;var Z=Date;if(!Z.now){Z={now:function(){return +(new Date)}}}var aa=0;var U;var af=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ak=/\bprettyprint\b/;var W=/\bprettyprinted\b/;var ag=/pre|xmp/i;var ai=/^code$/i;var ad=/^(?:pre|code|xmp)$/i;function X(){var ar=(O.PR_SHOULD_USE_CONTINUATION?Z.now()+250:Infinity);for(;aa<V.length&&Z.now()<ar;aa++){var at=V[aa];var au=at.className;if(ak.test(au)&&!W.test(au)){var aw=false;for(var ao=at.parentNode;ao;ao=ao.parentNode){var ax=ao.tagName;if(ad.test(ax)&&ao.className&&ak.test(ao.className)){aw=true;break}}if(!aw){at.className+=" prettyprinted";var aq=au.match(af);var am;if(!aq&&(am=p(at))&&ai.test(am.tagName)){aq=am.className.match(af)}if(aq){aq=aq[1]}var ap;if(ag.test(at.tagName)){ap=1}else{var an=at.currentStyle;var al=(an?an.whiteSpace:(document.defaultView&&document.defaultView.getComputedStyle)?document.defaultView.getComputedStyle(at,null).getPropertyValue("white-space"):0);ap=al&&"pre"===al.substring(0,3)}var av=at.className.match(/\blinenums\b(?::(\d+))?/);av=av?av[1]&&av[1].length?+av[1]:true:false;if(av){S(at,av,ap)}U={langExtension:aq,sourceNode:at,numberLines:av,pre:ap};e(U)}}}if(aa<V.length){setTimeout(X,250)}else{if(aj){aj()}}}X()}var a=O.PR={createSimpleLexer:h,registerLangHandler:d,sourceDecorator:i,PR_ATTRIB_NAME:R,PR_ATTRIB_VALUE:o,PR_COMMENT:k,PR_DECLARATION:F,PR_KEYWORD:A,PR_LITERAL:H,PR_NOCODE:P,PR_PLAIN:G,PR_PUNCTUATION:M,PR_SOURCE:K,PR_STRING:D,PR_TAG:n,PR_TYPE:Q,prettyPrintOne:O.prettyPrintOne=z,prettyPrint:O.prettyPrint=c};if(typeof define==="function"&&define.amd){define("google-code-prettify",[],function(){return a})}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
029
=== added directory '0.1/ambiance/js/yuidoc-theme/layouts'
=== added file '0.1/ambiance/js/yuidoc-theme/layouts/main.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/layouts/main.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/layouts/main.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,38 @@
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="utf-8">
5 <title>{{htmlTitle}}</title>
6 <link rel="stylesheet" href="{{yuiGridsUrl}}">
7 <link rel="stylesheet" href="{{projectAssets}}/vendor/prettify/prettify-min.css">
8 <link rel="stylesheet" href="{{projectAssets}}/css/main.css" id="site_styles">
9 <script src="{{yuiSeedUrl}}"></script>
10</head>
11<body class="yui3-skin-sam">
12
13<div id="doc">
14 <div id="hd" class="yui3-g header">
15 <div class="yui3-u-3-4">
16 <h1><a href="{{projectRoot}}index.html"><img src="{{projectAssets}}/css/logo.png">{{title}}</a></h1>
17 </div>
18 <div class="yui3-u-1-4 version">
19 <em>API Docs for: {{projectVersion}}</em>
20 </div>
21 </div>
22 <div class="yui3-g">
23
24 <div id="sidebar" class="yui3-u">
25 {{>sidebar}}
26 </div>
27
28 <div id="main" class="yui3-u">
29 <div class="content">{{>layout_content}}</div>
30 </div>
31 </div>
32</div>
33<script src="{{projectAssets}}/vendor/prettify/prettify-min.js"></script>
34<script>prettyPrint();</script>
35<script src="{{projectAssets}}/js/yui-prettify.js"></script>
36<script src="{{projectAssets}}/js/tabs.js"></script>
37</body>
38</html>
039
=== added directory '0.1/ambiance/js/yuidoc-theme/partials'
=== added file '0.1/ambiance/js/yuidoc-theme/partials/attrs.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/attrs.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/attrs.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,23 @@
1<a name="attrs_{{name}}"></a>
2<div class="attrs item">
3 `{{name}}` {{#if type}}<strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong>{{/if}}
4 {{#if extended_from}}<em>`/* Extended from {{extended_from}} */`</em>{{/if}}
5 {{#if overwritten_from}}<em>`/* Overwritten from {{name}} */`</em>{{/if}}
6 <br>
7 <span class="foundat"><a href="../{{foundAt}}">`{{file}}:{{line}}`</a></span>
8 {{{attrDescription}}}
9 {{#if emit}}
10 <div class="emits">
11 Fires: <strong>`{{name}}Change(e)`</strong>
12 <p>Fires when the value for the configuration attribute `{{name}}` is changed. You can listen for the event using the `on` method if you wish to be notified before the attribute's value has changed, or using the `after` method if you wish to be notified after the attribute's value has changed.</p>
13 <strong>Parameters:</strong><br>
14 `e` <strong>&lt;EventFacade&gt;</strong> An Event Facade object with the following attribute specific properties added:
15 <ul>
16 <li>`prevVal` The value of the attribute, prior to it being set</li>
17 <li>`newVal` The value the attribute is to be set to</li>
18 <li>`attrName` The name of the attribute being set</li>
19 <li>`subAttrName` If setting a property within the attribute's value, the name of the sub-attribute property being set</li>
20 </ul>
21 </div>
22 {{/if}}
23</div>
024
=== added file '0.1/ambiance/js/yuidoc-theme/partials/classes.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/classes.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/classes.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,73 @@
1<h4>Class {{moduleName}}</h4>
2{{#if uses}}
3 Uses:
4 {{#each uses}}
5 <a href="{{this}}.html">{{this}}</a>
6 {{/each}}
7 <br>
8{{/if}}
9{{#if extension_for}}
10 Extension For:
11 {{#each extension_for}}
12 <a href="{{this}}.html">{{this}}</a>
13 {{/each}}
14 <br>
15{{/if}}
16{{#if extends}}
17 Extends: {{#crossLink extends}}{{/crossLink}}<br>
18{{/if}}
19<span class="foundat">Class defined in: <a href="../{{foundAt}}">`{{file}}:{{line}}`</a></span>
20<div class="intro">{{{classDescription}}}</div>
21
22{{#if is_constructor}}
23 {{#is_constructor}}
24 {{>method}}
25 {{/is_constructor}}
26{{/if}}
27
28<div id="classdocs">
29 <ul>
30 {{#if methods}}
31 <li><a href="#methods">Methods</a></li>
32 {{/if}}
33 {{#if properties}}
34 <li><a href="#props">Properties</a></li>
35 {{/if}}
36 {{#if attrs}}
37 <li><a href="#attrs">Attributes</a></li>
38 {{/if}}
39 {{#if events}}
40 <li><a href="#events">Events</a></li>
41 {{/if}}
42 </ul>
43 <div>
44 {{#if methods}}
45 <div id="methods">
46 {{#methods}}
47 {{>method}}
48 {{/methods}}
49 </div>
50 {{/if}}
51 {{#if properties}}
52 <div id="props">
53 {{#properties}}
54 {{>props}}
55 {{/properties}}
56 </div>
57 {{/if}}
58 {{#if attrs}}
59 <div id="attrs">
60 {{#attrs}}
61 {{>attrs}}
62 {{/attrs}}
63 </div>
64 {{/if}}
65 {{#if events}}
66 <div id="events">
67 {{#events}}
68 {{>events}}
69 {{/events}}
70 </div>
71 {{/if}}
72 </div>
73</div>
074
=== added file '0.1/ambiance/js/yuidoc-theme/partials/events.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/events.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/events.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,35 @@
1<a name="events_{{name}}"></a>
2<div class="events item">
3 `{{name}}` {{#if type}}<strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong>{{/if}}
4 {{#if extended_from}}<em>`/* Extended from {{extended_from}} */</em>`{{/if}}
5 {{#if overwritten_from}}<em>`/* Overwritten from {{name}} */`</em>{{/if}}
6 <br>
7 <span class="foundat"><a href="../{{foundAt}}">`{{file}}:{{line}}`</a></span>
8 {{{eventDescription}}}
9 {{#if params}}
10 <strong>Extra event object properties:</strong>
11 <ul>
12 {{#params}}
13 <li>
14 {{#if optional}}
15 `[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong>
16 {{else}}
17 `{{name}}` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong>
18 {{/if}}
19 {{#if multiple}}
20 <abbr title="Denotes that this argument can contain (n) number">(*..n)</abbr>
21 {{/if}}
22 {{{description}}}
23 {{#if props}}
24 <ul>
25 {{#props}}
26 <li>`{{name}}` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong> {{{description}}}
27 {{/props}}
28 </ul>
29 {{/if}}
30 </li>
31 {{/params}}
32 </ul>
33 {{/if}}
34</div>
35
036
=== added file '0.1/ambiance/js/yuidoc-theme/partials/files.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/files.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/files.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,6 @@
1<h4>{{fileName}}</h4>
2
3<pre class="code prettyprint linenums">
4{{fileData}}
5</pre>
6
07
=== added file '0.1/ambiance/js/yuidoc-theme/partials/index.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/index.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/index.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,54 @@
1<h4>Welcome to Ubuntu HTML5 API Docs version 0.1</h4>
2
3<p>These pages provide reference docs for the Ubunbtu HTML5 framework.</p>
4
5<p>See <a href="http://developer.ubuntu.com">developer.ubuntu.com</a> for more information on writing Ubuntu HTML5 apps, including: using the Ubuntu SDK, creating HTML5 app projects, importing Ubuntu HTML5 CSS and JavaScript into your app, and more. </p>
6
7<h4>Ubuntu HTML5 widgets</h4>
8
9<p>The Ubuntun HTML5 framework provides a set of "widgets" you use to build an application in the Ubuntu style (see <a href="design.ubuntu.com">design.ubuntu.com</a> for descriptions of Ubuntu app "building blocks" with links to APIs for each supported implementation toolkit). For example, an Ubuntu HTML5 app has a dynamic Header with Tabs that together provide navigation through the app's Pages. Pages may contain Lists, Popovers, Buttons, Shapes, and a lot more. The app has a Footer (also called a Toolbar) to which you can add Buttons. There are many options and the list keeps growing!<p>
10<p>Each widget has its HTML part, a corresponding JavaScript object (many of which provide additional methods), and CSS styles.</p>
11
12<h4>What you need to know</h4>
13
14<p>To write Ubuntu HTML5 apps, you need to know:</p>
15
16<ul>
17 <li>How to <em>declare</em> each widget type in HTML</li>
18 <li>How to acces the JavaScript widget objects and use their methods</li>
19 <li>How to initialize the Ubuntu HTML5 framework at app load time</li>
20</ul>
21
22<p>These topics are introduced here and explained in the class documentation.</p>
23
24<h4>Elements and special attributes</h4>
25
26<p>Ubuntu HTML5 apps use normal HTML/HTML5 elements (like &lt;div&gt;, &lt;section&gt;, &lt;ul&gt;, and so on). However, special attributes are added to some key elements to declare them as Ubuntu HTML5 elements. This connects them with the Ubuntu HTML5 JavaScript framework. The <em>data-role</em> attribute is often used. Its value indicates the type of Ubuntu HTML5 element. For example, here's a button: &lt;div data-role="button"&gt;.</p>
27
28</p>Making correct HTML declarations is necessary to connect your DOM elements to the Ubuntu HTML5 JavaScript framework and to Ubuntu HTML CSS styles. See the JavaScript class docs for sample HTML declarations.</p>
29
30<h4><em>id</em> attributes</h4>
31
32<p>You can declare most Ubuntu HTML5 elements without <em>id</em> attributes. They will pick up the CSS styles and look fine. But, you generally need an <em>id</em> attribute to access the corresponding JavaScript objects. So it's a good idea to add them.</p>
33
34<h4>JavaScript classes and methods</h4>
35
36<p>Almost every Ubuntu HTML5 DOM element has a corresponding Ubuntu HTML5 JavaScript object. These are created automatically when you create an UbuntuUI object and execute its init() method. (This is usually done at startup, for example in the <em>window.onload</em> function).</p>
37
38<p>Many of these classes/objects have additional methods. For example, the List class provides methods to add items to the list, remove an item, apply a function to all items, and more.</p>
39
40<h4>How these docs are organized</h4>
41
42<p>These pages or organized by the Ubuntu HTML5 JavaScript classes. Each class has an example showing how the corresponding HTML is declared (as needed). And of course each class has API documentation explaining usage of all (public) methods.</p>
43
44<p>The single most important class is UbuntuUI, so start there.</p>
45
46<p>Then, an Ubuntu HTML5 app is structured as a PageStack of Pages, so be sure to visit those classes.</p>
47
48<h4>Ubuntu HTML5 CSS</h4>
49
50<p>Be sure to check out the Ubuntu HTML5 CSS files you import into your app. They provide a set of styles that theme the HTML5 widgets to the Ubuntu app design and style.</p>
51
52<h4>Let's grow this!</h4>
53
54<p>Let's work together to keep HTML5 as a top-notch app development framework on Ubuntu. Everyone can help by filing bugs, triaging them, and of course, fixing them. So let's get to work writing apps!</p>
055
=== added file '0.1/ambiance/js/yuidoc-theme/partials/method.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/method.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/method.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,56 @@
1<a name="methods_{{name}}"></a>
2<div class="method item{{#if access}} {{access}}{{/if}}">
3 {{#if final}}<code>final</code> {{/if}}{{#if returnType}}{{#crossLink returnType}}{{/crossLink}} {{/if}}<strong class="name">`{{name}}`</strong>( `{{paramsList}} ` ) {{#if access}}<em>`/* {{access}} method */`</em>{{/if}}
4 <br>
5 <span class="foundat">
6 {{#if overwritten_from}}
7 Defined in <a href="{{overwritten_from/class}}.html#method_{{overwritten_from/name}}">{{overwritten_from/class}}</a> but overwritten locally:
8 {{else}}
9 {{#if extended_from}} Defined in <a href="{{extended_from}}.html#method_{{name}}">{{extended_from}}</a>: {{/if}}
10 {{/if}}
11 <a href="../{{foundAt}}">`{{file}}:{{line}}`</a>
12 </span><br>
13 {{{methodDescription}}}
14 {{#if params}}
15 <strong>Parameters:</strong>
16 <ul class="params">
17 {{#params}}
18 <li>
19 {{#if optional}}
20 `[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong>
21 {{else}}
22 `{{name}}` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong>
23 {{/if}}
24 {{#if multiple}}
25 <abbr title="Denotes that this argument can contain (n) number">(*..n)</abbr>
26 {{/if}}
27 {{{description}}}
28 {{#if props}}
29 <ul>
30 {{#props}}
31 <li>`{{name}}` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong> {{{description}}}
32 {{#if props}}
33 <ul>
34 {{#props}}
35 <li>`{{name}}` <strong>&lt;{{#crossLink type}}{{/crossLink}}&gt;</strong> {{{description}}} </li>
36 {{/props}}
37 </ul>
38 {{/if}}
39 </li>
40 {{/props}}
41 </ul>
42 {{/if}}
43 </li>
44 {{/params}}
45 </ul>
46 {{/if}}
47 {{#if return}}
48 {{#return}}
49 <br><div class="returns"><strong>Returns:</strong> {{#if type}}&lt;{{#crossLink type}}{{/crossLink}}&gt; {{/if}}{{{description}}}</div>
50 {{/return}}
51 {{/if}}
52 {{#if example}}
53 <h5>Example</h5>
54 {{{example}}}
55 {{/if}}
56</div>
057
=== added file '0.1/ambiance/js/yuidoc-theme/partials/module.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/module.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/module.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,28 @@
1
2<h2>{{moduleName}}</h2>
3<div class="intro">{{{moduleDescription}}}</div>
4
5<div class="yui3-g">
6 <div class="yui3-u-1-2">
7 {{#if moduleClasses}}
8 <p>This module has the following classes:</p>
9 <ul>
10 {{#moduleClasses}}
11 <li><a href="{{../projectRoot}}classes/{{name}}.html">{{displayName}}</a></li>
12 {{/moduleClasses}}
13 </ul>
14 {{/if}}
15 </div>
16 <div class="yui3-u-1-2">
17 {{#if subModules}}
18 <p>This module has the following submodules:</p>
19 <ul>
20 {{#subModules}}
21 <li id="{{name}}"><a href="{{../projectRoot}}modules/{{name}}.html">{{displayName}}</a><p>{{{description}}}</p></li>
22 {{/subModules}}
23 </ul>
24 {{/if}}
25 </div>
26</div>
27<br><br>
28<span class="foundat">Module description found: <a href="../{{foundAt}}">`{{file}}:{{line}}`</a></span>
029
=== added file '0.1/ambiance/js/yuidoc-theme/partials/props.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/props.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/props.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,10 @@
1<a name="props_{{name}}"></a>
2<div class="props item">
3 `{{name}}` &lt;<strong>{{#crossLink type}}{{/crossLink}}</strong>&gt;{{#if final}} <em>(final)</em>{{/if}}{{#if static}} <em>(static)</em>{{/if}}<br>
4 <span class="foundat"><a href="../{{foundAt}}">`{{file}}:{{line}}`</a></span>
5 {{{propertyDescription}}}
6 {{#if example}}
7 <h5>Example</h5>
8 {{{example}}}
9 {{/if}}
10</div>
011
=== added file '0.1/ambiance/js/yuidoc-theme/partials/sidebar.handlebars'
--- 0.1/ambiance/js/yuidoc-theme/partials/sidebar.handlebars 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/partials/sidebar.handlebars 2013-11-01 20:18:13 +0000
@@ -0,0 +1,105 @@
1<div id="modules" class="sidebox">
2 <div class="hd">
3 <h2 class="no-toc">Modules</h2>
4 </div>
5 <div class="bd">
6 <ul>
7 {{#modules}}
8 <li><a href="{{../projectRoot}}modules/{{name}}.html">{{displayName}}</a>
9 {{#if submodules}}
10 <ul>
11 {{#submodules}}
12 <li><a href="{{../../../projectRoot}}modules/{{../name}}.html#{{displayName}}">{{displayName}}</a></li>
13 {{/submodules}}
14 </ul>
15 {{/if}}
16 </li>
17 {{/modules}}
18 </ul>
19 </div>
20</div>
21
22<div id="classes" class="sidebox">
23 <div class="hd">
24 <h2 class="no-toc">Classes</h2>
25 </div>
26 <div class="bd">
27 <ul>
28 {{#classes}}
29 <li><a href="{{../projectRoot}}classes/{{name}}.html">{{displayName}}</a></li>
30 {{/classes}}
31 </ul>
32 </div>
33</div>
34
35{{#if methods}}
36<div id="methods-on-page" class="sidebox on-page">
37 <div class="hd">
38 <h2 class="no-toc">Methods On Page</h2>
39 </div>
40 <div class="bd">
41 <ul>
42 {{#methods}}
43 <li><a href="#methods_{{name}}">{{name}}</a></li>
44 {{/methods}}
45 </ul>
46 </div>
47</div>
48{{/if}}
49
50{{#if events}}
51<div id="events-on-page" class="sidebox on-page">
52 <div class="hd">
53 <h2 class="no-toc">Events On Page</h2>
54 </div>
55 <div class="bd">
56 <ul>
57 {{#events}}
58 <li><a href="#events_{{name}}">{{name}}</a></li>
59 {{/events}}
60 </ul>
61 </div>
62</div>
63{{/if}}
64
65{{#if props}}
66<div id="props-on-page" class="sidebox">
67 <div class="hd">
68 <h2 class="no-toc">Props On Page</h2>
69 </div>
70 <div class="bd">
71 <ul>
72 {{#events}}
73 <li><a href="#props_{{name}}">{{name}}</a></li>
74 {{/events}}
75 </ul>
76 </div>
77</div>
78{{/if}}
79
80{{#if attributes}}
81<div id="attrs-on-page" class="sidebox on-page">
82 <div class="hd">
83 <h2 class="no-toc">Attributes On Page</h2>
84 </div>
85 <div class="bd">
86 <ul>
87 {{#events}}
88 <li><a href="#attrs_{{name}}">{{name}}</a></li>
89 {{/events}}
90 </ul>
91 </div>
92</div>
93{{/if}}
94
95{{#if fileTree}}
96<div id="fileTree" class="sidebox">
97 <div class="hd">
98 <h2 class="no-toc">Files</h2>
99 </div>
100 <div class="bd">
101 {{#buildFileTree fileTree}}{{/buildFileTree}}
102 </div>
103</div>
104{{/if}}
105
0106
=== added file '0.1/ambiance/js/yuidoc-theme/theme.json'
--- 0.1/ambiance/js/yuidoc-theme/theme.json 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc-theme/theme.json 2013-11-01 20:18:13 +0000
@@ -0,0 +1,4 @@
1{
2 "yuiGridsUrl": "http://yui.yahooapis.com/3.8.0pr2/build/cssgrids/cssgrids-min.css",
3 "yuiSeedUrl": "http://yui.yahooapis.com/combo?3.8.0pr2/build/yui/yui-min.js"
4}
05
=== added file '0.1/ambiance/js/yuidoc.json'
--- 0.1/ambiance/js/yuidoc.json 1970-01-01 00:00:00 +0000
+++ 0.1/ambiance/js/yuidoc.json 2013-11-01 20:18:13 +0000
@@ -0,0 +1,9 @@
1{
2 "name": "Ubuntu HTML5 API",
3 "description": "Ubuntu HTML5 API: JavaScript for HTML5 Ubuntu Apps",
4 "version": "0.1",
5 "options": {
6 "outdir": "./build",
7 "themedir": "yuidoc-theme"
8 }
9}

Subscribers

People subscribed via source and target branches