Skip to content

feat(navigation, navigation-logo, navigation-user): Add navigation, navigation-logo & navigation-user components. #6873

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

Merged
merged 84 commits into from
May 22, 2023
Merged
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
8bdfbc3
feat(nav,nav-logo,nav-user): Add nav, nav-logo & nav-user components.
anveshmekala Apr 27, 2023
b5906c1
add more 2e2 tests
anveshmekala Apr 27, 2023
c2b64e0
rename prop in nav and add e2e test
anveshmekala Apr 27, 2023
ad24c69
add demo-dom-swapper wrapper in demo files
anveshmekala Apr 27, 2023
d91619b
remove default decorator options
anveshmekala Apr 27, 2023
991691c
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala Apr 27, 2023
bf16349
update readme files
anveshmekala Apr 27, 2023
199f634
Update stories
macandcheese Apr 28, 2023
95d13b9
Merge branch 'anveshmekala/6531-feat-navigation-component' of https:/…
anveshmekala Apr 28, 2023
ffeb67e
feedback changes
anveshmekala Apr 28, 2023
db19d11
rename menuAction prop and fix e2e tests
anveshmekala Apr 29, 2023
b2f3254
remove async for common tests
anveshmekala May 1, 2023
a97cb56
test errors
anveshmekala May 1, 2023
cc8224c
restore stencil config
anveshmekala May 1, 2023
80966ae
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 1, 2023
40793f4
update stories
anveshmekala May 1, 2023
cf105fb
clean up
anveshmekala May 1, 2023
7a0769f
doc related changes
anveshmekala May 2, 2023
2fecbe5
doc changes
anveshmekala May 2, 2023
25573e1
more feedback changes
anveshmekala May 2, 2023
675dd86
doc changes
anveshmekala May 2, 2023
109a141
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 3, 2023
1ec3c32
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 3, 2023
ef32860
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 3, 2023
cef8b07
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 3, 2023
b53d6ca
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 5, 2023
98fc70c
parse label from nav-user to avatar
anveshmekala May 5, 2023
777ee50
update demo
anveshmekala May 5, 2023
ab36471
feat(nav,nav-logo,nav-user): Add nav, nav-logo & nav-user components.
anveshmekala Apr 27, 2023
357fee2
add more 2e2 tests
anveshmekala Apr 27, 2023
245728b
rename prop in nav and add e2e test
anveshmekala Apr 27, 2023
d2d0216
add demo-dom-swapper wrapper in demo files
anveshmekala Apr 27, 2023
4323093
remove default decorator options
anveshmekala Apr 27, 2023
d07aab6
update readme files
anveshmekala Apr 27, 2023
8aed351
Update stories
macandcheese Apr 28, 2023
1f6e312
feedback changes
anveshmekala Apr 28, 2023
98f816f
rename menuAction prop and fix e2e tests
anveshmekala Apr 29, 2023
784d6c8
remove async for common tests
anveshmekala May 1, 2023
230e102
test errors
anveshmekala May 1, 2023
a0d18b1
restore stencil config
anveshmekala May 1, 2023
a1c3700
update stories
anveshmekala May 1, 2023
4ca74e1
clean up
anveshmekala May 1, 2023
31515b1
doc related changes
anveshmekala May 2, 2023
4255077
doc changes
anveshmekala May 2, 2023
52be92c
more feedback changes
anveshmekala May 2, 2023
fbfb464
doc changes
anveshmekala May 2, 2023
1f98e24
parse label from nav-user to avatar
anveshmekala May 5, 2023
9343a9e
update demo
anveshmekala May 5, 2023
13fe1c3
Merge branch 'anveshmekala/6531-feat-navigation-component' of https:/…
anveshmekala May 9, 2023
a731b90
fix screenshot tests
anveshmekala May 9, 2023
6912e84
update common util tests to use describe
anveshmekala May 9, 2023
ad2eb87
refactor css files and remove redundancy
anveshmekala May 9, 2023
27ddef7
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 9, 2023
db51915
fix positioning issue in stories
anveshmekala May 10, 2023
6708a1c
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 10, 2023
8b22471
remove redundant slots in nav stories
anveshmekala May 10, 2023
2f76ede
screenshot feedback changes
anveshmekala May 10, 2023
01ce5d0
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 10, 2023
266da9c
Pr feedback
macandcheese May 12, 2023
856933b
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 12, 2023
af705d6
feedback changes
anveshmekala May 15, 2023
86180ad
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 15, 2023
e30fa6f
change names
anveshmekala May 15, 2023
82331d0
clean up
anveshmekala May 15, 2023
e424aea
fix tests
anveshmekala May 16, 2023
f453574
fix typo
anveshmekala May 16, 2023
042e763
clean css
anveshmekala May 16, 2023
27550ac
replace anchor with button in navigation-user
anveshmekala May 16, 2023
b563d75
update readme files
anveshmekala May 17, 2023
92830f7
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 17, 2023
2c7dcd5
refactor(navigation): allow nesting secondary and tertiary navigation…
macandcheese May 18, 2023
bfaf90e
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 19, 2023
6095842
remove nav abbreviations from story files
anveshmekala May 19, 2023
bd29cf8
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 19, 2023
7b88d1a
more feedback changes
anveshmekala May 19, 2023
680ab82
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 19, 2023
c920b5f
add rel & target props to logo
anveshmekala May 19, 2023
66da54a
fix logo slot issue in navigation
anveshmekala May 20, 2023
58943da
change text and subText to heading & desctiption in logo
anveshmekala May 22, 2023
58269bc
Merge branch 'master' into anveshmekala/6531-feat-navigation-component
anveshmekala May 22, 2023
11f42a2
remove textEnabled prop from nav-logo
anveshmekala May 22, 2023
07d01cb
fix navigation screenshot test
anveshmekala May 22, 2023
7e462f8
remove tabindex and focus logo only if href is provided
anveshmekala May 22, 2023
9b1ad85
update readme files
anveshmekala May 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions src/components/menu-item/menu-item.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
@apply flex
items-center
relative
box-border
h-full;
box-border;
flex-shrink: 0;
& .container,
& .item-content,
Expand All @@ -16,6 +15,10 @@
@apply w-full;
}

:host(:not([layout="vertical"])) {
@apply h-full;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This change is related to visual regression found while debugging navigation component.


.container,
.item-content {
@apply flex flex-row w-full h-full items-stretch;
Expand Down
10 changes: 5 additions & 5 deletions src/components/menu-item/menu-item.stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export default {

export const simple = (): string => html` <calcite-menu>
<calcite-menu-item
text="${text("text", "My nav item")}"
text="${text("text", "Menu item")}"
src="${text("src", "")}"
href="${text("href", "")}"
rel="${text("rel", "")}"
Expand All @@ -26,7 +26,7 @@ export const simple = (): string => html` <calcite-menu>

export const iconStart = (): string => html` <calcite-menu>
<calcite-menu-item
text="${text("text", "My nav item")}"
text="${text("text", "Menu item")}"
src="${text("src", "")}"
href="${text("href", "")}"
rel="${text("rel", "")}"
Expand All @@ -40,7 +40,7 @@ export const iconStart = (): string => html` <calcite-menu>

export const iconEnd = (): string => html` <calcite-menu>
<calcite-menu-item
text="${text("text", "My nav item")}"
text="${text("text", "Menu item")}"
src="${text("src", "")}"
href="${text("href", "")}"
rel="${text("rel", "")}"
Expand All @@ -54,7 +54,7 @@ export const iconEnd = (): string => html` <calcite-menu>

export const iconsBoth = (): string => html` <calcite-menu>
<calcite-menu-item
text="${text("text", "My nav item")}"
text="${text("text", "Menu item")}"
src="${text("src", "")}"
href="${text("href", "")}"
rel="${text("rel", "")}"
Expand All @@ -69,7 +69,7 @@ export const iconsBoth = (): string => html` <calcite-menu>

export const darkModeRTL_TestOnly = (): string =>
html`<calcite-menu-item
text="My nav item"
text="Menu item"
active
dir="rtl"
class="calcite-mode-dark"
Expand Down
2 changes: 1 addition & 1 deletion src/components/menu-item/readme.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# calcite-nav-menu-item
# calcite-menu-item

<!-- Auto Generated Below -->

Expand Down
42 changes: 21 additions & 21 deletions src/components/menu/menu.stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,51 +14,51 @@ export default {
export const simple = (): string => html` <calcite-menu
layout="${select("layout", ["horizontal", "vertical"], "horizontal")}"
>
<calcite-menu-item text="Example nav item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example nav item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example nav item 3" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example item 3" text-enabled></calcite-menu-item>
</calcite-menu>`;

export const withNesting = (): string => html`<calcite-panel>
<calcite-menu layout="${select("layout", ["horizontal", "vertical"], "horizontal")}">
<calcite-menu-item text="Example nav item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example nav item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example nav item 3" text-enabled>
<calcite-menu-item slot="submenu-item" text="Example subnav item 1" text-enabled> </calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example subnav item 2" text-enabled>
<calcite-menu-item slot="submenu-item" text="Example subnav item 1" text-enabled></calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example subnav item 2" text-enabled></calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example subnav item 3" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example item 3" text-enabled>
<calcite-menu-item slot="submenu-item" text="Example submenu item 1" text-enabled> </calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example submenu item 2" text-enabled>
<calcite-menu-item slot="submenu-item" text="Example submenu item 1" text-enabled></calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example submenu item 2" text-enabled></calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example submenu item 3" text-enabled></calcite-menu-item>
</calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example subnav item 3" text-enabled> </calcite-menu-item>
<calcite-menu-item slot="submenu-item" text="Example submenu item 3" text-enabled> </calcite-menu-item>
</calcite-menu-item>
<calcite-menu-item text="Example nav item 4" text-enabled></calcite-menu-item> </calcite-menu
<calcite-menu-item text="Example item 4" text-enabled></calcite-menu-item> </calcite-menu
></calcite-panel>`;

export const WithSubmenuOpen_TestOnly = (): string => html`<calcite-menu>
<calcite-menu-item text="My nav item" href="#mynav" open>
<calcite-menu-item text="Item" href="#item" open>
<calcite-menu-item text="item1" slot="submenu-item" active> </calcite-menu-item>
</calcite-menu-item>
</calcite-menu>`;

export const WithSubmenuOpenInVerticalLayout_TestOnly = (): string => html` <calcite-menu layout="vertical">
<calcite-menu-item text="My nav item" href="#mynav" open>
<calcite-menu-item text="Item" href="#item" open>
<calcite-menu-item text="item1" slot="submenu-item" active> </calcite-menu-item>
</calcite-menu-item>
</calcite-menu>`;

export const darkModeRTL_TestOnly = (): string => html`<calcite-menu dir="rtl" class="calcite-mode-dark">
<calcite-menu-item text="Example nav item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example nav item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example nav item 3" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example item 3" text-enabled></calcite-menu-item>
</calcite-menu>`;

export const verticalLyoutInDarkModeRTL_TestOnly = (): string => html`<calcite-menu
layout="vertical"
dir="rtl"
class="calcite-mode-dark"
>
<calcite-menu-item text="Example nav item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example nav item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example nav item 3" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 1" text-enabled></calcite-menu-item>
<calcite-menu-item text="Example item 2" text-enabled active></calcite-menu-item>
<calcite-menu-item text="Example item 3" text-enabled></calcite-menu-item>
</calcite-menu>`;
2 changes: 1 addition & 1 deletion src/components/menu/readme.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# calcite-nav-menu
# calcite-menu

<!-- Auto Generated Below -->

Expand Down
74 changes: 74 additions & 0 deletions src/components/navigation-logo/navgation-logo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { Component, Element, h, Host, Prop, VNode } from "@stencil/core";
import { CSS } from "./resources";

@Component({
tag: "calcite-navigation-logo",
styleUrl: "navigation-logo.scss",
shadow: {
delegatesFocus: true
}
})
export class CalciteNavigationLogo {
//--------------------------------------------------------------------------
//
// Element
//
//--------------------------------------------------------------------------
@Element() el: HTMLCalciteNavigationLogoElement;

//--------------------------------------------------------------------------
//
// Public Properties
//
//--------------------------------------------------------------------------
/** When true, the component is highlighted. */
@Prop({ reflect: true }) active: boolean;

/** Specifies the URL destination of the component, which can be set as an absolute or relative path.*/
@Prop({ reflect: true }) href: string;

/** Describes the appearance or function of the `thumbnail`. If no label is provided, context will not be provided to assistive technologies. */
@Prop() label: string;

/** Specifies the subtext to display, such as an organization or application description. */
@Prop() subtext: string;
Copy link
Member

Choose a reason for hiding this comment

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

Should this maybe be named description to be consistent with other props?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we can use description here considering we change the text attribute to something like name or label.

cc @jcfranco

Copy link
Contributor Author

Choose a reason for hiding this comment

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

changed to heading and description. Wondering if we should drop textEnabled prop and render heading & description if provided by the user.


/** Specifies the text to display, such as a product name.*/
@Prop() text: string;

/** When `true`, displays the `text` and `subText` contents. */
@Prop({ reflect: true }) textEnabled = false;

/** Specifies the `src` to an image. */
@Prop() thumbnail: string;

// --------------------------------------------------------------------------
//
// Render Methods
//
// --------------------------------------------------------------------------

render(): VNode {
return (
<Host>
<a href={this.href} tabindex={0}>
Copy link
Member

Choose a reason for hiding this comment

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

No need to set tabindex here as anchor's is 0 by default.

Copy link
Contributor Author

@anveshmekala anveshmekala May 19, 2023

Choose a reason for hiding this comment

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

the tabIndex still needs to be set here because the default 0 is applied only when href has a valid value or an empty string. I tried adding empty string which results in reload of page. Later changed to "#" which affects a11y instructions.

Copy link
Member

Choose a reason for hiding this comment

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

Maybe you could do tabindex={!this.href ? 0 : null}. href should be a required prop though right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

tabindex={!this.href ? 0 : null} this will over-ride the default tabindex value 0 with null when href is defined and href is not a required prop.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should we add rel & target prop here?

Copy link
Member

Choose a reason for hiding this comment

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

If that's the case, it should probably follow calcite-button logic and render either a button or a anchor depending on the existence of href.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i don't think href should be a required attribute for logo. Is there an added advantage of rendering a button when href is undefined besides click event being emitted on Space keydown ?

Copy link
Member

Choose a reason for hiding this comment

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

I think it would just be a11y concerns. An anchor should take you somewhere (either on the page or off) whereas as button should perform some action.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

when href is undefined & text-enabled is false , VoiceOver is reads out the logo as {label} name, image.
when href is undefined & text-enabled is true , VoiceOver focuses the image reading the instruction as {label} name, image and then user can move on to the text which is read out.

The only time VoiceOver recognizes logo as link is when user adds href. When both href and label are undefined , the instructions recognizes logo as clickable element.

Tested with VoicOver and safari 16.4

Copy link
Contributor Author

@anveshmekala anveshmekala May 22, 2023

Choose a reason for hiding this comment

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

synced-up with kitty today.

Updates regarding navigation-logo a11y:

  • tabindex default value is removed because logo shouldn't be in the focus order when href is null value.
  • AT user should be able to hear out image (if label is defined), heading & description context.
  • Screen readers will recognize logo as link if href is defined.

{this.thumbnail && <img alt={this.label || ""} src={this.thumbnail} />}
{(this.text || this.subtext) && this.textEnabled && (
<div class={CSS.textContainer}>
{this.text && (
<span class={CSS.logoText} key={CSS.logoText}>
{this.text}
</span>
)}
{this.subtext && (
<span class={CSS.logoSubtext} key={CSS.logoSubtext}>
{this.subtext}
</span>
)}
</div>
)}
</a>
</Host>
);
}
}
39 changes: 39 additions & 0 deletions src/components/navigation-logo/navigation-logo.e2e.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { accessible, defaults, hidden, reflects, renders } from "../../tests/commonTests";

describe("calcite-navigation-logo", () => {
describe("renders", () => {
renders("calcite-navigation-logo", { display: "inline-flex" });
});

describe("honors hidden attribute", () => {
hidden("calcite-navigation-logo");
});

describe("accessible", () => {
accessible("calcite-navigation-logo");
});

it("reflects", () =>
reflects("calcite-navigation-logo", [
{
propertyName: "active",
value: "true"
},
{
propertyName: "href",
value: "#logo"
},
{
propertyName: "textEnabled",
value: "true"
}
]));

it("defaults", async () =>
defaults("calcite-navigation-logo", [
{
propertyName: "textEnabled",
defaultValue: false
}
]));
});
70 changes: 70 additions & 0 deletions src/components/navigation-logo/navigation-logo.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
:host {
@apply inline-flex outline-none;
& a {
@apply flex
m-0
items-center
justify-center
cursor-pointer
transition-default
focus-base
no-underline;
border-block-end: 2px solid transparent;
}
& img {
@apply flex h-7 m-0;
}
}

a:hover,
a:focus {
@apply bg-foreground-2;
}

a:focus {
@apply focus-inset;
}

a:active {
@apply bg-foreground-3;
}

img {
padding-inline: 1rem;
}

img ~ .text-container {
@apply ps-0;
}

:host(:active) a {
@apply text-color-1;
}

:host([active]) a {
@apply text-color-1;
border-color: var(--calcite-ui-brand);
--calcite-ui-icon-color: var(--calcite-ui-brand);
}

.text-container {
@apply flex
flex-col
truncate
text-start;
padding-inline: 1rem;
}

.logo-text {
@apply text-0
ms-0
truncate
text-color-1
font-medium;
margin-block-start: 2px;
}

.logo-subtext {
@apply text-color-2 truncate;
font-size: var(--calcite-font-size--1);
}
53 changes: 53 additions & 0 deletions src/components/navigation-logo/navigation-logo.stories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import { boolean, storyFilters } from "../../../.storybook/helpers";
import { placeholderImage } from "../../../.storybook/placeholderImage";
import readme from "./readme.md";
import { html } from "../../../support/formatting";
import { text } from "@storybook/addon-knobs";

export default {
title: "Components/Navigation/Navigation Logo",
parameters: {
notes: readme
},
...storyFilters()
};

export const simple = (): string =>
html`<calcite-navigation-logo
subtext="${text("subtext", "City of AcmeCo")}"
text="${text("text", "ArcGIS Online")}"
thumbnail="${placeholderImage({ width: 50, height: 50 })}"
${boolean("active", false)}
${boolean("text-enabled", true)}
/>`;

export const text_TestOnly = (): string => html`<calcite-navigation-logo text="ArcGIS Online" text-enabled />`;

export const subtext_TestOnly = (): string =>
html`<calcite-navigation-logo
subtext="City of AcmeCo"
text-enabled
thumbnail="${placeholderImage({ width: 50, height: 50 })}"
/>`;

export const thumbnail_TestOnly = (): string =>
html`<calcite-navigation-logo thumbnail="${placeholderImage({ width: 50, height: 50 })}" />`;

export const textAndThumbnail_TestOnly = (): string => html`<calcite-navigation-logo
text="ArcGIS Online"
thumbnail="${placeholderImage({ width: 50, height: 50 })}"
text-enabled
/>`;

export const subtextAndThumbnail_TestOnly = (): string => html`<calcite-navigation-logo
subtext="City of AcmeCo"
thumbnail="${placeholderImage({ width: 50, height: 50 })}"
text-enabled
/>`;

export const All_TestOnly = (): string => html`<calcite-navigation-logo
text="ArcGIS Online"
subtext="City of AcmeCo"
thumbnail="${placeholderImage({ width: 50, height: 50 })}"
text-enabled
/>`;
Loading