express_admin 1.7.5 → 1.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/express_admin/components/command_button.js.coffee +25 -0
  3. data/app/assets/stylesheets/express_admin/components/_command_button.sass +6 -1
  4. data/app/assets/stylesheets/express_admin/globals/_variables.sass +2 -0
  5. data/app/assets/stylesheets/express_admin/plugins/_select2.sass +3 -0
  6. data/app/assets/stylesheets/express_admin/screen.sass +0 -2
  7. data/app/assets/stylesheets/express_admin/shared/_tables.sass +2 -0
  8. data/app/components/express_admin/command_button.rb +9 -3
  9. data/app/components/express_admin/definition_table.rb +1 -1
  10. data/app/components/express_admin/smart_table.rb +6 -0
  11. data/app/views/layouts/devise.html.erb +19 -0
  12. data/config/initializers/postgresql_trigram.rb +13 -0
  13. data/db/migrate/20150928044202_install_trigram.rb +18 -0
  14. data/lib/express_admin/engine.rb +4 -2
  15. data/lib/express_admin/search.rb +51 -0
  16. data/lib/express_admin/standard_actions.rb +18 -5
  17. data/lib/express_admin/version.rb +1 -1
  18. data/test/dummy/db/test.sqlite3 +0 -0
  19. data/test/dummy/test/components/command_button_test.rb +2 -2
  20. metadata +22 -160
  21. data/app/assets/stylesheets/express_admin/shared/_buttons.sass +0 -3
  22. data/app/assets/stylesheets/express_admin/shared/_tabs.sass +0 -25
  23. data/vendor/gems/express_templates/CHANGELOG.md +0 -12
  24. data/vendor/gems/express_templates/Gemfile +0 -16
  25. data/vendor/gems/express_templates/LICENSE +0 -21
  26. data/vendor/gems/express_templates/README.md +0 -133
  27. data/vendor/gems/express_templates/Rakefile +0 -32
  28. data/vendor/gems/express_templates/express_templates.gemspec +0 -32
  29. data/vendor/gems/express_templates/lib/arbre/patches.rb +0 -76
  30. data/vendor/gems/express_templates/lib/core_extensions/proc.rb +0 -103
  31. data/vendor/gems/express_templates/lib/core_extensions/string.rb +0 -25
  32. data/vendor/gems/express_templates/lib/express_templates/compiler.rb +0 -22
  33. data/vendor/gems/express_templates/lib/express_templates/components/all.rb +0 -28
  34. data/vendor/gems/express_templates/lib/express_templates/components/base.rb +0 -156
  35. data/vendor/gems/express_templates/lib/express_templates/components/capabilities/resourceful.rb +0 -213
  36. data/vendor/gems/express_templates/lib/express_templates/components/configurable.rb +0 -181
  37. data/vendor/gems/express_templates/lib/express_templates/components/container.rb +0 -45
  38. data/vendor/gems/express_templates/lib/express_templates/components/forms/basic_fields.rb +0 -52
  39. data/vendor/gems/express_templates/lib/express_templates/components/forms/checkbox.rb +0 -37
  40. data/vendor/gems/express_templates/lib/express_templates/components/forms/express_form.rb +0 -48
  41. data/vendor/gems/express_templates/lib/express_templates/components/forms/form_component.rb +0 -88
  42. data/vendor/gems/express_templates/lib/express_templates/components/forms/option_support.rb +0 -69
  43. data/vendor/gems/express_templates/lib/express_templates/components/forms/radio.rb +0 -65
  44. data/vendor/gems/express_templates/lib/express_templates/components/forms/select.rb +0 -126
  45. data/vendor/gems/express_templates/lib/express_templates/components/forms/select_collection.rb +0 -45
  46. data/vendor/gems/express_templates/lib/express_templates/components/forms/submit.rb +0 -30
  47. data/vendor/gems/express_templates/lib/express_templates/components/forms.rb +0 -16
  48. data/vendor/gems/express_templates/lib/express_templates/components/tree_for.rb +0 -88
  49. data/vendor/gems/express_templates/lib/express_templates/components.rb +0 -11
  50. data/vendor/gems/express_templates/lib/express_templates/indenter.rb +0 -47
  51. data/vendor/gems/express_templates/lib/express_templates/interpolator.rb +0 -36
  52. data/vendor/gems/express_templates/lib/express_templates/renderer.rb +0 -9
  53. data/vendor/gems/express_templates/lib/express_templates/template/handler.rb +0 -32
  54. data/vendor/gems/express_templates/lib/express_templates/version.rb +0 -3
  55. data/vendor/gems/express_templates/lib/express_templates.rb +0 -18
  56. data/vendor/gems/express_templates/lib/tasks/express_templates.rake +0 -4
  57. data/vendor/gems/express_templates/test/compiler_test.rb +0 -9
  58. data/vendor/gems/express_templates/test/components/base_test.rb +0 -67
  59. data/vendor/gems/express_templates/test/components/capabilities/resourceful_test.rb +0 -63
  60. data/vendor/gems/express_templates/test/components/configurable_test.rb +0 -140
  61. data/vendor/gems/express_templates/test/components/forms/basic_fields_test.rb +0 -158
  62. data/vendor/gems/express_templates/test/components/forms/checkbox_test.rb +0 -51
  63. data/vendor/gems/express_templates/test/components/forms/express_form_test.rb +0 -62
  64. data/vendor/gems/express_templates/test/components/forms/radio_test.rb +0 -112
  65. data/vendor/gems/express_templates/test/components/forms/select_test.rb +0 -129
  66. data/vendor/gems/express_templates/test/components/forms/submit_test.rb +0 -36
  67. data/vendor/gems/express_templates/test/components/tree_for_test.rb +0 -70
  68. data/vendor/gems/express_templates/test/core_extensions/proc_test.rb +0 -90
  69. data/vendor/gems/express_templates/test/core_extensions/string_test.rb +0 -20
  70. data/vendor/gems/express_templates/test/dummy/Rakefile +0 -6
  71. data/vendor/gems/express_templates/test/dummy/app/assets/javascripts/application.js +0 -13
  72. data/vendor/gems/express_templates/test/dummy/app/assets/stylesheets/application.css +0 -15
  73. data/vendor/gems/express_templates/test/dummy/app/controllers/application_controller.rb +0 -5
  74. data/vendor/gems/express_templates/test/dummy/app/controllers/hello_controller.rb +0 -5
  75. data/vendor/gems/express_templates/test/dummy/app/helpers/application_helper.rb +0 -2
  76. data/vendor/gems/express_templates/test/dummy/app/views/hello/show.html.et +0 -6
  77. data/vendor/gems/express_templates/test/dummy/app/views/layouts/application.html.et +0 -15
  78. data/vendor/gems/express_templates/test/dummy/bin/bundle +0 -3
  79. data/vendor/gems/express_templates/test/dummy/bin/rails +0 -4
  80. data/vendor/gems/express_templates/test/dummy/bin/rake +0 -4
  81. data/vendor/gems/express_templates/test/dummy/config/application.rb +0 -26
  82. data/vendor/gems/express_templates/test/dummy/config/boot.rb +0 -5
  83. data/vendor/gems/express_templates/test/dummy/config/environment.rb +0 -5
  84. data/vendor/gems/express_templates/test/dummy/config/environments/development.rb +0 -37
  85. data/vendor/gems/express_templates/test/dummy/config/environments/production.rb +0 -82
  86. data/vendor/gems/express_templates/test/dummy/config/environments/test.rb +0 -40
  87. data/vendor/gems/express_templates/test/dummy/config/initializers/assets.rb +0 -8
  88. data/vendor/gems/express_templates/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  89. data/vendor/gems/express_templates/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  90. data/vendor/gems/express_templates/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  91. data/vendor/gems/express_templates/test/dummy/config/initializers/inflections.rb +0 -16
  92. data/vendor/gems/express_templates/test/dummy/config/initializers/mime_types.rb +0 -4
  93. data/vendor/gems/express_templates/test/dummy/config/initializers/session_store.rb +0 -3
  94. data/vendor/gems/express_templates/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  95. data/vendor/gems/express_templates/test/dummy/config/locales/en.yml +0 -23
  96. data/vendor/gems/express_templates/test/dummy/config/routes.rb +0 -4
  97. data/vendor/gems/express_templates/test/dummy/config/secrets.yml +0 -22
  98. data/vendor/gems/express_templates/test/dummy/config.ru +0 -4
  99. data/vendor/gems/express_templates/test/dummy/public/404.html +0 -67
  100. data/vendor/gems/express_templates/test/dummy/public/422.html +0 -67
  101. data/vendor/gems/express_templates/test/dummy/public/500.html +0 -66
  102. data/vendor/gems/express_templates/test/dummy/public/favicon.ico +0 -0
  103. data/vendor/gems/express_templates/test/dummy/test/controllers/hello_controller_test.rb +0 -14
  104. data/vendor/gems/express_templates/test/dummy/test/helpers/hello_helper_test.rb +0 -4
  105. data/vendor/gems/express_templates/test/express_templates_test.rb +0 -23
  106. data/vendor/gems/express_templates/test/handler_test.rb +0 -148
  107. data/vendor/gems/express_templates/test/indenter_test.rb +0 -27
  108. data/vendor/gems/express_templates/test/interpolator_test.rb +0 -80
  109. data/vendor/gems/express_templates/test/performance_test.rb +0 -97
  110. data/vendor/gems/express_templates/test/test_helper.rb +0 -178
  111. data/vendor/gems/foundation_apps_styles/Gemfile +0 -4
  112. data/vendor/gems/foundation_apps_styles/LICENSE.txt +0 -21
  113. data/vendor/gems/foundation_apps_styles/README.md +0 -41
  114. data/vendor/gems/foundation_apps_styles/Rakefile +0 -13
  115. data/vendor/gems/foundation_apps_styles/bin/console +0 -14
  116. data/vendor/gems/foundation_apps_styles/bin/setup +0 -7
  117. data/vendor/gems/foundation_apps_styles/foundation_apps_styles.gemspec +0 -24
  118. data/vendor/gems/foundation_apps_styles/lib/foundation_apps_styles/version.rb +0 -3
  119. data/vendor/gems/foundation_apps_styles/lib/foundation_apps_styles.rb +0 -6
  120. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/account.svg +0 -44
  121. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/action.svg +0 -38
  122. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/ban.svg +0 -17
  123. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/bell.svg +0 -22
  124. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/bookmark.svg +0 -14
  125. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/cart.svg +0 -35
  126. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/chevron.svg +0 -28
  127. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/circle-check.svg +0 -25
  128. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/circle-x.svg +0 -25
  129. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/cog.svg +0 -17
  130. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/comment-square.svg +0 -14
  131. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/dashboard.svg +0 -38
  132. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/document.svg +0 -28
  133. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/envelope.svg +0 -44
  134. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/flag.svg +0 -24
  135. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/home.svg +0 -28
  136. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/lock.svg +0 -55
  137. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/magnifying-glass.svg +0 -26
  138. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/person.svg +0 -62
  139. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/reload.svg +0 -19
  140. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/share-boxed.svg +0 -17
  141. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/star.svg +0 -14
  142. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/thumb.svg +0 -38
  143. data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/zoom.svg +0 -56
  144. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/_global.scss +0 -131
  145. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/_includes.scss +0 -33
  146. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/_settings.scss +0 -614
  147. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_accordion.scss +0 -72
  148. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_action-sheet.scss +0 -265
  149. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_block-list.scss +0 -360
  150. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_button-group.scss +0 -197
  151. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_button.scss +0 -205
  152. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_card.scss +0 -93
  153. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_extras.scss +0 -54
  154. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_forms.scss +0 -460
  155. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_grid.scss +0 -422
  156. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_iconic.scss +0 -95
  157. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_label.scss +0 -134
  158. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_list.scss +0 -19
  159. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_menu-bar.scss +0 -382
  160. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_modal.scss +0 -129
  161. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_motion.scss +0 -525
  162. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_notification.scss +0 -207
  163. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_off-canvas.scss +0 -169
  164. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_panel.scss +0 -134
  165. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_popup.scss +0 -68
  166. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_switch.scss +0 -134
  167. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_tabs.scss +0 -100
  168. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_title-bar.scss +0 -135
  169. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_typography.scss +0 -345
  170. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_utilities.scss +0 -160
  171. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/foundation-apps.css +0 -6146
  172. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/foundation.scss +0 -50
  173. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_breakpoints.scss +0 -154
  174. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_functions.scss +0 -343
  175. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_images.scss +0 -19
  176. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_mixins.scss +0 -123
  177. data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/vendor/_normalize.scss +0 -424
@@ -1,50 +0,0 @@
1
- // Foundation for Apps
2
- // by ZURB
3
- // foundation.zurb.com
4
- // Licensed under MIT Open Source
5
-
6
- $foundation-version: '1.1.0';
7
-
8
- // Make sure the charset is set appropriately
9
- @charset "UTF-8";
10
-
11
- // Libraries (let's make Normalize an external dependency eventually)
12
- @import
13
- "vendor/normalize";
14
-
15
- // Helpers
16
- @import
17
- "helpers/functions",
18
- "helpers/mixins",
19
- "helpers/breakpoints",
20
- "helpers/images";
21
-
22
- // Global styles
23
- @import
24
- "global";
25
-
26
- // Components
27
- @import
28
- "components/iconic",
29
- "components/action-sheet",
30
- "components/block-list",
31
- "components/button",
32
- "components/button-group",
33
- "components/card",
34
- "components/extras",
35
- "components/forms",
36
- "components/grid",
37
- "components/title-bar",
38
- "components/label",
39
- "components/list",
40
- "components/menu-bar",
41
- "components/modal",
42
- "components/motion",
43
- "components/notification",
44
- "components/off-canvas",
45
- "components/popup",
46
- "components/switch",
47
- "components/tabs",
48
- "components/accordion",
49
- "components/typography",
50
- "components/utilities";
@@ -1,154 +0,0 @@
1
- // Foundation for Apps
2
- //
3
- // BREAKPOINTS
4
- // -----------
5
- // Foundation for Apps has three core breakpoints: small (> 0), medium (>= 640), and large (>= 1024).
6
- // There are two additional breakpoints, xlarge, and xxlarge, which (by default) do not output as sizing classes.
7
- // Access named breakpoints using the mixin breakpoint($size), where $size is a breakpoint value.
8
- // You can also pass an em, rem, or pixel value into this mixin to generate an em-based media query.
9
- // Create new named breakpoints using the $breakpoints map. Change which named breakpoints get their own classes by modifying the $breakpoint-classes map.
10
- // NOTE: If you change the $breakpoints map, know that all values must be ordered by width, smallest width first. So 0 is always your first value.
11
-
12
- // 1. Variables
13
- // - - - - - - - - - - - - - - -
14
-
15
- /// @Foundation.settings
16
- // Breakpoints
17
- // These are our named breakpoints. You can use them in our breakpoint function like this: @include breakpoint(medium) { // Medium and larger styles }
18
- $breakpoints: (
19
- small: rem-calc(0),
20
- medium: rem-calc(640),
21
- large: rem-calc(1200),
22
- xlarge: rem-calc(1440),
23
- xxlarge: rem-calc(1920),
24
- ) !default;
25
-
26
- // All of the names in this list will be output as classes in your CSS, like small-12, medium-6, and so on.
27
- $breakpoint-classes: (small medium large) !default;
28
- ///
29
-
30
- // 2. Mixins
31
- // - - - - - - - - - - - - - - -
32
-
33
- /// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:
34
- /// - If a string is passed, the mixin will look for it in the $breakpoints map, and use a media query there.
35
- /// - If a pixel value is passed, it will be converted to an em value using $rem-base.
36
- /// - If a rem value is passed, the unit will be changed to em.
37
- /// - If an em value is passed, the value will be used as-is.
38
- ///
39
- /// @param {mixed} $val - Breakpoint name or px/em/rem value to process.
40
- ///
41
- /// @output If the breakpoint is "0px and larger", outputs the content. Otherwise, outputs the content wrapped in a media query.
42
- @mixin breakpoint($val: small) {
43
- // Size or keyword
44
- $bp: nth($val, 1);
45
- // Value for max-width media queries
46
- $bpMax: 0;
47
- // Direction of media query (up, down, or only)
48
- $dir: if(length($val) > 1, nth($val, 2), up);
49
- // Eventual output
50
- $str: 'only screen';
51
- // Is it a named media query?
52
- $named: false;
53
-
54
- // Orientation media queries have a unique syntax
55
- @if $bp == 'landscape' or $bp == 'portrait' {
56
- $str: $str + ' and (orientation: #{$bp})';
57
- }
58
-
59
- @else {
60
- // Try to pull a named breakpoint out of the $breakpoints map
61
- @if type-of($bp) == 'string' {
62
- @if map-has-key($breakpoints, $bp) {
63
- @if $dir == 'only' {
64
- $next-bp: map-next($breakpoints, $bp);
65
- @if $next-bp == null {
66
- $bpMax: null;
67
- }
68
- @else {
69
- $bpMax: $next-bp - (1/16);
70
- }
71
- }
72
- $bp: map-get($breakpoints, $bp);
73
- $named: true;
74
- }
75
- @else {
76
- $bp: 0;
77
- }
78
- }
79
-
80
- // Pixel and unitless values are converted to rems
81
- @if unit($bp) == 'px' or unit($bp) == '' {
82
- $bp: rem-calc($bp);
83
- }
84
- // Finally, the rem value is turned into an em value
85
- $bp: strip-unit($bp) * 1em;
86
-
87
- // Skip media query creation if the input is "0 up" or "0 down"
88
- @if $bp > 0 or $dir == 'only' {
89
- // And lo, a media query was born
90
- @if $dir == 'only' {
91
- @if $named == true {
92
- $str: $str + ' and (min-width: #{$bp})';
93
- @if $bpMax != null {
94
- $str: $str + ' and (max-width: #{$bpMax})';
95
- }
96
- }
97
- @else {
98
- @debug 'ERROR: Only named media queries can have an "only" range.';
99
- }
100
- }
101
- @else if $dir == 'down' {
102
- $max: $bp - (1/16);
103
- $str: $str + ' and (max-width: #{$max})';
104
- }
105
- @else {
106
- $str: $str + ' and (min-width: #{$bp})';
107
- }
108
- }
109
- }
110
-
111
- // Output
112
- @if $bp == 0em and $dir != 'only' {
113
- @content;
114
- }
115
- @else {
116
- @media #{$str} {
117
- @content;
118
- }
119
- }
120
- }
121
-
122
- /// Prefixes selector $class with breakpoint keywords, allowing you to create a batch of breakpoint classes with one chunk of code. If you want to skip a breakpoint (like small, because mobile first and all that), add values to the $omit parameter.
123
- ///
124
- /// @param {string} $class - Class to prefix with the breakpoint name and a hyphen.
125
- /// @param {list} $omit - Named breakpoints to skip. No class will be added with breakpoints in this list.
126
- @mixin each-breakpoint($class, $omit: ()) {
127
- // Iterate through breakpoint classes
128
- @each $size in $breakpoint-classes {
129
- // Only do something if the breakpoint is not in $omit
130
- @if index($omit, $size) == null {
131
- $val: map-get($breakpoints, $size);
132
- // Prefix $class with $size and a hyphen
133
- .#{$size + '-' + $class} {
134
- @include breakpoint($size) {
135
- @content;
136
- }
137
- }
138
- }
139
- }
140
- }
141
-
142
- // 3. CSS Output
143
- // - - - - - - - - - - - - - - -
144
-
145
- // Meta styles are included in all builds, as they are a dependancy of the Javascript.
146
- // Used to provide media query values for javascript components.
147
- // Forward slash placed around everything to convince PhantomJS to read the value.
148
-
149
- meta.foundation-version {
150
- font-family: "#{$foundation-version}";
151
- }
152
- meta.foundation-mq {
153
- font-family: "#{map-serialize($breakpoints)}";
154
- }
@@ -1,343 +0,0 @@
1
- // Foundation for Apps ALPHA
2
- // by ZURB
3
- // foundation.zurb.com
4
- // Licensed under MIT Open Source
5
-
6
- $include-css: () !default;
7
- $modules: () !default;
8
- $rem-base: 16px !default;
9
-
10
- /// Checks if a module is in use.
11
- @function using($name) {
12
- // Import from global scope
13
- $include-css: $include-css !global;
14
- $module-key: map-get($include-css, $name);
15
-
16
- @if $module-key == true or $module-key == null {
17
- @return true;
18
- }
19
- @else {
20
- @return false;
21
- }
22
- }
23
-
24
- /// Checks if a module's CSS has already been exported.
25
- @function imported($name) {
26
- // Import from global scope
27
- $modules: $modules !global;
28
- // Check if the module is already on the imported list
29
- @if type-of(index($modules, $name)) == 'number' {
30
- @return true;
31
- }
32
- @else {
33
- @return false;
34
- }
35
- }
36
-
37
- /// Outputs the chunk of content passed if component $name hasn't yet been output.
38
- /// This prevents code duplication by keeping track of which components have already been output.
39
- ///
40
- /// @param {string} $name - Name of component to output
41
- ///
42
- /// @output The content passed, if the component has not yet been exported.
43
- @mixin exports($name) {
44
- // Check if the module has already been imported
45
- @if not(imported($name)) {
46
- // Check if the module should be used
47
- @if using($name) {
48
- $modules: append($modules, $name) !global;
49
- @content;
50
- }
51
- }
52
- }
53
-
54
- /// Map Serialize
55
- /// Converts a Sass map to a URL-encoded string, like this: `key1=value1&key2=value2`. We use this function to encode the media queries in the `$breakpoints` variable, so it can be transferred to our JavaScript for use there.
56
- ///
57
- /// @param {map} $map - Map to convert.
58
- ///
59
- /// @return A string with a map converted to a string.
60
- @function map-serialize($map) {
61
- $str: '';
62
- @each $key, $value in $map {
63
- $str: $str + $key + '=' + $value + '&';
64
- }
65
- $str: str-slice($str, 1, -2);
66
-
67
- @return $str;
68
- }
69
-
70
- /// Map Next
71
- /// Find the next key in a map.
72
- ///
73
- /// @param {map} $map - Map to traverse.
74
- /// @param {mixed} $key - Key to use as a starting point.
75
- ///
76
- /// @return The value for the key after `$key` if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns null.
77
- @function map-next($map, $key) {
78
- // Store the values of the map as a list, so we can access them with nth
79
- $values: map-values($map);
80
-
81
- // Ghetto for loop
82
- $i: 1;
83
- $found: false;
84
- @each $val in map-keys($map) {
85
- @if $found == false {
86
- @if ($key == $val) {
87
- $found: true;
88
- }
89
- $i: $i + 1;
90
- }
91
- }
92
-
93
- // If the key doesn't exist, or it's the last key in the map, return null
94
- @if $i > length($map) {
95
- @return null;
96
- }
97
- // Otherwise return the value
98
- @else {
99
- @return nth($values, $i);
100
- }
101
- }
102
-
103
- /// Is It Light?
104
- /// Checks the lightness of $color, and if it passes the $threshold of lightness, it returns the `$yes` color. Otherwise, it returns the `$no` color. Use this function to dynamically output a foreground color based on a given background color.
105
- ///
106
- /// @param {color} $color - Color to check the lightness of.
107
- /// @param {color} $yes - Color to return if $color is light.
108
- /// @param {color} $no - Color to return if $color is dark.
109
- /// @param {percentage} $threshold - Threshold of lightness to check against.
110
- ///
111
- /// @return The $yes color or $no color.
112
- @function isitlight($color, $yes: #000, $no: #fff, $threshold: 60%) {
113
- @if (lightness($color) > $threshold) {
114
- @return $yes;
115
- }
116
- @else {
117
- @return $no;
118
- }
119
- }
120
-
121
- /// Smart Scale
122
- /// Scales a color to be lighter if it's light, or darker if it's dark. Use this function to "fade" a color appropriate to its lightness.
123
- ///
124
- /// @param {color} $color - Color to scale.
125
- /// @param {percentage} $scale - Amount to scale up or down.
126
- /// @param {percentage} $threshold - Threshold of lightness to check against.
127
- ///
128
- /// @return A scaled color.
129
- @function smartscale($color, $scale: 5%, $threshold: 60%) {
130
- @if lightness($color) > $threshold {
131
- $scale: -$scale;
132
- }
133
- @return scale-color($color, $lightness: $scale);
134
- }
135
-
136
- /// Has Value
137
- /// Returns true if a value is not 0, null, or none. Use this function to check for values like `border: 0` or `box-shadow: none`.
138
- ///
139
- /// @param $val - Value to check.
140
- ///
141
- /// @return True if `$val` is not 0, null, or none.
142
- @function hasvalue($val) {
143
- @if $val == null or $val == none {
144
- @return false;
145
- }
146
- @if type-of($val) == 'number' and strip-unit($val) == 0 {
147
- @return false;
148
- }
149
- @return true;
150
- }
151
-
152
- /// Get Side
153
- /// Determine a top/right/bottom/right value on a padding, margin, etc. property, no matter how many values were passed in. Use this function if you need to know the specific side of a value, but don't know if the value is using shorthand.
154
- ///
155
- /// @param {list|number} $val - Value to analyze. Should be a shorthand sizing property, e.g. "1em 2em 1em"
156
- /// @param {keyword} $side - Side to return. Should be top, right, bottom, or left.
157
- ///
158
- /// @return A single value based on `$val` and `$side`.
159
- @function get-side($val, $side) {
160
- $length: length($val);
161
-
162
- @if $length == 1 {
163
- @return $val;
164
- }
165
- @if $length == 2 {
166
- @return map-get((
167
- top: nth($val, 1),
168
- bottom: nth($val, 1),
169
- left: nth($val, 2),
170
- right: nth($val, 2),
171
- ), $side);
172
- }
173
- @if $length == 3 {
174
- @return map-get((
175
- top: nth($val, 1),
176
- left: nth($val, 2),
177
- right: nth($val, 2),
178
- bottom: nth($val, 3),
179
- ), $side);
180
- }
181
- @if $length == 4 {
182
- @return map-get((
183
- top: nth($val, 1),
184
- right: nth($val, 2),
185
- bottom: nth($val, 3),
186
- left: nth($val, 4),
187
- ), $side);
188
- }
189
- }
190
-
191
- /// Get Border Value
192
- /// Given border $val, find a specific element of the border, which is $elem. The possible values for $elem are width, style, and color.
193
- ///
194
- /// @param {list} $val - Border value to find a value in.
195
- /// @param {keyword} $elem - Border component to extract.
196
- ///
197
- /// @param If the value exists, returns the value. If the value is not in the border definition, the function will return a 0px width, solid style, or black border.
198
- @function get-border-value($val, $elem) {
199
- // Find the width, style, or color and return it
200
- @each $v in $val {
201
- $type: type-of($v);
202
- @if $elem == width and $type == 'number' {
203
- @return $v;
204
- }
205
- @if $elem == style and $type == 'string' {
206
- @return $v;
207
- }
208
- @if $elem == color and $type == 'color' {
209
- @return $v;
210
- }
211
- }
212
-
213
- // Defaults
214
- $defaults: (
215
- width: 0,
216
- style: solid,
217
- color: black,
218
- );
219
- @return map-get($defaults, $elem);
220
- }
221
-
222
- /// Get Shadow Value
223
- /// Given shadow value $val, find a specific element of the shadow, which is $elem. The possible values for $elem are x, y, size, spread, color, and inset.
224
- ///
225
- /// @param {list} $val - Shadow value to find a value in.
226
- /// @param {keyword} $elem - Shadow component to extract.
227
- ///
228
- /// @return If the value exists, returns the value. If the value is not set, returns false. If `$elem` is "inset", returns true, otherwise false.
229
- @function get-shadow-value($val, $elem) {
230
- // Return "none" if there's no shadow
231
- @if $val == none {
232
- @return none;
233
- }
234
-
235
- // Inset and color are always at the beginning and end
236
- @if $elem == inset {
237
- @return nth($val, 1) == inset;
238
- }
239
- @if $elem == color {
240
- @if type-of(nth($val, -1)) == color {
241
- @return nth($val, -1);
242
- }
243
- @else {
244
- @return black;
245
- }
246
- }
247
-
248
- // The rest of the values are located perilously in the middle
249
- $values: ();
250
- @each $v in $val {
251
- @if type-of($v) == 'number' {
252
- $values: append($values, $v);
253
- }
254
- }
255
- @if $elem == x {
256
- @if length($values) >= 1 {
257
- @return nth($values, 1);
258
- }
259
- @else {
260
- @return 0;
261
- }
262
- }
263
- @else if $elem == y {
264
- @if length($values) >= 2 {
265
- @return nth($values, 2);
266
- }
267
- @else {
268
- @return 0;
269
- }
270
- }
271
- @else if $elem == size {
272
- @if length($values) >= 3 {
273
- @return nth($values, 3);
274
- }
275
- @else {
276
- @return 0;
277
- }
278
- }
279
- @else if $elem == spread {
280
- @if length($values) >= 4 {
281
- @return nth($values, 4);
282
- }
283
- @else {
284
- @return 0;
285
- }
286
- }
287
- @else {
288
- @return false;
289
- }
290
- }
291
-
292
- /// Strip Unit
293
- /// Removes the unit (e.g. px, em, rem) from a value, returning the number only.
294
- ///
295
- /// @param {number} $num - Number to strip unit from.
296
- ///
297
- /// @return The same number, sans unit.
298
- @function strip-unit($num) {
299
- @return $num / ($num * 0 + 1);
300
- }
301
-
302
- /// Turn to Degrees
303
- /// Converts a turn unit to the equivalent unit in degrees. 1turn is equal to 360 degrees. Not all browsers support turn, so this function allows us to use turns while outputting a value that all browsers understand.
304
- ///
305
- /// @param {number} $value - Turn value to convert.
306
- ///
307
- /// @return The same value, but in degrees.
308
- @function turn-to-deg($value) {
309
- @return strip-unit($value) * 360deg;
310
- }
311
-
312
- /// Convert to Rem
313
- /// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$rem-base` variable.
314
- ///
315
- /// @param {number} $value - Pixel value to convert.
316
- ///
317
- /// @return A number in rems, calculated based on the given value and the base pixel value.
318
- @function convert-to-rem($value, $base-value: $rem-base) {
319
- $value: strip-unit($value) / strip-unit($base-value) * 1rem;
320
- @if ($value == 0rem) { $value: 0; } // Turn 0rem into 0
321
- @return $value;
322
- }
323
-
324
- /// Rem Calculator
325
- /// Converts one or more pixel values into matching rem values. This function works a lot like `convert-to-rem`, except it can convert more than one value at once, which is useful when setting multiple values on a `margin` or `padding` property.
326
- ///
327
- /// @param {number|list} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.
328
- ///
329
- /// @return A list of converted values.
330
- @function rem-calc($values, $base-value: null) {
331
- @if $base-value == null {
332
- $base-value: $rem-base;
333
- }
334
- $max: length($values);
335
-
336
- @if $max == 1 { @return convert-to-rem(nth($values, 1), $base-value); }
337
-
338
- $remValues: ();
339
- @for $i from 1 through $max {
340
- $remValues: append($remValues, convert-to-rem(nth($values, $i), $base-value));
341
- }
342
- @return $remValues;
343
- }
@@ -1,19 +0,0 @@
1
- @function image-triangle($color: #000) {
2
- $color: rgb(red($color), green($color), blue($color));
3
- @return "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%2232%22%20height%3D%2224%22%20viewBox%3D%220%200%2032%2024%22%3E%3Cpolygon%20points%3D%220%2C0%2032%2C0%2016%2C24%22%20style%3D%22fill%3A%20#{$color}%22%3E%3C/polygon%3E%3C/svg%3E";
4
- }
5
-
6
- @mixin image-checkmark($color: #000) {
7
- $color: rgb(red($color), green($color), blue($color));
8
- background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="32" viewBox="0 0 32 32"><path fill="#{$color}" d="M16 0c-8.837 0-16 7.163-16 16s7.163 16 16 16 16-7.163 16-16-7.163-16-16-16zm6.906 8.875l2.219 2.031-12.063 13.281-6.188-6.188 2.125-2.125 3.938 3.938 9.969-10.938z"/></svg>');
9
-
10
- // IE10 fallback, since it doesn't support SVG data URLs
11
- @media screen and (min-width:0\0) {
12
- @if lightness($color) < 60% {
13
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdlJREFUeNrMl0FugzAQRY3TRZeoFyhVL0BOkGTXJezaHZwguUnECaCrdFd6gqQnCN11Uyk5QekNOlONJWMVGMCgfGlkEIY3HnsG2xFM3d96PjQB2AJsWdPtAPYOln+dTwXnuw4DHEGzBvNFN6EDCTiS9XIAwB40acNoucKoxODIie0AwAOCu8KOSnIiNx/MakK+A7sW9oTferxx3fP3T1nURoBG/irGVahHwjHm/Ggx7E3TMVdrQmoP0gngghhpZQ3QvG/EdPLUelARWI8Aycjq9Md0qMIdbcNhjmOKLoY7quk3l1Rebeqg4AwFkmq7LWGOh1pmNY0etZAWSq0OX8HoS4JvWuCopbSY26EGR/CW86K0BF+pwkLwlPuyHJhOCl5oe4ZtF++vOqST+GdOYwO+71pN2VNAjmQGPCe42weuHDg0PI8olUwnYrXTGQJH9gxq8l1LKvrQx4O6/YY32Kp/ugb3ey7gZ4xAzuhYiYTxB/UHZFAuaREVXZ2g6yFlvEC2yoKEmbsRZYNgVLk2JeaOaG+xLHN+WCszDWMqLGOrJFa1DlApjSdwoHJGqGzLIb0+cas0wh5Bh780ngswx8GJD7h8sHg2wLA/mfDLPZpdxOF0quP5rwADAAFIzSRvu1m5AAAAAElFTkSuQmCC');
14
- }
15
- @else {
16
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT9JREFUeNrMV4sRgyAMDU7gCI6AE7QjMILdoCO4Cd2g3aB2Ah2hG7Qb0ODRO2r98Anqu8txKvISII/AwBFKKY6NQDugHSe6NWgPtBtjrAMKIHGF1ip/6H+qGOIC7a7ioccofMkF2kvRQY8lfKY8FSqXyFPjZyaYvebYtGg5pMUbrcQseeqHzPogVyAHwyHXXPfZ/cCMA3rqOXGkF9NObbwOl6HsFS5BdNKaXTnTj2dGXinRYGQnx74CiNTOlt/cMfpeJSEh+dnlJyCU2iIkq4CInIemtIsDcmYth+Tc9xCDyHQSMeReDow4UVnv89Dj2yUNx5wYkreB+6dPw9pH2QbOxJBr1D5SLEccuEZmEP8O1Po64aByi8IVehxLAvL/8oz4TFjefHspyTYvSvdVlu/iYrKLq9mal1O29fX8I8AANpIQzC0hTdEAAAAASUVORK5CYII=');
17
- }
18
- }
19
- }
@@ -1,123 +0,0 @@
1
- // Foundation for Apps
2
- //
3
- // Mixins
4
- // ------
5
- // The framework comes with a number of mixins that help you easily create common small components,
6
- // like triangles and menu icons.
7
-
8
- /// CSS Triangle
9
- /// Creates a CSS triangle, which can be used for dropdown arrows, popup tails, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.
10
- ///
11
- /// @param {number} $triangle-size - Width of the triangle.
12
- /// @param {color} $triangle-color - Color of the triangle.
13
- /// @param {keyword} $triangle-direction - Direction the triangle points. Can be `top`, `right`, `bottom`, or `left`.
14
- @mixin css-triangle($triangle-size, $triangle-color, $triangle-direction) {
15
- content: "";
16
- display: block;
17
- width: 0;
18
- height: 0;
19
- border: inset $triangle-size;
20
- @if ($triangle-direction == top) {
21
- border-color: $triangle-color transparent transparent transparent;
22
- border-top-style: solid;
23
- }
24
- @if ($triangle-direction == bottom) {
25
- border-color: transparent transparent $triangle-color transparent;
26
- border-bottom-style: solid;
27
- }
28
- @if ($triangle-direction == left) {
29
- border-color: transparent transparent transparent $triangle-color;
30
- border-left-style: solid;
31
- }
32
- @if ($triangle-direction == right) {
33
- border-color: transparent $triangle-color transparent transparent;
34
- border-right-style: solid;
35
- }
36
- }
37
-
38
- // @mixins
39
- //
40
- /// Hamburger
41
- /// Creates a three-line menu icon, affectionately referred to as the "hamburger icon".
42
- ///
43
- /// @param {number} $width - Width of the icon, in rem units.
44
- /// @param {number|boolean} $left - Left offset of the icon. Set to `false` to center the icon horizontally.
45
- /// @param {number|boolean} $top - Top offset of the icon. Set to `false` to center the icon vertically.
46
- /// @param {number} $thickness - Height of each line in the icon.
47
- /// @param {number} $gap - Amount of space between each line.
48
- /// @param {color} $color - Color of the lines.
49
- /// @param {color} $hover-color - Color of the lines on hover.
50
- @mixin hamburger($width, $left, $top, $thickness, $gap, $color, $hover-color, $offcanvas) {
51
- span::after {
52
- content: "";
53
- position: absolute;
54
- display: block;
55
- height: 0;
56
-
57
- @if $offcanvas {
58
- @if $top {
59
- top: $top;
60
- }
61
- @else {
62
- top: 50%;
63
- margin-top: -$width/2;
64
- }
65
- @if $left {
66
- left: $left;
67
- }
68
- @else {
69
- left: ($tabbar-menu-icon-width - $width)/2;
70
- }
71
- }
72
- @else {
73
- top: 50%;
74
- margin-top: -$width/2;
75
- #{$opposite-direction}: $topbar-link-padding;
76
- }
77
-
78
- box-shadow:
79
- 0 0px 0 $thickness $color,
80
- 0 $gap + $thickness 0 $thickness $color,
81
- 0 (2 * $gap + 2*$thickness) 0 $thickness $color;
82
- width: $width;
83
- }
84
- span:hover:after {
85
- box-shadow:
86
- 0 0px 0 $thickness $hover-color,
87
- 0 $gap + $thickness 0 $thickness $hover-color,
88
- 0 (2 * $gap + 2*$thickness) 0 $thickness $hover-color;
89
- }
90
- }
91
-
92
- /// Clearfix
93
- /// Uses the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.
94
- ///
95
- /// @see http://nicolasgallagher.com/micro-clearfix-hack/
96
- @mixin clearfix {
97
- &:before, &:after { content: " "; display: table; }
98
- &:after { clear: both; }
99
- }
100
-
101
- /// Invisible Element
102
- /// Makes an element visually hidden, but accessible.
103
- ///
104
- /// @see http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
105
- @mixin element-invisible {
106
- position: absolute !important;
107
- height: 1px;
108
- width: 1px;
109
- overflow: hidden;
110
- clip: rect(1px, 1px, 1px, 1px);
111
- }
112
-
113
- /// Invisible Element Off
114
- /// Reverses the CSS output by the `element-invisible()` mixin.
115
- @mixin element-invisible-off {
116
- position: static !important;
117
- height: auto;
118
- width: auto;
119
- overflow: visible;
120
- clip: auto;
121
- }
122
-
123
- $text-input-selectors: 'input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea';