npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@coveops/collapsible-contents

v1.0.2

Published

This package comes with two components:

Downloads

15

Readme

CollapsibleContents

This package comes with two components:

  • CollapsibleContents: A component which makes contents in its child elements collapsible
  • CompactView: A component that acts as a global state toggle

This package also comes with a utility responsible for managing the state when the components are used together.

  • CompactViewStateProvider

Disclaimer: This component was built by the community at large and is not an official Coveo JSUI Component. Use this component at your own risk.

Getting Started

  1. Install the component into your project.
npm i @coveops/collapsible-contents
  1. Use the Component or extend it

Typescript:

import { CollapsibleContents, ICollapsibleContentsOptions } from '@coveops/collapsible-contents';

Javascript

const CollapsibleContents = require('@coveops/collapsible-contents').CollapsibleContents;
  1. You can also expose the component alongside other components being built in your project.
export * from '@coveops/collapsible-contents'
  1. Or for quick testing, you can add the script from unpkg
<script src="https://unpkg.com/@coveops/collapsible-contents@latest/dist/index.min.js"></script>

Disclaimer: Unpkg should be used for testing but not for production.

  1. Include the CSS in the root index.scss
@import '../../node_modules/@coveops/collapsible-contents/dist/css/index.css';

Or for quick testing, you can add the styles from unpkg

 <link rel="stylesheet" href="https://unpkg.com/@coveops/collapsible-contents@latest/dist/css/index.css" />
  1. Include the component in your template as follows:

Place the CollapsibleContents component in your markup:

<div class="CoveoCollapsibleContents"></div>

Options

| Field | Type | Default | Description | | --- | --- | --- | --- | | persistState | boolean | true | Toggles whether the global toggled state should be synchronized with localstorage. | | collapsedMaxHeight | string | 0px | Sets the max height to use when the contents are minimized. To achieve a toggle based on number of lines, you can pass calc(1.25em * 2) where 1.25 is the line-height and 2 is the number of lines that are desired when the component is minimized. | | collapseSymbol | string | svg: arrow up | The symbol to use to indicate the user can collapse the contents. | | expandSymbol | string | svg: arrow down | The symbol to use to indicate the user can expand the contents. | | defaultState | string | minimized | The default state to use when a new user loads the UX for the first time. | | toggleFloat | string | right | The default placement of the toggle. Takes values compatible with the float css property. |

Place the CompactView component in your markup:

<div class="CoveoCompactView"></div>

Options

| Field | Type | Default | Description | | --- | --- | --- | --- | | minimizedByDefault | boolean | true | Allows default behavior to be tweaked to initialize the component. | | expandedCaption | string | Compact View | The caption to use to indicate the user can collapse all CollapsibleContents components. | | minimizedCaption | string | Default View | The caption to use to indicate the user can expand all CollapsibleContents components. | | target | string | .CoveoCollapsibleContents | The target class to search for in the code, ideally unique to the group that uses this toggle. By default, the component will toggle all CollapsibleContents elements on the page - even nested ones. |

See pages/index.html

Extending

Extending the component can be done as follows:

import { CollapsibleContents, ICollapsibleContentsOptions } from "@coveops/collapsible-contents";

export interface IExtendedCollapsibleContentsOptions extends ICollapsibleContentsOptions {}

export class ExtendedCollapsibleContents extends CollapsibleContents {}

Contribute

  1. Clone the project
  2. Copy .env.dist to .env and update the COVEO_ORG_ID and COVEO_TOKEN fields in the .env file to use your Coveo credentials and SERVER_PORT to configure the port of the sandbox - it will use 8080 by default.
  3. Build the code base: npm run build
  4. Serve the sandbox for live development npm run serve