Full Code of Talend/ui for AI

master 4c65e81052c8 cached
4582 files
14.8 MB
4.2M tokens
4127 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (16,576K chars total). Download the full file to get everything.
Repository: Talend/ui
Branch: master
Commit: 4c65e81052c8
Files: 4582
Total size: 14.8 MB

Directory structure:
gitextract_g_x4juwx/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── architecture_decision_record.md
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── actions/
│   │   ├── lint-merge-report/
│   │   │   ├── action.yml
│   │   │   └── merge-lint-reports.mjs
│   │   └── setup-node/
│   │       └── action.yml
│   ├── copilot-instructions.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── changeset.yml
│       ├── clean-demo.yml
│       ├── demo.yml
│       ├── dependencies.yml
│       ├── icons.yml
│       ├── pr-demo.yml
│       ├── pr-lint.yml
│       ├── pr-test.yml
│       ├── pre-release.yml
│       ├── visual-testing.yml
│       └── yarn-deduplicate.yml
├── .gitignore
├── .husky/
│   └── pre-commit
├── .nojekyll
├── .npmignore
├── .npmrc
├── .prettierignore
├── .prettierrc.js
├── .sass-lint.yml
├── .semgrepignore
├── .tool-versions
├── .vscode/
│   └── settings.json
├── CONTRIBUTING.md
├── I18n.md
├── LICENSE
├── README.md
├── SECURITY.md
├── babel.config.js
├── dependencies-latest.txt
├── docs/
│   ├── adr-2024-04-add-support-to-esm.md
│   ├── adr-composition-vs-api.md
│   ├── adr-css-modules.md
│   ├── adr-data-test.md
│   ├── adr-dependencies.md
│   └── adr-rework-talend-scripts.md
├── eslint.config.mjs
├── fork/
│   ├── bootstrap-sass/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── CONTRIBUTING.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── assets/
│   │   │   ├── images/
│   │   │   │   └── .keep
│   │   │   ├── javascripts/
│   │   │   │   ├── bootstrap/
│   │   │   │   │   ├── affix.js
│   │   │   │   │   ├── alert.js
│   │   │   │   │   ├── button.js
│   │   │   │   │   ├── carousel.js
│   │   │   │   │   ├── collapse.js
│   │   │   │   │   ├── dropdown.js
│   │   │   │   │   ├── modal.js
│   │   │   │   │   ├── popover.js
│   │   │   │   │   ├── scrollspy.js
│   │   │   │   │   ├── tab.js
│   │   │   │   │   ├── tooltip.js
│   │   │   │   │   └── transition.js
│   │   │   │   ├── bootstrap-sprockets.js
│   │   │   │   └── bootstrap.js
│   │   │   └── stylesheets/
│   │   │       ├── _bootstrap-compass.scss
│   │   │       ├── _bootstrap-mincer.scss
│   │   │       ├── _bootstrap-sprockets.scss
│   │   │       ├── _bootstrap.scss
│   │   │       └── bootstrap/
│   │   │           ├── _alerts.scss
│   │   │           ├── _badges.scss
│   │   │           ├── _breadcrumbs.scss
│   │   │           ├── _button-groups.scss
│   │   │           ├── _buttons.scss
│   │   │           ├── _carousel.scss
│   │   │           ├── _close.scss
│   │   │           ├── _code.scss
│   │   │           ├── _component-animations.scss
│   │   │           ├── _dropdowns.scss
│   │   │           ├── _forms.scss
│   │   │           ├── _glyphicons.scss
│   │   │           ├── _grid.scss
│   │   │           ├── _input-groups.scss
│   │   │           ├── _jumbotron.scss
│   │   │           ├── _labels.scss
│   │   │           ├── _list-group.scss
│   │   │           ├── _media.scss
│   │   │           ├── _mixins.scss
│   │   │           ├── _modals.scss
│   │   │           ├── _navbar.scss
│   │   │           ├── _navs.scss
│   │   │           ├── _normalize.scss
│   │   │           ├── _pager.scss
│   │   │           ├── _pagination.scss
│   │   │           ├── _panels.scss
│   │   │           ├── _popovers.scss
│   │   │           ├── _print.scss
│   │   │           ├── _progress-bars.scss
│   │   │           ├── _responsive-embed.scss
│   │   │           ├── _responsive-utilities.scss
│   │   │           ├── _scaffolding.scss
│   │   │           ├── _tables.scss
│   │   │           ├── _theme.scss
│   │   │           ├── _thumbnails.scss
│   │   │           ├── _tooltip.scss
│   │   │           ├── _type.scss
│   │   │           ├── _utilities.scss
│   │   │           ├── _variables.scss
│   │   │           ├── _wells.scss
│   │   │           └── mixins/
│   │   │               ├── _alerts.scss
│   │   │               ├── _background-variant.scss
│   │   │               ├── _border-radius.scss
│   │   │               ├── _buttons.scss
│   │   │               ├── _center-block.scss
│   │   │               ├── _clearfix.scss
│   │   │               ├── _forms.scss
│   │   │               ├── _gradients.scss
│   │   │               ├── _grid-framework.scss
│   │   │               ├── _grid.scss
│   │   │               ├── _hide-text.scss
│   │   │               ├── _image.scss
│   │   │               ├── _labels.scss
│   │   │               ├── _list-group.scss
│   │   │               ├── _nav-divider.scss
│   │   │               ├── _nav-vertical-align.scss
│   │   │               ├── _opacity.scss
│   │   │               ├── _pagination.scss
│   │   │               ├── _panels.scss
│   │   │               ├── _progress-bar.scss
│   │   │               ├── _reset-filter.scss
│   │   │               ├── _reset-text.scss
│   │   │               ├── _resize.scss
│   │   │               ├── _responsive-visibility.scss
│   │   │               ├── _size.scss
│   │   │               ├── _tab-focus.scss
│   │   │               ├── _table-row.scss
│   │   │               ├── _text-emphasis.scss
│   │   │               ├── _text-overflow.scss
│   │   │               └── _vendor-prefixes.scss
│   │   ├── composer.json
│   │   ├── eslint.config.mjs
│   │   └── package.json
│   ├── dynamic-cdn-webpack-plugin/
│   │   ├── .all-contributorsrc
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── __mocks__/
│   │   │   └── fs.js
│   │   ├── eslint.config.mjs
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   ├── readme.md
│   │   ├── src/
│   │   │   ├── find.js
│   │   │   ├── find.test.js
│   │   │   ├── get-resolver.js
│   │   │   ├── index.js
│   │   │   └── resolve-pkg.js
│   │   ├── test/
│   │   │   ├── core.test.js
│   │   │   ├── fixtures/
│   │   │   │   ├── app/
│   │   │   │   │   ├── async.js
│   │   │   │   │   ├── dir/
│   │   │   │   │   │   └── single.js
│   │   │   │   │   ├── mix.js
│   │   │   │   │   ├── multiple.js
│   │   │   │   │   ├── no-export.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── peer-dependencies.js
│   │   │   │   │   ├── require-file.js
│   │   │   │   │   ├── single.js
│   │   │   │   │   └── submodule.js
│   │   │   │   ├── duplicate-dependencies/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── package.json
│   │   │   │   ├── nested-dependencies/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── package.json
│   │   │   │   └── optional-peer-deps/
│   │   │   │       ├── index.js
│   │   │   │       └── package.json
│   │   │   ├── helpers/
│   │   │   │   ├── clean-dir.js
│   │   │   │   └── run-webpack.js
│   │   │   ├── html-webpack-plugin.test.js
│   │   │   ├── optional-peer-dep.test.js
│   │   │   └── webpack-manifest-plugin.test.js
│   │   └── vitest.config.ts
│   ├── json-schema-form-core/
│   │   ├── .gitignore
│   │   ├── .jscsrc
│   │   ├── .mocharc.json
│   │   ├── .travis.yml
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── canonical-title-map.spec.js
│   │   │   ├── canonical-title-map.ts
│   │   │   ├── index.js
│   │   │   ├── merge.js
│   │   │   ├── merge.spec.js
│   │   │   ├── module.spec.js
│   │   │   ├── resolve.js
│   │   │   ├── resolve.spec.js
│   │   │   ├── schema-defaults.test.js
│   │   │   ├── schema-defaults.ts
│   │   │   ├── select.js
│   │   │   ├── select.test.js
│   │   │   ├── sf-path.test.js
│   │   │   ├── sf-path.ts
│   │   │   ├── traverse.test.js
│   │   │   ├── traverse.ts
│   │   │   ├── validate.js
│   │   │   └── validate.test.js
│   │   ├── talend-scripts.json
│   │   ├── test.md
│   │   ├── tsconfig.json
│   │   ├── vitest.config.ts
│   │   └── webpack.config.js
│   ├── module-to-cdn/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── .prettierrc.js
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── cache.js
│   │   ├── eslint.config.mjs
│   │   ├── index.js
│   │   ├── index.test.js
│   │   ├── jsonschema.json
│   │   ├── license
│   │   ├── meta/
│   │   │   ├── @angular/
│   │   │   │   ├── animations/
│   │   │   │   │   ├── browser/
│   │   │   │   │   │   └── meta.json
│   │   │   │   │   └── meta.json
│   │   │   │   ├── common/
│   │   │   │   │   ├── http/
│   │   │   │   │   │   └── meta.json
│   │   │   │   │   └── meta.json
│   │   │   │   ├── compiler/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── core/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── forms/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── http/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── platform-browser/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── platform-browser-dynamic/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── router/
│   │   │   │   │   └── meta.json
│   │   │   │   └── upgrade/
│   │   │   │       ├── meta.json
│   │   │   │       └── static/
│   │   │   │           └── meta.json
│   │   │   ├── @babel/
│   │   │   │   └── polyfill/
│   │   │   │       └── meta.json
│   │   │   ├── @popperjs/
│   │   │   │   └── core/
│   │   │   │       └── meta.json
│   │   │   ├── @rooks/
│   │   │   │   └── use-mutation-observer/
│   │   │   │       └── meta.json
│   │   │   ├── @sentry/
│   │   │   │   └── browser/
│   │   │   │       └── meta.json
│   │   │   ├── aframe/
│   │   │   │   └── meta.json
│   │   │   ├── ag-grid/
│   │   │   │   └── meta.json
│   │   │   ├── ag-grid-community/
│   │   │   │   └── meta.json
│   │   │   ├── ag-grid-enterprise/
│   │   │   │   └── meta.json
│   │   │   ├── angular/
│   │   │   │   └── meta.json
│   │   │   ├── auth0-lock/
│   │   │   │   └── meta.json
│   │   │   ├── axios/
│   │   │   │   └── meta.json
│   │   │   ├── babel-polyfill/
│   │   │   │   └── meta.json
│   │   │   ├── bootstrap/
│   │   │   │   └── meta.json
│   │   │   ├── classnames/
│   │   │   │   └── meta.json
│   │   │   ├── core-js/
│   │   │   │   └── meta.json
│   │   │   ├── d3/
│   │   │   │   └── meta.json
│   │   │   ├── file-saver/
│   │   │   │   └── meta.json
│   │   │   ├── focus-outline-manager/
│   │   │   │   └── meta.json
│   │   │   ├── history/
│   │   │   │   └── meta.json
│   │   │   ├── i18next/
│   │   │   │   └── meta.json
│   │   │   ├── immutable/
│   │   │   │   └── meta.json
│   │   │   ├── jquery/
│   │   │   │   └── meta.json
│   │   │   ├── json-logic-js/
│   │   │   │   └── meta.json
│   │   │   ├── jszip/
│   │   │   │   └── meta.json
│   │   │   ├── jwt-decode/
│   │   │   │   └── meta.json
│   │   │   ├── lodash/
│   │   │   │   └── meta.json
│   │   │   ├── mobx/
│   │   │   │   └── meta.json
│   │   │   ├── platform/
│   │   │   │   └── meta.json
│   │   │   ├── popper.js/
│   │   │   │   └── meta.json
│   │   │   ├── preact/
│   │   │   │   └── meta.json
│   │   │   ├── preact-compat/
│   │   │   │   └── meta.json
│   │   │   ├── prop-types/
│   │   │   │   └── meta.json
│   │   │   ├── react/
│   │   │   │   └── meta.json
│   │   │   ├── react-ace/
│   │   │   │   └── meta.json
│   │   │   ├── react-autowhatever/
│   │   │   │   └── meta.json
│   │   │   ├── react-bootstrap/
│   │   │   │   └── meta.json
│   │   │   ├── react-css-transition/
│   │   │   │   └── meta.json
│   │   │   ├── react-debounce-input/
│   │   │   │   └── meta.json
│   │   │   ├── react-dnd/
│   │   │   │   └── meta.json
│   │   │   ├── react-dnd-html5-backend/
│   │   │   │   └── meta.json
│   │   │   ├── react-dom/
│   │   │   │   └── meta.json
│   │   │   ├── react-draggable/
│   │   │   │   └── meta.json
│   │   │   ├── react-hook-form/
│   │   │   │   └── meta.json
│   │   │   ├── react-i18next/
│   │   │   │   └── meta.json
│   │   │   ├── react-is/
│   │   │   │   └── meta.json
│   │   │   ├── react-lifecycles-compat/
│   │   │   │   └── meta.json
│   │   │   ├── react-popper/
│   │   │   │   └── meta.json
│   │   │   ├── react-redux/
│   │   │   │   └── meta.json
│   │   │   ├── react-resizable/
│   │   │   │   └── meta.json
│   │   │   ├── react-router/
│   │   │   │   └── meta.json
│   │   │   ├── react-router-dom/
│   │   │   │   └── meta.json
│   │   │   ├── react-side-effect/
│   │   │   │   └── meta.json
│   │   │   ├── react-transition-group/
│   │   │   │   └── meta.json
│   │   │   ├── react-virtualized/
│   │   │   │   └── meta.json
│   │   │   ├── recharts/
│   │   │   │   └── meta.json
│   │   │   ├── redux/
│   │   │   │   └── meta.json
│   │   │   ├── redux-act/
│   │   │   │   └── meta.json
│   │   │   ├── redux-saga/
│   │   │   │   └── meta.json
│   │   │   ├── redux-thunk/
│   │   │   │   └── meta.json
│   │   │   ├── reflect-metadata/
│   │   │   │   └── meta.json
│   │   │   ├── rx/
│   │   │   │   └── meta.json
│   │   │   ├── rxjs/
│   │   │   │   └── meta.json
│   │   │   ├── scroll-smooth/
│   │   │   │   └── meta.json
│   │   │   ├── semantic-ui/
│   │   │   │   └── meta.json
│   │   │   ├── simplebar/
│   │   │   │   └── meta.json
│   │   │   ├── styled-components/
│   │   │   │   └── meta.json
│   │   │   ├── tachyons/
│   │   │   │   └── meta.json
│   │   │   ├── three/
│   │   │   │   └── meta.json
│   │   │   ├── timezone-support/
│   │   │   │   └── meta.json
│   │   │   ├── tooltip.js/
│   │   │   │   └── meta.json
│   │   │   ├── uuid/
│   │   │   │   └── meta.json
│   │   │   ├── vue/
│   │   │   │   └── meta.json
│   │   │   └── zone.js/
│   │   │       └── meta.json
│   │   ├── modules.json
│   │   ├── modules.test.js
│   │   ├── package.json
│   │   ├── url.js
│   │   ├── version.js
│   │   └── vitest.config.ts
│   └── react-bootstrap/
│       ├── .babelrc
│       ├── CHANGELOG.md
│       ├── CONTRIBUTING.md
│       ├── MAINTAINING.md
│       ├── README.md
│       ├── eslint.config.mjs
│       ├── package.json
│       ├── server/
│       │   └── ModalSpec.js
│       ├── src/
│       │   ├── Accordion.jsx
│       │   ├── Alert.jsx
│       │   ├── Alert.test.jsx
│       │   ├── Badge.jsx
│       │   ├── Badge.test.jsx
│       │   ├── Breadcrumb.jsx
│       │   ├── Breadcrumb.test.jsx
│       │   ├── BreadcrumbItem.jsx
│       │   ├── BreadcrumbItem.test.jsx
│       │   ├── Button.jsx
│       │   ├── Button.test.jsx
│       │   ├── ButtonGroup.jsx
│       │   ├── ButtonGroup.test.jsx
│       │   ├── ButtonToolbar.jsx
│       │   ├── ButtonToolbar.test.jsx
│       │   ├── Carousel.jsx
│       │   ├── Carousel.test.jsx
│       │   ├── CarouselCaption.jsx
│       │   ├── CarouselCaption.test.jsx
│       │   ├── CarouselItem.jsx
│       │   ├── Checkbox.jsx
│       │   ├── Checkbox.test.jsx
│       │   ├── Clearfix.jsx
│       │   ├── Clearfix.test.jsx
│       │   ├── CloseButton.jsx
│       │   ├── CloseButton.test.jsx
│       │   ├── Col.jsx
│       │   ├── Col.test.jsx
│       │   ├── Collapse.jsx
│       │   ├── Collapse.test.jsx
│       │   ├── ControlLabel.jsx
│       │   ├── ControlLabel.test.jsx
│       │   ├── Dropdown.jsx
│       │   ├── Dropdown.test.jsx
│       │   ├── DropdownButton.jsx
│       │   ├── DropdownButton.test.jsx
│       │   ├── DropdownMenu.jsx
│       │   ├── DropdownMenu.test.jsx
│       │   ├── DropdownToggle.jsx
│       │   ├── DropdownToggle.test.jsx
│       │   ├── Fade.jsx
│       │   ├── Fade.test.jsx
│       │   ├── Form.jsx
│       │   ├── Form.test.jsx
│       │   ├── FormControl.jsx
│       │   ├── FormControl.test.jsx
│       │   ├── FormControlFeedback.jsx
│       │   ├── FormControlFeedback.test.jsx
│       │   ├── FormControlStatic.jsx
│       │   ├── FormControlStatic.test.jsx
│       │   ├── FormGroup.jsx
│       │   ├── FormGroup.test.jsx
│       │   ├── Glyphicon.jsx
│       │   ├── Glyphicon.test.jsx
│       │   ├── Grid.jsx
│       │   ├── Grid.test.jsx
│       │   ├── HelpBlock.jsx
│       │   ├── HelpBlock.test.jsx
│       │   ├── Image.jsx
│       │   ├── Image.test.jsx
│       │   ├── InputGroup.jsx
│       │   ├── InputGroup.test.jsx
│       │   ├── InputGroupAddon.jsx
│       │   ├── InputGroupButton.jsx
│       │   ├── Jumbotron.jsx
│       │   ├── Jumbotron.test.jsx
│       │   ├── Label.jsx
│       │   ├── Label.test.jsx
│       │   ├── ListGroup.jsx
│       │   ├── ListGroup.test.jsx
│       │   ├── ListGroupItem.jsx
│       │   ├── ListGroupItem.test.jsx
│       │   ├── Media.jsx
│       │   ├── Media.test.jsx
│       │   ├── MediaBody.jsx
│       │   ├── MediaBody.test.jsx
│       │   ├── MediaHeading.jsx
│       │   ├── MediaHeading.test.jsx
│       │   ├── MediaLeft.jsx
│       │   ├── MediaLeft.test.jsx
│       │   ├── MediaList.jsx
│       │   ├── MediaList.test.jsx
│       │   ├── MediaListItem.jsx
│       │   ├── MediaListItem.test.jsx
│       │   ├── MediaRight.jsx
│       │   ├── MediaRight.test.jsx
│       │   ├── MenuItem.jsx
│       │   ├── MenuItem.test.jsx
│       │   ├── Modal.jsx
│       │   ├── Modal.test.jsx
│       │   ├── ModalBody.jsx
│       │   ├── ModalBody.test.jsx
│       │   ├── ModalDialog.jsx
│       │   ├── ModalFooter.jsx
│       │   ├── ModalFooter.test.jsx
│       │   ├── ModalHeader.jsx
│       │   ├── ModalHeader.test.jsx
│       │   ├── ModalTitle.jsx
│       │   ├── ModalTitle.test.jsx
│       │   ├── Nav.jsx
│       │   ├── Nav.test.jsx
│       │   ├── NavDropdown.jsx
│       │   ├── NavDropdown.test.jsx
│       │   ├── NavItem.jsx
│       │   ├── NavItem.test.jsx
│       │   ├── Navbar.jsx
│       │   ├── Navbar.test.jsx
│       │   ├── NavbarBrand.jsx
│       │   ├── NavbarBrand.test.jsx
│       │   ├── NavbarCollapse.jsx
│       │   ├── NavbarHeader.jsx
│       │   ├── NavbarToggle.jsx
│       │   ├── Overlay.jsx
│       │   ├── OverlayTrigger.jsx
│       │   ├── OverlayTrigger.test.jsx
│       │   ├── PageHeader.jsx
│       │   ├── PageHeader.test.jsx
│       │   ├── PageItem.jsx
│       │   ├── Pager.jsx
│       │   ├── Pager.test.jsx
│       │   ├── PagerItem.jsx
│       │   ├── PagerItem.test.jsx
│       │   ├── Pagination.jsx
│       │   ├── Pagination.test.jsx
│       │   ├── PaginationItem.jsx
│       │   ├── Panel.jsx
│       │   ├── Panel.test.jsx
│       │   ├── PanelBody.jsx
│       │   ├── PanelCollapse.jsx
│       │   ├── PanelFooter.jsx
│       │   ├── PanelGroup.jsx
│       │   ├── PanelGroup.test.jsx
│       │   ├── PanelHeading.jsx
│       │   ├── PanelTitle.jsx
│       │   ├── PanelToggle.jsx
│       │   ├── Popover.jsx
│       │   ├── Popover.test.jsx
│       │   ├── ProgressBar.jsx
│       │   ├── ProgressBar.test.jsx
│       │   ├── Radio.jsx
│       │   ├── Radio.test.jsx
│       │   ├── ResponsiveEmbed.jsx
│       │   ├── ResponsiveEmbed.test.jsx
│       │   ├── Row.jsx
│       │   ├── Row.test.jsx
│       │   ├── SafeAnchor.jsx
│       │   ├── SafeAnchor.test.jsx
│       │   ├── SplitButton.jsx
│       │   ├── SplitButton.test.jsx
│       │   ├── SplitToggle.jsx
│       │   ├── Tab.jsx
│       │   ├── Tab.test.jsx
│       │   ├── TabContainer.jsx
│       │   ├── TabContainer.test.jsx
│       │   ├── TabContent.jsx
│       │   ├── TabPane.jsx
│       │   ├── Table.jsx
│       │   ├── Table.test.jsx
│       │   ├── Tabs.jsx
│       │   ├── Tabs.test.jsx
│       │   ├── Thumbnail.jsx
│       │   ├── Thumbnail.test.jsx
│       │   ├── ToggleButton.jsx
│       │   ├── ToggleButtonGroup.jsx
│       │   ├── ToggleButtonGroup.test.jsx
│       │   ├── Tooltip.jsx
│       │   ├── Tooltip.test.jsx
│       │   ├── Well.jsx
│       │   ├── Well.test.jsx
│       │   ├── helpers.jsx
│       │   ├── index.jsx
│       │   ├── test-setup.jsx
│       │   └── utils/
│       │       ├── PropTypes.js
│       │       ├── StyleConfig.js
│       │       ├── ValidComponentChildren.js
│       │       ├── bootstrapUtils.js
│       │       ├── capitalize.js
│       │       ├── createChainedFunction.js
│       │       ├── deprecationWarning.js
│       │       ├── index.js
│       │       └── splitComponentProps.js
│       ├── tsconfig.json
│       └── vitest.config.ts
├── index.html
├── mocks/
│   └── dateMock.js
├── npm-audit/
│   └── audit.json
├── package.json
├── packages/
│   ├── a11y/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Gesture/
│   │   │   │   ├── constants.ts
│   │   │   │   ├── focus.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── preventScroll.test.tsx
│   │   │   │   ├── preventScroll.ts
│   │   │   │   ├── propTypes.ts
│   │   │   │   ├── withCalendarGesture.test.tsx
│   │   │   │   ├── withCalendarGesture.tsx
│   │   │   │   ├── withDynamicListGesture.test.jsx
│   │   │   │   ├── withDynamicListGesture.tsx
│   │   │   │   ├── withListGesture.test.jsx
│   │   │   │   ├── withListGesture.tsx
│   │   │   │   ├── withMonthCalendarGesture.test.tsx
│   │   │   │   ├── withMonthCalendarGesture.tsx
│   │   │   │   ├── withTreeGesture.test.jsx
│   │   │   │   └── withTreeGesture.tsx
│   │   │   ├── __mocks__/
│   │   │   │   ├── day-calendar.tsx
│   │   │   │   ├── list.tsx
│   │   │   │   ├── month-calendar.tsx
│   │   │   │   └── tree.tsx
│   │   │   ├── index.ts
│   │   │   └── test-setup.ts
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── assets-api/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.test.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── cmf/
│   │   ├── .babelrc.json
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── 6.0-BreakingChanges.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── App.test.jsx
│   │   │   ├── Dispatcher.test.jsx
│   │   │   ├── Inject.test.jsx
│   │   │   ├── __snapshots__/
│   │   │   │   ├── cmfConnect.test.jsx.snap
│   │   │   │   └── componentState.test.js.snap
│   │   │   ├── action.test.js
│   │   │   ├── actionCreator.test.js
│   │   │   ├── actions/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── componentsActions.test.js.snap
│   │   │   │   ├── collectionsActions.test.js
│   │   │   │   ├── componentsActions.test.js
│   │   │   │   ├── http.test.js
│   │   │   │   ├── saga.test.js
│   │   │   │   └── settingsAction.test.js
│   │   │   ├── assert.test.js
│   │   │   ├── bootstrap.test.jsx
│   │   │   ├── cmfConnect.test.jsx
│   │   │   ├── cmfModule.merge.test.jsx
│   │   │   ├── cmfModule.test.js
│   │   │   ├── component.test.js
│   │   │   ├── componentState.test.js
│   │   │   ├── constant.test.js
│   │   │   ├── expression.test.jsx
│   │   │   ├── expressions/
│   │   │   │   └── index.test.jsx
│   │   │   ├── httpInterceptors.test.js
│   │   │   ├── localStorage.test.js
│   │   │   ├── matchPath.test.js
│   │   │   ├── middlewares/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── http.test.js.snap
│   │   │   │   ├── cmf.test.js
│   │   │   │   ├── constants.test.js
│   │   │   │   ├── csrfHandling.test.js
│   │   │   │   ├── error.test.js
│   │   │   │   └── http.test.js
│   │   │   ├── omit.test.js
│   │   │   ├── onError.test.jsx
│   │   │   ├── onEvent.test.js
│   │   │   ├── reducers/
│   │   │   │   ├── collectionsReducers.test.js
│   │   │   │   ├── componentsReducers.test.js
│   │   │   │   ├── index.test.js
│   │   │   │   └── settingsReducers.test.js
│   │   │   ├── register.test.js
│   │   │   ├── registry.test.js
│   │   │   ├── sagas/
│   │   │   │   ├── collection.test.js
│   │   │   │   ├── component.test.js
│   │   │   │   ├── http.test.js
│   │   │   │   └── putActionCreator.test.js
│   │   │   ├── selectors/
│   │   │   │   ├── collections.test.js
│   │   │   │   ├── index.test.js
│   │   │   │   └── toJS.test.js
│   │   │   ├── settings.test.jsx
│   │   │   └── store.test.js
│   │   ├── assets/
│   │   │   ├── diagram-bootstrap.xml
│   │   │   ├── diagram-cmfConnect.xml
│   │   │   ├── diagram-code-orga.xml
│   │   │   ├── diagram-onError-sequence.puml
│   │   │   ├── diagram-react-redux-saga-rendering.xml
│   │   │   └── diagram-rendering-cycle.xml
│   │   ├── cmf.d.ts
│   │   ├── docs/
│   │   │   ├── api.md
│   │   │   ├── assets/
│   │   │   │   ├── CMF-action-diagram.txt
│   │   │   │   └── CMF-bootstrap-diagram.txt
│   │   │   ├── best-practices.md
│   │   │   ├── core-expressions.md
│   │   │   ├── core-onevent.md
│   │   │   ├── core-registry.md
│   │   │   ├── core-settings.md
│   │   │   ├── examples.md
│   │   │   ├── getting-started.md
│   │   │   ├── how-to-add-a-new-page.md
│   │   │   ├── how-to-connect.md
│   │   │   ├── how-to-edit-doc.md
│   │   │   ├── how-to-manage-collections.md
│   │   │   ├── package-redux.md
│   │   │   ├── package-router.md
│   │   │   ├── package-saga.md
│   │   │   └── what-is-cmf.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── cmf-settings.js
│   │   ├── src/
│   │   │   ├── App.jsx
│   │   │   ├── App.md
│   │   │   ├── Dispatcher.jsx
│   │   │   ├── Dispatcher.md
│   │   │   ├── Inject.component.jsx
│   │   │   ├── RegistryProvider.jsx
│   │   │   ├── action.js
│   │   │   ├── action.md
│   │   │   ├── actionCreator.js
│   │   │   ├── actionCreator.md
│   │   │   ├── actions/
│   │   │   │   ├── collectionsActions.js
│   │   │   │   ├── componentsActions.js
│   │   │   │   ├── http.js
│   │   │   │   ├── index.js
│   │   │   │   ├── saga.js
│   │   │   │   └── settingsActions.js
│   │   │   ├── api.md
│   │   │   ├── assert.js
│   │   │   ├── bootstrap.jsx
│   │   │   ├── bootstrap.md
│   │   │   ├── cmfConnect.jsx
│   │   │   ├── cmfConnect.md
│   │   │   ├── cmfModule.js
│   │   │   ├── cmfModule.merge.jsx
│   │   │   ├── component.js
│   │   │   ├── componentState.js
│   │   │   ├── components/
│   │   │   │   ├── ErrorBoundary/
│   │   │   │   │   ├── ErrorBoundary.component.js
│   │   │   │   │   └── ErrorBoundary.component.test.jsx
│   │   │   │   ├── ErrorFeedBack/
│   │   │   │   │   ├── ErrorFeedBack.component.jsx
│   │   │   │   │   ├── ErrorFeedBack.component.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ErrorPanel/
│   │   │   │   │   ├── ErrorPanel.component.jsx
│   │   │   │   │   ├── ErrorPanel.component.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   └── Saga/
│   │   │   │       ├── CmfRegisteredSaga.component.js
│   │   │   │       ├── CmfRegisteredSaga.component.test.jsx
│   │   │   │       ├── Saga.component.js
│   │   │   │       ├── Saga.component.md
│   │   │   │       ├── Saga.component.test.jsx
│   │   │   │       ├── Saga.saga.js
│   │   │   │       ├── Saga.saga.test.js
│   │   │   │       └── index.js
│   │   │   ├── constant.js
│   │   │   ├── deprecated.js
│   │   │   ├── expression.jsx
│   │   │   ├── expression.md
│   │   │   ├── expressions/
│   │   │   │   ├── allOf.js
│   │   │   │   ├── getInState.js
│   │   │   │   ├── includes.js
│   │   │   │   ├── index.js
│   │   │   │   ├── index.md
│   │   │   │   └── oneOf.js
│   │   │   ├── httpInterceptors.js
│   │   │   ├── httpInterceptors.md
│   │   │   ├── index.js
│   │   │   ├── localStorage.js
│   │   │   ├── matchPath.js
│   │   │   ├── middlewares/
│   │   │   │   ├── cmf/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── index.md
│   │   │   │   ├── error/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── index.md
│   │   │   │   ├── http/
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── csrfHandling.js
│   │   │   │   │   ├── index.js
│   │   │   │   │   ├── index.md
│   │   │   │   │   └── middleware.js
│   │   │   │   └── index.js
│   │   │   ├── mock/
│   │   │   │   ├── collections.js
│   │   │   │   ├── components.js
│   │   │   │   ├── index.js
│   │   │   │   ├── provider.jsx
│   │   │   │   ├── rtl.jsx
│   │   │   │   ├── settings.js
│   │   │   │   └── store.jsx
│   │   │   ├── omit.js
│   │   │   ├── onError.js
│   │   │   ├── onError.md
│   │   │   ├── onEvent.js
│   │   │   ├── onEvent.md
│   │   │   ├── reducers/
│   │   │   │   ├── collectionsReducers.js
│   │   │   │   ├── componentsReducers.js
│   │   │   │   ├── index.js
│   │   │   │   └── settingsReducers.js
│   │   │   ├── register.js
│   │   │   ├── registry.js
│   │   │   ├── registry.md
│   │   │   ├── sagas/
│   │   │   │   ├── collection.js
│   │   │   │   ├── component.js
│   │   │   │   ├── http.js
│   │   │   │   ├── index.js
│   │   │   │   ├── index.md
│   │   │   │   └── putActionCreator.js
│   │   │   ├── selectors/
│   │   │   │   ├── collections.js
│   │   │   │   ├── collections.md
│   │   │   │   ├── index.js
│   │   │   │   ├── index.md
│   │   │   │   ├── toJS.js
│   │   │   │   └── toJS.md
│   │   │   ├── settings.jsx
│   │   │   ├── settings.md
│   │   │   ├── store.js
│   │   │   ├── store.md
│   │   │   ├── test-setup.ts
│   │   │   └── useContext.js
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── cmf-cqrs/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs.json
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── actions/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ack.test.js.snap
│   │   │   │   ├── ack.js
│   │   │   │   ├── ack.test.js
│   │   │   │   └── index.js
│   │   │   ├── components/
│   │   │   │   └── ACKDispatcher/
│   │   │   │       ├── ACKDispatcher.connect.js
│   │   │   │       ├── ACKDispatcher.container.js
│   │   │   │       ├── ACKDispatcher.test.jsx
│   │   │   │       ├── __snapshots__/
│   │   │   │       │   ├── ACKDispatcher.test.js.snap
│   │   │   │       │   └── ACKDispatcher.test.jsx.snap
│   │   │   │       └── index.js
│   │   │   ├── constants/
│   │   │   │   ├── ack.js
│   │   │   │   ├── index.js
│   │   │   │   ├── socketMiddleware.js
│   │   │   │   └── status.js
│   │   │   ├── index.test.js
│   │   │   ├── index.ts
│   │   │   ├── middleware/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── socketMiddleware.test.js.snap
│   │   │   │   ├── index.js
│   │   │   │   ├── smartWebsocket.js
│   │   │   │   ├── smartWebsocket.test.js
│   │   │   │   ├── socketMiddleware.js
│   │   │   │   └── socketMiddleware.test.js
│   │   │   ├── reducers/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ack.test.js.snap
│   │   │   │   ├── ack.js
│   │   │   │   ├── ack.test.js
│   │   │   │   └── index.js
│   │   │   ├── registry.js
│   │   │   ├── sagas/
│   │   │   │   ├── ack.js
│   │   │   │   ├── ack.test.js
│   │   │   │   └── index.js
│   │   │   ├── test-setup.ts
│   │   │   ├── useWebSocket.hook.test.ts
│   │   │   └── useWebSocket.hook.ts
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── cmf-router/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── UIRouter.jsx
│   │   │   ├── constant.js
│   │   │   ├── expressions.js
│   │   │   ├── expressions.md
│   │   │   ├── expressions.test.js
│   │   │   ├── history.js
│   │   │   ├── index.jsx
│   │   │   ├── index.test.js
│   │   │   ├── middleware.js
│   │   │   ├── middleware.md
│   │   │   ├── middleware.test.js
│   │   │   ├── sagaRouter.js
│   │   │   ├── sagaRouter.md
│   │   │   ├── sagaRouter.test.js
│   │   │   ├── sagas/
│   │   │   │   ├── documentTitle.js
│   │   │   │   └── documentTitle.test.js
│   │   │   ├── selectors.js
│   │   │   └── selectors.test.js
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── components/
│   │   ├── .babelrc.json
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .sass-lint.yml
│   │   ├── .storybook/
│   │   │   ├── main.ts
│   │   │   ├── preview-head.html
│   │   │   └── preview.ts
│   │   ├── 6.0 - breaking changes.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __mocks__/
│   │   │   ├── day-calendar.jsx
│   │   │   ├── list.jsx
│   │   │   └── month-calendar.jsx
│   │   ├── custom.d.ts
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── screenshots.config.json
│   │   ├── src/
│   │   │   ├── AboutDialog/
│   │   │   │   ├── AboutDialog.component.jsx
│   │   │   │   ├── AboutDialog.module.css
│   │   │   │   ├── AboutDialog.test.jsx
│   │   │   │   ├── AboutDialogTable.component.jsx
│   │   │   │   ├── AboutModal.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionBar/
│   │   │   │   ├── ActionBar.component.jsx
│   │   │   │   ├── ActionBar.module.css
│   │   │   │   ├── ActionBar.stories.jsx
│   │   │   │   ├── ActionBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionIntercom/
│   │   │   │   ├── Intercom.component.jsx
│   │   │   │   ├── Intercom.component.test.jsx
│   │   │   │   ├── Intercom.module.css
│   │   │   │   ├── Intercom.service.jsx
│   │   │   │   ├── Intercom.service.test.jsx
│   │   │   │   ├── Intercom.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionList/
│   │   │   │   ├── ActionList.component.jsx
│   │   │   │   ├── ActionList.module.css
│   │   │   │   ├── ActionList.stories.jsx
│   │   │   │   ├── ActionList.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Actions/
│   │   │   │   ├── Action/
│   │   │   │   │   ├── Action.component.jsx
│   │   │   │   │   ├── Action.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionButton/
│   │   │   │   │   ├── ActionButton.component.jsx
│   │   │   │   │   ├── ActionButton.module.css
│   │   │   │   │   ├── ActionButton.test.jsx
│   │   │   │   │   ├── Button.stories.jsx
│   │   │   │   │   ├── Button.stories.module.css
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionDropdown/
│   │   │   │   │   ├── ActionDropdown.component.jsx
│   │   │   │   │   ├── ActionDropdown.component.md
│   │   │   │   │   ├── ActionDropdown.module.css
│   │   │   │   │   ├── ActionDropdown.snapshot.test.jsx
│   │   │   │   │   ├── ActionDropdown.test.jsx
│   │   │   │   │   ├── Dropdown.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionFile/
│   │   │   │   │   ├── ActionFile.component.jsx
│   │   │   │   │   ├── ActionFile.module.css
│   │   │   │   │   ├── ActionFile.test.jsx
│   │   │   │   │   ├── File.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionIconToggle/
│   │   │   │   │   ├── ActionIconToggle.component.jsx
│   │   │   │   │   ├── ActionIconToggle.component.test.jsx
│   │   │   │   │   ├── ActionIconToggle.module.css
│   │   │   │   │   ├── IconToggle.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionSplitDropdown/
│   │   │   │   │   ├── ActionSplitDropdown.component.jsx
│   │   │   │   │   ├── ActionSplitDropdown.module.css
│   │   │   │   │   ├── ActionSplitDropdown.test.jsx
│   │   │   │   │   ├── SplitDropdown.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── Actions.component.jsx
│   │   │   │   ├── Actions.test.jsx
│   │   │   │   ├── ButtonGroup.stories.jsx
│   │   │   │   ├── index.js
│   │   │   │   ├── wrapOnClick.js
│   │   │   │   └── wrapOnClick.test.js
│   │   │   ├── AppGuidedTour/
│   │   │   │   ├── AppGuidedTour.component.jsx
│   │   │   │   ├── AppGuidedTour.stories.jsx
│   │   │   │   ├── AppGuidedTour.test.jsx
│   │   │   │   ├── DemoContentStep.component.jsx
│   │   │   │   ├── DemoContentStep.component.test.jsx
│   │   │   │   ├── DemoContentStep.module.css
│   │   │   │   └── index.js
│   │   │   ├── AppLoader/
│   │   │   │   ├── AppLoader.component.jsx
│   │   │   │   ├── AppLoader.md
│   │   │   │   ├── AppLoader.stories.jsx
│   │   │   │   ├── AppLoader.test.jsx
│   │   │   │   ├── constant.js
│   │   │   │   └── index.js
│   │   │   ├── AppSwitcher/
│   │   │   │   ├── AppSwitcher.component.jsx
│   │   │   │   ├── AppSwitcher.component.test.jsx
│   │   │   │   ├── AppSwitcher.module.css
│   │   │   │   └── index.js
│   │   │   ├── Badge/
│   │   │   │   ├── Badge.component.jsx
│   │   │   │   ├── Badge.component.test.jsx
│   │   │   │   ├── Badge.module.css
│   │   │   │   ├── Badge.stories.jsx
│   │   │   │   ├── BadgeComposition/
│   │   │   │   │   ├── BadgeCategory/
│   │   │   │   │   │   ├── BadgeCategory.component.jsx
│   │   │   │   │   │   ├── BadgeCategory.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeDelete/
│   │   │   │   │   │   ├── BadgeDelete.component.jsx
│   │   │   │   │   │   ├── BadgeDelete.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeDropdown/
│   │   │   │   │   │   ├── BadgeDropdown.component.jsx
│   │   │   │   │   │   ├── BadgeDropdown.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeIcon/
│   │   │   │   │   │   ├── BadgeIcon.component.jsx
│   │   │   │   │   │   ├── BadgeIcon.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeIcon.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeIcon.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeLabel/
│   │   │   │   │   │   ├── BadgeLabel.component.jsx
│   │   │   │   │   │   ├── BadgeLabel.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeSeparator/
│   │   │   │   │   │   ├── BadgeSeparator.component.jsx
│   │   │   │   │   │   ├── BadgeSeparator.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeSeparator.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeSeparator.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── Breadcrumbs/
│   │   │   │   ├── Breadcrumbs.component.jsx
│   │   │   │   ├── Breadcrumbs.module.css
│   │   │   │   ├── Breadcrumbs.snapshot.test.jsx
│   │   │   │   ├── Breadcrumbs.stories.jsx
│   │   │   │   ├── Breadcrumbs.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Checkbox/
│   │   │   │   ├── Checkbox.jsx
│   │   │   │   ├── Checkbox.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── CircularProgress/
│   │   │   │   ├── CircularProgress.component.jsx
│   │   │   │   ├── CircularProgress.module.css
│   │   │   │   ├── CircularProgress.test.jsx
│   │   │   │   ├── Spinner.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── CollapsiblePanel/
│   │   │   │   ├── CollapsiblePanel.component.jsx
│   │   │   │   ├── CollapsiblePanel.module.css
│   │   │   │   ├── CollapsiblePanel.snapshot.test.jsx
│   │   │   │   ├── CollapsiblePanel.stories.jsx
│   │   │   │   ├── CollapsiblePanel.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ConfirmDialog/
│   │   │   │   ├── ConfirmDialog.component.jsx
│   │   │   │   ├── ConfirmDialog.stories.jsx
│   │   │   │   ├── ConfirmDialog.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── DataViewer/
│   │   │   │   ├── Badges/
│   │   │   │   │   ├── LengthBadge/
│   │   │   │   │   │   ├── LengthBadge.component.jsx
│   │   │   │   │   │   ├── LengthBadge.module.css
│   │   │   │   │   │   ├── LengthBadge.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── LengthBadge.test.js.snap
│   │   │   │   │   │   │   └── LengthBadge.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Core/
│   │   │   │   │   ├── Tree/
│   │   │   │   │   │   ├── Tree.component.jsx
│   │   │   │   │   │   ├── Tree.module.css
│   │   │   │   │   │   ├── Tree.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TreeNode/
│   │   │   │   │   │   ├── TreeNode.component.js
│   │   │   │   │   │   ├── TreeNode.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TreeNodeList/
│   │   │   │   │   │   ├── TreeNodeList.component.jsx
│   │   │   │   │   │   ├── TreeNodeList.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DataViewer.stories.jsx
│   │   │   │   ├── Headers/
│   │   │   │   │   ├── TreeHeader/
│   │   │   │   │   │   ├── TreeHeader.component.jsx
│   │   │   │   │   │   ├── TreeHeader.module.css
│   │   │   │   │   │   ├── TreeHeader.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TreeHeader.test.js.snap
│   │   │   │   │   │   │   └── TreeHeader.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Icons/
│   │   │   │   │   ├── TreeBranchIcon/
│   │   │   │   │   │   ├── TreeBranchIcon.component.jsx
│   │   │   │   │   │   ├── TreeBranchIcon.module.css
│   │   │   │   │   │   ├── TreeBranchIcon.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Managers/
│   │   │   │   │   ├── TreeManager/
│   │   │   │   │   │   ├── TreeManager.container.js
│   │   │   │   │   │   ├── TreeManager.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── ModelViewer/
│   │   │   │   │   ├── Branch/
│   │   │   │   │   │   ├── ModelViewerBranch.component.jsx
│   │   │   │   │   │   ├── ModelViewerBranch.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Leaf/
│   │   │   │   │   │   ├── ModelViewerLeaf.component.jsx
│   │   │   │   │   │   ├── ModelViewerLeaf.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── ModelViewerLeaf.test.js.snap
│   │   │   │   │   │   │   └── ModelViewerLeaf.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ModelViewer.component.jsx
│   │   │   │   │   ├── ModelViewer.component.test.jsx
│   │   │   │   │   ├── ModelViewer.container.jsx
│   │   │   │   │   ├── ModelViewer.container.test.jsx
│   │   │   │   │   ├── ModelViewer.module.css
│   │   │   │   │   ├── ModelViewer.parser.test.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── ModelViewer.component.test.js.snap
│   │   │   │   │   │   ├── ModelViewer.component.test.jsx.snap
│   │   │   │   │   │   ├── ModelViewer.container.test.js.snap
│   │   │   │   │   │   └── ModelViewer.container.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── RecordsViewer/
│   │   │   │   │   ├── Branch/
│   │   │   │   │   │   ├── RecordsViewerBranch.component.jsx
│   │   │   │   │   │   ├── RecordsViewerBranch.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── RecordsViewerBranch.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── CellRenderer/
│   │   │   │   │   │   ├── RecordsCellRenderer.component.jsx
│   │   │   │   │   │   ├── RecordsCellRenderer.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── RecordsCellRenderer.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Leaf/
│   │   │   │   │   │   ├── RecordsViewerLeaf.component.jsx
│   │   │   │   │   │   ├── RecordsViewerLeaf.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── RecordsViewerLeaf.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── RecordsViewer.component.jsx
│   │   │   │   │   ├── RecordsViewer.component.test.jsx
│   │   │   │   │   ├── RecordsViewer.container.jsx
│   │   │   │   │   ├── RecordsViewer.container.test.jsx
│   │   │   │   │   ├── RecordsViewer.module.css
│   │   │   │   │   ├── RecordsViewer.parser.js
│   │   │   │   │   ├── RecordsViewer.parser.test.js
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RecordsViewer.component.test.jsx.snap
│   │   │   │   │   │   ├── RecordsViewer.container.test.js.snap
│   │   │   │   │   │   └── RecordsViewer.container.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Text/
│   │   │   │   │   ├── SimpleTextKeyValue/
│   │   │   │   │   │   ├── DefaultValueRenderer.component.jsx
│   │   │   │   │   │   ├── DefaultValueRenderer.module.css
│   │   │   │   │   │   ├── DefaultValueRenderer.test.jsx
│   │   │   │   │   │   ├── SimpleTextKeyValue.component.jsx
│   │   │   │   │   │   ├── SimpleTextKeyValue.module.css
│   │   │   │   │   │   ├── SimpleTextKeyValue.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SimpleTextKeyValue.test.js.snap
│   │   │   │   │   │   │   └── SimpleTextKeyValue.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Virtualized/
│   │   │   │   │   ├── TreeCellMeasurer/
│   │   │   │   │   │   ├── TreeCellMeasurer.component.jsx
│   │   │   │   │   │   ├── TreeCellMeasurer.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── TreeCellMeasurer.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── VirtualizedTree/
│   │   │   │   │   │   ├── VirtualizedTree.component.jsx
│   │   │   │   │   │   ├── VirtualizedTree.module.css
│   │   │   │   │   │   ├── VirtualizedTree.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── VirtualizedTree.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── index.js
│   │   │   │   ├── jsonPath.js
│   │   │   │   ├── jsonPath.test.js
│   │   │   │   ├── sample.raw.json
│   │   │   │   └── theme.module.css
│   │   │   ├── Datalist/
│   │   │   │   ├── Datalist.component.jsx
│   │   │   │   ├── Datalist.component.test.jsx
│   │   │   │   ├── Datalist.module.css
│   │   │   │   ├── Datalist.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── DateTimePickers/
│   │   │   │   ├── Date/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   ├── Input.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Picker/
│   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   ├── Picker.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── date-extraction.js
│   │   │   │   │   ├── date-extraction.test.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DateRange/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   ├── Input.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Picker/
│   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   ├── Picker.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Picker.component.test.js.snap
│   │   │   │   │   │   │   └── Picker.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── constants.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DateTime/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── datetime-extraction.js
│   │   │   │   │   ├── datetime-extraction.test.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DateTimeRange/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDatePicker/
│   │   │   │   │   ├── DatePicker.stories.jsx
│   │   │   │   │   ├── InputDatePicker.component.jsx
│   │   │   │   │   ├── InputDatePicker.module.css
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDateRangePicker/
│   │   │   │   │   ├── DateRangePicker.stories.jsx
│   │   │   │   │   ├── InputDateRangePicker.component.jsx
│   │   │   │   │   ├── InputDateRangePicker.module.css
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDateTimePicker/
│   │   │   │   │   ├── DateTimePicker.stories.jsx
│   │   │   │   │   ├── InputDateTimePicker.component.jsx
│   │   │   │   │   ├── InputDateTimePicker.component.test.jsx
│   │   │   │   │   ├── InputDateTimePicker.module.css
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── InputDateTimePicker.component.test.js.snap
│   │   │   │   │   │   └── InputDateTimePicker.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDateTimeRangePicker/
│   │   │   │   │   ├── DateTimeRangePicker.stories.jsx
│   │   │   │   │   ├── InputDateTimeRangePicker.component.jsx
│   │   │   │   │   ├── InputDateTimeRangePicker.component.test.jsx
│   │   │   │   │   ├── InputDateTimeRangePicker.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── InputDateTimeRangePicker.component.test.js.snap
│   │   │   │   │   │   └── InputDateTimeRangePicker.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputTimePicker/
│   │   │   │   │   ├── InputTimePicker.component.jsx
│   │   │   │   │   ├── InputTimePicker.component.test.jsx
│   │   │   │   │   ├── InputTimePicker.module.css
│   │   │   │   │   ├── TimePicker.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── LegacyDateTimePickers/
│   │   │   │   │   ├── DateTime/
│   │   │   │   │   │   ├── Context.js
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   │   ├── Input.component.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── Manager/
│   │   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── Picker/
│   │   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   │   ├── Picker.component.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── Validation/
│   │   │   │   │   │   │   ├── Error.component.test.tsx
│   │   │   │   │   │   │   ├── Error.component.tsx
│   │   │   │   │   │   │   ├── Validation.component.jsx
│   │   │   │   │   │   │   ├── Validation.component.test.jsx
│   │   │   │   │   │   │   ├── Validation.module.css
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── constants.js
│   │   │   │   │   │   ├── date-extraction.js
│   │   │   │   │   │   ├── date-extraction.test.js
│   │   │   │   │   │   ├── error-messages.js
│   │   │   │   │   │   ├── error-messages.test.js
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── InputDateTimePicker/
│   │   │   │   │   │   ├── InputDateTimePicker.component.jsx
│   │   │   │   │   │   ├── InputDateTimePicker.component.test.jsx
│   │   │   │   │   │   ├── InputDateTimePicker.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── LegacyDateTimePicker.stories.jsx
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── generator.js
│   │   │   │   │   ├── generator.test.js
│   │   │   │   │   ├── index.js
│   │   │   │   │   ├── pickers/
│   │   │   │   │   │   ├── DatePicker/
│   │   │   │   │   │   │   ├── DatePicker.component.jsx
│   │   │   │   │   │   │   ├── DatePicker.module.css
│   │   │   │   │   │   │   ├── DatePicker.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── DatePicker.test.js.snap
│   │   │   │   │   │   │   │   └── DatePicker.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── DateTimePicker/
│   │   │   │   │   │   │   ├── DateTimePicker.component.jsx
│   │   │   │   │   │   │   ├── DateTimePicker.module.css
│   │   │   │   │   │   │   ├── DateTimePicker.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── MonthPicker/
│   │   │   │   │   │   │   ├── MonthPicker.component.jsx
│   │   │   │   │   │   │   ├── MonthPicker.module.css
│   │   │   │   │   │   │   ├── MonthPicker.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── MonthPicker.test.js.snap
│   │   │   │   │   │   │   │   └── MonthPicker.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── TimePicker/
│   │   │   │   │   │   │   ├── TimePicker.component.jsx
│   │   │   │   │   │   │   ├── TimePicker.md
│   │   │   │   │   │   │   ├── TimePicker.module.css
│   │   │   │   │   │   │   ├── TimePicker.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── TimePicker.test.js.snap
│   │   │   │   │   │   │   │   └── TimePicker.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   └── YearPicker/
│   │   │   │   │   │       ├── YearPicker.component.jsx
│   │   │   │   │   │       ├── YearPicker.md
│   │   │   │   │   │       ├── YearPicker.module.css
│   │   │   │   │   │       ├── YearPicker.test.jsx
│   │   │   │   │   │       ├── __snapshots__/
│   │   │   │   │   │       │   ├── YearPicker.test.js.snap
│   │   │   │   │   │       │   └── YearPicker.test.jsx.snap
│   │   │   │   │   │       └── index.js
│   │   │   │   │   ├── shared/
│   │   │   │   │   │   └── styles/
│   │   │   │   │   │       ├── mixins.scss
│   │   │   │   │   │       └── variables.scss
│   │   │   │   │   └── views/
│   │   │   │   │       ├── DateTimeView/
│   │   │   │   │       │   ├── DateTimeView.component.jsx
│   │   │   │   │       │   ├── DateTimeView.module.css
│   │   │   │   │       │   ├── DateTimeView.test.jsx
│   │   │   │   │       │   ├── __snapshots__/
│   │   │   │   │       │   │   └── DateTimeView.test.jsx.snap
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── HeaderTitle/
│   │   │   │   │       │   ├── HeaderTitle.component.jsx
│   │   │   │   │       │   ├── HeaderTitle.module.css
│   │   │   │   │       │   ├── HeaderTitle.test.jsx
│   │   │   │   │       │   ├── __snapshots__/
│   │   │   │   │       │   │   ├── HeaderTitle.test.js.snap
│   │   │   │   │       │   │   └── HeaderTitle.test.jsx.snap
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── MonthYearView/
│   │   │   │   │       │   ├── MonthYearView.component.jsx
│   │   │   │   │       │   ├── MonthYearView.test.jsx
│   │   │   │   │       │   ├── __snapshots__/
│   │   │   │   │       │   │   ├── MonthYearView.test.js.snap
│   │   │   │   │       │   │   └── MonthYearView.test.jsx.snap
│   │   │   │   │       │   └── index.js
│   │   │   │   │       └── ViewLayout/
│   │   │   │   │           ├── ViewLayout.component.jsx
│   │   │   │   │           ├── ViewLayout.module.css
│   │   │   │   │           ├── ViewLayout.test.jsx
│   │   │   │   │           ├── __snapshots__/
│   │   │   │   │           │   ├── ViewLayout.test.js.snap
│   │   │   │   │           │   └── ViewLayout.test.jsx.snap
│   │   │   │   │           └── index.js
│   │   │   │   ├── README.md
│   │   │   │   ├── Time/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── Manager.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Picker/
│   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── index.js
│   │   │   │   │   ├── time-extraction.js
│   │   │   │   │   └── time-extraction.test.js
│   │   │   │   ├── TimeZone/
│   │   │   │   │   ├── TimeZone.component.jsx
│   │   │   │   │   ├── TimeZone.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── TimeZone.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── generator.js
│   │   │   │   ├── generator.test.js
│   │   │   │   ├── gesture/
│   │   │   │   │   └── timePickerGesture.js
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useInputPickerHandlers.js
│   │   │   │   ├── index.js
│   │   │   │   ├── pickers/
│   │   │   │   │   ├── CalendarPicker/
│   │   │   │   │   │   ├── CalendarPicker.component.jsx
│   │   │   │   │   │   ├── CalendarPicker.module.css
│   │   │   │   │   │   ├── CalendarPicker.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── DatePicker/
│   │   │   │   │   │   ├── DatePicker.component.jsx
│   │   │   │   │   │   ├── DatePicker.module.css
│   │   │   │   │   │   ├── DatePicker.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── DatePicker.test.js.snap
│   │   │   │   │   │   │   └── DatePicker.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── MonthPicker/
│   │   │   │   │   │   ├── MonthPicker.component.jsx
│   │   │   │   │   │   ├── MonthPicker.module.css
│   │   │   │   │   │   ├── MonthPicker.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── MonthPicker.test.js.snap
│   │   │   │   │   │   │   └── MonthPicker.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TimePicker/
│   │   │   │   │   │   ├── TimePicker.component.jsx
│   │   │   │   │   │   ├── TimePicker.component.test.jsx
│   │   │   │   │   │   ├── TimePicker.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TimePicker.component.test.js.snap
│   │   │   │   │   │   │   └── TimePicker.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── YearPicker/
│   │   │   │   │       ├── YearPicker.component.jsx
│   │   │   │   │       ├── YearPicker.md
│   │   │   │   │       ├── YearPicker.module.css
│   │   │   │   │       ├── YearPicker.test.jsx
│   │   │   │   │       ├── __snapshots__/
│   │   │   │   │       │   ├── YearPicker.test.js.snap
│   │   │   │   │       │   └── YearPicker.test.jsx.snap
│   │   │   │   │       └── index.js
│   │   │   │   ├── shared/
│   │   │   │   │   ├── InputSizer/
│   │   │   │   │   │   ├── InputSizer.component.test.jsx
│   │   │   │   │   │   ├── InputSizer.component.tsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── error-messages.js
│   │   │   │   │   └── styles/
│   │   │   │   │       ├── mixins.scss
│   │   │   │   │       └── variables.scss
│   │   │   │   └── views/
│   │   │   │       ├── DateView/
│   │   │   │       │   ├── DateView.component.jsx
│   │   │   │       │   ├── DateView.module.css
│   │   │   │       │   ├── DateView.test.jsx
│   │   │   │       │   ├── __snapshots__/
│   │   │   │       │   │   └── DateView.test.jsx.snap
│   │   │   │       │   └── index.js
│   │   │   │       ├── HeaderTitle/
│   │   │   │       │   ├── HeaderTitle.component.jsx
│   │   │   │       │   ├── HeaderTitle.module.css
│   │   │   │       │   ├── HeaderTitle.test.jsx
│   │   │   │       │   ├── __snapshots__/
│   │   │   │       │   │   └── HeaderTitle.test.jsx.snap
│   │   │   │       │   └── index.js
│   │   │   │       ├── MonthYearView/
│   │   │   │       │   ├── MonthYearView.component.jsx
│   │   │   │       │   ├── MonthYearView.test.jsx
│   │   │   │       │   ├── __snapshots__/
│   │   │   │       │   │   └── MonthYearView.test.jsx.snap
│   │   │   │       │   └── index.js
│   │   │   │       └── ViewLayout/
│   │   │   │           ├── ViewLayout.component.tsx
│   │   │   │           ├── ViewLayout.module.css
│   │   │   │           ├── ViewLayout.test.jsx
│   │   │   │           ├── __snapshots__/
│   │   │   │           │   ├── ViewLayout.test.js.snap
│   │   │   │           │   └── ViewLayout.test.jsx.snap
│   │   │   │           └── index.js
│   │   │   ├── Dialog/
│   │   │   │   ├── Dialog.component.jsx
│   │   │   │   ├── Dialog.css
│   │   │   │   ├── Dialog.stories.jsx
│   │   │   │   ├── Dialog.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Dialog.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Drawer/
│   │   │   │   ├── Drawer.component.jsx
│   │   │   │   ├── Drawer.module.css
│   │   │   │   ├── Drawer.stories.jsx
│   │   │   │   ├── Drawer.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Drawer.test.js.snap
│   │   │   │   │   └── Drawer.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── EditableText/
│   │   │   │   ├── EditableText.component.jsx
│   │   │   │   ├── EditableText.module.css
│   │   │   │   ├── EditableText.stories.jsx
│   │   │   │   ├── EditableText.test.jsx
│   │   │   │   ├── InlineForm.component.jsx
│   │   │   │   ├── InlineForm.component.test.jsx
│   │   │   │   ├── InlineForm.module.css
│   │   │   │   ├── PlainTextTitle.component.test.jsx
│   │   │   │   ├── PlainTextTitle.component.tsx
│   │   │   │   ├── PlainTextTitle.module.css
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── EditableText.test.js.snap
│   │   │   │   │   ├── EditableText.test.jsx.snap
│   │   │   │   │   ├── InlineForm.component.test.js.snap
│   │   │   │   │   ├── InlineForm.component.test.jsx.snap
│   │   │   │   │   ├── PlainTextTitle.component.test.js.snap
│   │   │   │   │   └── PlainTextTitle.component.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Emphasis/
│   │   │   │   ├── Emphasis.component.jsx
│   │   │   │   ├── Emphasis.module.css
│   │   │   │   ├── Emphasis.stories.jsx
│   │   │   │   ├── Emphasis.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Enumeration/
│   │   │   │   ├── Enumeration.component.jsx
│   │   │   │   ├── Enumeration.module.css
│   │   │   │   ├── Enumeration.propTypes.js
│   │   │   │   ├── Enumeration.stories.jsx
│   │   │   │   ├── Enumeration.stories.module.css
│   │   │   │   ├── Enumeration.test.jsx
│   │   │   │   ├── Header/
│   │   │   │   │   ├── Header.component.jsx
│   │   │   │   │   ├── Header.module.css
│   │   │   │   │   ├── Header.propTypes.js
│   │   │   │   │   ├── Header.test.jsx
│   │   │   │   │   ├── HeaderEnumeration.component.jsx
│   │   │   │   │   ├── HeaderInput.component.jsx
│   │   │   │   │   ├── HeaderInput.test.jsx
│   │   │   │   │   ├── HeaderSelected.component.jsx
│   │   │   │   │   └── headerSelected.test.jsx
│   │   │   │   ├── Items/
│   │   │   │   │   ├── EmptyListPlaceholder.component.jsx
│   │   │   │   │   ├── EmptyListPlaceholder.module.css
│   │   │   │   │   ├── Item/
│   │   │   │   │   │   ├── Item.component.jsx
│   │   │   │   │   │   ├── Item.module.css
│   │   │   │   │   │   ├── Item.propTypes.js
│   │   │   │   │   │   ├── Item.test.jsx
│   │   │   │   │   │   ├── ItemEdit.component.jsx
│   │   │   │   │   │   ├── ItemEdit.propTypes.js
│   │   │   │   │   │   ├── ItemEdit.test.jsx
│   │   │   │   │   │   ├── utils.js
│   │   │   │   │   │   └── utils.test.js
│   │   │   │   │   ├── Items.component.jsx
│   │   │   │   │   ├── Items.module.css
│   │   │   │   │   └── ItemsEnumeration.component.jsx
│   │   │   │   ├── displayModes.js
│   │   │   │   └── index.js
│   │   │   ├── FilterBar/
│   │   │   │   ├── Filter.stories.jsx
│   │   │   │   ├── FilterBar.component.jsx
│   │   │   │   ├── FilterBar.module.css
│   │   │   │   ├── FilterBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── FocusManager/
│   │   │   │   ├── FocusManager.component.jsx
│   │   │   │   ├── FocusManager.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── FormatValue/
│   │   │   │   ├── FormatValue.component.jsx
│   │   │   │   ├── FormatValue.module.css
│   │   │   │   ├── FormatValue.stories.jsx
│   │   │   │   ├── FormatValue.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── FormatValue.test.js.snap
│   │   │   │   │   └── FormatValue.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Gesture/
│   │   │   │   └── index.ts
│   │   │   ├── GridLayout/
│   │   │   │   ├── Dashboard.stories.jsx
│   │   │   │   ├── Grid.component.jsx
│   │   │   │   ├── Grid.component.test.jsx
│   │   │   │   ├── Grid.module.css
│   │   │   │   ├── Tile/
│   │   │   │   │   ├── Body/
│   │   │   │   │   │   ├── TileBody.component.test.tsx
│   │   │   │   │   │   ├── TileBody.component.tsx
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── TileBody.component.test.tsx.snap
│   │   │   │   │   ├── Footer/
│   │   │   │   │   │   ├── TileFooter.component.test.tsx
│   │   │   │   │   │   ├── TileFooter.component.tsx
│   │   │   │   │   │   ├── TileFooter.module.css
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── TileFooter.component.test.tsx.snap
│   │   │   │   │   ├── Header/
│   │   │   │   │   │   ├── TileHeader.component.test.tsx
│   │   │   │   │   │   ├── TileHeader.component.tsx
│   │   │   │   │   │   ├── TileHeader.module.css
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── TileHeader.component.test.tsx.snap
│   │   │   │   │   ├── Skeleton/
│   │   │   │   │   │   ├── SkeletonTile.component.test.tsx
│   │   │   │   │   │   ├── SkeletonTile.component.tsx
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── SkeletonTile.component.test.tsx.snap
│   │   │   │   │   ├── Tile.component.test.tsx
│   │   │   │   │   ├── Tile.component.tsx
│   │   │   │   │   ├── Tile.module.css
│   │   │   │   │   ├── context.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── index.js
│   │   │   ├── GuidedTour/
│   │   │   │   ├── GuidedTour.component.jsx
│   │   │   │   ├── GuidedTour.module.css
│   │   │   │   ├── GuidedTour.stories.jsx
│   │   │   │   ├── GuidedTour.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   └── index.js
│   │   │   ├── HeaderBar/
│   │   │   │   ├── HeaderBar.component.jsx
│   │   │   │   ├── HeaderBar.module.css
│   │   │   │   ├── HeaderBar.stories.jsx
│   │   │   │   ├── HeaderBar.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── HeaderBar.test.js.snap
│   │   │   │   │   └── HeaderBar.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   └── primitives/
│   │   │   │       ├── AppNotification.component.jsx
│   │   │   │       ├── CallToAction.component.jsx
│   │   │   │       ├── Environment.component.jsx
│   │   │   │       ├── GenericAction.component.jsx
│   │   │   │       ├── Help.component.jsx
│   │   │   │       ├── Information.component.jsx
│   │   │   │       ├── Intercom.component.jsx
│   │   │   │       ├── Logo.component.jsx
│   │   │   │       ├── Search.component.jsx
│   │   │   │       └── User.component.jsx
│   │   │   ├── HttpError/
│   │   │   │   ├── HttpError.component.jsx
│   │   │   │   ├── HttpError.module.css
│   │   │   │   ├── HttpError.snapshot.test.jsx
│   │   │   │   ├── HttpError.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── HttpError.snapshot.test.js.snap
│   │   │   │   │   └── HttpError.snapshot.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Icon/
│   │   │   │   └── index.ts
│   │   │   ├── IconsProvider/
│   │   │   │   ├── README.md
│   │   │   │   └── index.ts
│   │   │   ├── Inject/
│   │   │   │   ├── Inject.component.tsx
│   │   │   │   ├── Inject.md
│   │   │   │   ├── Inject.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Inject.test.jsx.snap
│   │   │   │   └── index.ts
│   │   │   ├── JSONSchemaRenderer/
│   │   │   │   ├── JSONSchemaRenderer.component.jsx
│   │   │   │   ├── JSONSchemaRenderer.module.css
│   │   │   │   ├── JSONSchemaRenderer.stories.jsx
│   │   │   │   ├── JSONSchemaRenderer.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── JSONSchemaRenderer.test.js.snap
│   │   │   │   │   └── JSONSchemaRenderer.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Layout/
│   │   │   │   ├── AppLayout.stories.jsx
│   │   │   │   ├── Layout.component.jsx
│   │   │   │   ├── Layout.md
│   │   │   │   ├── Layout.module.css
│   │   │   │   ├── Layout.test.jsx
│   │   │   │   ├── OneColumn/
│   │   │   │   │   ├── OneColumn.component.jsx
│   │   │   │   │   ├── OneColumn.module.css
│   │   │   │   │   ├── OneColumn.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── OneColumn.test.js.snap
│   │   │   │   │   │   └── OneColumn.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── SkipLinks/
│   │   │   │   │   ├── SkipLinks.component.tsx
│   │   │   │   │   ├── SkipLinks.module.css
│   │   │   │   │   ├── SkipLinks.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── SkipLinks.test.js.snap
│   │   │   │   │   │   └── SkipLinks.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── TwoColumns/
│   │   │   │   │   ├── TwoColumns.component.jsx
│   │   │   │   │   ├── TwoColumns.module.css
│   │   │   │   │   ├── TwoColumns.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── TwoColumns.test.js.snap
│   │   │   │   │   │   └── TwoColumns.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── Link/
│   │   │   │   └── index.ts
│   │   │   ├── List/
│   │   │   │   ├── List.component.jsx
│   │   │   │   ├── List.md
│   │   │   │   ├── List.module.css
│   │   │   │   ├── List.stories.jsx
│   │   │   │   ├── List.test.jsx
│   │   │   │   ├── ListComposition/
│   │   │   │   │   ├── ColumnChooser/
│   │   │   │   │   │   ├── ColumnChooser.component.jsx
│   │   │   │   │   │   ├── ColumnChooser.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── DisplayMode/
│   │   │   │   │   │   ├── DisplayModeToggle.scss
│   │   │   │   │   │   ├── ListDisplayMode.component.jsx
│   │   │   │   │   │   ├── ListDisplayMode.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── ListDisplayMode.component.test.js.snap
│   │   │   │   │   │   │   └── ListDisplayMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ItemsNumber/
│   │   │   │   │   │   ├── ItemsNumber.component.jsx
│   │   │   │   │   │   ├── ItemsNumber.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── LazyLoadingList/
│   │   │   │   │   │   ├── LazyLoadingList.component.jsx
│   │   │   │   │   │   ├── LazyLoadingList.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── LazyLoadingList.component.test.js.snap
│   │   │   │   │   │   │   └── LazyLoadingList.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── List.module.css
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── ListManager.component.jsx
│   │   │   │   │   │   ├── ListManager.component.test.jsx
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── useCollectionActions.hook.js
│   │   │   │   │   │   │   ├── useCollectionActions.hook.test.jsx
│   │   │   │   │   │   │   ├── useCollectionFilter.hook.js
│   │   │   │   │   │   │   ├── useCollectionFilter.hook.test.jsx
│   │   │   │   │   │   │   ├── useCollectionSelection.hook.js
│   │   │   │   │   │   │   ├── useCollectionSelection.hook.test.jsx
│   │   │   │   │   │   │   ├── useCollectionSort.hook.js
│   │   │   │   │   │   │   ├── useCollectionSort.hook.test.jsx
│   │   │   │   │   │   │   ├── useColumnsVisibility.hook.js
│   │   │   │   │   │   │   └── useColumnsVisibility.hook.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── SortBy/
│   │   │   │   │   │   ├── SortBy.component.jsx
│   │   │   │   │   │   ├── SortBy.component.test.jsx
│   │   │   │   │   │   ├── SortBy.md
│   │   │   │   │   │   ├── SortBy.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SortBy.component.test.js.snap
│   │   │   │   │   │   │   └── SortBy.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TextFilter/
│   │   │   │   │   │   ├── TextFilter.component.jsx
│   │   │   │   │   │   ├── TextFilter.component.md
│   │   │   │   │   │   ├── TextFilter.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TextFilter.component.test.js.snap
│   │   │   │   │   │   │   └── TextFilter.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toolbar/
│   │   │   │   │   │   ├── ListToolbar.component.jsx
│   │   │   │   │   │   ├── ListToolbar.component.test.jsx
│   │   │   │   │   │   ├── ListToolbar.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── ListToolbar.component.test.js.snap
│   │   │   │   │   │   │   └── ListToolbar.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── VList/
│   │   │   │   │   │   ├── VList.component.jsx
│   │   │   │   │   │   ├── VList.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── collection.js
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── context.js
│   │   │   │   │   ├── context.test.jsx
│   │   │   │   │   ├── doc/
│   │   │   │   │   │   ├── developer-guide.md
│   │   │   │   │   │   └── principle.md
│   │   │   │   │   └── index.js
│   │   │   │   ├── ListComposition.stories.jsx
│   │   │   │   ├── ListToVirtualizedList/
│   │   │   │   │   ├── ListToVirtualizedList.component.jsx
│   │   │   │   │   ├── ListToVirtualizedList.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── Toolbar/
│   │   │   │   │   ├── ColumnChooserButton/
│   │   │   │   │   │   ├── ColumnChooser/
│   │   │   │   │   │   │   ├── ColumnChooser.component.jsx
│   │   │   │   │   │   │   ├── ColumnChooser.component.test.jsx
│   │   │   │   │   │   │   ├── ColumnChooser.module.css
│   │   │   │   │   │   │   ├── ColumnChooser.stories.jsx
│   │   │   │   │   │   │   ├── ColumnChooserBody/
│   │   │   │   │   │   │   │   ├── ColumnChooserBody.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserBody.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserBody.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserBody.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserFooter/
│   │   │   │   │   │   │   │   ├── ColumnChooserFooter.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserFooter.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserFooter.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserFooter.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserHeader/
│   │   │   │   │   │   │   │   ├── ColumnChooserHeader.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserHeader.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserHeader.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserHeader.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserRow/
│   │   │   │   │   │   │   │   ├── ColumnChooserRow.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserRow.component.test.jsx
│   │   │   │   │   │   │   │   ├── RowCheckbox/
│   │   │   │   │   │   │   │   │   ├── RowCheckbox.component.jsx
│   │   │   │   │   │   │   │   │   ├── RowCheckbox.component.test.jsx
│   │   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   │   ├── RowCheckbox.component.test.js.snap
│   │   │   │   │   │   │   │   │   │   └── RowCheckbox.component.test.jsx.snap
│   │   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   │   ├── RowLabel/
│   │   │   │   │   │   │   │   │   ├── RowLabel.component.jsx
│   │   │   │   │   │   │   │   │   ├── RowLabel.component.test.jsx
│   │   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   │   ├── RowLabel.component.test.js.snap
│   │   │   │   │   │   │   │   │   │   └── RowLabel.component.test.jsx.snap
│   │   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserRow.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserRow.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserTable/
│   │   │   │   │   │   │   │   ├── ColumnChooserTable.component.jsx
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox/
│   │   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox.component.jsx
│   │   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── SelectAllColumnsCheckbox.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── ColumnChooser.component.test.js.snap
│   │   │   │   │   │   │   │   └── ColumnChooser.component.test.jsx.snap
│   │   │   │   │   │   │   ├── columnChooser.context.js
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── ColumnChooserButton.component.jsx
│   │   │   │   │   │   ├── ColumnChooserButton.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── columnChooser.propTypes.js
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── columnChooserManager.hook.js
│   │   │   │   │   │   │   ├── columnChooserManager.hook.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── service/
│   │   │   │   │   │       ├── columnChooser.utils.js
│   │   │   │   │   │       ├── columnChooser.utils.test.js
│   │   │   │   │   │       └── index.js
│   │   │   │   │   ├── DisplayModeToggle/
│   │   │   │   │   │   ├── DisplayModeToggle.component.jsx
│   │   │   │   │   │   ├── DisplayModeToggle.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── DisplayModeToggle.test.js.snap
│   │   │   │   │   │   │   └── DisplayModeToggle.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ItemsNumber/
│   │   │   │   │   │   ├── ItemsNumber.component.jsx
│   │   │   │   │   │   ├── ItemsNumber.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Label/
│   │   │   │   │   │   ├── Label.component.jsx
│   │   │   │   │   │   ├── Label.snapshot.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Label.snapshot.test.js.snap
│   │   │   │   │   │   │   └── Label.snapshot.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Pagination/
│   │   │   │   │   │   ├── Pagination.component.jsx
│   │   │   │   │   │   ├── Pagination.module.css
│   │   │   │   │   │   ├── Pagination.snapshot.test.jsx
│   │   │   │   │   │   ├── Pagination.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Pagination.snapshot.test.js.snap
│   │   │   │   │   │   │   └── Pagination.snapshot.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── SelectAll/
│   │   │   │   │   │   ├── SelectAll.component.jsx
│   │   │   │   │   │   ├── SelectAll.component.test.jsx
│   │   │   │   │   │   ├── SelectAll.module.css
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── SelectSortBy/
│   │   │   │   │   │   ├── SelectSortBy.component.jsx
│   │   │   │   │   │   ├── SelectSortBy.module.css
│   │   │   │   │   │   ├── SelectSortBy.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SelectSortBy.test.js.snap
│   │   │   │   │   │   │   └── SelectSortBy.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toolbar.component.jsx
│   │   │   │   │   ├── Toolbar.module.css
│   │   │   │   │   ├── Toolbar.snapshot.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Toolbar.snapshot.test.js.snap
│   │   │   │   │   │   └── Toolbar.snapshot.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── List.test.js.snap
│   │   │   │   │   └── List.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ListView/
│   │   │   │   ├── Header/
│   │   │   │   │   ├── Header.component.jsx
│   │   │   │   │   ├── Header.module.css
│   │   │   │   │   ├── Header.test.jsx
│   │   │   │   │   ├── HeaderInput.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Header.test.js.snap
│   │   │   │   │   │   └── Header.test.jsx.snap
│   │   │   │   │   └── headerInput.test.jsx
│   │   │   │   ├── Items/
│   │   │   │   │   ├── Item/
│   │   │   │   │   │   ├── Item.component.jsx
│   │   │   │   │   │   ├── Item.propTypes.js
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── item.snapshot.test.js.snap
│   │   │   │   │   │   │   └── item.snapshot.test.jsx.snap
│   │   │   │   │   │   └── item.snapshot.test.jsx
│   │   │   │   │   ├── Items.component.jsx
│   │   │   │   │   ├── Items.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── items.test.js.snap
│   │   │   │   │   │   └── items.test.jsx.snap
│   │   │   │   │   └── items.test.jsx
│   │   │   │   ├── ListView.component.jsx
│   │   │   │   ├── ListView.module.css
│   │   │   │   ├── ListView.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── Loader/
│   │   │   │   ├── Loader.component.jsx
│   │   │   │   ├── Loader.md
│   │   │   │   ├── Loader.module.css
│   │   │   │   ├── Loader.stories.jsx
│   │   │   │   ├── Loader.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Loader.test.js.snap
│   │   │   │   │   └── Loader.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── MultiSelect/
│   │   │   │   ├── Dropdown.container.jsx
│   │   │   │   ├── Dropdown.module.css
│   │   │   │   ├── ItemOption.component.jsx
│   │   │   │   ├── ItemOption.module.css
│   │   │   │   ├── ItemView.component.jsx
│   │   │   │   ├── MultiSelect.container.jsx
│   │   │   │   ├── MultiSelect.module.css
│   │   │   │   ├── MultiSelect.stories.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── constants.js
│   │   │   │   └── index.js
│   │   │   ├── Notification/
│   │   │   │   ├── Notification.component.jsx
│   │   │   │   ├── Notification.module.css
│   │   │   │   ├── Notification.stories.jsx
│   │   │   │   ├── Notification.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ObjectViewer/
│   │   │   │   ├── DataTreeViewer.stories.jsx
│   │   │   │   ├── JSONLike/
│   │   │   │   │   ├── JSONLike.component.jsx
│   │   │   │   │   ├── JSONLike.module.css
│   │   │   │   │   ├── JSONLike.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── List/
│   │   │   │   │   ├── List.component.jsx
│   │   │   │   │   ├── List.module.css
│   │   │   │   │   ├── List.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── List.test.js.snap
│   │   │   │   │   │   └── List.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ObjectViewer.component.jsx
│   │   │   │   ├── ObjectViewer.test.jsx
│   │   │   │   ├── Table/
│   │   │   │   │   ├── Table.component.jsx
│   │   │   │   │   ├── Table.module.css
│   │   │   │   │   ├── Table.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Table.test.js.snap
│   │   │   │   │   │   └── Table.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── convertDate.js
│   │   │   │   ├── index.js
│   │   │   │   ├── toflat.js
│   │   │   │   └── toflat.test.js
│   │   │   ├── OverlayTrigger/
│   │   │   │   ├── OverlayTrigger.component.jsx
│   │   │   │   ├── OverlayTrigger.forked.jsx
│   │   │   │   ├── OverlayTrigger.module.css
│   │   │   │   ├── OverlayTrigger.test.jsx
│   │   │   │   ├── index.js
│   │   │   │   ├── overlay.js
│   │   │   │   └── overlay.test.js
│   │   │   ├── PieChart/
│   │   │   │   ├── PieChart.component.jsx
│   │   │   │   ├── PieChart.module.css
│   │   │   │   ├── PieChart.stories.jsx
│   │   │   │   ├── PieChart.test.jsx
│   │   │   │   ├── PieChartButton.component.jsx
│   │   │   │   ├── PieChartButton.test.jsx
│   │   │   │   ├── PieChartIcon.component.jsx
│   │   │   │   ├── PieChartIcon.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── PieChart.test.jsx.snap
│   │   │   │   │   ├── PieChartButton.test.jsx.snap
│   │   │   │   │   ├── PieChartIcon.test.js.snap
│   │   │   │   │   └── PieChartIcon.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Progress/
│   │   │   │   ├── Progress.component.jsx
│   │   │   │   ├── Progress.module.css
│   │   │   │   ├── Progress.test.jsx
│   │   │   │   ├── ProgressBar.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Progress.test.js.snap
│   │   │   │   │   └── Progress.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── QualityBar/
│   │   │   │   ├── QualityBar.component.tsx
│   │   │   │   ├── QualityBar.stories.jsx
│   │   │   │   └── index.ts
│   │   │   ├── RadarChart/
│   │   │   │   ├── RadarChart.component.jsx
│   │   │   │   ├── RadarChart.module.css
│   │   │   │   ├── RadarChart.stories.jsx
│   │   │   │   ├── RadarChart.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── RadarChart.test.js.snap
│   │   │   │   │   └── RadarChart.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── RatioBar/
│   │   │   │   ├── RatioBar.component.tsx
│   │   │   │   ├── RatioBar.stories.jsx
│   │   │   │   └── index.ts
│   │   │   ├── ResourceList/
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── Resource.component.jsx
│   │   │   │   │   ├── Resource.module.css
│   │   │   │   │   ├── Resource.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Resource.test.js.snap
│   │   │   │   │   │   └── Resource.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ResourceList.component.jsx
│   │   │   │   ├── ResourceList.module.css
│   │   │   │   ├── ResourceList.propTypes.js
│   │   │   │   ├── ResourceList.stories.jsx
│   │   │   │   ├── ResourceList.test.jsx
│   │   │   │   ├── Toolbar/
│   │   │   │   │   ├── NameFilter/
│   │   │   │   │   │   ├── NameFilter.component.jsx
│   │   │   │   │   │   ├── NameFilter.module.css
│   │   │   │   │   │   ├── NameFilter.snap.test.jsx
│   │   │   │   │   │   ├── NameFilter.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── NameFilter.snap.test.js.snap
│   │   │   │   │   │   │   └── NameFilter.snap.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── SortOptions/
│   │   │   │   │   │   ├── OrderChooser/
│   │   │   │   │   │   │   ├── OrderChooser.component.jsx
│   │   │   │   │   │   │   ├── OrderChooser.module.css
│   │   │   │   │   │   │   ├── OrderChooser.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── OrderChooser.test.js.snap
│   │   │   │   │   │   │   │   └── OrderChooser.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── SortOptions.component.jsx
│   │   │   │   │   │   ├── SortOptions.module.css
│   │   │   │   │   │   ├── SortOptions.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SortOptions.test.js.snap
│   │   │   │   │   │   │   └── SortOptions.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── StateFilter/
│   │   │   │   │   │   ├── StateFilter.component.jsx
│   │   │   │   │   │   ├── StateFilter.module.css
│   │   │   │   │   │   ├── StateFilter.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── StateFilter.test.js.snap
│   │   │   │   │   │   │   └── StateFilter.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toolbar.component.jsx
│   │   │   │   │   ├── Toolbar.module.css
│   │   │   │   │   ├── Toolbar.snap.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Toolbar.snap.test.js.snap
│   │   │   │   │   │   └── Toolbar.snap.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── ResourcePicker/
│   │   │   │   ├── ResourcePicker.component.jsx
│   │   │   │   ├── ResourcePicker.module.css
│   │   │   │   ├── ResourcePicker.stories.jsx
│   │   │   │   ├── ResourcePicker.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ResourcePicker.test.js.snap
│   │   │   │   │   └── ResourcePicker.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Rich/
│   │   │   │   ├── Error/
│   │   │   │   │   ├── RichError.component.jsx
│   │   │   │   │   ├── RichError.component.test.jsx
│   │   │   │   │   ├── RichError.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RichError.component.test.js.snap
│   │   │   │   │   │   └── RichError.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── HeaderTitle/
│   │   │   │   │   ├── HeaderTitle.component.jsx
│   │   │   │   │   ├── HeaderTitle.component.test.jsx
│   │   │   │   │   ├── HeaderTitle.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderTitle.component.test.js.snap
│   │   │   │   │   │   └── HeaderTitle.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Layout/
│   │   │   │   │   ├── RichLayout.component.jsx
│   │   │   │   │   ├── RichLayout.module.css
│   │   │   │   │   ├── RichLayout.stories.jsx
│   │   │   │   │   ├── RichLayout.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RichLayout.test.js.snap
│   │   │   │   │   │   └── RichLayout.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── SidePanel/
│   │   │   │   ├── SidePanel.component.jsx
│   │   │   │   ├── SidePanel.module.css
│   │   │   │   ├── SidePanel.stories.jsx
│   │   │   │   ├── SidePanel.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SidePanel.test.js.snap
│   │   │   │   │   └── SidePanel.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Skeleton/
│   │   │   │   ├── Skeleton.component.tsx
│   │   │   │   ├── Skeleton.md
│   │   │   │   ├── Skeleton.module.css
│   │   │   │   ├── Skeleton.stories.jsx
│   │   │   │   ├── Skeleton.test.jsx
│   │   │   │   └── index.ts
│   │   │   ├── Slider/
│   │   │   │   ├── Slider.component.tsx
│   │   │   │   ├── Slider.module.css
│   │   │   │   ├── Slider.stories.jsx
│   │   │   │   ├── Slider.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Slider.test.tsx.snap
│   │   │   │   └── index.ts
│   │   │   ├── Status/
│   │   │   │   ├── Status.component.jsx
│   │   │   │   ├── Status.module.css
│   │   │   │   ├── Status.stories.jsx
│   │   │   │   ├── Status.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Status.test.js.snap
│   │   │   │   │   └── Status.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Stepper/
│   │   │   │   ├── Stepper.component.jsx
│   │   │   │   ├── Stepper.component.module.css
│   │   │   │   ├── Stepper.component.test.jsx
│   │   │   │   ├── Stepper.stories.jsx
│   │   │   │   ├── StepperTransition.component.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Stepper.component.test.js.snap
│   │   │   │   │   └── Stepper.component.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── SubHeaderBar/
│   │   │   │   ├── SubHeader.stories.jsx
│   │   │   │   ├── SubHeaderBar.component.jsx
│   │   │   │   ├── SubHeaderBar.md
│   │   │   │   ├── SubHeaderBar.module.css
│   │   │   │   ├── SubHeaderBar.test.jsx
│   │   │   │   ├── TitleSubHeader/
│   │   │   │   │   ├── SubTitle.component.jsx
│   │   │   │   │   ├── SubTitle.test.jsx
│   │   │   │   │   ├── TitleSubHeader.component.jsx
│   │   │   │   │   ├── TitleSubHeader.module.css
│   │   │   │   │   ├── TitleSubHeader.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── SubTitle.test.js.snap
│   │   │   │   │   │   ├── SubTitle.test.jsx.snap
│   │   │   │   │   │   ├── TitleSubHeader.test.js.snap
│   │   │   │   │   │   └── TitleSubHeader.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SubHeaderBar.test.js.snap
│   │   │   │   │   └── SubHeaderBar.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── TabBar/
│   │   │   │   ├── TabBar.component.jsx
│   │   │   │   ├── TabBar.module.css
│   │   │   │   ├── TabBar.test.jsx
│   │   │   │   ├── Tabs.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── Tag/
│   │   │   │   ├── Tag.component.jsx
│   │   │   │   ├── Tag.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Tag.test.js.snap
│   │   │   │   │   └── Tag.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Toggle/
│   │   │   │   ├── LabelToggle/
│   │   │   │   │   ├── LabelToggle.component.jsx
│   │   │   │   │   ├── LabelToggle.module.css
│   │   │   │   │   ├── LabelToggleComponent.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── LabelToggleComponent.test.js.snap
│   │   │   │   │   │   └── LabelToggleComponent.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Toggle.component.jsx
│   │   │   │   ├── Toggle.stories.jsx
│   │   │   │   ├── Toggle.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Toggle.test.js.snap
│   │   │   │   │   └── Toggle.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── TooltipTrigger/
│   │   │   │   ├── Tooltip.stories.jsx
│   │   │   │   ├── TooltipTrigger.component.jsx
│   │   │   │   ├── TooltipTrigger.hook.js
│   │   │   │   ├── TooltipTrigger.module.css
│   │   │   │   ├── TooltipTrigger.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── TreeView/
│   │   │   │   ├── FolderTreeView.stories.jsx
│   │   │   │   ├── TreeView.component.jsx
│   │   │   │   ├── TreeView.module.css
│   │   │   │   ├── TreeView.test.jsx
│   │   │   │   ├── TreeViewItem/
│   │   │   │   │   ├── TreeViewItem.component.jsx
│   │   │   │   │   ├── TreeViewItem.module.css
│   │   │   │   │   ├── TreeViewItem.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── TreeViewItem.test.js.snap
│   │   │   │   │   │   └── TreeViewItem.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── TreeView.test.js.snap
│   │   │   │   │   └── TreeView.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Typeahead/
│   │   │   │   ├── Typeahead.component.jsx
│   │   │   │   ├── Typeahead.component.renderers.jsx
│   │   │   │   ├── Typeahead.module.css
│   │   │   │   ├── Typeahead.snapshot.test.jsx
│   │   │   │   ├── Typeahead.stories.jsx
│   │   │   │   ├── Typeahead.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Typeahead.snapshot.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── VirtualizedList/
│   │   │   │   ├── CellActions/
│   │   │   │   │   ├── ActionsColumn.component.jsx
│   │   │   │   │   ├── CellActions.component.jsx
│   │   │   │   │   ├── CellActions.test.jsx
│   │   │   │   │   ├── RowLargeCellActions.module.css
│   │   │   │   │   ├── RowTableCellActions.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellActions.test.js.snap
│   │   │   │   │   │   └── CellActions.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellBadge/
│   │   │   │   │   ├── BadgeColumn.component.jsx
│   │   │   │   │   ├── CellBadge.component.jsx
│   │   │   │   │   ├── CellBadge.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellBadge.test.js.snap
│   │   │   │   │   │   └── CellBadge.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellBoolean/
│   │   │   │   │   ├── BooleanColumn.component.jsx
│   │   │   │   │   ├── CellBoolean.component.jsx
│   │   │   │   │   ├── CellBoolean.module.css
│   │   │   │   │   ├── CellBoolean.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellCheckbox/
│   │   │   │   │   ├── CellCheckbox.component.jsx
│   │   │   │   │   ├── CellCheckbox.module.css
│   │   │   │   │   ├── CellCheckbox.test.jsx
│   │   │   │   │   ├── CheckboxColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellCheckbox.test.js.snap
│   │   │   │   │   │   └── CellCheckbox.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellDatetime/
│   │   │   │   │   ├── CellDatetime.component.jsx
│   │   │   │   │   ├── CellDatetime.module.css
│   │   │   │   │   ├── CellDatetime.test.jsx
│   │   │   │   │   ├── DatetimeColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── CellDatetime.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellIconText/
│   │   │   │   │   ├── CellIconText.component.jsx
│   │   │   │   │   ├── CellIconText.module.css
│   │   │   │   │   ├── CellIconText.test.jsx
│   │   │   │   │   ├── IconTextColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── CellIconText.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellLabel/
│   │   │   │   │   ├── CellLabel.component.jsx
│   │   │   │   │   ├── CellLabel.test.jsx
│   │   │   │   │   ├── LabelColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellLabel.test.js.snap
│   │   │   │   │   │   └── CellLabel.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellLink/
│   │   │   │   │   ├── CellLink.component.jsx
│   │   │   │   │   ├── CellLink.module.css
│   │   │   │   │   ├── CellLink.test.jsx
│   │   │   │   │   ├── LinkColumn.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellMappedData/
│   │   │   │   │   ├── CellMappedData.component.jsx
│   │   │   │   │   ├── CellMappedData.component.test.jsx
│   │   │   │   │   ├── MappedDataColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellMappedData.component.test.js.snap
│   │   │   │   │   │   └── CellMappedData.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellQualityBar/
│   │   │   │   │   ├── CellQualityBar.component.jsx
│   │   │   │   │   ├── CellQualityBar.test.jsx
│   │   │   │   │   ├── QualityBarColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellQualityBar.test.js.snap
│   │   │   │   │   │   └── CellQualityBar.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellTextIcon/
│   │   │   │   │   ├── CellWithIcon.component.jsx
│   │   │   │   │   ├── CellWithIcon.module.css
│   │   │   │   │   ├── CellWithIcon.test.jsx
│   │   │   │   │   ├── TextIconColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellWithIcon.test.js.snap
│   │   │   │   │   │   └── CellWithIcon.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellTitle/
│   │   │   │   │   ├── CellTitle.component.jsx
│   │   │   │   │   ├── CellTitle.module.css
│   │   │   │   │   ├── CellTitle.test.jsx
│   │   │   │   │   ├── CellTitleActions.component.jsx
│   │   │   │   │   ├── CellTitleActions.module.css
│   │   │   │   │   ├── CellTitleActions.test.jsx
│   │   │   │   │   ├── CellTitleInput.component.jsx
│   │   │   │   │   ├── CellTitleInput.test.jsx
│   │   │   │   │   ├── CellTitleSelector.component.jsx
│   │   │   │   │   ├── CellTitleSelector.test.jsx
│   │   │   │   │   ├── TitleColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellTitle.test.jsx.snap
│   │   │   │   │   │   ├── CellTitleInput.test.js.snap
│   │   │   │   │   │   ├── CellTitleInput.test.jsx.snap
│   │   │   │   │   │   ├── CellTitleSelector.test.js.snap
│   │   │   │   │   │   └── CellTitleSelector.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Content.component.jsx
│   │   │   │   ├── Content.component.test.jsx
│   │   │   │   ├── HeaderCheckbox/
│   │   │   │   │   ├── HeaderCheckbox.component.jsx
│   │   │   │   │   ├── HeaderCheckbox.module.css
│   │   │   │   │   ├── HeaderCheckbox.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderCheckbox.test.js.snap
│   │   │   │   │   │   └── HeaderCheckbox.test.jsx.snap
│   │   │   │   │   └── index.jsx
│   │   │   │   ├── HeaderIcon/
│   │   │   │   │   ├── HeaderIcon.component.jsx
│   │   │   │   │   ├── HeaderIcon.component.test.jsx
│   │   │   │   │   ├── HeaderIcon.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderIcon.component.test.js.snap
│   │   │   │   │   │   └── HeaderIcon.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── HeaderResizable/
│   │   │   │   │   ├── HeaderResizable.component.jsx
│   │   │   │   │   ├── HeaderResizable.component.test.jsx
│   │   │   │   │   ├── HeaderResizable.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderResizable.component.test.js.snap
│   │   │   │   │   │   └── HeaderResizable.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ListGrid/
│   │   │   │   │   ├── ListGrid.component.jsx
│   │   │   │   │   ├── ListGrid.module.css
│   │   │   │   │   ├── ListGrid.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── ListGrid.test.js.snap
│   │   │   │   │   │   └── ListGrid.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ListTable/
│   │   │   │   │   ├── ListTable.component.jsx
│   │   │   │   │   ├── ListTable.module.css
│   │   │   │   │   ├── ListTable.test.jsx
│   │   │   │   │   ├── RowThemes.js
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── ListTable.test.js.snap
│   │   │   │   │   │   └── ListTable.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── NoRows/
│   │   │   │   │   ├── NoRows.component.jsx
│   │   │   │   │   ├── NoRows.module.css
│   │   │   │   │   ├── NoRows.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── NoRows.test.js.snap
│   │   │   │   │   │   └── NoRows.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── PropTypes.js
│   │   │   │   ├── README.md
│   │   │   │   ├── RendererSelector.component.jsx
│   │   │   │   ├── RendererSelector.test.jsx
│   │   │   │   ├── RowCollapsiblePanel/
│   │   │   │   │   ├── RowCollapsiblePanel.component.jsx
│   │   │   │   │   ├── RowCollapsiblePanel.module.css
│   │   │   │   │   ├── RowCollapsiblePanel.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RowCollapsiblePanel.test.js.snap
│   │   │   │   │   │   └── RowCollapsiblePanel.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── RowLarge/
│   │   │   │   │   ├── RowLarge.component.jsx
│   │   │   │   │   ├── RowLarge.module.css
│   │   │   │   │   ├── RowLarge.test.jsx
│   │   │   │   │   ├── RowThemes.js
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RowLarge.test.js.snap
│   │   │   │   │   │   └── RowLarge.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── RowSelection/
│   │   │   │   │   ├── RowSelection.component.jsx
│   │   │   │   │   ├── RowSelection.module.css
│   │   │   │   │   ├── RowSelection.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RowSelection.test.js.snap
│   │   │   │   │   │   └── RowSelection.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── VirtualizedList.component.jsx
│   │   │   │   ├── VirtualizedList.module.css
│   │   │   │   ├── VirtualizedList.stories.jsx
│   │   │   │   ├── VirtualizedList.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Content.component.test.js.snap
│   │   │   │   │   ├── Content.component.test.jsx.snap
│   │   │   │   │   ├── RendererSelector.test.js.snap
│   │   │   │   │   ├── RendererSelector.test.jsx.snap
│   │   │   │   │   └── VirtualizedList.test.jsx.snap
│   │   │   │   ├── collection.js
│   │   │   │   ├── event/
│   │   │   │   │   ├── rowclick.js
│   │   │   │   │   └── rowclick.test.js
│   │   │   │   ├── index.js
│   │   │   │   ├── utils/
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── gridrow.test.jsx.snap
│   │   │   │   │   │   ├── tablerow.test.js.snap
│   │   │   │   │   │   └── tablerow.test.jsx.snap
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── dictionary.js
│   │   │   │   │   ├── gridrow.js
│   │   │   │   │   ├── gridrow.test.jsx
│   │   │   │   │   ├── resizable.js
│   │   │   │   │   ├── resizable.test.js
│   │   │   │   │   ├── tablerow.jsx
│   │   │   │   │   └── tablerow.test.jsx
│   │   │   │   └── virtualizedListContext.jsx
│   │   │   ├── WithDrawer/
│   │   │   │   ├── WithDrawer.component.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── withDrawer.test.js.snap
│   │   │   │   │   └── withDrawer.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   ├── withDrawer.module.css
│   │   │   │   └── withDrawer.test.jsx
│   │   │   ├── constants.js
│   │   │   ├── i18n/
│   │   │   │   ├── DateFnsLocale/
│   │   │   │   │   ├── formatters.js
│   │   │   │   │   ├── locale.js
│   │   │   │   │   └── locale.test.js
│   │   │   │   └── index.js
│   │   │   ├── index.js
│   │   │   ├── polyfills/
│   │   │   │   └── element-closest.js
│   │   │   ├── test-setup.js
│   │   │   ├── theme.test.ts
│   │   │   ├── theme.ts
│   │   │   ├── translate.js
│   │   │   ├── translate.test.js
│   │   │   ├── utils/
│   │   │   │   ├── getPropsFrom.js
│   │   │   │   ├── getPropsFrom.test.js
│   │   │   │   ├── getTabBarBadgeLabel.js
│   │   │   │   └── getTabBarBadgeLabel.test.js
│   │   │   ├── wrap.test.tsx
│   │   │   └── wrap.tsx
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── talend-scripts.json
│   │   ├── test/
│   │   │   └── storageMock.js
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── containers/
│   │   ├── .babelrc.json
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .storybook/
│   │   │   ├── cmf.jsx
│   │   │   ├── cmfModule/
│   │   │   │   ├── actionCreators.js
│   │   │   │   ├── components.js
│   │   │   │   ├── expressions.js
│   │   │   │   ├── index.js
│   │   │   │   ├── reducers.js
│   │   │   │   ├── registry.js
│   │   │   │   ├── sagas.js
│   │   │   │   └── settings.js
│   │   │   ├── main.mjs
│   │   │   ├── preview-head.html
│   │   │   └── preview.jsx
│   │   ├── 6.0 - breaking changes.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs.json
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── AboutDialog/
│   │   │   │   ├── AboutDialog.connect.js
│   │   │   │   ├── AboutDialog.constant.js
│   │   │   │   ├── AboutDialog.container.jsx
│   │   │   │   ├── AboutDialog.sagas.js
│   │   │   │   ├── AboutDialog.sagas.test.jsx
│   │   │   │   ├── AboutDialog.stories.jsx
│   │   │   │   ├── AboutDialog.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Action/
│   │   │   │   ├── Action.connect.js
│   │   │   │   ├── Action.stories.jsx
│   │   │   │   ├── Action.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Action.test.js.snap
│   │   │   │   │   └── Action.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionBar/
│   │   │   │   ├── ActionBar.connect.js
│   │   │   │   ├── ActionBar.stories.jsx
│   │   │   │   ├── ActionBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionButton/
│   │   │   │   ├── ActionButton.connect.jsx
│   │   │   │   ├── ActionButton.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionButton.test.js.snap
│   │   │   │   │   └── ActionButton.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionDropdown/
│   │   │   │   ├── ActionDropdown.connect.jsx
│   │   │   │   ├── ActionDropdown.connect.md
│   │   │   │   ├── ActionDropdown.stories.jsx
│   │   │   │   ├── ActionDropdown.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionDropdown.test.js.snap
│   │   │   │   │   └── ActionDropdown.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionFile/
│   │   │   │   ├── ActionFile.connect.jsx
│   │   │   │   ├── ActionFile.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionFile.test.js.snap
│   │   │   │   │   └── ActionFile.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionIconToggle/
│   │   │   │   ├── ActionIconToggle.connect.jsx
│   │   │   │   ├── ActionIconToggle.connect.md
│   │   │   │   ├── ActionIconToggle.stories.jsx
│   │   │   │   ├── ActionIconToggle.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionIconToggle.test.js.snap
│   │   │   │   │   └── ActionIconToggle.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionSplitDropdown/
│   │   │   │   ├── ActionSplitDropdown.connect.jsx
│   │   │   │   ├── ActionSplitDropdown.stories.jsx
│   │   │   │   ├── ActionSplitDropdown.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionSplitDropdown.test.js.snap
│   │   │   │   │   └── ActionSplitDropdown.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Actions/
│   │   │   │   ├── Actions.connect.js
│   │   │   │   ├── Actions.stories.jsx
│   │   │   │   ├── Actions.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Actions.test.js.snap
│   │   │   │   │   └── Actions.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── AppLoader/
│   │   │   │   ├── AppLoader.connect.jsx
│   │   │   │   ├── AppLoader.connect.test.jsx
│   │   │   │   ├── AppLoader.md
│   │   │   │   ├── AppLoader.saga.js
│   │   │   │   ├── AppLoader.saga.test.jsx
│   │   │   │   ├── AppLoader.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── Badge/
│   │   │   │   ├── Badge.component.js
│   │   │   │   ├── Badge.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Breadcrumbs/
│   │   │   │   ├── Breadcrumbs.connect.jsx
│   │   │   │   ├── Breadcrumbs.stories.jsx
│   │   │   │   ├── Breadcrumbs.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ComponentForm/
│   │   │   │   ├── ComponentForm.actions.js
│   │   │   │   ├── ComponentForm.actions.test.jsx
│   │   │   │   ├── ComponentForm.component.jsx
│   │   │   │   ├── ComponentForm.md
│   │   │   │   ├── ComponentForm.puml
│   │   │   │   ├── ComponentForm.saga.test.jsx
│   │   │   │   ├── ComponentForm.sagas.js
│   │   │   │   ├── ComponentForm.selectors.js
│   │   │   │   ├── ComponentForm.selectors.test.jsx
│   │   │   │   ├── ComponentForm.test.jsx
│   │   │   │   ├── ComponentForm.test.schema.json
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ComponentForm.test.js.snap
│   │   │   │   │   └── ComponentForm.test.jsx.snap
│   │   │   │   ├── fields/
│   │   │   │   │   ├── MultiSelect/
│   │   │   │   │   │   ├── MultiSelect.component.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   └── TextMode.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── NameResolver/
│   │   │   │   │   │   ├── NameResolver.component.jsx
│   │   │   │   │   │   ├── NameResolver.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── index.js
│   │   │   │   └── kit/
│   │   │   │       ├── createTriggers.js
│   │   │   │       ├── createTriggers.test.jsx
│   │   │   │       ├── defaultRegistry.js
│   │   │   │       ├── defaultRegistry.md
│   │   │   │       ├── defaultRegistry.test.jsx
│   │   │   │       ├── flatten.js
│   │   │   │       ├── flatten.test.jsx
│   │   │   │       └── index.js
│   │   │   ├── ConfirmDialog/
│   │   │   │   ├── ConfirmDialog.connect.js
│   │   │   │   ├── ConfirmDialog.container.jsx
│   │   │   │   ├── ConfirmDialog.stories.jsx
│   │   │   │   ├── ConfirmDialog.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ConfirmDialog.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   └── showHideConfirmDialog.js
│   │   │   ├── DeleteResource/
│   │   │   │   ├── DeleteResource.connect.js
│   │   │   │   ├── DeleteResource.container.jsx
│   │   │   │   ├── DeleteResource.stories.jsx
│   │   │   │   ├── DeleteResource.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── DeleteResource.test.js.snap
│   │   │   │   │   └── DeleteResource.test.jsx.snap
│   │   │   │   ├── actions.js
│   │   │   │   ├── actions.test.jsx
│   │   │   │   ├── constants.js
│   │   │   │   ├── index.js
│   │   │   │   ├── sagas.js
│   │   │   │   └── sagas.test.jsx
│   │   │   ├── EditableText/
│   │   │   │   ├── EditableText.connect.js
│   │   │   │   ├── EditableText.container.jsx
│   │   │   │   ├── EditableText.selectors.js
│   │   │   │   ├── EditableText.stories.jsx
│   │   │   │   ├── EditableText.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── EditableText.test.js.snap
│   │   │   │   │   └── EditableText.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── FilterBar/
│   │   │   │   ├── FilterBar.connect.js
│   │   │   │   ├── FilterBar.container.jsx
│   │   │   │   ├── FilterBar.selectors.js
│   │   │   │   ├── FilterBar.stories.jsx
│   │   │   │   ├── FilterBar.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── FilterBar.test.js.snap
│   │   │   │   │   └── FilterBar.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Form/
│   │   │   │   ├── Form.connect.js
│   │   │   │   ├── Form.container.jsx
│   │   │   │   ├── Form.md
│   │   │   │   ├── Form.stories.jsx
│   │   │   │   ├── Form.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Form.test.js.snap
│   │   │   │   │   └── Form.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── GuidedTour/
│   │   │   │   ├── GuidedTour.connect.js
│   │   │   │   ├── GuidedTour.constants.js
│   │   │   │   ├── GuidedTour.container.jsx
│   │   │   │   ├── GuidedTour.sagas.js
│   │   │   │   ├── GuidedTour.sagas.test.jsx
│   │   │   │   ├── GuidedTour.stories.jsx
│   │   │   │   ├── GuidedTour.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── GuidedTour.test.js.snap
│   │   │   │   │   └── GuidedTour.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── HeaderBar/
│   │   │   │   ├── HeaderBar.actions.js
│   │   │   │   ├── HeaderBar.connect.js
│   │   │   │   ├── HeaderBar.constant.js
│   │   │   │   ├── HeaderBar.container.jsx
│   │   │   │   ├── HeaderBar.md
│   │   │   │   ├── HeaderBar.sagas.js
│   │   │   │   ├── HeaderBar.sagas.test.jsx
│   │   │   │   ├── HeaderBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── HomeListView/
│   │   │   │   ├── HomeListView.component.jsx
│   │   │   │   ├── HomeListView.component.test.jsx
│   │   │   │   ├── HomeListView.connect.js
│   │   │   │   ├── HomeListView.connect.test.jsx
│   │   │   │   ├── HomeListView.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── HomeListView.connect.test.js.snap
│   │   │   │   │   └── HomeListView.connect.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── List/
│   │   │   │   ├── List.connect.js
│   │   │   │   ├── List.constant.js
│   │   │   │   ├── List.container.jsx
│   │   │   │   ├── List.md
│   │   │   │   ├── List.sagas.js
│   │   │   │   ├── List.sagas.test.jsx
│   │   │   │   ├── List.stories.jsx
│   │   │   │   ├── List.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── List.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   ├── selector.js
│   │   │   │   └── selector.test.jsx
│   │   │   ├── Notification/
│   │   │   │   ├── Notification.actions.js
│   │   │   │   ├── Notification.connect.js
│   │   │   │   ├── Notification.constants.js
│   │   │   │   ├── Notification.container.jsx
│   │   │   │   ├── Notification.sagas.js
│   │   │   │   ├── Notification.sagas.test.jsx
│   │   │   │   ├── Notification.stories.jsx
│   │   │   │   ├── Notification.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Notification.test.jsx.snap
│   │   │   │   ├── clearNotifications.js
│   │   │   │   ├── index.js
│   │   │   │   └── pushNotification.js
│   │   │   ├── ObjectViewer/
│   │   │   │   ├── ObjectViewer.connect.js
│   │   │   │   ├── ObjectViewer.container.jsx
│   │   │   │   ├── ObjectViewer.stories.jsx
│   │   │   │   ├── ObjectViewer.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── PieChartButton/
│   │   │   │   ├── PieChartButton.connect.jsx
│   │   │   │   ├── PieChartButton.stories.jsx
│   │   │   │   ├── PieChartButton.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── PieChartButton.test.js.snap
│   │   │   │   │   └── PieChartButton.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Redirect/
│   │   │   │   ├── Redirect.container.jsx
│   │   │   │   ├── Redirect.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── SelectObject/
│   │   │   │   ├── SelectObject.component.jsx
│   │   │   │   ├── SelectObject.component.test.jsx
│   │   │   │   ├── SelectObject.connect.js
│   │   │   │   ├── SelectObject.connect.test.jsx
│   │   │   │   ├── SelectObject.container.jsx
│   │   │   │   ├── SelectObject.container.test.jsx
│   │   │   │   ├── SelectObject.module.css
│   │   │   │   ├── SelectObject.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SelectObject.component.test.js.snap
│   │   │   │   │   ├── SelectObject.component.test.jsx.snap
│   │   │   │   │   └── SelectObject.container.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ShortcutManager/
│   │   │   │   ├── ShortcutManager.connect.js
│   │   │   │   ├── ShortcutManager.container.js
│   │   │   │   ├── ShortcutManager.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── SidePanel/
│   │   │   │   ├── SidePanel.connect.js
│   │   │   │   ├── SidePanel.container.jsx
│   │   │   │   ├── SidePanel.md
│   │   │   │   ├── SidePanel.stories.jsx
│   │   │   │   ├── SidePanel.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SidePanel.test.js.snap
│   │   │   │   │   └── SidePanel.test.jsx.snap
│   │   │   │   ├── constants.js
│   │   │   │   └── index.js
│   │   │   ├── Slider/
│   │   │   │   ├── Slider.connect.js
│   │   │   │   ├── Slider.container.jsx
│   │   │   │   ├── Slider.selectors.js
│   │   │   │   ├── Slider.stories.jsx
│   │   │   │   ├── Slider.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Slider.test.js.snap
│   │   │   │   │   └── Slider.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── SubHeaderBar/
│   │   │   │   ├── SubHeaderBar.connect.js
│   │   │   │   ├── SubHeaderBar.container.jsx
│   │   │   │   ├── SubHeaderBar.md
│   │   │   │   ├── SubHeaderBar.selectors.js
│   │   │   │   ├── SubHeaderBar.stories.jsx
│   │   │   │   ├── SubHeaderBar.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SubHeaderBar.test.js.snap
│   │   │   │   │   └── SubHeaderBar.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── TabBar/
│   │   │   │   ├── TabBar.connect.js
│   │   │   │   ├── TabBar.selectors.js
│   │   │   │   ├── TabBar.stories.jsx
│   │   │   │   ├── TabBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── TreeView/
│   │   │   │   ├── TreeView.container.jsx
│   │   │   │   ├── TreeView.stories.jsx
│   │   │   │   ├── TreeView.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── TreeView.test.js.snap
│   │   │   │   │   └── TreeView.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   └── index.test.jsx
│   │   │   ├── Typeahead/
│   │   │   │   ├── Typeahead.connect.js
│   │   │   │   ├── Typeahead.container.jsx
│   │   │   │   ├── Typeahead.stories.jsx
│   │   │   │   ├── Typeahead.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Typeahead.test.js.snap
│   │   │   │   │   └── Typeahead.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── actionAPI.js
│   │   │   ├── actionAPI.test.jsx
│   │   │   ├── actionOnClick.js
│   │   │   ├── actionOnClick.test.jsx
│   │   │   ├── cmfModule.js
│   │   │   ├── constant.js
│   │   │   ├── containers.js
│   │   │   ├── index.js
│   │   │   ├── mock.settings.json
│   │   │   ├── register.js
│   │   │   ├── register.test.jsx
│   │   │   ├── renderers.js
│   │   │   ├── test-setup.js
│   │   │   └── translate.js
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── dataviz/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .storybook/
│   │   │   ├── main.ts
│   │   │   └── preview.ts
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── assets/
│   │   │   └── maps/
│   │   │       ├── CA.topo.json
│   │   │       ├── FR.topo.json
│   │   │       ├── MX.topo.json
│   │   │       ├── US.topo.json
│   │   │       ├── US_CA.topo.json
│   │   │       ├── continents.topo.json
│   │   │       └── world.topo.json
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── BarChart/
│   │   │   │   │   ├── ColoredBar/
│   │   │   │   │   │   ├── ColoredBar.component.module.css
│   │   │   │   │   │   └── ColoredBar.component.tsx
│   │   │   │   │   ├── HorizontalBarChart/
│   │   │   │   │   │   ├── HorizontalBarChart.component.module.css
│   │   │   │   │   │   ├── HorizontalBarChart.component.test.tsx
│   │   │   │   │   │   ├── HorizontalBarChart.component.tsx
│   │   │   │   │   │   ├── HorizontalBarChart.stories.tsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── HorizontalBarChart.component.test.tsx.snap
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── TooltipCursor/
│   │   │   │   │   │   ├── TooltipCursor.component.module.css
│   │   │   │   │   │   └── TooltipCursor.component.tsx
│   │   │   │   │   ├── VerticalBarChart/
│   │   │   │   │   │   ├── VerticalBarChart.component.module.css
│   │   │   │   │   │   ├── VerticalBarChart.component.test.tsx
│   │   │   │   │   │   ├── VerticalBarChart.component.tsx
│   │   │   │   │   │   ├── VerticalBarChart.stories.tsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── VerticalBarChart.component.test.tsx.snap
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── _bar-chart.scss
│   │   │   │   │   ├── barChart.tooltip.test.ts
│   │   │   │   │   ├── barChart.tooltip.ts
│   │   │   │   │   ├── barChart.types.ts
│   │   │   │   │   ├── useBarChart.hook.tsx
│   │   │   │   │   └── useBarChartHook.test.ts
│   │   │   │   ├── BoxPlot/
│   │   │   │   │   ├── BoxPlot.component.module.css
│   │   │   │   │   ├── BoxPlot.component.test.tsx
│   │   │   │   │   ├── BoxPlot.component.tsx
│   │   │   │   │   ├── BoxPlot.stories.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── BoxPlot.component.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ChartPanel/
│   │   │   │   │   └── VerticalChartFilter/
│   │   │   │   │       ├── VerticalChartFilter.component.module.css
│   │   │   │   │       ├── VerticalChartFilter.component.test.tsx
│   │   │   │   │       ├── VerticalChartFilter.component.tsx
│   │   │   │   │       ├── VerticalChartFilter.stories.tsx
│   │   │   │   │       └── index.ts
│   │   │   │   ├── GeoChart/
│   │   │   │   │   ├── GeoChart.component.tsx
│   │   │   │   │   ├── GeoChart.module.css
│   │   │   │   │   ├── GeoChart.stories.tsx
│   │   │   │   │   ├── GeoChart.test.jsx
│   │   │   │   │   ├── GeoChart.utils.ts
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.ts
│   │   │   │   ├── KeyValueTooltip/
│   │   │   │   │   ├── KeyValueTooltip.component.module.css
│   │   │   │   │   ├── KeyValueTooltip.component.test.tsx
│   │   │   │   │   ├── KeyValueTooltip.component.tsx
│   │   │   │   │   ├── KeyValueTooltip.stories.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── KeyValueTooltip.component.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── LineChart/
│   │   │   │   │   ├── LineChart.component.test.tsx
│   │   │   │   │   ├── LineChart.component.tsx
│   │   │   │   │   ├── LineChart.module.css
│   │   │   │   │   ├── LineChart.stories.tsx
│   │   │   │   │   ├── LineChart.types.ts
│   │   │   │   │   ├── LineChartLegend.component.tsx
│   │   │   │   │   ├── LineChartLineIcon.component.tsx
│   │   │   │   │   ├── LineChartTooltip.component.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── RangeFilter/
│   │   │   │   │   ├── RangeFilter.component.module.css
│   │   │   │   │   ├── RangeFilter.component.stories.tsx
│   │   │   │   │   ├── RangeFilter.component.test.tsx
│   │   │   │   │   ├── RangeFilter.component.tsx
│   │   │   │   │   ├── handlers/
│   │   │   │   │   │   ├── DateRangeHandler/
│   │   │   │   │   │   │   ├── DateRangeHandler.test.tsx
│   │   │   │   │   │   │   └── DateRangeHandler.tsx
│   │   │   │   │   │   ├── DateTimeRangeHandler/
│   │   │   │   │   │   │   ├── DateTimeInputField.component.module.css
│   │   │   │   │   │   │   ├── DateTimeRangeHandler.test.tsx
│   │   │   │   │   │   │   └── DateTimeRangeHandler.tsx
│   │   │   │   │   │   ├── IntegerRangeHandler/
│   │   │   │   │   │   │   ├── IntegerRangeHandler.test.tsx
│   │   │   │   │   │   │   └── IntegerRangeHandler.tsx
│   │   │   │   │   │   ├── NumberRangeHandler/
│   │   │   │   │   │   │   ├── NumberInputField.component.module.css
│   │   │   │   │   │   │   ├── NumberRangeHandler.test.tsx
│   │   │   │   │   │   │   └── NumberRangeHandler.tsx
│   │   │   │   │   │   ├── TimeRangeHandler/
│   │   │   │   │   │   │   ├── TimeRangeHandler.test.tsx
│   │   │   │   │   │   │   └── TimeRangeHandler.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── range-handler.types.ts
│   │   │   │   │   │   ├── slider-ticks.utils.test.ts
│   │   │   │   │   │   ├── slider-ticks.utils.ts
│   │   │   │   │   │   └── useRangeInputField.hook.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── Tooltip/
│   │   │   │       ├── Tooltip.component.module.css
│   │   │   │       └── Tooltip.component.tsx
│   │   │   ├── constants.ts
│   │   │   ├── formatters/
│   │   │   │   ├── formatters.test.ts
│   │   │   │   └── formatters.ts
│   │   │   ├── index.ts
│   │   │   ├── setupTests.ts
│   │   │   └── types/
│   │   │       ├── index.ts
│   │   │       └── types.d.ts
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── design-docs/
│   │   ├── .babelrc.json
│   │   ├── .storybook/
│   │   │   ├── .babelrc
│   │   │   ├── main.mjs
│   │   │   ├── manager-head.html
│   │   │   ├── manager.mjs
│   │   │   ├── preview-head.html
│   │   │   ├── preview.mjs
│   │   │   └── vite.config.ts
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GettingStarted.mdx
│   │   │   ├── Principles.mdx
│   │   │   ├── StatusTable.module.css
│   │   │   ├── StatusTable.tsx
│   │   │   ├── Statuses.mdx
│   │   │   ├── Welcome.mdx
│   │   │   ├── Welcome.module.css
│   │   │   ├── WelcomeImage.tsx
│   │   │   ├── content/
│   │   │   │   ├── Capitalization.mdx
│   │   │   │   ├── Conventions.mdx
│   │   │   │   ├── Internationalization.mdx
│   │   │   │   ├── VoiceAndTone.mdx
│   │   │   │   └── Wording.mdx
│   │   │   ├── index.ts
│   │   │   ├── status.json
│   │   │   ├── tokens/
│   │   │   │   ├── A-About.mdx
│   │   │   │   ├── AB-Colors.mdx
│   │   │   │   ├── AC-ColorComposition.mdx
│   │   │   │   ├── Borders.mdx
│   │   │   │   ├── Brandings.mdx
│   │   │   │   ├── BreakPoints.mdx
│   │   │   │   ├── ColorChecker.tsx
│   │   │   │   ├── ColorComposition.module.css
│   │   │   │   ├── ColorComposition.tsx
│   │   │   │   ├── ColorCompositions.json
│   │   │   │   ├── Elevations.mdx
│   │   │   │   ├── ExampleCard.module.css
│   │   │   │   ├── ExampleCard.tsx
│   │   │   │   ├── Gradients.mdx
│   │   │   │   ├── Mesures.mdx
│   │   │   │   ├── Opacity.mdx
│   │   │   │   ├── Radius.mdx
│   │   │   │   ├── Shadows.mdx
│   │   │   │   ├── TokenFormatter.ts
│   │   │   │   ├── TokenValue.module.css
│   │   │   │   ├── TokenValue.tsx
│   │   │   │   ├── Transitions.mdx
│   │   │   │   ├── Transitions.module.css
│   │   │   │   └── Typography.mdx
│   │   │   └── types.d.ts
│   │   ├── stylelint.config.mjs
│   │   ├── talend-scripts.json
│   │   └── tsconfig.json
│   ├── design-system/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .prettierrc.js
│   │   ├── .storybook/
│   │   │   ├── main.mjs
│   │   │   └── preview.mjs
│   │   ├── CHANGELOG.md
│   │   ├── CONTRIBUTING.md
│   │   ├── DOCTEMPLATE.md
│   │   ├── LICENSE
│   │   ├── MIGRATING.md
│   │   ├── README.md
│   │   ├── custom.d.ts
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── Accordion/
│   │   │   │   │   ├── Accordion.test.tsx
│   │   │   │   │   ├── Accordion.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── CollapsiblePanel.module.css
│   │   │   │   │   │   ├── CollapsiblePanel.tsx
│   │   │   │   │   │   ├── CollapsiblePanelHeader.module.css
│   │   │   │   │   │   ├── CollapsiblePanelHeader.tsx
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Accordion.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Badge/
│   │   │   │   │   ├── Badge.test.tsx
│   │   │   │   │   ├── Badge.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Badge.test.tsx.snap
│   │   │   │   │   ├── button/
│   │   │   │   │   │   ├── BadgeButton.module.css
│   │   │   │   │   │   └── BadgeButton.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── primitive/
│   │   │   │   │   │   ├── BadgePrimitive.module.css
│   │   │   │   │   │   └── BadgePrimitive.tsx
│   │   │   │   │   └── variants/
│   │   │   │   │       ├── BadgeDropdown.module.css
│   │   │   │   │       ├── BadgeDropdown.tsx
│   │   │   │   │       ├── BadgePopover.tsx
│   │   │   │   │       ├── BadgeTag.tsx
│   │   │   │   │       ├── BadgeValue.module.css
│   │   │   │   │       └── BadgeValue.tsx
│   │   │   │   ├── Breadcrumbs/
│   │   │   │   │   ├── Breadcrumbs.module.css
│   │   │   │   │   ├── Breadcrumbs.test.tsx
│   │   │   │   │   ├── Breadcrumbs.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Breadcrumbs.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Button/
│   │   │   │   │   ├── Button.test.tsx
│   │   │   │   │   ├── Button.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── ButtonPrimitive.tsx
│   │   │   │   │   │   └── ButtonStyles.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Button.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── ButtonDestructive.module.css
│   │   │   │   │       ├── ButtonDestructive.tsx
│   │   │   │   │       ├── ButtonPrimary.module.css
│   │   │   │   │       ├── ButtonPrimary.tsx
│   │   │   │   │       ├── ButtonSecondary.module.css
│   │   │   │   │       ├── ButtonSecondary.tsx
│   │   │   │   │       ├── ButtonTertiary.module.css
│   │   │   │   │       └── ButtonTertiary.tsx
│   │   │   │   ├── ButtonAsLink/
│   │   │   │   │   ├── ButtonAsLink.test.tsx
│   │   │   │   │   ├── ButtonAsLink.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── ButtonPrimitiveAsLink.module.css
│   │   │   │   │   │   └── ButtonPrimitiveAsLink.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── ButtonAsLink.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── ButtonDestructiveAsLink.tsx
│   │   │   │   │       ├── ButtonPrimaryAsLink.tsx
│   │   │   │   │       ├── ButtonSecondaryAsLink.tsx
│   │   │   │   │       └── ButtonTertiaryAsLink.tsx
│   │   │   │   ├── ButtonIcon/
│   │   │   │   │   ├── ButtonIcon.test.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── ButtonIcon.module.css
│   │   │   │   │   │   └── ButtonIconPrimitive.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── ButtonIcon.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── ButtonIcon.tsx
│   │   │   │   │       ├── ButtonIconFloating.tsx
│   │   │   │   │       └── ButtonIconToggle.tsx
│   │   │   │   ├── Card/
│   │   │   │   │   ├── Card.module.css
│   │   │   │   │   ├── Card.test.tsx
│   │   │   │   │   ├── Card.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Card.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Clickable/
│   │   │   │   │   ├── Clickable.module.css
│   │   │   │   │   ├── Clickable.tsx
│   │   │   │   │   ├── Clikable.test.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Clikable.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Combobox/
│   │   │   │   │   ├── Combobox.module.css
│   │   │   │   │   ├── Combobox.test.tsx
│   │   │   │   │   ├── Combobox.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Combobox.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Disclosure/
│   │   │   │   │   ├── Disclosure.tsx
│   │   │   │   │   └── DisclosureContext.ts
│   │   │   │   ├── Divider/
│   │   │   │   │   ├── Divider.module.css
│   │   │   │   │   ├── Divider.test.tsx
│   │   │   │   │   ├── Divider.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Divider.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Drawer/
│   │   │   │   │   ├── Drawer.test.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── PrimitiveDrawer.module.css
│   │   │   │   │   │   └── PrimitiveDrawer.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Drawer.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variants/
│   │   │   │   │       └── FloatingDrawer/
│   │   │   │   │           ├── FloatingDrawer.module.css
│   │   │   │   │           └── FloatingDrawer.tsx
│   │   │   │   ├── Dropdown/
│   │   │   │   │   ├── Dropdown.cy.tsx
│   │   │   │   │   ├── Dropdown.test.tsx
│   │   │   │   │   ├── Dropdown.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── DropdownButton.tsx
│   │   │   │   │   │   ├── DropdownDivider.module.css
│   │   │   │   │   │   ├── DropdownDivider.tsx
│   │   │   │   │   │   ├── DropdownEntry.module.css
│   │   │   │   │   │   ├── DropdownLink.tsx
│   │   │   │   │   │   ├── DropdownShell.module.css
│   │   │   │   │   │   ├── DropdownShell.tsx
│   │   │   │   │   │   ├── DropdownTitle.module.css
│   │   │   │   │   │   └── DropdownTitle.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Dropdown.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── EmptyState/
│   │   │   │   │   ├── EmptyState.test.tsx
│   │   │   │   │   ├── EmptyState.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── EmptyState.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── primitive/
│   │   │   │   │   │   ├── EmptyStatePrimitive.module.css
│   │   │   │   │   │   └── EmptyStatePrimitive.tsx
│   │   │   │   │   └── variants/
│   │   │   │   │       ├── EmptyStateLarge.tsx
│   │   │   │   │       ├── EmptyStateMedium.tsx
│   │   │   │   │       └── EmptyStateSmall.tsx
│   │   │   │   ├── Enumeration/
│   │   │   │   │   ├── Enumeration.component.tsx
│   │   │   │   │   ├── Enumeration.module.css
│   │   │   │   │   ├── Enumeration.types.tsx
│   │   │   │   │   ├── EnumerationHeader/
│   │   │   │   │   │   ├── EnumerationHeader.component.tsx
│   │   │   │   │   │   ├── EnumerationHeader.module.css
│   │   │   │   │   │   └── EnumerationIHeader.types.tsx
│   │   │   │   │   ├── EnumerationItem/
│   │   │   │   │   │   ├── EnumerationItem.component.tsx
│   │   │   │   │   │   ├── EnumerationItem.module.css
│   │   │   │   │   │   └── EnumerationItem.types.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ErrorState/
│   │   │   │   │   ├── ErrorState.module.css
│   │   │   │   │   ├── ErrorState.test.tsx
│   │   │   │   │   ├── ErrorState.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── ErrorState.test.tsx.snap
│   │   │   │   │   ├── illutstrations/
│   │   │   │   │   │   └── ErrorIllustration.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Form/
│   │   │   │   │   ├── Affix/
│   │   │   │   │   │   ├── AffixStyles.module.css
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── variations/
│   │   │   │   │   │       ├── AffixButton.tsx
│   │   │   │   │   │       ├── AffixReadOnly.tsx
│   │   │   │   │   │       └── AffixSelect.tsx
│   │   │   │   │   ├── Buttons/
│   │   │   │   │   │   ├── Buttons.module.css
│   │   │   │   │   │   ├── Buttons.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Field/
│   │   │   │   │   │   ├── Datalist/
│   │   │   │   │   │   │   ├── Datalist.tsx
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.Checkbox.tsx
│   │   │   │   │   │   │   ├── Input.Color.tsx
│   │   │   │   │   │   │   ├── Input.Copy.tsx
│   │   │   │   │   │   │   ├── Input.Date.tsx
│   │   │   │   │   │   │   ├── Input.DatetimeLocal.tsx
│   │   │   │   │   │   │   ├── Input.Email.tsx
│   │   │   │   │   │   │   ├── Input.File.module.css
│   │   │   │   │   │   │   ├── Input.File.tsx
│   │   │   │   │   │   │   ├── Input.Hidden.tsx
│   │   │   │   │   │   │   ├── Input.Month.tsx
│   │   │   │   │   │   │   ├── Input.Number.tsx
│   │   │   │   │   │   │   ├── Input.Radio.tsx
│   │   │   │   │   │   │   ├── Input.Search.tsx
│   │   │   │   │   │   │   ├── Input.Tel.tsx
│   │   │   │   │   │   │   ├── Input.Text.tsx
│   │   │   │   │   │   │   ├── Input.Time.tsx
│   │   │   │   │   │   │   ├── Input.ToggleSwitch.module.css
│   │   │   │   │   │   │   ├── Input.ToggleSwitch.tsx
│   │   │   │   │   │   │   ├── Input.Url.tsx
│   │   │   │   │   │   │   ├── Input.Week.tsx
│   │   │   │   │   │   │   ├── Input.tsx
│   │   │   │   │   │   │   ├── Password/
│   │   │   │   │   │   │   │   ├── Password.cy.tsx
│   │   │   │   │   │   │   │   ├── Password.tsx
│   │   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   ├── passwordButton.module.css
│   │   │   │   │   │   │   │   ├── useReadOnly.tsx
│   │   │   │   │   │   │   │   └── useRevealPassword.tsx
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── Select/
│   │   │   │   │   │   │   ├── Select.tsx
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   └── Textarea/
│   │   │   │   │   │       ├── Textarea.tsx
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── Fieldset/
│   │   │   │   │   │   ├── Fieldset.cy.tsx
│   │   │   │   │   │   ├── Fieldset.module.css
│   │   │   │   │   │   ├── Fieldset.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Form.module.css
│   │   │   │   │   ├── Form.test.tsx
│   │   │   │   │   ├── Form.tsx
│   │   │   │   │   ├── Label/
│   │   │   │   │   │   ├── Label.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Primitives/
│   │   │   │   │   │   ├── Checkbox/
│   │   │   │   │   │   │   ├── Checkbox.module.css
│   │   │   │   │   │   │   └── Checkbox.tsx
│   │   │   │   │   │   ├── Field/
│   │   │   │   │   │   │   └── Field.tsx
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.module.css
│   │   │   │   │   │   │   └── Input.tsx
│   │   │   │   │   │   ├── InputWrapper/
│   │   │   │   │   │   │   ├── InputWrapper.module.css
│   │   │   │   │   │   │   └── InputWrapper.tsx
│   │   │   │   │   │   ├── Label/
│   │   │   │   │   │   │   ├── Label.module.css
│   │   │   │   │   │   │   └── Label.tsx
│   │   │   │   │   │   ├── Radio/
│   │   │   │   │   │   │   ├── Radio.module.css
│   │   │   │   │   │   │   └── Radio.tsx
│   │   │   │   │   │   ├── Select/
│   │   │   │   │   │   │   ├── Select.module.css
│   │   │   │   │   │   │   ├── Select.tsx
│   │   │   │   │   │   │   └── SelectNoWrapper.tsx
│   │   │   │   │   │   ├── Textarea/
│   │   │   │   │   │   │   ├── Textarea.module.css
│   │   │   │   │   │   │   └── Textarea.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Row/
│   │   │   │   │   │   ├── Row.module.css
│   │   │   │   │   │   ├── Row.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Form.test.tsx.snap
│   │   │   │   │   ├── docs/
│   │   │   │   │   │   └── data/
│   │   │   │   │   │       └── CountryCodes.json
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Icon/
│   │   │   │   │   ├── DeprecatedIconHelper.tsx
│   │   │   │   │   ├── Icon.cy.tsx
│   │   │   │   │   ├── Icon.module.css
│   │   │   │   │   ├── Icon.test.tsx
│   │   │   │   │   ├── Icon.tsx
│   │   │   │   │   ├── SizedIcon.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Icon.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── IconsProvider/
│   │   │   │   │   ├── IconsProvider.cy.tsx
│   │   │   │   │   ├── IconsProvider.module.css
│   │   │   │   │   ├── IconsProvider.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── InlineEditing/
│   │   │   │   │   ├── InlineEditing.test.tsx
│   │   │   │   │   ├── Primitives/
│   │   │   │   │   │   ├── InlineEditingPrimitive.module.css
│   │   │   │   │   │   └── InlineEditingPrimitive.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── InlineEditing.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── InlineEditing.text.tsx
│   │   │   │   │       ├── InlineEditing.textarea.cy.tsx
│   │   │   │   │       └── InlineEditing.textarea.tsx
│   │   │   │   ├── InlineMessage/
│   │   │   │   │   ├── InlineMessage.test.tsx
│   │   │   │   │   ├── InlineMessage.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── InlineMessagePrimitive.module.css
│   │   │   │   │   │   └── InlineMessagePrimitive.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── InlineMessage.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── InlineMessageBeta.module.css
│   │   │   │   │       ├── InlineMessageBeta.tsx
│   │   │   │   │       ├── InlineMessageDestructive.module.css
│   │   │   │   │       ├── InlineMessageDestructive.tsx
│   │   │   │   │       ├── InlineMessageInformation.module.css
│   │   │   │   │       ├── InlineMessageInformation.tsx
│   │   │   │   │       ├── InlineMessageSuccess.module.css
│   │   │   │   │       ├── InlineMessageSuccess.tsx
│   │   │   │   │       ├── InlineMessageWarning.module.css
│   │   │   │   │       └── InlineMessageWarning.tsx
│   │   │   │   ├── Link/
│   │   │   │   │   ├── Link.cy.tsx
│   │   │   │   │   ├── Link.module.css
│   │   │   │   │   ├── Link.test.tsx
│   │   │   │   │   ├── Link.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Link.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── LinkAsButton/
│   │   │   │   │   ├── LinkAsButton.cy.tsx
│   │   │   │   │   ├── LinkAsButton.test.tsx
│   │   │   │   │   ├── LinkAsButton.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── LinkAsButton.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Linkable/
│   │   │   │   │   ├── Linkable.test.tsx
│   │   │   │   │   ├── Linkable.tsx
│   │   │   │   │   ├── LinkableStyles.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Linkable.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Loading/
│   │   │   │   │   ├── Loading.test.tsx
│   │   │   │   │   ├── Loading.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Loading.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Message/
│   │   │   │   │   ├── Message.test.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── MessagePrimitive.tsx
│   │   │   │   │   │   └── MessageStyles.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Message.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── MessageCollectionDestructive.tsx
│   │   │   │   │       ├── MessageCollectionInformation.tsx
│   │   │   │   │       ├── MessageCollectionSuccess.tsx
│   │   │   │   │       ├── MessageCollectionWarning.tsx
│   │   │   │   │       ├── MessageDestructive.module.css
│   │   │   │   │       ├── MessageDestructive.tsx
│   │   │   │   │       ├── MessageInformation.module.css
│   │   │   │   │       ├── MessageInformation.tsx
│   │   │   │   │       ├── MessageSuccess.module.css
│   │   │   │   │       ├── MessageSuccess.tsx
│   │   │   │   │       ├── MessageWarning.module.css
│   │   │   │   │       └── MessageWarning.tsx
│   │   │   │   ├── Modal/
│   │   │   │   │   ├── Modal.module.css
│   │   │   │   │   ├── Modal.test.tsx
│   │   │   │   │   ├── Modal.tsx
│   │   │   │   │   ├── Primitives/
│   │   │   │   │   │   ├── Dialog.tsx
│   │   │   │   │   │   ├── DialogBackdrop.tsx
│   │   │   │   │   │   ├── DialogState.ts
│   │   │   │   │   │   └── Portal.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Modal.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Popover/
│   │   │   │   │   ├── Popover.cy.tsx
│   │   │   │   │   ├── Popover.module.css
│   │   │   │   │   ├── Popover.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── usePopover.tsx
│   │   │   │   ├── QualityBar/
│   │   │   │   │   ├── QualityBar.component.test.tsx
│   │   │   │   │   ├── QualityBar.component.tsx
│   │   │   │   │   ├── QualityBar.stories.tsx
│   │   │   │   │   ├── QualityBar.types.ts
│   │   │   │   │   ├── QualityBarRatioBars.component.tsx
│   │   │   │   │   ├── QualityRatioBar.component.tsx
│   │   │   │   │   ├── QualityRatioBar.module.css
│   │   │   │   │   ├── QualityRatioBar.utils.ts
│   │   │   │   │   ├── SplitQualityBar.component.tsx
│   │   │   │   │   ├── SplitQualityBar.stories.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── RatioBar/
│   │   │   │   │   ├── RatioBar.component.test.jsx
│   │   │   │   │   ├── RatioBar.component.tsx
│   │   │   │   │   ├── RatioBar.module.css
│   │   │   │   │   ├── RatioBar.stories.tsx
│   │   │   │   │   ├── RatioBarComposition.component.tsx
│   │   │   │   │   ├── RatioBarLines.component.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── RatioBar.component.test.jsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── RichRadioButton/
│   │   │   │   │   ├── RichRadioButton.component.tsx
│   │   │   │   │   ├── RichRadioButton.module.css
│   │   │   │   │   ├── RichRadioButton.types.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Skeleton/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── Skeleton.Primitive.tsx
│   │   │   │   │   │   └── Skeleton.module.css
│   │   │   │   │   ├── Skeleton.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── SkeletonButton.module.css
│   │   │   │   │       ├── SkeletonButton.tsx
│   │   │   │   │       ├── SkeletonButtonIcon.module.css
│   │   │   │   │       ├── SkeletonButtonIcon.tsx
│   │   │   │   │       ├── SkeletonHeading.module.css
│   │   │   │   │       ├── SkeletonHeading.tsx
│   │   │   │   │       ├── SkeletonInput.module.css
│   │   │   │   │       ├── SkeletonInput.tsx
│   │   │   │   │       ├── SkeletonParagraph.module.css
│   │   │   │   │       ├── SkeletonParagraph.tsx
│   │   │   │   │       ├── SkeletonSized.module.css
│   │   │   │   │       └── SkeletonSized.tsx
│   │   │   │   ├── Stack/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── StackPrimitive.module.css
│   │   │   │   │   │   ├── StackPrimitive.test.tsx
│   │   │   │   │   │   └── StackPrimitive.tsx
│   │   │   │   │   ├── StackHorizontal.tsx
│   │   │   │   │   ├── StackItem.module.css
│   │   │   │   │   ├── StackItem.tsx
│   │   │   │   │   ├── StackVertical.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Status/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── Status.module.css
│   │   │   │   │   │   ├── StatusPrimitive.test.tsx
│   │   │   │   │   │   └── StatusPrimitive.tsx
│   │   │   │   │   ├── Status.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── StatusCanceled.tsx
│   │   │   │   │       ├── StatusFailed.tsx
│   │   │   │   │       ├── StatusInProgress.tsx
│   │   │   │   │       ├── StatusSuccessful.tsx
│   │   │   │   │       └── StatusWarning.tsx
│   │   │   │   ├── StatusDot/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── StatusDotPrimitive.module.css
│   │   │   │   │   │   ├── StatusDotPrimitive.test.tsx
│   │   │   │   │   │   └── StatusDotPrimitive.tsx
│   │   │   │   │   ├── StatusDot.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── StatusDotBeta.tsx
│   │   │   │   │       ├── StatusDotError.tsx
│   │   │   │   │       ├── StatusDotInformation.tsx
│   │   │   │   │       ├── StatusDotSuccess.tsx
│   │   │   │   │       └── StatusDotWarning.tsx
│   │   │   │   ├── Stepper/
│   │   │   │   │   ├── Progress/
│   │   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   │   ├── Progress.module.css
│   │   │   │   │   │   │   └── Progress.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── variations/
│   │   │   │   │   │       ├── Progress.horizontal.module.css
│   │   │   │   │   │       ├── Progress.horizontal.tsx
│   │   │   │   │   │       ├── Progress.vertical.module.css
│   │   │   │   │   │       └── Progress.vertical.tsx
│   │   │   │   │   ├── Step/
│   │   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   │   ├── Step.module.css
│   │   │   │   │   │   │   └── Step.tsx
│   │   │   │   │   │   ├── Step.cy.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── variations/
│   │   │   │   │   │       ├── Step.Skeleton.module.css
│   │   │   │   │   │       ├── Step.disabled.tsx
│   │   │   │   │   │       ├── Step.enabled.tsx
│   │   │   │   │   │       ├── Step.error.tsx
│   │   │   │   │   │       ├── Step.progress.tsx
│   │   │   │   │   │       ├── Step.skeleton.tsx
│   │   │   │   │   │       └── Step.validated.tsx
│   │   │   │   │   ├── Stepper.cy.tsx
│   │   │   │   │   ├── Stepper.module.css
│   │   │   │   │   ├── Stepper.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── Stepper.horizontal.tsx
│   │   │   │   │       └── Stepper.vertical.tsx
│   │   │   │   ├── Switch/
│   │   │   │   │   ├── Switch.module.css
│   │   │   │   │   ├── Switch.test.tsx
│   │   │   │   │   ├── Switch.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Switch.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Tabs/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── TabPanel.tsx
│   │   │   │   │   │   ├── TabStyles.module.css
│   │   │   │   │   │   ├── Tabs.tsx
│   │   │   │   │   │   └── TabsProvider.tsx
│   │   │   │   │   ├── Tabs.test.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Tabs.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variants/
│   │   │   │   │       └── Tabs.tsx
│   │   │   │   ├── Tag/
│   │   │   │   │   ├── Tag.cy.tsx
│   │   │   │   │   ├── Tag.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── primitive/
│   │   │   │   │   │   ├── TagPrimitive.module.css
│   │   │   │   │   │   ├── TagPrimitive.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── TagBeta.module.css
│   │   │   │   │       ├── TagBeta.tsx
│   │   │   │   │       ├── TagDefault.module.css
│   │   │   │   │       ├── TagDefault.tsx
│   │   │   │   │       ├── TagDestructive.module.css
│   │   │   │   │       ├── TagDestructive.tsx
│   │   │   │   │       ├── TagInformation.module.css
│   │   │   │   │       ├── TagInformation.tsx
│   │   │   │   │       ├── TagSuccess.module.css
│   │   │   │   │       ├── TagSuccess.tsx
│   │   │   │   │       ├── TagWarning.module.css
│   │   │   │   │       ├── TagWarning.tsx
│   │   │   │   │       └── index.ts
│   │   │   │   ├── ThemeProvider/
│   │   │   │   │   ├── ThemeContext/
│   │   │   │   │   │   ├── ThemeContext.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── ThemeProvider.css
│   │   │   │   │   ├── ThemeProvider.tsx
│   │   │   │   │   ├── ThemeSwitcher/
│   │   │   │   │   │   ├── ThemeSwitcher.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ThemeProviderWithoutGlobals/
│   │   │   │   │   ├── ThemeProviderWithoutGlobals.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Tooltip/
│   │   │   │   │   ├── Tooltip.cy.tsx
│   │   │   │   │   ├── Tooltip.module.css
│   │   │   │   │   ├── Tooltip.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── VisuallyHidden/
│   │   │   │   │   ├── VisuallyHidden.module.css
│   │   │   │   │   ├── VisuallyHidden.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── constants.ts
│   │   │   │   └── illustrations/
│   │   │   │       ├── IconActivity.tsx
│   │   │   │       ├── IconChart.tsx
│   │   │   │       ├── IconChecklist.tsx
│   │   │   │       ├── IconDefault.module.css
│   │   │   │       ├── IconDefault.tsx
│   │   │   │       ├── IconDocument.tsx
│   │   │   │       ├── IconFlask.tsx
│   │   │   │       ├── IconInProgress.tsx
│   │   │   │       ├── IconLightBulb.tsx
│   │   │   │       ├── IconMessage.tsx
│   │   │   │       ├── IconPlug.tsx
│   │   │   │       ├── IconRocket.tsx
│   │   │   │       ├── IconSearch.tsx
│   │   │   │       ├── IconSettings.tsx
│   │   │   │       ├── IconUpdate.tsx
│   │   │   │       ├── IconUser.tsx
│   │   │   │       ├── IconWarning.tsx
│   │   │   │       ├── SpotDefault.module.css
│   │   │   │       ├── SpotDefault.tsx
│   │   │   │       └── index.ts
│   │   │   ├── declare.d.ts
│   │   │   ├── index.ts
│   │   │   ├── mergeRef.ts
│   │   │   ├── renderChildren.ts
│   │   │   ├── renderOrClone.ts
│   │   │   ├── stories/
│   │   │   │   ├── Status.block.tsx
│   │   │   │   ├── clickable/
│   │   │   │   │   ├── About.mdx
│   │   │   │   │   ├── Button.mdx
│   │   │   │   │   ├── Button.stories.tsx
│   │   │   │   │   ├── ButtonAsLink.mdx
│   │   │   │   │   ├── ButtonAsLink.stories.tsx
│   │   │   │   │   ├── ButtonIcon.mdx
│   │   │   │   │   ├── ButtonIcon.stories.tsx
│   │   │   │   │   ├── Dropdown.mdx
│   │   │   │   │   ├── Dropdown.stories.tsx
│   │   │   │   │   ├── Link.mdx
│   │   │   │   │   ├── Link.stories.tsx
│   │   │   │   │   └── LinkAsButton.stories.tsx
│   │   │   │   ├── docs/
│   │   │   │   │   ├── Area.module.css
│   │   │   │   │   ├── Area.tsx
│   │   │   │   │   ├── WithSelector.tsx
│   │   │   │   │   └── data/
│   │   │   │   │       └── CountryCodes.json
│   │   │   │   ├── feedback/
│   │   │   │   │   ├── EmptyState.mdx
│   │   │   │   │   ├── EmptyState.stories.tsx
│   │   │   │   │   ├── ErrorState.mdx
│   │   │   │   │   ├── ErrorState.stories.tsx
│   │   │   │   │   ├── Loading.mdx
│   │   │   │   │   ├── Loading.stories.tsx
│   │   │   │   │   ├── Skeleton.mdx
│   │   │   │   │   ├── Skeleton.stories.tsx
│   │   │   │   │   ├── Status.mdx
│   │   │   │   │   ├── Status.stories.tsx
│   │   │   │   │   ├── StatusDot.mdx
│   │   │   │   │   └── StatusDot.stories.tsx
│   │   │   │   ├── form/
│   │   │   │   │   ├── About.mdx
│   │   │   │   │   ├── Affix/
│   │   │   │   │   │   ├── Affix.stories.tsx
│   │   │   │   │   │   └── Affixes.mdx
│   │   │   │   │   ├── Buttons/
│   │   │   │   │   │   ├── FormButtons.mdx
│   │   │   │   │   │   └── FormButtons.stories.tsx
│   │   │   │   │   ├── Combobox.stories.tsx
│   │   │   │   │   ├── Enumeration/
│   │   │   │   │   │   ├── Enumeration.mdx
│   │   │   │   │   │   └── Enumeration.stories.tsx
│   │   │   │   │   ├── Field/
│   │   │   │   │   │   ├── Datalist/
│   │   │   │   │   │   │   ├── Input.Datalist.mdx
│   │   │   │   │   │   │   └── Input.Datalist.stories.tsx
│   │   │   │   │   │   ├── FormField.mdx
│   │   │   │   │   │   ├── FormField.stories.tsx
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.Checkbox.mdx
│   │   │   │   │   │   │   ├── Input.Checkbox.stories.tsx
│   │   │   │   │   │   │   ├── Input.Color.mdx
│   │   │   │   │   │   │   ├── Input.Color.stories.tsx
│   │   │   │   │   │   │   ├── Input.Copy.mdx
│   │   │   │   │   │   │   ├── Input.Copy.stories.tsx
│   │   │   │   │   │   │   ├── Input.Date.mdx
│   │   │   │   │   │   │   ├── Input.Date.stories.tsx
│   │   │   │   │   │   │   ├── Input.DatetimeLocal.mdx
│   │   │   │   │   │   │   ├── Input.DatetimeLocal.stories.tsx
│   │   │   │   │   │   │   ├── Input.Email.mdx
│   │   │   │   │   │   │   ├── Input.Email.stories.tsx
│   │   │   │   │   │   │   ├── Input.File.mdx
│   │   │   │   │   │   │   ├── Input.File.stories.tsx
│   │   │   │   │   │   │   ├── Input.Month.mdx
│   │   │   │   │   │   │   ├── Input.Month.stories.tsx
│   │   │   │   │   │   │   ├── Input.Number.mdx
│   │   │   │   │   │   │   ├── Input.Number.stories.tsx
│   │   │   │   │   │   │   ├── Input.Radio.mdx
│   │   │   │   │   │   │   ├── Input.Radio.stories.tsx
│   │   │   │   │   │   │   ├── Input.Search.mdx
│   │   │   │   │   │   │   ├── Input.Search.stories.tsx
│   │   │   │   │   │   │   ├── Input.Tel.mdx
│   │   │   │   │   │   │   ├── Input.Tel.stories.tsx
│   │   │   │   │   │   │   ├── Input.Text.mdx
│   │   │   │   │   │   │   ├── Input.Text.stories.tsx
│   │   │   │   │   │   │   ├── Input.Time.mdx
│   │   │   │   │   │   │   ├── Input.Time.stories.tsx
│   │   │   │   │   │   │   ├── Input.Url.mdx
│   │   │   │   │   │   │   ├── Input.Url.stories.tsx
│   │   │   │   │   │   │   ├── Input.Week.mdx
│   │   │   │   │   │   │   ├── Input.Week.stories.tsx
│   │   │   │   │   │   │   ├── Password.mdx
│   │   │   │   │   │   │   └── Password.stories.tsx
│   │   │   │   │   │   ├── Select/
│   │   │   │   │   │   │   ├── Input.Select.mdx
│   │   │   │   │   │   │   └── Input.Select.stories.tsx
│   │   │   │   │   │   └── Textarea/
│   │   │   │   │   │       ├── Input.Textarea.mdx
│   │   │   │   │   │       └── Input.Textarea.stories.tsx
│   │   │   │   │   ├── FieldCombobox.mdx
│   │   │   │   │   ├── Fieldset/
│   │   │   │   │   │   ├── Fieldset.mdx
│   │   │   │   │   │   ├── Fieldset.stories.tsx
│   │   │   │   │   │   └── FormFieldset.mdx
│   │   │   │   │   ├── Form.mdx
│   │   │   │   │   ├── Form.stories.tsx
│   │   │   │   │   ├── InlineEditing.mdx
│   │   │   │   │   ├── InlineEditing.stories.tsx
│   │   │   │   │   ├── RichRadioButton.mdx
│   │   │   │   │   ├── RichRadioButton.stories.tsx
│   │   │   │   │   ├── Switch.mdx
│   │   │   │   │   ├── Switch.stories.tsx
│   │   │   │   │   └── ToggleSwitch/
│   │   │   │   │       ├── ToggleSwitch.mdx
│   │   │   │   │       └── ToggleSwitch.stories.tsx
│   │   │   │   ├── icons/
│   │   │   │   │   ├── About.mdx
│   │   │   │   │   ├── Icon.mdx
│   │   │   │   │   ├── Icon.stories.tsx
│   │   │   │   │   ├── Icons.tsx
│   │   │   │   │   ├── SizedIcon.mdx
│   │   │   │   │   └── SizedIcon.stories.tsx
│   │   │   │   ├── layout/
│   │   │   │   │   ├── Card.mdx
│   │   │   │   │   ├── Card.stories.tsx
│   │   │   │   │   ├── Modal.mdx
│   │   │   │   │   ├── Modal.stories.tsx
│   │   │   │   │   ├── Stack.mdx
│   │   │   │   │   └── Stack.stories.tsx
│   │   │   │   ├── messaging/
│   │   │   │   │   ├── Badge.mdx
│   │   │   │   │   ├── Badge.stories.tsx
│   │   │   │   │   ├── InlineMessage.mdx
│   │   │   │   │   ├── InlineMessage.stories.tsx
│   │   │   │   │   ├── Message.mdx
│   │   │   │   │   ├── Message.stories.tsx
│   │   │   │   │   ├── Popover.mdx
│   │   │   │   │   ├── Popover.stories.tsx
│   │   │   │   │   ├── Tag.mdx
│   │   │   │   │   ├── Tag.stories.tsx
│   │   │   │   │   ├── Tooltip.mdx
│   │   │   │   │   └── Tooltip.stories.tsx
│   │   │   │   ├── navigation/
│   │   │   │   │   ├── Accordion.mdx
│   │   │   │   │   ├── Accordion.stories.tsx
│   │   │   │   │   ├── Breadcrumbs.mdx
│   │   │   │   │   ├── Breadcrumbs.stories.tsx
│   │   │   │   │   ├── Divider.mdx
│   │   │   │   │   ├── Divider.stories.tsx
│   │   │   │   │   ├── FloatingDrawer.mdx
│   │   │   │   │   ├── FloatingDrawer.stories.tsx
│   │   │   │   │   ├── Stepper.Step.mdx
│   │   │   │   │   ├── Stepper.Step.stories.tsx
│   │   │   │   │   ├── Stepper.mdx
│   │   │   │   │   ├── Stepper.stories.tsx
│   │   │   │   │   ├── Tabs.mdx
│   │   │   │   │   └── Tabs.stories.tsx
│   │   │   │   └── status.json
│   │   │   ├── themes/
│   │   │   │   └── index.ts
│   │   │   ├── types/
│   │   │   │   └── index.ts
│   │   │   ├── useControl.ts
│   │   │   ├── useId.ts
│   │   │   └── vitest.setup.ts
│   │   ├── static/
│   │   │   ├── _headers
│   │   │   ├── favicon/
│   │   │   │   ├── browserconfig.xml
│   │   │   │   └── site.webmanifest
│   │   │   ├── robots.txt
│   │   │   └── sw.js
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── design-tokens/
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── dependencies.json
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── compare.js
│   │   │   └── umd.test.js
│   │   ├── src/
│   │   │   ├── _tokens.scss
│   │   │   ├── dark/
│   │   │   │   ├── _index.scss
│   │   │   │   ├── _tokens.scss
│   │   │   │   ├── dictionary.ts
│   │   │   │   └── index.ts
│   │   │   ├── declaration.d.ts
│   │   │   ├── index.scss
│   │   │   ├── index.ts
│   │   │   ├── index.umd.ts
│   │   │   ├── light/
│   │   │   │   ├── _index.scss
│   │   │   │   ├── dictionary.ts
│   │   │   │   └── index.ts
│   │   │   ├── qlik-light/
│   │   │   │   ├── _index.scss
│   │   │   │   ├── dictionary.ts
│   │   │   │   └── index.ts
│   │   │   └── types.ts
│   │   ├── supernova-exporter/
│   │   │   ├── README.md
│   │   │   ├── exporter.json
│   │   │   ├── output.json
│   │   │   ├── sources.json
│   │   │   └── src/
│   │   │       ├── exportCSS/
│   │   │       │   ├── CSS.pr
│   │   │       │   ├── css-stylesheet-with-path.pr
│   │   │       │   ├── main-renderers/
│   │   │       │   │   ├── css-reference-wrapper.pr
│   │   │       │   │   ├── css-rendered-name.pr
│   │   │       │   │   ├── css-rendered-token-class.pr
│   │   │       │   │   ├── css-rendered-token-style.pr
│   │   │       │   │   ├── css-rendered-token-var.pr
│   │   │       │   │   └── css-rendered-value.pr
│   │   │       │   └── token-renderers/
│   │   │       │       ├── css-rendered-border.pr
│   │   │       │       ├── css-rendered-color.pr
│   │   │       │       ├── css-rendered-gradient.pr
│   │   │       │       ├── css-rendered-lineHeight.pr
│   │   │       │       ├── css-rendered-measure.pr
│   │   │       │       ├── css-rendered-other.pr
│   │   │       │       ├── css-rendered-radius.pr
│   │   │       │       ├── css-rendered-shadow.pr
│   │   │       │       ├── css-rendered-text.pr
│   │   │       │       └── css-rendered-typography.pr
│   │   │       ├── exportSCSS/
│   │   │       │   ├── SCSS.pr
│   │   │       │   ├── main-renderers/
│   │   │       │   │   ├── scss-reference-wrapper.pr
│   │   │       │   │   ├── scss-rendered-description.pr
│   │   │       │   │   ├── scss-rendered-token-class.pr
│   │   │       │   │   └── scss-rendered-token-var.pr
│   │   │       │   └── scss-tokens-with-path.pr
│   │   │       ├── exportTS/
│   │   │       │   ├── allTokens.pr
│   │   │       │   ├── dictionary.pr
│   │   │       │   ├── main-renderers/
│   │   │       │   │   ├── index-file.pr
│   │   │       │   │   ├── reference-wrapper.pr
│   │   │       │   │   ├── rendered-css-name.pr
│   │   │       │   │   ├── rendered-description.pr
│   │   │       │   │   ├── rendered-dictionnary-entry.pr
│   │   │       │   │   ├── rendered-token-class.pr
│   │   │       │   │   ├── rendered-token-var.pr
│   │   │       │   │   ├── rendered-ts-name.pr
│   │   │       │   │   ├── rendered-type.pr
│   │   │       │   │   ├── rendered-value-detailed.pr
│   │   │       │   │   └── rendered-value.pr
│   │   │       │   ├── token-renderers/
│   │   │       │   │   ├── rendered-border.pr
│   │   │       │   │   ├── rendered-color-detailed.pr
│   │   │       │   │   ├── rendered-color.pr
│   │   │       │   │   ├── rendered-gradient-detailed.pr
│   │   │       │   │   ├── rendered-gradient.pr
│   │   │       │   │   ├── rendered-lineHeight.pr
│   │   │       │   │   ├── rendered-measure-detailed.pr
│   │   │       │   │   ├── rendered-measure.pr
│   │   │       │   │   ├── rendered-radius-detailed.pr
│   │   │       │   │   ├── rendered-radius.pr
│   │   │       │   │   ├── rendered-shadow-detailed.pr
│   │   │       │   │   ├── rendered-shadow.pr
│   │   │       │   │   ├── rendered-text-detailed.pr
│   │   │       │   │   ├── rendered-text.pr
│   │   │       │   │   ├── rendered-typography-detailed.pr
│   │   │       │   │   └── rendered-typography.pr
│   │   │       │   ├── ts-dictionnary-with-path.pr
│   │   │       │   └── ts-index-with-path.pr
│   │   │       └── js/
│   │   │           └── helpers.js
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── faceted-search/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .storybook/
│   │   │   ├── main.mjs
│   │   │   └── preview.jsx
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── jest.setup.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── CRUDBadges.js
│   │   │   ├── components/
│   │   │   │   ├── AddFacetPopover/
│   │   │   │   │   ├── AddFacetPopover.component.jsx
│   │   │   │   │   ├── AddFacetPopover.module.css
│   │   │   │   │   ├── AddFacetPopoverHeader/
│   │   │   │   │   │   ├── AddFacetPopoverHeader.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── AddFacetPopoverRow/
│   │   │   │   │   │   ├── AddFacetPopoverRowButton/
│   │   │   │   │   │   │   ├── AddFacetPopoverRowButton.component.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── AddFacetPopoverRowItem/
│   │   │   │   │   │   │   ├── AddFacetPopoverRowItem.component.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── AddFacetPopver.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── AddFacetPopver.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── AdvancedSearch/
│   │   │   │   │   ├── AdvancedSearch.component.jsx
│   │   │   │   │   ├── AdvancedSearch.component.test.jsx
│   │   │   │   │   ├── AdvancedSearch.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── AdvancedSearch.component.test.js.snap
│   │   │   │   │   │   └── AdvancedSearch.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Badges/
│   │   │   │   │   ├── BadgeCheckboxes/
│   │   │   │   │   │   ├── BadgeCheckboxes.component.jsx
│   │   │   │   │   │   ├── BadgeCheckboxes.component.test.jsx
│   │   │   │   │   │   ├── BadgeCheckboxes.module.css
│   │   │   │   │   │   ├── BadgeCheckboxesForm.component.jsx
│   │   │   │   │   │   ├── BadgeCheckboxesForm.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeDate/
│   │   │   │   │   │   ├── BadgeDate.component.jsx
│   │   │   │   │   │   ├── BadgeDate.component.test.jsx
│   │   │   │   │   │   ├── BadgeDate.module.css
│   │   │   │   │   │   ├── BadgeDateForm.component.jsx
│   │   │   │   │   │   ├── BadgeDateForm.component.test.jsx
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       ├── BadgeDate.component.test.js.snap
│   │   │   │   │   │       ├── BadgeDate.component.test.jsx.snap
│   │   │   │   │   │       ├── BadgeDateForm.component.test.js.snap
│   │   │   │   │   │       └── BadgeDateForm.component.test.jsx.snap
│   │   │   │   │   ├── BadgeFaceted/
│   │   │   │   │   │   ├── BadgeFaceted.component.jsx
│   │   │   │   │   │   ├── BadgeFaceted.component.test.jsx
│   │   │   │   │   │   ├── BadgeFaceted.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── BadgeFaceted.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeMenu/
│   │   │   │   │   │   ├── BadgeMenu.component.jsx
│   │   │   │   │   │   ├── BadgeMenu.component.test.jsx
│   │   │   │   │   │   ├── BadgeMenu.module.css
│   │   │   │   │   │   ├── BadgeMenuForm.component.jsx
│   │   │   │   │   │   └── BadgeMenuForm.component.test.jsx
│   │   │   │   │   ├── BadgeNumber/
│   │   │   │   │   │   ├── BadgeNumber.component.jsx
│   │   │   │   │   │   ├── BadgeNumber.component.test.jsx
│   │   │   │   │   │   ├── BadgeNumberForm.component.jsx
│   │   │   │   │   │   ├── BadgeNumberForm.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeNumber.component.test.js.snap
│   │   │   │   │   │   │   ├── BadgeNumber.component.test.jsx.snap
│   │   │   │   │   │   │   ├── BadgeNumberForm.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeNumberForm.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeOperator/
│   │   │   │   │   │   ├── BadgeOperator.module.css
│   │   │   │   │   │   ├── BadgeOperatorOverlay.component.jsx
│   │   │   │   │   │   ├── BadgeOperatorPopover.component.jsx
│   │   │   │   │   │   ├── BadgeOperatorPopover.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeOperatorPopover.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeOperatorPopover.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeOverlay/
│   │   │   │   │   │   ├── BadgeOverlay.component.jsx
│   │   │   │   │   │   ├── BadgeOverlay.component.test.jsx
│   │   │   │   │   │   ├── BadgeOverlay.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── BadgeOverlay.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgePeriod/
│   │   │   │   │   │   ├── BadgePeriod.component.jsx
│   │   │   │   │   │   ├── BadgePeriod.component.test.jsx
│   │   │   │   │   │   ├── BadgePeriodForm.component.jsx
│   │   │   │   │   │   └── BadgePeriodForm.component.test.jsx
│   │   │   │   │   ├── BadgeSlider/
│   │   │   │   │   │   ├── BadgeSlider.component.jsx
│   │   │   │   │   │   ├── BadgeSlider.component.test.jsx
│   │   │   │   │   │   ├── BadgeSlider.module.css
│   │   │   │   │   │   ├── BadgeSliderForm.component.jsx
│   │   │   │   │   │   ├── BadgeSliderForm.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeSlider.component.test.js.snap
│   │   │   │   │   │   │   ├── BadgeSlider.component.test.jsx.snap
│   │   │   │   │   │   │   ├── BadgeSliderForm.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeSliderForm.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeText/
│   │   │   │   │   │   ├── BadgeText.component.jsx
│   │   │   │   │   │   ├── BadgeText.component.test.jsx
│   │   │   │   │   │   ├── BadgeTextForm.component.jsx
│   │   │   │   │   │   ├── BadgeTextForm.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeText.component.test.js.snap
│   │   │   │   │   │   │   ├── BadgeText.component.test.jsx.snap
│   │   │   │   │   │   │   ├── BadgeTextForm.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeTextForm.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── BadgesGenerator/
│   │   │   │   │   ├── BadgesGenerator.component.jsx
│   │   │   │   │   ├── BadgesGenerator.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── BadgesGenerator.component.test.js.snap
│   │   │   │   │   │   └── BadgesGenerator.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── BasicSearch/
│   │   │   │   │   ├── BasicSearch.component.jsx
│   │   │   │   │   ├── BasicSearch.component.test.jsx
│   │   │   │   │   ├── BasicSearch.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── BasicSearch.component.test.js.snap
│   │   │   │   │   │   └── BasicSearch.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── FacetedManager/
│   │   │   │   │   ├── FacetedManager.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── FacetedSearch/
│   │   │   │   │   ├── FacetedSearch.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── FacetedToolbar/
│   │   │   │   │   ├── FacetedToolbar.component.jsx
│   │   │   │   │   ├── FacetedToolbar.module.css
│   │   │   │   │   └── index.js
│   │   │   │   ├── QuickSearchInput/
│   │   │   │   │   ├── QuickSearchInput.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── README.md
│   │   │   │   ├── context/
│   │   │   │   │   ├── badgeFaceted.context.js
│   │   │   │   │   └── facetedSearch.context.js
│   │   │   │   ├── facetedSearch.propTypes.js
│   │   │   │   ├── index.js
│   │   │   │   └── types/
│   │   │   │       ├── badgeDefinition.type.js
│   │   │   │       └── badgeDefinition.type.test.jsx
│   │   │   ├── constants.js
│   │   │   ├── controlled.js
│   │   │   ├── dictionary/
│   │   │   │   ├── badge.dictionary.js
│   │   │   │   ├── badge.dictionary.test.jsx
│   │   │   │   ├── helpers.dictionary.js
│   │   │   │   ├── helpers.dictionary.test.jsx
│   │   │   │   └── operator.dictionary.js
│   │   │   ├── helpers/
│   │   │   │   ├── usage.helpers.js
│   │   │   │   └── usage.helpers.test.jsx
│   │   │   ├── hooks/
│   │   │   │   ├── README.md
│   │   │   │   ├── badgeOverlayFlow.hook.js
│   │   │   │   └── facetedBadges.hook.js
│   │   │   ├── index.js
│   │   │   ├── stories/
│   │   │   │   ├── badge.stories.jsx
│   │   │   │   ├── badgesDefinitions.js
│   │   │   │   └── facetedSearch.stories.jsx
│   │   │   └── translate.js
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── faceted-search-query-client/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.js
│   │   │   ├── tql.js
│   │   │   └── tql.test.js
│   │   └── vitest.config.ts
│   ├── flow-designer/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── licence.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── actions/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── flow.actions.test.ts.snap
│   │   │   │   │   ├── link.actions.test.ts.snap
│   │   │   │   │   ├── node.actions.test.ts.snap
│   │   │   │   │   └── port.actions.test.ts.snap
│   │   │   │   ├── flow.actions.test.ts
│   │   │   │   ├── flow.actions.ts
│   │   │   │   ├── link.actions.test.ts
│   │   │   │   ├── link.actions.ts
│   │   │   │   ├── node.actions.test.ts
│   │   │   │   ├── node.actions.ts
│   │   │   │   ├── nodeType.actions.test.ts
│   │   │   │   ├── nodeType.actions.ts
│   │   │   │   ├── port.actions.test.ts
│   │   │   │   └── port.actions.ts
│   │   │   ├── api/
│   │   │   │   ├── data/
│   │   │   │   │   ├── data.test.ts
│   │   │   │   │   └── data.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── link/
│   │   │   │   │   ├── link.test.ts
│   │   │   │   │   └── link.ts
│   │   │   │   ├── node/
│   │   │   │   │   ├── node.test.ts
│   │   │   │   │   └── node.ts
│   │   │   │   ├── port/
│   │   │   │   │   ├── port.test.ts
│   │   │   │   │   └── port.ts
│   │   │   │   ├── position/
│   │   │   │   │   ├── position.test.ts
│   │   │   │   │   └── position.ts
│   │   │   │   ├── readme.md
│   │   │   │   ├── size/
│   │   │   │   │   ├── size.test.ts
│   │   │   │   │   └── size.ts
│   │   │   │   └── throwInDev.ts
│   │   │   ├── components/
│   │   │   │   ├── FlowDesigner.container.test.tsx
│   │   │   │   ├── FlowDesigner.container.tsx
│   │   │   │   ├── ZoomHandler.component.tsx
│   │   │   │   ├── ZoomHandler.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── FlowDesigner.container.test.tsx.snap
│   │   │   │   │   └── ZoomHandler.test.tsx.snap
│   │   │   │   ├── configuration/
│   │   │   │   │   ├── LinkType.component.ts
│   │   │   │   │   ├── NodeType.component.ts
│   │   │   │   │   ├── NodeType.test.tsx
│   │   │   │   │   └── PortType.component.ts
│   │   │   │   ├── grid/
│   │   │   │   │   ├── Grid.component.tsx
│   │   │   │   │   ├── Grid.test.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       └── Grid.test.tsx.snap
│   │   │   │   ├── link/
│   │   │   │   │   ├── AbstractLink.component.tsx
│   │   │   │   │   ├── LinkHandle.component.tsx
│   │   │   │   │   ├── LinkHandle.test.tsx
│   │   │   │   │   ├── LinksRenderer.component.tsx
│   │   │   │   │   ├── LinksRenderer.test.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       ├── LinkHandle.test.tsx.snap
│   │   │   │   │       └── LinksRenderer.test.tsx.snap
│   │   │   │   ├── node/
│   │   │   │   │   ├── AbstractNode.component.tsx
│   │   │   │   │   ├── AbstractNode.snapshot.test.tsx
│   │   │   │   │   ├── AbstractNode.test.tsx
│   │   │   │   │   ├── NodesRenderer.component.tsx
│   │   │   │   │   ├── NodesRenderer.test.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       ├── AbstractNode.snapshot.test.tsx.snap
│   │   │   │   │       └── NodesRenderer.test.tsx.snap
│   │   │   │   └── port/
│   │   │   │       ├── AbstractPort.component.tsx
│   │   │   │       ├── AbstractPort.test.tsx
│   │   │   │       ├── PortsRenderer.component.tsx
│   │   │   │       ├── PortsRenderer.test.tsx
│   │   │   │       └── __snapshots__/
│   │   │   │           ├── AbstractPort.test.tsx.snap
│   │   │   │           └── PortsRenderer.test.tsx.snap
│   │   │   ├── constants/
│   │   │   │   ├── flowdesigner.constants.ts
│   │   │   │   ├── flowdesigner.model.ts
│   │   │   │   └── flowdesigner.proptypes.ts
│   │   │   ├── customTypings/
│   │   │   │   └── index.d.ts
│   │   │   ├── index.ts
│   │   │   ├── reducers/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── flow.reducer.test.ts.snap
│   │   │   │   │   ├── link.reducer.test.ts.snap
│   │   │   │   │   ├── node.reducer.test.ts.snap
│   │   │   │   │   └── port.reducer.test.ts.snap
│   │   │   │   ├── flow.reducer.test.ts
│   │   │   │   ├── flow.reducer.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── link.reducer.test.ts
│   │   │   │   ├── link.reducer.ts
│   │   │   │   ├── node.reducer.test.ts
│   │   │   │   ├── node.reducer.ts
│   │   │   │   ├── nodeType.reducer.ts
│   │   │   │   ├── port.reducer.test.ts
│   │   │   │   └── port.reducer.ts
│   │   │   └── selectors/
│   │   │       ├── __snapshots__/
│   │   │       │   └── nodeSelectors.test.ts.snap
│   │   │       ├── linkSelectors.ts
│   │   │       ├── nodeSelectors.test.ts
│   │   │       ├── nodeSelectors.ts
│   │   │       ├── portSelectors.test.ts
│   │   │       └── portSelectors.ts
│   │   ├── test/
│   │   │   ├── fileMock.js
│   │   │   ├── styleMock.js
│   │   │   └── test-setup.js
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── forms/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .sass-lint.yml
│   │   ├── .storybook/
│   │   │   └── preview.js
│   │   ├── 6.0-BreakingChanges.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __mocks__/
│   │   │   ├── data.jsx
│   │   │   └── react-virtualized.js
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── FormSkeleton.module.css
│   │   │   ├── FormSkeleton.test.tsx
│   │   │   ├── FormSkeleton.tsx
│   │   │   ├── FormSwitcher.test.tsx
│   │   │   ├── FormSwitcher.tsx
│   │   │   ├── UIForm/
│   │   │   │   ├── FormTemplate/
│   │   │   │   │   ├── DefaultFormTemplate.component.jsx
│   │   │   │   │   ├── TextModeFormTemplate.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── Message/
│   │   │   │   │   ├── Message.component.jsx
│   │   │   │   │   ├── Message.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Message.component.test.js.snap
│   │   │   │   │   │   └── Message.component.test.jsx.snap
│   │   │   │   │   ├── generateId.js
│   │   │   │   │   ├── generateId.test.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── README.md
│   │   │   │   ├── UIForm.component.jsx
│   │   │   │   ├── UIForm.container.jsx
│   │   │   │   ├── UIForm.container.test.jsx
│   │   │   │   ├── UIForm.module.css
│   │   │   │   ├── Widget/
│   │   │   │   │   ├── Widget.component.jsx
│   │   │   │   │   ├── Widget.component.module.css
│   │   │   │   │   ├── Widget.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Widget.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ordering.json
│   │   │   │   │   ├── simple-merged.json
│   │   │   │   │   ├── simple.json
│   │   │   │   │   └── widgets.json
│   │   │   │   ├── context.js
│   │   │   │   ├── customFormats.js
│   │   │   │   ├── customFormats.test.js
│   │   │   │   ├── doc/
│   │   │   │   │   ├── conditional-rendering.md
│   │   │   │   │   ├── display-mode.md
│   │   │   │   │   ├── how-to-use.md
│   │   │   │   │   ├── principles.md
│   │   │   │   │   ├── triggers.md
│   │   │   │   │   ├── validation.md
│   │   │   │   │   └── widgets.md
│   │   │   │   ├── fields/
│   │   │   │   │   ├── Button/
│   │   │   │   │   │   ├── Button.component.jsx
│   │   │   │   │   │   ├── Button.component.test.jsx
│   │   │   │   │   │   ├── Buttons.component.jsx
│   │   │   │   │   │   ├── Buttons.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── SingleButton.component.jsx
│   │   │   │   │   │   ├── SingleButton.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Button.component.test.js.snap
│   │   │   │   │   │   │   ├── Button.component.test.jsx.snap
│   │   │   │   │   │   │   ├── Buttons.component.test.js.snap
│   │   │   │   │   │   │   ├── Buttons.component.test.jsx.snap
│   │   │   │   │   │   │   ├── SingleButton.component.test.js.snap
│   │   │   │   │   │   │   └── SingleButton.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── CheckBox/
│   │   │   │   │   │   ├── CheckBox.component.jsx
│   │   │   │   │   │   ├── CheckBox.test.jsx
│   │   │   │   │   │   ├── CheckBoxes.component.jsx
│   │   │   │   │   │   ├── CheckBoxes.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── SimpleCheckBox.component.jsx
│   │   │   │   │   │   ├── SimpleCheckBox.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── CheckBox.test.js.snap
│   │   │   │   │   │   │   ├── CheckBox.test.jsx.snap
│   │   │   │   │   │   │   ├── CheckBoxes.test.js.snap
│   │   │   │   │   │   │   ├── CheckBoxes.test.jsx.snap
│   │   │   │   │   │   │   ├── SimpleCheckBox.test.js.snap
│   │   │   │   │   │   │   └── SimpleCheckBox.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.test.js.snap
│   │   │   │   │   │   │       └── TextMode.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Code/
│   │   │   │   │   │   ├── Code.component.test.tsx
│   │   │   │   │   │   ├── Code.component.tsx
│   │   │   │   │   │   ├── CodeSkeleton.component.tsx
│   │   │   │   │   │   ├── CodeSkeleton.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.test.tsx
│   │   │   │   │   │   │   └── TextMode.component.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Comparator/
│   │   │   │   │   │   ├── Comparator.component.jsx
│   │   │   │   │   │   ├── Comparator.component.test.jsx
│   │   │   │   │   │   ├── Comparator.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Comparator.component.test.js.snap
│   │   │   │   │   │   │   └── Comparator.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.test.js.snap
│   │   │   │   │   │   │       └── TextMode.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Datalist/
│   │   │   │   │   │   ├── Datalist.component.jsx
│   │   │   │   │   │   ├── Datalist.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Datalist.component.test.js.snap
│   │   │   │   │   │   │   └── Datalist.component.test.jsx.snap
│   │   │   │   │   │   ├── constants.js
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Date/
│   │   │   │   │   │   ├── Date.component.jsx
│   │   │   │   │   │   ├── Date.component.test.jsx
│   │   │   │   │   │   ├── Date.utils.js
│   │   │   │   │   │   ├── Date.utils.test.js
│   │   │   │   │   │   ├── DateTime.component.jsx
│   │   │   │   │   │   ├── DateTime.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Time.component.jsx
│   │   │   │   │   │   ├── Time.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Date.component.test.js.snap
│   │   │   │   │   │   │   ├── Date.component.test.jsx.snap
│   │   │   │   │   │   │   ├── DateTime.component.test.js.snap
│   │   │   │   │   │   │   ├── DateTime.component.test.jsx.snap
│   │   │   │   │   │   │   ├── Time.component.test.js.snap
│   │   │   │   │   │   │   └── Time.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Enumeration/
│   │   │   │   │   │   ├── EnumerationWidget.jsx
│   │   │   │   │   │   ├── EnumerationWidget.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── utils/
│   │   │   │   │   │       ├── utils.js
│   │   │   │   │   │       └── utils.test.js
│   │   │   │   │   ├── FieldTemplate/
│   │   │   │   │   │   ├── FieldTemplate.component.jsx
│   │   │   │   │   │   ├── FieldTemplate.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── FieldTemplate.component.test.js.snap
│   │   │   │   │   │   │   └── FieldTemplate.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── File/
│   │   │   │   │   │   ├── File.component.jsx
│   │   │   │   │   │   ├── File.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── File.component.test.js.snap
│   │   │   │   │   │   │   └── File.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── KeyValue/
│   │   │   │   │   │   ├── KeyValue.component.jsx
│   │   │   │   │   │   ├── KeyValue.component.test.jsx
│   │   │   │   │   │   ├── KeyValue.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── KeyValue.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ListView/
│   │   │   │   │   │   ├── ListView.component.jsx
│   │   │   │   │   │   ├── ListView.component.test.jsx
│   │   │   │   │   │   ├── ListView.utils.js
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── MultiSelectTag/
│   │   │   │   │   │   ├── MultiSelectTag.component.jsx
│   │   │   │   │   │   ├── MultiSelectTag.component.test.jsx
│   │   │   │   │   │   ├── MultiSelectTag.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   └── TextMode.module.css
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── NestedListView/
│   │   │   │   │   │   ├── NestedListView.component.jsx
│   │   │   │   │   │   ├── NestedListView.module.css
│   │   │   │   │   │   ├── NestedListView.test.jsx
│   │   │   │   │   │   ├── NestedListView.utils.js
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── RadioOrSelect/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── RadioOrSelect.component.jsx
│   │   │   │   │   │   ├── RadioOrSelect.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── RadioOrSelect.component.test.js.snap
│   │   │   │   │   │   │   └── RadioOrSelect.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Radios/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Radios.component.jsx
│   │   │   │   │   │   ├── Radios.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Radios.component.test.js.snap
│   │   │   │   │   │   │   └── Radios.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ResourcePicker/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── ResourcePicker.component.jsx
│   │   │   │   │   │   ├── ResourcePicker.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── ResourcePicker.component.test.jsx.snap
│   │   │   │   │   │   ├── constants.js
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Select/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Select.component.jsx
│   │   │   │   │   │   ├── Select.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Select.component.test.js.snap
│   │   │   │   │   │   │   └── Select.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Text/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Text.component.jsx
│   │   │   │   │   │   ├── Text.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Text.component.test.js.snap
│   │   │   │   │   │   │   └── Text.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TextArea/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── TextArea.component.jsx
│   │   │   │   │   │   ├── TextArea.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TextArea.component.test.js.snap
│   │   │   │   │   │   │   └── TextArea.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TimezoneList/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── TimezoneList.component.jsx
│   │   │   │   │   │   ├── TimezoneList.component.test.jsx
│   │   │   │   │   │   ├── TimezoneList.utils.js
│   │   │   │   │   │   ├── TimezoneList.utils.test.js
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TimezoneList.component.test.js.snap
│   │   │   │   │   │   │   └── TimezoneList.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toggle/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Toggle.component.jsx
│   │   │   │   │   │   ├── Toggle.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Toggle.component.test.js.snap
│   │   │   │   │   │   │   └── Toggle.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── fieldsets/
│   │   │   │   │   ├── Array/
│   │   │   │   │   │   ├── Array.component.jsx
│   │   │   │   │   │   ├── Array.component.test.jsx
│   │   │   │   │   │   ├── ArrayItem.component.jsx
│   │   │   │   │   │   ├── ArrayItem.component.test.jsx
│   │   │   │   │   │   ├── ArrayItem.module.css
│   │   │   │   │   │   ├── DefaultArrayTemplate.component.jsx
│   │   │   │   │   │   ├── DefaultArrayTemplate.component.test.jsx
│   │   │   │   │   │   ├── DefaultArrayTemplate.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Array.component.test.js.snap
│   │   │   │   │   │   │   ├── Array.component.test.jsx.snap
│   │   │   │   │   │   │   ├── ArrayItem.component.test.js.snap
│   │   │   │   │   │   │   ├── ArrayItem.component.test.jsx.snap
│   │   │   │   │   │   │   ├── DefaultArrayTemplate.component.test.js.snap
│   │   │   │   │   │   │   └── DefaultArrayTemplate.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextModeArrayTemplate.component.jsx
│   │   │   │   │   │   │   ├── TextModeArrayTemplate.component.test.jsx
│   │   │   │   │   │   │   ├── TextModeArrayTemplate.module.css
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextModeArrayTemplate.component.test.js.snap
│   │   │   │   │   │   │       └── TextModeArrayTemplate.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── CollapsibleFieldset/
│   │   │   │   │   │   ├── CollapsibleFieldset.component.jsx
│   │   │   │   │   │   ├── CollapsibleFieldset.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── CollapsibleFieldset.component.test.js.snap
│   │   │   │   │   │   │   └── CollapsibleFieldset.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Columns/
│   │   │   │   │   │   ├── Columns.component.jsx
│   │   │   │   │   │   ├── Columns.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Columns.component.test.js.snap
│   │   │   │   │   │   │   └── Columns.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Fieldset/
│   │   │   │   │   │   ├── Fieldset.component.jsx
│   │   │   │   │   │   ├── Fieldset.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Fieldset.component.test.js.snap
│   │   │   │   │   │   │   └── Fieldset.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Tabs/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Tabs.component.jsx
│   │   │   │   │   │   ├── Tabs.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Tabs.component.test.js.snap
│   │   │   │   │   │   │   └── Tabs.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── index.js
│   │   │   │   ├── index.test.js
│   │   │   │   ├── lang.js
│   │   │   │   ├── merge.js
│   │   │   │   ├── merge.test.js
│   │   │   │   ├── trigger/
│   │   │   │   │   └── index.js
│   │   │   │   └── utils/
│   │   │   │       ├── array.js
│   │   │   │       ├── array.test.js
│   │   │   │       ├── condition.js
│   │   │   │       ├── condition.test.js
│   │   │   │       ├── errors.js
│   │   │   │       ├── errors.test.js
│   │   │   │       ├── index.js
│   │   │   │       ├── labels.jsx
│   │   │   │       ├── labels.module.css
│   │   │   │       ├── propTypes.js
│   │   │   │       ├── properties.js
│   │   │   │       ├── properties.test.js
│   │   │   │       ├── templates.js
│   │   │   │       ├── triggers.js
│   │   │   │       ├── validation.js
│   │   │   │       ├── validation.test.js
│   │   │   │       └── widgets.js
│   │   │   ├── constants.ts
│   │   │   ├── declaration.d.ts
│   │   │   ├── index.ts
│   │   │   ├── rhf/
│   │   │   │   ├── fields/
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.stories.jsx
│   │   │   │   │   │   ├── Input.test.jsx
│   │ 

================================================
FILE CONTENTS
================================================

================================================
FILE: .changeset/README.md
================================================
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)


================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config@1.6.0/schema.json",
  "changelog": "@changesets/cli/changelog",
  "commit": false,
  "access": "restricted",
  "baseBranch": "master",
  "updateInternalDependencies": "patch",
  "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
    "onlyUpdatePeerDependentsWhenOutOfRange": true
  },
  "ignore": []
}


================================================
FILE: .editorconfig
================================================
# http://editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.js, *.jsx, *.css, *.scss]
indent_style = tab
# special rule for json expecially package.json wich npm reset to space for any modification
[*.json]
indent_style = space
indent_size = 2


================================================
FILE: .github/ISSUE_TEMPLATE/architecture_decision_record.md
================================================
---
name: Architecture Decision Record
about: Create an architecture decision record to capture an important architecture decision made along with its context and consequences.
title: ''
labels: 'architecture decision record'
assignees: ''

---

## Status

What is the status, such as proposed, accepted, rejected, deprecated, superseded, etc.?

## Context

How does it work today and why a decision is needed? If we've to tell to someone new. 

## Problems

What is the issue that we're seeing that is motivating this decision or change?

## Solutions

What is the change that we're proposing and/or doing?

## Consequences

What becomes easier or more difficult to do because of this change?

================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
 - OS: [e.g. iOS]
 - Browser [e.g. chrome, safari]
 - Version [e.g. 22]

**Smartphone (please complete the following information):**
 - Device: [e.g. iPhone6]
 - OS: [e.g. iOS8.1]
 - Browser [e.g. stock browser, safari]
 - Version [e.g. 22]

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
**What is the problem this PR is trying to solve?**

**What is the chosen solution to this problem?**

**Please check if the PR fulfills these requirements**

- [ ] The PR have used `yarn changeset` to a request a release from the CI if wanted.
- [ ] The PR commit message follows our [guidelines](https://github.com/talend/tools/blob/master/tools-root-github/CONTRIBUTING.md)
- [ ] Tests for the changes have been added (for bug fixes / features) And [non reg](./screenshots.md) done before need review
- [ ] Docs have been added / updated (for bug fixes / features)
- [ ] Related design / discussions / pages (not in jira), if any, are all linked or available in the PR

<!-- You can add more checkboxes here -->

**[ ] This PR introduces a breaking change**

<!-- if the PR introduces a breaking change, add the description here. So when you merge this PR, add this description into the [breaking change wiki](https://github.com/Talend/ui/wiki/BREAKING-CHANGE) in the next version -->

<!-- **Original Template** -->

<!-- https://github.com/Talend/tools/blob/master/tools-root-github/.github/PULL_REQUEST_TEMPLATE.md -->


================================================
FILE: .github/actions/lint-merge-report/action.yml
================================================
name: 'Lint merge report'
description: 'Merge eslint and stylelint reports filtered by git diff'
author: 'Talend'
inputs:
  base-branch:
    description: 'Base branch to compare diff against'
    required: true
  head-branch:
    description: 'Head branch (PR branch)'
    required: true

runs:
  using: 'composite'
  steps:
    - name: Merge lint reports
      shell: bash
      run: node $GITHUB_ACTION_PATH/merge-lint-reports.mjs ${{ inputs.base-branch }} ${{ inputs.head-branch }}


================================================
FILE: .github/actions/lint-merge-report/merge-lint-reports.mjs
================================================
#!/usr/bin/env node
/* eslint-disable no-console */
import { spawn } from 'child_process';
import fs from 'fs';
import path from 'path';

const [baseBranch, headBranch] = process.argv.slice(2);

if (!baseBranch || !headBranch) {
	console.error('Usage: merge-lint-reports.mjs <base-branch> <head-branch>');
	process.exit(1);
}

const reports = ['eslint-report.json', 'stylelint-report.json'];

function getPackageDirs() {
	const configPath = path.join(process.cwd(), 'talend-scripts.json');
	if (fs.existsSync(configPath)) {
		const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
		return config?.lintMergeReport?.packageDirs ?? [];
	}
	return [];
}

function getPackages(packageDirs) {
	return packageDirs.flatMap(dir =>
		fs.readdirSync(dir).map(subDir => ({
			name: subDir,
			location: `${dir}/${subDir}`,
		})),
	);
}

function transform(item) {
	if (item.source && !item.filePath) {
		item.filePath = item.source;
		delete item.source;
	}
	if (item.warnings && !item.messages) {
		item.messages = item.warnings.map(w => ({
			...w,
			severity: 1,
			message: w.text,
			ruleId: w.rule,
		}));
		item.warningCount = item.warnings.length;
		delete item.warning;
	} else if (item.messages) {
		item.messages = item.messages.map(w => ({ ...w, severity: 1 }));
		item.warningCount += item.errorCount;
		item.errorCount = 0;
	}
	return item;
}

function runGitDiff(base, head) {
	return new Promise((resolve, reject) => {
		const proc = spawn('git', ['diff', '--name-only', `origin/${base}`, `origin/${head}`]);
		let stdout = '';
		let stderr = '';
		proc.stdout.on('data', data => {
			stdout += data.toString();
		});
		proc.stderr.on('data', data => {
			stderr += data.toString();
		});
		proc.on('close', code => {
			if (code !== 0) {
				reject(new Error(`git diff failed (exit ${code}): ${stderr}`));
			} else {
				resolve(
					stdout
						.split('\n')
						.map(s => s.trim())
						.filter(Boolean),
				);
			}
		});
	});
}

const packageDirs = getPackageDirs();
const packages = getPackages(packageDirs);

if (packages.length === 0) {
	console.error('No packages found. Check lintMergeReport.packageDirs in talend-scripts.json');
	process.exit(1);
}

const files = await runGitDiff(baseBranch, headBranch);
const onlyIfInDiff = lint => files.some(f => lint.filePath.endsWith(`/${f}`));

const buff = [];
for (const pkg of packages) {
	for (const report of reports) {
		const fpath = `${pkg.location}/${report}`;
		if (fs.existsSync(fpath)) {
			try {
				const items = JSON.parse(fs.readFileSync(fpath, 'utf-8'));
				buff.push(...items.map(transform).filter(onlyIfInDiff));
			} catch (e) {
				console.error(`Failed to read ${fpath}:`, e.message);
			}
		}
	}
}

const target = path.join(process.cwd(), 'eslint-report.json');
console.log(`Merged ${buff.length} lint result(s) → ${target}`);
fs.writeFileSync(target, JSON.stringify(buff, null, 2));


================================================
FILE: .github/actions/setup-node/action.yml
================================================
name: 'Setup nodejs'
description: 'Setup nodejs'
author: 'Talend'
inputs:
  NPM_TOKEN:
    description: 'Token used for GitHub Packages auth (defaults to GITHUB_TOKEN)'
    required: true

runs:
  using: 'composite'
  steps:
    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
        node-version-file: '.tool-versions'
        # set up auth to read in from env.NODE_AUTH_TOKEN.
        registry-url: 'https://npm.pkg.github.com'
        scope: '@talend'

    - name: Install yarn
      shell: bash
      run: npm i -g yarn

    - name: Get yarn cache directory path
      id: yarn-cache-dir-path
      shell: bash
      run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT

    - uses: actions/cache@v4
      id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
      with:
        path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
        key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
        restore-keys: |
          ${{ runner.os }}-yarn-


================================================
FILE: .github/copilot-instructions.md
================================================
# Talend/UI — AI Coding Instructions

## Repository Overview

This is **Talend/UI**, a Yarn workspaces monorepo containing shared front-end libraries for Talend products.

- **Workspaces**: `packages/*`, `tools/*`, `fork/*`
- **Stack**: React 18, TypeScript 5, Babel 7
- **Build tooling**: shared `@talend/scripts-*` packages (see `tools/`)
- **Versioning**: [Changesets](https://github.com/changesets/changesets) (`@changesets/cli`)
- **Package manager**: Yarn 1 (classic)

Run `yarn install` at the root. The `postinstall` script builds all libraries (`build:lib` + `build:lib:esm`).

---

## Code Style & Formatting

### Prettier

Config: `@talend/scripts-config-prettier` (see `tools/scripts-config-prettier/.prettierrc.js`).

| Setting          | Value              |
| ---------------- | ------------------ |
| Print width      | 100                |
| Quotes           | Single (`'`)       |
| Trailing commas  | All                |
| Semicolons       | Yes                |
| Indentation      | **Tabs**           |
| Arrow parens     | Avoid (`x => x`)   |
| JSON / rc files  | 2-space indent     |
| SCSS files       | 1000 print width   |

Prettier runs automatically on commit via `lint-staged` on `*.{json,md,mdx,html,js,jsx,ts,tsx}`.

### EditorConfig

- LF line endings, UTF-8
- Trim trailing whitespace, insert final newline
- Tabs for `.js`, `.jsx`, `.css`, `.scss`
- 2-space indent for `.json`

### ESLint

Each package has an `.eslintrc.json` extending `@talend` (resolved from `@talend/eslint-config` → `tools/scripts-config-eslint`).

Key rules and extends:

- `eslint:recommended`, `airbnb-base`, `plugin:prettier/recommended`
- `plugin:react/recommended`, `plugin:react/jsx-runtime`
- `plugin:react-hooks/recommended` — `rules-of-hooks` is error, `exhaustive-deps` is warning
- `plugin:jsx-a11y/recommended`
- `plugin:testing-library/react`, `plugin:jest-dom/recommended`
- `plugin:storybook/recommended`

Important rules:

- **No `console.log`** — only `console.warn` and `console.error` allowed
- JSX only in `.jsx` / `.tsx` files (`react/jsx-filename-extension`)
- `@talend/import-depth` (error) — controls import depth into packages
- `import/prefer-default-export`: off — named exports are fine
- `react/jsx-props-no-spreading`: off — spread is allowed
- `react/require-default-props`: off
- `@typescript-eslint/no-explicit-any`: warning (not error) in `.ts`/`.tsx` files
- `import/no-extraneous-dependencies`: off in test and story files

For TypeScript projects, the config auto-detects `tsconfig.json` and adds `@typescript-eslint` with `airbnb-typescript`.

### Stylelint

Config: `stylelint-config-sass-guidelines` (see `tools/scripts-config-stylelint/.stylelintrc.js`).

- Tab indentation
- No `!important` (`declaration-no-important`)
- No `transition: all` — be specific about transitioned properties
- Max nesting depth: 5
- Lowercase hex colors, named colors where possible
- No unspaced `calc()` operators

---

## TypeScript

Base config: `@talend/scripts-config-typescript/tsconfig.json` (see `tools/scripts-config-typescript/`).

| Setting                      | Value      |
| ---------------------------- | ---------- |
| `strict`                     | `true`     |
| `target`                     | `ES2015`   |
| `module`                     | `esnext`   |
| `moduleResolution`           | `bundler`  |
| `jsx`                        | `react-jsx`|
| `declaration`                | `true`     |
| `sourceMap`                  | `true`     |
| `isolatedModules`            | `true`     |
| `esModuleInterop`            | `true`     |
| `forceConsistentCasingInFileNames` | `true` |
| `skipLibCheck`               | `true`     |

Each package has a local `tsconfig.json` that extends this base:

```jsonc
{
  "extends": "@talend/scripts-config-typescript/tsconfig.json",
  "include": ["src/**/*"],
  "compilerOptions": {
    "rootDirs": ["src"]
  }
}
```

---

## Component Architecture

### Closed API Pattern (Design System)

Design system components (`packages/design-system`) use **closed APIs** — consumers cannot pass `className`, `style`, or `css` props. This ensures visual homogeneity across all products.

- **Atoms** (Button, Link, Input): single-tag elements, accept `string` children, typed to mirror their HTML counterparts. Props extend native HTML attributes minus `className`/`style`.
- **Molecules/Organisms** (Modal, Dropdown, Combobox): assembled components with rich props-based APIs. No composition — consumers hydrate via typed props.
- **Templates/Layouts**: may use composition (`children`) for page-level arrangement.

### Styling

- **CSS Modules** with `.module.css` files — this is the standard for all new code. No Styled Components.
- **Design tokens** via CSS custom properties from `@talend/design-tokens`. Use them for all colors, spacing, fonts, border-radius, shadows, transitions, etc.
- Use the `classnames` library for conditional class merging.

### Component Conventions

- Support `ForwardRef` — wrap components with `forwardRef` so consumers can pass refs.
- Match native HTML element types — component props should extend the underlying element's attributes (e.g., `HTMLButtonElement` for buttons).
- Export components from the package's root `index.ts`.
- Use `DataAttributes` type from `src/types` to support `data-*` attributes.

### `data-testid` Convention

All interactive elements must have `data-testid` attributes following this pattern:

```
[data-testid="<block_name>.<element_type>[?<element_index>].<?element_identifier>"]
```

| Segment              | Required | Example                     |
| -------------------- | -------- | --------------------------- |
| `block_name`         | Yes      | `modal`, `inlineediting`    |
| `element_type`       | Yes      | `button`, `input`, `textarea` |
| `element_index`      | No       | `[1]`, `[2]`                |
| `element_identifier` | No       | `close`, `reveal`, `edit`   |

Examples:
- `modal.button.close`
- `password.button.reveal`
- `inlineediting.textarea`
- `switch.radio[1]`

Components should support a `data-testid` prefix prop so consumers can namespace their test IDs (e.g., `my-prefix.inlineediting.button.edit`).

---

## Component Folder Structure

```
ComponentName/
├── ComponentName.tsx           # Main component implementation
├── ComponentName.test.tsx      # Jest + RTL + jest-axe tests
├── ComponentName.module.css    # CSS Modules styles (with design tokens)
├── index.ts                    # Clean public exports
├── Primitive/                  # Internal building-block sub-components
│   ├── ComponentPrimitive.tsx
│   └── ComponentStyles.module.css
└── variations/                 # Standalone variant sub-components
    ├── ComponentVariantA.tsx
    └── ComponentVariantA.module.css
```

- Stories live under `src/stories/` in the design-system package, grouped by category (e.g., `clickable/`, `feedback/`).
- The `index.ts` barrel file re-exports everything consumers need. All components must be exported from the package root `src/index.ts`.

---

## Testing

### Framework & Setup

- **Vitest** as test runner
- **@testing-library/react** for component rendering and queries
- **jest-axe** for automated accessibility checks
- Timezone forced to `UTC` (`TZ=UTC`)

### Test File Conventions

- Name test files `*.test.tsx` or `*.test.ts`, co-located next to the source file.
- Test file regex: `(/__tests__/.*|src/).*\.test.(js|jsx|ts|tsx)$`

### Writing Tests

Import test globals explicitly:

```tsx
import { describe, it, expect } from '@jest/globals';
```

Use `@testing-library/react` for rendering:

```tsx
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
```

**Every component test must include an accessibility check:**

```tsx
import { axe } from 'jest-axe';

it('should render a11y html', async () => {
  const { container } = render(
    <main>
      <MyComponent />
    </main>,
  );
  expect(container.firstChild).toMatchSnapshot();
  const results = await axe(document.body);
  expect(results).toHaveNoViolations();
});
```

**Interaction tests** — use `userEvent.setup()`, not `fireEvent` for user interactions:

```tsx
it('should handle click', async () => {
  const user = userEvent.setup();
  render(<MyComponent onClick={jest.fn()} />);
  await user.click(screen.getByRole('button'));
});
```

**Querying elements:**
- Prefer `screen.getByRole()`, `screen.getByText()`, `screen.getByLabelText()`
- Use `screen.getByTestId()` for `data-testid` attributes
- Use `screen.queryBy*` for asserting absence

**Mocking:**
- Use `jest.fn()` for callback mocks
- Mock `@talend/utils` when components generate IDs:

```tsx
jest.mock('@talend/utils', () => {
  let i = 0;
  return {
    randomUUID: () => `mocked-uuid-${i++}`,
  };
});
```

**Snapshots** — use `container.firstChild` with `toMatchSnapshot()`.

---

## Internationalization (i18n)

Uses `react-i18next` backed by `i18next`.

### Namespaces

Each package has its own i18n namespace:

| Package      | Namespace        |
| ------------ | ---------------- |
| components   | `tui-components` |
| forms        | `tui-forms`      |

### Translation Keys

- Format: `COMPONENTNAME_KEY` — prefix by the parent component name
- Examples: `LIST_DISPLAY`, `HEADERBAR_GO_PORTAL`, `DELETE_RESOURCE_MESSAGE`

Always provide a `defaultValue`:

```tsx
t('SUFFIX_COMPONENT_KEY', { defaultValue: 'Displayed text' });
```

For markup in translations, use the `Trans` component:

```tsx
import { Trans } from 'react-i18next';

<Trans i18nKey="DELETE_RESOURCE_MESSAGE" parent="div">
  Are you sure you want to remove the {{ resourceLabel }}
  <strong>{{ resourceName }}</strong>?
</Trans>
```

Extract translation catalogs with `yarn extract-i18n` in the relevant package.

---

## Dependencies Management

Follow these rules when adding dependencies to a package's `package.json`:

### `devDependencies`

For build-only tools or packages that are also a `peerDependency`. No runtime impact.

Examples: `@talend/scripts-core`, `react` (when also in peerDeps), `@types/*` (unless exported types depend on them), `i18next-scanner`

### `dependencies`

For packages used at runtime that consumers don't need to configure themselves.

Examples: `@talend/design-tokens`, `classnames`, `lodash`, `date-fns`, `react-transition-group`

### `peerDependencies`

Only for packages the **consumer must import or configure** for the library to work.

Examples: `react`, `react-dom`, `i18next`, `react-i18next`, `@talend/icons`

### Type Dependencies

`@types/*` packages go in `devDependencies` unless the library's **exported types** depend on them — in that case, add to `dependencies`.

---

## Build & Module Formats

Libraries produce dual output:

| Format   | Directory | Module    |
| -------- | --------- | --------- |
| CommonJS | `lib/`    | `main`    |
| ESM      | `lib-esm/`| `module`  |

Build commands:

```bash
talend-scripts build          # CJS → lib/
talend-scripts build --esm    # ESM → lib-esm/
```

Package `exports` field should map both:

```json
{
  "main": "lib/index.js",
  "module": "lib-esm/index.js",
  "exports": {
    ".": {
      "import": "./lib-esm/index.js",
      "require": "./lib/index.js"
    }
  }
}
```

Babel config (`@talend/scripts-config-babel`):
- `@babel/preset-env` (targets: last 1 year of browsers, no IE/Samsung/Opera mini)
- `@babel/preset-react` with `runtime: 'automatic'` (no need to import React)
- `@babel/preset-typescript` with `allExtensions: true, isTSX: true`

---

## Storybook

- Stories go in `.stories.tsx` files
- Type stories with `StoryFn` or `StoryObj` from `@storybook/react`
- Use `action()` from `storybook/actions` for callback args
- Documentation pages use `.stories.mdx` format
- Stories should cover all component variations, states, and edge cases
- Use design tokens and the design system's own components in stories

Example structure:

```tsx
import { StoryFn, StoryObj } from '@storybook/react';
import { action } from 'storybook/actions';
import { MyComponent } from '../../';

export default {
  component: MyComponent,
  title: 'Category/MyComponent',
} as StoryObj<typeof MyComponent>;

export const Default: StoryFn<typeof MyComponent> = args => (
  <MyComponent {...args} />
);
```

---

## Versioning & Releases

- Uses **Changesets** for version management.
- Run `yarn changeset` to create a changeset file describing your change before opening a PR.
- Base branch: `master`
- Internal dependency updates use `patch` bumps.
- Release: `yarn release` (runs `pre-release` then `changeset publish`).

---

## PR Checklist

Before opening a pull request:

- [ ] Run `yarn changeset` if a release is needed
- [ ] Tests added for bug fixes and features
- [ ] Documentation updated if applicable
- [ ] Related design links or discussions included in the PR description
- [ ] Breaking changes documented (update the [breaking change wiki](https://github.com/Talend/ui/wiki/BREAKING-CHANGE))

---

## Git Hooks

- **Husky** pre-commit hook runs `lint-staged`
- `lint-staged` auto-formats all staged `*.{json,md,mdx,html,js,jsx,ts,tsx}` files with Prettier
- Code is automatically formatted on every commit — no manual formatting needed

---

## Key ADRs (Architecture Decision Records)

These documents in `docs/` define architectural choices. Read them before making structural changes:

| ADR | Summary |
| --- | ------- |
| `adr-css-modules.md` | CSS Modules replace Styled Components for all new styling |
| `adr-composition-vs-api.md` | Design system uses closed APIs over composition |
| `adr-data-test.md` | `data-testid` naming convention for QA automation |
| `adr-dependencies.md` | Guidelines for `dependencies` vs `peerDependencies` vs `devDependencies` |
| `adr-2024-04-add-support-to-esm.md` | ESM support strategy and dual CJS/ESM output |


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      - dependency-name: "@storybook/*"
      - dependency-name: "@talend/*"
      - dependency-name: "@types/react*"
        versions: ^17
      - dependency-name: "react*"
        versions: ^17
      - dependency-name: "css-loader"
        update-types: [ "version-update:semver-major" ]
      - dependency-name: "sass-loader"
        update-types: [ "version-update:semver-major" ]
      - dependency-name: "style-loader"
        update-types: [ "version-update:semver-major" ]
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"


================================================
FILE: .github/workflows/changeset.yml
================================================
name: Changeset (Release)

on:
  push:
    branches:
      - master

permissions:
  contents: write
  deployments: read
  pull-requests: write
  statuses: write

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
  cancel-in-progress: true

jobs:
  release:
    name: Release
    environment: main
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
          fetch-depth: 0
          persist-credentials: false

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: has changeset file
        id: changesetfiles
        run: |
          count=$(find .changeset -name "*.md" -type f | wc -l)
          echo "count=$count" >> $GITHUB_OUTPUT
          if [ $count -gt 0 ]; then
            echo "Found $count md file(s)"
            find .changeset -name "*.md" -type f
          else
            echo "No md files found"
          fi

      - name: Install and Build
        if: steps.changesetfiles.outputs.count == 1
        run: yarn --frozen-lockfile
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Install but do not build
        if: steps.changesetfiles.outputs.count > 1
        run: yarn --ignore-scripts --frozen-lockfile
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Create Release Pull Request or Publish to npm
        id: changesets
        uses: changesets/action@6a0a831ff30acef54f2c6aa1cbbc1096b066edaf #v1.7.0
        with:
          # This expects you to have a script called release which does a build for your packages and calls changeset publish
          publish: yarn release
          commit: "chore: prepare release"
          title: "chore: prepare release"
        env:
          GITHUB_TOKEN: ${{ secrets.CHANGESET_GITHUB_TOKEN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

  update-cdn-content:
    needs: release
    environment: main
    runs-on: ubuntu-latest
    steps:
      - run: |
          curl -XPOST -u "build-travis-ci:${{ secrets.CDN_CONTENT_PAT }}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/talend/cdn-content/actions/workflows/download-talend-ui.yml/dispatches --data '{"ref": "main"}'


================================================
FILE: .github/workflows/clean-demo.yml
================================================
name: Delete PR folder in gh-pages
on:
  pull_request:
    types: [closed]

permissions:
  contents: write
  pull-requests: write
  statuses: write
  checks: write
  pages: write

jobs:
  clean:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout demo branch
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          path: demo
          ref: gh-pages

      - name: Delete PR folder
        run: |
          rm -rf ./demo/${{ github.event.number }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Commit demo for gh-pages
        uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 #v1.5
        with:
          directory: "./demo"
          github_token: ${{ secrets.GITHUB_TOKEN }}
          message: "doc: cleanup demo"
          branch: gh-pages


================================================
FILE: .github/workflows/demo.yml
================================================
name: Demo CI
on:
  push:
    branches:
      - master

permissions:
  contents: write
  pull-requests: write
  statuses: write
  checks: write
  pages: write

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
  group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
  cancel-in-progress: true

jobs:
  build:
    name: Build and test
    environment: pull_request_unsafe
    runs-on: ubuntu-latest

    steps:
      - name: Checkout sources
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Install
        working-directory: ./
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: yarn install --frozen-lockfile

      - name: Build Demo
        run: yarn test:demo

      - name: Checkout demo branch
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          path: demo
          ref: gh-pages

      - name: Add demo and commit it
        # symlink creation : workaround to be able to use service worker on storybook both in local and via github pages deployment
        run: |
          echo "Prepare demo folder"
          cd demo && git rm -rf --ignore-unmatch ./main && cd ..
          mkdir -p ./demo/main
          cp ./index.html ./demo/main/
          mkdir ./demo/main/cmf
          mkdir ./demo/main/containers
          mkdir ./demo/main/design-system
          mkdir ./demo/main/faceted-search
          mkdir ./demo/main/theme
          mkdir ./demo/main/storybook-one
          cp -R packages/containers/storybook-static/* ./demo/main/containers
          cp -R packages/design-docs/storybook-static/* ./demo/main/design-system
          cp -R packages/faceted-search/storybook-static/* ./demo/main/faceted-search
          cp -R packages/theme/dist/* ./demo/main/theme
          cp -R packages/storybook-one/storybook-static/* ./demo/main/storybook-one
          echo Size of demo:
          du -d 1 -h ./demo/main
          cd demo && git add .

      - name: Commit demo for gh-pages
        uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 #v1.5
        with:
          directory: "./demo"
          github_token: ${{ secrets.GITHUB_TOKEN }}
          message: "doc: update demo"
          branch: gh-pages


================================================
FILE: .github/workflows/dependencies.yml
================================================
name: Upgrade dependencies

on:
  workflow_dispatch:
  schedule:
    - cron: "0 10 * * WED"

permissions:
  contents: write
  deployments: read
  pull-requests: write
  statuses: write

jobs:
  upgrade:
    name: Upgrade dependencies
    environment: pull_request_unsafe
    runs-on: ubuntu-latest
    continue-on-error: true  # we want the PR to popup even if sth goes wrong

    steps:
      - name: Checkout
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Upgrade dependencies
        run: |
          yarn --frozen-lockfile --ignore-scripts
          yarn talend-upgrade-deps --ignore-scripts
          yarn talend-upgrade-deps --scope=@talend --latest --ignore-scripts
          yarn talend-upgrade-deps --latest --dry > dependencies-latest.txt
          git add dependencies-latest.txt
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 #v8.1.0
        with:
          reviewers: "@Talend/frontend-admins"
          commit-message: "chore: upgrade dependencies"
          title: "chore: upgrade dependencies"
          body: "Upgrade dependencies using `talend-scripts upgrade:deps`"
          branch: ci/chore/upgrade-dependencies
          token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/icons.yml
================================================
name: Download icons from Figma

on:
  repository_dispatch:
  workflow_dispatch:

permissions:
  contents: write
  deployments: read
  pull-requests: write

jobs:
  download:
    runs-on: ubuntu-latest
    name: Download icons from Figma
    environment: main
    defaults:
      run:
        working-directory: ./packages/icons
    steps:
      - name: Checkout sources
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          # Required when using a PAT for opening the PR
          persist-credentials: false

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Download icons
        run: npx @talend/figma-icons-downloader
        env:
          FIGMA_ACCESS_TOKEN: ${{ secrets.STORYBOOK_FIGMA_ACCESS_TOKEN }}

      - name: Generate changeset & PR body
        id: get-pr-body
        run: |
          cd ../..
          git add ./packages/icons/src
          while read STATUS ADDR
          do
            icon=`basename $ADDR .svg`
            size=`basename $(dirname $ADDR)`
            semver=`sed 's/A/minor/;s/D/major/;s/M/patch/' <<< $STATUS`
            verb=`sed 's/A/added/;s/D/removed/;s/M/changed/' <<< $STATUS`
            echo -e "---\n'@talend/icons': $semver\n---\n\n$verb icon \`$icon\` in size \`$size\`" > .changeset/$icon-$size-$semver.md
          done < <(git diff --name-status HEAD ./packages/icons/src/icon/**/*.svg)
          git add .changeset
          body=$(git diff --name-only HEAD .changeset/*.md | xargs -L1 sed -n '5p')
          body="${body//$'\n'/'%0A'}"
          echo ::set-output name=body::$body

      - name: Create Pull Request
        id: cpr
        uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 #v8.1.0
        with:
          commit-message: "chore(icons): from Figma"
          title: "chore(icons): from Figma"
          body: ${{ steps.get-pr-body.outputs.body }}
          branch: ci/icons
          token: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/pr-demo.yml
================================================
name: PR Demo CI
on:
  pull_request:

permissions:
  contents: write
  pull-requests: write
  statuses: write
  checks: write
  pages: write

concurrency:
  group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
  cancel-in-progress: true

jobs:
  build:
    name: Build demo on PR
    environment: pull_request_unsafe
    runs-on: ubuntu-latest

    steps:
      - name: Checkout sources
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Install
        working-directory: ./
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: yarn install --frozen-lockfile

      - name: Build Demo
        run: yarn test:demo

      - name: Checkout demo branch
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          path: demo
          ref: gh-pages

      - name: Add demo and commit it
        # symlink creation : workaround to be able to use service worker on storybook both in local and via github pages deployment
        run: |
          echo "Prepare demo folder"
          cd demo && git rm -rf --ignore-unmatch ${{ github.event.number }} && cd ..
          mkdir -p ./demo/${{ github.event.number }}
          cp ./index.html ./demo/${{ github.event.number }}/
          mkdir ./demo/${{ github.event.number }}/cmf
          mkdir ./demo/${{ github.event.number }}/containers
          mkdir ./demo/${{ github.event.number }}/design-system
          mkdir ./demo/${{ github.event.number }}/faceted-search
          mkdir ./demo/${{ github.event.number }}/theme
          mkdir ./demo/${{ github.event.number }}/storybook-one
          cp -R packages/containers/storybook-static/* ./demo/${{ github.event.number }}/containers
          cp -R packages/design-docs/storybook-static/* ./demo/${{ github.event.number }}/design-system
          cp -R packages/faceted-search/storybook-static/* ./demo/${{ github.event.number }}/faceted-search
          cp -R packages/theme/dist/* ./demo/${{ github.event.number }}/theme
          cp -R packages/storybook-one/storybook-static/* ./demo/${{ github.event.number }}/storybook-one
          echo Size of demo:
          du -d 1 -h ./demo/${{ github.event.number }}
          cd demo && git add .

      - name: Commit demo for gh-pages
        uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 #v1.5
        with:
          directory: "./demo"
          github_token: ${{ secrets.GITHUB_TOKEN }}
          message: "doc: update demo from ${{ github.event.number }}"
          branch: gh-pages

      - name: Find Comment
        uses: peter-evans/find-comment@v4
        id: fc
        with:
          issue-number: ${{ github.event.number }}
          body-includes: Storybook for this PR deployed on this

      - name: Create comment
        uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 #v5.0.0
        if: steps.fc.outputs.comment-id == ''
        with:
          issue-number: ${{ github.event.number }}
          body: |
            Storybook for this PR deployed on this [github page](https://talend.github.io/ui/${{ github.event.number }})


================================================
FILE: .github/workflows/pr-lint.yml
================================================
name: PR lint

on:
  pull_request:

permissions:
  contents: write
  deployments: read
  pull-requests: write # needed to annotate code
  statuses: write
  checks: write

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-latest
    environment: pull_request_unsafe
    name: Lint

    steps:
      - name: Checkout sources
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
          fetch-depth: 0 # otherwise, you will failed to push refs to dest repo

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Install
        run: yarn install --frozen-lockfile --ignore-scripts
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: eslint + stylelint
        continue-on-error: true
        id: eslint
        run: yarn lint

      - name: Merge lint
        uses: ./.github/actions/lint-merge-report
        with:
          base-branch: master
          head-branch: ${{ github.head_ref }}

      - name: Annotate Code Linting Results
        uses: ataylorme/eslint-annotate-action@d57a1193d4c59cbfbf3f86c271f42612f9dbd9e9 #v3.0.0
        with:
          GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
          report-json: ./eslint-report.json


================================================
FILE: .github/workflows/pr-test.yml
================================================
name: PR tests

on:
  pull_request:

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
  cancel-in-progress: true

permissions:
  contents: read
  deployments: read
  pull-requests: write # needed to write comment
  statuses: write

jobs:
  build:
    runs-on: ubuntu-latest
    environment: pull_request_unsafe
    name: Build and test

    steps:
      - name: Checkout sources
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Install
        run: yarn install --frozen-lockfile
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Test
        run: yarn test:cov

      - name: Jest Coverage Comment
        uses: MishaKav/jest-coverage-comment@c480abe47ef4f7bcd87bd8b5e6043fdfb1c4d270 #1.0.32
        with:
          multiple-files: |
            assets-api, ./packages/assets-api/coverage/coverage-summary.json
            cmf, ./packages/cmf/coverage/coverage-summary.json
            cmf-cqrs, ./packages/cmf-cqrs/coverage/coverage-summary.json
            cmf-router, ./packages/cmf-router/coverage/coverage-summary.json
            components, ./packages/components/coverage/coverage-summary.json
            containers, ./packages/containers/coverage/coverage-summary.json
            dataviz, ./packages/dataviz/coverage/coverage-summary.json
            design-system, ./packages/design-system/coverage/coverage-summary.json
            faceted-search, ./packages/faceted-search/coverage/coverage-summary.json
            flow-designer, ./packages/flow-designer/coverage/coverage-summary.json
            forms, ./packages/forms/coverage/coverage-summary.json
            http, ./packages/http/coverage/coverage-summary.json
            sagas, ./packages/sagas/coverage/coverage-summary.json
            stepper, ./packages/stepper/coverage/coverage-summary.json
            utils, ./packages/utils/coverage/coverage-summary.json

      - name: Check design-tokens
        run: |
          cd packages/design-tokens
          node ./scripts/compare.js src/light/_index.scss src/dark/_index.scss


================================================
FILE: .github/workflows/pre-release.yml
================================================
name: pre-release

on:
  pull_request:
    types:
      - labeled

jobs:
  integration-publish:
    if: github.event.pull_request != null && contains(github.event.pull_request.labels.*.name, 'deploy-npm')
    permissions:
      contents: read
      pull-requests: write
      packages: write
    runs-on: ubuntu-latest
    outputs:
      version: ${{ steps.version.outputs.version }}
    steps:
      - name: checkout repository
        uses: actions/checkout@v6
        with:
          fetch-depth: 0
          ref: ${{ github.event.pull_request.head.sha }}

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Install
        run: yarn install --frozen-lockfile

      - name: Pre-release talend/ui
        id: version
        run: |
          # FIXME: trigger changeset change without commit
          # generate a random small version
          POST_VERSION_RANDOM=$(node -e "console.log(Math.floor(Math.random() * 10000))")
          yarn changeset pre enter next-${POST_VERSION_RANDOM}
          yarn changeset version
          # echo diff to see version changes and save it to reuse it after
          {
            echo "VERSION_DIFF<<EOF"
            git diff | grep -E 'next|name'
            echo "EOF"
          } >> $GITHUB_OUTPUT
          yarn changeset publish --no-git-checks

      - name: Comment on the PR with the package version
        uses: actions-ecosystem/action-create-comment@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          body: |
            🤖 Your package integration package is ready: `${{ steps.version.outputs.VERSION_DIFF }}`

      - name: Remove deploy-npm label
        if: always()
        uses: actions-ecosystem/action-remove-labels@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          labels: deploy-npm


================================================
FILE: .github/workflows/visual-testing.yml
================================================
name: Visual testing

on:
  workflow_dispatch:
  pull_request:
    # By default, a workflow only runs when a pull_request event's activity type is opened, synchronize, or reopened
    types: [labeled, synchronize, opened, reopened, ready_for_review]
    branches:
      - master
  push:
    branches:
      - master

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
  cancel-in-progress: true

permissions:
  contents: read
  deployments: read
  pull-requests: write
  statuses: write

jobs:
  build:
    runs-on: ubuntu-latest
    environment: pull_request_unsafe
    if: ( github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'need visual approval') )
    steps:
      - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          fetch-depth: 0

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: Install dependencies
        run: yarn --frozen-lock

      - name: Publish PR to DS Chromatic
        if: github.ref != 'refs/heads/master'
        # https://github.com/chromaui/chromatic-cli/issues/739
        uses: chromaui/action@f191a0224b10e1a38b2091cefb7b7a2337009116 #v16.0.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          workingDir: packages/storybook-one
          exitZeroOnChanges: true # Option to prevent the workflow from failing in PR
          # Handle monorepos https://www.chromatic.com/docs/monorepos
          forceRebuild: true

      - name: Publish Master to DS Chromatic
        if: github.ref == 'refs/heads/master'
        # https://github.com/chromaui/chromatic-cli/issues/739
        uses: chromaui/action@f191a0224b10e1a38b2091cefb7b7a2337009116 #v16.0.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          workingDir: packages/storybook-one
          autoAcceptChanges: true # Option to accept any change for this baseline refresh
          forceRebuild: true


================================================
FILE: .github/workflows/yarn-deduplicate.yml
================================================
name: yarn-deduplicate

on:
  pull_request:
    paths:
      - "yarn.lock"

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
  group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
  cancel-in-progress: true

permissions:
  contents: write
  deployments: read
  pull-requests: write # needed to write comment in PR

jobs:
  dedupe:
    runs-on: ubuntu-latest
    name: Deduplicate
    environment: pull_request_unsafe

    steps:
      - name: Checkout sources
        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
        with:
          persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
          fetch-depth: 0 # otherwise, you will failed to push refs to dest repo

      - name: Use Node.js
        uses: ./.github/actions/setup-node

      - name: yarn-deduplicate
        id: deduplicate
        run: |
          yarn install --frozen-lockfile --ignore-scripts
          yarn yarn-deduplicate
          echo "::set-output name=diff::$(git status --short yarn.lock)"
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Commit dedupe
        if: steps.deduplicate.outputs.diff
        uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 #1.5
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          message: "chore: yarn-deduplicate"
          branch: ${{ github.head_ref }}


================================================
FILE: .gitignore
================================================
/.static
# Log files #
*.log

# Mac OS index files #
.DS_Store

# Eclipse project files #
.project
.settings
bin/
# Intellij project files #
.idea/
*.ipr
*.iml
*.iws
out/

# JavaScript/NodeJS files #
.npm/
npm-debug.log
node_modules/
.node-gyp
coverage/

# Compilation output #
target/
*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath

# Talend web apps build directory
build/
/packages/*/i18n/
tmp/
lib/
lib-esm/
storybook-static/
dist/
eslint-report.json
stylelint-report.json
i18n-extract
.test-cache


================================================
FILE: .husky/pre-commit
================================================
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run lint-staged


================================================
FILE: .nojekyll
================================================


================================================
FILE: .npmignore
================================================
# Logs
logs
*.log
npm-debug.log*

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage
# (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

test
npm-audit


================================================
FILE: .npmrc
================================================
@talend:registry=https://npm.pkg.github.com/


================================================
FILE: .prettierignore
================================================
.changeset
.github
.husky
.idea
.surge
build
dist
node_modules
__fixtures__
tools/scripts-config-storybook-lib/.storybook-templates/main.js


================================================
FILE: .prettierrc.js
================================================
module.exports = {
	...require('@talend/scripts-config-prettier'),
};


================================================
FILE: .sass-lint.yml
================================================
options:
  merge-default-rules: false
#  formatter: html
#  output-file: 'linters/sass-lint.html'

# File Options
files:
  include: 'src/**/*.s+(a|c)ss'
  ignore:
    - 'src/app/css/vendors/libs/**/*.*'

# Rule Configuration
rules:
  border-zero:
    - 2
    -
      convention: 'none'
  brace-style:
    - 1
    -
      style: 'stroustrup'
      allow-single-line: false
  class-name-format:
    - 2
    -
      allow-leading-underscore: false
      convention: 'hyphenatedlowercase'
  clean-import-paths:
    - 2
    -
      leading-underscore: false
      filename-extension: false
  empty-args:
    - 2
    -
      include: false
  extends-before-declarations: 2
  extends-before-mixins: 2
  final-newline:
    - 1
    -
      include: true
  force-attribute-nesting: 0
  force-element-nesting: 0
  force-pseudo-nesting: 0
  function-name-format:
    - 2
    -
      allow-leading-underscore: false
      convention: 'hyphenatedlowercase'
  hex-length:
    - 2
    -
      style: 'short'
  hex-notation:
    - 0
  id-name-format:
    - 2
    -
      allow-leading-underscore: false
      convention: 'hyphenatedlowercase'
  indentation:
    - 1
    -
      size: tab
  leading-zero:
    - 2
    -
      include: true
  mixin-name-format:
    - 2
    -
      allow-leading-underscore: true
      convention: 'hyphenatedlowercase'
  mixins-before-declarations: 2
  nesting-depth:
    - 2
    -
      max-depth: 3
  no-color-keywords: 0
  no-color-literals: 0
  no-css-comments: 0
  no-debug: 2
  no-duplicate-properties: 2
  no-empty-rulesets: 2
  no-extends: 0
  no-ids: 0
  no-important: 2
  no-invalid-hex: 2
  no-mergeable-selectors: 0
  no-misspelled-properties: 2
  no-qualifying-elements:
    - 2
    -
      allow-element-with-attribute: true
      allow-element-with-class: false
      allow-element-with-id: false
  no-trailing-zero: 1
  no-transition-all: 2
  no-url-protocols: 2
  no-vendor-prefixes: 1
  no-warn: 2
  one-declaration-per-line: 2
  placeholder-in-extend: 2
  placeholder-name-format:
    - 2
    -
      allow-leading-underscore: false
      convention: 'hyphenatedlowercase'
  property-sort-order: 0
  property-units: 0
  quotes:
    - 2
    -
      style: 'single'
  shorthand-values:
    - 1
    -
      allowed-shorthands:
        - 1
        - 2
  single-line-per-selector: 1
  space-after-bang:
    - 1
    -
      include: false
  space-after-colon:
    - 1
    -
      include: true
  space-after-comma:
    - 1
    -
      include: true
  space-around-operator:
    - 1
    -
      include: true
  space-before-bang:
    - 1
    -
      include: true
  space-before-brace:
    - 1
    -
      include: true
  space-before-colon:
    - 1
    -
      include: false
  space-between-parens:
    - 1
    -
      include: false
  trailing-semicolon:
    - 2
    -
      include: true
  url-quotes: 2
  variable-for-property: 0
  variable-name-format:
    - 2
    -
      allow-leading-underscore: false
      convention: 'hyphenatedlowercase'
  zero-unit:
    - 1
    -
      include: false


================================================
FILE: .semgrepignore
================================================
# Items added to this file will be ignored by Semgrep.
#
# This file uses .gitignore syntax:
#
# To ignore a file anywhere it occurs in your project, enter a
# glob pattern here. E.g. "*.min.js".
#
# To ignore a directory anywhere it occurs in your project, add
# a trailing slash to the file name. E.g. "dist/".
#
# To ignore a file or directory only relative to the project root,
# include a slash anywhere except the last character. E.g.
# "/dist/", or "src/generated".
#
# Some parts of .gitignore syntax are not supported, and patterns
# using this syntax will be dropped from the ignore list:
# - Explicit "include syntax", e.g. "!kept/".
# - Multi-character expansion syntax, e.g. "*.py[cod]"
#
# To include ignore patterns from another file, start a line
# with ':include', followed by the path of the file. E.g.
# ":include path/to/other/ignore/file".
#
# To ignore a file with a literal ':' character, escape it with
# a backslash, e.g. "\:foo".

# Ignore git items
.gitignore
.git/
:include .gitignore
semgrep-core/tests/

# submodule, generated code
semgrep-core/tree-sitter-lang/

pfff/
semgrep/tests/e2e/targets/
semgrep/tests/performance/targets/
semgrep/tests/e2e/snapshots/

# rules being tested for performance
perf/rules/
perf/r2c-rules/

# END OF DEFAULT SEMGREPIGNORE FILE

# TALEND SEMGREPIGNORE

*.test.js
*.test.tsx
*.stories.js


================================================
FILE: .tool-versions
================================================
nodejs 24.14.0
yarn 1.22.22


================================================
FILE: .vscode/settings.json
================================================
{
  "prettier.prettierPath": "./node_modules/prettier/index.cjs",
  "eslint.workingDirectories": [
    {
      "pattern": "packages/**"
    },
    {
      "pattern": "tools/**"
    },
    {
      "pattern": "fork/**"
    }
  ],
  "typescript.validate.enable": true,
  "javascript.validate.enable": true
}


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to the project

[Contribution guide](https://github.com/Talend/tools/blob/master/tools-root-github/CONTRIBUTING.md)

## Code style

[HTML code style](https://github.com/Talend/ui/wiki/HTML-coding-style)
[Javascript code style](https://github.com/Talend/ui/wiki/Javascript-coding-style)
[CSS code style](https://github.com/Talend/ui/wiki/CSS-coding-style)


================================================
FILE: I18n.md
================================================
# I18n

UI uses [react-i18n](https://react.i18next.com/) to make the components internationalizable. This is based on [i18next](https://www.i18next.com/).

The application defines the strategy how to get the translations.

### Namespaces

Each packages has their own namespace:

| Package    |   Namespace    |
| ---------- | :------------: |
| components | tui-components |
| forms      |   tui-forms    |

### Creating a i18n components

Each components who has to be internationalizable are exported by default with translate from 'react-i18next' with its namespace.

**The component can be used within an internationalized application or not. We import a default i18n configuration that will be ignored if one is provided in the context by react-i18next provider.**

```javascript
import React from 'react';
import { withTranslation } from 'react-i18next';

import { I18N_DOMAIN } from '../constants';
import '../translate';

const HelloWorld = ({ t }) => <div>{`Hi ${t('HELLO', { defaultValue: 'Hello world' })}`}</div>;

export default withTranslation(I18N_DOMAIN)(HelloWorld);
```

### Translate

In the framework, at each time that the `t` method is called, it is a default value that is displayed, if not translated explicitly by the app.

```javascript
t('SUFFIX_COMPONENT_KEY', { defaultValue: 'translated' });
```

The key has to be prefixed by the main current component to translate.
e.g:
LIST_DISPLAY
HEADERBAR_GO_PORTAL

### Specific translation cases

In some cases, you want to add some html markup or style to your translations. For this case, you can use Trans component
https://react.i18next.com/components/trans-component.html

```jsx
import { Trans } from 'react-i18next';

<Trans i18nKey="DELETE_RESOURCE_MESSAGE" parent="div">
	Are you sure you want to remove the {{ resourceLabel: resourceInfo.resourceTypeLabel }}
	<strong> {{ resourceName: resourceInfo.label }} </strong> ?
</Trans>;
```

For this case, the translation json value is :
`Are you sure you want to remove the <1>{{ resourceLabel }}</1> <2><1>{{ resourceName }}</1></2>?`

More infos in the react-i18next's documentation

## Use i18n with UI in your App

### Create an instance of i18n

`yarn add i18next`

```javascript
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

i18n.use(initReactI18next).init({
	debug: false,
	wait: true, // globally set to wait for loaded translations in translate hoc
});

export default i18n;
```

The UI framework have to be nested into a Provider to allow to translate the labels. The provider is responsible to pass the i18next instance down to all the translate hocs using react context.

Next, you need to nest the application in the I18nextProvider with the previous i18n created in order to your environnement:

#### Angular Provider with ng-react

Each components 'ng-react' will load his provider with a i18n given by the props. The components creates his react Provider with the i18n given.

```javascript
import React from 'react';
import translate from 'react-i18next';
import i18n from 'i18next';

const TranslatedApp = translate(I18N_DOMAIN, { i18n })(App);

const AppComponent = props => <TranslatedApp />;

angular
	.module('app', ['react'])
	.value('AppComponent', AppComponent)
	.controller('appController', () => {
		this.props = {
			i18n,
		};
	});

<react-component name="AppComponent" props="$ctrl.props" />;
```

## Extract a catalog of the key in the framework

```bash
yarn extract-i18n
```


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# UI

That repository was created in an effort to simplify the development of Talend's front-end stack.

## Goals

- Single code repository / Multiple packages
- Global (cross package) test and review tools
- Easy cross packages development
- Share and love open source.

## The stack

- [react-cmf](https://github.com/Talend/ui/tree/master/packages/cmf)
- [react-talend-containers](https://github.com/Talend/ui/tree/master/packages/containers)
- [react-talend-components](https://github.com/Talend/ui/tree/master/packages/components)
- [react-talend-forms](https://github.com/Talend/ui/tree/master/packages/forms)
- [talend-icons](https://github.com/Talend/ui/tree/master/packages/icons)
- [bootstrap-talend-theme](https://github.com/Talend/ui/tree/master/packages/theme)

## Tools (dev environment)

We have quick access from the root to the following npm scripts:

- postinstall (trigger build of every package)
- pre-release (trigger build of UMD of supported package)
- start (start the playground)
- test
- lint

The CI will ensure on each PR that test and lint are OK before you can merge your pull request. It will also provide you a demo so reviewers can play with your change and try to find impact of your PR on other packages.

## Versions and breaking changes

The stack is stable and we do our best to not break APIs.
To handle versions we rely on [**changeset**](https://github.com/atlassian/changesets/). So on each PR you will be able to request a release intent along your changes. It will fill automatically the changelog at release time. Do not forget to commit the file outputed by the changeset CLI.

## More

If you want to know more (release, versions, etc ...) please take a look on [the wiki](https://github.com/Talend/ui/wiki)


================================================
FILE: SECURITY.md
================================================
# Security Policy

## Supported Versions

We use `changeset` to provide versioning for our packages with fixes, features and major release in case of breaking changes. The latest package is always the better one.

We also provide [talend-scripts upgrade:deps](./tools/upgrade-deps) scripts to make it easier to keep our packages and apps aligned and updated.

The script comes with options about security use cases, so please read the documentation first.

Distance to latest from npm is added on a [dependencies.txt](./dependencies.txt) file on each upgrade PR.

## Reporting a Vulnerability

For information on how to report a new security problem please see [here](https://www.talend.com/security/vulnerability-disclosure/).
Our existing security advisories are published [here](https://www.talend.com/security/incident-response/).


================================================
FILE: babel.config.js
================================================
// this file is needed by vscode
module.exports = {
	extends: '@talend/scripts-config-babel',
};


================================================
FILE: dependencies-latest.txt
================================================
yarn run v1.22.22
$ /home/runner/work/ui/ui/node_modules/.bin/talend-upgrade-deps --latest --dry

check versions of /home/runner/work/ui/ui/package.json using latest
"@types/react": "^18.3.28" => "^19.2.14"
"@types/react-dom": "^18.3.7" => "^19.2.3"
"tar": ">=7.5.4" => "^7.5.13"
"husky": "^8.0.3" => "^9.1.7"
"lint-staged": "^15.5.2" => "^16.4.0"
"typescript": "^5.9.3" => "^6.0.2"

check versions of packages/a11y/package.json using latest
"@testing-library/react": "^14.3.1" => "^16.3.2"
"@types/react": "^18.3.28" => "^19.2.14"
"@types/react-dom": "^18.3.7" => "^19.2.3"
"date-fns": "^3.6.0" => "^4.1.0"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"

check versions of packages/assets-api/package.json using latest
"@types/node": "^6.14.13" => "^25.5.0"
"read-pkg-up": "^7.0.1" => "^11.0.0"

check versions of packages/cmf-cqrs/package.json using latest
"immutable": "^3.8.3" => "^5.1.5"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"

check versions of packages/cmf-router/package.json using latest
"lodash": "^4.18.0" => "^4.17.21"
"react-redux": "^7.2.9" => "^9.2.0"
"react-router": "~6.3.0" => "^7.13.2"
"react-router-dom": "~6.3.0" => "^7.13.2"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"

check versions of packages/cmf/package.json using latest
"commander": "^6.2.1" => "^14.0.3"
"immutable": "^3.8.3" => "^5.1.5"
"lodash": "^4.18.0" => "^4.17.21"
"nested-combine-reducers": "^1.2.2" => "^2.0.0"
"react-redux": "^7.2.9" => "^9.2.0"
"redux": "^4.2.1" => "^5.0.1"
"redux-thunk": "^2.4.2" => "^3.1.0"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"node-fetch": "^2.7.0" => "^3.3.2"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"

check versions of packages/components/package.json using latest
"date-fns": "^3.6.0" => "^4.1.0"
"dom-helpers": "^3.4.0" => "^6.0.1"
"immutable": "^3.8.3" => "^5.1.5"
"lodash": "^4.18.0" => "^4.17.21"
"react-autowhatever": "10.2.0" => "^10.2.1"
"react-grid-layout": "^1.5.3" => "^2.2.3"
"react-is": "^18.3.1" => "^19.2.4"
"react-transition-group": "^2.9.0" => "^4.4.5"
"recharts": "^2.15.4" => "^3.8.1"
"styled-components": "^5.3.11" => "^6.3.12"
"warning": "^3.0.0" => "^4.0.3"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"@types/react": "^18.3.28" => "^19.2.14"
"@types/react-dom": "^18.3.7" => "^19.2.3"
"i18next": "^23.16.8" => "^26.0.3"
"jsdom": "^26.1.0" => "^29.0.1"
"react": "^18.3.1" => "^19.2.4"
"react-a11y": "^0.3.4" => "^1.1.0"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"react-router-dom": "~6.3.0" => "^7.13.2"
"react-test-renderer": "^18.3.1" => "^19.2.4"

check versions of packages/containers/package.json using latest
"immutable": "^3.8.3" => "^5.1.5"
"lodash": "^4.18.0" => "^4.17.21"
"reselect": "^2.5.4" => "^5.1.1"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"i18next": "^23.16.8" => "^26.0.3"
"msw": "2.12.7" => "^2.12.14"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"react-test-renderer": "^18.3.1" => "^19.2.4"

check versions of packages/dataviz/package.json using latest
"date-fns": "^3.6.0" => "^4.1.0"
"lodash": "^4.18.0" => "^4.17.21"
"recharts": "^2.15.4" => "^3.8.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"@types/node": "^6.14.13" => "^25.5.0"
"@types/react": "^18.3.28" => "^19.2.14"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"i18next": "^23.16.8" => "^26.0.3"
"jsdom": "^28.1.0" => "^29.0.1"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"

check versions of packages/design-docs/package.json using latest
"algoliasearch": "^4.27.0" => "^5.50.0"
"pkg-dir": "^7.0.0" => "^9.0.0"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"@types/react": "^18.3.28" => "^19.2.14"
"i18next": "^23.16.8" => "^26.0.3"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-router-dom": "~6.3.0" => "^7.13.2"

check versions of packages/design-system/package.json using latest
"@floating-ui/react": "^0.26.28" => "^0.27.19"
"react-is": "^18.3.1" => "^19.2.4"
"react-transition-group": "^2.9.0" => "^4.4.5"
"@types/react": "^18.3.28" => "^19.2.14"
"@types/react-dom": "^18.3.7" => "^19.2.3"
"@types/react-is": "^18.3.1" => "^19.2.0"
"@types/react-transition-group": "^2.9.2" => "^4.4.12"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"concurrently": "^8.2.2" => "^9.2.1"
"i18next": "^23.16.8" => "^26.0.3"
"jest-axe": "^8.0.0" => "^10.0.0"
"jsdom": "^26.1.0" => "^29.0.1"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"react-router-dom": "~6.3.0" => "^7.13.2"

check versions of packages/design-tokens/package.json using latest

check versions of packages/faceted-search-query-client/package.json using latest
"lodash": "^4.18.0" => "^4.17.21"

check versions of packages/faceted-search/package.json using latest
"date-fns": "^3.6.0" => "^4.1.0"
"lodash": "^4.18.0" => "^4.17.21"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"i18next": "^23.16.8" => "^26.0.3"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"

check versions of packages/flow-designer/package.json using latest
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"@types/node": "^6.14.13" => "^25.5.0"
"@types/react": "^18.3.28" => "^19.2.14"
"@types/react-test-renderer": "^18.3.1" => "^19.1.0"
"i18next": "^23.16.8" => "^26.0.3"
"immutable": "^3.8.3" => "^5.1.5"
"lodash": "^4.18.0" => "^4.17.21"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"react-redux": "^7.2.9" => "^9.2.0"
"react-test-renderer": "^18.3.1" => "^19.2.4"
"redux": "^4.2.1" => "^5.0.1"
"redux-thunk": "^2.4.2" => "^3.1.0"
"reselect": "^4.1.8" => "^5.1.1"

check versions of packages/forms/package.json using latest
"ace-builds": "1.10.1" => "^1.43.6"
"ajv": "^6.14.0" => "^8.18.0"
"lodash": "^4.18.0" => "^4.17.21"
"react-autowhatever": "10.2.0" => "^10.2.1"
"react-ace": "10.1.0" => "^14.0.1"
"react-jsonschema-form": "0.51.0" => "^1.8.1"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"i18next": "^23.16.8" => "^26.0.3"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"react-test-renderer": "^18.3.1" => "^19.2.4"

check versions of packages/http/package.json using latest
"node-fetch": "^2.7.0" => "^3.3.2"
"react-dom": "^18.3.1" => "^19.2.4"
"react": "^18.3.1" => "^19.2.4"

check versions of packages/icons/package.json using latest
"@types/node": "^20.19.37" => "^25.5.0"
"mkdirp": "^1.0.4" => "^3.0.1"
"react": "^18.3.1" => "^19.2.4"
"svgo": "^3.3.3" => "^4.0.1"
"typescript": "^5.9.3" => "^6.0.2"
"vite": "^7.3.1" => "^8.0.3"

check versions of packages/local-libs-webpack-plugin/package.json using latest

check versions of packages/playground-vite/package.json using latest
"i18next": "^23.16.8" => "^26.0.3"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"@vitejs/plugin-react": "^4.7.0" => "^6.0.1"
"i18next-http-backend": "^1.4.5" => "^3.0.4"
"vite": "^7.3.1" => "^8.0.3"

check versions of packages/playground/package.json using latest
"i18next": "^23.16.8" => "^26.0.3"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"

check versions of packages/router-bridge/package.json using latest
"react": "^18.3.1" => "^19.2.4"
"react-router-dom": "~6.3.0" => "^7.13.2"

check versions of packages/sagas/package.json using latest
"immutable": "^3.8.3" => "^5.1.5"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"

check versions of packages/stepper/package.json using latest
"lodash": "^4.18.0" => "^4.17.21"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"i18next": "^23.16.8" => "^26.0.3"
"immutable": "^3.8.3" => "^5.1.5"
"jsdom": "^26.1.0" => "^29.0.1"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-i18next": "^13.5.0" => "^17.0.2"
"react-redux": "^7.2.9" => "^9.2.0"
"react-transition-group": "^2.9.0" => "^4.4.5"

check versions of packages/storybook-cmf/package.json using latest
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-redux": "^7.2.9" => "^9.2.0"

check versions of packages/storybook-docs/package.json using latest
"algoliasearch": "^4.27.0" => "^5.50.0"
"react": "^18.3.1" => "^19.2.4"
"@figma/rest-api-spec": "^0.36.0" => "^0.37.0"
"@types/node": "^6.14.13" => "^25.5.0"
"@types/react": "^18.3.28" => "^19.2.14"
"@types/react-dom": "^18.3.7" => "^19.2.3"
"sass-loader": "^14.2.1" => "^16.0.7"
"webpack-cli": "^6.0.1" => "^7.0.2"

check versions of packages/storybook-one/package.json using latest
"lodash": "^4.18.0" => "^4.17.21"
"pkg-dir": "^7.0.0" => "^9.0.0"
"@types/react": "^18.3.28" => "^19.2.14"
"i18next": "^23.16.8" => "^26.0.3"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-router-dom": "~6.3.0" => "^7.13.2"

check versions of packages/theme/package.json using latest
"postcss-preset-env": "^7.8.3" => "^11.2.0"
"sass-loader": "^14.2.1" => "^16.0.7"
"style-loader": "^3.3.4" => "^4.0.0"
"webpack-cli": "^6.0.1" => "^7.0.2"

check versions of packages/utils/package.json using latest
"date-fns": "^3.6.0" => "^4.1.0"
"lodash": "^4.18.0" => "^4.17.21"

check versions of tools/babel-plugin-assets-api/package.json using latest
"read-pkg-up": "^7.0.1" => "^11.0.0"
"babel-plugin-tester": "^10.1.0" => "^12.0.0"
"@eslint/js": "^9.39.4" => "^10.0.1"
"globals": "^15.15.0" => "^17.4.0"
"react": "^18.3.1" => "^19.2.4"

check versions of tools/babel-plugin-import-d3/package.json using latest
"babel-plugin-tester": "^10.1.0" => "^12.0.0"

check versions of tools/babel-plugin-import-from-index/package.json using latest
"babel-plugin-tester": "^10.1.0" => "^12.0.0"
"@eslint/js": "^9.39.4" => "^10.0.1"
"globals": "^15.15.0" => "^17.4.0"

check versions of tools/babel-plugin-import-from-lib/package.json using latest
"babel-plugin-tester": "^10.1.0" => "^12.0.0"

check versions of tools/cmf-webpack-plugin/package.json using latest
"lodash": "^4.18.0" => "^4.17.21"

check versions of tools/eslint-plugin/package.json using latest

check versions of tools/scripts-cmf/package.json using latest
"commander": "^6.2.1" => "^14.0.3"
"deepmerge": "^1.5.2" => "^4.3.1"
"i18next": "^23.16.8" => "^26.0.3"
"lodash": "^4.18.0" => "^4.17.21"
"mkdirp": "^1.0.4" => "^3.0.1"

check versions of tools/scripts-config-babel/package.json using latest
"babel-core": "^7.0.0-bridge.0" => "^6.26.3"
"@eslint/js": "^9.39.4" => "^10.0.1"
"globals": "^15.15.0" => "^17.4.0"

check versions of tools/scripts-config-cdn/package.json using latest
"read-pkg-up": "^7.0.1" => "^11.0.0"
"@eslint/js": "^9.39.4" => "^10.0.1"
"globals": "^15.15.0" => "^17.4.0"

check versions of tools/scripts-config-eslint/package.json using latest
"@eslint/js": "^9.39.4" => "^10.0.1"
"@testing-library/dom": "^9.3.4" => "^10.4.1"
"globals": "^15.15.0" => "^17.4.0"

check versions of tools/scripts-config-prettier/package.json using latest
"@trivago/prettier-plugin-sort-imports": "^4.3.0" => "^6.0.2"

check versions of tools/scripts-config-react-webpack/package.json using latest
"@sentry/webpack-plugin": "^1.21.0" => "^5.1.1"
"@welldone-software/why-did-you-render": "^7.0.1" => "^10.0.1"
"babel-loader": "^9.2.1" => "^10.1.1"
"postcss-safe-parser": "^6.0.0" => "^7.0.1"
"regenerator-runtime": "^0.13.11" => "^0.14.1"
"sass-loader": "^14.2.1" => "^16.0.7"
"source-map-loader": "^4.0.2" => "^5.0.0"
"style-loader": "^3.3.4" => "^4.0.0"
"webpack-bundle-analyzer": "^4.10.2" => "^5.3.0"
"webpack-cli": "^6.0.1" => "^7.0.2"

check versions of tools/scripts-config-storybook-lib/package.json using latest
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"i18next": "^23.16.8" => "^26.0.3"
"i18next-http-backend": "^1.4.5" => "^3.0.4"
"vite": "^7.3.1" => "^8.0.3"
"lodash": "^4.18.0" => "^4.17.21"
"msw": "2.12.7" => "^2.12.14"
"react-i18next": "^13.5.0" => "^17.0.2"
"@types/react": "^18.3.28" => "^19.2.14"
"typescript": "^5.9.3" => "^6.0.2"

check versions of tools/scripts-config-stylelint/package.json using latest

check versions of tools/scripts-config-typescript/package.json using latest

check versions of tools/scripts-core/package.json using latest
"babel-loader": "^9.2.1" => "^10.1.1"
"fs-extra": "^10.1.0" => "^11.3.4"
"lodash": "^4.18.0" => "^4.17.21"
"typescript": "^5.9.3" => "^6.0.2"
"webpack-merge": "^5.10.0" => "^6.0.1"
"yargs": "^15.4.1" => "^18.0.0"

check versions of tools/scripts-locales/package.json using latest

check versions of tools/scripts-publish-local/package.json using latest

check versions of tools/scripts-utils/package.json using latest
"fs-extra": "^10.1.0" => "^11.3.4"
"glob": "^11.1.0" => "^13.0.6"
"which": "^2.0.2" => "^6.0.1"

check versions of tools/scripts-yarn-workspace/package.json using latest

check versions of tools/upgrade-deps/package.json using latest

check versions of fork/bootstrap-sass/package.json using latest

check versions of fork/dynamic-cdn-webpack-plugin/package.json using latest
"read-pkg-up": "^7.0.1" => "^11.0.0"
"@eslint/js": "^9.39.4" => "^10.0.1"
"globals": "^15.15.0" => "^17.4.0"
"webpack-cli": "^6.0.1" => "^7.0.2"
"webpack-manifest-plugin": "^5.0.1" => "^6.0.1"

check versions of fork/json-schema-form-core/package.json using latest
"objectpath": "^1.2.2" => "^2.0.0"
"@types/chai": "^3.5.2" => "^5.2.3"
"@types/node": "^6.14.13" => "^25.5.0"

check versions of fork/module-to-cdn/package.json using latest
"mkdirp": "^1.0.4" => "^3.0.1"
"@eslint/js": "^9.39.4" => "^10.0.1"
"globals": "^15.15.0" => "^17.4.0"

check versions of fork/react-bootstrap/package.json using latest
"dom-helpers": "^3.4.0" => "^6.0.1"
"react-overlays": "^0.9.3" => "^5.2.1"
"react-transition-group": "^2.9.0" => "^4.4.5"
"uncontrollable": "^7.2.1" => "^9.0.0"
"warning": "^3.0.0" => "^4.0.3"
"@vitejs/plugin-react": "^5.2.0" => "^6.0.1"
"@testing-library/react": "^14.3.1" => "^16.3.2"
"chai": "^4.5.0" => "^6.2.2"
"chalk": "^2.4.2" => "^5.6.2"
"lodash": "^4.18.0" => "^4.17.21"
"react": "^18.3.1" => "^19.2.4"
"react-dom": "^18.3.1" => "^19.2.4"
"react-test-renderer": "^18.3.1" => "^19.2.4"
"sinon": "^11.1.2" => "^21.0.3"
Done in 122.82s.


================================================
FILE: docs/adr-2024-04-add-support-to-esm.md
================================================
# ADR: Add support to ECMAScript Modules (ESM)

## Context

Our build and bundling setup currently uses CommonJS modules along with webpack and the dynamic-cdn-webpack-plugin.

To streamline our development workflow and reduce complexity, we are transitioning from yarn to pnpm.

However, it has been identified that pnpm is not compatible with dynamic-cdn-webpack-plugin. This incompatibility, along with the decision to remove the plugin, has resulted in a degradation of the developer experience, primarily through increased build times.

At the same time, the entire frontend world is moving towards ECMAScript Modules (ESM).

Modern browsers that our customers use now support ESM natively.

All existing frameworks are now relying on Vite for the build process, which, under the hood, relies on ESM.

Therefore, having to configure a complex toolchain is becoming obsolete. Given this changing context, we can reevaluate our decisions around the "talend-scripts build\*" toolchain.

## Problem

The transition from yarn to pnpm has uncovered an incompatibility with dynamic-cdn-webpack-plugin, exacerbating the decision to discontinue using this plugin.

This has adversely impacted the developer experience by elongating the build times, a significant concern as it can hinder our overall productivity and agility.

## Decision

Our packages must export ESM to be futur proof and let us use modern tooling like vite or parcel.

## Alternatives Considered

- **Sticking with webpack and dynamic-cdn-webpack-plugin**: This was initially considered to maintain our current setup and avoid the complexities associated with migration. However, given the incompatibility with pnpm and the underlying issues related to complexity and inefficiency in build times, this option was deemed unsuitable.

- **Switching to another build tool without adopting ESM**: Several other build tools could potentially improve build times. However, without addressing the fundamental shift towards ESM in the JavaScript ecosystem, this would be a short-term fix rather than a long-term solution.

- **Migrating to Vite while keeping our packages in CommonJS**: This alternative involves moving to Vite for its development speed advantages but not converting our packages to ESM. While this approach could reduce the immediate workload and avoid potential issues with third-party CommonJS dependencies, it would limit our ability to fully leverage Vite’s capabilities. Vite is optimized for ESM, and using CommonJS may result in suboptimal build performance and hinder live module reloading, affecting developer experience and potentially leading to more complex configurations.

## Consequences

- **Positive**: Moving to ESM and adopting Vite is expected to reduce build times, enhancing developer experience and productivity. It aligns our development practices with the modern JavaScript ecosystem's move towards ESM.
- **Negative**: The migration from CommonJS to ESM syntax could require significant effort. It might also temporarily disrupt our development workflow and necessitate additional training for developers not yet familiar with ESM or Vite.
- **Risks**: There is a risk of encountering third-party libraries not yet compatible with ESM, which could complicate the migration process.


================================================
FILE: docs/adr-composition-vs-api.md
================================================
# CSS Modules

## Composition vs closed component APIs

## Problems and definitions

**Composition** is what we do when we assemble HTML or JSX elements to build a cohesive whole. For instance:

```tsx
<ul>
	<li>This list</li>
	<li>
		Exemplifies <a href="https://talend.com">composition</a>
	</li>
</ul>
```

The combination of `ul`, `li` and `a` gives us an unordered list with one of its items containing a hyperlink anchor. This is familiar, flexible and commonplace.

A **closed component API model** does not rely on consumers performing the composition, but on them using input / output parameters to achieve the same result. For instance:

```tsx
<ExampleList
    entries=[
        'This list',
        <>Exemplifies <a href="https://talend.com">a closed API</a></>,
    ]
/>

---
// Where...
type entry = string | React.ReactElement;

type ListProps = {
  entries: entry[];
};
```

This would achieve the same unordered list with a hyperlink anchor.

### Composition

**Pros**

Composition is familiar to anybody who's ever built raw HTML. It's the basic building methodology for layout.

It's flexible and agnostic. Given the right building blocks, one can compose nearly anything.

**Cons**

It's flexible and agnostic. You can do whatever you want with it.

```tsx
<ul>
	<p>I really should not be here</p>
</ul>
```

This won't break your app.

```tsx
<a href="#" onClick={() => performSomePageAction()}>
	I'm a button, LOL
</a>
```

This would also work, despite being semantically wrong and an accessibility faux-pas.

Now let's consider the composition of non-native HTML tags such as React components.

```tsx
<List>
	<ListEntry>This list</ListEntry> // This is fine
	<input type="text" name="name" /> // This is not
	<InlineMessage>exemplifies compositionnal pitfalls</InlineMessage> // Neither is this
</List>
```

Sure, we can provide more opinionated components (`List` and `ListEntry` here would have specific styles and behaviours), but we cannot limit composition: `children` are notoriously untypeable in a way that would only allow some other subset of React components. What's composable isn't "a little bit composable", it's either fully open (`children: React.ReactElement;`) or very closed (`children: string | number | ...`).

It's a major risk to a product's homogeneity of patterns and behaviours.

### Closed component APIs

**Pros**

It removes the need for tedious composition. Developers no longer need to concern themselves with the proper HTML semantics and intricacies of which HTML tag can legally be a child of such and such parent.

It enforces homogeneity. Closed typed APIs put hard limits to what a component can display and how it can behave. They become easier to predict and less prone to diverging when different developers implement them.

Closed APIs are also strongly typed with TS, providing a better dev experience and overall more reliable components. TS's compiler will break before any poorly-fed component goes online.

**Cons**

It's rigid, it doesn't allow for "slightly different" use cases. The component will do what its API requires, nothing more, nothing "a few pixels more to the left on this one page". Closed API components are specialised.

This can lead to two props-related pitfalls:

First, props proliferation:

```tsx
<List
	entries={[
		[
			'This list',
			'Actually',
			'is complex enough'
			'that even one of its props',
			'has multiple levels',
			...
		],
		[
			{
				label: 'like two kinds of lists',
				value: 20,
				onClick: () => RandomCalbackWithValue(20),
			},
			{
				label: 'with different interfaces',
				value: 10,
				onClick: () => RandomCalbackWithValue(10),
			},
			...
		],
	]}
    actionLeft={() => void}
	actionRight={() => void}
	offsetXStart={20}
	offsetXEnd={0}
	offsetYStart={10}
	offsetYEnd={0}
	headerActions={[
		{
			icon: 'talend-pen',
			label: t('TALEND-EDIT'),
			onClick: () => void,
		},
		...
	]}
	footerActions={[
		{
			icon: 'talend-pen',
			label: t('TALEND-EDIT'),
			onClick: () => void,
		},
		...
	]}
	filters={[
		{
			value: 'size',
			label: t('TALEND-SIZE'),
		}
		...
	]}
/>
```

This is complex to use, to maintain, to document. Contributors run the risk of "piling in" more props on top of the props-layer-cake just to achieve "one more thing" on top of it all.

The other issue is props drilling. In the above component, many of those theoretical surface props wouldn't actually be used by first-level components, but be passed down deeper to their intended hosts.

Closed component APIs can lead to poor developer experience.

### What do we need

It boils down to one question: "what is the design system trying to achieve?". It's trying to achieve a _cohesive, homogenous experience across all our products_.

## Solutions

In order to meet those needs, we need to ship components without opening them up for customization. They must work out of the box and preserve Talend's identity!

Our best option to deliver this is to **rely on _exporting_ components with closed APIs** for most things (more on that later)**.** Internally, those components will of course rely on composition. Think of it this way: the design system uses the bricks to build the house, you only have to "import" the house and provide the furniture.

What do we mean when we say "most things" will be shipped with closed APIs? Let's dive in.

### Atoms

Atoms are often single-tag elements, direct equivalents to HTML's basic blocks. Very obvious ones are `Button` `Link` or `Input` elements.

These will offer props that are based on their HTML counterparts minus `className` and `style` since, again, we discourage customisation.

Additional props will be added only when it's necessary to ensure homogeneity. For instance, `Button` components may receive an `icon` prop: this enables the design system to enforce which icons can be used, how they are inserted in the button's layout and how they are displayed. Atoms must remain otherwise simple.

Composition _inside_ atoms is highly unlikely. Expect them to only accept `string` children (thanks, TS!).

### Molecules and organisms

This is often the meat and the core value of a shared component library: interactive components that display things in a rich, interesting way, while enabling contextually relevant actions.

The whole point is that they are repetitively used. It would make no sense to offer them as kits that must be assembled by consumers. The design system must provide them already assembled and ready to be hydrated through their closed APIs.

If the organisms grow too complicated in props, the first solution would be to create a dedicated component for that subset of needed props (for instance, though there may be a `ContextualMenu` component, a `ContextualMenuWithSearch` declination may be created if the prop specificity requires it.)

### Templates or pages

These are often referred to as "layout blocks". Their goal is to arrange "where" things go, what are the basic necessary blocks in there, and then to let users build freely within those boundaries.

The more generic those templates are (agnostic of their contents, for instance, a template called `PageWithSubheader`), the more they will rely on composition with very little props on the component itself.

The more specific they are (for instance a template called `FormPage`), the less composition will be expected from the end-user.

**Composition is a tool we use when we can't document a set pattern**. If we can document it, then we can describe an API for it.

## Why don't you do it like Material / Atlassian / Adobe or other public libraries (Reakit...) out there?

Because we don't have to. Public component libraries use composition as a necessity: they are agnostic, built to cater to many products with unpredictable patterns.

We're not a sprawling corporation with hundreds of designers spread across the globe with unmanageably different aspirations. A single, strongly documented design language is accessible to us.

Those libraries do not rely on consumers perpetually rebuilding the same components over and over again either: they do expect us to use their blocks to create opinionated components that are then shared with consumers.

This is what we do. We use our own components (and some of theirs, cc Reakit) internally to compose the ones that our products need. That need is defined collectively as a design decision by Product Designers, PMs and developers alike. The design system documents and caters to that need in the shape of components.

## TL;DR

Components will be coded with a "closed public API" approach, using composition privately within the design system. This ensures we can easily compose components on one end (the library) while keeping things homogenous on the other (in the products).

Exceptions are expected to happen but must meet two criteria:

- Composition, in this case, is a necessity (ex: layout element, unpredictable content)
- No consensus can be found for a component's API. In this case, chances are the discussed component specificity is too high for a shared library. It becomes in the design system's interest to provide at least homogenous building blocks for that element.


================================================
FILE: docs/adr-css-modules.md
================================================
# CSS Modules

[^1]: tl;dr.

## Context

[Styled Components](https://styled-components.com/) are great for managing a design system with several themes or modes.  
They have been chosen because we needed multi-themes support and including IE11 support. So CSS custom properties were not an option.  
We've since dropped the support of IE11. We can challenge that choice.

## Problems

They intertwine styles and components in a way that muddles the component's typings.  
Its `as` property is too permissive for a design system, enabling users to break the intended patterns using any HTML element or React component.  
There is no guarantee about the tokens you use (or not) in your styles.  
You cannot quickly identify which DOM node will be generated because of the exported Styled Components.  
You must precise the `displayName` for each component and their variations

### What do we need

- A styling solution that does not pollute the components' typing
- A styling solution that handles theming (white-labeling as much as a possible dark theme)
- A styling solution that easily exploits tokens and variables
- We must be able consume variables that represent tokens

### What would we like

- Exportable themes-as-variables: our customers (the front-end engineers) mostly use CSS modules with Sass variables in their projects. When the design system doesn't provide everything they need, we should still give them variables accessing the theme.
- Global stylesheets
- Something simple and familiar to use
- No need for displayName

## Solutions

By introducing [expertly crafted web design tokens](#3528), represented by CSS custom properties, we are now able to align the Design System with the rest of the Talend/UI packages.  
By alignment, we are talking about [CSS Modules](https://github.com/css-modules/css-modules).  
We will replace all current Styled Components usages, tracked by JIRA.  
But, starting now[^1], any style update in the Design System package will use CSS modules.


================================================
FILE: docs/adr-data-test.md
================================================
# Use [data-testid] attributes for generic automated tests

## Context

Quality Assurance teams perform automated tests on Products for non-regression testing.

## Problems

QA teams lean on HTML ID attributes or XPath to automate tests on UI, and updates on the shared library can break these scenarios.

## Solutions

Systematically enforce [data-testid] attributes for QA purpose in the components or layout markup that require them.
They will be mandatory for each interactive element, at least.
We see two benefits to that pattern:

1 — Better documentation. The single data attribute acts as a contract with our QA team and it's easy to find which components are under that contract.

2 — Ease of use. Component testing becomes more straightforward as the same pattern can be expected on all design system components.

```css
[data-testid="<block_name>.<element_type>[?<element_index>].<?element_identifier>"]
```

| Identifier           | Optional | Description                                                                                                                                  |
| -------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `block_name`         |          | Component or layout identifier from our design language (ex: modal, search, password, inlineediting, etc.)                                   |
| `element_type`       |          | Element or its type used (ex: button, link, input, textarea, radio, etc.)                                                                    |
| `element_index`      | yes      | Element index if it's repeated (radio, menu items, etc.)                                                                                     |
| `element_identifier` | yes      | A short and comprehensive identifier. In case of a form field, we can use its label value (reveal, cancel, edit, submit, etc.) for instance. |

Stick to this ruleset but keep in mind:

> This ruleset applies to all shared react components: we definitively have to be **context agnostic**.
> If we're testing a text input, it could for instance be used for a `first name` or an `API key name`.
> That's why we need to **keep it simple and stupid** when naming things.

Describe the pattern, not the specific one-shot use you will use it for.

The `[data-testid]` attributes here are an addition to what the product team can provide.

`[data-testid]` attributes are the default that we can agree on, enabling to write E2E tests without worrying about the HTML markup or the CSS.

### Examples

- For a "Close" button of a `Modal`
  `[data-testid="modal.button.close"]`

- For a "Reveal" button of a `Password` form field
  `[data-testid="password.button.reveal"]`

- For a textarea of the `Inline Editing` in edition mode
  `[data-testid="inlineediting.textarea"]`

- For a filter of a list
  `[data-testid="search.input"]`

- For a `Switch` with three options, which uses radio buttons under the hood
  `[data-testid="switch.radio[1]"]` `[data-testid="switch.radio[2]"]` `[data-testid="switch.radio[3]"]`

All of this will be part of the documentation (see below) and each of them will be used in [Cypress component testing](https://docs.cypress.io/guides/component-testing/introduction) in our Design System codebase.


================================================
FILE: docs/adr-dependencies.md
================================================
# Usage of dependencies, peerDependencies, devDependencies in package.json

## Context

Dependencies are specified using the package.json file in the library's codebase.
We have more and more libraries written and used by projects.

We use different distribution formats for our libraries:

- UMD for some (react-components, react-cmf, etc ...)
- a mix of transpiled JS and SASS files which needs sharing config to make it work for others

## Problems

We see commits with a mix of libraries being added to `peerDependencies` and `dependencies` without real guidelines.
Each change in peerDependencies leads to [a major release](https://github.com/semver/semver/issues/502).

We do not know when to put a dependency in the `"peerDependencies"` or just in the `"dependencies"` of the package.json file.

With yarn, `peerDependencies` are hard to manage. Yarn only outputs a warning the first time it encounters the dependency, when it needs to really install it in your node_modules. It's easy to miss and to forget. We have also seen some false positive warnings.

With npm, peerDependencies management depends on the version used:

- npm 1,2,7,8 install peerDependencies
- npm 3,4,5,6 do not install peerDependencies

The documentation of npm only covers the behavior of npm, not the definition and actual usage of these peer dependencies.

We know our project can't use npm > 7.0 because we have some issues in our peerDependencies definitions!
npm > 7 requires all peer dependencies to be at the same level, the same version. That needs to be fixed on our end.

## Solutions

Define a clear guideline for dependency requirements in the package.json files of libraries.

### Guideline

**`"devDependencies"`**

Add **a-dependency** under `devDependencies` if **a-dependency** is used only to build, debug, or because A is also a peerDependencies.

Basically use `devDependencies` if this dependency has no impact on runtime.

examples:

- @talend/scripts-core
- @talend/scripts-preset-react-lib
- i18next-scanner
- cross-env
- react (if in peerDependencies)

Type dependencies (usually in the format `@types/some-js-library`) can be added to `devDependencies` only if the exported types for the library you're working on do not depend on it.

```javascript
import { LibType } from 'some-js-library';

// If this export is available in the bundle, then your bundle has an actual dependency to LibType
export myLibType = LibType & { isActive: boolean };
```

**`"dependencies"`**

Add **a-dependency** under `dependencies` only if it is used by the code and does not fall under peerDependencies.

examples:

- @talend/design-token
- @talend/router-bridge
- @talend/react-components
- @talend/react-containers
- @talend/react-dataviz
- classnames
- keycode
- lodash
- prop-types
- date-fns
- react-bootstrap

As we've discussed, add type files to dependencies if your exported types depends on it.

**`"peerDependencies"`**

Add **a-dependency** under peerDependencies only if the consumer will need to import or configure something out of that dependency, to make your library work (ex: i18next is used in my library, the host project will need to configure it for the library to run)

At the [begining in 2013](https://nodejs.org/en/blog/npm/peer-dependencies/) the peerDependencies as heen created to cover the Plugin needs.
So **a-dependency** can be added even if your library do not use it.

examples:

- @talend/design-system
- @talend/react-cmf
- react
- react-dom
- i18next
- react-i18next


================================================
FILE: docs/adr-rework-talend-scripts.md
================================================
# Rework Talend scripts

## Context

It would be nide to add a new preset for node applications.
While creating it, it would be nice to rework a bit how script are handled.
We could avoid to pull all the dependencies for all the scripts, for instance we don't need storybook for node apps etc.

## Proposal

The proposal would be to split the scripts in different packages that don't rely on each others.
The index.js of talend-scripts would check the package.json and require the right package.

if the command is now known, it would fallback to required the package and execute the command like this

```
talend-scripts upgrade:deps
-> require ("@talend/upgrade-deps")()
```

### app-react-ng

build (webpack)
start (webpack)
start-storybook (storybook)
build-storybook (storybook)
test (jest + karma)
lint (eslint + stylelint)

### app-react

build (webpack)
start (webpack)
start-storybook (storybook)
build-storybook (storybook)
test (jest)
lint (eslint + stylelint)

### lib

build (tsc || babel)
start (storybook)
build-storybook (storybook)
test (jest)
lint (eslint + stylelint)

### node

build (tsc || babel)
start (ts-node-dev)
test (jest)
lint (eslint)

## Other scripts

- upgrade:deps : could be moved to a dedicated package (available via npx for instance)
- publish:local : could be moved to a dedicated package (available via npx for instance)
- extends : is it used ?
- postinstall : is it used ?


================================================
FILE: eslint.config.mjs
================================================
import config from '@talend/eslint-config';

export default config;


================================================
FILE: fork/bootstrap-sass/.gitignore
================================================
*.gem
.sass-cache
bootstrap.css
bootstrap-responsive.css
Gemfile.lock
*.gemfile.lock
.rvmrc
.rbenv-version

# Ignore bundler config
/.bundle
/vendor/cache
/vendor/bundle
tmp/
test/screenshots/
test/dummy_rails/log/*.log
test/dummy_rails/public/assets/
.DS_Store
node_modules
/.idea


================================================
FILE: fork/bootstrap-sass/CHANGELOG.md
================================================
# Changelog

## 5.6.2

### Patch Changes

- 4408b98: chore: upgrade dependencies

## 5.6.1

### Patch Changes

- 6181519: chore: update eslint 10

## 5.6.0

### Minor Changes

- c1eae85: Update eslint to v9 + update config

## 5.5.0

### Minor Changes

- bb95e38: Fix CVE's by upgrading sq to v6.14.1, tar to 7.5.4 and eslint to 9.39.2

## 5.4.0

### Minor Changes

- ed37213: Update dependencies

## 5.3.2

### Patch Changes

- de6ae38: Bump dependencies

## 5.3.1

### Patch Changes

- 4f5cc5c: Bump security CVE

## 5.3.0

### Minor Changes

- c3750a1: chore: upgrade dependencies

  Major upgrade for all packages that have a peerDependency on react or react-dom. Those packages now ask for react@18 and react-dom@18.

## 5.2.1

### Patch Changes

- 1abc22f: chore: upgrade dependencies

## 5.2.0

### Minor Changes

- 9568363: Use include instead of same-origin in the credentials option of fetch.

## 5.1.0

### Minor Changes

- 18c1d97: `rem` values have been updated to correspond to the new `rem` base (16px) define by the design system

## 5.0.0

### Major Changes

- 3dc3100: chore: remove font-size override (this should not impact the apps as it's done also on the design-system provider)

## 4.0.0

### Major Changes

- 9f9fc07: chore: remove font-size override (this should not impact the apps as it's done also on the design-system provider)

## 3.5.1

### Patch Changes

- f14ebbe23: Add missing deps

## 3.5.0

### Minor Changes

- 9d137cb98: \* 275e7da72 2023-08-03 feat(TDOPS-4875): use elevation tokens (#4821)
  - bfc02c4fb 2023-07-24 feat(ARCH-720): use design-tokens for colors (#4779)
  - c18aabb97 2023-01-12 feat(ARCH-662/scripts-core): move to ESM and remove presets (#4531)
  - aa5223cf3 2021-12-20 chore(ARCH-404/CI): decrease time needed (#3564)
  - 4842bffc2 2021-11-02 chore: wake up the playground to test UMDs (#3428)
  - 667cd0a50 2021-10-05 chore: upgrade dependencies (#3459)

## 3.4.8

### Patch Changes

- 809c30848: fix(boostrap-sass): use calc instead of math.div

## 3.4.7

### Patch Changes

- ca60841df: revert usage of @use sass:math

## 3.4.6

### Patch Changes

- f1f4ec5bc: fix(workspace-run): package run order

## 3.4.5

### Patch Changes

- 3e9121287: chore(build): order packages on pre-release hook

## 3.4.0

- Bootstrap rubygem now depends on SassC instead of Sass.
- Compass no longer supported.

## 3.3.7

- Allows jQuery 3.x in bower.json. [#1048](https://github.com/twbs/bootstrap-sass/issues/1048)
- Adds the `style` and `sass` fields to package.json. [#1045](https://github.com/twbs/bootstrap-sass/issues/1045)
- Adds Eyeglass support. [#1007](https://github.com/twbs/bootstrap-sass/pull/1007)

## 3.3.6

- Bumps Sass dependency to 3.3.4+ to avoid compatibility issues with @at-root.
- Bumps node-sass dependency to ~3.4.2 for Node.js v5 compatibility. [#986](https://github.com/twbs/bootstrap-sass/issues/986)
- Fixes breadcrumb content issues on libsass. [#919](https://github.com/twbs/bootstrap-sass/issues/919)
- Fixes a Rails 5 compatibility issue. [#965](https://github.com/twbs/bootstrap-sass/pull/965)

Framework version: Bootstrap **v3.3.6**

## 3.3.5

Fix for standalone Compass extension compatibility. [#914](https://github.com/twbs/bootstrap-sass/issues/914)

Framework version: Bootstrap **v3.3.5**

## 3.3.4

No Sass-specific changes.

Framework version: Bootstrap **v3.3.4**

## 3.3.3

This is a re-packaged release of 3.3.2.1 (v3.3.2+1).

Versions are now strictly semver.
The PATCH version may be ahead of the upstream.

Framework version: Bootstrap **v3.3.2**.

## 3.3.2.1

- Fix glyphicons regression (revert 443d5b49eac84aec1cb2f8ea173554327bfc8c14)

## 3.3.2.0

- Autoprefixer is now required, and `autoprefixer-rails` is now a dependency for the ruby gem. [#824](https://github.com/twbs/bootstrap-sass/issues/824)
- Minimum precision reduced from 10 to 8 [#821](https://github.com/twbs/bootstrap-sass/issues/821)
- Requiring bootstrap JS from npm now works [#812](https://github.com/twbs/bootstrap-sass/issues/812)
- Fix Sass 3.4.x + IE10 compatibility issue [#803](https://github.com/twbs/bootstrap-sass/issues/803)
- Provide minified JS bundle [#777](https://github.com/twbs/bootstrap-sass/issues/777)
- Bower package is now at bootstrap-sass [#813](https://github.com/twbs/bootstrap-sass/issues/813)

## 3.3.1.0

- Variables override template at templates/project/\_bootstrap-variables.sass
- Readme: Bower + Rails configuration

## 3.3.0.1

- Fix loading issue with the ruby gem version

## 3.3.0

- Improve libsass compatibility
- Support using Bower package with Rails

## 3.2.0.2

Main bootstrap file is now a partial (\_bootstrap.scss), for compatibility with Compass 1+.

Fixed a number of bugs. [Issues closed in v3.2.0.2](https://github.com/twbs/bootstrap-sass/issues?q=is%3Aissue+is%3Aclosed+milestone%3Av3.2.0.2).

## 3.2.0.1

Fixed a number of bugs: [Issues closed in v3.2.0.1](https://github.com/twbs/bootstrap-sass/issues?q=is%3Aissue+is%3Aclosed+milestone%3Av3.2.0.1).

## 3.2.0.0

- Assets (Sass, JS, fonts) moved from `vendor/assets` to `assets`. `bootstrap.js` now contains concatenated JS.
- Compass generator now copies JS and fonts, and provides a better default `styles.sass`.
- Compass, Sprockets, and Mincer asset path helpers are now provided in pure Sass: `bootstrap-compass`, `bootstrap-sprockets`, and `bootstrap-mincer`.
  Asset path helpers must be imported before `bootstrap`, more in Readme.
- Sprockets / Mincer JS manifest has been moved to `bootstrap-sprockets.js`.
  It can be required without adding Bootstrap JS directory to load path, as it now uses relative paths.
- Sprockets: `depend_on_asset` (`glyphicons.scss`) has been changed to `depend_on` to work around an issue with `depend_on_asset`.
  [More information](https://github.com/twbs/bootstrap-sass/issues/592#issuecomment-46570286).

## 3.1.1.0

- Updated Bower docs

## 3.1.0.2

- #523: Rails 3.2 compatibility
- Bugfixes from upstream up to 7eb532262fbd1112215b5a547b9285794b5360ab.

## 3.1.0.1

- #518: `scale` mixin Sass compatibility issue

## 3.1.0.0

- compiles with libsass master

## 3.0.2.1

- fix vendor paths for compass

## 3.0.0.0

- Fully automated (lots of string juggling) LESS -> Sass conversion. - _Gleb Mazovetskiy_
- Ported rake task from vwall/compass-twitter-bootstrap to convert Bootstrap upstream - _Peter Gumeson_
- Moved javascripts to us `bootstrap-component.js` to `bootstrap/component.js` - _Peter Gumeson_

## 2.3.2.2

- Allow sass-rails `>= 3.2` - _Thomas McDonald_

## 2.3.2.1

## 2.3.2.0

- Update to Bootstrap 2.3.2 - _Dan Allen_

## 2.3.1.3

- Find the correct Sprockets context for the `image_path` function - _Tristan Harward, Gleb Mazovetskiy_

## 2.3.1.2

- Fix changes to image url - _Gleb Mazovetskiy_
- Copy \_variables into project on Compass install - _Phil Thompson_
- Add `bootstrap-affix` to the Compass template file - _brief_

## 2.3.1.1 (yanked)

- Change how image*url is handled internally - \_Tristan Harward*
- Fix some font variables not having `!default` - _Thomas McDonald_

## 2.3.0.0

- [#290] Update to Bootstrap 2.3.0 - _Tristan Harward_
- Fix `rake:debug` with new file locations - _Thomas McDonald_
- Add draft contributing document - _Thomas McDonald_
- [#260] Add our load path to the global Sass load path - _Tristan Harward_
- [#275] Use GitHub notation in Sass head testing gemfile - _Timo Schilling_
- [#279, #283] Readme improvements - _theverything, Philip Arndt_

## 2.2.2.0

- [#270] Update to Bootstrap 2.2.2 - _Tristan Harward_
- [#266] Add license to gemspec - _Peter Marsh_

## 2.2.1.1

- [#258] Use `bootstrap` prefix for `@import`ing files in `bootstrap/bootstrap.scss` - _Umair Siddique_

## 2.2.1.0

- [#246] Update to Bootstrap 2.2.1 - _Tristan Harward_
- [#246] Pull Bootstrap updates from jlong/sass-twitter-bootstrap - _Tristan Harward_

## 2.1.1.0

- Update to Bootstrap 2.1.1
- [#222] Remove 100% multiplier in vertical-three-colours
- [#227] Fix IE component animation collapse
- [#228] Fix variables documentation link
- [#231] Made .input-block-level a class as well as mixin

## 2.1.0.1

- [#219] Fix expected a color. Got: transparent.
- [#207] Add missing warning style for table row highlighting
- [#208] Use grid-input-span for input spans

## 2.1.0.0

- Updated to Bootstrap 2.1
- Changed some mixin names to be more consistent. Nested mixins in Less are separated by a `-` when they are flattened in Sass.

## 2.0.4.1

- Fix `.row-fluid > spanX` nesting
- Small Javascript fixes for those staying on the 2.0.4 release
- Add `!default` to z-index variables.

## 2.0.4.0

- Updated to Bootstrap 2.0.4
- Switched to Bootstrap 2.0.3+'s method of separating responsive files
- [#149, #150] Fix off by one error introduced with manual revert of media query breakpoints
- `rake debug` and `rake test` both compile bootstrap & bootstrap-responsive

## 2.0.3.1

- [#145, #146] Fix button alignment in collapsing navbar as a result of an incorrect variable

## 2.0.3

- Updated to Bootstrap 2.0.3
- [#106] Support for Rails < 3.1 through Compass
- [#132] Add CI testing
- [#106] Support Rails w/Compass
- [#134] Fix support for Rails w/Compass

## 2.0.2

- [#86] Updated to Bootstrap 2.0.2
  Things of note: static navbars now have full width. (to be fixed in 2.0.3) `.navbar-inner > .container { width:940px; }` seems to work in the meanwhile
- [#62] Fixed asset compilation taking a _very_ long time.
- [#69, #79, #80] \(Hopefully) clarified README. Now with less cat humour.
- [#91] Removed doubled up Sass extensions for Rails.
- [#63, #73] Allow for overriding of image-path
- [[SO](http://stackoverflow.com/a/9909626/241212)] Added makeFluidColumn mixin for defining fluid columns. Fluid rows must use `@extend .row-fluid`, and any column inside it can use `@include makeFluidColumn(num)`, where `num` is the number of columns. Unfortunately, there is a rather major limitation to this: margins on first-child elements must be overriden. See the attached Stack Overflow answer for more information.

## 2.0.1

- Updated to Bootstrap 2.0.1
- Modified `@mixin opacity()` to take an argument `0...1` rather than `0...100` to be consistent with Compass.

## 2.0.0

- Updated to Bootstrap 2.0.0


================================================
FILE: fork/bootstrap-sass/CONTRIBUTING.md
================================================
# Contributing to bootstrap-sass

## Asset Changes

Any changes to `bootstrap-sass` assets (scss, javascripts, fonts) should be checked against the `convert` rake task.
For usage instructions, see the [README](/README.md).

If something is broken in the converter, it's preferable to update the converter along with the asset itself.


## Bugs

A bug is a _demonstrable problem_ that is caused by the code in the
repository. Good bug reports are extremely helpful - thank you!

Guidelines for bug reports:

1. **Does it belong here?** &mdash; is this a problem with bootstrap-sass, or
   it an issue with [twbs/bootstrap](https://github.com/twbs/bootstrap)?
   We only distribute a direct port and will not modify files if they're not
   changed upstream.

2. **Use the GitHub issue search** &mdash; check if the issue has already been
   reported.

3. **Isolate the problem** &mdash; ideally create a [reduced test
   case](http://css-tricks.com/6263-reduced-test-cases/) and a live example.

A good bug report shouldn't leave others needing to chase you up for more
information. Please try to be as detailed as possible in your report. What is
your environment? What steps will reproduce the issue? What browser(s) and OS
experience the problem? What would you expect to be the outcome? All these
details will help people to fix any potential bugs.

Example:

> Short and descriptive example bug report title
>
> A summary of the issue and the browser/OS environment in which it occurs. If
> suitable, include the steps required to reproduce the bug.
>
> 1. This is the first step
> 2. This is the second step
> 3. Further steps, etc.
>
> `<url>` (a link to the reduced test case)
>
> Any other information you want to share that is relevant to the issue being
> reported. This might include the lines of code that you have identified as
> causing the bug, and potential solutions (and your opinions on their
> merits).

**[File a bug report](https://github.com/twbs/bootstrap-sass/issues/)**


## Pull requests

**We will not accept pull requests that modify the SCSS beyond fixing bugs caused by *our* code!**

We use a [converter script][converter-readme] to automatically convert upstream bootstrap, written in LESS, to Sass.

Issues related to styles or javascript but unrelated to the conversion process should go to [twbs/bootstrap][upstream].

Pull requests that fix bugs caused by our code should not modify the SCSS directly, but should patch the converter instead.

Good pull requests - patches, improvements, new features - are a fantastic
help. They should remain focused in scope and avoid containing unrelated
commits. If your contribution involves a significant amount of work or substantial
changes to any part of the project, please open an issue to discuss it first.

Make sure to adhere to the coding conventions used throughout a project
(indentation, accurate comments, etc.). Please update any documentation that is
relevant to the change you're making.

## Do not…

Please **do not** use the issue tracker for personal support requests (use
[Stack Overflow](http://stackoverflow.com/)).

Please **do not** derail or troll issues. Keep the
discussion on topic and respect the opinions of others.

*props [html5-boilerplate](https://github.com/h5bp/html5-boilerplate/blob/master/CONTRIBUTING.md)*

[upstream]: https://github.com/twbs/bootstrap
[converter-readme]: https://github.com/twbs/bootstrap-sass/blob/master/README.md#upstream-converter


================================================
FILE: fork/bootstrap-sass/LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2011-2016 Twitter, Inc
Copyright (c) 2011-2016 The Bootstrap Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: fork/bootstrap-sass/README.md
================================================
# Bootstrap 3 for Sass

Note: this is a fork for [Talend/ui](https://github.com/Talend/ui) maintainance reasons. We fix security and sass compatibility only. For the override please look at `@talend/bootstrap-theme`.

[![npm version](https://img.shields.io/npm/v/@talend/bootstrap-sass.svg?style=flat)](https://www.npmjs.com/package/@talend/bootstrap-sass)

`bootstrap-sass` is a Sass-powered version of [Bootstrap](https://github.com/twbs/bootstrap) 3, ready to drop right into your Sass powered applications.

This is Bootstrap **3**. For Bootstrap **4** use the [Bootstrap rubygem](https://github.com/twbs/bootstrap-rubygem) if you use Ruby, and the [main repo](https://github.com/twbs/bootstrap) otherwise.

## Installation

Please see the appropriate guide for your environment of choice:

* [Ruby on Rails](#a-ruby-on-rails).
* [Bower](#b-bower).
* [npm / Node.js](#c-npm--nodejs).

### a. Ruby on Rails

`bootstrap-sass` is easy to drop into Rails with the asset pipeline.

In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `sass-rails` gem is present - it is added to new Rails applications by default.

```ruby
gem 'bootstrap-sass', '~> 3.4.1'
gem 'sassc-rails', '>= 2.1.0'
```

`bundle install` and restart your server to make the files available through the pipeline.

Import Bootstrap styles in `app/assets/stylesheets/application.scss`:

```scss
// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
@import "bootstrap-sprockets";
@import "bootstrap";
```

`bootstrap-sprockets` must be imported before `bootstrap` for the icon fonts to work.

Make sure the file has `.scss` extension (or `.sass` for Sass syntax). If you have just generated a new Rails app,
it may come with a `.css` file instead. If this file exists, it will be served instead of Sass, so rename it:

```console
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
```

Then, remove all the `*= require_self` and `*= require_tree .` statements from the sass file. Instead, use `@import` to import Sass files.

Do not use `*= require` in Sass or your other stylesheets will not be [able to access][antirequire] the Bootstrap mixins or variables.

Bootstrap JavaScript depends on jQuery.
If you're using Rails 5.1+, add the `jquery-rails` gem to your Gemfile:

```ruby
gem 'jquery-rails'
```

```console
$ bundle install
```

Require Bootstrap Javascripts in `app/assets/javascripts/application.js`:

```js
//= require jquery
//= require bootstrap-sprockets
```

`bootstrap-sprockets` and `bootstrap` [should not both be included](https://github.com/twbs/bootstrap-sass/issues/829#issuecomment-75153827) in `application.js`.

`bootstrap-sprockets` provides individual Bootstrap Javascript files (`alert.js` or `dropdown.js`, for example), while
`bootstrap` provides a concatenated file containing all Bootstrap Javascripts.

#### Bower with Rails

When using [bootstrap-sass Bower package](#c-bower) instead of the gem in Rails, configure assets in `config/application.rb`:

```ruby
# Bower asset paths
root.join('vendor', 'assets', 'bower_components').to_s.tap do |bower_path|
  config.sass.load_paths << bower_path
  config.assets.paths << bower_path
end
# Precompile Bootstrap fonts
config.assets.precompile << %r(bootstrap-sass/assets/fonts/bootstrap/[\w-]+\.(?:eot|svg|ttf|woff2?)$)
# Minimum Sass number precision required by bootstrap-sass
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max
```

Replace Bootstrap `@import` statements in `application.scss` with:

```scss
$icon-font-path: "bootstrap-sass/assets/fonts/bootstrap/";
@import "bootstrap-sass/assets/stylesheets/bootstrap-sprockets";
@import "bootstrap-sass/assets/stylesheets/bootstrap";
```

Replace Bootstrap `require` directive in `application.js` with:

```js
//= require bootstrap-sass/assets/javascripts/bootstrap-sprockets
```

#### Rails 4.x

Please make sure `sprockets-rails` is at least v2.1.4.

#### Rails 3.2.x

bootstrap-sass is no longer compatible with Rails 3. The latest version of bootstrap-sass compatible with Rails 3.2 is v3.1.1.0.

### b. Bower

bootstrap-sass Bower package is compatible with node-sass 3.2.0+. You can install it with:

```console
$ bower install bootstrap-sass
```

Sass, JS, and all other assets are located at [assets](/assets).

By default, `bower.json` main field list only the main `_bootstrap.scss` and all the static assets (fonts and JS).
This is compatible by default with asset managers such as [wiredep](https://github.com/taptapship/wiredep).

#### Node.js Mincer

If you use [mincer][mincer] with node-sass, import Bootstrap like so:

In `application.css.ejs.scss` (NB **.css.ejs.scss**):

```scss
// Import mincer asset paths helper integration
@import "bootstrap-mincer";
@import "bootstrap";
```

In `application.js`:

```js
//= require bootstrap-sprockets
```

See also this [example manifest.js](/test/dummy_node_mincer/manifest.js) for mincer.

### c. npm / Node.js
```console
$ npm install bootstrap3-sass
```


## Configuration

### Sass

By default all of Bootstrap is imported.

You can also import components explicitly. To start with a full list of modules copy
[`_bootstrap.scss`](assets/stylesheets/_bootstrap.scss) file into your assets as `_bootstrap-custom.scss`.
Then comment out components you do not want from `_bootstrap-custom`.
In the application Sass file, replace `@import 'bootstrap'` with:

```scss
@import 'bootstrap-custom';
```

### Sass: Number Precision

bootstrap-sass [requires](https://github.com/twbs/bootstrap-sass/issues/409) minimum [Sass number precision][sass-precision] of 8 (default is 5).

Precision is set for Ruby automatically when using the `sassc-rails` gem.
When using the npm or Bower version with Ruby, you can set it with:

```ruby
::Sass::Script::Value::Number.precision = [8, ::Sass::Script::Value::Number.precision].max
```

### Sass: Autoprefixer

Bootstrap requires the use of [Autoprefixer][autoprefixer].
[Autoprefixer][autoprefixer] adds vendor prefixes to CSS rules using values from [Can I Use](https://caniuse.com/).

To match [upstream Bootstrap's level of browser compatibility](https://getbootstrap.com/getting-started/#support), set Autoprefixer's `browsers` option to:
```json
[
  "Android 2.3",
  "Android >= 4",
  "Chrome >= 20",
  "Firefox >= 24",
  "Explorer >= 8",
  "iOS >= 6",
  "Opera >= 12",
  "Safari >= 6"
]
```

### JavaScript

[`assets/javascripts/bootstrap.js`](/assets/javascripts/bootstrap.js) contains all of Bootstrap's JavaScript,
concatenated in the [correct order](/assets/javascripts/bootstrap-sprockets.js).


#### JavaScript with Sprockets or Mincer

If you use Sprockets or Mincer, you can require `bootstrap-sprockets` instead to load the individual modules:

```js
// Load all Bootstrap JavaScript
//= require bootstrap-sprockets
```

You can also load individual modules, provided you also require any dependencies.
You can check dependencies in the [Bootstrap JS documentation][jsdocs].

```js
//= require bootstrap/scrollspy
//= require bootstrap/modal
//= require bootstrap/dropdown
```

### Fonts

The fonts are referenced as:

```scss
"#{$icon-font-path}#{$icon-font-name}.eot"
```

`$icon-font-path` defaults to `bootstrap/` if asset path helpers are used, and `../fonts/bootstrap/` otherwise.

When using bootstrap-sass with Compass, Sprockets, or Mincer, you **must** import the relevant path helpers before Bootstrap itself, for example:

```scss
@import "bootstrap-compass";
@import "bootstrap";
```

## Usage

### Sass

Import Bootstrap into a Sass file (for example, `application.scss`) to get all of Bootstrap's styles, mixins and variables!

```scss
@import "bootstrap";
```

You can also include optional Bootstrap theme:

```scss
@import "bootstrap/theme";
```

The full list of Bootstrap variables can be found [here](https://getbootstrap.com/customize/#less-variables). You can override these by simply redefining the variable before the `@import` directive, e.g.:

```scss
$navbar-default-bg: #312312;
$light-orange: #ff8c00;
$navbar-default-color: $light-orange;

@import "bootstrap";
```

### Eyeglass

Bootstrap is available as an [Eyeglass](https://github.com/sass-eyeglass/eyeglass) module. After installing Bootstrap via NPM you can import the Bootstrap library via:

```scss
@import "bootstrap-sass/bootstrap"
```

or import only the parts of Bootstrap you need:

```scss
@import "bootstrap-sass/bootstrap/variables";
@import "bootstrap-sass/bootstrap/mixins";
@import "bootstrap-sass/bootstrap/carousel";
```

## Version

Bootstrap for Sass version may differ from the upstream version in the last number, known as
[PATCH](https://semver.org/spec/v2.0.0.html). The patch version may be ahead of the corresponding upstream minor.
This happens when we need to release Sass-specific changes.

Before v3.3.2, Bootstrap for Sass version used to reflect the upstream version, with an additional number for
Sass-specific changes. This was changed due to Bower and npm compatibility issues.

The upstream versions vs the Bootstrap for Sass versions are:

| Upstream |    Sass |
|---------:|--------:|
|    3.3.4+ |   same |
|    3.3.2 |   3.3.3 |
| <= 3.3.1 | 3.3.1.x |

Always refer to [CHANGELOG.md](/CHANGELOG.md) when upgrading.

---

## Development and Contributing

If you'd like to help with the development of bootstrap-sass itself, read this section.

### Upstream Converter

Keeping bootstrap-sass in sync with upstream changes from Bootstrap used to be an error prone and time consuming manual process. With Bootstrap 3 we have introduced a converter that automates this.

**Note: if you're just looking to *use* Bootstrap 3, see the [installation](#installation) section above.**

Upstream changes to the Bootstrap project can now be pulled in using the `convert` rake task.

Here's an example run that would pull down the master branch from the main [twbs/bootstrap](https://github.com/twbs/bootstrap) repo:

    rake convert

This will convert the latest LESS to Sass and update to the latest JS.
To convert a specific branch or version, pass the branch name or the commit hash as the first task argument:

    rake convert[e8a1df5f060bf7e6631554648e0abde150aedbe4]

The latest converter script is located [here][converter] and does the following:

* Converts upstream Bootstrap LESS files to its matching SCSS file.
* Copies all upstream JavaScript into `assets/javascripts/bootstrap`, a Sprockets manifest at `assets/javascripts/bootstrap-sprockets.js`, and a concatenation at `assets/javascripts/bootstrap.js`.
* Copies all upstream font files into `assets/fonts/bootstrap`.
* Sets `Bootstrap::BOOTSTRAP_SHA` in [version.rb][version] to the branch sha.

This converter fully converts original LESS to SCSS. Conversion is automatic but requires instructions for certain transformations (see converter output).
Please submit GitHub issues tagged with `conversion`.

## Credits

bootstrap-sass has a number of major contributors:

<!-- feel free to make these link wherever you wish -->
* [Thomas McDonald](https://twitter.com/thomasmcdonald_)
* [Tristan Harward](http://www.trisweb.com)
* Peter Gumeson
* [Gleb Mazovetskiy](https://github.com/glebm)

and a [significant number of other contributors][contrib].

## You're in good company
bootstrap-sass is used to build some awesome projects all over the web, including
[Diaspora](https://diasporafoundation.org/), [rails_admin](https://github.com/sferik/rails_admin),
Michael Hartl's [Rails Tutorial](https://www.railstutorial.org/), [gitlabhq](http://gitlabhq.com/) and
[kandan](http://getkandan.com/).

[converter]: https://github.com/twbs/bootstrap-sass/blob/master/tasks/converter/less_conversion.rb
[version]: https://github.com/twbs/bootstrap-sass/blob/master/lib/bootstrap-sass/version.rb
[contrib]: https://github.com/twbs/bootstrap-sass/graphs/contributors
[antirequire]: https://github.com/twbs/bootstrap-sass/issues/79#issuecomment-4428595
[jsdocs]: https://getbootstrap.com/javascript/#transitions
[sass-precision]: http://sass-lang.com/documentation/Sass/Script/Value/Number.html#precision%3D-class_method
[mincer]: https://github.com/nodeca/mincer
[autoprefixer]: https://github.com/postcss/autoprefixer


================================================
FILE: fork/bootstrap-sass/assets/images/.keep
================================================


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/affix.js
================================================
/* ========================================================================
 * Bootstrap: affix.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#affix
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // AFFIX CLASS DEFINITION
  // ======================

  var Affix = function (element, options) {
    this.options = $.extend({}, Affix.DEFAULTS, options)

    var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)

    this.$target = target
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))

    this.$element     = $(element)
    this.affixed      = null
    this.unpin        = null
    this.pinnedOffset = null

    this.checkPosition()
  }

  Affix.VERSION  = '3.4.1'

  Affix.RESET    = 'affix affix-top affix-bottom'

  Affix.DEFAULTS = {
    offset: 0,
    target: window
  }

  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
    var scrollTop    = this.$target.scrollTop()
    var position     = this.$element.offset()
    var targetHeight = this.$target.height()

    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false

    if (this.affixed == 'bottom') {
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
    }

    var initializing   = this.affixed == null
    var colliderTop    = initializing ? scrollTop : position.top
    var colliderHeight = initializing ? targetHeight : height

    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'

    return false
  }

  Affix.prototype.getPinnedOffset = function () {
    if (this.pinnedOffset) return this.pinnedOffset
    this.$element.removeClass(Affix.RESET).addClass('affix')
    var scrollTop = this.$target.scrollTop()
    var position  = this.$element.offset()
    return (this.pinnedOffset = position.top - scrollTop)
  }

  Affix.prototype.checkPositionWithEventLoop = function () {
    setTimeout($.proxy(this.checkPosition, this), 1)
  }

  Affix.prototype.checkPosition = function () {
    if (!this.$element.is(':visible')) return

    var height       = this.$element.height()
    var offset       = this.options.offset
    var offsetTop    = offset.top
    var offsetBottom = offset.bottom
    var scrollHeight = Math.max($(document).height(), $(document.body).height())

    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)

    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)

    if (this.affixed != affix) {
      if (this.unpin != null) this.$element.css('top', '')

      var affixType = 'affix' + (affix ? '-' + affix : '')
      var e         = $.Event(affixType + '.bs.affix')

      this.$element.trigger(e)

      if (e.isDefaultPrevented()) return

      this.affixed = affix
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null

      this.$element
        .removeClass(Affix.RESET)
        .addClass(affixType)
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
    }

    if (affix == 'bottom') {
      this.$element.offset({
        top: scrollHeight - height - offsetBottom
      })
    }
  }


  // AFFIX PLUGIN DEFINITION
  // =======================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.affix')
      var options = typeof option == 'object' && option

      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.affix

  $.fn.affix             = Plugin
  $.fn.affix.Constructor = Affix


  // AFFIX NO CONFLICT
  // =================

  $.fn.affix.noConflict = function () {
    $.fn.affix = old
    return this
  }


  // AFFIX DATA-API
  // ==============

  $(window).on('load', function () {
    $('[data-spy="affix"]').each(function () {
      var $spy = $(this)
      var data = $spy.data()

      data.offset = data.offset || {}

      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop

      Plugin.call($spy, data)
    })
  })

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/alert.js
================================================
/* ========================================================================
 * Bootstrap: alert.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#alerts
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // ALERT CLASS DEFINITION
  // ======================

  var dismiss = '[data-dismiss="alert"]'
  var Alert   = function (el) {
    $(el).on('click', dismiss, this.close)
  }

  Alert.VERSION = '3.4.1'

  Alert.TRANSITION_DURATION = 150

  Alert.prototype.close = function (e) {
    var $this    = $(this)
    var selector = $this.attr('data-target')

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
    }

    selector    = selector === '#' ? [] : selector
    var $parent = $(document).find(selector)

    if (e) e.preventDefault()

    if (!$parent.length) {
      $parent = $this.closest('.alert')
    }

    $parent.trigger(e = $.Event('close.bs.alert'))

    if (e.isDefaultPrevented()) return

    $parent.removeClass('in')

    function removeElement() {
      // detach from parent, fire event then clean up data
      $parent.detach().trigger('closed.bs.alert').remove()
    }

    $.support.transition && $parent.hasClass('fade') ?
      $parent
        .one('bsTransitionEnd', removeElement)
        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
      removeElement()
  }


  // ALERT PLUGIN DEFINITION
  // =======================

  function Plugin(option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.alert')

      if (!data) $this.data('bs.alert', (data = new Alert(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  var old = $.fn.alert

  $.fn.alert             = Plugin
  $.fn.alert.Constructor = Alert


  // ALERT NO CONFLICT
  // =================

  $.fn.alert.noConflict = function () {
    $.fn.alert = old
    return this
  }


  // ALERT DATA-API
  // ==============

  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/button.js
================================================
/* ========================================================================
 * Bootstrap: button.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#buttons
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // BUTTON PUBLIC CLASS DEFINITION
  // ==============================

  var Button = function (element, options) {
    this.$element  = $(element)
    this.options   = $.extend({}, Button.DEFAULTS, options)
    this.isLoading = false
  }

  Button.VERSION  = '3.4.1'

  Button.DEFAULTS = {
    loadingText: 'loading...'
  }

  Button.prototype.setState = function (state) {
    var d    = 'disabled'
    var $el  = this.$element
    var val  = $el.is('input') ? 'val' : 'html'
    var data = $el.data()

    state += 'Text'

    if (data.resetText == null) $el.data('resetText', $el[val]())

    // push to event loop to allow forms to submit
    setTimeout($.proxy(function () {
      $el[val](data[state] == null ? this.options[state] : data[state])

      if (state == 'loadingText') {
        this.isLoading = true
        $el.addClass(d).attr(d, d).prop(d, true)
      } else if (this.isLoading) {
        this.isLoading = false
        $el.removeClass(d).removeAttr(d).prop(d, false)
      }
    }, this), 0)
  }

  Button.prototype.toggle = function () {
    var changed = true
    var $parent = this.$element.closest('[data-toggle="buttons"]')

    if ($parent.length) {
      var $input = this.$element.find('input')
      if ($input.prop('type') == 'radio') {
        if ($input.prop('checked')) changed = false
        $parent.find('.active').removeClass('active')
        this.$element.addClass('active')
      } else if ($input.prop('type') == 'checkbox') {
        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
        this.$element.toggleClass('active')
      }
      $input.prop('checked', this.$element.hasClass('active'))
      if (changed) $input.trigger('change')
    } else {
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
      this.$element.toggleClass('active')
    }
  }


  // BUTTON PLUGIN DEFINITION
  // ========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.button')
      var options = typeof option == 'object' && option

      if (!data) $this.data('bs.button', (data = new Button(this, options)))

      if (option == 'toggle') data.toggle()
      else if (option) data.setState(option)
    })
  }

  var old = $.fn.button

  $.fn.button             = Plugin
  $.fn.button.Constructor = Button


  // BUTTON NO CONFLICT
  // ==================

  $.fn.button.noConflict = function () {
    $.fn.button = old
    return this
  }


  // BUTTON DATA-API
  // ===============

  $(document)
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
      var $btn = $(e.target).closest('.btn')
      Plugin.call($btn, 'toggle')
      if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
        // Prevent double click on radios, and the double selections (so cancellation) on checkboxes
        e.preventDefault()
        // The target component still receive the focus
        if ($btn.is('input,button')) $btn.trigger('focus')
        else $btn.find('input:visible,button:visible').first().trigger('focus')
      }
    })
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
    })

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/carousel.js
================================================
/* ========================================================================
 * Bootstrap: carousel.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#carousel
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // CAROUSEL CLASS DEFINITION
  // =========================

  var Carousel = function (element, options) {
    this.$element    = $(element)
    this.$indicators = this.$element.find('.carousel-indicators')
    this.options     = options
    this.paused      = null
    this.sliding     = null
    this.interval    = null
    this.$active     = null
    this.$items      = null

    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))

    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
  }

  Carousel.VERSION  = '3.4.1'

  Carousel.TRANSITION_DURATION = 600

  Carousel.DEFAULTS = {
    interval: 5000,
    pause: 'hover',
    wrap: true,
    keyboard: true
  }

  Carousel.prototype.keydown = function (e) {
    if (/input|textarea/i.test(e.target.tagName)) return
    switch (e.which) {
      case 37: this.prev(); break
      case 39: this.next(); break
      default: return
    }

    e.preventDefault()
  }

  Carousel.prototype.cycle = function (e) {
    e || (this.paused = false)

    this.interval && clearInterval(this.interval)

    this.options.interval
      && !this.paused
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))

    return this
  }

  Carousel.prototype.getItemIndex = function (item) {
    this.$items = item.parent().children('.item')
    return this.$items.index(item || this.$active)
  }

  Carousel.prototype.getItemForDirection = function (direction, active) {
    var activeIndex = this.getItemIndex(active)
    var willWrap = (direction == 'prev' && activeIndex === 0)
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
    if (willWrap && !this.options.wrap) return active
    var delta = direction == 'prev' ? -1 : 1
    var itemIndex = (activeIndex + delta) % this.$items.length
    return this.$items.eq(itemIndex)
  }

  Carousel.prototype.to = function (pos) {
    var that        = this
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))

    if (pos > (this.$items.length - 1) || pos < 0) return

    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
    if (activeIndex == pos) return this.pause().cycle()

    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
  }

  Carousel.prototype.pause = function (e) {
    e || (this.paused = true)

    if (this.$element.find('.next, .prev').length && $.support.transition) {
      this.$element.trigger($.support.transition.end)
      this.cycle(true)
    }

    this.interval = clearInterval(this.interval)

    return this
  }

  Carousel.prototype.next = function () {
    if (this.sliding) return
    return this.slide('next')
  }

  Carousel.prototype.prev = function () {
    if (this.sliding) return
    return this.slide('prev')
  }

  Carousel.prototype.slide = function (type, next) {
    var $active   = this.$element.find('.item.active')
    var $next     = next || this.getItemForDirection(type, $active)
    var isCycling = this.interval
    var direction = type == 'next' ? 'left' : 'right'
    var that      = this

    if ($next.hasClass('active')) return (this.sliding = false)

    var relatedTarget = $next[0]
    var slideEvent = $.Event('slide.bs.carousel', {
      relatedTarget: relatedTarget,
      direction: direction
    })
    this.$element.trigger(slideEvent)
    if (slideEvent.isDefaultPrevented()) return

    this.sliding = true

    isCycling && this.pause()

    if (this.$indicators.length) {
      this.$indicators.find('.active').removeClass('active')
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
      $nextIndicator && $nextIndicator.addClass('active')
    }

    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
    if ($.support.transition && this.$element.hasClass('slide')) {
      $next.addClass(type)
      if (typeof $next === 'object' && $next.length) {
        $next[0].offsetWidth // force reflow
      }
      $active.addClass(direction)
      $next.addClass(direction)
      $active
        .one('bsTransitionEnd', function () {
          $next.removeClass([type, direction].join(' ')).addClass('active')
          $active.removeClass(['active', direction].join(' '))
          that.sliding = false
          setTimeout(function () {
            that.$element.trigger(slidEvent)
          }, 0)
        })
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
    } else {
      $active.removeClass('active')
      $next.addClass('active')
      this.sliding = false
      this.$element.trigger(slidEvent)
    }

    isCycling && this.cycle()

    return this
  }


  // CAROUSEL PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.carousel')
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
      var action  = typeof option == 'string' ? option : options.slide

      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
      if (typeof option == 'number') data.to(option)
      else if (action) data[action]()
      else if (options.interval) data.pause().cycle()
    })
  }

  var old = $.fn.carousel

  $.fn.carousel             = Plugin
  $.fn.carousel.Constructor = Carousel


  // CAROUSEL NO CONFLICT
  // ====================

  $.fn.carousel.noConflict = function () {
    $.fn.carousel = old
    return this
  }


  // CAROUSEL DATA-API
  // =================

  var clickHandler = function (e) {
    var $this   = $(this)
    var href    = $this.attr('href')
    if (href) {
      href = href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
    }

    var target  = $this.attr('data-target') || href
    var $target = $(document).find(target)

    if (!$target.hasClass('carousel')) return

    var options = $.extend({}, $target.data(), $this.data())
    var slideIndex = $this.attr('data-slide-to')
    if (slideIndex) options.interval = false

    Plugin.call($target, options)

    if (slideIndex) {
      $target.data('bs.carousel').to(slideIndex)
    }

    e.preventDefault()
  }

  $(document)
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)

  $(window).on('load', function () {
    $('[data-ride="carousel"]').each(function () {
      var $carousel = $(this)
      Plugin.call($carousel, $carousel.data())
    })
  })

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/collapse.js
================================================
/* ========================================================================
 * Bootstrap: collapse.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#collapse
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

/* jshint latedef: false */

+function ($) {
  'use strict';

  // COLLAPSE PUBLIC CLASS DEFINITION
  // ================================

  var Collapse = function (element, options) {
    this.$element      = $(element)
    this.options       = $.extend({}, Collapse.DEFAULTS, options)
    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
    this.transitioning = null

    if (this.options.parent) {
      this.$parent = this.getParent()
    } else {
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
    }

    if (this.options.toggle) this.toggle()
  }

  Collapse.VERSION  = '3.4.1'

  Collapse.TRANSITION_DURATION = 350

  Collapse.DEFAULTS = {
    toggle: true
  }

  Collapse.prototype.dimension = function () {
    var hasWidth = this.$element.hasClass('width')
    return hasWidth ? 'width' : 'height'
  }

  Collapse.prototype.show = function () {
    if (this.transitioning || this.$element.hasClass('in')) return

    var activesData
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')

    if (actives && actives.length) {
      activesData = actives.data('bs.collapse')
      if (activesData && activesData.transitioning) return
    }

    var startEvent = $.Event('show.bs.collapse')
    this.$element.trigger(startEvent)
    if (startEvent.isDefaultPrevented()) return

    if (actives && actives.length) {
      Plugin.call(actives, 'hide')
      activesData || actives.data('bs.collapse', null)
    }

    var dimension = this.dimension()

    this.$element
      .removeClass('collapse')
      .addClass('collapsing')[dimension](0)
      .attr('aria-expanded', true)

    this.$trigger
      .removeClass('collapsed')
      .attr('aria-expanded', true)

    this.transitioning = 1

    var complete = function () {
      this.$element
        .removeClass('collapsing')
        .addClass('collapse in')[dimension]('')
      this.transitioning = 0
      this.$element
        .trigger('shown.bs.collapse')
    }

    if (!$.support.transition) return complete.call(this)

    var scrollSize = $.camelCase(['scroll', dimension].join('-'))

    this.$element
      .one('bsTransitionEnd', $.proxy(complete, this))
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
  }

  Collapse.prototype.hide = function () {
    if (this.transitioning || !this.$element.hasClass('in')) return

    var startEvent = $.Event('hide.bs.collapse')
    this.$element.trigger(startEvent)
    if (startEvent.isDefaultPrevented()) return

    var dimension = this.dimension()

    this.$element[dimension](this.$element[dimension]())[0].offsetHeight

    this.$element
      .addClass('collapsing')
      .removeClass('collapse in')
      .attr('aria-expanded', false)

    this.$trigger
      .addClass('collapsed')
      .attr('aria-expanded', false)

    this.transitioning = 1

    var complete = function () {
      this.transitioning = 0
      this.$element
        .removeClass('collapsing')
        .addClass('collapse')
        .trigger('hidden.bs.collapse')
    }

    if (!$.support.transition) return complete.call(this)

    this.$element
      [dimension](0)
      .one('bsTransitionEnd', $.proxy(complete, this))
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
  }

  Collapse.prototype.toggle = function () {
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
  }

  Collapse.prototype.getParent = function () {
    return $(document).find(this.options.parent)
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
      .each($.proxy(function (i, element) {
        var $element = $(element)
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
      }, this))
      .end()
  }

  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
    var isOpen = $element.hasClass('in')

    $element.attr('aria-expanded', isOpen)
    $trigger
      .toggleClass('collapsed', !isOpen)
      .attr('aria-expanded', isOpen)
  }

  function getTargetFromTrigger($trigger) {
    var href
    var target = $trigger.attr('data-target')
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7

    return $(document).find(target)
  }


  // COLLAPSE PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.collapse')
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)

      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.collapse

  $.fn.collapse             = Plugin
  $.fn.collapse.Constructor = Collapse


  // COLLAPSE NO CONFLICT
  // ====================

  $.fn.collapse.noConflict = function () {
    $.fn.collapse = old
    return this
  }


  // COLLAPSE DATA-API
  // =================

  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
    var $this   = $(this)

    if (!$this.attr('data-target')) e.preventDefault()

    var $target = getTargetFromTrigger($this)
    var data    = $target.data('bs.collapse')
    var option  = data ? 'toggle' : $this.data()

    Plugin.call($target, option)
  })

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js
================================================
/* ========================================================================
 * Bootstrap: dropdown.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#dropdowns
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // DROPDOWN CLASS DEFINITION
  // =========================

  var backdrop = '.dropdown-backdrop'
  var toggle   = '[data-toggle="dropdown"]'
  var Dropdown = function (element) {
    $(element).on('click.bs.dropdown', this.toggle)
  }

  Dropdown.VERSION = '3.4.1'

  function getParent($this) {
    var selector = $this.attr('data-target')

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
    }

    var $parent = selector !== '#' ? $(document).find(selector) : null

    return $parent && $parent.length ? $parent : $this.parent()
  }

  function clearMenus(e) {
    if (e && e.which === 3) return
    $(backdrop).remove()
    $(toggle).each(function () {
      var $this         = $(this)
      var $parent       = getParent($this)
      var relatedTarget = { relatedTarget: this }

      if (!$parent.hasClass('open')) return

      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return

      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))

      if (e.isDefaultPrevented()) return

      $this.attr('aria-expanded', 'false')
      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
    })
  }

  Dropdown.prototype.toggle = function (e) {
    var $this = $(this)

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    clearMenus()

    if (!isActive) {
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
        // if mobile we use a backdrop because click events don't delegate
        $(document.createElement('div'))
          .addClass('dropdown-backdrop')
          .insertAfter($(this))
          .on('click', clearMenus)
      }

      var relatedTarget = { relatedTarget: this }
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))

      if (e.isDefaultPrevented()) return

      $this
        .trigger('focus')
        .attr('aria-expanded', 'true')

      $parent
        .toggleClass('open')
        .trigger($.Event('shown.bs.dropdown', relatedTarget))
    }

    return false
  }

  Dropdown.prototype.keydown = function (e) {
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return

    var $this = $(this)

    e.preventDefault()
    e.stopPropagation()

    if ($this.is('.disabled, :disabled')) return

    var $parent  = getParent($this)
    var isActive = $parent.hasClass('open')

    if (!isActive && e.which != 27 || isActive && e.which == 27) {
      if (e.which == 27) $parent.find(toggle).trigger('focus')
      return $this.trigger('click')
    }

    var desc = ' li:not(.disabled):visible a'
    var $items = $parent.find('.dropdown-menu' + desc)

    if (!$items.length) return

    var index = $items.index(e.target)

    if (e.which == 38 && index > 0)                 index--         // up
    if (e.which == 40 && index < $items.length - 1) index++         // down
    if (!~index)                                    index = 0

    $items.eq(index).trigger('focus')
  }


  // DROPDOWN PLUGIN DEFINITION
  // ==========================

  function Plugin(option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.dropdown')

      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  var old = $.fn.dropdown

  $.fn.dropdown             = Plugin
  $.fn.dropdown.Constructor = Dropdown


  // DROPDOWN NO CONFLICT
  // ====================

  $.fn.dropdown.noConflict = function () {
    $.fn.dropdown = old
    return this
  }


  // APPLY TO STANDARD DROPDOWN ELEMENTS
  // ===================================

  $(document)
    .on('click.bs.dropdown.data-api', clearMenus)
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/modal.js
================================================
/* ========================================================================
 * Bootstrap: modal.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#modals
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // MODAL CLASS DEFINITION
  // ======================

  var Modal = function (element, options) {
    this.options = options
    this.$body = $(document.body)
    this.$element = $(element)
    this.$dialog = this.$element.find('.modal-dialog')
    this.$backdrop = null
    this.isShown = null
    this.originalBodyPad = null
    this.scrollbarWidth = 0
    this.ignoreBackdropClick = false
    this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'

    if (this.options.remote) {
      this.$element
        .find('.modal-content')
        .load(this.options.remote, $.proxy(function () {
          this.$element.trigger('loaded.bs.modal')
        }, this))
    }
  }

  Modal.VERSION = '3.4.1'

  Modal.TRANSITION_DURATION = 300
  Modal.BACKDROP_TRANSITION_DURATION = 150

  Modal.DEFAULTS = {
    backdrop: true,
    keyboard: true,
    show: true
  }

  Modal.prototype.toggle = function (_relatedTarget) {
    return this.isShown ? this.hide() : this.show(_relatedTarget)
  }

  Modal.prototype.show = function (_relatedTarget) {
    var that = this
    var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })

    this.$element.trigger(e)

    if (this.isShown || e.isDefaultPrevented()) return

    this.isShown = true

    this.checkScrollbar()
    this.setScrollbar()
    this.$body.addClass('modal-open')

    this.escape()
    this.resize()

    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))

    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
      })
    })

    this.backdrop(function () {
      var transition = $.support.transition && that.$element.hasClass('fade')

      if (!that.$element.parent().length) {
        that.$element.appendTo(that.$body) // don't move modals dom position
      }

      that.$element
        .show()
        .scrollTop(0)

      that.adjustDialog()

      if (transition) {
        that.$element[0].offsetWidth // force reflow
      }

      that.$element.addClass('in')

      that.enforceFocus()

      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })

      transition ?
        that.$dialog // wait for modal to slide in
          .one('bsTransitionEnd', function () {
            that.$element.trigger('focus').trigger(e)
          })
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
        that.$element.trigger('focus').trigger(e)
    })
  }

  Modal.prototype.hide = function (e) {
    if (e) e.preventDefault()

    e = $.Event('hide.bs.modal')

    this.$element.trigger(e)

    if (!this.isShown || e.isDefaultPrevented()) return

    this.isShown = false

    this.escape()
    this.resize()

    $(document).off('focusin.bs.modal')

    this.$element
      .removeClass('in')
      .off('click.dismiss.bs.modal')
      .off('mouseup.dismiss.bs.modal')

    this.$dialog.off('mousedown.dismiss.bs.modal')

    $.support.transition && this.$element.hasClass('fade') ?
      this.$element
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
      this.hideModal()
  }

  Modal.prototype.enforceFocus = function () {
    $(document)
      .off('focusin.bs.modal') // guard against infinite focus loop
      .on('focusin.bs.modal', $.proxy(function (e) {
        if (document !== e.target &&
          this.$element[0] !== e.target &&
          !this.$element.has(e.target).length) {
          this.$element.trigger('focus')
        }
      }, this))
  }

  Modal.prototype.escape = function () {
    if (this.isShown && this.options.keyboard) {
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
        e.which == 27 && this.hide()
      }, this))
    } else if (!this.isShown) {
      this.$element.off('keydown.dismiss.bs.modal')
    }
  }

  Modal.prototype.resize = function () {
    if (this.isShown) {
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
    } else {
      $(window).off('resize.bs.modal')
    }
  }

  Modal.prototype.hideModal = function () {
    var that = this
    this.$element.hide()
    this.backdrop(function () {
      that.$body.removeClass('modal-open')
      that.resetAdjustments()
      that.resetScrollbar()
      that.$element.trigger('hidden.bs.modal')
    })
  }

  Modal.prototype.removeBackdrop = function () {
    this.$backdrop && this.$backdrop.remove()
    this.$backdrop = null
  }

  Modal.prototype.backdrop = function (callback) {
    var that = this
    var animate = this.$element.hasClass('fade') ? 'fade' : ''

    if (this.isShown && this.options.backdrop) {
      var doAnimate = $.support.transition && animate

      this.$backdrop = $(document.createElement('div'))
        .addClass('modal-backdrop ' + animate)
        .appendTo(this.$body)

      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
        if (this.ignoreBackdropClick) {
          this.ignoreBackdropClick = false
          return
        }
        if (e.target !== e.currentTarget) return
        this.options.backdrop == 'static'
          ? this.$element[0].focus()
          : this.hide()
      }, this))

      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow

      this.$backdrop.addClass('in')

      if (!callback) return

      doAnimate ?
        this.$backdrop
          .one('bsTransitionEnd', callback)
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
        callback()

    } else if (!this.isShown && this.$backdrop) {
      this.$backdrop.removeClass('in')

      var callbackRemove = function () {
        that.removeBackdrop()
        callback && callback()
      }
      $.support.transition && this.$element.hasClass('fade') ?
        this.$backdrop
          .one('bsTransitionEnd', callbackRemove)
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
        callbackRemove()

    } else if (callback) {
      callback()
    }
  }

  // these following methods are used to handle overflowing modals

  Modal.prototype.handleUpdate = function () {
    this.adjustDialog()
  }

  Modal.prototype.adjustDialog = function () {
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight

    this.$element.css({
      paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
    })
  }

  Modal.prototype.resetAdjustments = function () {
    this.$element.css({
      paddingLeft: '',
      paddingRight: ''
    })
  }

  Modal.prototype.checkScrollbar = function () {
    var fullWindowWidth = window.innerWidth
    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
      var documentElementRect = document.documentElement.getBoundingClientRect()
      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
    }
    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
    this.scrollbarWidth = this.measureScrollbar()
  }

  Modal.prototype.setScrollbar = function () {
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
    this.originalBodyPad = document.body.style.paddingRight || ''
    var scrollbarWidth = this.scrollbarWidth
    if (this.bodyIsOverflowing) {
      this.$body.css('padding-right', bodyPad + scrollbarWidth)
      $(this.fixedContent).each(function (index, element) {
        var actualPadding = element.style.paddingRight
        var calculatedPadding = $(element).css('padding-right')
        $(element)
          .data('padding-right', actualPadding)
          .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')
      })
    }
  }

  Modal.prototype.resetScrollbar = function () {
    this.$body.css('padding-right', this.originalBodyPad)
    $(this.fixedContent).each(function (index, element) {
      var padding = $(element).data('padding-right')
      $(element).removeData('padding-right')
      element.style.paddingRight = padding ? padding : ''
    })
  }

  Modal.prototype.measureScrollbar = function () { // thx walsh
    var scrollDiv = document.createElement('div')
    scrollDiv.className = 'modal-scrollbar-measure'
    this.$body.append(scrollDiv)
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
    this.$body[0].removeChild(scrollDiv)
    return scrollbarWidth
  }


  // MODAL PLUGIN DEFINITION
  // =======================

  function Plugin(option, _relatedTarget) {
    return this.each(function () {
      var $this = $(this)
      var data = $this.data('bs.modal')
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)

      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
      if (typeof option == 'string') data[option](_relatedTarget)
      else if (options.show) data.show(_relatedTarget)
    })
  }

  var old = $.fn.modal

  $.fn.modal = Plugin
  $.fn.modal.Constructor = Modal


  // MODAL NO CONFLICT
  // =================

  $.fn.modal.noConflict = function () {
    $.fn.modal = old
    return this
  }


  // MODAL DATA-API
  // ==============

  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
    var $this = $(this)
    var href = $this.attr('href')
    var target = $this.attr('data-target') ||
      (href && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7

    var $target = $(document).find(target)
    var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())

    if ($this.is('a')) e.preventDefault()

    $target.one('show.bs.modal', function (showEvent) {
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
      $target.one('hidden.bs.modal', function () {
        $this.is(':visible') && $this.trigger('focus')
      })
    })
    Plugin.call($target, option, this)
  })

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/popover.js
================================================
/* ========================================================================
 * Bootstrap: popover.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#popovers
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // POPOVER PUBLIC CLASS DEFINITION
  // ===============================

  var Popover = function (element, options) {
    this.init('popover', element, options)
  }

  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')

  Popover.VERSION  = '3.4.1'

  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
    placement: 'right',
    trigger: 'click',
    content: '',
    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
  })


  // NOTE: POPOVER EXTENDS tooltip.js
  // ================================

  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)

  Popover.prototype.constructor = Popover

  Popover.prototype.getDefaults = function () {
    return Popover.DEFAULTS
  }

  Popover.prototype.setContent = function () {
    var $tip    = this.tip()
    var title   = this.getTitle()
    var content = this.getContent()

    if (this.options.html) {
      var typeContent = typeof content

      if (this.options.sanitize) {
        title = this.sanitizeHtml(title)

        if (typeContent === 'string') {
          content = this.sanitizeHtml(content)
        }
      }

      $tip.find('.popover-title').html(title)
      $tip.find('.popover-content').children().detach().end()[
        typeContent === 'string' ? 'html' : 'append'
      ](content)
    } else {
      $tip.find('.popover-title').text(title)
      $tip.find('.popover-content').children().detach().end().text(content)
    }

    $tip.removeClass('fade top bottom left right in')

    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
    // this manually by checking the contents.
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
  }

  Popover.prototype.hasContent = function () {
    return this.getTitle() || this.getContent()
  }

  Popover.prototype.getContent = function () {
    var $e = this.$element
    var o  = this.options

    return $e.attr('data-content')
      || (typeof o.content == 'function' ?
        o.content.call($e[0]) :
        o.content)
  }

  Popover.prototype.arrow = function () {
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
  }


  // POPOVER PLUGIN DEFINITION
  // =========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.popover')
      var options = typeof option == 'object' && option

      if (!data && /destroy|hide/.test(option)) return
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.popover

  $.fn.popover             = Plugin
  $.fn.popover.Constructor = Popover


  // POPOVER NO CONFLICT
  // ===================

  $.fn.popover.noConflict = function () {
    $.fn.popover = old
    return this
  }

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js
================================================
/* ========================================================================
 * Bootstrap: scrollspy.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#scrollspy
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // SCROLLSPY CLASS DEFINITION
  // ==========================

  function ScrollSpy(element, options) {
    this.$body          = $(document.body)
    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
    this.selector       = (this.options.target || '') + ' .nav li > a'
    this.offsets        = []
    this.targets        = []
    this.activeTarget   = null
    this.scrollHeight   = 0

    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
    this.refresh()
    this.process()
  }

  ScrollSpy.VERSION  = '3.4.1'

  ScrollSpy.DEFAULTS = {
    offset: 10
  }

  ScrollSpy.prototype.getScrollHeight = function () {
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
  }

  ScrollSpy.prototype.refresh = function () {
    var that          = this
    var offsetMethod  = 'offset'
    var offsetBase    = 0

    this.offsets      = []
    this.targets      = []
    this.scrollHeight = this.getScrollHeight()

    if (!$.isWindow(this.$scrollElement[0])) {
      offsetMethod = 'position'
      offsetBase   = this.$scrollElement.scrollTop()
    }

    this.$body
      .find(this.selector)
      .map(function () {
        var $el   = $(this)
        var href  = $el.data('target') || $el.attr('href')
        var $href = /^#./.test(href) && $(href)

        return ($href
          && $href.length
          && $href.is(':visible')
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
      })
      .sort(function (a, b) { return a[0] - b[0] })
      .each(function () {
        that.offsets.push(this[0])
        that.targets.push(this[1])
      })
  }

  ScrollSpy.prototype.process = function () {
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
    var scrollHeight = this.getScrollHeight()
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
    var offsets      = this.offsets
    var targets      = this.targets
    var activeTarget = this.activeTarget
    var i

    if (this.scrollHeight != scrollHeight) {
      this.refresh()
    }

    if (scrollTop >= maxScroll) {
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
    }

    if (activeTarget && scrollTop < offsets[0]) {
      this.activeTarget = null
      return this.clear()
    }

    for (i = offsets.length; i--;) {
      activeTarget != targets[i]
        && scrollTop >= offsets[i]
        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
        && this.activate(targets[i])
    }
  }

  ScrollSpy.prototype.activate = function (target) {
    this.activeTarget = target

    this.clear()

    var selector = this.selector +
      '[data-target="' + target + '"],' +
      this.selector + '[href="' + target + '"]'

    var active = $(selector)
      .parents('li')
      .addClass('active')

    if (active.parent('.dropdown-menu').length) {
      active = active
        .closest('li.dropdown')
        .addClass('active')
    }

    active.trigger('activate.bs.scrollspy')
  }

  ScrollSpy.prototype.clear = function () {
    $(this.selector)
      .parentsUntil(this.options.target, '.active')
      .removeClass('active')
  }


  // SCROLLSPY PLUGIN DEFINITION
  // ===========================

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this)
      var data    = $this.data('bs.scrollspy')
      var options = typeof option == 'object' && option

      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.scrollspy

  $.fn.scrollspy             = Plugin
  $.fn.scrollspy.Constructor = ScrollSpy


  // SCROLLSPY NO CONFLICT
  // =====================

  $.fn.scrollspy.noConflict = function () {
    $.fn.scrollspy = old
    return this
  }


  // SCROLLSPY DATA-API
  // ==================

  $(window).on('load.bs.scrollspy.data-api', function () {
    $('[data-spy="scroll"]').each(function () {
      var $spy = $(this)
      Plugin.call($spy, $spy.data())
    })
  })

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/tab.js
================================================
/* ========================================================================
 * Bootstrap: tab.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#tabs
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */


+function ($) {
  'use strict';

  // TAB CLASS DEFINITION
  // ====================

  var Tab = function (element) {
    // jscs:disable requireDollarBeforejQueryAssignment
    this.element = $(element)
    // jscs:enable requireDollarBeforejQueryAssignment
  }

  Tab.VERSION = '3.4.1'

  Tab.TRANSITION_DURATION = 150

  Tab.prototype.show = function () {
    var $this    = this.element
    var $ul      = $this.closest('ul:not(.dropdown-menu)')
    var selector = $this.data('target')

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
    }

    if ($this.parent('li').hasClass('active')) return

    var $previous = $ul.find('.active:last a')
    var hideEvent = $.Event('hide.bs.tab', {
      relatedTarget: $this[0]
    })
    var showEvent = $.Event('show.bs.tab', {
      relatedTarget: $previous[0]
    })

    $previous.trigger(hideEvent)
    $this.trigger(showEvent)

    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return

    var $target = $(document).find(selector)

    this.activate($this.closest('li'), $ul)
    this.activate($target, $target.parent(), function () {
      $previous.trigger({
        type: 'hidden.bs.tab',
        relatedTarget: $this[0]
      })
      $this.trigger({
        type: 'shown.bs.tab',
        relatedTarget: $previous[0]
      })
    })
  }

  Tab.prototype.activate = function (element, container, callback) {
    var $active    = container.find('> .active')
    var transition = callback
      && $.support.transition
      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)

    function next() {
      $active
        .removeClass('active')
        .find('> .dropdown-menu > .active')
        .removeClass('active')
        .end()
        .find('[data-toggle="tab"]')
        .attr('aria-expanded', false)

      element
        .addClass('active')
        .find('[data-toggle="tab"]')
        .attr('aria-expanded', true)

      if (transition) {
        element[0].offsetWidth // reflow for transition
        element.addClass('in')
      } else {
        element.removeClass('fade')
      }

      if (element.parent('.dropdown-menu').length) {
        element
          .closest('li.dropdown')
          .addClass('active')
          .end()
          .find('[data-toggle="tab"]')
          .attr('aria-expanded', true)
      }

      callback && callback()
    }

    $active.length && transition ?
      $active
        .one('bsTransitionEnd', next)
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
      next()

    $active.removeClass('in')
  }


  // TAB PLUGIN DEFINITION
  // =====================

  function Plugin(option) {
    return this.each(function () {
      var $this = $(this)
      var data  = $this.data('bs.tab')

      if (!data) $this.data('bs.tab', (data = new Tab(this)))
      if (typeof option == 'string') data[option]()
    })
  }

  var old = $.fn.tab

  $.fn.tab             = Plugin
  $.fn.tab.Constructor = Tab


  // TAB NO CONFLICT
  // ===============

  $.fn.tab.noConflict = function () {
    $.fn.tab = old
    return this
  }


  // TAB DATA-API
  // ============

  var clickHandler = function (e) {
    e.preventDefault()
    Plugin.call($(this), 'show')
  }

  $(document)
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)

}(jQuery);


================================================
FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js
================================================
/* ========================================================================
 * Bootstrap: tooltip.js v3.4.1
 * https://getbootstrap.com/docs/3.4/javascript/#tooltip
 * Inspired by the original jQuery.tipsy by Jason Frame
 * ========================================================================
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * ======================================================================== */

+function ($) {
  'use strict';

  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']

  var uriAttrs = [
    'background',
    'cite',
    'href',
    'itemtype',
    'longdesc',
    'poster',
    'src',
    'xlink:href'
  ]

  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i

  var DefaultWhitelist = {
    // Global attributes allowed on any supplied element below.
    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
    a: ['target', 'href', 'title', 'rel'],
    area: [],
    b: [],
    br: [],
    col: [],
    code: [],
    div: [],
    em: [],
    hr: [],
    h1: [],
    h2: [],
    h3: [],
    h4: [],
    h5: [],
    h6: [],
    i: [],
    img: ['src', 'alt', 'title', 'width', 'height'],
    li: [],
    ol: [],
    p: [],
    pre: [],
    s: [],
    small: [],
    span: [],
    sub: [],
    sup: [],
    strong: [],
    u: [],
    ul: []
  }

  /**
   * A pattern that recognizes a commonly useful subset of URLs that are safe.
   *
   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
   */
  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi

  /**
   * A pattern that matches safe data URLs. Only matches image, video and audio types.
   *
   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
   */
  var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i

  function allowedAttribute(attr, allowedAttributeList) {
    var attrName = attr.nodeName.toLowerCase()

    if ($.inArray(attrName, allowedAttributeList) !== -1) {
      if ($.inArray(attrName, uriAttrs) !== -1) {
        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))
      }

      return true
    }

    var regExp = $(allowedAttributeList).filter(function (index, value) {
      return value instanceof RegExp
    })

    // Check if a regular expression validates the attribute.
    for (var i = 0, l = regExp.length; i < l; i++) {
      if (attrName.match(regExp[i])) {
        return true
      }
    }

    return false
  }

  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
    if (unsafeHtml.length === 0) {
      return unsafeHtml
    }

    if (sanitizeFn && typeof sanitizeFn === 'function') {
      return sanitizeFn(unsafeHtml)
    }

    // IE 8 and below don't support createHTMLDocument
    if (!document.implementation || !document.implementation.createHTMLDocument) {
      return unsafeHtml
    }

    var createdDocument = document.implementation.createHTMLDocument('sanitization')
    createdDocument.body.innerHTML = unsafeHtml

    var whitelistKeys = $.map(whiteList, function (el, i) { return i })
    var elements = $(createdDocument.body).find('*')

    for (var i = 0, len = elements.length; i < len; i++) {
      var el = elements[i]
      var elName = el.nodeName.toLowerCase()

      if ($.inArray(elName, whitelistKeys) === -1) {
        el.parentNode.removeChild(el)

        continue
      }

      var attributeList = $.map(el.attributes, function (el) { return el })
      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])

      for (var j = 0, len2 = attributeList.length; j < len2; j++) {
        if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {
          el.removeAttribute(attributeList[j].nodeName)
        }
      }
    }

    return createdDocument.body.innerHTML
  }

  // TOOLTIP PUBLIC CLASS DEFINITION
  // ===============================

  var Tooltip = function (element, options) {
    this.type       = null
    this.options    = null
    this.enabled    = null
    this.timeout    = null
    this.hoverState = null
    this.$element   = null
    this.inState    = null

    this.init('tooltip', element, options)
  }

  Tooltip.VERSION  = '3.4.1'

  Tooltip.TRANSITION_DURATION = 150

  Tooltip.DEFAULTS = {
    animation: true,
    placement: 'top',
    selector: false,
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div cl
Download .txt
Showing preview only (310K chars total). Download the full file or copy to clipboard to get everything.
gitextract_g_x4juwx/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .editorconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── architecture_decision_record.md
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── actions/
│   │   ├── lint-merge-report/
│   │   │   ├── action.yml
│   │   │   └── merge-lint-reports.mjs
│   │   └── setup-node/
│   │       └── action.yml
│   ├── copilot-instructions.md
│   ├── dependabot.yml
│   └── workflows/
│       ├── changeset.yml
│       ├── clean-demo.yml
│       ├── demo.yml
│       ├── dependencies.yml
│       ├── icons.yml
│       ├── pr-demo.yml
│       ├── pr-lint.yml
│       ├── pr-test.yml
│       ├── pre-release.yml
│       ├── visual-testing.yml
│       └── yarn-deduplicate.yml
├── .gitignore
├── .husky/
│   └── pre-commit
├── .nojekyll
├── .npmignore
├── .npmrc
├── .prettierignore
├── .prettierrc.js
├── .sass-lint.yml
├── .semgrepignore
├── .tool-versions
├── .vscode/
│   └── settings.json
├── CONTRIBUTING.md
├── I18n.md
├── LICENSE
├── README.md
├── SECURITY.md
├── babel.config.js
├── dependencies-latest.txt
├── docs/
│   ├── adr-2024-04-add-support-to-esm.md
│   ├── adr-composition-vs-api.md
│   ├── adr-css-modules.md
│   ├── adr-data-test.md
│   ├── adr-dependencies.md
│   └── adr-rework-talend-scripts.md
├── eslint.config.mjs
├── fork/
│   ├── bootstrap-sass/
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── CONTRIBUTING.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── assets/
│   │   │   ├── images/
│   │   │   │   └── .keep
│   │   │   ├── javascripts/
│   │   │   │   ├── bootstrap/
│   │   │   │   │   ├── affix.js
│   │   │   │   │   ├── alert.js
│   │   │   │   │   ├── button.js
│   │   │   │   │   ├── carousel.js
│   │   │   │   │   ├── collapse.js
│   │   │   │   │   ├── dropdown.js
│   │   │   │   │   ├── modal.js
│   │   │   │   │   ├── popover.js
│   │   │   │   │   ├── scrollspy.js
│   │   │   │   │   ├── tab.js
│   │   │   │   │   ├── tooltip.js
│   │   │   │   │   └── transition.js
│   │   │   │   ├── bootstrap-sprockets.js
│   │   │   │   └── bootstrap.js
│   │   │   └── stylesheets/
│   │   │       ├── _bootstrap-compass.scss
│   │   │       ├── _bootstrap-mincer.scss
│   │   │       ├── _bootstrap-sprockets.scss
│   │   │       ├── _bootstrap.scss
│   │   │       └── bootstrap/
│   │   │           ├── _alerts.scss
│   │   │           ├── _badges.scss
│   │   │           ├── _breadcrumbs.scss
│   │   │           ├── _button-groups.scss
│   │   │           ├── _buttons.scss
│   │   │           ├── _carousel.scss
│   │   │           ├── _close.scss
│   │   │           ├── _code.scss
│   │   │           ├── _component-animations.scss
│   │   │           ├── _dropdowns.scss
│   │   │           ├── _forms.scss
│   │   │           ├── _glyphicons.scss
│   │   │           ├── _grid.scss
│   │   │           ├── _input-groups.scss
│   │   │           ├── _jumbotron.scss
│   │   │           ├── _labels.scss
│   │   │           ├── _list-group.scss
│   │   │           ├── _media.scss
│   │   │           ├── _mixins.scss
│   │   │           ├── _modals.scss
│   │   │           ├── _navbar.scss
│   │   │           ├── _navs.scss
│   │   │           ├── _normalize.scss
│   │   │           ├── _pager.scss
│   │   │           ├── _pagination.scss
│   │   │           ├── _panels.scss
│   │   │           ├── _popovers.scss
│   │   │           ├── _print.scss
│   │   │           ├── _progress-bars.scss
│   │   │           ├── _responsive-embed.scss
│   │   │           ├── _responsive-utilities.scss
│   │   │           ├── _scaffolding.scss
│   │   │           ├── _tables.scss
│   │   │           ├── _theme.scss
│   │   │           ├── _thumbnails.scss
│   │   │           ├── _tooltip.scss
│   │   │           ├── _type.scss
│   │   │           ├── _utilities.scss
│   │   │           ├── _variables.scss
│   │   │           ├── _wells.scss
│   │   │           └── mixins/
│   │   │               ├── _alerts.scss
│   │   │               ├── _background-variant.scss
│   │   │               ├── _border-radius.scss
│   │   │               ├── _buttons.scss
│   │   │               ├── _center-block.scss
│   │   │               ├── _clearfix.scss
│   │   │               ├── _forms.scss
│   │   │               ├── _gradients.scss
│   │   │               ├── _grid-framework.scss
│   │   │               ├── _grid.scss
│   │   │               ├── _hide-text.scss
│   │   │               ├── _image.scss
│   │   │               ├── _labels.scss
│   │   │               ├── _list-group.scss
│   │   │               ├── _nav-divider.scss
│   │   │               ├── _nav-vertical-align.scss
│   │   │               ├── _opacity.scss
│   │   │               ├── _pagination.scss
│   │   │               ├── _panels.scss
│   │   │               ├── _progress-bar.scss
│   │   │               ├── _reset-filter.scss
│   │   │               ├── _reset-text.scss
│   │   │               ├── _resize.scss
│   │   │               ├── _responsive-visibility.scss
│   │   │               ├── _size.scss
│   │   │               ├── _tab-focus.scss
│   │   │               ├── _table-row.scss
│   │   │               ├── _text-emphasis.scss
│   │   │               ├── _text-overflow.scss
│   │   │               └── _vendor-prefixes.scss
│   │   ├── composer.json
│   │   ├── eslint.config.mjs
│   │   └── package.json
│   ├── dynamic-cdn-webpack-plugin/
│   │   ├── .all-contributorsrc
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── CHANGELOG.md
│   │   ├── __mocks__/
│   │   │   └── fs.js
│   │   ├── eslint.config.mjs
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   ├── readme.md
│   │   ├── src/
│   │   │   ├── find.js
│   │   │   ├── find.test.js
│   │   │   ├── get-resolver.js
│   │   │   ├── index.js
│   │   │   └── resolve-pkg.js
│   │   ├── test/
│   │   │   ├── core.test.js
│   │   │   ├── fixtures/
│   │   │   │   ├── app/
│   │   │   │   │   ├── async.js
│   │   │   │   │   ├── dir/
│   │   │   │   │   │   └── single.js
│   │   │   │   │   ├── mix.js
│   │   │   │   │   ├── multiple.js
│   │   │   │   │   ├── no-export.js
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── peer-dependencies.js
│   │   │   │   │   ├── require-file.js
│   │   │   │   │   ├── single.js
│   │   │   │   │   └── submodule.js
│   │   │   │   ├── duplicate-dependencies/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── package.json
│   │   │   │   ├── nested-dependencies/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── package.json
│   │   │   │   └── optional-peer-deps/
│   │   │   │       ├── index.js
│   │   │   │       └── package.json
│   │   │   ├── helpers/
│   │   │   │   ├── clean-dir.js
│   │   │   │   └── run-webpack.js
│   │   │   ├── html-webpack-plugin.test.js
│   │   │   ├── optional-peer-dep.test.js
│   │   │   └── webpack-manifest-plugin.test.js
│   │   └── vitest.config.ts
│   ├── json-schema-form-core/
│   │   ├── .gitignore
│   │   ├── .jscsrc
│   │   ├── .mocharc.json
│   │   ├── .travis.yml
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── canonical-title-map.spec.js
│   │   │   ├── canonical-title-map.ts
│   │   │   ├── index.js
│   │   │   ├── merge.js
│   │   │   ├── merge.spec.js
│   │   │   ├── module.spec.js
│   │   │   ├── resolve.js
│   │   │   ├── resolve.spec.js
│   │   │   ├── schema-defaults.test.js
│   │   │   ├── schema-defaults.ts
│   │   │   ├── select.js
│   │   │   ├── select.test.js
│   │   │   ├── sf-path.test.js
│   │   │   ├── sf-path.ts
│   │   │   ├── traverse.test.js
│   │   │   ├── traverse.ts
│   │   │   ├── validate.js
│   │   │   └── validate.test.js
│   │   ├── talend-scripts.json
│   │   ├── test.md
│   │   ├── tsconfig.json
│   │   ├── vitest.config.ts
│   │   └── webpack.config.js
│   ├── module-to-cdn/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── .prettierrc.js
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── cache.js
│   │   ├── eslint.config.mjs
│   │   ├── index.js
│   │   ├── index.test.js
│   │   ├── jsonschema.json
│   │   ├── license
│   │   ├── meta/
│   │   │   ├── @angular/
│   │   │   │   ├── animations/
│   │   │   │   │   ├── browser/
│   │   │   │   │   │   └── meta.json
│   │   │   │   │   └── meta.json
│   │   │   │   ├── common/
│   │   │   │   │   ├── http/
│   │   │   │   │   │   └── meta.json
│   │   │   │   │   └── meta.json
│   │   │   │   ├── compiler/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── core/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── forms/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── http/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── platform-browser/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── platform-browser-dynamic/
│   │   │   │   │   └── meta.json
│   │   │   │   ├── router/
│   │   │   │   │   └── meta.json
│   │   │   │   └── upgrade/
│   │   │   │       ├── meta.json
│   │   │   │       └── static/
│   │   │   │           └── meta.json
│   │   │   ├── @babel/
│   │   │   │   └── polyfill/
│   │   │   │       └── meta.json
│   │   │   ├── @popperjs/
│   │   │   │   └── core/
│   │   │   │       └── meta.json
│   │   │   ├── @rooks/
│   │   │   │   └── use-mutation-observer/
│   │   │   │       └── meta.json
│   │   │   ├── @sentry/
│   │   │   │   └── browser/
│   │   │   │       └── meta.json
│   │   │   ├── aframe/
│   │   │   │   └── meta.json
│   │   │   ├── ag-grid/
│   │   │   │   └── meta.json
│   │   │   ├── ag-grid-community/
│   │   │   │   └── meta.json
│   │   │   ├── ag-grid-enterprise/
│   │   │   │   └── meta.json
│   │   │   ├── angular/
│   │   │   │   └── meta.json
│   │   │   ├── auth0-lock/
│   │   │   │   └── meta.json
│   │   │   ├── axios/
│   │   │   │   └── meta.json
│   │   │   ├── babel-polyfill/
│   │   │   │   └── meta.json
│   │   │   ├── bootstrap/
│   │   │   │   └── meta.json
│   │   │   ├── classnames/
│   │   │   │   └── meta.json
│   │   │   ├── core-js/
│   │   │   │   └── meta.json
│   │   │   ├── d3/
│   │   │   │   └── meta.json
│   │   │   ├── file-saver/
│   │   │   │   └── meta.json
│   │   │   ├── focus-outline-manager/
│   │   │   │   └── meta.json
│   │   │   ├── history/
│   │   │   │   └── meta.json
│   │   │   ├── i18next/
│   │   │   │   └── meta.json
│   │   │   ├── immutable/
│   │   │   │   └── meta.json
│   │   │   ├── jquery/
│   │   │   │   └── meta.json
│   │   │   ├── json-logic-js/
│   │   │   │   └── meta.json
│   │   │   ├── jszip/
│   │   │   │   └── meta.json
│   │   │   ├── jwt-decode/
│   │   │   │   └── meta.json
│   │   │   ├── lodash/
│   │   │   │   └── meta.json
│   │   │   ├── mobx/
│   │   │   │   └── meta.json
│   │   │   ├── platform/
│   │   │   │   └── meta.json
│   │   │   ├── popper.js/
│   │   │   │   └── meta.json
│   │   │   ├── preact/
│   │   │   │   └── meta.json
│   │   │   ├── preact-compat/
│   │   │   │   └── meta.json
│   │   │   ├── prop-types/
│   │   │   │   └── meta.json
│   │   │   ├── react/
│   │   │   │   └── meta.json
│   │   │   ├── react-ace/
│   │   │   │   └── meta.json
│   │   │   ├── react-autowhatever/
│   │   │   │   └── meta.json
│   │   │   ├── react-bootstrap/
│   │   │   │   └── meta.json
│   │   │   ├── react-css-transition/
│   │   │   │   └── meta.json
│   │   │   ├── react-debounce-input/
│   │   │   │   └── meta.json
│   │   │   ├── react-dnd/
│   │   │   │   └── meta.json
│   │   │   ├── react-dnd-html5-backend/
│   │   │   │   └── meta.json
│   │   │   ├── react-dom/
│   │   │   │   └── meta.json
│   │   │   ├── react-draggable/
│   │   │   │   └── meta.json
│   │   │   ├── react-hook-form/
│   │   │   │   └── meta.json
│   │   │   ├── react-i18next/
│   │   │   │   └── meta.json
│   │   │   ├── react-is/
│   │   │   │   └── meta.json
│   │   │   ├── react-lifecycles-compat/
│   │   │   │   └── meta.json
│   │   │   ├── react-popper/
│   │   │   │   └── meta.json
│   │   │   ├── react-redux/
│   │   │   │   └── meta.json
│   │   │   ├── react-resizable/
│   │   │   │   └── meta.json
│   │   │   ├── react-router/
│   │   │   │   └── meta.json
│   │   │   ├── react-router-dom/
│   │   │   │   └── meta.json
│   │   │   ├── react-side-effect/
│   │   │   │   └── meta.json
│   │   │   ├── react-transition-group/
│   │   │   │   └── meta.json
│   │   │   ├── react-virtualized/
│   │   │   │   └── meta.json
│   │   │   ├── recharts/
│   │   │   │   └── meta.json
│   │   │   ├── redux/
│   │   │   │   └── meta.json
│   │   │   ├── redux-act/
│   │   │   │   └── meta.json
│   │   │   ├── redux-saga/
│   │   │   │   └── meta.json
│   │   │   ├── redux-thunk/
│   │   │   │   └── meta.json
│   │   │   ├── reflect-metadata/
│   │   │   │   └── meta.json
│   │   │   ├── rx/
│   │   │   │   └── meta.json
│   │   │   ├── rxjs/
│   │   │   │   └── meta.json
│   │   │   ├── scroll-smooth/
│   │   │   │   └── meta.json
│   │   │   ├── semantic-ui/
│   │   │   │   └── meta.json
│   │   │   ├── simplebar/
│   │   │   │   └── meta.json
│   │   │   ├── styled-components/
│   │   │   │   └── meta.json
│   │   │   ├── tachyons/
│   │   │   │   └── meta.json
│   │   │   ├── three/
│   │   │   │   └── meta.json
│   │   │   ├── timezone-support/
│   │   │   │   └── meta.json
│   │   │   ├── tooltip.js/
│   │   │   │   └── meta.json
│   │   │   ├── uuid/
│   │   │   │   └── meta.json
│   │   │   ├── vue/
│   │   │   │   └── meta.json
│   │   │   └── zone.js/
│   │   │       └── meta.json
│   │   ├── modules.json
│   │   ├── modules.test.js
│   │   ├── package.json
│   │   ├── url.js
│   │   ├── version.js
│   │   └── vitest.config.ts
│   └── react-bootstrap/
│       ├── .babelrc
│       ├── CHANGELOG.md
│       ├── CONTRIBUTING.md
│       ├── MAINTAINING.md
│       ├── README.md
│       ├── eslint.config.mjs
│       ├── package.json
│       ├── server/
│       │   └── ModalSpec.js
│       ├── src/
│       │   ├── Accordion.jsx
│       │   ├── Alert.jsx
│       │   ├── Alert.test.jsx
│       │   ├── Badge.jsx
│       │   ├── Badge.test.jsx
│       │   ├── Breadcrumb.jsx
│       │   ├── Breadcrumb.test.jsx
│       │   ├── BreadcrumbItem.jsx
│       │   ├── BreadcrumbItem.test.jsx
│       │   ├── Button.jsx
│       │   ├── Button.test.jsx
│       │   ├── ButtonGroup.jsx
│       │   ├── ButtonGroup.test.jsx
│       │   ├── ButtonToolbar.jsx
│       │   ├── ButtonToolbar.test.jsx
│       │   ├── Carousel.jsx
│       │   ├── Carousel.test.jsx
│       │   ├── CarouselCaption.jsx
│       │   ├── CarouselCaption.test.jsx
│       │   ├── CarouselItem.jsx
│       │   ├── Checkbox.jsx
│       │   ├── Checkbox.test.jsx
│       │   ├── Clearfix.jsx
│       │   ├── Clearfix.test.jsx
│       │   ├── CloseButton.jsx
│       │   ├── CloseButton.test.jsx
│       │   ├── Col.jsx
│       │   ├── Col.test.jsx
│       │   ├── Collapse.jsx
│       │   ├── Collapse.test.jsx
│       │   ├── ControlLabel.jsx
│       │   ├── ControlLabel.test.jsx
│       │   ├── Dropdown.jsx
│       │   ├── Dropdown.test.jsx
│       │   ├── DropdownButton.jsx
│       │   ├── DropdownButton.test.jsx
│       │   ├── DropdownMenu.jsx
│       │   ├── DropdownMenu.test.jsx
│       │   ├── DropdownToggle.jsx
│       │   ├── DropdownToggle.test.jsx
│       │   ├── Fade.jsx
│       │   ├── Fade.test.jsx
│       │   ├── Form.jsx
│       │   ├── Form.test.jsx
│       │   ├── FormControl.jsx
│       │   ├── FormControl.test.jsx
│       │   ├── FormControlFeedback.jsx
│       │   ├── FormControlFeedback.test.jsx
│       │   ├── FormControlStatic.jsx
│       │   ├── FormControlStatic.test.jsx
│       │   ├── FormGroup.jsx
│       │   ├── FormGroup.test.jsx
│       │   ├── Glyphicon.jsx
│       │   ├── Glyphicon.test.jsx
│       │   ├── Grid.jsx
│       │   ├── Grid.test.jsx
│       │   ├── HelpBlock.jsx
│       │   ├── HelpBlock.test.jsx
│       │   ├── Image.jsx
│       │   ├── Image.test.jsx
│       │   ├── InputGroup.jsx
│       │   ├── InputGroup.test.jsx
│       │   ├── InputGroupAddon.jsx
│       │   ├── InputGroupButton.jsx
│       │   ├── Jumbotron.jsx
│       │   ├── Jumbotron.test.jsx
│       │   ├── Label.jsx
│       │   ├── Label.test.jsx
│       │   ├── ListGroup.jsx
│       │   ├── ListGroup.test.jsx
│       │   ├── ListGroupItem.jsx
│       │   ├── ListGroupItem.test.jsx
│       │   ├── Media.jsx
│       │   ├── Media.test.jsx
│       │   ├── MediaBody.jsx
│       │   ├── MediaBody.test.jsx
│       │   ├── MediaHeading.jsx
│       │   ├── MediaHeading.test.jsx
│       │   ├── MediaLeft.jsx
│       │   ├── MediaLeft.test.jsx
│       │   ├── MediaList.jsx
│       │   ├── MediaList.test.jsx
│       │   ├── MediaListItem.jsx
│       │   ├── MediaListItem.test.jsx
│       │   ├── MediaRight.jsx
│       │   ├── MediaRight.test.jsx
│       │   ├── MenuItem.jsx
│       │   ├── MenuItem.test.jsx
│       │   ├── Modal.jsx
│       │   ├── Modal.test.jsx
│       │   ├── ModalBody.jsx
│       │   ├── ModalBody.test.jsx
│       │   ├── ModalDialog.jsx
│       │   ├── ModalFooter.jsx
│       │   ├── ModalFooter.test.jsx
│       │   ├── ModalHeader.jsx
│       │   ├── ModalHeader.test.jsx
│       │   ├── ModalTitle.jsx
│       │   ├── ModalTitle.test.jsx
│       │   ├── Nav.jsx
│       │   ├── Nav.test.jsx
│       │   ├── NavDropdown.jsx
│       │   ├── NavDropdown.test.jsx
│       │   ├── NavItem.jsx
│       │   ├── NavItem.test.jsx
│       │   ├── Navbar.jsx
│       │   ├── Navbar.test.jsx
│       │   ├── NavbarBrand.jsx
│       │   ├── NavbarBrand.test.jsx
│       │   ├── NavbarCollapse.jsx
│       │   ├── NavbarHeader.jsx
│       │   ├── NavbarToggle.jsx
│       │   ├── Overlay.jsx
│       │   ├── OverlayTrigger.jsx
│       │   ├── OverlayTrigger.test.jsx
│       │   ├── PageHeader.jsx
│       │   ├── PageHeader.test.jsx
│       │   ├── PageItem.jsx
│       │   ├── Pager.jsx
│       │   ├── Pager.test.jsx
│       │   ├── PagerItem.jsx
│       │   ├── PagerItem.test.jsx
│       │   ├── Pagination.jsx
│       │   ├── Pagination.test.jsx
│       │   ├── PaginationItem.jsx
│       │   ├── Panel.jsx
│       │   ├── Panel.test.jsx
│       │   ├── PanelBody.jsx
│       │   ├── PanelCollapse.jsx
│       │   ├── PanelFooter.jsx
│       │   ├── PanelGroup.jsx
│       │   ├── PanelGroup.test.jsx
│       │   ├── PanelHeading.jsx
│       │   ├── PanelTitle.jsx
│       │   ├── PanelToggle.jsx
│       │   ├── Popover.jsx
│       │   ├── Popover.test.jsx
│       │   ├── ProgressBar.jsx
│       │   ├── ProgressBar.test.jsx
│       │   ├── Radio.jsx
│       │   ├── Radio.test.jsx
│       │   ├── ResponsiveEmbed.jsx
│       │   ├── ResponsiveEmbed.test.jsx
│       │   ├── Row.jsx
│       │   ├── Row.test.jsx
│       │   ├── SafeAnchor.jsx
│       │   ├── SafeAnchor.test.jsx
│       │   ├── SplitButton.jsx
│       │   ├── SplitButton.test.jsx
│       │   ├── SplitToggle.jsx
│       │   ├── Tab.jsx
│       │   ├── Tab.test.jsx
│       │   ├── TabContainer.jsx
│       │   ├── TabContainer.test.jsx
│       │   ├── TabContent.jsx
│       │   ├── TabPane.jsx
│       │   ├── Table.jsx
│       │   ├── Table.test.jsx
│       │   ├── Tabs.jsx
│       │   ├── Tabs.test.jsx
│       │   ├── Thumbnail.jsx
│       │   ├── Thumbnail.test.jsx
│       │   ├── ToggleButton.jsx
│       │   ├── ToggleButtonGroup.jsx
│       │   ├── ToggleButtonGroup.test.jsx
│       │   ├── Tooltip.jsx
│       │   ├── Tooltip.test.jsx
│       │   ├── Well.jsx
│       │   ├── Well.test.jsx
│       │   ├── helpers.jsx
│       │   ├── index.jsx
│       │   ├── test-setup.jsx
│       │   └── utils/
│       │       ├── PropTypes.js
│       │       ├── StyleConfig.js
│       │       ├── ValidComponentChildren.js
│       │       ├── bootstrapUtils.js
│       │       ├── capitalize.js
│       │       ├── createChainedFunction.js
│       │       ├── deprecationWarning.js
│       │       ├── index.js
│       │       └── splitComponentProps.js
│       ├── tsconfig.json
│       └── vitest.config.ts
├── index.html
├── mocks/
│   └── dateMock.js
├── npm-audit/
│   └── audit.json
├── package.json
├── packages/
│   ├── a11y/
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Gesture/
│   │   │   │   ├── constants.ts
│   │   │   │   ├── focus.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── preventScroll.test.tsx
│   │   │   │   ├── preventScroll.ts
│   │   │   │   ├── propTypes.ts
│   │   │   │   ├── withCalendarGesture.test.tsx
│   │   │   │   ├── withCalendarGesture.tsx
│   │   │   │   ├── withDynamicListGesture.test.jsx
│   │   │   │   ├── withDynamicListGesture.tsx
│   │   │   │   ├── withListGesture.test.jsx
│   │   │   │   ├── withListGesture.tsx
│   │   │   │   ├── withMonthCalendarGesture.test.tsx
│   │   │   │   ├── withMonthCalendarGesture.tsx
│   │   │   │   ├── withTreeGesture.test.jsx
│   │   │   │   └── withTreeGesture.tsx
│   │   │   ├── __mocks__/
│   │   │   │   ├── day-calendar.tsx
│   │   │   │   ├── list.tsx
│   │   │   │   ├── month-calendar.tsx
│   │   │   │   └── tree.tsx
│   │   │   ├── index.ts
│   │   │   └── test-setup.ts
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── assets-api/
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.test.ts
│   │   │   └── index.ts
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── cmf/
│   │   ├── .babelrc.json
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── 6.0-BreakingChanges.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __tests__/
│   │   │   ├── App.test.jsx
│   │   │   ├── Dispatcher.test.jsx
│   │   │   ├── Inject.test.jsx
│   │   │   ├── __snapshots__/
│   │   │   │   ├── cmfConnect.test.jsx.snap
│   │   │   │   └── componentState.test.js.snap
│   │   │   ├── action.test.js
│   │   │   ├── actionCreator.test.js
│   │   │   ├── actions/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── componentsActions.test.js.snap
│   │   │   │   ├── collectionsActions.test.js
│   │   │   │   ├── componentsActions.test.js
│   │   │   │   ├── http.test.js
│   │   │   │   ├── saga.test.js
│   │   │   │   └── settingsAction.test.js
│   │   │   ├── assert.test.js
│   │   │   ├── bootstrap.test.jsx
│   │   │   ├── cmfConnect.test.jsx
│   │   │   ├── cmfModule.merge.test.jsx
│   │   │   ├── cmfModule.test.js
│   │   │   ├── component.test.js
│   │   │   ├── componentState.test.js
│   │   │   ├── constant.test.js
│   │   │   ├── expression.test.jsx
│   │   │   ├── expressions/
│   │   │   │   └── index.test.jsx
│   │   │   ├── httpInterceptors.test.js
│   │   │   ├── localStorage.test.js
│   │   │   ├── matchPath.test.js
│   │   │   ├── middlewares/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── http.test.js.snap
│   │   │   │   ├── cmf.test.js
│   │   │   │   ├── constants.test.js
│   │   │   │   ├── csrfHandling.test.js
│   │   │   │   ├── error.test.js
│   │   │   │   └── http.test.js
│   │   │   ├── omit.test.js
│   │   │   ├── onError.test.jsx
│   │   │   ├── onEvent.test.js
│   │   │   ├── reducers/
│   │   │   │   ├── collectionsReducers.test.js
│   │   │   │   ├── componentsReducers.test.js
│   │   │   │   ├── index.test.js
│   │   │   │   └── settingsReducers.test.js
│   │   │   ├── register.test.js
│   │   │   ├── registry.test.js
│   │   │   ├── sagas/
│   │   │   │   ├── collection.test.js
│   │   │   │   ├── component.test.js
│   │   │   │   ├── http.test.js
│   │   │   │   └── putActionCreator.test.js
│   │   │   ├── selectors/
│   │   │   │   ├── collections.test.js
│   │   │   │   ├── index.test.js
│   │   │   │   └── toJS.test.js
│   │   │   ├── settings.test.jsx
│   │   │   └── store.test.js
│   │   ├── assets/
│   │   │   ├── diagram-bootstrap.xml
│   │   │   ├── diagram-cmfConnect.xml
│   │   │   ├── diagram-code-orga.xml
│   │   │   ├── diagram-onError-sequence.puml
│   │   │   ├── diagram-react-redux-saga-rendering.xml
│   │   │   └── diagram-rendering-cycle.xml
│   │   ├── cmf.d.ts
│   │   ├── docs/
│   │   │   ├── api.md
│   │   │   ├── assets/
│   │   │   │   ├── CMF-action-diagram.txt
│   │   │   │   └── CMF-bootstrap-diagram.txt
│   │   │   ├── best-practices.md
│   │   │   ├── core-expressions.md
│   │   │   ├── core-onevent.md
│   │   │   ├── core-registry.md
│   │   │   ├── core-settings.md
│   │   │   ├── examples.md
│   │   │   ├── getting-started.md
│   │   │   ├── how-to-add-a-new-page.md
│   │   │   ├── how-to-connect.md
│   │   │   ├── how-to-edit-doc.md
│   │   │   ├── how-to-manage-collections.md
│   │   │   ├── package-redux.md
│   │   │   ├── package-router.md
│   │   │   ├── package-saga.md
│   │   │   └── what-is-cmf.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   └── cmf-settings.js
│   │   ├── src/
│   │   │   ├── App.jsx
│   │   │   ├── App.md
│   │   │   ├── Dispatcher.jsx
│   │   │   ├── Dispatcher.md
│   │   │   ├── Inject.component.jsx
│   │   │   ├── RegistryProvider.jsx
│   │   │   ├── action.js
│   │   │   ├── action.md
│   │   │   ├── actionCreator.js
│   │   │   ├── actionCreator.md
│   │   │   ├── actions/
│   │   │   │   ├── collectionsActions.js
│   │   │   │   ├── componentsActions.js
│   │   │   │   ├── http.js
│   │   │   │   ├── index.js
│   │   │   │   ├── saga.js
│   │   │   │   └── settingsActions.js
│   │   │   ├── api.md
│   │   │   ├── assert.js
│   │   │   ├── bootstrap.jsx
│   │   │   ├── bootstrap.md
│   │   │   ├── cmfConnect.jsx
│   │   │   ├── cmfConnect.md
│   │   │   ├── cmfModule.js
│   │   │   ├── cmfModule.merge.jsx
│   │   │   ├── component.js
│   │   │   ├── componentState.js
│   │   │   ├── components/
│   │   │   │   ├── ErrorBoundary/
│   │   │   │   │   ├── ErrorBoundary.component.js
│   │   │   │   │   └── ErrorBoundary.component.test.jsx
│   │   │   │   ├── ErrorFeedBack/
│   │   │   │   │   ├── ErrorFeedBack.component.jsx
│   │   │   │   │   ├── ErrorFeedBack.component.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ErrorPanel/
│   │   │   │   │   ├── ErrorPanel.component.jsx
│   │   │   │   │   ├── ErrorPanel.component.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   └── Saga/
│   │   │   │       ├── CmfRegisteredSaga.component.js
│   │   │   │       ├── CmfRegisteredSaga.component.test.jsx
│   │   │   │       ├── Saga.component.js
│   │   │   │       ├── Saga.component.md
│   │   │   │       ├── Saga.component.test.jsx
│   │   │   │       ├── Saga.saga.js
│   │   │   │       ├── Saga.saga.test.js
│   │   │   │       └── index.js
│   │   │   ├── constant.js
│   │   │   ├── deprecated.js
│   │   │   ├── expression.jsx
│   │   │   ├── expression.md
│   │   │   ├── expressions/
│   │   │   │   ├── allOf.js
│   │   │   │   ├── getInState.js
│   │   │   │   ├── includes.js
│   │   │   │   ├── index.js
│   │   │   │   ├── index.md
│   │   │   │   └── oneOf.js
│   │   │   ├── httpInterceptors.js
│   │   │   ├── httpInterceptors.md
│   │   │   ├── index.js
│   │   │   ├── localStorage.js
│   │   │   ├── matchPath.js
│   │   │   ├── middlewares/
│   │   │   │   ├── cmf/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── index.md
│   │   │   │   ├── error/
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── index.md
│   │   │   │   ├── http/
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── csrfHandling.js
│   │   │   │   │   ├── index.js
│   │   │   │   │   ├── index.md
│   │   │   │   │   └── middleware.js
│   │   │   │   └── index.js
│   │   │   ├── mock/
│   │   │   │   ├── collections.js
│   │   │   │   ├── components.js
│   │   │   │   ├── index.js
│   │   │   │   ├── provider.jsx
│   │   │   │   ├── rtl.jsx
│   │   │   │   ├── settings.js
│   │   │   │   └── store.jsx
│   │   │   ├── omit.js
│   │   │   ├── onError.js
│   │   │   ├── onError.md
│   │   │   ├── onEvent.js
│   │   │   ├── onEvent.md
│   │   │   ├── reducers/
│   │   │   │   ├── collectionsReducers.js
│   │   │   │   ├── componentsReducers.js
│   │   │   │   ├── index.js
│   │   │   │   └── settingsReducers.js
│   │   │   ├── register.js
│   │   │   ├── registry.js
│   │   │   ├── registry.md
│   │   │   ├── sagas/
│   │   │   │   ├── collection.js
│   │   │   │   ├── component.js
│   │   │   │   ├── http.js
│   │   │   │   ├── index.js
│   │   │   │   ├── index.md
│   │   │   │   └── putActionCreator.js
│   │   │   ├── selectors/
│   │   │   │   ├── collections.js
│   │   │   │   ├── collections.md
│   │   │   │   ├── index.js
│   │   │   │   ├── index.md
│   │   │   │   ├── toJS.js
│   │   │   │   └── toJS.md
│   │   │   ├── settings.jsx
│   │   │   ├── settings.md
│   │   │   ├── store.js
│   │   │   ├── store.md
│   │   │   ├── test-setup.ts
│   │   │   └── useContext.js
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── cmf-cqrs/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs.json
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── actions/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ack.test.js.snap
│   │   │   │   ├── ack.js
│   │   │   │   ├── ack.test.js
│   │   │   │   └── index.js
│   │   │   ├── components/
│   │   │   │   └── ACKDispatcher/
│   │   │   │       ├── ACKDispatcher.connect.js
│   │   │   │       ├── ACKDispatcher.container.js
│   │   │   │       ├── ACKDispatcher.test.jsx
│   │   │   │       ├── __snapshots__/
│   │   │   │       │   ├── ACKDispatcher.test.js.snap
│   │   │   │       │   └── ACKDispatcher.test.jsx.snap
│   │   │   │       └── index.js
│   │   │   ├── constants/
│   │   │   │   ├── ack.js
│   │   │   │   ├── index.js
│   │   │   │   ├── socketMiddleware.js
│   │   │   │   └── status.js
│   │   │   ├── index.test.js
│   │   │   ├── index.ts
│   │   │   ├── middleware/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── socketMiddleware.test.js.snap
│   │   │   │   ├── index.js
│   │   │   │   ├── smartWebsocket.js
│   │   │   │   ├── smartWebsocket.test.js
│   │   │   │   ├── socketMiddleware.js
│   │   │   │   └── socketMiddleware.test.js
│   │   │   ├── reducers/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ack.test.js.snap
│   │   │   │   ├── ack.js
│   │   │   │   ├── ack.test.js
│   │   │   │   └── index.js
│   │   │   ├── registry.js
│   │   │   ├── sagas/
│   │   │   │   ├── ack.js
│   │   │   │   ├── ack.test.js
│   │   │   │   └── index.js
│   │   │   ├── test-setup.ts
│   │   │   ├── useWebSocket.hook.test.ts
│   │   │   └── useWebSocket.hook.ts
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── cmf-router/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── UIRouter.jsx
│   │   │   ├── constant.js
│   │   │   ├── expressions.js
│   │   │   ├── expressions.md
│   │   │   ├── expressions.test.js
│   │   │   ├── history.js
│   │   │   ├── index.jsx
│   │   │   ├── index.test.js
│   │   │   ├── middleware.js
│   │   │   ├── middleware.md
│   │   │   ├── middleware.test.js
│   │   │   ├── sagaRouter.js
│   │   │   ├── sagaRouter.md
│   │   │   ├── sagaRouter.test.js
│   │   │   ├── sagas/
│   │   │   │   ├── documentTitle.js
│   │   │   │   └── documentTitle.test.js
│   │   │   ├── selectors.js
│   │   │   └── selectors.test.js
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── components/
│   │   ├── .babelrc.json
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .sass-lint.yml
│   │   ├── .storybook/
│   │   │   ├── main.ts
│   │   │   ├── preview-head.html
│   │   │   └── preview.ts
│   │   ├── 6.0 - breaking changes.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __mocks__/
│   │   │   ├── day-calendar.jsx
│   │   │   ├── list.jsx
│   │   │   └── month-calendar.jsx
│   │   ├── custom.d.ts
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── screenshots.config.json
│   │   ├── src/
│   │   │   ├── AboutDialog/
│   │   │   │   ├── AboutDialog.component.jsx
│   │   │   │   ├── AboutDialog.module.css
│   │   │   │   ├── AboutDialog.test.jsx
│   │   │   │   ├── AboutDialogTable.component.jsx
│   │   │   │   ├── AboutModal.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionBar/
│   │   │   │   ├── ActionBar.component.jsx
│   │   │   │   ├── ActionBar.module.css
│   │   │   │   ├── ActionBar.stories.jsx
│   │   │   │   ├── ActionBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionIntercom/
│   │   │   │   ├── Intercom.component.jsx
│   │   │   │   ├── Intercom.component.test.jsx
│   │   │   │   ├── Intercom.module.css
│   │   │   │   ├── Intercom.service.jsx
│   │   │   │   ├── Intercom.service.test.jsx
│   │   │   │   ├── Intercom.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionList/
│   │   │   │   ├── ActionList.component.jsx
│   │   │   │   ├── ActionList.module.css
│   │   │   │   ├── ActionList.stories.jsx
│   │   │   │   ├── ActionList.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Actions/
│   │   │   │   ├── Action/
│   │   │   │   │   ├── Action.component.jsx
│   │   │   │   │   ├── Action.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionButton/
│   │   │   │   │   ├── ActionButton.component.jsx
│   │   │   │   │   ├── ActionButton.module.css
│   │   │   │   │   ├── ActionButton.test.jsx
│   │   │   │   │   ├── Button.stories.jsx
│   │   │   │   │   ├── Button.stories.module.css
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionDropdown/
│   │   │   │   │   ├── ActionDropdown.component.jsx
│   │   │   │   │   ├── ActionDropdown.component.md
│   │   │   │   │   ├── ActionDropdown.module.css
│   │   │   │   │   ├── ActionDropdown.snapshot.test.jsx
│   │   │   │   │   ├── ActionDropdown.test.jsx
│   │   │   │   │   ├── Dropdown.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionFile/
│   │   │   │   │   ├── ActionFile.component.jsx
│   │   │   │   │   ├── ActionFile.module.css
│   │   │   │   │   ├── ActionFile.test.jsx
│   │   │   │   │   ├── File.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionIconToggle/
│   │   │   │   │   ├── ActionIconToggle.component.jsx
│   │   │   │   │   ├── ActionIconToggle.component.test.jsx
│   │   │   │   │   ├── ActionIconToggle.module.css
│   │   │   │   │   ├── IconToggle.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── ActionSplitDropdown/
│   │   │   │   │   ├── ActionSplitDropdown.component.jsx
│   │   │   │   │   ├── ActionSplitDropdown.module.css
│   │   │   │   │   ├── ActionSplitDropdown.test.jsx
│   │   │   │   │   ├── SplitDropdown.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── Actions.component.jsx
│   │   │   │   ├── Actions.test.jsx
│   │   │   │   ├── ButtonGroup.stories.jsx
│   │   │   │   ├── index.js
│   │   │   │   ├── wrapOnClick.js
│   │   │   │   └── wrapOnClick.test.js
│   │   │   ├── AppGuidedTour/
│   │   │   │   ├── AppGuidedTour.component.jsx
│   │   │   │   ├── AppGuidedTour.stories.jsx
│   │   │   │   ├── AppGuidedTour.test.jsx
│   │   │   │   ├── DemoContentStep.component.jsx
│   │   │   │   ├── DemoContentStep.component.test.jsx
│   │   │   │   ├── DemoContentStep.module.css
│   │   │   │   └── index.js
│   │   │   ├── AppLoader/
│   │   │   │   ├── AppLoader.component.jsx
│   │   │   │   ├── AppLoader.md
│   │   │   │   ├── AppLoader.stories.jsx
│   │   │   │   ├── AppLoader.test.jsx
│   │   │   │   ├── constant.js
│   │   │   │   └── index.js
│   │   │   ├── AppSwitcher/
│   │   │   │   ├── AppSwitcher.component.jsx
│   │   │   │   ├── AppSwitcher.component.test.jsx
│   │   │   │   ├── AppSwitcher.module.css
│   │   │   │   └── index.js
│   │   │   ├── Badge/
│   │   │   │   ├── Badge.component.jsx
│   │   │   │   ├── Badge.component.test.jsx
│   │   │   │   ├── Badge.module.css
│   │   │   │   ├── Badge.stories.jsx
│   │   │   │   ├── BadgeComposition/
│   │   │   │   │   ├── BadgeCategory/
│   │   │   │   │   │   ├── BadgeCategory.component.jsx
│   │   │   │   │   │   ├── BadgeCategory.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeDelete/
│   │   │   │   │   │   ├── BadgeDelete.component.jsx
│   │   │   │   │   │   ├── BadgeDelete.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeDropdown/
│   │   │   │   │   │   ├── BadgeDropdown.component.jsx
│   │   │   │   │   │   ├── BadgeDropdown.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeIcon/
│   │   │   │   │   │   ├── BadgeIcon.component.jsx
│   │   │   │   │   │   ├── BadgeIcon.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeIcon.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeIcon.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeLabel/
│   │   │   │   │   │   ├── BadgeLabel.component.jsx
│   │   │   │   │   │   ├── BadgeLabel.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeSeparator/
│   │   │   │   │   │   ├── BadgeSeparator.component.jsx
│   │   │   │   │   │   ├── BadgeSeparator.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeSeparator.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeSeparator.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── Breadcrumbs/
│   │   │   │   ├── Breadcrumbs.component.jsx
│   │   │   │   ├── Breadcrumbs.module.css
│   │   │   │   ├── Breadcrumbs.snapshot.test.jsx
│   │   │   │   ├── Breadcrumbs.stories.jsx
│   │   │   │   ├── Breadcrumbs.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Checkbox/
│   │   │   │   ├── Checkbox.jsx
│   │   │   │   ├── Checkbox.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── CircularProgress/
│   │   │   │   ├── CircularProgress.component.jsx
│   │   │   │   ├── CircularProgress.module.css
│   │   │   │   ├── CircularProgress.test.jsx
│   │   │   │   ├── Spinner.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── CollapsiblePanel/
│   │   │   │   ├── CollapsiblePanel.component.jsx
│   │   │   │   ├── CollapsiblePanel.module.css
│   │   │   │   ├── CollapsiblePanel.snapshot.test.jsx
│   │   │   │   ├── CollapsiblePanel.stories.jsx
│   │   │   │   ├── CollapsiblePanel.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ConfirmDialog/
│   │   │   │   ├── ConfirmDialog.component.jsx
│   │   │   │   ├── ConfirmDialog.stories.jsx
│   │   │   │   ├── ConfirmDialog.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── DataViewer/
│   │   │   │   ├── Badges/
│   │   │   │   │   ├── LengthBadge/
│   │   │   │   │   │   ├── LengthBadge.component.jsx
│   │   │   │   │   │   ├── LengthBadge.module.css
│   │   │   │   │   │   ├── LengthBadge.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── LengthBadge.test.js.snap
│   │   │   │   │   │   │   └── LengthBadge.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Core/
│   │   │   │   │   ├── Tree/
│   │   │   │   │   │   ├── Tree.component.jsx
│   │   │   │   │   │   ├── Tree.module.css
│   │   │   │   │   │   ├── Tree.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TreeNode/
│   │   │   │   │   │   ├── TreeNode.component.js
│   │   │   │   │   │   ├── TreeNode.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TreeNodeList/
│   │   │   │   │   │   ├── TreeNodeList.component.jsx
│   │   │   │   │   │   ├── TreeNodeList.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DataViewer.stories.jsx
│   │   │   │   ├── Headers/
│   │   │   │   │   ├── TreeHeader/
│   │   │   │   │   │   ├── TreeHeader.component.jsx
│   │   │   │   │   │   ├── TreeHeader.module.css
│   │   │   │   │   │   ├── TreeHeader.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TreeHeader.test.js.snap
│   │   │   │   │   │   │   └── TreeHeader.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Icons/
│   │   │   │   │   ├── TreeBranchIcon/
│   │   │   │   │   │   ├── TreeBranchIcon.component.jsx
│   │   │   │   │   │   ├── TreeBranchIcon.module.css
│   │   │   │   │   │   ├── TreeBranchIcon.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Managers/
│   │   │   │   │   ├── TreeManager/
│   │   │   │   │   │   ├── TreeManager.container.js
│   │   │   │   │   │   ├── TreeManager.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── ModelViewer/
│   │   │   │   │   ├── Branch/
│   │   │   │   │   │   ├── ModelViewerBranch.component.jsx
│   │   │   │   │   │   ├── ModelViewerBranch.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Leaf/
│   │   │   │   │   │   ├── ModelViewerLeaf.component.jsx
│   │   │   │   │   │   ├── ModelViewerLeaf.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── ModelViewerLeaf.test.js.snap
│   │   │   │   │   │   │   └── ModelViewerLeaf.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ModelViewer.component.jsx
│   │   │   │   │   ├── ModelViewer.component.test.jsx
│   │   │   │   │   ├── ModelViewer.container.jsx
│   │   │   │   │   ├── ModelViewer.container.test.jsx
│   │   │   │   │   ├── ModelViewer.module.css
│   │   │   │   │   ├── ModelViewer.parser.test.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── ModelViewer.component.test.js.snap
│   │   │   │   │   │   ├── ModelViewer.component.test.jsx.snap
│   │   │   │   │   │   ├── ModelViewer.container.test.js.snap
│   │   │   │   │   │   └── ModelViewer.container.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── RecordsViewer/
│   │   │   │   │   ├── Branch/
│   │   │   │   │   │   ├── RecordsViewerBranch.component.jsx
│   │   │   │   │   │   ├── RecordsViewerBranch.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── RecordsViewerBranch.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── CellRenderer/
│   │   │   │   │   │   ├── RecordsCellRenderer.component.jsx
│   │   │   │   │   │   ├── RecordsCellRenderer.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── RecordsCellRenderer.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Leaf/
│   │   │   │   │   │   ├── RecordsViewerLeaf.component.jsx
│   │   │   │   │   │   ├── RecordsViewerLeaf.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── RecordsViewerLeaf.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── RecordsViewer.component.jsx
│   │   │   │   │   ├── RecordsViewer.component.test.jsx
│   │   │   │   │   ├── RecordsViewer.container.jsx
│   │   │   │   │   ├── RecordsViewer.container.test.jsx
│   │   │   │   │   ├── RecordsViewer.module.css
│   │   │   │   │   ├── RecordsViewer.parser.js
│   │   │   │   │   ├── RecordsViewer.parser.test.js
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RecordsViewer.component.test.jsx.snap
│   │   │   │   │   │   ├── RecordsViewer.container.test.js.snap
│   │   │   │   │   │   └── RecordsViewer.container.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Text/
│   │   │   │   │   ├── SimpleTextKeyValue/
│   │   │   │   │   │   ├── DefaultValueRenderer.component.jsx
│   │   │   │   │   │   ├── DefaultValueRenderer.module.css
│   │   │   │   │   │   ├── DefaultValueRenderer.test.jsx
│   │   │   │   │   │   ├── SimpleTextKeyValue.component.jsx
│   │   │   │   │   │   ├── SimpleTextKeyValue.module.css
│   │   │   │   │   │   ├── SimpleTextKeyValue.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SimpleTextKeyValue.test.js.snap
│   │   │   │   │   │   │   └── SimpleTextKeyValue.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── Virtualized/
│   │   │   │   │   ├── TreeCellMeasurer/
│   │   │   │   │   │   ├── TreeCellMeasurer.component.jsx
│   │   │   │   │   │   ├── TreeCellMeasurer.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── TreeCellMeasurer.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── VirtualizedTree/
│   │   │   │   │   │   ├── VirtualizedTree.component.jsx
│   │   │   │   │   │   ├── VirtualizedTree.module.css
│   │   │   │   │   │   ├── VirtualizedTree.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── VirtualizedTree.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── index.js
│   │   │   │   ├── jsonPath.js
│   │   │   │   ├── jsonPath.test.js
│   │   │   │   ├── sample.raw.json
│   │   │   │   └── theme.module.css
│   │   │   ├── Datalist/
│   │   │   │   ├── Datalist.component.jsx
│   │   │   │   ├── Datalist.component.test.jsx
│   │   │   │   ├── Datalist.module.css
│   │   │   │   ├── Datalist.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── DateTimePickers/
│   │   │   │   ├── Date/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   ├── Input.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Picker/
│   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   ├── Picker.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── date-extraction.js
│   │   │   │   │   ├── date-extraction.test.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DateRange/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   ├── Input.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Picker/
│   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   ├── Picker.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Picker.component.test.js.snap
│   │   │   │   │   │   │   └── Picker.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── constants.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DateTime/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── datetime-extraction.js
│   │   │   │   │   ├── datetime-extraction.test.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── DateTimeRange/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDatePicker/
│   │   │   │   │   ├── DatePicker.stories.jsx
│   │   │   │   │   ├── InputDatePicker.component.jsx
│   │   │   │   │   ├── InputDatePicker.module.css
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDateRangePicker/
│   │   │   │   │   ├── DateRangePicker.stories.jsx
│   │   │   │   │   ├── InputDateRangePicker.component.jsx
│   │   │   │   │   ├── InputDateRangePicker.module.css
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDateTimePicker/
│   │   │   │   │   ├── DateTimePicker.stories.jsx
│   │   │   │   │   ├── InputDateTimePicker.component.jsx
│   │   │   │   │   ├── InputDateTimePicker.component.test.jsx
│   │   │   │   │   ├── InputDateTimePicker.module.css
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── InputDateTimePicker.component.test.js.snap
│   │   │   │   │   │   └── InputDateTimePicker.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputDateTimeRangePicker/
│   │   │   │   │   ├── DateTimeRangePicker.stories.jsx
│   │   │   │   │   ├── InputDateTimeRangePicker.component.jsx
│   │   │   │   │   ├── InputDateTimeRangePicker.component.test.jsx
│   │   │   │   │   ├── InputDateTimeRangePicker.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── InputDateTimeRangePicker.component.test.js.snap
│   │   │   │   │   │   └── InputDateTimeRangePicker.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── InputTimePicker/
│   │   │   │   │   ├── InputTimePicker.component.jsx
│   │   │   │   │   ├── InputTimePicker.component.test.jsx
│   │   │   │   │   ├── InputTimePicker.module.css
│   │   │   │   │   ├── TimePicker.stories.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── LegacyDateTimePickers/
│   │   │   │   │   ├── DateTime/
│   │   │   │   │   │   ├── Context.js
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   │   ├── Input.component.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── Manager/
│   │   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── Picker/
│   │   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   │   ├── Picker.component.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── Validation/
│   │   │   │   │   │   │   ├── Error.component.test.tsx
│   │   │   │   │   │   │   ├── Error.component.tsx
│   │   │   │   │   │   │   ├── Validation.component.jsx
│   │   │   │   │   │   │   ├── Validation.component.test.jsx
│   │   │   │   │   │   │   ├── Validation.module.css
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── constants.js
│   │   │   │   │   │   ├── date-extraction.js
│   │   │   │   │   │   ├── date-extraction.test.js
│   │   │   │   │   │   ├── error-messages.js
│   │   │   │   │   │   ├── error-messages.test.js
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── InputDateTimePicker/
│   │   │   │   │   │   ├── InputDateTimePicker.component.jsx
│   │   │   │   │   │   ├── InputDateTimePicker.component.test.jsx
│   │   │   │   │   │   ├── InputDateTimePicker.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── LegacyDateTimePicker.stories.jsx
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── generator.js
│   │   │   │   │   ├── generator.test.js
│   │   │   │   │   ├── index.js
│   │   │   │   │   ├── pickers/
│   │   │   │   │   │   ├── DatePicker/
│   │   │   │   │   │   │   ├── DatePicker.component.jsx
│   │   │   │   │   │   │   ├── DatePicker.module.css
│   │   │   │   │   │   │   ├── DatePicker.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── DatePicker.test.js.snap
│   │   │   │   │   │   │   │   └── DatePicker.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── DateTimePicker/
│   │   │   │   │   │   │   ├── DateTimePicker.component.jsx
│   │   │   │   │   │   │   ├── DateTimePicker.module.css
│   │   │   │   │   │   │   ├── DateTimePicker.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── MonthPicker/
│   │   │   │   │   │   │   ├── MonthPicker.component.jsx
│   │   │   │   │   │   │   ├── MonthPicker.module.css
│   │   │   │   │   │   │   ├── MonthPicker.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── MonthPicker.test.js.snap
│   │   │   │   │   │   │   │   └── MonthPicker.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── TimePicker/
│   │   │   │   │   │   │   ├── TimePicker.component.jsx
│   │   │   │   │   │   │   ├── TimePicker.md
│   │   │   │   │   │   │   ├── TimePicker.module.css
│   │   │   │   │   │   │   ├── TimePicker.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── TimePicker.test.js.snap
│   │   │   │   │   │   │   │   └── TimePicker.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   └── YearPicker/
│   │   │   │   │   │       ├── YearPicker.component.jsx
│   │   │   │   │   │       ├── YearPicker.md
│   │   │   │   │   │       ├── YearPicker.module.css
│   │   │   │   │   │       ├── YearPicker.test.jsx
│   │   │   │   │   │       ├── __snapshots__/
│   │   │   │   │   │       │   ├── YearPicker.test.js.snap
│   │   │   │   │   │       │   └── YearPicker.test.jsx.snap
│   │   │   │   │   │       └── index.js
│   │   │   │   │   ├── shared/
│   │   │   │   │   │   └── styles/
│   │   │   │   │   │       ├── mixins.scss
│   │   │   │   │   │       └── variables.scss
│   │   │   │   │   └── views/
│   │   │   │   │       ├── DateTimeView/
│   │   │   │   │       │   ├── DateTimeView.component.jsx
│   │   │   │   │       │   ├── DateTimeView.module.css
│   │   │   │   │       │   ├── DateTimeView.test.jsx
│   │   │   │   │       │   ├── __snapshots__/
│   │   │   │   │       │   │   └── DateTimeView.test.jsx.snap
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── HeaderTitle/
│   │   │   │   │       │   ├── HeaderTitle.component.jsx
│   │   │   │   │       │   ├── HeaderTitle.module.css
│   │   │   │   │       │   ├── HeaderTitle.test.jsx
│   │   │   │   │       │   ├── __snapshots__/
│   │   │   │   │       │   │   ├── HeaderTitle.test.js.snap
│   │   │   │   │       │   │   └── HeaderTitle.test.jsx.snap
│   │   │   │   │       │   └── index.js
│   │   │   │   │       ├── MonthYearView/
│   │   │   │   │       │   ├── MonthYearView.component.jsx
│   │   │   │   │       │   ├── MonthYearView.test.jsx
│   │   │   │   │       │   ├── __snapshots__/
│   │   │   │   │       │   │   ├── MonthYearView.test.js.snap
│   │   │   │   │       │   │   └── MonthYearView.test.jsx.snap
│   │   │   │   │       │   └── index.js
│   │   │   │   │       └── ViewLayout/
│   │   │   │   │           ├── ViewLayout.component.jsx
│   │   │   │   │           ├── ViewLayout.module.css
│   │   │   │   │           ├── ViewLayout.test.jsx
│   │   │   │   │           ├── __snapshots__/
│   │   │   │   │           │   ├── ViewLayout.test.js.snap
│   │   │   │   │           │   └── ViewLayout.test.jsx.snap
│   │   │   │   │           └── index.js
│   │   │   │   ├── README.md
│   │   │   │   ├── Time/
│   │   │   │   │   ├── Context.js
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── Manager.component.jsx
│   │   │   │   │   │   ├── Manager.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── Manager.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Picker/
│   │   │   │   │   │   ├── Picker.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── index.js
│   │   │   │   │   ├── time-extraction.js
│   │   │   │   │   └── time-extraction.test.js
│   │   │   │   ├── TimeZone/
│   │   │   │   │   ├── TimeZone.component.jsx
│   │   │   │   │   ├── TimeZone.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── TimeZone.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── generator.js
│   │   │   │   ├── generator.test.js
│   │   │   │   ├── gesture/
│   │   │   │   │   └── timePickerGesture.js
│   │   │   │   ├── hooks/
│   │   │   │   │   └── useInputPickerHandlers.js
│   │   │   │   ├── index.js
│   │   │   │   ├── pickers/
│   │   │   │   │   ├── CalendarPicker/
│   │   │   │   │   │   ├── CalendarPicker.component.jsx
│   │   │   │   │   │   ├── CalendarPicker.module.css
│   │   │   │   │   │   ├── CalendarPicker.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── DatePicker/
│   │   │   │   │   │   ├── DatePicker.component.jsx
│   │   │   │   │   │   ├── DatePicker.module.css
│   │   │   │   │   │   ├── DatePicker.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── DatePicker.test.js.snap
│   │   │   │   │   │   │   └── DatePicker.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── MonthPicker/
│   │   │   │   │   │   ├── MonthPicker.component.jsx
│   │   │   │   │   │   ├── MonthPicker.module.css
│   │   │   │   │   │   ├── MonthPicker.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── MonthPicker.test.js.snap
│   │   │   │   │   │   │   └── MonthPicker.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TimePicker/
│   │   │   │   │   │   ├── TimePicker.component.jsx
│   │   │   │   │   │   ├── TimePicker.component.test.jsx
│   │   │   │   │   │   ├── TimePicker.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TimePicker.component.test.js.snap
│   │   │   │   │   │   │   └── TimePicker.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── YearPicker/
│   │   │   │   │       ├── YearPicker.component.jsx
│   │   │   │   │       ├── YearPicker.md
│   │   │   │   │       ├── YearPicker.module.css
│   │   │   │   │       ├── YearPicker.test.jsx
│   │   │   │   │       ├── __snapshots__/
│   │   │   │   │       │   ├── YearPicker.test.js.snap
│   │   │   │   │       │   └── YearPicker.test.jsx.snap
│   │   │   │   │       └── index.js
│   │   │   │   ├── shared/
│   │   │   │   │   ├── InputSizer/
│   │   │   │   │   │   ├── InputSizer.component.test.jsx
│   │   │   │   │   │   ├── InputSizer.component.tsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── error-messages.js
│   │   │   │   │   └── styles/
│   │   │   │   │       ├── mixins.scss
│   │   │   │   │       └── variables.scss
│   │   │   │   └── views/
│   │   │   │       ├── DateView/
│   │   │   │       │   ├── DateView.component.jsx
│   │   │   │       │   ├── DateView.module.css
│   │   │   │       │   ├── DateView.test.jsx
│   │   │   │       │   ├── __snapshots__/
│   │   │   │       │   │   └── DateView.test.jsx.snap
│   │   │   │       │   └── index.js
│   │   │   │       ├── HeaderTitle/
│   │   │   │       │   ├── HeaderTitle.component.jsx
│   │   │   │       │   ├── HeaderTitle.module.css
│   │   │   │       │   ├── HeaderTitle.test.jsx
│   │   │   │       │   ├── __snapshots__/
│   │   │   │       │   │   └── HeaderTitle.test.jsx.snap
│   │   │   │       │   └── index.js
│   │   │   │       ├── MonthYearView/
│   │   │   │       │   ├── MonthYearView.component.jsx
│   │   │   │       │   ├── MonthYearView.test.jsx
│   │   │   │       │   ├── __snapshots__/
│   │   │   │       │   │   └── MonthYearView.test.jsx.snap
│   │   │   │       │   └── index.js
│   │   │   │       └── ViewLayout/
│   │   │   │           ├── ViewLayout.component.tsx
│   │   │   │           ├── ViewLayout.module.css
│   │   │   │           ├── ViewLayout.test.jsx
│   │   │   │           ├── __snapshots__/
│   │   │   │           │   ├── ViewLayout.test.js.snap
│   │   │   │           │   └── ViewLayout.test.jsx.snap
│   │   │   │           └── index.js
│   │   │   ├── Dialog/
│   │   │   │   ├── Dialog.component.jsx
│   │   │   │   ├── Dialog.css
│   │   │   │   ├── Dialog.stories.jsx
│   │   │   │   ├── Dialog.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Dialog.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Drawer/
│   │   │   │   ├── Drawer.component.jsx
│   │   │   │   ├── Drawer.module.css
│   │   │   │   ├── Drawer.stories.jsx
│   │   │   │   ├── Drawer.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Drawer.test.js.snap
│   │   │   │   │   └── Drawer.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── EditableText/
│   │   │   │   ├── EditableText.component.jsx
│   │   │   │   ├── EditableText.module.css
│   │   │   │   ├── EditableText.stories.jsx
│   │   │   │   ├── EditableText.test.jsx
│   │   │   │   ├── InlineForm.component.jsx
│   │   │   │   ├── InlineForm.component.test.jsx
│   │   │   │   ├── InlineForm.module.css
│   │   │   │   ├── PlainTextTitle.component.test.jsx
│   │   │   │   ├── PlainTextTitle.component.tsx
│   │   │   │   ├── PlainTextTitle.module.css
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── EditableText.test.js.snap
│   │   │   │   │   ├── EditableText.test.jsx.snap
│   │   │   │   │   ├── InlineForm.component.test.js.snap
│   │   │   │   │   ├── InlineForm.component.test.jsx.snap
│   │   │   │   │   ├── PlainTextTitle.component.test.js.snap
│   │   │   │   │   └── PlainTextTitle.component.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Emphasis/
│   │   │   │   ├── Emphasis.component.jsx
│   │   │   │   ├── Emphasis.module.css
│   │   │   │   ├── Emphasis.stories.jsx
│   │   │   │   ├── Emphasis.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Enumeration/
│   │   │   │   ├── Enumeration.component.jsx
│   │   │   │   ├── Enumeration.module.css
│   │   │   │   ├── Enumeration.propTypes.js
│   │   │   │   ├── Enumeration.stories.jsx
│   │   │   │   ├── Enumeration.stories.module.css
│   │   │   │   ├── Enumeration.test.jsx
│   │   │   │   ├── Header/
│   │   │   │   │   ├── Header.component.jsx
│   │   │   │   │   ├── Header.module.css
│   │   │   │   │   ├── Header.propTypes.js
│   │   │   │   │   ├── Header.test.jsx
│   │   │   │   │   ├── HeaderEnumeration.component.jsx
│   │   │   │   │   ├── HeaderInput.component.jsx
│   │   │   │   │   ├── HeaderInput.test.jsx
│   │   │   │   │   ├── HeaderSelected.component.jsx
│   │   │   │   │   └── headerSelected.test.jsx
│   │   │   │   ├── Items/
│   │   │   │   │   ├── EmptyListPlaceholder.component.jsx
│   │   │   │   │   ├── EmptyListPlaceholder.module.css
│   │   │   │   │   ├── Item/
│   │   │   │   │   │   ├── Item.component.jsx
│   │   │   │   │   │   ├── Item.module.css
│   │   │   │   │   │   ├── Item.propTypes.js
│   │   │   │   │   │   ├── Item.test.jsx
│   │   │   │   │   │   ├── ItemEdit.component.jsx
│   │   │   │   │   │   ├── ItemEdit.propTypes.js
│   │   │   │   │   │   ├── ItemEdit.test.jsx
│   │   │   │   │   │   ├── utils.js
│   │   │   │   │   │   └── utils.test.js
│   │   │   │   │   ├── Items.component.jsx
│   │   │   │   │   ├── Items.module.css
│   │   │   │   │   └── ItemsEnumeration.component.jsx
│   │   │   │   ├── displayModes.js
│   │   │   │   └── index.js
│   │   │   ├── FilterBar/
│   │   │   │   ├── Filter.stories.jsx
│   │   │   │   ├── FilterBar.component.jsx
│   │   │   │   ├── FilterBar.module.css
│   │   │   │   ├── FilterBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── FocusManager/
│   │   │   │   ├── FocusManager.component.jsx
│   │   │   │   ├── FocusManager.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── FormatValue/
│   │   │   │   ├── FormatValue.component.jsx
│   │   │   │   ├── FormatValue.module.css
│   │   │   │   ├── FormatValue.stories.jsx
│   │   │   │   ├── FormatValue.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── FormatValue.test.js.snap
│   │   │   │   │   └── FormatValue.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Gesture/
│   │   │   │   └── index.ts
│   │   │   ├── GridLayout/
│   │   │   │   ├── Dashboard.stories.jsx
│   │   │   │   ├── Grid.component.jsx
│   │   │   │   ├── Grid.component.test.jsx
│   │   │   │   ├── Grid.module.css
│   │   │   │   ├── Tile/
│   │   │   │   │   ├── Body/
│   │   │   │   │   │   ├── TileBody.component.test.tsx
│   │   │   │   │   │   ├── TileBody.component.tsx
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── TileBody.component.test.tsx.snap
│   │   │   │   │   ├── Footer/
│   │   │   │   │   │   ├── TileFooter.component.test.tsx
│   │   │   │   │   │   ├── TileFooter.component.tsx
│   │   │   │   │   │   ├── TileFooter.module.css
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── TileFooter.component.test.tsx.snap
│   │   │   │   │   ├── Header/
│   │   │   │   │   │   ├── TileHeader.component.test.tsx
│   │   │   │   │   │   ├── TileHeader.component.tsx
│   │   │   │   │   │   ├── TileHeader.module.css
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── TileHeader.component.test.tsx.snap
│   │   │   │   │   ├── Skeleton/
│   │   │   │   │   │   ├── SkeletonTile.component.test.tsx
│   │   │   │   │   │   ├── SkeletonTile.component.tsx
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       └── SkeletonTile.component.test.tsx.snap
│   │   │   │   │   ├── Tile.component.test.tsx
│   │   │   │   │   ├── Tile.component.tsx
│   │   │   │   │   ├── Tile.module.css
│   │   │   │   │   ├── context.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── index.js
│   │   │   ├── GuidedTour/
│   │   │   │   ├── GuidedTour.component.jsx
│   │   │   │   ├── GuidedTour.module.css
│   │   │   │   ├── GuidedTour.stories.jsx
│   │   │   │   ├── GuidedTour.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   └── index.js
│   │   │   ├── HeaderBar/
│   │   │   │   ├── HeaderBar.component.jsx
│   │   │   │   ├── HeaderBar.module.css
│   │   │   │   ├── HeaderBar.stories.jsx
│   │   │   │   ├── HeaderBar.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── HeaderBar.test.js.snap
│   │   │   │   │   └── HeaderBar.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   └── primitives/
│   │   │   │       ├── AppNotification.component.jsx
│   │   │   │       ├── CallToAction.component.jsx
│   │   │   │       ├── Environment.component.jsx
│   │   │   │       ├── GenericAction.component.jsx
│   │   │   │       ├── Help.component.jsx
│   │   │   │       ├── Information.component.jsx
│   │   │   │       ├── Intercom.component.jsx
│   │   │   │       ├── Logo.component.jsx
│   │   │   │       ├── Search.component.jsx
│   │   │   │       └── User.component.jsx
│   │   │   ├── HttpError/
│   │   │   │   ├── HttpError.component.jsx
│   │   │   │   ├── HttpError.module.css
│   │   │   │   ├── HttpError.snapshot.test.jsx
│   │   │   │   ├── HttpError.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── HttpError.snapshot.test.js.snap
│   │   │   │   │   └── HttpError.snapshot.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Icon/
│   │   │   │   └── index.ts
│   │   │   ├── IconsProvider/
│   │   │   │   ├── README.md
│   │   │   │   └── index.ts
│   │   │   ├── Inject/
│   │   │   │   ├── Inject.component.tsx
│   │   │   │   ├── Inject.md
│   │   │   │   ├── Inject.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Inject.test.jsx.snap
│   │   │   │   └── index.ts
│   │   │   ├── JSONSchemaRenderer/
│   │   │   │   ├── JSONSchemaRenderer.component.jsx
│   │   │   │   ├── JSONSchemaRenderer.module.css
│   │   │   │   ├── JSONSchemaRenderer.stories.jsx
│   │   │   │   ├── JSONSchemaRenderer.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── JSONSchemaRenderer.test.js.snap
│   │   │   │   │   └── JSONSchemaRenderer.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Layout/
│   │   │   │   ├── AppLayout.stories.jsx
│   │   │   │   ├── Layout.component.jsx
│   │   │   │   ├── Layout.md
│   │   │   │   ├── Layout.module.css
│   │   │   │   ├── Layout.test.jsx
│   │   │   │   ├── OneColumn/
│   │   │   │   │   ├── OneColumn.component.jsx
│   │   │   │   │   ├── OneColumn.module.css
│   │   │   │   │   ├── OneColumn.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── OneColumn.test.js.snap
│   │   │   │   │   │   └── OneColumn.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── SkipLinks/
│   │   │   │   │   ├── SkipLinks.component.tsx
│   │   │   │   │   ├── SkipLinks.module.css
│   │   │   │   │   ├── SkipLinks.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── SkipLinks.test.js.snap
│   │   │   │   │   │   └── SkipLinks.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── TwoColumns/
│   │   │   │   │   ├── TwoColumns.component.jsx
│   │   │   │   │   ├── TwoColumns.module.css
│   │   │   │   │   ├── TwoColumns.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── TwoColumns.test.js.snap
│   │   │   │   │   │   └── TwoColumns.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── Link/
│   │   │   │   └── index.ts
│   │   │   ├── List/
│   │   │   │   ├── List.component.jsx
│   │   │   │   ├── List.md
│   │   │   │   ├── List.module.css
│   │   │   │   ├── List.stories.jsx
│   │   │   │   ├── List.test.jsx
│   │   │   │   ├── ListComposition/
│   │   │   │   │   ├── ColumnChooser/
│   │   │   │   │   │   ├── ColumnChooser.component.jsx
│   │   │   │   │   │   ├── ColumnChooser.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── DisplayMode/
│   │   │   │   │   │   ├── DisplayModeToggle.scss
│   │   │   │   │   │   ├── ListDisplayMode.component.jsx
│   │   │   │   │   │   ├── ListDisplayMode.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── ListDisplayMode.component.test.js.snap
│   │   │   │   │   │   │   └── ListDisplayMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ItemsNumber/
│   │   │   │   │   │   ├── ItemsNumber.component.jsx
│   │   │   │   │   │   ├── ItemsNumber.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── LazyLoadingList/
│   │   │   │   │   │   ├── LazyLoadingList.component.jsx
│   │   │   │   │   │   ├── LazyLoadingList.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── LazyLoadingList.component.test.js.snap
│   │   │   │   │   │   │   └── LazyLoadingList.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── List.module.css
│   │   │   │   │   ├── Manager/
│   │   │   │   │   │   ├── ListManager.component.jsx
│   │   │   │   │   │   ├── ListManager.component.test.jsx
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── useCollectionActions.hook.js
│   │   │   │   │   │   │   ├── useCollectionActions.hook.test.jsx
│   │   │   │   │   │   │   ├── useCollectionFilter.hook.js
│   │   │   │   │   │   │   ├── useCollectionFilter.hook.test.jsx
│   │   │   │   │   │   │   ├── useCollectionSelection.hook.js
│   │   │   │   │   │   │   ├── useCollectionSelection.hook.test.jsx
│   │   │   │   │   │   │   ├── useCollectionSort.hook.js
│   │   │   │   │   │   │   ├── useCollectionSort.hook.test.jsx
│   │   │   │   │   │   │   ├── useColumnsVisibility.hook.js
│   │   │   │   │   │   │   └── useColumnsVisibility.hook.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── SortBy/
│   │   │   │   │   │   ├── SortBy.component.jsx
│   │   │   │   │   │   ├── SortBy.component.test.jsx
│   │   │   │   │   │   ├── SortBy.md
│   │   │   │   │   │   ├── SortBy.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SortBy.component.test.js.snap
│   │   │   │   │   │   │   └── SortBy.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TextFilter/
│   │   │   │   │   │   ├── TextFilter.component.jsx
│   │   │   │   │   │   ├── TextFilter.component.md
│   │   │   │   │   │   ├── TextFilter.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TextFilter.component.test.js.snap
│   │   │   │   │   │   │   └── TextFilter.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toolbar/
│   │   │   │   │   │   ├── ListToolbar.component.jsx
│   │   │   │   │   │   ├── ListToolbar.component.test.jsx
│   │   │   │   │   │   ├── ListToolbar.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── ListToolbar.component.test.js.snap
│   │   │   │   │   │   │   └── ListToolbar.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── VList/
│   │   │   │   │   │   ├── VList.component.jsx
│   │   │   │   │   │   ├── VList.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── collection.js
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── context.js
│   │   │   │   │   ├── context.test.jsx
│   │   │   │   │   ├── doc/
│   │   │   │   │   │   ├── developer-guide.md
│   │   │   │   │   │   └── principle.md
│   │   │   │   │   └── index.js
│   │   │   │   ├── ListComposition.stories.jsx
│   │   │   │   ├── ListToVirtualizedList/
│   │   │   │   │   ├── ListToVirtualizedList.component.jsx
│   │   │   │   │   ├── ListToVirtualizedList.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── Toolbar/
│   │   │   │   │   ├── ColumnChooserButton/
│   │   │   │   │   │   ├── ColumnChooser/
│   │   │   │   │   │   │   ├── ColumnChooser.component.jsx
│   │   │   │   │   │   │   ├── ColumnChooser.component.test.jsx
│   │   │   │   │   │   │   ├── ColumnChooser.module.css
│   │   │   │   │   │   │   ├── ColumnChooser.stories.jsx
│   │   │   │   │   │   │   ├── ColumnChooserBody/
│   │   │   │   │   │   │   │   ├── ColumnChooserBody.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserBody.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserBody.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserBody.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserFooter/
│   │   │   │   │   │   │   │   ├── ColumnChooserFooter.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserFooter.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserFooter.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserFooter.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserHeader/
│   │   │   │   │   │   │   │   ├── ColumnChooserHeader.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserHeader.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserHeader.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserHeader.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserRow/
│   │   │   │   │   │   │   │   ├── ColumnChooserRow.component.jsx
│   │   │   │   │   │   │   │   ├── ColumnChooserRow.component.test.jsx
│   │   │   │   │   │   │   │   ├── RowCheckbox/
│   │   │   │   │   │   │   │   │   ├── RowCheckbox.component.jsx
│   │   │   │   │   │   │   │   │   ├── RowCheckbox.component.test.jsx
│   │   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   │   ├── RowCheckbox.component.test.js.snap
│   │   │   │   │   │   │   │   │   │   └── RowCheckbox.component.test.jsx.snap
│   │   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   │   ├── RowLabel/
│   │   │   │   │   │   │   │   │   ├── RowLabel.component.jsx
│   │   │   │   │   │   │   │   │   ├── RowLabel.component.test.jsx
│   │   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   │   ├── RowLabel.component.test.js.snap
│   │   │   │   │   │   │   │   │   │   └── RowLabel.component.test.jsx.snap
│   │   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── ColumnChooserRow.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── ColumnChooserRow.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── ColumnChooserTable/
│   │   │   │   │   │   │   │   ├── ColumnChooserTable.component.jsx
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox/
│   │   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox.component.jsx
│   │   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox.component.test.jsx
│   │   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   │   ├── SelectAllColumnsCheckbox.component.test.js.snap
│   │   │   │   │   │   │   │   │   └── SelectAllColumnsCheckbox.component.test.jsx.snap
│   │   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── ColumnChooser.component.test.js.snap
│   │   │   │   │   │   │   │   └── ColumnChooser.component.test.jsx.snap
│   │   │   │   │   │   │   ├── columnChooser.context.js
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── ColumnChooserButton.component.jsx
│   │   │   │   │   │   ├── ColumnChooserButton.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── columnChooser.propTypes.js
│   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   ├── columnChooserManager.hook.js
│   │   │   │   │   │   │   ├── columnChooserManager.hook.test.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── service/
│   │   │   │   │   │       ├── columnChooser.utils.js
│   │   │   │   │   │       ├── columnChooser.utils.test.js
│   │   │   │   │   │       └── index.js
│   │   │   │   │   ├── DisplayModeToggle/
│   │   │   │   │   │   ├── DisplayModeToggle.component.jsx
│   │   │   │   │   │   ├── DisplayModeToggle.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── DisplayModeToggle.test.js.snap
│   │   │   │   │   │   │   └── DisplayModeToggle.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ItemsNumber/
│   │   │   │   │   │   ├── ItemsNumber.component.jsx
│   │   │   │   │   │   ├── ItemsNumber.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Label/
│   │   │   │   │   │   ├── Label.component.jsx
│   │   │   │   │   │   ├── Label.snapshot.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Label.snapshot.test.js.snap
│   │   │   │   │   │   │   └── Label.snapshot.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Pagination/
│   │   │   │   │   │   ├── Pagination.component.jsx
│   │   │   │   │   │   ├── Pagination.module.css
│   │   │   │   │   │   ├── Pagination.snapshot.test.jsx
│   │   │   │   │   │   ├── Pagination.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Pagination.snapshot.test.js.snap
│   │   │   │   │   │   │   └── Pagination.snapshot.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── SelectAll/
│   │   │   │   │   │   ├── SelectAll.component.jsx
│   │   │   │   │   │   ├── SelectAll.component.test.jsx
│   │   │   │   │   │   ├── SelectAll.module.css
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── SelectSortBy/
│   │   │   │   │   │   ├── SelectSortBy.component.jsx
│   │   │   │   │   │   ├── SelectSortBy.module.css
│   │   │   │   │   │   ├── SelectSortBy.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SelectSortBy.test.js.snap
│   │   │   │   │   │   │   └── SelectSortBy.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toolbar.component.jsx
│   │   │   │   │   ├── Toolbar.module.css
│   │   │   │   │   ├── Toolbar.snapshot.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Toolbar.snapshot.test.js.snap
│   │   │   │   │   │   └── Toolbar.snapshot.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── List.test.js.snap
│   │   │   │   │   └── List.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ListView/
│   │   │   │   ├── Header/
│   │   │   │   │   ├── Header.component.jsx
│   │   │   │   │   ├── Header.module.css
│   │   │   │   │   ├── Header.test.jsx
│   │   │   │   │   ├── HeaderInput.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Header.test.js.snap
│   │   │   │   │   │   └── Header.test.jsx.snap
│   │   │   │   │   └── headerInput.test.jsx
│   │   │   │   ├── Items/
│   │   │   │   │   ├── Item/
│   │   │   │   │   │   ├── Item.component.jsx
│   │   │   │   │   │   ├── Item.propTypes.js
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── item.snapshot.test.js.snap
│   │   │   │   │   │   │   └── item.snapshot.test.jsx.snap
│   │   │   │   │   │   └── item.snapshot.test.jsx
│   │   │   │   │   ├── Items.component.jsx
│   │   │   │   │   ├── Items.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── items.test.js.snap
│   │   │   │   │   │   └── items.test.jsx.snap
│   │   │   │   │   └── items.test.jsx
│   │   │   │   ├── ListView.component.jsx
│   │   │   │   ├── ListView.module.css
│   │   │   │   ├── ListView.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── Loader/
│   │   │   │   ├── Loader.component.jsx
│   │   │   │   ├── Loader.md
│   │   │   │   ├── Loader.module.css
│   │   │   │   ├── Loader.stories.jsx
│   │   │   │   ├── Loader.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Loader.test.js.snap
│   │   │   │   │   └── Loader.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── MultiSelect/
│   │   │   │   ├── Dropdown.container.jsx
│   │   │   │   ├── Dropdown.module.css
│   │   │   │   ├── ItemOption.component.jsx
│   │   │   │   ├── ItemOption.module.css
│   │   │   │   ├── ItemView.component.jsx
│   │   │   │   ├── MultiSelect.container.jsx
│   │   │   │   ├── MultiSelect.module.css
│   │   │   │   ├── MultiSelect.stories.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── constants.js
│   │   │   │   └── index.js
│   │   │   ├── Notification/
│   │   │   │   ├── Notification.component.jsx
│   │   │   │   ├── Notification.module.css
│   │   │   │   ├── Notification.stories.jsx
│   │   │   │   ├── Notification.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ObjectViewer/
│   │   │   │   ├── DataTreeViewer.stories.jsx
│   │   │   │   ├── JSONLike/
│   │   │   │   │   ├── JSONLike.component.jsx
│   │   │   │   │   ├── JSONLike.module.css
│   │   │   │   │   ├── JSONLike.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── List/
│   │   │   │   │   ├── List.component.jsx
│   │   │   │   │   ├── List.module.css
│   │   │   │   │   ├── List.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── List.test.js.snap
│   │   │   │   │   │   └── List.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ObjectViewer.component.jsx
│   │   │   │   ├── ObjectViewer.test.jsx
│   │   │   │   ├── Table/
│   │   │   │   │   ├── Table.component.jsx
│   │   │   │   │   ├── Table.module.css
│   │   │   │   │   ├── Table.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Table.test.js.snap
│   │   │   │   │   │   └── Table.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── convertDate.js
│   │   │   │   ├── index.js
│   │   │   │   ├── toflat.js
│   │   │   │   └── toflat.test.js
│   │   │   ├── OverlayTrigger/
│   │   │   │   ├── OverlayTrigger.component.jsx
│   │   │   │   ├── OverlayTrigger.forked.jsx
│   │   │   │   ├── OverlayTrigger.module.css
│   │   │   │   ├── OverlayTrigger.test.jsx
│   │   │   │   ├── index.js
│   │   │   │   ├── overlay.js
│   │   │   │   └── overlay.test.js
│   │   │   ├── PieChart/
│   │   │   │   ├── PieChart.component.jsx
│   │   │   │   ├── PieChart.module.css
│   │   │   │   ├── PieChart.stories.jsx
│   │   │   │   ├── PieChart.test.jsx
│   │   │   │   ├── PieChartButton.component.jsx
│   │   │   │   ├── PieChartButton.test.jsx
│   │   │   │   ├── PieChartIcon.component.jsx
│   │   │   │   ├── PieChartIcon.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── PieChart.test.jsx.snap
│   │   │   │   │   ├── PieChartButton.test.jsx.snap
│   │   │   │   │   ├── PieChartIcon.test.js.snap
│   │   │   │   │   └── PieChartIcon.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Progress/
│   │   │   │   ├── Progress.component.jsx
│   │   │   │   ├── Progress.module.css
│   │   │   │   ├── Progress.test.jsx
│   │   │   │   ├── ProgressBar.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Progress.test.js.snap
│   │   │   │   │   └── Progress.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── QualityBar/
│   │   │   │   ├── QualityBar.component.tsx
│   │   │   │   ├── QualityBar.stories.jsx
│   │   │   │   └── index.ts
│   │   │   ├── RadarChart/
│   │   │   │   ├── RadarChart.component.jsx
│   │   │   │   ├── RadarChart.module.css
│   │   │   │   ├── RadarChart.stories.jsx
│   │   │   │   ├── RadarChart.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── RadarChart.test.js.snap
│   │   │   │   │   └── RadarChart.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── RatioBar/
│   │   │   │   ├── RatioBar.component.tsx
│   │   │   │   ├── RatioBar.stories.jsx
│   │   │   │   └── index.ts
│   │   │   ├── ResourceList/
│   │   │   │   ├── Resource/
│   │   │   │   │   ├── Resource.component.jsx
│   │   │   │   │   ├── Resource.module.css
│   │   │   │   │   ├── Resource.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Resource.test.js.snap
│   │   │   │   │   │   └── Resource.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ResourceList.component.jsx
│   │   │   │   ├── ResourceList.module.css
│   │   │   │   ├── ResourceList.propTypes.js
│   │   │   │   ├── ResourceList.stories.jsx
│   │   │   │   ├── ResourceList.test.jsx
│   │   │   │   ├── Toolbar/
│   │   │   │   │   ├── NameFilter/
│   │   │   │   │   │   ├── NameFilter.component.jsx
│   │   │   │   │   │   ├── NameFilter.module.css
│   │   │   │   │   │   ├── NameFilter.snap.test.jsx
│   │   │   │   │   │   ├── NameFilter.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── NameFilter.snap.test.js.snap
│   │   │   │   │   │   │   └── NameFilter.snap.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── SortOptions/
│   │   │   │   │   │   ├── OrderChooser/
│   │   │   │   │   │   │   ├── OrderChooser.component.jsx
│   │   │   │   │   │   │   ├── OrderChooser.module.css
│   │   │   │   │   │   │   ├── OrderChooser.test.jsx
│   │   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   │   ├── OrderChooser.test.js.snap
│   │   │   │   │   │   │   │   └── OrderChooser.test.jsx.snap
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── SortOptions.component.jsx
│   │   │   │   │   │   ├── SortOptions.module.css
│   │   │   │   │   │   ├── SortOptions.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── SortOptions.test.js.snap
│   │   │   │   │   │   │   └── SortOptions.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── StateFilter/
│   │   │   │   │   │   ├── StateFilter.component.jsx
│   │   │   │   │   │   ├── StateFilter.module.css
│   │   │   │   │   │   ├── StateFilter.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── StateFilter.test.js.snap
│   │   │   │   │   │   │   └── StateFilter.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toolbar.component.jsx
│   │   │   │   │   ├── Toolbar.module.css
│   │   │   │   │   ├── Toolbar.snap.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Toolbar.snap.test.js.snap
│   │   │   │   │   │   └── Toolbar.snap.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── ResourcePicker/
│   │   │   │   ├── ResourcePicker.component.jsx
│   │   │   │   ├── ResourcePicker.module.css
│   │   │   │   ├── ResourcePicker.stories.jsx
│   │   │   │   ├── ResourcePicker.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ResourcePicker.test.js.snap
│   │   │   │   │   └── ResourcePicker.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Rich/
│   │   │   │   ├── Error/
│   │   │   │   │   ├── RichError.component.jsx
│   │   │   │   │   ├── RichError.component.test.jsx
│   │   │   │   │   ├── RichError.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RichError.component.test.js.snap
│   │   │   │   │   │   └── RichError.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── HeaderTitle/
│   │   │   │   │   ├── HeaderTitle.component.jsx
│   │   │   │   │   ├── HeaderTitle.component.test.jsx
│   │   │   │   │   ├── HeaderTitle.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderTitle.component.test.js.snap
│   │   │   │   │   │   └── HeaderTitle.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Layout/
│   │   │   │   │   ├── RichLayout.component.jsx
│   │   │   │   │   ├── RichLayout.module.css
│   │   │   │   │   ├── RichLayout.stories.jsx
│   │   │   │   │   ├── RichLayout.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RichLayout.test.js.snap
│   │   │   │   │   │   └── RichLayout.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   └── index.js
│   │   │   ├── SidePanel/
│   │   │   │   ├── SidePanel.component.jsx
│   │   │   │   ├── SidePanel.module.css
│   │   │   │   ├── SidePanel.stories.jsx
│   │   │   │   ├── SidePanel.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SidePanel.test.js.snap
│   │   │   │   │   └── SidePanel.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Skeleton/
│   │   │   │   ├── Skeleton.component.tsx
│   │   │   │   ├── Skeleton.md
│   │   │   │   ├── Skeleton.module.css
│   │   │   │   ├── Skeleton.stories.jsx
│   │   │   │   ├── Skeleton.test.jsx
│   │   │   │   └── index.ts
│   │   │   ├── Slider/
│   │   │   │   ├── Slider.component.tsx
│   │   │   │   ├── Slider.module.css
│   │   │   │   ├── Slider.stories.jsx
│   │   │   │   ├── Slider.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Slider.test.tsx.snap
│   │   │   │   └── index.ts
│   │   │   ├── Status/
│   │   │   │   ├── Status.component.jsx
│   │   │   │   ├── Status.module.css
│   │   │   │   ├── Status.stories.jsx
│   │   │   │   ├── Status.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Status.test.js.snap
│   │   │   │   │   └── Status.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Stepper/
│   │   │   │   ├── Stepper.component.jsx
│   │   │   │   ├── Stepper.component.module.css
│   │   │   │   ├── Stepper.component.test.jsx
│   │   │   │   ├── Stepper.stories.jsx
│   │   │   │   ├── StepperTransition.component.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Stepper.component.test.js.snap
│   │   │   │   │   └── Stepper.component.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── SubHeaderBar/
│   │   │   │   ├── SubHeader.stories.jsx
│   │   │   │   ├── SubHeaderBar.component.jsx
│   │   │   │   ├── SubHeaderBar.md
│   │   │   │   ├── SubHeaderBar.module.css
│   │   │   │   ├── SubHeaderBar.test.jsx
│   │   │   │   ├── TitleSubHeader/
│   │   │   │   │   ├── SubTitle.component.jsx
│   │   │   │   │   ├── SubTitle.test.jsx
│   │   │   │   │   ├── TitleSubHeader.component.jsx
│   │   │   │   │   ├── TitleSubHeader.module.css
│   │   │   │   │   ├── TitleSubHeader.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── SubTitle.test.js.snap
│   │   │   │   │   │   ├── SubTitle.test.jsx.snap
│   │   │   │   │   │   ├── TitleSubHeader.test.js.snap
│   │   │   │   │   │   └── TitleSubHeader.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SubHeaderBar.test.js.snap
│   │   │   │   │   └── SubHeaderBar.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── TabBar/
│   │   │   │   ├── TabBar.component.jsx
│   │   │   │   ├── TabBar.module.css
│   │   │   │   ├── TabBar.test.jsx
│   │   │   │   ├── Tabs.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── Tag/
│   │   │   │   ├── Tag.component.jsx
│   │   │   │   ├── Tag.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Tag.test.js.snap
│   │   │   │   │   └── Tag.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Toggle/
│   │   │   │   ├── LabelToggle/
│   │   │   │   │   ├── LabelToggle.component.jsx
│   │   │   │   │   ├── LabelToggle.module.css
│   │   │   │   │   ├── LabelToggleComponent.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── LabelToggleComponent.test.js.snap
│   │   │   │   │   │   └── LabelToggleComponent.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Toggle.component.jsx
│   │   │   │   ├── Toggle.stories.jsx
│   │   │   │   ├── Toggle.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Toggle.test.js.snap
│   │   │   │   │   └── Toggle.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── TooltipTrigger/
│   │   │   │   ├── Tooltip.stories.jsx
│   │   │   │   ├── TooltipTrigger.component.jsx
│   │   │   │   ├── TooltipTrigger.hook.js
│   │   │   │   ├── TooltipTrigger.module.css
│   │   │   │   ├── TooltipTrigger.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── TreeView/
│   │   │   │   ├── FolderTreeView.stories.jsx
│   │   │   │   ├── TreeView.component.jsx
│   │   │   │   ├── TreeView.module.css
│   │   │   │   ├── TreeView.test.jsx
│   │   │   │   ├── TreeViewItem/
│   │   │   │   │   ├── TreeViewItem.component.jsx
│   │   │   │   │   ├── TreeViewItem.module.css
│   │   │   │   │   ├── TreeViewItem.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── TreeViewItem.test.js.snap
│   │   │   │   │   │   └── TreeViewItem.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── TreeView.test.js.snap
│   │   │   │   │   └── TreeView.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Typeahead/
│   │   │   │   ├── Typeahead.component.jsx
│   │   │   │   ├── Typeahead.component.renderers.jsx
│   │   │   │   ├── Typeahead.module.css
│   │   │   │   ├── Typeahead.snapshot.test.jsx
│   │   │   │   ├── Typeahead.stories.jsx
│   │   │   │   ├── Typeahead.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Typeahead.snapshot.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── VirtualizedList/
│   │   │   │   ├── CellActions/
│   │   │   │   │   ├── ActionsColumn.component.jsx
│   │   │   │   │   ├── CellActions.component.jsx
│   │   │   │   │   ├── CellActions.test.jsx
│   │   │   │   │   ├── RowLargeCellActions.module.css
│   │   │   │   │   ├── RowTableCellActions.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellActions.test.js.snap
│   │   │   │   │   │   └── CellActions.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellBadge/
│   │   │   │   │   ├── BadgeColumn.component.jsx
│   │   │   │   │   ├── CellBadge.component.jsx
│   │   │   │   │   ├── CellBadge.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellBadge.test.js.snap
│   │   │   │   │   │   └── CellBadge.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellBoolean/
│   │   │   │   │   ├── BooleanColumn.component.jsx
│   │   │   │   │   ├── CellBoolean.component.jsx
│   │   │   │   │   ├── CellBoolean.module.css
│   │   │   │   │   ├── CellBoolean.test.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellCheckbox/
│   │   │   │   │   ├── CellCheckbox.component.jsx
│   │   │   │   │   ├── CellCheckbox.module.css
│   │   │   │   │   ├── CellCheckbox.test.jsx
│   │   │   │   │   ├── CheckboxColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellCheckbox.test.js.snap
│   │   │   │   │   │   └── CellCheckbox.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellDatetime/
│   │   │   │   │   ├── CellDatetime.component.jsx
│   │   │   │   │   ├── CellDatetime.module.css
│   │   │   │   │   ├── CellDatetime.test.jsx
│   │   │   │   │   ├── DatetimeColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── CellDatetime.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellIconText/
│   │   │   │   │   ├── CellIconText.component.jsx
│   │   │   │   │   ├── CellIconText.module.css
│   │   │   │   │   ├── CellIconText.test.jsx
│   │   │   │   │   ├── IconTextColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── CellIconText.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellLabel/
│   │   │   │   │   ├── CellLabel.component.jsx
│   │   │   │   │   ├── CellLabel.test.jsx
│   │   │   │   │   ├── LabelColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellLabel.test.js.snap
│   │   │   │   │   │   └── CellLabel.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellLink/
│   │   │   │   │   ├── CellLink.component.jsx
│   │   │   │   │   ├── CellLink.module.css
│   │   │   │   │   ├── CellLink.test.jsx
│   │   │   │   │   ├── LinkColumn.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellMappedData/
│   │   │   │   │   ├── CellMappedData.component.jsx
│   │   │   │   │   ├── CellMappedData.component.test.jsx
│   │   │   │   │   ├── MappedDataColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellMappedData.component.test.js.snap
│   │   │   │   │   │   └── CellMappedData.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellQualityBar/
│   │   │   │   │   ├── CellQualityBar.component.jsx
│   │   │   │   │   ├── CellQualityBar.test.jsx
│   │   │   │   │   ├── QualityBarColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellQualityBar.test.js.snap
│   │   │   │   │   │   └── CellQualityBar.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellTextIcon/
│   │   │   │   │   ├── CellWithIcon.component.jsx
│   │   │   │   │   ├── CellWithIcon.module.css
│   │   │   │   │   ├── CellWithIcon.test.jsx
│   │   │   │   │   ├── TextIconColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellWithIcon.test.js.snap
│   │   │   │   │   │   └── CellWithIcon.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── CellTitle/
│   │   │   │   │   ├── CellTitle.component.jsx
│   │   │   │   │   ├── CellTitle.module.css
│   │   │   │   │   ├── CellTitle.test.jsx
│   │   │   │   │   ├── CellTitleActions.component.jsx
│   │   │   │   │   ├── CellTitleActions.module.css
│   │   │   │   │   ├── CellTitleActions.test.jsx
│   │   │   │   │   ├── CellTitleInput.component.jsx
│   │   │   │   │   ├── CellTitleInput.test.jsx
│   │   │   │   │   ├── CellTitleSelector.component.jsx
│   │   │   │   │   ├── CellTitleSelector.test.jsx
│   │   │   │   │   ├── TitleColumn.component.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── CellTitle.test.jsx.snap
│   │   │   │   │   │   ├── CellTitleInput.test.js.snap
│   │   │   │   │   │   ├── CellTitleInput.test.jsx.snap
│   │   │   │   │   │   ├── CellTitleSelector.test.js.snap
│   │   │   │   │   │   └── CellTitleSelector.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Content.component.jsx
│   │   │   │   ├── Content.component.test.jsx
│   │   │   │   ├── HeaderCheckbox/
│   │   │   │   │   ├── HeaderCheckbox.component.jsx
│   │   │   │   │   ├── HeaderCheckbox.module.css
│   │   │   │   │   ├── HeaderCheckbox.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderCheckbox.test.js.snap
│   │   │   │   │   │   └── HeaderCheckbox.test.jsx.snap
│   │   │   │   │   └── index.jsx
│   │   │   │   ├── HeaderIcon/
│   │   │   │   │   ├── HeaderIcon.component.jsx
│   │   │   │   │   ├── HeaderIcon.component.test.jsx
│   │   │   │   │   ├── HeaderIcon.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderIcon.component.test.js.snap
│   │   │   │   │   │   └── HeaderIcon.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── HeaderResizable/
│   │   │   │   │   ├── HeaderResizable.component.jsx
│   │   │   │   │   ├── HeaderResizable.component.test.jsx
│   │   │   │   │   ├── HeaderResizable.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── HeaderResizable.component.test.js.snap
│   │   │   │   │   │   └── HeaderResizable.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ListGrid/
│   │   │   │   │   ├── ListGrid.component.jsx
│   │   │   │   │   ├── ListGrid.module.css
│   │   │   │   │   ├── ListGrid.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── ListGrid.test.js.snap
│   │   │   │   │   │   └── ListGrid.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── ListTable/
│   │   │   │   │   ├── ListTable.component.jsx
│   │   │   │   │   ├── ListTable.module.css
│   │   │   │   │   ├── ListTable.test.jsx
│   │   │   │   │   ├── RowThemes.js
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── ListTable.test.js.snap
│   │   │   │   │   │   └── ListTable.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── NoRows/
│   │   │   │   │   ├── NoRows.component.jsx
│   │   │   │   │   ├── NoRows.module.css
│   │   │   │   │   ├── NoRows.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── NoRows.test.js.snap
│   │   │   │   │   │   └── NoRows.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── PropTypes.js
│   │   │   │   ├── README.md
│   │   │   │   ├── RendererSelector.component.jsx
│   │   │   │   ├── RendererSelector.test.jsx
│   │   │   │   ├── RowCollapsiblePanel/
│   │   │   │   │   ├── RowCollapsiblePanel.component.jsx
│   │   │   │   │   ├── RowCollapsiblePanel.module.css
│   │   │   │   │   ├── RowCollapsiblePanel.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RowCollapsiblePanel.test.js.snap
│   │   │   │   │   │   └── RowCollapsiblePanel.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── RowLarge/
│   │   │   │   │   ├── RowLarge.component.jsx
│   │   │   │   │   ├── RowLarge.module.css
│   │   │   │   │   ├── RowLarge.test.jsx
│   │   │   │   │   ├── RowThemes.js
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RowLarge.test.js.snap
│   │   │   │   │   │   └── RowLarge.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── RowSelection/
│   │   │   │   │   ├── RowSelection.component.jsx
│   │   │   │   │   ├── RowSelection.module.css
│   │   │   │   │   ├── RowSelection.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── RowSelection.test.js.snap
│   │   │   │   │   │   └── RowSelection.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── VirtualizedList.component.jsx
│   │   │   │   ├── VirtualizedList.module.css
│   │   │   │   ├── VirtualizedList.stories.jsx
│   │   │   │   ├── VirtualizedList.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Content.component.test.js.snap
│   │   │   │   │   ├── Content.component.test.jsx.snap
│   │   │   │   │   ├── RendererSelector.test.js.snap
│   │   │   │   │   ├── RendererSelector.test.jsx.snap
│   │   │   │   │   └── VirtualizedList.test.jsx.snap
│   │   │   │   ├── collection.js
│   │   │   │   ├── event/
│   │   │   │   │   ├── rowclick.js
│   │   │   │   │   └── rowclick.test.js
│   │   │   │   ├── index.js
│   │   │   │   ├── utils/
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── gridrow.test.jsx.snap
│   │   │   │   │   │   ├── tablerow.test.js.snap
│   │   │   │   │   │   └── tablerow.test.jsx.snap
│   │   │   │   │   ├── constants.js
│   │   │   │   │   ├── dictionary.js
│   │   │   │   │   ├── gridrow.js
│   │   │   │   │   ├── gridrow.test.jsx
│   │   │   │   │   ├── resizable.js
│   │   │   │   │   ├── resizable.test.js
│   │   │   │   │   ├── tablerow.jsx
│   │   │   │   │   └── tablerow.test.jsx
│   │   │   │   └── virtualizedListContext.jsx
│   │   │   ├── WithDrawer/
│   │   │   │   ├── WithDrawer.component.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── withDrawer.test.js.snap
│   │   │   │   │   └── withDrawer.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   ├── withDrawer.module.css
│   │   │   │   └── withDrawer.test.jsx
│   │   │   ├── constants.js
│   │   │   ├── i18n/
│   │   │   │   ├── DateFnsLocale/
│   │   │   │   │   ├── formatters.js
│   │   │   │   │   ├── locale.js
│   │   │   │   │   └── locale.test.js
│   │   │   │   └── index.js
│   │   │   ├── index.js
│   │   │   ├── polyfills/
│   │   │   │   └── element-closest.js
│   │   │   ├── test-setup.js
│   │   │   ├── theme.test.ts
│   │   │   ├── theme.ts
│   │   │   ├── translate.js
│   │   │   ├── translate.test.js
│   │   │   ├── utils/
│   │   │   │   ├── getPropsFrom.js
│   │   │   │   ├── getPropsFrom.test.js
│   │   │   │   ├── getTabBarBadgeLabel.js
│   │   │   │   └── getTabBarBadgeLabel.test.js
│   │   │   ├── wrap.test.tsx
│   │   │   └── wrap.tsx
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── talend-scripts.json
│   │   ├── test/
│   │   │   └── storageMock.js
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── containers/
│   │   ├── .babelrc.json
│   │   ├── .editorconfig
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .storybook/
│   │   │   ├── cmf.jsx
│   │   │   ├── cmfModule/
│   │   │   │   ├── actionCreators.js
│   │   │   │   ├── components.js
│   │   │   │   ├── expressions.js
│   │   │   │   ├── index.js
│   │   │   │   ├── reducers.js
│   │   │   │   ├── registry.js
│   │   │   │   ├── sagas.js
│   │   │   │   └── settings.js
│   │   │   ├── main.mjs
│   │   │   ├── preview-head.html
│   │   │   └── preview.jsx
│   │   ├── 6.0 - breaking changes.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── docs.json
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── AboutDialog/
│   │   │   │   ├── AboutDialog.connect.js
│   │   │   │   ├── AboutDialog.constant.js
│   │   │   │   ├── AboutDialog.container.jsx
│   │   │   │   ├── AboutDialog.sagas.js
│   │   │   │   ├── AboutDialog.sagas.test.jsx
│   │   │   │   ├── AboutDialog.stories.jsx
│   │   │   │   ├── AboutDialog.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Action/
│   │   │   │   ├── Action.connect.js
│   │   │   │   ├── Action.stories.jsx
│   │   │   │   ├── Action.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Action.test.js.snap
│   │   │   │   │   └── Action.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionBar/
│   │   │   │   ├── ActionBar.connect.js
│   │   │   │   ├── ActionBar.stories.jsx
│   │   │   │   ├── ActionBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ActionButton/
│   │   │   │   ├── ActionButton.connect.jsx
│   │   │   │   ├── ActionButton.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionButton.test.js.snap
│   │   │   │   │   └── ActionButton.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionDropdown/
│   │   │   │   ├── ActionDropdown.connect.jsx
│   │   │   │   ├── ActionDropdown.connect.md
│   │   │   │   ├── ActionDropdown.stories.jsx
│   │   │   │   ├── ActionDropdown.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionDropdown.test.js.snap
│   │   │   │   │   └── ActionDropdown.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionFile/
│   │   │   │   ├── ActionFile.connect.jsx
│   │   │   │   ├── ActionFile.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionFile.test.js.snap
│   │   │   │   │   └── ActionFile.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionIconToggle/
│   │   │   │   ├── ActionIconToggle.connect.jsx
│   │   │   │   ├── ActionIconToggle.connect.md
│   │   │   │   ├── ActionIconToggle.stories.jsx
│   │   │   │   ├── ActionIconToggle.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionIconToggle.test.js.snap
│   │   │   │   │   └── ActionIconToggle.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ActionSplitDropdown/
│   │   │   │   ├── ActionSplitDropdown.connect.jsx
│   │   │   │   ├── ActionSplitDropdown.stories.jsx
│   │   │   │   ├── ActionSplitDropdown.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ActionSplitDropdown.test.js.snap
│   │   │   │   │   └── ActionSplitDropdown.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Actions/
│   │   │   │   ├── Actions.connect.js
│   │   │   │   ├── Actions.stories.jsx
│   │   │   │   ├── Actions.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Actions.test.js.snap
│   │   │   │   │   └── Actions.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── AppLoader/
│   │   │   │   ├── AppLoader.connect.jsx
│   │   │   │   ├── AppLoader.connect.test.jsx
│   │   │   │   ├── AppLoader.md
│   │   │   │   ├── AppLoader.saga.js
│   │   │   │   ├── AppLoader.saga.test.jsx
│   │   │   │   ├── AppLoader.stories.jsx
│   │   │   │   └── index.js
│   │   │   ├── Badge/
│   │   │   │   ├── Badge.component.js
│   │   │   │   ├── Badge.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── Breadcrumbs/
│   │   │   │   ├── Breadcrumbs.connect.jsx
│   │   │   │   ├── Breadcrumbs.stories.jsx
│   │   │   │   ├── Breadcrumbs.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── ComponentForm/
│   │   │   │   ├── ComponentForm.actions.js
│   │   │   │   ├── ComponentForm.actions.test.jsx
│   │   │   │   ├── ComponentForm.component.jsx
│   │   │   │   ├── ComponentForm.md
│   │   │   │   ├── ComponentForm.puml
│   │   │   │   ├── ComponentForm.saga.test.jsx
│   │   │   │   ├── ComponentForm.sagas.js
│   │   │   │   ├── ComponentForm.selectors.js
│   │   │   │   ├── ComponentForm.selectors.test.jsx
│   │   │   │   ├── ComponentForm.test.jsx
│   │   │   │   ├── ComponentForm.test.schema.json
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ComponentForm.test.js.snap
│   │   │   │   │   └── ComponentForm.test.jsx.snap
│   │   │   │   ├── fields/
│   │   │   │   │   ├── MultiSelect/
│   │   │   │   │   │   ├── MultiSelect.component.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   └── TextMode.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── NameResolver/
│   │   │   │   │   │   ├── NameResolver.component.jsx
│   │   │   │   │   │   ├── NameResolver.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── index.js
│   │   │   │   └── kit/
│   │   │   │       ├── createTriggers.js
│   │   │   │       ├── createTriggers.test.jsx
│   │   │   │       ├── defaultRegistry.js
│   │   │   │       ├── defaultRegistry.md
│   │   │   │       ├── defaultRegistry.test.jsx
│   │   │   │       ├── flatten.js
│   │   │   │       ├── flatten.test.jsx
│   │   │   │       └── index.js
│   │   │   ├── ConfirmDialog/
│   │   │   │   ├── ConfirmDialog.connect.js
│   │   │   │   ├── ConfirmDialog.container.jsx
│   │   │   │   ├── ConfirmDialog.stories.jsx
│   │   │   │   ├── ConfirmDialog.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── ConfirmDialog.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   └── showHideConfirmDialog.js
│   │   │   ├── DeleteResource/
│   │   │   │   ├── DeleteResource.connect.js
│   │   │   │   ├── DeleteResource.container.jsx
│   │   │   │   ├── DeleteResource.stories.jsx
│   │   │   │   ├── DeleteResource.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── DeleteResource.test.js.snap
│   │   │   │   │   └── DeleteResource.test.jsx.snap
│   │   │   │   ├── actions.js
│   │   │   │   ├── actions.test.jsx
│   │   │   │   ├── constants.js
│   │   │   │   ├── index.js
│   │   │   │   ├── sagas.js
│   │   │   │   └── sagas.test.jsx
│   │   │   ├── EditableText/
│   │   │   │   ├── EditableText.connect.js
│   │   │   │   ├── EditableText.container.jsx
│   │   │   │   ├── EditableText.selectors.js
│   │   │   │   ├── EditableText.stories.jsx
│   │   │   │   ├── EditableText.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── EditableText.test.js.snap
│   │   │   │   │   └── EditableText.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── FilterBar/
│   │   │   │   ├── FilterBar.connect.js
│   │   │   │   ├── FilterBar.container.jsx
│   │   │   │   ├── FilterBar.selectors.js
│   │   │   │   ├── FilterBar.stories.jsx
│   │   │   │   ├── FilterBar.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── FilterBar.test.js.snap
│   │   │   │   │   └── FilterBar.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Form/
│   │   │   │   ├── Form.connect.js
│   │   │   │   ├── Form.container.jsx
│   │   │   │   ├── Form.md
│   │   │   │   ├── Form.stories.jsx
│   │   │   │   ├── Form.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Form.test.js.snap
│   │   │   │   │   └── Form.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── GuidedTour/
│   │   │   │   ├── GuidedTour.connect.js
│   │   │   │   ├── GuidedTour.constants.js
│   │   │   │   ├── GuidedTour.container.jsx
│   │   │   │   ├── GuidedTour.sagas.js
│   │   │   │   ├── GuidedTour.sagas.test.jsx
│   │   │   │   ├── GuidedTour.stories.jsx
│   │   │   │   ├── GuidedTour.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── GuidedTour.test.js.snap
│   │   │   │   │   └── GuidedTour.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── HeaderBar/
│   │   │   │   ├── HeaderBar.actions.js
│   │   │   │   ├── HeaderBar.connect.js
│   │   │   │   ├── HeaderBar.constant.js
│   │   │   │   ├── HeaderBar.container.jsx
│   │   │   │   ├── HeaderBar.md
│   │   │   │   ├── HeaderBar.sagas.js
│   │   │   │   ├── HeaderBar.sagas.test.jsx
│   │   │   │   ├── HeaderBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── HomeListView/
│   │   │   │   ├── HomeListView.component.jsx
│   │   │   │   ├── HomeListView.component.test.jsx
│   │   │   │   ├── HomeListView.connect.js
│   │   │   │   ├── HomeListView.connect.test.jsx
│   │   │   │   ├── HomeListView.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── HomeListView.connect.test.js.snap
│   │   │   │   │   └── HomeListView.connect.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── List/
│   │   │   │   ├── List.connect.js
│   │   │   │   ├── List.constant.js
│   │   │   │   ├── List.container.jsx
│   │   │   │   ├── List.md
│   │   │   │   ├── List.sagas.js
│   │   │   │   ├── List.sagas.test.jsx
│   │   │   │   ├── List.stories.jsx
│   │   │   │   ├── List.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── List.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   ├── selector.js
│   │   │   │   └── selector.test.jsx
│   │   │   ├── Notification/
│   │   │   │   ├── Notification.actions.js
│   │   │   │   ├── Notification.connect.js
│   │   │   │   ├── Notification.constants.js
│   │   │   │   ├── Notification.container.jsx
│   │   │   │   ├── Notification.sagas.js
│   │   │   │   ├── Notification.sagas.test.jsx
│   │   │   │   ├── Notification.stories.jsx
│   │   │   │   ├── Notification.test.jsx
│   │   │   │   ├── README.md
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   └── Notification.test.jsx.snap
│   │   │   │   ├── clearNotifications.js
│   │   │   │   ├── index.js
│   │   │   │   └── pushNotification.js
│   │   │   ├── ObjectViewer/
│   │   │   │   ├── ObjectViewer.connect.js
│   │   │   │   ├── ObjectViewer.container.jsx
│   │   │   │   ├── ObjectViewer.stories.jsx
│   │   │   │   ├── ObjectViewer.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── PieChartButton/
│   │   │   │   ├── PieChartButton.connect.jsx
│   │   │   │   ├── PieChartButton.stories.jsx
│   │   │   │   ├── PieChartButton.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── PieChartButton.test.js.snap
│   │   │   │   │   └── PieChartButton.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── Redirect/
│   │   │   │   ├── Redirect.container.jsx
│   │   │   │   ├── Redirect.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── SelectObject/
│   │   │   │   ├── SelectObject.component.jsx
│   │   │   │   ├── SelectObject.component.test.jsx
│   │   │   │   ├── SelectObject.connect.js
│   │   │   │   ├── SelectObject.connect.test.jsx
│   │   │   │   ├── SelectObject.container.jsx
│   │   │   │   ├── SelectObject.container.test.jsx
│   │   │   │   ├── SelectObject.module.css
│   │   │   │   ├── SelectObject.stories.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SelectObject.component.test.js.snap
│   │   │   │   │   ├── SelectObject.component.test.jsx.snap
│   │   │   │   │   └── SelectObject.container.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── ShortcutManager/
│   │   │   │   ├── ShortcutManager.connect.js
│   │   │   │   ├── ShortcutManager.container.js
│   │   │   │   ├── ShortcutManager.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── SidePanel/
│   │   │   │   ├── SidePanel.connect.js
│   │   │   │   ├── SidePanel.container.jsx
│   │   │   │   ├── SidePanel.md
│   │   │   │   ├── SidePanel.stories.jsx
│   │   │   │   ├── SidePanel.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SidePanel.test.js.snap
│   │   │   │   │   └── SidePanel.test.jsx.snap
│   │   │   │   ├── constants.js
│   │   │   │   └── index.js
│   │   │   ├── Slider/
│   │   │   │   ├── Slider.connect.js
│   │   │   │   ├── Slider.container.jsx
│   │   │   │   ├── Slider.selectors.js
│   │   │   │   ├── Slider.stories.jsx
│   │   │   │   ├── Slider.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Slider.test.js.snap
│   │   │   │   │   └── Slider.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── SubHeaderBar/
│   │   │   │   ├── SubHeaderBar.connect.js
│   │   │   │   ├── SubHeaderBar.container.jsx
│   │   │   │   ├── SubHeaderBar.md
│   │   │   │   ├── SubHeaderBar.selectors.js
│   │   │   │   ├── SubHeaderBar.stories.jsx
│   │   │   │   ├── SubHeaderBar.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── SubHeaderBar.test.js.snap
│   │   │   │   │   └── SubHeaderBar.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── TabBar/
│   │   │   │   ├── TabBar.connect.js
│   │   │   │   ├── TabBar.selectors.js
│   │   │   │   ├── TabBar.stories.jsx
│   │   │   │   ├── TabBar.test.jsx
│   │   │   │   └── index.js
│   │   │   ├── TreeView/
│   │   │   │   ├── TreeView.container.jsx
│   │   │   │   ├── TreeView.stories.jsx
│   │   │   │   ├── TreeView.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── TreeView.test.js.snap
│   │   │   │   │   └── TreeView.test.jsx.snap
│   │   │   │   ├── index.js
│   │   │   │   └── index.test.jsx
│   │   │   ├── Typeahead/
│   │   │   │   ├── Typeahead.connect.js
│   │   │   │   ├── Typeahead.container.jsx
│   │   │   │   ├── Typeahead.stories.jsx
│   │   │   │   ├── Typeahead.test.jsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── Typeahead.test.js.snap
│   │   │   │   │   └── Typeahead.test.jsx.snap
│   │   │   │   └── index.js
│   │   │   ├── actionAPI.js
│   │   │   ├── actionAPI.test.jsx
│   │   │   ├── actionOnClick.js
│   │   │   ├── actionOnClick.test.jsx
│   │   │   ├── cmfModule.js
│   │   │   ├── constant.js
│   │   │   ├── containers.js
│   │   │   ├── index.js
│   │   │   ├── mock.settings.json
│   │   │   ├── register.js
│   │   │   ├── register.test.jsx
│   │   │   ├── renderers.js
│   │   │   ├── test-setup.js
│   │   │   └── translate.js
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── dataviz/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .storybook/
│   │   │   ├── main.ts
│   │   │   └── preview.ts
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── assets/
│   │   │   └── maps/
│   │   │       ├── CA.topo.json
│   │   │       ├── FR.topo.json
│   │   │       ├── MX.topo.json
│   │   │       ├── US.topo.json
│   │   │       ├── US_CA.topo.json
│   │   │       ├── continents.topo.json
│   │   │       └── world.topo.json
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── BarChart/
│   │   │   │   │   ├── ColoredBar/
│   │   │   │   │   │   ├── ColoredBar.component.module.css
│   │   │   │   │   │   └── ColoredBar.component.tsx
│   │   │   │   │   ├── HorizontalBarChart/
│   │   │   │   │   │   ├── HorizontalBarChart.component.module.css
│   │   │   │   │   │   ├── HorizontalBarChart.component.test.tsx
│   │   │   │   │   │   ├── HorizontalBarChart.component.tsx
│   │   │   │   │   │   ├── HorizontalBarChart.stories.tsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── HorizontalBarChart.component.test.tsx.snap
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── TooltipCursor/
│   │   │   │   │   │   ├── TooltipCursor.component.module.css
│   │   │   │   │   │   └── TooltipCursor.component.tsx
│   │   │   │   │   ├── VerticalBarChart/
│   │   │   │   │   │   ├── VerticalBarChart.component.module.css
│   │   │   │   │   │   ├── VerticalBarChart.component.test.tsx
│   │   │   │   │   │   ├── VerticalBarChart.component.tsx
│   │   │   │   │   │   ├── VerticalBarChart.stories.tsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── VerticalBarChart.component.test.tsx.snap
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── _bar-chart.scss
│   │   │   │   │   ├── barChart.tooltip.test.ts
│   │   │   │   │   ├── barChart.tooltip.ts
│   │   │   │   │   ├── barChart.types.ts
│   │   │   │   │   ├── useBarChart.hook.tsx
│   │   │   │   │   └── useBarChartHook.test.ts
│   │   │   │   ├── BoxPlot/
│   │   │   │   │   ├── BoxPlot.component.module.css
│   │   │   │   │   ├── BoxPlot.component.test.tsx
│   │   │   │   │   ├── BoxPlot.component.tsx
│   │   │   │   │   ├── BoxPlot.stories.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── BoxPlot.component.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ChartPanel/
│   │   │   │   │   └── VerticalChartFilter/
│   │   │   │   │       ├── VerticalChartFilter.component.module.css
│   │   │   │   │       ├── VerticalChartFilter.component.test.tsx
│   │   │   │   │       ├── VerticalChartFilter.component.tsx
│   │   │   │   │       ├── VerticalChartFilter.stories.tsx
│   │   │   │   │       └── index.ts
│   │   │   │   ├── GeoChart/
│   │   │   │   │   ├── GeoChart.component.tsx
│   │   │   │   │   ├── GeoChart.module.css
│   │   │   │   │   ├── GeoChart.stories.tsx
│   │   │   │   │   ├── GeoChart.test.jsx
│   │   │   │   │   ├── GeoChart.utils.ts
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── index.ts
│   │   │   │   ├── KeyValueTooltip/
│   │   │   │   │   ├── KeyValueTooltip.component.module.css
│   │   │   │   │   ├── KeyValueTooltip.component.test.tsx
│   │   │   │   │   ├── KeyValueTooltip.component.tsx
│   │   │   │   │   ├── KeyValueTooltip.stories.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── KeyValueTooltip.component.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── LineChart/
│   │   │   │   │   ├── LineChart.component.test.tsx
│   │   │   │   │   ├── LineChart.component.tsx
│   │   │   │   │   ├── LineChart.module.css
│   │   │   │   │   ├── LineChart.stories.tsx
│   │   │   │   │   ├── LineChart.types.ts
│   │   │   │   │   ├── LineChartLegend.component.tsx
│   │   │   │   │   ├── LineChartLineIcon.component.tsx
│   │   │   │   │   ├── LineChartTooltip.component.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── RangeFilter/
│   │   │   │   │   ├── RangeFilter.component.module.css
│   │   │   │   │   ├── RangeFilter.component.stories.tsx
│   │   │   │   │   ├── RangeFilter.component.test.tsx
│   │   │   │   │   ├── RangeFilter.component.tsx
│   │   │   │   │   ├── handlers/
│   │   │   │   │   │   ├── DateRangeHandler/
│   │   │   │   │   │   │   ├── DateRangeHandler.test.tsx
│   │   │   │   │   │   │   └── DateRangeHandler.tsx
│   │   │   │   │   │   ├── DateTimeRangeHandler/
│   │   │   │   │   │   │   ├── DateTimeInputField.component.module.css
│   │   │   │   │   │   │   ├── DateTimeRangeHandler.test.tsx
│   │   │   │   │   │   │   └── DateTimeRangeHandler.tsx
│   │   │   │   │   │   ├── IntegerRangeHandler/
│   │   │   │   │   │   │   ├── IntegerRangeHandler.test.tsx
│   │   │   │   │   │   │   └── IntegerRangeHandler.tsx
│   │   │   │   │   │   ├── NumberRangeHandler/
│   │   │   │   │   │   │   ├── NumberInputField.component.module.css
│   │   │   │   │   │   │   ├── NumberRangeHandler.test.tsx
│   │   │   │   │   │   │   └── NumberRangeHandler.tsx
│   │   │   │   │   │   ├── TimeRangeHandler/
│   │   │   │   │   │   │   ├── TimeRangeHandler.test.tsx
│   │   │   │   │   │   │   └── TimeRangeHandler.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── range-handler.types.ts
│   │   │   │   │   │   ├── slider-ticks.utils.test.ts
│   │   │   │   │   │   ├── slider-ticks.utils.ts
│   │   │   │   │   │   └── useRangeInputField.hook.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── Tooltip/
│   │   │   │       ├── Tooltip.component.module.css
│   │   │   │       └── Tooltip.component.tsx
│   │   │   ├── constants.ts
│   │   │   ├── formatters/
│   │   │   │   ├── formatters.test.ts
│   │   │   │   └── formatters.ts
│   │   │   ├── index.ts
│   │   │   ├── setupTests.ts
│   │   │   └── types/
│   │   │       ├── index.ts
│   │   │       └── types.d.ts
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── design-docs/
│   │   ├── .babelrc.json
│   │   ├── .storybook/
│   │   │   ├── .babelrc
│   │   │   ├── main.mjs
│   │   │   ├── manager-head.html
│   │   │   ├── manager.mjs
│   │   │   ├── preview-head.html
│   │   │   ├── preview.mjs
│   │   │   └── vite.config.ts
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── netlify.toml
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── GettingStarted.mdx
│   │   │   ├── Principles.mdx
│   │   │   ├── StatusTable.module.css
│   │   │   ├── StatusTable.tsx
│   │   │   ├── Statuses.mdx
│   │   │   ├── Welcome.mdx
│   │   │   ├── Welcome.module.css
│   │   │   ├── WelcomeImage.tsx
│   │   │   ├── content/
│   │   │   │   ├── Capitalization.mdx
│   │   │   │   ├── Conventions.mdx
│   │   │   │   ├── Internationalization.mdx
│   │   │   │   ├── VoiceAndTone.mdx
│   │   │   │   └── Wording.mdx
│   │   │   ├── index.ts
│   │   │   ├── status.json
│   │   │   ├── tokens/
│   │   │   │   ├── A-About.mdx
│   │   │   │   ├── AB-Colors.mdx
│   │   │   │   ├── AC-ColorComposition.mdx
│   │   │   │   ├── Borders.mdx
│   │   │   │   ├── Brandings.mdx
│   │   │   │   ├── BreakPoints.mdx
│   │   │   │   ├── ColorChecker.tsx
│   │   │   │   ├── ColorComposition.module.css
│   │   │   │   ├── ColorComposition.tsx
│   │   │   │   ├── ColorCompositions.json
│   │   │   │   ├── Elevations.mdx
│   │   │   │   ├── ExampleCard.module.css
│   │   │   │   ├── ExampleCard.tsx
│   │   │   │   ├── Gradients.mdx
│   │   │   │   ├── Mesures.mdx
│   │   │   │   ├── Opacity.mdx
│   │   │   │   ├── Radius.mdx
│   │   │   │   ├── Shadows.mdx
│   │   │   │   ├── TokenFormatter.ts
│   │   │   │   ├── TokenValue.module.css
│   │   │   │   ├── TokenValue.tsx
│   │   │   │   ├── Transitions.mdx
│   │   │   │   ├── Transitions.module.css
│   │   │   │   └── Typography.mdx
│   │   │   └── types.d.ts
│   │   ├── stylelint.config.mjs
│   │   ├── talend-scripts.json
│   │   └── tsconfig.json
│   ├── design-system/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .prettierrc.js
│   │   ├── .storybook/
│   │   │   ├── main.mjs
│   │   │   └── preview.mjs
│   │   ├── CHANGELOG.md
│   │   ├── CONTRIBUTING.md
│   │   ├── DOCTEMPLATE.md
│   │   ├── LICENSE
│   │   ├── MIGRATING.md
│   │   ├── README.md
│   │   ├── custom.d.ts
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── components/
│   │   │   │   ├── Accordion/
│   │   │   │   │   ├── Accordion.test.tsx
│   │   │   │   │   ├── Accordion.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── CollapsiblePanel.module.css
│   │   │   │   │   │   ├── CollapsiblePanel.tsx
│   │   │   │   │   │   ├── CollapsiblePanelHeader.module.css
│   │   │   │   │   │   ├── CollapsiblePanelHeader.tsx
│   │   │   │   │   │   └── types.ts
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Accordion.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Badge/
│   │   │   │   │   ├── Badge.test.tsx
│   │   │   │   │   ├── Badge.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Badge.test.tsx.snap
│   │   │   │   │   ├── button/
│   │   │   │   │   │   ├── BadgeButton.module.css
│   │   │   │   │   │   └── BadgeButton.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── primitive/
│   │   │   │   │   │   ├── BadgePrimitive.module.css
│   │   │   │   │   │   └── BadgePrimitive.tsx
│   │   │   │   │   └── variants/
│   │   │   │   │       ├── BadgeDropdown.module.css
│   │   │   │   │       ├── BadgeDropdown.tsx
│   │   │   │   │       ├── BadgePopover.tsx
│   │   │   │   │       ├── BadgeTag.tsx
│   │   │   │   │       ├── BadgeValue.module.css
│   │   │   │   │       └── BadgeValue.tsx
│   │   │   │   ├── Breadcrumbs/
│   │   │   │   │   ├── Breadcrumbs.module.css
│   │   │   │   │   ├── Breadcrumbs.test.tsx
│   │   │   │   │   ├── Breadcrumbs.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Breadcrumbs.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Button/
│   │   │   │   │   ├── Button.test.tsx
│   │   │   │   │   ├── Button.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── ButtonPrimitive.tsx
│   │   │   │   │   │   └── ButtonStyles.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Button.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── ButtonDestructive.module.css
│   │   │   │   │       ├── ButtonDestructive.tsx
│   │   │   │   │       ├── ButtonPrimary.module.css
│   │   │   │   │       ├── ButtonPrimary.tsx
│   │   │   │   │       ├── ButtonSecondary.module.css
│   │   │   │   │       ├── ButtonSecondary.tsx
│   │   │   │   │       ├── ButtonTertiary.module.css
│   │   │   │   │       └── ButtonTertiary.tsx
│   │   │   │   ├── ButtonAsLink/
│   │   │   │   │   ├── ButtonAsLink.test.tsx
│   │   │   │   │   ├── ButtonAsLink.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── ButtonPrimitiveAsLink.module.css
│   │   │   │   │   │   └── ButtonPrimitiveAsLink.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── ButtonAsLink.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── ButtonDestructiveAsLink.tsx
│   │   │   │   │       ├── ButtonPrimaryAsLink.tsx
│   │   │   │   │       ├── ButtonSecondaryAsLink.tsx
│   │   │   │   │       └── ButtonTertiaryAsLink.tsx
│   │   │   │   ├── ButtonIcon/
│   │   │   │   │   ├── ButtonIcon.test.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── ButtonIcon.module.css
│   │   │   │   │   │   └── ButtonIconPrimitive.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── ButtonIcon.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── ButtonIcon.tsx
│   │   │   │   │       ├── ButtonIconFloating.tsx
│   │   │   │   │       └── ButtonIconToggle.tsx
│   │   │   │   ├── Card/
│   │   │   │   │   ├── Card.module.css
│   │   │   │   │   ├── Card.test.tsx
│   │   │   │   │   ├── Card.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Card.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Clickable/
│   │   │   │   │   ├── Clickable.module.css
│   │   │   │   │   ├── Clickable.tsx
│   │   │   │   │   ├── Clikable.test.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Clikable.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Combobox/
│   │   │   │   │   ├── Combobox.module.css
│   │   │   │   │   ├── Combobox.test.tsx
│   │   │   │   │   ├── Combobox.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Combobox.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Disclosure/
│   │   │   │   │   ├── Disclosure.tsx
│   │   │   │   │   └── DisclosureContext.ts
│   │   │   │   ├── Divider/
│   │   │   │   │   ├── Divider.module.css
│   │   │   │   │   ├── Divider.test.tsx
│   │   │   │   │   ├── Divider.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Divider.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Drawer/
│   │   │   │   │   ├── Drawer.test.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── PrimitiveDrawer.module.css
│   │   │   │   │   │   └── PrimitiveDrawer.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Drawer.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variants/
│   │   │   │   │       └── FloatingDrawer/
│   │   │   │   │           ├── FloatingDrawer.module.css
│   │   │   │   │           └── FloatingDrawer.tsx
│   │   │   │   ├── Dropdown/
│   │   │   │   │   ├── Dropdown.cy.tsx
│   │   │   │   │   ├── Dropdown.test.tsx
│   │   │   │   │   ├── Dropdown.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── DropdownButton.tsx
│   │   │   │   │   │   ├── DropdownDivider.module.css
│   │   │   │   │   │   ├── DropdownDivider.tsx
│   │   │   │   │   │   ├── DropdownEntry.module.css
│   │   │   │   │   │   ├── DropdownLink.tsx
│   │   │   │   │   │   ├── DropdownShell.module.css
│   │   │   │   │   │   ├── DropdownShell.tsx
│   │   │   │   │   │   ├── DropdownTitle.module.css
│   │   │   │   │   │   └── DropdownTitle.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Dropdown.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── EmptyState/
│   │   │   │   │   ├── EmptyState.test.tsx
│   │   │   │   │   ├── EmptyState.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── EmptyState.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── primitive/
│   │   │   │   │   │   ├── EmptyStatePrimitive.module.css
│   │   │   │   │   │   └── EmptyStatePrimitive.tsx
│   │   │   │   │   └── variants/
│   │   │   │   │       ├── EmptyStateLarge.tsx
│   │   │   │   │       ├── EmptyStateMedium.tsx
│   │   │   │   │       └── EmptyStateSmall.tsx
│   │   │   │   ├── Enumeration/
│   │   │   │   │   ├── Enumeration.component.tsx
│   │   │   │   │   ├── Enumeration.module.css
│   │   │   │   │   ├── Enumeration.types.tsx
│   │   │   │   │   ├── EnumerationHeader/
│   │   │   │   │   │   ├── EnumerationHeader.component.tsx
│   │   │   │   │   │   ├── EnumerationHeader.module.css
│   │   │   │   │   │   └── EnumerationIHeader.types.tsx
│   │   │   │   │   ├── EnumerationItem/
│   │   │   │   │   │   ├── EnumerationItem.component.tsx
│   │   │   │   │   │   ├── EnumerationItem.module.css
│   │   │   │   │   │   └── EnumerationItem.types.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ErrorState/
│   │   │   │   │   ├── ErrorState.module.css
│   │   │   │   │   ├── ErrorState.test.tsx
│   │   │   │   │   ├── ErrorState.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── ErrorState.test.tsx.snap
│   │   │   │   │   ├── illutstrations/
│   │   │   │   │   │   └── ErrorIllustration.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Form/
│   │   │   │   │   ├── Affix/
│   │   │   │   │   │   ├── AffixStyles.module.css
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── variations/
│   │   │   │   │   │       ├── AffixButton.tsx
│   │   │   │   │   │       ├── AffixReadOnly.tsx
│   │   │   │   │   │       └── AffixSelect.tsx
│   │   │   │   │   ├── Buttons/
│   │   │   │   │   │   ├── Buttons.module.css
│   │   │   │   │   │   ├── Buttons.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Field/
│   │   │   │   │   │   ├── Datalist/
│   │   │   │   │   │   │   ├── Datalist.tsx
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.Checkbox.tsx
│   │   │   │   │   │   │   ├── Input.Color.tsx
│   │   │   │   │   │   │   ├── Input.Copy.tsx
│   │   │   │   │   │   │   ├── Input.Date.tsx
│   │   │   │   │   │   │   ├── Input.DatetimeLocal.tsx
│   │   │   │   │   │   │   ├── Input.Email.tsx
│   │   │   │   │   │   │   ├── Input.File.module.css
│   │   │   │   │   │   │   ├── Input.File.tsx
│   │   │   │   │   │   │   ├── Input.Hidden.tsx
│   │   │   │   │   │   │   ├── Input.Month.tsx
│   │   │   │   │   │   │   ├── Input.Number.tsx
│   │   │   │   │   │   │   ├── Input.Radio.tsx
│   │   │   │   │   │   │   ├── Input.Search.tsx
│   │   │   │   │   │   │   ├── Input.Tel.tsx
│   │   │   │   │   │   │   ├── Input.Text.tsx
│   │   │   │   │   │   │   ├── Input.Time.tsx
│   │   │   │   │   │   │   ├── Input.ToggleSwitch.module.css
│   │   │   │   │   │   │   ├── Input.ToggleSwitch.tsx
│   │   │   │   │   │   │   ├── Input.Url.tsx
│   │   │   │   │   │   │   ├── Input.Week.tsx
│   │   │   │   │   │   │   ├── Input.tsx
│   │   │   │   │   │   │   ├── Password/
│   │   │   │   │   │   │   │   ├── Password.cy.tsx
│   │   │   │   │   │   │   │   ├── Password.tsx
│   │   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   │   ├── hooks/
│   │   │   │   │   │   │   │   ├── passwordButton.module.css
│   │   │   │   │   │   │   │   ├── useReadOnly.tsx
│   │   │   │   │   │   │   │   └── useRevealPassword.tsx
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   ├── Select/
│   │   │   │   │   │   │   ├── Select.tsx
│   │   │   │   │   │   │   └── index.ts
│   │   │   │   │   │   └── Textarea/
│   │   │   │   │   │       ├── Textarea.tsx
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── Fieldset/
│   │   │   │   │   │   ├── Fieldset.cy.tsx
│   │   │   │   │   │   ├── Fieldset.module.css
│   │   │   │   │   │   ├── Fieldset.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Form.module.css
│   │   │   │   │   ├── Form.test.tsx
│   │   │   │   │   ├── Form.tsx
│   │   │   │   │   ├── Label/
│   │   │   │   │   │   ├── Label.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Primitives/
│   │   │   │   │   │   ├── Checkbox/
│   │   │   │   │   │   │   ├── Checkbox.module.css
│   │   │   │   │   │   │   └── Checkbox.tsx
│   │   │   │   │   │   ├── Field/
│   │   │   │   │   │   │   └── Field.tsx
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.module.css
│   │   │   │   │   │   │   └── Input.tsx
│   │   │   │   │   │   ├── InputWrapper/
│   │   │   │   │   │   │   ├── InputWrapper.module.css
│   │   │   │   │   │   │   └── InputWrapper.tsx
│   │   │   │   │   │   ├── Label/
│   │   │   │   │   │   │   ├── Label.module.css
│   │   │   │   │   │   │   └── Label.tsx
│   │   │   │   │   │   ├── Radio/
│   │   │   │   │   │   │   ├── Radio.module.css
│   │   │   │   │   │   │   └── Radio.tsx
│   │   │   │   │   │   ├── Select/
│   │   │   │   │   │   │   ├── Select.module.css
│   │   │   │   │   │   │   ├── Select.tsx
│   │   │   │   │   │   │   └── SelectNoWrapper.tsx
│   │   │   │   │   │   ├── Textarea/
│   │   │   │   │   │   │   ├── Textarea.module.css
│   │   │   │   │   │   │   └── Textarea.tsx
│   │   │   │   │   │   └── index.tsx
│   │   │   │   │   ├── Row/
│   │   │   │   │   │   ├── Row.module.css
│   │   │   │   │   │   ├── Row.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Form.test.tsx.snap
│   │   │   │   │   ├── docs/
│   │   │   │   │   │   └── data/
│   │   │   │   │   │       └── CountryCodes.json
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Icon/
│   │   │   │   │   ├── DeprecatedIconHelper.tsx
│   │   │   │   │   ├── Icon.cy.tsx
│   │   │   │   │   ├── Icon.module.css
│   │   │   │   │   ├── Icon.test.tsx
│   │   │   │   │   ├── Icon.tsx
│   │   │   │   │   ├── SizedIcon.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Icon.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── IconsProvider/
│   │   │   │   │   ├── IconsProvider.cy.tsx
│   │   │   │   │   ├── IconsProvider.module.css
│   │   │   │   │   ├── IconsProvider.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── InlineEditing/
│   │   │   │   │   ├── InlineEditing.test.tsx
│   │   │   │   │   ├── Primitives/
│   │   │   │   │   │   ├── InlineEditingPrimitive.module.css
│   │   │   │   │   │   └── InlineEditingPrimitive.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── InlineEditing.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── InlineEditing.text.tsx
│   │   │   │   │       ├── InlineEditing.textarea.cy.tsx
│   │   │   │   │       └── InlineEditing.textarea.tsx
│   │   │   │   ├── InlineMessage/
│   │   │   │   │   ├── InlineMessage.test.tsx
│   │   │   │   │   ├── InlineMessage.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── InlineMessagePrimitive.module.css
│   │   │   │   │   │   └── InlineMessagePrimitive.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── InlineMessage.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── InlineMessageBeta.module.css
│   │   │   │   │       ├── InlineMessageBeta.tsx
│   │   │   │   │       ├── InlineMessageDestructive.module.css
│   │   │   │   │       ├── InlineMessageDestructive.tsx
│   │   │   │   │       ├── InlineMessageInformation.module.css
│   │   │   │   │       ├── InlineMessageInformation.tsx
│   │   │   │   │       ├── InlineMessageSuccess.module.css
│   │   │   │   │       ├── InlineMessageSuccess.tsx
│   │   │   │   │       ├── InlineMessageWarning.module.css
│   │   │   │   │       └── InlineMessageWarning.tsx
│   │   │   │   ├── Link/
│   │   │   │   │   ├── Link.cy.tsx
│   │   │   │   │   ├── Link.module.css
│   │   │   │   │   ├── Link.test.tsx
│   │   │   │   │   ├── Link.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Link.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── LinkAsButton/
│   │   │   │   │   ├── LinkAsButton.cy.tsx
│   │   │   │   │   ├── LinkAsButton.test.tsx
│   │   │   │   │   ├── LinkAsButton.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── LinkAsButton.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Linkable/
│   │   │   │   │   ├── Linkable.test.tsx
│   │   │   │   │   ├── Linkable.tsx
│   │   │   │   │   ├── LinkableStyles.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Linkable.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Loading/
│   │   │   │   │   ├── Loading.test.tsx
│   │   │   │   │   ├── Loading.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Loading.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Message/
│   │   │   │   │   ├── Message.test.tsx
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── MessagePrimitive.tsx
│   │   │   │   │   │   └── MessageStyles.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Message.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── MessageCollectionDestructive.tsx
│   │   │   │   │       ├── MessageCollectionInformation.tsx
│   │   │   │   │       ├── MessageCollectionSuccess.tsx
│   │   │   │   │       ├── MessageCollectionWarning.tsx
│   │   │   │   │       ├── MessageDestructive.module.css
│   │   │   │   │       ├── MessageDestructive.tsx
│   │   │   │   │       ├── MessageInformation.module.css
│   │   │   │   │       ├── MessageInformation.tsx
│   │   │   │   │       ├── MessageSuccess.module.css
│   │   │   │   │       ├── MessageSuccess.tsx
│   │   │   │   │       ├── MessageWarning.module.css
│   │   │   │   │       └── MessageWarning.tsx
│   │   │   │   ├── Modal/
│   │   │   │   │   ├── Modal.module.css
│   │   │   │   │   ├── Modal.test.tsx
│   │   │   │   │   ├── Modal.tsx
│   │   │   │   │   ├── Primitives/
│   │   │   │   │   │   ├── Dialog.tsx
│   │   │   │   │   │   ├── DialogBackdrop.tsx
│   │   │   │   │   │   ├── DialogState.ts
│   │   │   │   │   │   └── Portal.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Modal.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Popover/
│   │   │   │   │   ├── Popover.cy.tsx
│   │   │   │   │   ├── Popover.module.css
│   │   │   │   │   ├── Popover.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── usePopover.tsx
│   │   │   │   ├── QualityBar/
│   │   │   │   │   ├── QualityBar.component.test.tsx
│   │   │   │   │   ├── QualityBar.component.tsx
│   │   │   │   │   ├── QualityBar.stories.tsx
│   │   │   │   │   ├── QualityBar.types.ts
│   │   │   │   │   ├── QualityBarRatioBars.component.tsx
│   │   │   │   │   ├── QualityRatioBar.component.tsx
│   │   │   │   │   ├── QualityRatioBar.module.css
│   │   │   │   │   ├── QualityRatioBar.utils.ts
│   │   │   │   │   ├── SplitQualityBar.component.tsx
│   │   │   │   │   ├── SplitQualityBar.stories.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── RatioBar/
│   │   │   │   │   ├── RatioBar.component.test.jsx
│   │   │   │   │   ├── RatioBar.component.tsx
│   │   │   │   │   ├── RatioBar.module.css
│   │   │   │   │   ├── RatioBar.stories.tsx
│   │   │   │   │   ├── RatioBarComposition.component.tsx
│   │   │   │   │   ├── RatioBarLines.component.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── RatioBar.component.test.jsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── RichRadioButton/
│   │   │   │   │   ├── RichRadioButton.component.tsx
│   │   │   │   │   ├── RichRadioButton.module.css
│   │   │   │   │   ├── RichRadioButton.types.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Skeleton/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── Skeleton.Primitive.tsx
│   │   │   │   │   │   └── Skeleton.module.css
│   │   │   │   │   ├── Skeleton.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── SkeletonButton.module.css
│   │   │   │   │       ├── SkeletonButton.tsx
│   │   │   │   │       ├── SkeletonButtonIcon.module.css
│   │   │   │   │       ├── SkeletonButtonIcon.tsx
│   │   │   │   │       ├── SkeletonHeading.module.css
│   │   │   │   │       ├── SkeletonHeading.tsx
│   │   │   │   │       ├── SkeletonInput.module.css
│   │   │   │   │       ├── SkeletonInput.tsx
│   │   │   │   │       ├── SkeletonParagraph.module.css
│   │   │   │   │       ├── SkeletonParagraph.tsx
│   │   │   │   │       ├── SkeletonSized.module.css
│   │   │   │   │       └── SkeletonSized.tsx
│   │   │   │   ├── Stack/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── StackPrimitive.module.css
│   │   │   │   │   │   ├── StackPrimitive.test.tsx
│   │   │   │   │   │   └── StackPrimitive.tsx
│   │   │   │   │   ├── StackHorizontal.tsx
│   │   │   │   │   ├── StackItem.module.css
│   │   │   │   │   ├── StackItem.tsx
│   │   │   │   │   ├── StackVertical.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Status/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── Status.module.css
│   │   │   │   │   │   ├── StatusPrimitive.test.tsx
│   │   │   │   │   │   └── StatusPrimitive.tsx
│   │   │   │   │   ├── Status.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── StatusCanceled.tsx
│   │   │   │   │       ├── StatusFailed.tsx
│   │   │   │   │       ├── StatusInProgress.tsx
│   │   │   │   │       ├── StatusSuccessful.tsx
│   │   │   │   │       └── StatusWarning.tsx
│   │   │   │   ├── StatusDot/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── StatusDotPrimitive.module.css
│   │   │   │   │   │   ├── StatusDotPrimitive.test.tsx
│   │   │   │   │   │   └── StatusDotPrimitive.tsx
│   │   │   │   │   ├── StatusDot.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── StatusDotBeta.tsx
│   │   │   │   │       ├── StatusDotError.tsx
│   │   │   │   │       ├── StatusDotInformation.tsx
│   │   │   │   │       ├── StatusDotSuccess.tsx
│   │   │   │   │       └── StatusDotWarning.tsx
│   │   │   │   ├── Stepper/
│   │   │   │   │   ├── Progress/
│   │   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   │   ├── Progress.module.css
│   │   │   │   │   │   │   └── Progress.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── variations/
│   │   │   │   │   │       ├── Progress.horizontal.module.css
│   │   │   │   │   │       ├── Progress.horizontal.tsx
│   │   │   │   │   │       ├── Progress.vertical.module.css
│   │   │   │   │   │       └── Progress.vertical.tsx
│   │   │   │   │   ├── Step/
│   │   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   │   ├── Step.module.css
│   │   │   │   │   │   │   └── Step.tsx
│   │   │   │   │   │   ├── Step.cy.tsx
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── variations/
│   │   │   │   │   │       ├── Step.Skeleton.module.css
│   │   │   │   │   │       ├── Step.disabled.tsx
│   │   │   │   │   │       ├── Step.enabled.tsx
│   │   │   │   │   │       ├── Step.error.tsx
│   │   │   │   │   │       ├── Step.progress.tsx
│   │   │   │   │   │       ├── Step.skeleton.tsx
│   │   │   │   │   │       └── Step.validated.tsx
│   │   │   │   │   ├── Stepper.cy.tsx
│   │   │   │   │   ├── Stepper.module.css
│   │   │   │   │   ├── Stepper.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── Stepper.horizontal.tsx
│   │   │   │   │       └── Stepper.vertical.tsx
│   │   │   │   ├── Switch/
│   │   │   │   │   ├── Switch.module.css
│   │   │   │   │   ├── Switch.test.tsx
│   │   │   │   │   ├── Switch.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Switch.test.tsx.snap
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Tabs/
│   │   │   │   │   ├── Primitive/
│   │   │   │   │   │   ├── TabPanel.tsx
│   │   │   │   │   │   ├── TabStyles.module.css
│   │   │   │   │   │   ├── Tabs.tsx
│   │   │   │   │   │   └── TabsProvider.tsx
│   │   │   │   │   ├── Tabs.test.tsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Tabs.test.tsx.snap
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── variants/
│   │   │   │   │       └── Tabs.tsx
│   │   │   │   ├── Tag/
│   │   │   │   │   ├── Tag.cy.tsx
│   │   │   │   │   ├── Tag.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── primitive/
│   │   │   │   │   │   ├── TagPrimitive.module.css
│   │   │   │   │   │   ├── TagPrimitive.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── variations/
│   │   │   │   │       ├── TagBeta.module.css
│   │   │   │   │       ├── TagBeta.tsx
│   │   │   │   │       ├── TagDefault.module.css
│   │   │   │   │       ├── TagDefault.tsx
│   │   │   │   │       ├── TagDestructive.module.css
│   │   │   │   │       ├── TagDestructive.tsx
│   │   │   │   │       ├── TagInformation.module.css
│   │   │   │   │       ├── TagInformation.tsx
│   │   │   │   │       ├── TagSuccess.module.css
│   │   │   │   │       ├── TagSuccess.tsx
│   │   │   │   │       ├── TagWarning.module.css
│   │   │   │   │       ├── TagWarning.tsx
│   │   │   │   │       └── index.ts
│   │   │   │   ├── ThemeProvider/
│   │   │   │   │   ├── ThemeContext/
│   │   │   │   │   │   ├── ThemeContext.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── ThemeProvider.css
│   │   │   │   │   ├── ThemeProvider.tsx
│   │   │   │   │   ├── ThemeSwitcher/
│   │   │   │   │   │   ├── ThemeSwitcher.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ThemeProviderWithoutGlobals/
│   │   │   │   │   ├── ThemeProviderWithoutGlobals.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── Tooltip/
│   │   │   │   │   ├── Tooltip.cy.tsx
│   │   │   │   │   ├── Tooltip.module.css
│   │   │   │   │   ├── Tooltip.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── VisuallyHidden/
│   │   │   │   │   ├── VisuallyHidden.module.css
│   │   │   │   │   ├── VisuallyHidden.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── constants.ts
│   │   │   │   └── illustrations/
│   │   │   │       ├── IconActivity.tsx
│   │   │   │       ├── IconChart.tsx
│   │   │   │       ├── IconChecklist.tsx
│   │   │   │       ├── IconDefault.module.css
│   │   │   │       ├── IconDefault.tsx
│   │   │   │       ├── IconDocument.tsx
│   │   │   │       ├── IconFlask.tsx
│   │   │   │       ├── IconInProgress.tsx
│   │   │   │       ├── IconLightBulb.tsx
│   │   │   │       ├── IconMessage.tsx
│   │   │   │       ├── IconPlug.tsx
│   │   │   │       ├── IconRocket.tsx
│   │   │   │       ├── IconSearch.tsx
│   │   │   │       ├── IconSettings.tsx
│   │   │   │       ├── IconUpdate.tsx
│   │   │   │       ├── IconUser.tsx
│   │   │   │       ├── IconWarning.tsx
│   │   │   │       ├── SpotDefault.module.css
│   │   │   │       ├── SpotDefault.tsx
│   │   │   │       └── index.ts
│   │   │   ├── declare.d.ts
│   │   │   ├── index.ts
│   │   │   ├── mergeRef.ts
│   │   │   ├── renderChildren.ts
│   │   │   ├── renderOrClone.ts
│   │   │   ├── stories/
│   │   │   │   ├── Status.block.tsx
│   │   │   │   ├── clickable/
│   │   │   │   │   ├── About.mdx
│   │   │   │   │   ├── Button.mdx
│   │   │   │   │   ├── Button.stories.tsx
│   │   │   │   │   ├── ButtonAsLink.mdx
│   │   │   │   │   ├── ButtonAsLink.stories.tsx
│   │   │   │   │   ├── ButtonIcon.mdx
│   │   │   │   │   ├── ButtonIcon.stories.tsx
│   │   │   │   │   ├── Dropdown.mdx
│   │   │   │   │   ├── Dropdown.stories.tsx
│   │   │   │   │   ├── Link.mdx
│   │   │   │   │   ├── Link.stories.tsx
│   │   │   │   │   └── LinkAsButton.stories.tsx
│   │   │   │   ├── docs/
│   │   │   │   │   ├── Area.module.css
│   │   │   │   │   ├── Area.tsx
│   │   │   │   │   ├── WithSelector.tsx
│   │   │   │   │   └── data/
│   │   │   │   │       └── CountryCodes.json
│   │   │   │   ├── feedback/
│   │   │   │   │   ├── EmptyState.mdx
│   │   │   │   │   ├── EmptyState.stories.tsx
│   │   │   │   │   ├── ErrorState.mdx
│   │   │   │   │   ├── ErrorState.stories.tsx
│   │   │   │   │   ├── Loading.mdx
│   │   │   │   │   ├── Loading.stories.tsx
│   │   │   │   │   ├── Skeleton.mdx
│   │   │   │   │   ├── Skeleton.stories.tsx
│   │   │   │   │   ├── Status.mdx
│   │   │   │   │   ├── Status.stories.tsx
│   │   │   │   │   ├── StatusDot.mdx
│   │   │   │   │   └── StatusDot.stories.tsx
│   │   │   │   ├── form/
│   │   │   │   │   ├── About.mdx
│   │   │   │   │   ├── Affix/
│   │   │   │   │   │   ├── Affix.stories.tsx
│   │   │   │   │   │   └── Affixes.mdx
│   │   │   │   │   ├── Buttons/
│   │   │   │   │   │   ├── FormButtons.mdx
│   │   │   │   │   │   └── FormButtons.stories.tsx
│   │   │   │   │   ├── Combobox.stories.tsx
│   │   │   │   │   ├── Enumeration/
│   │   │   │   │   │   ├── Enumeration.mdx
│   │   │   │   │   │   └── Enumeration.stories.tsx
│   │   │   │   │   ├── Field/
│   │   │   │   │   │   ├── Datalist/
│   │   │   │   │   │   │   ├── Input.Datalist.mdx
│   │   │   │   │   │   │   └── Input.Datalist.stories.tsx
│   │   │   │   │   │   ├── FormField.mdx
│   │   │   │   │   │   ├── FormField.stories.tsx
│   │   │   │   │   │   ├── Input/
│   │   │   │   │   │   │   ├── Input.Checkbox.mdx
│   │   │   │   │   │   │   ├── Input.Checkbox.stories.tsx
│   │   │   │   │   │   │   ├── Input.Color.mdx
│   │   │   │   │   │   │   ├── Input.Color.stories.tsx
│   │   │   │   │   │   │   ├── Input.Copy.mdx
│   │   │   │   │   │   │   ├── Input.Copy.stories.tsx
│   │   │   │   │   │   │   ├── Input.Date.mdx
│   │   │   │   │   │   │   ├── Input.Date.stories.tsx
│   │   │   │   │   │   │   ├── Input.DatetimeLocal.mdx
│   │   │   │   │   │   │   ├── Input.DatetimeLocal.stories.tsx
│   │   │   │   │   │   │   ├── Input.Email.mdx
│   │   │   │   │   │   │   ├── Input.Email.stories.tsx
│   │   │   │   │   │   │   ├── Input.File.mdx
│   │   │   │   │   │   │   ├── Input.File.stories.tsx
│   │   │   │   │   │   │   ├── Input.Month.mdx
│   │   │   │   │   │   │   ├── Input.Month.stories.tsx
│   │   │   │   │   │   │   ├── Input.Number.mdx
│   │   │   │   │   │   │   ├── Input.Number.stories.tsx
│   │   │   │   │   │   │   ├── Input.Radio.mdx
│   │   │   │   │   │   │   ├── Input.Radio.stories.tsx
│   │   │   │   │   │   │   ├── Input.Search.mdx
│   │   │   │   │   │   │   ├── Input.Search.stories.tsx
│   │   │   │   │   │   │   ├── Input.Tel.mdx
│   │   │   │   │   │   │   ├── Input.Tel.stories.tsx
│   │   │   │   │   │   │   ├── Input.Text.mdx
│   │   │   │   │   │   │   ├── Input.Text.stories.tsx
│   │   │   │   │   │   │   ├── Input.Time.mdx
│   │   │   │   │   │   │   ├── Input.Time.stories.tsx
│   │   │   │   │   │   │   ├── Input.Url.mdx
│   │   │   │   │   │   │   ├── Input.Url.stories.tsx
│   │   │   │   │   │   │   ├── Input.Week.mdx
│   │   │   │   │   │   │   ├── Input.Week.stories.tsx
│   │   │   │   │   │   │   ├── Password.mdx
│   │   │   │   │   │   │   └── Password.stories.tsx
│   │   │   │   │   │   ├── Select/
│   │   │   │   │   │   │   ├── Input.Select.mdx
│   │   │   │   │   │   │   └── Input.Select.stories.tsx
│   │   │   │   │   │   └── Textarea/
│   │   │   │   │   │       ├── Input.Textarea.mdx
│   │   │   │   │   │       └── Input.Textarea.stories.tsx
│   │   │   │   │   ├── FieldCombobox.mdx
│   │   │   │   │   ├── Fieldset/
│   │   │   │   │   │   ├── Fieldset.mdx
│   │   │   │   │   │   ├── Fieldset.stories.tsx
│   │   │   │   │   │   └── FormFieldset.mdx
│   │   │   │   │   ├── Form.mdx
│   │   │   │   │   ├── Form.stories.tsx
│   │   │   │   │   ├── InlineEditing.mdx
│   │   │   │   │   ├── InlineEditing.stories.tsx
│   │   │   │   │   ├── RichRadioButton.mdx
│   │   │   │   │   ├── RichRadioButton.stories.tsx
│   │   │   │   │   ├── Switch.mdx
│   │   │   │   │   ├── Switch.stories.tsx
│   │   │   │   │   └── ToggleSwitch/
│   │   │   │   │       ├── ToggleSwitch.mdx
│   │   │   │   │       └── ToggleSwitch.stories.tsx
│   │   │   │   ├── icons/
│   │   │   │   │   ├── About.mdx
│   │   │   │   │   ├── Icon.mdx
│   │   │   │   │   ├── Icon.stories.tsx
│   │   │   │   │   ├── Icons.tsx
│   │   │   │   │   ├── SizedIcon.mdx
│   │   │   │   │   └── SizedIcon.stories.tsx
│   │   │   │   ├── layout/
│   │   │   │   │   ├── Card.mdx
│   │   │   │   │   ├── Card.stories.tsx
│   │   │   │   │   ├── Modal.mdx
│   │   │   │   │   ├── Modal.stories.tsx
│   │   │   │   │   ├── Stack.mdx
│   │   │   │   │   └── Stack.stories.tsx
│   │   │   │   ├── messaging/
│   │   │   │   │   ├── Badge.mdx
│   │   │   │   │   ├── Badge.stories.tsx
│   │   │   │   │   ├── InlineMessage.mdx
│   │   │   │   │   ├── InlineMessage.stories.tsx
│   │   │   │   │   ├── Message.mdx
│   │   │   │   │   ├── Message.stories.tsx
│   │   │   │   │   ├── Popover.mdx
│   │   │   │   │   ├── Popover.stories.tsx
│   │   │   │   │   ├── Tag.mdx
│   │   │   │   │   ├── Tag.stories.tsx
│   │   │   │   │   ├── Tooltip.mdx
│   │   │   │   │   └── Tooltip.stories.tsx
│   │   │   │   ├── navigation/
│   │   │   │   │   ├── Accordion.mdx
│   │   │   │   │   ├── Accordion.stories.tsx
│   │   │   │   │   ├── Breadcrumbs.mdx
│   │   │   │   │   ├── Breadcrumbs.stories.tsx
│   │   │   │   │   ├── Divider.mdx
│   │   │   │   │   ├── Divider.stories.tsx
│   │   │   │   │   ├── FloatingDrawer.mdx
│   │   │   │   │   ├── FloatingDrawer.stories.tsx
│   │   │   │   │   ├── Stepper.Step.mdx
│   │   │   │   │   ├── Stepper.Step.stories.tsx
│   │   │   │   │   ├── Stepper.mdx
│   │   │   │   │   ├── Stepper.stories.tsx
│   │   │   │   │   ├── Tabs.mdx
│   │   │   │   │   └── Tabs.stories.tsx
│   │   │   │   └── status.json
│   │   │   ├── themes/
│   │   │   │   └── index.ts
│   │   │   ├── types/
│   │   │   │   └── index.ts
│   │   │   ├── useControl.ts
│   │   │   ├── useId.ts
│   │   │   └── vitest.setup.ts
│   │   ├── static/
│   │   │   ├── _headers
│   │   │   ├── favicon/
│   │   │   │   ├── browserconfig.xml
│   │   │   │   └── site.webmanifest
│   │   │   ├── robots.txt
│   │   │   └── sw.js
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.build.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── design-tokens/
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── CHANGELOG.md
│   │   ├── README.md
│   │   ├── dependencies.json
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── scripts/
│   │   │   ├── compare.js
│   │   │   └── umd.test.js
│   │   ├── src/
│   │   │   ├── _tokens.scss
│   │   │   ├── dark/
│   │   │   │   ├── _index.scss
│   │   │   │   ├── _tokens.scss
│   │   │   │   ├── dictionary.ts
│   │   │   │   └── index.ts
│   │   │   ├── declaration.d.ts
│   │   │   ├── index.scss
│   │   │   ├── index.ts
│   │   │   ├── index.umd.ts
│   │   │   ├── light/
│   │   │   │   ├── _index.scss
│   │   │   │   ├── dictionary.ts
│   │   │   │   └── index.ts
│   │   │   ├── qlik-light/
│   │   │   │   ├── _index.scss
│   │   │   │   ├── dictionary.ts
│   │   │   │   └── index.ts
│   │   │   └── types.ts
│   │   ├── supernova-exporter/
│   │   │   ├── README.md
│   │   │   ├── exporter.json
│   │   │   ├── output.json
│   │   │   ├── sources.json
│   │   │   └── src/
│   │   │       ├── exportCSS/
│   │   │       │   ├── CSS.pr
│   │   │       │   ├── css-stylesheet-with-path.pr
│   │   │       │   ├── main-renderers/
│   │   │       │   │   ├── css-reference-wrapper.pr
│   │   │       │   │   ├── css-rendered-name.pr
│   │   │       │   │   ├── css-rendered-token-class.pr
│   │   │       │   │   ├── css-rendered-token-style.pr
│   │   │       │   │   ├── css-rendered-token-var.pr
│   │   │       │   │   └── css-rendered-value.pr
│   │   │       │   └── token-renderers/
│   │   │       │       ├── css-rendered-border.pr
│   │   │       │       ├── css-rendered-color.pr
│   │   │       │       ├── css-rendered-gradient.pr
│   │   │       │       ├── css-rendered-lineHeight.pr
│   │   │       │       ├── css-rendered-measure.pr
│   │   │       │       ├── css-rendered-other.pr
│   │   │       │       ├── css-rendered-radius.pr
│   │   │       │       ├── css-rendered-shadow.pr
│   │   │       │       ├── css-rendered-text.pr
│   │   │       │       └── css-rendered-typography.pr
│   │   │       ├── exportSCSS/
│   │   │       │   ├── SCSS.pr
│   │   │       │   ├── main-renderers/
│   │   │       │   │   ├── scss-reference-wrapper.pr
│   │   │       │   │   ├── scss-rendered-description.pr
│   │   │       │   │   ├── scss-rendered-token-class.pr
│   │   │       │   │   └── scss-rendered-token-var.pr
│   │   │       │   └── scss-tokens-with-path.pr
│   │   │       ├── exportTS/
│   │   │       │   ├── allTokens.pr
│   │   │       │   ├── dictionary.pr
│   │   │       │   ├── main-renderers/
│   │   │       │   │   ├── index-file.pr
│   │   │       │   │   ├── reference-wrapper.pr
│   │   │       │   │   ├── rendered-css-name.pr
│   │   │       │   │   ├── rendered-description.pr
│   │   │       │   │   ├── rendered-dictionnary-entry.pr
│   │   │       │   │   ├── rendered-token-class.pr
│   │   │       │   │   ├── rendered-token-var.pr
│   │   │       │   │   ├── rendered-ts-name.pr
│   │   │       │   │   ├── rendered-type.pr
│   │   │       │   │   ├── rendered-value-detailed.pr
│   │   │       │   │   └── rendered-value.pr
│   │   │       │   ├── token-renderers/
│   │   │       │   │   ├── rendered-border.pr
│   │   │       │   │   ├── rendered-color-detailed.pr
│   │   │       │   │   ├── rendered-color.pr
│   │   │       │   │   ├── rendered-gradient-detailed.pr
│   │   │       │   │   ├── rendered-gradient.pr
│   │   │       │   │   ├── rendered-lineHeight.pr
│   │   │       │   │   ├── rendered-measure-detailed.pr
│   │   │       │   │   ├── rendered-measure.pr
│   │   │       │   │   ├── rendered-radius-detailed.pr
│   │   │       │   │   ├── rendered-radius.pr
│   │   │       │   │   ├── rendered-shadow-detailed.pr
│   │   │       │   │   ├── rendered-shadow.pr
│   │   │       │   │   ├── rendered-text-detailed.pr
│   │   │       │   │   ├── rendered-text.pr
│   │   │       │   │   ├── rendered-typography-detailed.pr
│   │   │       │   │   └── rendered-typography.pr
│   │   │       │   ├── ts-dictionnary-with-path.pr
│   │   │       │   └── ts-index-with-path.pr
│   │   │       └── js/
│   │   │           └── helpers.js
│   │   ├── talend-scripts.json
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── faceted-search/
│   │   ├── .babelrc
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .storybook/
│   │   │   ├── main.mjs
│   │   │   └── preview.jsx
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── jest.setup.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── CRUDBadges.js
│   │   │   ├── components/
│   │   │   │   ├── AddFacetPopover/
│   │   │   │   │   ├── AddFacetPopover.component.jsx
│   │   │   │   │   ├── AddFacetPopover.module.css
│   │   │   │   │   ├── AddFacetPopoverHeader/
│   │   │   │   │   │   ├── AddFacetPopoverHeader.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── AddFacetPopoverRow/
│   │   │   │   │   │   ├── AddFacetPopoverRowButton/
│   │   │   │   │   │   │   ├── AddFacetPopoverRowButton.component.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   ├── AddFacetPopoverRowItem/
│   │   │   │   │   │   │   ├── AddFacetPopoverRowItem.component.jsx
│   │   │   │   │   │   │   └── index.js
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── AddFacetPopver.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── AddFacetPopver.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── AdvancedSearch/
│   │   │   │   │   ├── AdvancedSearch.component.jsx
│   │   │   │   │   ├── AdvancedSearch.component.test.jsx
│   │   │   │   │   ├── AdvancedSearch.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── AdvancedSearch.component.test.js.snap
│   │   │   │   │   │   └── AdvancedSearch.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── Badges/
│   │   │   │   │   ├── BadgeCheckboxes/
│   │   │   │   │   │   ├── BadgeCheckboxes.component.jsx
│   │   │   │   │   │   ├── BadgeCheckboxes.component.test.jsx
│   │   │   │   │   │   ├── BadgeCheckboxes.module.css
│   │   │   │   │   │   ├── BadgeCheckboxesForm.component.jsx
│   │   │   │   │   │   ├── BadgeCheckboxesForm.component.test.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeDate/
│   │   │   │   │   │   ├── BadgeDate.component.jsx
│   │   │   │   │   │   ├── BadgeDate.component.test.jsx
│   │   │   │   │   │   ├── BadgeDate.module.css
│   │   │   │   │   │   ├── BadgeDateForm.component.jsx
│   │   │   │   │   │   ├── BadgeDateForm.component.test.jsx
│   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │       ├── BadgeDate.component.test.js.snap
│   │   │   │   │   │       ├── BadgeDate.component.test.jsx.snap
│   │   │   │   │   │       ├── BadgeDateForm.component.test.js.snap
│   │   │   │   │   │       └── BadgeDateForm.component.test.jsx.snap
│   │   │   │   │   ├── BadgeFaceted/
│   │   │   │   │   │   ├── BadgeFaceted.component.jsx
│   │   │   │   │   │   ├── BadgeFaceted.component.test.jsx
│   │   │   │   │   │   ├── BadgeFaceted.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── BadgeFaceted.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeMenu/
│   │   │   │   │   │   ├── BadgeMenu.component.jsx
│   │   │   │   │   │   ├── BadgeMenu.component.test.jsx
│   │   │   │   │   │   ├── BadgeMenu.module.css
│   │   │   │   │   │   ├── BadgeMenuForm.component.jsx
│   │   │   │   │   │   └── BadgeMenuForm.component.test.jsx
│   │   │   │   │   ├── BadgeNumber/
│   │   │   │   │   │   ├── BadgeNumber.component.jsx
│   │   │   │   │   │   ├── BadgeNumber.component.test.jsx
│   │   │   │   │   │   ├── BadgeNumberForm.component.jsx
│   │   │   │   │   │   ├── BadgeNumberForm.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeNumber.component.test.js.snap
│   │   │   │   │   │   │   ├── BadgeNumber.component.test.jsx.snap
│   │   │   │   │   │   │   ├── BadgeNumberForm.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeNumberForm.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeOperator/
│   │   │   │   │   │   ├── BadgeOperator.module.css
│   │   │   │   │   │   ├── BadgeOperatorOverlay.component.jsx
│   │   │   │   │   │   ├── BadgeOperatorPopover.component.jsx
│   │   │   │   │   │   ├── BadgeOperatorPopover.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeOperatorPopover.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeOperatorPopover.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeOverlay/
│   │   │   │   │   │   ├── BadgeOverlay.component.jsx
│   │   │   │   │   │   ├── BadgeOverlay.component.test.jsx
│   │   │   │   │   │   ├── BadgeOverlay.module.css
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── BadgeOverlay.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgePeriod/
│   │   │   │   │   │   ├── BadgePeriod.component.jsx
│   │   │   │   │   │   ├── BadgePeriod.component.test.jsx
│   │   │   │   │   │   ├── BadgePeriodForm.component.jsx
│   │   │   │   │   │   └── BadgePeriodForm.component.test.jsx
│   │   │   │   │   ├── BadgeSlider/
│   │   │   │   │   │   ├── BadgeSlider.component.jsx
│   │   │   │   │   │   ├── BadgeSlider.component.test.jsx
│   │   │   │   │   │   ├── BadgeSlider.module.css
│   │   │   │   │   │   ├── BadgeSliderForm.component.jsx
│   │   │   │   │   │   ├── BadgeSliderForm.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeSlider.component.test.js.snap
│   │   │   │   │   │   │   ├── BadgeSlider.component.test.jsx.snap
│   │   │   │   │   │   │   ├── BadgeSliderForm.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeSliderForm.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── BadgeText/
│   │   │   │   │   │   ├── BadgeText.component.jsx
│   │   │   │   │   │   ├── BadgeText.component.test.jsx
│   │   │   │   │   │   ├── BadgeTextForm.component.jsx
│   │   │   │   │   │   ├── BadgeTextForm.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── BadgeText.component.test.js.snap
│   │   │   │   │   │   │   ├── BadgeText.component.test.jsx.snap
│   │   │   │   │   │   │   ├── BadgeTextForm.component.test.js.snap
│   │   │   │   │   │   │   └── BadgeTextForm.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── BadgesGenerator/
│   │   │   │   │   ├── BadgesGenerator.component.jsx
│   │   │   │   │   ├── BadgesGenerator.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── BadgesGenerator.component.test.js.snap
│   │   │   │   │   │   └── BadgesGenerator.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── BasicSearch/
│   │   │   │   │   ├── BasicSearch.component.jsx
│   │   │   │   │   ├── BasicSearch.component.test.jsx
│   │   │   │   │   ├── BasicSearch.module.css
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── BasicSearch.component.test.js.snap
│   │   │   │   │   │   └── BasicSearch.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── FacetedManager/
│   │   │   │   │   ├── FacetedManager.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── FacetedSearch/
│   │   │   │   │   ├── FacetedSearch.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── FacetedToolbar/
│   │   │   │   │   ├── FacetedToolbar.component.jsx
│   │   │   │   │   ├── FacetedToolbar.module.css
│   │   │   │   │   └── index.js
│   │   │   │   ├── QuickSearchInput/
│   │   │   │   │   ├── QuickSearchInput.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── README.md
│   │   │   │   ├── context/
│   │   │   │   │   ├── badgeFaceted.context.js
│   │   │   │   │   └── facetedSearch.context.js
│   │   │   │   ├── facetedSearch.propTypes.js
│   │   │   │   ├── index.js
│   │   │   │   └── types/
│   │   │   │       ├── badgeDefinition.type.js
│   │   │   │       └── badgeDefinition.type.test.jsx
│   │   │   ├── constants.js
│   │   │   ├── controlled.js
│   │   │   ├── dictionary/
│   │   │   │   ├── badge.dictionary.js
│   │   │   │   ├── badge.dictionary.test.jsx
│   │   │   │   ├── helpers.dictionary.js
│   │   │   │   ├── helpers.dictionary.test.jsx
│   │   │   │   └── operator.dictionary.js
│   │   │   ├── helpers/
│   │   │   │   ├── usage.helpers.js
│   │   │   │   └── usage.helpers.test.jsx
│   │   │   ├── hooks/
│   │   │   │   ├── README.md
│   │   │   │   ├── badgeOverlayFlow.hook.js
│   │   │   │   └── facetedBadges.hook.js
│   │   │   ├── index.js
│   │   │   ├── stories/
│   │   │   │   ├── badge.stories.jsx
│   │   │   │   ├── badgesDefinitions.js
│   │   │   │   └── facetedSearch.stories.jsx
│   │   │   └── translate.js
│   │   ├── stylelint.config.mjs
│   │   ├── talend-i18n.json
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── faceted-search-query-client/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.js
│   │   │   ├── tql.js
│   │   │   └── tql.test.js
│   │   └── vitest.config.ts
│   ├── flow-designer/
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── eslint.config.mjs
│   │   ├── licence.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── actions/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── flow.actions.test.ts.snap
│   │   │   │   │   ├── link.actions.test.ts.snap
│   │   │   │   │   ├── node.actions.test.ts.snap
│   │   │   │   │   └── port.actions.test.ts.snap
│   │   │   │   ├── flow.actions.test.ts
│   │   │   │   ├── flow.actions.ts
│   │   │   │   ├── link.actions.test.ts
│   │   │   │   ├── link.actions.ts
│   │   │   │   ├── node.actions.test.ts
│   │   │   │   ├── node.actions.ts
│   │   │   │   ├── nodeType.actions.test.ts
│   │   │   │   ├── nodeType.actions.ts
│   │   │   │   ├── port.actions.test.ts
│   │   │   │   └── port.actions.ts
│   │   │   ├── api/
│   │   │   │   ├── data/
│   │   │   │   │   ├── data.test.ts
│   │   │   │   │   └── data.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── link/
│   │   │   │   │   ├── link.test.ts
│   │   │   │   │   └── link.ts
│   │   │   │   ├── node/
│   │   │   │   │   ├── node.test.ts
│   │   │   │   │   └── node.ts
│   │   │   │   ├── port/
│   │   │   │   │   ├── port.test.ts
│   │   │   │   │   └── port.ts
│   │   │   │   ├── position/
│   │   │   │   │   ├── position.test.ts
│   │   │   │   │   └── position.ts
│   │   │   │   ├── readme.md
│   │   │   │   ├── size/
│   │   │   │   │   ├── size.test.ts
│   │   │   │   │   └── size.ts
│   │   │   │   └── throwInDev.ts
│   │   │   ├── components/
│   │   │   │   ├── FlowDesigner.container.test.tsx
│   │   │   │   ├── FlowDesigner.container.tsx
│   │   │   │   ├── ZoomHandler.component.tsx
│   │   │   │   ├── ZoomHandler.test.tsx
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── FlowDesigner.container.test.tsx.snap
│   │   │   │   │   └── ZoomHandler.test.tsx.snap
│   │   │   │   ├── configuration/
│   │   │   │   │   ├── LinkType.component.ts
│   │   │   │   │   ├── NodeType.component.ts
│   │   │   │   │   ├── NodeType.test.tsx
│   │   │   │   │   └── PortType.component.ts
│   │   │   │   ├── grid/
│   │   │   │   │   ├── Grid.component.tsx
│   │   │   │   │   ├── Grid.test.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       └── Grid.test.tsx.snap
│   │   │   │   ├── link/
│   │   │   │   │   ├── AbstractLink.component.tsx
│   │   │   │   │   ├── LinkHandle.component.tsx
│   │   │   │   │   ├── LinkHandle.test.tsx
│   │   │   │   │   ├── LinksRenderer.component.tsx
│   │   │   │   │   ├── LinksRenderer.test.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       ├── LinkHandle.test.tsx.snap
│   │   │   │   │       └── LinksRenderer.test.tsx.snap
│   │   │   │   ├── node/
│   │   │   │   │   ├── AbstractNode.component.tsx
│   │   │   │   │   ├── AbstractNode.snapshot.test.tsx
│   │   │   │   │   ├── AbstractNode.test.tsx
│   │   │   │   │   ├── NodesRenderer.component.tsx
│   │   │   │   │   ├── NodesRenderer.test.tsx
│   │   │   │   │   └── __snapshots__/
│   │   │   │   │       ├── AbstractNode.snapshot.test.tsx.snap
│   │   │   │   │       └── NodesRenderer.test.tsx.snap
│   │   │   │   └── port/
│   │   │   │       ├── AbstractPort.component.tsx
│   │   │   │       ├── AbstractPort.test.tsx
│   │   │   │       ├── PortsRenderer.component.tsx
│   │   │   │       ├── PortsRenderer.test.tsx
│   │   │   │       └── __snapshots__/
│   │   │   │           ├── AbstractPort.test.tsx.snap
│   │   │   │           └── PortsRenderer.test.tsx.snap
│   │   │   ├── constants/
│   │   │   │   ├── flowdesigner.constants.ts
│   │   │   │   ├── flowdesigner.model.ts
│   │   │   │   └── flowdesigner.proptypes.ts
│   │   │   ├── customTypings/
│   │   │   │   └── index.d.ts
│   │   │   ├── index.ts
│   │   │   ├── reducers/
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── flow.reducer.test.ts.snap
│   │   │   │   │   ├── link.reducer.test.ts.snap
│   │   │   │   │   ├── node.reducer.test.ts.snap
│   │   │   │   │   └── port.reducer.test.ts.snap
│   │   │   │   ├── flow.reducer.test.ts
│   │   │   │   ├── flow.reducer.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── link.reducer.test.ts
│   │   │   │   ├── link.reducer.ts
│   │   │   │   ├── node.reducer.test.ts
│   │   │   │   ├── node.reducer.ts
│   │   │   │   ├── nodeType.reducer.ts
│   │   │   │   ├── port.reducer.test.ts
│   │   │   │   └── port.reducer.ts
│   │   │   └── selectors/
│   │   │       ├── __snapshots__/
│   │   │       │   └── nodeSelectors.test.ts.snap
│   │   │       ├── linkSelectors.ts
│   │   │       ├── nodeSelectors.test.ts
│   │   │       ├── nodeSelectors.ts
│   │   │       ├── portSelectors.test.ts
│   │   │       └── portSelectors.ts
│   │   ├── test/
│   │   │   ├── fileMock.js
│   │   │   ├── styleMock.js
│   │   │   └── test-setup.js
│   │   ├── tsconfig.json
│   │   └── vitest.config.ts
│   ├── forms/
│   │   ├── .babelrc.json
│   │   ├── .gitignore
│   │   ├── .npmignore
│   │   ├── .sass-lint.yml
│   │   ├── .storybook/
│   │   │   └── preview.js
│   │   ├── 6.0-BreakingChanges.md
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── README.md
│   │   ├── __mocks__/
│   │   │   ├── data.jsx
│   │   │   └── react-virtualized.js
│   │   ├── eslint.config.mjs
│   │   ├── i18next-scanner.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── FormSkeleton.module.css
│   │   │   ├── FormSkeleton.test.tsx
│   │   │   ├── FormSkeleton.tsx
│   │   │   ├── FormSwitcher.test.tsx
│   │   │   ├── FormSwitcher.tsx
│   │   │   ├── UIForm/
│   │   │   │   ├── FormTemplate/
│   │   │   │   │   ├── DefaultFormTemplate.component.jsx
│   │   │   │   │   ├── TextModeFormTemplate.component.jsx
│   │   │   │   │   └── index.js
│   │   │   │   ├── Message/
│   │   │   │   │   ├── Message.component.jsx
│   │   │   │   │   ├── Message.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   ├── Message.component.test.js.snap
│   │   │   │   │   │   └── Message.component.test.jsx.snap
│   │   │   │   │   ├── generateId.js
│   │   │   │   │   ├── generateId.test.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── README.md
│   │   │   │   ├── UIForm.component.jsx
│   │   │   │   ├── UIForm.container.jsx
│   │   │   │   ├── UIForm.container.test.jsx
│   │   │   │   ├── UIForm.module.css
│   │   │   │   ├── Widget/
│   │   │   │   │   ├── Widget.component.jsx
│   │   │   │   │   ├── Widget.component.module.css
│   │   │   │   │   ├── Widget.component.test.jsx
│   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   └── Widget.component.test.jsx.snap
│   │   │   │   │   └── index.js
│   │   │   │   ├── __snapshots__/
│   │   │   │   │   ├── ordering.json
│   │   │   │   │   ├── simple-merged.json
│   │   │   │   │   ├── simple.json
│   │   │   │   │   └── widgets.json
│   │   │   │   ├── context.js
│   │   │   │   ├── customFormats.js
│   │   │   │   ├── customFormats.test.js
│   │   │   │   ├── doc/
│   │   │   │   │   ├── conditional-rendering.md
│   │   │   │   │   ├── display-mode.md
│   │   │   │   │   ├── how-to-use.md
│   │   │   │   │   ├── principles.md
│   │   │   │   │   ├── triggers.md
│   │   │   │   │   ├── validation.md
│   │   │   │   │   └── widgets.md
│   │   │   │   ├── fields/
│   │   │   │   │   ├── Button/
│   │   │   │   │   │   ├── Button.component.jsx
│   │   │   │   │   │   ├── Button.component.test.jsx
│   │   │   │   │   │   ├── Buttons.component.jsx
│   │   │   │   │   │   ├── Buttons.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── SingleButton.component.jsx
│   │   │   │   │   │   ├── SingleButton.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Button.component.test.js.snap
│   │   │   │   │   │   │   ├── Button.component.test.jsx.snap
│   │   │   │   │   │   │   ├── Buttons.component.test.js.snap
│   │   │   │   │   │   │   ├── Buttons.component.test.jsx.snap
│   │   │   │   │   │   │   ├── SingleButton.component.test.js.snap
│   │   │   │   │   │   │   └── SingleButton.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── CheckBox/
│   │   │   │   │   │   ├── CheckBox.component.jsx
│   │   │   │   │   │   ├── CheckBox.test.jsx
│   │   │   │   │   │   ├── CheckBoxes.component.jsx
│   │   │   │   │   │   ├── CheckBoxes.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── SimpleCheckBox.component.jsx
│   │   │   │   │   │   ├── SimpleCheckBox.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── CheckBox.test.js.snap
│   │   │   │   │   │   │   ├── CheckBox.test.jsx.snap
│   │   │   │   │   │   │   ├── CheckBoxes.test.js.snap
│   │   │   │   │   │   │   ├── CheckBoxes.test.jsx.snap
│   │   │   │   │   │   │   ├── SimpleCheckBox.test.js.snap
│   │   │   │   │   │   │   └── SimpleCheckBox.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.test.js.snap
│   │   │   │   │   │   │       └── TextMode.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Code/
│   │   │   │   │   │   ├── Code.component.test.tsx
│   │   │   │   │   │   ├── Code.component.tsx
│   │   │   │   │   │   ├── CodeSkeleton.component.tsx
│   │   │   │   │   │   ├── CodeSkeleton.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.test.tsx
│   │   │   │   │   │   │   └── TextMode.component.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── Comparator/
│   │   │   │   │   │   ├── Comparator.component.jsx
│   │   │   │   │   │   ├── Comparator.component.test.jsx
│   │   │   │   │   │   ├── Comparator.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Comparator.component.test.js.snap
│   │   │   │   │   │   │   └── Comparator.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.test.js.snap
│   │   │   │   │   │   │       └── TextMode.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Datalist/
│   │   │   │   │   │   ├── Datalist.component.jsx
│   │   │   │   │   │   ├── Datalist.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Datalist.component.test.js.snap
│   │   │   │   │   │   │   └── Datalist.component.test.jsx.snap
│   │   │   │   │   │   ├── constants.js
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Date/
│   │   │   │   │   │   ├── Date.component.jsx
│   │   │   │   │   │   ├── Date.component.test.jsx
│   │   │   │   │   │   ├── Date.utils.js
│   │   │   │   │   │   ├── Date.utils.test.js
│   │   │   │   │   │   ├── DateTime.component.jsx
│   │   │   │   │   │   ├── DateTime.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Time.component.jsx
│   │   │   │   │   │   ├── Time.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Date.component.test.js.snap
│   │   │   │   │   │   │   ├── Date.component.test.jsx.snap
│   │   │   │   │   │   │   ├── DateTime.component.test.js.snap
│   │   │   │   │   │   │   ├── DateTime.component.test.jsx.snap
│   │   │   │   │   │   │   ├── Time.component.test.js.snap
│   │   │   │   │   │   │   └── Time.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Enumeration/
│   │   │   │   │   │   ├── EnumerationWidget.jsx
│   │   │   │   │   │   ├── EnumerationWidget.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── index.js
│   │   │   │   │   │   └── utils/
│   │   │   │   │   │       ├── utils.js
│   │   │   │   │   │       └── utils.test.js
│   │   │   │   │   ├── FieldTemplate/
│   │   │   │   │   │   ├── FieldTemplate.component.jsx
│   │   │   │   │   │   ├── FieldTemplate.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── FieldTemplate.component.test.js.snap
│   │   │   │   │   │   │   └── FieldTemplate.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── File/
│   │   │   │   │   │   ├── File.component.jsx
│   │   │   │   │   │   ├── File.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── File.component.test.js.snap
│   │   │   │   │   │   │   └── File.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── KeyValue/
│   │   │   │   │   │   ├── KeyValue.component.jsx
│   │   │   │   │   │   ├── KeyValue.component.test.jsx
│   │   │   │   │   │   ├── KeyValue.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── KeyValue.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ListView/
│   │   │   │   │   │   ├── ListView.component.jsx
│   │   │   │   │   │   ├── ListView.component.test.jsx
│   │   │   │   │   │   ├── ListView.utils.js
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── MultiSelectTag/
│   │   │   │   │   │   ├── MultiSelectTag.component.jsx
│   │   │   │   │   │   ├── MultiSelectTag.component.test.jsx
│   │   │   │   │   │   ├── MultiSelectTag.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   └── TextMode.module.css
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── NestedListView/
│   │   │   │   │   │   ├── NestedListView.component.jsx
│   │   │   │   │   │   ├── NestedListView.module.css
│   │   │   │   │   │   ├── NestedListView.test.jsx
│   │   │   │   │   │   ├── NestedListView.utils.js
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── RadioOrSelect/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── RadioOrSelect.component.jsx
│   │   │   │   │   │   ├── RadioOrSelect.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── RadioOrSelect.component.test.js.snap
│   │   │   │   │   │   │   └── RadioOrSelect.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Radios/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Radios.component.jsx
│   │   │   │   │   │   ├── Radios.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Radios.component.test.js.snap
│   │   │   │   │   │   │   └── Radios.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── ResourcePicker/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── ResourcePicker.component.jsx
│   │   │   │   │   │   ├── ResourcePicker.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   └── ResourcePicker.component.test.jsx.snap
│   │   │   │   │   │   ├── constants.js
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Select/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Select.component.jsx
│   │   │   │   │   │   ├── Select.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Select.component.test.js.snap
│   │   │   │   │   │   │   └── Select.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Text/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Text.component.jsx
│   │   │   │   │   │   ├── Text.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Text.component.test.js.snap
│   │   │   │   │   │   │   └── Text.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TextArea/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── TextArea.component.jsx
│   │   │   │   │   │   ├── TextArea.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TextArea.component.test.js.snap
│   │   │   │   │   │   │   └── TextArea.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextMode.component.jsx
│   │   │   │   │   │   │   ├── TextMode.component.test.jsx
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextMode.component.test.js.snap
│   │   │   │   │   │   │       └── TextMode.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── TimezoneList/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── TimezoneList.component.jsx
│   │   │   │   │   │   ├── TimezoneList.component.test.jsx
│   │   │   │   │   │   ├── TimezoneList.utils.js
│   │   │   │   │   │   ├── TimezoneList.utils.test.js
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── TimezoneList.component.test.js.snap
│   │   │   │   │   │   │   └── TimezoneList.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Toggle/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Toggle.component.jsx
│   │   │   │   │   │   ├── Toggle.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Toggle.component.test.js.snap
│   │   │   │   │   │   │   └── Toggle.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── fieldsets/
│   │   │   │   │   ├── Array/
│   │   │   │   │   │   ├── Array.component.jsx
│   │   │   │   │   │   ├── Array.component.test.jsx
│   │   │   │   │   │   ├── ArrayItem.component.jsx
│   │   │   │   │   │   ├── ArrayItem.component.test.jsx
│   │   │   │   │   │   ├── ArrayItem.module.css
│   │   │   │   │   │   ├── DefaultArrayTemplate.component.jsx
│   │   │   │   │   │   ├── DefaultArrayTemplate.component.test.jsx
│   │   │   │   │   │   ├── DefaultArrayTemplate.module.css
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Array.component.test.js.snap
│   │   │   │   │   │   │   ├── Array.component.test.jsx.snap
│   │   │   │   │   │   │   ├── ArrayItem.component.test.js.snap
│   │   │   │   │   │   │   ├── ArrayItem.component.test.jsx.snap
│   │   │   │   │   │   │   ├── DefaultArrayTemplate.component.test.js.snap
│   │   │   │   │   │   │   └── DefaultArrayTemplate.component.test.jsx.snap
│   │   │   │   │   │   ├── displayMode/
│   │   │   │   │   │   │   ├── TextModeArrayTemplate.component.jsx
│   │   │   │   │   │   │   ├── TextModeArrayTemplate.component.test.jsx
│   │   │   │   │   │   │   ├── TextModeArrayTemplate.module.css
│   │   │   │   │   │   │   └── __snapshots__/
│   │   │   │   │   │   │       ├── TextModeArrayTemplate.component.test.js.snap
│   │   │   │   │   │   │       └── TextModeArrayTemplate.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── CollapsibleFieldset/
│   │   │   │   │   │   ├── CollapsibleFieldset.component.jsx
│   │   │   │   │   │   ├── CollapsibleFieldset.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── CollapsibleFieldset.component.test.js.snap
│   │   │   │   │   │   │   └── CollapsibleFieldset.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Columns/
│   │   │   │   │   │   ├── Columns.component.jsx
│   │   │   │   │   │   ├── Columns.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Columns.component.test.js.snap
│   │   │   │   │   │   │   └── Columns.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Fieldset/
│   │   │   │   │   │   ├── Fieldset.component.jsx
│   │   │   │   │   │   ├── Fieldset.component.test.jsx
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Fieldset.component.test.js.snap
│   │   │   │   │   │   │   └── Fieldset.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Tabs/
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── Tabs.component.jsx
│   │   │   │   │   │   ├── Tabs.component.test.jsx
│   │   │   │   │   │   ├── __snapshots__/
│   │   │   │   │   │   │   ├── Tabs.component.test.js.snap
│   │   │   │   │   │   │   └── Tabs.component.test.jsx.snap
│   │   │   │   │   │   └── index.js
│   │   │   │   │   └── index.js
│   │   │   │   ├── index.js
│   │   │   │   ├── index.test.js
│   │   │   │   ├── lang.js
│   │   │   │   ├── merge.js
│   │   │   │   ├── merge.test.js
│   │   │   │   ├── trigger/
│   │   │   │   │   └── index.js
│   │   │   │   └── utils/
│   │   │   │       ├── array.js
│   │   │   │       ├── array.test.js
│   │   │   │       ├── condition.js
│   │   │   │       ├── condition.test.js
│   │   │   │       ├── errors.js
│   │   │   │       ├── errors.test.js
│   │   │   │       ├── index.js
│   │   │   │       ├── labels.jsx
│   │   │   │       ├── labels.module.css
│   │   │   │       ├── propTypes.js
│   │   │   │       ├── properties.js
│   │   │   │       ├── properties.test.js
│   │   │   │       ├── templates.js
│   │   │   │       ├── triggers.js
│   │   │   │       ├── validation.js
│   │   │   │       ├── validation.test.js
│   │   │   │       └── widgets.js
│   │   │   ├── constants.ts
│   │   │   ├── declaration.d.ts
│   │   │   ├── index.ts
│   │   │   ├── rhf/
│   │   │   │   ├── fields/
│   │   │   │   │   ├── Input/
│   │   │   │   │   │   ├── Input.stories.jsx
│   │   │   │   │   │   ├── Input.test.jsx
│   │   │   │   │   │   ├── RHFInput.component.jsx
│   │   │   │   │   │   └── index.js
│   │   │   │   │   ├── Select
Download .txt
Showing preview only (388K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4127 symbols across 1248 files)

FILE: .github/actions/lint-merge-report/merge-lint-reports.mjs
  function getPackageDirs (line 16) | function getPackageDirs() {
  function getPackages (line 25) | function getPackages(packageDirs) {
  function transform (line 34) | function transform(item) {
  function runGitDiff (line 56) | function runGitDiff(base, head) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap.js
  function transitionEnd (line 34) | function transitionEnd() {
  function removeElement (line 127) | function removeElement() {
  function Plugin (line 143) | function Plugin(option) {
  function Plugin (line 252) | function Plugin(option) {
  function Plugin (line 478) | function Plugin(option) {
  function getTargetFromTrigger (line 705) | function getTargetFromTrigger($trigger) {
  function Plugin (line 717) | function Plugin(option) {
  function getParent (line 784) | function getParent($this) {
  function clearMenus (line 797) | function clearMenus(e) {
  function Plugin (line 890) | function Plugin(option) {
  function Plugin (line 1234) | function Plugin(option, _relatedTarget) {
  function allowedAttribute (line 1361) | function allowedAttribute(attr, allowedAttributeList) {
  function sanitizeHtml (line 1386) | function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
  function complete (line 1757) | function complete() {
  function Plugin (line 1936) | function Plugin(option) {
  function Plugin (line 2060) | function Plugin(option) {
  function ScrollSpy (line 2103) | function ScrollSpy(element, options) {
  function Plugin (line 2223) | function Plugin(option) {
  function next (line 2332) | function next() {
  function Plugin (line 2378) | function Plugin(option) {
  function Plugin (line 2537) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/affix.js
  function Plugin (line 121) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/alert.js
  function removeElement (line 49) | function removeElement() {
  function Plugin (line 65) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/button.js
  function Plugin (line 78) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/carousel.js
  function Plugin (line 178) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/collapse.js
  function getTargetFromTrigger (line 158) | function getTargetFromTrigger($trigger) {
  function Plugin (line 170) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js
  function getParent (line 24) | function getParent($this) {
  function clearMenus (line 37) | function clearMenus(e) {
  function Plugin (line 130) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/modal.js
  function Plugin (line 308) | function Plugin(option, _relatedTarget) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/popover.js
  function Plugin (line 97) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js
  function ScrollSpy (line 16) | function ScrollSpy(element, options) {
  function Plugin (line 136) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/tab.js
  function next (line 72) | function next() {
  function Plugin (line 118) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js
  function allowedAttribute (line 76) | function allowedAttribute(attr, allowedAttributeList) {
  function sanitizeHtml (line 101) | function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
  function complete (line 472) | function complete() {
  function Plugin (line 651) | function Plugin(option) {

FILE: fork/bootstrap-sass/assets/javascripts/bootstrap/transition.js
  function transitionEnd (line 16) | function transitionEnd() {

FILE: fork/dynamic-cdn-webpack-plugin/__mocks__/fs.js
  function __setMockFiles (line 9) | function __setMockFiles(newMockFiles) {
  function readdirSync (line 33) | function readdirSync(directoryPath) {
  function existsSync (line 37) | function existsSync(directoryPath) {

FILE: fork/dynamic-cdn-webpack-plugin/src/find.js
  function findPackage (line 6) | function findPackage(info) {
  function findPackagesFromScopeFolder (line 26) | function findPackagesFromScopeFolder(scope, name, scopeFolderPath) {
  function findPackagesFromNonScopeFolder (line 50) | function findPackagesFromNonScopeFolder(scope, name, nonScopeFolderPath) {
  function findPackages (line 78) | function findPackages(scope, name, buff = []) {

FILE: fork/dynamic-cdn-webpack-plugin/src/find.test.js
  function setMockFiles (line 13) | function setMockFiles(newMockFiles) {
  constant MOCK_FILE_INFO (line 35) | const MOCK_FILE_INFO = {

FILE: fork/dynamic-cdn-webpack-plugin/src/get-resolver.js
  function getResolver (line 3) | function getResolver(resolver = '@talend/module-to-cdn') {

FILE: fork/dynamic-cdn-webpack-plugin/src/index.js
  function addUnpkgURL (line 32) | function addUnpkgURL(info) {
  constant MODULE_WITHOUT_MAIN (line 37) | const MODULE_WITHOUT_MAIN = [
  function getDeps (line 58) | function getDeps(cdnConfig) {
  function getPackageRootPath (line 72) | function getPackageRootPath(cdnConfig, cwd) {
  function computeSRI (line 90) | async function computeSRI(filePath) {
  function moduleJSToMetadata (line 100) | async function moduleJSToMetadata(data, { name, version, path: depPath, ...
  function moduleCSSToMetadata (line 115) | async function moduleCSSToMetadata(data, { name, version, stylePath, sty...
  class DynamicCdnWebpackPlugin (line 127) | class DynamicCdnWebpackPlugin {
    method constructor (line 128) | constructor({
    method apply (line 180) | apply(compiler) {
    method execute (line 199) | execute(compiler, { env }) {
    method addDependencies (line 229) | addDependencies(contextPath, manifest, { env, requester }) {
    method addModule (line 284) | async addModule(contextPath, modulePath, { env, isOptional = false }) {
    method applyWebpackCore (line 423) | applyWebpackCore(compiler) {
    method applyHtmlWebpackPlugin (line 446) | applyHtmlWebpackPlugin(compiler) {

FILE: fork/dynamic-cdn-webpack-plugin/src/resolve-pkg.js
  function resolve (line 10) | function resolve(moduleId, options) {

FILE: fork/dynamic-cdn-webpack-plugin/test/core.test.js
  function getChunkFiles (line 10) | function getChunkFiles(stats) {

FILE: fork/json-schema-form-core/src/merge.js
  function merge (line 6) | function merge(

FILE: fork/json-schema-form-core/src/resolve.js
  function jsonref (line 3) | function jsonref(schema, callBack) {

FILE: fork/json-schema-form-core/src/schema-defaults.ts
  function defaultFormDefinition (line 29) | function defaultFormDefinition(schemaTypes, name, schema, options) {
  function stdFormObj (line 55) | function stdFormObj(name, schema, options) {
  function text (line 109) | function text(name, schema, options) {
  function number (line 121) | function number(name, schema, options) {
  function integer (line 131) | function integer(name, schema, options) {
  function checkbox (line 141) | function checkbox(name, schema, options) {
  function select (line 151) | function select(name, schema, options) {
  function checkboxes (line 164) | function checkboxes(name, schema, options) {
  function fieldset (line 177) | function fieldset(name, schema, options, defaultFormDef) {
  function array (line 211) | function array(name, schema, options, defaultFormDef) {
  function createDefaults (line 243) | function createDefaults() {
  function defaultForm (line 259) | function defaultForm(

FILE: fork/json-schema-form-core/src/select.js
  function select (line 21) | function select(projection, obj, valueToSet) {

FILE: fork/json-schema-form-core/src/sf-path.ts
  function name (line 15) | function name(key: Array<string>, separator?: string, formName = '', omi...

FILE: fork/json-schema-form-core/src/traverse.ts
  function traverseSchema (line 5) | function traverseSchema(schema, fn, path, ignoreArrays) {
  function traverseForm (line 35) | function traverseForm(form, fn) {

FILE: fork/json-schema-form-core/src/validate.js
  function validateTypeSpecificInput (line 4) | function validateTypeSpecificInput(inputType = '', event = {}) {
  function validate (line 28) | function validate(form, value, event) {

FILE: fork/module-to-cdn/cache.js
  constant CACHE_BASE_PATH (line 12) | const CACHE_BASE_PATH = `${process.cwd()}/.test-cache`;
  constant CACHE_NPM_PATH (line 14) | const CACHE_NPM_PATH = `${CACHE_BASE_PATH}/.npm-cache-info.json`;
  constant CACHE_NPM (line 15) | const CACHE_NPM = {
  constant AXIOS_CACHE_PATH (line 29) | const AXIOS_CACHE_PATH = `${CACHE_BASE_PATH}/axios`;
  function httpGet (line 31) | function httpGet(url, {retry} = {retry: 0}) {
  function ensureCacheFolderExists (line 57) | function ensureCacheFolderExists() {
  function getInfo (line 69) | function getInfo(url) {
  function getPathFromURL (line 90) | function getPathFromURL(url) {
  function cachedGet (line 95) | async function cachedGet(url) {
  function isInCache (line 118) | function isInCache(url) {
  function getModuleInfo (line 122) | function getModuleInfo(moduleName) {
  function getAllVersions (line 138) | function getAllVersions(moduleName) {
  function getRangeEdgeVersions (line 142) | function getRangeEdgeVersions(allVersions) {

FILE: fork/module-to-cdn/index.js
  function add (line 24) | function add(config) {
  function getModuleName (line 34) | function getModuleName(importPath) {
  function main (line 48) | function main(importPath, version, options = {}) {
  function getAllModules (line 122) | function getAllModules() {

FILE: fork/module-to-cdn/modules.test.js
  function isValidVarName (line 26) | function isValidVarName(name) {
  function testCdnConfig (line 51) | async function testCdnConfig(t, cdnConfig, importPath, version) {
  function testNextModule (line 88) | async function testNextModule(t, importPath, env) {
  function limit (line 107) | function limit(m) {

FILE: fork/module-to-cdn/url.js
  function unpkg (line 1) | function unpkg(info) {
  function getURL (line 12) | function getURL(info) {
  function setURL (line 20) | function setURL(fn) {

FILE: fork/module-to-cdn/version.js
  function parseToSemverIfPossible (line 6) | function parseToSemverIfPossible(version) {

FILE: fork/react-bootstrap/src/Accordion.jsx
  class Accordion (line 5) | class Accordion extends React.Component {
    method render (line 6) | render() {

FILE: fork/react-bootstrap/src/Alert.jsx
  class Alert (line 18) | class Alert extends React.Component {
    method render (line 19) | render() {

FILE: fork/react-bootstrap/src/Badge.jsx
  class Badge (line 17) | class Badge extends React.Component {
    method hasContent (line 18) | hasContent(children) {
    method render (line 34) | render() {

FILE: fork/react-bootstrap/src/Breadcrumb.jsx
  class Breadcrumb (line 7) | class Breadcrumb extends React.Component {
    method render (line 8) | render() {

FILE: fork/react-bootstrap/src/BreadcrumbItem.jsx
  class BreadcrumbItem (line 30) | class BreadcrumbItem extends React.Component {
    method render (line 31) | render() {

FILE: fork/react-bootstrap/src/Button.jsx
  class Button (line 38) | class Button extends React.Component {
    method renderAnchor (line 39) | renderAnchor(elementProps, className) {
    method renderButton (line 48) | renderButton({ componentClass, ...elementProps }, className) {
    method render (line 56) | render() {

FILE: fork/react-bootstrap/src/ButtonGroup.jsx
  class ButtonGroup (line 30) | class ButtonGroup extends React.Component {
    method render (line 31) | render() {

FILE: fork/react-bootstrap/src/ButtonToolbar.jsx
  class ButtonToolbar (line 6) | class ButtonToolbar extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/Carousel.jsx
  class Carousel (line 72) | class Carousel extends React.Component {
    method constructor (line 73) | constructor(props, context) {
    method componentDidMount (line 93) | componentDidMount() {
    method componentDidUpdate (line 97) | componentDidUpdate(prevProps) {
    method componentWillUnmount (line 122) | componentWillUnmount() {
    method getActiveIndex (line 127) | getActiveIndex() {
    method getDirection (line 132) | getDirection(prevIndex, index) {
    method handleItemAnimateOutEnd (line 140) | handleItemAnimateOutEnd() {
    method handleMouseOut (line 156) | handleMouseOut() {
    method handleMouseOver (line 162) | handleMouseOver() {
    method handleNext (line 168) | handleNext(e) {
    method handlePrev (line 182) | handlePrev(e) {
    method pause (line 195) | pause() {
    method play (line 201) | play() {
    method select (line 206) | select(index, e, direction) {
    method waitForNext (line 255) | waitForNext() {
    method renderControls (line 263) | renderControls(properties) {
    method renderIndicators (line 294) | renderIndicators(children, activeIndex, bsProps) {
    method render (line 314) | render() {

FILE: fork/react-bootstrap/src/CarouselCaption.jsx
  class CarouselCaption (line 15) | class CarouselCaption extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/CarouselItem.jsx
  class CarouselItem (line 22) | class CarouselItem extends React.Component {
    method constructor (line 23) | constructor(props, context) {
    method componentDidUpdate (line 35) | componentDidUpdate(prevProps) {
    method componentDidUpdate (line 42) | componentDidUpdate(prevProps) {
    method componentWillUnmount (line 55) | componentWillUnmount() {
    method handleAnimateOutEnd (line 59) | handleAnimateOutEnd() {
    method startAnimation (line 69) | startAnimation() {
    method render (line 79) | render() {

FILE: fork/react-bootstrap/src/Checkbox.jsx
  class Checkbox (line 34) | class Checkbox extends React.Component {
    method render (line 35) | render() {

FILE: fork/react-bootstrap/src/Clearfix.jsx
  class Clearfix (line 51) | class Clearfix extends React.Component {
    method render (line 52) | render() {

FILE: fork/react-bootstrap/src/CloseButton.jsx
  class CloseButton (line 13) | class CloseButton extends React.Component {
    method render (line 14) | render() {

FILE: fork/react-bootstrap/src/Col.jsx
  class Col (line 178) | class Col extends React.Component {
    method render (line 179) | render() {

FILE: fork/react-bootstrap/src/Collapse.jsx
  constant MARGINS (line 11) | const MARGINS = {
  function triggerBrowserReflow (line 18) | function triggerBrowserReflow(node) {
  function getDimensionValue (line 23) | function getDimensionValue(dimension, elem) {
  class Collapse (line 128) | class Collapse extends React.Component {
    method getDimension (line 129) | getDimension() {
    method _getScrollDimensionValue (line 136) | _getScrollDimensionValue(elem, dimension) {
    method render (line 165) | render() {

FILE: fork/react-bootstrap/src/ControlLabel.jsx
  class ControlLabel (line 24) | class ControlLabel extends React.Component {
    method render (line 25) | render() {

FILE: fork/react-bootstrap/src/Dropdown.jsx
  constant TOGGLE_ROLE (line 22) | const TOGGLE_ROLE = DropdownToggle.defaultProps.bsRole;
  constant MENU_ROLE (line 23) | const MENU_ROLE = DropdownMenu.defaultProps.bsRole;
  class Dropdown (line 114) | class Dropdown extends React.Component {
    method constructor (line 115) | constructor(props, context) {
    method componentDidMount (line 126) | componentDidMount() {
    method componentDidUpdate (line 130) | componentDidUpdate(prevProps) {
    method focus (line 149) | focus() {
    method focusNextOnOpen (line 157) | focusNextOnOpen() {
    method handleClick (line 169) | handleClick(event) {
    method handleClose (line 177) | handleClose(event, eventDetails) {
    method handleKeyDown (line 185) | handleKeyDown(event) {
    method toggleOpen (line 209) | toggleOpen(event, eventDetails) {
    method renderMenu (line 221) | renderMenu(child, { id, onSelect, rootCloseEvent, ...props }) {
    method renderToggle (line 250) | renderToggle(child, props) {
    method render (line 275) | render() {

FILE: fork/react-bootstrap/src/Dropdown.test.jsx
  function CustomMenu (line 14) | function CustomMenu({ children, ...props }) {
  function OpenProp (line 314) | function OpenProp() {
  function RefDropdown (line 443) | function RefDropdown() {
  function RefDropdown (line 482) | function RefDropdown() {

FILE: fork/react-bootstrap/src/DropdownButton.jsx
  class DropdownButton (line 23) | class DropdownButton extends React.Component {
    method render (line 24) | render() {

FILE: fork/react-bootstrap/src/DropdownMenu.jsx
  class DropdownMenu (line 26) | class DropdownMenu extends React.Component {
    method constructor (line 27) | constructor(props) {
    method getFocusableMenuItems (line 34) | getFocusableMenuItems() {
    method getItemsAndActiveIndex (line 43) | getItemsAndActiveIndex() {
    method focusNext (line 50) | focusNext() {
    method focusPrevious (line 60) | focusPrevious() {
    method handleKeyDown (line 70) | handleKeyDown(event) {
    method handleRootClose (line 91) | handleRootClose(event) {
    method render (line 95) | render() {

FILE: fork/react-bootstrap/src/DropdownToggle.jsx
  class DropdownToggle (line 22) | class DropdownToggle extends React.Component {
    method render (line 23) | render() {

FILE: fork/react-bootstrap/src/Fade.jsx
  class Fade (line 74) | class Fade extends React.Component {
    method render (line 75) | render() {

FILE: fork/react-bootstrap/src/Fade.test.jsx
  method render (line 12) | render() {
  function onEntering (line 41) | function onEntering() {
  function onExiting (line 54) | function onExiting() {

FILE: fork/react-bootstrap/src/Form.jsx
  class Form (line 20) | class Form extends React.Component {
    method render (line 21) | render() {

FILE: fork/react-bootstrap/src/FormControl.jsx
  class FormControl (line 40) | class FormControl extends React.Component {
    method render (line 41) | render() {

FILE: fork/react-bootstrap/src/FormControlFeedback.jsx
  class FormControlFeedback (line 16) | class FormControlFeedback extends React.Component {
    method getGlyph (line 17) | getGlyph(validationState) {
    method renderDefaultFeedback (line 30) | renderDefaultFeedback(formGroup, className, classes, elementProps) {
    method render (line 39) | render() {

FILE: fork/react-bootstrap/src/FormControlStatic.jsx
  class FormControlStatic (line 15) | class FormControlStatic extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/FormControlStatic.test.jsx
  function MyComponent (line 19) | function MyComponent({ children, ...props }) {

FILE: fork/react-bootstrap/src/FormGroup.jsx
  class FormGroup (line 21) | class FormGroup extends React.Component {
    method getChildContext (line 22) | getChildContext() {
    method hasFeedback (line 33) | hasFeedback(children) {
    method render (line 42) | render() {

FILE: fork/react-bootstrap/src/Glyphicon.jsx
  class Glyphicon (line 14) | class Glyphicon extends React.Component {
    method render (line 15) | render() {

FILE: fork/react-bootstrap/src/Grid.jsx
  class Grid (line 26) | class Grid extends React.Component {
    method render (line 27) | render() {

FILE: fork/react-bootstrap/src/HelpBlock.jsx
  class HelpBlock (line 6) | class HelpBlock extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/Image.jsx
  class Image (line 36) | class Image extends React.Component {
    method render (line 37) | render() {

FILE: fork/react-bootstrap/src/InputGroup.jsx
  class InputGroup (line 9) | class InputGroup extends React.Component {
    method render (line 10) | render() {

FILE: fork/react-bootstrap/src/InputGroupAddon.jsx
  class InputGroupAddon (line 6) | class InputGroupAddon extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/InputGroupButton.jsx
  class InputGroupButton (line 6) | class InputGroupButton extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/Jumbotron.jsx
  class Jumbotron (line 15) | class Jumbotron extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/Label.jsx
  class Label (line 7) | class Label extends React.Component {
    method hasContent (line 8) | hasContent(children) {
    method render (line 24) | render() {

FILE: fork/react-bootstrap/src/ListGroup.jsx
  function getDefaultComponent (line 19) | function getDefaultComponent(children) {
  class ListGroup (line 37) | class ListGroup extends React.Component {
    method render (line 38) | render() {

FILE: fork/react-bootstrap/src/ListGroup.test.jsx
  class CustomComponent (line 146) | class CustomComponent extends React.Component {
    method render (line 147) | render() {
    method render (line 168) | render() {
  class CustomComponent (line 167) | class CustomComponent extends React.Component {
    method render (line 147) | render() {
    method render (line 168) | render() {

FILE: fork/react-bootstrap/src/ListGroupItem.jsx
  class ListGroupItem (line 22) | class ListGroupItem extends React.Component {
    method renderHeader (line 23) | renderHeader(header, headingClassName) {
    method render (line 33) | render() {

FILE: fork/react-bootstrap/src/Media.jsx
  class Media (line 21) | class Media extends React.Component {
    method render (line 22) | render() {

FILE: fork/react-bootstrap/src/MediaBody.jsx
  class MediaBody (line 21) | class MediaBody extends React.Component {
    method render (line 22) | render() {

FILE: fork/react-bootstrap/src/MediaHeading.jsx
  class MediaHeading (line 15) | class MediaHeading extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/MediaLeft.jsx
  class MediaLeft (line 14) | class MediaLeft extends React.Component {
    method render (line 15) | render() {

FILE: fork/react-bootstrap/src/MediaList.jsx
  class MediaList (line 6) | class MediaList extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/MediaListItem.jsx
  class MediaListItem (line 6) | class MediaListItem extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/MediaRight.jsx
  class MediaRight (line 14) | class MediaRight extends React.Component {
    method render (line 15) | render() {

FILE: fork/react-bootstrap/src/MenuItem.jsx
  class MenuItem (line 65) | class MenuItem extends React.Component {
    method constructor (line 66) | constructor(props, context) {
    method handleClick (line 72) | handleClick(event) {
    method render (line 88) | render() {

FILE: fork/react-bootstrap/src/Modal.jsx
  function DialogTransition (line 138) | function DialogTransition(props) {
  function BackdropTransition (line 142) | function BackdropTransition(props) {
  class Modal (line 148) | class Modal extends React.Component {
    method constructor (line 149) | constructor(props, context) {
    method getChildContext (line 163) | getChildContext() {
    method componentWillUnmount (line 171) | componentWillUnmount() {
    method setModalRef (line 176) | setModalRef(ref) {
    method handleDialogClick (line 180) | handleDialogClick(e) {
    method handleEntering (line 189) | handleEntering() {
    method handleExited (line 195) | handleExited() {
    method handleWindowResize (line 200) | handleWindowResize() {
    method updateStyle (line 204) | updateStyle() {
    method render (line 238) | render() {

FILE: fork/react-bootstrap/src/Modal.test.jsx
  function CustomDialog (line 178) | function CustomDialog() {
  class Component (line 234) | class Component extends React.Component {
    method constructor (line 235) | constructor(props, context) {
    method render (line 243) | render() {

FILE: fork/react-bootstrap/src/ModalBody.jsx
  class ModalBody (line 15) | class ModalBody extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/ModalDialog.jsx
  class ModalDialog (line 15) | class ModalDialog extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/ModalFooter.jsx
  class ModalFooter (line 15) | class ModalFooter extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/ModalHeader.jsx
  class ModalHeader (line 43) | class ModalHeader extends React.Component {
    method render (line 44) | render() {

FILE: fork/react-bootstrap/src/ModalTitle.jsx
  class ModalTitle (line 15) | class ModalTitle extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/Nav.jsx
  class Nav (line 113) | class Nav extends React.Component {
    method componentDidUpdate (line 114) | componentDidUpdate() {
    method getActiveProps (line 141) | getActiveProps() {
    method getNextActiveChild (line 158) | getNextActiveChild(offset) {
    method getTabProps (line 189) | getTabProps(child, tabContainer, navRole, active, onSelect) {
    method handleTabKeyDown (line 227) | handleTabKeyDown(onSelect, event) {
    method isActive (line 257) | isActive({ props }, activeKey, activeHref) {
    method render (line 269) | render() {

FILE: fork/react-bootstrap/src/NavDropdown.jsx
  class NavDropdown (line 26) | class NavDropdown extends React.Component {
    method isActive (line 27) | isActive({ props }, activeKey, activeHref) {
    method render (line 47) | render() {

FILE: fork/react-bootstrap/src/NavDropdown.test.jsx
  class OpenProp (line 49) | class OpenProp extends React.Component {
    method constructor (line 50) | constructor(props) {
    method render (line 58) | render() {
  class Container (line 109) | class Container extends React.Component {
    method render (line 110) | render() {

FILE: fork/react-bootstrap/src/NavItem.jsx
  class NavItem (line 23) | class NavItem extends React.Component {
    method constructor (line 24) | constructor(props, context) {
    method handleClick (line 30) | handleClick(e) {
    method render (line 41) | render() {

FILE: fork/react-bootstrap/src/NavItem.test.jsx
  function handleSelect (line 54) | function handleSelect(key) {
  function handleSelect (line 67) | function handleSelect() {
  function handleSelect (line 89) | function handleSelect(key, event) {

FILE: fork/react-bootstrap/src/Navbar.jsx
  class Navbar (line 121) | class Navbar extends React.Component {
    method constructor (line 122) | constructor(props, context) {
    method getChildContext (line 129) | getChildContext() {
    method handleCollapse (line 142) | handleCollapse() {
    method handleToggle (line 150) | handleToggle() {
    method render (line 156) | render() {
  function createSimpleWrapper (line 210) | function createSimpleWrapper(tag, suffix, displayName) {

FILE: fork/react-bootstrap/src/NavbarBrand.jsx
  class NavbarBrand (line 13) | class NavbarBrand extends React.Component {
    method render (line 14) | render() {

FILE: fork/react-bootstrap/src/NavbarCollapse.jsx
  class NavbarCollapse (line 14) | class NavbarCollapse extends React.Component {
    method render (line 15) | render() {

FILE: fork/react-bootstrap/src/NavbarHeader.jsx
  class NavbarHeader (line 13) | class NavbarHeader extends React.Component {
    method render (line 14) | render() {

FILE: fork/react-bootstrap/src/NavbarToggle.jsx
  class NavbarToggle (line 24) | class NavbarToggle extends React.Component {
    method render (line 25) | render() {

FILE: fork/react-bootstrap/src/Overlay.jsx
  class Overlay (line 74) | class Overlay extends React.Component {
    method render (line 75) | render() {

FILE: fork/react-bootstrap/src/OverlayTrigger.jsx
  function isOneOf (line 18) | function isOneOf(one, of) {
  class OverlayTrigger (line 101) | class OverlayTrigger extends React.Component {
    method constructor (line 102) | constructor(props, context) {
    method componentDidMount (line 120) | componentDidMount() {
    method componentDidUpdate (line 125) | componentDidUpdate() {
    method componentWillUnmount (line 129) | componentWillUnmount() {
    method handleDelayedHide (line 137) | handleDelayedHide() {
    method handleDelayedShow (line 161) | handleDelayedShow() {
    method handleHide (line 185) | handleHide() {
    method handleMouseOverOut (line 193) | handleMouseOverOut(handler, e, relatedNative) {
    method handleToggle (line 202) | handleToggle() {
    method hide (line 210) | hide() {
    method makeOverlay (line 214) | makeOverlay(overlay, props) {
    method show (line 222) | show() {
    method renderOverlay (line 226) | renderOverlay() {
    method render (line 230) | render() {

FILE: fork/react-bootstrap/src/OverlayTrigger.test.jsx
  class ContextReader (line 154) | class ContextReader extends React.Component {
    method render (line 155) | render() {
  class ContextHolder (line 163) | class ContextHolder extends React.Component {
    method getChildContext (line 164) | getChildContext() {
    method render (line 168) | render() {
  class ReplacedOverlay (line 292) | class ReplacedOverlay extends React.Component {
    method constructor (line 293) | constructor(props) {
    method handleClick (line 300) | handleClick() {
    method render (line 304) | render() {

FILE: fork/react-bootstrap/src/PageHeader.jsx
  class PageHeader (line 6) | class PageHeader extends React.Component {
    method render (line 7) | render() {

FILE: fork/react-bootstrap/src/Pager.jsx
  class Pager (line 14) | class Pager extends React.Component {
    method render (line 15) | render() {

FILE: fork/react-bootstrap/src/Pager.test.jsx
  function handleSelect (line 44) | function handleSelect(key, e) {

FILE: fork/react-bootstrap/src/PagerItem.jsx
  class PagerItem (line 23) | class PagerItem extends React.Component {
    method constructor (line 24) | constructor(props, context) {
    method handleSelect (line 30) | handleSelect(e) {
    method render (line 43) | render() {

FILE: fork/react-bootstrap/src/PagerItem.test.jsx
  function handleSelect (line 45) | function handleSelect(key) {
  function handleSelect (line 58) | function handleSelect() {
  function handleSelect (line 81) | function handleSelect(key, e) {

FILE: fork/react-bootstrap/src/Pagination.jsx
  class Pagination (line 7) | class Pagination extends React.Component {
    method render (line 8) | render() {

FILE: fork/react-bootstrap/src/PaginationItem.jsx
  function PaginationItem (line 23) | function PaginationItem({
  function createButton (line 46) | function createButton(name, defaultValue, label = name) {

FILE: fork/react-bootstrap/src/Panel.jsx
  class Panel (line 61) | class Panel extends React.Component {
    method getChildContext (line 62) | getChildContext() {
    method getExpanded (line 88) | getExpanded() {
    method render (line 116) | render() {

FILE: fork/react-bootstrap/src/PanelBody.jsx
  class PanelBody (line 32) | class PanelBody extends React.Component {
    method render (line 33) | render() {

FILE: fork/react-bootstrap/src/PanelCollapse.jsx
  class PanelCollapse (line 43) | class PanelCollapse extends React.Component {
    method render (line 44) | render() {

FILE: fork/react-bootstrap/src/PanelFooter.jsx
  class PanelFooter (line 12) | class PanelFooter extends React.Component {
    method render (line 13) | render() {

FILE: fork/react-bootstrap/src/PanelGroup.jsx
  class PanelGroup (line 65) | class PanelGroup extends React.Component {
    method getChildContext (line 66) | getChildContext() {
    method render (line 95) | render() {

FILE: fork/react-bootstrap/src/PanelHeading.jsx
  class PanelHeading (line 23) | class PanelHeading extends React.Component {
    method render (line 24) | render() {

FILE: fork/react-bootstrap/src/PanelTitle.jsx
  class PanelTitle (line 28) | class PanelTitle extends React.Component {
    method render (line 29) | render() {

FILE: fork/react-bootstrap/src/PanelToggle.jsx
  class PanelToggle (line 33) | class PanelToggle extends React.Component {
    method constructor (line 34) | constructor(...args) {
    method handleToggle (line 40) | handleToggle(event) {
    method render (line 48) | render() {

FILE: fork/react-bootstrap/src/Popover.jsx
  class Popover (line 49) | class Popover extends React.Component {
    method render (line 50) | render() {

FILE: fork/react-bootstrap/src/ProgressBar.jsx
  constant ROUND_PRECISION (line 15) | const ROUND_PRECISION = 1000;
  function onlyProgressBar (line 20) | function onlyProgressBar(props, propName, componentName) {
  function getPercentage (line 79) | function getPercentage(now, min, max) {
  class ProgressBar (line 84) | class ProgressBar extends React.Component {
    method renderProgressBar (line 85) | renderProgressBar({ min, now, max, label, srOnly, striped, active, cla...
    method render (line 109) | render() {

FILE: fork/react-bootstrap/src/ProgressBar.test.jsx
  function getProgressBarNode (line 9) | function getProgressBarNode(wrapper) {
  function NotProgressBar (line 202) | function NotProgressBar() {

FILE: fork/react-bootstrap/src/Radio.jsx
  class Radio (line 34) | class Radio extends React.Component {
    method render (line 35) | render() {

FILE: fork/react-bootstrap/src/ResponsiveEmbed.jsx
  class ResponsiveEmbed (line 30) | class ResponsiveEmbed extends React.Component {
    method render (line 31) | render() {

FILE: fork/react-bootstrap/src/Row.jsx
  class Row (line 15) | class Row extends React.Component {
    method render (line 16) | render() {

FILE: fork/react-bootstrap/src/SafeAnchor.jsx
  function isTrivialHref (line 24) | function isTrivialHref(href) {
  class SafeAnchor (line 35) | class SafeAnchor extends React.Component {
    method constructor (line 36) | constructor(props, context) {
    method handleClick (line 43) | handleClick(event) {
    method handleKeyDown (line 60) | handleKeyDown(event) {
    method render (line 67) | render() {

FILE: fork/react-bootstrap/src/SplitButton.jsx
  class SplitButton (line 33) | class SplitButton extends React.Component {
    method render (line 34) | render() {

FILE: fork/react-bootstrap/src/SplitToggle.jsx
  class SplitToggle (line 5) | class SplitToggle extends React.Component {
    method render (line 6) | render() {

FILE: fork/react-bootstrap/src/Tab.jsx
  class Tab (line 21) | class Tab extends React.Component {
    method render (line 22) | render() {

FILE: fork/react-bootstrap/src/TabContainer.jsx
  constant TAB (line 5) | const TAB = 'tab';
  constant PANE (line 6) | const PANE = 'pane';
  method id (line 15) | id(props, ...args) {
  class TabContainer (line 70) | class TabContainer extends React.Component {
    method getChildContext (line 71) | getChildContext() {
    method render (line 86) | render() {

FILE: fork/react-bootstrap/src/TabContent.jsx
  class TabContent (line 55) | class TabContent extends React.Component {
    method constructor (line 56) | constructor(props, context) {
    method getChildContext (line 71) | getChildContext() {
    method componentDidUpdate (line 94) | componentDidUpdate(prevProps) {
    method componentWillUnmount (line 100) | componentWillUnmount() {
    method getContainerActiveKey (line 104) | getContainerActiveKey() {
    method handlePaneEnter (line 109) | handlePaneEnter(child, childKey) {
    method handlePaneExited (line 127) | handlePaneExited(child) {
    method render (line 145) | render() {

FILE: fork/react-bootstrap/src/TabPane.jsx
  class TabPane (line 104) | class TabPane extends React.Component {
    method constructor (line 105) | constructor(props, context) {
    method getChildContext (line 114) | getChildContext() {
    method componentDidMount (line 120) | componentDidMount() {
    method componentDidUpdate (line 127) | componentDidUpdate() {
    method componentWillUnmount (line 139) | componentWillUnmount() {
    method getAnimation (line 146) | getAnimation() {
    method handleEnter (line 155) | handleEnter() {
    method handleExited (line 164) | handleExited() {
    method isActive (line 174) | isActive() {
    method shouldBeIn (line 181) | shouldBeIn() {
    method render (line 185) | render() {

FILE: fork/react-bootstrap/src/Table.jsx
  class Table (line 23) | class Table extends React.Component {
    method render (line 24) | render() {

FILE: fork/react-bootstrap/src/Tabs.jsx
  function getDefaultActiveKey (line 70) | function getDefaultActiveKey(children) {
  class Tabs (line 81) | class Tabs extends React.Component {
    method renderTab (line 82) | renderTab(child) {
    method render (line 95) | render() {

FILE: fork/react-bootstrap/src/Thumbnail.jsx
  class Thumbnail (line 33) | class Thumbnail extends React.Component {
    method render (line 34) | render() {

FILE: fork/react-bootstrap/src/ToggleButton.jsx
  class ToggleButton (line 39) | class ToggleButton extends React.Component {
    method render (line 40) | render() {

FILE: fork/react-bootstrap/src/ToggleButtonGroup.jsx
  class ToggleButtonGroup (line 46) | class ToggleButtonGroup extends React.Component {
    method getValues (line 47) | getValues() {
    method handleToggle (line 52) | handleToggle(value) {
    method render (line 71) | render() {

FILE: fork/react-bootstrap/src/Tooltip.jsx
  class Tooltip (line 44) | class Tooltip extends React.Component {
    method render (line 45) | render() {

FILE: fork/react-bootstrap/src/Well.jsx
  class Well (line 7) | class Well extends React.Component {
    method render (line 8) | render() {

FILE: fork/react-bootstrap/src/helpers.jsx
  function shouldWarn (line 4) | function shouldWarn(about) {
  function render (line 15) | function render(element, mountPoint) {
  function getOne (line 26) | function getOne(collection) {

FILE: fork/react-bootstrap/src/utils/PropTypes.js
  function generatedId (line 8) | function generatedId(name) {
  function requiredRoles (line 26) | function requiredRoles(...roles) {
  function exclusiveRoles (line 56) | function exclusiveRoles(...roles) {

FILE: fork/react-bootstrap/src/utils/StyleConfig.js
  constant SIZE_MAP (line 7) | const SIZE_MAP = {
  constant DEVICE_SIZES (line 18) | const DEVICE_SIZES = ['lg', 'md', 'sm', 'xs'];

FILE: fork/react-bootstrap/src/utils/ValidComponentChildren.js
  function map (line 17) | function map(children, func, context) {
  function forEach (line 39) | function forEach(children, func, context) {
  function count (line 57) | function count(children) {
  function filter (line 83) | function filter(children, func, context) {
  function find (line 100) | function find(children, func, context) {
  function every (line 120) | function every(children, func, context) {
  function some (line 140) | function some(children, func, context) {
  function toArray (line 160) | function toArray(children) {

FILE: fork/react-bootstrap/src/utils/bootstrapUtils.js
  function curry (line 8) | function curry(fn) {
  function prefix (line 18) | function prefix(props, variant) {
  function getClassSet (line 114) | function getClassSet(props) {
  function getBsProps (line 131) | function getBsProps(props) {
  function isBsProp (line 140) | function isBsProp(propName) {
  function splitBsProps (line 149) | function splitBsProps(props) {
  function splitBsPropsAndOmit (line 160) | function splitBsPropsAndOmit(props, omittedPropNames) {
  function addStyle (line 180) | function addStyle(Component, ...styleVariant) {

FILE: fork/react-bootstrap/src/utils/capitalize.js
  function capitalize (line 1) | function capitalize(string) {

FILE: fork/react-bootstrap/src/utils/createChainedFunction.js
  function createChainedFunction (line 10) | function createChainedFunction(...funcs) {

FILE: fork/react-bootstrap/src/utils/deprecationWarning.js
  function deprecationWarning (line 5) | function deprecationWarning(oldname, newname, link) {
  method componentDidMount (line 28) | componentDidMount(...methodArgs) {
  function _resetWarned (line 40) | function _resetWarned() {

FILE: fork/react-bootstrap/src/utils/splitComponentProps.js
  function splitComponentProps (line 1) | function splitComponentProps(props, Component) {

FILE: mocks/dateMock.js
  function restore (line 4) | function restore() {
  function mock (line 8) | function mock(now) {

FILE: packages/a11y/src/Gesture/constants.ts
  constant FIRST (line 1) | const FIRST = 0;
  constant LAST (line 2) | const LAST = Number.POSITIVE_INFINITY;

FILE: packages/a11y/src/Gesture/focus.ts
  type WithFocus (line 4) | interface WithFocus {
  function focusOn (line 8) | function focusOn(element?: WithFocus | null) {
  function getAllItems (line 17) | function getAllItems(calendarRef: HTMLElement) {
  function getDay (line 26) | function getDay(calendarRef: HTMLElement, offset: number): HTMLElement {
  function focusWithinCurrentCalendar (line 36) | function focusWithinCurrentCalendar(calendarRef: HTMLElement, indexToFoc...
  function focusOnDay (line 50) | function focusOnDay(
  function focusOnCalendar (line 76) | function focusOnCalendar(containerRef: HTMLElement) {

FILE: packages/a11y/src/Gesture/preventScroll.ts
  function preventScroll (line 3) | function preventScroll(evt: KeyboardEvent<HTMLElement>) {

FILE: packages/a11y/src/Gesture/propTypes.ts
  type CalendarGestureProps (line 2) | type CalendarGestureProps = {
  type WithCalendarGestureInjectedProps (line 8) | type WithCalendarGestureInjectedProps = CalendarGestureProps & {

FILE: packages/a11y/src/Gesture/withCalendarGesture.test.tsx
  type DateCalendarState (line 21) | type DateCalendarState = {
  class DayCalendarWithGesture (line 26) | class DayCalendarWithGesture extends React.Component<CalendarGestureProp...
    method constructor (line 27) | constructor(props: CalendarGestureProps) {
    method goToPreviousMonth (line 36) | goToPreviousMonth(callback?: () => void) {
    method goToNextMonth (line 43) | goToNextMonth(callback?: () => void) {
    method render (line 50) | render() {

FILE: packages/a11y/src/Gesture/withCalendarGesture.tsx
  function switchMonth (line 16) | function switchMonth(
  function withCalendarGesture (line 30) | function withCalendarGesture<P extends WithCalendarGestureInjectedProps>(

FILE: packages/a11y/src/Gesture/withDynamicListGesture.test.jsx
  constant LIST_SIZE (line 9) | const LIST_SIZE = 5;
  class ComponentWithGesture (line 11) | class ComponentWithGesture extends Component {
    method constructor (line 12) | constructor(props) {
    method setStart (line 22) | setStart(pace, callback) {
    method renderListItems (line 26) | renderListItems(onKeyDown) {
    method render (line 45) | render() {
  function testFocus (line 58) | async function testFocus({ elementIndex, expectedActiveIndex, key }) {

FILE: packages/a11y/src/Gesture/withDynamicListGesture.tsx
  function getAllItems (line 5) | function getAllItems(ref: HTMLElement): NodeListOf<HTMLButtonElement> {
  function focusOnListItem (line 9) | function focusOnListItem(ref: HTMLElement, index: number) {
  type FocusOnOption (line 14) | type FocusOnOption = {
  function focusOnPreviousItem (line 19) | function focusOnPreviousItem(
  function focusOnNextItem (line 33) | function focusOnNextItem(
  function focusOnNextPage (line 47) | function focusOnNextPage(
  function focusOnPreviousPage (line 55) | function focusOnPreviousPage(
  type WithDynamicListGestureProps (line 63) | interface WithDynamicListGestureProps {
  class WithDynamicListGesture (line 70) | class WithDynamicListGesture extends Component<WithDynamicListGesturePro...
    method constructor (line 73) | constructor(props: WithDynamicListGestureProps) {
    method onKeyDown (line 78) | onKeyDown(event: KeyboardEvent, options: FocusOnOption) {
    method render (line 116) | render() {

FILE: packages/a11y/src/Gesture/withListGesture.test.jsx
  function getComponentWithGesture (line 8) | function getComponentWithGesture(loop) {
  function testFocus (line 19) | async function testFocus({ elementPosition, expectedActivePosition, key,...

FILE: packages/a11y/src/Gesture/withListGesture.tsx
  function getAllItems (line 3) | function getAllItems(ref: HTMLElement): NodeList {
  function getNextItem (line 11) | function getNextItem(ref: HTMLElement, loop: boolean) {
  function getPreviousItem (line 38) | function getPreviousItem(ref: HTMLElement, loop: boolean) {
  function onKeyDown (line 64) | function onKeyDown(event: KeyboardEvent, ref: HTMLElement, loop: boolean) {
  function withListGesture (line 83) | function withListGesture<T>(WrappedComponent: React.ComponentType<T>, lo...

FILE: packages/a11y/src/Gesture/withMonthCalendarGesture.tsx
  function withMonthCalendarGesture (line 13) | function withMonthCalendarGesture<P extends WithCalendarGestureInjectedP...

FILE: packages/a11y/src/Gesture/withTreeGesture.test.jsx
  function testFocus (line 153) | async function testFocus({ elementPosition, expectedActivePosition, key ...

FILE: packages/a11y/src/Gesture/withTreeGesture.tsx
  function getAllItems (line 6) | function getAllItems(ref: HTMLElement) {
  function getFirstItem (line 14) | function getFirstItem(ref: HTMLElement): HTMLElement | null {
  function getLastItem (line 22) | function getLastItem(ref: HTMLElement): HTMLElement | null {
  function getParentItem (line 30) | function getParentItem(ref: HTMLElement): HTMLElement | null {
  function getFirstChildItem (line 38) | function getFirstChildItem(ref: HTMLElement): HTMLElement | null {
  function getNextItem (line 42) | function getNextItem(ref: HTMLElement): HTMLElement | null {
  function getPreviousItem (line 67) | function getPreviousItem(ref: HTMLElement) {
  type TreeGestureProps (line 91) | type TreeGestureProps = {
  type WithTreeInjectedProps (line 97) | type WithTreeInjectedProps = TreeGestureProps & {
  function withTreeGesture (line 101) | function withTreeGesture<T extends WithTreeInjectedProps>(

FILE: packages/a11y/src/__mocks__/day-calendar.tsx
  type DayCalendarProps (line 13) | type DayCalendarProps = WithCalendarGestureInjectedProps & {
  function DayCalendar (line 18) | function DayCalendar(props: DayCalendarProps) {

FILE: packages/a11y/src/__mocks__/list.tsx
  type ListItemProps (line 5) | type ListItemProps = {
  class ListItem (line 9) | class ListItem extends Component<ListItemProps> {
    method render (line 12) | render() {
  function List (line 34) | function List(props: ListItemProps) {

FILE: packages/a11y/src/__mocks__/month-calendar.tsx
  function MonthCalendar (line 4) | function MonthCalendar(props: WithCalendarGestureInjectedProps) {

FILE: packages/a11y/src/__mocks__/tree.tsx
  type TreeItemType (line 4) | type TreeItemType = {
  type TreeItemProps (line 11) | type TreeItemProps = Pick<WithTreeInjectedProps, 'onKeyDown'> & {
  class TreeItem (line 17) | class TreeItem extends Component<TreeItemProps> {
    method render (line 20) | render() {
  type TreeProps (line 44) | type TreeProps = Pick<WithTreeInjectedProps, 'onKeyDown'> & {
  function Tree (line 49) | function Tree(props: TreeProps) {

FILE: packages/assets-api/src/index.ts
  type Window (line 3) | interface Window {
  type Asset (line 8) | interface Asset {
  type Script (line 13) | interface Script {
  type StyleAsset (line 19) | interface StyleAsset {
  type TypedResponse (line 24) | interface TypedResponse<T = any> extends Response {
  function getPackageVersion (line 40) | function getPackageVersion(name?: string, version?: string): string | un...
  function getURL (line 58) | function getURL(path: string, name?: string, version?: string) {
  constant TIMEOUT (line 66) | const TIMEOUT = 10000;
  function addScript (line 68) | function addScript({ src, integrity, ...attr }: Script) {
  function toDefaultModule (line 85) | function toDefaultModule(value: any) {
  function getUMD (line 100) | function getUMD(name: string, version?: string, varName?: string, path?:...
  function getJSON (line 146) | async function getJSON<T>(path: string, name?: string, version?: string) {
  function addStyle (line 157) | function addStyle({ href, integrity, ...attr }: StyleAsset) {

FILE: packages/cmf-cqrs/src/actions/ack.js
  function addContext (line 3) | function addContext(event, data) {
  function receiveMessage (line 10) | function receiveMessage(event, data) {
  function deleteACK (line 17) | function deleteACK(event, data) {

FILE: packages/cmf-cqrs/src/components/ACKDispatcher/ACKDispatcher.connect.js
  function mapStateToProps (line 5) | function mapStateToProps(state) {

FILE: packages/cmf-cqrs/src/components/ACKDispatcher/ACKDispatcher.container.js
  constant DEFAULT_STATE (line 9) | const DEFAULT_STATE = new Map({});
  function ACKDispatcher (line 27) | function ACKDispatcher(props) {

FILE: packages/cmf-cqrs/src/components/ACKDispatcher/ACKDispatcher.test.jsx
  function myActionCreator (line 39) | function myActionCreator() {
  function myActionCreator (line 62) | function myActionCreator() {
  function myActionCreator (line 115) | function myActionCreator() {

FILE: packages/cmf-cqrs/src/constants/ack.js
  constant ACK_ADD_CONTEXT (line 1) | const ACK_ADD_CONTEXT = 'ACK_ADD_CONTEXT';
  constant ACK_RECEIVE_MESSAGE (line 2) | const ACK_RECEIVE_MESSAGE = 'ACK_RECEIVE_MESSAGE';
  constant ACK_DELETE (line 3) | const ACK_DELETE = 'ACK_DELETE';

FILE: packages/cmf-cqrs/src/constants/socketMiddleware.js
  constant SOCKET_ON_OPEN (line 1) | const SOCKET_ON_OPEN = '@@SOCKET.ON_OPEN';
  constant SOCKET_ON_CLOSE (line 2) | const SOCKET_ON_CLOSE = '@@SOCKET.ON_CLOSE';
  constant SOCKET_ON_ERROR (line 3) | const SOCKET_ON_ERROR = '@@SOCKET.ON_ERROR';
  constant SOCKET_ON_PING_TIMEOUT (line 4) | const SOCKET_ON_PING_TIMEOUT = '@@SOCKET.ON_PING_TIMEOUT';

FILE: packages/cmf-cqrs/src/constants/status.js
  constant WEBSOCKET_READY_STATE (line 1) | const WEBSOCKET_READY_STATE = {

FILE: packages/cmf-cqrs/src/middleware/smartWebsocket.js
  function wsSend (line 7) | function wsSend(ws, message, callback, offlinebuffer) {
  function wsIsClosed (line 21) | function wsIsClosed(ws) {
  function startWebsocket (line 29) | function startWebsocket(url, offlinebuffer, options) {
  function SmartWebsocket (line 105) | function SmartWebsocket(url, options = {}, id = 'default') {

FILE: packages/cmf-cqrs/src/middleware/socketMiddleware.js
  function isAbsoluteWebSocketUrl (line 22) | function isAbsoluteWebSocketUrl(socketUrl) {
  function createWebsocketMiddleware (line 41) | function createWebsocketMiddleware(

FILE: packages/cmf-cqrs/src/reducers/ack.js
  constant DEFAULT_STATE (line 4) | const DEFAULT_STATE = new Map({});
  function ackReducer (line 12) | function ackReducer(state = DEFAULT_STATE, action) {
  function ackProcessed (line 27) | function ackProcessed(state, action) {

FILE: packages/cmf-cqrs/src/useWebSocket.hook.ts
  type WebsocketMessageData (line 6) | interface WebsocketMessageData {

FILE: packages/cmf-router/src/UIRouter.jsx
  function getRouteProps (line 41) | function getRouteProps({ path, indexRoute, childRoutes, ...props }, curr...
  function isDifferent (line 77) | function isDifferent(historyA, historyB) {
  function getRouter (line 86) | function getRouter(history, basename) {

FILE: packages/cmf-router/src/expressions.js
  function matchPath (line 6) | function matchPath({ context }, options, getPathArg, defaultValue) {
  function location (line 19) | function location({ context }, getPathArg) {

FILE: packages/cmf-router/src/history.js
  function create (line 4) | function create(options) {

FILE: packages/cmf-router/src/index.jsx
  function mergeRouterConfig (line 20) | function mergeRouterConfig(...configs) {
  function getModule (line 24) | function getModule(...args) {

FILE: packages/cmf-router/src/middleware.test.js
  method routerPush (line 35) | routerPush(data) {
  method routerReplace (line 65) | routerReplace(data) {

FILE: packages/cmf-router/src/sagaRouter.js
  function shouldStartSaga (line 84) | function shouldStartSaga(maybeSaga, match, routeSaga) {
  function shouldCancelSaga (line 103) | function shouldCancelSaga(maybeSaga, match, routeSaga) {
  function shouldRestartSaga (line 119) | function shouldRestartSaga(maybeSaga, match, routeSaga) {
  function parseSagaState (line 142) | function parseSagaState(routeFragment, sagas, currentLocation) {

FILE: packages/cmf-router/src/sagaRouter.test.js
  method location (line 16) | get location() {
  method location (line 37) | get location() {
  function getMockedHistory (line 57) | function getMockedHistory() {
  function getMockedHistory (line 93) | function getMockedHistory() {
  function getMockedHistory (line 126) | function getMockedHistory() {
  function getMockedHistory (line 193) | function getMockedHistory() {
  function getMockedHistory (line 262) | function getMockedHistory() {
  function getMockedHistory (line 295) | function getMockedHistory() {
  function getMockedHistory (line 326) | function getMockedHistory() {
  function getMockedHistory (line 363) | function getMockedHistory() {
  method location (line 405) | get location() {

FILE: packages/cmf-router/src/sagas/documentTitle.js
  function formatPath (line 10) | function formatPath(path, parentPath) {
  function buildMapFromRoutes (line 25) | function buildMapFromRoutes(routes, mapRoutes, parentPath) {
  function getTitleFromRoutes (line 50) | function getTitleFromRoutes(mapRoutes, location, defaultDocTitle) {
  function assignDocTitle (line 65) | function assignDocTitle(title) {

FILE: packages/cmf-router/src/selectors.js
  function getLocation (line 8) | function getLocation(state) {
  function getPath (line 17) | function getPath(state, withHash = false) {
  function matchPath (line 28) | function matchPath(state, options) {

FILE: packages/cmf/__tests__/App.test.jsx
  method subscribe (line 33) | subscribe() {}
  method dispatch (line 34) | dispatch() {}
  method getState (line 35) | getState() {

FILE: packages/cmf/__tests__/action.test.js
  function dispatch (line 126) | function dispatch() {}
  function dispatch (line 136) | function dispatch() {}

FILE: packages/cmf/__tests__/actionCreator.test.js
  function creator (line 14) | function creator() {}

FILE: packages/cmf/__tests__/assert.test.js
  function toThrow (line 11) | function toThrow(attr, type) {

FILE: packages/cmf/__tests__/cmfConnect.test.jsx
  function FunctionComponent (line 629) | function FunctionComponent() {
  class ClassComponent (line 635) | class ClassComponent extends Component {
  method onClick (line 819) | onClick() {}

FILE: packages/cmf/__tests__/component.test.js
  function foo (line 8) | function foo() {}
  function foo (line 26) | function foo() {}

FILE: packages/cmf/__tests__/localStorage.test.js
  constant PATHS (line 4) | const PATHS = [
  constant KEY (line 44) | const KEY = 'test-cmf-localStorage';

FILE: packages/cmf/__tests__/middlewares/http.test.js
  function json (line 179) | function json() {
  function json (line 227) | function json() {
  function json (line 453) | function json() {
  function json (line 524) | function json() {
  function json (line 590) | function json() {

FILE: packages/cmf/__tests__/onError.test.jsx
  function activateSentry (line 7) | function activateSentry() {

FILE: packages/cmf/__tests__/registry.test.js
  function addUndefined (line 30) | function addUndefined() {

FILE: packages/cmf/__tests__/sagas/component.test.js
  function saga (line 16) | function saga() {}

FILE: packages/cmf/__tests__/store.test.js
  function reducer (line 8) | function reducer() {
  method heyImRoot (line 29) | heyImRoot() {
  method app (line 32) | app() {

FILE: packages/cmf/cmf.d.ts
  type CMFContext (line 4) | interface CMFContext {
  type SagaProps (line 10) | interface SagaProps {

FILE: packages/cmf/src/App.jsx
  function App (line 18) | function App(props) {

FILE: packages/cmf/src/Dispatcher.jsx
  function Dispatcher (line 24) | function Dispatcher(props) {

FILE: packages/cmf/src/Inject.component.jsx
  function NotFoundComponent (line 22) | function NotFoundComponent({ error }) {
  function Inject (line 31) | function Inject({ component, ...props }) {

FILE: packages/cmf/src/action.js
  function getActionsById (line 17) | function getActionsById(context) {
  function getContentTypeActions (line 29) | function getContentTypeActions(context, contentType, category) {
  function getActionInfo (line 40) | function getActionInfo(context, id) {
  function getActionObject (line 56) | function getActionObject(context, action, event, data) {
  function getOnProps (line 80) | function getOnProps(props) {
  function mapDispatchToProps (line 95) | function mapDispatchToProps(dispatch, props) {

FILE: packages/cmf/src/actionCreator.js
  function get (line 10) | function get(context, id) {
  function register (line 28) | function register(id, actionCreator, context) {

FILE: packages/cmf/src/actions/collectionsActions.js
  function remove (line 28) | function remove(collectionId) {

FILE: packages/cmf/src/actions/componentsActions.js
  function addState (line 19) | function addState(componentName, key, initialComponentState) {

FILE: packages/cmf/src/actions/http.js
  constant DEFAULT_HTTP_HEADERS (line 9) | const DEFAULT_HTTP_HEADERS = {
  function onError (line 14) | function onError(error) {
  function onRequest (line 21) | function onRequest(url, config) {
  function onJSError (line 29) | function onJSError(error, action) {
  function onResponse (line 38) | function onResponse(response) {
  function onActionResponse (line 45) | function onActionResponse(action, response, headers) {
  function onActionError (line 56) | function onActionError(action, error) {
  function http (line 66) | function http(config) {

FILE: packages/cmf/src/actions/saga.js
  function start (line 6) | function start(event = {}, data) {
  function stop (line 16) | function stop(event, data) {

FILE: packages/cmf/src/actions/settingsActions.js
  function requestSettings (line 12) | function requestSettings() {
  function receiveSettings (line 18) | function receiveSettings(json) {
  function errorWithSettings (line 26) | function errorWithSettings(error) {
  function fetchSettings (line 42) | function fetchSettings(path = 'settings.json') {

FILE: packages/cmf/src/assert.js
  function assertValueTypeOf (line 1) | function assertValueTypeOf(value, type, toThrow = true) {
  function assertTypeOf (line 21) | function assertTypeOf(options, attr, type) {

FILE: packages/cmf/src/bootstrap.jsx
  function bootstrapRegistry (line 27) | function bootstrapRegistry(options) {
  function bootstrapSaga (line 51) | function bootstrapSaga(options) {
  function bootstrapRedux (line 73) | function bootstrapRedux(options, sagaMiddleware) {
  function bootstrapInterceptors (line 107) | function bootstrapInterceptors(options) {
  function DefaultRootComponent (line 113) | function DefaultRootComponent() {
  function bootstrap (line 126) | async function bootstrap(appOptions = {}) {

FILE: packages/cmf/src/cmfConnect.jsx
  function getComponentName (line 41) | function getComponentName(WrappedComponent) {
  function getComponentId (line 45) | function getComponentId(componentId, props) {
  function getStateToProps (line 56) | function getStateToProps({
  function getDispatchToProps (line 92) | function getDispatchToProps({
  function getMergeProps (line 131) | function getMergeProps({ mergeProps, stateProps, dispatchProps, ownProps...
  function cmfConnect (line 178) | function cmfConnect({

FILE: packages/cmf/src/cmfModule.js
  function getModule (line 3) | async function getModule(module) {
  function find (line 15) | async function find(options, buff = []) {
  function mergeModulesAndApp (line 42) | async function mergeModulesAndApp(options) {

FILE: packages/cmf/src/cmfModule.merge.jsx
  function deepMerge (line 5) | function deepMerge(obj1, obj2) {
  function mergeObjects (line 15) | function mergeObjects(obj1, obj2) {
  function mergeFns (line 40) | function mergeFns(fn1, fn2) {
  function throwIfBothExists (line 53) | function throwIfBothExists(obj1, obj2, name) {
  function getUnique (line 61) | function getUnique(obj1, obj2, name) {
  function mergeSaga (line 69) | function mergeSaga(saga, newSaga) {
  function booleanAnd (line 86) | function booleanAnd(a, b) {
  function mergeArrays (line 90) | function mergeArrays(preReducer, newPreReducer) {
  function composeComponents (line 100) | function composeComponents(RootComponent, NestedRootComponent) {
  constant MERGE_FNS (line 114) | const MERGE_FNS = {
  function getReduceConfig (line 141) | function getReduceConfig(mergeConfig = MERGE_FNS) {
  function merge (line 159) | function merge(...configs) {

FILE: packages/cmf/src/component.js
  function get (line 20) | function get(id, context) {
  function register (line 34) | function register(id, component, context) {
  function has (line 57) | function has(id, context) {

FILE: packages/cmf/src/componentState.js
  function getStateProps (line 24) | function getStateProps(state, name, id = 'default') {
  function initState (line 30) | function initState(props) {
  function getAction (line 36) | function getAction({ name, id, operation, componentState }) {
  function getStateAccessors (line 44) | function getStateAccessors(dispatch, name, id, DEFAULT_STATE) {

FILE: packages/cmf/src/components/ErrorBoundary/ErrorBoundary.component.js
  class ErrorBoundary (line 5) | class ErrorBoundary extends Component {
    method constructor (line 6) | constructor(props) {
    method componentDidCatch (line 11) | componentDidCatch(error, errorInfo) {
    method render (line 21) | render() {

FILE: packages/cmf/src/components/ErrorBoundary/ErrorBoundary.component.test.jsx
  function TestChildren (line 8) | function TestChildren(props) {

FILE: packages/cmf/src/components/ErrorFeedBack/ErrorFeedBack.component.jsx
  function ErrorFeedBack (line 5) | function ErrorFeedBack(props) {

FILE: packages/cmf/src/components/ErrorPanel/ErrorPanel.component.jsx
  function reload (line 8) | function reload() {
  function ErrorPanel (line 12) | function ErrorPanel({ error = {} }) {

FILE: packages/cmf/src/components/Saga/CmfRegisteredSaga.component.js
  function CmfRegisteredSagaComponent (line 7) | function CmfRegisteredSagaComponent({

FILE: packages/cmf/src/components/Saga/Saga.component.js
  function SagaComponent (line 7) | function SagaComponent({ startSaga, stopSaga, saga, sagaAttributes, chil...

FILE: packages/cmf/src/components/Saga/Saga.saga.js
  constant SAGA_COMPONENT_ACTIONS (line 3) | const SAGA_COMPONENT_ACTIONS = {

FILE: packages/cmf/src/components/Saga/Saga.saga.test.js
  function saga (line 5) | function saga(attribute) {

FILE: packages/cmf/src/deprecated.js
  function deprecated (line 16) | function deprecated(fn, msg, log) {

FILE: packages/cmf/src/expression.jsx
  function register (line 28) | function register(id, func, context) {
  function get (line 37) | function get(id, context) {
  function call (line 47) | function call(expression, context, payload) {
  function getProps (line 82) | function getProps(props, attrs, context, payload = {}) {
  function mapStateToProps (line 114) | function mapStateToProps(state, ownProps, ctx = {}) {
  function mergeProps (line 138) | function mergeProps(props) {
  function withExpression (line 153) | function withExpression(Component, attrs) {

FILE: packages/cmf/src/expressions/allOf.js
  function getAllOfFunction (line 4) | function getAllOfFunction(statePath) {

FILE: packages/cmf/src/expressions/getInState.js
  function getInState (line 5) | function getInState(statePath, { context }, immutablePath, defaultValue) {

FILE: packages/cmf/src/expressions/includes.js
  function getIncludesFunction (line 4) | function getIncludesFunction(statePath) {

FILE: packages/cmf/src/expressions/oneOf.js
  function getOneOfFunction (line 4) | function getOneOfFunction(statePath) {

FILE: packages/cmf/src/httpInterceptors.js
  function _clear (line 9) | function _clear() {
  function isInterceptor (line 25) | function isInterceptor(interceptor) {
  function push (line 61) | function push(interceptor) {
  function onData (line 75) | function onData(array, data) {
  function onRequest (line 102) | function onRequest(config) {
  function onResponse (line 114) | function onResponse(response) {

FILE: packages/cmf/src/index.js
  function registerInternals (line 39) | function registerInternals(context) {

FILE: packages/cmf/src/localStorage.js
  function getState (line 9) | function getState(key) {
  function getStoreCallback (line 42) | function getStoreCallback(key, paths) {

FILE: packages/cmf/src/matchPath.js
  function matchPath (line 31) | function matchPath(pathname, options = {}) {

FILE: packages/cmf/src/middlewares/error/index.js
  constant URL_REQUIRED_MESSAGE (line 4) | const URL_REQUIRED_MESSAGE = 'url to post the error is required';
  function getErrorMiddleware (line 11) | function getErrorMiddleware(url) {

FILE: packages/cmf/src/middlewares/http/constants.js
  constant ACTION_TYPE_HTTP_REQUEST (line 4) | const ACTION_TYPE_HTTP_REQUEST = '@@HTTP/REQUEST';
  constant ACTION_TYPE_HTTP_RESPONSE (line 5) | const ACTION_TYPE_HTTP_RESPONSE = '@@HTTP/RESPONSE';
  constant ACTION_TYPE_HTTP_ERRORS (line 6) | const ACTION_TYPE_HTTP_ERRORS = '@@HTTP/ERRORS';
  constant ACTION_TYPE_HTTP_REDUCER_ERROR (line 7) | const ACTION_TYPE_HTTP_REDUCER_ERROR = 'HTTP_REDUCE_ERROR';
  constant OPTIONS (line 10) | const OPTIONS = 'OPTIONS';
  constant GET (line 11) | const GET = 'GET';
  constant HEAD (line 12) | const HEAD = 'HEAD';
  constant PATCH (line 13) | const PATCH = 'PATCH';
  constant POST (line 14) | const POST = 'POST';
  constant PUT (line 15) | const PUT = 'PUT';
  constant DELETE (line 16) | const DELETE = 'DELETE';
  constant TRACE (line 17) | const TRACE = 'TRACE';
  constant CONNECT (line 18) | const CONNECT = 'CONNECT';
  constant HTTP_METHODS (line 20) | const HTTP_METHODS = {
  constant HTTP_STATUS (line 32) | const HTTP_STATUS = {
  method isInformational (line 106) | isInformational(code) {
  method isSuccess (line 109) | isSuccess(code) {
  method isRedirection (line 112) | isRedirection(code) {
  method isClientError (line 115) | isClientError(code) {
  method isServerError (line 118) | isServerError(code) {

FILE: packages/cmf/src/middlewares/http/csrfHandling.js
  function getCookie (line 32) | function getCookie() {
  function parseCookie (line 44) | function parseCookie(cookie) {
  function mergeCSRFToken (line 90) | function mergeCSRFToken({ security = {} }) {

FILE: packages/cmf/src/middlewares/http/middleware.js
  constant DEFAULT_HTTP_HEADERS (line 78) | const DEFAULT_HTTP_HEADERS = {
  function isHTTPRequest (line 91) | function isHTTPRequest(action) {
  function getMethod (line 99) | function getMethod(action) {
  function mergeConfiguredHeader (line 103) | function mergeConfiguredHeader(config) {
  function mergeOptions (line 117) | function mergeOptions(action) {
  function HTTPError (line 132) | function HTTPError(response) {
  function status (line 153) | function status(response) {
  function handleResponse (line 160) | function handleResponse(response) {
  function getOnError (line 176) | function getOnError(dispatch, httpAction) {

FILE: packages/cmf/src/mock/provider.jsx
  class ErrorBoundary (line 7) | class ErrorBoundary extends Component {
    method componentDidCatch (line 13) | componentDidCatch(error, errorInfo) {
    method render (line 20) | render() {
  function MockProvider (line 51) | function MockProvider(props) {

FILE: packages/cmf/src/mock/rtl.jsx
  function prepareCMF (line 5) | async function prepareCMF(jsx, opts = {}) {

FILE: packages/cmf/src/mock/store.jsx
  method getState (line 26) | getState() {
  method dispatch (line 29) | dispatch() {
  method subscribe (line 32) | subscribe() {}
  method getState (line 47) | getState() {
  function copy (line 53) | function copy(obj) {

FILE: packages/cmf/src/omit.js
  function omit (line 5) | function omit(props, keyToOmit) {

FILE: packages/cmf/src/onError.js
  function serialize (line 23) | function serialize(error) {
  function getReportInfo (line 44) | function getReportInfo(error) {
  function hasReportURL (line 57) | function hasReportURL() {
  function hasReportFeature (line 64) | function hasReportFeature() {
  function report (line 72) | function report(error, options = {}) {
  function bootstrap (line 124) | function bootstrap(options, store) {
  function getErrors (line 137) | function getErrors() {
  function setupFromSettings (line 141) | function setupFromSettings() {}
  function middleware (line 149) | function middleware() {
  function createObjectURL (line 173) | function createObjectURL(error) {
  function revokeObjectURL (line 184) | function revokeObjectURL(url) {

FILE: packages/cmf/src/onEvent.js
  function serializeEvent (line 5) | function serializeEvent(event) {
  function getOnEventActionCreatorHandler (line 12) | function getOnEventActionCreatorHandler(instance, props, config, current...
  function getOnEventDispatchHandler (line 29) | function getOnEventDispatchHandler(instance, props, config, currentHandl...
  function getOnEventSetStateHandler (line 43) | function getOnEventSetStateHandler(instance, props, config, currentHandl...
  constant GET_HANDLER (line 77) | const GET_HANDLER = {
  constant ACTION_CREATOR (line 83) | const ACTION_CREATOR = 'ACTION_CREATOR';
  constant DISPATCH (line 84) | const DISPATCH = 'DISPATCH';
  constant SETSTATE (line 85) | const SETSTATE = 'SETSTATE';
  constant INITIAL_STATE (line 87) | const INITIAL_STATE = new Immutable.Map();
  function addOnEventSupport (line 89) | function addOnEventSupport(handlerType, instance, props, key) {

FILE: packages/cmf/src/reducers/collectionsReducers.js
  function getId (line 13) | function getId(element) {
  function getActionWithCollectionIdAsArray (line 25) | function getActionWithCollectionIdAsArray(action) {
  function addCollectionElement (line 43) | function addCollectionElement(state, action) {
  function deleteListElements (line 59) | function deleteListElements(state, action) {
  function deleteMapElements (line 71) | function deleteMapElements(state, action) {
  function deleteCollectionElement (line 92) | function deleteCollectionElement(state, action) {
  function updateListElements (line 105) | function updateListElements(state, action) {
  function updateMapElements (line 114) | function updateMapElements(state, action) {
  function updateCollectionElement (line 130) | function updateCollectionElement(state, action) {
  function mutateCollection (line 150) | function mutateCollection(state, action) {
  function collectionsReducers (line 164) | function collectionsReducers(state = defaultState, action = { type: '' }) {

FILE: packages/cmf/src/reducers/componentsReducers.js
  function warnIfAnotherComponentBind (line 18) | function warnIfAnotherComponentBind(state, action) {
  function warnIfRemovingStateDoesntExist (line 33) | function warnIfRemovingStateDoesntExist(state, action) {
  function errorIfMergingStateDoesntExist (line 50) | function errorIfMergingStateDoesntExist(state, action) {
  function componentsReducers (line 66) | function componentsReducers(state = defaultState, action) {

FILE: packages/cmf/src/reducers/index.js
  function errorsReducer (line 19) | function errorsReducer(state = defaultState, action) {

FILE: packages/cmf/src/reducers/settingsReducers.js
  function attachRef (line 21) | function attachRef(refs, obj) {
  function attachRefs (line 34) | function attachRefs(refs, props) {
  function prepareSettings (line 47) | function prepareSettings({ views, props, ref, ...rest }) {
  function settingsReducers (line 75) | function settingsReducers(state = defaultState, action) {

FILE: packages/cmf/src/register.js
  function registerInternals (line 7) | function registerInternals(context) {

FILE: packages/cmf/src/registry.js
  method getRegistry (line 20) | getRegistry() {
  method lock (line 23) | lock() {
  method isLocked (line 26) | isLocked() {
  function getRegistry (line 37) | function getRegistry(context) {
  function addToRegistry (line 53) | function addToRegistry(id, item, context) {
  function getFromRegistry (line 85) | function getFromRegistry(id, context) {
  function getRegisterMany (line 93) | function getRegisterMany(registerFn) {
  function lock (line 106) | function lock() {

FILE: packages/cmf/src/sagas/component.js
  function register (line 11) | function register(id, saga, context) {
  function get (line 20) | function get(id, context) {

FILE: packages/cmf/src/sagas/http.js
  constant HTTP (line 18) | const HTTP = {
  function handleCSRFToken (line 28) | function handleCSRFToken(config) {
  class HTTPError (line 34) | class HTTPError extends Error {
    method constructor (line 35) | constructor({ data, response }) {
  function handleBody (line 50) | function handleBody(response, { method } = {}) {
  function handleError (line 79) | function handleError(response, request = {}) {
  function handleHttpResponse (line 96) | function handleHttpResponse(response, request = {}) {
  function encodePayload (line 110) | function encodePayload(headers, payload) {
  function httpFetch (line 130) | function httpFetch(url, config, method, payload) {
  function setDefaultConfig (line 314) | function setDefaultConfig(config) {
  function setDefaultLanguage (line 329) | function setDefaultLanguage(language) {
  function getDefaultConfig (line 357) | function getDefaultConfig() {
  method create (line 371) | create(createConfig = {}) {

FILE: packages/cmf/src/selectors/collections.js
  function getAll (line 4) | function getAll(state) {
  function get (line 15) | function get(state, collectionPath, defaultValue) {
  function findListItem (line 36) | function findListItem(state, collectionPath, itemId) {
  function toJS (line 49) | function toJS(state, path) {

FILE: packages/cmf/src/selectors/toJS.js
  function toJS (line 1) | function toJS(data) {
  function getToJSMemoized (line 18) | function getToJSMemoized(selector) {

FILE: packages/cmf/src/settings.jsx
  function generateDefaultViewId (line 17) | function generateDefaultViewId(viewId, componentName, componentId) {
  function withoutHOC (line 33) | function withoutHOC(componentName) {
  function nonMemoized (line 45) | function nonMemoized(state, ownProps, componentName, componentId) {
  function PureWaitForSettings (line 110) | function PureWaitForSettings({ initialized, loading, children }) {

FILE: packages/cmf/src/store.js
  function setHttpMiddleware (line 42) | function setHttpMiddleware(middleware) {
  function addPreReducer (line 48) | function addPreReducer(reducers) {
  function preApplyReducer (line 56) | function preApplyReducer(reducer) {
  function getReducer (line 75) | function getReducer(appReducer) {
  function getMiddlewares (line 98) | function getMiddlewares(middleware) {
  function initialize (line 128) | function initialize(appReducer, preloadedState, enhancer, middleware) {

FILE: packages/cmf/src/useContext.js
  function useCMFContext (line 5) | function useCMFContext() {

FILE: packages/components/__mocks__/day-calendar.jsx
  class DayCalendar (line 9) | class DayCalendar extends Component {
    method isCurrentMonth (line 10) | isCurrentMonth(date) {
    method render (line 14) | render() {

FILE: packages/components/__mocks__/list.jsx
  class ListItem (line 5) | class ListItem extends Component {
    method render (line 6) | render() {
  function List (line 29) | function List(props) {

FILE: packages/components/__mocks__/month-calendar.jsx
  class MonthCalendar (line 4) | class MonthCalendar extends Component {
    method render (line 5) | render() {

FILE: packages/components/src/AboutDialog/AboutDialog.component.jsx
  function AboutDialog (line 12) | function AboutDialog({

FILE: packages/components/src/AboutDialog/AboutDialogTable.component.jsx
  function Text (line 15) | function Text({ text = '', loading, size = Skeleton.SIZES.medium }) {
  function AboutDialogTable (line 19) | function AboutDialogTable({

FILE: packages/components/src/ActionBar/ActionBar.component.jsx
  constant DISPLAY_MODES (line 10) | const DISPLAY_MODES = {
  constant TAG_TYPES (line 16) | const TAG_TYPES = {
  function getActionsToRender (line 40) | function getActionsToRender({ selected, actions, multiSelectActions = {}...
  function getContentClassName (line 62) | function getContentClassName(tag, left, center, right, className) {
  function Content (line 76) | function Content({ tag = TAG_TYPES.DIV, left, right, center, className, ...
  function getActionsFromRenderers (line 92) | function getActionsFromRenderers(actions, getComponent) {
  function SwitchActions (line 124) | function SwitchActions({ actions, left, right, center, getComponent, com...
  function Count (line 151) | function Count({ selected }) {
  function defineComponentLeft (line 170) | function defineComponentLeft(parentComponentLeft, selected, hideCount) {
  function ActionBar (line 184) | function ActionBar(props) {

FILE: packages/components/src/ActionBar/ActionBar.test.jsx
  function MyAction (line 59) | function MyAction(props) {

FILE: packages/components/src/ActionIntercom/Intercom.component.jsx
  function Intercom (line 14) | function Intercom({ id, className, config, t, tooltipPlacement }) {

FILE: packages/components/src/ActionIntercom/Intercom.service.jsx
  function insertScript (line 4) | function insertScript(appId) {
  function init (line 13) | function init(config) {
  function boot (line 32) | function boot(widgetId, config = {}) {
  function update (line 41) | function update(config) {
  function shutdown (line 45) | function shutdown() {
  function onHide (line 49) | function onHide(fn) {
  function onShow (line 53) | function onShow(fn) {
  constant INTERCOM_MAIN_FRAME_SELECTOR (line 57) | const INTERCOM_MAIN_FRAME_SELECTOR =
  constant INTERCOM_MAIN_FRAME_WIDTH (line 59) | const INTERCOM_MAIN_FRAME_WIDTH = 376;
  constant STYLE_DELAY (line 60) | const STYLE_DELAY = 500;
  function setPosition (line 61) | function setPosition(domElement) {

FILE: packages/components/src/ActionIntercom/Intercom.service.test.jsx
  function onHideCallback (line 118) | function onHideCallback() {}
  function onShowCallback (line 133) | function onShowCallback() {}

FILE: packages/components/src/ActionList/ActionList.component.jsx
  function getActionId (line 21) | function getActionId(id, action) {
  function ActionListItem (line 29) | function ActionListItem({ getComponent, id, onSelect, action, isSelected...
  function ActionList (line 74) | function ActionList(props) {

FILE: packages/components/src/Actions/Action/Action.component.jsx
  constant DISPLAY_MODE_FILE (line 10) | const DISPLAY_MODE_FILE = 'file';
  constant DISPLAY_MODE_DROPDOWN (line 11) | const DISPLAY_MODE_DROPDOWN = 'dropdown';
  constant DISPLAY_MODE_SPLIT_DROPDOWN (line 12) | const DISPLAY_MODE_SPLIT_DROPDOWN = 'splitDropdown';
  constant DISPLAY_MODE_ICON_TOGGLE (line 13) | const DISPLAY_MODE_ICON_TOGGLE = 'iconToggle';
  function getActionComponent (line 27) | function getActionComponent({ displayMode, getComponent }) {
  function Action (line 59) | function Action({ displayMode, getComponent, ...props }) {

FILE: packages/components/src/Actions/ActionButton/ActionButton.component.jsx
  constant LEFT (line 17) | const LEFT = 'left';
  constant RIGHT (line 18) | const RIGHT = 'right';
  function getIcon (line 20) | function getIcon({ icon, iconName, iconTransform, inProgress, loading }) {
  function getLabel (line 55) | function getLabel({ hideLabel, label, loading }) {
  function adjustContentPlacement (line 71) | function adjustContentPlacement(icon, label, iconPosition) {
  function getContent (line 78) | function getContent(props) {
  function getHandler (line 82) | function getHandler(func, model, label, rest) {
  function noOp (line 93) | function noOp() {}
  function ActionButton (line 108) | function ActionButton(props) {

FILE: packages/components/src/Actions/ActionButton/ActionButton.test.jsx
  function OverlayComponent (line 19) | function OverlayComponent() {

FILE: packages/components/src/Actions/ActionButton/Button.stories.jsx
  constant ACTION1 (line 23) | const ACTION1 = 'Action 1';
  constant ACTION2 (line 24) | const ACTION2 = 'Action 2';

FILE: packages/components/src/Actions/ActionDropdown/ActionDropdown.component.jsx
  constant DROPDOWN_CONTAINER_CN (line 23) | const DROPDOWN_CONTAINER_CN = 'tc-dropdown-container';
  function InjectDropdownMenuItem (line 25) | function InjectDropdownMenuItem({
  function renderMutableMenuItem (line 66) | function renderMutableMenuItem(item, index, getComponent) {
  function getMenuItem (line 98) | function getMenuItem(item, index, getComponent) {
  function getDropdownContainer (line 106) | function getDropdownContainer(dropdownElement) {
  class ActionDropdown (line 145) | class ActionDropdown extends Component {
    method constructor (line 146) | constructor(props) {
    method componentDidUpdate (line 153) | componentDidUpdate(prevProps, prevState) {
    method onToggle (line 184) | onToggle(isOpen) {
    method onItemSelect (line 192) | onItemSelect(object, event) {
    method render (line 198) | render() {

FILE: packages/components/src/Actions/ActionDropdown/ActionDropdown.test.jsx
  function getComponent (line 9) | function getComponent(key) {
  function testSwitch (line 169) | async function testSwitch({

FILE: packages/components/src/Actions/ActionFile/ActionFile.component.jsx
  constant LEFT (line 12) | const LEFT = 'left';
  constant RIGHT (line 13) | const RIGHT = 'right';
  class ActionFile (line 24) | class ActionFile extends Component {
    method constructor (line 56) | constructor(props) {
    method handleChange (line 61) | handleChange(event) {
    method render (line 70) | render() {

FILE: packages/components/src/Actions/ActionIconToggle/ActionIconToggle.component.jsx
  function ActionIconToggle (line 12) | function ActionIconToggle(props) {

FILE: packages/components/src/Actions/ActionIconToggle/IconToggle.stories.jsx
  constant ACTION1 (line 24) | const ACTION1 = 'Action 1';
  constant ACTION2 (line 25) | const ACTION2 = 'Action 2';

FILE: packages/components/src/Actions/ActionSplitDropdown/ActionSplitDropdown.component.jsx
  function ActionSplitDropdown (line 33) | function ActionSplitDropdown(props) {

FILE: packages/components/src/Actions/Actions.component.jsx
  function getButtonGroupProps (line 8) | function getButtonGroupProps(props) {
  function Actions (line 66) | function Actions({ getComponent, hideLabel, link, tooltipPlacement, ...p...

FILE: packages/components/src/Actions/wrapOnClick.js
  function noOp (line 7) | function noOp() {}
  function wrapOnClick (line 9) | function wrapOnClick(action) {

FILE: packages/components/src/AppGuidedTour/AppGuidedTour.component.jsx
  constant DEMO_CONTENT_STEP_ID (line 13) | const DEMO_CONTENT_STEP_ID = 1;
  constant DEFAULT_LOCAL_STORAGE_KEY (line 14) | const DEFAULT_LOCAL_STORAGE_KEY = 'app-guided-tour-viewed';
  function AppGuidedTour (line 16) | function AppGuidedTour({

FILE: packages/components/src/AppGuidedTour/AppGuidedTour.stories.jsx
  function AppGuidedTourContainer (line 6) | function AppGuidedTourContainer({ withDemoContent = false }) {

FILE: packages/components/src/AppGuidedTour/AppGuidedTour.test.jsx
  constant DEFAULT_PROPS (line 6) | const DEFAULT_PROPS = {

FILE: packages/components/src/AppGuidedTour/DemoContentStep.component.jsx
  function DemoContentStep (line 8) | function DemoContentStep({ demoContentSteps }) {

FILE: packages/components/src/AppLoader/AppLoader.component.jsx
  function AppLoaderComponent (line 6) | function AppLoaderComponent({ t }) {

FILE: packages/components/src/AppLoader/constant.js
  constant LOADER_STYLE (line 1) | const LOADER_STYLE = `* {
  constant APP_LOADER (line 166) | const APP_LOADER = `<div class="tc-app-loader-container" aria-label="Loa...
  function getLoaderStyle (line 182) | function getLoaderStyle(icon = '') {

FILE: packages/components/src/AppSwitcher/AppSwitcher.component.jsx
  function AppSwitcher (line 15) | function AppSwitcher({

FILE: packages/components/src/Badge/Badge.component.jsx
  constant SIZES (line 11) | const SIZES = {
  constant TYPES (line 16) | const TYPES = {
  function Badge (line 69) | function Badge({

FILE: packages/components/src/Badge/Badge.stories.jsx
  function onDelete (line 74) | function onDelete(name) {
  function onSelect (line 80) | function onSelect(name) {

FILE: packages/components/src/Badge/BadgeComposition/BadgeDelete/BadgeDelete.component.jsx
  function BadgeDelete (line 11) | function BadgeDelete({ disabled, id, label, onClick, dataFeature }) {

FILE: packages/components/src/Breadcrumbs/Breadcrumbs.component.jsx
  constant DEFAULT_MAX_ITEMS (line 16) | const DEFAULT_MAX_ITEMS = 4;
  constant DEFAULT_NB_ITEMS_BEFORE_ELLIPSIS (line 22) | const DEFAULT_NB_ITEMS_BEFORE_ELLIPSIS = 1;
  constant BREADCRUMB_SKELETON (line 24) | const BREADCRUMB_SKELETON = [
  function BreadcrumbsComponent (line 39) | function BreadcrumbsComponent({ loading, id, items, maxItems, t }) {

FILE: packages/components/src/Checkbox/Checkbox.jsx
  function Checkbox (line 5) | function Checkbox({ id, className, label, intermediate, ...props }) {

FILE: packages/components/src/CircularProgress/CircularProgress.component.jsx
  constant RADIUS (line 9) | const RADIUS = 20;
  constant DIAMETER (line 10) | const DIAMETER = 50;
  constant CENTER_POSITION (line 11) | const CENTER_POSITION = 25;
  constant CIRCUMFERENCE (line 12) | const CIRCUMFERENCE = Math.PI * (RADIUS * 2);
  function getCircleStyle (line 14) | function getCircleStyle(percent) {
  function CircularProgress (line 32) | function CircularProgress({ size, light, percent, className, t }) {

FILE: packages/components/src/CollapsiblePanel/CollapsiblePanel.component.jsx
  constant TYPE_STATUS (line 16) | const TYPE_STATUS = 'status';
  constant TYPE_ACTION (line 17) | const TYPE_ACTION = 'action';
  constant TYPE_BADGE (line 18) | const TYPE_BADGE = 'badge';
  function getActionHandler (line 20) | function getActionHandler(func, item) {
  function renderHeaderItem (line 51) | function renderHeaderItem({ displayMode, className, ...headerItem }, key) {
  function CollapsiblePanelHeader (line 113) | function CollapsiblePanelHeader(props) {
  function getKeyValueContent (line 183) | function getKeyValueContent(content) {
  function getTextualContent (line 198) | function getTextualContent(content) {
  function CollapsiblePanel (line 222) | function CollapsiblePanel(props) {

FILE: packages/components/src/ConfirmDialog/ConfirmDialog.component.jsx
  function ConfirmDialog (line 33) | function ConfirmDialog({

FILE: packages/components/src/DataViewer/Badges/LengthBadge/LengthBadge.component.jsx
  function LengthBadge (line 8) | function LengthBadge({ lengthValue, className }) {

FILE: packages/components/src/DataViewer/Core/Tree/Tree.component.jsx
  function isRoot (line 11) | function isRoot(level) {
  function Tree (line 19) | function Tree({ className, noRoot, withNodeBorder, ...props }) {

FILE: packages/components/src/DataViewer/Core/TreeNode/TreeNode.component.js
  function isBranch (line 9) | function isBranch(type) {
  function isBranchOpened (line 20) | function isBranchOpened(expandAll, index, paths, jsonpath) {
  function isNodeHighlighted (line 30) | function isNodeHighlighted(highlighted, jsonpath) {
  function isDeepNodeHighlighted (line 42) | function isDeepNodeHighlighted(opened, nodeHighlighted, type) {
  class TreeNode (line 53) | class TreeNode extends Component {
    method render (line 66) | render() {

FILE: packages/components/src/DataViewer/Core/TreeNodeList/TreeNodeList.component.jsx
  function TreeNodeList (line 8) | function TreeNodeList({ treeClassName, nodeClassName, ...props }) {

FILE: packages/components/src/DataViewer/DataViewer.stories.jsx
  function buildRegExpJsonpath (line 16) | function buildRegExpJsonpath(jsonpath) {

FILE: packages/components/src/DataViewer/Headers/TreeHeader/TreeHeader.component.jsx
  function TreeHeader (line 12) | function TreeHeader({ title, otherActions, onClickCollapseAll, onClickEx...

FILE: packages/components/src/DataViewer/Icons/TreeBranchIcon/TreeBranchIcon.component.jsx
  function getDefaultIcon (line 13) | function getDefaultIcon({ useCustomIcon, getIcon, opened, ...props }) {
  class TreeBranchIcon (line 26) | class TreeBranchIcon extends PureComponent {
    method render (line 57) | render() {

FILE: packages/components/src/DataViewer/Managers/TreeManager/TreeManager.container.js
  function addPathsToCollection (line 5) | function addPathsToCollection(index, collection, paths, jsonpath) {
  function removePathsFromCollection (line 9) | function removePathsFromCollection(index, collection, paths, jsonpath) {
  function updateCollection (line 23) | function updateCollection(index, collection, expandAll, paths, { opened,...
  class TreeManager (line 37) | class TreeManager extends Component {
    method constructor (line 49) | constructor(props) {
    method render (line 112) | render() {

FILE: packages/components/src/DataViewer/ModelViewer/Branch/ModelViewerBranch.component.jsx
  function getBranchDisplayKey (line 8) | function getBranchDisplayKey(union, hasSemanticAwareness, getDisplayKey,...
  class ModelViewerBranch (line 23) | class ModelViewerBranch extends Component {
    method render (line 76) | render() {

FILE: packages/components/src/DataViewer/ModelViewer/Leaf/ModelViewerLeaf.component.jsx
  function isOptional (line 14) | function isOptional(item) {
  function ModelViewerLeaf (line 24) | function ModelViewerLeaf({

FILE: packages/components/src/DataViewer/ModelViewer/Leaf/ModelViewerLeaf.test.jsx
  function renderLeafOptions (line 52) | function renderLeafOptions(v) {

FILE: packages/components/src/DataViewer/ModelViewer/ModelViewer.component.jsx
  function ModelViewer (line 8) | function ModelViewer({ t, ...props }) {

FILE: packages/components/src/DataViewer/ModelViewer/ModelViewer.container.jsx
  function defaultGetDisplayValue (line 19) | function defaultGetDisplayValue(item) {
  function getDqType (line 30) | function getDqType(item) {
  function defaultGetDisplayKey (line 37) | function defaultGetDisplayKey(item) {
  function getChilds (line 51) | function getChilds(item) {
  function filterNullUnion (line 66) | function filterNullUnion(union) {
  function transformUnions (line 89) | function transformUnions(childs) {
  function defaultTransformChilds (line 104) | function defaultTransformChilds(item) {
  function getJSONPath (line 114) | function getJSONPath(dataKey, parent) {
  function getItemType (line 126) | function getItemType(item) {
  class ModelViewer (line 133) | class ModelViewer extends RComponent {
    method render (line 203) | render() {

FILE: packages/components/src/DataViewer/RecordsViewer/Branch/RecordsViewerBranch.component.jsx
  function isLoaded (line 17) | function isLoaded(value) {
  class RecordsViewerBranch (line 21) | class RecordsViewerBranch extends Component {
    method render (line 68) | render() {

FILE: packages/components/src/DataViewer/RecordsViewer/CellRenderer/RecordsCellRenderer.component.jsx
  class RecordsCellRenderer (line 5) | class RecordsCellRenderer extends Component {
    method shouldComponentUpdate (line 16) | shouldComponentUpdate(nextProps) {
    method componentDidUpdate (line 27) | componentDidUpdate() {
    method render (line 37) | render() {

FILE: packages/components/src/DataViewer/RecordsViewer/Leaf/RecordsViewerLeaf.component.jsx
  function RecordsViewerLeaf (line 11) | function RecordsViewerLeaf({

FILE: packages/components/src/DataViewer/RecordsViewer/Leaf/RecordsViewerLeaf.test.jsx
  method get (line 8) | get() {

FILE: packages/components/src/DataViewer/RecordsViewer/RecordsViewer.component.jsx
  class RecordsViewer (line 12) | class RecordsViewer extends Component {
    method render (line 32) | render() {

FILE: packages/components/src/DataViewer/RecordsViewer/RecordsViewer.container.jsx
  function getIcon (line 24) | function getIcon(opened) {
  class RecordsViewer (line 40) | class RecordsViewer extends RComponent {
    method render (line 97) | render() {

FILE: packages/components/src/DataViewer/RecordsViewer/RecordsViewer.parser.js
  function getNextSchemaItems (line 9) | function getNextSchemaItems(schema) {
  function transformObjectBranch (line 28) | function transformObjectBranch(itemChilds, schema) {
  function transformArrayBranch (line 60) | function transformArrayBranch(itemChilds, schema) {
  function getItemValue (line 74) | function getItemValue(item) {
  function findSchemaUnion (line 86) | function findSchemaUnion(schema, unionKey) {
  function getObjectBranchDatakey (line 101) | function getObjectBranchDatakey(dataKey, value) {
  function getSchemaUnion (line 124) | function getSchemaUnion(item, schema) {
  function getJSONPath (line 139) | function getJSONPath(dataKey, parent) {
  function getChilds (line 161) | function getChilds(item, schema, type) {
  function getChildsCount (line 174) | function getChildsCount(item) {
  function getItemType (line 189) | function getItemType(item) {

FILE: packages/components/src/DataViewer/Text/SimpleTextKeyValue/DefaultValueRenderer.component.jsx
  constant DEFAULT_VALUE_PROP_TYPES (line 10) | const DEFAULT_VALUE_PROP_TYPES = PropTypes.oneOfType([
  class DefaultValueRenderer (line 19) | class DefaultValueRenderer extends Component {
    method render (line 27) | render() {

FILE: packages/components/src/DataViewer/Text/SimpleTextKeyValue/SimpleTextKeyValue.component.jsx
  constant DATE_TYPE_FORMATER (line 9) | const DATE_TYPE_FORMATER = 'date';
  constant LONG_TYPE (line 10) | const LONG_TYPE = 'long';
  constant AVRO_TYPES (line 11) | const AVRO_TYPES = [
  constant TIMESTAMP_MILLIS_LOGICAL_TYPES (line 23) | const TIMESTAMP_MILLIS_LOGICAL_TYPES = 'timestamp-millis';
  constant LOGICAL_TYPES (line 24) | const LOGICAL_TYPES = [TIMESTAMP_MILLIS_LOGICAL_TYPES];
  constant PRIMITIVES_MAPPING (line 25) | const PRIMITIVES_MAPPING = {
  function getTypeRenderer (line 32) | function getTypeRenderer(schemaType) {
  function AvroRenderer (line 45) | function AvroRenderer({ colDef, data, isValueOverflown, isLongValueToggl...

FILE: packages/components/src/DataViewer/Virtualized/TreeCellMeasurer/TreeCellMeasurer.component.jsx
  function TreeCellMeasurer (line 5) | function TreeCellMeasurer({ index, parent, style, cellRenderer, classNam...

FILE: packages/components/src/DataViewer/Virtualized/VirtualizedTree/VirtualizedTree.component.jsx
  constant DEFAULT_HEIGHT (line 8) | const DEFAULT_HEIGHT = 40;
  class VirtualizedTree (line 13) | class VirtualizedTree extends Component {
    method render (line 40) | render() {

FILE: packages/components/src/DataViewer/jsonPath.js
  function formatKey (line 6) | function formatKey(key, type) {
  function readJsonKeys (line 18) | function readJsonKeys(keys, type) {
  function formatJSONPath (line 33) | function formatJSONPath(keys, prefix, type) {

FILE: packages/components/src/Datalist/Datalist.component.jsx
  function escapeRegexCharacters (line 17) | function escapeRegexCharacters(str) {
  constant PROPS_TO_OMIT (line 21) | const PROPS_TO_OMIT = ['restricted', 'titleMap', 'value'];
  constant DISPLAY (line 22) | const DISPLAY = {
  function isValuePresentInSuggestions (line 28) | function isValuePresentInSuggestions(titleMap, filterValue, multiSection) {
  function buildSuggestions (line 36) | function buildSuggestions({
  function findEntry (line 89) | function findEntry(titleMap, attributeName, attributeValue = '') {
  function getEntryFromName (line 118) | function getEntryFromName(titleMap, name, restricted) {
  function getEntryFromValue (line 131) | function getEntryFromValue(titleMap, value, restricted) {
  function getEntry (line 140) | function getEntry(titleMap, nameOrValue, restricted) {
  function Datalist (line 150) | function Datalist(props) {

FILE: packages/components/src/DateTimePickers/Date/Input/Input.component.jsx
  function Input (line 11) | function Input(props) {

FILE: packages/components/src/DateTimePickers/Date/Manager/Manager.component.jsx
  function ContextualManager (line 13) | function ContextualManager(props) {

FILE: packages/components/src/DateTimePickers/Date/Manager/Manager.component.test.jsx
  constant DEFAULT_ID (line 8) | const DEFAULT_ID = 'DEFAULT_ID';
  function DateConsumerDiv (line 10) | function DateConsumerDiv(props) {
  function DateConsumer (line 31) | function DateConsumer() {

FILE: packages/components/src/DateTimePickers/Date/Picker/Picker.component.jsx
  function Picker (line 6) | function Picker(props) {

FILE: packages/components/src/DateTimePickers/Date/date-extraction.js
  constant INTERNAL_INVALID_DATE (line 10) | const INTERNAL_INVALID_DATE = new Date('INTERNAL_INVALID_DATE');
  function DatePickerException (line 12) | function DatePickerException(code, message) {
  function getDateRegexp (line 23) | function getDateRegexp(dateFormat) {
  function isDateValid (line 37) | function isDateValid(date, options) {
  function dateToStr (line 50) | function dateToStr(date, { dateFormat }) {
  function convertDateToTimezone (line 54) | function convertDateToTimezone(date, { useUTC, timezone }) {
  function strToDate (line 67) | function strToDate(strToParse, dateFormat, isDisabledChecker) {
  function checkSupportedDateFormat (line 116) | function checkSupportedDateFormat(dateFormat) {
  function checkSupportedTimezone (line 135) | function checkSupportedTimezone(timezone) {
  function extractDateOnly (line 149) | function extractDateOnly(date, { useUTC, timezone }) {
  function extractPartsFromDate (line 169) | function extractPartsFromDate(date, options) {
  function extractPartsFromTextInput (line 202) | function extractPartsFromTextInput(textInput, options, isDisabledChecker) {
  function extractDate (line 232) | function extractDate(value, options) {
  function extractFromDate (line 248) | function extractFromDate(date, options) {

FILE: packages/components/src/DateTimePickers/DateRange/Input/Input.component.jsx
  constant OMIT_INPUT_PROPS (line 12) | const OMIT_INPUT_PROPS = ['date', 'onChange', 'onFocus', 'label', 'minWi...

FILE: packages/components/src/DateTimePickers/DateRange/Manager/Manager.component.jsx
  function DateRangePickerException (line 14) | function DateRangePickerException(code, message) {
  function extractRangeParts (line 19) | function extractRangeParts(startDate, endDate, options) {
  function ContextualManager (line 37) | function ContextualManager(props) {

FILE: packages/components/src/DateTimePickers/DateRange/Manager/Manager.component.test.jsx
  constant DEFAULT_ID (line 8) | const DEFAULT_ID = 'DEFAULT_ID';
  function DateRangeConsumerDiv (line 10) | function DateRangeConsumerDiv(props) {
  function DateRangeConsumer (line 33) | function DateRangeConsumer(props) {

FILE: packages/components/src/DateTimePickers/DateRange/Picker/Picker.component.jsx
  function Picker (line 7) | function Picker(props) {

FILE: packages/components/src/DateTimePickers/DateRange/constants.js
  constant START_DATE (line 1) | const START_DATE = 'startDate';
  constant END_DATE (line 2) | const END_DATE = 'endDate';

FILE: packages/components/src/DateTimePickers/DateTime/Manager/Manager.component.jsx
  function ContextualManager (line 11) | function ContextualManager(props) {

FILE: packages/components/src/DateTimePickers/DateTime/Manager/Manager.component.test.jsx
  constant DEFAULT_ID (line 8) | const DEFAULT_ID = 'DEFAULT_ID';
  function DateTimeConsumerDiv (line 10) | function DateTimeConsumerDiv(props) {
  function DateTimeConsumer (line 34) | function DateTimeConsumer(props) {

FILE: packages/components/src/DateTimePickers/DateTime/datetime-extraction.js
  constant INTERNAL_INVALID_DATE (line 10) | const INTERNAL_INVALID_DATE = new Date('INTERNAL_INVALID_DATE');
  function DateTimePickerException (line 12) | function DateTimePickerException(code, message) {
  function isEmpty (line 17) | function isEmpty(value) {
  function extractTimeOnly (line 29) | function extractTimeOnly(date, { useSeconds, useUTC, timezone }) {
  function timeToSeconds (line 58) | function timeToSeconds(hours, minutes, seconds) {
  function dateAndTimeToDateTime (line 70) | function dateAndTimeToDateTime(date, time, options) {
  function dateAndTimeToStr (line 88) | function dateAndTimeToStr(date = '', time = '', options) {
  function extractPartsFromDateTime (line 106) | function extractPartsFromDateTime(datetime, options) {
  function extractPartsFromTextInput (line 133) | function extractPartsFromTextInput(textInput, options) {
  function extractParts (line 180) | function extractParts(value, options) {
  function updatePartsOnDateChange (line 203) | function updatePartsOnDateChange(datePickerPayload, time, options) {
  function updatePartsOnTimeChange (line 234) | function updatePartsOnTimeChange(timePickerPayload, date, options) {

FILE: packages/components/src/DateTimePickers/DateTimeRange/Manager/Manager.component.jsx
  function DateTimeRangePickerException (line 10) | function DateTimeRangePickerException(code, message) {
  function DateTimeRangeManager (line 15) | function DateTimeRangeManager(props) {

FILE: packages/components/src/DateTimePickers/DateTimeRange/Manager/Manager.component.test.jsx
  constant DEFAULT_ID (line 8) | const DEFAULT_ID = 'DEFAULT_ID';
  function DateTimeRangeConsumerDiv (line 10) | function DateTimeRangeConsumerDiv(props) {
  function DateTimeRangeConsumer (line 27) | function DateTimeRangeConsumer(props) {

FILE: packages/components/src/DateTimePickers/InputDatePicker/InputDatePicker.component.jsx
  constant PROPS_TO_OMIT_FOR_INPUT (line 17) | const PROPS_TO_OMIT_FOR_INPUT = [
  function onMouseDown (line 33) | function onMouseDown(event) {
  function InputDatePicker (line 37) | function InputDatePicker(props) {

FILE: packages/components/src/DateTimePickers/InputDateRangePicker/InputDateRangePicker.component.jsx
  constant PROPS_TO_OMIT_FOR_INPUT (line 19) | const PROPS_TO_OMIT_FOR_INPUT = [
  function InputDateRangePicker (line 28) | function InputDateRangePicker(props) {

FILE: packages/components/src/DateTimePickers/InputDateTimePicker/InputDateTimePicker.component.jsx
  function InputDateTimePicker (line 12) | function InputDateTimePicker(props) {
  function InputDateTimePickerSwitch (line 100) | function InputDateTimePickerSwitch(props) {

FILE: packages/components/src/DateTimePickers/InputDateTimeRangePicker/InputDateTimeRangePicker.component.jsx
  constant PROPS_TO_OMIT_FOR_INPUT (line 17) | const PROPS_TO_OMIT_FOR_INPUT = [
  function InputDateTimeRangePicker (line 27) | function InputDateTimeRangePicker(props) {

FILE: packages/components/src/DateTimePickers/InputTimePicker/InputTimePicker.component.jsx
  constant PROPS_TO_OMIT_FOR_INPUT (line 16) | const PROPS_TO_OMIT_FOR_INPUT = [
  function InputTimePicker (line 26) | function InputTimePicker(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/Input/Input.component.jsx
  function Input (line 6) | function Input(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/Manager/Manager.component.jsx
  class ContextualManager (line 28) | class ContextualManager extends Component {
    method constructor (line 60) | constructor(props) {
    method componentDidUpdate (line 82) | componentDidUpdate(prevProps, prevState) {
    method onChange (line 100) | onChange(event, origin) {
    method onInputChange (line 110) | onInputChange(event) {
    method onPickerChange (line 123) | onPickerChange(event, { date, time, field }) {
    method onSubmit (line 183) | onSubmit(event, origin) {
    method onInputFocus (line 201) | onInputFocus(event, focusedId) {
    method onReset (line 205) | onReset() {
    method getDateOptions (line 213) | getDateOptions() {
    method hasError (line 224) | hasError(errorCodes) {
    method render (line 234) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/Manager/Manager.component.test.jsx
  constant DEFAULT_ID (line 9) | const DEFAULT_ID = 'DEFAULT_ID';
  function DateTimeConsumerDiv (line 11) | function DateTimeConsumerDiv(props) {
  function DateTimeConsumer (line 45) | function DateTimeConsumer(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/Picker/Picker.component.jsx
  function Picker (line 6) | function Picker(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/Validation/Error.component.tsx
  type ErrorProps (line 3) | type ErrorProps = {
  function Error (line 9) | function Error({ hidden, errors, id }: ErrorProps) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/Validation/Validation.component.jsx
  function Validation (line 13) | function Validation({ t }) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/constants.js
  constant INPUT_ERRORS (line 1) | const INPUT_ERRORS = [
  constant HOUR_ERRORS (line 9) | const HOUR_ERRORS = ['INVALID_HOUR'];
  constant MINUTES_ERRORS (line 10) | const MINUTES_ERRORS = ['INVALID_MINUTES'];
  constant SECONDS_ERRORS (line 11) | const SECONDS_ERRORS = ['INVALID_SECONDS'];
  constant FIELD_HOURS (line 13) | const FIELD_HOURS = 'HOURS';
  constant FIELD_MINUTES (line 14) | const FIELD_MINUTES = 'MINUTES';
  constant FIELD_SECONDS (line 15) | const FIELD_SECONDS = 'SECONDS';

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/date-extraction.js
  constant INTERNAL_INVALID_DATE (line 16) | const INTERNAL_INVALID_DATE = new Date('INTERNAL_INVALID_DATE');
  function DatePickerException (line 18) | function DatePickerException(code, message) {
  function pad (line 23) | function pad(num, size) {
  function extractDateOnly (line 39) | function extractDateOnly(date, { useUTC }) {
  function extractTimeOnly (line 53) | function extractTimeOnly(date, { useSeconds, useUTC }) {
  function getDateRegexp (line 80) | function getDateRegexp(dateFormat) {
  function getFullDateFormat (line 97) | function getFullDateFormat({ dateFormat, useTime, useSeconds }) {
  function isDateValid (line 108) | function isDateValid(date, options) {
  function checkHours (line 119) | function checkHours(hours) {
  function checkMinutes (line 132) | function checkMinutes(minutes) {
  function checkSeconds (line 146) | function checkSeconds(seconds) {
  function isTimeEmpty (line 159) | function isTimeEmpty(time) {
  function checkTime (line 169) | function checkTime(time, options) {
  function check (line 201) | function check(date, time, options) {
  function timeToSeconds (line 228) | function timeToSeconds(hours, minutes, seconds, options) {
  function dateTimeToStr (line 240) | function dateTimeToStr(date, time, options) {
  function dateAndTimeToDateTime (line 292) | function dateAndTimeToDateTime(date, time, options) {
  function strToDate (line 316) | function strToDate(strToParse, dateFormat) {
  function strToTime (line 360) | function strToTime(strToParse, useSeconds) {
  function initTime (line 378) | function initTime({ useTime, useSeconds }) {
  function checkSupportedDateFormat (line 392) | function checkSupportedDateFormat(dateFormat) {
  function extractPartsFromDateTime (line 417) | function extractPartsFromDateTime(datetime, options) {
  function extractPartsFromDateAndTime (line 456) | function extractPartsFromDateAndTime(date, time, options) {
  function extractDateOrTimeHybridMode (line 490) | function extractDateOrTimeHybridMode(textInput, options) {
  function extractPartsFromTextInput (line 524) | function extractPartsFromTextInput(textInput, options) {
  function extractParts (line 609) | function extractParts(value, options) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/DateTime/error-messages.js
  function getErrorMessage (line 8) | function getErrorMessage(key) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/InputDateTimePicker/InputDateTimePicker.component.jsx
  constant PROPS_TO_OMIT_FOR_INPUT (line 17) | const PROPS_TO_OMIT_FOR_INPUT = [
  function onMouseDown (line 32) | function onMouseDown(event) {
  function InputDateTimePicker (line 36) | function InputDateTimePicker(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/InputDateTimePicker/InputDateTimePicker.component.test.jsx
  function getPopup (line 7) | function getPopup() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/generator.js
  function buildDateFnsLocale (line 12) | function buildDateFnsLocale() {
  function buildDayNames (line 21) | function buildDayNames(firstDayOfweek = 1, t) {
  function buildWeeks (line 36) | function buildWeeks(year, monthIndex, firstDayOfWeek = 1) {
  function buildMonths (line 50) | function buildMonths(chunkSize, t) {
  function buildYears (line 65) | function buildYears(middle, window = 3) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/pickers/DatePicker/DatePicker.component.jsx
  class DatePicker (line 24) | class DatePicker extends PureComponent {
    method constructor (line 25) | constructor(props) {
    method isSelectedDate (line 34) | isSelectedDate(date) {
    method isDisabledDate (line 38) | isDisabledDate(date) {
    method isCurrentMonth (line 46) | isCurrentMonth(date) {
    method isCurrentYear (line 50) | isCurrentYear(date) {
    method isSelectedInCurrentCalendar (line 54) | isSelectedInCurrentCalendar() {
    method selectDate (line 62) | selectDate(event, date, year, monthIndex) {
    method render (line 73) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/pickers/DatePicker/DatePicker.test.jsx
  function mockIsTodayWith (line 12) | function mockIsTodayWith(newToday) {
  function getDisabledChecker (line 16) | function getDisabledChecker(disabledDates) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/pickers/DateTimePicker/DateTimePicker.component.jsx
  class DateTimePicker (line 18) | class DateTimePicker extends Component {
    method constructor (line 19) | constructor(props) {
    method componentDidMount (line 51) | componentDidMount() {
    method componentDidUpdate (line 58) | componentDidUpdate(prevProps) {
    method componentWillUnmount (line 84) | componentWillUnmount() {
    method onSelectDate (line 91) | onSelectDate(event, selectedDate) {
    method onSelectTime (line 98) | onSelectTime(event, selectedTime, field) {
    method onSelectCalendarMonthYear (line 105) | onSelectCalendarMonthYear(newCalendar, callback) {
    method onSelectCalendarMonth (line 117) | onSelectCalendarMonth(event, monthIndex) {
    method onSelectCalendarYear (line 121) | onSelectCalendarYear(event, year) {
    method onClickToday (line 125) | onClickToday(event) {
    method setAllowFocus (line 135) | setAllowFocus(value) {
    method setView (line 139) | setView(isDateTimeView) {
    method submit (line 145) | submit(event, field) {
    method render (line 153) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/pickers/MonthPicker/MonthPicker.component.jsx
  constant ROW_SIZE (line 10) | const ROW_SIZE = 3;
  class MonthPicker (line 12) | class MonthPicker extends PureComponent {
    method constructor (line 13) | constructor(props) {
    method render (line 18) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/pickers/TimePicker/TimePicker.component.jsx
  class TimePicker (line 12) | class TimePicker extends PureComponent {
    method constructor (line 31) | constructor(props) {
    method onChange (line 40) | onChange(event, field) {
    method render (line 53) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/pickers/YearPicker/YearPicker.component.jsx
  constant YEAR_WINDOW_SIZE (line 11) | const YEAR_WINDOW_SIZE = 7;
  constant YEAR_WINDOW_OVERFLOW_SIZE (line 12) | const YEAR_WINDOW_OVERFLOW_SIZE = 3;
  class YearPicker (line 14) | class YearPicker extends Component {
    method constructor (line 25) | constructor(props) {
    method componentDidUpdate (line 36) | componentDidUpdate(prevProps) {
    method onWheel (line 48) | onWheel(event) {
    method getMiddleYear (line 61) | getMiddleYear() {
    method scroll (line 66) | scroll(pace, callback) {
    method render (line 75) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/views/DateTimeView/DateTimeView.component.jsx
  function euclideanModulo (line 21) | function euclideanModulo(dividend, divisor) {
  class DateTimeView (line 26) | class DateTimeView extends PureComponent {
    method constructor (line 52) | constructor(props) {
    method getTimePicker (line 59) | getTimePicker() {
    method incrementMonthIndex (line 73) | incrementMonthIndex(monthIncrement, callback) {
    method render (line 88) | render() {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/views/HeaderTitle/HeaderTitle.component.jsx
  function HeaderTitle (line 13) | function HeaderTitle(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/views/MonthYearView/MonthYearView.component.jsx
  function MonthYearView (line 8) | function MonthYearView(props) {

FILE: packages/components/src/DateTimePickers/LegacyDateTimePickers/views/ViewLayout/ViewLayout.component.jsx
  function ViewLayout (line 5) | function ViewLayout(props) {

FILE: packages/components/src/DateTimePickers/Time/Input/Input.component.jsx
  function Input (line 11) | function Input(props) {

FILE: packages/components/src/DateTimePickers/Time/Manager/Manager.component.jsx
  function TimeContextualManager (line 7) | function TimeContextualManager(props) {

FILE: packages/components/src/DateTimePickers/Time/Manager/Manager.component.test.jsx
  constant DEFAULT_ID (line 8) | const DEFAULT_ID = 'DEFAULT_ID';
  function TimeConsumerDiv (line 10) | function TimeConsumerDiv(props) {
  function TimeConsumer (line 24) | function TimeConsumer(props) {

FILE: packages/components/src/DateTimePickers/Time/Picker/Picker.component.jsx
  function Picker (line 7) | function Picker(props) {

FILE: packages/components/src/DateTimePickers/Time/time-extraction.js
  function TimePickerException (line 6) | function TimePickerException(code, message) {
  function pad (line 11) | function pad(num, size) {
  function checkHours (line 22) | function checkHours(hours) {
  function checkMinutes (line 35) | function checkMinutes(minutes) {
  function checkSeconds (line 49) | function checkSeconds(seconds) {
  function checkTime (line 62) | function checkTime(time) {
  function strToTime (line 89) | function strToTime(strToParse, useSeconds) {
  function timeToStr (line 108) | function timeToStr(time, useSeconds) {
  function getTimeFormat (line 119) | function getTimeFormat(useSeconds) {
  function extractTime (line 123) | function extractTime(selectedTime, useSeconds) {

FILE: packages/components/src/DateTimePickers/TimeZone/TimeZone.component.jsx
  function TimeZone (line 7) | function TimeZone(props) {

FILE: packages/components/src/DateTimePickers/generator.js
  function buildDateFnsLocale (line 12) | function buildDateFnsLocale() {
  function buildDayNames (line 21) | function buildDayNames(firstDayOfweek = 1, t) {
  function buildMonths (line 37) | function buildMonths(chunkSize, t) {
  function buildYears (line 52) | function buildYears(middle, window = 3) {

FILE: packages/components/src/DateTimePickers/gesture/timePickerGesture.js
  function focusOnTime (line 6) | function focusOnTime(containerRef) {

FILE: packages/components/src/DateTimePickers/hooks/useInputPickerHandlers.js
  function useInputPickerHandlers (line 3) | function useInputPickerHandlers({

FILE: packages/components/src/DateTimePickers/pickers/CalendarPicker/CalendarPicker.component.jsx
  class CalendarPicker (line 18) | class CalendarPicker extends Component {
    method constructor (line 19) | constructor(props) {
    method componentDidMount (line 48) | componentDidMount() {
    method componentDidUpdate (line 55) | componentDidUpdate(prevProps) {
    method componentWillUnmount (line 78) | componentWillUnmount() {
    method onSelectDate (line 85) | onSelectDate(event, selectedDate) {
    method onSelectCalendarMonthYear (line 92) | onSelectCalendarMonthYear(newCalendar, callback) {
    method onSelectCalendarMonth (line 104) | onSelectCalendarMonth(event, monthIndex) {
    method onSelectCalendarYear (line 109) | onSelectCalendarYear(event, year) {
    method onClickToday (line 113) | onClickToday(event) {
    method setAllowFocus (line 121) | setAllowFocus(value) {
    method setView (line 125) | setView(isDateView) {
    method submit (line 131) | submit(event, field) {
    method render (line 138) | render() {

FILE: packages/components/src/DateTimePickers/pickers/DatePicker/DatePicker.component.jsx
  class DatePicker (line 29) | class DatePicker extends PureComponent {
    method constructor (line 30) | constructor(props) {
    method isSelectedDate (line 39) | isSelectedDate(date) {
    method isDisabledDate (line 43) | isDisabledDate(date) {
    method isCurrentMonth (line 51) | isCurrentMonth(date) {
    method isCurrentYear (line 55) | isCurrentYear(date) {
    method isSelectedInCurrentCalendar (line 59) | isSelectedInCurrentCalendar() {
    method isDateInCurrentCalendar (line 68) | isDateInCurrentCalendar(date) {
    method isDateWithinRange (line 75) | isDateWithinRange(date) {
    method isStartDate (line 85) | isStartDate(date) {
    method isEndDate (line 95) | isEndDate(date) {
    method selectDate (line 105) | selectDate(event, date, year, monthIndex) {
    method render (line 116) | render() {

FILE: packages/components/src/DateTimePickers/pickers/DatePicker/DatePicker.test.jsx
  function mockIsTodayWith (line 12) | function mockIsTodayWith(newToday) {
  function getDisabledChecker (line 16) | function getDisabledChecker(disabledDates) {

FILE: packages/components/src/DateTimePickers/pickers/MonthPicker/MonthPicker.component.jsx
  constant ROW_SIZE (line 10) | const ROW_SIZE = 3;
  class MonthPicker (line 12) | class MonthPicker extends PureComponent {
    method constructor (line 13) | constructor(props) {
    method render (line 18) | render() {

FILE: packages/components/src/DateTimePickers/pickers/TimePicker/TimePicker.component.jsx
  function isBefore (line 10) | function isBefore(a, b) {
  function addInterval (line 21) | function addInterval({ hours, minutes, ...seconds }, interval = 60) {
  function getOptions (line 35) | function getOptions(interval = 60, useSeconds) {
  class TimePicker (line 48) | class TimePicker extends Component {
    method constructor (line 62) | constructor(props) {
    method componentDidMount (line 75) | componentDidMount() {
    method onSelect (line 81) | onSelect(event, option, index) {
    method scrollItemIntoView (line 94) | scrollItemIntoView(textInput) {
    method updateHighlightIndex (line 109) | updateHighlightIndex(index) {
    method render (line 120) | render() {

FILE: packages/components/src/DateTimePickers/pickers/YearPicker/YearPicker.component.jsx
  constant YEAR_WINDOW_SIZE (line 11) | const YEAR_WINDOW_SIZE = 7;
  constant YEAR_WINDOW_OVERFLOW_SIZE (line 12) | const YEAR_WINDOW_OVERFLOW_SIZE = 3;
  class YearPicker (line 14) | class YearPicker extends Component {
    method constructor (line 25) | constructor(props) {
    method componentDidUpdate (line 36) | componentDidUpdate(prevProps) {
    method onWheel (line 48) | onWheel(event) {
    method getMiddleYear (line 61) | getMiddleYear() {
    method scroll (line 66) | scroll(pace, callback) {
    method render (line 75) | render() {

FILE: packages/components/src/DateTimePickers/shared/InputSizer/InputSizer.component.tsx
  constant EXTRA_SPACE (line 3) | const EXTRA_SPACE = 5;
  type InputSizerProps (line 12) | type InputSizerProps = {
  function InputSizer (line 19) | function InputSizer({ placeholder, inputText, children, minWidth }: Inpu...

FILE: packages/components/src/DateTimePickers/shared/constants.js
  constant DATE_INPUT_ERRORS (line 1) | const DATE_INPUT_ERRORS = [
  constant TIME_INPUT_ERRORS (line 8) | const TIME_INPUT_ERRORS = [

FILE: packages/components/src/DateTimePickers/shared/error-messages.js
  function getErrorMessage (line 3) | function getErrorMessage(key) {

FILE: packages/components/src/DateTimePickers/views/DateView/DateView.component.jsx
  function euclideanModulo (line 20) | function euclideanModulo(dividend, divisor) {
  class DateView (line 25) | class DateView extends PureComponent {
    method constructor (line 47) | constructor(props) {
    method incrementMonthIndex (line 54) | incrementMonthIndex(monthIncrement, callback) {
    method render (line 69) | render() {

FILE: packages/components/src/DateTimePickers/views/HeaderTitle/HeaderTitle.component.jsx
  function HeaderTitle (line 13) | function HeaderTitle(props) {

FILE: packages/components/src/DateTimePickers/views/MonthYearView/MonthYearView.component.jsx
  function MonthYearView (line 8) | function MonthYearView(props) {

FILE: packages/components/src/DateTimePickers/views/ViewLayout/ViewLayout.component.tsx
  function ViewLayout (line 5) | function ViewLayout(props: ViewLayoutProps) {
  type HeaderProps (line 20) | type HeaderProps = {
  type ViewLayoutProps (line 26) | type ViewLayoutProps = {

FILE: packages/components/src/Dialog/Dialog.component.jsx
  function Dialog (line 16) | function Dialog({

FILE: packages/components/src/Drawer/Drawer.component.jsx
  constant DEFAULT_TRANSITION_DURATION (line 23) | const DEFAULT_TRANSITION_DURATION = 350;
  constant STYLES (line 25) | const STYLES = {
  function DrawerAnimation (line 32) | function DrawerAnimation(props) {
  function DrawerContainer (line 60) | function DrawerContainer({
  function cancelActionComponent (line 96) | function cancelActionComponent(onCancelAction, getComponent) {
  function renderSubtitleTag (line 117) | function renderSubtitleTag(subtitleTagLabel, subtitleTagTooltip, subtitl...
  function SubtitleComponent (line 128) | function SubtitleComponent({ subtitle, ...rest }) {
  function subtitleComponent (line 156) | function subtitleComponent(subtitle) {
  function DrawerTitle (line 161) | function DrawerTitle({
  function DrawerContent (line 256) | function DrawerContent({ children, className, ...rest }) {
  function DrawerFooter (line 269) | function DrawerFooter({ children }) {
  function combinedFooterActions (line 277) | function combinedFooterActions(onCancelAction, footerActions, activeTabI...
  function Drawer (line 294) | function Drawer({

FILE: packages/components/src/Drawer/Drawer.stories.jsx
  function scrollableContent (line 168) | function scrollableContent() {
  function CustomDrawer (line 447) | function CustomDrawer() {
  function CustomDrawer (line 512) | function CustomDrawer() {
  function remove (line 578) | function remove(id) {
  function remove (line 641) | function remove(id) {

FILE: packages/components/src/Drawer/Drawer.test.jsx
  function getComponent (line 192) | function getComponent(name) {
  function getComponent (line 224) | function getComponent(name) {
  function getComponent (line 373) | function getComponent(name) {

FILE: packages/components/src/EditableText/EditableText.component.jsx
  function EditableTextComponent (line 13) | function EditableTextComponent({ editMode, loading, inProgress, ...rest ...

FILE: packages/components/src/EditableText/InlineForm.component.jsx
  class InlineForm (line 14) | class InlineForm extends Component {
    method constructor (line 32) | constructor(props) {
    method onChange (line 44) | onChange(event) {
    method onCancel (line 51) | onCancel(event) {
    method onKeyDown (line 58) | onKeyDown(event) {
    method onSubmit (line 69) | onSubmit(event) {
    method selectInput (line 76) | selectInput(input) {
    method render (line 84) | render() {

FILE: packages/components/src/EditableText/PlainTextTitle.component.tsx
  type PlainTextTitleProps (line 9) | type PlainTextTitleProps = {
  type DataProps (line 21) | type DataProps = {
  function PlainTextTitle (line 25) | function PlainTextTitle({

FILE: packages/components/src/Emphasis/Emphasis.component.jsx
  function isNotEmpty (line 4) | function isNotEmpty(value) {
  function escapeRegexCharacters (line 8) | function escapeRegexCharacters(str) {
  function emphasiseAll (line 12) | function emphasiseAll(text, value) {
  function Emphasis (line 41) | function Emphasis(props) {

FILE: packages/components/src/Enumeration/Enumeration.component.jsx
  function EnumerationComponent (line 17) | function EnumerationComponent(props) {

FILE: packages/components/src/Enumeration/Enumeration.stories.jsx
  constant ITEM_DEFAULT_HEIGHT (line 69) | const ITEM_DEFAULT_HEIGHT = 33;
  function Default (line 388) | function Default() {

FILE: packages/components/src/Enumeration/Header/Header.component.jsx
  function headerClasses (line 7) | function headerClasses() {
  function getAction (line 14) | function getAction(action, index) {
  function Header (line 46) | function Header({ headerDefault, required, label }) {

FILE: packages/components/src/Enumeration/Header/HeaderEnumeration.component.jsx
  function HeaderEnumeration (line 13) | function HeaderEnumeration({

FILE: packages/components/src/Enumeration/Header/HeaderInput.component.jsx
  function headerClasses (line 7) | function headerClasses(headerError) {
  function headerErrorClasses (line 13) | function headerErrorClasses() {
  function getAction (line 17) | function getAction(action, index, getInternalInputRef) {
  function HeaderInput (line 41) | function HeaderInput({

FILE: packages/components/src/Enumeration/Header/HeaderSelected.component.jsx
  function headerClasses (line 6) | function headerClasses() {
  function getAction (line 13) | function getAction(action, index) {
  function HeaderSelected (line 34) | function HeaderSelected({ headerSelected, nbItemsSelected }) {

FILE: packages/components/src/Enumeration/Items/EmptyListPlaceholder.component.jsx
  function EmptyListPlaceholder (line 6) | function EmptyListPlaceholder({ displayMode, t }) {

FILE: packages/components/src/Enumeration/Items/Item/Item.component.jsx
  function itemClasses (line 15) | function itemClasses(isSelected) {
  function itemLabelClasses (line 24) | function itemLabelClasses(className) {
  function itemDefaultActionsClasses (line 32) | function itemDefaultActionsClasses() {
  function Item (line 40) | function Item({ id, item, searchCriteria, showCheckboxes, style, t }) {

FILE: packages/components/src/Enumeration/Items/Item/ItemEdit.component.jsx
  function itemClasses (line 14) | function itemClasses(error) {
  function itemErrorClasses (line 21) | function itemErrorClasses() {
  function itemLabelClasses (line 25) | function itemLabelClasses() {
  function itemEditActionsClasses (line 29) | function itemEditActionsClasses() {
  class ItemEdit (line 33) | class ItemEdit extends Component {
    method constructor (line 34) | constructor(props) {
    method componentDidMount (line 43) | componentDidMount() {
    method onKeyDown (line 47) | onKeyDown(event) {
    method onActionClick (line 61) | onActionClick(event, action) {
    method getAction (line 71) | getAction(action, index) {
    method submit (line 87) | submit(event) {
    method itemChange (line 95) | itemChange(event) {
    method cancel (line 103) | cancel(event) {
    method render (line 111) | render() {

FILE: packages/components/src/Enumeration/Items/Item/utils.js
  function allIndexOf (line 6) | function allIndexOf(str, toSearch) {
  function removeDuplicates (line 21) | function removeDuplicates(indexes, search) {

FILE: packages/components/src/Enumeration/Items/Items.component.jsx
  constant DISPLAY_MODE_EDIT (line 12) | const DISPLAY_MODE_EDIT = 'DISPLAY_MODE_EDIT';
  class Items (line 16) | class Items extends PureComponent {
    method constructor (line 17) | constructor(props) {
    method getItem (line 26) | getItem(item, index, style) {
    method getRowHeight (line 89) | getRowHeight(args) {
    method scrollEnumeration (line 94) | scrollEnumeration(event) {
    method rowRenderer (line 112) | rowRenderer({
    method render (line 119) | render() {

FILE: packages/components/src/Enumeration/Items/ItemsEnumeration.component.jsx
  function ItemsEnumeration (line 6) | function ItemsEnumeration(props) {

FILE: packages/components/src/Enumeration/displayModes.js
  constant DISPLAY_MODE_DEFAULT (line 1) | const DISPLAY_MODE_DEFAULT = 'DISPLAY_MODE_DEFAULT';
  constant DISPLAY_MODE_ADD (line 2) | const DISPLAY_MODE_ADD = 'DISPLAY_MODE_ADD';
  constant DISPLAY_MODE_SEARCH (line 3) | const DISPLAY_MODE_SEARCH = 'DISPLAY_MODE_SEARCH';
  constant DISPLAY_MODE_EDIT (line 4) | const DISPLAY_MODE_EDIT = 'DISPLAY_MODE_EDIT';
  constant DISPLAY_MODE_SELECTED (line 5) | const DISPLAY_MODE_SELECTED = 'DISPLAY_MODE_SELECTED';

FILE: packages/components/src/FilterBar/FilterBar.component.jsx
  function forceBlur (line 16) | function forceBlur(event) {
  function onKeyDown (line 20) | function onKeyDown(event, escAction, enterAction) {
  function FilterInput (line 38) | function FilterInput(props) {
  function FilterBar (line 114) | function FilterBar(props) {

FILE: packages/components/src/FocusManager/FocusManager.component.jsx
  class FocusManager (line 14) | class FocusManager extends Component {
    method render (line 35) | render() {

FILE: packages/components/src/FormatValue/FormatValue.component.jsx
  constant REG_EXP_REPLACED_WHITE_SPACE_CHARACTERS (line 12) | const REG_EXP_REPLACED_WHITE_SPACE_CHARACTERS = /(\t| |\n)/g;
  constant REG_EXP_CAPTUR_LINE_FEEDING (line 13) | const REG_EXP_CAPTUR_LINE_FEEDING = /(\n)/g;
  constant REG_EXP_LINE_FEEDING (line 14) | const REG_EXP_LINE_FEEDING = /\n/;
  constant REG_EXP_WHITE_SPACE_CHARACTERS (line 15) | const REG_EXP_WHITE_SPACE_CHARACTERS = /^\s+/;
  function replaceCharacterByIcon (line 23) | function replaceCharacterByIcon(value, index, t) {
  function isEmptyCharacter (line 92) | function isEmptyCharacter(value) {
  constant SPLIT_REGEX (line 96) | const SPLIT_REGEX = [
  function FormatValueComponent (line 102) | function FormatValueComponent({ value, className }) {

FILE: packages/components/src/GridLayout/Dashboard.stories.jsx
  function TdsTileContent (line 14) | function TdsTileContent({ id }) {
  function ViewSelector (line 59) | function ViewSelector() {
  function ChartTile (line 90) | function ChartTile({ tile, id }) {
  function TileWithAction (line 108) | function TileWithAction({ tile }) {
  function GridContainer (line 169) | function GridContainer({ isLoading = false, skeletonConfiguration, isRes...

FILE: packages/components/src/GridLayout/Grid.component.jsx
  constant MARGIN (line 15) | const MARGIN = 20;
  constant DEFAULT_COLUMNS (line 17) | const DEFAULT_COLUMNS = {
  constant DEFAULT_BREAKPOINTS (line 24) | const DEFAULT_BREAKPOINTS = {
  function Grid (line 33) | function Grid({

FILE: packages/components/src/GridLayout/Tile/Body/TileBody.component.tsx
  type BodyProps (line 5) | type BodyProps = {
  function Body (line 9) | function Body({ children }: BodyProps) {

FILE: packages/components/src/GridLayout/Tile/Footer/TileFooter.component.tsx
  type FooterProps (line 5) | type FooterProps = {
  function Footer (line 9) | function Footer({ children }: FooterProps) {

FILE: packages/components/src/GridLayout/Tile/Header/TileHeader.component.tsx
  type HeaderProps (line 5) | type HeaderProps = {
  function Header (line 9) | function Header(props: HeaderProps) {

FILE: packages/components/src/GridLayout/Tile/Skeleton/SkeletonTile.component.tsx
  function SkeletonTile (line 5) | function SkeletonTile() {
  constant SKELETON_TILE_CONF (line 15) | const SKELETON_TILE_CONF = [

FILE: packages/components/src/GridLayout/Tile/Tile.component.test.tsx
  type TestComponentProps (line 8) | type TestComponentProps = {
  function TestComponent (line 12) | function TestComponent({ context }: TestComponentProps) {
  function Consumer (line 21) | function Consumer() {

FILE: packages/components/src/GridLayout/Tile/Tile.component.tsx
  function ignoreDragOnInput (line 12) | function ignoreDragOnInput(e: MouseEvent<HTMLDivElement>) {
  type TileProps (line 18) | type TileProps = {
  function Tile (line 23) | function Tile(props: TileProps) {

FILE: packages/components/src/GridLayout/Tile/context.ts
  type TileContextType (line 3) | type TileContextType = {
  function useTileContext (line 14) | function useTileContext() {

FILE: packages/components/src/GuidedTour/GuidedTour.component.jsx
  function getTooltipContent (line 12) | function getTooltipContent({ header, body }) {
  function formatSteps (line 24) | function formatSteps(steps) {
  function GuidedTour (line 33) | function GuidedTour({

FILE: packages/components/src/GuidedTour/GuidedTour.stories.jsx
  class ImportDemo (line 9) | class ImportDemo extends Component {
    method render (line 29) | render() {
  class GuidedTourContainer (line 49) | class GuidedTourContainer extends Component {
    method render (line 68) | render() {
  function getSteps (line 92) | function getSteps({ hideControls, showControls, t }) {

FILE: packages/components/src/HeaderBar/HeaderBar.component.jsx
  function HeaderBar (line 25) | function HeaderBar(props) {

FILE: packages/components/src/HeaderBar/HeaderBar.stories.jsx
  function AppSwitcherComponent (line 71) | function AppSwitcherComponent() {
  function IntercomComponent (line 75) | function IntercomComponent() {

FILE: packages/components/src/HeaderBar/HeaderBar.test.jsx
  function AppSwitcher (line 56) | function AppSwitcher() {
  function Intercom (line 71) | function Intercom() {

FILE: packages/components/src/HeaderBar/primitives/AppNotification.component.jsx
  function AppNotification (line 11) | function AppNotification({ getComponent, hasUnread, t, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/CallToAction.component.jsx
  function CallToAction (line 10) | function CallToAction({ getComponent, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/Environment.component.jsx
  function Environment (line 11) | function Environment({ getComponent, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/GenericAction.component.jsx
  function GenericAction (line 11) | function GenericAction({ getComponent, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/Help.component.jsx
  function Help (line 11) | function Help({ getComponent, t, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/Information.component.jsx
  function Information (line 12) | function Information({ getComponent, t, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/Intercom.component.jsx
  function Intercom (line 11) | function Intercom({ id, config, tooltipPlacement }) {

FILE: packages/components/src/HeaderBar/primitives/Logo.component.jsx
  function Logo (line 11) | function Logo({ isFull, getComponent, t, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/Search.component.jsx
  function Search (line 11) | function Search({ getComponent, icon, ...props }) {

FILE: packages/components/src/HeaderBar/primitives/User.component.jsx
  function User (line 11) | function User({ name, firstName, lastName, getComponent, t, ...rest }) {

FILE: packages/components/src/HttpError/HttpError.component.jsx
  function getScopedClassName (line 10) | function getScopedClassName(scopedClassName = className) {
  function HttpError (line 14) | function HttpError(props) {

FILE: packages/components/src/Inject/Inject.component.tsx
  type NotFoundComponentProps (line 6) | type NotFoundComponentProps = {
  function NotFoundComponent (line 13) | function NotFoundComponent({ error }: NotFoundComponentProps) {
  type InjectedComponentType (line 17) | type InjectedComponentType = string | ComponentClass | FunctionComponent;
  type GetComponentType (line 18) | type GetComponentType = (component: InjectedComponentType) => InjectedCo...
  type InjectConfig (line 20) | type InjectConfig = {
  type InjectProps (line 24) | type InjectProps = {
  function Inject (line 33) | function Inject({ getComponent, component, ...props }: InjectProps) {

FILE: packages/components/src/JSONSchemaRenderer/JSONSchemaRenderer.component.jsx
  constant CLASS_NAME (line 8) | const CLASS_NAME = 'json-schema-renderer';
  function UnknownTypeException (line 29) | function UnknownTypeException(type) {
  function InvalidSchemaException (line 39) | function InvalidSchemaException() {
  function NullRenderer (line 50) | function NullRenderer() {
  function TextRenderer (line 57) | function TextRenderer({ propertyKey, title, properties }) {
  function PasswordRenderer (line 68) | function PasswordRenderer({ propertyKey, title }) {
  function BooleanRenderer (line 82) | function BooleanRenderer({ propertyKey, title, properties }) {
  function ArrayRenderer (line 96) | function ArrayRenderer({ propertyKey, title, properties }) {
  function isHidden (line 118) | function isHidden(uiSchema, element) {
  function isPassword (line 122) | function isPassword(uiSchema, element) {
  function typeResolver (line 134) | function typeResolver(schema, uiSchema) {
  function orderProperties (line 180) | function orderProperties(order, properties) {
  function ObjectRenderer (line 200) | function ObjectRenderer({ propertyKey, title, uiSchema, schema, properti...
  function JSONSchemaRenderer (line 231) | function JSONSchemaRenderer({ schema, className, ...props }) {

FILE: packages/components/src/Layout/Layout.component.jsx
  constant DISPLAY_MODES (line 12) | const DISPLAY_MODES = {
  constant TALEND_T7_THEME_APPS (line 16) | const TALEND_T7_THEME_APPS = ['portal', 'tdc', 'tdp', 'tds', 'tfd', 'tmc...
  constant TALEND_T7_THEME_CLASSNAME (line 17) | const TALEND_T7_THEME_CLASSNAME = 't7';
  function Layout (line 35) | function Layout({

FILE: packages/components/src/Layout/OneColumn/OneColumn.component.jsx
  function OneColumn (line 14) | function OneColumn({ drawers, children, tabs, ...props }) {

FILE: packages/components/src/Layout/SkipLinks/SkipLinks.component.tsx
  type SkipToProps (line 10) | type SkipToProps = {
  function SkipTo (line 15) | function SkipTo({ href, label }: SkipToProps) {
  type SkipLinksProps (line 25) | type SkipLinksProps = {
  function SkipLinks (line 36) | function SkipLinks({ mainId, navigationId, t }: SkipLinksProps) {

FILE: packages/components/src/Layout/TwoColumns/TwoColumns.component.jsx
  function TwoColumns (line 15) | function TwoColumns({ one, drawers, children, tabs, getComponent, ...pro...

FILE: packages/components/src/List/List.component.jsx
  function ListToolbar (line 13) | function ListToolbar({
  function List (line 125) | function List({

FILE: packages/components/src/List/List.stories.jsx
  function MyCustomRow (line 8) | function MyCustomRow(props) {
  function ListColumnChooser (line 21) | function ListColumnChooser({ list, ...rest }) {
  function CellWithHello (line 38) | function CellWithHello({ cellData }) {

FILE: packages/components/src/List/ListComposition.stories.jsx
  function CustomList (line 17) | function CustomList(props) {

FILE: packages/components/src/List/ListComposition/ColumnChooser/ColumnChooser.component.jsx
  function ColumnChooser (line 5) | function ColumnChooser(props) {

FILE: packages/components/src/List/ListComposition/DisplayMode/ListDisplayMode.component.jsx
  function ListDisplayMode (line 13) | function ListDisplayMode({ children, displayModesOptions, id, onChange, ...

FILE: packages/components/src/List/ListComposition/ItemsNumber/ItemsNumber.component.jsx
  function ItemsNumber (line 4) | function ItemsNumber(props) {

FILE: packages/components/src/List/ListComposition/LazyLoadingList/LazyLoadingList.component.jsx
  constant DEFAULT_THRESHOLD (line 8) | const DEFAULT_THRESHOLD = 5;
  constant DEFAULT_MIN_BATCH_SIZE (line 9) | const DEFAULT_MIN_BATCH_SIZE = 20;
  constant DEFAULT_DEBOUNCE_DELAY (line 10) | const DEFAULT_DEBOUNCE_DELAY = 0;
  function LazyLoadingList (line 12) | function LazyLoadingList(props) {

FILE: packages/components/src/List/ListComposition/Manager/ListManager.component.jsx
  function Manager (line 13) | function Manager({

FILE: packages/components/src/List/ListComposition/Manager/ListManager.component.test.jsx
  function TestConsumer (line 10) | function TestConsumer(props) {
  function ContextTestConsumer (line 27) | function ContextTestConsumer(props) {

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionActions.hook.js
  function useCollectionActions (line 3) | function useCollectionActions(

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionActions.hook.test.jsx
  function ActionComponent (line 5) | function ActionComponent({ collection, actions, persistentActions }) {

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionFilter.hook.js
  function normalizeInput (line 5) | function normalizeInput(text) {
  function defaultFilterFunction (line 22) | function defaultFilterFunction(value, textFilter) {
  function filter (line 26) | function filter(collection, textFilter, filterFunctions, visibleColumns,...

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionFilter.hook.test.jsx
  function FilterComponent (line 6) | function FilterComponent({

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionSelection.hook.js
  function useCollectionSelection (line 3) | function useCollectionSelection(

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionSelection.hook.test.jsx
  function SelectionComponent (line 7) | function SelectionComponent({ collection, initialSelectedIds, idKey, isS...

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionSort.hook.js
  function getDefaultSortFunction (line 3) | function getDefaultSortFunction({ sortBy, isDescending }) {
  function sort (line 16) | function sort(collection, sortParams, sortFunctions) {
  function useCollectionSort (line 33) | function useCollectionSort(collection = [], initialSortParams = {}, sort...

FILE: packages/components/src/List/ListComposition/Manager/hooks/useCollectionSort.hook.test.jsx
  function SortComponent (line 8) | function SortComponent({ collection, initialSortParams, sortFunctions, ....

FILE: packages/components/src/List/ListComposition/Manager/hooks/useColumnsVisibility.hook.js
  function useColumnsVisibility (line 11) | function useColumnsVisibility(columns = [], initialVisibleColumns = [], ...

FILE: packages/components/src/List/ListComposition/Manager/hooks/useColumnsVisibility.hook.test.jsx
  constant STORAGE_KEY (line 5) | const STORAGE_KEY = 'storage-key';

FILE: packages/components/src/List/ListComposition/SortBy/SortBy.component.jsx
  function SortBy (line 41) | function SortBy({ id, options, onChange, value }) {

FILE: packages/components/src/List/ListComposition/TextFilter/TextFilter.component.jsx
  function TextFilter (line 6) | function TextFilter(props) {

FILE: packages/components/src/List/ListComposition/Toolbar/ListToolbar.component.jsx
  function ListToolbar (line 24) | function ListToolbar(props) {

FILE: packages/components/src/List/ListComposition/VList/VList.component.jsx
  function VList (line 20) | function VList({ children, columnChooser, ...rest }) {

FILE: packages/components/src/List/ListComposition/constants.js
  constant DISPLAY_MODE (line 1) | const DISPLAY_MODE = {
  constant SORT (line 6) | const SORT = {

FILE: packages/components/src/List/ListComposition/context.js
  function useListContext (line 6) | function useListContext() {

FILE: packages/components/src/List/ListComposition/context.test.jsx
  function TestComponent (line 4) | function TestComponent() {

FILE: packages/components/src/List/ListToVirtualizedList/ListToVirtualizedList.component.jsx
  function adaptOnSort (line 4) | function adaptOnSort(onChange) {
  function HiddenHeader (line 16) | function HiddenHeader(props) {
  function compareOrder (line 20) | function compareOrder(a, b) {
  function ListToVirtualizedList (line 33) | function ListToVirtualizedList(props) {

FILE: packages/components/src/List/Toolbar/ColumnChooserButton/ColumnChooser/ColumnChooser.component.jsx
  function ColumnChooser (line 24) | function ColumnChooser({

FILE: packages/components/src/List/Toolbar/ColumnChooserButton/ColumnChooserButton.component.jsx
  function ColumnChooserButton (line 9) | function ColumnChooserButton({

FILE: packages/components/src/List/Toolbar/ColumnChooserButton/service/columnChooser.utils.js
  function mergeWithColumnChooserCollection (line 19) | function mergeWithColumnChooserCollection(originalCollection, columnChoo...
  function compareOrder (line 26) | function compareOrder(a, b) {

FILE: packages/components/src/List/Toolbar/DisplayModeToggle/DisplayModeToggle.component.jsx
  function getLabel (line 13) | function getLabel(selected, t) {
  function DisplayModeToggle (line 43) | function DisplayModeToggle({ id, displayModes, onChange, mode, t }) {

FILE: packages/components/src/List/Toolbar/ItemsNumber/ItemsNumber.component.jsx
  function ItemsNumber (line 4) | function ItemsNumber({ id, totalItems, selected, label, labelSelected, t...

FILE: packages/components/src/List/Toolbar/Label/Label.component.jsx
  function Label (line 4) | function Label({ htmlFor, text }) {

FILE: packages/components/src/List/Toolbar/Pagination/Pagination.component.jsx
  constant FIRST (line 10) | const FIRST = 'first';
  constant PREV (line 11) | const PREV = 'prev';
  constant NEXT (line 12) | const NEXT = 'next';
  constant LAST (line 13) | const LAST = 'last';
  function getItemsPerPageTitle (line 15) | function getItemsPerPageTitle(option) {
  function getMenuItem (line 22) | function getMenuItem(option, index) {
  function Pagination (line 30) | function Pagination({ id, startIndex, itemsPerPage, totalResults, onChan...

FILE: packages/components/src/List/Toolbar/SelectAll/SelectAll.component.jsx
  function SelectAll (line 8) | function SelectAll({ id, items, isSelected, onToggleAll }) {

FILE: packages/components/src/List/Toolbar/SelectSortBy/SelectSortBy.component.jsx
  function SortByItem (line 12) | function SortByItem({ option, id, t, onSelect }) {
  function SelectSortBy (line 38) | function SelectSortBy({ field, id, isDescending, onChange, options, t }) {

FILE: packages/components/src/List/Toolbar/Toolbar.component.jsx
  function adaptActionsIds (line 21) | function adaptActionsIds(actions, parentId) {
  function adaptLeftAndRightActions (line 36) | function adaptLeftAndRightActions(actions, parentId) {
  function Toolbar (line 55) | function Toolbar({

FILE: packages/components/src/ListView/Header/Header.component.jsx
  function headerClasses (line 11) | function headerClasses() {
  function getAction (line 15) | function getAction(action, index) {
  function renderActions (line 37) | function renderActions(headerDefault = []) {
  function Header (line 44) | function Header({ headerDefault, headerLabel, labelProps, nbItemsSelecte...

FILE: packages/components/src/ListView/Header/HeaderInput.component.jsx
  function headerClasses (line 12) | function headerClasses() {
  function getAction (line 16) | function getAction(action, index) {
  function HeaderInput (line 40) | function HeaderInput({ headerInput, onInputChange, inputPlaceholder, onA...

FILE: packages/components/src/ListView/Items/Item/Item.component.jsx
  class Item (line 13) | class Item extends Component {
    method componentDidUpdate (line 14) | componentDidUpdate(prevProps) {
    method render (line 25) | render() {

FILE: packages/components/src/ListView/Items/Items.component.jsx
  function pxToInt (line 24) | function pxToInt(sizeInPixels = '0') {
  constant TOGGLE_ALL_ROW_HEIGHT (line 28) | const TOGGLE_ALL_ROW_HEIGHT = 40;
  constant ROW_LINE_HEIGHT (line 29) | const ROW_LINE_HEIGHT = pxToInt(theme['row-height']);
  constant ROW_VERTICAL_MARGIN (line 30) | const ROW_VERTICAL_MARGIN = pxToInt(theme['row-vertical-margin']);
  constant ROW_HEIGHT (line 31) | const ROW_HEIGHT = ROW_LINE_HEIGHT + ROW_VERTICAL_MARGIN;
  constant ROW_NESTED_INNER_MARGINS (line 32) | const ROW_NESTED_INNER_MARGINS =
  class ItemsComponent (line 35) | class ItemsComponent extends PureComponent {
    method constructor (line 36) | constructor(props) {
    method getItemByIndex (line 51) | getItemByIndex(index) {
    method getRowHeight (line 55) | getRowHeight({ index }) {
    method getRowCount (line 87) | getRowCount() {
    method oldGetRowHeight (line 94) | oldGetRowHeight({ index }) {
    method rowRenderer (line 108) | rowRenderer(props) {
    method renderToggleAllOrItem (line 137) | renderToggleAllOrItem(index, measure) {
    method renderToggleAll (line 150) | renderToggleAll() {
    method renderItem (line 170) | renderItem(item, index, measure) {
    method render (line 203) | render() {

FILE: packages/components/src/ListView/ListView.component.jsx
  constant DISPLAY_MODE_DEFAULT (line 11) | const DISPLAY_MODE_DEFAULT = 'DISPLAY_MODE_DEFAULT';
  constant DISPLAY_MODE_SEARCH (line 12) | const DISPLAY_MODE_SEARCH = 'DISPLAY_MODE_SEARCH';
  function listviewClasses (line 14) | function listviewClasses() {
  function HeaderListView (line 18) | function HeaderListView(props) {
  function ListView (line 56) | function ListView(props) {

FILE: packages/components/src/Loader/Loader.component.jsx
  function Loader (line 8) | function Loader({ id, className, size = CircularProgress.SIZE.default }) {

FILE: packages/components/src/MultiSelect/Dropdown.container.jsx
  function Dropdown (line 6) | function Dropdown(props) {

FILE: packages/components/src/MultiSelect/ItemOption.component.jsx
  class ItemOptionRow (line 9) | class ItemOptionRow extends Component {
    method getDerivedStateFromProps (line 10) | static getDerivedStateFromProps(props) {
    method constructor (line 14) | constructor(props) {
    method shouldComponentUpdate (line 19) | shouldComponentUpdate(nextProps, nextState) {
    method render (line 29) | render() {
  function ItemOption (line 67) | function ItemOption(props) {

FILE: packages/components/src/MultiSelect/ItemView.component.jsx
  class ItemViewRow (line 6) | class ItemViewRow extends Component {
    method getDerivedStateFromProps (line 7) | static getDerivedStateFromProps(props) {
    method constructor (line 11) | constructor(props) {
    method shouldComponentUpdate (line 16) | shouldComponentUpdate(nextProps, nextState) {
    method render (line 26) | render() {
  function ItemView (line 51) | function ItemView(props) {

FILE: packages/components/src/MultiSelect/MultiSelect.container.jsx
  function initSelectedMap (line 20) | function initSelectedMap(selected) {
  function isIn (line 27) | function isIn(element, container) {
  class MultiSelect (line 37) | class MultiSelect extends Component {
    method constructor (line 68) | constructor(props) {
    method componentDidMount (line 80) | componentDidMount() {
    method componentWillUnmount (line 84) | componentWillUnmount() {
    method closeOnOutsideClick (line 88) | closeOnOutsideClick(event) {
    method onInputFocus (line 94) | onInputFocus(event) {
    method onInputKeyDown (line 101) | onInputKeyDown(event) {
    method onClearAll (line 108) | onClearAll(event) {
    method onSearchChange (line 112) | onSearchChange(event) {
    method onRowClick (line 116) | onRowClick(event, action) {
    method getSelectedMap (line 129) | getSelectedMap() {
    method getSelectedItems (line 138) | getSelectedItems() {
    method getFilteredOptions (line 145) | getFilteredOptions() {
    method getListItems (line 177) | getListItems() {
    method createNew (line 204) | createNew(event) {
    method selectAll (line 215) | selectAll(event) {
    method selectOne (line 232) | selectOne(event, id) {
    method updateSelection (line 242) | updateSelection(event, selected) {
    method render (line 252) | render() {

FILE: packages/components/src/MultiSelect/MultiSelect.stories.jsx
  class Photos (line 5) | class Photos extends Component {
    method constructor (line 6) | constructor(props) {
    method componentDidMount (line 14) | componentDidMount() {
    method render (line 25) | render() {

FILE: packages/components/src/MultiSelect/constants.js
  constant SELECT_ALL_VALUE (line 1) | const SELECT_ALL_VALUE = 'select-all';
  constant CREATE_NEW_VALUE (line 2) | const CREATE_NEW_VALUE = 'create-new';

FILE: packages/components/src/Notification/Notification.component.jsx
  constant TYPES (line 13) | const TYPES = {
  function CloseButtonComponent (line 19) | function CloseButtonComponent(props) {
  function MessageAction (line 47) | function MessageAction({ action }) {
  function Message (line 63) | function Message({ notification }) {
  function TimerBar (line 82) | function TimerBar({ type, autoLeaveError }) {
  function Notification (line 94) | function Notification({ notification, leaveFn, ...props }) {
  class Timer (line 137) | class Timer {
    method constructor (line 138) | constructor(callback, delay) {
    method pause (line 146) | pause() {
    method resume (line 151) | resume() {
    method cancel (line 157) | cancel() {
  class Registry (line 162) | class Registry {
    method constructor (line 163) | constructor() {
    method isRegistered (line 167) | isRegistered(notification) {
    method register (line 171) | register(notification, timer) {
    method pause (line 175) | pause(notification) {
    method resume (line 181) | resume(notification) {
    method cancel (line 187) | cancel(notification) {
  function NotificationsContainer (line 196) | function NotificationsContainer({

FILE: packages/components/src/Notification/Notification.stories.jsx
  class NotificationWrapper (line 6) | class NotificationWrapper extends Component {
    method constructor (line 7) | constructor() {
    method leaveFn (line 189) | leaveFn(notification) {
    method render (line 197) | render() {

FILE: packages/components/src/ObjectViewer/JSONLike/JSONLike.component.jsx
  function noop (line 15) | function noop() {}
  constant VALIDE_TYPES (line 17) | const VALIDE_TYPES = ['number', 'string', 'bool'];
  constant COMPLEX_TYPES (line 18) | const COMPLEX_TYPES = ['object', 'array'];
  constant ARRAY_ABSTRACT (line 20) | const ARRAY_ABSTRACT = '[...]';
  constant OBJECT_ABSTRACT (line 21) | const OBJECT_ABSTRACT = '{...}';
  function NativeValue (line 35) | function NativeValue({ data, edit, className, onChange, jsonpath, wrap, ...
  function getJSONPath (line 77) | function getJSONPath(key, prefix, type) {
  function getName (line 84) | function getName(name, t) {
  class LineItem (line 96) | class LineItem extends Component {
    method getTabIndex (line 97) | getTabIndex(isSelected) {
    method isSelected (line 108) | isSelected() {
    method render (line 113) | render() {
  function getDataInfo (line 213) | function getDataInfo(data, tupleLabel) {
  function abstracter (line 256) | function abstracter(acc, item) {
  function getDataAbstract (line 283) | function getDataAbstract(data) {
  function UntranslatedComplexItem (line 296) | function UntranslatedComplexItem(props) {
  function Item (line 431) | function Item(props) {
  function JSONLike (line 538) | function JSONLike({ onSubmit, className, style, ...props }) {

FILE: packages/components/src/ObjectViewer/List/List.component.jsx
  function List (line 6) | function List({ data, ...props }) {

FILE: packages/components/src/ObjectViewer/List/List.test.jsx
  method get (line 8) | get() {

FILE: packages/components/src/ObjectViewer/ObjectViewer.component.jsx
  constant DISPLAY_MODES (line 10) | const DISPLAY_MODES = {
  function ObjectViewer (line 17) | function ObjectViewer({ displayMode, dataSchema, data, ...props }) {

FILE: packages/components/src/ObjectViewer/ObjectViewer.test.jsx
  method get (line 8) | get() {

FILE: packages/components/src/ObjectViewer/Table/Table.component.jsx
  function getKeys (line 14) | function getKeys(data, isFlat) {
  function getAbsolutePath (line 21) | function getAbsolutePath(index, key, flat) {
  function getHeaders (line 28) | function getHeaders(keys, isFlat, baseId) {
  function buildContentHeaders (line 53) | function buildContentHeaders(headersDefinitions, schema) {
  function Table (line 75) | function Table({ flat, data, title, ...props }) {

FILE: packages/components/src/ObjectViewer/Table/Table.test.jsx
  method get (line 14) | get() {

FILE: packages/components/src/ObjectViewer/convertDate.js
  constant DATASCHEMATYPES (line 3) | const DATASCHEMATYPES = [
  function convertDate (line 31) | function convertDate(data, toConvert) {
  function checkDataSchemaToConvert (line 51) | function checkDataSchemaToConvert(dataSchema) {

FILE: packages/components/src/ObjectViewer/toflat.js
  function toFlat (line 9) | function toFlat(data, buffer = {}, path = '$') {

FILE: packages/components/src/OverlayTrigger/OverlayTrigger.component.jsx
  function getPlacement (line 20) | function getPlacement(initialOverlayElement, triggerElement, currentPlac...
  class OverlayTrigger (line 31) | class OverlayTrigger extends Component {
    method constructor (line 32) | constructor(props) {
    method onExited (line 44) | onExited() {
    method onEntering (line 50) | onEntering(initialOverlayElement) {
    method setTriggerElement (line 67) | setTriggerElement(element) {
    method render (line 71) | render() {

FILE: packages/components/src/OverlayTrigger/OverlayTrigger.forked.jsx
  function isOneOf (line 18) | function isOneOf(one, of) {
  class OverlayTrigger (line 101) | class OverlayTrigger extends Component {
    method constructor (line 102) | constructor(props, context) {
    method componentWillUnmount (line 120) | componentWillUnmount() {
    method handleDelayedHide (line 126) | handleDelayedHide() {
    method handleDelayedShow (line 150) | handleDelayedShow() {
    method handleHide (line 174) | handleHide() {
    method handleMouseOverOut (line 183) | handleMouseOverOut(handler, e, relatedNative) {
    method handleToggle (line 192) | handleToggle() {
    method hide (line 200) | hide() {
    method makeOverlay (line 204) | makeOverlay(overlay, props) {
    method show (line 212) | show() {
    method renderOverlay (line 216) | renderOverlay(overlay, props) {
    method render (line 220) | render() {

FILE: packages/components/src/OverlayTrigger/overlay.js
  constant OVERLAY_PLACEMENT_TOP (line 1) | const OVERLAY_PLACEMENT_TOP = 'top';
  constant OVERLAY_PLACEMENT_BOTTOM (line 2) | const OVERLAY_PLACEMENT_BOTTOM = 'bottom';
  constant BODY (line 3) | const BODY = 'BODY';
  constant OVERLAY_CONTAINER_CLASS_NAME (line 4) | const OVERLAY_CONTAINER_CLASS_NAME = 'tc-dropdown-container';
  constant REACT_BOOSTRAP_OVERLAY_CLASS_NAME (line 5) | const REACT_BOOSTRAP_OVERLAY_CLASS_NAME = 'popover';
  function getOverlayElement (line 13) | function getOverlayElement(innerElement) {
  function getContainerElement (line 27) | function getContainerElement(overlayElement) {
  function canInsertElementInWrapper (line 46) | function canInsertElementInWrapper(insertRect, containerRect) {
  function getReverseElement (line 59) | function getReverseElement(triggerRect, overlayRect, initialPlacement) {
  function getAdaptedPlacement (line 89) | function getAdaptedPlacement(triggerRect, overlayRect, containerRect, cu...

FILE: packages/components/src/OverlayTrigger/overlay.test.js
  function getDOMRect (line 10) | function getDOMRect(top, bottom, height) {

FILE: packages/components/src/PieChart/PieChart.component.jsx
  function decorateWithTooltip (line 14) | function decorateWithTooltip(tooltip, label, tooltipPlacement, Component...
  function getPieChartComponent (line 28) | function getPieChartComponent(onClick) {
  function PieChart (line 32) | function PieChart({ tooltip, tooltipPlacement, ...props }) {

FILE: packages/components/src/PieChart/PieChart.stories.jsx
  class WithLayout (line 181) | class WithLayout extends Component {
    method constructor (line 182) | constructor() {
    method changeState (line 188) | changeState() {
    method render (line 194) | render() {

FILE: packages/components/src/PieChart/PieChartButton.component.jsx
  function decorateWithOverlay (line 20) | function decorateWithOverlay(
  function wrapMouseEvent (line 53) | function wrapMouseEvent(mouseEvent, overlayComponent, label, rest, model) {
  function PieChartButtonComponent (line 64) | function PieChartButtonComponent({

FILE: packages/components/src/PieChart/PieChartButton.test.jsx
  function OverlayCmp (line 152) | function OverlayCmp() {

FILE: packages/components/src/PieChart/PieChartIcon.component.jsx
  constant PIECHART_CONSTANTS (line 12) | const PIECHART_CONSTANTS = {
  constant PIECHART_SIZES (line 24) | const PIECHART_SIZES = {
  function getAngle (line 47) | function getAngle(percentage) {
  function getShowedValue (line 56) | function getShowedValue(model, index) {
  function sortElements (line 68) | function sortElements(a, b) {
  function getEmptyPartCircle (line 79) | function getEmptyPartCircle(values, size, minimumPercentage) {
  function distributePercentages (line 109) | function distributePercentages(values, minimumPercentage, amountToSubtra...
  function setMinimumPercentage (line 143) | function setMinimumPercentage(model, minimumPercentage) {
  function getPercentageToIndex (line 166) | function getPercentageToIndex(values, index) {
  function getPercentageAndPrefix (line 179) | function getPercentageAndPrefix(percentage) {
  function getLabel (line 194) | function getLabel(hideLabel, labelValue, t) {
  function getCircle (line 213) | function getCircle(value, index, values, size) {
  function getDisplaySize (line 239) | function getDisplaySize(size, display) {
  function PieChartIconComponent (line 263) | function PieChartIconComponent({

FILE: packages/components/src/Progress/Progress.component.jsx
  function normalize (line 8) | function normalize(percent) {
  function Progress (line 18) | function Progress({ id, percent, tooltip, infinite, contained }) {

FILE: packages/components/src/QualityBar/QualityBar.component.tsx
  type QualityBarProps (line 7) | type QualityBarProps = QualityCommonProps & {

FILE: packages/components/src/RadarChart/RadarChart.component.jsx
  function RadarChart (line 34) | function RadarChart({
  function LabelWithClick (line 97) | function LabelWithClick(props) {
  function Dot (line 124) | function Dot(props) {
  function DotWithClick (line 145) | function DotWithClick(props) {

FILE: packages/components/src/RatioBar/RatioBar.component.tsx
  type RatioBarProps (line 6) | type RatioBarProps = {

FILE: packages/components/src/ResourceList/Resource/Resource.component.jsx
  constant FLAGS (line 16) | const FLAGS = {
  function getDateLabel (line 21) | function getDateLabel(t, date) {
  function getAuthorLabel (line 28) | function getAuthorLabel(t, author, date) {
  function Resource (line 36) | function Resource({ parent, index, style, className, as, t, ...rest }) {

FILE: packages/components/src/ResourceList/ResourceList.component.jsx
  function isFiltered (line 19) | function isFiltered({ state } = {}) {
  function ResourceList (line 23) | function ResourceList({

FILE: packages/components/src/ResourceList/ResourceList.stories.jsx
  function Preparation (line 180) | function Preparation({ name, createdBy, path }) {
  function Pipeline (line 211) | function Pipeline({ name, createdBy, usedAs }) {
  function FilteredResourceList (line 247) | function FilteredResourceList(props) {

FILE: packages/components/src/ResourceList/Toolbar/NameFilter/NameFilter.component.jsx
  function NameFilter (line 12) | function NameFilter({ label, value, onChange }) {

FILE: packages/components/src/ResourceList/Toolbar/SortOptions/OrderChooser/OrderChooser.component.jsx
  function OrderChooser (line 11) | function OrderChooser({ icon, asc, label, tooltipPlacement, onClick, ......

FILE: packages/components/src/ResourceList/Toolbar/SortOptions/SortOptions.component.jsx
  constant TYPES (line 10) | const TYPES = {
  constant ORDERS (line 15) | const ORDERS = {
  function inverse (line 20) | function inverse(order) {
  function SortOptions (line 27) | function SortOptions({ t, types, onChange, orders }) {

FILE: packages/components/src/ResourceList/Toolbar/StateFilter/StateFilter.component.jsx
  constant TYPES (line 10) | const TYPES = {
  function StateFilter (line 16) | function StateFilter({ t, types, onChange, selection, favorites, certifi...

FILE: packages/components/src/ResourceList/Toolbar/Toolbar.component.jsx
  function Toolbar (line 13) | function Toolbar({ name, nameFilerAsInput, sort, state }) {

FILE: packages/components/src/ResourcePicker/ResourcePicker.component.jsx
  function ResourcePicker (line 11) | function ResourcePicker(props) {

FILE: packages/components/src/ResourcePicker/index.js
  constant TOOLBAR_OPTIONS (line 4) | const TOOLBAR_OPTIONS = {

FILE: packages/components/src/Rich/Error/RichError.component.jsx
  function RichError (line 7) | function RichError(props) {

FILE: packages/components/src/Rich/HeaderTitle/HeaderTitle.component.jsx
  function HeaderTitle (line 6) | function HeaderTitle(props) {

FILE: packages/components/src/SidePanel/SidePanel.component.jsx
  constant DOCKED_MIN_WIDTH (line 17) | const DOCKED_MIN_WIDTH = '3.75rem';
  constant LARGE_DOCKED_MIN_WIDTH (line 18) | const LARGE_DOCKED_MIN_WIDTH = '4.375rem';
  function getInitialWidth (line 20) | function getInitialWidth(docked, large) {
  function SidePanel (line 48) | function SidePanel({

FILE: packages/components/src/SidePanel/SidePanel.stories.jsx
  class WithLayout (line 201) | class WithLayout extends Component {
    method constructor (line 202) | constructor() {
    method render (line 207) | render() {

FILE: packages/components/src/Skeleton/Skeleton.component.tsx
  constant TYPES (line 9) | const TYPES = {
  constant SIZES (line 16) | const SIZES = {
  function getTranslatedType (line 23) | function getTranslatedType(t: TFunction, type: (typeof TYPES)[keyof type...
  type SkeletonProps (line 37) | type SkeletonProps = {
  function Skeleton (line 56) | function Skeleton({

FILE: packages/components/src/Skeleton/Skeleton.test.jsx
  function t (line 5) | function t(msgid, options = {}) {

FILE: packages/components/src/Slider/Slider.component.tsx
  function isIconsAvailable (line 29) | function isIconsAvailable(icons: string[]) {
  function getSelectedIconPosition (line 36) | function getSelectedIconPosition(
  function getCaptionsValue (line 55) | function getCaptionsValue(captionsLength: number, min: number, max: numb...
  function renderActions (line 70) | function renderActions(
  function renderIcons (line 96) | function renderIcons(icons: string[], min: number, max: number, value?: ...
  function renderTextCaptions (line 125) | function renderTextCaptions(
  function getCaption (line 152) | function getCaption(
  function getHandle (line 179) | function getHandle(captionsFormat: ((value?: number) => string) | undefi...
  type SliderCaptionAction (line 197) | type SliderCaptionAction =
  type SliderProps (line 213) | type SliderProps = {

FILE: packages/components/src/Status/Status.component.jsx
  constant STATUS (line 34) | const STATUS = {
  function getbsStyleFromStatus (line 43) | function getbsStyleFromStatus(status) {
  function renderIcon (line 62) | function renderIcon(status, icon, progress) {
  function renderLabel (line 83) | function renderLabel(status, label) {
  function Status (line 97) | function Status({ status, label, icon, actions, progress, tooltip }) {

FILE: packages/components/src/Stepper/Stepper.component.jsx
  constant SHOW_COMPLETED_TRANSITION_TIMER (line 14) | const SHOW_COMPLETED_TRANSITION_TIMER = 1000;
  constant TRANSITION_STATE (line 16) | const TRANSITION_STATE = {
  constant LOADING_STEP_STATUSES (line 22) | const LOADING_STEP_STATUSES = {
  function getStatusText (line 55) | function getStatusText(t, status) {
  function getIconByStatus (line 70) | function getIconByStatus(status) {
  function changeTransitionState (line 88) | function changeTransitionState(newTransitionState, setTransitionState, t...
  function showStep (line 103) | function showStep(t, step, index, steps) {
  function transition (line 137) | function transition(transitionState, timer = 0) {
  function Stepper (line 152) | function Stepper({ steps, title, renderActions, children }) {

FILE: packages/components/src/Stepper/Stepper.stories.jsx
  function renderActions (line 18) | function renderActions(isInError) {
  function GetSteps (line 119) | function GetSteps(props) {

FILE: packages/components/src/Stepper/StepperTransition.component.jsx
  constant DEFAULT_TRANSITION_DURATION (line 4) | const DEFAULT_TRANSITION_DURATION = 300;
  function StepperTransition (line 21) | function StepperTransition({ children, active }) {

FILE: packages/components/src/SubHeaderBar/SubHeaderBar.component.jsx
  function SubHeaderBarActions (line 19) | function SubHeaderBarActions({ children, tag, left, right, center, hasRi...
  function CustomInject (line 48) | function CustomInject({ getComponent, left, right, center, nowrap, ...pr...
  function SubHeaderBar (line 66) | function SubHeaderBar({

FILE: packages/components/src/SubHeaderBar/SubHeaderBar.test.jsx
  function getComponent (line 9) | function getComponent(name) {

FILE: packages/components/src/SubHeaderBar/TitleSubHeader/SubTitle.component.jsx
  function DefaultSubTitle (line 11) | function DefaultSubTitle({ subTitle, subTitleProps }) {
  function SubTitle (line 26) | function SubTitle({

FILE: packages/components/src/SubHeaderBar/TitleSubHeader/TitleSubHeader.component.jsx
  function TitleSubHeader (line 16) | function TitleSubHeader({

FILE: packages/components/src/TabBar/TabBar.component.jsx
  function TabBar (line 25) | function TabBar(props) {

FILE: packages/components/src/TabBar/Tabs.stories.jsx
  function generateChildId (line 117) | function generateChildId(key, kind) {
  function renderContent (line 147) | function renderContent() {

FILE: packages/components/src/Toggle/LabelToggle/LabelToggle.component.jsx
  function LabelToggle (line 27) | function LabelToggle({ id, values, name, value, onChange, disabled, auto...

FILE: packages/components/src/Toggle/Toggle.component.jsx
  function Toggle (line 19) | function Toggle({ className, ...props }) {

FILE: packages/components/src/TooltipTrigger/Tooltip.stories.jsx
  function generateButtonWithTooltip (line 8) | function generateButtonWithTooltip(label, tooltipPlacement) {

FILE: packages/components/src/TooltipTrigger/TooltipTrigger.component.jsx
  constant DEFAULT_OFFSET_X (line 9) | const DEFAULT_OFFSET_X = 300;
  constant DEFAULT_OFFSET_Y (line 10) | const DEFAULT_OFFSET_Y = 50;
  function getAdjustedTooltipPlacement (line 19) | function getAdjustedTooltipPlacement(tooltipPlacement, dimensions, offse...
  function getTop (line 52) | function getTop(placement, dimensions) {
  function getLeft (line 62) | function getLeft(placement, dimensions, tooltipWidth) {
  function getBottom (line 81) | function getBottom(placement, dimensions) {
  function TooltipTrigger (line 102) | function TooltipTrigger({

FILE: packages/components/src/TreeView/TreeView.component.jsx
  function TreeView (line 47) | function TreeView(props) {

FILE: packages/components/src/TreeView/TreeViewItem/TreeViewItem.component.jsx
  constant BASE_PADDING (line 12) | const BASE_PADDING = 30;
  constant CARET_WIDTH (line 13) | const CARET_WIDTH = 12;
  constant PADDING (line 14) | const PADDING = 20;
  function getItemIcon (line 23) | function getItemIcon(iconName = 'talend-folder', isOpened) {
  function TreeViewIcon (line 34) | function TreeViewIcon({ icon, isOpened }) {
  class TreeViewItem (line 69) | class TreeViewItem extends Component {
    method constructor (line 103) | constructor(props) {
    method onMouseEnter (line 114) | onMouseEnter() {
    method onMouseLeave (line 120) | onMouseLeave() {
    method getTabIndex (line 126) | getTabIndex() {
    method hasChildren (line 137) | hasChildren() {
    method isSelected (line 141) | isSelected() {
    method isOpened (line 152) | isOpened() {
    method renderTreeViewChildren (line 160) | renderTreeViewChildren() {
    method renderIconAction (line 186) | renderIconAction({ action, id, ...actionProps }) {
    method render (line 207) | render() {

FILE: packages/components/src/TreeView/TreeViewItem/TreeViewItem.test.jsx
  function getIcon (line 88) | function getIcon() {

FILE: packages/components/src/Typeahead/Typeahead.component.jsx
  function getItems (line 22) | function getItems(items, dataFeature) {
  function Typeahead (line 42) | function Typeahead({ onToggle, icon, position, docked, items, ...rest }) {

FILE: packages/components/src/Typeahead/Typeahead.component.renderers.jsx
  function renderInputComponent (line 19) | function renderInputComponent(props) {
  function renderItemsContainerFactory (line 93) | function renderItemsContainerFactory(
  function renderSectionTitle (line 193) | function renderSectionTitle(section) {
  function renderItem (line 210) | function renderItem(item, { value, valueId, ...rest }) {

FILE: packages/components/src/Typeahead/Typeahead.test.jsx
  function getHeaders (line 6) | function getHeaders() {

FILE: packages/components/src/VirtualizedList/CellActions/ActionsColumn.component.jsx
  function ActionsColumn (line 11) | function ActionsColumn() {

FILE: packages/components/src/VirtualizedList/CellActions/CellActions.component.jsx
  constant LIST_ACTION_CLASS_NAME (line 9) | const LIST_ACTION_CLASS_NAME = 'tc-list-actions';
  class CellActions (line 14) | class CellActions extends Component {
    method shouldComponentUpdate (line 15) | shouldComponentUpdate(nextProps) {
    method render (line 19) | render() {

FILE: packages/components/src/VirtualizedList/CellBadge/BadgeColumn.component.jsx
  function BadgeColumn (line 11) | function BadgeColumn() {

FILE: packages/components/src/VirtualizedList/CellBadge/CellBadge.component.jsx
  class CellBadge (line 8) | class CellBadge extends Component {
    method shouldComponentUpdate (line 9) | shouldComponentUpdate(nextProps) {
    method render (line 17) | render() {

FILE: packages/components/src/VirtualizedList/CellBoolean/BooleanColumn.component.jsx
  function BooleanColumn (line 11) | function BooleanColumn() {

FILE: packages/components/src/VirtualizedList/CellBoolean/CellBoolean.component.jsx
  constant DISPLAY_MODE (line 13) | const DISPLAY_MODE = {
  class CellBoolean (line 21) | class CellBoolean extends Component {
    method shouldComponentUpdate (line 22) | shouldComponentUpdate(nextProps) {
    method render (line 26) | render() {

FILE: packages/components/src/VirtualizedList/CellCheckbox/CellCheckbox.component.jsx
  class CellCheckbox (line 11) | class CellCheckbox extends Component {
    method shouldComponentUpdate (line 12) | shouldComponentUpdate(nextProps) {
    method render (line 21) | render() {

FILE: packages/components/src/VirtualizedList/CellCheckbox/CheckboxColumn.component.jsx
  function CheckboxColumn (line 11) | function CheckboxColumn() {

FILE: packages/components/src/VirtualizedList/CellDatetime/CellDatetime.component.jsx
  constant DATE_TIME_FORMAT (line 22) | const DATE_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss';
  function computeValue (line 24) | function computeValue(cellData, columnData, t) {
  function getTooltipLabel (line 52) | function getTooltipLabel(cellData, columnData, t) {
  class CellDatetimeComponent (line 83) | class CellDatetimeComponent extends Component {
    method shouldComponentUpdate (line 84) | shouldComponentUpdate(nextProps) {
    method render (line 92) | render() {

FILE: packages/components/src/VirtualizedList/CellDatetime/DatetimeColumn.component.jsx
  function DatetimeColumn (line 11) | function DatetimeColumn() {

FILE: packages/components/src/VirtualizedList/CellIconText/CellIconText.component.jsx
  constant DEFAULT_TOOLTIP_PLACEMENT (line 10) | const DEFAULT_TOOLTIP_PLACEMENT = 'top';
  function getCellIcon (line 12) | function getCellIcon({ cellData, rowData, columnData = {} }) {
  function getCellLabel (line 20) | function getCellLabel({ cellData }) {
  function getCellLabelTooltip (line 27) | function getCellLabelTooltip({ cellData, rowData, columnData = {} }) {
  function getCellIconTooltip (line 38) | function getCellIconTooltip({ cellData, rowData, columnData = {} }) {
  class CellIconText (line 52) | class CellIconText extends Component {
    method shouldComponentUpdate (line 53) | shouldComponentUpdate(nextProps) {
    method render (line 57) | render() {

FILE: packages/components/src/VirtualizedList/CellIconText/IconTextColumn.component.jsx
  function IconTextColumn (line 11) | function IconTextColumn() {

FILE: packages/components/src/VirtualizedList/CellLabel/CellLabel.component.jsx
  function CellLabel (line 7) | function CellLabel({ cellData, rowIndex }) {

FILE: packages/components/src/VirtualizedList/CellLabel/LabelColumn.component.jsx
  function LabelColumn (line 11) | function LabelColumn() {

FILE: packages/components/src/VirtualizedList/CellLink/CellLink.component.jsx
  function CellLink (line 9) | function CellLink({ cellData, rowData, columnData, className }) {

FILE: packages/components/src/VirtualizedList/CellLink/LinkColumn.component.jsx
  function LinkColumn (line 11) | function LinkColumn() {

FILE: packages/components/src/VirtualizedList/CellMappedData/CellMappedData.component.jsx
  function CellMappedData (line 7) | function CellMappedData(props) {

FILE: packages/components/src/VirtualizedList/CellMappedData/MappedDataColumn.component.jsx
  function MappedDataColumn (line 11) | function MappedDataColumn() {

FILE: packages/components/src/VirtualizedList/CellQualityBar/QualityBarColumn.component.jsx
  function QualityBarColumn (line 11) | function QualityBarColumn() {

FILE: packages/components/src/VirtualizedList/CellTextIcon/CellWithIcon.component.jsx
  class CellWithIcon (line 11) | class CellWithIcon extends Component {
    method shouldComponentUpdate (line 12) | shouldComponentUpdate(nextProps) {
    method render (line 20) | render() {

FILE: packages/components/src/VirtualizedList/CellTextIcon/TextIconColumn.component.jsx
  function TextIconColumn (line 11) | function TextIconColumn() {

FILE: packages/components/src/VirtualizedList/CellTitle/CellTitle.component.jsx
  class CellTitle (line 23) | class CellTitle extends Component {
    method shouldComponentUpdate (line 24) | shouldComponentUpdate(nextProps) {
    method render (line 35) | render() {

FILE: packages/components/src/VirtualizedList/CellTitle/CellTitle.test.jsx
  function getComponent (line 245) | function getComponent() {

FILE: packages/components/src/VirtualizedList/CellTitle/CellTitleActions.component.jsx
  constant MAX_DIRECT_NB_ICON (line 17) | const MAX_DIRECT_NB_ICON = 4;
  function isDropdown (line 19) | function isDropdown(actionDef) {
  function renderActionsGroup (line 23) | function renderActionsGroup(getComponent) {
  function getLargeDisplayActions (line 36) | function getLargeDisplayActions(actions, getComponent) {
  function getDefaultDisplayActions (line 48) | function getDefaultDisplayActions(actions, getComponent, t, id) {
  function getPersistentActions (line 119) | function getPersistentActions(actions, getComponent) {
  function isAvailable (line 135) | function isAvailable(actionDef) {
  function CellTitleActionsComponent (line 139) | function CellTitleActionsComponent({

FILE: packages/components/src/VirtualizedList/CellTitle/CellTitleInput.component.jsx
  class CellTitleInput (line 12) | class CellTitleInput extends Component {
    method constructor (line 13) | constructor(props) {
    method componentDidMount (line 20) | componentDidMount() {
    method onKeyUp (line 24) | onKeyUp(event) {
    method onBlur (line 30) | onBlur(event) {
    method onSubmit (line 34) | onSubmit(event) {
    method render (line 42) | render() {

FILE: packages/components/src/VirtualizedList/CellTitle/CellTitleSelector.component.jsx
  function CellTitleSelector (line 13) | function CellTitleSelector(props) {

FILE: packages/components/src/VirtualizedList/CellTitle/TitleColumn.component.jsx
  function TitleColumn (line 13) | function TitleColumn() {

FILE: packages/components/src/VirtualizedList/Content.component.jsx
  function DefaultRenderer (line 6) | function DefaultRenderer({ cellData, columnData, rowData }) {
  function Content (line 44) | function Content() {

FILE: packages/components/src/VirtualizedList/HeaderCheckbox/HeaderCheckbox.component.jsx
  function HeaderCheckbox (line 12) | function HeaderCheckbox({ columnData }) {

FILE: packages/components/src/VirtualizedList/HeaderIcon/HeaderIcon.component.jsx
  function HeaderIcon (line 12) | function HeaderIcon({ label, sortBy, dataKey, sortDirection, columnData ...

FILE: packages/components/src/VirtualizedList/HeaderResizable/HeaderResizable.component.jsx
  class HeaderResizable (line 27) | class HeaderResizable extends Component {
    method render (line 56) | render() {

FILE: packages/components/src/VirtualizedList/ListGrid/ListGrid.component.jsx
  function ListGrid (line 13) | function ListGrid(props) {

FILE: packages/components/src/VirtualizedList/ListTable/ListTable.component.jsx
  function SkeletonRow (line 19) | function SkeletonRow({ columns }) {
  function ListTableRowRenderer (line 27) | function ListTableRowRenderer(props) {
  function ListTable (line 42) | function ListTable(props) {

FILE: packages/components/src/VirtualizedList/NoRows/NoRows.component.jsx
  function NoRowsComponent (line 10) | function NoRowsComponent(props) {

FILE: packages/components/src/VirtualizedList/RendererSelector.component.jsx
  function getRowRenderer (line 18) | function getRowRenderer(type, renderers = {}) {
  class RendererSelector (line 34) | class RendererSelector extends Component {
    method constructor (line 35) | constructor(props) {
    method noRowsRenderer (line 40) | noRowsRenderer() {
    method render (line 48) | render() {

FILE: packages/components/src/VirtualizedList/RendererSelector.test.jsx
  function NoRowsRenderer (line 40) | function NoRowsRenderer() {
  function Custom (line 248) | function Custom() {

FILE: packages/components/src/VirtualizedList/RowCollapsiblePanel/RowCollapsiblePanel.component.jsx
  function LoadingCollapsiblePanel (line 23) | function LoadingCollapsiblePanel() {
  class RowCollapsiblePanel (line 49) | class RowCollapsiblePanel extends Component {
    method constructor (line 50) | constructor(props) {
    method onToggle (line 55) | onToggle(event) {
    method render (line 62) | render() {

FILE: packages/components/src/VirtualizedList/RowLarge/RowLarge.component.jsx
  constant SKELETON_SIZES (line 29) | const SKELETON_SIZES = [Skeleton.SIZES.xlarge, Skeleton.SIZES.large, Ske...
  constant LOADING_ROW_COLUMNS_COUNT (line 30) | const LOADING_ROW_COLUMNS_COUNT = 3;
  function RandomSizeSkeleton (line 32) | function RandomSizeSkeleton() {
  function LargeInnerRowLoading (line 38) | function LargeInnerRowLoading({ columns, rows }) {
  class RowLarge (line 66) | class RowLarge extends Component {
    method constructor (line 67) | constructor(props) {
    method renderKeyValue (line 72) | renderKeyValue(field, fieldIndex) {
    method render (line 96) | render() {

FILE: packages/components/src/VirtualizedList/RowLarge/RowThemes.js
  constant ROW_CLASS_NAME (line 4) | const ROW_CLASS_NAME = 'tc-list-large';

FILE: packages/components/src/VirtualizedList/RowSelection/RowSelection.component.jsx
  function getRowSelectionRenderer (line 9) | function getRowSelectionRenderer(

FILE: packages/components/src/VirtualizedList/RowSelection/RowSelection.test.jsx
  function RowRenderer (line 4) | function RowRenderer(props) {
  function isSelected (line 10) | function isSelected(rowData) {
  function isActive (line 13) | function isActive(rowData) {
  function getRowData (line 20) | function getRowData() {
  function getRowData (line 33) | function getRowData() {
  function getRowData (line 55) | function getRowData() {
  function getRowData (line 78) | function getRowData() {

FILE: packages/components/src/VirtualizedList/VirtualizedList.component.jsx
  function VirtualizedList (line 20) | function VirtualizedList(props) {

FILE: packages/components/src/VirtualizedList/VirtualizedList.stories.jsx
  function MyCustomRow (line 11) | function MyCustomRow(props) {
  function NoRowsRenderer (line 24) | function NoRowsRenderer() {
  function CollapsiblePanels (line 398) | function CollapsiblePanels(props) {

FILE: packages/components/src/VirtualizedList/event/rowclick.js
  function decorateRowDoubleClick (line 7) | function decorateRowDoubleClick(onRowDoubleClick) {
  function decorateRowClick (line 27) | function decorateRowClick(onRowClick) {

FILE: packages/components/src/VirtualizedList/utils/constants.js
  constant SORT_BY (line 12) | const SORT_BY = {
  constant SELECTION_MODE (line 17) | const SELECTION_MODE = {

FILE: packages/components/src/VirtualizedList/utils/gridrow.js
  function getCellRenderer (line 16) | function getCellRenderer(field) {
  function getCellType (line 24) | function getCellType(field) {
  function getId (line 32) | function getId(parent) {
  function getColumnData (line 40) | function getColumnData(field) {
  function getDataKey (line 48) | function getDataKey(field) {
  function getLabel (line 56) | function getLabel(field) {
  function getRowData (line 65) | function getRowData(parent, index) {
  function getCellData (line 75) | function getCellData(field, parent, index) {
  function extractSpecialFields (line 87) | function extractSpecialFields(parent) {
  function renderCell (line 102) | function renderCell(index, parent, field, type) {

FILE: packages/components/src/VirtualizedList/utils/gridrow.test.jsx
  function cellRenderer (line 202) | function cellRenderer(props) {

FILE: packages/components/src/VirtualizedList/utils/resizable.js
  constant MINIMUM_COLUMN_WIDTH (line 6) | const MINIMUM_COLUMN_WIDTH = 40;

FILE: packages/components/src/VirtualizedList/utils/tablerow.jsx
  function insertSelectionConfiguration (line 14) | function insertSelectionConfiguration(props) {
  function toColumns (line 65) | function toColumns({ id, theme, children, columnsWidths, getRowState }) {

FILE: packages/components/src/VirtualizedList/virtualizedListContext.jsx
  function useVirtualizedListContext (line 6) | function useVirtualizedListContext() {
  function ConsumerVirtualizedList (line 16) | function ConsumerVirtualizedList({ children }) {

FILE: packages/components/src/WithDrawer/WithDrawer.component.jsx
  function WithDrawer (line 26) | function WithDrawer({ drawers, children, ...rest }) {

FILE: packages/components/src/constants.js
  constant I18N_DOMAIN_COMPONENTS (line 1) | const I18N_DOMAIN_COMPONENTS = 'tui-components';
  constant CIRCULAR_PROGRESS_SIZE (line 3) | const CIRCULAR_PROGRESS_SIZE = {

FILE: packages/components/src/i18n/DateFnsLocale/formatters.js
  function buildFormattingTokensRegExp (line 35) | function buildFormattingTokensRegExp(formatters) {
  function masculineOrdinal (line 55) | function masculineOrdinal() {
  function feminineOrdinal (line 59) | function feminineOrdinal() {
  function buildFormatLocale (line 63) | function buildFormatLocale(t) {

FILE: packages/components/src/i18n/DateFnsLocale/locale.js
  function getLocale (line 9) | function getLocale() {

FILE: packages/components/src/theme.ts
  type THEMES (line 3) | type THEMES = Record<string, string>;
  type ParamType (line 4) | type ParamType = string | string[] | Record<string, boolean> | undefined;
  function getTheme (line 25) | function getTheme(...cssThemes: THEMES[]) {

FILE: packages/components/src/translate.js
  function getI18nInstance (line 12) | function getI18nInstance() {
  function getDefaultT (line 19) | function getDefaultT() {
  function getCurrentLanguage (line 27) | function getCurrentLanguage() {

FILE: packages/components/src/utils/getPropsFrom.js
  constant NATIVE_PROPS (line 1) | const NATIVE_PROPS = [
  constant NATIVE_PROPS_GROUPS (line 13) | const NATIVE_PROPS_GROUPS = ['aria-', 'data-'];
  function extractComponentProps (line 15) | function extractComponentProps(Component, props) {
  function extractNativeProps (line 28) | function extractNativeProps(props) {
  function getPropsFrom (line 41) | function getPropsFrom(Component, props) {

FILE: packages/components/src/utils/getTabBarBadgeLabel.js
  function getTabBarBadgeLabel (line 1) | function getTabBarBadgeLabel(label) {

FILE: packages/components/src/wrap.tsx
  type ToTextProps (line 7) | type ToTextProps = {
  type Component (line 11) | type Component = Record<string, any> & {
  function toText (line 17) | function toText(props: ToTextProps) {
  constant OMIT_PROPS (line 24) | const OMIT_PROPS = [
  constant BLACK_LISTED_ATTR (line 36) | const BLACK_LISTED_ATTR = [
  constant COMPONENT_EXCEPTIONS (line 41) | const COMPONENT_EXCEPTIONS = {
  function isNotBlackListedAttr (line 45) | function isNotBlackListedAttr(attr: string) {
  type WrapperProps (line 49) | type WrapperProps = {
  function wrap (line 56) | function wrap(Component: Component, key: string) {

FILE: packages/components/test/storageMock.js
  class StorageMock (line 1) | class StorageMock {
    method constructor (line 2) | constructor() {
    method mock (line 6) | mock(fn, name) {
    method mockGet (line 13) | mockGet(getItem) {
    method mockSet (line 17) | mockSet(setItem) {
    method mockRemove (line 21) | mockRemove(removeItem) {
    method clear (line 25) | clear(name) {
    method clearAll (line 28) | clearAll() {

FILE: packages/containers/.storybook/cmfModule/components.js
  function ComponentOverlay (line 6) | function ComponentOverlay(props) {

FILE: packages/containers/.storybook/cmfModule/reducers.js
  constant TOGGLE_FLAG_TYPE (line 3) | const TOGGLE_FLAG_TYPE = 'TOGGLE_FLAG_TYPE';
  function flagToggleReducer (line 5) | function flagToggleReducer(state = {}, { type, flagId }) {
  function appReducer (line 14) | function appReducer(state = {}, action) {
  function routerReducer (line 21) | function routerReducer(state = {}, action) {

FILE: packages/containers/src/AboutDialog/AboutDialog.container.jsx
  constant DEFAULT_STATE (line 9) | const DEFAULT_STATE = new Map({
  class AboutDialog (line 13) | class AboutDialog extends RComponent {
    method constructor (line 22) | constructor(props) {
    method toggle (line 28) | toggle() {
    method hide (line 32) | hide() {
    method render (line 36) | render() {

FILE: packages/containers/src/Action/Action.connect.js
  function mapStateToProps (line 4) | function mapStateToProps(state, ownProps) {
  function mergeProps (line 19) | function mergeProps(stateProps, dispatchProps, ownProps) {

FILE: packages/containers/src/ActionBar/ActionBar.connect.js
  function getAction (line 16) | function getAction(actionId) {
  function mapStateToProps (line 23) | function mapStateToProps(state, { actionIds }) {
  function mergeProps (line 40) | function mergeProps(stateProps, dispatchProps, ownProps) {

FILE: packages/containers/src/ActionButton/ActionButton.connect.jsx
  function mapStateToProps (line 5) | function mapStateToProps(state, ownProps) {
  function mergeProps (line 21) | function mergeProps(stateProps, dispatchProps, ownProps) {
  function ContainerActionButton (line 27) | function ContainerActionButton(props) {

FILE: packages/containers/src/ActionDropdown/ActionDropdown.connect.jsx
  function mapStateToProps (line 9) | function mapStateToProps(state, ownProps = {}) {
  function mergeProps (line 29) | function mergeProps(stateProps, dispatchProps, ownProps) {
  function ContainerActionDropdown (line 40) | function ContainerActionDropdown({ items, ...props }) {

FILE: packages/containers/src/ActionDropdown/ActionDropdown.stories.jsx
  function Default (line 14) | function Default({ onSelect }) {

FILE: packages/containers/src/ActionFile/ActionFile.connect.jsx
  function mapStateToProps (line 5) | function mapStateToProps(state, ownProps) {
  function mergeProps (line 20) | function mergeProps(stateProps, dispatchProps, ownProps) {
  function ContainerActionFile (line 27) | function ContainerActionFile({ onChange, ...props }) {

FILE: packages/containers/src/ActionIconToggle/ActionIconToggle.connect.jsx
  function mapStateToProps (line 5) | function mapStateToProps(state, ownProps) {
  function mergeProps (line 21) | function mergeProps(stateProps, dispatchProps, ownProps) {
  function ContainerActionIconToggle (line 27) | function ContainerActionIconToggle(props) {

FILE: packages/containers/src/ActionIconToggle/ActionIconToggle.stories.jsx
  function mapStateToProps (line 12) | function mapStateToProps(state) {
  function MyDrawer (line 18) | function MyDrawer({ opened }) {

FILE: packages/containers/src/ActionSplitDropdown/ActionSplitDropdown.connect.jsx
  function mapStateToProps (line 7) | function mapStateToProps(state, { actionId, actionIds } = {}) {
  function mergeProps (line 27) | function mergeProps(stateProps, dispatchProps, ownProps) {
  function ContainerActionSplitDropdown (line 39) | function ContainerActionSplitDropdown(props) {

FILE: packages/containers/src/ActionSplitDropdown/ActionSplitDropdown.stories.jsx
  function Default (line 7) | function Default() {

FILE: packages/containers/src/Actions/Actions.connect.js
  function mapStateToProps (line 11) | function mapStateToProps(state, { actionIds, names, actions }) {
  function mergeProps (line 20) | function mergeProps(stateProps, dispatchProps, ownProps) {

FILE: packages/containers/src/Actions/Actions.stories.jsx
  function Default (line 42) | function Default() {

FILE: packages/containers/src/AppLoader/AppLoader.connect.jsx
  function AppLoaderContainer (line 25) | function AppLoaderContainer({ loading, renderer = appLoaderRenderer, chi...
  function mapStateToProps (line 52) | function mapStateToProps(state, ownProps) {

FILE: packages/containers/src/AppLoader/AppLoader.saga.js
  constant ACTION_CREATORS (line 5) | const ACTION_CREATORS = 'actionCreators';
  constant SAGAS (line 6) | const SAGAS = 'sagas';
  constant WAIT_FOR (line 7) | const WAIT_FOR = 'waitFor';
  constant TAKE_ACTION (line 8) | const TAKE_ACTION = 'takeAction';

FILE: packages/containers/src/AppLoader/AppLoader.stories.jsx
  constant ICON (line 5) | const ICON =

FILE: packages/containers/src/Breadcrumbs/Breadcrumbs.connect.jsx
  constant DEFAULT_STATE (line 5) | const DEFAULT_STATE = Map();
  function ContainerBreadcrumbs (line 7) | function ContainerBreadcrumbs({ state = DEFAULT_STATE, dispatchActionCre...

FILE: packages/containers/src/Breadcrumbs/Breadcrumbs.stories.jsx
  function Default (line 21) | function Default() {

FILE: packages/containers/src/ComponentForm/ComponentForm.actions.js
  constant COMPONENT_FORM_SET_DIRTY (line 1) | const COMPONENT_FORM_SET_DIRTY = 'COMPONENT_FORM_SET_DIRTY';
  function setComponentFormDirtyState (line 8) | function setComponentFormDirtyState(componentId, dirty) {

FILE: packages/containers/src/ComponentForm/ComponentForm.component.jsx
  constant TO_OMIT (line 12) | const TO_OMIT = [
  constant DEFAULT_STATE (line 23) | const DEFAULT_STATE = new Map({
  function toJS (line 31) | function toJS(immutableObject) {
  function resolveNameForTitleMap (line 45) | function resolveNameForTitleMap({ schema, properties, value }) {
  class TCompForm (line 87) | class TCompForm extends Component {
    method constructor (line 88) | constructor(props) {
    method componentDidUpdate (line 104) | componentDidUpdate(prevProps) {
    method onChange (line 125) | onChange(_, payload) {
    method onTrigger (line 146) | onTrigger(event, payload) {
    method onSubmit (line 174) | onSubmit(_, properties) {
    method onReset (line 186) | onReset() {
    method setupTrigger (line 199) | setupTrigger(props) {
    method getUISpec (line 213) | getUISpec() {
    method render (line 221) | render() {

FILE: packages/containers/src/ComponentForm/ComponentForm.saga.test.jsx
  function getReduxStore (line 174) | function getReduxStore() {

FILE: packages/containers/src/ComponentForm/ComponentForm.sagas.js
  function getReduxState (line 72) | function getReduxState() {
  function checkFormComponentId (line 103) | function checkFormComponentId(componentId, actionType) {

FILE: packages/containers/src/ComponentForm/ComponentForm.selectors.js
  function isComponentFormDirty (line 3) | function isComponentFormDirty(state, componentName) {

FILE: packages/containers/src/ComponentForm/ComponentForm.test.jsx
  function trigger (line 11) | function trigger() {

FILE: packages/containers/src/ComponentForm/fields/MultiSelect/MultiSelect.component.jsx
  class MultiSelectField (line 8) | class MultiSelectField extends Component {
    method constructor (line 9) | constructor(props) {
    method componentDidMount (line 18) | componentDidMount() {
    method onTrigger (line 22) | onTrigger(event) {
    method onTriggerResult (line 32) | onTriggerResult(event, trigger) {
    method onChange (line 41) | onChange(event, selected) {
    method getTitleMap (line 50) | getTitleMap() {
    method getChildrenErrorMessage (line 68) | getChildrenErrorMessage() {
    method render (line 81) | render() {

FILE: packages/containers/src/ComponentForm/fields/MultiSelect/displayMode/TextMode.component.jsx
  function renderItem (line 6) | function renderItem(props) {
  function MultiSelectTextMode (line 17) | function MultiSelectTextMode(props) {

FILE: packages/containers/src/ComponentForm/fields/NameResolver/NameResolver.component.jsx
  function withNameResolver (line 4) | function withNameResolver(WrappedComponent) {

FILE: packages/containers/src/ComponentForm/kit/createTriggers.js
  constant DEFAULT_HEADERS (line 27) | const DEFAULT_HEADERS = {
  function passthroughTrigger (line 32) | function passthroughTrigger({ error, trigger, body }) {
  function getPathWithArrayIndex (line 46) | function getPathWithArrayIndex(specPath, schema) {
  function extractParameters (line 78) | function extractParameters(parameters, properties, schema) {
  function createCacheKey (line 99) | function createCacheKey(trigger) {
  function toJSON (line 108) | function toJSON(resp) {
  function toQueryParam (line 123) | function toQueryParam(obj) {
  function createTriggers (line 131) | function createTriggers({

FILE: packages/containers/src/ComponentForm/kit/defaultRegistry.js
  function getNewErrors (line 32) | function getNewErrors(errors, schema, errorMessage) {
  function validation (line 48) | function validation({ schema, body, errors = {} }) {
  function schemaReducer (line 53) | function schemaReducer(acc, entry) {
  function updateSchema (line 68) | function updateSchema({ schema, body, properties, trigger, errors }) {
  function suggestions (line 94) | function suggestions({ body }) {
  function extractErrorMessage (line 107) | function extractErrorMessage(error) {
  function onError (line 126) | function onError({ errors, error, schema }) {
  function updateProperties (line 153) | function updateProperties({ body, trigger, properties }) {

FILE: packages/containers/src/ComponentForm/kit/flatten.js
  function step (line 18) | function step(anything, key, payload, options = {}) {
  function flatten (line 68) | function flatten(obj, options) {

FILE: packages/containers/src/ConfirmDialog/ConfirmDialog.connect.js
  function mapStateToProps (line 5) | function mapStateToProps(state, props, cmfProps) {

FILE: packages/containers/src/ConfirmDialog/ConfirmDialog.container.jsx
  constant DEFAULT_STATE (line 8) | const DEFAULT_STATE = new Map({
  function ConfirmDialog (line 13) | func
Copy disabled (too large) Download .json
Condensed preview — 4582 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,241K chars).
[
  {
    "path": ".changeset/README.md",
    "chars": 510,
    "preview": "# Changesets\n\nHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that wo"
  },
  {
    "path": ".changeset/config.json",
    "chars": 359,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config@1.6.0/schema.json\",\n  \"changelog\": \"@changesets/cli/changelog\",\n  \""
  },
  {
    "path": ".editorconfig",
    "chars": 322,
    "preview": "# http://editorconfig.org\nroot = true\n[*]\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/architecture_decision_record.md",
    "chars": 693,
    "preview": "---\nname: Architecture Decision Record\nabout: Create an architecture decision record to capture an important architectur"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 834,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 595,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 1125,
    "preview": "**What is the problem this PR is trying to solve?**\n\n**What is the chosen solution to this problem?**\n\n**Please check if"
  },
  {
    "path": ".github/actions/lint-merge-report/action.yml",
    "chars": 485,
    "preview": "name: 'Lint merge report'\ndescription: 'Merge eslint and stylelint reports filtered by git diff'\nauthor: 'Talend'\ninputs"
  },
  {
    "path": ".github/actions/lint-merge-report/merge-lint-reports.mjs",
    "chars": 2881,
    "preview": "#!/usr/bin/env node\n/* eslint-disable no-console */\nimport { spawn } from 'child_process';\nimport fs from 'fs';\nimport p"
  },
  {
    "path": ".github/actions/setup-node/action.yml",
    "chars": 1027,
    "preview": "name: 'Setup nodejs'\ndescription: 'Setup nodejs'\nauthor: 'Talend'\ninputs:\n  NPM_TOKEN:\n    description: 'Token used for "
  },
  {
    "path": ".github/copilot-instructions.md",
    "chars": 13828,
    "preview": "# Talend/UI — AI Coding Instructions\n\n## Repository Overview\n\nThis is **Talend/UI**, a Yarn workspaces monorepo containi"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 698,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n    ignore:\n "
  },
  {
    "path": ".github/workflows/changeset.yml",
    "chars": 2642,
    "preview": "name: Changeset (Release)\n\non:\n  push:\n    branches:\n      - master\n\npermissions:\n  contents: write\n  deployments: read\n"
  },
  {
    "path": ".github/workflows/clean-demo.yml",
    "chars": 849,
    "preview": "name: Delete PR folder in gh-pages\non:\n  pull_request:\n    types: [closed]\n\npermissions:\n  contents: write\n  pull-reques"
  },
  {
    "path": ".github/workflows/demo.yml",
    "chars": 2424,
    "preview": "name: Demo CI\non:\n  push:\n    branches:\n      - master\n\npermissions:\n  contents: write\n  pull-requests: write\n  statuses"
  },
  {
    "path": ".github/workflows/dependencies.yml",
    "chars": 1436,
    "preview": "name: Upgrade dependencies\n\non:\n  workflow_dispatch:\n  schedule:\n    - cron: \"0 10 * * WED\"\n\npermissions:\n  contents: wr"
  },
  {
    "path": ".github/workflows/icons.yml",
    "chars": 2008,
    "preview": "name: Download icons from Figma\n\non:\n  repository_dispatch:\n  workflow_dispatch:\n\npermissions:\n  contents: write\n  deplo"
  },
  {
    "path": ".github/workflows/pr-demo.yml",
    "chars": 3286,
    "preview": "name: PR Demo CI\non:\n  pull_request:\n\npermissions:\n  contents: write\n  pull-requests: write\n  statuses: write\n  checks: "
  },
  {
    "path": ".github/workflows/pr-lint.yml",
    "chars": 1575,
    "preview": "name: PR lint\n\non:\n  pull_request:\n\npermissions:\n  contents: write\n  deployments: read\n  pull-requests: write # needed t"
  },
  {
    "path": ".github/workflows/pr-test.yml",
    "chars": 2302,
    "preview": "name: PR tests\n\non:\n  pull_request:\n\n# This allows a subsequently queued workflow run to interrupt previous runs\nconcurr"
  },
  {
    "path": ".github/workflows/pre-release.yml",
    "chars": 1837,
    "preview": "name: pre-release\n\non:\n  pull_request:\n    types:\n      - labeled\n\njobs:\n  integration-publish:\n    if: github.event.pul"
  },
  {
    "path": ".github/workflows/visual-testing.yml",
    "chars": 2213,
    "preview": "name: Visual testing\n\non:\n  workflow_dispatch:\n  pull_request:\n    # By default, a workflow only runs when a pull_reques"
  },
  {
    "path": ".github/workflows/yarn-deduplicate.yml",
    "chars": 1518,
    "preview": "name: yarn-deduplicate\n\non:\n  pull_request:\n    paths:\n      - \"yarn.lock\"\n\n# This allows a subsequently queued workflow"
  },
  {
    "path": ".gitignore",
    "chars": 655,
    "preview": "/.static\n# Log files #\n*.log\n\n# Mac OS index files #\n.DS_Store\n\n# Eclipse project files #\n.project\n.settings\nbin/\n# Inte"
  },
  {
    "path": ".husky/pre-commit",
    "chars": 62,
    "preview": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nnpm run lint-staged\n"
  },
  {
    "path": ".nojekyll",
    "chars": 0,
    "preview": ""
  },
  {
    "path": ".npmignore",
    "chars": 596,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n\n# Directory for instrumented libs generated by jscov"
  },
  {
    "path": ".npmrc",
    "chars": 45,
    "preview": "@talend:registry=https://npm.pkg.github.com/\n"
  },
  {
    "path": ".prettierignore",
    "chars": 140,
    "preview": ".changeset\n.github\n.husky\n.idea\n.surge\nbuild\ndist\nnode_modules\n__fixtures__\ntools/scripts-config-storybook-lib/.storyboo"
  },
  {
    "path": ".prettierrc.js",
    "chars": 70,
    "preview": "module.exports = {\n\t...require('@talend/scripts-config-prettier'),\n};\n"
  },
  {
    "path": ".sass-lint.yml",
    "chars": 3025,
    "preview": "options:\n  merge-default-rules: false\n#  formatter: html\n#  output-file: 'linters/sass-lint.html'\n\n# File Options\nfiles:"
  },
  {
    "path": ".semgrepignore",
    "chars": 1353,
    "preview": "# Items added to this file will be ignored by Semgrep.\n#\n# This file uses .gitignore syntax:\n#\n# To ignore a file anywhe"
  },
  {
    "path": ".tool-versions",
    "chars": 28,
    "preview": "nodejs 24.14.0\nyarn 1.22.22\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 305,
    "preview": "{\n  \"prettier.prettierPath\": \"./node_modules/prettier/index.cjs\",\n  \"eslint.workingDirectories\": [\n    {\n      \"pattern\""
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 370,
    "preview": "# Contributing to the project\n\n[Contribution guide](https://github.com/Talend/tools/blob/master/tools-root-github/CONTRI"
  },
  {
    "path": "I18n.md",
    "chars": 3468,
    "preview": "# I18n\n\nUI uses [react-i18n](https://react.i18next.com/) to make the components internationalizable. This is based on [i"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 1754,
    "preview": "# UI\n\nThat repository was created in an effort to simplify the development of Talend's front-end stack.\n\n## Goals\n\n- Sin"
  },
  {
    "path": "SECURITY.md",
    "chars": 835,
    "preview": "# Security Policy\n\n## Supported Versions\n\nWe use `changeset` to provide versioning for our packages with fixes, features"
  },
  {
    "path": "babel.config.js",
    "chars": 97,
    "preview": "// this file is needed by vscode\nmodule.exports = {\n\textends: '@talend/scripts-config-babel',\n};\n"
  },
  {
    "path": "dependencies-latest.txt",
    "chars": 14675,
    "preview": "yarn run v1.22.22\n$ /home/runner/work/ui/ui/node_modules/.bin/talend-upgrade-deps --latest --dry\n\ncheck versions of /hom"
  },
  {
    "path": "docs/adr-2024-04-add-support-to-esm.md",
    "chars": 3284,
    "preview": "# ADR: Add support to ECMAScript Modules (ESM)\n\n## Context\n\nOur build and bundling setup currently uses CommonJS modules"
  },
  {
    "path": "docs/adr-composition-vs-api.md",
    "chars": 9199,
    "preview": "# CSS Modules\n\n## Composition vs closed component APIs\n\n## Problems and definitions\n\n**Composition** is what we do when "
  },
  {
    "path": "docs/adr-css-modules.md",
    "chars": 2000,
    "preview": "# CSS Modules\n\n[^1]: tl;dr.\n\n## Context\n\n[Styled Components](https://styled-components.com/) are great for managing a de"
  },
  {
    "path": "docs/adr-data-test.md",
    "chars": 3370,
    "preview": "# Use [data-testid] attributes for generic automated tests\n\n## Context\n\nQuality Assurance teams perform automated tests "
  },
  {
    "path": "docs/adr-dependencies.md",
    "chars": 3498,
    "preview": "# Usage of dependencies, peerDependencies, devDependencies in package.json\n\n## Context\n\nDependencies are specified using"
  },
  {
    "path": "docs/adr-rework-talend-scripts.md",
    "chars": 1415,
    "preview": "# Rework Talend scripts\n\n## Context\n\nIt would be nide to add a new preset for node applications.\nWhile creating it, it w"
  },
  {
    "path": "eslint.config.mjs",
    "chars": 68,
    "preview": "import config from '@talend/eslint-config';\n\nexport default config;\n"
  },
  {
    "path": "fork/bootstrap-sass/.gitignore",
    "chars": 282,
    "preview": "*.gem\n.sass-cache\nbootstrap.css\nbootstrap-responsive.css\nGemfile.lock\n*.gemfile.lock\n.rvmrc\n.rbenv-version\n\n# Ignore bun"
  },
  {
    "path": "fork/bootstrap-sass/CHANGELOG.md",
    "chars": 10169,
    "preview": "# Changelog\n\n## 5.6.2\n\n### Patch Changes\n\n- 4408b98: chore: upgrade dependencies\n\n## 5.6.1\n\n### Patch Changes\n\n- 6181519"
  },
  {
    "path": "fork/bootstrap-sass/CONTRIBUTING.md",
    "chars": 3468,
    "preview": "# Contributing to bootstrap-sass\n\n## Asset Changes\n\nAny changes to `bootstrap-sass` assets (scss, javascripts, fonts) sh"
  },
  {
    "path": "fork/bootstrap-sass/LICENSE",
    "chars": 1130,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2011-2016 Twitter, Inc\nCopyright (c) 2011-2016 The Bootstrap Authors\n\nPermission is"
  },
  {
    "path": "fork/bootstrap-sass/README.md",
    "chars": 12236,
    "preview": "# Bootstrap 3 for Sass\n\nNote: this is a fork for [Talend/ui](https://github.com/Talend/ui) maintainance reasons. We fix "
  },
  {
    "path": "fork/bootstrap-sass/assets/images/.keep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/affix.js",
    "chars": 4961,
    "preview": "/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://get"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/alert.js",
    "chars": 2336,
    "preview": "/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://get"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/button.js",
    "chars": 3834,
    "preview": "/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://ge"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/carousel.js",
    "chars": 7292,
    "preview": "/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/collapse.js",
    "chars": 6031,
    "preview": "/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js",
    "chars": 4782,
    "preview": "/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/modal.js",
    "chars": 10614,
    "preview": "/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://get"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/popover.js",
    "chars": 3445,
    "preview": "/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://g"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js",
    "chars": 4717,
    "preview": "/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https:/"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/tab.js",
    "chars": 3920,
    "preview": "/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbo"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js",
    "chars": 21137,
    "preview": "/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://g"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap/transition.js",
    "chars": 1839,
    "preview": "/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https:"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap-sprockets.js",
    "chars": 381,
    "preview": "//= require ./bootstrap/affix\n//= require ./bootstrap/alert\n//= require ./bootstrap/button\n//= require ./bootstrap/carou"
  },
  {
    "path": "fork/bootstrap-sass/assets/javascripts/bootstrap.js",
    "chars": 75484,
    "preview": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the MIT licen"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/_bootstrap-compass.scss",
    "chars": 178,
    "preview": "@function twbs-font-path($path) {\n  @return font-url($path, true);\n}\n\n@function twbs-image-path($path) {\n  @return image"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/_bootstrap-mincer.scss",
    "chars": 757,
    "preview": "// Mincer asset helper functions\n//\n// This must be imported into a .css.ejs.scss file.\n// Then, <% %>-interpolations wi"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/_bootstrap-sprockets.scss",
    "chars": 168,
    "preview": "@function twbs-font-path($path) {\n  @return font-path($path);\n}\n\n@function twbs-image-path($path) {\n  @return image-path"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/_bootstrap.scss",
    "chars": 1488,
    "preview": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_alerts.scss",
    "chars": 1546,
    "preview": "//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_badges.scss",
    "chars": 1228,
    "preview": "//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  m"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_breadcrumbs.scss",
    "chars": 700,
    "preview": "//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: $breadcrumb-padding-v"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_button-groups.scss",
    "chars": 5764,
    "preview": "//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-gro"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_buttons.scss",
    "chars": 3819,
    "preview": "//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_carousel.scss",
    "chars": 5759,
    "preview": "//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_close.scss",
    "chars": 835,
    "preview": "//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: ($font-s"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_code.scss",
    "chars": 1417,
    "preview": "//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\nco"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_component-animations.scss",
    "chars": 820,
    "preview": "//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `."
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_dropdowns.scss",
    "chars": 4847,
    "preview": "//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display:"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_forms.scss",
    "chars": 16057,
    "preview": "//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_glyphicons.scss",
    "chars": 20445,
    "preview": "//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus a"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_grid.scss",
    "chars": 1569,
    "preview": "//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container wi"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_input-groups.scss",
    "chars": 4310,
    "preview": "//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.i"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_jumbotron.scss",
    "chars": 1165,
    "preview": "//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top: $jumbotron-padding;\n"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_labels.scss",
    "chars": 1121,
    "preview": "//\n// Labels\n// --------------------------------------------------\n\n.label {\n\tdisplay: inline;\n\tpadding: 0.2em 0.6em 0.3"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_list-group.scss",
    "chars": 3151,
    "preview": "//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_media.scss",
    "chars": 900,
    "preview": ".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_mixins.scss",
    "chars": 986,
    "preview": "// Mixins\n// --------------------------------------------------\n\n// Utilities\n@import \"mixins/hide-text\";\n@import \"mixin"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_modals.scss",
    "chars": 3575,
    "preview": "//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scr"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_navbar.scss",
    "chars": 14749,
    "preview": "//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static n"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_navs.scss",
    "chars": 4950,
    "preview": "//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// ------------------------------------"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_normalize.scss",
    "chars": 7707,
    "preview": "/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-s"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_pager.scss",
    "chars": 855,
    "preview": "//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: $li"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_pagination.scss",
    "chars": 2073,
    "preview": "//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_panels.scss",
    "chars": 6388,
    "preview": "//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: $line-heigh"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_popovers.scss",
    "chars": 3476,
    "preview": "//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_print.scss",
    "chars": 1682,
    "preview": "/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// =============================="
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_progress-bars.scss",
    "chars": 1998,
    "preview": "//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -----------------------"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-embed.scss",
    "chars": 546,
    "preview": "// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display:"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-utilities.scss",
    "chars": 4421,
    "preview": "//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n/"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_scaffolding.scss",
    "chars": 2955,
    "preview": "//\n// Scaffolding\n// --------------------------------------------------\n\n// Reset the box-sizing\n//\n// Heads up! This re"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_tables.scss",
    "chars": 4662,
    "preview": "//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: $table-bg;\n\n  // Table "
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_theme.scss",
    "chars": 8620,
    "preview": "/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_thumbnails.scss",
    "chars": 892,
    "preview": "//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.th"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_tooltip.scss",
    "chars": 3023,
    "preview": "//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  "
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss",
    "chars": 6100,
    "preview": "//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_utilities.scss",
    "chars": 765,
    "preview": "//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.c"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss",
    "chars": 31614,
    "preview": "$bootstrap-sass-asset-helper: false !default;\n//\n// Variables\n// --------------------------------------------------\n\n\n//"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/_wells.scss",
    "chars": 541,
    "preview": "//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding:"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_alerts.scss",
    "chars": 264,
    "preview": "// Alerts\n\n@mixin alert-variant($background, $border, $text-color) {\n  color: $text-color;\n  background-color: $backgrou"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_background-variant.scss",
    "chars": 233,
    "preview": "// Contextual backgrounds\n\n// [converter] $parent hack\n@mixin bg-variant($parent, $color) {\n  #{$parent} {\n    backgroun"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_border-radius.scss",
    "chars": 484,
    "preview": "// Single side border-radius\n\n@mixin border-top-radius($radius) {\n  border-top-left-radius: $radius;\n  border-top-right-"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_buttons.scss",
    "chars": 1375,
    "preview": "// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_center-block.scss",
    "chars": 126,
    "preview": "// Center-align a block level element\n\n@mixin center-block() {\n  display: block;\n  margin-right: auto;\n  margin-left: au"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_clearfix.scss",
    "chars": 611,
    "preview": "// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contentedi"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_forms.scss",
    "chars": 2780,
    "preview": "// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and succ"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_gradients.scss",
    "chars": 4381,
    "preview": "\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and pos"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid-framework.scss",
    "chars": 2379,
    "preview": "// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any va"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid.scss",
    "chars": 3348,
    "preview": "// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n@mixin container-f"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_hide-text.scss",
    "chars": 590,
    "preview": "// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being r"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_image.scss",
    "chars": 1107,
    "preview": "// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n@mixin img-responsive($display: bl"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_labels.scss",
    "chars": 167,
    "preview": "// Labels\n\n@mixin label-variant($color) {\n  background-color: $color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      back"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_list-group.scss",
    "chars": 672,
    "preview": "// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: "
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-divider.scss",
    "chars": 245,
    "preview": "// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss",
    "chars": 390,
    "preview": "// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss",
    "chars": 148,
    "preview": "// Opacity\n\n@mixin opacity($opacity) {\n  $opacity-ie: ($opacity * 100);  // IE8 filter\n  filter: alpha(opacity=$opacity-"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_pagination.scss",
    "chars": 507,
    "preview": "// Pagination\n\n@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) "
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_panels.scss",
    "chars": 543,
    "preview": "// Panels\n\n@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {\n  border-color: $bor"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_progress-bar.scss",
    "chars": 200,
    "preview": "// Progress bars\n\n@mixin progress-bar-variant($color) {\n  background-color: $color;\n\n  // Deprecated parent class requir"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-filter.scss",
    "chars": 246,
    "preview": "// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the I"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-text.scss",
    "chars": 473,
    "preview": "@mixin reset-text() {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: norma"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_resize.scss",
    "chars": 202,
    "preview": "// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflo"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss",
    "chars": 417,
    "preview": "// [converter] $parent hack\n@mixin responsive-visibility($parent) {\n  #{$parent} {\n    display: block !important;\n  }\n  "
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_size.scss",
    "chars": 147,
    "preview": "// Sizing shortcuts\n\n@mixin size($width, $height) {\n  width: $width;\n  height: $height;\n}\n\n@mixin square($size) {\n  @inc"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss",
    "chars": 338,
    "preview": "// WebKit-style focus\n\n@mixin tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_table-row.scss",
    "chars": 715,
    "preview": "// Tables\n\n@mixin table-row-variant($state, $background) {\n  // Exact selectors below required to override `.table-strip"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss",
    "chars": 210,
    "preview": "// Typography\n\n// [converter] $parent hack\n@mixin text-emphasis-variant($parent, $color) {\n  #{$parent} {\n    color: $co"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-overflow.scss",
    "chars": 168,
    "preview": "// Text overflow\n// Requires inline-block or block for proper styling\n\n@mixin text-overflow() {\n  overflow: hidden;\n  te"
  },
  {
    "path": "fork/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss",
    "chars": 6645,
    "preview": "// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our"
  },
  {
    "path": "fork/bootstrap-sass/composer.json",
    "chars": 854,
    "preview": "{\n    \"name\": \"twbs/bootstrap-sass\",\n    \"description\": \"bootstrap-sass is a Sass-powered version of Bootstrap 3, ready "
  },
  {
    "path": "fork/bootstrap-sass/eslint.config.mjs",
    "chars": 68,
    "preview": "import config from '@talend/eslint-config';\n\nexport default config;\n"
  },
  {
    "path": "fork/bootstrap-sass/package.json",
    "chars": 1187,
    "preview": "{\n  \"name\": \"@talend/bootstrap-sass\",\n  \"version\": \"5.6.2\",\n  \"description\": \"bootstrap-sass is a Sass-powered version o"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/.all-contributorsrc",
    "chars": 1429,
    "preview": "{\n  \"projectName\": \"dynamic-cdn-webpack-plugin\",\n  \"projectOwner\": \"mastilver\",\n  \"files\": [\n    \"readme.md\"\n  ],\n  \"ima"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/.gitattributes",
    "chars": 29,
    "preview": "* text=auto\n*.js text eol=lf\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/.gitignore",
    "chars": 103,
    "preview": "/node_modules\n/lib\ntest/fixtures/output\nyarn.lock\n.nyc_output\ncoverage\n!test/fixtures/app/node_modules\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/CHANGELOG.md",
    "chars": 7299,
    "preview": "# CHANGELOG\n\n## 14.5.2\n\n### Patch Changes\n\n- 4408b98: chore: upgrade dependencies\n- Updated dependencies [4408b98]\n  - @"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/__mocks__/fs.js",
    "chars": 1256,
    "preview": "const path = require('path');\n\nconst fs = {};\n\n// This is a custom function that our tests can use during setup to speci"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/eslint.config.mjs",
    "chars": 525,
    "preview": "import js from '@eslint/js';\nimport globals from 'globals';\nimport prettierPlugin from 'eslint-plugin-prettier';\nimport "
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/index.js",
    "chars": 43,
    "preview": "module.exports = require('./src').default;\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/license",
    "chars": 1117,
    "preview": "The MIT License (MIT)\n\nCopyright (c) Thomas Sileghem <th.sileghem@gmail.com> (mastilver.com)\n\nPermission is hereby grant"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/package.json",
    "chars": 1444,
    "preview": "{\n  \"name\": \"@talend/dynamic-cdn-webpack-plugin\",\n  \"version\": \"14.5.2\",\n  \"description\": \"Dynamically get your dependen"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/readme.md",
    "chars": 7762,
    "preview": "# dynamic-cdn-webpack-plugin\n\n[![NPM][npm-icon] ][npm-url]\n\n[npm-icon]: https://img.shields.io/npm/v/@talend/dynamic-cdn"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/src/find.js",
    "chars": 3921,
    "preview": "const fs = require('fs');\nconst path = require('path');\nconst readPkgUp = require('read-pkg-up');\nconst semver = require"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/src/find.test.js",
    "chars": 4125,
    "preview": "/* eslint-disable global-require */\n/* eslint-disable no-underscore-dangle */\nconst path = require('path');\nconst fs = r"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/src/get-resolver.js",
    "chars": 264,
    "preview": "/* eslint-disable global-require */\n/* eslint-disable import/no-dynamic-require */\nfunction getResolver(resolver = '@tal"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/src/index.js",
    "chars": 15698,
    "preview": "/* eslint-disable no-await-in-loop */\n/* eslint-disable consistent-return */\n/* eslint-disable no-param-reassign */\n/* e"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/src/resolve-pkg.js",
    "chars": 640,
    "preview": "const { findPackage } = require('./find');\n\n/* eslint-disable no-empty */\n/**\n *\n * @param {string} moduleId use to requ"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/core.test.js",
    "chars": 19063,
    "preview": "/* eslint-disable no-console */\nconst path = require('path');\nconst fs = require('fs');\n\nconst runWebpack = require('./h"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/async.js",
    "chars": 37,
    "preview": "import('react').then(react => {\n\n});\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/dir/single.js",
    "chars": 27,
    "preview": "import React from 'react';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/mix.js",
    "chars": 82,
    "preview": "import a from 'a';\nimport React from 'react';\n\nimport single from './dir/single';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/multiple.js",
    "chars": 88,
    "preview": "import '@babel/polyfill';\n\nimport React from 'react';\nimport ReactDom from 'react-dom';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/no-export.js",
    "chars": 26,
    "preview": "import '@babel/polyfill';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/package.json",
    "chars": 512,
    "preview": "{\n  \"name\": \"app\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"E"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/peer-dependencies.js",
    "chars": 32,
    "preview": "import ng from '@angular/core';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/require-file.js",
    "chars": 38,
    "preview": "import React from 'react/dist/react';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/single.js",
    "chars": 27,
    "preview": "import React from 'react';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/app/submodule.js",
    "chars": 71,
    "preview": "import { call, put, takeEvery, takeLatest } from 'redux-saga/effects';\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/duplicate-dependencies/index.js",
    "chars": 158,
    "preview": "const a = require('react-ace');\nconst rb = require('react-bootstrap');\nconst ra = require('react-autowhatever');\n\nmodule"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/duplicate-dependencies/package.json",
    "chars": 208,
    "preview": "{\n  \"name\": \"duplicate\",\n  \"version\": \"1.0.0\",\n  \"dependencies\": {\n    \"react-autowhatever\": \"^6.0.0\",\n    \"react-bootst"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/nested-dependencies/index.js",
    "chars": 14,
    "preview": "require('a');\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/nested-dependencies/package.json",
    "chars": 275,
    "preview": "{\n  \"name\": \"nested-dependencies\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \""
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/optional-peer-deps/index.js",
    "chars": 94,
    "preview": "const a = require('react-dnd');\nconst b = require('react-redux');\n\nmodule.exports = { a, b };\n"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/fixtures/optional-peer-deps/package.json",
    "chars": 163,
    "preview": "{\n  \"name\": \"optional-peer-deps\",\n  \"version\": \"1.0.0\",\n  \"dependencies\": {\n    \"react-dnd\": \"^14.0.3\",\n    \"react-redux"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/helpers/clean-dir.js",
    "chars": 167,
    "preview": "// eslint-disable-next-line import/no-extraneous-dependencies\nconst { rimraf } = require('rimraf');\n\nmodule.exports = fu"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/helpers/run-webpack.js",
    "chars": 485,
    "preview": "/* eslint-disable no-param-reassign */\nconst webpack = require('webpack');\n\nmodule.exports = function runWebpack(config)"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/html-webpack-plugin.test.js",
    "chars": 1300,
    "preview": "const path = require('path');\nconst fs = require('fs');\n\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/optional-peer-dep.test.js",
    "chars": 1299,
    "preview": "const path = require('path');\n\nconst runWebpack = require('./helpers/run-webpack');\nconst cleanDir = require('./helpers/"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/test/webpack-manifest-plugin.test.js",
    "chars": 1516,
    "preview": "const path = require('path');\nconst fs = require('fs');\n\nconst { WebpackManifestPlugin } = require('webpack-manifest-plu"
  },
  {
    "path": "fork/dynamic-cdn-webpack-plugin/vitest.config.ts",
    "chars": 265,
    "preview": "import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n\ttest: {\n\t\tglobals: true,\n\t\tenvironment: 'n"
  },
  {
    "path": "fork/json-schema-form-core/.gitignore",
    "chars": 409,
    "preview": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n\n# compiled output\n/dist\n/tmp\n\n# dependencies\n"
  },
  {
    "path": "fork/json-schema-form-core/.jscsrc",
    "chars": 387,
    "preview": "{\n  \"preset\": \"google\",\n  \"disallowSpacesInsideObjectBrackets\": null,\n  \"requireSpacesInsideObjectBrackets\": {\n    \"allE"
  },
  {
    "path": "fork/json-schema-form-core/.mocharc.json",
    "chars": 224,
    "preview": "{\n  \"diff\": true,\n  \"extension\": [\"js\", \"ts\"],\n  \"package\": \"./package.json\",\n  \"reporter\": \"spec\",\n  \"slow\": \"75\",\n  \"t"
  },
  {
    "path": "fork/json-schema-form-core/.travis.yml",
    "chars": 49,
    "preview": "language: node_js\nnode_js:\n  - node\n\nsudo: false\n"
  },
  {
    "path": "fork/json-schema-form-core/CHANGELOG.md",
    "chars": 2952,
    "preview": "# @talend/json-schema-form-core\n\n## 2.1.2\n\n### Patch Changes\n\n- 4408b98: chore: upgrade dependencies\n\n## 2.1.1\n\n### Patc"
  },
  {
    "path": "fork/json-schema-form-core/LICENSE",
    "chars": 1083,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2016 JSON Schema Form\n\nPermission is hereby granted, free of charge, to any person "
  },
  {
    "path": "fork/json-schema-form-core/README.md",
    "chars": 2998,
    "preview": "# JSON Schema Form Core\n\n[![Gitter](https://img.shields.io/badge/GITTER-JOIN%20CHAT%20%E2%86%92-ff69b4.svg?style=flat-sq"
  },
  {
    "path": "fork/json-schema-form-core/eslint.config.mjs",
    "chars": 68,
    "preview": "import config from '@talend/eslint-config';\n\nexport default config;\n"
  },
  {
    "path": "fork/json-schema-form-core/package.json",
    "chars": 2104,
    "preview": "{\n  \"name\": \"@talend/json-schema-form-core\",\n  \"version\": \"2.1.2\",\n  \"description\": \"JSON-Schema and JSON-UI-Schema util"
  },
  {
    "path": "fork/json-schema-form-core/src/canonical-title-map.spec.js",
    "chars": 1899,
    "preview": "import chai from 'chai';\nimport { describe, it } from 'mocha';\n\nimport canonicalTitleMap from './canonical-title-map';\n\n"
  },
  {
    "path": "fork/json-schema-form-core/src/canonical-title-map.ts",
    "chars": 503,
    "preview": "// Takes a titleMap in either object or list format and returns one\n// in the list format.\nexport default function (titl"
  },
  {
    "path": "fork/json-schema-form-core/src/index.js",
    "chars": 692,
    "preview": "import tv4index from 'tv4';\n\n// eslint-disable-next-line prettier/prettier\nimport * as schemaDefaultsImp from './schema-"
  },
  {
    "path": "fork/json-schema-form-core/src/merge.js",
    "chars": 3907,
    "preview": "import canonicalTitleMap from './canonical-title-map';\nimport { createDefaults, defaultForm } from './schema-defaults';\n"
  },
  {
    "path": "fork/json-schema-form-core/src/merge.spec.js",
    "chars": 4665,
    "preview": "import chai from 'chai';\nimport { describe, it } from 'mocha';\n\nimport { merge } from './merge';\nimport { createDefaults"
  },
  {
    "path": "fork/json-schema-form-core/src/module.spec.js",
    "chars": 666,
    "preview": "import chai from 'chai';\nimport { describe, it } from 'mocha';\n\nimport {\n\tcanonicalTitleMap,\n\tjsonref,\n\tmerge,\n\tschemaDe"
  },
  {
    "path": "fork/json-schema-form-core/src/resolve.js",
    "chars": 523,
    "preview": "import * as JsonRefs from 'json-refs';\n\nexport function jsonref(schema, callBack) {\n\tlet promise = new Promise(function "
  },
  {
    "path": "fork/json-schema-form-core/src/resolve.spec.js",
    "chars": 3325,
    "preview": "import chai from 'chai';\nimport { describe, it } from 'mocha';\n\nimport { jsonref } from './resolve';\n\nchai.should();\n\nde"
  }
]

// ... and 4382 more files (download for full content)

About this extraction

This page contains the full source code of the Talend/ui GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4582 files (14.8 MB), approximately 4.2M tokens, and a symbol index with 4127 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!