fleetio_spark 0.1.30 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spark/_icons.js +1 -1
  3. data/app/assets/javascripts/spark/{_tree.js → components/nav/_tree.js} +1 -1
  4. data/app/assets/javascripts/spark/{_sidebar.js → components/sidebar/_toggle.js} +1 -2
  5. data/app/assets/javascripts/spark/components/ui/_sticky_panel.js +185 -0
  6. data/app/assets/javascripts/spark/spark.js +4 -2
  7. data/app/assets/stylesheets/spark/_index.scss +1 -1
  8. data/app/assets/stylesheets/spark/components/_index.scss +15 -7
  9. data/app/assets/stylesheets/spark/components/app/_banner.scss +56 -0
  10. data/app/assets/stylesheets/spark/components/{header/_app-nav-header.scss → app/_header.scss} +22 -33
  11. data/app/assets/stylesheets/spark/components/app/_layout.scss +52 -0
  12. data/app/assets/stylesheets/spark/components/app/_sidebar.scss +54 -0
  13. data/app/assets/stylesheets/spark/components/app/sidebar/_header.scss +101 -0
  14. data/app/assets/stylesheets/spark/components/app/sidebar/_toggle.scss +109 -0
  15. data/app/assets/stylesheets/spark/components/nav/_breadcrumbs.scss +0 -0
  16. data/app/assets/stylesheets/spark/components/nav/_item.scss +57 -0
  17. data/app/assets/stylesheets/spark/components/nav/_sidebar.scss +0 -0
  18. data/app/assets/stylesheets/spark/components/nav/_tree.scss +4 -0
  19. data/app/assets/stylesheets/spark/components/nav/tree/_group.scss +42 -0
  20. data/app/assets/stylesheets/spark/components/ui/_sticky_panel.scss +9 -0
  21. data/app/assets/stylesheets/spark/components/ui/_toolbar.scss +14 -0
  22. data/app/assets/stylesheets/spark/{components → components_old}/_dropdown.scss +0 -0
  23. data/app/assets/stylesheets/spark/components_old/_index.scss +5 -0
  24. data/app/assets/stylesheets/spark/{components → components_old}/_modal.scss +0 -0
  25. data/app/assets/stylesheets/spark/{components → components_old}/_nav-menu.scss +0 -0
  26. data/app/assets/stylesheets/spark/{components → components_old}/_tooltip.scss +0 -0
  27. data/app/assets/stylesheets/spark/{components → components_old}/header/_index.scss +0 -1
  28. data/app/assets/stylesheets/spark/{components → components_old}/header/_search-results.scss +0 -0
  29. data/app/assets/stylesheets/spark/{components → components_old}/header/_search.scss +1 -0
  30. data/app/assets/stylesheets/spark/{components → components_old}/header/_trial-status.scss +0 -0
  31. data/app/assets/stylesheets/spark/core/_index.scss +0 -1
  32. data/app/assets/stylesheets/spark/core/_vars.scss +10 -6
  33. data/app/assets/svgs/spark/add.svg +1 -1
  34. data/app/components/spark/app/banner_component.rb +36 -0
  35. data/app/components/spark/app/header_component.rb +59 -0
  36. data/app/components/spark/app/layout_component.rb +59 -0
  37. data/app/components/spark/app/sidebar/header/_header.js +11 -0
  38. data/app/components/spark/app/sidebar/header_component.rb +40 -0
  39. data/app/components/spark/app/sidebar/toggle_component.rb +12 -0
  40. data/app/components/spark/app/sidebar_component.rb +9 -0
  41. data/app/components/spark/nav/breadcrumbs/_breadcrumbs.html.erb +0 -0
  42. data/app/components/spark/nav/breadcrumbs_component.rb +2 -0
  43. data/app/components/spark/nav/group_component.rb +30 -0
  44. data/app/components/spark/nav/item_component.rb +38 -0
  45. data/app/components/spark/nav/sidebar_component.rb +16 -0
  46. data/app/components/spark/nav/tree/group_component.rb +34 -0
  47. data/app/components/spark/nav/tree_component.rb +43 -0
  48. data/app/components/spark/ui/sticky_panel_component.rb +9 -0
  49. data/app/components/spark/ui/toolbar_component.rb +10 -0
  50. data/app/helpers/spark/nav_menu_helper.rb +0 -23
  51. data/config/esvg.yml +0 -3
  52. data/lib/fleetio_spark.rb +1 -0
  53. data/lib/fleetio_spark/helper.rb +1 -1
  54. data/lib/fleetio_spark/version.rb +1 -1
  55. data/public/spark-0.2.0.css +1 -0
  56. data/public/spark-0.2.0.css.gz +0 -0
  57. data/public/spark-0.2.0.js +2 -0
  58. data/public/spark-0.2.0.js.gz +0 -0
  59. data/public/spark-0.2.0.js.map +1 -0
  60. metadata +64 -29
  61. data/app/assets/stylesheets/spark/components/_sidebar.scss +0 -371
  62. data/app/assets/stylesheets/spark/components/_tree-nav.scss +0 -15
  63. data/app/assets/stylesheets/spark/core/_layout.scss +0 -105
  64. data/app/components/spark/_spark_components.scss +0 -1
  65. data/app/components/spark/header_message/_header_message.html.erb +0 -11
  66. data/app/components/spark/header_message/_header_message.scss +0 -83
  67. data/app/components/spark/header_message_component.rb +0 -23
  68. data/app/views/shared/spark/_app-account-header.html.slim +0 -10
  69. data/app/views/shared/spark/_app-admin-header.html.slim +0 -7
  70. data/public/spark-0.1.30.css +0 -1
  71. data/public/spark-0.1.30.css.gz +0 -0
  72. data/public/spark-0.1.30.js +0 -2
  73. data/public/spark-0.1.30.js.gz +0 -0
  74. data/public/spark-0.1.30.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ .app-sidebar {
2
+ @include font-smoothing;
3
+ width: $app-sidebar-width;
4
+ flex-direction: column;
5
+ overflow-y: scroll;
6
+ flex-shrink: 0;
7
+ background-color: $app-sidebar-bg;
8
+ font-size: $base-size;
9
+ line-height: $base-line-height;
10
+
11
+ .nav-item {
12
+ color: rgba($fl-white, 0.8);
13
+ &:hover,
14
+ &:focus {
15
+ color: $fl-white;
16
+ outline: none;
17
+ background-color: $app-sidebar-item-hover;
18
+ }
19
+
20
+ &.active {
21
+ color: $fl-white;
22
+ background-color: $app-sidebar-item-active;
23
+ }
24
+ }
25
+
26
+ .nav-group {
27
+ .nav-item.active {
28
+ &:before {
29
+ content: "";
30
+ position: absolute;
31
+ display: block;
32
+ z-index: 1;
33
+ left: 26px;
34
+ top: 10px;
35
+ width: 6px;
36
+ height: 6px;
37
+ border-radius: 50%;
38
+ background-color: $fl-blue-500;
39
+ }
40
+ }
41
+ }
42
+
43
+ .nav-item-wrapper {
44
+ &.active {
45
+ color: $fl-white;
46
+
47
+ &,
48
+ .nav-group {
49
+ background-color: $app-sidebar-item-active;
50
+ }
51
+ }
52
+ }
53
+ }
54
+
@@ -0,0 +1,101 @@
1
+ // Account & User Menu
2
+ .app-sidebar-header {
3
+ position: absolute;
4
+ width: $app-sidebar-width;
5
+ z-index: 100;
6
+
7
+ + * {
8
+ margin-top: $app-header-height;
9
+ }
10
+
11
+ > a {
12
+ display: flex;
13
+ flex: 1;
14
+ align-items: center;
15
+ color: $fl-white;
16
+ height: $app-header-height;
17
+ padding: 0 20px;
18
+ text-decoration: none;
19
+ transition: background-color $duration $timing;
20
+ background-color: $app-sidebar-item-hover;
21
+ line-height: 1.4;
22
+ border-bottom: 1px solid rgba(#000, .2);
23
+
24
+ &:hover,
25
+ &:focus {
26
+ color: $fl-white;
27
+ background-color: lighten($app-sidebar-item-hover, 1%);
28
+
29
+ .dropdown-icon {
30
+ color: inherit
31
+ }
32
+ }
33
+ }
34
+
35
+ .dropdown-icon {
36
+ margin-left: 4px;
37
+ color: rgba($fl-white, 0.4);
38
+ transition: color $duration $timing;
39
+ position: relative;
40
+ top: .5em;
41
+ }
42
+
43
+ .details {
44
+ display: flex;
45
+ flex-wrap: wrap;
46
+ margin-right: auto;
47
+ line-height: 1.5;
48
+ padding-right: $pad-base;
49
+
50
+ &, * {
51
+ white-space: nowrap;
52
+ overflow: hidden;
53
+ min-width: 0;
54
+ text-overflow: ellipsis;
55
+ }
56
+
57
+ .account-name {
58
+ font-weight: 700;
59
+ max-width: calc(100% - 1em);
60
+ }
61
+
62
+ .user-name {
63
+ font-size: 12px;
64
+ opacity: .75;
65
+ font-weight: 500;
66
+ flex-basis: 100%;
67
+ }
68
+ }
69
+
70
+ .user-avatar img {
71
+ max-width: none;
72
+ vertical-align: middle;
73
+ border-radius: 50%;
74
+ width: 32px;
75
+ height: 32px;
76
+ }
77
+
78
+ // Styling for bootstrap dropdown until we replace with spark component
79
+ .dropdown-menu {
80
+ margin-top: -$pad-base;
81
+ margin-left: $pad-lg;
82
+
83
+ .user-name {
84
+ padding: 0 $pad-lg;
85
+ margin: $pad-md 0;
86
+ }
87
+
88
+ .user-avatar {
89
+ width: 40px;
90
+ height: 40px;
91
+ }
92
+
93
+ .nav-group {
94
+ margin: $pad-base 0;
95
+
96
+ .nav-header {
97
+ padding: $pad-sm $pad-base;
98
+ }
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,109 @@
1
+ .app-sidebar-toggle {
2
+ display: none;
3
+ flex-shrink: 0;
4
+ cursor: default;
5
+ position: relative;
6
+ left: -11px;
7
+ margin-right: 4px;
8
+ z-index: 11;
9
+
10
+ .with-sidebar & { display: block; }
11
+
12
+ .icon-wrapper {
13
+ cursor: pointer;
14
+ position: relative;
15
+ z-index: 101;
16
+ @include circular-button(32px);
17
+ transition: all $duration $timing;
18
+ &:hover {
19
+ background-color: $fl-gray-50;
20
+ }
21
+ }
22
+
23
+ // Shade that covers the body
24
+ &:after {
25
+ content: "";
26
+ transition: opacity $duration * 2 $timing;
27
+ box-shadow: 5px -30px 20px rgba(#000, .4) inset;
28
+ background: rgba(#000, .2);
29
+ width: 100vw;
30
+ height: 120vh;
31
+ right: 0;
32
+ left: $app-sidebar-width;
33
+ top: 0;
34
+ opacity: 0;
35
+ z-index: -1;
36
+ }
37
+
38
+ .show-sidebar & {
39
+ &:after {
40
+ position: fixed;
41
+ opacity: 1;
42
+ z-index: 100;
43
+ @include at-least( $width-md ) {
44
+ position: static;
45
+ }
46
+ }
47
+
48
+ .icon-wrapper {
49
+ &:focus, &:hover {
50
+ background: none;
51
+ }
52
+ }
53
+ }
54
+
55
+ @include at-least( $width-md ) {
56
+ overflow: hidden;
57
+ width: 0;
58
+ margin: 0;
59
+ &:after {
60
+ position: static;
61
+ z-index: -1;
62
+ }
63
+ }
64
+ }
65
+
66
+ .close-sidebar-icon {
67
+ width: 18px;
68
+ color: $fl-gray-500;
69
+
70
+ &:hover {
71
+ color: $fl-gray-700;
72
+ }
73
+
74
+ &, &:before, &:after {
75
+ position: relative;
76
+ display: block;
77
+ height: 2px;
78
+ background: currentColor;
79
+ transform: translate3d(0,0,0);
80
+ transform-origin: center middle;
81
+ transition: $duration * 1.5 $timing;
82
+ transition-property: transform, background-color;
83
+ }
84
+
85
+ &:before, &:after {
86
+ width: 100%;
87
+ content: "";
88
+ }
89
+
90
+ &:before { top: -5px; }
91
+ &:after { top: 3px; }
92
+
93
+ .show-sidebar & {
94
+ &, &:before, &:after {
95
+ transition-delay: $duration / 2;
96
+ }
97
+ color: $fl-gray-1000;
98
+ background: transparent;
99
+
100
+ &:before {
101
+ transform: rotate(-45deg) translate3d(0,0,0);
102
+ top: 0px;
103
+ }
104
+ &:after {
105
+ transform: rotate(45deg) translate3d(0,0,0);
106
+ top: -2px;
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,57 @@
1
+ .nav-item {
2
+ cursor: pointer;
3
+ display: flex;
4
+ align-items: center;
5
+ position: relative;
6
+ padding: ($pad-base + 1) 20px;
7
+ text-decoration: none;
8
+ font-size: 14px;
9
+ font-weight: 500;
10
+ transition: color $duration-short $timing;
11
+ color: inherit;
12
+
13
+ &-icon {
14
+ flex-shrink: 0;
15
+
16
+ &:first-child {
17
+ margin-right: $pad-lg;
18
+ }
19
+ }
20
+
21
+ .expand-icon {
22
+ display: flex;
23
+ flex-shrink: 0;
24
+ transition: $duration $timing;
25
+ transition-property: opacity;
26
+ }
27
+
28
+ &-content {
29
+ width: 100%;
30
+ min-width: 0;
31
+ white-space: nowrap;
32
+ text-overflow: ellipsis;
33
+ overflow: hidden;
34
+ }
35
+
36
+ &-label {
37
+ font-size: 9px;
38
+ padding: .15em .6em;
39
+ border-radius: 30px;
40
+ margin-left: 6px;
41
+ margin-right: auto;
42
+ color: inherit;
43
+ text-transform: uppercase;
44
+ font-weight: 600;
45
+ border: 1px solid;
46
+
47
+ &.new {
48
+ color: $fl-yellow-600;
49
+ border-color: rgba($fl-yellow-700, .75);
50
+ }
51
+
52
+ &.beta {
53
+ color: $fl-teal-400;
54
+ border-color: rgba($fl-teal-500, .75);
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,4 @@
1
+ [role=tree] {
2
+ list-style: none;
3
+ -webkit-overflow-scrolling: touch;
4
+ }
@@ -0,0 +1,42 @@
1
+ [role=tree] {
2
+ [role=group] {
3
+ overflow: hidden;
4
+ }
5
+
6
+ [role=treeitem][aria-expanded=false] > [role=group] {
7
+ max-height: 0;
8
+ padding: 0;
9
+ opacity: 0;
10
+ }
11
+
12
+ [role=treeitem][aria-expanded=true] .expand-icon {
13
+ transform: rotate(180deg);
14
+ }
15
+ }
16
+
17
+ [aria-expanded=true] > [role=group] {
18
+ max-height: 800px;
19
+ opacity: 1;
20
+ transition-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);
21
+ }
22
+
23
+ [role=treeitem] {
24
+ [role=group] {
25
+ padding: { top: $pad-xs; bottom: $pad-base }
26
+ list-style: none;
27
+
28
+ .nav-item {
29
+ padding: $pad-sm;
30
+ padding-left: 54px;
31
+ font-size: 13px;
32
+ }
33
+ }
34
+
35
+ // Triggered class indicates it was manually clicked, rather than restored via cookies
36
+ &.triggered [role=group] {
37
+ transition-property: max-height, opacity, padding;
38
+ transition-duration: $duration;
39
+ transition-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1);
40
+ }
41
+ }
42
+
@@ -0,0 +1,9 @@
1
+ .ui-sticky-panel-spacer { display: none }
2
+
3
+ @include at-least($width-md) {
4
+ .ui-sticky-panel {
5
+ position: fixed;
6
+ &.is-sticky { z-index: $z-ui-sticky-panel; }
7
+ + .ui-sticky-panel-spacer { display: block }
8
+ }
9
+ }
@@ -0,0 +1,14 @@
1
+ .ui-toolbar {
2
+ padding: $pad-md 0;
3
+ margin: 0 0 $pad-lg;
4
+ display: flex;
5
+ justify-content: space-between;
6
+
7
+ &.is-sticky {
8
+ padding: $pad-md $pad-lg;
9
+ background-color: $fl-white;
10
+ border-bottom: 1px solid $fl-gray-100;
11
+ box-shadow: 0 2px 6px 0 rgba($fl-gray-900, .08);
12
+ margin: 0;
13
+ }
14
+ }
@@ -0,0 +1,5 @@
1
+ @import "modal";
2
+ @import "nav-menu";
3
+ @import "tooltip";
4
+ @import "dropdown";
5
+ @import "header/index";
@@ -1,4 +1,3 @@
1
- @import "app-nav-header";
2
1
  @import "trial-status";
3
2
  @import "search";
4
3
  @import "search-results";
@@ -23,6 +23,7 @@
23
23
  left: 16px;
24
24
  width: calc( 100% - 32px );
25
25
  margin-right: 0;
26
+ z-index: 100;
26
27
 
27
28
  &[data-active-stack] .text-input-label {
28
29
  border: {
@@ -2,6 +2,5 @@
2
2
  @import 'vars';
3
3
  @import 'mixins';
4
4
  @import 'base';
5
- @import 'layout';
6
5
  @import 'animations';
7
6
  @import 'text';