Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropdown: implementing dropdown plugin #9532

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
94 changes: 94 additions & 0 deletions site/pages/docs/ref/dropdown/dropdown-en.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
{
"title": "Dropdown button",
"language": "en",
"category": "Plugins",
"categoryfile": "plugins",
"description": "Dropdown button to display a list of actions or links on click",
"altLangPrefix": "dropdown",
"dateModified": "2023-02-15"
}
---
<div class="alert alert-warning">
<h2>Unstable feature</h2>
<p>To be used at <strong>your own risk</strong>. This feature described below can be removed in any subsequent minor/major release</p>
<p><small><a href="https://wet-boew.github.io/wet-boew-documentation/decision/7.html">Learn more about the design decision around provisional features.</a></small></p>
<p><small><a href="../provisional-en.html">Check other provisional features available.</a></small></p>
</div>
Comment on lines +12 to +17
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it going to be a provisional feature?

Suggested change
<div class="alert alert-warning">
<h2>Unstable feature</h2>
<p>To be used at <strong>your own risk</strong>. This feature described below can be removed in any subsequent minor/major release</p>
<p><small><a href="https://wet-boew.github.io/wet-boew-documentation/decision/7.html">Learn more about the design decision around provisional features.</a></small></p>
<p><small><a href="../provisional-en.html">Check other provisional features available.</a></small></p>
</div>


<span class="wb-prettify all-pre"></span>

<h2>Purpose</h2>
<p>Dropdown button to display a list of actions or links on click</p>

<h2>Working example</h2>
<ul>
<li><a href="../../../demos/dropdown/dropdown-en.html">English example</a></li>
<li><a href="../../../demos/dropdown/dropdown-fr.html">French example</a></li>
</ul>

<h2>Evaluation and report</h2>
<p>There is no evaluation and report available for this component.</p>

<h2>API (Version 1.0)</h2>
<dl class="dl-horizontal">
<dt>Function</dt>
<dd>Version 1.0</dd>
<dt>Configuration</dt>
<dd>Not applicable</dd>
<dt>User interface (Template)</dt>
<dd>Version 1.0</dd>
<dt>Data source</dt>
<dd>Version 1.0</dd>
<dt>View and style</dt>
<dd>Version 1.0</dd>
<dt>i18n string</dt>
<dd>Version 1.0</dd>
</dl>

<h3>Function</h3>
<p>(Version 1.0)</p>
<table class="table">
<tr>
<th>Function type</th>
<th>Name</th>
<th>How to implement</th>
<th>What it does</th>
</tr>
<tr>
<td>jQuery Event</td>
<td><code>wb-init.dropdown</code></td>
<td>Triggered manually (e.g., <code>$( ".dropdown" ).trigger( "wb-init.dropdown" );</code>).</td>
<td>Initializes the <code>.dropdown</code> plugin. This plugin will be initialized automatically unless the <code>.dropdown</code> element is added after the page load and wet-boew was initialized.</td>
</tr>
<tr>
<td>jQuery Event</td>
<td><code>wb-ready.dropdown</code></td>
<td>Triggered automatically after the plugin initializes.</td>
<td>Used to identify when and where the plugin initializes.
<pre><code>$( document ).on( "wb-ready.dropdown", ".dropdown", function( event ) {
});</code></pre>
<pre><code>$elm.on( "wb-ready.dropdown", function( event ) {
});</code></pre>
</td>
</tr>
</table>

<h3>Configuration</h3>
<p>Not applicable for this plugin.</p>

<h3>User interface (Template)</h3>
<p>Version 1.0</p>

<pre><code>&lt;div class="dropdown"&gt;
&lt;button class="btn btn-default dropdown-toggle" type="button"&gt;Dropdown&lt;/button&gt;
&lt;ul class="dropdown-menu"&gt;
&lt;li&gt;&lt;a href="#"&gt;Link 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;Link 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;Link 3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;Link 4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</code></pre>

<h2>Source code</h2>
<p><a href="https://github.com/wet-boew/wet-boew/tree/master/src/plugins/dropdown">Add to Calendar source code on GitHub</a></p>
95 changes: 95 additions & 0 deletions site/pages/docs/ref/dropdown/dropdown-fr.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
{
"title": "Bouton de menu déroulant",
"language": "fr",
"category": "Plugiciels",
"categoryfile": "plugins",
"description": "Bouton affichant un menu déroulant d'actions ou de liens au clic",
"altLangPrefix": "dropdown",
"dateModified": "2023-02-15"
}
---

<div lang="en" class="alert alert-warning">
<h2>Unstable feature</h2>
<p>To be used at <strong>your own risk</strong>. This feature described below can be removed in any subsequent minor/major release</p>
<p><small><a href="https://wet-boew.github.io/wet-boew-documentation/decision/7.html">Learn more about the design decision around provisional features.</a></small></p>
<p><small><a href="../provisional-fr.html">Check other provisional features available.</a></small></p>
</div>

Comment on lines +13 to +19
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it going to be a provisional feature?

Suggested change
<div lang="en" class="alert alert-warning">
<h2>Unstable feature</h2>
<p>To be used at <strong>your own risk</strong>. This feature described below can be removed in any subsequent minor/major release</p>
<p><small><a href="https://wet-boew.github.io/wet-boew-documentation/decision/7.html">Learn more about the design decision around provisional features.</a></small></p>
<p><small><a href="../provisional-fr.html">Check other provisional features available.</a></small></p>
</div>

<span class="wb-prettify all-pre"></span>

<h2>But</h2>
<p>Bouton affichant un menu déroulant d'actions ou de liens au clic</p>

<h2>Exemples pratiques</h2>
<ul>
<li><a href="../../../demos/dropdown/dropdown-en.html">Exemple en anglais</a></li>
<li><a href="../../../demos/dropdown/dropdown-fr.html">Exemple en français</a></li>
</ul>

<h2>Évaluation et rapport</h2>
<p>Il n'y a pas d'évaluation ni de rapport disponible pour cette composante.</p>

<h2>API (Version 1.0)</h2>
<dl class="dl-horizontal">
<dt>Fonction</dt>
<dd>Version 1.0</dd>
<dt>Configuration</dt>
<dd>N'est pas applicable</dd>
<dt>Interface utilisateur (Modèle)</dt>
<dd>Version 1.0</dd>
<dt>Source de données</dt>
<dd>Version 1.0</dd>
<dt>Affichage et style</dt>
<dd>Version 1.0</dd>
<dt>Chaîne de caractères i18n</dt>
<dd>Version 1.0</dd>
</dl>

<h3>Fonction</h3>
<p>(Version 1.0)</p>
<table class="table">
<tr>
<th>Type de fonction</th>
<th>Nom</th>
<th>Comment implémenter</th>
<th>Fonction</th>
</tr>
<tr>
<td>Événement jQuery</td>
<td><code>wb-init.dropdown</code></td>
<td>Déclenché manuellement (par exemple&nbsp;: <code>$( ".dropdown" ).trigger( "wb-init.dropdown" );</code>).</td>
<td>Initialise la composante <code>.dropdown</code>. Cette composante sera initialisée automatiquement sauf si l'élément <code>.dropdown</code> est ajouté après le chargement de la page et l'initialisation de wet-boew.</td>
</tr>
<tr>
<td>Événement jQuery</td>
<td><code>wb-ready.dropdown</code></td>
<td>Déclenché automatiquement après l'initialisation du plugin.</td>
<td>Utilisé pour identifier quand et où la composante s'initialise.
<pre><code>$( document ).on( "wb-ready.dropdown", ".dropdown", function( event ) {
});</code></pre>
<pre><code>$elm.on( "wb-ready.dropdown", function( event ) {
});</code></pre>
</td>
</tr>
</table>

<h3>Configuration</h3>
<p>N'est pas applicable pour cette composante.</p>

<h3>Interface utilisateur (Modèle)</h3>
<p>Version 1.0</p>

<pre><code>&lt;div class="dropdown"&gt;
&lt;button class="btn btn-default dropdown-toggle" type="button"&gt;Menu déroulant&lt;/button&gt;
&lt;ul class="dropdown-menu"&gt;
&lt;li&gt;&lt;a href="#"&gt;Lien 1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;Lien 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;Lien 3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;Lien 4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</code></pre>

<h2>Code source</h2>
<p><a href="https://github.com/wet-boew/wet-boew/tree/master/src/plugins/dropdown">Code source d'Ajout au calendrier sur GitHub</a></p>
3 changes: 2 additions & 1 deletion src/base/_wet-boew.scss
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
/*! Components (CSS type only) */
@import "bootstrap-sass/assets/stylesheets/bootstrap/component-animations";
@import "transitions/base";
@import "bootstrap-sass/assets/stylesheets/bootstrap/dropdowns";
@import "bootstrap-sass/assets/stylesheets/bootstrap/button-groups";
@import "bootstrap-sass/assets/stylesheets/bootstrap/input-groups";
@import "bootstrap-sass/assets/stylesheets/bootstrap/navs";
Expand Down Expand Up @@ -97,6 +96,8 @@
@import "../plugins/charts/base";
@import "../plugins/collapsible-alerts/base";
@import "../plugins/dismissable-content/base";
@import "bootstrap-sass/assets/stylesheets/bootstrap/dropdowns";
@import "../plugins/dropdown/base";
Garneauma marked this conversation as resolved.
Show resolved Hide resolved
@import "../plugins/eqht-css/base";
@import "../plugins/equalheight/base";
@import "../plugins/filter/base";
Expand Down
82 changes: 82 additions & 0 deletions src/plugins/dropdown/_base.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
* Web Experience Toolkit (WET) / Boîte à outils de l'expérience Web (BOEW)
* wet-boew.github.io/wet-boew/License-en.html / wet-boew.github.io/wet-boew/Licence-fr.html
*
* Extend: https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_dropdowns.scss
*/

@mixin tabFocus() {
outline: 5px auto rgb(0, 95, 204);
outline-offset: -2px;
}

.wb-dropdown {
@extend .dropdown;

display: inline-block;

.dropdown-menu {
> li {
> button {
background: none;
border: none;
padding: .375em 1em;
text-align: left;
width: 100%;

&:hover {
background-color: rgba(0, 0, 0, .1);
color: $text-color;
}
&:focus { @include tabFocus(); }
&:focus-visible { @include tabFocus(); }
}

> a {
padding: .375em 1em;

&:hover {
background-color: rgba(0, 0, 0, .1);
color: $text-color;
text-decoration: underline;
}
&:focus {
@include tabFocus();
text-decoration: underline;
}
&:focus-visible { @include tabFocus(); }
}
}

.wb-disable & {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we hide the button in disable mode?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed, we should keep the text inside the button into the page when viewed in Basic HTML mode.

Like transforming the button into a paragraph.

display: block;
float: none;
position: static;
}
}

.dropdown-toggle {
&:focus-visible {
@include tabFocus();
}

.dropdown-toggle-icon {
font-size: 75%;
margin-left: 8px;
}
}

ul {
display: none;

.wb-disable & {
display: block;
}
}

&.open {
.dropdown-toggle-icon {
transform: rotate(180deg);
}
}
}