From 784b850b5576d641b2ee8def7cd4def3eb75f419 Mon Sep 17 00:00:00 2001 From: Dave Lockhart Date: Mon, 18 Jul 2022 09:00:25 -0400 Subject: [PATCH] feat: dropdown-button-icon/custom components (#163) --- d2l-navigation-button-icon.js | 40 +-------- d2l-navigation-dropdown-button-custom.js | 36 ++++++++ d2l-navigation-dropdown-button-icon.js | 85 ++++++++++++++++++ d2l-navigation-notification-icon.js | 82 +++++++++-------- d2l-navigation-styles.js | 41 ++++++++- demo/button-link.html | 38 ++++++++ package.json | 4 +- test/button.test.js | 50 ++++++++++- test/button.visual-diff.html | 24 +++++ test/button.visual-diff.js | 10 ++- ...avigation-button-dropdown-custom-focus.png | Bin 0 -> 3523 bytes ...avigation-button-dropdown-custom-hover.png | Bin 0 -> 3523 bytes ...vigation-button-dropdown-custom-normal.png | Bin 0 -> 3372 bytes ...on-button-dropdown-icon-disabled-focus.png | Bin 0 -> 2547 bytes ...on-button-dropdown-icon-disabled-hover.png | Bin 0 -> 2547 bytes ...n-button-dropdown-icon-disabled-normal.png | Bin 0 -> 2547 bytes ...igation-button-dropdown-icon-off-focus.png | Bin 0 -> 6601 bytes ...igation-button-dropdown-icon-off-hover.png | Bin 0 -> 6601 bytes ...gation-button-dropdown-icon-off-normal.png | Bin 0 -> 2596 bytes ...vigation-button-dropdown-icon-on-focus.png | Bin 0 -> 7039 bytes ...vigation-button-dropdown-icon-on-hover.png | Bin 0 -> 7039 bytes ...igation-button-dropdown-icon-on-normal.png | Bin 0 -> 3023 bytes 22 files changed, 328 insertions(+), 82 deletions(-) create mode 100644 d2l-navigation-dropdown-button-custom.js create mode 100644 d2l-navigation-dropdown-button-icon.js create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-focus.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-hover.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-normal.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-focus.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-hover.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-normal.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-focus.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-hover.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-normal.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-focus.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-hover.png create mode 100644 test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-normal.png diff --git a/d2l-navigation-button-icon.js b/d2l-navigation-button-icon.js index 2b3ae35d..f83d1a4b 100644 --- a/d2l-navigation-button-icon.js +++ b/d2l-navigation-button-icon.js @@ -5,7 +5,7 @@ import { css, html, LitElement, nothing } from 'lit'; import { FocusMixin } from '@brightspace-ui/core/mixins/focus-mixin.js'; import { getUniqueId } from '@brightspace-ui/core/helpers/uniqueId.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { highlightBorderStyles } from './d2l-navigation-styles.js'; +import { highlightBorderStyles, highlightButtonStyles } from './d2l-navigation-styles.js'; /** * Navigation button with an icon and text. @@ -43,7 +43,7 @@ class NavigationButtonIcon extends FocusMixin(LitElement) { } static get styles() { - return [highlightBorderStyles, css` + return [highlightBorderStyles, highlightButtonStyles, css` :host { display: inline-block; height: 100%; @@ -51,40 +51,6 @@ class NavigationButtonIcon extends FocusMixin(LitElement) { :host([hidden]) { display: none; } - button { - align-items: center; - background: transparent; - border: none; - color: var(--d2l-color-ferrite); - cursor: pointer; - display: inline-flex; - font-family: inherit; - font-size: inherit; - gap: 6px; - height: 100%; - margin: 0; - min-height: 40px; - outline: none; - overflow: visible; - padding: 0; - position: relative; - vertical-align: middle; - white-space: nowrap; - } - /* Firefox includes a hidden border which messes up button dimensions */ - button::-moz-focus-inner { - border: 0; - } - button:not([disabled]):hover, - button:not([disabled]):focus { - --d2l-icon-fill-color: var(--d2l-color-celestine); - color: var(--d2l-color-celestine); - outline: none; - } - button[disabled] { - cursor: default; - opacity: 0.5; - } `]; } @@ -121,7 +87,7 @@ class NavigationButtonIcon extends FocusMixin(LitElement) { ariaLabel: this.text, id: this._buttonId, text: nothing, - tooltip: html`${this.text}` + tooltip: html`${this.text}` }; } return { diff --git a/d2l-navigation-dropdown-button-custom.js b/d2l-navigation-dropdown-button-custom.js new file mode 100644 index 00000000..c9d0e14e --- /dev/null +++ b/d2l-navigation-dropdown-button-custom.js @@ -0,0 +1,36 @@ +import { css, html, LitElement } from 'lit'; +import { DropdownOpenerMixin } from '@brightspace-ui/core/components/dropdown/dropdown-opener-mixin.js'; +import { highlightBorderStyles, highlightButtonStyles } from './d2l-navigation-styles.js'; + +class NavigationDropdownButtonCustom extends DropdownOpenerMixin(LitElement) { + + static get styles() { + return [highlightBorderStyles, highlightButtonStyles, css` + :host { + display: inline-block; + height: 100%; + position: relative; + } + :host([hidden]) { + display: none; + } + `]; + } + + getOpenerElement() { + return this.shadowRoot && this.shadowRoot.querySelector('button'); + } + + render() { + return html` + + + `; + } + +} + +customElements.define('d2l-navigation-dropdown-button-custom', NavigationDropdownButtonCustom); diff --git a/d2l-navigation-dropdown-button-icon.js b/d2l-navigation-dropdown-button-icon.js new file mode 100644 index 00000000..d95763b1 --- /dev/null +++ b/d2l-navigation-dropdown-button-icon.js @@ -0,0 +1,85 @@ +import '@brightspace-ui/core/components/icons/icon.js'; +import '@brightspace-ui/core/components/tooltip/tooltip.js'; +import './d2l-navigation-notification-icon.js'; +import { css, html, LitElement, nothing } from 'lit'; +import { DropdownOpenerMixin } from '@brightspace-ui/core/components/dropdown/dropdown-opener-mixin.js'; +import { getUniqueId } from '@brightspace-ui/core/helpers/uniqueId.js'; +import { ifDefined } from 'lit/directives/if-defined.js'; +import { offscreenStyles } from '@brightspace-ui/core/components/offscreen/offscreen.js'; +import { highlightBorderStyles, highlightButtonStyles } from './d2l-navigation-styles.js'; + +class NavigationDropdownButtonIcon extends DropdownOpenerMixin(LitElement) { + + static get properties() { + return { + icon: { type: String }, + hasNotification: { attribute: 'has-notification', reflect: true, type: Boolean }, + text: { type: String }, + notificationText: { attribute: 'notification-text', type: String } + }; + } + + static get styles() { + return [highlightBorderStyles, highlightButtonStyles, offscreenStyles, css` + :host { + display: inline-block; + height: 100%; + position: relative; + } + :host([hidden]) { + display: none; + } + .icon-container { + display: inline-block; + position: relative; + } + `]; + } + + constructor() { + super(); + this.hasNotification = false; + this._buttonId = getUniqueId(); + this._describedById = getUniqueId(); + } + + getOpenerElement() { + return this.shadowRoot && this.shadowRoot.querySelector('button'); + } + + render() { + const { ariaDescribedBy, ariaDescription, contents } = this._getRenderSettings(); + const highlightBorder = !this.disabled ? html`` : nothing; + const tooltip = !this.dropdownOpened ? html`${this.text}` : nothing; + return html` + + ${ariaDescription} + ${tooltip} + + `; + } + + _getRenderSettings() { + const icon = html``; + if (this.hasNotification) { + return { + ariaDescribedBy: this._describedById, + ariaDescription: html`${this.notificationText}`, + contents: html`${icon}` + }; + } + return { + ariaDescribedBy: undefined, + ariaDescription: nothing, + contents: icon + }; + } + +} + +customElements.define('d2l-navigation-dropdown-button-icon', NavigationDropdownButtonIcon); diff --git a/d2l-navigation-notification-icon.js b/d2l-navigation-notification-icon.js index ab61a193..20439c93 100644 --- a/d2l-navigation-notification-icon.js +++ b/d2l-navigation-notification-icon.js @@ -1,44 +1,54 @@ import '@brightspace-ui/core/components/colors/colors.js'; -import { html, PolymerElement } from '@polymer/polymer/polymer-element.js'; +import { RtlMixin } from '@brightspace-ui/core/mixins/rtl-mixin.js'; +import { css, html, LitElement } from 'lit'; -/** - * @customElement - * @polymer - */ -class NavigationNotificationIcon extends PolymerElement { - static get template() { - return html` - -
+class NavigationNotificationIcon extends RtlMixin(LitElement) { + + static get properties() { + return { + thinBorder: { attribute: 'thin-border', reflect: true, type: Boolean } + }; + } + + static get styles() { + return css` + :host { + display: inline-block; + height: 100%; + position: absolute; + right: calc(-100% + 11px); + top: calc(-50% + 11px); + width: 100%; + } + :host([hidden]) { + display: none; + } + :host([dir="rtl"]) { + left: calc(-50% - 4px); + right: auto; + } + .d2l-navigation-notification-icon-indicator { + background: var(--d2l-color-primary-accent-indicator); + border: 2px solid white; + border-radius: 50%; + height: 10px; + width: 10px; + } + :host([thin-border]) .d2l-navigation-notification-icon-indicator { + border-width: 1px; + } `; } + constructor() { + super(); + this.thinBorder = false; + } + + render() { + return html`
`; + } + } window.customElements.define('d2l-navigation-notification-icon', NavigationNotificationIcon); diff --git a/d2l-navigation-styles.js b/d2l-navigation-styles.js index b0f72ab2..21ed1084 100644 --- a/d2l-navigation-styles.js +++ b/d2l-navigation-styles.js @@ -14,11 +14,50 @@ export const highlightBorderStyles = css` width: calc(100% + 14px); } *:focus > .d2l-navigation-highlight-border, - *:hover > .d2l-navigation-highlight-border { + *:hover > .d2l-navigation-highlight-border, + *[active] > .d2l-navigation-highlight-border { background: var(--d2l-color-celestine); } `; +export const highlightButtonStyles = css` + button { + align-items: center; + background: transparent; + border: none; + color: var(--d2l-color-ferrite); + cursor: pointer; + display: inline-flex; + font-family: inherit; + font-size: inherit; + gap: 6px; + height: 100%; + margin: 0; + min-height: 40px; + outline: none; + overflow: visible; + padding: 0; + position: relative; + vertical-align: middle; + white-space: nowrap; + } + /* Firefox includes a hidden border which messes up button dimensions */ + button::-moz-focus-inner { + border: 0; + } + button:not([disabled]):hover, + button:not([disabled]):focus, + button[active] { + --d2l-icon-fill-color: var(--d2l-color-celestine); + color: var(--d2l-color-celestine); + outline: none; + } + button[disabled] { + cursor: default; + opacity: 0.5; + } +`; + export const highlightLinkStyles = css` a { align-items: center; diff --git a/demo/button-link.html b/demo/button-link.html index 4997e50e..661f8334 100644 --- a/demo/button-link.html +++ b/demo/button-link.html @@ -4,7 +4,10 @@ +
@@ -43,5 +52,20 @@
+ + +
+
+ + custom + content + +
diff --git a/test/button.visual-diff.js b/test/button.visual-diff.js index 56232c88..b6111b53 100644 --- a/test/button.visual-diff.js +++ b/test/button.visual-diff.js @@ -30,10 +30,14 @@ describe('d2l-navigation-button', () => { { category: 'icon-text', tests: ['normal', 'hover', 'focus'] }, { category: 'icon-text-disabled', tests: ['normal', 'hover', 'focus'] }, { category: 'icon-text-flip', tests: ['normal', 'hover', 'focus'] }, - { category: 'icon-text-hidden', rectSelector: 'icon-text-hidden-container', tests: ['normal', 'hover', 'focus'] }, + { category: 'icon-text-hidden', tooltip: true, rectSelector: 'icon-text-hidden-container', tests: ['normal', 'hover', 'focus'] }, { category: 'icon-text-hidden-disabled', tests: ['normal', 'hover', 'focus'] }, { category: 'notification-icon-off', tests: ['normal', 'hover', 'focus'] }, - { category: 'notification-icon-on', tests: ['normal', 'hover', 'focus'] } + { category: 'notification-icon-on', tests: ['normal', 'hover', 'focus'] }, + { category: 'dropdown-icon-off', tooltip: true, rectSelector: 'dropdown-icon-off-container', tests: ['normal', 'hover', 'focus'] }, + { category: 'dropdown-icon-on', tooltip: true, rectSelector: 'dropdown-icon-on-container', tests: ['normal', 'hover', 'focus'] }, + { category: 'dropdown-icon-disabled', tooltip: true, rectSelector: 'dropdown-icon-disabled-container', tests: ['normal', 'hover', 'focus'] }, + { category: 'dropdown-custom', tests: ['normal', 'hover', 'focus'] } ].forEach((entry) => { describe(entry.category, () => { entry.tests.forEach((name) => { @@ -43,7 +47,7 @@ describe('d2l-navigation-button', () => { if (name === 'hover') { await page.hover(selector); - if (entry.category === 'icon-text-hidden') { + if (entry.tooltip) { await new Promise(resolve => setTimeout(resolve, 350)); } } diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-focus.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-focus.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bf4320f603607951c29712d42dab903ba8d766 GIT binary patch literal 3523 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 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-hover.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..f4bf4320f603607951c29712d42dab903ba8d766 GIT binary patch literal 3523 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 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-normal.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-custom-normal.png new file mode 100644 index 0000000000000000000000000000000000000000..c7c11dc96f357fdb1ffd0515762d8b8ad45b7714 GIT binary patch literal 3372 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 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-focus.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-focus.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c536495f907f5e1c9327596d76dd3bb346b236 GIT binary patch literal 2547 zcmeHJYgE$N7DsbREj69envB$|nP_U6l_ofvp!QH8r0WYE8`DWe8B82eY2jF?8Qvy( zD417Nd|b6j$p<3WYg+k$OJ-$=EuTmP=tGNDl*?zZh-@)|f=*8nEdR(SiP;CZV+)1Ttz24)DWdGL=$j z>VeCaHzt3B-!zFXaeZl*Zd+4fJea@N=CwY-*y($wwvH#k>nB^=m_EVYKfQaLE?>PE1cSQd^NAK@GI?P!&3XqrkGNGcitke* zJhJ$>@y@WAFNTwGhgeJ|(}lcyx4BrY?qA~bopY{o-xaN_Z0s#IY(gMA%yY9hFYUV3 zOIlCnj1;&X%Kn>=UAwmo8QvMQ&Qn{D&}frs`vl9RZvzd~{a%>+pO%^OvQH~n|7iY5 zzsmL^-B||yFx^X7-rya3bV2w`tyK2a6YE_bK{5C1vxTj=<`<{T1b5D`gdK#g>kVL% zH%l`&`3}`A>ZXh?HJ4mOhS%rijXAF=6kplc2CZCnjr(D|uXd5tQ)vV_?+K~t)zd*whI*R4#Q&>J2-e}oY*6a%7ThpgAy^Gne>~Hq| zuH~W^T_ar98q~+OM+lHB_@)0pn*S8eKz7GD`Z;U@^Mbp?yXgk zlakcS{IoFYfd3|J-*cf*)W?;_=`vB-#j&fFn;kWr?|f1zb>CHs~P!eQzlVQ3FzSJ&D^y% zQ^byi*ZL4l5VCG)N!Bv*Frx8oKFR$eXGEhDn>Ax^pDQK3#<$5<(W0_#JHrha1NYuJ zMn@~7HEp388F4<~K=xQr4h*w)>S(<`!+>$F%bG4zjR+D8-z>?<$Ez<>2QnyNBzO|u` zp+!J`VX;`We&eKu!@dzQ?}JMY|b9LZR%3u5A$<~UNd6P z_9`EJz1Eknj)%~DE+Olv6?dDuo}??7&^IF$ql%)AqPpKEu0#6 zWP)8bODL;iXUozWW9qs3MPij}gr=%?uQ>4}B!`(E&RKdjq*(mxWG4)_3d*Dagoxgr zf{rRPL|O^OC%c_yJ3ODk1E?XaW>F}<*vsUd#op>u341-yMaP|aH6t^@!|xSKD`m>OM^HWFp?B%m2eoUT*)F@ zQSsCa-a%()XAepLG+~)UdT_#S!Vv)I+Gl#j{UJ2Z z!JFu}L;PkVw&(Q>DG)8@F)1n1c{n?X81pGl~JlG*ut5Br4|Zxh4%*g64Z@c$Y!yy$w(@7wUW&NmKxuO$%-wGG z0=}-~)9Na5@^e;*BbLmMH_I2a(?bBe4>g2E`NDF2h^n9C;~jL}9fUfOPW?(a#0tN> z=7Q<5^*ul8Bn{>Y1e7}Xc_D9jrSkf=Sd;;ydc9S`;vHNDBGTnq?-uh>x?GdR2S4`S zF>u#wCP9wdb&IF~1q7t?oW;rv_E@H8OnP?azPz4T6@p5m?J({`N0B%|8;Tg z-wpFCSqo$9+8OhnQLh;pLbEZ~KMq}eU|Tb8zl!WY0dRn_2pglqu+8tTElv+;ZU zW)bT-?lkedjj5@ra4Mqt9eeZ|oG1NRukb)Hpn|7w{jqBJCyDI;VgI}V=6}alXXYM8 VvrlZbaRH_{P%u0spvga$`X4Y#gW3Q9 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-hover.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c536495f907f5e1c9327596d76dd3bb346b236 GIT binary patch literal 2547 zcmeHJYgE$N7DsbREj69envB$|nP_U6l_ofvp!QH8r0WYE8`DWe8B82eY2jF?8Qvy( zD417Nd|b6j$p<3WYg+k$OJ-$=EuTmP=tGNDl*?zZh-@)|f=*8nEdR(SiP;CZV+)1Ttz24)DWdGL=$j z>VeCaHzt3B-!zFXaeZl*Zd+4fJea@N=CwY-*y($wwvH#k>nB^=m_EVYKfQaLE?>PE1cSQd^NAK@GI?P!&3XqrkGNGcitke* zJhJ$>@y@WAFNTwGhgeJ|(}lcyx4BrY?qA~bopY{o-xaN_Z0s#IY(gMA%yY9hFYUV3 zOIlCnj1;&X%Kn>=UAwmo8QvMQ&Qn{D&}frs`vl9RZvzd~{a%>+pO%^OvQH~n|7iY5 zzsmL^-B||yFx^X7-rya3bV2w`tyK2a6YE_bK{5C1vxTj=<`<{T1b5D`gdK#g>kVL% zH%l`&`3}`A>ZXh?HJ4mOhS%rijXAF=6kplc2CZCnjr(D|uXd5tQ)vV_?+K~t)zd*whI*R4#Q&>J2-e}oY*6a%7ThpgAy^Gne>~Hq| zuH~W^T_ar98q~+OM+lHB_@)0pn*S8eKz7GD`Z;U@^Mbp?yXgk zlakcS{IoFYfd3|J-*cf*)W?;_=`vB-#j&fFn;kWr?|f1zb>CHs~P!eQzlVQ3FzSJ&D^y% zQ^byi*ZL4l5VCG)N!Bv*Frx8oKFR$eXGEhDn>Ax^pDQK3#<$5<(W0_#JHrha1NYuJ zMn@~7HEp388F4<~K=xQr4h*w)>S(<`!+>$F%bG4zjR+D8-z>?<$Ez<>2QnyNBzO|u` zp+!J`VX;`We&eKu!@dzQ?}JMY|b9LZR%3u5A$<~UNd6P z_9`EJz1Eknj)%~DE+Olv6?dDuo}??7&^IF$ql%)AqPpKEu0#6 zWP)8bODL;iXUozWW9qs3MPij}gr=%?uQ>4}B!`(E&RKdjq*(mxWG4)_3d*Dagoxgr zf{rRPL|O^OC%c_yJ3ODk1E?XaW>F}<*vsUd#op>u341-yMaP|aH6t^@!|xSKD`m>OM^HWFp?B%m2eoUT*)F@ zQSsCa-a%()XAepLG+~)UdT_#S!Vv)I+Gl#j{UJ2Z z!JFu}L;PkVw&(Q>DG)8@F)1n1c{n?X81pGl~JlG*ut5Br4|Zxh4%*g64Z@c$Y!yy$w(@7wUW&NmKxuO$%-wGG z0=}-~)9Na5@^e;*BbLmMH_I2a(?bBe4>g2E`NDF2h^n9C;~jL}9fUfOPW?(a#0tN> z=7Q<5^*ul8Bn{>Y1e7}Xc_D9jrSkf=Sd;;ydc9S`;vHNDBGTnq?-uh>x?GdR2S4`S zF>u#wCP9wdb&IF~1q7t?oW;rv_E@H8OnP?azPz4T6@p5m?J({`N0B%|8;Tg z-wpFCSqo$9+8OhnQLh;pLbEZ~KMq}eU|Tb8zl!WY0dRn_2pglqu+8tTElv+;ZU zW)bT-?lkedjj5@ra4Mqt9eeZ|oG1NRukb)Hpn|7w{jqBJCyDI;VgI}V=6}alXXYM8 VvrlZbaRH_{P%u0spvga$`X4Y#gW3Q9 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-normal.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-disabled-normal.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c536495f907f5e1c9327596d76dd3bb346b236 GIT binary patch literal 2547 zcmeHJYgE$N7DsbREj69envB$|nP_U6l_ofvp!QH8r0WYE8`DWe8B82eY2jF?8Qvy( zD417Nd|b6j$p<3WYg+k$OJ-$=EuTmP=tGNDl*?zZh-@)|f=*8nEdR(SiP;CZV+)1Ttz24)DWdGL=$j z>VeCaHzt3B-!zFXaeZl*Zd+4fJea@N=CwY-*y($wwvH#k>nB^=m_EVYKfQaLE?>PE1cSQd^NAK@GI?P!&3XqrkGNGcitke* zJhJ$>@y@WAFNTwGhgeJ|(}lcyx4BrY?qA~bopY{o-xaN_Z0s#IY(gMA%yY9hFYUV3 zOIlCnj1;&X%Kn>=UAwmo8QvMQ&Qn{D&}frs`vl9RZvzd~{a%>+pO%^OvQH~n|7iY5 zzsmL^-B||yFx^X7-rya3bV2w`tyK2a6YE_bK{5C1vxTj=<`<{T1b5D`gdK#g>kVL% zH%l`&`3}`A>ZXh?HJ4mOhS%rijXAF=6kplc2CZCnjr(D|uXd5tQ)vV_?+K~t)zd*whI*R4#Q&>J2-e}oY*6a%7ThpgAy^Gne>~Hq| zuH~W^T_ar98q~+OM+lHB_@)0pn*S8eKz7GD`Z;U@^Mbp?yXgk zlakcS{IoFYfd3|J-*cf*)W?;_=`vB-#j&fFn;kWr?|f1zb>CHs~P!eQzlVQ3FzSJ&D^y% zQ^byi*ZL4l5VCG)N!Bv*Frx8oKFR$eXGEhDn>Ax^pDQK3#<$5<(W0_#JHrha1NYuJ zMn@~7HEp388F4<~K=xQr4h*w)>S(<`!+>$F%bG4zjR+D8-z>?<$Ez<>2QnyNBzO|u` zp+!J`VX;`We&eKu!@dzQ?}JMY|b9LZR%3u5A$<~UNd6P z_9`EJz1Eknj)%~DE+Olv6?dDuo}??7&^IF$ql%)AqPpKEu0#6 zWP)8bODL;iXUozWW9qs3MPij}gr=%?uQ>4}B!`(E&RKdjq*(mxWG4)_3d*Dagoxgr zf{rRPL|O^OC%c_yJ3ODk1E?XaW>F}<*vsUd#op>u341-yMaP|aH6t^@!|xSKD`m>OM^HWFp?B%m2eoUT*)F@ zQSsCa-a%()XAepLG+~)UdT_#S!Vv)I+Gl#j{UJ2Z z!JFu}L;PkVw&(Q>DG)8@F)1n1c{n?X81pGl~JlG*ut5Br4|Zxh4%*g64Z@c$Y!yy$w(@7wUW&NmKxuO$%-wGG z0=}-~)9Na5@^e;*BbLmMH_I2a(?bBe4>g2E`NDF2h^n9C;~jL}9fUfOPW?(a#0tN> z=7Q<5^*ul8Bn{>Y1e7}Xc_D9jrSkf=Sd;;ydc9S`;vHNDBGTnq?-uh>x?GdR2S4`S zF>u#wCP9wdb&IF~1q7t?oW;rv_E@H8OnP?azPz4T6@p5m?J({`N0B%|8;Tg z-wpFCSqo$9+8OhnQLh;pLbEZ~KMq}eU|Tb8zl!WY0dRn_2pglqu+8tTElv+;ZU zW)bT-?lkedjj5@ra4Mqt9eeZ|oG1NRukb)Hpn|7w{jqBJCyDI;VgI}V=6}alXXYM8 VvrlZbaRH_{P%u0spvga$`X4Y#gW3Q9 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-focus.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-focus.png new file mode 100644 index 0000000000000000000000000000000000000000..d7bdb87df4e094a60d5b589eacee6dd8bc7c9edd GIT binary patch literal 6601 zcmb_hWmuI>w|;OF(y5Z7fTSR(beE)b>!uND$xUy%TT-Nv4nfjQ2uKSe0-|)k^p?)e z8Q=F@*LVJWKhAf~pB*!6*0biGweGoRo=6Qf1!4kP0tkYLl@#T)AP7qb{6=5L1)nA_ z-=2amELSZB8K`QQejS2nf|cZ?bv)m0&v+SVTesn%ov?|c?W34^u5+r&%bQlc>@G7X z)+*QAnEqDgfKzXKi)-Rtv`^*3NS>ueUvL!JDcKy8D^oY%7l{9s|;|PKFdM*=+ zAp2ZFkp(|6q@`bJ{@g43NJ(v2_%w@h?@)ZLWi3`Fi3MLy&ay_&<(8D(*mGWu$Ovq+ zTncjhPN{oL6d{4iaxB+jDG`cfxSZsPcZhVDn53yo1H;Ap2rL%T_IGmy?+@Ch ztsbi|h#M{Sly$hINk23ttPdsFUA&9HAG&$$FxV~Skk^T-OF@Oah(2#vG0$z#_|CW; zBA`alJowV%SA%nBjC9sAPq1YtFbooHGG8g#aY_5ORpDJG8srOK`KPDjro>MC_1oD5 zl(X-+SBbWn5Hu{zxVD6=W6FVy6#n6YPuyVfn9N}%toz>6j0%+gc*T0tiQE|g6Qvy{ zMgQJCG^JeD40=h*!kIsU?Y?m}SkAS~{B0UA@ zEo5m~>hC$~nk_B(mJkdic)e?y^~w)!A^#Hu$!63i4<3Q4gg&9$d#`8G)4Xw%!uN-a zSj`Od?LArhly8t{ga;~nEMz=zO-O~06A#^bf*FR21NFz;Nn*R2TWggx=G1oZ;^7wuc-A(SqTt~3pWhjEX3yUdf6~HIEZ=dmfA_l0uokWBVD?2N!G zzHW=@vqP)th|$V|6x~hc?*DVg%ezBWpqE2Kd(y1*2IOEFhbI0S? zDW}_pAZ(&n_&%;Z{azbAnH5zL7pSaPzqkAGR$kcQL2bW${*8ibd=f*tAx?g2qQ5{Z_gM0; zh&Mq1v^?ZOahqttXzdj&7c)_=cxE;ft!2p#0FOMYnzjoXGFnsP7h)&)v!Irm02fhR zelQV=Ur(bH)rfSGLW|sOhorS4>|_5Yjp7$eb|%-L3hg;6KA?tOjn~=iOmnrObCC-w zSGTYuSNpa2|p}31o8X5($h2kR{>PDxVW6a%ZZ}wrK-a? zp6->OkQ9L-43-k|ozdXe%|2`61Ff6!!ErKd*)o`{i8XLjjVq#_~sXbe$F!qVAMiIlD z4zpvf$>lyz6kv=(?tzC!gE{K6rd%l@=DA5^-6`XqtAq4eHdqqM&DO?Z{+Tb4zp%BVF$wgE`N2mL|FqqPO{mmVZ}iVX)OlMgAjg7 z0aCjrk0F63rSp}!1QR@W7w4F@28CN4ovLrl*W?n?Ia zaHIN6=^-hG20%_^dZJ9adeSsnYSX+;i4de!d|Y4d3@fn$%K#sdWVDTImPIiESpMEJ zWc_OiIkdfLrY)QZ!Z?0XHfZ!$6E#e*y$w3n-RXN9hG z#>Z^I>wTd83V}#N-H#S_%e{Hy#==s(WXF$Zjf=CbJ}zmpa!(6&IDb#OYNJQDe!iS* zYn@(soY955fq~)iA{;xrQcGB*wIBkej#Ruv<^)LTuC(S_8qM^~Ok#@{Wqv`yN@Zmv z{a*gqS`ISsmdV@5s3?M$SK=D%xlmVfpBcNxc~)hs?e*N27W&`ci!4->qgv|u6T9j) zw6(vZ&n`|k*u+SmjQNh)&|^uBh7nT>?%2=}KFpED*?6atMz+6P^2=IPJAbugNAUa; z#_z9h1>tX3(!29WPJcKlUdt60GEJx8SJ-fBID6KXcO<&YPG1yiq@xqkhXuQ0OG+~f`K!Y(_)*sXGC4r)xvxfj;lqG#3M;^M+WYf))N zYfgEVRg@()k~|Vp&9(h~!J!$QTXI=7*N!w;su)ta;Xz+y@qRCL z6KZ6M2jf#>UQUQ?#THCB5EJ{gJKIZw{+sl0C4&?BwE-)?a*7N7jRgJ?d`5R^e z{3f`=dn8O;*9y*r2jKw)UW>==y<3JK(EY_Z1Mn!lxsf*FwyKi-4}1in*D8%@FrsG@ znNInxYr`d_r5zjNb_q3z2mY6b`ie=Gdm{FgHQTsb9~^}rADzAtWgM@z!nhm0>vs4E6N!fkEaLy$jW%9(PpSZ(a@b_YAjRGG_aq z*%VAU#1)Ob+*q^QnZu&#mGysAXFE=yfH_sSS5xbm{$UJ*zPu5pv{uXMXuCYmtQ+Rg zE;2o>eJ4^0lbR{W)vs1SU+jOiaFn@5LN8RZ|FJxiPDWNXv*B+2-u}Mx6~-_4*fHv) zNvP%W=$Qysi4G_E%?VO7vrAs90n5+b-AhJ}Rl_dd7nf>Yev@HOQO;Vw+v;uBzt~Mp zefkvaHawJ;$xczBwBYm5O?a0Z=BO)TCOr;|^w-@sSZG(*eyRG~nURnHh#0-wQq_CMLJk%cCi$Z;#linJsR6(0Ct?3tuO|R35co{j7c0 zaV%M`wSc%9XVfn4u_@+;H>g@OJZp5Ya}(`}qY1VeOzr&nlSWurI3hYH>^=JWK|FoH z`lA=~%l+EuqobZypJTUFLc+~(z^PKDI*WaY%;~(&Oy0-q(F^hMpW+yhI1mw|1pR9^ zb&8KOw5eNH9|atyBT7o74ch%-VI8XeV2 zPEMYm?~qOB{cT7^MfC~9Z>Lu+V9*P4ADvsYy5PEwWov6&ca@P}Q9+c(W8&ZBK+5uA zB2S02#=P4Fl2TJ6!3dc#kuXZcBqdQyw|IT<5M?z-TgWDuXyksd*P9S#VM9io?%y)C zeJ-Y!EfzX3puD`YvM|&*+Zh^t3k#xTQzdJgVLC#>zs4}e5B2vq`Cp1CE35pTLCh_I zX#}z;y>fAp*?LsNI)3lt6KzQol`9g(*uYY=kl)!s$3P0#Q)5hN z@sm6_$^#1cEZJ&3;tdM`ae=JH&6Q}0j@f#U>r%7f*t@|WSyEP3hG-id9rZ3ozV{dR zC@PvbH+u2}7rMj3@_GJw**m$NtK?+KrNwSW;-Z}PS6IznUQobDTkLU0{fk&jIwBpy zx8goGBO{SOVG224!<>^Md2N1{NC!g@VrROeRJ%B4xDk1UwY?-APhxBSZla)ceK<>0 z$YU#g#C`5$1s8G`-T!X=|pdVFm%C;R8V%L^YR8$xr z-dK5r1at{~D#f4Kd^0$wsM1+}ajoTdPv&)eeCha|nT5s0pm>QhGK-wsKjt4gOnrnw zoLpSAaHN-)u$Z{`!ncOX1aJ9Kdj&7Ar75!*KrTelaXlk<;};s+{jjmHX6AQx9LLXh z7|gCjWnv4X139I@NMrAHtHO6XA?4*)gh98}F|CeSoRb#b0jrn?ER|tC6=-AyfY2b@Fy(Q$oh)qC%i3Q4Q zOy^lODvo&zsZf&W#;1Yvta*=Nd3pJ<$eiH%Iy(;!E_C0h>HVyuG*Hy(`y1s@z+l>g zrIScX-2LQn8gZrX$~Er}4u~AmN(ARTyXNEApjXb$9g}<(ZegSQX!MA2v!qW0CQyj> zBlE!M_RadM%6@WN7C4bk$Ic8YJk8i22jrj4tG2Q-&Xy0hH=tbP73Sou{HnVEhL`U! z)qp-gOS!o{_Sl-lLL!l4V`KB%-6|V!bu+WOVD+(}2Vz%ZLBYY~w6sz6yY1m53?dOT zP2R~VDQ4Ruhq+Tg`gX^)U*KqJY63|cUL1~RZf^b_$PfEpb>z<4#kOf&930Y`-=0FB zwtjvf1I*9E!vprn=tOm~z;^q&iFx+lsg8{$mrhUPG?>>H%zX)O@FE)q5(eS9xpxZJ z-FNh@tjxZo*9f`&mHSQY@?SBDf0n9G0{Ue!_;9m6xPjgb%yPyaS4JEF!*#79=NYq6ogcIb{k83W6a0YU6GY z^k*QIe$RKn=tVu~^+~=73lCe_$#oagk35x;99`vXl=P6a7P>Y-$|c(pq#emJ|ju9N>lAqX3XN`o^+$PEpNxNoo^lvrKUZ*oFzn-j#l z?Z???k=N!sBsKTJxkW$~%hX~NH=IEGQ^&O%P*1E6t;)>@RenV_`40^u>5aDa4JeBS zQ@Q0;Rbygs_+w=m_I|kkHFCFQZ-ZV(Pp^#arJ!twHkKTTl;1?v@bS$66iQU$jF(0> zoFt`^M@8s4p{~UVdSSACmyue;GQvAZM)N$U#hpCShU(Wg^>Tr0()(3EqebjN7LYhi<6UcnI}3T=9Q~!ut{$m`uJGE(^CkS*qaI@Z!$P* z@<)UB2DNx3K7HzPmQMfAC!hbr%ZGoTPydSX6lovTlR-@O;x2eM11ZU?$yLdi2K^WC CoJtb_ literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-hover.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..d7bdb87df4e094a60d5b589eacee6dd8bc7c9edd GIT binary patch literal 6601 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 CoJtb_ literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-normal.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-off-normal.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfd9a79e630507a80ec96d90fefabfba308d319 GIT binary patch literal 2596 zcmeHJ`B&0w8mF73$drrc7l+ci@( zBvdpcuM6T@mO7fdSH)a7Vo^|t7z!%Fd}rp&Ir9fhzs)c2_BrQyKkxHC&*yovy%BCo zhcyp_Kp-U#cV{0EXde<-uPYn`#=y{uZD87W*T>BX)HtTi0f7!JdpJ8H6DoL1c6WS3 zH1DsN+mQ`XA0Vkd{i!=cw9~uAWmC{0d;_?58`yPvj^TzoSg#5*e)R!+s|ouj#nv57GR$u={0bYHo=G7DdH=q z=;~?ZR;5+sk%xxVR@+l|6TB`V1}?+K2E+_Tfan16WF4|T!B{44GH9ZpWxZG$1&v!B zJQ(FlftrF`UA)Q2+65i)A_h7qp&iT1rmZQuj@l#JiqTXJT;-nKdtO}EXAyClmECn$MB=NHP1h0H{!s$WXETv)z6ZO7pT zMXm&HA3ne3S z{AbbbB;XLI1~rOtFSP?_S&JB0K5xkh&ZMazUAdXJn+2g#!NeAd0{BWdn@k=$d#OAp z;a*bj%ZVH<8k_a;UFk(xPslCX9{ber>EK7LN0F}V(uH`|79Oh<0ZaKDloA&tdwLNi ztY+c@qnO#rrjQpg;)&N{);d9nr!nj4eLOo8$6n=r-As>YMVXCNo>TKJDl+M9nh5U~ z`G;iY`{AXQ;0!n?sheaI%@vk!KUbmNO!~M%vYvBmhQ!$lX0~(pU!lx>5lnwQJHG8} z8^3L`G)kwZKXG+7vB=9}oU>5zKOLyanB|LB*%dQ&r>dU$)YtO1CZ^bEXb~Njt4~j@8q@5DOL!cL1scH{aagbW8?34DcF3?U@7C(<@N8 z8_oK_5p(3(n|LX!L5*0rR8>wuooaXABq!WdAdA^W2zU3MlvN^K(r~y>?XqlTP*g5_R*T zF%d0)k3^jFS{S4$r)-^p4eQrEehZIZ)3BrVLC;u zBt%gL_z-ZC8XWq`naC=*p!*-$DT(dB=jNXb4=>it)7f8jJ`H|ct_1dwl}BZ1$(?xc ztPt@++)6BX#(yJM0R%;9V`(84up@G(9yLPx{i%NmeR@U# zOwQpKpdwa^cG{AFFM_AyV<$ft>nW$4&R2tadV4f8I9+4!#9LDz(<4@cgGrRWUKJqHEgYcGmppFk7eSwuIiR}bTRUnK z{iPeJiEN~c0qT0R7e3N@4BvaI{`pTxC=U=qf=jvbSEhBWL8vKX2{SMv6uxRh(6p?h zMz31wFB@kJ*FaiOg3z?}jxb`AfrGg~=SulK38R1zva2@=(?vZ10a-U+3}l_WgEbIr z!yox=!s^Kd?q++;b|;~3xjVkMT1C(!4oXZ+q;nnD*LGr=>GhevacT0RdfgxRzqr+5 z;1s`xB!#f$TAAVu!0WHAi8cIc5l7~9*5O4GsB6IimU4=_nFKJI#kDq@VSq*F^ZJg30shgO7g9m zV18v;s1@2wFvp8qT_J80$4U^kN#zyVWl+`b7~_8{+h zTjlNfxI7m?u9rryM_y<$Is}x@x$jy=zf*PozuE8C`TUn}hp_t&PCrHtXlpD0Z6C

xN26qNA~mY|kl literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-focus.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-focus.png new file mode 100644 index 0000000000000000000000000000000000000000..cacfaea0a5925cbc9071700e2f24da4dedecff0d GIT binary patch literal 7039 zcmb_hby!qiw?0TpgOoG_NJuFl?GS@>51=BA(h`!=lG32Gv~-D-49y@RNDZOX5F_2) z+~e=w``r8Iz0ddkGc(URd+)W^yWV&0wdcIo)>I-Pq$dObfJ8+ZrV9XAaPapo0Ur2i zYV+v~{K9&pt0WIp4l=F*0E2`IOb+h#X=~Q|1^j3Ze|LyLax=#kVv)1>6Bj3|htma# zcvZOUnq5|sl=G@S^`lypT6$7ia{ANRWFV;xn4f%zOYdS-u`yh zcL$db2Do5 z5~K>_Aiz$FP$tLYrAS~UhC?87bj2{(J0b1&5jf^KloYo+|NjFcs>X2RMLJXbg4L2H z3j~nt?!>QSqRQ~pjPX@esy1M51%PC3q%N+7X>;Cl2N4amvV+Bv0PHT0=Yc&%E@k&$58vU{F zU+YJ^UkJ48#a`c$#AkETftI0-FCOE&x6$Mr&rE*1w#Nc;++mDUZY;OZ5#rnzGxqMS zU3EPf(hckR08RAjyQKW4&MMKWgSWzXyjTD!ts(2us^TZa(@;IyGUrBw=6d2LEc zv*H!sV9LbR^N4*dW`)_RP_az37=$MG1Nxm4th{gKyP;kDw`1`iwdYr^YJq}p!}0SB zdw|cRn;}wp3SF-W`Y5rJq)o=RMTa*{EK$;O?Adbjz1E-L6yChd+3`v>T^b(+O#*#Gu#4?p=^Ea$eM!Z zABJjs8YG@4kJRndgz`s8Gwl4~QlSPJ(H&gKk1DQLbx0kdsHK;A3eFSA(u^0UrKfGTVtmnt$|YShXsaUzrGqXXm9~ z0_b%irnBKxl_ZZo)5#I#M_?D#N};Qlv8@oo7cR|$oiwAmIJKnVZ&+9%>~So%L!HAr zl8RGa)oxJm-&^b+-lyu2HcRr`uA`gpVs53V)`*o=w2B1*?3FR{Kur|O^b14d=q0^t zko_c?m&wS#X)x02`}2rdo1Oo_;R8A@&N1$`-!wZSGkdR@XSb&&8zcbhh853aei6r{ zLSlj*P)Hh&YdoE)0D{&XY8>J;`^jcZCS5T`w`5wAeX00QO}hM*?-z4jGW7_1^rFsj zf315jFSp{;4opKVpW1J7R%HowJQOJo_uE%MU$9;_Zj8Od=pnAm=zA#+ty^>rwZz zL(k7xE#C@)z6GtAK*}ipKF6kH53as>k5h(vaq*a8QjJjC=&n>2t9VCPz4e&E`3a);C-MqZG3w1fv@}oP%g>?& zbO#CaWCKp%+s!ac7Qcckg7A#_6lUmZN(^@`ovC?A;|DXPqu%-`B&xj17()9*Q9(aX zu5)ThdDdepPmMZ3csD-#lN}841EX^f*%S`(G|5w&$ZX~z!yimyKo7O%-EsLsM|@?Mc3YJ$yW%OzUb@b<1=oy+Q~RghBXu zT!&KYHGh(|kbrEV+sXQoI@iB=R~M36HQoFOq63nHYPkZ1Nv$_1G6K^H?k#l$`r;Rp z-txetqX|O-HwYP_zDhyg1%^49HXmGM9%*?V1-t)5NveY8z&&H~2?rr|(x*O}C! zI#Wv2`Q=7RGXr)KhfZOIg13eY$kPyy50FH#CUThDWJ78pgTA{78ArnI`YiB+Bj-RWS3Gc@_2VyYdf54Z>>+<;V-yeDXl+}WcMJ?7 zq^-hz5LBRW;ZdDS1RnJ5S=8O=%oz$&&0$HkGB@DwfVPqBEP1W|3O;P{#ND8r7PxurPY&yWmn{k zue4%xja}uph5QR2Se<^lZ!%&_q{%x$2+T(60>$vM;h=EgNn&wcVcO(p-VrkxA~IK1 z9!$5n*2}Cqaknfe-{_)zyp(e6ZDjOyVfb|^B}vu~>H9j07!?qu`0{tUR*a%DPV_7k zt7FzM2|MIxx+tFu;aHPey5PWG1JI3fH$}hD&&-t7iQp&UXBU4ppjf-tOg_9%UrN~ zr9iFnr)HDYeZMqM_$9>i#90wm4<0g&q2NyVx2v6Qhw(Jtsn_nSu%iA5aa_53>3cM# zQ50oY))l5A#TBq1CQS2o7esR2`1KV~OdsF@jd8UpL$;;>jBv(+ve*G*9z^ZPM=Jt?A(=Pp9|1>~{2E$?{O|tleunkz@h~JaAtZ`6TJCin#SYy8I%=EsiHy#%z+BbW5#T}g z_5MHRSD^WB_E5TAo z;sEPfinGc;W(a7OO!-eUIJzj2Z{&gwvw+cE(35l8&Cq_93+EQv(7+4OZ zR&P@j#)ytlQZhzwZVpl0z02dSh%uMu)xLlKenRGl;Mpe6rOUH}Z*FVQ;>yZo1mBJ& zfllV2o3x&%S#e+HySXSF930kWOC^|ROm}gUlKDWY4+R|^xBIhBFIY};a`NI<1G=Nf zs3EVu-eBD|qB!)UDkrm-nIvD`;lr!rB5M#?SMXxw*Nnq1Bz=b=sa= zQ{%g;9YUP@B7~uPsc$ALhdBAaGk+x-+x#SWC`k3y?&%#JqPzaTB_t#gC(Oxy~u(q?w`{6Qx3mOc{aNE^%V9aH?)t@U$66#5%dIhv&yskg?vh&dUPfu2vrhKEE z?h^xVL^H(y-n)`ra9T-;xTzbdDF(yJA^z?A0l#TI)k@SL8<){}cAcfUbBwP( z^DF7Y_;K5*I{WZH{mBr|o5z=4=lI3@tw>B?faBifwsNKWhh`z|t>K!Lt*0mFk|q6L z;vZV#4bo;JS4U1nBz_uu&W1Mav@)=3zrDk6elY;tnxJFVeDtenc~gbZH5&4m(wx+(8Z$EKzUjjYgsGR7~?3%7_Fg=E(s zMk8PzwjSv%J|`9@Su(}tXs z=)RfW2BWmzOF{q=2YY)Rg&Iy4px91ZYT@gy!v$(qHK?)iaq~gO4gL*qHiVTG0CIFo z9I{MR|9cnwa4ERH{=)ir84yUyBx$C1ey@*=&Ckzo1cV|yc?98ZzhoctWXVQFfZbyH zJ5WZNWRpWg5OUJUftfTA64|7RjiHV-{9rP4r^9 z6N#+0S&+91XeHu0&=t^ zxM{)#6p!1zX!D=7XgOBZQ0X`rf?89)Q!Sv}+w-GfLDQm&v=mfTc_Rn2#r&bdqSR5e zg70)oM4lN`Wyw^#^-&UQs&;OMuh894V0Sq*1<72@y>NCGIzL>CNh=X{S;=HqZ&g!Q zhgn!a^78X`mkTu#$JZk1TkaYalm7a)r*V0)QH8Zy#aLz3Kx2#$2{7+XueR)-FVGjv zbKjT{cUilPy`jw0Qe!&r$Li}y!BPGvV zuB_DXROWz(*Jo&cqt}RS=_JCNBlMM!<&((0nwR}48GM!?>G-E&T`YSn&h}sK9vvx~ zo3rWaT0QE8%YrSM9z-6WZohqRDRZD5flxP7~0+Q~8Os|G_xaz325+Vu}1 z(C&%$3%5nFwC5^>Yd?GT9z5JPryE#46wSmXCQ_cBpD!k*m_ACo0h#|z$MmMhXO;vM zIm1nD$dmjIE$hL{YDY1*M}i6^aEtGev;Ytq8hW~c;SqP92Y7jTozM3Fgl(n1>re=j zH`cZIBnZ9X7)6O$cDxHsO-PKi?1@z<8_)apjc(}i38TNbA3Y%Sa^EV-T@tYsyX|9t zPcuD4V{Ps9Pl~Cw&a?MbZP$2lGRNXzP`46I#3U9OPDW(3{T(fEYuHndsD2?ColM@c<322UHv2t{J?%@q zqa(kbP3B-}0$p*ZLtn3~hk_a*U{LXvqUG(e!$@<(EDbKeEpUBSh%#>Vy-Q6^eeRw2 zx~4{V<$Y`{9zaD+ecO1u&VDkw%FoX?L|{7Uq7|%Wz`Ugrt(4*TnsQ86*`>V9!9dOG zco{9ieTxtZg*G2eyozpe@~t_*#l^h^)K0CxDyk?gl~-0Kco+PRvC>ck=>gXlZDX3? zp04fK#aIzDNa6&XqqZU<5hOuDL7FW)CIS~G0`7lFD66lp?{zrR6Q9(0=lc3OA~v>r zYSKhOC7(!W!baqLn)T{AIb%@JIg3F7gGaNNL-<0EQ`AL~ddE9lqT$vn{=9w!PvfRf z@w+f`-nYUsdDcRIf`(Engpn#{{}PuzIz$a}(+2t;x4c+C z^dN?F^@3eZ{nm8Mj+Fbl8)}V=adEm} ze6Bhh=1}<{u9ctIfWs_;dWlQD-DjsIj$J7(?=!{_ZfKa_TKRIeev>W5PcTKYg$a9H z#h}uc0@MqC`tiZ0!^fl~EPzJvxmBILwz9L(vdkV1Fh7tcEbe+(+;@`xB%kZ9#v5&&GRyI3dx%SMgX-f{**0@#KCe(1i@(S9JX@ePX{SocoP&TQBX=(khRo;NgMPKn z?i*-T7(^A(^4WZ4S)8bt7V!23pn&ZeTi>>~M|REE=aOArU9A1(Z`ydFEMR3qUSD0jo+?2nIMP<{ z7|VfN7RD?6ur=F6R@Jr_=0cv7@jEdgC>Wm%A}Wfjq7qEOJVzm!Ny^E|2^K%rxtn?H z7YMhKzO%_nqj3AlO7od-)dXZ@;b2TFzkhq3%$~qr>()#(*V9}a?gucH2I4{yxb2 zp`YE!6W$!HkL!UOzSktnB< z*#RP17zK}@sR|=84o*%iLR>1qtyx?VLjfKYIm2Qf!$_DSS66LH)V`+4b0J{}unB!K zCqr0QS9jhrgerl3Eea+j4e6EO!DA%LADGLyFSk?AD`qO5`QW%I|tIZ(giXmvdIws#gIB;1= zA^M-|B*c!KoIG$hmT9Cwjh2Ih!)!Q5O2~O$wxpl3JO37V=~w*<#c)AfY5z^{d;ZVN e_}2zrLJ6D&$nI7f^@4BI02M_|Sf#w#yZ-={Avgg5 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-hover.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..cacfaea0a5925cbc9071700e2f24da4dedecff0d GIT binary patch literal 7039 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 literal 0 HcmV?d00001 diff --git a/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-normal.png b/test/screenshots/ci/golden/d2l-navigation-button/d2l-navigation-button-dropdown-icon-on-normal.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa8647747a461b2790f6b7499c014e25ca400eb GIT binary patch literal 3023 zcmeHJ`9GW48rK1B)wI74k#W$jlya0l`a|loZ%!z}?wq){|AC$Rp6tKx zyfw2b^{X!Q)s|y?LY-2e>-I@ni%)7wN)Uv|YnCk3|Mts|B<_l5vi%?Z^SQg`s_@Ow z!W=f1r$FE2Z)}bg+T&0i<#*#Ih(%pVF5l{#nhYx0AbQDMi^Kg8*0~QT^To58gn+JL zQ|&=8-`%f2N2xz0MW7Z`Li?RtPy2iU;gwrZa6d#x$Jm2>vCL#=0$pW#NX)!8Kl&1c z!D5eH;rI-2J9oCb77-bI6#h1pw6L{>s7YMA;O=K;7@(O+*5MS*K#YW+HTDHspAvG* z$A;BU<0X>~ovZI+B_}bsmDb(m9mlQ7|J(w(LBpMOv}-f3WUafAg8d}pi=duNq#fg3 z(TJ=C9}X`*C0xg1u_aV0$f?XzT{7`7sZvtbHHz9iVZvb!O+P5g z45nq{XU6Z!z&D?mAKM>3Grp}{s;zm|xjVbraM0YQtn@j>zk}~t)i}fba&&820yQ%m zSfU0&3~4Z`c|#6$Q2NzK(dcA@r7n*OgP{%L)0 zsBA9EVTAndigHN)1>D&ioB2@o!O5wJ4nCjy`mss-TYwxlo?ZJOP0V~1P{o*lWR};| zc{cY)Xs!`_3=OeuMz2>yh&lkL(u(R=0H%|DQxh^fRvT@?&ZhSEnT3T^;F#hB1tTjL z7}=wa1CNLRclJ!_aW|_cVl872GP5!@k-kkI-+E|kOEB!JnITD{t~h7S(cRBOtH4sL z6b`wZ6B`}PEaoUMnnDxPT0+6Ri60Y}mm}h%&=!kax|X7%)>RAT1m?BLbt^HoGE1^` zIO7**zx_4{<~FapD|~8l=awH0&m}Lfj6u`nkuL=pC=NX}`N}*3iosxbJVK<$O@9t& z9lV?zDDKe)J*Caq9=W7lS)HO*3J?FXO-Mon1OzNk*Xz`W-ads;1M;)II{$S>C`>zD z;mX=7+!u@22o%Ta(yApl3~SZQzXx%z=8{1o?bLwqEM!kTcFmX=0dam(c5sSOr$! z6T1s7Bwtc9s^~G=R2BEPu5)Ak@=~?6oh#dM^mvM zNRT`|+%%IOsg2m`9o}5+S2OmgDX&(W)~Rgl9SF%dZ2x3$6Jt>3#-qGi&ScH!NRlJR zk!tSpOi58R_U!>b;Cxjh$Pvo~w2&l2-)jFH=}|LK;ya>lje`U!MAJeI`Cj@<7WbSk zJHyBZ%J+`7a93w34*^#E)Y8(zYdZ|eiBH^#&!e6(Gn;x*)T9U-D)~Bs6cw*mzkOTP ze82~#Y1y|TUv;o|I80ORI^e$6fD}d*=WgHuxGOnx_3)c|3#nB%{_QUrit=rvd^`&g z{P`y=eKbDqVPzrJ(+t&$zV+auJ2DL;mcZ$!Eq`3iEG}+RpEbH}3{NaOv>Wyzn}#N( z=gG~+W9xD;Sd5w#R-G852=ivd`z(TBWjf_^Yp?J-xTxsp zvaypgg(oVb81sZ;35^G*edng|FEt=WQT2&Q>;q6;O7?wbuUrun=LFz2XDcGqO+#eQ z@3qk_^sT@89awNfXjEv%johZvbDv$OsY!;5(Fdt64{X(B!Ge<@HINqiV?w$9ns?u{ zv1yi~2{4-n$}u!JW$a{Uhhlf1V}9gB(L+Qk#}l7rKSy5^)YjIbxwrklPP^Wjeowh1 zBKtU-x&Wc8^0+#b_Y4prgP?Z|LS2jQ>)lIVA5CKS!U}Nn6!g3n{;*0{s@J_5L^PE>v z4fge}8Q=l6MLr{iV(0Fcvm9~e=Pp%t{;{4>ZXG?E$4<6NZNtWN z0X6hQmMp2@0?wNN$p>PYQKs#BSXG6xVpJ)%=R#dQ3eBjjwLp$V7&FE%!Rza{$r&i|;R{2!%n+Zy2@ X*ZSe&)qJ2smvX%5YFBIf>%G4KBt($Z literal 0 HcmV?d00001