Skip to content

Commit

Permalink
feat: simplify registration logic #151
Browse files Browse the repository at this point in the history
  • Loading branch information
jason-capsule42 committed Jan 27, 2025
1 parent adac8b6 commit 4df1530
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 10 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ Or, by CDN.
```html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@alaskaairux/[email protected]/dist/tokens/CSSCustomProperties.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@alaskaairux/[email protected]/dist/bundled/essentials.css" />
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/auro-accordion__bundled.js" type="module"></script>
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/auro-accordion-group__bundled.js" type="module"></script>
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/auro-accordion__bundled.js" type="module"></script>
```
<!-- AURO-GENERATED-CONTENT:END -->

Expand Down
1 change: 0 additions & 1 deletion docs/partials/readmeAddlInfo.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,5 @@ Or, by CDN.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@alaskaairux/[email protected]/dist/bundled/essentials.css" />

<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/auro-accordion__bundled.js" type="module"></script>
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/[email protected]/dist/auro-accordion-group__bundled.js" type="module"></script>
```

4 changes: 0 additions & 4 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
import { AuroAccordion } from './src/auro-accordion.js';
import { AuroAccordionGroup } from './src/auro-accordion-group.js';
import { AuroAccordionButton } from './src/auro-accordion-button.js';

AuroAccordion.register();
AuroAccordionGroup.register();
AuroAccordionButton.register();
38 changes: 35 additions & 3 deletions src/auro-accordion.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ import { LitElement, nothing } from "lit";
import { html } from 'lit/static-html.js';
import { classMap } from 'lit/directives/class-map.js';

import AuroLibraryRuntimeUtils from '@aurodesignsystem/auro-library/scripts/utils/runtimeUtils.mjs';
import { AuroAccordionGroup } from './auro-accordion-group.js';
import { AuroAccordionButton } from './auro-accordion-button.js';

import { AuroDependencyVersioning } from '@aurodesignsystem/auro-library/scripts/runtime/dependencyTagVersioning.mjs';

import AuroLibraryRuntimeUtils from '@aurodesignsystem/auro-library/scripts/utils/runtimeUtils.mjs';

import { AuroIcon } from '@aurodesignsystem/auro-icon/src/auro-icon.js';
import iconVersion from './iconVersion.js';

Expand Down Expand Up @@ -56,6 +59,16 @@ export class AuroAccordion extends LitElement {
*/
this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon);

/**
* @private
*/
this.buttonNameHash = this.generateRandomLetters(4); //eslint-disable-line

/**
* @private
*/
this.buttonTag = versioning.generateTag('auro-accordion-button', this.buttonNameHash, AuroAccordionButton);

/**
* @private
*/
Expand Down Expand Up @@ -115,7 +128,9 @@ export class AuroAccordion extends LitElement {
*
*/
static register(name = "auro-accordion") {
const nameGroup = `${name}-group`;
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroAccordion);
AuroAccordionGroup.register(nameGroup);
}

firstUpdated() {
Expand All @@ -138,6 +153,23 @@ export class AuroAccordion extends LitElement {
return html`${svg}`;
}

/**
* Generates a random string of letters.
* @private
* @param {number} length - The number of characters to generate in the string.
* @returns {string} - The generated string.
*/
generateRandomLetters(length) {
let result = '';
const characters = 'abcdefghijklmnopqrstuvwxyz';
const charactersLength = characters.length;
for (let index = 0; index < length; index += 1) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}

return result;
}

/**
* Toggles the visibility of the accordion content.
*/
Expand All @@ -164,7 +196,7 @@ export class AuroAccordion extends LitElement {

return html`
<div class="componentWrapper" part="accordion">
<auro-accordion-button
<${this.buttonTag}
?fluid="${this.emphasis}"
class="${classMap(buttonClasses)}"
id="accordionTrigger"
Expand All @@ -181,7 +213,7 @@ export class AuroAccordion extends LitElement {
</${this.iconTag}>
`}
<slot name="trigger" part="triggerSlot"></slot>
</auro-accordion-button>
</${this.buttonTag}>
<div class="content" id="accordionContent" aria-labelledby="accordionTrigger" inert="${!this.expanded || nothing}" part="content">
<div class="contentWrapper" part="contentWrapper">
<slot></slot>
Expand Down
2 changes: 2 additions & 0 deletions test/auro-accordion.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import { AuroAccordion } from '../src/auro-accordion';

AuroAccordion.register();

// import './../index.js';

describe('auro-accordion', () => {
it('auro-accordion is accessible', async () => {
const el = await defaultFixture();
Expand Down

0 comments on commit 4df1530

Please sign in to comment.