cally icon indicating copy to clipboard operation
cally copied to clipboard

Small, feature-rich calendar components

<date-picker>

A date picker web component, based on duet date picker, except authored with Lit and using shadow DOM.

This is a work in progress.

Todo:

  • [x] Convert to Lit and use Shadow DOM
  • [x] Add support for formdata event
  • [x] Port test suite to web-test-runner and mocha
  • [x] Extract calendar component
  • [x] RTL support
  • [x] add valueAsDate property
  • [x] add valueAsNumber property
  • [x] add validity property
  • [x] simplify user parsing/formatting. named capture groups for parse? format string?
  • [x] configurable disallowed chars
  • [ ] month component
  • [ ] imperative API?
  • [ ] Perhaps support slotting your own input?
  • [ ] date range component?
  • [ ] date picker readonly
  • [ ] css parts
  • [ ] Decide on project/tag name
  • [ ] track bundle size
  • [ ] configurable short day names? looks like there's a lot of variation and substring(2) might be bad e.g: https://www.ema.europa.eu/en/documents/other/abbreviation-names-days-calendarised-blisters_en.pdf
  • [ ] docs!

Installation

Still under development, not yet available on npm!

Usage

<script type="module" src="date-picker/date-picker.js"></script>

<date-picker></date-picker>

Linting and formatting

To scan the project for linting and formatting errors, run

npm run lint

To automatically fix linting and formatting errors, run

npm run format

Testing with Web Test Runner

To execute a single test run:

npm run test

To run the tests in interactive watch mode run:

npm run test:watch

Tooling configs

For most of the tools, the configuration is in the package.json to reduce the amount of files in your project.

If you customize the configuration a lot, you can consider moving them to individual files.

Local Demo with web-dev-server

npm start

To run a local development server that serves the basic demo located in demo/index.html