diff --git a/.github/workflows/build_and_test_workflow.yml b/.github/workflows/build_and_test_workflow.yml
index f4f5395ea2fd..7b624bb7f1e3 100644
--- a/.github/workflows/build_and_test_workflow.yml
+++ b/.github/workflows/build_and_test_workflow.yml
@@ -346,7 +346,7 @@ jobs:
- name: Set OpenSearch URL
run: |
- echo "OPENSEARCH_URL=https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/${{ env.VERSION }}/latest/linux/x64/tar/dist/opensearch/opensearch-${{ env.VERSION }}-linux-x64.tar.gz" >> $GITHUB_ENV
+ echo "OPENSEARCH_URL=https://artifacts.opensearch.org/snapshots/core/opensearch/${{ env.VERSION }}-SNAPSHOT/opensearch-min-${{ env.VERSION }}-SNAPSHOT-linux-x64-latest.tar.gz" >> $GITHUB_ENV
- name: Verify if OpenSearch is available for version
id: verify-opensearch-exists
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 40f3fce48093..76226d64e1b9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,7 +18,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- [Saved Object Service] Add Repository Factory Provider ([#4149](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4149))
- Enable plugins to augment visualizations with additional data and context ([#4361](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4361))
- New management overview page and rename stack management to dashboard management ([#4287](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4287))
-
+- Reduce the amount of comments in compiled CSS ([#4648](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4648))
### 🐛 Bug Fixes
@@ -43,6 +43,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Migrate from legacy elasticsearch client to opensearch-js client in `osd-opensearch-archiver` package([#4142](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4142))
- Replace the use of `bluebird` in `saved_objects` plugin ([#4026](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4026))
- [Table Visualization] Remove custom styling for text-align:center in favor of OUI utility class. ([#4164](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4164))
+- [Dashboard] Restructure the `Dashboard` plugin folder to be more cohesive with the project ([#4575](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4575))
### 🔩 Tests
diff --git a/package.json b/package.json
index 96ad94d99ce2..705e1fe24307 100644
--- a/package.json
+++ b/package.json
@@ -219,7 +219,7 @@
"source-map-support": "^0.5.19",
"symbol-observable": "^1.2.0",
"tar": "^6.1.11",
- "tinygradient": "0.4.3",
+ "tinygradient": "^1.1.5",
"tinymath": "1.2.1",
"tslib": "^2.0.0",
"type-detect": "^4.0.8",
diff --git a/packages/osd-optimizer/package.json b/packages/osd-optimizer/package.json
index 5ff707dc4f86..e0410c441c38 100644
--- a/packages/osd-optimizer/package.json
+++ b/packages/osd-optimizer/package.json
@@ -48,6 +48,7 @@
"@types/watchpack": "^1.1.6",
"@types/webpack": "^4.41.31",
"babel-loader": "^8.2.3",
+ "comment-stripper": "^0.0.4",
"css-loader": "^5.2.7",
"file-loader": "^6.2.0",
"loader-utils": "^2.0.4",
diff --git a/packages/osd-optimizer/src/worker/webpack.config.ts b/packages/osd-optimizer/src/worker/webpack.config.ts
index b67a13f3c833..03262c4223d2 100644
--- a/packages/osd-optimizer/src/worker/webpack.config.ts
+++ b/packages/osd-optimizer/src/worker/webpack.config.ts
@@ -137,6 +137,12 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker:
sourceMap: !worker.dist,
},
},
+ {
+ loader: 'comment-stripper',
+ options: {
+ language: 'css',
+ },
+ },
],
},
{
@@ -164,6 +170,12 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker:
},
},
},
+ {
+ loader: 'comment-stripper',
+ options: {
+ language: 'css',
+ },
+ },
{
loader: 'sass-loader',
options: {
diff --git a/packages/osd-ui-framework/Gruntfile.js b/packages/osd-ui-framework/Gruntfile.js
index e0565b103736..10295493609c 100644
--- a/packages/osd-ui-framework/Gruntfile.js
+++ b/packages/osd-ui-framework/Gruntfile.js
@@ -28,6 +28,7 @@
* under the License.
*/
+const { strip } = require('comment-stripper');
const sass = require('node-sass');
const postcss = require('postcss');
const postcssConfig = require('@osd/optimizer/postcss.config.js');
@@ -91,7 +92,10 @@ module.exports = function (grunt) {
}
postcss([postcssConfig])
- .process(result.css, { from: src, to: dest })
+ .process(strip(result.css.toString('utf8'), { language: 'css' }), {
+ from: src,
+ to: dest,
+ })
.then((result) => {
grunt.file.write(dest, result.css);
diff --git a/packages/osd-ui-framework/dist/kui_dark.css b/packages/osd-ui-framework/dist/kui_dark.css
index e6d6f76e4f9a..193a7c7f7acc 100644
--- a/packages/osd-ui-framework/dist/kui_dark.css
+++ b/packages/osd-ui-framework/dist/kui_dark.css
@@ -8,577 +8,17 @@
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/**
- * 1. Focus rings shouldn't be visible on scrollable regions, but a11y requires them to be focusable.
- * Browser's supporting `:focus-visible` will still show outline on keyboard focus only.
- * Others like Safari, won't show anything at all.
- * 2. Force the `:focus-visible` when the `tabindex=0` (is tabbable)
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/**
- * 1. Enforce pointer when there's no href.
- * 2. Allow these styles to be applied to a button element.
- */
-/**
- * 1. Override Bootstrap styles.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :disabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * Nothing fancy, just the basics so we can use this for both regular and static controls.
- */
-/**
- * 1. Prevent Firefox users from being able to resize textareas to smaller than the min-height.
- */
-/**
- * We specifically don't include Angular's ng-${state} classes here because we don't want to be tightly
- * coupled with Angular.
- */
-/**
- * 1. Embedded SVG of fa-caret-down
- * (https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/caret-down.svg).
- * 2. Make room on right side for the caret.
- * 3. Prevent Firefox from showing dotted line around text on focus.
- */
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Fit MicroButton inside of Table rows without pushing them taller.
- */
-/**
- * 1. Give Bar a consistent height for when it contains shorter children, and therefore can't
- * depend on them to give it the desired height.
- */
-/**
- * 1. Put 10px of space between each child.
- * 2. If there is only one section, align it to the right. If you wanted it aligned right, you
- * wouldn't use the Bar in the first place.
- * 3. Children in the middle should center their content.
- * 4. Fix an IE bug which causes the last child to overflow the container.
- * 5. Fixing this bug means we now need to align the children to the right.
- */
-/**
- * 1. Required for IE11.
- */
+
main {
display: block;
- /* 1 */ }
+ }
.kuiBar {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */ }
+ }
.kuiBarSection {
display: flex;
@@ -588,33 +28,24 @@ main {
margin-right: 25px; }
.kuiBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiBarSection:first-child {
margin-left: 0; }
.kuiBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Links can be focused when they're "disabled" (since we're just faking this with a class), but
- * at least make them look like they're not focused.
- */
.kuiButton {
display: inline-block;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
cursor: pointer;
padding: 4px 12px 5px;
font-size: 16px;
@@ -631,21 +62,14 @@ main {
cursor: not-allowed;
opacity: 0.5; }
.kuiButton:enabled:active {
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
a.kuiButton:not(.kuiButton-isDisabled):active {
- /* 1 */
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
-/**
- * 1. Solves whitespace problems introduced by inline elements.
- */
.kuiButton__inner {
display: flex;
- /* 1 */
- align-items: center;
- /* 1 */ }
+ align-items: center;
+ }
.kuiButton--small {
font-size: 12px;
@@ -668,122 +92,85 @@ main {
.kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) {
margin-left: 4px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--basic {
color: #DFE5EF;
background-color: #25262E; }
.kuiButton--basic:not(a):enabled:focus {
color: #DFE5EF; }
a.kuiButton--basic:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #DFE5EF; }
+ color: #DFE5EF; }
.kuiButton--basic:enabled:hover {
background-color: #0e0f12 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):hover {
- /* 1 */
- background-color: #0e0f12 !important;
- /* 1 */ }
+ background-color: #0e0f12 !important;
+ }
.kuiButton--basic:enabled:active {
background-color: #0e0f12 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):active {
- /* 1 */
- background-color: #0e0f12 !important;
- /* 1 */ }
+ background-color: #0e0f12 !important;
+ }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--primary {
color: #FFF;
background-color: #1BA9F5; }
.kuiButton--primary:not(a):enabled:focus {
color: #FFF; }
a.kuiButton--primary:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FFF; }
+ color: #FFF; }
.kuiButton--primary:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #098dd4; }
+ background-color: #098dd4; }
a.kuiButton--primary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #098dd4; }
+ color: #FFF !important;
+ background-color: #098dd4; }
.kuiButton--primary:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #098dd4; }
+ background-color: #098dd4; }
a.kuiButton--primary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #098dd4; }
+ color: #FFF !important;
+ background-color: #098dd4; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--success {
color: #FFF;
background-color: #7DE2D1; }
.kuiButton--success:not(a):enabled:focus {
color: #FFF; }
a.kuiButton--success:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FFF; }
+ color: #FFF; }
.kuiButton--success:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ background-color: #53d9c2; }
a.kuiButton--success:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ color: #FFF !important;
+ background-color: #53d9c2; }
.kuiButton--success:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ background-color: #53d9c2; }
a.kuiButton--success:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ color: #FFF !important;
+ background-color: #53d9c2; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--danger {
color: #F66;
border: solid 1px #F66; }
.kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66;
- /* 3 */
- color: #F66; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66;
+ color: #F66; }
a.kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66;
- /* 3 */
- color: #F66; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #F66;
+ color: #F66; }
.kuiButton--danger:enabled:hover {
color: #ff3333 !important;
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #ff3333 !important;
+ color: #ff3333 !important;
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
.kuiButton--danger:enabled:active {
@@ -791,112 +178,77 @@ main {
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #ff3333 !important;
+ color: #ff3333 !important;
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--warning {
color: #FFF;
background-color: #FFCE7A; }
.kuiButton--warning:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A;
- /* 3 */
- color: #FFF; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A;
+ color: #FFF; }
a.kuiButton--warning:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A;
- /* 3 */
- color: #FFF; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #FFCE7A;
+ color: #FFF; }
.kuiButton--warning:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ background-color: #ffbb47; }
a.kuiButton--warning:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ color: #FFF !important;
+ background-color: #ffbb47; }
.kuiButton--warning:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ background-color: #ffbb47; }
a.kuiButton--warning:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ color: #FFF !important;
+ background-color: #ffbb47; }
.kuiButton--warning:disabled {
background-color: #ffe1ad; }
a.kuiButton--warning.kuiButton-isDisabled {
background-color: #ffe1ad; }
-/**
- * 1. Override Bootstrap.
- * 2. Override either Bootstrap or Timeline styles.
- */
.kuiButton--hollow {
color: #1BA9F5 !important;
- /* 2 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiButton--hollow:enabled:hover {
color: #098dd4 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #098dd4 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #098dd4 !important;
+ text-decoration: underline; }
.kuiButton--hollow:enabled:active {
color: #098dd4 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #098dd4 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #098dd4 !important;
+ text-decoration: underline; }
.kuiButton--secondary {
color: #1BA9F5 !important;
- /* 2 */
- border: solid 1px #1BA9F5; }
+ border: solid 1px #1BA9F5; }
.kuiButton--secondary:enabled:hover {
color: #098dd4 !important;
- /* 1 */
- border: solid 1px #098dd4;
+ border: solid 1px #098dd4;
background-color: rgba(27, 169, 245, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #098dd4 !important;
- /* 1 */
- border: solid 1px #098dd4;
+ color: #098dd4 !important;
+ border: solid 1px #098dd4;
background-color: rgba(27, 169, 245, 0.1);
text-decoration: underline; }
.kuiButton--secondary:enabled:active {
color: #098dd4 !important;
- /* 1 */
- border: solid 1px #098dd4;
+ border: solid 1px #098dd4;
background-color: rgba(27, 169, 245, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #098dd4 !important;
- /* 1 */
- border: solid 1px #098dd4;
+ color: #098dd4 !important;
+ border: solid 1px #098dd4;
background-color: rgba(27, 169, 245, 0.1);
text-decoration: underline; }
@@ -934,66 +286,42 @@ main {
display: inline-block; }
.kuiCollapseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #DFE5EF !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35; }
.kuiCollapseButton:hover {
opacity: 1; }
-/**
- * 1. Set inline-block so this wrapper shrinks to fit the input.
- */
.kuiAssistedInput {
display: inline-block;
- /* 1 */
- position: relative; }
+ position: relative; }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiAssistedInput__assistance {
position: absolute;
right: 12px;
top: 50%;
- /* 1 */
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
-
-/**
- * 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really
- * ugly default appearance which we can't customize, so our best option is to give Firefox
- * control over the checkbox's appearance.
- * 2. Override default styles (possibly from Bootstrap).
- */
+ transform: translateY(-50%);
+ }
+
.kuiCheckBox {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- background-color: #16171c;
+ appearance: none;
+ background-color: #16171c;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 4px;
width: 16px;
height: 16px;
- font: "var(--font-text)" !important;
- /* 2 */
- line-height: 1.5 !important;
- /* 2 */
- margin: 0 !important;
- /* 2 */
- font-family: "var(--font-text)" !important;
- /* 2 */
- font-size: 10px !important;
- /* 2 */
- transition: background-color 0.1s linear; }
+ font: var(--font-text) !important;
+ line-height: 1.5 !important;
+ margin: 0 !important;
+ font-family: var(--font-text) !important;
+ font-size: 10px !important;
+ transition: background-color 0.1s linear; }
.kuiCheckBox::before {
position: relative;
left: 0.25em;
@@ -1010,11 +338,9 @@ main {
opacity: 1; }
.kuiCheckBox:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #1BA9F5;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #1D1E24, 0 0 0 2px #1BA9F5;
+ }
.kuiCheckBox:disabled {
background-color: #202128 !important;
border-color: #202128 !important;
@@ -1030,15 +356,12 @@ main {
font-size: 16px;
margin-left: 8px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiLabel {
font-size: 16px;
line-height: 1.5;
font-weight: bold;
margin-bottom: 0;
- /* 1 */ }
+ }
.kuiSearchInput {
width: 180px;
@@ -1056,14 +379,9 @@ main {
font-size: 1em;
color: #535966; }
-/**
- * 1. Make space for search icon.
- * 2. Expand to fill container.
- */
.kuiSearchInput__input {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1074,11 +392,9 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-left: 28px;
- /* 1 */
- width: 100%;
- /* 2 */ }
+ padding-left: 28px;
+ width: 100%;
+ }
.kuiSearchInput__input:invalid {
border-color: #F66; }
.kuiSearchInput__input:focus {
@@ -1094,13 +410,9 @@ main {
.kuiSearchInput--large {
width: 400px; }
-/**
- * Avoid setting a width here, so that the width of the options can dynamically set the width.
- */
.kuiSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1111,15 +423,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */ }
+ }
.kuiSelect:invalid {
border-color: #F66; }
.kuiSelect:focus {
@@ -1130,7 +439,7 @@ main {
cursor: not-allowed; }
.kuiSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
.kuiSelect.kuiSelect-isInvalid {
border-color: #F66; }
.kuiSelect:focus {
@@ -1147,28 +456,22 @@ main {
.kuiSelect--large {
width: 400px; }
-/**
- * 1. Have the same spatial footprint as the regular input.
- */
.kuiStaticInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #DFE5EF;
border: 1px solid transparent;
- /* 1 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiTextArea {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1179,7 +482,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextArea:invalid {
border-color: #F66; }
.kuiTextArea:focus {
@@ -1206,9 +509,8 @@ main {
.kuiTextInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1219,7 +521,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextInput:invalid {
border-color: #F66; }
.kuiTextInput:focus {
@@ -1237,13 +539,10 @@ main {
.kuiTextInput--large {
width: 400px; }
-/**
- * 1. We may want to put elements in here which have different heights.
- */
.kuiFieldGroup {
display: flex;
align-items: center;
- /* 1 */ }
+ }
.kuiFieldGroup--alignTop {
align-items: flex-start; }
@@ -1258,23 +557,14 @@ main {
.kuiFieldGroupSection--wide > * {
width: 100%; }
-/**
- * 1. Copied from FontAwesome's .fa class. We use a custom class to make it easier to migrate away
- * from FontAwesome someday. When we do migrate away, we can just update this definition.
- */
.kuiIcon {
display: inline-block;
- /* 1 */
- font: normal normal normal 14px/1 FontAwesome, sans-serif;
- /* 1 */
- font-size: inherit;
- /* 1 */
- text-rendering: auto;
- /* 1 */
- -webkit-font-smoothing: antialiased;
- /* 1 */
- -moz-osx-font-smoothing: grayscale;
- /* 1 */ }
+ font: normal normal normal 14px/1 FontAwesome, sans-serif;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
.kuiIcon--info {
color: #1BA9F5; }
@@ -1299,41 +589,26 @@ main {
line-height: 1.5;
border: 2px solid; }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--info {
border-color: rgba(27, 169, 245, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--success {
border-color: rgba(125, 226, 209, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--warning {
border-color: rgba(255, 206, 122, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--error {
border-color: rgba(255, 102, 102, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. Align with first line of title text if it wraps.
- */
.kuiInfoPanelHeader {
display: flex;
align-items: baseline;
- /* 1 */ }
+ }
.kuiInfoPanelHeader__icon {
margin-right: 10px;
@@ -1358,34 +633,23 @@ main {
color: #1BA9F5;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */ }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ }
.kuiLink:visited, .kuiLink:active {
color: #1BA9F5; }
.kuiLink:hover {
color: #098dd4;
text-decoration: underline; }
-/**
- * 1. Breadcrumbs are placed in the top-left corner and need to be bumped over
- * a bit.
- */
.kuiLocalBreadcrumbs {
display: flex;
align-items: center;
padding: 12px 8px;
- /* 1 */
- border-bottom: 1px solid #343741;
+ border-bottom: 1px solid #343741;
flex-grow: 1;
flex-basis: 100%;
background-color: #1D1E24; }
@@ -1398,33 +662,21 @@ main {
margin-left: 6px; }
.kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before {
content: "/";
- -webkit-user-select: none;
- user-select: none;
+ user-select: none;
margin-right: 4px;
color: #343741; }
-/**
- * 1. Make it a bit darker to contrast with the gray background.
- */
.kuiLocalBreadcrumb__link {
color: #1BA9F5;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */
- color: #1BA9F5;
- /* 1 */
- font-size: 16px; }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ color: #1BA9F5;
+ font-size: 16px; }
.kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active {
color: #1BA9F5; }
.kuiLocalBreadcrumb__link:hover {
@@ -1449,12 +701,8 @@ main {
justify-content: space-between;
margin-bottom: 4px; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerNavigationButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
border: none;
font-size: 14px;
@@ -1467,13 +715,10 @@ main {
background-color: #1BA9F5; }
.kuiDatePickerNavigationButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5;
- /* 3 */
- color: #DFE5EF;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5;
+ color: #DFE5EF;
+ }
.kuiDatePickerHeaderCell {
padding: 9px 0;
@@ -1486,22 +731,14 @@ main {
.kuiDatePickerRowCell {
padding: 0;
text-align: center;
- /**
- * This state class exists to support weird angular-bootstrap datepicker functionality,
- * in which you can't select a day on the "From" calendar if it falls after the selected day in
- * the "To" calendar (and vice versa, you can't select a "To" day if it is before the "From" day).
- */ }
+ }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked {
cursor: not-allowed; }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent {
pointer-events: none; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerRowCellContent {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
width: 100%;
border: 1px solid transparent;
@@ -1512,13 +749,10 @@ main {
line-height: 1.2; }
.kuiDatePickerRowCellContent:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5;
- /* 3 */
- color: #DFE5EF;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #1BA9F5;
+ color: #DFE5EF;
+ }
.kuiDatePickerRowCellContent:disabled {
pointer-events: none;
opacity: 0.5; }
@@ -1543,16 +777,14 @@ main {
line-height: 20px; }
.kuiLocalDropdownCloseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #DFE5EF !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35;
position: absolute;
top: 1px;
@@ -1572,13 +804,9 @@ main {
.kuiLocalDropdownPanel--right {
margin-left: 30px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownTitle {
margin-top: 0;
- /* 1 */
- margin-bottom: 12px;
+ margin-bottom: 12px;
font-size: 18px;
color: #DFE5EF; }
@@ -1593,15 +821,11 @@ main {
justify-content: space-between;
margin-bottom: 6px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownHeader__label {
font-size: 14px;
font-weight: 700;
margin-bottom: 0;
- /* 1 */
- color: #DFE5EF; }
+ color: #DFE5EF; }
.kuiLocalDropdownHeader__actions {
display: flex; }
@@ -1683,24 +907,16 @@ main {
margin-right: 5px;
margin-bottom: -1px; }
-/**
- * 1. Match height of logo in side bar, but allow it to expand to accommodate
- * dropdown.
- */
.kuiLocalNav {
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 69px;
- /* 1 */
- color: #DFE5EF;
+ color: #DFE5EF;
background-color: #1D1E24;
line-height: 1.5;
border-bottom: solid 1px #343741; }
-/**
- * 1. Allow row to expand if the content is so long that it wraps.
- */
.kuiLocalNavRow {
display: flex;
align-items: stretch;
@@ -1710,18 +926,10 @@ main {
display: flex;
align-items: stretch; }
-/**
- * 1. We make this row flex-start because it usually contains a search input, which may expand
- * beyond the height of this container. We can't use `align-items: center`, because this would
- * cause the search input to overflow both on the top and bottom; `align-items: flex-start`
- * makes it only overflow on the bottom. But this means we need to manually center the content
- * of this container using padding.
- */
.kuiLocalNavRow--secondary {
padding: 0 8px;
- /* 1 */
- align-items: flex-start;
- /* 1 */ }
+ align-items: flex-start;
+ }
.kuiLocalSearch {
display: flex;
@@ -1729,9 +937,8 @@ main {
margin-bottom: 8px; }
.kuiLocalSearchInput {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1742,8 +949,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- flex: 1 1 100%;
+ flex: 1 1 100%;
border-color: #FFF;
border-color: #343741;
border-radius: 4px 0 0 4px; }
@@ -1766,33 +972,22 @@ main {
border-radius: 0;
border-left-width: 0; }
-/**
- * 1. em used for right padding so documentation link and query string
- * won't overlap if the user increases their default browser font size
- * This is sized for the 'Options' link
- */
.kuiLocalSearchInput,
.kuiLocalSearchAssistedInput__input {
padding-right: 6em;
- /* 1 */ }
+ }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiLocalSearchAssistedInput__assistance {
position: absolute;
right: 6px;
top: 50%;
- /* 1 */
- z-index: 2;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
+ z-index: 2;
+ transform: translateY(-50%);
+ }
.kuiLocalSearchSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1803,16 +998,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */
- border-left-width: 0;
+ border-left-width: 0;
border-radius: 0; }
.kuiLocalSearchSelect:invalid {
border-color: #F66; }
@@ -1824,40 +1015,28 @@ main {
cursor: not-allowed; }
.kuiLocalSearchSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalSearchButton {
width: 43px;
height: 32px;
font-size: 16px;
line-height: 0;
- /* 1 */
- color: #FFF;
+ color: #FFF;
background-color: #1BA9F5;
border: 0;
border-radius: 0 4px 4px 0; }
.kuiLocalSearchButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
+ }
-/**
- * 1. We want the bottom border on selected tabs to be flush with the bottom of the container.
- */
.kuiLocalTabs {
display: flex;
align-items: flex-end;
height: 100%; }
-/**
- * 1. Override inherited typographic styles.
- */
.kuiLocalTab {
padding: 5px 0 6px;
font-size: 18px;
@@ -1866,13 +1045,8 @@ main {
text-decoration: none;
cursor: pointer;
margin-top: 0 !important;
- /* 1 */
- margin-bottom: 0 !important;
- /* 1 */
- /**
- * 1. We may want to show a tooltip to explain why the tab is disabled, so we will just show
- * a regular cursor instead of setting pointer-events: none.
- */ }
+ margin-bottom: 0 !important;
+ }
.kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) {
color: #1BA9F5; }
.kuiLocalTab.kuiLocalTab-isSelected {
@@ -1882,7 +1056,7 @@ main {
.kuiLocalTab.kuiLocalTab-isDisabled {
opacity: 0.5;
cursor: default;
- /* 1 */ }
+ }
.kuiLocalTab + .kuiLocalTab {
margin-left: 15px; }
@@ -1900,22 +1074,19 @@ main {
padding: 0;
display: none; }
-/**
- * 1. Put 10px of space between each child.
- */
.kuiPager {
display: flex;
align-items: center; }
.kuiPager > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPagerText {
font-size: 16px;
line-height: 1.5;
color: #98A2B3;
white-space: nowrap;
- /* 1 */ }
+ }
.kuiPanel {
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 1px 5px -2px rgba(0, 0, 0, 0.3);
@@ -1951,62 +1122,44 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
border-bottom: 1px solid #343741; }
.kuiPanelHeader .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
+ }
a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
+ }
.kuiPanelHeader .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
+ }
a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
+ }
.kuiPanelHeader .kuiSelect {
border-color: #16171c; }
.kuiPanelHeader .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #1BA9F5; }
a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #1BA9F5; }
-/**
- * 1. This way we can use h1, h2, etc.
- */
.kuiPanelHeader__title {
font-size: 20px;
line-height: 1.5;
margin: 0;
- /* 1 */ }
+ }
-/**
- * 1. Undo what barSection mixin does.
- */
.kuiPanelHeaderSection {
display: flex;
align-items: center;
@@ -2015,26 +1168,24 @@ main {
margin-right: 25px; }
.kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiPanelHeaderSection:first-child {
margin-left: 0; }
.kuiPanelHeaderSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiPanelHeaderSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiPanelHeaderSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPanelHeaderSection:only-child {
margin-left: 0;
- /* 1 */
- margin-right: auto;
- /* 1 */ }
+ margin-right: auto;
+ }
.kuiPanelBody {
padding: 10px; }
@@ -2069,98 +1220,63 @@ main {
.kuiStatusText--error {
color: #F66; }
-/**
- * 1. Set the image to be the same size as a font icon at 14px.
- * 2. We need to cap the height too, in case the icon was designed thin and tall.
- */
.kuiStatusText__icon {
margin-right: 6px;
width: 1.15em;
- /* 1 */
- max-height: 1.15em;
- /* 2 */ }
+ max-height: 1.15em;
+ }
-/**
- * 1. Make seamless transition from ToolBar to Table header and contained Menu.
- * 1. Make seamless transition from Table to ToolBarFooter header.
- */
.kuiControlledTable {
background: #1D1E24; }
.kuiControlledTable .kuiTable {
border-top: none;
- /* 1 */ }
+ }
.kuiControlledTable .kuiToolBarFooter {
border-top: none;
- /* 2 */ }
+ }
.kuiControlledTable .kuiMenu--contained {
border-top: none;
- /* 1 */ }
+ }
-/**
- * 1. Prevent cells from expanding based on content size. This substitutes for table-layout: fixed.
- */
-/**
- * NOTE: table-layout: fixed causes a bug in IE11 and Edge (see #9929). It also prevents us from
- * specifying a column width, e.g. the checkbox column.
- */
.kuiTable {
width: 100%;
border: 1px solid #343741;
border-collapse: collapse;
background-color: #1D1E24; }
-/**
- * 1. Allow contents of cells to determine table's width.
- */
.kuiTable--fluid {
width: auto;
- /* 1 */ }
+ }
.kuiTable--fluid .kuiTableHeaderCell,
.kuiTable--fluid .kuiTableRowCell {
max-width: none;
- /* 1 */ }
+ }
.kuiTableHeaderCell {
font-size: 16px;
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- line-height: 1.5;
+ line-height: 1.5;
color: #98A2B3; }
.kuiTableHeaderCell__liner {
display: inline-block;
padding: 7px 8px 8px; }
-/**
- * 1. Prevent rapid clicking from selecting text.
- * 2. Remove native button element styles.
- * 3. Make buttons look and behave like table header cells.
- */
.kuiTableHeaderCellButton {
- -webkit-user-select: none;
- user-select: none;
- /* 1 */
- cursor: pointer;
+ user-select: none;
+ cursor: pointer;
width: 100%;
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: 0;
- /* 2 */
- padding: 0;
- /* 2 */
- color: inherit;
- /* 3 */
- line-height: inherit;
- /* 3 */
- font-size: inherit;
- /* 3 */
- text-align: inherit;
- /* 3 */ }
+ appearance: none;
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+ color: inherit;
+ line-height: inherit;
+ font-size: inherit;
+ text-align: inherit;
+ }
.kuiTableHeaderCellButton:hover .kuiTableSortIcon {
display: block;
opacity: 1; }
@@ -2190,31 +1306,20 @@ main {
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- color: #DFE5EF;
+ color: #DFE5EF;
border-top: 1px solid #343741;
vertical-align: middle; }
-/**
- * 1. Vertically align all children.
- * 2. The padding on this div allows the ellipsis to show if the content is truncated. If
- * the padding was on the cell, the ellipsis would be cropped.
- * 3. Truncate content with an ellipsis.
- */
.kuiTableRowCell__liner {
padding: 7px 8px 8px;
- /* 2 */
- line-height: 1.5;
- /* 1 */
- overflow: hidden;
- /* 3 */
- text-overflow: ellipsis;
- /* 3 */
- white-space: nowrap;
- /* 3 */ }
+ line-height: 1.5;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
.kuiTableRowCell__liner > * {
vertical-align: middle;
- /* 1 */ }
+ }
.kuiTableRowCell--wrap .kuiTableRowCell__liner {
white-space: normal; }
@@ -2223,34 +1328,24 @@ main {
overflow: visible;
white-space: normal; }
-/**
- * 1. We don't want to create too strong a disconnect between the original row and the row
- * that contains its expanded details.
- */
.kuiTableRowCell--expanded {
border-top-color: #1D1E24;
- /* 1 */ }
+ }
.kuiTableRowCell--alignRight {
text-align: right; }
.kuiTableRowCell--alignRight .kuiTableRowCell__liner {
text-align: right; }
-/**
- * 1. Rendered width of cell with checkbox inside of it.
- * 2. Align checkbox with text in other cells.
- * 3. Show the checkbox in Edge; otherwise it gets cropped.
- */
.kuiTableHeaderCell--checkBox,
.kuiTableRowCell--checkBox {
width: 28px;
- /* 1 */
- line-height: 1;
- /* 2 */ }
+ line-height: 1;
+ }
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableRowCell__liner {
overflow: visible;
- /* 3 */ }
+ }
.kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner,
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableHeaderCell__liner,
@@ -2267,41 +1362,29 @@ main {
display: flex;
border-bottom: 1px solid #343741; }
-/**
- * 1. Override button styles (some of which are from Bootstrap).
- * 2. Adding a border shifts tabs right by 1px, so we need to shift them back.
- * 3. Move the tab down so that its bottom border covers the container's bottom border.
- * 4. When the tab is focused, its bottom border changes to be 1px, so we need to add 1px more
- * of padding to make sure the text doesn't shift down.
- */
.kuiTab {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- cursor: pointer;
+ appearance: none;
+ cursor: pointer;
padding: 10px 30px;
font-size: 16px;
color: #98A2B3;
background-color: transparent;
- /* 1 */
- border: 1px solid #343741;
+ border: 1px solid #343741;
border-radius: 0;
- /* 1 */
- margin-bottom: -1px;
- /* 3 */ }
+ margin-bottom: -1px;
+ }
.kuiTab + .kuiTab {
border-left: none; }
.kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
margin-left: -1px;
- /* 2 */ }
+ }
.kuiTab:active {
outline: none !important;
- /* 1 */
- box-shadow: none;
- /* 1 */ }
+ box-shadow: none;
+ }
.kuiTab:focus {
outline: none;
- /* 1 */ }
+ }
.kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
z-index: 1;
color: #1BA9F5;
@@ -2320,49 +1403,37 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
background-color: transparent;
border: solid 1px #343741; }
.kuiToolBar .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
+ }
a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #1BA9F5;
+ }
.kuiToolBar .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
+ }
a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #343741, 0 0 0 2px #F66;
+ }
.kuiToolBar .kuiSelect {
border-color: #16171c; }
.kuiToolBar .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #1BA9F5; }
a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #1BA9F5; }
.kuiToolBarSection {
@@ -2373,36 +1444,31 @@ main {
margin-right: 25px; }
.kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarSection:first-child {
margin-left: 0; }
.kuiToolBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Override Bar styles and put Search on the left side.
- */
.kuiToolBar--searchOnly .kuiToolBarSearch {
margin-left: 0 !important;
- /* 1 */ }
+ }
.kuiToolBarFooter {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 40px;
background-color: #1D1E24; }
@@ -2414,27 +1480,21 @@ main {
margin-right: 25px; }
.kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarFooterSection:first-child {
margin-left: 0; }
.kuiToolBarFooterSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarFooterSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarFooterSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Put 10px of space between each child.
- * 2. Fix IE11 bug which causes this item to grow too wide when there is only a single
- * kuiToolBarSection sibling.
- */
.kuiToolBarSearch {
display: flex;
align-items: center;
@@ -2442,15 +1502,14 @@ main {
margin-right: 25px;
flex: 1 1 auto;
max-width: 100%;
- /* 2 */
- line-height: 1.5; }
+ line-height: 1.5; }
.kuiToolBarSearch:first-child {
margin-left: 0; }
.kuiToolBarSearch:last-child {
margin-right: 0; }
.kuiToolBarSearch > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiToolBarSearchBox {
flex: 1 1 auto;
@@ -2465,85 +1524,55 @@ main {
font-size: 1em;
color: #acacac; }
-/**
- * 1. Fix inherited styles (possibly from Bootstrap).
- */
.kuiToolBarSearchBox__input {
width: 100%;
min-width: 200px;
padding: 4px 12px 5px 28px;
- font-family: "var(--font-text)";
- /* 1 */
- background-color: #1D1E24;
+ font-family: var(--font-text);
+ background-color: #1D1E24;
color: #DFE5EF;
border-radius: 4px;
font-size: 1em;
border: 1px solid #343741;
line-height: normal;
- /* 1 */
- transition: border-color 0.1s linear; }
+ transition: border-color 0.1s linear; }
.kuiToolBarSearchBox__input:focus {
outline: none;
border-color: #1BA9F5; }
-/*
- * 1. We don't want the text to take up two lines and overflow the ToolBar.
- */
.kuiToolBarText {
font-size: 16px;
line-height: 1.5;
color: #98A2B3;
white-space: nowrap;
- /* 1 */ }
+ }
-/**
- * 1. Override h1.
- */
.kuiTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 24px; }
+ font-weight: 400;
+ font-size: 24px; }
-/**
- * 1. Override h2, h3, etc.
- */
.kuiSubTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 20px; }
+ font-weight: 400;
+ font-size: 20px; }
-/**
- * 1. Override p.
- */
.kuiTextTitle {
margin: 0;
- /* 1 */
- font-weight: 700;
- /* 1 */
- line-height: 1.5;
+ font-weight: 700;
+ line-height: 1.5;
font-size: 16px; }
-/**
- * 1. Override p.
- */
.kuiText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 16px; }
.kuiSubText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 14px; }
.kuiSubduedText {
diff --git a/packages/osd-ui-framework/dist/kui_light.css b/packages/osd-ui-framework/dist/kui_light.css
index 80b31588660e..b6952eb159bb 100644
--- a/packages/osd-ui-framework/dist/kui_light.css
+++ b/packages/osd-ui-framework/dist/kui_light.css
@@ -8,543 +8,17 @@
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/**
- * 1. Focus rings shouldn't be visible on scrollable regions, but a11y requires them to be focusable.
- * Browser's supporting `:focus-visible` will still show outline on keyboard focus only.
- * Others like Safari, won't show anything at all.
- * 2. Force the `:focus-visible` when the `tabindex=0` (is tabbable)
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/**
- * 1. Enforce pointer when there's no href.
- * 2. Allow these styles to be applied to a button element.
- */
-/**
- * 1. Override Bootstrap styles.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :disabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * Nothing fancy, just the basics so we can use this for both regular and static controls.
- */
-/**
- * 1. Prevent Firefox users from being able to resize textareas to smaller than the min-height.
- */
-/**
- * We specifically don't include Angular's ng-${state} classes here because we don't want to be tightly
- * coupled with Angular.
- */
-/**
- * 1. Embedded SVG of fa-caret-down
- * (https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/caret-down.svg).
- * 2. Make room on right side for the caret.
- * 3. Prevent Firefox from showing dotted line around text on focus.
- */
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Fit MicroButton inside of Table rows without pushing them taller.
- */
-/**
- * 1. Give Bar a consistent height for when it contains shorter children, and therefore can't
- * depend on them to give it the desired height.
- */
-/**
- * 1. Put 10px of space between each child.
- * 2. If there is only one section, align it to the right. If you wanted it aligned right, you
- * wouldn't use the Bar in the first place.
- * 3. Children in the middle should center their content.
- * 4. Fix an IE bug which causes the last child to overflow the container.
- * 5. Fixing this bug means we now need to align the children to the right.
- */
-/**
- * 1. Required for IE11.
- */
+
main {
display: block;
- /* 1 */ }
+ }
.kuiBar {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */ }
+ }
.kuiBarSection {
display: flex;
@@ -554,33 +28,24 @@ main {
margin-right: 25px; }
.kuiBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiBarSection:first-child {
margin-left: 0; }
.kuiBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Links can be focused when they're "disabled" (since we're just faking this with a class), but
- * at least make them look like they're not focused.
- */
.kuiButton {
display: inline-block;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
cursor: pointer;
padding: 4px 12px 5px;
font-size: 16px;
@@ -597,21 +62,14 @@ main {
cursor: not-allowed;
opacity: 0.5; }
.kuiButton:enabled:active {
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
a.kuiButton:not(.kuiButton-isDisabled):active {
- /* 1 */
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
-/**
- * 1. Solves whitespace problems introduced by inline elements.
- */
.kuiButton__inner {
display: flex;
- /* 1 */
- align-items: center;
- /* 1 */ }
+ align-items: center;
+ }
.kuiButton--small {
font-size: 12px;
@@ -634,122 +92,85 @@ main {
.kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) {
margin-left: 4px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--basic {
color: #343741;
background-color: #F5F7FA; }
.kuiButton--basic:not(a):enabled:focus {
color: #343741; }
a.kuiButton--basic:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #343741; }
+ color: #343741; }
.kuiButton--basic:enabled:hover {
background-color: #d3dce9 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):hover {
- /* 1 */
- background-color: #d3dce9 !important;
- /* 1 */ }
+ background-color: #d3dce9 !important;
+ }
.kuiButton--basic:enabled:active {
background-color: #d3dce9 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):active {
- /* 1 */
- background-color: #d3dce9 !important;
- /* 1 */ }
+ background-color: #d3dce9 !important;
+ }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--primary {
color: #FFF;
background-color: #006BB4; }
.kuiButton--primary:not(a):enabled:focus {
color: #FFF; }
a.kuiButton--primary:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FFF; }
+ color: #FFF; }
.kuiButton--primary:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ background-color: #004d81; }
a.kuiButton--primary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ color: #FFF !important;
+ background-color: #004d81; }
.kuiButton--primary:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ background-color: #004d81; }
a.kuiButton--primary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ color: #FFF !important;
+ background-color: #004d81; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--success {
color: #FFF;
background-color: #017D73; }
.kuiButton--success:not(a):enabled:focus {
color: #FFF; }
a.kuiButton--success:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FFF; }
+ color: #FFF; }
.kuiButton--success:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ background-color: #014a44; }
a.kuiButton--success:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ color: #FFF !important;
+ background-color: #014a44; }
.kuiButton--success:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ background-color: #014a44; }
a.kuiButton--success:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ color: #FFF !important;
+ background-color: #014a44; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--danger {
color: #BD271E;
border: solid 1px #BD271E; }
.kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
- /* 3 */
- color: #BD271E; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
+ color: #BD271E; }
a.kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
- /* 3 */
- color: #BD271E; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
+ color: #BD271E; }
.kuiButton--danger:enabled:hover {
color: #911e17 !important;
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #911e17 !important;
+ color: #911e17 !important;
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
.kuiButton--danger:enabled:active {
@@ -757,112 +178,77 @@ main {
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #911e17 !important;
+ color: #911e17 !important;
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--warning {
color: #FFF;
background-color: #F5A700; }
.kuiButton--warning:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
- /* 3 */
- color: #FFF; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
+ color: #FFF; }
a.kuiButton--warning:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
- /* 3 */
- color: #FFF; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
+ color: #FFF; }
.kuiButton--warning:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ background-color: #c28400; }
a.kuiButton--warning:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ color: #FFF !important;
+ background-color: #c28400; }
.kuiButton--warning:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ background-color: #c28400; }
a.kuiButton--warning:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ color: #FFF !important;
+ background-color: #c28400; }
.kuiButton--warning:disabled {
background-color: #ffbb29; }
a.kuiButton--warning.kuiButton-isDisabled {
background-color: #ffbb29; }
-/**
- * 1. Override Bootstrap.
- * 2. Override either Bootstrap or Timeline styles.
- */
.kuiButton--hollow {
color: #006BB4 !important;
- /* 2 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiButton--hollow:enabled:hover {
color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #004d81 !important;
+ text-decoration: underline; }
.kuiButton--hollow:enabled:active {
color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #004d81 !important;
+ text-decoration: underline; }
.kuiButton--secondary {
color: #006BB4 !important;
- /* 2 */
- border: solid 1px #006BB4; }
+ border: solid 1px #006BB4; }
.kuiButton--secondary:enabled:hover {
color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ color: #004d81 !important;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
.kuiButton--secondary:enabled:active {
color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ color: #004d81 !important;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
@@ -900,66 +286,42 @@ main {
display: inline-block; }
.kuiCollapseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #343741 !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35; }
.kuiCollapseButton:hover {
opacity: 1; }
-/**
- * 1. Set inline-block so this wrapper shrinks to fit the input.
- */
.kuiAssistedInput {
display: inline-block;
- /* 1 */
- position: relative; }
+ position: relative; }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiAssistedInput__assistance {
position: absolute;
right: 12px;
top: 50%;
- /* 1 */
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
-
-/**
- * 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really
- * ugly default appearance which we can't customize, so our best option is to give Firefox
- * control over the checkbox's appearance.
- * 2. Override default styles (possibly from Bootstrap).
- */
+ transform: translateY(-50%);
+ }
+
.kuiCheckBox {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- background-color: #fbfcfd;
+ appearance: none;
+ background-color: #fbfcfd;
border: 1px solid rgba(15, 39, 118, 0.1);
border-radius: 4px;
width: 16px;
height: 16px;
- font: "var(--font-text)" !important;
- /* 2 */
- line-height: 1.5 !important;
- /* 2 */
- margin: 0 !important;
- /* 2 */
- font-family: "var(--font-text)" !important;
- /* 2 */
- font-size: 10px !important;
- /* 2 */
- transition: background-color 0.1s linear; }
+ font: var(--font-text) !important;
+ line-height: 1.5 !important;
+ margin: 0 !important;
+ font-family: var(--font-text) !important;
+ font-size: 10px !important;
+ transition: background-color 0.1s linear; }
.kuiCheckBox::before {
position: relative;
left: 0.25em;
@@ -976,11 +338,9 @@ main {
opacity: 1; }
.kuiCheckBox:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
+ }
.kuiCheckBox:disabled {
background-color: #eef2f7 !important;
border-color: #eef2f7 !important;
@@ -996,15 +356,12 @@ main {
font-size: 16px;
margin-left: 8px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiLabel {
font-size: 16px;
line-height: 1.5;
font-weight: bold;
margin-bottom: 0;
- /* 1 */ }
+ }
.kuiSearchInput {
width: 180px;
@@ -1022,14 +379,9 @@ main {
font-size: 1em;
color: #98A2B3; }
-/**
- * 1. Make space for search icon.
- * 2. Expand to fill container.
- */
.kuiSearchInput__input {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1040,11 +392,9 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-left: 28px;
- /* 1 */
- width: 100%;
- /* 2 */ }
+ padding-left: 28px;
+ width: 100%;
+ }
.kuiSearchInput__input:invalid {
border-color: #BD271E; }
.kuiSearchInput__input:focus {
@@ -1060,13 +410,9 @@ main {
.kuiSearchInput--large {
width: 400px; }
-/**
- * Avoid setting a width here, so that the width of the options can dynamically set the width.
- */
.kuiSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1077,15 +423,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */ }
+ }
.kuiSelect:invalid {
border-color: #BD271E; }
.kuiSelect:focus {
@@ -1096,7 +439,7 @@ main {
cursor: not-allowed; }
.kuiSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
.kuiSelect.kuiSelect-isInvalid {
border-color: #BD271E; }
.kuiSelect:focus {
@@ -1113,28 +456,22 @@ main {
.kuiSelect--large {
width: 400px; }
-/**
- * 1. Have the same spatial footprint as the regular input.
- */
.kuiStaticInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #343741;
border: 1px solid transparent;
- /* 1 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiTextArea {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1145,7 +482,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextArea:invalid {
border-color: #BD271E; }
.kuiTextArea:focus {
@@ -1172,9 +509,8 @@ main {
.kuiTextInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1185,7 +521,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextInput:invalid {
border-color: #BD271E; }
.kuiTextInput:focus {
@@ -1203,13 +539,10 @@ main {
.kuiTextInput--large {
width: 400px; }
-/**
- * 1. We may want to put elements in here which have different heights.
- */
.kuiFieldGroup {
display: flex;
align-items: center;
- /* 1 */ }
+ }
.kuiFieldGroup--alignTop {
align-items: flex-start; }
@@ -1224,23 +557,14 @@ main {
.kuiFieldGroupSection--wide > * {
width: 100%; }
-/**
- * 1. Copied from FontAwesome's .fa class. We use a custom class to make it easier to migrate away
- * from FontAwesome someday. When we do migrate away, we can just update this definition.
- */
.kuiIcon {
display: inline-block;
- /* 1 */
- font: normal normal normal 14px/1 FontAwesome, sans-serif;
- /* 1 */
- font-size: inherit;
- /* 1 */
- text-rendering: auto;
- /* 1 */
- -webkit-font-smoothing: antialiased;
- /* 1 */
- -moz-osx-font-smoothing: grayscale;
- /* 1 */ }
+ font: normal normal normal 14px/1 FontAwesome, sans-serif;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
.kuiIcon--info {
color: #006BB4; }
@@ -1265,41 +589,26 @@ main {
line-height: 1.5;
border: 2px solid; }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--info {
border-color: rgba(0, 107, 180, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--success {
border-color: rgba(1, 125, 115, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--warning {
border-color: rgba(245, 167, 0, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--error {
border-color: rgba(189, 39, 30, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. Align with first line of title text if it wraps.
- */
.kuiInfoPanelHeader {
display: flex;
align-items: baseline;
- /* 1 */ }
+ }
.kuiInfoPanelHeader__icon {
margin-right: 10px;
@@ -1324,34 +633,23 @@ main {
color: #006BB4;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */ }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ }
.kuiLink:visited, .kuiLink:active {
color: #006BB4; }
.kuiLink:hover {
color: #004d81;
text-decoration: underline; }
-/**
- * 1. Breadcrumbs are placed in the top-left corner and need to be bumped over
- * a bit.
- */
.kuiLocalBreadcrumbs {
display: flex;
align-items: center;
padding: 12px 8px;
- /* 1 */
- border-bottom: 1px solid #D3DAE6;
+ border-bottom: 1px solid #D3DAE6;
flex-grow: 1;
flex-basis: 100%;
background-color: #FFF; }
@@ -1364,33 +662,21 @@ main {
margin-left: 6px; }
.kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before {
content: "/";
- -webkit-user-select: none;
- user-select: none;
+ user-select: none;
margin-right: 4px;
color: #D3DAE6; }
-/**
- * 1. Make it a bit darker to contrast with the gray background.
- */
.kuiLocalBreadcrumb__link {
color: #006BB4;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */
- color: #006BB4;
- /* 1 */
- font-size: 16px; }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ color: #006BB4;
+ font-size: 16px; }
.kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active {
color: #006BB4; }
.kuiLocalBreadcrumb__link:hover {
@@ -1415,12 +701,8 @@ main {
justify-content: space-between;
margin-bottom: 4px; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerNavigationButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
border: none;
font-size: 14px;
@@ -1433,13 +715,10 @@ main {
background-color: #006BB4; }
.kuiDatePickerNavigationButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
- /* 3 */
- color: #343741;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
+ color: #343741;
+ }
.kuiDatePickerHeaderCell {
padding: 9px 0;
@@ -1452,22 +731,14 @@ main {
.kuiDatePickerRowCell {
padding: 0;
text-align: center;
- /**
- * This state class exists to support weird angular-bootstrap datepicker functionality,
- * in which you can't select a day on the "From" calendar if it falls after the selected day in
- * the "To" calendar (and vice versa, you can't select a "To" day if it is before the "From" day).
- */ }
+ }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked {
cursor: not-allowed; }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent {
pointer-events: none; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerRowCellContent {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
width: 100%;
border: 1px solid transparent;
@@ -1478,13 +749,10 @@ main {
line-height: 1.2; }
.kuiDatePickerRowCellContent:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
- /* 3 */
- color: #343741;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
+ color: #343741;
+ }
.kuiDatePickerRowCellContent:disabled {
pointer-events: none;
opacity: 0.5; }
@@ -1509,16 +777,14 @@ main {
line-height: 20px; }
.kuiLocalDropdownCloseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #343741 !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35;
position: absolute;
top: 1px;
@@ -1538,13 +804,9 @@ main {
.kuiLocalDropdownPanel--right {
margin-left: 30px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownTitle {
margin-top: 0;
- /* 1 */
- margin-bottom: 12px;
+ margin-bottom: 12px;
font-size: 18px;
color: #343741; }
@@ -1559,15 +821,11 @@ main {
justify-content: space-between;
margin-bottom: 6px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownHeader__label {
font-size: 14px;
font-weight: 700;
margin-bottom: 0;
- /* 1 */
- color: #343741; }
+ color: #343741; }
.kuiLocalDropdownHeader__actions {
display: flex; }
@@ -1649,24 +907,16 @@ main {
margin-right: 5px;
margin-bottom: -1px; }
-/**
- * 1. Match height of logo in side bar, but allow it to expand to accommodate
- * dropdown.
- */
.kuiLocalNav {
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 69px;
- /* 1 */
- color: #343741;
+ color: #343741;
background-color: #FFF;
line-height: 1.5;
border-bottom: solid 1px #D3DAE6; }
-/**
- * 1. Allow row to expand if the content is so long that it wraps.
- */
.kuiLocalNavRow {
display: flex;
align-items: stretch;
@@ -1676,18 +926,10 @@ main {
display: flex;
align-items: stretch; }
-/**
- * 1. We make this row flex-start because it usually contains a search input, which may expand
- * beyond the height of this container. We can't use `align-items: center`, because this would
- * cause the search input to overflow both on the top and bottom; `align-items: flex-start`
- * makes it only overflow on the bottom. But this means we need to manually center the content
- * of this container using padding.
- */
.kuiLocalNavRow--secondary {
padding: 0 8px;
- /* 1 */
- align-items: flex-start;
- /* 1 */ }
+ align-items: flex-start;
+ }
.kuiLocalSearch {
display: flex;
@@ -1695,9 +937,8 @@ main {
margin-bottom: 8px; }
.kuiLocalSearchInput {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1708,8 +949,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- flex: 1 1 100%;
+ flex: 1 1 100%;
border-color: #FFF;
border-color: #D3DAE6;
border-radius: 4px 0 0 4px; }
@@ -1732,33 +972,22 @@ main {
border-radius: 0;
border-left-width: 0; }
-/**
- * 1. em used for right padding so documentation link and query string
- * won't overlap if the user increases their default browser font size
- * This is sized for the 'Options' link
- */
.kuiLocalSearchInput,
.kuiLocalSearchAssistedInput__input {
padding-right: 6em;
- /* 1 */ }
+ }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiLocalSearchAssistedInput__assistance {
position: absolute;
right: 6px;
top: 50%;
- /* 1 */
- z-index: 2;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
+ z-index: 2;
+ transform: translateY(-50%);
+ }
.kuiLocalSearchSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1769,16 +998,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */
- border-left-width: 0;
+ border-left-width: 0;
border-radius: 0; }
.kuiLocalSearchSelect:invalid {
border-color: #BD271E; }
@@ -1790,40 +1015,28 @@ main {
cursor: not-allowed; }
.kuiLocalSearchSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalSearchButton {
width: 43px;
height: 32px;
font-size: 16px;
line-height: 0;
- /* 1 */
- color: #FFF;
+ color: #FFF;
background-color: #006BB4;
border: 0;
border-radius: 0 4px 4px 0; }
.kuiLocalSearchButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
-/**
- * 1. We want the bottom border on selected tabs to be flush with the bottom of the container.
- */
.kuiLocalTabs {
display: flex;
align-items: flex-end;
height: 100%; }
-/**
- * 1. Override inherited typographic styles.
- */
.kuiLocalTab {
padding: 5px 0 6px;
font-size: 18px;
@@ -1832,13 +1045,8 @@ main {
text-decoration: none;
cursor: pointer;
margin-top: 0 !important;
- /* 1 */
- margin-bottom: 0 !important;
- /* 1 */
- /**
- * 1. We may want to show a tooltip to explain why the tab is disabled, so we will just show
- * a regular cursor instead of setting pointer-events: none.
- */ }
+ margin-bottom: 0 !important;
+ }
.kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) {
color: #006BB4; }
.kuiLocalTab.kuiLocalTab-isSelected {
@@ -1848,7 +1056,7 @@ main {
.kuiLocalTab.kuiLocalTab-isDisabled {
opacity: 0.5;
cursor: default;
- /* 1 */ }
+ }
.kuiLocalTab + .kuiLocalTab {
margin-left: 15px; }
@@ -1866,22 +1074,19 @@ main {
padding: 0;
display: none; }
-/**
- * 1. Put 10px of space between each child.
- */
.kuiPager {
display: flex;
align-items: center; }
.kuiPager > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPagerText {
font-size: 16px;
line-height: 1.5;
color: #69707D;
white-space: nowrap;
- /* 1 */ }
+ }
.kuiPanel {
box-shadow: 0 2px 2px -1px rgba(152, 162, 179, 0.3), 0 1px 5px -2px rgba(152, 162, 179, 0.3);
@@ -1917,62 +1122,44 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
border-bottom: 1px solid #D3DAE6; }
.kuiPanelHeader .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
.kuiPanelHeader .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
.kuiPanelHeader .kuiSelect {
border-color: #fbfcfd; }
.kuiPanelHeader .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #006BB4; }
a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #006BB4; }
-/**
- * 1. This way we can use h1, h2, etc.
- */
.kuiPanelHeader__title {
font-size: 20px;
line-height: 1.5;
margin: 0;
- /* 1 */ }
+ }
-/**
- * 1. Undo what barSection mixin does.
- */
.kuiPanelHeaderSection {
display: flex;
align-items: center;
@@ -1981,26 +1168,24 @@ main {
margin-right: 25px; }
.kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiPanelHeaderSection:first-child {
margin-left: 0; }
.kuiPanelHeaderSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiPanelHeaderSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiPanelHeaderSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPanelHeaderSection:only-child {
margin-left: 0;
- /* 1 */
- margin-right: auto;
- /* 1 */ }
+ margin-right: auto;
+ }
.kuiPanelBody {
padding: 10px; }
@@ -2035,98 +1220,63 @@ main {
.kuiStatusText--error {
color: #BD271E; }
-/**
- * 1. Set the image to be the same size as a font icon at 14px.
- * 2. We need to cap the height too, in case the icon was designed thin and tall.
- */
.kuiStatusText__icon {
margin-right: 6px;
width: 1.15em;
- /* 1 */
- max-height: 1.15em;
- /* 2 */ }
+ max-height: 1.15em;
+ }
-/**
- * 1. Make seamless transition from ToolBar to Table header and contained Menu.
- * 1. Make seamless transition from Table to ToolBarFooter header.
- */
.kuiControlledTable {
background: #FFF; }
.kuiControlledTable .kuiTable {
border-top: none;
- /* 1 */ }
+ }
.kuiControlledTable .kuiToolBarFooter {
border-top: none;
- /* 2 */ }
+ }
.kuiControlledTable .kuiMenu--contained {
border-top: none;
- /* 1 */ }
+ }
-/**
- * 1. Prevent cells from expanding based on content size. This substitutes for table-layout: fixed.
- */
-/**
- * NOTE: table-layout: fixed causes a bug in IE11 and Edge (see #9929). It also prevents us from
- * specifying a column width, e.g. the checkbox column.
- */
.kuiTable {
width: 100%;
border: 1px solid #D3DAE6;
border-collapse: collapse;
background-color: #FFF; }
-/**
- * 1. Allow contents of cells to determine table's width.
- */
.kuiTable--fluid {
width: auto;
- /* 1 */ }
+ }
.kuiTable--fluid .kuiTableHeaderCell,
.kuiTable--fluid .kuiTableRowCell {
max-width: none;
- /* 1 */ }
+ }
.kuiTableHeaderCell {
font-size: 16px;
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- line-height: 1.5;
+ line-height: 1.5;
color: #69707D; }
.kuiTableHeaderCell__liner {
display: inline-block;
padding: 7px 8px 8px; }
-/**
- * 1. Prevent rapid clicking from selecting text.
- * 2. Remove native button element styles.
- * 3. Make buttons look and behave like table header cells.
- */
.kuiTableHeaderCellButton {
- -webkit-user-select: none;
- user-select: none;
- /* 1 */
- cursor: pointer;
+ user-select: none;
+ cursor: pointer;
width: 100%;
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: 0;
- /* 2 */
- padding: 0;
- /* 2 */
- color: inherit;
- /* 3 */
- line-height: inherit;
- /* 3 */
- font-size: inherit;
- /* 3 */
- text-align: inherit;
- /* 3 */ }
+ appearance: none;
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+ color: inherit;
+ line-height: inherit;
+ font-size: inherit;
+ text-align: inherit;
+ }
.kuiTableHeaderCellButton:hover .kuiTableSortIcon {
display: block;
opacity: 1; }
@@ -2156,31 +1306,20 @@ main {
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- color: #343741;
+ color: #343741;
border-top: 1px solid #D3DAE6;
vertical-align: middle; }
-/**
- * 1. Vertically align all children.
- * 2. The padding on this div allows the ellipsis to show if the content is truncated. If
- * the padding was on the cell, the ellipsis would be cropped.
- * 3. Truncate content with an ellipsis.
- */
.kuiTableRowCell__liner {
padding: 7px 8px 8px;
- /* 2 */
- line-height: 1.5;
- /* 1 */
- overflow: hidden;
- /* 3 */
- text-overflow: ellipsis;
- /* 3 */
- white-space: nowrap;
- /* 3 */ }
+ line-height: 1.5;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
.kuiTableRowCell__liner > * {
vertical-align: middle;
- /* 1 */ }
+ }
.kuiTableRowCell--wrap .kuiTableRowCell__liner {
white-space: normal; }
@@ -2189,34 +1328,24 @@ main {
overflow: visible;
white-space: normal; }
-/**
- * 1. We don't want to create too strong a disconnect between the original row and the row
- * that contains its expanded details.
- */
.kuiTableRowCell--expanded {
border-top-color: #FFF;
- /* 1 */ }
+ }
.kuiTableRowCell--alignRight {
text-align: right; }
.kuiTableRowCell--alignRight .kuiTableRowCell__liner {
text-align: right; }
-/**
- * 1. Rendered width of cell with checkbox inside of it.
- * 2. Align checkbox with text in other cells.
- * 3. Show the checkbox in Edge; otherwise it gets cropped.
- */
.kuiTableHeaderCell--checkBox,
.kuiTableRowCell--checkBox {
width: 28px;
- /* 1 */
- line-height: 1;
- /* 2 */ }
+ line-height: 1;
+ }
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableRowCell__liner {
overflow: visible;
- /* 3 */ }
+ }
.kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner,
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableHeaderCell__liner,
@@ -2233,41 +1362,29 @@ main {
display: flex;
border-bottom: 1px solid #D3DAE6; }
-/**
- * 1. Override button styles (some of which are from Bootstrap).
- * 2. Adding a border shifts tabs right by 1px, so we need to shift them back.
- * 3. Move the tab down so that its bottom border covers the container's bottom border.
- * 4. When the tab is focused, its bottom border changes to be 1px, so we need to add 1px more
- * of padding to make sure the text doesn't shift down.
- */
.kuiTab {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- cursor: pointer;
+ appearance: none;
+ cursor: pointer;
padding: 10px 30px;
font-size: 16px;
color: #69707D;
background-color: transparent;
- /* 1 */
- border: 1px solid #D3DAE6;
+ border: 1px solid #D3DAE6;
border-radius: 0;
- /* 1 */
- margin-bottom: -1px;
- /* 3 */ }
+ margin-bottom: -1px;
+ }
.kuiTab + .kuiTab {
border-left: none; }
.kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
margin-left: -1px;
- /* 2 */ }
+ }
.kuiTab:active {
outline: none !important;
- /* 1 */
- box-shadow: none;
- /* 1 */ }
+ box-shadow: none;
+ }
.kuiTab:focus {
outline: none;
- /* 1 */ }
+ }
.kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
z-index: 1;
color: #006BB4;
@@ -2286,49 +1403,37 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
background-color: transparent;
border: solid 1px #D3DAE6; }
.kuiToolBar .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
.kuiToolBar .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
.kuiToolBar .kuiSelect {
border-color: #fbfcfd; }
.kuiToolBar .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #006BB4; }
a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #006BB4; }
.kuiToolBarSection {
@@ -2339,36 +1444,31 @@ main {
margin-right: 25px; }
.kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarSection:first-child {
margin-left: 0; }
.kuiToolBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Override Bar styles and put Search on the left side.
- */
.kuiToolBar--searchOnly .kuiToolBarSearch {
margin-left: 0 !important;
- /* 1 */ }
+ }
.kuiToolBarFooter {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 40px;
background-color: #FFF; }
@@ -2380,27 +1480,21 @@ main {
margin-right: 25px; }
.kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarFooterSection:first-child {
margin-left: 0; }
.kuiToolBarFooterSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarFooterSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarFooterSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Put 10px of space between each child.
- * 2. Fix IE11 bug which causes this item to grow too wide when there is only a single
- * kuiToolBarSection sibling.
- */
.kuiToolBarSearch {
display: flex;
align-items: center;
@@ -2408,15 +1502,14 @@ main {
margin-right: 25px;
flex: 1 1 auto;
max-width: 100%;
- /* 2 */
- line-height: 1.5; }
+ line-height: 1.5; }
.kuiToolBarSearch:first-child {
margin-left: 0; }
.kuiToolBarSearch:last-child {
margin-right: 0; }
.kuiToolBarSearch > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiToolBarSearchBox {
flex: 1 1 auto;
@@ -2431,85 +1524,55 @@ main {
font-size: 1em;
color: #acacac; }
-/**
- * 1. Fix inherited styles (possibly from Bootstrap).
- */
.kuiToolBarSearchBox__input {
width: 100%;
min-width: 200px;
padding: 4px 12px 5px 28px;
- font-family: "var(--font-text)";
- /* 1 */
- background-color: #FFF;
+ font-family: var(--font-text);
+ background-color: #FFF;
color: #343741;
border-radius: 4px;
font-size: 1em;
border: 1px solid #D3DAE6;
line-height: normal;
- /* 1 */
- transition: border-color 0.1s linear; }
+ transition: border-color 0.1s linear; }
.kuiToolBarSearchBox__input:focus {
outline: none;
border-color: #006BB4; }
-/*
- * 1. We don't want the text to take up two lines and overflow the ToolBar.
- */
.kuiToolBarText {
font-size: 16px;
line-height: 1.5;
color: #69707D;
white-space: nowrap;
- /* 1 */ }
+ }
-/**
- * 1. Override h1.
- */
.kuiTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 24px; }
+ font-weight: 400;
+ font-size: 24px; }
-/**
- * 1. Override h2, h3, etc.
- */
.kuiSubTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 20px; }
+ font-weight: 400;
+ font-size: 20px; }
-/**
- * 1. Override p.
- */
.kuiTextTitle {
margin: 0;
- /* 1 */
- font-weight: 700;
- /* 1 */
- line-height: 1.5;
+ font-weight: 700;
+ line-height: 1.5;
font-size: 16px; }
-/**
- * 1. Override p.
- */
.kuiText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 16px; }
.kuiSubText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 14px; }
.kuiSubduedText {
diff --git a/packages/osd-ui-framework/dist/kui_next_dark.css b/packages/osd-ui-framework/dist/kui_next_dark.css
index f547a9bd3e82..d424a8ee63f1 100644
--- a/packages/osd-ui-framework/dist/kui_next_dark.css
+++ b/packages/osd-ui-framework/dist/kui_next_dark.css
@@ -8,577 +8,17 @@
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/**
- * 1. Focus rings shouldn't be visible on scrollable regions, but a11y requires them to be focusable.
- * Browser's supporting `:focus-visible` will still show outline on keyboard focus only.
- * Others like Safari, won't show anything at all.
- * 2. Force the `:focus-visible` when the `tabindex=0` (is tabbable)
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/**
- * 1. Enforce pointer when there's no href.
- * 2. Allow these styles to be applied to a button element.
- */
-/**
- * 1. Override Bootstrap styles.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :disabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * Nothing fancy, just the basics so we can use this for both regular and static controls.
- */
-/**
- * 1. Prevent Firefox users from being able to resize textareas to smaller than the min-height.
- */
-/**
- * We specifically don't include Angular's ng-${state} classes here because we don't want to be tightly
- * coupled with Angular.
- */
-/**
- * 1. Embedded SVG of fa-caret-down
- * (https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/caret-down.svg).
- * 2. Make room on right side for the caret.
- * 3. Prevent Firefox from showing dotted line around text on focus.
- */
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Fit MicroButton inside of Table rows without pushing them taller.
- */
-/**
- * 1. Give Bar a consistent height for when it contains shorter children, and therefore can't
- * depend on them to give it the desired height.
- */
-/**
- * 1. Put 10px of space between each child.
- * 2. If there is only one section, align it to the right. If you wanted it aligned right, you
- * wouldn't use the Bar in the first place.
- * 3. Children in the middle should center their content.
- * 4. Fix an IE bug which causes the last child to overflow the container.
- * 5. Fixing this bug means we now need to align the children to the right.
- */
-/**
- * 1. Required for IE11.
- */
+
main {
display: block;
- /* 1 */ }
+ }
.kuiBar {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */ }
+ }
.kuiBarSection {
display: flex;
@@ -588,33 +28,24 @@ main {
margin-right: 25px; }
.kuiBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiBarSection:first-child {
margin-left: 0; }
.kuiBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Links can be focused when they're "disabled" (since we're just faking this with a class), but
- * at least make them look like they're not focused.
- */
.kuiButton {
display: inline-block;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
cursor: pointer;
padding: 4px 12px 5px;
font-size: 16px;
@@ -631,21 +62,14 @@ main {
cursor: not-allowed;
opacity: 0.5; }
.kuiButton:enabled:active {
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
a.kuiButton:not(.kuiButton-isDisabled):active {
- /* 1 */
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
-/**
- * 1. Solves whitespace problems introduced by inline elements.
- */
.kuiButton__inner {
display: flex;
- /* 1 */
- align-items: center;
- /* 1 */ }
+ align-items: center;
+ }
.kuiButton--small {
font-size: 12px;
@@ -668,122 +92,85 @@ main {
.kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) {
margin-left: 4px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--basic {
color: #DFE5EF;
background-color: #101B25; }
.kuiButton--basic:not(a):enabled:focus {
color: #DFE5EF; }
a.kuiButton--basic:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #DFE5EF; }
+ color: #DFE5EF; }
.kuiButton--basic:enabled:hover {
background-color: #010101 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):hover {
- /* 1 */
- background-color: #010101 !important;
- /* 1 */ }
+ background-color: #010101 !important;
+ }
.kuiButton--basic:enabled:active {
background-color: #010101 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):active {
- /* 1 */
- background-color: #010101 !important;
- /* 1 */ }
+ background-color: #010101 !important;
+ }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--primary {
color: #FCFEFF;
background-color: #159D8D; }
.kuiButton--primary:not(a):enabled:focus {
color: #FCFEFF; }
a.kuiButton--primary:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FCFEFF; }
+ color: #FCFEFF; }
.kuiButton--primary:enabled:hover {
color: #FCFEFF !important;
- /* 1 */
- background-color: #0f7065; }
+ background-color: #0f7065; }
a.kuiButton--primary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FCFEFF !important;
- /* 1 */
- background-color: #0f7065; }
+ color: #FCFEFF !important;
+ background-color: #0f7065; }
.kuiButton--primary:enabled:active {
color: #FCFEFF !important;
- /* 1 */
- background-color: #0f7065; }
+ background-color: #0f7065; }
a.kuiButton--primary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FCFEFF !important;
- /* 1 */
- background-color: #0f7065; }
+ color: #FCFEFF !important;
+ background-color: #0f7065; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--success {
color: #FCFEFF;
background-color: #7DE2D1; }
.kuiButton--success:not(a):enabled:focus {
color: #FCFEFF; }
a.kuiButton--success:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FCFEFF; }
+ color: #FCFEFF; }
.kuiButton--success:enabled:hover {
color: #FCFEFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ background-color: #53d9c2; }
a.kuiButton--success:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FCFEFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ color: #FCFEFF !important;
+ background-color: #53d9c2; }
.kuiButton--success:enabled:active {
color: #FCFEFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ background-color: #53d9c2; }
a.kuiButton--success:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FCFEFF !important;
- /* 1 */
- background-color: #53d9c2; }
+ color: #FCFEFF !important;
+ background-color: #53d9c2; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--danger {
color: #F66;
border: solid 1px #F66; }
.kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #F66;
- /* 3 */
- color: #F66; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #F66;
+ color: #F66; }
a.kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #F66;
- /* 3 */
- color: #F66; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #F66;
+ color: #F66; }
.kuiButton--danger:enabled:hover {
color: #ff3333 !important;
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #ff3333 !important;
+ color: #ff3333 !important;
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
.kuiButton--danger:enabled:active {
@@ -791,112 +178,77 @@ main {
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #ff3333 !important;
+ color: #ff3333 !important;
border: solid 1px #ff3333;
background-color: rgba(255, 102, 102, 0.1); }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--warning {
color: #FCFEFF;
background-color: #FFCE7A; }
.kuiButton--warning:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #FFCE7A;
- /* 3 */
- color: #FCFEFF; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #FFCE7A;
+ color: #FCFEFF; }
a.kuiButton--warning:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #FFCE7A;
- /* 3 */
- color: #FCFEFF; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #FFCE7A;
+ color: #FCFEFF; }
.kuiButton--warning:enabled:hover {
color: #FCFEFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ background-color: #ffbb47; }
a.kuiButton--warning:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FCFEFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ color: #FCFEFF !important;
+ background-color: #ffbb47; }
.kuiButton--warning:enabled:active {
color: #FCFEFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ background-color: #ffbb47; }
a.kuiButton--warning:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FCFEFF !important;
- /* 1 */
- background-color: #ffbb47; }
+ color: #FCFEFF !important;
+ background-color: #ffbb47; }
.kuiButton--warning:disabled {
background-color: #ffe1ad; }
a.kuiButton--warning.kuiButton-isDisabled {
background-color: #ffe1ad; }
-/**
- * 1. Override Bootstrap.
- * 2. Override either Bootstrap or Timeline styles.
- */
.kuiButton--hollow {
color: #159D8D !important;
- /* 2 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiButton--hollow:enabled:hover {
color: #0f7065 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #0f7065 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #0f7065 !important;
+ text-decoration: underline; }
.kuiButton--hollow:enabled:active {
color: #0f7065 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #0f7065 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #0f7065 !important;
+ text-decoration: underline; }
.kuiButton--secondary {
color: #159D8D !important;
- /* 2 */
- border: solid 1px #159D8D; }
+ border: solid 1px #159D8D; }
.kuiButton--secondary:enabled:hover {
color: #0f7065 !important;
- /* 1 */
- border: solid 1px #0f7065;
+ border: solid 1px #0f7065;
background-color: rgba(21, 157, 141, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #0f7065 !important;
- /* 1 */
- border: solid 1px #0f7065;
+ color: #0f7065 !important;
+ border: solid 1px #0f7065;
background-color: rgba(21, 157, 141, 0.1);
text-decoration: underline; }
.kuiButton--secondary:enabled:active {
color: #0f7065 !important;
- /* 1 */
- border: solid 1px #0f7065;
+ border: solid 1px #0f7065;
background-color: rgba(21, 157, 141, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #0f7065 !important;
- /* 1 */
- border: solid 1px #0f7065;
+ color: #0f7065 !important;
+ border: solid 1px #0f7065;
background-color: rgba(21, 157, 141, 0.1);
text-decoration: underline; }
@@ -934,66 +286,42 @@ main {
display: inline-block; }
.kuiCollapseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #DFE5EF !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35; }
.kuiCollapseButton:hover {
opacity: 1; }
-/**
- * 1. Set inline-block so this wrapper shrinks to fit the input.
- */
.kuiAssistedInput {
display: inline-block;
- /* 1 */
- position: relative; }
+ position: relative; }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiAssistedInput__assistance {
position: absolute;
right: 12px;
top: 50%;
- /* 1 */
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
-
-/**
- * 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really
- * ugly default appearance which we can't customize, so our best option is to give Firefox
- * control over the checkbox's appearance.
- * 2. Override default styles (possibly from Bootstrap).
- */
+ transform: translateY(-50%);
+ }
+
.kuiCheckBox {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- background-color: #0e1721;
+ appearance: none;
+ background-color: #0e1721;
border: 1px solid rgba(252, 254, 255, 0.1);
border-radius: 4px;
width: 16px;
height: 16px;
- font: "var(--font-text)" !important;
- /* 2 */
- line-height: 1.5 !important;
- /* 2 */
- margin: 0 !important;
- /* 2 */
- font-family: "var(--font-text)" !important;
- /* 2 */
- font-size: 10px !important;
- /* 2 */
- transition: background-color 0.1s linear; }
+ font: var(--font-text) !important;
+ line-height: 1.5 !important;
+ margin: 0 !important;
+ font-family: var(--font-text) !important;
+ font-size: 10px !important;
+ transition: background-color 0.1s linear; }
.kuiCheckBox::before {
position: relative;
left: 0.25em;
@@ -1010,11 +338,9 @@ main {
opacity: 1; }
.kuiCheckBox:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #159D8D;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #0A121A, 0 0 0 2px #159D8D;
+ }
.kuiCheckBox:disabled {
background-color: #0d161e !important;
border-color: #0d161e !important;
@@ -1030,15 +356,12 @@ main {
font-size: 16px;
margin-left: 8px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiLabel {
font-size: 16px;
line-height: 1.5;
font-weight: bold;
margin-bottom: 0;
- /* 1 */ }
+ }
.kuiSearchInput {
width: 180px;
@@ -1056,14 +379,9 @@ main {
font-size: 1em;
color: #5B6875; }
-/**
- * 1. Make space for search icon.
- * 2. Expand to fill container.
- */
.kuiSearchInput__input {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1074,11 +392,9 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-left: 28px;
- /* 1 */
- width: 100%;
- /* 2 */ }
+ padding-left: 28px;
+ width: 100%;
+ }
.kuiSearchInput__input:invalid {
border-color: #F66; }
.kuiSearchInput__input:focus {
@@ -1094,13 +410,9 @@ main {
.kuiSearchInput--large {
width: 400px; }
-/**
- * Avoid setting a width here, so that the width of the options can dynamically set the width.
- */
.kuiSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1111,15 +423,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */ }
+ }
.kuiSelect:invalid {
border-color: #F66; }
.kuiSelect:focus {
@@ -1130,7 +439,7 @@ main {
cursor: not-allowed; }
.kuiSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
.kuiSelect.kuiSelect-isInvalid {
border-color: #F66; }
.kuiSelect:focus {
@@ -1147,28 +456,22 @@ main {
.kuiSelect--large {
width: 400px; }
-/**
- * 1. Have the same spatial footprint as the regular input.
- */
.kuiStaticInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #DFE5EF;
border: 1px solid transparent;
- /* 1 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiTextArea {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1179,7 +482,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextArea:invalid {
border-color: #F66; }
.kuiTextArea:focus {
@@ -1206,9 +509,8 @@ main {
.kuiTextInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1219,7 +521,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextInput:invalid {
border-color: #F66; }
.kuiTextInput:focus {
@@ -1237,13 +539,10 @@ main {
.kuiTextInput--large {
width: 400px; }
-/**
- * 1. We may want to put elements in here which have different heights.
- */
.kuiFieldGroup {
display: flex;
align-items: center;
- /* 1 */ }
+ }
.kuiFieldGroup--alignTop {
align-items: flex-start; }
@@ -1258,23 +557,14 @@ main {
.kuiFieldGroupSection--wide > * {
width: 100%; }
-/**
- * 1. Copied from FontAwesome's .fa class. We use a custom class to make it easier to migrate away
- * from FontAwesome someday. When we do migrate away, we can just update this definition.
- */
.kuiIcon {
display: inline-block;
- /* 1 */
- font: normal normal normal 14px/1 FontAwesome, sans-serif;
- /* 1 */
- font-size: inherit;
- /* 1 */
- text-rendering: auto;
- /* 1 */
- -webkit-font-smoothing: antialiased;
- /* 1 */
- -moz-osx-font-smoothing: grayscale;
- /* 1 */ }
+ font: normal normal normal 14px/1 FontAwesome, sans-serif;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
.kuiIcon--info {
color: #159D8D; }
@@ -1299,41 +589,26 @@ main {
line-height: 1.5;
border: 2px solid; }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--info {
border-color: rgba(21, 157, 141, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--success {
border-color: rgba(125, 226, 209, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--warning {
border-color: rgba(255, 206, 122, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--error {
border-color: rgba(255, 102, 102, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. Align with first line of title text if it wraps.
- */
.kuiInfoPanelHeader {
display: flex;
align-items: baseline;
- /* 1 */ }
+ }
.kuiInfoPanelHeader__icon {
margin-right: 10px;
@@ -1358,34 +633,23 @@ main {
color: #159D8D;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */ }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ }
.kuiLink:visited, .kuiLink:active {
color: #159D8D; }
.kuiLink:hover {
color: #0f7065;
text-decoration: underline; }
-/**
- * 1. Breadcrumbs are placed in the top-left corner and need to be bumped over
- * a bit.
- */
.kuiLocalBreadcrumbs {
display: flex;
align-items: center;
padding: 12px 8px;
- /* 1 */
- border-bottom: 1px solid #293847;
+ border-bottom: 1px solid #293847;
flex-grow: 1;
flex-basis: 100%;
background-color: #0A121A; }
@@ -1398,33 +662,21 @@ main {
margin-left: 6px; }
.kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before {
content: "/";
- -webkit-user-select: none;
- user-select: none;
+ user-select: none;
margin-right: 4px;
color: #293847; }
-/**
- * 1. Make it a bit darker to contrast with the gray background.
- */
.kuiLocalBreadcrumb__link {
color: #159D8D;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */
- color: #159D8D;
- /* 1 */
- font-size: 16px; }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ color: #159D8D;
+ font-size: 16px; }
.kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active {
color: #159D8D; }
.kuiLocalBreadcrumb__link:hover {
@@ -1449,12 +701,8 @@ main {
justify-content: space-between;
margin-bottom: 4px; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerNavigationButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
border: none;
font-size: 14px;
@@ -1467,13 +715,10 @@ main {
background-color: #159D8D; }
.kuiDatePickerNavigationButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #159D8D;
- /* 3 */
- color: #DFE5EF;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #159D8D;
+ color: #DFE5EF;
+ }
.kuiDatePickerHeaderCell {
padding: 9px 0;
@@ -1486,22 +731,14 @@ main {
.kuiDatePickerRowCell {
padding: 0;
text-align: center;
- /**
- * This state class exists to support weird angular-bootstrap datepicker functionality,
- * in which you can't select a day on the "From" calendar if it falls after the selected day in
- * the "To" calendar (and vice versa, you can't select a "To" day if it is before the "From" day).
- */ }
+ }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked {
cursor: not-allowed; }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent {
pointer-events: none; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerRowCellContent {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
width: 100%;
border: 1px solid transparent;
@@ -1512,13 +749,10 @@ main {
line-height: 1.2; }
.kuiDatePickerRowCellContent:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #159D8D;
- /* 3 */
- color: #DFE5EF;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #159D8D;
+ color: #DFE5EF;
+ }
.kuiDatePickerRowCellContent:disabled {
pointer-events: none;
opacity: 0.5; }
@@ -1543,16 +777,14 @@ main {
line-height: 20px; }
.kuiLocalDropdownCloseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #DFE5EF !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35;
position: absolute;
top: 1px;
@@ -1572,13 +804,9 @@ main {
.kuiLocalDropdownPanel--right {
margin-left: 30px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownTitle {
margin-top: 0;
- /* 1 */
- margin-bottom: 12px;
+ margin-bottom: 12px;
font-size: 18px;
color: #DFE5EF; }
@@ -1593,15 +821,11 @@ main {
justify-content: space-between;
margin-bottom: 6px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownHeader__label {
font-size: 14px;
font-weight: 700;
margin-bottom: 0;
- /* 1 */
- color: #DFE5EF; }
+ color: #DFE5EF; }
.kuiLocalDropdownHeader__actions {
display: flex; }
@@ -1683,24 +907,16 @@ main {
margin-right: 5px;
margin-bottom: -1px; }
-/**
- * 1. Match height of logo in side bar, but allow it to expand to accommodate
- * dropdown.
- */
.kuiLocalNav {
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 69px;
- /* 1 */
- color: #DFE5EF;
+ color: #DFE5EF;
background-color: #0A121A;
line-height: 1.5;
border-bottom: solid 1px #293847; }
-/**
- * 1. Allow row to expand if the content is so long that it wraps.
- */
.kuiLocalNavRow {
display: flex;
align-items: stretch;
@@ -1710,18 +926,10 @@ main {
display: flex;
align-items: stretch; }
-/**
- * 1. We make this row flex-start because it usually contains a search input, which may expand
- * beyond the height of this container. We can't use `align-items: center`, because this would
- * cause the search input to overflow both on the top and bottom; `align-items: flex-start`
- * makes it only overflow on the bottom. But this means we need to manually center the content
- * of this container using padding.
- */
.kuiLocalNavRow--secondary {
padding: 0 8px;
- /* 1 */
- align-items: flex-start;
- /* 1 */ }
+ align-items: flex-start;
+ }
.kuiLocalSearch {
display: flex;
@@ -1729,9 +937,8 @@ main {
margin-bottom: 8px; }
.kuiLocalSearchInput {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1742,8 +949,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- flex: 1 1 100%;
+ flex: 1 1 100%;
border-color: #FCFEFF;
border-color: #293847;
border-radius: 4px 0 0 4px; }
@@ -1766,33 +972,22 @@ main {
border-radius: 0;
border-left-width: 0; }
-/**
- * 1. em used for right padding so documentation link and query string
- * won't overlap if the user increases their default browser font size
- * This is sized for the 'Options' link
- */
.kuiLocalSearchInput,
.kuiLocalSearchAssistedInput__input {
padding-right: 6em;
- /* 1 */ }
+ }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiLocalSearchAssistedInput__assistance {
position: absolute;
right: 6px;
top: 50%;
- /* 1 */
- z-index: 2;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
+ z-index: 2;
+ transform: translateY(-50%);
+ }
.kuiLocalSearchSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1803,16 +998,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */
- border-left-width: 0;
+ border-left-width: 0;
border-radius: 0; }
.kuiLocalSearchSelect:invalid {
border-color: #F66; }
@@ -1824,40 +1015,28 @@ main {
cursor: not-allowed; }
.kuiLocalSearchSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalSearchButton {
width: 43px;
height: 32px;
font-size: 16px;
line-height: 0;
- /* 1 */
- color: #FCFEFF;
+ color: #FCFEFF;
background-color: #159D8D;
border: 0;
border-radius: 0 4px 4px 0; }
.kuiLocalSearchButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
+ }
-/**
- * 1. We want the bottom border on selected tabs to be flush with the bottom of the container.
- */
.kuiLocalTabs {
display: flex;
align-items: flex-end;
height: 100%; }
-/**
- * 1. Override inherited typographic styles.
- */
.kuiLocalTab {
padding: 5px 0 6px;
font-size: 18px;
@@ -1866,13 +1045,8 @@ main {
text-decoration: none;
cursor: pointer;
margin-top: 0 !important;
- /* 1 */
- margin-bottom: 0 !important;
- /* 1 */
- /**
- * 1. We may want to show a tooltip to explain why the tab is disabled, so we will just show
- * a regular cursor instead of setting pointer-events: none.
- */ }
+ margin-bottom: 0 !important;
+ }
.kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) {
color: #159D8D; }
.kuiLocalTab.kuiLocalTab-isSelected {
@@ -1882,7 +1056,7 @@ main {
.kuiLocalTab.kuiLocalTab-isDisabled {
opacity: 0.5;
cursor: default;
- /* 1 */ }
+ }
.kuiLocalTab + .kuiLocalTab {
margin-left: 15px; }
@@ -1900,22 +1074,19 @@ main {
padding: 0;
display: none; }
-/**
- * 1. Put 10px of space between each child.
- */
.kuiPager {
display: flex;
align-items: center; }
.kuiPager > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPagerText {
font-size: 16px;
line-height: 1.5;
color: #8D98A3;
white-space: nowrap;
- /* 1 */ }
+ }
.kuiPanel {
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 1px 5px -2px rgba(0, 0, 0, 0.3);
@@ -1951,62 +1122,44 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
border-bottom: 1px solid #293847; }
.kuiPanelHeader .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
+ }
a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
+ }
.kuiPanelHeader .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
+ }
a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
+ }
.kuiPanelHeader .kuiSelect {
border-color: #0e1721; }
.kuiPanelHeader .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #159D8D; }
a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #159D8D; }
-/**
- * 1. This way we can use h1, h2, etc.
- */
.kuiPanelHeader__title {
font-size: 20px;
line-height: 1.5;
margin: 0;
- /* 1 */ }
+ }
-/**
- * 1. Undo what barSection mixin does.
- */
.kuiPanelHeaderSection {
display: flex;
align-items: center;
@@ -2015,26 +1168,24 @@ main {
margin-right: 25px; }
.kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiPanelHeaderSection:first-child {
margin-left: 0; }
.kuiPanelHeaderSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiPanelHeaderSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiPanelHeaderSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPanelHeaderSection:only-child {
margin-left: 0;
- /* 1 */
- margin-right: auto;
- /* 1 */ }
+ margin-right: auto;
+ }
.kuiPanelBody {
padding: 10px; }
@@ -2069,98 +1220,63 @@ main {
.kuiStatusText--error {
color: #F66; }
-/**
- * 1. Set the image to be the same size as a font icon at 14px.
- * 2. We need to cap the height too, in case the icon was designed thin and tall.
- */
.kuiStatusText__icon {
margin-right: 6px;
width: 1.15em;
- /* 1 */
- max-height: 1.15em;
- /* 2 */ }
+ max-height: 1.15em;
+ }
-/**
- * 1. Make seamless transition from ToolBar to Table header and contained Menu.
- * 1. Make seamless transition from Table to ToolBarFooter header.
- */
.kuiControlledTable {
background: #0A121A; }
.kuiControlledTable .kuiTable {
border-top: none;
- /* 1 */ }
+ }
.kuiControlledTable .kuiToolBarFooter {
border-top: none;
- /* 2 */ }
+ }
.kuiControlledTable .kuiMenu--contained {
border-top: none;
- /* 1 */ }
+ }
-/**
- * 1. Prevent cells from expanding based on content size. This substitutes for table-layout: fixed.
- */
-/**
- * NOTE: table-layout: fixed causes a bug in IE11 and Edge (see #9929). It also prevents us from
- * specifying a column width, e.g. the checkbox column.
- */
.kuiTable {
width: 100%;
border: 1px solid #293847;
border-collapse: collapse;
background-color: #0A121A; }
-/**
- * 1. Allow contents of cells to determine table's width.
- */
.kuiTable--fluid {
width: auto;
- /* 1 */ }
+ }
.kuiTable--fluid .kuiTableHeaderCell,
.kuiTable--fluid .kuiTableRowCell {
max-width: none;
- /* 1 */ }
+ }
.kuiTableHeaderCell {
font-size: 16px;
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- line-height: 1.5;
+ line-height: 1.5;
color: #8D98A3; }
.kuiTableHeaderCell__liner {
display: inline-block;
padding: 7px 8px 8px; }
-/**
- * 1. Prevent rapid clicking from selecting text.
- * 2. Remove native button element styles.
- * 3. Make buttons look and behave like table header cells.
- */
.kuiTableHeaderCellButton {
- -webkit-user-select: none;
- user-select: none;
- /* 1 */
- cursor: pointer;
+ user-select: none;
+ cursor: pointer;
width: 100%;
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: 0;
- /* 2 */
- padding: 0;
- /* 2 */
- color: inherit;
- /* 3 */
- line-height: inherit;
- /* 3 */
- font-size: inherit;
- /* 3 */
- text-align: inherit;
- /* 3 */ }
+ appearance: none;
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+ color: inherit;
+ line-height: inherit;
+ font-size: inherit;
+ text-align: inherit;
+ }
.kuiTableHeaderCellButton:hover .kuiTableSortIcon {
display: block;
opacity: 1; }
@@ -2190,31 +1306,20 @@ main {
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- color: #DFE5EF;
+ color: #DFE5EF;
border-top: 1px solid #293847;
vertical-align: middle; }
-/**
- * 1. Vertically align all children.
- * 2. The padding on this div allows the ellipsis to show if the content is truncated. If
- * the padding was on the cell, the ellipsis would be cropped.
- * 3. Truncate content with an ellipsis.
- */
.kuiTableRowCell__liner {
padding: 7px 8px 8px;
- /* 2 */
- line-height: 1.5;
- /* 1 */
- overflow: hidden;
- /* 3 */
- text-overflow: ellipsis;
- /* 3 */
- white-space: nowrap;
- /* 3 */ }
+ line-height: 1.5;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
.kuiTableRowCell__liner > * {
vertical-align: middle;
- /* 1 */ }
+ }
.kuiTableRowCell--wrap .kuiTableRowCell__liner {
white-space: normal; }
@@ -2223,34 +1328,24 @@ main {
overflow: visible;
white-space: normal; }
-/**
- * 1. We don't want to create too strong a disconnect between the original row and the row
- * that contains its expanded details.
- */
.kuiTableRowCell--expanded {
border-top-color: #0A121A;
- /* 1 */ }
+ }
.kuiTableRowCell--alignRight {
text-align: right; }
.kuiTableRowCell--alignRight .kuiTableRowCell__liner {
text-align: right; }
-/**
- * 1. Rendered width of cell with checkbox inside of it.
- * 2. Align checkbox with text in other cells.
- * 3. Show the checkbox in Edge; otherwise it gets cropped.
- */
.kuiTableHeaderCell--checkBox,
.kuiTableRowCell--checkBox {
width: 28px;
- /* 1 */
- line-height: 1;
- /* 2 */ }
+ line-height: 1;
+ }
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableRowCell__liner {
overflow: visible;
- /* 3 */ }
+ }
.kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner,
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableHeaderCell__liner,
@@ -2267,41 +1362,29 @@ main {
display: flex;
border-bottom: 1px solid #293847; }
-/**
- * 1. Override button styles (some of which are from Bootstrap).
- * 2. Adding a border shifts tabs right by 1px, so we need to shift them back.
- * 3. Move the tab down so that its bottom border covers the container's bottom border.
- * 4. When the tab is focused, its bottom border changes to be 1px, so we need to add 1px more
- * of padding to make sure the text doesn't shift down.
- */
.kuiTab {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- cursor: pointer;
+ appearance: none;
+ cursor: pointer;
padding: 10px 30px;
font-size: 16px;
color: #8D98A3;
background-color: transparent;
- /* 1 */
- border: 1px solid #293847;
+ border: 1px solid #293847;
border-radius: 0;
- /* 1 */
- margin-bottom: -1px;
- /* 3 */ }
+ margin-bottom: -1px;
+ }
.kuiTab + .kuiTab {
border-left: none; }
.kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
margin-left: -1px;
- /* 2 */ }
+ }
.kuiTab:active {
outline: none !important;
- /* 1 */
- box-shadow: none;
- /* 1 */ }
+ box-shadow: none;
+ }
.kuiTab:focus {
outline: none;
- /* 1 */ }
+ }
.kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
z-index: 1;
color: #159D8D;
@@ -2320,49 +1403,37 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
background-color: transparent;
border: solid 1px #293847; }
.kuiToolBar .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
+ }
a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #159D8D;
+ }
.kuiToolBar .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
+ }
a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #293847, 0 0 0 2px #F66;
+ }
.kuiToolBar .kuiSelect {
border-color: #0e1721; }
.kuiToolBar .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #159D8D; }
a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #159D8D; }
.kuiToolBarSection {
@@ -2373,36 +1444,31 @@ main {
margin-right: 25px; }
.kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarSection:first-child {
margin-left: 0; }
.kuiToolBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Override Bar styles and put Search on the left side.
- */
.kuiToolBar--searchOnly .kuiToolBarSearch {
margin-left: 0 !important;
- /* 1 */ }
+ }
.kuiToolBarFooter {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 40px;
background-color: #0A121A; }
@@ -2414,27 +1480,21 @@ main {
margin-right: 25px; }
.kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarFooterSection:first-child {
margin-left: 0; }
.kuiToolBarFooterSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarFooterSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarFooterSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Put 10px of space between each child.
- * 2. Fix IE11 bug which causes this item to grow too wide when there is only a single
- * kuiToolBarSection sibling.
- */
.kuiToolBarSearch {
display: flex;
align-items: center;
@@ -2442,15 +1502,14 @@ main {
margin-right: 25px;
flex: 1 1 auto;
max-width: 100%;
- /* 2 */
- line-height: 1.5; }
+ line-height: 1.5; }
.kuiToolBarSearch:first-child {
margin-left: 0; }
.kuiToolBarSearch:last-child {
margin-right: 0; }
.kuiToolBarSearch > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiToolBarSearchBox {
flex: 1 1 auto;
@@ -2465,85 +1524,55 @@ main {
font-size: 1em;
color: #acacac; }
-/**
- * 1. Fix inherited styles (possibly from Bootstrap).
- */
.kuiToolBarSearchBox__input {
width: 100%;
min-width: 200px;
padding: 4px 12px 5px 28px;
- font-family: "var(--font-text)";
- /* 1 */
- background-color: #0A121A;
+ font-family: var(--font-text);
+ background-color: #0A121A;
color: #DFE5EF;
border-radius: 4px;
font-size: 1em;
border: 1px solid #293847;
line-height: normal;
- /* 1 */
- transition: border-color 0.1s linear; }
+ transition: border-color 0.1s linear; }
.kuiToolBarSearchBox__input:focus {
outline: none;
border-color: #159D8D; }
-/*
- * 1. We don't want the text to take up two lines and overflow the ToolBar.
- */
.kuiToolBarText {
font-size: 16px;
line-height: 1.5;
color: #8D98A3;
white-space: nowrap;
- /* 1 */ }
+ }
-/**
- * 1. Override h1.
- */
.kuiTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 24px; }
+ font-weight: 400;
+ font-size: 24px; }
-/**
- * 1. Override h2, h3, etc.
- */
.kuiSubTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 20px; }
+ font-weight: 400;
+ font-size: 20px; }
-/**
- * 1. Override p.
- */
.kuiTextTitle {
margin: 0;
- /* 1 */
- font-weight: 700;
- /* 1 */
- line-height: 1.5;
+ font-weight: 700;
+ line-height: 1.5;
font-size: 16px; }
-/**
- * 1. Override p.
- */
.kuiText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 16px; }
.kuiSubText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 14px; }
.kuiSubduedText {
diff --git a/packages/osd-ui-framework/dist/kui_next_light.css b/packages/osd-ui-framework/dist/kui_next_light.css
index 80b31588660e..b6952eb159bb 100644
--- a/packages/osd-ui-framework/dist/kui_next_light.css
+++ b/packages/osd-ui-framework/dist/kui_next_light.css
@@ -8,543 +8,17 @@
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*/
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/**
- * 1. Focus rings shouldn't be visible on scrollable regions, but a11y requires them to be focusable.
- * Browser's supporting `:focus-visible` will still show outline on keyboard focus only.
- * Others like Safari, won't show anything at all.
- * 2. Force the `:focus-visible` when the `tabindex=0` (is tabbable)
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/*!
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-/* OUI -> EUI Aliases */
-/* End of Aliases */
-/**
- * 1. Enforce pointer when there's no href.
- * 2. Allow these styles to be applied to a button element.
- */
-/**
- * 1. Override Bootstrap styles.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :disabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * 1. Links can't have a disabled attribute, so they can't support :enabled.
- */
-/**
- * Nothing fancy, just the basics so we can use this for both regular and static controls.
- */
-/**
- * 1. Prevent Firefox users from being able to resize textareas to smaller than the min-height.
- */
-/**
- * We specifically don't include Angular's ng-${state} classes here because we don't want to be tightly
- * coupled with Angular.
- */
-/**
- * 1. Embedded SVG of fa-caret-down
- * (https://github.com/encharm/Font-Awesome-SVG-PNG/blob/master/black/svg/caret-down.svg).
- * 2. Make room on right side for the caret.
- * 3. Prevent Firefox from showing dotted line around text on focus.
- */
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Fit MicroButton inside of Table rows without pushing them taller.
- */
-/**
- * 1. Give Bar a consistent height for when it contains shorter children, and therefore can't
- * depend on them to give it the desired height.
- */
-/**
- * 1. Put 10px of space between each child.
- * 2. If there is only one section, align it to the right. If you wanted it aligned right, you
- * wouldn't use the Bar in the first place.
- * 3. Children in the middle should center their content.
- * 4. Fix an IE bug which causes the last child to overflow the container.
- * 5. Fixing this bug means we now need to align the children to the right.
- */
-/**
- * 1. Required for IE11.
- */
+
main {
display: block;
- /* 1 */ }
+ }
.kuiBar {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */ }
+ }
.kuiBarSection {
display: flex;
@@ -554,33 +28,24 @@ main {
margin-right: 25px; }
.kuiBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiBarSection:first-child {
margin-left: 0; }
.kuiBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Setting to inline-block guarantees the same height when applied to both
- * button elements and anchor tags.
- * 2. Links can be focused when they're "disabled" (since we're just faking this with a class), but
- * at least make them look like they're not focused.
- */
.kuiButton {
display: inline-block;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
cursor: pointer;
padding: 4px 12px 5px;
font-size: 16px;
@@ -597,21 +62,14 @@ main {
cursor: not-allowed;
opacity: 0.5; }
.kuiButton:enabled:active {
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
a.kuiButton:not(.kuiButton-isDisabled):active {
- /* 1 */
- -webkit-transform: translateY(1px);
- transform: translateY(1px); }
+ transform: translateY(1px); }
-/**
- * 1. Solves whitespace problems introduced by inline elements.
- */
.kuiButton__inner {
display: flex;
- /* 1 */
- align-items: center;
- /* 1 */ }
+ align-items: center;
+ }
.kuiButton--small {
font-size: 12px;
@@ -634,122 +92,85 @@ main {
.kuiButton--iconText.kuiButton--small .kuiButton__icon:last-child:not(:only-child) {
margin-left: 4px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--basic {
color: #343741;
background-color: #F5F7FA; }
.kuiButton--basic:not(a):enabled:focus {
color: #343741; }
a.kuiButton--basic:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #343741; }
+ color: #343741; }
.kuiButton--basic:enabled:hover {
background-color: #d3dce9 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):hover {
- /* 1 */
- background-color: #d3dce9 !important;
- /* 1 */ }
+ background-color: #d3dce9 !important;
+ }
.kuiButton--basic:enabled:active {
background-color: #d3dce9 !important;
- /* 1 */ }
+ }
a.kuiButton--basic:not(.kuiButton-isDisabled):active {
- /* 1 */
- background-color: #d3dce9 !important;
- /* 1 */ }
+ background-color: #d3dce9 !important;
+ }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--primary {
color: #FFF;
background-color: #006BB4; }
.kuiButton--primary:not(a):enabled:focus {
color: #FFF; }
a.kuiButton--primary:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FFF; }
+ color: #FFF; }
.kuiButton--primary:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ background-color: #004d81; }
a.kuiButton--primary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ color: #FFF !important;
+ background-color: #004d81; }
.kuiButton--primary:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ background-color: #004d81; }
a.kuiButton--primary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #004d81; }
+ color: #FFF !important;
+ background-color: #004d81; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--success {
color: #FFF;
background-color: #017D73; }
.kuiButton--success:not(a):enabled:focus {
color: #FFF; }
a.kuiButton--success:not(.kuiButton-isDisabled):focus {
- /* 1 */
- color: #FFF; }
+ color: #FFF; }
.kuiButton--success:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ background-color: #014a44; }
a.kuiButton--success:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ color: #FFF !important;
+ background-color: #014a44; }
.kuiButton--success:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ background-color: #014a44; }
a.kuiButton--success:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #014a44; }
+ color: #FFF !important;
+ background-color: #014a44; }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--danger {
color: #BD271E;
border: solid 1px #BD271E; }
.kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
- /* 3 */
- color: #BD271E; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
+ color: #BD271E; }
a.kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
- /* 3 */
- color: #BD271E; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #BD271E;
+ color: #BD271E; }
.kuiButton--danger:enabled:hover {
color: #911e17 !important;
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #911e17 !important;
+ color: #911e17 !important;
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
.kuiButton--danger:enabled:active {
@@ -757,112 +178,77 @@ main {
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
a.kuiButton--danger:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #911e17 !important;
+ color: #911e17 !important;
border: solid 1px #911e17;
background-color: rgba(189, 39, 30, 0.1); }
-/**
- * 1. Override Bootstrap.
- */
.kuiButton--warning {
color: #FFF;
background-color: #F5A700; }
.kuiButton--warning:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
- /* 3 */
- color: #FFF; }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
+ color: #FFF; }
a.kuiButton--warning:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
- /* 3 */
- color: #FFF; }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #F5A700;
+ color: #FFF; }
.kuiButton--warning:enabled:hover {
color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ background-color: #c28400; }
a.kuiButton--warning:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ color: #FFF !important;
+ background-color: #c28400; }
.kuiButton--warning:enabled:active {
color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ background-color: #c28400; }
a.kuiButton--warning:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #FFF !important;
- /* 1 */
- background-color: #c28400; }
+ color: #FFF !important;
+ background-color: #c28400; }
.kuiButton--warning:disabled {
background-color: #ffbb29; }
a.kuiButton--warning.kuiButton-isDisabled {
background-color: #ffbb29; }
-/**
- * 1. Override Bootstrap.
- * 2. Override either Bootstrap or Timeline styles.
- */
.kuiButton--hollow {
color: #006BB4 !important;
- /* 2 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiButton--hollow:enabled:hover {
color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #004d81 !important;
+ text-decoration: underline; }
.kuiButton--hollow:enabled:active {
color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ text-decoration: underline; }
a.kuiButton--hollow:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- text-decoration: underline; }
+ color: #004d81 !important;
+ text-decoration: underline; }
.kuiButton--secondary {
color: #006BB4 !important;
- /* 2 */
- border: solid 1px #006BB4; }
+ border: solid 1px #006BB4; }
.kuiButton--secondary:enabled:hover {
color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):hover {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ color: #004d81 !important;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
.kuiButton--secondary:enabled:active {
color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
a.kuiButton--secondary:not(.kuiButton-isDisabled):active {
- /* 1 */
- color: #004d81 !important;
- /* 1 */
- border: solid 1px #004d81;
+ color: #004d81 !important;
+ border: solid 1px #004d81;
background-color: rgba(0, 107, 180, 0.1);
text-decoration: underline; }
@@ -900,66 +286,42 @@ main {
display: inline-block; }
.kuiCollapseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #343741 !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35; }
.kuiCollapseButton:hover {
opacity: 1; }
-/**
- * 1. Set inline-block so this wrapper shrinks to fit the input.
- */
.kuiAssistedInput {
display: inline-block;
- /* 1 */
- position: relative; }
+ position: relative; }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiAssistedInput__assistance {
position: absolute;
right: 12px;
top: 50%;
- /* 1 */
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
-
-/**
- * 1. Deliberately disable only webkit appearance. If we disable it in Firefox, we get a really
- * ugly default appearance which we can't customize, so our best option is to give Firefox
- * control over the checkbox's appearance.
- * 2. Override default styles (possibly from Bootstrap).
- */
+ transform: translateY(-50%);
+ }
+
.kuiCheckBox {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- background-color: #fbfcfd;
+ appearance: none;
+ background-color: #fbfcfd;
border: 1px solid rgba(15, 39, 118, 0.1);
border-radius: 4px;
width: 16px;
height: 16px;
- font: "var(--font-text)" !important;
- /* 2 */
- line-height: 1.5 !important;
- /* 2 */
- margin: 0 !important;
- /* 2 */
- font-family: "var(--font-text)" !important;
- /* 2 */
- font-size: 10px !important;
- /* 2 */
- transition: background-color 0.1s linear; }
+ font: var(--font-text) !important;
+ line-height: 1.5 !important;
+ margin: 0 !important;
+ font-family: var(--font-text) !important;
+ font-size: 10px !important;
+ transition: background-color 0.1s linear; }
.kuiCheckBox::before {
position: relative;
left: 0.25em;
@@ -976,11 +338,9 @@ main {
opacity: 1; }
.kuiCheckBox:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
+ }
.kuiCheckBox:disabled {
background-color: #eef2f7 !important;
border-color: #eef2f7 !important;
@@ -996,15 +356,12 @@ main {
font-size: 16px;
margin-left: 8px; }
-/**
- * 1. Override Bootstrap.
- */
.kuiLabel {
font-size: 16px;
line-height: 1.5;
font-weight: bold;
margin-bottom: 0;
- /* 1 */ }
+ }
.kuiSearchInput {
width: 180px;
@@ -1022,14 +379,9 @@ main {
font-size: 1em;
color: #98A2B3; }
-/**
- * 1. Make space for search icon.
- * 2. Expand to fill container.
- */
.kuiSearchInput__input {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1040,11 +392,9 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-left: 28px;
- /* 1 */
- width: 100%;
- /* 2 */ }
+ padding-left: 28px;
+ width: 100%;
+ }
.kuiSearchInput__input:invalid {
border-color: #BD271E; }
.kuiSearchInput__input:focus {
@@ -1060,13 +410,9 @@ main {
.kuiSearchInput--large {
width: 400px; }
-/**
- * Avoid setting a width here, so that the width of the options can dynamically set the width.
- */
.kuiSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1077,15 +423,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */ }
+ }
.kuiSelect:invalid {
border-color: #BD271E; }
.kuiSelect:focus {
@@ -1096,7 +439,7 @@ main {
cursor: not-allowed; }
.kuiSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
.kuiSelect.kuiSelect-isInvalid {
border-color: #BD271E; }
.kuiSelect:focus {
@@ -1113,28 +456,22 @@ main {
.kuiSelect--large {
width: 400px; }
-/**
- * 1. Have the same spatial footprint as the regular input.
- */
.kuiStaticInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #343741;
border: 1px solid transparent;
- /* 1 */
- background-color: transparent; }
+ background-color: transparent; }
.kuiTextArea {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1145,7 +482,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextArea:invalid {
border-color: #BD271E; }
.kuiTextArea:focus {
@@ -1172,9 +509,8 @@ main {
.kuiTextInput {
width: 180px;
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1185,7 +521,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */ }
+ }
.kuiTextInput:invalid {
border-color: #BD271E; }
.kuiTextInput:focus {
@@ -1203,13 +539,10 @@ main {
.kuiTextInput--large {
width: 400px; }
-/**
- * 1. We may want to put elements in here which have different heights.
- */
.kuiFieldGroup {
display: flex;
align-items: center;
- /* 1 */ }
+ }
.kuiFieldGroup--alignTop {
align-items: flex-start; }
@@ -1224,23 +557,14 @@ main {
.kuiFieldGroupSection--wide > * {
width: 100%; }
-/**
- * 1. Copied from FontAwesome's .fa class. We use a custom class to make it easier to migrate away
- * from FontAwesome someday. When we do migrate away, we can just update this definition.
- */
.kuiIcon {
display: inline-block;
- /* 1 */
- font: normal normal normal 14px/1 FontAwesome, sans-serif;
- /* 1 */
- font-size: inherit;
- /* 1 */
- text-rendering: auto;
- /* 1 */
- -webkit-font-smoothing: antialiased;
- /* 1 */
- -moz-osx-font-smoothing: grayscale;
- /* 1 */ }
+ font: normal normal normal 14px/1 FontAwesome, sans-serif;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
.kuiIcon--info {
color: #006BB4; }
@@ -1265,41 +589,26 @@ main {
line-height: 1.5;
border: 2px solid; }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--info {
border-color: rgba(0, 107, 180, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--success {
border-color: rgba(1, 125, 115, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--warning {
border-color: rgba(245, 167, 0, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. TODO: Pick a hex value instead of making these colors translucent.
- */
.kuiInfoPanel--error {
border-color: rgba(189, 39, 30, 0.25);
- /* 1 */ }
+ }
-/**
- * 1. Align with first line of title text if it wraps.
- */
.kuiInfoPanelHeader {
display: flex;
align-items: baseline;
- /* 1 */ }
+ }
.kuiInfoPanelHeader__icon {
margin-right: 10px;
@@ -1324,34 +633,23 @@ main {
color: #006BB4;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */ }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ }
.kuiLink:visited, .kuiLink:active {
color: #006BB4; }
.kuiLink:hover {
color: #004d81;
text-decoration: underline; }
-/**
- * 1. Breadcrumbs are placed in the top-left corner and need to be bumped over
- * a bit.
- */
.kuiLocalBreadcrumbs {
display: flex;
align-items: center;
padding: 12px 8px;
- /* 1 */
- border-bottom: 1px solid #D3DAE6;
+ border-bottom: 1px solid #D3DAE6;
flex-grow: 1;
flex-basis: 100%;
background-color: #FFF; }
@@ -1364,33 +662,21 @@ main {
margin-left: 6px; }
.kuiLocalBreadcrumb + .kuiLocalBreadcrumb::before {
content: "/";
- -webkit-user-select: none;
- user-select: none;
+ user-select: none;
margin-right: 4px;
color: #D3DAE6; }
-/**
- * 1. Make it a bit darker to contrast with the gray background.
- */
.kuiLocalBreadcrumb__link {
color: #006BB4;
text-decoration: none;
cursor: pointer;
- /* 1 */
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: none;
- /* 2 */
- font-size: inherit;
- /* 2 */
- line-height: inherit;
- /* 2 */
- color: #006BB4;
- /* 1 */
- font-size: 16px; }
+ appearance: none;
+ background-color: transparent;
+ border: none;
+ font-size: inherit;
+ line-height: inherit;
+ color: #006BB4;
+ font-size: 16px; }
.kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active {
color: #006BB4; }
.kuiLocalBreadcrumb__link:hover {
@@ -1415,12 +701,8 @@ main {
justify-content: space-between;
margin-bottom: 4px; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerNavigationButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
border: none;
font-size: 14px;
@@ -1433,13 +715,10 @@ main {
background-color: #006BB4; }
.kuiDatePickerNavigationButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
- /* 3 */
- color: #343741;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
+ color: #343741;
+ }
.kuiDatePickerHeaderCell {
padding: 9px 0;
@@ -1452,22 +731,14 @@ main {
.kuiDatePickerRowCell {
padding: 0;
text-align: center;
- /**
- * This state class exists to support weird angular-bootstrap datepicker functionality,
- * in which you can't select a day on the "From" calendar if it falls after the selected day in
- * the "To" calendar (and vice versa, you can't select a "To" day if it is before the "From" day).
- */ }
+ }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked {
cursor: not-allowed; }
.kuiDatePickerRowCell.kuiDatePickerRowCell-isBlocked .kuiDatePickerRowCellContent {
pointer-events: none; }
-/**
- * 1. Override inherited styles.
- */
.kuiDatePickerRowCellContent {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
width: 100%;
border: 1px solid transparent;
@@ -1478,13 +749,10 @@ main {
line-height: 1.2; }
.kuiDatePickerRowCellContent:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
- /* 3 */
- color: #343741;
- /* 1 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
+ color: #343741;
+ }
.kuiDatePickerRowCellContent:disabled {
pointer-events: none;
opacity: 0.5; }
@@ -1509,16 +777,14 @@ main {
line-height: 20px; }
.kuiLocalDropdownCloseButton {
- -webkit-appearance: none;
- appearance: none;
+ appearance: none;
background-color: transparent;
padding: 4px;
border: none;
line-height: 1;
font-size: 16px;
color: #343741 !important;
- /* 1 */
- cursor: pointer;
+ cursor: pointer;
opacity: 0.35;
position: absolute;
top: 1px;
@@ -1538,13 +804,9 @@ main {
.kuiLocalDropdownPanel--right {
margin-left: 30px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownTitle {
margin-top: 0;
- /* 1 */
- margin-bottom: 12px;
+ margin-bottom: 12px;
font-size: 18px;
color: #343741; }
@@ -1559,15 +821,11 @@ main {
justify-content: space-between;
margin-bottom: 6px; }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalDropdownHeader__label {
font-size: 14px;
font-weight: 700;
margin-bottom: 0;
- /* 1 */
- color: #343741; }
+ color: #343741; }
.kuiLocalDropdownHeader__actions {
display: flex; }
@@ -1649,24 +907,16 @@ main {
margin-right: 5px;
margin-bottom: -1px; }
-/**
- * 1. Match height of logo in side bar, but allow it to expand to accommodate
- * dropdown.
- */
.kuiLocalNav {
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 69px;
- /* 1 */
- color: #343741;
+ color: #343741;
background-color: #FFF;
line-height: 1.5;
border-bottom: solid 1px #D3DAE6; }
-/**
- * 1. Allow row to expand if the content is so long that it wraps.
- */
.kuiLocalNavRow {
display: flex;
align-items: stretch;
@@ -1676,18 +926,10 @@ main {
display: flex;
align-items: stretch; }
-/**
- * 1. We make this row flex-start because it usually contains a search input, which may expand
- * beyond the height of this container. We can't use `align-items: center`, because this would
- * cause the search input to overflow both on the top and bottom; `align-items: flex-start`
- * makes it only overflow on the bottom. But this means we need to manually center the content
- * of this container using padding.
- */
.kuiLocalNavRow--secondary {
padding: 0 8px;
- /* 1 */
- align-items: flex-start;
- /* 1 */ }
+ align-items: flex-start;
+ }
.kuiLocalSearch {
display: flex;
@@ -1695,9 +937,8 @@ main {
margin-bottom: 8px; }
.kuiLocalSearchInput {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1708,8 +949,7 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- flex: 1 1 100%;
+ flex: 1 1 100%;
border-color: #FFF;
border-color: #D3DAE6;
border-radius: 4px 0 0 4px; }
@@ -1732,33 +972,22 @@ main {
border-radius: 0;
border-left-width: 0; }
-/**
- * 1. em used for right padding so documentation link and query string
- * won't overlap if the user increases their default browser font size
- * This is sized for the 'Options' link
- */
.kuiLocalSearchInput,
.kuiLocalSearchAssistedInput__input {
padding-right: 6em;
- /* 1 */ }
+ }
-/**
- * 1. Vertically center the assistance, regardless of its height.
- */
.kuiLocalSearchAssistedInput__assistance {
position: absolute;
right: 6px;
top: 50%;
- /* 1 */
- z-index: 2;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
- /* 1 */ }
+ z-index: 2;
+ transform: translateY(-50%);
+ }
.kuiLocalSearchSelect {
- -webkit-appearance: none;
- appearance: none;
- font-family: "var(--font-text)";
+ appearance: none;
+ font-family: var(--font-text);
padding: 4px 12px 4px;
font-size: 16px;
font-weight: 400;
@@ -1769,16 +998,12 @@ main {
border-radius: 4px;
transition: border-color 0.1s linear;
min-height: 32px;
- /* 1 */
- padding-right: 30px;
- /* 2 */
- background-image: url('data:image/svg+xml;utf8,');
- /* 1 */
- background-size: 14px;
+ padding-right: 30px;
+ background-image: url('data:image/svg+xml;utf8,');
+ background-size: 14px;
background-repeat: no-repeat;
background-position: calc(100% - 8px);
- /* 2 */
- border-left-width: 0;
+ border-left-width: 0;
border-radius: 0; }
.kuiLocalSearchSelect:invalid {
border-color: #BD271E; }
@@ -1790,40 +1015,28 @@ main {
cursor: not-allowed; }
.kuiLocalSearchSelect:-moz-focusring {
text-shadow: 0 0 0;
- /* 3 */ }
+ }
-/**
- * 1. Override inherited styles.
- */
.kuiLocalSearchButton {
width: 43px;
height: 32px;
font-size: 16px;
line-height: 0;
- /* 1 */
- color: #FFF;
+ color: #FFF;
background-color: #006BB4;
border: 0;
border-radius: 0 4px 4px 0; }
.kuiLocalSearchButton:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
-/**
- * 1. We want the bottom border on selected tabs to be flush with the bottom of the container.
- */
.kuiLocalTabs {
display: flex;
align-items: flex-end;
height: 100%; }
-/**
- * 1. Override inherited typographic styles.
- */
.kuiLocalTab {
padding: 5px 0 6px;
font-size: 18px;
@@ -1832,13 +1045,8 @@ main {
text-decoration: none;
cursor: pointer;
margin-top: 0 !important;
- /* 1 */
- margin-bottom: 0 !important;
- /* 1 */
- /**
- * 1. We may want to show a tooltip to explain why the tab is disabled, so we will just show
- * a regular cursor instead of setting pointer-events: none.
- */ }
+ margin-bottom: 0 !important;
+ }
.kuiLocalTab:hover:not(.kuiLocalTab-isDisabled), .kuiLocalTab:active:not(.kuiLocalTab-isDisabled) {
color: #006BB4; }
.kuiLocalTab.kuiLocalTab-isSelected {
@@ -1848,7 +1056,7 @@ main {
.kuiLocalTab.kuiLocalTab-isDisabled {
opacity: 0.5;
cursor: default;
- /* 1 */ }
+ }
.kuiLocalTab + .kuiLocalTab {
margin-left: 15px; }
@@ -1866,22 +1074,19 @@ main {
padding: 0;
display: none; }
-/**
- * 1. Put 10px of space between each child.
- */
.kuiPager {
display: flex;
align-items: center; }
.kuiPager > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPagerText {
font-size: 16px;
line-height: 1.5;
color: #69707D;
white-space: nowrap;
- /* 1 */ }
+ }
.kuiPanel {
box-shadow: 0 2px 2px -1px rgba(152, 162, 179, 0.3), 0 1px 5px -2px rgba(152, 162, 179, 0.3);
@@ -1917,62 +1122,44 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
border-bottom: 1px solid #D3DAE6; }
.kuiPanelHeader .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
a.kuiPanelHeader .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
.kuiPanelHeader .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
a.kuiPanelHeader .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
.kuiPanelHeader .kuiSelect {
border-color: #fbfcfd; }
.kuiPanelHeader .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #006BB4; }
a.kuiPanelHeader .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #006BB4; }
-/**
- * 1. This way we can use h1, h2, etc.
- */
.kuiPanelHeader__title {
font-size: 20px;
line-height: 1.5;
margin: 0;
- /* 1 */ }
+ }
-/**
- * 1. Undo what barSection mixin does.
- */
.kuiPanelHeaderSection {
display: flex;
align-items: center;
@@ -1981,26 +1168,24 @@ main {
margin-right: 25px; }
.kuiPanelHeaderSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiPanelHeaderSection:first-child {
margin-left: 0; }
.kuiPanelHeaderSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiPanelHeaderSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiPanelHeaderSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiPanelHeaderSection:only-child {
margin-left: 0;
- /* 1 */
- margin-right: auto;
- /* 1 */ }
+ margin-right: auto;
+ }
.kuiPanelBody {
padding: 10px; }
@@ -2035,98 +1220,63 @@ main {
.kuiStatusText--error {
color: #BD271E; }
-/**
- * 1. Set the image to be the same size as a font icon at 14px.
- * 2. We need to cap the height too, in case the icon was designed thin and tall.
- */
.kuiStatusText__icon {
margin-right: 6px;
width: 1.15em;
- /* 1 */
- max-height: 1.15em;
- /* 2 */ }
+ max-height: 1.15em;
+ }
-/**
- * 1. Make seamless transition from ToolBar to Table header and contained Menu.
- * 1. Make seamless transition from Table to ToolBarFooter header.
- */
.kuiControlledTable {
background: #FFF; }
.kuiControlledTable .kuiTable {
border-top: none;
- /* 1 */ }
+ }
.kuiControlledTable .kuiToolBarFooter {
border-top: none;
- /* 2 */ }
+ }
.kuiControlledTable .kuiMenu--contained {
border-top: none;
- /* 1 */ }
+ }
-/**
- * 1. Prevent cells from expanding based on content size. This substitutes for table-layout: fixed.
- */
-/**
- * NOTE: table-layout: fixed causes a bug in IE11 and Edge (see #9929). It also prevents us from
- * specifying a column width, e.g. the checkbox column.
- */
.kuiTable {
width: 100%;
border: 1px solid #D3DAE6;
border-collapse: collapse;
background-color: #FFF; }
-/**
- * 1. Allow contents of cells to determine table's width.
- */
.kuiTable--fluid {
width: auto;
- /* 1 */ }
+ }
.kuiTable--fluid .kuiTableHeaderCell,
.kuiTable--fluid .kuiTableRowCell {
max-width: none;
- /* 1 */ }
+ }
.kuiTableHeaderCell {
font-size: 16px;
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- line-height: 1.5;
+ line-height: 1.5;
color: #69707D; }
.kuiTableHeaderCell__liner {
display: inline-block;
padding: 7px 8px 8px; }
-/**
- * 1. Prevent rapid clicking from selecting text.
- * 2. Remove native button element styles.
- * 3. Make buttons look and behave like table header cells.
- */
.kuiTableHeaderCellButton {
- -webkit-user-select: none;
- user-select: none;
- /* 1 */
- cursor: pointer;
+ user-select: none;
+ cursor: pointer;
width: 100%;
- -webkit-appearance: none;
- appearance: none;
- /* 2 */
- background-color: transparent;
- /* 2 */
- border: 0;
- /* 2 */
- padding: 0;
- /* 2 */
- color: inherit;
- /* 3 */
- line-height: inherit;
- /* 3 */
- font-size: inherit;
- /* 3 */
- text-align: inherit;
- /* 3 */ }
+ appearance: none;
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+ color: inherit;
+ line-height: inherit;
+ font-size: inherit;
+ text-align: inherit;
+ }
.kuiTableHeaderCellButton:hover .kuiTableSortIcon {
display: block;
opacity: 1; }
@@ -2156,31 +1306,20 @@ main {
font-weight: 400;
text-align: left;
max-width: 20px;
- /* 1 */
- color: #343741;
+ color: #343741;
border-top: 1px solid #D3DAE6;
vertical-align: middle; }
-/**
- * 1. Vertically align all children.
- * 2. The padding on this div allows the ellipsis to show if the content is truncated. If
- * the padding was on the cell, the ellipsis would be cropped.
- * 3. Truncate content with an ellipsis.
- */
.kuiTableRowCell__liner {
padding: 7px 8px 8px;
- /* 2 */
- line-height: 1.5;
- /* 1 */
- overflow: hidden;
- /* 3 */
- text-overflow: ellipsis;
- /* 3 */
- white-space: nowrap;
- /* 3 */ }
+ line-height: 1.5;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
.kuiTableRowCell__liner > * {
vertical-align: middle;
- /* 1 */ }
+ }
.kuiTableRowCell--wrap .kuiTableRowCell__liner {
white-space: normal; }
@@ -2189,34 +1328,24 @@ main {
overflow: visible;
white-space: normal; }
-/**
- * 1. We don't want to create too strong a disconnect between the original row and the row
- * that contains its expanded details.
- */
.kuiTableRowCell--expanded {
border-top-color: #FFF;
- /* 1 */ }
+ }
.kuiTableRowCell--alignRight {
text-align: right; }
.kuiTableRowCell--alignRight .kuiTableRowCell__liner {
text-align: right; }
-/**
- * 1. Rendered width of cell with checkbox inside of it.
- * 2. Align checkbox with text in other cells.
- * 3. Show the checkbox in Edge; otherwise it gets cropped.
- */
.kuiTableHeaderCell--checkBox,
.kuiTableRowCell--checkBox {
width: 28px;
- /* 1 */
- line-height: 1;
- /* 2 */ }
+ line-height: 1;
+ }
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableRowCell__liner {
overflow: visible;
- /* 3 */ }
+ }
.kuiTableHeaderCell--checkBox .kuiTableHeaderCell__liner,
.kuiTableHeaderCell--checkBox .kuiTableRowCell__liner,
.kuiTableRowCell--checkBox .kuiTableHeaderCell__liner,
@@ -2233,41 +1362,29 @@ main {
display: flex;
border-bottom: 1px solid #D3DAE6; }
-/**
- * 1. Override button styles (some of which are from Bootstrap).
- * 2. Adding a border shifts tabs right by 1px, so we need to shift them back.
- * 3. Move the tab down so that its bottom border covers the container's bottom border.
- * 4. When the tab is focused, its bottom border changes to be 1px, so we need to add 1px more
- * of padding to make sure the text doesn't shift down.
- */
.kuiTab {
- -webkit-appearance: none;
- appearance: none;
- /* 1 */
- cursor: pointer;
+ appearance: none;
+ cursor: pointer;
padding: 10px 30px;
font-size: 16px;
color: #69707D;
background-color: transparent;
- /* 1 */
- border: 1px solid #D3DAE6;
+ border: 1px solid #D3DAE6;
border-radius: 0;
- /* 1 */
- margin-bottom: -1px;
- /* 3 */ }
+ margin-bottom: -1px;
+ }
.kuiTab + .kuiTab {
border-left: none; }
.kuiTab + .kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
margin-left: -1px;
- /* 2 */ }
+ }
.kuiTab:active {
outline: none !important;
- /* 1 */
- box-shadow: none;
- /* 1 */ }
+ box-shadow: none;
+ }
.kuiTab:focus {
outline: none;
- /* 1 */ }
+ }
.kuiTab:focus:not(.kuiTab-isSelected):not(:active) {
z-index: 1;
color: #006BB4;
@@ -2286,49 +1403,37 @@ main {
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 50px;
background-color: transparent;
border: solid 1px #D3DAE6; }
.kuiToolBar .kuiButton:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
a.kuiToolBar .kuiButton:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #006BB4;
+ }
.kuiToolBar .kuiButton--danger:not(a):enabled:focus {
z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
a.kuiToolBar .kuiButton--danger:not(.kuiButton-isDisabled):focus {
- /* 1 */
- z-index: 1;
- /* 1 */
- outline: none !important;
- /* 2 */
- box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
- /* 3 */ }
+ z-index: 1;
+ outline: none !important;
+ box-shadow: 0 0 0 1px #D3DAE6, 0 0 0 2px #BD271E;
+ }
.kuiToolBar .kuiSelect {
border-color: #fbfcfd; }
.kuiToolBar .kuiSelect:not(a):enabled:focus {
outline: none;
border-color: #006BB4; }
a.kuiToolBar .kuiSelect:not(.kuiButton-isDisabled):focus {
- /* 1 */
- outline: none;
+ outline: none;
border-color: #006BB4; }
.kuiToolBarSection {
@@ -2339,36 +1444,31 @@ main {
margin-right: 25px; }
.kuiToolBarSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarSection:first-child {
margin-left: 0; }
.kuiToolBarSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Override Bar styles and put Search on the left side.
- */
.kuiToolBar--searchOnly .kuiToolBarSearch {
margin-left: 0 !important;
- /* 1 */ }
+ }
.kuiToolBarFooter {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 30px;
- /* 1 */
- padding: 10px;
+ padding: 10px;
height: 40px;
background-color: #FFF; }
@@ -2380,27 +1480,21 @@ main {
margin-right: 25px; }
.kuiToolBarFooterSection:not(:first-child):not(:last-child):not(:only-child) {
justify-content: center;
- /* 3 */ }
+ }
.kuiToolBarFooterSection:first-child {
margin-left: 0; }
.kuiToolBarFooterSection:last-child {
margin-right: 0;
flex: 0 1 auto;
- /* 4 */
- justify-content: flex-end;
- /* 5 */ }
+ justify-content: flex-end;
+ }
.kuiToolBarFooterSection:only-child {
margin-left: auto;
- /* 2 */ }
+ }
.kuiToolBarFooterSection > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
-/**
- * 1. Put 10px of space between each child.
- * 2. Fix IE11 bug which causes this item to grow too wide when there is only a single
- * kuiToolBarSection sibling.
- */
.kuiToolBarSearch {
display: flex;
align-items: center;
@@ -2408,15 +1502,14 @@ main {
margin-right: 25px;
flex: 1 1 auto;
max-width: 100%;
- /* 2 */
- line-height: 1.5; }
+ line-height: 1.5; }
.kuiToolBarSearch:first-child {
margin-left: 0; }
.kuiToolBarSearch:last-child {
margin-right: 0; }
.kuiToolBarSearch > * + * {
margin-left: 10px;
- /* 1 */ }
+ }
.kuiToolBarSearchBox {
flex: 1 1 auto;
@@ -2431,85 +1524,55 @@ main {
font-size: 1em;
color: #acacac; }
-/**
- * 1. Fix inherited styles (possibly from Bootstrap).
- */
.kuiToolBarSearchBox__input {
width: 100%;
min-width: 200px;
padding: 4px 12px 5px 28px;
- font-family: "var(--font-text)";
- /* 1 */
- background-color: #FFF;
+ font-family: var(--font-text);
+ background-color: #FFF;
color: #343741;
border-radius: 4px;
font-size: 1em;
border: 1px solid #D3DAE6;
line-height: normal;
- /* 1 */
- transition: border-color 0.1s linear; }
+ transition: border-color 0.1s linear; }
.kuiToolBarSearchBox__input:focus {
outline: none;
border-color: #006BB4; }
-/*
- * 1. We don't want the text to take up two lines and overflow the ToolBar.
- */
.kuiToolBarText {
font-size: 16px;
line-height: 1.5;
color: #69707D;
white-space: nowrap;
- /* 1 */ }
+ }
-/**
- * 1. Override h1.
- */
.kuiTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 24px; }
+ font-weight: 400;
+ font-size: 24px; }
-/**
- * 1. Override h2, h3, etc.
- */
.kuiSubTitle {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- font-size: 20px; }
+ font-weight: 400;
+ font-size: 20px; }
-/**
- * 1. Override p.
- */
.kuiTextTitle {
margin: 0;
- /* 1 */
- font-weight: 700;
- /* 1 */
- line-height: 1.5;
+ font-weight: 700;
+ line-height: 1.5;
font-size: 16px; }
-/**
- * 1. Override p.
- */
.kuiText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 16px; }
.kuiSubText {
margin: 0;
- /* 1 */
- font-weight: 400;
- /* 1 */
- line-height: 1.5;
+ font-weight: 400;
+ line-height: 1.5;
font-size: 14px; }
.kuiSubduedText {
diff --git a/packages/osd-ui-framework/package.json b/packages/osd-ui-framework/package.json
index 1763e5511415..8375cc3b8295 100644
--- a/packages/osd-ui-framework/package.json
+++ b/packages/osd-ui-framework/package.json
@@ -26,6 +26,7 @@
"@elastic/eui": "npm:@opensearch-project/oui@1.3.0-alpha.2",
"@osd/babel-preset": "1.0.0",
"@osd/optimizer": "1.0.0",
+ "comment-stripper": "^0.0.4",
"grunt": "^1.5.2",
"grunt-babel": "^8.0.0",
"grunt-contrib-clean": "^2.0.0",
diff --git a/packages/osd-ui-shared-deps/package.json b/packages/osd-ui-shared-deps/package.json
index 751a54d6d64b..3e73fa0c8575 100644
--- a/packages/osd-ui-shared-deps/package.json
+++ b/packages/osd-ui-shared-deps/package.json
@@ -42,10 +42,12 @@
"@osd/babel-preset": "1.0.0",
"@osd/dev-utils": "1.0.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
+ "comment-stripper": "^0.0.4",
"css-loader": "^5.2.7",
"del": "^6.1.1",
"loader-utils": "^2.0.4",
"node-sass": "npm:@amoo-miki/node-sass@9.0.0-libsass-3.6.5",
+ "sass-loader": "npm:@amoo-miki/sass-loader@10.4.1-node-sass-9.0.0-libsass-3.6.5",
"val-loader": "^2.1.2",
"webpack": "npm:@amoo-miki/webpack@4.46.0-rc.2"
}
diff --git a/packages/osd-ui-shared-deps/webpack.config.js b/packages/osd-ui-shared-deps/webpack.config.js
index 8acc43fb1793..d9bfd81af523 100644
--- a/packages/osd-ui-shared-deps/webpack.config.js
+++ b/packages/osd-ui-shared-deps/webpack.config.js
@@ -76,7 +76,30 @@ exports.getWebpackConfig = ({ dev = false } = {}) => ({
},
{
test: /\.css$/,
- use: [MiniCssExtractPlugin.loader, 'css-loader'],
+ use: [
+ MiniCssExtractPlugin.loader,
+ 'css-loader',
+ {
+ loader: 'comment-stripper',
+ options: {
+ language: 'css',
+ },
+ },
+ ],
+ },
+ {
+ test: /\.scss$/,
+ use: [
+ MiniCssExtractPlugin.loader,
+ 'css-loader',
+ {
+ loader: 'comment-stripper',
+ options: {
+ language: 'css',
+ },
+ },
+ 'sass-loader',
+ ],
},
{
include: [require.resolve('./theme.ts')],
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.10.md b/release-notes/opensearch-dashboards.release-notes-1.3.10.md
new file mode 100644
index 000000000000..a307ac39903a
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.10.md
@@ -0,0 +1,33 @@
+# Version 1.3.10 Release Notes
+
+### 🛡 Security
+
+- [CVE-2020-15366][1.x] Bump ajv from 4.11.8 to 6.12.6 ([#4035](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4035))
+- [CVE-2022-48285][1.x] Bump jszip from 3.7.1 to 3.10.1 ([#4011](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4011))
+- [CVE-2021-35065][1.x] Bump glob-parent from 6.0.0 to 6.0.2 ([#4005](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4005))
+- [CVE-2022-25851][1.x] Bump jpeg-js from 0.4.1 to 0.4.4 ([#3860](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3860))
+- [CVE-2022-25858][1.x] Bump terser from 4.8.0 to 4.8.1 ([#3786](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3786))
+- [CVE-2021-23490][1.x] Bump parse-link-header from 1.0.1 to 2.0.0 ([#3820](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3820))
+- [CVE-2021-3765][1.x] Bump validator from 8.2.0 to 13.9.0 ([#3753](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3753))
+- [CVE-2022-25758][1.x] Bump scss-tokenizer from 0.3.0 to 0.4.3 ([#3789](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3789))
+- [CVE-2021-3803][1.x] Bump nth-check from 1.0.2 to 2.0.1 ([#3745](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3745))
+- Bump highlight.js from 9.18.5 to 10.7.3 to solve security concerns ([#4062](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4062))
+
+### 📈 Features/Enhancements
+
+- Add tooltip to help icon ([#3872](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3872))
+
+### 🐛 Bug Fixes
+
+- [TSVB] Fix the link to "serial differencing aggregation" documentation ([#3503](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3503))
+
+### 📝 Documentation
+
+- Update jest documentation links ([#3939](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3939))
+
+### 🛠 Maintenance
+
+- Add threshold to code coverage changes for project ([#4050](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4050))
+- Temporarily hardcode chromedriver to 112.0.0 to enable all ftr tests ([#4039]())
+- Update MAINTAINERS.md and CODEOWNERS ([#3938](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3938))
+- Add opensearch-dashboards-docker-dev to .gitignore ([#3781](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3781))
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.11.md b/release-notes/opensearch-dashboards.release-notes-1.3.11.md
new file mode 100644
index 000000000000..de618a878084
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.11.md
@@ -0,0 +1,18 @@
+# Version 1.3.11 Release Notes
+
+### 🛡 Security
+
+- [CVE-2022-1537] Bump grunt from `1.5.2` to `1.5.3` ([#4276](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4276))
+- [CVE-2020-15366] Bump ajv from `4.11.8` to `6.12.6` ([#3769](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3769))
+
+### 📈 Features/Enhancements
+
+### 🐛 Bug Fixes
+
+### 🚞 Infrastructure
+
+- Upgrade the backport workflow ([#4343](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4343))
+
+### 📝 Documentation
+
+### 🛠 Maintenance
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.12.md b/release-notes/opensearch-dashboards.release-notes-1.3.12.md
new file mode 100644
index 000000000000..927f6299a800
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.12.md
@@ -0,0 +1,26 @@
+# Version 1.3.12 Release Notes
+
+### 🛡 Security
+
+- [CVE-2021-23382] Bump postcss from `8.2.10` to `8.4.24` ([#4403](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4403))
+- Bump `joi` to v14 to avoid the possibility of prototype poisoning in a nested dependency ([#3952](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3952))
+- [WS-2018-0347] Bump `sass-lint` from `1.12.1` to `1.13.0` to fix `eslint` security issue ([#4338](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4338))
+- [CVE-2022-25883] Resolve `semver` to `7.5.3` and remove unused package ([#4411](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4411), [#4686](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4686))
+- [CVE-2022-1537] Bump grunt from `1.4.1` to `1.5.3` ([#3723](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3723))
+- [CVE-2022-0436] Bump grunt from `1.4.1` to `1.5.3` ([#3723](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3723))
+- [CVE-2023-26136] Resolve `tough-cookie` to `4.1.3` ([#4682](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4682))
+
+### 📈 Features/Enhancements
+
+### 🐛 Bug Fixes
+
+### 🚞 Infrastructure
+
+### 📝 Documentation
+
+### 🛠 Maintenance
+
+- Adding @ZilongX and @Flyingliuhub as maintainers. ([#4137](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4137))
+- Add new MAINTAINERS to CODEOWNERS file. ([#4199](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4199))
+- Adding @BSFishy as maintainer. ([#4469](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4469))
+- [Version] Increment version to 1.3.12 ([#4656](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/4656))
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.2.md b/release-notes/opensearch-dashboards.release-notes-1.3.2.md
new file mode 100644
index 000000000000..84afc683c921
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.2.md
@@ -0,0 +1,18 @@
+## Version 1.3.2 Release Notes
+
+### 🛡 Security
+* [CVE-2022-24785] Bumps moment from 2.29.1 to 2.29.2 ([#1456](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1456))
+* [CVE-2020-8203] [CVE-2021-23337] [CVE-2020-28500] Bumps lodash-es from 4.17.15 to 4.17.21 ([#1343](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1343))
+* [CVE-2022-0436] Bumps grunt from v1.4.1 to v1.5.2 ([#1451](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1451))
+* [CVE-2021-3918] Bumps json-schema from 0.2.3 to 0.4.0 ([#1385](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1385))
+* [CVE-2022-29078] Bumps ejs from 3.1.6 to 3.1.7 ([#1512](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1512))
+* [CVE-2021-44906] Bumps minimist from 1.2.5 to 1.2.6 ([#1377](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1377))
+* [CVE-2021-23566] Bumps nanoid from 3.1.30 to 3.2.0 ([#1173](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1173))
+
+### 🐛 Bug Fixes
+* Updates re2 build for arm under node 10 ([#1482](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1482))
+* fix(actions): Better type checks for icons ([#1496](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1496))
+
+### 🔩 Tests
+* [Tests] Fixes inconsistent plugin installation tests ([#1346](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1346))
+* [Tests] Bumps chromedriver to v100 ([#1410](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1410))
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.3.md b/release-notes/opensearch-dashboards.release-notes-1.3.3.md
new file mode 100644
index 000000000000..0a482a68efba
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.3.md
@@ -0,0 +1,10 @@
+## Version 1.3.3 Release Notes
+
+### 🐛 Bug Fixes
+* [Bug] Fixes missing discover context icon ([#1545](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1545))
+* [Bug] Fixes the header loading spinner position in Firefox ([#1570](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1570))
+* [Bug] Fixes metric vizualization cut off text ([#1650](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1650))
+
+### 🛠 Maintenance
+* Removes irrelevant upsell in the timeout message ([#1599](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1599))
+* Removes duplicate var in opensearch-dashboards-docker ([#1649](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1649))
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.5.md b/release-notes/opensearch-dashboards.release-notes-1.3.5.md
new file mode 100644
index 000000000000..5d86383302da
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.5.md
@@ -0,0 +1,14 @@
+## Version 1.3.5 Release Notes
+
+### 🛡 Security
+* Bump moment from 2.29.2 to 2.29.4 ([#1931](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1931))
+* [CVE] Add resolution for url-parse ([#2181](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2181))
+
+### 🐛 Bug Fixes
+Fix WMS can't load when unable access maps services([#1550](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1550))
+
+### 🔩 Tests
+* Bump chrome driver version in PR check workflow ([#2186](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2186))
+
+### 🛠 Maintenance
+* Version increment to 1.3.5 ([#1901](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1901))
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.6.md b/release-notes/opensearch-dashboards.release-notes-1.3.6.md
new file mode 100644
index 000000000000..e254d36fe2de
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.6.md
@@ -0,0 +1,25 @@
+## Version 1.3.6 Release Notes
+
+### 📈 Features/Enhancements
+
+* Custom healthcheck with filters ([#2232](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2232), [#2277](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2277)). To configure see example in [config/opensearch_dashboards.yml](https://github.com/opensearch-project/OpenSearch-Dashboards/blob/6e2ec97459ae179c86201c611ce744c2c24ce150/config/opensearch_dashboards.yml#L44-L46)
+### 🛡 Security
+
+* [CVE-2021-3807] Resolves ansi-regex to v5.0.1 ([#2425](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2425))
+* [CVE-2022-23713] Handle invalid query, index and date in vega charts filter handlers ([#1932](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/1932))
+* Use a forced CSP-compliant interpreter with Vega visualizations ([#2352](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2352))
+* Bump moment-timezone from 0.5.34 to 0.5.37 ([#2361](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2361))
+* [CVE-2022-0144] Bump shelljs from 0.8.4 to 0.8.5 ([#2511](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2511))
+
+### 🚞 Infrastructure
+
+* Add CHANGELOG.md and related workflows ([#2414](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2414))
+* Extends plugin-helpers to be used for automating version changes ([#2398](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2398),[#2486](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2486))
+
+### 🛠 Maintenance
+
+* Version Increment to 1.3.6 ([#2420](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2420))
+
+### 🔩 Tests
+
+* Update caniuse to fix failed integration tests ([#2322](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2322))
\ No newline at end of file
diff --git a/release-notes/opensearch-dashboards.release-notes-1.3.9.md b/release-notes/opensearch-dashboards.release-notes-1.3.9.md
new file mode 100644
index 000000000000..6220b1da2fc7
--- /dev/null
+++ b/release-notes/opensearch-dashboards.release-notes-1.3.9.md
@@ -0,0 +1,31 @@
+# Version 1.3.9 Release Notes
+
+### 🛡 Security
+
+- [CVE-2022-2499] Resolve qs from 6.5.2 and 6.7.0 to 6.11.0 in 1.x ([#3451](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3451))
+- [CVE-2020-36632] [REQUIRES PLUGIN VALIDATION] Bump flat from 4.1.1 to 5.0.2 ([#3539](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3539)). To the best of our knowledge, this is a non-breaking change, but if your plugin relies on `mocha` tests, validate that they still work correctly (and plan to migrate them to `jest` [in preparation for `mocha` deprecation](https://github.com/opensearch-project/OpenSearch-Dashboards/issues/1572).
+- [CVE-2023-25653] Bump node-jose to 2.2.0 ([#3445](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3445))
+- [CVE-2021-23807] Bump jsonpointer from 4.1.0 to 5.0.1 ([#3535](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3535))
+- [CVE-2021-23424] Bump ansi-html from 0.0.7 to 0.0.8 ([#3536](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3536))
+- [CVE-2022-24999] Bump express from 4.17.1 to 4.18.2 ([#3542](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3542))
+
+### 📈 Features/Enhancements
+
+- [I18n] Register ru, ru-RU locale ([#2817](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2817))
+
+### 🐛 Bug Fixes
+
+- [TSVB] Fix the link to "serial differencing aggregation" documentation ([#3503](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3503))
+
+### 📝 Documentation
+
+- [TSVB] Fix a spelling error in the README file ([#3518](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3518))
+- Simplify the in-code instructions for upgrading `re2` ([#3328](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3328))
+- [Doc] Improve DEVELOPER_GUIDE to make first time setup quicker and easier ([#3421](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3421))
+
+### 🛠 Maintenance
+
+- Update MAINTAINERS.md formatting and maintainer list ([#3338](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3338))
+- Remove `github-checks-reporter`, an unused dependency ([#3126](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3126))
+- [Version] Increment to 1.3.9 ([#3375](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3375))
+- Remove the unused `renovate.json5` file ([3489](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3489))
\ No newline at end of file
diff --git a/scripts/bwc/opensearch_service.sh b/scripts/bwc/opensearch_service.sh
index ecd95990de7e..09f3b5d50c8c 100755
--- a/scripts/bwc/opensearch_service.sh
+++ b/scripts/bwc/opensearch_service.sh
@@ -24,7 +24,12 @@ function setup_opensearch() {
function run_opensearch() {
echo "[ Attempting to start OpenSearch... ]"
cd "$OPENSEARCH_DIR"
- spawn_process_and_save_PID "./opensearch-tar-install.sh > ${LOGS_DIR}/opensearch.log 2>&1 &"
+ # Check if opensearch-tar-install.sh exists
+ if [ -f "./opensearch-tar-install.sh" ]; then
+ spawn_process_and_save_PID "./opensearch-tar-install.sh > ${LOGS_DIR}/opensearch.log 2>&1 &"
+ else
+ spawn_process_and_save_PID "./bin/opensearch > ${LOGS_DIR}/opensearch.log 2>&1 &"
+ fi
}
# Checks the running status of OpenSearch
diff --git a/src/core/server/legacy/legacy_service.ts b/src/core/server/legacy/legacy_service.ts
index a48ff12e859a..165a67aa1f83 100644
--- a/src/core/server/legacy/legacy_service.ts
+++ b/src/core/server/legacy/legacy_service.ts
@@ -276,6 +276,9 @@ export class LegacyService implements CoreService {
registerType: setupDeps.core.savedObjects.registerType,
getImportExportObjectLimit: setupDeps.core.savedObjects.getImportExportObjectLimit,
setRepositoryFactoryProvider: setupDeps.core.savedObjects.setRepositoryFactoryProvider,
+ setStatus: () => {
+ throw new Error(`core.savedObjects.setStatus is unsupported in legacy`);
+ },
},
status: {
isStatusPageAnonymous: setupDeps.core.status.isStatusPageAnonymous,
diff --git a/src/core/server/plugins/plugin_context.ts b/src/core/server/plugins/plugin_context.ts
index 7782fd93041e..ab028e169a71 100644
--- a/src/core/server/plugins/plugin_context.ts
+++ b/src/core/server/plugins/plugin_context.ts
@@ -205,6 +205,7 @@ export function createPluginSetupContext(
registerType: deps.savedObjects.registerType,
getImportExportObjectLimit: deps.savedObjects.getImportExportObjectLimit,
setRepositoryFactoryProvider: deps.savedObjects.setRepositoryFactoryProvider,
+ setStatus: deps.savedObjects.setStatus,
},
status: {
core$: deps.status.core$,
diff --git a/src/core/server/saved_objects/saved_objects_service.mock.ts b/src/core/server/saved_objects/saved_objects_service.mock.ts
index 74168c436c3d..257b5048fc4a 100644
--- a/src/core/server/saved_objects/saved_objects_service.mock.ts
+++ b/src/core/server/saved_objects/saved_objects_service.mock.ts
@@ -80,6 +80,7 @@ const createSetupContractMock = () => {
registerType: jest.fn(),
getImportExportObjectLimit: jest.fn(),
setRepositoryFactoryProvider: jest.fn(),
+ setStatus: jest.fn(),
};
setupContract.getImportExportObjectLimit.mockReturnValue(100);
diff --git a/src/core/server/saved_objects/saved_objects_service.test.ts b/src/core/server/saved_objects/saved_objects_service.test.ts
index 98d1da393319..75b0d756f0cf 100644
--- a/src/core/server/saved_objects/saved_objects_service.test.ts
+++ b/src/core/server/saved_objects/saved_objects_service.test.ts
@@ -34,7 +34,8 @@ import {
clientProviderInstanceMock,
typeRegistryInstanceMock,
} from './saved_objects_service.test.mocks';
-import { BehaviorSubject } from 'rxjs';
+import { BehaviorSubject, of } from 'rxjs';
+import { first } from 'rxjs/operators';
import { ByteSizeValue } from '@osd/config-schema';
import { errors as opensearchErrors } from '@opensearch-project/opensearch';
@@ -50,6 +51,7 @@ import { SavedObjectsClientFactoryProvider } from './service/lib';
import { NodesVersionCompatibility } from '../opensearch/version_check/ensure_opensearch_version';
import { SavedObjectsRepository } from './service/lib/repository';
import { SavedObjectRepositoryFactoryProvider } from './service/lib/scoped_client_provider';
+import { ServiceStatusLevels } from '../status';
jest.mock('./service/lib/repository');
@@ -191,6 +193,31 @@ describe('SavedObjectsService', () => {
);
});
});
+
+ describe('#setStatus', () => {
+ it('throws error if custom status is already set', async () => {
+ const coreContext = createCoreContext();
+ const soService = new SavedObjectsService(coreContext);
+ const setup = await soService.setup(createSetupDeps());
+
+ const customStatus1$ = of({
+ level: ServiceStatusLevels.available,
+ summary: 'Saved Object Service is using external storage and it is up',
+ });
+ const customStatus2$ = of({
+ level: ServiceStatusLevels.unavailable,
+ summary: 'Saved Object Service is not connected to external storage and it is down',
+ });
+
+ setup.setStatus(customStatus1$);
+
+ expect(() => {
+ setup.setStatus(customStatus2$);
+ }).toThrowErrorMatchingInlineSnapshot(
+ `"custom saved object service status is already set, and can only be set once"`
+ );
+ });
+ });
});
describe('#start()', () => {
@@ -312,6 +339,15 @@ describe('SavedObjectsService', () => {
}).toThrowErrorMatchingInlineSnapshot(
'"cannot call `setRepositoryFactoryProvider` after service startup."'
);
+
+ const customStatus$ = of({
+ level: ServiceStatusLevels.available,
+ summary: 'Saved Object Service is using external storage and it is up',
+ });
+
+ expect(() => {
+ setup.setStatus(customStatus$);
+ }).toThrowErrorMatchingInlineSnapshot('"cannot call `setStatus` after service startup."');
});
describe('#getTypeRegistry', () => {
@@ -430,5 +466,39 @@ describe('SavedObjectsService', () => {
expect(SavedObjectsRepository.createRepository as jest.Mocked).toHaveBeenCalled();
});
});
+
+ describe('#savedObjectServiceStatus', () => {
+ it('Saved objects service status should be custom when set using setStatus', async () => {
+ const coreContext = createCoreContext({});
+ const soService = new SavedObjectsService(coreContext);
+ const coreSetup = createSetupDeps();
+ const setup = await soService.setup(coreSetup);
+
+ const customStatus$ = of({
+ level: ServiceStatusLevels.available,
+ summary: 'Saved Object Service is using external storage and it is up',
+ });
+ setup.setStatus(customStatus$);
+ const coreStart = createStartDeps();
+ await soService.start(coreStart);
+ expect(await setup.status$.pipe(first()).toPromise()).toMatchObject({
+ level: ServiceStatusLevels.available,
+ summary: 'Saved Object Service is using external storage and it is up',
+ });
+ });
+
+ it('Saved objects service should be default when custom status is not set', async () => {
+ const coreContext = createCoreContext({});
+ const soService = new SavedObjectsService(coreContext);
+ const coreSetup = createSetupDeps();
+ const setup = await soService.setup(coreSetup);
+ const coreStart = createStartDeps();
+ await soService.start(coreStart);
+ expect(await setup.status$.pipe(first()).toPromise()).toMatchObject({
+ level: ServiceStatusLevels.available,
+ summary: 'SavedObjects service has completed migrations and is available',
+ });
+ });
+ });
});
});
diff --git a/src/core/server/saved_objects/saved_objects_service.ts b/src/core/server/saved_objects/saved_objects_service.ts
index b6fc21617bcc..43296f340d85 100644
--- a/src/core/server/saved_objects/saved_objects_service.ts
+++ b/src/core/server/saved_objects/saved_objects_service.ts
@@ -28,8 +28,10 @@
* under the License.
*/
-import { Subject, Observable } from 'rxjs';
-import { first, filter, take, switchMap } from 'rxjs/operators';
+import { Subject, Observable, BehaviorSubject } from 'rxjs';
+import { first, filter, take, switchMap, map, distinctUntilChanged } from 'rxjs/operators';
+import { isDeepStrictEqual } from 'util';
+
import { CoreService } from '../../types';
import {
SavedObjectsClient,
@@ -62,7 +64,7 @@ import { Logger } from '../logging';
import { SavedObjectTypeRegistry, ISavedObjectTypeRegistry } from './saved_objects_type_registry';
import { SavedObjectsSerializer } from './serialization';
import { registerRoutes } from './routes';
-import { ServiceStatus } from '../status';
+import { ServiceStatus, ServiceStatusLevels } from '../status';
import { calculateStatus$ } from './status';
import { createMigrationOpenSearchClient } from './migrations/core/';
/**
@@ -175,6 +177,12 @@ export interface SavedObjectsServiceSetup {
setRepositoryFactoryProvider: (
respositoryFactoryProvider: SavedObjectRepositoryFactoryProvider
) => void;
+
+ /**
+ * Allows a plugin to specify a custom status dependent on its own criteria.
+ * Completely overrides the default status.
+ */
+ setStatus(status$: Observable>): void;
}
/**
@@ -301,6 +309,11 @@ export class SavedObjectsService
private started = false;
private respositoryFactoryProvider?: SavedObjectRepositoryFactoryProvider;
+ private savedObjectServiceCustomStatus$?: Observable>;
+ private savedObjectServiceStatus$ = new BehaviorSubject>({
+ level: ServiceStatusLevels.unavailable,
+ summary: `waiting`,
+ });
constructor(private readonly coreContext: CoreContext) {
this.logger = coreContext.logger.get('savedobjects-service');
@@ -329,10 +342,7 @@ export class SavedObjectsService
});
return {
- status$: calculateStatus$(
- this.migrator$.pipe(switchMap((migrator) => migrator.getStatus$())),
- setupDeps.opensearch.status$
- ),
+ status$: this.savedObjectServiceStatus$.asObservable(),
setClientFactoryProvider: (provider) => {
if (this.started) {
throw new Error('cannot call `setClientFactoryProvider` after service startup.');
@@ -368,6 +378,17 @@ export class SavedObjectsService
}
this.respositoryFactoryProvider = repositoryProvider;
},
+ setStatus: (status$) => {
+ if (this.started) {
+ throw new Error('cannot call `setStatus` after service startup.');
+ }
+ if (this.savedObjectServiceCustomStatus$) {
+ throw new Error(
+ 'custom saved object service status is already set, and can only be set once'
+ );
+ }
+ this.savedObjectServiceCustomStatus$ = status$;
+ },
};
}
@@ -381,6 +402,29 @@ export class SavedObjectsService
this.logger.debug('Starting SavedObjects service');
+ if (this.savedObjectServiceCustomStatus$) {
+ this.savedObjectServiceCustomStatus$
+ .pipe(
+ map((savedObjectServiceCustomStatus) => {
+ return savedObjectServiceCustomStatus;
+ }),
+ distinctUntilChanged>(isDeepStrictEqual)
+ )
+ .subscribe((value) => this.savedObjectServiceStatus$.next(value));
+ } else {
+ calculateStatus$(
+ this.migrator$.pipe(switchMap((migrator) => migrator.getStatus$())),
+ this.setupDeps.opensearch.status$
+ )
+ .pipe(
+ map((defaultstatus) => {
+ return defaultstatus;
+ }),
+ distinctUntilChanged>(isDeepStrictEqual)
+ )
+ .subscribe((value) => this.savedObjectServiceStatus$.next(value));
+ }
+
const opensearchDashboardsConfig = await this.coreContext.configService
.atPath('opensearchDashboards')
.pipe(first())
@@ -492,7 +536,9 @@ export class SavedObjectsService
};
}
- public async stop() {}
+ public async stop() {
+ this.savedObjectServiceStatus$.unsubscribe();
+ }
private createMigrator(
opensearchDashboardsConfig: OpenSearchDashboardsConfigType,
diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx
index 58523582a501..c13688c73515 100644
--- a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx
+++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx
@@ -33,21 +33,22 @@ import {
IContainer,
ReferenceOrValueEmbeddable,
EmbeddableInput,
-} from '../../embeddable_plugin';
-import { DashboardContainer } from '../embeddable';
-import { getSampleDashboardInput } from '../test_helpers';
+ ErrorEmbeddable,
+ ViewMode,
+} from '../../../../embeddable/public';
+import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddable,
ContactCardEmbeddableInput,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
+} from '../../../../embeddable/public/lib/test_samples';
+import { DashboardContainer } from '../embeddable';
+import { getSampleDashboardInput } from '../test_helpers';
import { coreMock } from '../../../../../core/public/mocks';
import { CoreStart } from 'opensearch-dashboards/public';
import { AddToLibraryAction } from '.';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
-import { ErrorEmbeddable, ViewMode } from '../../../../embeddable/public';
const { setup, doStart } = embeddablePluginMock.createInstance();
setup.registerEmbeddableFactory(
diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx
index 1418cc65dc53..f687786cfe4e 100644
--- a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx
+++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx
@@ -32,13 +32,15 @@ import { i18n } from '@osd/i18n';
import _ from 'lodash';
import uuid from 'uuid';
import { EuiIconType } from '@elastic/eui/src/components/icon/icon';
-import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin';
-import { ViewMode, PanelState, IEmbeddable } from '../../embeddable_plugin';
+import { ActionByType, IncompatibleActionError } from '../../../../ui_actions/public';
import {
PanelNotFoundError,
EmbeddableInput,
isReferenceOrValueEmbeddable,
isErrorEmbeddable,
+ ViewMode,
+ PanelState,
+ IEmbeddable,
} from '../../../../embeddable/public';
import { DashboardPanelState, DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '..';
diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx
index 6675d478eec5..bf2fb17e7df3 100644
--- a/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx
+++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx
@@ -28,20 +28,20 @@
* under the License.
*/
-import { isErrorEmbeddable, IContainer, ErrorEmbeddable } from '../../embeddable_plugin';
-import { DashboardContainer, DashboardPanelState } from '../embeddable';
-import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
+import { isErrorEmbeddable, IContainer, ErrorEmbeddable } from '../../../../embeddable/public';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddable,
ContactCardEmbeddableInput,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
+} from '../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
+import { DashboardContainer, DashboardPanelState } from '../embeddable';
+import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
import { coreMock } from '../../../../../core/public/mocks';
import { CoreStart } from 'opensearch-dashboards/public';
import { ClonePanelAction } from '.';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
const { setup, doStart } = embeddablePluginMock.createInstance();
setup.registerEmbeddableFactory(
diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx
index 97b3792fcba7..8ef1e5a0cb2a 100644
--- a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx
+++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx
@@ -33,14 +33,16 @@ import { CoreStart } from 'src/core/public';
import uuid from 'uuid';
import _ from 'lodash';
import { EuiIconType } from '@elastic/eui/src/components/icon/icon';
-import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin';
-import { ViewMode, PanelState, IEmbeddable } from '../../embeddable_plugin';
+import { ActionByType, IncompatibleActionError } from '../../../../ui_actions/public';
import { SavedObject } from '../../../../saved_objects/public';
import {
PanelNotFoundError,
EmbeddableInput,
SavedObjectEmbeddableInput,
isErrorEmbeddable,
+ ViewMode,
+ PanelState,
+ IEmbeddable,
} from '../../../../embeddable/public';
import {
placePanelBeside,
diff --git a/src/plugins/dashboard/public/application/actions/expand_panel_action.test.tsx b/src/plugins/dashboard/public/application/actions/expand_panel_action.test.tsx
index 73c57496c79f..5298dca2b97d 100644
--- a/src/plugins/dashboard/public/application/actions/expand_panel_action.test.tsx
+++ b/src/plugins/dashboard/public/application/actions/expand_panel_action.test.tsx
@@ -28,18 +28,18 @@
* under the License.
*/
-import { isErrorEmbeddable } from '../../embeddable_plugin';
-import { ExpandPanelAction } from './expand_panel_action';
-import { DashboardContainer } from '../embeddable';
-import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
+import { isErrorEmbeddable } from '../../../../embeddable/public';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddable,
ContactCardEmbeddableInput,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
+} from '../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
+import { ExpandPanelAction } from './expand_panel_action';
+import { DashboardContainer } from '../embeddable';
+import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
const { setup, doStart } = embeddablePluginMock.createInstance();
diff --git a/src/plugins/dashboard/public/application/actions/expand_panel_action.tsx b/src/plugins/dashboard/public/application/actions/expand_panel_action.tsx
index 63a69e21b488..4cbdb471844f 100644
--- a/src/plugins/dashboard/public/application/actions/expand_panel_action.tsx
+++ b/src/plugins/dashboard/public/application/actions/expand_panel_action.tsx
@@ -30,8 +30,8 @@
import { EuiIconType } from '@elastic/eui/src/components/icon/icon';
import { i18n } from '@osd/i18n';
-import { IEmbeddable } from '../../embeddable_plugin';
-import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin';
+import { IEmbeddable } from '../../../../embeddable/public';
+import { ActionByType, IncompatibleActionError } from '../../../../ui_actions/public';
import { DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '../embeddable';
export const ACTION_EXPAND_PANEL = 'togglePanel';
diff --git a/src/plugins/dashboard/public/application/actions/library_notification_action.test.tsx b/src/plugins/dashboard/public/application/actions/library_notification_action.test.tsx
index d9a45871e798..e9bb6c0c3ce2 100644
--- a/src/plugins/dashboard/public/application/actions/library_notification_action.test.tsx
+++ b/src/plugins/dashboard/public/application/actions/library_notification_action.test.tsx
@@ -28,21 +28,26 @@
* under the License.
*/
-import { isErrorEmbeddable, ReferenceOrValueEmbeddable } from '../../embeddable_plugin';
-import { DashboardContainer } from '../embeddable';
-import { getSampleDashboardInput } from '../test_helpers';
+import {
+ isErrorEmbeddable,
+ ReferenceOrValueEmbeddable,
+ ErrorEmbeddable,
+ IContainer,
+ ViewMode,
+} from '../../../../embeddable/public';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddable,
ContactCardEmbeddableInput,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
+} from '../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
+import { DashboardContainer } from '../embeddable';
+import { getSampleDashboardInput } from '../test_helpers';
import { coreMock } from '../../../../../core/public/mocks';
import { CoreStart } from 'opensearch-dashboards/public';
import { LibraryNotificationAction } from '.';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
-import { ErrorEmbeddable, IContainer, ViewMode } from '../../../../embeddable/public';
const { setup, doStart } = embeddablePluginMock.createInstance();
setup.registerEmbeddableFactory(
diff --git a/src/plugins/dashboard/public/application/actions/library_notification_action.tsx b/src/plugins/dashboard/public/application/actions/library_notification_action.tsx
index 0522d2a33740..2dc37a7526eb 100644
--- a/src/plugins/dashboard/public/application/actions/library_notification_action.tsx
+++ b/src/plugins/dashboard/public/application/actions/library_notification_action.tsx
@@ -37,8 +37,8 @@ import {
ViewMode,
isReferenceOrValueEmbeddable,
isErrorEmbeddable,
-} from '../../embeddable_plugin';
-import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin';
+} from '../../../../embeddable/public';
+import { ActionByType, IncompatibleActionError } from '../../../../ui_actions/public';
import { reactToUiComponent } from '../../../../opensearch_dashboards_react/public';
export const ACTION_LIBRARY_NOTIFICATION = 'ACTION_LIBRARY_NOTIFICATION';
diff --git a/src/plugins/dashboard/public/application/actions/open_replace_panel_flyout.tsx b/src/plugins/dashboard/public/application/actions/open_replace_panel_flyout.tsx
index 66f5dc214719..d10f92ce7d5d 100644
--- a/src/plugins/dashboard/public/application/actions/open_replace_panel_flyout.tsx
+++ b/src/plugins/dashboard/public/application/actions/open_replace_panel_flyout.tsx
@@ -38,7 +38,7 @@ import {
EmbeddableOutput,
EmbeddableStart,
IContainer,
-} from '../../embeddable_plugin';
+} from '../../../../embeddable/public';
export async function openReplacePanelFlyout(options: {
embeddable: IContainer;
diff --git a/src/plugins/dashboard/public/application/actions/replace_panel_action.test.tsx b/src/plugins/dashboard/public/application/actions/replace_panel_action.test.tsx
index b3ac183a6ee0..42e2f99f8a5e 100644
--- a/src/plugins/dashboard/public/application/actions/replace_panel_action.test.tsx
+++ b/src/plugins/dashboard/public/application/actions/replace_panel_action.test.tsx
@@ -28,20 +28,20 @@
* under the License.
*/
-import { isErrorEmbeddable } from '../../embeddable_plugin';
-import { ReplacePanelAction } from './replace_panel_action';
-import { DashboardContainer } from '../embeddable';
-import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
+import { isErrorEmbeddable } from '../../../../embeddable/public';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddable,
ContactCardEmbeddableInput,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
+} from '../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
+import { ReplacePanelAction } from './replace_panel_action';
+import { DashboardContainer } from '../embeddable';
+import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
import { coreMock } from '../../../../../core/public/mocks';
import { CoreStart } from 'opensearch-dashboards/public';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
const { setup, doStart } = embeddablePluginMock.createInstance();
setup.registerEmbeddableFactory(
diff --git a/src/plugins/dashboard/public/application/actions/replace_panel_action.tsx b/src/plugins/dashboard/public/application/actions/replace_panel_action.tsx
index 933986967e9d..fa634a170e44 100644
--- a/src/plugins/dashboard/public/application/actions/replace_panel_action.tsx
+++ b/src/plugins/dashboard/public/application/actions/replace_panel_action.tsx
@@ -31,9 +31,9 @@
import { i18n } from '@osd/i18n';
import { CoreStart } from 'src/core/public';
import { EuiIconType } from '@elastic/eui/src/components/icon/icon';
-import { IEmbeddable, ViewMode, EmbeddableStart } from '../../embeddable_plugin';
+import { IEmbeddable, ViewMode, EmbeddableStart } from '../../../../embeddable/public';
import { DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '../embeddable';
-import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin';
+import { ActionByType, IncompatibleActionError } from '../../../../ui_actions/public';
import { openReplacePanelFlyout } from './open_replace_panel_flyout';
export const ACTION_REPLACE_PANEL = 'replacePanel';
diff --git a/src/plugins/dashboard/public/application/actions/replace_panel_flyout.tsx b/src/plugins/dashboard/public/application/actions/replace_panel_flyout.tsx
index 2ec1db3f42fc..be994686cdec 100644
--- a/src/plugins/dashboard/public/application/actions/replace_panel_flyout.tsx
+++ b/src/plugins/dashboard/public/application/actions/replace_panel_flyout.tsx
@@ -40,7 +40,7 @@ import {
IContainer,
IEmbeddable,
SavedObjectEmbeddableInput,
-} from '../../embeddable_plugin';
+} from '../../../../embeddable/public';
interface Props {
container: IContainer;
diff --git a/src/plugins/dashboard/public/application/actions/unlink_from_library_action.test.tsx b/src/plugins/dashboard/public/application/actions/unlink_from_library_action.test.tsx
index 11601b40200a..8f2511f8c3f5 100644
--- a/src/plugins/dashboard/public/application/actions/unlink_from_library_action.test.tsx
+++ b/src/plugins/dashboard/public/application/actions/unlink_from_library_action.test.tsx
@@ -28,25 +28,27 @@
* under the License.
*/
-import { isErrorEmbeddable, IContainer, ReferenceOrValueEmbeddable } from '../../embeddable_plugin';
-import { DashboardContainer } from '../embeddable';
-import { getSampleDashboardInput } from '../test_helpers';
+import {
+ isErrorEmbeddable,
+ IContainer,
+ ReferenceOrValueEmbeddable,
+ ViewMode,
+ SavedObjectEmbeddableInput,
+ ErrorEmbeddable,
+} from '../../../../embeddable/public';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddable,
ContactCardEmbeddableInput,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
+} from '../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
+import { DashboardContainer } from '../embeddable';
+import { getSampleDashboardInput } from '../test_helpers';
import { coreMock } from '../../../../../core/public/mocks';
import { CoreStart } from 'opensearch-dashboards/public';
import { UnlinkFromLibraryAction } from '.';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
-import {
- ViewMode,
- SavedObjectEmbeddableInput,
- ErrorEmbeddable,
-} from '../../../../embeddable/public';
const { setup, doStart } = embeddablePluginMock.createInstance();
setup.registerEmbeddableFactory(
diff --git a/src/plugins/dashboard/public/application/actions/unlink_from_library_action.tsx b/src/plugins/dashboard/public/application/actions/unlink_from_library_action.tsx
index 82a3b3fb5a08..67518066dd75 100644
--- a/src/plugins/dashboard/public/application/actions/unlink_from_library_action.tsx
+++ b/src/plugins/dashboard/public/application/actions/unlink_from_library_action.tsx
@@ -32,13 +32,15 @@ import { i18n } from '@osd/i18n';
import _ from 'lodash';
import uuid from 'uuid';
import { EuiIconType } from '@elastic/eui/src/components/icon/icon';
-import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin';
-import { ViewMode, PanelState, IEmbeddable } from '../../embeddable_plugin';
+import { ActionByType, IncompatibleActionError } from '../../../../ui_actions/public';
import {
PanelNotFoundError,
EmbeddableInput,
isReferenceOrValueEmbeddable,
isErrorEmbeddable,
+ ViewMode,
+ PanelState,
+ IEmbeddable,
} from '../../../../embeddable/public';
import { DashboardPanelState, DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '..';
diff --git a/src/plugins/dashboard/public/application/listing/__snapshots__/create_button.test.tsx.snap b/src/plugins/dashboard/public/application/components/dashboard_listing/__snapshots__/create_button.test.tsx.snap
similarity index 100%
rename from src/plugins/dashboard/public/application/listing/__snapshots__/create_button.test.tsx.snap
rename to src/plugins/dashboard/public/application/components/dashboard_listing/__snapshots__/create_button.test.tsx.snap
diff --git a/src/plugins/dashboard/public/application/listing/create_button.test.tsx b/src/plugins/dashboard/public/application/components/dashboard_listing/create_button.test.tsx
similarity index 97%
rename from src/plugins/dashboard/public/application/listing/create_button.test.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_listing/create_button.test.tsx
index 9521df8590e6..19c676b9e5b8 100644
--- a/src/plugins/dashboard/public/application/listing/create_button.test.tsx
+++ b/src/plugins/dashboard/public/application/components/dashboard_listing/create_button.test.tsx
@@ -15,7 +15,7 @@ import { findTestSubject } from '@elastic/eui/lib/test';
import React from 'react';
import { CreateButton } from './create_button';
-import { DashboardProvider } from '../../types';
+import { DashboardProvider } from '../../../types';
const provider = (type?: string, url?: string, text?: string): DashboardProvider => {
return {
diff --git a/src/plugins/dashboard/public/application/listing/create_button.tsx b/src/plugins/dashboard/public/application/components/dashboard_listing/create_button.tsx
similarity index 98%
rename from src/plugins/dashboard/public/application/listing/create_button.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_listing/create_button.tsx
index 16d17c3568a3..2d6623096235 100644
--- a/src/plugins/dashboard/public/application/listing/create_button.tsx
+++ b/src/plugins/dashboard/public/application/components/dashboard_listing/create_button.tsx
@@ -11,7 +11,7 @@ import {
EuiFlexItem,
EuiPopover,
} from '@elastic/eui';
-import type { DashboardProvider } from '../../types';
+import type { DashboardProvider } from '../../../types';
interface CreateButtonProps {
dashboardProviders?: { [key: string]: DashboardProvider };
diff --git a/src/plugins/dashboard/public/application/listing/dashboard_listing.test.js b/src/plugins/dashboard/public/application/components/dashboard_listing/dashboard_listing.test.tsx
similarity index 97%
rename from src/plugins/dashboard/public/application/listing/dashboard_listing.test.js
rename to src/plugins/dashboard/public/application/components/dashboard_listing/dashboard_listing.test.tsx
index 23cfacd13fba..3d9c8404be5e 100644
--- a/src/plugins/dashboard/public/application/listing/dashboard_listing.test.js
+++ b/src/plugins/dashboard/public/application/components/dashboard_listing/dashboard_listing.test.tsx
@@ -36,8 +36,8 @@ jest.mock(
() => ({
...jest.requireActual('lodash'),
// mock debounce to fire immediately with no internal timer
- debounce: (func) => {
- function debounced(...args) {
+ debounce: (func: any) => {
+ function debounced(this: any, ...args: any[]) {
return func.apply(this, args);
}
return debounced;
@@ -49,9 +49,9 @@ jest.mock(
import React from 'react';
import { shallow } from 'enzyme';
-import { DashboardListing } from '../components/dashboard_listing';
+import { DashboardListing } from './dashboard_listing';
-const find = (num) => {
+const find = (num: number) => {
const hits = [];
for (let i = 0; i < num; i++) {
hits.push({
@@ -62,7 +62,7 @@ const find = (num) => {
}
return Promise.resolve({
total: num,
- hits: hits,
+ hits,
});
};
diff --git a/src/plugins/dashboard/public/application/components/dashboard_listing.tsx b/src/plugins/dashboard/public/application/components/dashboard_listing/dashboard_listing.tsx
similarity index 94%
rename from src/plugins/dashboard/public/application/components/dashboard_listing.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_listing/dashboard_listing.tsx
index df3ff9099394..00ce5a713b7f 100644
--- a/src/plugins/dashboard/public/application/components/dashboard_listing.tsx
+++ b/src/plugins/dashboard/public/application/components/dashboard_listing/dashboard_listing.tsx
@@ -10,13 +10,13 @@ import { useLocation } from 'react-router-dom';
import {
useOpenSearchDashboards,
TableListView,
-} from '../../../../opensearch_dashboards_react/public';
-import { CreateButton } from '../listing/create_button';
-import { DashboardConstants, createDashboardEditUrl } from '../../dashboard_constants';
-import { DashboardServices } from '../../types';
-import { getTableColumns } from '../utils/get_table_columns';
-import { getNoItemsMessage } from '../utils/get_no_items_message';
-import { syncQueryStateWithUrl } from '../../../../data/public';
+} from '../../../../../opensearch_dashboards_react/public';
+import { CreateButton } from './create_button';
+import { DashboardConstants, createDashboardEditUrl } from '../../../dashboard_constants';
+import { DashboardServices } from '../../../types';
+import { getTableColumns } from '../../utils/get_table_columns';
+import { getNoItemsMessage } from '../../utils/get_no_items_message';
+import { syncQueryStateWithUrl } from '../../../../../data/public';
export const EMPTY_FILTER = '';
diff --git a/src/plugins/dashboard/public/application/components/dashboard_listing/index.ts b/src/plugins/dashboard/public/application/components/dashboard_listing/index.ts
new file mode 100644
index 000000000000..19ded8c611ac
--- /dev/null
+++ b/src/plugins/dashboard/public/application/components/dashboard_listing/index.ts
@@ -0,0 +1,7 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+export { CreateButton } from './create_button';
+export { DashboardListing } from './dashboard_listing';
diff --git a/src/plugins/dashboard/public/application/components/dashboard_top_nav.tsx b/src/plugins/dashboard/public/application/components/dashboard_top_nav/dashboard_top_nav.tsx
similarity index 93%
rename from src/plugins/dashboard/public/application/components/dashboard_top_nav.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/dashboard_top_nav.tsx
index 157e9a01967e..1cc58c78ebc1 100644
--- a/src/plugins/dashboard/public/application/components/dashboard_top_nav.tsx
+++ b/src/plugins/dashboard/public/application/components/dashboard_top_nav/dashboard_top_nav.tsx
@@ -7,12 +7,12 @@ import React, { memo, useState, useEffect } from 'react';
import { IndexPattern } from 'src/plugins/data/public';
import { useCallback } from 'react';
import { useLocation } from 'react-router-dom';
-import { useOpenSearchDashboards } from '../../../../opensearch_dashboards_react/public';
-import { getTopNavConfig } from '../top_nav/get_top_nav_config';
-import { DashboardAppStateContainer, DashboardAppState, DashboardServices } from '../../types';
-import { getNavActions } from '../utils/get_nav_actions';
-import { DashboardContainer } from '../embeddable';
-import { Dashboard } from '../../dashboard';
+import { useOpenSearchDashboards } from '../../../../../opensearch_dashboards_react/public';
+import { getTopNavConfig } from './top_nav';
+import { DashboardAppStateContainer, DashboardAppState, DashboardServices } from '../../../types';
+import { getNavActions } from '../../utils/get_nav_actions';
+import { DashboardContainer } from '../../embeddable';
+import { Dashboard } from '../../../dashboard';
interface DashboardTopNavProps {
isChromeVisible: boolean;
diff --git a/src/plugins/dashboard/public/application/components/dashboard_top_nav/index.ts b/src/plugins/dashboard/public/application/components/dashboard_top_nav/index.ts
new file mode 100644
index 000000000000..3e50001bd673
--- /dev/null
+++ b/src/plugins/dashboard/public/application/components/dashboard_top_nav/index.ts
@@ -0,0 +1,7 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+export * from './top_nav';
+export { DashboardTopNav, UrlParams } from './dashboard_top_nav';
diff --git a/src/plugins/dashboard/public/application/top_nav/__snapshots__/clone_modal.test.js.snap b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/__snapshots__/clone_modal.test.js.snap
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/__snapshots__/clone_modal.test.js.snap
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/__snapshots__/clone_modal.test.js.snap
diff --git a/src/plugins/dashboard/public/application/top_nav/__snapshots__/save_modal.test.js.snap b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/__snapshots__/save_modal.test.js.snap
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/__snapshots__/save_modal.test.js.snap
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/__snapshots__/save_modal.test.js.snap
diff --git a/src/plugins/dashboard/public/application/top_nav/clone_modal.test.js b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/clone_modal.test.js
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/clone_modal.test.js
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/clone_modal.test.js
diff --git a/src/plugins/dashboard/public/application/top_nav/clone_modal.tsx b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/clone_modal.tsx
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/clone_modal.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/clone_modal.tsx
diff --git a/src/plugins/dashboard/public/application/top_nav/get_top_nav_config.ts b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/get_top_nav_config.ts
similarity index 98%
rename from src/plugins/dashboard/public/application/top_nav/get_top_nav_config.ts
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/get_top_nav_config.ts
index aa7c2e2e4255..f91f4d47a854 100644
--- a/src/plugins/dashboard/public/application/top_nav/get_top_nav_config.ts
+++ b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/get_top_nav_config.ts
@@ -29,9 +29,9 @@
*/
import { i18n } from '@osd/i18n';
-import { ViewMode } from '../../embeddable_plugin';
+import { ViewMode } from '../../../../../../embeddable/public';
import { TopNavIds } from './top_nav_ids';
-import { NavAction } from '../../types';
+import { NavAction } from '../../../../types';
/**
* @param actions - A mapping of TopNavIds to an action function that should run when the
diff --git a/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/index.ts b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/index.ts
new file mode 100644
index 000000000000..1fca9b941e4e
--- /dev/null
+++ b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/index.ts
@@ -0,0 +1,12 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+export * from './clone_modal';
+export * from './get_top_nav_config';
+export * from './options';
+export * from './save_modal';
+export * from './show_clone_modal';
+export * from './show_options_popover';
+export * from './top_nav_ids';
diff --git a/src/plugins/dashboard/public/application/top_nav/options.tsx b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/options.tsx
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/options.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/options.tsx
diff --git a/src/plugins/dashboard/public/application/top_nav/save_modal.test.js b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/save_modal.test.js
similarity index 96%
rename from src/plugins/dashboard/public/application/top_nav/save_modal.test.js
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/save_modal.test.js
index 91bdaebe4dc1..daf1a8e351a5 100644
--- a/src/plugins/dashboard/public/application/top_nav/save_modal.test.js
+++ b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/save_modal.test.js
@@ -31,7 +31,7 @@
import React from 'react';
import { shallowWithI18nProvider } from 'test_utils/enzyme_helpers';
-jest.mock('../../../../saved_objects/public', () => ({
+jest.mock('../../../../../../saved_objects/public', () => ({
SavedObjectSaveModal: () => null,
}));
diff --git a/src/plugins/dashboard/public/application/top_nav/save_modal.tsx b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/save_modal.tsx
similarity index 98%
rename from src/plugins/dashboard/public/application/top_nav/save_modal.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/save_modal.tsx
index 205a8e2222fc..f8e0fe674df8 100644
--- a/src/plugins/dashboard/public/application/top_nav/save_modal.tsx
+++ b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/save_modal.tsx
@@ -32,7 +32,7 @@ import React, { Fragment } from 'react';
import { FormattedMessage } from '@osd/i18n/react';
import { EuiFormRow, EuiTextArea, EuiSwitch } from '@elastic/eui';
-import { SavedObjectSaveModal } from '../../../../saved_objects/public';
+import { SavedObjectSaveModal } from '../../../../../../saved_objects/public';
interface SaveOptions {
newTitle: string;
diff --git a/src/plugins/dashboard/public/application/top_nav/show_clone_modal.tsx b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/show_clone_modal.tsx
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/show_clone_modal.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/show_clone_modal.tsx
diff --git a/src/plugins/dashboard/public/application/top_nav/show_options_popover.tsx b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/show_options_popover.tsx
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/show_options_popover.tsx
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/show_options_popover.tsx
diff --git a/src/plugins/dashboard/public/application/top_nav/top_nav_ids.ts b/src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/top_nav_ids.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/top_nav/top_nav_ids.ts
rename to src/plugins/dashboard/public/application/components/dashboard_top_nav/top_nav/top_nav_ids.ts
diff --git a/src/plugins/dashboard/public/application/components/index.ts b/src/plugins/dashboard/public/application/components/index.ts
index 27f7e46ad74e..23eeb5e75314 100644
--- a/src/plugins/dashboard/public/application/components/index.ts
+++ b/src/plugins/dashboard/public/application/components/index.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-export { DashboardListing } from './dashboard_listing';
+export { DashboardListing, CreateButton } from './dashboard_listing';
export { DashboardEditor } from './dashboard_editor';
export { DashboardNoMatch } from './dashboard_no_match';
export { DashboardTopNav } from './dashboard_top_nav';
diff --git a/src/plugins/dashboard/public/application/dashboard_strings.ts b/src/plugins/dashboard/public/application/dashboard_strings.ts
index ead76e48da74..96713b3fe955 100644
--- a/src/plugins/dashboard/public/application/dashboard_strings.ts
+++ b/src/plugins/dashboard/public/application/dashboard_strings.ts
@@ -29,7 +29,7 @@
*/
import { i18n } from '@osd/i18n';
-import { ViewMode } from '../embeddable_plugin';
+import { ViewMode } from '../../../embeddable/public';
/**
* @param title {string} the current title of the dashboard
diff --git a/src/plugins/dashboard/public/application/embeddable/_dashboard_container.scss b/src/plugins/dashboard/public/application/embeddable/_dashboard_container.scss
index 30774d469b85..e72e52515efd 100644
--- a/src/plugins/dashboard/public/application/embeddable/_dashboard_container.scss
+++ b/src/plugins/dashboard/public/application/embeddable/_dashboard_container.scss
@@ -1,4 +1,5 @@
@import "../../../../embeddable/public/variables";
+@import "./empty/index";
@import "./grid/index";
@import "./panel/index";
@import "./viewport/index";
diff --git a/src/plugins/dashboard/public/application/embeddable/dashboard_container.test.tsx b/src/plugins/dashboard/public/application/embeddable/dashboard_container.test.tsx
index 4daeb2767170..faed32d60d2d 100644
--- a/src/plugins/dashboard/public/application/embeddable/dashboard_container.test.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/dashboard_container.test.tsx
@@ -28,18 +28,32 @@
* under the License.
*/
+import { I18nProvider } from '@osd/i18n/react';
import { nextTick } from 'test_utils/enzyme_helpers';
-import { isErrorEmbeddable, ViewMode } from '../../embeddable_plugin';
-import { DashboardContainer, DashboardContainerOptions } from './dashboard_container';
-import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
+import {
+ CONTEXT_MENU_TRIGGER,
+ EmbeddablePanel,
+ isErrorEmbeddable,
+ ViewMode,
+} from '../../../../embeddable/public';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
ContactCardEmbeddableInput,
ContactCardEmbeddable,
ContactCardEmbeddableOutput,
-} from '../../embeddable_plugin_test_samples';
+ createEditModeAction,
+} from '../../../../embeddable/public/lib/test_samples';
import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
+import { DashboardContainer, DashboardContainerOptions } from './dashboard_container';
+import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers';
+import { inspectorPluginMock } from 'src/plugins/inspector/public/mocks';
+import { uiActionsPluginMock } from 'src/plugins/ui_actions/public/mocks';
+import { applicationServiceMock } from '../../../../../core/public/mocks';
+import React from 'react';
+import { OpenSearchDashboardsContextProvider } from 'src/plugins/opensearch_dashboards_react/public';
+import { mount } from 'enzyme';
+import { findTestSubject } from 'test_utils/helpers';
const options: DashboardContainerOptions = {
application: {} as any,
@@ -145,3 +159,88 @@ test('Container view mode change propagates to new children', async () => {
expect(embeddable.getInput().viewMode).toBe(ViewMode.EDIT);
});
+
+test('DashboardContainer in edit mode shows edit mode actions', async () => {
+ const inspector = inspectorPluginMock.createStartContract();
+ const { setup, doStart } = embeddablePluginMock.createInstance();
+ const uiActionsSetup = uiActionsPluginMock.createSetupContract();
+
+ const editModeAction = createEditModeAction();
+ uiActionsSetup.registerAction(editModeAction);
+ uiActionsSetup.addTriggerAction(CONTEXT_MENU_TRIGGER, editModeAction);
+ setup.registerEmbeddableFactory(
+ CONTACT_CARD_EMBEDDABLE,
+ new ContactCardEmbeddableFactory((() => null) as any, {} as any)
+ );
+
+ const start = doStart();
+
+ const initialInput = getSampleDashboardInput({ viewMode: ViewMode.VIEW });
+ const containerOptions: DashboardContainerOptions = {
+ application: applicationServiceMock.createStartContract(),
+ embeddable: start,
+ notifications: {} as any,
+ overlays: {} as any,
+ inspector: {} as any,
+ SavedObjectFinder: () => null,
+ ExitFullScreenButton: () => null,
+ uiActions: {} as any,
+ };
+ const container = new DashboardContainer(initialInput, containerOptions);
+
+ const embeddable = await container.addNewEmbeddable<
+ ContactCardEmbeddableInput,
+ ContactCardEmbeddableOutput,
+ ContactCardEmbeddable
+ >(CONTACT_CARD_EMBEDDABLE, {
+ firstName: 'Bob',
+ });
+
+ const component = mount(
+
+
+ Promise.resolve([])}
+ getAllEmbeddableFactories={(() => []) as any}
+ getEmbeddableFactory={(() => null) as any}
+ notifications={{} as any}
+ application={containerOptions.application}
+ overlays={{} as any}
+ inspector={inspector}
+ SavedObjectFinder={() => null}
+ />
+
+
+ );
+
+ const button = findTestSubject(component, 'embeddablePanelToggleMenuIcon');
+
+ expect(button.length).toBe(1);
+ findTestSubject(component, 'embeddablePanelToggleMenuIcon').simulate('click');
+
+ expect(findTestSubject(component, `embeddablePanelContextMenuOpen`).length).toBe(1);
+
+ const editAction = findTestSubject(component, `embeddablePanelAction-${editModeAction.id}`);
+
+ expect(editAction.length).toBe(0);
+
+ container.updateInput({ viewMode: ViewMode.EDIT });
+ await nextTick();
+ component.update();
+ findTestSubject(component, 'embeddablePanelToggleMenuIcon').simulate('click');
+ await nextTick();
+ component.update();
+ expect(findTestSubject(component, 'embeddablePanelContextMenuOpen').length).toBe(0);
+ findTestSubject(component, 'embeddablePanelToggleMenuIcon').simulate('click');
+ await nextTick();
+ component.update();
+ expect(findTestSubject(component, 'embeddablePanelContextMenuOpen').length).toBe(1);
+
+ await nextTick();
+ component.update();
+
+ // TODO: Address this.
+ // const action = findTestSubject(component, `embeddablePanelAction-${editModeAction.id}`);
+ // expect(action.length).toBe(1);
+});
diff --git a/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx b/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx
index c87c3478558c..db647c2760a7 100644
--- a/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx
@@ -37,7 +37,6 @@ import { RefreshInterval, TimeRange, Query, Filter } from 'src/plugins/data/publ
import { CoreStart } from 'src/core/public';
import { Start as InspectorStartContract } from 'src/plugins/inspector/public';
import uuid from 'uuid';
-import { UiActionsStart } from '../../ui_actions_plugin';
import {
Container,
ContainerInput,
@@ -47,7 +46,10 @@ import {
IEmbeddable,
EmbeddableStart,
PanelState,
-} from '../../embeddable_plugin';
+ EmbeddableStateTransfer,
+ EmbeddableOutput,
+} from '../../../../embeddable/public';
+import { UiActionsStart } from '../../../../ui_actions/public';
import { DASHBOARD_CONTAINER_TYPE } from './dashboard_constants';
import { createPanelState } from './panel';
import { DashboardPanelState } from './types';
@@ -59,7 +61,6 @@ import {
} from '../../../../opensearch_dashboards_react/public';
import { PLACEHOLDER_EMBEDDABLE } from './placeholder';
import { PanelPlacementMethod, IPanelPlacementArgs } from './panel/dashboard_panel_placement';
-import { EmbeddableStateTransfer, EmbeddableOutput } from '../../../../embeddable/public';
export interface DashboardContainerInput extends ContainerInput {
viewMode: ViewMode;
diff --git a/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx b/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx
index bbfd0f30dd34..b50f561ddab8 100644
--- a/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx
@@ -32,13 +32,14 @@ import { i18n } from '@osd/i18n';
import { UiActionsStart } from 'src/plugins/ui_actions/public';
import { CoreStart, ScopedHistory } from 'src/core/public';
import { Start as InspectorStartContract } from 'src/plugins/inspector/public';
-import { EmbeddableFactory, EmbeddableStart } from '../../../../embeddable/public';
import {
ContainerOutput,
EmbeddableFactoryDefinition,
ErrorEmbeddable,
Container,
-} from '../../embeddable_plugin';
+ EmbeddableFactory,
+ EmbeddableStart,
+} from '../../../../embeddable/public';
import { DashboardContainer, DashboardContainerInput } from './dashboard_container';
import { DASHBOARD_CONTAINER_TYPE } from './dashboard_constants';
diff --git a/src/plugins/dashboard/public/application/__snapshots__/dashboard_empty_screen.test.tsx.snap b/src/plugins/dashboard/public/application/embeddable/empty/__snapshots__/dashboard_empty_screen.test.tsx.snap
similarity index 100%
rename from src/plugins/dashboard/public/application/__snapshots__/dashboard_empty_screen.test.tsx.snap
rename to src/plugins/dashboard/public/application/embeddable/empty/__snapshots__/dashboard_empty_screen.test.tsx.snap
diff --git a/src/plugins/dashboard/public/application/embeddable/empty/_index.scss b/src/plugins/dashboard/public/application/embeddable/empty/_index.scss
new file mode 100644
index 000000000000..e6977a94c5b7
--- /dev/null
+++ b/src/plugins/dashboard/public/application/embeddable/empty/_index.scss
@@ -0,0 +1 @@
+@import "./dashboard_empty_screen";
diff --git a/src/plugins/dashboard/public/application/dashboard_empty_screen.scss b/src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.scss
similarity index 100%
rename from src/plugins/dashboard/public/application/dashboard_empty_screen.scss
rename to src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.scss
diff --git a/src/plugins/dashboard/public/application/dashboard_empty_screen.test.tsx b/src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.test.tsx
similarity index 96%
rename from src/plugins/dashboard/public/application/dashboard_empty_screen.test.tsx
rename to src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.test.tsx
index fd4291b29455..b2c04284ad09 100644
--- a/src/plugins/dashboard/public/application/dashboard_empty_screen.test.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.test.tsx
@@ -31,8 +31,8 @@
import React from 'react';
import { mountWithIntl } from 'test_utils/enzyme_helpers';
import { DashboardEmptyScreen, DashboardEmptyScreenProps } from './dashboard_empty_screen';
-import { findTestSubject } from '@elastic/eui/lib/test';
-import { coreMock } from '../../../../core/public/mocks';
+import { findTestSubject } from 'test_utils/helpers';
+import { coreMock } from '../../../../../../core/public/mocks';
describe('DashboardEmptyScreen', () => {
const setupMock = coreMock.createSetup();
diff --git a/src/plugins/dashboard/public/application/dashboard_empty_screen.tsx b/src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.tsx
similarity index 99%
rename from src/plugins/dashboard/public/application/dashboard_empty_screen.tsx
rename to src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.tsx
index d7f4a725a6fc..558fe0af5f62 100644
--- a/src/plugins/dashboard/public/application/dashboard_empty_screen.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen.tsx
@@ -28,7 +28,6 @@
* under the License.
*/
-import './dashboard_empty_screen.scss';
import React from 'react';
import { I18nProvider } from '@osd/i18n/react';
import {
diff --git a/src/plugins/dashboard/public/application/dashboard_empty_screen_constants.tsx b/src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen_constants.tsx
similarity index 100%
rename from src/plugins/dashboard/public/application/dashboard_empty_screen_constants.tsx
rename to src/plugins/dashboard/public/application/embeddable/empty/dashboard_empty_screen_constants.tsx
diff --git a/src/plugins/dashboard/public/application/embeddable/empty/index.ts b/src/plugins/dashboard/public/application/embeddable/empty/index.ts
new file mode 100644
index 000000000000..16a579e89bc0
--- /dev/null
+++ b/src/plugins/dashboard/public/application/embeddable/empty/index.ts
@@ -0,0 +1,6 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+export { DashboardEmptyScreen, DashboardEmptyScreenProps } from './dashboard_empty_screen';
diff --git a/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.test.tsx b/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.test.tsx
index 48d1a4adc512..ce2dfec622a4 100644
--- a/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.test.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.test.tsx
@@ -40,9 +40,9 @@ import { getSampleDashboardInput } from '../../test_helpers';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
-} from '../../../embeddable_plugin_test_samples';
+} from '../../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../../embeddable/public/mocks';
import { OpenSearchDashboardsContextProvider } from '../../../../../opensearch_dashboards_react/public';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
let dashboardContainer: DashboardContainer | undefined;
diff --git a/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.tsx b/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.tsx
index 064a1c5f4085..374e20e715d4 100644
--- a/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/grid/dashboard_grid.tsx
@@ -39,8 +39,8 @@ import _ from 'lodash';
import React from 'react';
import { Subscription } from 'rxjs';
import ReactGridLayout, { Layout, ReactGridLayoutProps } from 'react-grid-layout';
+import { ViewMode, EmbeddableChildPanel, EmbeddableStart } from '../../../../../embeddable/public';
import { GridData } from '../../../../common';
-import { ViewMode, EmbeddableChildPanel, EmbeddableStart } from '../../../embeddable_plugin';
import { DASHBOARD_GRID_COLUMN_COUNT, DASHBOARD_GRID_HEIGHT } from '../dashboard_constants';
import { DashboardPanelState } from '../types';
import { withOpenSearchDashboards } from '../../../../../opensearch_dashboards_react/public';
diff --git a/src/plugins/dashboard/public/application/embeddable/index.ts b/src/plugins/dashboard/public/application/embeddable/index.ts
index 1b5017bee941..b3a8b4cc8d75 100644
--- a/src/plugins/dashboard/public/application/embeddable/index.ts
+++ b/src/plugins/dashboard/public/application/embeddable/index.ts
@@ -36,6 +36,7 @@ export { DashboardContainer, DashboardContainerInput } from './dashboard_contain
export { createPanelState } from './panel';
export * from './types';
+export * from './empty';
export {
DASHBOARD_GRID_COLUMN_COUNT,
diff --git a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts
index 43d15e2d3774..b6bfdc1c004d 100644
--- a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts
+++ b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts
@@ -31,8 +31,8 @@
import { DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH } from '../dashboard_constants';
import { DashboardPanelState } from '../types';
import { createPanelState } from './create_panel_state';
-import { EmbeddableInput } from '../../../embeddable_plugin';
-import { CONTACT_CARD_EMBEDDABLE } from '../../../embeddable_plugin_test_samples';
+import { EmbeddableInput } from '../../../../../embeddable/public';
+import { CONTACT_CARD_EMBEDDABLE } from '../../../../../embeddable/public/lib/test_samples';
interface TestInput extends EmbeddableInput {
test: string;
diff --git a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts
index b99548a3e89c..6fba7b8397c4 100644
--- a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts
+++ b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts
@@ -28,7 +28,7 @@
* under the License.
*/
-import { PanelState, EmbeddableInput } from '../../../embeddable_plugin';
+import { PanelState, EmbeddableInput } from '../../../../../embeddable/public';
import { DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH } from '../dashboard_constants';
import { DashboardPanelState } from '../types';
import {
diff --git a/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts b/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts
index 8cf277890cb1..690c2e2b75c7 100644
--- a/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts
+++ b/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts
@@ -29,7 +29,7 @@
*/
import _ from 'lodash';
-import { PanelNotFoundError } from '../../../embeddable_plugin';
+import { PanelNotFoundError } from '../../../../../embeddable/public';
import { GridData } from '../../../../common';
import { DashboardPanelState, DASHBOARD_GRID_COLUMN_COUNT } from '..';
diff --git a/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx
index 57ecde6b5ceb..60882b179214 100644
--- a/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx
@@ -32,7 +32,7 @@ import React from 'react';
import ReactDOM from 'react-dom';
import { EuiLoadingChart } from '@elastic/eui';
import classNames from 'classnames';
-import { Embeddable, EmbeddableInput, IContainer } from '../../../embeddable_plugin';
+import { Embeddable, EmbeddableInput, IContainer } from '../../../../../embeddable/public';
export const PLACEHOLDER_EMBEDDABLE = 'placeholder';
diff --git a/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts
index 9cf936443072..e89a8efbfa04 100644
--- a/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts
+++ b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts
@@ -34,7 +34,7 @@ import {
EmbeddableFactoryDefinition,
EmbeddableInput,
IContainer,
-} from '../../../embeddable_plugin';
+} from '../../../../../embeddable/public';
import { PlaceholderEmbeddable, PLACEHOLDER_EMBEDDABLE } from './placeholder_embeddable';
export class PlaceholderEmbeddableFactory implements EmbeddableFactoryDefinition {
diff --git a/src/plugins/dashboard/public/application/embeddable/types.ts b/src/plugins/dashboard/public/application/embeddable/types.ts
index ed4f90bc6eb6..ffa810b6bc05 100644
--- a/src/plugins/dashboard/public/application/embeddable/types.ts
+++ b/src/plugins/dashboard/public/application/embeddable/types.ts
@@ -28,9 +28,12 @@
* under the License.
*/
-import { SavedObjectEmbeddableInput } from 'src/plugins/embeddable/public';
+import {
+ SavedObjectEmbeddableInput,
+ PanelState,
+ EmbeddableInput,
+} from '../../../../embeddable/public';
import { GridData } from '../../../common';
-import { PanelState, EmbeddableInput } from '../../embeddable_plugin';
export type PanelId = string;
export type SavedObjectId = string;
diff --git a/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.test.tsx b/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.test.tsx
index bc1b56b64bf8..f03ed95c9a37 100644
--- a/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.test.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.test.tsx
@@ -41,9 +41,9 @@ import { getSampleDashboardInput } from '../../test_helpers';
import {
CONTACT_CARD_EMBEDDABLE,
ContactCardEmbeddableFactory,
-} from '../../../embeddable_plugin_test_samples';
+} from '../../../../../embeddable/public/lib/test_samples';
+import { embeddablePluginMock } from '../../../../../embeddable/public/mocks';
import { OpenSearchDashboardsContextProvider } from '../../../../../opensearch_dashboards_react/public';
-import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks';
import { applicationServiceMock } from '../../../../../../core/public/mocks';
sizeMe.noPlaceholders = true;
diff --git a/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.tsx b/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.tsx
index 2a98046b4d2c..f89c1179cad5 100644
--- a/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.tsx
+++ b/src/plugins/dashboard/public/application/embeddable/viewport/dashboard_viewport.tsx
@@ -30,7 +30,7 @@
import React from 'react';
import { Subscription } from 'rxjs';
-import { PanelState, EmbeddableStart } from '../../../embeddable_plugin';
+import { PanelState, EmbeddableStart } from '../../../../../embeddable/public';
import { DashboardContainer, DashboardReactContextValue } from '../dashboard_container';
import { DashboardGrid } from '../grid';
import { context } from '../../../../../opensearch_dashboards_react/public';
diff --git a/src/plugins/dashboard/public/application/embeddable/viewport/index.ts b/src/plugins/dashboard/public/application/embeddable/viewport/index.ts
new file mode 100644
index 000000000000..62b87a159113
--- /dev/null
+++ b/src/plugins/dashboard/public/application/embeddable/viewport/index.ts
@@ -0,0 +1,6 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+export { DashboardViewport, DashboardViewportProps } from './dashboard_viewport';
diff --git a/src/plugins/dashboard/public/application/index.scss b/src/plugins/dashboard/public/application/index.scss
index bc959543e406..c3d13ce48307 100644
--- a/src/plugins/dashboard/public/application/index.scss
+++ b/src/plugins/dashboard/public/application/index.scss
@@ -3,9 +3,6 @@
@import "./embeddable/panel/index";
@import "./embeddable/viewport/index";
-// Temporary hacks
-@import "./hacks";
-
// Prefix all styles with "dsh" to avoid conflicts.
// Examples
// dshChart
diff --git a/src/plugins/dashboard/public/application/index.tsx b/src/plugins/dashboard/public/application/index.tsx
index 366366eb83d8..4b46fd058a3f 100644
--- a/src/plugins/dashboard/public/application/index.tsx
+++ b/src/plugins/dashboard/public/application/index.tsx
@@ -8,7 +8,7 @@ import ReactDOM from 'react-dom';
import { Router } from 'react-router-dom';
import { AppMountParameters } from 'opensearch-dashboards/public';
import { OpenSearchDashboardsContextProvider } from '../../../opensearch_dashboards_react/public';
-import { addHelpMenuToAppChrome } from './help_menu/help_menu_util';
+import { addHelpMenuToAppChrome } from './utils';
import { DashboardApp } from './app';
import { DashboardServices } from '../types';
export * from './embeddable';
diff --git a/src/plugins/dashboard/public/application/lib/index.ts b/src/plugins/dashboard/public/application/lib/index.ts
deleted file mode 100644
index e64b0d4c0c49..000000000000
--- a/src/plugins/dashboard/public/application/lib/index.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Any modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-export { saveDashboard } from './save_dashboard';
-export { getAppStateDefaults } from './get_app_state_defaults';
-export { migrateAppState } from './migrate_app_state';
-export { getDashboardIdFromUrl } from './url';
diff --git a/src/plugins/dashboard/public/application/listing/__snapshots__/dashboard_listing.test.js.snap b/src/plugins/dashboard/public/application/listing/__snapshots__/dashboard_listing.test.js.snap
deleted file mode 100644
index 8ad036fc120c..000000000000
--- a/src/plugins/dashboard/public/application/listing/__snapshots__/dashboard_listing.test.js.snap
+++ /dev/null
@@ -1,743 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`after fetch hideWriteControls 1`] = `
-
-
-
-
-
- }
- />
-
- }
- tableColumns={
- Array [
- Object {
- "field": "title",
- "name": "Title",
- "render": [Function],
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "type",
- "name": "Type",
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "description",
- "name": "Description",
- "sortable": true,
- },
- Object {
- "data-test-subj": "updated-at",
- "dataType": "date",
- "description": "Last update of the saved object",
- "field": "updated_at",
- "name": "Last updated",
- "render": [Function],
- "sortable": true,
- },
- ]
- }
- tableListTitle="Dashboards"
- toastNotifications={Object {}}
- uiSettings={
- Object {
- "get": [MockFunction] {
- "calls": Array [
- Array [
- "dateFormat",
- ],
- ],
- "results": Array [
- Object {
- "type": "return",
- "value": 10,
- },
- ],
- },
- }
- }
- viewItem={null}
- />
-
-`;
-
-exports[`after fetch initialFilter 1`] = `
-
- }
- createItem={[Function]}
- deleteItems={[Function]}
- editItem={[Function]}
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- headingId="dashboardListingHeading"
- initialFilter="my dashboard"
- initialPageSize={10}
- listingLimit={1000}
- noItemsFragment={
-
-
-
-
- }
- body={
-
-
-
-
-
-
-
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
-
-
- }
- />
-
- }
- tableColumns={
- Array [
- Object {
- "field": "title",
- "name": "Title",
- "render": [Function],
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "type",
- "name": "Type",
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "description",
- "name": "Description",
- "sortable": true,
- },
- Object {
- "data-test-subj": "updated-at",
- "dataType": "date",
- "description": "Last update of the saved object",
- "field": "updated_at",
- "name": "Last updated",
- "render": [Function],
- "sortable": true,
- },
- ]
- }
- tableListTitle="Dashboards"
- toastNotifications={Object {}}
- uiSettings={
- Object {
- "get": [MockFunction] {
- "calls": Array [
- Array [
- "dateFormat",
- ],
- ],
- "results": Array [
- Object {
- "type": "return",
- "value": 10,
- },
- ],
- },
- }
- }
- viewItem={[Function]}
- />
-
-`;
-
-exports[`after fetch renders call to action when no dashboards exist 1`] = `
-
- }
- createItem={[Function]}
- deleteItems={[Function]}
- editItem={[Function]}
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- headingId="dashboardListingHeading"
- initialFilter=""
- initialPageSize={10}
- listingLimit={1}
- noItemsFragment={
-
-
-
-
- }
- body={
-
-
-
-
-
-
-
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
-
-
- }
- />
-
- }
- tableColumns={
- Array [
- Object {
- "field": "title",
- "name": "Title",
- "render": [Function],
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "type",
- "name": "Type",
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "description",
- "name": "Description",
- "sortable": true,
- },
- Object {
- "data-test-subj": "updated-at",
- "dataType": "date",
- "description": "Last update of the saved object",
- "field": "updated_at",
- "name": "Last updated",
- "render": [Function],
- "sortable": true,
- },
- ]
- }
- tableListTitle="Dashboards"
- toastNotifications={Object {}}
- uiSettings={
- Object {
- "get": [MockFunction] {
- "calls": Array [
- Array [
- "dateFormat",
- ],
- ],
- "results": Array [
- Object {
- "type": "return",
- "value": 10,
- },
- ],
- },
- }
- }
- viewItem={[Function]}
- />
-
-`;
-
-exports[`after fetch renders table rows 1`] = `
-
- }
- createItem={[Function]}
- deleteItems={[Function]}
- editItem={[Function]}
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- headingId="dashboardListingHeading"
- initialFilter=""
- initialPageSize={10}
- listingLimit={1000}
- noItemsFragment={
-
-
-
-
- }
- body={
-
-
-
-
-
-
-
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
-
-
- }
- />
-
- }
- tableColumns={
- Array [
- Object {
- "field": "title",
- "name": "Title",
- "render": [Function],
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "type",
- "name": "Type",
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "description",
- "name": "Description",
- "sortable": true,
- },
- Object {
- "data-test-subj": "updated-at",
- "dataType": "date",
- "description": "Last update of the saved object",
- "field": "updated_at",
- "name": "Last updated",
- "render": [Function],
- "sortable": true,
- },
- ]
- }
- tableListTitle="Dashboards"
- toastNotifications={Object {}}
- uiSettings={
- Object {
- "get": [MockFunction] {
- "calls": Array [
- Array [
- "dateFormat",
- ],
- ],
- "results": Array [
- Object {
- "type": "return",
- "value": 10,
- },
- ],
- },
- }
- }
- viewItem={[Function]}
- />
-
-`;
-
-exports[`after fetch renders warning when listingLimit is exceeded 1`] = `
-
- }
- createItem={[Function]}
- deleteItems={[Function]}
- editItem={[Function]}
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- headingId="dashboardListingHeading"
- initialFilter=""
- initialPageSize={10}
- listingLimit={1}
- noItemsFragment={
-
-
-
-
- }
- body={
-
-
-
-
-
-
-
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
-
-
- }
- />
-
- }
- tableColumns={
- Array [
- Object {
- "field": "title",
- "name": "Title",
- "render": [Function],
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "type",
- "name": "Type",
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "description",
- "name": "Description",
- "sortable": true,
- },
- Object {
- "data-test-subj": "updated-at",
- "dataType": "date",
- "description": "Last update of the saved object",
- "field": "updated_at",
- "name": "Last updated",
- "render": [Function],
- "sortable": true,
- },
- ]
- }
- tableListTitle="Dashboards"
- toastNotifications={Object {}}
- uiSettings={
- Object {
- "get": [MockFunction] {
- "calls": Array [
- Array [
- "dateFormat",
- ],
- ],
- "results": Array [
- Object {
- "type": "return",
- "value": 10,
- },
- ],
- },
- }
- }
- viewItem={[Function]}
- />
-
-`;
-
-exports[`renders empty page in before initial fetch to avoid flickering 1`] = `
-
- }
- createItem={[Function]}
- deleteItems={[Function]}
- editItem={[Function]}
- entityName="dashboard"
- entityNamePlural="dashboards"
- findItems={[Function]}
- headingId="dashboardListingHeading"
- initialFilter=""
- initialPageSize={10}
- listingLimit={1000}
- noItemsFragment={
-
-
-
-
- }
- body={
-
-
-
-
-
-
-
- ,
- }
- }
- />
-
-
- }
- iconType="dashboardApp"
- title={
-
-
-
- }
- />
-
- }
- tableColumns={
- Array [
- Object {
- "field": "title",
- "name": "Title",
- "render": [Function],
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "type",
- "name": "Type",
- "sortable": true,
- },
- Object {
- "dataType": "string",
- "field": "description",
- "name": "Description",
- "sortable": true,
- },
- Object {
- "data-test-subj": "updated-at",
- "dataType": "date",
- "description": "Last update of the saved object",
- "field": "updated_at",
- "name": "Last updated",
- "render": [Function],
- "sortable": true,
- },
- ]
- }
- tableListTitle="Dashboards"
- toastNotifications={Object {}}
- uiSettings={
- Object {
- "get": [MockFunction] {
- "calls": Array [
- Array [
- "dateFormat",
- ],
- ],
- "results": Array [
- Object {
- "type": "return",
- "value": 10,
- },
- ],
- },
- }
- }
- viewItem={[Function]}
- />
-
-`;
diff --git a/src/plugins/dashboard/public/application/test_helpers/get_sample_dashboard_input.ts b/src/plugins/dashboard/public/application/test_helpers/get_sample_dashboard_input.ts
index 931c2395cd50..1cfddf2a571f 100644
--- a/src/plugins/dashboard/public/application/test_helpers/get_sample_dashboard_input.ts
+++ b/src/plugins/dashboard/public/application/test_helpers/get_sample_dashboard_input.ts
@@ -28,7 +28,7 @@
* under the License.
*/
-import { ViewMode, EmbeddableInput } from '../../embeddable_plugin';
+import { ViewMode, EmbeddableInput } from '../../../../embeddable/public';
import { DashboardContainerInput, DashboardPanelState } from '../embeddable';
export function getSampleDashboardInput(
diff --git a/src/plugins/dashboard/public/application/tests/dashboard_container.test.tsx b/src/plugins/dashboard/public/application/tests/dashboard_container.test.tsx
deleted file mode 100644
index d3198f6e1e31..000000000000
--- a/src/plugins/dashboard/public/application/tests/dashboard_container.test.tsx
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Any modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import { findTestSubject } from '@elastic/eui/lib/test';
-import React from 'react';
-import { mount } from 'enzyme';
-import { nextTick } from 'test_utils/enzyme_helpers';
-import { I18nProvider } from '@osd/i18n/react';
-import { ViewMode, CONTEXT_MENU_TRIGGER, EmbeddablePanel } from '../../embeddable_plugin';
-import { DashboardContainer, DashboardContainerOptions } from '../embeddable/dashboard_container';
-import { getSampleDashboardInput } from '../test_helpers';
-import {
- CONTACT_CARD_EMBEDDABLE,
- ContactCardEmbeddableFactory,
- ContactCardEmbeddableInput,
- ContactCardEmbeddable,
- ContactCardEmbeddableOutput,
- createEditModeAction,
-} from '../../embeddable_plugin_test_samples';
-import { embeddablePluginMock } from '../../../../embeddable/public/mocks';
-import { inspectorPluginMock } from '../../../../inspector/public/mocks';
-import { OpenSearchDashboardsContextProvider } from '../../../../opensearch_dashboards_react/public';
-import { uiActionsPluginMock } from '../../../../ui_actions/public/mocks';
-import { applicationServiceMock } from '../../../../../core/public/mocks';
-
-test('DashboardContainer in edit mode shows edit mode actions', async () => {
- const inspector = inspectorPluginMock.createStartContract();
- const { setup, doStart } = embeddablePluginMock.createInstance();
- const uiActionsSetup = uiActionsPluginMock.createSetupContract();
-
- const editModeAction = createEditModeAction();
- uiActionsSetup.registerAction(editModeAction);
- uiActionsSetup.addTriggerAction(CONTEXT_MENU_TRIGGER, editModeAction);
- setup.registerEmbeddableFactory(
- CONTACT_CARD_EMBEDDABLE,
- new ContactCardEmbeddableFactory((() => null) as any, {} as any)
- );
-
- const start = doStart();
-
- const initialInput = getSampleDashboardInput({ viewMode: ViewMode.VIEW });
- const options: DashboardContainerOptions = {
- application: applicationServiceMock.createStartContract(),
- embeddable: start,
- notifications: {} as any,
- overlays: {} as any,
- inspector: {} as any,
- SavedObjectFinder: () => null,
- ExitFullScreenButton: () => null,
- uiActions: {} as any,
- };
- const container = new DashboardContainer(initialInput, options);
-
- const embeddable = await container.addNewEmbeddable<
- ContactCardEmbeddableInput,
- ContactCardEmbeddableOutput,
- ContactCardEmbeddable
- >(CONTACT_CARD_EMBEDDABLE, {
- firstName: 'Bob',
- });
-
- const component = mount(
-
-
- Promise.resolve([])}
- getAllEmbeddableFactories={(() => []) as any}
- getEmbeddableFactory={(() => null) as any}
- notifications={{} as any}
- application={options.application}
- overlays={{} as any}
- inspector={inspector}
- SavedObjectFinder={() => null}
- />
-
-
- );
-
- const button = findTestSubject(component, 'embeddablePanelToggleMenuIcon');
-
- expect(button.length).toBe(1);
- findTestSubject(component, 'embeddablePanelToggleMenuIcon').simulate('click');
-
- expect(findTestSubject(component, `embeddablePanelContextMenuOpen`).length).toBe(1);
-
- const editAction = findTestSubject(component, `embeddablePanelAction-${editModeAction.id}`);
-
- expect(editAction.length).toBe(0);
-
- container.updateInput({ viewMode: ViewMode.EDIT });
- await nextTick();
- component.update();
- findTestSubject(component, 'embeddablePanelToggleMenuIcon').simulate('click');
- await nextTick();
- component.update();
- expect(findTestSubject(component, 'embeddablePanelContextMenuOpen').length).toBe(0);
- findTestSubject(component, 'embeddablePanelToggleMenuIcon').simulate('click');
- await nextTick();
- component.update();
- expect(findTestSubject(component, 'embeddablePanelContextMenuOpen').length).toBe(1);
-
- await nextTick();
- component.update();
-
- // TODO: Address this.
- // const action = findTestSubject(component, `embeddablePanelAction-${editModeAction.id}`);
- // expect(action.length).toBe(1);
-});
diff --git a/src/plugins/dashboard/public/application/utils/breadcrumbs.ts b/src/plugins/dashboard/public/application/utils/breadcrumbs.ts
index 55934ead7f3d..fa9cef188e57 100644
--- a/src/plugins/dashboard/public/application/utils/breadcrumbs.ts
+++ b/src/plugins/dashboard/public/application/utils/breadcrumbs.ts
@@ -5,7 +5,7 @@
import { i18n } from '@osd/i18n';
import { DashboardConstants } from '../../dashboard_constants';
-import { ViewMode } from '../../embeddable_plugin';
+import { ViewMode } from '../../../../embeddable/public';
export function getLandingBreadcrumbs() {
return [
diff --git a/src/plugins/dashboard/public/application/utils/create_dashboard_app_state.tsx b/src/plugins/dashboard/public/application/utils/create_dashboard_app_state.tsx
index 09b541a5e29b..bd6d55b8bc03 100644
--- a/src/plugins/dashboard/public/application/utils/create_dashboard_app_state.tsx
+++ b/src/plugins/dashboard/public/application/utils/create_dashboard_app_state.tsx
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-import { migrateAppState } from '../lib/migrate_app_state';
+import { migrateAppState } from '../utils/migrate_app_state';
import {
IOsdUrlStateStorage,
createStateContainer,
@@ -15,8 +15,8 @@ import {
DashboardAppStateInUrl,
DashboardServices,
} from '../../types';
-import { ViewMode } from '../../embeddable_plugin';
-import { getDashboardIdFromUrl } from '../lib';
+import { ViewMode } from '../../../../embeddable/public';
+import { getDashboardIdFromUrl } from '../utils';
import { syncQueryStateWithUrl } from '../../../../data/public';
import { SavedObjectDashboard } from '../../saved_dashboards';
diff --git a/src/plugins/dashboard/public/application/utils/create_dashboard_container.tsx b/src/plugins/dashboard/public/application/utils/create_dashboard_container.tsx
index 42ec3460ce24..1c5b06f54e57 100644
--- a/src/plugins/dashboard/public/application/utils/create_dashboard_container.tsx
+++ b/src/plugins/dashboard/public/application/utils/create_dashboard_container.tsx
@@ -24,6 +24,8 @@ import {
DashboardContainer,
DashboardContainerInput,
DashboardPanelState,
+ DashboardEmptyScreen,
+ DashboardEmptyScreenProps,
} from '../embeddable';
import {
ContainerOutput,
@@ -32,12 +34,11 @@ import {
ViewMode,
isErrorEmbeddable,
openAddPanelFlyout,
-} from '../../embeddable_plugin';
+} from '../../../../embeddable/public';
import {
convertPanelStateToSavedDashboardPanel,
convertSavedDashboardPanelToPanelState,
-} from '../lib/embeddable_saved_object_converters';
-import { DashboardEmptyScreen, DashboardEmptyScreenProps } from '../dashboard_empty_screen';
+} from '../utils/embeddable_saved_object_converters';
import {
DashboardAppState,
DashboardAppStateContainer,
@@ -47,7 +48,7 @@ import {
import { getSavedObjectFinder } from '../../../../saved_objects/public';
import { DashboardConstants } from '../../dashboard_constants';
import { SavedObjectDashboard } from '../../saved_dashboards';
-import { migrateLegacyQuery } from '../lib/migrate_legacy_query';
+import { migrateLegacyQuery } from '../utils/migrate_legacy_query';
import { Dashboard } from '../../dashboard';
export const createDashboardContainer = async ({
diff --git a/src/plugins/dashboard/public/application/lib/embeddable_saved_object_converters.test.ts b/src/plugins/dashboard/public/application/utils/embeddable_saved_object_converters.test.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/embeddable_saved_object_converters.test.ts
rename to src/plugins/dashboard/public/application/utils/embeddable_saved_object_converters.test.ts
diff --git a/src/plugins/dashboard/public/application/lib/embeddable_saved_object_converters.ts b/src/plugins/dashboard/public/application/utils/embeddable_saved_object_converters.ts
similarity index 97%
rename from src/plugins/dashboard/public/application/lib/embeddable_saved_object_converters.ts
rename to src/plugins/dashboard/public/application/utils/embeddable_saved_object_converters.ts
index 24630e40500d..8087d236097d 100644
--- a/src/plugins/dashboard/public/application/lib/embeddable_saved_object_converters.ts
+++ b/src/plugins/dashboard/public/application/utils/embeddable_saved_object_converters.ts
@@ -31,7 +31,7 @@
import { omit } from 'lodash';
import { SavedDashboardPanel } from '../../types';
import { DashboardPanelState } from '../embeddable';
-import { SavedObjectEmbeddableInput } from '../../embeddable_plugin';
+import { SavedObjectEmbeddableInput } from '../../../../embeddable/public';
export function convertSavedDashboardPanelToPanelState(
savedDashboardPanel: SavedDashboardPanel
diff --git a/src/plugins/dashboard/public/application/lib/filter_utils.ts b/src/plugins/dashboard/public/application/utils/filter_utils.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/filter_utils.ts
rename to src/plugins/dashboard/public/application/utils/filter_utils.ts
diff --git a/src/plugins/dashboard/public/application/lib/get_app_state_defaults.ts b/src/plugins/dashboard/public/application/utils/get_app_state_defaults.ts
similarity index 96%
rename from src/plugins/dashboard/public/application/lib/get_app_state_defaults.ts
rename to src/plugins/dashboard/public/application/utils/get_app_state_defaults.ts
index 95e5d70be438..a5bd1b0a1bd0 100644
--- a/src/plugins/dashboard/public/application/lib/get_app_state_defaults.ts
+++ b/src/plugins/dashboard/public/application/utils/get_app_state_defaults.ts
@@ -28,7 +28,7 @@
* under the License.
*/
-import { ViewMode } from '../../embeddable_plugin';
+import { ViewMode } from '../../../../embeddable/public';
import { SavedObjectDashboard } from '../../saved_dashboards';
import { DashboardAppStateDefaults } from '../../types';
diff --git a/src/plugins/dashboard/public/application/utils/get_nav_actions.tsx b/src/plugins/dashboard/public/application/utils/get_nav_actions.tsx
index 748e593ac377..3f823f52676d 100644
--- a/src/plugins/dashboard/public/application/utils/get_nav_actions.tsx
+++ b/src/plugins/dashboard/public/application/utils/get_nav_actions.tsx
@@ -14,22 +14,24 @@ import {
showSaveModal,
} from '../../../../saved_objects/public';
import { DashboardAppStateContainer, DashboardServices, NavAction } from '../../types';
-import { DashboardSaveModal } from '../top_nav/save_modal';
-import { TopNavIds } from '../top_nav/top_nav_ids';
+import {
+ DashboardSaveModal,
+ TopNavIds,
+ showCloneModal,
+ showOptionsPopover,
+ UrlParams,
+} from '../components/dashboard_top_nav';
import {
EmbeddableFactoryNotFoundError,
EmbeddableInput,
ViewMode,
isErrorEmbeddable,
openAddPanelFlyout,
-} from '../../embeddable_plugin';
-import { showCloneModal } from '../top_nav/show_clone_modal';
-import { showOptionsPopover } from '../top_nav/show_options_popover';
-import { saveDashboard } from '../lib';
+} from '../../../../embeddable/public';
+import { saveDashboard } from '../utils';
import { DashboardContainer } from '../embeddable/dashboard_container';
import { DashboardConstants, createDashboardEditUrl } from '../../dashboard_constants';
import { unhashUrl } from '../../../../opensearch_dashboards_utils/public';
-import { UrlParams } from '../components/dashboard_top_nav';
import { Dashboard } from '../../dashboard';
interface UrlParamsSelectedMap {
diff --git a/src/plugins/dashboard/public/application/help_menu/help_menu_util.ts b/src/plugins/dashboard/public/application/utils/help_menu_util.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/help_menu/help_menu_util.ts
rename to src/plugins/dashboard/public/application/utils/help_menu_util.ts
diff --git a/src/plugins/dashboard/public/application/utils/index.ts b/src/plugins/dashboard/public/application/utils/index.ts
index 3f96a94264bb..c39da5a9e6be 100644
--- a/src/plugins/dashboard/public/application/utils/index.ts
+++ b/src/plugins/dashboard/public/application/utils/index.ts
@@ -8,3 +8,9 @@ export * from './get_nav_actions';
export * from './get_no_items_message';
export * from './get_table_columns';
export * from './use';
+
+export { addHelpMenuToAppChrome } from './help_menu_util';
+export { saveDashboard } from './save_dashboard';
+export { getAppStateDefaults } from './get_app_state_defaults';
+export { migrateAppState } from './migrate_app_state';
+export { getDashboardIdFromUrl } from './url';
diff --git a/src/plugins/dashboard/public/application/lib/migrate_app_state.test.ts b/src/plugins/dashboard/public/application/utils/migrate_app_state.test.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/migrate_app_state.test.ts
rename to src/plugins/dashboard/public/application/utils/migrate_app_state.test.ts
diff --git a/src/plugins/dashboard/public/application/lib/migrate_app_state.ts b/src/plugins/dashboard/public/application/utils/migrate_app_state.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/migrate_app_state.ts
rename to src/plugins/dashboard/public/application/utils/migrate_app_state.ts
diff --git a/src/plugins/dashboard/public/application/lib/migrate_legacy_query.ts b/src/plugins/dashboard/public/application/utils/migrate_legacy_query.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/migrate_legacy_query.ts
rename to src/plugins/dashboard/public/application/utils/migrate_legacy_query.ts
diff --git a/src/plugins/dashboard/public/application/lib/save_dashboard.ts b/src/plugins/dashboard/public/application/utils/save_dashboard.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/save_dashboard.ts
rename to src/plugins/dashboard/public/application/utils/save_dashboard.ts
diff --git a/src/plugins/dashboard/public/application/utils/stubs.ts b/src/plugins/dashboard/public/application/utils/stubs.ts
index c101f30f4f10..6ed04ea2b00d 100644
--- a/src/plugins/dashboard/public/application/utils/stubs.ts
+++ b/src/plugins/dashboard/public/application/utils/stubs.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-import { ViewMode } from '../../embeddable_plugin';
+import { ViewMode } from '../../../../embeddable/public';
import { DashboardAppState } from '../../types';
export const dashboardAppStateStub: DashboardAppState = {
diff --git a/src/plugins/dashboard/public/application/lib/update_saved_dashboard.ts b/src/plugins/dashboard/public/application/utils/update_saved_dashboard.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/update_saved_dashboard.ts
rename to src/plugins/dashboard/public/application/utils/update_saved_dashboard.ts
diff --git a/src/plugins/dashboard/public/application/lib/url.test.ts b/src/plugins/dashboard/public/application/utils/url.test.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/url.test.ts
rename to src/plugins/dashboard/public/application/utils/url.test.ts
diff --git a/src/plugins/dashboard/public/application/lib/url.ts b/src/plugins/dashboard/public/application/utils/url.ts
similarity index 100%
rename from src/plugins/dashboard/public/application/lib/url.ts
rename to src/plugins/dashboard/public/application/utils/url.ts
diff --git a/src/plugins/dashboard/public/application/utils/use/use_dashboard_app_state.tsx b/src/plugins/dashboard/public/application/utils/use/use_dashboard_app_state.tsx
index e8655a889e4b..84be8484023e 100644
--- a/src/plugins/dashboard/public/application/utils/use/use_dashboard_app_state.tsx
+++ b/src/plugins/dashboard/public/application/utils/use/use_dashboard_app_state.tsx
@@ -9,11 +9,11 @@ import { cloneDeep } from 'lodash';
import { map } from 'rxjs/operators';
import { Subscription, merge } from 'rxjs';
import { IndexPattern, connectToQueryState, opensearchFilters } from '../../../../../data/public';
-import { migrateLegacyQuery } from '../../lib/migrate_legacy_query';
+import { migrateLegacyQuery } from '../../utils/migrate_legacy_query';
import { DashboardServices } from '../../../types';
import { DashboardAppStateContainer } from '../../../types';
-import { migrateAppState, getAppStateDefaults } from '../../lib';
+import { migrateAppState, getAppStateDefaults } from '../../utils';
import { createDashboardGlobalAndAppState, updateStateUrl } from '../create_dashboard_app_state';
import { SavedObjectDashboard } from '../../../saved_dashboards';
import {
diff --git a/src/plugins/dashboard/public/application/utils/use/use_editor_updates.test.ts b/src/plugins/dashboard/public/application/utils/use/use_editor_updates.test.ts
index 35ef05c74452..0e19a01d9ce9 100644
--- a/src/plugins/dashboard/public/application/utils/use/use_editor_updates.test.ts
+++ b/src/plugins/dashboard/public/application/utils/use/use_editor_updates.test.ts
@@ -14,7 +14,7 @@ import { createDashboardServicesMock } from '../mocks';
import { Dashboard } from '../../../dashboard';
import { convertToSerializedDashboard } from '../../../saved_dashboards/_saved_dashboard';
import { setBreadcrumbsForExistingDashboard, setBreadcrumbsForNewDashboard } from '../breadcrumbs';
-import { ViewMode } from '../../../embeddable_plugin';
+import { ViewMode } from '../../../../../embeddable/public';
describe('useEditorUpdates', () => {
const eventEmitter = new EventEmitter();
diff --git a/src/plugins/dashboard/public/attribute_service/attribute_service.tsx b/src/plugins/dashboard/public/attribute_service/attribute_service.tsx
index 2588793fe7f7..2690ebc5e2e3 100644
--- a/src/plugins/dashboard/public/attribute_service/attribute_service.tsx
+++ b/src/plugins/dashboard/public/attribute_service/attribute_service.tsx
@@ -39,7 +39,7 @@ import {
Container,
EmbeddableStart,
EmbeddableFactoryNotFoundError,
-} from '../embeddable_plugin';
+} from '../../../embeddable/public';
import { I18nStart, NotificationsStart } from '../../../../core/public';
import { SavedObjectSaveModal, OnSaveProps, SaveResult } from '../../../saved_objects/public';
diff --git a/src/plugins/dashboard/public/embeddable_plugin.ts b/src/plugins/dashboard/public/embeddable_plugin.ts
deleted file mode 100644
index 3ede8156ee81..000000000000
--- a/src/plugins/dashboard/public/embeddable_plugin.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Any modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-export * from '../../../plugins/embeddable/public';
diff --git a/src/plugins/dashboard/public/embeddable_plugin_test_samples.ts b/src/plugins/dashboard/public/embeddable_plugin_test_samples.ts
deleted file mode 100644
index a3fc916e8308..000000000000
--- a/src/plugins/dashboard/public/embeddable_plugin_test_samples.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Any modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-export * from '../../../plugins/embeddable/public/lib/test_samples';
diff --git a/src/plugins/dashboard/public/types.ts b/src/plugins/dashboard/public/types.ts
index c888eb87c599..d8eaada6d627 100644
--- a/src/plugins/dashboard/public/types.ts
+++ b/src/plugins/dashboard/public/types.ts
@@ -52,8 +52,8 @@ import { SharePluginStart } from 'src/plugins/share/public';
import { UsageCollectionSetup } from 'src/plugins/usage_collection/public';
import { UrlForwardingStart } from 'src/plugins/url_forwarding/public';
import { History } from 'history';
+import { EmbeddableStart, ViewMode } from '../../embeddable/public';
import { NavigationPublicPluginStart as NavigationStart } from '../../navigation/public';
-import { EmbeddableStart, ViewMode } from './embeddable_plugin';
import { SavedDashboardPanel730ToLatest } from '../common';
export interface DashboardCapabilities {
diff --git a/src/plugins/dashboard/public/ui_actions_plugin.ts b/src/plugins/dashboard/public/ui_actions_plugin.ts
deleted file mode 100644
index 7e4578a641e5..000000000000
--- a/src/plugins/dashboard/public/ui_actions_plugin.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * SPDX-License-Identifier: Apache-2.0
- *
- * The OpenSearch Contributors require contributions made to
- * this file be licensed under the Apache-2.0 license or a
- * compatible open source license.
- *
- * Any modifications Copyright OpenSearch Contributors. See
- * GitHub history for details.
- */
-
-/*
- * Licensed to Elasticsearch B.V. under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch B.V. licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-export * from '../../../plugins/ui_actions/public';
diff --git a/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts b/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts
index 81fb2fa21256..3f00636e022b 100644
--- a/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts
+++ b/src/plugins/home/server/services/sample_data/data_sets/ecommerce/saved_objects.ts
@@ -131,7 +131,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[eCommerce] Promotion Tracking',
}),
visState:
- '{"title":"[eCommerce] Promotion Tracking","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"ea20ae70-b88d-11e8-a451-f37365e9f268","color":"rgba(240,138,217,1)","split_mode":"everything","metrics":[{"id":"ea20ae71-b88d-11e8-a451-f37365e9f268","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*trouser*","label":"Revenue Trousers","value_template":"${{value}}"},{"id":"062d77b0-b88e-11e8-a451-f37365e9f268","color":"rgba(191,240,129,1)","split_mode":"everything","metrics":[{"id":"062d77b1-b88e-11e8-a451-f37365e9f268","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*watch*","label":"Revenue Watches","value_template":"${{value}}"},{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"rgba(23,233,230,1)","split_mode":"everything","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*bag*","label":"Revenue Bags","value_template":"${{value}}"},{"id":"faa2c170-b88d-11e8-a451-f37365e9f268","color":"rgba(235,186,180,1)","split_mode":"everything","metrics":[{"id":"faa2c171-b88d-11e8-a451-f37365e9f268","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*cocktail dress*","label":"Revenue Cocktail Dresses","value_template":"${{value}}"}],"time_field":"order_date","index_pattern":"opensearch_dashboards_sample_data_ecommerce","interval":">=12h","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"legend_position":"bottom","annotations":[{"fields":"taxful_total_price","template":"Ring the bell! ${{taxful_total_price}}","index_pattern":"opensearch_dashboards_sample_data_ecommerce","query_string":"taxful_total_price:>250","id":"c8c30be0-b88f-11e8-a451-f37365e9f268","color":"rgba(25,77,51,1)","time_field":"order_date","icon":"fa-bell","ignore_global_filters":1,"ignore_panel_filters":1}]},"aggs":[]}',
+ '{"title":"[eCommerce] Promotion Tracking","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"ea20ae70-b88d-11e8-a451-f37365e9f268","color":"#54B399","split_mode":"everything","metrics":[{"id":"ea20ae71-b88d-11e8-a451-f37365e9f268","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*trouser*","label":"Revenue Trousers","value_template":"${{value}}"},{"id":"062d77b0-b88e-11e8-a451-f37365e9f268","color":"#6092C0","split_mode":"everything","metrics":[{"id":"062d77b1-b88e-11e8-a451-f37365e9f268","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*watch*","label":"Revenue Watches","value_template":"${{value}}"},{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#D36086","split_mode":"everything","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*bag*","label":"Revenue Bags","value_template":"${{value}}"},{"id":"faa2c170-b88d-11e8-a451-f37365e9f268","color":"#9170B8","split_mode":"everything","metrics":[{"id":"faa2c171-b88d-11e8-a451-f37365e9f268","type":"sum","field":"taxful_total_price"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":"0.7","stacked":"none","filter":"products.product_name:*cocktail dress*","label":"Revenue Cocktail Dresses","value_template":"${{value}}"}],"time_field":"order_date","index_pattern":"opensearch_dashboards_sample_data_ecommerce","interval":">=12h","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"legend_position":"bottom","annotations":[{"fields":"taxful_total_price","template":"Ring the bell! ${{taxful_total_price}}","index_pattern":"opensearch_dashboards_sample_data_ecommerce","query_string":"taxful_total_price:>250","id":"c8c30be0-b88f-11e8-a451-f37365e9f268","color":"#E7664C","time_field":"order_date","icon":"fa-bell","ignore_global_filters":1,"ignore_panel_filters":1}]},"aggs":[]}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -174,7 +174,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[eCommerce] Sold Products per Day',
}),
visState:
- '{"title":"[eCommerce] Sold Products per Day","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"gauge","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#68BC00","split_mode":"everything","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Trxns / day"}],"time_field":"order_date","index_pattern":"opensearch_dashboards_sample_data_ecommerce","interval":"1d","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"gauge_color_rules":[{"value":150,"id":"6da070c0-b891-11e8-b645-195edeb9de84","gauge":"rgba(104,188,0,1)","operator":"gte"},{"value":150,"id":"9b0cdbc0-b891-11e8-b645-195edeb9de84","gauge":"rgba(244,78,59,1)","operator":"lt"}],"gauge_width":"15","gauge_inner_width":10,"gauge_style":"half","filter":"","gauge_max":"300"},"aggs":[]}',
+ '{"title":"[eCommerce] Sold Products per Day","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"gauge","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Trxns / day"}],"time_field":"order_date","index_pattern":"opensearch_dashboards_sample_data_ecommerce","interval":"1d","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"gauge_color_rules":[{"value":150,"id":"6da070c0-b891-11e8-b645-195edeb9de84","gauge":"#54B399","operator":"gte"},{"value":150,"id":"9b0cdbc0-b891-11e8-b645-195edeb9de84","gauge":"#E7664C","operator":"lt"}],"gauge_width":"15","gauge_inner_width":10,"gauge_style":"half","filter":"","gauge_max":"300"},"aggs":[]}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -196,8 +196,7 @@ export const getSavedObjects = (): SavedObject[] => [
}),
visState:
'{"title":"[eCommerce] Average Sales Price","type":"gauge","params":{"type":"gauge","addTooltip":true,"addLegend":true,"isDisplayWarning":false,"gauge":{"verticalSplit":false,"extendRange":true,"percentageMode":false,"gaugeType":"Circle","gaugeStyle":"Full","backStyle":"Full","orientation":"vertical","colorSchema":"Green to Red","gaugeColorMode":"Labels","colorsRange":[{"from":0,"to":50},{"from":50,"to":75},{"from":75,"to":100}],"invertColors":true,"labels":{"show":true,"color":"black"},"scale":{"show":false,"labels":false,"color":"#333"},"type":"meter","style":{"bgWidth":0.9,"width":0.9,"mask":false,"bgMask":false,"maskBars":50,"bgFill":"#eee","bgColor":false,"subText":"per order","fontSize":60,"labelColor":true},"minAngle":0,"maxAngle":6.283185307179586}},"aggs":[{"id":"1","enabled":true,"type":"avg","schema":"metric","params":{"field":"taxful_total_price","customLabel":"average spend"}}]}',
- uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 50":"rgb(165,0,38)","50 - 75":"rgb(255,255,190)","75 - 100":"rgb(0,104,55)"}}}',
+ uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -219,8 +218,7 @@ export const getSavedObjects = (): SavedObject[] => [
}),
visState:
'{"title":"[eCommerce] Average Sold Quantity","type":"gauge","params":{"type":"gauge","addTooltip":true,"addLegend":true,"isDisplayWarning":false,"gauge":{"verticalSplit":false,"extendRange":true,"percentageMode":false,"gaugeType":"Circle","gaugeStyle":"Full","backStyle":"Full","orientation":"vertical","colorSchema":"Green to Red","gaugeColorMode":"Labels","colorsRange":[{"from":0,"to":2},{"from":2,"to":3},{"from":3,"to":4}],"invertColors":true,"labels":{"show":true,"color":"black"},"scale":{"show":false,"labels":false,"color":"#333"},"type":"meter","style":{"bgWidth":0.9,"width":0.9,"mask":false,"bgMask":false,"maskBars":50,"bgFill":"#eee","bgColor":false,"subText":"per order","fontSize":60,"labelColor":true},"minAngle":0,"maxAngle":6.283185307179586}},"aggs":[{"id":"1","enabled":true,"type":"avg","schema":"metric","params":{"field":"total_quantity","customLabel":"average items"}}]}',
- uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 2":"rgb(165,0,38)","2 - 3":"rgb(255,255,190)","3 - 4":"rgb(0,104,55)"}}}',
+ uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -263,7 +261,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[eCommerce] Sales Count Map',
}),
visState:
- '{"title":"[eCommerce] Sales Count Map","type":"vega","aggs":[],"params":{"spec":"{\\n $schema: https://vega.github.io/schema/vega/v5.json\\n config: {\\n kibana: {type: \\"map\\", latitude: 25, longitude: -40, zoom: 3}\\n }\\n data: [\\n {\\n name: table\\n url: {\\n index: opensearch_dashboards_sample_data_ecommerce\\n %context%: true\\n %timefield%: order_date\\n body: {\\n size: 0\\n aggs: {\\n gridSplit: {\\n geotile_grid: {field: \\"geoip.location\\", precision: 4, size: 10000}\\n aggs: {\\n gridCentroid: {\\n geo_centroid: {\\n field: \\"geoip.location\\"\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n format: {property: \\"aggregations.gridSplit.buckets\\"}\\n transform: [\\n {\\n type: geopoint\\n projection: projection\\n fields: [\\n gridCentroid.location.lon\\n gridCentroid.location.lat\\n ]\\n }\\n ]\\n }\\n ]\\n scales: [\\n {\\n name: gridSize\\n type: linear\\n domain: {data: \\"table\\", field: \\"doc_count\\"}\\n range: [\\n 50\\n 1000\\n ]\\n }\\n ]\\n marks: [\\n {\\n name: gridMarker\\n type: symbol\\n from: {data: \\"table\\"}\\n encode: {\\n update: {\\n size: {scale: \\"gridSize\\", field: \\"doc_count\\"}\\n xc: {signal: \\"datum.x\\"}\\n yc: {signal: \\"datum.y\\"}\\n }\\n }\\n },\\n {\\n name: gridLabel\\n type: text\\n from: {data: \\"table\\"}\\n encode: {\\n enter: {\\n fill: {value: \\"firebrick\\"}\\n text: {signal: \\"datum.doc_count\\"}\\n }\\n update: {\\n x: {signal: \\"datum.x\\"}\\n y: {signal: \\"datum.y\\"}\\n dx: {value: -6}\\n dy: {value: 6}\\n fontSize: {value: 18}\\n fontWeight: {value: \\"bold\\"}\\n }\\n }\\n }\\n ]\\n}"}}',
+ '{"title":"[eCommerce] Sales Count Map","type":"vega","aggs":[],"params":{"spec":"{\\n $schema: https://vega.github.io/schema/vega/v5.json\\n config: {\\n kibana: {type: \\"map\\", latitude: 25, longitude: -40, zoom: 3}\\n }\\n data: [\\n {\\n name: table\\n url: {\\n index: opensearch_dashboards_sample_data_ecommerce\\n %context%: true\\n %timefield%: order_date\\n body: {\\n size: 0\\n aggs: {\\n gridSplit: {\\n geotile_grid: {field: \\"geoip.location\\", precision: 4, size: 10000}\\n aggs: {\\n gridCentroid: {\\n geo_centroid: {\\n field: \\"geoip.location\\"\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n format: {property: \\"aggregations.gridSplit.buckets\\"}\\n transform: [\\n {\\n type: geopoint\\n projection: projection\\n fields: [\\n gridCentroid.location.lon\\n gridCentroid.location.lat\\n ]\\n }\\n ]\\n }\\n ]\\n scales: [\\n {\\n name: gridSize\\n type: linear\\n domain: {data: \\"table\\", field: \\"doc_count\\"}\\n range: [\\n 50\\n 1000\\n ]\\n }\\n ]\\n marks: [\\n {\\n name: gridMarker\\n type: symbol\\n from: {data: \\"table\\"}\\n encode: {\\n update: {\\n size: {scale: \\"gridSize\\", field: \\"doc_count\\"}\\n xc: {signal: \\"datum.x\\"}\\n yc: {signal: \\"datum.y\\"}\\n }\\n }\\n },\\n {\\n name: gridLabel\\n type: text\\n from: {data: \\"table\\"}\\n encode: {\\n enter: {\\n fill: {value: \\"#E7664C\\"}\\n text: {signal: \\"datum.doc_count\\"}\\n }\\n update: {\\n x: {signal: \\"datum.x\\"}\\n y: {signal: \\"datum.y\\"}\\n dx: {value: -6}\\n dy: {value: 6}\\n fontSize: {value: 18}\\n fontWeight: {value: \\"bold\\"}\\n }\\n }\\n }\\n ]\\n}"}}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -390,7 +388,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: 'Analyze mock eCommerce orders and revenue',
}),
panelsJSON:
- '[{"embeddableConfig":{"vis":{"colors":{"Men\'s Accessories":"#82B5D8","Men\'s Clothing":"#F9BA8F","Men\'s Shoes":"#F29191","Women\'s Accessories":"#F4D598","Women\'s Clothing":"#70DBED","Women\'s Shoes":"#B7DBAB"}}},"gridData":{"x":12,"y":18,"w":36,"h":10,"i":"1"},"panelIndex":"1","version":"7.0.0-alpha1","panelRefName":"panel_0"},{"embeddableConfig":{"vis":{"colors":{"FEMALE":"#6ED0E0","MALE":"#447EBC"},"legendOpen":false}},"gridData":{"x":12,"y":7,"w":12,"h":11,"i":"2"},"panelIndex":"2","version":"7.0.0-alpha1","panelRefName":"panel_1"},{"embeddableConfig":{},"gridData":{"x":0,"y":0,"w":18,"h":7,"i":"3"},"panelIndex":"3","version":"7.0.0-alpha1","panelRefName":"panel_2"},{"embeddableConfig":{},"gridData":{"x":18,"y":0,"w":30,"h":7,"i":"4"},"panelIndex":"4","version":"7.0.0-alpha1","panelRefName":"panel_3"},{"embeddableConfig":{},"gridData":{"x":0,"y":28,"w":48,"h":11,"i":"5"},"panelIndex":"5","version":"7.0.0-alpha1","panelRefName":"panel_4"},{"embeddableConfig":{},"gridData":{"x":0,"y":18,"w":12,"h":10,"i":"6"},"panelIndex":"6","version":"7.0.0-alpha1","panelRefName":"panel_5"},{"embeddableConfig":{},"gridData":{"x":0,"y":7,"w":12,"h":11,"i":"7"},"panelIndex":"7","version":"7.0.0-alpha1","panelRefName":"panel_6"},{"embeddableConfig":{"vis":{"colors":{"0 - 50":"#E24D42","50 - 75":"#EAB839","75 - 100":"#7EB26D"},"defaultColors":{"0 - 50":"rgb(165,0,38)","50 - 75":"rgb(255,255,190)","75 - 100":"rgb(0,104,55)"},"legendOpen":false}},"gridData":{"x":24,"y":7,"w":12,"h":11,"i":"8"},"panelIndex":"8","version":"7.0.0-alpha1","panelRefName":"panel_7"},{"embeddableConfig":{"vis":{"colors":{"0 - 2":"#E24D42","2 - 3":"#F2C96D","3 - 4":"#9AC48A"},"defaultColors":{"0 - 2":"rgb(165,0,38)","2 - 3":"rgb(255,255,190)","3 - 4":"rgb(0,104,55)"},"legendOpen":false}},"gridData":{"x":36,"y":7,"w":12,"h":11,"i":"9"},"panelIndex":"9","version":"7.0.0-alpha1","panelRefName":"panel_8"},{"embeddableConfig":{},"gridData":{"x":0,"y":54,"w":48,"h":18,"i":"10"},"panelIndex":"10","version":"7.0.0-alpha1","panelRefName":"panel_9"},{"embeddableConfig":{"mapZoom":2,"mapCenter":[28.304380682962783,-22.148437500000004]},"gridData":{"x":0,"y":39,"w":24,"h":15,"i":"11"},"panelIndex":"11","version":"7.0.0-alpha1","panelRefName":"panel_10"},{"embeddableConfig":{},"gridData":{"x":24,"y":39,"w":24,"h":15,"i":"12"},"panelIndex":"12","version":"7.0.0-alpha1","panelRefName":"panel_11"}]',
+ '[{"embeddableConfig":{},"gridData":{"x":12,"y":18,"w":36,"h":10,"i":"1"},"panelIndex":"1","version":"7.0.0-alpha1","panelRefName":"panel_0"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":12,"y":7,"w":12,"h":11,"i":"2"},"panelIndex":"2","version":"7.0.0-alpha1","panelRefName":"panel_1"},{"embeddableConfig":{},"gridData":{"x":0,"y":0,"w":18,"h":7,"i":"3"},"panelIndex":"3","version":"7.0.0-alpha1","panelRefName":"panel_2"},{"embeddableConfig":{},"gridData":{"x":18,"y":0,"w":30,"h":7,"i":"4"},"panelIndex":"4","version":"7.0.0-alpha1","panelRefName":"panel_3"},{"embeddableConfig":{},"gridData":{"x":0,"y":28,"w":48,"h":11,"i":"5"},"panelIndex":"5","version":"7.0.0-alpha1","panelRefName":"panel_4"},{"embeddableConfig":{},"gridData":{"x":0,"y":18,"w":12,"h":10,"i":"6"},"panelIndex":"6","version":"7.0.0-alpha1","panelRefName":"panel_5"},{"embeddableConfig":{},"gridData":{"x":0,"y":7,"w":12,"h":11,"i":"7"},"panelIndex":"7","version":"7.0.0-alpha1","panelRefName":"panel_6"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":24,"y":7,"w":12,"h":11,"i":"8"},"panelIndex":"8","version":"7.0.0-alpha1","panelRefName":"panel_7"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":36,"y":7,"w":12,"h":11,"i":"9"},"panelIndex":"9","version":"7.0.0-alpha1","panelRefName":"panel_8"},{"embeddableConfig":{},"gridData":{"x":0,"y":54,"w":48,"h":18,"i":"10"},"panelIndex":"10","version":"7.0.0-alpha1","panelRefName":"panel_9"},{"embeddableConfig":{"mapZoom":2,"mapCenter":[28.304380682962783,-22.148437500000004]},"gridData":{"x":0,"y":39,"w":24,"h":15,"i":"11"},"panelIndex":"11","version":"7.0.0-alpha1","panelRefName":"panel_10"},{"embeddableConfig":{},"gridData":{"x":24,"y":39,"w":24,"h":15,"i":"12"},"panelIndex":"12","version":"7.0.0-alpha1","panelRefName":"panel_11"}]',
optionsJSON: '{"hidePanelTitles":false,"useMargins":true}',
version: 1,
timeRestore: true,
diff --git a/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts b/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts
index a31d76e535cb..36bb8c6d02e4 100644
--- a/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts
+++ b/src/plugins/home/server/services/sample_data/data_sets/flights/saved_objects.ts
@@ -69,7 +69,7 @@ export const getSavedObjects = (): SavedObject[] => [
visState:
'{"title":"[Flights] Flight Count and Average Ticket Price","type":"area","params":{"type":"area","grid":{"categoryLines":false,"style":{"color":"#eee"}},"categoryAxes":[{"id":"CategoryAxis-1","type":"category","position":"bottom","show":true,"style":{},"scale":{"type":"linear"},"labels":{"show":true,"truncate":100},"title":{}}],"valueAxes":[{"id":"ValueAxis-1","name":"LeftAxis-1","type":"value","position":"left","show":true,"style":{},"scale":{"type":"linear","mode":"normal"},"labels":{"show":true,"rotate":0,"filter":false,"truncate":100},"title":{"text":"Average Ticket Price"}},{"id":"ValueAxis-2","name":"RightAxis-1","type":"value","position":"right","show":true,"style":{},"scale":{"type":"linear","mode":"normal"},"labels":{"show":true,"rotate":0,"filter":false,"truncate":100},"title":{"text":"Flight Count"}}],"seriesParams":[{"show":true,"mode":"stacked","type":"area","drawLinesBetweenPoints":true,"showCircles":false,"interpolate":"linear","lineWidth":2,"data":{"id":"5","label":"Flight Count"},"valueAxis":"ValueAxis-2"},{"show":true,"mode":"stacked","type":"line","drawLinesBetweenPoints":false,"showCircles":true,"interpolate":"linear","data":{"id":"4","label":"Average Ticket Price"},"valueAxis":"ValueAxis-1","lineWidth":2}],"addTooltip":true,"addLegend":true,"legendPosition":"right","times":[],"addTimeMarker":false,"radiusRatio":13},"aggs":[{"id":"3","enabled":true,"type":"date_histogram","schema":"segment","params":{"field":"timestamp","interval":"auto","customInterval":"2h","min_doc_count":1,"extended_bounds":{}}},{"id":"5","enabled":true,"type":"count","schema":"metric","params":{"customLabel":"Flight Count"}},{"id":"4","enabled":true,"type":"avg","schema":"metric","params":{"field":"AvgTicketPrice","customLabel":"Average Ticket Price"}},{"id":"2","enabled":true,"type":"avg","schema":"radius","params":{"field":"AvgTicketPrice"}}]}',
uiStateJSON:
- '{"vis":{"legendOpen":true,"colors":{"Average Ticket Price":"#629E51","Flight Count":"#AEA2E0"}}}',
+ '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -166,7 +166,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[Flights] Delays & Cancellations',
}),
visState:
- '{"title":"[Flights] Delays & Cancellations","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"rgba(0,156,224,1)","split_mode":"everything","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"filter_ratio","numerator":"FlightDelay:true"}],"separate_axis":0,"axis_position":"right","formatter":"percent","chart_type":"line","line_width":"2","point_size":"0","fill":0.5,"stacked":"none","label":"Percent Delays"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_flights","interval":">=1h","axis_position":"left","axis_formatter":"number","show_legend":1,"show_grid":1,"annotations":[{"fields":"FlightDelay,Cancelled,Carrier","template":"{{Carrier}}: Flight Delayed and Cancelled!","index_pattern":"opensearch_dashboards_sample_data_flights","query_string":"FlightDelay:true AND Cancelled:true","id":"53b7dff0-4c89-11e8-a66a-6989ad5a0a39","color":"rgba(0,98,177,1)","time_field":"timestamp","icon":"fa-exclamation-triangle","ignore_global_filters":1,"ignore_panel_filters":1}],"legend_position":"bottom"},"aggs":[]}',
+ '{"title":"[Flights] Delays & Cancellations","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"filter_ratio","numerator":"FlightDelay:true"}],"separate_axis":0,"axis_position":"right","formatter":"percent","chart_type":"line","line_width":"2","point_size":"0","fill":0.5,"stacked":"none","label":"Percent Delays"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_flights","interval":">=1h","axis_position":"left","axis_formatter":"number","show_legend":1,"show_grid":1,"annotations":[{"fields":"FlightDelay,Cancelled,Carrier","template":"{{Carrier}}: Flight Delayed and Cancelled!","index_pattern":"opensearch_dashboards_sample_data_flights","query_string":"FlightDelay:true AND Cancelled:true","id":"53b7dff0-4c89-11e8-a66a-6989ad5a0a39","color":"#E7664C","time_field":"timestamp","icon":"fa-exclamation-triangle","ignore_global_filters":1,"ignore_panel_filters":1}],"legend_position":"bottom"},"aggs":[]}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -319,7 +319,7 @@ export const getSavedObjects = (): SavedObject[] => [
visState:
'{"title":"[Flights] Total Flight Delays","type":"gauge","params":{"type":"gauge","addTooltip":true,"addLegend":true,"isDisplayWarning":false,"gauge":{"verticalSplit":false,"extendRange":true,"percentageMode":false,"gaugeType":"Arc","gaugeStyle":"Full","backStyle":"Full","orientation":"vertical","colorSchema":"Blues","gaugeColorMode":"Labels","colorsRange":[{"from":0,"to":75},{"from":75,"to":150},{"from":150,"to":225},{"from":225,"to":300}],"invertColors":true,"labels":{"show":false,"color":"black"},"scale":{"show":false,"labels":false,"color":"#333"},"type":"meter","style":{"bgWidth":0.9,"width":0.9,"mask":false,"bgMask":false,"maskBars":50,"bgFill":"#eee","bgColor":false,"subText":"","fontSize":60,"labelColor":true}}},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{"customLabel":"Total Delays"}}]}',
uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 75":"rgb(8,48,107)","75 - 150":"rgb(55,135,192)","150 - 225":"rgb(171,208,230)","225 - 300":"rgb(247,251,255)"}}}',
+ '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -342,7 +342,7 @@ export const getSavedObjects = (): SavedObject[] => [
visState:
'{"title":"[Flights] Total Flight Cancellations","type":"gauge","params":{"type":"gauge","addTooltip":true,"addLegend":true,"isDisplayWarning":false,"gauge":{"verticalSplit":false,"extendRange":true,"percentageMode":false,"gaugeType":"Arc","gaugeStyle":"Full","backStyle":"Full","orientation":"vertical","colorSchema":"Blues","gaugeColorMode":"Labels","colorsRange":[{"from":0,"to":75},{"from":75,"to":150},{"from":150,"to":225},{"from":225,"to":300}],"invertColors":true,"labels":{"show":false,"color":"black"},"scale":{"show":false,"labels":false,"color":"#333"},"type":"meter","style":{"bgWidth":0.9,"width":0.9,"mask":false,"bgMask":false,"maskBars":50,"bgFill":"#eee","bgColor":false,"subText":"","fontSize":60,"labelColor":true}}},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{"customLabel":"Total Cancellations"}}]}',
uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 75":"rgb(8,48,107)","75 - 150":"rgb(55,135,192)","150 - 225":"rgb(171,208,230)","225 - 300":"rgb(247,251,255)"}}}',
+ '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -365,7 +365,7 @@ export const getSavedObjects = (): SavedObject[] => [
visState:
'{"title":"[Flights] Origin Country vs. Destination Country","type":"heatmap","params":{"type":"heatmap","addTooltip":true,"addLegend":true,"enableHover":false,"legendPosition":"right","times":[],"colorsNumber":5,"colorSchema":"Blues","setColorRange":false,"colorsRange":[],"invertColors":false,"percentageMode":false,"valueAxes":[{"show":false,"id":"ValueAxis-1","type":"value","scale":{"type":"linear","defaultYExtents":false},"labels":{"show":false,"rotate":0,"overwriteColor":false,"color":"#555"}}]},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"group","params":{"field":"OriginCountry","size":5,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing","customLabel":"Origin Country"}},{"id":"3","enabled":true,"type":"terms","schema":"segment","params":{"field":"DestCountry","size":5,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing","customLabel":"Destination Country"}}]}',
uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 22":"rgb(247,251,255)","22 - 44":"rgb(208,225,242)","44 - 66":"rgb(148,196,223)","66 - 88":"rgb(74,152,201)","88 - 110":"rgb(23,100,171)"}}}',
+ '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -569,7 +569,7 @@ export const getSavedObjects = (): SavedObject[] => [
}
),
panelsJSON:
- '[{"panelIndex":"1","gridData":{"x":0,"y":0,"w":32,"h":7,"i":"1"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_0"},{"panelIndex":"3","gridData":{"x":17,"y":7,"w":23,"h":12,"i":"3"},"embeddableConfig":{"vis":{"colors":{"Average Ticket Price":"#0A50A1","Flight Count":"#82B5D8"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_1"},{"panelIndex":"4","gridData":{"x":0,"y":85,"w":48,"h":15,"i":"4"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_2"},{"panelIndex":"5","gridData":{"x":0,"y":7,"w":17,"h":12,"i":"5"},"embeddableConfig":{"vis":{"colors":{"OpenSearch-Air":"#447EBC","BeatsWest":"#65C5DB","OpenSearch Dashboards Airlines":"#BA43A9","Logstash Airways":"#E5AC0E"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_3"},{"panelIndex":"6","gridData":{"x":24,"y":33,"w":24,"h":14,"i":"6"},"embeddableConfig":{"vis":{"colors":{"Carrier Delay":"#5195CE","Late Aircraft Delay":"#1F78C1","NAS Delay":"#70DBED","No Delay":"#BADFF4","Security Delay":"#052B51","Weather Delay":"#6ED0E0"}}},"version":"6.3.0","panelRefName":"panel_4"},{"panelIndex":"7","gridData":{"x":24,"y":19,"w":24,"h":14,"i":"7"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_5"},{"panelIndex":"10","gridData":{"x":0,"y":35,"w":24,"h":12,"i":"10"},"embeddableConfig":{"vis":{"colors":{"Count":"#1F78C1"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_6"},{"panelIndex":"13","gridData":{"x":10,"y":19,"w":14,"h":8,"i":"13"},"embeddableConfig":{"vis":{"colors":{"Count":"#1F78C1"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_7"},{"panelIndex":"14","gridData":{"x":10,"y":27,"w":14,"h":8,"i":"14"},"embeddableConfig":{"vis":{"colors":{"Count":"#1F78C1"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_8"},{"panelIndex":"21","gridData":{"x":0,"y":62,"w":48,"h":8,"i":"21"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_10"},{"panelIndex":"22","gridData":{"x":32,"y":0,"w":16,"h":7,"i":"22"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_11"},{"panelIndex":"23","gridData":{"x":0,"y":70,"w":48,"h":15,"i":"23"},"embeddableConfig":{"mapCenter":[42.19556096274418,9.536742995308601e-7],"mapZoom":1},"version":"6.3.0","panelRefName":"panel_12"},{"panelIndex":"25","gridData":{"x":0,"y":19,"w":10,"h":8,"i":"25"},"embeddableConfig":{"vis":{"defaultColors":{"0 - 50":"rgb(247,251,255)","100 - 150":"rgb(107,174,214)","150 - 200":"rgb(33,113,181)","200 - 250":"rgb(8,48,107)","50 - 100":"rgb(198,219,239)"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_13"},{"panelIndex":"27","gridData":{"x":0,"y":27,"w":10,"h":8,"i":"27"},"embeddableConfig":{"vis":{"defaultColors":{"0 - 50":"rgb(247,251,255)","100 - 150":"rgb(107,174,214)","150 - 200":"rgb(33,113,181)","200 - 250":"rgb(8,48,107)","50 - 100":"rgb(198,219,239)"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_14"},{"panelIndex":"28","gridData":{"x":0,"y":47,"w":24,"h":15,"i":"28"},"embeddableConfig":{"vis":{"defaultColors":{"0 - 11":"rgb(247,251,255)","11 - 22":"rgb(208,225,242)","22 - 33":"rgb(148,196,223)","33 - 44":"rgb(74,152,201)","44 - 55":"rgb(23,100,171)"},"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_15"},{"panelIndex":"29","gridData":{"x":40,"y":7,"w":8,"h":6,"i":"29"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_16"},{"panelIndex":"30","gridData":{"x":40,"y":13,"w":8,"h":6,"i":"30"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_17"},{"panelIndex":"31","gridData":{"x":24,"y":47,"w":24,"h":15,"i":"31"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_18"}]',
+ '[{"panelIndex":"1","gridData":{"x":0,"y":0,"w":32,"h":7,"i":"1"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_0"},{"panelIndex":"3","gridData":{"x":17,"y":7,"w":23,"h":12,"i":"3"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_1"},{"panelIndex":"4","gridData":{"x":0,"y":85,"w":48,"h":15,"i":"4"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_2"},{"panelIndex":"5","gridData":{"x":0,"y":7,"w":17,"h":12,"i":"5"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_3"},{"panelIndex":"6","gridData":{"x":24,"y":33,"w":24,"h":14,"i":"6"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_4"},{"panelIndex":"7","gridData":{"x":24,"y":19,"w":24,"h":14,"i":"7"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_5"},{"panelIndex":"10","gridData":{"x":0,"y":35,"w":24,"h":12,"i":"10"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_6"},{"panelIndex":"13","gridData":{"x":10,"y":19,"w":14,"h":8,"i":"13"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_7"},{"panelIndex":"14","gridData":{"x":10,"y":27,"w":14,"h":8,"i":"14"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_8"},{"panelIndex":"21","gridData":{"x":0,"y":62,"w":48,"h":8,"i":"21"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_10"},{"panelIndex":"22","gridData":{"x":32,"y":0,"w":16,"h":7,"i":"22"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_11"},{"panelIndex":"23","gridData":{"x":0,"y":70,"w":48,"h":15,"i":"23"},"embeddableConfig":{"mapCenter":[42.19556096274418,9.536742995308601e-7],"mapZoom":1},"version":"6.3.0","panelRefName":"panel_12"},{"panelIndex":"25","gridData":{"x":0,"y":19,"w":10,"h":8,"i":"25"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_13"},{"panelIndex":"27","gridData":{"x":0,"y":27,"w":10,"h":8,"i":"27"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_14"},{"panelIndex":"28","gridData":{"x":0,"y":47,"w":24,"h":15,"i":"28"},"embeddableConfig":{"vis":{"legendOpen":false}},"version":"6.3.0","panelRefName":"panel_15"},{"panelIndex":"29","gridData":{"x":40,"y":7,"w":8,"h":6,"i":"29"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_16"},{"panelIndex":"30","gridData":{"x":40,"y":13,"w":8,"h":6,"i":"30"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_17"},{"panelIndex":"31","gridData":{"x":24,"y":47,"w":24,"h":15,"i":"31"},"embeddableConfig":{},"version":"6.3.0","panelRefName":"panel_18"}]',
optionsJSON: '{"hidePanelTitles":false,"useMargins":true}',
version: 1,
timeRestore: true,
diff --git a/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts b/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts
index 46a1f3b6c5ef..ae881354e333 100644
--- a/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts
+++ b/src/plugins/home/server/services/sample_data/data_sets/logs/saved_objects.ts
@@ -45,7 +45,7 @@ export const getSavedObjects = (): SavedObject[] => [
}),
visState:
'{"title":"[Logs] Unique Visitors vs. Average Bytes","type":"area","params":{"type":"area","grid":{"categoryLines":false,"style":{"color":"#eee"}},"categoryAxes":[{"id":"CategoryAxis-1","type":"category","position":"bottom","show":true,"style":{},"scale":{"type":"linear"},"labels":{"show":true,"truncate":100},"title":{}}],"valueAxes":[{"id":"ValueAxis-1","name":"LeftAxis-1","type":"value","position":"left","show":true,"style":{},"scale":{"type":"linear","mode":"normal"},"labels":{"show":true,"rotate":0,"filter":false,"truncate":100},"title":{"text":"Avg. Bytes"}},{"id":"ValueAxis-2","name":"RightAxis-1","type":"value","position":"right","show":true,"style":{},"scale":{"type":"linear","mode":"normal"},"labels":{"show":true,"rotate":0,"filter":false,"truncate":100},"title":{"text":"Unique Visitors"}}],"seriesParams":[{"show":"true","type":"histogram","mode":"stacked","data":{"label":"Avg. Bytes","id":"1"},"drawLinesBetweenPoints":true,"showCircles":true,"interpolate":"linear","valueAxis":"ValueAxis-1"},{"show":true,"mode":"stacked","type":"line","drawLinesBetweenPoints":false,"showCircles":true,"interpolate":"linear","data":{"id":"2","label":"Unique Visitors"},"valueAxis":"ValueAxis-2"}],"addTooltip":true,"addLegend":true,"legendPosition":"right","times":[],"addTimeMarker":false,"radiusRatio":17},"aggs":[{"id":"1","enabled":true,"type":"avg","schema":"metric","params":{"field":"bytes","customLabel":"Avg. Bytes"}},{"id":"2","enabled":true,"type":"cardinality","schema":"metric","params":{"field":"clientip","customLabel":"Unique Visitors"}},{"id":"3","enabled":true,"type":"date_histogram","schema":"segment","params":{"field":"timestamp","interval":"auto","time_zone":"America/Los_Angeles","customInterval":"2h","min_doc_count":1,"extended_bounds":{}}},{"id":"4","enabled":true,"type":"count","schema":"radius","params":{}}]}',
- uiStateJSON: '{"vis":{"colors":{"Avg. Bytes":"#70DBED","Unique Visitors":"#0A437C"}}}',
+ uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -66,7 +66,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[Logs] Visitors Map',
}),
visState:
- '{"title":"[Logs] Visitors Map","type":"vega","aggs":[],"params":{"spec":"{\\n $schema: https://vega.github.io/schema/vega/v5.json\\n config: {\\n kibana: {type: \\"map\\", latitude: 30, longitude: -120, zoom: 3}\\n }\\n data: [\\n {\\n name: table\\n url: {\\n index: opensearch_dashboards_sample_data_logs\\n %context%: true\\n %timefield%: timestamp\\n body: {\\n size: 0\\n aggs: {\\n gridSplit: {\\n geotile_grid: {field: \\"geo.coordinates\\", precision: 5, size: 10000}\\n aggs: {\\n gridCentroid: {\\n geo_centroid: {\\n field: \\"geo.coordinates\\"\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n format: {property: \\"aggregations.gridSplit.buckets\\"}\\n transform: [\\n {\\n type: geopoint\\n projection: projection\\n fields: [\\n gridCentroid.location.lon\\n gridCentroid.location.lat\\n ]\\n }\\n ]\\n }\\n ]\\n scales: [\\n {\\n name: gridSize\\n type: linear\\n domain: {data: \\"table\\", field: \\"doc_count\\"}\\n range: [\\n 50\\n 1000\\n ]\\n }\\n {\\n name: bubbleColor\\n type: linear\\n domain: {\\n data: table\\n field: doc_count\\n }\\n range: [\\"rgb(249, 234, 197)\\",\\"rgb(243, 200, 154)\\",\\"rgb(235, 166, 114)\\", \\"rgb(231, 102, 76)\\"]\\n }\\n ]\\n marks: [\\n {\\n name: gridMarker\\n type: symbol\\n from: {data: \\"table\\"}\\n encode: {\\n update: {\\n fill: {\\n scale: bubbleColor\\n field: doc_count\\n }\\n size: {scale: \\"gridSize\\", field: \\"doc_count\\"}\\n xc: {signal: \\"datum.x\\"}\\n yc: {signal: \\"datum.y\\"}\\n tooltip: {\\n signal: \\"{flights: datum.doc_count}\\"\\n }\\n }\\n }\\n }\\n ]\\n}"}}',
+ '{"title":"[Logs] Visitors Map","type":"vega","aggs":[],"params":{"spec":"{\\n $schema: https://vega.github.io/schema/vega/v5.json\\n config: {\\n kibana: {type: \\"map\\", latitude: 30, longitude: -120, zoom: 3}\\n }\\n data: [\\n {\\n name: table\\n url: {\\n index: opensearch_dashboards_sample_data_logs\\n %context%: true\\n %timefield%: timestamp\\n body: {\\n size: 0\\n aggs: {\\n gridSplit: {\\n geotile_grid: {field: \\"geo.coordinates\\", precision: 5, size: 10000}\\n aggs: {\\n gridCentroid: {\\n geo_centroid: {\\n field: \\"geo.coordinates\\"\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n format: {property: \\"aggregations.gridSplit.buckets\\"}\\n transform: [\\n {\\n type: geopoint\\n projection: projection\\n fields: [\\n gridCentroid.location.lon\\n gridCentroid.location.lat\\n ]\\n }\\n ]\\n }\\n ]\\n scales: [\\n {\\n name: gridSize\\n type: linear\\n domain: {data: \\"table\\", field: \\"doc_count\\"}\\n range: [\\n 50\\n 1000\\n ]\\n }\\n {\\n name: bubbleColor\\n type: linear\\n domain: {\\n data: table\\n field: doc_count\\n }\\n range: [\\"rgb(255, 255, 255)\\",\\"rgb(249, 212, 204)\\",\\"rgb(238, 170, 156)\\", \\"rgb(223, 129, 110)\\"]\\n }\\n ]\\n marks: [\\n {\\n name: gridMarker\\n type: symbol\\n from: {data: \\"table\\"}\\n encode: {\\n update: {\\n fill: {\\n scale: bubbleColor\\n field: doc_count\\n }\\n size: {scale: \\"gridSize\\", field: \\"doc_count\\"}\\n xc: {signal: \\"datum.x\\"}\\n yc: {signal: \\"datum.y\\"}\\n tooltip: {\\n signal: \\"{flights: datum.doc_count}\\"\\n }\\n }\\n }\\n }\\n ]\\n}"}}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -89,8 +89,7 @@ export const getSavedObjects = (): SavedObject[] => [
}),
visState:
'{"title":"[Logs] Heatmap","type":"heatmap","params":{"type":"heatmap","addTooltip":true,"addLegend":true,"enableHover":true,"legendPosition":"right","times":[],"colorsNumber":10,"colorSchema":"Reds","setColorRange":false,"colorsRange":[],"invertColors":false,"percentageMode":false,"valueAxes":[{"show":false,"id":"ValueAxis-1","type":"value","scale":{"type":"linear","defaultYExtents":false},"labels":{"show":false,"rotate":0,"color":"#555","overwriteColor":false}}]},"aggs":[{"id":"1","enabled":true,"type":"cardinality","schema":"metric","params":{"field":"clientip"}},{"id":"3","enabled":true,"type":"terms","schema":"group","params":{"field":"geo.src","size":5,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing","customLabel":"Country Source"}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"hour_of_day","size":25,"order":"asc","orderBy":"_key","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing","customLabel":"Hour of Day"}}]}',
- uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 4":"rgb(255,245,240)","4 - 8":"rgb(254,228,216)","8 - 12":"rgb(253,202,181)","12 - 16":"rgb(252,171,142)","16 - 20":"rgb(252,138,106)","20 - 24":"rgb(251,106,74)","24 - 28":"rgb(241,68,50)","28 - 32":"rgb(217,38,35)","32 - 36":"rgb(188,20,26)","36 - 40":"rgb(152,12,19)"}}}',
+ uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -111,7 +110,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[Logs] Host, Visits and Bytes Table',
}),
visState:
- '{"title":"[Logs] Host, Visits and Bytes Table","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"table","series":[{"id":"bd09d600-e5b1-11e7-bfc2-a1f7e71965a1","color":"#68BC00","split_mode":"everything","metrics":[{"id":"bd09d601-e5b1-11e7-bfc2-a1f7e71965a1","type":"sum","field":"bytes"},{"sigma":"","id":"c9514c90-e5b1-11e7-bfc2-a1f7e71965a1","type":"sum_bucket","field":"bd09d601-e5b1-11e7-bfc2-a1f7e71965a1"}],"seperate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"c0c668d0-e5b1-11e7-bfc2-a1f7e71965a1"}],"label":"Bytes (Total)"},{"id":"b7672c30-a6df-11e8-8b18-1da1dfc50975","color":"#68BC00","split_mode":"everything","metrics":[{"id":"b7672c31-a6df-11e8-8b18-1da1dfc50975","type":"sum","field":"bytes"}],"seperate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"c0c668d0-e5b1-11e7-bfc2-a1f7e71965a1"}],"label":"Bytes (Last Hour)"},{"id":"f2c20700-a6df-11e8-8b18-1da1dfc50975","color":"#68BC00","split_mode":"everything","metrics":[{"id":"f2c20701-a6df-11e8-8b18-1da1dfc50975","type":"cardinality","field":"ip"},{"sigma":"","id":"f46333e0-a6df-11e8-8b18-1da1dfc50975","type":"sum_bucket","field":"f2c20701-a6df-11e8-8b18-1da1dfc50975"}],"seperate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Unique Visits (Total)","color_rules":[{"value":1000,"id":"2e963080-a6e0-11e8-8b18-1da1dfc50975","text":"rgba(211,49,21,1)","operator":"lt"},{"value":1000,"id":"3d4fb880-a6e0-11e8-8b18-1da1dfc50975","text":"rgba(252,196,0,1)","operator":"gte"},{"value":1500,"id":"435f8a20-a6e0-11e8-8b18-1da1dfc50975","text":"rgba(104,188,0,1)","operator":"gte"}],"offset_time":"","value_template":"","trend_arrows":1},{"id":"46fd7fc0-e5b1-11e7-bfc2-a1f7e71965a1","color":"#68BC00","split_mode":"everything","metrics":[{"id":"46fd7fc1-e5b1-11e7-bfc2-a1f7e71965a1","type":"cardinality","field":"ip"}],"seperate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Unique Visits (Last Hour)","color_rules":[{"value":10,"id":"4e90aeb0-a6e0-11e8-8b18-1da1dfc50975","text":"rgba(211,49,21,1)","operator":"lt"},{"value":10,"id":"6d59b1c0-a6e0-11e8-8b18-1da1dfc50975","text":"rgba(252,196,0,1)","operator":"gte"},{"value":25,"id":"77578670-a6e0-11e8-8b18-1da1dfc50975","text":"rgba(104,188,0,1)","operator":"gte"}],"offset_time":"","value_template":"","trend_arrows":1}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"1h","axis_position":"left","axis_formatter":"number","show_legend":1,"show_grid":1,"bar_color_rules":[{"id":"e9b4e490-e1c6-11e7-b4f6-0f68c45f7387"}],"pivot_id":"extension.keyword","pivot_label":"Type","drilldown_url":"","axis_scale":"normal"},"aggs":[]}',
+ '{"title":"[Logs] Host, Visits and Bytes Table","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"table","series":[{"id":"bd09d600-e5b1-11e7-bfc2-a1f7e71965a1","color":"#54B399","split_mode":"everything","metrics":[{"id":"bd09d601-e5b1-11e7-bfc2-a1f7e71965a1","type":"sum","field":"bytes"},{"sigma":"","id":"c9514c90-e5b1-11e7-bfc2-a1f7e71965a1","type":"sum_bucket","field":"bd09d601-e5b1-11e7-bfc2-a1f7e71965a1"}],"seperate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"c0c668d0-e5b1-11e7-bfc2-a1f7e71965a1"}],"label":"Bytes (Total)"},{"id":"b7672c30-a6df-11e8-8b18-1da1dfc50975","color":"#54B399","split_mode":"everything","metrics":[{"id":"b7672c31-a6df-11e8-8b18-1da1dfc50975","type":"sum","field":"bytes"}],"seperate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"c0c668d0-e5b1-11e7-bfc2-a1f7e71965a1"}],"label":"Bytes (Last Hour)"},{"id":"f2c20700-a6df-11e8-8b18-1da1dfc50975","color":"#54B399","split_mode":"everything","metrics":[{"id":"f2c20701-a6df-11e8-8b18-1da1dfc50975","type":"cardinality","field":"ip"},{"sigma":"","id":"f46333e0-a6df-11e8-8b18-1da1dfc50975","type":"sum_bucket","field":"f2c20701-a6df-11e8-8b18-1da1dfc50975"}],"seperate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Unique Visits (Total)","color_rules":[{"value":1000,"id":"2e963080-a6e0-11e8-8b18-1da1dfc50975","text":"#E7664C","operator":"lt"},{"value":1000,"id":"3d4fb880-a6e0-11e8-8b18-1da1dfc50975","text":"#D6BF57","operator":"gte"},{"value":1500,"id":"435f8a20-a6e0-11e8-8b18-1da1dfc50975","text":"#54B399","operator":"gte"}],"offset_time":"","value_template":"","trend_arrows":1},{"id":"46fd7fc0-e5b1-11e7-bfc2-a1f7e71965a1","color":"#54B399","split_mode":"everything","metrics":[{"id":"46fd7fc1-e5b1-11e7-bfc2-a1f7e71965a1","type":"cardinality","field":"ip"}],"seperate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Unique Visits (Last Hour)","color_rules":[{"value":10,"id":"4e90aeb0-a6e0-11e8-8b18-1da1dfc50975","text":"#E7664C","operator":"lt"},{"value":10,"id":"6d59b1c0-a6e0-11e8-8b18-1da1dfc50975","text":"#D6BF57","operator":"gte"},{"value":25,"id":"77578670-a6e0-11e8-8b18-1da1dfc50975","text":"#54B399","operator":"gte"}],"offset_time":"","value_template":"","trend_arrows":1}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"1h","axis_position":"left","axis_formatter":"number","show_legend":1,"show_grid":1,"bar_color_rules":[{"id":"e9b4e490-e1c6-11e7-b4f6-0f68c45f7387"}],"pivot_id":"extension.keyword","pivot_label":"Type","drilldown_url":"","axis_scale":"normal"},"aggs":[]}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -133,8 +132,7 @@ export const getSavedObjects = (): SavedObject[] => [
}),
visState:
'{"title":"[Logs] Goals","type":"gauge","params":{"type":"gauge","addTooltip":true,"addLegend":false,"gauge":{"verticalSplit":false,"extendRange":true,"percentageMode":false,"gaugeType":"Arc","gaugeStyle":"Full","backStyle":"Full","orientation":"vertical","colorSchema":"Green to Red","gaugeColorMode":"Labels","colorsRange":[{"from":0,"to":500},{"from":500,"to":1000},{"from":1000,"to":1500}],"invertColors":true,"labels":{"show":false,"color":"black"},"scale":{"show":true,"labels":false,"color":"#333"},"type":"meter","style":{"bgWidth":0.9,"width":0.9,"mask":false,"bgMask":false,"maskBars":50,"bgFill":"#eee","bgColor":false,"subText":"visitors","fontSize":60,"labelColor":true}},"isDisplayWarning":false},"aggs":[{"id":"1","enabled":true,"type":"cardinality","schema":"metric","params":{"field":"clientip","customLabel":"Unique Visitors"}}]}',
- uiStateJSON:
- '{"vis":{"defaultColors":{"0 - 500":"rgb(165,0,38)","500 - 1000":"rgb(255,255,190)","1000 - 1500":"rgb(0,104,55)"},"colors":{"75 - 100":"#629E51","50 - 75":"#EAB839","0 - 50":"#E24D42","0 - 100":"#E24D42","200 - 300":"#7EB26D","500 - 1000":"#E5AC0E","0 - 500":"#E24D42","1000 - 1500":"#7EB26D"},"legendOpen":true}}',
+ uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@@ -197,7 +195,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: '[Logs] Response Codes Over Time + Annotations',
}),
visState:
- '{"title":"[Logs] Response Codes Over Time + Annotations","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"rgba(115,216,255,1)","split_mode":"terms","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"cardinality","field":"ip"}],"seperate_axis":0,"axis_position":"right","formatter":"percent","chart_type":"line","line_width":"2","point_size":"0","fill":"0.5","stacked":"percent","terms_field":"response.keyword","terms_order_by":"61ca57f2-469d-11e7-af02-69e470af7417","label":"Response Code Count","split_color_mode":"gradient"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":">=4h","axis_position":"left","axis_formatter":"number","show_legend":1,"show_grid":1,"annotations":[{"fields":"geo.src, host","template":"Security Error from {{geo.src}} on {{host}}","index_pattern":"opensearch_dashboards_sample_data_logs","query_string":"tags:error AND tags:security","id":"bd7548a0-2223-11e8-832f-d5027f3c8a47","color":"rgba(211,49,21,1)","time_field":"timestamp","icon":"fa-asterisk","ignore_global_filters":1,"ignore_panel_filters":1}],"legend_position":"bottom","axis_scale":"normal","drop_last_bucket":0},"aggs":[]}',
+ '{"title":"[Logs] Response Codes Over Time + Annotations","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"terms","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"cardinality","field":"ip"}],"seperate_axis":0,"axis_position":"right","formatter":"percent","chart_type":"line","line_width":"2","point_size":"0","fill":"0.5","stacked":"percent","terms_field":"response.keyword","terms_order_by":"61ca57f2-469d-11e7-af02-69e470af7417","label":"Response Code Count","split_color_mode":"gradient"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":">=4h","axis_position":"left","axis_formatter":"number","show_legend":1,"show_grid":1,"annotations":[{"fields":"geo.src, host","template":"Security Error from {{geo.src}} on {{host}}","index_pattern":"opensearch_dashboards_sample_data_logs","query_string":"tags:error AND tags:security","id":"bd7548a0-2223-11e8-832f-d5027f3c8a47","color":"#E7664C","time_field":"timestamp","icon":"fa-asterisk","ignore_global_filters":1,"ignore_panel_filters":1}],"legend_position":"bottom","axis_scale":"normal","drop_last_bucket":0},"aggs":[]}',
uiStateJSON: '{}',
description: '',
version: 1,
@@ -360,7 +358,7 @@ export const getSavedObjects = (): SavedObject[] => [
defaultMessage: "Analyze mock web traffic log data for OpenSearch's website",
}),
panelsJSON:
- '[{"embeddableConfig":{"vis":{"colors":{"Avg. Bytes":"#6ED0E0","Unique Visitors":"#0A437C"},"legendOpen":false}},"gridData":{"x":27,"y":11,"w":21,"h":13,"i":"2"},"panelIndex":"2","version":"7.0.0-alpha1","panelRefName":"panel_0"},{"gridData":{"x":0,"y":49,"w":24,"h":18,"i":"4"},"panelIndex":"4","version":"7.0.0-alpha1","panelRefName":"panel_1"},{"embeddableConfig":{"vis":{"defaultColors":{"0 - 22":"rgb(247,251,255)","22 - 44":"rgb(208,225,242)","44 - 66":"rgb(148,196,223)","66 - 88":"rgb(74,152,201)","88 - 110":"rgb(23,100,171)"},"legendOpen":false}},"gridData":{"x":0,"y":36,"w":24,"h":13,"i":"7"},"panelIndex":"7","version":"6.3.0","panelRefName":"panel_2"},{"embeddableConfig":{"mapCenter":[36.8092847020594,-96.94335937500001],"vis":{"params":{"sort":{"columnIndex":null,"direction":null}}}},"gridData":{"x":27,"y":24,"w":21,"h":12,"i":"9"},"panelIndex":"9","version":"6.3.0","panelRefName":"panel_3"},{"embeddableConfig":{"vis":{"colors":{"0 - 500":"#BF1B00","1000 - 1500":"#7EB26D","500 - 1000":"#F2C96D"},"defaultColors":{"0 - 500":"rgb(165,0,38)","1000 - 1500":"rgb(0,104,55)","500 - 1000":"rgb(255,255,190)"},"legendOpen":false}},"gridData":{"x":10,"y":0,"w":9,"h":11,"i":"11"},"panelIndex":"11","title":"","version":"6.3.0","panelRefName":"panel_4"},{"gridData":{"x":0,"y":24,"w":27,"h":12,"i":"13"},"panelIndex":"13","version":"6.3.0","panelRefName":"panel_5"},{"gridData":{"x":24,"y":36,"w":24,"h":31,"i":"14"},"panelIndex":"14","version":"6.3.0","panelRefName":"panel_6"},{"gridData":{"x":0,"y":11,"w":27,"h":13,"i":"15"},"panelIndex":"15","version":"6.3.0","panelRefName":"panel_7"},{"gridData":{"x":19,"y":0,"w":15,"h":11,"i":"16"},"panelIndex":"16","title":"","version":"6.3.0","panelRefName":"panel_8"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":34,"y":0,"w":14,"h":11,"i":"17"},"panelIndex":"17","version":"6.3.0","panelRefName":"panel_9"},{"embeddableConfig":{},"gridData":{"x":0,"y":0,"w":10,"h":11,"i":"18"},"panelIndex":"18","title":"","version":"7.0.0-alpha1","panelRefName":"panel_10"}]',
+ '[{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":27,"y":11,"w":21,"h":13,"i":"2"},"panelIndex":"2","version":"7.0.0-alpha1","panelRefName":"panel_0"},{"gridData":{"x":0,"y":49,"w":24,"h":18,"i":"4"},"panelIndex":"4","version":"7.0.0-alpha1","panelRefName":"panel_1"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":0,"y":36,"w":24,"h":13,"i":"7"},"panelIndex":"7","version":"6.3.0","panelRefName":"panel_2"},{"embeddableConfig":{"mapCenter":[36.8092847020594,-96.94335937500001],"vis":{"params":{"sort":{"columnIndex":null,"direction":null}}}},"gridData":{"x":27,"y":24,"w":21,"h":12,"i":"9"},"panelIndex":"9","version":"6.3.0","panelRefName":"panel_3"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":10,"y":0,"w":9,"h":11,"i":"11"},"panelIndex":"11","title":"","version":"6.3.0","panelRefName":"panel_4"},{"gridData":{"x":0,"y":24,"w":27,"h":12,"i":"13"},"panelIndex":"13","version":"6.3.0","panelRefName":"panel_5"},{"gridData":{"x":24,"y":36,"w":24,"h":31,"i":"14"},"panelIndex":"14","version":"6.3.0","panelRefName":"panel_6"},{"gridData":{"x":0,"y":11,"w":27,"h":13,"i":"15"},"panelIndex":"15","version":"6.3.0","panelRefName":"panel_7"},{"gridData":{"x":19,"y":0,"w":15,"h":11,"i":"16"},"panelIndex":"16","title":"","version":"6.3.0","panelRefName":"panel_8"},{"embeddableConfig":{"vis":{"legendOpen":false}},"gridData":{"x":34,"y":0,"w":14,"h":11,"i":"17"},"panelIndex":"17","version":"6.3.0","panelRefName":"panel_9"},{"embeddableConfig":{},"gridData":{"x":0,"y":0,"w":10,"h":11,"i":"18"},"panelIndex":"18","title":"","version":"7.0.0-alpha1","panelRefName":"panel_10"}]',
optionsJSON: '{"hidePanelTitles":false,"useMargins":true}',
version: 1,
timeRestore: true,
@@ -873,7 +871,7 @@ export const getSavedObjects = (): SavedObject[] => [
uiStateJSON: '{}',
version: 1,
visState:
- '{"title":"(TSVB) Top destinations count","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"top_n","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"terms","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","terms_size":"5","terms_field":"geo.dest"}],"time_field":"","index_pattern":"","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"bar_color_rules":[{"id":"51d02a70-227c-11ee-89b9-a9479e055b94"}],"time_range_mode":"entire_time_range"}}',
+ '{"title":"(TSVB) Top destinations count","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"top_n","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"terms","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","terms_size":"5","terms_field":"geo.dest"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"bar_color_rules":[{"id":"51d02a70-227c-11ee-89b9-a9479e055b94"}],"time_range_mode":"entire_time_range"}}',
},
id: '80e9a930-227c-11ee-b88b-47a93b5c527c',
migrationVersion: { visualization: '7.10.0' },
@@ -1045,7 +1043,7 @@ export const getSavedObjects = (): SavedObject[] => [
uiStateJSON: '{"table":{"sort":{"column":"_default_","order":"asc"}}}',
version: 1,
visState:
- '{"title":"(TSVB) Bytes by request stats summary","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"table","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"c75df350-22a7-11ee-8c33-437692f62ad1","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"dd26dcd0-2a61-11ee-9b78-47d8b94a8b48"}]},{"id":"c9296480-22a7-11ee-8c33-437692f62ad1","color":"#68BC00","split_mode":"everything","metrics":[{"id":"c9296481-22a7-11ee-8c33-437692f62ad1","type":"avg","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"ed1dcca0-22a7-11ee-8c33-437692f62ad1"}]},{"id":"caa3cf80-22a7-11ee-8c33-437692f62ad1","color":"#68BC00","split_mode":"everything","metrics":[{"id":"caa3cf81-22a7-11ee-8c33-437692f62ad1","type":"min","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"eab16080-22a7-11ee-8c33-437692f62ad1"}]},{"id":"cc20d290-22a7-11ee-8c33-437692f62ad1","color":"#68BC00","split_mode":"everything","metrics":[{"id":"cc20d291-22a7-11ee-8c33-437692f62ad1","type":"max","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"e6051680-22a7-11ee-8c33-437692f62ad1"}]}],"time_field":"","index_pattern":"","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"bar_color_rules":[{"id":"bdf75590-22a7-11ee-8c33-437692f62ad1"}],"pivot_id":"request.keyword","pivot_type":"string","pivot_rows":"20","time_range_mode":"entire_time_range"}}',
+ '{"title":"(TSVB) Bytes by request stats summary","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"table","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"c75df350-22a7-11ee-8c33-437692f62ad1","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"dd26dcd0-2a61-11ee-9b78-47d8b94a8b48"}]},{"id":"c9296480-22a7-11ee-8c33-437692f62ad1","color":"#54B399","split_mode":"everything","metrics":[{"id":"c9296481-22a7-11ee-8c33-437692f62ad1","type":"avg","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"ed1dcca0-22a7-11ee-8c33-437692f62ad1"}]},{"id":"caa3cf80-22a7-11ee-8c33-437692f62ad1","color":"#54B399","split_mode":"everything","metrics":[{"id":"caa3cf81-22a7-11ee-8c33-437692f62ad1","type":"min","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"eab16080-22a7-11ee-8c33-437692f62ad1"}]},{"id":"cc20d290-22a7-11ee-8c33-437692f62ad1","color":"#54B399","split_mode":"everything","metrics":[{"id":"cc20d291-22a7-11ee-8c33-437692f62ad1","type":"max","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","color_rules":[{"id":"e6051680-22a7-11ee-8c33-437692f62ad1"}]}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"bar_color_rules":[{"id":"bdf75590-22a7-11ee-8c33-437692f62ad1"}],"pivot_id":"request.keyword","pivot_type":"string","pivot_rows":"20","time_range_mode":"entire_time_range"}}',
},
id: '009fd930-22a8-11ee-b88b-47a93b5c527c',
migrationVersion: { visualization: '7.10.0' },
@@ -1154,7 +1152,7 @@ export const getSavedObjects = (): SavedObject[] => [
uiStateJSON: '{}',
version: 1,
visState:
- '{"title":"(TSVB) Unique visitors","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"metric","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"cardinality","field":"clientip"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":""}],"time_field":"","index_pattern":"","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"background_color_rules":[{"id":"470e09a0-22a3-11ee-9154-c7376b9c3c25"}],"bar_color_rules":[{"id":"4819fb60-22a3-11ee-9154-c7376b9c3c25"}],"time_range_mode":"entire_time_range"}}',
+ '{"title":"(TSVB) Unique visitors","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"metric","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"cardinality","field":"clientip"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":""}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"background_color_rules":[{"id":"470e09a0-22a3-11ee-9154-c7376b9c3c25"}],"bar_color_rules":[{"id":"4819fb60-22a3-11ee-9154-c7376b9c3c25"}],"time_range_mode":"entire_time_range"}}',
},
id: '9a5e50b0-22a3-11ee-b88b-47a93b5c527c',
migrationVersion: { visualization: '7.10.0' },
@@ -1282,7 +1280,7 @@ export const getSavedObjects = (): SavedObject[] => [
uiStateJSON: '{}',
version: 1,
visState:
- '{"title":"(TSVB) Average bytes by extension","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"gauge","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"terms","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"avg","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"","var_name":"","terms_order_by":"61ca57f2-469d-11e7-af02-69e470af7417","terms_field":"extension.keyword","terms_size":"5"}],"time_field":"","index_pattern":"","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"markdown":"# Average bytes by extension\\n\\n{{#each _all}}\\n- {{ label }}\\n{{/each}}\\n\\nText that is not a quote\\n\\n> Text that is a quote\\n\\n## A second-level heading\\n\\nUse `git status` to list all new or modified files that haven\'t yet been committed.\\n\\nSome basic Git commands are:\\n```\\ngit status\\ngit add\\ngit commit\\n```\\n\\n### A third-level heading\\n\\nTest out the [OpenSearch Dashboards Playground](https://playground.opensearch.org).\\n\\nNavigate to [home](/).\\n\\n![Screenshot of sample data UI in OpenSearch Dashboards](https://opensearch.org/docs/latest/images/dashboards/add-sample-data.png)\\n\\n- list item\\n- list item\\n- list item\\n\\n1. list item\\n2. list item\\n3. list item{{# count.data.formatted }}{{/ count.data.formatted }}{{ count.label }}","time_range_mode":"entire_time_range","bar_color_rules":[{"id":"459b7790-2287-11ee-9154-c7376b9c3c25"}],"gauge_color_rules":[{"value":0,"id":"489a1190-2287-11ee-9154-c7376b9c3c25","gauge":"rgba(1,125,115,1)","operator":"gt"},{"value":6000,"id":"adbd7cb0-2287-11ee-9154-c7376b9c3c25","gauge":"rgba(245,167,0,1)","operator":"gt"},{"value":6500,"id":"b1022060-2287-11ee-9154-c7376b9c3c25","gauge":"rgba(189,39,30,1)","operator":"gt"}],"gauge_width":10,"gauge_inner_width":10,"gauge_style":"half","gauge_max":"7000","filter":{"query":"","language":"kuery"},"gauge_inner_color":null}}',
+ '{"title":"(TSVB) Average bytes by extension","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"gauge","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"terms","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"avg","field":"bytes"}],"separate_axis":0,"axis_position":"right","formatter":"bytes","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"","var_name":"","terms_order_by":"61ca57f2-469d-11e7-af02-69e470af7417","terms_field":"extension.keyword","terms_size":"5"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"markdown":"# Average bytes by extension\\n\\n{{#each _all}}\\n- {{ label }}\\n{{/each}}\\n\\nText that is not a quote\\n\\n> Text that is a quote\\n\\n## A second-level heading\\n\\nUse `git status` to list all new or modified files that haven\'t yet been committed.\\n\\nSome basic Git commands are:\\n```\\ngit status\\ngit add\\ngit commit\\n```\\n\\n### A third-level heading\\n\\nTest out the [OpenSearch Dashboards Playground](https://playground.opensearch.org).\\n\\nNavigate to [home](/).\\n\\n![Screenshot of sample data UI in OpenSearch Dashboards](https://opensearch.org/docs/latest/images/dashboards/add-sample-data.png)\\n\\n- list item\\n- list item\\n- list item\\n\\n1. list item\\n2. list item\\n3. list item{{# count.data.formatted }}{{/ count.data.formatted }}{{ count.label }}","time_range_mode":"entire_time_range","bar_color_rules":[{"id":"459b7790-2287-11ee-9154-c7376b9c3c25"}],"gauge_color_rules":[{"value":0,"id":"489a1190-2287-11ee-9154-c7376b9c3c25","gauge":"rgba(1,125,115,1)","operator":"gt"},{"value":6000,"id":"adbd7cb0-2287-11ee-9154-c7376b9c3c25","gauge":"rgba(245,167,0,1)","operator":"gt"},{"value":6500,"id":"b1022060-2287-11ee-9154-c7376b9c3c25","gauge":"rgba(189,39,30,1)","operator":"gt"}],"gauge_width":10,"gauge_inner_width":10,"gauge_style":"half","gauge_max":"7000","filter":{"query":"","language":"kuery"},"gauge_inner_color":null}}',
},
id: '4ec31b10-2288-11ee-b88b-47a93b5c527c',
migrationVersion: { visualization: '7.10.0' },
@@ -1346,7 +1344,7 @@ export const getSavedObjects = (): SavedObject[] => [
uiStateJSON: '{}',
version: 1,
visState:
- '{"title":"(TSVB) Average machine RAM","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"gauge","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"avg","field":"machine.ram"},{"id":"333bb4d0-2290-11ee-9154-c7376b9c3c25","type":"math","variables":[{"id":"3643ebc0-2290-11ee-9154-c7376b9c3c25","name":"ram","field":"61ca57f2-469d-11e7-af02-69e470af7417"}],"script":"params.ram/20000000000"}],"separate_axis":0,"axis_position":"right","formatter":"percent","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Average RAM","value_template":"","filter":{"query":"","language":"kuery"}}],"time_field":"","index_pattern":"","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"gauge_color_rules":[{"value":0,"id":"e17166f0-228e-11ee-9154-c7376b9c3c25","gauge":"rgba(189,39,30,1)","operator":"gt"}],"gauge_width":10,"gauge_inner_width":10,"gauge_style":"half","time_range_mode":"entire_time_range","gauge_max":"1","filter":{"query":"","language":"kuery"}}}',
+ '{"title":"(TSVB) Average machine RAM","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"gauge","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"avg","field":"machine.ram"},{"id":"333bb4d0-2290-11ee-9154-c7376b9c3c25","type":"math","variables":[{"id":"3643ebc0-2290-11ee-9154-c7376b9c3c25","name":"ram","field":"61ca57f2-469d-11e7-af02-69e470af7417"}],"script":"params.ram/20000000000"}],"separate_axis":0,"axis_position":"right","formatter":"percent","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","label":"Average RAM","value_template":"","filter":{"query":"","language":"kuery"}}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"gauge_color_rules":[{"value":0,"id":"e17166f0-228e-11ee-9154-c7376b9c3c25","gauge":"rgba(189,39,30,1)","operator":"gt"}],"gauge_width":10,"gauge_inner_width":10,"gauge_style":"half","time_range_mode":"entire_time_range","gauge_max":"1","filter":{"query":"","language":"kuery"}}}',
},
id: '19717e00-228f-11ee-b88b-47a93b5c527c',
migrationVersion: { visualization: '7.10.0' },
@@ -1474,7 +1472,7 @@ export const getSavedObjects = (): SavedObject[] => [
uiStateJSON: '{}',
version: 1,
visState:
- '{"title":"(TSVB) Sample static markdown","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"markdown","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none"}],"time_field":"","index_pattern":"","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"markdown":"# A first-level heading\\n\\n- **This is bold text**\\n- _This text is italicized_\\n- ~~This was mistaken text~~\\n- **This text is _extremely_ important**\\n- ***All this text is important***\\n\\nText that is not a quote\\n\\n> Text that is a quote\\n\\n## A second-level heading\\n\\nUse `git status` to list all new or modified files that haven\'t yet been committed.\\n\\nSome basic Git commands are:\\n```\\ngit status\\ngit add\\ngit commit\\n```\\n\\n### A third-level heading\\n\\nTest out the [OpenSearch Dashboards Playground](https://playground.opensearch.org).\\n\\nNavigate to [home](/).\\n\\n![Screenshot of sample data UI in OpenSearch Dashboards](https://opensearch.org/docs/latest/images/dashboards/add-sample-data.png)\\n\\n- list item\\n- list item\\n- list item\\n\\n1. list item\\n2. list item\\n3. list item"}}',
+ '{"title":"(TSVB) Sample static markdown","type":"metrics","aggs":[],"params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"markdown","series":[{"id":"61ca57f1-469d-11e7-af02-69e470af7417","color":"#54B399","split_mode":"everything","split_color_mode":"opensearchDashboards","metrics":[{"id":"61ca57f2-469d-11e7-af02-69e470af7417","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none"}],"time_field":"timestamp","index_pattern":"opensearch_dashboards_sample_data_logs","interval":"","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"tooltip_mode":"show_all","default_index_pattern":"opensearch_dashboards_sample_data_logs","default_timefield":"timestamp","isModelInvalid":false,"markdown":"# A first-level heading\\n\\n- **This is bold text**\\n- _This text is italicized_\\n- ~~This was mistaken text~~\\n- **This text is _extremely_ important**\\n- ***All this text is important***\\n\\nText that is not a quote\\n\\n> Text that is a quote\\n\\n## A second-level heading\\n\\nUse `git status` to list all new or modified files that haven\'t yet been committed.\\n\\nSome basic Git commands are:\\n```\\ngit status\\ngit add\\ngit commit\\n```\\n\\n### A third-level heading\\n\\nTest out the [OpenSearch Dashboards Playground](https://playground.opensearch.org).\\n\\nNavigate to [home](/).\\n\\n![Screenshot of sample data UI in OpenSearch Dashboards](https://opensearch.org/docs/latest/images/dashboards/add-sample-data.png)\\n\\n- list item\\n- list item\\n- list item\\n\\n1. list item\\n2. list item\\n3. list item"}}',
},
id: '4c6a47e0-2291-11ee-b88b-47a93b5c527c',
migrationVersion: { visualization: '7.10.0' },
diff --git a/src/plugins/vis_default_editor/public/_default.scss b/src/plugins/vis_default_editor/public/_default.scss
index 8a71ee4f04c9..7b563b907164 100644
--- a/src/plugins/vis_default_editor/public/_default.scss
+++ b/src/plugins/vis_default_editor/public/_default.scss
@@ -12,7 +12,6 @@
*/
.visEditor__collapsibleSidebar {
- background: $euiColorLightestShade;
min-width: $vis-editor-sidebar-min-width;
max-width: 100%;
position: relative;
diff --git a/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js b/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js
index f9b9f99741c3..6d35ae717429 100644
--- a/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js
+++ b/src/plugins/vis_type_vega/public/data_model/vega_parser.test.js
@@ -106,6 +106,9 @@ describe(`VegaParser._setDefaultColors`, () => {
fill: euiThemeVars.euiColorDarkestShade,
},
},
+ text: {
+ fill: euiThemeVars.euiTextColor,
+ },
title: {
color: euiThemeVars.euiColorDarkestShade,
},
@@ -132,6 +135,7 @@ describe(`VegaParser._setDefaultColors`, () => {
rule: { stroke: '#54B399' },
shape: { stroke: '#54B399' },
symbol: { fill: '#54B399' },
+ text: { fill: euiThemeVars.euiTextColor },
trail: { fill: '#54B399' },
style: {
'group-title': {
diff --git a/src/plugins/vis_type_vega/public/data_model/vega_parser.ts b/src/plugins/vis_type_vega/public/data_model/vega_parser.ts
index 4bdd724dbead..0f0f9b32bb4b 100644
--- a/src/plugins/vis_type_vega/public/data_model/vega_parser.ts
+++ b/src/plugins/vis_type_vega/public/data_model/vega_parser.ts
@@ -749,6 +749,8 @@ The URL is an identifier only. OpenSearch Dashboards and your browser will never
if (this.isVegaLite) {
// Vega-Lite: set default color, works for fill and strike -- config: { mark: { color: '#54B399' }}
this._setDefaultValue(defaultColor, 'config', 'mark', 'color');
+ // By default text marks should use theme-aware text color
+ this._setDefaultValue(euiThemeVars.euiTextColor, 'config', 'text', 'fill');
} else {
// Vega - global mark has very strange behavior, must customize each mark type individually
// https://github.com/vega/vega/issues/1083
@@ -765,6 +767,8 @@ The URL is an identifier only. OpenSearch Dashboards and your browser will never
this._setDefaultValue(defaultColor, 'config', 'rule', 'stroke');
this._setDefaultValue(defaultColor, 'config', 'shape', 'stroke');
this._setDefaultValue(defaultColor, 'config', 'symbol', 'fill');
+ // By default text marks should use theme-aware text color
+ this._setDefaultValue(euiThemeVars.euiTextColor, 'config', 'text', 'fill');
this._setDefaultValue(defaultColor, 'config', 'trail', 'fill');
}
}
diff --git a/yarn.lock b/yarn.lock
index 6dcb4f4b7426..60e975802839 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6151,6 +6151,13 @@ commander@^5.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+comment-stripper@^0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/comment-stripper/-/comment-stripper-0.0.4.tgz#e8d61366d362779ea225c764f05cca6c950f8a2c"
+ integrity sha512-4K87KyAmZtZmAUznIJuVsBB7v328V4GBL2wVhno71aunUymMfYBVaAWITH4jrH6uI7NbxpczSdl7NysHx+XfYg==
+ dependencies:
+ loader-utils "^2.0.0"
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -17104,10 +17111,10 @@ tinycolor2@^1.0.0, tinycolor2@^1.4.1:
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==
-tinygradient@0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tinygradient/-/tinygradient-0.4.3.tgz#0a8dfde56f8865deec4c435a51bd5b0c0dec59fa"
- integrity sha512-tBPYQSs6eWukzzAITBSmqcOwZCKACvRa/XjPPh1mj4mnx4G3Drm51HxyCTU/TKnY8kG4hmTe5QlOh9O82aNtJQ==
+tinygradient@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/tinygradient/-/tinygradient-1.1.5.tgz#0fb855ceb18d96b21ba780b51a8012033b2530ef"
+ integrity sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==
dependencies:
"@types/tinycolor2" "^1.4.0"
tinycolor2 "^1.0.0"