UNPKG

@aurodesignsystem/auro-nav

Version:
147 lines (112 loc) 8.26 kB
<!-- The README.md file is a compiled document. No edits should be made directly to this file. README.md is created by running `npm run build:docs`. This file is generated based on a template fetched from `https://raw.githubusercontent.com/AlaskaAirlines/auro-templates/main/templates/default/README.md` and copied to `./componentDocs/README.md` each time the docs are compiled. The following sections are editable by making changes to the following files: | SECTION | DESCRIPTION | FILE LOCATION | |------------------------|---------------------------------------------------|-------------------------------------| | Description | Description of the component | `./docs/partials/description.md` | | Use Cases | Examples for when to use this component | `./docs/partials/useCases.md` | | Additional Information | For use to add any component specific information | `./docs/partials/readmeAddlInfo.md` | | Component Example Code | HTML sample code of the components use | `./apiExamples/basic.html` | --> # Nav <!-- AURO-GENERATED-CONTENT:START (FILE:src=./docs/partials/description.md) --> <!-- The below content is automatically added from ./docs/partials/description.md --> `<auro-nav>` is a [HTML custom element](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) for the purpose of showing users a secondary navigation aid that helps them understand the relation between the location of their current page and higher level pages. <!-- AURO-GENERATED-CONTENT:END --> <!-- AURO-GENERATED-CONTENT:START (FILE:src=./docs/partials/readmeAddlInfo.md) --> <!-- The below content is automatically added from ./docs/partials/readmeAddlInfo.md --> <!-- AURO-GENERATED-CONTENT This file is to be used for any additional content that should be included in the README.md which is specific to this component. --> <!-- AURO-GENERATED-CONTENT:END --> ## Use Cases <!-- AURO-GENERATED-CONTENT:START (FILE:src=./docs/partials/useCases.md) --> <!-- The below content is automatically added from ./docs/partials/useCases.md --> The `<auro-nav>` element acts as a container for a series of links representing a level of depth in the site content. The `<auro-nav>` element should only be used for multi-page projects that have 3 to 5 levels of page depth. <!-- AURO-GENERATED-CONTENT:END --> ## Install <!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/auro-templates/main/templates/default/partials/usage/componentInstall.md) --> [![Build Status](https://img.shields.io/github/actions/workflow/status/AlaskaAirlines/auro-nav/release.yml?style=for-the-badge)](https://github.com/AlaskaAirlines/auro-nav/actions/workflows/release.yml) [![See it on NPM!](https://img.shields.io/npm/v/@aurodesignsystem/auro-nav?style=for-the-badge&color=orange)](https://www.npmjs.com/package/@aurodesignsystem/auro-nav) [![License](https://img.shields.io/npm/l/@aurodesignsystem/auro-nav?color=blue&style=for-the-badge)](https://www.apache.org/licenses/LICENSE-2.0) ![ESM supported](https://img.shields.io/badge/ESM-compatible-FFE900?style=for-the-badge) ```shell $ npm i @aurodesignsystem/auro-nav ``` <!-- AURO-GENERATED-CONTENT:END --> ### Define Dependency in Project <!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/auro-templates/main/templates/default/partials/usage/componentImportDescription.md) --> Defining the dependency within each project that is using the `<auro-nav>` component. <!-- AURO-GENERATED-CONTENT:END --> <!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/auro-templates/main/templates/default/partials/usage/componentImport.md) --> ```js import "@aurodesignsystem/auro-nav"; ``` <!-- AURO-GENERATED-CONTENT:END --> ### Use CDN <!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/auro-templates/main/templates/default/partials/usage/bundleInstallDescription.md) --> In cases where the project is not able to process JS assets, there are pre-processed assets available for use. Legacy browsers such as IE11 are no longer supported. ```html <script type="module" src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-nav@latest/+esm"></script> ``` <!-- AURO-GENERATED-CONTENT:END --> ## Basic Example <!-- AURO-GENERATED-CONTENT:START (CODE:src=./apiExamples/basic.html) --> <!-- The below code snippet is automatically added from ./apiExamples/basic.html --> ```html <auro-nav> <auro-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Home</auro-breadcrumb> <auro-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 2</auro-breadcrumb> <auro-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 3</auro-breadcrumb> <auro-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 4</auro-breadcrumb> <auro-breadcrumb>Current</auro-breadcrumb> </auro-nav> ``` <!-- AURO-GENERATED-CONTENT:END --> ## Custom Component Registration for Version Management There are two key parts to every Auro component: the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes">class</a> and the custom element definition. The class defines the component’s behavior, while the custom element registers it under a specific name so it can be used in HTML. When you install the component as described on the `Install` page, the class is imported automatically, and the component is registered globally for you. However, if you need to load multiple versions of the same component on a single page (for example, when two projects depend on different versions), you can manually register the class under a custom element name to avoid conflicts. You can do this by importing only the component class and using the `register(name)` method with a unique name: <!-- AURO-GENERATED-CONTENT:START (FILE:src=./docs/partials/customRegistration.md) --> <!-- The below content is automatically added from ./docs/partials/customRegistration.md --> ```js // Import the class only import { AuroNav, AuroBreadcrumb } from '@aurodesignsystem/auro-nav/class'; // Register with a custom name if desired AuroNav.register('custom-nav'); AuroBreadcrumb.register('custom-breadcrumb'); ``` This will create a new custom element `<custom-nav>` and `<custom-breadcrumb>` that behaves exactly like `<auro-nav>` and `<auro-breadcrumb>`, allowing both to coexist on the same page without interfering with each other. <!-- AURO-GENERATED-CONTENT:END --> <div class="exampleWrapper exampleWrapper--flex"> <!-- AURO-GENERATED-CONTENT:START (FILE:src=./apiExamples/custom.html) --> <!-- The below content is automatically added from ./apiExamples/custom.html --> <custom-nav> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Home</custom-breadcrumb> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 2</custom-breadcrumb> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 3</custom-breadcrumb> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 4</custom-breadcrumb> <custom-breadcrumb>Current</custom-breadcrumb> </custom-nav> <!-- AURO-GENERATED-CONTENT:END --> </div> <auro-accordion alignRight> <span slot="trigger">See code</span> <!-- AURO-GENERATED-CONTENT:START (CODE:src=./apiExamples/custom.html) --> <!-- The below code snippet is automatically added from ./apiExamples/custom.html --> ```html <custom-nav> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Home</custom-breadcrumb> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 2</custom-breadcrumb> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 3</custom-breadcrumb> <custom-breadcrumb href="http://auro.alaskaair.com/components/auro/nav">Level 4</custom-breadcrumb> <custom-breadcrumb>Current</custom-breadcrumb> </custom-nav> ``` <!-- AURO-GENERATED-CONTENT:END --> </auro-accordion>