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,13 @@
<element name="confirmation-message" extends="form">
<template>
<section>
<h1>Confirmation title</h1>
<p>Confirmation message</p>
</section>
<menu>
<button>Action 1</button>
<button>Action 2</button>
</menu>
</template>
</element>

View file

@ -0,0 +1,98 @@
<element name="view-contact-details" extends="section">
<template>
<gaia-header id='details-view-header' action="back">
<h1 id='contact-name-title'><bdi class="ellipsis-dir-fix"></bdi></h1>
<div class='favorite-indicator'></div>
<button id="edit-contact-button" data-icon="edit-contact" data-l10n-id="editButton"></button>
</gaia-header>
<article id="contact-detail-wrapper" class="view-body">
<div id="cover-img"></div>
<section id="contact-detail" class="view-body-inner">
<li data-phone id='phone-details-template-#i#' data-template role="region" aria-label="Phone" data-l10n-id="phoneDetail">
<h2>
<span data-l10n-id="#type_l10n_id#">#type#</span>
<span class="carrier-wrapper" hidden>
<span data-l10n-id="separator"></span>
<span class="carrier">#carrier#</span>
</span>
</h2>
<div class="item">
<div class="item-body-exp">
<div class="button activity call-action icon icon-call" id="call-or-pick-#i#">
<b aria-label="Call" data-l10n-id="makeCall"><bdi class="ellipsis-dir-fix">#value#</bdi></b>
<span class="js-sim-indication"></span>
</div>
</div>
<div class="item-media pull-right">
<button id="send-sms-button-#i#" class="activity send-sms icon icon-message" data-l10n-id="send-sms-button" aria-label="SMS"></button>
</div>
</div>
</li>
<li data-social class="social-actions" id="social-template-#i#" data-template role="region">
<h2 data-l10n-id="social-network" id="social-label">Social Network</h2>
<button id="share_button" data-l10n-id="share-contact" class="activity icon icon-share">
Share
</button>
</li>
<li class="duplicate-actions" id="duplicate-contacts-template" data-template role="region">
<h2 data-l10n-id="organise-contacts">Organize Contacts</h2>
<button id="find-merge-button" data-l10n-id="find-merge-contacts" class="activity icon icon-find-and-merge">
Find duplicate contacts
</button>
</li>
<li data-address id='address-details-template-#i#' data-template role="region" aria-label="Address" data-l10n-id="addressDetail">
<h2 data-l10n-id="#type_l10n_id#">#type#</h2>
<div class="item">
<div class="item-body-exp">
<a href="#" class="action action-block">
<b>
<span class="force-align" dir="auto">#streetAddress#</span>
#postalCode#
#locality#
#countryName#
</b>
</a>
</div>
</div>
</li>
<li data-mail id='email-details-template-#i#' data-template role="region" aria-label="Email" data-l10n-id="emailDetail">
<h2 data-l10n-id="#type_l10n_id#"></h2>
<div class="item">
<div class="item-body-exp">
<button id="email-or-pick-#i#" class="activity icon icon-email">
<b aria-label="Email" data-l10n-id="composeEmail" dir="ltr">#value#</b>
</button>
</div>
<div class="item-media pull-right">
<button id="send-sms-to-email-button-#i#" class="activity send-sms icon icon-message" data-l10n-id="send-sms-button" aria-label="SMS"></button>
</div>
</div>
</li>
<li id="dates-template-#i#" data-template role="region" aria-label="Date" data-l10n-id="dateDetail">
<h2 data-l10n-id="#type_l10n_id#">#type#</h2>
<p><strong>#date#</strong></p>
</li>
<p data-comment id='note-details-template-#i#' data-template class="comment-notes">#note#</p>
<div id='contact-detail-inner'>
<h1 id='org-title' class="force-align" dir="auto"></h1>
<ul id='details-list' role="presentation">
</ul>
<ul role="presentation">
<li role="presentation">
<button id='toggle-favorite' class="fillflow-row icon icon-fav">
Add as favorite
</button>
</li>
</ul>
</div>
</section>
</article>
</template>
</element>

View file

@ -0,0 +1,18 @@
<!-- bug 1060080: taken from details.html, should be unified -->
<element name="email-details" extends="section">
<template>
<li data-mail id='email-details-template-#i#' data-template role="region" aria-label="Email" data-l10n-id="emailDetail">
<h2 data-l10n-id="#type_l10n_id#">#type#</h2>
<div class="item">
<div class="item-body-exp">
<button id="email-or-pick-#i#" class="activity icon icon-email">
<b aria-label="Email" data-l10n-id="composeEmail" dir="ltr">#value#</b>
</button>
</div>
<div class="item-media pull-right">
<button id="send-sms-to-email-button-#i#" class="activity send-sms icon icon-message" data-l10n-id="send-sms-button" aria-label="SMS"></button>
</div>
</div>
</li>
</template>
</element>

View file

@ -0,0 +1,212 @@
<element name="view-contact-form" extends="section">
<template>
<gaia-header id="contact-form-header" action="close">
<h1 id='contact-form-title' data-l10n-id="addContact"></h1>
<button id="save-button" data-l10n-id="done">Done</button>
</gaia-header>
<progress id="throbber" value="0" max="100" class="pack-activity hide"></progress>
<div id='add-phone-#i#' role="listitem" data-template class='phone-template field-template' data-index="#i#">
<fieldset class="fillflow-row">
<div class="two_fields first-row">
<legend class="action" role="combobox" aria-haspopup="true" aria-labelledby="tel_type_#i#">
<span aria-hidden="true" data-taglist="phone-type" name="tel" data-value="#type_value#"
id="tel_type_#i#" data-field="type" data-l10n-id="#type_l10n_id#">
#type#
</span>
</legend>
<p class="setbox-item">
<input placeholder="Carrier" data-field="carrier" data-l10n-id="carrier" name="tel[#i#][carrier]" class="textfield" type="text" x-inputmode="latin-prose" value="#carrier#" id="carrier_#i#" dir="auto">
<button type="reset">Clear</button>
</p>
</div>
<section class="second-row">
<p class="setbox-item">
<bdi>
<input placeholder="Phone" data-field="value" data-l10n-id="tel" name="tel[#i#][value]" class="textfield" type="tel" value="#value#" id="number_#i#">
<button type="reset">Clear</button>
</bdi>
</p>
</section>
</fieldset>
</div>
<div id='add-email-#i#' role="listitem" data-template class='email-template field-template' data-index="#i#">
<fieldset class="fillflow-row">
<legend class="action first-row" role="combobox" aria-haspopup="true" aria-labelledby="email_type_#i#">
<span aria-hidden="true" data-taglist="email-type" name="email[#i#][type]" data-value="#type_value#" id="email_type_#i#" data-field="type" data-l10n-id="#type_l10n_id#">#type#</span>
</legend>
<section>
<p class="setbox-item second-row">
<input placeholder="Email" data-field="value" data-l10n-id="email" name="email[#i#][value]" class="textfield" type="email" value="#value#" id="email_#i#">
<button type="reset">Clear</button>
</p>
</section>
</fieldset>
</div>
<div id='add-address-#i#' role="listitem" data-template class='address-template field-template' data-index="#i#">
<fieldset class="fillflow-row">
<section>
<p class="setbox-item first-row">
<input placeholder="Street" data-field="streetAddress" data-l10n-id="streetAddress" name="adr[#i#][streetAddress]" class="textfield" type="text" x-inputmode="latin-prose" value="#streetAddress#" id="streetAddress_#i#" dir="auto">
<button type="reset">Clear</button>
</p>
<div class="two_fields second-row">
<legend class="action" role="combobox" aria-haspopup="true" aria-labelledby="address_type_#i#">
<span aria-hidden="true" data-taglist="address-type" name="adr[#i#][type]" data-value="#type_value#" id="address_type_#i#" data-field="type" data-l10n-id="#type_l10n_id#">#type#</span>
</legend>
<p class="setbox-item">
<input placeholder="City" data-field="locality" data-l10n-id="locality" name="adr[#i#][locality]" class="textfield" type="text" x-inputmode="latin-prose" value="#locality#" id="locality_#i#" dir="auto">
<button type="reset">Clear</button>
</p>
</div>
<div class="two_fields third-row">
<p class="setbox-item">
<input placeholder="Country" data-field="countryName" data-l10n-id="countryName" name="adr[#i#][countryName]" class="textfield" type="text" x-inputmode="latin-prose" value="#countryName#" id="countryName_#i#" dir="auto">
<button type="reset">Clear</button>
</p>
<p class="setbox-item">
<input placeholder="Zip Code" data-field="postalCode" data-l10n-id="postalCode" name="adr[#i#][postalCode]" class="textfield" type="text" x-inputmode="verbatim" value="#postalCode#" id="postalCode_#i#" dir="auto">
<button type="reset">Clear</button>
</p>
</div>
</section>
</fieldset>
</div>
<div id='add-date-#i#' role="listitem" data-template class='date-template field-template' data-exclusive="true" data-custom="false" data-index="#i#">
<fieldset class="fillflow-row first-row">
<div class="two_fields">
<legend class="action" role="combobox" aria-haspopup="true" aria-labelledby="date_type_#i#">
<span aria-hidden="true" data-taglist="date-type" name="date[#i#][type]" data-value="#type_value#" id="date_type_#i#" data-field="type" data-l10n-id="#type_l10n_id#">#type#</span>
</legend>
<section>
<p class="setbox-item">
<span aria-hidden="true" id="date-text_#i#" class="datetime placeholder">
Date
</span>
<input placeholder="date" data-field="#type#" data-l10n-id="date" name="date[#i#][value]" type="date" id="date_#i#" aria-labelledby="date-text_#i#">
</p>
</section>
</div>
</fieldset>
</div>
<div id='add-note-#i#' role="listitem" data-template class='note-template field-template' data-index="#i#">
<dl role="presentation" class="setbox fillflow-row first-row">
<dd class="setbox-body">
<p class="setbox-item">
<textarea placeholder="Comment" data-field="note"
data-l10n-id="comment" name="comment[#i#]" class="textfield"
type="text" x-inputmode="latin-prose" id="note_#i#">
#note#
</textarea>
<button type="reset">Clear</button>
</p>
</dd>
</dl>
</div>
<article class="view-body">
<div class="view-body-inner">
<form id="contact-form" action="#" class="fill-flow">
<input name="id" id="contact-form-id" type="hidden" value="">
<section class="item first">
<div id="thumbnail-action" href="#" class="item-media fillflow-media">
<div role="button" id="photo-button" class="bb-button">
<p>
<span class="icon icon-addimage"></span>
<em data-l10n-id="addPhoto">Add photo</em>
</p>
<p class="edit-photo">
<em data-l10n-id="edit-picture">Edit Picture</em>
</p>
<img id="thumbnail-photo" alt="">
</div>
</div>
<div class="item-body-exp with-overflow">
<p class="fillflow-row input-container">
<input placeholder="Name" data-field="givenName" data-l10n-id="givenName" name="givenName" class="textfield" type="text" x-inputmode="latin-prose" value="" id="givenName" dir="auto" autocorrect="off" autocapitalize="on" spellcheck="false" x-inputmode="verbatim">
<button type="reset">Clear</button>
</p>
<p class="fillflow-row input-container">
<input placeholder="Last name" data-field="familyName" data-l10n-id="familyName" name="familyName" class="textfield" type="text" x-inputmode="latin-prose" value="" id="familyName" dir="auto" autocorrect="off" autocapitalize="on" spellcheck="false" x-inputmode="verbatim">
<button type="reset">Clear</button>
</p>
</div>
<div class="with-overflow">
<p class="fillflow-row">
<input placeholder="Company Name" data-field="org" data-l10n-id="org" name="org" class="textfield" type="text" x-inputmode="verbatim" value="" id="org" dir="auto">
<button type="reset" id="clear-org">Clear</button>
</p>
</div>
</section>
<ul role="presentation">
<li role="region" aria-label="Phones" data-l10n-id="phones">
<section>
<div id="contacts-form-phones" role="list"></div>
</section>
<button data-field-type="tel" id='add-new-phone' data-l10n-id="addPhone" class="fillflow-row action action-add icon icon-add">
Add phone number
</button>
<hr>
</li>
<li role="region" aria-label="Emails" data-l10n-id="emails">
<section>
<div id="contacts-form-emails" role="list"></div>
</section>
<button data-field-type="email" id='add-new-email' data-l10n-id="addEmail" class="fillflow-row action action-add icon icon-add">
Add email address
</button>
<hr>
</li>
<li role="region" aria-label="Addresses" data-l10n-id="addresses">
<section>
<div id="contacts-form-addresses" role="list"></div>
</section>
<button data-field-type="adr" id='add-new-address' data-l10n-id="addAddress" class="fillflow-row action action-add icon icon-add">
Add new address
</button>
<hr>
</li>
<li role="region" aria-label="Dates" data-l10n-id="dates">
<section>
<div id="contacts-form-dates" role="list"></div>
</section>
<button data-field-type="date" id='add-new-date' data-l10n-id="addDate" class="fillflow-row action action-add icon icon-add">
Add Date
</button>
<hr>
</li>
<li role="region" aria-label="Notes" data-l10n-id="notes">
<section>
<div id="contacts-form-notes" role="list"></div>
</section>
<button data-field-type="note" id='add-new-note' data-l10n-id="addComment" class="fillflow-row action action-add icon icon-add">
Add comment
</button>
<hr>
</li>
</ul>
</form>
<footer class="tail-actions hide">
<button id='delete-contact' class="fillflow-row action action-delete danger">
<b data-l10n-id="deleteContact">Delete contact</b>
</button>
</footer>
</div>
</article>
</template>
</element>

View file

@ -0,0 +1,13 @@
<element name="ice-view" extends="section">
<template>
<gaia-header id="ice-header" action="back">
<h1 data-l10n-id="ice_contacts"></h1>
</gaia-header>
<arcticle class="view-body">
<section id="ice-list" data-type="list" class="active">
<ol id="ice-group" role="">
</ol>
</section>
</arcticle>
</template>
</element>

View file

@ -0,0 +1,22 @@
<element name="multiple-select-view" extends="section">
<template>
<template id="contactToImportTemplate">
<li>
<aside class="pack-end" aria-hidden="true">
<span data-type="img"></span>
</aside>
<p>Name</p>
<p>Org</p>
</li>
</template>
<gaia-header id="multiple-select-view-header" action="close">
<h1 id="multiple-select-view-title">Filename</h1>
<button id="save-button" data-l10n-id="importAll">Import all</button>
</gaia-header>
<article class="view-body">
<ol id="multiple-select-container" class="view-body-inner" data-type="list">
</ol>
</article>
</template>
</element>

View file

@ -0,0 +1,15 @@
<element name="confirm-form" extends="form">
<template>
<section id="progress-activity" class="hide">
<h1 id="progress-title"></h1>
<p role="status">
<span id="progress-msg"></span>
<progress id="progress-element" class="pack-activity" value="0" max="100"></progress>
</p>
</section>
<menu>
<button data-l10n-id="cancel" id="cancel-overlay">Cancel</button>
</menu>
</template>
</element>

View file

@ -0,0 +1,25 @@
<!-- bug 1060080: taken from details.html, should be unified -->
<element name="phone-details" extends="section">
<template>
<li data-phone id='phone-details-template-#i#' data-template role="region" aria-label="Phone" data-l10n-id="phoneDetail">
<h2>
<span data-l10n-id="#type_l10n_id#">#type#</span>
<span class="carrier-wrapper" hidden>
<span data-l10n-id="separator"></span>
<span class="carrier">#carrier#</span>
</span>
</h2>
<div class="item">
<div class="item-body-exp">
<div class="button activity call-action icon icon-call" id="call-or-pick-#i#">
<b aria-label="Call" data-l10n-id="makeCall"><bdi class="ellipsis-dir-fix">#value#</bdi></b>
<span class="js-sim-indication"></span>
</div>
</div>
<div class="item-media pull-right">
<button id="send-sms-button-#i#" class="activity send-sms icon icon-message" data-l10n-id="send-sms-button" aria-label="SMS"></button>
</div>
</div>
</li>
</template>
</element>

View file

@ -0,0 +1,7 @@
<element name="view-screenshot" extends="section">
<template>
<article id="view-screenshot-body">
</article>
</template>
</element>

View file

@ -0,0 +1,26 @@
<element name="search-view" extends="section">
<template>
<form id="searchview-container" class="search" role="search">
<p>
<label role="presentation">
<input type="search" name="search" class="textfield" x-inputmode="verbatim"
id="search-contact" placeholder="Search" data-l10n-id="search-contact">
<button type="reset">Clear</button>
</label>
</p>
<button id="cancel-search" data-l10n-id="cancel" type="submit">Cancel</button>
</form>
<section id="groups-list-search">
<ol id="search-list" data-type="list" class="active" role="listbox">
</ol>
</section>
<section id="search-process">
<p id="no-result" class="hide" data-l10n-id="noResults">No contacts found</p>
<p id="search-progress" class="hidden" role="status">
<progress class="small"></progress>
</p>
</section>
</template>
</element>

View file

@ -0,0 +1,130 @@
<element name="settings" extends="article">
<template>
<section data-theme="organic" id="view-settings" role="region" class="skin-organic view view-bottom theme-settings">
<gaia-header>
<h1 data-l10n-id="settings"></h1>
<button id="settings-close" data-l10n-id="done">Done</button>
</gaia-header>
<article class="view-body" id="settings-article">
<section role="region" class="view-body-inner">
<ul data-type="list" role="presentation">
<li id="settingsOrder" role="checkbox">
<gaia-switch name="order.lastname">
<label data-l10n-id="contactsOrderBy"></label>
</gaia-switch>
</li>
</ul>
<gaia-subheader skin="organic" id="transfer-contacts-header">
<span data-l10n-id="transferContactsTitle">Transfer Contacts</span>
</gaia-subheader>
<ul data-type="list" id="sources" role="listbox" aria-labelledby="transfer-contacts-header">
<li role="presentation" id="importContacts" data-source="sim">
<button role="option" class="icon icon-import" data-l10n-id="importContactsButton">
Import Contacts
</button>
</li>
<li role="presentation" id="exportContacts" data-source="sd">
<button role="option" class="icon icon-export" data-l10n-id="exportContactsButton">
Export Contacts
</button>
</li>
</ul>
<gaia-subheader skin="organic" id="contacts-management-header">
<span data-l10n-id="ContactManagementTitle">Contacts Management</span>
</gaia-subheader>
<ul data-type="list" id="contactsManagement" role="listbox" aria-labelledby="contacts-management-header">
<li role="presentation">
<button role="option" id="set-ice" class="action" data-l10n-id="setICEButton">
Set ICE Contacts
</button>
</li>
<li role="presentation">
<button role="option" id="bulkDelete" class="action" data-l10n-id="bulkDeleteButton">
Delete Contacts
</button>
</li>
</ul>
</section>
</article>
</section>
<section data-theme="organic" id="import-settings" role="region" class="skin-organic view view-right theme-settings">
<gaia-header id="import-settings-header" action="back">
<h1 id='import-settings-title'></h1>
</gaia-header>
<article class="view-body">
<section role="region" class="view-body-inner">
<ul role="listbox" data-type="list" id="import-options">
<li role="presentation" id="import-sd-option" data-source="sd">
<button role="option" class="icon icon-sd" >
<span data-l10n-id="importMemoryCard">Memory card</span>
<p><span></span><time></time></p>
</button>
<p class="error-message"></p>
</li>
<li role="presentation" id="import-gmail-option" class="importService" data-source="gmail">
<button role="option" class="icon icon-gmail">
<span data-l10n-id="importGmail">Gmail</span>
<p><span></span><time></time></p>
</button>
</li>
<li role="presentation" id="import-live-option" class="importService" data-source="live">
<button role="option" class="icon icon-live">
<span data-l10n-id="importOutlook">Outlook</span>
<p><span></span><time></time></p>
</button>
<p class="error-message" data-l10n-id="genericNoConnection"></p>
</li>
</ul>
<ul role="listbox" data-type="list" id="export-options">
<li role="presentation" id="export-sd-option" data-source="sd">
<button role="option" class="icon icon-sd" data-l10n-id="memoryCard">
Memory card
</button>
<p class="error-message"></p>
</li>
<li role="presentation" id="export-bluetooth-option" data-source="bluetooth">
<button role="option" class="icon icon-bluetooth" data-l10n-id="bluetooth">
Bluetooth
</button>
</li>
</ul>
</section>
</article>
</section>
<section data-theme="organic" id="ice-settings" role="region" class="skin-organic view view-right theme-settings">
<gaia-header id="ice-settings-header" action="back">
<h1 id='ice-settings-title' data-l10n-id="ICESettingTitle"></h1>
</gaia-header>
<article class="view-body">
<section role="region" class="view-body-inner">
<p class="description" data-l10n-id="ICEDescription">
Add two contacts for making “In Case of Emergency” calls.
</p>
<ul data-type="list" role="listbox" aria-multiselectable="true">
<li role="option" id="ice-contacts-1-switch" class="ice-contacts-switch">
<gaia-switch name="ice-contact-1-enabled">
<label data-l10n-id="ICEContact1"></label>
</gaia-switch>
</li>
<li role="presentation">
<button role="option" id="select-ice-contact-1" class="icon icon-view" data-l10n-id="ICESelectContact" disabled>
Select a contact
</button>
</li>
<li role="option" id="ice-contacts-2-switch" class="ice-contacts-switch">
<gaia-switch name="ice-contact-2-enabled">
<label data-l10n-id="ICEContact2"></label>
</gaia-switch>
</li>
<li role="presentation">
<button role="option" id="select-ice-contact-2" class="icon icon-view" data-l10n-id="ICESelectContact" disabled>
Select a contact
</button>
</li>
</ul>
</section>
</article>
</section>
</template>
</element>

View file

@ -0,0 +1,6 @@
<element name="status-message" extends="section">
<template>
<p></p>
</template>
</element>

View file

@ -0,0 +1,19 @@
<element name="view-select-tag" extends="section">
<template>
<gaia-header id="settings-header" action="back">
<h1 data-l10n-id="label"></h1>
<button id="settings-done" data-l10n-id="done">Done</button>
</gaia-header>
<article class="view-body">
<form class="view-body-inner">
<ul id="tags-list" class="selection-list compact" role="listbox">
</ul>
<p>
<input class="textfield tagItem" type="text" placeholder="Custom Tag" value="" id='custom-tag' data-l10n-id="customTag" dir="auto">
<button id="custom-tag-reset" type="reset">Clear</button>
</p>
</form>
</article>
</template>
</element>