diff --git a/meteor/README.md b/meteor/README.md deleted file mode 100644 index 27ca1e4f..00000000 --- a/meteor/README.md +++ /dev/null @@ -1,69 +0,0 @@ -[![Build Status](https://travis-ci.org/MeteorPackaging/hammer.js.svg?branch=master)](https://travis-ci.org/MeteorPackaging/hammer.js) - -Packaging [FezVrasta's Bootstrap Material Design](https://github.com/FezVrasta/bootstrap-material-design) -for [Meteor.js](http://meteor.com). - - -# Versions - -All versions include the Material Design theme CSS, JS, and `ripple.js` for the ripple click effect. - -* [fezvrasta:bootstrap-material-design](https://atmospherejs.com/fezvrasta/bootstrap-material-design) - Includes Bootstrap's glyphicons along with some Material Design icons. -* [fezvrasta:bootstrap-material-design-noglyph](https://atmospherejs.com/fezvrasta/bootstrap-material-design-noglyph) - No Bootstrap glyphicons, but includes the Material Design icons. -* [fezvrasta:bootstrap-material-design-noicons](https://atmospherejs.com/fezvrasta/bootstrap-material-design-noicons) - No icons at all. Useful if you want to use another icon set instead, such as [Font Awesome](https://atmospherejs.com/fortawesome/fontawesome). - - -# Usage - -Just run - - -```sh -meteor add fezvrasta:bootstrap-material-design -``` - -and your Bootstrap CSS will look like Google's Material Design (Polymer Paper Elements). - - -# Dependencies - -* [twbs:bootstrap](https://atmospherejs.com/twbs/bootstrap) (the official community integration package for Bootstrap 3) -* jquery - - -# Meteor - -If you're new to Meteor, here's what the excitement is all about - -[watch the first two minutes](https://www.youtube.com/watch?v=fsi0aJ9yr2o); you'll be hooked by 1:28. - -That screencast is from 2012. In the meantime, Meteor has become a mature JavaScript-everywhere web -development framework. Read more at [Why Meteor](http://www.meteorpedia.com/read/Why_Meteor). - - -# Issues - -If you encounter an issue while using this package, please CC @dandv when you file it in this repo. - - -# DONE - -* Automatically initialize the JS on client startup: `$.material.init()` -* Material Design Icons font loading test: EOT, SVG, TTF, WOFF -* Bootstrap plugin loading tests -* Visual check, including for the ripple effect - - -# TODO - -* LESS version / fine-grained control? See [nemo64's package](https://github.com/Nemo64/meteor-bootstrap). - - -# Testing - -To test the theme in a browser, run `cp meteor/package.js ./ && meteor test-packages ./` - - -# Acknowledgements - -* [Yuri Dybskiy / html5cat](https://github.com/html5cat) for the first wrapper of this package -* [Dan Dascalescu / dandv](https://github.com/dandv) for this direct integration diff --git a/meteor/example/.meteor/.gitignore b/meteor/example/.meteor/.gitignore deleted file mode 100644 index 40830374..00000000 --- a/meteor/example/.meteor/.gitignore +++ /dev/null @@ -1 +0,0 @@ -local diff --git a/meteor/example/.meteor/packages b/meteor/example/.meteor/packages deleted file mode 100644 index 6b6e741e..00000000 --- a/meteor/example/.meteor/packages +++ /dev/null @@ -1,7 +0,0 @@ -# Meteor packages used by this project, one per line. -# -# 'meteor add' and 'meteor remove' will edit this file for you, -# but you can also edit it by hand. - -meteor-platform -fezvrasta:bootstrap-material-design-noglyph diff --git a/meteor/example/.meteor/release b/meteor/example/.meteor/release deleted file mode 100644 index f1b62559..00000000 --- a/meteor/example/.meteor/release +++ /dev/null @@ -1 +0,0 @@ -METEOR@1.0.1 diff --git a/meteor/example/client/bmd.css b/meteor/example/client/bmd.css deleted file mode 100644 index c79f2707..00000000 --- a/meteor/example/client/bmd.css +++ /dev/null @@ -1,3 +0,0 @@ -body { - background: #8BC34A; -} diff --git a/meteor/example/client/bmd.html b/meteor/example/client/bmd.html deleted file mode 100644 index eace9872..00000000 --- a/meteor/example/client/bmd.html +++ /dev/null @@ -1,14 +0,0 @@ - -

Watch the ripple effect on newly created buttons!

- - {{> hello}} - - - diff --git a/meteor/example/client/bmd.js b/meteor/example/client/bmd.js deleted file mode 100644 index 5914f5b3..00000000 --- a/meteor/example/client/bmd.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var Buttons = new Mongo.Collection(null); - -Template.hello.helpers({ - buttons: function () { - return Buttons.find(); - } -}); - -Template.hello.events({ - 'click button': function (event, template) { - Buttons.insert({name: _.sample(['No, click ME!', 'Click me too!', 'Click here!', 'Hey!', 'Psst!'])}); - } -}); diff --git a/meteor/example/packages/bootstrap-material-design b/meteor/example/packages/bootstrap-material-design deleted file mode 120000 index 1b20c9fb..00000000 --- a/meteor/example/packages/bootstrap-material-design +++ /dev/null @@ -1 +0,0 @@ -../../../ \ No newline at end of file diff --git a/meteor/example/run.bat b/meteor/example/run.bat deleted file mode 100755 index c13b17ee..00000000 --- a/meteor/example/run.bat +++ /dev/null @@ -1,5 +0,0 @@ -mklink ..\..\package.js "meteor/package-noglyph.js" -mklink package.json "../../package.json" -set MONGO_URL=mongodb:// -meteor run -del ..\..\package.js package.json diff --git a/meteor/example/run.sh b/meteor/example/run.sh deleted file mode 100755 index 3cfe6c87..00000000 --- a/meteor/example/run.sh +++ /dev/null @@ -1,15 +0,0 @@ -# sanity check: make sure we're in the root directory of the example -cd "$( dirname "$0" )" - -# delete temp files even if Ctrl+C is pressed -int_trap() { - echo "Cleaning up..." -} -trap int_trap INT - -ln -s "meteor/package-noglyph.js" ../../package.js -ln -s "../../package.json" package.json - -MONGO_URL=mongodb:// meteor run - -rm ../../package.js package.json diff --git a/meteor/init.js b/meteor/init.js deleted file mode 100644 index 2fee761d..00000000 --- a/meteor/init.js +++ /dev/null @@ -1,3 +0,0 @@ -Meteor.startup(function () { - $.material.init(); -}); diff --git a/meteor/package-noglyph.js b/meteor/package-noglyph.js deleted file mode 100644 index dbf76347..00000000 --- a/meteor/package-noglyph.js +++ /dev/null @@ -1,39 +0,0 @@ -// package metadata file for Meteor.js -'use strict'; - -var packageName = 'fezvrasta:bootstrap-material-design-noglyph'; // https://atmospherejs.com/fezvrasta/bootstrap-material-design-noglyph -var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. - -var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); - -Package.describe({ - name: packageName, - summary: 'FezVrasta\'s Bootstrap Google Material Design theme. Material icons instead of Bootstrap glyphicons.', - version: packageJson.version, - git: 'https://github.com/fezvrasta/bootstrap-material-design.git' -}); - -Package.onUse(function (api) { - api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); - api.use('twbs:bootstrap-noglyph@3.3.1'); - api.use('jquery'); - api.addFiles([ - // we bundle all font files, but the client will request only one of them via the CSS @font-face rule - 'dist/fonts/Material-Design-Icons.eot', // IE8 or older - 'dist/fonts/Material-Design-Icons.svg', // SVG fallback for iOS < 5 - http://caniuse.com/#feat=svg-fonts, http://stackoverflow.com/a/11002874/126903 - 'dist/fonts/Material-Design-Icons.ttf', // Android Browers 4.1, 4.3 - http://caniuse.com/#feat=ttf - 'dist/fonts/Material-Design-Icons.woff', // Supported by all modern browsers - 'dist/css/material-wfont.css', // includes @font-face rules to load the Roboto font - 'dist/css/ripples.css', - 'dist/js/material.js', - 'dist/js/ripples.js', - 'meteor/init.js' - ], where); -}); - -Package.onTest(function (api) { - api.use(packageName, where); - api.use(['tinytest', 'http'], where); - - api.addFiles('meteor/test.js', where); // same test because we don't test the glyphicons in particular (that's the job of twbs:bootstrap) -}); diff --git a/meteor/package-noicons.js b/meteor/package-noicons.js deleted file mode 100644 index fa25f126..00000000 --- a/meteor/package-noicons.js +++ /dev/null @@ -1,34 +0,0 @@ -// package metadata file for Meteor.js -'use strict'; - -var packageName = 'fezvrasta:bootstrap-material-design-noicons'; // https://atmospherejs.com/fezvrasta/bootstrap-material-design-noicons -var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. - -var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); - -Package.describe({ - name: packageName, - summary: 'FezVrasta\'s Bootstrap theme implementing Google\'s Material Design (Paper Elements). No icons.', - version: packageJson.version, - git: 'https://github.com/fezvrasta/bootstrap-material-design.git' -}); - -Package.onUse(function (api) { - api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); - api.use('twbs:bootstrap-noglyph@3.3.1'); - api.use('jquery'); - api.addFiles([ - 'dist/css/material-wfont.css', // includes @font-face rules to load the Roboto font - 'dist/css/ripples.css', - 'dist/js/material.js', - 'dist/js/ripples.js', - 'meteor/init.js' - ], where); -}); - -Package.onTest(function (api) { - api.use(packageName, where); - api.use(['tinytest', 'http'], where); - - api.addFiles('meteor/test-noicons.js', where); -}); diff --git a/meteor/package.js b/meteor/package.js deleted file mode 100644 index 84aec64e..00000000 --- a/meteor/package.js +++ /dev/null @@ -1,39 +0,0 @@ -// package metadata file for Meteor.js -'use strict'; - -var packageName = 'fezvrasta:bootstrap-material-design'; // https://atmospherejs.com/fezvrasta/bootstrap-material-design -var where = 'client'; // where to install: 'client' or 'server'. For both, pass nothing. - -var packageJson = JSON.parse(Npm.require("fs").readFileSync('package.json')); - -Package.describe({ - name: packageName, - summary: 'FezVrasta\'s Bootstrap theme implementing Google\'s Material (Paper) Design', - version: packageJson.version, - git: 'https://github.com/fezvrasta/bootstrap-material-design.git' -}); - -Package.onUse(function (api) { - api.versionsFrom(['METEOR@0.9.0', 'METEOR@1.0']); - api.use('twbs:bootstrap@3.3.1'); - api.use('jquery'); - api.addFiles([ - // we bundle all font files, but the client will request only one of them via the CSS @font-face rule - 'dist/fonts/Material-Design-Icons.eot', // IE8 or older - 'dist/fonts/Material-Design-Icons.svg', // SVG fallback for iOS < 5 - http://caniuse.com/#feat=svg-fonts, http://stackoverflow.com/a/11002874/126903 - 'dist/fonts/Material-Design-Icons.ttf', // Android Browers 4.1, 4.3 - http://caniuse.com/#feat=ttf - 'dist/fonts/Material-Design-Icons.woff', // Supported by all modern browsers - 'dist/css/material-wfont.css', // includes @font-face rules to load the Roboto font - 'dist/css/ripples.css', - 'dist/js/material.js', - 'dist/js/ripples.js', - 'meteor/init.js' - ], where); -}); - -Package.onTest(function (api) { - api.use(packageName, where); - api.use(['tinytest', 'http'], where); - - api.addFiles('meteor/test.js', where); -}); diff --git a/meteor/test-noicons.js b/meteor/test-noicons.js deleted file mode 100644 index 476b0e11..00000000 --- a/meteor/test-noicons.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var packageName; // there seems to be no official way of finding out the name of the very package we're testing - http://stackoverflow.com/questions/27180709/in-a-tinytest-test-file-how-do-i-get-the-name-of-the-package - -var plugins = ['affix', 'alert', 'button', 'carousel', 'collapse', 'dropdown', 'modal', 'popover', 'scrollspy', 'tab', 'tooltip']; - -// test plugins -plugins.forEach(function (plugin) { - Tinytest.add('Plugin - ' + plugin, function (test) { - test.instanceOf($(document.body)[plugin], Function, 'instantiated correctly'); - }); -}); - -// visual check -plugins.forEach(function (plugin) { - - Tinytest.addAsync('Visual check - ' + plugin, function (test, done) { - var bootstrapDropZone = document.createElement('div'); - document.body.appendChild(bootstrapDropZone); - - - HTTP.get('http://rawgit.com/twbs/bootstrap/master/js/tests/visual/' + plugin + '.html', function callback(error, result) { - if (error) { - test.fail('Error getting the test file. Do we have an Internet connection to rawgit.com?'); - } else { - // [^] matches across newlines. Stay within the container div, or else the fragment will attempt to load resources on its own. - bootstrapDropZone.innerHTML = result.content.match(//); - test.ok({message: 'Test passed if the display looks OK *and* clicking dropdowns/popovers/tooltips works.'}); - } - - done(); - }); - - }); - -}); - - -Tinytest.addAsync('Visual check - Material Design', function (test, done) { - var bootstrapDropZone = document.createElement('div'); - document.body.appendChild(bootstrapDropZone); - - HTTP.get('http://rawgit.com/FezVrasta/bootstrap-material-design/master/bootstrap-elements.html', function callback(error, result) { - if (error) { - test.fail('Error getting the FezVrasta test file. Do we have an Internet connection to rawgit.com?'); - } else { - // [^] matches across newlines. Stay within the container div, or else the fragment will attempt to load resources on its own. - bootstrapDropZone.innerHTML = result.content.match(//. -// Only 'woff' for now, but 'woff2' may become available - https://github.com/FortAwesome/Font-Awesome/pull/5062#discussion_r20936453 -['eot', 'svg', 'ttf', 'woff'].forEach(function (font) { - Tinytest.addAsync(font + ' fonts are shipped', function (test, done) { - - // curiously enough, the 'local-test:...' package isn't loaded into Package before calling Tinytest, so we can't do this determination outside this loop - if (!packageName) - Object.keys(Package).forEach(function(p) { - if (p.search(/local-test/) > -1) - packageName = p.replace('local-test:', ''); // we should stop the loop, but forEach can't do that - }) - - if (!packageName) { - test.exception({message: 'Package not quite loaded... go figure'}); - return - } - - var packagePath = packageName.replace(':', '_') // e.g. meteorpackaging_bootstrap-material-design - - HTTP.get( - '/packages/' + packagePath + '/dist/fonts/Material-Design-Icons.' + font, - { - headers: { - 'Cache-Control': 'no-cache' // because Meteor has cached fonts even after they were removed from package.js (!) - https://github.com/meteor/meteor/issues/3196 - } - }, - function callback(error, result) { - if (error) { - test.fail({message: 'Font failed to load'}); - } else { - // if the file is 404, Meteor will redirect to / and return the Meteor.js boilerplate - test.isTrue(result.content.length > 100000, font + ' font could not be downloaded'); - } - - done(); - } - ); - }); -}) - -var plugins = ['affix', 'alert', 'button', 'carousel', 'collapse', 'dropdown', 'modal', 'popover', 'scrollspy', 'tab', 'tooltip']; - -// test plugins -plugins.forEach(function (plugin) { - Tinytest.add('Plugin - ' + plugin, function (test) { - test.instanceOf($(document.body)[plugin], Function, 'instantiated correctly'); - }); -}); - -// visual check -plugins.forEach(function (plugin) { - - Tinytest.addAsync('Visual check - ' + plugin, function (test, done) { - var bootstrapDropZone = document.createElement('div'); - document.body.appendChild(bootstrapDropZone); - - - HTTP.get('http://rawgit.com/twbs/bootstrap/master/js/tests/visual/' + plugin + '.html', function callback(error, result) { - if (error) { - test.fail('Error getting the test file. Do we have an Internet connection to rawgit.com?'); - } else { - // [^] matches across newlines. Stay within the container div, or else the fragment will attempt to load resources on its own. - bootstrapDropZone.innerHTML = result.content.match(//); - test.ok({message: 'Test passed if the display looks OK *and* clicking dropdowns/popovers/tooltips works.'}); - } - - done(); - }); - - }); - -}); - - -Tinytest.addAsync('Visual check - Material Design', function (test, done) { - var bootstrapDropZone = document.createElement('div'); - document.body.appendChild(bootstrapDropZone); - - HTTP.get('http://rawgit.com/FezVrasta/bootstrap-material-design/master/bootstrap-elements.html', function callback(error, result) { - if (error) { - test.fail('Error getting the FezVrasta test file. Do we have an Internet connection to rawgit.com?'); - } else { - // [^] matches across newlines. Stay within the container div, or else the fragment will attempt to load resources on its own. - bootstrapDropZone.innerHTML = result.content.match(/