diff --git a/src/core_plugins/kibana/_hacks.scss b/src/core_plugins/kibana/_hacks.scss deleted file mode 100644 index e69de29bb2d1d6..00000000000000 diff --git a/src/core_plugins/kibana/public/index.scss b/src/core_plugins/kibana/public/index.scss index 40423df3cfaf49..36774e9ae9bc9e 100644 --- a/src/core_plugins/kibana/public/index.scss +++ b/src/core_plugins/kibana/public/index.scss @@ -10,6 +10,11 @@ @import './visualize/index'; @import 'ui/public/vis/index'; +// Also import Timelion in case of embedding chart into dashboard +// SASSTODO: Remove once the pipeline imports all compiled CSS files always +@import '../../timelion/public/directives/index'; +@import '../../timelion/public/vis/index'; + // Dashboard styles // MUST STAY AT THE BOTTOM BECAUSE OF DARK THEME IMPORTS @import './dashboard/index'; diff --git a/src/core_plugins/timelion/index.js b/src/core_plugins/timelion/index.js index 66a082dfa0d2ad..d9d8267b92d1af 100644 --- a/src/core_plugins/timelion/index.js +++ b/src/core_plugins/timelion/index.js @@ -27,6 +27,7 @@ export default function (kibana) { description: 'Time series expressions for everything', icon: 'plugins/timelion/icon.svg', main: 'plugins/timelion/app', + styleSheetPath: `${__dirname}/public/index.scss`, }, hacks: [ 'plugins/timelion/lib/panel_registry', diff --git a/src/core_plugins/timelion/public/_app.scss b/src/core_plugins/timelion/public/_app.scss new file mode 100644 index 00000000000000..591d1f801fef38 --- /dev/null +++ b/src/core_plugins/timelion/public/_app.scss @@ -0,0 +1,17 @@ + + +.timApp { + position: relative; + + [ng-click] { + cursor: pointer; + } +} + +.timApp__container { + margin: $euiSizeM; +} + +.timApp__stats { + font-weight: $euiFontWeightRegular; +} diff --git a/src/core_plugins/timelion/public/app.js b/src/core_plugins/timelion/public/app.js index 316a9704b5c3d3..bfc4047294cc65 100644 --- a/src/core_plugins/timelion/public/app.js +++ b/src/core_plugins/timelion/public/app.js @@ -38,8 +38,6 @@ require('plugins/timelion/directives/timelion_expression_input'); require('plugins/timelion/directives/timelion_help/timelion_help'); require('plugins/timelion/directives/timelion_interval/timelion_interval'); -require('plugins/timelion/app.less'); - document.title = 'Timelion - Kibana'; const app = require('ui/modules').get('apps/timelion', []); diff --git a/src/core_plugins/timelion/public/app.less b/src/core_plugins/timelion/public/app.less deleted file mode 100644 index 1112fc01f6bb58..00000000000000 --- a/src/core_plugins/timelion/public/app.less +++ /dev/null @@ -1,210 +0,0 @@ -@import "~ui/styles/variables.less"; -@import (reference) "~ui/styles/mixins"; -@import './chart.less'; -@import './suggestions.less'; - -[chart] { - height: 100%; - width: 100%; - display: flex; - flex-direction: column; -} - -.timelion { - position: relative; - - .config .list-group-item .container-fluid { - background-color: transparent; - padding: 0; - } -} - -.timelionHelpKeyboardTipsSection { - &:last-child { - margin-bottom: 0; - } -} - -/** - * 1. Anchor suggestions beneath input. - * 2. Allow for option of positioning suggestions absolutely. - */ -.timelionExpressionInputContainer { - flex: 1 1 auto; - display: flex; - flex-direction: column; /* 1 */ - position: relative; /* 2 */ -} - -.timelionExpressionInput { - min-height: 65px; -} - -.timelion-container { - margin: 20px; -} - -.timelion-container-drawer { - position: fixed; - bottom: 0px; -} - -.timelion-container-drawer-tab { - width: 100%; - background-color: @gray-lighter; -} - -.timelion-subnav { - background-color: @gray-lighter; - margin: 0px -} - -.timelion-stats { - font-weight: normal; -} - -.timelion-buttons { - position: absolute; - right: 0px; - display: inline-block; - padding: 5px 20px; - background-color: @navbar-default-bg; - border-bottom-left-radius: @border-radius-base; - - a { - margin: 5px; - color: #000; - } -} - -[ng-click] { - cursor: pointer; -} - -.chart-container { - display: inline-block; - cursor: pointer; - position: relative; - box-sizing: border-box; - border: 2px dashed transparent; - padding-left: 0px !important; - padding-right: 0px !important; - margin-bottom: 10px; - - &.active { - border-color: #ccc; - } -} - -.chart-container.running { - opacity: 0.50; -} - -timelion-interval { - display: flex; -} - -.timelionFunctionsDropdownContent { - height: 310px; - overflow-y: auto; -} - -.timelionFunctionsTable { - background-color: white; -} - -.timelionFunctionsTableRow { - &:hover { - background-color: #f9f9f9; - } -} - -/** - * 1. Override bootstrap .table styles. - */ -.timelionFunctionDetailsTable { - background-color: #f9f9f9 !important; // 1 -} - -.doc-container-content { - position: relative; -} - -.doc-container-buttons { - position: relative; - text-align: center; - height: 40px; - - .btn-doc-prev { - position: absolute; - left: 0px; - } - - .btn-doc-next { - position: absolute; - right: 0px; - } -} - -.cell-actions { - position: absolute; - bottom:5px; - left:5px; - line-height: 10px; - - > .cell-action, - > .cell-id { - display: inline-block; - font-size: 10px; - text-align: center; - width: 20px; - height: 20px; - border-radius: 10px; - border: 1px solid #666; - padding: 3px; - font-weight: bold; - background-color: #ccc; - opacity: 0.50; - z-index: 10; - } - - .cell-action { - opacity: 0; - - &:focus { - opacity: 1; - } - } -} - -.chart-container:hover { - .cell-action { - opacity: 0.50; - &:hover { - opacity: 1; - } - } -} - -.legendLabel { - //max-width: 210px; - white-space: nowrap; - text-overflow: ellipsis; - overflow-x: hidden; - line-height: normal; -} - -.legendColorBox { - vertical-align: middle; -} - -.ngLegendValue:focus, -.ngLegendValue:hover { - text-decoration: underline; -} - -.ngLegendValueNumber { - margin-left: 5px; - margin-right: 5px; - font-weight: bold; -} diff --git a/src/core_plugins/timelion/public/chart.less b/src/core_plugins/timelion/public/chart.less deleted file mode 100644 index 97bb859d78901b..00000000000000 --- a/src/core_plugins/timelion/public/chart.less +++ /dev/null @@ -1,35 +0,0 @@ -.chart-top-title { - flex: 0; - text-align: center; - font-weight: bold; - font-size: 11px; -} - -.chart-canvas { - min-width: 100%; - flex: 1; - overflow: hidden; -} - -.timelionLegendCaption { - padding: 0px; - color: #545454; - white-space: nowrap; - font-weight: bold; -} - -.tab-dashboard.theme-dark .timelionLegendCaption { - color: #aaaaaa; -} - -.tab-dashboard.theme-dark .ngLegendValue { - color: #aaaaaa; -} - -.tab-dashboard.theme-dark .flot-tick-label { - color: #aaaaaa; -} - -.timelionExpressionInput { - cursor: text !important; -} diff --git a/src/core_plugins/timelion/public/directives/_index.scss b/src/core_plugins/timelion/public/directives/_index.scss new file mode 100644 index 00000000000000..6ee2f81539032f --- /dev/null +++ b/src/core_plugins/timelion/public/directives/_index.scss @@ -0,0 +1,6 @@ +@import './timelion_expression_input'; +@import './cells/index'; +@import './chart/index'; +@import './timelion_expression_suggestions/index'; +@import './timelion_help/index'; +@import './timelion_interval/index'; diff --git a/src/core_plugins/timelion/public/directives/_timelion_expression_input.scss b/src/core_plugins/timelion/public/directives/_timelion_expression_input.scss new file mode 100644 index 00000000000000..571c7a109f967a --- /dev/null +++ b/src/core_plugins/timelion/public/directives/_timelion_expression_input.scss @@ -0,0 +1,16 @@ +/** + * 1. Anchor suggestions beneath input. + * 2. Allow for option of positioning suggestions absolutely. + */ + +.timExpressionInput__container { + flex: 1 1 auto; + display: flex; + flex-direction: column; /* 1 */ + position: relative; /* 2 */ +} + +.timExpressionInput { + cursor: text !important; + min-height: $euiSizeXL * 2; +} diff --git a/src/core_plugins/timelion/public/directives/cells/_cells.scss b/src/core_plugins/timelion/public/directives/cells/_cells.scss new file mode 100644 index 00000000000000..08a2423773d808 --- /dev/null +++ b/src/core_plugins/timelion/public/directives/cells/_cells.scss @@ -0,0 +1,62 @@ +.timCell { + display: inline-block; + cursor: pointer; + position: relative; + box-sizing: border-box; + border: 2px dashed transparent; + padding-left: 0px !important; + padding-right: 0px !important; + margin-bottom: $euiSizeM; + + &.active { + border-color: $euiColorLightShade; + } +} + +.timCell.running { + opacity: 0.50; +} + + +.timCell__actions { + position: absolute; + bottom: $euiSizeXS; + left: $euiSizeXS; + + > .timCell__action, + > .timCell__id { + @include euiFontSizeXS; + font-weight: $euiFontWeightBold; + color: $euiColorMediumShade; + display: inline-block; + text-align: center; + width: $euiSizeL; + height: $euiSizeL; + line-height: $euiSizeL; + border-radius: $euiSizeL/2; + border: $euiBorderThin; + background-color: $euiColorLightestShade; + z-index: $euiZLevel1; + } + + > .timCell__action { + opacity: 0; + + &:focus { + opacity: 1; + } + + &:hover, + &:focus { + color: $euiTextColor; + border-color: $euiColorMediumShade; + background-color: $euiColorLightShade; + } + } +} + +.timCell:hover { + .timCell__action { + opacity: 1; + } +} diff --git a/src/core_plugins/timelion/public/directives/cells/_index.scss b/src/core_plugins/timelion/public/directives/cells/_index.scss new file mode 100644 index 00000000000000..8611b4d8ba1d05 --- /dev/null +++ b/src/core_plugins/timelion/public/directives/cells/_index.scss @@ -0,0 +1 @@ +@import './cells'; diff --git a/src/core_plugins/timelion/public/directives/cells/cells.html b/src/core_plugins/timelion/public/directives/cells/cells.html index d1acf0e21b174e..6f74580fe35130 100644 --- a/src/core_plugins/timelion/public/directives/cells/cells.html +++ b/src/core_plugins/timelion/public/directives/cells/cells.html @@ -5,7 +5,7 @@
-
-
-
{{$index + 1}}
+
+
+
{{$index + 1}}