Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

multiple-select-vanilla

ghiscoding27.3kMIT4.3.2TypeScript support: included

This lib allows you to select multiple elements with checkboxes

checkboxes, multiple-select, single-select, select

readme

Multiple-Select-Vanilla

License: MIT TypeScript Playwright Actions Status

NPM downloads npm npm bundle size

Description

Multiple-Select-Vanilla is a fork of the popular Multiple-Select (jQuery) library (thanks to @wenzhixin for this great project). This fork was based on its latest known version at the time, which was v1.5.2, but later updated to v1.7.0. The main difference from the original lib is that we dropped jQuery in favor of native browser code and this mean zero external dependency. As a bonus, a few extra features were also added to the library and you can see them listed below Changes vs Original lib.

This lib allows you to select multiple elements with checkboxes :).

To get started take a look at the Live demo for all available options and methods that the library offers.

Demo

Take a look at the Live demo to see all available options/methods (there's a lot). You can also take a look at the "Used by" section below to see and try live real world Open Source projects taking advantage of this library.

Fully tested with Playwright

The Live demo website is also helpful to run a full suite of E2E tests by using Playwright, all project examples have dedicated Playwright tests.

Installation

Open in Codeflow

npm install multiple-select-vanilla

Basic Usage

1. from a native <select>

<select class="multiple-select full-width" data-test="select1">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
  <option value="4">Fourth</option>
</select>

and then initialize ms-select

import { multipleSelect } from 'multiple-select-vanilla';

const ms = multipleSelect('.multiple-select');
2. or from a data array or object
import { multipleSelect } from 'multiple-select-vanilla';

const ms = multipleSelect('.multiple-select', {
  data: [
    { text: 'First', value: 1 },
    { text: 'Second', value: 2 },
    { text: 'Third', value: 3 },
    { text: 'Fourth', value: 4 },
  ]
});

Changelog

CHANGELOG

LICENSE

MIT License

Changes vs Original lib (multiple-select)

Changes and new options:

  • dropped jQuery requirement and rewrote with browser native code.
  • rewritten in TypeScript to also provide typings support (d.ts)
  • make the lib CSP compliant (see CSP Compliance section below)
  • add E2E tests, with Playwright, for all existing examples (over 80 of them)
  • revamped the UI in v3.x to give it a more Modern Look:
    • improved CSS styling by using SVG icons (CSS/SASS variables are also availables)
    • new Dark Mode
    • replace tabIndex with a more intuitive navigation & highlight by using arrow keys (or mouse hover)
    • show 3 different states on multiple selections (none " ", partial "-" or all "🗸")
  • add extra options:
    • autoAdjustDropHeight will automatically adjust the drop (up/down) height by available space (see demo)
    • autoAdjustDropPosition will find best position (top/bottom) by its available space (see demo)
    • autoAdjustDropWidthByTextSize automatically set the drop width size by reading the widest list option width
    • dataTest will add a data-test attribute on the .ms-parent and .ms-drop divs for easier E2E testing
    • useSelectOptionLabel will use the <option label=""> which can be used to display shorter text of selected options.
      • example: display "1,3" as label instead of "January,March" (see demo)
    • useSelectOptionLabelToHtml similar to useSelectOptionLabel but also renders HTML.
    • renderOptionLabelAsHtml will render selected options as HTML code (see demo)
    • sanitizer can be used to sanitize HTML code and prevent XSS cross-site scripting attacks (see demo).
    • showOkButton adds an "OK" button at the end of the multiple select option list (see demo)
    • showSearchClear show a clear filter button on the search filter input (see demo)
    • diacriticParser custom parser to normalize diacritic symbols when filtering select list (see demo)
    • darkMode to enable our new Dark Mode Theme (see demo)
    • infiniteScroll option (see demo)
    • onFilterClear callback that will be executed when the filter gets cleared (see demo)
    • onClose(reason) callback that will be executed when the dropdown closes (see demo)
    • preFilter provide a Filter predicate to pre-filter data (see demo)
    • preSort provide a Sort Comparer to pre-sort data (see demo)
    • lazyData provide a function callback that will return a Promise with data collection (see demo)

CSP Compliance

The library is now CSP (Content Security Policy) compliant, there are however some exceptions to be aware of. When using any HTML strings as template (when using textTemplate, labelTemplate, renderOptionLabelAsHtml or useSelectOptionLabelToHtml), you will not be fully compliant unless you return TrustedHTML. You can achieve this by using the sanitizer method in combo with an external library like DOMPurify (recommended) to return TrustedHTML as shown below and with that in place you will be CSP compliant.

import DOMPurify from 'dompurify';
import { multipleSelect, MultipleSelectInstance } from 'multiple-select-vanilla';

const ms1 = multipleSelect('#select1', {
   name: 'my-select',
   single: false,
   useSelectOptionLabelToHtml: true,
   sanitizer: (html) => DOMPurify.sanitize(html, { RETURN_TRUSTED_TYPE: true }), // return TrustedHTML Type
   data: [
      { text: '<i class="fa fa-star"></i> January', value: 1 },
      { text: '<i class="fa fa-star"></i> February', value: 2 },
   ]
});

with this code in place, we can now use the following CSP meta tag (which is what we use in the demo index.html)

<meta http-equiv="Content-Security-Policy" content="default-src 'self';style-src 'self' data:; img-src * 'self' data: https:; require-trusted-types-for 'script'; trusted-types dompurify">

[!NOTE] in our demo we are only adding unsafe-inline simply because we are using Vite (which is not CSP compliant in Dev mode), but the library should work nonetheless without unsafe-inline.

Installation / Structure

There are multiple ways to install and use the library, you can see below the folder structure of the distribution files

  1. dist/browser: Standalone build which assigns multipleSelect on the window.multipleSelect object
    • browser standalone means that you can simply load it with <script></script> and then multipleSelect('#mySelect')
    • only ESM build (.js) are provided, you will need to load it with <script type="module">
  2. esm: to use as ESM with import from 'multiple-select-vanilla'
dist/
  browser/
    multiple-select.js              # ESM build, use with: window.multipleSelect
  locales/
    multiple-select-all-locales.js  # all-in-1 locales
    ..
    multiple-select-es-ES.js        # Spanish locale
    multiple-select-fr-FR.js        # French locale
    ...
  styles/                           # CSS and SASS Stylings
    css/
    sass/
  index.d.ts                        # d.ts Type Definitions
  multiple-select.js                # ESM, used by: import from

Used by

This fork was created mostly to drop jQuery, and it is used by a few other Open Source projects of mine that I also maintain:

Contributions

PR

Pull Request are welcome, feel free to contribute.

Development / Contributions

If you wish to contribute to the project, please follow the steps shown below:

Note: this project uses pnpm workspaces, you can install pnpm by following their installation or use NodeJS corepack enable to run any of these pnpm scripts.

  1. clone the lib:
    • git clone https://github.com/ghiscoding/multiple-select-vanilla
  2. install with pnpm from the root:
    • pnpm install OR npx pnpm install
  3. run a full TypeScript build
    • pnpm run build OR npx pnpm run build
  4. run in development mode (lib & demo)
    • pnpm run dev OR npx pnpm run dev

Pull Request Contribution

Before submitting a PR (pull request), please make sure that you followed the steps below for a better chance of a successfull PR:

  1. make sure that you have already executed pnpm install
  2. run the Biome lint npm script (or simply jump to step 4)
    • pnpm run biome:lint:write
  3. run the Biome code formatting npm script (or simply jump to step 4)
    • pnpm run biome:format:write
  4. run a full Build (this will also run Biome lint/format, so you could skip step 2)
    • pnpm run build

Sponsors

         

changelog

Change Log

Visit the Multiple-Select-Vanilla GitHub project or take a look at the Live Demo

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

4.3.2 (2025-06-19)

Bug Fixes

  • event.composePath() throws in Salesforce environment (#390) (fbbc405) - by @ghiscoding

4.3.1 (2025-06-14)

Bug Fixes

  • when closeOnTab w/OK button, it should take 2 Tabs to close (#388) (9742825) - by @ghiscoding

4.3.0 (2025-06-14)

Features

  • add new closeOnTab option (#387) (4a5f7e4) - by @ghiscoding

4.2.2 (2025-06-14)

Bug Fixes

  • add missing blur event and option types (#386) (3a489ed) - by @ghiscoding

4.2.1 (2025-06-14)

Bug Fixes

  • should call onBlur anytime Tab key is pressed (#380) (a4ca1ec) - by @ghiscoding

4.2.0 (2025-05-31)

Features

  • add onChange event whenever a selection changes, fix #372 (#374) (d2b94ed) - by @ghiscoding

Bug Fixes

  • normalize event data & remove null group items (#376) (0771895) - by @ghiscoding

4.1.4 (2025-05-09)

Bug Fixes

  • simplify more code and avoid reusing code (DRY) (#368) (4d3ea4e) - by @ghiscoding

4.1.3 (2025-05-09)

Bug Fixes

  • simplify code and avoid reusing code (DRY) (#367) (47576b8) - by @ghiscoding

4.1.2 (2025-05-05)

Bug Fixes

  • remove unused functions (1e2acb6) - by @ghiscoding
  • replace deepCopy with a simpler function (#365) (483762b) - by @ghiscoding

4.1.1 (2025-05-03)

Bug Fixes

  • couple of issues related to lazy loading (#363) (3948b21) - by @ghiscoding
  • make sure select drop list isn't null when adjusting drop width (#364) (aad8f64) - by @ghiscoding

4.1.0 (2025-05-01)

Features

  • add lazyData to lazy load only after clicking/opening select (#361) (f42ae19) - by @ghiscoding
  • add new preFilter callback option (#356) (926c82c) - by @ghiscoding
  • add new preSort callback option, fixes #355 (#358) (0491b8d) - by @ghiscoding

Bug Fixes

  • remove open drop delay when changing data & add demo (#351) (8a1784f) - by @ghiscoding

Reverts

  • Revert "chore: enable pnpm shellEmulator & remove cross-env (#352)" (#353) (c706f03), closes #352 #353 - by @ghiscoding

4.0.0 (2025-04-12)

⚠ BREAKING CHANGES

  • build as ESM-Only, drop CJS (#348)

Features

  • build as ESM-Only, drop CJS (#348) (1cd1dd4) - by @ghiscoding

Bug Fixes

  • deps: update all non-major dependencies (#349) (781be20) - by @renovate-bot

3.5.0 (2025-03-12)

Features

  • add Indonesian locale (#337) (5216284) - by @ghiscoding

Bug Fixes

  • deps: update all non-major dependencies (#319) (5d69d3c) - by @renovate-bot
  • deps: update all non-major dependencies (#324) (bb38fe7) - by @renovate-bot

3.4.4 (2024-10-26)

Bug Fixes

  • remove ms-choice control border hover color (ac26901f)

3.4.3 (2024-10-26)

Note: Version bump only for package multiple-select-vanilla-root

3.4.2 (2024-10-25)

Bug Fixes

  • add missing div selector in previous CSS class name typo (#310) (1459f35) - by @ghiscoding

3.4.1 (2024-10-24)

Bug Fixes

  • CSS class name typo for caret/close icon (b0e5d4d) - by @ghiscoding

3.4.0 (2024-10-23)

Features

  • switch to SASS @use and remove any @import to fix SASS deprecations (#308) (186d21a) - by @ghiscoding

3.3.7 (2024-10-12)

Bug Fixes

  • remove tsup, replace with esbuild + dts with tsc (#307) (21713a7) - by @ghiscoding

3.3.6 (2024-10-05)

Bug Fixes

  • avoid barrel files, keep only 1 entry file (#304) (64e895b) - by @ghiscoding

3.3.5 (2024-10-04)

Bug Fixes

  • full CJS/ESM hybrid support with tsup (#303) (002e090) - by @ghiscoding

3.3.4 (2024-09-21)

Bug Fixes

  • improve hybrid exports (cc622b1) - by @ghiscoding
  • SASS deprecated lighten and darken methods (#301) (1938720) - by @ghiscoding

3.3.3 (2024-09-03)

Bug Fixes

  • package export not detected as ESM in Vitest (#297) (6803609) - by @ghiscoding

3.3.2 (2024-08-17)

Bug Fixes

  • use setTimeout/setInterval from window object with correct TS type (#294) (95ba819) - by @ghiscoding

3.3.1 (2024-08-17)

Bug Fixes

  • add missing TrustedHTML type (#292) (5411b67) - by @ghiscoding

3.3.0 (2024-08-06)

Features

  • Added German locale (667ceca) - by @bigbozo

3.2.2 (2024-05-23)

Bug Fixes

  • use composedPath instead of target, fixes #278 (#279) (3f473c3) - by @silvester-pari

3.2.1 (2024-05-11)

Bug Fixes

  • only open drop when exists after open delay (#277) (866ee53) - by @ghiscoding

3.2.0 (2024-05-08)

Features

  • add reason param to onClose(reason) (#273) (b3ae32f) - by @ghiscoding

3.1.4 (2024-05-07)

Bug Fixes

  • Escape key should always close drop (#271) (84e317b) - by @ghiscoding

3.1.3 (2024-05-02)

Bug Fixes

  • remove column gap and leave it to be customizable by user (#270) (9db3fd4) - by @ghiscoding

3.1.2 (2024-05-01)

Bug Fixes

  • better flex alignment of label span (55ce09a) - by @ghiscoding

3.1.1 (2024-05-01)

Bug Fixes

  • better flex alignment of label span (48c6fe9) - by @ghiscoding

3.1.0 (2024-03-23)

Features

  • add new event onFilterClear missing (#260) (cb8923c) - by @ghiscoding

Bug Fixes

  • add missing CSS/SASS variables for SVG icons (cc11a8b) - by @ghiscoding
  • select drop should equal same width as select button (#259) (6f854a1) - by @ghiscoding
  • tweak CSS and use same border color for both drop & button (1f774d0) - by @ghiscoding
  • vscroll event mem leak causing unexpected behavior after filtering (#261) (74fed35) - by @ghiscoding

3.0.0 (2024-03-22)

⚠ BREAKING CHANGES

  • remove deprecated options (#251)
  • new Modern Look by using SVG icons (#247)

Features

  • add new labelId option for accessibility (#254) (f66852f) - by @ghiscoding
  • new Modern Look by using SVG icons (#247) (a89059f) - by @ghiscoding
  • remove deprecated options (#251) (a25882f) - by @ghiscoding
  • replace caret & clear icons by SVG icons (#238) (a5bc462) - by @ghiscoding

Bug Fixes

  • add classNameToList() function to remove extra spaces in classes (#244) (a0adf0c) - by @ghiscoding
  • clicking Tab key should focus on OK btn or Shift+Tab to inverse (1b06a99) - by @ghiscoding
  • don't show pointer cursor when hovering disabled element (#248) (15caab9) - by @ghiscoding
  • flip icon vertically when select drop is open (#240) (1d74e26) - by @ghiscoding
  • infinite scroll with arrow navigation should work with short list (#256) (57f8d6a) - by @ghiscoding
  • nav highlight shouldn't follow mouse pos when using nav arrows (#257) (3c4950d) - by @ghiscoding
  • only add icon container element when actually used (#250) (7406bd3) - by @ghiscoding
  • select drop caret icon not flipping vertically when opened (#243) (42c87f7) - by @ghiscoding
  • when using showClear, don't show btn unless having selection (#245) (28ad6b4) - by @ghiscoding

2.2.1 (2024-03-08)

Bug Fixes

  • query DOM element without role for cross-platform compatibility (#237) (1a71fe4) - by @ghiscoding

2.2.0 (2024-03-05)

Features

  • add navigationHighlight to optionally disable built-in feature (#235) (9da0baa) - by @ghiscoding

2.1.0 (2024-02-24)

Features

  • add Dark Mode option (#232) (d0f20e2) - by @ghiscoding

2.0.2 (2024-02-22)

Bug Fixes

  • opening drop should focus on next available option only initially (#229) (a268e80) - by @ghiscoding

2.0.1 (2024-02-22)

Bug Fixes

  • add SASS/CSS variable to remove drop outline (#228) (bf4fa0f) - by @ghiscoding

2.0.0 (2024-02-21)

Refer to the v2.0.0 release for more info about the migration.

⚠ BREAKING CHANGES

  • export Locale as named exports (#219)
  • change TS Types exports location (#218)
  • replace arrow up/down direction tabIndex by highlight, fix #206 (#213)

Features

  • add virtualScroll option that could be disabled (#225) (d9f9fdb) - by @ghiscoding
  • add new option infiniteScroll auto-scroll back to top (#224) (fb74e74) - by @ghiscoding
  • change TS Types exports location (#218) (38d3142) - by @ghiscoding
  • export Locale as named exports (#219) (6eb57ce) - by @ghiscoding
  • replace arrow navigation tabIndex` by arrow navigation highlight, fixes #206 (#213) (50be59c) - by @ghiscoding

Bug Fixes

  • use ariaMultiSelectable only with multiple select (a39c535) - by @ghiscoding

1.2.5 (2024-01-31)

Bug Fixes

  • Virtual Scroll not working on large dataset w/HTML render enabled, fixes #203 (#204) (0f32e65) - by @ghiscoding

1.2.4 (2024-01-30)

Bug Fixes

  • npm: remove some files from npm publish (c5f273e) - by @ghiscoding

1.2.3 (2024-01-30)

Bug Fixes

  • npm: do not npm publish tsconfig.tsbuildinfo (6b3ab02) - by @ghiscoding

1.2.2 (2024-01-30)

Bug Fixes

  • npm: do not npm publish tsconfig.tsbuildinfo (2871d00) - by @ghiscoding

1.2.1 (2024-01-30)

Bug Fixes

  • npm: publish src folder for source maps (#202) (a09d98a) - by @ghiscoding

1.2.0 (2024-01-13)

Features

  • remove previous diacritic unicodes and add diacriticParser (#190) (aaa9d92) - by @ghiscoding

1.1.3 (2023-12-30)

Bug Fixes

  • update repo structure & links + update deps (aadb9d4) - by @ghiscoding

1.1.2 (2023-12-20)

Bug Fixes

  • don't use Boolean() for compatibility (#183) (52c9cc0) - by @ghiscoding

1.1.1 (2023-12-02)

Bug Fixes

  • add aria-expanded on ms-drop element, fixes #178 (#179) (1c2ccee) - by @ghiscoding

1.1.0 (2023-11-26)

Features

  • add tabindex to list item to control up/down arrow direction (#176) (763e13a) - by @ghiscoding

1.0.3 (2023-11-22)

Note: Version bump only for package multiple-select-vanilla-root

1.0.2 (2023-11-22)

Note: Version bump only for package multiple-select-vanilla-root

1.0.2-beta.4 (2023-11-22)

Bug Fixes

  • package main export is using wrong file extension (913f247) - by @ghiscoding

1.0.2-beta.3 (2023-11-22)

Note: Version bump only for package multiple-select-vanilla-root

1.0.2-beta.2 (2023-11-22)

Note: Version bump only for package multiple-select-vanilla-root

1.0.2-beta.1 (2023-11-22)

Note: Version bump only for package multiple-select-vanilla-root

1.0.2-beta.0 (2023-11-22)

Bug Fixes

  • revert to using .js for both CJS/ESM (#173) (fff2484) - by @ghiscoding

1.0.1 (2023-11-22)

Note: Version bump only for package multiple-select-vanilla-root

1.0.0 (2023-11-22)

Refer to the v1.0.0 release for more info about the migration.

⚠ BREAKING CHANGES

  • default .js as ESM, CJS to .cjs & build target ES2021 (#171)

Features

  • default .js as ESM, CJS to .cjs & build target ES2021 (#171) (5e99b03) - by @ghiscoding

0.6.4-beta.1 (2023-11-16)

Note: Version bump only for package multiple-select-vanilla-root

0.6.4-beta.0 (2023-11-16)

Note: Version bump only for package multiple-select-vanilla-root

0.6.3 (2023-11-13)

Bug Fixes

  • @types/trusted-types should be lib dependency (#162) (946de83) - by @ghiscoding

0.6.2 (2023-11-11)

Bug Fixes

  • adjust types & exports for all bundler (#161) (b4ad0ac) - by @ghiscoding

0.6.1 (2023-11-10)

Bug Fixes

  • input checkbox value should always be included even when null (#158) (4d33cff) - by @ghiscoding

0.6.0 (2023-11-10)

Features

  • add cssStyler option to use typed CSSStyleDeclaration props (#148) (8ad2b28) - by @ghiscoding
  • add showSearchClear option to clear search input (#147) (32de6f2) - by @ghiscoding
  • replace all dynamic html strings by pure HTML elements (#144) (adcc33d) - by @ghiscoding
  • VirtualScroll replace all html strings to pure HTML elements (#146) (8731387) - by @ghiscoding

Performance Improvements

  • don't recreate items list twice while filtering (#154) (5e58ceb) - by @ghiscoding
  • use array of html struct instead of plain HTML Element (#153) (6731228) - by @ghiscoding

0.5.0 (2023-10-27)

Bug Fixes

  • updated onFilter event parameter to original search (#140) (02c1d45) - by @ghiscoding

Features

  • added onBeforeClick event (#141) (6b0cdb8) - by @ghiscoding
  • added locale ja-JP (#139) (d473bd9) - by @ghiscoding

0.4.11 (2023-10-25)

Bug Fixes

  • make sure source element exists when calling findParent on it (#136) (0d7c185) - by @ghiscoding

0.4.10 (2023-09-08)

Bug Fixes

  • remove type module to support non-ESM, fixes #123 (#126) (63f2e82) - by @ghiscoding

0.4.9 (2023-08-22)

Bug Fixes

  • previous values should not be reused as selected values (#121) (46fb7cd) - by @ghiscoding

0.4.8 (2023-08-22)

Bug Fixes

  • select option should compare full value not substring, fix #115 (#119) (79ce83d) - by @ghiscoding

0.4.7 (2023-08-22)

Bug Fixes

  • select option should compare full value not substring, fix #115 (#118) (2ec33a7) - by @ghiscoding

0.4.6 (2023-08-22)

Bug Fixes

  • select option should compare full value not substring, fix #115 (#118) (2ec33a7) - by @ghiscoding

0.4.5 (2023-07-17)

Bug Fixes

  • CJS fallbacks should be at the end not at beginning (#103) (febdc9c) - by @ghiscoding

0.4.4 (2023-06-28)

Bug Fixes

  • data collection shouldn't render label as html by default (#86) (50f4652) - by @ghiscoding

0.4.3 (2023-06-28)

Bug Fixes

  • replace some DOM Element method not supported in Salesforce (#84) (2617514) - by @ghiscoding

0.4.2 (2023-06-27)

Bug Fixes

  • add missing repo links to package.json (21c7a9d) - by @ghiscoding

0.4.1 (2023-06-27)

Bug Fixes

  • remove leftover console.log (#83) (e64351c) - by @ghiscoding

0.4.0 (2023-06-25)

Breaking Changes

  • change customFilter signature & add extra options/methods (#80) (ca9f0ce) - by @ghiscoding

    Bug Fixes

  • deps: update dependency @popperjs/core to ^2.11.8 (#70) (ce647a0) - by @renovate-bot

Features

  • add cz-CS and da-DK locales (#80) (c74ce59) - by @ghiscoding

0.3.1 (2023-05-18)

Bug Fixes

  • create DOM element util should spread element props (#62) (97d1d64) - by @ghiscoding

0.3.0 (2023-05-03)

Features

  • add CSS/SASS variables for ul > li vertical alignment (#54) (07ac9ab) - by @ghiscoding

0.2.9 (2023-04-15)

Bug Fixes

  • deps: update all non-major dependencies (#38) (dd0998e) - by @renovate-bot

0.2.8 (2023-03-23)

Bug Fixes

  • calling open() method multiple times should keep drop (re)open (#33) (c36cf45) - by @ghiscoding

0.2.7 (2023-03-11)

Bug Fixes

  • VirtualScroll and drop auto-width should work without timeout delay (d030ecb) - by @ghiscoding

0.2.6 (2023-03-11)

Bug Fixes

  • VirtualScroll and drop auto-width should work without timeout delay (d030ecb) - by @ghiscoding

0.2.5 (2023-03-11)

Bug Fixes

  • single select radio should work with empty label select option (9b5c7ea) - by @ghiscoding

0.2.4 (2023-03-04)

Bug Fixes

  • when data array is null it shouldn't throw (184dffa) - by @

0.2.2 (2023-02-26)

Bug Fixes

0.2.1 (2023-02-25)

Bug Fixes

  • multiple fixes identified after adding it to external project (5e78f68) - by @ghiscoding

0.2.0 (2023-02-22)

Features

  • add sanitizer callback option to sanitize html code (308a5fe) - by @ghiscoding
  • add new useSelectOptionLabel option (145e955) - by @ghiscoding
  • add optional OK button for multiple selection (13ed051) - by @ghiscoding
  • add SASS and CSS variables (93ca2c2) - by @ghiscoding
  • add string pattern options as alternative to override text formats (c72148e) - by @ghiscoding
  • auto-adjust height by available space & width by text content (33df39f) - by @ghiscoding
  • provide demo with Font-Awesome checkbox/radio icons (b6c0bae) - by @ghiscoding
  • separate all locales into separate files for better tree shaking (da064e6) - by @ghiscoding

0.1.0 (2023-01-13)

Bug Fixes

  • calling ms() twice should only create 1 instance, also fix destroy (c397f30) - by @ghiscoding

Features

  • initial commit rewritten & working in pure JS (0b7f69b) - by @ghiscoding