From 0a7829fcfec4274a25cbfcd3037f61a96005583a Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Fri, 9 Mar 2018 16:23:35 +0800 Subject: [PATCH] Replace less with scss --- package.json | 6 +- src/less/dark/variables.less | 52 -- src/less/default/variables.less | 50 -- src/less/forest/variables.less | 52 -- src/less/neutral/variables.less | 54 --- src/mermaidAPI.js | 8 +- .../dark/classDiagram.scss} | 42 +- .../dark/flow.less => themes/dark/flow.scss} | 18 +- .../gantt.less => themes/dark/gantt.scss} | 62 +-- .../dark/gitGraph.scss} | 0 .../mermaid.less => themes/dark/mermaid.scss} | 4 +- .../dark/sequenceDiagram.scss} | 34 +- src/themes/dark/variables.scss | 52 ++ .../default/classDiagram.scss} | 42 +- .../flow.less => themes/default/flow.scss} | 16 +- .../gantt.less => themes/default/gantt.scss} | 62 +-- .../default/mermaid.scss} | 4 +- .../default/sequenceDiagram.scss} | 34 +- src/themes/default/variables.scss | 50 ++ .../forest/classDiagram.scss} | 42 +- .../flow.less => themes/forest/flow.scss} | 16 +- .../gantt.less => themes/forest/gantt.scss} | 62 +-- .../forest/mermaid.scss} | 4 +- .../forest/sequenceDiagram.scss} | 34 +- src/themes/forest/variables.scss | 52 ++ .../neutral/classDiagram.scss} | 42 +- .../flow.less => themes/neutral/flow.scss} | 16 +- .../gantt.less => themes/neutral/gantt.scss} | 62 +-- .../neutral/mermaid.scss} | 4 +- .../neutral/sequenceDiagram.scss} | 34 +- src/themes/neutral/variables.scss | 54 +++ todo.md | 4 +- webpack.config.base.js | 8 +- yarn.lock | 455 +++++++++++++++--- 34 files changed, 926 insertions(+), 605 deletions(-) delete mode 100644 src/less/dark/variables.less delete mode 100644 src/less/default/variables.less delete mode 100644 src/less/forest/variables.less delete mode 100644 src/less/neutral/variables.less rename src/{less/dark/classDiagram.less => themes/dark/classDiagram.scss} (54%) rename src/{less/dark/flow.less => themes/dark/flow.scss} (54%) rename src/{less/dark/gantt.less => themes/dark/gantt.scss} (66%) rename src/{less/dark/gitGraph.less => themes/dark/gitGraph.scss} (100%) rename src/{less/dark/mermaid.less => themes/dark/mermaid.scss} (88%) rename src/{less/dark/sequenceDiagram.less => themes/dark/sequenceDiagram.scss} (57%) create mode 100644 src/themes/dark/variables.scss rename src/{less/neutral/classDiagram.less => themes/default/classDiagram.scss} (54%) rename src/{less/default/flow.less => themes/default/flow.scss} (58%) rename src/{less/default/gantt.less => themes/default/gantt.scss} (66%) rename src/{less/default/mermaid.less => themes/default/mermaid.scss} (88%) rename src/{less/forest/sequenceDiagram.less => themes/default/sequenceDiagram.scss} (57%) create mode 100644 src/themes/default/variables.scss rename src/{less/forest/classDiagram.less => themes/forest/classDiagram.scss} (54%) rename src/{less/forest/flow.less => themes/forest/flow.scss} (62%) rename src/{less/forest/gantt.less => themes/forest/gantt.scss} (66%) rename src/{less/forest/mermaid.less => themes/forest/mermaid.scss} (88%) rename src/{less/default/sequenceDiagram.less => themes/forest/sequenceDiagram.scss} (57%) create mode 100644 src/themes/forest/variables.scss rename src/{less/default/classDiagram.less => themes/neutral/classDiagram.scss} (54%) rename src/{less/neutral/flow.less => themes/neutral/flow.scss} (58%) rename src/{less/neutral/gantt.less => themes/neutral/gantt.scss} (66%) rename src/{less/neutral/mermaid.less => themes/neutral/mermaid.scss} (88%) rename src/{less/neutral/sequenceDiagram.less => themes/neutral/sequenceDiagram.scss} (57%) create mode 100644 src/themes/neutral/variables.scss diff --git a/package.json b/package.json index bad580589..b0fcb77e3 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "build": "webpack --progress --colors", "build:watch": "yarn build --watch", "release": "yarn build -p --config webpack.config.prod.babel.js", - "upgrade": "yarn-upgrade-all && yarn remove less jasmine && yarn add --dev less@2.7.3 jasmine@2.99.0", + "upgrade": "yarn-upgrade-all && yarn remove jasmine && yarn add --dev jasmine@2.99.0", "lint": "standard", "karma": "node -r babel-register node_modules/.bin/karma start karma.conf.js", "test": "yarn lint && yarn karma", @@ -66,9 +66,9 @@ "karma-jasmine": "^1.1.1", "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^2.0.13", - "less": "2.7.3", - "less-loader": "^4.0.6", + "node-sass": "^4.7.2", "puppeteer": "^1.1.1", + "sass-loader": "^6.0.7", "standard": "^11.0.0", "style-loader": "^0.20.2", "webpack": "^4.1.1", diff --git a/src/less/dark/variables.less b/src/less/dark/variables.less deleted file mode 100644 index 03d810936..000000000 --- a/src/less/dark/variables.less +++ /dev/null @@ -1,52 +0,0 @@ -@mainBkg: #BDD5EA; -@secondBkg: #6D6D65; -@mainContrastColor: lightgrey; -@darkTextColor: #323D47; -@lineColor: @mainContrastColor; -@border1: #81B1DB; -@border2: rgba(255, 255, 255, 0.25); -@arrowheadColor: @mainContrastColor; - -/* Flowchart variables */ - -@nodeBkg: @mainBkg; -@nodeBorder: purple; -@clusterBkg: @secondBkg; -@clusterBorder: @border2; -@defaultLinkColor: @lineColor; -@titleColor: #F9FFFE; -@edgeLabelBackground: #e8e8e8; - -/* Sequence Diagram variables */ - -@actorBorder: @border1; -@actorBkg: @mainBkg; -@actorTextColor: black; -@actorLineColor: @mainContrastColor; -@signalColor: @mainContrastColor; -@signalTextColor: @mainContrastColor; -@labelBoxBkgColor: @actorBkg; -@labelBoxBorderColor: @actorBorder; -@labelTextColor: @mainContrastColor; -@noteBorderColor: @border2; -@noteBkgColor: #fff5ad; - -/* Gantt chart variables */ - -@sectionBkgColor: rgba(255, 255, 255, 0.3); -@altSectionBkgColor: white; -@sectionBkgColor2: #EAE8B9; -@taskBorderColor: rgba(255, 255, 255, 0.5); -@taskBkgColor: @mainBkg; -@taskTextColor: @darkTextColor; -@taskTextOutsideColor: @taskTextLightColor; -@activeTaskBorderColor: rgba(255, 255, 255, 0.5); -@activeTaskBkgColor: #81B1DB; -@gridColor: @mainContrastColor; -@doneTaskBkgColor: @mainContrastColor; -@doneTaskBorderColor: grey; -@critBorderColor: #E83737; -@critBkgColor: #E83737; -@taskTextLightColor: @mainContrastColor; -@taskTextDarkColor: @darkTextColor; -@todayLineColor: #DB5757; diff --git a/src/less/default/variables.less b/src/less/default/variables.less deleted file mode 100644 index e448f488c..000000000 --- a/src/less/default/variables.less +++ /dev/null @@ -1,50 +0,0 @@ -@mainBkg: #ECECFF; -@secondBkg: #ffffde; -@lineColor: #333333; -@border1: #CCCCFF; -@border2: #aaaa33; -@arrowheadColor: #333333; - -/* Flowchart variables */ - -@nodeBkg: @mainBkg; -@nodeBorder: #9370DB; -@clusterBkg: @secondBkg; -@clusterBorder: @border2; -@defaultLinkColor: @lineColor; -@titleColor: #333; -@edgeLabelBackground: #e8e8e8; - -/* Sequence Diagram variables */ - -@actorBorder: @border1; -@actorBkg: @mainBkg; -@actorTextColor: black; -@actorLineColor: grey; -@signalColor: #333; -@signalTextColor: #333; -@labelBoxBkgColor: @actorBkg; -@labelBoxBorderColor: @actorBorder; -@labelTextColor: @actorTextColor; -@noteBorderColor: @border2; -@noteBkgColor: #fff5ad; - -/* Gantt chart variables */ - -@sectionBkgColor: rgba(102, 102, 255, 0.49); -@altSectionBkgColor: white; -@sectionBkgColor2: #fff400; -@taskBorderColor: #534fbc; -@taskBkgColor: #8a90dd; -@taskTextColor: @taskTextLightColor; -@taskTextOutsideColor: @taskTextDarkColor; -@activeTaskBorderColor: #534fbc; -@activeTaskBkgColor: #bfc7ff; -@gridColor: lightgrey; -@doneTaskBkgColor: lightgrey; -@doneTaskBorderColor: grey; -@critBorderColor: #ff8888; -@critBkgColor: red; -@taskTextLightColor: white; -@taskTextDarkColor: black; -@todayLineColor: red; diff --git a/src/less/forest/variables.less b/src/less/forest/variables.less deleted file mode 100644 index e18b8ca17..000000000 --- a/src/less/forest/variables.less +++ /dev/null @@ -1,52 +0,0 @@ -@mainBkg: #cde498; -@secondBkg: #cdffb2; -@lineColor: #1a3318; -@lineColor: green; -@border1: #13540c; -@border2: #6eaa49; -@arrowheadColor: green; - -/* Flowchart variables */ - -@nodeBkg: @mainBkg; -@nodeBorder: @border1; -@clusterBkg: @secondBkg; -@clusterBorder: @border2; -@defaultLinkColor: @lineColor; -@titleColor: #333; -@edgeLabelBackground: #e8e8e8; - -/* Sequence Diagram variables */ - -@actorBorder: @border1; -@actorBkg: @mainBkg; -@actorTextColor: black; -@actorLineColor: grey; -@signalColor: #333; -@signalTextColor: #333; -@labelBoxBkgColor: @actorBkg; -@labelBoxBorderColor: #326932; -@labelTextColor: @actorTextColor; -@noteBorderColor: @border2; -@noteBkgColor: #fff5ad; - -/* Gantt chart variables */ - -@sectionBkgColor: #6eaa49; -; -@altSectionBkgColor: white; -@sectionBkgColor2: #6eaa49; -@taskBorderColor: @border1; -@taskBkgColor: #487e3a; -@taskTextColor: @taskTextLightColor; -@taskTextOutsideColor: @taskTextDarkColor; -@activeTaskBorderColor: @taskBorderColor; -@activeTaskBkgColor: @mainBkg; -@gridColor: lightgrey; -@doneTaskBkgColor: lightgrey; -@doneTaskBorderColor: grey; -@critBorderColor: #ff8888; -@critBkgColor: red; -@taskTextLightColor: white; -@taskTextDarkColor: black; -@todayLineColor: red; diff --git a/src/less/neutral/variables.less b/src/less/neutral/variables.less deleted file mode 100644 index e618d5c7d..000000000 --- a/src/less/neutral/variables.less +++ /dev/null @@ -1,54 +0,0 @@ -@mainBkg: #eee; -@secondBkg: lighten(@contrast, 55%); -@lineColor: #666; -@border1: #999; -@border2: @contrast; -@note: #ffa; -@text: #333; -@contrast: #26a; -@critical: #d42; -@done: #bbb; - -/* Flowchart variables */ - -@nodeBkg: @mainBkg; -@nodeBorder: @border1; -@clusterBkg: @secondBkg; -@clusterBorder: @border2; -@defaultLinkColor: @lineColor; -@titleColor: @text; -@edgeLabelBackground: white; - -/* Sequence Diagram variables */ - -@actorBorder: @border1; -@actorBkg: @mainBkg; -@actorTextColor: @text; -@actorLineColor: @lineColor; -@signalColor: @text; -@signalTextColor: @text; -@labelBoxBkgColor: @actorBkg; -@labelBoxBorderColor: @actorBorder; -@labelTextColor: white; -@noteBorderColor: darken(@note, 60%); -@noteBkgColor: @note; - -/* Gantt chart variables */ - -@sectionBkgColor: lighten(@contrast, 30%); -@altSectionBkgColor: white; -@sectionBkgColor2: lighten(@contrast, 30%); -@taskBorderColor: darken(@contrast, 10%); -@taskBkgColor: @contrast; -@taskTextColor: @taskTextLightColor; -@taskTextOutsideColor: @taskTextDarkColor; -@activeTaskBorderColor: @taskBorderColor; -@activeTaskBkgColor: @mainBkg; -@gridColor: lighten(@border1, 30%); -@doneTaskBkgColor: @done; -@doneTaskBorderColor: @lineColor; -@critBorderColor: darken(@critBkgColor, 10%); -@critBkgColor: @critical; -@taskTextLightColor: white; -@taskTextDarkColor: @text; -@todayLineColor: @critBkgColor; diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index 6fa688df5..cf57c2c32 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -36,10 +36,10 @@ import gitGraphRenderer from './diagrams/gitGraph/gitGraphRenderer' import gitGraphAst from './diagrams/gitGraph/gitGraphAst' import pkg from '../package.json' -import darkTheme from './less/dark/mermaid.less' -import defaultTheme from './less/default/mermaid.less' -import forestTheme from './less/forest/mermaid.less' -import neutralTheme from './less/neutral/mermaid.less' +import darkTheme from './themes/dark/mermaid.scss' +import defaultTheme from './themes/default/mermaid.scss' +import forestTheme from './themes/forest/mermaid.scss' +import neutralTheme from './themes/neutral/mermaid.scss' const themes = { dark: darkTheme, diff --git a/src/less/dark/classDiagram.less b/src/themes/dark/classDiagram.scss similarity index 54% rename from src/less/dark/classDiagram.less rename to src/themes/dark/classDiagram.scss index b69e1f5b3..9121c0d5a 100644 --- a/src/less/dark/classDiagram.less +++ b/src/themes/dark/classDiagram.scss @@ -1,78 +1,78 @@ g.classGroup text { - fill: @nodeBorder; + fill: $nodeBorder; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-size: 10px; } g.classGroup rect { - fill: @nodeBkg; - stroke: @nodeBorder; + fill: $nodeBkg; + stroke: $nodeBorder; } g.classGroup line { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } svg .classLabel .box { stroke: none; stroke-width: 0; - fill: @nodeBkg; + fill: $nodeBkg; opacity: 0.5; } svg .classLabel .label { - fill: @nodeBorder; + fill: $nodeBorder; font-size: 10px; } .relation { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; fill: none; } -.composition { - fill: @nodeBorder; - stroke: @nodeBorder; +@mixin composition { + fill: $nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } #compositionStart { - .composition; + @include composition; } #compositionEnd { - .composition; + @include composition; } -.aggregation { - fill: @nodeBkg; - stroke: @nodeBorder; +@mixin aggregation { + fill: $nodeBkg; + stroke: $nodeBorder; stroke-width: 1; } #aggregationStart { - .aggregation; + @include aggregation; } #aggregationEnd { - .aggregation; + @include aggregation; } #dependencyStart { - .composition; + @include composition; } #dependencyEnd { - .composition; + @include composition; } #extensionStart { - .composition; + @include composition; } #extensionEnd { - .composition; + @include composition; } diff --git a/src/less/dark/flow.less b/src/themes/dark/flow.scss similarity index 54% rename from src/less/dark/flow.less rename to src/themes/dark/flow.scss index ac833b34e..181030065 100644 --- a/src/less/dark/flow.less +++ b/src/themes/dark/flow.scss @@ -1,13 +1,13 @@ .mermaid .label { - color: @darkTextColor + color: $darkTextColor } .node rect, .node circle, .node ellipse, .node polygon { - fill: @mainBkg; - stroke: @border1; + fill: $mainBkg; + stroke: $border1; stroke-width: 1px; } @@ -16,24 +16,24 @@ } .arrowheadPath { - fill: @arrowheadColor; + fill: $arrowheadColor; } .edgePath .path { - stroke: @lineColor; + stroke: $lineColor; } .edgeLabel { - background-color: @edgeLabelBackground; + background-color: $edgeLabelBackground; } .cluster rect { - fill: @secondBkg !important; + fill: $secondBkg !important; rx: 4 !important; - stroke: @clusterBorder !important; + stroke: $clusterBorder !important; stroke-width: 1px !important; } .cluster text { - fill: @titleColor; + fill: $titleColor; } diff --git a/src/less/dark/gantt.less b/src/themes/dark/gantt.scss similarity index 66% rename from src/less/dark/gantt.less rename to src/themes/dark/gantt.scss index 82e546009..735faf79a 100644 --- a/src/less/dark/gantt.less +++ b/src/themes/dark/gantt.scss @@ -6,33 +6,33 @@ } .section0 { - fill: @sectionBkgColor; + fill: $sectionBkgColor; } .section2 { - fill: @sectionBkgColor2; + fill: $sectionBkgColor2; } .section1, .section3 { - fill: @altSectionBkgColor; + fill: $altSectionBkgColor; opacity: 0.2; } .sectionTitle0 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle1 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle2 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle3 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle { @@ -45,13 +45,13 @@ /* Grid and axis */ .grid .tick { - stroke: @sectionBkgColor; + stroke: $sectionBkgColor; opacity: 0.3; shape-rendering: crispEdges; } .grid .tick text { - fill: @taskTextLightColor; + fill: $taskTextLightColor; opacity: 0.5; } @@ -64,7 +64,7 @@ .today { fill: none; - stroke: @todayLineColor; + stroke: $todayLineColor; stroke-width: 2px; } @@ -84,13 +84,13 @@ } .taskTextOutsideRight { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: start; font-size: 11px; } .taskTextOutsideLeft { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: end; font-size: 11px; } @@ -102,26 +102,26 @@ .taskText1, .taskText2, .taskText3 { - fill: @taskTextColor; + fill: $taskTextColor; } .task0, .task1, .task2, .task3 { - fill: @taskBkgColor; - stroke: @taskBorderColor; + fill: $taskBkgColor; + stroke: $taskBorderColor; } .taskTextOutside0, .taskTextOutside2, { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } .taskTextOutside1, .taskTextOutside3 { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } @@ -131,15 +131,15 @@ .active1, .active2, .active3 { - fill: @activeTaskBkgColor; - stroke: @activeTaskBorderColor; + fill: $activeTaskBkgColor; + stroke: $activeTaskBorderColor; } .activeText0, .activeText1, .activeText2, .activeText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -149,14 +149,14 @@ .done1, .done2, .done3 { - fill: @doneTaskBkgColor; + fill: $doneTaskBkgColor; } .doneText0, .doneText1, .doneText2, .doneText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -166,8 +166,8 @@ .crit1, .crit2, .crit3 { - stroke: @critBorderColor; - fill: @critBkgColor; + stroke: $critBorderColor; + fill: $critBkgColor; stroke-width: 2; } @@ -175,8 +175,8 @@ .activeCrit1, .activeCrit2, .activeCrit3 { - stroke: @critBorderColor; - fill: @activeTaskBkgColor; + stroke: $critBorderColor; + fill: $activeTaskBkgColor; stroke-width: 2; } @@ -184,8 +184,8 @@ .doneCrit1, .doneCrit2, .doneCrit3 { - stroke: @critBorderColor; - fill: @doneTaskBkgColor; + stroke: $critBorderColor; + fill: $doneTaskBkgColor; stroke-width: 1; cursor: pointer; shape-rendering: crispEdges; @@ -195,18 +195,18 @@ .doneCritText1, .doneCritText2, .doneCritText3 { - fill: @taskTextLightColor !important; + fill: $taskTextLightColor !important; } .activeCritText0, .activeCritText1, .activeCritText2, .activeCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .titleText { text-anchor: middle; font-size: 18px; - fill: @taskTextLightColor; + fill: $taskTextLightColor; } diff --git a/src/less/dark/gitGraph.less b/src/themes/dark/gitGraph.scss similarity index 100% rename from src/less/dark/gitGraph.less rename to src/themes/dark/gitGraph.scss diff --git a/src/less/dark/mermaid.less b/src/themes/dark/mermaid.scss similarity index 88% rename from src/less/dark/mermaid.less rename to src/themes/dark/mermaid.scss index c516a0ef0..0375e40a5 100644 --- a/src/less/dark/mermaid.less +++ b/src/themes/dark/mermaid.scss @@ -16,8 +16,8 @@ div.mermaidTooltip { padding: 2px; font-family: 'trebuchet ms', verdana, arial; font-size: 12px; - background: @secondBkg; - border: 1px solid @border2; + background: $secondBkg; + border: 1px solid $border2; border-radius: 2px; pointer-events: none; z-index: 100; diff --git a/src/less/dark/sequenceDiagram.less b/src/themes/dark/sequenceDiagram.scss similarity index 57% rename from src/less/dark/sequenceDiagram.less rename to src/themes/dark/sequenceDiagram.scss index c2ee2fde8..7dd8dba20 100644 --- a/src/less/dark/sequenceDiagram.less +++ b/src/themes/dark/sequenceDiagram.scss @@ -1,56 +1,56 @@ .actor { - stroke: @actorBorder; - fill: @actorBkg; + stroke: $actorBorder; + fill: $actorBkg; } text.actor { - fill: @actorTextColor; + fill: $actorTextColor; stroke: none; } .actor-line { - stroke: @actorLineColor; + stroke: $actorLineColor; } .messageLine0 { stroke-width: 1.5; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @signalColor; + stroke: $signalColor; } .messageLine1 { stroke-width: 1.5; stroke-dasharray: "2 2"; - stroke: @signalColor; + stroke: $signalColor; } #arrowhead { - fill: @signalColor !important; + fill: $signalColor !important; } #crosshead path { - fill: @signalColor !important; - stroke: @signalColor !important; + fill: $signalColor !important; + stroke: $signalColor !important; } .messageText { - fill: @signalTextColor; + fill: $signalTextColor; stroke: none; } .labelBox { - stroke: @labelBoxBorderColor; - fill: @labelBoxBkgColor; + stroke: $labelBoxBorderColor; + fill: $labelBoxBkgColor; } .labelText { - fill: @darkTextColor; + fill: $darkTextColor; stroke: none; } .loopText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } @@ -58,13 +58,13 @@ text.actor { stroke-width: 2; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @labelBoxBorderColor; + stroke: $labelBoxBorderColor; } .note { //stroke: #decc93; - stroke: @noteBorderColor; - fill: @noteBkgColor; + stroke: $noteBorderColor; + fill: $noteBkgColor; } .noteText { diff --git a/src/themes/dark/variables.scss b/src/themes/dark/variables.scss new file mode 100644 index 000000000..ab6b2977c --- /dev/null +++ b/src/themes/dark/variables.scss @@ -0,0 +1,52 @@ +$mainBkg: #BDD5EA; +$secondBkg: #6D6D65; +$mainContrastColor: lightgrey; +$darkTextColor: #323D47; +$lineColor: $mainContrastColor; +$border1: #81B1DB; +$border2: rgba(255, 255, 255, 0.25); +$arrowheadColor: $mainContrastColor; + +/* Flowchart variables */ + +$nodeBkg: $mainBkg; +$nodeBorder: purple; +$clusterBkg: $secondBkg; +$clusterBorder: $border2; +$defaultLinkColor: $lineColor; +$titleColor: #F9FFFE; +$edgeLabelBackground: #e8e8e8; + +/* Sequence Diagram variables */ + +$actorBorder: $border1; +$actorBkg: $mainBkg; +$actorTextColor: black; +$actorLineColor: $mainContrastColor; +$signalColor: $mainContrastColor; +$signalTextColor: $mainContrastColor; +$labelBoxBkgColor: $actorBkg; +$labelBoxBorderColor: $actorBorder; +$labelTextColor: $mainContrastColor; +$noteBorderColor: $border2; +$noteBkgColor: #fff5ad; + +/* Gantt chart variables */ + +$sectionBkgColor: rgba(255, 255, 255, 0.3); +$altSectionBkgColor: white; +$sectionBkgColor2: #EAE8B9; +$taskBorderColor: rgba(255, 255, 255, 0.5); +$taskBkgColor: $mainBkg; +$taskTextColor: $darkTextColor; +$taskTextLightColor: $mainContrastColor; +$taskTextOutsideColor: $taskTextLightColor; +$activeTaskBorderColor: rgba(255, 255, 255, 0.5); +$activeTaskBkgColor: #81B1DB; +$gridColor: $mainContrastColor; +$doneTaskBkgColor: $mainContrastColor; +$doneTaskBorderColor: grey; +$critBorderColor: #E83737; +$critBkgColor: #E83737; +$taskTextDarkColor: $darkTextColor; +$todayLineColor: #DB5757; diff --git a/src/less/neutral/classDiagram.less b/src/themes/default/classDiagram.scss similarity index 54% rename from src/less/neutral/classDiagram.less rename to src/themes/default/classDiagram.scss index b69e1f5b3..9121c0d5a 100644 --- a/src/less/neutral/classDiagram.less +++ b/src/themes/default/classDiagram.scss @@ -1,78 +1,78 @@ g.classGroup text { - fill: @nodeBorder; + fill: $nodeBorder; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-size: 10px; } g.classGroup rect { - fill: @nodeBkg; - stroke: @nodeBorder; + fill: $nodeBkg; + stroke: $nodeBorder; } g.classGroup line { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } svg .classLabel .box { stroke: none; stroke-width: 0; - fill: @nodeBkg; + fill: $nodeBkg; opacity: 0.5; } svg .classLabel .label { - fill: @nodeBorder; + fill: $nodeBorder; font-size: 10px; } .relation { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; fill: none; } -.composition { - fill: @nodeBorder; - stroke: @nodeBorder; +@mixin composition { + fill: $nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } #compositionStart { - .composition; + @include composition; } #compositionEnd { - .composition; + @include composition; } -.aggregation { - fill: @nodeBkg; - stroke: @nodeBorder; +@mixin aggregation { + fill: $nodeBkg; + stroke: $nodeBorder; stroke-width: 1; } #aggregationStart { - .aggregation; + @include aggregation; } #aggregationEnd { - .aggregation; + @include aggregation; } #dependencyStart { - .composition; + @include composition; } #dependencyEnd { - .composition; + @include composition; } #extensionStart { - .composition; + @include composition; } #extensionEnd { - .composition; + @include composition; } diff --git a/src/less/default/flow.less b/src/themes/default/flow.scss similarity index 58% rename from src/less/default/flow.less rename to src/themes/default/flow.scss index 7a9ead929..9cca5d74c 100644 --- a/src/less/default/flow.less +++ b/src/themes/default/flow.scss @@ -6,8 +6,8 @@ .node circle, .node ellipse, .node polygon { - fill: @mainBkg; - stroke: @border1; + fill: $mainBkg; + stroke: $border1; stroke-width: 1px; } @@ -16,24 +16,24 @@ } .arrowheadPath { - fill: @arrowheadColor; + fill: $arrowheadColor; } .edgePath .path { - stroke: @lineColor; + stroke: $lineColor; } .edgeLabel { - background-color: @edgeLabelBackground; + background-color: $edgeLabelBackground; } .cluster rect { - fill: @secondBkg !important; + fill: $secondBkg !important; rx: 4 !important; - stroke: @clusterBorder !important; + stroke: $clusterBorder !important; stroke-width: 1px !important; } .cluster text { - fill: @titleColor; + fill: $titleColor; } diff --git a/src/less/default/gantt.less b/src/themes/default/gantt.scss similarity index 66% rename from src/less/default/gantt.less rename to src/themes/default/gantt.scss index 8cab68007..6793135ec 100644 --- a/src/less/default/gantt.less +++ b/src/themes/default/gantt.scss @@ -6,33 +6,33 @@ } .section0 { - fill: @sectionBkgColor; + fill: $sectionBkgColor; } .section2 { - fill: @sectionBkgColor2; + fill: $sectionBkgColor2; } .section1, .section3 { - fill: @altSectionBkgColor; + fill: $altSectionBkgColor; opacity: 0.2; } .sectionTitle0 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle1 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle2 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle3 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle { @@ -45,7 +45,7 @@ /* Grid and axis */ .grid .tick { - stroke: @gridColor; + stroke: $gridColor; opacity: 0.3; shape-rendering: crispEdges; } @@ -59,7 +59,7 @@ .today { fill: none; - stroke: @todayLineColor; + stroke: $todayLineColor; stroke-width: 2px; } @@ -79,13 +79,13 @@ } .taskTextOutsideRight { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: start; font-size: 11px; } .taskTextOutsideLeft { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: end; font-size: 11px; } @@ -97,26 +97,26 @@ .taskText1, .taskText2, .taskText3 { - fill: @taskTextColor; + fill: $taskTextColor; } .task0, .task1, .task2, .task3 { - fill: @taskBkgColor; - stroke: @taskBorderColor; + fill: $taskBkgColor; + stroke: $taskBorderColor; } .taskTextOutside0, .taskTextOutside2, { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } .taskTextOutside1, .taskTextOutside3 { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } @@ -126,15 +126,15 @@ .active1, .active2, .active3 { - fill: @activeTaskBkgColor; - stroke: @activeTaskBorderColor; + fill: $activeTaskBkgColor; + stroke: $activeTaskBorderColor; } .activeText0, .activeText1, .activeText2, .activeText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -144,8 +144,8 @@ .done1, .done2, .done3 { - stroke: @doneTaskBorderColor; - fill: @doneTaskBkgColor; + stroke: $doneTaskBorderColor; + fill: $doneTaskBkgColor; stroke-width: 2; } @@ -153,7 +153,7 @@ .doneText1, .doneText2, .doneText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -163,8 +163,8 @@ .crit1, .crit2, .crit3 { - stroke: @critBorderColor; - fill: @critBkgColor; + stroke: $critBorderColor; + fill: $critBkgColor; stroke-width: 2; } @@ -172,8 +172,8 @@ .activeCrit1, .activeCrit2, .activeCrit3 { - stroke: @critBorderColor; - fill: @activeTaskBkgColor; + stroke: $critBorderColor; + fill: $activeTaskBkgColor; stroke-width: 2; } @@ -181,8 +181,8 @@ .doneCrit1, .doneCrit2, .doneCrit3 { - stroke: @critBorderColor; - fill: @doneTaskBkgColor; + stroke: $critBorderColor; + fill: $doneTaskBkgColor; stroke-width: 2; cursor: pointer; shape-rendering: crispEdges; @@ -192,18 +192,18 @@ .doneCritText1, .doneCritText2, .doneCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .activeCritText0, .activeCritText1, .activeCritText2, .activeCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .titleText { text-anchor: middle; font-size: 18px; - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; } diff --git a/src/less/default/mermaid.less b/src/themes/default/mermaid.scss similarity index 88% rename from src/less/default/mermaid.less rename to src/themes/default/mermaid.scss index 53ba6c146..d6b95146c 100644 --- a/src/less/default/mermaid.less +++ b/src/themes/default/mermaid.scss @@ -15,8 +15,8 @@ div.mermaidTooltip { padding: 2px; font-family: 'trebuchet ms', verdana, arial; font-size: 12px; - background: @secondBkg; - border: 1px solid @border2; + background: $secondBkg; + border: 1px solid $border2; border-radius: 2px; pointer-events: none; z-index: 100; diff --git a/src/less/forest/sequenceDiagram.less b/src/themes/default/sequenceDiagram.scss similarity index 57% rename from src/less/forest/sequenceDiagram.less rename to src/themes/default/sequenceDiagram.scss index 3b468fd78..3d436c0a3 100644 --- a/src/less/forest/sequenceDiagram.less +++ b/src/themes/default/sequenceDiagram.scss @@ -1,56 +1,56 @@ .actor { - stroke: @actorBorder; - fill: @actorBkg; + stroke: $actorBorder; + fill: $actorBkg; } text.actor { - fill: @actorTextColor; + fill: $actorTextColor; stroke: none; } .actor-line { - stroke: @actorLineColor; + stroke: $actorLineColor; } .messageLine0 { stroke-width: 1.5; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @signalColor; + stroke: $signalColor; } .messageLine1 { stroke-width: 1.5; stroke-dasharray: "2 2"; - stroke: @signalColor; + stroke: $signalColor; } #arrowhead { - fill: @signalColor; + fill: $signalColor; } #crosshead path { - fill: @signalColor !important; - stroke: @signalColor !important; + fill: $signalColor !important; + stroke: $signalColor !important; } .messageText { - fill: @signalTextColor; + fill: $signalTextColor; stroke: none; } .labelBox { - stroke: @labelBoxBorderColor; - fill: @labelBoxBkgColor; + stroke: $labelBoxBorderColor; + fill: $labelBoxBkgColor; } .labelText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } .loopText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } @@ -58,13 +58,13 @@ text.actor { stroke-width: 2; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @labelBoxBorderColor; + stroke: $labelBoxBorderColor; } .note { //stroke: #decc93; - stroke: @noteBorderColor; - fill: @noteBkgColor; + stroke: $noteBorderColor; + fill: $noteBkgColor; } .noteText { diff --git a/src/themes/default/variables.scss b/src/themes/default/variables.scss new file mode 100644 index 000000000..02e46e1b0 --- /dev/null +++ b/src/themes/default/variables.scss @@ -0,0 +1,50 @@ +$mainBkg: #ECECFF; +$secondBkg: #ffffde; +$lineColor: #333333; +$border1: #CCCCFF; +$border2: #aaaa33; +$arrowheadColor: #333333; + +/* Flowchart variables */ + +$nodeBkg: $mainBkg; +$nodeBorder: #9370DB; +$clusterBkg: $secondBkg; +$clusterBorder: $border2; +$defaultLinkColor: $lineColor; +$titleColor: #333; +$edgeLabelBackground: #e8e8e8; + +/* Sequence Diagram variables */ + +$actorBorder: $border1; +$actorBkg: $mainBkg; +$actorTextColor: black; +$actorLineColor: grey; +$signalColor: #333; +$signalTextColor: #333; +$labelBoxBkgColor: $actorBkg; +$labelBoxBorderColor: $actorBorder; +$labelTextColor: $actorTextColor; +$noteBorderColor: $border2; +$noteBkgColor: #fff5ad; + +/* Gantt chart variables */ + +$sectionBkgColor: rgba(102, 102, 255, 0.49); +$altSectionBkgColor: white; +$sectionBkgColor2: #fff400; +$taskBorderColor: #534fbc; +$taskBkgColor: #8a90dd; +$taskTextLightColor: white; +$taskTextColor: $taskTextLightColor; +$taskTextDarkColor: black; +$taskTextOutsideColor: $taskTextDarkColor; +$activeTaskBorderColor: #534fbc; +$activeTaskBkgColor: #bfc7ff; +$gridColor: lightgrey; +$doneTaskBkgColor: lightgrey; +$doneTaskBorderColor: grey; +$critBorderColor: #ff8888; +$critBkgColor: red; +$todayLineColor: red; diff --git a/src/less/forest/classDiagram.less b/src/themes/forest/classDiagram.scss similarity index 54% rename from src/less/forest/classDiagram.less rename to src/themes/forest/classDiagram.scss index b69e1f5b3..9121c0d5a 100644 --- a/src/less/forest/classDiagram.less +++ b/src/themes/forest/classDiagram.scss @@ -1,78 +1,78 @@ g.classGroup text { - fill: @nodeBorder; + fill: $nodeBorder; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-size: 10px; } g.classGroup rect { - fill: @nodeBkg; - stroke: @nodeBorder; + fill: $nodeBkg; + stroke: $nodeBorder; } g.classGroup line { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } svg .classLabel .box { stroke: none; stroke-width: 0; - fill: @nodeBkg; + fill: $nodeBkg; opacity: 0.5; } svg .classLabel .label { - fill: @nodeBorder; + fill: $nodeBorder; font-size: 10px; } .relation { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; fill: none; } -.composition { - fill: @nodeBorder; - stroke: @nodeBorder; +@mixin composition { + fill: $nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } #compositionStart { - .composition; + @include composition; } #compositionEnd { - .composition; + @include composition; } -.aggregation { - fill: @nodeBkg; - stroke: @nodeBorder; +@mixin aggregation { + fill: $nodeBkg; + stroke: $nodeBorder; stroke-width: 1; } #aggregationStart { - .aggregation; + @include aggregation; } #aggregationEnd { - .aggregation; + @include aggregation; } #dependencyStart { - .composition; + @include composition; } #dependencyEnd { - .composition; + @include composition; } #extensionStart { - .composition; + @include composition; } #extensionEnd { - .composition; + @include composition; } diff --git a/src/less/forest/flow.less b/src/themes/forest/flow.scss similarity index 62% rename from src/less/forest/flow.less rename to src/themes/forest/flow.scss index e7602646a..675f521cb 100644 --- a/src/less/forest/flow.less +++ b/src/themes/forest/flow.scss @@ -7,8 +7,8 @@ .node circle, .node ellipse, .node polygon { - fill: @mainBkg; - stroke: @nodeBorder; + fill: $mainBkg; + stroke: $nodeBorder; stroke-width: 1px; } @@ -17,25 +17,25 @@ } .arrowheadPath { - fill: @arrowheadColor; + fill: $arrowheadColor; } .edgePath .path { - stroke: @lineColor; + stroke: $lineColor; stroke-width: 1.5px; } .edgeLabel { - background-color: @edgeLabelBackground; + background-color: $edgeLabelBackground; } .cluster rect { - fill: @secondBkg !important; + fill: $secondBkg !important; rx: 4 !important; - stroke: @clusterBorder !important; + stroke: $clusterBorder !important; stroke-width: 1px !important; } .cluster text { - fill: @titleColor; + fill: $titleColor; } diff --git a/src/less/forest/gantt.less b/src/themes/forest/gantt.scss similarity index 66% rename from src/less/forest/gantt.less rename to src/themes/forest/gantt.scss index 8cab68007..6793135ec 100644 --- a/src/less/forest/gantt.less +++ b/src/themes/forest/gantt.scss @@ -6,33 +6,33 @@ } .section0 { - fill: @sectionBkgColor; + fill: $sectionBkgColor; } .section2 { - fill: @sectionBkgColor2; + fill: $sectionBkgColor2; } .section1, .section3 { - fill: @altSectionBkgColor; + fill: $altSectionBkgColor; opacity: 0.2; } .sectionTitle0 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle1 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle2 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle3 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle { @@ -45,7 +45,7 @@ /* Grid and axis */ .grid .tick { - stroke: @gridColor; + stroke: $gridColor; opacity: 0.3; shape-rendering: crispEdges; } @@ -59,7 +59,7 @@ .today { fill: none; - stroke: @todayLineColor; + stroke: $todayLineColor; stroke-width: 2px; } @@ -79,13 +79,13 @@ } .taskTextOutsideRight { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: start; font-size: 11px; } .taskTextOutsideLeft { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: end; font-size: 11px; } @@ -97,26 +97,26 @@ .taskText1, .taskText2, .taskText3 { - fill: @taskTextColor; + fill: $taskTextColor; } .task0, .task1, .task2, .task3 { - fill: @taskBkgColor; - stroke: @taskBorderColor; + fill: $taskBkgColor; + stroke: $taskBorderColor; } .taskTextOutside0, .taskTextOutside2, { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } .taskTextOutside1, .taskTextOutside3 { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } @@ -126,15 +126,15 @@ .active1, .active2, .active3 { - fill: @activeTaskBkgColor; - stroke: @activeTaskBorderColor; + fill: $activeTaskBkgColor; + stroke: $activeTaskBorderColor; } .activeText0, .activeText1, .activeText2, .activeText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -144,8 +144,8 @@ .done1, .done2, .done3 { - stroke: @doneTaskBorderColor; - fill: @doneTaskBkgColor; + stroke: $doneTaskBorderColor; + fill: $doneTaskBkgColor; stroke-width: 2; } @@ -153,7 +153,7 @@ .doneText1, .doneText2, .doneText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -163,8 +163,8 @@ .crit1, .crit2, .crit3 { - stroke: @critBorderColor; - fill: @critBkgColor; + stroke: $critBorderColor; + fill: $critBkgColor; stroke-width: 2; } @@ -172,8 +172,8 @@ .activeCrit1, .activeCrit2, .activeCrit3 { - stroke: @critBorderColor; - fill: @activeTaskBkgColor; + stroke: $critBorderColor; + fill: $activeTaskBkgColor; stroke-width: 2; } @@ -181,8 +181,8 @@ .doneCrit1, .doneCrit2, .doneCrit3 { - stroke: @critBorderColor; - fill: @doneTaskBkgColor; + stroke: $critBorderColor; + fill: $doneTaskBkgColor; stroke-width: 2; cursor: pointer; shape-rendering: crispEdges; @@ -192,18 +192,18 @@ .doneCritText1, .doneCritText2, .doneCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .activeCritText0, .activeCritText1, .activeCritText2, .activeCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .titleText { text-anchor: middle; font-size: 18px; - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; } diff --git a/src/less/forest/mermaid.less b/src/themes/forest/mermaid.scss similarity index 88% rename from src/less/forest/mermaid.less rename to src/themes/forest/mermaid.scss index 53ba6c146..d6b95146c 100644 --- a/src/less/forest/mermaid.less +++ b/src/themes/forest/mermaid.scss @@ -15,8 +15,8 @@ div.mermaidTooltip { padding: 2px; font-family: 'trebuchet ms', verdana, arial; font-size: 12px; - background: @secondBkg; - border: 1px solid @border2; + background: $secondBkg; + border: 1px solid $border2; border-radius: 2px; pointer-events: none; z-index: 100; diff --git a/src/less/default/sequenceDiagram.less b/src/themes/forest/sequenceDiagram.scss similarity index 57% rename from src/less/default/sequenceDiagram.less rename to src/themes/forest/sequenceDiagram.scss index 3b468fd78..3d436c0a3 100644 --- a/src/less/default/sequenceDiagram.less +++ b/src/themes/forest/sequenceDiagram.scss @@ -1,56 +1,56 @@ .actor { - stroke: @actorBorder; - fill: @actorBkg; + stroke: $actorBorder; + fill: $actorBkg; } text.actor { - fill: @actorTextColor; + fill: $actorTextColor; stroke: none; } .actor-line { - stroke: @actorLineColor; + stroke: $actorLineColor; } .messageLine0 { stroke-width: 1.5; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @signalColor; + stroke: $signalColor; } .messageLine1 { stroke-width: 1.5; stroke-dasharray: "2 2"; - stroke: @signalColor; + stroke: $signalColor; } #arrowhead { - fill: @signalColor; + fill: $signalColor; } #crosshead path { - fill: @signalColor !important; - stroke: @signalColor !important; + fill: $signalColor !important; + stroke: $signalColor !important; } .messageText { - fill: @signalTextColor; + fill: $signalTextColor; stroke: none; } .labelBox { - stroke: @labelBoxBorderColor; - fill: @labelBoxBkgColor; + stroke: $labelBoxBorderColor; + fill: $labelBoxBkgColor; } .labelText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } .loopText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } @@ -58,13 +58,13 @@ text.actor { stroke-width: 2; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @labelBoxBorderColor; + stroke: $labelBoxBorderColor; } .note { //stroke: #decc93; - stroke: @noteBorderColor; - fill: @noteBkgColor; + stroke: $noteBorderColor; + fill: $noteBkgColor; } .noteText { diff --git a/src/themes/forest/variables.scss b/src/themes/forest/variables.scss new file mode 100644 index 000000000..e6c700b86 --- /dev/null +++ b/src/themes/forest/variables.scss @@ -0,0 +1,52 @@ +$mainBkg: #cde498; +$secondBkg: #cdffb2; +$lineColor: #1a3318; +$lineColor: green; +$border1: #13540c; +$border2: #6eaa49; +$arrowheadColor: green; + +/* Flowchart variables */ + +$nodeBkg: $mainBkg; +$nodeBorder: $border1; +$clusterBkg: $secondBkg; +$clusterBorder: $border2; +$defaultLinkColor: $lineColor; +$titleColor: #333; +$edgeLabelBackground: #e8e8e8; + +/* Sequence Diagram variables */ + +$actorBorder: $border1; +$actorBkg: $mainBkg; +$actorTextColor: black; +$actorLineColor: grey; +$signalColor: #333; +$signalTextColor: #333; +$labelBoxBkgColor: $actorBkg; +$labelBoxBorderColor: #326932; +$labelTextColor: $actorTextColor; +$noteBorderColor: $border2; +$noteBkgColor: #fff5ad; + +/* Gantt chart variables */ + +$sectionBkgColor: #6eaa49; +; +$altSectionBkgColor: white; +$sectionBkgColor2: #6eaa49; +$taskBorderColor: $border1; +$taskBkgColor: #487e3a; +$taskTextLightColor: white; +$taskTextColor: $taskTextLightColor; +$taskTextDarkColor: black; +$taskTextOutsideColor: $taskTextDarkColor; +$activeTaskBorderColor: $taskBorderColor; +$activeTaskBkgColor: $mainBkg; +$gridColor: lightgrey; +$doneTaskBkgColor: lightgrey; +$doneTaskBorderColor: grey; +$critBorderColor: #ff8888; +$critBkgColor: red; +$todayLineColor: red; diff --git a/src/less/default/classDiagram.less b/src/themes/neutral/classDiagram.scss similarity index 54% rename from src/less/default/classDiagram.less rename to src/themes/neutral/classDiagram.scss index b69e1f5b3..9121c0d5a 100644 --- a/src/less/default/classDiagram.less +++ b/src/themes/neutral/classDiagram.scss @@ -1,78 +1,78 @@ g.classGroup text { - fill: @nodeBorder; + fill: $nodeBorder; stroke: none; font-family: 'trebuchet ms', verdana, arial; font-size: 10px; } g.classGroup rect { - fill: @nodeBkg; - stroke: @nodeBorder; + fill: $nodeBkg; + stroke: $nodeBorder; } g.classGroup line { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } svg .classLabel .box { stroke: none; stroke-width: 0; - fill: @nodeBkg; + fill: $nodeBkg; opacity: 0.5; } svg .classLabel .label { - fill: @nodeBorder; + fill: $nodeBorder; font-size: 10px; } .relation { - stroke: @nodeBorder; + stroke: $nodeBorder; stroke-width: 1; fill: none; } -.composition { - fill: @nodeBorder; - stroke: @nodeBorder; +@mixin composition { + fill: $nodeBorder; + stroke: $nodeBorder; stroke-width: 1; } #compositionStart { - .composition; + @include composition; } #compositionEnd { - .composition; + @include composition; } -.aggregation { - fill: @nodeBkg; - stroke: @nodeBorder; +@mixin aggregation { + fill: $nodeBkg; + stroke: $nodeBorder; stroke-width: 1; } #aggregationStart { - .aggregation; + @include aggregation; } #aggregationEnd { - .aggregation; + @include aggregation; } #dependencyStart { - .composition; + @include composition; } #dependencyEnd { - .composition; + @include composition; } #extensionStart { - .composition; + @include composition; } #extensionEnd { - .composition; + @include composition; } diff --git a/src/less/neutral/flow.less b/src/themes/neutral/flow.scss similarity index 58% rename from src/less/neutral/flow.less rename to src/themes/neutral/flow.scss index cb3a8d2f2..cfd20c09d 100644 --- a/src/less/neutral/flow.less +++ b/src/themes/neutral/flow.scss @@ -1,13 +1,13 @@ .mermaid .label { - color: @text + color: $text } .node rect, .node circle, .node ellipse, .node polygon { - fill: @mainBkg; - stroke: @nodeBorder; + fill: $mainBkg; + stroke: $nodeBorder; stroke-width: 1px; } @@ -16,21 +16,21 @@ } .edgePath .path { - stroke: @lineColor; + stroke: $lineColor; stroke-width: 1.5px; } .edgeLabel { - background-color: @edgeLabelBackground; + background-color: $edgeLabelBackground; } .cluster rect { - fill: @secondBkg !important; + fill: $secondBkg !important; rx: 4 !important; - stroke: @clusterBorder !important; + stroke: $clusterBorder !important; stroke-width: 1px !important; } .cluster text { - fill: @titleColor; + fill: $titleColor; } diff --git a/src/less/neutral/gantt.less b/src/themes/neutral/gantt.scss similarity index 66% rename from src/less/neutral/gantt.less rename to src/themes/neutral/gantt.scss index 78cc0444c..511b77bdc 100644 --- a/src/less/neutral/gantt.less +++ b/src/themes/neutral/gantt.scss @@ -6,33 +6,33 @@ } .section0 { - fill: @sectionBkgColor; + fill: $sectionBkgColor; } .section2 { - fill: @sectionBkgColor2; + fill: $sectionBkgColor2; } .section1, .section3 { - fill: @altSectionBkgColor; + fill: $altSectionBkgColor; opacity: 0.2; } .sectionTitle0 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle1 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle2 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle3 { - fill: @titleColor; + fill: $titleColor; } .sectionTitle { @@ -45,7 +45,7 @@ /* Grid and axis */ .grid .tick { - stroke: @gridColor; + stroke: $gridColor; opacity: 0.3; shape-rendering: crispEdges; } @@ -59,7 +59,7 @@ .today { fill: none; - stroke: @todayLineColor; + stroke: $todayLineColor; stroke-width: 2px; } @@ -79,13 +79,13 @@ } .taskTextOutsideRight { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: start; font-size: 11px; } .taskTextOutsideLeft { - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; text-anchor: end; font-size: 11px; } @@ -97,26 +97,26 @@ .taskText1, .taskText2, .taskText3 { - fill: @taskTextColor; + fill: $taskTextColor; } .task0, .task1, .task2, .task3 { - fill: @taskBkgColor; - stroke: @taskBorderColor; + fill: $taskBkgColor; + stroke: $taskBorderColor; } .taskTextOutside0, .taskTextOutside2, { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } .taskTextOutside1, .taskTextOutside3 { - fill: @taskTextOutsideColor; + fill: $taskTextOutsideColor; } @@ -126,15 +126,15 @@ .active1, .active2, .active3 { - fill: @activeTaskBkgColor; - stroke: @activeTaskBorderColor; + fill: $activeTaskBkgColor; + stroke: $activeTaskBorderColor; } .activeText0, .activeText1, .activeText2, .activeText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -144,8 +144,8 @@ .done1, .done2, .done3 { - stroke: @doneTaskBorderColor; - fill: @doneTaskBkgColor; + stroke: $doneTaskBorderColor; + fill: $doneTaskBkgColor; stroke-width: 2; } @@ -153,7 +153,7 @@ .doneText1, .doneText2, .doneText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } @@ -163,8 +163,8 @@ .crit1, .crit2, .crit3 { - stroke: @critBorderColor; - fill: @critBkgColor; + stroke: $critBorderColor; + fill: $critBkgColor; stroke-width: 2; } @@ -172,8 +172,8 @@ .activeCrit1, .activeCrit2, .activeCrit3 { - stroke: @critBorderColor; - fill: @activeTaskBkgColor; + stroke: $critBorderColor; + fill: $activeTaskBkgColor; stroke-width: 2; } @@ -181,8 +181,8 @@ .doneCrit1, .doneCrit2, .doneCrit3 { - stroke: @critBorderColor; - fill: @doneTaskBkgColor; + stroke: $critBorderColor; + fill: $doneTaskBkgColor; stroke-width: 2; cursor: pointer; //shape-rendering: crispEdges; } @@ -191,18 +191,18 @@ .doneCritText1, .doneCritText2, .doneCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .activeCritText0, .activeCritText1, .activeCritText2, .activeCritText3 { - fill: @taskTextDarkColor !important; + fill: $taskTextDarkColor !important; } .titleText { text-anchor: middle; font-size: 18px; - fill: @taskTextDarkColor; + fill: $taskTextDarkColor; } diff --git a/src/less/neutral/mermaid.less b/src/themes/neutral/mermaid.scss similarity index 88% rename from src/less/neutral/mermaid.less rename to src/themes/neutral/mermaid.scss index d19b3d81a..98c36fd75 100644 --- a/src/less/neutral/mermaid.less +++ b/src/themes/neutral/mermaid.scss @@ -15,8 +15,8 @@ div.mermaidTooltip { padding: 2px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; - background: @secondBkg; - border: 1px solid @border2; + background: $secondBkg; + border: 1px solid $border2; border-radius: 2px; pointer-events: none; z-index: 100; diff --git a/src/less/neutral/sequenceDiagram.less b/src/themes/neutral/sequenceDiagram.scss similarity index 57% rename from src/less/neutral/sequenceDiagram.less rename to src/themes/neutral/sequenceDiagram.scss index ca62a3c1f..1776c727f 100644 --- a/src/less/neutral/sequenceDiagram.less +++ b/src/themes/neutral/sequenceDiagram.scss @@ -1,56 +1,56 @@ .actor { - stroke: @actorBorder; - fill: @actorBkg; + stroke: $actorBorder; + fill: $actorBkg; } text.actor { - fill: @actorTextColor; + fill: $actorTextColor; stroke: none; } .actor-line { - stroke: @actorLineColor; + stroke: $actorLineColor; } .messageLine0 { stroke-width: 1.5; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @signalColor; + stroke: $signalColor; } .messageLine1 { stroke-width: 1.5; stroke-dasharray: "2 2"; - stroke: @signalColor; + stroke: $signalColor; } #arrowhead { - fill: @signalColor; + fill: $signalColor; } #crosshead path { - fill: @signalColor !important; - stroke: @signalColor !important; + fill: $signalColor !important; + stroke: $signalColor !important; } .messageText { - fill: @signalTextColor; + fill: $signalTextColor; stroke: none; } .labelBox { - stroke: @labelBoxBorderColor; - fill: @labelBoxBkgColor; + stroke: $labelBoxBorderColor; + fill: $labelBoxBkgColor; } .labelText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } .loopText { - fill: @labelTextColor; + fill: $labelTextColor; stroke: none; } @@ -58,13 +58,13 @@ text.actor { stroke-width: 2; stroke-dasharray: "2 2"; marker-end: "url(#arrowhead)"; - stroke: @labelBoxBorderColor; + stroke: $labelBoxBorderColor; } .note { //stroke: #decc93; - stroke: @noteBorderColor; - fill: @noteBkgColor; + stroke: $noteBorderColor; + fill: $noteBkgColor; } .noteText { diff --git a/src/themes/neutral/variables.scss b/src/themes/neutral/variables.scss new file mode 100644 index 000000000..96159629e --- /dev/null +++ b/src/themes/neutral/variables.scss @@ -0,0 +1,54 @@ +$mainBkg: #eee; +$contrast: #26a; +$secondBkg: lighten($contrast, 55%); +$lineColor: #666; +$border1: #999; +$border2: $contrast; +$note: #ffa; +$text: #333; +$critical: #d42; +$done: #bbb; + +/* Flowchart variables */ + +$nodeBkg: $mainBkg; +$nodeBorder: $border1; +$clusterBkg: $secondBkg; +$clusterBorder: $border2; +$defaultLinkColor: $lineColor; +$titleColor: $text; +$edgeLabelBackground: white; + +/* Sequence Diagram variables */ + +$actorBorder: $border1; +$actorBkg: $mainBkg; +$actorTextColor: $text; +$actorLineColor: $lineColor; +$signalColor: $text; +$signalTextColor: $text; +$labelBoxBkgColor: $actorBkg; +$labelBoxBorderColor: $actorBorder; +$labelTextColor: white; +$noteBorderColor: darken($note, 60%); +$noteBkgColor: $note; + +/* Gantt chart variables */ + +$sectionBkgColor: lighten($contrast, 30%); +$altSectionBkgColor: white; +$sectionBkgColor2: lighten($contrast, 30%); +$taskBorderColor: darken($contrast, 10%); +$taskBkgColor: $contrast; +$taskTextLightColor: white; +$taskTextColor: $taskTextLightColor; +$taskTextDarkColor: $text; +$taskTextOutsideColor: $taskTextDarkColor; +$activeTaskBorderColor: $taskBorderColor; +$activeTaskBkgColor: $mainBkg; +$gridColor: lighten($border1, 30%); +$doneTaskBkgColor: $done; +$doneTaskBorderColor: $lineColor; +$critBkgColor: $critical; +$critBorderColor: darken($critBkgColor, 10%); +$todayLineColor: $critBkgColor; diff --git a/todo.md b/todo.md index 65f24b34c..91132b949 100644 --- a/todo.md +++ b/todo.md @@ -1,12 +1,10 @@ - Get familar with jison - git graph requires a blank line at the end. why? -- rewrite logger -- rewrite less code - Setup code coverage - Create a desktop client - Support customization of gantt diagram xAxis format - https://github.com/d3/d3-time-format#api-reference - https://bl.ocks.org/wboykinm/34627426d84f3242e0e6ecb2339e9065 - Upgrade jasmine to latest version or replace it -- Upgrade less to latest version or replace it - Flowchart interpolate is useless because there is no rendering code using it +- Rewrite SCSS code to reduce duplication diff --git a/webpack.config.base.js b/webpack.config.base.js index c10ec1eff..420b21060 100644 --- a/webpack.config.base.js +++ b/webpack.config.base.js @@ -21,12 +21,12 @@ const jsRule = { } } -const lessRule = { // load less to string - test: /\.less$/, +const scssRule = { // load scss to string + test: /\.scss$/, use: [ { loader: 'css-to-string-loader' }, { loader: 'css-loader' }, - { loader: 'less-loader' } + { loader: 'sass-loader' } ] } @@ -48,7 +48,7 @@ export const jsConfig = () => { libraryExport: 'default' }, module: { - rules: [lodashRule, jsRule, lessRule] + rules: [lodashRule, jsRule, scssRule] }, devtool: 'source-map' } diff --git a/yarn.lock b/yarn.lock index 834541c26..f93c919eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -247,6 +247,10 @@ array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" @@ -348,6 +352,10 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" @@ -1632,6 +1640,21 @@ callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -1825,6 +1848,15 @@ clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" + clone-response@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -2135,6 +2167,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2266,6 +2305,12 @@ csso@~2.3.1: clap "^1.0.9" source-map "^0.5.3" +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" @@ -2925,18 +2970,18 @@ ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" -errno@^0.1.1, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: prr "~0.0.0" +errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" @@ -3528,6 +3573,10 @@ follow-redirects@1.0.0: dependencies: debug "^2.2.0" +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3692,6 +3741,12 @@ gaze@^0.5.1: dependencies: globule "~0.1.0" +gaze@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + generate-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" @@ -3706,6 +3761,10 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -3807,7 +3866,7 @@ glob@^4.3.1: minimatch "^2.0.1" once "^1.3.0" -glob@^6.0.1: +glob@^6.0.1, glob@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" dependencies: @@ -3817,7 +3876,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -3901,6 +3960,14 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globule@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + dependencies: + glob "~7.1.1" + lodash "~4.17.4" + minimatch "~3.0.2" + globule@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" @@ -4362,14 +4429,14 @@ ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: version "3.3.7" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +in-publish@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" @@ -4937,7 +5004,7 @@ jison@^0.4.18, jison@~0.4.15: lex-parser "~0.1.3" nomnom "1.5.2" -js-base64@^2.1.9: +js-base64@^2.1.8, js-base64@^2.1.9: version "2.4.3" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" @@ -5184,27 +5251,6 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -less-loader@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.0.6.tgz#7bcfbb9053181c18d57e213e87346958e02b2769" - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/less/-/less-2.7.3.tgz#cc1260f51c900a9ec0d91fb6998139e02507b63b" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.2.11" - mkdirp "^0.5.0" - promise "^7.1.1" - request "2.81.0" - source-map "^0.5.3" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -5299,6 +5345,16 @@ listr@^0.13.0: stream-to-observable "^0.2.0" strip-ansi "^3.0.1" +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -5330,7 +5386,7 @@ loader-utils@^0.2.15: json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@^1.0.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: @@ -5381,10 +5437,18 @@ lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" +lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" @@ -5419,10 +5483,18 @@ lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" +lodash.mergewith@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + lodash.template@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" @@ -5452,7 +5524,7 @@ lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -lodash@^4.11.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0: +lodash@^4.11.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.4: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" @@ -5512,6 +5584,13 @@ loose-envify@^1.0.0, loose-envify@^1.3.1: dependencies: js-tokens "^3.0.0" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lowercase-keys@1.0.0, lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" @@ -5572,6 +5651,10 @@ map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -5629,6 +5712,21 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + micromatch@^2.1.5, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -5692,14 +5790,14 @@ mime-types@^2.1.12, mime-types@~2.1.7: dependencies: mime-db "~1.29.0" -mime@^1.2.11, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - mime@^1.3.4: version "1.3.6" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" +mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -5722,7 +5820,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -5749,7 +5847,7 @@ minimist@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" -minimist@^1.1.0, minimist@^1.2.0: +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -5779,6 +5877,13 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + mkdirp@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" @@ -5861,6 +5966,10 @@ nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" +nan@^2.3.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866" + nanomatch@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" @@ -5913,6 +6022,24 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-gyp@^3.3.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" @@ -5961,6 +6088,30 @@ node-promise-es6@^0.3.1, node-promise-es6@^0.3.2: dependencies: babel-runtime "^6.5" +node-sass@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.3.2" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "~2.79.0" + sass-graph "^2.2.4" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" @@ -6028,6 +6179,12 @@ nomnom@1.5.2: chalk "~0.4.0" underscore "~1.6.0" +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -6035,7 +6192,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -6081,7 +6238,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -6240,6 +6397,12 @@ os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" @@ -6256,6 +6419,13 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +osenv@0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + osenv@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" @@ -6483,6 +6653,14 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -6979,6 +7157,10 @@ qs@~6.2.0: version "6.2.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" +qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -7061,6 +7243,13 @@ read-only-stream@^2.0.0: dependencies: readable-stream "^2.0.2" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -7068,6 +7257,14 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -7163,6 +7360,13 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + redis-commands@^1.2.0: version "1.3.5" resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2" @@ -7287,6 +7491,33 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" +request@2, request@^2.0.0, request@^2.74.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + request@2.75.x: version "2.75.0" resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93" @@ -7340,32 +7571,30 @@ request@2.81.0, request@^2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@^2.0.0, request@^2.74.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" +request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" combined-stream "~1.0.5" - extend "~3.0.1" + extend "~3.0.0" forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" requestretry@^1.2.2: version "1.13.0" @@ -7537,6 +7766,25 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" +sass-graph@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^7.0.0" + +sass-loader@^6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + pify "^3.0.0" + sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -7558,6 +7806,13 @@ scoped-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + "semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" @@ -7574,6 +7829,10 @@ semver@~5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + sequencify@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" @@ -7636,6 +7895,14 @@ sha.js@~2.4.4: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" @@ -7851,6 +8118,12 @@ source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -7958,6 +8231,12 @@ statuses@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +stdout-stream@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + dependencies: + readable-stream "^2.0.1" + stream-browserify@^2.0.0, stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -8106,6 +8385,12 @@ strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -8203,7 +8488,7 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar@^2.2.1: +tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -8344,10 +8629,20 @@ tough-cookie@~2.3.3: dependencies: punycode "^1.4.1" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +"true-case-path@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" + dependencies: + glob "^6.0.4" + tsscmp@~1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.5.tgz#7dc4a33af71581ab4337da91d85ca5427ebd9a97" @@ -8792,11 +9087,15 @@ whet.extend@~0.9.9: version "0.9.9" resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@^1.2.1, which@^1.2.14, which@^1.2.9: +which@1, which@^1.2.1, which@^1.2.14, which@^1.2.9: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: @@ -8884,6 +9183,12 @@ yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -8908,6 +9213,24 @@ yargs@9.0.1: y18n "^3.2.1" yargs-parser "^7.0.0" +yargs@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + yargs@~1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b"