@@ -48,7 +48,7 @@
+
diff --git a/app/javascript/iconic/svg/smart/action.svg b/app/javascript/iconic/svg/smart/action.svg
new file mode 100755
index 0000000..cb8765e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/action.svg
@@ -0,0 +1,38 @@
+
diff --git a/app/javascript/iconic/svg/smart/align.svg b/app/javascript/iconic/svg/smart/align.svg
new file mode 100755
index 0000000..f624178
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/align.svg
@@ -0,0 +1,68 @@
+
diff --git a/app/javascript/iconic/svg/smart/aperture.svg b/app/javascript/iconic/svg/smart/aperture.svg
new file mode 100755
index 0000000..0d0b8be
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/aperture.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/arrow-right-angle-thick.svg b/app/javascript/iconic/svg/smart/arrow-right-angle-thick.svg
new file mode 100755
index 0000000..8d9c51a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/arrow-right-angle-thick.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/arrow-right-angle.svg b/app/javascript/iconic/svg/smart/arrow-right-angle.svg
new file mode 100755
index 0000000..953e627
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/arrow-right-angle.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/arrow-thick.svg b/app/javascript/iconic/svg/smart/arrow-thick.svg
new file mode 100755
index 0000000..9e33dc5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/arrow-thick.svg
@@ -0,0 +1,59 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/arrow.svg b/app/javascript/iconic/svg/smart/arrow.svg
new file mode 100755
index 0000000..b338e58
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/arrow.svg
@@ -0,0 +1,59 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/audio-spectrum.svg b/app/javascript/iconic/svg/smart/audio-spectrum.svg
new file mode 100755
index 0000000..9865bb3
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/audio-spectrum.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/audio.svg b/app/javascript/iconic/svg/smart/audio.svg
new file mode 100755
index 0000000..e9ab43d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/audio.svg
@@ -0,0 +1,34 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/ban.svg b/app/javascript/iconic/svg/smart/ban.svg
new file mode 100755
index 0000000..070d3cf
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/ban.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bar-chart.svg b/app/javascript/iconic/svg/smart/bar-chart.svg
new file mode 100755
index 0000000..bcf9a59
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bar-chart.svg
@@ -0,0 +1,49 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/barcode.svg b/app/javascript/iconic/svg/smart/barcode.svg
new file mode 100755
index 0000000..3f4df15
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/barcode.svg
@@ -0,0 +1,51 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/basket.svg b/app/javascript/iconic/svg/smart/basket.svg
new file mode 100755
index 0000000..62d5b46
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/basket.svg
@@ -0,0 +1,51 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/battery.svg b/app/javascript/iconic/svg/smart/battery.svg
new file mode 100755
index 0000000..003971c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/battery.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/beaker.svg b/app/javascript/iconic/svg/smart/beaker.svg
new file mode 100755
index 0000000..a13fce1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/beaker.svg
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bell.svg b/app/javascript/iconic/svg/smart/bell.svg
new file mode 100755
index 0000000..10dd239
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bell.svg
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bitcoin-address.svg b/app/javascript/iconic/svg/smart/bitcoin-address.svg
new file mode 100755
index 0000000..5e54cf1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bitcoin-address.svg
@@ -0,0 +1,50 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bitcoin-block.svg b/app/javascript/iconic/svg/smart/bitcoin-block.svg
new file mode 100755
index 0000000..2509e11
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bitcoin-block.svg
@@ -0,0 +1,32 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bitcoin-transaction.svg b/app/javascript/iconic/svg/smart/bitcoin-transaction.svg
new file mode 100755
index 0000000..dd2dda0
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bitcoin-transaction.svg
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bitcoin.svg b/app/javascript/iconic/svg/smart/bitcoin.svg
new file mode 100755
index 0000000..f484eae
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bitcoin.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bluetooth.svg b/app/javascript/iconic/svg/smart/bluetooth.svg
new file mode 100755
index 0000000..bf208e9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bluetooth.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bold.svg b/app/javascript/iconic/svg/smart/bold.svg
new file mode 100755
index 0000000..ada323e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bold.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/book.svg b/app/javascript/iconic/svg/smart/book.svg
new file mode 100755
index 0000000..2cb12e5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/book.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bookmark.svg b/app/javascript/iconic/svg/smart/bookmark.svg
new file mode 100755
index 0000000..abe94d8
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bookmark.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/box.svg b/app/javascript/iconic/svg/smart/box.svg
new file mode 100755
index 0000000..26d9dd7
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/box.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/brain.svg b/app/javascript/iconic/svg/smart/brain.svg
new file mode 100755
index 0000000..5978bbe
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/brain.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/briefcase.svg b/app/javascript/iconic/svg/smart/briefcase.svg
new file mode 100755
index 0000000..9604600
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/briefcase.svg
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/british-pound.svg b/app/javascript/iconic/svg/smart/british-pound.svg
new file mode 100755
index 0000000..0a93a53
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/british-pound.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/browser-full-page.svg b/app/javascript/iconic/svg/smart/browser-full-page.svg
new file mode 100755
index 0000000..6af89a9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/browser-full-page.svg
@@ -0,0 +1,68 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/browser-type.svg b/app/javascript/iconic/svg/smart/browser-type.svg
new file mode 100755
index 0000000..5f7298c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/browser-type.svg
@@ -0,0 +1,115 @@
+
diff --git a/app/javascript/iconic/svg/smart/browser-viewport.svg b/app/javascript/iconic/svg/smart/browser-viewport.svg
new file mode 100755
index 0000000..7f76b38
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/browser-viewport.svg
@@ -0,0 +1,55 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/browser.svg b/app/javascript/iconic/svg/smart/browser.svg
new file mode 100755
index 0000000..94c0908
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/browser.svg
@@ -0,0 +1,56 @@
+
+
+
diff --git a/app/javascript/iconic/svg/smart/brush.svg b/app/javascript/iconic/svg/smart/brush.svg
new file mode 100755
index 0000000..9c47a2b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/brush.svg
@@ -0,0 +1,34 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bug.svg b/app/javascript/iconic/svg/smart/bug.svg
new file mode 100755
index 0000000..f4bb1e8
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bug.svg
@@ -0,0 +1,50 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/building.svg b/app/javascript/iconic/svg/smart/building.svg
new file mode 100755
index 0000000..b47cb4d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/building.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/bullhorn.svg b/app/javascript/iconic/svg/smart/bullhorn.svg
new file mode 100755
index 0000000..5f0a603
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/bullhorn.svg
@@ -0,0 +1,48 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/calculator.svg b/app/javascript/iconic/svg/smart/calculator.svg
new file mode 100755
index 0000000..4a0d484
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/calculator.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/calendar.svg b/app/javascript/iconic/svg/smart/calendar.svg
new file mode 100755
index 0000000..a25be80
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/calendar.svg
@@ -0,0 +1,40 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/camera-rangefinder.svg b/app/javascript/iconic/svg/smart/camera-rangefinder.svg
new file mode 100755
index 0000000..aaf1b9c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/camera-rangefinder.svg
@@ -0,0 +1,50 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/camera-slr.svg b/app/javascript/iconic/svg/smart/camera-slr.svg
new file mode 100755
index 0000000..487e394
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/camera-slr.svg
@@ -0,0 +1,39 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/caret.svg b/app/javascript/iconic/svg/smart/caret.svg
new file mode 100755
index 0000000..7584f5d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/caret.svg
@@ -0,0 +1,17 @@
+
diff --git a/app/javascript/iconic/svg/smart/carriage-return.svg b/app/javascript/iconic/svg/smart/carriage-return.svg
new file mode 100755
index 0000000..613489e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/carriage-return.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/cart.svg b/app/javascript/iconic/svg/smart/cart.svg
new file mode 100755
index 0000000..06098dc
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cart.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/chat.svg b/app/javascript/iconic/svg/smart/chat.svg
new file mode 100755
index 0000000..e0f1a62
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/chat.svg
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/check-thin.svg b/app/javascript/iconic/svg/smart/check-thin.svg
new file mode 100755
index 0000000..fe49dc8
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/check-thin.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/check.svg b/app/javascript/iconic/svg/smart/check.svg
new file mode 100755
index 0000000..3966c5b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/check.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/chevron.svg b/app/javascript/iconic/svg/smart/chevron.svg
new file mode 100755
index 0000000..9fa4b9b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/chevron.svg
@@ -0,0 +1,28 @@
+
diff --git a/app/javascript/iconic/svg/smart/circle-check.svg b/app/javascript/iconic/svg/smart/circle-check.svg
new file mode 100755
index 0000000..46accc2
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/circle-check.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/circle-x.svg b/app/javascript/iconic/svg/smart/circle-x.svg
new file mode 100755
index 0000000..347b608
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/circle-x.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/clipboard.svg b/app/javascript/iconic/svg/smart/clipboard.svg
new file mode 100755
index 0000000..e41aea5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/clipboard.svg
@@ -0,0 +1,32 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/clock.svg b/app/javascript/iconic/svg/smart/clock.svg
new file mode 100755
index 0000000..d149a0a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/clock.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/cloud-transfer.svg b/app/javascript/iconic/svg/smart/cloud-transfer.svg
new file mode 100755
index 0000000..55dbbb1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cloud-transfer.svg
@@ -0,0 +1,68 @@
+
diff --git a/app/javascript/iconic/svg/smart/cloud.svg b/app/javascript/iconic/svg/smart/cloud.svg
new file mode 100755
index 0000000..6976109
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cloud.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/cloudy.svg b/app/javascript/iconic/svg/smart/cloudy.svg
new file mode 100755
index 0000000..5a8f059
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cloudy.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/code.svg b/app/javascript/iconic/svg/smart/code.svg
new file mode 100755
index 0000000..734d5e4
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/code.svg
@@ -0,0 +1,49 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/cog.svg b/app/javascript/iconic/svg/smart/cog.svg
new file mode 100755
index 0000000..269f3d9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cog.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/cogs.svg b/app/javascript/iconic/svg/smart/cogs.svg
new file mode 100755
index 0000000..fbbd01f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cogs.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/collapse.svg b/app/javascript/iconic/svg/smart/collapse.svg
new file mode 100755
index 0000000..03cf740
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/collapse.svg
@@ -0,0 +1,26 @@
+
diff --git a/app/javascript/iconic/svg/smart/command.svg b/app/javascript/iconic/svg/smart/command.svg
new file mode 100755
index 0000000..9b4c3db
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/command.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/comment-square.svg b/app/javascript/iconic/svg/smart/comment-square.svg
new file mode 100755
index 0000000..07d0c96
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/comment-square.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/compass.svg b/app/javascript/iconic/svg/smart/compass.svg
new file mode 100755
index 0000000..10fd6f1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/compass.svg
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/connections.svg b/app/javascript/iconic/svg/smart/connections.svg
new file mode 100755
index 0000000..8ed8743
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/connections.svg
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/contrast.svg b/app/javascript/iconic/svg/smart/contrast.svg
new file mode 100755
index 0000000..8b2b2be
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/contrast.svg
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/copyleft.svg b/app/javascript/iconic/svg/smart/copyleft.svg
new file mode 100755
index 0000000..310876c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/copyleft.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/copyright.svg b/app/javascript/iconic/svg/smart/copyright.svg
new file mode 100755
index 0000000..5a02762
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/copyright.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/copywriting.svg b/app/javascript/iconic/svg/smart/copywriting.svg
new file mode 100755
index 0000000..2b20b1b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/copywriting.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/cpu.svg b/app/javascript/iconic/svg/smart/cpu.svg
new file mode 100755
index 0000000..567e682
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/cpu.svg
@@ -0,0 +1,144 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/credit-card.svg b/app/javascript/iconic/svg/smart/credit-card.svg
new file mode 100755
index 0000000..273ebbf
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/credit-card.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/crop.svg b/app/javascript/iconic/svg/smart/crop.svg
new file mode 100755
index 0000000..890a14a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/crop.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/dashboard.svg b/app/javascript/iconic/svg/smart/dashboard.svg
new file mode 100755
index 0000000..f41ef7d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/dashboard.svg
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/data-transfer.svg b/app/javascript/iconic/svg/smart/data-transfer.svg
new file mode 100755
index 0000000..156a24d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/data-transfer.svg
@@ -0,0 +1,38 @@
+
diff --git a/app/javascript/iconic/svg/smart/database.svg b/app/javascript/iconic/svg/smart/database.svg
new file mode 100755
index 0000000..e0f4adb
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/database.svg
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/delete.svg b/app/javascript/iconic/svg/smart/delete.svg
new file mode 100755
index 0000000..cb8575b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/delete.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/delta.svg b/app/javascript/iconic/svg/smart/delta.svg
new file mode 100755
index 0000000..e5e22c1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/delta.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/dial.svg b/app/javascript/iconic/svg/smart/dial.svg
new file mode 100755
index 0000000..6df0de9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/dial.svg
@@ -0,0 +1,44 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/dna.svg b/app/javascript/iconic/svg/smart/dna.svg
new file mode 100755
index 0000000..24c4f89
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/dna.svg
@@ -0,0 +1,59 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/document.svg b/app/javascript/iconic/svg/smart/document.svg
new file mode 100755
index 0000000..50b847a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/document.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/dollar.svg b/app/javascript/iconic/svg/smart/dollar.svg
new file mode 100755
index 0000000..382203e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/dollar.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/double-quote-sans.svg b/app/javascript/iconic/svg/smart/double-quote-sans.svg
new file mode 100755
index 0000000..9d68fb6
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/double-quote-sans.svg
@@ -0,0 +1,38 @@
+
diff --git a/app/javascript/iconic/svg/smart/double-quote-serif.svg b/app/javascript/iconic/svg/smart/double-quote-serif.svg
new file mode 100755
index 0000000..9331bec
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/double-quote-serif.svg
@@ -0,0 +1,50 @@
+
diff --git a/app/javascript/iconic/svg/smart/easel.svg b/app/javascript/iconic/svg/smart/easel.svg
new file mode 100755
index 0000000..0d6068c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/easel.svg
@@ -0,0 +1,56 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/eject.svg b/app/javascript/iconic/svg/smart/eject.svg
new file mode 100755
index 0000000..6942fe4
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/eject.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/electric.svg b/app/javascript/iconic/svg/smart/electric.svg
new file mode 100755
index 0000000..7d0725b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/electric.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/elevator.svg b/app/javascript/iconic/svg/smart/elevator.svg
new file mode 100755
index 0000000..833e6c6
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/elevator.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/ellipses.svg b/app/javascript/iconic/svg/smart/ellipses.svg
new file mode 100755
index 0000000..4b60f31
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/ellipses.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/envelope.svg b/app/javascript/iconic/svg/smart/envelope.svg
new file mode 100755
index 0000000..4086e5a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/envelope.svg
@@ -0,0 +1,44 @@
+
diff --git a/app/javascript/iconic/svg/smart/euro.svg b/app/javascript/iconic/svg/smart/euro.svg
new file mode 100755
index 0000000..74d32a2
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/euro.svg
@@ -0,0 +1,40 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/excerpt.svg b/app/javascript/iconic/svg/smart/excerpt.svg
new file mode 100755
index 0000000..b26edd1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/excerpt.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/expand.svg b/app/javascript/iconic/svg/smart/expand.svg
new file mode 100755
index 0000000..496a23a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/expand.svg
@@ -0,0 +1,26 @@
+
diff --git a/app/javascript/iconic/svg/smart/external-link.svg b/app/javascript/iconic/svg/smart/external-link.svg
new file mode 100755
index 0000000..77b74ff
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/external-link.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/eye.svg b/app/javascript/iconic/svg/smart/eye.svg
new file mode 100755
index 0000000..40577d6
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/eye.svg
@@ -0,0 +1,46 @@
+
diff --git a/app/javascript/iconic/svg/smart/eyedropper.svg b/app/javascript/iconic/svg/smart/eyedropper.svg
new file mode 100755
index 0000000..ed8dce4
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/eyedropper.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/file.svg b/app/javascript/iconic/svg/smart/file.svg
new file mode 100755
index 0000000..ee83afe
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/file.svg
@@ -0,0 +1,42 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/fire.svg b/app/javascript/iconic/svg/smart/fire.svg
new file mode 100755
index 0000000..a203cb9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/fire.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/firefly.svg b/app/javascript/iconic/svg/smart/firefly.svg
new file mode 100755
index 0000000..d45d89c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/firefly.svg
@@ -0,0 +1,57 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/flag.svg b/app/javascript/iconic/svg/smart/flag.svg
new file mode 100755
index 0000000..c1d62e6
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/flag.svg
@@ -0,0 +1,24 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/flash.svg b/app/javascript/iconic/svg/smart/flash.svg
new file mode 100755
index 0000000..bce293c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/flash.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/flow.svg b/app/javascript/iconic/svg/smart/flow.svg
new file mode 100755
index 0000000..c1bec52
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/flow.svg
@@ -0,0 +1,102 @@
+
diff --git a/app/javascript/iconic/svg/smart/folder.svg b/app/javascript/iconic/svg/smart/folder.svg
new file mode 100755
index 0000000..833f3fb
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/folder.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/fork.svg b/app/javascript/iconic/svg/smart/fork.svg
new file mode 100755
index 0000000..eca9e2d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/fork.svg
@@ -0,0 +1,40 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/fullscreen.svg b/app/javascript/iconic/svg/smart/fullscreen.svg
new file mode 100755
index 0000000..dbf3b9d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/fullscreen.svg
@@ -0,0 +1,50 @@
+
diff --git a/app/javascript/iconic/svg/smart/funnel.svg b/app/javascript/iconic/svg/smart/funnel.svg
new file mode 100755
index 0000000..e7e4d96
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/funnel.svg
@@ -0,0 +1,24 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/game-controller.svg b/app/javascript/iconic/svg/smart/game-controller.svg
new file mode 100755
index 0000000..93898b0
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/game-controller.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/globe.svg b/app/javascript/iconic/svg/smart/globe.svg
new file mode 100755
index 0000000..4eb4566
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/globe.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/graph.svg b/app/javascript/iconic/svg/smart/graph.svg
new file mode 100755
index 0000000..38c7c5e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/graph.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/grid.svg b/app/javascript/iconic/svg/smart/grid.svg
new file mode 100755
index 0000000..921a4d5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/grid.svg
@@ -0,0 +1,123 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/group.svg b/app/javascript/iconic/svg/smart/group.svg
new file mode 100755
index 0000000..745d762
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/group.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/guides.svg b/app/javascript/iconic/svg/smart/guides.svg
new file mode 100755
index 0000000..0229f1c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/guides.svg
@@ -0,0 +1,58 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/hammer.svg b/app/javascript/iconic/svg/smart/hammer.svg
new file mode 100755
index 0000000..9246861
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/hammer.svg
@@ -0,0 +1,32 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/hand.svg b/app/javascript/iconic/svg/smart/hand.svg
new file mode 100755
index 0000000..afe5f75
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/hand.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/hard-drive.svg b/app/javascript/iconic/svg/smart/hard-drive.svg
new file mode 100755
index 0000000..d9564cf
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/hard-drive.svg
@@ -0,0 +1,54 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/header.svg b/app/javascript/iconic/svg/smart/header.svg
new file mode 100755
index 0000000..e0434b1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/header.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/headphones.svg b/app/javascript/iconic/svg/smart/headphones.svg
new file mode 100755
index 0000000..550ce40
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/headphones.svg
@@ -0,0 +1,39 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/heart.svg b/app/javascript/iconic/svg/smart/heart.svg
new file mode 100755
index 0000000..2b43752
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/heart.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/history.svg b/app/javascript/iconic/svg/smart/history.svg
new file mode 100755
index 0000000..aeecb3b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/history.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/home.svg b/app/javascript/iconic/svg/smart/home.svg
new file mode 100755
index 0000000..03f6c2b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/home.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/image.svg b/app/javascript/iconic/svg/smart/image.svg
new file mode 100755
index 0000000..ef7ee96
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/image.svg
@@ -0,0 +1,96 @@
+
diff --git a/app/javascript/iconic/svg/smart/inbox.svg b/app/javascript/iconic/svg/smart/inbox.svg
new file mode 100755
index 0000000..35df757
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/inbox.svg
@@ -0,0 +1,37 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/infinity.svg b/app/javascript/iconic/svg/smart/infinity.svg
new file mode 100755
index 0000000..01de286
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/infinity.svg
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/info.svg b/app/javascript/iconic/svg/smart/info.svg
new file mode 100755
index 0000000..97a6655
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/info.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/inkwell.svg b/app/javascript/iconic/svg/smart/inkwell.svg
new file mode 100755
index 0000000..7e57f7b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/inkwell.svg
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/iphone.svg b/app/javascript/iconic/svg/smart/iphone.svg
new file mode 100755
index 0000000..568fdfe
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/iphone.svg
@@ -0,0 +1,42 @@
+
diff --git a/app/javascript/iconic/svg/smart/italic.svg b/app/javascript/iconic/svg/smart/italic.svg
new file mode 100755
index 0000000..d2b4e5f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/italic.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/justify.svg b/app/javascript/iconic/svg/smart/justify.svg
new file mode 100755
index 0000000..1fbc439
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/justify.svg
@@ -0,0 +1,68 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/key.svg b/app/javascript/iconic/svg/smart/key.svg
new file mode 100755
index 0000000..0c9adce
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/key.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/keyboard.svg b/app/javascript/iconic/svg/smart/keyboard.svg
new file mode 100755
index 0000000..a4dfccc
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/keyboard.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/keypad-mobile.svg b/app/javascript/iconic/svg/smart/keypad-mobile.svg
new file mode 100755
index 0000000..94901f0
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/keypad-mobile.svg
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/laptop.svg b/app/javascript/iconic/svg/smart/laptop.svg
new file mode 100755
index 0000000..6d1fbb5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/laptop.svg
@@ -0,0 +1,54 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/layers.svg b/app/javascript/iconic/svg/smart/layers.svg
new file mode 100755
index 0000000..59892cc
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/layers.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/lightbulb-alt-off.svg b/app/javascript/iconic/svg/smart/lightbulb-alt-off.svg
new file mode 100755
index 0000000..21ca26e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/lightbulb-alt-off.svg
@@ -0,0 +1,41 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/lightbulb-alt-on.svg b/app/javascript/iconic/svg/smart/lightbulb-alt-on.svg
new file mode 100755
index 0000000..6786f06
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/lightbulb-alt-on.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/lightbulb.svg b/app/javascript/iconic/svg/smart/lightbulb.svg
new file mode 100755
index 0000000..b0d6b2b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/lightbulb.svg
@@ -0,0 +1,46 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/lightning-bolt.svg b/app/javascript/iconic/svg/smart/lightning-bolt.svg
new file mode 100755
index 0000000..1592ce5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/lightning-bolt.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/lightning.svg b/app/javascript/iconic/svg/smart/lightning.svg
new file mode 100755
index 0000000..64d1555
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/lightning.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/link.svg b/app/javascript/iconic/svg/smart/link.svg
new file mode 100755
index 0000000..58fdb0f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/link.svg
@@ -0,0 +1,64 @@
+
diff --git a/app/javascript/iconic/svg/smart/list-nested.svg b/app/javascript/iconic/svg/smart/list-nested.svg
new file mode 100755
index 0000000..0a8d4bd
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/list-nested.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/list-rich.svg b/app/javascript/iconic/svg/smart/list-rich.svg
new file mode 100755
index 0000000..bf8af5c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/list-rich.svg
@@ -0,0 +1,44 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/list.svg b/app/javascript/iconic/svg/smart/list.svg
new file mode 100755
index 0000000..2f8f8e7
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/list.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/location.svg b/app/javascript/iconic/svg/smart/location.svg
new file mode 100755
index 0000000..a4c0071
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/location.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/lock.svg b/app/javascript/iconic/svg/smart/lock.svg
new file mode 100755
index 0000000..8af2303
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/lock.svg
@@ -0,0 +1,55 @@
+
diff --git a/app/javascript/iconic/svg/smart/loop-circular.svg b/app/javascript/iconic/svg/smart/loop-circular.svg
new file mode 100755
index 0000000..800c962
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/loop-circular.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/loop-square.svg b/app/javascript/iconic/svg/smart/loop-square.svg
new file mode 100755
index 0000000..0e0fc61
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/loop-square.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/loop.svg b/app/javascript/iconic/svg/smart/loop.svg
new file mode 100755
index 0000000..128ddf3
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/loop.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/loupe.svg b/app/javascript/iconic/svg/smart/loupe.svg
new file mode 100755
index 0000000..3d42d2c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/loupe.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/magic-wand.svg b/app/javascript/iconic/svg/smart/magic-wand.svg
new file mode 100755
index 0000000..0c39136
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/magic-wand.svg
@@ -0,0 +1,62 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/magnifying-glass.svg b/app/javascript/iconic/svg/smart/magnifying-glass.svg
new file mode 100755
index 0000000..fbc7c8c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/magnifying-glass.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/map-marker.svg b/app/javascript/iconic/svg/smart/map-marker.svg
new file mode 100755
index 0000000..69a3351
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/map-marker.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/map.svg b/app/javascript/iconic/svg/smart/map.svg
new file mode 100755
index 0000000..fd7d1ea
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/map.svg
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/marquee.svg b/app/javascript/iconic/svg/smart/marquee.svg
new file mode 100755
index 0000000..da45632
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/marquee.svg
@@ -0,0 +1,37 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/medal.svg b/app/javascript/iconic/svg/smart/medal.svg
new file mode 100755
index 0000000..c366439
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/medal.svg
@@ -0,0 +1,28 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/media-play-circle.svg b/app/javascript/iconic/svg/smart/media-play-circle.svg
new file mode 100755
index 0000000..958a51b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/media-play-circle.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/media-skip.svg b/app/javascript/iconic/svg/smart/media-skip.svg
new file mode 100755
index 0000000..e17ac98
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/media-skip.svg
@@ -0,0 +1,38 @@
+
diff --git a/app/javascript/iconic/svg/smart/media-step.svg b/app/javascript/iconic/svg/smart/media-step.svg
new file mode 100755
index 0000000..940fcf9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/media-step.svg
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/media.svg b/app/javascript/iconic/svg/smart/media.svg
new file mode 100755
index 0000000..30b8f5f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/media.svg
@@ -0,0 +1,71 @@
+
diff --git a/app/javascript/iconic/svg/smart/medical-cross.svg b/app/javascript/iconic/svg/smart/medical-cross.svg
new file mode 100755
index 0000000..a458c41
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/medical-cross.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/menu-selected.svg b/app/javascript/iconic/svg/smart/menu-selected.svg
new file mode 100755
index 0000000..19438dc
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/menu-selected.svg
@@ -0,0 +1,34 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/menu.svg b/app/javascript/iconic/svg/smart/menu.svg
new file mode 100755
index 0000000..58c9e21
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/menu.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/microphone.svg b/app/javascript/iconic/svg/smart/microphone.svg
new file mode 100755
index 0000000..db5b6ce
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/microphone.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/minus-thin.svg b/app/javascript/iconic/svg/smart/minus-thin.svg
new file mode 100755
index 0000000..fb2ade8
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/minus-thin.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/minus.svg b/app/javascript/iconic/svg/smart/minus.svg
new file mode 100755
index 0000000..a6e25e7
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/minus.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/monitor.svg b/app/javascript/iconic/svg/smart/monitor.svg
new file mode 100755
index 0000000..0a67b4a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/monitor.svg
@@ -0,0 +1,39 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/moon.svg b/app/javascript/iconic/svg/smart/moon.svg
new file mode 100755
index 0000000..26f6fc2
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/moon.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/move.svg b/app/javascript/iconic/svg/smart/move.svg
new file mode 100755
index 0000000..c8b5915
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/move.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/musical-note.svg b/app/javascript/iconic/svg/smart/musical-note.svg
new file mode 100755
index 0000000..0a85d5f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/musical-note.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/network.svg b/app/javascript/iconic/svg/smart/network.svg
new file mode 100755
index 0000000..83c3b47
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/network.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/nexus.svg b/app/javascript/iconic/svg/smart/nexus.svg
new file mode 100755
index 0000000..4b0e53f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/nexus.svg
@@ -0,0 +1,51 @@
+
diff --git a/app/javascript/iconic/svg/smart/open-hardware.svg b/app/javascript/iconic/svg/smart/open-hardware.svg
new file mode 100755
index 0000000..0f8ee2c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/open-hardware.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/open-source.svg b/app/javascript/iconic/svg/smart/open-source.svg
new file mode 100755
index 0000000..8783c41
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/open-source.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/palette.svg b/app/javascript/iconic/svg/smart/palette.svg
new file mode 100755
index 0000000..45de125
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/palette.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/paperclip.svg b/app/javascript/iconic/svg/smart/paperclip.svg
new file mode 100755
index 0000000..866a962
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/paperclip.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/peace.svg b/app/javascript/iconic/svg/smart/peace.svg
new file mode 100755
index 0000000..9641161
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/peace.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pen.svg b/app/javascript/iconic/svg/smart/pen.svg
new file mode 100755
index 0000000..42f0c25
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pen.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pencil.svg b/app/javascript/iconic/svg/smart/pencil.svg
new file mode 100755
index 0000000..cf4d0a3
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pencil.svg
@@ -0,0 +1,33 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/people.svg b/app/javascript/iconic/svg/smart/people.svg
new file mode 100755
index 0000000..760eaa5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/people.svg
@@ -0,0 +1,43 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/person.svg b/app/javascript/iconic/svg/smart/person.svg
new file mode 100755
index 0000000..9657495
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/person.svg
@@ -0,0 +1,62 @@
+
diff --git a/app/javascript/iconic/svg/smart/pie-chart.svg b/app/javascript/iconic/svg/smart/pie-chart.svg
new file mode 100755
index 0000000..ea4825e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pie-chart.svg
@@ -0,0 +1,40 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pilcrow.svg b/app/javascript/iconic/svg/smart/pilcrow.svg
new file mode 100755
index 0000000..1703edb
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pilcrow.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pill.svg b/app/javascript/iconic/svg/smart/pill.svg
new file mode 100755
index 0000000..51f80a9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pill.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pin.svg b/app/javascript/iconic/svg/smart/pin.svg
new file mode 100755
index 0000000..d30e411
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pin.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/platform.svg b/app/javascript/iconic/svg/smart/platform.svg
new file mode 100755
index 0000000..7aec8a8
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/platform.svg
@@ -0,0 +1,114 @@
+
diff --git a/app/javascript/iconic/svg/smart/plus-thin.svg b/app/javascript/iconic/svg/smart/plus-thin.svg
new file mode 100755
index 0000000..bb0ffbb
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/plus-thin.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/plus.svg b/app/javascript/iconic/svg/smart/plus.svg
new file mode 100755
index 0000000..5d48cc0
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/plus.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pointer.svg b/app/javascript/iconic/svg/smart/pointer.svg
new file mode 100755
index 0000000..1572289
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pointer.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/power-standby.svg b/app/javascript/iconic/svg/smart/power-standby.svg
new file mode 100755
index 0000000..cd40fdb
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/power-standby.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/print.svg b/app/javascript/iconic/svg/smart/print.svg
new file mode 100755
index 0000000..a183a6a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/print.svg
@@ -0,0 +1,45 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/project.svg b/app/javascript/iconic/svg/smart/project.svg
new file mode 100755
index 0000000..f259c93
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/project.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/pulse.svg b/app/javascript/iconic/svg/smart/pulse.svg
new file mode 100755
index 0000000..a480c98
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/pulse.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/puzzle-piece.svg b/app/javascript/iconic/svg/smart/puzzle-piece.svg
new file mode 100755
index 0000000..8a3011f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/puzzle-piece.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/question-mark.svg b/app/javascript/iconic/svg/smart/question-mark.svg
new file mode 100755
index 0000000..8afdc14
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/question-mark.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/radiation.svg b/app/javascript/iconic/svg/smart/radiation.svg
new file mode 100755
index 0000000..2f89ddd
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/radiation.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/rainy.svg b/app/javascript/iconic/svg/smart/rainy.svg
new file mode 100755
index 0000000..8db1403
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/rainy.svg
@@ -0,0 +1,43 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/random.svg b/app/javascript/iconic/svg/smart/random.svg
new file mode 100755
index 0000000..c800af6
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/random.svg
@@ -0,0 +1,39 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/ratio.svg b/app/javascript/iconic/svg/smart/ratio.svg
new file mode 100755
index 0000000..eef2833
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/ratio.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/reload.svg b/app/javascript/iconic/svg/smart/reload.svg
new file mode 100755
index 0000000..a817913
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/reload.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/resize.svg b/app/javascript/iconic/svg/smart/resize.svg
new file mode 100755
index 0000000..250afeb
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/resize.svg
@@ -0,0 +1,71 @@
+
diff --git a/app/javascript/iconic/svg/smart/rocket.svg b/app/javascript/iconic/svg/smart/rocket.svg
new file mode 100755
index 0000000..f1270e1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/rocket.svg
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/route.svg b/app/javascript/iconic/svg/smart/route.svg
new file mode 100755
index 0000000..a4ccdd5
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/route.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/rss-alt.svg b/app/javascript/iconic/svg/smart/rss-alt.svg
new file mode 100755
index 0000000..e65d935
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/rss-alt.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/rss.svg b/app/javascript/iconic/svg/smart/rss.svg
new file mode 100755
index 0000000..f91bab1
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/rss.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/scissors.svg b/app/javascript/iconic/svg/smart/scissors.svg
new file mode 100755
index 0000000..142a905
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/scissors.svg
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/screen-viewport.svg b/app/javascript/iconic/svg/smart/screen-viewport.svg
new file mode 100755
index 0000000..11a26a2
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/screen-viewport.svg
@@ -0,0 +1,34 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/screenshot.svg b/app/javascript/iconic/svg/smart/screenshot.svg
new file mode 100755
index 0000000..615a610
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/screenshot.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/screwdriver.svg b/app/javascript/iconic/svg/smart/screwdriver.svg
new file mode 100755
index 0000000..d169991
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/screwdriver.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/script.svg b/app/javascript/iconic/svg/smart/script.svg
new file mode 100755
index 0000000..e058694
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/script.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/server.svg b/app/javascript/iconic/svg/smart/server.svg
new file mode 100755
index 0000000..33bccf2
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/server.svg
@@ -0,0 +1,68 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/settings.svg b/app/javascript/iconic/svg/smart/settings.svg
new file mode 100755
index 0000000..ad23279
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/settings.svg
@@ -0,0 +1,43 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/shape.svg b/app/javascript/iconic/svg/smart/shape.svg
new file mode 100755
index 0000000..13a427c
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/shape.svg
@@ -0,0 +1,138 @@
+
diff --git a/app/javascript/iconic/svg/smart/share-boxed.svg b/app/javascript/iconic/svg/smart/share-boxed.svg
new file mode 100755
index 0000000..379bafc
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/share-boxed.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/share-social.svg b/app/javascript/iconic/svg/smart/share-social.svg
new file mode 100755
index 0000000..848f66f
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/share-social.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/share.svg b/app/javascript/iconic/svg/smart/share.svg
new file mode 100755
index 0000000..9f43221
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/share.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/shield.svg b/app/javascript/iconic/svg/smart/shield.svg
new file mode 100755
index 0000000..f67b49e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/shield.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/signal.svg b/app/javascript/iconic/svg/smart/signal.svg
new file mode 100755
index 0000000..c6ff7d3
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/signal.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/signpost.svg b/app/javascript/iconic/svg/smart/signpost.svg
new file mode 100755
index 0000000..45dffaa
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/signpost.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/social.svg b/app/javascript/iconic/svg/smart/social.svg
new file mode 100755
index 0000000..4f6a9ef
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/social.svg
@@ -0,0 +1,305 @@
+
diff --git a/app/javascript/iconic/svg/smart/sort.svg b/app/javascript/iconic/svg/smart/sort.svg
new file mode 100755
index 0000000..40070a7
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/sort.svg
@@ -0,0 +1,56 @@
+
diff --git a/app/javascript/iconic/svg/smart/spreadsheet.svg b/app/javascript/iconic/svg/smart/spreadsheet.svg
new file mode 100755
index 0000000..4e1d3a7
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/spreadsheet.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/star-empty.svg b/app/javascript/iconic/svg/smart/star-empty.svg
new file mode 100755
index 0000000..ecc0369
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/star-empty.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/star.svg b/app/javascript/iconic/svg/smart/star.svg
new file mode 100755
index 0000000..df95657
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/star.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/sun.svg b/app/javascript/iconic/svg/smart/sun.svg
new file mode 100755
index 0000000..bffa836
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/sun.svg
@@ -0,0 +1,40 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/syringe.svg b/app/javascript/iconic/svg/smart/syringe.svg
new file mode 100755
index 0000000..9998875
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/syringe.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/tablet.svg b/app/javascript/iconic/svg/smart/tablet.svg
new file mode 100755
index 0000000..79331d8
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/tablet.svg
@@ -0,0 +1,31 @@
+
diff --git a/app/javascript/iconic/svg/smart/tag.svg b/app/javascript/iconic/svg/smart/tag.svg
new file mode 100755
index 0000000..a810d15
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/tag.svg
@@ -0,0 +1,24 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/tags.svg b/app/javascript/iconic/svg/smart/tags.svg
new file mode 100755
index 0000000..2e643b7
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/tags.svg
@@ -0,0 +1,38 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/target.svg b/app/javascript/iconic/svg/smart/target.svg
new file mode 100755
index 0000000..c59bab9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/target.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/task.svg b/app/javascript/iconic/svg/smart/task.svg
new file mode 100755
index 0000000..741d903
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/task.svg
@@ -0,0 +1,37 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/terminal.svg b/app/javascript/iconic/svg/smart/terminal.svg
new file mode 100755
index 0000000..df8319b
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/terminal.svg
@@ -0,0 +1,25 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/text.svg b/app/javascript/iconic/svg/smart/text.svg
new file mode 100755
index 0000000..834c9d0
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/text.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/thermometer.svg b/app/javascript/iconic/svg/smart/thermometer.svg
new file mode 100755
index 0000000..4b10a3d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/thermometer.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/thumb.svg b/app/javascript/iconic/svg/smart/thumb.svg
new file mode 100755
index 0000000..8e1a677
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/thumb.svg
@@ -0,0 +1,38 @@
+
diff --git a/app/javascript/iconic/svg/smart/tiara.svg b/app/javascript/iconic/svg/smart/tiara.svg
new file mode 100755
index 0000000..6507417
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/tiara.svg
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/timer.svg b/app/javascript/iconic/svg/smart/timer.svg
new file mode 100755
index 0000000..06e59ee
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/timer.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/tint.svg b/app/javascript/iconic/svg/smart/tint.svg
new file mode 100755
index 0000000..57c4c2e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/tint.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/tools.svg b/app/javascript/iconic/svg/smart/tools.svg
new file mode 100755
index 0000000..8938b37
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/tools.svg
@@ -0,0 +1,43 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/transfer.svg b/app/javascript/iconic/svg/smart/transfer.svg
new file mode 100755
index 0000000..38eab10
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/transfer.svg
@@ -0,0 +1,24 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/trash.svg b/app/javascript/iconic/svg/smart/trash.svg
new file mode 100755
index 0000000..7d5e832
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/trash.svg
@@ -0,0 +1,32 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/ungroup.svg b/app/javascript/iconic/svg/smart/ungroup.svg
new file mode 100755
index 0000000..312fc70
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/ungroup.svg
@@ -0,0 +1,29 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/vertical-align.svg b/app/javascript/iconic/svg/smart/vertical-align.svg
new file mode 100755
index 0000000..8ee9b0a
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/vertical-align.svg
@@ -0,0 +1,79 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/video.svg b/app/javascript/iconic/svg/smart/video.svg
new file mode 100755
index 0000000..bb5c495
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/video.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/volume.svg b/app/javascript/iconic/svg/smart/volume.svg
new file mode 100755
index 0000000..badb669
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/volume.svg
@@ -0,0 +1,89 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/warning.svg b/app/javascript/iconic/svg/smart/warning.svg
new file mode 100755
index 0000000..11c0a0e
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/warning.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/weight.svg b/app/javascript/iconic/svg/smart/weight.svg
new file mode 100755
index 0000000..5f6e6a9
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/weight.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/wifi.svg b/app/javascript/iconic/svg/smart/wifi.svg
new file mode 100755
index 0000000..7d5c748
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/wifi.svg
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/wrench.svg b/app/javascript/iconic/svg/smart/wrench.svg
new file mode 100755
index 0000000..b68e746
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/wrench.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/x-thin.svg b/app/javascript/iconic/svg/smart/x-thin.svg
new file mode 100755
index 0000000..4b172f2
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/x-thin.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/x.svg b/app/javascript/iconic/svg/smart/x.svg
new file mode 100755
index 0000000..5880ad0
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/x.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/yen.svg b/app/javascript/iconic/svg/smart/yen.svg
new file mode 100755
index 0000000..ab6c09d
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/yen.svg
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/javascript/iconic/svg/smart/zoom.svg b/app/javascript/iconic/svg/smart/zoom.svg
new file mode 100755
index 0000000..af1fbee
--- /dev/null
+++ b/app/javascript/iconic/svg/smart/zoom.svg
@@ -0,0 +1,56 @@
+
diff --git a/app/javascript/lib/Api.js b/app/javascript/lib/Api.js
index 95e90e6..f653e7c 100644
--- a/app/javascript/lib/Api.js
+++ b/app/javascript/lib/Api.js
@@ -357,6 +357,71 @@ class Api {
return this.patch("/logs/" + log.id, this.buildLogParams(log));
}
+ getTaskLists(dataHandler) {
+ return this.cacheFirstGet("/task_lists/", {}, dataHandler);
+ }
+
+ buildTaskListParams(taskList) {
+ return {
+ task_list: {
+ name: taskList.name
+ }
+ };
+ }
+
+ postTaskList(taskList) {
+ const params = this.buildTaskListParams(taskList);
+ return this.post("/task_lists/", params);
+ }
+
+ patchTaskList(taskList) {
+ const params = this.buildTaskListParams(taskList);
+ return this.patch(`/task_lists/${taskList.id}`, params);
+ }
+
+ deleteTaskList(taskList) {
+ return this.del(`/task_lists/${taskList.id}`);
+ }
+
+ buildTaskItemParams(taskItem) {
+ return {
+ task_item: {
+ name: taskItem.name,
+ quantity: taskItem.quantity,
+ completed: taskItem.completed
+ }
+ }
+ }
+
+ postTaskItem(listId, taskItem) {
+ const params = this.buildTaskItemParams(taskItem);
+ return this.post(`/task_lists/${listId}/task_items`, params);
+ }
+
+ patchTaskItem(listId, taskItem) {
+ const params = this.buildTaskItemParams(taskItem);
+ return this.patch(`/task_lists/${listId}/task_items/${taskItem.id}`, params);
+ }
+
+ deleteTaskItems(listId, taskItems) {
+ const params = {
+ ids: taskItems.map(i => i.id)
+ };
+ return this.del(`/task_lists/${listId}/task_items/`, params);
+ }
+
+ completeTaskItems(listId, taskItems, invert = false) {
+ const params = {
+ ids: taskItems.map(i => i.id)
+ };
+
+ if (invert === true) {
+ params.invert = true;
+ }
+
+ return this.patch(`/task_lists/${listId}/task_items/complete`, params);
+ }
+
getAdminUserList() {
return this.get("/admin/users");
}
diff --git a/app/javascript/lib/GlobalMixins.js b/app/javascript/lib/GlobalMixins.js
index 61fbc83..343d5d9 100644
--- a/app/javascript/lib/GlobalMixins.js
+++ b/app/javascript/lib/GlobalMixins.js
@@ -1,9 +1,14 @@
import Vue from 'vue';
-import { mapGetters, mapMutations, mapState } from 'vuex';
+import { mapActions, mapGetters, mapMutations, mapState } from 'vuex';
import api from "../lib/Api";
Vue.mixin({
+ data() {
+ return {
+ localLoadingCount: 0
+ };
+ },
computed: {
...mapGetters([
"isLoading",
@@ -12,25 +17,35 @@ Vue.mixin({
]),
...mapState([
"user"
- ])
+ ]),
+ localLoading() {
+ return this.localLoadingCount > 0;
+ }
},
methods: {
+ ...mapActions([
+ 'updateCurrentUser'
+ ]),
...mapMutations([
'setError',
- 'setLoading',
- 'setUser'
+ 'setLoading'
]),
loadResource(promise) {
this.setLoading(true);
+ this.localLoadingCount = this.localLoadingCount + 1;
return promise
.catch(err => this.setError(err))
- .then(() => this.setLoading(false));
+ .then(res => {
+ this.setLoading(false);
+ this.localLoadingCount = this.localLoadingCount - 1;
+ return res;
+ });
},
checkAuthentication() {
- return this.loadResource(api.getCurrentUser().then(user => this.setUser(user)));
+ return this.loadResource(this.updateCurrentUser());
}
}
});
diff --git a/app/javascript/lib/VuexResponsiveSync.js b/app/javascript/lib/VuexResponsiveSync.js
new file mode 100644
index 0000000..13c14f4
--- /dev/null
+++ b/app/javascript/lib/VuexResponsiveSync.js
@@ -0,0 +1,44 @@
+// Adds a module to a vuex store with a set of media query states
+
+const defaultOptions = {
+ module: "mediaQueries"
+};
+
+// Hard coded values taken directly from Bulma css
+const mediaQueries = {
+ mobile: "screen and (max-width: 768px)",
+ tablet: "screen and (min-width: 769px)",
+ tabletOnly: "screen and (min-width: 769px) and (max-width: 1023px)",
+ touch: "screen and (max-width: 1023px)",
+ desktop: "screen and (min-width: 1024px)",
+ desktopOnly: "screen and (min-width: 1024px) and (max-width: 1215px)",
+ widescreen: "screen and (min-width: 1216px)",
+ widescreenOnly: "screen and (min-width: 1216px) and (max-width: 1407px)",
+ fullhd: "screen and (min-width: 1408px)"
+};
+
+export default function(store, options) {
+ let opts = Object.assign({}, defaultOptions, options || {});
+ const moduleName = opts.module;
+
+ const initialState = {};
+
+ for (let device in mediaQueries) {
+ const query = window.matchMedia(mediaQueries[device]);
+ query.onchange = (q) => {
+ store.commit(moduleName + "/MEDIA_QUERY_CHANGED", {mediaName: device, value: q.matches});
+ };
+ initialState[device] = query.matches;
+ }
+
+ store.registerModule(moduleName, {
+ namespaced: true,
+ state: initialState,
+ mutations: {
+ "MEDIA_QUERY_CHANGED" (state, data) {
+ state[data.mediaName] = data.value;
+ }
+ }
+ });
+
+}
\ No newline at end of file
diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js
index 108d278..2e64fa3 100644
--- a/app/javascript/packs/application.js
+++ b/app/javascript/packs/application.js
@@ -3,6 +3,7 @@ import '../styles';
import Vue from 'vue'
import { sync } from 'vuex-router-sync';
import { swInit } from "../lib/ServiceWorker";
+import responsiveSync from "../lib/VuexResponsiveSync";
import VueProgressBar from "vue-progressbar";
import config from '../config';
import store from '../store';
@@ -14,6 +15,8 @@ import AppAutocomplete from "../components/AppAutocomplete";
import AppConfirm from "../components/AppConfirm";
import AppDateTime from "../components/AppDateTime";
import AppDatePicker from "../components/AppDatePicker";
+import AppDropdown from "../components/AppDropdown";
+import AppExpandTransition from "../components/AppExpandTransition";
import AppIcon from "../components/AppIcon";
import AppModal from "../components/AppModal";
import AppNavbar from "../components/AppNavbar";
@@ -27,6 +30,8 @@ Vue.component("AppAutocomplete", AppAutocomplete);
Vue.component("AppConfirm", AppConfirm);
Vue.component("AppDateTime", AppDateTime);
Vue.component("AppDatePicker", AppDatePicker);
+Vue.component("AppDropdown", AppDropdown);
+Vue.component("AppExpandTransition", AppExpandTransition);
Vue.component("AppIcon", AppIcon);
Vue.component("AppModal", AppModal);
Vue.component("AppNavbar", AppNavbar);
@@ -53,6 +58,7 @@ Vue.use(VueProgressBar, {
sync(store, router);
swInit(store);
+responsiveSync(store);
document.addEventListener('DOMContentLoaded', () => {
diff --git a/app/javascript/router.js b/app/javascript/router.js
index 20ad8ef..6facdee 100644
--- a/app/javascript/router.js
+++ b/app/javascript/router.js
@@ -20,6 +20,8 @@ import TheRecipeEditor from './components/TheRecipeEditor';
import TheRecipeCreator from './components/TheRecipeCreator';
import TheRecipeList from './components/TheRecipeList';
+import TheTaskListList from './components/TheTaskListList';
+
import TheUserCreator from './components/TheUserCreator';
import TheUserEditor from './components/TheUserEditor';
@@ -113,6 +115,11 @@ router.addRoutes(
name: "notes",
component: TheNotesList
},
+ {
+ path: "/tasks",
+ name: "task_lists",
+ component: TheTaskListList
+ },
{
path: "/logout",
name: "logout",
diff --git a/app/javascript/store/index.js b/app/javascript/store/index.js
index 9f26c2e..9bc900c 100644
--- a/app/javascript/store/index.js
+++ b/app/javascript/store/index.js
@@ -10,10 +10,13 @@ export default new Vuex.Store({
state: {
updateAvailable: false,
loadingCount: 0,
- loading: false,
error: null,
authChecked: false,
user: null,
+ loginMessage: null,
+
+ taskLists: [],
+ currentTaskList: null,
// MediaQueryList objects in the root App component maintain this state.
mediaQueries: {
@@ -30,7 +33,7 @@ export default new Vuex.Store({
},
getters: {
isLoading(state) {
- return state.loading === true;
+ return state.loadingCount > 0;
},
isLoggedIn(state) {
return state.user !== null;
@@ -63,14 +66,142 @@ export default new Vuex.Store({
state.user = user;
},
- setMediaQuery(state, data) {
- state.mediaQueries[data.mediaName] = data.value;
+ setLoginMessage(state, msg) {
+ state.loginMessage = msg;
+ },
+
+ setTaskLists(state, lists) {
+ state.taskLists = lists || [];
+ },
+
+ setCurrentTaskList(state, list) {
+ state.currentTaskList = list || null;
+ },
+
+ appendTaskItem(state, item) {
+ const listId = item.task_list_id;
+ const list = state.taskLists.find(l => l.id === listId);
+ if (list) {
+ list.task_items.push(item);
+ }
+ },
+
+ replaceTaskItem(state, item) {
+ const listId = item.task_list_id;
+ const list = state.taskLists.find(l => l.id === listId);
+ if (list) {
+ const taskIdx = list.task_items.findIndex(i => i.id === item.id);
+ if (taskIdx >= 0) {
+ list.task_items.splice(taskIdx, 1, item);
+ }
+ }
+ },
+
+ removeTaskItems(state, payload) {
+ const listId = payload.taskList.id;
+ const list = state.taskLists.find(l => l.id === listId);
+ if (list) {
+
+ list.task_items = list.task_items.filter(item => {
+ return payload.taskItems.findIndex(i => i.id === item.id) === -1;
+ });
+ }
+ },
+
+ setTaskItemCompletion(state, payload) {
+ const listId = payload.taskList.id;
+ const list = state.taskLists.find(l => l.id === listId);
+ if (list) {
+ list.task_items.forEach(item => {
+ if (payload.taskItems.findIndex(i => i.id === item.id) >= 0) {
+ item.completed = payload.completed;
+ }
+ });
+ }
}
},
actions: {
+ updateCurrentUser({commit}) {
+ return api.getCurrentUser()
+ .then(user => {
+ commit("setUser", user);
+ return user;
+ });
+ },
+
+ login({commit}, authData) {
+ return api.postLogin(authData.username, authData.password)
+ .then(data => {
+ if (data.success) {
+ commit("setUser", data.user);
+ commit("setLoginMessage", null);
+ } else {
+ commit("setUser", null);
+ commit("setLoginMessage", data.message);
+ }
+ return data;
+ });
+ },
+
logout({commit}) {
return api.getLogout()
- .then(() => commit("setUser", null));
+ .then(() => {
+ commit("setUser", null);
+ });
+ },
+
+ refreshTaskLists({commit, state}) {
+ const cb = function(data) {
+ commit("setTaskLists", data);
+ let ctl = null;
+
+ if (state.currentTaskList) {
+ ctl = data.find(l => l.id === state.currentTaskList.id);
+ }
+
+ ctl = ctl || data[0] || null;
+ commit("setCurrentTaskList", ctl);
+ };
+
+ return api.getTaskLists(cb)
+ },
+
+ createTaskList({commit, dispatch}, newList) {
+ return api.postTaskList(newList)
+ .then(data => commit("setCurrentTaskList", data))
+ .then(() => dispatch("refreshTaskLists"))
+ },
+
+ deleteTaskList({dispatch}, taskList) {
+ return api.deleteTaskList(taskList)
+ .then(() => dispatch("refreshTaskLists"));
+ },
+
+ createTaskItem({commit, dispatch}, taskItem) {
+
+ return api.postTaskItem(taskItem.task_list_id, taskItem)
+ .then(data => {
+ commit("appendTaskItem", data);
+ return data;
+ });
+ },
+
+ updateTaskItem({commit}, taskItem) {
+ return api.patchTaskItem(taskItem.task_list_id, taskItem)
+ .then(data => {
+ commit("replaceTaskItem", data);
+ return data;
+ });
+ },
+
+ deleteTaskItems({commit}, payload) {
+ return api.deleteTaskItems(payload.taskList.id, payload.taskItems)
+ .then(() => commit("removeTaskItems", payload));
+ },
+
+ completeTaskItems({commit}, payload) {
+ return api.completeTaskItems(payload.taskList.id, payload.taskItems, !payload.completed)
+ .then(() => commit("setTaskItemCompletion", payload));
}
}
});
\ No newline at end of file
diff --git a/app/javascript/styles/_iconic.scss b/app/javascript/styles/_iconic.scss
new file mode 100644
index 0000000..984e94c
--- /dev/null
+++ b/app/javascript/styles/_iconic.scss
@@ -0,0 +1,25 @@
+@mixin iconic-color($color) {
+ fill: $color;
+ stroke: $color;
+}
+
+/* Hide all icons that are waiting to be injected */
+img.iconic {
+ display: none;
+}
+
+/* Make sure filled and text elements only get fills */
+.iconic-property-fill, .iconic-property-text {
+ stroke: none !important;
+}
+
+/* Make sure stroked elements only get strokes */
+.iconic-property-stroke {
+ fill: none !important;
+}
+
+
+/* Theme-specific rules */
+.iconic * {
+ @include iconic-color(currentColor);
+}
\ No newline at end of file
diff --git a/app/javascript/styles/_transitions.scss b/app/javascript/styles/_transitions.scss
new file mode 100644
index 0000000..cd9bc7f
--- /dev/null
+++ b/app/javascript/styles/_transitions.scss
@@ -0,0 +1,21 @@
+
+.fade-enter-active, .fade-leave-active {
+ transition: opacity .5s, max-height .5s;
+ max-height: 300px;
+}
+.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
+ opacity: 0;
+ max-height: 0;
+}
+
+
+.expand-enter-active,
+.expand-leave-active {
+ transition: height .5s ease-in-out;
+ overflow: hidden;
+}
+
+//.expand-enter,
+//.expand-leave-to {
+// height: 0;
+//}
\ No newline at end of file
diff --git a/app/javascript/styles/_variables.scss b/app/javascript/styles/_variables.scss
index bb4405d..79b67f3 100644
--- a/app/javascript/styles/_variables.scss
+++ b/app/javascript/styles/_variables.scss
@@ -30,4 +30,6 @@ $modal-content-width: 750px;
// Make all Bulma variables and functions available
@import "~bulma/sass/utilities/initial-variables";
@import "~bulma/sass/utilities/functions";
+@import "~bulma/sass/utilities/derived-variables";
+//$dropdown-item-hover-background-color: $white-ter;
\ No newline at end of file
diff --git a/app/javascript/styles/index.scss b/app/javascript/styles/index.scss
index 90f7559..7881a35 100644
--- a/app/javascript/styles/index.scss
+++ b/app/javascript/styles/index.scss
@@ -2,6 +2,7 @@
@import "~bulma/sass/utilities/_all";
@import "~bulma/sass/base/_all";
+@import "~bulma/sass/components/dropdown";
@import "~bulma/sass/components/navbar";
@import "~bulma/sass/components/level";
@import "~bulma/sass/components/message";
@@ -13,6 +14,8 @@
@import "./responsive_controls";
@import "./wide_modal";
+@import "./iconic";
+@import "./transitions";
html {
height: 100%;
diff --git a/app/models/concerns/default_values.rb b/app/models/concerns/default_values.rb
new file mode 100644
index 0000000..3eace90
--- /dev/null
+++ b/app/models/concerns/default_values.rb
@@ -0,0 +1,95 @@
+# == Default Values
+#
+# Allows default attributes values to be declared. The callback used to set the values can be controlled via options.
+#
+# The following option keys are allowed:
+# `:on`. If omitted, it defaults to :initialize.
+# :on may be one of the following: :initialize, :create, :update, :save
+#
+# `:empty`. If omitted, it defaults to only updating `nil` values
+# :empty should be a lambda (or proc) that accepts the current value of the attribute and returns true if the value
+# should be replaced by the default
+#
+# Examples:
+# Sets `attr` to 'default' and `attr2` to 'default' any time the class is instantiated
+# default_values {
+# attr: 'default',
+# attr2: 'default'
+# }
+#
+# Sets `roles` to [:super_admin] only when saving a new object and only if roles is an empty array (it will not update a nil value)
+# default_values({roles: [:super_admin]}, {on: :create, empty: ->(v) { v == [] }})
+#
+module DefaultValues
+ extend ActiveSupport::Concern
+
+ DEFAULT_OPTIONS = { on: :initialize }
+
+ DefaultValue = Struct.new(:value, :options)
+
+ included do
+ class_attribute :_default_values
+ self._default_values = {}
+
+ after_initialize :set_default_values_initialize
+ before_create :set_default_values_create
+ before_update :set_default_values_update
+ before_save :set_default_values_save
+ end
+
+ def set_default_values_initialize
+ set_default_values(:initialize)
+ end
+
+ def set_default_values_create
+ set_default_values(:create)
+ end
+
+ def set_default_values_update
+ set_default_values(:update)
+ end
+
+ def set_default_values_save
+ set_default_values(:save)
+ end
+
+ def set_default_values(on)
+ _default_values.each do |k, dv|
+ if dv.options[:on].to_sym == on
+ v = dv.value
+ v_lambda = Proc === v ? v : -> { v }
+
+ tester = dv.options[:empty] || ->(x) { x.nil? }
+
+ self.send("#{k}=", self.instance_exec(&v_lambda)) if self.respond_to?(k) && tester.call(self.send(k))
+ end
+ end
+ end
+
+ module ClassMethods
+ # Copy defaults on inheritance.
+ def inherited(base)
+ base._default_values = _default_values.dup
+ super
+ end
+
+ def default_values(defaults_hash, options = {})
+ options = DEFAULT_OPTIONS.merge(options.symbolize_keys)
+
+ valid_ons = [:initialize, :create, :update, :save]
+
+ unless valid_ons.include? options[:on]
+ raise "Invalid options[:on] value: [#{options[:on]}]. Must be one of these symbols: #{valid_ons.join(', ')}"
+ end
+
+ if options[:empty].present?
+ proc = options[:empty]
+ raise "Invalid options[:empty]. Must be a Proc or Lambda with an arity of 1" unless (proc.is_a?(Proc) && proc.arity == 1)
+ end
+
+ defaults_hash.each do |k, v|
+ _default_values[k] = DefaultValue.new(v, options)
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/app/models/recipe.rb b/app/models/recipe.rb
index 22db7f0..651aeaf 100644
--- a/app/models/recipe.rb
+++ b/app/models/recipe.rb
@@ -135,8 +135,6 @@ class Recipe < ApplicationRecord
query = query.where(id: tags.joins(:recipes).pluck('recipes.id'))
end
- puts criteria.inspect
-
query.page(criteria.page).per(criteria.per)
end
diff --git a/app/models/task_item.rb b/app/models/task_item.rb
new file mode 100644
index 0000000..5f266ad
--- /dev/null
+++ b/app/models/task_item.rb
@@ -0,0 +1,10 @@
+class TaskItem < ApplicationRecord
+ include DefaultValues
+
+ belongs_to :task_list
+
+ validates :name, presence: true
+
+ default_values completed: false
+
+end
diff --git a/app/models/task_list.rb b/app/models/task_list.rb
new file mode 100644
index 0000000..ab29706
--- /dev/null
+++ b/app/models/task_list.rb
@@ -0,0 +1,12 @@
+class TaskList < ApplicationRecord
+
+ belongs_to :user
+ has_many :task_items, dependent: :delete_all
+
+ validates :name,
+ presence: true,
+ uniqueness: { case_sensitive: false }
+
+ scope :for_user, -> (user) { where(user_id: user) }
+
+end
diff --git a/app/models/user.rb b/app/models/user.rb
index ad586c1..4838cd2 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -2,6 +2,7 @@ class User < ApplicationRecord
has_many :recipes, dependent: :nullify
has_many :ingredients, dependent: :nullify
+ has_many :task_lists, dependent: :destroy
has_secure_password
diff --git a/app/models/view_models/recipe_criteria.rb b/app/models/view_models/recipe_criteria.rb
index 53f6d2c..e1fa8f6 100644
--- a/app/models/view_models/recipe_criteria.rb
+++ b/app/models/view_models/recipe_criteria.rb
@@ -14,8 +14,6 @@ module ViewModels
self.send(setter, params[attr])
end
end
-
- puts self.inspect
end
def sort_column
diff --git a/app/views/home/sw.js.erb b/app/views/home/sw.js.erb
index feee6d9..3606b1b 100644
--- a/app/views/home/sw.js.erb
+++ b/app/views/home/sw.js.erb
@@ -1,9 +1,11 @@
<%
- pack_assets = [asset_pack_path("application.js"), asset_pack_path("application.css")].select { |a| a.present? }
+ manifest_data = Webpacker::manifest.refresh
+ manifest_timestamp = File.mtime(Webpacker::config.public_manifest_path).to_i
+ pack_assets = manifest_data.values.select { |asset| asset !~ /\.map$/ }
%>
-var cacheName = "parsley-cache-<%= File.mtime(Webpacker::manifest.config.public_manifest_path).to_i %>";
+var cacheName = "parsley-cache-<%= manifest_timestamp %>";
var staticAssets = [
"/"
@@ -26,7 +28,7 @@ self.addEventListener('activate', function(event) {
caches.keys().then(function (keyList) {
return Promise.all(keyList.map(function (key) {
if (key !== cacheName) {
- console.log('[ServiceWorker] Removing old cache', key);
+ console.log(`[ServiceWorker] Removing old cache: ${key}`);
return caches.delete(key);
}
}));
@@ -39,6 +41,11 @@ self.addEventListener('fetch', function(event) {
var isCacheThenNetwork = event.request.headers.get("Cache-Then-Network") === "true";
var x, asset;
+ // Any non-GET or non-http(s) request should be ignored
+ if (event.request.method !== 'GET' || event.request.url.indexOf('http') !== 0) {
+ return;
+ }
+
// Cache-first response for static assets
for (x = 0; x < staticAssets.length; x++) {
asset = staticAssets[x];
diff --git a/app/views/task_items/_task_item.json.jbuilder b/app/views/task_items/_task_item.json.jbuilder
new file mode 100644
index 0000000..4f4a5f6
--- /dev/null
+++ b/app/views/task_items/_task_item.json.jbuilder
@@ -0,0 +1 @@
+json.extract! task_item, :id, :task_list_id, :name, :quantity, :completed, :created_at, :updated_at
\ No newline at end of file
diff --git a/app/views/task_items/show.json.jbuilder b/app/views/task_items/show.json.jbuilder
new file mode 100644
index 0000000..f1fc61b
--- /dev/null
+++ b/app/views/task_items/show.json.jbuilder
@@ -0,0 +1 @@
+json.partial! 'task_items/task_item', task_item: @task_item
\ No newline at end of file
diff --git a/app/views/task_lists/_task_list.json.jbuilder b/app/views/task_lists/_task_list.json.jbuilder
new file mode 100644
index 0000000..39bd525
--- /dev/null
+++ b/app/views/task_lists/_task_list.json.jbuilder
@@ -0,0 +1,3 @@
+
+json.extract! task_list, :id, :name, :created_at, :updated_at
+json.task_items task_list.task_items, partial: 'task_items/task_item', as: :task_item
diff --git a/app/views/task_lists/index.json.jbuilder b/app/views/task_lists/index.json.jbuilder
new file mode 100644
index 0000000..8cd31f6
--- /dev/null
+++ b/app/views/task_lists/index.json.jbuilder
@@ -0,0 +1 @@
+json.array! @task_lists, partial: 'task_lists/task_list', as: :task_list
\ No newline at end of file
diff --git a/app/views/task_lists/show.json.jbuilder b/app/views/task_lists/show.json.jbuilder
new file mode 100644
index 0000000..4892879
--- /dev/null
+++ b/app/views/task_lists/show.json.jbuilder
@@ -0,0 +1 @@
+json.partial! 'task_lists/task_list', task_list: @task_list
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index dcd6d3f..773d14b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -33,6 +33,15 @@ Rails.application.routes.draw do
end
end
+ resources :task_lists, only: [:index, :show, :create, :update, :destroy] do
+ resources :task_items, only: [:create, :update] do
+ collection do
+ delete '/', action: :destroy, as: :destroy
+ patch 'complete', action: :complete
+ end
+ end
+ end
+
resource :user, only: [:new, :create, :edit, :update]
get '/login' => 'users#login', as: :login
diff --git a/config/webpack/environment.js b/config/webpack/environment.js
index 841c7df..dc70989 100644
--- a/config/webpack/environment.js
+++ b/config/webpack/environment.js
@@ -3,7 +3,7 @@ const vue = require('./loaders/vue');
const svg = require('./loaders/svg');
environment.loaders.append('vue', vue);
-environment.loaders.append('svg', svg);
+environment.loaders.prepend('svg', svg);
const fileLoader = environment.loaders.get('file');
fileLoader.exclude = /\.(svg)$/i;
diff --git a/config/webpack/loaders/svg.js b/config/webpack/loaders/svg.js
index 16b6182..b1da427 100644
--- a/config/webpack/loaders/svg.js
+++ b/config/webpack/loaders/svg.js
@@ -1,7 +1,18 @@
+const path = require("path");
module.exports = {
test: /\.svg$/,
use: [{
- loader: 'svg-loader'
+ loader: path.join(__dirname, 'svg_loader.js')
}]
};
+
+// module.exports = {
+// test: /\.svg$/,
+// use: [{
+// loader: 'url-loader',
+// options: {
+// limit: 10000
+// }
+// }]
+// };
diff --git a/config/webpack/loaders/svg_loader.js b/config/webpack/loaders/svg_loader.js
new file mode 100644
index 0000000..619b321
--- /dev/null
+++ b/config/webpack/loaders/svg_loader.js
@@ -0,0 +1,27 @@
+module.exports = function(content) {
+ this.cacheable && this.cacheable();
+
+ var match = content.match(/