Publish Vulpes Preview 15 sources for desktop, Android and Tundra

Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,83 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-button"], function (exports, _fxosMvcDistMvc, _gaiaButton) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var AppView = (function (View) {
var AppView = function AppView(options) {
View.call(this, options);
this.el = document.createElement("div");
this.el.id = "app-view";
this.render();
};
_extends(AppView, View);
AppView.prototype.template = function () {
var string = "\n <gaia-header action=\"close\" data-action=\"close\">\n <h1></h1>\n </gaia-header>\n <gaia-list class=\"app-list\">\n <li>\n <img></img>\n <div flex class=\"description\">\n <h3></h3>\n <h4></h4>\n </div>\n <gaia-button class=\"control\">\n <span></span>\n </gaia-button>\n </li>\n </gaia-list>\n <p></p>\n ";
return string;
};
AppView.prototype.render = function () {
var _this = this;
View.prototype.render.call(this);
setTimeout(function () {
_this.on("action", "gaia-header");
_this.on("click", "gaia-button");
_this.els = {};
_this.els.title = _this.$("h1");
_this.els.icon = _this.$("img");
_this.els.name = _this.$("h3");
_this.els.owner = _this.$("h4");
_this.els.description = _this.$("p");
_this.els.button = _this.$("gaia-button");
_this.els.buttonText = _this.els.button.querySelector("span");
});
};
AppView.prototype.show = function (app) {
this.el.classList.add("active");
this.els.icon.src = app.icon || "icons/default.png";
this.els.title.textContent = app.manifest.name;
this.els.name.textContent = app.manifest.name;
this.els.owner.textContent = app.manifest.developer && app.manifest.developer.name;
this.els.description.textContent = app.manifest.description;
this.els.button.dataset.id = app.manifestURL;
this.els.button.dataset.action = app.installed ? "open" : "download";
this.els.button.disabled = false;
if (app.installed) {
if (app.manifest.role === "addon" || app.manifest.role === "theme") {
this.els.buttonText.textContent = "Installed";
this.els.button.disabled = true;
} else {
this.els.buttonText.textContent = "Open";
}
} else {
this.els.buttonText.textContent = "Install";
}
};
AppView.prototype.hide = function () {
this.el.classList.remove("active");
};
return AppView;
})(View);
exports["default"] = AppView;
});

View file

@ -0,0 +1,72 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-dialog"], function (exports, _fxosMvcDistMvc, _gaiaDialog) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var ConfirmDownloadView = (function (View) {
var ConfirmDownloadView = function ConfirmDownloadView() {
View.apply(this, arguments);
};
_extends(ConfirmDownloadView, View);
ConfirmDownloadView.prototype.template = function () {
var string = "\n <section>\n <img></img>\n <div>\n <h3><strong></strong></h3>\n <h4></h4>\n </div>\n <hr/>\n <p>Do you want to download and install this application?</p>\n </section>\n <fieldset>\n <button data-action=\"cancel\">Cancel</button>\n <button class=\"primary\" data-action=\"install\">Install</button>\n </fieldset>\n ";
return string;
};
ConfirmDownloadView.prototype.render = function () {
var _this = this;
this.el = document.createElement("gaia-dialog");
this.el.classList.add("install");
this.el.addEventListener("opened", function () {
return _this._opened();
});
this.el.addEventListener("closed", function () {
return _this._closed();
});
View.prototype.render.call(this);
setTimeout(function () {
_this._icon = _this.$("img");
_this._header = _this.$("h3 strong");
_this._subheader = _this.$("h4");
});
};
ConfirmDownloadView.prototype.open = function (app) {
this._icon.src = app.icon;
this._header.textContent = app.manifest.name;
this._subheader.textContent = (app.manifest.developer && app.manifest.developer.name) || app.manifest.description;
this.el.open();
};
ConfirmDownloadView.prototype.close = function () {
this.el.close();
};
ConfirmDownloadView.prototype._opened = function () {
this.on("click", "button");
};
ConfirmDownloadView.prototype._closed = function () {
this.off("click", "button");
};
return ConfirmDownloadView;
})(View);
exports["default"] = ConfirmDownloadView;
});

View file

@ -0,0 +1,80 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-icons", "gaia-dialog/gaia-dialog-prompt", "app/js/services/device_name_service"], function (exports, _fxosMvcDistMvc, _gaiaIcons, _gaiaDialogGaiaDialogPrompt, _appJsServicesDeviceNameService) {
"use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var DeviceNameService = _appJsServicesDeviceNameService["default"];
var DeviceNameView = (function (View) {
var DeviceNameView = function DeviceNameView() {
View.apply(this, arguments);
};
_extends(DeviceNameView, View);
DeviceNameView.prototype.render = function () {
var _this = this;
this.el = document.createElement("gaia-dialog-prompt");
View.prototype.render.call(this);
setTimeout(function () {
_this.els = _this.el.els;
_this.els.submit.addEventListener("click", function (e) {
return _this.controller.handleSubmit(e);
});
_this.els.submit.disabled = true;
_this.el.addEventListener("opened", function (e) {
return _this.controller.handleOpened(e);
});
_this.el.addEventListener("closed", function (e) {
return _this.controller.handleClosed(e);
});
_this.els.input.placeholder = "Name your device";
_this.els.input.addEventListener("input", function (e) {
return _this.controller.handleInput(e);
});
DeviceNameService.getDeviceName().then(function (deviceName) {
_this.value = deviceName;
if (deviceName) {
_this.els.submit.disabled = false;
}
});
});
};
_classProps(DeviceNameView, null, {
value: {
get: function () {
return this.els.input.value;
},
set: function (val) {
this.els.input.value = val;
}
}
});
return DeviceNameView;
})(View);
exports["default"] = DeviceNameView;
});

View file

@ -0,0 +1,97 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-list", "gaia-checkbox", "gaia-sub-header", "gaia-loading", "gaia-button", "gaia-icons"], function (exports, _fxosMvcDistMvc, _gaiaList, _gaiaCheckbox, _gaiaSubHeader, _gaiaLoading, _gaiaButton, _gaiaIcons) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var ListView = (function (View) {
var ListView = function ListView(options) {
View.call(this, options);
this.el = document.createElement("div");
this.el.id = options.id;
this.el.classList.add("app-list");
this.el.classList.add(options.type);
if (options.disabled) {
this.el.setAttribute("disabled", true);
}
this.title = options.title;
this.type = options.type;
this.attr = options.attr;
};
_extends(ListView, View);
ListView.prototype.layout = function (template) {
var string = "\n <gaia-sub-header>" + this.title + "</gaia-sub-header>\n <gaia-list>\n " + template + "\n </gaia-list>";
return string;
};
ListView.prototype.render = function (params) {
if (!params.length) {
this.el.innerHTML = "";
return;
}
View.prototype.render.call(this, params);
this.on("click", ".app-list li *");
};
ListView.prototype.template = function (app) {
var desc = (app.peer && app.peer.name) || (app.manifest.developer && app.manifest.developer.name) || app.manifest.description || "No information available";
desc = "<h4>" + desc + "</h4>";
if (this.type === "link") {
desc = "";
}
var toggle = (this.type === "toggle" && "data-action=\"toggle\"") || "";
var string = "\n <li tabindex=\"0\" " + toggle + ">\n <img data-action=\"description\" data-id=\"" + app.manifestURL + "\"\n src=\"" + app.icon + "\"></img>\n <div flex class=\"description\" data-action=\"description\"\n data-id=\"" + app.manifestURL + "\">\n <h3>" + app.manifest.name + "</h3>\n " + desc + "\n </div>\n " + this._control(app) + "\n </li>";
return string;
};
ListView.prototype.toggle = function (enable) {
if (enable) {
this.el.setAttribute("disabled", "");
} else {
this.el.removeAttribute("disabled");
}
};
ListView.prototype._control = function (app) {
var string;
if (this.type === "toggle") {
var enabled = app.shared && "checked" || "";
string = "<gaia-checkbox data-id=\"" + app.manifestURL + "\" data-action=\"toggle\"\n class=\"control\" " + enabled + ">\n </gaia-checkbox>";
} else if (this.type === "download") {
if (app.installed) {
if (app.manifest.role === "addon" || app.manifest.role === "theme") {
string = "<gaia-button disabled>Installed</gaia-button>";
} else {
string = "<gaia-button data-id=\"" + app.manifestURL + "\" data-action=\"open\"\n class=\"control\">\n Open\n </gaia-button>";
}
} else {
string = "<gaia-button data-id=\"" + app.manifestURL + "\" data-action=\"download\"\n class=\"control\">\n Install\n </gaia-button>";
}
} else if (this.type === "link") {
string = "<i data-id=\"" + app.manifestURL + "\" data-action=\"open\"\n aria-hidden=\"true\" data-icon=\"forward-light\"></i>";
}
return string;
};
return ListView;
})(View);
exports["default"] = ListView;
});

View file

@ -0,0 +1,37 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-header", "gaia-icons", "fxos-dev-mode-dialog"], function (exports, _fxosMvcDistMvc, _gaiaHeader, _gaiaIcons, _fxosDevModeDialog) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var MainView = (function (View) {
var MainView = function MainView(options) {
View.call(this, options);
this.els = {};
this.els.devModeDialog = document.createElement("fxos-dev-mode-dialog");
this.el.appendChild(this.els.devModeDialog);
this.on("action", "gaia-header");
this.on("contextmenu", "gaia-header h1");
};
_extends(MainView, View);
MainView.prototype.render = function () {};
return MainView;
})(View);
exports["default"] = MainView;
});

View file

@ -0,0 +1,73 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-dialog", "gaia-progress", "gaia-button"], function (exports, _fxosMvcDistMvc, _gaiaDialog, _gaiaProgress, _gaiaButton) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var ProgressDialogView = (function (View) {
var ProgressDialogView = function ProgressDialogView() {
View.apply(this, arguments);
};
_extends(ProgressDialogView, View);
ProgressDialogView.prototype.template = function () {
var string = "\n <h1>Downloading app</h1>\n <gaia-progress></gaia-progress>\n ";
return string;
};
ProgressDialogView.prototype.render = function () {
this.el = document.createElement("gaia-dialog");
View.prototype.render.call(this);
this.el.addEventListener("closed", this.controller.teardown.bind(this.controller));
this.el.addEventListener("touchstart", this._handleTouchStart.bind(this));
};
ProgressDialogView.prototype.success = function (app) {
this.el.innerHTML = "\n <p>Successfully downloaded " + app.manifest.name + "!</p>\n ";
this._loading = false;
};
ProgressDialogView.prototype.error = function (e) {
var _this = this;
this.el.innerHTML = "\n <p>Error downloading app: " + (e.name || "") + " " + (e.description || "") + "</p>\n <section><gaia-button>Ok</gaia-button></section>\n ";
this._loading = false;
setTimeout(function () {
var button = _this.el.querySelector("gaia-button");
button.addEventListener("click", _this.close.bind(_this));
});
};
ProgressDialogView.prototype.open = function (app) {
this.el.open();
this._loading = true;
};
ProgressDialogView.prototype.close = function () {
this.el.close();
};
ProgressDialogView.prototype._handleTouchStart = function (e) {
if (this._loading) {
e.preventDefault();
}
};
return ProgressDialogView;
})(View);
exports["default"] = ProgressDialogView;
});

View file

@ -0,0 +1,57 @@
define(["exports", "fxos-mvc/dist/mvc"], function (exports, _fxosMvcDistMvc) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var ProximityEmptyView = (function (View) {
var ProximityEmptyView = function ProximityEmptyView(options) {
this.el = document.createElement("gaia-list");
this.el.id = "proximity-empty-list";
View.call(this, options);
this.els = {};
};
_extends(ProximityEmptyView, View);
ProximityEmptyView.prototype.template = function () {
var string = "<li class=\"hide\"></li>\n <li id=\"no-network\" class=\"hide\">\n You are not currently connected to a WiFi network. Connect to one to\n discover people nearby to share with.\n </li>\n <li id=\"proximity-empty\" class=\"hide\">\n <div>\n No users found sharing on your WiFi network.\n <gaia-loading></gaia-loading>\n </div>\n </li>";
return string;
};
ProximityEmptyView.prototype.render = function () {
var _this = this;
View.prototype.render.call(this);
setTimeout(function () {
_this.els.noNetwork = _this.$("#no-network");
_this.els.proximityEmpty = _this.$("#proximity-empty");
});
};
ProximityEmptyView.prototype.show = function (params) {
var _this2 = this;
setTimeout(function () {
_this2.el.classList.toggle("hide", !params.noNetwork && !params.proximityEmpty);
_this2.els.noNetwork.classList.toggle("hide", !params.noNetwork);
_this2.els.proximityEmpty.classList.toggle("hide", params.noNetwork || !params.proximityEmpty);
});
};
return ProximityEmptyView;
})(View);
exports["default"] = ProximityEmptyView;
});

View file

@ -0,0 +1,100 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-button", "gaia-switch"], function (exports, _fxosMvcDistMvc, _gaiaButton, _gaiaSwitch) {
"use strict";
var _classProps = function (child, staticProps, instanceProps) {
if (staticProps) Object.defineProperties(child, staticProps);
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
};
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var ShareSettingsView = (function (View) {
var ShareSettingsView = function ShareSettingsView(options) {
View.call(this, options);
this.el = document.createElement("gaia-list");
this.el.id = "share-settings";
this.el.classList.add("app-list");
this.render();
};
_extends(ShareSettingsView, View);
ShareSettingsView.prototype.render = function () {
var _this = this;
View.prototype.render.call(this);
setTimeout(function () {
_this.els = {};
_this.els.shareEnabled = _this.$("#share-enabled");
_this.els.shareEnabled.addEventListener("change", function (e) {
return _this._handleShareEnabledChange(e);
});
_this.els.shareDescription = _this.$("#share-description");
_this.els.renameDevice = _this.$("#rename-device");
_this.els.deviceName = _this.$("#device-name");
_this.on("click", "#rename-device");
});
};
ShareSettingsView.prototype.template = function () {
var string = "<li>\n <div flex>\n <h3>Share My Apps</h3>\n <h4 id=\"share-description\">Turn on to share apps</h4>\n </div>\n <gaia-switch id=\"share-enabled\"></gaia-switch>\n </li>\n <li>\n <div flex>\n <h3>Device Name</h3>\n <h4 id=\"device-name\">Loading...</h4>\n </div>\n <a aria-disabled=\"true\" data-action=\"rename\" id=\"rename-device\">\n Rename\n </a>\n </li>";
return string;
};
ShareSettingsView.prototype.displayBroadcast = function (enabled) {
var _this2 = this;
setTimeout(function () {
_this2.els.shareDescription.textContent = enabled ? "Sharing On" : "Turn on to share apps";
if (enabled) {
_this2.els.shareEnabled.setAttribute("checked", "");
} else {
_this2.els.shareEnabled.removeAttribute("checked");
}
}, 0);
};
ShareSettingsView.prototype._handleShareEnabledChange = function (e) {
this.controller.toggleBroadcasting(e.target.checked);
};
_classProps(ShareSettingsView, null, {
deviceName: {
get: function () {
console.error("DONT USE ME LOL!");
return this.els.deviceName.textContent;
},
set: function (deviceName) {
var _this3 = this;
setTimeout(function () {
_this3.els.renameDevice.removeAttribute("aria-disabled");
_this3.els.deviceName.textContent = deviceName;
});
}
}
});
return ShareSettingsView;
})(View);
exports["default"] = ShareSettingsView;
});

View file

@ -0,0 +1,59 @@
define(["exports", "fxos-mvc/dist/mvc", "gaia-list"], function (exports, _fxosMvcDistMvc, _gaiaList) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var ShareSummaryView = (function (View) {
var ShareSummaryView = function ShareSummaryView(options) {
View.call(this, options);
this.el = document.createElement("gaia-list");
this.el.id = "sharing-summary";
this.el.addEventListener("click", this._handleClick.bind(this));
this.el.classList.add("app-list");
this.render();
};
_extends(ShareSummaryView, View);
ShareSummaryView.prototype.template = function () {
var string = "\n <li>\n <div flex>\n <h3>Share My Apps</h3>\n <h4 id=\"sharing-summary-status\">Sharing Off</h4>\n </div>\n <i id=\"sharing-summary-caret\" data-icon=\"forward-light\"\n aria-hidden=\"true\"></i>\n </li>";
return string;
};
ShareSummaryView.prototype.render = function () {
var _this = this;
View.prototype.render.call(this);
setTimeout(function () {
_this.broadcastElt = _this.$("#sharing-summary-status");
});
};
ShareSummaryView.prototype.displayBroadcast = function (enable) {
if (this.broadcastElt) {
this.broadcastElt.textContent = "Sharing " + (enable ? "On" : "Off");
}
};
ShareSummaryView.prototype._handleClick = function (e) {
this.controller.openSharePanel();
};
return ShareSummaryView;
})(View);
exports["default"] = ShareSummaryView;
});

View file

@ -0,0 +1,54 @@
define(["exports", "fxos-mvc/dist/mvc"], function (exports, _fxosMvcDistMvc) {
"use strict";
var _extends = function (child, parent) {
child.prototype = Object.create(parent.prototype, {
constructor: {
value: child,
enumerable: false,
writable: true,
configurable: true
}
});
child.__proto__ = parent;
};
var View = _fxosMvcDistMvc.View;
var CompositeTemplate = (function (View) {
var CompositeTemplate = function CompositeTemplate(options) {
var _this = this;
View.call(this, options);
this.el = document.createElement("div");
this.el.id = options.id;
if (options.active) {
this.el.classList.add("active");
}
if (options.header) {
var header = document.createElement("gaia-header");
header.innerHTML = "<h1>" + options.header.title + "</h1>";
if (options.header.action) {
header.setAttribute("action", options.header.action);
header.dataset.action = options.header.action;
this.on("action", "gaia-header");
}
this.el.appendChild(header);
}
options.views.forEach(function (view) {
_this.el.appendChild(view.el);
});
document.body.appendChild(this.el);
};
_extends(CompositeTemplate, View);
CompositeTemplate.prototype.render = function () {};
return CompositeTemplate;
})(View);
exports["default"] = CompositeTemplate;
});