├── .coveragerc ├── .gitattributes ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── code_improvement.md │ ├── config.yml │ ├── documentation.md │ ├── feature_request.md │ └── question.md ├── scripts │ └── override-version.sh └── workflows │ ├── create-docker-image.yml │ ├── nightly-release.yml │ ├── pull-request.yml │ └── python-package.yml ├── .gitignore ├── .readthedocs.yaml ├── CHANGELOG.md ├── CITATION.cff ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── aim ├── VERSION ├── __about__.py ├── __init__.py ├── __version__.py ├── acme.py ├── catboost.py ├── cli │ ├── __init__.py │ ├── cli.py │ ├── configs.py │ ├── convert │ │ ├── __init__.py │ │ ├── commands.py │ │ └── processors │ │ │ ├── __init__.py │ │ │ ├── mlflow.py │ │ │ ├── tensorboard.py │ │ │ └── wandb.py │ ├── init │ │ ├── __init__.py │ │ └── commands.py │ ├── manager │ │ ├── __init__.py │ │ └── manager.py │ ├── runs │ │ ├── __init__.py │ │ ├── commands.py │ │ └── utils.py │ ├── server │ │ ├── __init__.py │ │ └── commands.py │ ├── storage │ │ ├── __init__.py │ │ └── commands.py │ ├── up │ │ ├── __init__.py │ │ └── commands.py │ ├── utils.py │ ├── version │ │ ├── __init__.py │ │ └── commands.py │ └── watcher_cli.py ├── distributed_hugging_face.py ├── ext │ ├── __init__.py │ ├── cleanup │ │ └── __init__.py │ ├── exception_resistant.py │ ├── notebook │ │ ├── __init__.py │ │ └── notebook.py │ ├── notifier │ │ ├── __init__.py │ │ ├── base_notifier.py │ │ ├── config.py │ │ ├── config_default.json │ │ ├── config_empty.json │ │ ├── logging_notifier.py │ │ ├── notifier.py │ │ ├── notifier_builder.py │ │ ├── slack_notifier.py │ │ ├── utils.py │ │ └── workplace_notifier.py │ ├── pynvml.py │ ├── resource │ │ ├── __init__.py │ │ ├── configs.py │ │ ├── log.py │ │ ├── stat.py │ │ ├── tracker.py │ │ └── utils.py │ ├── sshfs │ │ ├── __init__.py │ │ └── utils.py │ ├── task_queue │ │ ├── __init__.py │ │ └── queue.py │ ├── tensorboard_tracker │ │ ├── __init__.py │ │ ├── run.py │ │ └── tracker.py │ ├── transport │ │ ├── __init__.py │ │ ├── client.py │ │ ├── config.py │ │ ├── handlers.py │ │ ├── heartbeat.py │ │ ├── message_utils.py │ │ ├── remote_resource.py │ │ ├── request_queue.py │ │ ├── router.py │ │ ├── run.py │ │ ├── server.py │ │ ├── tracking.py │ │ └── utils.py │ └── utils.py ├── fastai.py ├── hf_dataset.py ├── hugging_face.py ├── keras.py ├── keras_tuner.py ├── lightgbm.py ├── mxnet.py ├── optuna.py ├── paddle.py ├── prophet.py ├── py.typed ├── pytorch.py ├── pytorch_ignite.py ├── pytorch_lightning.py ├── sb3.py ├── scripts │ └── sagemaker │ │ └── on-start.sh ├── sdk │ ├── __init__.py │ ├── adapters │ │ ├── __init__.py │ │ ├── acme.py │ │ ├── catboost.py │ │ ├── distributed_hugging_face.py │ │ ├── fastai.py │ │ ├── hugging_face.py │ │ ├── keras.py │ │ ├── keras_mixins.py │ │ ├── keras_tuner.py │ │ ├── lightgbm.py │ │ ├── mxnet.py │ │ ├── optuna.py │ │ ├── paddle.py │ │ ├── prophet.py │ │ ├── pytorch.py │ │ ├── pytorch_ignite.py │ │ ├── pytorch_lightning.py │ │ ├── sb3.py │ │ ├── tensorflow.py │ │ └── xgboost.py │ ├── base_run.py │ ├── callbacks │ │ ├── __init__.py │ │ ├── caller.py │ │ ├── events.py │ │ └── helpers.py │ ├── configs.py │ ├── data_version.py │ ├── errors.py │ ├── index_manager.py │ ├── lock_manager.py │ ├── logging │ │ ├── __init__.py │ │ └── log_record.py │ ├── maintenance_run.py │ ├── num_utils.py │ ├── objects │ │ ├── __init__.py │ │ ├── artifact.py │ │ ├── audio.py │ │ ├── distribution.py │ │ ├── figure.py │ │ ├── image.py │ │ ├── io │ │ │ ├── __init__.py │ │ │ └── wavfile.py │ │ ├── plugins │ │ │ ├── __init__.py │ │ │ ├── deeplake_dataset.py │ │ │ ├── dvc_metadata.py │ │ │ ├── hf_datasets_metadata.py │ │ │ └── hub_dataset.py │ │ └── text.py │ ├── query_analyzer.py │ ├── query_utils.py │ ├── remote_repo_proxy.py │ ├── remote_run_reporter.py │ ├── repo.py │ ├── repo_utils.py │ ├── reporter │ │ ├── __init__.py │ │ └── file_manager.py │ ├── run.py │ ├── run_status_manager.py │ ├── run_status_watcher.py │ ├── sequence.py │ ├── sequence_collection.py │ ├── sequences │ │ ├── __init__.py │ │ ├── audio_sequence.py │ │ ├── distribution_sequence.py │ │ ├── figure_sequence.py │ │ ├── image_sequence.py │ │ ├── metric.py │ │ ├── sequence_type_map.py │ │ └── text_sequence.py │ ├── tracker.py │ ├── training_flow.py │ ├── types.py │ ├── uri_service.py │ └── utils.py ├── storage │ ├── __init__.py │ ├── arrayview.pxd │ ├── arrayview.py │ ├── artifacts │ │ ├── __init__.py │ │ ├── artifact_registry.py │ │ ├── artifact_storage.py │ │ ├── filesystem_storage.py │ │ └── s3_storage.py │ ├── container.pxd │ ├── container.py │ ├── containertreeview.pxd │ ├── containertreeview.py │ ├── context.py │ ├── encoding │ │ ├── __init__.pxd │ │ ├── __init__.py │ │ ├── encoding.pxd │ │ ├── encoding.pyx │ │ ├── encoding_native.pxd │ │ └── encoding_native.pyx │ ├── env.py │ ├── hashing │ │ ├── __init__.pxd │ │ ├── __init__.py │ │ ├── c_hash.pxd │ │ ├── c_hash.pyi │ │ ├── c_hash.pyx │ │ ├── c_hash.pyxbld │ │ ├── hash │ │ │ └── hash.h │ │ ├── hashing.pxd │ │ └── hashing.py │ ├── inmemorytreeview.pxd │ ├── inmemorytreeview.py │ ├── lock_proxy.py │ ├── locking.py │ ├── migrations │ │ ├── README │ │ ├── __init__.py │ │ ├── alembic.ini │ │ ├── alembic_dev.ini │ │ ├── env.py │ │ ├── script.py.mako │ │ ├── utils.py │ │ └── versions │ │ │ ├── 1ecf8222220d_initial_schema.py │ │ │ ├── 3c4f22db7a46_run_end_time.py │ │ │ ├── 46b89d830ad8_.py │ │ │ ├── 9ba30ab3b2b4_.py │ │ │ ├── b07e7b07c8ce_.py │ │ │ └── fbfe5c4702fb_soft_delete.py │ ├── object.py │ ├── prefixview.pxd │ ├── prefixview.py │ ├── proxy.py │ ├── query.py │ ├── rockscontainer.pyx │ ├── structured │ │ ├── __init__.py │ │ ├── db.py │ │ ├── entities.py │ │ ├── proxy.py │ │ └── sql_engine │ │ │ ├── __init__.py │ │ │ ├── entities.py │ │ │ ├── factory.py │ │ │ ├── models.py │ │ │ └── utils.py │ ├── treearrayview.pxd │ ├── treearrayview.py │ ├── treeutils.pyx │ ├── treeutils_non_native.py │ ├── treeview.pxd │ ├── treeview.py │ ├── treeviewproxy.py │ ├── types.py │ ├── union.pyx │ ├── utils.pxd │ └── utils.py ├── tensorflow.py ├── utils │ ├── __init__.py │ └── deprecation.py ├── web │ ├── .gitignore │ ├── __init__.py │ ├── api │ │ ├── __init__.py │ │ ├── dashboard_apps │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ ├── pydantic_models.py │ │ │ ├── serializers.py │ │ │ └── views.py │ │ ├── dashboards │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ ├── pydantic_models.py │ │ │ ├── serializers.py │ │ │ └── views.py │ │ ├── db.py │ │ ├── experiments │ │ │ ├── __init__.py │ │ │ ├── pydantic_models.py │ │ │ └── views.py │ │ ├── projects │ │ │ ├── __init__.py │ │ │ ├── project.py │ │ │ ├── pydantic_models.py │ │ │ └── views.py │ │ ├── reports │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ ├── pydantic_models.py │ │ │ ├── serializers.py │ │ │ └── views.py │ │ ├── runs │ │ │ ├── __init__.py │ │ │ ├── object_api_utils.py │ │ │ ├── object_views.py │ │ │ ├── pydantic_models.py │ │ │ ├── utils.py │ │ │ └── views.py │ │ ├── tags │ │ │ ├── __init__.py │ │ │ ├── pydantic_models.py │ │ │ └── views.py │ │ ├── utils.py │ │ └── views.py │ ├── configs.py │ ├── middlewares │ │ ├── __init__.py │ │ └── profiler │ │ │ ├── __init__.py │ │ │ └── profiler.py │ ├── migrations │ │ ├── README │ │ ├── alembic.ini │ │ ├── alembic_dev.ini │ │ ├── env.py │ │ ├── script.py.mako │ │ └── versions │ │ │ ├── 11672b13f92c_.py │ │ │ ├── 3d5fd76e8485_.py │ │ │ ├── 517a45b2e62c_.py │ │ │ ├── 5ae8371b7481_.py │ │ │ └── 73a3d004c227_.py │ ├── run.py │ ├── ui │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── .prettierrc │ │ ├── .storybook │ │ │ ├── main.js │ │ │ ├── preview-body.html │ │ │ ├── preview-head.html │ │ │ └── preview.js │ │ ├── aim_ui │ │ │ ├── VERSION │ │ │ ├── __init__.py │ │ │ └── build │ │ ├── config-overrides.js │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── public │ │ │ ├── aim_ui_core.py │ │ │ ├── assets │ │ │ │ ├── icomoon │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── icomoon.eot │ │ │ │ │ │ ├── icomoon.svg │ │ │ │ │ │ ├── icomoon.ttf │ │ │ │ │ │ └── icomoon.woff │ │ │ │ │ ├── icomoonIcons.css │ │ │ │ │ └── selection.json │ │ │ │ ├── inconsolata │ │ │ │ │ ├── fonts │ │ │ │ │ │ └── Inconsolata.ttf │ │ │ │ │ └── inconsolata.css │ │ │ │ └── inter │ │ │ │ │ ├── fonts │ │ │ │ │ └── Inter.ttf │ │ │ │ │ └── inter.css │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── setup.py │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.test.tsx │ │ │ ├── App.tsx │ │ │ ├── assets │ │ │ │ ├── experiments.svg │ │ │ │ ├── icons │ │ │ │ │ ├── arrow-up.svg │ │ │ │ │ ├── debug.svg │ │ │ │ │ ├── discord.svg │ │ │ │ │ ├── dropdown-arrow-down.svg │ │ │ │ │ ├── dropdown-arrow-up.svg │ │ │ │ │ ├── github.svg │ │ │ │ │ ├── notifications │ │ │ │ │ │ ├── error.svg │ │ │ │ │ │ ├── info.svg │ │ │ │ │ │ ├── success.svg │ │ │ │ │ │ └── warning.svg │ │ │ │ │ └── slack.svg │ │ │ │ ├── illustrations │ │ │ │ │ ├── emptyBookmarks.svg │ │ │ │ │ ├── emptySearch.svg │ │ │ │ │ ├── exploreData.svg │ │ │ │ │ └── wrongSearch.svg │ │ │ │ ├── logo.svg │ │ │ │ ├── polka-dots.svg │ │ │ │ └── runs.svg │ │ │ ├── components │ │ │ │ ├── AggregationPopover │ │ │ │ │ ├── AggregationPopover.scss │ │ │ │ │ └── AggregationPopover.tsx │ │ │ │ ├── AppBar │ │ │ │ │ ├── AppBar.scss │ │ │ │ │ └── AppBar.tsx │ │ │ │ ├── AttachedTagsList │ │ │ │ │ ├── AttachedTagsList.scss │ │ │ │ │ └── AttachedTagsList.tsx │ │ │ │ ├── AudioBox │ │ │ │ │ ├── AudioBox.d.ts │ │ │ │ │ ├── AudioBox.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AudioPlayer │ │ │ │ │ ├── AudioDownloadsControl.tsx │ │ │ │ │ ├── AudioPlayControl.tsx │ │ │ │ │ ├── AudioPlayer.tsx │ │ │ │ │ ├── AudioPlayerCloseButton.tsx │ │ │ │ │ ├── AudioVolumeControl.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── state │ │ │ │ │ │ ├── actions.ts │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ ├── player.ts │ │ │ │ │ │ └── reducer.ts │ │ │ │ ├── AutocompleteInput │ │ │ │ │ ├── AutocompleteInput.d.ts │ │ │ │ │ ├── AutocompleteInput.scss │ │ │ │ │ ├── AutocompleteInput.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── AxesPropsPopover │ │ │ │ │ ├── AxesPropsPopover.d.ts │ │ │ │ │ ├── AxesPropsPopover.scss │ │ │ │ │ ├── AxesPropsPopover.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── AxesScalePopover │ │ │ │ │ ├── AxesScalePopover.scss │ │ │ │ │ └── AxesScalePopover.tsx │ │ │ │ ├── BookmarkForm │ │ │ │ │ └── BookmarkForm.tsx │ │ │ │ ├── BusyLoaderWrapper │ │ │ │ │ ├── BusyLoaderWrapper.scss │ │ │ │ │ └── BusyLoaderWrapper.tsx │ │ │ │ ├── ChartLoader │ │ │ │ │ ├── ChartLoader.scss │ │ │ │ │ └── ChartLoader.tsx │ │ │ │ ├── ChartPanel │ │ │ │ │ ├── ChartGrid │ │ │ │ │ │ ├── ChartGrid.d.ts │ │ │ │ │ │ ├── ChartGrid.scss │ │ │ │ │ │ ├── ChartGrid.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ChartLegends │ │ │ │ │ │ ├── ChartLegends.d.ts │ │ │ │ │ │ ├── ChartLegends.scss │ │ │ │ │ │ ├── ChartLegends.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ChartPanel.scss │ │ │ │ │ ├── ChartPanel.tsx │ │ │ │ │ ├── ChartPopover │ │ │ │ │ │ ├── ChartPopover.scss │ │ │ │ │ │ ├── ChartPopover.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── PopoverContent │ │ │ │ │ │ ├── PopoverContent.scss │ │ │ │ │ │ └── PopoverContent.tsx │ │ │ │ │ └── config.ts │ │ │ │ ├── Charts │ │ │ │ │ └── ScatterPlot │ │ │ │ │ │ ├── Axis │ │ │ │ │ │ └── Axis.tsx │ │ │ │ │ │ ├── Circles │ │ │ │ │ │ └── Circles.tsx │ │ │ │ │ │ ├── ScatterPlot.tsx │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ ├── styles.scss │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ ├── util.ts │ │ │ │ │ │ └── withResize.tsx │ │ │ │ ├── CodeBlock │ │ │ │ │ ├── CodeBlock.scss │ │ │ │ │ └── CodeBlock.tsx │ │ │ │ ├── CommunityPopup │ │ │ │ │ ├── CommunityPopup.d.ts │ │ │ │ │ ├── CommunityPopup.scss │ │ │ │ │ ├── CommunityPopup.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ConfirmModal │ │ │ │ │ ├── ConfirmModal.scss │ │ │ │ │ └── ConfirmModal.tsx │ │ │ │ ├── ContributionsFeed │ │ │ │ │ ├── ContributionsFeed.d.ts │ │ │ │ │ ├── ContributionsFeed.scss │ │ │ │ │ ├── ContributionsFeed.tsx │ │ │ │ │ ├── FeedItem │ │ │ │ │ │ ├── FeedItem.d.ts │ │ │ │ │ │ ├── FeedItem.scss │ │ │ │ │ │ ├── FeedItem.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── ControlPopover │ │ │ │ │ ├── ControlPopover.scss │ │ │ │ │ ├── ControlPopover.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── CopyToClipBoard │ │ │ │ │ └── CopyToClipBoard.tsx │ │ │ │ ├── CustomTable │ │ │ │ │ ├── Table.scss │ │ │ │ │ ├── Table.tsx │ │ │ │ │ ├── TableCell.tsx │ │ │ │ │ ├── TableColumn.tsx │ │ │ │ │ └── TablePopover.tsx │ │ │ │ ├── DepthDropdown │ │ │ │ │ ├── DepthDropdown.d.ts │ │ │ │ │ ├── DepthDropdown.scss │ │ │ │ │ ├── DepthDropdown.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── DepthSlider │ │ │ │ │ ├── DepthSlider.d.ts │ │ │ │ │ ├── DepthSlider.scss │ │ │ │ │ ├── DepthSlider.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ErrorBoundary │ │ │ │ │ ├── ErrorBoundary.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ExperimentNameBox │ │ │ │ │ ├── ExperimentNameBox.d.ts │ │ │ │ │ ├── ExperimentNameBox.scss │ │ │ │ │ ├── ExperimentNameBox.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ExportPreview │ │ │ │ │ ├── ExportPreview.d.ts │ │ │ │ │ ├── ExportPreview.scss │ │ │ │ │ ├── ExportPreview.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── FigureBox │ │ │ │ │ ├── FigureBox.d.ts │ │ │ │ │ ├── FigureBox.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── GroupConfigPopover │ │ │ │ │ ├── GroupConfigPopover.scss │ │ │ │ │ └── GroupConfigPopover.tsx │ │ │ │ ├── Grouping │ │ │ │ │ ├── Grouping.scss │ │ │ │ │ └── Grouping.tsx │ │ │ │ ├── GroupingItem │ │ │ │ │ ├── GroupingItem.scss │ │ │ │ │ └── GroupingItem.tsx │ │ │ │ ├── GroupingPopover │ │ │ │ │ ├── GroupingPopover.scss │ │ │ │ │ └── GroupingPopover.tsx │ │ │ │ ├── HeatMap │ │ │ │ │ ├── HeatMap.tsx │ │ │ │ │ └── HeatMapStyle.scss │ │ │ │ ├── HighPlot │ │ │ │ │ ├── HighPlot.scss │ │ │ │ │ └── HighPlot.tsx │ │ │ │ ├── HighlightModesPopover │ │ │ │ │ ├── HighlightModePopover.scss │ │ │ │ │ └── HighlightModesPopover.tsx │ │ │ │ ├── Illustration │ │ │ │ │ ├── Illustration.d.ts │ │ │ │ │ ├── Illustration.scss │ │ │ │ │ ├── Illustration.tsx │ │ │ │ │ ├── config.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── IllustrationBlock │ │ │ │ │ ├── IllustrationBlock.scss │ │ │ │ │ └── IllustrationBlock.tsx │ │ │ │ ├── ImageBox │ │ │ │ │ ├── ImageBox.d.ts │ │ │ │ │ ├── ImageBox.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ImageFullViewPopover │ │ │ │ │ ├── ImageFullViewPopover.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── types.d.ts │ │ │ │ ├── ImagePropertiesPopover │ │ │ │ │ ├── ImagePropertiesPopover.d.ts │ │ │ │ │ ├── ImagePropertiesPopover.scss │ │ │ │ │ ├── ImagePropertiesPopover.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── LineChart │ │ │ │ │ ├── LineChart.scss │ │ │ │ │ └── LineChart.tsx │ │ │ │ ├── LiveUpdateSettings │ │ │ │ │ ├── LiveUpdateSettings.scss │ │ │ │ │ └── LiveUpdateSettings.tsx │ │ │ │ ├── MediaList │ │ │ │ │ ├── ImageBox.tsx │ │ │ │ │ ├── MediaList.d.ts │ │ │ │ │ ├── MediaList.scss │ │ │ │ │ ├── MediaList.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MediaPanel │ │ │ │ │ ├── MediaPanel.d.ts │ │ │ │ │ ├── MediaPanel.scss │ │ │ │ │ ├── MediaPanel.tsx │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── MediaSet │ │ │ │ │ ├── MediaSet.d.ts │ │ │ │ │ ├── MediaSet.scss │ │ │ │ │ └── MediaSet.tsx │ │ │ │ ├── NameAndDescriptionCard │ │ │ │ │ ├── NameAndDescriptionCard.d.ts │ │ │ │ │ ├── NameAndDescriptionCard.scss │ │ │ │ │ ├── NameAndDescriptionCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── NotificationContainer │ │ │ │ │ ├── NotificationContainer.d.ts │ │ │ │ │ ├── NotificationContainer.scss │ │ │ │ │ ├── NotificationContainer.tsx │ │ │ │ │ ├── NotificationContainerStore.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useNotificationContainer.tsx │ │ │ │ ├── NotificationServiceContainer │ │ │ │ │ ├── NotificationServiceContainer.tsx │ │ │ │ │ └── NotificationServiceStore.tsx │ │ │ │ ├── ProgressBar │ │ │ │ │ ├── ProgressBar.d.ts │ │ │ │ │ ├── ProgressBar.scss │ │ │ │ │ └── ProgressBar.tsx │ │ │ │ ├── ProjectWrapper │ │ │ │ │ └── ProjectWrapper.tsx │ │ │ │ ├── RangePanel │ │ │ │ │ ├── RangePanel.d.ts │ │ │ │ │ ├── RangePanel.scss │ │ │ │ │ ├── RangePanel.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ReleaseNoteItem │ │ │ │ │ ├── ReleaseNoteItem.d.ts │ │ │ │ │ ├── ReleaseNoteItem.scss │ │ │ │ │ └── ReleaseNoteItem.tsx │ │ │ │ ├── ResizeElement │ │ │ │ │ ├── ResizableElement.d.ts │ │ │ │ │ ├── ResizableElement.tsx │ │ │ │ │ ├── ResizeElement.d.ts │ │ │ │ │ ├── ResizeElement.scss │ │ │ │ │ ├── ResizeElement.tsx │ │ │ │ │ ├── context.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── ResizeModeActions │ │ │ │ │ ├── ResizeModeActions.scss │ │ │ │ │ └── ResizeModeActions.tsx │ │ │ │ ├── ResizePanel │ │ │ │ │ ├── ResizePanel.scss │ │ │ │ │ └── ResizePanel.tsx │ │ │ │ ├── ResizingFallback │ │ │ │ │ ├── ResizingFallback.scss │ │ │ │ │ ├── ResizingFallback.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── RouteLeavingGuard │ │ │ │ │ ├── RouteLeavingGuard.d.ts │ │ │ │ │ ├── RouteLeavingGuard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── RunCreatorBox │ │ │ │ │ ├── RunCreatorBox.d.ts │ │ │ │ │ ├── RunCreatorBox.scss │ │ │ │ │ ├── RunCreatorBox.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ScatterPlot │ │ │ │ │ ├── ScatterPlot.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── types.d.ts │ │ │ │ ├── SelectTag │ │ │ │ │ ├── SelectTag.scss │ │ │ │ │ └── SelectTag.tsx │ │ │ │ ├── SideBar │ │ │ │ │ ├── SideBar.tsx │ │ │ │ │ └── Sidebar.scss │ │ │ │ ├── SliderWithInput │ │ │ │ │ ├── SliderWithInput.scss │ │ │ │ │ ├── SliderWithInput.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.d.ts │ │ │ │ ├── SmoothingPopover │ │ │ │ │ ├── SmoothingPopover.scss │ │ │ │ │ └── SmoothingPopover.tsx │ │ │ │ ├── SplitPane │ │ │ │ │ ├── SplitPane.d.ts │ │ │ │ │ ├── SplitPane.scss │ │ │ │ │ ├── SplitPane.tsx │ │ │ │ │ ├── SplitPaneItem.d.ts │ │ │ │ │ ├── SplitPaneItem.tsx │ │ │ │ │ ├── context.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── StatisticsBar │ │ │ │ │ ├── StatisticsBar.d.ts │ │ │ │ │ ├── StatisticsBar.scss │ │ │ │ │ ├── StatisticsBar.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── StatisticsCard │ │ │ │ │ ├── StatisticsCard.d.ts │ │ │ │ │ ├── StatisticsCard.scss │ │ │ │ │ ├── StatisticsCard.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── StatusLabel │ │ │ │ │ ├── StatusLabel.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── types.d.ts │ │ │ │ ├── StepsDensityPopover │ │ │ │ │ └── StepsDensityPopover.tsx │ │ │ │ ├── TabPanel │ │ │ │ │ └── TabPanel.tsx │ │ │ │ ├── Table │ │ │ │ │ ├── ArchiveModal.tsx │ │ │ │ │ ├── AutoResizer.tsx │ │ │ │ │ ├── BaseTable.scss │ │ │ │ │ ├── BaseTable.tsx │ │ │ │ │ ├── Column.tsx │ │ │ │ │ ├── ColumnManager.ts │ │ │ │ │ ├── ColumnResizer.tsx │ │ │ │ │ ├── DeleteModal.tsx │ │ │ │ │ ├── ExpandIcon.tsx │ │ │ │ │ ├── GridTable.tsx │ │ │ │ │ ├── GroupedColumnHeader.tsx │ │ │ │ │ ├── RunNameColumn.tsx │ │ │ │ │ ├── SortIndicator.tsx │ │ │ │ │ ├── SortOrder.ts │ │ │ │ │ ├── Table.scss │ │ │ │ │ ├── Table.tsx │ │ │ │ │ ├── TableCell.tsx │ │ │ │ │ ├── TableHeader.tsx │ │ │ │ │ ├── TableHeaderCell.tsx │ │ │ │ │ ├── TableHeaderRow.tsx │ │ │ │ │ ├── TableRow.tsx │ │ │ │ │ ├── TableSortIcons.tsx │ │ │ │ │ └── utils.ts │ │ │ │ ├── TableLoader │ │ │ │ │ ├── TableLoader.scss │ │ │ │ │ └── TableLoader.tsx │ │ │ │ ├── TagForm │ │ │ │ │ ├── TagForm.scss │ │ │ │ │ └── TagForm.tsx │ │ │ │ ├── Theme │ │ │ │ │ └── Theme.tsx │ │ │ │ ├── TooltipContentPopover │ │ │ │ │ ├── TooltipContentPopover.scss │ │ │ │ │ └── TooltipContentPopover.tsx │ │ │ │ ├── TrendlineOptionsPopover │ │ │ │ │ ├── TrendlineOptionsPopover.d.ts │ │ │ │ │ ├── TrendlineOptionsPopover.scss │ │ │ │ │ ├── TrendlineOptionsPopover.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── VisualizationLegends │ │ │ │ │ ├── VisualizationLegends.d.ts │ │ │ │ │ ├── VisualizationLegends.scss │ │ │ │ │ ├── VisualizationLegends.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── VisualizationTooltip │ │ │ │ │ ├── VisualizationTooltip.d.ts │ │ │ │ │ ├── VisualizationTooltip.scss │ │ │ │ │ ├── VisualizationTooltip.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── ZoomInPopover │ │ │ │ │ ├── ZoomInPopover.scss │ │ │ │ │ └── ZoomInPopover.tsx │ │ │ │ ├── ZoomOutPopover │ │ │ │ │ ├── ZoomOutPopover.scss │ │ │ │ │ └── ZoomOutPopover.tsx │ │ │ │ ├── kit │ │ │ │ │ ├── ActionCard │ │ │ │ │ │ ├── ActionCard.d.ts │ │ │ │ │ │ ├── ActionCard.scss │ │ │ │ │ │ ├── ActionCard.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── AlertBanner │ │ │ │ │ │ ├── AlertBanner.d.ts │ │ │ │ │ │ ├── AlertBanner.scss │ │ │ │ │ │ ├── AlertBanner.tsx │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── AudioBox │ │ │ │ │ │ ├── AudioBox.d.ts │ │ │ │ │ │ ├── AudioBox.scss │ │ │ │ │ │ ├── AudioBox.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── AutoSuggestions │ │ │ │ │ │ ├── AutoSuggestions.d.ts │ │ │ │ │ │ ├── AutoSuggestions.scss │ │ │ │ │ │ ├── AutoSuggestions.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Badge │ │ │ │ │ │ ├── Badge.d.ts │ │ │ │ │ │ ├── Badge.scss │ │ │ │ │ │ ├── Badge.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Button │ │ │ │ │ │ ├── Button.d.ts │ │ │ │ │ │ ├── Button.scss │ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Card │ │ │ │ │ │ ├── Card.d.ts │ │ │ │ │ │ ├── Card.scss │ │ │ │ │ │ ├── Card.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── DataList │ │ │ │ │ │ ├── DataList.d.ts │ │ │ │ │ │ ├── DataList.scss │ │ │ │ │ │ ├── DataList.tsx │ │ │ │ │ │ ├── SearchBar │ │ │ │ │ │ │ ├── SearchBar.scss │ │ │ │ │ │ │ ├── SearchBar.tsx │ │ │ │ │ │ │ ├── SearchInput │ │ │ │ │ │ │ │ ├── EndAdornment.tsx │ │ │ │ │ │ │ │ ├── SearchInput.scss │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ │ └── useTextSearch.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── DictVisualizer │ │ │ │ │ │ ├── DictVisualizer.d.ts │ │ │ │ │ │ ├── DictVisualizer.scss │ │ │ │ │ │ ├── DictVisualizer.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Dropdown │ │ │ │ │ │ ├── Dropdown.d.ts │ │ │ │ │ │ ├── Dropdown.scss │ │ │ │ │ │ ├── Dropdown.tsx │ │ │ │ │ │ ├── DropdownCustomOption.tsx │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Icon │ │ │ │ │ │ ├── Icon.d.ts │ │ │ │ │ │ ├── Icon.scss │ │ │ │ │ │ ├── Icon.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Input │ │ │ │ │ │ ├── Input.d.ts │ │ │ │ │ │ ├── Input.scss │ │ │ │ │ │ ├── Input.test.tsx │ │ │ │ │ │ ├── Input.tsx │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Input.test.tsx.snap │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── JsonViewPopover │ │ │ │ │ │ ├── JsonViewPopover.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── styles.scss │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── ListItem │ │ │ │ │ │ ├── Index.ts │ │ │ │ │ │ ├── ListItem.d.ts │ │ │ │ │ │ └── ListItem.tsx │ │ │ │ │ ├── Menu │ │ │ │ │ │ ├── Menu.scss │ │ │ │ │ │ ├── Menu.tsx │ │ │ │ │ │ ├── MenuItem.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── Modal │ │ │ │ │ │ ├── Modal.d.ts │ │ │ │ │ │ ├── Modal.scss │ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── SelectDropdown │ │ │ │ │ │ ├── SelectDropdown.d.ts │ │ │ │ │ │ ├── SelectDropdown.scss │ │ │ │ │ │ ├── SelectDropdown.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Slider │ │ │ │ │ │ ├── Slider.d.ts │ │ │ │ │ │ ├── Slider.scss │ │ │ │ │ │ ├── Slider.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Spinner │ │ │ │ │ │ ├── Spinner.d.ts │ │ │ │ │ │ ├── Spinner.scss │ │ │ │ │ │ ├── Spinner.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Switcher │ │ │ │ │ │ ├── Switcher.d.ts │ │ │ │ │ │ ├── Switcher.scss │ │ │ │ │ │ ├── Switcher.test.tsx │ │ │ │ │ │ ├── Switcher.tsx │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Switcher.test.tsx.snap │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Test │ │ │ │ │ │ ├── Test.test.tsx │ │ │ │ │ │ ├── Test.tsx │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ └── Test.test.tsx.snap │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── styles.scss │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── Text │ │ │ │ │ │ ├── Text.d.ts │ │ │ │ │ │ ├── Text.scss │ │ │ │ │ │ ├── Text.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ToggleButton │ │ │ │ │ │ ├── ToggleButton.d.ts │ │ │ │ │ │ ├── ToggleButton.scss │ │ │ │ │ │ ├── ToggleButton.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ └── kit_v2 │ │ │ │ │ ├── AudioPlayer │ │ │ │ │ ├── AudioPlayer.d.ts │ │ │ │ │ ├── AudioPlayer.scss │ │ │ │ │ ├── AudioPlayer.tsx │ │ │ │ │ ├── AudioPlayerProgress │ │ │ │ │ │ ├── AudioPlayerProgress.d.ts │ │ │ │ │ │ ├── AudioPlayerProgress.scss │ │ │ │ │ │ ├── AudioPlayerProgress.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── AudioPlayerVolume │ │ │ │ │ │ ├── AudioPlayerVolume.d.ts │ │ │ │ │ │ ├── AudioPlayerVolume.scss │ │ │ │ │ │ ├── AudioPlayerVolume.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Badge │ │ │ │ │ ├── Badge.d.ts │ │ │ │ │ ├── Badge.style.ts │ │ │ │ │ ├── Badge.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Box │ │ │ │ │ ├── Box.d.ts │ │ │ │ │ ├── Box.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Breadcrumb │ │ │ │ │ ├── BreadCrumb.d.ts │ │ │ │ │ ├── Breadcrumb.style.ts │ │ │ │ │ ├── Breadcrumb.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Button │ │ │ │ │ ├── Button.d.ts │ │ │ │ │ ├── Button.style.ts │ │ │ │ │ ├── Button.test.tsx │ │ │ │ │ ├── Button.tsx │ │ │ │ │ ├── buttonConfig.ts │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ButtonGroup │ │ │ │ │ ├── ButtonGroup.d.ts │ │ │ │ │ ├── ButtonGroup.style.ts │ │ │ │ │ ├── ButtonGroup.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Checkbox │ │ │ │ │ ├── Checkbox.d.ts │ │ │ │ │ ├── Checkbox.style.ts │ │ │ │ │ ├── Checkbox.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ControlsButton │ │ │ │ │ ├── ControlsButton.d.ts │ │ │ │ │ ├── ControlsButton.style.ts │ │ │ │ │ ├── ControlsButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Dialog │ │ │ │ │ ├── Dialog.d.ts │ │ │ │ │ ├── Dialog.style.ts │ │ │ │ │ ├── Dialog.test.tsx │ │ │ │ │ ├── Dialog.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── FormGroup │ │ │ │ │ ├── FormGroup.d.ts │ │ │ │ │ ├── FormGroup.style.ts │ │ │ │ │ ├── FormGroup.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Icon │ │ │ │ │ ├── Icon.d.ts │ │ │ │ │ ├── Icon.style.ts │ │ │ │ │ ├── Icon.test.tsx │ │ │ │ │ ├── Icon.tsx │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Icon.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ │ ├── IconButton │ │ │ │ │ ├── IconButton.d.ts │ │ │ │ │ ├── IconButton.style.ts │ │ │ │ │ ├── IconButton.test.tsx │ │ │ │ │ ├── IconButton.tsx │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── IconButton.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Input │ │ │ │ │ ├── Input.d.ts │ │ │ │ │ ├── Input.style.ts │ │ │ │ │ ├── Input.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Link │ │ │ │ │ ├── Link.d.ts │ │ │ │ │ ├── Link.style.ts │ │ │ │ │ ├── Link.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ListItem │ │ │ │ │ ├── ListItem.d.ts │ │ │ │ │ ├── ListItem.style.ts │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Popover │ │ │ │ │ ├── Popover.d.ts │ │ │ │ │ ├── Popover.style.ts │ │ │ │ │ ├── Popover.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── QueryBadge │ │ │ │ │ ├── QueryBadge.d.ts │ │ │ │ │ ├── QueryBadge.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Radio │ │ │ │ │ ├── Radio.d.ts │ │ │ │ │ ├── Radio.style.ts │ │ │ │ │ ├── Radio.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Select │ │ │ │ │ ├── Select.d.ts │ │ │ │ │ ├── Select.test.tsx │ │ │ │ │ ├── Select.tsx │ │ │ │ │ ├── SelectItem.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Separator │ │ │ │ │ ├── Separator.d.ts │ │ │ │ │ ├── Separator.style.ts │ │ │ │ │ ├── Separator.test.tsx │ │ │ │ │ ├── Separator.tsx │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Separator.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Slider │ │ │ │ │ ├── Slider.d.ts │ │ │ │ │ ├── Slider.style.ts │ │ │ │ │ ├── Slider.test.tsx │ │ │ │ │ ├── Slider.tsx │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Slider.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Switch │ │ │ │ │ ├── Switch.d.ts │ │ │ │ │ ├── Switch.style.ts │ │ │ │ │ ├── Switch.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Table │ │ │ │ │ ├── Table.d.ts │ │ │ │ │ ├── Table.style.ts │ │ │ │ │ ├── Table.tsx │ │ │ │ │ ├── components │ │ │ │ │ │ ├── TableBody.tsx │ │ │ │ │ │ ├── TableCell.tsx │ │ │ │ │ │ ├── TableFooter.tsx │ │ │ │ │ │ ├── TableHead.tsx │ │ │ │ │ │ ├── TableHeader.tsx │ │ │ │ │ │ ├── TableRow.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Tabs │ │ │ │ │ ├── Tabs.d.ts │ │ │ │ │ ├── Tabs.style.ts │ │ │ │ │ ├── Tabs.test.tsx │ │ │ │ │ ├── Tabs.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Text │ │ │ │ │ ├── Text.d.ts │ │ │ │ │ ├── Text.style.ts │ │ │ │ │ ├── Text.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Textarea │ │ │ │ │ ├── Textarea.d.ts │ │ │ │ │ ├── Textarea.style.ts │ │ │ │ │ ├── Textarea.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Toast │ │ │ │ │ ├── Toast.d.ts │ │ │ │ │ ├── Toast.style.ts │ │ │ │ │ ├── Toast.test.tsx │ │ │ │ │ ├── Toast.tsx │ │ │ │ │ ├── ToastProvider.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ToggleButton │ │ │ │ │ ├── ToggleButton.d.ts │ │ │ │ │ ├── ToggleButton.style.ts │ │ │ │ │ ├── ToggleButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Tooltip │ │ │ │ │ ├── Tooltip.d.ts │ │ │ │ │ ├── Tooltip.style.ts │ │ │ │ │ ├── Tooltip.test.tsx │ │ │ │ │ ├── Tooltip.tsx │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── Tooltip.test.tsx.snap │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Tree │ │ │ │ │ ├── Tree.d.ts │ │ │ │ │ ├── Tree.style.ts │ │ │ │ │ ├── Tree.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils │ │ │ │ │ ├── getButtonStyles.ts │ │ │ │ │ └── getHiglightedText.tsx │ │ │ ├── config │ │ │ │ ├── analytics │ │ │ │ │ └── analyticsKeysMap.ts │ │ │ │ ├── charts │ │ │ │ │ └── index.ts │ │ │ │ ├── colors │ │ │ │ │ └── colors.ts │ │ │ │ ├── config.ts │ │ │ │ ├── controls │ │ │ │ │ └── controlsDefaultConfig.ts │ │ │ │ ├── dash-arrays │ │ │ │ │ └── dashArrays.ts │ │ │ │ ├── dates │ │ │ │ │ └── dates.ts │ │ │ │ ├── enums │ │ │ │ │ ├── densityEnum.ts │ │ │ │ │ ├── imageEnums.ts │ │ │ │ │ ├── requestStatusEnum.ts │ │ │ │ │ ├── routesEnum.ts │ │ │ │ │ └── tableEnums.ts │ │ │ │ ├── grouping │ │ │ │ │ └── GroupingPopovers.ts │ │ │ │ ├── illustrationConfig │ │ │ │ │ └── illustrationConfig.tsx │ │ │ │ ├── mediaConfigs │ │ │ │ │ └── mediaConfigs.ts │ │ │ │ ├── monacoConfig │ │ │ │ │ └── monacoConfig.ts │ │ │ │ ├── notification-messages │ │ │ │ │ └── notificationMessages.ts │ │ │ │ ├── pageTitles │ │ │ │ │ └── pageTitles.ts │ │ │ │ ├── references │ │ │ │ │ └── index.ts │ │ │ │ ├── stitches │ │ │ │ │ ├── animations.ts │ │ │ │ │ ├── global.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── layout.ts │ │ │ │ │ ├── media.ts │ │ │ │ │ ├── theme.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── systemMetrics │ │ │ │ │ └── systemMetrics.ts │ │ │ │ └── table │ │ │ │ │ └── tableConfigs.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── useAudioBlobURI.tsx │ │ │ │ ├── useCodeHighlighter.ts │ │ │ │ ├── useCopy.ts │ │ │ │ ├── useFigureBlobURI.tsx │ │ │ │ ├── useFontSize.ts │ │ │ │ ├── useImageBlobURI.tsx │ │ │ │ ├── useModel.ts │ │ │ │ ├── usePanelResize.ts │ │ │ │ ├── useParamsSuggestions.ts │ │ │ │ └── window │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── useAnimationFrame.ts │ │ │ │ │ ├── useResizeObserver.ts │ │ │ │ │ └── useWindowResize.ts │ │ │ ├── index.tsx │ │ │ ├── modules │ │ │ │ ├── BaseExplorer │ │ │ │ │ ├── README.md │ │ │ │ │ ├── components │ │ │ │ │ │ ├── AudioBox │ │ │ │ │ │ │ ├── AudioBox.d.ts │ │ │ │ │ │ │ ├── AudioBox.scss │ │ │ │ │ │ │ ├── AudioBox.tsx │ │ │ │ │ │ │ ├── AudioBoxProgress.tsx │ │ │ │ │ │ │ ├── AudioBoxVolume.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── BoxFullViewPopover │ │ │ │ │ │ │ ├── BoxFullViewPopover.d.ts │ │ │ │ │ │ │ ├── BoxFullViewPopover.scss │ │ │ │ │ │ │ ├── BoxFullViewPopover.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── BoxVirtualizer │ │ │ │ │ │ │ ├── BoxVirtualizer.d.ts │ │ │ │ │ │ │ ├── BoxVirtualizer.scss │ │ │ │ │ │ │ ├── BoxVirtualizer.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── BoxWrapper │ │ │ │ │ │ │ ├── Box.tsx │ │ │ │ │ │ │ ├── BoxWithStacking.tsx │ │ │ │ │ │ │ ├── BoxWrapper.d.ts │ │ │ │ │ │ │ ├── BoxWrapper.scss │ │ │ │ │ │ │ ├── BoxWrapper.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── CaptionBox │ │ │ │ │ │ │ ├── CaptionBox.d.ts │ │ │ │ │ │ │ ├── CaptionBox.scss │ │ │ │ │ │ │ ├── CaptionBox.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ │ ├── Aggregation │ │ │ │ │ │ │ │ ├── Aggregation.d.ts │ │ │ │ │ │ │ │ ├── Aggregation.tsx │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── AggregationPopover.d.ts │ │ │ │ │ │ │ │ │ ├── AggregationPopover.scss │ │ │ │ │ │ │ │ │ ├── AggregationPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── BoxProperties │ │ │ │ │ │ │ │ ├── BoxProperties.d.ts │ │ │ │ │ │ │ │ ├── BoxProperties.tsx │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── BoxPropertiesPopover.d.ts │ │ │ │ │ │ │ │ │ ├── BoxPropertiesPopover.scss │ │ │ │ │ │ │ │ │ ├── BoxPropertiesPopover.tsx │ │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── CaptionProperties │ │ │ │ │ │ │ │ ├── CaptionProperties.d.ts │ │ │ │ │ │ │ │ ├── CaptionProperties.tsx │ │ │ │ │ │ │ │ ├── CaptionPropertiesPopover │ │ │ │ │ │ │ │ │ ├── CaptionPropertiesPopover.d.ts │ │ │ │ │ │ │ │ │ ├── CaptionPropertiesPopover.scss │ │ │ │ │ │ │ │ │ ├── CaptionPropertiesPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ConfigureAxes │ │ │ │ │ │ │ │ ├── ConfigureAxes.d.ts │ │ │ │ │ │ │ │ ├── ConfigureAxes.tsx │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── Alignment.tsx │ │ │ │ │ │ │ │ │ ├── AxesRange.tsx │ │ │ │ │ │ │ │ │ ├── AxesType.tsx │ │ │ │ │ │ │ │ │ ├── ConfigureAxesPopover.d.ts │ │ │ │ │ │ │ │ │ ├── ConfigureAxesPopover.scss │ │ │ │ │ │ │ │ │ ├── ConfigureAxesPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ConfigureTooltip │ │ │ │ │ │ │ │ ├── ConfigureTooltip.d.ts │ │ │ │ │ │ │ │ ├── ConfigureTooltip.tsx │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── ConfigureTooltipPopover.d.ts │ │ │ │ │ │ │ │ │ ├── ConfigureTooltipPopover.scss │ │ │ │ │ │ │ │ │ ├── ConfigureTooltipPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Controls.scss │ │ │ │ │ │ │ ├── Controls.tsx │ │ │ │ │ │ │ ├── Highlighting │ │ │ │ │ │ │ │ ├── Highlighting.d.ts │ │ │ │ │ │ │ │ ├── Highlighting.tsx │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── HighlightingPopover.d.ts │ │ │ │ │ │ │ │ │ ├── HighlightingPopover.scss │ │ │ │ │ │ │ │ │ ├── HighlightingPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── IgnoreOutliers │ │ │ │ │ │ │ │ ├── IgnoreOutliers.d.ts │ │ │ │ │ │ │ │ ├── IgnoreOutliers.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Legends │ │ │ │ │ │ │ │ ├── Legends.d.ts │ │ │ │ │ │ │ │ ├── Legends.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── Smoothing │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── SmoothingPopover.d.ts │ │ │ │ │ │ │ │ │ ├── SmoothingPopover.scss │ │ │ │ │ │ │ │ │ ├── SmoothingPopover.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Smoothing.d.ts │ │ │ │ │ │ │ │ ├── Smoothing.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── TextRendererMode │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── TextRendererModePopover.d.ts │ │ │ │ │ │ │ │ │ ├── TextRendererModePopover.scss │ │ │ │ │ │ │ │ │ ├── TextRendererModePopover.tsx │ │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ │ ├── TextRendererMode.d.ts │ │ │ │ │ │ │ │ ├── TextRendererMode.tsx │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── Zoom │ │ │ │ │ │ │ │ ├── Popover │ │ │ │ │ │ │ │ │ ├── ZoomInPopover │ │ │ │ │ │ │ │ │ │ ├── ZoomInPopover.d.ts │ │ │ │ │ │ │ │ │ │ ├── ZoomInPopover.scss │ │ │ │ │ │ │ │ │ │ ├── ZoomInPopover.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ ├── ZoomOutPopover │ │ │ │ │ │ │ │ │ │ ├── ZoomOutPopover.d.ts │ │ │ │ │ │ │ │ │ │ ├── ZoomOutPopover.scss │ │ │ │ │ │ │ │ │ │ ├── ZoomOutPopover.tsx │ │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── Zoom.d.ts │ │ │ │ │ │ │ │ ├── Zoom.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── Explorer │ │ │ │ │ │ │ ├── Explorer.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── styles.scss │ │ │ │ │ │ ├── ExplorerBar │ │ │ │ │ │ │ ├── ExplorerBar.scss │ │ │ │ │ │ │ ├── ExplorerBar.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ExplorerNotifications │ │ │ │ │ │ │ ├── ExplorerNotifications.scss │ │ │ │ │ │ │ ├── ExplorerNotifications.tsx │ │ │ │ │ │ │ ├── config.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Figure │ │ │ │ │ │ │ ├── Figure.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Figures │ │ │ │ │ │ │ ├── Figures.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── Grouping │ │ │ │ │ │ │ ├── Grouping │ │ │ │ │ │ │ │ ├── Grouping.scss │ │ │ │ │ │ │ │ ├── Grouping.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── GroupingItem │ │ │ │ │ │ │ │ ├── GroupingItem.d.ts │ │ │ │ │ │ │ │ ├── GroupingItem.scss │ │ │ │ │ │ │ │ ├── GroupingItem.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── GroupingPopover │ │ │ │ │ │ │ │ ├── GroupingPopover.d.ts │ │ │ │ │ │ │ │ ├── GroupingPopover.scss │ │ │ │ │ │ │ │ ├── GroupingPopover.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── Metrics │ │ │ │ │ │ │ ├── Metrics.tsx │ │ │ │ │ │ │ ├── hooks │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── useAggregateChartData.tsx │ │ │ │ │ │ │ │ ├── useAlignMetricsData.tsx │ │ │ │ │ │ │ │ ├── useSetChartData.tsx │ │ │ │ │ │ │ │ ├── useSmoothChartData.tsx │ │ │ │ │ │ │ │ └── useSyncHoverState.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ProgressBar │ │ │ │ │ │ │ ├── ProgressBarWrapper.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── QueryForm │ │ │ │ │ │ │ ├── QueryForm.scss │ │ │ │ │ │ │ ├── QueryForm.tsx │ │ │ │ │ │ │ ├── SearchButton │ │ │ │ │ │ │ │ ├── SearchButton.d.ts │ │ │ │ │ │ │ │ ├── SearchButton.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── RangePanel │ │ │ │ │ │ │ ├── RangePanel.d.ts │ │ │ │ │ │ │ ├── RangePanel.scss │ │ │ │ │ │ │ ├── RangePanel.tsx │ │ │ │ │ │ │ ├── RangePanelItem.tsx │ │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── TextBox │ │ │ │ │ │ │ ├── TextBox.scss │ │ │ │ │ │ │ └── TextBox.tsx │ │ │ │ │ │ ├── Visualizations │ │ │ │ │ │ │ ├── Visualizations.scss │ │ │ │ │ │ │ ├── Visualizations.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── Visualizer │ │ │ │ │ │ │ ├── Visualizer.scss │ │ │ │ │ │ │ ├── Visualizer.tsx │ │ │ │ │ │ │ ├── hooks │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useDepthMap.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── VisualizerPanel │ │ │ │ │ │ │ ├── VisualizerPanel.d.ts │ │ │ │ │ │ │ ├── VisualizerPanel.scss │ │ │ │ │ │ │ ├── VisualizerPanel.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── Widgets │ │ │ │ │ │ │ ├── VisualizerLegends │ │ │ │ │ │ │ │ ├── VisualizerLegends.d.ts │ │ │ │ │ │ │ │ ├── VisualizerLegends.scss │ │ │ │ │ │ │ │ ├── VisualizerLegends.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── VisualizerTooltip │ │ │ │ │ │ │ │ ├── TooltipContent │ │ │ │ │ │ │ │ │ ├── AppearanceActionButtons │ │ │ │ │ │ │ │ │ │ ├── AppearanceActionButtons.scss │ │ │ │ │ │ │ │ │ │ └── AppearanceActionButtons.tsx │ │ │ │ │ │ │ │ │ ├── RunAdditionalInfo │ │ │ │ │ │ │ │ │ │ ├── RunAdditionalInfo.scss │ │ │ │ │ │ │ │ │ │ └── RunAdditionalInfo.tsx │ │ │ │ │ │ │ │ │ ├── SelectedFields │ │ │ │ │ │ │ │ │ │ ├── SelectedFields.scss │ │ │ │ │ │ │ │ │ │ └── SelectedFields.tsx │ │ │ │ │ │ │ │ │ ├── SelectedGroupingFields │ │ │ │ │ │ │ │ │ │ ├── SelectedGroupingFields.scss │ │ │ │ │ │ │ │ │ │ └── SelectedGroupingFields.tsx │ │ │ │ │ │ │ │ │ ├── TooltipContent.d.ts │ │ │ │ │ │ │ │ │ ├── TooltipContent.scss │ │ │ │ │ │ │ │ │ ├── TooltipContent.tsx │ │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ │ ├── VisualizerTooltip.d.ts │ │ │ │ │ │ │ │ ├── VisualizerTooltip.tsx │ │ │ │ │ │ │ │ ├── getTooltipContent.ts │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── getDefaultHydration.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── styles.scss │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils │ │ │ │ │ │ └── getBaseExplorerStaticContent.tsx │ │ │ │ └── core │ │ │ │ │ ├── AimError.ts │ │ │ │ │ ├── api │ │ │ │ │ ├── boardsApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── dashboardsApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── experimentsApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── projectApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── releaseNotesApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── reportsApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── runsApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── tagsApi │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── cache │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── inlineCache.ts │ │ │ │ │ └── memoize.ts │ │ │ │ │ ├── engine │ │ │ │ │ ├── blob-uri-system │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── custom-states │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── event-system │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── state.ts │ │ │ │ │ ├── explorer-engine │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── explorer │ │ │ │ │ │ ├── groupings │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── state.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── query │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── state.ts │ │ │ │ │ │ └── state │ │ │ │ │ │ │ └── controls.ts │ │ │ │ │ ├── instructions │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── state.ts │ │ │ │ │ ├── notifications │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── state.ts │ │ │ │ │ ├── pipeline │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── state.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── visualizations │ │ │ │ │ │ ├── controls.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── pipeline │ │ │ │ │ ├── PipelineError.ts │ │ │ │ │ ├── adapter │ │ │ │ │ │ ├── AdapterError.ts │ │ │ │ │ │ ├── collectQueryableData.ts │ │ │ │ │ │ ├── depthInterceptors.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── processor.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── custom │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── grouping │ │ │ │ │ │ ├── GroupingError.ts │ │ │ │ │ │ ├── getGroupValues.ts │ │ │ │ │ │ ├── group.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── query │ │ │ │ │ │ ├── QueryError.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ └── types.ts │ │ │ │ │ ├── services │ │ │ │ │ └── browserHistory.ts │ │ │ │ │ └── utils │ │ │ │ │ ├── createResource.ts │ │ │ │ │ ├── getQueryFromRanges.ts │ │ │ │ │ ├── getQueryParamsFromState.ts │ │ │ │ │ ├── getQueryStringFromSelect.ts │ │ │ │ │ ├── getSelectFormOptions.ts │ │ │ │ │ ├── getUpdatedUrl.ts │ │ │ │ │ ├── getUrlSearchParam.ts │ │ │ │ │ ├── hashing.ts │ │ │ │ │ ├── removeExampleTypesFromProjects.ts │ │ │ │ │ └── store.ts │ │ │ ├── pages │ │ │ │ ├── AudiosExplorer │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── getStaticContent.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Board │ │ │ │ │ ├── Board.scss │ │ │ │ │ ├── Board.tsx │ │ │ │ │ ├── BoardContainer.tsx │ │ │ │ │ ├── components │ │ │ │ │ │ ├── AudiosList.tsx │ │ │ │ │ │ ├── DataTable.tsx │ │ │ │ │ │ ├── FiguresList.tsx │ │ │ │ │ │ ├── GridCell.tsx │ │ │ │ │ │ ├── GroupedBox.tsx │ │ │ │ │ │ ├── ImagesList.tsx │ │ │ │ │ │ ├── Plotly.tsx │ │ │ │ │ │ ├── SaveBoard.tsx │ │ │ │ │ │ ├── TextList.tsx │ │ │ │ │ │ └── dataVizElementsMap.tsx │ │ │ │ │ ├── newBoardCode.ts │ │ │ │ │ └── search.ts │ │ │ │ ├── Bookmarks │ │ │ │ │ ├── Bookmarks.scss │ │ │ │ │ ├── Bookmarks.tsx │ │ │ │ │ ├── BookmarksContainer.tsx │ │ │ │ │ └── components │ │ │ │ │ │ └── BookmarkCard │ │ │ │ │ │ ├── BookmarkCard.scss │ │ │ │ │ │ └── BookmarkCard.tsx │ │ │ │ ├── Dashboard │ │ │ │ │ ├── Dashboard.scss │ │ │ │ │ ├── Dashboard.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── ActiveRunsTable │ │ │ │ │ │ ├── ActiveRunsStore.ts │ │ │ │ │ │ ├── ActiveRunsTable.scss │ │ │ │ │ │ ├── ActiveRunsTable.tsx │ │ │ │ │ │ └── useActiveRunsTable.tsx │ │ │ │ │ │ ├── AimIntegrations │ │ │ │ │ │ ├── AimIntegrations.scss │ │ │ │ │ │ ├── AimIntegrations.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── DashboardContributionsFeed │ │ │ │ │ │ ├── DashboardContributionsFeed.tsx │ │ │ │ │ │ ├── DashboardContributionsFeedStore.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── useDashboardContributionsFeed.ts │ │ │ │ │ │ ├── DashboardRight │ │ │ │ │ │ ├── DashboardRight.scss │ │ │ │ │ │ ├── DashboardRight.tsx │ │ │ │ │ │ ├── GuideDocs │ │ │ │ │ │ │ ├── GuideDocs.scss │ │ │ │ │ │ │ ├── GuideDocs.tsx │ │ │ │ │ │ │ └── GuidesStore.ts │ │ │ │ │ │ └── ReleaseNotes │ │ │ │ │ │ │ ├── ReleaseNotes.scss │ │ │ │ │ │ │ ├── ReleaseNotes.tsx │ │ │ │ │ │ │ ├── ReleasesStore.ts │ │ │ │ │ │ │ └── useReleaseNotes.ts │ │ │ │ │ │ ├── ExploreSection │ │ │ │ │ │ ├── DashboardBookmarks │ │ │ │ │ │ │ ├── DashboardBookmarks.scss │ │ │ │ │ │ │ ├── DashboardBookmarks.tsx │ │ │ │ │ │ │ ├── DashboardBookmarksStore.ts │ │ │ │ │ │ │ └── useDashboardBookmarks.tsx │ │ │ │ │ │ ├── ExperimentsCard │ │ │ │ │ │ │ ├── ExperimentsCard.d.ts │ │ │ │ │ │ │ ├── ExperimentsCard.scss │ │ │ │ │ │ │ ├── ExperimentsCard.tsx │ │ │ │ │ │ │ ├── ExperimentsStore.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── useExperimentsCard.tsx │ │ │ │ │ │ ├── ExploreSection.scss │ │ │ │ │ │ ├── ExploreSection.tsx │ │ │ │ │ │ ├── QuickLinks │ │ │ │ │ │ │ ├── QuickLinks.scss │ │ │ │ │ │ │ └── QuickLinks.tsx │ │ │ │ │ │ ├── RecentSearches │ │ │ │ │ │ │ ├── RecentSearchItem.tsx │ │ │ │ │ │ │ ├── RecentSearches.scss │ │ │ │ │ │ │ ├── RecentSearches.tsx │ │ │ │ │ │ │ └── useRecentSearches.ts │ │ │ │ │ │ └── TagsCard │ │ │ │ │ │ │ ├── TagsCard.d.ts │ │ │ │ │ │ │ ├── TagsCard.scss │ │ │ │ │ │ │ ├── TagsCard.tsx │ │ │ │ │ │ │ ├── TagsStore.ts │ │ │ │ │ │ │ └── useTagsCard.tsx │ │ │ │ │ │ ├── ProjectContributions │ │ │ │ │ │ ├── ProjectContributions.scss │ │ │ │ │ │ ├── ProjectContributions.tsx │ │ │ │ │ │ ├── ProjectContributionsStore.ts │ │ │ │ │ │ └── useProjectContributions.tsx │ │ │ │ │ │ ├── ProjectStatistics │ │ │ │ │ │ ├── ProjectStatistics.d.ts │ │ │ │ │ │ ├── ProjectStatistics.scss │ │ │ │ │ │ ├── ProjectStatistics.tsx │ │ │ │ │ │ ├── ProjectStatisticsStore.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── useProjectStatistics.tsx │ │ │ │ │ │ └── QuickStart │ │ │ │ │ │ ├── QuickStart.scss │ │ │ │ │ │ ├── QuickStart.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ ├── Experiment │ │ │ │ │ ├── Experiment.scss │ │ │ │ │ ├── Experiment.tsx │ │ │ │ │ ├── ExperimentStore.ts │ │ │ │ │ ├── components │ │ │ │ │ │ ├── ExperimentHeader │ │ │ │ │ │ │ ├── ExperimentHeader.d.ts │ │ │ │ │ │ │ ├── ExperimentHeader.scss │ │ │ │ │ │ │ ├── ExperimentHeader.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ExperimentNavigationPopover │ │ │ │ │ │ │ ├── ExperimentNavigationPopover.d.ts │ │ │ │ │ │ │ ├── ExperimentNavigationPopover.scss │ │ │ │ │ │ │ ├── ExperimentNavigationPopover.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ExperimentNotesTab │ │ │ │ │ │ │ ├── ExperimentNotesEngine.ts │ │ │ │ │ │ │ ├── ExperimentNotesTab.d.ts │ │ │ │ │ │ │ ├── ExperimentNotesTab.scss │ │ │ │ │ │ │ ├── ExperimentNotesTab.tsx │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── useExperimentNotes.tsx │ │ │ │ │ │ ├── ExperimentOverviewTab │ │ │ │ │ │ │ ├── ExperimentContributions │ │ │ │ │ │ │ │ ├── ExperimentContributions.d.ts │ │ │ │ │ │ │ │ ├── ExperimentContributions.scss │ │ │ │ │ │ │ │ ├── ExperimentContributions.tsx │ │ │ │ │ │ │ │ ├── ExperimentContributionsStore.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useExperimentContributions.tsx │ │ │ │ │ │ │ ├── ExperimentContributionsFeed │ │ │ │ │ │ │ │ ├── ExperimentContributionsFeed.d.ts │ │ │ │ │ │ │ │ ├── ExperimentContributionsFeed.tsx │ │ │ │ │ │ │ │ ├── ExperimentContributionsFeedStore.ts │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useExperimentContributionsFeed.tsx │ │ │ │ │ │ │ ├── ExperimentOverviewSidebar │ │ │ │ │ │ │ │ ├── ExperimentOverviewSidebar.d.ts │ │ │ │ │ │ │ │ ├── ExperimentOverviewSidebar.scss │ │ │ │ │ │ │ │ ├── ExperimentOverviewSidebar.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ ├── ExperimentOverviewTab.d.ts │ │ │ │ │ │ │ ├── ExperimentOverviewTab.scss │ │ │ │ │ │ │ ├── ExperimentOverviewTab.tsx │ │ │ │ │ │ │ ├── ExperimentStatistics │ │ │ │ │ │ │ │ ├── ExperimentStatistics.d.ts │ │ │ │ │ │ │ │ ├── ExperimentStatistics.scss │ │ │ │ │ │ │ │ ├── ExperimentStatistics.tsx │ │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── ExperimentRunsTab │ │ │ │ │ │ │ ├── ExperimentRunsStore.ts │ │ │ │ │ │ │ ├── ExperimentRunsTab.d.ts │ │ │ │ │ │ │ ├── ExperimentRunsTab.scss │ │ │ │ │ │ │ ├── ExperimentRunsTab.tsx │ │ │ │ │ │ │ ├── ExperimentRunsTable │ │ │ │ │ │ │ │ ├── ExperimentRunsTable.d.ts │ │ │ │ │ │ │ │ ├── ExperimentRunsTable.scss │ │ │ │ │ │ │ │ ├── ExperimentRunsTable.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ └── useExperimentRunsTable.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── ExperimentSettingsTab │ │ │ │ │ │ │ ├── ExperimentSettingsTab.d.ts │ │ │ │ │ │ │ ├── ExperimentSettingsTab.scss │ │ │ │ │ │ │ ├── ExperimentSettingsTab.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── useExperimentState.tsx │ │ │ │ ├── FiguresExplorer │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── getStaticContent.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ImagesExplore │ │ │ │ │ ├── ImagesExplore.scss │ │ │ │ │ ├── ImagesExplore.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ ├── Controls.scss │ │ │ │ │ │ └── Controls.tsx │ │ │ │ │ │ ├── ImagesExploreAppBar │ │ │ │ │ │ ├── ImagesExploreAppBar.scss │ │ │ │ │ │ └── ImagesExploreAppBar.tsx │ │ │ │ │ │ ├── ImagesExploreTableGrid │ │ │ │ │ │ └── ImagesExploreTableGrid.tsx │ │ │ │ │ │ └── SelectForm │ │ │ │ │ │ ├── SelectForm.scss │ │ │ │ │ │ └── SelectForm.tsx │ │ │ │ ├── Metrics │ │ │ │ │ ├── Metrics.scss │ │ │ │ │ ├── Metrics.tsx │ │ │ │ │ ├── MetricsContainer.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── ColorPopoverAdvanced │ │ │ │ │ │ ├── ColorPopoverAdvanced.scss │ │ │ │ │ │ └── ColorPopoverAdvanced.tsx │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ ├── Controls.scss │ │ │ │ │ │ └── Controls.tsx │ │ │ │ │ │ ├── MetricsBar │ │ │ │ │ │ ├── MetricsBar.scss │ │ │ │ │ │ └── MetricsBar.tsx │ │ │ │ │ │ ├── MetricsTableGrid │ │ │ │ │ │ └── MetricsTableGrid.tsx │ │ │ │ │ │ ├── SelectForm │ │ │ │ │ │ ├── SelectForm.scss │ │ │ │ │ │ └── SelectForm.tsx │ │ │ │ │ │ ├── StrokePopover │ │ │ │ │ │ ├── StrokePopoverAdvanced.scss │ │ │ │ │ │ └── StrokePopoverAdvanced.tsx │ │ │ │ │ │ └── Table │ │ │ │ │ │ ├── CompareSelectedRunsPopover │ │ │ │ │ │ ├── CompareSelectedRunsPopover.d.ts │ │ │ │ │ │ ├── CompareSelectedRunsPopover.scss │ │ │ │ │ │ ├── CompareSelectedRunsPopover.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── HideRowsPopover │ │ │ │ │ │ ├── HideRowsPopover.scss │ │ │ │ │ │ └── HideRowsPopover.tsx │ │ │ │ │ │ ├── ManageColumnsPopover │ │ │ │ │ │ ├── ColumnItem │ │ │ │ │ │ │ ├── ColumnItem.d.ts │ │ │ │ │ │ │ ├── ColumnItem.scss │ │ │ │ │ │ │ └── ColumnItem.tsx │ │ │ │ │ │ ├── ManageColumns.d.ts │ │ │ │ │ │ ├── ManageColumnsPopover.scss │ │ │ │ │ │ └── ManageColumnsPopover.tsx │ │ │ │ │ │ ├── MetricsValueKeyPopover │ │ │ │ │ │ ├── MetricsValueKeyPopover.scss │ │ │ │ │ │ ├── MetricsValueKeyPopover.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── RowHeightPopover │ │ │ │ │ │ ├── RowHeightPopover.scss │ │ │ │ │ │ └── RowHeightPopover.tsx │ │ │ │ │ │ └── SortPopover │ │ │ │ │ │ ├── SortPopover.scss │ │ │ │ │ │ ├── SortPopover.tsx │ │ │ │ │ │ └── SortPopoverList.tsx │ │ │ │ ├── MetricsExplorer │ │ │ │ │ ├── TooltipContentHeader.tsx │ │ │ │ │ ├── config.tsx │ │ │ │ │ ├── getStaticContent.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── PageWrapper.tsx │ │ │ │ ├── Params │ │ │ │ │ ├── Params.scss │ │ │ │ │ ├── Params.tsx │ │ │ │ │ ├── ParamsContainer.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ ├── Controls.scss │ │ │ │ │ │ └── Controls.tsx │ │ │ │ │ │ ├── ParamsTableGrid │ │ │ │ │ │ └── ParamsTableGrid.tsx │ │ │ │ │ │ └── SelectForm │ │ │ │ │ │ ├── SelectForm.scss │ │ │ │ │ │ └── SelectForm.tsx │ │ │ │ ├── Report │ │ │ │ │ ├── Report.scss │ │ │ │ │ ├── Report.tsx │ │ │ │ │ ├── components │ │ │ │ │ │ └── SaveReport.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useReport.tsx │ │ │ │ ├── Reports │ │ │ │ │ ├── ReportCard │ │ │ │ │ │ ├── ReportCard.style.ts │ │ │ │ │ │ └── ReportCard.tsx │ │ │ │ │ ├── Reports.style.ts │ │ │ │ │ ├── Reports.tsx │ │ │ │ │ ├── ReportsStore.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── useReports.tsx │ │ │ │ ├── RunDetail │ │ │ │ │ ├── AudiosVisualizer │ │ │ │ │ │ ├── AudiosVisualizer.scss │ │ │ │ │ │ ├── AudiosVisualizer.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── DistributionsVisualizer │ │ │ │ │ │ ├── DistributionVisualizer.tsx │ │ │ │ │ │ ├── DistributionsVisualizer.scss │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── temp │ │ │ │ │ │ │ ├── Heatmap │ │ │ │ │ │ │ └── Heatmap.js │ │ │ │ │ │ │ ├── Histogram │ │ │ │ │ │ │ └── Histogram.jsx │ │ │ │ │ │ │ └── Wrapper.jsx │ │ │ │ │ ├── ImagesVisualizer │ │ │ │ │ │ ├── ImagesVisualizer.scss │ │ │ │ │ │ ├── ImagesVisualizer.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── NotesTab │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── PlotlyVisualizer │ │ │ │ │ │ ├── PlotlyVisualizer.scss │ │ │ │ │ │ ├── PlotlyVisualizer.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── RunDetail.scss │ │ │ │ │ ├── RunDetail.tsx │ │ │ │ │ ├── RunDetailMetricsAndSystemTab.tsx │ │ │ │ │ ├── RunDetailNotesTab │ │ │ │ │ │ ├── NoteTooltip.tsx │ │ │ │ │ │ ├── RunDetailNotesTab.scss │ │ │ │ │ │ ├── RunDetailNotesTab.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── RunDetailParamsTab.tsx │ │ │ │ │ ├── RunDetailSettingsTab │ │ │ │ │ │ ├── RunDetailSettingsTab.scss │ │ │ │ │ │ ├── RunDetailSettingsTab.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── RunLogRecords │ │ │ │ │ │ ├── LogRecordItem │ │ │ │ │ │ │ ├── LogRecordItem.d.ts │ │ │ │ │ │ │ ├── LogRecordItem.scss │ │ │ │ │ │ │ ├── LogRecordItem.tsx │ │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── RunLogRecords.d.ts │ │ │ │ │ │ ├── RunLogRecords.scss │ │ │ │ │ │ ├── RunLogRecords.tsx │ │ │ │ │ │ ├── RunLogRecordsStore.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── useRunLogRecords.tsx │ │ │ │ │ ├── RunLogsTab │ │ │ │ │ │ ├── LogRow.tsx │ │ │ │ │ │ ├── RunLogsTab.d.ts │ │ │ │ │ │ ├── RunLogsTab.scss │ │ │ │ │ │ ├── RunLogsTab.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── RunMetricCard.tsx │ │ │ │ │ ├── RunOverviewTab │ │ │ │ │ │ ├── RunOverviewTab.d.ts │ │ │ │ │ │ ├── RunOverviewTab.scss │ │ │ │ │ │ ├── RunOverviewTab.tsx │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── ArtifactsCard │ │ │ │ │ │ │ │ ├── RunOverviewTabArtifactsCard.d.ts │ │ │ │ │ │ │ │ └── RunOverviewTabArtifactsCard.tsx │ │ │ │ │ │ │ ├── CLIArgumentsCard │ │ │ │ │ │ │ │ ├── RunOverviewTabCLIArgumentsCard.d.ts │ │ │ │ │ │ │ │ ├── RunOverviewTabCLIArgumentsCard.scss │ │ │ │ │ │ │ │ └── RunOverviewTabCLIArgumentsCard.tsx │ │ │ │ │ │ │ ├── EnvVariablesCard │ │ │ │ │ │ │ │ ├── RunOverviewTabEnvVariablesCard.d.ts │ │ │ │ │ │ │ │ └── RunOverviewTabEnvVariablesCard.tsx │ │ │ │ │ │ │ ├── GitInfoCard │ │ │ │ │ │ │ │ ├── GitInfoCard.d.ts │ │ │ │ │ │ │ │ ├── GitInfoCard.scss │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── MetricsCard │ │ │ │ │ │ │ │ └── RunOverviewTabMetricsCard.tsx │ │ │ │ │ │ │ ├── Packages │ │ │ │ │ │ │ │ ├── RunOverviewTabPackagesCard.d.ts │ │ │ │ │ │ │ │ └── RunOverviewTabPackagesCard.tsx │ │ │ │ │ │ │ ├── ParamsCard │ │ │ │ │ │ │ │ └── RunOverviewTabParamsCard.tsx │ │ │ │ │ │ │ └── RunOverviewSidebar │ │ │ │ │ │ │ │ ├── RunOverviewSidebar.d.ts │ │ │ │ │ │ │ │ ├── RunOverviewSidebar.scss │ │ │ │ │ │ │ │ └── RunOverviewSidebar.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── RunSelectPopoverContent.tsx │ │ │ │ │ ├── TextsVisualizer │ │ │ │ │ │ ├── TextsVisualizer.scss │ │ │ │ │ │ ├── TextsVisualizer.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── TraceVisualizationContainer │ │ │ │ │ │ ├── TraceVisualizationContainer.scss │ │ │ │ │ │ ├── TraceVisualizationContainer.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── withEmptyTraceCheck.tsx │ │ │ │ │ ├── hooks │ │ │ │ │ │ ├── useNotesResizePanel.tsx │ │ │ │ │ │ └── useRunMetricsBatch.tsx │ │ │ │ │ └── types.d.ts │ │ │ │ ├── Runs │ │ │ │ │ ├── Runs.scss │ │ │ │ │ ├── Runs.tsx │ │ │ │ │ ├── RunsContainer.tsx │ │ │ │ │ ├── RunsTable.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── RunsBar │ │ │ │ │ │ └── RunsBar.tsx │ │ │ │ │ │ ├── RunsTableGrid │ │ │ │ │ │ └── RunsTableGrid.tsx │ │ │ │ │ │ └── SearchBar │ │ │ │ │ │ ├── SearchBar.scss │ │ │ │ │ │ └── SearchBar.tsx │ │ │ │ ├── Scatters │ │ │ │ │ ├── Scatters.scss │ │ │ │ │ ├── Scatters.tsx │ │ │ │ │ ├── ScattersContainer.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ ├── Controls.scss │ │ │ │ │ │ └── Controls.tsx │ │ │ │ │ │ └── SelectForm │ │ │ │ │ │ ├── SelectForm.scss │ │ │ │ │ │ └── SelectForm.tsx │ │ │ │ ├── Tags │ │ │ │ │ ├── TagDelete.tsx │ │ │ │ │ ├── TagDetail.tsx │ │ │ │ │ ├── TagRunsTable.tsx │ │ │ │ │ ├── TagSoftDelete.tsx │ │ │ │ │ ├── Tags.scss │ │ │ │ │ ├── Tags.tsx │ │ │ │ │ ├── TagsContainer.tsx │ │ │ │ │ ├── TagsList.tsx │ │ │ │ │ └── TagsTable.tsx │ │ │ │ └── TextExplorer │ │ │ │ │ ├── getStaticContent.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── textConfig.tsx │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── routes │ │ │ │ └── routes.tsx │ │ │ ├── services │ │ │ │ ├── NetworkService │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interceptors │ │ │ │ │ │ └── exceptionDetector.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── analytics.ts │ │ │ │ ├── api │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── apps │ │ │ │ │ │ └── appsService.ts │ │ │ │ │ ├── audiosExplore │ │ │ │ │ │ └── audiosExplore.ts │ │ │ │ │ ├── dashboard │ │ │ │ │ │ └── dashboardService.ts │ │ │ │ │ ├── endpoints.ts │ │ │ │ │ ├── experiments │ │ │ │ │ │ └── experimentsService.ts │ │ │ │ │ ├── imagesExplore │ │ │ │ │ │ └── imagesExploreService.ts │ │ │ │ │ ├── metrics │ │ │ │ │ │ ├── metricsMock.ts │ │ │ │ │ │ └── metricsService.ts │ │ │ │ │ ├── notes │ │ │ │ │ │ └── notesService.ts │ │ │ │ │ ├── projects │ │ │ │ │ │ └── projectsService.ts │ │ │ │ │ ├── runs │ │ │ │ │ │ ├── paramsMock.ts │ │ │ │ │ │ └── runsService.ts │ │ │ │ │ └── tags │ │ │ │ │ │ └── tagsService.ts │ │ │ │ ├── live-update │ │ │ │ │ ├── README.md │ │ │ │ │ ├── Worker.ts │ │ │ │ │ ├── examples │ │ │ │ │ │ └── LiveUpdateBridge.example.js │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── models │ │ │ │ │ ├── board │ │ │ │ │ │ └── boardAppModel.ts │ │ │ │ │ ├── bookmarks │ │ │ │ │ │ └── bookmarksAppModel.ts │ │ │ │ │ ├── explorer │ │ │ │ │ │ ├── config.ts │ │ │ │ │ │ ├── createAppModel.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── metricsModelMethods.ts │ │ │ │ │ │ ├── paramsModelMethods.ts │ │ │ │ │ │ ├── runsModelMethods.ts │ │ │ │ │ │ └── scattersModelMethods.ts │ │ │ │ │ ├── imagesExplore │ │ │ │ │ │ └── imagesExploreAppModel.ts │ │ │ │ │ ├── media │ │ │ │ │ │ └── blobsURIModel.ts │ │ │ │ │ ├── metrics │ │ │ │ │ │ ├── metricModel.ts │ │ │ │ │ │ ├── metricsAppModel.ts │ │ │ │ │ │ └── runModel.ts │ │ │ │ │ ├── model.ts │ │ │ │ │ ├── notes │ │ │ │ │ │ └── notesModel.ts │ │ │ │ │ ├── params │ │ │ │ │ │ └── paramsAppModel.ts │ │ │ │ │ ├── projects │ │ │ │ │ │ └── projectsModel.ts │ │ │ │ │ ├── runs │ │ │ │ │ │ ├── runDetailAppModel.ts │ │ │ │ │ │ ├── runTracesModel.ts │ │ │ │ │ │ ├── runsAppModel.ts │ │ │ │ │ │ ├── settings.ts │ │ │ │ │ │ ├── types.d.ts │ │ │ │ │ │ ├── util.test.ts │ │ │ │ │ │ └── util.ts │ │ │ │ │ ├── scatters │ │ │ │ │ │ ├── mockData.ts │ │ │ │ │ │ └── scattersAppModel.ts │ │ │ │ │ └── tags │ │ │ │ │ │ └── tagsAppModel.ts │ │ │ │ └── pyodide │ │ │ │ │ ├── pyodide.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── usePyodide.ts │ │ │ ├── setupTests.ts │ │ │ ├── stories │ │ │ │ ├── Badge.stories.tsx │ │ │ │ ├── Box.stories.tsx │ │ │ │ ├── Button.stories.tsx │ │ │ │ ├── Checkbox.stories.tsx │ │ │ │ ├── ControlsButton.stories.tsx │ │ │ │ ├── Dialog.stories.tsx │ │ │ │ ├── Icon.stories.tsx │ │ │ │ ├── IconButton.stories.tsx │ │ │ │ ├── Input.stories.tsx │ │ │ │ ├── ListItem.stories.tsx │ │ │ │ ├── QueryBadge.stories.tsx │ │ │ │ ├── Radio.stories.tsx │ │ │ │ ├── Select.stories.tsx │ │ │ │ ├── Separator.stories.tsx │ │ │ │ ├── Slider.stories.tsx │ │ │ │ ├── Switch.stories.tsx │ │ │ │ ├── Text.stories.tsx │ │ │ │ ├── Toast.stories.tsx │ │ │ │ ├── ToggleButton.stories.tsx │ │ │ │ ├── Tooltip.stories.tsx │ │ │ │ └── Tree.stories.tsx │ │ │ ├── styles │ │ │ │ ├── _global.scss │ │ │ │ ├── _utils.scss │ │ │ │ ├── abstracts │ │ │ │ │ ├── _functions.scss │ │ │ │ │ ├── _index.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ └── _variables.scss │ │ │ │ ├── base │ │ │ │ │ └── _reset.scss │ │ │ │ └── components │ │ │ │ │ ├── _autocomplete.scss │ │ │ │ │ ├── _inputs.scss │ │ │ │ │ └── _tooltip.scss │ │ │ ├── tests │ │ │ │ ├── hooks │ │ │ │ │ └── model │ │ │ │ │ │ ├── createModel.test.ts │ │ │ │ │ │ └── useModel.test.ts │ │ │ │ └── utils │ │ │ │ │ ├── app │ │ │ │ │ ├── getFilteredSystemMetrics.test.ts │ │ │ │ │ └── getSystemMetricsFromColumns.test.ts │ │ │ │ │ └── index.ts │ │ │ ├── types │ │ │ │ ├── components │ │ │ │ │ ├── AggregationPopover │ │ │ │ │ │ └── AggregationPopover.d.ts │ │ │ │ │ ├── AppBar │ │ │ │ │ │ └── AppBar.d.ts │ │ │ │ │ ├── AttachedTagsList │ │ │ │ │ │ └── AttachedTagsList.d.ts │ │ │ │ │ ├── AxesScalePopover │ │ │ │ │ │ └── AxesScalePopover.d.ts │ │ │ │ │ ├── BookmarkForm │ │ │ │ │ │ └── BookmarkForm.d.ts │ │ │ │ │ ├── BusyLoaderWrapper │ │ │ │ │ │ └── BusyLoaderWrapper.d.ts │ │ │ │ │ ├── ChartLoader │ │ │ │ │ │ └── ChartLoader.d.ts │ │ │ │ │ ├── ChartPanel │ │ │ │ │ │ ├── ChartPanel.d.ts │ │ │ │ │ │ ├── ChartPopover.d.ts │ │ │ │ │ │ └── PopoverContent.d.ts │ │ │ │ │ ├── CodeBlock │ │ │ │ │ │ └── CodeBlock.d.ts │ │ │ │ │ ├── ColorPopoverAdvanced │ │ │ │ │ │ └── ColorPopoverAdvanced.d.ts │ │ │ │ │ ├── ConfirmModal │ │ │ │ │ │ └── ConfirmModal.d.ts │ │ │ │ │ ├── ControlPopover │ │ │ │ │ │ └── ControlPopover.d.ts │ │ │ │ │ ├── CopyToClipBoard │ │ │ │ │ │ └── CopyToClipBoard.d.ts │ │ │ │ │ ├── ErrorBoundary │ │ │ │ │ │ └── ErrorBoundary.d.ts │ │ │ │ │ ├── GroupConfigPopover │ │ │ │ │ │ └── GroupConfigPopover.d.ts │ │ │ │ │ ├── GroupingPopover │ │ │ │ │ │ └── GroupingPopover.d.ts │ │ │ │ │ ├── HighPlot │ │ │ │ │ │ └── HighPlot.d.ts │ │ │ │ │ ├── HighlightModesPopover │ │ │ │ │ │ └── HighlightModesPopover.d.ts │ │ │ │ │ ├── IllustrationBlock │ │ │ │ │ │ └── IllustrationBlock.d.ts │ │ │ │ │ ├── LineChart │ │ │ │ │ │ └── LineChart.d.ts │ │ │ │ │ ├── MultiSelect │ │ │ │ │ │ └── MultiSelect.d.ts │ │ │ │ │ ├── NotificationContainer │ │ │ │ │ │ └── NotificationContainer.d.ts │ │ │ │ │ ├── ResizeModeActions │ │ │ │ │ │ └── ResizeModeActions.d.ts │ │ │ │ │ ├── ResizePanel │ │ │ │ │ │ └── ResizePanel.d.ts │ │ │ │ │ ├── SelectTag │ │ │ │ │ │ └── SelectTag.d.ts │ │ │ │ │ ├── SmoothingPopover │ │ │ │ │ │ └── SmoothingPopover.d.ts │ │ │ │ │ ├── TabPanel │ │ │ │ │ │ └── TabPanel.d.ts │ │ │ │ │ ├── Table │ │ │ │ │ │ └── Table.d.ts │ │ │ │ │ ├── TagForm │ │ │ │ │ │ └── TagForm.d.ts │ │ │ │ │ ├── Theme │ │ │ │ │ │ └── Theme.d.ts │ │ │ │ │ ├── TooltipContentPopover │ │ │ │ │ │ └── TooltipContentPopover.d.ts │ │ │ │ │ ├── ZoomInPopover │ │ │ │ │ │ └── ZoomInPopover.d.ts │ │ │ │ │ └── ZoomOutPopover │ │ │ │ │ │ └── ZoomOutPopover.d.ts │ │ │ │ ├── core │ │ │ │ │ ├── AimObjects │ │ │ │ │ │ ├── AimFlatObjectBase.d.ts │ │ │ │ │ │ ├── Audio.d.ts │ │ │ │ │ │ ├── CustomObject.d.ts │ │ │ │ │ │ ├── Distribution.d.ts │ │ │ │ │ │ ├── Figure.d.ts │ │ │ │ │ │ ├── Image.d.ts │ │ │ │ │ │ ├── Metric.d.ts │ │ │ │ │ │ ├── Run.d.ts │ │ │ │ │ │ ├── Sequence.d.ts │ │ │ │ │ │ └── index.d.ts │ │ │ │ │ ├── enums │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── shared │ │ │ │ │ │ └── index.d.ts │ │ │ │ ├── global.d.ts │ │ │ │ ├── pages │ │ │ │ │ ├── bookmarks │ │ │ │ │ │ ├── Bookmarks.d.ts │ │ │ │ │ │ └── components │ │ │ │ │ │ │ └── BookmarkCard.d.ts │ │ │ │ │ ├── components │ │ │ │ │ │ ├── Grouping │ │ │ │ │ │ │ └── Grouping.d.ts │ │ │ │ │ │ └── GroupingItem │ │ │ │ │ │ │ └── GroupingItem.d.ts │ │ │ │ │ ├── imagesExplore │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ │ └── Controls.d.ts │ │ │ │ │ │ │ └── SelectForm │ │ │ │ │ │ │ └── SelectForm.d.ts │ │ │ │ │ ├── metrics │ │ │ │ │ │ ├── Metrics.d.ts │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ │ └── Controls.d.ts │ │ │ │ │ │ │ ├── MetricsBar │ │ │ │ │ │ │ └── MetricsBar.d.ts │ │ │ │ │ │ │ ├── SelectForm │ │ │ │ │ │ │ └── SelectForm.d.ts │ │ │ │ │ │ │ ├── SortPopover │ │ │ │ │ │ │ └── SortPopover.d.ts │ │ │ │ │ │ │ └── TableColumns │ │ │ │ │ │ │ └── TableColumns.d.ts │ │ │ │ │ ├── params │ │ │ │ │ │ ├── Params.d.ts │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ │ └── Controls.d.ts │ │ │ │ │ │ │ └── SelectForm │ │ │ │ │ │ │ └── SelectForm.d.ts │ │ │ │ │ ├── runs │ │ │ │ │ │ └── Runs.d.ts │ │ │ │ │ ├── scatters │ │ │ │ │ │ ├── Scatters.d.ts │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── Controls │ │ │ │ │ │ │ └── Controls.d.ts │ │ │ │ │ │ │ └── SelectForm │ │ │ │ │ │ │ └── SelectForm.d.ts │ │ │ │ │ └── tags │ │ │ │ │ │ └── Tags.d.ts │ │ │ │ ├── services │ │ │ │ │ ├── models │ │ │ │ │ │ ├── bookmarks │ │ │ │ │ │ │ └── bookmarksAppModel.d.ts │ │ │ │ │ │ ├── explorer │ │ │ │ │ │ │ └── createAppModel.d.ts │ │ │ │ │ │ ├── imagesExplore │ │ │ │ │ │ │ └── imagesExploreAppModel.d.ts │ │ │ │ │ │ ├── metrics │ │ │ │ │ │ │ ├── metricModel.d.ts │ │ │ │ │ │ │ ├── metricsAppModel.d.ts │ │ │ │ │ │ │ └── runModel.d.ts │ │ │ │ │ │ ├── model.d.ts │ │ │ │ │ │ ├── notes │ │ │ │ │ │ │ └── notes.d.ts │ │ │ │ │ │ ├── params │ │ │ │ │ │ │ └── paramsAppModel.d.ts │ │ │ │ │ │ ├── projects │ │ │ │ │ │ │ └── projectsModel.d.ts │ │ │ │ │ │ ├── runs │ │ │ │ │ │ │ └── runsAppModel.d.ts │ │ │ │ │ │ └── scatter │ │ │ │ │ │ │ └── scatterAppModel.d.ts │ │ │ │ │ └── services.d.ts │ │ │ │ └── utils │ │ │ │ │ ├── aggregateGroupData.d.ts │ │ │ │ │ ├── common.d.ts │ │ │ │ │ ├── d3 │ │ │ │ │ ├── clearArea.d.ts │ │ │ │ │ ├── drawArea.d.ts │ │ │ │ │ ├── drawAxes.d.ts │ │ │ │ │ ├── drawBrush.d.ts │ │ │ │ │ ├── drawHoverAttributes.d.ts │ │ │ │ │ ├── drawLines.d.ts │ │ │ │ │ ├── drawParallelAxes.d.ts │ │ │ │ │ ├── drawParallelAxesBrush.d.ts │ │ │ │ │ ├── drawParallelColorIndicator.d.ts │ │ │ │ │ ├── drawParallelHoverAttributes.d.ts │ │ │ │ │ ├── drawParallelLines.d.ts │ │ │ │ │ ├── drawPoints.d.ts │ │ │ │ │ ├── getAxisScale.d.ts │ │ │ │ │ └── processLineChartData.d.ts │ │ │ │ │ ├── formatSystemMetricName.d.ts │ │ │ │ │ ├── getImageBoxSize.d.ts │ │ │ │ │ ├── getImageMediaListHeight.d.ts │ │ │ │ │ └── getImageMediaSetSize.d.ts │ │ │ └── utils │ │ │ │ ├── JsonToCSV.ts │ │ │ │ ├── aggregateGroupData.ts │ │ │ │ ├── alphabeticalSortComparator.ts │ │ │ │ ├── app │ │ │ │ ├── alignMetricData.ts │ │ │ │ ├── exceptionHandler.ts │ │ │ │ ├── filterMetricData.ts │ │ │ │ ├── getAggregatedData.ts │ │ │ │ ├── getAppConfigData.ts │ │ │ │ ├── getChartTitleData.ts │ │ │ │ ├── getCompatibleChartConfig.ts │ │ │ │ ├── getCompatibleSelectConfig.ts │ │ │ │ ├── getDataAsMediaSetNestedObject.ts │ │ │ │ ├── getFilteredGroupingOptions.ts │ │ │ │ ├── getFilteredRow.ts │ │ │ │ ├── getFilteredSystemMetrics.ts │ │ │ │ ├── getGroupConfig.ts │ │ │ │ ├── getGroupingPersistIndex.ts │ │ │ │ ├── getGroupingSelectOptions.ts │ │ │ │ ├── getLegendsData.tsx │ │ │ │ ├── getMetricHash.ts │ │ │ │ ├── getMetricLabel.ts │ │ │ │ ├── getMetricsInitialRowData.ts │ │ │ │ ├── getMetricsSelectOptions.ts │ │ │ │ ├── getParamsSuggestions.ts │ │ │ │ ├── getQueryStringFromSelect.ts │ │ │ │ ├── getRunData.ts │ │ │ │ ├── getSelectOptions.ts │ │ │ │ ├── getSystemMetricsFromColumns.ts │ │ │ │ ├── isGroupingApplied.ts │ │ │ │ ├── manageSystemMetricColumns.ts │ │ │ │ ├── onAggregationConfigChange.ts │ │ │ │ ├── onAlignmentMetricChange.ts │ │ │ │ ├── onAlignmentTypeChange.ts │ │ │ │ ├── onAxesScaleRangeChange.ts │ │ │ │ ├── onAxesScaleTypeChange.ts │ │ │ │ ├── onAxisBrushExtentChange.ts │ │ │ │ ├── onBookmarkCreate.ts │ │ │ │ ├── onBookmarkUpdate.ts │ │ │ │ ├── onChangeTooltip.ts │ │ │ │ ├── onChangeTrendlineOptions.ts │ │ │ │ ├── onColorIndicatorChange.ts │ │ │ │ ├── onColumnsOrderChange.ts │ │ │ │ ├── onColumnsVisibilityChange.ts │ │ │ │ ├── onCurveInterpolationChange.ts │ │ │ │ ├── onDensityTypeChange.ts │ │ │ │ ├── onGroupingApplyChange.ts │ │ │ │ ├── onGroupingModeChange.ts │ │ │ │ ├── onGroupingPaletteChange.ts │ │ │ │ ├── onGroupingPersistenceChange.ts │ │ │ │ ├── onGroupingReset.ts │ │ │ │ ├── onGroupingSelectChange.ts │ │ │ │ ├── onHighlightModeChange.ts │ │ │ │ ├── onIgnoreOutliersChange.ts │ │ │ │ ├── onLegendsChange.ts │ │ │ │ ├── onMetricsValueKeyChange.ts │ │ │ │ ├── onMetricsVisibilityChange.ts │ │ │ │ ├── onNotificationAdd.ts │ │ │ │ ├── onNotificationDelete.ts │ │ │ │ ├── onParamsVisibilityChange.ts │ │ │ │ ├── onResetConfigData.ts │ │ │ │ ├── onRowHeightChange.ts │ │ │ │ ├── onRowSelect.ts │ │ │ │ ├── onRowVisibilityChange.ts │ │ │ │ ├── onRowsVisibilityChange.ts │ │ │ │ ├── onRunsTagsChange.ts │ │ │ │ ├── onSearchQueryCopy.ts │ │ │ │ ├── onSelectAdvancedQueryChange.ts │ │ │ │ ├── onSelectOptionsChange.ts │ │ │ │ ├── onSelectRunQueryChange.ts │ │ │ │ ├── onShuffleChange.ts │ │ │ │ ├── onSmoothingChange.ts │ │ │ │ ├── onSortFieldsChange.ts │ │ │ │ ├── onTableDiffShow.ts │ │ │ │ ├── onTableResizeEnd.ts │ │ │ │ ├── onTableResizeModeChange.ts │ │ │ │ ├── onTableRowClick.ts │ │ │ │ ├── onTableRowHover.ts │ │ │ │ ├── onTableSortChange.ts │ │ │ │ ├── onToggleColumnsColorScales.ts │ │ │ │ ├── onZoomChange.ts │ │ │ │ ├── resetChartZoom.ts │ │ │ │ ├── resetModelOnError.ts │ │ │ │ ├── setAggregationEnabled.ts │ │ │ │ ├── setComponentRefs.ts │ │ │ │ ├── setDefaultAppConfigData.ts │ │ │ │ ├── setRequestProgress.ts │ │ │ │ ├── setRequestStatus.ts │ │ │ │ ├── sortDependingArrays.ts │ │ │ │ ├── toggleSelectAdvancedMode.ts │ │ │ │ ├── updateColumnsWidths.ts │ │ │ │ ├── updateTableSortFields.ts │ │ │ │ ├── updateURL.ts │ │ │ │ └── updateUrlParam.ts │ │ │ │ ├── arrayBufferToBase64.ts │ │ │ │ ├── changeDasharraySize.ts │ │ │ │ ├── contextToString.ts │ │ │ │ ├── d3 │ │ │ │ ├── areaGenerator.ts │ │ │ │ ├── clearArea.ts │ │ │ │ ├── drawArea.ts │ │ │ │ ├── drawAxes.ts │ │ │ │ ├── drawBrush.ts │ │ │ │ ├── drawHoverAttributes.ts │ │ │ │ ├── drawLegends.ts │ │ │ │ ├── drawLines.ts │ │ │ │ ├── drawParallelAxes.ts │ │ │ │ ├── drawParallelAxesBrush.ts │ │ │ │ ├── drawParallelColorIndicator.ts │ │ │ │ ├── drawParallelHoverAttributes.ts │ │ │ │ ├── drawParallelLines.ts │ │ │ │ ├── drawPoints.ts │ │ │ │ ├── drawScatterTrendline.ts │ │ │ │ ├── drawUnableToRender.ts │ │ │ │ ├── getAxisScale.ts │ │ │ │ ├── getColorFromRange.ts │ │ │ │ ├── getCoordinates.ts │ │ │ │ ├── getDimensionValue.ts │ │ │ │ ├── index.ts │ │ │ │ ├── lineGenerator.ts │ │ │ │ ├── processLineChartData.ts │ │ │ │ ├── symbolGenerator.ts │ │ │ │ └── tickFormatting.ts │ │ │ │ ├── decodeWithBase58Checker.ts │ │ │ │ ├── document │ │ │ │ └── documentTitle.ts │ │ │ │ ├── encoder │ │ │ │ ├── encoder.ts │ │ │ │ ├── format_bytes.ts │ │ │ │ └── streamEncoding.ts │ │ │ │ ├── filterArrayByIndexes.ts │ │ │ │ ├── formatAnsiToHtml.ts │ │ │ │ ├── formatByAlignment.ts │ │ │ │ ├── formatSystemMetricName.ts │ │ │ │ ├── formatToPositiveNumber.ts │ │ │ │ ├── formatValue.ts │ │ │ │ ├── generateId.ts │ │ │ │ ├── getAdvancedSuggestions.ts │ │ │ │ ├── getBiggestImageFromList.ts │ │ │ │ ├── getCaretPosition.ts │ │ │ │ ├── getClosestValue.ts │ │ │ │ ├── getColumnOptions.ts │ │ │ │ ├── getMinAndMaxBetweenArrays.ts │ │ │ │ ├── getObjectPaths.ts │ │ │ │ ├── getPositionBasedOnOverflow.ts │ │ │ │ ├── getSmoothenedData.ts │ │ │ │ ├── getSortedFields.ts │ │ │ │ ├── getStateFromLocalStorage.ts │ │ │ │ ├── getStateFromUrl.ts │ │ │ │ ├── getTooltipContent.ts │ │ │ │ ├── getUrlWithParam.ts │ │ │ │ ├── getValueByField.ts │ │ │ │ ├── getValuesMedian.ts │ │ │ │ ├── helper │ │ │ │ ├── downloadLink │ │ │ │ │ └── downloadLink.ts │ │ │ │ ├── float64FromUint8 │ │ │ │ │ └── float64FromUint8.ts │ │ │ │ ├── getPathSegments │ │ │ │ │ ├── getPathSegments.test.ts │ │ │ │ │ └── getPathSegments.ts │ │ │ │ ├── getSVGString │ │ │ │ │ ├── getSVGString.test.ts │ │ │ │ │ └── getSVGString.ts │ │ │ │ ├── getValue │ │ │ │ │ ├── getValue.test.ts │ │ │ │ │ └── getValue.ts │ │ │ │ ├── imgSource2Image │ │ │ │ │ └── imgSource2Image.ts │ │ │ │ ├── inIframe │ │ │ │ │ └── inIframe.ts │ │ │ │ ├── index.ts │ │ │ │ ├── measureTextWidth │ │ │ │ │ ├── measureTextWidth.test.ts │ │ │ │ │ └── measureTextWidth.ts │ │ │ │ └── toTextEllipsis │ │ │ │ │ ├── toTextEllipsis.test.ts │ │ │ │ │ └── toTextEllipsis.ts │ │ │ │ ├── hexToRgbA.ts │ │ │ │ ├── isMetricHash.ts │ │ │ │ ├── isSystemMetric.ts │ │ │ │ ├── jsonParse.ts │ │ │ │ ├── minMaxOfArray.ts │ │ │ │ ├── object │ │ │ │ ├── getObjectPaths.ts │ │ │ │ └── traverseTree.ts │ │ │ │ ├── onCopyToClipBoard.ts │ │ │ │ ├── processDurationTime.ts │ │ │ │ ├── regression │ │ │ │ ├── linearRegression.test.ts │ │ │ │ ├── linearRegression.ts │ │ │ │ ├── loess.test.ts │ │ │ │ └── loess.ts │ │ │ │ ├── removeOutliers.ts │ │ │ │ ├── removeSyntaxErrBrackets.ts │ │ │ │ ├── roundValue.ts │ │ │ │ ├── saveRecentSearches.ts │ │ │ │ ├── shortEnglishHumanizer.ts │ │ │ │ ├── shortenRunPropLabel.ts │ │ │ │ ├── showAutocompletion.ts │ │ │ │ ├── smoothingData.ts │ │ │ │ ├── stopPropagation.ts │ │ │ │ ├── storage.ts │ │ │ │ ├── store │ │ │ │ └── createSlice.ts │ │ │ │ ├── stringToColor.ts │ │ │ │ ├── stringToPath.ts │ │ │ │ ├── toFormatData.ts │ │ │ │ └── valueToType │ │ │ │ ├── valueToType.test.ts │ │ │ │ └── valueToType.ts │ │ ├── tasks │ │ │ ├── bundle-analyzer.js │ │ │ ├── cli │ │ │ │ ├── README.md │ │ │ │ ├── commands │ │ │ │ │ └── createComponent.js │ │ │ │ ├── index.js │ │ │ │ └── src │ │ │ │ │ └── componentData.js │ │ │ └── index-html-template-generator.js │ │ └── tsconfig.json │ ├── utils.py │ └── uwsgi.ini └── xgboost.py ├── docker ├── Dockerfile ├── build-wheels.sh └── create-docker-image.sh ├── docs ├── Makefile ├── make.bat ├── requirements.txt └── source │ ├── _static │ └── images │ │ ├── examples │ │ └── images_explorer_gan │ │ │ ├── gan_0.png │ │ │ ├── gan_1.png │ │ │ ├── gan_ema_0.png │ │ │ ├── gan_ema_1.png │ │ │ ├── gans_comparison.png │ │ │ ├── gans_comparison_cut.png │ │ │ └── gans_comparison_cut_2.png │ │ ├── logo.svg │ │ ├── quick_start │ │ ├── ui-home.png │ │ ├── ui-metrics-search.png │ │ └── ui-metrics.png │ │ ├── ui │ │ ├── overview │ │ │ ├── images.png │ │ │ ├── metrics.png │ │ │ ├── params.png │ │ │ ├── runs.png │ │ │ └── single_run.png │ │ └── run_details │ │ │ └── run-overview-artifacts.png │ │ └── using │ │ ├── jupyter.png │ │ ├── jupyter │ │ ├── create-configuration.png │ │ ├── sagemaker-full-view.png │ │ ├── sagemaker-notebook.png │ │ └── sagemaker-terminal.png │ │ └── k8s │ │ ├── basic_k8s_deployment_final.png │ │ └── basic_k8s_deployment_vol.png │ ├── conf.py │ ├── examples │ ├── images_explorer_gan.md │ └── overview.md │ ├── index.rst │ ├── overview.md │ ├── quick_start │ ├── convert_data.md │ ├── integrations.md │ ├── next_steps.md │ ├── setup.md │ └── supported_types.md │ ├── refs │ ├── cli.md │ ├── sdk.rst │ └── storage.rst │ ├── ui │ ├── guides.md │ ├── overview.md │ ├── overview │ │ └── UI_basics.md │ └── pages │ │ ├── bookmarks.md │ │ ├── explorers.md │ │ ├── home_page.md │ │ ├── reports.md │ │ ├── run_management.md │ │ ├── table.md │ │ └── tags.md │ ├── understanding │ ├── QL_concepts.md │ ├── concepts.md │ ├── data_storage.md │ ├── glossary.md │ ├── metric_step_hashing.md │ ├── overview.md │ ├── remote_tracking.md │ ├── running_aim_with_profiling.md │ └── storage_indexing.md │ └── using │ ├── artifacts.md │ ├── callbacks.md │ ├── configure_runs.md │ ├── integration_guides.md │ ├── jupyter_notebook_ui.md │ ├── k8s_deployment.md │ ├── k8s_deployment_rt.md │ ├── logging.md │ ├── manage_runs.md │ ├── notifications.md │ ├── query_runs.md │ ├── remote_tracking.md │ ├── sagemaker_notebook_ui.md │ ├── search.md │ └── training_monitoring.md ├── examples ├── .gitignore ├── acme_track.py ├── catboost_track.py ├── fastai_track.py ├── hugging_face_track.py ├── keras_track.py ├── keras_tuner_track.py ├── lightgbm_track.py ├── mxnet_track.py ├── optuna_track.py ├── paddle_track.py ├── prophet_track.py ├── pytorch_ignite_track.py ├── pytorch_lightning_track.py ├── pytorch_track.py ├── pytorch_track_images.py ├── requirements.txt ├── sb3_track.py ├── tensorboard_aim_sync.py ├── tensorflow_keras_track.py └── xgboost_track.py ├── main.py ├── package-lock.json ├── performance_tests ├── BASELINE ├── __init__.py ├── base.py ├── conftest.py ├── requirements.txt ├── sdk │ ├── __init__.py │ ├── queries.py │ ├── test_data_collection.py │ ├── test_query.py │ └── utils.py ├── storage │ ├── __init__.py │ ├── test_container_open.py │ ├── test_iterative_access.py │ ├── test_random_access.py │ └── utils.py └── utils.py ├── pyproject.toml ├── pytest.ini ├── requirements.dev.txt ├── requirements.txt ├── ruff.toml ├── setup.py ├── tests ├── README.md ├── __init__.py ├── api │ ├── __init__.py │ ├── test_dashboards_api.py │ ├── test_project_api.py │ ├── test_run_api.py │ ├── test_run_images_api.py │ └── test_structured_data_api.py ├── base.py ├── conftest.py ├── ext │ ├── __init__.py │ ├── test_tensorboard_run.py │ └── test_tensorboard_tracker.py ├── integrations │ ├── __init__.py │ ├── test_deeplake_dataset.py │ ├── test_dvc_metadata.py │ ├── test_hf_datasets.py │ └── test_hub_dataset.py ├── requirements.txt ├── sdk │ ├── __init__.py │ ├── test_image_construction.py │ ├── test_resource_tracker.py │ ├── test_run_apis.py │ ├── test_run_creation_checks.py │ ├── test_run_finalization_time.py │ ├── test_run_metric_types.py │ ├── test_run_track_type_checking.py │ ├── test_run_write_container_data.py │ └── test_utils.py ├── storage │ ├── __init__.py │ ├── test_query.py │ ├── test_query_with_epoch_none.py │ └── test_structured_db.py └── utils.py └── troubleshooting ├── TROUBLESHOOTING.md ├── __init__.py └── base_project_statistics.py /.gitattributes: -------------------------------------------------------------------------------- 1 | *.ts linguist-detectable=false 2 | *.tsx linguist-detectable=false 3 | *.scss linguist-detectable=false 4 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | /aim/web/ui/* @roubkar 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 💬 Discord 4 | url: http://community.aimstack.io 5 | about: Chat with Aim community 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Typos and doc fixes 3 | about: Typos and doc fixes 4 | title: '' 5 | labels: area / docs 6 | assignees: '' 7 | --- 8 | 9 | ## 📚 Documentation 10 | 11 | For typos and doc fixes, please go ahead and: 12 | 13 | 1. Create an issue. 14 | 1. Fix the typo. 15 | 1. Submit a PR. 16 | 17 | For very simple fixes, you can submit a PR without a linked issue. 18 | 19 | Thanks! 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Ask a question 3 | about: Ask and answer Aim related questions 4 | title: '' 5 | labels: type / question 6 | assignees: '' 7 | --- 8 | 9 | ## ❓Question 10 | -------------------------------------------------------------------------------- /.github/scripts/override-version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | IFS='.' read -r -a current_version <<< `cat ./aim/VERSION` 4 | 5 | new_major=${current_version[0]} 6 | new_minor=`expr ${current_version[1]} + 1` 7 | version_suffix=dev$(date -u +%Y%m%d) 8 | 9 | new_version=$new_major.$new_minor.0.$version_suffix 10 | 11 | echo $new_version > ./aim/VERSION -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md LICENSE aim/VERSION 2 | recursive-include aim/storage *.h *.hpp *.cpp *.cxx *.pxd *.pyx 3 | recursive-include aim/storage/migrations * 4 | recursive-include aim/web/migrations * 5 | 6 | -------------------------------------------------------------------------------- /aim/VERSION: -------------------------------------------------------------------------------- 1 | 3.29.1 2 | -------------------------------------------------------------------------------- /aim/__init__.py: -------------------------------------------------------------------------------- 1 | import aimrocks 2 | 3 | from aim.cli.manager.manager import run_process 4 | from aim.ext.notebook.notebook import load_ipython_extension 5 | from aim.sdk import * # noqa: F403 6 | from aim.utils.deprecation import python_version_deprecation_check 7 | 8 | 9 | python_version_deprecation_check() 10 | -------------------------------------------------------------------------------- /aim/__version__.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | here = os.path.abspath(os.path.dirname(__file__)) 5 | 6 | version_file = f'{here}/VERSION' 7 | 8 | 9 | __version__ = None 10 | with open(version_file) as vf: 11 | __version__ = vf.read().strip() 12 | -------------------------------------------------------------------------------- /aim/acme.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK acme interface 2 | from aim.sdk.adapters.acme import AimCallback as AimCallback 3 | from aim.sdk.adapters.acme import AimWriter as AimWriter 4 | -------------------------------------------------------------------------------- /aim/catboost.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Catboost interface 2 | from aim.sdk.adapters.catboost import AimLogger # noqa: F401 3 | -------------------------------------------------------------------------------- /aim/cli/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/__init__.py -------------------------------------------------------------------------------- /aim/cli/configs.py: -------------------------------------------------------------------------------- 1 | INIT_NAME = 'init' 2 | VERSION_NAME = 'version' 3 | UP_NAME = 'up' 4 | SERVER_NAME = 'server' 5 | RUNS_NAME = 'runs' 6 | CONVERT = 'convert' 7 | STORAGE = 'storage' 8 | -------------------------------------------------------------------------------- /aim/cli/convert/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/convert/__init__.py -------------------------------------------------------------------------------- /aim/cli/convert/processors/__init__.py: -------------------------------------------------------------------------------- 1 | from .mlflow import parse_mlflow_logs 2 | from .tensorboard import parse_tb_logs 3 | from .wandb import parse_wandb_logs 4 | -------------------------------------------------------------------------------- /aim/cli/init/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/init/__init__.py -------------------------------------------------------------------------------- /aim/cli/manager/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/manager/__init__.py -------------------------------------------------------------------------------- /aim/cli/runs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/runs/__init__.py -------------------------------------------------------------------------------- /aim/cli/server/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/server/__init__.py -------------------------------------------------------------------------------- /aim/cli/storage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/storage/__init__.py -------------------------------------------------------------------------------- /aim/cli/up/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/up/__init__.py -------------------------------------------------------------------------------- /aim/cli/version/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/cli/version/__init__.py -------------------------------------------------------------------------------- /aim/cli/version/commands.py: -------------------------------------------------------------------------------- 1 | import click 2 | 3 | from aim.__version__ import __version__ as aim_version 4 | 5 | 6 | @click.command() 7 | def version(): 8 | click.echo('Aim v{}'.format(aim_version)) 9 | -------------------------------------------------------------------------------- /aim/distributed_hugging_face.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK distributed hugging face interface 2 | from aim.sdk.adapters.distributed_hugging_face import AimCallback # noqa: F401 3 | -------------------------------------------------------------------------------- /aim/ext/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/ext/__init__.py -------------------------------------------------------------------------------- /aim/ext/notebook/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/ext/notebook/__init__.py -------------------------------------------------------------------------------- /aim/ext/notifier/base_notifier.py: -------------------------------------------------------------------------------- 1 | from typing import Optional 2 | 3 | 4 | class BaseNotifier(object): 5 | def __init__(self, _id: str): 6 | self._id = _id 7 | 8 | def __repr__(self): 9 | return f'<{self.__class__.__name__} object at {id(self)}>' 10 | 11 | def notify(self, message: Optional[str] = None, **kwargs): 12 | raise NotImplementedError 13 | -------------------------------------------------------------------------------- /aim/ext/notifier/config_default.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "version": "1.0", 4 | "notifiers": { 5 | "b6487000-b521-4a2a-a42b-8fee1b7fa43d": { 6 | "id": "b6487000-b521-4a2a-a42b-8fee1b7fa43d", 7 | "type": "logger", 8 | "status": "enabled", 9 | "arguments": { 10 | "message": "❗️ Something wrong with Run '{run.hash}'. Please check. ❗️" 11 | } 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /aim/ext/notifier/config_empty.json: -------------------------------------------------------------------------------- 1 | { 2 | "notifications": { 3 | "version": "1.0", 4 | "notifiers": {} 5 | } 6 | } -------------------------------------------------------------------------------- /aim/ext/resource/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.ext.resource.configs import * # noqa: F403 2 | from aim.ext.resource.tracker import ResourceTracker 3 | -------------------------------------------------------------------------------- /aim/ext/resource/configs.py: -------------------------------------------------------------------------------- 1 | # Aim Resource Collector 2 | AIM_RESOURCE_METRIC_PREFIX = '__system__' 3 | DEFAULT_SYSTEM_TRACKING_INT = 10 4 | -------------------------------------------------------------------------------- /aim/ext/resource/utils.py: -------------------------------------------------------------------------------- 1 | def round10e5(val): 2 | return round(val * 10e5) / 10e5 3 | -------------------------------------------------------------------------------- /aim/ext/sshfs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/ext/sshfs/__init__.py -------------------------------------------------------------------------------- /aim/ext/task_queue/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/ext/task_queue/__init__.py -------------------------------------------------------------------------------- /aim/ext/tensorboard_tracker/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.ext.tensorboard_tracker.run import Run 2 | -------------------------------------------------------------------------------- /aim/ext/transport/__init__.py: -------------------------------------------------------------------------------- 1 | from .client import Client 2 | -------------------------------------------------------------------------------- /aim/ext/transport/config.py: -------------------------------------------------------------------------------- 1 | # AIM SERVER 2 | AIM_SERVER_DEFAULT_PORT = 53800 3 | AIM_SERVER_DEFAULT_HOST = '0.0.0.0' 4 | AIM_SERVER_MOUNTED_REPO_PATH = '__AIM_SERVER_MOUNT_REPO_PATH__' 5 | AIM_SERVER_BASE_PATH = '__AIM_SERVER_BASE_PATH__' 6 | 7 | AIM_RT_BEARER_TOKEN = '__AIM_RT_BEARER_TOKEN__' 8 | 9 | AIM_CLIENT_SSL_CERTIFICATES_FILE = '__AIM_CLIENT_SSL_CERTIFICATES_FILE__' 10 | -------------------------------------------------------------------------------- /aim/ext/transport/run.py: -------------------------------------------------------------------------------- 1 | from aim.ext.transport.server import create_app 2 | 3 | 4 | app = create_app() 5 | -------------------------------------------------------------------------------- /aim/fastai.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK fast.ai interface 2 | from aim.sdk.adapters.fastai import AimCallback as AimCallback 3 | -------------------------------------------------------------------------------- /aim/hf_dataset.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Hugging Face Datasets interface 2 | from aim.sdk.objects.plugins.hf_datasets_metadata import HFDataset as HFDataset 3 | -------------------------------------------------------------------------------- /aim/hugging_face.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Hugging Face interface 2 | from aim.sdk.adapters.hugging_face import AimCallback as AimCallback 3 | -------------------------------------------------------------------------------- /aim/keras.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Keras interface 2 | from aim.sdk.adapters.keras import AimCallback as AimCallback 3 | from aim.sdk.adapters.keras import AimTracker as AimTracker 4 | -------------------------------------------------------------------------------- /aim/keras_tuner.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Keras-Tuner interface 2 | from aim.sdk.adapters.keras_tuner import AimCallback as AimCallback 3 | -------------------------------------------------------------------------------- /aim/lightgbm.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK LightGBM interface 2 | from aim.sdk.adapters.lightgbm import AimCallback # noqa: F401 3 | -------------------------------------------------------------------------------- /aim/mxnet.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK mxnet interface 2 | from aim.sdk.adapters.mxnet import AimLoggingHandler as AimLoggingHandler 3 | -------------------------------------------------------------------------------- /aim/optuna.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Optuna interface 2 | from aim.sdk.adapters.optuna import AimCallback as AimCallback 3 | -------------------------------------------------------------------------------- /aim/paddle.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK PaddlePaddle interface 2 | from aim.sdk.adapters.paddle import AimCallback as AimCallback 3 | -------------------------------------------------------------------------------- /aim/prophet.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK Prophet interface 2 | from aim.sdk.adapters.prophet import AimLogger as AimLogger 3 | -------------------------------------------------------------------------------- /aim/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/py.typed -------------------------------------------------------------------------------- /aim/pytorch.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK PyTorch utils 2 | from aim.sdk.adapters.pytorch import track_gradients_dists as track_gradients_dists 3 | from aim.sdk.adapters.pytorch import track_params_dists as track_params_dists 4 | -------------------------------------------------------------------------------- /aim/pytorch_ignite.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK PyTorch Ignite interface 2 | from aim.sdk.adapters.pytorch_ignite import AimLogger as AimLogger 3 | -------------------------------------------------------------------------------- /aim/pytorch_lightning.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK PyTorch Lightning interface 2 | from aim.sdk.adapters.pytorch_lightning import AimLogger as AimLogger 3 | -------------------------------------------------------------------------------- /aim/sb3.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK sb3 interface 2 | from aim.sdk.adapters.sb3 import AimCallback as AimCallback 3 | -------------------------------------------------------------------------------- /aim/sdk/adapters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/sdk/adapters/__init__.py -------------------------------------------------------------------------------- /aim/sdk/callbacks/__init__.py: -------------------------------------------------------------------------------- 1 | import aim.sdk.callbacks.events 2 | 3 | from aim.sdk.callbacks.caller import Caller 4 | from aim.sdk.callbacks.helpers import predefine_event 5 | 6 | 7 | event = predefine_event 8 | 9 | __all__ = ['Caller', 'event', 'events'] 10 | -------------------------------------------------------------------------------- /aim/sdk/configs.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | AIM_ENABLE_TRACKING_THREAD = '__AIM_ENABLE_TRACKING_THREAD__' 5 | AIM_REPO_NAME = '__AIM_REPO_NAME__' 6 | AIM_RUN_INDEXING_TIMEOUT = '__AIM_RUN_INDEXING_TIMEOUT_SECONDS__' 7 | 8 | 9 | def get_aim_repo_name(): 10 | return os.environ.get(AIM_REPO_NAME) or '.aim' 11 | -------------------------------------------------------------------------------- /aim/sdk/data_version.py: -------------------------------------------------------------------------------- 1 | DATA_VERSION = (1, 3) 2 | -------------------------------------------------------------------------------- /aim/sdk/errors.py: -------------------------------------------------------------------------------- 1 | class RepoIntegrityError(RuntimeError): 2 | pass 3 | 4 | 5 | class MissingRunError(RuntimeError): 6 | pass 7 | 8 | 9 | class RunLockingError(RuntimeError): 10 | pass 11 | -------------------------------------------------------------------------------- /aim/sdk/logging/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.sdk.logging.log_record import LogRecord, LogRecords 2 | -------------------------------------------------------------------------------- /aim/sdk/objects/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.sdk.objects.audio import Audio 2 | from aim.sdk.objects.distribution import Distribution 3 | from aim.sdk.objects.figure import Figure 4 | from aim.sdk.objects.image import Image 5 | from aim.sdk.objects.text import Text 6 | -------------------------------------------------------------------------------- /aim/sdk/objects/io/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/sdk/objects/io/__init__.py -------------------------------------------------------------------------------- /aim/sdk/objects/plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/sdk/objects/plugins/__init__.py -------------------------------------------------------------------------------- /aim/sdk/sequences/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/sdk/sequences/__init__.py -------------------------------------------------------------------------------- /aim/sdk/sequences/sequence_type_map.py: -------------------------------------------------------------------------------- 1 | SEQUENCE_TYPE_MAP = { 2 | 'int': 'metric', 3 | 'float': 'metric', 4 | 'float64': 'metric', 5 | 'number': 'metric', 6 | 'aim.image': 'images', 7 | 'list(aim.image)': 'images', 8 | 'aim.audio': 'audios', 9 | 'list(aim.audio)': 'audios', 10 | 'aim.text': 'texts', 11 | 'list(aim.text)': 'texts', 12 | 'aim.distribution': 'distributions', 13 | 'aim.figure': 'figures', 14 | } 15 | -------------------------------------------------------------------------------- /aim/sdk/types.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | from aim.storage.types import * # noqa: F403 4 | 5 | 6 | class QueryReportMode(Enum): 7 | DISABLED = 0 8 | PROGRESS_BAR = 1 9 | PROGRESS_TUPLE = 2 10 | -------------------------------------------------------------------------------- /aim/storage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/storage/__init__.py -------------------------------------------------------------------------------- /aim/storage/arrayview.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | cdef class ArrayView: 5 | """Array of homogeneous elements with sparse indices. 6 | Interface for working with array as a non-sparse array is available for cases 7 | when index values are not important. 8 | """ 9 | pass 10 | -------------------------------------------------------------------------------- /aim/storage/artifacts/__init__.py: -------------------------------------------------------------------------------- 1 | from .artifact_registry import registry 2 | from .artifact_storage import AbstractArtifactStorage as ArtifactStorage 3 | -------------------------------------------------------------------------------- /aim/storage/containertreeview.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | from aim.storage.treeview cimport TreeView 5 | 6 | from aim.storage cimport encoding as E 7 | from aim.storage.encoding.encoding cimport decode 8 | from aim.storage.container cimport Container 9 | 10 | cdef class ContainerTreeView(TreeView): 11 | cdef public Container container 12 | -------------------------------------------------------------------------------- /aim/storage/encoding/__init__.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | from aim.storage.encoding.encoding_native cimport * 5 | from aim.storage.encoding.encoding cimport * 6 | -------------------------------------------------------------------------------- /aim/storage/encoding/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.storage.encoding.encoding import * # noqa: F403 2 | from aim.storage.encoding.encoding_native import * # noqa: F403 3 | -------------------------------------------------------------------------------- /aim/storage/env.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | import cython 4 | import pyximport 5 | 6 | 7 | logger = logging.getLogger(__name__) 8 | 9 | 10 | # if not cython.compiled: 11 | pyximport.install(inplace=True, language_level=3, build_in_temp=False, setup_args={'language': 'c++'}) 12 | 13 | 14 | def log_status(): 15 | logger.info(f'compiled: {cython.compiled}') 16 | -------------------------------------------------------------------------------- /aim/storage/hashing/__init__.pxd: -------------------------------------------------------------------------------- 1 | from aim.storage.hashing.c_hash cimport * 2 | from aim.storage.hashing.hashing cimport * 3 | -------------------------------------------------------------------------------- /aim/storage/hashing/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.storage.hashing.hashing import hash_auto 2 | -------------------------------------------------------------------------------- /aim/storage/hashing/c_hash.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | cdef extern from "hash/hash.h": 5 | cdef Py_hash_t le_Py_HashDouble( 6 | double v 7 | ); 8 | -------------------------------------------------------------------------------- /aim/storage/hashing/c_hash.pyxbld: -------------------------------------------------------------------------------- 1 | from Cython.Build import cythonize 2 | 3 | def make_ext(modname, pyxfilename): 4 | print(modname) 5 | return cythonize(pyxfilename, language_level = 3, annotate = True)[0] 6 | -------------------------------------------------------------------------------- /aim/storage/inmemorytreeview.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | from aim.storage.treeview cimport TreeView 5 | 6 | cdef class InMemoryTreeView(TreeView): 7 | cdef public container 8 | cdef public _constructed 9 | -------------------------------------------------------------------------------- /aim/storage/migrations/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /aim/storage/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/storage/migrations/__init__.py -------------------------------------------------------------------------------- /aim/storage/structured/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/storage/structured/__init__.py -------------------------------------------------------------------------------- /aim/storage/structured/sql_engine/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/storage/structured/sql_engine/__init__.py -------------------------------------------------------------------------------- /aim/storage/treearrayview.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | from aim.storage.arrayview cimport ArrayView 5 | from aim.storage.treeview cimport TreeView 6 | 7 | cdef class TreeArrayView(ArrayView): 8 | cdef: 9 | public TreeView tree 10 | public object dtype 11 | -------------------------------------------------------------------------------- /aim/storage/treeview.pxd: -------------------------------------------------------------------------------- 1 | # distutils: language = c++ 2 | # cython: language_level = 3 3 | 4 | cdef class TreeView: 5 | cdef: 6 | object __weakref__ 7 | 8 | cpdef view(self, object path, bint resolve = *) 9 | cpdef object make_array(self, object path = *) 10 | cpdef object collect(self, object path = *, bint strict = *, bint resolve_objects = *) 11 | -------------------------------------------------------------------------------- /aim/tensorflow.py: -------------------------------------------------------------------------------- 1 | # Alias to SDK TensorFlow Keras interface 2 | from aim.sdk.adapters.tensorflow import AimCallback as AimCallback 3 | from aim.sdk.adapters.tensorflow import AimTracker as AimTracker 4 | -------------------------------------------------------------------------------- /aim/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.ext.exception_resistant import disable_safe_mode as disable_safe_mode 2 | from aim.ext.exception_resistant import enable_safe_mode as enable_safe_mode 3 | -------------------------------------------------------------------------------- /aim/web/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/__init__.py -------------------------------------------------------------------------------- /aim/web/api/dashboard_apps/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/dashboard_apps/__init__.py -------------------------------------------------------------------------------- /aim/web/api/dashboards/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/dashboards/__init__.py -------------------------------------------------------------------------------- /aim/web/api/experiments/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/experiments/__init__.py -------------------------------------------------------------------------------- /aim/web/api/projects/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/projects/__init__.py -------------------------------------------------------------------------------- /aim/web/api/reports/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/reports/__init__.py -------------------------------------------------------------------------------- /aim/web/api/runs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/runs/__init__.py -------------------------------------------------------------------------------- /aim/web/api/tags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/api/tags/__init__.py -------------------------------------------------------------------------------- /aim/web/middlewares/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/middlewares/__init__.py -------------------------------------------------------------------------------- /aim/web/middlewares/profiler/__init__.py: -------------------------------------------------------------------------------- 1 | from aim.web.middlewares.profiler.profiler import PyInstrumentProfilerMiddleware 2 | -------------------------------------------------------------------------------- /aim/web/migrations/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /aim/web/run.py: -------------------------------------------------------------------------------- 1 | from aim.web.api import create_app 2 | 3 | 4 | app = create_app() 5 | -------------------------------------------------------------------------------- /aim/web/ui/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = lf -------------------------------------------------------------------------------- /aim/web/ui/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | /public/vs 8 | 9 | # testing 10 | /coverage 11 | .vscode 12 | 13 | # production 14 | /build 15 | 16 | # misc 17 | .DS_Store 18 | .env.local 19 | .env.development.local 20 | .env.test.local 21 | .env.production.local 22 | 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | Desktop 28 | -------------------------------------------------------------------------------- /aim/web/ui/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | legacy-peer-deps=true -------------------------------------------------------------------------------- /aim/web/ui/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "jsxSingleQuote": true, 8 | "quoteProps": "as-needed", 9 | "trailingComma": "all", 10 | "bracketSpacing": true, 11 | "arrowParens": "always", 12 | "endOfLine": "lf" 13 | } 14 | -------------------------------------------------------------------------------- /aim/web/ui/.storybook/main.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], 3 | addons: [ 4 | '@storybook/addon-links', 5 | '@storybook/addon-essentials', 6 | '@storybook/addon-interactions', 7 | '@storybook/preset-create-react-app', 8 | ], 9 | framework: '@storybook/react', 10 | }; 11 | -------------------------------------------------------------------------------- /aim/web/ui/.storybook/preview-body.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /aim/web/ui/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | export const parameters = { 2 | actions: { argTypesRegex: '^on[A-Z].*' }, 3 | controls: { 4 | matchers: { 5 | color: /(background|color)$/i, 6 | date: /Date$/, 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /aim/web/ui/aim_ui/VERSION: -------------------------------------------------------------------------------- 1 | ../../../VERSION -------------------------------------------------------------------------------- /aim/web/ui/aim_ui/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/aim_ui/__init__.py -------------------------------------------------------------------------------- /aim/web/ui/aim_ui/build: -------------------------------------------------------------------------------- 1 | ../build -------------------------------------------------------------------------------- /aim/web/ui/public/assets/icomoon/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/public/assets/icomoon/fonts/icomoon.eot -------------------------------------------------------------------------------- /aim/web/ui/public/assets/icomoon/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/public/assets/icomoon/fonts/icomoon.ttf -------------------------------------------------------------------------------- /aim/web/ui/public/assets/icomoon/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/public/assets/icomoon/fonts/icomoon.woff -------------------------------------------------------------------------------- /aim/web/ui/public/assets/inconsolata/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/public/assets/inconsolata/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /aim/web/ui/public/assets/inconsolata/inconsolata.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Inconsolata'; 3 | src: url('./fonts/Inconsolata.ttf') format('truetype'); 4 | font-display: block; 5 | font-weight: 1 999; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/public/assets/inter/fonts/Inter.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/public/assets/inter/fonts/Inter.ttf -------------------------------------------------------------------------------- /aim/web/ui/public/assets/inter/inter.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Inter'; 3 | src: url('./fonts/Inter.ttf') format('truetype'); 4 | font-display: block; 5 | font-weight: 1 999; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/public/favicon.ico -------------------------------------------------------------------------------- /aim/web/ui/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "aimui", 3 | "name": "Aim UI", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } -------------------------------------------------------------------------------- /aim/web/ui/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { render } from '@testing-library/react'; 4 | 5 | import App from './App'; 6 | 7 | //@TODO: The next action on this may try to solve the testing issues by going further with the components used here. 8 | 9 | test('renders learn react link', () => { 10 | // render(); 11 | // const linkElement = screen.getByText(/learn react/i); 12 | // expect(linkElement).toBeInTheDocument(); 13 | }); 14 | -------------------------------------------------------------------------------- /aim/web/ui/src/assets/icons/dropdown-arrow-down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /aim/web/ui/src/assets/icons/dropdown-arrow-up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /aim/web/ui/src/assets/icons/notifications/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /aim/web/ui/src/assets/icons/notifications/success.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /aim/web/ui/src/assets/icons/notifications/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AggregationPopover/AggregationPopover.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .AggregationPopover { 4 | width: 16.5rem; 5 | padding: $space-xs; 6 | &__subtitle { 7 | padding: $space-xs; 8 | text-transform: uppercase; 9 | } 10 | &__Divider { 11 | margin: $space-xs 0; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AudioBox/index.ts: -------------------------------------------------------------------------------- 1 | import AudioBox from './AudioBox'; 2 | 3 | export * from './AudioBox.d'; 4 | export default AudioBox; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AudioPlayer/index.tsx: -------------------------------------------------------------------------------- 1 | import AudioPlayer from './AudioPlayer'; 2 | export default AudioPlayer; 3 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AudioPlayer/state/player.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable-next-line */ 2 | export default { 3 | STATUS: { 4 | PLAY: 'PLAY', 5 | PAUSE: 'PAUSE', 6 | STOP: 'STOP', 7 | }, 8 | VOLUME: { 9 | STATUS: { 10 | MUTE: 'MUTE', 11 | UNMUTE: 'UNMUTE', 12 | }, 13 | DEFAULT_VALUE: 100, 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AutocompleteInput/index.ts: -------------------------------------------------------------------------------- 1 | import AutocompleteInput from './AutocompleteInput'; 2 | 3 | export * from './AutocompleteInput'; 4 | 5 | export default AutocompleteInput; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AxesPropsPopover/index.ts: -------------------------------------------------------------------------------- 1 | import AxesPropsPopover from './AxesPropsPopover'; 2 | 3 | export * from './AxesPropsPopover.d'; 4 | 5 | export * from './config'; 6 | 7 | export default AxesPropsPopover; 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/AxesScalePopover/AxesScalePopover.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .AxesScalePopover { 4 | width: 21.5rem; 5 | padding: 1rem; 6 | 7 | &__subtitle { 8 | text-transform: uppercase; 9 | } 10 | 11 | &__select { 12 | display: flex; 13 | align-items: center; 14 | justify-content: space-between; 15 | margin-top: $space-xs; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/BusyLoaderWrapper/BusyLoaderWrapper.scss: -------------------------------------------------------------------------------- 1 | .BusyLoaderWrapper { 2 | display: flex; 3 | justify-content: center; 4 | align-items: center; 5 | } 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ChartPanel/ChartGrid/ChartGrid.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .ChartGrid { 4 | min-height: 50%; 5 | padding: 4px; 6 | box-shadow: -1px -1px 0 0 $grey-lighter; 7 | } 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ChartPanel/ChartGrid/index.ts: -------------------------------------------------------------------------------- 1 | import ChartGrid from './ChartGrid'; 2 | 3 | export * from './ChartGrid.d'; 4 | 5 | export default ChartGrid; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ChartPanel/ChartLegends/ChartLegends.d.ts: -------------------------------------------------------------------------------- 1 | import { LegendsDataType } from 'types/services/models/metrics/metricsAppModel'; 2 | 3 | import { LegendsModeEnum } from 'utils/d3'; 4 | 5 | export interface IChartLegendsProps { 6 | data?: LegendsDataType; 7 | mode?: LegendsModeEnum; 8 | readOnly?: boolean; 9 | } 10 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ChartPanel/ChartLegends/index.ts: -------------------------------------------------------------------------------- 1 | import ChartLegends from './ChartLegends'; 2 | 3 | export * from './ChartLegends.d'; 4 | 5 | export default ChartLegends; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ChartPanel/ChartPopover/index.ts: -------------------------------------------------------------------------------- 1 | import ChartPopover from './ChartPopover'; 2 | 3 | export default ChartPopover; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ChartPanel/config.ts: -------------------------------------------------------------------------------- 1 | import { IChartTypeConfig } from 'types/components/ChartPanel/ChartPanel'; 2 | 3 | import LineChart from '../LineChart/LineChart'; 4 | import HighPlot from '../HighPlot/HighPlot'; 5 | import ScatterPlot from '../ScatterPlot/ScatterPlot'; 6 | 7 | export const CHART_TYPES_CONFIG: IChartTypeConfig = { 8 | LineChart, 9 | HighPlot, 10 | ScatterPlot, 11 | }; 12 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/Charts/ScatterPlot/config.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_CIRCLE_COLOR = 'yellow'; 2 | export const DEFAULT_CIRCLE_RADIUS = 5; 3 | 4 | export const DEFAULT_CONTAINER_WIDTH = 800; 5 | export const DEFAULT_CONTAINER_HEIGHT = 600; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/Charts/ScatterPlot/styles.scss: -------------------------------------------------------------------------------- 1 | .Aim_ScatterPlotWrapper { 2 | position: relative; 3 | display: inline-block; 4 | } -------------------------------------------------------------------------------- /aim/web/ui/src/components/CommunityPopup/CommunityPopup.d.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | export interface ICommunityPopupProps { 4 | children: React.ReactNode; 5 | } 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/CommunityPopup/index.tsx: -------------------------------------------------------------------------------- 1 | import CommunityPopup from './CommunityPopup'; 2 | 3 | export * from './CommunityPopup.d'; 4 | 5 | export default CommunityPopup; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ContributionsFeed/ContributionsFeed.d.ts: -------------------------------------------------------------------------------- 1 | export interface IContributionsFeedProps { 2 | data: Record; 3 | loadMore: () => void; 4 | isLoading: boolean; 5 | totalRunsCount?: number; 6 | fetchedCount?: number; 7 | archivedRunsCount?: number; 8 | } 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ContributionsFeed/ContributionsFeed.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .ContributionsFeed { 4 | border-top: none; 5 | &__title { 6 | margin-bottom: $space-sm; 7 | padding: 0 $space-sm; 8 | } 9 | &__content { 10 | margin-top: $space-sm; 11 | padding-bottom: $space-xxxxs; 12 | &-title { 13 | margin-bottom: $space-sm; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ContributionsFeed/FeedItem/index.ts: -------------------------------------------------------------------------------- 1 | import FeedItem from './FeedItem'; 2 | 3 | export * from './FeedItem.d'; 4 | export default FeedItem; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ContributionsFeed/index.ts: -------------------------------------------------------------------------------- 1 | import ContributionsFeed from './ContributionsFeed'; 2 | 3 | export * from './ContributionsFeed.d'; 4 | 5 | export default ContributionsFeed; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ControlPopover/index.ts: -------------------------------------------------------------------------------- 1 | import ControlPopover from './ControlPopover'; 2 | 3 | export default ControlPopover; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/DepthDropdown/DepthDropdown.d.ts: -------------------------------------------------------------------------------- 1 | export interface IDepthDropdownProps { 2 | index: number; 3 | pathValue: string | string[]; 4 | depth: number; 5 | onDepthChange: (value: number, index: number) => void; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/DepthDropdown/index.tsx: -------------------------------------------------------------------------------- 1 | import DepthDropdown from './DepthDropdown'; 2 | 3 | export * from './DepthDropdown.d'; 4 | 5 | export default DepthDropdown; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/DepthSlider/DepthSlider.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export interface IDepthSliderProps { 4 | index?: number; 5 | items: any[]; 6 | depth: number; 7 | onDepthChange: (value: number, index: number) => void; 8 | style?: React.CSSProperties; 9 | valueLabelDisplay?: 'on' | 'auto' | 'off'; 10 | label?: React.ReactNode; 11 | className?: string; 12 | } 13 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/DepthSlider/index.tsx: -------------------------------------------------------------------------------- 1 | import DepthSlider from './DepthSlider'; 2 | 3 | export * from './DepthSlider.d'; 4 | 5 | export default DepthSlider; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ErrorBoundary/index.ts: -------------------------------------------------------------------------------- 1 | import ErrorBoundary from './ErrorBoundary'; 2 | 3 | export default ErrorBoundary; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ExperimentNameBox/ExperimentNameBox.d.ts: -------------------------------------------------------------------------------- 1 | export interface IExperimentNameBoxProps { 2 | experimentName: string; 3 | experimentId: string; 4 | hidden?: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ExperimentNameBox/ExperimentNameBox.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .ExperimentNameBox { 4 | display: flex; 5 | align-items: center; 6 | &.isHidden { 7 | .MuiTypography-root { 8 | color: $primary-color-50; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ExperimentNameBox/index.ts: -------------------------------------------------------------------------------- 1 | import ExperimentNameBox from './ExperimentNameBox'; 2 | 3 | export * from './ExperimentNameBox.d'; 4 | 5 | export default ExperimentNameBox; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ExportPreview/index.tsx: -------------------------------------------------------------------------------- 1 | import ExportPreview from './ExportPreview'; 2 | 3 | export * from './ExportPreview.d'; 4 | 5 | export default ExportPreview; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/FigureBox/FigureBox.d.ts: -------------------------------------------------------------------------------- 1 | import { IBlobURISystemEngine } from 'modules/core/engine/blob-uri-system'; 2 | 3 | export interface FigureBoxProps { 4 | engine: { 5 | blobURI: IBlobURISystemEngine['engine']; 6 | }; 7 | isFullView?: boolean; 8 | blobData: string; 9 | step: number; 10 | context: Record; 11 | format: string; 12 | name: string; 13 | style?: {}; 14 | } 15 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/FigureBox/index.ts: -------------------------------------------------------------------------------- 1 | import FigureBox from './FigureBox'; 2 | 3 | export * from './FigureBox.d'; 4 | export default FigureBox; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/GroupConfigPopover/GroupConfigPopover.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .GroupConfigPopover { 4 | padding: 0.75rem 1rem; 5 | max-width: 500px; 6 | &__item { 7 | margin-bottom: $space-xxxs; 8 | display: flex; 9 | justify-content: space-between; 10 | &_value { 11 | margin-left: $space-xs; 12 | word-break: break-word; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/HighlightModesPopover/HighlightModePopover.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | .HighlightModePopover { 3 | padding: $space-xs; 4 | width: 16.5rem; 5 | } 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/Illustration/index.ts: -------------------------------------------------------------------------------- 1 | import Illustration from './Illustration'; 2 | 3 | export * from './Illustration.d'; 4 | export * from './config'; 5 | 6 | export default Illustration; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ImageBox/ImageBox.d.ts: -------------------------------------------------------------------------------- 1 | import { IBlobURISystemEngine } from 'modules/core/engine/blob-uri-system'; 2 | 3 | export interface ImageBoxProps { 4 | engine: { 5 | blobURI: IBlobURISystemEngine['engine']; 6 | }; 7 | caption?: string; 8 | blobData: string; 9 | step: number; 10 | index: number; 11 | context: Record; 12 | format: string; 13 | name: string; 14 | style?: {}; 15 | isFullView?: boolean; 16 | } 17 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ImageBox/index.ts: -------------------------------------------------------------------------------- 1 | import ImageBox from './ImageBox'; 2 | 3 | export * from './ImageBox.d'; 4 | export default ImageBox; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ImageFullViewPopover/index.ts: -------------------------------------------------------------------------------- 1 | import ImageFullViewPopover from './ImageFullViewPopover'; 2 | 3 | export * from './types.d'; 4 | export * from './ImageFullViewPopover'; 5 | 6 | export default ImageFullViewPopover; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ImagePropertiesPopover/ImagePropertiesPopover.d.ts: -------------------------------------------------------------------------------- 1 | import { IControlProps } from 'types/pages/imagesExplore/components/Controls/Controls'; 2 | 3 | export interface IImagePropertiesPopoverProps { 4 | additionalProperties: IControlProps['additionalProperties']; 5 | onImageSizeChange: IControlProps['onImageSizeChange']; 6 | onImageRenderingChange: IControlProps['onImageRenderingChange']; 7 | onImageAlignmentChange: IControlProps['onImageAlignmentChange']; 8 | } 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ImagePropertiesPopover/index.ts: -------------------------------------------------------------------------------- 1 | import ImagePropertiesPopover from './ImagePropertiesPopover'; 2 | 3 | export * from './ImagePropertiesPopover'; 4 | 5 | export default ImagePropertiesPopover; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/LiveUpdateSettings/LiveUpdateSettings.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .LiveUpdateSettings { 4 | margin-right: 1.5rem; 5 | display: flex; 6 | align-items: flex-end; 7 | &__Text { 8 | margin-right: 0.625em; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/MediaList/MediaList.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimhubio/aim/753f4b18437b8288e1c6f7c894c14a33cba9e7d0/aim/web/ui/src/components/MediaList/MediaList.scss -------------------------------------------------------------------------------- /aim/web/ui/src/components/MediaList/index.ts: -------------------------------------------------------------------------------- 1 | import MediaList from './MediaList'; 2 | 3 | export * from './MediaList'; 4 | export default MediaList; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/MediaPanel/config.ts: -------------------------------------------------------------------------------- 1 | enum MediaTypeEnum { 2 | IMAGE = 'image', 3 | AUDIO = 'audio', 4 | } 5 | 6 | export { MediaTypeEnum }; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/MediaPanel/index.ts: -------------------------------------------------------------------------------- 1 | import MediaPanel from './MediaPanel'; 2 | 3 | export * from './MediaPanel.d'; 4 | export default MediaPanel; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/NameAndDescriptionCard/NameAndDescriptionCard.d.ts: -------------------------------------------------------------------------------- 1 | export interface INameAndDescriptionCardProps { 2 | title?: string; 3 | defaultName?: string; 4 | defaultDescription: string; 5 | onSave: (name: string, description: string) => void; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/NameAndDescriptionCard/index.ts: -------------------------------------------------------------------------------- 1 | import NameAndDescriptionCard from './NameAndDescriptionCard'; 2 | 3 | export * from './NameAndDescriptionCard.d'; 4 | 5 | export default NameAndDescriptionCard; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/NotificationContainer/index.ts: -------------------------------------------------------------------------------- 1 | import NotificationContainer from './NotificationContainer'; 2 | import notificationContainerStore from './NotificationContainerStore'; 3 | import useNotificationContainer from './useNotificationContainer'; 4 | 5 | export * from './NotificationContainer.d'; 6 | export { notificationContainerStore, useNotificationContainer }; 7 | export default NotificationContainer; 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ProgressBar/ProgressBar.d.ts: -------------------------------------------------------------------------------- 1 | import { IRunRequestProgress } from 'utils/app/setRunRequestProgress'; 2 | 3 | export interface IProgressBarProps { 4 | progress: IRunRequestProgress; 5 | processing?: boolean; 6 | pendingStatus?: boolean; 7 | setIsProgressBarVisible?: (isVisible: boolena) => void; 8 | } 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/RangePanel/index.tsx: -------------------------------------------------------------------------------- 1 | import RangePanel from './RangePanel'; 2 | 3 | export * from './RangePanel.d'; 4 | 5 | export default RangePanel; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ResizeElement/ResizableElement.d.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | export interface ResizableElementProps 4 | extends React.HTMLAttributes { 5 | resizingFallback?: React.ReactNode; 6 | children: React.ReactNode | ((resizing: boolean) => React.ReactNode); 7 | hide?: boolean; 8 | } 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ResizeElement/context.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | const ResizeElementContext = React.createContext({ 4 | resizing: false, 5 | }); 6 | 7 | export default ResizeElementContext; 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ResizingFallback/ResizingFallback.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .ResizingFallback { 4 | display: flex; 5 | width: 100%; 6 | height: 100%; 7 | flex-direction: column; 8 | align-items: center; 9 | justify-content: center; 10 | background-color: $primary-color-5; 11 | user-select: none; 12 | text-align: center; 13 | &__text { 14 | padding: $space-xxs $space-sm; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ResizingFallback/ResizingFallback.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { Text } from 'components/kit'; 4 | 5 | import './ResizingFallback.scss'; 6 | 7 | function ResizingFallback() { 8 | return ( 9 |
10 | 11 | Release to resize 12 | 13 |
14 | ); 15 | } 16 | 17 | export default React.memo(ResizingFallback); 18 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ResizingFallback/index.ts: -------------------------------------------------------------------------------- 1 | import ResizingFallback from './ResizingFallback'; 2 | 3 | export default ResizingFallback; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/RouteLeavingGuard/RouteLeavingGuard.d.ts: -------------------------------------------------------------------------------- 1 | export interface IRouteLeavingGuardProps { 2 | when: boolean; 3 | message?: string; 4 | confirmBtnText?: string; 5 | } 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/RouteLeavingGuard/index.ts: -------------------------------------------------------------------------------- 1 | import RouteLeavingGuard from './RouteLeavingGuard'; 2 | 3 | export * from './RouteLeavingGuard.d'; 4 | 5 | export default RouteLeavingGuard; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/RunCreatorBox/RunCreatorBox.d.ts: -------------------------------------------------------------------------------- 1 | export interface IRunCreatorBoxProps { 2 | creatorUsername?: string; 3 | } 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/RunCreatorBox/RunCreatorBox.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .RunCreatorBox { 4 | display: flex; 5 | align-items: center; 6 | &.isHidden { 7 | .MuiTypography-root { 8 | color: $primary-color; 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/RunCreatorBox/index.ts: -------------------------------------------------------------------------------- 1 | import RunCreatorBox from './RunCreatorBox'; 2 | 3 | export * from './RunCreatorBox.d'; 4 | 5 | export default RunCreatorBox; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ScatterPlot/index.ts: -------------------------------------------------------------------------------- 1 | import ScatterPlot from './ScatterPlot'; 2 | 3 | export * from './types.d'; 4 | export * from './ScatterPlot'; 5 | 6 | export default ScatterPlot; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/SliderWithInput/index.ts: -------------------------------------------------------------------------------- 1 | import SliderWithInput from './SliderWithInput'; 2 | 3 | export * from './types.d'; 4 | 5 | export default SliderWithInput; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/SmoothingPopover/SmoothingPopover.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .SmoothingPopover { 4 | width: 24.5rem; 5 | padding: $space-xs; 6 | &__Divider { 7 | margin: $space-xs 0; 8 | } 9 | 10 | &__subtitle { 11 | text-transform: uppercase; 12 | padding: $space-xs $space-xs; 13 | } 14 | &__ToggleButton { 15 | padding: 0 $space-xs; 16 | } 17 | 18 | &__Slider { 19 | margin: 0 $space-xs; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/SplitPane/SplitPane.d.ts: -------------------------------------------------------------------------------- 1 | import { SplitProps } from 'react-split'; 2 | 3 | interface SplitPaneProps extends SplitProps { 4 | resizing?: boolean; 5 | useLocalStorage?: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/SplitPane/SplitPaneItem.d.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | export interface SplitPaneItemProps extends React.HTMLAttributes { 4 | resizingFallback?: React.ReactNode; 5 | children: React.ReactNode | ((resizing: boolean) => React.ReactNode); 6 | hide?: boolean; 7 | } 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/SplitPane/context.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | const SplitPaneContext = React.createContext({ 4 | resizing: false, 5 | }); 6 | 7 | export default SplitPaneContext; 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/SplitPane/index.ts: -------------------------------------------------------------------------------- 1 | import SplitPane from './SplitPane'; 2 | import SplitPaneItem from './SplitPaneItem'; 3 | import SplitPaneContext from './context'; 4 | 5 | export * from './SplitPane.d'; 6 | export * from './SplitPaneItem.d'; 7 | 8 | export { SplitPaneItem, SplitPaneContext }; 9 | 10 | export default SplitPane; 11 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/StatisticsBar/index.ts: -------------------------------------------------------------------------------- 1 | import StatisticsBar from './StatisticsBar'; 2 | 3 | export * from './StatisticsBar.d'; 4 | 5 | export default StatisticsBar; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/StatisticsCard/index.ts: -------------------------------------------------------------------------------- 1 | import StatisticsCard from './StatisticsCard'; 2 | 3 | export * from './StatisticsCard.d'; 4 | 5 | export default StatisticsCard; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/StatusLabel/index.ts: -------------------------------------------------------------------------------- 1 | import StatusLabel from './StatusLabel'; 2 | 3 | export * from './types.d'; 4 | export * from './StatusLabel'; 5 | 6 | export default StatusLabel; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/StatusLabel/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface IStatusLabelProps { 2 | title?: string; 3 | className?: string; 4 | status?: 'success' | 'alert' | 'warning' | 'error'; 5 | disabled?: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/Table/SortOrder.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Sort order for BaseTable 3 | */ 4 | const SortOrder = { 5 | /** 6 | * Sort data in ascending order 7 | */ 8 | ASC: 'asc', 9 | /** 10 | * Sort data in descending order 11 | */ 12 | DESC: 'desc', 13 | }; 14 | 15 | export default SortOrder; 16 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/TableLoader/TableLoader.scss: -------------------------------------------------------------------------------- 1 | .TableLoader__container { 2 | height: 100%; 3 | width: 100%; 4 | display: flex; 5 | flex-direction: column; 6 | padding: 0 1.5rem; 7 | } 8 | .TableLoader__raw { 9 | display: flex; 10 | height: 2.5rem; 11 | .MuiSkeleton-root { 12 | margin-right: 2rem; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/TrendlineOptionsPopover/TrendlineOptionsPopover.d.ts: -------------------------------------------------------------------------------- 1 | import { ITrendlineOptions } from 'types/services/models/scatter/scatterAppModel'; 2 | 3 | export interface ITrendlineOptionsPopoverProps { 4 | trendlineOptions: ITrendlineOptions; 5 | onChangeTrendlineOptions: (options: Partial) => void; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/TrendlineOptionsPopover/index.ts: -------------------------------------------------------------------------------- 1 | import TrendlineOptionsPopover from './TrendlineOptionsPopover'; 2 | 3 | export default TrendlineOptionsPopover; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/VisualizationLegends/index.ts: -------------------------------------------------------------------------------- 1 | import VisualizationLegends from './VisualizationLegends'; 2 | 3 | export * from './VisualizationLegends.d'; 4 | 5 | export default VisualizationLegends; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/VisualizationTooltip/index.ts: -------------------------------------------------------------------------------- 1 | import VisualizationTooltip from './VisualizationTooltip'; 2 | 3 | export * from './VisualizationTooltip.d'; 4 | 5 | export default VisualizationTooltip; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ZoomInPopover/ZoomInPopover.scss: -------------------------------------------------------------------------------- 1 | .ZoomInPopover { 2 | width: 16.5rem; 3 | padding: 0.5rem; 4 | } 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/ZoomOutPopover/ZoomOutPopover.scss: -------------------------------------------------------------------------------- 1 | .ZoomOutPopover { 2 | width: 16.5rem; 3 | padding: 0.5rem; 4 | } 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/ActionCard/ActionCard.d.ts: -------------------------------------------------------------------------------- 1 | import { TooltipProps } from '@material-ui/core/Tooltip'; 2 | 3 | import { IButtonProps } from 'components/kit'; 4 | 5 | export interface IActionCardProps { 6 | title: string; 7 | description: string; 8 | btnTooltip: TooltipProps['title']; 9 | btnText: string; 10 | onAction: () => void; 11 | btnProps: IButtonProps; 12 | } 13 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/ActionCard/index.tsx: -------------------------------------------------------------------------------- 1 | import ActionCard from './ActionCard'; 2 | export * from './ActionCard.d'; 3 | 4 | export default ActionCard; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/AlertBanner/AlertBanner.d.ts: -------------------------------------------------------------------------------- 1 | import { IconName } from 'components/kit/Icon/Icon'; 2 | 3 | type AlertBannerType = 'warning' | 'info' | 'error' | 'success'; 4 | 5 | export interface IAlertBannerProps { 6 | children?: React.ReactNode; 7 | type: AlertBannerType; 8 | visibilityDuration?: number; 9 | isVisiblePermanently?: boolean; 10 | } 11 | 12 | export interface ITypeMetadata { 13 | cssClassName: string; 14 | iconName: IconName; 15 | } 16 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/AlertBanner/index.ts: -------------------------------------------------------------------------------- 1 | import AlertBanner from './AlertBanner'; 2 | 3 | export * from './AlertBanner.d'; 4 | 5 | export default AlertBanner; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/AudioBox/AudioBox.d.ts: -------------------------------------------------------------------------------- 1 | export interface IAudioBoxProps { 2 | data: any; 3 | additionalProperties: any; 4 | style: any; 5 | } 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/AudioBox/index.ts: -------------------------------------------------------------------------------- 1 | import AudioBox from './AudioBox'; 2 | 3 | export * from './AudioBox.d'; 4 | 5 | export default AudioBox; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/AutoSuggestions/AutoSuggestions.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export interface IAutoSuggestionsProps { 4 | suggestionsList: string[]; 5 | suggestionsPosition: { left: number; top: number }; 6 | suggestionsRef: React.RefObject; 7 | inputRef: React.MutableRefObject; 8 | onSuggestionClick: (suggestion: string) => void; 9 | setSuggestionsList: (list: string[]) => void; 10 | } 11 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/AutoSuggestions/index.ts: -------------------------------------------------------------------------------- 1 | import AutoSuggestions from './AutoSuggestions'; 2 | export * from './AutoSuggestions.d'; 3 | 4 | export default AutoSuggestions; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Badge/index.ts: -------------------------------------------------------------------------------- 1 | import Badge from './Badge'; 2 | export * from './Badge.d'; 3 | 4 | export default Badge; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Button/Button.d.ts: -------------------------------------------------------------------------------- 1 | import { ButtonProps } from '@material-ui/core/Button'; 2 | 3 | export interface IButtonProps extends ButtonProps { 4 | withOnlyIcon?: boolean; 5 | size?: ButtonProps['size'] | 'xSmall' | 'xxSmall'; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Button/index.ts: -------------------------------------------------------------------------------- 1 | import Button from './Button'; 2 | export * from './Button.d'; 3 | 4 | export default Button; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Card/index.tsx: -------------------------------------------------------------------------------- 1 | import Card from './Card'; 2 | 3 | export * from './Card'; 4 | 5 | export default Card; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/DataList/SearchBar/index.ts: -------------------------------------------------------------------------------- 1 | import SearchBar from './SearchBar'; 2 | 3 | export default SearchBar; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/DataList/index.tsx: -------------------------------------------------------------------------------- 1 | import DataList from './DataList'; 2 | 3 | export * from './DataList.d'; 4 | 5 | export default DataList; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/DictVisualizer/index.ts: -------------------------------------------------------------------------------- 1 | import DictVisualizer from './DictVisualizer'; 2 | 3 | export * from './DictVisualizer.d'; 4 | 5 | export default DictVisualizer; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Dropdown/config.ts: -------------------------------------------------------------------------------- 1 | const baseSizes = { 2 | small: '1.75rem', 3 | medium: '2rem', 4 | large: '2.25rem', 5 | }; 6 | 7 | const indicatorsContainerSizes = { 8 | small: '1.625rem', 9 | medium: '1.875rem', 10 | large: '2.125rem', 11 | }; 12 | 13 | const labelTopPosition = { 14 | small: '0.59375rem', 15 | medium: '0.46875rem', 16 | large: '0.59375rem', 17 | }; 18 | 19 | export { baseSizes, labelTopPosition, indicatorsContainerSizes }; 20 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Dropdown/index.ts: -------------------------------------------------------------------------------- 1 | import Dropdown from './Dropdown'; 2 | export * from './Dropdown.d'; 3 | 4 | export default Dropdown; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Icon/Icon.scss: -------------------------------------------------------------------------------- 1 | @use 'styles/abstracts/index' as *; 2 | 3 | .Icon { 4 | &__box { 5 | min-width: 1.5rem; 6 | min-height: 1.5rem; 7 | display: flex; 8 | align-items: center; 9 | justify-content: center; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Icon/index.ts: -------------------------------------------------------------------------------- 1 | import Icon from './Icon'; 2 | 3 | export * from './Icon.d'; 4 | export default Icon; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Input/index.tsx: -------------------------------------------------------------------------------- 1 | import Input from './Input'; 2 | 3 | export * from './Input.d'; 4 | 5 | export default Input; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/JsonViewPopover/index.ts: -------------------------------------------------------------------------------- 1 | import JsonViewPopover from './JsonViewPopover'; 2 | 3 | export * from './types.d'; 4 | export * from './JsonViewPopover'; 5 | 6 | export default JsonViewPopover; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/JsonViewPopover/styles.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .JsonViewPopover { 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | padding: $space-unit; 8 | } 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/JsonViewPopover/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface IJsonViewPopoverProps { 2 | json: object; 3 | dictVisualizerSize?: { 4 | width: number; 5 | height: number; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/ListItem/Index.ts: -------------------------------------------------------------------------------- 1 | import ListItem from './ListItem'; 2 | 3 | export * from './ListItem'; 4 | 5 | export default ListItem; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/ListItem/ListItem.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export interface IListItemProps 4 | extends Partial> { 5 | className?: string; 6 | children?: React.ReactNode; 7 | size?: IListITemSize; 8 | onClick?: (event: React.MouseEvent) => void; 9 | } 10 | 11 | export type IListITemSize = 'small' | 'medium' | 'large'; 12 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Menu/index.ts: -------------------------------------------------------------------------------- 1 | import Menu from './Menu'; 2 | import Item from './MenuItem'; 3 | 4 | export * from './Menu'; 5 | export * from './types.d'; 6 | 7 | export const MenuItem = Item; 8 | export default Menu; 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Modal/index.tsx: -------------------------------------------------------------------------------- 1 | import Modal from './Modal'; 2 | 3 | export * from './Modal.d'; 4 | 5 | export default Modal; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/SelectDropdown/index.tsx: -------------------------------------------------------------------------------- 1 | import SelectDropdown from './SelectDropdown'; 2 | 3 | export * from './SelectDropdown.d'; 4 | 5 | export default SelectDropdown; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Slider/Slider.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { SliderProps } from '@material-ui/core'; 4 | 5 | export interface ISliderProps extends SliderProps { 6 | containerClassName?: string; 7 | style?: React.CSSProperties; 8 | onChange?: (event: React.ChangeEvent<{}>, value: number | number[]) => void; 9 | prevIconNode?: React.ReactNode; 10 | nextIconNode?: React.ReactNode; 11 | label?: React.ReactNode; 12 | } 13 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Slider/index.ts: -------------------------------------------------------------------------------- 1 | import Slider from './Slider'; 2 | 3 | export * from './Slider.d'; 4 | 5 | export default Slider; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Spinner/Spinner.d.ts: -------------------------------------------------------------------------------- 1 | export interface ISpinnerProps { 2 | className?: string; 3 | style?: React.StyleHTMLAttributes; 4 | size?: number | string; 5 | thickness?: number; 6 | color?: string; 7 | } 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Spinner/index.tsx: -------------------------------------------------------------------------------- 1 | import Spinner from './Spinner'; 2 | 3 | export * from './Spinner.d'; 4 | 5 | export default Spinner; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Switcher/index.ts: -------------------------------------------------------------------------------- 1 | import Switcher from './Switcher'; 2 | 3 | export * from './Switcher.d'; 4 | export default Switcher; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Test/__snapshots__/Test.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[` - Renders without crashing 1`] = ` 4 | 5 |
8 | 11 | Test Title 1 12 | 13 |
14 |
15 | `; 16 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Test/index.ts: -------------------------------------------------------------------------------- 1 | import Test from './Test'; 2 | 3 | export * from './types.d'; 4 | export * from './Test'; 5 | 6 | export default Test; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Test/styles.scss: -------------------------------------------------------------------------------- 1 | @use 'src/styles/abstracts' as *; 2 | 3 | .Test { 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | } 8 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Test/types.d.ts: -------------------------------------------------------------------------------- 1 | export interface ITestProps { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/Text/index.ts: -------------------------------------------------------------------------------- 1 | import Text from './Text'; 2 | export * from './Text.d'; 3 | export default Text; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/ToggleButton/ToggleButton.d.ts: -------------------------------------------------------------------------------- 1 | import { ButtonProps } from '@material-ui/core'; 2 | 3 | export default interface IToggleButtonProps extends ButtonProps { 4 | onChange: (value: string | number | any, id?: string | number | any) => void; 5 | id?: string | undefined; 6 | leftLabel: string; 7 | rightLabel: string; 8 | leftValue: number | string; 9 | rightValue: number | string; 10 | value: string | number; 11 | title: string; 12 | } 13 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit/ToggleButton/index.ts: -------------------------------------------------------------------------------- 1 | import ToggleButton from './ToggleButton'; 2 | 3 | export * from './ToggleButton.d'; 4 | export default ToggleButton; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/AudioPlayer/AudioPlayer.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export interface AudioPlayerProps extends React.HTMLProps { 4 | audioRef: React.MutableRefObject; 5 | src: string; 6 | isPlaying: boolean; 7 | processing: boolean; 8 | onDownload?: () => void; 9 | caption?: string; 10 | readyToPlay: boolean; 11 | onEnded: () => void; 12 | onCanPlay: () => void; 13 | onPlay: () => void; 14 | onPause: () => void; 15 | } 16 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/AudioPlayer/AudioPlayerProgress/AudioPlayerProgress.d.ts: -------------------------------------------------------------------------------- 1 | export interface AudioPlayerProgressProps { 2 | audio: HTMLAudioElement; 3 | isPlaying: boolean; 4 | src: string; 5 | disabled?: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/AudioPlayer/AudioPlayerProgress/index.ts: -------------------------------------------------------------------------------- 1 | import AudioPlayerProgress from './AudioPlayerProgress'; 2 | 3 | export * from './AudioPlayerProgress.d'; 4 | 5 | export default AudioPlayerProgress; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/AudioPlayer/AudioPlayerVolume/AudioPlayerVolume.d.ts: -------------------------------------------------------------------------------- 1 | export interface AudioPlayerVolumeProps { 2 | audio: HTMLAudioElement; 3 | } 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/AudioPlayer/AudioPlayerVolume/index.ts: -------------------------------------------------------------------------------- 1 | import AudioPlayerVolume from './AudioPlayerVolume'; 2 | 3 | export * from './AudioPlayerVolume.d'; 4 | 5 | export default AudioPlayerVolume; 6 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/AudioPlayer/index.ts: -------------------------------------------------------------------------------- 1 | import AudioPlayer from './AudioPlayer'; 2 | import AudioPlayerProgress from './AudioPlayerProgress'; 3 | import AudioPlayerVolume from './AudioPlayerVolume'; 4 | 5 | export * from './AudioPlayer.d'; 6 | 7 | export { AudioPlayerProgress, AudioPlayerVolume }; 8 | export default AudioPlayer; 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Badge/index.ts: -------------------------------------------------------------------------------- 1 | import Badge from './Badge'; 2 | 3 | export * from './Badge'; 4 | export default Badge; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Box/index.ts: -------------------------------------------------------------------------------- 1 | import Box from './Box'; 2 | 3 | export * from './Box.d'; 4 | export default Box; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Breadcrumb/index.ts: -------------------------------------------------------------------------------- 1 | import Breadcrumb from './Breadcrumb'; 2 | 3 | export * from './Breadcrumb.style'; 4 | export default Breadcrumb; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Button/index.ts: -------------------------------------------------------------------------------- 1 | import Button from './Button'; 2 | 3 | export * from './Button.d'; 4 | export default Button; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/ButtonGroup/ButtonGroup.d.ts: -------------------------------------------------------------------------------- 1 | import { IButtonProps } from '../Button'; 2 | 3 | export interface IButtonGroupProps extends IButtonProps {} 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/ButtonGroup/index.ts: -------------------------------------------------------------------------------- 1 | import ButtonGroup from './ButtonGroup'; 2 | 3 | export * from './ButtonGroup.d'; 4 | export default ButtonGroup; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | import Checkbox from './Checkbox'; 2 | 3 | export * from './Checkbox.d'; 4 | export default Checkbox; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/ControlsButton/index.ts: -------------------------------------------------------------------------------- 1 | import ControlsButton from './ControlsButton'; 2 | 3 | export * from './ControlsButton'; 4 | export default ControlsButton; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Dialog/index.ts: -------------------------------------------------------------------------------- 1 | import Dialog from './Dialog'; 2 | 3 | export * from './Dialog.d'; 4 | export default Dialog; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/FormGroup/FormGroup.d.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export interface IFormGroupProps { 4 | data: { 5 | sectionFields: FormGroupSectionDataType[]; 6 | }[]; 7 | } 8 | 9 | export type FormGroupSectionDataType = { 10 | content: string | number | React.ReactNode; 11 | control?: React.ReactNode; 12 | actions?: { component: React.ReactNode }[]; 13 | }; 14 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/FormGroup/index.ts: -------------------------------------------------------------------------------- 1 | import FormGroup from './FormGroup'; 2 | 3 | export * from './FormGroup.d'; 4 | export default FormGroup; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Icon/index.ts: -------------------------------------------------------------------------------- 1 | import Icon from './Icon'; 2 | 3 | export * from './Icon.d'; 4 | export default Icon; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/IconButton/__snapshots__/IconButton.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[` Renders Correctly 1`] = ` 4 | 5 | 13 | 14 | `; 15 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/IconButton/index.ts: -------------------------------------------------------------------------------- 1 | import IconButton from './IconButton'; 2 | 3 | export * from './IconButton.d'; 4 | export default IconButton; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Input/index.ts: -------------------------------------------------------------------------------- 1 | import Input from './Input'; 2 | 3 | export * from './Input.d'; 4 | export default Input; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Link/index.ts: -------------------------------------------------------------------------------- 1 | import Link from './Link'; 2 | 3 | export * from './Link.d'; 4 | export default Link; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/ListItem/index.ts: -------------------------------------------------------------------------------- 1 | import ListItem from './ListItem'; 2 | 3 | export * from './ListItem.d'; 4 | export default ListItem; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Popover/index.ts: -------------------------------------------------------------------------------- 1 | import Popover from './Popover'; 2 | 3 | export default Popover; 4 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/QueryBadge/index.ts: -------------------------------------------------------------------------------- 1 | import QueryBadge from './QueryBadge'; 2 | 3 | export * from './QueryBadge.d'; 4 | export default QueryBadge; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Radio/index.ts: -------------------------------------------------------------------------------- 1 | import RadioItem, { RadioGroup } from './Radio'; 2 | 3 | export * from './Radio.d'; 4 | 5 | export { RadioGroup }; 6 | export default RadioItem; 7 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Select/index.ts: -------------------------------------------------------------------------------- 1 | import Select from './Select'; 2 | 3 | export * from './Select.d'; 4 | export default Select; 5 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Separator/Separator.style.ts: -------------------------------------------------------------------------------- 1 | import * as Separator from '@radix-ui/react-separator'; 2 | 3 | import { styled } from 'config/stitches'; 4 | 5 | export const SeparatorRoot: any = styled(Separator.Root, { 6 | '&[data-orientation=horizontal]': { minHeight: 1, width: '100%' }, 7 | '&[data-orientation=vertical]': { height: 'inherit', minWidth: 1 }, 8 | }); 9 | -------------------------------------------------------------------------------- /aim/web/ui/src/components/kit_v2/Separator/__snapshots__/Separator.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[` Renders Correctly 1`] = ` 4 | 5 |