@brightspace-ui-labs/accordion

3.2.0 • Public • Published

d2l-labs-accordion

NPM version

Note: this is a "labs" component. While functional, these tasks are prerequisites to promotion to BrightspaceUI "official" status:

Polymer-based widget that displays a list of collapsible components. When collapsible component is clicked - it expands or collapses the associated content.

Installation

npm install @brightspace-ui-labs/accordion

Polymer components:

d2l-labs-accordion - accordion panel.

Attributes:

  • multi - allows multiple collapsibles to be opened at the same time
  • selected - used only if multi is disabled. sets item index to be opened by default
  • selectedValue - used only if multi is set. Sets array of indexes for the items to be opened by default
  • autoClose - expanding any d2l-labs-accordion-collapse child (except those that are disabled) will automatically close other opened children.

d2l-labs-accordion-collapse - accordion component.

Attributes:

  • flex - adjust component to the parent width
  • noIcons - hide the expand/collapse icon
  • opened - container is opened by default. Do not use this attribute when inside the d2l-labs-accordion as the d2l-labs-accordion does not monitor opened state of the items at the start. In this case, use selected or selectedValue d2l-labs-accordion attributes instead.
  • disabled - container cannot be expanded or collapsed
  • disable-default-trigger-focus - disables the default outline added by browsers on trigger focus so custom styles can be added to the component on focus
  • headerBorder - show a border between the header and the summary/content
  • icon-has-padding - adds padding on one side of the icon.
    • When used with 'flex' attribute, the padding will be to the right. (Opposite for RTL)
    • Without 'flex' attribute, the padding will be on the left. (Opposite for RTL)

Slots:

  • header - content to display under the title
  • summary - content that summarizes the data inside the accordion

Example 1:

<d2l-labs-accordion selected="1">
	<d2l-labs-accordion-collapse title="Item 1" flex>
		Text 1
	</d2l-labs-accordion-collapse>
	<d2l-labs-accordion-collapse title="Item 2" flex>
		Item 3
	</d2l-labs-accordion-collapse>
	<d2l-labs-accordion-collapse title="Item 3" flex>
		Text 3
	</d2l-labs-accordion-collapse>
</d2l-labs-accordion>

Example 2:

<d2l-labs-accordion multi selectedValue="[1,2]">
	<d2l-labs-accordion-collapse title="Item 1" flex>
		Text 1
	</d2l-labs-accordion-collapse>
	<d2l-labs-accordion-collapse title="Item 2" flex>
		Item 3
	</d2l-labs-accordion-collapse>
	<d2l-labs-accordion-collapse title="Item 3" flex>
		Text 3
	</d2l-labs-accordion-collapse>
</d2l-labs-accordion>

Example 3:

<d2l-labs-accordion-collapse title="Opened By Default (Flex)" opened flex>
	Text 1
</d2l-labs-accordion-collapse>

Example 4:

<d2l-labs-accordion-collapse title="Opened By Default (Regular)" opened>
	Text 1
</d2l-labs-accordion-collapse>

Example 5:

<d2l-labs-accordion-collapse flex header-border>
	<h2 slot="header">Custom header, summary, border and flex 💪</h2>
	<ul slot="summary" style="list-style-type: none; padding-left: 0px;">
		<li>Availability starts 4/13/2020 and ends 4/23/2020</li>
		<li>One release condition</li>
		<li>Special access</li>
	</ul>
	<p>Stuff inside of the accordion goes here</p>
</d2l-labs-accordion-collapse>

Developing, Testing and Contributing

After cloning the repo, run npm install to install dependencies.

Linting

# eslint
npm run lint

# eslint only
npm run lint:eslint

Testing

# lint & run headless unit tests
npm test

# unit tests only
npm run test:headless

# debug or run a subset of local unit tests
npm run test:headless:watch

Running the demos

To start a @web/dev-server that hosts the demo page and tests:

npm start

Versioning and Releasing

This repo is configured to use semantic-release. Commits prefixed with fix: and feat: will trigger patch and minor releases when merged to main.

To learn how to create major releases and release from maintenance branches, refer to the semantic-release GitHub Action documentation.

Package Sidebar

Install

npm i @brightspace-ui-labs/accordion

Weekly Downloads

485

Version

3.2.0

License

Apache-2.0

Unpacked Size

27.6 kB

Total Files

5

Last publish

Collaborators

  • d2l-travis-deploy
  • dlockhart
  • dave.batiste