Skip to content

Commit

Permalink
Merge branch 'main' of github.com:exadel-inc/esl into epic/esl-carousel
Browse files Browse the repository at this point in the history
# Conflicts:
#	package.json
#	pages/src/localdev.less
#	pages/src/localdev.ts
  • Loading branch information
ala-n committed Sep 12, 2023
2 parents 3e77a60 + e4ea488 commit 6ae13a9
Show file tree
Hide file tree
Showing 138 changed files with 4,568 additions and 16,685 deletions.
4 changes: 3 additions & 1 deletion .eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ extends:
# TS configuration
parser: '@typescript-eslint/parser'
parserOptions:
project: 'tsconfig.json'
project:
- './tsconfig.json'
- './pages/tsconfig.json'
sourceType: module

# Lint additional plugins
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/site-bug-report.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: "\U0001F41B Demo Site Bug"
about: Create a bug found on the ESL demo site
title: "[\U0001F41B in gh-pages]: ..."
title: "[\U0001F41B in site]: ..."
labels: waits triage
assignees: ''

Expand Down
18 changes: 17 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,30 @@
version: 2
updates:

# Maintain dependencies for npm
# Maintain core dependencies for npm
- package-ecosystem: "npm"
directory: "/"
versioning-strategy: increase
open-pull-requests-limit: 10
schedule:
interval: "daily"
reviewers:
- "@exadel-inc/esl-core-maintainers"
assignees:
- "ala-n"
- "abarmina"
groups:
typescript-eslint:
patterns:
- "@typescript-eslint/*"
commit-lint:
patterns:
- "@commitlint/*"
jest:
patterns:
- "jest-*"
- "@types/jest"
semantic-release:
patterns:
- "semantic-release"
- "@semantic-release/*"
6 changes: 4 additions & 2 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@ jobs:
node-version: ${{ env.node-version }}
- name: Install NPM Dependencies
run: npm ci
- name: Build
run: npm run build-pages
- name: Build ESL
run: npm run build
- name: Build Site
run: npm run build -w pages
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,22 @@ jobs:
runs-on: ubuntu-latest

steps:
# Check permissions
- uses: tspascoal/get-user-teams-membership@v2
id: permissions
with:
username: ${{ github.actor }}
team: 'ESL Core Maintainers'
GITHUB_TOKEN: ${{ secrets.PERMISSION_CHECK_TOKEN }}

- if: ${{ steps.permissions.outputs.isTeamMember == 'true' }}
name: Access Check Passed
run: echo ${{ github.actor }} is in 'ESL Core Maintainers' group
- if: ${{ steps.permissions.outputs.isTeamMember == 'false' }}
name: Access Denied
run: exit 1

# Start workflow
- uses: actions/checkout@v3
with:
persist-credentials: false
Expand Down
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
# [4.11.0](https://github.com/exadel-inc/esl/compare/v4.10.0...v4.11.0) (2023-09-01)


### Bug Fixes

* **esl-event-listener:** `ESLResizeObserverTarget.for` handles no target cases silently (warning + null result) ([b28d6af](https://github.com/exadel-inc/esl/commit/b28d6aff7a674fc04d23aaedadc03ace0f8d9cb3)), closes [#1885](https://github.com/exadel-inc/esl/issues/1885)
* **esl-event-listener:** fix support of separate DOM realms for `ESLEventListener` ([905e7a8](https://github.com/exadel-inc/esl/commit/905e7a886b6ab975e32e712ae4f4b1109c42f0de))
* **esl-media:** update `esl-media` refresh handler to use consistent `isElement` check ([d6f8855](https://github.com/exadel-inc/esl/commit/d6f8855428d69323815689335449ce1e17f9568f))
* **esl-scrollbar:** update `esl-scrollbar` to use consistent `isElement` check on refresh and mutation observation ([f817837](https://github.com/exadel-inc/esl/commit/f817837e5ea1b35f8b4f0d2b2000321d2ddcc560))
* **esl-trigger:** update `esl-trigger` to use consistent `isElement` check in `isTargetIgnored` check ([fe41661](https://github.com/exadel-inc/esl/commit/fe4166110dd077ac6759a7b4b509e6b11af058b2))
* **esl-utils:** fix support of separate DOM realms for `getScrollParent` ([eb7ede6](https://github.com/exadel-inc/esl/commit/eb7ede60531c97f91c90e66df00aff1f43794514))
* **esl-utils:** fix support of separate DOM realms for `resolveDomTarget` ([c16e1dd](https://github.com/exadel-inc/esl/commit/c16e1ddfa762f2ad7d64f308857fb5aa1bc93bc8))
* **esl-utils:** fix types and Element check for `isVisible` predicate (support of separate DOM realms) ([7c83e09](https://github.com/exadel-inc/esl/commit/7c83e09e576ca1afb76cbf93698a261b28de9c42))


### Features

* **esl-panel-group:** add readonly `has-opened` marker for `esl-panel-group` ([a565a71](https://github.com/exadel-inc/esl/commit/a565a71ba7d6b89f834b5241b941b6314012ac4a))
* **esl-panel-group:** support for esl-panel-group driven animation to closed state ([0698b1c](https://github.com/exadel-inc/esl/commit/0698b1c4d3942127adcd4c2674ce4807dbf9f963))
* **esl-utils:** `isPlainObject` and `isElement` type guard utilities ([86f0bfb](https://github.com/exadel-inc/esl/commit/86f0bfb957d2dfbea4143b9b5af6d3e59a1def32))

# [4.10.0](https://github.com/exadel-inc/esl/compare/v4.9.4...v4.10.0) (2023-08-10)


### Bug Fixes

* **esl-footnotes:** shape to support TSX is missing in module ([fd8cd07](https://github.com/exadel-inc/esl/commit/fd8cd076e07d2ea745da9cd59488f3f3001dbcae))
* **esl-togglable:** open attribute change behavior ([826b27b](https://github.com/exadel-inc/esl/commit/826b27b9e4a48e0e42da96c0da7a8db1563473e1))
* **esl-toggleable:** fix activator when close-on inner trigger click handled ([#1852](https://github.com/exadel-inc/esl/issues/1852)) ([f450d8b](https://github.com/exadel-inc/esl/commit/f450d8b68395785b5bb7e67d753994653d9d1a0a))
* **esl-utils:** fix unhandled rejection when deferred is rejected but actual promise was not requested ([#1839](https://github.com/exadel-inc/esl/issues/1839)) ([5e111ba](https://github.com/exadel-inc/esl/commit/5e111baf343fba2c4e49c9618131fd50b78376f8))


### Features

* **esl-toggleable:** change `closeOnEsc` and `closeOnOutsideAction` mappers to extended boolean ('0' and 'false' values now considered as falsy) ([181a2b7](https://github.com/exadel-inc/esl/commit/181a2b767cfcb041620d30c95e08dffd3d3fd064))
* **esl-trigger:** change `ignoreEsc` mapper to extended boolean ('0' and 'false' values now considered as falsy) ([9ccee3d](https://github.com/exadel-inc/esl/commit/9ccee3d03486df3cc88a7cfd06448f18dd139623))
* **esl-utils:** `lockScroll` / `unlockScroll` methods reworked with no-scroll detection ([25b5b91](https://github.com/exadel-inc/esl/commit/25b5b9139c36f9bfc78319ba39e7cf6cee464a46))
* **esl-utils:** create `toBooleanAttribute` and create extended boolean attribute flow ([e039256](https://github.com/exadel-inc/esl/commit/e0392569045dc8526d0d1f8ff383e54b044f5f1b))

## [4.9.4](https://github.com/exadel-inc/esl/compare/v4.9.3...v4.9.4) (2023-07-17)


Expand Down
108 changes: 67 additions & 41 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,97 @@
# Contributing to ESL

Hello potential ESL contributor. We are really glad you are going to support ESL.
<a name="intro"></a>

Hello, potential ESL contributor! We are really glad you are going to support ESL.
But before submitting your contribution, please make sure to take a moment and read through the following guidelines:
- [🔗 Code Of Conduct](CODE_OF_CONDUCT.md)
- [🔗 Contributor Licence Agreement](CLA.md)
- [🔗 Code Of Conduct](https://github.com/exadel-inc/esl/blob/HEAD/CODE_OF_CONDUCT.md)
- [🔗 Contributor Licence Agreement](https://github.com/exadel-inc/esl/blob/HEAD/CLA.md)
- [Creating an issue](#creating-an-issue)
- [Creating a Pull Request](#creating-a-pull-request)
- [🔗 Development Guide ❕🔥](docs/DEVELOPMENT.md)
- [🔗 Commit Convention ❕🔥](docs/COMMIT_CONVENTION.md)
- [Outside Contributors Process](#outside-contributors-process)
- [🔗 Development Guide ❕🔥](https://github.com/exadel-inc/esl/blob/HEAD/docs/DEVELOPMENT.md)
- [🔗 Commit Convention ❕🔥](https://github.com/exadel-inc/esl/blob/HEAD/docs/COMMIT_CONVENTION.md)
- [Outside Contributions Process](#outside-contributions-process)
- [Project Branches and Releases](#project-branches-and-releases)

- [Contributing to ESL Documentation](#contributing-to-esl-documentation)

To maintain polite and constructive discussions within the project, please follow the [Code Of Conduct](CODE_OF_CONDUCT.md) guide.

<a name="creating-an-issue"></a>
## Creating an issue

In case you are going to create a new issue for a bug or feature request,
please use prepared issues templates and make sure you provide all required information
to understand your request.
Please also try to make sure that the issue for the bug or feature you are going to create is not presented in the issues list.
Also, please follow the [Code Of Conduct](CODE_OF_CONDUCT.md) guides
to keep polite and constructive discussions within the project.

to understand your request.
Also, please try to make sure that the issue for the bug or feature you are going to create is not present in the issues list.

Please don't be shy to suggest new features, improvements or notify us about the bug.
We are open mind to all suggestions and will do our best to keep project bugs free
(in bounds of our abilities and plans, of course :) ).
Please don't be shy to suggest new features, improvements or notify us about any bugs.
We are open to all suggestions and will do our best to keep the project bug-free.

<a name="creating-a-pull-request"></a>
## Creating a Pull Request

If you are going to contribute to the project with the code changes please be familiar with our
[Development Guide](docs/DEVELOPMENT.md) and
[Commit Message Convention](docs/COMMIT_CONVENTION.md).
Please also follow the [Code Of Conduct](CODE_OF_CONDUCT.md) guides
to keep polite and constructive discussions within the project.
If you are going to contribute to the project with the code changes, check out our
[Development Guide](https://github.com/exadel-inc/esl/blob/HEAD/docs/DEVELOPMENT.md) and
[Commit Message Convention](https://github.com/exadel-inc/esl/blob/HEAD/docs/COMMIT_CONVENTION.md).

### Outside Contributors Process
<a name="outside-contributions-process"></a>
### Outside Contributions Process

- Fork the repository and prepare an update in the proper branch of your fork.
Use one of the `feat/*`, `feature/*`, `fix/*`, `bugfix/*`, `docs/*`, `tech/*` prefixes for the branch.
Use `main` or if you require the next release updates `main-beta` branch as a base to cut your branch.
- Make sure your commits correspond to the project
[commit convention](docs/COMMIT_CONVENTION.md).
- Make sure that all tests and linter checks are passed
- Create a pull request from your fork branch to the original ESL repository.
Use `main` branch as the base.
- Make sure your commits follow the project
[commit convention](https://github.com/exadel-inc/esl/blob/HEAD/docs/COMMIT_CONVENTION.md).
- Make sure that all tests and linter checks are passed.
- Create a pull request from your fork branch to the ESL repository.
_**It's strongly recommended to use `main-beta` branch as a target**_.
Please rely on ESL maintainer to rebase PR if it's approved to be merged to the `main` (for
the very next ESL version) or to be moved under the proper project's "epic".
- Please use [Pull Request Template](.github/PULL_REQUEST_TEMPLATE.md) and be sure to add @exadel-inc/esl-core-team for review.
- Don't forget to agree on the project CLA. The CLA bot will automatically reply to you in the comments.
We can not use your contribution to the project until you do that.
ESL maintainers will rebase your PR to the `main` branch (if it's approved for the next ESL version),
or move it under the proper project's "epic".
- Please use [Pull Request Template](https://github.com/exadel-inc/esl/blob/HEAD/.github/PULL_REQUEST_TEMPLATE.md) and
be sure to add `@exadel-inc/esl-core-team` for review.
- Don't forget to sign the project CLA. The CLA bot will automatically prompt you to do it.
We cannot use your contribution to the project without this.


<a name="project-branches-and-releases"></a>
### Project Branches and Releases

ESL internal branches flow is described on the scheme below
ESL internal branches flow is described in the scheme below
![branches flow](./docs/images/branches-process.png)

- `main` - branch has an actual stable release of the library
- `main-beta` - branch for next minor and major releases ot the library
- `epic/*` (e.g `epic/new-big-feature`) - a branch for massive functionality or group of related features
The following branches are used in the project:
- `main` branch has the current or the nearest stable release of the library
- `main-beta` branch has the next minor and major releases changes
- `epic/*` (e.g `epic/new-big-feature`) - a branch for new complex functionality or a group of related features
- `feat/*` or `feature/*` - a branch for a feature implementation
- `fix/*` or `bugfix/*` - a branch for a bugfix implementation
- `docs/*` - branch with the documentation or demo content updates (TS Docs, GHPages content, README, etc.)
- `tech/*` - common updates regarding build process, configuration, linters and other technical changes
that are not affecting library output (npm package)
- `docs/*` - a branch with the documentation or demo content updates (TS Docs, GHPages content, README, etc.)
- `tech/*` - common updates regarding the build process, configuration, linters, and other technical changes
that are not affecting library output (npm package)

The following merge flow can be done by all ESL official collaborators:
The following merge flows can be done by all ESL official collaborators:
- `main` -> `main-beta`
- `main` -> `epic/*`
- `main-beta` -> `epic/*` (if epic is not going to be part of current stable major release)
- `main-beta` -> `epic/*` (if the epic is not going to be a part of the current stable major release)

<a name="contributing-to-esl-documentation"></a>
## Contribute to ESL documentation

Found a typo or just want to improve ESL documentation?
Feel free to create a PR with your changes.
You don't need special knowledge or even an open IDE to do this.
All ESL documentation is written in markdown and available in the module directory in `src/module/esl-*/README.md`
files.

Use the following steps to suggest an update to the ESL documentation quickly:

**The merge into `main` branch is a part of release processes and allowed for maintainers (@exadel-inc/esl-core-team) only.**
1. Find the right markdown file on GitHub
2. Click the "Edit this file" link with a pencil icon in the top right corner of the page
3. Make a fork of the repository and create a new branch for your changes
4. Make your changes and check the preview
5. Click on the "Commit changes" button and create a fork of the branch
6. Fill commit message and description
7. Make sure the commit name starts with `docs: ` (or `docs(esl-*changed module*): `) prefix
8. Click the "Propose changes" button
9. Confirm your CLA agreement (you will be asked to do this the first time you contribute to the project)
10. You have really helped us to improve the ESL documentation. Thank you!
22 changes: 3 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ their tech stack.
- [Overview](#overview)
- [Library Structure](#library-structure)
- [Installation Guide](#installation-guide)
- [Roadmap](#roadmap)
- [Development Information for Contributors](#development-information-for-contributors)

## Overview
Expand Down Expand Up @@ -68,7 +67,7 @@ with excellent performance.

- ##### [ESL A11yGroup](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-a11y-group/README.md) (beta)
- ##### [ESL Alert](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-alert/README.md)
- ##### [ESL Animate](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-animate/README.md) (beta)
- ##### [ESL Animate](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-animate/README.md)
- ##### [ESL Footnotes](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-footnotes/README.md) (beta)
- ##### [ESL Image](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-image/README.md)
- ##### [ESL Media](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-media/README.md)
Expand All @@ -79,6 +78,7 @@ with excellent performance.
- ##### [ESL Scrollbar](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-scrollbar/README.md)
- ##### [ESL Select](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-forms/esl-select/README.md) (beta)
- ##### [ESL Select List](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-forms/esl-select-list/README.md) (beta)
- ##### [ESL Share](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-share/README.md) (beta)
- ##### [ESL Tab and Tabs](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-tab/README.md)
- ##### [ESL Toggleable](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-toggleable/README.md)
- ##### [ESL Trigger](https://github.com/exadel-inc/esl/blob/HEAD/src/modules/esl-trigger/README.md)
Expand All @@ -90,7 +90,7 @@ with excellent performance.
0. Preconditions:
- Make sure you have all needed polyfills to support browsers from your browser-support list.
See [Browser support & Polyfills](https://github.com/exadel-inc/esl/blob/HEAD/docs/BROWSER_SUPPORT.md) for details.
- Use bundler to build your project. Currently, only ES6 modules are available for consumption.
- Use a bundler to build your project. Currently, only ES6 modules are available for consumption.

1. Install [esl npm dependency](https://www.npmjs.com/package/@exadel/esl):
```
Expand Down Expand Up @@ -127,22 +127,6 @@ with excellent performance.
```
*You can pass custom tag name to 'register' function, but use this option only in an exceptional situation.*
---
## Roadmap
<a name="roadmap"></a>
- ESL Carousel component (v4.1.0)
- Migration to multi-package structure (v5.0.0)
- Demo pages [UI Playground](https://github.com/exadel-inc/ui-playground) integration
- A stable version of ESL Footnotes and ESL Popup components
- Interactive Documentation and more demo site features
- Sharable assets from the demo site (styles components)
- Extension of esl-form elements (custom form base, helpers, validation and more)
- More components in the library
<a name="roadmap_end"></a>
---
<a name="contributing"></a>
Expand Down
Loading

0 comments on commit 6ae13a9

Please sign in to comment.