Repository: nifi-fds
Updated Branches:
  refs/heads/master 9a373b8bb -> 09e43612e


[NIFI-5216] facilitate npm publish
[NIFI-5216] update README and remove deploy:ghpages
This closes #4


Project: http://git-wip-us.apache.org/repos/asf/nifi-fds/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-fds/commit/09e43612
Tree: http://git-wip-us.apache.org/repos/asf/nifi-fds/tree/09e43612
Diff: http://git-wip-us.apache.org/repos/asf/nifi-fds/diff/09e43612

Branch: refs/heads/master
Commit: 09e43612e7666f83e03dd6d20be809f41cbec476
Parents: 9a373b8
Author: Scott Aslan <scottyas...@gmail.com>
Authored: Wed Jun 6 19:19:17 2018 -0400
Committer: Matt Gilman <matt.c.gil...@gmail.com>
Committed: Thu Jun 7 16:38:45 2018 -0400

----------------------------------------------------------------------
 .gitignore                                      |   3 +
 README.md                                       | 104 +++++++++------
 docs/CONTRIBUTING.md                            |  65 ++++++++++
 package-lock.json                               |  97 ++++++++++----
 package.json                                    |   5 +-
 scripts/clean-install                           |  33 ++++-
 scripts/clean-install-skipTests                 |  19 ++-
 scripts/deploy-gh-pages                         |  33 -----
 scripts/dev-install                             |  33 ++++-
 scripts/dev-install-skipTests                   |  24 +++-
 scripts/npm-publish                             |   7 +
 src/demo-app/gh-pages.index.html                |   2 +-
 src/demo-app/gh-pages.package.json              |  71 ----------
 src/demo-app/gh-pages.systemjs.config.js        | 129 -------------------
 src/demo-app/index.html                         |   5 +-
 src/demo-app/systemjs.config.js                 |  34 ++---
 src/demo-app/theming/fds-demo.scss              |   6 +-
 .../core/common/styles/_basicElements.scss      |  16 +--
 src/platform/core/common/styles/_inputs.scss    |   4 +-
 src/platform/core/package.json                  |  40 ++++++
 src/platform/core/theming/_all-theme.scss       |   4 +-
 test/karma.conf.js                              |   1 -
 22 files changed, 385 insertions(+), 350 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index e3a849c..e0d4bd2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,7 @@
 target/
+node_modules/
+demo-app/
+index.html
 npm-debug.log*
 
 # Intellij

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 5da3b19..5535e4f 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,41 @@
 # Apache NiFi Flow Design System
 
-The Apache NiFi Flow Design System module is an atomic reusable platform 
providing consistent set of UI/UX components for open source friendly web 
applications to consume. Users can interact with this design system by running 
the demo-app locally or by visiting: 
[https://apache.github.io/nifi-fds/](https://apache.github.io/nifi-fds/). This 
demo application also provides an example of how an Angular application would 
leverage the nifi-fds NgModule.
+The Apache NiFi Flow Design System is an atomic reusable platform for 
providing a consistent set of UI/UX components for open source friendly web 
applications to consume. Users can interact with this design system by running 
the demo-app locally or by visiting: 
[https://apache.github.io/nifi-fds/](https://apache.github.io/nifi-fds/).
 
-#### npm
+The demo application serves 2 main purposes
+* As a way for code reviewers to validate code changes as well as each 
`@nifi-fds/core` release 
+* Provides a working example of how an Angular application should leverage the 
`@nifi-fds/core`.
 
-For developers not interested in building the FDS NgModule you can use **npm** 
to install the distribution files. (TBD: awaiting 0.1 release)
+## Quick Start
+For developers not interested in building the FDS NgModule you can use **npm** 
to install the distribution files.
 
 ```bash
-npm install nifi-fds
+npm install @nifi-fds/core
 ```
 
-## Setup
+#### SystemJS
+If your project is using the SystemJS module loader, you will need to add 
`@nifi-fds/core` to the configuration:
 
-Import the **Apache NiFi Flow Design System** NgModule into your angular 
application:
+```javascript
+System.config({
+  // existing configuration options
+  map: {
+    ...,
+    '@flow-design-system/core': 
'node_modules/@nifi-fds/core/flow-design-system.module.js',
+    '@flow-design-system/dialogs': 
'node_modules/@nifi-fds/core/dialogs/fds-dialogs.module.js',
+    '@flow-design-system/dialog-component': 
'node_modules/@nifi-fds/core/dialogs/fds-dialog.component.js',
+    '@flow-design-system/dialog-service': 
'node_modules/@nifi-fds/core/dialogs/services/dialog.service.js',
+    '@flow-design-system/confirm-dialog-component': 
'node_modules/@nifi-fds/core/dialogs/confirm-dialog/confirm-dialog.component.js',
+    '@flow-design-system/snackbars': 
'node_modules/@nifi-fds/core/snackbars/fds-snackbars.module.js',
+    '@flow-design-system/snackbar-component': 
'node_modules/@nifi-fds/core/snackbars/fds-snackbar.component.js',
+    '@flow-design-system/snackbar-service': 
'node_modules/@nifi-fds/core/snackbars/services/snackbar.service.js',
+    '@flow-design-system/coaster-component': 
'node_modules/@nifi-fds/core/snackbars/coaster/coaster.component.js',
+    '@flow-design-system/common/storage-service': 
'node_modules/@nifi-fds/core/common/services/fds-storage.service.js'
+  }
+});
+```
+
+Next, import the **Apache NiFi Flow Design System** NgModule into your angular 
application. 
 
 ```javascript
 var fdsCore = require('flow-design-system/core');
@@ -24,24 +47,28 @@ AppModule.annotations = [
     new ngCore.NgModule({
         imports: [
             fdsCore,
-    ...
-  ],
-  ...
-})
+            ...
+        ],
+        ...
+    })
 ...
 ```
 
-## Styles, Icons and Theming
+#### Style and Theming
+The Apache NiFi Flow Design System comes with a base CSS file 
`node_modules/@nifi-fds/core/common/styles/css/flow-design-system.min.css` 
(includes icons). This file must be included in the head of the HTML document 
before the theme file.
 
-A typical theme file will look something like this:
 
-```javascript
-@import '../../platform/core/theming/all-theme';
+NiFi FDS is also a themeable UI/UX component platform. To customize the core 
FDS components create a simple Sass file that defines your palettes and passes 
them to mixins that output the corresponding styles. A typical theme file will 
look something like this:
 
-$primaryColor: #9E737D;
-$primaryColorHover: #915D69;
-$accentColor: #d0dbe0;
-$accentColorHover: #CCCCCC;
+```sass
+@import '../../node_modules/@nifi-fds/core/common/styles/globalVars';
+@import '../../node_modules/@nifi-fds/core/theming/all-theme';
+
+//Change these
+$primaryColor: $rose1;
+$primaryColorHover: $rose2;
+$accentColor: $blue7;
+$accentColorHover: $grey4;
 
 // Include the base styles for Angular Material core. We include this here so 
that you only
 // have to load a single css file for Angular Material in your app.
@@ -62,38 +89,41 @@ $fds-theme: mat-light-theme($fds-primary, $fds-accent, 
$fds-warn);
 @include fds-theme($fds-theme);
 ```
 
-The Apache NiFi Flow Design System UI/UX Platform comes with a base CSS file 
`node_modules/flow-design-system/core/common/styles/css/flow-design-system.min.css`
 (includes icons) that should be included in the head of your HTML document.
+You don't have to use Sass to style the rest of your application but you will 
need to compile this one. Angular CLI, grunt-sass, gulp-sass, and node-sass are 
all great options; the output of which will be a CSS file that must be included 
in the head of the HTML document after the base NiFi FDS CSS styles:
+
+```html
+<link rel="stylesheet" 
href='node_modules/@nifi-fds/core/common/styles/css/flow-design-system.min.css'/>
+<link rel="stylesheet" href='demo-app/css/fds-demo.min.css'/>
+```
 
-## Building
+NOTE: The theme file may be concatenated and minified with the rest of the 
application's CSS.
 
-Developers can easily build this project using **npm** from the root nifi-fds 
directory via:
+#### Building
+Developers can perform code changes and easily build this project using 
**npm** from the root nifi-fds directory via:
 
 ```bash
 npm run clean:install
 ```
 
-or to run without unit tests run:
+or to build without running unit tests run:
 
 ```bash
 npm run clean:install:skipTests
 ```
 
-## Developing
-
-Developers can easily skip the re-instalation of node_modules and run unit 
tests in development mode using **npm**.
+Developers can speed up development time by skipping the re-installation of 
all node_modules:
 
 ```bash
 npm run dev:install
 ```
 
-or to run without unit tests run:
+or to skip re-installation of node_modules as well as building without running 
unit tests:
 
 ```bash
 npm run dev:install:skipTests
 ```
 
-## Running locally
-
+#### Running locally
 Once built you can start the application from the target directory via:
 
 ```bash
@@ -101,18 +131,10 @@ cd target
 npm start
 ```
 
-The demo application should now be availalbe at: 
[http://127.0.0.1:8080/](http://127.0.0.1:8080/). The port may differ if there 
is a conflict on 8080. See the output of the start command for the 
-available URLs.
-
-## Release Managment
-
-For developers with permissions releasing a new version of the NiFi Flow 
Design System is simple with [grunt 
bump](https://github.com/vojtajina/grunt-bump).
-
-## Deploying github.io demo
+The demo application should now be availalbe at: 
[http://127.0.0.1:8080/](http://127.0.0.1:8080/). The port may differ if there 
is a conflict on 8080. See the output of the start command for the available 
URLs.
 
-The nifi-fds github.io demo can be deployed from the root nifi-fds directory 
via: (TBD: awaiting 0.1 release)
-
-```bash
-npm run deploy:ghpages
-```
+## Contact us!
+The developer mailing list (d...@nifi.apache.org) is monitored pretty closely, 
and we tend to respond quickly.  If you have a question, don't hesitate to 
shoot us an e-mail - we're here to help! Unfortunately, though, e-mails can get 
lost in the shuffle, so if you do send an e-mail and don't get a response 
within a day or two, it's our fault - don't worry about bothering us. Just ping 
the mailing list again.
 
+## Documentation
+* [Contributing Guidelines](docs/CONTRIBUTING.md)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/docs/CONTRIBUTING.md
----------------------------------------------------------------------
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
new file mode 100644
index 0000000..a3e7b3a
--- /dev/null
+++ b/docs/CONTRIBUTING.md
@@ -0,0 +1,65 @@
+## Contributors
+We are always excited to have contributions from the community - especially 
from new contributors!
+We are interested in accepting contributions of code, as well as documentation 
and even artwork that can be applied as icons or styling to the application.
+
+#### Getting started...
+NiFi's JIRA page can be used to find tickets:  
+
+[NiFi Flow Design System Unassigned 
Issues](https://issues.apache.org/jira/issues/?filter=12331670&jql=project%20%3D%20NIFI%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20FDS%20AND%20assignee%20in%20(EMPTY)%20ORDER%20BY%20priority%20DESC)
+
+#### Create a ticket for new bugs or features
+Run into a bug or think there is something that would benefit the project?  
Regardless if you have the time to provide the fix or implementation, we 
encourage any such items to be filed as an issue at the Apache NiFi JIRA.
+
+#### Providing contributions
+The source is hosted at https://git-wip-us.apache.org/repos/asf/nifi-fds.git
+
+Like all Apache projects, a mirror of the git repository is also located on 
GitHub at https://github.com/apache/nifi-fds which provides ease in forking and 
generating pull requests (PRs).
+
+#### Configure your git client
+Ensure your git user name and email are configured
+ The following lines ensure your commits are appropriately annotated with your 
information
+```bash
+git config --global user.name "User Name"
+git config --global user.email user.n...@email.org
+```
+ 
+##### Windows Specific configuration
+The following options provide handling of long file paths that can be 
troublesome as well as not using Windows style line returns.
+```bash
+git config --global core.longpaths true
+git config --global core.autocrlf false
+```
+ 
+#### Clone a copy of the repository
+From the Apache Hosted Repository
+```bash
+git clone https://git-wip-us.apache.org/repos/asf/nifi-fds.git
+```
+
+From the GitHub Mirror
+```bash
+git clone https://github.com/apache/nifi-fds.git
+```
+
+From your GitHub Fork
+```bash
+git clone g...@github.com:<account name>/nifi-fds.git
+```
+
+#### Retrieval of upstream changes
+Additionally, it is beneficial to add a git remote for the mirror to allow the 
retrieval of upstream changes
+```bash
+git remote add upstream https://github.com/apache/nifi.git
+```
+
+### The NiFi community uses a modified Gitflow development model.  A summary:
+* Use of a central repository
+* Branch per feature similar to the Feature Branch Workflow
+* Work is done locally and then pushed to the central repo
+* 'master' branch contains the official release history.  Code changes (not 
code formatting, administrative updates) require Review-Then-Commit (RTC) by 
another committer to get incorporated.
+
+Apache NIFI has a Review-Then-Commit (RTC) philosophy for handling all 
contributions.  Reviewers first ensure that the code applies and builds 
appropriately.  From here, code is evaluated to ensure best practices within 
the NiFi FDS are applied and, where applicable, that the user experience of 
interfacing with the contribution is consistent and any changes are backwards 
compatible.  This process may be iterative but works toward a final product 
that is then merged into the codebase. 
+
+While only committers can actively promote contributions into the repository, 
feedback on issues, regardless of committer status, is appreciated and valued 
in the review process.
+
+If you are interested in facilitating the review process, a listing of all 
code contributions with a patch are available via a JIRA filter, NIFI Patch 
Available.

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/package-lock.json
----------------------------------------------------------------------
diff --git a/package-lock.json b/package-lock.json
index b280440..bddc961 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -645,11 +645,15 @@
       "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz";,
       "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
       "dev": true,
+      "requires": {
+        "hoek": "5.0.3"
+      },
       "dependencies": {
         "hoek": {
           "version": "5.0.3",
           "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-          "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+          "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+          "dev": true
         }
       }
     },
@@ -995,7 +999,18 @@
           "version": "5.2.0",
           "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz";,
           "integrity": 
"sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
-          "dev": true
+          "dev": true,
+          "requires": {
+            "hoek": "5.0.3"
+          },
+          "dependencies": {
+            "hoek": {
+              "version": "5.0.3",
+              "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true
+            }
+          }
         },
         "hoek": {
           "version": "5.0.3",
@@ -2616,13 +2631,15 @@
       "requires": {
         "boom": "4.3.1",
         "cryptiles": "3.1.2",
+        "hoek": "5.0.3",
         "sntp": "2.1.0"
       },
       "dependencies": {
         "hoek": {
           "version": "5.0.3",
           "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-          "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+          "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+          "dev": true
         }
       }
     },
@@ -3151,22 +3168,13 @@
       }
     },
     "jasmine": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz";,
-      "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.1.0.tgz";,
+      "integrity": "sha1-K9Wf1+xuwOistk4J9Fpo7SrRlSo=",
       "dev": true,
       "requires": {
-        "exit": "0.1.2",
         "glob": "7.0.6",
-        "jasmine-core": "2.8.0"
-      },
-      "dependencies": {
-        "jasmine-core": {
-          "version": "2.8.0",
-          "resolved": 
"https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz";,
-          "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
-          "dev": true
-        }
+        "jasmine-core": "3.1.0"
       }
     },
     "jasmine-core": {
@@ -3544,6 +3552,7 @@
         "hipchat-notifier": "1.1.0",
         "loggly": "1.1.1",
         "mailgun-js": "0.7.15",
+        "nodemailer": "4.0.1",
         "redis": "2.8.0",
         "semver": "5.5.0",
         "slack-node": "0.2.0",
@@ -3553,7 +3562,9 @@
         "nodemailer": {
           "version": "4.0.1",
           "resolved": 
"https://registry.npmjs.org/nodemailer/-/nodemailer-4.0.1.tgz";,
-          "integrity": "sha1-uVhksH+s7oKH6CMu/9bx1W7HWrI="
+          "integrity": "sha1-uVhksH+s7oKH6CMu/9bx1W7HWrI=",
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -3598,11 +3609,15 @@
           "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";,
           "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
           "dev": true,
+          "requires": {
+            "hoek": "5.0.3"
+          },
           "dependencies": {
             "hoek": {
               "version": "5.0.3",
               "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true
             }
           }
         },
@@ -3657,13 +3672,16 @@
           "requires": {
             "boom": "2.10.1",
             "cryptiles": "2.0.5",
+            "hoek": "5.0.3",
             "sntp": "1.0.9"
           },
           "dependencies": {
             "hoek": {
               "version": "5.0.3",
               "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true,
+              "optional": true
             }
           }
         },
@@ -3756,11 +3774,16 @@
           "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
           "dev": true,
           "optional": true,
+          "requires": {
+            "hoek": "5.0.3"
+          },
           "dependencies": {
             "hoek": {
               "version": "5.0.3",
               "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true,
+              "optional": true
             }
           }
         },
@@ -4096,11 +4119,15 @@
           "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";,
           "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
           "dev": true,
+          "requires": {
+            "hoek": "5.0.3"
+          },
           "dependencies": {
             "hoek": {
               "version": "5.0.3",
               "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true
             }
           }
         },
@@ -4150,13 +4177,15 @@
           "requires": {
             "boom": "2.10.1",
             "cryptiles": "2.0.5",
+            "hoek": "5.0.3",
             "sntp": "1.0.9"
           },
           "dependencies": {
             "hoek": {
               "version": "5.0.3",
               "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true
             }
           }
         },
@@ -4215,11 +4244,15 @@
           "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";,
           "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
           "dev": true,
+          "requires": {
+            "hoek": "5.0.3"
+          },
           "dependencies": {
             "hoek": {
               "version": "5.0.3",
               "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+              "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+              "dev": true
             }
           }
         },
@@ -4700,7 +4733,7 @@
         "blocking-proxy": "1.0.1",
         "chalk": "1.1.3",
         "glob": "7.0.6",
-        "jasmine": "2.8.0",
+        "jasmine": "3.1.0",
         "jasminewd2": "2.2.0",
         "optimist": "0.6.1",
         "q": "1.4.1",
@@ -4717,6 +4750,16 @@
           "integrity": 
"sha512-eknaJ3Io/JasGGinVeqY5TsPlQgHbiNlHnK5zdFPRNs9XRggDykKz8zPesneOMEZJxWji7G3CfsUW0Ds9Dw0Bw==",
           "dev": true
         },
+        "jasmine": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.1.0.tgz";,
+          "integrity": "sha1-K9Wf1+xuwOistk4J9Fpo7SrRlSo=",
+          "dev": true,
+          "requires": {
+            "glob": "7.0.6",
+            "jasmine-core": "3.1.0"
+          }
+        },
         "rimraf": {
           "version": "2.6.2",
           "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz";,
@@ -5310,11 +5353,15 @@
       "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz";,
       "integrity": 
"sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
       "dev": true,
+      "requires": {
+        "hoek": "5.0.3"
+      },
       "dependencies": {
         "hoek": {
           "version": "5.0.3",
           "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz";,
-          "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw=="
+          "integrity": 
"sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==",
+          "dev": true
         }
       }
     },

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 7e988fb..a73ea81 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
     "clean:install:skipTests": "bash ./scripts/clean-install-skipTests",
     "dev:install": "bash ./scripts/dev-install",
     "dev:install:skipTests": "bash ./scripts/dev-install-skipTests",
-    "deploy:ghpages": "bash ./scripts/deploy-gh-pages",
+    "publish": "bash ./scripts/npm-publish",
     "test": "./node_modules/protractor/bin/webdriver-manager update --gecko 
false && karma start karma.conf.js --single-run",
     "test:dev": "./node_modules/protractor/bin/webdriver-manager update 
--gecko false && karma start karma.conf.js"
   },
@@ -36,6 +36,7 @@
     "material design",
     "components",
     "reusable",
+    "nifi-fds",
     "covalent"
   ],
   "repository": {
@@ -77,7 +78,7 @@
     "grunt-contrib-compress": "1.4.3",
     "grunt-sass": "2.1.0",
     "http-server": "0.11.1",
-    "jasmine-core": "3.1.0",
+    "jasmine": "3.1.0",
     "karma": "2.0.2",
     "karma-chrome-launcher": "2.2.0",
     "karma-cli": "1.0.1",

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/scripts/clean-install
----------------------------------------------------------------------
diff --git a/scripts/clean-install b/scripts/clean-install
index e1337dc..9a9a20d 100644
--- a/scripts/clean-install
+++ b/scripts/clean-install
@@ -16,8 +16,39 @@
 set -e
 
 # build
-bash ./scripts/clean-install-skipTests
+rm -rf ./target
+mkdir target
+cp -R ./src/demo-app/ ./target/demo-app
+cp -R ./src/platform/ ./target/platform
+cp package.json ./target/package.json
+cp package-lock.json ./target/package-lock.json
+cp README.md ./target/README.md
+cp LICENSE ./target/LICENSE
+cp NOTICE ./target/NOTICE
+cp ./src/demo-app/index.html ./target/index.html
+cp ./test/karma.conf.js ./target/karma.conf.js
+cp ./test/karma-test-shim.js ./target/karma-test-shim.js
+cp Gruntfile.js ./target/Gruntfile.js
+cp ./src/demo-app/gh-pages.* ./target/
 cd ./target
+npm install
+
+# build platform base styles
+npm run build:platform
 
 # test
 npm test
+
+# simulate npm install of @nifi-fds/core
+mkdir ./node_modules/@nifi-fds
+mv ./platform/core/ ./node_modules/@nifi-fds
+cp ../README.md ./node_modules/@nifi-fds/core/
+cp ../LICENSE ./node_modules/@nifi-fds/core/
+cp ../NOTICE ./node_modules/@nifi-fds/core/
+
+# build demo theme
+npm run build:demo-app
+
+# clean up
+rm -rf ./platform
+

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/scripts/clean-install-skipTests
----------------------------------------------------------------------
diff --git a/scripts/clean-install-skipTests b/scripts/clean-install-skipTests
index 903e185..e45cfeb 100644
--- a/scripts/clean-install-skipTests
+++ b/scripts/clean-install-skipTests
@@ -22,6 +22,9 @@ cp -R ./src/demo-app/ ./target/demo-app
 cp -R ./src/platform/ ./target/platform
 cp package.json ./target/package.json
 cp package-lock.json ./target/package-lock.json
+cp README.md ./target/README.md
+cp LICENSE ./target/LICENSE
+cp NOTICE ./target/NOTICE
 cp ./src/demo-app/index.html ./target/index.html
 cp ./test/karma.conf.js ./target/karma.conf.js
 cp ./test/karma-test-shim.js ./target/karma-test-shim.js
@@ -29,5 +32,19 @@ cp Gruntfile.js ./target/Gruntfile.js
 cp ./src/demo-app/gh-pages.* ./target/
 cd ./target
 npm install
-npm run build:demo-app
+
+# build platform base styles
 npm run build:platform
+
+# simulate npm install of @nifi-fds/core
+mkdir ./node_modules/@nifi-fds
+mv ./platform/core/ ./node_modules/@nifi-fds
+cp ../README.md ./node_modules/@nifi-fds/core/
+cp ../LICENSE ./node_modules/@nifi-fds/core/
+cp ../NOTICE ./node_modules/@nifi-fds/core/
+
+# build demo theme
+npm run build:demo-app
+
+# clean up
+rm -rf ./platform

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/scripts/deploy-gh-pages
----------------------------------------------------------------------
diff --git a/scripts/deploy-gh-pages b/scripts/deploy-gh-pages
deleted file mode 100644
index 61c799f..0000000
--- a/scripts/deploy-gh-pages
+++ /dev/null
@@ -1,33 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#!/bin/bash
-npm run clean:install
-echo 'Build Complete'
-git checkout gh-pages
-echo 'Created and Checked out gh-pages branch'
-
-cp -f ./target/gh-pages.package.json ./package.json
-npm install
-mkdir ./node_modules/nifi-fds
-cp -Rf ./target/platform/ ./node_modules/nifi-fds/platform
-cp -Rf ./target/demo-app/ ./demo-app
-cp -f ./target/gh-pages.index.html ./index.html
-cp -f ./target/gh-pages.systemjs.config.js ./demo-app/systemjs.config.js
-echo 'Tracking files'
-git add -A .
-echo 'Commiting files'
-git commit -m 'gh-pages update'
-echo 'Pushing files into gh-pages branch'
-git push apache gh-pages:gh-pages

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/scripts/dev-install
----------------------------------------------------------------------
diff --git a/scripts/dev-install b/scripts/dev-install
index e29fd8f..345a728 100644
--- a/scripts/dev-install
+++ b/scripts/dev-install
@@ -16,8 +16,37 @@
 set -e
 
 # build
-bash ./scripts/dev-install-skipTests
+cp -Rf ./src/demo-app/ ./target/demo-app
+cp -Rf ./src/platform/ ./target/platform
+cp package.json ./target/package.json
+cp package-lock.json ./target/package-lock.json
+cp README.md ./target/README.md
+cp LICENSE ./target/LICENSE
+cp NOTICE ./target/NOTICE
+cp ./src/demo-app/index.html ./target/index.html
+cp ./test/karma.conf.js ./target/karma.conf.js
+cp ./test/karma-test-shim.js ./target/karma-test-shim.js
+cp Gruntfile.js ./target/Gruntfile.js
+cp ./src/demo-app/gh-pages.* ./target/
 cd ./target
+npm install
+
+# build platform base styles
+npm run build:platform
 
 # test
-npm run test:dev
+npm test
+
+# simulate npm install of @nifi-fds/core
+rm -rf ./node_modules/@nifi-fds
+mkdir ./node_modules/@nifi-fds
+mv ./platform/core/ ./node_modules/@nifi-fds
+cp ../README.md ./node_modules/@nifi-fds/core/
+cp ../LICENSE ./node_modules/@nifi-fds/core/
+cp ../NOTICE ./node_modules/@nifi-fds/core/
+
+# build demo theme
+npm run build:demo-app
+
+# clean up
+rm -rf ./platform

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/scripts/dev-install-skipTests
----------------------------------------------------------------------
diff --git a/scripts/dev-install-skipTests b/scripts/dev-install-skipTests
index ba9c142..31c58c3 100644
--- a/scripts/dev-install-skipTests
+++ b/scripts/dev-install-skipTests
@@ -16,10 +16,13 @@
 set -e
 
 # build
-cp -R ./src/demo-app/ ./target/demo-app
-cp -R ./src/platform/ ./target/platform
+cp -Rf ./src/demo-app/ ./target/demo-app
+cp -Rf ./src/platform/ ./target/platform
 cp package.json ./target/package.json
 cp package-lock.json ./target/package-lock.json
+cp README.md ./target/README.md
+cp LICENSE ./target/LICENSE
+cp NOTICE ./target/NOTICE
 cp ./src/demo-app/index.html ./target/index.html
 cp ./test/karma.conf.js ./target/karma.conf.js
 cp ./test/karma-test-shim.js ./target/karma-test-shim.js
@@ -27,5 +30,20 @@ cp Gruntfile.js ./target/Gruntfile.js
 cp ./src/demo-app/gh-pages.* ./target/
 cd ./target
 npm install
-npm run build:demo-app
+
+# build platform base styles
 npm run build:platform
+
+# simulate npm install of @nifi-fds/core
+rm -rf ./node_modules/@nifi-fds
+mkdir ./node_modules/@nifi-fds
+mv ./platform/core/ ./node_modules/@nifi-fds
+cp ../README.md ./node_modules/@nifi-fds/core/
+cp ../LICENSE ./node_modules/@nifi-fds/core/
+cp ../NOTICE ./node_modules/@nifi-fds/core/
+
+# build demo theme
+npm run build:demo-app
+
+# clean up
+rm -rf ./platform

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/scripts/npm-publish
----------------------------------------------------------------------
diff --git a/scripts/npm-publish b/scripts/npm-publish
new file mode 100644
index 0000000..bb261b6
--- /dev/null
+++ b/scripts/npm-publish
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+set -e
+
+# build
+bash ./scripts/clean-install
+cd ./target/node_modules/@nifi-fds/core
+npm publish --access public
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/demo-app/gh-pages.index.html
----------------------------------------------------------------------
diff --git a/src/demo-app/gh-pages.index.html b/src/demo-app/gh-pages.index.html
index 8e3ce02..b5c94b7 100644
--- a/src/demo-app/gh-pages.index.html
+++ b/src/demo-app/gh-pages.index.html
@@ -21,7 +21,7 @@
     <meta name='viewport' content='width=device-width, initial-scale=1'>
     <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
     <link rel="stylesheet" 
href="node_modules/@covalent/core/common/platform.css">
-    <link rel="stylesheet" 
href='node_modules/nifi-fds/platform/core/common/styles/css/flow-design-system.min.css'/>
+    <link rel="stylesheet" 
href='node_modules/@nifi-fds/core/common/styles/css/flow-design-system.min.css'/>
     <link rel="stylesheet" href='demo-app/css/fds-demo.min.css'/>
     <link rel='stylesheet' 
href='node_modules/font-awesome/css/font-awesome.css'/>
 </head>

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/demo-app/gh-pages.package.json
----------------------------------------------------------------------
diff --git a/src/demo-app/gh-pages.package.json 
b/src/demo-app/gh-pages.package.json
deleted file mode 100644
index 00753cc..0000000
--- a/src/demo-app/gh-pages.package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
-  "//": "Licensed to the Apache Software Foundation (ASF) under one or more",
-  "//": "contributor license agreements.  See the NOTICE file distributed 
with",
-  "//": "this work for additional information regarding copyright ownership.",
-  "//": "The ASF licenses this file to You under the Apache License, Version 
2.0",
-  "//": "(the \"License\"); you may not use this file except in compliance 
with",
-  "//": "the License.  You may obtain a copy of the License at",
-  "//": "",
-  "//": "http://www.apache.org/licenses/LICENSE-2.0";,
-  "//": "",
-  "//": "Unless required by applicable law or agreed to in writing, software",
-  "//": "distributed under the License is distributed on an \"AS IS\" BASIS,",
-  "//": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
implied.",
-  "//": "See the License for the specific language governing permissions and",
-  "//": "limitations under the License.",
-  "name": "nifi-fds-demo",
-  "version": "0.0.0",
-  "scripts": {
-    "start": "./node_modules/http-server/bin/http-server ."
-  },
-  "description": "The Apache NiFi Flow Design System demo provides users with 
an example web application that consumes the NgModule and allows users to 
interact with the UI/UX components.",
-  "keywords": [
-    "flow design system",
-    "angular",
-    "material",
-    "material design",
-    "components",
-    "reusable",
-    "covalent"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/apache/nifi-fds.git";
-  },
-  "bugs": {
-    "url": "https://github.com/apache/nifi-fds/issues";
-  },
-  "license": "Apache-2.0",
-  "dependencies": {
-    "core-js": "2.5.5",
-    "jquery": "3.2.1",
-    "rxjs": "5.5.6",
-    "systemjs": "0.20.17",
-    "systemjs-plugin-text": "0.0.11",
-    "zone.js": "0.8.17",
-    "@angular/animations": "5.2.0",
-    "@angular/cdk": "5.2.0",
-    "@angular/common": "5.2.0",
-    "@angular/compiler": "5.2.0",
-    "@angular/core": "5.2.0",
-    "@angular/flex-layout": "5.0.0-beta.14",
-    "@angular/forms": "5.2.0",
-    "@angular/http": "5.2.0",
-    "@angular/material": "5.2.0",
-    "@angular/platform-browser": "5.2.0",
-    "@angular/platform-browser-dynamic": "5.2.0",
-    "@angular/router": "5.2.0",
-    "@covalent/core": "1.0.0",
-    "detect-libc": "1.0.3",
-    "font-awesome": "4.7.0",
-    "hammerjs": "2.0.8",
-    "roboto-fontface": "0.7.0"
-  },
-  "devDependencies": {
-    "grunt": "0.4.5",
-    "grunt-cli": "1.2.0",
-    "grunt-contrib-compress": "1.4.3",
-    "grunt-sass": "2.0.0",
-    "load-grunt-tasks": "3.5.2"
-  }
-}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/demo-app/gh-pages.systemjs.config.js
----------------------------------------------------------------------
diff --git a/src/demo-app/gh-pages.systemjs.config.js 
b/src/demo-app/gh-pages.systemjs.config.js
deleted file mode 100644
index 3fc22e9..0000000
--- a/src/demo-app/gh-pages.systemjs.config.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-(function (global) {
-    System.config({
-        paths: {
-            // paths serve as alias
-            'npm:': 'node_modules/'
-        },
-        // map tells the System loader where to look for things
-        map: {
-            'text': 'npm:systemjs-plugin-text/text.js',
-            'app': './demo-app',
-
-            // jquery
-            'jquery': 'npm:jquery/dist/jquery.min.js',
-
-            // Angular
-            '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
-            '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
-            '@angular/common/http': 
'npm:@angular/common/bundles/common-http.umd.js',
-            '@angular/common/http/testing': 
'npm:@angular/common/bundles/common-http-testing.umd.js',
-            '@angular/platform-browser': 
'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
-            '@angular/platform-browser-dynamic': 
'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
-            '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
-            '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
-            '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
-            '@angular/flex-layout': 
'npm:@angular/flex-layout/bundles/flex-layout.umd.js',
-            '@angular/flex-layout/core': 
'npm:@angular/flex-layout/bundles/flex-layout-core.umd.js',
-            '@angular/flex-layout/extended': 
'npm:@angular/flex-layout/bundles/flex-layout-extended.umd.js',
-            '@angular/flex-layout/flex': 
'npm:@angular/flex-layout/bundles/flex-layout-flex.umd.js',
-            '@angular/material': 
'npm:@angular/material/bundles/material.umd.js',
-            '@angular/material/core': 
'npm:@angular/material/bundles/material-core.umd.js',
-            '@angular/material/card': 
'npm:@angular/material/bundles/material-card.umd.js',
-            '@angular/material/divider': 
'npm:@angular/material/bundles/material-divider.umd.js',
-            '@angular/material/progress-bar': 
'npm:@angular/material/bundles/material-progress-bar.umd.js',
-            '@angular/material/progress-spinner': 
'npm:@angular/material/bundles/material-progress-spinner.umd.js',
-            '@angular/material/chips': 
'npm:@angular/material/bundles/material-chips.umd.js',
-            '@angular/material/input': 
'npm:@angular/material/bundles/material-input.umd.js',
-            '@angular/material/icon': 
'npm:@angular/material/bundles/material-icon.umd.js',
-            '@angular/material/button': 
'npm:@angular/material/bundles/material-button.umd.js',
-            '@angular/material/checkbox': 
'npm:@angular/material/bundles/material-checkbox.umd.js',
-            '@angular/material/tooltip': 
'npm:@angular/material/bundles/material-tooltip.umd.js',
-            '@angular/material/dialog': 
'npm:@angular/material/bundles/material-dialog.umd.js',
-            '@angular/material/sidenav': 
'npm:@angular/material/bundles/material-sidenav.umd.js',
-            '@angular/material/menu': 
'npm:@angular/material/bundles/material-menu.umd.js',
-            '@angular/material/form-field': 
'npm:@angular/material/bundles/material-form-field.umd.js',
-            '@angular/material/toolbar': 
'npm:@angular/material/bundles/material-toolbar.umd.js',
-            '@angular/material/autocomplete': 
'npm:@angular/material/bundles/material-autocomplete.umd.js',
-            '@angular/platform-browser/animations': 
'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',
-            '@angular/cdk': 'npm:@angular/cdk/bundles/cdk.umd.js',
-            '@angular/cdk/a11y': 'npm:@angular/cdk/bundles/cdk-a11y.umd.js',
-            '@angular/cdk/accordion': 
'npm:@angular/cdk/bundles/cdk-accordion.umd.js',
-            '@angular/cdk/layout': 
'npm:@angular/cdk/bundles/cdk-layout.umd.js',
-            '@angular/cdk/collections': 
'npm:@angular/cdk/bundles/cdk-collections.umd.js',
-            '@angular/cdk/observers': 
'npm:@angular/cdk/bundles/cdk-observers.umd.js',
-            '@angular/cdk/overlay': 
'npm:@angular/cdk/bundles/cdk-overlay.umd.js',
-            '@angular/cdk/platform': 
'npm:@angular/cdk/bundles/cdk-platform.umd.js',
-            '@angular/cdk/portal': 
'npm:@angular/cdk/bundles/cdk-portal.umd.js',
-            '@angular/cdk/keycodes': 
'npm:@angular/cdk/bundles/cdk-keycodes.umd.js',
-            '@angular/cdk/bidi': 'npm:@angular/cdk/bundles/cdk-bidi.umd.js',
-            '@angular/cdk/coercion': 
'npm:@angular/cdk/bundles/cdk-coercion.umd.js',
-            '@angular/cdk/table': 'npm:@angular/cdk/bundles/cdk-table.umd.js',
-            '@angular/cdk/rxjs': 'npm:@angular/cdk/bundles/cdk-rxjs.umd.js',
-            '@angular/cdk/scrolling': 
'npm:@angular/cdk/bundles/cdk-scrolling.umd.js',
-            '@angular/cdk/stepper': 
'npm:@angular/cdk/bundles/cdk-stepper.umd.js',
-            '@angular/animations': 
'npm:@angular/animations/bundles/animations.umd.js',
-            '@angular/animations/browser': 
'npm:@angular/animations/bundles/animations-browser.umd.js',
-            '@angular/compiler': 
'npm:@angular/compiler/bundles/compiler.umd.js',
-
-            // needed to support gestures for angular material
-            'hammerjs': 'npm:hammerjs/hammer.min.js',
-
-            // Covalent
-            '@covalent/core': 
'npm:@covalent/core/bundles/covalent-core.umd.min.js',
-            '@covalent/core/common': 
'npm:@covalent/core/bundles/covalent-core-common.umd.min.js',
-
-            // other libraries
-            'rxjs': 'npm:rxjs',
-            'zone.js': 'npm:zone.js/dist/zone.js',
-            'core-js': 'npm:core-js/client/shim.min.js',
-            'superagent': 'npm:superagent/superagent.js',
-            'querystring': 'npm:querystring',
-            'tslib': 'npm:tslib/tslib.js',
-
-            // Flow Design System
-            '@flow-design-system/core': 
'npm:nifi-fds/platform/core/flow-design-system.module.js',
-            '@flow-design-system/dialogs': 
'npm:nifi-fds/platform/core/dialogs/fds-dialogs.module.js',
-            '@flow-design-system/dialog-component': 
'npm:nifi-fds/platform/core/dialogs/fds-dialog.component.js',
-            '@flow-design-system/dialog-service': 
'npm:nifi-fds/platform/core/dialogs/services/dialog.service.js',
-            '@flow-design-system/confirm-dialog-component': 
'npm:nifi-fds/platform/core/dialogs/confirm-dialog/confirm-dialog.component.js',
-            '@flow-design-system/snackbars': 
'npm:nifi-fds/platform/core/snackbars/fds-snackbars.module.js',
-            '@flow-design-system/snackbar-component': 
'npm:nifi-fds/platform/core/snackbars/fds-snackbar.component.js',
-            '@flow-design-system/snackbar-service': 
'npm:nifi-fds/platform/core/snackbars/services/snackbar.service.js',
-            '@flow-design-system/coaster-component': 
'npm:nifi-fds/platform/core/snackbars/coaster/coaster.component.js'
-        },
-        // packages tells the System loader how to load when no filename 
and/or no extension
-        packages: {
-            app: {
-                defaultExtension: 'js',
-                meta: {
-                    './*.js': {
-                        loader: 'demo-app/systemjs-angular-loader.js'
-                    }
-                }
-            },
-            'demo-app/systemjs-angular-loader.js': {
-                loader: false
-            },
-            'rxjs': {
-                defaultExtension: 'js'
-            }
-        }
-    });
-})(this);

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/demo-app/index.html
----------------------------------------------------------------------
diff --git a/src/demo-app/index.html b/src/demo-app/index.html
index 29b0f25..ce269ea 100644
--- a/src/demo-app/index.html
+++ b/src/demo-app/index.html
@@ -21,7 +21,6 @@
     <meta name='viewport' content='width=device-width, initial-scale=1'>
     <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
     <link rel="stylesheet" 
href="node_modules/@covalent/core/common/platform.css">
-    <link rel="stylesheet" 
href='platform/core/common/styles/css/flow-design-system.min.css'/>
     <link rel="stylesheet" href='demo-app/css/fds-demo.min.css'/>
     <link rel='stylesheet' 
href='node_modules/font-awesome/css/font-awesome.css'/>
 </head>
@@ -31,6 +30,8 @@
 <script src="node_modules/systemjs/dist/system.src.js"></script>
 <script src="demo-app/systemjs.config.js?"></script>
 <script>
-    System.import('demo-app/fds-bootstrap.js').catch(function(err) 
{console.error(err);});
+    System.import('demo-app/fds-bootstrap.js').catch(function (err) {
+        console.error(err);
+    });
 </script>
 </html>

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/demo-app/systemjs.config.js
----------------------------------------------------------------------
diff --git a/src/demo-app/systemjs.config.js b/src/demo-app/systemjs.config.js
index 8065cca..f9bfb96 100644
--- a/src/demo-app/systemjs.config.js
+++ b/src/demo-app/systemjs.config.js
@@ -93,21 +93,19 @@
             'rxjs': 'npm:rxjs',
             'zone.js': 'npm:zone.js/dist/zone.js',
             'core-js': 'npm:core-js/client/shim.min.js',
-            'superagent': 'npm:superagent/superagent.js',
-            'querystring': 'npm:querystring',
             'tslib': 'npm:tslib/tslib.js',
 
             // Flow Design System
-            '@flow-design-system/core': 
'platform/core/flow-design-system.module.js',
-            '@flow-design-system/dialogs': 
'platform/core/dialogs/fds-dialogs.module.js',
-            '@flow-design-system/dialog-component': 
'platform/core/dialogs/fds-dialog.component.js',
-            '@flow-design-system/dialog-service': 
'platform/core/dialogs/services/dialog.service.js',
-            '@flow-design-system/confirm-dialog-component': 
'platform/core/dialogs/confirm-dialog/confirm-dialog.component.js',
-            '@flow-design-system/snackbars': 
'platform/core/snackbars/fds-snackbars.module.js',
-            '@flow-design-system/snackbar-component': 
'platform/core/snackbars/fds-snackbar.component.js',
-            '@flow-design-system/snackbar-service': 
'platform/core/snackbars/services/snackbar.service.js',
-            '@flow-design-system/coaster-component': 
'platform/core/snackbars/coaster/coaster.component.js',
-            '@flow-design-system/common/storage-service': 
'platform/core/common/services/fds-storage.service.js'
+            '@flow-design-system/core': 
'npm:@nifi-fds/core/flow-design-system.module.js',
+            '@flow-design-system/dialogs': 
'npm:@nifi-fds/core/dialogs/fds-dialogs.module.js',
+            '@flow-design-system/dialog-component': 
'npm:@nifi-fds/core/dialogs/fds-dialog.component.js',
+            '@flow-design-system/dialog-service': 
'npm:@nifi-fds/core/dialogs/services/dialog.service.js',
+            '@flow-design-system/confirm-dialog-component': 
'npm:@nifi-fds/core/dialogs/confirm-dialog/confirm-dialog.component.js',
+            '@flow-design-system/snackbars': 
'npm:@nifi-fds/core/snackbars/fds-snackbars.module.js',
+            '@flow-design-system/snackbar-component': 
'npm:@nifi-fds/core/snackbars/fds-snackbar.component.js',
+            '@flow-design-system/snackbar-service': 
'npm:@nifi-fds/core/snackbars/services/snackbar.service.js',
+            '@flow-design-system/coaster-component': 
'npm:@nifi-fds/core/snackbars/coaster/coaster.component.js',
+            '@flow-design-system/common/storage-service': 
'npm:@nifi-fds/core/common/services/fds-storage.service.js'
         },
         // packages tells the System loader how to load when no filename 
and/or no extension
         packages: {
@@ -124,18 +122,6 @@
             },
             'rxjs': {
                 defaultExtension: 'js'
-            },
-            'querystring': {
-                main: './index.js',
-                defaultExtension: 'js'
-            },
-            'moment': {
-                main: './moment.js',
-                defaultExtension: 'js'
-            },
-            'angular2-moment': {
-                main: './index.js',
-                defaultExtension: 'js'
             }
         }
     });

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/demo-app/theming/fds-demo.scss
----------------------------------------------------------------------
diff --git a/src/demo-app/theming/fds-demo.scss 
b/src/demo-app/theming/fds-demo.scss
index 3668229..3ef54f6 100644
--- a/src/demo-app/theming/fds-demo.scss
+++ b/src/demo-app/theming/fds-demo.scss
@@ -19,8 +19,10 @@
  * In this file you should centralize your imports. After compilation simply 
import this file using the following HTML or equivalent:
  * <link href='demo-app/css/fds-demo.min.css' media='screen, projection' 
rel='stylesheet' type='text/css' /> */
 
-@import '../../platform/core/common/styles/globalVars';
-@import '../../platform/core/theming/all-theme';
+@import '../../node_modules/@nifi-fds/core/common/styles/globalVars';
+// Include the base styles for Nifi FDS core. We include this here so that you 
only
+// have to load a single css file for Nifi FDS in your app.
+@import '../../node_modules/@nifi-fds/core/theming/all-theme';
 @import 'structureElements';
 @import 'helperClasses';
 

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/platform/core/common/styles/_basicElements.scss
----------------------------------------------------------------------
diff --git a/src/platform/core/common/styles/_basicElements.scss 
b/src/platform/core/common/styles/_basicElements.scss
index 76c3a58..333729e 100644
--- a/src/platform/core/common/styles/_basicElements.scss
+++ b/src/platform/core/common/styles/_basicElements.scss
@@ -19,56 +19,56 @@
   font-family: 'Roboto';
   font-style: normal;
   font-weight: 300;
-  src: local("Roboto Light"), local("Roboto-Light"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto/Roboto-Light.ttf")
 format("truetype");
+  src: local("Roboto Light"), local("Roboto-Light"), 
url("../../../../../roboto-fontface/fonts/roboto/Roboto-Light.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto';
   font-style: italic;
   font-weight: 300;
-  src: local("Roboto LightItalic"), local("Roboto-LightItalic"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto/Roboto-LightItalic.ttf")
 format("truetype");
+  src: local("Roboto LightItalic"), local("Roboto-LightItalic"), 
url("../../../../../roboto-fontface/fonts/roboto/Roboto-LightItalic.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto';
   font-style: normal;
   font-weight: normal;
-  src: local("Roboto Regular"), local("Roboto-Regular"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto/Roboto-Regular.ttf")
 format("truetype");
+  src: local("Roboto Regular"), local("Roboto-Regular"), 
url("../../../../../roboto-fontface/fonts/roboto/Roboto-Regular.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto';
   font-style: normal;
   font-weight: 500;
-  src: local("Roboto Medium"), local("Roboto-Medium"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto/Roboto-Medium.ttf")
 format("truetype");
+  src: local("Roboto Medium"), local("Roboto-Medium"), 
url("../../../../../roboto-fontface/fonts/roboto/Roboto-Medium.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto';
   font-style: normal;
   font-weight: bold;
-  src: local("Roboto Bold"), local("Roboto-Bold"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto/Roboto-Bold.ttf")
 format("truetype");
+  src: local("Roboto Bold"), local("Roboto-Bold"), 
url("../../../../../roboto-fontface/fonts/roboto/Roboto-Bold.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto';
   font-style: italic;
   font-weight: normal;
-  src: local("Roboto Italic"), local("Roboto-Italic"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto/Roboto-RegularItalic.ttf")
 format("truetype");
+  src: local("Roboto Italic"), local("Roboto-Italic"), 
url("../../../../../roboto-fontface/fonts/roboto/Roboto-RegularItalic.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto Slab';
   font-style: normal;
   font-weight: normal;
-  src: local("RobotoSlab Regular"), local("RobotoSlab-Regular"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto-Slab/Roboto-Slab-Regular.ttf")
 format("truetype");
+  src: local("RobotoSlab Regular"), local("RobotoSlab-Regular"), 
url("../../../../../roboto-fontface/fonts/roboto-slab/Roboto-Slab-Regular.ttf") 
format("truetype");
 }
 
 @font-face {
   font-family: 'Roboto Slab';
   font-style: normal;
   font-weight: bold;
-  src: local("RobotoSlab Bold"), local("RobotoSlab-Bold"), 
url("../../../../../../../node_modules/roboto-fontface/fonts/Roboto-Slab/Roboto-Slab-Bold.ttf")
 format("truetype");
+  src: local("RobotoSlab Bold"), local("RobotoSlab-Bold"), 
url("../../../../../roboto-fontface/fonts/roboto-slab/Roboto-Slab-Bold.ttf") 
format("truetype");
 }
 
 body,

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/platform/core/common/styles/_inputs.scss
----------------------------------------------------------------------
diff --git a/src/platform/core/common/styles/_inputs.scss 
b/src/platform/core/common/styles/_inputs.scss
index cbcd08e..c7131cf 100644
--- a/src/platform/core/common/styles/_inputs.scss
+++ b/src/platform/core/common/styles/_inputs.scss
@@ -19,6 +19,7 @@
 
 body[fds] .mat-input-container {
   min-width: 200px;
+  width: 100%;
 }
 
 body[fds] .mat-input-wrapper {
@@ -32,7 +33,7 @@ body[fds] input.mat-input-element, body[fds] 
textarea.mat-input-element {
   border: 1px solid $grey8;
   height: 32px;
   padding: 0px 10px;
-  width: calc(100% - 26px);
+  width: calc(100% - 20px);
 }
 
 body[fds] textarea.mat-input-element {
@@ -87,7 +88,6 @@ body[fds] .mat-form-field-can-float 
.mat-form-field-autofill-control:-webkit-aut
 
 body[fds] .input-button {
   top: 5px;
-  left: -4px;
   border-left: none !important;
 }
 

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/platform/core/package.json
----------------------------------------------------------------------
diff --git a/src/platform/core/package.json b/src/platform/core/package.json
new file mode 100644
index 0000000..c59dc1e
--- /dev/null
+++ b/src/platform/core/package.json
@@ -0,0 +1,40 @@
+{
+  "name": "@nifi-fds/core",
+  "version": "0.0.0",
+  "description": "Flow Design System —a subproject of Apache NiFi— is an 
atomic reusable platform for providing a common set of UI/UX components for 
Apache NiFi, Apache NiFi Registry, Apache NiFi MiNiFi, and any other open 
source web applications to consume.",
+  "keywords": [
+    "angular",
+    "material",
+    "material design",
+    "components",
+    "covalent",
+    "reusable",
+    "nifi-fds",
+    "flow design system"
+  ],
+  "scripts": {
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/apache/nifi-fds.git";
+  },
+  "bugs": {
+    "url": "https://github.com/apache/nifi-fds/issues";
+  },
+  "license": "Apache-2.0",
+  "peerDependencies": {
+    "@covalent/core": "1.0.0",
+    "@angular/animations": "5.2.0",
+    "@angular/cdk": "5.2.0",
+    "@angular/common": "5.2.0",
+    "@angular/compiler": "5.2.0",
+    "@angular/core": "5.2.0",
+    "@angular/flex-layout": "5.0.0-beta.14",
+    "@angular/forms": "5.2.0",
+    "@angular/http": "5.2.0",
+    "@angular/material": "5.2.0",
+    "@angular/platform-browser": "5.2.0",
+    "@angular/platform-browser-dynamic": "5.2.0",
+    "@angular/router": "5.2.0"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/src/platform/core/theming/_all-theme.scss
----------------------------------------------------------------------
diff --git a/src/platform/core/theming/_all-theme.scss 
b/src/platform/core/theming/_all-theme.scss
index 747ab8b..c0c1594 100644
--- a/src/platform/core/theming/_all-theme.scss
+++ b/src/platform/core/theming/_all-theme.scss
@@ -15,8 +15,8 @@
 * limitations under the License.
 */
 
-@import '../../../node_modules/@angular/material/theming';
-@import '../../../node_modules/@covalent/core/theming/all-theme';
+@import '../../../../node_modules/@angular/material/theming';
+@import '../../../../node_modules/@covalent/core/theming/all-theme';
 @import '../common/styles/buttons';
 @import '../common/styles/expansionPanels';
 @import '../common/styles/menus';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/09e43612/test/karma.conf.js
----------------------------------------------------------------------
diff --git a/test/karma.conf.js b/test/karma.conf.js
index 929ce85..dde26dd 100644
--- a/test/karma.conf.js
+++ b/test/karma.conf.js
@@ -84,7 +84,6 @@ module.exports = function (config) {
             },
 
             // Paths for debugging with source maps in dev tools
-            {pattern: appBase + '**/*.css.map', included: false, watched: 
false},
             {pattern: appBase + '**/*.js', included: false, watched: false}
         ],
 

Reply via email to