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

feat: adds new form component and monorepo structure #16

Merged
merged 50 commits into from
Nov 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
5806718
feat: initial integration of floatingUI and dropdown POC
jason-capsule42 Sep 30, 2024
2d01cb2
fix: update build commands for recurisve files, disbale linting
Oct 2, 2024
96bbadb
fix: update build commands for recurisve files, disbale linting
Oct 2, 2024
266aeb8
fix: adding component entry files and missing sass files
Oct 2, 2024
314a3d4
fix: renaming auro-input directory for simplicty & convention
Oct 2, 2024
7d4720e
fix: updates rollup config for new bundling, adds missing input depen…
Oct 2, 2024
550c274
fix: adds input example to Demo page
Oct 3, 2024
db5461a
fix: load correct dev paths from package.json
Oct 3, 2024
b844e63
fix: returns bundler & precommit task, updates sweep to remove dist f…
chrisfalaska Oct 30, 2024
f56329b
fix: exclude node_modules from swep command
chrisfalaska Oct 30, 2024
dabec23
fix: add dropdown disconnect lifecycle to manage potential memory leaks
chrisfalaska Oct 30, 2024
774e0f8
fix: do not reassign parameter
chrisfalaska Oct 30, 2024
0e3d5c7
fix: do not reassign parameter
chrisfalaska Oct 30, 2024
087de32
fix: do not reassign parameter
chrisfalaska Oct 30, 2024
3b524b9
fix: merge nested if conditions
chrisfalaska Oct 30, 2024
389d948
fix: simplify state management in dropdown
chrisfalaska Oct 31, 2024
bd9d731
fix: consolidate focus loss handling
chrisfalaska Oct 31, 2024
56993f9
fix: add keydown support to dropdown
chrisfalaska Oct 31, 2024
b1a94fa
chore: cleaning up dropdown comments
chrisfalaska Oct 31, 2024
8c56ee5
fix: add ignore rules to eslint for new folder structure
chrisfalaska Oct 31, 2024
cc315f3
chore: typo in dropdown docs
chrisfalaska Oct 31, 2024
b77a474
fix: add public show/hide api
chrisfalaska Oct 31, 2024
0af048b
feat: add esc key handler
chrisfalaska Oct 31, 2024
4f6097d
fix: update function names to be clearer
chrisfalaska Oct 31, 2024
0eb6dad
chore: cleaning up comments
chrisfalaska Oct 31, 2024
a7abf9a
fix: return missing package.json tasts
chrisfalaska Nov 1, 2024
dfdf336
chore: add line at end of file
chrisfalaska Nov 1, 2024
5bdeb4d
fix: add demo folder placeholder to form component
chrisfalaska Nov 4, 2024
a14388e
fix: skip dropdown tests for now
chrisfalaska Nov 4, 2024
6e007c4
build: sync package-lock.json files
jordanjones243 Nov 4, 2024
e48e1d9
fix: fixing Linting errors
chrisfalaska Nov 4, 2024
f33712e
fix: add form to build task
chrisfalaska Nov 4, 2024
03832a4
perf: update dependent component versions
jordanjones243 Nov 4, 2024
2e244cf
fix: add event dispatch to input test
chrisfalaska Nov 4, 2024
ab67eb7
fix: adding auro-form entry files
chrisfalaska Nov 4, 2024
ead1fe1
chore: remove console log
chrisfalaska Nov 5, 2024
7239054
fix: when bundling, only refer to src dir
chrisfalaska Nov 5, 2024
71e5427
chore: target index.js as entry
chrisfalaska Nov 5, 2024
4279def
fix: rename auro-component-form to avoid naming collision with auro-form
chrisfalaska Nov 5, 2024
7b8cac9
fix: bundle auro-form root component & sub-components
chrisfalaska Nov 5, 2024
cd4c467
chore: clean up comments
chrisfalaska Nov 5, 2024
ede33de
fix: root becomes auro-formkit, form element becomes auro-form
chrisfalaska Nov 5, 2024
2465206
fix: auro-formkit entry file updates
chrisfalaska Nov 5, 2024
b2daacd
fix: return bundler to build task
chrisfalaska Nov 5, 2024
99552f8
fix: correct form path
chrisfalaska Nov 5, 2024
3f26945
build: reposition bundled files
sun-mota Nov 6, 2024
a20d8ff
chore: remove unnecessary chunked filenames
Nov 6, 2024
0679dee
fix: prefix bundles with 'auro' namespace
Nov 6, 2024
f323d5e
chore: comment out entry file imports for now
Nov 6, 2024
35e9afb
fix: update path for api demo page
jordanjones243 Nov 6, 2024
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
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ demo/*.css
demo/*.css.map

## CSS built from Sass process
src/*.css
src/*.css.map
src/**/*.css
src/**/*.css.map
components/**/*.css
components/**/*.css.map

## *-css built from sass-render process
*-css.js
Expand Down
186 changes: 186 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
<!--
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/WC-Generator/master/componentDocs/README.md`
and copied to `./componentDocs/README.md` each time the 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` |
-->

# Form

<!-- AURO-GENERATED-CONTENT:START (FILE:src=./docs/partials/description.md) -->
<!-- The below content is automatically added from ./docs/partials/description.md -->
`<auro-form>` is a [HTML custom element](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) for the purpose of ...

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam convallis in tellus nec pellentesque. Integer bibendum ligula sit amet vehicula gravida. Maecenas accumsan, ligula vitae molestie iaculis, tellus mi laoreet ex [install instructions](https://auro.alaskaair.com/components/auro/button/install), ac malesuada velit dolor vel mi. Cras et rutrum urna. Sed mattis mi eu tortor ullamcorper, egestas bibendum mauris cursus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus viverra eros eget neque commodo vulputate. In tempus eu velit at dictum.

Nulla at augue facilisis `odio lobortis` molestie vitae a nulla.
<!-- 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 -->

## UI development browser support

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/browserSupport.md) -->
For the most up to date information on [UI development browser support](https://auro.alaskaair.com/support/browsersSupport)

<!-- AURO-GENERATED-CONTENT:END -->

## Install

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/usage/componentInstall_esm.md) -->
[![Build Status](https://img.shields.io/github/actions/workflow/status/AlaskaAirlines/auro-form/testPublish.yml?style=for-the-badge)](https://github.com/AlaskaAirlines/auro-form/actions/workflows/testPublish.yml)
[![See it on NPM!](https://img.shields.io/npm/v/@aurodesignsystem/auro-form?style=for-the-badge&color=orange)](https://www.npmjs.com/package/@aurodesignsystem/auro-form)
[![License](https://img.shields.io/npm/l/@aurodesignsystem/auro-form?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-form
```

Installing as a direct, dev or peer dependency is up to the user installing the package. If you are unsure as to what type of dependency you should use, consider reading this [stack overflow](https://stackoverflow.com/questions/18875674/whats-the-difference-between-dependencies-devdependencies-and-peerdependencies) answer.

<!-- AURO-GENERATED-CONTENT:END -->

### Design Token CSS Custom Property dependency

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/development/designTokens.md) -->
The use of any Auro custom element has a dependency on the [Auro Design Tokens](https://auro.alaskaair.com/getting-started/developers/design-tokens).

<!-- AURO-GENERATED-CONTENT:END -->

### Define dependency in project component

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/usage/componentImportDescription.md) -->
Defining the component dependency within each component that is using the `<auro-form>` component.

<!-- AURO-GENERATED-CONTENT:END -->
<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/usage/componentImport.md) -->

```js
import "@aurodesignsystem/auro-form";
```

<!-- AURO-GENERATED-CONTENT:END -->
**Reference component in HTML**
<!-- AURO-GENERATED-CONTENT:START (CODE:src=./apiExamples/basic.html) -->
<!-- The below code snippet is automatically added from ./apiExamples/basic.html -->

```html
<auro-form>Hello World</auro-form>
<auro-input>
<span slot="label">Hello World</span>
</auro-input>
```
<!-- AURO-GENERATED-CONTENT:END -->

## Install bundled assets from CDN

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/usage/bundleInstallDescription.md) -->
In cases where the project is not able to process JS assets, there are pre-processed assets available for use. See -- `auro-form__bundled.js` for modern browsers. Legacy browsers such as IE11 are no longer supported.

**WARNING!** When installing into your application environment, DO NOT use `@latest` for the requested version. Risks include unknown MAJOR version releases and instant adoption of any new features and possible bugs without developer knowledge. The `@latest` wildcard should NEVER be used for production customer-facing applications. You have been warned.

<!-- AURO-GENERATED-CONTENT:END -->

### Bundle example code

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/usage/bundleUseModBrowsers.md) -->

```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/tokens/CSSCustomProperties.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/bundled/essentials.css" />
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/auro-form__bundled.js" type="module"></script>
```

<!-- AURO-GENERATED-CONTENT:END -->

## auro-form 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-form>` element should be used in situations where users may:

* ...
* ...
* ...
<!-- AURO-GENERATED-CONTENT:END -->

## API Code Examples

### Default auro-form

<!-- AURO-GENERATED-CONTENT:START (CODE:src=./apiExamples/basic.html) -->
<!-- The below code snippet is automatically added from ./apiExamples/basic.html -->

```html
<auro-form>Hello World</auro-form>
<auro-input>
<span slot="label">Hello World</span>
</auro-input>
```
<!-- AURO-GENERATED-CONTENT:END -->

## Development

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/development/developmentDescription.md) -->
In order to develop against this project, if you are not part of the core team, you will be required to fork the project prior to submitting a pull request.

Please be sure to review the [contribution guidelines](https://auro.alaskaair.com/contributing) for this project. Please make sure to **pay special attention** to the **conventional commits** section of the document.

<!-- AURO-GENERATED-CONTENT:END -->

### Start development environment

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/development/localhost.md) -->
Once the project has been cloned to your local resource and you have installed all the dependencies you will need to open a shell session to run the **dev server**.

```shell
$ npm run dev
```

Open [localhost:8000](http://localhost:8000/)

If running separate sessions is preferred, please run the following commands in individual terminal shells.

```shell
$ npm run build:watch

$ npm run serve
```

<!-- AURO-GENERATED-CONTENT:END -->

### API generation

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/development/api.md) -->
The custom element API file is generated in the build and committed back to the repo with a version change. If the API doc has changed without a version change, author's are to run `npm run build:api` to generate the doc and commit to version control.

<!-- AURO-GENERATED-CONTENT:END -->

### Testing

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/development/testing.md) -->
Automated tests are required for every Auro component. See `.\test\auro-form.test.js` for the tests for this component. Run `npm test` to run the tests and check code coverage. Tests must pass and meet a certain coverage threshold to commit. See [the testing documentation](https://auro.alaskaair.com/support/tests) for more details.

<!-- AURO-GENERATED-CONTENT:END -->

### Bundled assets

<!-- AURO-GENERATED-CONTENT:START (REMOTE:url=https://raw.githubusercontent.com/AlaskaAirlines/WC-Generator/master/componentDocs/partials/development/bundles.md) -->
Bundled assets are only generated in the remote and not merged back to this repo. To review and/or test a bundled asset locally, run `$ npm run bundler` to generate assets.

<!-- AURO-GENERATED-CONTENT:END -->
1 change: 0 additions & 1 deletion apiExamples/basic.html

This file was deleted.

6 changes: 6 additions & 0 deletions components/dropdown/apiExamples/basic.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<auro-dropdown aria-label="custom label">
Lorem ipsum solar
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
10 changes: 10 additions & 0 deletions components/dropdown/apiExamples/basicButton.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<auro-dropdown aria-label="custom label">
Lorem ipsum solar
<div slot="trigger">
<auro-button
slot="trigger"
fluid>
Dropdown
</auro-button>
</div>
</auro-dropdown>
8 changes: 8 additions & 0 deletions components/dropdown/apiExamples/basicIcon.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<auro-dropdown aria-label="custom label">
Lorem ipsum solar
<div slot="trigger">
<auro-icon
category="interface"
name="arrow-down"></auro-icon>
</div>
</auro-dropdown>
10 changes: 10 additions & 0 deletions components/dropdown/apiExamples/basicInput.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<auro-dropdown aria-label="custom label">
Lorem ipsum solar
<div slot="trigger">
<auro-input
borderless
slot="trigger"
id="inputExampleTrigger">
</auro-input>
</div>
</auro-dropdown>
6 changes: 6 additions & 0 deletions components/dropdown/apiExamples/bordered.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<auro-dropdown aria-label="custom label" bordered>
Lorem ipsum solar
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
6 changes: 6 additions & 0 deletions components/dropdown/apiExamples/chevron.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<auro-dropdown aria-label="custom label" chevron>
Lorem ipsum solar
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
10 changes: 10 additions & 0 deletions components/dropdown/apiExamples/chevronButton.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<auro-dropdown aria-label="custom label" chevron>
Lorem ipsum solar
<div slot="trigger">
<auro-button
slot="trigger"
fluid>
Dropdown
</auro-button>
</div>
</auro-dropdown>
8 changes: 8 additions & 0 deletions components/dropdown/apiExamples/chevronIcon.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<auro-dropdown aria-label="custom label" chevron>
Lorem ipsum solar
<div slot="trigger">
<auro-icon
category="interface"
name="arrow-down"></auro-icon>
</div>
</auro-dropdown>
9 changes: 9 additions & 0 deletions components/dropdown/apiExamples/chevronInput.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<auro-dropdown aria-label="custom label" chevron>
Lorem ipsum solar
<div slot="trigger">
<auro-input
slot="trigger"
id="inputExampleTrigger">
</auro-input>
</div>
</auro-dropdown>
15 changes: 15 additions & 0 deletions components/dropdown/apiExamples/common.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<auro-dropdown id="common" common aria-label="Label content for screen reader">
<div style="padding: var(--ds-size-150);">
Lorem ipsum solar
<br />
<auro-button onclick="document.querySelector('#common').hide()">
Dismiss Dropdown
</auro-button>
</div>
<span slot="helpText">
Help text
</span>
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
17 changes: 17 additions & 0 deletions components/dropdown/apiExamples/commonLabelledby.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<p id="foo">The element is labelled by content external to the element.</p>

<auro-dropdown id="commonAdvanced" aria-labelledby="foo" bordered rounded inset chevron>
<div style="padding: var(--ds-size-150);">
Lorem ipsum solar
<br />
<auro-button onclick="document.querySelector('#commonAdvanced').hide()">
Dismiss Dropdown
</auro-button>
</div>
<span slot="helpText">
Help text
</span>
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
15 changes: 15 additions & 0 deletions components/dropdown/apiExamples/commonMatchWidth.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<auro-dropdown id="common" common matchWidth aria-label="Label content for screen reader">
<div style="padding: var(--ds-size-150);">
Lorem ipsum solar
<br />
<auro-button onclick="document.querySelector('#common').hide()">
Dismiss Dropdown
</auro-button>
</div>
<span slot="helpText">
Help text
</span>
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
18 changes: 18 additions & 0 deletions components/dropdown/apiExamples/commonSlot.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<auro-dropdown id="commonSlot" bordered rounded inset chevron>
<div style="padding: var(--ds-size-150);">
Lorem ipsum solar
<br />
<auro-button onclick="document.querySelector('#commonSlot').hide()">
Dismiss Dropdown
</auro-button>
</div>
<span slot="helpText">
Help text
</span>
<span slot="label">
Element label (default text will be read by screen reader)
</span>
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
15 changes: 15 additions & 0 deletions components/dropdown/apiExamples/custom.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<custom-dropdown id="common" common aria-label="Label content for screen reader">
<div style="padding: var(--ds-size-150);">
Lorem ipsum solar
<br />
<auro-button onclick="document.querySelector('#common').hide()">
Dismiss Dropdown
</auro-button>
</div>
<span slot="helpText">
Help text
</span>
<div slot="trigger">
Trigger
</div>
</custom-dropdown>
18 changes: 18 additions & 0 deletions components/dropdown/apiExamples/customDimensions100.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<div style="width: 100px;" aria-label="custom label">
<auro-dropdown inset bordered rounded chevron>
<div style="width: 100px; max-height: 200px; overflow: scroll;">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</div>
<div slot="trigger">
Trigger
</div>
</auro-dropdown>
</div>
Loading